]> git.sur5r.net Git - glabels/commitdiff
Imported Upstream version 3.0.0 upstream/3.0.0
authorJakob Haufe <sur5r@sur5r.net>
Sun, 11 Mar 2012 22:53:29 +0000 (23:53 +0100)
committerJakob Haufe <sur5r@sur5r.net>
Sun, 11 Mar 2012 22:53:29 +0000 (23:53 +0100)
938 files changed:
AUTHORS
COPYING
COPYING-DOCS
COPYING-LIBGLABELS [deleted file]
COPYING-LIBS [new file with mode: 0644]
COPYING-TEMPLATES [new file with mode: 0644]
COPYING.README_FIRST
ChangeLog
ChangeLog.pre-2.2 [deleted file]
INSTALL
Makefile.am
Makefile.in
NEWS
README
TODO
aclocal.m4
barcode-0.98/COPYING [deleted file]
barcode-0.98/ChangeLog [deleted file]
barcode-0.98/INSTALL [deleted file]
barcode-0.98/Makefile.am [deleted file]
barcode-0.98/Makefile.in [deleted file]
barcode-0.98/Makefile.in.dist [deleted file]
barcode-0.98/README [deleted file]
barcode-0.98/README.glabels [deleted file]
barcode-0.98/TODO [deleted file]
barcode-0.98/barcode.h [deleted file]
barcode-0.98/barcode.spec [deleted file]
barcode-0.98/bookland/bookland.py [deleted file]
barcode-0.98/cmdline.c [deleted file]
barcode-0.98/cmdline.h [deleted file]
barcode-0.98/codabar.c [deleted file]
barcode-0.98/code128.c [deleted file]
barcode-0.98/code39.c [deleted file]
barcode-0.98/code93.c [deleted file]
barcode-0.98/compat/getopt.c [deleted file]
barcode-0.98/compat/getopt.h [deleted file]
barcode-0.98/configure [deleted file]
barcode-0.98/configure.in.dist [deleted file]
barcode-0.98/contrib/barcode-SVG.tar.gz [deleted file]
barcode-0.98/contrib/barcode-SVG.tar.gz.README [deleted file]
barcode-0.98/contrib/barcode-for-delphi.tar.gz [deleted file]
barcode-0.98/contrib/barcode-for-delphi.tar.gz.README [deleted file]
barcode-0.98/contrib/barcodeps-0.1.tgz [deleted file]
barcode-0.98/contrib/barcodeps-0.1.tgz.README [deleted file]
barcode-0.98/contrib/grab-0.0.4.tar.gz [deleted file]
barcode-0.98/contrib/grab-0.0.4.tar.gz.README [deleted file]
barcode-0.98/debian/README.debian [deleted file]
barcode-0.98/debian/changelog [deleted file]
barcode-0.98/debian/control [deleted file]
barcode-0.98/debian/copyright [deleted file]
barcode-0.98/debian/dirs [deleted file]
barcode-0.98/debian/info [deleted file]
barcode-0.98/debian/rules [deleted file]
barcode-0.98/doc/Makefile.in [deleted file]
barcode-0.98/doc/README [deleted file]
barcode-0.98/doc/barcode.info [deleted file]
barcode-0.98/doc/barcode.pdf [deleted file]
barcode-0.98/doc/barcode.ps [deleted file]
barcode-0.98/doc/barcodedoc.txt [deleted file]
barcode-0.98/doc/doc.barcode [deleted file]
barcode-0.98/doc/infofilter [deleted file]
barcode-0.98/doc/manpager [deleted file]
barcode-0.98/doc/mktxt [deleted file]
barcode-0.98/doc/texi2html [deleted file]
barcode-0.98/ean.c [deleted file]
barcode-0.98/i25.c [deleted file]
barcode-0.98/install-sh [deleted file]
barcode-0.98/library.c [deleted file]
barcode-0.98/main.c [deleted file]
barcode-0.98/missing [deleted file]
barcode-0.98/mkinstalldirs [deleted file]
barcode-0.98/msi.c [deleted file]
barcode-0.98/pcl.c [deleted file]
barcode-0.98/plessey.c [deleted file]
barcode-0.98/ps.c [deleted file]
barcode-0.98/sample.c [deleted file]
config.h.in
configure
configure.ac [new file with mode: 0644]
configure.in [deleted file]
data/Makefile.am
data/Makefile.in
data/desktop/Makefile.am
data/desktop/Makefile.in
data/desktop/glabels-3.0.desktop.in [new file with mode: 0644]
data/desktop/glabels.desktop.in [deleted file]
data/dtd/Makefile.am [deleted file]
data/dtd/Makefile.in [deleted file]
data/dtd/glabels-2.2.dtd [deleted file]
data/glade/Makefile.am [deleted file]
data/glade/Makefile.in [deleted file]
data/glade/merge-properties-dialog.glade [deleted file]
data/glade/new-label-dialog.glade [deleted file]
data/glade/object-editor.glade [deleted file]
data/glade/prefs-dialog.glade [deleted file]
data/glade/print-custom-widget.glade [deleted file]
data/glade/property-bar.glade [deleted file]
data/glade/template-designer.glade [deleted file]
data/glade/wdgt-media-select.glade [deleted file]
data/glade/wdgt-rotate-label.glade [deleted file]
data/icons/16x16/Makefile.am [new file with mode: 0644]
data/icons/16x16/Makefile.in [new file with mode: 0644]
data/icons/16x16/actions/glabels-align-bottom.png [new file with mode: 0644]
data/icons/16x16/actions/glabels-align-hcenter.png [new file with mode: 0644]
data/icons/16x16/actions/glabels-align-left.png [new file with mode: 0644]
data/icons/16x16/actions/glabels-align-right.png [new file with mode: 0644]
data/icons/16x16/actions/glabels-align-top.png [new file with mode: 0644]
data/icons/16x16/actions/glabels-align-vcenter.png [new file with mode: 0644]
data/icons/16x16/actions/glabels-arrow.png [new file with mode: 0644]
data/icons/16x16/actions/glabels-barcode.png [new file with mode: 0644]
data/icons/16x16/actions/glabels-box.png [new file with mode: 0644]
data/icons/16x16/actions/glabels-bucket-fill.png [new file with mode: 0644]
data/icons/16x16/actions/glabels-center-horiz.png [new file with mode: 0644]
data/icons/16x16/actions/glabels-center-vert.png [new file with mode: 0644]
data/icons/16x16/actions/glabels-ellipse.png [new file with mode: 0644]
data/icons/16x16/actions/glabels-flip-horiz.png [new file with mode: 0644]
data/icons/16x16/actions/glabels-flip-vert.png [new file with mode: 0644]
data/icons/16x16/actions/glabels-image.png [new file with mode: 0644]
data/icons/16x16/actions/glabels-line.png [new file with mode: 0644]
data/icons/16x16/actions/glabels-merge.png [new file with mode: 0644]
data/icons/16x16/actions/glabels-object-properties.png [new file with mode: 0644]
data/icons/16x16/actions/glabels-order-bottom.png [new file with mode: 0644]
data/icons/16x16/actions/glabels-order-top.png [new file with mode: 0644]
data/icons/16x16/actions/glabels-pencil.png [new file with mode: 0644]
data/icons/16x16/actions/glabels-rotate-left.png [new file with mode: 0644]
data/icons/16x16/actions/glabels-rotate-right.png [new file with mode: 0644]
data/icons/16x16/actions/glabels-text.png [new file with mode: 0644]
data/icons/16x16/apps/glabels-3.0.png [new file with mode: 0644]
data/icons/22x22/Makefile.am [new file with mode: 0644]
data/icons/22x22/Makefile.in [new file with mode: 0644]
data/icons/22x22/apps/glabels-3.0.png [new file with mode: 0644]
data/icons/24x24/Makefile.am [new file with mode: 0644]
data/icons/24x24/Makefile.in [new file with mode: 0644]
data/icons/24x24/actions/glabels-arrow.png [new file with mode: 0644]
data/icons/24x24/actions/glabels-barcode.png [new file with mode: 0644]
data/icons/24x24/actions/glabels-box.png [new file with mode: 0644]
data/icons/24x24/actions/glabels-bucket-fill.png [new file with mode: 0644]
data/icons/24x24/actions/glabels-ellipse.png [new file with mode: 0644]
data/icons/24x24/actions/glabels-hchain-broken.png [new file with mode: 0644]
data/icons/24x24/actions/glabels-hchain.png [new file with mode: 0644]
data/icons/24x24/actions/glabels-image.png [new file with mode: 0644]
data/icons/24x24/actions/glabels-line.png [new file with mode: 0644]
data/icons/24x24/actions/glabels-merge.png [new file with mode: 0644]
data/icons/24x24/actions/glabels-object-properties.png [new file with mode: 0644]
data/icons/24x24/actions/glabels-pencil.png [new file with mode: 0644]
data/icons/24x24/actions/glabels-text.png [new file with mode: 0644]
data/icons/24x24/actions/glabels-vchain-broken.png [new file with mode: 0644]
data/icons/24x24/actions/glabels-vchain.png [new file with mode: 0644]
data/icons/24x24/apps/glabels-3.0.png [new file with mode: 0644]
data/icons/32x32/Makefile.am [new file with mode: 0644]
data/icons/32x32/Makefile.in [new file with mode: 0644]
data/icons/32x32/apps/glabels-3.0.png [new file with mode: 0644]
data/icons/48x48/Makefile.am [new file with mode: 0644]
data/icons/48x48/Makefile.in [new file with mode: 0644]
data/icons/48x48/apps/glabels-3.0.png [new file with mode: 0644]
data/icons/48x48/mimetypes/application-x-glabels.png [new file with mode: 0644]
data/icons/Makefile.am [new file with mode: 0644]
data/icons/Makefile.in [new file with mode: 0644]
data/man/Makefile.am
data/man/Makefile.in
data/man/glabels-3-batch.1 [new file with mode: 0644]
data/man/glabels-3.1 [new file with mode: 0644]
data/man/glabels.1 [deleted file]
data/mime/Makefile.am
data/mime/Makefile.in
data/mime/glabels-3.0.xml.in [new file with mode: 0644]
data/mime/glabels.applications [deleted file]
data/mime/glabels.keys [deleted file]
data/mime/glabels.keys.in [deleted file]
data/mime/glabels.mime [deleted file]
data/mime/glabels.xml [deleted file]
data/mime/glabels.xml.in [deleted file]
data/pixmaps/Makefile.am
data/pixmaps/Makefile.in
data/pixmaps/ex-ellipse-size.png [new file with mode: 0644]
data/pixmaps/glabels-about-logo.png [deleted file]
data/pixmaps/glabels-application-x-glabels.png [deleted file]
data/pixmaps/glabels-logo.png [new file with mode: 0644]
data/pixmaps/glabels-splash.png [deleted file]
data/pixmaps/glabels.png [deleted file]
data/pixmaps/new-confirm.png [new file with mode: 0644]
data/pixmaps/new-rotate.png [new file with mode: 0644]
data/pixmaps/new-select.png [new file with mode: 0644]
data/pixmaps/template-designer.png [new file with mode: 0644]
data/schemas/Makefile.am [new file with mode: 0644]
data/schemas/Makefile.in [new file with mode: 0644]
data/schemas/org.gnome.glabels-3.gschema.xml.in [new file with mode: 0644]
data/schemas/org.gnome.glabels-3.gschema.xml.in.in [new file with mode: 0644]
data/templates/Makefile.am [deleted file]
data/templates/Makefile.in [deleted file]
data/templates/avery-iso-templates.xml [deleted file]
data/templates/avery-other-templates.xml [deleted file]
data/templates/avery-us-templates.xml [deleted file]
data/templates/brother-other-templates.xml [deleted file]
data/templates/categories.xml [deleted file]
data/templates/dymo-other-templates.xml [deleted file]
data/templates/misc-iso-templates.xml [deleted file]
data/templates/misc-other-templates.xml [deleted file]
data/templates/misc-us-templates.xml [deleted file]
data/templates/paper-sizes.xml [deleted file]
data/templates/pearl-templates.xml [deleted file]
data/templates/zweckform-iso-templates.xml [deleted file]
data/ui/Makefile.am [new file with mode: 0644]
data/ui/Makefile.in [new file with mode: 0644]
data/ui/media-select.ui [new file with mode: 0644]
data/ui/merge-properties-dialog.ui [new file with mode: 0644]
data/ui/new-label-dialog.ui [new file with mode: 0644]
data/ui/object-editor.ui [new file with mode: 0644]
data/ui/prefs-dialog.ui [new file with mode: 0644]
data/ui/print-op-dialog-custom-widget.ui [new file with mode: 0644]
data/ui/property-bar.ui [new file with mode: 0644]
data/ui/template-designer.ui [new file with mode: 0644]
docs/Makefile.am
docs/Makefile.in
docs/libglabels/Makefile.am
docs/libglabels/Makefile.in
docs/libglabels/html/ch01.html
docs/libglabels/html/ch02.html
docs/libglabels/html/ch03.html
docs/libglabels/html/index.html
docs/libglabels/html/index.sgml
docs/libglabels/html/libglabels-3.0-category.html [new file with mode: 0644]
docs/libglabels/html/libglabels-3.0-db.html [new file with mode: 0644]
docs/libglabels/html/libglabels-3.0-paper.html [new file with mode: 0644]
docs/libglabels/html/libglabels-3.0-str.html [new file with mode: 0644]
docs/libglabels/html/libglabels-3.0-template.html [new file with mode: 0644]
docs/libglabels/html/libglabels-3.0-units.html [new file with mode: 0644]
docs/libglabels/html/libglabels-3.0-vendor.html [new file with mode: 0644]
docs/libglabels/html/libglabels-3.0-xml-category.html [new file with mode: 0644]
docs/libglabels/html/libglabels-3.0-xml-paper.html [new file with mode: 0644]
docs/libglabels/html/libglabels-3.0-xml-template.html [new file with mode: 0644]
docs/libglabels/html/libglabels-3.0-xml-vendor.html [new file with mode: 0644]
docs/libglabels/html/libglabels-3.0-xml.html [new file with mode: 0644]
docs/libglabels/html/libglabels-3.0.devhelp [new file with mode: 0644]
docs/libglabels/html/libglabels-3.0.devhelp2 [new file with mode: 0644]
docs/libglabels/html/libglabels-category.html [deleted file]
docs/libglabels/html/libglabels-db.html [deleted file]
docs/libglabels/html/libglabels-enums.html [deleted file]
docs/libglabels/html/libglabels-paper.html [deleted file]
docs/libglabels/html/libglabels-str.html [deleted file]
docs/libglabels/html/libglabels-template.html [deleted file]
docs/libglabels/html/libglabels-xml-category.html [deleted file]
docs/libglabels/html/libglabels-xml-paper.html [deleted file]
docs/libglabels/html/libglabels-xml-template.html [deleted file]
docs/libglabels/html/libglabels-xml.html [deleted file]
docs/libglabels/html/libglabels.devhelp [deleted file]
docs/libglabels/html/libglabels.devhelp2 [deleted file]
docs/libglabels/html/style.css
docs/libglabels/libglabels-3.0-docs.sgml [new file with mode: 0644]
docs/libglabels/libglabels-3.0-overrides.txt [new file with mode: 0644]
docs/libglabels/libglabels-3.0-sections.txt [new file with mode: 0644]
docs/libglabels/libglabels-docs.sgml [deleted file]
docs/libglabels/libglabels-overrides.txt [deleted file]
docs/libglabels/libglabels-sections.txt [deleted file]
docs/libglabels/libglabels.types [deleted file]
docs/libglabels/tmpl/category.sgml [deleted file]
docs/libglabels/tmpl/db.sgml [deleted file]
docs/libglabels/tmpl/enums.sgml [deleted file]
docs/libglabels/tmpl/libglabels-unused.sgml [deleted file]
docs/libglabels/tmpl/libglabels.sgml [deleted file]
docs/libglabels/tmpl/paper.sgml [deleted file]
docs/libglabels/tmpl/str.sgml [deleted file]
docs/libglabels/tmpl/template.sgml [deleted file]
docs/libglabels/tmpl/xml-category.sgml [deleted file]
docs/libglabels/tmpl/xml-paper.sgml [deleted file]
docs/libglabels/tmpl/xml-template.sgml [deleted file]
docs/libglabels/tmpl/xml.sgml [deleted file]
docs/libglabels/xml/api-index-deprecated.xml [deleted file]
docs/libglabels/xml/api-index-full.xml [deleted file]
docs/libglabels/xml/category.xml [deleted file]
docs/libglabels/xml/db.xml [deleted file]
docs/libglabels/xml/enums.xml [deleted file]
docs/libglabels/xml/paper.xml [deleted file]
docs/libglabels/xml/str.xml [deleted file]
docs/libglabels/xml/template.xml [deleted file]
docs/libglabels/xml/xml-category.xml [deleted file]
docs/libglabels/xml/xml-paper.xml [deleted file]
docs/libglabels/xml/xml-template.xml [deleted file]
docs/libglabels/xml/xml.xml [deleted file]
docs/libglbarcode/Makefile.am [new file with mode: 0644]
docs/libglbarcode/Makefile.in [new file with mode: 0644]
docs/libglbarcode/html/api.html [new file with mode: 0644]
docs/libglbarcode/html/home.png [new file with mode: 0644]
docs/libglbarcode/html/index.html [new file with mode: 0644]
docs/libglbarcode/html/index.sgml [new file with mode: 0644]
docs/libglbarcode/html/left.png [new file with mode: 0644]
docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode-create.html [new file with mode: 0644]
docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode-render-to-cairo.html [new file with mode: 0644]
docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode-type.html [new file with mode: 0644]
docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode.html [new file with mode: 0644]
docs/libglbarcode/html/libglbarcode-3.0.devhelp [new file with mode: 0644]
docs/libglbarcode/html/libglbarcode-3.0.devhelp2 [new file with mode: 0644]
docs/libglbarcode/html/libglbarcode-intro.html [new file with mode: 0644]
docs/libglbarcode/html/overview.html [new file with mode: 0644]
docs/libglbarcode/html/right.png [new file with mode: 0644]
docs/libglbarcode/html/style.css [new file with mode: 0644]
docs/libglbarcode/html/up.png [new file with mode: 0644]
docs/libglbarcode/intro.sgml [new file with mode: 0644]
docs/libglbarcode/libglbarcode-3.0-docs.sgml [new file with mode: 0644]
docs/libglbarcode/libglbarcode-3.0-overrides.txt [new file with mode: 0644]
docs/libglbarcode/libglbarcode-3.0-sections.txt [new file with mode: 0644]
glabels.spec
gnome-doc-utils.make
gtk-doc.make
help/C/about.page [new file with mode: 0644]
help/C/basicusage.page [new file with mode: 0644]
help/C/createnew.page [new file with mode: 0644]
help/C/customize.page [new file with mode: 0644]
help/C/customtemplate.page [new file with mode: 0644]
help/C/editprop.page [new file with mode: 0644]
help/C/figures/glabels-logo.png [new file with mode: 0644]
help/C/figures/glabels-template-cd-label.png [new file with mode: 0644]
help/C/figures/glabels-template-cd.png [deleted file]
help/C/figures/glabels-template-circle-label.png [new file with mode: 0644]
help/C/figures/glabels-template-ellipse-label.png [new file with mode: 0644]
help/C/figures/glabels-template-label.png [deleted file]
help/C/figures/glabels-template-layout.png
help/C/figures/glabels-template-rect-label.png [new file with mode: 0644]
help/C/figures/introduction-glabels-main-window.png [new file with mode: 0644]
help/C/figures/main-window-empty.png [deleted file]
help/C/figures/merge-ex1-1.png
help/C/figures/merge-ex1-2.png
help/C/figures/merge-ex1-3.png
help/C/figures/merge-ex1-4.png
help/C/figures/merge-ex2-1.png
help/C/figures/merge-ex2-2.png
help/C/figures/merge-ex2-3.png
help/C/figures/merge-ex2-4.png
help/C/figures/merge-ex3-1.png [deleted file]
help/C/figures/merge-ex3-2.png [deleted file]
help/C/figures/object-editor-sidebar.png
help/C/figures/print-copies.png
help/C/figures/print-merge.png
help/C/figures/skip-fields-output.png [new file with mode: 0644]
help/C/figures/skip-fields-screenshot.png [new file with mode: 0644]
help/C/glabels.xml [deleted file]
help/C/index.page [new file with mode: 0644]
help/C/labelprop.page [new file with mode: 0644]
help/C/legal.xml [deleted file]
help/C/license.page [new file with mode: 0644]
help/C/mancreate.page [new file with mode: 0644]
help/C/merge-ex1.page [new file with mode: 0644]
help/C/merge-ex2.page [new file with mode: 0644]
help/C/merge-ex3.page [new file with mode: 0644]
help/C/merge-ex4.page [new file with mode: 0644]
help/C/merge.page [new file with mode: 0644]
help/C/mergefeatures.page [new file with mode: 0644]
help/C/multifile.page [new file with mode: 0644]
help/C/newlabel.page [new file with mode: 0644]
help/C/printfile.page [new file with mode: 0644]
help/C/select.page [new file with mode: 0644]
help/C/skipfields.page [new file with mode: 0644]
help/Makefile.am
help/Makefile.in
help/cs/about.page [new file with mode: 0644]
help/cs/basicusage.page [new file with mode: 0644]
help/cs/createnew.page [new file with mode: 0644]
help/cs/cs.po
help/cs/customize.page [new file with mode: 0644]
help/cs/customtemplate.page [new file with mode: 0644]
help/cs/editprop.page [new file with mode: 0644]
help/cs/figures/main-window-empty.png [deleted file]
help/cs/figures/merge-ex1-1.png
help/cs/figures/merge-ex2-1.png
help/cs/figures/object-editor-sidebar.png
help/cs/figures/print-copies.png
help/cs/figures/print-merge.png
help/cs/figures/skip-fields-output.png [new file with mode: 0644]
help/cs/figures/skip-fields-screenshot.png [new file with mode: 0644]
help/cs/glabels.xml [deleted file]
help/cs/index.page [new file with mode: 0644]
help/cs/labelprop.page [new file with mode: 0644]
help/cs/license.page [new file with mode: 0644]
help/cs/mancreate.page [new file with mode: 0644]
help/cs/merge-ex1.page [new file with mode: 0644]
help/cs/merge-ex2.page [new file with mode: 0644]
help/cs/merge-ex3.page [new file with mode: 0644]
help/cs/merge-ex4.page [new file with mode: 0644]
help/cs/merge.page [new file with mode: 0644]
help/cs/mergefeatures.page [new file with mode: 0644]
help/cs/multifile.page [new file with mode: 0644]
help/cs/newlabel.page [new file with mode: 0644]
help/cs/printfile.page [new file with mode: 0644]
help/cs/select.page [new file with mode: 0644]
help/cs/skipfields.page [new file with mode: 0644]
help/de/about.page [new file with mode: 0644]
help/de/basicusage.page [new file with mode: 0644]
help/de/createnew.page [new file with mode: 0644]
help/de/customize.page [new file with mode: 0644]
help/de/customtemplate.page [new file with mode: 0644]
help/de/de.po
help/de/editprop.page [new file with mode: 0644]
help/de/figures/merge-ex3-1.png [deleted file]
help/de/figures/merge-ex3-2.png [deleted file]
help/de/glabels.xml [deleted file]
help/de/index.page [new file with mode: 0644]
help/de/labelprop.page [new file with mode: 0644]
help/de/license.page [new file with mode: 0644]
help/de/mancreate.page [new file with mode: 0644]
help/de/merge-ex1.page [new file with mode: 0644]
help/de/merge-ex2.page [new file with mode: 0644]
help/de/merge-ex3.page [new file with mode: 0644]
help/de/merge-ex4.page [new file with mode: 0644]
help/de/merge.page [new file with mode: 0644]
help/de/mergefeatures.page [new file with mode: 0644]
help/de/multifile.page [new file with mode: 0644]
help/de/newlabel.page [new file with mode: 0644]
help/de/printfile.page [new file with mode: 0644]
help/de/select.page [new file with mode: 0644]
help/de/skipfields.page [new file with mode: 0644]
help/es/about.page [new file with mode: 0644]
help/es/basicusage.page [new file with mode: 0644]
help/es/createnew.page [new file with mode: 0644]
help/es/customize.page [new file with mode: 0644]
help/es/customtemplate.page [new file with mode: 0644]
help/es/editprop.page [new file with mode: 0644]
help/es/es.po
help/es/glabels.xml [deleted file]
help/es/index.page [new file with mode: 0644]
help/es/labelprop.page [new file with mode: 0644]
help/es/license.page [new file with mode: 0644]
help/es/mancreate.page [new file with mode: 0644]
help/es/merge-ex1.page [new file with mode: 0644]
help/es/merge-ex2.page [new file with mode: 0644]
help/es/merge-ex3.page [new file with mode: 0644]
help/es/merge-ex4.page [new file with mode: 0644]
help/es/merge.page [new file with mode: 0644]
help/es/mergefeatures.page [new file with mode: 0644]
help/es/multifile.page [new file with mode: 0644]
help/es/newlabel.page [new file with mode: 0644]
help/es/printfile.page [new file with mode: 0644]
help/es/select.page [new file with mode: 0644]
help/es/skipfields.page [new file with mode: 0644]
help/fr/about.page [new file with mode: 0644]
help/fr/basicusage.page [new file with mode: 0644]
help/fr/createnew.page [new file with mode: 0644]
help/fr/customize.page [new file with mode: 0644]
help/fr/customtemplate.page [new file with mode: 0644]
help/fr/editprop.page [new file with mode: 0644]
help/fr/figures/main-window-empty.png [deleted file]
help/fr/figures/merge-ex1-1.png [deleted file]
help/fr/figures/merge-ex1-2.png [deleted file]
help/fr/figures/merge-ex1-3.png [deleted file]
help/fr/figures/merge-ex1-4.png [deleted file]
help/fr/figures/merge-ex2-1.png [deleted file]
help/fr/figures/merge-ex2-2.png [deleted file]
help/fr/figures/merge-ex2-3.png [deleted file]
help/fr/figures/merge-ex2-4.png [deleted file]
help/fr/figures/object-editor-sidebar.png [deleted file]
help/fr/figures/print-copies.png [deleted file]
help/fr/figures/print-merge.png [deleted file]
help/fr/fr.po
help/fr/glabels.xml [deleted file]
help/fr/index.page [new file with mode: 0644]
help/fr/labelprop.page [new file with mode: 0644]
help/fr/license.page [new file with mode: 0644]
help/fr/mancreate.page [new file with mode: 0644]
help/fr/merge-ex1.page [new file with mode: 0644]
help/fr/merge-ex2.page [new file with mode: 0644]
help/fr/merge-ex3.page [new file with mode: 0644]
help/fr/merge-ex4.page [new file with mode: 0644]
help/fr/merge.page [new file with mode: 0644]
help/fr/mergefeatures.page [new file with mode: 0644]
help/fr/multifile.page [new file with mode: 0644]
help/fr/newlabel.page [new file with mode: 0644]
help/fr/printfile.page [new file with mode: 0644]
help/fr/select.page [new file with mode: 0644]
help/fr/skipfields.page [new file with mode: 0644]
help/glabels.omf.in [deleted file]
help/nl/about.page [new file with mode: 0644]
help/nl/basicusage.page [new file with mode: 0644]
help/nl/createnew.page [new file with mode: 0644]
help/nl/customize.page [new file with mode: 0644]
help/nl/customtemplate.page [new file with mode: 0644]
help/nl/editprop.page [new file with mode: 0644]
help/nl/index.page [new file with mode: 0644]
help/nl/labelprop.page [new file with mode: 0644]
help/nl/license.page [new file with mode: 0644]
help/nl/mancreate.page [new file with mode: 0644]
help/nl/merge-ex1.page [new file with mode: 0644]
help/nl/merge-ex2.page [new file with mode: 0644]
help/nl/merge-ex3.page [new file with mode: 0644]
help/nl/merge-ex4.page [new file with mode: 0644]
help/nl/merge.page [new file with mode: 0644]
help/nl/mergefeatures.page [new file with mode: 0644]
help/nl/multifile.page [new file with mode: 0644]
help/nl/newlabel.page [new file with mode: 0644]
help/nl/nl.po [new file with mode: 0644]
help/nl/printfile.page [new file with mode: 0644]
help/nl/select.page [new file with mode: 0644]
help/nl/skipfields.page [new file with mode: 0644]
help/sl/about.page [new file with mode: 0644]
help/sl/basicusage.page [new file with mode: 0644]
help/sl/createnew.page [new file with mode: 0644]
help/sl/customize.page [new file with mode: 0644]
help/sl/customtemplate.page [new file with mode: 0644]
help/sl/editprop.page [new file with mode: 0644]
help/sl/index.page [new file with mode: 0644]
help/sl/labelprop.page [new file with mode: 0644]
help/sl/license.page [new file with mode: 0644]
help/sl/mancreate.page [new file with mode: 0644]
help/sl/merge-ex1.page [new file with mode: 0644]
help/sl/merge-ex2.page [new file with mode: 0644]
help/sl/merge-ex3.page [new file with mode: 0644]
help/sl/merge-ex4.page [new file with mode: 0644]
help/sl/merge.page [new file with mode: 0644]
help/sl/mergefeatures.page [new file with mode: 0644]
help/sl/multifile.page [new file with mode: 0644]
help/sl/newlabel.page [new file with mode: 0644]
help/sl/printfile.page [new file with mode: 0644]
help/sl/select.page [new file with mode: 0644]
help/sl/skipfields.page [new file with mode: 0644]
help/sl/sl.po [new file with mode: 0644]
iec16022-0.2.1/BUGS [deleted file]
iec16022-0.2.1/CHANGELOG [deleted file]
iec16022-0.2.1/CREDITS [deleted file]
iec16022-0.2.1/INSTALL [deleted file]
iec16022-0.2.1/LICENSE [deleted file]
iec16022-0.2.1/Makefile.am [deleted file]
iec16022-0.2.1/Makefile.dist [deleted file]
iec16022-0.2.1/Makefile.in [deleted file]
iec16022-0.2.1/README [deleted file]
iec16022-0.2.1/README.glabels [deleted file]
iec16022-0.2.1/TODO [deleted file]
iec16022-0.2.1/iec16022.1 [deleted file]
iec16022-0.2.1/iec16022.c [deleted file]
iec16022-0.2.1/iec16022ecc200.c [deleted file]
iec16022-0.2.1/iec16022ecc200.h [deleted file]
iec16022-0.2.1/image.c [deleted file]
iec16022-0.2.1/image.h [deleted file]
iec16022-0.2.1/reedsol.c [deleted file]
iec16022-0.2.1/reedsol.h [deleted file]
iec16022-0.2.1/test/testsuite-example.bin [deleted file]
iec16022-0.2.1/test/testsuite-example.eps [deleted file]
iec16022-0.2.1/test/testsuite-example.hex [deleted file]
iec16022-0.2.1/test/testsuite-example.png [deleted file]
iec16022-0.2.1/test/testsuite-example.text [deleted file]
iec16022-0.2.1/test/testsuite.sh [deleted file]
libglabels/Makefile.am
libglabels/Makefile.in
libglabels/category.c [deleted file]
libglabels/category.h [deleted file]
libglabels/db.c [deleted file]
libglabels/db.h [deleted file]
libglabels/enums.h [deleted file]
libglabels/lgl-category.c [new file with mode: 0644]
libglabels/lgl-category.h [new file with mode: 0644]
libglabels/lgl-db.c [new file with mode: 0644]
libglabels/lgl-db.h [new file with mode: 0644]
libglabels/lgl-paper.c [new file with mode: 0644]
libglabels/lgl-paper.h [new file with mode: 0644]
libglabels/lgl-str.c [new file with mode: 0644]
libglabels/lgl-str.h [new file with mode: 0644]
libglabels/lgl-template.c [new file with mode: 0644]
libglabels/lgl-template.h [new file with mode: 0644]
libglabels/lgl-units.c [new file with mode: 0644]
libglabels/lgl-units.h [new file with mode: 0644]
libglabels/lgl-vendor.c [new file with mode: 0644]
libglabels/lgl-vendor.h [new file with mode: 0644]
libglabels/lgl-xml-category.c [new file with mode: 0644]
libglabels/lgl-xml-category.h [new file with mode: 0644]
libglabels/lgl-xml-paper.c [new file with mode: 0644]
libglabels/lgl-xml-paper.h [new file with mode: 0644]
libglabels/lgl-xml-template.c [new file with mode: 0644]
libglabels/lgl-xml-template.h [new file with mode: 0644]
libglabels/lgl-xml-vendor.c [new file with mode: 0644]
libglabels/lgl-xml-vendor.h [new file with mode: 0644]
libglabels/lgl-xml.c [new file with mode: 0644]
libglabels/lgl-xml.h [new file with mode: 0644]
libglabels/libglabels-3.0.pc.in [new file with mode: 0644]
libglabels/libglabels-private.h
libglabels/libglabels.h
libglabels/libglabels.pc.in [deleted file]
libglabels/paper.c [deleted file]
libglabels/paper.h [deleted file]
libglabels/str.c [deleted file]
libglabels/str.h [deleted file]
libglabels/template.c [deleted file]
libglabels/template.h [deleted file]
libglabels/xml-category.c [deleted file]
libglabels/xml-category.h [deleted file]
libglabels/xml-paper.c [deleted file]
libglabels/xml-paper.h [deleted file]
libglabels/xml-template.c [deleted file]
libglabels/xml-template.h [deleted file]
libglabels/xml.c [deleted file]
libglabels/xml.h [deleted file]
libglbarcode/Makefile.am [new file with mode: 0644]
libglbarcode/Makefile.in [new file with mode: 0644]
libglbarcode/lgl-barcode-code39.c [new file with mode: 0644]
libglbarcode/lgl-barcode-code39.h [new file with mode: 0644]
libglbarcode/lgl-barcode-create.c [new file with mode: 0644]
libglbarcode/lgl-barcode-create.h [new file with mode: 0644]
libglbarcode/lgl-barcode-onecode.c [new file with mode: 0644]
libglbarcode/lgl-barcode-onecode.h [new file with mode: 0644]
libglbarcode/lgl-barcode-postnet.c [new file with mode: 0644]
libglbarcode/lgl-barcode-postnet.h [new file with mode: 0644]
libglbarcode/lgl-barcode-render-to-cairo.c [new file with mode: 0644]
libglbarcode/lgl-barcode-render-to-cairo.h [new file with mode: 0644]
libglbarcode/lgl-barcode-type.h [new file with mode: 0644]
libglbarcode/lgl-barcode.c [new file with mode: 0644]
libglbarcode/lgl-barcode.h [new file with mode: 0644]
libglbarcode/libglbarcode-3.0.pc.in [new file with mode: 0644]
libglbarcode/libglbarcode.h [new file with mode: 0644]
ltmain.sh
po/LINGUAS
po/POTFILES.in
po/POTFILES.skip [new file with mode: 0644]
po/ca.po
po/ca@valencia.po [new file with mode: 0644]
po/cs.po
po/da.po
po/de.po
po/eo.po
po/es.po
po/fr.po
po/it.po
po/ja.po
po/ko.po
po/nb.po
po/nl.po [new file with mode: 0644]
po/pl.po
po/pt.po
po/pt_BR.po
po/ru.po
po/sl.po
po/sv.po
po/zh_CN.po
po/zh_TW.po
src/Makefile.am
src/Makefile.in
src/base64.c [deleted file]
src/base64.h [deleted file]
src/bc-backends.c [new file with mode: 0644]
src/bc-backends.h [new file with mode: 0644]
src/bc-builtin.c [new file with mode: 0644]
src/bc-builtin.h [new file with mode: 0644]
src/bc-gnubarcode.c
src/bc-gnubarcode.h
src/bc-iec16022.c
src/bc-iec16022.h
src/bc-iec18004.c [new file with mode: 0644]
src/bc-iec18004.h [new file with mode: 0644]
src/bc-postnet.c [deleted file]
src/bc-postnet.h [deleted file]
src/bc-zint.c [new file with mode: 0644]
src/bc-zint.h [new file with mode: 0644]
src/bc.c [deleted file]
src/bc.h [deleted file]
src/builder-util.c [new file with mode: 0644]
src/builder-util.h [new file with mode: 0644]
src/cairo-ellipse-path.c
src/cairo-ellipse-path.h
src/cairo-label-path.c
src/cairo-label-path.h
src/cairo-markup-path.c
src/cairo-markup-path.h
src/color-combo-button.c [new file with mode: 0644]
src/color-combo-button.h [new file with mode: 0644]
src/color-combo-color-menu-item.c [new file with mode: 0644]
src/color-combo-color-menu-item.h [new file with mode: 0644]
src/color-combo-menu.c [new file with mode: 0644]
src/color-combo-menu.h [new file with mode: 0644]
src/color-combo.c [new file with mode: 0644]
src/color-combo.h [new file with mode: 0644]
src/color-history-model.c [new file with mode: 0644]
src/color-history-model.h [new file with mode: 0644]
src/color-swatch.c [new file with mode: 0644]
src/color-swatch.h [new file with mode: 0644]
src/color.c
src/color.h
src/combo-util.c [new file with mode: 0644]
src/combo-util.h [new file with mode: 0644]
src/critical-error-handler.c
src/critical-error-handler.h
src/cursors/Makefile.am [new file with mode: 0644]
src/cursors/Makefile.in [new file with mode: 0644]
src/cursors/cursor_barcode.png [new file with mode: 0644]
src/cursors/cursor_box.png [new file with mode: 0644]
src/cursors/cursor_ellipse.png [new file with mode: 0644]
src/cursors/cursor_image.png [new file with mode: 0644]
src/cursors/cursor_line.png [new file with mode: 0644]
src/cursors/cursor_pixdata.h [new file with mode: 0644]
src/cursors/cursor_text.png [new file with mode: 0644]
src/debug.c
src/debug.h
src/field-button-menu.c [new file with mode: 0644]
src/field-button-menu.h [new file with mode: 0644]
src/field-button.c [new file with mode: 0644]
src/field-button.h [new file with mode: 0644]
src/file-util.c [new file with mode: 0644]
src/file-util.h [new file with mode: 0644]
src/file.c
src/file.h
src/font-combo-menu-item.c [new file with mode: 0644]
src/font-combo-menu-item.h [new file with mode: 0644]
src/font-combo-menu.c [new file with mode: 0644]
src/font-combo-menu.h [new file with mode: 0644]
src/font-combo.c [new file with mode: 0644]
src/font-combo.h [new file with mode: 0644]
src/font-history-model.c [new file with mode: 0644]
src/font-history-model.h [new file with mode: 0644]
src/font-history.c [new file with mode: 0644]
src/font-history.h [new file with mode: 0644]
src/font-sample.c [new file with mode: 0644]
src/font-sample.h [new file with mode: 0644]
src/font-util.c [new file with mode: 0644]
src/font-util.h [new file with mode: 0644]
src/glabels-batch.c
src/glabels.c
src/hig.h [deleted file]
src/label-barcode.c
src/label-barcode.h
src/label-box.c
src/label-box.h
src/label-ellipse.c
src/label-ellipse.h
src/label-image.c
src/label-image.h
src/label-line.c
src/label-line.h
src/label-object.c
src/label-object.h
src/label-text.c
src/label-text.h
src/label.c
src/label.h
src/marshal.c
src/marshal.h
src/marshal.list
src/media-select.c [new file with mode: 0644]
src/media-select.h [new file with mode: 0644]
src/merge-evolution.c
src/merge-evolution.h
src/merge-init.c
src/merge-init.h
src/merge-properties-dialog.c
src/merge-properties-dialog.h
src/merge-text.c
src/merge-text.h
src/merge-vcard.c
src/merge-vcard.h
src/merge.c
src/merge.h
src/message-bar.c [new file with mode: 0644]
src/message-bar.h [new file with mode: 0644]
src/mini-label-preview.c [new file with mode: 0644]
src/mini-label-preview.h [new file with mode: 0644]
src/mini-preview-pixbuf-cache.c
src/mini-preview-pixbuf-cache.h
src/mini-preview-pixbuf.c
src/mini-preview-pixbuf.h
src/mini-preview.c [new file with mode: 0644]
src/mini-preview.h [new file with mode: 0644]
src/mygal/Makefile.am [deleted file]
src/mygal/Makefile.in [deleted file]
src/mygal/color-group.c [deleted file]
src/mygal/color-group.h [deleted file]
src/mygal/color-palette.c [deleted file]
src/mygal/color-palette.h [deleted file]
src/mygal/e-colors.c [deleted file]
src/mygal/e-colors.h [deleted file]
src/mygal/e-marshal.list [deleted file]
src/mygal/e-util.h [deleted file]
src/mygal/mygal-combo-box.c [deleted file]
src/mygal/mygal-combo-box.h [deleted file]
src/mygal/widget-color-combo.c [deleted file]
src/mygal/widget-color-combo.h [deleted file]
src/new-label-dialog.c
src/new-label-dialog.h
src/object-editor-bc-page.c
src/object-editor-data-page.c
src/object-editor-edit-page.c
src/object-editor-fill-page.c
src/object-editor-image-page.c
src/object-editor-line-page.c
src/object-editor-lsize-page.c
src/object-editor-position-page.c
src/object-editor-private.h
src/object-editor-shadow-page.c
src/object-editor-size-page.c
src/object-editor-text-page.c
src/object-editor.c
src/object-editor.h
src/pixbuf-cache.c
src/pixbuf-cache.h
src/pixbuf-util.c [new file with mode: 0644]
src/pixbuf-util.h [new file with mode: 0644]
src/pixmaps/Makefile.in
src/prefs-dialog.c
src/prefs-dialog.h
src/prefs-model.c
src/prefs-model.h
src/prefs.c
src/prefs.h
src/print-op-dialog.c [new file with mode: 0644]
src/print-op-dialog.h [new file with mode: 0644]
src/print-op.c
src/print-op.h
src/print.c
src/print.h
src/recent.c
src/recent.h
src/stock-pixmaps/Makefile.am [deleted file]
src/stock-pixmaps/Makefile.in [deleted file]
src/stock-pixmaps/stock_align_bottom_16.png [deleted file]
src/stock-pixmaps/stock_align_hcenter_16.png [deleted file]
src/stock-pixmaps/stock_align_left_16.png [deleted file]
src/stock-pixmaps/stock_align_right_16.png [deleted file]
src/stock-pixmaps/stock_align_top_16.png [deleted file]
src/stock-pixmaps/stock_align_vcenter_16.png [deleted file]
src/stock-pixmaps/stock_arrow_16.png [deleted file]
src/stock-pixmaps/stock_arrow_24.png [deleted file]
src/stock-pixmaps/stock_barcode_16.png [deleted file]
src/stock-pixmaps/stock_barcode_24.png [deleted file]
src/stock-pixmaps/stock_box_16.png [deleted file]
src/stock-pixmaps/stock_box_24.png [deleted file]
src/stock-pixmaps/stock_bucket_fill_16.png [deleted file]
src/stock-pixmaps/stock_bucket_fill_24.png [deleted file]
src/stock-pixmaps/stock_center_horiz_16.png [deleted file]
src/stock-pixmaps/stock_center_vert_16.png [deleted file]
src/stock-pixmaps/stock_ellipse_16.png [deleted file]
src/stock-pixmaps/stock_ellipse_24.png [deleted file]
src/stock-pixmaps/stock_flip_horiz_16.png [deleted file]
src/stock-pixmaps/stock_flip_vert_16.png [deleted file]
src/stock-pixmaps/stock_hchain_24.png [deleted file]
src/stock-pixmaps/stock_hchain_broken_24.png [deleted file]
src/stock-pixmaps/stock_image_16.png [deleted file]
src/stock-pixmaps/stock_image_24.png [deleted file]
src/stock-pixmaps/stock_line_16.png [deleted file]
src/stock-pixmaps/stock_line_24.png [deleted file]
src/stock-pixmaps/stock_merge_16.png [deleted file]
src/stock-pixmaps/stock_merge_24.png [deleted file]
src/stock-pixmaps/stock_order_bottom_16.png [deleted file]
src/stock-pixmaps/stock_order_top_16.png [deleted file]
src/stock-pixmaps/stock_pencil_16.png [deleted file]
src/stock-pixmaps/stock_pencil_24.png [deleted file]
src/stock-pixmaps/stock_properties_16.png [deleted file]
src/stock-pixmaps/stock_properties_24.png [deleted file]
src/stock-pixmaps/stock_rotate_left_16.png [deleted file]
src/stock-pixmaps/stock_rotate_right_16.png [deleted file]
src/stock-pixmaps/stock_text_16.png [deleted file]
src/stock-pixmaps/stock_text_24.png [deleted file]
src/stock-pixmaps/stock_vchain_24.png [deleted file]
src/stock-pixmaps/stock_vchain_broken_24.png [deleted file]
src/stock-pixmaps/stockpixbufs.h [deleted file]
src/stock.c [deleted file]
src/stock.h [deleted file]
src/str-util.c [new file with mode: 0644]
src/str-util.h [new file with mode: 0644]
src/svg-cache.c [new file with mode: 0644]
src/svg-cache.h [new file with mode: 0644]
src/template-designer.c
src/template-designer.h
src/template-history-model.c [new file with mode: 0644]
src/template-history-model.h [new file with mode: 0644]
src/template-history.c [new file with mode: 0644]
src/template-history.h [new file with mode: 0644]
src/text-node.c
src/text-node.h
src/ui-commands.c
src/ui-commands.h
src/ui-property-bar.c
src/ui-property-bar.h
src/ui-sidebar.c
src/ui-sidebar.h
src/ui-util.c
src/ui-util.h
src/ui.c
src/ui.h
src/units-util.c [new file with mode: 0644]
src/units-util.h [new file with mode: 0644]
src/util.c [deleted file]
src/util.h [deleted file]
src/view-barcode.c
src/view-barcode.h
src/view-box.c
src/view-box.h
src/view-ellipse.c
src/view-ellipse.h
src/view-image.c
src/view-image.h
src/view-line.c
src/view-line.h
src/view-object.c [deleted file]
src/view-object.h [deleted file]
src/view-text.c
src/view-text.h
src/view.c
src/view.h
src/warning-handler.c
src/warning-handler.h
src/wdgt-chain-button.c
src/wdgt-chain-button.h
src/wdgt-media-select.c [deleted file]
src/wdgt-media-select.h [deleted file]
src/wdgt-mini-preview.c [deleted file]
src/wdgt-mini-preview.h [deleted file]
src/wdgt-print-copies.c [deleted file]
src/wdgt-print-copies.h [deleted file]
src/wdgt-print-merge.c [deleted file]
src/wdgt-print-merge.h [deleted file]
src/wdgt-rotate-label.c [deleted file]
src/wdgt-rotate-label.h [deleted file]
src/window.c
src/window.h
src/xml-label-04.c
src/xml-label-04.h
src/xml-label.c
src/xml-label.h
templates/Makefile.am [new file with mode: 0644]
templates/Makefile.in [new file with mode: 0644]
templates/ascom-iso-templates.xml [new file with mode: 0644]
templates/avery-iso-templates.xml [new file with mode: 0644]
templates/avery-other-templates.xml [new file with mode: 0644]
templates/avery-us-templates.xml [new file with mode: 0644]
templates/brother-other-templates.xml [new file with mode: 0644]
templates/categories.xml [new file with mode: 0644]
templates/databecker-iso-templates.xml [new file with mode: 0644]
templates/dataline-iso-templates.xml [new file with mode: 0644]
templates/decadry-iso-templates.xml [new file with mode: 0644]
templates/dymo-other-templates.xml [new file with mode: 0644]
templates/geha-iso-templates.xml [new file with mode: 0644]
templates/glabels-3.0.dtd [new file with mode: 0644]
templates/hama-iso-templates.xml [new file with mode: 0644]
templates/herma-iso-templates.xml [new file with mode: 0644]
templates/jac-iso-templates.xml [new file with mode: 0644]
templates/maco-us-templates.xml [new file with mode: 0644]
templates/meritline-us-templates.xml [new file with mode: 0644]
templates/misc-iso-templates.xml [new file with mode: 0644]
templates/misc-other-templates.xml [new file with mode: 0644]
templates/misc-us-templates.xml [new file with mode: 0644]
templates/paper-sizes.xml [new file with mode: 0644]
templates/pearl-iso-templates.xml [new file with mode: 0644]
templates/uline-us-templates.xml [new file with mode: 0644]
templates/vendors.xml [new file with mode: 0644]
templates/worldlabel-us-templates.xml [new file with mode: 0644]
templates/zweckform-iso-templates.xml [new file with mode: 0644]

diff --git a/AUTHORS b/AUTHORS
index 0a29f97e031fc58ab90c0d3682c06757618521f1..68489f48e92695af5c94cfc52716503ecc34d6bf 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -6,68 +6,41 @@ Jim Evins <evins@snaught.com>
 Acknowledgments
 ===============
 
-- The GNU Barcode Library provides a large chunk of the barcode functionality
-and is distributed with glabels.  See ./barcode-0.98/README for more
-information.  The author:
-
-       Alessandro Rubini <rubini@gnu.org>
-
-- The iec16022 library provides encoding for 2D barcodes.  See
-iec16022-0.2.1/README for more information.
-
-- Glabels includes modified versions of several widgets from the GAL library.
-These are copyright:
-
-       * Copyright 2000, 2001, Ximian, Inc.
-       * Copyright 2000, Michael Levy
-       * Copyright 2001, Almer S. Tigelaar
-
-- Glabels includes a modified version of the gimpchainbutton widget from the
-gimp, as well as several stock icons from the gimp's default theme.
-These are copyright:
-
-        * Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
-        * Copyright (C) 1999-2000 Sven Neumann <sven@gimp.org>
-
 Glabels includes contributions from:
+
+       Mario Blättermann <mariobl@gnome.org> -- Documentation & i18n maintainer
        Frederic Ruaudel  <grumz@users.sf.net>
        Emmanuel Pacaud <emmanuel.pacaud@univ-poitiers.fr>
        Wayne Schuller <k_wayne@linuxpower.org>
        Austin Henry  <ahenry@users.sourceforge.net> -- EDS and vcard backends
        nestor di <nestordi@usuarios.retecal.es>  --  excellent splash screen
                                                       that first appeared in
-                                                      0.4.3:
+                                                      0.4.3
        Darren Warner <warnerd@users.sourceforge.net>
        Javier Donaire Segarra <jyuyu@users.sourceforge.net>
-       Alessandro Zummo <azummo@towertech.it>
+       Alessandro Zummo <a.zummo@towertech.it>
        José Dapena Paz <jdapena@igalia.com>
        Akkana <akkana@shallowsky.com>
        Dag Wieers <dag@wieers.com>
        Mário Meyer <mario@meyer.eti.br>
        Peter Cherriman <glabels-devel2712@bubieyehyeh.me.uk>
+       Daniel Mueller <daniel@danm.de>
+       Samual Lown <sam.lown@gmail.com>
+       Robin Stuart <robin@zint.org.uk>
+
+
+Glabels includes a modified version of the gimpchainbutton widget from the
+gimp, as well as several stock icons from the gimp's default theme.
+These are copyright:
+
+        * Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
+        * Copyright (C) 1999-2000 Sven Neumann <sven@gimp.org>
+
 
 Translations:
 
-       Olivier Berger <oberger@april.org> -- French (original)
-       Florent Morel <florent@taket.org> -- French (2.0.2)
-       Claude Paroz <claude@2xlibre.net> -- French (2.1.4)
-       Marcus Bauer <m@7n7.de> -- German (original)
-       Christian Neumair <christian-neumair@web.de> -- German (1.89.1)
-       Mario Blättermann <mariobl@gnome.org> -- German (2.2.5)
-       Takeshi AIHANA <aihana@gnome.gr.jp> -- Japanese
-       Paulo Rogério Ormenese <pormenese@uol.com.br> -- Brazilian Portuguese
-       Víctor Moral <victor@pasmao.net> -- Spanish
-       sergio rivadero <sergiorivadero@argentina.com> -- Spanish (2.0.3)
-       Vitaly Lipatov <lav@altlinux.ru> -- Russian
-       Shell, Hin-lik Hung <shell@home.shellhung.org> -- Chinese (TW)
-       Arkadiusz Lipiec <A.Lipiec@elka.pw.edu.pl> -- Polish
-       David Makovský (Yakeen) <yakeen@sannyas-on.net> -- Czech
-       Zbynek Mrkvicka <zbynek@oachot.cz> -- Czech (2.0.3)
-       Mancio <mancio_and@yahoo.it> -- Italian
-       Daniele Medri <daniele.medri@libero.it> -- Italian (2.0.3)
-       Antonio C. Codazzi "la Filozofo" <f_sophia@libero.it> -- Esperanto
-       David Planella <david.planella@gmail.com> -- Catalan
-       Careon <zzbusagain@yahoo.com.cn> -- Chinese (CN)
+       See individual po files for credits.
+
 
 The following people have submitted label templates or information about
 particular products (I apologize if I have missed anybody):
@@ -95,7 +68,6 @@ particular products (I apologize if I have missed anybody):
        Dan Gray
        Keith Hudson
        Tamas Bondar
-       George Mitchell
        Erich Pfennig
        Gwen Patton
        Miek Gieben
@@ -186,6 +158,13 @@ particular products (I apologize if I have missed anybody):
        Russell Knighton
        Anthony Mark Morningstar
        Ian Shuttleworth
+       Rudolph Leitgeb
+       E. Travis
+       Stefan Tauner
+       Ralf Moll
+       Kevin Partin
+       Stuart Coyle
+       Jean-Philippe Guérard
 
 
 And many others for their many helpful suggestions and bug reports -- thanks.
diff --git a/COPYING b/COPYING
index d60c31a97a544b53039088d14fe9114583c0efc3..94a9ed024d3859793618152ea559a168bbcbb5e2 100644 (file)
--- a/COPYING
+++ b/COPYING
-                   GNU GENERAL PUBLIC LICENSE
-                      Version 2, June 1991
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
 
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
-                           Preamble
+                            Preamble
 
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
 your programs, too.
 
   When we speak of free software, we are referring to freedom, not
 price.  Our General Public Licenses are designed to make sure that you
 have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
 
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
 
   For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
 
   The precise terms and conditions for copying, distribution and
 modification follow.
-\f
-                   GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-\f
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-\f
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
 this License.
 
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
 otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-\f
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time.  Such new versions will
 be similar in spirit to the present version, but may differ in detail to
 address new problems or concerns.
 
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-                           NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-                    END OF TERMS AND CONDITIONS
-\f
-           How to Apply These Terms to Your New Programs
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
 
   If you develop a new program, and you want it to be of the greatest
 possible use to the public, the best way to achieve this is to make it
@@ -287,15 +628,15 @@ free software which everyone can redistribute and change under these terms.
 
   To do so, attach the following notices to the program.  It is safest
 to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
+state the exclusion of warranty; and each file should have at least
 the "copyright" line and a pointer to where the full notice is found.
 
     <one line to give the program's name and a brief idea of what it does.>
     Copyright (C) <year>  <name of author>
 
-    This program is free software; you can redistribute it and/or modify
+    This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
+    the Free Software Foundation, either version 3 of the License, or
     (at your option) any later version.
 
     This program is distributed in the hope that it will be useful,
@@ -304,37 +645,30 @@ the "copyright" line and a pointer to where the full notice is found.
     GNU General Public License for more details.
 
     You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 Also add information on how to contact you by electronic and paper mail.
 
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
 
-    Gnomovision version 69, Copyright (C) year  name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    <program>  Copyright (C) <year>  <name of author>
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
     This is free software, and you are welcome to redistribute it
     under certain conditions; type `show c' for details.
 
 The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
+parts of the General Public License.  Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+  The GNU General Public License does not permit incorporating your program
+into proprietary programs.  If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.  But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
index b42936beb35d5bbf217cb7eecd8eb8c504e8979a..23fba3041eb32a4756b5d0dc0927cc642c857320 100644 (file)
-               GNU Free Documentation License
-                  Version 1.1, March 2000
+Attribution-ShareAlike 3.0 Unported
 
- Copyright (C) 2000  Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
+CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE.
+License
 
+THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
 
-0. PREAMBLE
+BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
 
-The purpose of this License is to make a manual, textbook, or other
-written document "free" in the sense of freedom: to assure everyone
-the effective freedom to copy and redistribute it, with or without
-modifying it, either commercially or noncommercially.  Secondarily,
-this License preserves for the author and publisher a way to get
-credit for their work, while not being considered responsible for
-modifications made by others.
+1. Definitions
 
-This License is a kind of "copyleft", which means that derivative
-works of the document must themselves be free in the same sense.  It
-complements the GNU General Public License, which is a copyleft
-license designed for free software.
+"Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License.
+"Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined below) for the purposes of this License.
+"Creative Commons Compatible License" means a license that is listed at http://creativecommons.org/compatiblelicenses that has been approved by Creative Commons as being essentially equivalent to this License, including, at a minimum, because that license: (i) contains terms that have the same purpose, meaning and effect as the License Elements of this License; and, (ii) explicitly permits the relicensing of adaptations of works made available under that license under this License or a Creative Commons jurisdiction license with the same License Elements as this License.
+"Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership.
+"License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike.
+"Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.
+"Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast.
+"Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.
+"You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.
+"Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.
+"Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.
+2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.
 
-We have designed this License in order to use it for manuals for free
-software, because free software needs free documentation: a free
-program should come with manuals providing the same freedoms that the
-software does.  But this License is not limited to software manuals;
-it can be used for any textual work, regardless of subject matter or
-whether it is published as a printed book.  We recommend this License
-principally for works whose purpose is instruction or reference.
+3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:
 
+to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections;
+to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified.";
+to Distribute and Publicly Perform the Work including as incorporated in Collections; and,
+to Distribute and Publicly Perform Adaptations.
+For the avoidance of doubt:
 
-1. APPLICABILITY AND DEFINITIONS
+Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;
+Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and,
+Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License.
+The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved.
 
-This License applies to any manual or other work that contains a
-notice placed by the copyright holder saying it can be distributed
-under the terms of this License.  The "Document", below, refers to any
-such manual or work.  Any member of the public is a licensee, and is
-addressed as "you".
+4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:
 
-A "Modified Version" of the Document means any work containing the
-Document or a portion of it, either copied verbatim, or with
-modifications and/or translated into another language.
+You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(c), as requested.
+You may Distribute or Publicly Perform an Adaptation only under the terms of: (i) this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible License. If you license the Adaptation under one of the licenses mentioned in (iv), you must comply with the terms of that license. If you license the Adaptation under the terms of any of the licenses mentioned in (i), (ii) or (iii) (the "Applicable License"), you must comply with the terms of the Applicable License generally and the following provisions: (I) You must include a copy of, or the URI for, the Applicable License with every copy of each Adaptation You Distribute or Publicly Perform; (II) You may not offer or impose any terms on the Adaptation that restrict the terms of the Applicable License or the ability of the recipient of the Adaptation to exercise the rights granted to that recipient under the terms of the Applicable License; (III) You must keep intact all notices that refer to the Applicable License and to the disclaimer of warranties with every copy of the Work as included in the Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or Publicly Perform the Adaptation, You may not impose any effective technological measures on the Adaptation that restrict the ability of a recipient of the Adaptation from You to exercise the rights granted to that recipient under the terms of the Applicable License. This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does not require the Collection apart from the Adaptation itself to be made subject to the terms of the Applicable License.
+If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Ssection 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.
+Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise.
+5. Representations, Warranties and Disclaimer
 
-A "Secondary Section" is a named appendix or a front-matter section of
-the Document that deals exclusively with the relationship of the
-publishers or authors of the Document to the Document's overall subject
-(or to related matters) and contains nothing that could fall directly
-within that overall subject.  (For example, if the Document is in part a
-textbook of mathematics, a Secondary Section may not explain any
-mathematics.)  The relationship could be a matter of historical
-connection with the subject or with related matters, or of legal,
-commercial, philosophical, ethical or political position regarding
-them.
+UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
 
-The "Invariant Sections" are certain Secondary Sections whose titles
-are designated, as being those of Invariant Sections, in the notice
-that says that the Document is released under this License.
+6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
 
-The "Cover Texts" are certain short passages of text that are listed,
-as Front-Cover Texts or Back-Cover Texts, in the notice that says that
-the Document is released under this License.
+7. Termination
 
-A "Transparent" copy of the Document means a machine-readable copy,
-represented in a format whose specification is available to the
-general public, whose contents can be viewed and edited directly and
-straightforwardly with generic text editors or (for images composed of
-pixels) generic paint programs or (for drawings) some widely available
-drawing editor, and that is suitable for input to text formatters or
-for automatic translation to a variety of formats suitable for input
-to text formatters.  A copy made in an otherwise Transparent file
-format whose markup has been designed to thwart or discourage
-subsequent modification by readers is not Transparent.  A copy that is
-not "Transparent" is called "Opaque".
+This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
+Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.
+8. Miscellaneous
 
-Examples of suitable formats for Transparent copies include plain
-ASCII without markup, Texinfo input format, LaTeX input format, SGML
-or XML using a publicly available DTD, and standard-conforming simple
-HTML designed for human modification.  Opaque formats include
-PostScript, PDF, proprietary formats that can be read and edited only
-by proprietary word processors, SGML or XML for which the DTD and/or
-processing tools are not generally available, and the
-machine-generated HTML produced by some word processors for output
-purposes only.
-
-The "Title Page" means, for a printed book, the title page itself,
-plus such following pages as are needed to hold, legibly, the material
-this License requires to appear in the title page.  For works in
-formats which do not have any title page as such, "Title Page" means
-the text near the most prominent appearance of the work's title,
-preceding the beginning of the body of the text.
-
-
-2. VERBATIM COPYING
-
-You may copy and distribute the Document in any medium, either
-commercially or noncommercially, provided that this License, the
-copyright notices, and the license notice saying this License applies
-to the Document are reproduced in all copies, and that you add no other
-conditions whatsoever to those of this License.  You may not use
-technical measures to obstruct or control the reading or further
-copying of the copies you make or distribute.  However, you may accept
-compensation in exchange for copies.  If you distribute a large enough
-number of copies you must also follow the conditions in section 3.
-
-You may also lend copies, under the same conditions stated above, and
-you may publicly display copies.
-
-
-3. COPYING IN QUANTITY
-
-If you publish printed copies of the Document numbering more than 100,
-and the Document's license notice requires Cover Texts, you must enclose
-the copies in covers that carry, clearly and legibly, all these Cover
-Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
-the back cover.  Both covers must also clearly and legibly identify
-you as the publisher of these copies.  The front cover must present
-the full title with all words of the title equally prominent and
-visible.  You may add other material on the covers in addition.
-Copying with changes limited to the covers, as long as they preserve
-the title of the Document and satisfy these conditions, can be treated
-as verbatim copying in other respects.
-
-If the required texts for either cover are too voluminous to fit
-legibly, you should put the first ones listed (as many as fit
-reasonably) on the actual cover, and continue the rest onto adjacent
-pages.
-
-If you publish or distribute Opaque copies of the Document numbering
-more than 100, you must either include a machine-readable Transparent
-copy along with each Opaque copy, or state in or with each Opaque copy
-a publicly-accessible computer-network location containing a complete
-Transparent copy of the Document, free of added material, which the
-general network-using public has access to download anonymously at no
-charge using public-standard network protocols.  If you use the latter
-option, you must take reasonably prudent steps, when you begin
-distribution of Opaque copies in quantity, to ensure that this
-Transparent copy will remain thus accessible at the stated location
-until at least one year after the last time you distribute an Opaque
-copy (directly or through your agents or retailers) of that edition to
-the public.
-
-It is requested, but not required, that you contact the authors of the
-Document well before redistributing any large number of copies, to give
-them a chance to provide you with an updated version of the Document.
-
-
-4. MODIFICATIONS
-
-You may copy and distribute a Modified Version of the Document under
-the conditions of sections 2 and 3 above, provided that you release
-the Modified Version under precisely this License, with the Modified
-Version filling the role of the Document, thus licensing distribution
-and modification of the Modified Version to whoever possesses a copy
-of it.  In addition, you must do these things in the Modified Version:
-
-A. Use in the Title Page (and on the covers, if any) a title distinct
-   from that of the Document, and from those of previous versions
-   (which should, if there were any, be listed in the History section
-   of the Document).  You may use the same title as a previous version
-   if the original publisher of that version gives permission.
-B. List on the Title Page, as authors, one or more persons or entities
-   responsible for authorship of the modifications in the Modified
-   Version, together with at least five of the principal authors of the
-   Document (all of its principal authors, if it has less than five).
-C. State on the Title page the name of the publisher of the
-   Modified Version, as the publisher.
-D. Preserve all the copyright notices of the Document.
-E. Add an appropriate copyright notice for your modifications
-   adjacent to the other copyright notices.
-F. Include, immediately after the copyright notices, a license notice
-   giving the public permission to use the Modified Version under the
-   terms of this License, in the form shown in the Addendum below.
-G. Preserve in that license notice the full lists of Invariant Sections
-   and required Cover Texts given in the Document's license notice.
-H. Include an unaltered copy of this License.
-I. Preserve the section entitled "History", and its title, and add to
-   it an item stating at least the title, year, new authors, and
-   publisher of the Modified Version as given on the Title Page.  If
-   there is no section entitled "History" in the Document, create one
-   stating the title, year, authors, and publisher of the Document as
-   given on its Title Page, then add an item describing the Modified
-   Version as stated in the previous sentence.
-J. Preserve the network location, if any, given in the Document for
-   public access to a Transparent copy of the Document, and likewise
-   the network locations given in the Document for previous versions
-   it was based on.  These may be placed in the "History" section.
-   You may omit a network location for a work that was published at
-   least four years before the Document itself, or if the original
-   publisher of the version it refers to gives permission.
-K. In any section entitled "Acknowledgements" or "Dedications",
-   preserve the section's title, and preserve in the section all the
-   substance and tone of each of the contributor acknowledgements
-   and/or dedications given therein.
-L. Preserve all the Invariant Sections of the Document,
-   unaltered in their text and in their titles.  Section numbers
-   or the equivalent are not considered part of the section titles.
-M. Delete any section entitled "Endorsements".  Such a section
-   may not be included in the Modified Version.
-N. Do not retitle any existing section as "Endorsements"
-   or to conflict in title with any Invariant Section.
-
-If the Modified Version includes new front-matter sections or
-appendices that qualify as Secondary Sections and contain no material
-copied from the Document, you may at your option designate some or all
-of these sections as invariant.  To do this, add their titles to the
-list of Invariant Sections in the Modified Version's license notice.
-These titles must be distinct from any other section titles.
-
-You may add a section entitled "Endorsements", provided it contains
-nothing but endorsements of your Modified Version by various
-parties--for example, statements of peer review or that the text has
-been approved by an organization as the authoritative definition of a
-standard.
-
-You may add a passage of up to five words as a Front-Cover Text, and a
-passage of up to 25 words as a Back-Cover Text, to the end of the list
-of Cover Texts in the Modified Version.  Only one passage of
-Front-Cover Text and one of Back-Cover Text may be added by (or
-through arrangements made by) any one entity.  If the Document already
-includes a cover text for the same cover, previously added by you or
-by arrangement made by the same entity you are acting on behalf of,
-you may not add another; but you may replace the old one, on explicit
-permission from the previous publisher that added the old one.
-
-The author(s) and publisher(s) of the Document do not by this License
-give permission to use their names for publicity for or to assert or
-imply endorsement of any Modified Version.
-
-
-5. COMBINING DOCUMENTS
-
-You may combine the Document with other documents released under this
-License, under the terms defined in section 4 above for modified
-versions, provided that you include in the combination all of the
-Invariant Sections of all of the original documents, unmodified, and
-list them all as Invariant Sections of your combined work in its
-license notice.
-
-The combined work need only contain one copy of this License, and
-multiple identical Invariant Sections may be replaced with a single
-copy.  If there are multiple Invariant Sections with the same name but
-different contents, make the title of each such section unique by
-adding at the end of it, in parentheses, the name of the original
-author or publisher of that section if known, or else a unique number.
-Make the same adjustment to the section titles in the list of
-Invariant Sections in the license notice of the combined work.
-
-In the combination, you must combine any sections entitled "History"
-in the various original documents, forming one section entitled
-"History"; likewise combine any sections entitled "Acknowledgements",
-and any sections entitled "Dedications".  You must delete all sections
-entitled "Endorsements."
-
-
-6. COLLECTIONS OF DOCUMENTS
-
-You may make a collection consisting of the Document and other documents
-released under this License, and replace the individual copies of this
-License in the various documents with a single copy that is included in
-the collection, provided that you follow the rules of this License for
-verbatim copying of each of the documents in all other respects.
-
-You may extract a single document from such a collection, and distribute
-it individually under this License, provided you insert a copy of this
-License into the extracted document, and follow this License in all
-other respects regarding verbatim copying of that document.
-
-
-7. AGGREGATION WITH INDEPENDENT WORKS
-
-A compilation of the Document or its derivatives with other separate
-and independent documents or works, in or on a volume of a storage or
-distribution medium, does not as a whole count as a Modified Version
-of the Document, provided no compilation copyright is claimed for the
-compilation.  Such a compilation is called an "aggregate", and this
-License does not apply to the other self-contained works thus compiled
-with the Document, on account of their being thus compiled, if they
-are not themselves derivative works of the Document.
-
-If the Cover Text requirement of section 3 is applicable to these
-copies of the Document, then if the Document is less than one quarter
-of the entire aggregate, the Document's Cover Texts may be placed on
-covers that surround only the Document within the aggregate.
-Otherwise they must appear on covers around the whole aggregate.
-
-
-8. TRANSLATION
-
-Translation is considered a kind of modification, so you may
-distribute translations of the Document under the terms of section 4.
-Replacing Invariant Sections with translations requires special
-permission from their copyright holders, but you may include
-translations of some or all Invariant Sections in addition to the
-original versions of these Invariant Sections.  You may include a
-translation of this License provided that you also include the
-original English version of this License.  In case of a disagreement
-between the translation and the original English version of this
-License, the original English version will prevail.
-
-
-9. TERMINATION
-
-You may not copy, modify, sublicense, or distribute the Document except
-as expressly provided for under this License.  Any other attempt to
-copy, modify, sublicense or distribute the Document is void, and will
-automatically terminate your rights under this License.  However,
-parties who have received copies, or rights, from you under this
-License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-
-10. FUTURE REVISIONS OF THIS LICENSE
-
-The Free Software Foundation may publish new, revised versions
-of the GNU Free Documentation License from time to time.  Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.  See
-http://www.gnu.org/copyleft/.
-
-Each version of the License is given a distinguishing version number.
-If the Document specifies that a particular numbered version of this
-License "or any later version" applies to it, you have the option of
-following the terms and conditions either of that specified version or
-of any later version that has been published (not as a draft) by the
-Free Software Foundation.  If the Document does not specify a version
-number of this License, you may choose any version ever published (not
-as a draft) by the Free Software Foundation.
-
-
-ADDENDUM: How to use this License for your documents
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and
-license notices just after the title page:
-
-      Copyright (c)  YEAR  YOUR NAME.
-      Permission is granted to copy, distribute and/or modify this document
-      under the terms of the GNU Free Documentation License, Version 1.1
-      or any later version published by the Free Software Foundation;
-      with the Invariant Sections being LIST THEIR TITLES, with the
-      Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
-      A copy of the license is included in the section entitled "GNU
-      Free Documentation License".
-
-If you have no Invariant Sections, write "with no Invariant Sections"
-instead of saying which ones are invariant.  If you have no
-Front-Cover Texts, write "no Front-Cover Texts" instead of
-"Front-Cover Texts being LIST"; likewise for Back-Cover Texts.
-
-If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License,
-to permit their use in free software.
+Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.
+Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.
+If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent.
+This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.
+The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.
diff --git a/COPYING-LIBGLABELS b/COPYING-LIBGLABELS
deleted file mode 100644 (file)
index 161a3d1..0000000
+++ /dev/null
@@ -1,482 +0,0 @@
-                 GNU LIBRARY GENERAL PUBLIC LICENSE
-                      Version 2, June 1991
-
- Copyright (C) 1991 Free Software Foundation, Inc.
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the library GPL.  It is
- numbered 2 because it goes with version 2 of the ordinary GPL.]
-
-                           Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Library General Public License, applies to some
-specially designated Free Software Foundation software, and to any
-other libraries whose authors decide to use it.  You can use it for
-your libraries, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if
-you distribute copies of the library, or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link a program with the library, you must provide
-complete object files to the recipients so that they can relink them
-with the library, after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  Our method of protecting your rights has two steps: (1) copyright
-the library, and (2) offer you this license which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  Also, for each distributor's protection, we want to make certain
-that everyone understands that there is no warranty for this free
-library.  If the library is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original
-version, so that any problems introduced by others will not reflect on
-the original authors' reputations.
-\f
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that companies distributing free
-software will individually obtain patent licenses, thus in effect
-transforming the program into proprietary software.  To prevent this,
-we have made it clear that any patent must be licensed for everyone's
-free use or not licensed at all.
-
-  Most GNU software, including some libraries, is covered by the ordinary
-GNU General Public License, which was designed for utility programs.  This
-license, the GNU Library General Public License, applies to certain
-designated libraries.  This license is quite different from the ordinary
-one; be sure to read it in full, and don't assume that anything in it is
-the same as in the ordinary license.
-
-  The reason we have a separate public license for some libraries is that
-they blur the distinction we usually make between modifying or adding to a
-program and simply using it.  Linking a program with a library, without
-changing the library, is in some sense simply using the library, and is
-analogous to running a utility program or application program.  However, in
-a textual and legal sense, the linked executable is a combined work, a
-derivative of the original library, and the ordinary General Public License
-treats it as such.
-
-  Because of this blurred distinction, using the ordinary General
-Public License for libraries did not effectively promote software
-sharing, because most developers did not use the libraries.  We
-concluded that weaker conditions might promote sharing better.
-
-  However, unrestricted linking of non-free programs would deprive the
-users of those programs of all benefit from the free status of the
-libraries themselves.  This Library General Public License is intended to
-permit developers of non-free programs to use free libraries, while
-preserving your freedom as a user of such programs to change the free
-libraries that are incorporated in them.  (We have not seen how to achieve
-this as regards changes in header files, but we have achieved it as regards
-changes in the actual functions of the Library.)  The hope is that this
-will lead to faster development of free libraries.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, while the latter only
-works together with the library.
-
-  Note that it is possible for a library to be covered by the ordinary
-General Public License rather than by this special one.
-\f
-                 GNU LIBRARY GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library which
-contains a notice placed by the copyright holder or other authorized
-party saying it may be distributed under the terms of this Library
-General Public License (also called "this License").  Each licensee is
-addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-\f
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-\f
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-\f
-  6. As an exception to the Sections above, you may also compile or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    c) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    d) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the source code distributed need not include anything that is normally
-distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-\f
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-\f
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Library General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-\f
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-                           NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-                    END OF TERMS AND CONDITIONS
-\f
-     Appendix: How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Library General Public
-    License as published by the Free Software Foundation; either
-    version 2 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Library General Public License for more details.
-
-    You should have received a copy of the GNU Library General Public
-    License along with this library; if not, write to the Free
-    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-    MA 02111-1307, USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
diff --git a/COPYING-LIBS b/COPYING-LIBS
new file mode 100644 (file)
index 0000000..cca7fc2
--- /dev/null
@@ -0,0 +1,165 @@
+                  GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+  This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+  0. Additional Definitions.
+
+  As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+  "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+  An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+  A "Combined Work" is a work produced by combining or linking an
+Application with the Library.  The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+  The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+  The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+  1. Exception to Section 3 of the GNU GPL.
+
+  You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+  2. Conveying Modified Versions.
+
+  If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+   a) under this License, provided that you make a good faith effort to
+   ensure that, in the event an Application does not supply the
+   function or data, the facility still operates, and performs
+   whatever part of its purpose remains meaningful, or
+
+   b) under the GNU GPL, with none of the additional permissions of
+   this License applicable to that copy.
+
+  3. Object Code Incorporating Material from Library Header Files.
+
+  The object code form of an Application may incorporate material from
+a header file that is part of the Library.  You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+   a) Give prominent notice with each copy of the object code that the
+   Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the object code with a copy of the GNU GPL and this license
+   document.
+
+  4. Combined Works.
+
+  You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+   a) Give prominent notice with each copy of the Combined Work that
+   the Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the Combined Work with a copy of the GNU GPL and this license
+   document.
+
+   c) For a Combined Work that displays copyright notices during
+   execution, include the copyright notice for the Library among
+   these notices, as well as a reference directing the user to the
+   copies of the GNU GPL and this license document.
+
+   d) Do one of the following:
+
+       0) Convey the Minimal Corresponding Source under the terms of this
+       License, and the Corresponding Application Code in a form
+       suitable for, and under terms that permit, the user to
+       recombine or relink the Application with a modified version of
+       the Linked Version to produce a modified Combined Work, in the
+       manner specified by section 6 of the GNU GPL for conveying
+       Corresponding Source.
+
+       1) Use a suitable shared library mechanism for linking with the
+       Library.  A suitable mechanism is one that (a) uses at run time
+       a copy of the Library already present on the user's computer
+       system, and (b) will operate properly with a modified version
+       of the Library that is interface-compatible with the Linked
+       Version.
+
+   e) Provide Installation Information, but only if you would otherwise
+   be required to provide such information under section 6 of the
+   GNU GPL, and only to the extent that such information is
+   necessary to install and execute a modified version of the
+   Combined Work produced by recombining or relinking the
+   Application with a modified version of the Linked Version. (If
+   you use option 4d0, the Installation Information must accompany
+   the Minimal Corresponding Source and Corresponding Application
+   Code. If you use option 4d1, you must provide the Installation
+   Information in the manner specified by section 6 of the GNU GPL
+   for conveying Corresponding Source.)
+
+  5. Combined Libraries.
+
+  You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+   a) Accompany the combined library with a copy of the same work based
+   on the Library, uncombined with any other library facilities,
+   conveyed under the terms of this License.
+
+   b) Give prominent notice with the combined library that part of it
+   is a work based on the Library, and explaining where to find the
+   accompanying uncombined form of the same work.
+
+  6. Revised Versions of the GNU Lesser General Public License.
+
+  The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+  Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+  If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
diff --git a/COPYING-TEMPLATES b/COPYING-TEMPLATES
new file mode 100644 (file)
index 0000000..c25b826
--- /dev/null
@@ -0,0 +1,25 @@
+This license applies to the glabels template database, located
+in the "templates" subdirectory of the glabels distribution.
+
+Copyright (c) 2001-2009 Jim Evins
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
index 2d76f43e3b1baea6f3549d247bbaed5dd76aee55..755c63a3c10594e206eae06ac1e280bdd9e90a3c 100644 (file)
@@ -1,28 +1,38 @@
-   The gLabels official distribution is an aggregate of several components.
-   Each component is licensed as follows
+The gLabels official distribution is an aggregate of several components.
+Each component is licensed as follows
+
+
+GLABELS:
 
    The gLabels application core, and other portions of the official gLabels
    distribution not explicitly licensed otherwise, are licensed under
-   the GNU GENERAL PUBLIC LICENSE (GPL); either version 2 of the License, or
+   the GNU GENERAL PUBLIC LICENSE (GPL); either version 3 of the License, or
    (at your option) any later version -- see the 'COPYING' file in this
    directory for details.
 
-   The libglabels library, located in the "libglabels/" subdirectory, is
-   licensed under the GNU LESSER GENERAL PUBLIC LICENSE (LGPL); either
-   version 2 of the License, or (at your option) any later version -- see
-   the 'COPYING-LIBGLABELS' in this directory for details.
 
-   The gLabels and libglabels documentation, located in the "docs/" and "help/"
-   subdirectories, is licensed under the GNU FREE DOCUMENTATION LICENSE (GFDL)
-   with no Invariant Sections; either version 1.1 or (at your option) any
-   later version -- see 'COPYING-DOCS' in this directory for details.
+LIBGLABELS & LIBGLBARCODE:
+
+   The libglabels and libglbarcode libraries, located in the "libglabels/"
+   and "libglbarcode/" subdirectories respecively, are licensed under the
+   GNU LESSER GENERAL PUBLIC LICENSE (LGPL); either version 3 of the License,
+   or (at your option) any later version -- see the 'COPYING-LIBS' in this
+   directory for details.
+
+
+DOCUMENTATION:
 
-   The "barcode-0.98/" and "iec16022-0.2.1/" subdirectories contain 3rd party
-   libraries, each licensed under the GNU GENERAL PUBLIC LICENSE (GPL); either
-   version 2 of the License, or (at your option) any later version -- see the
-   'LICENSE' or 'COPYING' file in each of these directories for details.
+   The gLabels, libglabels, and libglbarcode documentation, located in the
+   "docs/" and "help/" subdirectories, is licensed under the CreativeCommons
+   Attribution-Share Alike 3.0 Unported license.  See 'COPYING-DOCS' in this
+   directory for details, or visit 'http://creativecommons.org/licenses/by-sa/3.0/'.
 
-   The XML files in the "data/templates/" subdirectory constitute the glabels
-   label database.  This database is a simple collection of facts so it is
-   therefore considered to be public domain and can be used for any purpose.
 
+TEMPLATE DATABASE:
+
+   The XML files in the "templates/" subdirectory constitute the glabels
+   label database.  No copyright is claimed on the facts contained within
+   the database and can be used for any purpose.  However, to clear up any
+   ambiguity, the DTD file that defines the format of these files is
+   licensed using the MIT/X license, see 'COPYING-TEMPLATES' in this
+   directory for details.
index 6aff45b1d0d2d0870d3aa79b3d1e5769db085a4d..a78e471bb517f138c9399ae1b644a6f12217f178 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
-commit 735fbf968d761acb31bee98121686f02cdeab17e
+commit d01a448a3e9c0719a2adfb6d51591e78148cfee3
 Author: Jim Evins <evins@snaught.com>
-Date:   2010-04-19
+Date:   2011-05-16
 
-    Preparation for 2.2.8
+    Even more preparation for 3.0.0 release.
+
+M      README
+M      configure.ac
+
+commit 12e55e8a835df758b00cdf65532978b6bd508ee7
+Author: Jim Evins <evins@snaught.com>
+Date:  2011-05-16
+
+    More preparation for 3.0 release
 
 M      NEWS
-M      configure.in
+M      libglabels/lgl-xml.h
+M      templates/Makefile.am
+M      templates/ascom-iso-templates.xml
+M      templates/databecker-iso-templates.xml
+M      templates/dataline-iso-templates.xml
+M      templates/geha-iso-templates.xml
+R099   templates/glabels-2.3.dtd       templates/glabels-3.0.dtd
+M      templates/hama-iso-templates.xml
+M      templates/jac-iso-templates.xml
+M      templates/misc-iso-templates.xml
+M      templates/pearl-iso-templates.xml
+
+commit 4c07f4f573f171a64bbe7119d3c97a043123f8b6
+Author: Jim Evins <evins@snaught.com>
+Date:  2011-05-15
 
-commit e68a37d0bec952928393abea94326a7ec77b9e38
-Author: Jorge González <jorgegonz@svn.gnome.org>
-Date:  2010-04-11
+    Preparation for 3.0 release.
+
+D      MESSAGE-OF-DOOM
+M      Makefile.am
+M      configure.ac
+
+commit 29073d4b56183bcb43dc859d17e7c079482e5a63
+Author: Claude Paroz <claude@2xlibre.net>
+Date:  2011-05-05
+
+    Updated French translation
+
+M      po/fr.po
+
+commit 6a47b5cdab899590651b0abda7ad34e9f3bcd3e5
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2011-04-29
 
     Updated Spanish translation
 
 M      po/es.po
 
-commit a17439be4a34d934f0bf4a19dc9bfb2967343b32
-Author: Jim Evins <evins@snaught.com>
-Date:  2010-04-11
+commit ff1569ac39ceb866ead6394033376eff6d2bf940
+Author: Takayuki KUSANO <AE5T-KSN@asahi-net.or.jp>
+Date:  2011-04-25
 
-    Remove wasted space in "new label dialog"
+    Updated Japanese translation
 
-    Modified the layout spacing of widgets in the "new label dialog."
-    This makes
-    the dialog a little more compact and hopefully fits better on
-    small screens
-    such as netbooks.
+M      po/ja.po
 
-M      data/glade/new-label-dialog.glade
-M      data/glade/wdgt-media-select.glade
-M      data/glade/wdgt-rotate-label.glade
-M      src/new-label-dialog.c
+commit 186d2516639549c56cb1f513932f23e08eb769bf
+Author: Marek Černocký <marek@manet.cz>
+Date:  2011-04-22
 
-commit 333e792ab9daa4cb6fba8f19d360ca27d69ebff0
-Author: Jim Evins <evins@snaught.com>
-Date:  2010-04-11
+    Updated Czech screenshot
 
-    Add place-holder field to all empty private structures
+M      help/cs/figures/merge-ex2-1.png
 
-    Fixes glabels bug #2981895.  This is a work-around for glib bug
-    #615379.  For
-    objects with no private data, add a place-holder field so that
-    the private
-    structure is not of zero length which causes g_new0() to crash in glib
-    2.24.0.
+commit 63747f9f9684a54cdff32474b8a228d3ab9d1d71
+Author: Marek Černocký <marek@manet.cz>
+Date:  2011-04-22
 
-M      src/view-barcode.c
-M      src/view-box.c
-M      src/view-ellipse.c
-M      src/view-image.c
-M      src/view-line.c
-M      src/view-text.c
+    Updated Czech screenshot
 
-commit a3275186debbf0f4addf574bf02b789bcf3776ba
-Author: Jorge González <jorgegonz@svn.gnome.org>
-Date:  2010-04-07
+M      help/cs/figures/merge-ex1-1.png
 
-    Updated Spanish translation
+commit 3307da9d369704bae244d9501975b6f90caec6c9
+Author: Marek Černocký <marek@manet.cz>
+Date:  2011-04-22
 
-M      po/es.po
+    Updated Czech screenshot
 
-commit be60f3c5d947d9ae66ec16f5b61045deb76d1b59
-Author: Filipe Roque <fliproque@gmail.com>
-Date:  2010-04-04
+M      help/cs/figures/merge-ex3-1.png
 
-    Updated Portuguese translation
+commit 76ac17d3725ac4ed80e76b9c1e199ac5af80f146
+Author: Marek Černocký <marek@manet.cz>
+Date:  2011-04-22
 
-M      po/LINGUAS
-A      po/pt.po
+    Updated Czech screenshot
 
-commit a26ba4f2eb55cc02f08c1b97fd4c001d3a550fd2
-Author: Jim Evins <evins@snaught.com>
-Date:  2010-04-03
+M      help/cs/figures/merge-ex3-1.png
 
-    Added Avery DL33 and look-alike templates.
+commit 1e5f1c5c5ecb5733dbfa29a9c81c68613c753c5a
+Author: Marek Černocký <marek@manet.cz>
+Date:  2011-04-22
 
-    DL33 templates provided by Ian Shuttleworth.
+    Czech screenshot
 
-M      AUTHORS
-M      data/templates/avery-iso-templates.xml
-M      data/templates/misc-iso-templates.xml
+A      help/cs/figures/merge-ex3-1.png
 
-commit 675d5a6a13117ca85ebdc292dd931efece55d406
+commit b5f72ac136910eaa830b777a126c097595183df2
 Author: Marek Černocký <marek@manet.cz>
-Date:  2010-03-28
+Date:  2011-04-22
 
-    Update Czech translation
+    Updated Czech translation
 
 M      po/cs.po
 
-commit ad36a71e24d395d641bf495dda96b8dea994d2df
-Author: Andrej Žnidaršič <andrej.znidarsic@gmail.com>
-Date:  2010-03-28
+commit 43b1ee240a0eefdc0c30391d21bf0bf15fca0891
+Author: Marek Černocký <marek@manet.cz>
+Date:  2011-04-22
 
-    Updated Slovenian translation
+    Updated Czech screenshot
 
-M      po/sl.po
+M      help/cs/figures/object-editor-sidebar.png
 
-commit 67becb0c44760f68ad5c014866a53707e8ef4630
-Author: Jorge González <jorgegonz@svn.gnome.org>
-Date:  2010-03-21
+commit 986b010c2b29f4937ed0fa5bc4eb61704c8ac9e1
+Author: Marek Černocký <marek@manet.cz>
+Date:  2011-04-22
 
-    Updated Spanish translation
+    Updated Czech screenshot
 
-M      po/es.po
+M      help/cs/figures/object-editor-sidebar.png
 
-commit 1dd629c4b88056fd0ae51ce9c1b2b0921286fb98
-Author: Mario Blättermann <mariobl@gnome.org>
-Date:  2010-03-20
+commit 677a726bcd9c8bcd55e573c35ba288c63c521598
+Author: Marek Černocký <marek@manet.cz>
+Date:  2011-04-22
 
-    Updated German translation
+    Updated Czech screenshot
 
-M      po/de.po
+M      help/cs/figures/skip-fields-screenshot.png
 
-commit bf78adcbbfd7e8fa51308e0fd64c22d6b07754bc
-Author: Bruno Brouard <annoa.b@gmail.com>
-Date:  2010-03-17
+commit 1e9b39dad778cd4ebfac00372bd54f46e973ec09
+Author: Marek Černocký <marek@manet.cz>
+Date:  2011-04-22
 
-    Updated French translation
+    Updated Czech screenshot
 
-M      po/fr.po
+M      help/cs/figures/skip-fields-screenshot.png
 
-commit 6414ee7cd3975db6e7a7fe65b51ec7918ddcd7d6
-Author: Jorge González <jorgegonz@svn.gnome.org>
-Date:  2010-03-17
+commit 15b8149e3d0c08e32554c2fe20a78eb53774cde6
+Author: Marek Černocký <marek@manet.cz>
+Date:  2011-04-22
 
-    Updated Spanish translation
+    Updated Czech screenshot
 
-M      po/es.po
+M      help/cs/figures/print-merge.png
 
-commit 21ce5c207013d6ee8f28aa02b4db5894422b8942
-Author: Jim Evins <evins@snaught.com>
-Date:  2010-03-16
+commit 6ca652b51d095de7e0eaa92bfeee0f230c3d1dca
+Author: Marek Černocký <marek@manet.cz>
+Date:  2011-04-22
 
-    Catching up on template submissions.
+    Updated Czech screenshot
 
-M      AUTHORS
-M      data/templates/misc-iso-templates.xml
-M      data/templates/misc-us-templates.xml
-M      data/templates/pearl-templates.xml
+M      help/cs/figures/print-copies.png
 
-commit 1a7125903c076189372671b3b1c699bd1a4322c6
-Author: Kjartan Maraas <kmaraas@gnome.org>
-Date:  2010-03-15
+commit 91557a5e46e0ce14b5365212d9280d9e258141b5
+Author: Marek Černocký <marek@manet.cz>
+Date:  2011-04-22
 
-    Add Norwegian language entry.
+    Unused Czech screenshot
 
-M      po/LINGUAS
+D      help/cs/figures/main-window-empty.png
 
-commit 501e409e1565d6aaf75fd6125eca323b4fe081f0
-Author: Kjartan Maraas <kmaraas@gnome.org>
-Date:  2010-03-15
+commit 47891355ecebefb5ae826a2a3f0dfba3a1386e63
+Author: Marek Černocký <marek@manet.cz>
+Date:  2011-04-22
 
-    Added Norwegian bokmål translation
+    Czech screenshot
 
-A      po/nb.po
+A      help/cs/figures/skip-fields-screenshot.png
 
-commit 99ac6500e2ce897708ac228b4684d3608576b931
-Author: Jorge González <jorgegonz@svn.gnome.org>
-Date:  2010-03-07
+commit 500279e89312f9ae2090a89a3feb24fc35b84c10
+Author: Marek Černocký <marek@manet.cz>
+Date:  2011-04-21
 
-    Updated Spanish translation
+    Czech screenshot
 
-M      po/es.po
+A      help/cs/figures/skip-fields-output.png
 
-commit c53c6d83333de1ab2d77f1e81e1d151509f7a1d4
-Author: Takeshi AIHANA <takeshi.aihana@gmail.com>
-Date:  2010-03-06
+commit 22acea090ca313b616ebb0c90fcf5846d3885447
+Author: Marek Černocký <marek@manet.cz>
+Date:  2011-04-21
 
-    Updated Japanese translation
+    Updated Czech translation
 
-M      po/ja.po
+M      help/cs/cs.po
 
-commit c142345372faa68185cd5bbeba4e6192d72599ce
-Author: Jim Evins <evins@snaught.com>
-Date:  2010-03-02
+commit e17dffc422199abd882d4448a4d8fe5672989636
+Author: Marek Černocký <marek@manet.cz>
+Date:  2011-04-19
 
-    Preparation for 2.2.7
+    Updated Czech translation
 
-    Updated NEWS.  Updated version information in configure.in.
-    Added pearl
-    templates to makefile.
+M      help/cs/cs.po
 
-M      NEWS
-M      configure.in
-M      data/templates/Makefile.am
-D      help/glabels-help.pot
+commit bf73db190505f297c640bb76ccdde3895f613681
+Author: Marek Černocký <marek@manet.cz>
+Date:  2011-04-18
+
+    Updated Czech translation
+
+M      po/cs.po
 
-commit c866fbe3c5dd5cdea13efad8107a7d1a82b5a172
+commit edc606015a0252f66a57c332dd6524c48e2653d4
 Author: Mario Blättermann <mariobl@gnome.org>
-Date:  2010-03-02
+Date:  2011-04-17
 
-    Fixed some bugs in template data
+    [l10n] Updated German translation
 
-M      data/templates/pearl-templates.xml
+M      po/de.po
 
-commit ca13ecdc3455f0cca218671dfc9c0a31500a264a
-Author: Andrej Žnidaršič <andrej.znidarsic@gmail.com>
-Date:  2010-02-28
+commit ec58a44af91d79d9be9fe63f7814327602ba5cd7
+Author: Marek Černocký <marek@manet.cz>
+Date:  2011-04-17
 
-    Updated Slovenian translation
+    Updated Czech translation
 
-M      po/sl.po
+M      po/cs.po
 
-commit 7dbee475634553b69ce7dd934608c7a35da59aa2
-Author: Mario Blättermann <mariobl@gnome.org>
-Date:  2010-02-27
+commit 6141161e4a031f6b15de83379f6f690096eaa524
+Author: Jim Evins <evins@snaught.com>
+Date:  2011-04-16
 
-    Added Staples STAP14 Mailing Labels
+    Reorganization of object alignment menus
 
-M      data/templates/misc-iso-templates.xml
+    Object alignment menus have been reorganized and menu items renamed to
+    remove any ambiguity as to what horizontal versus vertical alignment
+    mean.  The new labels and organization attempt to be consistent with
+    other graphic applications.
 
-commit e3cb29b2d6c93547112146696b8adb0c35387b6e
-Author: Joe Hansen <joedalton2@yahoo.dk>
-Date:  2010-02-23
+M      src/ui.c
 
-    Updated Danish translation
+commit 51b590ea08683c08ab39366970c140b1fc6f5eef
+Author: Takayoshi OKANO <kano@na.rim.or.jp>
+Date:  2011-04-14
 
-A      po/da.po
+    Updated Japanese translation
 
-commit de137c4bcf7eb19551ce1478f9929891781ef86f
-Author: Kenneth Nielsen <k.nielsen81@gmail.com>
-Date:  2010-02-23
+M      po/ja.po
 
-    Added da to list of languages
+commit 64d6190bf896630e8c1cafb61bd6132b3e453592
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2011-04-03
 
-M      po/LINGUAS
+    Updated Spanish translation
 
-commit aa892ac85b64ba0f069cc8d0e178faef4eb3de05
-Author: Marek Černocký <marek@manet.cz>
-Date:  2010-02-21
+M      help/es/es.po
+
+commit 68d10df024493df3045b4a5ebbd88f76ddbb6f45
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2011-03-03
 
-    Update Czech translation
+    Some corrections to the newest Kores template
 
-M      help/cs/cs.po
+M      templates/misc-iso-templates.xml
+M      templates/vendors.xml
 
-commit 4cf933c8d8e1f74e61fac64b3cfd954c51029b4b
-Author: Jorge González <jorgegonz@svn.gnome.org>
-Date:  2010-02-19
+commit ae2c5aa93dcdc9f93de163c6d598373062b15669
+Author: Jean-Philippe Guérard <jean-philippe.guerard@tigreraye.org>
+Date:  2011-03-03
 
-    Added initial Spanish translation
+    Added Korres template
 
-A      help/es/es.po
+M      AUTHORS
+M      templates/misc-iso-templates.xml
 
-commit 31cb90be5f9219e04e06f33c72e4269c03154873
-Author: Jorge González <jorgegonz@svn.gnome.org>
-Date:  2010-02-19
+commit 67785b3fe46e285c80b5c312aedcda7daff29192
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2011-02-27
 
-    Added es to DOC_LINGUAS
+    Updated Spanish translation
 
-M      help/Makefile.am
+M      help/es/es.po
 
-commit ca216db75311bda7b80e08409b33212729d8a8ff
-Author: Petr Kovar <pknbe@volny.cz>
-Date:  2010-02-18
+commit 66d2aa8ed705bbb573571e8ea16328cfbae56731
+Author: Jim Evins <evins@snaught.com>
+Date:  2011-02-26
 
-    Fix Czech translation by Marek Cernocky
+    Don't require windowing system for glabels-batch.
 
-M      po/cs.po
+    Use gtk_init_check() instead of gtk_init() to initialize GTK.
 
-commit 59ce2a62e8ff923d6348f84b9e3e0cff59b10e87
-Author: Petr Kovar <pknbe@volny.cz>
-Date:  2010-02-18
+M      src/glabels-batch.c
 
-    Add Czech help translation by Marek Cernocky
+commit 7e55002270dda25fc70c379be19396f449d5aa89
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2011-02-22
 
-M      help/Makefile.am
-A      help/cs/cs.po
-A      help/cs/figures/main-window-empty.png
-A      help/cs/figures/merge-ex1-1.png
-A      help/cs/figures/merge-ex1-2.png
-A      help/cs/figures/merge-ex1-3.png
-A      help/cs/figures/merge-ex1-4.png
-A      help/cs/figures/merge-ex2-1.png
-A      help/cs/figures/merge-ex2-2.png
-A      help/cs/figures/merge-ex2-3.png
-A      help/cs/figures/merge-ex2-4.png
-A      help/cs/figures/object-editor-sidebar.png
-A      help/cs/figures/print-copies.png
-A      help/cs/figures/print-merge.png
+    Updated Spanish translation
+
+M      help/es/es.po
 
-commit f428dd10c86b1102e96fe76ff0c62d209d6c2923
+commit bd3208b5cac24a8d6f231a72ed45bb0e73d1bb6e
 Author: Jim Evins <evins@snaught.com>
-Date:  2010-02-15
+Date:  2011-02-21
 
-    Create a default frame if missing from template file
+    Modified CSV parser.
 
-    When parsing a template node, if there is no recognized frame node
-    (e.g.
-    Label-rectangle), a default full-page frame with a 1x1 layout
-    is created.
-    This prevents potential crashes if sharing a user '.glabels' directory
-    with future versions of glabels with new frame types, or in the
-    case of
-    typos for hand generated templates.
+    Modified CSV parser to more closely follow the format outlined in
+    RFC 4180.
+    The primary difference is that quoted text cannot be embedded in
+    the middle
+    of a field.  I.e. the quotes (") should envelope the entire field.
+    Legacy
+    "escape" rules still apply.
 
-M      libglabels/xml-template.c
+M      src/merge-text.c
 
-commit 8ce4aff951c126566870d3417aeadcf385ca5886
-Author: Mario Blättermann <mariobl@gnome.org>
-Date:  2010-02-13
+commit 61a7ec1126f33c26dcb57fb3423df70df32b8e71
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2011-02-20
 
-    Added URL for Geha Z53 again
+    Updated Spanish translation
 
-M      data/templates/misc-iso-templates.xml
+M      help/es/es.po
 
-commit c990e078f09bfa3bcee172459e883c1231b458b6
-Author: Mario Blättermann <mariobl@gnome.org>
-Date:  2010-02-13
+commit 92192b1e5c37f4a0d2bdf363d80d0c380c4b56a4
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2011-02-20
 
-    Removed URL from template due to gettext errors
+    Updated Spanish translation
 
-M      data/templates/misc-iso-templates.xml
+M      po/es.po
 
-commit 610cdbbecd84ed54b2aa082c2781be2f0aae3289
+commit 7dd57e55560e8132dd9d251c640061bbfc235c32
 Author: Mario Blättermann <mariobl@gnome.org>
-Date:  2010-02-13
+Date:  2011-02-14
 
-    Added PEARL templates
+    Added Avery template
 
 M      AUTHORS
-A      data/templates/pearl-templates.xml
+M      templates/avery-iso-templates.xml
 
-commit 921c7bc0ab840288787d50ffdde15065f5a610ee
+commit d1ccf52d5d0ebdd533ad0692e5e375ee90444b63
 Author: Mario Blättermann <mariobl@gnome.org>
-Date:  2010-02-13
+Date:  2011-02-12
 
-    Added Geha Z53 template
+    Added Merax template
 
 M      AUTHORS
-M      data/templates/misc-iso-templates.xml
-
-commit 548abc9542516724ee8029c7186280cb171b085c
-Author: Petr Kovar <pknbe@volny.cz>
-Date:  2010-02-11
+M      templates/misc-other-templates.xml
+M      templates/vendors.xml
 
-    Update Czech translation by Marek Cernocky
+commit f9dd2935eefff13bbdcff719801feca62aa8c95a
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2011-02-07
 
-M      po/cs.po
+    Updated Spanish translation
 
-commit a309766e4e90d164e487ebc1978f92fbedbb536c
-Author: Mario Blättermann <mariobl@gnome.org>
-Date:  2010-02-09
+M      help/es/es.po
 
-    Updated German translation
+commit 240cc08cb6b9a9350ea358fb4828f32a5001c16a
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2011-02-06
 
-M      po/de.po
+    Updated Spanish translation
 
-commit 6ac473f54bf654ebed0e3eaf94769130b74edd1a
-Author: Mario Blättermann <mariobl@gnome.org>
-Date:  2010-02-09
+M      po/es.po
 
-    Updated German translation
+commit d0ec06d8c6f4ec8c3fa26fa946991aa5e904d162
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2011-02-05
 
-M      po/de.po
+    Updated Spanish translation
 
-commit 01b54d65f1bc32538314f01cbe89d89b2d0baa77
-Author: Jim Evins <evins@snaught.com>
-Date:  2010-02-06
+M      help/es/es.po
 
-    Relax libxml limits when parsing label files
+commit 8481ea582aa78a7973d8199062cb3737ad75b07e
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2011-02-03
 
-    Glabels bug #2940758.  Back port from master:  Use XML_PARSE_HUGE
-    parser option
-    so that we can handle large text nodes, such as encoded images.  This
-    modification is only applied if libxml 2.7+ is available, as to
-    not introduce
-    new dependencies.
+    [l10n] Added nl to DOC_LINGUAS
 
-M      configure.in
-M      src/Makefile.am
-M      src/xml-label.c
+M      help/Makefile.am
 
-commit 78329ea6424b52a3e8236b69afebc2eddc6386db
+commit f8d673a02c64aaffd27304d7b3a50cc26bf55754
 Author: Mario Blättermann <mariobl@gnome.org>
-Date:  2010-01-16
+Date:  2011-02-03
 
-    Updated German doc translation
+    [l10n] Added initial Dutch doc translation to prevent translating
+    actually untranslatable strings
 
-M      help/de/de.po
+A      help/nl/nl.po
 
-commit 8bc29ac0910c02eba94f9ccd5042c07cb415b7f3
-Author: Petr Kovar <pknbe@volny.cz>
-Date:  2010-01-13
+commit 3840d11039df4c6834a4675d7e0a5b6a47ec5d7e
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2011-02-03
 
-    Updated Czech translation by Marek Cernocky
+    [l10n] Updated Dutch translation
 
-M      po/cs.po
+M      po/nl.po
 
-commit e5ecd2b4e597bf2e509d4c285f59420322dad390
-Author: Claude Paroz <claude@2xlibre.net>
-Date:  2010-01-09
+commit 3943dd1240c9a6ef449fccfd52e7302baf9c5ae4
+Author: Bruno Brouard <annoa.b@gmail.com>
+Date:  2011-02-02
 
-    Add fr to DOC_LINGUAS variable
+    Updated French doc translation
 
-M      help/Makefile.am
+M      help/fr/fr.po
 
-commit a4758401a939c804a3a026f5c5bcf2deb1f8f7c1
-Author: Claude Paroz <claude@2xlibre.net>
-Date:  2010-01-09
+commit 124cff7d1682058043276ce0ee4845010e25b43a
+Author: Bruno Brouard <annoa.b@gmail.com>
+Date:  2011-02-02
+
+    Updated French Doc Translation
+
+    Gérard Baylard and Bruno Brouard
+
+D      help/fr/figures/main-window-empty.png
+D      help/fr/figures/merge-ex1-1.png
+D      help/fr/figures/merge-ex1-2.png
+D      help/fr/figures/merge-ex1-3.png
+D      help/fr/figures/merge-ex1-4.png
+D      help/fr/figures/merge-ex2-1.png
+D      help/fr/figures/merge-ex2-2.png
+D      help/fr/figures/merge-ex2-3.png
+D      help/fr/figures/merge-ex2-4.png
+D      help/fr/figures/object-editor-sidebar.png
+D      help/fr/figures/print-copies.png
+D      help/fr/figures/print-merge.png
+M      help/fr/fr.po
+
+commit 0bd38baa90a0f44b58d90bb4c02abd73b84f0f51
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2011-01-29
 
-    Add French translation of manual
+    [l10n] Updated German translation
 
-    Contributed by Alain Lojewski and Claude Paroz
+M      po/de.po
 
-A      help/fr/figures/main-window-empty.png
-A      help/fr/figures/merge-ex1-1.png
-A      help/fr/figures/merge-ex1-2.png
-A      help/fr/figures/merge-ex1-3.png
-A      help/fr/figures/merge-ex1-4.png
-A      help/fr/figures/merge-ex2-1.png
-A      help/fr/figures/merge-ex2-2.png
-A      help/fr/figures/merge-ex2-3.png
-A      help/fr/figures/merge-ex2-4.png
-A      help/fr/figures/object-editor-sidebar.png
-A      help/fr/figures/print-copies.png
-A      help/fr/figures/print-merge.png
-A      help/fr/fr.po
+commit ddbff2b17acd43e4e9c67a40158c4d884a8d611e
+Author: Marek Černocký <marek@manet.cz>
+Date:  2011-01-29
 
-commit 908f97ce93793c1ad05e15b1ad9c788dab587a17
-Author: Matej Urbančič <mateju@svn.gnome.org>
-Date:  2009-12-17
+    Updated Czech translation
 
-    Added sl for Slovenian translation
+M      po/cs.po
 
-M      po/LINGUAS
+commit 94e5539014882d3974c84eef6b2fa13acf60dbe1
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2011-01-27
 
-commit b0e6dea0d9c9b2ca0e1e1ba0650cbe990bce1c29
-Author: Andrej Žnidaršič <andrej.znidarsic@gmail.com>
-Date:  2009-12-17
+    Updated Spanish translation
 
-    Updated Slovenian translation
+M      help/es/es.po
 
-A      po/sl.po
+commit 63cb045c9cc3abbe2af6a62166b891a417ce17f8
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2011-01-27
 
-commit 8f4713e9aec5e19ad382d6493119f6cea812ced4
-Author: Jim Evins <evins@snaught.com>
-Date:  2009-11-18
+    Updated Spanish translation
 
-    Fixed focus behavior of view canvas
+M      po/es.po
 
-    Fixes bug #2899305.  Don't just automatically steal focus when
-    entering
-    canvas.  Require a click to get focus back.
+commit c839157ab3638b4935a8a4021855515d83b07f2b
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2011-01-26
 
-M      src/view.c
+    Added acknowledgement for template submission
 
-commit 1f24fba0eafc5f5e13c4e27cc315ac13cd450bbc
-Author: Jim Evins <evins@snaught.com>
-Date:  2009-11-10
+M      AUTHORS
 
-    Preparation for 2.2.6
+commit 714ed64ebe1bef13073168e78b9a9a86bb2588dc
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2011-01-26
 
-    Updated NEWS and configure.in.
+    Added Brother template, changed obsolete part numbers
 
-M      NEWS
-M      configure.in
+M      templates/brother-other-templates.xml
 
-commit 6f8023f3f90e360ed1911aaf95ab07dd9d1fd00d
-Author: Jim Evins <evins@snaught.com>
-Date:  2009-11-05
+commit cb3d9f9aa69b717f6f6d2870b2eb7aa9bc37215a
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2011-01-19
 
-    Automatically generate ChangeLog when building dist
+    Updated Spanish translation
 
-    Automatically generate ChangeLog when building distributions.
-    Archived
-    pre 2.2 ChangeLog entries.
+M      help/es/es.po
 
-M      .gitignore
-M      ChangeLog
-C090   ChangeLog       ChangeLog.pre-2.2
-M      Makefile.am
+commit 6c28e77fb42ad477370cdd4e104c2a05981951f3
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2011-01-16
 
-commit 9542ced852f02b4ded00a923ea99bbfc5262234b
-Author: Jim Evins <evins@snaught.com>
-Date:  2009-11-05
+    Updated Spanish translation
 
-    Caught up on user submitted templates.
+M      po/es.po
 
-    Added user submitted templates and acknowledgements.
+commit ebe69bb2755eef349159e9ccfbdc34c1906038e1
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2011-01-13
 
-M      AUTHORS
-M      data/templates/misc-iso-templates.xml
-M      data/templates/zweckform-iso-templates.xml
+    Updated Spanish translation
 
-commit a2ad57fa1a0c1e826ff1b758a3baeed263d4b1a8
-Author: Jim Evins <evins@snaught.com>
-Date:  2009-11-04
+M      help/es/es.po
 
-    Fixed merge inconsistencies and crash
+commit 69517f49cd41645693dc186f791a7a32203d92ba
+Author: Wouter Bolsterlee <wbolster@gnome.org>
+Date:  2011-01-08
 
-    merge.c:
-       Fixed crash when trying to print when a "key" radio has been
-       selected
-       but no key has been selected yet.
+    Added Dutch translation by Mario Blättermann and Hannie Dumoleyn
 
-    object-editor-*-page.c:
-       Fixed potential inconsistencies with "key" radio buttons when
-       a merge
-       source has not been selected but the field indicates that it is
-       using a
-       merge key.  This can happen when opening a glabels file that
-       has a merg
-       type not supported by the current instance of glabels.
+M      po/LINGUAS
+A      po/nl.po
 
-    xml-label.c:
-       Also when parsing a merge field that has a merge type not
-       supported,
-       don't continue parsing it.
+commit 9b82ba17efaef7634a4be9fef0dd90313ed8e3b1
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2011-01-06
 
-M      src/merge.c
-M      src/object-editor-bc-page.c
-M      src/object-editor-data-page.c
-M      src/object-editor-fill-page.c
-M      src/object-editor-image-page.c
-M      src/object-editor-line-page.c
-M      src/object-editor-shadow-page.c
-M      src/object-editor-text-page.c
-M      src/xml-label.c
+    Updated Spanish translation
 
-commit 4cbc3bf59c5b3f2fe8310a87a19c86f414e2e0ae
-Author: Mario Blättermann <mariobl@gnome.org>
-Date:  2009-11-04
+M      help/es/es.po
 
-    Updated German translation
+commit 87b856938c42a25544aa0d7fcc93ad34f008e935
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2011-01-03
 
-M      po/de.po
+    Updated Spanish translation
 
-commit 50e804b0aae8214a4354d084e36be88eace03f67
-Author: Mario Blättermann <mariobl@gnome.org>
-Date:  2009-11-04
+M      help/es/es.po
 
-    Updated German translation
+commit b4de56df5fa411a7e79333ab4df8e3f2422be099
+Author: Jim Evins <evins@snaught.com>
+Date:  2011-01-03
 
-M      po/de.po
+    More preparation for 2.3.1
+
+M      NEWS
+
+commit bb1bd1a68c5d188ccad3c0fd49a65b5d57566e96
+Author: Claude Paroz <claude@2xlibre.net>
+Date:  2011-01-02
+
+    Updated French translation
 
-commit 499d70c757fe12219337e2ec9da267b723a1004c
+M      po/fr.po
+
+commit 4d5ca3f941c77b9a2a8829dd6748e3a063072317
+Author: Joe Hansen <joedalton2@yahoo.dk>
+Date:  2011-01-02
+
+    Updated Danish translation
+
+M      po/da.po
+
+commit 40710db147d8b45e7aea4fe050bf0fec909e80ba
 Author: Mario Blättermann <mariobl@gnome.org>
-Date:  2009-11-04
+Date:  2011-01-02
 
-    Updated German doc translation
+    [l10n] Updated German doc translation
 
 M      help/de/de.po
 
-commit 7e1940ad444877f6fe17cff8befd469e4ee22ee8
-Author: Mario Blättermann <mariobl@gnome.org>
-Date:  2009-11-04
+commit 8fe15148b83c12d1f67631198edc1d83393f1b99
+Author: Jim Evins <evins@snaught.com>
+Date:  2011-01-01
 
-    Forgotten to add before
+    Preparation for 2.3.1
 
-A      help/de/figures/merge-ex3-1.png
-A      help/de/figures/merge-ex3-2.png
+M      configure.ac
 
-commit f01319ec821d3a3a0463010ca001eaf883cfd98a
-Author: Mario Blättermann <mariobl@gnome.org>
-Date:  2009-11-04
+commit 378e18ebc7c08075fa0d66abc136335d9d1ab4dd
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-12-29
 
-    New screenshots
+    Updated Spanish translation
 
-M      help/C/figures/merge-ex3-1.png
-M      help/C/figures/merge-ex3-2.png
+M      help/es/es.po
 
-commit 4b24ee895b75d59225bedee6ee6a1140a54eebcb
-Author: Mario Blättermann <mariobl@gnome.org>
-Date:  2009-11-04
+commit 677ce8eedc473d132ca15fef0e92d8d7dcfe1003
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-12-27
 
-    Updated German doc translation
+    Some cleanup of built-in barcode code.
 
-M      po/de.po
+    - Validate data rather than filtering it into something canonical
+    - Reconcile style and design patterns between all built-in backends
 
-commit b9b0ec1e9eaedcf92ac4a2600d2e09a3a9f466c8
-Author: Daniel Nylander <po@danielnylander.se>
-Date:  2009-11-04
+M      libglbarcode/lgl-barcode-code39.c
+M      libglbarcode/lgl-barcode-onecode.c
+M      libglbarcode/lgl-barcode-postnet.c
 
-    Updated Swedish translation
+commit e23b1e0e460896905eed8c4c8c1ce7dc4a06b6d6
+Author: Petr Kovar <pknbe@volny.cz>
+Date:  2010-12-27
 
-M      po/sv.po
+    Update Czech translation by Marek Cernocky
+
+    Reviewed by Petr Kovar.
+
+M      po/cs.po
 
-commit d0777b14a00530d90dab29e85aabad7b6ff57b67
+commit 73897c1e98299fff6a935757ede72b32cb838637
 Author: Jim Evins <evins@snaught.com>
-Date:  2009-11-03
+Date:  2010-12-26
 
-    Updated documentation for 2.2.6
+    Updated help screenshots.
 
-    - Added an example for doing document merge from evolution data
-    server.  (Mario Blättermann)
-    - Updated most screenshots to 2.2.6 with Clearlooks theme.
-    - Minor corrections
+    Updated screenshots in help to be consistent with current development
+    version of glabels.  Updated help text to be consistent with the new
+    screenshots.
 
-A      .gitignore
-M      help/C/figures/main-window-empty.png
+M      help/C/editprop.page
+M      help/C/figures/introduction-glabels-main-window.png
+D      help/C/figures/main-window-empty.png
 M      help/C/figures/merge-ex1-1.png
 M      help/C/figures/merge-ex1-2.png
 M      help/C/figures/merge-ex1-3.png
@@ -600,211 +614,6110 @@ M      help/C/figures/merge-ex2-3.png
 M      help/C/figures/merge-ex2-4.png
 A      help/C/figures/merge-ex3-1.png
 A      help/C/figures/merge-ex3-2.png
+A      help/C/figures/merge-ex3-3.png
+A      help/C/figures/merge-ex3-4.png
 M      help/C/figures/object-editor-sidebar.png
 M      help/C/figures/print-copies.png
 M      help/C/figures/print-merge.png
-M      help/C/glabels.xml
-M      help/Makefile.am
+M      help/C/merge-ex1.page
+M      help/C/merge-ex2.page
+M      help/C/merge-ex3.page
 
-commit 8fe92bd1ae20ab937f2a5de135c80d92e4c685eb
+commit 2fde09a614399ab805e94b036ac367beaa5a16c9
 Author: Jim Evins <evins@snaught.com>
-Date:  2009-10-25
+Date:  2010-12-24
 
-    Start new path when drawing round labels
+    Fix crash when encountering an invalid barcode backend
 
-    Start new path when drawing round labels.  This fixes a bug, where
-    if the
-    top most object is a text object, an extras line would be drawn.
+    A file may have been saved from an instance of glabels that had
+    a backend
+    enabled that is not enabled in the current instance of glabels.
+    This fix
+    accounts for this. It is also possible that the glabels file
+    was created
+    manually with an invalid backend ID or a typo.
 
-M      src/cairo-label-path.c
+M      src/bc-backends.c
+M      src/bc-backends.h
+M      src/xml-label.c
 
-commit d55ffd2866c5d6a20c1236f087b18316989c87dd
-Author: Jim Evins <evins@snaught.com>
-Date:  2009-10-25
+commit a0156d27b51928bea9acda121ab616a571b47836
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-12-24
+
+    Updated Spanish translation
 
-    Fixed incorrect storage of glPrefsModel's base object
+M      help/es/es.po
 
-    Parent object was declared as a pointer, so there was not enough
-    room for
-    the parent/base object.  This potentially could have caused havoc
-    with this
-    object.
+commit 4967753a46173c4123e9cd958b2d1af0076be352
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-12-24
 
-M      src/prefs-model.h
+    Updated Spanish translation
+
+M      po/es.po
 
-commit 33821ebe5b65a8191215646fab2be577854bfb17
+commit fb9fc961547a370f916b4a263d8ecca3d39077d4
 Author: Mario Blättermann <mariobl@gnome.org>
-Date:  2009-10-10
+Date:  2010-12-23
 
-    Converted translations to UTF-8
+    Some ideas for the future
 
-M      po/pl.po
-M      po/pt_BR.po
+M      TODO
 
-commit 69e71bfe60909459ed177b767b40f0940824ad6b
-Author: Daniel Nylander <po@danielnylander.se>
-Date:  2009-10-06
+commit 1df0cd9751734cc89f71f849ecb434f8804633c1
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-12-23
 
-    Added Swedish translation
+    Updated Spanish translation
 
-M      po/LINGUAS
-A      po/sv.po
+M      help/es/es.po
+
+commit cfd6986162064bb23ef223372735c9dfc2b140a7
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-12-23
+
+    Updated Spanish translation
+
+M      po/es.po
+
+commit 78173bdf8d3a32bb7d7c01567c47a3c0a7200f57
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-12-22
+
+    Updated Spanish translation
+
+M      help/es/es.po
+
+commit 3d0f7724236b654adf326a926837428bba8d09d0
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-12-22
+
+    Updated Spanish translation
 
-commit e04fe3a1a5b378412eb153350e2fb2b8a22eb8b1
+M      po/es.po
+
+commit 91dae28aba1ee42a015a2d5594d6f916affaa957
 Author: Mario Blättermann <mariobl@gnome.org>
-Date:  2009-10-06
+Date:  2010-12-22
 
-    Converted polish translation to UTF-8
+    Added Dataline templates
 
-M      po/pl.po
+M      templates/dataline-iso-templates.xml
 
-commit 37b8623b1615da2b54cf2b22444f89c3e36b429d
-Author: Claude Paroz <claude@2xlibre.net>
-Date:  2009-10-06
+commit c88852dd70f0ac735515cc9cc26ab1803a257832
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-22
 
-    Convert zh_TW translation to UTF-8
+    Added JAC templates
 
-M      po/LINGUAS
-R089   po/zh_TW.Big5.po        po/zh_TW.po
+M      po/de.po
+M      templates/jac-iso-templates.xml
 
-commit 885961d5ac802bf487d34b400679b2f15855d1e4
+commit 4d3bc4e4a59890004ec9d0eb7964e37f26813208
 Author: Mario Blättermann <mariobl@gnome.org>
-Date:  2009-10-06
+Date:  2010-12-21
 
-    Updated German translation
+    [l10n] Updated German translation
 
 M      po/de.po
 
-commit 3a3f0f3859c7ddeeeb9b2251fddf2c066ee9ca99
+commit 3f0a08e40ffb1efa553a8cfd3fdf55cb1f821c98
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-21
+
+    Added Hama templates. Hama is now fully covered.
+
+M      templates/hama-iso-templates.xml
+
+commit 7db09dd9f349eba5e276fe0f2c4795339320504e
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-20
+
+    Removed comment which prevents intltool from running properly
+
+M      templates/meritline-us-templates.xml
+
+commit 4a60da1dfe64df62cc7b8b01d709deeb893b1a5f
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-20
+
+    Added Meritline templates
+
+M      po/POTFILES.in
+M      templates/Makefile.am
+A      templates/meritline-us-templates.xml
+M      templates/misc-us-templates.xml
+
+commit 8c1f05cfb999c20d1cc8821fa60d8ad68568ba9c
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-20
+
+    Moved Dataline template to its own file
+
+M      po/POTFILES.in
+M      templates/Makefile.am
+A      templates/dataline-iso-templates.xml
+M      templates/misc-iso-templates.xml
+M      templates/vendors.xml
+
+commit 554266756a638ad0ee161decfe07bb86b8bc4b3f
 Author: Jim Evins <evins@snaught.com>
-Date:  2009-10-05
+Date:  2010-12-19
 
-    Moved files to top-level of branch.
+    Fix vertical expansion of various widgets
 
-    Moved files to top-level directory of glabels_2_2 branch.  This is
-    an artifact
-    of the old SVN layout.  Fixed problems with zh_CN.po that prevented
-    push.
+    Gtk3 has new behavior for expansion of widgets. This commit turns
+    off vertical
+    expansion for various widgets created with builder UI files.
+    These properties
+    have been added manually to these files, so they could be easily
+    wiped out
+    by editing them with glade.
 
-R100   glabels2/help/de/de.po  help/de/de.po
-R100   glabels2/help/de/figures/main-window-empty.png
-help/de/figures/main-window-empty.png
-R100   glabels2/help/de/figures/merge-ex1-1.png
-help/de/figures/merge-ex1-1.png
-R100   glabels2/help/de/figures/merge-ex1-2.png
-help/de/figures/merge-ex1-2.png
-R100   glabels2/help/de/figures/merge-ex1-3.png
-help/de/figures/merge-ex1-3.png
-R100   glabels2/help/de/figures/merge-ex1-4.png
-help/de/figures/merge-ex1-4.png
-R100   glabels2/help/de/figures/merge-ex2-1.png
-help/de/figures/merge-ex2-1.png
-R100   glabels2/help/de/figures/merge-ex2-2.png
-help/de/figures/merge-ex2-2.png
-R100   glabels2/help/de/figures/merge-ex2-3.png
-help/de/figures/merge-ex2-3.png
-R100   glabels2/help/de/figures/merge-ex2-4.png
-help/de/figures/merge-ex2-4.png
-R100   glabels2/help/de/figures/object-editor-sidebar.png
-help/de/figures/object-editor-sidebar.png
-R100   glabels2/help/de/figures/print-copies.png
-help/de/figures/print-copies.png
-R100   glabels2/help/de/figures/print-merge.png
-help/de/figures/print-merge.png
-R100   glabels2/help/glabels-help.pot  help/glabels-help.pot
-R100   glabels2/help/glabels.omf.in    help/glabels.omf.in
-R100   glabels2/po/LINGUAS     po/LINGUAS
-R100   glabels2/po/ca.po       po/ca.po
-R099   glabels2/po/zh_CN.po    po/zh_CN.po
+M      data/ui/object-editor.ui
+M      data/ui/print-op-dialog-custom-widget.ui
 
-commit 484197466a1ddace52d14046709ad6e8c4f17bbc
-Merge: 9ebfc49 d3a7257
+commit 4f37ea189b9cc80ef25d608c024273a345970722
 Author: Jim Evins <evins@snaught.com>
-Date:  2009-09-28
+Date:  2010-12-19
+
+    Some coding style cleanup.
+
+M      libglabels/lgl-template.h
+M      libglabels/lgl-units.h
+M      libglbarcode/lgl-barcode-render-to-cairo.c
+M      libglbarcode/lgl-barcode.h
+M      src/bc-builtin.c
+M      src/bc-gnubarcode.c
+M      src/bc-iec16022.c
+M      src/bc-iec18004.c
+M      src/bc-zint.c
+M      src/color-combo-button.c
+M      src/color-combo-color-menu-item.c
+M      src/color-combo-menu.c
+M      src/color-combo.c
+M      src/color-history-model.c
+M      src/color-swatch.c
+M      src/debug.h
+M      src/field-button-menu.c
+M      src/field-button.c
+M      src/font-combo-menu-item.c
+M      src/font-combo-menu.c
+M      src/font-combo.c
+M      src/font-history-model.c
+M      src/font-sample.c
+M      src/label-barcode.c
+M      src/label-box.c
+M      src/label-ellipse.c
+M      src/label-image.c
+M      src/label-line.c
+M      src/label-object.c
+M      src/label-object.h
+M      src/label-text.c
+M      src/label.c
+M      src/media-select.c
+M      src/merge-evolution.c
+M      src/merge-properties-dialog.c
+M      src/merge-text.c
+M      src/merge-vcard.c
+M      src/merge.c
+M      src/merge.h
+M      src/message-bar.c
+M      src/mini-label-preview.c
+M      src/mini-preview.c
+M      src/new-label-dialog.c
+M      src/object-editor.c
+M      src/prefs-dialog.c
+M      src/prefs-model.c
+M      src/print-op-dialog.c
+M      src/print-op.c
+M      src/print.c
+M      src/template-designer.c
+M      src/template-history-model.c
+M      src/ui-property-bar.c
+M      src/ui-sidebar.c
+M      src/view.c
+M      src/view.h
+M      src/wdgt-chain-button.c
+M      src/window.c
+M      src/xml-label.h
+
+commit 791f29c01c646eaebc443c5220405d399b6082cb
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-12-18
+
+    Coding style cleanup.
+
+M      libglabels/lgl-category.c
+M      libglabels/lgl-category.h
+M      libglabels/lgl-db.c
+M      libglabels/lgl-paper.c
+M      libglabels/lgl-paper.h
+M      libglabels/lgl-str.c
+M      libglabels/lgl-template.c
+M      libglabels/lgl-template.h
+M      libglabels/lgl-units.c
+M      libglabels/lgl-units.h
+M      libglabels/lgl-vendor.c
+M      libglabels/lgl-vendor.h
+M      libglabels/lgl-xml-category.c
+M      libglabels/lgl-xml-paper.c
+M      libglabels/lgl-xml-template.c
+M      libglabels/lgl-xml-template.h
+M      libglabels/lgl-xml-vendor.c
+M      libglabels/lgl-xml.c
+M      libglabels/lgl-xml.h
+
+commit 5c6f4d559896d7290d8877651d60010eefc1c6bb
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-12-18
+
+    Renamed libglabels source files to have "lgl-" prefix.
+
+    Improve odds that source files (headers in particular) remain
+    unique.
+
+M      docs/libglabels/libglabels-3.0-sections.txt
+M      libglabels/Makefile.am
+R096   libglabels/category.c   libglabels/lgl-category.c
+R095   libglabels/category.h   libglabels/lgl-category.h
+R099   libglabels/db.c libglabels/lgl-db.c
+R097   libglabels/db.h libglabels/lgl-db.h
+R097   libglabels/paper.c      libglabels/lgl-paper.c
+R096   libglabels/paper.h      libglabels/lgl-paper.h
+R098   libglabels/str.c        libglabels/lgl-str.c
+R094   libglabels/str.h        libglabels/lgl-str.h
+R099   libglabels/template.c   libglabels/lgl-template.c
+R099   libglabels/template.h   libglabels/lgl-template.h
+R098   libglabels/units.c      libglabels/lgl-units.c
+R096   libglabels/units.h      libglabels/lgl-units.h
+R096   libglabels/vendor.c     libglabels/lgl-vendor.c
+R095   libglabels/vendor.h     libglabels/lgl-vendor.h
+R097   libglabels/xml-category.c       libglabels/lgl-xml-category.c
+R092   libglabels/xml-category.h       libglabels/lgl-xml-category.h
+R097   libglabels/xml-paper.c  libglabels/lgl-xml-paper.c
+R092   libglabels/xml-paper.h  libglabels/lgl-xml-paper.h
+R099   libglabels/xml-template.c       libglabels/lgl-xml-template.c
+R094   libglabels/xml-template.h       libglabels/lgl-xml-template.h
+R096   libglabels/xml-vendor.c libglabels/lgl-xml-vendor.c
+R092   libglabels/xml-vendor.h libglabels/lgl-xml-vendor.h
+R099   libglabels/xml.c        libglabels/lgl-xml.c
+R096   libglabels/xml.h        libglabels/lgl-xml.h
+M      libglabels/libglabels-private.h
+M      libglabels/libglabels.h
+M      po/POTFILES.in
+
+commit a20a5bbf88612bd6ef88e7eeb022fca824905da8
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-12-18
+
+    Fixed potential memory leak.
+
+M      libglbarcode/lgl-barcode-code39.c
+
+commit 429d875df7f9ed902b5a15d017e37eef49336326
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-17
+
+    Updated Southworth template
 
-    Merge original SVN glabels-2_2 branch into glabels_2_2
+M      templates/misc-us-templates.xml
 
-    Restored history past 2.2.5 release that was lost when originally
-    creating
-    branch from SVN.
+commit 38e921a6bcc6a016accbdb6337f26df5244c4e62
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-17
+
+    Updated Sigel template
+
+M      templates/misc-iso-templates.xml
+
+commit 303ba997361a9d120a4cb91246811e7f9502bcba
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-17
+
+    Added Sigel template
+
+M      templates/misc-iso-templates.xml
+
+commit 39b99eeb9bc19230899c9bc7014198f8bfebe1c6
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-17
+
+    Added note about DECAdry templates
+
+M      templates/decadry-iso-templates.xml
+
+commit 5dcf1c0c74a81c457207ce1ddfa7768a70e7c5ff
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-17
+
+    Added a product_url
+
+M      templates/misc-us-templates.xml
+
+commit 1a5eccae2505e61059f59be8774b252548a6491c
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-17
+
+    Added Ascom templates
+
+M      templates/ascom-iso-templates.xml
+
+commit 3bcf37e19f90aaa61ae5a0b2092583c438c4973e
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-17
+
+    Added Ascom file
+
+A      templates/ascom-iso-templates.xml
+
+commit 2b1ed215968487da9ac7c0ceb7123028a8729b6e
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-17
+
+    Moved Ascom template to its own file
+
+M      po/POTFILES.in
+M      templates/Makefile.am
+M      templates/misc-iso-templates.xml
+
+commit ac9f784be20aa4878cf45ceefb7f9a6d23568301
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-12-15
+
+    Updated Spanish translation
+
+M      po/es.po
 
-commit 9ebfc492936b30b4095ae458278e63c51caf3f67
+commit 01be49583ebeab6d38905fd6c08e6db614bdcdba
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-13
+
+    Added Herma templates
+
+M      templates/herma-iso-templates.xml
+
+commit 1c923cfa68fb0277fd732fa870ca89a67916d21a
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-12
+
+    [l10n] Updated German translation
+
+M      po/de.po
+
+commit 4ebb369584f6ae3efa6db7a95b32514c1cfa00e4
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-12
+
+    Added hint about Ascom labels
+
+M      templates/misc-iso-templates.xml
+
+commit ed47bfc6fecd57b6db3b1f1903c4dd60925a6cb7
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-12
+
+    Added Ascom URL
+
+M      templates/vendors.xml
+
+commit 86b68f3318b926e1873bd5832b932975368bc11a
 Author: Jim Evins <evins@snaught.com>
-Date:  2009-09-26
+Date:  2010-12-11
 
-    Reorganized glabels_2_2 branch so that it is the top-level glabels
-    directory,
-    instead of having a glabels2 subdirectory.
+    Cleanup of ui files.
 
-R100   glabels2/AUTHORS        AUTHORS
-R100   glabels2/COPYING        COPYING
-R100   glabels2/COPYING-DOCS   COPYING-DOCS
-R100   glabels2/COPYING-LIBGLABELS     COPYING-LIBGLABELS
-R100   glabels2/COPYING.README_FIRST   COPYING.README_FIRST
-R100   glabels2/ChangeLog      ChangeLog
-R100   glabels2/INSTALL        INSTALL
-R100   glabels2/Makefile.am    Makefile.am
-R100   glabels2/NEWS   NEWS
-R100   glabels2/README README
-R100   glabels2/TODO   TODO
-R100   glabels2/autogen.sh     autogen.sh
-R100   glabels2/barcode-0.98/COPYING   barcode-0.98/COPYING
-R100   glabels2/barcode-0.98/ChangeLog barcode-0.98/ChangeLog
-R100   glabels2/barcode-0.98/INSTALL   barcode-0.98/INSTALL
-R100   glabels2/barcode-0.98/Makefile.am       barcode-0.98/Makefile.am
-R100   glabels2/barcode-0.98/Makefile.in.dist
+    Regenerated ui files using glade from jhbuild.
+
+M      data/ui/media-select.ui
+M      data/ui/merge-properties-dialog.ui
+M      data/ui/new-label-dialog.ui
+M      data/ui/object-editor.ui
+M      data/ui/prefs-dialog.ui
+M      data/ui/print-op-dialog-custom-widget.ui
+M      data/ui/property-bar.ui
+M      data/ui/template-designer.ui
+
+commit 5860b2b1dc85039d79a40502c2b3fa7e4843d7ee
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-12-11
+
+    Updated Spanish translation
+
+M      po/es.po
+
+commit 0e29ea75a7daf3d3b1adc40aa5348adbdafc428c
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-11
+
+    Make all g_warning and g_message untranslatable
+
+M      libglabels/template.c
+M      libglabels/xml-template.c
+
+commit 8963061c3080ead1a2000f829d506f6d510943bf
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-12-10
+
+    Disconnect prefs changed callback when destroying view.
+
+    This fixes a crash when changing prefs after deleting a window.
+
+M      src/view.c
+
+commit c6ccdd681e8f32471c0cb51030869416d7534d45
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-10
+
+    Removed duplicate template
+
+M      templates/herma-iso-templates.xml
+
+commit 4f12b28e6f0d77a360b74ee57db15612cafbf098
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-10
+
+    Make all g_warning and g_message untranslatable for better bug
+    handling
+
+M      src/merge-evolution.c
+M      src/xml-label-04.c
+M      src/xml-label.c
+
+commit 5bd9bc4fc3b3ab019b8e290d7ae48bd3a63cd320
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-12-09
+
+    Cleanup some '-Wall' warnings.
+
+M      libglabels/db.c
+M      src/color-swatch.c
+M      src/font-sample.c
+M      src/label-barcode.c
+
+commit 90b87092927aa6b706a7a220b81cf8ef14e81e48
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-09
+
+    Added more Herma templates
+
+M      templates/herma-iso-templates.xml
+
+commit d1e3f397bb25c41ee43584c7929a3d976b9dbdae
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-09
+
+    [l10n] Updated German translation
+
+M      po/de.po
+
+commit 318d394fed4e29e0793d3467f057b850185a28b8
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-09
+
+    Added more Hama templates
+
+M      templates/hama-iso-templates.xml
+
+commit bc208ecf065133508b0d121ce3aab2bd2d4c3df2
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-09
+
+    Added missing underscore
+
+M      templates/jac-iso-templates.xml
+
+commit 345ff45db2e8c21a4e8df1243ae96960cd46e49a
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-09
+
+    [l10n] Updated German translation
+
+M      po/de.po
+
+commit 9eaaa7570f8290b890f546f4c20625fe2f50dd44
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-09
+
+    Added more Hama templates
+
+M      templates/hama-iso-templates.xml
+
+commit f8a50b04009496d09fabfb418e91ae15c648c38d
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-09
+
+    Fixed bug in Geha templates
+
+M      templates/geha-iso-templates.xml
+
+commit 2ebcd4192a7fcb70e4b0a778b3902c4e524af991
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-09
+
+    [l10n] Updated German translation
+
+M      po/de.po
+
+commit 2edf2ba85b43199407eea3a1421b9c5d6ea0a4bd
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-09
+
+    Added some equivalent templates
+
+M      templates/hama-iso-templates.xml
+
+commit 4bd003abfb60e80544e6d824dfccf2d7cbc1ac2a
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-09
+
+    Added more Hama products, added a new category »photo« and assigned
+    it to some products
+
+M      help/C/mancreate.page
+M      templates/categories.xml
+M      templates/geha-iso-templates.xml
+M      templates/hama-iso-templates.xml
+M      templates/pearl-iso-templates.xml
+
+commit 36f4649ebd535aae1cbeb43553d04434fc1d806f
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-09
+
+    Added Hama template page
+
+A      templates/hama-iso-templates.xml
+
+commit 0c6ebf2102d079a4480ba06aaf1842f71e1a234a
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-09
+
+    Initial page for Hama templates
+
+M      po/POTFILES.in
+M      templates/Makefile.am
+M      templates/jac-iso-templates.xml
+M      templates/vendors.xml
+
+commit a125051c16605b2247acd7b539897c491e296edd
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-09
+
+    Added hint about data for creating Geha templates
+
+M      templates/geha-iso-templates.xml
+
+commit e9f7e82b1c50b54c3556db73c2d0d240ffb91171
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-09
+
+    [l10n] Updated German translation
+
+M      po/de.po
+
+commit f79686873af4021a7c794e5830c9ae08f81bf0f8
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-09
+
+    Added missing underscores for translations
+
+M      templates/geha-iso-templates.xml
+
+commit 39731183520b9da4382589c8857cba02190c1450
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-09
+
+    Added new Geha template. All current Geha templates are now present.
+
+M      templates/geha-iso-templates.xml
+
+commit c89c44f2580acde5cf1f00ac0ea3d21c04de9b9c
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-09
+
+    Added lost OMF file again
+
+A      help/glabels.omf.in
+
+commit f5c5ab05261c857f5c5730dab51a47e06c3890f9
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-09
+
+    Reorganized the PEARL templates
+
+M      templates/pearl-iso-templates.xml
+
+commit ddcfb2dc3030a9fd3a3baf31b7c044b3ee5ce842
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-09
+
+    [l10n] Updated German doc translation
+
+M      help/de/de.po
+
+commit 81d3f3f11939e6feba33cfe6db56529e2ed7f2fd
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-12-07
+
+    Cleanup of "Manually creating new templates" page.
+
+M      help/C/mancreate.page
+
+commit 02525ecebbfac77a732cf30354f00da86a10aef1
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-07
+
+    Removed duplicate meta tag
+
+M      templates/geha-iso-templates.xml
+
+commit eac7f6ae1d9aa4059d7f5955fa7be1627d5b3170
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-07
+
+    [l10n] Updated German translation
+
+M      po/de.po
+
+commit 9429e4d84e437e5996e4f9d3841eb98fca91f567
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-07
+
+    Added more Geha templates
+
+M      templates/geha-iso-templates.xml
+
+commit 0dc2f0a1cfcef51429248c80522723a1a5a0b71b
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-12-07
+
+    Optimize loading of barcode styles.
+
+    Only load barcode styles into object editor combo box if backend
+    ID has
+    changed.  Otherwise, skip loading. This seems to be a very expensive
+    operation and would manifest itself as sluggish resizes of barcodes.
+
+M      src/object-editor-bc-page.c
+M      src/object-editor-private.h
+M      src/object-editor.c
+
+commit 01b6f0b41fc8ab4f24f3bbb49daeb9d537c53189
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-12-07
+
+    Some optimization of barcode updates.
+
+    Keep a cached copy of the display glBarcode, so that it does not
+    need to be
+    regenerated on every update.
+
+M      src/label-barcode.c
+M      src/label-object.c
+M      src/label-object.h
+
+commit c64827154b26e3cae7ba3f60e175ca38e242e2bd
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-12-07
+
+    Optimized the handling of moved objects.
+
+    Created a separate "moved" signal for objects, so that we don't
+    waste time
+    updating unrelated controls in the object editor.  This currently
+    is most
+    visible with barcode objects.
+
+M      src/label-object.c
+M      src/label-object.h
+M      src/label.c
+M      src/object-editor.c
+
+commit 6e818159dd6c0f7107c9ecac8fcebb44bdbb1ad4
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-06
+
+    Added missing filename to POTFILES.in
+
+M      po/POTFILES.in
+
+commit 1be777aae8bae2c1119b0cb5829f2da801548e45
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-06
+
+    Added more Geha templates
+
+M      templates/geha-iso-templates.xml
+
+commit 63ac5e48f813c53f5b3b8bf698ae01c72daa9be3
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-06
+
+    Moved Geha template to its own file
+
+M      templates/Makefile.am
+A      templates/geha-iso-templates.xml
+M      templates/misc-iso-templates.xml
+
+commit 4b278cb83e512bdc271373e152018f17e980baae
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-12-05
+
+    Created smaller logo for manual title.
+
+M      help/C/figures/glabels-logo.png
+
+commit cd75de36caeb263c82800231e2510f1cabadc04c
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-12-05
+
+    Cleanup of some documentation artifacts.
+
+    - Removed omf file from help/.
+    - Removed docs/libgl*/tmpl/libgl*-unused.sgml which are automatically
+    generated.
+    - Removed documentation refs to lgl_db_get_template_list_unique()
+    which has
+      been recently removed from libglabels.
+    - Updated .gitignore.
+
+M      .gitignore
+M      docs/libglabels/libglabels-3.0-sections.txt
+M      docs/libglabels/tmpl/db.sgml
+D      docs/libglabels/tmpl/libglabels-3.0-unused.sgml
+D      docs/libglbarcode/tmpl/libglbarcode-3.0-unused.sgml
+D      help/glabels-3.0.omf.in
+M      libglabels/db.c
+
+commit 60519e8f9b7be15d5988b03c1a95cea45ca00657
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-05
+
+    [l10n] Updated German doc translation
+
+M      help/de/de.po
+
+commit 4e51ab44ec19ac818a5b8d36f2720d1469c20f7c
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-12-05
+
+    Updated Spanish translation
+
+M      help/es/es.po
+
+commit 5bdab116303bdcdc011657030a3813c364e319ed
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-05
+
+    Fixed wrong template numbers
+
+M      templates/herma-iso-templates.xml
+
+commit 350bb1773bd34fb92c111e231d774ea173615594
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-12-04
+
+    Search both ~/.glabels and ${XDG_CONFIG_HOME}/libglabels/templates.
+
+    Keep ~/.glabels as an alternate location for user defined templates.
+    This
+    directory would hold manually created templates as well as template
+    designer
+    templates from previous versions.  The new template designer will
+    manage
+    its templates in ${XDG_CONFIG_HOME}/libglabels/templates.
+
+M      libglabels/db.c
+M      libglabels/template.c
+M      libglabels/xml-template.c
+
+commit f20a898ceef00151fd13afbf04c6961cff39ffe9
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-04
+
+    Added namespace declaration
+
+M      help/C/mancreate.page
+
+commit ff2e814d1014d59ee701a8d6f47df81fe782eeb4
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-04
+
+    Added its: to the untranslatable strings
+
+M      help/C/mancreate.page
+
+commit d086e015fc2e516ac10bcf2915e36164acf03afa
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-04
+
+    Added markup for non-translatable items
+
+M      help/C/mancreate.page
+
+commit 9f338207d5ec3a847a65d191c44e78055b3983df
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-12-04
+
+    Removed artifact of template aliases.
+
+M      libglabels/db.c
+M      libglabels/db.h
+M      src/mini-preview-pixbuf-cache.c
+
+commit dc41a686c30e7e80eb3e54cacba4c2af94e678f8
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-12-03
+
+    Add some selection slop to barcode and text objects
+
+    Add a 4 pixel slop area around barcode lines and text glyphs in
+    object_at
+    methods of barcode and text objects.  This will hopefully make
+    selecting
+    these objects less frustrating while still allowing selection of
+    background
+    objects through the negative space of these objects.
+
+M      src/label-barcode.c
+M      src/label-text.c
+
+commit 17fbc0ff3528298065c3df6dce0f38bfd8972899
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-12-02
+
+    Updated Spanish translation
+
+M      help/es/es.po
+
+commit 952e6c14ad7a544a6bf820801fa40fb7b6b222b2
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-12-02
+
+    Updated Spanish translation
+
+M      help/es/es.po
+M      po/es.po
+
+commit ffaf06a95c635ef26335da26d63a74511068e03c
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-02
+
+    [l10n] Some cleanup
+
+M      help/de/de.po
+
+commit c3ef406eccdd4eb9d6e5651c72766a0292ab1d57
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-02
+
+    [l10n] Updated German doc translation
+
+M      help/de/de.po
+
+commit cccabeafc0c73e4ec1698bb9569f03621a58af71
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-02
+
+    Fixed typo
+
+M      help/C/multifile.page
+
+commit 5f1338e0bb4df1ac40b26b89c6c49a319de94287
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-02
+
+    Made email links clickable
+
+M      help/C/about.page
+M      help/C/mancreate.page
+
+commit 3e42b1117fb1c4251a22873436412f9e07c5e7c1
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-01
+
+    [l10n] Updated German doc translation
+
+M      help/de/de.po
+
+commit 4ea2ba2bcf00a753ee4e061af1bd8b02742f6753
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-01
+
+    Added note about available categories
+
+M      help/C/mancreate.page
+
+commit cae9d526245a50b945404d0fffa4722a33323a0b
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-01
+
+    Added new template equivalents again
+
+M      templates/herma-iso-templates.xml
+
+commit 6dc9e7bcbac90c94e3af34eabcabe08e3abeceb5
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-12-01
+
+    Added new template equivalents
+
+M      templates/herma-iso-templates.xml
+
+commit a82d4a9a8badd982f39b0a16b52c1459c3604390
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-30
+
+    [l10n] Updated German translation
+
+M      po/de.po
+
+commit 5447097d6fb8b640873327611f607f1fbab82bb6
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-30
+
+    Added new category and assigned some templates to this category
+
+M      templates/categories.xml
+M      templates/pearl-iso-templates.xml
+
+commit ace7ef5e6b10569d736ad2cdf4718b6aeab5198c
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-30
+
+    [i18n] Added new templates and some cleanup
+
+M      templates/herma-iso-templates.xml
+
+commit 1c5a40ac06c7fd9f809974784c83205af2890a38
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-30
+
+    [i18n] Added new templates
+
+M      templates/herma-iso-templates.xml
+
+commit 0dfe4457223fae2d4b21c758fde905d4f8e78ea3
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-28
+
+    Fixed malformed XML file.
+
+M      templates/misc-iso-templates.xml
+
+commit 043939ac8cf4396319cec17b871d9f4c891a34ab
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-27
+
+    Added more templates
+
+M      templates/herma-iso-templates.xml
+
+commit f3c77ad8a3482627572448d65df2e756763c9e90
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-27
+
+    Moved DataBecker templates to their own file, added one more template
+
+M      po/POTFILES.in
+M      templates/Makefile.am
+A      templates/databecker-iso-templates.xml
+M      templates/misc-iso-templates.xml
+
+commit d48275b51809ebfc4aa926e311470e0d8032e067
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-27
+
+    Added URL tooltips to links.
+
+M      src/new-label-dialog.c
+
+commit 30916207aa15fde60417267c059340d88a193602
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-11-27
+
+    Updated Spanish translation
+
+M      help/es/es.po
+
+commit ec3dbcf7eaf48d6f9ec266075fdf67d54011c23f
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-11-27
+
+    Updated Spanish translation
+
+M      po/es.po
+
+commit f8095371bfa8914605162aa3ea34fd99cd4ad8cc
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-27
+
+    Improve selection of barcode objects.
+
+    Allow selection of barcode objects by clicking on the alternate
+    text when
+    a valid barcode cannot be displayed.
+
+M      src/label-barcode.c
+
+commit 7c8701b3c9063510e362d8a0a786976ddca570e7
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-26
+
+    Fixed problem with creation of 1st barcode, again.
+
+    Previous fix only temporarily masked the problem.  The problem is that
+    the first time the barcode tabs are made visible, the digits spin
+    button
+    would emit a "changed" signal.  The fix is to connect to the
+    "value-changed"
+    signal instead.
+
+    This commit also includes replacing the stop_signals flag with
+    explicit
+    signal blockers.
+
+M      src/object-editor-bc-page.c
+M      src/object-editor-data-page.c
+M      src/object-editor-fill-page.c
+M      src/object-editor-image-page.c
+M      src/object-editor-line-page.c
+M      src/object-editor-lsize-page.c
+M      src/object-editor-position-page.c
+M      src/object-editor-private.h
+M      src/object-editor-shadow-page.c
+M      src/object-editor-size-page.c
+M      src/object-editor-text-page.c
+M      src/object-editor.c
+
+commit c0905027d4dd2667ed738c6679fdf657e9d4cf40
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-26
+
+    [l10n] Updated German translation
+
+M      po/de.po
+
+commit ab4e9596763ea64304efc2fe962344b5cc61587c
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-26
+
+    Added note to template designer.
+
+    Added note to template designer about the possibility of more
+    than 2 layouts.
+
+M      data/ui/template-designer.ui
+
+commit aae747108292ab75611e891ffecfcad89382ccdc
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-26
+
+    [l10n] Updated German translation
+
+M      po/de.po
+
+commit ed3c4f8c1e2df4b740698425a15a3ad8080c5335
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-26
+
+    Added Sattleford VM-6084 label, added new category for elliptical
+    labels
+
+M      templates/categories.xml
+M      templates/pearl-iso-templates.xml
+
+commit 63396b3df293ba68fbe6a2507b97e74201c1794f
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-26
+
+    Added more vendor definitions and URLs
+
+M      templates/vendors.xml
+
+commit 3cae5b04317e8b1ad5069bee713254b5c4f51125
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-26
+
+    [l10n] Updated German translation
+
+M      po/de.po
+
+commit 30419b26c459fd1a9339c1c8a0341fc43ea7308f
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-25
+
+    Cleanup of build system.
+
+    - 'make distcheck' is now successful
+    - Removed several old artifacts
+
+M      .gitignore
+M      Makefile.am
+M      configure.ac
+M      data/desktop/Makefile.am
+M      data/mime/Makefile.am
+M      po/POTFILES.in
+A      po/POTFILES.skip
+M      src/Makefile.am
+
+commit f9d15efd6543ae69c821010751ef960d97877349
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-25
+
+    Remove deprecated alias node support for templates.
+
+    Removed support for the "Alias" node in templates. For backwards
+    compatibility alias nodes will be skipped over.  This greatly
+    simplifies
+    the iteration through the template database, since all templates are
+    fully realized.
+
+M      docs/libglabels/libglabels-3.0-sections.txt
+M      docs/libglabels/tmpl/db.sgml
+M      docs/libglabels/tmpl/libglabels-3.0-unused.sgml
+M      docs/libglabels/tmpl/template.sgml
+M      help/C/mancreate.page
+M      libglabels/db.c
+M      libglabels/template.c
+M      libglabels/template.h
+M      libglabels/xml-template.c
+M      src/mini-preview-pixbuf-cache.c
+M      templates/glabels-2.3.dtd
+
+commit 5003bd33e74c1de3fbe3dd7b5b206aff61f78658
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-25
+
+    Cleanup of template database.
+
+    - Alphabetized the templates in the misc-*-templates.xml files.
+    - Replaced the last of the deprecated "Alias" tags.
+    - Added TODO comments for questionable part #s and vendors.
+
+M      templates/avery-iso-templates.xml
+M      templates/misc-iso-templates.xml
+M      templates/misc-other-templates.xml
+M      templates/misc-us-templates.xml
+
+commit 79dbb3d7444f6fc13d114dbf4cc7070ced271398
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-24
+
+    Cleanup of template database.
+
+    - Moved "DECAdry" templates to their own file.
+    - Replaced some deprecated "Alias" tags.
+
+M      po/POTFILES.in
+M      templates/Makefile.am
+M      templates/avery-iso-templates.xml
+A      templates/decadry-iso-templates.xml
+M      templates/misc-iso-templates.xml
+M      templates/zweckform-iso-templates.xml
+
+commit 71819034a8140dcad8731d9095f018d683b27340
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-24
+
+    Cleanup of template database.
+
+    - Moved "Herma" templates to their own file.
+    - Replaced some deprecated "Alias" tags.
+
+M      po/POTFILES.in
+M      templates/Makefile.am
+M      templates/avery-iso-templates.xml
+A      templates/herma-iso-templates.xml
+M      templates/misc-iso-templates.xml
+M      templates/zweckform-iso-templates.xml
+
+commit 9c7681dc51320c27dab08bea3f89c3fbc45946a4
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-22
+
+    Added new template file to POTFILES.in
+
+M      po/POTFILES.in
+
+commit f5cfd2233e03d2d2b0d3f4fee300ad3da2f9ca17
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-21
+
+    Added new template file to Makefile.am
+
+M      templates/Makefile.am
+
+commit 3b110fd933a9ab9f666b74e22af9c33827c23a4e
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-21
+
+    Removed product_url from JAC templates and added it to vendors.xml
+
+M      templates/jac-iso-templates.xml
+M      templates/vendors.xml
+
+commit 6971f7336af7c5dbfa3fd6a329e7e483983915b2
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-21
+
+    Fixed misplaced tags in JAC templates
+
+M      templates/jac-iso-templates.xml
+
+commit 0a8ecfa00185f5cd5a90a01955e26870b48169bf
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-21
+
+    Moved JAC templates to their own file
+
+A      templates/jac-iso-templates.xml
+M      templates/misc-iso-templates.xml
+
+commit 702554106de4ada46d566028a0f768ed6582e88b
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-21
+
+    [l10n] Updated German doc translation
+
+M      help/de/de.po
+
+commit 0586a73c43cda8e82f0198e61164d86b15391452
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-21
+
+    [l10n] Updated German translation
+
+M      po/de.po
+
+commit 2391bd0de7d31abc0a3bb5bdf95ae6481e4275eb
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-21
+
+    Added confirmation dialog to custom template delete button.
+
+M      src/media-select.c
+
+commit a35071a7dd2b561b6cf479c46639fa62fbefb045
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-20
+
+    Fixed problem with creation of 1st barcode.
+
+    A change signal is apparently being delayed until the actual widget is
+    being realized as a result of the gtk_widget_show of the object editor
+    notebook.  The proper fix is to use actual signal blockers rather than
+    the simple "stop_signals" flag, since the flags assume callbacks are
+    always called inline rather than being called asynchronously.
+
+M      src/object-editor-bc-page.c
+M      src/object-editor.c
+
+commit 860dea63a5a9389d42605bc759892428ad3e94d2
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-20
+
+    Removed pre-libglbarcode artifacts.
+
+M      po/POTFILES.in
+D      src/bc.c
+D      src/bc.h
+
+commit 86f26962cab620b73bdf6f42dcd9ebb31e58ab82
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-11-20
+
+    Updated Spanish translation
+
+M      help/es/es.po
+M      po/es.po
+
+commit 3d7aa37f0eba1c52a959e07b4e53efb8377b838a
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-18
+
+    Documentation cleanup.
+
+    Bug sf#3110768: duplicate choice in editprop.page.
+    Bug sf#3110794: incorrect wording in customize.page.
+    Bug sf#3110801: incorrect wording in customize.page.
+    Bug sf#3110918: docbook artifacts in link tags in createnew.page.
+    Bug sf#3110930: misplaced <credit></credit> tags in about.page.
+    Bug sf#3111019: spelling mistake in editprop.page.
+
+M      help/C/about.page
+M      help/C/createnew.page
+M      help/C/customize.page
+M      help/C/editprop.page
+
+commit b1fd31ae78a8dd346fb48d7f7588274b68820179
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-16
+
+    Cleanup of mancreate.page.
+
+    Bug sf#3110232: Remove docbook artifacts (replaced docbook tags w/
+    mallard tags.
+    Bug sf#3110286: Fixed cut&paste error.
+    Bug sf#3110291: Fixed spelling mistake (height, not heigth).
+
+M      help/C/mancreate.page
+
+commit 8f7f0191cb2f4962064a62b240eed926b150df17
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-15
+
+    [l10n] Updated German translation
+
+M      po/de.po
+
+commit 76fd27c54a401448d1795491e958f8b379bc20ab
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-15
+
+    Fixed typo
+
+M      data/schemas/org.gnome.glabels-3.gschema.xml.in.in
+
+commit 99f337b4c2de88c4cfaf3cc9def3253484ab2c39
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-15
+
+    Removed last addition again
+
+M      po/POTFILES.in
+
+commit fdf16d572cd58dcf8e8d3b18e2bf68b7583225c4
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-15
+
+    Added another missing filename to POTFILES.in
+
+M      po/POTFILES.in
+
+commit 94b0bf095d42e68c3d6dea64cac99f87964a11e4
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-15
+
+    Added missing filename to POTFILES.in
+
+M      po/POTFILES.in
+
+commit 9453143c64d5bbfde9c156c3b5a379eeb124f863
+Merge: 61404cf 6e743df
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-14
+
+    Merge branch 'gtk3'
+
+commit 6e743df0f244177ac9e503c6114b344e0052b71c
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-14
+
+    Fixed stupid typo.
+
+    Must of been temporary insanity.  I had replaced a g_unlink with
+    a g_free
+    a while back.  Hanging my head in shame.
+
+M      libglabels/db.c
+
+commit f29bc31c9132bc604d60d7c96cac6b0ef5056a74
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-14
+
+    Fixed typo.
+
+M      src/template-designer.c
+
+commit 52446a0a719433f54f4983aabbc9caff685797c7
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-14
+
+    Make sure merge source is shown.
+
+M      data/ui/merge-properties-dialog.ui
+M      src/merge-properties-dialog.c
+
+commit 61404cf7270a415c3ed1a185dcefd905bde8dc07
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-14
+
+    Added some more JAC templates
+
+M      templates/misc-iso-templates.xml
+
+commit 92965dc1eafa2019bd2c69e921c499eb734cc8d9
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-14
+
+    Added some JAC templates
+
+M      templates/misc-iso-templates.xml
+
+commit 88f44555402d9a405cbbff6ac57bb463e2ee18f0
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-12
+
+    Fix for some gtk3 widget layout issues.
+
+M      data/ui/object-editor.ui
+M      src/ui-sidebar.c
+
+commit e29469011998fbbabe950f4ead5b9b081aeb6375
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-11
+
+    Remove artifacts from old manual.
+
+D      help/C/glabels-3.0.xml
+D      help/C/legal.xml
+M      help/Makefile.am
+M      src/ui-commands.c
+
+commit 45b59e5b4316338dde419f17a3fdb88575b6de02
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-10
+
+    Update licensing information.
+
+    - Docs are now licensed by the CC Attribution-Share Alike 3.0
+    Unported license
+    - Libglbarcode is relicensed by the LGPL3+
+
+M      COPYING-DOCS
+R100   COPYING-LIBGLABELS      COPYING-LIBS
+M      COPYING.README_FIRST
+M      libglbarcode/lgl-barcode-code39.c
+M      libglbarcode/lgl-barcode-code39.h
+M      libglbarcode/lgl-barcode-create.c
+M      libglbarcode/lgl-barcode-create.h
+M      libglbarcode/lgl-barcode-onecode.c
+M      libglbarcode/lgl-barcode-onecode.h
+M      libglbarcode/lgl-barcode-postnet.c
+M      libglbarcode/lgl-barcode-postnet.h
+M      libglbarcode/lgl-barcode-render-to-cairo.c
+M      libglbarcode/lgl-barcode-render-to-cairo.h
+M      libglbarcode/lgl-barcode-type.h
+M      libglbarcode/lgl-barcode.c
+M      libglbarcode/lgl-barcode.h
+
+commit eda073e8e2563046b8c199372033d013a4697f25
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-09
+
+    Yet another logo update.
+
+M      data/pixmaps/glabels-logo.png
+M      help/C/figures/glabels-logo.png
+M      help/C/index.page
+
+commit c57137558f60775a8a2205e127c2079f286d4625
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-09
+
+    Use GtkComboBoxText
+
+M      data/ui/media-select.ui
+M      data/ui/merge-properties-dialog.ui
+M      data/ui/object-editor.ui
+M      data/ui/template-designer.ui
+M      src/combo-util.c
+M      src/combo-util.h
+M      src/media-select.c
+M      src/merge-properties-dialog.c
+M      src/object-editor-bc-page.c
+M      src/object-editor-private.h
+M      src/object-editor.c
+M      src/print-op-dialog.c
+M      src/template-designer.c
+
+commit 52214490bb8d25cd754cb40a274ac9ff36ba60d3
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-11-09
+
+    Updated Spanish translation
+
+M      help/es/es.po
+
+commit d405bc913b1d7d23ff12f92f6ef6323d15a4610d
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-11-07
+
+    Initial documentation for libglbarcode.
+
+M      .gitignore
+M      configure.ac
+M      docs/Makefile.am
+A      docs/libglbarcode/Makefile.am
+A      docs/libglbarcode/intro.sgml
+A      docs/libglbarcode/libglbarcode-3.0-docs.sgml
+A      docs/libglbarcode/libglbarcode-3.0-overrides.txt
+A      docs/libglbarcode/libglbarcode-3.0-sections.txt
+A      docs/libglbarcode/libglbarcode-3.0.types
+A      docs/libglbarcode/tmpl/lgl-barcode-create.sgml
+A      docs/libglbarcode/tmpl/lgl-barcode-render-to-cairo.sgml
+A      docs/libglbarcode/tmpl/lgl-barcode-type.sgml
+A      docs/libglbarcode/tmpl/lgl-barcode.sgml
+A      docs/libglbarcode/tmpl/libglbarcode-3.0-unused.sgml
+M      libglbarcode/lgl-barcode-create.c
+M      libglbarcode/lgl-barcode-render-to-cairo.c
+M      libglbarcode/lgl-barcode-type.h
+M      libglbarcode/lgl-barcode.c
+M      libglbarcode/lgl-barcode.h
+M      libglbarcode/libglbarcode-3.0.pc.in
+M      libglbarcode/libglbarcode.h
+
+commit ff1457fe9ff2f87815dcbbdc927f409a0a20a1fd
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-11-03
+
+    Updated Spanish translation
+
+M      help/es/es.po
+
+commit 57f251a8d3ef3592e0856eb3c8916ca7c464f324
+Author: Bruno Brouard <annoa.b@gmail.com>
+Date:  2010-11-01
+
+    Updated French translation
+
+M      po/fr.po
+
+commit b8fc8ef5359af7b42d3bd0493c1adcf8236086db
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-11-01
+
+    Added ca@valencia to LINGUAS
+
+M      po/LINGUAS
+
+commit 81941432d20338b56011444017b01799320a6e97
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-10-31
+
+    Refinements to barcode objects
+    - Draw outline around barcode objects.
+    - Use a more sophisticated test for determining if cursor is on
+    a barcode
+      object: test against lines and glyphs instead of simple bounds
+      test. The
+      test will also indicate that cursor is on the object if it is on the
+      selection outline.  Similar to text objects.
+
+M      libglbarcode/lgl-barcode-render-to-cairo.c
+M      libglbarcode/lgl-barcode-render-to-cairo.h
+M      src/label-barcode.c
+
+commit 9c8e77f5735b97af445de3a5a8926535535c10f8
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-10-31
+
+    [l10n] Updated German doc translation
+
+M      help/de/de.po
+
+commit 576d435eba3d25c70329798a29ce99b7934b0582
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-10-31
+
+    Removed introduction.page
+
+D      help/C/introduction.page
+
+commit 9da0eeeabc8554a3e84a4718fe08c43ec4848333
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-10-31
+
+    Moved introduction to index.page
+
+M      help/C/index.page
+
+commit ba922c500a1875be6abd70cbacf946a00d375c2b
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-10-31
+
+    Added names of new files
+
+M      po/POTFILES.in
+
+commit 3f4f1213f12fc5be87547cfb82239c3f9c32c19f
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-10-31
+
+    Removed names of no longer existing files
+
+M      po/POTFILES.in
+
+commit 411560a0b6eb8057add9b6862bc477cb00600e14
+Author: Carles Ferrando <carles.ferrando@gmail.com>
+Date:  2010-10-31
+
+    [l10n] Added Catalan (Valencia) translation
+
+A      po/ca@valencia.po
+
+commit edaa3e0b6dec8f8ba81c05b5a196a90b1ebb1ca2
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-10-30
+
+    Refactored core barcode subsystem.
+
+    - Created new libglbarcode library
+    - Moved core barcode structure into library
+    - Moved cairo rendering of barcode into library
+    - Moved built-in barcodes to library
+    - Resurrected Code39 support (from wayback in glabels 0.1.x)
+
+    - Backend "glue" remains in glabels proper
+
+M      .gitignore
+M      Makefile.am
+M      configure.ac
+A      libglbarcode/Makefile.am
+A      libglbarcode/lgl-barcode-code39.c
+C076   src/bc-iec18004.h       libglbarcode/lgl-barcode-code39.h
+A      libglbarcode/lgl-barcode-create.c
+C060   src/bc-iec18004.h       libglbarcode/lgl-barcode-create.h
+R085   src/bc-onecode.c        libglbarcode/lgl-barcode-onecode.c
+C064   src/bc-onecode.h        libglbarcode/lgl-barcode-onecode.h
+A      libglbarcode/lgl-barcode-postnet.c
+C060   src/bc-onecode.h        libglbarcode/lgl-barcode-postnet.h
+A      libglbarcode/lgl-barcode-render-to-cairo.c
+C075   src/bc-onecode.h        libglbarcode/lgl-barcode-render-to-cairo.h
+R063   src/bc-onecode.h        libglbarcode/lgl-barcode-type.h
+A      libglbarcode/lgl-barcode.c
+A      libglbarcode/lgl-barcode.h
+A      libglbarcode/libglbarcode-3.0.pc.in
+R067   src/bc-postnet.h        libglbarcode/libglbarcode.h
+M      src/Makefile.am
+M      src/bc-backends.c
+M      src/bc-backends.h
+A      src/bc-builtin.c
+C087   src/bc-iec18004.h       src/bc-builtin.h
+M      src/bc-gnubarcode.c
+M      src/bc-gnubarcode.h
+M      src/bc-iec16022.c
+M      src/bc-iec16022.h
+M      src/bc-iec18004.c
+M      src/bc-iec18004.h
+D      src/bc-postnet.c
+M      src/bc-zint.c
+M      src/bc-zint.h
+M      src/label-barcode.c
+
+commit 227f04fc6321c2e05aa216cafcac42d6c682a83f
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-10-28
+
+    Updated Spanish translation
+
+M      help/es/es.po
+
+commit c9171d11050f595055ba17e53a906e27ad8d28d0
+Author: Petr Kovar <pknbe@volny.cz>
+Date:  2010-10-28
+
+    Update Czech translation by Marek Cernocky
+
+M      po/cs.po
+
+commit ebd747a78e20c7839bc05dfccbae19730772d2c2
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-10-26
+
+    Removed dupicate name
+
+M      AUTHORS
+
+commit 8018996159a5af3bb20149c6eb9f327367dd50d9
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-10-26
+
+    Added missing name for template contributor
+
+M      AUTHORS
+
+commit f8a80d9fb9e73780c408971458be49affec9ba3c
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-10-25
+
+    Tweak template designer.
+
+    - Added figure for ellipse size page.
+    - Removed translatable attribute to "ellipse_page" label which
+    is never
+      exposed to the user interface.
+
+M      data/pixmaps/Makefile.am
+A      data/pixmaps/ex-ellipse-size.png
+M      data/ui/template-designer.ui
+
+commit d04b523c567a0961a6378921d1ec6adfa810ff71
+Author: Daniel Nylander <po@danielnylander.se>
+Date:  2010-10-25
+
+    Updated Swedish translation
+
+M      po/sv.po
+
+commit 002b014d22c4ab4e655a53e4382db94aee637a56
+Author: Daniel Nylander <po@danielnylander.se>
+Date:  2010-10-25
+
+    Updated Swedish translation
+
+M      po/sv.po
+
+commit b6c503e318bb31b37e83100975ca4795553cb50f
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-10-25
+
+    [l10n] Updated German translation
+
+M      po/de.po
+
+commit 5f3fe187983bddfe3f74eb9b2b5fd9654e827741
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-10-25
+
+    Updated Spanish translation
+
+M      po/es.po
+
+commit a1a1ba75805a6b52d44edca62f1a46758f5edcef
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-10-24
+
+    Added support for elliptical labels to template designer.
+
+M      data/ui/template-designer.ui
+M      src/template-designer.c
+
+commit edb718146f4462962f7f8d945e3f4e94a267e128
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-10-24
+
+    Added JAC 987349 template
+
+M      templates/misc-iso-templates.xml
+
+commit 655d3876f4dc85d543757da4ddcb5a7f859d5d68
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-10-24
+
+    [i18n] Updated German doc translation
+
+M      help/de/de.po
+
+commit 123e40341b75ed9908bf8efe93e7730e8ad7bcd3
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-10-24
+
+    Fixed some bad formattings in page files
+
+M      help/C/about.page
+M      help/C/mancreate.page
+M      help/C/merge-ex1.page
+M      help/C/merge-ex2.page
+M      help/C/merge-ex3.page
+M      help/C/multifile.page
+
+commit 9e1ffae4ad71013013ffda810938560270aeb0a9
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-10-24
+
+    [i18n] Updated German doc translation
+
+M      help/de/de.po
+
+commit e76ba5917c22a48071dbfd7ca1d57dd15aecc33e
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-10-24
+
+    [i18n] Updated German doc translation
+
+M      help/de/de.po
+
+commit 6c64505b7ff37d2f07768509f8c0ea47d37a04c7
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-10-23
+
+    [i18n] Updated German translation
+
+M      po/de.po
+
+commit e1a86d815851f2d9ea8ab8986779d9b5f2d942e5
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-10-23
+
+    Added note about rotating objects.
+
+M      help/C/editprop.page
+
+commit 45a1bf10d41bc020a9e8438d2bd49d9383ef537e
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-10-23
+
+    Updated glabels logo yet again.
+
+    Updated logo based on the new-label-dialog image rather than the
+    simple
+    "gLabels" text which is more appropriate for a web-page title rather
+    than a graphical logo which always sits next to the text "glabels"
+    anyway.
+
+M      data/pixmaps/glabels-logo.png
+M      help/C/figures/glabels-logo.png
+
+commit d57e4b8adf4369742323f2a8098cdd996a8c0b99
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-06-10
+
+    Updated German doc translation
+
+M      help/de/de.po
+
+commit f0459b79dae33f354121d4b9d3138e63bfc1a93e
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-06-09
+
+    Extended introduction
+
+    Extended introduction and moved to its own page.
+    Added logo for index page (used current web logo for now).
+
+A      help/C/figures/glabels-logo.png
+A      help/C/figures/introduction-glabels-main-window.png
+M      help/C/index.page
+A      help/C/introduction.page
+
+commit e88a0125b560cbdd3fcc2eb9e991fae45555013f
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-31
+
+    Updated manual template creation page.
+
+    Updated text to reflect changes in current development version of
+    glabels.  Updated and added figures.
+
+A      help/C/figures/glabels-template-cd-label.png
+D      help/C/figures/glabels-template-cd.png
+A      help/C/figures/glabels-template-circle-label.png
+A      help/C/figures/glabels-template-ellipse-label.png
+D      help/C/figures/glabels-template-label.png
+M      help/C/figures/glabels-template-layout.png
+A      help/C/figures/glabels-template-rect-label.png
+M      help/C/mancreate.page
+
+commit 5325e8976aeb992aebe7d1f725fdcb9ee4d0df2d
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-05-30
+
+    Added missing filename for page file in Makefile.am
+
+M      help/Makefile.am
+
+commit 6a502e49f1219d69fdd1a9ac38263cdbb05f2944
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-29
+
+    Added page on skipping empty address fields.
+
+M      help/C/about.page
+A      help/C/figures/skip-fields-output.png
+A      help/C/figures/skip-fields-screenshot.png
+A      help/C/skipfields.page
+
+commit 3c8c219808431f0e4b3054ca7011a50196048a86
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-05-28
+
+    Fixed bug in Makefile.am
+
+M      help/Makefile.am
+
+commit a963feda67b0b24510679fdfeb66631fdc5fc36d
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-05-28
+
+    Added new filenames to Makefile.am
+
+M      help/Makefile.am
+
+commit c8cc8d439836b01b925067e15f3f5cda60c606b8
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-05-28
+
+    Changed license to Creative Commons
+
+M      help/glabels-3.0.omf.in
+
+commit 073fcd34a90b522980a96d7a1b41f1be3ccdee08
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-05-28
+
+    Added page files for the new manual
+
+A      help/C/about.page
+A      help/C/basicusage.page
+A      help/C/createnew.page
+A      help/C/customize.page
+A      help/C/customtemplate.page
+A      help/C/editprop.page
+A      help/C/index.page
+A      help/C/labelprop.page
+A      help/C/license.page
+A      help/C/mancreate.page
+A      help/C/merge-ex1.page
+A      help/C/merge-ex2.page
+A      help/C/merge-ex3.page
+A      help/C/merge-ex4.page
+A      help/C/merge.page
+A      help/C/mergefeatures.page
+A      help/C/multifile.page
+A      help/C/newlabel.page
+A      help/C/printfile.page
+A      help/C/select.page
+
+commit b071ef81f3bb86f042a317dd509b10f2f52aaefb
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-10-22
+
+    Added native OneCode barcode backend.
+
+M      src/Makefile.am
+M      src/bc-backends.c
+A      src/bc-onecode.c
+A      src/bc-onecode.h
+
+commit 4ccc7568162606b01eda07d20b1c6f3596a18250
+Author: Matej Urbančič <mateju@svn.gnome.org>
+Date:  2010-10-22
+
+    Added sl for Slovenian translation
+
+M      help/Makefile.am
+
+commit 8db3ca50ad72ff6f748c7025b94b6dd9228c0088
+Author: Matej Urbančič <mateju@svn.gnome.org>
+Date:  2010-10-22
+
+    Added Slovenian translation
+
+A      help/sl/sl.po
+
+commit 8f1058a9430b0f464f2f8bbb5ca7198db06370cf
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-10-21
+
+    Updated Spanish translation
+
+M      help/es/es.po
+
+commit 323db1068fec3f9e29b243526532f8db56b083bb
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-10-17
+
+    Do not expand object editor vertically.
+
+    Gtk3 has new behavior for expansion of widgets.  This commit takes
+    care of
+    the most obvious case of this new behavior.  Additional cases still
+    need to
+    be addressed in the object-editor.ui file.
+
+M      src/ui-sidebar.c
+
+commit 6560b886953a6147b9cd4bca2f797c694fb18f2d
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-10-17
+
+    Removed gtk_status_bar_set_has_resize_grip().
+
+    Resize grip in Gtk3 has been moved from GtkStatusBar to GtkWindow.
+    Glabels
+    also no longer explicitly turns the resize grip off.
+
+M      src/window.c
+
+commit d70695c6d164015b9502592107e256b7bc020a88
+Author: Andrej Žnidaršič <andrej.znidarsic@gmail.com>
+Date:  2010-10-15
+
+    Updated Slovenian translation
+
+M      po/sl.po
+
+commit 7e864db86631552f49edd0b014fb197e75d6007f
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-10-11
+
+    Updated Spanish translation
+
+M      po/es.po
+
+commit b2b3f6be7f95887f10f9bd7d64b0251f4cef1f70
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-10-10
+
+    [i18n] Updated German translation
+
+M      po/de.po
+
+commit 0faa416ed1eae948d13d23269fba55ed04bfbea4
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-10-10
+
+    Added some new templates
+
+M      templates/pearl-iso-templates.xml
+
+commit e4f1404d031e896bf56e9ac857a913110b4e1477
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-10-05
+
+    Cleanup of chain button.
+
+    - Convert to new drawing model for bracket lines
+    - Use "changes-allow" and "changes-prevent" lock images
+    - Use toggle button to indicate state (in addition to image)
+
+M      data/ui/object-editor.ui
+M      src/object-editor-size-page.c
+M      src/wdgt-chain-button.c
+
+commit 799a7f4911e9abd575c2b7683750aeca1b905ca8
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-10-04
+
+    Fix drawing problems with view.c
+
+    - Create separate cairo_t from bin_window and draw into it.
+    - For manual updates, create allocation rectangle manually
+
+M      .gitignore
+M      src/view.c
+
+commit dd7c11af6233329e7f0a05947167dfd8debc3dea
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-10-03
+
+    Initial port to GTK3.
+
+    Still has update and drawing problems with view.c.
+
+M      configure.ac
+M      src/Makefile.am
+M      src/color-swatch.c
+A      src/cursors/Makefile.am
+A      src/cursors/cursor_barcode.png
+A      src/cursors/cursor_box.png
+A      src/cursors/cursor_ellipse.png
+A      src/cursors/cursor_image.png
+A      src/cursors/cursor_line.png
+A      src/cursors/cursor_text.png
+M      src/font-sample.c
+M      src/media-select.c
+M      src/merge-properties-dialog.c
+M      src/mini-label-preview.c
+M      src/mini-preview.c
+M      src/prefs-dialog.c
+M      src/view-barcode.c
+M      src/view-box.c
+M      src/view-ellipse.c
+M      src/view-image.c
+M      src/view-line.c
+M      src/view-text.c
+M      src/view.c
+M      src/wdgt-chain-button.c
+M      src/window.c
+
+commit a0e160ca8b5dd417430b42f1984ed3ceafbca6bd
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-10-02
+
+    Merge changes from gsettings branch.
+
+M      configure.ac
+M      data/Makefile.am
+A      data/schemas/Makefile.am
+A      data/schemas/org.gnome.glabels-3.gschema.xml.in.in
+M      src/color-history-model.c
+M      src/font-history-model.c
+M      src/prefs-model.c
+M      src/template-history-model.c
+M      src/ui.c
+
+commit 2cc9977dd9fb2e069b9dac4439af952c2f2c15ee
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-09-27
+
+    Better test for libzint.
+
+M      configure.ac
+
+commit 8404402282b56b1bee08f5115bf43c21fa10574e
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-09-26
+
+    Updated Spanish translation
+
+M      po/es.po
+
+commit 9a9188f05d74896575aaf2060866dbfb20723058
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-09-26
+
+    Added Best Office 75753 template
+
+M      templates/misc-iso-templates.xml
+
+commit 1c886494fe294fd145d7b6234786dbf32b75f6c7
+Author: Antonio Fernandes C. Neto <fernandes@pelivre.org>
+Date:  2010-09-22
+
+    Updated Brazilian Portuguese translation
+
+M      po/pt_BR.po
+
+commit 3f02585e277e869df63e78dcc538f1b21964e7fe
+Author: Joe Hansen <joedalton2@yahoo.dk>
+Date:  2010-09-19
+
+    Updated Danish translation
+
+M      po/da.po
+
+commit bce03e38fb47839357147cff6526acefc67e313a
+Author: Petr Kovar <pknbe@volny.cz>
+Date:  2010-09-10
+
+    Update Czech translation by Marek Cernocky
+
+M      po/cs.po
+
+commit cacd288f41657322697972dd2c478fbab72e7536
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-09-09
+
+    Fixed small typo
+
+M      src/ui-commands.c
+
+commit aaf2b3ed072e8a9eacbd0f382bd2af62a6072af3
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-09-06
+
+    Updated Spanish translation
+
+M      po/es.po
+
+commit aeb33f64541ad5c39bcc62a0fe94cb1e992a63f0
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-09-05
+
+    Added logo for template designer druid.
+
+M      data/pixmaps/Makefile.am
+A      data/pixmaps/template-designer.png
+M      src/template-designer.c
+
+commit 9667f709d131a52eca55c5a8400f20d4084a1409
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-09-05
+
+    Manage mimetype icon with other theme friendly icons.
+
+M      data/icons/48x48/Makefile.am
+R100   data/pixmaps/application-x-glabels.png
+data/icons/48x48/mimetypes/application-x-glabels.png
+M      data/pixmaps/Makefile.am
+
+commit 065ffb88346791da881cfed8a06343c6b6e4b50c
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-09-05
+
+    Theme friendly, glabels specific, action icons.
+
+M      configure.ac
+M      data/icons/16x16/Makefile.am
+R100   src/stock-pixmaps/stock_align_bottom_16.png
+data/icons/16x16/actions/glabels-align-bottom.png
+R100   src/stock-pixmaps/stock_align_hcenter_16.png
+data/icons/16x16/actions/glabels-align-hcenter.png
+R100   src/stock-pixmaps/stock_align_left_16.png
+data/icons/16x16/actions/glabels-align-left.png
+R100   src/stock-pixmaps/stock_align_right_16.png
+data/icons/16x16/actions/glabels-align-right.png
+R100   src/stock-pixmaps/stock_align_top_16.png
+data/icons/16x16/actions/glabels-align-top.png
+R100   src/stock-pixmaps/stock_align_vcenter_16.png
+data/icons/16x16/actions/glabels-align-vcenter.png
+R100   src/stock-pixmaps/stock_arrow_16.png
+data/icons/16x16/actions/glabels-arrow.png
+R100   src/stock-pixmaps/stock_barcode_16.png
+data/icons/16x16/actions/glabels-barcode.png
+R100   src/stock-pixmaps/stock_box_16.png
+data/icons/16x16/actions/glabels-box.png
+R100   src/stock-pixmaps/stock_bucket_fill_16.png
+data/icons/16x16/actions/glabels-bucket-fill.png
+R100   src/stock-pixmaps/stock_center_horiz_16.png
+data/icons/16x16/actions/glabels-center-horiz.png
+R100   src/stock-pixmaps/stock_center_vert_16.png
+data/icons/16x16/actions/glabels-center-vert.png
+R100   src/stock-pixmaps/stock_ellipse_16.png
+data/icons/16x16/actions/glabels-ellipse.png
+R100   src/stock-pixmaps/stock_flip_horiz_16.png
+data/icons/16x16/actions/glabels-flip-horiz.png
+R100   src/stock-pixmaps/stock_flip_vert_16.png
+data/icons/16x16/actions/glabels-flip-vert.png
+R100   src/stock-pixmaps/stock_image_16.png
+data/icons/16x16/actions/glabels-image.png
+R100   src/stock-pixmaps/stock_line_16.png
+data/icons/16x16/actions/glabels-line.png
+R100   src/stock-pixmaps/stock_merge_16.png
+data/icons/16x16/actions/glabels-merge.png
+R100   src/stock-pixmaps/stock_properties_16.png
+data/icons/16x16/actions/glabels-object-properties.png
+R100   src/stock-pixmaps/stock_order_bottom_16.png
+data/icons/16x16/actions/glabels-order-bottom.png
+R100   src/stock-pixmaps/stock_order_top_16.png
+data/icons/16x16/actions/glabels-order-top.png
+R100   src/stock-pixmaps/stock_pencil_16.png
+data/icons/16x16/actions/glabels-pencil.png
+R100   src/stock-pixmaps/stock_rotate_left_16.png
+data/icons/16x16/actions/glabels-rotate-left.png
+R100   src/stock-pixmaps/stock_rotate_right_16.png
+data/icons/16x16/actions/glabels-rotate-right.png
+R100   src/stock-pixmaps/stock_text_16.png
+data/icons/16x16/actions/glabels-text.png
+M      data/icons/24x24/Makefile.am
+R100   src/stock-pixmaps/stock_arrow_24.png
+data/icons/24x24/actions/glabels-arrow.png
+R100   src/stock-pixmaps/stock_barcode_24.png
+data/icons/24x24/actions/glabels-barcode.png
+R100   src/stock-pixmaps/stock_box_24.png
+data/icons/24x24/actions/glabels-box.png
+R100   src/stock-pixmaps/stock_bucket_fill_24.png
+data/icons/24x24/actions/glabels-bucket-fill.png
+R100   src/stock-pixmaps/stock_ellipse_24.png
+data/icons/24x24/actions/glabels-ellipse.png
+R100   src/stock-pixmaps/stock_hchain_broken_24.png
+data/icons/24x24/actions/glabels-hchain-broken.png
+R100   src/stock-pixmaps/stock_hchain_24.png
+data/icons/24x24/actions/glabels-hchain.png
+R100   src/stock-pixmaps/stock_image_24.png
+data/icons/24x24/actions/glabels-image.png
+R100   src/stock-pixmaps/stock_line_24.png
+data/icons/24x24/actions/glabels-line.png
+R100   src/stock-pixmaps/stock_merge_24.png
+data/icons/24x24/actions/glabels-merge.png
+R100   src/stock-pixmaps/stock_properties_24.png
+data/icons/24x24/actions/glabels-object-properties.png
+R100   src/stock-pixmaps/stock_pencil_24.png
+data/icons/24x24/actions/glabels-pencil.png
+R100   src/stock-pixmaps/stock_text_24.png
+data/icons/24x24/actions/glabels-text.png
+R100   src/stock-pixmaps/stock_vchain_broken_24.png
+data/icons/24x24/actions/glabels-vchain-broken.png
+R100   src/stock-pixmaps/stock_vchain_24.png
+data/icons/24x24/actions/glabels-vchain.png
+M      po/POTFILES.in
+M      src/Makefile.am
+M      src/color-combo-button.c
+M      src/color-combo-button.h
+M      src/glabels.c
+M      src/object-editor.c
+D      src/stock-pixmaps/Makefile.am
+D      src/stock.c
+D      src/stock.h
+M      src/ui-property-bar.c
+M      src/ui-sidebar.c
+M      src/ui.c
+M      src/wdgt-chain-button.c
+
+commit ece7eac613951c98d90cb698497576a110265a21
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-09-04
+
+    Additional ignore pattern.
+
+M      .gitignore
+
+commit 3fd4017b3e2461638683b3753b96c7484e7d4ed2
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-09-04
+
+    Theme friendly app icons.
+
+M      configure.ac
+M      data/Makefile.am
+A      data/icons/16x16/Makefile.am
+A      data/icons/16x16/apps/glabels-3.0.png
+A      data/icons/22x22/Makefile.am
+A      data/icons/22x22/apps/glabels-3.0.png
+A      data/icons/24x24/Makefile.am
+A      data/icons/24x24/apps/glabels-3.0.png
+A      data/icons/32x32/Makefile.am
+A      data/icons/32x32/apps/glabels-3.0.png
+A      data/icons/48x48/Makefile.am
+A      data/icons/48x48/apps/glabels-3.0.png
+A      data/icons/Makefile.am
+M      data/pixmaps/Makefile.am
+D      data/pixmaps/glabels-3.0.png
+M      src/Makefile.am
+M      src/glabels-batch.c
+M      src/glabels.c
+M      src/template-designer.c
+
+commit acadb7b8e069be9c8a95502191771b6466ddaedf
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-09-03
+
+    New logo and tweaking of about dialog.
+
+M      data/pixmaps/Makefile.am
+D      data/pixmaps/glabels-about-logo.png
+A      data/pixmaps/glabels-logo.png
+D      data/pixmaps/glabels-splash.png
+M      src/ui-commands.c
+
+commit 8b85d5b2506945a45411f160ec2d6afc8d184499
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-09-03
+
+    Removed remaining artifacts from old hig module.
+
+M      data/ui/merge-properties-dialog.ui
+M      po/POTFILES.in
+M      src/Makefile.am
+D      src/hig.h
+M      src/merge-properties-dialog.c
+M      src/prefs-dialog.c
+
+commit de714c6562a0cf92eadc8430da644117e948a422
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-09-03
+
+    [i18n] Updated German translation
+
+M      po/de.po
+
+commit 9e1e6e9b3e8f03a95a949d612e6f6f7846f95a1e
+Author: Andrej Žnidaršič <andrej.znidarsic@gmail.com>
+Date:  2010-09-03
+
+    Updated Slovenian translation
+
+M      po/sl.po
+
+commit 05e9418eb30b1702a10a8662c83da7904d60151a
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-09-02
+
+    Update POTFILES.in after merge and update AUTHORS.
+
+M      AUTHORS
+M      po/POTFILES.in
+
+commit 6c9d844640ff7c481eaa1962aff3bdebd0c2c0ff
+Merge: 7e03137 e681454
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-09-02
+
+    Merge branch 'zint'
+
+commit e68145406dd9ea1326cace7341fa736e8e065bff
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-08-31
+
+    Fix maximum size of object editor sidebar at initialization.
+
+    Kludge:  Load barcode styles for each backend type at initialization,
+    so that
+    when they are loaded for real, the maximum size of the widget has
+    already been
+    established and doesn't cause the object editor to change size.
+
+M      data/ui/object-editor.ui
+M      src/object-editor-bc-page.c
+
+commit a8d633c591f7cb28150ab85ae6b0feac1856335c
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-08-31
+
+       Encapsulate barcode style in single struct.
+
+       Encapsulate barcode style into a single struct and related
+       clean-up.
+
+M      src/label-barcode.c
+M      src/label-barcode.h
+M      src/merge-evolution.c
+M      src/merge-text.c
+M      src/merge-vcard.c
+M      src/merge.c
+M      src/merge.h
+M      src/object-editor-bc-page.c
+M      src/object-editor-private.h
+M      src/object-editor.c
+M      src/text-node.c
+M      src/text-node.h
+M      src/xml-label-04.c
+M      src/xml-label.c
+
+commit a6f3364c48c13198e6583701cff3ba8f1e0230aa
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-08-29
+
+    Allow user selection of barcode backend.
+
+    - User can now select which backend to use for a particular barcode.
+    - This prevents one implementation from eclipsing another.
+    - For backwards compatability, do best guess at backend.
+
+M      data/ui/object-editor.ui
+M      src/bc-backends.c
+M      src/bc-backends.h
+M      src/label-barcode.c
+M      src/label-barcode.h
+M      src/object-editor-bc-page.c
+M      src/object-editor-private.h
+M      src/object-editor.c
+M      src/xml-label-04.c
+M      src/xml-label.c
+M      templates/glabels-2.3.dtd
+
+commit 2ef27d0e798c9c6f72c946ed502bc7d670ab4a07
+Author: Robin Stuart <robin@zint.org.uk>
+Date:  2010-08-21
+
+    Added support for Maxicode barcodes using the libzint backend.
+
+M      src/bc-backends.c
+M      src/bc-zint.c
+M      src/bc.c
+M      src/bc.h
+M      src/label-barcode.c
+
+commit 7e031374c3c42b858eb321a5cbaf63ffa7d9cd3e
+Author: Andrej Žnidaršič <andrej.znidarsic@gmail.com>
+Date:  2010-08-18
+
+    Updated Slovenian translation
+
+M      po/sl.po
+
+commit e805759afe8c7c0c410516f387ee76cb37f23827
+Author: Marek Černocký <marek@manet.cz>
+Date:  2010-08-11
+
+    Updated Czech translation
+
+M      po/cs.po
+
+commit 1f0f30a0aa1e81d2b347d61acdf114d7d4041c64
+Author: Andrej Žnidaršič <andrej.znidarsic@gmail.com>
+Date:  2010-08-08
+
+    Updated Slovenian translation
+
+M      po/sl.po
+
+commit 16ac39db3608aed0d6859b8472c32fa1da6fd48b
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-08-06
+
+    [i18n] Updated German translation
+
+M      po/de.po
+
+commit e8c1b3f843997bbdb508e32bd951732ef8ffbc17
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-08-05
+
+    Updated Spanish translation
+
+M      po/es.po
+
+commit 432cc50d56107d94a59269345df985dd75976ffb
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-08-02
+
+    Added user submitted templates.
+
+    Added templates submitted by Rudolph Leitgeb and E. Travis.
+    Also cleaned up
+    avery-iso-templates.xml file.
+
+M      AUTHORS
+M      templates/avery-iso-templates.xml
+M      templates/misc-us-templates.xml
+
+commit 2e156f680d5f563ed3b050dbfe6f6d3d30a5e826
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-07-14
+
+    Cleanup zint backend settings and flags.
+
+M      src/bc-backends.c
+
+commit b5865243f8cb28214bfed442ee5d7cbee2967bc2
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-07-11
+
+    More refactoring of barcode subsystem.
+
+    Create a clear separation between the intermediate barcode format and
+    the management of the barcode backends.
+
+M      src/Makefile.am
+A      src/bc-backends.c
+A      src/bc-backends.h
+M      src/bc-gnubarcode.c
+M      src/bc-iec16022.c
+M      src/bc-iec18004.c
+M      src/bc-postnet.c
+M      src/bc-zint.c
+M      src/bc.c
+M      src/bc.h
+M      src/label-barcode.c
+M      src/label-barcode.h
+M      src/object-editor-bc-page.c
+M      src/object-editor.h
+
+commit 6717882e759c320e468683f8c69cf8af1281d91b
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-07-11
+
+    Refactoring of barcode structure.
+
+    Minor refactoring of API to barcode structure.
+
+M      src/bc-gnubarcode.c
+M      src/bc-iec16022.c
+M      src/bc-iec18004.c
+M      src/bc-postnet.c
+M      src/bc-zint.c
+M      src/bc.c
+M      src/bc.h
+M      src/label-barcode.c
+
+commit f6a1818fe2e0975dc664a1863594f3ed371e0937
+Author: Andrej Žnidaršič <andrej.znidarsic@gmail.com>
+Date:  2010-07-10
+
+    Updated Slovenian translation
+
+M      po/sl.po
+
+commit 8d2a845d489a74468776034fdab4a2e377ecffaa
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-07-10
+
+    Updated Spanish translation
+
+M      po/es.po
+
+commit b012b9c74def1a87e21e678486eeb4debeaf23be
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-07-10
+
+    Improved centering of barcode text.
+
+    Don't try to calculate x offset using hardcoded fixed character
+    width, which
+    does not work properly for proportional fonts.  Use the origin
+    provided by
+    zint (wich is at the horizontal center) and use pango to calculate
+    the offset
+    at render time.
+
+M      src/bc-zint.c
+M      src/bc.h
+M      src/label-barcode.c
+
+commit 61aa9b8dce8e6143eba39b368897a5f1a39a8e29
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-07-10
+
+    Update po files to allow me to push this branch.
+
+M      po/ca.po
+M      po/cs.po
+M      po/da.po
+M      po/de.po
+M      po/eo.po
+M      po/es.po
+M      po/fr.po
+M      po/it.po
+M      po/ja.po
+M      po/ko.po
+M      po/nb.po
+M      po/pl.po
+M      po/pt.po
+M      po/pt_BR.po
+M      po/ru.po
+M      po/sl.po
+M      po/sv.po
+M      po/zh_CN.po
+M      po/zh_TW.po
+M      src/Makefile.am
+
+commit e43f6397f295172646ed67456799c1fe6cbfb94a
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-07-09
+
+    Added new barcode drawing primitives.
+
+    Added a "Box" and a "String" barcode drawing primitives.  The box
+    primitive
+    should be more natural for drawing actual boxes instead of lines.
+    The string
+    primitive allows an entire string to be rendered with a single
+    interaction with
+    pango and cairo, rather than an interaction for each character.
+    There is no
+    need to try to implement kerning since pango will take care of the
+    string as
+    a single layout.
+
+M      src/bc-zint.c
+M      src/bc.c
+M      src/bc.h
+M      src/label-barcode.c
+
+commit f2ced22e6919c5311fb0467e0f07874d9e28e16d
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-07-09
+
+    Fixed width behavior of object editor.
+
+    I had neglected to add the barcode page to the appropriate size
+    group. Longer
+    names in the zint backend caused the style combobox to be the long
+    pole in
+    the tent, causing the width of the object editor to fluctuate when
+    selecting
+    and un-selecting barcode objects.
+
+M      data/ui/object-editor.ui
+
+commit 7e6b5431df2e8eed3152fb33db25c856dfc2a20b
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-07-08
+
+    Revert "Fix for batch output"
+
+    This reverts commit 03d80812158823eb8ad7184d1c7629b64daaecb5.
+
+M      src/label-text.c
+
+commit dd0b78bdd763b8f47b1031b478c6b2b57119fff3
+Author: Sam Lown <me@samlown.com>
+Date:  2010-07-08
+
+    Fix for batch output
+
+M      src/label-text.c
+
+commit 8b662f5b767bb4172e4b1911ecb304bd0b4c5b40
+Author: Sam Lown <me@samlown.com>
+Date:  2010-07-07
+
+    Freeing memory in xml and adding poor mans kerning to bc-zint
+
+M      src/bc-zint.c
+M      src/xml-label.c
+
+commit e9f492c8fc1638bc9a0a7014653e54306c7e974e
+Author: Sam Lown <me@samlown.com>
+Date:  2010-07-07
+
+    Using regexp to remove white space from text instead of detecting
+    newlines in xml
+
+M      src/xml-label.c
+
+commit a3fd97c6757a71f8761f76bb28c356ca425148c2
+Author: Sam Lown <me@samlown.com>
+Date:  2010-07-07
+
+    Getting GS1-128 to behave as expected
+
+M      src/bc.c
+
+commit 9d21b20ed765ef3f924a9ee48158cde94f707022
+Author: Sam Lown <me@samlown.com>
+Date:  2010-07-06
+
+    Adding Robin's changes for latest Zint
+
+M      src/bc-zint.c
+M      src/bc.c
+
+commit f3219c0e3e7800336ac13b8fbd8f62371c2398bb
+Author: Sam Lown <me@samlown.com>
+Date:  2010-06-13
+
+    Provides barcode even if invalid for correct sizing
+
+M      src/bc-zint.c
+
+commit 65dd24369545da8bd2a698fa72f08fac40cd2d37
+Author: Sam Lown <me@samlown.com>
+Date:  2010-06-12
+
+    Minor alteration for GS1-128 length@
+
+M      src/bc.c
+
+commit 769479af3289ee847ccea3145d91d15a80482b69
+Author: Sam Lown <me@samlown.com>
+Date:  2010-06-11
+
+    Updating for Zint strings and fixed dimensions
+
+M      src/bc-zint.c
+M      src/bc.c
+
+commit e1e80392cc40e87cd673e1d55a450d393432c240
+Author: Sam Lown <me@samlown.com>
+Date:  2010-05-30
+
+    Alterations to zint rendering
+
+M      src/bc-zint.c
+
+commit 6220643a6116d965c08e17da3f35acd66698be1d
+Author: Sam Lown <me@samlown.com>
+Date:  2010-05-30
+
+    Modified Zint support to use rendered data rather than encoded
+
+M      src/bc-zint.c
+
+commit b8b660ce6a19fd5c32d2311a6afe873c10f399c2
+Author: Sam Lown <me@samlown.com>
+Date:  2010-05-17
+
+    Forwardporting changes for zint barcode support
+
+M      src/Makefile.am
+M      src/bc-zint.c
+
+commit bc70724dbf60a6d2ee2f393b1252aed167e07823
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-07-08
+
+    Initialize font-history subsystem in glabels-batch.
+
+M      src/glabels-batch.c
+
+commit 6b6ff9ba800dde3f3954f36743e390dac8200b22
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-07-07
+
+    [i18n] Updated German translation
+
+M      po/de.po
+
+commit 0d5e8e336aa6d3b76470c8b396e442e0e7f2dd83
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-07-06
+
+    String cleanup.
+
+    Removed pango markup from translatable strings.  Fixed word order
+    assumption
+    with use of standalone "per sheet" string.
+
+M      data/ui/merge-properties-dialog.ui
+M      data/ui/object-editor.ui
+M      data/ui/prefs-dialog.ui
+M      data/ui/print-op-dialog-custom-widget.ui
+M      libglabels/template.c
+M      src/template-designer.c
+
+commit 09b643f62fc415b50a6d85079e0e503b6bd8f2a6
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-07-06
+
+    Fixed a few -Wall warnings.
+
+M      src/label-image.c
+M      src/svg-cache.c
+
+commit 669df86b2593b4a6ba19b0fa58092f19fabf32b3
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-07-05
+
+    [i18n] Updated German translation
+
+M      po/de.po
+
+commit b2ef908e8f1f0ae8daf7a08a82ff9c3e3128f06d
+Author: Andrej Žnidaršič <andrej.znidarsic@gmail.com>
+Date:  2010-07-04
+
+    Updated Slovenian translation
+
+M      po/sl.po
+
+commit 3e365e5f9187a12fbf0e29d4d3804cab0261e8e9
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-07-02
+
+    Add native support for SVG images.
+
+    Rather than just rasterizing SVG files into GdkPixbufs, use RSVG
+    to handle
+    SVG files directly -- preserving the original file as inline data.
+
+M      configure.ac
+M      po/POTFILES.in
+M      src/Makefile.am
+M      src/debug.c
+M      src/debug.h
+M      src/file-util.c
+M      src/file-util.h
+M      src/label-image.c
+M      src/label-image.h
+M      src/label.c
+M      src/label.h
+M      src/object-editor.c
+A      src/svg-cache.c
+A      src/svg-cache.h
+M      src/xml-label.c
+M      templates/glabels-2.3.dtd
+
+commit 85c5b1fa0d48486d3985c43cd0272a3d5d0753c7
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-06-16
+
+    Updated Spanish translation
+
+M      po/es.po
+
+commit 907a32752b637186451c56cc79fa19b35e7e33e2
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-06-12
+
+    Add shadow property to image objects.
+
+    Added shadow support to image objects.  Shadow is created from
+    the image's
+    alpha channel, so the shadow will work properly for images with
+    transparent
+    backgrounds.  More work needs to be done to better optimize the
+    performance.
+
+M      src/Makefile.am
+M      src/label-image.c
+M      src/object-editor.c
+A      src/pixbuf-util.c
+A      src/pixbuf-util.h
+
+commit 3f4bd5d778015e524870eeb8bf89ad5bd615eabe
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-06-12
+
+    Cleanup of shadows for boxes and ellipses.
+
+    Do a more intelligent job of drawing shadows for boxes and ellipses.
+    Instead
+    of just blindly drawing a fill shadow and an outline shadow, choose
+    to draw
+    one or the other and adjust size of shadow appropriately.
+
+M      data/ui/object-editor.ui
+M      src/label-box.c
+M      src/label-ellipse.c
+
+commit fe7a2fbf407047c5d69ccc93e9d5a6cb92d08871
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-06-11
+
+    Do not explicitly set sidebar size.
+
+    Use 2 sizegroups to automatically fix sidebar size based on the size
+    of the widgets it contains -- even hidden ones.  The width was
+    previously
+    set explicitly to prevent the sidebar from changing size whenever
+    objects
+    are selected and unselected.  This has been problematic for
+    compatability
+    with different themes, fonts, and translations.
+
+M      data/ui/object-editor.ui
+M      src/object-editor.c
+M      src/ui-sidebar.c
+
+commit 1382ac85c0d0516a9760db1f52173a6d3f0563e5
+Author: Andrej Žnidaršič <andrej.znidarsic@gmail.com>
+Date:  2010-06-11
+
+    Updated Slovenian translation
+
+M      po/sl.po
+
+commit 8aa1c5b131e6ee24c2f1c54be23239f062c91a65
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-06-10
+
+    Updated German translation
+
+M      po/de.po
+
+commit 2dc9de0c566a201d49f436fa6831dec403603f2e
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-06-09
+
+    Added text merge backend for semicolon separated values
+
+    Feature request #3013910.  Added entry for a text merge backend using
+    a semicolon as delimiter.
+
+M      src/merge-init.c
+
+commit 59eac573a766dce34876713953efd5a147fd0222
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-06-06
+
+    Some final preparation for 2.3.0.
+
+M      NEWS
+M      configure.ac
+
+commit 245b69b5ed745eea8509133fd5c49a8bdde8082f
+Author: Christian Persch <chpe@gnome.org>
+Date:  2010-06-05
+
+    Speed up large barcodes
+
+    g_list_append() is evil. Just use prepend().
+
+M      src/bc.c
+
+commit 3cc1494b4838d0aa4c6b4fb35f15a80b44a69071
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-06-05
+
+    Some preparation for 2.3.0 release
+
+M      AUTHORS
+M      NEWS
+M      configure.ac
+
+commit b27f91e7105e2a28ca1f7377d67ee20ccd7ec994
+Author: Michel Recondo <michel@recondo.com.br>
+Date:  2010-06-05
+
+    Updated Brazilian Portuguese translation
+
+    Reviewed by Henrique Machado <hpmachado@gnome.org>
+
+M      po/pt_BR.po
+
+commit 3c200d2279f57999de42fb211ed878de3a62ad5b
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-06-04
+
+    Updated libglabels documentation.
+
+M      docs/libglabels/libglabels-3.0-sections.txt
+M      docs/libglabels/tmpl/category.sgml
+M      docs/libglabels/tmpl/db.sgml
+M      docs/libglabels/tmpl/paper.sgml
+M      docs/libglabels/tmpl/str.sgml
+M      docs/libglabels/tmpl/template.sgml
+M      docs/libglabels/tmpl/units.sgml
+M      docs/libglabels/tmpl/vendor.sgml
+M      docs/libglabels/tmpl/xml-category.sgml
+M      docs/libglabels/tmpl/xml-paper.sgml
+M      docs/libglabels/tmpl/xml-template.sgml
+M      docs/libglabels/tmpl/xml-vendor.sgml
+M      docs/libglabels/tmpl/xml.sgml
+M      libglabels/db.c
+M      libglabels/str.c
+
+commit 424d8c45333504425cebb58d97b1f9e58e45a473
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-06-02
+
+    Fixed a few -Wall warnings
+
+M      libglabels/db.c
+M      src/file-util.c
+M      src/merge.c
+M      src/str-util.c
+
+commit 10d31988ea2247e420f2622043fb8586bc839ed9
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-06-02
+
+    Updated NEWS for upcoming 2.3.0 release.
+
+M      NEWS
+
+commit a05703c9967c8bca38785a8c4872bf6ab266f57c
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-31
+
+    Updated DTD.
+
+M      templates/glabels-2.3.dtd
+
+commit 55b7dda6b69c4f1a25734152fd6b69b72ee3f385
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-30
+
+    Fix selection problem.
+
+    Clear existing paths before creating new test paths.  This would
+    occasionally
+    cause the wrong object to be selected because the in_fill or in_stroke
+    tests would be satisfied using left-over paths from previous tests.
+
+M      src/label-barcode.c
+M      src/label-box.c
+M      src/label-ellipse.c
+M      src/label-image.c
+M      src/label-line.c
+M      src/label-text.c
+
+commit c555edf9c5195b45812383d699e6021417dd96cd
+Author: Joe Hansen <joedalton2@yahoo.dk>
+Date:  2010-05-30
+
+    Updated Danish translation
+
+M      po/da.po
+
+commit 1ce273bf46b7e199600e5332d2ee13a2e4aea241
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-05-30
+
+    Updated Spanish translation
+
+M      po/es.po
+
+commit 1990055cc0190e23fc0796ff04c00678b68faba3
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-29
+
+    Tweak rendering of color swatches and font samples.
+
+M      src/color-swatch.c
+M      src/font-sample.c
+
+commit 06f27cce690f6ee0a498a05ae16d4eeb96cf20c1
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-29
+
+    Explicitly link with libm.
+
+M      src/Makefile.am
+
+commit 1d85e165dcfedb28327b8e79bd91bdbb02e1f6e6
+Author: Andrej Žnidaršič <andrej.znidarsic@gmail.com>
+Date:  2010-05-28
+
+    Updated Slovenian translation
+
+M      po/sl.po
+
+commit bb8763ff8f3d739280dafbde15e27622fa08148a
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-05-28
+
+    Updated Spanish translation
+
+M      po/es.po
+
+commit 88decad7363f3e3d13ca34fd6e956ed9bd197a11
+Author: Claude Paroz <claude@2xlibre.net>
+Date:  2010-05-27
+
+    Updated French translation
+
+    Contributed by Claude Paroz and Gérard Baylard
+
+M      po/fr.po
+
+commit 26990ef637b55a385c9b61308bc6ecbb9234334b
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-26
+
+    Some minor barcode cleanup
+
+    - Added DEBUG_BARCODE so that verbosity on stdout of new libzint
+    backend
+      can be controlled.
+    - Removed artifact comments and some minor formatting changes
+    in libzint
+      backend.
+    - In object editor, make preview format track the number of digits
+    in the
+      digits spinbox in real-time.
+
+M      src/bc-zint.c
+M      src/bc.c
+M      src/debug.c
+M      src/debug.h
+M      src/object-editor-bc-page.c
+
+commit c22727a27e8ab935eeaf4ef2a0d5119212597406
+Author: Daniel Mustieles <daniel.mustieles@gmail.com>
+Date:  2010-05-26
+
+    Updated Spanish translation
+
+M      po/es.po
+
+commit 4071ed90076bb15c831435063b2b6bce0cbbe00e
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-05-25
+
+    Updated German translation
+
+M      po/de.po
+
+commit 29d57a7936c1d39db31fd5e952bda32f13331ac1
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-24
+
+    Additional translator hints.
+
+    - Fixed a couple of strings that should not have been marked
+    translatable.
+    - Added comments for "Fixed", "Other", "None", and "No match."
+    - Attempted to disambiguate 3 different occurances of "Any"
+
+M      data/ui/new-label-dialog.ui
+M      data/ui/object-editor.ui
+M      libglabels/db.c
+M      libglabels/template.c
+M      src/media-select.c
+M      src/merge-properties-dialog.c
+M      src/merge.c
+
+commit eb650e1275a4a9f54ef05c97933646ec37fc7d56
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-24
+
+    Use a translator comment rather than context.
+
+M      src/mini-preview.c
+
+commit d9f004626ba7f8a8870c3265c89863b569357556
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-24
+
+    Added context for "Up" string
+
+M      src/mini-preview.c
+
+commit 51181713e931b531cb595dffe2c7fc742155b687
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-24
+
+    Removed "translatable" attribute from unused builder strings
+
+    Removed "translatable" attribute from unused builder strings.
+    These strings
+    are an artifact of how I organized the individual pages for
+    GtkAssistants
+    in GtkNotebooks in glade.
+
+M      data/ui/new-label-dialog.ui
+M      data/ui/template-designer.ui
+
+commit 21115bdb38a0b6ffc93cfa6c6611dc071cb3812a
+Author: Takeshi AIHANA <takeshi.aihana@gmail.com>
+Date:  2010-05-24
+
+    Updated Japanese translation, taken from the 2_2 branch
+
+M      po/ja.po
+
+commit b039cb00f971a74d9add15fbeecadfa37de698f7
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-05-24
+
+    Updated German translation
+
+M      po/de.po
+
+commit 3144ddc46eea2ac6e74887a6229981491da10aa0
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-05-24
+
+    Made PEARL label descriptions translatable
+
+M      po/POTFILES.in
+
+commit b0ef76a570d6af52af44dbe0014ebe559720058c
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-05-24
+
+    Added more labels
+
+M      templates/pearl-iso-templates.xml
+
+commit 0c89cdc382cd774da88e0b065fc0b6851aacbdf1
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-24
+
+    Properly mark strings as no-c-format
+
+    Properly mark non-c-format strings containing '%' as no-c-format.
+     - Added "xgettext: no-c-format" comments as suggested by Claude
+     Paroz.
+     - Removed backslashes ('\') from my ignorant attempt to address this.
+
+M      src/color-combo-menu.c
+
+commit 30d4df7681459d895ef5c09e2e43ba88c0e72785
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-22
+
+    Minor refactoring of glBarcode structure.
+
+    Minor refactoring of glBarcode structure in preparation of support for
+    more exotic barcode shapes.
+
+M      src/bc-gnubarcode.c
+M      src/bc-iec16022.c
+M      src/bc-iec18004.c
+M      src/bc-postnet.c
+M      src/bc-zint.c
+M      src/bc.c
+M      src/bc.h
+M      src/label-barcode.c
+
+commit ee2801d56d29e847b90849f95a14e2cab518718d
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-17
+
+    Autosize zint barcode when w == 0 && h == 0.
+
+M      src/bc-zint.c
+
+commit 0f73f8658931299b97a4e9126622014e7d86e9ed
+Author: Sam Lown <me@samlown.com>
+Date:  2010-05-17
+
+    Added libzint as a barcode backend.
+
+    Added libzint as a barcode backend.  Currently only implements the
+    GS1-128 barcode.
+
+M      configure.ac
+M      src/Makefile.am
+A      src/bc-zint.c
+A      src/bc-zint.h
+M      src/bc.c
+
+commit 94475149f8f8568f62723cb2428ce11d76243f1b
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-16
+
+    Allow for small error in comparison of dimensions.
+
+    In lgl_template_are_templates_identical(), allow for a small
+    error when
+    comparing dimensions.  Set EPSILON to 0.5pt, which is aproximately
+    0.007in or 0.2mm.
+
+M      libglabels/template.c
+
+commit a4d7958651c3cd53424b8ca74b314b8bd71a055f
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-15
+
+    Use g_get_user_config_dir() to locate custom templates.
+
+    Use g_get_user_config_dir() to locate custom template.  By default
+    this
+    means that custom templates will be stored at
+    ~/.config/libglabels/templates
+    instead of ~/.glabels.
+
+    Also automatically migrate user custom templates to the new location
+    when
+    run for the first time.
+
+M      libglabels/Makefile.am
+M      libglabels/db.c
+M      libglabels/libglabels-private.h
+
+commit a8fe0a4371351910d70fc66f71b347ba904fafa0
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-15
+
+    Update TODO file.
+
+M      TODO
+
+commit 25a0745280c5b37d702bca540a0bc1f78ac8270e
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-05-15
+
+    Updated German translation
+
+M      po/de.po
+
+commit 634f1afa97ecae4589fb82d130de78b0b2724db0
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-05-15
+
+    Fixed filenames in POTFILES.in
+
+M      po/POTFILES.in
+
+commit 25af4f2b739108625226db78aebe4b206535bacb
+Author: Daniel Mustieles <danielmustieles@gmail.com>
+Date:  2010-05-15
+
+    Updated Spanish translation
+
+M      po/es.po
+
+commit d88c0c2aa50950095fbff6fef46732d586333522
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-12
+
+    Renamed builder files to use '.ui' extension.
+
+M      configure.ac
+M      data/Makefile.am
+D      data/builder/Makefile.am
+A      data/ui/Makefile.am
+R100   data/builder/media-select.builder       data/ui/media-select.ui
+R100   data/builder/merge-properties-dialog.builder
+data/ui/merge-properties-dialog.ui
+R100   data/builder/new-label-dialog.builder
+data/ui/new-label-dialog.ui
+R100   data/builder/object-editor.builder      data/ui/object-editor.ui
+R100   data/builder/prefs-dialog.builder       data/ui/prefs-dialog.ui
+R100   data/builder/print-op-dialog-custom-widget.builder
+data/ui/print-op-dialog-custom-widget.ui
+R100   data/builder/property-bar.builder       data/ui/property-bar.ui
+R100   data/builder/template-designer.builder
+data/ui/template-designer.ui
+M      src/media-select.c
+M      src/merge-properties-dialog.c
+M      src/new-label-dialog.c
+M      src/object-editor.c
+M      src/prefs-dialog.c
+M      src/print-op-dialog.c
+M      src/template-designer.c
+M      src/ui-property-bar.c
+
+commit 4d51e31d5f526b0885b25be6f94624e5ea4ff1f7
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-11
+
+    Reconciled font size limits in separate spinboxes.
+
+M      data/builder/object-editor.builder
+
+commit f470b3aa6484c6c56cc98d451c6f57708aaf4d53
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-10
+
+    Refinements to text objects
+
+    - Draw outline around text objects.
+    - Use a more sophisticated test for determining if cursor is on a text
+      object: test against glyphs instead of simple bounds test.
+      The test will
+      also indicate that cursor is on the object if it is on the
+      selection outline.
+    - Do word wrap instead of character wrap.
+
+M      src/label-text.c
+
+commit edff98c6ae5250858a3e376a992ba84265a93d6c
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-07
+
+    Added several vendor URLs.
+
+M      templates/vendors.xml
+
+commit 206b483f611441d18db5360800975f2f0d35014b
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-05
+
+    Added sanity tests to template parser
+
+    When parsing a template node, if there is no recognized frame node
+    (e.g.
+    Label-rectangle), a default full-page frame with a 1x1 layout
+    is created.
+    Likewise, if a frame has no layout, a default 1x1 layout is created.
+    This prevents potential crashes due to typos in the case of typos in
+    hand generated templates.
+
+M      libglabels/str.c
+M      libglabels/xml-template.c
+
+commit 6509948cb27c7c76349350e1b84aaaf4a52c7e59
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-02
+
+    Added Avery 8658 family of templates.
+
+    Added Avery 8658 family of templates, submitted by Nigel Titley.
+
+M      templates/avery-iso-templates.xml
+
+commit 7d926a37cc8956753d610140fc301b845e3a7de9
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-02
+
+    Do a better job of rounding in lgl_str_format_fraction().
+
+    When a number is determined to be "close enough" to being an integer,
+    don't
+    just simply cast the number to get the integer value.
+
+M      libglabels/str.c
+
+commit 8df8aedaf99f072cb2739fbbdcfa3440acd415eb
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-05-01
+
+    Removed obsolete workaround.
+
+    Removed obsolete workaround for Pango Bug#341481.  This is now
+    fixed in
+    recent versions of Pango.
+
+M      src/label-text.c
+
+commit 8fb4c72166b2052b31bc9b5f02e63c6ae5886a82
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-04-29
+
+    Minor Cleanup
+
+M      libglabels/db.c
+M      src/new-label-dialog.c
+
+commit e322da91fe4a9bdabbc35e1e146e1dada04d6288
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-04-25
+
+    Added "Up" label to orientation arrow.
+
+    Added an "Up" label to the orientation arrow in the 1st label in the
+    mini preview.  Use theme base color for arrow and label.  Don't draw
+    arrow if w == h.
+
+M      src/mini-preview.c
+
+commit 7381cfd88fa386dc1fc3a7cce0d0aaac9c4dce45
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-04-21
+
+    Added test for duplicate templates
+
+    Added test for duplicate pre-defined templates.  Removed duplicate
+    template in pearl-iso-templates.xml.  Also added lgl_template_print()
+    for
+    debugging purposes.
+
+M      libglabels/db.c
+M      libglabels/template.c
+M      libglabels/template.h
+M      templates/pearl-iso-templates.xml
+
+commit 0633489db60773e6e61914d978d9f64bae0fbf13
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-04-20
+
+    Added decorations to "new label" dialog
+
+    Added new images to decorate each page of the "new label"
+    dialog/wizard.
+
+M      data/pixmaps/Makefile.am
+A      data/pixmaps/new-confirm.png
+A      data/pixmaps/new-rotate.png
+A      data/pixmaps/new-select.png
+M      src/new-label-dialog.c
+
+commit 58982c93787c62d55e343f6b316643fe5d4f05d6
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-04-18
+
+    Added ability to edit user-defined templates
+
+M      libglabels/db.c
+M      libglabels/db.h
+M      src/media-select.c
+M      src/mini-preview-pixbuf-cache.c
+M      src/mini-preview-pixbuf-cache.h
+M      src/template-designer.c
+M      src/template-designer.h
+
+commit 08f8cffbc138c302c502b08c4464462d19532bcf
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-04-04
+
+    Changed packing style for media select widget
+
+    Changed packing style for media select widget so that it will expand
+    both horizontally and vertically with new label dialog.
+
+M      data/builder/media-select.builder
+M      data/builder/new-label-dialog.builder
+
+commit 3ebe5807c5895cd9ca91233813ad11a9a0916698
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-04-03
+
+    Allow "new label" and "properties" dialogs to be resizable.
+
+M      src/file.c
+
+commit 1404fad764041cd32b156e43fb3a6417d9e140d9
+Author: Filipe Roque <fliproque@gmail.com>
+Date:  2010-04-04
+
+    Updated Portuguese translation
+
+M      po/LINGUAS
+A      po/pt.po
+
+commit 253e63d0a170859aeae433afb94c8df9908f2e92
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-04-03
+
+    Added Avery DL33 and look-alike templates.
+
+    DL33 templates provided by Ian Shuttleworth.
+
+M      AUTHORS
+M      templates/avery-iso-templates.xml
+M      templates/misc-iso-templates.xml
+
+commit 8bbf05ef33758514b23fdd31ed5b0e4d5f128396
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-03-31
+
+    Fixed selection problem with media select widget
+
+    Fixed selection problem with media select widget by removing cut&paste
+    artifact from last update to this widget.
+
+M      src/media-select.c
+
+commit 712fd7eb1a39500a22196feef726d4fb26cf1acb
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-03-29
+
+    Updated German translation
+
+M      po/de.po
+
+commit 07cc165a7d57312cffee8b56a318fe4a597cdb83
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-03-28
+
+    Added "custom" tab to media select widget
+
+    Added "custom" tab to media select widget. In this tab, the user can
+    launch the template designer or delete an existing user-defined
+    template.
+    Added notification callbacks to libglabels db subsystem so that the
+    media select widget will automatically update when user-defined
+    templates
+    are added or deleted.  The "edit" button does not do anything yet.
+
+    Also did some visual cleanup to the new label dialog.
+
+    Also include ../libglabels in SUBDIRS in src/ so that libglabels can
+    be rebuilt from src/ directory.
+
+M      data/builder/media-select.builder
+M      data/builder/new-label-dialog.builder
+M      libglabels/db.c
+M      libglabels/db.h
+M      src/Makefile.am
+M      src/media-select.c
+
+commit 270bb68dcf6c6e02af8643bec6e9b82a80542c91
+Author: Andrej Žnidaršič <andrej.znidarsic@gmail.com>
+Date:  2010-03-21
+
+    Updated Slovenian translation
+
+M      po/sl.po
+
+commit cce75a2b36bd94b7771c779c0f0d7b9dd30813b9
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-03-21
+
+    Added new file to POTFILES.in from last commit.
+
+M      po/POTFILES.in
+
+commit 0a83046c78acea94d80fe2aea239a220445410ab
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-03-21
+
+    Yet another new "New Label Dialog"
+
+    Re-designed the "New label dialog" again.  This time as a "wizard" or
+    GtkAssistant.  This is an attempt to keep the easy navigation of the
+    2.2.x dialog, to keep the added meta data and preview of the latest
+    incarnation, and to maintain a compact dialog that should work
+    on fairly
+    small displays such on netbooks (probably not hand-helds still).
+
+M      data/builder/Makefile.am
+A      data/builder/media-select.builder
+M      data/builder/new-label-dialog.builder
+M      po/POTFILES.in
+M      src/Makefile.am
+M      src/file.c
+D      src/media-combo-menu-item.c
+D      src/media-combo-menu-item.h
+D      src/media-combo-menu.c
+D      src/media-combo-menu.h
+D      src/media-combo.c
+D      src/media-combo.h
+A      src/media-select.c
+A      src/media-select.h
+M      src/new-label-dialog.c
+M      src/new-label-dialog.h
+D      src/rotate-label-button.c
+D      src/rotate-label-button.h
+
+commit fd8e5102e03cf35277af2a99a15d5b5402de5b77
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-03-20
+
+    Updated German translation
+
+M      po/de.po
+
+commit 0f42e39d7e5cacf48e972b50b882fd955288ffaf
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-03-18
+
+    Escape URLs in markup.
+
+    Escape URLs in vendor and product markup.  Also rearranged the layout
+    of the
+    new "new label" dialog -- I am still not happy with navigating
+    the templates
+    with this new dialog.  I will probably try for a hybrid between
+    this and
+    the 2.2.x dialog.
+
+M      data/builder/new-label-dialog.builder
+M      src/new-label-dialog.c
+
+commit 1d1965d625e85601514f7c6dcf5ef53a34859e5d
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-03-17
+
+    Added missing file from last commit.
+
+A      templates/pearl-iso-templates.xml
+
+commit 3cc850d2ede031b82a21781c029370407b90a980
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-03-17
+
+    Reconciled label database with 2.2 branch
+
+    Merged recent template additions from 2.2 branch + some cleanup.
+
+M      AUTHORS
+M      templates/Makefile.am
+M      templates/glabels-2.3.dtd
+M      templates/misc-iso-templates.xml
+
+commit 7356e898494b7d68c0fc9063f2ec0fdb867bf471
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-03-16
+
+    Catching up on template submissions.
+
+M      AUTHORS
+M      templates/misc-iso-templates.xml
+M      templates/misc-us-templates.xml
+
+commit fad9e52268012e6e046cd989d708026d6a244e70
+Author: Kjartan Maraas <kmaraas@gnome.org>
+Date:  2010-03-15
+
+    Add Norwegian language entry.
+
+M      po/LINGUAS
+
+commit 5c38897c7d89d517c010e1f8a2271e55bc7f31d3
+Author: Kjartan Maraas <kmaraas@gnome.org>
+Date:  2010-03-15
+
+    Added Norwegian bokmål translation
+
+A      po/nb.po
+
+commit 7c7efdf6f7d84030b13761f460eeef61ae0c2fc3
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-03-13
+
+    Make fractions more readable
+
+    Use Unicode superscripts and subscripts to format fractions.
+    Should be
+    more readable than the uggly 1_5/8.
+
+M      libglabels/str.c
+
+commit 84dfd774bae16f8bdc9dde21baabd41cc7638dd0
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-03-13
+
+    Some new label dialog cleanup
+
+    Draw arrow in mini preview relative to first label, not the entire
+    sheet.
+    This should be more obvious what the arrow is indicating, before
+    it could
+    have been interpreted as the feed direction.
+
+    Don't put an empty line at the end of the list of similar templates.
+
+M      src/mini-preview.c
+M      src/new-label-dialog.c
+
+commit 4abc5d0a6552b48c0190e5a2baff4a6eb14b9281
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-03-10
+
+    Reconciled POTFILES.in with last commit.
+
+M      po/POTFILES.in
+
+commit 44ad3d257b9594674604fa82215e72759b40de11
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-03-10
+
+    Created new "New label dialog"
+
+    Created a new re-designed "New label dialog."  The dialog now shows
+    meta-data
+    for the selected template, including hyperlinks to vendor and product
+    websites, if available.  The new dialog is more compact and thus
+    should
+    be usable on small displays such as netbooks (probably not
+    hand-helds).
+
+    The menu is somewhat clumbsy to navigate still -- will need to
+    reorganize
+    to make navigation easier and more intuitive.
+
+M      data/builder/Makefile.am
+D      data/builder/media-select.builder
+A      data/builder/new-label-dialog.builder
+M      libglabels/db.c
+M      libglabels/db.h
+M      libglabels/str.c
+M      libglabels/str.h
+M      libglabels/template.c
+M      libglabels/template.h
+M      src/Makefile.am
+A      src/media-combo-menu-item.c
+A      src/media-combo-menu-item.h
+A      src/media-combo-menu.c
+A      src/media-combo-menu.h
+A      src/media-combo.c
+A      src/media-combo.h
+D      src/media-select.c
+D      src/media-select.h
+M      src/mini-preview.c
+M      src/mini-preview.h
+M      src/new-label-dialog.c
+M      src/rotate-label-button.c
+M      src/str-util.c
+M      src/str-util.h
+
+commit d94c47da20d726831e16f8cd720d64d26ce85d2b
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-03-02
+
+    Minor Cleanup
+
+M      COPYING.README_FIRST
+M      README
+M      configure.ac
+M      libglabels/xml-template.c
+M      libglabels/xml-vendor.c
+M      src/cairo-label-path.c
+M      src/cairo-markup-path.c
+M      src/label-line.c
+M      src/label-text.c
+M      src/template-designer.c
+M      templates/avery-iso-templates.xml
+M      templates/avery-other-templates.xml
+M      templates/avery-us-templates.xml
+M      templates/brother-other-templates.xml
+M      templates/categories.xml
+M      templates/dymo-other-templates.xml
+M      templates/maco-us-templates.xml
+M      templates/misc-iso-templates.xml
+M      templates/misc-other-templates.xml
+M      templates/misc-us-templates.xml
+M      templates/paper-sizes.xml
+M      templates/uline-us-templates.xml
+M      templates/vendors.xml
+M      templates/worldlabel-us-templates.xml
+M      templates/zweckform-iso-templates.xml
+
+commit 4aa7c2ac0a4578c2213b8964dff098f039eef703
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-02-28
+
+    Cleanup of libglabels documentation.
+
+    Added documentation for new functionality in 3.0, including the vendor
+    database and a new "natural order" compare function for sorting
+    part numbers.
+
+M      docs/libglabels/libglabels-3.0-docs.sgml
+M      docs/libglabels/libglabels-3.0-sections.txt
+M      docs/libglabels/tmpl/db.sgml
+M      docs/libglabels/tmpl/str.sgml
+M      docs/libglabels/tmpl/template.sgml
+A      docs/libglabels/tmpl/vendor.sgml
+A      docs/libglabels/tmpl/xml-vendor.sgml
+M      libglabels/str.c
+M      libglabels/template.c
+M      libglabels/vendor.c
+M      libglabels/xml-template.c
+
+commit 12f3f040b340c30188e4953b9f6a51263206f8ab
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-02-28
+
+    Updated libglabels documentation to support parallel installation
+
+M      .gitignore
+M      docs/libglabels/Makefile.am
+R094   docs/libglabels/libglabels-docs.sgml
+docs/libglabels/libglabels-3.0-docs.sgml
+R100   docs/libglabels/libglabels-overrides.txt
+docs/libglabels/libglabels-3.0-overrides.txt
+R099   docs/libglabels/libglabels-sections.txt
+docs/libglabels/libglabels-3.0-sections.txt
+R100   docs/libglabels/libglabels.types
+docs/libglabels/libglabels-3.0.types
+R100   docs/libglabels/tmpl/libglabels-unused.sgml
+docs/libglabels/tmpl/libglabels-3.0-unused.sgml
+M      docs/libglabels/tmpl/template.sgml
+M      docs/libglabels/tmpl/units.sgml
+
+commit 7838152cdfea71a3676e40593ab4cb4a30484ffe
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-02-28
+
+    Additional changes to support parallel installation
+
+    Changed GETTEXT_PACKAGE to glabels-3.0 and renamed help files
+    to support
+    parallel installation with other versions of glabels.
+
+M      .gitignore
+M      configure.ac
+R100   help/C/glabels.xml      help/C/glabels-3.0.xml
+M      help/Makefile.am
+R100   help/glabels.omf.in     help/glabels-3.0.omf.in
+M      po/POTFILES.in
+M      src/ui-commands.c
+
+commit 69f4e1fc6a8a731d8a73e020810aef5a895fba5b
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-02-26
+
+    Cleanup of mime support
+
+    Removed old mime support files.  Renamed mime icon file.
+
+M      .gitignore
+M      Makefile.am
+M      data/mime/Makefile.am
+R100   data/mime/glabels.xml.in        data/mime/glabels-3.0.xml.in
+D      data/mime/glabels.applications
+D      data/mime/glabels.keys.in
+D      data/mime/glabels.mime
+M      data/pixmaps/Makefile.am
+R100   data/pixmaps/glabels-3.0-application-x-glabels.png
+data/pixmaps/application-x-glabels.png
+
+commit 65b8b97bc7fece41dcbba69f4ef4533c4fc6b2e5
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-02-25
+
+    Updated mimetype icon.
+
+    Updated mimetype icon to look more modern.
+
+M      data/pixmaps/glabels-3.0-application-x-glabels.png
+
+commit 5f40d24d1843a5b124c9f638bf9d57e7fead5b4f
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-02-24
+
+    Rename executables and key files to support parallel installation
+
+    Renamed glabels and glabels-batch to glabels-3 and glabels-3-batch
+    to support
+    parallel installation with other versions of glabels.  Also renamed
+    and
+    reconciled man pages and icon files.
+
+M      .gitignore
+M      data/desktop/Makefile.am
+R073   data/desktop/glabels.desktop.in
+data/desktop/glabels-3.0.desktop.in
+M      data/man/Makefile.am
+A      data/man/glabels-3-batch.1
+R095   data/man/glabels.1      data/man/glabels-3.1
+M      data/mime/glabels.keys.in
+M      data/pixmaps/Makefile.am
+R100   data/pixmaps/glabels-application-x-glabels.png
+data/pixmaps/glabels-3.0-application-x-glabels.png
+R100   data/pixmaps/glabels.png        data/pixmaps/glabels-3.0.png
+M      src/Makefile.am
+M      src/glabels.c
+M      src/template-designer.c
+
+commit a68f91d57b2eac4a624a0e0c632338b88581d23d
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-02-24
+
+    Rename glabels data directory to support parallel installation.
+
+    Renamed glabels data directory from glabels to glabels-3.0 to
+    ultimately
+    support parallel installation with older versions of glabels.
+
+M      configure.ac
+M      data/builder/Makefile.am
+M      data/pixmaps/Makefile.am
+M      libglabels/Makefile.am
+M      libglabels/libglabels-3.0.pc.in
+M      src/Makefile.am
+M      src/glabels.c
+M      src/media-select.c
+M      src/merge-properties-dialog.c
+M      src/object-editor.c
+M      src/prefs-dialog.c
+M      src/print-op-dialog.c
+M      src/template-designer.c
+M      src/ui-commands.c
+M      src/ui-property-bar.c
+M      templates/Makefile.am
+
+commit c69edbd06103ad457c2fa87369094f17d7fa9030
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-02-23
+
+    Make libglabels parallel installable with other versions
+
+    Made libglabels install as libglabels-3.0 to support parallel
+    installation
+    with earlier versions.  Performed some related cleanup associated with
+    this move, including installing libglabels.h into
+    include/libglabels-3.0
+    and installing all other include files in
+    include/libglabels-3.0/libglabels/.
+
+    More work is still need to support parallel installation of the
+    glabels
+    application.
+
+M      .gitignore
+D      INSTALL
+M      autogen.sh
+R079   configure.in    configure.ac
+M      data/desktop/Makefile.am
+M      data/mime/Makefile.am
+M      libglabels/Makefile.am
+R066   libglabels/libglabels.pc.in     libglabels/libglabels-3.0.pc.in
+M      src/Makefile.am
+M      src/combo-util.c
+M      src/file.c
+M      src/font-history-model.c
+M      src/font-util.c
+M      src/glabels-batch.c
+M      src/glabels.c
+M      src/media-select.c
+M      src/merge-evolution.c
+M      src/merge.c
+M      src/mini-label-preview.c
+M      src/mini-preview-pixbuf-cache.c
+M      src/mini-preview.c
+M      src/prefs-model.c
+M      src/prefs.c
+M      src/print-op.c
+M      src/print.c
+M      src/rotate-label-button.c
+M      src/template-designer.c
+M      src/template-history-model.c
+M      src/xml-label-04.c
+M      src/xml-label.c
+M      templates/Makefile.am
+
+commit 50f04182df385b4d535ea22de6b8b44c1545f53d
+Author: Joe Hansen <joedalton2@yahoo.dk>
+Date:  2010-02-23
+
+    Updated Danish translation
+
+A      po/da.po
+
+commit 242db8f321477a9cb3a904928a65aeec0fc292b3
+Author: Kenneth Nielsen <k.nielsen81@gmail.com>
+Date:  2010-02-23
+
+    Added da to list of languages
+
+M      po/LINGUAS
+
+commit 4c65998c8e09c354a93180a39fd35406c28b7dfd
+Author: Jorge González <jorgegonz@svn.gnome.org>
+Date:  2010-02-19
+
+    Added es to DOC_LINGUAS
+
+M      help/Makefile.am
+
+commit 855164906135d8bf586776b628a4e758f9bf8dbe
+Author: Jorge González <jorgegonz@svn.gnome.org>
+Date:  2010-02-19
+
+    Added initial Spanish translation
+
+A      help/es/es.po
+
+commit fc936bcec26a162cbef176125c9ddafa34fa0074
+Author: Petr Kovar <pknbe@volny.cz>
+Date:  2010-02-18
+
+    Fix Czech translation by Marek Cernocky
+
+M      po/cs.po
+
+commit 9959f357a8ab37756c08ef5d63cac2213ab56897
+Author: Petr Kovar <pknbe@volny.cz>
+Date:  2010-02-18
+
+    Add Czech help translation by Marek Cernocky
+
+M      help/Makefile.am
+A      help/cs/cs.po
+A      help/cs/figures/main-window-empty.png
+A      help/cs/figures/merge-ex1-1.png
+A      help/cs/figures/merge-ex1-2.png
+A      help/cs/figures/merge-ex1-3.png
+A      help/cs/figures/merge-ex1-4.png
+A      help/cs/figures/merge-ex2-1.png
+A      help/cs/figures/merge-ex2-2.png
+A      help/cs/figures/merge-ex2-3.png
+A      help/cs/figures/merge-ex2-4.png
+A      help/cs/figures/object-editor-sidebar.png
+A      help/cs/figures/print-copies.png
+A      help/cs/figures/print-merge.png
+
+commit eb35f13b2425449c6ec18b5ac5e3dd43169c3256
+Author: Andrej Žnidaršič <andrej.znidarsic@gmail.com>
+Date:  2010-02-12
+
+    Updated Slovenian translation
+
+M      po/sl.po
+
+commit fb41df013f26d24c2cb6d395446a7d142716977b
+Author: Petr Kovar <pknbe@volny.cz>
+Date:  2010-02-11
+
+    Update Czech translation by Marek Cernocky
+
+M      po/cs.po
+
+commit 8f71968174b552bd57d342f2deebf58ef8d2ca81
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-02-03
+
+    Added support for elliptical labels and markup
+
+    Added support for elliptical labels.
+    Added support for elliptical markup lines.
+
+M      docs/libglabels/tmpl/template.sgml
+M      docs/libglabels/tmpl/xml-template.sgml
+M      libglabels/template.c
+M      libglabels/template.h
+M      libglabels/xml-template.c
+M      src/cairo-label-path.c
+M      src/cairo-markup-path.c
+M      templates/glabels-2.3.dtd
+
+commit 1dd19c88400a07af8f9eb33e05d967d19da91b08
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-01-28
+
+    Tweaks to glView.
+
+    - Draw drop shadow behind label.
+    - Fixed starting grid lines on round labels.
+    - Adjust grid spacing based on selected units:
+      Inches -> 0.125 in
+      mm     -> 5 mm
+      Points -> 10 pt
+
+M      src/units-util.c
+M      src/units-util.h
+M      src/view.c
+M      src/view.h
+
+commit 8fe68d63b2acb46a133e9e643d45657faf54ee50
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-01-24
+
+    Fixed NULL warning when copying uninitialized barcode objects.
+
+    Make sure both arguments to g_ascii_strcasecmp() are non NULL.
+
+M      src/label-barcode.c
+
+commit 52e8083629f0a9316b7df2bf6b400de8d6bc260e
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-01-24
+
+    Update TODO list based on current status and plans.
+
+M      TODO
+
+commit efcdc61b8111ba20416592f02da224468cb5c616
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-01-20
+
+    Updated German translation
+
+M      po/de.po
+
+commit a490fde76c660355393bebff2fe48ec4daa3bfd7
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-01-18
+
+    Don't allow message bars to stack up in media select widget.
+
+    Remove old glMessageBar when attempting to load glMediaSelect
+    tree views.
+    This will make sure if a new glMessageBar is needed, it won't
+    just stack
+    up old message bars.
+
+M      src/media-select.c
+
+commit c840dc081304d5f1b6bba2009324c83dea0d0d7f
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-01-18
+
+    Cleanup and addition of label templates.
+
+    Reconciled Worldlabel part numbers with current online information.
+    Added
+    some additional templates and their Avery look-alikes.
+
+M      templates/avery-us-templates.xml
+M      templates/worldlabel-us-templates.xml
+
+commit 938da1f73ef790eb1691d0037ba0686cfececee5
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-01-15
+
+    Added fr to DOC_LINGUAS
+
+M      help/Makefile.am
+
+commit 0a1c588f5bb1766a5daef21d0427b37c11489ea6
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-01-14
+
+    Removed trailing whitespaces from POTFILES.in
+
+M      po/POTFILES.in
+
+commit d49f1149ff6d35d100444b198d532f84c26ccfc3
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2010-01-14
+
+    Added missing template files to POTFILES.in
+
+M      po/POTFILES.in
+
+commit 73581f4f9b30bd423f930c3fa1bc3942bb5694fd
+Author: Petr Kovar <pknbe@volny.cz>
+Date:  2010-01-13
+
+    Updated Czech translation by Marek Cernocky
+
+M      po/cs.po
+
+commit 9b783558c733321de3e7be150cf3cbf21ddfa985
+Author: Claude Paroz <claude@2xlibre.net>
+Date:  2010-01-09
+
+    Add French translation of manual
+
+    Contributed by Alain Lojewski and Claude Paroz
+
+A      help/fr/figures/main-window-empty.png
+A      help/fr/figures/merge-ex1-1.png
+A      help/fr/figures/merge-ex1-2.png
+A      help/fr/figures/merge-ex1-3.png
+A      help/fr/figures/merge-ex1-4.png
+A      help/fr/figures/merge-ex2-1.png
+A      help/fr/figures/merge-ex2-2.png
+A      help/fr/figures/merge-ex2-3.png
+A      help/fr/figures/merge-ex2-4.png
+A      help/fr/figures/object-editor-sidebar.png
+A      help/fr/figures/print-copies.png
+A      help/fr/figures/print-merge.png
+A      help/fr/fr.po
+
+commit 091eea6d387183ae34da9a59dbe6ce784e15e544
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-01-06
+
+    Delay freeing of pixbuf cache in gl_label_finalize()
+
+    Make sure all objects have been unreferenced before freeing pixbuf
+    cache --
+    including copies in undo/redo stacks.
+
+M      src/label.c
+
+commit 9f99c2dc866740bf252fa6f0e6e28d165ae3606f
+Author: Jim Evins <evins@snaught.com>
+Date:  2010-01-03
+
+    Use "natural" sorting order for part numbers
+
+    Use a "natural" sorting order for part numbers.  I.e. numeric
+    portions are
+    sorted numerically rather than character by character, such that
+    "A20" will precede "A100".
+
+    Also found and fixed a couple minor inconsistencies in the template
+    data base
+    while debugging the new sorting code.
+
+M      libglabels/db.c
+M      libglabels/str.c
+M      libglabels/str.h
+M      templates/avery-other-templates.xml
+M      templates/avery-us-templates.xml
+
+commit 90cd31f442b5d0d115ea72fe828414ad32c9e944
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-12-30
+
+    Reorganizing template database
+
+    Split out uline-us-templates.xml from avery-us-templates.xml.
+    Also removed
+    the single "IP Invent It!" alias.  I could not find this brand online
+    -- I
+    assume it was a mis-identification -- this was a single alias for
+    full-sheet
+    labels which is so generic anyway.
+
+M      templates/Makefile.am
+M      templates/avery-us-templates.xml
+C053   templates/vendors.xml   templates/uline-us-templates.xml
+M      templates/vendors.xml
+
+commit a5de57d22d62436c5d1014d376ecd22dff8c7853
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-12-30
+
+    Reorganizing label database
+
+    Reorganized avery-us-templates.xml to remove deprecated Alias tags.
+    Also,
+    split out separate worldlabel-us-templates.xml and
+    maco-us-templates.xml
+    files.
+
+M      templates/Makefile.am
+M      templates/avery-us-templates.xml
+A      templates/maco-us-templates.xml
+A      templates/worldlabel-us-templates.xml
+
+commit f09e62c27585cbf067d6bae33ecd4496d17b1ebc
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2009-12-28
+
+    Updated German translation
+
+M      po/de.po
+
+commit b0fcb9d96c1719d1841294dc76f81893c600ace9
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-12-26
+
+    Handle zoom-to-fit properly for unrealized view
+
+    Delay calculations in gl_view_zoom_to_fit() if window has not been
+    realized
+    yet.  Do calculations in realize callback.
+
+M      src/view.c
+
+commit 03609218a247efb40b71dc10827feff80c05dce2
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-12-23
+
+    Fixed typo
+
+    Fixed typo.
+
+M      src/label.c
+
+commit 73b70cb6f49f732eb826f145cd1c229f707abc7f
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-12-22
+
+    Added undo/redo feature
+
+    Checkpoint the label state before each user initiated change.  These
+    checkpoint states are kept on an undo stack.  As the user pops items
+    from the undo stack, the current state is pushed onto a redo stack.
+
+M      src/file.c
+M      src/glabels-batch.c
+M      src/label-barcode.c
+M      src/label-barcode.h
+M      src/label-box.c
+M      src/label-box.h
+M      src/label-ellipse.c
+M      src/label-ellipse.h
+M      src/label-image.c
+M      src/label-image.h
+M      src/label-line.c
+M      src/label-line.h
+M      src/label-object.c
+M      src/label-object.h
+M      src/label-text.c
+M      src/label-text.h
+M      src/label.c
+M      src/label.h
+M      src/merge-properties-dialog.c
+M      src/object-editor.c
+M      src/template-designer.c
+M      src/ui-commands.c
+M      src/ui-commands.h
+M      src/ui-property-bar.c
+M      src/ui.c
+M      src/view-barcode.c
+M      src/view-box.c
+M      src/view-ellipse.c
+M      src/view-image.c
+M      src/view-line.c
+M      src/view-text.c
+M      src/view.c
+M      src/window.c
+M      src/xml-label-04.c
+M      src/xml-label.c
+
+commit ab665830afa2c549d3b3d76a5a3f20affcc69f57
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-12-17
+
+    Refactored MediaSelect code
+
+    - Renamed glWdgtMediaSelect to glMediaSelect
+    - Created new glMessageBar widget derived from GtkInfoBar -- API
+    is modelled
+      after GtkMessageDialog.  Used this new widget to provide
+      notification
+      of empty search results in the 2 glMediaSelect tabs.
+    - Simple code formatting changes.
+
+M      data/builder/Makefile.am
+R084   data/builder/wdgt-media-select.builder
+data/builder/media-select.builder
+M      po/POTFILES.in
+M      src/Makefile.am
+R069   src/wdgt-media-select.c src/media-select.c
+A      src/media-select.h
+A      src/message-bar.c
+A      src/message-bar.h
+M      src/new-label-dialog.c
+D      src/wdgt-media-select.h
+
+commit d677458f28c10fe6e0a5663a67aa8edd87424e36
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-12-16
+
+    Minor cleanup.
+
+    Removed extra includes.
+
+M      src/view-barcode.h
+M      src/view-box.h
+M      src/view-ellipse.h
+M      src/view-image.h
+M      src/view-line.h
+M      src/view-text.h
+
+commit 3bd29145040c79580b03e4e0e430afd6164ef806
+Author: Matej Urbančič <mateju@svn.gnome.org>
+Date:  2009-12-17
+
+    Added sl for Slovenian translation
+
+M      po/LINGUAS
+
+commit ee83ad3f392f9bbf630cbf32fdeac436a78f391b
+Author: Andrej Žnidaršič <andrej.znidarsic@gmail.com>
+Date:  2009-12-17
+
+    Updated Slovenian translation
+
+A      po/sl.po
+
+commit cbfbbff95d01ff6daffbb24159aa6fa0a4ae2e1c
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-12-15
+
+    Use glFieldButton instead of GtkComboBox for field selection
+
+    Extended glFieldButton so that it could be used instead of a
+    GtkComboBox
+    for field selectors in the object editor.  This unifies the dropdown
+    style
+    with the "Insert field" button on the text editor page.
+
+M      data/builder/object-editor.builder
+M      src/field-button.c
+M      src/field-button.h
+M      src/object-editor-bc-page.c
+M      src/object-editor-data-page.c
+M      src/object-editor-fill-page.c
+M      src/object-editor-image-page.c
+M      src/object-editor-line-page.c
+M      src/object-editor-private.h
+M      src/object-editor-shadow-page.c
+M      src/object-editor-text-page.c
+M      src/object-editor.c
+
+commit 1bddb489410c3e82ced613cd500080c5e0e94790
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-12-15
+
+    Minor cleanup of label.c
+
+    Removed unused variables.  Added a couple explicit casts.
+
+M      src/label.c
+
+commit 0f2ea2061dd8f4e957c9b5241842de578cb78d0b
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-12-13
+
+    Fixed crash when manipulating barcode
+
+    Failed to initialize line_color_node for barcodes in
+    object_changed_cb().
+
+M      src/object-editor.c
+
+commit be84e5a72c2ffc412fcf7905115a78b8faa6820b
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-12-12
+
+    Always show images for object menuitems
+
+    Because of the visual nature of the actions of these menuitems,
+    the visual
+    cues provided by these icons should help improve the ability to
+    find the
+    correct menuitem -- I know it does for me ( I don't always know
+    my left
+    from my right :-))
+
+M      src/ui.c
+
+commit 4e81eb872bef66a6b76e9ffd74c09a83323f802e
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-12-12
+
+    Refactored Cut/Copy/Paste code
+
+    Now offers everything (glabels xml, text, or image) on the standard
+    clipboard.
+    Will now paste text or images from other programs as new objects.
+
+M      src/label-image.c
+M      src/label-image.h
+M      src/label-object.c
+M      src/label-object.h
+M      src/label-text.c
+M      src/label-text.h
+M      src/label.c
+M      src/label.h
+M      src/ui-commands.c
+M      src/ui.h
+M      src/window.c
+
+commit 3444d934754fcc305af29a8c05f19792c77b89e2
+Author: Alessandro Zummo <a.zummo@towertech.it>
+Date:  2009-12-08
+
+    Allow merge source to be stdin
+
+    Use the filename "-" to indicate that the merge source is to be
+    taken from
+    standard input (stdin).  This is primarily intended for the
+    glabels-batch
+    program.
+
+M      src/merge-text.c
+
+commit 85bfb8a64853db59f56410670675015a8aa716e5
+Author: Alessandro Zummo <a.zummo@towertech.it>
+Date:  2009-12-08
+
+    Fix glabels-batch crash
+
+    The template_history subsystem needs to be initialized.
+
+M      AUTHORS
+M      src/glabels-batch.c
+
+commit 02157b5db05cdf1cca285454c83bccb909ee99b8
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-12-07
+
+    Install correct DTD file
+
+    Reconciled templates/Makefile.am with recent name change of DTD file.
+
+M      templates/Makefile.am
+
+commit 2d0ad672af26c3bc863e0a56a65a6be89944ced8
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-12-06
+
+    Libglabels mods to support reorganization of template database
+
+    Added "equiv" attribute to "Template" tag. The "equiv" attribute
+    works
+    differently than the "Alias" tag: instead of defining a simple
+    alias for
+    the current template struct, it says to use the equivalent part as the
+    prototype for this template.  The template could override (or append)
+    unique meta data for this part number.  The "Alias" tag is still
+    supported,
+    but is deprecated.
+
+    Added a "product_url" attribute to the "Meta" tag.
+
+    Added a "vendor.xml" file which contains a database of vendors
+    and their
+    primary url.  This file has only been populated with a few examples
+    so far.
+
+    A new DTD file has been created to describe the above changes.
+
+    The "Avery 5160" family in "avery-us-templates.xml", has been
+    organized in
+    the new scheme as an example.
+
+M      libglabels/Makefile.am
+M      libglabels/db.c
+M      libglabels/db.h
+M      libglabels/libglabels-private.h
+M      libglabels/template.c
+M      libglabels/template.h
+A      libglabels/vendor.c
+C059   libglabels/libglabels-private.h libglabels/vendor.h
+M      libglabels/xml-template.c
+M      libglabels/xml-template.h
+A      libglabels/xml-vendor.c
+C061   libglabels/libglabels-private.h libglabels/xml-vendor.h
+M      templates/Makefile.am
+M      templates/avery-us-templates.xml
+R091   templates/glabels-2.2.dtd       templates/glabels-2.3.dtd
+A      templates/vendors.xml
+
+commit 5f45a608055226f06cd013a414439293174121f4
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-12-03
+
+    Improved object editor default page selection
+
+    Whenever the object is changed, an attempt is made to either keep
+    the same
+    page active or if that page is no longer visible, set to the first
+    visible
+    page.
+
+M      src/object-editor.c
+
+commit 520ea9f42482012404000e7eebe436c94bca4440
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-12-03
+
+    Follow focus when setting sensitivity of selection verbs
+
+    The previous commit did not completely work right. Selection verb
+    sensitivity now follows the focus of the glView widget.
+
+M      src/ui.c
+M      src/ui.h
+M      src/window.c
+
+commit 8ae9003ee19f2c508452ca5a8534af6caf7a6b11
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2009-12-03
+
+    Updated German translation
+
+M      po/de.po
+
+commit 2d0b321b49e0dcf8701d000bc2c5f9f4673689f8
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-12-02
+
+    Don't intercept copy/paste operations intended for other widgets
+
+    Fixes bugs 1683799, 2833194 and probably 1978142.  Only enable
+    copy/paste
+    verbs if the focused widget is the glView. Otherwise let these
+    operations
+    propagate to the focused widget to be handled natively.
+
+M      .gitignore
+M      src/label.c
+M      src/label.h
+M      src/ui-commands.c
+M      src/ui.c
+M      src/ui.h
+M      src/window.c
+
+commit 9ad72e4b3df7122496e84af4bbc1013738145f5b
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-12-02
+
+    Control sensitivity of paste verb
+
+    Track the availability of data on the private glabels clipboard
+    to control
+    the sensitivity of the paste verb.
+
+M      src/ui.c
+M      src/ui.h
+M      src/window.c
+
+commit c7934cf38d69f29e539a4110de36e88c8ed070bb
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-12-02
+
+    Some string cleanup
+
+    - Replaced "x" with UTF D7 "TIMES" symbol in dimension strings
+    - Separated "diameter" into its own translatable string
+
+M      src/wdgt-media-select.c
+
+commit ff3a495ea186e7ff5d68a589312b3e2ef5c7d35e
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-12-02
+
+    Refactored glLabel and glView
+
+    Refactored glLabel and glView code:
+
+    - Moved selection tracking and storage of current label defaults from
+      glView to glLabel.
+
+    - Removed complexity of synchronizing lists of labels between
+    glView and
+      glLabel.
+
+    - Current defaults for new objects are now kept in glLabel,
+    not glView.
+
+    - Now follows a more faithful MVC pattern. As a consequence, the
+      Object editor and property bar are now fully independent views of
+      glLabel and do not need to be aware of glView at all.
+
+    - Refactoring reduced total SLOC count by about 1100 lines of code.
+
+    - This should potentially simplify the addition of an Undo/Redo
+      capability, because selections and object lists do not need
+      to be kept synchronized.
+
+M      .gitignore
+M      data/builder/object-editor.builder
+M      po/POTFILES.in
+M      src/Makefile.am
+M      src/cairo-label-path.c
+M      src/cairo-label-path.h
+M      src/cairo-markup-path.c
+M      src/color-swatch.c
+M      src/file.c
+M      src/glabels-batch.c
+M      src/label-barcode.c
+M      src/label-box.c
+M      src/label-ellipse.c
+M      src/label-image.c
+M      src/label-line.c
+M      src/label-object.c
+M      src/label-object.h
+M      src/label-text.c
+M      src/label-text.h
+M      src/label.c
+M      src/label.h
+M      src/object-editor-bc-page.c
+M      src/object-editor-data-page.c
+M      src/object-editor-fill-page.c
+M      src/object-editor-image-page.c
+M      src/object-editor-line-page.c
+M      src/object-editor-lsize-page.c
+M      src/object-editor-private.h
+M      src/object-editor-shadow-page.c
+M      src/object-editor-size-page.c
+M      src/object-editor-text-page.c
+M      src/object-editor.c
+M      src/object-editor.h
+M      src/print-op-dialog.c
+M      src/print-op.c
+M      src/print.c
+M      src/ui-commands.c
+M      src/ui-property-bar.c
+M      src/ui-property-bar.h
+M      src/ui-sidebar.c
+M      src/ui-sidebar.h
+M      src/ui.c
+M      src/view-barcode.c
+M      src/view-barcode.h
+M      src/view-box.c
+M      src/view-box.h
+M      src/view-ellipse.c
+M      src/view-ellipse.h
+M      src/view-image.c
+M      src/view-image.h
+M      src/view-line.c
+M      src/view-line.h
+D      src/view-object.c
+D      src/view-object.h
+M      src/view-text.c
+M      src/view-text.h
+M      src/view.c
+M      src/view.h
+M      src/window.c
+M      src/window.h
+M      src/xml-label.c
+
+commit 280d7ace9c2dd028515ecad81b4003109ef1b5d3
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2009-12-02
+
+    Updated German translation
+
+M      po/de.po
+
+commit 82bdbd24494f2351389c3e2eceef20e21ac93f46
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-11-22
+
+    Added additional file to .gitignore.
+
+M      .gitignore
+
+commit b87405cab3c8fba70b5261280b5ed1e3de0871bd
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-11-22
+
+    Use accessor functions instead direct access
+
+    Replaced direct access of widget fields with accessor functions.
+    This round
+    catches flags and allocations which now have accessor functions in
+    Gtk 2.18.
+    As a result, the master branch now requires Gtk-2.18/GNOME-2.28.
+
+M      configure.in
+D      docs/libglabels/libglabels-decl-list.txt
+M      src/color-combo-button.c
+M      src/color-combo.c
+M      src/color-swatch.c
+M      src/field-button.c
+M      src/font-combo.c
+M      src/font-sample.c
+M      src/glabels-batch.c
+M      src/merge-text.c
+M      src/mini-label-preview.c
+M      src/mini-preview.c
+M      src/object-editor-edit-page.c
+M      src/view.c
+M      src/wdgt-chain-button.c
+
+commit 841296e9d9882d93af94b8dc08765a42c9a3bb9e
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-11-18
+
+    Updated AUTHORS and .gitignore
+
+    Added Mario to AUTHORS so that he gets proper credit.
+
+    Added another pattern to .gitignore.
+
+M      .gitignore
+M      AUTHORS
+
+commit d6fb9999d0996c1c3528de406e486efce5bb5511
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-11-18
+
+    Fixed focus behavior of view canvas
+
+    Fixes bug #2899305.  Don't just automatically steal focus when
+    entering
+    canvas.  Require a click to get focus back.
+
+M      src/view.c
+
+commit 971a85643f25304fe1eda917f4771cd498a0d89c
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-11-17
+
+    Reference glabels.org website
+
+    Change all references to the glabels.sourceforge.net website to the
+    glabels.org alias. Change namespace for 2.3 development version to
+    glabels.org/xmlns/2.3/.
+
+M      MESSAGE-OF-DOOM
+M      README
+M      data/man/glabels.1
+M      glabels.doap
+M      libglabels/xml.h
+M      src/ui-commands.c
+M      src/xml-label.c
+
+commit 0f07e3243d10acd2343adbc711bee89baf568023
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-11-08
+
+    Expose all supported fields in vcard backend
+
+    The original version of the vcard merge backend only supported
+    3 hard-coded
+    fields.  This modification exposes all supported fields, via the
+    libebook
+    API.  It also uses the "pretty names" for field names, exactly as the
+    evolution merge backend does.
+
+    An "off-by-one" error in the evolution merge backend has also been
+    fixed --
+    exposing one more field.
+
+M      src/merge-evolution.c
+M      src/merge-vcard.c
+
+commit 474a40371a2adeadb61ae710c52f5591b7363093
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-11-07
+
+    Removed unused defines
+
+    Removed unused defines from INCLUDES.
+
+M      libglabels/Makefile.am
+M      src/Makefile.am
+
+commit 06b2f56f9594ec0bde746aab774ccb4aa33b9dbf
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-11-07
+
+    Added support for Code93 barcode.
+
+    Added glue to support for Code93 barcode, which is already supported
+    by
+    the GNU Barcode Library.
+
+M      src/bc-gnubarcode.c
+M      src/bc.c
+
+commit fc18f8be1747cb29d33ee7bdf05b354318778017
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-11-05
+
+    Automatically generate ChangeLog when building dist
+
+    Automatically generate ChangeLog when building distributions using
+    'git log'.
+
+M      .gitignore
+M      ChangeLog
+M      Makefile.am
+
+commit a2b827198e23b23ed064b822c9331813758c2856
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-11-05
+
+    Caught up on user submitted templates.
+
+    Added user submitted templates and acknowledgements.
+
+M      AUTHORS
+M      templates/misc-iso-templates.xml
+M      templates/zweckform-iso-templates.xml
+
+commit 8016d6f4fe8f4970ce615d53d2d541be6afef850
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-11-04
+
+    Fixed merge inconsistencies and crash
+
+    merge.c:
+       Fixed crash when trying to print when a "key" radio has been
+       selected
+       but no key has been selected yet.
+
+    object-editor-*-page.c:
+       Fixed potential inconsistencies with "key" radio buttons when
+       a merge
+       source has not been selected but the field indicates that it is
+       using a
+       merge key.  This can happen when opening a glabels file that
+       has a merge
+       type not supported by the current instance of glabels.
+
+    xml-label.c:
+       Also when parsing a merge field that has a merge type not
+       supported,
+       don't continue parsing it.
+
+M      src/merge.c
+M      src/object-editor-bc-page.c
+M      src/object-editor-data-page.c
+M      src/object-editor-fill-page.c
+M      src/object-editor-image-page.c
+M      src/object-editor-line-page.c
+M      src/object-editor-shadow-page.c
+M      src/object-editor-text-page.c
+M      src/xml-label.c
+
+commit dcf2b94b88479c283abdf7b65affd77ea5919ce9
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-11-03
+
+    Don't allow clipping to affect outlines
+
+    Remove clipping region before printing outlines of labels.
+
+M      src/print.c
+
+commit 6cd2cf8a1b548608959dac94229c634e1f3a0f7e
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-11-03
+
+    Clip to outline restored
+
+    During my last commit & push, I left the clip to outline line
+    commented out
+    which is an artifact of my testing.
+
+M      src/print.c
+
+commit e0db4b1264c2d87b82092987dc4a5d0d803f352c
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-11-03
+
+    Added simple envelope support
+
+    Added several envelope sizes to page-sizes.xml.  Also reversed
+    the rotation
+    direction when printing rotated labels to better match the
+    orientation of
+    envelope feeders.
+
+M      src/print.c
+M      templates/paper-sizes.xml
+
+commit 97c5b449004606b377f8a75ec65c56019e118882
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2009-11-03
+
+    Updated German translation
+
+M      po/de.po
+
+commit 397ea71c27af9920b71c3fbf197ffe8a10d6583b
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-10-30
+
+    Copy all fields when duplicating glMergeText object.
+
+    Copy n_fields_max field when duplicating glMergeText object.
+
+M      src/merge-text.c
+
+commit 8fd8b99f7edf0decfc3ea58fa5931c853c96fd0e
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-10-29
+
+    Harvest line 1 of CSVs for field names
+
+    Added capability to text merge backend to harvest line 1 for field
+    names (keys).
+
+M      src/merge-init.c
+M      src/merge-text.c
+M      src/merge-text.h
+
+commit 19428af40ad4f1c6c5fc947046429bf22ca4a13b
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-10-26
+
+    Make libglabels include guards more unique
+
+    Renamed libglabels include guards to be more unique.  For example,
+    the include
+    guard for xml.h was renamed from __XML_H__ to __LGL_XML_H__, which
+    is less
+    likely to collide with other similarly named macros.
+
+M      libglabels/category.h
+M      libglabels/db.h
+M      libglabels/paper.h
+M      libglabels/str.h
+M      libglabels/template.h
+M      libglabels/xml-category.h
+M      libglabels/xml-paper.h
+M      libglabels/xml-template.h
+M      libglabels/xml.h
+
+commit ab8bb6ad208670b587d23f55c9edb5ba8c754050
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-10-26
+
+    Improved menu positioning functions
+
+    Use requisition instead of allocation for menu size (the allocation
+    does not
+    exist for a newly realized menu, so the position is not always
+    right the
+    first time it is popped up, causing a mangled menu position with ugly
+    scroll buttons.)
+
+    Query for the actual screen of "this" instead of blindly using
+    the default
+    screen.
+
+M      src/color-combo-button.c
+M      src/color-combo.c
+M      src/field-button.c
+M      src/font-combo.c
+
+commit 4d71d3f3e3cc8300be41c58867f9386d53e4b760
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-10-25
+
+    Refactored glPrefsModel; Added Units module to libglabels
+
+    Refactored glPrefsModel, reconciling its style with glFontsHistory,
+    etc.
+
+    Added Units module to libglabels, consolidating most utilities
+    associated
+    with units into this module.  Also created a units-util module in
+    glabels for utilities that do not belong in libglabels.
+
+M      docs/libglabels/libglabels-decl-list.txt
+M      docs/libglabels/libglabels-docs.sgml
+M      docs/libglabels/libglabels-sections.txt
+D      docs/libglabels/libglabels-undocumented.txt
+D      docs/libglabels/tmpl/enums.sgml
+M      docs/libglabels/tmpl/libglabels-unused.sgml
+M      docs/libglabels/tmpl/paper.sgml
+A      docs/libglabels/tmpl/units.sgml
+M      libglabels/Makefile.am
+M      libglabels/libglabels.h
+A      libglabels/units.c
+R070   libglabels/enums.h      libglabels/units.h
+M      libglabels/xml.c
+M      libglabels/xml.h
+M      po/POTFILES.in
+M      src/Makefile.am
+M      src/cairo-label-path.c
+M      src/font-combo-menu.c
+M      src/font-history-model.c
+M      src/glabels.c
+M      src/object-editor-bc-page.c
+M      src/object-editor-fill-page.c
+M      src/object-editor-line-page.c
+M      src/object-editor-lsize-page.c
+M      src/object-editor-position-page.c
+M      src/object-editor-shadow-page.c
+M      src/object-editor-size-page.c
+M      src/object-editor-text-page.c
+M      src/prefs-dialog.c
+M      src/prefs-model.c
+M      src/prefs-model.h
+M      src/prefs.c
+M      src/prefs.h
+M      src/recent.c
+M      src/template-designer.c
+M      src/ui-commands.c
+M      src/ui-property-bar.c
+M      src/ui.c
+C052   src/prefs.c     src/units-util.c
+C066   src/prefs.h     src/units-util.h
+M      src/view.c
+M      src/wdgt-media-select.c
+M      src/window.c
+M      src/xml-label.c
+
+commit 3b8bb98a84de015cdc937f7e2b767e4c1f11f4ee
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-10-24
+
+    Removed unused variables
+
+    Removed unused variables from draw_text_real().
+
+M      src/label-text.c
+
+commit ebe7c16c62c4d724b2a09b51c8a7c72c42cb0960
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-10-24
+
+    Created new glTemplateHistoryModel
+
+    Pulled recent template history from glPrefsModel and created
+    a separate
+    glTemplateHistoryModel object to track this history.  Based on
+    glFontHistoryModel.
+
+M      .gitignore
+M      po/POTFILES.in
+M      src/Makefile.am
+M      src/glabels-batch.c
+M      src/glabels.c
+M      src/label.c
+M      src/prefs-model.c
+M      src/prefs-model.h
+M      src/prefs.c
+M      src/prefs.h
+A      src/template-history-model.c
+A      src/template-history-model.h
+A      src/template-history.c
+C060   src/prefs.h     src/template-history.h
+M      src/wdgt-media-select.c
+
+commit 87e9f1324b388483e0078ebcccda4ffa30687bd2
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-10-24
+
+    Use GConf to store custom color history
+
+    Renamed glColorComboHistory to glColorHistoryModel and reconciled
+    style
+    with glFontHistoryModel.  glColorHistoryModel now front-ends GConf
+    to store
+    custom color history between sessions.
+
+M      po/POTFILES.in
+M      src/Makefile.am
+D      src/color-combo-history.c
+D      src/color-combo-history.h
+M      src/color-combo-menu.c
+C062   src/font-history-model.c        src/color-history-model.c
+A      src/color-history-model.h
+M      src/font-history-model.c
+M      src/font-history-model.h
+
+commit b69e6e688733168b847f4c0785f75e21b5f77dfd
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-10-24
+
+    Use GConf to store font history
+
+    glFontHistoryModel now front-ends GConf to store font history between
+    sessions.  Also, don't store default font family when creating a blank
+    label text object.
+
+M      src/font-combo-menu.c
+M      src/font-history-model.c
+M      src/font-history-model.h
+M      src/font-util.c
+M      src/font-util.h
+M      src/label-text.c
+
+commit b0a92a3f0b9855585fb7fe856483d2e8cece64f7
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-10-22
+
+    Added font history
+
+    Added font history object. Setting/changing fonts in text objects
+    updates
+    this object.  The glFontCombMenu tracks this object to keep its recent
+    fonts submenu up-to-date.
+
+M      po/POTFILES.in
+M      src/Makefile.am
+M      src/font-combo-menu.c
+A      src/font-history-model.c
+A      src/font-history-model.h
+A      src/font-history.c
+A      src/font-history.h
+M      src/glabels-batch.c
+M      src/glabels.c
+M      src/label-text.c
+
+commit 1a23b8164c972458c3a434e892c6810939ac424b
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-10-21
+
+    Make glFieldButtonMenu multi-columned for large number of keys.
+
+    Make glFieldButtonMenu multi-columned for large number of keys.
+    I don't know
+    why, but I need to unrealize the old menu whenever reloading a new
+    set of
+    keys -- otherwise, the new menu would not render properly.
+
+    Also, cleared the CAN_FOCUS and CAN_DEFAULT bits for the instance in
+    the object editor text edit page, so that it would not steal the focus
+    from the text editor.
+
+M      src/field-button-menu.c
+M      src/object-editor-edit-page.c
+
+commit f83b6537a0fdf8f6f25483ab691a76923c10508a
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-10-20
+
+    Minor cleanup of glFieldButton widgets
+
+    Free proper data in gl_field_button_menu_finalize().  Minor formatting
+    cleanup.
+
+M      src/field-button-menu.c
+M      src/field-button-menu.h
+M      src/field-button.c
+
+commit 797627cec95e55d0305a0b7aa81811cd5be291a4
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-10-19
+
+    Create new glFieldButton widget family
+
+    Created new glFieldButton widget family modelled after glFontCombo.
+    This
+    widget is for inserting merge fields into text.  This button will
+    pop-up
+    a menu containing possible field keys.  The button attempts to
+    place the
+    menu intelligently, rather than simply where the button was pressed.
+
+    Renamed glWdgtMergeMenu to glFieldButtonMenu.
+
+M      data/builder/object-editor.builder
+M      po/POTFILES.in
+M      src/Makefile.am
+M      src/debug.c
+M      src/debug.h
+R060   src/wdgt-merge-menu.c   src/field-button-menu.c
+A      src/field-button-menu.h
+A      src/field-button.c
+A      src/field-button.h
+M      src/object-editor-edit-page.c
+M      src/object-editor-private.h
+M      src/object-editor.c
+D      src/wdgt-merge-menu.h
+
+commit aac305dceb30dcc44e50917da3350fca428ef5d4
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-10-18
+
+    Cleanup of configure.in
+
+    More minor cleanup of configure.in.  My iec16022 patch was accepted
+    upstream
+    and there was a new release -- update required version.  Added URLs to
+    configure.in to inform packagers where to obtain upstream libraries.
+    Updated
+    README to document these optional dependencies.
+
+M      README
+M      configure.in
+M      src/Makefile.am
+
+commit 0060d0193ece855c41a9d079e074fd659d406256
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-10-17
+
+    Refine glFontComboMenuItem tooltip sample text.
+
+    Refine sample text used in tooltip for glFontComboMenuItem.
+    The sample
+    alphabet, numbers and special symbols text is now localized.
+    Also used
+    Pango to get a localized sample string such as "The quick brown
+    fox..."
+
+M      src/font-combo-menu-item.c
+
+commit 360d5b047a6eb4855bd4018f05bd083b465ed084
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-10-11
+
+    Cleanup of configure.in
+
+    Minor cleanup of configure.in.  Assumes libiec16022 will be installed
+    along
+    with a pkg-config file -- patch to upstream has been submitted --
+    we shall
+    see.
+
+M      configure.in
+
+commit 95316ca98ce80e0569ec66b66e8d4efa2a11a737
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-10-11
+
+    Added .gitignore
+
+    Added .gitignore file to cleanup cruft reported by "git status"
+
+A      .gitignore
+
+commit 480d31eff113c6a5136f56654bdbed67805c269c
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-10-11
+
+    Use accessor functions instead direct access
+
+    Replaced several occurances of directly accessing widget fields
+    with the
+    use of accessor functions. This round hit primarily windows,
+    bin_windows
+    and styles. Still need to address flags and allocations when GTK
+    has the
+    needed accessors.
+
+M      src/color-combo-button.c
+M      src/color-combo.c
+M      src/color-swatch.c
+M      src/font-combo.c
+M      src/font-sample.c
+M      src/mini-label-preview.c
+M      src/mini-preview.c
+M      src/view.c
+M      src/wdgt-chain-button.c
+
+commit f9d1fc9b35f9c3b9005340f954298aaf5f6623a0
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2009-10-10
+
+    Converted pl.po to UTF-8 again
+
+M      po/pl.po
+
+commit 98c57ae33f847d1e97be507fdb4efcc09d680d2e
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2009-10-10
+
+    Converted pt_BR.po to UTF-8
+
+M      po/pt_BR.po
+
+commit dc43c1b38e3fa9f5dd0e6627e07a059ccd808fb2
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2009-10-10
+
+    Updated NEWS
+
+M      NEWS
+
+commit cf622f9277e6db8bc641b7c39a53163712bdd064
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-10-08
+
+    Use accessor functions instead direct access
+
+    Replaced several occurances of directly accessing widget fields
+    with the
+    use of accessor functions. This round only hit some of the
+    low-hanging
+    fruit -- several modules still contain many such accesses.
+
+M      src/color-combo-menu.c
+M      src/combo-util.c
+M      src/merge-properties-dialog.c
+M      src/new-label-dialog.c
+M      src/prefs-dialog.c
+
+commit 67a64dea73deedfc465df50fd92442a460fa5f42
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-10-07
+
+    Removed 3rd-party libraries
+
+    The 3rd-party libraries used as barcode backends are no longer
+    redistributed
+    with gLabels.  These libraries are now optional external dependencies,
+    so if
+    one is not present it will not be used.
+
+    FIXME: the datamatrix IEC 16022 library is not installed by default
+    by the
+    official iec16022 tarball.
+
+M      AUTHORS
+M      COPYING.README_FIRST
+M      Makefile.am
+D      bc-backends/Makefile.am
+D      bc-backends/barcode-0.98/COPYING
+D      bc-backends/barcode-0.98/ChangeLog
+D      bc-backends/barcode-0.98/INSTALL
+D      bc-backends/barcode-0.98/Makefile.am
+D      bc-backends/barcode-0.98/Makefile.in.dist
+D      bc-backends/barcode-0.98/README
+D      bc-backends/barcode-0.98/README.glabels
+D      bc-backends/barcode-0.98/TODO
+D      bc-backends/barcode-0.98/barcode.h
+D      bc-backends/barcode-0.98/barcode.spec
+D      bc-backends/barcode-0.98/bookland/bookland.py
+D      bc-backends/barcode-0.98/cmdline.c
+D      bc-backends/barcode-0.98/cmdline.h
+D      bc-backends/barcode-0.98/codabar.c
+D      bc-backends/barcode-0.98/code128.c
+D      bc-backends/barcode-0.98/code39.c
+D      bc-backends/barcode-0.98/code93.c
+D      bc-backends/barcode-0.98/compat/getopt.c
+D      bc-backends/barcode-0.98/compat/getopt.h
+D      bc-backends/barcode-0.98/configure
+D      bc-backends/barcode-0.98/configure.in.dist
+D      bc-backends/barcode-0.98/contrib/barcode-SVG.tar.gz
+D      bc-backends/barcode-0.98/contrib/barcode-SVG.tar.gz.README
+D      bc-backends/barcode-0.98/contrib/barcode-for-delphi.tar.gz
+D      bc-backends/barcode-0.98/contrib/barcode-for-delphi.tar.gz.README
+D      bc-backends/barcode-0.98/contrib/barcodeps-0.1.tgz
+D      bc-backends/barcode-0.98/contrib/barcodeps-0.1.tgz.README
+D      bc-backends/barcode-0.98/contrib/grab-0.0.4.tar.gz
+D      bc-backends/barcode-0.98/contrib/grab-0.0.4.tar.gz.README
+D      bc-backends/barcode-0.98/debian/README.debian
+D      bc-backends/barcode-0.98/debian/changelog
+D      bc-backends/barcode-0.98/debian/control
+D      bc-backends/barcode-0.98/debian/copyright
+D      bc-backends/barcode-0.98/debian/dirs
+D      bc-backends/barcode-0.98/debian/info
+D      bc-backends/barcode-0.98/debian/rules
+D      bc-backends/barcode-0.98/doc/Makefile.in
+D      bc-backends/barcode-0.98/doc/README
+D      bc-backends/barcode-0.98/doc/barcode.info
+D      bc-backends/barcode-0.98/doc/barcode.pdf
+D      bc-backends/barcode-0.98/doc/barcode.ps
+D      bc-backends/barcode-0.98/doc/barcodedoc.txt
+D      bc-backends/barcode-0.98/doc/doc.barcode
+D      bc-backends/barcode-0.98/doc/infofilter
+D      bc-backends/barcode-0.98/doc/manpager
+D      bc-backends/barcode-0.98/doc/mktxt
+D      bc-backends/barcode-0.98/doc/texi2html
+D      bc-backends/barcode-0.98/ean.c
+D      bc-backends/barcode-0.98/i25.c
+D      bc-backends/barcode-0.98/install-sh
+D      bc-backends/barcode-0.98/library.c
+D      bc-backends/barcode-0.98/main.c
+D      bc-backends/barcode-0.98/missing
+D      bc-backends/barcode-0.98/mkinstalldirs
+D      bc-backends/barcode-0.98/msi.c
+D      bc-backends/barcode-0.98/pcl.c
+D      bc-backends/barcode-0.98/plessey.c
+D      bc-backends/barcode-0.98/ps.c
+D      bc-backends/barcode-0.98/sample.c
+D      bc-backends/iec16022-0.2.1/BUGS
+D      bc-backends/iec16022-0.2.1/CHANGELOG
+D      bc-backends/iec16022-0.2.1/CREDITS
+D      bc-backends/iec16022-0.2.1/INSTALL
+D      bc-backends/iec16022-0.2.1/LICENSE
+D      bc-backends/iec16022-0.2.1/Makefile.am
+D      bc-backends/iec16022-0.2.1/Makefile.dist
+D      bc-backends/iec16022-0.2.1/README
+D      bc-backends/iec16022-0.2.1/README.glabels
+D      bc-backends/iec16022-0.2.1/TODO
+D      bc-backends/iec16022-0.2.1/iec16022.1
+D      bc-backends/iec16022-0.2.1/iec16022.c
+D      bc-backends/iec16022-0.2.1/iec16022ecc200.c
+D      bc-backends/iec16022-0.2.1/iec16022ecc200.h
+D      bc-backends/iec16022-0.2.1/image.c
+D      bc-backends/iec16022-0.2.1/image.h
+D      bc-backends/iec16022-0.2.1/reedsol.c
+D      bc-backends/iec16022-0.2.1/reedsol.h
+D      bc-backends/iec16022-0.2.1/test/testsuite-example.bin
+D      bc-backends/iec16022-0.2.1/test/testsuite-example.eps
+D      bc-backends/iec16022-0.2.1/test/testsuite-example.hex
+D      bc-backends/iec16022-0.2.1/test/testsuite-example.png
+D      bc-backends/iec16022-0.2.1/test/testsuite-example.text
+D      bc-backends/iec16022-0.2.1/test/testsuite.sh
+D      bc-backends/qrencode-3.1.0/COPYING
+D      bc-backends/qrencode-3.1.0/ChangeLog
+D      bc-backends/qrencode-3.1.0/Doxyfile
+D      bc-backends/qrencode-3.1.0/Makefile.am
+D      bc-backends/qrencode-3.1.0/Makefile.am.dist
+D      bc-backends/qrencode-3.1.0/Makefile.in.dist
+D      bc-backends/qrencode-3.1.0/NEWS
+D      bc-backends/qrencode-3.1.0/README
+D      bc-backends/qrencode-3.1.0/README.glabels
+D      bc-backends/qrencode-3.1.0/TODO
+D      bc-backends/qrencode-3.1.0/acinclude.m4
+D      bc-backends/qrencode-3.1.0/aclocal.m4
+D      bc-backends/qrencode-3.1.0/autogen.sh
+D      bc-backends/qrencode-3.1.0/bitstream.c
+D      bc-backends/qrencode-3.1.0/bitstream.h
+D      bc-backends/qrencode-3.1.0/config.h.in
+D      bc-backends/qrencode-3.1.0/configure
+D      bc-backends/qrencode-3.1.0/configure.ac.dist
+D      bc-backends/qrencode-3.1.0/libqrencode.pc.in
+D      bc-backends/qrencode-3.1.0/mask.c
+D      bc-backends/qrencode-3.1.0/mask.h
+D      bc-backends/qrencode-3.1.0/qrenc.c
+D      bc-backends/qrencode-3.1.0/qrencode.1.in
+D      bc-backends/qrencode-3.1.0/qrencode.c
+D      bc-backends/qrencode-3.1.0/qrencode.h
+D      bc-backends/qrencode-3.1.0/qrencode.spec
+D      bc-backends/qrencode-3.1.0/qrencode.spec.in
+D      bc-backends/qrencode-3.1.0/qrencode_inner.h
+D      bc-backends/qrencode-3.1.0/qrinput.c
+D      bc-backends/qrencode-3.1.0/qrinput.h
+D      bc-backends/qrencode-3.1.0/qrspec.c
+D      bc-backends/qrencode-3.1.0/qrspec.h
+D      bc-backends/qrencode-3.1.0/rscode.c
+D      bc-backends/qrencode-3.1.0/rscode.h
+D      bc-backends/qrencode-3.1.0/split.c
+D      bc-backends/qrencode-3.1.0/split.h
+D      bc-backends/qrencode-3.1.0/tests/Makefile.am
+D      bc-backends/qrencode-3.1.0/tests/Makefile.in
+D      bc-backends/qrencode-3.1.0/tests/common.h
+D      bc-backends/qrencode-3.1.0/tests/create_frame_pattern.c
+D      bc-backends/qrencode-3.1.0/tests/frame
+D      bc-backends/qrencode-3.1.0/tests/prof_qrencode.c
+D      bc-backends/qrencode-3.1.0/tests/test_all.sh
+D      bc-backends/qrencode-3.1.0/tests/test_bitstream.c
+D      bc-backends/qrencode-3.1.0/tests/test_estimatebit.c
+D      bc-backends/qrencode-3.1.0/tests/test_monkey.c
+D      bc-backends/qrencode-3.1.0/tests/test_qrencode.c
+D      bc-backends/qrencode-3.1.0/tests/test_qrinput.c
+D      bc-backends/qrencode-3.1.0/tests/test_qrspec.c
+D      bc-backends/qrencode-3.1.0/tests/test_rs.c
+D      bc-backends/qrencode-3.1.0/tests/test_split.c
+D      bc-backends/qrencode-3.1.0/tests/view_qrcode.c
+D      bc-backends/qrencode-3.1.0/use/compile
+D      bc-backends/qrencode-3.1.0/use/config.guess
+D      bc-backends/qrencode-3.1.0/use/config.sub
+D      bc-backends/qrencode-3.1.0/use/depcomp
+D      bc-backends/qrencode-3.1.0/use/install-sh
+D      bc-backends/qrencode-3.1.0/use/ltmain.sh
+D      bc-backends/qrencode-3.1.0/use/missing
+M      configure.in
+M      po/POTFILES.in
+M      src/Makefile.am
+M      src/bc-gnubarcode.c
+M      src/bc-iec16022.c
+M      src/bc-iec18004.c
+M      src/bc.c
+
+commit 1d8d113699adea7360355c7cef8ad539825829e0
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-10-06
+
+    Fixed some gettext problems
+
+    color-combo-menu.c:
+       - escape "%" in strings so that they are not interpreted as
+       c-format
+         conversions.
+       - call gettext() on color names initialized in table.
+    bc.c:
+       - call gettext() on barcode names initialized in table.
+    property-bar.builder:
+       - moved "Font family" tooltip to correct field for translation.
+
+M      data/builder/property-bar.builder
+M      src/bc.c
+M      src/color-combo-menu.c
+
+commit 48fe1b343471e074156ea342ded7faaaca390c40
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-10-06
+
+    Added information for translators to HACKING
+
+    Added information for translators to the HACKING file.
+
+M      HACKING
+
+commit 1a23afe96b3503f6d19a871623d31ce9eb4177e7
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2009-10-06
+
+    Converted polish translation to UTF-8
+
+M      po/pl.po
+
+commit 7b88300bed91c62816557772cfa263604aa209d2
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2009-10-06
+
+    Added missing filename
+
+M      po/POTFILES.in
+
+commit d5ae0b083b9f9ba9f39cc302b233eb44bab1ff65
+Author: Claude Paroz <claude@2xlibre.net>
+Date:  2009-10-06
+
+    Convert zh_TW translation to UTF-8
+
+M      po/LINGUAS
+R089   po/zh_TW.Big5.po        po/zh_TW.po
+
+commit 05f3749a2034521a14d229ca11cde7c91051cec2
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2009-10-06
+
+    Updated German translation
+
+M      po/de.po
+
+commit f6f8ebf5318cf00d7735a7dc87885373677370c1
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2009-10-06
+
+    Updated German translation
+
+M      po/de.po
+
+commit 23449d845bce7cdde774e1dc006814ce08280f59
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2009-10-06
+
+    Updated German doc translation
+
+M      po/de.po
+
+commit 0bc48aa862b0a2f01b6c222aab279cb6f35a4f35
+Author: Daniel Nylander <po@danielnylander.se>
+Date:  2009-10-06
+
+    Added Swedish translation
+
+M      po/LINGUAS
+A      po/sv.po
+
+commit a869e748bc106014e98749786471aef0198725ef
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-10-05
+
+    Adding MAINTAINERS and HACKING files.
+
+    Added MAINTAINERS and HACKING files.  Updated glabels.doap to
+    reconcile with new MAINTAINERS file.  Updated TODO file bringing
+    up-to-date with the current roadmap.
+
+A      HACKING
+A      MAINTAINERS
+M      TODO
+M      glabels.doap
+
+commit 6684593a76fba89a941edcf8991d45f0c5521ecc
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-10-05
+
+    Adding glabels.doap
+
+    Adding glabels.doap file for gnome Git repository.
+
+A      glabels.doap
+
+commit d8ea0137a6f1aa1924f62a64c2a83e048a79f0ce
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2009-09-29
+
+    Removed non-existent filenames from po/POTFILES.in
+
+M      po/POTFILES.in
+
+commit 743c111fc1f7f0a698c459d0ef387f5591112d36
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2009-09-29
+
+    Removed non-existent filenames from po/POTFILES.in
+
+M      po/de.po
+
+commit 73e7592ce7bc2ad65ebeb85b7f17f0ef10bd8f3c
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-09-28
+
+    Removed gtk-doc.make.
+
+    Removed the gtk-doc.make file, since it gets regenerated anyway.
+
+D      gtk-doc.make
+
+commit d45bb113212523705e156d79044849b08025f305
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-09-27
+
+    Relocated barcode backends.
+
+    Moved 3rd party barcode backends to a new bc-backends/ subdirectory.
+
+M      COPYING.README_FIRST
+M      Makefile.am
+A      bc-backends/Makefile.am
+R100   barcode-0.98/COPYING    bc-backends/barcode-0.98/COPYING
+R100   barcode-0.98/ChangeLog  bc-backends/barcode-0.98/ChangeLog
+R100   barcode-0.98/INSTALL    bc-backends/barcode-0.98/INSTALL
+R100   barcode-0.98/Makefile.am
+bc-backends/barcode-0.98/Makefile.am
+R100   barcode-0.98/Makefile.in.dist
+bc-backends/barcode-0.98/Makefile.in.dist
+R100   barcode-0.98/README     bc-backends/barcode-0.98/README
+R100   barcode-0.98/README.glabels
+bc-backends/barcode-0.98/README.glabels
+R100   barcode-0.98/TODO       bc-backends/barcode-0.98/TODO
+R100   barcode-0.98/barcode.h  bc-backends/barcode-0.98/barcode.h
+R100   barcode-0.98/barcode.spec
+bc-backends/barcode-0.98/barcode.spec
+R100   barcode-0.98/bookland/bookland.py
+bc-backends/barcode-0.98/bookland/bookland.py
+R100   barcode-0.98/cmdline.c  bc-backends/barcode-0.98/cmdline.c
+R100   barcode-0.98/cmdline.h  bc-backends/barcode-0.98/cmdline.h
+R100   barcode-0.98/codabar.c  bc-backends/barcode-0.98/codabar.c
+R100   barcode-0.98/code128.c  bc-backends/barcode-0.98/code128.c
+R100   barcode-0.98/code39.c   bc-backends/barcode-0.98/code39.c
+R100   barcode-0.98/code93.c   bc-backends/barcode-0.98/code93.c
+R100   barcode-0.98/compat/getopt.c
+bc-backends/barcode-0.98/compat/getopt.c
+R100   barcode-0.98/compat/getopt.h
+bc-backends/barcode-0.98/compat/getopt.h
+R100   barcode-0.98/configure  bc-backends/barcode-0.98/configure
+R100   barcode-0.98/configure.in.dist
+bc-backends/barcode-0.98/configure.in.dist
+R100   barcode-0.98/contrib/barcode-SVG.tar.gz
+bc-backends/barcode-0.98/contrib/barcode-SVG.tar.gz
+R100   barcode-0.98/contrib/barcode-SVG.tar.gz.README
+bc-backends/barcode-0.98/contrib/barcode-SVG.tar.gz.README
+R100   barcode-0.98/contrib/barcode-for-delphi.tar.gz
+bc-backends/barcode-0.98/contrib/barcode-for-delphi.tar.gz
+R100   barcode-0.98/contrib/barcode-for-delphi.tar.gz.README
+bc-backends/barcode-0.98/contrib/barcode-for-delphi.tar.gz.README
+R100   barcode-0.98/contrib/barcodeps-0.1.tgz
+bc-backends/barcode-0.98/contrib/barcodeps-0.1.tgz
+R100   barcode-0.98/contrib/barcodeps-0.1.tgz.README
+bc-backends/barcode-0.98/contrib/barcodeps-0.1.tgz.README
+R100   barcode-0.98/contrib/grab-0.0.4.tar.gz
+bc-backends/barcode-0.98/contrib/grab-0.0.4.tar.gz
+R100   barcode-0.98/contrib/grab-0.0.4.tar.gz.README
+bc-backends/barcode-0.98/contrib/grab-0.0.4.tar.gz.README
+R100   barcode-0.98/debian/README.debian
+bc-backends/barcode-0.98/debian/README.debian
+R100   barcode-0.98/debian/changelog
+bc-backends/barcode-0.98/debian/changelog
+R100   barcode-0.98/debian/control
+bc-backends/barcode-0.98/debian/control
+R100   barcode-0.98/debian/copyright
+bc-backends/barcode-0.98/debian/copyright
+R100   barcode-0.98/debian/dirs
+bc-backends/barcode-0.98/debian/dirs
+R100   barcode-0.98/debian/info
+bc-backends/barcode-0.98/debian/info
+R100   barcode-0.98/debian/rules
+bc-backends/barcode-0.98/debian/rules
+R100   barcode-0.98/doc/Makefile.in
+bc-backends/barcode-0.98/doc/Makefile.in
+R100   barcode-0.98/doc/README bc-backends/barcode-0.98/doc/README
+R100   barcode-0.98/doc/barcode.info
+bc-backends/barcode-0.98/doc/barcode.info
+R100   barcode-0.98/doc/barcode.pdf
+bc-backends/barcode-0.98/doc/barcode.pdf
+R100   barcode-0.98/doc/barcode.ps
+bc-backends/barcode-0.98/doc/barcode.ps
+R100   barcode-0.98/doc/barcodedoc.txt
+bc-backends/barcode-0.98/doc/barcodedoc.txt
+R100   barcode-0.98/doc/doc.barcode
+bc-backends/barcode-0.98/doc/doc.barcode
+R100   barcode-0.98/doc/infofilter
+bc-backends/barcode-0.98/doc/infofilter
+R100   barcode-0.98/doc/manpager
+bc-backends/barcode-0.98/doc/manpager
+R100   barcode-0.98/doc/mktxt  bc-backends/barcode-0.98/doc/mktxt
+R100   barcode-0.98/doc/texi2html
+bc-backends/barcode-0.98/doc/texi2html
+R100   barcode-0.98/ean.c      bc-backends/barcode-0.98/ean.c
+R100   barcode-0.98/i25.c      bc-backends/barcode-0.98/i25.c
+R100   barcode-0.98/install-sh bc-backends/barcode-0.98/install-sh
+R100   barcode-0.98/library.c  bc-backends/barcode-0.98/library.c
+R100   barcode-0.98/main.c     bc-backends/barcode-0.98/main.c
+R100   barcode-0.98/missing    bc-backends/barcode-0.98/missing
+R100   barcode-0.98/mkinstalldirs
+bc-backends/barcode-0.98/mkinstalldirs
+R100   barcode-0.98/msi.c      bc-backends/barcode-0.98/msi.c
+R100   barcode-0.98/pcl.c      bc-backends/barcode-0.98/pcl.c
+R100   barcode-0.98/plessey.c  bc-backends/barcode-0.98/plessey.c
+R100   barcode-0.98/ps.c       bc-backends/barcode-0.98/ps.c
+R100   barcode-0.98/sample.c   bc-backends/barcode-0.98/sample.c
+R100   iec16022-0.2.1/BUGS     bc-backends/iec16022-0.2.1/BUGS
+R100   iec16022-0.2.1/CHANGELOG
+bc-backends/iec16022-0.2.1/CHANGELOG
+R100   iec16022-0.2.1/CREDITS  bc-backends/iec16022-0.2.1/CREDITS
+R100   iec16022-0.2.1/INSTALL  bc-backends/iec16022-0.2.1/INSTALL
+R100   iec16022-0.2.1/LICENSE  bc-backends/iec16022-0.2.1/LICENSE
+R100   iec16022-0.2.1/Makefile.am
+bc-backends/iec16022-0.2.1/Makefile.am
+R100   iec16022-0.2.1/Makefile.dist
+bc-backends/iec16022-0.2.1/Makefile.dist
+R100   iec16022-0.2.1/README   bc-backends/iec16022-0.2.1/README
+R100   iec16022-0.2.1/README.glabels
+bc-backends/iec16022-0.2.1/README.glabels
+R100   iec16022-0.2.1/TODO     bc-backends/iec16022-0.2.1/TODO
+R100   iec16022-0.2.1/iec16022.1
+bc-backends/iec16022-0.2.1/iec16022.1
+R100   iec16022-0.2.1/iec16022.c
+bc-backends/iec16022-0.2.1/iec16022.c
+R100   iec16022-0.2.1/iec16022ecc200.c
+bc-backends/iec16022-0.2.1/iec16022ecc200.c
+R100   iec16022-0.2.1/iec16022ecc200.h
+bc-backends/iec16022-0.2.1/iec16022ecc200.h
+R100   iec16022-0.2.1/image.c  bc-backends/iec16022-0.2.1/image.c
+R100   iec16022-0.2.1/image.h  bc-backends/iec16022-0.2.1/image.h
+R100   iec16022-0.2.1/reedsol.c
+bc-backends/iec16022-0.2.1/reedsol.c
+R100   iec16022-0.2.1/reedsol.h
+bc-backends/iec16022-0.2.1/reedsol.h
+R100   iec16022-0.2.1/test/testsuite-example.bin
+bc-backends/iec16022-0.2.1/test/testsuite-example.bin
+R100   iec16022-0.2.1/test/testsuite-example.eps
+bc-backends/iec16022-0.2.1/test/testsuite-example.eps
+R100   iec16022-0.2.1/test/testsuite-example.hex
+bc-backends/iec16022-0.2.1/test/testsuite-example.hex
+R100   iec16022-0.2.1/test/testsuite-example.png
+bc-backends/iec16022-0.2.1/test/testsuite-example.png
+R100   iec16022-0.2.1/test/testsuite-example.text
+bc-backends/iec16022-0.2.1/test/testsuite-example.text
+R100   iec16022-0.2.1/test/testsuite.sh
+bc-backends/iec16022-0.2.1/test/testsuite.sh
+R100   qrencode-3.1.0/COPYING  bc-backends/qrencode-3.1.0/COPYING
+R100   qrencode-3.1.0/ChangeLog
+bc-backends/qrencode-3.1.0/ChangeLog
+R100   qrencode-3.1.0/Doxyfile bc-backends/qrencode-3.1.0/Doxyfile
+R100   qrencode-3.1.0/Makefile.am
+bc-backends/qrencode-3.1.0/Makefile.am
+R100   qrencode-3.1.0/Makefile.am.dist
+bc-backends/qrencode-3.1.0/Makefile.am.dist
+R100   qrencode-3.1.0/Makefile.in.dist
+bc-backends/qrencode-3.1.0/Makefile.in.dist
+R100   qrencode-3.1.0/NEWS     bc-backends/qrencode-3.1.0/NEWS
+R100   qrencode-3.1.0/README   bc-backends/qrencode-3.1.0/README
+R100   qrencode-3.1.0/README.glabels
+bc-backends/qrencode-3.1.0/README.glabels
+R100   qrencode-3.1.0/TODO     bc-backends/qrencode-3.1.0/TODO
+R100   qrencode-3.1.0/acinclude.m4
+bc-backends/qrencode-3.1.0/acinclude.m4
+R100   qrencode-3.1.0/aclocal.m4
+bc-backends/qrencode-3.1.0/aclocal.m4
+R100   qrencode-3.1.0/autogen.sh
+bc-backends/qrencode-3.1.0/autogen.sh
+R100   qrencode-3.1.0/bitstream.c
+bc-backends/qrencode-3.1.0/bitstream.c
+R100   qrencode-3.1.0/bitstream.h
+bc-backends/qrencode-3.1.0/bitstream.h
+R100   qrencode-3.1.0/config.h.in
+bc-backends/qrencode-3.1.0/config.h.in
+R100   qrencode-3.1.0/configure
+bc-backends/qrencode-3.1.0/configure
+R100   qrencode-3.1.0/configure.ac.dist
+bc-backends/qrencode-3.1.0/configure.ac.dist
+R100   qrencode-3.1.0/libqrencode.pc.in
+bc-backends/qrencode-3.1.0/libqrencode.pc.in
+R100   qrencode-3.1.0/mask.c   bc-backends/qrencode-3.1.0/mask.c
+R100   qrencode-3.1.0/mask.h   bc-backends/qrencode-3.1.0/mask.h
+R100   qrencode-3.1.0/qrenc.c  bc-backends/qrencode-3.1.0/qrenc.c
+R100   qrencode-3.1.0/qrencode.1.in
+bc-backends/qrencode-3.1.0/qrencode.1.in
+R100   qrencode-3.1.0/qrencode.c
+bc-backends/qrencode-3.1.0/qrencode.c
+R100   qrencode-3.1.0/qrencode.h
+bc-backends/qrencode-3.1.0/qrencode.h
+R100   qrencode-3.1.0/qrencode.spec
+bc-backends/qrencode-3.1.0/qrencode.spec
+R100   qrencode-3.1.0/qrencode.spec.in
+bc-backends/qrencode-3.1.0/qrencode.spec.in
+R100   qrencode-3.1.0/qrencode_inner.h
+bc-backends/qrencode-3.1.0/qrencode_inner.h
+R100   qrencode-3.1.0/qrinput.c
+bc-backends/qrencode-3.1.0/qrinput.c
+R100   qrencode-3.1.0/qrinput.h
+bc-backends/qrencode-3.1.0/qrinput.h
+R100   qrencode-3.1.0/qrspec.c bc-backends/qrencode-3.1.0/qrspec.c
+R100   qrencode-3.1.0/qrspec.h bc-backends/qrencode-3.1.0/qrspec.h
+R100   qrencode-3.1.0/rscode.c bc-backends/qrencode-3.1.0/rscode.c
+R100   qrencode-3.1.0/rscode.h bc-backends/qrencode-3.1.0/rscode.h
+R100   qrencode-3.1.0/split.c  bc-backends/qrencode-3.1.0/split.c
+R100   qrencode-3.1.0/split.h  bc-backends/qrencode-3.1.0/split.h
+R100   qrencode-3.1.0/tests/Makefile.am
+bc-backends/qrencode-3.1.0/tests/Makefile.am
+R100   qrencode-3.1.0/tests/Makefile.in
+bc-backends/qrencode-3.1.0/tests/Makefile.in
+R100   qrencode-3.1.0/tests/common.h
+bc-backends/qrencode-3.1.0/tests/common.h
+R100   qrencode-3.1.0/tests/create_frame_pattern.c
+bc-backends/qrencode-3.1.0/tests/create_frame_pattern.c
+R100   qrencode-3.1.0/tests/frame
+bc-backends/qrencode-3.1.0/tests/frame
+R100   qrencode-3.1.0/tests/prof_qrencode.c
+bc-backends/qrencode-3.1.0/tests/prof_qrencode.c
+R100   qrencode-3.1.0/tests/test_all.sh
+bc-backends/qrencode-3.1.0/tests/test_all.sh
+R100   qrencode-3.1.0/tests/test_bitstream.c
+bc-backends/qrencode-3.1.0/tests/test_bitstream.c
+R100   qrencode-3.1.0/tests/test_estimatebit.c
+bc-backends/qrencode-3.1.0/tests/test_estimatebit.c
+R100   qrencode-3.1.0/tests/test_monkey.c
+bc-backends/qrencode-3.1.0/tests/test_monkey.c
+R100   qrencode-3.1.0/tests/test_qrencode.c
+bc-backends/qrencode-3.1.0/tests/test_qrencode.c
+R100   qrencode-3.1.0/tests/test_qrinput.c
+bc-backends/qrencode-3.1.0/tests/test_qrinput.c
+R100   qrencode-3.1.0/tests/test_qrspec.c
+bc-backends/qrencode-3.1.0/tests/test_qrspec.c
+R100   qrencode-3.1.0/tests/test_rs.c
+bc-backends/qrencode-3.1.0/tests/test_rs.c
+R100   qrencode-3.1.0/tests/test_split.c
+bc-backends/qrencode-3.1.0/tests/test_split.c
+R100   qrencode-3.1.0/tests/view_qrcode.c
+bc-backends/qrencode-3.1.0/tests/view_qrcode.c
+R100   qrencode-3.1.0/use/compile
+bc-backends/qrencode-3.1.0/use/compile
+R100   qrencode-3.1.0/use/config.guess
+bc-backends/qrencode-3.1.0/use/config.guess
+R100   qrencode-3.1.0/use/config.sub
+bc-backends/qrencode-3.1.0/use/config.sub
+R100   qrencode-3.1.0/use/depcomp
+bc-backends/qrencode-3.1.0/use/depcomp
+R100   qrencode-3.1.0/use/install-sh
+bc-backends/qrencode-3.1.0/use/install-sh
+R100   qrencode-3.1.0/use/ltmain.sh
+bc-backends/qrencode-3.1.0/use/ltmain.sh
+R100   qrencode-3.1.0/use/missing
+bc-backends/qrencode-3.1.0/use/missing
+M      configure.in
+M      src/Makefile.am
+
+commit 39f4c44e000d410b4f63ab1fcdc4b04273ff0a83
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-09-26
+
+    Organized master branch to be top-level directory for glabels,
+    instead of
+    having a glabels2 sub-directory.
+
+R100   glabels2/AUTHORS        AUTHORS
+R100   glabels2/COPYING        COPYING
+R100   glabels2/COPYING-DOCS   COPYING-DOCS
+R100   glabels2/COPYING-LIBGLABELS     COPYING-LIBGLABELS
+R100   glabels2/COPYING-TEMPLATES      COPYING-TEMPLATES
+R100   glabels2/COPYING.README_FIRST   COPYING.README_FIRST
+R100   glabels2/ChangeLog      ChangeLog
+R100   glabels2/INSTALL        INSTALL
+R100   glabels2/MESSAGE-OF-DOOM        MESSAGE-OF-DOOM
+R100   glabels2/Makefile.am    Makefile.am
+R100   glabels2/NEWS   NEWS
+R100   glabels2/README README
+R100   glabels2/TODO   TODO
+R100   glabels2/autogen.sh     autogen.sh
+R100   glabels1/barcode-0.98/COPYING   barcode-0.98/COPYING
+R100   glabels1/barcode-0.98/ChangeLog barcode-0.98/ChangeLog
+R100   glabels1/barcode-0.98/INSTALL   barcode-0.98/INSTALL
+R100   glabels2/barcode-0.98/Makefile.am       barcode-0.98/Makefile.am
+R100   glabels2/barcode-0.98/Makefile.in.dist
 barcode-0.98/Makefile.in.dist
-R100   glabels2/barcode-0.98/README    barcode-0.98/README
+R100   glabels1/barcode-0.98/README    barcode-0.98/README
 R100   glabels2/barcode-0.98/README.glabels
 barcode-0.98/README.glabels
-R100   glabels2/barcode-0.98/TODO      barcode-0.98/TODO
-R100   glabels2/barcode-0.98/barcode.h barcode-0.98/barcode.h
-R100   glabels2/barcode-0.98/barcode.spec      barcode-0.98/barcode.spec
-R100   glabels2/barcode-0.98/bookland/bookland.py
+R100   glabels1/barcode-0.98/TODO      barcode-0.98/TODO
+R100   glabels1/barcode-0.98/barcode.h barcode-0.98/barcode.h
+R100   glabels1/barcode-0.98/barcode.spec      barcode-0.98/barcode.spec
+R100   glabels1/barcode-0.98/bookland/bookland.py
 barcode-0.98/bookland/bookland.py
-R100   glabels2/barcode-0.98/cmdline.c barcode-0.98/cmdline.c
-R100   glabels2/barcode-0.98/cmdline.h barcode-0.98/cmdline.h
-R100   glabels2/barcode-0.98/codabar.c barcode-0.98/codabar.c
-R100   glabels2/barcode-0.98/code128.c barcode-0.98/code128.c
-R100   glabels2/barcode-0.98/code39.c  barcode-0.98/code39.c
-R100   glabels2/barcode-0.98/code93.c  barcode-0.98/code93.c
-R100   glabels2/barcode-0.98/compat/getopt.c
+R100   glabels1/barcode-0.98/cmdline.c barcode-0.98/cmdline.c
+R100   glabels1/barcode-0.98/cmdline.h barcode-0.98/cmdline.h
+R100   glabels1/barcode-0.98/codabar.c barcode-0.98/codabar.c
+R100   glabels1/barcode-0.98/code128.c barcode-0.98/code128.c
+R100   glabels1/barcode-0.98/code39.c  barcode-0.98/code39.c
+R100   glabels1/barcode-0.98/code93.c  barcode-0.98/code93.c
+R100   glabels1/barcode-0.98/compat/getopt.c
 barcode-0.98/compat/getopt.c
-R100   glabels2/barcode-0.98/compat/getopt.h
+R100   glabels1/barcode-0.98/compat/getopt.h
 barcode-0.98/compat/getopt.h
 R100   glabels2/barcode-0.98/configure barcode-0.98/configure
 R100   glabels2/barcode-0.98/configure.in.dist
 barcode-0.98/configure.in.dist
-R100   glabels2/barcode-0.98/contrib/barcode-SVG.tar.gz
+R100   glabels1/barcode-0.98/contrib/barcode-SVG.tar.gz
 barcode-0.98/contrib/barcode-SVG.tar.gz
-R100   glabels2/barcode-0.98/contrib/barcode-SVG.tar.gz.README
+R100   glabels1/barcode-0.98/contrib/barcode-SVG.tar.gz.README
 barcode-0.98/contrib/barcode-SVG.tar.gz.README
-R100   glabels2/barcode-0.98/contrib/barcode-for-delphi.tar.gz
+R100   glabels1/barcode-0.98/contrib/barcode-for-delphi.tar.gz
 barcode-0.98/contrib/barcode-for-delphi.tar.gz
-R100   glabels2/barcode-0.98/contrib/barcode-for-delphi.tar.gz.README
+R100   glabels1/barcode-0.98/contrib/barcode-for-delphi.tar.gz.README
 barcode-0.98/contrib/barcode-for-delphi.tar.gz.README
-R100   glabels2/barcode-0.98/contrib/barcodeps-0.1.tgz
+R100   glabels1/barcode-0.98/contrib/barcodeps-0.1.tgz
 barcode-0.98/contrib/barcodeps-0.1.tgz
-R100   glabels2/barcode-0.98/contrib/barcodeps-0.1.tgz.README
+R100   glabels1/barcode-0.98/contrib/barcodeps-0.1.tgz.README
 barcode-0.98/contrib/barcodeps-0.1.tgz.README
-R100   glabels2/barcode-0.98/contrib/grab-0.0.4.tar.gz
+R100   glabels1/barcode-0.98/contrib/grab-0.0.4.tar.gz
 barcode-0.98/contrib/grab-0.0.4.tar.gz
-R100   glabels2/barcode-0.98/contrib/grab-0.0.4.tar.gz.README
+R100   glabels1/barcode-0.98/contrib/grab-0.0.4.tar.gz.README
 barcode-0.98/contrib/grab-0.0.4.tar.gz.README
-R100   glabels2/barcode-0.98/debian/README.debian
+R100   glabels1/barcode-0.98/debian/README.debian
 barcode-0.98/debian/README.debian
-R100   glabels2/barcode-0.98/debian/changelog
+R100   glabels1/barcode-0.98/debian/changelog
 barcode-0.98/debian/changelog
-R100   glabels2/barcode-0.98/debian/control
+R100   glabels1/barcode-0.98/debian/control
 barcode-0.98/debian/control
-R100   glabels2/barcode-0.98/debian/copyright
+R100   glabels1/barcode-0.98/debian/copyright
 barcode-0.98/debian/copyright
-R100   glabels2/barcode-0.98/debian/dirs       barcode-0.98/debian/dirs
-R100   glabels2/barcode-0.98/debian/info       barcode-0.98/debian/info
-R100   glabels2/barcode-0.98/debian/rules      barcode-0.98/debian/rules
-R100   glabels2/barcode-0.98/doc/Makefile.in
+R100   glabels1/barcode-0.98/debian/dirs       barcode-0.98/debian/dirs
+R100   glabels1/barcode-0.98/debian/info       barcode-0.98/debian/info
+R100   glabels1/barcode-0.98/debian/rules      barcode-0.98/debian/rules
+R100   glabels1/barcode-0.98/doc/Makefile.in
 barcode-0.98/doc/Makefile.in
-R100   glabels2/barcode-0.98/doc/README        barcode-0.98/doc/README
+R100   glabels1/barcode-0.98/doc/README        barcode-0.98/doc/README
 R100   glabels2/barcode-0.98/doc/barcode.info
 barcode-0.98/doc/barcode.info
 R100   glabels2/barcode-0.98/doc/barcode.pdf
@@ -813,51 +6726,45 @@ R100     glabels2/barcode-0.98/doc/barcode.ps
 barcode-0.98/doc/barcode.ps
 R100   glabels2/barcode-0.98/doc/barcodedoc.txt
 barcode-0.98/doc/barcodedoc.txt
-R100   glabels2/barcode-0.98/doc/doc.barcode
+R100   glabels1/barcode-0.98/doc/doc.barcode
 barcode-0.98/doc/doc.barcode
-R100   glabels2/barcode-0.98/doc/infofilter
+R100   glabels1/barcode-0.98/doc/infofilter
 barcode-0.98/doc/infofilter
-R100   glabels2/barcode-0.98/doc/manpager      barcode-0.98/doc/manpager
-R100   glabels2/barcode-0.98/doc/mktxt barcode-0.98/doc/mktxt
-R100   glabels2/barcode-0.98/doc/texi2html     barcode-0.98/doc/texi2html
-R100   glabels2/barcode-0.98/ean.c     barcode-0.98/ean.c
-R100   glabels2/barcode-0.98/i25.c     barcode-0.98/i25.c
-R100   glabels2/barcode-0.98/install-sh        barcode-0.98/install-sh
-R100   glabels2/barcode-0.98/library.c barcode-0.98/library.c
-R100   glabels2/barcode-0.98/main.c    barcode-0.98/main.c
+R100   glabels1/barcode-0.98/doc/manpager      barcode-0.98/doc/manpager
+R100   glabels1/barcode-0.98/doc/mktxt barcode-0.98/doc/mktxt
+R100   glabels1/barcode-0.98/doc/texi2html     barcode-0.98/doc/texi2html
+R100   glabels1/barcode-0.98/ean.c     barcode-0.98/ean.c
+R100   glabels1/barcode-0.98/i25.c     barcode-0.98/i25.c
+R100   glabels1/barcode-0.98/install-sh        barcode-0.98/install-sh
+R100   glabels1/barcode-0.98/library.c barcode-0.98/library.c
+R100   glabels1/barcode-0.98/main.c    barcode-0.98/main.c
 R100   glabels2/barcode-0.98/missing   barcode-0.98/missing
-R100   glabels2/barcode-0.98/mkinstalldirs     barcode-0.98/mkinstalldirs
-R100   glabels2/barcode-0.98/msi.c     barcode-0.98/msi.c
-R100   glabels2/barcode-0.98/pcl.c     barcode-0.98/pcl.c
-R100   glabels2/barcode-0.98/plessey.c barcode-0.98/plessey.c
-R100   glabels2/barcode-0.98/ps.c      barcode-0.98/ps.c
-R100   glabels2/barcode-0.98/sample.c  barcode-0.98/sample.c
+R100   glabels1/mkinstalldirs  barcode-0.98/mkinstalldirs
+R100   glabels1/barcode-0.98/msi.c     barcode-0.98/msi.c
+R100   glabels1/barcode-0.98/pcl.c     barcode-0.98/pcl.c
+R100   glabels1/barcode-0.98/plessey.c barcode-0.98/plessey.c
+R100   glabels1/barcode-0.98/ps.c      barcode-0.98/ps.c
+R100   glabels1/barcode-0.98/sample.c  barcode-0.98/sample.c
 R100   glabels2/configure.in   configure.in
 R100   glabels2/data/Makefile.am       data/Makefile.am
+R100   glabels2/data/builder/Makefile.am       data/builder/Makefile.am
+R100   glabels2/data/builder/merge-properties-dialog.builder
+data/builder/merge-properties-dialog.builder
+R100   glabels2/data/builder/object-editor.builder
+data/builder/object-editor.builder
+R100   glabels2/data/builder/prefs-dialog.builder
+data/builder/prefs-dialog.builder
+R100   glabels2/data/builder/print-op-dialog-custom-widget.builder
+data/builder/print-op-dialog-custom-widget.builder
+R100   glabels2/data/builder/property-bar.builder
+data/builder/property-bar.builder
+R100   glabels2/data/builder/template-designer.builder
+data/builder/template-designer.builder
+R100   glabels2/data/builder/wdgt-media-select.builder
+data/builder/wdgt-media-select.builder
 R100   glabels2/data/desktop/Makefile.am       data/desktop/Makefile.am
 R100   glabels2/data/desktop/glabels.desktop.in
 data/desktop/glabels.desktop.in
-R100   glabels2/data/dtd/Makefile.am   data/dtd/Makefile.am
-R100   glabels2/data/dtd/glabels-2.2.dtd       data/dtd/glabels-2.2.dtd
-R100   glabels2/data/glade/Makefile.am data/glade/Makefile.am
-R100   glabels2/data/glade/merge-properties-dialog.glade
-data/glade/merge-properties-dialog.glade
-R100   glabels2/data/glade/new-label-dialog.glade
-data/glade/new-label-dialog.glade
-R100   glabels2/data/glade/object-editor.glade
-data/glade/object-editor.glade
-R100   glabels2/data/glade/prefs-dialog.glade
-data/glade/prefs-dialog.glade
-R100   glabels2/data/glade/print-custom-widget.glade
-data/glade/print-custom-widget.glade
-R100   glabels2/data/glade/property-bar.glade
-data/glade/property-bar.glade
-R100   glabels2/data/glade/template-designer.glade
-data/glade/template-designer.glade
-R100   glabels2/data/glade/wdgt-media-select.glade
-data/glade/wdgt-media-select.glade
-R100   glabels2/data/glade/wdgt-rotate-label.glade
-data/glade/wdgt-rotate-label.glade
 R100   glabels2/data/man/Makefile.am   data/man/Makefile.am
 R100   glabels2/data/man/glabels.1     data/man/glabels.1
 R100   glabels2/data/mime/Makefile.am  data/mime/Makefile.am
@@ -884,29 +6791,6 @@ data/pixmaps/glabels-application-x-glabels.png
 R100   glabels2/data/pixmaps/glabels-splash.png
 data/pixmaps/glabels-splash.png
 R100   glabels2/data/pixmaps/glabels.png       data/pixmaps/glabels.png
-R100   glabels2/data/templates/Makefile.am     data/templates/Makefile.am
-R100   glabels2/data/templates/avery-iso-templates.xml
-data/templates/avery-iso-templates.xml
-R100   glabels2/data/templates/avery-other-templates.xml
-data/templates/avery-other-templates.xml
-R100   glabels2/data/templates/avery-us-templates.xml
-data/templates/avery-us-templates.xml
-R100   glabels2/data/templates/brother-other-templates.xml
-data/templates/brother-other-templates.xml
-R100   glabels2/data/templates/categories.xml
-data/templates/categories.xml
-R100   glabels2/data/templates/dymo-other-templates.xml
-data/templates/dymo-other-templates.xml
-R100   glabels2/data/templates/misc-iso-templates.xml
-data/templates/misc-iso-templates.xml
-R100   glabels2/data/templates/misc-other-templates.xml
-data/templates/misc-other-templates.xml
-R100   glabels2/data/templates/misc-us-templates.xml
-data/templates/misc-us-templates.xml
-R100   glabels2/data/templates/paper-sizes.xml
-data/templates/paper-sizes.xml
-R100   glabels2/data/templates/zweckform-iso-templates.xml
-data/templates/zweckform-iso-templates.xml
 R100   glabels2/docs/Makefile.am       docs/Makefile.am
 R100   glabels2/docs/libglabels/Makefile.am
 docs/libglabels/Makefile.am
@@ -947,8 +6831,289 @@ docs/libglabels/tmpl/xml-template.sgml
 R100   glabels2/docs/libglabels/tmpl/xml.sgml
 docs/libglabels/tmpl/xml.sgml
 R100   glabels2/glabels.spec.in        glabels.spec.in
+D      glabels1/ABOUT-NLS
+D      glabels1/AUTHORS
+D      glabels1/COPYING
+D      glabels1/ChangeLog
+D      glabels1/INSTALL
+D      glabels1/Makefile.am
+D      glabels1/NEWS
+D      glabels1/README
+D      glabels1/TODO
+D      glabels1/acconfig.h
+D      glabels1/aclocal.m4
+D      glabels1/autogen.sh
+D      glabels1/barcode-0.98/Makefile.in
+D      glabels1/barcode-0.98/configure
+D      glabels1/barcode-0.98/configure.in
+D      glabels1/barcode-0.98/doc/barcode.info
+D      glabels1/barcode-0.98/doc/barcode.pdf
+D      glabels1/barcode-0.98/doc/barcode.ps
+D      glabels1/barcode-0.98/doc/barcodedoc.txt
+D      glabels1/config.h.in
+D      glabels1/configure.in
+D      glabels1/data/predefined-labels.template
+D      glabels1/doc/C/Makefile.am
+D      glabels1/doc/C/Makefile.in
+D      glabels1/doc/C/glabels.sgml
+D      glabels1/doc/C/glabels/index.html
+D      glabels1/doc/C/glabels/ln7.html
+D      glabels1/doc/C/topic.dat
+D      glabels1/doc/Makefile.am
+D      glabels1/doc/Makefile.in
+D      glabels1/glabels.desktop
+D      glabels1/glabels.spec.in
+D      glabels1/install-sh
+D      glabels1/intl/ChangeLog
+D      glabels1/intl/Makefile.in
+D      glabels1/intl/VERSION
+D      glabels1/intl/bindtextdom.c
+D      glabels1/intl/cat-compat.c
+D      glabels1/intl/dcgettext.c
+D      glabels1/intl/dgettext.c
+D      glabels1/intl/explodename.c
+D      glabels1/intl/finddomain.c
+D      glabels1/intl/gettext.c
+D      glabels1/intl/gettext.h
+D      glabels1/intl/gettextP.h
+D      glabels1/intl/hash-string.h
+D      glabels1/intl/intl-compat.c
+D      glabels1/intl/l10nflist.c
+D      glabels1/intl/libgettext.h
+D      glabels1/intl/linux-msg.sed
+D      glabels1/intl/loadinfo.h
+D      glabels1/intl/loadmsgcat.c
+D      glabels1/intl/localealias.c
+D      glabels1/intl/po2tbl.sed.in
+D      glabels1/intl/textdomain.c
+D      glabels1/intl/xopen-msg.sed
+D      glabels1/macros/Makefile.am
+D      glabels1/macros/Makefile.in
+D      glabels1/macros/aclocal-include.m4
+D      glabels1/macros/autogen.sh
+D      glabels1/macros/compiler-flags.m4
+D      glabels1/macros/curses.m4
+D      glabels1/macros/gnome-bonobo-check.m4
+D      glabels1/macros/gnome-common.m4
+D      glabels1/macros/gnome-fileutils.m4
+D      glabels1/macros/gnome-gettext.m4
+D      glabels1/macros/gnome-ghttp-check.m4
+D      glabels1/macros/gnome-gnorba-check.m4
+D      glabels1/macros/gnome-guile-checks.m4
+D      glabels1/macros/gnome-libgtop-check.m4
+D      glabels1/macros/gnome-objc-checks.m4
+D      glabels1/macros/gnome-orbit-check.m4
+D      glabels1/macros/gnome-print-check.m4
+D      glabels1/macros/gnome-pthread-check.m4
+D      glabels1/macros/gnome-support.m4
+D      glabels1/macros/gnome-undelfs.m4
+D      glabels1/macros/gnome-vfs.m4
+D      glabels1/macros/gnome-x-checks.m4
+D      glabels1/macros/gnome-xml-check.m4
+D      glabels1/macros/gnome.m4
+D      glabels1/macros/linger.m4
+D      glabels1/macros/need-declaration.m4
+D      glabels1/missing
+D      glabels1/pixmaps/glabels-about-logo.png
+D      glabels1/pixmaps/glabels-icon.png
+D      glabels1/pixmaps/glabels-logo.png
+D      glabels1/po/ChangeLog
+D      glabels1/po/Makefile.in.in
+D      glabels1/po/POTFILES.in
+D      glabels1/po/cat-id-tbl.c
+D      glabels1/po/de.po
+D      glabels1/po/es.po
+D      glabels1/po/fr.po
+D      glabels1/po/glabels.pot
+D      glabels1/po/ja.po
+D      glabels1/po/pl.po
+D      glabels1/po/pt_BR.po
+D      glabels1/po/ru.po
+D      glabels1/po/stamp-cat-id
+D      glabels1/po/zh_TW.Big5.po
+D      glabels1/src/Makefile.am
+D      glabels1/src/bc.c
+D      glabels1/src/bc.h
+D      glabels1/src/bc_gnubarcode.c
+D      glabels1/src/bc_gnubarcode.h
+D      glabels1/src/bc_postnet.c
+D      glabels1/src/bc_postnet.h
+D      glabels1/src/debug.h
+D      glabels1/src/display.c
+D      glabels1/src/display.h
+D      glabels1/src/edit.c
+D      glabels1/src/edit.h
+D      glabels1/src/file.c
+D      glabels1/src/file.h
+D      glabels1/src/glabels.c
+D      glabels1/src/glabels_batch.c
+D      glabels1/src/gnome-canvas-hacktext.h
+D      glabels1/src/hack.c
+D      glabels1/src/hack.h
+D      glabels1/src/highlight.c
+D      glabels1/src/highlight.h
+D      glabels1/src/item.c
+D      glabels1/src/item.h
+D      glabels1/src/item_barcode.c
+D      glabels1/src/item_barcode.h
+D      glabels1/src/item_box.c
+D      glabels1/src/item_box.h
+D      glabels1/src/item_ellipse.c
+D      glabels1/src/item_ellipse.h
+D      glabels1/src/item_image.c
+D      glabels1/src/item_image.h
+D      glabels1/src/item_line.c
+D      glabels1/src/item_line.h
+D      glabels1/src/item_text.c
+D      glabels1/src/item_text.h
+D      glabels1/src/label.c
+D      glabels1/src/label.h
+D      glabels1/src/mdi.c
+D      glabels1/src/mdi.h
+D      glabels1/src/media_select.c
+D      glabels1/src/media_select.h
+D      glabels1/src/menu.c
+D      glabels1/src/menu.h
+D      glabels1/src/merge.c
+D      glabels1/src/merge.h
+D      glabels1/src/merge_properties.c
+D      glabels1/src/merge_properties.h
+D      glabels1/src/merge_text.c
+D      glabels1/src/merge_text.h
+D      glabels1/src/merge_ui.c
+D      glabels1/src/merge_ui.h
+D      glabels1/src/merge_ui_text.c
+D      glabels1/src/merge_ui_text.h
+D      glabels1/src/mini_preview.c
+D      glabels1/src/mini_preview.h
+D      glabels1/src/pixmaps/Makefile.am
+D      glabels1/src/pixmaps/arrow.xpm
+D      glabels1/src/pixmaps/barcode.xpm
+D      glabels1/src/pixmaps/box.xpm
+D      glabels1/src/pixmaps/cursor_zoomin.xbm
+D      glabels1/src/pixmaps/cursor_zoomin_mask.xbm
+D      glabels1/src/pixmaps/cursor_zoomout.xbm
+D      glabels1/src/pixmaps/cursor_zoomout_mask.xbm
+D      glabels1/src/pixmaps/ellipse.xpm
+D      glabels1/src/pixmaps/image.xpm
+D      glabels1/src/pixmaps/line.xpm
+D      glabels1/src/pixmaps/merge.xpm
+D      glabels1/src/pixmaps/text.xpm
+D      glabels1/src/pixmaps/zoom1to1.xpm
+D      glabels1/src/pixmaps/zoomin.xpm
+D      glabels1/src/pixmaps/zoomout.xpm
+D      glabels1/src/prefs.c
+D      glabels1/src/prefs.h
+D      glabels1/src/print.c
+D      glabels1/src/print.h
+D      glabels1/src/print_copies.c
+D      glabels1/src/print_copies.h
+D      glabels1/src/print_dialog.c
+D      glabels1/src/print_dialog.h
+D      glabels1/src/print_merge.c
+D      glabels1/src/print_merge.h
+D      glabels1/src/prop_bc.c
+D      glabels1/src/prop_bc.h
+D      glabels1/src/prop_bc_data.c
+D      glabels1/src/prop_bc_data.h
+D      glabels1/src/prop_bc_style.c
+D      glabels1/src/prop_bc_style.h
+D      glabels1/src/prop_fill.c
+D      glabels1/src/prop_fill.h
+D      glabels1/src/prop_line.c
+D      glabels1/src/prop_line.h
+D      glabels1/src/prop_position.c
+D      glabels1/src/prop_position.h
+D      glabels1/src/prop_size.c
+D      glabels1/src/prop_size.h
+D      glabels1/src/prop_text.c
+D      glabels1/src/prop_text.h
+D      glabels1/src/prop_text_entry.c
+D      glabels1/src/prop_text_entry.h
+D      glabels1/src/prop_vector.c
+D      glabels1/src/prop_vector.h
+D      glabels1/src/propertybox.c
+D      glabels1/src/propertybox.h
+D      glabels1/src/rotate_select.c
+D      glabels1/src/rotate_select.h
+D      glabels1/src/splash.c
+D      glabels1/src/splash.h
+D      glabels1/src/stock.c
+D      glabels1/src/stock.h
+D      glabels1/src/template.c
+D      glabels1/src/template.h
+D      glabels1/src/text_node.c
+D      glabels1/src/text_node.h
+D      glabels1/src/tools.c
+D      glabels1/src/tools.h
+D      glabels1/src/util.c
+D      glabels1/src/util.h
+D      glabels1/stamp-h.in
+D      glabels2/barcode-0.98/COPYING
+D      glabels2/barcode-0.98/ChangeLog
+D      glabels2/barcode-0.98/INSTALL
+D      glabels2/barcode-0.98/README
+D      glabels2/barcode-0.98/TODO
+D      glabels2/barcode-0.98/barcode.h
+D      glabels2/barcode-0.98/barcode.spec
+D      glabels2/barcode-0.98/bookland/bookland.py
+D      glabels2/barcode-0.98/cmdline.c
+D      glabels2/barcode-0.98/cmdline.h
+D      glabels2/barcode-0.98/codabar.c
+D      glabels2/barcode-0.98/code128.c
+D      glabels2/barcode-0.98/code39.c
+D      glabels2/barcode-0.98/code93.c
+D      glabels2/barcode-0.98/compat/getopt.c
+D      glabels2/barcode-0.98/compat/getopt.h
+D      glabels2/barcode-0.98/contrib/barcode-SVG.tar.gz
+D      glabels2/barcode-0.98/contrib/barcode-SVG.tar.gz.README
+D      glabels2/barcode-0.98/contrib/barcode-for-delphi.tar.gz
+D      glabels2/barcode-0.98/contrib/barcode-for-delphi.tar.gz.README
+D      glabels2/barcode-0.98/contrib/barcodeps-0.1.tgz
+D      glabels2/barcode-0.98/contrib/barcodeps-0.1.tgz.README
+D      glabels2/barcode-0.98/contrib/grab-0.0.4.tar.gz
+D      glabels2/barcode-0.98/contrib/grab-0.0.4.tar.gz.README
+D      glabels2/barcode-0.98/debian/README.debian
+D      glabels2/barcode-0.98/debian/changelog
+D      glabels2/barcode-0.98/debian/control
+D      glabels2/barcode-0.98/debian/copyright
+D      glabels2/barcode-0.98/debian/dirs
+D      glabels2/barcode-0.98/debian/info
+D      glabels2/barcode-0.98/debian/rules
+D      glabels2/barcode-0.98/doc/Makefile.in
+D      glabels2/barcode-0.98/doc/README
+D      glabels2/barcode-0.98/doc/doc.barcode
+D      glabels2/barcode-0.98/doc/infofilter
+D      glabels2/barcode-0.98/doc/manpager
+D      glabels2/barcode-0.98/doc/mktxt
+D      glabels2/barcode-0.98/doc/texi2html
+D      glabels2/barcode-0.98/ean.c
+D      glabels2/barcode-0.98/i25.c
+D      glabels2/barcode-0.98/install-sh
+D      glabels2/barcode-0.98/library.c
+D      glabels2/barcode-0.98/main.c
+D      glabels2/barcode-0.98/mkinstalldirs
+D      glabels2/barcode-0.98/msi.c
+D      glabels2/barcode-0.98/pcl.c
+D      glabels2/barcode-0.98/plessey.c
+D      glabels2/barcode-0.98/ps.c
+D      glabels2/barcode-0.98/sample.c
+D      glabels2/src/pixmaps/checkerboard.xpm
+D      glabels2/src/pixmaps/collate.xpm
+D      glabels2/src/pixmaps/cursor_barcode.xbm
+D      glabels2/src/pixmaps/cursor_barcode_mask.xbm
+D      glabels2/src/pixmaps/cursor_box.xbm
+D      glabels2/src/pixmaps/cursor_box_mask.xbm
+D      glabels2/src/pixmaps/cursor_ellipse.xbm
+D      glabels2/src/pixmaps/cursor_ellipse_mask.xbm
+D      glabels2/src/pixmaps/cursor_image.xbm
+D      glabels2/src/pixmaps/cursor_image_mask.xbm
+D      glabels2/src/pixmaps/cursor_line.xbm
+D      glabels2/src/pixmaps/cursor_line_mask.xbm
+D      glabels2/src/pixmaps/cursor_text.xbm
+D      glabels2/src/pixmaps/cursor_text_mask.xbm
+D      glabels2/src/pixmaps/nocollate.xpm
 R100   glabels2/gtk-doc.make   gtk-doc.make
-R100   glabels2/help/C/Makefile.am     help/C/Makefile.am
 R100   glabels2/help/C/figures/glabels-template-cd.png
 help/C/figures/glabels-template-cd.png
 R100   glabels2/help/C/figures/glabels-template-label.png
@@ -979,10 +7144,35 @@ R100     glabels2/help/C/figures/print-copies.png
 help/C/figures/print-copies.png
 R100   glabels2/help/C/figures/print-merge.png
 help/C/figures/print-merge.png
-R100   glabels2/help/C/glabels-C.omf   help/C/glabels-C.omf
 R100   glabels2/help/C/glabels.xml     help/C/glabels.xml
 R100   glabels2/help/C/legal.xml       help/C/legal.xml
 R100   glabels2/help/Makefile.am       help/Makefile.am
+R100   glabels2/help/de/de.po  help/de/de.po
+R100   glabels2/help/de/figures/main-window-empty.png
+help/de/figures/main-window-empty.png
+R100   glabels2/help/de/figures/merge-ex1-1.png
+help/de/figures/merge-ex1-1.png
+R100   glabels2/help/de/figures/merge-ex1-2.png
+help/de/figures/merge-ex1-2.png
+R100   glabels2/help/de/figures/merge-ex1-3.png
+help/de/figures/merge-ex1-3.png
+R100   glabels2/help/de/figures/merge-ex1-4.png
+help/de/figures/merge-ex1-4.png
+R100   glabels2/help/de/figures/merge-ex2-1.png
+help/de/figures/merge-ex2-1.png
+R100   glabels2/help/de/figures/merge-ex2-2.png
+help/de/figures/merge-ex2-2.png
+R100   glabels2/help/de/figures/merge-ex2-3.png
+help/de/figures/merge-ex2-3.png
+R100   glabels2/help/de/figures/merge-ex2-4.png
+help/de/figures/merge-ex2-4.png
+R100   glabels2/help/de/figures/object-editor-sidebar.png
+help/de/figures/object-editor-sidebar.png
+R100   glabels2/help/de/figures/print-copies.png
+help/de/figures/print-copies.png
+R100   glabels2/help/de/figures/print-merge.png
+help/de/figures/print-merge.png
+R100   glabels2/help/glabels.omf.in    help/glabels.omf.in
 R100   glabels2/iec16022-0.2.1/BUGS    iec16022-0.2.1/BUGS
 R100   glabels2/iec16022-0.2.1/CHANGELOG       iec16022-0.2.1/CHANGELOG
 R100   glabels2/iec16022-0.2.1/CREDITS iec16022-0.2.1/CREDITS
@@ -1042,7 +7232,9 @@ R100      glabels2/libglabels/xml-template.c      libglabels/xml-template.c
 R100   glabels2/libglabels/xml-template.h      libglabels/xml-template.h
 R100   glabels2/libglabels/xml.c       libglabels/xml.c
 R100   glabels2/libglabels/xml.h       libglabels/xml.h
+R100   glabels2/po/LINGUAS     po/LINGUAS
 R100   glabels2/po/POTFILES.in po/POTFILES.in
+R100   glabels2/po/ca.po       po/ca.po
 R100   glabels2/po/cs.po       po/cs.po
 R100   glabels2/po/de.po       po/de.po
 R100   glabels2/po/eo.po       po/eo.po
@@ -1054,34 +7246,153 @@ R100   glabels2/po/ko.po       po/ko.po
 R100   glabels2/po/pl.po       po/pl.po
 R100   glabels2/po/pt_BR.po    po/pt_BR.po
 R100   glabels2/po/ru.po       po/ru.po
+R100   glabels2/po/zh_CN.po    po/zh_CN.po
 R100   glabels2/po/zh_TW.Big5.po       po/zh_TW.Big5.po
+R100   glabels2/qrencode-3.1.0/COPYING qrencode-3.1.0/COPYING
+R100   glabels2/qrencode-3.1.0/ChangeLog       qrencode-3.1.0/ChangeLog
+R100   glabels2/qrencode-3.1.0/Doxyfile        qrencode-3.1.0/Doxyfile
+R100   glabels2/qrencode-3.1.0/Makefile.am     qrencode-3.1.0/Makefile.am
+R100   glabels2/qrencode-3.1.0/Makefile.am.dist
+qrencode-3.1.0/Makefile.am.dist
+R100   glabels2/qrencode-3.1.0/Makefile.in.dist
+qrencode-3.1.0/Makefile.in.dist
+R100   glabels2/qrencode-3.1.0/NEWS    qrencode-3.1.0/NEWS
+R100   glabels2/qrencode-3.1.0/README  qrencode-3.1.0/README
+R100   glabels2/qrencode-3.1.0/README.glabels
+qrencode-3.1.0/README.glabels
+R100   glabels2/qrencode-3.1.0/TODO    qrencode-3.1.0/TODO
+R100   glabels2/qrencode-3.1.0/acinclude.m4
+qrencode-3.1.0/acinclude.m4
+R100   glabels2/qrencode-3.1.0/aclocal.m4      qrencode-3.1.0/aclocal.m4
+R100   glabels2/qrencode-3.1.0/autogen.sh      qrencode-3.1.0/autogen.sh
+R100   glabels2/qrencode-3.1.0/bitstream.c     qrencode-3.1.0/bitstream.c
+R100   glabels2/qrencode-3.1.0/bitstream.h     qrencode-3.1.0/bitstream.h
+R100   glabels2/qrencode-3.1.0/config.h.in     qrencode-3.1.0/config.h.in
+R100   glabels2/qrencode-3.1.0/configure       qrencode-3.1.0/configure
+R100   glabels2/qrencode-3.1.0/configure.ac.dist
+qrencode-3.1.0/configure.ac.dist
+R100   glabels2/qrencode-3.1.0/libqrencode.pc.in
+qrencode-3.1.0/libqrencode.pc.in
+R100   glabels2/qrencode-3.1.0/mask.c  qrencode-3.1.0/mask.c
+R100   glabels2/qrencode-3.1.0/mask.h  qrencode-3.1.0/mask.h
+R100   glabels2/qrencode-3.1.0/qrenc.c qrencode-3.1.0/qrenc.c
+R100   glabels2/qrencode-3.1.0/qrencode.1.in
+qrencode-3.1.0/qrencode.1.in
+R100   glabels2/qrencode-3.1.0/qrencode.c      qrencode-3.1.0/qrencode.c
+R100   glabels2/qrencode-3.1.0/qrencode.h      qrencode-3.1.0/qrencode.h
+R100   glabels2/qrencode-3.1.0/qrencode.spec
+qrencode-3.1.0/qrencode.spec
+R100   glabels2/qrencode-3.1.0/qrencode.spec.in
+qrencode-3.1.0/qrencode.spec.in
+R100   glabels2/qrencode-3.1.0/qrencode_inner.h
+qrencode-3.1.0/qrencode_inner.h
+R100   glabels2/qrencode-3.1.0/qrinput.c       qrencode-3.1.0/qrinput.c
+R100   glabels2/qrencode-3.1.0/qrinput.h       qrencode-3.1.0/qrinput.h
+R100   glabels2/qrencode-3.1.0/qrspec.c        qrencode-3.1.0/qrspec.c
+R100   glabels2/qrencode-3.1.0/qrspec.h        qrencode-3.1.0/qrspec.h
+R100   glabels2/qrencode-3.1.0/rscode.c        qrencode-3.1.0/rscode.c
+R100   glabels2/qrencode-3.1.0/rscode.h        qrencode-3.1.0/rscode.h
+R100   glabels2/qrencode-3.1.0/split.c qrencode-3.1.0/split.c
+R100   glabels2/qrencode-3.1.0/split.h qrencode-3.1.0/split.h
+R100   glabels2/qrencode-3.1.0/tests/Makefile.am
+qrencode-3.1.0/tests/Makefile.am
+R100   glabels2/qrencode-3.1.0/tests/Makefile.in
+qrencode-3.1.0/tests/Makefile.in
+R100   glabels2/qrencode-3.1.0/tests/common.h
+qrencode-3.1.0/tests/common.h
+R100   glabels2/qrencode-3.1.0/tests/create_frame_pattern.c
+qrencode-3.1.0/tests/create_frame_pattern.c
+R100   glabels2/qrencode-3.1.0/tests/frame     qrencode-3.1.0/tests/frame
+R100   glabels2/qrencode-3.1.0/tests/prof_qrencode.c
+qrencode-3.1.0/tests/prof_qrencode.c
+R100   glabels2/qrencode-3.1.0/tests/test_all.sh
+qrencode-3.1.0/tests/test_all.sh
+R100   glabels2/qrencode-3.1.0/tests/test_bitstream.c
+qrencode-3.1.0/tests/test_bitstream.c
+R100   glabels2/qrencode-3.1.0/tests/test_estimatebit.c
+qrencode-3.1.0/tests/test_estimatebit.c
+R100   glabels2/qrencode-3.1.0/tests/test_monkey.c
+qrencode-3.1.0/tests/test_monkey.c
+R100   glabels2/qrencode-3.1.0/tests/test_qrencode.c
+qrencode-3.1.0/tests/test_qrencode.c
+R100   glabels2/qrencode-3.1.0/tests/test_qrinput.c
+qrencode-3.1.0/tests/test_qrinput.c
+R100   glabels2/qrencode-3.1.0/tests/test_qrspec.c
+qrencode-3.1.0/tests/test_qrspec.c
+R100   glabels2/qrencode-3.1.0/tests/test_rs.c
+qrencode-3.1.0/tests/test_rs.c
+R100   glabels2/qrencode-3.1.0/tests/test_split.c
+qrencode-3.1.0/tests/test_split.c
+R100   glabels2/qrencode-3.1.0/tests/view_qrcode.c
+qrencode-3.1.0/tests/view_qrcode.c
+R100   glabels2/qrencode-3.1.0/use/compile     qrencode-3.1.0/use/compile
+R100   glabels2/qrencode-3.1.0/use/config.guess
+qrencode-3.1.0/use/config.guess
+R100   glabels2/qrencode-3.1.0/use/config.sub
+qrencode-3.1.0/use/config.sub
+R100   glabels2/qrencode-3.1.0/use/depcomp     qrencode-3.1.0/use/depcomp
+R100   glabels2/qrencode-3.1.0/use/install-sh
+qrencode-3.1.0/use/install-sh
+R100   glabels2/qrencode-3.1.0/use/ltmain.sh
+qrencode-3.1.0/use/ltmain.sh
+R100   glabels2/qrencode-3.1.0/use/missing     qrencode-3.1.0/use/missing
 R100   glabels2/src/Makefile.am        src/Makefile.am
-R100   glabels2/src/base64.c   src/base64.c
-R100   glabels2/src/base64.h   src/base64.h
 R100   glabels2/src/bc-gnubarcode.c    src/bc-gnubarcode.c
 R100   glabels2/src/bc-gnubarcode.h    src/bc-gnubarcode.h
 R100   glabels2/src/bc-iec16022.c      src/bc-iec16022.c
 R100   glabels2/src/bc-iec16022.h      src/bc-iec16022.h
+R100   glabels2/src/bc-iec18004.c      src/bc-iec18004.c
+R100   glabels2/src/bc-iec18004.h      src/bc-iec18004.h
 R100   glabels2/src/bc-postnet.c       src/bc-postnet.c
 R100   glabels2/src/bc-postnet.h       src/bc-postnet.h
 R100   glabels2/src/bc.c       src/bc.c
 R100   glabels2/src/bc.h       src/bc.h
+R100   glabels2/src/builder-util.c     src/builder-util.c
+R100   glabels2/src/builder-util.h     src/builder-util.h
 R100   glabels2/src/cairo-ellipse-path.c       src/cairo-ellipse-path.c
 R100   glabels2/src/cairo-ellipse-path.h       src/cairo-ellipse-path.h
 R100   glabels2/src/cairo-label-path.c src/cairo-label-path.c
 R100   glabels2/src/cairo-label-path.h src/cairo-label-path.h
 R100   glabels2/src/cairo-markup-path.c        src/cairo-markup-path.c
 R100   glabels2/src/cairo-markup-path.h        src/cairo-markup-path.h
+R100   glabels2/src/color-combo-button.c       src/color-combo-button.c
+R100   glabels2/src/color-combo-button.h       src/color-combo-button.h
+R100   glabels2/src/color-combo-color-menu-item.c
+src/color-combo-color-menu-item.c
+R100   glabels2/src/color-combo-color-menu-item.h
+src/color-combo-color-menu-item.h
+R100   glabels2/src/color-combo-history.c      src/color-combo-history.c
+R100   glabels2/src/color-combo-history.h      src/color-combo-history.h
+R100   glabels2/src/color-combo-menu.c src/color-combo-menu.c
+R100   glabels2/src/color-combo-menu.h src/color-combo-menu.h
+R100   glabels2/src/color-combo.c      src/color-combo.c
+R100   glabels2/src/color-combo.h      src/color-combo.h
+R100   glabels2/src/color-swatch.c     src/color-swatch.c
+R100   glabels2/src/color-swatch.h     src/color-swatch.h
 R100   glabels2/src/color.c    src/color.c
 R100   glabels2/src/color.h    src/color.h
+R100   glabels2/src/combo-util.c       src/combo-util.c
+R100   glabels2/src/combo-util.h       src/combo-util.h
 R100   glabels2/src/critical-error-handler.c
 src/critical-error-handler.c
 R100   glabels2/src/critical-error-handler.h
 src/critical-error-handler.h
 R100   glabels2/src/debug.c    src/debug.c
 R100   glabels2/src/debug.h    src/debug.h
+R100   glabels2/src/file-util.c        src/file-util.c
+R100   glabels2/src/file-util.h        src/file-util.h
 R100   glabels2/src/file.c     src/file.c
 R100   glabels2/src/file.h     src/file.h
+R100   glabels2/src/font-combo-menu-item.c     src/font-combo-menu-item.c
+R100   glabels2/src/font-combo-menu-item.h     src/font-combo-menu-item.h
+R100   glabels2/src/font-combo-menu.c  src/font-combo-menu.c
+R100   glabels2/src/font-combo-menu.h  src/font-combo-menu.h
+R100   glabels2/src/font-combo.c       src/font-combo.c
+R100   glabels2/src/font-combo.h       src/font-combo.h
+R100   glabels2/src/font-sample.c      src/font-sample.c
+R100   glabels2/src/font-sample.h      src/font-sample.h
+R100   glabels2/src/font-util.c        src/font-util.c
+R100   glabels2/src/font-util.h        src/font-util.h
 R100   glabels2/src/glabels-batch.c    src/glabels-batch.c
 R100   glabels2/src/glabels.c  src/glabels.c
 R100   glabels2/src/hig.h      src/hig.h
@@ -1116,29 +7427,16 @@ R100    glabels2/src/merge-vcard.c      src/merge-vcard.c
 R100   glabels2/src/merge-vcard.h      src/merge-vcard.h
 R100   glabels2/src/merge.c    src/merge.c
 R100   glabels2/src/merge.h    src/merge.h
+R100   glabels2/src/mini-label-preview.c       src/mini-label-preview.c
+R100   glabels2/src/mini-label-preview.h       src/mini-label-preview.h
 R100   glabels2/src/mini-preview-pixbuf-cache.c
 src/mini-preview-pixbuf-cache.c
 R100   glabels2/src/mini-preview-pixbuf-cache.h
 src/mini-preview-pixbuf-cache.h
 R100   glabels2/src/mini-preview-pixbuf.c      src/mini-preview-pixbuf.c
 R100   glabels2/src/mini-preview-pixbuf.h      src/mini-preview-pixbuf.h
-R100   glabels2/src/mygal/Makefile.am  src/mygal/Makefile.am
-R100   glabels2/src/mygal/color-group.c        src/mygal/color-group.c
-R100   glabels2/src/mygal/color-group.h        src/mygal/color-group.h
-R100   glabels2/src/mygal/color-palette.c      src/mygal/color-palette.c
-R100   glabels2/src/mygal/color-palette.h      src/mygal/color-palette.h
-R100   glabels2/src/mygal/e-colors.c   src/mygal/e-colors.c
-R100   glabels2/src/mygal/e-colors.h   src/mygal/e-colors.h
-R100   glabels2/src/mygal/e-marshal.list       src/mygal/e-marshal.list
-R100   glabels2/src/mygal/e-util.h     src/mygal/e-util.h
-R100   glabels2/src/mygal/mygal-combo-box.c
-src/mygal/mygal-combo-box.c
-R100   glabels2/src/mygal/mygal-combo-box.h
-src/mygal/mygal-combo-box.h
-R100   glabels2/src/mygal/widget-color-combo.c
-src/mygal/widget-color-combo.c
-R100   glabels2/src/mygal/widget-color-combo.h
-src/mygal/widget-color-combo.h
+R100   glabels2/src/mini-preview.c     src/mini-preview.c
+R100   glabels2/src/mini-preview.h     src/mini-preview.h
 R100   glabels2/src/new-label-dialog.c src/new-label-dialog.c
 R100   glabels2/src/new-label-dialog.h src/new-label-dialog.h
 R100   glabels2/src/object-editor-bc-page.c
@@ -1170,45 +7468,49 @@ R100    glabels2/src/object-editor.h    src/object-editor.h
 R100   glabels2/src/pixbuf-cache.c     src/pixbuf-cache.c
 R100   glabels2/src/pixbuf-cache.h     src/pixbuf-cache.h
 R100   glabels2/src/pixmaps/Makefile.am        src/pixmaps/Makefile.am
-R100   glabels2/src/pixmaps/checkerboard.xpm
+R100   glabels1/src/pixmaps/checkerboard.xpm
 src/pixmaps/checkerboard.xpm
-R100   glabels2/src/pixmaps/collate.xpm        src/pixmaps/collate.xpm
-R100   glabels2/src/pixmaps/cursor_barcode.xbm
+R100   glabels1/src/pixmaps/collate.xpm        src/pixmaps/collate.xpm
+R100   glabels1/src/pixmaps/cursor_barcode.xbm
 src/pixmaps/cursor_barcode.xbm
-R100   glabels2/src/pixmaps/cursor_barcode_mask.xbm
+R100   glabels1/src/pixmaps/cursor_barcode_mask.xbm
 src/pixmaps/cursor_barcode_mask.xbm
-R100   glabels2/src/pixmaps/cursor_box.xbm     src/pixmaps/cursor_box.xbm
-R100   glabels2/src/pixmaps/cursor_box_mask.xbm
+R100   glabels1/src/pixmaps/cursor_box.xbm     src/pixmaps/cursor_box.xbm
+R100   glabels1/src/pixmaps/cursor_box_mask.xbm
 src/pixmaps/cursor_box_mask.xbm
-R100   glabels2/src/pixmaps/cursor_ellipse.xbm
+R100   glabels1/src/pixmaps/cursor_ellipse.xbm
 src/pixmaps/cursor_ellipse.xbm
-R100   glabels2/src/pixmaps/cursor_ellipse_mask.xbm
+R100   glabels1/src/pixmaps/cursor_ellipse_mask.xbm
 src/pixmaps/cursor_ellipse_mask.xbm
-R100   glabels2/src/pixmaps/cursor_image.xbm
+R100   glabels1/src/pixmaps/cursor_image.xbm
 src/pixmaps/cursor_image.xbm
-R100   glabels2/src/pixmaps/cursor_image_mask.xbm
+R100   glabels1/src/pixmaps/cursor_image_mask.xbm
 src/pixmaps/cursor_image_mask.xbm
-R100   glabels2/src/pixmaps/cursor_line.xbm
+R100   glabels1/src/pixmaps/cursor_line.xbm
 src/pixmaps/cursor_line.xbm
-R100   glabels2/src/pixmaps/cursor_line_mask.xbm
+R100   glabels1/src/pixmaps/cursor_line_mask.xbm
 src/pixmaps/cursor_line_mask.xbm
-R100   glabels2/src/pixmaps/cursor_text.xbm
+R100   glabels1/src/pixmaps/cursor_text.xbm
 src/pixmaps/cursor_text.xbm
-R100   glabels2/src/pixmaps/cursor_text_mask.xbm
+R100   glabels1/src/pixmaps/cursor_text_mask.xbm
 src/pixmaps/cursor_text_mask.xbm
-R100   glabels2/src/pixmaps/nocollate.xpm      src/pixmaps/nocollate.xpm
+R100   glabels1/src/pixmaps/nocollate.xpm      src/pixmaps/nocollate.xpm
 R100   glabels2/src/prefs-dialog.c     src/prefs-dialog.c
 R100   glabels2/src/prefs-dialog.h     src/prefs-dialog.h
 R100   glabels2/src/prefs-model.c      src/prefs-model.c
 R100   glabels2/src/prefs-model.h      src/prefs-model.h
 R100   glabels2/src/prefs.c    src/prefs.c
 R100   glabels2/src/prefs.h    src/prefs.h
+R100   glabels2/src/print-op-dialog.c  src/print-op-dialog.c
+R100   glabels2/src/print-op-dialog.h  src/print-op-dialog.h
 R100   glabels2/src/print-op.c src/print-op.c
 R100   glabels2/src/print-op.h src/print-op.h
 R100   glabels2/src/print.c    src/print.c
 R100   glabels2/src/print.h    src/print.h
 R100   glabels2/src/recent.c   src/recent.c
 R100   glabels2/src/recent.h   src/recent.h
+R100   glabels2/src/rotate-label-button.c      src/rotate-label-button.c
+R100   glabels2/src/rotate-label-button.h      src/rotate-label-button.h
 R100   glabels2/src/stock-pixmaps/Makefile.am
 src/stock-pixmaps/Makefile.am
 R100   glabels2/src/stock-pixmaps/stock_align_bottom_16.png
@@ -1293,6 +7595,8 @@ R100      glabels2/src/stock-pixmaps/stock_vchain_broken_24.png
 src/stock-pixmaps/stock_vchain_broken_24.png
 R100   glabels2/src/stock.c    src/stock.c
 R100   glabels2/src/stock.h    src/stock.h
+R100   glabels2/src/str-util.c src/str-util.c
+R100   glabels2/src/str-util.h src/str-util.h
 R100   glabels2/src/template-designer.c        src/template-designer.c
 R100   glabels2/src/template-designer.h        src/template-designer.h
 R100   glabels2/src/text-node.c        src/text-node.c
@@ -1307,8 +7611,6 @@ R100      glabels2/src/ui-util.c  src/ui-util.c
 R100   glabels2/src/ui-util.h  src/ui-util.h
 R100   glabels2/src/ui.c       src/ui.c
 R100   glabels2/src/ui.h       src/ui.h
-R100   glabels2/src/util.c     src/util.c
-R100   glabels2/src/util.h     src/util.h
 R100   glabels2/src/view-barcode.c     src/view-barcode.c
 R100   glabels2/src/view-barcode.h     src/view-barcode.h
 R100   glabels2/src/view-box.c src/view-box.c
@@ -1331,1461 +7633,17384 @@ R100       glabels2/src/wdgt-chain-button.c        src/wdgt-chain-button.c
 R100   glabels2/src/wdgt-chain-button.h        src/wdgt-chain-button.h
 R100   glabels2/src/wdgt-media-select.c        src/wdgt-media-select.c
 R100   glabels2/src/wdgt-media-select.h        src/wdgt-media-select.h
-R100   glabels2/src/wdgt-mini-preview.c        src/wdgt-mini-preview.c
-R100   glabels2/src/wdgt-mini-preview.h        src/wdgt-mini-preview.h
-R100   glabels2/src/wdgt-print-copies.c        src/wdgt-print-copies.c
-R100   glabels2/src/wdgt-print-copies.h        src/wdgt-print-copies.h
-R100   glabels2/src/wdgt-print-merge.c src/wdgt-print-merge.c
-R100   glabels2/src/wdgt-print-merge.h src/wdgt-print-merge.h
-R100   glabels2/src/wdgt-rotate-label.c        src/wdgt-rotate-label.c
-R100   glabels2/src/wdgt-rotate-label.h        src/wdgt-rotate-label.h
+R100   glabels2/src/wdgt-merge-menu.c  src/wdgt-merge-menu.c
+R100   glabels2/src/wdgt-merge-menu.h  src/wdgt-merge-menu.h
 R100   glabels2/src/window.c   src/window.c
 R100   glabels2/src/window.h   src/window.h
 R100   glabels2/src/xml-label-04.c     src/xml-label-04.c
 R100   glabels2/src/xml-label-04.h     src/xml-label-04.h
 R100   glabels2/src/xml-label.c        src/xml-label.c
 R100   glabels2/src/xml-label.h        src/xml-label.h
+R100   glabels2/templates/Makefile.am  templates/Makefile.am
+R100   glabels2/templates/avery-iso-templates.xml
+templates/avery-iso-templates.xml
+R100   glabels2/templates/avery-other-templates.xml
+templates/avery-other-templates.xml
+R100   glabels2/templates/avery-us-templates.xml
+templates/avery-us-templates.xml
+R100   glabels2/templates/brother-other-templates.xml
+templates/brother-other-templates.xml
+R100   glabels2/templates/categories.xml       templates/categories.xml
+R100   glabels2/templates/dymo-other-templates.xml
+templates/dymo-other-templates.xml
+R100   glabels2/templates/glabels-2.2.dtd      templates/glabels-2.2.dtd
+R100   glabels2/templates/misc-iso-templates.xml
+templates/misc-iso-templates.xml
+R100   glabels2/templates/misc-other-templates.xml
+templates/misc-other-templates.xml
+R100   glabels2/templates/misc-us-templates.xml
+templates/misc-us-templates.xml
+R100   glabels2/templates/paper-sizes.xml      templates/paper-sizes.xml
+R100   glabels2/templates/zweckform-iso-templates.xml
+templates/zweckform-iso-templates.xml
+D      web/common_php.inc
+D      web/contact/index.php
+D      web/css/glabels.css
+D      web/doc/glabels-2.0.dtd.txt
+D      web/doc/glabels-2.2.dtd.txt
+D      web/doc/index.php
+D      web/doc/install-src/index.php
+D      web/doc/templates-2.0/glabels-template-cd.png
+D      web/doc/templates-2.0/glabels-template-label.png
+D      web/doc/templates-2.0/glabels-template-layout.png
+D      web/doc/templates-2.0/index.php
+D      web/doc/templates-2.2/glabels-template-cd.png
+D      web/doc/templates-2.2/glabels-template-label.png
+D      web/doc/templates-2.2/glabels-template-layout.png
+D      web/doc/templates-2.2/index.php
+D      web/download/index.php
+D      web/faq/index.php
+D      web/faq/q1.3-output.png
+D      web/faq/q1.3-screenshot.png
+D      web/images/button-bg.png
+D      web/images/corner-bl.png
+D      web/images/corner-br.png
+D      web/images/corner-tl.png
+D      web/images/corner-tr.png
+D      web/images/glabels-title-140.png
+D      web/images/pixel-null.png
+D      web/index.php
+D      web/links/index.php
+D      web/news/index.php
+D      web/screenshots/191-screenshot-main-grid-thumb.png
+D      web/screenshots/191-screenshot-main-grid.png
+D      web/screenshots/191-screenshot-main-thumb.png
+D      web/screenshots/191-screenshot-main.png
+D      web/screenshots/191-screenshot-new-thumb.png
+D      web/screenshots/191-screenshot-new.png
+D      web/screenshots/191-screenshot-print-merge-thumb.png
+D      web/screenshots/191-screenshot-print-merge.png
+D      web/screenshots/191-screenshot-print-simple-thumb.png
+D      web/screenshots/191-screenshot-print-simple.png
+D      web/screenshots/192-screenshot-thumb.png
+D      web/screenshots/192-screenshot.png
+D      web/screenshots/193-screenshot-main-thumb.png
+D      web/screenshots/193-screenshot-main.png
+D      web/screenshots/193-screenshot-new-thumb.png
+D      web/screenshots/193-screenshot-new.png
+D      web/screenshots/193-screenshot-preview-thumb.png
+D      web/screenshots/193-screenshot-preview.png
+D      web/screenshots/193-screenshot-print-thumb.png
+D      web/screenshots/193-screenshot-print.png
+D      web/screenshots/220-screenshot-main-thumb.png
+D      web/screenshots/220-screenshot-main.png
+D      web/screenshots/220-screenshot-new-thumb.png
+D      web/screenshots/220-screenshot-new.png
+D      web/screenshots/220-screenshot-preview-thumb.png
+D      web/screenshots/220-screenshot-preview.png
+D      web/screenshots/220-screenshot-print-thumb.png
+D      web/screenshots/220-screenshot-print.png
+D      web/screenshots/glabels1-screenshot-thumb.jpg
+D      web/screenshots/glabels1-screenshot.jpg
+D      web/screenshots/glabels1-screenshot.png
+D      web/screenshots/index.php
+D      web/source/glabels-0.1.0.tar.gz
+D      web/source/glabels-0.1.1.tar.gz
+D      web/source/glabels-0.1.2.tar.gz
+D      web/source/glabels-0.1.3.tar.gz
+D      web/source/glabels-0.1.4.tar.gz
+D      web/source/glabels-0.1.5.tar.gz
+D      web/source/glabels-0.2.0.tar.gz
+D      web/source/glabels-0.2.1.tar.gz
+D      web/source/glabels-0.2.2.tar.gz
+D      web/source/glabels-0.2.3.tar.gz
+D      web/source/glabels-0.2.4.tar.gz
+D      web/source/glabels-0.3.0.tar.gz
+D      web/source/glabels-0.3.1.tar.gz
+D      web/source/glabels-0.3.2.tar.gz
+D      web/source/glabels-0.3.3.tar.gz
+D      web/source/glabels-0.3.4.tar.gz
+D      web/source/glabels-0.4.0.tar.gz
+D      web/source/glabels-0.4.1.tar.gz
+D      web/source/glabels-0.4.2.tar.gz
+D      web/source/glabels-0.4.3.tar.gz
+D      web/source/glabels-0.4.4.tar.gz
+D      web/source/glabels-0.4.5.tar.gz
+D      web/source/glabels-0.4.6.tar.gz
+D      web/source/glabels-1.89.0.tar.gz
+D      web/source/glabels-1.89.1.tar.gz
+D      web/source/glabels-1.89.2.tar.gz
+D      web/source/glabels-1.90.0.tar.gz
+D      web/source/glabels-1.91.0.tar.gz
+D      web/source/glabels-1.91.1.tar.gz
+D      web/source/glabels-1.92.0.tar.gz
+D      web/source/glabels-1.92.1.tar.gz
+D      web/source/glabels-1.92.2.tar.gz
+D      web/source/glabels-1.92.3.tar.gz
+D      web/source/glabels-1.93.0.tar.gz
+D      web/source/glabels-1.93.1.tar.gz
+D      web/source/glabels-1.93.2.tar.gz
+D      web/source/glabels-1.93.3.tar.gz
+D      web/tango-icons/applications-development.png
+D      web/tango-icons/applications-internet.png
+D      web/tango-icons/dialog-information.png
+D      web/tango-icons/emblem-photos.png
+D      web/tango-icons/help-browser.png
+D      web/tango-icons/internet-news-reader.png
+D      web/tango-icons/package-x-generic.png
+D      web/tango-icons/system-users.png
+
+commit afa4a2a62381d2502254a8928216f11509aa1b7d
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-09-23
+
+    2009-09-22 Jim Evins  <evins@snaught.com>
+
+       * po/POTFILES.in:
+       * src/Makefile.am:
+       * src/builder-util.c:
+       * src/builder-util.h:
+       * src/combo-util.c:
+       * src/combo-util.h:
+       * src/file-util.c:
+       * src/file-util.h:
+       * src/str-util.c:
+       * src/str-util.h:
+               Split "catch all" util module into separate modules
+               for different
+               domains of utilities.
+       * src/file.c: (gl_file_open_real), (save_as_response):
+       * src/glabels-batch.c: (main):
+       * src/label.c: (gl_label_get_short_name):
+       * src/merge-properties-dialog.c:
+       (gl_merge_properties_dialog_init),
+       (gl_merge_properties_dialog_construct):
+       * src/new-label-dialog.c:
+       * src/object-editor-bc-page.c: (gl_object_editor_prepare_bc_page),
+       (gl_object_editor_set_bc_style), (gl_object_editor_set_bc_color):
+       * src/object-editor-data-page.c:
+       (gl_object_editor_prepare_data_page), (gl_object_editor_set_data):
+       * src/object-editor-edit-page.c:
+       (gl_object_editor_prepare_edit_page):
+       * src/object-editor-fill-page.c:
+       (gl_object_editor_prepare_fill_page),
+       (gl_object_editor_set_fill_color):
+       * src/object-editor-image-page.c:
+       (gl_object_editor_prepare_image_page),
+       (gl_object_editor_set_image):
+       * src/object-editor-line-page.c:
+       (gl_object_editor_prepare_line_page),
+       (gl_object_editor_set_line_color):
+       * src/object-editor-lsize-page.c:
+       (gl_object_editor_prepare_lsize_page):
+       * src/object-editor-position-page.c:
+       (gl_object_editor_prepare_position_page):
+       * src/object-editor-shadow-page.c:
+       (gl_object_editor_prepare_shadow_page),
+       (gl_object_editor_set_shadow_color):
+       * src/object-editor-size-page.c:
+       (gl_object_editor_prepare_size_page):
+       * src/object-editor-text-page.c:
+       (gl_object_editor_prepare_text_page),
+       (gl_object_editor_set_text_color):
+       * src/object-editor.c: (gl_object_editor_init),
+       (gl_object_editor_set_key_names):
+       * src/prefs-dialog.c: (gl_prefs_dialog_construct),
+       (construct_locale_page), (construct_object_page):
+       * src/prefs-model.c: (gl_prefs_model_save_settings),
+       (gl_prefs_model_load_settings):
+       * src/print-op-dialog.c: (create_custom_widget_cb):
+       * src/template-designer.c: (construct_start_page),
+       (construct_name_page), (construct_pg_size_page),
+       (construct_shape_page), (construct_rect_size_page),
+       (construct_round_size_page), (construct_cd_size_page),
+       (construct_nlayouts_page), (construct_layout_page),
+       (construct_finish_page):
+       * src/ui-property-bar.c: (gl_ui_property_bar_construct):
+       * src/wdgt-media-select.c: (gl_wdgt_media_select_construct),
+       (gl_wdgt_media_select_set_filter_parameters),
+       (get_label_size_desc):
+       * src/window.c: (gl_window_new_from_file):
+       * src/xml-label-04.c: (xml04_parse_text_props):
+       * src/xml-label.c: (xml_parse_object_text),
+       (xml_parse_toplevel_span), (xml_create_object_text),
+       (xml_create_toplevel_span):
+               Reconciled all references to old utils module with
+               new domain
+               specific utilities modules.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@895
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/po/POTFILES.in
+M      glabels2/src/Makefile.am
+A      glabels2/src/builder-util.c
+A      glabels2/src/builder-util.h
+A      glabels2/src/combo-util.c
+A      glabels2/src/combo-util.h
+A      glabels2/src/file-util.c
+A      glabels2/src/file-util.h
+M      glabels2/src/file.c
+M      glabels2/src/glabels-batch.c
+M      glabels2/src/label.c
+M      glabels2/src/merge-properties-dialog.c
+M      glabels2/src/new-label-dialog.c
+M      glabels2/src/object-editor-bc-page.c
+M      glabels2/src/object-editor-data-page.c
+M      glabels2/src/object-editor-edit-page.c
+M      glabels2/src/object-editor-fill-page.c
+M      glabels2/src/object-editor-image-page.c
+M      glabels2/src/object-editor-line-page.c
+M      glabels2/src/object-editor-lsize-page.c
+M      glabels2/src/object-editor-position-page.c
+M      glabels2/src/object-editor-shadow-page.c
+M      glabels2/src/object-editor-size-page.c
+M      glabels2/src/object-editor-text-page.c
+M      glabels2/src/object-editor.c
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/prefs-model.c
+M      glabels2/src/print-op-dialog.c
+A      glabels2/src/str-util.c
+A      glabels2/src/str-util.h
+M      glabels2/src/template-designer.c
+M      glabels2/src/ui-property-bar.c
+D      glabels2/src/util.c
+D      glabels2/src/util.h
+M      glabels2/src/wdgt-media-select.c
+M      glabels2/src/window.c
+M      glabels2/src/xml-label-04.c
+M      glabels2/src/xml-label.c
+
+commit b837823b737bdc2dd87ccc7d16e48d8079ed04e4
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-09-23
+
+    2009-09-22 Jim Evins  <evins@snaught.com>
+
+       * po/POTFILES.in:
+               Include all (src/*.[ch]) source files.
+       * data/builder/merge-properties-dialog.builder:
+       * src/merge-properties-dialog.c:
+       (gl_merge_properties_dialog_init),
+       (gl_merge_properties_dialog_construct), (type_changed_cb):
+               - OK button now has default focus.
+               - Some formatting cleanup.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@894
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/builder/merge-properties-dialog.builder
+M      glabels2/po/POTFILES.in
+M      glabels2/src/merge-properties-dialog.c
+
+commit c41ee6a35575304bc9a08337f75b7e2a1c658e7e
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-09-21
+
+    2009-09-21 Jim Evins  <evins@snaught.com>
+
+       * po/POTFILES.in:
+       * data/builder/Makefile.am:
+       * data/builder/new-label-dialog.builder:
+               Removed trivial builder file for new label dialog.
+       * data/builder/wdgt-media-select.builder:
+               Changed focus behavior of widgets.
+       * src/new-label-dialog.c: (gl_new_label_dialog_init),
+       (gl_new_label_dialog_construct):
+               - Removed use of trivial builder file -- populate
+               explicitely.
+               - Moved population code to init.
+               - OK button now has default focus.
+               - Some formatting cleanup.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@893
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/builder/Makefile.am
+D      glabels2/data/builder/new-label-dialog.builder
+M      glabels2/data/builder/wdgt-media-select.builder
+M      glabels2/po/POTFILES.in
+M      glabels2/src/new-label-dialog.c
+
+commit bbbf408cc04af2b04aea5c0607e780cb1f6a70f0
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2009-09-20
+
+    *po/de.po: Updated German translation
+
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@892
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/po/de.po
+
+commit 8faa3c122a93e40e4d296af10155542818b4666e
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-09-19
+
+    2009-09-19 Jim Evins  <evins@snaught.com>
+
+       * COPYING:
+               Updated to GPL3 text.
+       * COPYING-LIBGLABELS:
+               Updated to LGPL3 text.
+       * COPYING-TEMPLATES:
+               New MIT/X license file for templates subdirectory.
+       * COPYING.README_FIRST:
+               Updated licensing information.
+       * templates/Makefile.am:
+       * templates/avery-iso-templates.xml:
+       * templates/avery-other-templates.xml:
+       * templates/avery-us-templates.xml:
+       * templates/brother-other-templates.xml:
+       * templates/categories.xml:
+       * templates/dymo-other-templates.xml:
+       * templates/glabels-2.2.dtd:
+       * templates/misc-iso-templates.xml:
+       * templates/misc-other-templates.xml:
+       * templates/misc-us-templates.xml:
+       * templates/paper-sizes.xml:
+       * templates/zweckform-iso-templates.xml:
+               - Added MIT/X license notice to database files.
+               - Moved from data subdirectory.
+       * configure.in:
+       * po/POTFILES.in:
+       * Makefile.am:
+       * data/Makefile.am:
+               Updated to reflect above move.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@891
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/COPYING
+M      glabels2/COPYING-LIBGLABELS
+A      glabels2/COPYING-TEMPLATES
+M      glabels2/COPYING.README_FIRST
+M      glabels2/ChangeLog
+M      glabels2/Makefile.am
+M      glabels2/configure.in
+M      glabels2/data/Makefile.am
+D      glabels2/data/dtd/Makefile.am
+D      glabels2/data/templates/avery-other-templates.xml
+D      glabels2/data/templates/categories.xml
+D      glabels2/data/templates/misc-other-templates.xml
+M      glabels2/po/POTFILES.in
+R079   glabels2/data/templates/Makefile.am
+glabels2/templates/Makefile.am
+R092   glabels2/data/templates/avery-iso-templates.xml
+glabels2/templates/avery-iso-templates.xml
+A      glabels2/templates/avery-other-templates.xml
+R096   glabels2/data/templates/avery-us-templates.xml
+glabels2/templates/avery-us-templates.xml
+R064   glabels2/data/templates/brother-other-templates.xml
+glabels2/templates/brother-other-templates.xml
+A      glabels2/templates/categories.xml
+R078   glabels2/data/templates/dymo-other-templates.xml
+glabels2/templates/dymo-other-templates.xml
+R093   glabels2/data/dtd/glabels-2.2.dtd
+glabels2/templates/glabels-2.2.dtd
+R096   glabels2/data/templates/misc-iso-templates.xml
+glabels2/templates/misc-iso-templates.xml
+A      glabels2/templates/misc-other-templates.xml
+R090   glabels2/data/templates/misc-us-templates.xml
+glabels2/templates/misc-us-templates.xml
+R071   glabels2/data/templates/paper-sizes.xml
+glabels2/templates/paper-sizes.xml
+R090   glabels2/data/templates/zweckform-iso-templates.xml
+glabels2/templates/zweckform-iso-templates.xml
+
+commit cc737549c143021a3463c490c6122261717b918c
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-09-19
+
+    2009-09-19 Jim Evins  <evins@snaught.com>
+
+       * libglabels/category.c:
+       * libglabels/category.h:
+       * libglabels/db.c:
+       * libglabels/db.h:
+       * libglabels/enums.h:
+       * libglabels/libglabels-private.h:
+       * libglabels/libglabels.h:
+       * libglabels/paper.c:
+       * libglabels/paper.h:
+       * libglabels/str.c:
+       * libglabels/str.h:
+       * libglabels/template.c:
+       * libglabels/template.h:
+       * libglabels/xml-category.c:
+       * libglabels/xml-category.h:
+       * libglabels/xml-paper.c:
+       * libglabels/xml-paper.h:
+       * libglabels/xml-template.c:
+       * libglabels/xml-template.h:
+       * libglabels/xml.c:
+       * libglabels/xml.h:
+               - Cleaned up GTK/GLIB includes.
+               - Updated license notification to LGPL3+.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@890
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/libglabels/category.c
+M      glabels2/libglabels/category.h
+M      glabels2/libglabels/db.c
+M      glabels2/libglabels/db.h
+M      glabels2/libglabels/enums.h
+M      glabels2/libglabels/libglabels-private.h
+M      glabels2/libglabels/libglabels.h
+M      glabels2/libglabels/paper.c
+M      glabels2/libglabels/paper.h
+M      glabels2/libglabels/str.c
+M      glabels2/libglabels/str.h
+M      glabels2/libglabels/template.c
+M      glabels2/libglabels/template.h
+M      glabels2/libglabels/xml-category.c
+M      glabels2/libglabels/xml-category.h
+M      glabels2/libglabels/xml-paper.c
+M      glabels2/libglabels/xml-paper.h
+M      glabels2/libglabels/xml-template.c
+M      glabels2/libglabels/xml-template.h
+M      glabels2/libglabels/xml.c
+M      glabels2/libglabels/xml.h
+
+commit 728c32fbe052cd712c75a0e6abd857b9edad0769
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-09-19
+
+    2009-09-18 Jim Evins  <evins@snaught.com>
+
+       * po/POTFILES.in:
+               Added missing file.
+       * src/mini-preview.h:
+       * src/mini-preview.c: (gl_mini_preview_class_init),
+       (gl_mini_preview_finalize), (gl_mini_preview_set_by_name),
+       (gl_mini_preview_highlight_range), (gl_mini_preview_set_label),
+       (gl_mini_preview_set_page), (gl_mini_preview_set_n_sheets),
+       (gl_mini_preview_set_n_copies), (gl_mini_preview_set_first),
+       (gl_mini_preview_set_last), (gl_mini_preview_set_collate_flag),
+       (gl_mini_preview_set_outline_flag),
+       (gl_mini_preview_set_reverse_flag),
+       (gl_mini_preview_set_crop_marks_flag), (button_release_event_cb),
+       (expose_event_cb), (redraw), (draw), (draw_labels),
+       (draw_rich_preview):
+               Added rich preview capability to mini preview.
+       * src/print-op-dialog.c: (create_custom_widget_cb),
+       (simple_sheets_radio_cb), (simple_first_spin_cb),
+       (simple_last_spin_cb), (preview_pressed_cb),
+       (preview_released_cb),
+       (merge_spin_cb), (merge_collate_check_cb), (preview_clicked_cb),
+       (option_toggled_cb):
+               Use new rich preview capability of mini preview in
+               print dialog.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@889
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/po/POTFILES.in
+M      glabels2/src/mini-preview.c
+M      glabels2/src/mini-preview.h
+M      glabels2/src/print-op-dialog.c
+
+commit 8ab36a60a289ee05a68bff6e0057fcfedbc707f6
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2009-09-18
+
+    po/POTFILES.in: Removed name of no longer existant file
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@888
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/po/POTFILES.in
+
+commit 25a36cf2b7d91c7578d40b141b6810e5f635b629
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-09-18
+
+    2009-09-17 Jim Evins  <evins@snaught.com>
+
+       * src/stock.c: (add_icons), (add_button_icon):
+               Use proper free function for GtkIconSource
+               (gtk_icon_source_free() not g_free()).
+               Patch provided by Christian Persch <chpe@gnome.org>.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@886
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/stock.c
+
+commit 7e55e35f41dbbbbb2dcf285fa5fbcc9007628457
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-09-18
+
+    2009-09-17 Jim Evins  <evins@snaught.com>
+
+       * libglabels/category.h:
+       * libglabels/db.h:
+       * libglabels/paper.h:
+       * libglabels/template.h:
+       * libglabels/xml-category.h:
+       * libglabels/xml-paper.h:
+       * libglabels/xml.h:
+               Cleaned up GTK/GLIB includes.
+       * src/bc-gnubarcode.c:
+       * src/bc-gnubarcode.h:
+       * src/bc-iec16022.c:
+       * src/bc-iec16022.h:
+       * src/bc-iec18004.c:
+       * src/bc-iec18004.h:
+       * src/bc-postnet.c:
+       * src/bc-postnet.h:
+       * src/bc.c:
+       * src/bc.h:
+       * src/cairo-ellipse-path.c:
+       * src/cairo-ellipse-path.h:
+       * src/cairo-label-path.c:
+       * src/cairo-label-path.h:
+       * src/cairo-markup-path.c:
+       * src/cairo-markup-path.h:
+       * src/color-combo-button.c:
+       * src/color-combo-button.h:
+       * src/color-combo-color-menu-item.c:
+       * src/color-combo-color-menu-item.h:
+       * src/color-combo-history.c:
+       * src/color-combo-menu.c:
+       * src/color-combo-menu.h:
+       * src/color-combo.c:
+       * src/color-combo.h:
+       * src/color-swatch.c:
+       * src/color-swatch.h:
+       * src/color.c:
+       * src/color.h:
+       * src/critical-error-handler.c:
+       * src/critical-error-handler.h:
+       * src/debug.c:
+       * src/debug.h:
+       * src/file.c:
+       * src/file.h:
+       * src/font-combo-menu-item.c:
+       * src/font-combo-menu-item.h:
+       * src/font-combo-menu.c:
+       * src/font-combo-menu.h:
+       * src/font-combo.c:
+       * src/font-combo.h:
+       * src/font-sample.h:
+       * src/font-util.c:
+       * src/font-util.h:
+       * src/glabels-batch.c:
+       * src/glabels.c:
+       * src/hig.h:
+       * src/label-barcode.c:
+       * src/label-barcode.h:
+       * src/label-box.c:
+       * src/label-box.h:
+       * src/label-ellipse.c:
+       * src/label-ellipse.h:
+       * src/label-image.c:
+       * src/label-image.h:
+       * src/label-line.c:
+       * src/label-line.h:
+       * src/label-object.c:
+       * src/label-object.h:
+       * src/label-text.c:
+       * src/label-text.h:
+       * src/label.c:
+       * src/label.h:
+       * src/merge-evolution.c:
+       * src/merge-evolution.h:
+       * src/merge-init.c:
+       * src/merge-init.h:
+       * src/merge-properties-dialog.c:
+       * src/merge-properties-dialog.h:
+       * src/merge-text.c:
+       * src/merge-text.h:
+       * src/merge-vcard.c:
+       * src/merge-vcard.h:
+       * src/merge.c:
+       * src/merge.h:
+       * src/mini-label-preview.c:
+       * src/mini-label-preview.h:
+       * src/mini-preview-pixbuf-cache.c:
+       * src/mini-preview-pixbuf-cache.h:
+       * src/mini-preview-pixbuf.c:
+       * src/mini-preview-pixbuf.h:
+       * src/mini-preview.c:
+       * src/new-label-dialog.c:
+       * src/new-label-dialog.h:
+       * src/object-editor-bc-page.c:
+       * src/object-editor-data-page.c:
+       * src/object-editor-fill-page.c:
+       * src/object-editor-image-page.c:
+       * src/object-editor-line-page.c:
+       * src/object-editor-lsize-page.c:
+       * src/object-editor-position-page.c:
+       * src/object-editor-private.h:
+       * src/object-editor-shadow-page.c:
+       * src/object-editor-size-page.c:
+       * src/object-editor-text-page.c:
+       * src/object-editor.c:
+       * src/object-editor.h:
+       * src/pixbuf-cache.c:
+       * src/pixbuf-cache.h:
+       * src/prefs-dialog.c:
+       * src/prefs-dialog.h:
+       * src/prefs-model.c:
+       * src/prefs-model.h:
+       * src/prefs.c:
+       * src/prefs.h:
+       * src/print-op-dialog.c:
+       * src/print-op.c:
+       * src/print-op.h:
+       * src/print.c:
+       * src/print.h:
+       * src/recent.c:
+       * src/recent.h:
+       * src/rotate-label-button.c:
+       * src/rotate-label-button.h:
+       * src/stock.c:
+       * src/stock.h:
+       * src/template-designer.c:
+       * src/template-designer.h:
+       * src/text-node.c:
+       * src/text-node.h:
+       * src/ui-commands.c:
+       * src/ui-commands.h:
+       * src/ui-property-bar.c:
+       * src/ui-property-bar.h:
+       * src/ui-sidebar.c:
+       * src/ui-sidebar.h:
+       * src/ui-util.c:
+       * src/ui-util.h:
+       * src/ui.c:
+       * src/ui.h:
+       * src/util.c:
+       * src/util.h:
+       * src/view-barcode.c:
+       * src/view-barcode.h:
+       * src/view-box.c:
+       * src/view-box.h:
+       * src/view-ellipse.c:
+       * src/view-ellipse.h:
+       * src/view-image.c:
+       * src/view-image.h:
+       * src/view-line.c:
+       * src/view-line.h:
+       * src/view-object.c:
+       * src/view-object.h:
+       * src/view-text.c:
+       * src/view-text.h:
+       * src/view.c:
+       * src/view.h:
+       * src/warning-handler.c:
+       * src/warning-handler.h:
+       * src/wdgt-chain-button.c:
+       * src/wdgt-chain-button.h:
+       * src/wdgt-media-select.c:
+       * src/wdgt-media-select.h:
+       * src/wdgt-merge-menu.c:
+       * src/wdgt-merge-menu.h:
+       * src/window.c:
+       * src/window.h:
+       * src/xml-label-04.c:
+       * src/xml-label-04.h:
+       * src/xml-label.c:
+       * src/xml-label.h:
+               Cleaned up GTK/GLIB includes.
+               Updated remainder of notices to GPL3+.
+               Simple formatting cleanup.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@885
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/libglabels/category.h
+M      glabels2/libglabels/db.h
+M      glabels2/libglabels/paper.h
+M      glabels2/libglabels/template.h
+M      glabels2/libglabels/xml-category.h
+M      glabels2/libglabels/xml-paper.h
+M      glabels2/libglabels/xml.h
+M      glabels2/src/bc-gnubarcode.c
+M      glabels2/src/bc-gnubarcode.h
+M      glabels2/src/bc-iec16022.c
+M      glabels2/src/bc-iec16022.h
+M      glabels2/src/bc-iec18004.c
+M      glabels2/src/bc-iec18004.h
+M      glabels2/src/bc-postnet.c
+M      glabels2/src/bc-postnet.h
+M      glabels2/src/bc.c
+M      glabels2/src/bc.h
+M      glabels2/src/cairo-ellipse-path.c
+M      glabels2/src/cairo-ellipse-path.h
+M      glabels2/src/cairo-label-path.c
+M      glabels2/src/cairo-label-path.h
+M      glabels2/src/cairo-markup-path.c
+M      glabels2/src/cairo-markup-path.h
+M      glabels2/src/color-combo-button.c
+M      glabels2/src/color-combo-button.h
+M      glabels2/src/color-combo-color-menu-item.c
+M      glabels2/src/color-combo-color-menu-item.h
+M      glabels2/src/color-combo-history.c
+M      glabels2/src/color-combo-menu.c
+M      glabels2/src/color-combo-menu.h
+M      glabels2/src/color-combo.c
+M      glabels2/src/color-combo.h
+M      glabels2/src/color-swatch.c
+M      glabels2/src/color-swatch.h
+M      glabels2/src/color.c
+M      glabels2/src/color.h
+M      glabels2/src/critical-error-handler.c
+M      glabels2/src/critical-error-handler.h
+M      glabels2/src/debug.c
+M      glabels2/src/debug.h
+M      glabels2/src/file.c
+M      glabels2/src/file.h
+M      glabels2/src/font-combo-menu-item.c
+M      glabels2/src/font-combo-menu-item.h
+M      glabels2/src/font-combo-menu.c
+M      glabels2/src/font-combo-menu.h
+M      glabels2/src/font-combo.c
+M      glabels2/src/font-combo.h
+M      glabels2/src/font-sample.h
+M      glabels2/src/font-util.c
+M      glabels2/src/font-util.h
+M      glabels2/src/glabels-batch.c
+M      glabels2/src/glabels.c
+M      glabels2/src/hig.h
+M      glabels2/src/label-barcode.c
+M      glabels2/src/label-barcode.h
+M      glabels2/src/label-box.c
+M      glabels2/src/label-box.h
+M      glabels2/src/label-ellipse.c
+M      glabels2/src/label-ellipse.h
+M      glabels2/src/label-image.c
+M      glabels2/src/label-image.h
+M      glabels2/src/label-line.c
+M      glabels2/src/label-line.h
+M      glabels2/src/label-object.c
+M      glabels2/src/label-object.h
+M      glabels2/src/label-text.c
+M      glabels2/src/label-text.h
+M      glabels2/src/label.c
+M      glabels2/src/label.h
+M      glabels2/src/merge-evolution.c
+M      glabels2/src/merge-evolution.h
+M      glabels2/src/merge-init.c
+M      glabels2/src/merge-init.h
+M      glabels2/src/merge-properties-dialog.c
+M      glabels2/src/merge-properties-dialog.h
+M      glabels2/src/merge-text.c
+M      glabels2/src/merge-text.h
+M      glabels2/src/merge-vcard.c
+M      glabels2/src/merge-vcard.h
+M      glabels2/src/merge.c
+M      glabels2/src/merge.h
+M      glabels2/src/mini-label-preview.c
+M      glabels2/src/mini-label-preview.h
+M      glabels2/src/mini-preview-pixbuf-cache.c
+M      glabels2/src/mini-preview-pixbuf-cache.h
+M      glabels2/src/mini-preview-pixbuf.c
+M      glabels2/src/mini-preview-pixbuf.h
+M      glabels2/src/mini-preview.c
+M      glabels2/src/new-label-dialog.c
+M      glabels2/src/new-label-dialog.h
+M      glabels2/src/object-editor-bc-page.c
+M      glabels2/src/object-editor-data-page.c
+M      glabels2/src/object-editor-fill-page.c
+M      glabels2/src/object-editor-image-page.c
+M      glabels2/src/object-editor-line-page.c
+M      glabels2/src/object-editor-lsize-page.c
+M      glabels2/src/object-editor-position-page.c
+M      glabels2/src/object-editor-private.h
+M      glabels2/src/object-editor-shadow-page.c
+M      glabels2/src/object-editor-size-page.c
+M      glabels2/src/object-editor-text-page.c
+M      glabels2/src/object-editor.c
+M      glabels2/src/object-editor.h
+M      glabels2/src/pixbuf-cache.c
+M      glabels2/src/pixbuf-cache.h
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/prefs-dialog.h
+M      glabels2/src/prefs-model.c
+M      glabels2/src/prefs-model.h
+M      glabels2/src/prefs.c
+M      glabels2/src/prefs.h
+M      glabels2/src/print-op-dialog.c
+M      glabels2/src/print-op.c
+M      glabels2/src/print-op.h
+M      glabels2/src/print.c
+M      glabels2/src/print.h
+M      glabels2/src/recent.c
+M      glabels2/src/recent.h
+M      glabels2/src/rotate-label-button.c
+M      glabels2/src/rotate-label-button.h
+M      glabels2/src/stock.c
+M      glabels2/src/stock.h
+M      glabels2/src/template-designer.c
+M      glabels2/src/template-designer.h
+M      glabels2/src/text-node.c
+M      glabels2/src/text-node.h
+M      glabels2/src/ui-commands.c
+M      glabels2/src/ui-commands.h
+M      glabels2/src/ui-property-bar.c
+M      glabels2/src/ui-property-bar.h
+M      glabels2/src/ui-sidebar.c
+M      glabels2/src/ui-sidebar.h
+M      glabels2/src/ui-util.c
+M      glabels2/src/ui-util.h
+M      glabels2/src/ui.c
+M      glabels2/src/ui.h
+M      glabels2/src/util.c
+M      glabels2/src/util.h
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-barcode.h
+M      glabels2/src/view-box.c
+M      glabels2/src/view-box.h
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-ellipse.h
+M      glabels2/src/view-image.c
+M      glabels2/src/view-image.h
+M      glabels2/src/view-line.c
+M      glabels2/src/view-line.h
+M      glabels2/src/view-object.c
+M      glabels2/src/view-object.h
+M      glabels2/src/view-text.c
+M      glabels2/src/view-text.h
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+M      glabels2/src/warning-handler.c
+M      glabels2/src/warning-handler.h
+M      glabels2/src/wdgt-chain-button.c
+M      glabels2/src/wdgt-chain-button.h
+M      glabels2/src/wdgt-media-select.c
+M      glabels2/src/wdgt-media-select.h
+M      glabels2/src/wdgt-merge-menu.c
+M      glabels2/src/wdgt-merge-menu.h
+M      glabels2/src/window.c
+M      glabels2/src/window.h
+M      glabels2/src/xml-label-04.c
+M      glabels2/src/xml-label-04.h
+M      glabels2/src/xml-label.c
+M      glabels2/src/xml-label.h
+
+commit 83898579197af3dbe8fecb57c729770cd7e34694
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2009-09-16
+
+    de.po: Updated German translation
+    POTFILES.in: Removed filenames which are no longer available
+
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@884
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/po/POTFILES.in
+M      glabels2/po/de.po
+
+commit a1f61988eb85f9133482e6f8fa6232600f897b1c
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-09-13
+
+    2009-09-13 Jim Evins  <evins@snaught.com>
+
+       Refactored print operation subsystem.
+
+       * src/print-op.c:
+       * src/print-op.h:
+               Basic GtkPrintOperation based class.  Does not instantiate
+               custom widgets, so it can be used by glabels-batch without
+               the additional overhead.
+       * src/print-op-dialog.c:
+       * src/print-op-dialog.h:
+               New object derived from glPrintOp.  This one is intended
+               to be used as a dialog and installs custom widgets.
+               glWdgtPrintCopies and glWdgtPrintMerge have been merged
+               into this object.
+       * src/wdgt-print-copies.c:
+       * src/wdgt-print-copies.h:
+       * src/wdgt-print-merge.c:
+       * src/wdgt-print-merge.h:
+               Deleted.
+       * src/Makefile.am:
+               Modified to reflect above additions and deletions.
+       * src/mini-preview.c: (gl_mini_preview_construct),
+       (gl_mini_preview_set_template), (set_transform_and_get_scale),
+       (button_press_event_cb), (motion_notify_event_cb), (draw):
+               Now scales with allocation.
+       * src/glabels-batch.c: (main):
+       * src/template-designer.c: (print_test_cb):
+       * src/ui-commands.c: (gl_ui_cmd_file_print):
+               Use above modifications.
+       * data/builder/print-op-dialog-custom-widget.builder:
+               New builder file for glPrintOpDialog custom widgets.
+       * data/builder/print-custom-widget.builder:
+               Deleted.
+       * data/builder/Makefile.am:
+               Modified to reflect above addition and deletion.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@883
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/builder/Makefile.am
+D      glabels2/data/builder/print-custom-widget.builder
+A      glabels2/data/builder/print-op-dialog-custom-widget.builder
+M      glabels2/src/Makefile.am
+M      glabels2/src/glabels-batch.c
+M      glabels2/src/mini-preview.c
+A      glabels2/src/print-op-dialog.c
+A      glabels2/src/print-op-dialog.h
+M      glabels2/src/print-op.c
+M      glabels2/src/print-op.h
+M      glabels2/src/template-designer.c
+M      glabels2/src/ui-commands.c
+D      glabels2/src/wdgt-print-copies.c
+D      glabels2/src/wdgt-print-copies.h
+D      glabels2/src/wdgt-print-merge.c
+D      glabels2/src/wdgt-print-merge.h
+
+commit 96a9288a2f2f9b72daf98f7a768d0e37345dcc9e
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-09-11
+
+    2009-09-10 Jim Evins  <evins@snaught.com>
+
+       * src/Makefile.am:
+       * src/mini-label-preview.c:
+       * src/mini-label-preview.h:
+               Created new glMiniLabelPreview widget to support
+               glRotateLabelButton.
+       * src/rotate-label-button.c:
+       * src/rotate-label-button.h:
+               Renamed glWdgtRotateLabel to glRotateLabelButton.
+       * src/new-label-dialog.c: (gl_new_label_dialog_construct),
+       (template_changed_cb), (gl_new_label_dialog_get_rotate_state),
+       (gl_new_label_dialog_set_rotate_state):
+               Propogated above renaming.
+       * src/mini-preview.c: (gl_mini_preview_set_template), (draw),
+       (draw_shadow), (draw_paper), (draw_labels):
+               Use GtkStyle for colors instead of hardcoded ones.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@882
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/Makefile.am
+A      glabels2/src/mini-label-preview.c
+A      glabels2/src/mini-label-preview.h
+M      glabels2/src/mini-preview.c
+M      glabels2/src/new-label-dialog.c
+A      glabels2/src/rotate-label-button.c
+A      glabels2/src/rotate-label-button.h
+D      glabels2/src/wdgt-rotate-label.c
+D      glabels2/src/wdgt-rotate-label.h
+
+commit cedd2451f2f2a5d8d3ca52c74659ce6597dce235
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-09-10
+
+    2009-09-09 Jim Evins  <evins@snaught.com>
+
+       * configure.in:
+       * Makefile.am:
+       * src/Makefile.am:
+       * src/stock-pixmaps/Makefile.am:
+       * qrencode-3.1.0/Makefile.am
+       * data/desktop/glabels.desktop.in:
+       * docs/libglabels/libglabels-decl-list.txt:
+               Various build system fixes and cleanup.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@880
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/Makefile.am
+M      glabels2/barcode-0.98/Makefile.am
+M      glabels2/configure.in
+M      glabels2/data/desktop/glabels.desktop.in
+M      glabels2/docs/libglabels/libglabels-decl-list.txt
+D      glabels2/help/C/Makefile.am
+M      glabels2/help/Makefile.am
+M      glabels2/qrencode-3.1.0/Makefile.am
+M      glabels2/src/Makefile.am
+M      glabels2/src/stock-pixmaps/Makefile.am
+
+commit 245cb815f5a040b97443fff0229afd0d74711a5c
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-09-09
+
+    2009-09-08 Jim Evins  <evins@snaught.com>
+
+       * src/font-util.c: (gl_font_util_validate_family):
+       * src/font-util.h:
+               Added gl_font_util_validate_family().
+       * src/font-combo.c: (gl_font_combo_class_init),
+       (gl_font_combo_new), (gl_font_combo_set_family):
+               Use gl_font_util_validate_family() when setting family.
+       * src/label-text.c: (set_font_family):
+       * src/prefs-dialog.c: (construct_object_page),
+       (update_object_page_from_prefs):
+       * src/ui-property-bar.c: (gl_ui_property_bar_construct),
+       (reset_to_default_properties):
+       * src/object-editor-text-page.c:
+       (gl_object_editor_prepare_text_page),
+       (gl_object_editor_set_font_family):
+               Removed code obsoleted by the addition of
+               gl_font_util_validate_family().
+       * src/color-swatch.c: (gl_color_swatch_class_init),
+       (style_set_cb),
+       (draw_swatch):
+       * src/font-sample.c: (gl_font_sample_class_init), (style_set_cb),
+       (draw_sample):
+               Added handler for style_set event.
+       * src/color-combo-button.c: (gl_color_combo_button_class_init):
+       * src/color-combo-color-menu-item.c:
+       (gl_color_combo_color_menu_item_class_init):
+       * src/color-combo-history.c: (gl_color_combo_history_class_init):
+       * src/color-combo-menu.c: (map_event_cb):
+       * src/color-combo.c: (gl_color_combo_class_init),
+       (gl_color_combo_new):
+       * src/font-combo-menu-item.c:
+       (gl_font_combo_menu_item_class_init):
+       * src/font-combo-menu.c: (gl_font_combo_menu_class_init):
+       * src/wdgt-rotate-label.c: (create_pixbuf):
+               Various cleanups -- mostly removing unused variables.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@877
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/color-combo-button.c
+M      glabels2/src/color-combo-color-menu-item.c
+M      glabels2/src/color-combo-history.c
+M      glabels2/src/color-combo-menu.c
+M      glabels2/src/color-combo.c
+M      glabels2/src/color-swatch.c
+M      glabels2/src/font-combo-menu-item.c
+M      glabels2/src/font-combo-menu.c
+M      glabels2/src/font-combo.c
+M      glabels2/src/font-sample.c
+M      glabels2/src/font-util.c
+M      glabels2/src/font-util.h
+M      glabels2/src/label-text.c
+M      glabels2/src/object-editor-text-page.c
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/ui-property-bar.c
+M      glabels2/src/wdgt-rotate-label.c
+
+commit fabfeed962240d2d0a128576218b690564470b50
+Author: Mario Blättermann <mariobl@gnome.org>
+Date:  2009-09-08
+
+    Updated German doc translation, added screenshots
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@876
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/help/de/de.po
+A      glabels2/help/de/figures/main-window-empty.png
+A      glabels2/help/de/figures/merge-ex1-1.png
+A      glabels2/help/de/figures/merge-ex1-2.png
+A      glabels2/help/de/figures/merge-ex1-3.png
+A      glabels2/help/de/figures/merge-ex1-4.png
+A      glabels2/help/de/figures/merge-ex2-1.png
+A      glabels2/help/de/figures/merge-ex2-2.png
+A      glabels2/help/de/figures/merge-ex2-3.png
+A      glabels2/help/de/figures/merge-ex2-4.png
+A      glabels2/help/de/figures/object-editor-sidebar.png
+A      glabels2/help/de/figures/print-copies.png
+A      glabels2/help/de/figures/print-merge.png
+
+commit c5a7ae0d233eb95f7ef7424f38d99ffb6a8cc555
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-09-08
+
+    2009-09-07 Jim Evins  <evins@snaught.com>
+
+       Created new glFontCombo widget family subsystem + minor
+       refinements to glColorCombo
+       widget family.
+
+       * src/color-combo-button.c:
+       * src/color-combo-button.h:
+               Renamed ColorButton to ColorComboButton.
+       * src/color.h:
+               Added GL_COLOR_WHITE macro.
+       * src/color-combo.c: (gl_color_combo_init):
+               Minor cleanup.
+       * src/Makefile.am:
+       * src/font-combo.c:
+       * src/font-combo.h:
+       * src/font-combo-menu.c:
+       * src/font-combo-menu.h:
+       * src/font-combo-menu-item.c:
+       * src/font-combo-menu-item.h:
+       * src/font-sample.c:
+       * src/font-sample.h:
+       * src/font-util.c:
+       * src/font-util.h:
+               New FontCombo subsystem.
+       * src/util.c:
+       * src/util.h:
+               Moved font functions to font-util.[ch].
+       * data/builder/object-editor.builder:
+       * data/builder/prefs-dialog.builder:
+       * data/builder/property-bar.builder:
+       * src/label-text.c: (set_font_family):
+       * src/object-editor-private.h:
+       * src/object-editor-text-page.c:
+       (gl_object_editor_prepare_text_page),
+       (gl_object_editor_set_font_family),
+       (gl_object_editor_get_font_family):
+       * src/prefs-dialog.c: (construct_object_page),
+       (update_object_page_from_prefs), (update_prefs_from_object_page):
+       * src/ui-property-bar.c: (gl_ui_property_bar_construct),
+       (reset_to_default_properties), (update_text_properties),
+       (update_fill_color), (update_line_color),
+       (font_family_changed_cb),
+       (text_color_changed_cb), (fill_color_changed_cb),
+       (line_color_changed_cb):
+               Incorporated new FontCombo subsystem.
+       * po/POTFILES.in:
+               Reconciled with above changes/additions.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@872
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/builder/object-editor.builder
+M      glabels2/data/builder/prefs-dialog.builder
+M      glabels2/data/builder/property-bar.builder
+M      glabels2/po/POTFILES.in
+M      glabels2/src/Makefile.am
+D      glabels2/src/color-button.h
+R078   glabels2/src/color-button.c     glabels2/src/color-combo-button.c
+A      glabels2/src/color-combo-button.h
+M      glabels2/src/color-combo.c
+M      glabels2/src/color.h
+A      glabels2/src/font-combo-menu-item.c
+A      glabels2/src/font-combo-menu-item.h
+A      glabels2/src/font-combo-menu.c
+A      glabels2/src/font-combo-menu.h
+C059   glabels2/src/color-combo.c      glabels2/src/font-combo.c
+A      glabels2/src/font-combo.h
+A      glabels2/src/font-sample.c
+A      glabels2/src/font-sample.h
+A      glabels2/src/font-util.c
+A      glabels2/src/font-util.h
+M      glabels2/src/label-text.c
+M      glabels2/src/object-editor-private.h
+M      glabels2/src/object-editor-text-page.c
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/ui-property-bar.c
+M      glabels2/src/util.c
+M      glabels2/src/util.h
+
+commit 40b43703976586165fbf035c0419b5c6e687efc2
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-09-06
+
+    2009-09-06 Jim Evins  <evins@snaught.com>
+
+       * src/color-button.c: (gl_color_button_finalize):
+               Unreference menu in finalize.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@871
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/color-button.c
+
+commit 036015bb9ed3b53bf85f25ed3b17a4886bdeedbc
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-09-06
+
+    Added link to glabels-commit mail list.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@870
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      web/contact/index.php
+
+commit 2e3f514405a35f35f7e29c839e2360ab924894a7
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-09-06
+
+    2009-09-06 Jim Evins  <evins@snaught.com>
+
+       Some major refinements to the glColorCombo family of widgets.
+
+       * src/Makefile.am:
+       * src/color-button.c:
+       * src/color-button.h:
+               New widget: glColorButton.  This widget is a button
+               that applies
+               the currently selected color with a ColorCombo type
+               dropdown button
+               to change that selected color.  This is basically the old
+               glColorCombo widget.
+       * src/color-combo.c: (gl_color_combo_init),
+       (gl_color_combo_finalize), (gl_color_combo_new),
+       (button_press_event_cb), (menu_color_changed_cb),
+       (menu_selection_done_cb):
+       * src/color-combo.h:
+               The glColorCombo widget has been modified to be a
+               single button
+               that is only used to change the selected color.
+       * src/color-swatch.c: (gl_color_swatch_init), (expose_event_cb):
+               Draw on parent containers window to allow an effective
+               transparency.
+       * src/object-editor-bc-page.c: (gl_object_editor_prepare_bc_page):
+       * src/object-editor-fill-page.c:
+       (gl_object_editor_prepare_fill_page):
+       * src/object-editor-line-page.c:
+       (gl_object_editor_prepare_line_page):
+       * src/object-editor-shadow-page.c:
+       (gl_object_editor_prepare_shadow_page):
+       * src/object-editor-text-page.c:
+       (gl_object_editor_prepare_text_page):
+       * src/prefs-dialog.c: (construct_object_page):
+               Change how ColorCombos are packed so that they don't
+               expand to fill hbox.
+       * src/ui-property-bar.c: (gl_ui_property_bar_construct),
+       (reset_to_default_properties), (update_text_properties),
+       (update_fill_color), (update_line_color), (text_color_changed_cb),
+       (fill_color_changed_cb), (line_color_changed_cb),
+       (set_doc_items_sensitive), (set_text_items_sensitive),
+       (set_fill_items_sensitive), (set_line_color_items_sensitive):
+               The property bar now uses the new glColorButton instead of
+               glColorCombo.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@869
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/Makefile.am
+C068   glabels2/src/color-combo.c      glabels2/src/color-button.c
+C053   glabels2/src/color-combo.h      glabels2/src/color-button.h
+M      glabels2/src/color-combo.c
+M      glabels2/src/color-combo.h
+M      glabels2/src/color-swatch.c
+M      glabels2/src/object-editor-bc-page.c
+M      glabels2/src/object-editor-fill-page.c
+M      glabels2/src/object-editor-line-page.c
+M      glabels2/src/object-editor-shadow-page.c
+M      glabels2/src/object-editor-text-page.c
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/ui-property-bar.c
+
+commit 1029782c2edff08531e703a61527eaa8a09f9633
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-09-03
+
+    2009-09-02 Jim Evins  <evins@snaught.com>
+
+       * src/Makefile.am:
+       * src/wdgt-mini-preview.c:
+       * src/wdgt-mini-preview.h:
+       * src/mini-preview.h:
+       * src/mini-preview.c:
+               - Renamed WdgtMiniPreview to MiniPreview.
+               - Style cleanup.
+               - Modified to draw to parent window to be effectively
+               transparent.
+               - Updated license notification to gpl3+.
+       * src/template-designer.c: (construct_layout_page),
+       (layout_page_prepare_cb), (layout_page_changed_cb):
+       * src/wdgt-print-copies.c: (gl_wdgt_print_copies_construct),
+       (sheets_radio_cb), (first_spin_cb), (last_spin_cb),
+       (preview_pressed):
+       * src/wdgt-print-merge.c: (gl_wdgt_print_merge_construct),
+       (spin_cb), (preview_clicked), (gl_wdgt_print_merge_set_copies):
+               - Reconciled with rename above.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@868
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/Makefile.am
+R058   glabels2/src/wdgt-mini-preview.c
+glabels2/src/mini-preview.c
+A      glabels2/src/mini-preview.h
+M      glabels2/src/template-designer.c
+D      glabels2/src/wdgt-mini-preview.h
+M      glabels2/src/wdgt-print-copies.c
+M      glabels2/src/wdgt-print-merge.c
+
+commit d780283920166f23fb7fdbe1d7f0385b692f0d4c
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-09-02
+
+    2009-09-01 Jim Evins  <evins@snaught.com>
+
+       * data/builder/object-editor.builder:
+               Fixed errant expansion of tab.
+       * src/bc-gnubarcode.c: (gl_barcode_gnubarcode_new):
+       * src/bc-postnet.c: (gl_barcode_postnet_new):
+       * src/bc.c: (id_to_index), (name_to_index):
+       * src/label-barcode.c: (gl_label_barcode_set_props):
+       * src/label-text.c: (set_font_family):
+       * src/merge-properties-dialog.c:
+       (gl_merge_properties_dialog_construct):
+       * src/merge.c: (gl_merge_description_to_name):
+       * src/new-label-dialog.c:
+       * src/object-editor-edit-page.c:
+       * src/object-editor-image-page.c: (update_preview_cb):
+       * src/object-editor-lsize-page.c:
+       * src/object-editor-position-page.c:
+       * src/object-editor-size-page.c:
+       * src/object-editor.c: (gl_object_editor_new):
+       * src/prefs-dialog.c: (update_locale_page_from_prefs):
+       * src/prefs-model.c: (string_to_units):
+       * src/print-op.c: (create_custom_widget_cb):
+       * src/template-designer.c: (gl_template_designer_init),
+       (pg_size_page_changed_cb), (build_template):
+       * src/ui-commands.c: (gl_ui_cmd_help_about):
+       * src/xml-label.c: (xml_parse_pixdata):
+               Fixed various deprecations as of Gtk-2.16.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@867
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/builder/object-editor.builder
+M      glabels2/src/bc-gnubarcode.c
+M      glabels2/src/bc-postnet.c
+M      glabels2/src/bc.c
+M      glabels2/src/label-barcode.c
+M      glabels2/src/label-text.c
+M      glabels2/src/merge-properties-dialog.c
+M      glabels2/src/merge.c
+M      glabels2/src/new-label-dialog.c
+M      glabels2/src/object-editor-edit-page.c
+M      glabels2/src/object-editor-image-page.c
+M      glabels2/src/object-editor-lsize-page.c
+M      glabels2/src/object-editor-position-page.c
+M      glabels2/src/object-editor-size-page.c
+M      glabels2/src/object-editor.c
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/prefs-model.c
+M      glabels2/src/print-op.c
+M      glabels2/src/template-designer.c
+M      glabels2/src/ui-commands.c
+M      glabels2/src/xml-label.c
+
+commit 7bc8e820df3c2380479df0f93601466d981e2295
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-09-02
+
+    Adding missing Changelog and removed files that should not have been
+    checked in.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@866
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+A      glabels2/qrencode-3.1.0/ChangeLog
+D      glabels2/qrencode-3.1.0/Makefile
+D      glabels2/qrencode-3.1.0/Makefile.in
+
+commit 6f54e1fc51bfe8c0cbe60ab7c321320eda020323
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-09-01
+
+    2009-08-31 Jim Evins  <evins@snaught.com>
+
+       * po/fr.po:
+               Updated french translation (Claude Paroz)
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@865
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/po/fr.po
+
+commit d701d4f532af82224b880a18ab89cb8d6c1f65fa
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-09-01
+
+    2009-08-31 Jim Evins  <evins@snaught.com>
+
+       * data/builder/property-bar.builder:
+               Make sure event box does not obscure tool bar background.
+       * src/Makefile.am:
+       * src/color-swatch.c:
+       * src/color-swatch.h:
+               New color swatch widget.
+       * src/color-combo-color-menu-item.c:
+       (gl_color_combo_color_menu_item_init),
+       (gl_color_combo_color_menu_item_new),
+       (gl_color_combo_color_menu_item_set_color):
+       * src/color-combo.c: (gl_color_combo_init),
+       (gl_color_combo_finalize), (gl_color_combo_new),
+       (gl_color_combo_set_color), (menu_color_changed_cb):
+               Updated to use new color swatch widget.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@863
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/builder/property-bar.builder
+M      glabels2/src/Makefile.am
+M      glabels2/src/color-combo-color-menu-item.c
+M      glabels2/src/color-combo.c
+A      glabels2/src/color-swatch.c
+A      glabels2/src/color-swatch.h
+
+commit 216c039e5797b6c3bada83668ec7227728a070f3
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-08-27
+
+    2009-08-26 Jim Evins  <evins@snaught.com>
+
+       * po/POTFILES.in:
+               Explicitely mark file types.  Removed unneeded file from
+               libbarcode.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@862
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/po/POTFILES.in
+
+commit cbfdf9f8ce58c238a8eb5535c617599ad5570d1f
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-08-23
+
+    2009-08-23 Jim Evins  <evins@snaught.com>
+
+       * data/builder/Makefile.am:
+       * data/builder/merge-properties-dialog.builder:
+       * data/builder/merge-properties-dialog.glade:
+       * data/builder/new-label-dialog.builder:
+       * data/builder/new-label-dialog.glade:
+       * data/builder/object-editor.builder:
+       * data/builder/object-editor.glade:
+       * data/builder/prefs-dialog.builder:
+       * data/builder/prefs-dialog.glade:
+       * data/builder/print-custom-widget.builder:
+       * data/builder/print-custom-widget.glade:
+       * data/builder/property-bar.builder:
+       * data/builder/property-bar.glade:
+       * data/builder/template-designer.builder:
+       * data/builder/template-designer.glade:
+       * data/builder/wdgt-media-select.builder:
+       * data/builder/wdgt-media-select.glade:
+       * po/POTFILES.in:
+       * src/merge-properties-dialog.c:
+       (gl_merge_properties_dialog_finalize),
+       (gl_merge_properties_dialog_construct):
+       * src/new-label-dialog.c: (gl_new_label_dialog_finalize),
+       (gl_new_label_dialog_construct):
+       * src/object-editor-bc-page.c: (gl_object_editor_prepare_bc_page):
+       * src/object-editor-data-page.c:
+       (gl_object_editor_prepare_data_page):
+       * src/object-editor-edit-page.c:
+       (gl_object_editor_prepare_edit_page):
+       * src/object-editor-fill-page.c:
+       (gl_object_editor_prepare_fill_page):
+       * src/object-editor-image-page.c:
+       (gl_object_editor_prepare_image_page):
+       * src/object-editor-line-page.c:
+       (gl_object_editor_prepare_line_page):
+       * src/object-editor-lsize-page.c:
+       (gl_object_editor_prepare_lsize_page):
+       * src/object-editor-position-page.c:
+       (gl_object_editor_prepare_position_page):
+       * src/object-editor-private.h:
+       * src/object-editor-shadow-page.c:
+       (gl_object_editor_prepare_shadow_page):
+       * src/object-editor-size-page.c:
+       (gl_object_editor_prepare_size_page):
+       * src/object-editor-text-page.c:
+       (gl_object_editor_prepare_text_page):
+       * src/object-editor.c: (gl_object_editor_init),
+       (gl_object_editor_finalize):
+       * src/prefs-dialog.c: (gl_prefs_dialog_init),
+       (gl_prefs_dialog_finalize), (gl_prefs_dialog_construct),
+       (construct_locale_page), (construct_object_page):
+       * src/print-op.c: (gl_print_op_finalize),
+       (gl_print_op_set_settings), (create_custom_widget_cb):
+       * src/template-designer.c: (gl_template_designer_init),
+       (gl_template_designer_finalize), (construct_start_page),
+       (construct_name_page), (construct_pg_size_page),
+       (construct_shape_page), (construct_rect_size_page),
+       (construct_round_size_page), (construct_cd_size_page),
+       (construct_nlayouts_page), (construct_layout_page),
+       (construct_finish_page):
+       * src/ui-property-bar.c: (gl_ui_property_bar_finalize),
+       (gl_ui_property_bar_construct):
+       * src/wdgt-media-select.c: (gl_wdgt_media_select_finalize),
+       (gl_wdgt_media_select_construct):
+               Builder files no longer built from glade files.
+               Also did some
+               cleanup on formatting and update license notifications
+               to GPL3+.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@861
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/builder/Makefile.am
+A      glabels2/data/builder/merge-properties-dialog.builder
+D      glabels2/data/builder/merge-properties-dialog.glade
+A      glabels2/data/builder/new-label-dialog.builder
+D      glabels2/data/builder/new-label-dialog.glade
+A      glabels2/data/builder/object-editor.builder
+D      glabels2/data/builder/object-editor.glade
+A      glabels2/data/builder/prefs-dialog.builder
+D      glabels2/data/builder/prefs-dialog.glade
+A      glabels2/data/builder/print-custom-widget.builder
+D      glabels2/data/builder/print-custom-widget.glade
+A      glabels2/data/builder/property-bar.builder
+D      glabels2/data/builder/property-bar.glade
+A      glabels2/data/builder/template-designer.builder
+D      glabels2/data/builder/template-designer.glade
+A      glabels2/data/builder/wdgt-media-select.builder
+D      glabels2/data/builder/wdgt-media-select.glade
+M      glabels2/po/POTFILES.in
+M      glabels2/src/merge-properties-dialog.c
+M      glabels2/src/new-label-dialog.c
+M      glabels2/src/object-editor-bc-page.c
+M      glabels2/src/object-editor-data-page.c
+M      glabels2/src/object-editor-edit-page.c
+M      glabels2/src/object-editor-fill-page.c
+M      glabels2/src/object-editor-image-page.c
+M      glabels2/src/object-editor-line-page.c
+M      glabels2/src/object-editor-lsize-page.c
+M      glabels2/src/object-editor-position-page.c
+M      glabels2/src/object-editor-private.h
+M      glabels2/src/object-editor-shadow-page.c
+M      glabels2/src/object-editor-size-page.c
+M      glabels2/src/object-editor-text-page.c
+M      glabels2/src/object-editor.c
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/print-op.c
+M      glabels2/src/template-designer.c
+M      glabels2/src/ui-property-bar.c
+M      glabels2/src/wdgt-media-select.c
+
+commit 6f1394ef48f3a3fd4efb06247cced9db2fdb6d54
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-08-14
+
+    2009-08-13 Jim Evins  <evins@snaught.com>
+
+       * src/color-combo-color-menu-item.c:
+       (gl_color_combo_color_menu_item_init),
+       (gl_color_combo_color_menu_item_new),
+       (gl_color_combo_color_menu_item_set_color):
+               Explicitly request size of menu item and enlarge color
+               swatch.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@860
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/color-combo-color-menu-item.c
+
+commit 29355781ab15fccd774aba068d4965f07d75f8ca
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-08-14
+
+    Fixed typo in header.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@859
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      web/common_php.inc
+
+commit 6f7963a0bf6a6e0c6dac3d94475cd56c71b220bf
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-08-12
+
+    2009-08-12 Jim Evins  <evins@snaught.com>
+
+       * src/label-text.c: (buffer_changed_cb), (draw_object),
+       (draw_shadow), (draw_text_real):
+       * src/label-text.h:
+               Moved common code from draw_object() and draw_shadow() to
+               draw_text_real().  Also cleaned up formatting and updated
+               license notification to GPL3+.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@858
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/label-text.c
+M      glabels2/src/label-text.h
+
+commit ef5fdef2965be8977c6814148d1fe6241be8b446
+Author: Alexandre Prokoudine <alexandre.prokoudine@gmail.com>
+Date:  2009-07-29
+
+    Updated and fixed Russian translation
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@857
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/po/ru.po
+
+commit 2d2bbdf3aadf183a122a7e26f39a2e10814edaa9
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-07-27
+
+    2009-07-26 Jim Evins  <evins@snaught.com>
+
+       * AUTHORS:
+       * COPYING.README_FIRST:
+       * Makefile.am:
+       * configure.in:
+       * qrencode-3.1.0/*
+               Added 3rd party qrencode library.
+       * src/Makefile.am:
+       * src/bc-iec18004.c: (gl_barcode_iec18004_new), (render_iec18004):
+       * src/bc-iec18004.h:
+       * src/bc.c:
+               Added IEC18004 (QRCode) 2 dimensional barcode backend.
+               Patch provided by Daniel Mueller <daniel@danm.de>.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@856
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/COPYING.README_FIRST
+M      glabels2/ChangeLog
+M      glabels2/Makefile.am
+M      glabels2/configure.in
+M      glabels2/gtk-doc.make
+A      glabels2/qrencode-3.1.0/COPYING
+A      glabels2/qrencode-3.1.0/Doxyfile
+A      glabels2/qrencode-3.1.0/Makefile
+A      glabels2/qrencode-3.1.0/Makefile.am
+A      glabels2/qrencode-3.1.0/Makefile.am.dist
+A      glabels2/qrencode-3.1.0/Makefile.in
+A      glabels2/qrencode-3.1.0/Makefile.in.dist
+A      glabels2/qrencode-3.1.0/NEWS
+A      glabels2/qrencode-3.1.0/README
+A      glabels2/qrencode-3.1.0/README.glabels
+A      glabels2/qrencode-3.1.0/TODO
+A      glabels2/qrencode-3.1.0/acinclude.m4
+A      glabels2/qrencode-3.1.0/aclocal.m4
+A      glabels2/qrencode-3.1.0/autogen.sh
+A      glabels2/qrencode-3.1.0/bitstream.c
+A      glabels2/qrencode-3.1.0/bitstream.h
+A      glabels2/qrencode-3.1.0/config.h.in
+A      glabels2/qrencode-3.1.0/configure
+A      glabels2/qrencode-3.1.0/configure.ac.dist
+A      glabels2/qrencode-3.1.0/libqrencode.pc.in
+A      glabels2/qrencode-3.1.0/mask.c
+A      glabels2/qrencode-3.1.0/mask.h
+A      glabels2/qrencode-3.1.0/qrenc.c
+A      glabels2/qrencode-3.1.0/qrencode.1.in
+A      glabels2/qrencode-3.1.0/qrencode.c
+A      glabels2/qrencode-3.1.0/qrencode.h
+A      glabels2/qrencode-3.1.0/qrencode.spec
+A      glabels2/qrencode-3.1.0/qrencode.spec.in
+A      glabels2/qrencode-3.1.0/qrencode_inner.h
+A      glabels2/qrencode-3.1.0/qrinput.c
+A      glabels2/qrencode-3.1.0/qrinput.h
+A      glabels2/qrencode-3.1.0/qrspec.c
+A      glabels2/qrencode-3.1.0/qrspec.h
+A      glabels2/qrencode-3.1.0/rscode.c
+A      glabels2/qrencode-3.1.0/rscode.h
+A      glabels2/qrencode-3.1.0/split.c
+A      glabels2/qrencode-3.1.0/split.h
+A      glabels2/qrencode-3.1.0/tests/Makefile.am
+A      glabels2/qrencode-3.1.0/tests/Makefile.in
+A      glabels2/qrencode-3.1.0/tests/common.h
+A      glabels2/qrencode-3.1.0/tests/create_frame_pattern.c
+A      glabels2/qrencode-3.1.0/tests/frame
+A      glabels2/qrencode-3.1.0/tests/prof_qrencode.c
+A      glabels2/qrencode-3.1.0/tests/test_all.sh
+A      glabels2/qrencode-3.1.0/tests/test_bitstream.c
+A      glabels2/qrencode-3.1.0/tests/test_estimatebit.c
+A      glabels2/qrencode-3.1.0/tests/test_monkey.c
+A      glabels2/qrencode-3.1.0/tests/test_qrencode.c
+A      glabels2/qrencode-3.1.0/tests/test_qrinput.c
+A      glabels2/qrencode-3.1.0/tests/test_qrspec.c
+A      glabels2/qrencode-3.1.0/tests/test_rs.c
+A      glabels2/qrencode-3.1.0/tests/test_split.c
+A      glabels2/qrencode-3.1.0/tests/view_qrcode.c
+A      glabels2/qrencode-3.1.0/use/compile
+A      glabels2/qrencode-3.1.0/use/config.guess
+A      glabels2/qrencode-3.1.0/use/config.sub
+A      glabels2/qrencode-3.1.0/use/depcomp
+A      glabels2/qrencode-3.1.0/use/install-sh
+A      glabels2/qrencode-3.1.0/use/ltmain.sh
+A      glabels2/qrencode-3.1.0/use/missing
+M      glabels2/src/Makefile.am
+A      glabels2/src/bc-iec18004.c
+A      glabels2/src/bc-iec18004.h
+M      glabels2/src/bc.c
+
+commit eedb5bf0e10f9fa4feb1137381f2aa2e5cf33f28
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-07-26
+
+    2009-07-25 Jim Evins  <evins@snaught.com>
+
+       * src/xml-label.c: (gl_xml_label_open):
+               Relax limits when parsing file.  Allows large embedded
+               image
+               files.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@855
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/xml-label.c
+
+commit 568ea135699a47a3286106356fb9928ad10adc5f
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-07-20
+
+    Added compiling-from-source directions.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@854
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      web/doc/index.php
+A      web/doc/install-src/index.php
+M      web/download/index.php
+M      web/index.php
+M      web/links/index.php
+M      web/news/index.php
+
+commit 0e0af532e4b99123832cefa84e54d395c949f336
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-05-20
+
+    2009-05-19 Jim Evins  <evins@purple>
+
+       * configure.in:
+       * po/LINGUAS:
+               Moved translation list from configure.in to po/LINGUAS.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@852
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+A      glabels2/po/LINGUAS
+
+commit de5160282bb632146ffe6810f845dcea4cb22e2f
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-05-20
+
+    2009-05-19 Jim Evins  <evins@snaught.com>
+
+       * configure.in:
+       * po/zh_CN.po:
+               New Chinese translation (Careon
+               <zzbusagain@yahoo.com.cn>).
+       * AUTHORS:
+               Added above translation to acknowledgements.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@851
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+A      glabels2/po/zh_CN.po
+
+commit fac890372fff6be2410f3d0bac332fac8aba3c76
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-05-18
+
+    2009-05-18 Jim Evins  <evins@snaught.com>
+
+       * src/prefs-model.c: (gl_prefs_model_load_settings):
+               Make an educated guess at locale settings when run for the
+               first time.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@849
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/prefs-model.c
+
+commit 6fb8d93a2091a644e15ce3b2a8760a037aa1f224
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-05-18
+
+    2009-05-17 Jim Evins  <evins@snaught.com>
+
+       * help/de/de.po:
+       * help/glabels.omf.in:
+               Adding missing files from last checkin.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@846
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+D      glabels2/help/C/glabels-C.omf
+A      glabels2/help/de/de.po
+A      glabels2/help/glabels.omf.in
+
+commit 37a920e876ef4e7c019554be12caec3ff17bd030
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-05-18
+
+    2009-05-17 Jim Evins  <evins@snaught.com>
+
+       * Makefile.am:
+       * configure.in:
+       * help/C/glabels-C.omf:
+       * help/C/glabels.xml:
+       * help/Makefile.am:
+       * po/de.po:
+               Updated german translation, gnome-doc-utils support and
+               german translation of glabels manual (Mario Blättermann).
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@845
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/Makefile.am
+M      glabels2/configure.in
+M      glabels2/help/C/glabels-C.omf
+M      glabels2/help/C/glabels.xml
+M      glabels2/help/Makefile.am
+M      glabels2/po/de.po
+
+commit dd9de9b237713197a38a600b167e2463f8391a25
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-05-02
+
+    2009-05-01 Jim Evins  <evins@purple>
+
+       * AUTHORS:
+       * configure.in:
+       * po/ca.po:
+               Added catalan translation (David Planella).
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@843
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+A      glabels2/po/ca.po
+
+commit 53eaba2de44181026372fd2e512021ff4ab01ac6
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-04-30
+
+    2009-04-29 Jim Evins  <evins@purple>
+
+       * data/templates/avery-iso-templates.xml:
+       * data/templates/misc-iso-templates.xml:
+       * data/templates/misc-us-templates.xml:
+               Caught up on user submitted templates.
+       * AUTHORS:
+               Acknowledgements for above templates.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@838
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/data/templates/avery-iso-templates.xml
+M      glabels2/data/templates/misc-iso-templates.xml
+M      glabels2/data/templates/misc-us-templates.xml
+
+commit 88df0a84494022b59684c6fc997fcc001905cffc
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-04-30
+
+    2009-04-29 Jim Evins  <evins@purple>
+
+       * po/POTFILES.in:
+       * po/de.po:
+               Updated german translation (Mario Blättermann).
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@835
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+D      glabels2/po/ChangeLog
+M      glabels2/po/POTFILES.in
+M      glabels2/po/de.po
+
+commit 3d49690351c8f4fa5a46e15208a71e26de9e045e
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-04-20
+
+    Updated links.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@832
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      web/links/index.php
+
+commit 80018e80624e22e2d44239f4fd07401acfbb19ad
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-04-12
+
+    Website updates.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@831
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      web/download/index.php
+M      web/links/index.php
+
+commit 27432959aa92808be3edff2a3317cad6341f57ec
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-03-25
+
+    Added links to getdeb packages.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@830
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      web/download/index.php
+M      web/links/index.php
+
+commit a861bd74a69cf6163be77d42e0d888f55e2aba4b
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-03-23
+
+    2009-03-23 Jim Evins  <evins@snaught.com>
+
+       * src/glabels-batch.c: (main):
+       * src/glabels.c: (main):
+               Tidy up help option output.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@829
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/glabels-batch.c
+M      glabels2/src/glabels.c
+
+commit 4aad2f4999b238fe83a47ea51e1f2b0b24ac7fb8
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-02-28
+
+    2009-02-28 Jim Evins  <evins@snaught.com>
+
+       reviewed by: <delete if not using a buddy>
+
+       * src/Makefile.am:
+       * src/base64.c:
+       * src/base64.h:
+               Deleted base64 module.
+       * src/xml-label.c: (xml_parse_pixdata), (xml_create_pixdata):
+               Use glib for base64 support.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@828
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/Makefile.am
+D      glabels2/src/base64.c
+D      glabels2/src/base64.h
+M      glabels2/src/xml-label.c
+
+commit 7c94e09d4f2968f4699ed6b91f5dbfd18d43ff1a
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-02-23
+
+    2009-02-22 Jim Evins  <evins@snaught.com>
+
+       * src/merge-properties-dialog.h:
+       * src/new-label-dialog.h:
+       * src/object-editor.h:
+       * src/prefs-dialog.h:
+       * src/print-op.h:
+       * src/template-designer.h:
+               Corrected cut&paste errors.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@827
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/merge-properties-dialog.h
+M      glabels2/src/new-label-dialog.h
+M      glabels2/src/object-editor.h
+M      glabels2/src/prefs-dialog.h
+M      glabels2/src/print-op.h
+M      glabels2/src/template-designer.h
+
+commit 4e719ff243581797720031f50cfa33c835552931
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-02-22
+
+    2009-02-21 JimEvins  <evins@snaught.com>
+
+       * src/prefs-model.c: (gl_prefs_model_save_settings),
+       (gl_prefs_model_load_settings):
+       * src/prefs-model.h:
+       * src/ui-commands.c:
+       * src/ui-property-bar.c:
+       * src/ui.c: (view_ui_item_toggled_cb),
+       (set_app_main_toolbar_style), (set_app_drawing_toolbar_style):
+               Removed tooltip toggling capability, which wasn't working
+               anyway.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@826
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/prefs-model.c
+M      glabels2/src/prefs-model.h
+M      glabels2/src/ui-commands.c
+M      glabels2/src/ui-property-bar.c
+M      glabels2/src/ui.c
+
+commit e66208f5c1f1573ab4aa75e0fb734d01ab2688bf
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-02-21
+
+    2009-02-21 JimEvins  <evins@snaught.com>
+
+       * README:
+       * configure.in:
+       * data/builder/object-editor.glade:
+       * data/builder/prefs-dialog.glade:
+       * data/builder/property-bar.glade:
+       * data/builder/template-designer.glade:
+       * gtk-doc.make:
+       * src/color-combo-color-menu-item.c:
+       * src/color-combo-color-menu-item.h:
+       * src/color-combo-menu.h:
+       * src/glabels-batch.c: (main):
+       * src/glabels.c: (main):
+       * src/merge-properties-dialog.h:
+       * src/new-label-dialog.h:
+       * src/object-editor-lsize-page.c:
+       (gl_object_editor_prepare_lsize_page), (lsize_prefs_changed_cb):
+       * src/object-editor.h:
+       * src/prefs-dialog.h:
+       * src/print-op.h:
+       * src/template-designer.h:
+       * src/ui-commands.c: (gl_ui_cmd_view_property_bar_tips_toggle),
+       (gl_ui_cmd_help_contents), (gl_ui_cmd_help_about):
+       * src/ui-property-bar.c:
+       * src/ui-property-bar.h:
+       * src/ui-sidebar.c: (gl_ui_sidebar_construct),
+       (selection_changed_cb):
+       * src/ui-sidebar.h:
+       * src/view.h:
+       * src/wdgt-media-select.h:
+       * src/wdgt-merge-menu.h:
+       * src/wdgt-mini-preview.c: (gl_wdgt_mini_preview_class_init):
+       * src/wdgt-mini-preview.h:
+       * src/wdgt-print-copies.c: (gl_wdgt_print_copies_construct):
+       * src/wdgt-print-copies.h:
+       * src/wdgt-print-merge.c: (gl_wdgt_print_merge_construct):
+       * src/wdgt-print-merge.h:
+       * src/wdgt-rotate-label.h:
+       * src/window.h:
+               Removed final dependencies on libgnome and libgnomeui.
+               Removed all currently deprecated symbols as of GTK 2.14.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@825
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/README
+M      glabels2/configure.in
+M      glabels2/data/builder/object-editor.glade
+M      glabels2/data/builder/prefs-dialog.glade
+M      glabels2/data/builder/property-bar.glade
+M      glabels2/data/builder/template-designer.glade
+M      glabels2/gtk-doc.make
+M      glabels2/src/color-combo-color-menu-item.c
+M      glabels2/src/color-combo-color-menu-item.h
+M      glabels2/src/color-combo-menu.h
+M      glabels2/src/glabels-batch.c
+M      glabels2/src/glabels.c
+M      glabels2/src/merge-properties-dialog.h
+M      glabels2/src/new-label-dialog.h
+M      glabels2/src/object-editor-lsize-page.c
+M      glabels2/src/object-editor.h
+M      glabels2/src/prefs-dialog.h
+M      glabels2/src/print-op.h
+M      glabels2/src/template-designer.h
+M      glabels2/src/ui-commands.c
+M      glabels2/src/ui-property-bar.c
+M      glabels2/src/ui-property-bar.h
+M      glabels2/src/ui-sidebar.c
+M      glabels2/src/ui-sidebar.h
+M      glabels2/src/view.h
+M      glabels2/src/wdgt-media-select.h
+M      glabels2/src/wdgt-merge-menu.h
+M      glabels2/src/wdgt-mini-preview.c
+M      glabels2/src/wdgt-mini-preview.h
+M      glabels2/src/wdgt-print-copies.c
+M      glabels2/src/wdgt-print-copies.h
+M      glabels2/src/wdgt-print-merge.c
+M      glabels2/src/wdgt-print-merge.h
+M      glabels2/src/wdgt-rotate-label.h
+M      glabels2/src/window.h
+
+commit 3d4a88e43b50dc93d7a5159c7655204c98ecdd6e
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-02-11
+
+    Make sure all pages still validate.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@824
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      web/common_php.inc
+M      web/contact/index.php
+M      web/download/index.php
+M      web/faq/index.php
+M      web/index.php
+M      web/news/index.php
+
+commit 785f385b0a34cb02732bbd48d483988c75a0c651
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-01-08
+
+    2009-01-07 Jim Evins  <evins@snaught.com>
+
+       * src/critical-error-handler.c: (critical_error_handler):
+       * src/ui-commands.c: (gl_ui_cmd_help_contents):
+       * src/warning-handler.c: (warning_handler):
+       * src/view.c: (selection_received_cb):
+               Compile without warning with additional CFLAGS of
+               -O1 -Wall -Wformat=2.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@823
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/critical-error-handler.c
+M      glabels2/src/ui-commands.c
+M      glabels2/src/view.c
+M      glabels2/src/warning-handler.c
+
+commit dc8b4a0f9fe720d384aaaf4811a8a990c3a7bbda
+Author: Jim Evins <evins@snaught.com>
+Date:  2009-01-03
+
+    2009-01-02 Jim Evins  <evins@snaught.com>
+
+       * COPYING.README_FIRST:
+               Fixed typo.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@821
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/COPYING.README_FIRST
+M      glabels2/ChangeLog
+
+commit fc11548527b8363cf1595da581fd46a6574f4116
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-12-28
+
+    2008-12-27 Jim Evins  <evins@snaught.com>
+
+       * data/templates/avery-iso-templates.xml:
+       * data/templates/avery-other-templates.xml:
+       * data/templates/avery-us-templates.xml:
+       * data/templates/brother-other-templates.xml:
+       * data/templates/misc-iso-templates.xml:
+       * data/templates/misc-other-templates.xml:
+       * data/templates/zweckform-iso-templates.xml:
+               Make sure all descriptions are marked as translatable.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@819
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/templates/avery-iso-templates.xml
+M      glabels2/data/templates/avery-other-templates.xml
+M      glabels2/data/templates/avery-us-templates.xml
+M      glabels2/data/templates/brother-other-templates.xml
+M      glabels2/data/templates/misc-iso-templates.xml
+M      glabels2/data/templates/misc-other-templates.xml
+M      glabels2/data/templates/zweckform-iso-templates.xml
+
+commit 4d4d318a5e7b1a78263d289bae0c41fda99d74b2
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-12-28
+
+    2008-12-27 Jim Evins  <evins@snaught.com>
+
+       * de.po:
+               Updated german translation (Mario Blättermann)
+       * AUTHORS:
+               Updated credits to reflect above translation.
+       * data/builder/object-editor.glade:
+       * data/builder/prefs-dialog.glade:
+       * data/builder/template-designer.glade:
+               Removed "translatable" attribute from whitespace strings,
+               which are used only to help layout.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@817
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/data/builder/object-editor.glade
+M      glabels2/data/builder/prefs-dialog.glade
+M      glabels2/data/builder/template-designer.glade
+M      glabels2/po/de.po
+
+commit 324bdb14055546411bd9909753677fa91b22a4c4
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-12-22
+
+    Release 2.2.4
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@815
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      web/download/index.php
+M      web/index.php
+M      web/news/index.php
+
+commit c5c822b536c68e3820e2d435634f1c4407ede1e9
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-12-22
+
+    2008-12-21 Jim Evins  <evins@snaught.com>
+
+       * data/templates/avery-us-templates.xml:
+       * data/templates/misc-iso-templates.xml:
+               A couple of recent template submissions.
+       * AUTHORS:
+               Acknowledgements for above templates.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@811
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/data/templates/avery-us-templates.xml
+M      glabels2/data/templates/misc-iso-templates.xml
+
+commit 7f533d981565aecf7c4ec7f47743b5197e4ea2af
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-12-21
+
+    2008-12-21 Jim Evins  <evins@snaught.com>
+
+       * src/view.c: (motion_notify_event_cb), (button_press_event_cb):
+               Don't check for handles on aggregate selections.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@809
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/view.c
+
+commit 1da3c68162b4aa96021c1d51d6dece3a630a968a
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-12-21
+
+    Updated development version requirements.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@807
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      web/download/index.php
+
+commit 43adc6cb0e93d294807ff2a6b0e180807983d7da
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-12-20
+
+    2008-12-20 Jim Evins  <evins@snaught.com>
+
+       * configure.in:
+               Updated prerequisite library versions required.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@806
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+
+commit 60afedc9a3de0a1de48b79664299f71384ca2a25
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-12-19
+
+    Updated FAQ.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@805
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      web/faq/index.php
+
+commit 5f5fc0b681e7db77307f05ee7fcc7e2236f12467
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-12-19
+
+    2008-12-18 Jim Evins  <evins@snaught.com>
+
+       * src/view.c: (selection_received_cb):
+               Fixed paste bug that caused a duplicate phantom
+               view_object to be created for
+               each new label_object.  This is because the view now
+               (as of r673) the view
+               monitiors the label for new objects and creates
+               view_objects automatically.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@804
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/view.c
+
+commit 31bd44a96ae5c7f2687d2c37f037a386a087ad17
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-12-15
+
+    2008-12-14 Jim Evins  <evins@snaught.com>
+
+       * src/ui.c: (gl_ui_new):
+               Bug #2395628.  Fixed i18n for application shell.
+       * po/POTFILES.in:
+               Bug #2395628.  Reconciled POTFILES.in with current files.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@801
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/po/POTFILES.in
+M      glabels2/src/ui.c
+
+commit 65526d446c2fcef33bd5f786601e312e566b6de9
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-12-15
+
+    2008-12-14 Jim Evins  <evins@snaught.com>
+
+       * configure.in:
+               Bug #2316013.  Added PKG_PROG_PKG_CONFIG.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@799
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+
+commit ae5381bcfb4cfef51379bdd7df40fd461aa0f0d5
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-12-01
+
+    Added link to another linux.com artical.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@797
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      web/links/index.php
+
+commit f76b27f1dae279463613e58ea6082f6a6711d2e5
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-11-16
+
+    2008-11-15 Jim Evins  <evins@snaught.com>
+
+       * libglabels/db.c: (lgl_db_register_template):
+       * libglabels/xml-template.c:
+       (lgl_xml_template_parse_template_node):
+       * src/glabels-batch.c:
+       * src/view-text.c: (gl_view_text_create_button_press_event):
+               Fixed several issues such as possible use of uninitialized
+               variables found with "-O1 -Wall".
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@796
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/libglabels/db.c
+M      glabels2/libglabels/xml-template.c
+M      glabels2/src/glabels-batch.c
+M      glabels2/src/view-text.c
+
+commit b8f1816d53df85e2234b374bf64bbd84249fe667
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-11-10
+
+    2008-11-09 Jim Evins  <evins@snaught.com>
+
+       * data/templates/misc-iso-templates.xml:
+               Another user submitted template.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@794
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/templates/misc-iso-templates.xml
+
+commit 20ce4c33fcd64fecba7e403f127ba0c42743c397
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-10-31
+
+    Added link to nice blog.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@792
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      web/links/index.php
+
+commit 263be22ce938c604d9de9a20650bcef888f720fd
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-10-31
+
+    Website changes from last release.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@791
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      web/download/index.php
+M      web/index.php
+M      web/news/index.php
+
+commit 3a0de14d527a044a6ab3f67436df74e4fb5b5c7c
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-10-28
+
+    2008-10-27 Jim Evins  <evins@snaught.com>
+
+       * data/templates/avery-us-templates.xml:
+       * data/templates/misc-iso-templates.xml:
+       * data/templates/zweckform-iso-templates.xml:
+               Caught up on user submitted templates.
+       * AUTHORS:
+               Acknowledgements for above templates.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@790
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/data/templates/avery-us-templates.xml
+M      glabels2/data/templates/misc-iso-templates.xml
+M      glabels2/data/templates/zweckform-iso-templates.xml
+
+commit c9e2de5f7326b9bd172268da0584d6c6e31a7e03
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-10-24
+
+    2008-10-23 Jim Evins  <evins@snaught.com>
+
+       * src/label-text.c: (set_font_family):
+       * src/object-editor-text-page.c:
+       (gl_object_editor_prepare_text_page),
+       (gl_object_editor_set_font_family):
+       * src/prefs-dialog.c: (construct_object_page),
+       (update_object_page_from_prefs):
+       * src/ui-property-bar.c: (gl_ui_property_bar_construct),
+       (reset_to_default_properties):
+       * src/util.c: (gl_util_get_font_family_list):
+       * src/util.h:
+               Bug #1902275 and Bug #2186214.  Cache font list so that
+               it is not re-created
+               everytime the list is requested.
+       * src/object-editor-text-page.c:
+       (gl_object_editor_set_font_family):
+               Don't change font-family if it hasn't actually changed.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@788
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/label-text.c
+M      glabels2/src/object-editor-text-page.c
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/ui-property-bar.c
+M      glabels2/src/util.c
+M      glabels2/src/util.h
+
+commit dbd84afd35a3b583955817558d598183eadec95f
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-10-20
+
+    2008-10-19 Jim Evins  <evins@snaught.com>
+
+       * data/builder/object-editor.glade:
+               Some tweaking of builder/glade widgets.
+
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@786
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/builder/object-editor.glade
+
+commit 0dc8ff1f3ef7c7659bc25f59d9a3e364d9214746
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-10-18
+
+    2008-10-18 Jim Evins  <evins@snaught.com>
+
+       Migrated all use of libglade to GtkBuilder.
+
+       * data/glade/Makefile.am:
+       * data/glade/merge-properties-dialog.glade:
+       * data/glade/new-label-dialog.glade:
+       * data/glade/object-editor.glade:
+       * data/glade/prefs-dialog.glade:
+       * data/glade/print-custom-widget.glade:
+       * data/glade/property-bar.glade:
+       * data/glade/template-designer.glade:
+       * data/glade/wdgt-media-select.glade:
+               Removed data/glade directory.
+       * data/builder/Makefile.am:
+       * data/builder/merge-properties-dialog.glade:
+       * data/builder/new-label-dialog.glade:
+       * data/builder/object-editor.glade:
+       * data/builder/prefs-dialog.glade:
+       * data/builder/print-custom-widget.glade:
+       * data/builder/property-bar.glade:
+       * data/builder/template-designer.glade:
+       * data/builder/wdgt-media-select.glade:
+               Added data/builder directory.
+       * configure.in:
+       * data/Makefile.am:
+       * src/Makefile.am:
+               Change glade to builder.
+       * src/merge-properties-dialog.c:
+       (gl_merge_properties_dialog_finalize),
+       (gl_merge_properties_dialog_construct):
+       * src/new-label-dialog.c: (gl_new_label_dialog_finalize),
+       (gl_new_label_dialog_construct):
+       * src/object-editor-bc-page.c: (gl_object_editor_prepare_bc_page):
+       * src/object-editor-data-page.c:
+       (gl_object_editor_prepare_data_page):
+       * src/object-editor-edit-page.c:
+       (gl_object_editor_prepare_edit_page):
+       * src/object-editor-fill-page.c:
+       (gl_object_editor_prepare_fill_page):
+       * src/object-editor-image-page.c:
+       (gl_object_editor_prepare_image_page):
+       * src/object-editor-line-page.c:
+       (gl_object_editor_prepare_line_page):
+       * src/object-editor-lsize-page.c:
+       (gl_object_editor_prepare_lsize_page):
+       * src/object-editor-position-page.c:
+       (gl_object_editor_prepare_position_page):
+       * src/object-editor-private.h:
+       * src/object-editor-shadow-page.c:
+       (gl_object_editor_prepare_shadow_page):
+       * src/object-editor-size-page.c:
+       (gl_object_editor_prepare_size_page):
+       * src/object-editor-text-page.c:
+       (gl_object_editor_prepare_text_page):
+       * src/object-editor.c: (gl_object_editor_init):
+       * src/prefs-dialog.c: (gl_prefs_dialog_init),
+       (gl_prefs_dialog_construct), (construct_locale_page),
+       (construct_object_page):
+       * src/print-op.c: (gl_print_op_finalize),
+       (create_custom_widget_cb):
+       * src/template-designer.c: (gl_template_designer_class_init),
+       (gl_template_designer_finalize), (gl_template_designer_construct),
+       (construct_start_page), (construct_name_page),
+       (construct_pg_size_page), (construct_shape_page),
+       (construct_rect_size_page), (construct_round_size_page),
+       (construct_cd_size_page), (construct_nlayouts_page),
+       (construct_layout_page), (construct_finish_page):
+       * src/template-designer.h:
+       * src/ui-property-bar.c: (gl_ui_property_bar_init),
+       (gl_ui_property_bar_finalize), (gl_ui_property_bar_new),
+       (gl_ui_property_bar_construct), (reset_to_default_properties),
+       (gl_ui_property_bar_set_view), (gl_ui_property_bar_set_tooltips),
+       (update_text_properties), (update_fill_color),
+       (update_line_color),
+       (update_line_width), (selection_changed_cb),
+       (font_family_changed_cb), (font_size_changed_cb),
+       (text_color_changed_cb), (fill_color_changed_cb),
+       (line_color_changed_cb), (line_width_changed_cb),
+       (font_bold_toggled_cb), (font_italic_toggled_cb),
+       (text_align_toggled_cb), (set_doc_items_sensitive),
+       (set_text_items_sensitive), (set_fill_items_sensitive),
+       (set_line_color_items_sensitive),
+       (set_line_width_items_sensitive):
+       * src/ui-property-bar.h:
+       * src/util.c: (gl_util_get_builder_widgets):
+       * src/util.h:
+       * src/wdgt-media-select.c: (gl_wdgt_media_select_finalize),
+       (gl_wdgt_media_select_construct):
+               Migration of glade to builder.
+       * src/color.h:
+               New macros for color combo initialization.
+       * TODO:
+               Added idea for internal merge database.
+       * docs/libglabels/libglabels-undocumented.txt:
+       * docs/libglabels/tmpl/paper.sgml:
+       * gtk-doc.make:
+               Automagic.
+
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@785
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/TODO
+M      glabels2/configure.in
+M      glabels2/data/Makefile.am
+A      glabels2/data/builder/Makefile.am
+R100   glabels2/data/glade/merge-properties-dialog.glade
+glabels2/data/builder/merge-properties-dialog.glade
+R100   glabels2/data/glade/new-label-dialog.glade
+glabels2/data/builder/new-label-dialog.glade
+R097   glabels2/data/glade/object-editor.glade
+glabels2/data/builder/object-editor.glade
+R096   glabels2/data/glade/prefs-dialog.glade
+glabels2/data/builder/prefs-dialog.glade
+R100   glabels2/data/glade/print-custom-widget.glade
+glabels2/data/builder/print-custom-widget.glade
+R089   glabels2/data/glade/property-bar.glade
+glabels2/data/builder/property-bar.glade
+R099   glabels2/data/glade/template-designer.glade
+glabels2/data/builder/template-designer.glade
+R100   glabels2/data/glade/wdgt-media-select.glade
+glabels2/data/builder/wdgt-media-select.glade
+D      glabels2/data/glade/Makefile.am
+M      glabels2/docs/libglabels/libglabels-undocumented.txt
+M      glabels2/docs/libglabels/tmpl/paper.sgml
+M      glabels2/gtk-doc.make
+M      glabels2/src/Makefile.am
+M      glabels2/src/color.h
+M      glabels2/src/merge-properties-dialog.c
+M      glabels2/src/new-label-dialog.c
+M      glabels2/src/object-editor-bc-page.c
+M      glabels2/src/object-editor-data-page.c
+M      glabels2/src/object-editor-edit-page.c
+M      glabels2/src/object-editor-fill-page.c
+M      glabels2/src/object-editor-image-page.c
+M      glabels2/src/object-editor-line-page.c
+M      glabels2/src/object-editor-lsize-page.c
+M      glabels2/src/object-editor-position-page.c
+M      glabels2/src/object-editor-private.h
+M      glabels2/src/object-editor-shadow-page.c
+M      glabels2/src/object-editor-size-page.c
+M      glabels2/src/object-editor-text-page.c
+M      glabels2/src/object-editor.c
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/print-op.c
+M      glabels2/src/template-designer.c
+M      glabels2/src/template-designer.h
+M      glabels2/src/ui-property-bar.c
+M      glabels2/src/ui-property-bar.h
+M      glabels2/src/util.c
+M      glabels2/src/util.h
+M      glabels2/src/wdgt-media-select.c
+
+commit 7ef35253c18443a10f4f38d53143341c09c06015
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-10-12
+
+    2008-10-12 Jim Evins  <evins@snaught.com>
+
+       * src/mygal/Makefile.am:
+       * src/mygal/color-group.c:
+       * src/mygal/color-group.h:
+       * src/mygal/color-palette.c:
+       * src/mygal/color-palette.h:
+       * src/mygal/e-colors.c:
+       * src/mygal/e-colors.h:
+       * src/mygal/e-marshal.list:
+       * src/mygal/e-util.h:
+       * src/mygal/mygal-combo-box.c:
+       * src/mygal/mygal-combo-box.h:
+       * src/mygal/widget-color-combo.c:
+       * src/mygal/widget-color-combo.h:
+       * AUTHORS:
+       * configure.in:
+               Deleted mygal.
+       * src/color-combo.c:
+       * src/color-combo.h:
+       * src/color-combo-color-menu-item.c:
+       * src/color-combo-color-menu-item.h:
+       * src/color-combo-history.c:
+       * src/color-combo-history.h:
+       * src/color-combo-menu.c:
+       * src/color-combo-menu.h:
+       * src/marshal.list:
+       * src/util.c:
+       * src/util.h:
+       * src/Makefile.am:
+               Created new glColorCombo widget.
+       * src/object-editor-bc-page.c:
+       * src/object-editor-edit-page.c:
+       * src/object-editor-fill-page.c:
+       * src/object-editor-line-page.c:
+       * src/object-editor-shadow-page.c:
+       * src/object-editor-text-page.c:
+       * src/object-editor.c:
+       * src/prefs-dialog.c:
+       * src/ui-property-bar.c:
+               Replaced use of mygal color combo with new glColorCombo
+               widget.
+
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@784
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+M      glabels2/src/Makefile.am
+A      glabels2/src/color-combo-color-menu-item.c
+A      glabels2/src/color-combo-color-menu-item.h
+A      glabels2/src/color-combo-history.c
+A      glabels2/src/color-combo-history.h
+A      glabels2/src/color-combo-menu.c
+A      glabels2/src/color-combo-menu.h
+A      glabels2/src/color-combo.c
+A      glabels2/src/color-combo.h
+M      glabels2/src/marshal.list
+D      glabels2/src/mygal/Makefile.am
+D      glabels2/src/mygal/color-group.c
+D      glabels2/src/mygal/color-group.h
+D      glabels2/src/mygal/color-palette.c
+D      glabels2/src/mygal/color-palette.h
+D      glabels2/src/mygal/e-colors.c
+D      glabels2/src/mygal/e-colors.h
+D      glabels2/src/mygal/e-marshal.list
+D      glabels2/src/mygal/e-util.h
+D      glabels2/src/mygal/mygal-combo-box.c
+D      glabels2/src/mygal/mygal-combo-box.h
+D      glabels2/src/mygal/widget-color-combo.c
+D      glabels2/src/mygal/widget-color-combo.h
+M      glabels2/src/object-editor-bc-page.c
+M      glabels2/src/object-editor-edit-page.c
+M      glabels2/src/object-editor-fill-page.c
+M      glabels2/src/object-editor-line-page.c
+M      glabels2/src/object-editor-shadow-page.c
+M      glabels2/src/object-editor-text-page.c
+M      glabels2/src/object-editor.c
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/ui-property-bar.c
+M      glabels2/src/util.c
+M      glabels2/src/util.h
+
+commit 6accda9df32944d48b5e8556c5b7d4fd6e37b485
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-08-30
+
+    2008-08-29 Jim Evins  <evins@snaught.com>
+
+       * src/file.c: (gl_file_open), (gl_file_save_as):
+               Bug #2069668.  Corrected button order in Open and
+               "Save as"
+               dialogs.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@783
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/file.c
+
+commit 7b353782309c9627b471bd5928d836e4ed380e9b
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-08-17
+
+    2008-08-17 Jim Evins  <evins@snaught.com>
+
+       * data/dtd/glabels-2.2.dtd:
+       * data/templates/paper-sizes.xml:
+       * libglabels/db.c: (lgl_db_init):
+       * libglabels/paper.c: (lgl_paper_new), (lgl_paper_dup),
+       (lgl_paper_free):
+       * libglabels/paper.h:
+       * libglabels/xml-paper.c: (lgl_xml_paper_parse_paper_node):
+       * src/print-op.c: (set_page_size):
+               Bug #2049431.  Always explicitely set page size.
+               Added pwg_size field (PWG 5101.1-2002
+               size specification) to the libglabels paper database to
+               allow the page size to be
+               communicated to GtkPrintOp un-ambiguously.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@777
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/dtd/glabels-2.2.dtd
+M      glabels2/data/templates/paper-sizes.xml
+M      glabels2/libglabels/db.c
+M      glabels2/libglabels/paper.c
+M      glabels2/libglabels/paper.h
+M      glabels2/libglabels/xml-paper.c
+M      glabels2/src/print-op.c
+
+commit a4e50ffadf1d9aaf6d3fdd6fa88a4a144652be70
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-07-26
+
+    2008-07-25 Jim Evins  <evins@snaught.com>
+
+       * src/object-editor-size-page.c: (size_reset_cb),
+       (gl_object_editor_set_max_size):
+               Bug #1993550.  Set size limits based on longest side
+               of label.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@776
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/object-editor-size-page.c
+
+commit d842a8e3b41ef987d9f402f80a5ea19f2cc8528f
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-07-20
+
+    2008-07-19 Jim Evins  <evins@snaught.com>
+
+       * configure.in:
+       * src/mygal/Makefile.am:
+               Make sure libtool handles library dependencies for mygal
+               properly.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@774
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+M      glabels2/src/mygal/Makefile.am
+
+commit c046a8d5f2adcabf208bf344ae2d49b2c35d9563
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-05-22
+
+    2008-05-21 Jim Evins  <evins@snaught.com>
+
+       * src/glabels-batch.c: (main):
+               Bug #1968653.  Initialize prefs subsystem.
+
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@772
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/glabels-batch.c
+
+commit a3fb8ada88270c000ca8ed92552df8bd73e43b81
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-05-10
+
+    2008-05-09 Jim Evins  <evins@snaught.com>
+
+       * data/glade/object-editor.glade:
+               Bug #1959135.  A couple of radio buttons somehow became
+               ungrouped.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@769
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glade/object-editor.glade
+
+commit 85c07ac71aaff4903c38f816ae77c5932754512b
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-04-08
+
+    2008-04-07 Jim Evins  <evins@snaught.com>
+
+       * src/wdgt-rotate-label.h:
+       * src/wdgt-rotate-label.c: (gl_wdgt_rotate_label_init),
+       (gl_wdgt_rotate_label_new), (toggled_cb), (create_pixbuf),
+       (gl_wdgt_rotate_label_get_state),
+       (gl_wdgt_rotate_label_set_state),
+       (gl_wdgt_rotate_label_set_template_name):
+               Modified wdgt-rotate-label to better indicate the
+               rotation choices.
+       * data/glade/Makefile.am:
+       * data/glade/wdgt-rotate-label.glade:
+               Deleted wdgt-rotate-label.glade.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@768
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glade/Makefile.am
+D      glabels2/data/glade/wdgt-rotate-label.glade
+M      glabels2/src/wdgt-rotate-label.c
+M      glabels2/src/wdgt-rotate-label.h
+
+commit cec0279eb60ae357ff93ef662a432b979160a303
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-04-05
+
+    2008-04-04 Jim Evins  <evins@snaught.com>
+
+       * data/templates/brother-other-templates.xml:
+               Added categories to existing templates.
+       * data/templates/misc-other-templates.xml:
+               Moved dymo templates to their own file.
+       * data/templates/Makefile.am:
+       * data/templates/dymo-other-templates.xml:
+               Additional dymo templates provided by Harald Welte
+               <laforge@gnumonks.org>.
+       * AUTHORS:
+               Acknowledgement for above templates.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@767
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+A      glabels2/data/templates/dymo-other-templates.xml
+
+commit 49497c2580870b2a1b2364e4da33e4587efae50a
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-04-05
+
+    2008-04-04 Jim Evins  <evins@snaught.com>
+
+       * data/templates/brother-other-templates.xml:
+               Added categories to existing templates.
+       * data/templates/misc-other-templates.xml:
+               Moved dymo templates to their own file.
+       * data/templates/Makefile.am:
+       * data/templates/dymo-other-templates.xml:
+               Additional dymo templates provided by Harald Welte
+               <laforge@gnumonks.org>.
+       * AUTHORS:
+               Acknowledgement for above templates.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@766
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/data/templates/Makefile.am
+M      glabels2/data/templates/brother-other-templates.xml
+M      glabels2/data/templates/misc-other-templates.xml
+
+commit 0bd0009193b9e28d4ddf96028399f038996d15d5
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-03-25
+
+    2008-03-24 Jim Evins  <evins@snaught.com>
+
+       * src/xml-label.c: (xml_doc_to_label):
+               Bug #1872584.  Don't refuse to parse label file if
+               namespace is
+               unrecognized -- it may be from a newer version of glabels.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@763
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/xml-label.c
+
+commit 5f3c093d8b3d6aeef8a9e477481b0bdc7728c65b
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-03-16
+
+    2008-03-15 Jim Evins  <evins@snaught.com>
+
+       * data/templates/Makefile.am:
+       * data/templates/brother-other-templates.xml:
+               Added brother templates.
+       * src/cairo-markup-path.c: (gl_cairo_markup_margin_rect_path),
+       (gl_cairo_markup_margin_cd_path):
+       * src/view.c: (draw_markup_layer):
+               Fixed markup drawing errors when label is rotated.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@762
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/templates/Makefile.am
+A      glabels2/data/templates/brother-other-templates.xml
+M      glabels2/src/cairo-markup-path.c
+M      glabels2/src/view.c
+
+commit ffb3bb596fd074d8aff5d967f0468d7c47769510
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-03-04
+
+    2008-03-03 Jim Evins  <evins@snaught.com>
+
+       * configure.in:
+       * ko.po:
+               Added korean translation provided by xein@naver.com.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@760
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+A      glabels2/po/ko.po
+
+commit eb9b5b77918c0ca267429d15417370a7af529cbb
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-02-23
+
+    Release 2.2.2
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@756
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      web/download/index.php
+M      web/index.php
+M      web/news/index.php
+
+commit 22ec28c04b44a74d3dfe10f5667bde6d36637df3
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-02-22
+
+    2008-02-21 Jim Evins  <evins@snaught.com>
+
+       * src/ui.c:
+               Fixed typo that prevented "Save" from being deactivated
+               when
+               document is not modified.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@755
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/ui.c
+
+commit 23cbe3a3256f0edd295a7d4fc0c92c2de23e5e9c
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-02-19
+
+    2008-02-18 Jim Evins  <evins@snaught.com>
+
+       * src/prefs-model.c: (gl_prefs_model_save_settings),
+       (gl_prefs_model_load_settings):
+               Set default units for file output.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@752
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/prefs-model.c
+
+commit 4618bceeaf24715211c17ca9585e7a807b4df814
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-02-18
+
+    2008-02-18 Jim Evins  <evins@snaught.com>
+
+       * help/C/glabels.xml:
+               Fixed example template.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@750
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/help/C/glabels.xml
+
+commit 41999df6e9a40596e0e6986813b70f3f360c9b0e
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-02-17
+
+    2008-02-16 Jim Evins  <evins@snaught.com>
+
+       * AUTHORS:
+       * data/templates/avery-iso-templates.xml:
+       * data/templates/avery-us-templates.xml:
+       * data/templates/misc-iso-templates.xml:
+       * data/templates/misc-us-templates.xml:
+               Caught up on user submitted templates.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@748
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/data/templates/avery-iso-templates.xml
+M      glabels2/data/templates/avery-us-templates.xml
+M      glabels2/data/templates/misc-iso-templates.xml
+M      glabels2/data/templates/misc-us-templates.xml
+
+commit 9e0bdc8ba7b36e33843fa7ba8baf496db7a41b88
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-02-05
+
+    2008-02-04 Jim Evins  <evins@snaught.com>
+
+       * src/view-image.c: (update_object_from_editor_cb):
+               Bug #1886438.  Don't update the image size unless it
+               is actually
+               triggered by a change in image source.  The result of
+               this bug
+               was that any attempt to edit the size spinboxes,
+               immediately
+               reset the size.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@746
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/view-image.c
+
+commit 91d37cb324c418683201aa5c25bd013789286831
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-02-03
+
+    2008-02-03 Jim Evins  <evins@snaught.com>
+
+       * src/label-image.c: (gl_label_image_class_init), (set_size):
+               Enforce minimum size for images.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@743
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/label-image.c
+
+commit d9e0dd7675822598ed33528baa97c41d68b617e2
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-02-03
+
+    2008-02-03 Jim Evins  <evins@snaught.com>
+
+       * src/object-editor-edit-page.c: (field_selected_cb):
+       * src/object-editor-lsize-page.c:
+       (gl_object_editor_set_max_lsize):
+       * src/object-editor-private.h:
+       * src/object-editor-shadow-page.c:
+       (gl_object_editor_set_max_shadow_offset):
+       * src/object-editor-size-page.c: (gl_object_editor_set_max_size):
+       * src/object-editor.c: (gl_object_editor_finalize),
+       (gl_object_editor_new), (gl_object_notebook_construct_valist),
+       (label_changed_cb):
+       * src/object-editor.h:
+       * src/ui-sidebar.c: (gl_ui_sidebar_construct):
+       * src/view-barcode.c: (construct_properties_editor):
+       * src/view-box.c: (construct_properties_editor):
+       * src/view-ellipse.c: (construct_properties_editor):
+       * src/view-image.c: (construct_properties_editor):
+       * src/view-line.c: (construct_properties_editor):
+       * src/view-object.c: (gl_view_object_finalize):
+       * src/view-text.c: (construct_properties_editor),
+               Move update_editor_from_label callback from individual
+               view objects
+               to the object editor, so that signals can be disconnected
+               when
+               object editor is finalized.
+       * src/view-text.c: (gl_view_text_create_button_press_event):
+               Fixed bug that caused multiple view objects to be created
+               for a
+               single text object.  This bug would manifest itself as
+               a crash
+               when deleting multi-object selections which included
+               text objects.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@741
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/object-editor-edit-page.c
+M      glabels2/src/object-editor-lsize-page.c
+M      glabels2/src/object-editor-private.h
+M      glabels2/src/object-editor-shadow-page.c
+M      glabels2/src/object-editor-size-page.c
+M      glabels2/src/object-editor.c
+M      glabels2/src/object-editor.h
+M      glabels2/src/ui-sidebar.c
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-image.c
+M      glabels2/src/view-line.c
+M      glabels2/src/view-object.c
+M      glabels2/src/view-text.c
+
+commit b4714e50f777fe29eb16a2d729e8b5692ade6c88
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-02-02
+
+    2008-02-02 Jim Evins  <evins@snaught.com>
+
+       * src/Makefile.am:
+       * src/wdgt-merge-menu.c:
+       * src/wdgt-merge-menu.h:
+       * src/debug.c: (gl_debug_init):
+       * src/debug.h:
+       * src/marshal.list:
+               New merge menu widget.
+       * data/glade/object-editor.glade:
+       * src/object-editor-private.h:
+       * src/object-editor.c: (gl_object_editor_set_key_names):
+       * src/object-editor-edit-page.c:
+       (gl_object_editor_prepare_edit_page), (field_selected_cb),
+       (insert_button_cb):
+               Simplified UI for inserting fields into text objects
+               by launching
+               a merge menu and directly inserting fields from the menu.
+               No more
+               selecting field in combobox, then pressing insert button.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@740
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glade/object-editor.glade
+M      glabels2/src/Makefile.am
+M      glabels2/src/debug.c
+M      glabels2/src/debug.h
+M      glabels2/src/marshal.list
+M      glabels2/src/object-editor-edit-page.c
+M      glabels2/src/object-editor-private.h
+M      glabels2/src/object-editor.c
+A      glabels2/src/wdgt-merge-menu.c
+A      glabels2/src/wdgt-merge-menu.h
+
+commit b9efddafae059c1834ee10d3d7aedf9a23a1aea9
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-02-01
+
+    2008-01-31 Jim Evins  <evins@snaught.com>
+
+       * src/label-barcode.c: (draw_object):
+               Fixed rendering problem when "Invalid data" is displayed
+               when text
+               object is lower in stacking order.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@738
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/label-barcode.c
+
+commit 34ce1482d3abe34922ef9bc8d0173ec98c74f1c0
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-01-31
+
+    2008-01-30 Jim Evins  <evins@snaught.com>
+
+       * src/label-text.c: (get_size), (draw_object), (draw_shadow):
+               Don't turn off cairo_hint_metrics.  This causes serious
+               issues with
+               bitmap fonts.
+
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@736
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/label-text.c
+
+commit c3eb26e0dc3c7c4ae2dfd150d15ac2dfdda751b2
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-01-30
+
+    2008-01-29 Jim Evins  <evins@snaught.com>
+
+       * src/print-op.c: (gl_print_op_construct),
+       (gl_print_op_construct_batch), (set_page_size):
+               Explicitly set page size for "other" page sizes.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@734
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/print-op.c
+
+commit 30a30cddd30848ddb8c27bd3883e355c5f455aee
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-01-26
+
+    2008-01-25 Jim Evins  <evins@snaught.com>
+
+       * src/bc.c:
+               Fixed Code128C backend parameters.
+       * src/label-barcode.c: (get_size):
+               Bug #1766425.  If barcode is not renderable with either
+               input data or default data, use a default size.  Also
+               fixed small leak.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@733
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/bc.c
+M      glabels2/src/label-barcode.c
+
+commit f92a36a65a99196ea77369e36306ef012713c1f0
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-01-23
+
+    Release 2.2.1
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@729
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      web/download/index.php
+M      web/index.php
+M      web/news/index.php
+
+commit b3284942b4787e79360f989f39573cf4db05be2b
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-01-17
+
+    2008-01-16 Jim Evins  <evins@snaught.com>
+
+       * src/print.c: (print_label):
+               Bug #1872568.  Don't apply special transforms (rotate and
+               mirror) to clipping region or outline.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@727
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/print.c
+
+commit 4fc7a95ffe11cda0bdfd9074cb8ee5d41e6d4434
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-01-02
+
+    2008-01-01 Jim Evins  <evins@snaught.com>
+
+       * src/util.c:
+               Sort font lists alphabetically.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@725
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/util.c
+
+commit 2405b022fb9d95b98b20ad37de761fdb885b3d86
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-01-02
+
+    2008-01-01 Jim Evins  <evins@snaught.com>
+
+       * src/merge-evolution.c:
+               Do a case-insensitive sort.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@723
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/merge-evolution.c
+
+commit 0f866d1aacfc4da617ae484b6c0873ff08909b6e
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-01-02
+
+    2008-01-01 Jim Evins  <evins@snaught.com>
+
+       * src/merge-evolution.c:
+               Sort evolution by "file_under" field.  Original patch
+               provided
+               by Peter Cherriman <glabels-devel2712@bubieyehyeh.me.uk>
+               in
+               Patch #1860423.
+       * AUTHORS:
+               Added acknowledgement for above patch.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@721
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/src/merge-evolution.c
+
+commit 2c6f4ad2ae25e3feb6bec338a727689663479fbf
+Author: Jim Evins <evins@snaught.com>
+Date:  2008-01-02
+
+    2008-01-01 Jim Evins  <evins@snaught.com>
+
+       * NEWS:
+       * configure.in:
+       * glabels.spec.in:
+               Reconcile with 2.2 branch.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@719
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/NEWS
+M      glabels2/configure.in
+M      glabels2/glabels.spec.in
+
+commit 2dc21eca4a51c1e9a96a2ad2b8a308b75b8450a5
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-12-26
+
+    Prep for 2.2.0 release.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@716
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+A      web/doc/glabels-2.2.dtd.txt
+M      web/doc/index.php
+A      web/doc/templates-2.2/glabels-template-cd.png
+A      web/doc/templates-2.2/glabels-template-label.png
+A      web/doc/templates-2.2/glabels-template-layout.png
+A      web/doc/templates-2.2/index.php
+M      web/download/index.php
+M      web/index.php
+M      web/links/index.php
+M      web/news/index.php
+A      web/screenshots/220-screenshot-main-thumb.png
+A      web/screenshots/220-screenshot-main.png
+A      web/screenshots/220-screenshot-new-thumb.png
+A      web/screenshots/220-screenshot-new.png
+A      web/screenshots/220-screenshot-preview-thumb.png
+A      web/screenshots/220-screenshot-preview.png
+A      web/screenshots/220-screenshot-print-thumb.png
+A      web/screenshots/220-screenshot-print.png
+M      web/screenshots/index.php
+
+commit 8836dd00ecb2dca5462442a6149872ec84d9efdc
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-12-22
+
+    2007-12-21 Jim Evins  <evins@snaught.com>
+
+       * COPYING.LIBGLABELS:
+       * COPYING.README_FIRST:
+       * README:
+               Updating license information to make more complete and
+               understandable.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@711
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+R100   glabels2/COPYING.LIBGLABELS     glabels2/COPYING-LIBGLABELS
+A      glabels2/COPYING.README_FIRST
+M      glabels2/ChangeLog
+M      glabels2/README
+
+commit 5375ec7401a13e0749329bc34d912cbffbee2b6f
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-12-16
+
+    2007-12-16 Jim Evins  <evins@snaught.com>
+
+       * configure.in:
+               Updated version to 2.pre2.
+       * help/C/glabels.xml:
+               Updated documentation.
+       * src/ui-commands.c: (gl_ui_cmd_help_about):
+               Updated copyright string.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@710
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+M      glabels2/help/C/glabels.xml
+M      glabels2/src/ui-commands.c
+
+commit 63153b839d3534ecd8f8761ffa78963a1b9a3918
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-12-16
+
+    2007-12-15 Jim Evins  <evins@snaught.com>
+
+       * data/glade/object-editor.glade:
+               Removed any GtkTable that contained a GtkComboBox because
+               the size of
+               the combo box was not constrained properly.  This
+               sacrifices the nice
+               orderly labels for combo boxes that don't extend beyond
+               the edge of the
+               window.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@709
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glade/object-editor.glade
+
+commit a80d06dfd7b2b2a0ad6fefb8930bf29e0da47bd8
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-12-15
+
+    2007-12-15 Jim Evins  <evins@snaught.com>
+
+       * libglabels/db.c: (lgl_db_lookup_template_from_name):
+       * src/object-editor.c: (gl_object_editor_finalize):
+       * src/wdgt-media-select.c: (gl_wdgt_media_select_finalize):
+               Fixed several small memory leaks.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@708
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/libglabels/db.c
+M      glabels2/src/object-editor.c
+M      glabels2/src/wdgt-media-select.c
+
+commit 910f142b0201ac95fa7c62bf6d1a658e16093f16
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-12-15
+
+    2007-12-14 Jim Evins  <evins@snaught.com>
+
+       * libglabels/db.c:
+               Optimize template search by name by using a GHashTable.
+       * src/mini-preview-pixbuf-cache.c:
+       * src/mini-preview-pixbuf-cache.h:
+               Store one pixbuf per template, but use a key for each
+               alias.
+       * src/wdgt-media-select.c:
+               Optimize loading of tree data, thus optimizing the
+               "new label" dialog.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@707
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/libglabels/db.c
+M      glabels2/src/mini-preview-pixbuf-cache.c
+M      glabels2/src/mini-preview-pixbuf-cache.h
+M      glabels2/src/wdgt-media-select.c
+
+commit 56efcf961c8dad206f835cb6eaa27621a837e457
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-12-13
+
+    2007-12-12 Jim Evins  <evins@snaught.com>
+
+       * data/templates/avery-us-templates.xml:
+               More templates and aliases.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@706
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/templates/avery-us-templates.xml
+
+commit b84fefc66d9297af2c7987605fba5df694273907
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-12-09
+
+    Updated download links.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@705
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      web/common_php.inc
+
+commit 2a503f794c163ad0f8d540e205ecdc689d0d59f0
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-12-09
+
+    Release 2.1.5
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@702
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      web/download/index.php
+M      web/index.php
+M      web/news/index.php
+
+commit 67f66fd47238547b043f41b566b5176a2512a8b1
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-12-09
+
+    2007-12-08 Jim Evins  <evins@snaught.com>
+
+       * TODO:
+               More prep for 2.1.5/2.2.0.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@701
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/TODO
+
+commit e40a0e4b96767ad3e127dd5a8698a842faa79013
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-12-09
+
+    2007-12-08 Jim Evins  <evins@snaught.com>
+
+       * NEWS:
+       * README:
+       * TODO:
+       * configure.in:
+               Preparation for 2.1.5.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@700
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/NEWS
+M      glabels2/README
+M      glabels2/TODO
+M      glabels2/configure.in
+
+commit 61ce763cb6817e0d22b262d9933a3d5d32cd945f
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-12-08
+
+    2007-12-08 Jim Evins  <evins@snaught.com>
+
+       * docs/libglabels/libglabels-decl-list.txt:
+       * docs/libglabels/libglabels-docs.sgml:
+       * docs/libglabels/libglabels-sections.txt:
+       * docs/libglabels/libglabels-undocumented.txt:
+       * docs/libglabels/tmpl/db.sgml:
+       * docs/libglabels/tmpl/str.sgml:
+       * libglabels/str.c:
+               Documentation cleanup for libglabels.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@699
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/docs/libglabels/libglabels-decl-list.txt
+M      glabels2/docs/libglabels/libglabels-docs.sgml
+M      glabels2/docs/libglabels/libglabels-sections.txt
+M      glabels2/docs/libglabels/libglabels-undocumented.txt
+M      glabels2/docs/libglabels/tmpl/db.sgml
+A      glabels2/docs/libglabels/tmpl/str.sgml
+M      glabels2/libglabels/str.c
+
+commit f5cdac62dc40e5f8d3e2f0d33fe645c098d68f06
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-12-02
+
+    Fixed capitalization.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@698
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      web/links/index.php
+
+commit 9e63a7ba6a5af8eeac9bf7a008050c3072f35c9c
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-12-02
+
+    Added missing title image. Small edits to links and download pages.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@697
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      web/download/index.php
+A      web/images/glabels-title-140.png
+D      web/images/glabels-title-140.png.good
+M      web/links/index.php
+
+commit 7fc2595f019ca9b9e4ddc8bf04173489c42dada8
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-11-30
+
+    2007-11-29 Jim Evins  <evins@snaught.com>
+
+       * libglabels/db.h:
+       * libglabels/db.c:
+               Added lgl_db_does_template_name_exist().
+               In lgl_db_lookup_template_from_name() substitute
+               brand/part of new template from
+               requested alias.
+       * src/prefs-model.c:
+               Proof read recent templates -- make sure they still exist.
+       * src/wdgt-media-select.c:
+               Default to "search all templates" tab if no recent
+               templates found.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@696
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/libglabels/db.c
+M      glabels2/libglabels/db.h
+M      glabels2/src/prefs-model.c
+M      glabels2/src/wdgt-media-select.c
+
+commit 7d3d00e59c9deac3590b2e0cd5b756e66945de9b
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-11-28
+
+    2007-11-28 Jim Evins  <evins@snaught.com>
+
+       * data/glade/wdgt-media-select.glade:
+       * src/wdgt-media-select.c:
+               Added tabbed notebook to allow selection of recent
+               template versus searching the
+               entire database.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@695
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glade/wdgt-media-select.glade
+M      glabels2/src/wdgt-media-select.c
+
+commit 5aca44500cc85783f61bd7a572c38645f8513cc0
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-11-27
+
+    2007-11-26 Jim Evins  <evins@snaught.com>
+
+       * libglabels/Makefile.am:
+       * libglabels/libglabels.h:
+               Make str.h public.
+       * src/label.c:
+       * src/prefs-dialog.c:
+       * src/prefs-model.c:
+       * src/prefs-model.h:
+       * src/prefs.c:
+       * src/prefs.h:
+               Added tracking of recently used templates.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@694
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/libglabels/Makefile.am
+M      glabels2/libglabels/libglabels.h
+M      glabels2/src/label.c
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/prefs-model.c
+M      glabels2/src/prefs-model.h
+M      glabels2/src/prefs.c
+M      glabels2/src/prefs.h
+
+commit f16056b8177404142111d3355fa5a3b94839b1d8
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-11-21
+
+    2007-11-20 Jim Evins  <evins@snaught.com>
+
+       * data/glade/template-designer.glade:
+       * src/template-designer.c:
+               Added warning icon when match brand and part match an
+               existing template.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@693
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glade/template-designer.glade
+M      glabels2/src/template-designer.c
+
+commit 58279423cfb4c6fa816d19f7078fdf1e111fbc55
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-11-19
+
+    2007-11-18 Jim Evins  <evins@snaught.com>
+
+       * libglabels/Makefile.am:
+       * libglabels/str.h:
+       * libglabels/str.c:
+               Added lgl_str_utf8_casecmp().
+       * libglabels/libglabels-private.h:
+               Use lgl_str_utf8_casecmp() for UTF8_EQUAL macro --
+               do case insensitive comparisons.
+       * libglabels/db.c: (lgl_db_get_brand_list):
+               Use lgl_str_utf8_casecmp() to determine if we have seen
+               brand before when building
+               brand list.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@692
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/libglabels/Makefile.am
+M      glabels2/libglabels/db.c
+M      glabels2/libglabels/libglabels-private.h
+A      glabels2/libglabels/str.c
+C055   glabels2/libglabels/libglabels-private.h
+glabels2/libglabels/str.h
+
+commit ac41c67c4089c1303453fee8efe5c5e97acbc1bd
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-11-19
+
+    2007-11-18 Jim Evins  <evins@snaught.com>
+
+       * data/glade/template-designer.glade:
+       * src/template-designer.c:
+               Don't advance past name page, if brand and part match
+               an existing template.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@691
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glade/template-designer.glade
+M      glabels2/src/template-designer.c
+
+commit 8afdc497ab84d6fb788e9822a15c24320d686fbe
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-11-18
+
+    2007-11-18 Jim Evins  <evins@snaught.com>
+
+       * libglabels/db.c: (lgl_db_register_template), (read_templates):
+               When registering a new template, don't add to "User
+               defined" category before
+               writing to file.  Add to "User defined" category when
+               reading from "~/.glabels"
+               directory instead.  This will allow legacy templates
+               (and manually created
+               templates) to be automatically added to the "user defined"
+               category.
+       * libglabels/xml-template.c:
+       (lgl_xml_template_create_template_node):
+               Fixed typo/bug causing brand to be wrong.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@690
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/libglabels/db.c
+M      glabels2/libglabels/xml-template.c
+
+commit ab3ea131f3061e41dd0753167ce5493ecca205ad
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-11-17
+
+    2007-11-16 Jim Evins  <evins@snaught.com>
+
+       * libglabels/db.c:
+       * libglabels/db.h:
+               Added return codes to lgl_db_register_template().
+               Added lgl_db_does_template_exist()
+               function.  Automatically create "User defined" category
+               and add to all user
+               registered templates.
+       * libglabels/xml-template.c:
+       * libglabels/xml-template.h:
+               Return number of bytes written from
+               lgl_xml_template_write_templates_to_file() and
+               lgl_xml_template_write_template_to_file().
+       * docs/libglabels/libglabels-decl-list.txt:
+       * docs/libglabels/libglabels-sections.txt:
+       * docs/libglabels/libglabels-undocumented.txt:
+       * docs/libglabels/tmpl/db.sgml:
+       * docs/libglabels/tmpl/xml-template.sgml:
+               Update documentation to reflect above changes.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@689
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/docs/libglabels/libglabels-decl-list.txt
+M      glabels2/docs/libglabels/libglabels-sections.txt
+M      glabels2/docs/libglabels/libglabels-undocumented.txt
+M      glabels2/docs/libglabels/tmpl/db.sgml
+M      glabels2/docs/libglabels/tmpl/xml-template.sgml
+M      glabels2/libglabels/db.c
+M      glabels2/libglabels/db.h
+M      glabels2/libglabels/xml-template.c
+M      glabels2/libglabels/xml-template.h
+
+commit 1843beacf1f7d4c2954fe21a60d8c95ce8dcec79
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-10-29
+
+    2007-10-28 Jim Evins  <evins@snaught.com>
+
+       * libglabels/xml-template.c:
+               Remove any leading white space from part #s when parsing
+               old names.
+       * src/mini-preview-pixbuf-cache.c:
+               If name isn't in cache add it.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@688
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/libglabels/xml-template.c
+M      glabels2/src/mini-preview-pixbuf-cache.c
+
+commit c4087c54cb13e22815a28921fdcc214b0b5c122c
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-10-27
+
+    2007-10-26 Jim Evins  <evins@snaught.com>
+
+       * libglabels/Makefile.am:
+       * libglabels/category.c:
+       * libglabels/category.h:
+       * libglabels/db.c:
+       * libglabels/db.h:
+       * libglabels/libglabels-private.h:
+       * libglabels/libglabels.h:
+       * libglabels/paper.c:
+       * libglabels/paper.h:
+       * libglabels/template.c:
+       * libglabels/template.h:
+       * libglabels/xml-template.c:
+               Another pass at screwing with the libglabels API.
+               Moved all
+               database related stuff to db.[ch].
+       * docs/libglabels/libglabels-decl-list.txt:
+       * docs/libglabels/libglabels-docs.sgml:
+       * docs/libglabels/libglabels-sections.txt:
+       * docs/libglabels/libglabels-undocumented.txt:
+       * docs/libglabels/tmpl/category.sgml:
+       * docs/libglabels/tmpl/db.sgml:
+       * docs/libglabels/tmpl/init.sgml:
+       * docs/libglabels/tmpl/libglabels-unused.sgml:
+       * docs/libglabels/tmpl/paper.sgml:
+       * docs/libglabels/tmpl/template-construction.sgml:
+       * docs/libglabels/tmpl/template-db.sgml:
+       * docs/libglabels/tmpl/template-misc.sgml:
+       * docs/libglabels/tmpl/template-struct.sgml:
+       * docs/libglabels/tmpl/template.sgml:
+               Updated documentation to reflect above changes to
+               libglabels API.
+       * src/file.c:
+       * src/glabels-batch.c:
+       * src/glabels.c:
+       * src/mini-preview-pixbuf-cache.c:
+       * src/prefs-model.c:
+       * src/print.c:
+       * src/template-designer.c:
+       * src/wdgt-media-select.c:
+       * src/wdgt-mini-preview.c:
+       * src/wdgt-rotate-label.c:
+       * src/xml-label-04.c:
+       * src/xml-label.c:
+               Reconciled usage with above libglabels API changes.
+
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@687
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/docs/libglabels/libglabels-decl-list.txt
+M      glabels2/docs/libglabels/libglabels-docs.sgml
+M      glabels2/docs/libglabels/libglabels-sections.txt
+M      glabels2/docs/libglabels/libglabels-undocumented.txt
+M      glabels2/docs/libglabels/tmpl/category.sgml
+A      glabels2/docs/libglabels/tmpl/db.sgml
+D      glabels2/docs/libglabels/tmpl/init.sgml
+M      glabels2/docs/libglabels/tmpl/libglabels-unused.sgml
+M      glabels2/docs/libglabels/tmpl/paper.sgml
+D      glabels2/docs/libglabels/tmpl/template-construction.sgml
+D      glabels2/docs/libglabels/tmpl/template-db.sgml
+D      glabels2/docs/libglabels/tmpl/template-misc.sgml
+R074   glabels2/docs/libglabels/tmpl/template-struct.sgml
+glabels2/docs/libglabels/tmpl/template.sgml
+M      glabels2/libglabels/Makefile.am
+M      glabels2/libglabels/category.c
+M      glabels2/libglabels/category.h
+A      glabels2/libglabels/db.c
+A      glabels2/libglabels/db.h
+D      glabels2/libglabels/init.c
+D      glabels2/libglabels/init.h
+M      glabels2/libglabels/libglabels-private.h
+M      glabels2/libglabels/libglabels.h
+M      glabels2/libglabels/paper.c
+M      glabels2/libglabels/paper.h
+M      glabels2/libglabels/template.c
+M      glabels2/libglabels/template.h
+M      glabels2/libglabels/xml-template.c
+M      glabels2/src/file.c
+M      glabels2/src/glabels-batch.c
+M      glabels2/src/glabels.c
+M      glabels2/src/mini-preview-pixbuf-cache.c
+M      glabels2/src/prefs-model.c
+M      glabels2/src/print.c
+M      glabels2/src/template-designer.c
+M      glabels2/src/wdgt-media-select.c
+M      glabels2/src/wdgt-mini-preview.c
+M      glabels2/src/wdgt-rotate-label.c
+M      glabels2/src/xml-label-04.c
+M      glabels2/src/xml-label.c
+
+commit 4b0f2e892f20e124d2897ac071832b1bc256eb25
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-10-21
+
+    Removing xv detritus.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@686
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+D      web/images/.xvpics/button-bg.png
+D      web/images/.xvpics/corner-bl-1.png
+D      web/images/.xvpics/corner-br-1.png
+D      web/images/.xvpics/corner-tl-1.png
+D      web/images/.xvpics/corner-tr-1.png
+D      web/images/.xvpics/glabels-title-140.png
+D      web/images/.xvpics/glabels-title-clean1-140-1.png
+D      web/images/.xvpics/pixel-null.png
+D      web/screenshots/.xvpics/191-screenshot-main-grid-thumb.png
+D      web/screenshots/.xvpics/191-screenshot-main-thumb.png
+D      web/screenshots/.xvpics/191-screenshot-new-thumb.png
+D      web/screenshots/.xvpics/191-screenshot-print-merge-thumb.png
+D      web/screenshots/.xvpics/191-screenshot-print-simple-thumb.png
+D      web/screenshots/.xvpics/192screenshot-tumb.png
+D      web/screenshots/.xvpics/193-screenshot-main-thumb.png
+D      web/screenshots/.xvpics/193-screenshot-new-thumb.png
+D      web/screenshots/.xvpics/193-screenshot-preview-thumb.png
+D      web/screenshots/.xvpics/193-screenshot-print-thumb.png
+D      web/screenshots/.xvpics/glabels-screenshot-1-50%.png
+D      web/screenshots/.xvpics/glabels-screenshot-1-640x480.png
+
+commit a84e23b3e38a8c6fc710759cd3cbf74deedec5d7
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-10-21
+
+    Initial checkin of website.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@685
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+A      web/common_php.inc
+A      web/contact/index.php
+A      web/css/glabels.css
+A      web/doc/glabels-2.0.dtd.txt
+A      web/doc/index.php
+A      web/doc/templates-2.0/glabels-template-cd.png
+A      web/doc/templates-2.0/glabels-template-label.png
+A      web/doc/templates-2.0/glabels-template-layout.png
+A      web/doc/templates-2.0/index.php
+A      web/download/index.php
+A      web/faq/index.php
+A      web/faq/q1.3-output.png
+A      web/faq/q1.3-screenshot.png
+A      web/images/.xvpics/button-bg.png
+A      web/images/.xvpics/corner-bl-1.png
+A      web/images/.xvpics/corner-br-1.png
+A      web/images/.xvpics/corner-tl-1.png
+A      web/images/.xvpics/corner-tr-1.png
+A      web/images/.xvpics/glabels-title-140.png
+A      web/images/.xvpics/glabels-title-clean1-140-1.png
+A      web/images/.xvpics/pixel-null.png
+A      web/images/button-bg.png
+A      web/images/corner-bl.png
+A      web/images/corner-br.png
+A      web/images/corner-tl.png
+A      web/images/corner-tr.png
+A      web/images/glabels-title-140.png.good
+A      web/images/pixel-null.png
+A      web/index.php
+A      web/links/index.php
+A      web/news/index.php
+A      web/screenshots/.xvpics/191-screenshot-main-grid-thumb.png
+A      web/screenshots/.xvpics/191-screenshot-main-thumb.png
+A      web/screenshots/.xvpics/191-screenshot-new-thumb.png
+A      web/screenshots/.xvpics/191-screenshot-print-merge-thumb.png
+A      web/screenshots/.xvpics/191-screenshot-print-simple-thumb.png
+A      web/screenshots/.xvpics/192screenshot-tumb.png
+A      web/screenshots/.xvpics/193-screenshot-main-thumb.png
+A      web/screenshots/.xvpics/193-screenshot-new-thumb.png
+A      web/screenshots/.xvpics/193-screenshot-preview-thumb.png
+A      web/screenshots/.xvpics/193-screenshot-print-thumb.png
+A      web/screenshots/.xvpics/glabels-screenshot-1-50%.png
+A      web/screenshots/.xvpics/glabels-screenshot-1-640x480.png
+A      web/screenshots/191-screenshot-main-grid-thumb.png
+A      web/screenshots/191-screenshot-main-grid.png
+A      web/screenshots/191-screenshot-main-thumb.png
+A      web/screenshots/191-screenshot-main.png
+A      web/screenshots/191-screenshot-new-thumb.png
+A      web/screenshots/191-screenshot-new.png
+A      web/screenshots/191-screenshot-print-merge-thumb.png
+A      web/screenshots/191-screenshot-print-merge.png
+A      web/screenshots/191-screenshot-print-simple-thumb.png
+A      web/screenshots/191-screenshot-print-simple.png
+A      web/screenshots/192-screenshot-thumb.png
+A      web/screenshots/192-screenshot.png
+A      web/screenshots/193-screenshot-main-thumb.png
+A      web/screenshots/193-screenshot-main.png
+A      web/screenshots/193-screenshot-new-thumb.png
+A      web/screenshots/193-screenshot-new.png
+A      web/screenshots/193-screenshot-preview-thumb.png
+A      web/screenshots/193-screenshot-preview.png
+A      web/screenshots/193-screenshot-print-thumb.png
+A      web/screenshots/193-screenshot-print.png
+A      web/screenshots/glabels1-screenshot-thumb.jpg
+A      web/screenshots/glabels1-screenshot.jpg
+A      web/screenshots/glabels1-screenshot.png
+A      web/screenshots/index.php
+A      web/source/glabels-0.1.0.tar.gz
+A      web/source/glabels-0.1.1.tar.gz
+A      web/source/glabels-0.1.2.tar.gz
+A      web/source/glabels-0.1.3.tar.gz
+A      web/source/glabels-0.1.4.tar.gz
+A      web/source/glabels-0.1.5.tar.gz
+A      web/source/glabels-0.2.0.tar.gz
+A      web/source/glabels-0.2.1.tar.gz
+A      web/source/glabels-0.2.2.tar.gz
+A      web/source/glabels-0.2.3.tar.gz
+A      web/source/glabels-0.2.4.tar.gz
+A      web/source/glabels-0.3.0.tar.gz
+A      web/source/glabels-0.3.1.tar.gz
+A      web/source/glabels-0.3.2.tar.gz
+A      web/source/glabels-0.3.3.tar.gz
+A      web/source/glabels-0.3.4.tar.gz
+A      web/source/glabels-0.4.0.tar.gz
+A      web/source/glabels-0.4.1.tar.gz
+A      web/source/glabels-0.4.2.tar.gz
+A      web/source/glabels-0.4.3.tar.gz
+A      web/source/glabels-0.4.4.tar.gz
+A      web/source/glabels-0.4.5.tar.gz
+A      web/source/glabels-0.4.6.tar.gz
+A      web/source/glabels-1.89.0.tar.gz
+A      web/source/glabels-1.89.1.tar.gz
+A      web/source/glabels-1.89.2.tar.gz
+A      web/source/glabels-1.90.0.tar.gz
+A      web/source/glabels-1.91.0.tar.gz
+A      web/source/glabels-1.91.1.tar.gz
+A      web/source/glabels-1.92.0.tar.gz
+A      web/source/glabels-1.92.1.tar.gz
+A      web/source/glabels-1.92.2.tar.gz
+A      web/source/glabels-1.92.3.tar.gz
+A      web/source/glabels-1.93.0.tar.gz
+A      web/source/glabels-1.93.1.tar.gz
+A      web/source/glabels-1.93.2.tar.gz
+A      web/source/glabels-1.93.3.tar.gz
+A      web/tango-icons/applications-development.png
+A      web/tango-icons/applications-internet.png
+A      web/tango-icons/dialog-information.png
+A      web/tango-icons/emblem-photos.png
+A      web/tango-icons/help-browser.png
+A      web/tango-icons/internet-news-reader.png
+A      web/tango-icons/package-x-generic.png
+A      web/tango-icons/system-users.png
+
+commit 251a5dee819b418665ab35f0438fd86f43ba7335
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-10-21
+
+    2007-10-21 Jim Evins  <evins@snaught.com>
+
+       * data/glade/wdgt-media-select.glade:
+       * src/wdgt-media-select.c:
+               Added brand to filter settings.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@684
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glade/wdgt-media-select.glade
+M      glabels2/src/wdgt-media-select.c
+
+commit 387dce347efdd1ca66fb73d6e44c26e1aa6d93e0
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-10-21
+
+    2007-10-21 Jim Evins  <evins@snaught.com>
+
+       * data/dtd/glabels-2.2.dtd:
+               Forgot to replace Alias name attribute with brand and
+               part attributes.
+       * data/templates/avery-iso-templates.xml:
+       * data/templates/avery-other-templates.xml:
+       * data/templates/avery-us-templates.xml:
+       * data/templates/misc-iso-templates.xml:
+       * data/templates/misc-other-templates.xml:
+       * data/templates/misc-us-templates.xml:
+       * data/templates/zweckform-iso-templates.xml:
+               Replaced all name attributes with brand/part attribute
+               pairs.
+
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@683
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/dtd/glabels-2.2.dtd
+M      glabels2/data/templates/avery-iso-templates.xml
+M      glabels2/data/templates/avery-other-templates.xml
+M      glabels2/data/templates/avery-us-templates.xml
+M      glabels2/data/templates/misc-iso-templates.xml
+M      glabels2/data/templates/misc-other-templates.xml
+M      glabels2/data/templates/misc-us-templates.xml
+M      glabels2/data/templates/zweckform-iso-templates.xml
+
+commit 2e4ddae04caaf2ab9a5dea48d2c5961aeaf081a7
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-10-21
+
+    2007-10-20 Jim Evins  <evins@snaught.com>
+
+       * src/stock-pixmaps/*.png
+               Updated icons to use Tango color palette.
+
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@682
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/stock-pixmaps/stock_align_bottom_16.png
+M      glabels2/src/stock-pixmaps/stock_align_hcenter_16.png
+M      glabels2/src/stock-pixmaps/stock_align_left_16.png
+M      glabels2/src/stock-pixmaps/stock_align_right_16.png
+M      glabels2/src/stock-pixmaps/stock_align_top_16.png
+M      glabels2/src/stock-pixmaps/stock_align_vcenter_16.png
+M      glabels2/src/stock-pixmaps/stock_box_16.png
+M      glabels2/src/stock-pixmaps/stock_box_24.png
+M      glabels2/src/stock-pixmaps/stock_bucket_fill_16.png
+M      glabels2/src/stock-pixmaps/stock_bucket_fill_24.png
+M      glabels2/src/stock-pixmaps/stock_ellipse_16.png
+M      glabels2/src/stock-pixmaps/stock_ellipse_24.png
+M      glabels2/src/stock-pixmaps/stock_image_24.png
+M      glabels2/src/stock-pixmaps/stock_merge_16.png
+M      glabels2/src/stock-pixmaps/stock_merge_24.png
+M      glabels2/src/stock-pixmaps/stock_order_bottom_16.png
+M      glabels2/src/stock-pixmaps/stock_order_top_16.png
+M      glabels2/src/stock-pixmaps/stock_properties_16.png
+M      glabels2/src/stock-pixmaps/stock_properties_24.png
+
+commit a068fff04513122c2b6c7d039aeb9987b19350e2
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-10-20
+
+    2007-10-20 Jim Evins  <evins@snaught.com>
+
+       * data/dtd/Makefile.am:
+       * data/dtd/glabels-2.0.dtd:
+       * data/dtd/glabels-2.2.dtd:
+               Rename glabels-2.0.dtd to glabels-2.2.dtd.  Added brand
+               and part attributes to
+               template node.
+       * libglabels/template.c:
+       * libglabels/template.h:
+       * libglabels/xml-template.c:
+       * libglabels/xml.h:
+               Added brand and part attributes to template and alias
+               structures and nodes.
+       * src/file.c:
+       * src/label.c:
+       * src/mini-preview-pixbuf-cache.c:
+       * src/template-designer.c:
+       * src/wdgt-media-select.c:
+               Use modified libglabels API.
+       * docs/libglabels/libglabels-decl-list.txt:
+       * docs/libglabels/libglabels-sections.txt:
+       * docs/libglabels/libglabels-undocumented.txt:
+       * docs/libglabels/tmpl/template-construction.sgml:
+       * docs/libglabels/tmpl/template-db.sgml:
+       * docs/libglabels/tmpl/template-struct.sgml:
+               Update libglabels documentation to reflect above
+               modifications.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@681
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/dtd/Makefile.am
+R098   glabels2/data/dtd/glabels-2.0.dtd
+glabels2/data/dtd/glabels-2.2.dtd
+M      glabels2/docs/libglabels/libglabels-decl-list.txt
+M      glabels2/docs/libglabels/libglabels-sections.txt
+M      glabels2/docs/libglabels/libglabels-undocumented.txt
+M      glabels2/docs/libglabels/tmpl/template-construction.sgml
+M      glabels2/docs/libglabels/tmpl/template-db.sgml
+M      glabels2/docs/libglabels/tmpl/template-struct.sgml
+M      glabels2/libglabels/template.c
+M      glabels2/libglabels/template.h
+M      glabels2/libglabels/xml-template.c
+M      glabels2/libglabels/xml.h
+M      glabels2/src/file.c
+M      glabels2/src/label.c
+M      glabels2/src/mini-preview-pixbuf-cache.c
+M      glabels2/src/template-designer.c
+M      glabels2/src/wdgt-media-select.c
+
+commit 830b1c677df8aef20f24fa11c5dfc3591bf068ee
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-10-15
+
+    2007-10-14 Jim Evins  <evins@snaught.com>
+
+       * docs/libglabels/libglabels-decl-list.txt:
+       * docs/libglabels/libglabels-sections.txt:
+       * docs/libglabels/libglabels-undocumented.txt:
+       * docs/libglabels/tmpl/category.sgml:
+       * libglabels/category.c:
+       * libglabels/category.h:
+               Added lgl_category_get_id_list() and
+               lgl_category_free_id_list() to have
+       parity with paper functions.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@680
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/docs/libglabels/libglabels-decl-list.txt
+M      glabels2/docs/libglabels/libglabels-sections.txt
+M      glabels2/docs/libglabels/libglabels-undocumented.txt
+M      glabels2/docs/libglabels/tmpl/category.sgml
+M      glabels2/libglabels/category.c
+M      glabels2/libglabels/category.h
+
+commit 1ec161acb06ebf7440a74f4cf46d927a379980c3
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-10-13
+
+    2007-10-12 Jim Evins  <evins@snaught.com>
+
+       * docs/libglabels/libglabels-decl-list.txt:
+       * docs/libglabels/libglabels-sections.txt:
+       * docs/libglabels/libglabels-undocumented.txt:
+       * docs/libglabels/tmpl/category.sgml:
+       * docs/libglabels/tmpl/enums.sgml:
+       * docs/libglabels/tmpl/libglabels-unused.sgml:
+       * docs/libglabels/tmpl/paper.sgml:
+       * docs/libglabels/tmpl/template-struct.sgml:
+       * libglabels/init.c:
+       * libglabels/template.c:
+       * libglabels/template.h:
+               Another pass at fleshing out the libglabels documentation.
+       * src/cairo-label-path.c:
+       * src/cairo-markup-path.c:
+       * src/label.c:
+       * src/mini-preview-pixbuf.c:
+       * src/print-op.c:
+       * src/print.c:
+       * src/view.c:
+       * src/wdgt-media-select.c:
+       * src/wdgt-mini-preview.c:
+       * src/wdgt-print-copies.c:
+       * src/wdgt-print-merge.c:
+       * src/wdgt-rotate-label.c:
+               Removed lgl_template_get_first_frame() from libglabels
+               API and all references.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@679
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/docs/libglabels/libglabels-decl-list.txt
+M      glabels2/docs/libglabels/libglabels-sections.txt
+M      glabels2/docs/libglabels/libglabels-undocumented.txt
+M      glabels2/docs/libglabels/tmpl/category.sgml
+M      glabels2/docs/libglabels/tmpl/enums.sgml
+M      glabels2/docs/libglabels/tmpl/libglabels-unused.sgml
+M      glabels2/docs/libglabels/tmpl/paper.sgml
+M      glabels2/docs/libglabels/tmpl/template-struct.sgml
+M      glabels2/libglabels/init.c
+M      glabels2/libglabels/template.c
+M      glabels2/libglabels/template.h
+M      glabels2/src/cairo-label-path.c
+M      glabels2/src/cairo-markup-path.c
+M      glabels2/src/label.c
+M      glabels2/src/mini-preview-pixbuf.c
+M      glabels2/src/print-op.c
+M      glabels2/src/print.c
+M      glabels2/src/view.c
+M      glabels2/src/wdgt-media-select.c
+M      glabels2/src/wdgt-mini-preview.c
+M      glabels2/src/wdgt-print-copies.c
+M      glabels2/src/wdgt-print-merge.c
+M      glabels2/src/wdgt-rotate-label.c
+
+commit 7b4ddd14f3013baa2e305a7d8f724ac5bedea6e1
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-10-12
+
+    2007-10-11 Jim Evins  <evins@snaught.com>
+       * configure.in:
+               Extended checks for deprecated symbols.
+       * libglabels/template.c:
+               Removed g_strcasecmp references, which are deprecated.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@678
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+M      glabels2/libglabels/template.c
+
+commit d04a1b6e0b58d4b4e97836c936a38c1a9c8039e0
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-10-10
+
+    2007-10-09 Jim Evins  <evins@snaught.com>
+
+       * src/merge-evolution.c:
+               Create address book if it does not exist.  Also, be more
+               robust about handling
+               error conditions -- don't just assume GError has been set.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@677
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/merge-evolution.c
+
+commit bd566146fa954271ebcb3536251c5c521f0a9e87
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-10-08
+
+    2007-10-08 Jim Evins  <evins@snaught.com>
+
+       * libglabels/template.c:
+       * libglabels/xml-template.c:
+       * src/template-designer.c:
+               Missed some symbols with libglabels API work
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@676
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/libglabels/template.c
+M      glabels2/libglabels/xml-template.c
+M      glabels2/src/template-designer.c
+
+commit 52befabc0173ee7dcd6e4e662cc60e57c7240c98
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-10-02
+
+    2007-10-01 Jim Evins  <evins@snaught.com>
+
+       * docs/libglabels/libglabels-decl-list.txt:
+       * docs/libglabels/libglabels-docs.sgml:
+       * docs/libglabels/libglabels-sections.txt:
+       * docs/libglabels/libglabels-undocumented.txt:
+       * docs/libglabels/tmpl/category.sgml:
+       * docs/libglabels/tmpl/enums.sgml:
+       * docs/libglabels/tmpl/init.sgml:
+       * docs/libglabels/tmpl/libglabels-unused.sgml:
+       * docs/libglabels/tmpl/paper.sgml:
+       * docs/libglabels/tmpl/template-construction.sgml:
+       * docs/libglabels/tmpl/template-db.sgml:
+       * docs/libglabels/tmpl/template-misc.sgml:
+       * docs/libglabels/tmpl/template-struct.sgml:
+       * docs/libglabels/tmpl/template.sgml:
+       * docs/libglabels/tmpl/xml-category.sgml:
+       * docs/libglabels/tmpl/xml-template.sgml:
+       * libglabels/category.h:
+       * libglabels/init.c:
+       * libglabels/libglabels-private.h:
+       * libglabels/paper.h:
+       * libglabels/template.c:
+       * libglabels/template.h:
+       * libglabels/xml-template.h:
+               Basic documentation framework for libglabels updated.
+               This still needs some
+               fleshing out.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@675
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/docs/libglabels/libglabels-decl-list.txt
+M      glabels2/docs/libglabels/libglabels-docs.sgml
+M      glabels2/docs/libglabels/libglabels-sections.txt
+M      glabels2/docs/libglabels/libglabels-undocumented.txt
+A      glabels2/docs/libglabels/tmpl/category.sgml
+M      glabels2/docs/libglabels/tmpl/enums.sgml
+M      glabels2/docs/libglabels/tmpl/init.sgml
+M      glabels2/docs/libglabels/tmpl/libglabels-unused.sgml
+M      glabels2/docs/libglabels/tmpl/paper.sgml
+A      glabels2/docs/libglabels/tmpl/template-construction.sgml
+A      glabels2/docs/libglabels/tmpl/template-db.sgml
+C050   glabels2/docs/libglabels/tmpl/init.sgml
+glabels2/docs/libglabels/tmpl/template-misc.sgml
+A      glabels2/docs/libglabels/tmpl/template-struct.sgml
+D      glabels2/docs/libglabels/tmpl/template.sgml
+A      glabels2/docs/libglabels/tmpl/xml-category.sgml
+M      glabels2/docs/libglabels/tmpl/xml-template.sgml
+M      glabels2/libglabels/category.h
+M      glabels2/libglabels/init.c
+M      glabels2/libglabels/libglabels-private.h
+M      glabels2/libglabels/paper.h
+M      glabels2/libglabels/template.c
+M      glabels2/libglabels/template.h
+M      glabels2/libglabels/xml-template.h
+
+commit c1dd8eca6b4bdb77ba47a74b0bc760cb90ecbf7a
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-09-27
+
+    2007-09-27 Jim Evins  <evins@snaught.com>
+
+       * docs/libglabels/libglabels-decl-list.txt:
+       * docs/libglabels/libglabels-docs.sgml:
+       * docs/libglabels/libglabels-sections.txt:
+       * docs/libglabels/libglabels-undocumented.txt:
+       * docs/libglabels/tmpl/enums.sgml:
+       * docs/libglabels/tmpl/init.sgml:
+       * docs/libglabels/tmpl/libglabels-unused.sgml:
+       * docs/libglabels/tmpl/paper.sgml:
+       * docs/libglabels/tmpl/template.sgml:
+       * docs/libglabels/tmpl/xml-paper.sgml:
+       * docs/libglabels/tmpl/xml-template.sgml:
+       * docs/libglabels/tmpl/xml.sgml:
+       * libglabels/Makefile.am:
+       * libglabels/category.c:
+       * libglabels/category.h:
+       * libglabels/enums.h:
+       * libglabels/init.c:
+       * libglabels/init.h:
+       * libglabels/libglabels-private.h:
+       * libglabels/libglabels.h:
+       * libglabels/paper.c:
+       * libglabels/paper.h:
+       * libglabels/template.c:
+       * libglabels/template.h:
+       * libglabels/xml-category.c:
+       * libglabels/xml-category.h:
+       * libglabels/xml-paper.c:
+       * libglabels/xml-paper.h:
+       * libglabels/xml-template.c:
+       * libglabels/xml-template.h:
+       * libglabels/xml.c:
+       * libglabels/xml.h:
+       * src/cairo-label-path.c:
+       * src/cairo-label-path.h:
+       * src/cairo-markup-path.c:
+       * src/cairo-markup-path.h:
+       * src/file.c:
+       * src/glabels-batch.c:
+       * src/glabels.c:
+       * src/label-object.c:
+       * src/label.c:
+       * src/label.h:
+       * src/mini-preview-pixbuf-cache.c:
+       * src/mini-preview-pixbuf.c:
+       * src/mini-preview-pixbuf.h:
+       * src/prefs-dialog.c:
+       * src/prefs-model.c:
+       * src/prefs-model.h:
+       * src/prefs.c:
+       * src/prefs.h:
+       * src/print-op.c:
+       * src/print.c:
+       * src/template-designer.c:
+       * src/view-barcode.c:
+       * src/view-box.c:
+       * src/view-ellipse.c:
+       * src/view-image.c:
+       * src/view-line.c:
+       * src/view.c:
+       * src/wdgt-media-select.c:
+       * src/wdgt-mini-preview.c:
+       * src/wdgt-mini-preview.h:
+       * src/wdgt-print-copies.c:
+       * src/wdgt-print-merge.c:
+       * src/wdgt-rotate-label.c:
+       * src/xml-label-04.c:
+       * src/xml-label.c:
+               Major cleanup of libglabels API -- this breaks API
+               compatibility with older
+               development and stable versions -- as far as I know,
+               there are currently
+               no external users of this library yet.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@674
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/docs/libglabels/libglabels-decl-list.txt
+M      glabels2/docs/libglabels/libglabels-docs.sgml
+M      glabels2/docs/libglabels/libglabels-sections.txt
+M      glabels2/docs/libglabels/libglabels-undocumented.txt
+M      glabels2/docs/libglabels/tmpl/enums.sgml
+A      glabels2/docs/libglabels/tmpl/init.sgml
+M      glabels2/docs/libglabels/tmpl/libglabels-unused.sgml
+M      glabels2/docs/libglabels/tmpl/paper.sgml
+M      glabels2/docs/libglabels/tmpl/template.sgml
+M      glabels2/docs/libglabels/tmpl/xml-paper.sgml
+M      glabels2/docs/libglabels/tmpl/xml-template.sgml
+M      glabels2/docs/libglabels/tmpl/xml.sgml
+M      glabels2/libglabels/Makefile.am
+M      glabels2/libglabels/category.c
+M      glabels2/libglabels/category.h
+M      glabels2/libglabels/enums.h
+A      glabels2/libglabels/init.c
+C066   glabels2/libglabels/libglabels.h        glabels2/libglabels/init.h
+M      glabels2/libglabels/libglabels-private.h
+M      glabels2/libglabels/libglabels.h
+M      glabels2/libglabels/paper.c
+M      glabels2/libglabels/paper.h
+M      glabels2/libglabels/template.c
+M      glabels2/libglabels/template.h
+M      glabels2/libglabels/xml-category.c
+M      glabels2/libglabels/xml-category.h
+M      glabels2/libglabels/xml-paper.c
+M      glabels2/libglabels/xml-paper.h
+M      glabels2/libglabels/xml-template.c
+M      glabels2/libglabels/xml-template.h
+M      glabels2/libglabels/xml.c
+M      glabels2/libglabels/xml.h
+M      glabels2/src/cairo-label-path.c
+M      glabels2/src/cairo-label-path.h
+M      glabels2/src/cairo-markup-path.c
+M      glabels2/src/cairo-markup-path.h
+M      glabels2/src/file.c
+M      glabels2/src/glabels-batch.c
+M      glabels2/src/glabels.c
+M      glabels2/src/label-object.c
+M      glabels2/src/label.c
+M      glabels2/src/label.h
+M      glabels2/src/mini-preview-pixbuf-cache.c
+M      glabels2/src/mini-preview-pixbuf.c
+M      glabels2/src/mini-preview-pixbuf.h
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/prefs-model.c
+M      glabels2/src/prefs-model.h
+M      glabels2/src/prefs.c
+M      glabels2/src/prefs.h
+M      glabels2/src/print-op.c
+M      glabels2/src/print.c
+M      glabels2/src/template-designer.c
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-image.c
+M      glabels2/src/view-line.c
+M      glabels2/src/view.c
+M      glabels2/src/wdgt-media-select.c
+M      glabels2/src/wdgt-mini-preview.c
+M      glabels2/src/wdgt-mini-preview.h
+M      glabels2/src/wdgt-print-copies.c
+M      glabels2/src/wdgt-print-merge.c
+M      glabels2/src/wdgt-rotate-label.c
+M      glabels2/src/xml-label-04.c
+M      glabels2/src/xml-label.c
+
+commit be11ca532e497806c00fa59c084b0710668226f8
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-09-15
+
+    2007-09-14 Jim Evins  <evins@snaught.com>
+
+       * src/marshal.list:
+       * src/label.c:
+       * src/label.h:
+       * src/label-object.c:
+       * src/label-object.h:
+       * src/label-barcode.c:
+       * src/label-ellipse.c:
+       * src/view.c:
+       * src/view-object.c:
+       * src/view-barcode.c:
+       * src/view-box.c:
+       * src/view-ellipse.c:
+       * src/view-image.c:
+       * src/view-line.c:
+       * src/view-text.c:
+               Better separation of model from view.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@673
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/label-barcode.c
+M      glabels2/src/label-ellipse.c
+M      glabels2/src/label-object.c
+M      glabels2/src/label-object.h
+M      glabels2/src/label.c
+M      glabels2/src/label.h
+M      glabels2/src/marshal.list
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-image.c
+M      glabels2/src/view-line.c
+M      glabels2/src/view-object.c
+M      glabels2/src/view-text.c
+M      glabels2/src/view.c
+
+commit 9fe68ac1e34bd2d8067d7ba1b11d199d789e6c43
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-08-22
+
+    2007-08-21 Jim Evins  <evins@snaught.com>
+
+       * src/print-op.c: (create_custom_widget_cb):
+               Fix problem with force_outline_flag -- don't override
+               with default.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@672
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/print-op.c
+
+commit eadd088d7026e249e02e8e72aadc5e24ef2d6669
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-08-22
+
+    2007-08-21 Jim Evins  <evins@snaught.com>
+
+       * data/dtd/glabels-2.0.dtd:
+       * libglabels/template.c:
+       * libglabels/template.h:
+       * libglabels/xml-template.c:
+       * src/cairo-markup-path.c:
+               Added "Markup-rect" element to template format.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@671
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/dtd/glabels-2.0.dtd
+M      glabels2/libglabels/template.c
+M      glabels2/libglabels/template.h
+M      glabels2/libglabels/xml-template.c
+M      glabels2/src/cairo-markup-path.c
+
+commit f4b0642bf5404f4000d1a5931e24343fc3c39a53
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-08-22
+
+    2007-08-21 Jim Evins  <evins@snaught.com>
+
+       * configure.in:
+               Changed version to 2.1.pre5svn.
+       * src/view.c: (draw_markup_layer):
+               Do a stroke for each markup path, otherwise multiple
+               markups
+               get connected.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@670
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+M      glabels2/src/view.c
+
+commit 0add4c0381f437d2ddd4ea70b4af9e496f36fb3f
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-08-18
+
+    2007-08-17 Jim Evins  <evins@snaught.com>
+
+       * configure.in:
+               Bump libglabels revision numbers for 2.1.4 release.
+
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@667
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+
+commit c37dbc205f6a08254456ca5e6eabf5ddda0c2e85
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-08-17
+
+    2007-08-16 Jim Evins  <evins@snaught.com>
+
+       * Makefile.am:
+               Include subdir iec16022-0.2.1.
+       * NEWS:
+       * configure.in:
+       * glabels.spec.in:
+               Preparation for 2.1.4.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@666
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/Makefile.am
+M      glabels2/NEWS
+M      glabels2/configure.in
+M      glabels2/docs/libglabels/libglabels-decl-list.txt
+M      glabels2/docs/libglabels/libglabels-undocumented.txt
+M      glabels2/docs/libglabels/tmpl/enums.sgml
+M      glabels2/docs/libglabels/tmpl/libglabels-unused.sgml
+M      glabels2/docs/libglabels/tmpl/libglabels.sgml
+M      glabels2/docs/libglabels/tmpl/paper.sgml
+M      glabels2/docs/libglabels/tmpl/template.sgml
+M      glabels2/docs/libglabels/tmpl/xml-paper.sgml
+M      glabels2/docs/libglabels/tmpl/xml-template.sgml
+M      glabels2/docs/libglabels/tmpl/xml.sgml
+M      glabels2/glabels.spec.in
+
+commit 23849ca81b5519a810303a58f5fc9c1786f8183c
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-08-11
+
+    2007-08-11 Jim Evins  <evins@snaught.com>
+
+       * po/POTFILES.in:
+               Updated file list.
+       * configure.in:
+       * po/eo.po:
+               Added Esperanto translation.  Provided by Antonio C.
+               Codazzi "la Filozofo" <f_sophia@libero.it>.
+       * po/fr.po:
+               Updated French translation. Provided by Claude Paroz
+               <claude@2xlibre.net>.
+       * AUTHORS:
+               Updated to reflect above translations.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@665
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+M      glabels2/po/POTFILES.in
+A      glabels2/po/eo.po
+M      glabels2/po/fr.po
+
+commit 41fd335f6a64f47c220865ce5e4ea993f3aed19f
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-08-11
+
+    2007-08-11 Jim Evins  <evins@snaught.com>
+
+       * AUTHORS:
+       * data/templates/avery-iso-templates.xml:
+       * data/templates/avery-us-templates.xml:
+       * data/templates/misc-iso-templates.xml:
+       * data/templates/misc-other-templates.xml:
+       * data/templates/misc-us-templates.xml:
+       * data/templates/zweckform-iso-templates.xml:
+               Caught up with backlog of template submissions.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@664
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/data/templates/avery-iso-templates.xml
+M      glabels2/data/templates/avery-us-templates.xml
+M      glabels2/data/templates/misc-iso-templates.xml
+M      glabels2/data/templates/misc-other-templates.xml
+M      glabels2/data/templates/misc-us-templates.xml
+M      glabels2/data/templates/zweckform-iso-templates.xml
+
+commit 4d42d2cdb0267a4a7a702ddea96ad03afe5774ce
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-08-11
+
+    2007-08-10 Jim Evins  <evins@snaught.com>
+
+       * src/bc-postnet.c: (gl_barcode_postnet_new):
+       * src/bc.c:
+               Added support for Brazilian CEPNet barcodes.  This is
+               simply an
+               instance of the US POSTNET format with 8 digits.
+               Patch supplied
+               by Mário Meyer in bug # 1768792.
+       * AUTHORS:
+               Updated acknowledgments to reflect above patch and
+               recent shuffling
+               of underlying technology.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@663
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/src/bc-postnet.c
+M      glabels2/src/bc.c
+
+commit c6ae0e48ca2e5c3675d863a3f0ff82c54b952400
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-08-10
+
+    Some updates to TODO.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@662
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/TODO
+
+commit 71660d95ad493fc253582ef351fdffe5a143ed99
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-05-13
+
+    2007-05-13 Jim Evins  <evins@snaught.com>
+
+       * src/merge-text.c: (parse_line), (parse_field):
+               Remove leading and trailing spaces from CSV fields,
+               unless quoted.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@661
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/merge-text.c
+
+commit 76cb751459575fbd6a6ccfbd26aac9cb28bcb974
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-05-10
+
+    2007-05-09 Jim Evins  <evins@snaught.com>
+
+       * src/object-editor-bc-page.c:
+       * src/object-editor-data-page.c:
+       * src/object-editor-fill-page.c:
+       * src/object-editor-image-page.c:
+       * src/object-editor-line-page.c:
+       * src/object-editor-lsize-page.c:
+       * src/object-editor-position-page.c:
+       * src/object-editor-private.h:
+       * src/object-editor-shadow-page.c:
+       * src/object-editor-size-page.c:
+       * src/object-editor-text-page.c:
+       * src/object-editor.c:
+       * src/prefs-dialog.c:
+       * src/template-designer.c:
+       * src/ui-property-bar.c:
+       * src/wdgt-media-select.c:
+               Replaced signal block/unblock pairs with simple flags.
+               This reduces
+               some code clutter, hopefully making it easier to read.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@660
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/object-editor-bc-page.c
+M      glabels2/src/object-editor-data-page.c
+M      glabels2/src/object-editor-fill-page.c
+M      glabels2/src/object-editor-image-page.c
+M      glabels2/src/object-editor-line-page.c
+M      glabels2/src/object-editor-lsize-page.c
+M      glabels2/src/object-editor-position-page.c
+M      glabels2/src/object-editor-private.h
+M      glabels2/src/object-editor-shadow-page.c
+M      glabels2/src/object-editor-size-page.c
+M      glabels2/src/object-editor-text-page.c
+M      glabels2/src/object-editor.c
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/template-designer.c
+M      glabels2/src/ui-property-bar.c
+M      glabels2/src/wdgt-media-select.c
+
+commit 63c94320e22a52c443f063092dee5256042eff52
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-05-05
+
+    2007-05-05 Jim Evins  <evins@snaught.com>
+
+       * src/template-designer.c: (apply_cb):
+               Add new template to mini-preview pixbuf cache.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@659
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/template-designer.c
+
+commit 0e067c75fb73a72914d789d2922a3828523c11a8
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-05-03
+
+    2007-05-03 Jim Evins  <evins@snaught.com>
+
+       * src/label-image.c: (gl_label_image_init), (draw_object):
+               Scale default pixbuf up, to prevent bluring.
+               Use cairo_fill to
+               render image.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@658
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/label-image.c
+
+commit d82e7fed684814b37b3306114b66faaaa2336a1b
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-05-03
+
+    2007-05-02 Jim Evins  <evins@snaught.com>
+
+       * src/view.c: (draw_select_region_layer),
+       (motion_notify_event_cb),
+       (button_release_event_cb):
+               Removed attempt at rendering optimization by clipping
+               the updates
+               to areas affected -- this actually seemed to hurt update
+               performance.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@657
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/view.c
+
+commit 6c00fe9f6e32f702f5887d6145f8b88e2e09de3d
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-05-01
+
+    2007-04-30 Jim Evins  <evins@snaught.com>
+
+       * src/color.h:
+       * src/color.c: (gl_color_shadow), (gl_color_node_new_default),
+       (gl_color_node_equal), (gl_color_node_expand):
+       * src/label-barcode.c: (draw_object):
+       * src/label-box.c: (draw_object), (draw_shadow):
+       * src/label-ellipse.c: (draw_object), (draw_shadow):
+       * src/label-line.c: (draw_object), (draw_shadow):
+       * src/label-text.c: (draw_object), (draw_shadow):
+       * src/wdgt-mini-preview.c: (draw_shadow), (draw_labels):
+       * src/wdgt-rotate-label.c: (drawingarea_update):
+               Some cleanup to color related code.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@656
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/color.c
+M      glabels2/src/color.h
+M      glabels2/src/label-barcode.c
+M      glabels2/src/label-box.c
+M      glabels2/src/label-ellipse.c
+M      glabels2/src/label-line.c
+M      glabels2/src/label-text.c
+M      glabels2/src/wdgt-mini-preview.c
+M      glabels2/src/wdgt-rotate-label.c
+
+commit 4ca379add847194fa1375fe127e9800367f655e1
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-05-01
+
+    2007-04-30 Jim Evins  <evins@snaught.com>
+
+       * src/label.h:
+               Added glLabelRegion structure type.
+       * src/label-object.c: (gl_label_object_get_extent):
+       * src/label-object.h:
+               Modified gl_label_object_get_extent() to fill in a
+               glLabelRegion struct.
+       * src/view.h:
+       * src/view.c: (gl_view_update_region), (draw_select_region_layer),
+       (gl_view_select_region), (gl_view_align_selection_left),
+       (gl_view_align_selection_right),
+       (gl_view_align_selection_hcenter),
+       (gl_view_align_selection_top), (gl_view_align_selection_bottom),
+       (gl_view_align_selection_vcenter),
+       (gl_view_center_selection_horiz), (gl_view_center_selection_vert),
+       (gl_view_move_selection), (gl_view_can_selection_text),
+       (motion_notify_event_cb), (button_press_event_cb),
+       (button_release_event_cb):
+               - Reconcile with new gl_label_object_get_extent() API.
+               - Use glLabelRegion for view->select_region.
+               - Added gl_view_update_region() to clip updates to region.
+               - Use gl_view_update_region() during manipulation of
+               view->select_region.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@655
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/label-object.c
+M      glabels2/src/label-object.h
+M      glabels2/src/label.h
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+
+commit b6893fe7ca71c477320ba676d3805e8561d393ad
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-04-27
+
+    2007-04-26 Jim Evins  <evins@snaught.com>
+
+       * src/mini-preview-pixbuf.c: (draw_paper), (draw_label_outlines),
+       (draw_label_outline):
+       * src/print.c: (print_crop_marks), (draw_outline):
+       * src/view-object.c: (gl_view_object_draw_handles):
+       * src/view.c: (draw_bg_layer), (draw_grid_layer),
+       (draw_markup_layer), (draw_fg_layer), (draw_select_region_layer):
+       * src/wdgt-mini-preview.c: (draw_paper), (draw_labels):
+       * src/wdgt-rotate-label.c: (drawingarea_update):
+               Added defines for various magic numbers.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@654
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/mini-preview-pixbuf.c
+M      glabels2/src/print.c
+M      glabels2/src/view-object.c
+M      glabels2/src/view.c
+M      glabels2/src/wdgt-mini-preview.c
+M      glabels2/src/wdgt-rotate-label.c
+
+commit 9f454a0a6e7c34a33cbe829be4cfd5374a4cde9a
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-04-26
+
+    2007-04-25 Jim Evins  <evins@snaught.com>
+
+       * src/label-text.c: (get_size), (draw_object), (draw_shadow):
+               Scale text down.  Cairo seems to render text too large.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@653
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/label-text.c
+
+commit 06ddcbb495e31a450b36bd7a90b7760d5ca9553a
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-04-25
+
+    2007-04-25 Jim Evins  <evins@snaught.com>
+
+       * src/view.h:
+       * src/view.c: (gl_view_update), (expose_cb),
+       (motion_notify_event_cb), (button_press_event_cb),
+       (button_release_event_cb):
+               - Try not to let updates get backed up.
+               - Grab pointer when doing any drag operations.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@652
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+
+commit 50418d4af1223ea832c83b09ac0e67027f97fd78
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-04-12
+
+    2007-04-11 Jim Evins  <evins@snaught.com>
+
+       * src/cairo-label-path.c: (gl_cairo_label_path),
+       (gl_cairo_rect_label_path), (gl_cairo_round_label_path),
+       (gl_cairo_cd_label_path):
+       * src/cairo-label-path.h:
+       * src/mini-preview-pixbuf.c: (draw_paper), (draw_label_outlines),
+       (draw_label_outline):
+       * src/print.c: (draw_outline), (clip_to_outline):
+       * src/view.c: (draw_bg_layer), (draw_fg_layer):
+       * src/wdgt-mini-preview.c: (draw_labels):
+       * src/wdgt-rotate-label.c: (drawingarea_update):
+               Modified to universally use gl_cairo_label_path() to
+               create paths
+               for labels.  Added shadow to mini preview in rotate
+               widget.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@651
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/cairo-label-path.c
+M      glabels2/src/cairo-label-path.h
+M      glabels2/src/mini-preview-pixbuf.c
+M      glabels2/src/print.c
+M      glabels2/src/view.c
+M      glabels2/src/wdgt-mini-preview.c
+M      glabels2/src/wdgt-rotate-label.c
+
+commit 964caeca001e6f6b7c26d5beb6dc5cc34b7debba
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-04-10
+
+    2007-04-10 Jim Evins  <evins@snaught.com>
+
+       * libglabels/template.h:
+       * libglabels/template.c: (gl_template_get_name_list_unique),
+       (gl_template_get_name_list_all), (gl_template_from_name):
+               Modified libglabels to allow you to get a list of all
+               template names
+               including all aliases or just a list of primary names
+               of each unique
+               template.
+       * src/Makefile.am:
+       * src/file.c: (gl_file_properties):
+       * src/glabels.c: (main):
+       * src/mini-preview-pixbuf-cache.h:
+       * src/mini-preview-pixbuf-cache.c:
+       * src/wdgt-media-select.c: (gl_wdgt_media_select_construct),
+       (filter_changed_cb), (load_list):
+               Added mini-preview pixbuf cache, so that only one
+               mini-preview is
+               needed for a unique template and gets reused for all
+               aliases.  These
+               pixbufs will also live for the life of the program so
+               they are not
+               rebuilt everytime a new label dialog is invoked.
+       * src/mini-preview-pixbuf.c: (draw_paper),
+       (draw_rect_label_outline), (draw_round_label_outline),
+       (draw_cd_label_outline):
+               Removed some comment artifacts.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@650
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/libglabels/template.c
+M      glabels2/libglabels/template.h
+M      glabels2/src/Makefile.am
+M      glabels2/src/file.c
+M      glabels2/src/glabels.c
+A      glabels2/src/mini-preview-pixbuf-cache.c
+A      glabels2/src/mini-preview-pixbuf-cache.h
+M      glabels2/src/mini-preview-pixbuf.c
+M      glabels2/src/wdgt-media-select.c
+
+commit b84b6dc42d8058bf402d94381a1c04f000b1eaa5
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-04-05
+
+    2007-04-04 Jim Evins  <evins@snaught.com>
+
+       * src/mini-preview-pixbuf.c: (gl_mini_preview_pixbuf_new),
+       (draw_paper), (draw_label_outlines), (draw_rect_label_outline),
+       (draw_round_label_outline), (draw_cd_label_outline):
+       * src/wdgt-media-select.c: (load_list):
+       * src/wdgt-rotate-label.c: (draw_cd_label_outline):
+               Cosmetic enhancments to mini previews.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@649
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/mini-preview-pixbuf.c
+M      glabels2/src/wdgt-media-select.c
+M      glabels2/src/wdgt-rotate-label.c
+
+commit 1be928597fdd42d641cc0a04d772e82254e54483
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-04-05
+
+    2007-04-04 Jim Evins  <evins@snaught.com>
+
+       * src/ui-property-bar.c: (gl_ui_property_bar_finalize),
+       (gl_ui_property_bar_construct):
+               Save copy of GladeXML tree so that we don't lose tooltips.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@648
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/ui-property-bar.c
+
+commit 9b65ed5d46a7f5dc3c4e8f2aedc0e770d98652a1
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-04-03
+
+    2007-04-02 Jim Evins  <evins@snaught.com>
+
+       * src/merge-properties-dialog.c:
+       * src/new-label-dialog.c:
+       * src/object-editor.c:
+       * src/prefs-dialog.c:
+       * src/print-op.c:
+       * src/template-designer.c:
+       * src/ui-property-bar.c:
+       * src/wdgt-media-select.c:
+       * src/wdgt-rotate-label.c:
+               Fixed several memory leaks.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@647
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/merge-properties-dialog.c
+M      glabels2/src/new-label-dialog.c
+M      glabels2/src/object-editor.c
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/print-op.c
+M      glabels2/src/template-designer.c
+M      glabels2/src/ui-property-bar.c
+M      glabels2/src/wdgt-media-select.c
+M      glabels2/src/wdgt-rotate-label.c
+
+commit 9ee204c455957fe69435d198bfe5dea1a76c4dcf
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-04-02
+
+    2007-04-01 Jim Evins  <evins@snaught.com>
+
+       * src/label-text.c: (gl_label_text_init), (copy),
+       (gl_label_text_set_lines), (buffer_changed_cb), (get_size),
+       (set_font_family), (set_font_size), (set_font_weight),
+       (set_font_italic_flag), (set_text_alignment),
+       (set_text_line_spacing):
+               Cache object size, so that expensive extent calculations
+               are only done
+               when needed.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@646
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/label-text.c
+
+commit f1f7eedc35c3d9b79d20df87a3bd9fa04d5f4801
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-03-31
+
+    2007-03-30 Jim Evins  <evins@snaught.com>
+
+       * src/prefs-model.c: (gl_prefs_model_load_settings):
+               Default to an unlimited list of recent documents, since
+               this parameter
+               seems to be pre-filter anyway.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@645
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/prefs-model.c
+
+commit 2bc6be422a9c43e13323282eac6561a1dc0a040a
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-03-31
+
+    2007-03-30 Jim Evins  <evins@snaught.com>
+
+       * src/label-box.c: (draw_shadow):
+       * src/label-ellipse.c: (draw_shadow):
+               Added missing shadow fill.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@644
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/label-box.c
+M      glabels2/src/label-ellipse.c
+
+commit 509bffa75a8b51d08dfd2103c309492c73572fa1
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-03-29
+
+    2007-03-28 Jim Evins  <evins@snaught.com>
+
+       * src/ui-commands.c: (gl_ui_cmd_file_print):
+               Unreferencing the print operation sometimes crashes.
+               Just don't do it
+               right now.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@643
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/ui-commands.c
+
+commit 98764f06e25c92bfbd923aaa2b0733ac5a98b888
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-03-29
+
+    2007-03-28 Jim Evins  <evins@snaught.com>
+
+       * src/print-op.c: (gl_print_op_construct),
+       (gl_print_op_get_settings), (gl_print_op_set_settings),
+       (gl_print_op_free_settings), (create_custom_widget_cb):
+       * src/print-op.h:
+       * src/ui-commands.c: (gl_ui_cmd_file_print):
+       * src/window.c: (gl_window_init):
+       * src/window.h:
+               Save print settings and custom settings between print
+               operations
+               on the same window.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@642
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/print-op.c
+M      glabels2/src/print-op.h
+M      glabels2/src/ui-commands.c
+M      glabels2/src/window.c
+M      glabels2/src/window.h
+
+commit a25478bf5ee5750eace1a8e62017dac72ecf908d
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-03-25
+
+    2007-03-24 Jim Evins  <evins@snaught.com>
+
+       * src/object-editor-image-page.c:
+       (gl_object_editor_prepare_image_page),
+       (gl_object_editor_set_image), (img_selection_changed_cb):
+               Workaround for GtkFileChooserButton bug # 327243.
+               This the root
+               cause for gLabels bug # 1192884.  I have actually observed
+               3 delayed
+               "selection-changed" signals -- the first 2 return NULL --
+               this is
+               what caused the image to reset to the default followed
+               by setting
+               it back to the original image, trying to fit it into a
+               new bounding
+               box.  This sequence of events is much more evident with
+               the new
+               cairo rendering.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@641
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/object-editor-image-page.c
+
+commit 80da57dd539f5b6d5118703b7b005740561b645a
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-03-24
+
+    2007-03-23 Jim Evins  <evins@snaught.com>
+
+       Merged all changes from experimental cairo branch to trunk.
+       Trunk no longer depends on libgnomecanvas or libgnomeprint[ui].
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@639
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+M      glabels2/src/Makefile.am
+M      glabels2/src/base64.c
+M      glabels2/src/bc-iec16022.c
+A      glabels2/src/cairo-ellipse-path.c
+C070   glabels2/src/xml-label-191.h    glabels2/src/cairo-ellipse-path.h
+A      glabels2/src/cairo-label-path.c
+C069   glabels2/src/xml-label-191.h    glabels2/src/cairo-label-path.h
+A      glabels2/src/cairo-markup-path.c
+R067   glabels2/src/xml-label-191.h    glabels2/src/cairo-markup-path.h
+D      glabels2/src/canvas-hacktext.c
+D      glabels2/src/canvas-hacktext.h
+M      glabels2/src/color.c
+M      glabels2/src/debug.c
+M      glabels2/src/debug.h
+M      glabels2/src/file.c
+M      glabels2/src/glabels-batch.c
+M      glabels2/src/glabels.c
+M      glabels2/src/label-barcode.c
+M      glabels2/src/label-box.c
+M      glabels2/src/label-ellipse.c
+M      glabels2/src/label-image.c
+M      glabels2/src/label-line.c
+M      glabels2/src/label-object.c
+M      glabels2/src/label-object.h
+M      glabels2/src/label-text.c
+M      glabels2/src/label-text.h
+M      glabels2/src/label.c
+M      glabels2/src/label.h
+M      glabels2/src/merge-properties-dialog.c
+M      glabels2/src/merge.c
+M      glabels2/src/new-label-dialog.c
+M      glabels2/src/object-editor-bc-page.c
+M      glabels2/src/object-editor-data-page.c
+M      glabels2/src/object-editor-edit-page.c
+M      glabels2/src/object-editor-fill-page.c
+M      glabels2/src/object-editor-image-page.c
+M      glabels2/src/object-editor-line-page.c
+M      glabels2/src/object-editor-private.h
+M      glabels2/src/object-editor-shadow-page.c
+M      glabels2/src/object-editor-text-page.c
+M      glabels2/src/object-editor.c
+M      glabels2/src/pixbuf-cache.c
+M      glabels2/src/print-op.c
+M      glabels2/src/print.c
+M      glabels2/src/recent.c
+M      glabels2/src/stock.c
+M      glabels2/src/template-designer.c
+M      glabels2/src/text-node.c
+M      glabels2/src/ui-commands.c
+M      glabels2/src/ui-property-bar.c
+M      glabels2/src/ui.c
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-barcode.h
+M      glabels2/src/view-box.c
+M      glabels2/src/view-box.h
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-ellipse.h
+D      glabels2/src/view-highlight.c
+D      glabels2/src/view-highlight.h
+M      glabels2/src/view-image.c
+M      glabels2/src/view-image.h
+M      glabels2/src/view-line.c
+M      glabels2/src/view-line.h
+M      glabels2/src/view-object.c
+M      glabels2/src/view-object.h
+M      glabels2/src/view-text.c
+M      glabels2/src/view-text.h
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+M      glabels2/src/wdgt-media-select.c
+M      glabels2/src/wdgt-print-copies.c
+M      glabels2/src/wdgt-print-merge.c
+M      glabels2/src/window.c
+M      glabels2/src/xml-label-04.c
+D      glabels2/src/xml-label-191.c
+M      glabels2/src/xml-label.c
+
+commit d105b1574ae720348f30ca814fb494e4d44fd344
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-02-18
+
+    2007-02-18 Jim Evins  <evins@snaught.com>
+
+       * src/bc.h:
+               GNOME_FONT_BOOK changed to PANGO_WEIGHT_NORMAL.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@615
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/bc.h
+
+commit 70d3926fcf186c46f553e1ea58a1072a9ab4c68f
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-02-14
+
+    2007-02-14 Jim Evins  <evins@snaught.com>
+
+       * src/base64.c:
+       * src/base64.h:
+       * src/bc-gnubarcode.c:
+       * src/bc-gnubarcode.h:
+       * src/bc-postnet.c:
+       * src/bc-postnet.h:
+       * src/bc.c:
+       * src/bc.h:
+       * src/canvas-hacktext.c:
+       * src/canvas-hacktext.h:
+       * src/debug.c:
+       * src/debug.h:
+       * src/file.c:
+       * src/file.h:
+       * src/glabels.c:
+       * src/hig.h:
+       * src/label-barcode.c:
+       * src/label-barcode.h:
+       * src/label-box.c:
+       * src/label-box.h:
+       * src/label-ellipse.c:
+       * src/label-ellipse.h:
+       * src/label-image.c:
+       * src/label-image.h:
+       * src/label-line.c:
+       * src/label-line.h:
+       * src/label-object.c:
+       * src/label-object.h:
+       * src/label-text.c:
+       * src/label-text.h:
+       * src/label.c:
+       * src/label.h:
+       * src/merge-evolution.c:
+       * src/merge-evolution.h:
+       * src/merge-init.c:
+       * src/merge-init.h:
+       * src/merge-properties-dialog.c:
+       * src/merge-properties-dialog.h:
+       * src/merge-text.c:
+       * src/merge-text.h:
+       * src/merge-vcard.c:
+       * src/merge-vcard.h:
+       * src/merge.c:
+       * src/merge.h:
+       * src/mini-preview-pixbuf.h:
+       * src/new-label-dialog.c:
+       * src/new-label-dialog.h:
+       * src/object-editor-bc-page.c:
+       * src/object-editor-data-page.c:
+       * src/object-editor-edit-page.c:
+       * src/object-editor-fill-page.c:
+       * src/object-editor-image-page.c:
+       * src/object-editor-line-page.c:
+       * src/object-editor-lsize-page.c:
+       * src/object-editor-position-page.c:
+       * src/object-editor-private.h:
+       * src/object-editor-size-page.c:
+       * src/object-editor-text-page.c:
+       * src/object-editor.c:
+       * src/object-editor.h:
+       * src/pixbuf-cache.c:
+       * src/pixbuf-cache.h:
+       * src/prefs-dialog.c:
+       * src/prefs-dialog.h:
+       * src/prefs-model.c:
+       * src/prefs-model.h:
+       * src/prefs.c:
+       * src/prefs.h:
+       * src/print-op.c:
+       * src/stock.c:
+       * src/stock.h:
+       * src/template-designer.c:
+       * src/text-node.c:
+       * src/text-node.h:
+       * src/ui-commands.c:
+       * src/ui-commands.h:
+       * src/ui-property-bar.c:
+       * src/ui-property-bar.h:
+       * src/ui-sidebar.c:
+       * src/ui-sidebar.h:
+       * src/ui-util.c:
+       * src/ui-util.h:
+       * src/ui.c:
+       * src/ui.h:
+       * src/util.c:
+       * src/util.h:
+       * src/view-barcode.c:
+       * src/view-barcode.h:
+       * src/view-box.c:
+       * src/view-box.h:
+       * src/view-ellipse.c:
+       * src/view-ellipse.h:
+       * src/view-highlight.c:
+       * src/view-highlight.h:
+       * src/view-image.c:
+       * src/view-image.h:
+       * src/view-line.c:
+       * src/view-line.h:
+       * src/view-object.c:
+       * src/view-object.h:
+       * src/view-text.c:
+       * src/view-text.h:
+       * src/view.c:
+       * src/view.h:
+       * src/wdgt-chain-button.c:
+       * src/wdgt-chain-button.h:
+       * src/wdgt-media-select.c:
+       * src/wdgt-mini-preview.c:
+       * src/wdgt-print-copies.c:
+       * src/wdgt-print-copies.h:
+       * src/wdgt-print-merge.c:
+       * src/wdgt-print-merge.h:
+       * src/wdgt-rotate-label.c:
+       * src/window.h:
+       * src/xml-label-04.c:
+       * src/xml-label-04.h:
+       * src/xml-label-191.c:
+       * src/xml-label-191.h:
+       * src/xml-label.c:
+       * src/xml-label.h:
+
+       Assorted superficial cleanup.  Including:
+       - Use G_DEFINE_TYPE for all objects.
+       - Reconcile style of all class initializer functions
+       - Reconcile style of all finalize functions
+       - Add emacs mode line to all source files
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@614
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/base64.c
+M      glabels2/src/base64.h
+M      glabels2/src/bc-gnubarcode.c
+M      glabels2/src/bc-gnubarcode.h
+M      glabels2/src/bc-postnet.c
+M      glabels2/src/bc-postnet.h
+M      glabels2/src/bc.c
+M      glabels2/src/bc.h
+M      glabels2/src/canvas-hacktext.c
+M      glabels2/src/canvas-hacktext.h
+M      glabels2/src/debug.c
+M      glabels2/src/debug.h
+M      glabels2/src/file.c
+M      glabels2/src/file.h
+M      glabels2/src/glabels.c
+M      glabels2/src/hig.h
+M      glabels2/src/label-barcode.c
+M      glabels2/src/label-barcode.h
+M      glabels2/src/label-box.c
+M      glabels2/src/label-box.h
+M      glabels2/src/label-ellipse.c
+M      glabels2/src/label-ellipse.h
+M      glabels2/src/label-image.c
+M      glabels2/src/label-image.h
+M      glabels2/src/label-line.c
+M      glabels2/src/label-line.h
+M      glabels2/src/label-object.c
+M      glabels2/src/label-object.h
+M      glabels2/src/label-text.c
+M      glabels2/src/label-text.h
+M      glabels2/src/label.c
+M      glabels2/src/label.h
+M      glabels2/src/merge-evolution.c
+M      glabels2/src/merge-evolution.h
+M      glabels2/src/merge-init.c
+M      glabels2/src/merge-init.h
+M      glabels2/src/merge-properties-dialog.c
+M      glabels2/src/merge-properties-dialog.h
+M      glabels2/src/merge-text.c
+M      glabels2/src/merge-text.h
+M      glabels2/src/merge-vcard.c
+M      glabels2/src/merge-vcard.h
+M      glabels2/src/merge.c
+M      glabels2/src/merge.h
+M      glabels2/src/mini-preview-pixbuf.h
+M      glabels2/src/new-label-dialog.c
+M      glabels2/src/new-label-dialog.h
+M      glabels2/src/object-editor-bc-page.c
+M      glabels2/src/object-editor-data-page.c
+M      glabels2/src/object-editor-edit-page.c
+M      glabels2/src/object-editor-fill-page.c
+M      glabels2/src/object-editor-image-page.c
+M      glabels2/src/object-editor-line-page.c
+M      glabels2/src/object-editor-lsize-page.c
+M      glabels2/src/object-editor-position-page.c
+M      glabels2/src/object-editor-private.h
+M      glabels2/src/object-editor-size-page.c
+M      glabels2/src/object-editor-text-page.c
+M      glabels2/src/object-editor.c
+M      glabels2/src/object-editor.h
+M      glabels2/src/pixbuf-cache.c
+M      glabels2/src/pixbuf-cache.h
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/prefs-dialog.h
+M      glabels2/src/prefs-model.c
+M      glabels2/src/prefs-model.h
+M      glabels2/src/prefs.c
+M      glabels2/src/prefs.h
+M      glabels2/src/print-op.c
+M      glabels2/src/stock.c
+M      glabels2/src/stock.h
+M      glabels2/src/template-designer.c
+M      glabels2/src/text-node.c
+M      glabels2/src/text-node.h
+M      glabels2/src/ui-commands.c
+M      glabels2/src/ui-commands.h
+M      glabels2/src/ui-property-bar.c
+M      glabels2/src/ui-property-bar.h
+M      glabels2/src/ui-sidebar.c
+M      glabels2/src/ui-sidebar.h
+M      glabels2/src/ui-util.c
+M      glabels2/src/ui-util.h
+M      glabels2/src/ui.c
+M      glabels2/src/ui.h
+M      glabels2/src/util.c
+M      glabels2/src/util.h
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-barcode.h
+M      glabels2/src/view-box.c
+M      glabels2/src/view-box.h
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-ellipse.h
+M      glabels2/src/view-highlight.c
+M      glabels2/src/view-highlight.h
+M      glabels2/src/view-image.c
+M      glabels2/src/view-image.h
+M      glabels2/src/view-line.c
+M      glabels2/src/view-line.h
+M      glabels2/src/view-object.c
+M      glabels2/src/view-object.h
+M      glabels2/src/view-text.c
+M      glabels2/src/view-text.h
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+M      glabels2/src/wdgt-chain-button.c
+M      glabels2/src/wdgt-chain-button.h
+M      glabels2/src/wdgt-media-select.c
+M      glabels2/src/wdgt-mini-preview.c
+M      glabels2/src/wdgt-print-copies.c
+M      glabels2/src/wdgt-print-copies.h
+M      glabels2/src/wdgt-print-merge.c
+M      glabels2/src/wdgt-print-merge.h
+M      glabels2/src/wdgt-rotate-label.c
+M      glabels2/src/window.c
+M      glabels2/src/window.h
+M      glabels2/src/xml-label-04.c
+M      glabels2/src/xml-label-04.h
+M      glabels2/src/xml-label-191.c
+M      glabels2/src/xml-label-191.h
+M      glabels2/src/xml-label.c
+M      glabels2/src/xml-label.h
+
+commit 665381a70f6353b094d0b1a1c4307b70a6e2b1be
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-02-07
+
+    2007-02-06 Jim Evins  <evins@snaught.com>
+
+    Assorted cleanup and removal of deprecated items.
+
+       * src/splash.c:
+       * src/splash.h:
+       * src/Makefile.am:
+               Removed annoying splash screen.
+       * src/glabels-batch.c: (main):
+       * src/glabels.c: (main):
+               Converted from popt to GOption.
+       * src/object-editor-shadow-page.c:
+       (gl_object_editor_set_shadow_state):
+               Removed deprecated method on GtkToggleButton.
+       * src/ui-commands.c: (gl_ui_cmd_help_about):
+               Removed dependency on libgnomui/qnome-url.h.
+       * src/template-designer.c:
+               Removed dependency on libgnome/gnome-program.h.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@613
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/Makefile.am
+M      glabels2/src/glabels-batch.c
+M      glabels2/src/glabels.c
+M      glabels2/src/object-editor-shadow-page.c
+D      glabels2/src/splash.c
+D      glabels2/src/splash.h
+M      glabels2/src/template-designer.c
+M      glabels2/src/ui-commands.c
+
+commit 0e1789c306720da62df98918ddd2b9d724f446dd
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-02-05
+
+    2007-02-04 Jim Evins  <evins@snaught.com>
+
+       * src/color.c:
+       * src/color.h:
+       * src/prefs-model.c:
+       * src/print.c: (draw_text_object):
+       * src/wdgt-mini-preview.c: (gl_wdgt_mini_preview_construct):
+               Removed GnomeCanvas artifacts from color.[ch] and
+               related modules.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@612
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/color.c
+M      glabels2/src/color.h
+M      glabels2/src/prefs-model.c
+M      glabels2/src/print.c
+M      glabels2/src/wdgt-mini-preview.c
+
+commit 8fba57d0f464c7fc6c08145ce8dc6f70eb693ac9
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-02-05
+
+    2007-02-04 Jim Evins  <evins@snaught.com>
+
+       * src/wdgt-mini-preview.c:
+       * src/wdgt-mini-preview.h:
+               Ported widget from GnomeCanvas to Cairo.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@611
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/wdgt-mini-preview.c
+M      glabels2/src/wdgt-mini-preview.h
+
+commit be3e30869fa93195007e75dc2646887490a8776a
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-02-03
+
+    2007-02-03 Jim Evins  <evins@snaught.com>
+
+       * data/glade/template-designer.glade:
+       * src/template-designer.c:
+       * src/template-designer.h:
+               Ported GnomeDruid to GtkAssistant.  Since libglade
+               does not
+               yet support the GtkAssistant and we derive directly from
+               the Assistant, the pages are layed out in a GtkNotebook in
+               the glade description -- we then append each page to the
+               assistant.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@610
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glade/template-designer.glade
+M      glabels2/src/template-designer.c
+M      glabels2/src/template-designer.h
+
+commit ab68c667d1b265e30fb49264231c48158904922f
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-01-26
+
+    2007-01-25 Jim Evins  <evins@snaught.com>
+
+       * data/glade/object-editor.glade:
+               Added dummy page to notebook, to prevent shadow page from
+               becoming the default current page at creation.
+       * src/view-box.c: (construct_properties_editor):
+       * src/view-ellipse.c: (construct_properties_editor):
+       * src/view-line.c: (construct_properties_editor):
+       * src/view-text.c: (construct_properties_editor):
+               Reconciled order of params.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@609
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glade/object-editor.glade
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-line.c
+M      glabels2/src/view-text.c
+
+commit ac594875e6e9bd1725ce7c1a2035b2b14ae4cf83
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-01-20
+
+    2007-01-19 Jim Evins  <evins@snaught.com>
+
+       * src/label-barcode.h:
+       * src/label-object.c: (gl_label_object_set_font_weight),
+       (gl_label_object_set_text_alignment),
+       (gl_label_object_get_font_weight),
+       (gl_label_object_get_text_alignment):
+       * src/label-object.h:
+       * src/label-text.c: (gl_label_text_instance_init), (copy),
+       (get_size), (set_font_family), (set_font_weight),
+       (set_text_alignment), (get_font_weight), (get_text_alignment):
+       * src/label-text.h:
+       * src/object-editor-text-page.c:
+       (gl_object_editor_prepare_text_page),
+       (gl_object_editor_set_font_family),
+       (gl_object_editor_set_font_weight),
+       (gl_object_editor_get_font_weight),
+       (gl_object_editor_set_text_alignment),
+       (gl_object_editor_get_text_alignment),
+       (gl_object_editor_set_text_color):
+       * src/object-editor.h:
+       * src/prefs-dialog.c: (construct_object_page),
+       (update_object_page_from_prefs), (update_prefs_from_object_page):
+       * src/prefs-model.c: (gl_prefs_model_save_settings),
+       (gl_prefs_model_load_settings):
+       * src/prefs-model.h:
+       * src/print.c: (draw_text_object):
+       * src/ui-property-bar.c: (gl_ui_property_bar_construct),
+       (reset_to_default_properties), (update_text_properties),
+       (font_bold_toggled_cb), (text_align_toggled_cb):
+       * src/ui-sidebar.c:
+       * src/util.c: (gl_util_align_to_string),
+       (gl_util_string_to_align),
+       (gl_util_weight_to_string), (gl_util_string_to_weight),
+       (gl_util_get_font_family_list), (gl_util_font_family_list_free):
+       * src/util.h:
+       * src/view-text.c: (update_object_from_editor_cb),
+       (update_editor_from_object_cb), (draw_hacktext), (draw_cursor):
+       * src/view.c: (gl_view_set_selection_text_alignment),
+       (gl_view_set_default_text_alignment),
+       (gl_view_get_default_text_alignment):
+       * src/view.h:
+       * src/xml-label-04.c: (xml04_parse_text_props):
+       * src/xml-label-191.c: (xml191_parse_text_props):
+       * src/xml-label.c: (xml_parse_object_text),
+       (xml_parse_toplevel_span), (xml_create_object_text),
+       (xml_create_toplevel_span):
+               Converted all model internals to Pango.  GnomeFont
+               remains in
+       view until GnomeCanvas can be replaced with a cairo-based canvas.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@608
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/label-barcode.h
+M      glabels2/src/label-object.c
+M      glabels2/src/label-object.h
+M      glabels2/src/label-text.c
+M      glabels2/src/label-text.h
+M      glabels2/src/object-editor-text-page.c
+M      glabels2/src/object-editor.h
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/prefs-model.c
+M      glabels2/src/prefs-model.h
+M      glabels2/src/print.c
+M      glabels2/src/ui-property-bar.c
+M      glabels2/src/ui-sidebar.c
+M      glabels2/src/util.c
+M      glabels2/src/util.h
+M      glabels2/src/view-text.c
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+M      glabels2/src/xml-label-04.c
+M      glabels2/src/xml-label-191.c
+M      glabels2/src/xml-label.c
+
+commit 151648533ca01ebdc95b8c28bb261ab8f4cdce50
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-01-17
+
+    2007-01-17 Jim Evins  <evins@snaught.com>
+
+       * src/Makefile.am:
+       * src/hig.c:
+               Deleted hig.c.
+       * src/hig.h:
+       * src/wdgt-print-copies.c: (gl_wdgt_print_copies_get_type),
+       (gl_wdgt_print_copies_construct):
+       * src/wdgt-print-copies.h:
+       * src/wdgt-print-merge.c: (gl_wdgt_print_merge_get_type),
+       (gl_wdgt_print_merge_construct):
+       * src/wdgt-print-merge.h:
+               Removed all remaining HIG wrapper widgets.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@607
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/Makefile.am
+D      glabels2/src/hig.c
+M      glabels2/src/hig.h
+M      glabels2/src/wdgt-print-copies.c
+M      glabels2/src/wdgt-print-copies.h
+M      glabels2/src/wdgt-print-merge.c
+M      glabels2/src/wdgt-print-merge.h
+
+commit f628d64bc327e037fa58c8c11f7919b62b182cb6
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-01-17
+
+    2007-01-16 Jim Evins  <evins@snaught.com>
+
+       * src/Makefile.am:
+       * src/print-dialog.c:
+       * src/print-dialog.h:
+       * src/print-op.c:
+       * src/print-op.h:
+       * src/template-designer.c: (print_test_cb):
+       * src/ui-commands.c: (gl_ui_cmd_file_print):
+       * src/print.c:
+               Renamed PrintDialog to PrintOp.  Added constructor
+               for batch
+               printing.
+       * src/glabels-batch.c: (main):
+               Converted to use new PrintOp object for printing.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@606
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/Makefile.am
+M      glabels2/src/glabels-batch.c
+D      glabels2/src/print-dialog.c
+D      glabels2/src/print-dialog.h
+A      glabels2/src/print-op.c
+A      glabels2/src/print-op.h
+M      glabels2/src/print.c
+M      glabels2/src/template-designer.c
+M      glabels2/src/ui-commands.c
+
+commit 4c211331406f4acb734bbc70bf9fc713e0afb196
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-01-16
+
+    2007-01-15 Jim Evins  <evins@snaught.com>
+
+       * data/glade/Makefile.am:
+       * data/glade/print-custom-widget.glade:
+       * src/print-dialog.c:
+       * src/print-dialog.h:
+       * src/print.c:
+       * src/print.h:
+       * src/template-designer.c: (print_test_cb):
+       * src/ui-commands.c: (gl_ui_cmd_file_print):
+       * src/wdgt-print-merge.c: (gl_wdgt_print_merge_get_copies):
+       * src/wdgt-print-merge.h:
+       * src/window.c: (gl_window_init):
+       * src/window.h:
+               Initial conversion to GtkPrintOperation.
+               Still to do:
+                - Remove font and other libgnomeprint[ui] from elsewhere
+                - Add batch initialization of print operation
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@605
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glade/Makefile.am
+A      glabels2/data/glade/print-custom-widget.glade
+M      glabels2/src/print-dialog.c
+M      glabels2/src/print-dialog.h
+M      glabels2/src/print.c
+M      glabels2/src/print.h
+M      glabels2/src/template-designer.c
+M      glabels2/src/ui-commands.c
+M      glabels2/src/wdgt-print-merge.c
+M      glabels2/src/wdgt-print-merge.h
+M      glabels2/src/window.c
+M      glabels2/src/window.h
+
+commit eb45e319f0ff83b292a56474ff2c1ba5137f51f5
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-01-09
+
+    2007-01-08 Jim Evins  <evins@snaught.com>
+       * configure.in:
+               Updated dependencies.  Set version to 2.1.pre4cvs.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@604
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+
+commit f36c9e446e0640cbf78b76117d3fa254181b7882
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-01-04
+
+    2007-01-03 Jim Evins  <evins@snaught.com>
+
+       * src/recent-files/*
+               Removed EggRecent stuff.
+       * configure.in:
+       * src/Makefile.am:
+       * src/file.c:
+       * src/recent.c:
+       * src/recent.h:
+       * src/ui-commands.c:
+       * src/ui-commands.h:
+       * src/ui.c:
+               Ported from EggRecent to GtkRecentManager.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@603
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+M      glabels2/src/Makefile.am
+M      glabels2/src/file.c
+D      glabels2/src/recent-files/Makefile.am
+D      glabels2/src/recent-files/egg-recent-item.c
+D      glabels2/src/recent-files/egg-recent-item.h
+D      glabels2/src/recent-files/egg-recent-model.c
+D      glabels2/src/recent-files/egg-recent-model.h
+D      glabels2/src/recent-files/egg-recent-util.c
+D      glabels2/src/recent-files/egg-recent-util.h
+D      glabels2/src/recent-files/egg-recent-view-uimanager.c
+D      glabels2/src/recent-files/egg-recent-view-uimanager.h
+D      glabels2/src/recent-files/egg-recent-view.c
+D      glabels2/src/recent-files/egg-recent-view.h
+D      glabels2/src/recent-files/egg-recent.h
+D      glabels2/src/recent-files/update-from-egg.sh
+M      glabels2/src/recent.c
+M      glabels2/src/recent.h
+M      glabels2/src/ui-commands.c
+M      glabels2/src/ui-commands.h
+M      glabels2/src/ui.c
+
+commit 8d177160daf7c299b803331e03b3b429070cb1eb
+Author: Jim Evins <evins@snaught.com>
+Date:  2007-01-03
+
+    2007-01-02 Jim Evins  <evins@snaught.com>
+
+       * configure.in:
+       * iec16022-0.2.1/BUGS:
+       * iec16022-0.2.1/CHANGELOG:
+       * iec16022-0.2.1/CREDITS:
+       * iec16022-0.2.1/INSTALL:
+       * iec16022-0.2.1/LICENSE:
+       * iec16022-0.2.1/Makefile.am:
+       * iec16022-0.2.1/Makefile.dist:
+       * iec16022-0.2.1/README:
+       * iec16022-0.2.1/README.glabels:
+       * iec16022-0.2.1/TODO:
+       * iec16022-0.2.1/iec16022.1:
+       * iec16022-0.2.1/iec16022.c:
+       * iec16022-0.2.1/iec16022ecc200.c:
+       * iec16022-0.2.1/iec16022ecc200.h:
+       * iec16022-0.2.1/image.c:
+       * iec16022-0.2.1/image.h:
+       * iec16022-0.2.1/reedsol.c:
+       * iec16022-0.2.1/reedsol.h:
+       * iec16022-0.2.1/test/testsuite-example.bin:
+       * iec16022-0.2.1/test/testsuite-example.eps:
+       * iec16022-0.2.1/test/testsuite-example.hex:
+       * iec16022-0.2.1/test/testsuite-example.png:
+       * iec16022-0.2.1/test/testsuite-example.text:
+       * iec16022-0.2.1/test/testsuite.sh:
+               Include modified copy of iec16022-0.2.1 to provide
+               encoding
+               support for datamatrix 2D barcodes.
+       * src/Makefile.am:
+       * src/bc-iec16022.c:
+       * src/bc-iec16022.h:
+       * src/bc.c:
+               Added initial datamatrix 2D barcode backend to barcode
+               code.
+       * INSTALL:
+       * gtk-doc.make:
+               Automatic updates to later versions of these files.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@602
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/INSTALL
+M      glabels2/configure.in
+M      glabels2/gtk-doc.make
+A      glabels2/iec16022-0.2.1/BUGS
+A      glabels2/iec16022-0.2.1/CHANGELOG
+A      glabels2/iec16022-0.2.1/CREDITS
+A      glabels2/iec16022-0.2.1/INSTALL
+A      glabels2/iec16022-0.2.1/LICENSE
+A      glabels2/iec16022-0.2.1/Makefile.am
+A      glabels2/iec16022-0.2.1/Makefile.dist
+A      glabels2/iec16022-0.2.1/README
+A      glabels2/iec16022-0.2.1/README.glabels
+A      glabels2/iec16022-0.2.1/TODO
+A      glabels2/iec16022-0.2.1/iec16022.1
+A      glabels2/iec16022-0.2.1/iec16022.c
+A      glabels2/iec16022-0.2.1/iec16022ecc200.c
+A      glabels2/iec16022-0.2.1/iec16022ecc200.h
+A      glabels2/iec16022-0.2.1/image.c
+A      glabels2/iec16022-0.2.1/image.h
+A      glabels2/iec16022-0.2.1/reedsol.c
+A      glabels2/iec16022-0.2.1/reedsol.h
+A      glabels2/iec16022-0.2.1/test/testsuite-example.bin
+A      glabels2/iec16022-0.2.1/test/testsuite-example.eps
+A      glabels2/iec16022-0.2.1/test/testsuite-example.hex
+A      glabels2/iec16022-0.2.1/test/testsuite-example.png
+A      glabels2/iec16022-0.2.1/test/testsuite-example.text
+A      glabels2/iec16022-0.2.1/test/testsuite.sh
+M      glabels2/src/Makefile.am
+A      glabels2/src/bc-iec16022.c
+A      glabels2/src/bc-iec16022.h
+M      glabels2/src/bc.c
+
+commit 468fd00dc4fcec77d28301274de4c50ebd4afaeb
+Author: Jim Evins <evins@snaught.com>
+Date:  2006-11-28
+
+    2006-11-28 Jim Evins  <evins@snaught.com>
+
+       * data/templates/avery-iso-templates.xml:
+       * data/templates/avery-us-templates.xml:
+       * data/templates/categories.xml:
+       * data/templates/misc-iso-templates.xml:
+       * data/templates/misc-us-templates.xml:
+       * data/templates/zweckform-iso-templates.xml:
+               More categorization.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@597
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/templates/avery-iso-templates.xml
+M      glabels2/data/templates/avery-us-templates.xml
+M      glabels2/data/templates/categories.xml
+M      glabels2/data/templates/misc-iso-templates.xml
+M      glabels2/data/templates/misc-us-templates.xml
+M      glabels2/data/templates/zweckform-iso-templates.xml
+
+commit 0348e755ccc6e81d040771bfbdff6ccd081908ff
+Author: Jim Evins <evins@snaught.com>
+Date:  2006-09-13
+
+    2006-09-12 Jim Evins  <evins@snaught.com>
+
+       * data/dtd/glabels-2.0.dtd:
+       * data/templates/Makefile.am:
+       * data/templates/avery-iso-templates.xml:
+       * data/templates/avery-other-templates.xml:
+       * data/templates/avery-us-templates.xml:
+       * data/templates/categories.xml:
+       * data/templates/misc-iso-templates.xml:
+       * data/templates/misc-other-templates.xml:
+       * data/templates/zweckform-iso-templates.xml:
+       * data/glade/Makefile.am:
+       * data/glade/new-label-dialog.glade:
+       * data/glade/wdgt-media-select.glade:
+       * data/glade/wdgt-rotate-label.glade:
+       * libglabels/Makefile.am:
+       * libglabels/category.c:
+       * libglabels/category.h:
+       * libglabels/libglabels.h:
+       * libglabels/paper.c:
+       * libglabels/template.c:
+       * libglabels/template.h:
+       * libglabels/xml-category.c:
+       * libglabels/xml-category.h:
+       * libglabels/xml-template.c:
+               Added support for category meta data.
+       * src/Makefile.am:
+       * src/file.c:
+       * src/mini-preview-pixbuf.c:
+       * src/mini-preview-pixbuf.h:
+       * src/new-label-dialog.c:
+       * src/new-label-dialog.h:
+       * src/wdgt-media-select.c:
+       * src/wdgt-media-select.h:
+       * src/wdgt-rotate-label.c:
+       * src/wdgt-rotate-label.h:
+               New "new label" dialog.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@596
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/dtd/glabels-2.0.dtd
+M      glabels2/data/glade/Makefile.am
+A      glabels2/data/glade/new-label-dialog.glade
+A      glabels2/data/glade/wdgt-media-select.glade
+A      glabels2/data/glade/wdgt-rotate-label.glade
+M      glabels2/data/templates/Makefile.am
+M      glabels2/data/templates/avery-iso-templates.xml
+M      glabels2/data/templates/avery-other-templates.xml
+M      glabels2/data/templates/avery-us-templates.xml
+A      glabels2/data/templates/categories.xml
+M      glabels2/data/templates/misc-iso-templates.xml
+M      glabels2/data/templates/misc-other-templates.xml
+M      glabels2/data/templates/zweckform-iso-templates.xml
+M      glabels2/gtk-doc.make
+M      glabels2/libglabels/Makefile.am
+A      glabels2/libglabels/category.c
+A      glabels2/libglabels/category.h
+M      glabels2/libglabels/libglabels.h
+M      glabels2/libglabels/paper.c
+M      glabels2/libglabels/template.c
+M      glabels2/libglabels/template.h
+A      glabels2/libglabels/xml-category.c
+C059   glabels2/libglabels/libglabels.h
+glabels2/libglabels/xml-category.h
+M      glabels2/libglabels/xml-template.c
+M      glabels2/src/Makefile.am
+M      glabels2/src/file.c
+A      glabels2/src/mini-preview-pixbuf.c
+A      glabels2/src/mini-preview-pixbuf.h
+A      glabels2/src/new-label-dialog.c
+A      glabels2/src/new-label-dialog.h
+M      glabels2/src/wdgt-media-select.c
+M      glabels2/src/wdgt-media-select.h
+M      glabels2/src/wdgt-rotate-label.c
+M      glabels2/src/wdgt-rotate-label.h
+
+commit 1667e133aa695fd8dd6a4475267e030699013804
+Author: Jim Evins <evins@snaught.com>
+Date:  2006-05-27
+
+    2006-05-27 Jim Evins  <evins@snaught.com>
+
+       * NEWS:
+       * autogen.sh:
+       * configure.in:
+               Preparation for 2.1.3.
+       * acinclude.m4:
+       * omf.make:
+       * xmldocs.make:
+               Removed.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@592
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/NEWS
+D      glabels2/acinclude.m4
+M      glabels2/autogen.sh
+M      glabels2/configure.in
+D      glabels2/omf.make
+D      glabels2/xmldocs.make
+
+commit 1089d9b2f104ef8d172aa3304ff7e90c88b2d68c
+Author: Jim Evins <evins@snaught.com>
+Date:  2006-05-23
+
+    2006-05-22 Jim Evins  <evins@snaught.com>
+
+       * src/print.c: (draw_barcode_object):
+               Don't print "Invalid barcode data" if data field is empty.
+               Patch provided
+               by Darren Warner <warnerd@users.sourceforge.net>.
+               Fixes Bug #1479839.
+       * AUTHORS:
+               Added acknowledgment for above patch.
+       * src/bc-gnubarcode.c: (gl_barcode_gnubarcode_new):
+       * src/bc-postnet.c: (postnet_code):
+               Removed "Invalid barcode data" warnings from stderr.
+       * src/view-barcode.c: (draw_barcode):
+               Draw box around barcode extent if data empty or invalid.
+               Center a
+               message whether the data is empty or invalid in box.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@591
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/src/bc-gnubarcode.c
+M      glabels2/src/bc-postnet.c
+M      glabels2/src/print.c
+M      glabels2/src/view-barcode.c
+
+commit ba2b25fb9ca6a4182e5503df8da832a3db0493d8
+Author: Jim Evins <evins@snaught.com>
+Date:  2006-05-22
+
+    2006-05-22 Jim Evins  <evins@snaught.com>
+
+       * src/print.c: (draw_text_object):
+               Check shadow state when printing text.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@590
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/print.c
+
+commit e846c1338e1a2608bf23eaceac97bb1f9a0e850e
+Author: Jim Evins <evins@snaught.com>
+Date:  2006-05-20
+
+    2006-05-20 Jim Evins  <evins@snaught.com>
+
+       * src/ui-commands.c: (gl_ui_cmd_view_grid_toggle),
+       (gl_ui_cmd_view_markup_toggle):
+               Fixed crash when grid or markup have been toggled
+               off during
+               a previous session.  Bug #1434324.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@589
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/ui-commands.c
+
+commit 888d81773c18187b4a66047121b9c75bdfdabde1
+Author: Jim Evins <evins@snaught.com>
+Date:  2006-04-06
+
+    2006-04-05 Jim Evins  <evins@snaught.com>
+
+       * src/object-editor.c: (gl_object_editor_set_key_names):
+               Fixed potential crash when freeing empty key list.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@588
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/object-editor.c
+
+commit aebddd9d6b63a0a09277fa0d5d57f29765ce3923
+Author: Jim Evins <evins@snaught.com>
+Date:  2006-03-12
+
+    2006-03-11 Jim Evins  <evins@snaught.com>
+
+       * src/print.c: (draw_text_object):
+       * src/view-text.c: (gl_view_text_new),
+       (construct_properties_editor), (update_object_from_editor_cb),
+       (update_editor_from_object_cb), (update_editor_from_label_cb),
+       (draw_hacktext):
+               Added shadow support to text object.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@587
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/print.c
+M      glabels2/src/view-text.c
+
+commit 5cc9f150f427f0b4e9cb70bd1b5a3cbd1818418d
+Author: Jim Evins <evins@snaught.com>
+Date:  2006-02-18
+
+    2006-02-18 Jim Evins  <evins@snaught.com>
+
+       * src/print.c: (draw_line_object):
+       * src/view-line.c: (gl_view_line_new),
+       (construct_properties_editor),
+       (update_canvas_item_from_object_cb),
+       (update_object_from_editor_cb), (update_editor_from_object_cb),
+       (update_editor_from_label_cb):
+               Added shadow support to line object.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@586
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/print.c
+M      glabels2/src/view-line.c
+
+commit dbcb557b5640362136324341b71a8d05ea87a476
+Author: Jim Evins <evins@snaught.com>
+Date:  2006-02-17
+
+    2006-02-16 Jim Evins  <evins@snaught.com>
+
+       * src/view-box.c:
+               Comment changes.
+       * src/print.c: (draw_ellipse_object):
+       * src/view-ellipse.c: (gl_view_ellipse_new),
+       (construct_properties_editor),
+       (update_canvas_item_from_object_cb),
+       (update_object_from_editor_cb), (update_editor_from_object_cb),
+       (update_editor_from_label_cb):
+               Added shadow support to ellipse object.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@585
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/print.c
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+
+commit 31c2b2eec7aee4e95da2b4b14f15b3cb0313fb34
+Author: Jim Evins <evins@snaught.com>
+Date:  2006-02-16
+
+    2006-02-15 Jim Evins  <evins@snaught.com>
+
+       * src/label-object.c:
+               Changed default shadow offsets.
+       * src/view-box.c: (gl_view_box_new):
+               Simplified gl_view_box_new() so that is does not
+               duplicate code
+               in update_canvas_item_from_object_cb().
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@584
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/label-object.c
+M      glabels2/src/view-box.c
+
+commit 4a68c33f4b10396ae9835a73db093b1b3c855446
+Author: Jim Evins <evins@snaught.com>
+Date:  2006-02-08
+
+    2006-02-07 Jim Evins  <evins@snaught.com>
+
+       * data/glade/object-editor.glade:
+               Fixed color groups of color combos.
+       * src/color.h:
+               Added default shadow color.
+       * src/object-editor.c: (gl_object_editor_construct_color_combo):
+               Added shadow color group.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@583
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glade/object-editor.glade
+M      glabels2/src/color.h
+M      glabels2/src/object-editor.c
+
+commit 98beec748e072395765a1b648b6c77cae18fa8da
+Author: Jim Evins <evins@snaught.com>
+Date:  2006-02-07
+
+    2006-02-06 Jim Evins  <evins@snaught.com>
+
+       * src/object-editor-shadow-page.c:
+               Forgot to add this file.
+       * src/view-box.c: (gl_view_box_new),
+       (update_canvas_item_from_object_cb),
+       (update_editor_from_label_cb):
+               Update limits on shadow offset spinbuttons.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@582
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+A      glabels2/src/object-editor-shadow-page.c
+M      glabels2/src/view-box.c
+
+commit 40e256fa0bafd52f616ee3c6696efe6702d256f9
+Author: Jim Evins <evins@snaught.com>
+Date:  2006-01-20
+
+    2006-01-19 Jim Evins  <evins@snaught.com>
+
+       * src/merge-evolution.c: (gl_merge_evolution_get_key_list):
+               Initialize key_list to NULL.  Only lucky that this worked
+               at all -- will
+               probably crash for many people.
+       * data/glade/object-editor.glade:
+       * src/Makefile.am:
+       * src/color.c:
+       * src/color.h:
+       * src/label-object.c:
+       * src/label-object.h:
+       * src/object-editor-fill-page.c:
+       * src/object-editor-private.h:
+       * src/object-editor.c:
+       * src/object-editor.h:
+       * src/xml-label.c:
+               Created infrastructure for shadow support.
+       * src/view-box.c:
+       * src/print.c:
+               Initial shadow support in box object only.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@581
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glade/object-editor.glade
+M      glabels2/src/Makefile.am
+M      glabels2/src/color.c
+M      glabels2/src/color.h
+M      glabels2/src/label-object.c
+M      glabels2/src/label-object.h
+M      glabels2/src/merge-evolution.c
+M      glabels2/src/object-editor-fill-page.c
+M      glabels2/src/object-editor-private.h
+M      glabels2/src/object-editor.c
+M      glabels2/src/object-editor.h
+M      glabels2/src/print.c
+M      glabels2/src/view-box.c
+M      glabels2/src/xml-label.c
+
+commit af70df1732fa8a56a2ff3319ed2ee4c255c72c61
+Author: Jim Evins <evins@snaught.com>
+Date:  2006-01-05
+
+    2006-01-05 Jim Evins  <evins@snaught.com>
+
+       * src/merge-properties-dialog.c: (src_changed_cb):
+               Be extra paranoid before calling strcmp().
+       * src/merge.c: (gl_merge_set_src):
+               Don't make (merge == NULL) a critical error.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@580
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/merge-properties-dialog.c
+M      glabels2/src/merge.c
+
+commit bb0499ec358adc1cc8e0fe1ed0c53b420f99aa12
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-12-22
+
+    2005-12-22 Jim Evins  <evins@snaught.com>
+
+       * src/glabels-batch.c: (main):
+               Compile warning free with gcc 4.0.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@569
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/glabels-batch.c
+
+commit 58c00e66b430132afeb2cdfd1411668a9c5646cd
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-12-22
+
+    2005-12-21 Jim Evins  <evins@snaught.com>
+
+       * glabels.spec.in:
+               Updated example RPM spec file.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@568
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/docs/libglabels/libglabels-decl-list.txt
+M      glabels2/glabels.spec.in
+
+commit 3c89931fbeec7d5de710bf1c9b03e01e25c8c157
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-12-22
+
+       * NEWS:
+       * configure.in:
+               Preparation for 2.1.2.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@567
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/NEWS
+M      glabels2/configure.in
+
+commit 1dd5d023b5989dda77cd4afe03b6a321ae4f78fb
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-12-21
+
+    2005-12-20 Jim Evins  <evins@snaught.com>
+
+       * src/Makefile.am:
+               Define unique G_LOG_DOMAIN for glabels.
+       * src/critical-error-handler.c: (gl_critical_error_handler_init):
+       * src/warning-handler.c: (gl_warning_handler_init),
+       (warning_handler):
+               Register for G_LOG_DOMAIN instead of NULL.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@566
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/Makefile.am
+M      glabels2/src/critical-error-handler.c
+M      glabels2/src/warning-handler.c
+
+commit fc0b866a373a89285aa1d507d412b5a9d8e9d12d
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-12-10
+
+    2005-12-10 Jim Evins  <evins@snaught.com>
+
+       * src/merge-evolution.c:
+       * src/merge-vcard.c:
+               Fixed indentation.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@565
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/merge-evolution.c
+M      glabels2/src/merge-vcard.c
+
+commit 9e26662eaa578f1d48636e503ceee998f192c8cd
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-12-09
+
+    2005-12-08 Jim Evins  <evins@snaught.com>
+
+       * libglabels/paper.c: (read_paper_files_from_dir):
+       * libglabels/template.c: (gl_template_register),
+       (read_template_files_from_dir):
+       * libglabels/xml-paper.c: (gl_xml_paper_read_papers_from_file),
+       (gl_xml_paper_parse_papers_doc):
+       * libglabels/xml-template.c:
+       (gl_xml_template_read_templates_from_file),
+       (gl_xml_template_parse_templates_doc),
+       (gl_xml_template_parse_template_node),
+       (xml_parse_label_rectangle_node), (xml_parse_label_round_node),
+       (xml_parse_label_cd_node), (xml_parse_layout_node),
+       (xml_parse_markup_margin_node), (xml_parse_markup_line_node),
+       (xml_parse_markup_circle_node),
+       (gl_xml_template_write_templates_to_file),
+       (xml_create_label_node):
+       * libglabels/xml.c: (gl_xml_get_prop_length):
+               Re-classified g_warnings to g_messages.
+       * src/Makefile.am:
+       * src/glabels.c: (main):
+       * src/warning-handler.c: (gl_warning_handler_init),
+       (warning_handler):
+       * src/warning-handler.h:
+               Added warning message handler to make sure the user is
+               presented with appropriate non-fatal errors.
+       * src/critical-error-handler.c: (critical_error_handler):
+               Changed exit to abort.
+       * src/bc-gnubarcode.c: (gl_barcode_gnubarcode_new),
+       (render_pass1):
+       * src/bc-postnet.c: (postnet_code):
+       * src/bc.c: (id_to_index), (name_to_index):
+       * src/merge.c: (gl_merge_register_backend), (gl_merge_new):
+       * src/object-editor.c: (gl_object_notebook_construct_valist):
+       * src/prefs-dialog.c: (update_locale_page_from_prefs):
+       * src/prefs.c: (gl_prefs_get_units_per_point),
+       (gl_prefs_get_units_precision), (gl_prefs_get_units_step_size),
+       (gl_prefs_get_units_string):
+       * src/print.c: (draw_outline), (clip_to_outline),
+       (clip_punchouts):
+       * src/splash.c: (gl_splash):
+       * src/ui-commands.c: (gl_ui_cmd_help_contents):
+       * src/view-highlight.c: (gl_view_highlight_new),
+       (highlight_resizable_box_construct), (object_changed_cb),
+       (view_scale_changed_cb):
+       * src/view.c: (draw_label_layer), (draw_bg_fg_layers),
+       (draw_markup_layer), (draw_markup_margin),
+       (gl_view_object_create_mode), (canvas_event),
+       (selection_received_cb):
+       * src/wdgt-mini-preview.c: (mini_outline_list_new):
+       * src/wdgt-rotate-label.c: (mini_preview_canvas_update):
+       * src/xml-label-04.c: (gl_xml_label_04_parse),
+       (xml04_parse_media_description), (xml04_parse_text_props),
+       (xml04_parse_barcode_props):
+       * src/xml-label-191.c: (gl_xml_label_191_parse),
+       (xml191_parse_objects), (xml191_parse_object),
+       (xml191_parse_text_props), (xml191_parse_image_props),
+       (xml191_parse_barcode_props), (xml191_parse_data),
+       (xml191_parse_sheet), (xml191_parse_label), (xml191_parse_layout),
+       (xml191_parse_markup):
+       * src/xml-label.c: (gl_xml_label_open),
+       (gl_xml_label_open_buffer),
+       (xml_doc_to_label), (xml_parse_label), (xml_parse_objects),
+       (xml_parse_object_text), (xml_parse_object_image),
+       (xml_parse_object_barcode), (xml_parse_data),
+       (xml_parse_toplevel_span), (gl_xml_label_save),
+       (xml_create_objects):
+               Re-classified g_warnings to g_messages.
+       * src/merge-evolution.c: (gl_merge_evolution_open),
+       (gl_merge_evolution_close), (gl_merge_evolution_get_record):
+               Use g_warning to output errors encountered while
+               communicating with the evolution data server
+               instead of embedding them in the data.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@564
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/libglabels/paper.c
+M      glabels2/libglabels/template.c
+M      glabels2/libglabels/xml-paper.c
+M      glabels2/libglabels/xml-template.c
+M      glabels2/libglabels/xml.c
+M      glabels2/src/Makefile.am
+M      glabels2/src/bc-gnubarcode.c
+M      glabels2/src/bc-postnet.c
+M      glabels2/src/bc.c
+M      glabels2/src/critical-error-handler.c
+M      glabels2/src/glabels.c
+M      glabels2/src/merge-evolution.c
+M      glabels2/src/merge.c
+M      glabels2/src/object-editor.c
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/prefs.c
+M      glabels2/src/print.c
+M      glabels2/src/splash.c
+M      glabels2/src/ui-commands.c
+M      glabels2/src/view-highlight.c
+M      glabels2/src/view.c
+C064   glabels2/src/critical-error-handler.c
+glabels2/src/warning-handler.c
+A      glabels2/src/warning-handler.h
+M      glabels2/src/wdgt-mini-preview.c
+M      glabels2/src/wdgt-rotate-label.c
+M      glabels2/src/xml-label-04.c
+M      glabels2/src/xml-label-191.c
+M      glabels2/src/xml-label.c
+
+commit 599f3be4bcea39fb4da1ee940be7d566abd1abef
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-12-09
+
+    2005-12-08 Jim Evins  <evins@snaught.com>
+
+       * libglabels/libglabels-private.h:
+               Set G_LOG_DOMAIN
+       * libglabels/paper.c: (read_papers):
+       * libglabels/template.c: (read_templates):
+               Made appropriate warnings critical.
+       * src/Makefile.am:
+       * src/critical-error-handler.h:
+       * src/critical-error-handler.c: (gl_critical_error_handler_init),
+       (critical_error_handler):
+               Created critical error handler.
+       * src/glabels.c: (main):
+               Register critical error handler.
+       * src/merge-properties-dialog.c:
+       (gl_merge_properties_dialog_init):
+       * src/object-editor.c: (gl_object_editor_init):
+       * src/prefs-dialog.c: (gl_prefs_dialog_init):
+       * src/template-designer.c: (gl_template_designer_init):
+       * src/ui-property-bar.c: (gl_ui_property_bar_instance_init):
+               Made appropriate warnings critical.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@563
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/libglabels/libglabels-private.h
+M      glabels2/libglabels/paper.c
+M      glabels2/libglabels/template.c
+M      glabels2/src/Makefile.am
+A      glabels2/src/critical-error-handler.c
+A      glabels2/src/critical-error-handler.h
+M      glabels2/src/glabels.c
+M      glabels2/src/merge-properties-dialog.c
+M      glabels2/src/object-editor.c
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/template-designer.c
+M      glabels2/src/ui-property-bar.c
+
+commit e44d2f82ab2179a7c5003d0efd852345c97e2d40
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-11-27
+
+    2005-11-27 Jim Evins  <evins@snaught.com>
+
+       * src/merge-evolution.c: (gl_merge_evolution_get_key_list),
+       (gl_merge_evolution_get_primary_key),
+       (gl_merge_evolution_get_record):
+               Don't create "record_key" pseudo-key.  Don't populate
+               fields with null data.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@562
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/merge-evolution.c
+
+commit 25379fe60c61d9a7ba38a4fee58457dda8f0f1ac
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-11-26
+
+    2005-11-25 Jim Evins  <evins@snaught.com>
+
+       * src/merge-evolution.c: (gl_merge_evolution_finalize),
+       (gl_merge_evolution_get_key_list), (gl_merge_evolution_open),
+       (gl_merge_evolution_get_record), (gl_merge_evolution_copy),
+       (free_field_list):
+               Query EDS for all supported fields.  Patch provided by
+               Austin Henry <ahenry@users.sourceforge.net>.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@561
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/merge-evolution.c
+
+commit 648ed6853c2c7dd6e94af0db1a3d6c1b92643a73
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-10-30
+
+    2005-10-29 Jim Evins  <evins@snaught.com>
+
+       * src/glabels.c: (main):
+       * src/label-barcode.c: (gl_label_barcode_finalize):
+       * src/label-text.c: (gl_label_text_finalize), (set_font_family):
+       * src/label.c: (gl_label_instance_init), (gl_label_finalize):
+       * src/object-editor.c: (gl_object_editor_finalize):
+               Another pass at valgrinding -- plugged several memory
+               leaks.
+       * src/view-text.c: (gl_view_text_new),
+       (update_canvas_item_from_object_cb), (draw_hacktext):
+               Commented out artifacts of edit-in-place code.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@560
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/glabels.c
+M      glabels2/src/label-barcode.c
+M      glabels2/src/label-text.c
+M      glabels2/src/label.c
+M      glabels2/src/object-editor.c
+M      glabels2/src/view-text.c
+
+commit 76fd90ffd79f73f4d8cd9acc009696a12db77e1e
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-10-28
+
+    2005-10-28 Jim Evins  <evins@snaught.com>
+
+       * src/canvas-hacktext.c: (gl_canvas_hacktext_set_arg):
+               Fixed use of uninitialized variable.  Caught by
+               d binderman <dcb314@hotmail.com>.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@559
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/canvas-hacktext.c
+
+commit 71e143d2eec8f00cc33b766b6e5dabdf117425ce
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-10-28
+
+    2005-10-27 Jim Evins  <evins@snaught.com>
+
+       * src/merge-evolution.c: (gl_merge_evolution_get_record):
+       * src/merge-vcard.c: (gl_merge_vcard_get_record),
+       (parse_next_vcard):
+               Additional cleanup of EDS and vcard backends.  Provided by
+               Austin Henry <ahenry@users.sourceforge.net>.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@558
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/merge-evolution.c
+M      glabels2/src/merge-vcard.c
+
+commit 6564675732a6cf86f70960aa83070cc64e940235
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-10-25
+
+    2005-10-24 Jim Evins  <evins@snaught.com>
+
+       * AUTHORS:
+       * src/Makefile.am:
+       * src/merge-evolution.c:
+       * src/merge-evolution.h:
+       * src/merge-init.c: (gl_merge_init):
+       * src/merge-properties-dialog.c: (type_changed_cb):
+       * src/merge-vcard.c:
+       * src/merge-vcard.h:
+       * src/ui-commands.c: (gl_ui_cmd_help_about):
+               Added Evolution Data Server and VCard merge backends.
+               Original patch
+               provided by Austin Henry <ahenry@users.sourceforge.net>.
+       * configure.in:
+               Only support EDS and VCard backends if libebook is
+               installed.  Allow
+               user to disable support, even if installed.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@557
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+M      glabels2/src/Makefile.am
+A      glabels2/src/merge-evolution.c
+A      glabels2/src/merge-evolution.h
+M      glabels2/src/merge-init.c
+M      glabels2/src/merge-properties-dialog.c
+A      glabels2/src/merge-vcard.c
+A      glabels2/src/merge-vcard.h
+M      glabels2/src/ui-commands.c
+
+commit 1b1e0d9590f300773c89589eab03c4f8a5db3f45
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-10-24
+
+    2005-10-24 Jim Evins  <evins@snaught.com>
+
+       * AUTHORS:
+       * data/templates/avery-iso-templates.xml:
+       * data/templates/avery-us-templates.xml:
+       * data/templates/misc-iso-templates.xml:
+       * data/templates/zweckform-iso-templates.xml:
+               Collected all template changes and submissions since last
+               release.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@556
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/data/templates/avery-iso-templates.xml
+M      glabels2/data/templates/avery-us-templates.xml
+M      glabels2/data/templates/misc-iso-templates.xml
+M      glabels2/data/templates/zweckform-iso-templates.xml
+
+commit 2bd3499f59f15f1ba3d83aca12dc895ede9c9fcc
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-10-24
+
+    2005-10-23 Jim Evins  <evins@snaught.com>
+
+       * configure.in:
+       * data/mime/Makefile.am:
+               Added configure options to disable update-mime-database
+               and
+               update-desktop-database as part of the install.  Patch
+               provided by Leonardo Boshell (qhoracio@sourceforge.net).
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@555
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+M      glabels2/data/mime/Makefile.am
+M      glabels2/gtk-doc.make
+
+commit ec932804d8b229fff5fea65452a4f6d0982e7cb1
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-10-23
+
+    2005-10-23 Jim Evins  <evins@snaught.com>
+
+       * libglabels/xml.h:
+       * libglabels/xml.c: (gl_xml_get_prop_string),
+       (gl_xml_get_prop_i18n_string), (gl_xml_set_prop_string),
+       (gl_xml_is_node), (gl_xml_get_node_content):
+               Added new XML utility functions.
+       * libglabels/xml-paper.c:
+       * libglabels/xml-template.c:
+       * src/xml-label.c:
+               Cleanup by using new xml utilities created above.
+       * libglabels/paper.c: (gl_paper_free):
+       * src/file.c: (new_response):
+       * src/object-editor-image-page.c: (add_image_filters_to_chooser):
+       * src/pixbuf-cache.c: (gl_pixbuf_cache_add_pixbuf),
+       (gl_pixbuf_cache_get_pixbuf):
+       * src/ui-property-bar.c:
+       (gl_ui_property_bar_construct_color_combo):
+       * src/view-highlight.c: (gl_view_highlight_finalize):
+       * src/view-image.c: (update_object_from_editor_cb):
+       * src/view.c: (gl_view_finalize), (draw_bg_fg_layers),
+       (draw_bg_fg_rounded_rect), (draw_bg_fg_round), (draw_bg_fg_cd),
+       (draw_bg_fg_cd_bc), (draw_markup_layer), (draw_markup_margin),
+       (draw_markup_margin_rect), (draw_markup_margin_rounded_rect),
+       (draw_markup_margin_round), (draw_markup_margin_cd),
+       (draw_markup_margin_cd_bc):
+       * src/wdgt-mini-preview.c: (mini_outline_list_new):
+       * src/wdgt-rotate-label.c: (gl_wdgt_rotate_label_finalize):
+               Plugged various memory leaks located with valgrind.
+       * src/view-image.c: (update_canvas_item_from_object_cb):
+               Don't allow a width or height of zero when drawing pixbuf.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@554
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/libglabels/paper.c
+M      glabels2/libglabels/xml-paper.c
+M      glabels2/libglabels/xml-template.c
+M      glabels2/libglabels/xml.c
+M      glabels2/libglabels/xml.h
+M      glabels2/src/file.c
+M      glabels2/src/object-editor-image-page.c
+M      glabels2/src/pixbuf-cache.c
+M      glabels2/src/ui-property-bar.c
+M      glabels2/src/view-highlight.c
+M      glabels2/src/view-image.c
+M      glabels2/src/view.c
+M      glabels2/src/wdgt-mini-preview.c
+M      glabels2/src/wdgt-rotate-label.c
+M      glabels2/src/xml-label.c
+
+commit cba39e6ae22742514a61a6c822d26f83613e45a7
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-10-23
+
+    2005-10-22 Jim Evins  <evins@snaught.com>
+
+       * libglabels/xml-paper.c:
+       * libglabels/xml-template.c:
+       * libglabels/xml.c:
+       * src/base64.c:
+       * src/bc-gnubarcode.c:
+       * src/canvas-hacktext.c:
+       * src/label-text.c:
+       * src/object-editor-data-page.c:
+       * src/print-dialog.c:
+       * src/print.c:
+       * src/recent.c:
+       * src/template-designer.c:
+       * src/text-node.c:
+       * src/ui-property-bar.c:
+       * src/ui.c:
+       * src/view-barcode.c:
+       * src/view-box.c:
+       * src/view-ellipse.c:
+       * src/view-image.c:
+       * src/view-line.c:
+       * src/view-text.c:
+       * src/view.c:
+       * src/wdgt-media-select.c:
+       * src/xml-label-04.c:
+       * src/xml-label-191.c:
+       * src/xml-label.c:
+               Modified to compile warning free with gcc-4.0.  Mostly
+               casting to change signedness of characters.  Did not
+               attack gnu-barcode library yet.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@553
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/libglabels/xml-paper.c
+M      glabels2/libglabels/xml-template.c
+M      glabels2/libglabels/xml.c
+M      glabels2/src/base64.c
+M      glabels2/src/bc-gnubarcode.c
+M      glabels2/src/canvas-hacktext.c
+M      glabels2/src/label-text.c
+M      glabels2/src/object-editor-data-page.c
+M      glabels2/src/print-dialog.c
+M      glabels2/src/print.c
+M      glabels2/src/recent.c
+M      glabels2/src/template-designer.c
+M      glabels2/src/text-node.c
+M      glabels2/src/ui-property-bar.c
+M      glabels2/src/ui.c
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-image.c
+M      glabels2/src/view-line.c
+M      glabels2/src/view-text.c
+M      glabels2/src/view.c
+M      glabels2/src/wdgt-media-select.c
+M      glabels2/src/xml-label-04.c
+M      glabels2/src/xml-label-191.c
+M      glabels2/src/xml-label.c
+
+commit afd036875ddd1bc5ca13c3b1ac353f81187df194
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-10-22
+
+    2005-10-22 Jim Evins <evins@snaught.com>
+
+       * src/glabels.c: (main):
+       * src/splash.c: (gl_splash):
+               Removed some small memory leaks.
+       * gtk-doc.make:
+               Added.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@552
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+A      glabels2/gtk-doc.make
+M      glabels2/src/glabels.c
+M      glabels2/src/splash.c
+
+commit 39d8141f74f981643811f13b1fb09b5f6339b57f
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-09-20
+
+    2005-09-19 Jim Evins  <evins@snaught.com>
+
+       * data/glade/property-bar.glade:
+               Remove items from font_family_combo.  This prevents the
+               double entry after adding text model and list of fonts.
+       * src/ui-property-bar.c: (reset_to_default_properties):
+               Free font_family_list.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@551
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glade/property-bar.glade
+M      glabels2/src/ui-property-bar.c
+
+commit da392ae3611dbf3b5cfb3bc89e6ccfa652e47380
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-07-02
+
+    2005-07-01 Jim Evins  <evins@snaught.com>
+
+       * po/it.po:
+               Updated italian translation (Daniele Medri)
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@550
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/po/it.po
+
+commit ae2bf27499f3e297a2bd73f20ca9697a67bd1006
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-06-26
+
+    I guess I need it after all -- however, it needs to be empty.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@545
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+A      glabels2/docs/libglabels/libglabels.types
+
+commit 243b3dc521a2fc222d31bd139abac37bd0adef1b
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-06-26
+
+    2005-06-26 Jim Evins  <evins@snaught.com>
+
+       * docs/libglabels/libglabels-decl-list.txt:
+               Somehow never got checked in before.
+       * docs/libglabels/libglabels.types:
+               Removed -- don't need it afterall.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@544
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+A      glabels2/docs/libglabels/libglabels-decl-list.txt
+D      glabels2/docs/libglabels/libglabels.types
+
+commit c4eb1a543ab5897431bc2a4796785c4aca7bfe9b
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-06-21
+
+    2005-06-20 Jim Evins  <evins@snaught.com>
+
+       * NEWS:
+               Final prep for 2.1.1 release.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@543
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/NEWS
+
+commit 0e3ae99f1dfcb00a6e6e5f320f1159b732960b73
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-06-21
+
+    2005-06-20 Jim Evins  <evins@snaught.com>
+
+       * configure.in:
+               Final preps for 2.1.1 release.
+       * docs/libglabels/libglabels.types:
+               Somehow never got checked in before.
+       * po/POTFILES.in:
+               Bring up-to-date with recent reorg of ui code.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@542
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+A      glabels2/docs/libglabels/libglabels.types
+M      glabels2/po/POTFILES.in
+
+commit 266a744f8ad5d09df9daa095adab2f7b76f69bec
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-06-19
+
+    2005-06-19 Jim Evins  <evins@snaught.com>
+
+       * src/template-designer.c: (construct_layout_page):
+               Removed attempt to match background color of mini preview
+               widget to
+               background.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@540
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/template-designer.c
+
+commit 3c72bfece4ac69e74d1de4b7c2abd7cd94d2a548
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-06-18
+
+    2005-06-17 Jim Evins  <evins@snaught.com>
+
+       * help/C/figures/merge-ex2-4.png:
+       * help/C/glabels.xml:
+               Fixed spelling error.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@539
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/help/C/figures/merge-ex2-4.png
+M      glabels2/help/C/glabels.xml
+
+commit 4e3e2f3a70c4670eb2dc905aafa743efa546c404
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-06-14
+
+    2005-06-13 Jim Evins  <evins@snaught.com>
+
+       * help/C/figures/merge-ex1-1.png:
+       * help/C/figures/merge-ex1-2.png:
+       * help/C/figures/merge-ex1-3.png:
+       * help/C/figures/merge-ex1-4.png:
+       * help/C/figures/merge-ex2-1.png:
+       * help/C/figures/merge-ex2-2.png:
+       * help/C/figures/merge-ex2-3.png:
+       * help/C/figures/merge-ex2-4.png:
+               Added figures for document merge tutorial.
+       * help/C/glabels.xml:
+               Added document merge tutorial.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@538
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+A      glabels2/help/C/figures/merge-ex1-1.png
+A      glabels2/help/C/figures/merge-ex1-2.png
+A      glabels2/help/C/figures/merge-ex1-3.png
+A      glabels2/help/C/figures/merge-ex1-4.png
+A      glabels2/help/C/figures/merge-ex2-1.png
+A      glabels2/help/C/figures/merge-ex2-2.png
+A      glabels2/help/C/figures/merge-ex2-3.png
+A      glabels2/help/C/figures/merge-ex2-4.png
+M      glabels2/help/C/glabels.xml
+
+commit 541b2920873eb6bfe225e8a7c573e41917c5dae5
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-05-20
+
+    2005-05-19 Jim Evins  <evins@snaught.com>
+
+       * data/glade/merge-properties-dialog.glade:
+               Fixed irregular spacing.
+       * src/merge-properties-dialog.c:
+       (gl_merge_properties_dialog_init),
+       (gl_merge_properties_dialog_construct):
+               Set outer padding and remove separator.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@536
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glade/merge-properties-dialog.glade
+M      glabels2/src/merge-properties-dialog.c
+
+commit 43beed37015c722577065ec11a431f75651b8199
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-05-19
+
+    2005-05-18 Jim Evins  <evins@snaught.com>
+
+       * src/hig.h:
+       * src/hig.c:
+               Removed glHigDialog class.
+       * src/file.c: (gl_file_new), (create_new_dialog_widgets),
+       (gl_file_properties), (create_properties_dialog_widgets):
+       * src/prefs-dialog.h:
+       * src/prefs-dialog.c: (gl_prefs_dialog_get_type),
+       (gl_prefs_dialog_init), (gl_prefs_dialog_construct):
+       * src/print-dialog.h:
+       * src/prefs-dialog.h:
+       * src/print-dialog.c: (gl_print_dialog_get_type),
+       (gl_print_dialog_init), (gl_print_dialog_construct):
+               Replaced all instances of glHigDialog with GtkDialog.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@535
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/file.c
+M      glabels2/src/hig.c
+M      glabels2/src/hig.h
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/prefs-dialog.h
+M      glabels2/src/print-dialog.c
+M      glabels2/src/print-dialog.h
+
+commit b75ae61753d37cd5b74f393cfb8a207d0e0ae3bc
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-05-18
+
+    2005-05-17 Jim Evins  <evins@snaught.com>
+
+       * src/hig.h:
+       * src/hig.c:
+               Removed HigAlert class since it is obsoleted by the
+               GtkMessageDialog class.
+       * src/file.c: (open_response), (gl_file_open_real),
+       (gl_file_save),
+       (save_as_response), (gl_file_close):
+               Replaced all instances of HigAlert widgets with
+               GtkMessageDialog widgets.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@534
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/file.c
+M      glabels2/src/hig.c
+M      glabels2/src/hig.h
+
+commit da21e95810774f0c12cca0694d7c444a1c5dd3f2
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-05-16
+
+    2005-05-15 Jim Evins  <evins@snaught.com>
+
+       * src/ui-commands.h:
+       * src/ui-util.c:
+       * src/ui-util.h:
+       * src/ui.c:
+       * src/ui.h:
+       * src/view.c:
+       * src/window.c:
+       * src/window.h:
+               A little code reformatting -- no functional changes.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@533
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/ui-commands.h
+M      glabels2/src/ui-util.c
+M      glabels2/src/ui-util.h
+M      glabels2/src/ui.c
+M      glabels2/src/ui.h
+M      glabels2/src/view.c
+M      glabels2/src/window.c
+M      glabels2/src/window.h
+
+commit cfdd17795f804b342a1551d517a44ae60f47e917
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-05-15
+
+    2005-05-14 Jim Evins  <evins@snaught.com>
+
+       * src/Makefile.am:
+               Removed obsolete macros.
+       * src/marshal.list:
+               Added marshalling template to support new view signal:
+               "context_menu_activate."
+       * src/view.h:
+       * src/view.c: (gl_view_class_init), (gl_view_construct),
+       (canvas_event_arrow_mode):
+               - Removed hardcoded context menus and added new signal
+               "context_menu_activate"
+               to push this up to the uimanager.
+               - Removed merge properties and print dialogs so that
+               they can be managed with
+               the window by the uimanager.
+       * src/merge-properties-dialog.h:
+       * src/merge-properties-dialog.c: (gl_merge_properties_dialog_new),
+       (gl_merge_properties_dialog_construct):
+               Changed calling convention of
+               gl_merge_properties_dialog_new() to use
+               glLabel and GtkWindow instead of view to make more
+               consistent with other
+               dialogs.
+       * src/print-dialog.h:
+       * src/print-dialog.c: (gl_print_dialog_new),
+       (gl_print_dialog_construct):
+               Removed last artifact of libbonoboui.
+       * src/ui-commands.c: (gl_ui_cmd_file_print),
+       (gl_ui_cmd_objects_merge_properties), (gl_ui_cmd_help_about):
+               Reconciled style for launching dialogs.
+       * src/ui.c: (gl_ui_new):
+               Added context menus to ui manager.
+       * src/view-object.c: (item_event_arrow_mode):
+               No longer try to select objects with right-click.
+       * src/window.h:
+       * src/window.c: (gl_window_init), (gl_window_set_label),
+       (context_menu_activate_cb):
+               Context menus and all dialogs are now managed in a
+               consistent way in window
+               by the ui manager.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@532
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/Makefile.am
+M      glabels2/src/marshal.list
+M      glabels2/src/merge-properties-dialog.c
+M      glabels2/src/merge-properties-dialog.h
+M      glabels2/src/print-dialog.c
+M      glabels2/src/print-dialog.h
+M      glabels2/src/ui-commands.c
+M      glabels2/src/ui.c
+M      glabels2/src/view-object.c
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+M      glabels2/src/window.c
+M      glabels2/src/window.h
+
+commit 843936402808e55c2be7970c22ecbaaafe2f7f73
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-05-12
+
+    2005-05-11 Jim Evins  <evins@snaught.com>
+
+       * src/window.h:
+       * src/window.c: (gl_window_init), (gl_window_destroy):
+       * src/ui.c: (gl_ui_new), (gl_ui_unref), (recent_tooltip_func):
+       * src/ui-commands.c: (gl_ui_cmd_file_open_recent):
+               Moved management of recent_view back from window.c to
+               ui.c -- it just feels
+               better there.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@531
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/ui-commands.c
+M      glabels2/src/ui.c
+M      glabels2/src/window.c
+M      glabels2/src/window.h
+
+commit 1479a95e84b51da3faee9a7a263c032b19afc3e4
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-05-11
+
+    2005-05-10 Jim Evins  <evins@snaught.com>
+
+       * src/window.h:
+       * src/window.c: (gl_window_init):
+       * src/ui.h:
+       * src/ui.c: (gl_ui_new), (connect_proxy_cb),
+       (disconnect_proxy_cb),
+       (menu_item_select_cb), (menu_item_deselect_cb):
+               Added GtkStatusbar which displays menu tooltips.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@530
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/ui.c
+M      glabels2/src/ui.h
+M      glabels2/src/window.c
+M      glabels2/src/window.h
+
+commit 6f2f4ee62487d346746d5fe8b8ed2801a72ce90b
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-05-09
+
+    2005-05-09 Jim Evins  <evins@snaught.com>
+
+       Replaced libbonoboui with GtkUIManager for creation of basic
+       user interface menus
+       and toolbars.
+
+       * configure.in:
+       * glabels.spec.in:
+               Removed dependencies on libbonoboui.
+       * data/Makefile.am:
+       * data/ui/Makefile.am:
+       * data/ui/glabels-ui.xml:
+               Removed data/ui directory.
+       * data/glade/Makefile.am:
+       * data/property-bar.glade:
+               Added glade description of property-bar for new libglade
+               implementation
+               of glUIPropertyBar.
+       * src/Makefile.am:
+       * src/commands.h:
+       * src/commands.c:
+       * src/tools.h:
+       * src/tools.c:
+       * src/ui-commands.h:
+       * src/ui-commands.c:
+               Replaced commands.[ch] and tools.[ch] with the single
+               ui-commands.[ch] module
+               since the distinction between "commands" and "tools"
+               is no longer that clear.
+       * src/file.h:
+       * src/file.c:
+               Modified to expect glWindow instead of GtkWindow.
+               gl_file_open_recent()
+               no longer has knowledge of eggRecent*.
+       * src/glabels.c: (main):
+               Removed libbonobo initialization and replaced bonobo_main
+               loop with gtk_main
+               loop.
+       * src/object-editor.c: (gl_object_editor_init):
+               Make sure notebook does not respond to a "show_all"
+               on the parent.
+       * src/recent-files/Makefile.am:
+       * src/recent-files/*.[ch]
+               Updated from latest version of libegg which now has a
+               view based on
+               GtkUIManager.  Removed unused bonobo and gtk views.
+       * src/ui-property-bar.h:
+       * src/ui-property-bar.c:
+               New implementation based on libglade.
+       * src/ui-sidebar.h:
+       * src/ui-sidebar.c:
+               Sidebar is now simply a GtkWidget and does not expect
+               to be a part of
+               a libbonoboui interface.
+       * src/ui-util.h:
+       * src/ui-util.c:
+       * src/ui.h:
+       * src/ui.c:
+               Converted for use with GtkUIManager.
+       * src/window.h:
+       * src/window.c:
+               Now derived from GtkWindow instead of BonoboWindow and
+               uses GtkUIManager
+               to create menus and toolbars.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@529
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+M      glabels2/data/Makefile.am
+M      glabels2/data/glade/Makefile.am
+A      glabels2/data/glade/property-bar.glade
+D      glabels2/data/ui/Makefile.am
+D      glabels2/data/ui/glabels-ui.xml
+M      glabels2/glabels.spec.in
+M      glabels2/src/Makefile.am
+D      glabels2/src/commands.c
+D      glabels2/src/commands.h
+M      glabels2/src/file.c
+M      glabels2/src/file.h
+M      glabels2/src/glabels.c
+M      glabels2/src/object-editor.c
+M      glabels2/src/recent-files/Makefile.am
+M      glabels2/src/recent-files/egg-recent-item.c
+M      glabels2/src/recent-files/egg-recent-item.h
+M      glabels2/src/recent-files/egg-recent-model.c
+M      glabels2/src/recent-files/egg-recent-util.c
+D      glabels2/src/recent-files/egg-recent-view-bonobo.c
+D      glabels2/src/recent-files/egg-recent-view-bonobo.h
+D      glabels2/src/recent-files/egg-recent-view-gtk.c
+D      glabels2/src/recent-files/egg-recent-view-gtk.h
+A      glabels2/src/recent-files/egg-recent-view-uimanager.c
+A      glabels2/src/recent-files/egg-recent-view-uimanager.h
+M      glabels2/src/recent-files/egg-recent-view.c
+M      glabels2/src/recent-files/egg-recent.h
+D      glabels2/src/tools.c
+D      glabels2/src/tools.h
+A      glabels2/src/ui-commands.c
+A      glabels2/src/ui-commands.h
+M      glabels2/src/ui-property-bar.c
+M      glabels2/src/ui-property-bar.h
+M      glabels2/src/ui-sidebar.c
+M      glabels2/src/ui-sidebar.h
+M      glabels2/src/ui-util.c
+M      glabels2/src/ui-util.h
+M      glabels2/src/ui.c
+M      glabels2/src/ui.h
+M      glabels2/src/window.c
+M      glabels2/src/window.h
+
+commit 15816dc54a53451be050144db535e67af6db88f8
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-04-26
+
+    2005-04-25 Jim Evins  <evins@snaught.com>
+
+       * data/templates/misc-iso-templates.xml:
+               Added Fellows 04715 template provided by Steve Saxon.
+       * AUTHORS:
+               Updated acknowledgement for above.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@528
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/data/templates/misc-iso-templates.xml
+
+commit 6bb6a3435ecfd07583605dda070accf9996ec165
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-04-24
+
+    2005-04-23 Jim Evins  <evins@snaught.com>
+
+       * src/util.c: (gl_util_combo_box_set_strings):
+               Make sure to clear model before loading a new list
+               of strings.
+       * src/wdgt-media-select.h:
+       * src/wdgt-media-select.c: (gl_wdgt_media_select_instance_init),
+       (gl_wdgt_media_select_construct), (page_size_combo_changed_cb),
+       (template_combo_changed_cb), (prefs_changed_cb),
+       (gl_wdgt_media_select_get_name), (gl_wdgt_media_select_set_name),
+       (gl_wdgt_media_select_get_page_size),
+       (gl_wdgt_media_select_set_page_size):
+               Replaced the deprecated GtkCombo widget with the new
+               GtkComboBox.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@527
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/util.c
+M      glabels2/src/wdgt-media-select.c
+M      glabels2/src/wdgt-media-select.h
+
+commit caf7fa47549bd5e82771dae7352a3e9df54876a5
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-04-22
+
+    2005-04-21 Jim Evins  <evins@snaught.com>
+
+       * data/glade/template-designer.glade:
+       * src/template-designer.c: (construct_pg_size_page),
+       (pg_size_page_changed_cb), (build_template):
+               Replaced the deprecated GtkCombo widget with the new
+               GtkComboBox.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@526
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glade/template-designer.glade
+M      glabels2/src/template-designer.c
+
+commit e95389e41390751097436307edb19d49963e3e59
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-04-21
+
+    2005-04-20 Jim Evins  <evins@snaught.com>
+
+       * data/glade/prefs-dialog.glade:
+       * src/prefs-dialog.c: (construct_object_page),
+       (update_object_page_from_prefs), (update_prefs_from_object_page):
+               Replaced the deprecated GtkCombo widget with the new
+               GtkComboBox.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@525
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glade/prefs-dialog.glade
+M      glabels2/src/prefs-dialog.c
+
+commit 2c6b6469e0956561eed729f5d56865456abfec50
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-04-20
+
+    2005-04-19 Jim Evins  <evins@snaught.com>
+
+       * data/glade/object-editor.glade:
+       * src/object-editor-bc-page.c: (gl_object_editor_prepare_bc_page),
+       (style_changed_cb), (gl_object_editor_set_bc_style),
+       (gl_object_editor_get_bc_style), (gl_object_editor_set_bc_color),
+       (gl_object_editor_get_bc_color):
+       * src/object-editor-data-page.c:
+       (gl_object_editor_prepare_data_page), (gl_object_editor_set_data),
+       (gl_object_editor_get_data):
+       * src/object-editor-edit-page.c:
+       (gl_object_editor_prepare_edit_page), (insert_button_cb):
+       * src/object-editor-fill-page.c:
+       (gl_object_editor_prepare_fill_page),
+       (gl_object_editor_set_fill_color),
+       (gl_object_editor_get_fill_color):
+       * src/object-editor-image-page.c:
+       (gl_object_editor_prepare_image_page),
+       (gl_object_editor_set_image), (gl_object_editor_get_image):
+       * src/object-editor-line-page.c:
+       (gl_object_editor_prepare_line_page),
+       (gl_object_editor_set_line_color),
+       (gl_object_editor_get_line_color):
+       * src/object-editor-private.h:
+       * src/object-editor-text-page.c:
+       (gl_object_editor_prepare_text_page),
+       (gl_object_editor_set_font_family),
+       (gl_object_editor_get_font_family),
+       (gl_object_editor_set_text_color),
+       (gl_object_editor_get_text_color):
+       * src/object-editor.c: (gl_object_editor_set_key_names):
+       * src/ui-sidebar.c:
+               In the object editor: replaced all instances of the
+               deprecated
+               GtkCombo widget with the new GtkComboBox.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@524
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glade/object-editor.glade
+M      glabels2/src/object-editor-bc-page.c
+M      glabels2/src/object-editor-data-page.c
+M      glabels2/src/object-editor-edit-page.c
+M      glabels2/src/object-editor-fill-page.c
+M      glabels2/src/object-editor-image-page.c
+M      glabels2/src/object-editor-line-page.c
+M      glabels2/src/object-editor-private.h
+M      glabels2/src/object-editor-text-page.c
+M      glabels2/src/object-editor.c
+M      glabels2/src/ui-sidebar.c
+
+commit 39acef8eb6f976d76c3c7f4cce0a2b546467e2e5
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-04-19
+
+    2005-04-18 Jim Evins  <evins@snaught.com>
+
+       * src/stock.c:
+               Neglected to save this one in previous checkin to support
+               header cleanup.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@523
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/stock.c
+
+commit 174223a5516fbfc5e3b4a865b8310b51bed3dee2
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-04-18
+
+    2005-04-17 Jim Evins  <evins@snaught.com>
+
+       * libglabels/libglabels-private.h:
+       * libglabels/paper.c:
+       * libglabels/paper.h:
+       * libglabels/template.c:
+       * libglabels/template.h:
+       * libglabels/xml-paper.c:
+       * libglabels/xml-paper.h:
+       * libglabels/xml-template.c:
+       * libglabels/xml.c:
+       * libglabels/xml.h:
+       * src/base64.c:
+       * src/base64.h:
+       * src/bc-gnubarcode.c:
+       * src/bc-postnet.c:
+       * src/bc.c:
+       * src/bc.h:
+       * src/commands.c:
+       * src/debug.c:
+       * src/debug.h:
+       * src/file.c:
+       * src/file.h:
+       * src/hig.c:
+       * src/hig.h:
+       * src/label-barcode.c:
+       * src/label-box.c:
+       * src/label-ellipse.c:
+       * src/label-image.c:
+       * src/label-image.h:
+       * src/label-line.c:
+       * src/label-object.c:
+       * src/label-text.c:
+       * src/label-text.h:
+       * src/label.c:
+       * src/merge-properties-dialog.c:
+       * src/object-editor-bc-page.c:
+       * src/object-editor-data-page.c:
+       * src/object-editor-edit-page.c:
+       * src/object-editor-fill-page.c:
+       * src/object-editor-image-page.c:
+       * src/object-editor-line-page.c:
+       * src/object-editor-lsize-page.c:
+       * src/object-editor-position-page.c:
+       * src/object-editor-private.h:
+       * src/object-editor-size-page.c:
+       * src/object-editor-text-page.c:
+       * src/object-editor.c:
+       * src/object-editor.h:
+       * src/pixbuf-cache.h:
+       * src/prefs-dialog.c:
+       * src/prefs-dialog.h:
+       * src/prefs-model.c:
+       * src/prefs-model.h:
+       * src/prefs.c:
+       * src/print-dialog.c:
+       * src/print-dialog.h:
+       * src/print.c:
+       * src/print.h:
+       * src/recent.c:
+       * src/recent.h:
+       * src/splash.c:
+       * src/splash.h:
+       * src/stock.h:
+       * src/template-designer.c:
+       * src/template-designer.h:
+       * src/text-node.h:
+       * src/tools.c:
+       * src/ui-property-bar.c: (gl_ui_property_bar_construct):
+       * src/ui-sidebar.c:
+       * src/ui-util.c:
+       * src/ui.c:
+       * src/util.c:
+       * src/util.h:
+       * src/view-barcode.c:
+       * src/view-box.c:
+       * src/view-ellipse.c:
+       * src/view-highlight.c:
+       * src/view-highlight.h:
+       * src/view-image.c:
+       * src/view-line.c:
+       * src/view-object.c:
+       * src/view-object.h:
+       * src/view-text.c:
+       * src/view.c:
+       * src/view.h:
+       * src/wdgt-chain-button.c:
+       * src/wdgt-media-select.c:
+       * src/wdgt-media-select.h:
+       * src/wdgt-mini-preview.c:
+       * src/wdgt-mini-preview.h:
+       * src/wdgt-print-copies.c:
+       * src/wdgt-print-copies.h:
+       * src/wdgt-print-merge.c:
+       * src/wdgt-print-merge.h:
+       * src/wdgt-rotate-label.c:
+       * src/wdgt-rotate-label.h:
+       * src/window.c:
+       * src/window.h:
+       * src/xml-label-04.c:
+       * src/xml-label-191.c:
+       * src/xml-label.c:
+               Cleanup of header files:
+               - all header files are now stand-alone, verified by
+               including
+                 first in corresponding "c" files
+               - replaced blanket includes of gnome, gtk, and glib with
+                 targetted includes
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@522
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/libglabels/libglabels-private.h
+M      glabels2/libglabels/paper.c
+M      glabels2/libglabels/paper.h
+M      glabels2/libglabels/template.c
+M      glabels2/libglabels/template.h
+M      glabels2/libglabels/xml-paper.c
+M      glabels2/libglabels/xml-paper.h
+M      glabels2/libglabels/xml-template.c
+M      glabels2/libglabels/xml.c
+M      glabels2/libglabels/xml.h
+M      glabels2/src/base64.c
+M      glabels2/src/base64.h
+M      glabels2/src/bc-gnubarcode.c
+M      glabels2/src/bc-postnet.c
+M      glabels2/src/bc.c
+M      glabels2/src/bc.h
+M      glabels2/src/commands.c
+M      glabels2/src/debug.c
+M      glabels2/src/debug.h
+M      glabels2/src/file.c
+M      glabels2/src/file.h
+M      glabels2/src/hig.c
+M      glabels2/src/hig.h
+M      glabels2/src/label-barcode.c
+M      glabels2/src/label-box.c
+M      glabels2/src/label-ellipse.c
+M      glabels2/src/label-image.c
+M      glabels2/src/label-image.h
+M      glabels2/src/label-line.c
+M      glabels2/src/label-object.c
+M      glabels2/src/label-text.c
+M      glabels2/src/label-text.h
+M      glabels2/src/label.c
+M      glabels2/src/merge-properties-dialog.c
+M      glabels2/src/object-editor-bc-page.c
+M      glabels2/src/object-editor-data-page.c
+M      glabels2/src/object-editor-edit-page.c
+M      glabels2/src/object-editor-fill-page.c
+M      glabels2/src/object-editor-image-page.c
+M      glabels2/src/object-editor-line-page.c
+M      glabels2/src/object-editor-lsize-page.c
+M      glabels2/src/object-editor-position-page.c
+M      glabels2/src/object-editor-private.h
+M      glabels2/src/object-editor-size-page.c
+M      glabels2/src/object-editor-text-page.c
+M      glabels2/src/object-editor.c
+M      glabels2/src/object-editor.h
+M      glabels2/src/pixbuf-cache.h
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/prefs-dialog.h
+M      glabels2/src/prefs-model.c
+M      glabels2/src/prefs-model.h
+M      glabels2/src/prefs.c
+M      glabels2/src/print-dialog.c
+M      glabels2/src/print-dialog.h
+M      glabels2/src/print.c
+M      glabels2/src/print.h
+M      glabels2/src/recent.c
+M      glabels2/src/recent.h
+M      glabels2/src/splash.c
+M      glabels2/src/splash.h
+M      glabels2/src/stock.h
+M      glabels2/src/template-designer.c
+M      glabels2/src/template-designer.h
+M      glabels2/src/text-node.h
+M      glabels2/src/tools.c
+M      glabels2/src/ui-property-bar.c
+M      glabels2/src/ui-sidebar.c
+M      glabels2/src/ui-util.c
+M      glabels2/src/ui.c
+M      glabels2/src/util.c
+M      glabels2/src/util.h
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-highlight.c
+M      glabels2/src/view-highlight.h
+M      glabels2/src/view-image.c
+M      glabels2/src/view-line.c
+M      glabels2/src/view-object.c
+M      glabels2/src/view-object.h
+M      glabels2/src/view-text.c
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+M      glabels2/src/wdgt-chain-button.c
+M      glabels2/src/wdgt-media-select.c
+M      glabels2/src/wdgt-media-select.h
+M      glabels2/src/wdgt-mini-preview.c
+M      glabels2/src/wdgt-mini-preview.h
+M      glabels2/src/wdgt-print-copies.c
+M      glabels2/src/wdgt-print-copies.h
+M      glabels2/src/wdgt-print-merge.c
+M      glabels2/src/wdgt-print-merge.h
+M      glabels2/src/wdgt-rotate-label.c
+M      glabels2/src/wdgt-rotate-label.h
+M      glabels2/src/window.c
+M      glabels2/src/window.h
+M      glabels2/src/xml-label-04.c
+M      glabels2/src/xml-label-191.c
+M      glabels2/src/xml-label.c
+
+commit 8b5703b7bbbbb9c7bd88090bc6d3b58aee4e99f8
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-04-16
+
+    2005-04-16 Jim Evins  <evins@snaught.com>
+
+       * data/glade/Makefile.am:
+       * data/glade/merge-properties-dialog.glade:
+               Added merge properties dialog glade description file.
+       * src/merge-properties-dialog.h:
+       * src/merge-properties-dialog.c:
+       (gl_merge_properties_dialog_get_type),
+       (gl_merge_properties_dialog_init),
+       (gl_merge_properties_dialog_finalize),
+       (gl_merge_properties_dialog_new),
+       (gl_merge_properties_dialog_construct), (type_changed_cb),
+       (src_changed_cb), (response_cb), (load_tree),
+       (record_select_toggled_cb), (select_all_button_clicked_cb),
+       (unselect_all_button_clicked_cb):
+               Modified merge properties dialog to use libglade.  Added
+               "select all" and "unselect all" buttons.
+       * src/merge-text.c: (parse_line):
+               Handle empty lines better.
+       * src/merge.c: (gl_merge_eval_key):
+               Evaluate the key whether the record is selected or not.
+       * src/util.h:
+       * src/util.c: (gl_util_combo_box_add_text_model):
+               Since libglade does not use the gtk_combo_box_new_text()
+               constructor for GtkComboBoxes, a utility function
+               was created
+               to add an appropriate text model to a GtkComboBox.
+       * src/view.c: (gl_view_edit_merge_props):
+               Removed unnecessary "show all's".
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@521
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glade/Makefile.am
+A      glabels2/data/glade/merge-properties-dialog.glade
+M      glabels2/src/merge-properties-dialog.c
+M      glabels2/src/merge-properties-dialog.h
+M      glabels2/src/merge-text.c
+M      glabels2/src/merge.c
+M      glabels2/src/util.c
+M      glabels2/src/util.h
+M      glabels2/src/view.c
+
+commit 7013c7014cd9f41690563913707fcfa25dfce5d6
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-04-16
+
+    2005-04-15 Jim Evins  <evins@snaught.com>
+
+       * po/ru.po:
+               Updated russian translation (Vitaly Lipatov)
+       * data/templates/misc-iso-templates.xml:
+               Added templates for russian business cards provided by
+               Vitaly Lipatov.
+       * AUTHORS:
+               Updated acknowledgements for above.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@520
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/data/templates/misc-iso-templates.xml
+M      glabels2/po/ru.po
+
+commit d420b4bf2aa0b8ae7fc109fa795504ce7ea3309f
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-04-16
+
+    2005-04-15 Jim Evins  <evins@snaught.com>
+
+       * data/templates/avery-us-templates.xml:
+               Added Avery 5388 and 5389 templates provided by Peter
+               L. Berghold.
+       * data/templates/misc-iso-templates.xml:
+               Added Ryman standard CD/DVD template, provided by
+               Dan Clark.
+       * AUTHORS:
+               Added acknowledgements for above.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@518
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/data/templates/avery-us-templates.xml
+M      glabels2/data/templates/misc-iso-templates.xml
+
+commit cceb27eeb72f647452215fb4bf724f2946428a46
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-04-10
+
+    2005-04-10 Jim Evins <evins@snaught.com>
+
+       * libglabels/xml-paper.c: (gl_xml_paper_parse_paper_node):
+       * libglabels/xml-template.c:
+       (gl_xml_template_parse_template_node),
+       (xml_parse_label_rectangle_node), (xml_parse_label_round_node),
+       (xml_parse_label_cd_node), (xml_parse_alias_node):
+       * libglabels/xml.c: (gl_xml_get_prop_double),
+       (gl_xml_get_prop_boolean), (gl_xml_get_prop_int),
+       (gl_xml_get_prop_uint), (gl_xml_get_prop_length):
+       * src/xml-label-04.c: (xml04_parse_media_description),
+       (xml04_parse_text_props), (xml04_parse_barcode_props),
+       (xml04_parse_merge_properties):
+       * src/xml-label-191.c: (xml191_parse_object),
+       (xml191_parse_text_props), (xml191_parse_barcode_props),
+       (xml191_parse_merge_fields), (xml191_parse_pixdata),
+       (xml191_parse_sheet), (xml191_parse_label), (xml191_parse_markup),
+       (xml191_parse_alias):
+       * src/xml-label.c: (xml_parse_object_text),
+       (xml_parse_object_barcode), (xml_parse_merge_fields),
+       (xml_parse_pixdata), (xml_parse_toplevel_span):
+               Make sure to use xmlFree for anything obtained from libxml
+               in case libxml and glib use different memory management
+               space.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@516
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/libglabels/xml-paper.c
+M      glabels2/libglabels/xml-template.c
+M      glabels2/libglabels/xml.c
+M      glabels2/src/xml-label-04.c
+M      glabels2/src/xml-label-191.c
+M      glabels2/src/xml-label.c
+
+commit 21cb58ded51cba453457ac6c47517b32f5915f59
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-04-09
+
+    2005-04-08 Jim Evins <evins@snaught.com>
+
+       * src/util.h:
+       * src/util.c: (gl_util_combo_box_set_strings), (search_text_func),
+       (gl_util_combo_box_set_active_text):
+               Added utility functions to simplify working with
+               GtkComboBox
+               widgets in GTK-2.6.
+       * src/ui-property-bar.h:
+       * src/ui-property-bar.c: (gl_ui_property_bar_construct),
+       (reset_to_default_properties), (update_text_properties),
+       (font_family_changed_cb):
+               Replaced deprecated GtkCombo with GtkComboBox.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@515
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/ui-property-bar.c
+M      glabels2/src/ui-property-bar.h
+M      glabels2/src/util.c
+M      glabels2/src/util.h
+
+commit d99e9af35cbdba98f6919c63e1d6e6755e2ab66f
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-04-04
+
+    2005-04-03 Jim Evins <evins@snaught.com>
+
+       * src/Makefile.am:
+       * src/wdgt-image-select.h:
+       * src/wdgt-image-select.c:
+               Removed obsolete wdgt-image-select.[ch] files.
+       * libglabels/paper.c: (gl_paper_dup):
+               Fixed rename of parameter introduced during documentation
+               updates.
+       * data/glade/object-editor.glade:
+       * src/object-editor-image-page.c:
+       (gl_object_editor_prepare_image_page), (img_radio_toggled_cb),
+       (gl_object_editor_set_image), (gl_object_editor_get_image),
+       (update_preview_cb), (add_image_filters_to_chooser):
+       * src/object-editor-private.h:
+               Replaced deprecated GnomePixmapEntry with
+               GtkFileChooserButton.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@514
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glade/object-editor.glade
+M      glabels2/libglabels/paper.c
+M      glabels2/src/Makefile.am
+M      glabels2/src/object-editor-image-page.c
+M      glabels2/src/object-editor-private.h
+D      glabels2/src/wdgt-image-select.c
+D      glabels2/src/wdgt-image-select.h
+
+commit 18e4f3780c76fb968f4ba57636b8c1ec66804b91
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-04-03
+
+    2005-04-02 Jim Evins <evins@snaught.com>
+
+       * src/mygal/mygal-combo-box.c: (deactivate_arrow),
+       (mygal_combo_box_popup_hide_unconditional),
+       (mygal_combo_box_popup_hide), (mygal_combo_box_popup_display),
+       (mygal_combo_toggle_pressed), (mygal_combo_box_init),
+       (mygal_combo_popup_tear_off), (mygal_combo_set_tearoff_state),
+       (mygal_combo_tearoff_bg_copy), (mygal_combo_popup_reparent),
+       (cb_tearable_button_release), (mygal_combo_box_set_tearable):
+               Renamed all internal gtk_combo functions to mygal_combo
+               to prevent namespace confusion.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@513
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/mygal/mygal-combo-box.c
+
+commit 27bba0435e5a44ee0a63086c01872eaf070ce3d0
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-04-03
+
+    2005-04-02 Jim Evins <evins@snaught.com>
+
+       * src/mygal/color-palette.c: (color_palette_change_custom_color),
+       (cust_color_set), (color_palette_setup):
+       * src/mygal/color-palette.h:
+               Replaced deprecated GnomeColorPicker with GtkColorButton.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@512
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/mygal/color-palette.c
+M      glabels2/src/mygal/color-palette.h
+
+commit 7fcb67653dc29f7449baa7f069c3d4bb2ecdd7e9
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-04-03
+
+       * docs/libglabels/libglabels-sections.txt:
+       * docs/libglabels/libglabels-undocumented.txt:
+       * docs/libglabels/tmpl/enums.sgml:
+       * docs/libglabels/tmpl/paper.sgml:
+       * docs/libglabels/tmpl/xml-paper.sgml:
+       * docs/libglabels/tmpl/xml-template.sgml:
+       * libglabels/enums.h:
+       * libglabels/paper.c: (gl_paper_dup):
+       * libglabels/paper.h:
+       * libglabels/xml-paper.c:
+       * libglabels/xml-template.c:
+               More documentation updates for libglabels.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@511
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/docs/libglabels/libglabels-sections.txt
+M      glabels2/docs/libglabels/libglabels-undocumented.txt
+M      glabels2/docs/libglabels/tmpl/enums.sgml
+M      glabels2/docs/libglabels/tmpl/paper.sgml
+M      glabels2/docs/libglabels/tmpl/xml-paper.sgml
+M      glabels2/docs/libglabels/tmpl/xml-template.sgml
+M      glabels2/libglabels/enums.h
+M      glabels2/libglabels/paper.c
+M      glabels2/libglabels/paper.h
+M      glabels2/libglabels/xml-paper.c
+M      glabels2/libglabels/xml-template.c
+
+commit 4b3e8b953927a4350334909c55d0aa790591e3f3
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-03-24
+
+    2005-03-23 Jim Evins  <evins@snaught.com>
+
+       * INSTALL:
+               Automatically updated.
+       * Makefile.am:
+       * autogen.sh:
+       * configure.in:
+       * docs/Makefile.am:
+       * docs/libglabels/Makefile.am:
+       * docs/libglabels/libglabels-docs.sgml:
+       * docs/libglabels/libglabels-sections.txt:
+       * docs/libglabels/libglabels-undocumented.txt:
+       * docs/libglabels/tmpl/enums.sgml:
+       * docs/libglabels/tmpl/libglabels-unused.sgml:
+       * docs/libglabels/tmpl/libglabels.sgml:
+       * docs/libglabels/tmpl/paper.sgml:
+       * docs/libglabels/tmpl/template.sgml:
+       * docs/libglabels/tmpl/xml-paper.sgml:
+       * docs/libglabels/tmpl/xml-template.sgml:
+       * docs/libglabels/tmpl/xml.sgml:
+               Added basic gtk-doc stuff to support documenting
+               libglabels
+               API.
+       * libglabels/xml.c:
+               Updated function comments with gtk-doc markup.
+       * missing:
+               Removed.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@510
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/INSTALL
+M      glabels2/Makefile.am
+M      glabels2/autogen.sh
+M      glabels2/configure.in
+A      glabels2/docs/Makefile.am
+A      glabels2/docs/libglabels/Makefile.am
+A      glabels2/docs/libglabels/libglabels-docs.sgml
+A      glabels2/docs/libglabels/libglabels-overrides.txt
+A      glabels2/docs/libglabels/libglabels-sections.txt
+A      glabels2/docs/libglabels/libglabels-undocumented.txt
+A      glabels2/docs/libglabels/tmpl/enums.sgml
+A      glabels2/docs/libglabels/tmpl/libglabels-unused.sgml
+A      glabels2/docs/libglabels/tmpl/libglabels.sgml
+A      glabels2/docs/libglabels/tmpl/paper.sgml
+A      glabels2/docs/libglabels/tmpl/template.sgml
+A      glabels2/docs/libglabels/tmpl/xml-paper.sgml
+A      glabels2/docs/libglabels/tmpl/xml-template.sgml
+A      glabels2/docs/libglabels/tmpl/xml.sgml
+M      glabels2/libglabels/xml.c
+D      glabels2/missing
+
+commit bf335f6190c755edecd76daa222ddf818c3962f7
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-03-23
+
+    2005-03-22 Jim Evins  <evins@snaught.com>
+
+       Since the development version now requires gtk-2.6/gnome-2.10, I
+       have made a first pass at removing deprecations.
+
+       * configure.in:
+       * libglabels/Makefile.am:
+       * src/Makefile.am:
+               Added configure option to turn on X_DISABLE_DEPRECATED
+               flags.
+               Also removed all remnants of HAVE_FILECHOOSER.
+       * src/file.c: (gl_file_open_real):
+               Removed code for old GtkFileSelection.
+       * libglabels/libglabels-private.h:
+       * libglabels/paper.c:
+       * libglabels/template.c:
+       * libglabels/xml-paper.c:
+       * libglabels/xml-template.c:
+       * libglabels/xml.c:
+       * src/bc.c:
+       * src/file.c:
+       * src/glabels-batch.c:
+       * src/glabels.c:
+       * src/label.c:
+       * src/merge-init.c:
+       * src/merge-properties-dialog.c:
+       * src/merge.c:
+       * src/object-editor.c:
+       * src/prefs-dialog.c:
+       * src/prefs.c:
+       * src/print-dialog.c:
+       * src/print.c:
+       * src/stock.c:
+       * src/template-designer.c:
+       * src/ui-property-bar.c:
+       * src/ui-sidebar.c:
+       * src/view-barcode.c:
+       * src/view-box.c:
+       * src/view-ellipse.c:
+       * src/view-image.c:
+       * src/view-line.c:
+       * src/view-text.c:
+       * src/view.c:
+       * src/wdgt-image-select.c:
+       * src/wdgt-media-select.c:
+       * src/wdgt-print-copies.c:
+       * src/wdgt-print-merge.c:
+       * src/wdgt-rotate-label.c:
+       * src/window.c:
+       * src/xml-label-04.c:
+       * src/xml-label-191.c:
+       * src/xml-label.c:
+               Added '#include <glib/gi18n.h>" where needed.
+               Removed any unused '#include <gnome.h>"s.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@509
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+M      glabels2/libglabels/Makefile.am
+M      glabels2/libglabels/libglabels-private.h
+M      glabels2/libglabels/paper.c
+M      glabels2/libglabels/template.c
+M      glabels2/libglabels/xml-paper.c
+M      glabels2/libglabels/xml-template.c
+M      glabels2/libglabels/xml.c
+M      glabels2/src/Makefile.am
+M      glabels2/src/bc.c
+M      glabels2/src/file.c
+M      glabels2/src/glabels-batch.c
+M      glabels2/src/glabels.c
+M      glabels2/src/label.c
+M      glabels2/src/merge-init.c
+M      glabels2/src/merge-properties-dialog.c
+M      glabels2/src/merge.c
+M      glabels2/src/object-editor.c
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/prefs.c
+M      glabels2/src/print-dialog.c
+M      glabels2/src/print.c
+M      glabels2/src/stock.c
+M      glabels2/src/template-designer.c
+M      glabels2/src/ui-property-bar.c
+M      glabels2/src/ui-sidebar.c
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-image.c
+M      glabels2/src/view-line.c
+M      glabels2/src/view-text.c
+M      glabels2/src/view.c
+M      glabels2/src/wdgt-image-select.c
+M      glabels2/src/wdgt-media-select.c
+M      glabels2/src/wdgt-print-copies.c
+M      glabels2/src/wdgt-print-merge.c
+M      glabels2/src/wdgt-rotate-label.c
+M      glabels2/src/window.c
+M      glabels2/src/xml-label-04.c
+M      glabels2/src/xml-label-191.c
+M      glabels2/src/xml-label.c
+
+commit c5beb442f3f9bb114d6da1e6bc47785cff1e3e9c
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-03-23
+
+    2005-03-22 Jim Evins  <evins@snaught.com>
+
+       * src/commands.c: (activate_url), (gl_cmd_help_about):
+               Replaced GnomeAbout with GtkAboutDialog.  Therefore the
+               development version of glabels now depends on GTK 2.6 and
+               GNOME 2.10.
+       * configure.in:
+               Updated library dependencies.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@508
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+M      glabels2/src/commands.c
+
+commit 578df4908bb69264be20b4e887782ff1276bb2e8
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-03-01
+
+    2005-02-28 Jim Evins  <evins@snaught.com>
+
+       * AUTHORS:
+       * data/templates/misc-iso-templates.xml:
+               Added 'Ednet 45021' template provided by Ali Akcaagac
+               <aliakc@web.de>.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@507
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/data/templates/misc-iso-templates.xml
+
+commit 25516165e852af71671d740a8d9ed003ca7846ae
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-02-15
+
+    2005-02-14 Jim Evins  <evins@snaught.com>
+
+       * data/templates/avery-us-templates.xml:
+               Updated templates to use inches instead of points.
+       * src/print-dialog.c: (printer_page_new):
+               Changed packing style when adding printer selector widget.
+               This fixes
+               debian Bug#295274.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@504
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/templates/avery-us-templates.xml
+M      glabels2/src/print-dialog.c
+
+commit 7acfd66581cd73e6bf1fa7db370be984ecc1df9e
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-02-13
+
+    2005-02-13 Jim Evins  <evins@snaught.com>
+
+       * AUTHORS:
+       * po/es.po:
+               Updated spanish translations. (sergio rivadero)
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@502
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/po/es.po
+
+commit 46b4d3627f3a1af503c1433286dbe78c7e7f2d09
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-02-06
+
+    2005-02-05 Jim Evins  <evins@snaught.com>
+
+       Some cleanup to libglabels.
+
+       * configure.in:
+               Updated version to 2.1.1cvs.  Added generation of
+               libglabels.pc.
+       * libglabels/libglabels.pc.in
+               Created.
+       * libglabels/enums.h
+               Created.  Currently only contains glUnitsType which
+               provides enumerations
+               for all possible units of distance.
+       * libglabels/Makefile.am:
+               Incorporated new files enums.h and libglabels.pc[.in].
+       * libglabels/libglabels.h:
+               Include enums.h.
+       * libglabels/template.h:
+       * libglabels/template.c: (gl_template_layout_new):
+               Changed parameters nx and ny to gint from gdouble.
+       * libglabels/xml.h:
+       * libglabels/xml.c: (gl_xml_get_prop_length),
+       (gl_xml_set_prop_length), (gl_xml_set_default_units):
+               Added support for different output units.
+       * src/prefs-dialog.c: (update_locale_page_from_prefs),
+       (update_prefs_from_locale_page):
+       * src/prefs-model.c: (string_to_units), (units_to_string):
+       * src/prefs-model.h:
+       * src/prefs.c: (gl_prefs_get_units_per_point),
+       (gl_prefs_get_units_precision), (gl_prefs_get_units_step_size),
+       (gl_prefs_get_units_string):
+       * src/prefs.h:
+       * src/wdgt-media-select.c: (details_update),
+       (get_label_size_desc):
+               Reconciled all length enumerations with the new
+               enumerations provided
+               in libglabels/enums.h.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@501
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+M      glabels2/libglabels/Makefile.am
+C066   glabels2/libglabels/libglabels.h
+glabels2/libglabels/enums.h
+M      glabels2/libglabels/libglabels.h
+A      glabels2/libglabels/libglabels.pc.in
+M      glabels2/libglabels/template.c
+M      glabels2/libglabels/template.h
+M      glabels2/libglabels/xml.c
+M      glabels2/libglabels/xml.h
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/prefs-model.c
+M      glabels2/src/prefs-model.h
+M      glabels2/src/prefs.c
+M      glabels2/src/prefs.h
+M      glabels2/src/wdgt-media-select.c
+
+commit 80c6dfde91a3ca72b4015c50ecebb7898fc474ae
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-02-04
+
+    2005-02-03 Jim Evins  <evins@snaught.com>
+
+       * po/cs.po:
+               Updated Czech translations. (David Makovský and Zbynek
+               Mrkvick)
+       * po/it.po:
+               Updated Italian translations. (Daniele Medri)
+       * AUTHORS:
+               Updated credits to reflect above translations.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@500
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/po/cs.po
+M      glabels2/po/it.po
+
+commit d4cb26542c64b720aa718adb1aacde180d9f8b32
+Author: Jim Evins <evins@snaught.com>
+Date:  2005-01-22
+
+    2005-01-22 Jim Evins  <evins@snaught.com>
+
+       * MESSAGE-OF-DOOM:
+               Added.
+       * Makefile.am:
+               Added MESSAGE-OF-DOOM to EXTRA_DIST.
+       * NEWS:
+               Final prep for 2.1.0.
+       * configure.in:
+               Set version to 2.1.0.  Output MESSAGE-OF-DOOM.
+       * glabels.spec.in:
+               Added '--remove-original' flag to desktop-file-install,
+               so that there is
+               only one menu entry.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@497
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+A      glabels2/MESSAGE-OF-DOOM
+M      glabels2/Makefile.am
+M      glabels2/NEWS
+M      glabels2/configure.in
+M      glabels2/data/desktop/glabels.desktop.in
+M      glabels2/data/dtd/glabels-2.0.dtd
+M      glabels2/data/glade/object-editor.glade
+M      glabels2/data/man/glabels.1
+M      glabels2/data/mime/glabels.keys.in
+M      glabels2/data/pixmaps/Makefile.am
+M      glabels2/data/pixmaps/glabels-about-logo.png
+A      glabels2/data/pixmaps/glabels-application-x-glabels.png
+D      glabels2/data/pixmaps/glabels-icon.png
+R100   glabels2/data/pixmaps/glabels-logo.png
+glabels2/data/pixmaps/glabels-splash.png
+M      glabels2/data/pixmaps/glabels.png
+M      glabels2/data/templates/avery-iso-templates.xml
+M      glabels2/data/templates/misc-iso-templates.xml
+M      glabels2/data/templates/misc-us-templates.xml
+M      glabels2/data/ui/glabels-ui.xml
+M      glabels2/glabels.spec.in
+D      glabels2/mkinstalldirs
+M      glabels2/po/fr.po
+M      glabels2/src/Makefile.am
+M      glabels2/src/color.c
+M      glabels2/src/color.h
+M      glabels2/src/debug.c
+M      glabels2/src/debug.h
+M      glabels2/src/glabels-batch.c
+M      glabels2/src/glabels.c
+M      glabels2/src/label-barcode.c
+M      glabels2/src/label-box.c
+M      glabels2/src/label-ellipse.c
+M      glabels2/src/label-line.c
+M      glabels2/src/label-object.c
+M      glabels2/src/label-object.h
+M      glabels2/src/label-text.c
+M      glabels2/src/object-editor-bc-page.c
+M      glabels2/src/object-editor-fill-page.c
+M      glabels2/src/object-editor-line-page.c
+M      glabels2/src/object-editor-private.h
+M      glabels2/src/object-editor-text-page.c
+M      glabels2/src/object-editor.c
+M      glabels2/src/object-editor.h
+M      glabels2/src/prefs-model.c
+M      glabels2/src/prefs-model.h
+M      glabels2/src/print.c
+M      glabels2/src/print.h
+M      glabels2/src/splash.c
+M      glabels2/src/template-designer.c
+M      glabels2/src/ui-property-bar.c
+M      glabels2/src/ui.c
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-image.c
+M      glabels2/src/view-line.c
+M      glabels2/src/view-text.c
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+M      glabels2/src/window.c
+M      glabels2/src/xml-label-04.c
+M      glabels2/src/xml-label-191.c
+M      glabels2/src/xml-label.c
+
+commit fb62736c8d9761183cc64ded63a9b5ff9fc5ae3d
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-08-22
+
+    2004-08-22 Jim Evins  <evins@snaught.com>
+
+       * AUTHORS:
+       * src/glabels-batch.c: (main):
+               Applied patch with minor mods to allow selecting merge
+               source and
+               crop-marks on glabels-batch's command line.  Original
+               patch provided by
+               José Dapena Paz <jdapena@igalia.com>.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@461
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/src/glabels-batch.c
+
+commit 83246d813303e9b6459abad3ea7fa3367eac06c6
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-08-15
+
+    2004-08-15 Jim Evins  <evins@snaught.com>
+
+       * data/desktop/glabels.desktop.in:
+               - Added encoding line
+               - Removed period from comment
+               - Fixed Terminal line, changed "0" to "false"
+               - Added semicolen to Categories line
+       * po/ja.po:
+               - Made sure desktop.in comment string above still
+               translated properly
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@460
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/desktop/glabels.desktop.in
+M      glabels2/po/ja.po
+
+commit 968a16da88603023f7c7b5e526fd5a7a9099d94c
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-08-15
+
+    2004-08-14 Jim Evins  <evins@snaught.com>
+
+       * libglabels/xml-paper.c: (gl_xml_paper_parse_paper_node):
+       * libglabels/xml-template.c:
+       (gl_xml_template_parse_template_node):
+       * src/xml-label-191.c: (xml191_parse_sheet):
+               Fixed improper freeing of gettext strings.  Merged from
+               2.0.1.
+       * configure.in:
+               Reconciled libglabels versioning with 2.0.1.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@457
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+M      glabels2/libglabels/xml-paper.c
+M      glabels2/libglabels/xml-template.c
+M      glabels2/src/xml-label-191.c
+
+commit abae8fc459f68745dbc6369fd5b71dffad62e256
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-08-14
+
+    2004-08-14 Jim Evins  <evins@snaught.com>
+
+       * configure.in:
+               Updated version to 2.1cvs.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@452
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+
+commit 9f33ea2bb3803234511af8e7fbd454eacce42877
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-08-14
+
+    2004-08-14 Jim Evins  <evins@snaught.com>
+
+       * po/ja.po:
+               Updated 2.0.x translation by Takeshi AIHANA
+               <aihana@gnome.gr.jp>.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@449
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/po/ja.po
+
+commit a5659c418bcd65d7435c3ce51613801a64d0ac1a
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-08-14
+
+    2004-08-14 Jim Evins  <evins@snaught.com>
+
+       Fixes for Bug #1008181.
+
+       * src/bc.c: (gl_barcode_default_digits):
+               Make a format of zero digits, harmless.
+       * src/xml-label.c: (xml_parse_object_barcode):
+               Set default value of the format property of barcode
+               objects to 10, not
+               zero.  This will prevent crashes when reading pre
+               2.0.x files.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@448
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/bc.c
+M      glabels2/src/xml-label.c
+
+commit 342ce3d7a1b5dd0b214cafa5062b9822d171d959
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-08-09
+
+    2004-08-09 Jim Evins  <evins@snaught.com>
+
+           * NEWS:
+           * TODO:
+           * help/C/glabels-C.omf:
+           * help/C/glabels.xml:
+                   Brought documentation up-to-date for 2.0.0 release.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@445
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/NEWS
+
+commit 02bee8734212c7fd340a00788764001f698bab05
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-08-09
+
+    2004-08-09 Jim Evins  <evins@snaught.com>
+
+       * NEWS:
+       * TODO:
+       * help/C/glabels-C.omf:
+       * help/C/glabels.xml:
+               Brought documentation up-to-date for 2.0.0 release.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@444
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/NEWS
+M      glabels2/TODO
+M      glabels2/help/C/glabels-C.omf
+M      glabels2/help/C/glabels.xml
+
+commit 356e6b3d52372448409a359f07ad04c73fa35a82
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-08-09
+
+    2004-08-09 Jim Evins  <evins@snaught.com>
+
+       These are hopefully the final preparations for 2.0.0.
+
+       * data/mime/Makefile.am:
+               Include glabels.xml in EXTRA_DIST.
+       * configure.in:
+               - Updated comment style.
+               - Added LIBGLABELS_VERSION_INFO macro, updated Current.
+               - Added package and version info to configuration printout
+               - Update version to 2.0.0
+       * libglabels/Makefile.am:
+               Use the new LIBGLABELS_VERSION_INFO macro.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@443
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+M      glabels2/data/mime/Makefile.am
+M      glabels2/libglabels/Makefile.am
+
+commit db1a07eb0f330390e2b7fd6f4d82647f076a307d
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-08-09
+
+    2004-08-09 Jim Evins  <evins@snaught.com>
+
+       * configure.in:
+       * glabels.spec.in:
+               Cleanup of required library macros.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@442
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+M      glabels2/glabels.spec.in
+
+commit 7427f8f1bced3e4bc465d0d0492019435193d9d0
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-08-08
+
+    2004-08-08 Jim Evins  <evins@snaught.com>
+
+       * glabels.spec.in:
+               - Updated URL
+               - More specific of what to install in /usr/bin and
+               /usr/lib
+               - Remove built mime registration files from staging
+               directory
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@441
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/glabels.spec.in
+
+commit 4f4f868eade0e1e5f9c6c8640cc424a209e930ea
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-08-08
+
+    2004-08-08 Jim Evins  <evins@snaught.com>
+
+       * data/mime/Makefile.am:
+               Fixed typo:  key_files should have been keys_files.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@440
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/mime/Makefile.am
+
+commit 3470ca951a824cee7a23eec888299124eed6eb13
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-08-08
+
+    2004-08-08 Jim Evins  <evins@snaught.com>
+
+       Reorganization of runtime data files.  Also added registration
+       of mimetype with
+       new freedesktop.org mime database if available.
+
+       * data/*
+               Moved files to appropriate subdirectories, creating
+               local Makefile.am
+               in each subdirectory.
+               - Moved paper-sizes.xml and *-templates.xml to templates
+               subdirectory.
+                 These are now installed at $datadir/glabels/templates.
+               - Moved glabels.1 to man subdirectory.
+               - Moved glabels-2.0.dtd to dtd subdirectory.
+               - Moved glabels.desktop.in to desktop subdirectory.
+               - Moved glabels.keys.in and glabels.mime to mime
+               subdirectory.
+       * data/pixmaps/*
+               Moved "./pixmaps" to "./data/pixmaps"
+       * data/ui/*
+               Moved src/glabels-ui.xml to data/ui directory. Created
+               Makefile.am.
+       * data/glade/*
+               Moved libglade files from src to data/glade. Created
+               Makefile.am.
+       * Makefile.am:
+               Removed pixmaps from SUBDIRS.
+       * configure.in:
+               - Removed pixmaps from makefiles.
+               - Added makefiles for new subdirs of data.
+               - Added tests for freedesktop.org mime database.
+       * glabels.spec.in:
+               - Added tests for freedesktop.org mime database for post
+               install and
+                 post un-install actions.
+       * libglabels/Makefile.am:
+               Moved system template files to
+               $(datadir)/glabels/templates.
+       * libglabels/libglabels-private.h:
+               Moved system template files to
+               $(datadir)/glabels/templates.
+       * po/POTFILES.in:
+               - Accounted for movement of ui and libglade files.
+               - Added missing .in files.
+               - Reorganized by directory.
+       * src/Makefile.am:
+               Accounted for movement of ui and libglade files.
+       * data/mime/glabels.xml.in:
+               New file for registering with freedesktop.org mime
+               database.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@439
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/Makefile.am
+M      glabels2/configure.in
+M      glabels2/data/Makefile.am
+A      glabels2/data/desktop/Makefile.am
+A      glabels2/data/desktop/glabels.desktop.in
+A      glabels2/data/dtd/Makefile.am
+R100   glabels2/data/glabels-2.0.dtd   glabels2/data/dtd/glabels-2.0.dtd
+D      glabels2/data/glabels.desktop.in
+A      glabels2/data/glade/Makefile.am
+R100   glabels2/src/object-editor.glade
+glabels2/data/glade/object-editor.glade
+R100   glabels2/src/prefs-dialog.glade
+glabels2/data/glade/prefs-dialog.glade
+R100   glabels2/src/template-designer.glade
+glabels2/data/glade/template-designer.glade
+A      glabels2/data/man/Makefile.am
+R100   glabels2/data/glabels.1 glabels2/data/man/glabels.1
+A      glabels2/data/mime/Makefile.am
+R100   glabels2/data/glabels.applications
+glabels2/data/mime/glabels.applications
+R090   glabels2/data/glabels.keys.in   glabels2/data/mime/glabels.keys.in
+R100   glabels2/data/glabels.mime      glabels2/data/mime/glabels.mime
+A      glabels2/data/mime/glabels.xml.in
+R100   glabels2/pixmaps/Makefile.am    glabels2/data/pixmaps/Makefile.am
+R100   glabels2/pixmaps/ex-1layout.png
+glabels2/data/pixmaps/ex-1layout.png
+R100   glabels2/pixmaps/ex-2layouts.png
+glabels2/data/pixmaps/ex-2layouts.png
+R100   glabels2/pixmaps/ex-cd-size.png
+glabels2/data/pixmaps/ex-cd-size.png
+R100   glabels2/pixmaps/ex-rect-size.png
+glabels2/data/pixmaps/ex-rect-size.png
+R100   glabels2/pixmaps/ex-round-size.png
+glabels2/data/pixmaps/ex-round-size.png
+R057   glabels2/pixmaps/glabels-about-logo.png
+glabels2/data/pixmaps/glabels-about-logo.png
+R100   glabels2/pixmaps/glabels-icon.png
+glabels2/data/pixmaps/glabels-icon.png
+A      glabels2/data/pixmaps/glabels-logo.png
+R100   glabels2/pixmaps/glabels.png    glabels2/data/pixmaps/glabels.png
+A      glabels2/data/templates/Makefile.am
+R100   glabels2/data/avery-iso-templates.xml
+glabels2/data/templates/avery-iso-templates.xml
+R100   glabels2/data/avery-other-templates.xml
+glabels2/data/templates/avery-other-templates.xml
+R100   glabels2/data/avery-us-templates.xml
+glabels2/data/templates/avery-us-templates.xml
+R100   glabels2/data/misc-iso-templates.xml
+glabels2/data/templates/misc-iso-templates.xml
+R100   glabels2/data/misc-other-templates.xml
+glabels2/data/templates/misc-other-templates.xml
+R100   glabels2/data/misc-us-templates.xml
+glabels2/data/templates/misc-us-templates.xml
+R100   glabels2/data/paper-sizes.xml
+glabels2/data/templates/paper-sizes.xml
+R100   glabels2/data/zweckform-iso-templates.xml
+glabels2/data/templates/zweckform-iso-templates.xml
+A      glabels2/data/ui/Makefile.am
+R100   glabels2/src/glabels-ui.xml     glabels2/data/ui/glabels-ui.xml
+M      glabels2/glabels.spec.in
+M      glabels2/libglabels/Makefile.am
+M      glabels2/libglabels/libglabels-private.h
+D      glabels2/pixmaps/glabels-logo.png
+M      glabels2/po/POTFILES.in
+M      glabels2/po/cs.po
+M      glabels2/po/de.po
+M      glabels2/po/es.po
+M      glabels2/po/fr.po
+M      glabels2/po/it.po
+M      glabels2/po/ja.po
+M      glabels2/po/pl.po
+M      glabels2/po/pt_BR.po
+M      glabels2/po/ru.po
+M      glabels2/po/zh_TW.Big5.po
+M      glabels2/src/Makefile.am
+
+commit d4ecd627e9dbeb831a9751c67d3e4bd983f73ccd
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-08-07
+
+    2004-08-07 Jim Evins  <evins@snaught.com>
+
+       * src/recent-files/*:
+               Re-synced to latest libegg/recent-files.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@438
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/recent-files/Makefile.am
+M      glabels2/src/recent-files/egg-recent-item.c
+M      glabels2/src/recent-files/egg-recent-item.h
+M      glabels2/src/recent-files/egg-recent-model.c
+M      glabels2/src/recent-files/egg-recent-util.c
+D      glabels2/src/recent-files/egg-recent-vfs-utils.c
+D      glabels2/src/recent-files/egg-recent-vfs-utils.h
+M      glabels2/src/recent-files/egg-recent-view-gtk.c
+M      glabels2/src/recent-files/egg-recent-view.h
+A      glabels2/src/recent-files/egg-recent.h
+
+commit dcfe50a8208c3959e1b0313fd92619fe754a945a
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-08-07
+
+    2004-08-07 Jim Evins  <evins@snaught.com>
+
+       * Makefile.am:
+       * configure.in:
+       * help/*
+               Renamed "./doc" directory to "./help" which contains
+               user documentation,
+               to be more consistent with other GNOME applications.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@437
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+A      glabels2/help/C/Makefile.am
+A      glabels2/help/C/figures/glabels-template-cd.png
+A      glabels2/help/C/figures/glabels-template-label.png
+A      glabels2/help/C/figures/glabels-template-layout.png
+A      glabels2/help/C/figures/main-window-empty.png
+A      glabels2/help/C/figures/object-editor-sidebar.png
+A      glabels2/help/C/figures/print-copies.png
+A      glabels2/help/C/figures/print-merge.png
+A      glabels2/help/C/glabels-C.omf
+A      glabels2/help/C/glabels.xml
+A      glabels2/help/C/legal.xml
+A      glabels2/help/Makefile.am
+
+commit a1220b934f65cb92dc9f70f4a56202f5dcc990c3
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-08-07
+
+    2004-08-07 Jim Evins  <evins@snaught.com>
+
+       * Makefile.am:
+       * configure.in:
+       * help/*
+               Renamed "./doc" directory to "./help" which contains
+               user documentation,
+               to be more consistent with other GNOME applications.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@436
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/Makefile.am
+M      glabels2/configure.in
+
+commit 1e4aa252e63eda3a5c119028baebe5b8d76fcbf5
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-07-26
+
+    2004-07-26 Jim Evins  <evins@snaught.com>
+
+       * src/merge-properties-dialog.c:
+       (gl_merge_properties_dialog_init):
+               Corrected button order of merge properties dialog.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@435
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/merge-properties-dialog.c
+
+commit e84ded9f15e286b712ea5d1f876eed9e5d45c563
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-07-18
+
+    2004-07-18 Jim Evins  <evins@snaught.com>
+
+       * data/glabels-2.0.dtd:
+       * src/bc.c: (gl_barcode_default_digits),
+       (gl_barcode_can_freeform),
+       (gl_barcode_get_prefered_n):
+       * src/bc.h:
+       * src/label-barcode.c: (copy), (gl_label_barcode_set_props),
+       (gl_label_barcode_get_props), (get_size):
+       * src/label-barcode.h:
+       * src/object-editor-bc-page.c: (gl_object_editor_prepare_bc_page),
+       (style_changed_cb), (gl_object_editor_set_bc_style),
+       (gl_object_editor_get_bc_style):
+       * src/object-editor-data-page.c: (data_radio_toggled_cb),
+       (gl_object_editor_set_data), (gl_object_editor_get_data):
+       * src/object-editor-private.h:
+       * src/object-editor.c: (gl_object_editor_set_key_names):
+       * src/object-editor.glade:
+       * src/object-editor.h:
+       * src/print.c: (draw_barcode_object):
+       * src/view-barcode.c: (update_object_from_editor_cb),
+       (update_editor_from_object_cb),
+       (gl_view_barcode_create_event_handler), (draw_barcode):
+       * src/xml-label-04.c: (xml04_parse_barcode_props):
+       * src/xml-label-191.c: (xml191_parse_barcode_props):
+       * src/xml-label.c: (xml_parse_object_barcode),
+       (xml_create_object_barcode):
+               Added "format" attribute to barcode objects.
+               This attribute is used
+               to properly format freeform barcodes barcodes prior to
+               merge data is
+               applied, so that barcodes can be accurately layed out.
+               This addresses
+               remaining issues of feature request #824787.  Also added
+               an example of
+               the format in the object editor.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@434
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glabels-2.0.dtd
+M      glabels2/src/bc.c
+M      glabels2/src/bc.h
+M      glabels2/src/label-barcode.c
+M      glabels2/src/label-barcode.h
+M      glabels2/src/object-editor-bc-page.c
+M      glabels2/src/object-editor-data-page.c
+M      glabels2/src/object-editor-private.h
+M      glabels2/src/object-editor.c
+M      glabels2/src/object-editor.glade
+M      glabels2/src/object-editor.h
+M      glabels2/src/print.c
+M      glabels2/src/view-barcode.c
+M      glabels2/src/xml-label-04.c
+M      glabels2/src/xml-label-191.c
+M      glabels2/src/xml-label.c
+
+commit fe42d658938053fa034ba7b8e56e3d6b5ba098ca
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-07-12
+
+    2004-07-12 Jim Evins  <evins@snaught.com>
+
+       Various code cleanups.
+
+       * src/label-barcode.c:
+               Removed unneeded include of gnome-glyphlist.h.
+
+       * src/label-text.c: (get_size):
+               Fixed memory leak: unref glyphlists when done with them.
+
+       * src/object-editor-bc-page.c: (gl_object_editor_prepare_bc_page):
+       * src/object-editor-data-page.c:
+       (gl_object_editor_prepare_data_page):
+       * src/object-editor-image-page.c:
+       (gl_object_editor_prepare_image_page):
+       * src/object-editor-line-page.c:
+       (gl_object_editor_prepare_line_page):
+       * src/object-editor-lsize-page.c:
+       (gl_object_editor_prepare_lsize_page):
+       * src/object-editor-position-page.c:
+       (gl_object_editor_prepare_position_page):
+       * src/object-editor-size-page.c:
+       (gl_object_editor_prepare_size_page):
+       * src/object-editor-text-page.c:
+       (gl_object_editor_prepare_text_page):
+               Removed unneeded size groups, originally intended to
+               keep widgets aligned.
+               Now use tables to lay these out in object-editor.glade.
+
+       * src/print.c: (draw_text_object):
+               Fixed memory leak: unref glyphlists when done with them.
+
+       * src/view-barcode.c: (draw_barcode):
+               Fixed memory leak: unref glyphlists when done with them.
+
+       * src/view-text.c: (update_object_from_editor_cb),
+       (draw_hacktext):
+               - Removed unneeded cast of
+               gl_object_editor_get_text_line_spacing()s
+                 return value.
+               - Fixed memory leak: unref glyphlists when done with them.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@433
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/label-barcode.c
+M      glabels2/src/label-text.c
+M      glabels2/src/object-editor-bc-page.c
+M      glabels2/src/object-editor-data-page.c
+M      glabels2/src/object-editor-image-page.c
+M      glabels2/src/object-editor-line-page.c
+M      glabels2/src/object-editor-lsize-page.c
+M      glabels2/src/object-editor-position-page.c
+M      glabels2/src/object-editor-size-page.c
+M      glabels2/src/object-editor-text-page.c
+M      glabels2/src/print.c
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-text.c
+
+commit 00ddb9df4fe9f2ae732a5561ea7b8867aa8433d4
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-07-12
+
+    2004-07-11 Jim Evins  <evins@snaught.com>
+
+       * data/glabels-2.0.dtd:
+       * src/label-text.c: (gl_label_text_instance_init), (copy),
+       (gl_label_text_set_auto_shrink), (gl_label_text_get_auto_shrink):
+       * src/label-text.h:
+       * src/object-editor-private.h:
+       * src/object-editor-text-page.c:
+       (gl_object_editor_prepare_text_page),
+       (gl_object_editor_set_text_auto_shrink),
+       (gl_object_editor_get_text_auto_shrink):
+       * src/object-editor.c: (gl_object_editor_set_key_names):
+       * src/object-editor.glade:
+       * src/object-editor.h:
+       * src/print.c: (draw_text_object):
+       * src/view-text.c: (update_object_from_editor_cb),
+       (update_editor_from_object_cb):
+       * src/xml-label.c: (xml_parse_object_text),
+       (xml_create_object_text):
+               Added option to allow document merge to auto shrink text
+               size to fit
+               within the text box.  The code in print.c that actually
+               shrinks the
+               text is loosely based on a patch submitted by Mark
+               Harrison
+               <mark.harrison@velocitynet.com.au>.  This addresses
+               feature request
+               #661421.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@432
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glabels-2.0.dtd
+M      glabels2/src/label-text.c
+M      glabels2/src/label-text.h
+M      glabels2/src/object-editor-private.h
+M      glabels2/src/object-editor-text-page.c
+M      glabels2/src/object-editor.c
+M      glabels2/src/object-editor.glade
+M      glabels2/src/object-editor.h
+M      glabels2/src/print.c
+M      glabels2/src/view-text.c
+M      glabels2/src/xml-label.c
+
+commit 1fd401c400027d08f75b0a1105a47ba3b416e193
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-07-11
+
+    2004-07-11 Jim Evins  <evins@snaught.com>
+
+       * data/glabels-2.0.dtd:
+       * libglabels/template.c: (gl_template_rect_label_type_new),
+       (gl_template_round_label_type_new),
+       (gl_template_cd_label_type_new), (gl_template_label_type_dup),
+       (template_full_page):
+       * libglabels/template.h:
+       * libglabels/xml-template.c: (xml_parse_label_rectangle_node),
+       (xml_create_label_node):
+       * pixmaps/ex-rect-size.png:
+       * src/print.c: (clip_to_outline), (clip_punchouts):
+       * src/template-designer.c: (construct_rect_size_page),
+       (rect_size_page_prepare_cb), (layout_page_prepare_cb),
+       (build_template):
+       * src/template-designer.glade:
+       * src/xml-label-191.c: (xml191_parse_label):
+               Modifications to allow separate horizontal (x_waste)
+               and vertical (y_waste)
+               properties for rectangular labels.  Templates remain
+               backwards compatible,
+               but this breaks the libglabels API (I don't know of
+               anyone outside of
+               glabels using libglabels at this time -- what can I say,
+               the program is
+               is still "unstable").  This addresses the suggestion in
+               Feature Request
+               #976313.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@431
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glabels-2.0.dtd
+M      glabels2/libglabels/template.c
+M      glabels2/libglabels/template.h
+M      glabels2/libglabels/xml-template.c
+M      glabels2/pixmaps/ex-rect-size.png
+M      glabels2/src/print.c
+M      glabels2/src/template-designer.c
+M      glabels2/src/template-designer.glade
+M      glabels2/src/xml-label-191.c
+
+commit e2bb3e9baa9e37d525cd36408dcc5ef1c9008bcd
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-07-06
+
+    2004-07-05 Jim Evins  <evins@snaught.com>
+       * src/print.c: (print_crop_marks), (draw_outline):
+               Changed crop marks and label outlines to black, instead
+               of 25% gray.
+               This addresses debian Bug #257460.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@430
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/print.c
+
+commit 64e93eac58ec9545c3896e271ce3b78f23ebea26
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-07-05
+
+    2004-07-05 Jim Evins  <evins@snaught.com>
+
+       * src/object-editor-fill-page.c:
+       (gl_object_editor_set_fill_color):
+       * src/object-editor-line-page.c:
+       (gl_object_editor_set_line_color):
+               Preserve "is_default" of fill and line color_combos when
+               creating from
+               existing objects.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@429
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/object-editor-fill-page.c
+M      glabels2/src/object-editor-line-page.c
+
+commit 6ebd01b8a785ff3e49fafa0e0f94369ac9f95ca1
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-07-02
+
+    2004-07-02 Jim Evins  <evins@snaught.com>
+
+       * data/glabels.1:
+               Created man page.  Based on page submitted by Matthew
+               J. Lockner, however
+               it has been severely edited.
+
+       * data/avery-other-templates.xml
+       * data/misc-other-templates.xml:
+               Started new files for predefined templates with
+               non-standard sheet sizes.
+               These have been initially populated with the Avery
+               06141 and
+               OfficeMax #86112, both provided by Matthew J. Lockner.
+
+       * data/Makefile.am:
+               Install above manpage and template files.
+
+       * glabels.spec.in:
+               Make sure we install man pages.
+
+       * src/glabels-batch.c:
+               Changed short form of help option to '-?' to be consistent
+               with glabels.
+
+       * AUTHORS:
+               Added acknowledgement for above labels.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@428
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/data/Makefile.am
+A      glabels2/data/avery-other-templates.xml
+A      glabels2/data/glabels.1
+A      glabels2/data/misc-other-templates.xml
+M      glabels2/glabels.spec.in
+M      glabels2/src/glabels-batch.c
+
+commit d64bd058272ae98ad15f2995edddeb8570d2b64d
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-07-02
+
+    2004-07-02 Jim Evins  <evins@snaught.com>
+
+       * src/glabels.c: (main), (save_session_cb):
+               - Now include libbonoboui.h, recent.h, and file.h to
+               provide missing
+                 prototypes.
+               - save_session_cb() now returns gboolean.
+               - Minor formatting changes.
+
+       * src/window.h:
+       * src/window.c:
+               - Now include file.h to provide missing prototype.
+               - gl_window_get_type() now returns GType, not guint.
+               I believe this may
+                 ultimately be cause of the segfault reported in Bug
+                 #982287, since
+                 GType is actually a gulong, which may not be compatible
+                 on other
+                 architectures (64bit) -- I cannot personally test this
+                 at this time.
+                 I was sloppy in several other xxx_get_type() functions
+                 which also
+                 returned guint -- see next group of files:
+
+       * src/window.c: (gl_window_get_type):
+       * src/canvas-hacktext.c: (gl_canvas_hacktext_get_type):
+       * src/canvas-hacktext.h:
+       * src/hig.c: (gl_hig_alert_get_type), (gl_hig_dialog_get_type),
+       (gl_hig_category_get_type), (gl_hig_vbox_get_type),
+       (gl_hig_hbox_get_type):
+       * src/hig.h:
+       * src/label-barcode.c: (gl_label_barcode_get_type):
+       * src/label-barcode.h:
+       * src/label-box.c: (gl_label_box_get_type):
+       * src/label-box.h:
+       * src/label-ellipse.c: (gl_label_ellipse_get_type):
+       * src/label-ellipse.h:
+       * src/label-image.c: (gl_label_image_get_type):
+       * src/label-image.h:
+       * src/label-line.c: (gl_label_line_get_type):
+       * src/label-line.h:
+       * src/label-object.c: (gl_label_object_get_type):
+       * src/label-object.h:
+       * src/label-text.c: (gl_label_text_get_type):
+       * src/label-text.h:
+       * src/label.c: (gl_label_get_type):
+       * src/label.h:
+       * src/merge-properties-dialog.c:
+       (gl_merge_properties_dialog_get_type):
+       * src/merge-properties-dialog.h:
+       * src/merge-text.c: (gl_merge_text_get_type):
+       * src/merge-text.h:
+       * src/merge.c: (gl_merge_get_type):
+       * src/merge.h:
+       * src/object-editor.c: (gl_object_editor_get_type):
+       * src/prefs-dialog.c: (gl_prefs_dialog_get_type):
+       * src/prefs-dialog.h:
+       * src/prefs-model.c: (gl_prefs_model_get_type):
+       * src/prefs-model.h:
+       * src/print-dialog.c: (gl_print_dialog_get_type):
+       * src/print-dialog.h:
+       * src/template-designer.c: (gl_template_designer_get_type):
+       * src/template-designer.h:
+       * src/ui-property-bar.c: (gl_ui_property_bar_get_type):
+       * src/ui-property-bar.h:
+       * src/ui-sidebar.c: (gl_ui_sidebar_get_type):
+       * src/ui-sidebar.h:
+       * src/view-barcode.c: (gl_view_barcode_get_type):
+       * src/view-barcode.h:
+       * src/view-box.c: (gl_view_box_get_type):
+       * src/view-box.h:
+       * src/view-ellipse.c: (gl_view_ellipse_get_type):
+       * src/view-ellipse.h:
+       * src/view-highlight.c: (gl_view_highlight_get_type):
+       * src/view-highlight.h:
+       * src/view-image.c: (gl_view_image_get_type):
+       * src/view-image.h:
+       * src/view-line.c: (gl_view_line_get_type):
+       * src/view-line.h:
+       * src/view-object.c: (gl_view_object_get_type):
+       * src/view-object.h:
+       * src/view-text.c: (gl_view_text_get_type):
+       * src/view-text.h:
+       * src/view.c: (gl_view_get_type):
+       * src/view.h:
+       * src/wdgt-chain-button.c: (gl_wdgt_chain_button_get_type):
+       * src/wdgt-image-select.c: (gl_wdgt_image_select_get_type):
+       * src/wdgt-image-select.h:
+       * src/wdgt-media-select.c: (gl_wdgt_media_select_get_type):
+       * src/wdgt-media-select.h:
+       * src/wdgt-mini-preview.c: (gl_wdgt_mini_preview_get_type):
+       * src/wdgt-mini-preview.h:
+       * src/wdgt-print-copies.c: (gl_wdgt_print_copies_get_type):
+       * src/wdgt-print-copies.h:
+       * src/wdgt-print-merge.c: (gl_wdgt_print_merge_get_type):
+       * src/wdgt-print-merge.h:
+       * src/wdgt-rotate-label.c: (gl_wdgt_rotate_label_get_type):
+       * src/wdgt-rotate-label.h:
+               - Made sure all xxx_get_type functions returned GType,
+               not guint.  This
+                 was the case in hig.[ch], window.[ch],
+                 ui-property-bar.[ch],
+                 ui-sidebar.[ch], view.[ch], wdgt-image-select.[ch],
+                 wdgt-media-select.[ch], wdgt-mini-preview.[ch],
+                 wdgt-print-copies.[ch],
+                 wdt-print-merge.[ch], and wdgt-rotate-label.[ch].
+                 See separate
+                 window.[ch] details above for more info.
+               - Reconciled various coding style differences in all
+               xxx_get_type()
+                 functions:
+                       * All prototypes include G_GNUC_CONST.
+                       * All prototypes specify the return value as
+                       GType, not GtkType
+                         or guint.
+                       * Info structures are all declared as "static
+                       const."
+                       * Generalized the names of type and info
+                       variables.
+                       * Miscelaneous formatting.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@427
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/canvas-hacktext.c
+M      glabels2/src/canvas-hacktext.h
+M      glabels2/src/glabels.c
+M      glabels2/src/hig.c
+M      glabels2/src/hig.h
+M      glabels2/src/label-barcode.c
+M      glabels2/src/label-barcode.h
+M      glabels2/src/label-box.c
+M      glabels2/src/label-box.h
+M      glabels2/src/label-ellipse.c
+M      glabels2/src/label-ellipse.h
+M      glabels2/src/label-image.c
+M      glabels2/src/label-image.h
+M      glabels2/src/label-line.c
+M      glabels2/src/label-line.h
+M      glabels2/src/label-object.c
+M      glabels2/src/label-object.h
+M      glabels2/src/label-text.c
+M      glabels2/src/label-text.h
+M      glabels2/src/label.c
+M      glabels2/src/label.h
+M      glabels2/src/merge-properties-dialog.c
+M      glabels2/src/merge-properties-dialog.h
+M      glabels2/src/merge-text.c
+M      glabels2/src/merge-text.h
+M      glabels2/src/merge.c
+M      glabels2/src/merge.h
+M      glabels2/src/object-editor.c
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/prefs-dialog.h
+M      glabels2/src/prefs-model.c
+M      glabels2/src/prefs-model.h
+M      glabels2/src/print-dialog.c
+M      glabels2/src/print-dialog.h
+M      glabels2/src/template-designer.c
+M      glabels2/src/template-designer.h
+M      glabels2/src/ui-property-bar.c
+M      glabels2/src/ui-property-bar.h
+M      glabels2/src/ui-sidebar.c
+M      glabels2/src/ui-sidebar.h
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-barcode.h
+M      glabels2/src/view-box.c
+M      glabels2/src/view-box.h
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-ellipse.h
+M      glabels2/src/view-highlight.c
+M      glabels2/src/view-highlight.h
+M      glabels2/src/view-image.c
+M      glabels2/src/view-image.h
+M      glabels2/src/view-line.c
+M      glabels2/src/view-line.h
+M      glabels2/src/view-object.c
+M      glabels2/src/view-object.h
+M      glabels2/src/view-text.c
+M      glabels2/src/view-text.h
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+M      glabels2/src/wdgt-chain-button.c
+M      glabels2/src/wdgt-image-select.c
+M      glabels2/src/wdgt-image-select.h
+M      glabels2/src/wdgt-media-select.c
+M      glabels2/src/wdgt-media-select.h
+M      glabels2/src/wdgt-mini-preview.c
+M      glabels2/src/wdgt-mini-preview.h
+M      glabels2/src/wdgt-print-copies.c
+M      glabels2/src/wdgt-print-copies.h
+M      glabels2/src/wdgt-print-merge.c
+M      glabels2/src/wdgt-print-merge.h
+M      glabels2/src/wdgt-rotate-label.c
+M      glabels2/src/wdgt-rotate-label.h
+M      glabels2/src/window.c
+M      glabels2/src/window.h
+
+commit 8917cca244d9e34768af178a54238683ec8127e2
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-06-12
+
+    2004-06-08 Jim Evins  <evins@snaught.com>
+
+       * src/label.c:
+       * src/label.h:
+       * src/xml-label.c:
+       * AUTHORS:
+               Don't touch compression of original file -- still defaults
+               to 9 for
+               new files.  Original patch provided by Javier Donaire
+               Segarra
+               (#912252 in patch tracker).
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@426
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+
+commit 7256870b60b9aa34b538a1d4b59fe455aefbcb29
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-06-08
+
+    Don't touch compression of original file -- still defaults to 9
+    for new files.  Original patch provided by Javier Donaire Segarra
+    (#912252 in patch tracker).
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@425
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label.c
+M      glabels2/src/label.h
+M      glabels2/src/xml-label.c
+
+commit 20808aa3eca1b58fd8a8818699ce6afeaaedea1c
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-05-06
+
+    2004-05-05 Jim Evins  <evins@snaught.com>
+
+           * data/glabels-2.0.dtd:
+                   Broke DTD previously when adding new barcode types
+                   that contain
+    a
+                   plus sign (+).  Simply changed the BC_STYLE_TYPE
+                   entity to "CDATA"
+                   to avoid the problem.
+           * data/avery-iso-templates.xml:
+           * data/zweckform-iso-templates.xml:
+           * AUTHORS:
+                   Added templates for Avery 7165, Zweckform 3688,
+                   4732, and 6021.
+     Templates
+                   provided by Frank Altpeter.
+           * libglabels/xml-template.c: (xml_create_label_node):
+                   Reordered markup and layout sub-nodes so that
+                   resulting templates will
+                   validate against DTD.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@424
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/data/avery-iso-templates.xml
+M      glabels2/data/glabels-2.0.dtd
+M      glabels2/data/zweckform-iso-templates.xml
+M      glabels2/libglabels/xml-template.c
+
+commit 9ddb032772f0b86540354e53e033a594a6e803d7
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-03-14
+
+    2004-03-13 Jim Evins  <evins@snaught.com>
+
+       * src/object-editor-size-page.c:
+       (gl_object_editor_prepare_size_page):
+               Changed spin callback signals from "value-changed"
+               back to "changed."
+               This was accidentally introduced in a previous revision,
+               and can cause
+               size changes just by selecting the size tab.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@423
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/object-editor-size-page.c
+
+commit 9d106262d34c861c16ad1d32bb410513b5e3d030
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-03-07
+
+    2004-03-06 Jim Evins  <evins@snaught.com>
+
+       * src/view.c: (draw_grid_layer):
+               For round labels (round and cd) adjust grid so that it
+               lines up with
+               center of label.  Also, no longer draw box around label
+               in the grid layer,
+               it is hidden by he fg layer anyway.  Feature suggested by
+               nemolivier@free.fr.  Although the grid is aligned with
+               the center of the
+               label, the coordinate system is still relative to the
+               upper left corner
+               of the rectangle containing the label.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@422
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/view.c
+
+commit 60d890a26c81ee5fe3b6aeb587095ddc891d1871
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-02-26
+
+    2004-02-25 Jim Evins  <evins@snaught.com>
+
+       * configure.in:
+               Changed version to 2.0pre1cvs
+
+       * libglabels/xml-template.c:
+       (gl_xml_template_parse_templates_doc):
+               Removed extra xmlFreeDoc() calls upon error.  Also print
+               the doc->URL
+               instead of doc->name fields when errors encountered.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@421
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+M      glabels2/libglabels/xml-template.c
+
+commit db892e05bdff8969d492480eaabfd53cc4d26e0e
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-02-21
+
+    2004-02-21 Jim Evins  <evins@snaught.com>
+
+       * data/avery-iso-templates.xml:
+               Added aliases for Avery 8651.  Patch provided by Wayne
+               Schuller.
+
+       * glabels.spec.in:
+               Added libglabels library and include file to installed
+               files.
+
+       * configure.in:
+               Final prep for 1.93.3.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@419
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+M      glabels2/data/avery-iso-templates.xml
+M      glabels2/glabels.spec.in
+
+commit 02ab3e0ba36d0d0e212c49d536d9988b472433a5
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-02-21
+
+    2004-02-20 Jim Evins  <evins@snaught.com>
+
+       * src/glabels-batch.c: (main):
+               Changed key for setting output filename to
+               GNOME_PRINT_KEY_OUTPUT_FILENAME
+               as suggested by Javier Donaire Segarra.  This addresses
+               bug #901063.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@418
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/glabels-batch.c
+
+commit 5f4d73307100027c51108750bc00fd0245898f90
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-02-17
+
+    2004-02-16 Jim Evins  <evins@snaught.com>
+
+       * configure.in:
+               If gtk+ >= 2.3.2 then define HAVE_FILE_CHOOSER.
+
+       * src/Makefile.am:
+               Added HAVE_FILE_CHOOSER to INCLUDES.
+
+       * src/file.c: (gl_file_open), (open_response),
+       (gl_file_open_real),
+       (gl_file_save_as), (save_as_response):
+               Ported to use GtkFileChooserDialog if HAVE_FILE_CHOOSER
+               is defined.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@417
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+M      glabels2/src/Makefile.am
+M      glabels2/src/file.c
+
+commit 70ae1974aed8233b3ddf56987d2b39c14f49eec9
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-02-16
+
+    2004-02-16 Jim Evins  <evins@snaught.com>
+
+       * src/xml-label-04.c: (xml04_parse_image_props):
+       * src/xml-label-191.c: (xml191_parse_image_props):
+       * src/xml-label.c: (xml_parse_object_image):
+               Delay setting image size until after image has been
+               applied to new
+               object.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@416
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/xml-label-04.c
+M      glabels2/src/xml-label-191.c
+M      glabels2/src/xml-label.c
+
+commit 1793cb9fc61fe010218dc43b590c00387bad7f25
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-02-16
+
+    2004-02-15 Jim Evins  <evins@snaught.com>
+
+       * src/label-barcode.c: (gl_label_barcode_set_data),
+       (gl_label_barcode_set_props):
+               Don't emit "changed" signal, if no change actually made
+               for these
+               methods.  Reduces number of unnecessary redraws of
+               barcodes.
+
+       * src/label-object.h:
+       * src/label-object.c: (gl_label_object_set_position),
+       (gl_label_object_set_position_relative), (set_size),
+       (gl_label_object_set_size),
+       (gl_label_object_set_size_honor_aspect):
+               Don't emit "changed" signal, if no change actually made
+               for these
+               methods.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@415
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/label-barcode.c
+M      glabels2/src/label-object.c
+M      glabels2/src/label-object.h
+
+commit c15370de048b1e46ae69459fc702fcd3c75b7810
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-02-15
+
+    2004-02-15 Jim Evins  <evins@snaught.com>
+
+       * data/glabels-2.0.dtd:
+               Added specific subtypes for various barcode types.
+
+       * src/bc.h:
+       * src/bc.c: (id_to_index), (name_to_index), (gl_barcode_new),
+       (gl_barcode_get_styles_list), (gl_barcode_default_digits),
+       (gl_barcode_can_text), (gl_barcode_text_optional),
+       (gl_barcode_can_csum), (gl_barcode_csum_optional),
+       (gl_barcode_id_to_name), (gl_barcode_name_to_id):
+               Changed API to use a string id, rather than a fixed
+               enumeration.  Id and
+               name are separate strings.  Added entries to backend
+               table for specific
+               subtypes for various barcode types.
+
+       * src/bc-postnet.h:
+       * src/bc-postnet.c: (gl_barcode_postnet_new), (postnet_code),
+       (is_length_valid):
+               Modified to conform to above API.  Now more stringent
+               with data length
+               for various subtypes.
+
+       * src/bc-gnubarcode.h:
+       * src/bc-gnubarcode.c: (gl_barcode_gnubarcode_new),
+       (is_length_valid), (is_length1_valid), (is_length2_valid):
+               Modified to conform to above API.  Now more stringent
+               with data length
+               for various subtypes.
+
+       * src/label-barcode.h:
+       * src/label-barcode.c: (copy), (gl_label_barcode_set_props),
+       (gl_label_barcode_get_props), (get_size):
+               Modified to use above API for storing barcode type.
+
+       * src/object-editor.h:
+       * src/object-editor-bc-page.c: (style_changed_cb),
+       (gl_object_editor_set_bc_style), (gl_object_editor_get_bc_style):
+               Modified to use above API for storing barcode type.
+
+       * src/object-editor-size-page.c:
+       (gl_object_editor_prepare_size_page), (aspect_toggle_cb),
+       (w_spin_cb), (h_spin_cb), (size_reset_cb):
+               Added debug markers.
+
+       * src/object-editor.glade:
+               Made barcode style combo's text entry  non-editable.
+
+       * src/print.c: (draw_barcode_object):
+               Modified to use above API for barcode type.
+
+       * src/view-barcode.c: (update_object_from_editor_cb),
+       (update_editor_from_object_cb),
+       (gl_view_barcode_create_event_handler), (draw_barcode):
+               Modified to use above API for barcode type.
+
+       * src/xml-label-04.c: (xml04_parse_barcode_props):
+       * src/xml-label-191.c: (xml191_parse_barcode_props):
+       * src/xml-label.c: (xml_parse_object_barcode),
+       (xml_create_object_barcode):
+               Modified to use above API for barcode type.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@414
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glabels-2.0.dtd
+M      glabels2/src/bc-gnubarcode.c
+M      glabels2/src/bc-gnubarcode.h
+M      glabels2/src/bc-postnet.c
+M      glabels2/src/bc-postnet.h
+M      glabels2/src/bc.c
+M      glabels2/src/bc.h
+M      glabels2/src/label-barcode.c
+M      glabels2/src/label-barcode.h
+M      glabels2/src/object-editor-bc-page.c
+M      glabels2/src/object-editor-size-page.c
+M      glabels2/src/object-editor.glade
+M      glabels2/src/object-editor.h
+M      glabels2/src/print.c
+M      glabels2/src/view-barcode.c
+M      glabels2/src/xml-label-04.c
+M      glabels2/src/xml-label-191.c
+M      glabels2/src/xml-label.c
+
+commit 0f59322c3d8175fafb061e530a6b36c2e043b4ee
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-02-07
+
+    2004-02-07 Jim Evins  <evins@snaught.com>
+
+       * src/stock-pixmaps/Makefile.am:
+       * src/stock-pixmaps/stock_hchain_24.png:
+       * src/stock-pixmaps/stock_hchain_broken_24.png:
+       * src/stock-pixmaps/stock_vchain_24.png:
+       * src/stock-pixmaps/stock_vchain_broken_24.png:
+               Added chain pixmaps borrowed from the gimp's default
+               theme.
+
+       * src/stock.h:
+       * src/stock.c: (gl_stock_init), (add_button_icon):
+               Added above pixmaps to stock icon sets.  Created
+               add_button_icon() to
+               add these pixmaps sized as GTK_ICON_SIZE_BUTTON.
+
+       * src/wdgt-chain-button.h
+       * src/wdgt-chain-button.c
+       * src/Makefile.am:
+       * po/POTFILES.in:
+               Added this Modified version of gimpchainbutton widget,
+               borrowed from
+               the gimp.
+
+       * AUTHORS:
+               Added acknowledgements of the above borrowing from
+               the gimp.
+
+       * src/object-editor-size-page.c: (aspect_toggle_cb), (w_spin_cb),
+       (h_spin_cb):
+       * src/object-editor.c: (gl_object_editor_construct_chain_button):
+       * src/object-editor.glade:
+               Replaced the keep aspect ratio check box with the above
+               chain-button
+               widget.
+
+       * src/text-node.c: (gl_text_node_equal):
+       * src/text-node.h:
+               Added function gl_text_node_equal() to compare text_nodes.
+
+       * src/label-image.c: (gl_label_image_set_filename):
+               Replaced incomplete text_node comparison code with
+               invocation of
+               gl_text_node_equal.  This fixed the problem of not being
+               able to
+               resize an image using the object_editor if the aspect
+               ratio is not
+               locked.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@413
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/po/POTFILES.in
+M      glabels2/src/Makefile.am
+M      glabels2/src/label-image.c
+M      glabels2/src/object-editor-size-page.c
+M      glabels2/src/object-editor.c
+M      glabels2/src/object-editor.glade
+M      glabels2/src/stock-pixmaps/Makefile.am
+A      glabels2/src/stock-pixmaps/stock_hchain_24.png
+A      glabels2/src/stock-pixmaps/stock_hchain_broken_24.png
+A      glabels2/src/stock-pixmaps/stock_vchain_24.png
+A      glabels2/src/stock-pixmaps/stock_vchain_broken_24.png
+M      glabels2/src/stock.c
+M      glabels2/src/stock.h
+M      glabels2/src/text-node.c
+M      glabels2/src/text-node.h
+A      glabels2/src/wdgt-chain-button.c
+A      glabels2/src/wdgt-chain-button.h
+
+commit d7a5fdb634b821ba3ed2c99f90fab88b5c0aba80
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-02-05
+
+    2004-02-04 Jim Evins  <evins@snaught.com>
+
+       * src/object-editor-image-page.c:
+       (gl_object_editor_prepare_image_page):
+               Track "changed" signal of pixmap entry's GtkEntry rather
+               than its
+               "activate" signal -- this catches all changes to the
+               entry rather than
+               just changes resulting from a browse, so one can easily
+               pull previous
+               entries from the history. (This change is marked below
+               on 2004-02-03,
+               but somehow never got checked in.)
+
+       * src/view-highlight.c: (sl_resize_event_handler),
+       (sr_resize_event_handler), (st_resize_event_handler),
+       (sb_resize_event_handler):
+               Side resize handles will now confirm the actual resize
+               that the object
+               accepted before adjusting position parameters.
+               Previously some interesting
+               things happened when resizing a barcode to its minimum
+               size.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@412
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/object-editor-image-page.c
+M      glabels2/src/view-highlight.c
+
+commit b7270cca21f97c762f1a1ff50f63df7efc8b2c5c
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-02-04
+
+    2004-02-03 Jim Evins  <evins@snaught.com>
+
+       * src/object-editor-image-page.c:
+       (gl_object_editor_prepare_image_page):
+               Track "changed" signal of pixmap entry's GtkEntry rather
+               than its
+               "activate" signal -- this catches all changes to the
+               entry rather than
+               just changes resulting from a browse, so one can easily
+               pull previous
+               entries from the history.
+
+       * src/view-highlight.c: (tl_resize_event_handler),
+       (tr_resize_event_handler), (bl_resize_event_handler),
+       (br_resize_event_handler):
+               Allow control key to be dropped while dragging a corner
+               resize handle
+               without losing the aspect ratio lock.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@411
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/view-highlight.c
+
+commit 8d1652bfd6e74700063cdccb120693515c71e6ea
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-02-03
+
+    2004-02-02 Jim Evins  <evins@snaught.com>
+
+       * src/label-image.c: (gl_label_image_set_filename):
+               When setting a new filename adjust size such that the
+               aspect ratio of
+               the image is preserved using the current size as a
+               bounding box.
+
+       * src/view-image.c: (update_object_from_editor_cb):
+               When updating object from editor, feed back possible
+               size changes to
+               editor as a result of a possible change in image.
+
+       * src/object-editor-size-page.c: (size_reset_cb):
+               Fixed typo when blocking spin handlers.  If the base
+               size is larger than
+               the max size, treat max size as a bounding box while
+               keeping aspect
+               ratio.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@410
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/label-image.c
+M      glabels2/src/object-editor-size-page.c
+M      glabels2/src/view-image.c
+
+commit 6c3073bcc36e8c9e2c46e743b48f559970a14e12
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-02-03
+
+    2004-02-02 Jim Evins  <evins@snaught.com>
+
+       * src/label-object.h:
+       * src/label-object.c: (gl_label_object_set_size),
+       (gl_label_object_set_size_honor_aspect):
+               Added gl_label_object_set_size_honor_aspect() which will
+               maintain the
+               current aspect ratio by modifying the supplied w or
+               h apropriately.
+
+       * src/view-highlight.c: (tl_resize_event_handler),
+       (tr_resize_event_handler), (bl_resize_event_handler),
+       (br_resize_event_handler):
+               Corner handles will now maintain the current aspect
+               ratio if the
+               control key is pressed while resizing.  This addresses
+               feature
+               request #816603.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@409
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/label-object.c
+M      glabels2/src/label-object.h
+M      glabels2/src/view-highlight.c
+
+commit 66a83b58e4427fffbb7181528d6754a31513de07
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-01-31
+
+    2004-01-31 Jim Evins  <evins@snaught.com>
+
+       * AUTHORS:
+       * data/avery-us-templates.xml:
+               Added entries for "LSK-3," "LSK-5," and "LSK-8."
+               Submitted by JBadger.
+
+       * libglabels/template.c: (read_template_files_from_dir):
+               Corrected problem with testing for extensions.
+
+       * src/object-editor.glade:
+               Corrected grouping of radio buttons in barcode data page.
+
+       * src/print.c: (draw_barcode_object):
+       * src/view-barcode.c: (draw_barcode):
+               Corrected problem with calculation of y_offset for
+               locating characters.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@408
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/data/avery-us-templates.xml
+M      glabels2/libglabels/template.c
+M      glabels2/src/object-editor.glade
+M      glabels2/src/print.c
+M      glabels2/src/view-barcode.c
+
+commit 91acdb1f63c5e89de292e321ce93071488e11261
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-01-25
+
+    2004-01-24 Jim Evins  <evins@snaught.com>
+
+       * AUTHORS:
+       * data/avery-us-templates.xml:
+               Added Avery 5824, submitted by Fred Bacon.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@407
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/data/avery-us-templates.xml
+
+commit 9a42fd691a980f7735c152055f56e25c8d556a6e
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-01-21
+
+    2004-01-20 Jim Evins  <evins@snaught.com>
+
+       Catching up on a couple of backlogged user template submissions.
+
+       * data/avery-iso-templates.xml:
+               Added "DECAdry OLW-4731" and "DECAdry DLW-1731" aliases
+               for Avery 7160.
+               Suggested by Linas Jakucionis.
+
+       * data/zweckform-iso-templates.xml:
+               Added Zweckform 4760, submitted by Thomas Vill.
+
+       * AUTHORS:
+               Updated to reflect above submissions.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@406
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/data/avery-iso-templates.xml
+M      glabels2/data/zweckform-iso-templates.xml
+
+commit e1a2cde6e4ffbe6938f93ae8629dc1f80d3a40fa
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-01-07
+
+    2004-01-06 Jim Evins  <evins@snaught.com>
+
+       Split-out template.[ch], paper.[ch], xml-template.[ch],
+       xml-paper.[ch], and
+       xml.[ch] into a separate library called libglabels, to facilitate
+       third
+       party use of glabels template files.  This was suggested by
+       Wayne Schuller.
+       Once split-out, some modifications to the structures and
+       functions to
+       make a cleaner more useful API, hopefully.  Rather extensive
+       changes have
+       propogated to other modules.
+
+       * src/paper.h:
+       * src/paper.c:
+       * src/template.h:
+       * src/template.c:
+       * src/xml-paper.h:
+       * src/xml-paper.c:
+       * src/xml-template.h:
+       * src/xml-template.c:
+       * src/xml.h:
+       * src/xml.c:
+               These files have been moved to libglabels/.  API cleanup
+               performed.
+
+       * libglabels/libglabels.h:
+       * libglabels/libglabels-private.h:
+       * libglabels/Makefile.am:
+               These files have been added to finish out libglabels.
+
+       * Makefile.am:
+       * configure.in:
+       * glabels.spec.in:
+       * po/POTFILES.in:
+       * src/Makefile.am:
+               Modified to reflect new sets of files in src/ and
+               libglabels/.
+
+       * COPYING.LIBGLABELS:
+       * COPYING-DOCS:
+               Added copy of the LGPL for libglabels, and a copy the
+               GFDL for
+               documentation.
+
+       * src/glabels-batch.c:
+       * src/glabels.c:
+       * src/label.c: (gl_label_finalize), (gl_label_set_template),
+       (gl_label_get_size):
+       * src/label.h:
+       * src/prefs-model.c: (gl_prefs_model_load_settings):
+       * src/print-dialog.c:
+       * src/print.c: (gl_print_simple), (gl_print_merge_collated),
+       (gl_print_merge_uncollated), (gl_print_batch), (print_info_free),
+       (print_crop_marks), (print_label), (draw_outline),
+       (clip_to_outline), (clip_punchouts):
+       * src/template-designer.c: (construct_pg_size_page),
+       (pg_size_page_changed_cb), (layout_page_changed_cb),
+       (print_test_cb), (build_template):
+       * src/util.c: (gl_util_fraction):
+       * src/util.h:
+       * src/view.c: (draw_bg_fg_layers), (draw_bg_fg_rect),
+       (draw_bg_fg_rounded_rect), (draw_bg_fg_round), (draw_bg_fg_cd),
+       (draw_bg_fg_cd_bc), (draw_markup_layer), (draw_markup_margin),
+       (draw_markup_margin_rect), (draw_markup_margin_rounded_rect),
+       (draw_markup_margin_round), (draw_markup_margin_cd),
+       (draw_markup_margin_cd_bc), (draw_markup_line),
+       (draw_markup_circle), (gl_view_copy):
+       * src/wdgt-media-select.c: (gl_wdgt_media_select_construct),
+       (page_size_entry_changed_cb), (details_update), (get_layout_desc),
+       (get_label_size_desc):
+       * src/wdgt-mini-preview.c:
+       (gl_wdgt_mini_preview_set_label_by_name), (mini_outline_list_new),
+       (cdbc_item):
+       * src/wdgt-print-copies.c: (gl_wdgt_print_copies_construct):
+       * src/wdgt-print-merge.c: (gl_wdgt_print_merge_construct):
+       * src/wdgt-rotate-label.c: (mini_preview_canvas_update),
+       (gl_wdgt_rotate_label_set_template_name), (cdbc_item):
+       * src/wdgt-rotate-label.h:
+       * src/xml-label-04.c: (xml04_parse_media_description):
+       * src/xml-label-191.c: (gl_xml_label_191_parse),
+       (xml191_parse_sheet), (xml191_parse_label), (xml191_parse_layout),
+       (xml191_parse_markup), (xml191_parse_alias):
+       * src/xml-label.c: (xml_doc_to_label), (xml_parse_label),
+       (xml_label_to_doc):
+               Various changes to accomodate new libglabels API.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@405
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+A      glabels2/COPYING-DOCS
+A      glabels2/COPYING.LIBGLABELS
+M      glabels2/ChangeLog
+M      glabels2/Makefile.am
+M      glabels2/configure.in
+M      glabels2/glabels.spec.in
+A      glabels2/libglabels/Makefile.am
+A      glabels2/libglabels/libglabels-private.h
+A      glabels2/libglabels/libglabels.h
+R066   glabels2/src/paper.c    glabels2/libglabels/paper.c
+A      glabels2/libglabels/paper.h
+A      glabels2/libglabels/template.c
+A      glabels2/libglabels/template.h
+A      glabels2/libglabels/xml-paper.c
+A      glabels2/libglabels/xml-paper.h
+A      glabels2/libglabels/xml-template.c
+A      glabels2/libglabels/xml-template.h
+R090   glabels2/src/xml.c      glabels2/libglabels/xml.c
+R064   glabels2/src/xml.h      glabels2/libglabels/xml.h
+M      glabels2/po/POTFILES.in
+M      glabels2/src/Makefile.am
+M      glabels2/src/glabels-batch.c
+M      glabels2/src/glabels.c
+M      glabels2/src/label.c
+M      glabels2/src/label.h
+D      glabels2/src/paper.h
+M      glabels2/src/prefs-model.c
+M      glabels2/src/print-dialog.c
+M      glabels2/src/print.c
+M      glabels2/src/template-designer.c
+D      glabels2/src/template.c
+D      glabels2/src/template.h
+M      glabels2/src/util.c
+M      glabels2/src/util.h
+M      glabels2/src/view.c
+M      glabels2/src/wdgt-media-select.c
+M      glabels2/src/wdgt-mini-preview.c
+M      glabels2/src/wdgt-print-copies.c
+M      glabels2/src/wdgt-print-merge.c
+M      glabels2/src/wdgt-rotate-label.c
+M      glabels2/src/wdgt-rotate-label.h
+M      glabels2/src/xml-label-04.c
+M      glabels2/src/xml-label-191.c
+M      glabels2/src/xml-label.c
+D      glabels2/src/xml-paper.c
+D      glabels2/src/xml-paper.h
+D      glabels2/src/xml-template.c
+D      glabels2/src/xml-template.h
+
+commit 5a3bef4441d08531523c1939451fbbe8071e75cd
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-01-04
+
+    2004-01-03 Jim Evins  <evins@snaught.com>
+
+       * configure.in:
+               Release 1.93.2.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@403
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/configure.in
+
+commit a7899ecce3adcf1bc9fe4f59430acc35de88e2a8
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-01-04
+
+    2004-01-03 Jim Evins  <evins@snaught.com>
+
+       * AUTHORS:
+               Added acknowledgement of contributions by Wayne Schuller.
+
+       * src/commands.c: (gl_cmd_file_print):
+               Create extra reference to print dialog, so that it can
+               be properly re-used.
+
+       * src/mygal/mygal-combo-box.h:
+       * src/mygal/mygal-combo-box.c:
+       (mygal_combo_box_popup_hide_unconditional),
+       (mygal_combo_box_popup_display), (mygal_combo_box_set_display),
+       (gtk_combo_set_tearoff_state), (mygal_combo_box_construct),
+       (mygal_combo_box_set_arrow_relief), (mygal_combo_box_set_title),
+       (mygal_combo_box_set_tearable):
+               Changed all occurances of GTK_IS_COMBO_BOX to
+               MYGAL_IS_COMBO_BOX, to
+               complete the rename of this widget to prevent namespace
+               collisions
+               with Gtk+-2.3.
+
+       * src/prefs-dialog.glade:
+               Fixed alignment of Fill/Color widgets.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@402
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/ChangeLog
+M      glabels2/src/commands.c
+M      glabels2/src/mygal/mygal-combo-box.c
+M      glabels2/src/mygal/mygal-combo-box.h
+M      glabels2/src/prefs-dialog.glade
+
+commit 67b655a91bbe0c6173998617b4c1e83f3fb01eb1
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-01-04
+
+    2004-01-03 Jim Evins  <evins@snaught.com>
+
+       * data/avery-iso-templates.xml:
+               Added user submitted templates.
+               Avery 8435A & 8435B, submitted by Ludger Solbach.
+
+       * doc/C/glabels.xml:
+               Added minimal documentation, noting the new template
+               designer.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@401
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/avery-iso-templates.xml
+
+commit 827d4017d03dcece28006a5486674a8d4551ac29
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-01-03
+
+    2004-01-03 Jim Evins  <evins@snaught.com>
+
+       * pixmaps/ex-rect-size.png:
+       * pixmaps/ex-round-size.png:
+       * pixmaps/ex-cd-size.png:
+       * pixmaps/Makefile.am:
+               Added ex-rect-size.png, ex-round-size.png, and
+               ex-cd-size.png image
+               files to be used as illustrations/examples in the
+               template-designer.
+
+       * src/template-designer.c: (construct_rect_size_page),
+       (construct_round_size_page), (construct_cd_size_page),
+       (construct_nlayouts_page), (rect_size_page_prepare_cb),
+       (round_size_page_prepare_cb), (cd_size_page_prepare_cb),
+       (layout_page_prepare_cb), (build_template):
+       * src/template-designer.glade:
+               Added illustrations for rectangle, round, and cd label
+               size pages.
+               Added margin spinboxes to these pages, and now add a
+               margin markup
+               to the constructed template.  Added realistic default
+               values for
+               some of the size spinboxes.  Cleaned up the code for
+               setting spinbox
+               ranges on the layouts page.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@400
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/pixmaps/Makefile.am
+A      glabels2/pixmaps/ex-cd-size.png
+A      glabels2/pixmaps/ex-rect-size.png
+A      glabels2/pixmaps/ex-round-size.png
+M      glabels2/src/template-designer.c
+M      glabels2/src/template-designer.glade
+
+commit 7d0f397683e2a28806fd2cefce1d846a2064f186
+Author: Jim Evins <evins@snaught.com>
+Date:  2004-01-03
+
+    2004-01-02 Jim Evins  <evins@snaught.com>
+
+       * src/object-editor-size-page.c: (h_spin_cb):
+               Fixed cut-n-paste error in h_spin_cb that loaded h from
+               the wrong spinbutton.
+
+       * src/object-editor.h:
+       * src/object-editor.c: (gl_object_editor_class_init),
+       (gl_object_editor_changed_cb), (gl_object_editor_size_changed_cb):
+       * src/object-editor-private.h:
+       * src/object-editor-size-page.c: (w_spin_cb), (h_spin_cb),
+       (size_reset_cb):
+               Added "size_changed" signal.
+
+       * src/view-text.c: (construct_properties_editor),
+       (update_object_from_editor_cb),
+       (update_object_from_editor_size_cb):
+               Track size changes from object editor separately from
+               other
+               properties.  This is so the default size (0,0) of a text
+               object is not modified unintentionally.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@399
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/object-editor-private.h
+M      glabels2/src/object-editor-size-page.c
+M      glabels2/src/object-editor.c
+M      glabels2/src/object-editor.h
+M      glabels2/src/view-text.c
+
+commit e4a19ad71c510363fa80e14c98f65c10a1f187ac
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-30
+
+    2003-12-30 Wayne Schuller  <k_wayne@linuxpower.org>
+
+       Added feature: line spacing - allows you to comfortably space
+       a text box to
+       fit a label perfectly.
+
+       * data/glabels-2.0.dtd:
+       * src/label-object.c: (gl_label_object_set_text_line_spacing),
+       (gl_label_object_get_text_alignment),
+       (gl_label_object_get_text_line_spacing):
+       * src/label-object.h:
+       * src/label-text.c: (gl_label_text_class_init),
+       (gl_label_text_instance_init), (copy), (get_size),
+       (set_text_line_spacing), (get_text_alignment),
+       (get_text_line_spacing):
+       * src/object-editor-private.h:
+       * src/object-editor-text-page.c:
+       (gl_object_editor_prepare_text_page),
+       (gl_object_editor_set_text_line_spacing),
+       (gl_object_editor_get_text_line_spacing):
+       * src/object-editor.glade:
+       * src/object-editor.h:
+       * src/prefs-dialog.c: (construct_object_page),
+       (update_object_page_from_prefs), (update_prefs_from_object_page):
+       * src/prefs-dialog.glade:
+       * src/prefs-model.c: (gl_prefs_model_save_settings),
+       (gl_prefs_model_load_settings), (get_float):
+       * src/prefs-model.h:
+       * src/print.c: (draw_text_object):
+       * src/ui-sidebar.c:
+       * src/view-text.c: (update_object_from_editor_cb),
+       (update_editor_from_object_cb),
+       (gl_view_text_create_event_handler), (draw_hacktext):
+       * src/view.c: (gl_view_construct),
+       (gl_view_set_selection_text_line_spacing),
+       (gl_view_set_default_text_line_spacing),
+       (gl_view_get_default_text_line_spacing):
+       * src/view.h:
+       * src/xml-label.c: (xml_parse_toplevel_span),
+       (xml_create_toplevel_span):
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@398
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/data/glabels-2.0.dtd
+M      glabels2/src/label-object.c
+M      glabels2/src/label-object.h
+M      glabels2/src/label-text.c
+M      glabels2/src/object-editor-private.h
+M      glabels2/src/object-editor-text-page.c
+M      glabels2/src/object-editor.glade
+M      glabels2/src/object-editor.h
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/prefs-dialog.glade
+M      glabels2/src/prefs-model.c
+M      glabels2/src/prefs-model.h
+M      glabels2/src/print.c
+M      glabels2/src/ui-sidebar.c
+M      glabels2/src/view-text.c
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+M      glabels2/src/xml-label.c
+
+commit aa6be2ee3a8a2ca904810f4fde65721d68127093
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-30
+
+    2003-12-30 Jim Evins  <evins@snaught.com>
+
+       * src/template-designer.c:
+       * src/template-designer.h:
+       * src/template-designer.glade:
+               New template designer assistant.
+
+       * po/POTFILES.in:
+       * src/Makefile.am:
+               Added entries for src/template-designer.* files.
+
+       * pixmaps/ex-1layout.png
+       * pixmaps/ex-2layouts.png
+       * pixmaps/Makefile.am:
+               Added the new image files ex-*.png used as illustrations
+               in the
+               template designer assistant.
+
+       * src/print-dialog.h:
+       * src/print-dialog.c: (gl_print_dialog_finalize),
+       (gl_print_dialog_new), (gl_print_dialog_construct),
+       (gl_print_dialog_force_outline_flag):
+               Changed first argument of gl_print_dialog_new() from
+               glView to glLabel,
+               to support printing from the template designer assistant
+               which does not
+               have a full-fledged view.  Nothing else from the view
+               object was being
+               used by the dialog anyway.
+
+               Added the gl_print_dialog_force_outline_flag() method,
+               for better
+               integration with the template designer assistant.
+
+
+       * src/commands.h:
+       * src/commands.c: (gl_cmd_file_template_designer),
+       (gl_cmd_file_print):
+               Modified print command to provide label instead of view
+               to dialog.
+               Added the gl_cmd_file_template_designer() command to
+               invoke the
+               template designer assistant.
+
+       * src/ui.c:
+       * src/glabels-ui.xml:
+               Added support for template designer assistant.
+
+       * src/wdgt-mini-preview.h:
+       * src/wdgt-mini-preview.c: (gl_wdgt_mini_preview_set_template),
+       (gl_wdgt_mini_preview_set_bg_color):
+               Preview is now centered in canvas.  Added
+               gl_wdgt_mini_preview_set_bg_color() to allow the template
+               designer
+               assistant to match the background color with its own.
+
+       * src/print.c: (clip_to_outline):
+               Fixed really stupid bug when adding waste to clip region
+               of rectangular
+               labels/cards.  Each side of the clip region needs to be
+               extended by
+               twice the waste margin, as well as negatively offset by
+               the waste
+               margin.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@397
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/pixmaps/Makefile.am
+A      glabels2/pixmaps/ex-1layout.png
+A      glabels2/pixmaps/ex-2layouts.png
+M      glabels2/po/POTFILES.in
+M      glabels2/src/Makefile.am
+M      glabels2/src/commands.c
+M      glabels2/src/commands.h
+M      glabels2/src/glabels-ui.xml
+M      glabels2/src/print-dialog.c
+M      glabels2/src/print-dialog.h
+M      glabels2/src/print.c
+A      glabels2/src/template-designer.c
+A      glabels2/src/template-designer.glade
+A      glabels2/src/template-designer.h
+M      glabels2/src/ui.c
+M      glabels2/src/wdgt-mini-preview.c
+M      glabels2/src/wdgt-mini-preview.h
+
+commit 9b9df2809e35e02aa4c14ff05aaeb683b25c63c8
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-28
+
+    2003-12-28 Jim Evins  <evins@snaught.com>
+
+       * src/prefs-dialog.c: (update_object_page_from_prefs):
+               Block intermediary function align_toggle_cb() instead of
+               update_prefs_from_object_page() for the three alignment
+               widgets.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@396
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/prefs-dialog.c
+
+commit 94be7f87f0bce60192cf06eee6e10389a82c4e64
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-28
+
+    2003-12-28 Wayne Schuller  <k_wayne@linuxpower.org>
+
+           * src/file.c: (gl_file_new), (gl_file_properties): Swap
+           button order and set default for higificatory pleasure.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@395
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/file.c
+
+commit 4af61cfcad47d9ba9940760116e139a337e0c301
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-28
+
+    2003-12-27 Jim Evins  <evins@snaught.com>
+
+       * barcode-0.98/Makefile.am:
+               One last time:  removed doc/Makefile and po/Makefile.in.in
+               from
+               EXTRA_DIST files.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@394
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/barcode-0.98/Makefile.am
+
+commit e896552f051622647d765aaaf8a753f883d65846
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-28
+
+    2003-12-27 Jim Evins  <evins@snaught.com>
+
+       reviewed by: <delete if not using a buddy>
+
+       * barcode-0.98/Makefile.am:
+               Removed config.stat entry from EXTRA_DIST files.
+
+       * barcode-0.98/Makefile.in:
+               Removed.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@393
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/barcode-0.98/Makefile.am
+D      glabels2/barcode-0.98/Makefile.in
+
+commit 6c7d8f20932bc80e2461d12fd2c4ea146fc9c510
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-28
+
+    2003-12-27 Jim Evins  <evins@snaught.com>
+
+           * configure.in:
+                   Updated to work with latest gnome-common package
+                   from CVS.
+                   Removed recursive configuration of barcode-0.98.
+
+           * acconfig.h:
+           * macros/*:
+                   Removed.
+
+           * Makefile.am:
+                   Added barcode-0.98/ as a SUBDIR, and removed
+                   dist-hook.
+
+           * barcode-0.98/Makefile.in:
+           * barcode-0.98/configure.in:
+           * barcode-0.98/Makefile.am:
+           * barcode-0.98/README.glabels:
+                   Modified to ignore the barcode package's build system,
+                   and build
+                   as a part of glabels.
+                   Renamed Makefile.in to Makefile.in.dist.
+                   Renamed configure.in to configure.in.dist.
+                   Added barcode-0.98/Makefile.am and
+                   barcode-0.98/README.glabels.
+           * src/Makefile.am:
+           * src/mygal/Makefile.am:
+           * src/recent-files/Makefile.am:
+                   In order to build against the GNOME 2.5 platform,
+                   all use of *_DISABLE_DEPRECATED compile-time flags
+                   has been removed.
+
+           * src/mygal/Makefile.am:
+           * src/mygal/mygal-combo-box.c:
+           * src/mygal/mygal-combo-box.h:
+           * src/mygal/widget-color-combo.c:
+           * src/mygal/widget-color-combo.h:
+           * po/POTFILES.in:
+                   In order to build against the GNOME 2.5 platform,
+                   Renamed gtk_combo_box widget to mygal_combo_box,
+                   to prevent namespace
+                   collisions with the real gtk_combo_box widget,
+                   now a part of gtk.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@392
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+A      glabels2/barcode-0.98/Makefile.am
+
+commit 0a403c6d9718254ea54850ef1d1f164c48da6b92
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-28
+
+    2003-12-27 Jim Evins  <evins@snaught.com>
+
+       * configure.in:
+               Updated to work with latest gnome-common package from CVS.
+               Removed recursive configuration of barcode-0.98.
+
+       * acconfig.h:
+       * macros/*:
+               Removed.
+
+       * Makefile.am:
+               Added barcode-0.98/ as a SUBDIR, and removed dist-hook.
+
+       * barcode-0.98/Makefile.in:
+       * barcode-0.98/configure.in:
+       * barcode-0.98/Makefile.am:
+       * barcode-0.98/README.glabels:
+               Modified to ignore the barcode package's build system,
+               and build
+               as a part of glabels.
+               Renamed Makefile.in to Makefile.in.dist.
+               Renamed configure.in to configure.in.dist.
+               Added barcode-0.98/Makefile.am and
+               barcode-0.98/README.glabels.
+
+       * src/Makefile.am:
+       * src/mygal/Makefile.am:
+       * src/recent-files/Makefile.am:
+               In order to build against the GNOME 2.5 platform,
+               all use of *_DISABLE_DEPRECATED compile-time flags has
+               been removed.
+
+       * src/mygal/Makefile.am:
+       * src/mygal/mygal-combo-box.c:
+       * src/mygal/mygal-combo-box.h:
+       * src/mygal/widget-color-combo.c:
+       * src/mygal/widget-color-combo.h:
+       * po/POTFILES.in:
+               In order to build against the GNOME 2.5 platform,
+               Renamed gtk_combo_box widget to mygal_combo_box, to
+               prevent namespace
+               collisions with the real gtk_combo_box widget, now a
+               part of gtk.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@391
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+D      glabels2/macros/Makefile.am
+D      glabels2/macros/aclocal-include.m4
+D      glabels2/macros/autogen.sh
+D      glabels2/macros/compiler-flags.m4
+D      glabels2/macros/curses.m4
+D      glabels2/macros/gnome-bonobo-check.m4
+D      glabels2/macros/gnome-common.m4
+D      glabels2/macros/gnome-cxx-check.m4
+D      glabels2/macros/gnome-fileutils.m4
+D      glabels2/macros/gnome-gettext.m4
+D      glabels2/macros/gnome-ghttp-check.m4
+D      glabels2/macros/gnome-gnorba-check.m4
+D      glabels2/macros/gnome-guile-checks.m4
+D      glabels2/macros/gnome-libgtop-check.m4
+D      glabels2/macros/gnome-objc-checks.m4
+D      glabels2/macros/gnome-orbit-check.m4
+D      glabels2/macros/gnome-pilot.m4
+D      glabels2/macros/gnome-print-check.m4
+D      glabels2/macros/gnome-pthread-check.m4
+D      glabels2/macros/gnome-support.m4
+D      glabels2/macros/gnome-undelfs.m4
+D      glabels2/macros/gnome-vfs.m4
+D      glabels2/macros/gnome-x-checks.m4
+D      glabels2/macros/gnome-xml-check.m4
+D      glabels2/macros/gnome.m4
+D      glabels2/macros/gperf-check.m4
+D      glabels2/macros/linger.m4
+D      glabels2/macros/need-declaration.m4
+D      glabels2/macros/psiconv.m4
+
+commit 374483b9c1e3bd3054a71d6b502c02218baee4c5
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-28
+
+    2003-12-27 Jim Evins  <evins@snaught.com>
+
+       * configure.in:
+               Updated to work with latest gnome-common package from CVS.
+               Removed recursive configuration of barcode-0.98.
+
+       * acconfig.h:
+       * macros/*:
+               Removed.
+
+       * Makefile.am:
+               Added barcode-0.98/ as a SUBDIR, and removed dist-hook.
+
+       * barcode-0.98/Makefile.in:
+       * barcode-0.98/configure.in:
+       * barcode-0.98/Makefile.am:
+       * barcode-0.98/README.glabels:
+               Modified to ignore the barcode package's build system,
+               and build
+               as a part of glabels.
+               Renamed Makefile.in to Makefile.in.dist.
+               Renamed configure.in to configure.in.dist.
+               Added barcode-0.98/Makefile.am and
+               barcode-0.98/README.glabels.
+
+       * src/Makefile.am:
+       * src/mygal/Makefile.am:
+       * src/recent-files/Makefile.am:
+               In order to build against the GNOME 2.5 platform,
+               all use of *_DISABLE_DEPRECATED compile-time flags has
+               been removed.
+
+       * src/mygal/Makefile.am:
+       * src/mygal/mygal-combo-box.c:
+       * src/mygal/mygal-combo-box.h:
+       * src/mygal/widget-color-combo.c:
+       * src/mygal/widget-color-combo.h:
+       * po/POTFILES.in:
+               In order to build against the GNOME 2.5 platform,
+               Renamed gtk_combo_box widget to mygal_combo_box, to
+               prevent namespace
+               collisions with the real gtk_combo_box widget, now a
+               part of gtk.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@390
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/Makefile.am
+D      glabels2/acconfig.h
+M      glabels2/barcode-0.98/Makefile.in
+C100   glabels2/barcode-0.98/Makefile.in
+glabels2/barcode-0.98/Makefile.in.dist
+A      glabels2/barcode-0.98/README.glabels
+R100   glabels2/barcode-0.98/configure.in
+glabels2/barcode-0.98/configure.in.dist
+M      glabels2/configure.in
+M      glabels2/po/POTFILES.in
+M      glabels2/src/Makefile.am
+M      glabels2/src/mygal/Makefile.am
+D      glabels2/src/mygal/gtk-combo-box.h
+R080   glabels2/src/mygal/gtk-combo-box.c
+glabels2/src/mygal/mygal-combo-box.c
+A      glabels2/src/mygal/mygal-combo-box.h
+M      glabels2/src/mygal/widget-color-combo.c
+M      glabels2/src/mygal/widget-color-combo.h
+M      glabels2/src/recent-files/Makefile.am
+
+commit 0fc7cd31248b35914e681b37cd703f5366d88c76
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-27
+
+    2003-12-26 Jim Evins  <evins@snaught.com>
+
+       * src/paper.c:
+       * src/template.c:
+       * src/util.c:
+       * src/util.h:
+               Moved local versions of get_home_data_dir() in paper.c and
+               template.c to util package.  Cleaned up formatting in
+               util.[ch].
+
+       * src/template.c:
+               In gl_template_register() save a copy of the template in
+               ~/.glabels if the template is not known.  Still need to
+               handle duplicate filename case and duplicate name but
+               different template case.
+
+       * src/xml-label.c:
+       * src/xml.h:
+               Moved local definition of NAME_SPACE macro from
+               xml-label.c
+               to xml.h.
+
+       * src/xml-template.c:
+       * src/xml-template.h:
+               Added function gl_xml_template_write_template_to_file(),
+               used
+               in gl_template_register().
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@389
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/ChangeLog
+M      glabels2/src/paper.c
+M      glabels2/src/template.c
+M      glabels2/src/util.c
+M      glabels2/src/util.h
+M      glabels2/src/xml-label.c
+M      glabels2/src/xml-template.c
+M      glabels2/src/xml-template.h
+M      glabels2/src/xml.h
+
+commit a155fb708375c1ed04bd184a45866ea1606a1831
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-26
+
+    Added user contributed template.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@388
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/data/misc-iso-templates.xml
+
+commit ab07958f3b8f89b3c2c8be7f836217559aacbdef
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-26
+
+    Preparing for 1.93.2 development.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@387
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/configure.in
+
+commit 33b3bebc5d206145cf608c7112ecf8b188ac0a1c
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-26
+
+    When looking up templates by name and name isn't found, return
+    first template instead of NULL (suggested by Wayne Schuller
+    <k_wayne@linuxpower.org>). In addition, added code to register
+    templates (make known, if not already known) when they are encountered
+    when reading a label.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@386
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/paper.c
+M      glabels2/src/paper.h
+M      glabels2/src/template.c
+M      glabels2/src/template.h
+M      glabels2/src/xml-label-191.c
+M      glabels2/src/xml-label.c
+
+commit f1357e3a29e2b291c6574f49164497e046d2feab
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-23
+
+    Final prep for 1.93.1.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@384
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/configure.in
+
+commit 5a3d0ee28811fc9ee872552cd7c29020f281bf21
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-23
+
+    Added scrollkeeper stuff.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@383
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/glabels.spec.in
+
+commit 8cf4bade5f2b17f356f7e8253ed89844035638eb
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-22
+
+    New user submitted template.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@382
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/data/misc-iso-templates.xml
+
+commit 198fee144039f49f27295e518c0e2e115b07cd1d
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-22
+
+    Changed some tabbed notebook labels to hopefully be more
+    understandable.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@381
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/object-editor.glade
+
+commit 2f77d3c19cd97dd2d55dd3bff8a4d5046ef6e2b6
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-21
+
+    In size_reset_cb() fixed broken, un-initialized, use of w_base
+    and h_base.  This was accidentally introduced when modified to
+    track gl_prefs.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@380
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/object-editor-size-page.c
+
+commit be3625185312bb65c5538d3147ac8c2573eda437
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-20
+
+    Added skeletal xml documentation.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@379
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+A      glabels2/omf.make
+A      glabels2/xmldocs.make
+
+commit c110ae640822b5be441c7ae3802a36b80e6c20ad
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-19
+
+    Fixed properties for text and linewidth spinbuttons.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@378
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/object-editor.glade
+M      glabels2/src/prefs-dialog.glade
+
+commit 44e32b0c46bf50195856ebc26b09fcb4f1f3da2a
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-19
+
+    Created 2 methods for setting label for mini-preview widget.
+    The first is "by name" and the second is by template.   This second
+    method allows us to use a label's local template, even if its name
+    is not an exact match with an existing template's -- can occur if
+    templates are renamed between versions or if a label uses someone
+    else's custom template.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@377
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/wdgt-media-select.c
+M      glabels2/src/wdgt-mini-preview.c
+M      glabels2/src/wdgt-mini-preview.h
+M      glabels2/src/wdgt-print-copies.c
+M      glabels2/src/wdgt-print-merge.c
+
+commit 00dd4521fae11dda1e5a53c5adb4edd044bb9689
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-17
+
+    Modifications to track properties of selected objects.
+    This addresses Bug #839801.  Patch provided by Emmanuel Pacaud
+    <emmanuel.pacaud@univ-poitiers.fr>.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@376
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/mygal/widget-color-combo.c
+M      glabels2/src/ui-property-bar.c
+M      glabels2/src/ui-property-bar.h
+
+commit 768611c0fbde602b50f940ae142ee5eb3dc704db
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-14
+
+    Added src/prefs-model.[ch].
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@375
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/po/POTFILES.in
+
+commit 544b2c55be62f99f9a509d534c245c0551445c49
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-14
+
+    Added 2 user submitted templates.  Did a little cleanup of the
+    avery-iso and zweckform-iso files.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@374
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/data/avery-iso-templates.xml
+M      glabels2/data/zweckform-iso-templates.xml
+
+commit 9485ecff9019ccd81087c0a65c99a006a7f0d761
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-14
+
+    Added menu entry to toggle visibility of property toolbar. Also added
+    entry to toggle its tooltips.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@373
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/glabels-ui.xml
+M      glabels2/src/prefs-model.c
+M      glabels2/src/prefs-model.h
+M      glabels2/src/ui.c
+
+commit d8c8689edc8700b670853f040d4aab1c41138a33
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-14
+
+    Track changes in prefered units and update widgets appropriately.
+    This addresses bug #852974.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@372
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/object-editor-lsize-page.c
+M      glabels2/src/object-editor-position-page.c
+M      glabels2/src/object-editor-private.h
+M      glabels2/src/object-editor-size-page.c
+M      glabels2/src/object-editor.c
+M      glabels2/src/wdgt-media-select.c
+
+commit 1d82d0c3852692d9931c1e5b0533ec50ba3646d1
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-12
+
+    Removed some artifacts in copy() method.  In particular a g_free()
+    on an unitialized automatic variable was removed, which caused a
+    copy/paste of a text object to segfault (See bug #857773).
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@371
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label-text.c
+
+commit 4d2997726e0d0c5a27e95cf674132c3f3a293d96
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-07
+
+    View box's object will track position in object editor.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@370
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view-box.c
+
+commit 6acb95f4d5fc360a087b7a7f6ab4c9eb9848494e
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-06
+
+    - Changed gl_prefs from a simple structure to a full-fledged object
+    (prefs_model).
+    - Moved prefs_init after paper_init so that page size proof reading
+    code in prefs_model_load_settings works properly.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@369
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/Makefile.am
+M      glabels2/src/commands.c
+M      glabels2/src/glabels.c
+M      glabels2/src/prefs-dialog.c
+A      glabels2/src/prefs-model.c
+C056   glabels2/src/prefs.h    glabels2/src/prefs-model.h
+M      glabels2/src/prefs.c
+M      glabels2/src/prefs.h
+M      glabels2/src/template.c
+M      glabels2/src/ui.c
+
+commit b9771d1ad8a9cf97ef7100adfed558098d53cb49
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-03
+
+    Adjust canvas scroll region if when label size is changed.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@368
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view.c
+
+commit b4c795d8542654896ac92d04641cfc9b4a70bd8d
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-03
+
+    Print dialog now tracks changes to a label's template.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@367
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/print-dialog.c
+
+commit fa0b7499395a94216c9502f06bce301d10fa42b0
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-03
+
+    Print dialog is now a full-fledged object, with a unique instance
+    attached to a view.  This address Bug #839860.  The dialog is also
+    no longer modal.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@366
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/commands.c
+M      glabels2/src/print-dialog.c
+M      glabels2/src/print-dialog.h
+M      glabels2/src/view.h
+
+commit eb15aa82624a0bc2e24907b28c06ae7a33fb7f58
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-02
+
+    When setting ranges for object-editor size and position spinboxes,
+    allow for plenty of slop.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@365
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/object-editor-lsize-page.c
+M      glabels2/src/object-editor-position-page.c
+M      glabels2/src/object-editor-size-page.c
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-image.c
+M      glabels2/src/view-line.c
+
+commit fb57f0fc0e806719cd1efacde8da67492eeed71d
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-01
+
+    Text merge backend now assumes text files are encoded according to
+    the current locale -- converts to UTF8 for internal use.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@364
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/merge-text.c
+
+commit f59501fe42e73950cac52de4362ec6937f0795b7
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-12-01
+
+    Getting ready for work on 1.93.1.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@363
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/configure.in
+
+commit 516923ce1d1be249861bd04423fd8aebdc338675
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-30
+
+    Final preps for 1.93.0.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@361
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/TODO
+M      glabels2/configure.in
+
+commit 0d23211916e298372d4cb0d7df1df1c4fe67c43b
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-29
+
+    Make sure canvas item representing selection region has a finite size.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@360
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view.c
+
+commit 8a8670b3964dc497eb410a49a3c7a1d77ea3ff07
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-29
+
+    Added build dependency on libglade2.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@359
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/glabels.spec.in
+
+commit 2c65342596e10da4ca0a8219a7885b34cec7a6cc
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-29
+
+    Delay doing a gtk_widget_show on notebook until it is known if any
+    pages are visible or not.  Doing the show on a notebook with all
+    hidden pages causes a crash on Fedora Core 1/Gnome 2.4.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@358
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/object-editor.c
+
+commit 115198aeead93ef3ef97cd081f5b855622403e0a
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-28
+
+    gl_view_delete_selection(): Actually clear out selection before
+    deleting these objects.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@357
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view.c
+
+commit 6836860e2dab3b384e89982b8df9856b64c6c911
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-27
+
+    Created generic "get" methods for text, fill and line properties
+    for all label objects.  This will make it easier to track changes
+    in a general view such as the property toolbar.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@356
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label-barcode.c
+M      glabels2/src/label-barcode.h
+M      glabels2/src/label-box.c
+M      glabels2/src/label-box.h
+M      glabels2/src/label-ellipse.c
+M      glabels2/src/label-ellipse.h
+M      glabels2/src/label-line.c
+M      glabels2/src/label-line.h
+M      glabels2/src/label-object.c
+M      glabels2/src/label-object.h
+M      glabels2/src/label-text.c
+M      glabels2/src/label-text.h
+M      glabels2/src/print.c
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-line.c
+M      glabels2/src/view-text.c
+M      glabels2/src/xml-label-04.c
+M      glabels2/src/xml-label-191.c
+M      glabels2/src/xml-label.c
+
+commit 0bb61293a045dec136d8ef6d82186e54633f63a1
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-27
+
+    After setting max size, restore current setting.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@355
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/object-editor-lsize-page.c
+
+commit 4d331ca9bd594283549e9415d96d40d87d3302d5
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-27
+
+    Make sure canvas will regain focus if clicked on.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@354
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view.c
+
+commit 608c6e669e6e169b92522131768dedf4f608b4f5
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-26
+
+    Only act on zoom changes (modifying canvas scale and emitting signal)
+    if the new level is actually different.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@353
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view.c
+
+commit 814500dd1a4686522d20abf06b02395d2a5ea230
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-26
+
+    Modified zoom code:
+    - Now keeps track of zoom levels, rather than screen scale
+    - Calculates home scale from screen DPI
+    - View size changes are tracked, and if selected zoom_to_fit is
+    maintained.
+    - New windows default to zoom_to_fit.
+    - Tracks changes in screen, so that new home scale can be updated
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@352
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/tools.c
+M      glabels2/src/view-highlight.c
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+M      glabels2/src/window.c
+
+commit 127a39e7edb69b54cc0ca0b4d421c63891d9ab1f
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-26
+
+    Only present object property editor when selection is atomic.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@351
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/ui-sidebar.c
+
+commit af777d10cca19977c2cb80b7fa015b5ad77fdcd4
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-24
+
+    Glade files are now installed at GLABELS_GLADE_DIR.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@350
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/Makefile.am
+M      glabels2/src/object-editor.c
+M      glabels2/src/prefs-dialog.c
+
+commit b6ae3725e4345dc9aeb153519678175d3f5ce12b
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-24
+
+    Updated to reflect current source files.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@349
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/po/POTFILES.in
+
+commit 5f79a4f719b16e37880857730df9f5b65e4fbe17
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-24
+
+    Changed object property dialogs to a single object property editor
+    sidebar.
+    Added zoom to fit command.
+    Converted object property editor and preferences dialog to use
+    libglade and removed un-needed widgets.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@348
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/Makefile.am
+M      glabels2/src/debug.c
+M      glabels2/src/debug.h
+M      glabels2/src/glabels-ui.xml
+M      glabels2/src/glabels.c
+A      glabels2/src/object-editor-bc-page.c
+A      glabels2/src/object-editor-data-page.c
+A      glabels2/src/object-editor-edit-page.c
+A      glabels2/src/object-editor-fill-page.c
+A      glabels2/src/object-editor-image-page.c
+A      glabels2/src/object-editor-line-page.c
+A      glabels2/src/object-editor-lsize-page.c
+A      glabels2/src/object-editor-position-page.c
+A      glabels2/src/object-editor-private.h
+A      glabels2/src/object-editor-size-page.c
+A      glabels2/src/object-editor-text-page.c
+A      glabels2/src/object-editor.c
+A      glabels2/src/object-editor.glade
+A      glabels2/src/object-editor.h
+M      glabels2/src/prefs-dialog.c
+A      glabels2/src/prefs-dialog.glade
+M      glabels2/src/prefs-dialog.h
+M      glabels2/src/stock-pixmaps/Makefile.am
+A      glabels2/src/stock-pixmaps/stock_properties_24.png
+M      glabels2/src/stock.c
+M      glabels2/src/tools.c
+M      glabels2/src/tools.h
+A      glabels2/src/ui-sidebar.c
+A      glabels2/src/ui-sidebar.h
+M      glabels2/src/ui.c
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-image.c
+M      glabels2/src/view-line.c
+M      glabels2/src/view-object.c
+M      glabels2/src/view-object.h
+M      glabels2/src/view-text.c
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+D      glabels2/src/wdgt-bc-data.c
+D      glabels2/src/wdgt-bc-data.h
+D      glabels2/src/wdgt-bc-props.c
+D      glabels2/src/wdgt-bc-props.h
+D      glabels2/src/wdgt-bc-style.c
+D      glabels2/src/wdgt-bc-style.h
+D      glabels2/src/wdgt-fill.c
+D      glabels2/src/wdgt-fill.h
+D      glabels2/src/wdgt-line.c
+D      glabels2/src/wdgt-line.h
+D      glabels2/src/wdgt-position.c
+D      glabels2/src/wdgt-position.h
+D      glabels2/src/wdgt-size.c
+D      glabels2/src/wdgt-size.h
+D      glabels2/src/wdgt-text-entry.c
+D      glabels2/src/wdgt-text-entry.h
+D      glabels2/src/wdgt-text-props.c
+D      glabels2/src/wdgt-text-props.h
+D      glabels2/src/wdgt-vector.c
+D      glabels2/src/wdgt-vector.h
+M      glabels2/src/window.c
+M      glabels2/src/window.h
+
+commit 132b37df55e9e78afb0abb7de68696de150b59d4
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-24
+
+    Modified for upcomming 1.93.0.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@347
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/configure.in
+
+commit 5894e21a4bcf7fd0bedda704828ee3dd3f7f4d31
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-17
+
+    Fixed cut-n-paste error:  font_italic_flag is gboolean, not
+    GnomeFontWeight.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@346
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label-object.c
+M      glabels2/src/label-object.h
+
+commit f550817d9014d2bbf5443dd55750fb23c4f327c6
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-16
+
+    Added italian translations.  Provided by Mancio <mancio_and@yahoo.it>.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@345
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/configure.in
+A      glabels2/po/it.po
+
+commit 1821f44c12d204441415f0f86917aaf7d0dc1bdb
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-16
+
+    Updated copyright date in about dialog.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@344
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/commands.c
+
+commit bbd5fe10e125d4920fb4ed8ef2433e1f5ef9e751
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-16
+
+    Updated japanese translation.  Provided by Takeshi Aihana
+    <aihana@jcom.home.ne.jp>.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@343
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/po/ja.po
+
+commit b96836c5812bd54c4d077cacaa3f57cd8f821af5
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-15
+
+    Added "break" in draw_markup_layer between line and circle cases
+    of switch. This fixes Bug #842705.  This is also the 2nd time I
+    have fixed this bug -- I must of neglected to check it in.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@342
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view.c
+
+commit 679345152aca90d9e96764babfaffbf29ad947da
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-11
+
+    Prefixed $(configdir) with $(DESTDIR) in intall-data-local rule.
+    Patch provided by Andrew Lau <netsnipe@users.sourceforge.net> needed
+    to build debian package.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@341
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/data/Makefile.am
+
+commit 357dece84bdbf8a6a9cf229cf0145e247e0dc09e
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-09
+
+    Preparation for 1.92.3 release.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@339
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/configure.in
+
+commit 782c39f08243f6e5bac40feab7dfdae50e005957
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-09
+
+    Added additional user submitted templates.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@338
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/data/misc-iso-templates.xml
+
+commit c20fc06cf628c75318b2330b7bdf7892c5df7a89
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-09
+
+    Make the "Other" page size a full-fledged member of the pages list.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@337
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/paper.c
+
+commit c682ad48f57e9316b809a64f70514ed68f711ed5
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-09
+
+    One of the signal handlers (view_scale_changed_cb) created with a
+    view_highlight actually belongs to view.  So when a view_highlight
+    is finalized, we must disconnect this handler.  This fixes the crash
+    reported in bug #836873.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@336
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view-highlight.c
+
+commit 0869fee988c04a6c7bf317fe92410c7a20e5cfeb
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-02
+
+    *** empty log message ***
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@335
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/barcode-0.98/configure
+M      glabels2/po/cs.po
+M      glabels2/po/de.po
+M      glabels2/po/es.po
+M      glabels2/po/fr.po
+M      glabels2/po/ja.po
+M      glabels2/po/pl.po
+M      glabels2/po/pt_BR.po
+M      glabels2/po/ru.po
+M      glabels2/po/zh_TW.Big5.po
+
+commit 12ffda8cb72321cfbd4e5d1e6775beaf34560261
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-11-02
+
+    Return immediately if --version option set.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@333
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/configure.in
+M      glabels2/src/glabels-batch.c
+
+commit de9574629d2b0fee2a1f898516863f80c9a43c53
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-31
+
+    Fixes glabels-batch frontend that broke when porting to gnome-print
+    2.2.  This fixes bug #832206.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@332
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/glabels-batch.c
+M      glabels2/src/print.c
+
+commit b657e02ae4905a080de7ca849c5b5310e50b2b91
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-28
+
+    Much cleaner implementation of fix for Bug #822848.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@330
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/ui.c
+M      glabels2/src/ui.h
+M      glabels2/src/window.c
+
+commit ce3e06da0c3abb47e2d9b5970e5bce670e56d639
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-27
+
+    Brought README up-to-date, including updating website.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@329
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/README
+
+commit 5b8870cdd41d8dbede3ef438b87b030f0bf89591
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-27
+
+    Fix for Bug #822848:  in gl_window_destroy() unreference window->uic
+    and recent_view.
+
+    Hack:  squirrel away recent_view as data in window->uic, and extract
+    this in gl_window_destroy().  A better approach might be to wrap up
+    the ui_component in its own object, then simply unreference it.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@328
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/ui.c
+M      glabels2/src/window.c
+
+commit 299887846ca7b16b3eb7113a6efae93c73763647
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-27
+
+    Updated reference to glabels website.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@327
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/commands.c
+
+commit acd06beb42f79ed27a2d9a469c56e6daafb72fb8
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-19
+
+    New glabels icon.  Adding as a binary file this time.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@326
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+A      glabels2/pixmaps/glabels-icon.png
+
+commit 1746d5fae438cdab908d883742c65f57d1243f23
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-19
+
+    Removing glabels-icon.png, to replace with new file to be added as
+    a binary file this time.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@325
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+D      glabels2/pixmaps/glabels-icon.png
+
+commit f584c36b1ef64ce81102c1033632cbb5a10ffb33
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-19
+
+    Applied patch #826108:  Installs files to register glabels and
+    glabels filetypes/mimetypes with gnome.  This addresses bug #822852.
+    Supplied by Emmanuel Pacaud <emmanuel.pacaud@univ-poitiers.fr>.
+    This patch adds the files:
+
+       pixmaps/glabels.png
+       data/glabels.mime
+       data/glabels.applications
+       data/glabels.keys.in
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@324
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/data/Makefile.am
+A      glabels2/data/glabels.applications
+M      glabels2/data/glabels.desktop.in
+A      glabels2/data/glabels.keys.in
+A      glabels2/data/glabels.mime
+M      glabels2/pixmaps/Makefile.am
+A      glabels2/pixmaps/glabels.png
+
+commit 9acf7f6f72a3f7aa70325cb99d5416167d7e1e99
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-19
+
+    Do not attempt to install header files.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@323
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/recent-files/Makefile.am
+
+commit bd8f890e80ae5726deda06cd1874bbb3e6bc1f03
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-19
+
+    Cannot translate an empty string -- changed to " ".
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@322
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/commands.c
+
+commit a679e0dc1aa5202475800847262095df1b1526d3
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-19
+
+    Removed references to old gnome-recent-* files.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@321
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/po/POTFILES.in
+
+commit 5fba23738c145c5767bab85e1e7f92d050c98ea3
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-19
+
+    glabels.spec.in:  Updated by merging with Dag Wieers's
+    <dag@wieers.com> glabels.spec file.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@320
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/glabels.spec.in
+
+commit c850d6c4b460d4eb71462b01b6dd8d67139faf54
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-18
+
+    Workaround for problem with gnome-print rendering images with alpha
+    channels.  See bug #822840.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@319
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/print.c
+
+commit 6442032ba8d7117adead42725d24f8ffa0c6df6a
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-18
+
+    Minor tweaks to Avery US definitions.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@318
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/data/avery-us-templates.xml
+
+commit 0922af212e7e1fdd8c100bceb9d1107380afb101
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-17
+
+    Cleanup of Avery US-Letter templates.
+
+     - Spaced between manufacturer and part # to facilitate sorting,
+     i.e. Assume part #s are 5 digits and right justified.
+
+     - Unified descriptions so they are consistent with the generic
+     portion of Avery's descriptions, and their are fewer unique
+     descriptions to facilitate translations.
+
+     - If multiple types per sheet or part #, the part # is suffixed
+     with an appropriate description (e.g. 8391-Disc).
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@317
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/data/avery-us-templates.xml
+
+commit 5a7ea2653f663ae324fb66854477600db97ee6fd
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-17
+
+    Allow comments anytime traversing a list of child nodes.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@316
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/xml-template.c
+
+commit c29868bc5e87ebd5e6531e2fc28261afafc183b5
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-15
+
+    Applied patch #822935.  This patch slightly increases the invalidated
+    area during a redraw request, to account for anti-aliasing.
+    This prevent small artifacts from being left around when text
+    and barcode objects are dragged around the canvas. This patch
+    also corrects an oversight in view-barcode.c when converting from
+    gnome_canvas_hacktext to gl_canvas_hacktext.  This patch was provided
+    by Emmanuel Pacaud <emmanuel.pacaud@univ-poitiers.fr>.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@315
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/canvas-hacktext.c
+M      glabels2/src/view-barcode.c
+
+commit 0b5900cdd4732d281af4023d38d6c830fe86627d
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-13
+
+    Removed aclocal.m4.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@314
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+D      glabels2/aclocal.m4
+
+commit a3f6bc15eabeeffe14eed2fe7645d2621f87f5ae
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-13
+
+    Patch #819541:  moved to latest libegg version of recent-files.
+    Patch provided by: Emmanuel Pacaud <emmanuel.pacaud@univ-poitiers.fr>.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@313
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/configure.in
+
+commit 07a7b6952d0e27a252e12ef720bbc4d3e43bcd8b
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-13
+
+    Patch #820699:  corrects interpretation of Object-text nodes when
+    it consists of a single Field node.  Interpretation gets screwed
+    up by the automatic XML indentation.  Patch provided by:  Emmanuel
+    Pacaud <emmanuel.pacaud@univ-poitiers.fr>.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@312
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/xml-label.c
+
+commit 49344d5aee4d1c314ba4a16469501d0bf1a72c0d
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-12
+
+    Added StartupNotify line.  Suggested by James Ogley
+    <james.ogley@pinnacle.co.uk>.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@311
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/data/glabels.desktop.in
+
+commit d16472a553fb5e025784e0330a6c53278b61c7b1
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-12
+
+    Updated to reflect recent contributors.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@310
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+
+commit dc69b06e19b29c9d5c7eead7456e6cb45550cb2a
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-09
+
+    Replacing gnome-recent* with current egg recent files module.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@309
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/Makefile.am
+M      glabels2/src/file.c
+M      glabels2/src/file.h
+M      glabels2/src/glabels.c
+D      glabels2/src/gnome-recent-marshal.list
+D      glabels2/src/gnome-recent-model.c
+D      glabels2/src/gnome-recent-model.h
+D      glabels2/src/gnome-recent-util.c
+D      glabels2/src/gnome-recent-util.h
+D      glabels2/src/gnome-recent-view-bonobo.c
+D      glabels2/src/gnome-recent-view-bonobo.h
+D      glabels2/src/gnome-recent-view.c
+D      glabels2/src/gnome-recent-view.h
+M      glabels2/src/recent.c
+M      glabels2/src/recent.h
+M      glabels2/src/ui.c
+M      glabels2/src/xml-label.c
+
+commit 060a20747c4aa07a07b8552151e491e60036e587
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-09
+
+    Replacing gnome-recent* with current egg recent files module.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@308
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+A      glabels2/src/recent-files/Makefile.am
+A      glabels2/src/recent-files/egg-recent-item.c
+A      glabels2/src/recent-files/egg-recent-item.h
+A      glabels2/src/recent-files/egg-recent-model.c
+A      glabels2/src/recent-files/egg-recent-model.h
+A      glabels2/src/recent-files/egg-recent-util.c
+A      glabels2/src/recent-files/egg-recent-util.h
+A      glabels2/src/recent-files/egg-recent-vfs-utils.c
+A      glabels2/src/recent-files/egg-recent-vfs-utils.h
+A      glabels2/src/recent-files/egg-recent-view-bonobo.c
+A      glabels2/src/recent-files/egg-recent-view-bonobo.h
+A      glabels2/src/recent-files/egg-recent-view-gtk.c
+A      glabels2/src/recent-files/egg-recent-view-gtk.h
+A      glabels2/src/recent-files/egg-recent-view.c
+A      glabels2/src/recent-files/egg-recent-view.h
+A      glabels2/src/recent-files/update-from-egg.sh
+
+commit 1dacd983302ea408fc8faa1f794d0ad09f1d4019
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-08
+
+    Applied color combo patch, provided by Emmanuel Pacaud
+    (emmanuelp@sourceforge.net).  One distinct improvement is that the
+    icons are grayed out when the widget is insensitive.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@307
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/mygal/widget-color-combo.c
+M      glabels2/src/mygal/widget-color-combo.h
+
+commit 9c6084ffce76e776ce4716d2a0f4f09c9e65ac4d
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-08
+
+    Changed default font from "Helvetica" to "Sans."
+    Patch provided by Emmanuel Pacaud (emmanuelp@sourceforge.net)
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@306
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/bc.h
+M      glabels2/src/label-text.c
+M      glabels2/src/prefs.c
+
+commit 72a09e53f6f8af5ed7d754c4f9ebabf4a28e919a
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-10-08
+
+    Applied patch to correct conversion errors when reading files for many
+    non-"C" locales, i.e. locales where commas are used as decimal points.
+    Provided by Emmanuel Pacaud (emmanuelp@sourceforge.net).
+
+    Additionally modified, to allow locale format for in xml files to
+    be honored and to honor spaces between value and units.
+
+    All values written by glabels are now guaranteed to be in the
+    "C" locale.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@305
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/xml.c
+
+commit 48dd1bd999f454c730feaa4c1c9c69854a28145e
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-09-29
+
+    Fixed parsing of Text->Line nodes: removed artifact "== 0".
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@304
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/xml-label-04.c
+
+commit fecdc335bcffe3ecc858fd9e8cd07ecb5964a14a
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-09-25
+
+    Added MediaLine template submitted as feature request at sourceforge.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@303
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/data/misc-iso-templates.xml
+
+commit 5e669ab469eea243df9922345e9223fcd30e9886
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-09-23
+
+    More descriptive Name and Comment.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@302
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/data/glabels.desktop.in
+
+commit 610ef2dea4f0cc6e12301295c27317cf87b826ad
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-09-23
+
+    Removed un-needed dependency on gdk-pixbuf.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@301
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/configure.in
+
+commit edfd7d16e33d5a1c03b8cb805dbfdfce5767694d
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-09-22
+
+    gl_pixbuf_cache_remove_pixbuf():  Bail immediately if name == NULL.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@300
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/pixbuf-cache.c
+
+commit 1aff0b640e22e7eddc8c17a09f1d0636174e9926
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-09-18
+
+    Added option to print crop marks.  Suggested by Red Planet
+    <ephemeroot@yahoo.com>.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@299
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/glabels-batch.c
+M      glabels2/src/print-dialog.c
+M      glabels2/src/print.c
+M      glabels2/src/print.h
+
+commit b4df48aa17705f9995b4b08e5d20bb241302d44b
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-09-07
+
+    Updated Japanese translations (Takeshi AIHANA
+    <aihana@jcom.home.ne.jp>).
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@298
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/po/ja.po
+
+commit 5202a6f7ffb34a6cf7147e8dd57112a898ade761
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-09-05
+
+    Added categories field so that glabels will show up in the office
+    menu on RH9.  Thanks to David L Norris <dave@webaugur.com>.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@297
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/data/glabels.desktop.in
+
+commit 27acbc86591eb7548bf507d09b5ea7a9ed036134
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-09-03
+
+    Fixed typo.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@295
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/po/POTFILES.in
+M      glabels2/src/view.c
+
+commit 407e8e0f8195fde90fbd384cceba03e460ed0543
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-09-02
+
+    Changed LGPL notices to GPL, as required by the LGPL section 3.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@294
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/mygal/color-group.c
+M      glabels2/src/mygal/color-group.h
+M      glabels2/src/mygal/color-palette.c
+M      glabels2/src/mygal/color-palette.h
+M      glabels2/src/mygal/e-colors.c
+M      glabels2/src/mygal/e-colors.h
+M      glabels2/src/mygal/e-util.h
+M      glabels2/src/mygal/gtk-combo-box.c
+M      glabels2/src/mygal/gtk-combo-box.h
+M      glabels2/src/mygal/widget-color-combo.c
+M      glabels2/src/mygal/widget-color-combo.h
+
+commit 01b7a7b4909da417036c09ea42151602dd2249c7
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-09-01
+
+    Brought acknowledgements up-to-date.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@293
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+
+commit 221fb81668fb66b84cf249269857655f76ef2528
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-09-01
+
+    Added waste attribute to all CD/DVD labels.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@292
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/data/avery-iso-templates.xml
+M      glabels2/data/misc-iso-templates.xml
+M      glabels2/data/misc-us-templates.xml
+M      glabels2/data/zweckform-iso-templates.xml
+
+commit 0f6fbe429033b21c7c4fd66d284140a121bead60
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-09-01
+
+    Cleanup.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@291
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/TODO
+
+commit 71f5a916bf906c4b25c6ebfb3ee9bfe43e84bbe6
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-09-01
+
+    In clip_punchouts(), center hole correctly on business card CDs.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@290
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/print.c
+
+commit 1dec5fe436bd8b08d648bc8a7da2171ed137a2cc
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-09-01
+
+    Added XInclude support.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@289
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/xml-label.c
+
+commit 4d6e1a622b1df731ca3d46353170e725f30ac369
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-09-01
+
+    Added hack to save ink, by not printing within CD holes.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@288
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/print.c
+
+commit a119bbef560e4699fae660a1d8c6c4cf67310646
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-09-01
+
+    Superficial code formatting.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@287
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/template.c
+
+commit 38b1468153a8c46e88246bd029de4ee016724a1f
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-09-01
+
+    Added support for Markup-circle in templates.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@286
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/data/glabels-2.0.dtd
+M      glabels2/src/template.c
+M      glabels2/src/template.h
+M      glabels2/src/view.c
+M      glabels2/src/xml-template.c
+
+commit 165c5ca1599ac03d43077486cc90e46d3dde6bac
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-09-01
+
+    Added compatability parser for files generated with 1.91.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@285
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/po/POTFILES.in
+M      glabels2/src/Makefile.am
+A      glabels2/src/xml-label-191.c
+A      glabels2/src/xml-label-191.h
+M      glabels2/src/xml-label.c
+
+commit b1c557ddbf0a5e20d5aa52e100e400804a101738
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-09-01
+
+    Added templates that have been collecting dust in my inbox.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@284
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/TODO
+M      glabels2/data/avery-us-templates.xml
+M      glabels2/data/misc-iso-templates.xml
+M      glabels2/data/misc-us-templates.xml
+
+commit 0e23a07185249e1efecc272f9d5f3ad42a439d54
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-08-31
+
+    Broke out template file into separate files, organized by manufacturer
+    and page size standard (us and iso).
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@283
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/data/Makefile.am
+A      glabels2/data/avery-iso-templates.xml
+A      glabels2/data/avery-us-templates.xml
+A      glabels2/data/misc-iso-templates.xml
+A      glabels2/data/misc-us-templates.xml
+D      glabels2/data/predefined-templates.xml
+A      glabels2/data/zweckform-iso-templates.xml
+M      glabels2/po/POTFILES.in
+
+commit 114640562d0fb46ac65e0afadc54c1db0fd69d44
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-08-31
+
+    No longer use RLE for pixdata -- this caused crashes for many images.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@282
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/xml-label.c
+
+commit 0e570fb78805dcd3ca466e5ad35eeec4db2beaa6
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-08-31
+
+    Added waste attribute to Avery 5931 template.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@281
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/data/predefined-templates.xml
+
+commit 580cabfe1f1dee67e3952066a24e65eda443f184
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-08-31
+
+    Added waste attribute to label templates.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@280
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/print.c
+M      glabels2/src/template.h
+M      glabels2/src/xml-template.c
+
+commit e318f4a1459cd1b2ae90583d3c25007225d3c0b3
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-08-31
+
+    "Merge_fields" is now simply "Merge"
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@279
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/xml-label.c
+
+commit 2d88eaebd52cdd58e6e0fc0b7eb8975f44b62a5f
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-08-31
+
+    - Replaced gnome color pickers with mygal color combos.
+    - Made context of all color groups NULL.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@278
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/ui-property-bar.c
+M      glabels2/src/wdgt-bc-props.c
+M      glabels2/src/wdgt-fill.c
+M      glabels2/src/wdgt-line.c
+M      glabels2/src/wdgt-text-props.c
+
+commit 4c60c14f0536b5733898c93d3a9f1a61cf15f6b2
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-08-31
+
+    gl_wdgt_line_get_params(): Line width is double, not int!
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@277
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/wdgt-line.c
+
+commit 24dde46b0c1467f17749404de6fb902073864c07
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-08-31
+
+    Updated to use 2.0 file formats.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@276
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label-text.c
+M      glabels2/src/label-text.h
+M      glabels2/src/xml-label.c
+M      glabels2/src/xml-paper.c
+M      glabels2/src/xml-template.c
+M      glabels2/src/xml-template.h
+M      glabels2/src/xml.c
+
+commit 03a364f16bab38c0551af5e804e5394c9b875c80
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-08-31
+
+    Use theme colors for shadow and selections.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@275
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/wdgt-mini-preview.c
+M      glabels2/src/wdgt-mini-preview.h
+
+commit 9f032dc3bb103835673fabedf82a6d2a9efbc1a4
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-08-31
+
+    Created DTD for glabels 2.0 file types.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@274
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/data/Makefile.am
+A      glabels2/data/glabels-2.0.dtd
+M      glabels2/data/paper-sizes.xml
+M      glabels2/data/predefined-templates.xml
+
+commit 42b8f5fed3158ccf418d34d1ade3c8dca8984a42
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-08-31
+
+    Updated to reflect current development plan.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@273
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/TODO
+
+commit f99a01c8886bfb351ed488403faa79036294e7ae
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-07-27
+
+    - Added mygal, a modified version of the gal library, to provide a
+    sophisticated color combo widget.
+
+    - Added ui-property-bar.[ch] and ui-util.[ch] to add a property
+    bar to edit some properties of selections without going through a
+    "edit properties" dialog.
+
+    - Added stock icons
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@272
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/Makefile.am
+M      glabels2/src/color.c
+M      glabels2/src/color.h
+M      glabels2/src/debug.c
+M      glabels2/src/debug.h
+M      glabels2/src/glabels-ui.xml
+M      glabels2/src/glabels.c
+M      glabels2/src/label-barcode.c
+M      glabels2/src/label-box.c
+M      glabels2/src/label-ellipse.c
+M      glabels2/src/label-line.c
+M      glabels2/src/label-object.c
+M      glabels2/src/label-object.h
+M      glabels2/src/label-text.c
+A      glabels2/src/mygal/Makefile.am
+A      glabels2/src/mygal/color-group.c
+A      glabels2/src/mygal/color-group.h
+A      glabels2/src/mygal/color-palette.c
+A      glabels2/src/mygal/color-palette.h
+A      glabels2/src/mygal/e-colors.c
+A      glabels2/src/mygal/e-colors.h
+A      glabels2/src/mygal/e-marshal.list
+A      glabels2/src/mygal/e-util.h
+A      glabels2/src/mygal/gtk-combo-box.c
+A      glabels2/src/mygal/gtk-combo-box.h
+A      glabels2/src/mygal/widget-color-combo.c
+A      glabels2/src/mygal/widget-color-combo.h
+M      glabels2/src/stock-pixmaps/Makefile.am
+A      glabels2/src/stock-pixmaps/stock_bucket_fill_16.png
+A      glabels2/src/stock-pixmaps/stock_bucket_fill_24.png
+A      glabels2/src/stock-pixmaps/stock_pencil_16.png
+A      glabels2/src/stock-pixmaps/stock_pencil_24.png
+M      glabels2/src/stock.c
+M      glabels2/src/stock.h
+A      glabels2/src/ui-property-bar.c
+A      glabels2/src/ui-property-bar.h
+A      glabels2/src/ui-util.c
+A      glabels2/src/ui-util.h
+M      glabels2/src/ui.c
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-line.c
+M      glabels2/src/view-text.c
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+M      glabels2/src/wdgt-text-props.c
+M      glabels2/src/window.c
+M      glabels2/src/window.h
+
+commit d2dcd6e7dc0d0ede254a3fb656a6aad8c9dec747
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-07-27
+
+    - Added mygal, a modified version of the gal library, to provide a
+    sophisticated color combo widget.
+
+    - Added ui-property-bar.[ch] and ui-util.[ch] to add a property
+    bar to edit some properties of selections without going through a
+    "edit properties" dialog.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@271
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/po/POTFILES.in
+
+commit 007d50748d65f43a899a21c1836aa5ac327491b6
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-07-27
+
+    Added mygal, a modified version of the gal library, to provide a
+    sophisticated color combo widget.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@270
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/aclocal.m4
+M      glabels2/configure.in
+
+commit 4fb60b25ad3cb3f2eb883f7fff949f9394a49aaa
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-07-19
+
+    Fixes crash on XD2: start with an object size of 1pt x 1pt, instead
+    of 0 x 0.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@269
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view-image.c
+
+commit d914113d4e1b767dbba1b36249524327238d58c8
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-07-07
+
+    Harmonized runtime checks for view and view->label.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@268
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view.c
+
+commit 93756b4b8da8dc80900dc8f28499489ef31986b5
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-06-30
+
+    - View now tracks label resize events.
+
+    - Template instantiations assume name of actual alias selected.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@267
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/file.c
+M      glabels2/src/label.c
+M      glabels2/src/label.h
+M      glabels2/src/template.c
+M      glabels2/src/template.h
+M      glabels2/src/view.c
+M      glabels2/src/wdgt-print-copies.c
+M      glabels2/src/wdgt-print-merge.c
+M      glabels2/src/xml-template.c
+
+commit 59462f65a2db3cc6b6a1adb381f568eb5b5201ec
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-06-28
+
+    Added FileProperties dialog.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@266
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/commands.c
+M      glabels2/src/commands.h
+M      glabels2/src/file.c
+M      glabels2/src/file.h
+M      glabels2/src/glabels-ui.xml
+M      glabels2/src/ui.c
+M      glabels2/src/xml-template.c
+
+commit 23225999ec5847db64faffcae78e0aa136a6c1ed
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-06-28
+
+    - xml-template.c:  use page size name as a fallback if id doesn't
+    exist.
+
+    - print.c: don't set page size id for config
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@265
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/print.c
+M      glabels2/src/xml-template.c
+
+commit 799b35b71486eb37a7435ac76134a2a7441cb8ee
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-06-23
+
+    The widget should now correctly use the page size "id" when
+    interacting through its API, but use the page size "name" (which
+    may be localized) when interacting with the human user.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@264
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/wdgt-media-select.c
+M      glabels2/src/wdgt-media-select.h
+
+commit 34867c4f967a93042e453e550aa5a7921141db7b
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-06-23
+
+    Renamed files to support gettextizing with intltool.
+       page-sizes.paper -> paper-sizes.xml
+       predefined-labels.template ->predefined-templates.xml
+
+    xml-paper now looks for files with ".paper" extension or exactly named
+    "paper-sizes.xml".
+
+    xml-template now looks for files with ".template" extension or
+    ending with
+    "-templates.xml".
+
+    Gettext is run on attributes starting with "_" in both xml-paper
+    and xml-template.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@263
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/paper.c
+M      glabels2/src/template.c
+M      glabels2/src/xml-paper.c
+M      glabels2/src/xml-template.c
+
+commit 42fd154b7670f4a7db82fa0990f856ccd3bd3270
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-06-23
+
+    Renamed files to support gettextizing with intltool.
+       page-sizes.paper -> paper-sizes.xml
+       predefined-labels.template ->predefined-templates.xml
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@262
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/data/Makefile.am
+R100   glabels2/data/page-sizes.paper  glabels2/data/paper-sizes.xml
+R089   glabels2/data/predefined-labels.template
+glabels2/data/predefined-templates.xml
+M      glabels2/po/POTFILES.in
+
+commit b3e89167d2b78e0c48ce7239db145b8be9d48757
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-06-22
+
+    - Created Makefile.am in ./data and ./pixmaps directories
+       - Modified ./configure.in and ./Makefile.am to work with these
+       Makefiles
+       - Moved glabels.desktop to ./data directory
+
+    - Changed version to 1.92.0 in ./configure.in
+
+    - Added page-sizes.paper to ./data -- it seems to be less hassle
+    to maintain
+      a local paper size database.
+
+    - Added paper.[ch] and xml-paper.[ch] to ./src.
+
+    - Converted to libgnomeprint-2.2 -- serious hack: ignoring the
+    fact that
+      gnome-printer-selector is private.
+
+    - Added files to ./po/POTFILES.in
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@261
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/Makefile.am
+M      glabels2/src/debug.c
+M      glabels2/src/debug.h
+M      glabels2/src/glabels-batch.c
+M      glabels2/src/glabels.c
+A      glabels2/src/paper.c
+A      glabels2/src/paper.h
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/prefs.c
+M      glabels2/src/print-dialog.c
+M      glabels2/src/print.c
+M      glabels2/src/print.h
+M      glabels2/src/template.c
+M      glabels2/src/template.h
+M      glabels2/src/wdgt-media-select.c
+M      glabels2/src/wdgt-mini-preview.c
+A      glabels2/src/xml-paper.c
+A      glabels2/src/xml-paper.h
+M      glabels2/src/xml-template.c
+
+commit 608bd2f3e4b58fb6598cc15c52c467990c3295cf
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-06-22
+
+    - Created Makefile.am in ./data and ./pixmaps directories
+       - Modified ./configure.in and ./Makefile.am to work with these
+       Makefiles
+       - Moved glabels.desktop to ./data directory
+
+    - Changed version to 1.92.0 in ./configure.in
+
+    - Added page-sizes.paper to ./data -- it seems to be less hassle
+    to maintain
+      a local paper size database.
+
+    - Added files to ./po/POTFILES.in
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@260
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/po/POTFILES.in
+M      glabels2/po/cs.po
+M      glabels2/po/de.po
+M      glabels2/po/es.po
+M      glabels2/po/fr.po
+M      glabels2/po/ja.po
+M      glabels2/po/pl.po
+M      glabels2/po/pt_BR.po
+M      glabels2/po/ru.po
+M      glabels2/po/zh_TW.Big5.po
+
+commit da616712ac9ecf2dd8a642839ff052e8827a4066
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-06-22
+
+    - Created Makefile.am in ./data and ./pixmaps directories
+       - Modified ./configure.in and ./Makefile.am to work with these
+       Makefiles
+       - Moved glabels.desktop to ./data directory
+
+    - Changed version to 1.92.0 in ./configure.in
+
+    - Added page-sizes.paper to ./data -- it seems to be less hassle
+    to maintain
+      a local paper size database.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@259
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+A      glabels2/data/Makefile.am
+A      glabels2/data/glabels.desktop.in
+A      glabels2/data/page-sizes.paper
+A      glabels2/pixmaps/Makefile.am
+
+commit ac2056db0f3c63d362789598da0232ce858050af
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-06-22
+
+    - Created Makefile.am in ./data and ./pixmaps directories
+       - Modified ./configure.in and ./Makefile.am to work with these
+       Makefiles
+       - Moved glabels.desktop to ./data directory
+
+    - Changed version to 1.92.0 in ./configure.in
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@258
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/Makefile.am
+M      glabels2/aclocal.m4
+M      glabels2/configure.in
+D      glabels2/glabels.desktop
+
+commit e6e1186a7ed01d5c26c43ff7f02107a998caeb87
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-06-07
+
+    Reconciled unit names with absolute unit names from CSS2 spec
+    (section 4.3.2).
+    Fixed comparison in gl_xml_get_prop_length().
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@257
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/xml.c
+
+commit 2eab1f387f9288550bac8c615b707eaa58235084
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-05-26
+
+    In xml.[ch]:
+      - Added functions to get and set length properties:
+       gl_xml_get_prop_length()
+       gl_xml_set_prop_length()
+
+      - Changed gl_xml_get_prop_uint_hex() to gl_xml_get_prop_uint().
+      It should
+       automatically determine base according to "C" rules, i.e. "0x"
+       => hex,
+       "0" => octal, and anything else is decimal.
+
+      - gl_xml_get_prop_int() has also been modified to use the "C" rules.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@256
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/xml-label-04.c
+M      glabels2/src/xml-label.c
+M      glabels2/src/xml-template.c
+M      glabels2/src/xml.c
+M      glabels2/src/xml.h
+
+commit 9f6e057631e99baa8c5cd1eff1b661c54f578f24
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-04-30
+
+    Made all comparisons case sensitive.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@255
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/xml-label-04.c
+M      glabels2/src/xml-label.c
+M      glabels2/src/xml-template.c
+M      glabels2/src/xml.c
+
+commit 9b6570c2ad57f9394121cc17175b95f72d43dc4c
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-04-28
+
+    Moved template xml functions to separate module (xml-template.[ch]).
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@254
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/po/POTFILES.in
+M      glabels2/src/Makefile.am
+M      glabels2/src/template.c
+M      glabels2/src/template.h
+M      glabels2/src/xml-label.c
+A      glabels2/src/xml-template.c
+A      glabels2/src/xml-template.h
+
+commit d7e2e958e19d141526a63ad6d975b6f89ee2d67d
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-04-27
+
+    Applied barcode patch to save and restore barcode sizes, provided
+    by Alessandro Zummo <azummo@towertech.it>.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@253
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/xml-label.c
+
+commit 644ae2cb7da38765dfb8dc900eb76eb4be5ae84c
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-04-27
+
+    Added various templates.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@252
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/data/predefined-labels.template
+
+commit e3473cc57bad364568a8b127a4d6ac7149a01365
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-04-27
+
+    Added various acknowledgments.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@251
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+
+commit a60ea319cf36ef22786f6c4853eb25c2a5931170
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-04-27
+
+    Added Czech translations, thanks to David Makovský(Yakeen)
+    <yakeen@sannyas-on.net>.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@250
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/configure.in
+A      glabels2/po/cs.po
+
+commit 9d25899fa01c234a3f868c459b6459061b350e74
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-01-26
+
+    Cleanup of code formatting.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@248
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/xml.c
+
+commit b8723dacf7eff5c8ac7acaad5dc4986900921bdd
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-01-26
+
+    Removed unused signals[] array.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@247
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/merge-text.c
+M      glabels2/src/merge.c
+
+commit 19c65879b8dcd02bae6a484f339ecc4dc4a55e5f
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-01-26
+
+    Fixed parameters sent to gl_label_barcode_set_props() when creating
+    new barcode.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@246
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view-barcode.c
+
+commit 251323ecb306c6ed40528a6e57e0dbd2a0495f5c
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-01-25
+
+    Barcodes are now resizable interactively on the canvas in both width
+    and height (no more scale).
+    Added checkbox to turn-off checksum digit on barcodes when it is
+    optional.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@245
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/bc-gnubarcode.c
+M      glabels2/src/bc-gnubarcode.h
+M      glabels2/src/bc-postnet.c
+M      glabels2/src/bc-postnet.h
+M      glabels2/src/bc.c
+M      glabels2/src/bc.h
+M      glabels2/src/label-barcode.c
+M      glabels2/src/label-barcode.h
+M      glabels2/src/print.c
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-highlight.c
+M      glabels2/src/wdgt-bc-props.c
+M      glabels2/src/wdgt-bc-props.h
+M      glabels2/src/wdgt-bc-style.c
+M      glabels2/src/wdgt-bc-style.h
+M      glabels2/src/xml-label.c
+
+commit 68b7f3520db383f2ca7000533e63c39f3f07f7c7
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-01-16
+
+    Text box refinement.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@244
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label-text.c
+M      glabels2/src/label-text.h
+M      glabels2/src/print.c
+M      glabels2/src/view-text.c
+
+commit 8658f7ffd7739571743c8827b994a0c09d2713ab
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-01-08
+
+    Added xml_set_prop_*() utilities to xml.c.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@243
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/template.c
+M      glabels2/src/xml-label.c
+M      glabels2/src/xml.c
+M      glabels2/src/xml.h
+
+commit 08f61b05720c3fbd5e44c8723a171f08495683d1
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-01-07
+
+    Added text box support.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@242
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label-object.c
+M      glabels2/src/label-text.c
+M      glabels2/src/label-text.h
+M      glabels2/src/view-text.c
+M      glabels2/src/xml-label.c
+
+commit 5a7b691ea17308062acf0d62f92ee8811aaeee5e
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-01-07
+
+    Added xml utility module.  Parsing of label and template xml files
+    should no longer strand pointers returned from xmGetProp().
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@241
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/po/POTFILES.in
+M      glabels2/src/Makefile.am
+M      glabels2/src/template.c
+M      glabels2/src/xml-label-04.c
+M      glabels2/src/xml-label.c
+A      glabels2/src/xml.c
+A      glabels2/src/xml.h
+
+commit 2421a75ff0aa9b7b8e1ccf9e944b138b547be044
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-01-06
+
+    Updated ja and pt_BR translations.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@240
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/po/ja.po
+M      glabels2/po/pt_BR.po
+
+commit 9be83cfe285d2774a6ba97d5cd2fee67e8135f9f
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-01-06
+
+    Updated pt_BR translations.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@239
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/po/pt_BR.po
+
+commit 8a0aa0721e17c5256a5f35fb44714844bec41195
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-01-06
+
+    Added pixbuf cache and base64 modules.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@238
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/po/POTFILES.in
+
+commit caa0ba592597dccf7b6980e66ccd7f591c115410
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-01-06
+
+    Added pixbuf cache and base64 modules.
+    Pixbufs are now saved in a glabels file as a base64 encoded version
+    of the serialized pixdata.
+    Files are now compressed.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@237
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/Makefile.am
+A      glabels2/src/base64.c
+A      glabels2/src/base64.h
+M      glabels2/src/debug.c
+M      glabels2/src/debug.h
+M      glabels2/src/glabels.c
+M      glabels2/src/label-image.c
+M      glabels2/src/label.c
+M      glabels2/src/label.h
+A      glabels2/src/pixbuf-cache.c
+A      glabels2/src/pixbuf-cache.h
+M      glabels2/src/view.c
+M      glabels2/src/xml-label.c
+
+commit 2a1ec544be08cf7cf5e0d1c801627d73aa0b5424
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-01-03
+
+    Added support for "Other" page sizes.  Template sheets with a page
+    size of "Other" should also have the height and width properties set.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@236
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/print.c
+M      glabels2/src/template.c
+M      glabels2/src/template.h
+M      glabels2/src/wdgt-media-select.c
+M      glabels2/src/wdgt-media-select.h
+M      glabels2/src/wdgt-mini-preview.c
+M      glabels2/src/wdgt-mini-preview.h
+
+commit 73e3165ed36f77fa7048140ccdc4a0e982189a37
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-01-02
+
+    Bumped up version to 1.91.1, in preparation for next release.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@235
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/configure.in
+
+commit 6becaea14febeb218e1b071014ce1a7458df0d60
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-01-02
+
+    Added support for Business Card CD Labels (Clipped circular shape).
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@234
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/data/predefined-labels.template
+
+commit 916e4368d97d638db065e79f3ab694701d20cdbc
+Author: Jim Evins <evins@snaught.com>
+Date:  2003-01-02
+
+    Added support for Business Card CD Labels (Clipped circular shape).
+    Fixed artifact hack in wdgt-rotate-label -- made sure the scroll
+    region was
+    as large as the canvas, so that the label was not shoved into the
+    upper left corner of the canvas.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@233
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label.c
+M      glabels2/src/print.c
+M      glabels2/src/template.c
+M      glabels2/src/template.h
+M      glabels2/src/view.c
+M      glabels2/src/wdgt-mini-preview.c
+M      glabels2/src/wdgt-rotate-label.c
+
+commit 168faf48af68963a103de1def4f87d15ddb6f9b9
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-31
+
+    Use art_affine_scale() to flip objects instead of art_affine_flip().
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@231
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label-object.c
+
+commit 11fc5ffdd802110a1997d3746f7488424674d460
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-31
+
+    Created "File" tag for literal filenames for image objects.
+    Added "Literal" tag to barcode objects.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@230
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/xml-label.c
+
+commit b8b1d634eaf6b7b6e369e4521cb5a03c1946fc36
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-31
+
+    Do not g_object_unref a merge object, if NULL.  Caused warnings
+    during paste.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@229
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label.c
+M      glabels2/src/view-text.c
+M      glabels2/src/xml-label.c
+
+commit dfdf166ca400fd4028dda0248a0be7f19d7383c4
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-28
+
+    No longer attempt to rotate/flip around center of object.  This was
+    very problematic because the object's affine keeps changing under
+    one's nose.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@228
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label-object.c
+M      glabels2/src/label-object.h
+M      glabels2/src/print.c
+M      glabels2/src/view-highlight.c
+M      glabels2/src/view-object.c
+
+commit d69454e4ad96cdef3501a62fb60bb3dab2316104
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-28
+
+    glLabelText now uses a GtkTextBuffer to store text, in preparation
+    for editing of text in place.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@227
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label-text.c
+M      glabels2/src/label-text.h
+M      glabels2/src/view-text.c
+M      glabels2/src/wdgt-text-entry.c
+M      glabels2/src/wdgt-text-entry.h
+
+commit 8c26425f775cdc04c4410583a91047fef0452a50
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-28
+
+    Fixed compiler warning.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@226
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/xml-label-04.c
+
+commit 0bdc99ef3c41c53bdf59bdad64090dc8a7f71b0a
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-28
+
+    Moved item event handler to view-object.c.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@225
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view-highlight.c
+M      glabels2/src/view-object.c
+M      glabels2/src/view-object.h
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+
+commit b4cafe8f16b8cd51af2f50dafd69ac19fa5f844b
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-27
+
+    "New" dialog is now modal.
+    Added short name to titles of "print" and "save as" dialogs.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@224
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/file.c
+M      glabels2/src/print-dialog.c
+
+commit 538b382224f845af298b3559bcfa229f410625ac
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-27
+
+    Window title cleanup.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@223
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/prefs-dialog.h
+M      glabels2/src/window.c
+
+commit b055a6afad199d05172022bf79eb820639907bad
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-27
+
+    Merge property dialog now a widget.
+    One merge property dialog per view.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@222
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/merge-properties-dialog.c
+M      glabels2/src/merge-properties-dialog.h
+M      glabels2/src/tools.c
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+
+commit c41c7bae0176ffce9880b4d4e64e81757366792d
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-25
+
+    Formatting clean up.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@221
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/template.h
+M      glabels2/src/text-node.h
+
+commit 92e9778eea389de001b4230c76c0870fb1e9ead6
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-25
+
+    Catching up on backlog of template submissions.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@220
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/data/predefined-labels.template
+
+commit 21c78e4b481abe340cfcb6af32c1ef1ba0ac223a
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-25
+
+    Adds test to ensure a valid font family.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@219
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label-text.c
+M      glabels2/src/wdgt-text-props.c
+
+commit aabdc641bfd8f609709a486bdeb965c690f5d734
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-24
+
+    Use object specific methods to determine size when determining extent
+    and centers of objects.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@218
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label-object.c
+
+commit fd9d7b5004b57bfaf00e9fc1abbf6ee6035aa3f5
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-22
+
+    Removed unused gl_view_object_get_dialog() function.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@217
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view-object.c
+
+commit 26ef752a7bc6e9bd7546c95c1639e8d967564c47
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-22
+
+    Fixes crash in gl_text_node_lines_expand() when line contains
+    no nodes.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@216
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/text-node.c
+
+commit f5a3b04a4318c31e49a2a4f169e5f172d3f42db4
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-15
+
+    Always set default entry when loading new strings in the
+    template_combo.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@215
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/wdgt-media-select.c
+
+commit ccbf23cfc7000b5aeba5030fb7e7cca066a1a315
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-12
+
+    More work on images from merge data.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@214
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label-image.c
+M      glabels2/src/view-image.c
+M      glabels2/src/wdgt-image-select.c
+
+commit 5ddb04aa4cf50122ae8d65409a00f6999c5cf169
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-11
+
+    Initial support for supplying images from merge data.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@213
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label-image.c
+M      glabels2/src/label-image.h
+M      glabels2/src/print.c
+M      glabels2/src/text-node.c
+M      glabels2/src/view-image.c
+M      glabels2/src/xml-label-04.c
+M      glabels2/src/xml-label.c
+
+commit 9b08719f732321618f6f96c5863b3ad3ed01eb7f
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-10
+
+    Added wdgt_image_select widget for selecting image files or merge
+    fields for images.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@212
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/po/POTFILES.in
+M      glabels2/src/Makefile.am
+A      glabels2/src/wdgt-image-select.c
+A      glabels2/src/wdgt-image-select.h
+
+commit 3a083dee8b93f54529ea0bcb448fb9cb1c44a105
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-08
+
+    Fixed logic to remember previous merge source.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@211
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/merge-properties-dialog.c
+
+commit 7091e560600fb41c01cb88f334e54cbb6cd7ea0b
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-08
+
+    Added logic that ignores lines containing a single empty field
+    (e.g. ${ADDRESS2} == "").
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@210
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/text-node.c
+
+commit c1392472ae18285bbfcc4101d0a87f7c7e5e67d8
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-08
+
+    Removed annoying affine debug statements.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@209
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/canvas-hacktext.c
+
+commit 5c151d532ee53365a3e1695e2c88f3a6ddd4d3e6
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-08
+
+    Added GtkTreeView w/ model to preview fields and allow record
+    selection.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@208
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/merge-properties-dialog.c
+
+commit ae1e0d489c56591c29fda89d0d733c050c19cafb
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-08
+
+    Added get_primary_key method.
+    Rewrote  gl_merge_get_key_list() to use record_list().
+    Ported improved CSV parser from 0.4.6.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@207
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/merge-text.c
+
+commit 17c607468d325aa3abb43db3d5c5fa00458303ff
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-08
+
+    Added get_primary_key method.
+    Removed open, close, get_record, free_record, free_record_list
+    functions
+    from public API.
+    Renamed gl_merge_read_record_list() to gl_merge_get_record_list().
+    Renamed gl_merge_count_records() to gl_merge_get_record_count().
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@206
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/merge.c
+M      glabels2/src/merge.h
+
+commit 5f50ecbe6d0aba98f76a169f1eec5600f20eb3f3
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-08
+
+    Moved gl_merge_get_record_list() to inner-most functions possible.
+    Fixed page_begin logic for merge print functions.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@205
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/print-dialog.c
+M      glabels2/src/print.c
+M      glabels2/src/print.h
+
+commit c7ba6d95b143d1f44d1e8f615ebcebde8384e686
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-08
+
+    Changed field text from "FIELD{*}" to "${*}".
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@204
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/wdgt-text-entry.c
+
+commit 5f7abd61a52ac90b4e4b7d21e006dfd8d10bd36f
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-08
+
+    Corrected order of arguments to gl_merge_eval_key().
+    Changed field text from "FIELD{*}" to "${*}".
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@203
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/text-node.c
+
+commit 4725dd8e0562bb35593ec155215f7b583931ec89
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-08
+
+    Bumped up namespace to 1.92.
+    Literal text is now contained in "Literal" nodes -- this breaks
+    compatability with 1.89 and 1.90.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@202
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/xml-label.c
+
+commit 44dfc43fde047c1d6f8cfe13c91debaa7ea37fa8
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-08
+
+    gl_window_new_from_file() no longer ignores abs_filename.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@201
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/window.c
+
+commit da99416fc86eb1724eec8ed335624a6566f09296
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-05
+
+    Multiple fixes to merge type and properties dialog.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@200
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label.c
+M      glabels2/src/merge-init.c
+M      glabels2/src/merge-properties-dialog.c
+M      glabels2/src/merge.c
+
+commit efe5baf8e0405b1f4cc7c6740fb30853ed68b62e
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-03
+
+    Additions to development plan.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@199
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/TODO
+
+commit d4ebf0e752a63bc3a16b52226aba3be1aec5ff5f
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-03
+
+    New document merge API.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@198
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/po/POTFILES.in
+M      glabels2/src/Makefile.am
+M      glabels2/src/glabels-batch.c
+M      glabels2/src/glabels.c
+M      glabels2/src/label.c
+A      glabels2/src/merge-init.c
+C080   glabels2/src/merge-properties.h glabels2/src/merge-init.h
+R067   glabels2/src/merge-properties.c
+glabels2/src/merge-properties-dialog.c
+R083   glabels2/src/merge-properties.h
+glabels2/src/merge-properties-dialog.h
+M      glabels2/src/merge-text.c
+M      glabels2/src/merge-text.h
+D      glabels2/src/merge-ui-text.c
+D      glabels2/src/merge-ui-text.h
+D      glabels2/src/merge-ui.c
+D      glabels2/src/merge-ui.h
+M      glabels2/src/merge.c
+M      glabels2/src/merge.h
+M      glabels2/src/print-dialog.c
+M      glabels2/src/print.c
+M      glabels2/src/tools.c
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-text.c
+M      glabels2/src/wdgt-bc-data.c
+M      glabels2/src/wdgt-bc-data.h
+M      glabels2/src/wdgt-text-entry.c
+M      glabels2/src/wdgt-text-entry.h
+M      glabels2/src/xml-label-04.c
+M      glabels2/src/xml-label.c
+
+commit ff94fb2d1395644838dd247aa0643c27878afd99
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-01
+
+    Changed M_PI to G_PI.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@197
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/print.c
+M      glabels2/src/view.c
+M      glabels2/src/wdgt-vector.c
+
+commit 928d14291b48a6cdf432a2e0990c82da0d8c91a4
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-12-01
+
+    free name during finalize.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@196
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label-object.c
+
+commit 99b753edef76d37dbca105ced4c2f08df2c4b2f9
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-11-30
+
+    Added callback to adjust affine of highlight.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@195
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view-highlight.c
+M      glabels2/src/view-object.c
+
+commit 87a9ff607ba011815f80a7487492fc612c95af50
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-11-30
+
+    Removed obsolete menu from view_object.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@194
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view-object.c
+M      glabels2/src/view-object.h
+
+commit 8630930291f7555b2bbeeafb20f5a7ae25629933
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-11-30
+
+    Disconnect callbacks that reference the properties dialog when it
+    is destroyed.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@193
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-image.c
+M      glabels2/src/view-line.c
+M      glabels2/src/view-text.c
+
+commit aba3b4b013d3f41252dcffe263446c88bbfba2db
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-11-29
+
+    Added functions gl_view_rotate_selection_left() and
+    gl_view_rotate_selection_right().
+
+    Added new context menus.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@192
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/tools.c
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+
+commit d0bfe7d204fc9a159c2105b012a8aefe030cc261
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-11-29
+
+    Added stock_properties_16 icon.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@191
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/glabels-ui.xml
+M      glabels2/src/stock-pixmaps/Makefile.am
+A      glabels2/src/stock-pixmaps/stock_properties_16.png
+M      glabels2/src/stock.c
+M      glabels2/src/stock.h
+
+commit cc528ab2e13a2d518b90df1734e775eea5132169
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-11-28
+
+    Added commands to center selected objects to center of label.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@190
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/glabels-ui.xml
+M      glabels2/src/tools.c
+M      glabels2/src/tools.h
+M      glabels2/src/ui.c
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+
+commit 0f6a9bcff38a3f8f0af56c911c6fe8217ff746f4
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-11-28
+
+    Added stock_center_horiz and stock_center_vert stock icons.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@189
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/stock-pixmaps/Makefile.am
+A      glabels2/src/stock-pixmaps/stock_center_horiz_16.png
+A      glabels2/src/stock-pixmaps/stock_center_vert_16.png
+M      glabels2/src/stock.c
+M      glabels2/src/stock.h
+
+commit d29dec5925a922fda1a513c7aa5707760a3a6c2f
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-11-28
+
+    Updated russian translations, thanks to Vitaly Lipatov
+    <LAV@VL3143.spb.edu>.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@188
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/po/ru.po
+
+commit cc5a600a2678408e69b8336481ca8eabec7471cd
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-11-28
+
+    Added additional templates from my backlog.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@187
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/data/predefined-labels.template
+
+commit 2cd7297ae45065421acc610b767b82c9608a475d
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-11-28
+
+    Added strategic debug statement to help locate bad templates.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@186
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/template.c
+
+commit c31a43a3500a82401710abef158614e6c24e8a4a
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-11-26
+
+    Cleaned up label object duplication code.
+    Added get_size methods for text and barcode objects.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@185
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label-barcode.c
+M      glabels2/src/label-barcode.h
+M      glabels2/src/label-box.c
+M      glabels2/src/label-box.h
+M      glabels2/src/label-ellipse.c
+M      glabels2/src/label-ellipse.h
+M      glabels2/src/label-image.c
+M      glabels2/src/label-image.h
+M      glabels2/src/label-line.c
+M      glabels2/src/label-line.h
+M      glabels2/src/label-object.c
+M      glabels2/src/label-object.h
+M      glabels2/src/label-text.c
+M      glabels2/src/label-text.h
+M      glabels2/src/view.c
+
+commit 7fc9f03681245fcf04dee4f3392931f58f9c755b
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-11-25
+
+    Added menu icons for order, rotation, and flipping commands.
+    Split Align submenu, into Horizontal and Vertical submenus.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@184
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/glabels-ui.xml
+M      glabels2/src/stock.c
+M      glabels2/src/stock.h
+M      glabels2/src/ui.c
+
+commit 5600ac72e77355eb50496eb8d079752649d1fb0f
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-11-25
+
+    Added menu icons for order, rotation, and flipping commands.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@183
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/stock-pixmaps/Makefile.am
+A      glabels2/src/stock-pixmaps/stock_flip_horiz_16.png
+A      glabels2/src/stock-pixmaps/stock_flip_vert_16.png
+A      glabels2/src/stock-pixmaps/stock_order_bottom_16.png
+A      glabels2/src/stock-pixmaps/stock_order_top_16.png
+A      glabels2/src/stock-pixmaps/stock_rotate_left_16.png
+A      glabels2/src/stock-pixmaps/stock_rotate_right_16.png
+
+commit e745ae478b6bada6bac871e50d084b9cb4ce93d1
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-11-25
+
+    Added object alignment commands.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@182
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/glabels-ui.xml
+M      glabels2/src/tools.c
+M      glabels2/src/tools.h
+M      glabels2/src/ui.c
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+
+commit 9ed794d648593c56391e2c39ba3d45a891f0db23
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-11-25
+
+    Menu icons for alignment commands.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@181
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/stock-pixmaps/Makefile.am
+A      glabels2/src/stock-pixmaps/stock_align_bottom_16.png
+A      glabels2/src/stock-pixmaps/stock_align_hcenter_16.png
+A      glabels2/src/stock-pixmaps/stock_align_left_16.png
+A      glabels2/src/stock-pixmaps/stock_align_right_16.png
+A      glabels2/src/stock-pixmaps/stock_align_top_16.png
+A      glabels2/src/stock-pixmaps/stock_align_vcenter_16.png
+M      glabels2/src/stock.c
+M      glabels2/src/stock.h
+
+commit 29b2a2d7ad849248f70907052594d3b6a95d4c55
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-11-22
+
+    Made set_size and get_size into child methods for label-object,
+    and construct_dialog for view-object.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@180
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label-object.h
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-image.c
+M      glabels2/src/view-line.c
+M      glabels2/src/view-object.c
+M      glabels2/src/view-text.c
+
+commit 7942bd2b1dc7d4adc0ee51d858d34efa92acc6c7
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-11-22
+
+    Made set_size and get_size into child methods.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@179
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label-object.c
+M      glabels2/src/view-object.h
+
+commit 7b27fc9199039b2e5397c0a9bc5e5d7b27cfb969
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-11-21
+
+    Moved highlights/handles to separate layer (top-level group).
+    Tweaked appearance of highlights.
+    Removed shuffling of items after a raise or lower, these were
+    artifacts from when all items belonged to a single top-level group.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@178
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view-highlight.c
+M      glabels2/src/view-object.c
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+
+commit 09c923e6b7ea8b9f1dd47cb52489c47361ec6a1f
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-11-11
+
+    Workaround for flipping/rotation problem for gdkpixbuf items.
+    See libgnomecanvas bug #97604.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@177
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view-object.c
+
+commit 6ad4f9c94f5cf0144a068649c857638c742b420a
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-11-11
+
+    Added initial object rotation code.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@176
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label-object.c
+M      glabels2/src/label-object.h
+M      glabels2/src/print.c
+M      glabels2/src/tools.c
+M      glabels2/src/tools.h
+M      glabels2/src/ui.c
+M      glabels2/src/view-highlight.c
+M      glabels2/src/view-object.c
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+M      glabels2/src/xml-label.c
+
+commit c83e8558a35b8713796e36370bf53064c57b1426
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-11-08
+
+    Replaced gdk_pointer_grab() calls with gnome_canvas_item_grab() calls.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@175
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-image.c
+M      glabels2/src/view-line.c
+M      glabels2/src/view-text.c
+M      glabels2/src/wdgt-mini-preview.c
+
+commit d1cfc9aeeebab5ed3e98686fb59fbdcd5521b5c4
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-11-04
+
+    Unref highlight before destroying group.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@174
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view-object.c
+
+commit a922bbec35a3b9a3fff8fdf38537a460c8b48c71
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-11-03
+
+    Adds code to set the view canvas's background color.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@173
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/color.c
+M      glabels2/src/color.h
+M      glabels2/src/view.c
+
+commit 48b3f4e54f4a46f7265b3e0da02941d4865d6165
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-11-03
+
+    Highlight is now placed in object group, so it no longer needs to
+    track object movements.  This also causes the label layer to appear
+    as an ancestor of the highlight objects so that object_at in view.c
+    does the right thing.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@172
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view-highlight.c
+
+commit 580011286a8e406198575a1222b980ba8e5e9a05
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-20
+
+    Added demonstration markup lines to Avery 5931 and its lookalikes.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@171
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/data/predefined-labels.template
+
+commit 8f156fce93d5cc64c4722893522ec1dbabba5513
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-20
+
+    Added line markup to template.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@170
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/template.c
+M      glabels2/src/template.h
+M      glabels2/src/view.c
+
+commit 2b0d83bbb2a14f5ecfb3b17fd786f4fcb780febb
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-20
+
+    Fixes finalization problems with highlight and object properties
+    dialog.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@169
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view-highlight.c
+M      glabels2/src/view-object.c
+
+commit 9fc4f06840b10c94445cad21d24b6f78c79cff65
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-20
+
+    Includes grid lines at perimeter.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@168
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view.c
+
+commit b897cdcafbb9d3ab52cda4ca8f74409d3ce3d4eb
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-20
+
+    Changed version in preparation for next release.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@167
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/configure.in
+
+commit 24a6782ee37fe2057675d7699670f7890909b7b5
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-20
+
+    Added grid to view.
+    Created distinct gnome_canvas_groups for each distinct layer in view.
+    Grid and markup visibility are now controlled by view menu.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@166
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/canvas-hacktext.c
+M      glabels2/src/glabels-ui.xml
+M      glabels2/src/prefs.c
+M      glabels2/src/prefs.h
+M      glabels2/src/ui.c
+M      glabels2/src/view-object.c
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+M      glabels2/src/window.c
+
+commit e6d13b329522599b11a8fa5682644d8420657ce6
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-15
+
+    View_highlight is now a full-fledged object that tracks its
+    corresponding label object independently.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@165
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-highlight.c
+M      glabels2/src/view-highlight.h
+M      glabels2/src/view-image.c
+M      glabels2/src/view-line.c
+M      glabels2/src/view-object.c
+M      glabels2/src/view-object.h
+M      glabels2/src/view-text.c
+
+commit 128e0c135f9048b32de6c0ac6c1a46f6f7140baa
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-15
+
+    Pointer events are now generated for all modes.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@164
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view.c
+
+commit 814a682c9362f01d7a3847153b0a37e103d83b17
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-14
+
+    Initial flipping support -- still has some problems.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@163
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/marshal.list
+M      glabels2/src/print.c
+M      glabels2/src/tools.c
+M      glabels2/src/tools.h
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-image.c
+M      glabels2/src/view-line.c
+M      glabels2/src/view-object.c
+M      glabels2/src/view-object.h
+M      glabels2/src/view-text.c
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+M      glabels2/src/xml-label.c
+
+commit 72888ff037ca8e1c0fea29b8f908a4bb69966976
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-14
+
+    Now uses gl_label_object_copy_props() in dup function.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@162
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label-barcode.c
+M      glabels2/src/label-box.c
+M      glabels2/src/label-ellipse.c
+M      glabels2/src/label-image.c
+M      glabels2/src/label-line.c
+M      glabels2/src/label-text.c
+
+commit 7d676b96b7ee534ab36054be2febb8086eeef278
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-14
+
+    Includes support for flipping.
+    Added function for copying properties from one object to another.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@161
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label-object.c
+M      glabels2/src/label-object.h
+
+commit b5e19b10316c2fc38af47fbeed61405fa03bd1bb
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-14
+
+    New verbs and menu structure for flipping and rotation.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@160
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/glabels-ui.xml
+
+commit 47583e96fce7f3637a4e842bfda43c5460354468
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-14
+
+    Preferences are now saved when view options are modified.
+    Includes new verbs for flipping and rotation.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@159
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/ui.c
+
+commit 3fa08fe5b70f25df787fe02e05c6a9d8f1b6f06f
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-14
+
+    Fixed default-font-weight bug.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@158
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/prefs.c
+
+commit 2c55c7028acaeb1ecd61a5136afe3ac3d7e71db1
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-12
+
+    All 2-pass labels have been converted to single-pass labels using
+    multiple layouts per sheet.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@157
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/data/predefined-labels.template
+
+commit 77fce21b253323abe15246dc980c5726ab6cc9fd
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-10
+
+    Changes to development plan.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@156
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/TODO
+
+commit 9b27951549f2ee5db410e25c0bf553fba8400196
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-10
+
+    Preferences and object property dialogs are now rebuilt if previously
+    destroyed rather than assuming they were cleanly closed.  This fixes
+    bug #619052.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@155
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-image.c
+M      glabels2/src/view-line.c
+M      glabels2/src/view-object.c
+M      glabels2/src/view-object.h
+M      glabels2/src/view-text.c
+
+commit b35b62402a8c2d1c3919b63b3b1292150a247c93
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-09
+
+    Added handler for view's "pointer_exit" function:  clears cursor_info
+    label.
+    "zoom_changed" handler now updates zoom related verbs.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@154
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/window.c
+
+commit 6f096754a43d01141efc1f9faf672dc698b1b174
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-09
+
+    Added gl_ui_update_zoom_verbs () function and added updates to zoom
+    verbs in the gl_ui_update_all () function.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@153
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/ui.c
+M      glabels2/src/ui.h
+
+commit 7ef044ec2e605670f694e32f3658751b5b8caab2
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-09
+
+    Added "pointer_exit" signal.
+    Added gl_view_is_zoom_min () and gl_view_is_zoom_max () functions.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@152
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+
+commit 25d14ad53a028feac7e2a39a364a031dabb62bd0
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-08
+
+    Added cursor position to status bar.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@151
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/window.c
+
+commit 8273d92363a6c41c6671599ce247fd1b0569a05b
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-08
+
+    Fixed incorrect usage of gtk_toggle_button_get_active() in
+    update_prefs_from_locale_page () -- must have cut-n-paste from a
+    strcmp based decision tree?
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@150
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/prefs-dialog.c
+
+commit 016bd5d0c97aacf3e5540ff0d794e08b8a76072a
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-07
+
+    Initial status bar code -- only the zoom_info area implemented.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@149
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/glabels-ui.xml
+M      glabels2/src/ui.c
+M      glabels2/src/ui.h
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+M      glabels2/src/window.c
+M      glabels2/src/window.h
+
+commit e675919eedc4f9899fcdc596dc7be429e55670fa
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-05
+
+    Fixed coordinate system for rotated labels.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@147
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/print.c
+
+commit 3f9e4307f8cb9ab89da09952261ca0b5a7c544b9
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-05
+
+    Removed glabels.h artifact from POTFILES.in
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@146
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/po/POTFILES.in
+
+commit 1cfc87be8f6d2e5b04144cbc73d84cb76dfce603
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-05
+
+    alert module merged into hig module.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@145
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/po/POTFILES.in
+M      glabels2/src/Makefile.am
+D      glabels2/src/alert.c
+D      glabels2/src/alert.h
+M      glabels2/src/file.c
+M      glabels2/src/hig.c
+M      glabels2/src/hig.h
+
+commit 9be7b598f26a14fcca23836449a9e57c7222e0b2
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-05
+
+    Template origins are now the upper left corner rather than the
+    lower left.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@144
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/data/predefined-labels.template
+M      glabels2/src/print.c
+M      glabels2/src/print.h
+M      glabels2/src/template.c
+M      glabels2/src/wdgt-mini-preview.c
+
+commit c94df7e04ef6232c90c433ad796bd965b3a62b9c
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-10-03
+
+    Now original window propogates to open_ok() as object data.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@143
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/file.c
 
-commit d3a72579798314c893e9dd7b9c1dc0927f0a89f6
+commit 2e9d175e39ffc0c8cfb57f1ead14b42d79fe9e5a
 Author: Jim Evins <evins@snaught.com>
-Date:  2009-09-18
+Date:  2002-10-03
 
-    2009-09-17 Jim Evins  <evins@snaught.com>
+    Fixed many problems with glabels-batch.  Still some problem with
+    semantics of n_sheets and n_copies.
 
-       * src/stock.c: (add_icons), (add_button_icon):
-               Use proper free function for GtkIconSource
-               (gtk_icon_source_free() not g_free()).
-               Patch provided by Christian Persch <chpe@gnome.org>.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@142
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/glabels-batch.c
+
+commit 689aebc4486bc8486f973687e78a301152353449
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-30
+
+    Changed version to 1.90.0 in preparation for next release.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@887
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@141
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/src/stock.c
+M      glabels2/configure.in
 
-commit d6ca76c9dbc400c5fb6d53a06213548ec06cb207
+commit 7dd8ab1633f9253b5b14617134b714c9ddd40569
 Author: Jim Evins <evins@snaught.com>
-Date:  2009-09-10
+Date:  2002-09-30
 
-    2009-09-09 Jim Evins  <evins@snaught.com>
+    Made argv const to remove warning when passing to poptGetContext.
 
-       * configure.in:
-               Deleted help/C/Makefile.am.  Fixes "make dist".
-       * help/Makefile.am:
-               Removed trailing whitespace.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@140
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/glabels-batch.c
+
+commit 2cb116a55169a0e6730c39c334190a4f7d6cc28e
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-30
+
+    Added session management callbacks.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@881
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@139
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/configure.in
-M      glabels2/gtk-doc.make
-D      glabels2/help/C/Makefile.am
-M      glabels2/help/Makefile.am
+M      glabels2/src/glabels.c
 
-commit 6aa23570ca0b86c434a605f3c5a283a0f5d22e73
-Author: Mario Blättermann <mariobl@gnome.org>
-Date:  2009-09-09
+commit 4cb93fd68e89d83fb7b8d173ed85287b6099fe30
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-29
 
-    Added a translation template for the documentation,
-    created with the latest xml2po version from gnome-doc-utils v0.17.3
+    This is the new SDI window module.
 
-    Updated German doc translation
 
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@138
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+A      glabels2/src/window.c
+A      glabels2/src/window.h
+
+commit 568fc9114bf7feb474f1c1f0ad563f46b7fad9a5
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-29
+
+    Removed all remnants of MDI/BONOBO-MDI.  We now use an SDI application
+    model.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@879
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@137
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/help/de/de.po
-A      glabels2/help/glabels-help.pot
+M      glabels2/AUTHORS
+M      glabels2/TODO
+M      glabels2/po/POTFILES.in
+M      glabels2/src/Makefile.am
+D      glabels2/src/bonobo-mdi-child.c
+D      glabels2/src/bonobo-mdi-child.h
+D      glabels2/src/bonobo-mdi.c
+D      glabels2/src/bonobo-mdi.h
+M      glabels2/src/commands.c
+M      glabels2/src/commands.h
+M      glabels2/src/debug.c
+M      glabels2/src/debug.h
+M      glabels2/src/file.c
+M      glabels2/src/file.h
+M      glabels2/src/glabels-ui.xml
+M      glabels2/src/glabels.c
+D      glabels2/src/glabels.h
+D      glabels2/src/mdi-child.c
+D      glabels2/src/mdi-child.h
+D      glabels2/src/mdi.c
+D      glabels2/src/mdi.h
+M      glabels2/src/merge-properties.c
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/prefs.c
+M      glabels2/src/print-dialog.c
+M      glabels2/src/print-dialog.h
+M      glabels2/src/tools.c
+M      glabels2/src/ui.c
+M      glabels2/src/ui.h
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-image.c
+M      glabels2/src/view-line.c
+M      glabels2/src/view-text.c
 
-commit 681ec7dbf587319f53d3ce59e8e62ac3b16e476c
-Author: Mario Blättermann <mariobl@gnome.org>
-Date:  2009-09-09
+commit 31a7e007b211fdcf5a4f2a6c33221f13401dba76
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-26
+
+    Added new template.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@135
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/AUTHORS
+M      glabels2/data/predefined-labels.template
+
+commit 200f86cd136cb2efade9408858baebfcb1293f06
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-26
+
+    Added template.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@134
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/AUTHORS
+M      glabels1/data/predefined-labels.template
+
+commit 1282b07f72de900661dc4b3d8d11efca5a314b00
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-25
+
+    view_text and view_barcode dialogs now track changes to label's
+    merge properties.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@133
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label-object.c
+M      glabels2/src/label.c
+M      glabels2/src/label.h
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-text.c
+M      glabels2/src/wdgt-bc-data.c
+M      glabels2/src/wdgt-bc-data.h
+M      glabels2/src/wdgt-text-entry.c
+M      glabels2/src/wdgt-text-entry.h
+
+commit 3d67bfa8cac66e625a4aa1d00c867215ed1cc9b9
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-23
+
+    Added callbacks to track "moved" signals of label objects and update
+    property dialogs.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@132
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-image.c
+M      glabels2/src/view-line.c
+M      glabels2/src/view-text.c
+
+commit af9ffce2cdf1661abfb7268bf5e96981ee7c4097
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-23
+
+    Additional dialogs and widgets migrated to use HIG module.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@131
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-image.c
+M      glabels2/src/wdgt-bc-data.c
+M      glabels2/src/wdgt-bc-data.h
+M      glabels2/src/wdgt-bc-props.c
+M      glabels2/src/wdgt-bc-props.h
+M      glabels2/src/wdgt-bc-style.c
+M      glabels2/src/wdgt-bc-style.h
+
+commit ffda9a42e2bc020470ddd824f3ae041c2ce9daa3
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-22
+
+    HIG applied to more dialogs.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@130
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/file.c
+M      glabels2/src/merge-properties.c
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-image.c
+M      glabels2/src/view-line.c
+M      glabels2/src/view-text.c
+M      glabels2/src/wdgt-position.c
+M      glabels2/src/wdgt-size.c
+M      glabels2/src/wdgt-size.h
+M      glabels2/src/wdgt-text-entry.c
+M      glabels2/src/wdgt-text-entry.h
+M      glabels2/src/wdgt-vector.c
+M      glabels2/src/wdgt-vector.h
+
+commit f35c12acd7a9f4347fbcddf7a45263e281441faa
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-21
+
+    Incorporated use of HIG into prefs_dialog, view_text and related
+    widgets.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@129
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/hig.c
+M      glabels2/src/hig.h
+M      glabels2/src/merge-properties.c
+M      glabels2/src/merge-properties.h
+M      glabels2/src/merge-ui.c
+M      glabels2/src/prefs-dialog.c
+M      glabels2/src/prefs-dialog.h
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-image.c
+M      glabels2/src/view-line.c
+M      glabels2/src/view-text.c
+M      glabels2/src/wdgt-fill.c
+M      glabels2/src/wdgt-fill.h
+M      glabels2/src/wdgt-line.c
+M      glabels2/src/wdgt-line.h
+M      glabels2/src/wdgt-position.c
+M      glabels2/src/wdgt-position.h
+M      glabels2/src/wdgt-text-entry.c
+M      glabels2/src/wdgt-text-entry.h
+M      glabels2/src/wdgt-text-props.c
+M      glabels2/src/wdgt-text-props.h
+
+commit 0386a5863488324dc75098d1cddca78afe34feb3
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-20
+
+    Removed generic full-page alias from predefined-templates, because
+    these are now generated in code automatically.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@128
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/data/predefined-labels.template
+
+commit eb61824324658f2711ae5c832a5ec954913c990c
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-20
+
+    Added additional signals to view object to support a status bar in
+    future releases.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@127
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/marshal.list
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+
+commit 6d7d332d28475ac2f27f4259b8f00ddc790da963
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-20
+
+    More refinements to HIG module.
+    New label and print dialogs along with associated widget now use
+    HIG module.
+    Full-page labels are now named "Generic %s full page."
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@126
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/file.c
+M      glabels2/src/hig.c
+M      glabels2/src/hig.h
+M      glabels2/src/print-dialog.c
+M      glabels2/src/template.c
+M      glabels2/src/wdgt-media-select.c
+M      glabels2/src/wdgt-media-select.h
+M      glabels2/src/wdgt-print-copies.c
+M      glabels2/src/wdgt-print-copies.h
+M      glabels2/src/wdgt-print-merge.c
+M      glabels2/src/wdgt-print-merge.h
+M      glabels2/src/wdgt-rotate-label.c
+M      glabels2/src/wdgt-rotate-label.h
+
+commit 2b89542781d98e153fd7269a23109f53e5cc6416
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-20
+
+    When creating origins for labels, y is now sorted in reverse.
+    Removed inappropriate freeing of pi->template in print_info_new().
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@125
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/hig.c
+M      glabels2/src/print.c
+M      glabels2/src/template.c
+M      glabels2/src/wdgt-media-select.c
+M      glabels2/src/wdgt-mini-preview.c
+
+commit 8c77b29af12a139d89f8edf70ca6ae2458d516dd
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-19
+
+    Refinements to new label dialog and associated widgets.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@124
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/hig.h
+M      glabels2/src/wdgt-media-select.c
+M      glabels2/src/wdgt-mini-preview.c
+M      glabels2/src/wdgt-rotate-label.c
+
+commit a5323663beeb29d04dd85c1a3c0cb17bb12ce8ac
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-18
+
+    Added HIG module (hig.[ch]) to provide HIG inspired dialog and
+    layout tools.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@123
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/po/POTFILES.in
+M      glabels2/src/Makefile.am
+M      glabels2/src/alert.c
+M      glabels2/src/alert.h
+M      glabels2/src/file.c
+A      glabels2/src/hig.c
+A      glabels2/src/hig.h
+
+commit d3f4831bec333b5e6726fbd87843e2bea56f5ca2
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-17
+
+    Code cleanup.  Mostly formatting.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@122
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/mdi-child.c
+M      glabels2/src/mdi-child.h
+M      glabels2/src/mdi.c
+M      glabels2/src/mdi.h
+
+commit 3c77cbba3cb8456d4b54242c9b204159204e2ddf
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-17
+
+    Code cleanup.  Mostly formatting.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@121
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label-barcode.c
+M      glabels2/src/label-barcode.h
+M      glabels2/src/label-box.c
+M      glabels2/src/label-box.h
+M      glabels2/src/label-ellipse.c
+M      glabels2/src/label-ellipse.h
+M      glabels2/src/label-image.c
+M      glabels2/src/label-image.h
+M      glabels2/src/label-line.c
+M      glabels2/src/label-line.h
+M      glabels2/src/label-object.c
+M      glabels2/src/label-object.h
+M      glabels2/src/label-text.c
+M      glabels2/src/label-text.h
+
+commit 13e4337ed16d3c8b2b41e2fa4bb3950ff0aa60d1
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-17
+
+    Created mnemonics for spacing and border magic numbers.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@120
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/alert.c
+
+commit b284b4dd826a2f15ac82764f0438dba1da61e1ef
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-16
+
+    Misc. code cleanup.  Mostly formatting.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@119
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/label.c
+M      glabels2/src/label.h
+
+commit 8d70e8fa1820def464881c72f0bf3c47c285234d
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-16
+
+    Assorted code cleanup.  Mostly formatting.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@118
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/alert.c
+M      glabels2/src/alert.h
+M      glabels2/src/bc-gnubarcode.c
+M      glabels2/src/bc-gnubarcode.h
+M      glabels2/src/bc-postnet.c
+M      glabels2/src/bc-postnet.h
+M      glabels2/src/bc.c
+M      glabels2/src/bc.h
+M      glabels2/src/canvas-hacktext.c
+M      glabels2/src/canvas-hacktext.h
+M      glabels2/src/color.c
+M      glabels2/src/color.h
+M      glabels2/src/commands.c
+M      glabels2/src/commands.h
+M      glabels2/src/debug.c
+M      glabels2/src/debug.h
+M      glabels2/src/file.c
+M      glabels2/src/file.h
+M      glabels2/src/glabels.c
+M      glabels2/src/glabels.h
+
+commit 26bbbd8b02ac36829fe272c10d502206a95322f0
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-15
+
+    Restructured template module to ultimately support multiple layouts
+    and markups.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@117
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/Makefile.am
+M      glabels2/src/label.c
+M      glabels2/src/prefs.h
+M      glabels2/src/print.c
+M      glabels2/src/template.c
+M      glabels2/src/template.h
+M      glabels2/src/view.c
+M      glabels2/src/wdgt-media-select.c
+M      glabels2/src/wdgt-mini-preview.c
+M      glabels2/src/wdgt-print-copies.c
+M      glabels2/src/wdgt-print-merge.c
+M      glabels2/src/wdgt-rotate-label.c
+
+commit 0e23ca635af5aad404969a1e204bb3eab41b3b7f
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-13
+
+    Changed version to 1.89.2, in preparation for next release.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@116
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-    Removed unneeded whitespace from subject category in glabels.omf.in.
+M      glabels2/configure.in
 
-    Fixed some formatting bugs in glabels.xml.
+commit 77f8e365ea6d0dcc6ed5843a61c6f1855eb9708c
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-13
 
+    Moved all ui_component manipulation from mdi module to ui module.
+    gl_label_get_short_name() now removes ".glabels" extension.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@878
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@115
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/help/C/glabels.xml
-M      glabels2/help/glabels.omf.in
+M      glabels2/src/label.c
+M      glabels2/src/mdi.c
+M      glabels2/src/ui.c
+M      glabels2/src/ui.h
+M      glabels2/src/util.c
+M      glabels2/src/util.h
 
-commit fbdd5f00e6cde15930a2c9fd848bd8a6cc124208
-Author: Mario Blättermann <mariobl@gnome.org>
-Date:  2009-09-08
+commit 72740304b5fe654527808d3f6044258072607b60
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-11
 
-    Added screenshots to German docs
+    Preparation for 0.4.6 build.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@875
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@114
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-A      glabels2/help/de/figures/main-window-empty.png
-A      glabels2/help/de/figures/merge-ex1-1.png
-A      glabels2/help/de/figures/merge-ex1-2.png
-A      glabels2/help/de/figures/merge-ex1-3.png
-A      glabels2/help/de/figures/merge-ex1-4.png
-A      glabels2/help/de/figures/merge-ex2-1.png
-A      glabels2/help/de/figures/merge-ex2-2.png
-A      glabels2/help/de/figures/merge-ex2-3.png
-A      glabels2/help/de/figures/merge-ex2-4.png
-A      glabels2/help/de/figures/object-editor-sidebar.png
-A      glabels2/help/de/figures/print-copies.png
-A      glabels2/help/de/figures/print-merge.png
+M      glabels1/configure.in
 
-commit e17c32e30a18a859fcf20bd5d1b8f791e7b2b946
-Author: Mario Blättermann <mariobl@gnome.org>
-Date:  2009-09-08
+commit 39b55bb6524feb82f3ca6c9e2f98ab7d60d006fd
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-11
 
-    Updated German doc translation
+    More screwing with build environment
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@874
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@113
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/help/de/de.po
-
-commit 26a4496bb2e3fe0a4320b68147a88e0e52673f7f
-Author: Alexandre Prokoudine <alexandre.prokoudine@gmail.com>
-Date:  2009-09-08
+M      glabels1/ABOUT-NLS
+M      glabels1/ChangeLog
+M      glabels1/Makefile.am
+M      glabels1/barcode-0.98/configure
+M      glabels1/doc/C/Makefile.in
+M      glabels1/doc/Makefile.in
+M      glabels1/macros/Makefile.in
+M      glabels1/po/ChangeLog
+M      glabels1/po/de.po
+M      glabels1/po/es.po
+M      glabels1/po/fr.po
+M      glabels1/po/glabels.pot
+M      glabels1/po/ja.po
+M      glabels1/po/pl.po
+M      glabels1/po/pt_BR.po
+M      glabels1/po/zh_TW.Big5.po
+
+commit d98d777fa92fccfc6cbdb5a6af4b3bef5fa4e8d5
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-10
 
-    Updated Russian translation
+    Fixed old format in APLI 1999.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@873
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@111
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/po/ru.po
+M      glabels1/data/predefined-labels.template
+M      glabels2/data/predefined-labels.template
 
-commit 86a8bb0c5f86a84dc85a8238cee4e4b4c2ec895f
+commit ae0eb02a3edd2d951ec8746ae49bba85a7c68f58
 Author: Jim Evins <evins@snaught.com>
-Date:  2009-09-01
-
-    2009-08-31 Jim Evins  <evins@snaught.com>
+Date:  2002-09-10
 
-       * po/fr.po:
-               Updated french translation (Claude Paroz)
+    Additional label template acknowledgements.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@864
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@110
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/po/fr.po
+M      glabels2/AUTHORS
 
-commit 2fdeef77371533c7ae0f627fa14dd683616b8dd5
+commit eab514f92befda873f1063aa3bba749b62a77e08
 Author: Jim Evins <evins@snaught.com>
-Date:  2009-05-20
-
-    2009-05-19 Jim Evins  <evins@snaught.com>
+Date:  2002-09-10
 
-       * configure.in:
-       * po/LINGUAS:
-               Moved translation list from configure.in to po/LINGUAS.
+    Additional label templates.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@853
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@109
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/configure.in
-A      glabels2/po/LINGUAS
+M      glabels1/data/predefined-labels.template
+M      glabels2/data/predefined-labels.template
 
-commit ad91b41ce563ebe5b0fcb2a86c02d23f697c3790
+commit b97c24634fc9db3ad474626986e8f37610c2f8ef
 Author: Jim Evins <evins@snaught.com>
-Date:  2009-05-20
-
-    2009-05-19 Jim Evins  <evins@snaught.com>
+Date:  2002-09-10
 
-       * configure.in:
-       * po/zh_CN.po:
-               New Chinese translation (Careon
-               <zzbusagain@yahoo.com.cn>).
-       * AUTHORS:
-               Added above translation to acknowledgements.
+    Additional label acknowedgements.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@850
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@108
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/AUTHORS
-M      glabels2/ChangeLog
-M      glabels2/configure.in
-A      glabels2/po/zh_CN.po
+M      glabels1/AUTHORS
 
-commit d9d21f38de54637ea0713406beb5cfd93598369c
+commit fe555314711582397b57b806576b5e7cd7a32fb4
 Author: Jim Evins <evins@snaught.com>
-Date:  2009-05-18
+Date:  2002-09-10
 
-    2009-05-18 Jim Evins  <evins@snaught.com>
-
-       * src/prefs-model.c: (gl_prefs_model_load_settings):
-               Make an educated guess at locale settings when run for the
-               first time.
+    Updated russian translations, thanks to Vitaly Lipatov
+    <LAV@VL3143.spb.edu>.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@848
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@107
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/src/prefs-model.c
+M      glabels1/po/ru.po
 
-commit 19a05da1d464dc893cb20d959f1bf7ec150ad08b
+commit 570bb13750709ec3eaf631cb5efd6a3cf85612c0
 Author: Jim Evins <evins@snaught.com>
-Date:  2009-05-18
+Date:  2002-09-10
+
+    Added 16x16 menu sized images for remainder of stock icons.
 
-    Deleting file that is unused with last checkin.
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@847
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@106
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-D      glabels2/help/C/glabels-C.omf
+M      glabels2/src/stock-pixmaps/Makefile.am
+A      glabels2/src/stock-pixmaps/stock_barcode_16.png
+A      glabels2/src/stock-pixmaps/stock_box_16.png
+A      glabels2/src/stock-pixmaps/stock_ellipse_16.png
+A      glabels2/src/stock-pixmaps/stock_image_16.png
+A      glabels2/src/stock-pixmaps/stock_line_16.png
+A      glabels2/src/stock-pixmaps/stock_merge_16.png
+A      glabels2/src/stock-pixmaps/stock_text_16.png
 
-commit 1ef96f18da1704ef0fc131366b456e6dfa345f01
+commit beb3e848d55c256418165cc1ed175577f9a78330
 Author: Jim Evins <evins@snaught.com>
-Date:  2009-05-18
-
-    2009-05-17 Jim Evins  <evins@snaught.com>
+Date:  2002-09-10
 
-       * Makefile.am:
-       * configure.in:
-       * help/C/glabels-C.omf:
-       * help/C/glabels.xml:
-       * help/Makefile.am:
-       * help/de/de.po:
-       * help/glabels.omf.in:
-       * po/de.po:
-               Updated german translation, gnome-doc-utils support and
-               german translation of glabels manual (Mario Blättermann).
+    Added 16x16 menu sized images for remainder of stock icons.
+    Now uses g_free() instead of g_object_unref() on GtkIconSource --
+    it does not appear to be a GObject.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@844
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@105
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/Makefile.am
-M      glabels2/configure.in
-M      glabels2/help/C/glabels-C.omf
-M      glabels2/help/C/glabels.xml
-M      glabels2/help/Makefile.am
-A      glabels2/help/de/de.po
-A      glabels2/help/glabels.omf.in
-M      glabels2/po/de.po
+M      glabels2/src/stock.c
 
-commit d06758ddbbea33616952af7ed1f3518782e15361
+commit 9d2970c6cea4d63a62d7f53a14077be5cce6b7d2
 Author: Jim Evins <evins@snaught.com>
-Date:  2009-05-02
-
-    2009-05-01 Jim Evins  <evins@purple>
+Date:  2002-09-09
 
-       * AUTHORS:
-       * configure.in:
-       * po/ca.po:
-               Added catalan translation (David Planella).
+    Cleaned-up 24x24 icons.  Added as binary files this time.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@842
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@104
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/AUTHORS
-M      glabels2/ChangeLog
-M      glabels2/configure.in
-A      glabels2/po/ca.po
+A      glabels2/src/stock-pixmaps/stock_arrow_24.png
+A      glabels2/src/stock-pixmaps/stock_barcode_24.png
+A      glabels2/src/stock-pixmaps/stock_box_24.png
+A      glabels2/src/stock-pixmaps/stock_ellipse_24.png
+A      glabels2/src/stock-pixmaps/stock_image_24.png
+A      glabels2/src/stock-pixmaps/stock_line_24.png
+A      glabels2/src/stock-pixmaps/stock_merge_24.png
+A      glabels2/src/stock-pixmaps/stock_text_24.png
 
-commit 4ce6f965c7c56a4be543898244fd8f330a3ecd24
+commit 773b3be17816ba9e5a1fe675d8c32aa3c224d498
 Author: Jim Evins <evins@snaught.com>
-Date:  2009-05-01
+Date:  2002-09-09
+
+    These should be binary files.  Removing.
 
-    Release 2.2.5
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/tags/glabels-2_2_5@841
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@103
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-commit b26cfcc7d50b6980fae589120ccca4f2348642d0
-Author: Jim Evins <evins@snaught.com>
-Date:  2009-04-30
+D      glabels2/src/stock-pixmaps/stock_arrow_24.png
+D      glabels2/src/stock-pixmaps/stock_barcode_24.png
+D      glabels2/src/stock-pixmaps/stock_box_24.png
+D      glabels2/src/stock-pixmaps/stock_ellipse_24.png
+D      glabels2/src/stock-pixmaps/stock_image_24.png
+D      glabels2/src/stock-pixmaps/stock_line_24.png
+D      glabels2/src/stock-pixmaps/stock_merge_24.png
+D      glabels2/src/stock-pixmaps/stock_text_24.png
 
-    2009-04-29 Jim Evins  <evins@purple>
+commit 19d085ed916b8652d2dd9fe3b18204bf6d66add8
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-09
 
-       * NEWS:
-       * configure.in:
-       * docs/libglabels/libglabels-decl-list.txt:
-       * gtk-doc.make:
-       * src/ui-commands.c: (gl_ui_cmd_help_about):
-               Prepare for 2.2.5 release.
+    Added 16x16 icon for GL_STOCK_ARROW
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@840
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@102
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/NEWS
-M      glabels2/configure.in
-M      glabels2/docs/libglabels/libglabels-decl-list.txt
-M      glabels2/gtk-doc.make
-M      glabels2/src/ui-commands.c
+M      glabels2/src/stock-pixmaps/Makefile.am
+A      glabels2/src/stock-pixmaps/stock_arrow_16.png
 
-commit b3db239b39cf13a96008574884f25f4c3e57d5c3
+commit ba5fd945cba4073b4947d9a072aaf63cbc712b80
 Author: Jim Evins <evins@snaught.com>
-Date:  2009-04-30
-
-    2009-04-29 Jim Evins  <evins@purple>
+Date:  2002-09-09
 
-       * data/templates/avery-iso-templates.xml:
-       * data/templates/misc-iso-templates.xml:
-       * data/templates/misc-us-templates.xml:
-               Make sure new descriptions are marked translatable.
+    Created add_icons() and added code to add both 24x24 and 16x16 icons
+    for a given stock id.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@839
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@101
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/data/templates/avery-iso-templates.xml
-M      glabels2/data/templates/misc-iso-templates.xml
-M      glabels2/data/templates/misc-us-templates.xml
+M      glabels2/src/stock.c
 
-commit 4443dc5d0c2546a028a9cfef97d6ca40a3833d1c
+commit 3ccfe15fdc1e7820db6b4f4936a014dd01ee755e
 Author: Jim Evins <evins@snaught.com>
-Date:  2009-04-30
+Date:  2002-09-08
 
-    2009-04-29 Jim Evins  <evins@purple>
-
-       * data/templates/avery-iso-templates.xml:
-       * data/templates/misc-iso-templates.xml:
-       * data/templates/misc-us-templates.xml:
-               Caught up on user submitted templates.
-       * AUTHORS:
-               Acknowledgements for above templates.
+    Fixed capitalization in labels and tips.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@837
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@100
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/AUTHORS
-M      glabels2/ChangeLog
-M      glabels2/data/templates/avery-iso-templates.xml
-M      glabels2/data/templates/misc-iso-templates.xml
-M      glabels2/data/templates/misc-us-templates.xml
+M      glabels2/src/glabels-ui.xml
 
-commit 23c906e6a07f047e932d1812be7668e1b312ad5f
+commit da26567e0080273482f19fc8116e5940a7271626
 Author: Jim Evins <evins@snaught.com>
-Date:  2009-04-30
-
-    2009-04-29 Jim Evins  <evins@purple>
+Date:  2002-09-08
 
-       * po/de.po:
-               Updated german translation (Mario Blättermann).
+    Now uses the new XML parser from libxml.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@836
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@99
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-D      glabels2/po/ChangeLog
-M      glabels2/po/de.po
+M      glabels1/src/label.c
 
-commit 30da2882aea0fedfe88020c61dc642beee5a0a9d
+commit b6b9ceb0a16e3ab214ecfcbd7bb1f90db555ce29
 Author: Jim Evins <evins@snaught.com>
-Date:  2009-04-29
-
-    2009-04-29 Jim Evins  <evins@purple>
+Date:  2002-09-08
 
-       * src/color.c: (gl_color_to_gdk_color), (gl_color_from_gdk_color):
-       * src/mygal/widget-color-combo.c: (color_combo_new):
-       * src/object-editor.c: (gl_object_editor_construct_color_combo):
-       * src/ui-property-bar.c:
-       (gl_ui_property_bar_construct_color_combo):
-               Bug #2760830.  Display correct preview color in color
-               combos when default
-               color selected.
+    Changed libxml requirement from 1.8.10 to 1.8.11 to enable the use
+    of the new XML parser.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@834
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@98
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/src/color.c
-M      glabels2/src/mygal/widget-color-combo.c
-M      glabels2/src/object-editor.c
-M      glabels2/src/ui-property-bar.c
+M      glabels1/configure.in
 
-commit 987a9259d51cfe2fbbed149ded2e93c92e0b17ad
+commit 9f3fc6353c66abc095b64de6b62b6ad83c853b9c
 Author: Jim Evins <evins@snaught.com>
-Date:  2009-04-29
-
-    2009-04-28 Jim Evins  <evins@purple>
+Date:  2002-09-07
 
-       * data/glade/object-editor.glade:
-       * data/glade/prefs-dialog.glade:
-       * data/glade/property-bar.glade:
-       * data/glade/template-designer.glade:
-       * src/wdgt-print-copies.c: (gl_wdgt_print_copies_construct),
-       (first_spin_cb), (last_spin_cb):
-       * src/wdgt-print-merge.c: (gl_wdgt_print_merge_construct):
-               Zero out adjustment->page_size for all spinbuttons.
-               With gtk-2.14 this causes
-               many warning and with gtk-2.16 this actually breaks
-               the spinbuttons.
+    Added rotate and flip properties with default values to objects for
+    compatability with future versions.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@833
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@97
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/data/glade/object-editor.glade
-M      glabels2/data/glade/prefs-dialog.glade
-M      glabels2/data/glade/property-bar.glade
-M      glabels2/data/glade/template-designer.glade
-M      glabels2/src/wdgt-print-copies.c
-M      glabels2/src/wdgt-print-merge.c
+M      glabels2/src/xml-label.c
 
-commit ad51cdd46a8bdcb13c0bc4637e81a6d1e80de92c
+commit 81266e4d3be7a20712e9946d3014dcb35db2119f
 Author: Jim Evins <evins@snaught.com>
-Date:  2009-01-08
-
-    2009-01-07 Jim Evins  <evins@snaught.com>
+Date:  2002-09-07
 
-       * src/critical-error-handler.c: (critical_error_handler):
-       * src/ui-commands.c: (gl_ui_cmd_help_contents):
-       * src/warning-handler.c: (warning_handler):
-       * src/view.c: (selection_received_cb):
-               Compile without warning with additional CFLAGS of
-               -O1 -Wall -Wformat=2.
+    Added view controls for drawing toolbar.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@822
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@96
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/src/critical-error-handler.c
-M      glabels2/src/ui-commands.c
-M      glabels2/src/view.c
-M      glabels2/src/warning-handler.c
+M      glabels2/src/glabels-ui.xml
+M      glabels2/src/mdi.c
+M      glabels2/src/prefs.c
+M      glabels2/src/prefs.h
 
-commit fad7d2c766ab31ac4f083557d6543ef30fa84115
+commit fc89f960f997273d08f66e6248d5dc9381b1bd61
 Author: Jim Evins <evins@snaught.com>
-Date:  2009-01-03
-
-    2009-01-02 Jim Evins  <evins@snaught.com>
+Date:  2002-09-07
 
-       * COPYING.README_FIRST:
-               Fixed typo.
+    Cleanup of selection code.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@820
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@95
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/COPYING.README_FIRST
-M      glabels2/ChangeLog
+M      glabels2/src/view.c
+M      glabels2/src/view.h
 
-commit 273e96234241a73a9e1f81de1ea691109025f189
+commit a8ff7374b838357bf095f00079fa72004008603a
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-12-28
-
-    2008-12-27 Jim Evins  <evins@snaught.com>
+Date:  2002-09-06
 
-       * data/templates/avery-iso-templates.xml:
-       * data/templates/avery-other-templates.xml:
-       * data/templates/avery-us-templates.xml:
-       * data/templates/brother-other-templates.xml:
-       * data/templates/misc-iso-templates.xml:
-       * data/templates/misc-other-templates.xml:
-       * data/templates/zweckform-iso-templates.xml:
-               Make sure all descriptions are marked as translatable.
+    Renamed menus module to ui.
+    Added "selection_changed" signal to view.
+    Added adjustments to sensitivity of menu items based on selection
+    state.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@818
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@94
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/data/templates/avery-iso-templates.xml
-M      glabels2/data/templates/avery-other-templates.xml
-M      glabels2/data/templates/avery-us-templates.xml
-M      glabels2/data/templates/brother-other-templates.xml
-M      glabels2/data/templates/misc-iso-templates.xml
-M      glabels2/data/templates/misc-other-templates.xml
-M      glabels2/data/templates/zweckform-iso-templates.xml
+M      glabels2/po/POTFILES.in
+M      glabels2/src/Makefile.am
+M      glabels2/src/mdi.c
+D      glabels2/src/menus.h
+R070   glabels2/src/menus.c    glabels2/src/ui.c
+A      glabels2/src/ui.h
+M      glabels2/src/view.c
 
-commit f7097587f69419775838221b7d93d2b84d10ca53
+commit 047594ad3ee781d2321ae81b1889b618771a4725
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-12-28
+Date:  2002-09-06
 
-    2008-12-27 Jim Evins  <evins@snaught.com>
+    Rearranged app menus.
+    Added "Object properties" and "raise/lower selection" to app menus.
+    Some cleanup of view.[ch]
 
-       * de.po:
-               Updated german translation (Mario Blättermann)
-       * AUTHORS:
-               Updated credits to reflect above translation.
-       * data/glade/object-editor.glade:
-       * data/glade/prefs-dialog.glade:
-       * data/glade/template-designer.glade:
-               Removed "translatable" attribute from whitespace strings,
-               which are used only to help layout.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@93
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/glabels-ui.xml
+M      glabels2/src/menus.c
+M      glabels2/src/tools.c
+M      glabels2/src/tools.h
+M      glabels2/src/view.c
+M      glabels2/src/view.h
+
+commit d50f26d829f665b021624ed83de4b4bea93f2c7c
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-05
+
+    Added additional alerts and information to existing alerts.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@816
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@92
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/AUTHORS
-M      glabels2/ChangeLog
-M      glabels2/data/glade/object-editor.glade
-M      glabels2/data/glade/prefs-dialog.glade
-M      glabels2/data/glade/template-designer.glade
-M      glabels2/po/de.po
+M      glabels2/src/file.c
 
-commit fcaa5234cf2768a9167bc29a2875c56a146017a9
+commit 7f819d54a20703d03c930d1455776dacee3252a5
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-12-22
-
-    2008-12-22 Jim Evins  <evins@snaught.com>
+Date:  2002-09-04
 
-       * NEWS:
-       * configure.in:
-               Prepare for 2.2.4 release.
+    Removed extraneous include.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@812
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@91
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/NEWS
-M      glabels2/configure.in
+M      glabels2/src/alert.h
 
-commit 1a93a81faad1793bf17bef90238180aa748ee2aa
+commit 8e701e7945f5aa67b12996889c5b5e57dcef56a3
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-12-22
+Date:  2002-09-04
 
-    2008-12-21 Jim Evins  <evins@snaught.com>
-
-       * data/templates/avery-us-templates.xml:
-       * data/templates/misc-iso-templates.xml:
-               A couple of recent template submissions.
-       * AUTHORS:
-               Acknowledgements for above templates.
+    Moved HIG inspired alert dialog to its own module (alert.[ch])
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@810
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@90
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/AUTHORS
-M      glabels2/ChangeLog
-M      glabels2/data/templates/avery-us-templates.xml
-M      glabels2/data/templates/misc-iso-templates.xml
+A      glabels2/src/alert.c
+A      glabels2/src/alert.h
 
-commit eb69c885bee022e5617b4c99e7f6b34de68965a3
+commit 1f96e4e8cf4e39298501708c269654283779b80b
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-12-21
+Date:  2002-09-04
 
-    2008-12-21 Jim Evins  <evins@snaught.com>
-
-       * src/view.c: (motion_notify_event_cb), (button_press_event_cb):
-               Don't check for handles on aggregate selections.
+    Replaced hardcoded object defaults with defaults from prefs module.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@808
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@89
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/src/view.c
+M      glabels2/src/Makefile.am
+M      glabels2/src/color.c
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-image.c
+M      glabels2/src/view-line.c
+M      glabels2/src/view-text.c
 
-commit f87acc99c19ad66b78d6293e887412220a64f189
+commit 076dbabb5fc635eddd38a863379c5ebe5becd9b5
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-12-19
-
-    2008-12-18 Jim Evins  <evins@snaught.com>
+Date:  2002-09-04
 
-       * src/view.c: (selection_received_cb):
-               Fixed paste bug that caused a duplicate phantom
-               view_object to be created for
-               each new label_object.  This is because the view now
-               (as of r673) the view
-               monitiors the label for new objects and creates
-               view_objects automatically.
+    Moved color utilities to separate module (color.[ch])
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@803
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@88
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
+M      glabels2/po/POTFILES.in
+M      glabels2/src/Makefile.am
+A      glabels2/src/color.c
+A      glabels2/src/color.h
+M      glabels2/src/print-dialog.c
+M      glabels2/src/print.c
 M      glabels2/src/view.c
+M      glabels2/src/wdgt-bc-props.c
+M      glabels2/src/wdgt-fill.c
+M      glabels2/src/wdgt-line.c
+M      glabels2/src/wdgt-mini-preview.c
+M      glabels2/src/wdgt-text-props.c
 
-commit 033d3d8b724a44306ab3be30b26a39153d3b44bd
+commit 6d2286e67a93ba8c7572f47a457202a98136dd71
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-12-15
-
-    2008-12-14 Jim Evins  <evins@snaught.com>
+Date:  2002-09-04
 
-       * po/POTFILES.in:
-               Bug #2395628.  Reconciled POTFILES.in with current files.
+    Moved HIG inspired alert dialog to its own module (alert.[ch]).
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@802
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@87
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
 M      glabels2/po/POTFILES.in
 
-commit 85256c10a275c37d1efaa115840f0b7bb1f3d171
+commit 875fcf95a3cde43f575c76f5b402b0d72e9cd39b
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-12-15
-
-    2008-12-14 Jim Evins  <evins@snaught.com>
+Date:  2002-09-04
 
-       * src/ui.c: (gl_ui_new):
-               Bug #2395628.  Fixed i18n for application shell.
+    Moved HIG inspired alert dialog to its own module (alert.[ch]).
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@800
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@86
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/src/ui.c
+M      glabels2/src/Makefile.am
+M      glabels2/src/file.c
+M      glabels2/src/mdi.c
+M      glabels2/src/print.c
+M      glabels2/src/util.c
+M      glabels2/src/util.h
 
-commit c8f375d7e8aebd472353953976a629730c857978
+commit 803af36e65ebb3bf36eee95c95fba454d3f1b66d
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-12-15
-
-    2008-12-14 Jim Evins  <evins@snaught.com>
+Date:  2002-09-03
 
-       * configure.in:
-               Bug #2316013.  Added PKG_PROG_PKG_CONFIG.
+    Added GNOME_COMMON_INIT macro.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@798
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@85
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/configure.in
+M      glabels2/aclocal.m4
 
-commit b4abc77732a4daf5ada4cd4da0f945453380db7e
+commit 1762ac3c02393c943529ee331c102f094903c5ff
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-11-16
-
-    2008-11-15 Jim Evins  <evins@snaught.com>
+Date:  2002-09-03
 
-       * libglabels/db.c: (lgl_db_register_template):
-       * libglabels/xml-template.c:
-       (lgl_xml_template_parse_template_node):
-       * src/glabels-batch.c:
-       * src/view-text.c: (gl_view_text_create_button_press_event):
-               Fixed several issues such as possible use of uninitialized
-               variables found with "-O1 -Wall".
+    Added GNOME_PROGRAM_STANDARD_PROPERTIES.
+    Removed configuration artifacts from 0.4.x.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@795
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@84
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/libglabels/db.c
-M      glabels2/libglabels/xml-template.c
+M      glabels2/src/commands.c
 M      glabels2/src/glabels-batch.c
-M      glabels2/src/view-text.c
+M      glabels2/src/glabels.c
+M      glabels2/src/splash.c
+M      glabels2/src/template.c
 
-commit eab7333647b997218395f4f30a5a6a18705c7f7c
+commit d409fcb505f6db88e47b2a1ed4fdbda9d45515eb
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-11-10
+Date:  2002-09-03
 
-    2008-11-09 Jim Evins  <evins@snaught.com>
+    Added GNOME_COMMON_INIT macro.
+    Removed configuration artifacts from 0.4.x.
+    Added minimum Bonobo version.
 
-       * data/templates/misc-iso-templates.xml:
-               Another user submitted template.
 
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@83
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/acconfig.h
+M      glabels2/configure.in
+
+commit 4e09a8aa2cd791c88b13a6e2f93d07033fdfaeb6
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-03
+
+    Had neglected to run some of the warning/error dialogs.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@793
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@82
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/data/templates/misc-iso-templates.xml
+M      glabels2/src/file.c
 
-commit 0fa94b3a05a329adf9ca6b52ca41b56b24e12766
+commit 131d154d86af37e82cb3baf1274fcab2706a4c63
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-10-28
-
-    2008-10-27 Jim Evins  <evins@snaught.com>
+Date:  2002-09-03
 
-       * data/templates/avery-us-templates.xml:
-       * data/templates/misc-iso-templates.xml:
-       * data/templates/zweckform-iso-templates.xml:
-               Caught up on user submitted templates.
-       * AUTHORS:
-               Acknowledgements for above templates.
+    No longer changes labels filename and modification status if save
+    fails.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@789
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@81
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/AUTHORS
-M      glabels2/ChangeLog
-M      glabels2/data/templates/avery-us-templates.xml
-M      glabels2/data/templates/misc-iso-templates.xml
-M      glabels2/data/templates/zweckform-iso-templates.xml
+M      glabels2/src/xml-label.c
 
-commit f3330ba8ef8348e17bcbb5f236507b94b92fb504
+commit e2c278742682530e40d174451830b17e5af89e0d
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-10-24
+Date:  2002-09-03
 
-    2008-10-23 Jim Evins  <evins@snaught.com>
+    Removed TAB from authors strings -- it caused a segfault w/ AA fonts.
 
-       * src/label-text.c: (set_font_family):
-       * src/object-editor-text-page.c:
-       (gl_object_editor_prepare_text_page),
-       (gl_object_editor_set_font_family):
-       * src/prefs-dialog.c: (construct_object_page),
-       (update_object_page_from_prefs):
-       * src/ui-property-bar.c: (gl_ui_property_bar_construct),
-       (reset_to_default_properties):
-       * src/util.c: (gl_util_get_font_family_list):
-       * src/util.h:
-               Bug #1902275 and Bug #2186214.  Cache font list so that
-               it is not re-created everytime
-               the list is requested.
-       * src/object-editor-text-page.c:
-       (gl_object_editor_set_font_family):
-               Don't change font-family if it hasn't actually changed.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@80
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/src/commands.c
+
+commit 6b512fc87989f66f777aed61540f7116ab6f7f99
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-09-03
+
+    Replaced gtk_message_dialogs with a custom dialog based on the HIG.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@787
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@79
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/src/label-text.c
-M      glabels2/src/object-editor-text-page.c
-M      glabels2/src/prefs-dialog.c
-M      glabels2/src/ui-property-bar.c
+M      glabels2/src/file.c
+M      glabels2/src/mdi.c
 M      glabels2/src/util.c
 M      glabels2/src/util.h
 
-commit 6bfe40b9f5e173eae0b7176e9d0ffe3191bd0201
+commit ee1d07bf8604c5b53544f2b4afa33f3388e6eafd
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-08-30
-
-    2008-08-29 Jim Evins  <evins@snaught.com>
+Date:  2002-09-03
 
-       * src/file.c: (gl_file_open), (gl_file_save_as):
-               Bug #2069668.  Corrected button order in Open and
-               "Save as"
-               dialogs.
+    Removed close from main toolbar.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@782
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@78
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/src/file.c
+M      glabels2/src/glabels-ui.xml
 
-commit 9d1db9a86dc38a2828d571e80d2a65f6d28c8ba1
+commit 2df2624a8e2ab2434dbf08f5bd326e6a8cb9ac85
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-08-19
-
-    2008-08-18 Jim Evins  <evins@snaught.com>
+Date:  2002-09-01
 
-       * NEWS:
-       * configure.in:
-       * docs/libglabels/tmpl/paper.sgml:
-               Prepare for 2.2.3 release.
+    Added ability to import from 0.4.x
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@779
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@77
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/NEWS
-M      glabels2/configure.in
-M      glabels2/docs/libglabels/tmpl/paper.sgml
-M      glabels2/gtk-doc.make
+M      glabels2/po/POTFILES.in
 
-commit 0cb3511ff16977b4bcaed8127929171ec8560f8d
+commit 715b07ac370161b9d267bb827425797300fefae7
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-08-17
+Date:  2002-09-01
 
-    2008-08-17 Jim Evins  <evins@snaught.com>
-
-       * data/dtd/glabels-2.2.dtd:
-       * data/templates/paper-sizes.xml:
-       * libglabels/db.c: (lgl_db_init):
-       * libglabels/paper.c: (lgl_paper_new), (lgl_paper_dup),
-       (lgl_paper_free):
-       * libglabels/paper.h:
-       * libglabels/xml-paper.c: (lgl_xml_paper_parse_paper_node):
-       * src/print-op.c: (set_page_size):
-               Bug #2049431.  Always explicitely set page size.
-               Added pwg_size field (PWG 5101.1-2002
-               size specification) to the libglabels paper database to
-               allow the page size to be
-               communicated to GtkPrintOp un-ambiguously.
+    Updated german translation, thanks to Christian Neumair
+    <christian-neumair@web.de>.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@778
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@76
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/data/dtd/glabels-2.2.dtd
-M      glabels2/data/templates/paper-sizes.xml
-M      glabels2/libglabels/db.c
-M      glabels2/libglabels/paper.c
-M      glabels2/libglabels/paper.h
-M      glabels2/libglabels/xml-paper.c
-M      glabels2/src/print-op.c
+M      glabels2/po/de.po
 
-commit 1e2a5ab9232f284bda98dccaedb6016d6e5f2857
+commit 6702a0a49a3306f6ef7085fe4468cf560aeaa25c
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-07-26
-
-    2008-07-25 Jim Evins  <evins@snaught.com>
+Date:  2002-09-01
 
-       * src/object-editor-size-page.c: (size_reset_cb),
-       (gl_object_editor_set_max_size):
-               Bug #1993550.  Set size limits based on longest side
-               of label.
+    Updated german translation, thanks to Christian Neumair
+    <christian-neumair@web.de>.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@775
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@75
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/src/object-editor-size-page.c
+M      glabels2/AUTHORS
 
-commit db3c2bd3a3b02e607ae60a08f01c2a50da66d7d3
+commit 2b92b4ab70d2ba3c5b186aa2d33b4e0f192afc30
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-07-20
-
-    2008-07-19 Jim Evins  <evins@snaught.com>
+Date:  2002-09-01
 
-       * configure.in:
-       * src/mygal/Makefile.am:
-               Make sure libtool handles library dependencies for mygal
-               properly.
+    Added capability to import files created w/ 0.4.x
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@773
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@74
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/configure.in
-M      glabels2/src/mygal/Makefile.am
+M      glabels2/src/Makefile.am
+A      glabels2/src/xml-label-04.c
+C056   glabels2/src/xml-label.h        glabels2/src/xml-label-04.h
+M      glabels2/src/xml-label.c
+M      glabels2/src/xml-label.h
 
-commit d7f7d6bd6d757805359b3e997e2978c0012f54a5
+commit 40377ed17a110bfdd5315a87728eeb8813d8ec66
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-05-22
-
-    2008-05-21 Jim Evins  <evins@snaught.com>
+Date:  2002-08-28
 
-       * src/glabels-batch.c: (main):
-               Bug #1968653.  Initialize prefs subsystem in
-               glabels-batch.
+    Reconciled text object alignment algorithm with view-text.c
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@771
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@73
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/src/glabels-batch.c
+M      glabels2/src/print.c
 
-commit 72928ecdf1b1560209e55c3d64fe6e3dfaa19604
+commit c5417dc935595eeda545d0007ac89122f2a534a3
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-05-10
-
-    2008-05-09 Jim Evins  <evins@snaught.com>
+Date:  2002-08-28
 
-       * data/glade/object-editor.glade:
-               Bug #1959135.  A couple of radio buttons somehow became
-               ungrouped.
+    Changed version to 1.89.1 for next build.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@770
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@72
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/data/glade/object-editor.glade
+M      glabels2/configure.in
 
-commit bff482ebb178677634fd8f1d00d3e777d52d7ba1
+commit ee93678898dff82a84fa47c5f749378b226401b5
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-04-05
+Date:  2002-08-27
 
-    2008-04-04 Jim Evins  <evins@snaught.com>
+    More screwing w/ build environment.
 
-       * data/templates/brother-other-templates.xml:
-               Added categories to existing templates.
-       * data/templates/misc-other-templates.xml:
-               Moved dymo templates to their own file.
-       * data/templates/Makefile.am:
-       * data/templates/dymo-other-templates.xml:
-               Additional dymo templates provided by Harald Welte
-               <laforge@gnumonks.org>.
-       * AUTHORS:
-               Acknowledgement for above templates.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@70
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/Makefile.am
+
+commit 97aa1f5682152f781e6f4e2ff6d6c04772ac308c
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-08-27
+
+    Still screwing with build environment.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@765
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@69
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/AUTHORS
-M      glabels2/ChangeLog
-M      glabels2/data/templates/Makefile.am
-M      glabels2/data/templates/brother-other-templates.xml
-A      glabels2/data/templates/dymo-other-templates.xml
-M      glabels2/data/templates/misc-other-templates.xml
+M      glabels2/barcode-0.98/Makefile.in
 
-commit 77e287c50a70b8f21c1f6168e109ede934eeea15
+commit 4412efca732464e1108e0ab55f1aa641864d9212
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-03-25
-
-    2008-03-24 Jim Evins  <evins@snaught.com>
+Date:  2002-08-27
 
-       * src/xml-label.c: (xml_doc_to_label):
-               Bug #1872584.  Don't refuse to parse label file if
-               namespace is
-               unrecognized -- it may be from a newer version of glabels.
+    Still skrewing with build environment.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@764
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@68
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/src/xml-label.c
+A      glabels2/barcode-0.98/Makefile.in
 
-commit da84fe8790466157cac18eed1895cffa20d316d4
+commit c670f3531e994cb52872171e4018c525c28cff49
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-03-16
-
-    2008-03-15 Jim Evins  <evins@snaught.com>
+Date:  2002-08-27
 
-       * data/templates/Makefile.am:
-       * data/templates/brother-other-templates.xml:
-               Added brother templates.
-       * src/cairo-markup-path.c: (gl_cairo_markup_margin_rect_path),
-       (gl_cairo_markup_margin_cd_path):
-       * src/view.c: (draw_markup_layer):
-               Fixed markup drawing errors when label is rotated.
+    Skrewing with the build environment.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@761
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@67
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/data/templates/Makefile.am
-A      glabels2/data/templates/brother-other-templates.xml
-M      glabels2/src/cairo-markup-path.c
-M      glabels2/src/view.c
+D      glabels2/po/Makefile.in.in
+D      glabels2/po/glabels.pot
 
-commit 00e91e339f4184c5af3f026db6da7cb704362fb7
+commit 2990a2608a2c5b56e1377c2d15020963b08efb3a
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-03-04
-
-    2008-03-03 Jim Evins  <evins@snaught.com>
+Date:  2002-08-27
 
-       * configure.in:
-       * ko.po:
-               Added korean translation provided by xein@naver.com.
+    Skrewing with the build environment.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@759
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@66
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
+M      glabels2/acconfig.h
+A      glabels2/acinclude.m4
+M      glabels2/aclocal.m4
+A      glabels2/autogen.sh
+D      glabels2/config.h.in
 M      glabels2/configure.in
-A      glabels2/po/ko.po
-
-commit 1af444dffebbf48dd36214aee5d2e7ed8e73c8ab
+D      glabels2/install-sh
+A      glabels2/macros/Makefile.am
+A      glabels2/macros/aclocal-include.m4
+A      glabels2/macros/autogen.sh
+A      glabels2/macros/compiler-flags.m4
+A      glabels2/macros/curses.m4
+A      glabels2/macros/gnome-bonobo-check.m4
+A      glabels2/macros/gnome-common.m4
+A      glabels2/macros/gnome-cxx-check.m4
+A      glabels2/macros/gnome-fileutils.m4
+A      glabels2/macros/gnome-gettext.m4
+A      glabels2/macros/gnome-ghttp-check.m4
+A      glabels2/macros/gnome-gnorba-check.m4
+A      glabels2/macros/gnome-guile-checks.m4
+A      glabels2/macros/gnome-libgtop-check.m4
+A      glabels2/macros/gnome-objc-checks.m4
+A      glabels2/macros/gnome-orbit-check.m4
+A      glabels2/macros/gnome-pilot.m4
+A      glabels2/macros/gnome-print-check.m4
+A      glabels2/macros/gnome-pthread-check.m4
+A      glabels2/macros/gnome-support.m4
+A      glabels2/macros/gnome-undelfs.m4
+A      glabels2/macros/gnome-vfs.m4
+A      glabels2/macros/gnome-x-checks.m4
+A      glabels2/macros/gnome-xml-check.m4
+A      glabels2/macros/gnome.m4
+A      glabels2/macros/gperf-check.m4
+A      glabels2/macros/linger.m4
+A      glabels2/macros/need-declaration.m4
+A      glabels2/macros/psiconv.m4
+M      glabels2/po/Makefile.in.in
+M      glabels2/po/glabels.pot
+D      glabels2/stamp-h.in
+
+commit c40f73c9fffc049f09d5f6f5bb1565277ae43c74
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-02-22
-
-    2008-02-21 Jim Evins  <evins@snaught.com>
+Date:  2002-08-26
 
-       * src/ui.c:
-               Last minute bug fix for 2.2.2 release.
-               Fixed typo that prevented "Save" from being deactivated
-               when
-               document is not modified.
+    Added translations from 0.4.5.  Only a fraction of the strings
+    are up-to-date.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@754
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@65
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/src/ui.c
+A      glabels2/po/es.po
+A      glabels2/po/pl.po
+A      glabels2/po/ru.po
+A      glabels2/po/zh_TW.Big5.po
 
-commit c7b72805e8f9e88c788dcd8cb599b11515fac170
+commit 977b2272d62424ffc272d48aabcd38a9e37cdf3b
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-02-22
+Date:  2002-08-26
 
-    2008-02-21 Jim Evins  <evins@snaught.com>
-
-       * NEWS:
-       * configure.in:
-               Prepare for 2.2.2 release.
+    Removed configure from CVS.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@753
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@64
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/NEWS
+M      glabels2/AUTHORS
+D      glabels2/configure
 M      glabels2/configure.in
+M      glabels2/po/POTFILES.in
+M      glabels2/po/de.po
+M      glabels2/po/fr.po
+M      glabels2/po/glabels.pot
+M      glabels2/po/ja.po
+M      glabels2/po/pt_BR.po
 
-commit 104d0092d40b8bbfef6eb417fdf9ee9c568ab7e3
+commit ef9184a8d24739952072b0b36798cd27832f9515
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-02-19
-
-    2008-02-18 Jim Evins  <evins@snaught.com>
+Date:  2002-08-26
 
-       * src/prefs-model.c: (gl_prefs_model_save_settings),
-       (gl_prefs_model_load_settings):
-               Set default units for file output.
+    Added stock images to help menu items.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@751
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@63
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/src/prefs-model.c
+M      glabels2/src/glabels-ui.xml
 
-commit ef2d442e373bf8f26ff49f1d9e2e4415d3690d15
+commit 0120f8c8e53c2a3a56c73d732305b0e061303d17
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-02-18
-
-    2008-02-18 Jim Evins  <evins@snaught.com>
+Date:  2002-08-25
 
-       * help/C/glabels.xml:
-               Fixed example template.
+    Reconciled label acknowledgments with 0.4.5.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@749
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@62
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/help/C/glabels.xml
+M      glabels2/AUTHORS
 
-commit df63b87a2eb63897873851c61c1200334aaccfcb
+commit d154d0c0094506b62760d929030614e7d98c76e6
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-02-17
-
-    2008-02-16 Jim Evins  <evins@snaught.com>
+Date:  2002-08-25
 
-       * AUTHORS:
-       * data/templates/avery-iso-templates.xml:
-       * data/templates/avery-us-templates.xml:
-       * data/templates/misc-iso-templates.xml:
-       * data/templates/misc-us-templates.xml:
-               Caught up on user submitted templates.
+    Reconciled predefined labels with 0.4.5.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@747
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@61
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/AUTHORS
-M      glabels2/ChangeLog
-M      glabels2/data/templates/avery-iso-templates.xml
-M      glabels2/data/templates/avery-us-templates.xml
-M      glabels2/data/templates/misc-iso-templates.xml
-M      glabels2/data/templates/misc-us-templates.xml
+M      glabels2/data/predefined-labels.template
 
-commit bb17382205e5bae69c7dc96e394b2da864ef3645
+commit ea716fa1d1cfce77cb991fec2ac3ca2f37aa5a4e
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-02-05
-
-    2008-02-04 Jim Evins  <evins@snaught.com>
+Date:  2002-08-25
 
-       * src/view-image.c: (update_object_from_editor_cb):
-               Bug #1886438.  Don't update the image size unless it
-               is actually
-               triggered by a change in image source.  The result of
-               this bug
-               was that any attempt to edit the size spinboxes,
-               immediately
-               reset the size.
+    Added gl_view_raise_fg() to keep foreground objects on top.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@745
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@60
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/src/view-image.c
+M      glabels2/src/view-highlight.c
+M      glabels2/src/view-object.c
+M      glabels2/src/view.c
+M      glabels2/src/view.h
 
-commit cd2b98740455cb7a60925aa093fce003ecc8be81
+commit 262192e1efcac9209a70417db855de98d6a834a2
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-02-03
-
-    2008-02-03 Jim Evins  <evins@snaught.com>
+Date:  2002-08-25
 
-       * src/label-image.c: (gl_label_image_class_init), (set_size):
-               Enforce minimum size for images.
+    Added foreground label outlines.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@744
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@59
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/src/label-image.c
+M      glabels2/src/view-object.c
+M      glabels2/src/view.c
+M      glabels2/src/view.h
 
-commit 16f9c5076bfe01daba6a98a6572cee8e69d6375e
+commit 6320b644115c2c0b78cc68794b482aec3db5a8ac
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-02-03
-
-    2008-02-03 Jim Evins  <evins@snaught.com>
+Date:  2002-08-25
 
-       * src/object-editor-lsize-page.c:
-       (gl_object_editor_set_max_lsize):
-       * src/object-editor-private.h:
-       * src/object-editor-shadow-page.c:
-       (gl_object_editor_set_max_shadow_offset):
-       * src/object-editor-size-page.c: (gl_object_editor_set_max_size):
-       * src/object-editor.c: (gl_object_editor_finalize),
-       (gl_object_editor_new), (gl_object_notebook_construct_valist),
-       (label_changed_cb):
-       * src/object-editor.h:
-       * src/ui-sidebar.c: (gl_ui_sidebar_construct):
-       * src/view-barcode.c: (construct_properties_editor):
-       * src/view-box.c: (construct_properties_editor):
-       * src/view-ellipse.c: (construct_properties_editor):
-       * src/view-image.c: (construct_properties_editor):
-       * src/view-line.c: (construct_properties_editor):
-       * src/view-object.c: (gl_view_object_finalize):
-       * src/view-text.c: (construct_properties_editor):
-               Move update_editor_from_label callback from individual
-               view objects
-               to the object editor, so that signals can be disconnected
-               when
-               object editor is finalized.
-       * src/view-text.c: (gl_view_text_create_button_press_event):
-               Fixed bug that caused multiple view objects to be created
-               for a
-               single text object.  This bug would manifest itself as
-               a crash
-               when deleting multi-object selections which included
-               text objects.
+    Now unlinks output file to prevent an attempt to pop-up a dialog
+    asking to remove it -- since we don't do a gnome_init, this would
+    segfault.
+    Added a setlocale at initialization.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@742
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@57
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/src/object-editor-lsize-page.c
-M      glabels2/src/object-editor-private.h
-M      glabels2/src/object-editor-shadow-page.c
-M      glabels2/src/object-editor-size-page.c
-M      glabels2/src/object-editor.c
-M      glabels2/src/object-editor.h
-M      glabels2/src/ui-sidebar.c
-M      glabels2/src/view-barcode.c
-M      glabels2/src/view-box.c
-M      glabels2/src/view-ellipse.c
-M      glabels2/src/view-image.c
-M      glabels2/src/view-line.c
-M      glabels2/src/view-object.c
-M      glabels2/src/view-text.c
+M      glabels1/src/glabels_batch.c
 
-commit 975cf2793e52a80c09f558064e0987d238b99edf
+commit f488ddcd9c3a3ff60e25a9f98b4b5b6219c28864
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-02-01
-
-    2008-01-31 Jim Evins  <evins@snaught.com>
+Date:  2002-08-25
 
-       * src/label-barcode.c: (draw_object):
-               Fixed rendering problem when "Invalid data" is displayed
-               when text
-               object is lower in stacking order.
+    Additional label templates.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@739
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@56
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/src/label-barcode.c
+M      glabels1/AUTHORS
+M      glabels1/data/predefined-labels.template
 
-commit 4908a24dc1a5d597a853a4806e791f78b522fafd
+commit efbdf799f29c02a8933c8102af43847603dc82d8
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-01-31
+Date:  2002-08-25
 
-    2008-01-30 Jim Evins  <evins@snaught.com>
+    Added polish translations submitted by Arkadiusz Lipiec
+    <A.Lipiec@elka.pw.edu.pl>.
 
-       * src/label-text.c: (get_size), (draw_object), (draw_shadow):
-               Don't turn off cairo_hint_metrics.  This causes serious
-               issues with
-               bitmap fonts.
 
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@55
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/AUTHORS
+M      glabels1/configure.in
+A      glabels1/po/pl.po
+
+commit 2bdecc249c87e1513a6c27404e79058e8e61be3a
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-08-25
+
+    Added chinese (zh_TW.Big5) translations submitted by Shell, Hin-lik
+    Hung <shell@home.shellhung.org>.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@737
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@54
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/src/label-text.c
+M      glabels1/configure.in
+A      glabels1/po/zh_TW.Big5.po
 
-commit c173c24c951943fbdf0a5ecf35b84815ac736fcb
+commit 12a432eefc8f1b5a0166e39b72d638358036e204
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-01-30
-
-    2008-01-29 Jim Evins  <evins@snaught.com>
+Date:  2002-08-24
 
-       * src/print-op.c: (gl_print_op_construct),
-       (gl_print_op_construct_batch), (set_page_size):
-               Explicitly set page size for "other" page sizes.
+    Replaced gdk_mbstowcs with mbstowcs from stdlib.h. Gdk_mbstowcs is
+    broken in locales that do not use multi-byte characters and any LC_*
+    environmental variables are set.  This caused problems for Mandrake
+    8.x users (and probably others too).
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@735
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@53
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/src/print-op.c
+M      glabels1/src/hack.c
 
-commit 28c8daaa0657de9c8894a5c9bbad604c8a8a6013
+commit ea69a794bd98b9fa327f20b3a288d71ed7565d1f
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-01-26
-
-    2008-01-25 Jim Evins  <evins@snaught.com>
+Date:  2002-08-24
 
-       * src/bc.c:
-               Fixed Code128C backend parameters.
-       * src/label-barcode.c: (get_size):
-               Bug #1766425.  If barcode is not renderable with either
-               input data or default data, use a default size.  Also
-               fixed small leak.
+    Changed version in preparation for 0.4.5.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@732
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@52
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/src/bc.c
-M      glabels2/src/label-barcode.c
+M      glabels1/configure.in
 
-commit 5042beae2d6a1d83f2d0178fe97636b99bedde17
+commit 198960004f4ccabf2a2485fb803f59e33192b2dd
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-01-23
-
-    2008-01-22 Jim Evins  <evins@snaught.com>
+Date:  2002-08-24
 
-       * NEWS:
-       * configure.in:
-               Preparation for 2.2.1 release.
+    Changed TODO to reflect that current efforts are on the 2.0 codebase.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@728
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@51
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/NEWS
-M      glabels2/configure.in
+M      glabels1/TODO
 
-commit 147a21ba6c21f68b40654752182f6bbf55d06f2a
+commit 841ca2ab492e342989338eb4ef485ff8d8d3a0ad
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-01-17
+Date:  2002-08-24
 
-    2008-01-16 Jim Evins  <evins@snaught.com>
-
-       * src/print.c: (print_label):
-               Bug #1872568.  Don't apply special transforms (rotate and
-               mirror) to clipping region or outline.
+    Removed .gmo files from CVS.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@726
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@50
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/src/print.c
+D      glabels1/po/de.gmo
+D      glabels1/po/es.gmo
+D      glabels1/po/fr.gmo
+D      glabels1/po/ja.gmo
+D      glabels1/po/pt_BR.gmo
 
-commit 512e3c088acd3f8a14d8152f7318cbbf17a3cdd8
+commit 5774e7a6a5c50f5830d1b3b34b1a9d713ad02b80
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-01-02
+Date:  2002-08-24
 
-    2008-01-01 Jim Evins  <evins@snaught.com>
-
-       * src/util.c:
-               Sort font lists alphabetically.
+    Updated japanese translations submitted by Takeshi Aihana
+    <aihana@gnome.gr.jp>.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@724
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@49
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/src/util.c
+M      glabels1/po/ja.po
 
-commit 655ca82e016d106d6d884ef2caf8f0434f14221a
+commit 70f2265289a107abd5564ece58adf22219e2285e
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-01-02
-
-    2008-01-01 Jim Evins  <evins@snaught.com>
+Date:  2002-08-24
 
-       * src/merge-evolution.c:
-               Do a case-insensitive sort.
+    Added russian translations submitted by Vitaly Lipatov
+    <LAV@VL3143.spb.edu>.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@722
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@48
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/src/merge-evolution.c
+M      glabels1/AUTHORS
+M      glabels1/configure.in
+A      glabels1/po/ru.po
 
-commit 84dd6ce9eb82d51fefcc0f77a104adbf786feea1
+commit d2d63a08021ef50eff2d98b5f5d6e4973a361577
 Author: Jim Evins <evins@snaught.com>
-Date:  2008-01-02
+Date:  2002-08-24
 
-    2008-01-01 Jim Evins  <evins@snaught.com>
+    Makefile.in should not be in CVS.
 
-       * src/merge-evolution.c:
-               Sort evolution by "file_under" field.  Original patch
-               provided
-               by Peter Cherriman <glabels-devel2712@bubieyehyeh.me.uk>
-               in
-               Patch #1860423.
-       * AUTHORS:
-               Added acknowledgement for above patch.
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@47
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+D      glabels2/barcode-0.98/Makefile.in
+
+commit 893b8caa6be07c5e0621afbe3e698e74419807e5
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-08-24
+
+    Makefile.in should not be in CVS.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@720
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@46
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/AUTHORS
-M      glabels2/ChangeLog
-M      glabels2/src/merge-evolution.c
+D      glabels2/Makefile.in
+D      glabels2/src/Makefile.in
+D      glabels2/src/pixmaps/Makefile.in
+D      glabels2/src/stock-pixmaps/Makefile.in
 
-commit dce85299fd3989e6636675c39317c7280592d86b
+commit 8b0fc0a0d2be983a5e663b720a626e39a376c0a7
 Author: Jim Evins <evins@snaught.com>
-Date:  2007-12-25
-
-    2007-12-25 Jim Evins  <evins@snaught.com>
+Date:  2002-08-24
 
-       * glabels.spec.in:
-               Fix spec file.
+    No longer emits "changed" when initially clicking the font family
+    combobox.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@715
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@45
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-M      glabels2/glabels.spec.in
+M      glabels2/src/wdgt-text-props.c
 
-commit c8dd36d8d3c61487c28560d11f52310d655ab72a
+commit 84a5fe2c73ed0ecd311133364f5e53d336cdc122
 Author: Jim Evins <evins@snaught.com>
-Date:  2007-12-25
-
-    2007-12-25 Jim Evins  <evins@snaught.com>
+Date:  2002-08-23
 
-       * MESSAGE-OF-DOOM:
-               Removed for 2.2 stable branch.
-       * Makefile.am:
-       * NEWS:
-       * configure.in:
-               Prepare for 2.2.0 release.
+    Changed event->button.* to event->motion.* when handling
+    GTK_MOTION_NOTIFY events.
 
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@714
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@44
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-M      glabels2/ChangeLog
-D      glabels2/MESSAGE-OF-DOOM
-M      glabels2/Makefile.am
-M      glabels2/NEWS
-M      glabels2/configure.in
+M      glabels2/src/view-barcode.c
+M      glabels2/src/view-box.c
+M      glabels2/src/view-ellipse.c
+M      glabels2/src/view-highlight.c
+M      glabels2/src/view-image.c
+M      glabels2/src/view-line.c
+M      glabels2/src/view-text.c
 
-commit ea75118a021e733fa7e2281456581dab61d9c811
+commit b9ef933e41e55b79e7fb7c906810923082ad326d
 Author: Jim Evins <evins@snaught.com>
-Date:  2007-12-25
+Date:  2002-08-23
+
+    Removed cvswrappers.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@43
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels2/Makefile.in
+M      glabels2/barcode-0.98/doc/barcode.info
+M      glabels2/barcode-0.98/doc/barcode.pdf
+M      glabels2/barcode-0.98/doc/barcode.ps
+M      glabels2/barcode-0.98/doc/barcodedoc.txt
+D      glabels2/cvswrappers
+M      glabels2/src/Makefile.in
+M      glabels2/src/pixmaps/Makefile.in
+M      glabels2/src/stock-pixmaps/Makefile.in
+
+commit c1f2e6b6e372d0f62945aa26835780039ead7907
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-08-21
+
+    Initial revision
 
-    Creating glabels-2.2 branch.
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@713
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@39
     f5e0f49d-192f-0410-a22d-a8d8700d0965
 
 A      glabels2/AUTHORS
 A      glabels2/COPYING
-A      glabels2/COPYING-DOCS
-A      glabels2/COPYING-LIBGLABELS
-A      glabels2/COPYING.README_FIRST
 A      glabels2/ChangeLog
 A      glabels2/INSTALL
-A      glabels2/MESSAGE-OF-DOOM
 A      glabels2/Makefile.am
+A      glabels2/Makefile.in
 A      glabels2/NEWS
 A      glabels2/README
 A      glabels2/TODO
-A      glabels2/autogen.sh
+A      glabels2/acconfig.h
+A      glabels2/aclocal.m4
 A      glabels2/barcode-0.98/COPYING
 A      glabels2/barcode-0.98/ChangeLog
 A      glabels2/barcode-0.98/INSTALL
-A      glabels2/barcode-0.98/Makefile.am
-A      glabels2/barcode-0.98/Makefile.in.dist
+A      glabels2/barcode-0.98/Makefile.in
 A      glabels2/barcode-0.98/README
-A      glabels2/barcode-0.98/README.glabels
 A      glabels2/barcode-0.98/TODO
 A      glabels2/barcode-0.98/barcode.h
 A      glabels2/barcode-0.98/barcode.spec
@@ -2799,7 +25024,7 @@ A        glabels2/barcode-0.98/code93.c
 A      glabels2/barcode-0.98/compat/getopt.c
 A      glabels2/barcode-0.98/compat/getopt.h
 A      glabels2/barcode-0.98/configure
-A      glabels2/barcode-0.98/configure.in.dist
+A      glabels2/barcode-0.98/configure.in
 A      glabels2/barcode-0.98/contrib/barcode-SVG.tar.gz
 A      glabels2/barcode-0.98/contrib/barcode-SVG.tar.gz.README
 A      glabels2/barcode-0.98/contrib/barcode-for-delphi.tar.gz
@@ -2838,179 +25063,60 @@ A     glabels2/barcode-0.98/pcl.c
 A      glabels2/barcode-0.98/plessey.c
 A      glabels2/barcode-0.98/ps.c
 A      glabels2/barcode-0.98/sample.c
+A      glabels2/config.h.in
+A      glabels2/configure
 A      glabels2/configure.in
-A      glabels2/data/Makefile.am
-A      glabels2/data/desktop/Makefile.am
-A      glabels2/data/desktop/glabels.desktop.in
-A      glabels2/data/dtd/Makefile.am
-A      glabels2/data/dtd/glabels-2.2.dtd
-A      glabels2/data/glade/Makefile.am
-A      glabels2/data/glade/merge-properties-dialog.glade
-A      glabels2/data/glade/new-label-dialog.glade
-A      glabels2/data/glade/object-editor.glade
-A      glabels2/data/glade/prefs-dialog.glade
-A      glabels2/data/glade/print-custom-widget.glade
-A      glabels2/data/glade/property-bar.glade
-A      glabels2/data/glade/template-designer.glade
-A      glabels2/data/glade/wdgt-media-select.glade
-A      glabels2/data/glade/wdgt-rotate-label.glade
-A      glabels2/data/man/Makefile.am
-A      glabels2/data/man/glabels.1
-A      glabels2/data/mime/Makefile.am
-A      glabels2/data/mime/glabels.applications
-A      glabels2/data/mime/glabels.keys.in
-A      glabels2/data/mime/glabels.mime
-A      glabels2/data/mime/glabels.xml.in
-A      glabels2/data/pixmaps/Makefile.am
-A      glabels2/data/pixmaps/ex-1layout.png
-A      glabels2/data/pixmaps/ex-2layouts.png
-A      glabels2/data/pixmaps/ex-cd-size.png
-A      glabels2/data/pixmaps/ex-rect-size.png
-A      glabels2/data/pixmaps/ex-round-size.png
-A      glabels2/data/pixmaps/glabels-about-logo.png
-A      glabels2/data/pixmaps/glabels-application-x-glabels.png
-A      glabels2/data/pixmaps/glabels-splash.png
-A      glabels2/data/pixmaps/glabels.png
-A      glabels2/data/templates/Makefile.am
-A      glabels2/data/templates/avery-iso-templates.xml
-A      glabels2/data/templates/avery-other-templates.xml
-A      glabels2/data/templates/avery-us-templates.xml
-A      glabels2/data/templates/categories.xml
-A      glabels2/data/templates/misc-iso-templates.xml
-A      glabels2/data/templates/misc-other-templates.xml
-A      glabels2/data/templates/misc-us-templates.xml
-A      glabels2/data/templates/paper-sizes.xml
-A      glabels2/data/templates/zweckform-iso-templates.xml
-A      glabels2/docs/Makefile.am
-A      glabels2/docs/libglabels/Makefile.am
-A      glabels2/docs/libglabels/libglabels-decl-list.txt
-A      glabels2/docs/libglabels/libglabels-docs.sgml
-A      glabels2/docs/libglabels/libglabels-overrides.txt
-A      glabels2/docs/libglabels/libglabels-sections.txt
-A      glabels2/docs/libglabels/libglabels-undocumented.txt
-A      glabels2/docs/libglabels/libglabels.types
-A      glabels2/docs/libglabels/tmpl/category.sgml
-A      glabels2/docs/libglabels/tmpl/db.sgml
-A      glabels2/docs/libglabels/tmpl/enums.sgml
-A      glabels2/docs/libglabels/tmpl/libglabels-unused.sgml
-A      glabels2/docs/libglabels/tmpl/libglabels.sgml
-A      glabels2/docs/libglabels/tmpl/paper.sgml
-A      glabels2/docs/libglabels/tmpl/str.sgml
-A      glabels2/docs/libglabels/tmpl/template.sgml
-A      glabels2/docs/libglabels/tmpl/xml-category.sgml
-A      glabels2/docs/libglabels/tmpl/xml-paper.sgml
-A      glabels2/docs/libglabels/tmpl/xml-template.sgml
-A      glabels2/docs/libglabels/tmpl/xml.sgml
+A      glabels2/cvswrappers
+A      glabels2/data/predefined-labels.template
+A      glabels2/glabels.desktop
 A      glabels2/glabels.spec.in
-A      glabels2/gtk-doc.make
-A      glabels2/help/C/Makefile.am
-A      glabels2/help/C/figures/glabels-template-cd.png
-A      glabels2/help/C/figures/glabels-template-label.png
-A      glabels2/help/C/figures/glabels-template-layout.png
-A      glabels2/help/C/figures/main-window-empty.png
-A      glabels2/help/C/figures/merge-ex1-1.png
-A      glabels2/help/C/figures/merge-ex1-2.png
-A      glabels2/help/C/figures/merge-ex1-3.png
-A      glabels2/help/C/figures/merge-ex1-4.png
-A      glabels2/help/C/figures/merge-ex2-1.png
-A      glabels2/help/C/figures/merge-ex2-2.png
-A      glabels2/help/C/figures/merge-ex2-3.png
-A      glabels2/help/C/figures/merge-ex2-4.png
-A      glabels2/help/C/figures/object-editor-sidebar.png
-A      glabels2/help/C/figures/print-copies.png
-A      glabels2/help/C/figures/print-merge.png
-A      glabels2/help/C/glabels-C.omf
-A      glabels2/help/C/glabels.xml
-A      glabels2/help/C/legal.xml
-A      glabels2/help/Makefile.am
-A      glabels2/iec16022-0.2.1/BUGS
-A      glabels2/iec16022-0.2.1/CHANGELOG
-A      glabels2/iec16022-0.2.1/CREDITS
-A      glabels2/iec16022-0.2.1/INSTALL
-A      glabels2/iec16022-0.2.1/LICENSE
-A      glabels2/iec16022-0.2.1/Makefile.am
-A      glabels2/iec16022-0.2.1/Makefile.dist
-A      glabels2/iec16022-0.2.1/README
-A      glabels2/iec16022-0.2.1/README.glabels
-A      glabels2/iec16022-0.2.1/TODO
-A      glabels2/iec16022-0.2.1/iec16022.1
-A      glabels2/iec16022-0.2.1/iec16022.c
-A      glabels2/iec16022-0.2.1/iec16022ecc200.c
-A      glabels2/iec16022-0.2.1/iec16022ecc200.h
-A      glabels2/iec16022-0.2.1/image.c
-A      glabels2/iec16022-0.2.1/image.h
-A      glabels2/iec16022-0.2.1/reedsol.c
-A      glabels2/iec16022-0.2.1/reedsol.h
-A      glabels2/iec16022-0.2.1/test/testsuite-example.bin
-A      glabels2/iec16022-0.2.1/test/testsuite-example.eps
-A      glabels2/iec16022-0.2.1/test/testsuite-example.hex
-A      glabels2/iec16022-0.2.1/test/testsuite-example.png
-A      glabels2/iec16022-0.2.1/test/testsuite-example.text
-A      glabels2/iec16022-0.2.1/test/testsuite.sh
-A      glabels2/libglabels/Makefile.am
-A      glabels2/libglabels/category.c
-A      glabels2/libglabels/category.h
-A      glabels2/libglabels/db.c
-A      glabels2/libglabels/db.h
-A      glabels2/libglabels/enums.h
-A      glabels2/libglabels/libglabels-private.h
-A      glabels2/libglabels/libglabels.h
-A      glabels2/libglabels/libglabels.pc.in
-A      glabels2/libglabels/paper.c
-A      glabels2/libglabels/paper.h
-A      glabels2/libglabels/str.c
-A      glabels2/libglabels/str.h
-A      glabels2/libglabels/template.c
-A      glabels2/libglabels/template.h
-A      glabels2/libglabels/xml-category.c
-A      glabels2/libglabels/xml-category.h
-A      glabels2/libglabels/xml-paper.c
-A      glabels2/libglabels/xml-paper.h
-A      glabels2/libglabels/xml-template.c
-A      glabels2/libglabels/xml-template.h
-A      glabels2/libglabels/xml.c
-A      glabels2/libglabels/xml.h
+A      glabels2/install-sh
+A      glabels2/missing
+A      glabels2/mkinstalldirs
+A      glabels2/pixmaps/glabels-about-logo.png
+A      glabels2/pixmaps/glabels-icon.png
+A      glabels2/pixmaps/glabels-logo.png
 A      glabels2/po/ChangeLog
+A      glabels2/po/Makefile.in.in
 A      glabels2/po/POTFILES.in
-A      glabels2/po/cs.po
 A      glabels2/po/de.po
-A      glabels2/po/eo.po
-A      glabels2/po/es.po
 A      glabels2/po/fr.po
-A      glabels2/po/it.po
+A      glabels2/po/glabels.pot
 A      glabels2/po/ja.po
-A      glabels2/po/pl.po
 A      glabels2/po/pt_BR.po
-A      glabels2/po/ru.po
-A      glabels2/po/zh_TW.Big5.po
 A      glabels2/src/Makefile.am
-A      glabels2/src/base64.c
-A      glabels2/src/base64.h
+A      glabels2/src/Makefile.in
 A      glabels2/src/bc-gnubarcode.c
 A      glabels2/src/bc-gnubarcode.h
-A      glabels2/src/bc-iec16022.c
-A      glabels2/src/bc-iec16022.h
 A      glabels2/src/bc-postnet.c
 A      glabels2/src/bc-postnet.h
 A      glabels2/src/bc.c
 A      glabels2/src/bc.h
-A      glabels2/src/cairo-ellipse-path.c
-A      glabels2/src/cairo-ellipse-path.h
-A      glabels2/src/cairo-label-path.c
-A      glabels2/src/cairo-label-path.h
-A      glabels2/src/cairo-markup-path.c
-A      glabels2/src/cairo-markup-path.h
-A      glabels2/src/color.c
-A      glabels2/src/color.h
-A      glabels2/src/critical-error-handler.c
-A      glabels2/src/critical-error-handler.h
+A      glabels2/src/bonobo-mdi-child.c
+A      glabels2/src/bonobo-mdi-child.h
+A      glabels2/src/bonobo-mdi.c
+A      glabels2/src/bonobo-mdi.h
+A      glabels2/src/canvas-hacktext.c
+A      glabels2/src/canvas-hacktext.h
+A      glabels2/src/commands.c
+A      glabels2/src/commands.h
 A      glabels2/src/debug.c
 A      glabels2/src/debug.h
 A      glabels2/src/file.c
 A      glabels2/src/file.h
 A      glabels2/src/glabels-batch.c
+A      glabels2/src/glabels-ui.xml
 A      glabels2/src/glabels.c
-A      glabels2/src/hig.h
+A      glabels2/src/glabels.h
+A      glabels2/src/gnome-recent-marshal.list
+A      glabels2/src/gnome-recent-model.c
+A      glabels2/src/gnome-recent-model.h
+A      glabels2/src/gnome-recent-util.c
+A      glabels2/src/gnome-recent-util.h
+A      glabels2/src/gnome-recent-view-bonobo.c
+A      glabels2/src/gnome-recent-view-bonobo.h
+A      glabels2/src/gnome-recent-view.c
+A      glabels2/src/gnome-recent-view.h
 A      glabels2/src/label-barcode.c
 A      glabels2/src/label-barcode.h
 A      glabels2/src/label-box.c
@@ -3028,54 +25134,24 @@ A      glabels2/src/label-text.h
 A      glabels2/src/label.c
 A      glabels2/src/label.h
 A      glabels2/src/marshal.list
-A      glabels2/src/merge-evolution.c
-A      glabels2/src/merge-evolution.h
-A      glabels2/src/merge-init.c
-A      glabels2/src/merge-init.h
-A      glabels2/src/merge-properties-dialog.c
-A      glabels2/src/merge-properties-dialog.h
+A      glabels2/src/mdi-child.c
+A      glabels2/src/mdi-child.h
+A      glabels2/src/mdi.c
+A      glabels2/src/mdi.h
+A      glabels2/src/menus.c
+A      glabels2/src/menus.h
+A      glabels2/src/merge-properties.c
+A      glabels2/src/merge-properties.h
 A      glabels2/src/merge-text.c
 A      glabels2/src/merge-text.h
-A      glabels2/src/merge-vcard.c
-A      glabels2/src/merge-vcard.h
+A      glabels2/src/merge-ui-text.c
+A      glabels2/src/merge-ui-text.h
+A      glabels2/src/merge-ui.c
+A      glabels2/src/merge-ui.h
 A      glabels2/src/merge.c
 A      glabels2/src/merge.h
-A      glabels2/src/mini-preview-pixbuf-cache.c
-A      glabels2/src/mini-preview-pixbuf-cache.h
-A      glabels2/src/mini-preview-pixbuf.c
-A      glabels2/src/mini-preview-pixbuf.h
-A      glabels2/src/mygal/Makefile.am
-A      glabels2/src/mygal/color-group.c
-A      glabels2/src/mygal/color-group.h
-A      glabels2/src/mygal/color-palette.c
-A      glabels2/src/mygal/color-palette.h
-A      glabels2/src/mygal/e-colors.c
-A      glabels2/src/mygal/e-colors.h
-A      glabels2/src/mygal/e-marshal.list
-A      glabels2/src/mygal/e-util.h
-A      glabels2/src/mygal/mygal-combo-box.c
-A      glabels2/src/mygal/mygal-combo-box.h
-A      glabels2/src/mygal/widget-color-combo.c
-A      glabels2/src/mygal/widget-color-combo.h
-A      glabels2/src/new-label-dialog.c
-A      glabels2/src/new-label-dialog.h
-A      glabels2/src/object-editor-bc-page.c
-A      glabels2/src/object-editor-data-page.c
-A      glabels2/src/object-editor-edit-page.c
-A      glabels2/src/object-editor-fill-page.c
-A      glabels2/src/object-editor-image-page.c
-A      glabels2/src/object-editor-line-page.c
-A      glabels2/src/object-editor-lsize-page.c
-A      glabels2/src/object-editor-position-page.c
-A      glabels2/src/object-editor-private.h
-A      glabels2/src/object-editor-shadow-page.c
-A      glabels2/src/object-editor-size-page.c
-A      glabels2/src/object-editor-text-page.c
-A      glabels2/src/object-editor.c
-A      glabels2/src/object-editor.h
-A      glabels2/src/pixbuf-cache.c
-A      glabels2/src/pixbuf-cache.h
 A      glabels2/src/pixmaps/Makefile.am
+A      glabels2/src/pixmaps/Makefile.in
 A      glabels2/src/pixmaps/checkerboard.xpm
 A      glabels2/src/pixmaps/collate.xpm
 A      glabels2/src/pixmaps/cursor_barcode.xbm
@@ -3093,73 +25169,34 @@ A      glabels2/src/pixmaps/cursor_text_mask.xbm
 A      glabels2/src/pixmaps/nocollate.xpm
 A      glabels2/src/prefs-dialog.c
 A      glabels2/src/prefs-dialog.h
-A      glabels2/src/prefs-model.c
-A      glabels2/src/prefs-model.h
 A      glabels2/src/prefs.c
 A      glabels2/src/prefs.h
-A      glabels2/src/print-op.c
-A      glabels2/src/print-op.h
+A      glabels2/src/print-dialog.c
+A      glabels2/src/print-dialog.h
 A      glabels2/src/print.c
 A      glabels2/src/print.h
 A      glabels2/src/recent.c
 A      glabels2/src/recent.h
+A      glabels2/src/splash.c
+A      glabels2/src/splash.h
 A      glabels2/src/stock-pixmaps/Makefile.am
-A      glabels2/src/stock-pixmaps/stock_align_bottom_16.png
-A      glabels2/src/stock-pixmaps/stock_align_hcenter_16.png
-A      glabels2/src/stock-pixmaps/stock_align_left_16.png
-A      glabels2/src/stock-pixmaps/stock_align_right_16.png
-A      glabels2/src/stock-pixmaps/stock_align_top_16.png
-A      glabels2/src/stock-pixmaps/stock_align_vcenter_16.png
-A      glabels2/src/stock-pixmaps/stock_arrow_16.png
+A      glabels2/src/stock-pixmaps/Makefile.in
 A      glabels2/src/stock-pixmaps/stock_arrow_24.png
-A      glabels2/src/stock-pixmaps/stock_barcode_16.png
 A      glabels2/src/stock-pixmaps/stock_barcode_24.png
-A      glabels2/src/stock-pixmaps/stock_box_16.png
 A      glabels2/src/stock-pixmaps/stock_box_24.png
-A      glabels2/src/stock-pixmaps/stock_bucket_fill_16.png
-A      glabels2/src/stock-pixmaps/stock_bucket_fill_24.png
-A      glabels2/src/stock-pixmaps/stock_center_horiz_16.png
-A      glabels2/src/stock-pixmaps/stock_center_vert_16.png
-A      glabels2/src/stock-pixmaps/stock_ellipse_16.png
 A      glabels2/src/stock-pixmaps/stock_ellipse_24.png
-A      glabels2/src/stock-pixmaps/stock_flip_horiz_16.png
-A      glabels2/src/stock-pixmaps/stock_flip_vert_16.png
-A      glabels2/src/stock-pixmaps/stock_hchain_24.png
-A      glabels2/src/stock-pixmaps/stock_hchain_broken_24.png
-A      glabels2/src/stock-pixmaps/stock_image_16.png
 A      glabels2/src/stock-pixmaps/stock_image_24.png
-A      glabels2/src/stock-pixmaps/stock_line_16.png
 A      glabels2/src/stock-pixmaps/stock_line_24.png
-A      glabels2/src/stock-pixmaps/stock_merge_16.png
 A      glabels2/src/stock-pixmaps/stock_merge_24.png
-A      glabels2/src/stock-pixmaps/stock_order_bottom_16.png
-A      glabels2/src/stock-pixmaps/stock_order_top_16.png
-A      glabels2/src/stock-pixmaps/stock_pencil_16.png
-A      glabels2/src/stock-pixmaps/stock_pencil_24.png
-A      glabels2/src/stock-pixmaps/stock_properties_16.png
-A      glabels2/src/stock-pixmaps/stock_properties_24.png
-A      glabels2/src/stock-pixmaps/stock_rotate_left_16.png
-A      glabels2/src/stock-pixmaps/stock_rotate_right_16.png
-A      glabels2/src/stock-pixmaps/stock_text_16.png
 A      glabels2/src/stock-pixmaps/stock_text_24.png
-A      glabels2/src/stock-pixmaps/stock_vchain_24.png
-A      glabels2/src/stock-pixmaps/stock_vchain_broken_24.png
 A      glabels2/src/stock.c
 A      glabels2/src/stock.h
-A      glabels2/src/template-designer.c
-A      glabels2/src/template-designer.h
+A      glabels2/src/template.c
+A      glabels2/src/template.h
 A      glabels2/src/text-node.c
 A      glabels2/src/text-node.h
-A      glabels2/src/ui-commands.c
-A      glabels2/src/ui-commands.h
-A      glabels2/src/ui-property-bar.c
-A      glabels2/src/ui-property-bar.h
-A      glabels2/src/ui-sidebar.c
-A      glabels2/src/ui-sidebar.h
-A      glabels2/src/ui-util.c
-A      glabels2/src/ui-util.h
-A      glabels2/src/ui.c
-A      glabels2/src/ui.h
+A      glabels2/src/tools.c
+A      glabels2/src/tools.h
 A      glabels2/src/util.c
 A      glabels2/src/util.h
 A      glabels2/src/view-barcode.c
@@ -3168,6 +25205,8 @@ A        glabels2/src/view-box.c
 A      glabels2/src/view-box.h
 A      glabels2/src/view-ellipse.c
 A      glabels2/src/view-ellipse.h
+A      glabels2/src/view-highlight.c
+A      glabels2/src/view-highlight.h
 A      glabels2/src/view-image.c
 A      glabels2/src/view-image.h
 A      glabels2/src/view-line.c
@@ -3178,33 +25217,843 @@ A     glabels2/src/view-text.c
 A      glabels2/src/view-text.h
 A      glabels2/src/view.c
 A      glabels2/src/view.h
-A      glabels2/src/warning-handler.c
-A      glabels2/src/warning-handler.h
-A      glabels2/src/wdgt-chain-button.c
-A      glabels2/src/wdgt-chain-button.h
+A      glabels2/src/wdgt-bc-data.c
+A      glabels2/src/wdgt-bc-data.h
+A      glabels2/src/wdgt-bc-props.c
+A      glabels2/src/wdgt-bc-props.h
+A      glabels2/src/wdgt-bc-style.c
+A      glabels2/src/wdgt-bc-style.h
+A      glabels2/src/wdgt-fill.c
+A      glabels2/src/wdgt-fill.h
+A      glabels2/src/wdgt-line.c
+A      glabels2/src/wdgt-line.h
 A      glabels2/src/wdgt-media-select.c
 A      glabels2/src/wdgt-media-select.h
 A      glabels2/src/wdgt-mini-preview.c
 A      glabels2/src/wdgt-mini-preview.h
+A      glabels2/src/wdgt-position.c
+A      glabels2/src/wdgt-position.h
 A      glabels2/src/wdgt-print-copies.c
 A      glabels2/src/wdgt-print-copies.h
 A      glabels2/src/wdgt-print-merge.c
 A      glabels2/src/wdgt-print-merge.h
 A      glabels2/src/wdgt-rotate-label.c
 A      glabels2/src/wdgt-rotate-label.h
-A      glabels2/src/window.c
-A      glabels2/src/window.h
-A      glabels2/src/xml-label-04.c
-A      glabels2/src/xml-label-04.h
+A      glabels2/src/wdgt-size.c
+A      glabels2/src/wdgt-size.h
+A      glabels2/src/wdgt-text-entry.c
+A      glabels2/src/wdgt-text-entry.h
+A      glabels2/src/wdgt-text-props.c
+A      glabels2/src/wdgt-text-props.h
+A      glabels2/src/wdgt-vector.c
+A      glabels2/src/wdgt-vector.h
 A      glabels2/src/xml-label.c
 A      glabels2/src/xml-label.h
+A      glabels2/stamp-h.in
+
+commit 22858b6573961f37d305a8c343e10348562b578c
+Author: Olivier Berger <oberger@april.org>
+Date:  2002-06-29
+
+    Updated french translation, up to date with 0.4.4
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@37
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/po/ChangeLog
+M      glabels1/po/fr.po
+
+commit f5964f89087a3541d6fcfdb506f5ddff3f8d4e73
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-06-28
 
-commit aa41cfa57d2ea352fee26bbacfcd6ac919f1ee76
+    Fix broken build environment.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@36
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/ABOUT-NLS
+M      glabels1/ChangeLog
+M      glabels1/Makefile.am
+M      glabels1/aclocal.m4
+M      glabels1/config.h.in
+M      glabels1/configure.in
+M      glabels1/intl/Makefile.in
+M      glabels1/macros/Makefile.in
+M      glabels1/po/ChangeLog
+M      glabels1/po/Makefile.in.in
+D      glabels1/po/Makevars
+D      glabels1/po/Rules-quot
+D      glabels1/po/boldquot.sed
+M      glabels1/po/cat-id-tbl.c
+M      glabels1/po/de.gmo
+M      glabels1/po/de.po
+D      glabels1/po/en@boldquot.header
+D      glabels1/po/en@quot.header
+M      glabels1/po/es.gmo
+M      glabels1/po/es.po
+M      glabels1/po/fr.gmo
+M      glabels1/po/fr.po
+M      glabels1/po/glabels.pot
+D      glabels1/po/insert-header.sin
+M      glabels1/po/ja.gmo
+M      glabels1/po/ja.po
+M      glabels1/po/pt_BR.gmo
+M      glabels1/po/pt_BR.po
+D      glabels1/po/quot.sed
+D      glabels1/po/remove-potcdate.sin
+
+commit 628da1b907a5f2e056bf22f25ca66116a87e4919
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-06-26
+
+    Additional label template.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@35
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/AUTHORS
+M      glabels1/data/predefined-labels.template
+
+commit e76e40d1a99bd29c9b415cf337a2d7ea21f285bb
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-06-26
+
+    Improved CSV parsing.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@34
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/src/merge.c
+M      glabels1/src/merge_text.c
+
+commit a83f950c1f19019cf0092cb7b3af5c61b67417f6
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-06-26
+
+    Changed about dialog image.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@33
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/src/menu.c
+
+commit ea3d9e9fce16b8c8cbdbbced5efe15f96675e099
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-06-26
+
+    New files
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@32
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+A      glabels1/po/Makevars
+A      glabels1/po/Rules-quot
+A      glabels1/po/boldquot.sed
+A      glabels1/po/en@boldquot.header
+A      glabels1/po/en@quot.header
+A      glabels1/po/insert-header.sin
+A      glabels1/po/quot.sed
+A      glabels1/po/remove-potcdate.sin
+
+commit 594b9be22fb1e36585db796865b0362383c20ae1
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-06-26
+
+    Translations
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@31
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/po/ChangeLog
+M      glabels1/po/Makefile.in.in
+M      glabels1/po/de.gmo
+M      glabels1/po/de.po
+M      glabels1/po/es.gmo
+M      glabels1/po/es.po
+M      glabels1/po/fr.gmo
+M      glabels1/po/fr.po
+M      glabels1/po/ja.gmo
+M      glabels1/po/ja.po
+M      glabels1/po/pt_BR.gmo
+M      glabels1/po/pt_BR.po
+
+commit 06635a8408e4ba916a1bdb650c6690d58cd9b645
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-06-26
+
+    Added logo specific to about dialog.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@30
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+A      glabels1/pixmaps/glabels-about-logo.png
+
+commit 60965cc5cf022e99d55479976052837f583888ef
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-06-26
+
+    File updated w/ gettextize
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@29
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/ChangeLog
+
+commit 6bbae5eef63555bf36c2bcf34df417346e6b64a4
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-06-18
+
+    Updated config.h.in.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@28
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/config.h.in
+
+commit a14d460e21dd854a5911b0e54508de37080153b0
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-06-18
+
+    Updated aclocal.m4.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@27
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/aclocal.m4
+
+commit 52f6a1af385187422b6466c76cc1be50c65f9251
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-06-18
+
+    Updated Makefile.am.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@26
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/Makefile.am
+
+commit 43641f1b064d30a89204ed25b99d4f466a897bcd
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-06-18
+
+    Updated Changelog.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@25
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/ChangeLog
+
+commit c51ab34df7eacbf61c92131adf127fc50bead398
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-06-18
+
+    Updated ABOUT-NLS.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@24
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/ABOUT-NLS
+
+commit b5b3e5c81b4fc4ed519ed2bca6cd8c98cba9c2db
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-06-18
+
+    Set release to 0.4.4
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@23
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/configure.in
+
+commit 365dc4288dee2a5ad40261fc62aa596df656ed9d
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-06-18
+
+    Removing generated files from CM.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@22
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+D      glabels1/Makefile.in
+D      glabels1/configure
+D      glabels1/glabels.spec
+
+commit 4205e33a8096be62999327a27a709fb90f12ad12
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-06-18
+
+    Removing generated files from CM.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@21
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+D      glabels1/src/Makefile.in
+D      glabels1/src/pixmaps/Makefile.in
+
+commit 979dfe500f5773e1fe925e46135045125075b440
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-06-18
+
+    Replace gnu-barcode-0.96 with 0.98.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@20
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/AUTHORS
+M      glabels1/Makefile.am
+M      glabels1/configure.in
+M      glabels1/src/Makefile.am
+
+commit 492ca6b93e3360e64288df1efdd1383990a77c78
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-06-18
+
+    Checking in gnu-barcode-0.98
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@19
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+A      glabels1/barcode-0.98/COPYING
+A      glabels1/barcode-0.98/ChangeLog
+A      glabels1/barcode-0.98/INSTALL
+A      glabels1/barcode-0.98/Makefile.in
+A      glabels1/barcode-0.98/README
+A      glabels1/barcode-0.98/TODO
+A      glabels1/barcode-0.98/barcode.h
+A      glabels1/barcode-0.98/barcode.spec
+A      glabels1/barcode-0.98/bookland/bookland.py
+A      glabels1/barcode-0.98/cmdline.c
+A      glabels1/barcode-0.98/cmdline.h
+A      glabels1/barcode-0.98/codabar.c
+A      glabels1/barcode-0.98/code128.c
+A      glabels1/barcode-0.98/code39.c
+A      glabels1/barcode-0.98/code93.c
+A      glabels1/barcode-0.98/compat/getopt.c
+A      glabels1/barcode-0.98/compat/getopt.h
+A      glabels1/barcode-0.98/configure
+A      glabels1/barcode-0.98/configure.in
+A      glabels1/barcode-0.98/contrib/barcode-SVG.tar.gz
+A      glabels1/barcode-0.98/contrib/barcode-SVG.tar.gz.README
+A      glabels1/barcode-0.98/contrib/barcode-for-delphi.tar.gz
+A      glabels1/barcode-0.98/contrib/barcode-for-delphi.tar.gz.README
+A      glabels1/barcode-0.98/contrib/barcodeps-0.1.tgz
+A      glabels1/barcode-0.98/contrib/barcodeps-0.1.tgz.README
+A      glabels1/barcode-0.98/contrib/grab-0.0.4.tar.gz
+A      glabels1/barcode-0.98/contrib/grab-0.0.4.tar.gz.README
+A      glabels1/barcode-0.98/debian/README.debian
+A      glabels1/barcode-0.98/debian/changelog
+A      glabels1/barcode-0.98/debian/control
+A      glabels1/barcode-0.98/debian/copyright
+A      glabels1/barcode-0.98/debian/dirs
+A      glabels1/barcode-0.98/debian/info
+A      glabels1/barcode-0.98/debian/rules
+A      glabels1/barcode-0.98/doc/Makefile.in
+A      glabels1/barcode-0.98/doc/README
+A      glabels1/barcode-0.98/doc/barcode.info
+A      glabels1/barcode-0.98/doc/barcode.pdf
+A      glabels1/barcode-0.98/doc/barcode.ps
+A      glabels1/barcode-0.98/doc/barcodedoc.txt
+A      glabels1/barcode-0.98/doc/doc.barcode
+A      glabels1/barcode-0.98/doc/infofilter
+A      glabels1/barcode-0.98/doc/manpager
+A      glabels1/barcode-0.98/doc/mktxt
+A      glabels1/barcode-0.98/doc/texi2html
+A      glabels1/barcode-0.98/ean.c
+A      glabels1/barcode-0.98/i25.c
+A      glabels1/barcode-0.98/install-sh
+A      glabels1/barcode-0.98/library.c
+A      glabels1/barcode-0.98/main.c
+A      glabels1/barcode-0.98/msi.c
+A      glabels1/barcode-0.98/pcl.c
+A      glabels1/barcode-0.98/plessey.c
+A      glabels1/barcode-0.98/ps.c
+A      glabels1/barcode-0.98/sample.c
+
+commit 6592672d77f4e9a0ddab08ef198b56718dc24202
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-06-18
+
+    Added acknowledgements for additional label templates.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@18
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/AUTHORS
+
+commit 44132388529f64112507a9f2f94ae210b0d738b1
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-06-18
+
+    Added additional templates.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@17
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/data/predefined-labels.template
+
+commit 387dfd746a801119e2956e413118cbb050da0e75
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-05-01
+
+    Additional template.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@16
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/data/predefined-labels.template
+
+commit 6e06d81c9164744d348b2311471c8623df077839
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-05-01
+
+    Additional credits for templates.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@15
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/AUTHORS
+
+commit ca24de55a2ed8cf5287e3531692edce61f0f1d76
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-04-29
+
+    Added spanish (es) support.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@14
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/po/cat-id-tbl.c
+A      glabels1/po/es.gmo
+C066   glabels1/po/glabels.pot glabels1/po/es.po
+M      glabels1/po/glabels.pot
+
+commit 22a00a789cdea2fce310e66ac30f3ef210aa94e0
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-04-29
+
+    Updated japanese strings.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@13
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/po/ja.gmo
+M      glabels1/po/ja.po
+
+commit 46d285dea66301d12d3c11a4271cd8f1a3305e6b
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-04-29
+
+    Added additional label templates.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@12
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/data/predefined-labels.template
+
+commit db1ba5a430a9d58faf13e70a807a5d082ce2e3a6
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-04-29
+
+    Added support for spanish (es).
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@11
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/configure.in
+
+commit 92dd882d7b64ff3a86500f66ac85456e45e8c83a
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-04-29
+
+    Added acknowledgements.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@10
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/AUTHORS
+
+commit 36bc656ed2f4592f58437035c0ca88444f8faa07
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-04-29
+
+    Removed the clip_to_outline code -- this seemed to cause an outline
+    to be printed for some printers.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@9
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/src/print.c
+
+commit 80c7efe71c394abaab547eee7172ec4c24f2067f
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-04-29
+
+    Fixed layout of labels so that they are layed out in the proper
+    coordinate system:
+    The canvas origin is at the upper left, while the origin on paper
+    is at the lower left.
+    This was not apparent until a non-symetric (vertical) layout was used.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@8
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/src/mini_preview.c
+
+commit e054900210bd868ed5241f37a6c7220ce13f577f
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-04-27
+
+    Don't assume all events are button events!
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@7
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/src/mini_preview.c
+
+commit 9eb6a8a37fd94d5aba4831453a4c2c915dd86cb1
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-04-27
+
+    Use motion union member for MOTION events.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@6
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/src/display.c
+M      glabels1/src/item_box.c
+M      glabels1/src/item_ellipse.c
+M      glabels1/src/item_image.c
+M      glabels1/src/item_line.c
+
+commit e1e85ce13c158a14303c2a38aa1902a42df6d4d8
+Author: Jim Evins <evins@snaught.com>
+Date:  2002-02-28
+
+    Added glabels-batch to glabels.spec.in.
+    Added entries to TODO.
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@5
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
+
+M      glabels1/TODO
+M      glabels1/glabels.spec.in
+
+commit 1852a103b62f3106bd032dc6e7a55b6ebec5449c
 Author: Jim Evins <evins@snaught.com>
-Date:  2007-12-25
+Date:  2002-02-24
+
+    Initial revision
+
+
+    git-svn-id:
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@2
+    f5e0f49d-192f-0410-a22d-a8d8700d0965
 
-    Creating glabels-2.2 branch.
+A      glabels1/ABOUT-NLS
+A      glabels1/AUTHORS
+A      glabels1/COPYING
+A      glabels1/ChangeLog
+A      glabels1/INSTALL
+A      glabels1/Makefile.am
+A      glabels1/Makefile.in
+A      glabels1/NEWS
+A      glabels1/README
+A      glabels1/TODO
+A      glabels1/acconfig.h
+A      glabels1/aclocal.m4
+A      glabels1/autogen.sh
+A      glabels1/config.h.in
+A      glabels1/configure
+A      glabels1/configure.in
+A      glabels1/data/predefined-labels.template
+A      glabels1/doc/C/Makefile.am
+A      glabels1/doc/C/Makefile.in
+A      glabels1/doc/C/glabels.sgml
+A      glabels1/doc/C/glabels/index.html
+A      glabels1/doc/C/glabels/ln7.html
+A      glabels1/doc/C/topic.dat
+A      glabels1/doc/Makefile.am
+A      glabels1/doc/Makefile.in
+A      glabels1/glabels.desktop
+A      glabels1/glabels.spec
+A      glabels1/glabels.spec.in
+A      glabels1/install-sh
+A      glabels1/intl/ChangeLog
+A      glabels1/intl/Makefile.in
+A      glabels1/intl/VERSION
+A      glabels1/intl/bindtextdom.c
+A      glabels1/intl/cat-compat.c
+A      glabels1/intl/dcgettext.c
+A      glabels1/intl/dgettext.c
+A      glabels1/intl/explodename.c
+A      glabels1/intl/finddomain.c
+A      glabels1/intl/gettext.c
+A      glabels1/intl/gettext.h
+A      glabels1/intl/gettextP.h
+A      glabels1/intl/hash-string.h
+A      glabels1/intl/intl-compat.c
+A      glabels1/intl/l10nflist.c
+A      glabels1/intl/libgettext.h
+A      glabels1/intl/linux-msg.sed
+A      glabels1/intl/loadinfo.h
+A      glabels1/intl/loadmsgcat.c
+A      glabels1/intl/localealias.c
+A      glabels1/intl/po2tbl.sed.in
+A      glabels1/intl/textdomain.c
+A      glabels1/intl/xopen-msg.sed
+A      glabels1/macros/Makefile.am
+A      glabels1/macros/Makefile.in
+A      glabels1/macros/aclocal-include.m4
+A      glabels1/macros/autogen.sh
+A      glabels1/macros/compiler-flags.m4
+A      glabels1/macros/curses.m4
+A      glabels1/macros/gnome-bonobo-check.m4
+A      glabels1/macros/gnome-common.m4
+A      glabels1/macros/gnome-fileutils.m4
+A      glabels1/macros/gnome-gettext.m4
+A      glabels1/macros/gnome-ghttp-check.m4
+A      glabels1/macros/gnome-gnorba-check.m4
+A      glabels1/macros/gnome-guile-checks.m4
+A      glabels1/macros/gnome-libgtop-check.m4
+A      glabels1/macros/gnome-objc-checks.m4
+A      glabels1/macros/gnome-orbit-check.m4
+A      glabels1/macros/gnome-print-check.m4
+A      glabels1/macros/gnome-pthread-check.m4
+A      glabels1/macros/gnome-support.m4
+A      glabels1/macros/gnome-undelfs.m4
+A      glabels1/macros/gnome-vfs.m4
+A      glabels1/macros/gnome-x-checks.m4
+A      glabels1/macros/gnome-xml-check.m4
+A      glabels1/macros/gnome.m4
+A      glabels1/macros/linger.m4
+A      glabels1/macros/need-declaration.m4
+A      glabels1/missing
+A      glabels1/mkinstalldirs
+A      glabels1/pixmaps/glabels-icon.png
+A      glabels1/pixmaps/glabels-logo.png
+A      glabels1/po/ChangeLog
+A      glabels1/po/Makefile.in.in
+A      glabels1/po/POTFILES.in
+A      glabels1/po/cat-id-tbl.c
+A      glabels1/po/de.gmo
+A      glabels1/po/de.po
+A      glabels1/po/fr.gmo
+A      glabels1/po/fr.po
+A      glabels1/po/glabels.pot
+A      glabels1/po/ja.gmo
+A      glabels1/po/ja.po
+A      glabels1/po/pt_BR.gmo
+A      glabels1/po/pt_BR.po
+A      glabels1/po/stamp-cat-id
+A      glabels1/src/Makefile.am
+A      glabels1/src/Makefile.in
+A      glabels1/src/bc.c
+A      glabels1/src/bc.h
+A      glabels1/src/bc_gnubarcode.c
+A      glabels1/src/bc_gnubarcode.h
+A      glabels1/src/bc_postnet.c
+A      glabels1/src/bc_postnet.h
+A      glabels1/src/debug.h
+A      glabels1/src/display.c
+A      glabels1/src/display.h
+A      glabels1/src/edit.c
+A      glabels1/src/edit.h
+A      glabels1/src/file.c
+A      glabels1/src/file.h
+A      glabels1/src/glabels.c
+A      glabels1/src/glabels_batch.c
+A      glabels1/src/gnome-canvas-hacktext.h
+A      glabels1/src/hack.c
+A      glabels1/src/hack.h
+A      glabels1/src/highlight.c
+A      glabels1/src/highlight.h
+A      glabels1/src/item.c
+A      glabels1/src/item.h
+A      glabels1/src/item_barcode.c
+A      glabels1/src/item_barcode.h
+A      glabels1/src/item_box.c
+A      glabels1/src/item_box.h
+A      glabels1/src/item_ellipse.c
+A      glabels1/src/item_ellipse.h
+A      glabels1/src/item_image.c
+A      glabels1/src/item_image.h
+A      glabels1/src/item_line.c
+A      glabels1/src/item_line.h
+A      glabels1/src/item_text.c
+A      glabels1/src/item_text.h
+A      glabels1/src/label.c
+A      glabels1/src/label.h
+A      glabels1/src/mdi.c
+A      glabels1/src/mdi.h
+A      glabels1/src/media_select.c
+A      glabels1/src/media_select.h
+A      glabels1/src/menu.c
+A      glabels1/src/menu.h
+A      glabels1/src/merge.c
+A      glabels1/src/merge.h
+A      glabels1/src/merge_properties.c
+A      glabels1/src/merge_properties.h
+A      glabels1/src/merge_text.c
+A      glabels1/src/merge_text.h
+A      glabels1/src/merge_ui.c
+A      glabels1/src/merge_ui.h
+A      glabels1/src/merge_ui_text.c
+A      glabels1/src/merge_ui_text.h
+A      glabels1/src/mini_preview.c
+A      glabels1/src/mini_preview.h
+A      glabels1/src/pixmaps/Makefile.am
+A      glabels1/src/pixmaps/Makefile.in
+A      glabels1/src/pixmaps/arrow.xpm
+A      glabels1/src/pixmaps/barcode.xpm
+A      glabels1/src/pixmaps/box.xpm
+A      glabels1/src/pixmaps/checkerboard.xpm
+A      glabels1/src/pixmaps/collate.xpm
+A      glabels1/src/pixmaps/cursor_barcode.xbm
+A      glabels1/src/pixmaps/cursor_barcode_mask.xbm
+A      glabels1/src/pixmaps/cursor_box.xbm
+A      glabels1/src/pixmaps/cursor_box_mask.xbm
+A      glabels1/src/pixmaps/cursor_ellipse.xbm
+A      glabels1/src/pixmaps/cursor_ellipse_mask.xbm
+A      glabels1/src/pixmaps/cursor_image.xbm
+A      glabels1/src/pixmaps/cursor_image_mask.xbm
+A      glabels1/src/pixmaps/cursor_line.xbm
+A      glabels1/src/pixmaps/cursor_line_mask.xbm
+A      glabels1/src/pixmaps/cursor_text.xbm
+A      glabels1/src/pixmaps/cursor_text_mask.xbm
+A      glabels1/src/pixmaps/cursor_zoomin.xbm
+A      glabels1/src/pixmaps/cursor_zoomin_mask.xbm
+A      glabels1/src/pixmaps/cursor_zoomout.xbm
+A      glabels1/src/pixmaps/cursor_zoomout_mask.xbm
+A      glabels1/src/pixmaps/ellipse.xpm
+A      glabels1/src/pixmaps/image.xpm
+A      glabels1/src/pixmaps/line.xpm
+A      glabels1/src/pixmaps/merge.xpm
+A      glabels1/src/pixmaps/nocollate.xpm
+A      glabels1/src/pixmaps/text.xpm
+A      glabels1/src/pixmaps/zoom1to1.xpm
+A      glabels1/src/pixmaps/zoomin.xpm
+A      glabels1/src/pixmaps/zoomout.xpm
+A      glabels1/src/prefs.c
+A      glabels1/src/prefs.h
+A      glabels1/src/print.c
+A      glabels1/src/print.h
+A      glabels1/src/print_copies.c
+A      glabels1/src/print_copies.h
+A      glabels1/src/print_dialog.c
+A      glabels1/src/print_dialog.h
+A      glabels1/src/print_merge.c
+A      glabels1/src/print_merge.h
+A      glabels1/src/prop_bc.c
+A      glabels1/src/prop_bc.h
+A      glabels1/src/prop_bc_data.c
+A      glabels1/src/prop_bc_data.h
+A      glabels1/src/prop_bc_style.c
+A      glabels1/src/prop_bc_style.h
+A      glabels1/src/prop_fill.c
+A      glabels1/src/prop_fill.h
+A      glabels1/src/prop_line.c
+A      glabels1/src/prop_line.h
+A      glabels1/src/prop_position.c
+A      glabels1/src/prop_position.h
+A      glabels1/src/prop_size.c
+A      glabels1/src/prop_size.h
+A      glabels1/src/prop_text.c
+A      glabels1/src/prop_text.h
+A      glabels1/src/prop_text_entry.c
+A      glabels1/src/prop_text_entry.h
+A      glabels1/src/prop_vector.c
+A      glabels1/src/prop_vector.h
+A      glabels1/src/propertybox.c
+A      glabels1/src/propertybox.h
+A      glabels1/src/rotate_select.c
+A      glabels1/src/rotate_select.h
+A      glabels1/src/splash.c
+A      glabels1/src/splash.h
+A      glabels1/src/stock.c
+A      glabels1/src/stock.h
+A      glabels1/src/template.c
+A      glabels1/src/template.h
+A      glabels1/src/text_node.c
+A      glabels1/src/text_node.h
+A      glabels1/src/tools.c
+A      glabels1/src/tools.h
+A      glabels1/src/util.c
+A      glabels1/src/util.h
+A      glabels1/stamp-h.in
+
+commit f8b425009ad387d725524c28b79cafdc940a9b8b
+Author: (no author) <(no author)@f5e0f49d-192f-0410-a22d-a8d8700d0965>
+Date:  2002-02-24
+
+    New repository initialized by cvs2svn.
 
     git-svn-id:
-    https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@712
+    https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@1
     f5e0f49d-192f-0410-a22d-a8d8700d0965
diff --git a/ChangeLog.pre-2.2 b/ChangeLog.pre-2.2
deleted file mode 100644 (file)
index 1177cf6..0000000
+++ /dev/null
@@ -1,3891 +0,0 @@
-2007-12-21  Jim Evins  <evins@snaught.com>
-
-       * COPYING.LIBGLABELS:
-       * COPYING.README_FIRST:
-       * README:
-               Updating license information to make more complete and understandable.
-
-2007-12-16  Jim Evins  <evins@snaught.com>
-
-       * configure.in:
-               Updated version to 2.pre2.
-       * help/C/glabels.xml:
-               Updated documentation.
-       * src/ui-commands.c: (gl_ui_cmd_help_about):
-               Updated copyright string.
-
-2007-12-15  Jim Evins  <evins@snaught.com>
-
-       * data/glade/object-editor.glade:
-               Removed any GtkTable that contained a GtkComboBox because the size of
-               the combo box was not constrained properly.  This sacrifices the nice
-               orderly labels for combo boxes that don't extend beyond the edge of the
-               window.
-
-2007-12-15  Jim Evins  <evins@snaught.com>
-
-       * libglabels/db.c: (lgl_db_lookup_template_from_name):
-       * src/object-editor.c: (gl_object_editor_finalize):
-       * src/wdgt-media-select.c: (gl_wdgt_media_select_finalize):
-               Fixed several small memory leaks.
-
-2007-12-14  Jim Evins  <evins@snaught.com>
-
-       * libglabels/db.c:
-               Optimize template search by name by using a GHashTable.
-       * src/mini-preview-pixbuf-cache.c:
-       * src/mini-preview-pixbuf-cache.h:
-               Store one pixbuf per template, but use a key for each alias.
-       * src/wdgt-media-select.c:
-               Optimize loading of tree data, thus optimizing the "new label" dialog.
-
-2007-12-12  Jim Evins  <evins@snaught.com>
-
-       * data/templates/avery-us-templates.xml:
-               More templates and aliases.
-
-2007-12-08  Jim Evins  <evins@snaught.com>
-
-       * TODO:
-               More prep for 2.1.5/2.2.0.
-
-2007-12-08  Jim Evins  <evins@snaught.com>
-
-       * NEWS:
-       * README:
-       * TODO:
-       * configure.in:
-               Preparation for 2.1.5.
-
-2007-12-08  Jim Evins  <evins@snaught.com>
-
-       * docs/libglabels/libglabels-decl-list.txt:
-       * docs/libglabels/libglabels-docs.sgml:
-       * docs/libglabels/libglabels-sections.txt:
-       * docs/libglabels/libglabels-undocumented.txt:
-       * docs/libglabels/tmpl/db.sgml:
-       * docs/libglabels/tmpl/str.sgml:
-       * libglabels/str.c:
-               Documentation cleanup for libglabels.
-
-2007-11-29  Jim Evins  <evins@snaught.com>
-
-       * libglabels/db.h:
-       * libglabels/db.c:
-               Added lgl_db_does_template_name_exist().
-               In lgl_db_lookup_template_from_name() substitute brand/part of new template from
-               requested alias.
-       * src/prefs-model.c:
-               Proof read recent templates -- make sure they still exist.
-       * src/wdgt-media-select.c:
-               Default to "search all templates" tab if no recent templates found.
-
-2007-11-28  Jim Evins  <evins@snaught.com>
-
-       * data/glade/wdgt-media-select.glade:
-       * src/wdgt-media-select.c:
-               Added tabbed notebook to allow selection of recent template versus searching the
-               entire database.
-       
-
-2007-11-26  Jim Evins  <evins@snaught.com>
-
-       * libglabels/Makefile.am:
-       * libglabels/libglabels.h:
-               Make str.h public.
-       * src/label.c:
-       * src/prefs-dialog.c:
-       * src/prefs-model.c:
-       * src/prefs-model.h:
-       * src/prefs.c:
-       * src/prefs.h:
-               Added tracking of recently used templates.
-
-2007-11-20  Jim Evins  <evins@snaught.com>
-
-       * data/glade/template-designer.glade:
-       * src/template-designer.c:
-               Added warning icon when match brand and part match an existing template.
-
-2007-11-18  Jim Evins  <evins@snaught.com>
-
-       * libglabels/Makefile.am:
-       * libglabels/str.h:
-       * libglabels/str.c:
-               Added lgl_str_utf8_casecmp().
-       * libglabels/libglabels-private.h:
-               Use lgl_str_utf8_casecmp() for UTF8_EQUAL macro -- do case insensitive comparisons.
-       * libglabels/db.c: (lgl_db_get_brand_list):
-               Use lgl_str_utf8_casecmp() to determine if we have seen brand before when building
-               brand list.
-
-2007-11-18  Jim Evins  <evins@snaught.com>
-
-       * data/glade/template-designer.glade:
-       * src/template-designer.c:
-               Don't advance past name page, if brand and part match an existing template.
-
-2007-11-18  Jim Evins  <evins@snaught.com>
-
-       * libglabels/db.c: (lgl_db_register_template), (read_templates):
-               When registering a new template, don't add to "User defined" category before
-               writing to file.  Add to "User defined" category when reading from "~/.glabels"
-               directory instead.  This will allow legacy templates (and manually created
-               templates) to be automatically added to the "user defined" category.
-       * libglabels/xml-template.c:
-       (lgl_xml_template_create_template_node):
-               Fixed typo/bug causing brand to be wrong.
-       
-2007-11-16  Jim Evins  <evins@snaught.com>
-
-       * libglabels/db.c:
-       * libglabels/db.h:
-               Added return codes to lgl_db_register_template().  Added lgl_db_does_template_exist()
-               function.  Automatically create "User defined" category and add to all user
-               registered templates.
-       * libglabels/xml-template.c:
-       * libglabels/xml-template.h:
-               Return number of bytes written from lgl_xml_template_write_templates_to_file() and
-               lgl_xml_template_write_template_to_file().
-       * docs/libglabels/libglabels-decl-list.txt:
-       * docs/libglabels/libglabels-sections.txt:
-       * docs/libglabels/libglabels-undocumented.txt:
-       * docs/libglabels/tmpl/db.sgml:
-       * docs/libglabels/tmpl/xml-template.sgml:
-               Update documentation to reflect above changes.
-
-2007-10-28  Jim Evins  <evins@snaught.com>
-
-       * libglabels/xml-template.c:
-               Remove any leading white space from part #s when parsing old names.
-       * src/mini-preview-pixbuf-cache.c:
-               If name isn't in cache add it.
-
-2007-10-26  Jim Evins  <evins@snaught.com>
-
-       * libglabels/Makefile.am:
-       * libglabels/category.c:
-       * libglabels/category.h:
-       * libglabels/db.c:
-       * libglabels/db.h:
-       * libglabels/libglabels-private.h:
-       * libglabels/libglabels.h:
-       * libglabels/paper.c:
-       * libglabels/paper.h:
-       * libglabels/template.c:
-       * libglabels/template.h:
-       * libglabels/xml-template.c:
-               Another pass at screwing with the libglabels API.  Moved all
-               database related stuff to db.[ch].
-       * docs/libglabels/libglabels-decl-list.txt:
-       * docs/libglabels/libglabels-docs.sgml:
-       * docs/libglabels/libglabels-sections.txt:
-       * docs/libglabels/libglabels-undocumented.txt:
-       * docs/libglabels/tmpl/category.sgml:
-       * docs/libglabels/tmpl/db.sgml:
-       * docs/libglabels/tmpl/init.sgml:
-       * docs/libglabels/tmpl/libglabels-unused.sgml:
-       * docs/libglabels/tmpl/paper.sgml:
-       * docs/libglabels/tmpl/template-construction.sgml:
-       * docs/libglabels/tmpl/template-db.sgml:
-       * docs/libglabels/tmpl/template-misc.sgml:
-       * docs/libglabels/tmpl/template-struct.sgml:
-       * docs/libglabels/tmpl/template.sgml:
-               Updated documentation to reflect above changes to libglabels API.
-       * src/file.c:
-       * src/glabels-batch.c:
-       * src/glabels.c:
-       * src/mini-preview-pixbuf-cache.c:
-       * src/prefs-model.c:
-       * src/print.c:
-       * src/template-designer.c:
-       * src/wdgt-media-select.c:
-       * src/wdgt-mini-preview.c:
-       * src/wdgt-rotate-label.c:
-       * src/xml-label-04.c:
-       * src/xml-label.c:
-               Reconciled usage with above libglabels API changes.
-
-2007-10-21  Jim Evins  <evins@snaught.com>
-
-       * data/glade/wdgt-media-select.glade:
-       * src/wdgt-media-select.c:
-               Added brand to filter settings.
-
-2007-10-21  Jim Evins  <evins@snaught.com>
-
-       * data/dtd/glabels-2.2.dtd:
-               Forgot to replace Alias name attribute with brand and part attributes.
-       * data/templates/avery-iso-templates.xml:
-       * data/templates/avery-other-templates.xml:
-       * data/templates/avery-us-templates.xml:
-       * data/templates/misc-iso-templates.xml:
-       * data/templates/misc-other-templates.xml:
-       * data/templates/misc-us-templates.xml:
-       * data/templates/zweckform-iso-templates.xml:
-               Replaced all name attributes with brand/part attribute pairs.
-
-2007-10-20  Jim Evins  <evins@snaught.com>
-
-       * src/stock-pixmaps/*.png
-               Updated icons to use Tango color palette.
-       
-2007-10-20  Jim Evins  <evins@snaught.com>
-
-       * data/dtd/Makefile.am:
-       * data/dtd/glabels-2.0.dtd:
-       * data/dtd/glabels-2.2.dtd:
-               Rename glabels-2.0.dtd to glabels-2.2.dtd.  Added brand and part attributes to
-               template node.
-       * libglabels/template.c:
-       * libglabels/template.h:
-       * libglabels/xml-template.c:
-       * libglabels/xml.h:
-               Added brand and part attributes to template and alias structures and nodes.
-       * src/file.c:
-       * src/label.c:
-       * src/mini-preview-pixbuf-cache.c:
-       * src/template-designer.c:
-       * src/wdgt-media-select.c:
-               Use modified libglabels API.
-       * docs/libglabels/libglabels-decl-list.txt:
-       * docs/libglabels/libglabels-sections.txt:
-       * docs/libglabels/libglabels-undocumented.txt:
-       * docs/libglabels/tmpl/template-construction.sgml:
-       * docs/libglabels/tmpl/template-db.sgml:
-       * docs/libglabels/tmpl/template-struct.sgml:
-               Update libglabels documentation to reflect above modifications.
-
-2007-10-14  Jim Evins  <evins@snaught.com>
-
-       * docs/libglabels/libglabels-decl-list.txt:
-       * docs/libglabels/libglabels-sections.txt:
-       * docs/libglabels/libglabels-undocumented.txt:
-       * docs/libglabels/tmpl/category.sgml:
-       * libglabels/category.c:
-       * libglabels/category.h:
-               Added lgl_category_get_id_list() and lgl_category_free_id_list() to have
-       parity with paper functions.
-
-2007-10-12  Jim Evins  <evins@snaught.com>
-
-       * docs/libglabels/libglabels-decl-list.txt:
-       * docs/libglabels/libglabels-sections.txt:
-       * docs/libglabels/libglabels-undocumented.txt:
-       * docs/libglabels/tmpl/category.sgml:
-       * docs/libglabels/tmpl/enums.sgml:
-       * docs/libglabels/tmpl/libglabels-unused.sgml:
-       * docs/libglabels/tmpl/paper.sgml:
-       * docs/libglabels/tmpl/template-struct.sgml:
-       * libglabels/init.c:
-       * libglabels/template.c:
-       * libglabels/template.h:
-               Another pass at fleshing out the libglabels documentation.
-       * src/cairo-label-path.c:
-       * src/cairo-markup-path.c:
-       * src/label.c:
-       * src/mini-preview-pixbuf.c:
-       * src/print-op.c:
-       * src/print.c:
-       * src/view.c:
-       * src/wdgt-media-select.c:
-       * src/wdgt-mini-preview.c:
-       * src/wdgt-print-copies.c:
-       * src/wdgt-print-merge.c:
-       * src/wdgt-rotate-label.c:
-               Removed lgl_template_get_first_frame() from libglabels API and all references.
-
-2007-10-11  Jim Evins  <evins@snaught.com>
-       * configure.in:
-               Extended checks for deprecated symbols.
-       * libglabels/template.c:
-               Removed g_strcasecmp references, which are deprecated.
-
-2007-10-09  Jim Evins  <evins@snaught.com>
-
-       * src/merge-evolution.c:
-               Create address book if it does not exist.  Also, be more robust about handling
-               error conditions -- don't just assume GError has been set.
-
-2007-10-08  Jim Evins  <evins@snaught.com>
-
-       * libglabels/template.c:
-       * libglabels/xml-template.c:
-       * src/template-designer.c:
-               Missed some symbols with libglabels API work.
-
-2007-10-01  Jim Evins  <evins@snaught.com>
-
-       * docs/libglabels/libglabels-decl-list.txt:
-       * docs/libglabels/libglabels-docs.sgml:
-       * docs/libglabels/libglabels-sections.txt:
-       * docs/libglabels/libglabels-undocumented.txt:
-       * docs/libglabels/tmpl/category.sgml:
-       * docs/libglabels/tmpl/enums.sgml:
-       * docs/libglabels/tmpl/init.sgml:
-       * docs/libglabels/tmpl/libglabels-unused.sgml:
-       * docs/libglabels/tmpl/paper.sgml:
-       * docs/libglabels/tmpl/template-construction.sgml:
-       * docs/libglabels/tmpl/template-db.sgml:
-       * docs/libglabels/tmpl/template-misc.sgml:
-       * docs/libglabels/tmpl/template-struct.sgml:
-       * docs/libglabels/tmpl/template.sgml:
-       * docs/libglabels/tmpl/xml-category.sgml:
-       * docs/libglabels/tmpl/xml-template.sgml:
-       * libglabels/category.h:
-       * libglabels/init.c:
-       * libglabels/libglabels-private.h:
-       * libglabels/paper.h:
-       * libglabels/template.c:
-       * libglabels/template.h:
-       * libglabels/xml-template.h:
-               Basic documentation framework for libglabels updated.  This still needs some
-               fleshing out.
-       
-2007-09-27  Jim Evins  <evins@snaught.com>
-
-       * docs/libglabels/libglabels-decl-list.txt:
-       * docs/libglabels/libglabels-docs.sgml:
-       * docs/libglabels/libglabels-sections.txt:
-       * docs/libglabels/libglabels-undocumented.txt:
-       * docs/libglabels/tmpl/enums.sgml:
-       * docs/libglabels/tmpl/init.sgml:
-       * docs/libglabels/tmpl/libglabels-unused.sgml:
-       * docs/libglabels/tmpl/paper.sgml:
-       * docs/libglabels/tmpl/template.sgml:
-       * docs/libglabels/tmpl/xml-paper.sgml:
-       * docs/libglabels/tmpl/xml-template.sgml:
-       * docs/libglabels/tmpl/xml.sgml:
-       * libglabels/Makefile.am:
-       * libglabels/category.c:
-       * libglabels/category.h:
-       * libglabels/enums.h:
-       * libglabels/init.c:
-       * libglabels/init.h:
-       * libglabels/libglabels-private.h:
-       * libglabels/libglabels.h:
-       * libglabels/paper.c:
-       * libglabels/paper.h:
-       * libglabels/template.c:
-       * libglabels/template.h:
-       * libglabels/xml-category.c:
-       * libglabels/xml-category.h:
-       * libglabels/xml-paper.c:
-       * libglabels/xml-paper.h:
-       * libglabels/xml-template.c:
-       * libglabels/xml-template.h:
-       * libglabels/xml.c:
-       * libglabels/xml.h:
-       * src/cairo-label-path.c:
-       * src/cairo-label-path.h:
-       * src/cairo-markup-path.c:
-       * src/cairo-markup-path.h:
-       * src/file.c:
-       * src/glabels-batch.c:
-       * src/glabels.c:
-       * src/label-object.c:
-       * src/label.c:
-       * src/label.h:
-       * src/mini-preview-pixbuf-cache.c:
-       * src/mini-preview-pixbuf.c:
-       * src/mini-preview-pixbuf.h:
-       * src/prefs-dialog.c:
-       * src/prefs-model.c:
-       * src/prefs-model.h:
-       * src/prefs.c:
-       * src/prefs.h:
-       * src/print-op.c:
-       * src/print.c:
-       * src/template-designer.c:
-       * src/view-barcode.c:
-       * src/view-box.c:
-       * src/view-ellipse.c:
-       * src/view-image.c:
-       * src/view-line.c:
-       * src/view.c:
-       * src/wdgt-media-select.c:
-       * src/wdgt-mini-preview.c:
-       * src/wdgt-mini-preview.h:
-       * src/wdgt-print-copies.c:
-       * src/wdgt-print-merge.c:
-       * src/wdgt-rotate-label.c:
-       * src/xml-label-04.c:
-       * src/xml-label.c:
-               Major cleanup of libglabels API -- this breaks API compatibility with older
-               development and stable versions -- as far as I know, there are currently
-               no external users of this library yet.
-       
-2007-09-14  Jim Evins  <evins@snaught.com>
-
-       * src/marshal.list:
-       * src/label.c:
-       * src/label.h:
-       * src/label-object.c:
-       * src/label-object.h:
-       * src/label-barcode.c:
-       * src/label-ellipse.c:
-       * src/view.c:
-       * src/view-object.c:
-       * src/view-barcode.c:
-       * src/view-box.c:
-       * src/view-ellipse.c:
-       * src/view-image.c:
-       * src/view-line.c:
-       * src/view-text.c:
-               Better separation of model from view.
-
-2007-08-21  Jim Evins  <evins@snaught.com>
-
-       * src/print-op.c: (create_custom_widget_cb):
-               Fix problem with force_outline_flag -- don't override with default.
-
-2007-08-21  Jim Evins  <evins@snaught.com>
-
-       * data/dtd/glabels-2.0.dtd:
-       * libglabels/template.c:
-       * libglabels/template.h:
-       * libglabels/xml-template.c:
-       * src/cairo-markup-path.c:
-               Added "Markup-rect" element to template format.
-
-2007-08-21  Jim Evins  <evins@snaught.com>
-
-       * configure.in:
-               Changed version to 2.1.pre5svn.
-       * src/view.c: (draw_markup_layer):
-               Do a stroke for each markup path, otherwise multiple markups
-               get connected.
-
-2007-08-17  Jim Evins  <evins@snaught.com>
-
-       * configure.in:
-               Bump libglabels revision numbers for 2.1.4 release.
-
-2007-08-16  Jim Evins  <evins@snaught.com>
-
-       * Makefile.am:
-               Include subdir iec16022-0.2.1.
-       * NEWS:
-       * configure.in:
-       * glabels.spec.in:
-               Preparation for 2.1.4.
-       
-
-2007-08-11  Jim Evins  <evins@snaught.com>
-
-       * po/POTFILES.in:
-               Updated file list.
-       * configure.in:
-       * po/eo.po:
-               Added Esperanto translation.  Provided by Antonio C.
-               Codazzi "la Filozofo" <f_sophia@libero.it>.
-       * po/fr.po:
-               Updated French translation. Provided by Claude Paroz
-               <claude@2xlibre.net>.
-       * AUTHORS:
-               Updated to reflect above translations.
-
-2007-08-11  Jim Evins  <evins@snaught.com>
-
-       * AUTHORS:
-       * data/templates/avery-iso-templates.xml:
-       * data/templates/avery-us-templates.xml:
-       * data/templates/misc-iso-templates.xml:
-       * data/templates/misc-other-templates.xml:
-       * data/templates/misc-us-templates.xml:
-       * data/templates/zweckform-iso-templates.xml:
-               Caught up with backlog of template submissions.
-
-2007-08-10  Jim Evins  <evins@snaught.com>
-
-       * src/bc-postnet.c: (gl_barcode_postnet_new):
-       * src/bc.c:
-               Added support for Brazilian CEPNet barcodes.  This is simply an
-               instance of the US POSTNET format with 8 digits.  Patch supplied
-               by Mário Meyer in bug # 1768792.
-       * AUTHORS:
-               Updated acknowledgments to reflect above patch and recent shuffling
-               of underlying technology.
-
-2007-05-13  Jim Evins  <evins@snaught.com>
-
-       * src/merge-text.c: (parse_line), (parse_field):
-               Remove leading and trailing spaces from CSV fields, unless quoted.
-
-2007-05-09  Jim Evins  <evins@snaught.com>
-
-       * src/object-editor-bc-page.c:
-       * src/object-editor-data-page.c:
-       * src/object-editor-fill-page.c:
-       * src/object-editor-image-page.c:
-       * src/object-editor-line-page.c:
-       * src/object-editor-lsize-page.c:
-       * src/object-editor-position-page.c:
-       * src/object-editor-private.h:
-       * src/object-editor-shadow-page.c:
-       * src/object-editor-size-page.c:
-       * src/object-editor-text-page.c:
-       * src/object-editor.c:
-       * src/prefs-dialog.c:
-       * src/template-designer.c:
-       * src/ui-property-bar.c:
-       * src/wdgt-media-select.c:
-               Replaced signal block/unblock pairs with simple flags.  This reduces
-               some code clutter, hopefully making it easier to read.
-
-2007-05-05  Jim Evins  <evins@snaught.com>
-
-       * src/template-designer.c: (apply_cb):
-               Add new template to mini-preview pixbuf cache.
-
-2007-05-03  Jim Evins  <evins@snaught.com>
-
-       * src/label-image.c: (gl_label_image_init), (draw_object):
-               Scale default pixbuf up, to prevent bluring.  Use cairo_fill to
-               render image.
-
-2007-05-02  Jim Evins  <evins@snaught.com>
-
-       * src/view.c: (draw_select_region_layer), (motion_notify_event_cb),
-       (button_release_event_cb):
-               Removed attempt at rendering optimization by clipping the updates
-               to areas affected -- this actually seemed to hurt update performance.
-
-2007-04-30  Jim Evins  <evins@snaught.com>
-
-       * src/color.h:
-       * src/color.c: (gl_color_shadow), (gl_color_node_new_default),
-       (gl_color_node_equal), (gl_color_node_expand):
-       * src/label-barcode.c: (draw_object):
-       * src/label-box.c: (draw_object), (draw_shadow):
-       * src/label-ellipse.c: (draw_object), (draw_shadow):
-       * src/label-line.c: (draw_object), (draw_shadow):
-       * src/label-text.c: (draw_object), (draw_shadow):
-       * src/wdgt-mini-preview.c: (draw_shadow), (draw_labels):
-       * src/wdgt-rotate-label.c: (drawingarea_update):
-               Some cleanup to color related code.
-
-2007-04-30  Jim Evins  <evins@snaught.com>
-
-       * src/label.h:
-               Added glLabelRegion structure type.
-       * src/label-object.c: (gl_label_object_get_extent):
-       * src/label-object.h:
-               Modified gl_label_object_get_extent() to fill in a glLabelRegion struct.
-       * src/view.h:
-       * src/view.c: (gl_view_update_region), (draw_select_region_layer),
-       (gl_view_select_region), (gl_view_align_selection_left),
-       (gl_view_align_selection_right), (gl_view_align_selection_hcenter),
-       (gl_view_align_selection_top), (gl_view_align_selection_bottom),
-       (gl_view_align_selection_vcenter),
-       (gl_view_center_selection_horiz), (gl_view_center_selection_vert),
-       (gl_view_move_selection), (gl_view_can_selection_text),
-       (motion_notify_event_cb), (button_press_event_cb),
-       (button_release_event_cb):
-               - Reconcile with new gl_label_object_get_extent() API.
-               - Use glLabelRegion for view->select_region.
-               - Added gl_view_update_region() to clip updates to region.
-               - Use gl_view_update_region() during manipulation of view->select_region.
-
-2007-04-26  Jim Evins  <evins@snaught.com>
-
-       * src/mini-preview-pixbuf.c: (draw_paper), (draw_label_outlines),
-       (draw_label_outline):
-       * src/print.c: (print_crop_marks), (draw_outline):
-       * src/view-object.c: (gl_view_object_draw_handles):
-       * src/view.c: (draw_bg_layer), (draw_grid_layer),
-       (draw_markup_layer), (draw_fg_layer), (draw_select_region_layer):
-       * src/wdgt-mini-preview.c: (draw_paper), (draw_labels):
-       * src/wdgt-rotate-label.c: (drawingarea_update):
-               Added defines for various magic numbers.
-
-2007-04-25  Jim Evins  <evins@snaught.com>
-
-       * src/label-text.c: (get_size), (draw_object), (draw_shadow):
-               Scale text down.  Cairo seems to render text too large.
-
-2007-04-25  Jim Evins  <evins@snaught.com>
-
-       * src/view.h:
-       * src/view.c: (gl_view_update), (expose_cb),
-       (motion_notify_event_cb), (button_press_event_cb),
-       (button_release_event_cb):
-               - Try not to let updates get backed up.
-               - Grab pointer when doing any drag operations.
-
-2007-04-11  Jim Evins  <evins@snaught.com>
-
-       * src/cairo-label-path.c: (gl_cairo_label_path),
-       (gl_cairo_rect_label_path), (gl_cairo_round_label_path),
-       (gl_cairo_cd_label_path):
-       * src/cairo-label-path.h:
-       * src/mini-preview-pixbuf.c: (draw_paper), (draw_label_outlines),
-       (draw_label_outline):
-       * src/print.c: (draw_outline), (clip_to_outline):
-       * src/view.c: (draw_bg_layer), (draw_fg_layer):
-       * src/wdgt-mini-preview.c: (draw_labels):
-       * src/wdgt-rotate-label.c: (drawingarea_update):
-               Modified to universally use gl_cairo_label_path() to create paths
-               for labels.  Added shadow to mini preview in rotate widget.
-
-2007-04-10  Jim Evins  <evins@snaught.com>
-
-       * libglabels/template.h:
-       * libglabels/template.c: (gl_template_get_name_list_unique),
-       (gl_template_get_name_list_all), (gl_template_from_name):
-               Modified libglabels to allow you to get a list of all template names
-               including all aliases or just a list of primary names of each unique
-               template.
-       * src/Makefile.am:
-       * src/file.c: (gl_file_properties):
-       * src/glabels.c: (main):
-       * src/mini-preview-pixbuf-cache.h:
-       * src/mini-preview-pixbuf-cache.c:
-       * src/wdgt-media-select.c: (gl_wdgt_media_select_construct),
-       (filter_changed_cb), (load_list):
-               Added mini-preview pixbuf cache, so that only one mini-preview is
-               needed for a unique template and gets reused for all aliases.  These
-               pixbufs will also live for the life of the program so they are not
-               rebuilt everytime a new label dialog is invoked.
-       * src/mini-preview-pixbuf.c: (draw_paper),
-       (draw_rect_label_outline), (draw_round_label_outline),
-       (draw_cd_label_outline):
-               Removed some comment artifacts.
-
-2007-04-04  Jim Evins  <evins@snaught.com>
-
-       * src/mini-preview-pixbuf.c: (gl_mini_preview_pixbuf_new),
-       (draw_paper), (draw_label_outlines), (draw_rect_label_outline),
-       (draw_round_label_outline), (draw_cd_label_outline):
-       * src/wdgt-media-select.c: (load_list):
-       * src/wdgt-rotate-label.c: (draw_cd_label_outline):
-               Cosmetic enhancments to mini previews.
-
-2007-04-04  Jim Evins  <evins@snaught.com>
-
-       * src/ui-property-bar.c: (gl_ui_property_bar_finalize),
-       (gl_ui_property_bar_construct):
-               Save copy of GladeXML tree so that we don't lose tooltips.
-
-2007-04-02  Jim Evins  <evins@snaught.com>
-
-       * src/merge-properties-dialog.c:
-       * src/new-label-dialog.c:
-       * src/object-editor.c:
-       * src/prefs-dialog.c:
-       * src/print-op.c:
-       * src/template-designer.c:
-       * src/ui-property-bar.c:
-       * src/wdgt-media-select.c:
-       * src/wdgt-rotate-label.c:
-               Fixed several memory leaks.
-
-2007-04-01  Jim Evins  <evins@snaught.com>
-
-       * src/label-text.c: (gl_label_text_init), (copy),
-       (gl_label_text_set_lines), (buffer_changed_cb), (get_size),
-       (set_font_family), (set_font_size), (set_font_weight),
-       (set_font_italic_flag), (set_text_alignment),
-       (set_text_line_spacing):
-               Cache object size, so that expensive extent calculations are only done
-               when needed.
-
-2007-03-30  Jim Evins  <evins@snaught.com>
-
-       * src/prefs-model.c: (gl_prefs_model_load_settings):
-               Default to an unlimited list of recent documents, since this parameter
-               seems to be pre-filter anyway.
-
-2007-03-30  Jim Evins  <evins@snaught.com>
-
-       * src/label-box.c: (draw_shadow):
-       * src/label-ellipse.c: (draw_shadow):
-               Added missing shadow fill.
-       
-2007-03-28  Jim Evins  <evins@snaught.com>
-
-       * src/ui-commands.c: (gl_ui_cmd_file_print):
-               Unreferencing the print operation sometimes crashes.  Just don't do it
-               right now.
-
-2007-03-28  Jim Evins  <evins@snaught.com>
-
-       * src/print-op.c: (gl_print_op_construct),
-       (gl_print_op_get_settings), (gl_print_op_set_settings),
-       (gl_print_op_free_settings), (create_custom_widget_cb):
-       * src/print-op.h:
-       * src/ui-commands.c: (gl_ui_cmd_file_print):
-       * src/window.c: (gl_window_init):
-       * src/window.h:
-               Save print settings and custom settings between print operations
-               on the same window.
-
-2007-03-24  Jim Evins  <evins@snaught.com>
-
-       * src/object-editor-image-page.c:
-       (gl_object_editor_prepare_image_page),
-       (gl_object_editor_set_image), (img_selection_changed_cb):
-               Workaround for GtkFileChooserButton bug # 327243.  This the root
-               cause for gLabels bug # 1192884.  I have actually observed 3 delayed
-               "selection-changed" signals -- the first 2 return NULL -- this is
-               what caused the image to reset to the default followed by setting
-               it back to the original image, trying to fit it into a new bounding
-               box.  This sequence of events is much more evident with the new
-               cairo rendering.
-
-2007-03-23  Jim Evins  <evins@snaught.com>
-
-       Merged all changes from experimental cairo branch to trunk.
-       Trunk no longer depends on libgnomecanvas or libgnomeprint[ui].
-
-2007-03-23  Jim Evins  <evins@snaught.com>
-
-       * src/label-object.h:
-       * src/label-object.c: (gl_label_object_class_init),
-       (gl_label_object_get_raw_size), (gl_label_object_get_size):
-               Created "get_raw_size" method.
-       * src/label-barcode.c: (get_size):
-       * src/xml-label.c: (xml_create_object_text),
-       (xml_create_object_barcode):
-               Use new "get_raw_size" method on label-objects when apropos.
-       * src/label-text.h:
-       * src/label-text.c: (get_size), (draw_object), (draw_shadow),
-       (auto_shrink_font_size):
-               Added "auto shrink" functionality back.
-
-2007-03-19  Jim Evins  <evins@snaught.com>
-
-       * src/label-text.c: (draw_object), (draw_shadow):
-               Don't use negative scales in workaround from previous commit.
-       
-
-2007-03-18  Jim Evins  <evins@snaught.com>
-
-       * src/xml-label.c:
-               Forgot to remove include of xml-lable-191 in previous commit.
-       * src/label-text.c: (get_size), (draw_object), (draw_shadow):
-               Workaround for pango Bug #341481.  Render text at device scale,
-               and scale font size accordingly.  Also, don't do any hinting.
-
-2007-03-18  Jim Evins  <evins@snaught.com>
-
-       * src/cairo-ellipse-path.c:
-       * src/cairo-ellipse-path.h:
-               Forgot to add these new files during last mass commit.
-
-2007-03-18  Jim Evins  <evins@snaught.com>
-
-       * src/Makefile.am:
-       * src/xml-label-191.c:
-       * src/xml-label-191.h:
-               Removed -- Very buggy.  Version 1.91 is a very old "unstable" version,
-               so there is no need to keep compatability.
-       * src/base64.c:
-       * src/bc-iec16022.c:
-       * src/cairo-label-path.c:
-       * src/cairo-label-path.h:
-       * src/cairo-markup-path.c:
-       * src/color.c:
-       * src/debug.c:
-       * src/file.c:
-       * src/glabels-batch.c:
-       * src/glabels.c:
-       * src/label-barcode.c:
-       * src/label-box.c:
-       * src/label-ellipse.c:
-       * src/label-image.c:
-       * src/label-line.c:
-       * src/label-object.c:
-       * src/label-object.h:
-       * src/label-text.c:
-       * src/label.c:
-       * src/label.h:
-       * src/merge-properties-dialog.c:
-       * src/merge.c:
-       * src/new-label-dialog.c:
-       * src/object-editor-bc-page.c:
-       * src/object-editor-data-page.c:
-       * src/object-editor-edit-page.c:
-       * src/object-editor-fill-page.c:
-       * src/object-editor-image-page.c:
-       * src/object-editor-line-page.c:
-       * src/object-editor-private.h:
-       * src/object-editor-shadow-page.c:
-       * src/object-editor-text-page.c:
-       * src/object-editor.c:
-       * src/pixbuf-cache.c:
-       * src/print-op.c:
-       * src/print.c:
-       * src/recent.c:
-       * src/stock.c:
-       * src/template-designer.c:
-       * src/text-node.c:
-       * src/ui-property-bar.c:
-       * src/ui.c:
-       * src/view-barcode.c:
-       * src/view-box.c:
-       * src/view-ellipse.c:
-       * src/view-image.c:
-       * src/view-line.c:
-       * src/view-object.c:
-       * src/view-object.h:
-       * src/view-text.c:
-       * src/view.c:
-       * src/wdgt-media-select.c:
-       * src/wdgt-print-copies.c:
-       * src/wdgt-print-merge.c:
-       * src/window.c:
-       * src/xml-label-04.c:
-       * src/xml-label.c:
-               Many changes, including:
-               - Move draw methods from view-*() to label-*().
-               - Use same drawing code for on screen view and printing.
-               - Fix all issues exposed with '-Wall -Werror'.
-
-2007-03-14  Jim Evins  <evins@snaught.com>
-
-       * src/Makefile.am:
-       * src/cairo-handle-path.c:
-       * src/cairo-handle-path.h:
-       * src/cairo-object-path.c:
-       * src/cairo-object-path.h:
-               Removed cairo-handle-path.[ch] and cairo-object-path.[ch].
-       * src/view-barcode.c: (gl_view_barcode_class_init), (draw_object),
-       (object_at):
-       * src/view-box.c: (gl_view_box_class_init), (draw_object),
-       (draw_shadow), (object_at):
-       * src/view-ellipse.c: (gl_view_ellipse_class_init),
-       (create_ellipse_path), (draw_object), (draw_shadow), (object_at):
-       * src/view-image.c: (gl_view_image_class_init), (draw_object),
-       (object_at):
-       * src/view-line.c: (gl_view_line_class_init), (draw_object),
-       (draw_shadow), (object_at):
-       * src/view-object.c: (gl_view_object_draw), (gl_view_object_at),
-       (create_handle_path), (gl_view_object_draw_handles),
-       (gl_view_object_handle_at):
-       * src/view-object.h:
-       * src/view-text.c: (gl_view_text_class_init), (draw_object),
-       (draw_shadow), (object_at):
-       * src/view.c: (motion_notify_event_cb), (button_press_event_cb):
-               Some restructuring of new code.
-
-2007-03-12  Jim Evins  <evins@snaught.com>
-
-       * src/Makefile.am:
-       * src/cairo-object-path.c:
-       * src/view-barcode.c:
-       * src/view-barcode.h:
-       * src/view.c:
-               Added barcode object support to view.
-
-2007-03-12  Jim Evins  <evins@snaught.com>
-
-       * src/Makefile.am:
-       * src/view-text.h:
-       * src/view-text.c:
-       * src/view.c:
-       * src/cairo-object-path.c:
-       * src/cairo-object-path.h:
-       * src/view-box.c:
-       * src/view-ellipse.c:
-       * src/view-image.c:
-       * src/view-line.c:
-       * src/view-object.c:
-       * src/view-object.h:
-               Added text object support to view.  Added object_at method to all
-               view_objects.
-
-2007-03-11  Jim Evins  <evins@snaught.com>
-
-       * src/Makefile.am:
-       * src/cairo-object-path.c: (gl_cairo_object_path),
-       (gl_cairo_image_object_path):
-       * src/view-image.c: (gl_view_image_class_init),
-       (gl_view_image_finalize), (gl_view_image_new),
-       (update_editor_from_label_cb), (draw),
-       (gl_view_image_get_create_cursor),
-       (gl_view_image_create_button_press_event),
-       (gl_view_image_create_motion_event),
-       (gl_view_image_create_button_release_event):
-       * src/view-image.h:
-       * src/view.c: (gl_view_construct), (gl_view_object_create_mode),
-       (selection_received_cb), (motion_notify_event_cb),
-       (button_press_event_cb), (button_release_event_cb):
-               Added image object support to view.
-
-2007-03-11  Jim Evins  <evins@snaught.com>
-
-       * src/Makefile.am:
-       * src/cairo-object-path.c: (gl_cairo_object_path),
-       (gl_cairo_line_object_path):
-       * src/view-line.c: (gl_view_line_class_init), (gl_view_line_new),
-       (update_object_from_editor_cb), (update_editor_from_object_cb),
-       (update_editor_from_label_cb), (draw),
-       (gl_view_line_get_create_cursor),
-       (gl_view_line_create_button_press_event),
-       (gl_view_line_create_motion_event),
-       (gl_view_line_create_button_release_event):
-       * src/view-line.h:
-       * src/view-object.c: (gl_view_object_resize_event):
-       * src/view.c: (gl_view_construct), (gl_view_object_create_mode),
-       (selection_received_cb), (motion_notify_event_cb),
-       (button_press_event_cb), (button_release_event_cb):
-               Added line object support to view.
-       * src/cairo-handle-path.c:
-               Made handles slightly larger.
-
-
-2007-03-11  Jim Evins  <evins@snaught.com>
-
-       * src/Makefile.am:
-       * src/cairo-handle-path.c:
-       * src/cairo-label-path.c: (gl_cairo_rect_label_path),
-       (gl_cairo_round_label_path), (gl_cairo_cd_label_path):
-       * src/cairo-markup-path.c: (gl_cairo_markup_margin_rect_path),
-       (gl_cairo_markup_margin_round_path),
-       (gl_cairo_markup_margin_cd_path), (gl_cairo_markup_circle_path):
-       * src/cairo-object-path.c: (gl_cairo_object_path),
-       (gl_cairo_ellipse_object_path):
-       * src/label-object.c: (gl_label_object_rotate):
-       * src/view-box.c:
-       * src/view-box.h:
-       * src/view-ellipse.c: (gl_view_ellipse_class_init),
-       (gl_view_ellipse_new), (update_object_from_editor_cb),
-       (update_editor_from_object_cb), (update_editor_from_label_cb),
-       (draw), (gl_view_ellipse_get_create_cursor),
-       (gl_view_ellipse_create_button_press_event),
-       (gl_view_ellipse_create_motion_event),
-       (gl_view_ellipse_create_button_release_event):
-       * src/view-ellipse.h:
-       * src/view-object.c:
-       * src/view-object.h:
-       * src/view.c: (gl_view_construct), (gl_view_object_create_mode),
-       (select_object_real), (selection_received_cb),
-       (motion_notify_event_cb), (button_press_event_cb),
-       (button_release_event_cb):
-       * src/view.h:
-               Added ellipse object support to view.  Plus other cleanup.
-
-2007-03-11  Jim Evins  <evins@snaught.com>
-
-       * src/view-box.h:
-       * src/view-box.c: (gl_view_box_get_create_cursor),
-       (gl_view_box_create_button_press_event),
-       (gl_view_box_create_motion_event),
-       (gl_view_box_create_button_release_event):
-       * src/view-object.c: (gl_view_object_set_view),
-       (gl_view_object_handle_at):
-       * src/view.h:
-       * src/view.c: (gl_view_arrow_mode), (gl_view_object_create_mode),
-       (motion_notify_event_cb), (button_press_event_cb),
-       (button_release_event_cb), (key_press_event_cb):
-               Added creation code for box object.
-
-2007-03-09  Jim Evins  <evins@snaught.com>
-
-       * src/view-object.c: (gl_view_object_resize_event):
-       * src/view-object.h:
-       * src/view.c: (motion_notify_event_cb):
-               Fix bugs with resizing transformed objects.
-       * src/cairo-handle-path.c: (gl_cairo_handle_path):
-       * src/cairo-object-path.c: (gl_cairo_object_path):
-       * src/cairo-object-path.h:
-       * src/label-object.c: (gl_label_object_init),
-       (gl_label_object_dup), (gl_label_object_get_extent),
-       (gl_label_object_flip_horiz), (gl_label_object_flip_vert),
-       (gl_label_object_rotate), (gl_label_object_set_matrix),
-       (gl_label_object_get_matrix):
-       * src/label-object.h:
-       * src/print.c: (draw_object):
-       * src/view-box.c:
-       * src/view-highlight.c:
-       * src/view-highlight.h:
-       * src/xml-label-191.c: (xml191_parse_object):
-       * src/xml-label.c: (xml_parse_affine_attrs),
-       (xml_create_affine_attrs):
-               Replace libart affine matrices with cairo matrices.
-
-2007-03-08  Jim Evins  <evins@snaught.com>
-
-       * src/view-object.h:
-       * src/view.c: (gl_view_update), (motion_notify_event_cb):
-       * src/view-object.c: (gl_view_object_handle_at),
-       (gl_view_object_resize_event):
-               Added resize code -- still a bit buggy.
-       
-2007-03-07  Jim Evins  <evins@snaught.com>
-
-       * src/Makefile.am:
-       * src/cairo-handle-path.c:
-       * src/cairo-handle-path.h:
-       * src/view-box.c: (gl_view_box_new):
-       * src/view-object.c: (gl_view_object_set_object),
-       (gl_view_object_draw_handles), (gl_view_object_handle_at):
-       * src/view-object.h:
-       * src/view.c: (draw_highlight_layer), (select_object_real),
-       (unselect_object_real), (view_handle_at), (motion_notify_event_cb),
-       (button_press_event_cb), (button_release_event_cb),
-       (key_press_event_cb):
-       * src/view.h:
-               Added beginnings of object resize handles.
-
-2007-03-07  Jim Evins  <evins@snaught.com>
-
-       * src/view.h:
-       * src/view.c: (gl_view_init), (gl_view_arrow_mode),
-       (gl_view_object_create_mode), (motion_notify_event_cb),
-       (button_press_event_cb), (button_release_event_cb),
-       (key_press_event_cb):
-               Added move selection support.
-
-2007-03-05  Jim Evins  <evins@snaught.com>
-
-       * src/cairo-object-path.c: (gl_cairo_object_path):
-       * src/view-object.c: (gl_view_object_draw),
-       (gl_view_object_draw_highlight):
-       * src/view.c: (view_object_at), (motion_notify_event_cb),
-       (button_press_event_cb), (button_release_event_cb):
-               Additional refinements to select logic.
-
-2007-03-05  Jim Evins  <evins@snaught.com>
-
-       * src/view.h:
-       * src/view.c: (gl_view_init), (gl_view_construct),
-       (label_changed_cb), (draw_layers), (draw_select_region_layer),
-       (gl_view_select_region), (object_at), (motion_notify_event_cb),
-       (button_press_event_cb), (button_release_event_cb):
-               Added initial select region support and context menu.
-
-2007-03-04  Jim Evins  <evins@snaught.com>
-
-       * configure.in:
-       * src/Makefile.am:
-       * src/debug.c:
-       * src/debug.h:
-       * src/file.c:
-       * src/label.c:
-       * src/label.h:
-       * src/print-op.c:
-       * src/print.c:
-       * src/ui-commands.c:
-       * src/view-box.c:
-       * src/view-box.h:
-       * src/view-object.c:
-       * src/view-object.h:
-       * src/view.c:
-       * src/view.h:
-       * src/wdgt-print-copies.c:
-       * src/wdgt-print-merge.c:
-       * src/xml-label.c:
-               Initial port to a raw Cairo canvas.  This removes all remaining
-               dependencies on libgnomecanvas and libgnomeprint[ui].  Basically
-               the view is becoming a canvas widget in its own right.  Still needs
-               a lot of work.
-       * src/cairo-label-path.c:
-       * src/cairo-label-path.h:
-       * src/cairo-markup-path.c:
-       * src/cairo-markup-path.h:
-       * src/cairo-object-path.c:
-       * src/cairo-object-path.h:
-               New files to support cairo canvas.
-       * src/canvas-hacktext.c:
-       * src/canvas-hacktext.h:
-               Removed.
-
-2007-02-18  Jim Evins  <evins@snaught.com>
-
-       * src/bc.h:
-               GNOME_FONT_BOOK changed to PANGO_WEIGHT_NORMAL.
-
-2007-02-14  Jim Evins  <evins@snaught.com>
-
-       * src/base64.c:
-       * src/base64.h:
-       * src/bc-gnubarcode.c:
-       * src/bc-gnubarcode.h:
-       * src/bc-postnet.c:
-       * src/bc-postnet.h:
-       * src/bc.c:
-       * src/bc.h:
-       * src/canvas-hacktext.c:
-       * src/canvas-hacktext.h:
-       * src/debug.c:
-       * src/debug.h:
-       * src/file.c:
-       * src/file.h:
-       * src/glabels.c:
-       * src/hig.h:
-       * src/label-barcode.c:
-       * src/label-barcode.h:
-       * src/label-box.c:
-       * src/label-box.h:
-       * src/label-ellipse.c:
-       * src/label-ellipse.h:
-       * src/label-image.c:
-       * src/label-image.h:
-       * src/label-line.c:
-       * src/label-line.h:
-       * src/label-object.c:
-       * src/label-object.h:
-       * src/label-text.c:
-       * src/label-text.h:
-       * src/label.c:
-       * src/label.h:
-       * src/merge-evolution.c:
-       * src/merge-evolution.h:
-       * src/merge-init.c:
-       * src/merge-init.h:
-       * src/merge-properties-dialog.c:
-       * src/merge-properties-dialog.h:
-       * src/merge-text.c:
-       * src/merge-text.h:
-       * src/merge-vcard.c:
-       * src/merge-vcard.h:
-       * src/merge.c:
-       * src/merge.h:
-       * src/mini-preview-pixbuf.h:
-       * src/new-label-dialog.c:
-       * src/new-label-dialog.h:
-       * src/object-editor-bc-page.c:
-       * src/object-editor-data-page.c:
-       * src/object-editor-edit-page.c:
-       * src/object-editor-fill-page.c:
-       * src/object-editor-image-page.c:
-       * src/object-editor-line-page.c:
-       * src/object-editor-lsize-page.c:
-       * src/object-editor-position-page.c:
-       * src/object-editor-private.h:
-       * src/object-editor-size-page.c:
-       * src/object-editor-text-page.c:
-       * src/object-editor.c:
-       * src/object-editor.h:
-       * src/pixbuf-cache.c:
-       * src/pixbuf-cache.h:
-       * src/prefs-dialog.c:
-       * src/prefs-dialog.h:
-       * src/prefs-model.c:
-       * src/prefs-model.h:
-       * src/prefs.c:
-       * src/prefs.h:
-       * src/print-op.c:
-       * src/stock.c:
-       * src/stock.h:
-       * src/template-designer.c:
-       * src/text-node.c:
-       * src/text-node.h:
-       * src/ui-commands.c:
-       * src/ui-commands.h:
-       * src/ui-property-bar.c:
-       * src/ui-property-bar.h:
-       * src/ui-sidebar.c:
-       * src/ui-sidebar.h:
-       * src/ui-util.c:
-       * src/ui-util.h:
-       * src/ui.c:
-       * src/ui.h:
-       * src/util.c:
-       * src/util.h:
-       * src/view-barcode.c:
-       * src/view-barcode.h:
-       * src/view-box.c:
-       * src/view-box.h:
-       * src/view-ellipse.c:
-       * src/view-ellipse.h:
-       * src/view-highlight.c:
-       * src/view-highlight.h:
-       * src/view-image.c:
-       * src/view-image.h:
-       * src/view-line.c:
-       * src/view-line.h:
-       * src/view-object.c:
-       * src/view-object.h:
-       * src/view-text.c:
-       * src/view-text.h:
-       * src/view.c:
-       * src/view.h:
-       * src/wdgt-chain-button.c:
-       * src/wdgt-chain-button.h:
-       * src/wdgt-media-select.c:
-       * src/wdgt-mini-preview.c:
-       * src/wdgt-print-copies.c:
-       * src/wdgt-print-copies.h:
-       * src/wdgt-print-merge.c:
-       * src/wdgt-print-merge.h:
-       * src/wdgt-rotate-label.c:
-       * src/window.h:
-       * src/xml-label-04.c:
-       * src/xml-label-04.h:
-       * src/xml-label-191.c:
-       * src/xml-label-191.h:
-       * src/xml-label.c:
-       * src/xml-label.h:
-
-       Assorted superficial cleanup.  Including:
-       - Use G_DEFINE_TYPE for all objects.
-       - Reconcile style of all class initializer functions
-       - Reconcile style of all finalize functions
-       - Add emacs mode line to all source files
-               
-2007-02-06  Jim Evins  <evins@snaught.com>
-
-Assorted cleanup and removal of deprecated items.
-       
-       * src/splash.c:
-       * src/splash.h:
-       * src/Makefile.am:
-               Removed annoying splash screen.
-       * src/glabels-batch.c: (main):
-       * src/glabels.c: (main):
-               Converted from popt to GOption.
-       * src/object-editor-shadow-page.c:
-       (gl_object_editor_set_shadow_state):
-               Removed deprecated method on GtkToggleButton.
-       * src/ui-commands.c: (gl_ui_cmd_help_about):
-               Removed dependency on libgnomui/qnome-url.h.
-       * src/template-designer.c:
-               Removed dependency on libgnome/gnome-program.h.
-       
-
-2007-02-04  Jim Evins  <evins@snaught.com>
-
-       * src/color.c:
-       * src/color.h:
-       * src/prefs-model.c:
-       * src/print.c: (draw_text_object):
-       * src/wdgt-mini-preview.c: (gl_wdgt_mini_preview_construct):
-               Removed GnomeCanvas artifacts from color.[ch] and related modules.
-
-2007-02-04  Jim Evins  <evins@snaught.com>
-
-       * src/wdgt-mini-preview.c:
-       * src/wdgt-mini-preview.h:
-               Ported widget from GnomeCanvas to Cairo.
-
-2007-02-03  Jim Evins  <evins@snaught.com>
-
-       * data/glade/template-designer.glade:
-       * src/template-designer.c:
-       * src/template-designer.h:
-               Ported GnomeDruid to GtkAssistant.  Since libglade does not
-               yet support the GtkAssistant and we derive directly from
-               the Assistant, the pages are layed out in a GtkNotebook in
-               the glade description -- we then append each page to the
-               assistant.
-
-2007-01-25  Jim Evins  <evins@snaught.com>
-
-       * data/glade/object-editor.glade:
-               Added dummy page to notebook, to prevent shadow page from
-               becoming the default current page at creation.
-       * src/view-box.c: (construct_properties_editor):
-       * src/view-ellipse.c: (construct_properties_editor):
-       * src/view-line.c: (construct_properties_editor):
-       * src/view-text.c: (construct_properties_editor):
-               Reconciled order of params.
-
-2007-01-19  Jim Evins  <evins@snaught.com>
-
-       * src/label-barcode.h:
-       * src/label-object.c: (gl_label_object_set_font_weight),
-       (gl_label_object_set_text_alignment),
-       (gl_label_object_get_font_weight),
-       (gl_label_object_get_text_alignment):
-       * src/label-object.h:
-       * src/label-text.c: (gl_label_text_instance_init), (copy),
-       (get_size), (set_font_family), (set_font_weight),
-       (set_text_alignment), (get_font_weight), (get_text_alignment):
-       * src/label-text.h:
-       * src/object-editor-text-page.c:
-       (gl_object_editor_prepare_text_page),
-       (gl_object_editor_set_font_family),
-       (gl_object_editor_set_font_weight),
-       (gl_object_editor_get_font_weight),
-       (gl_object_editor_set_text_alignment),
-       (gl_object_editor_get_text_alignment),
-       (gl_object_editor_set_text_color):
-       * src/object-editor.h:
-       * src/prefs-dialog.c: (construct_object_page),
-       (update_object_page_from_prefs), (update_prefs_from_object_page):
-       * src/prefs-model.c: (gl_prefs_model_save_settings),
-       (gl_prefs_model_load_settings):
-       * src/prefs-model.h:
-       * src/print.c: (draw_text_object):
-       * src/ui-property-bar.c: (gl_ui_property_bar_construct),
-       (reset_to_default_properties), (update_text_properties),
-       (font_bold_toggled_cb), (text_align_toggled_cb):
-       * src/ui-sidebar.c:
-       * src/util.c: (gl_util_align_to_string), (gl_util_string_to_align),
-       (gl_util_weight_to_string), (gl_util_string_to_weight),
-       (gl_util_get_font_family_list), (gl_util_font_family_list_free):
-       * src/util.h:
-       * src/view-text.c: (update_object_from_editor_cb),
-       (update_editor_from_object_cb), (draw_hacktext), (draw_cursor):
-       * src/view.c: (gl_view_set_selection_text_alignment),
-       (gl_view_set_default_text_alignment),
-       (gl_view_get_default_text_alignment):
-       * src/view.h:
-       * src/xml-label-04.c: (xml04_parse_text_props):
-       * src/xml-label-191.c: (xml191_parse_text_props):
-       * src/xml-label.c: (xml_parse_object_text),
-       (xml_parse_toplevel_span), (xml_create_object_text),
-       (xml_create_toplevel_span):
-               Converted all model internals to Pango.  GnomeFont remains in
-       view until GnomeCanvas can be replaced with a cairo-based canvas.
-       
-2007-01-17  Jim Evins  <evins@snaught.com>
-
-       * src/Makefile.am:
-       * src/hig.c:
-               Deleted hig.c.
-       * src/hig.h:
-       * src/wdgt-print-copies.c: (gl_wdgt_print_copies_get_type),
-       (gl_wdgt_print_copies_construct):
-       * src/wdgt-print-copies.h:
-       * src/wdgt-print-merge.c: (gl_wdgt_print_merge_get_type),
-       (gl_wdgt_print_merge_construct):
-       * src/wdgt-print-merge.h:
-               Removed all remaining HIG wrapper widgets.
-
-2007-01-16  Jim Evins  <evins@snaught.com>
-
-       * src/Makefile.am:
-       * src/print-dialog.c:
-       * src/print-dialog.h:
-       * src/print-op.c:
-       * src/print-op.h:
-       * src/template-designer.c: (print_test_cb):
-       * src/ui-commands.c: (gl_ui_cmd_file_print):
-       * src/print.c:
-               Renamed PrintDialog to PrintOp.  Added constructor for batch
-               printing.
-       * src/glabels-batch.c: (main):
-               Converted to use new PrintOp object for printing.
-
-2007-01-15  Jim Evins  <evins@snaught.com>
-
-       * data/glade/Makefile.am:
-       * data/glade/print-custom-widget.glade:
-       * src/print-dialog.c:
-       * src/print-dialog.h:
-       * src/print.c:
-       * src/print.h:
-       * src/template-designer.c: (print_test_cb):
-       * src/ui-commands.c: (gl_ui_cmd_file_print):
-       * src/wdgt-print-merge.c: (gl_wdgt_print_merge_get_copies):
-       * src/wdgt-print-merge.h:
-       * src/window.c: (gl_window_init):
-       * src/window.h:
-               Initial conversion to GtkPrintOperation.
-               Still to do:
-                - Remove font and other libgnomeprint[ui] from elsewhere
-                - Add batch initialization of print operation
-
-2007-01-08  Jim Evins  <evins@snaught.com>
-       * configure.in:
-               Updated dependencies.  Set version to 2.1.pre4cvs.
-
-2007-01-03  Jim Evins  <evins@snaught.com>
-
-       * src/recent-files/*
-               Removed EggRecent stuff.
-       * configure.in:
-       * src/Makefile.am:
-       * src/file.c:
-       * src/recent.c:
-       * src/recent.h:
-       * src/ui-commands.c:
-       * src/ui-commands.h:
-       * src/ui.c:
-               Ported from EggRecent to GtkRecentManager.
-       
-
-2007-01-02  Jim Evins  <evins@snaught.com>
-
-       * configure.in:
-       * iec16022-0.2.1/BUGS:
-       * iec16022-0.2.1/CHANGELOG:
-       * iec16022-0.2.1/CREDITS:
-       * iec16022-0.2.1/INSTALL:
-       * iec16022-0.2.1/LICENSE:
-       * iec16022-0.2.1/Makefile.am:
-       * iec16022-0.2.1/Makefile.dist:
-       * iec16022-0.2.1/README:
-       * iec16022-0.2.1/README.glabels:
-       * iec16022-0.2.1/TODO:
-       * iec16022-0.2.1/iec16022.1:
-       * iec16022-0.2.1/iec16022.c:
-       * iec16022-0.2.1/iec16022ecc200.c:
-       * iec16022-0.2.1/iec16022ecc200.h:
-       * iec16022-0.2.1/image.c:
-       * iec16022-0.2.1/image.h:
-       * iec16022-0.2.1/reedsol.c:
-       * iec16022-0.2.1/reedsol.h:
-       * iec16022-0.2.1/test/testsuite-example.bin:
-       * iec16022-0.2.1/test/testsuite-example.eps:
-       * iec16022-0.2.1/test/testsuite-example.hex:
-       * iec16022-0.2.1/test/testsuite-example.png:
-       * iec16022-0.2.1/test/testsuite-example.text:
-       * iec16022-0.2.1/test/testsuite.sh:
-               Include modified copy of iec16022-0.2.1 to provide encoding
-               support for datamatrix 2D barcodes.
-       * src/Makefile.am:
-       * src/bc-iec16022.c:
-       * src/bc-iec16022.h:
-       * src/bc.c:
-               Added initial datamatrix 2D barcode backend to barcode code.
-       * INSTALL:
-       * gtk-doc.make:
-               Automatic updates to later versions of these files.
-
-2006-11-28  Jim Evins  <evins@snaught.com>
-
-       * data/templates/avery-iso-templates.xml:
-       * data/templates/avery-us-templates.xml:
-       * data/templates/categories.xml:
-       * data/templates/misc-iso-templates.xml:
-       * data/templates/misc-us-templates.xml:
-       * data/templates/zweckform-iso-templates.xml:
-               More categorization.
-       
-2006-09-12  Jim Evins  <evins@snaught.com>
-
-       * data/dtd/glabels-2.0.dtd:
-       * data/templates/Makefile.am:
-       * data/templates/avery-iso-templates.xml:
-       * data/templates/avery-other-templates.xml:
-       * data/templates/avery-us-templates.xml:
-       * data/templates/categories.xml:
-       * data/templates/misc-iso-templates.xml:
-       * data/templates/misc-other-templates.xml:
-       * data/templates/zweckform-iso-templates.xml:
-       * data/glade/Makefile.am:
-       * data/glade/new-label-dialog.glade:
-       * data/glade/wdgt-media-select.glade:
-       * data/glade/wdgt-rotate-label.glade:
-       * libglabels/Makefile.am:
-       * libglabels/category.c:
-       * libglabels/category.h:
-       * libglabels/libglabels.h:
-       * libglabels/paper.c:
-       * libglabels/template.c:
-       * libglabels/template.h:
-       * libglabels/xml-category.c:
-       * libglabels/xml-category.h:
-       * libglabels/xml-template.c:
-               Added support for category meta data.
-       * src/Makefile.am:
-       * src/file.c:
-       * src/mini-preview-pixbuf.c:
-       * src/mini-preview-pixbuf.h:
-       * src/new-label-dialog.c:
-       * src/new-label-dialog.h:
-       * src/wdgt-media-select.c:
-       * src/wdgt-media-select.h:
-       * src/wdgt-rotate-label.c:
-       * src/wdgt-rotate-label.h:
-               New "new label" dialog.
-
-2006-05-27  Jim Evins  <evins@snaught.com>
-
-       * NEWS:
-       * autogen.sh:
-       * configure.in:
-               Preparation for 2.1.3.
-       * acinclude.m4:
-       * omf.make:
-       * xmldocs.make:
-               Removed.
-       
-2006-05-22  Jim Evins  <evins@snaught.com>
-
-       * src/print.c: (draw_barcode_object):
-               Don't print "Invalid barcode data" if data field is empty.  Patch provided
-               by Darren Warner <warnerd@users.sourceforge.net>.  Fixes Bug #1479839.
-       * AUTHORS:
-               Added acknowledgment for above patch.
-       * src/bc-gnubarcode.c: (gl_barcode_gnubarcode_new):
-       * src/bc-postnet.c: (postnet_code):
-               Removed "Invalid barcode data" warnings from stderr.
-       * src/view-barcode.c: (draw_barcode):
-               Draw box around barcode extent if data empty or invalid.  Center a
-               message whether the data is empty or invalid in box.
-
-2006-05-22  Jim Evins  <evins@snaught.com>
-
-       * src/print.c: (draw_text_object):
-               Check shadow state when printing text.
-
-2006-05-20  Jim Evins  <evins@snaught.com>
-
-       * src/ui-commands.c: (gl_ui_cmd_view_grid_toggle),
-       (gl_ui_cmd_view_markup_toggle):
-               Fixed crash when grid or markup have been toggled off during
-               a previous session.  Bug #1434324.
-
-2006-04-05  Jim Evins  <evins@snaught.com>
-
-       * src/object-editor.c: (gl_object_editor_set_key_names):
-               Fixed potential crash when freeing empty key list.
-
-2006-03-11  Jim Evins  <evins@snaught.com>
-
-       * src/print.c: (draw_text_object):
-       * src/view-text.c: (gl_view_text_new),
-       (construct_properties_editor), (update_object_from_editor_cb),
-       (update_editor_from_object_cb), (update_editor_from_label_cb),
-       (draw_hacktext):
-               Added shadow support to text object.
-       
-2006-02-18  Jim Evins  <evins@snaught.com>
-
-       * src/print.c: (draw_line_object):
-       * src/view-line.c: (gl_view_line_new),
-       (construct_properties_editor), (update_canvas_item_from_object_cb),
-       (update_object_from_editor_cb), (update_editor_from_object_cb),
-       (update_editor_from_label_cb):
-               Added shadow support to line object.
-
-2006-02-16  Jim Evins  <evins@snaught.com>
-
-       * src/view-box.c:
-               Comment changes.
-       * src/print.c: (draw_ellipse_object):
-       * src/view-ellipse.c: (gl_view_ellipse_new),
-       (construct_properties_editor), (update_canvas_item_from_object_cb),
-       (update_object_from_editor_cb), (update_editor_from_object_cb),
-       (update_editor_from_label_cb):
-               Added shadow support to ellipse object.
-
-2006-02-15  Jim Evins  <evins@snaught.com>
-
-       * src/label-object.c:
-               Changed default shadow offsets.
-       * src/view-box.c: (gl_view_box_new):
-               Simplified gl_view_box_new() so that is does not duplicate code
-               in update_canvas_item_from_object_cb().
-
-2006-02-07  Jim Evins  <evins@snaught.com>
-
-       * data/glade/object-editor.glade:
-               Fixed color groups of color combos.
-       * src/color.h:
-               Added default shadow color.
-       * src/object-editor.c: (gl_object_editor_construct_color_combo):
-               Added shadow color group.
-
-2006-02-06  Jim Evins  <evins@snaught.com>
-
-       * src/object-editor-shadow-page.c:
-               Forgot to add this file.
-       * src/view-box.c: (gl_view_box_new),
-       (update_canvas_item_from_object_cb), (update_editor_from_label_cb):
-               Update limits on shadow offset spinbuttons.
-
-2006-01-19  Jim Evins  <evins@snaught.com>
-
-       * src/merge-evolution.c: (gl_merge_evolution_get_key_list):
-               Initialize key_list to NULL.
-       * data/glade/object-editor.glade:
-       * src/Makefile.am:
-       * src/color.c:
-       * src/color.h:
-       * src/label-object.c:
-       * src/label-object.h:
-       * src/object-editor-fill-page.c:
-       * src/object-editor-private.h:
-       * src/object-editor.c:
-       * src/object-editor.h:
-       * src/xml-label.c:
-               Created infrastructure for shadow support.
-       * src/view-box.c:
-       * src/print.c:
-               Initial shadow support in box object only.
-       
-2006-01-05  Jim Evins  <evins@snaught.com>
-
-       * src/merge-properties-dialog.c: (src_changed_cb):
-               Be extra paranoid before calling strcmp().
-       * src/merge.c: (gl_merge_set_src):
-               Don't make (merge == NULL) a critical error.
-
-2005-12-22  Jim Evins  <evins@snaught.com>
-
-       * src/glabels-batch.c: (main):
-               Compile warning free with gcc 4.0.
-
-2005-12-21  Jim Evins  <evins@snaught.com>
-
-       * glabels.spec.in:
-               Updated example RPM spec file.
-       
-2005-12-21  Jim Evins  <evins@snaught.com>
-
-       * NEWS:
-       * configure.in:
-               Preparation for 2.1.2.
-       
-2005-12-20  Jim Evins  <evins@snaught.com>
-
-       * src/Makefile.am:
-               Define unique G_LOG_DOMAIN for glabels.
-       * src/critical-error-handler.c: (gl_critical_error_handler_init):
-       * src/warning-handler.c: (gl_warning_handler_init),
-       (warning_handler):
-               Register for G_LOG_DOMAIN instead of NULL.
-       
-2005-12-10  Jim Evins  <evins@snaught.com>
-
-       * src/merge-evolution.c:
-       * src/merge-vcard.c:
-               Fixed indentation.
-
-2005-12-08  Jim Evins  <evins@snaught.com>
-
-       * libglabels/paper.c: (read_paper_files_from_dir):
-       * libglabels/template.c: (gl_template_register),
-       (read_template_files_from_dir):
-       * libglabels/xml-paper.c: (gl_xml_paper_read_papers_from_file),
-       (gl_xml_paper_parse_papers_doc):
-       * libglabels/xml-template.c:
-       (gl_xml_template_read_templates_from_file),
-       (gl_xml_template_parse_templates_doc),
-       (gl_xml_template_parse_template_node),
-       (xml_parse_label_rectangle_node), (xml_parse_label_round_node),
-       (xml_parse_label_cd_node), (xml_parse_layout_node),
-       (xml_parse_markup_margin_node), (xml_parse_markup_line_node),
-       (xml_parse_markup_circle_node),
-       (gl_xml_template_write_templates_to_file), (xml_create_label_node):
-       * libglabels/xml.c: (gl_xml_get_prop_length):
-               Re-classified g_warnings to g_messages.
-       * src/Makefile.am:
-       * src/glabels.c: (main):
-       * src/warning-handler.c: (gl_warning_handler_init),
-       (warning_handler):
-       * src/warning-handler.h:
-               Added warning message handler to make sure the user is
-               presented with appropriate non-fatal errors.
-       * src/critical-error-handler.c: (critical_error_handler):
-               Changed exit to abort.
-       * src/bc-gnubarcode.c: (gl_barcode_gnubarcode_new), (render_pass1):
-       * src/bc-postnet.c: (postnet_code):
-       * src/bc.c: (id_to_index), (name_to_index):
-       * src/merge.c: (gl_merge_register_backend), (gl_merge_new):
-       * src/object-editor.c: (gl_object_notebook_construct_valist):
-       * src/prefs-dialog.c: (update_locale_page_from_prefs):
-       * src/prefs.c: (gl_prefs_get_units_per_point),
-       (gl_prefs_get_units_precision), (gl_prefs_get_units_step_size),
-       (gl_prefs_get_units_string):
-       * src/print.c: (draw_outline), (clip_to_outline), (clip_punchouts):
-       * src/splash.c: (gl_splash):
-       * src/ui-commands.c: (gl_ui_cmd_help_contents):
-       * src/view-highlight.c: (gl_view_highlight_new),
-       (highlight_resizable_box_construct), (object_changed_cb),
-       (view_scale_changed_cb):
-       * src/view.c: (draw_label_layer), (draw_bg_fg_layers),
-       (draw_markup_layer), (draw_markup_margin),
-       (gl_view_object_create_mode), (canvas_event),
-       (selection_received_cb):
-       * src/wdgt-mini-preview.c: (mini_outline_list_new):
-       * src/wdgt-rotate-label.c: (mini_preview_canvas_update):
-       * src/xml-label-04.c: (gl_xml_label_04_parse),
-       (xml04_parse_media_description), (xml04_parse_text_props),
-       (xml04_parse_barcode_props):
-       * src/xml-label-191.c: (gl_xml_label_191_parse),
-       (xml191_parse_objects), (xml191_parse_object),
-       (xml191_parse_text_props), (xml191_parse_image_props),
-       (xml191_parse_barcode_props), (xml191_parse_data),
-       (xml191_parse_sheet), (xml191_parse_label), (xml191_parse_layout),
-       (xml191_parse_markup):
-       * src/xml-label.c: (gl_xml_label_open), (gl_xml_label_open_buffer),
-       (xml_doc_to_label), (xml_parse_label), (xml_parse_objects),
-       (xml_parse_object_text), (xml_parse_object_image),
-       (xml_parse_object_barcode), (xml_parse_data),
-       (xml_parse_toplevel_span), (gl_xml_label_save),
-       (xml_create_objects):
-               Re-classified g_warnings to g_messages.
-       * src/merge-evolution.c: (gl_merge_evolution_open),
-       (gl_merge_evolution_close), (gl_merge_evolution_get_record):
-               Use g_warning to output errors encountered while
-               communicating with the evolution data server
-               instead of embedding them in the data.
-       
-2005-12-08  Jim Evins  <evins@snaught.com>
-
-       * libglabels/libglabels-private.h:
-               Set G_LOG_DOMAIN
-       * libglabels/paper.c: (read_papers):
-       * libglabels/template.c: (read_templates):
-               Made appropriate warnings critical.
-       * src/Makefile.am:
-       * src/critical-error-handler.h:
-       * src/critical-error-handler.c: (gl_critical_error_handler_init),
-       (critical_error_handler):
-               Created critical error handler.
-       * src/glabels.c: (main):
-               Register critical error handler.
-       * src/merge-properties-dialog.c: (gl_merge_properties_dialog_init):
-       * src/object-editor.c: (gl_object_editor_init):
-       * src/prefs-dialog.c: (gl_prefs_dialog_init):
-       * src/template-designer.c: (gl_template_designer_init):
-       * src/ui-property-bar.c: (gl_ui_property_bar_instance_init):
-               Made appropriate warnings critical.
-
-2005-11-27  Jim Evins  <evins@snaught.com>
-
-       * src/merge-evolution.c: (gl_merge_evolution_get_key_list),
-       (gl_merge_evolution_get_primary_key),
-       (gl_merge_evolution_get_record):
-               Don't create "record_key" pseudo-key.  Don't populate
-               fields with null data.
-
-2005-11-25  Jim Evins  <evins@snaught.com>
-
-       * src/merge-evolution.c: (gl_merge_evolution_finalize),
-       (gl_merge_evolution_get_key_list), (gl_merge_evolution_open),
-       (gl_merge_evolution_get_record), (gl_merge_evolution_copy),
-       (free_field_list):
-               Query EDS for all supported fields.  Patch provided by
-               Austin Henry <ahenry@users.sourceforge.net>.
-
-2005-10-29  Jim Evins  <evins@snaught.com>
-
-       * src/glabels.c: (main):
-       * src/label-barcode.c: (gl_label_barcode_finalize):
-       * src/label-text.c: (gl_label_text_finalize), (set_font_family):
-       * src/label.c: (gl_label_instance_init), (gl_label_finalize):
-       * src/object-editor.c: (gl_object_editor_finalize):
-               Another pass at valgrinding -- plugged several memory leaks.
-       * src/view-text.c: (gl_view_text_new),
-       (update_canvas_item_from_object_cb), (draw_hacktext):
-               Commented out artifacts of edit-in-place code.
-       
-2005-10-28  Jim Evins  <evins@snaught.com>
-
-       * src/canvas-hacktext.c: (gl_canvas_hacktext_set_arg):
-               Fixed use of uninitialized variable.  Caught by
-               d binderman <dcb314@hotmail.com>.
-
-2005-10-27  Jim Evins  <evins@snaught.com>
-
-       * src/merge-evolution.c: (gl_merge_evolution_get_record):
-       * src/merge-vcard.c: (gl_merge_vcard_get_record),
-       (parse_next_vcard):
-               Additional cleanup of EDS and vcard backends.  Provided by
-               Austin Henry <ahenry@users.sourceforge.net>.
-
-2005-10-24  Jim Evins  <evins@snaught.com>
-
-       * AUTHORS:
-       * src/Makefile.am:
-       * src/merge-evolution.c:
-       * src/merge-evolution.h:
-       * src/merge-init.c: (gl_merge_init):
-       * src/merge-properties-dialog.c: (type_changed_cb):
-       * src/merge-vcard.c:
-       * src/merge-vcard.h:
-       * src/ui-commands.c: (gl_ui_cmd_help_about):
-               Added Evolution Data Server and VCard merge backends.  Original patch
-               provided by Austin Henry <ahenry@users.sourceforge.net>.
-       * configure.in:
-               Only support EDS and VCard backends if libebook is installed.  Allow
-               user to disable support, even if installed.
-       
-2005-10-24  Jim Evins  <evins@snaught.com>
-
-       * AUTHORS:
-       * data/templates/avery-iso-templates.xml:
-       * data/templates/avery-us-templates.xml:
-       * data/templates/misc-iso-templates.xml:
-       * data/templates/zweckform-iso-templates.xml:
-               Collected all template changes and submissions since last
-               release.
-
-2005-10-23  Jim Evins  <evins@snaught.com>
-
-       * configure.in:
-       * data/mime/Makefile.am:
-               Added configure options to disable update-mime-database and
-               update-desktop-database as part of the install.  Patch
-               provided by Leonardo Boshell (qhoracio@sourceforge.net).
-
-2005-10-23  Jim Evins  <evins@snaught.com>
-
-       * libglabels/xml.h:
-       * libglabels/xml.c: (gl_xml_get_prop_string),
-       (gl_xml_get_prop_i18n_string), (gl_xml_set_prop_string),
-       (gl_xml_is_node), (gl_xml_get_node_content):
-               Added new XML utility functions.
-       * libglabels/xml-paper.c:
-       * libglabels/xml-template.c:
-       * src/xml-label.c:
-               Cleanup by using new xml utilities created above.
-       * libglabels/paper.c: (gl_paper_free):
-       * src/file.c: (new_response):
-       * src/object-editor-image-page.c: (add_image_filters_to_chooser):
-       * src/pixbuf-cache.c: (gl_pixbuf_cache_add_pixbuf),
-       (gl_pixbuf_cache_get_pixbuf):
-       * src/ui-property-bar.c:
-       (gl_ui_property_bar_construct_color_combo):
-       * src/view-highlight.c: (gl_view_highlight_finalize):
-       * src/view-image.c: (update_object_from_editor_cb):
-       * src/view.c: (gl_view_finalize), (draw_bg_fg_layers),
-       (draw_bg_fg_rounded_rect), (draw_bg_fg_round), (draw_bg_fg_cd),
-       (draw_bg_fg_cd_bc), (draw_markup_layer), (draw_markup_margin),
-       (draw_markup_margin_rect), (draw_markup_margin_rounded_rect),
-       (draw_markup_margin_round), (draw_markup_margin_cd),
-       (draw_markup_margin_cd_bc):
-       * src/wdgt-mini-preview.c: (mini_outline_list_new):
-       * src/wdgt-rotate-label.c: (gl_wdgt_rotate_label_finalize):
-               Plugged various memory leaks located with valgrind.
-       * src/view-image.c: (update_canvas_item_from_object_cb):
-               Don't allow a width or height of zero when drawing pixbuf.
-
-2005-10-22  Jim Evins  <evins@snaught.com>
-
-       * libglabels/xml-paper.c:
-       * libglabels/xml-template.c:
-       * libglabels/xml.c:
-       * src/base64.c:
-       * src/bc-gnubarcode.c:
-       * src/canvas-hacktext.c:
-       * src/label-text.c:
-       * src/object-editor-data-page.c:
-       * src/print-dialog.c:
-       * src/print.c:
-       * src/recent.c:
-       * src/template-designer.c:
-       * src/text-node.c:
-       * src/ui-property-bar.c:
-       * src/ui.c:
-       * src/view-barcode.c:
-       * src/view-box.c:
-       * src/view-ellipse.c:
-       * src/view-image.c:
-       * src/view-line.c:
-       * src/view-text.c:
-       * src/view.c:
-       * src/wdgt-media-select.c:
-       * src/xml-label-04.c:
-       * src/xml-label-191.c:
-       * src/xml-label.c:
-               Modified to compile warning free with gcc-4.0.  Mostly
-               casting to change signedness of characters.  Did not
-               attack gnu-barcode library yet.
-
-2005-10-22  Jim Evins <evins@snaught.com>
-
-       * src/glabels.c: (main):
-       * src/splash.c: (gl_splash):
-               Removed some small memory leaks.
-       * gtk-doc.make:
-               Added.
-       
-2005-09-19  Jim Evins  <evins@snaught.com>
-
-       * data/glade/property-bar.glade:
-               Remove items from font_family_combo.  This prevents the
-               double entry after adding text model and list of fonts.
-       * src/ui-property-bar.c: (reset_to_default_properties):
-               Free font_family_list.
-
-2005-07-01  Jim Evins  <evins@snaught.com>
-
-       * po/it.po:
-               Updated italian translation (Daniele Medri)
-
-2005-06-26  Jim Evins  <evins@snaught.com>
-
-       * docs/libglabels/libglabels-decl-list.txt:
-               Somehow never got checked in before.
-       * docs/libglabels/libglabels.types:
-               Removed -- don't need it afterall.
-
-2005-06-20  Jim Evins  <evins@snaught.com>
-
-       * NEWS:
-               Final prep for 2.1.1 release.
-
-2005-06-20  Jim Evins  <evins@snaught.com>
-
-       * configure.in:
-               Final preps for 2.1.1 release.
-       * docs/libglabels/libglabels.types:
-               Somehow never got checked in before.
-       * po/POTFILES.in:
-               Bring up-to-date with recent reorg of ui code.
-               
-
-2005-06-19  Jim Evins  <evins@snaught.com>
-
-       * src/template-designer.c: (construct_layout_page):
-               Removed attempt to match background color of mini preview widget to
-               background.
-
-2005-06-17  Jim Evins  <evins@snaught.com>
-
-       * help/C/figures/merge-ex2-4.png:
-       * help/C/glabels.xml:
-               Fixed spelling error.
-
-2005-06-13  Jim Evins  <evins@snaught.com>
-
-       * help/C/figures/merge-ex1-1.png:
-       * help/C/figures/merge-ex1-2.png:
-       * help/C/figures/merge-ex1-3.png:
-       * help/C/figures/merge-ex1-4.png:
-       * help/C/figures/merge-ex2-1.png:
-       * help/C/figures/merge-ex2-2.png:
-       * help/C/figures/merge-ex2-3.png:
-       * help/C/figures/merge-ex2-4.png:
-               Added figures for document merge tutorial.
-       * help/C/glabels.xml:
-               Added document merge tutorial.
-
-2005-05-19  Jim Evins  <evins@snaught.com>
-
-       * data/glade/merge-properties-dialog.glade:
-               Fixed irregular spacing.
-       * src/merge-properties-dialog.c: (gl_merge_properties_dialog_init),
-       (gl_merge_properties_dialog_construct):
-               Set outer padding and remove separator.
-
-2005-05-18  Jim Evins  <evins@snaught.com>
-
-       * src/hig.h:
-       * src/hig.c:
-               Removed glHigDialog class.
-       * src/file.c: (gl_file_new), (create_new_dialog_widgets),
-       (gl_file_properties), (create_properties_dialog_widgets):
-       * src/prefs-dialog.h:
-       * src/prefs-dialog.c: (gl_prefs_dialog_get_type),
-       (gl_prefs_dialog_init), (gl_prefs_dialog_construct):
-       * src/print-dialog.h:
-       * src/prefs-dialog.h:
-       * src/print-dialog.c: (gl_print_dialog_get_type),
-       (gl_print_dialog_init), (gl_print_dialog_construct):
-               Replaced all instances of glHigDialog with GtkDialog.
-       
-2005-05-17  Jim Evins  <evins@snaught.com>
-
-       * src/hig.h:
-       * src/hig.c:
-               Removed HigAlert class since it is obsoleted by the GtkMessageDialog class.
-       * src/file.c: (open_response), (gl_file_open_real), (gl_file_save),
-       (save_as_response), (gl_file_close):
-               Replaced all instances of HigAlert widgets with GtkMessageDialog widgets.
-
-2005-05-15  Jim Evins  <evins@snaught.com>
-
-       * src/ui-commands.h:
-       * src/ui-util.c:
-       * src/ui-util.h:
-       * src/ui.c:
-       * src/ui.h:
-       * src/view.c:
-       * src/window.c:
-       * src/window.h:
-               A little code reformatting -- no functional changes.
-       
-2005-05-14  Jim Evins  <evins@snaught.com>
-
-       * src/Makefile.am:
-               Removed obsolete macros.
-       * src/marshal.list:
-               Added marshalling template to support new view signal: "context_menu_activate."
-       * src/view.h:
-       * src/view.c: (gl_view_class_init), (gl_view_construct),
-       (canvas_event_arrow_mode):
-               - Removed hardcoded context menus and added new signal "context_menu_activate"
-               to push this up to the uimanager.
-               - Removed merge properties and print dialogs so that they can be managed with
-               the window by the uimanager.
-       * src/merge-properties-dialog.h:
-       * src/merge-properties-dialog.c: (gl_merge_properties_dialog_new),
-       (gl_merge_properties_dialog_construct):
-               Changed calling convention of gl_merge_properties_dialog_new() to use
-               glLabel and GtkWindow instead of view to make more consistent with other
-               dialogs.
-       * src/print-dialog.h:
-       * src/print-dialog.c: (gl_print_dialog_new),
-       (gl_print_dialog_construct):
-               Removed last artifact of libbonoboui.
-       * src/ui-commands.c: (gl_ui_cmd_file_print),
-       (gl_ui_cmd_objects_merge_properties), (gl_ui_cmd_help_about):
-               Reconciled style for launching dialogs.
-       * src/ui.c: (gl_ui_new):
-               Added context menus to ui manager.
-       * src/view-object.c: (item_event_arrow_mode):
-               No longer try to select objects with right-click.
-       * src/window.h:
-       * src/window.c: (gl_window_init), (gl_window_set_label),
-       (context_menu_activate_cb):
-               Context menus and all dialogs are now managed in a consistent way in window
-               by the ui manager.
-
-2005-05-11  Jim Evins  <evins@snaught.com>
-
-       * src/window.h:
-       * src/window.c: (gl_window_init), (gl_window_destroy):
-       * src/ui.c: (gl_ui_new), (gl_ui_unref), (recent_tooltip_func):
-       * src/ui-commands.c: (gl_ui_cmd_file_open_recent):
-               Moved management of recent_view back from window.c to ui.c -- it just feels
-               better there.
-       
-2005-05-10  Jim Evins  <evins@snaught.com>
-
-       * src/window.h:
-       * src/window.c: (gl_window_init):
-       * src/ui.h:
-       * src/ui.c: (gl_ui_new), (connect_proxy_cb), (disconnect_proxy_cb),
-       (menu_item_select_cb), (menu_item_deselect_cb):
-               Added GtkStatusbar which displays menu tooltips.
-       
-2005-05-09  Jim Evins  <evins@snaught.com>
-
-       Replaced libbonoboui with GtkUIManager for creation of basic user interface menus
-       and toolbars.
-
-       * configure.in:
-       * glabels.spec.in:
-               Removed dependencies on libbonoboui.
-       * data/Makefile.am:
-       * data/ui/Makefile.am:
-       * data/ui/glabels-ui.xml:
-               Removed data/ui directory.
-       * data/glade/Makefile.am:
-       * data/property-bar.glade:
-               Added glade description of property-bar for new libglade implementation
-               of glUIPropertyBar.
-       * src/Makefile.am:
-       * src/commands.h:
-       * src/commands.c:
-       * src/tools.h:
-       * src/tools.c:
-       * src/ui-commands.h:
-       * src/ui-commands.c:
-               Replaced commands.[ch] and tools.[ch] with the single ui-commands.[ch] module
-               since the distinction between "commands" and "tools" is no longer that clear.
-       * src/file.h:
-       * src/file.c:
-               Modified to expect glWindow instead of GtkWindow.  gl_file_open_recent()
-               no longer has knowledge of eggRecent*.
-       * src/glabels.c: (main):
-               Removed libbonobo initialization and replaced bonobo_main loop with gtk_main
-               loop.
-       * src/object-editor.c: (gl_object_editor_init):
-               Make sure notebook does not respond to a "show_all" on the parent.
-       * src/recent-files/Makefile.am:
-       * src/recent-files/*.[ch]
-               Updated from latest version of libegg which now has a view based on
-               GtkUIManager.  Removed unused bonobo and gtk views.
-       * src/ui-property-bar.h:
-       * src/ui-property-bar.c:
-               New implementation based on libglade.
-       * src/ui-sidebar.h:
-       * src/ui-sidebar.c:
-               Sidebar is now simply a GtkWidget and does not expect to be a part of
-               a libbonoboui interface.
-       * src/ui-util.h:
-       * src/ui-util.c:
-       * src/ui.h:
-       * src/ui.c:
-               Converted for use with GtkUIManager.
-       * src/window.h:
-       * src/window.c:
-               Now derived from GtkWindow instead of BonoboWindow and uses GtkUIManager
-               to create menus and toolbars.
-
-2005-04-25  Jim Evins  <evins@snaught.com>
-
-       * data/templates/misc-iso-templates.xml:
-               Added Fellows 04715 template provided by Steve Saxon.
-       * AUTHORS:
-               Updated acknowledgement for above.
-
-2005-04-23  Jim Evins  <evins@snaught.com>
-
-       * src/util.c: (gl_util_combo_box_set_strings):
-               Make sure to clear model before loading a new list of strings.
-       * src/wdgt-media-select.h:
-       * src/wdgt-media-select.c: (gl_wdgt_media_select_instance_init),
-       (gl_wdgt_media_select_construct), (page_size_combo_changed_cb),
-       (template_combo_changed_cb), (prefs_changed_cb),
-       (gl_wdgt_media_select_get_name), (gl_wdgt_media_select_set_name),
-       (gl_wdgt_media_select_get_page_size),
-       (gl_wdgt_media_select_set_page_size):
-               Replaced the deprecated GtkCombo widget with the new
-               GtkComboBox.
-
-2005-04-21  Jim Evins  <evins@snaught.com>
-
-       * data/glade/template-designer.glade:
-       * src/template-designer.c: (construct_pg_size_page),
-       (pg_size_page_changed_cb), (build_template):
-               Replaced the deprecated GtkCombo widget with the new
-               GtkComboBox.
-
-2005-04-20  Jim Evins  <evins@snaught.com>
-
-       * data/glade/prefs-dialog.glade:
-       * src/prefs-dialog.c: (construct_object_page),
-       (update_object_page_from_prefs), (update_prefs_from_object_page):
-               Replaced the deprecated GtkCombo widget with the new
-               GtkComboBox.
-       
-2005-04-19  Jim Evins  <evins@snaught.com>
-
-       * data/glade/object-editor.glade:
-       * src/object-editor-bc-page.c: (gl_object_editor_prepare_bc_page),
-       (style_changed_cb), (gl_object_editor_set_bc_style),
-       (gl_object_editor_get_bc_style), (gl_object_editor_set_bc_color),
-       (gl_object_editor_get_bc_color):
-       * src/object-editor-data-page.c:
-       (gl_object_editor_prepare_data_page), (gl_object_editor_set_data),
-       (gl_object_editor_get_data):
-       * src/object-editor-edit-page.c:
-       (gl_object_editor_prepare_edit_page), (insert_button_cb):
-       * src/object-editor-fill-page.c:
-       (gl_object_editor_prepare_fill_page),
-       (gl_object_editor_set_fill_color),
-       (gl_object_editor_get_fill_color):
-       * src/object-editor-image-page.c:
-       (gl_object_editor_prepare_image_page),
-       (gl_object_editor_set_image), (gl_object_editor_get_image):
-       * src/object-editor-line-page.c:
-       (gl_object_editor_prepare_line_page),
-       (gl_object_editor_set_line_color),
-       (gl_object_editor_get_line_color):
-       * src/object-editor-private.h:
-       * src/object-editor-text-page.c:
-       (gl_object_editor_prepare_text_page),
-       (gl_object_editor_set_font_family),
-       (gl_object_editor_get_font_family),
-       (gl_object_editor_set_text_color),
-       (gl_object_editor_get_text_color):
-       * src/object-editor.c: (gl_object_editor_set_key_names):
-       * src/ui-sidebar.c:
-               In the object editor: replaced all instances of the deprecated
-               GtkCombo widget with the new GtkComboBox.
-
-2005-04-18  Jim Evins  <evins@snaught.com>
-
-       * src/stock.c:
-               Neglected to save this one in previous checkin to support
-               header cleanup.
-       
-2005-04-17  Jim Evins  <evins@snaught.com>
-
-       * libglabels/libglabels-private.h:
-       * libglabels/paper.c:
-       * libglabels/paper.h:
-       * libglabels/template.c:
-       * libglabels/template.h:
-       * libglabels/xml-paper.c:
-       * libglabels/xml-paper.h:
-       * libglabels/xml-template.c:
-       * libglabels/xml.c:
-       * libglabels/xml.h:
-       * src/base64.c:
-       * src/base64.h:
-       * src/bc-gnubarcode.c:
-       * src/bc-postnet.c:
-       * src/bc.c:
-       * src/bc.h:
-       * src/commands.c:
-       * src/debug.c:
-       * src/debug.h:
-       * src/file.c:
-       * src/file.h:
-       * src/hig.c:
-       * src/hig.h:
-       * src/label-barcode.c:
-       * src/label-box.c:
-       * src/label-ellipse.c:
-       * src/label-image.c:
-       * src/label-image.h:
-       * src/label-line.c:
-       * src/label-object.c:
-       * src/label-text.c:
-       * src/label-text.h:
-       * src/label.c:
-       * src/merge-properties-dialog.c:
-       * src/object-editor-bc-page.c:
-       * src/object-editor-data-page.c:
-       * src/object-editor-edit-page.c:
-       * src/object-editor-fill-page.c:
-       * src/object-editor-image-page.c:
-       * src/object-editor-line-page.c:
-       * src/object-editor-lsize-page.c:
-       * src/object-editor-position-page.c:
-       * src/object-editor-private.h:
-       * src/object-editor-size-page.c:
-       * src/object-editor-text-page.c:
-       * src/object-editor.c:
-       * src/object-editor.h:
-       * src/pixbuf-cache.h:
-       * src/prefs-dialog.c:
-       * src/prefs-dialog.h:
-       * src/prefs-model.c:
-       * src/prefs-model.h:
-       * src/prefs.c:
-       * src/print-dialog.c:
-       * src/print-dialog.h:
-       * src/print.c:
-       * src/print.h:
-       * src/recent.c:
-       * src/recent.h:
-       * src/splash.c:
-       * src/splash.h:
-       * src/stock.h:
-       * src/template-designer.c:
-       * src/template-designer.h:
-       * src/text-node.h:
-       * src/tools.c:
-       * src/ui-property-bar.c: (gl_ui_property_bar_construct):
-       * src/ui-sidebar.c:
-       * src/ui-util.c:
-       * src/ui.c:
-       * src/util.c:
-       * src/util.h:
-       * src/view-barcode.c:
-       * src/view-box.c:
-       * src/view-ellipse.c:
-       * src/view-highlight.c:
-       * src/view-highlight.h:
-       * src/view-image.c:
-       * src/view-line.c:
-       * src/view-object.c:
-       * src/view-object.h:
-       * src/view-text.c:
-       * src/view.c:
-       * src/view.h:
-       * src/wdgt-chain-button.c:
-       * src/wdgt-media-select.c:
-       * src/wdgt-media-select.h:
-       * src/wdgt-mini-preview.c:
-       * src/wdgt-mini-preview.h:
-       * src/wdgt-print-copies.c:
-       * src/wdgt-print-copies.h:
-       * src/wdgt-print-merge.c:
-       * src/wdgt-print-merge.h:
-       * src/wdgt-rotate-label.c:
-       * src/wdgt-rotate-label.h:
-       * src/window.c:
-       * src/window.h:
-       * src/xml-label-04.c:
-       * src/xml-label-191.c:
-       * src/xml-label.c:
-               Cleanup of header files:
-               - all header files are now stand-alone, verified by including
-                 first in corresponding "c" files
-               - replaced blanket includes of gnome, gtk, and glib with
-                 targetted includes
-       
-2005-04-16  Jim Evins  <evins@snaught.com>
-
-       * data/glade/Makefile.am:
-       * data/glade/merge-properties-dialog.glade:
-               Added merge properties dialog glade description file.
-       * src/merge-properties-dialog.h:
-       * src/merge-properties-dialog.c:
-       (gl_merge_properties_dialog_get_type),
-       (gl_merge_properties_dialog_init),
-       (gl_merge_properties_dialog_finalize),
-       (gl_merge_properties_dialog_new),
-       (gl_merge_properties_dialog_construct), (type_changed_cb),
-       (src_changed_cb), (response_cb), (load_tree),
-       (record_select_toggled_cb), (select_all_button_clicked_cb),
-       (unselect_all_button_clicked_cb):
-               Modified merge properties dialog to use libglade.  Added
-               "select all" and "unselect all" buttons.
-       * src/merge-text.c: (parse_line):
-               Handle empty lines better.
-       * src/merge.c: (gl_merge_eval_key):
-               Evaluate the key whether the record is selected or not.
-       * src/util.h:
-       * src/util.c: (gl_util_combo_box_add_text_model):
-               Since libglade does not use the gtk_combo_box_new_text()
-               constructor for GtkComboBoxes, a utility function was created
-               to add an appropriate text model to a GtkComboBox.
-       * src/view.c: (gl_view_edit_merge_props):
-               Removed unnecessary "show all's".
-
-2005-04-15  Jim Evins  <evins@snaught.com>
-
-       * po/ru.po:
-               Updated russian translation (Vitaly Lipatov)
-       * data/templates/misc-iso-templates.xml:
-               Added templates for russian business cards provided by Vitaly Lipatov.
-       * AUTHORS:
-               Updated acknowledgements for above.
-
-2005-04-15  Jim Evins  <evins@snaught.com>
-
-       * data/templates/avery-us-templates.xml:
-               Added Avery 5388 and 5389 templates provided by Peter L. Berghold.
-       * data/templates/misc-iso-templates.xml:
-               Added Ryman standard CD/DVD template, provided by Dan Clark.
-       * AUTHORS:
-               Added acknowledgements for above.
-       
-2005-04-10  Jim Evins <evins@snaught.com>
-
-       * libglabels/xml-paper.c: (gl_xml_paper_parse_paper_node):
-       * libglabels/xml-template.c: (gl_xml_template_parse_template_node),
-       (xml_parse_label_rectangle_node), (xml_parse_label_round_node),
-       (xml_parse_label_cd_node), (xml_parse_alias_node):
-       * libglabels/xml.c: (gl_xml_get_prop_double),
-       (gl_xml_get_prop_boolean), (gl_xml_get_prop_int),
-       (gl_xml_get_prop_uint), (gl_xml_get_prop_length):
-       * src/xml-label-04.c: (xml04_parse_media_description),
-       (xml04_parse_text_props), (xml04_parse_barcode_props),
-       (xml04_parse_merge_properties):
-       * src/xml-label-191.c: (xml191_parse_object),
-       (xml191_parse_text_props), (xml191_parse_barcode_props),
-       (xml191_parse_merge_fields), (xml191_parse_pixdata),
-       (xml191_parse_sheet), (xml191_parse_label), (xml191_parse_markup),
-       (xml191_parse_alias):
-       * src/xml-label.c: (xml_parse_object_text),
-       (xml_parse_object_barcode), (xml_parse_merge_fields),
-       (xml_parse_pixdata), (xml_parse_toplevel_span):
-               Make sure to use xmlFree for anything obtained from libxml
-               in case libxml and glib use different memory management
-               space.
-
-2005-04-08  Jim Evins <evins@snaught.com>
-
-       * src/util.h:
-       * src/util.c: (gl_util_combo_box_set_strings), (search_text_func),
-       (gl_util_combo_box_set_active_text):
-               Added utility functions to simplify working with GtkComboBox
-               widgets in GTK-2.6.
-       * src/ui-property-bar.h:
-       * src/ui-property-bar.c: (gl_ui_property_bar_construct),
-       (reset_to_default_properties), (update_text_properties),
-       (font_family_changed_cb):
-               Replaced deprecated GtkCombo with GtkComboBox.
-       
-       
-2005-04-03  Jim Evins <evins@snaught.com>
-
-       * src/Makefile.am:
-       * src/wdgt-image-select.h:
-       * src/wdgt-image-select.c:
-               Removed obsolete wdgt-image-select.[ch] files.
-       * libglabels/paper.c: (gl_paper_dup):
-               Fixed rename of parameter introduced during documentation
-               updates.
-       * data/glade/object-editor.glade:
-       * src/object-editor-image-page.c:
-       (gl_object_editor_prepare_image_page), (img_radio_toggled_cb),
-       (gl_object_editor_set_image), (gl_object_editor_get_image),
-       (update_preview_cb), (add_image_filters_to_chooser):
-       * src/object-editor-private.h:
-               Replaced deprecated GnomePixmapEntry with
-               GtkFileChooserButton.
-
-2005-04-02  Jim Evins <evins@snaught.com>
-
-       * src/mygal/mygal-combo-box.c: (deactivate_arrow),
-       (mygal_combo_box_popup_hide_unconditional),
-       (mygal_combo_box_popup_hide), (mygal_combo_box_popup_display),
-       (mygal_combo_toggle_pressed), (mygal_combo_box_init),
-       (mygal_combo_popup_tear_off), (mygal_combo_set_tearoff_state),
-       (mygal_combo_tearoff_bg_copy), (mygal_combo_popup_reparent),
-       (cb_tearable_button_release), (mygal_combo_box_set_tearable):
-               Renamed all internal gtk_combo functions to mygal_combo
-               to prevent namespace confusion.
-
-2005-04-02  Jim Evins <evins@snaught.com>
-
-       * src/mygal/color-palette.c: (color_palette_change_custom_color),
-       (cust_color_set), (color_palette_setup):
-       * src/mygal/color-palette.h:
-               Replaced deprecated GnomeColorPicker with GtkColorButton.
-
-2005-04-02  Jim Evins <evins@snaught.com>
-
-       * docs/libglabels/libglabels-sections.txt:
-       * docs/libglabels/libglabels-undocumented.txt:
-       * docs/libglabels/tmpl/enums.sgml:
-       * docs/libglabels/tmpl/paper.sgml:
-       * docs/libglabels/tmpl/xml-paper.sgml:
-       * docs/libglabels/tmpl/xml-template.sgml:
-       * libglabels/enums.h:
-       * libglabels/paper.c: (gl_paper_dup):
-       * libglabels/paper.h:
-       * libglabels/xml-paper.c:
-       * libglabels/xml-template.c:
-               More documentation updates for libglabels.
-       
-2005-03-23  Jim Evins  <evins@snaught.com>
-
-       * INSTALL:
-               Automatically updated.
-       * Makefile.am:
-       * autogen.sh:
-       * configure.in:
-       * docs/Makefile.am:
-       * docs/libglabels/Makefile.am:
-       * docs/libglabels/libglabels-docs.sgml:
-       * docs/libglabels/libglabels-sections.txt:
-       * docs/libglabels/libglabels-undocumented.txt:
-       * docs/libglabels/tmpl/enums.sgml:
-       * docs/libglabels/tmpl/libglabels-unused.sgml:
-       * docs/libglabels/tmpl/libglabels.sgml:
-       * docs/libglabels/tmpl/paper.sgml:
-       * docs/libglabels/tmpl/template.sgml:
-       * docs/libglabels/tmpl/xml-paper.sgml:
-       * docs/libglabels/tmpl/xml-template.sgml:
-       * docs/libglabels/tmpl/xml.sgml:
-               Added basic gtk-doc stuff to support documenting libglabels
-               API.
-       * libglabels/xml.c:
-               Updated function comments with gtk-doc markup.
-       * missing:
-               Removed.
-
-2005-03-22  Jim Evins  <evins@snaught.com>
-
-       Since the development version now requires gtk-2.6/gnome-2.10, I
-       have made a first pass at removing deprecations.
-
-       * configure.in:
-       * libglabels/Makefile.am:
-       * src/Makefile.am:
-               Added configure option to turn on X_DISABLE_DEPRECATED flags.
-               Also removed all remnants of HAVE_FILECHOOSER.
-       * src/file.c: (gl_file_open_real):
-               Removed code for old GtkFileSelection.
-       * libglabels/libglabels-private.h:
-       * libglabels/paper.c:
-       * libglabels/template.c:
-       * libglabels/xml-paper.c:
-       * libglabels/xml-template.c:
-       * libglabels/xml.c:
-       * src/bc.c:
-       * src/file.c:
-       * src/glabels-batch.c:
-       * src/glabels.c:
-       * src/label.c:
-       * src/merge-init.c:
-       * src/merge-properties-dialog.c:
-       * src/merge.c:
-       * src/object-editor.c:
-       * src/prefs-dialog.c:
-       * src/prefs.c:
-       * src/print-dialog.c:
-       * src/print.c:
-       * src/stock.c:
-       * src/template-designer.c:
-       * src/ui-property-bar.c:
-       * src/ui-sidebar.c:
-       * src/view-barcode.c:
-       * src/view-box.c:
-       * src/view-ellipse.c:
-       * src/view-image.c:
-       * src/view-line.c:
-       * src/view-text.c:
-       * src/view.c:
-       * src/wdgt-image-select.c:
-       * src/wdgt-media-select.c:
-       * src/wdgt-print-copies.c:
-       * src/wdgt-print-merge.c:
-       * src/wdgt-rotate-label.c:
-       * src/window.c:
-       * src/xml-label-04.c:
-       * src/xml-label-191.c:
-       * src/xml-label.c:
-               Added '#include <glib/gi18n.h>" where needed.
-               Removed any unused '#include <gnome.h>"s.
-
-2005-03-22  Jim Evins  <evins@snaught.com>
-
-       * src/commands.c: (activate_url), (gl_cmd_help_about):
-               Replaced GnomeAbout with GtkAboutDialog.  Therefore the
-               development version of glabels now depends on GTK 2.6 and
-               GNOME 2.10.
-       * configure.in:
-               Updated library dependencies.
-
-2005-02-28  Jim Evins  <evins@snaught.com>
-
-       * AUTHORS:
-       * data/templates/misc-iso-templates.xml:
-               Added 'Ednet 45021' template provided by Ali Akcaagac
-               <aliakc@web.de>.
-
-2005-02-14  Jim Evins  <evins@snaught.com>
-
-       * data/templates/avery-us-templates.xml:
-               Updated templates to use inches instead of points.
-       * src/print-dialog.c: (printer_page_new):
-               Changed packing style when adding printer selector widget.  This fixes
-               debian Bug#295274.
-
-2005-02-13  Jim Evins  <evins@snaught.com>
-
-       * AUTHORS:
-       * po/es.po:
-               Updated spanish translations. (sergio rivadero)
-
-2005-02-05  Jim Evins  <evins@snaught.com>
-
-       Some cleanup to libglabels.
-       
-       * configure.in:
-               Updated version to 2.1.1cvs.  Added generation of libglabels.pc.
-       * libglabels/libglabels.pc.in
-               Created.
-       * libglabels/enums.h
-               Created.  Currently only contains glUnitsType which provides enumerations
-               for all possible units of distance.
-       * libglabels/Makefile.am:
-               Incorporated new files enums.h and libglabels.pc[.in].
-       * libglabels/libglabels.h:
-               Include enums.h.
-       * libglabels/template.h:
-       * libglabels/template.c: (gl_template_layout_new):
-               Changed parameters nx and ny to gint from gdouble.
-       * libglabels/xml.h:
-       * libglabels/xml.c: (gl_xml_get_prop_length),
-       (gl_xml_set_prop_length), (gl_xml_set_default_units):
-               Added support for different output units.
-       * src/prefs-dialog.c: (update_locale_page_from_prefs),
-       (update_prefs_from_locale_page):
-       * src/prefs-model.c: (string_to_units), (units_to_string):
-       * src/prefs-model.h:
-       * src/prefs.c: (gl_prefs_get_units_per_point),
-       (gl_prefs_get_units_precision), (gl_prefs_get_units_step_size),
-       (gl_prefs_get_units_string):
-       * src/prefs.h:
-       * src/wdgt-media-select.c: (details_update), (get_label_size_desc):
-               Reconciled all length enumerations with the new enumerations provided
-               in libglabels/enums.h.
-
-2005-02-03  Jim Evins  <evins@snaught.com>
-
-       * po/cs.po:
-               Updated Czech translations. (David Makovský and Zbynek Mrkvick)
-       * po/it.po:
-               Updated Italian translations. (Daniele Medri)
-       * AUTHORS:
-               Updated credits to reflect above translations.
-
-
-2005-01-22  Jim Evins  <evins@snaught.com>
-
-       * MESSAGE-OF-DOOM:
-               Added.
-       * Makefile.am:
-               Added MESSAGE-OF-DOOM to EXTRA_DIST.
-       * NEWS:
-               Final prep for 2.1.0.
-       * configure.in:
-               Set version to 2.1.0.  Output MESSAGE-OF-DOOM.
-       * glabels.spec.in:
-               Added '--remove-original' flag to desktop-file-install, so that there is
-               only one menu entry.
-       
-2005-01-20  Jim Evins  <evins@snaught.com>
-
-       * data/glade/object-editor.glade:
-               - Font family entry should not be editable.
-               - img_key_entry should have sensitivity=YES, so that it follows the
-                 sensitivity of img_key_combo.
-       
-2005-01-19  Jim Evins  <evins@snaught.com>
-
-       * AUTHORS:
-               Give credit to Frederic Ruaudel for the color merge patches.
-
-2005-01-18  Frederic Ruaudel  <grumz@users.sf.net>
-       Add support to merge color for all other color attribute (Feature 
-       Requests item #1008635. If the data is invalid, the color used is transparent 
-       (GL_COLOR_NONE). The format     for color in merge data file are those accepted 
-       by gdk_color_parse() these include name for a color from rgb.txt, such as 
-       DarkSlateGray, or a hex specification such as #305050. File format has been 
-       changed but backward compatibility is preserved for all format. For
-       box/ellipse/line, keep attribute "line_color" for static color or replace by
-       "line_color_field" for merge data. For text/barcode objects, keep attribute
-       "color" for static color or replace by "color_field" for merge data. In the
-       edit canvas window, merged color are represented by half-transparent black
-       line/area.
-       * data/dtd/glabels-2.0.dtd:
-               Added line_color_field to line_attrs. Added color_field to 
-               Object-barcode and Span.
-       * data/glade/object-editor.glade:
-               Modify the layout of the editor to add merge possibility to color options
-       * src/color.c:
-               Fix a copy/paste error in a comment
-       * src/color.h:
-               Add default color for merge color representation in the editor canvas.
-       * src/label-barcode.c:
-       * src/object-editor-bc-page.c:
-       * src/view-barcode.c:
-               Add merge color support for barcode color.
-       * src/label-box.c:
-       * src/view-box.c:
-               Add merge color support for box border color.
-       * src/label-ellipse.c:
-       * src/view-ellipse.c:
-               Add merge color support for ellipse border color.
-       * src/label-line.c:
-       * src/view-line.c:
-               Add merge color support for line color.
-       * src/label-object.c:
-       * src/label-object.h:
-       * src/object-editor.c:
-       * src/object-editor.h:
-       * src/ui-property-bar.c:
-       * src/view.c:
-       * src/view.h:
-       * src/xml-label-04.c:
-       * src/xml-label-191.c:
-               Add support for merging to other color attribute.
-       * src/label-text.c:
-       * src/object-editor-text-page.c:
-       * src/view-text.c:
-               Add merge color support for text color.
-       * src/object-editor-fill-page.c:
-               Change a blocked handler that didn't match the good widget. Fix the type
-               of some debug message.
-       * src/object-editor-line-page.c:
-               Add merging support to line color option.
-       * src/object-editor-private.h:
-               Add variables for new widget.
-       * src/print.c:
-               Modify the draw functions to get merge data if needed.
-       * src/window.c:
-               Change the default size of the window in order to see all widget in the
-               "text style tab" of the editor.
-       * src/xml-label.c:
-               Modify the parser to record/retreive the field value for objects that need
-               "color" attribute. For box/ellipse/line, keep attribute "line_color" for 
-               static color or replace by "line_color_field" for merge data. For 
-               text/barcode objects, keep attribute "color" for static color or replace 
-               by "color_field" for merge data.
-       
-2005-01-17  Jim Evins  <evins@snaught.com>
-
-       * src/view.c: (screen_changed_cb):
-               Don't do anything if we don't have a screen.
-
-2005-01-06  Jim Evins  <evins@snaught.com>
-
-       * src/view.c: (get_home_scale):
-               Fixed bad call to gtk_widget_has_screen() -- huh?.
-
-2005-01-06  Jim Evins  <evins@snaught.com>
-
-       * data/dtd/glabels-2.0.dtd:
-               Added fill_color_field to fill_attrs.  Also added xmlns attribute to all
-               top-level elements.
-
-2005-01-06  Jim Evins  <evins@snaught.com>
-
-       * data/glade/object-editor.glade:
-               Set entries for fill and data field key dropdowns to NOT editable.
-       * src/view-box.c: (construct_properties_editor):
-       * src/view-ellipse.c: (construct_properties_editor):
-               Update object editor when label's merge property has changed.
-       * src/xml-label.c: (xml_parse_object_ellipse):
-               Completed the merge color support for the ellipse item.
-
-2005-01-06  Frederic Ruaudel  <grumz@users.sf.net>
-
-       Add support to merge color for object that have a "Fill color" attribute (Feature 
-       Requests item #1008635. If the data is invalid, the color used is transparent 
-       (GL_COLOR_NONE). The format     for color in merge data file are those accepted 
-       by gdk_color_parse() these include name for a color from rgb.txt, such as 
-       DarkSlateGray, or a hex specification such as #305050. File format has been 
-       changed but backward compatibility is preserved for all format. For box/ellipse, 
-       keep attribute "fill_color" for static  color or replace by "fill_color_field" 
-       for merge data.
-
-       * data/glade/object-editor.glade:
-               Modify "Fill" tab to add the merge key combo and convert the labels into 
-               radio button.
-       * src/color.h:
-       * src/color.c:
-               Add "glColorNode" structure and associated functions to manage it. This 
-               structure is equivalent for color than the "glTextNode". It holds the color
-               and the key field.
-       * src/label-object.h:
-       * src/label-object.c:
-       * src/label-box.c:
-       * src/label-ellipse.c:
-       * src/ui-property-bar.c:
-       * src/view.h:
-       * src/view.c:
-       * src/view-box.c:
-       * src/view-ellipse.c:
-       * src/xml-label-04.c:
-       * src/xml-label-191.c:
-               Change functions of objects that have a "fill color" attribute to use the 
-               new "glColorNode" structure. Use barcode code as example.
-       * src/Makefile.am:
-               Add the color.[ch] file to glabels_batch binary that now need support for 
-               "glColorNode".
-       * src/object-editor.h:
-       * src/object-editor.c:
-       * src/object-editor-fill-page.c:
-               Manage the new widget of the editor's "Fill" tab : key combo and radio button
-               to choose between static color or merge key. Use barcode code as example.
-       * src/object-editor-private.h:
-               Add new widget in the "_glObjectEditorPrivate" structure.
-       * src/print.c:
-               Modify the draw functions to get merge data if needed.
-       * src/xml-label.c:
-               Modify the parser to record/retreive the field value for objects that need
-               "Fill color" attribute. For box/ellipse, put attribute "fill_color" for static
-               color or "fill_color_field" for merge data.             
-       
-2005-01-04  Jim Evins  <evins@snaught.com>
-
-       * AUTHORS:
-       * data/templates/avery-iso-templates.xml:
-       * data/templates/misc-iso-templates.xml:
-       * data/templates/misc-us-templates.xml:
-               Added templates, submitted by Larry Harriman, Juan Carlos Valero, and
-               Nick Hill.
-
-2004-11-26  Jim Evins  <evins@snaught.com>
-
-       * AUTHORS:
-       * po/fr.po:
-               Updated french translations provided by Florent Morel <florent@taket.org>.
-       * src/view-barcode.c:
-       * src/view-box.c:
-       * src/view-ellipse.c:
-       * src/view-image.c:
-       * src/view-line.c:
-       * src/view-text.c:
-               Added '#include <config.h>' -- HAVE_*GETTEXT macros were not defined and
-               thus _() strings were not being translated.
-
-2004-11-14  Jim Evins  <evins@snaught.com>
-
-       * src/debug.h:
-       * src/debug.c: (gl_debug_init), (gl_debug):
-               Borrowed from gedit:  use environmental variables to select debug
-               sections.
-       * src/splash.c:
-               Removed unused include of debug.h.
-       * src/glabels.c: (main):
-               Added call to gl_debug_init(), and removed debug clutter from command line
-               options.
-       * src/glabels-batch.c: (main):
-               Added call to gl_debug_init().
-
-2004-11-13  Jim Evins  <evins@snaught.com>
-
-       Drawing and property toolbars were being initialized with the "icons and text"
-       look in Fedora Core 3.  Even though none of the buttons had any text attached to
-       them, the buttons were being sized as if they were.  This led to less real estate
-       for the property editor, leading to Bug #1064630.  The
-       
-       * data/ui/glabels-ui.xml:
-               Added explicit "look" property to both drawing and property toolbars.
-       * src/prefs-model.c: (gl_prefs_model_save_settings),
-       (gl_prefs_model_load_settings):
-       * src/prefs-model.h:
-               Removed drawing_toolbar_button_style configuration parameter.
-       * src/ui.c: (view_menu_item_toggled_cb),
-       (set_app_drawing_toolbar_style):
-               Do not attempt to adjust look property of the drawing toolbar.
-
-2004-10-28  Jim Evins  <evins@snaught.com>
-
-       * data/pixmaps/glabels-about-logo.png:
-               Updated about logo.
-       
-2004-10-28  Jim Evins  <evins@snaught.com>
-
-       * data/man/glabels.1:
-       * src/glabels-batch.c: (main):
-       * src/print.h:
-       * src/print.c: (gl_print_batch):
-
-               Added option to glabels-batch to select the first label to begin
-               printing on.
-
-2004-09-26  Jim Evins  <evins@snaught.com>
-
-       * data/desktop/glabels.desktop.in:
-               Point to app icon, "glabels.png"
-       * data/mime/glabels.keys.in:
-               Point at mime icon, "glabels-application-x-glabels.png"
-       * data/pixmaps/Makefile.am:
-               Added glabels_app_icondir.  Renamed icons.
-       * data/pixmaps/glabels.png:
-               New cleaned up app icon.  Deleted glabels-icon.png.
-       * data/pixmaps/glabels-application-x-glabels.png:
-               New mime icon.
-       * data/pixmaps/glabels-splash.png:
-               Renamed glabels-logo to glabels-splash to be more correct about role.
-       * src/glabels.c:
-       * src/template-designer.c:
-               Point at app icon, "glabels.png"
-       * src/splash.c:
-               Point at renamed splash image, "glabels-splash.png"
-
-2004-08-22  Jim Evins  <evins@snaught.com>
-
-       * AUTHORS:
-       * src/glabels-batch.c: (main):
-               Applied patch with minor mods to allow selecting merge source and
-               crop-marks on glabels-batch's command line.  Original patch provided by
-               José Dapena Paz <jdapena@igalia.com>.
-       
-2004-08-15  Jim Evins  <evins@snaught.com>
-
-       * data/desktop/glabels.desktop.in:
-               - Added encoding line
-               - Removed period from comment
-               - Fixed Terminal line, changed "0" to "false"
-               - Added semicolen to Categories line
-       * po/ja.po:
-               - Made sure desktop.in comment string above still translated properly
-
-2004-08-14  Jim Evins  <evins@snaught.com>
-
-       * libglabels/xml-paper.c: (gl_xml_paper_parse_paper_node):
-       * libglabels/xml-template.c: (gl_xml_template_parse_template_node):
-       * src/xml-label-191.c: (xml191_parse_sheet):
-               Fixed improper freeing of gettext strings.  Merged from 2.0.1.
-       * configure.in:
-               Reconciled libglabels versioning with 2.0.1.
-       
-
-2004-08-14  Jim Evins  <evins@snaught.com>
-
-       * configure.in:
-               Updated version to 2.1cvs.
-       
-2004-08-14  Jim Evins  <evins@snaught.com>
-
-       * po/ja.po:
-               Updated 2.0.x translation by Takeshi AIHANA <aihana@gnome.gr.jp>.
-
-2004-08-14  Jim Evins  <evins@snaught.com>
-
-       Fixes for Bug #1008181.
-
-       * src/bc.c: (gl_barcode_default_digits):
-               Make a format of zero digits, harmless.
-       * src/xml-label.c: (xml_parse_object_barcode):
-               Set default value of the format property of barcode objects to 10, not
-               zero.  This will prevent crashes when reading pre 2.0.x files.
-
-2004-08-09  Jim Evins  <evins@snaught.com>
-
-       * NEWS:
-       * TODO:
-       * help/C/glabels-C.omf:
-       * help/C/glabels.xml:
-               Brought documentation up-to-date for 2.0.0 release.
-       
-2004-08-09  Jim Evins  <evins@snaught.com>
-
-       These are hopefully the final preparations for 2.0.0.
-
-       * data/mime/Makefile.am:
-               Include glabels.xml in EXTRA_DIST.
-       * configure.in:
-               - Updated comment style.
-               - Added LIBGLABELS_VERSION_INFO macro, updated Current.
-               - Added package and version info to configuration printout
-               - Update version to 2.0.0
-       * libglabels/Makefile.am:
-               Use the new LIBGLABELS_VERSION_INFO macro.
-
-2004-08-09  Jim Evins  <evins@snaught.com>
-
-       * configure.in:
-       * glabels.spec.in:
-               Cleanup of required library macros.
-
-2004-08-08  Jim Evins  <evins@snaught.com>
-
-       * glabels.spec.in:
-               - Updated URL
-               - More specific of what to install in /usr/bin and /usr/lib
-               - Remove built mime registration files from staging directory
-
-2004-08-08  Jim Evins  <evins@snaught.com>
-
-       * data/mime/Makefile.am:
-               Fixed typo:  key_files should have been keys_files.
-
-2004-08-08  Jim Evins  <evins@snaught.com>
-
-       Reorganization of runtime data files.  Also added registration of mimetype with
-       new freedesktop.org mime database if available.
-       
-       * data/*
-               Moved files to appropriate subdirectories, creating local Makefile.am
-               in each subdirectory.
-               - Moved paper-sizes.xml and *-templates.xml to templates subdirectory.
-                 These are now installed at $datadir/glabels/templates.
-               - Moved glabels.1 to man subdirectory.
-               - Moved glabels-2.0.dtd to dtd subdirectory.
-               - Moved glabels.desktop.in to desktop subdirectory.
-               - Moved glabels.keys.in and glabels.mime to mime subdirectory.
-       * data/pixmaps/*
-               Moved "./pixmaps" to "./data/pixmaps"
-       * data/ui/*
-               Moved src/glabels-ui.xml to data/ui directory. Created Makefile.am.
-       * data/glade/*
-               Moved libglade files from src to data/glade. Created Makefile.am.
-       * Makefile.am:
-               Removed pixmaps from SUBDIRS.
-       * configure.in:
-               - Removed pixmaps from makefiles.
-               - Added makefiles for new subdirs of data.
-               - Added tests for freedesktop.org mime database.
-       * glabels.spec.in:
-               - Added tests for freedesktop.org mime database for post install and
-                 post un-install actions.
-       * libglabels/Makefile.am:
-               Moved system template files to $(datadir)/glabels/templates.
-       * libglabels/libglabels-private.h:
-               Moved system template files to $(datadir)/glabels/templates.
-       * po/POTFILES.in:
-               - Accounted for movement of ui and libglade files.
-               - Added missing .in files.
-               - Reorganized by directory.
-       * src/Makefile.am:
-               Accounted for movement of ui and libglade files.
-       * data/mime/glabels.xml.in:
-               New file for registering with freedesktop.org mime database.
-
-2004-08-07  Jim Evins  <evins@snaught.com>
-
-       * src/recent-files/*:
-               Re-synced to latest libegg/recent-files.
-       
-2004-08-07  Jim Evins  <evins@snaught.com>
-
-       * Makefile.am:
-       * configure.in:
-       * help/*
-               Renamed "./doc" directory to "./help" which contains user documentation,
-               to be more consistent with other GNOME applications.
-       
-
-2004-07-26  Jim Evins  <evins@snaught.com>
-
-       * src/merge-properties-dialog.c: (gl_merge_properties_dialog_init):
-               Corrected button order of merge properties dialog.
-
-2004-07-18  Jim Evins  <evins@snaught.com>
-
-       * data/glabels-2.0.dtd:
-       * src/bc.c: (gl_barcode_default_digits), (gl_barcode_can_freeform),
-       (gl_barcode_get_prefered_n):
-       * src/bc.h:
-       * src/label-barcode.c: (copy), (gl_label_barcode_set_props),
-       (gl_label_barcode_get_props), (get_size):
-       * src/label-barcode.h:
-       * src/object-editor-bc-page.c: (gl_object_editor_prepare_bc_page),
-       (style_changed_cb), (gl_object_editor_set_bc_style),
-       (gl_object_editor_get_bc_style):
-       * src/object-editor-data-page.c: (data_radio_toggled_cb),
-       (gl_object_editor_set_data), (gl_object_editor_get_data):
-       * src/object-editor-private.h:
-       * src/object-editor.c: (gl_object_editor_set_key_names):
-       * src/object-editor.glade:
-       * src/object-editor.h:
-       * src/print.c: (draw_barcode_object):
-       * src/view-barcode.c: (update_object_from_editor_cb),
-       (update_editor_from_object_cb),
-       (gl_view_barcode_create_event_handler), (draw_barcode):
-       * src/xml-label-04.c: (xml04_parse_barcode_props):
-       * src/xml-label-191.c: (xml191_parse_barcode_props):
-       * src/xml-label.c: (xml_parse_object_barcode),
-       (xml_create_object_barcode):
-               Added "format" attribute to barcode objects.  This attribute is used
-               to properly format freeform barcodes barcodes prior to merge data is
-               applied, so that barcodes can be accurately layed out.  This addresses
-               remaining issues of feature request #824787.  Also added an example of
-               the format in the object editor.
-
-2004-07-12  Jim Evins  <evins@snaught.com>
-
-       Various code cleanups.
-
-       * src/label-barcode.c:
-               Removed unneeded include of gnome-glyphlist.h.
-       
-       * src/label-text.c: (get_size):
-               Fixed memory leak: unref glyphlists when done with them.
-       
-       * src/object-editor-bc-page.c: (gl_object_editor_prepare_bc_page):
-       * src/object-editor-data-page.c:
-       (gl_object_editor_prepare_data_page):
-       * src/object-editor-image-page.c:
-       (gl_object_editor_prepare_image_page):
-       * src/object-editor-line-page.c:
-       (gl_object_editor_prepare_line_page):
-       * src/object-editor-lsize-page.c:
-       (gl_object_editor_prepare_lsize_page):
-       * src/object-editor-position-page.c:
-       (gl_object_editor_prepare_position_page):
-       * src/object-editor-size-page.c:
-       (gl_object_editor_prepare_size_page):
-       * src/object-editor-text-page.c:
-       (gl_object_editor_prepare_text_page):
-               Removed unneeded size groups, originally intended to keep widgets aligned.
-               Now use tables to lay these out in object-editor.glade.
-       
-       * src/print.c: (draw_text_object):
-               Fixed memory leak: unref glyphlists when done with them.
-
-       * src/view-barcode.c: (draw_barcode):
-               Fixed memory leak: unref glyphlists when done with them.
-
-       * src/view-text.c: (update_object_from_editor_cb), (draw_hacktext):
-               - Removed unneeded cast of gl_object_editor_get_text_line_spacing()s
-                 return value.
-               - Fixed memory leak: unref glyphlists when done with them.
-
-2004-07-11  Jim Evins  <evins@snaught.com>
-
-       * data/glabels-2.0.dtd:
-       * src/label-text.c: (gl_label_text_instance_init), (copy),
-       (gl_label_text_set_auto_shrink), (gl_label_text_get_auto_shrink):
-       * src/label-text.h:
-       * src/object-editor-private.h:
-       * src/object-editor-text-page.c:
-       (gl_object_editor_prepare_text_page),
-       (gl_object_editor_set_text_auto_shrink),
-       (gl_object_editor_get_text_auto_shrink):
-       * src/object-editor.c: (gl_object_editor_set_key_names):
-       * src/object-editor.glade:
-       * src/object-editor.h:
-       * src/print.c: (draw_text_object):
-       * src/view-text.c: (update_object_from_editor_cb),
-       (update_editor_from_object_cb):
-       * src/xml-label.c: (xml_parse_object_text),
-       (xml_create_object_text):
-               Added option to allow document merge to auto shrink text size to fit
-               within the text box.  The code in print.c that actually shrinks the
-               text is loosely based on a patch submitted by Mark Harrison
-               <mark.harrison@velocitynet.com.au>.  This addresses feature request
-               #661421.
-       
-2004-07-11  Jim Evins  <evins@snaught.com>
-
-       * data/glabels-2.0.dtd:
-       * libglabels/template.c: (gl_template_rect_label_type_new),
-       (gl_template_round_label_type_new),
-       (gl_template_cd_label_type_new), (gl_template_label_type_dup),
-       (template_full_page):
-       * libglabels/template.h:
-       * libglabels/xml-template.c: (xml_parse_label_rectangle_node),
-       (xml_create_label_node):
-       * pixmaps/ex-rect-size.png:
-       * src/print.c: (clip_to_outline), (clip_punchouts):
-       * src/template-designer.c: (construct_rect_size_page),
-       (rect_size_page_prepare_cb), (layout_page_prepare_cb),
-       (build_template):
-       * src/template-designer.glade:
-       * src/xml-label-191.c: (xml191_parse_label):
-               Modifications to allow separate horizontal (x_waste) and vertical (y_waste)
-               properties for rectangular labels.  Templates remain backwards compatible,
-               but this breaks the libglabels API (I don't know of anyone outside of
-               glabels using libglabels at this time -- what can I say, the program is
-               is still "unstable").  This addresses the suggestion in Feature Request
-               #976313.
-
-2004-07-05  Jim Evins  <evins@snaught.com>
-       * src/print.c: (print_crop_marks), (draw_outline):
-               Changed crop marks and label outlines to black, instead of 25% gray.
-               This addresses debian Bug #257460.
-
-2004-07-05  Jim Evins  <evins@snaught.com>
-
-       * src/object-editor-fill-page.c: (gl_object_editor_set_fill_color):
-       * src/object-editor-line-page.c: (gl_object_editor_set_line_color):
-               Preserve "is_default" of fill and line color_combos when creating from
-               existing objects.
-
-2004-07-02  Jim Evins  <evins@snaught.com>
-
-       * data/glabels.1:
-               Created man page.  Based on page submitted by Matthew J. Lockner, however
-               it has been severely edited.
-       
-       * data/avery-other-templates.xml
-       * data/misc-other-templates.xml:
-               Started new files for predefined templates with non-standard sheet sizes.
-               These have been initially populated with the Avery 06141 and
-               OfficeMax #86112, both provided by Matthew J. Lockner.
-       
-       * data/Makefile.am:
-               Install above manpage and template files.
-       
-       * glabels.spec.in:
-               Make sure we install man pages.
-       
-       * src/glabels-batch.c:
-               Changed short form of help option to '-?' to be consistent with glabels.
-       
-       * AUTHORS:
-               Added acknowledgement for above labels.
-
-2004-07-02  Jim Evins  <evins@snaught.com>
-
-       * src/glabels.c: (main), (save_session_cb):
-               - Now include libbonoboui.h, recent.h, and file.h to provide missing
-                 prototypes.
-               - save_session_cb() now returns gboolean.
-               - Minor formatting changes.
-
-       * src/window.h:
-       * src/window.c:
-               - Now include file.h to provide missing prototype.
-               - gl_window_get_type() now returns GType, not guint.  I believe this may
-                 ultimately be cause of the segfault reported in Bug #982287, since
-                 GType is actually a gulong, which may not be compatible on other
-                 architectures (64bit) -- I cannot personally test this at this time.
-                 I was sloppy in several other xxx_get_type() functions which also
-                 returned guint -- see next group of files:
-       
-       * src/window.c: (gl_window_get_type):
-       * src/canvas-hacktext.c: (gl_canvas_hacktext_get_type):
-       * src/canvas-hacktext.h:
-       * src/hig.c: (gl_hig_alert_get_type), (gl_hig_dialog_get_type),
-       (gl_hig_category_get_type), (gl_hig_vbox_get_type),
-       (gl_hig_hbox_get_type):
-       * src/hig.h:
-       * src/label-barcode.c: (gl_label_barcode_get_type):
-       * src/label-barcode.h:
-       * src/label-box.c: (gl_label_box_get_type):
-       * src/label-box.h:
-       * src/label-ellipse.c: (gl_label_ellipse_get_type):
-       * src/label-ellipse.h:
-       * src/label-image.c: (gl_label_image_get_type):
-       * src/label-image.h:
-       * src/label-line.c: (gl_label_line_get_type):
-       * src/label-line.h:
-       * src/label-object.c: (gl_label_object_get_type):
-       * src/label-object.h:
-       * src/label-text.c: (gl_label_text_get_type):
-       * src/label-text.h:
-       * src/label.c: (gl_label_get_type):
-       * src/label.h:
-       * src/merge-properties-dialog.c:
-       (gl_merge_properties_dialog_get_type):
-       * src/merge-properties-dialog.h:
-       * src/merge-text.c: (gl_merge_text_get_type):
-       * src/merge-text.h:
-       * src/merge.c: (gl_merge_get_type):
-       * src/merge.h:
-       * src/object-editor.c: (gl_object_editor_get_type):
-       * src/prefs-dialog.c: (gl_prefs_dialog_get_type):
-       * src/prefs-dialog.h:
-       * src/prefs-model.c: (gl_prefs_model_get_type):
-       * src/prefs-model.h:
-       * src/print-dialog.c: (gl_print_dialog_get_type):
-       * src/print-dialog.h:
-       * src/template-designer.c: (gl_template_designer_get_type):
-       * src/template-designer.h:
-       * src/ui-property-bar.c: (gl_ui_property_bar_get_type):
-       * src/ui-property-bar.h:
-       * src/ui-sidebar.c: (gl_ui_sidebar_get_type):
-       * src/ui-sidebar.h:
-       * src/view-barcode.c: (gl_view_barcode_get_type):
-       * src/view-barcode.h:
-       * src/view-box.c: (gl_view_box_get_type):
-       * src/view-box.h:
-       * src/view-ellipse.c: (gl_view_ellipse_get_type):
-       * src/view-ellipse.h:
-       * src/view-highlight.c: (gl_view_highlight_get_type):
-       * src/view-highlight.h:
-       * src/view-image.c: (gl_view_image_get_type):
-       * src/view-image.h:
-       * src/view-line.c: (gl_view_line_get_type):
-       * src/view-line.h:
-       * src/view-object.c: (gl_view_object_get_type):
-       * src/view-object.h:
-       * src/view-text.c: (gl_view_text_get_type):
-       * src/view-text.h:
-       * src/view.c: (gl_view_get_type):
-       * src/view.h:
-       * src/wdgt-chain-button.c: (gl_wdgt_chain_button_get_type):
-       * src/wdgt-image-select.c: (gl_wdgt_image_select_get_type):
-       * src/wdgt-image-select.h:
-       * src/wdgt-media-select.c: (gl_wdgt_media_select_get_type):
-       * src/wdgt-media-select.h:
-       * src/wdgt-mini-preview.c: (gl_wdgt_mini_preview_get_type):
-       * src/wdgt-mini-preview.h:
-       * src/wdgt-print-copies.c: (gl_wdgt_print_copies_get_type):
-       * src/wdgt-print-copies.h:
-       * src/wdgt-print-merge.c: (gl_wdgt_print_merge_get_type):
-       * src/wdgt-print-merge.h:
-       * src/wdgt-rotate-label.c: (gl_wdgt_rotate_label_get_type):
-       * src/wdgt-rotate-label.h:
-               - Made sure all xxx_get_type functions returned GType, not guint.  This
-                 was the case in hig.[ch], window.[ch], ui-property-bar.[ch],
-                 ui-sidebar.[ch], view.[ch], wdgt-image-select.[ch],
-                 wdgt-media-select.[ch], wdgt-mini-preview.[ch], wdgt-print-copies.[ch],
-                 wdt-print-merge.[ch], and wdgt-rotate-label.[ch].  See separate
-                 window.[ch] details above for more info.
-               - Reconciled various coding style differences in all xxx_get_type()
-                 functions:
-                       * All prototypes include G_GNUC_CONST.
-                       * All prototypes specify the return value as GType, not GtkType
-                         or guint.
-                       * Info structures are all declared as "static const."
-                       * Generalized the names of type and info variables.
-                       * Miscelaneous formatting.
-
-2004-06-08  Jim Evins  <evins@snaught.com>
-
-       * src/label.c:
-       * src/label.h:
-       * src/xml-label.c:
-       * AUTHORS:
-               Don't touch compression of original file -- still defaults to 9 for
-               new files.  Original patch provided by Javier Donaire Segarra
-               (#912252 in patch tracker).
-
-2004-05-05  Jim Evins  <evins@snaught.com>
-
-       * data/glabels-2.0.dtd:
-               Broke DTD previously when adding new barcode types that contain a
-               plus sign (+).  Simply changed the BC_STYLE_TYPE entity to "CDATA"
-               to avoid the problem.
-       * data/avery-iso-templates.xml:
-       * data/zweckform-iso-templates.xml:
-       * AUTHORS:
-               Added templates for Avery 7165, Zweckform 3688, 4732, and 6021.  Templates
-               provided by Frank Altpeter.
-       * libglabels/xml-template.c: (xml_create_label_node):
-               Reordered markup and layout sub-nodes so that resulting templates will
-               validate against DTD.
-
-2004-03-13  Jim Evins  <evins@snaught.com>
-
-       * src/object-editor-size-page.c: (gl_object_editor_prepare_size_page):
-               Changed spin callback signals from "value-changed" back to "changed."
-               This was accidentally introduced in a previous revision, and can cause
-               size changes just by selecting the size tab.
-
-2004-03-06  Jim Evins  <evins@snaught.com>
-
-       * src/view.c: (draw_grid_layer):
-               For round labels (round and cd) adjust grid so that it lines up with
-               center of label.  Also, no longer draw box around label in the grid layer,
-               it is hidden by he fg layer anyway.  Feature suggested by
-               nemolivier@free.fr.  Although the grid is aligned with the center of the
-               label, the coordinate system is still relative to the upper left corner
-               of the rectangle containing the label.
-
-2004-02-25  Jim Evins  <evins@snaught.com>
-
-       * configure.in:
-               Changed version to 2.0pre1cvs
-       
-       * libglabels/xml-template.c: (gl_xml_template_parse_templates_doc):
-               Removed extra xmlFreeDoc() calls upon error.  Also print the doc->URL
-               instead of doc->name fields when errors encountered.
-
-2004-02-21  Jim Evins  <evins@snaught.com>
-
-       * data/avery-iso-templates.xml:
-               Added aliases for Avery 8651.  Patch provided by Wayne Schuller.
-       
-       * glabels.spec.in:
-               Added libglabels library and include file to installed files.
-               
-       * configure.in:
-               Final prep for 1.93.3.
-
-2004-02-20  Jim Evins  <evins@snaught.com>
-
-       * src/glabels-batch.c: (main):
-               Changed key for setting output filename to GNOME_PRINT_KEY_OUTPUT_FILENAME
-               as suggested by Javier Donaire Segarra.  This addresses bug #901063.
-
-2004-02-16  Jim Evins  <evins@snaught.com>
-
-       * configure.in:
-               If gtk+ >= 2.3.2 then define HAVE_FILE_CHOOSER.
-       
-       * src/Makefile.am:
-               Added HAVE_FILE_CHOOSER to INCLUDES.
-       
-       * src/file.c: (gl_file_open), (open_response), (gl_file_open_real),
-       (gl_file_save_as), (save_as_response):
-               Ported to use GtkFileChooserDialog if HAVE_FILE_CHOOSER is defined.
-
-2004-02-16  Jim Evins  <evins@snaught.com>
-
-       * src/xml-label-04.c: (xml04_parse_image_props):
-       * src/xml-label-191.c: (xml191_parse_image_props):
-       * src/xml-label.c: (xml_parse_object_image):
-               Delay setting image size until after image has been applied to new
-               object.
-       
-2004-02-15  Jim Evins  <evins@snaught.com>
-
-       * src/label-barcode.c: (gl_label_barcode_set_data),
-       (gl_label_barcode_set_props):
-               Don't emit "changed" signal, if no change actually made for these
-               methods.  Reduces number of unnecessary redraws of barcodes.
-       
-       * src/label-object.h:
-       * src/label-object.c: (gl_label_object_set_position),
-       (gl_label_object_set_position_relative), (set_size),
-       (gl_label_object_set_size),
-       (gl_label_object_set_size_honor_aspect):
-               Don't emit "changed" signal, if no change actually made for these
-               methods.
-
-2004-02-15  Jim Evins  <evins@snaught.com>
-
-       * data/glabels-2.0.dtd:
-               Added specific subtypes for various barcode types.
-       
-       * src/bc.h:
-       * src/bc.c: (id_to_index), (name_to_index), (gl_barcode_new),
-       (gl_barcode_get_styles_list), (gl_barcode_default_digits),
-       (gl_barcode_can_text), (gl_barcode_text_optional),
-       (gl_barcode_can_csum), (gl_barcode_csum_optional),
-       (gl_barcode_id_to_name), (gl_barcode_name_to_id):
-               Changed API to use a string id, rather than a fixed enumeration.  Id and
-               name are separate strings.  Added entries to backend table for specific
-               subtypes for various barcode types.
-       
-       * src/bc-postnet.h:
-       * src/bc-postnet.c: (gl_barcode_postnet_new), (postnet_code),
-       (is_length_valid):
-               Modified to conform to above API.  Now more stringent with data length
-               for various subtypes.
-       
-       * src/bc-gnubarcode.h:
-       * src/bc-gnubarcode.c: (gl_barcode_gnubarcode_new),
-       (is_length_valid), (is_length1_valid), (is_length2_valid):
-               Modified to conform to above API.  Now more stringent with data length
-               for various subtypes.
-
-       * src/label-barcode.h:
-       * src/label-barcode.c: (copy), (gl_label_barcode_set_props),
-       (gl_label_barcode_get_props), (get_size):
-               Modified to use above API for storing barcode type.
-       
-       * src/object-editor.h:
-       * src/object-editor-bc-page.c: (style_changed_cb),
-       (gl_object_editor_set_bc_style), (gl_object_editor_get_bc_style):
-               Modified to use above API for storing barcode type.
-       
-       * src/object-editor-size-page.c:
-       (gl_object_editor_prepare_size_page), (aspect_toggle_cb),
-       (w_spin_cb), (h_spin_cb), (size_reset_cb):
-               Added debug markers.
-       
-       * src/object-editor.glade:
-               Made barcode style combo's text entry  non-editable.
-       
-       * src/print.c: (draw_barcode_object):
-               Modified to use above API for barcode type.
-
-       * src/view-barcode.c: (update_object_from_editor_cb),
-       (update_editor_from_object_cb),
-       (gl_view_barcode_create_event_handler), (draw_barcode):
-               Modified to use above API for barcode type.
-       
-       * src/xml-label-04.c: (xml04_parse_barcode_props):
-       * src/xml-label-191.c: (xml191_parse_barcode_props):
-       * src/xml-label.c: (xml_parse_object_barcode),
-       (xml_create_object_barcode):
-               Modified to use above API for barcode type.
-
-2004-02-07  Jim Evins  <evins@snaught.com>
-
-       * src/stock-pixmaps/Makefile.am:
-       * src/stock-pixmaps/stock_hchain_24.png:
-       * src/stock-pixmaps/stock_hchain_broken_24.png:
-       * src/stock-pixmaps/stock_vchain_24.png:
-       * src/stock-pixmaps/stock_vchain_broken_24.png:
-               Added chain pixmaps borrowed from the gimp's default theme.
-
-       * src/stock.h:
-       * src/stock.c: (gl_stock_init), (add_button_icon):
-               Added above pixmaps to stock icon sets.  Created add_button_icon() to
-               add these pixmaps sized as GTK_ICON_SIZE_BUTTON.
-       
-       * src/wdgt-chain-button.h
-       * src/wdgt-chain-button.c
-       * src/Makefile.am:
-       * po/POTFILES.in:
-               Added this Modified version of gimpchainbutton widget, borrowed from
-               the gimp.
-       
-       * AUTHORS:
-               Added acknowledgements of the above borrowing from the gimp.
-       
-       * src/object-editor-size-page.c: (aspect_toggle_cb), (w_spin_cb),
-       (h_spin_cb):
-       * src/object-editor.c: (gl_object_editor_construct_chain_button):
-       * src/object-editor.glade:
-               Replaced the keep aspect ratio check box with the above chain-button
-               widget.
-       
-       * src/text-node.c: (gl_text_node_equal):
-       * src/text-node.h:
-               Added function gl_text_node_equal() to compare text_nodes.
-       
-       * src/label-image.c: (gl_label_image_set_filename):
-               Replaced incomplete text_node comparison code with invocation of
-               gl_text_node_equal.  This fixed the problem of not being able to
-               resize an image using the object_editor if the aspect ratio is not
-               locked.
-
-2004-02-04  Jim Evins  <evins@snaught.com>
-
-       * src/object-editor-image-page.c:
-       (gl_object_editor_prepare_image_page):
-               Track "changed" signal of pixmap entry's GtkEntry rather than its
-               "activate" signal -- this catches all changes to the entry rather than
-               just changes resulting from a browse, so one can easily pull previous
-               entries from the history. (This change is marked below on 2004-02-03,
-               but somehow never got checked in.)
-
-       * src/view-highlight.c: (sl_resize_event_handler),
-       (sr_resize_event_handler), (st_resize_event_handler),
-       (sb_resize_event_handler):
-               Side resize handles will now confirm the actual resize that the object
-               accepted before adjusting position parameters.  Previously some interesting
-               things happened when resizing a barcode to its minimum size.
-
-2004-02-03  Jim Evins  <evins@snaught.com>
-
-       * src/object-editor-image-page.c:
-       (gl_object_editor_prepare_image_page):
-               Track "changed" signal of pixmap entry's GtkEntry rather than its
-               "activate" signal -- this catches all changes to the entry rather than
-               just changes resulting from a browse, so one can easily pull previous
-               entries from the history.
-       
-       * src/view-highlight.c: (tl_resize_event_handler),
-       (tr_resize_event_handler), (bl_resize_event_handler),
-       (br_resize_event_handler):
-               Allow control key to be dropped while dragging a corner resize handle
-               without losing the aspect ratio lock.
-
-2004-02-02  Jim Evins  <evins@snaught.com>
-
-       * src/label-image.c: (gl_label_image_set_filename):
-               When setting a new filename adjust size such that the aspect ratio of
-               the image is preserved using the current size as a bounding box.
-               
-       * src/view-image.c: (update_object_from_editor_cb):
-               When updating object from editor, feed back possible size changes to
-               editor as a result of a possible change in image.
-       
-       * src/object-editor-size-page.c: (size_reset_cb):
-               Fixed typo when blocking spin handlers.  If the base size is larger than
-               the max size, treat max size as a bounding box while keeping aspect
-               ratio.
-               
-
-2004-02-02  Jim Evins  <evins@snaught.com>
-
-       * src/label-object.h:
-       * src/label-object.c: (gl_label_object_set_size),
-       (gl_label_object_set_size_honor_aspect):
-               Added gl_label_object_set_size_honor_aspect() which will maintain the
-               current aspect ratio by modifying the supplied w or h apropriately.
-       
-       * src/view-highlight.c: (tl_resize_event_handler),
-       (tr_resize_event_handler), (bl_resize_event_handler),
-       (br_resize_event_handler):
-               Corner handles will now maintain the current aspect ratio if the
-               control key is pressed while resizing.  This addresses feature
-               request #816603.
-       
-
-2004-01-31  Jim Evins  <evins@snaught.com>
-
-       * AUTHORS:
-       * data/avery-us-templates.xml:
-               Added entries for "LSK-3," "LSK-5," and "LSK-8."  Submitted by JBadger.
-       
-       * libglabels/template.c: (read_template_files_from_dir):
-               Corrected problem with testing for extensions.
-       
-       * src/object-editor.glade:
-               Corrected grouping of radio buttons in barcode data page.
-
-       * src/print.c: (draw_barcode_object):
-       * src/view-barcode.c: (draw_barcode):
-               Corrected problem with calculation of y_offset for locating characters.
-
-2004-01-24  Jim Evins  <evins@snaught.com>
-
-       * AUTHORS:
-       * data/avery-us-templates.xml:
-               Added Avery 5824, submitted by Fred Bacon.
-       
-2004-01-20  Jim Evins  <evins@snaught.com>
-
-       Catching up on a couple of backlogged user template submissions.
-
-       * data/avery-iso-templates.xml:
-               Added "DECAdry OLW-4731" and "DECAdry DLW-1731" aliases for Avery 7160.
-               Suggested by Linas Jakucionis.
-       
-       * data/zweckform-iso-templates.xml:
-               Added Zweckform 4760, submitted by Thomas Vill.
-
-       * AUTHORS:
-               Updated to reflect above submissions.
-
-2004-01-06  Jim Evins  <evins@snaught.com>
-
-       Split-out template.[ch], paper.[ch], xml-template.[ch], xml-paper.[ch], and
-       xml.[ch] into a separate library called libglabels, to facilitate third
-       party use of glabels template files.  This was suggested by Wayne Schuller.
-       Once split-out, some modifications to the structures and functions to
-       make a cleaner more useful API, hopefully.  Rather extensive changes have
-       propogated to other modules.
-
-       * src/paper.h:
-       * src/paper.c:
-       * src/template.h:
-       * src/template.c:
-       * src/xml-paper.h:
-       * src/xml-paper.c:
-       * src/xml-template.h:
-       * src/xml-template.c:
-       * src/xml.h:
-       * src/xml.c:
-               These files have been moved to libglabels/.  API cleanup performed.
-
-       * libglabels/libglabels.h:
-       * libglabels/libglabels-private.h:
-       * libglabels/Makefile.am:
-               These files have been added to finish out libglabels.
-       
-       * Makefile.am:
-       * configure.in:
-       * glabels.spec.in:
-       * po/POTFILES.in:
-       * src/Makefile.am:
-               Modified to reflect new sets of files in src/ and libglabels/.
-
-       * COPYING.LIBGLABELS:
-       * COPYING-DOCS:
-               Added copy of the LGPL for libglabels, and a copy the GFDL for
-               documentation.
-       
-       * src/glabels-batch.c:
-       * src/glabels.c:
-       * src/label.c: (gl_label_finalize), (gl_label_set_template),
-       (gl_label_get_size):
-       * src/label.h:
-       * src/prefs-model.c: (gl_prefs_model_load_settings):
-       * src/print-dialog.c:
-       * src/print.c: (gl_print_simple), (gl_print_merge_collated),
-       (gl_print_merge_uncollated), (gl_print_batch), (print_info_free),
-       (print_crop_marks), (print_label), (draw_outline),
-       (clip_to_outline), (clip_punchouts):
-       * src/template-designer.c: (construct_pg_size_page),
-       (pg_size_page_changed_cb), (layout_page_changed_cb),
-       (print_test_cb), (build_template):
-       * src/util.c: (gl_util_fraction):
-       * src/util.h:
-       * src/view.c: (draw_bg_fg_layers), (draw_bg_fg_rect),
-       (draw_bg_fg_rounded_rect), (draw_bg_fg_round), (draw_bg_fg_cd),
-       (draw_bg_fg_cd_bc), (draw_markup_layer), (draw_markup_margin),
-       (draw_markup_margin_rect), (draw_markup_margin_rounded_rect),
-       (draw_markup_margin_round), (draw_markup_margin_cd),
-       (draw_markup_margin_cd_bc), (draw_markup_line),
-       (draw_markup_circle), (gl_view_copy):
-       * src/wdgt-media-select.c: (gl_wdgt_media_select_construct),
-       (page_size_entry_changed_cb), (details_update), (get_layout_desc),
-       (get_label_size_desc):
-       * src/wdgt-mini-preview.c:
-       (gl_wdgt_mini_preview_set_label_by_name), (mini_outline_list_new),
-       (cdbc_item):
-       * src/wdgt-print-copies.c: (gl_wdgt_print_copies_construct):
-       * src/wdgt-print-merge.c: (gl_wdgt_print_merge_construct):
-       * src/wdgt-rotate-label.c: (mini_preview_canvas_update),
-       (gl_wdgt_rotate_label_set_template_name), (cdbc_item):
-       * src/wdgt-rotate-label.h:
-       * src/xml-label-04.c: (xml04_parse_media_description):
-       * src/xml-label-191.c: (gl_xml_label_191_parse),
-       (xml191_parse_sheet), (xml191_parse_label), (xml191_parse_layout),
-       (xml191_parse_markup), (xml191_parse_alias):
-       * src/xml-label.c: (xml_doc_to_label), (xml_parse_label),
-       (xml_label_to_doc):
-               Various changes to accomodate new libglabels API.
-       
-2004-01-03  Jim Evins  <evins@snaught.com>
-
-       * configure.in:
-               Release 1.93.2.
-
-2004-01-03  Jim Evins  <evins@snaught.com>
-
-       * AUTHORS:
-               Added acknowledgement of contributions by Wayne Schuller.
-       
-       * src/commands.c: (gl_cmd_file_print):
-               Create extra reference to print dialog, so that it can be properly re-used.
-       
-       * src/mygal/mygal-combo-box.h:
-       * src/mygal/mygal-combo-box.c:
-       (mygal_combo_box_popup_hide_unconditional),
-       (mygal_combo_box_popup_display), (mygal_combo_box_set_display),
-       (gtk_combo_set_tearoff_state), (mygal_combo_box_construct),
-       (mygal_combo_box_set_arrow_relief), (mygal_combo_box_set_title),
-       (mygal_combo_box_set_tearable):
-               Changed all occurances of GTK_IS_COMBO_BOX to MYGAL_IS_COMBO_BOX, to
-               complete the rename of this widget to prevent namespace collisions
-               with Gtk+-2.3.
-       
-       * src/prefs-dialog.glade:
-               Fixed alignment of Fill/Color widgets.
-
-2004-01-03  Jim Evins  <evins@snaught.com>
-
-       * data/avery-iso-templates.xml:
-               Added user submitted templates.
-               Avery 8435A & 8435B, submitted by Ludger Solbach.
-
-       * doc/C/glabels.xml:
-               Added minimal documentation, noting the new template designer.
-
-2004-01-03  Jim Evins  <evins@snaught.com>
-
-       * pixmaps/ex-rect-size.png:
-       * pixmaps/ex-round-size.png:
-       * pixmaps/ex-cd-size.png:
-       * pixmaps/Makefile.am:
-               Added ex-rect-size.png, ex-round-size.png, and ex-cd-size.png image
-               files to be used as illustrations/examples in the template-designer.
-
-       * src/template-designer.c: (construct_rect_size_page),
-       (construct_round_size_page), (construct_cd_size_page),
-       (construct_nlayouts_page), (rect_size_page_prepare_cb),
-       (round_size_page_prepare_cb), (cd_size_page_prepare_cb),
-       (layout_page_prepare_cb), (build_template):
-       * src/template-designer.glade:
-               Added illustrations for rectangle, round, and cd label size pages.
-               Added margin spinboxes to these pages, and now add a margin markup
-               to the constructed template.  Added realistic default values for
-               some of the size spinboxes.  Cleaned up the code for setting spinbox
-               ranges on the layouts page.
-
-2004-01-02  Jim Evins  <evins@snaught.com>
-
-       * src/object-editor-size-page.c: (h_spin_cb):
-               Fixed cut-n-paste error in h_spin_cb that loaded h from
-               the wrong spinbutton.
-
-       * src/object-editor.h:
-       * src/object-editor.c: (gl_object_editor_class_init),
-       (gl_object_editor_changed_cb), (gl_object_editor_size_changed_cb):
-       * src/object-editor-private.h:
-       * src/object-editor-size-page.c: (w_spin_cb), (h_spin_cb),
-       (size_reset_cb):
-               Added "size_changed" signal.
-               
-       * src/view-text.c: (construct_properties_editor),
-       (update_object_from_editor_cb),
-       (update_object_from_editor_size_cb):
-               Track size changes from object editor separately from other
-               properties.  This is so the default size (0,0) of a text
-               object is not modified unintentionally.
-
-2003-12-30  Wayne Schuller  <k_wayne@linuxpower.org>
-
-       Added feature: line spacing - allows you to comfortably space a text box to
-       fit a label perfectly.
-
-       * data/glabels-2.0.dtd:
-       * src/label-object.c: (gl_label_object_set_text_line_spacing),
-       (gl_label_object_get_text_alignment),
-       (gl_label_object_get_text_line_spacing):
-       * src/label-object.h:
-       * src/label-text.c: (gl_label_text_class_init),
-       (gl_label_text_instance_init), (copy), (get_size),
-       (set_text_line_spacing), (get_text_alignment),
-       (get_text_line_spacing):
-       * src/object-editor-private.h:
-       * src/object-editor-text-page.c:
-       (gl_object_editor_prepare_text_page),
-       (gl_object_editor_set_text_line_spacing),
-       (gl_object_editor_get_text_line_spacing):
-       * src/object-editor.glade:
-       * src/object-editor.h:
-       * src/prefs-dialog.c: (construct_object_page),
-       (update_object_page_from_prefs), (update_prefs_from_object_page):
-       * src/prefs-dialog.glade:
-       * src/prefs-model.c: (gl_prefs_model_save_settings),
-       (gl_prefs_model_load_settings), (get_float):
-       * src/prefs-model.h:
-       * src/print.c: (draw_text_object):
-       * src/ui-sidebar.c:
-       * src/view-text.c: (update_object_from_editor_cb),
-       (update_editor_from_object_cb),
-       (gl_view_text_create_event_handler), (draw_hacktext):
-       * src/view.c: (gl_view_construct),
-       (gl_view_set_selection_text_line_spacing),
-       (gl_view_set_default_text_line_spacing),
-       (gl_view_get_default_text_line_spacing):
-       * src/view.h:
-       * src/xml-label.c: (xml_parse_toplevel_span),
-       (xml_create_toplevel_span):
-
-2003-12-30  Jim Evins  <evins@snaught.com>
-
-       * src/template-designer.c:
-       * src/template-designer.h:
-       * src/template-designer.glade:
-               New template designer assistant.
-       
-       * po/POTFILES.in:
-       * src/Makefile.am:
-               Added entries for src/template-designer.* files.
-       
-       * pixmaps/ex-1layout.png
-       * pixmaps/ex-2layouts.png
-       * pixmaps/Makefile.am:
-               Added the new image files ex-*.png used as illustrations in the
-               template designer assistant.
-       
-       * src/print-dialog.h:
-       * src/print-dialog.c: (gl_print_dialog_finalize),
-       (gl_print_dialog_new), (gl_print_dialog_construct),
-       (gl_print_dialog_force_outline_flag):
-               Changed first argument of gl_print_dialog_new() from glView to glLabel,
-               to support printing from the template designer assistant which does not
-               have a full-fledged view.  Nothing else from the view object was being
-               used by the dialog anyway.
-
-               Added the gl_print_dialog_force_outline_flag() method, for better
-               integration with the template designer assistant.
-               
-
-       * src/commands.h:
-       * src/commands.c: (gl_cmd_file_template_designer),
-       (gl_cmd_file_print):
-               Modified print command to provide label instead of view to dialog.
-               Added the gl_cmd_file_template_designer() command to invoke the
-               template designer assistant.
-       
-       * src/ui.c:
-       * src/glabels-ui.xml:
-               Added support for template designer assistant.
-       
-       * src/wdgt-mini-preview.h:
-       * src/wdgt-mini-preview.c: (gl_wdgt_mini_preview_set_template),
-       (gl_wdgt_mini_preview_set_bg_color):
-               Preview is now centered in canvas.  Added
-               gl_wdgt_mini_preview_set_bg_color() to allow the template designer
-               assistant to match the background color with its own.
-       
-       * src/print.c: (clip_to_outline):
-               Fixed really stupid bug when adding waste to clip region of rectangular
-               labels/cards.  Each side of the clip region needs to be extended by
-               twice the waste margin, as well as negatively offset by the waste
-               margin.
-
-2003-12-28  Jim Evins  <evins@snaught.com>
-
-       * src/prefs-dialog.c: (update_object_page_from_prefs):
-               Block intermediary function align_toggle_cb() instead of
-               update_prefs_from_object_page() for the three alignment
-               widgets.
-
-2003-12-28  Wayne Schuller  <k_wayne@linuxpower.org>
-
-       * src/file.c: (gl_file_new), (gl_file_properties):
-               Swap button order and set default for higificatory pleasure.
-
-2003-12-27  Jim Evins  <evins@snaught.com>
-
-       * barcode-0.98/Makefile.am:
-               One last time:  removed doc/Makefile and po/Makefile.in.in from
-               EXTRA_DIST files.
-       
-2003-12-27  Jim Evins  <evins@snaught.com>
-
-       * barcode-0.98/Makefile.am:
-               Removed config.stat entry from EXTRA_DIST files.
-       
-       * barcode-0.98/Makefile.in:
-               Removed.
-
-2003-12-27  Jim Evins  <evins@snaught.com>
-
-       * configure.in:
-               Updated to work with latest gnome-common package from CVS.
-               Removed recursive configuration of barcode-0.98.
-
-       * acconfig.h:
-       * macros/*:
-               Removed.
-       
-       * Makefile.am:
-               Added barcode-0.98/ as a SUBDIR, and removed dist-hook.
-       
-       * barcode-0.98/Makefile.in:
-       * barcode-0.98/configure.in:
-       * barcode-0.98/Makefile.am:
-       * barcode-0.98/README.glabels:
-               Modified to ignore the barcode package's build system, and build
-               as a part of glabels.
-               Renamed Makefile.in to Makefile.in.dist.
-               Renamed configure.in to configure.in.dist.
-               Added barcode-0.98/Makefile.am and barcode-0.98/README.glabels.
-       
-       * src/Makefile.am:
-       * src/mygal/Makefile.am:
-       * src/recent-files/Makefile.am:
-               In order to build against the GNOME 2.5 platform, 
-               all use of *_DISABLE_DEPRECATED compile-time flags has been removed.
-       
-       * src/mygal/Makefile.am:
-       * src/mygal/mygal-combo-box.c:
-       * src/mygal/mygal-combo-box.h:
-       * src/mygal/widget-color-combo.c:
-       * src/mygal/widget-color-combo.h:
-       * po/POTFILES.in:
-               In order to build against the GNOME 2.5 platform, 
-               Renamed gtk_combo_box widget to mygal_combo_box, to prevent namespace
-               collisions with the real gtk_combo_box widget, now a part of gtk.
-       
-2003-12-26  Jim Evins  <evins@snaught.com>
-
-       * src/paper.c:
-       * src/template.c:
-       * src/util.c:
-       * src/util.h:
-               Moved local versions of get_home_data_dir() in paper.c and
-               template.c to util package.  Cleaned up formatting in
-               util.[ch].
-
-       * src/template.c:
-               In gl_template_register() save a copy of the template in
-               ~/.glabels if the template is not known.  Still need to
-               handle duplicate filename case and duplicate name but
-               different template case.
-       
-       * src/xml-label.c:
-       * src/xml.h:
-               Moved local definition of NAME_SPACE macro from xml-label.c
-               to xml.h.
-       
-       * src/xml-template.c:
-       * src/xml-template.h:
-               Added function gl_xml_template_write_template_to_file(), used
-               in gl_template_register().
diff --git a/INSTALL b/INSTALL
index 23e5f25d0e5f85798dcfb368ecb2f04f59777f61..7d1c323beae76333f523f6df31c47a87f5597edb 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,16 +1,25 @@
 Installation Instructions
 *************************
 
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
-Software Foundation, Inc.
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
+2006, 2007, 2008, 2009 Free Software Foundation, Inc.
 
-This file is free documentation; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
+   Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.  This file is offered as-is,
+without warranty of any kind.
 
 Basic Installation
 ==================
 
-These are generic installation instructions.
+   Briefly, the shell commands `./configure; make; make install' should
+configure, build, and install this package.  The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package.  Some packages provide this
+`INSTALL' file but do not implement all of the features documented
+below.  The lack of an optional feature in a given package is not
+necessarily a bug.  More recommendations for GNU packages can be found
+in *note Makefile Conventions: (standards)Makefile Conventions.
 
    The `configure' shell script attempts to guess correct values for
 various system-dependent variables used during compilation.  It uses
@@ -23,9 +32,9 @@ debugging `configure').
 
    It can also use an optional file (typically called `config.cache'
 and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring.  (Caching is
+the results of its tests to speed up reconfiguring.  Caching is
 disabled by default to prevent problems with accidental use of stale
-cache files.)
+cache files.
 
    If you need to do unusual things to compile the package, please try
 to figure out how `configure' could check whether to do them, and mail
@@ -35,30 +44,37 @@ some point `config.cache' contains results you don't want to keep, you
 may remove or edit it.
 
    The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'.  You only need
-`configure.ac' if you want to change it or regenerate `configure' using
-a newer version of `autoconf'.
+`configure' by a program called `autoconf'.  You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
 
-The simplest way to compile this package is:
+   The simplest way to compile this package is:
 
   1. `cd' to the directory containing the package's source code and type
-     `./configure' to configure the package for your system.  If you're
-     using `csh' on an old version of System V, you might need to type
-     `sh ./configure' instead to prevent `csh' from trying to execute
-     `configure' itself.
+     `./configure' to configure the package for your system.
 
-     Running `configure' takes awhile.  While running, it prints some
-     messages telling which features it is checking for.
+     Running `configure' might take a while.  While running, it prints
+     some messages telling which features it is checking for.
 
   2. Type `make' to compile the package.
 
   3. Optionally, type `make check' to run any self-tests that come with
-     the package.
+     the package, generally using the just-built uninstalled binaries.
 
   4. Type `make install' to install the programs and any data files and
-     documentation.
-
-  5. You can remove the program binaries and object files from the
+     documentation.  When installing into a prefix owned by root, it is
+     recommended that the package be configured and built as a regular
+     user, and only the `make install' phase executed with root
+     privileges.
+
+  5. Optionally, type `make installcheck' to repeat any self-tests, but
+     this time using the binaries in their final installed location.
+     This target does not install anything.  Running this target as a
+     regular user, particularly if the prior `make install' required
+     root privileges, verifies that the installation completed
+     correctly.
+
+  6. You can remove the program binaries and object files from the
      source code directory by typing `make clean'.  To also remove the
      files that `configure' created (so you can compile the package for
      a different kind of computer), type `make distclean'.  There is
@@ -67,45 +83,69 @@ The simplest way to compile this package is:
      all sorts of other programs in order to regenerate files that came
      with the distribution.
 
+  7. Often, you can also type `make uninstall' to remove the installed
+     files again.  In practice, not all packages have tested that
+     uninstallation works correctly, even though it is required by the
+     GNU Coding Standards.
+
+  8. Some packages, particularly those that use Automake, provide `make
+     distcheck', which can by used by developers to test that all other
+     targets like `make install' and `make uninstall' work correctly.
+     This target is generally not run by end users.
+
 Compilers and Options
 =====================
 
-Some systems require unusual options for compilation or linking that the
-`configure' script does not know about.  Run `./configure --help' for
-details on some of the pertinent environment variables.
+   Some systems require unusual options for compilation or linking that
+the `configure' script does not know about.  Run `./configure --help'
+for details on some of the pertinent environment variables.
 
    You can give `configure' initial values for configuration parameters
 by setting variables in the command line or in the environment.  Here
 is an example:
 
-     ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
 
    *Note Defining Variables::, for more details.
 
 Compiling For Multiple Architectures
 ====================================
 
-You can compile the package for more than one kind of computer at the
+   You can compile the package for more than one kind of computer at the
 same time, by placing the object files for each architecture in their
-own directory.  To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'.  `cd' to the
+own directory.  To do this, you can use GNU `make'.  `cd' to the
 directory where you want the object files and executables to go and run
 the `configure' script.  `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
+source code in the directory that `configure' is in and in `..'.  This
+is known as a "VPATH" build.
+
+   With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory.  After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
 
-   If you have to use a `make' that does not support the `VPATH'
-variable, you have to compile the package for one architecture at a
-time in the source code directory.  After you have installed the
-package for one architecture, use `make distclean' before reconfiguring
-for another architecture.
+   On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor.  Like
+this:
+
+     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+                 CPP="gcc -E" CXXCPP="g++ -E"
+
+   This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
 
 Installation Names
 ==================
 
-By default, `make install' installs the package's commands under
+   By default, `make install' installs the package's commands under
 `/usr/local/bin', include files under `/usr/local/include', etc.  You
 can specify an installation prefix other than `/usr/local' by giving
-`configure' the option `--prefix=PREFIX'.
+`configure' the option `--prefix=PREFIX', where PREFIX must be an
+absolute file name.
 
    You can specify separate installation prefixes for
 architecture-specific files and architecture-independent files.  If you
@@ -116,16 +156,47 @@ Documentation and other data files still use the regular prefix.
    In addition, if you use an unusual directory layout you can give
 options like `--bindir=DIR' to specify different values for particular
 kinds of files.  Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
+you can set and what kinds of files go in them.  In general, the
+default for these options is expressed in terms of `${prefix}', so that
+specifying just `--prefix' will affect all of the other directory
+specifications that were not explicitly provided.
+
+   The most portable way to affect installation locations is to pass the
+correct locations to `configure'; however, many packages provide one or
+both of the following shortcuts of passing variable assignments to the
+`make install' command line to change installation locations without
+having to reconfigure or recompile.
+
+   The first method involves providing an override variable for each
+affected directory.  For example, `make install
+prefix=/alternate/directory' will choose an alternate location for all
+directory configuration variables that were expressed in terms of
+`${prefix}'.  Any directories that were specified during `configure',
+but not in terms of `${prefix}', must each be overridden at install
+time for the entire installation to be relocated.  The approach of
+makefile variable overrides for each directory variable is required by
+the GNU Coding Standards, and ideally causes no recompilation.
+However, some platforms have known limitations with the semantics of
+shared libraries that end up requiring recompilation when using this
+method, particularly noticeable in packages that use GNU Libtool.
+
+   The second method involves providing the `DESTDIR' variable.  For
+example, `make install DESTDIR=/alternate/directory' will prepend
+`/alternate/directory' before all installation names.  The approach of
+`DESTDIR' overrides is not required by the GNU Coding Standards, and
+does not work on platforms that have drive letters.  On the other hand,
+it does better at avoiding recompilation issues, and works well even
+when some directory options were not specified in terms of `${prefix}'
+at `configure' time.
+
+Optional Features
+=================
 
    If the package supports it, you can cause programs to be installed
 with an extra prefix or suffix on their names by giving `configure' the
 option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
 
-Optional Features
-=================
-
-Some packages pay attention to `--enable-FEATURE' options to
+   Some packages pay attention to `--enable-FEATURE' options to
 `configure', where FEATURE indicates an optional part of the package.
 They may also pay attention to `--with-PACKAGE' options, where PACKAGE
 is something like `gnu-as' or `x' (for the X Window System).  The
@@ -137,14 +208,53 @@ find the X include and library files automatically, but if it doesn't,
 you can use the `configure' options `--x-includes=DIR' and
 `--x-libraries=DIR' to specify their locations.
 
+   Some packages offer the ability to configure how verbose the
+execution of `make' will be.  For these packages, running `./configure
+--enable-silent-rules' sets the default to minimal output, which can be
+overridden with `make V=1'; while running `./configure
+--disable-silent-rules' sets the default to verbose, which can be
+overridden with `make V=0'.
+
+Particular systems
+==================
+
+   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `<wchar.h>' header file.  The option `-nodtk' can be used as
+a workaround.  If GNU CC is not installed, it is therefore recommended
+to try
+
+     ./configure CC="cc"
+
+and if that doesn't work, try
+
+     ./configure CC="cc -nodtk"
+
+   On Solaris, don't put `/usr/ucb' early in your `PATH'.  This
+directory contains several dysfunctional programs; working variants of
+these programs are available in `/usr/bin'.  So, if you need `/usr/ucb'
+in your `PATH', put it _after_ `/usr/bin'.
+
+   On Haiku, software installed for all users goes in `/boot/common',
+not `/usr/local'.  It is recommended to use the following options:
+
+     ./configure --prefix=/boot/common
+
 Specifying the System Type
 ==========================
 
-There may be some features `configure' cannot figure out automatically,
-but needs to determine by the type of machine the package will run on.
-Usually, assuming the package is built to be run on the _same_
-architectures, `configure' can figure that out, but if it prints a
-message saying it cannot guess the machine type, give it the
+   There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on.  Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+message saying it cannot guess the machine type, give it the
 `--build=TYPE' option.  TYPE can either be a short name for the system
 type, such as `sun4', or a canonical name which has the form:
 
@@ -152,7 +262,8 @@ type, such as `sun4', or a canonical name which has the form:
 
 where SYSTEM can have one of these forms:
 
-     OS KERNEL-OS
+     OS
+     KERNEL-OS
 
    See the file `config.sub' for the possible values of each field.  If
 `config.sub' isn't included in this package, then this package doesn't
@@ -170,9 +281,9 @@ eventually be run) with `--host=TYPE'.
 Sharing Defaults
 ================
 
-If you want to set default values for `configure' scripts to share, you
-can create a site shell script called `config.site' that gives default
-values for variables like `CC', `cache_file', and `prefix'.
+   If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
 `configure' looks for `PREFIX/share/config.site' if it exists, then
 `PREFIX/etc/config.site' if it exists.  Or, you can set the
 `CONFIG_SITE' environment variable to the location of the site script.
@@ -181,7 +292,7 @@ A warning: not all `configure' scripts look for a site script.
 Defining Variables
 ==================
 
-Variables not defined in a site shell script can be set in the
+   Variables not defined in a site shell script can be set in the
 environment passed to `configure'.  However, some packages may run
 configure again during the build, and the customized values of these
 variables may be lost.  In order to avoid this problem, you should set
@@ -190,21 +301,29 @@ them in the `configure' command line, using `VAR=value'.  For example:
      ./configure CC=/usr/local2/bin/gcc
 
 causes the specified `gcc' to be used as the C compiler (unless it is
-overridden in the site shell script).  Here is a another example:
+overridden in the site shell script).
 
-     /bin/bash ./configure CONFIG_SHELL=/bin/bash
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf bug.  Until the bug is fixed you can use this workaround:
 
-Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
-configuration-related scripts to be executed by `/bin/bash'.
+     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
 
 `configure' Invocation
 ======================
 
-`configure' recognizes the following options to control how it operates.
+   `configure' recognizes the following options to control how it
+operates.
 
 `--help'
 `-h'
-     Print a summary of the options to `configure', and exit.
+     Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+     Print a summary of the options unique to this package's
+     `configure', and exit.  The `short' variant lists options used
+     only in the top level, while the `recursive' variant lists options
+     also present in any nested packages.
 
 `--version'
 `-V'
@@ -231,6 +350,16 @@ configuration-related scripts to be executed by `/bin/bash'.
      Look for the package's source code in directory DIR.  Usually
      `configure' can determine that directory automatically.
 
+`--prefix=DIR'
+     Use DIR as the installation prefix.  *note Installation Names::
+     for more details, including other options available for fine-tuning
+     the installation locations.
+
+`--no-create'
+`-n'
+     Run the configure checks, but stop before creating any output
+     files.
+
 `configure' also accepts some other, not widely useful, options.  Run
 `configure --help' for more details.
 
index b8bc8b35b10481b473a00702e9c6f4417801c06c..0aec6e1bdfeba6987aa0ed53e08c1a3f7069e0fe 100644 (file)
@@ -1,15 +1,12 @@
 ## Process this file with automake to produce Makefile.in
 
-LIB_BARCODE_DIR = barcode-0.98
-LIB_IEC16022_DIR = iec16022-0.2.1
-
 SUBDIRS = \
        po \
-       $(LIB_BARCODE_DIR) \
-       $(LIB_IEC16022_DIR) \
        libglabels \
+       libglbarcode \
        src \
        data \
+       templates \
        help \
        docs
 
@@ -18,23 +15,25 @@ EXTRA_DIST = \
        COPYING.README_FIRST \
        COPYING \
        COPYING-DOCS \
-       COPYING-LIBGLABELS \
+       COPYING-LIBS \
+       COPYING-TEMPLATES \
        AUTHORS \
        ChangeLog \
-       ChangeLog.pre-2.2 \
        INSTALL \
        NEWS \
        TODO \
        intltool-extract.in \
        intltool-merge.in \
        intltool-update.in \
+       gnome-doc-utils.make \
        glabels.spec.in \
        glabels.spec
-       gnome-doc-utils.make
 
 DISTCLEANFILES = gnome-doc-utils.make
 
-DISTCHECK_CONFIGURE_FLAGS = --disable-scrollkeeper
+DISTCHECK_CONFIGURE_FLAGS = \
+       --disable-scrollkeeper  \
+       --enable-gtk-doc
 
 dist-hook:
        @if test -d "$(srcdir)/.git"; \
index fbac3d58144c77bea4245b5bab7aa3cd012adbe7..52e9f5f5f25e1e8c157589f846bb029835ed0e63 100644 (file)
@@ -40,7 +40,7 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
        COPYING ChangeLog INSTALL NEWS TODO config.guess config.sub \
        depcomp install-sh ltmain.sh missing mkinstalldirs
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
@@ -49,6 +49,12 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = config.h
 CONFIG_CLEAN_FILES = glabels.spec
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -105,11 +111,13 @@ distcleancheck_listfiles = find . -type f -print
 ACLOCAL = @ACLOCAL@
 ALL_LINGUAS = @ALL_LINGUAS@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
+CAIRO_REQUIRED = @CAIRO_REQUIRED@
 CATALOGS = @CATALOGS@
 CATOBJEXT = @CATOBJEXT@
 CC = @CC@
@@ -122,7 +130,11 @@ DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
-DISTCHECK_CONFIGURE_FLAGS = --disable-scrollkeeper
+DISTCHECK_CONFIGURE_FLAGS = \
+       --disable-scrollkeeper  \
+       --enable-gtk-doc
+
+DLLTOOL = @DLLTOOL@
 DOC_USER_FORMATS = @DOC_USER_FORMATS@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
@@ -132,17 +144,23 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
+GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLABELS_BRANCH = @GLABELS_BRANCH@
 GLABELS_CFLAGS = @GLABELS_CFLAGS@
 GLABELS_LIBS = @GLABELS_LIBS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GLIB_REQUIRED = @GLIB_REQUIRED@
 GMOFILES = @GMOFILES@
 GMSGFMT = @GMSGFMT@
 GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
 GTK_REQUIRED = @GTK_REQUIRED@
-HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@
+GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@
 HELP_DIR = @HELP_DIR@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -158,31 +176,45 @@ INTLTOOL_PERL = @INTLTOOL_PERL@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
+LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@
+LIBBARCODE_LIBS = @LIBBARCODE_LIBS@
+LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@
 LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
 LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
 LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
+LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@
+LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@
 LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
 LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
-LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@
-LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@
-LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@
-LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@
+LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@
+LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@
+LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@
+LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@
+LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@
+LIBIEC16022_LIBS = @LIBIEC16022_LIBS@
+LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@
 LIBOBJS = @LIBOBJS@
+LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@
+LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@
+LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@
+LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBXML_REQUIRED = @LIBXML_REQUIRED@
+LIBZINT_CFLAGS = @LIBZINT_CFLAGS@
+LIBZINT_LIBS = @LIBZINT_LIBS@
+LIBZINT_REQUIRED = @LIBZINT_REQUIRED@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MKINSTALLDIRS = @MKINSTALLDIRS@
 MSGFMT = @MSGFMT@
 MSGFMT_OPTS = @MSGFMT_OPTS@
 MSGMERGE = @MSGMERGE@
-MYGAL_CFLAGS = @MYGAL_CFLAGS@
-MYGAL_LIBS = @MYGAL_LIBS@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -195,9 +227,13 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_REQUIRED = @PANGO_REQUIRED@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 POFILES = @POFILES@
 POSUB = @POSUB@
 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -207,18 +243,15 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
-UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@
-UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
 WARN_CFLAGS = @WARN_CFLAGS@
 XGETTEXT = @XGETTEXT@
-XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@
-XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 am__include = @am__include@
@@ -238,6 +271,7 @@ datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
 exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
 host = @host@
 host_alias = @host_alias@
 host_cpu = @host_cpu@
@@ -251,7 +285,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -267,15 +300,13 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-LIB_BARCODE_DIR = barcode-0.98
-LIB_IEC16022_DIR = iec16022-0.2.1
 SUBDIRS = \
        po \
-       $(LIB_BARCODE_DIR) \
-       $(LIB_IEC16022_DIR) \
        libglabels \
+       libglbarcode \
        src \
        data \
+       templates \
        help \
        docs
 
@@ -284,16 +315,17 @@ EXTRA_DIST = \
        COPYING.README_FIRST \
        COPYING \
        COPYING-DOCS \
-       COPYING-LIBGLABELS \
+       COPYING-LIBS \
+       COPYING-TEMPLATES \
        AUTHORS \
        ChangeLog \
-       ChangeLog.pre-2.2 \
        INSTALL \
        NEWS \
        TODO \
        intltool-extract.in \
        intltool-merge.in \
        intltool-update.in \
+       gnome-doc-utils.make \
        glabels.spec.in \
        glabels.spec
 
@@ -798,7 +830,6 @@ uninstall-am:
        mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
        ps ps-am tags tags-recursive uninstall uninstall-am
 
-       gnome-doc-utils.make
 
 dist-hook:
        @if test -d "$(srcdir)/.git"; \
diff --git a/NEWS b/NEWS
index ced6ef59c946798be8e65efb042303d6ff7d38b5..41661f1a0af36c5b52f8c362e655151546d3977a 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,87 @@
+* gLabels 3.0.0 (stable) release.  Release date 2011-05-16
+
+- Reorganization of alignment menus
+- Allow glabels-batch to be run outside of windowing system
+- CSV parser now more closely follows RFC 4180
+- Added templates
+- Updated translations:
+   - French (Claude Paroz, Bruno Brouard, Gérard Baylard)
+   - Spanish (Daniel Mustieles)
+   - Japanese (Takayuki KUSANO, Takayoshi OKANO)
+   - Czech (Marek Černocký)
+   - German (Mario Blättermann)
+   - Dutch (Mario Blättermann, Hannie Dumoleyn)
+
+
+* gLabels 2.3.1 (unstable) release.  Release date 2011-01-03
+
+- Migrated to GNOME 3 platform
+  - Ported to Gtk3
+  - Ported from gconf to gsettings
+- Updated manual and ported to Mallard
+- Added text merge backend that uses semicolon delimeters
+- Improve appearance of shadows of boxes and ellipses
+- Added shadow property of image objects
+- Added native support for SVG images
+- Added full-featured barcode backend for libzint (Sam Lown, Robin Stuart)
+- Refactoring of barcode subsystem
+  - Moved core barcode support to its own library (libglbarcode)
+  - Added onecode backend to libglbarcode
+  - Resurrected built-in Code39 backend and added to libglbarcode
+    (from way back in glabels 0.1.x)
+  - Allow selection of barcode backend from UI
+- New logo and theme friendly icons
+- Added support for elliptical templates
+- Added many new templates
+- Updated translations:
+   - Czech (Marek Černocký)
+   - Danish (Joe Hansen)
+   - French (Claude Paroz, Bruno Brouard, Gérard Baylard)
+   - German (Mario Blättermann)
+   - Spanish (Daniel Mustieles)
+   - Slovenian (Andrej Žnidaršič)
+   - Catalan (Valencian) (David Planella)
+   - Swedish (Daniel Nylander)
+   - Brazilian Portuguese (Michel Recondo, Henrique P. Machado, Antonio Fernandes C. Neto)
+
+
+* gLabels 2.3.0 (unstable) release.  Release date 2010-06-06
+
+- Removed use of deprecations in platform:
+  - Migrated from libglade to GtkBuilder
+  - Removed all dependencies on libgnome and libgnomeui
+  - Removed all GTK+ and GLIB deprecations as of GNOME 2.30
+  - Use accessor functions in GTK+ and GLIB
+- Major refactoring of code
+- Added Undo/Redo capability
+- GnuBarcode backend is now optional and is no longer distributed with glabels
+- IEC16022 (datamatrix) barcode backend is now optional and is no longer
+  distributed with glabels
+- Added optional IEC18004 (QRCode) barcode backend (Daniel Mueller)
+- Added optional Zint barcode backend (currently ony supports GS1-128, but
+  other barcodes will be supported by this backend in the future).
+  (Samual Lown)
+- Now uses "XDG Base Directory Specification" to locate user templates
+- New wizard based "New Label" dialog
+- Can now manage user created templates from within glabels
+- New "Insert Field" button
+- Allow pasting of images and text from other apps as new objects
+- Fixed focus problems which prevented proper copy and paste operation
+  within the text editor
+- CSV merge backend can now harvest 1st line of CSV file for field names
+- New font selection widget
+- New color selection widget
+- Support parallel installation with older versions of glabels
+- Updated license to GPL3+
+- Full translations of application strings for this release:
+   - German (Mario Blättermann)
+   - Spanish (Daniel Mustieles)
+   - Brazilian Portuguese (Michel Recondo)
+   - Danish (Joe Hansen)
+   - French (Claude Paroz)
+   - Slovenian (Andrej Žnidaršič)
+
+
 * gLabels 2.2.8 (stable) release.  Release date 2010-04-19
 
 - Fix crash caused by new g_new macros in glib-2.24.0
 - New cleaned-up icon
 - Added option to glabels-batch to allow selection of first label.
 - Added options to glabels-batch to allow selection of merge source and crop marks.
-  (José Dapena Paz)
+  (JosÃ\83© Dapena Paz)
 - Updated french translation (Florent Morel)
 - Fixed translation problem with object editor labels
 - Minor bug fixes and cleanup
diff --git a/README b/README
index a8c424164c0e0438eff733d63f3302b237738e4b..5fb256accd403dd6a7b6af9af8fba036c25f4e42 100644 (file)
--- a/README
+++ b/README
@@ -1,12 +1,13 @@
 Copyright
 =========
 
-   Copyright (C) 2001-2007 Jim Evins
+   Copyright (C) 2001-2011 Jim Evins
 
-   gLabels contains components copyrighted by others -- see th 'AUTHORS' file in
-   this directory.
+   gLabels contains components copyrighted by others -- see the 'AUTHORS' file
+   in this directory.
 
-   For license information see the 'COPYING.README_FIRST' file in this directory.
+   For license information see the 'COPYING.README_FIRST' file in this
+   directory.
 
 
 
@@ -21,14 +22,25 @@ cards using a laser or ink-jet printer.
 System Requirements
 ===================
 
-GTK+-2.10.x
-LIBGNOME[UI]-2.16.x
-LIBXML-2.6.x
-LIBGLADE-2.6.x
+GLIB+-2.28.x
+GTK+-3.0.x
+LIBXML-2.7.x
 
 All of these libraries are available as part of Gnome 2.16
 
 
+Optional Merge Backends
+=======================
+Evolution Data Server 2.28.0+
+
+
+Optional Barcode Backends
+=========================
+GNU Barcode 0.98+ (http://www.gnu.org/software/barcode/barcode.html)
+QREncode 3.1.0+   (http://megaui.net/fukuchi/works/qrencode/index.en.html)
+IEC16022 0.2.4+   (http://datenfreihafen.org/projects/iec16022.html)
+LIBZINT  2.4.0+   (http://www.zint.org.uk)
+
 
 Author and Acknowledgments:
 ===========================
@@ -40,5 +52,5 @@ See the AUTHORS file.
 Website
 =======
 
-http://glabels.sourceforge.net/
+http://glabels.org/
 
diff --git a/TODO b/TODO
index ed3140ccc8bbe23126b7c9baef51bd643127551c..7fe816194a3555b2bc76e236e908a1209f01e323 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,46 +1,81 @@
 
 Development plan
 ----------------
-This development plan sets a specific set of milestones for future versions of glabels.
+This development plan sets a specific set of milestones for future versions
+of glabels.
 
 
 Goals for 2.2.x:
 
-               -  Bugfixes
+       -  Bugfixes
 
-               -  Translations
+       -  Translations
 
 
-Possible Goals for 2.3.x (current development branch):
+Goals for 2.3.x (current development branch for 3.0):
 
-               -  Undo, Redo capability
+       -  Migrate to Gnome 3.0 platform
 
-               -  Make text items rich.  I.e. allow multiple characteristics
-                  to exist within a single object.
+       -  Remove deprecations from Gnome 2.0 platform
 
-               -  Text effects.  (follow contour, non-rectangular text boxes,
-                  ...)
+       -  New color combo selector widget family
 
-               -  Ability to select/unselect individual records during a merge-print.
+       -  New font selector widget family
 
-               -  Add additional "merge" backends.  Candidates include:
-                       generic XML
-                       freedb (CDDB) for CD labels
-                       gnome-db
-                       ADIF for generating QSL-cards
+       -  Undo, Redo capability
 
-               -  Printer calibration tool: a facility for tweaking output origin and
-                  scale.  This should really be part of the underlying print system but
-                  currently is not, so I may want to add the hack.
+       -  Allow for management of custom templates
+          (i.e. delete, rename, edit).
 
-               -  Adjustable grid spacing.  Spacing of visible grid should be user
-                  adjustable.  This grid spacing should be an integral multiple of
-                  a finer invisible grid.  There should be a "snap to grid" toggle,
-                  that causes all posistioning and sizing performed on the canvas
-                  to snap to the closest grid.  The possible grid spacing should be
-                  appropriate for the current units selected (e.g. .1 points, .01 mm,
-                  1/64 inch, 0.001 inch).
+       -  Improve documentation and translation maintainance
 
-               -  Allow for management of custom templates
-                  (i.e. delete, rename, edit).
+       -  Code cleanup
+
+
+Possible Goals for future branches:
+
+       -  Make text items rich.  I.e. allow multiple characteristics
+          to exist within a single object.  Basically each text object
+          will be a mini word processor.  The bounding box for the object
+          will act like a page, where lines wrap on the word boundary.
+
+       -  Text effects.  (follow contour, non-rectangular text boxes,
+          ...)
+
+       -  Add additional "merge" backends.  Candidates include:
+               gnome-db
+               internal database stored in glabels file
+               generic XML
+               freedb (CDDB) for CD labels
+               ADIF for generating QSL-cards
+               Address books of Thunderbird, Balsa, Claws Mail etc.
+
+       -  Printer calibration tool: a facility for tweaking output
+          origin and scale.  This should really be part of the
+          underlying print system but currently is not, so we may
+          want to add the hack.
+
+       -  Adjustable grid spacing.  Spacing of visible grid should
+          be user adjustable.  This grid spacing should be an
+          integral multiple of a finer invisible grid.  There should
+          be a "snap to grid" toggle, that causes all posistioning
+          and sizing performed on the canvas to snap to the closest
+          grid.  The possible grid spacing should be appropriate
+          for the current units selected (e.g. .1 points, .01 mm,
+          1/64 inch, 0.001 inch).
+
+       -  Ability to select/unselect individual records during a
+          merge-print.
+
+       -  Merge templates which are now in seperate template definitions
+          because the product includes more than one unique shape. This could
+          be done by using tabs in the drawing area.
+
+       -  Ability to define a free-form shape for a label/card. There are some
+          products which have unusual shapes. This includes free-form markup
+          objects. For the time being, the ability to concatenate a shape from
+          other basic shapes could be sufficient here.
+
+       -  See https://sourceforge.net/tracker/?atid=445119&group_id=46122&func=browse
+          for additional ideas.
 
index 9bdf2c4636c573b1f75260277cad48917afb4142..cac404570c712f21e034277f4ec174de5e554454 100644 (file)
@@ -13,8 +13,8 @@
 
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],,
-[m4_warning([this file was generated for autoconf 2.63.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
+[m4_warning([this file was generated for autoconf 2.68.
 You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically `autoreconf'.])])
@@ -301,7 +301,7 @@ msgstr ""
 
     dnl These rules are solely for the distribution goal.  While doing this
     dnl we only have to keep exactly one list of the available catalogs
-    dnl in configure.in.
+    dnl in configure.ac.
     for lang in $ALL_LINGUAS; do
       GMOFILES="$GMOFILES $lang.gmo"
       POFILES="$POFILES $lang.po"
@@ -430,7 +430,7 @@ AC_DEFINE_UNQUOTED($1, "$localedir",
 dnl
 dnl Now the definitions that aclocal will find
 dnl
-ifdef(glib_configure_in,[],[
+ifdef(glib_configure_ac,[],[
 AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)])
 AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)])
 ])dnl
@@ -651,6 +651,90 @@ fi
 GNOME_DOC_DEFINES
 ])
 
+dnl GLIB_GSETTINGS
+dnl Defines GSETTINGS_SCHEMAS_INSTALL which controls whether
+dnl the schema should be compiled
+dnl
+
+AC_DEFUN([GLIB_GSETTINGS],
+[
+  m4_pattern_allow([AM_V_GEN])
+  AC_ARG_ENABLE(schemas-compile,
+                AC_HELP_STRING([--disable-schemas-compile],
+                               [Disable regeneration of gschemas.compiled on install]),
+                [case ${enableval} in
+                  yes) GSETTINGS_DISABLE_SCHEMAS_COMPILE=""  ;;
+                  no)  GSETTINGS_DISABLE_SCHEMAS_COMPILE="1" ;;
+                  *) AC_MSG_ERROR([bad value ${enableval} for --enable-schemas-compile]) ;;
+                 esac])
+  AC_SUBST([GSETTINGS_DISABLE_SCHEMAS_COMPILE])
+  PKG_PROG_PKG_CONFIG([0.16])
+  AC_SUBST(gsettingsschemadir, [${datadir}/glib-2.0/schemas])
+  if test x$cross_compiling != xyes; then
+    GLIB_COMPILE_SCHEMAS=`$PKG_CONFIG --variable glib_compile_schemas gio-2.0`
+  else
+    AC_PATH_PROG(GLIB_COMPILE_SCHEMAS, glib-compile-schemas)
+  fi
+  AC_SUBST(GLIB_COMPILE_SCHEMAS)
+  if test "x$GLIB_COMPILE_SCHEMAS" = "x"; then
+    ifelse([$2],,[AC_MSG_ERROR([glib-compile-schemas not found.])],[$2])
+  else
+    ifelse([$1],,[:],[$1])
+  fi
+
+  GSETTINGS_RULES='
+.PHONY : uninstall-gsettings-schemas install-gsettings-schemas clean-gsettings-schemas
+
+mostlyclean-am: clean-gsettings-schemas
+
+gsettings__enum_file = $(addsuffix .enums.xml,$(gsettings_ENUM_NAMESPACE))
+
+%.gschema.valid: %.gschema.xml $(gsettings__enum_file)
+       $(AM_V_GEN) if test -f "$<"; then d=; else d="$(srcdir)/"; fi; $(GLIB_COMPILE_SCHEMAS) --strict --dry-run $(addprefix --schema-file=,$(gsettings__enum_file)) --schema-file=$${d}$< && touch [$]@
+
+all-am: $(gsettings_SCHEMAS:.xml=.valid)
+uninstall-am: uninstall-gsettings-schemas
+install-data-am: install-gsettings-schemas
+
+.SECONDARY: $(gsettings_SCHEMAS)
+
+install-gsettings-schemas: $(gsettings_SCHEMAS) $(gsettings__enum_file)
+       @$(NORMAL_INSTALL)
+       if test -n "$^"; then \
+               test -z "$(gsettingsschemadir)" || $(MKDIR_P) "$(DESTDIR)$(gsettingsschemadir)"; \
+               $(INSTALL_DATA) $^ "$(DESTDIR)$(gsettingsschemadir)"; \
+               test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir); \
+       fi
+
+uninstall-gsettings-schemas:
+       @$(NORMAL_UNINSTALL)
+       @list='\''$(gsettings_SCHEMAS) $(gsettings__enum_file)'\''; test -n "$(gsettingsschemadir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e '\''s|^.*/||'\''`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '\''$(DESTDIR)$(gsettingsschemadir)'\'' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(gsettingsschemadir)" && rm -f $$files
+       test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir)
+
+clean-gsettings-schemas:
+       rm -f $(gsettings_SCHEMAS:.xml=.valid) $(gsettings__enum_file)
+
+ifdef gsettings_ENUM_NAMESPACE
+$(gsettings__enum_file): $(gsettings_ENUM_FILES)
+       $(AM_V_GEN) glib-mkenums --comments '\''<!-- @comment@ -->'\'' --fhead "<schemalist>" --vhead "  <@type@ id='\''$(gsettings_ENUM_NAMESPACE).@EnumName@'\''>" --vprod "    <value nick='\''@valuenick@'\'' value='\''@valuenum@'\''/>" --vtail "  </@type@>" --ftail "</schemalist>" [$]^ > [$]@.tmp && mv [$]@.tmp [$]@
+endif
+'
+  _GSETTINGS_SUBST(GSETTINGS_RULES)
+])
+
+dnl _GSETTINGS_SUBST(VARIABLE)
+dnl Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST
+AC_DEFUN([_GSETTINGS_SUBST],
+[
+AC_SUBST([$1])
+m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])])
+]
+)
+
 dnl -*- mode: autoconf -*-
 
 # serial 1
@@ -661,6 +745,12 @@ AC_DEFUN([GTK_DOC_CHECK],
 [
   AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
   AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
+
+  dnl check for tools we added during development
+  AC_PATH_PROG([GTKDOC_CHECK],[gtkdoc-check])
+  AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true])
+  AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf])
+
   dnl for overriding the documentation installation directory
   AC_ARG_WITH([html-dir],
     AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),,
@@ -679,16 +769,32 @@ AC_DEFUN([GTK_DOC_CHECK],
       [PKG_CHECK_EXISTS([gtk-doc],,
                         AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))],
       [PKG_CHECK_EXISTS([gtk-doc >= $1],,
-                        AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build gtk-doc]))])
+                        AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))])
   fi
 
   AC_MSG_CHECKING([whether to build gtk-doc documentation])
   AC_MSG_RESULT($enable_gtk_doc)
 
-  AC_PATH_PROGS(GTKDOC_CHECK,gtkdoc-check,)
+  dnl enable/disable output formats
+  AC_ARG_ENABLE([gtk-doc-html],
+    AS_HELP_STRING([--enable-gtk-doc-html],
+                   [build documentation in html format [[default=yes]]]),,
+    [enable_gtk_doc_html=yes])
+    AC_ARG_ENABLE([gtk-doc-pdf],
+      AS_HELP_STRING([--enable-gtk-doc-pdf],
+                     [build documentation in pdf format [[default=no]]]),,
+      [enable_gtk_doc_pdf=no])
+
+  if test -z "$GTKDOC_MKPDF"; then
+    enable_gtk_doc_pdf=no
+  fi
+
 
   AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes])
+  AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes])
+  AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes])
   AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"])
+  AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"])
 ])
 
 
@@ -842,7 +948,7 @@ IT_PO_SUBDIR([po])
 AC_DEFUN([IT_PO_SUBDIR],
 [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS.
 dnl
-dnl The following CONFIG_COMMANDS should be exetuted at the very end
+dnl The following CONFIG_COMMANDS should be executed at the very end
 dnl of config.status.
 AC_CONFIG_COMMANDS_PRE([
   AC_CONFIG_COMMANDS([$1/stamp-it], [
@@ -888,7 +994,8 @@ AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL])
 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
 #
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
+#                 Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 # This file is free software; the Free Software Foundation gives
@@ -897,7 +1004,8 @@ AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL])
 
 m4_define([_LT_COPYING], [dnl
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
+#                 Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 #   This file is part of GNU Libtool.
@@ -924,7 +1032,7 @@ m4_define([_LT_COPYING], [dnl
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 ])
 
-# serial 56 LT_INIT
+# serial 57 LT_INIT
 
 
 # LT_PREREQ(VERSION)
@@ -953,6 +1061,7 @@ esac
 # ------------------
 AC_DEFUN([LT_INIT],
 [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
+AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
 AC_BEFORE([$0], [LT_LANG])dnl
 AC_BEFORE([$0], [LT_OUTPUT])dnl
 AC_BEFORE([$0], [LTDL_INIT])dnl
@@ -969,6 +1078,8 @@ AC_REQUIRE([LTVERSION_VERSION])dnl
 AC_REQUIRE([LTOBSOLETE_VERSION])dnl
 m4_require([_LT_PROG_LTMAIN])dnl
 
+_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
+
 dnl Parse OPTIONS
 _LT_SET_OPTIONS([$0], [$1])
 
@@ -1005,7 +1116,7 @@ m4_defun([_LT_CC_BASENAME],
     *) break;;
   esac
 done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
 ])
 
 
@@ -1025,6 +1136,9 @@ m4_defun([_LT_FILEUTILS_DEFAULTS],
 m4_defun([_LT_SETUP],
 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+
 _LT_DECL([], [host_alias], [0], [The host system])dnl
 _LT_DECL([], [host], [0])dnl
 _LT_DECL([], [host_os], [0])dnl
@@ -1047,10 +1161,13 @@ _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
 dnl
 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
 m4_require([_LT_CMD_RELOAD])dnl
 m4_require([_LT_CHECK_MAGIC_METHOD])dnl
+m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
 m4_require([_LT_CMD_OLD_ARCHIVE])dnl
 m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_WITH_SYSROOT])dnl
 
 _LT_CONFIG_LIBTOOL_INIT([
 # See if we are running on zsh, and set the options which allow our
@@ -1066,7 +1183,6 @@ fi
 _LT_CHECK_OBJDIR
 
 m4_require([_LT_TAG_COMPILER])dnl
-_LT_PROG_ECHO_BACKSLASH
 
 case $host_os in
 aix3*)
@@ -1080,23 +1196,6 @@ aix3*)
   ;;
 esac
 
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([["`\\]]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
 # Global variables:
 ofile=libtool
 can_build_shared=yes
@@ -1137,6 +1236,28 @@ _LT_CONFIG_COMMANDS
 ])# _LT_SETUP
 
 
+# _LT_PREPARE_SED_QUOTE_VARS
+# --------------------------
+# Define a few sed substitution that help us do robust quoting.
+m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
+[# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([["`\\]]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+])
+
 # _LT_PROG_LTMAIN
 # ---------------
 # Note that this code is called both from `configure', and `config.status'
@@ -1289,7 +1410,7 @@ m4_define([_lt_decl_all_varnames],
 # declaration there will have the same value as in `configure'.  VARNAME
 # must have a single quote delimited value for this to work.
 m4_define([_LT_CONFIG_STATUS_DECLARE],
-[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`'])
+[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
 
 
 # _LT_CONFIG_STATUS_DECLARATIONS
@@ -1299,7 +1420,7 @@ m4_define([_LT_CONFIG_STATUS_DECLARE],
 # embedded single quotes properly.  In configure, this macro expands
 # each variable declared with _LT_DECL (and _LT_TAGDECL) into:
 #
-#    <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`'
+#    <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
 m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
 [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
     [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
@@ -1398,12 +1519,20 @@ LTCC='$LTCC'
 LTCFLAGS='$LTCFLAGS'
 compiler='$compiler_DEFAULT'
 
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$[]1
+_LTECHO_EOF'
+}
+
 # Quote evaled strings.
 for var in lt_decl_all_varnames([[ \
 ]], lt_decl_quote_varnames); do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -1414,9 +1543,9 @@ done
 # Double-quote double-evaled strings.
 for var in lt_decl_all_varnames([[ \
 ]], lt_decl_dquote_varnames); do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -1424,16 +1553,38 @@ for var in lt_decl_all_varnames([[ \
     esac
 done
 
-# Fix-up fallback echo if it was mangled by the above quoting rules.
-case \$lt_ECHO in
-*'\\\[$]0 --fallback-echo"')dnl "
-  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\`
-  ;;
-esac
-
 _LT_OUTPUT_LIBTOOL_INIT
 ])
 
+# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
+# ------------------------------------
+# Generate a child script FILE with all initialization necessary to
+# reuse the environment learned by the parent script, and make the
+# file executable.  If COMMENT is supplied, it is inserted after the
+# `#!' sequence but before initialization text begins.  After this
+# macro, additional text can be appended to FILE to form the body of
+# the child script.  The macro ends with non-zero status if the
+# file could not be fully written (such as if the disk is full).
+m4_ifdef([AS_INIT_GENERATED],
+[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
+[m4_defun([_LT_GENERATED_FILE_INIT],
+[m4_require([AS_PREPARE])]dnl
+[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
+[lt_write_fail=0
+cat >$1 <<_ASEOF || lt_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+$2
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$1 <<\_ASEOF || lt_write_fail=1
+AS_SHELL_SANITIZE
+_AS_PREPARE
+exec AS_MESSAGE_FD>&1
+_ASEOF
+test $lt_write_fail = 0 && chmod +x $1[]dnl
+m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
 
 # LT_OUTPUT
 # ---------
@@ -1443,20 +1594,11 @@ _LT_OUTPUT_LIBTOOL_INIT
 AC_DEFUN([LT_OUTPUT],
 [: ${CONFIG_LT=./config.lt}
 AC_MSG_NOTICE([creating $CONFIG_LT])
-cat >"$CONFIG_LT" <<_LTEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate a libtool stub with the current configuration.
-
-lt_cl_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_LTEOF
+_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
+[# Run this file to recreate a libtool stub with the current configuration.])
 
 cat >>"$CONFIG_LT" <<\_LTEOF
-AS_SHELL_SANITIZE
-_AS_PREPARE
-
-exec AS_MESSAGE_FD>&1
+lt_cl_silent=false
 exec AS_MESSAGE_LOG_FD>>config.log
 {
   echo
@@ -1482,7 +1624,7 @@ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
 m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
 configured by $[0], generated by m4_PACKAGE_STRING.
 
-Copyright (C) 2008 Free Software Foundation, Inc.
+Copyright (C) 2010 Free Software Foundation, Inc.
 This config.lt script is free software; the Free Software Foundation
 gives unlimited permision to copy, distribute and modify it."
 
@@ -1527,15 +1669,13 @@ chmod +x "$CONFIG_LT"
 # appending to config.log, which fails on DOS, as config.log is still kept
 # open by configure.  Here we exec the FD to /dev/null, effectively closing
 # config.log, so it can be properly (re)opened and appended to by config.lt.
-if test "$no_create" != yes; then
-  lt_cl_success=:
-  test "$silent" = yes &&
-    lt_config_lt_args="$lt_config_lt_args --quiet"
-  exec AS_MESSAGE_LOG_FD>/dev/null
-  $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
-  exec AS_MESSAGE_LOG_FD>>config.log
-  $lt_cl_success || AS_EXIT(1)
-fi
+lt_cl_success=:
+test "$silent" = yes &&
+  lt_config_lt_args="$lt_config_lt_args --quiet"
+exec AS_MESSAGE_LOG_FD>/dev/null
+$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+exec AS_MESSAGE_LOG_FD>>config.log
+$lt_cl_success || AS_EXIT(1)
 ])# LT_OUTPUT
 
 
@@ -1598,15 +1738,12 @@ _LT_EOF
   # if finds mixed CR/LF and LF-only lines.  Since sed operates in
   # text mode, it properly converts lines to CR/LF.  This bash problem
   # is reportedly fixed, but why not run on old versions too?
-  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
+  sed '$q' "$ltmain" >> "$cfgfile" \
+     || (rm -f "$cfgfile"; exit 1)
 
-  _LT_PROG_XSI_SHELLFNS
+  _LT_PROG_REPLACE_SHELLFNS
 
-  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" ||
+   mv -f "$cfgfile" "$ofile" ||
     (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
   chmod +x "$ofile"
 ],
@@ -1712,11 +1849,13 @@ AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
 AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
 AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
 AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
 dnl aclocal-1.4 backwards compatibility:
 dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
 dnl AC_DEFUN([AC_LIBTOOL_F77], [])
 dnl AC_DEFUN([AC_LIBTOOL_FC], [])
 dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
+dnl AC_DEFUN([AC_LIBTOOL_RC], [])
 
 
 # _LT_TAG_COMPILER
@@ -1821,6 +1960,31 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
        [lt_cv_ld_exported_symbols_list=no])
        LDFLAGS="$save_LDFLAGS"
     ])
+    AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
+      [lt_cv_ld_force_load=no
+      cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
+      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
+      echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+      $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+      echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
+      $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
+      cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
+      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+      _lt_result=$?
+      if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
+       lt_cv_ld_force_load=yes
+      else
+       cat conftest.err >&AS_MESSAGE_LOG_FD
+      fi
+        rm -f conftest.err libconftest.a conftest conftest.c
+        rm -rf conftest.dSYM
+    ])
     case $host_os in
     rhapsody* | darwin1.[[012]])
       _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
@@ -1848,7 +2012,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
     else
       _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
     fi
-    if test "$DSYMUTIL" != ":"; then
+    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
       _lt_dsymutil='~$DSYMUTIL $lib || :'
     else
       _lt_dsymutil=
@@ -1868,7 +2032,11 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
   _LT_TAGVAR(hardcode_direct, $1)=no
   _LT_TAGVAR(hardcode_automatic, $1)=yes
   _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+  if test "$lt_cv_ld_force_load" = "yes"; then
+    _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+  else
+    _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+  fi
   _LT_TAGVAR(link_all_deplibs, $1)=yes
   _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
   case $cc_basename in
@@ -1876,7 +2044,7 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
      *) _lt_dar_can_shared=$GCC ;;
   esac
   if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=echo
+    output_verbose_link_cmd=func_echo_all
     _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
     _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
     _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
@@ -1892,203 +2060,142 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
   fi
 ])
 
-# _LT_SYS_MODULE_PATH_AIX
-# -----------------------
+# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
+# ----------------------------------
 # Links a minimal program and checks the executable
 # for the system default hardcoded library path. In most cases,
 # this is /usr/lib:/lib, but when the MPI compilers are used
 # the location of the communication and MPI libs are included too.
 # If we don't find anything, use the default library path according
 # to the aix ld manual.
+# Store the results from the different compilers for each TAGNAME.
+# Allow to override them for all tags through lt_cv_aix_libpath.
 m4_defun([_LT_SYS_MODULE_PATH_AIX],
 [m4_require([_LT_DECL_SED])dnl
-AC_LINK_IFELSE(AC_LANG_PROGRAM,[
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-       /^0/ {
-           s/^0  *\(.*\)$/\1/
-           p
-       }
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi],[])
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
+  [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
+  lt_aix_libpath_sed='[
+      /Import File Strings/,/^$/ {
+         /^0/ {
+             s/^0  *\([^ ]*\) *$/\1/
+             p
+         }
+      }]'
+  _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi],[])
+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
+  fi
+  ])
+  aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
+fi
 ])# _LT_SYS_MODULE_PATH_AIX
 
 
 # _LT_SHELL_INIT(ARG)
 # -------------------
 m4_define([_LT_SHELL_INIT],
-[ifdef([AC_DIVERSION_NOTICE],
-            [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
-        [AC_DIVERT_PUSH(NOTICE)])
-$1
-AC_DIVERT_POP
-])# _LT_SHELL_INIT
+[m4_divert_text([M4SH-INIT], [$1
+])])# _LT_SHELL_INIT
+
 
 
 # _LT_PROG_ECHO_BACKSLASH
 # -----------------------
-# Add some code to the start of the generated configure script which
-# will find an echo command which doesn't interpret backslashes.
+# Find how we can fake an echo command that does not interpret backslash.
+# In particular, with Autoconf 2.60 or later we add some code to the start
+# of the generated configure script which will find a shell with a builtin
+# printf (which we can use as an echo command).
 m4_defun([_LT_PROG_ECHO_BACKSLASH],
-[_LT_SHELL_INIT([
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$lt_ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
-  ;;
-esac
-
-ECHO=${lt_ECHO-echo}
-if test "X[$]1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X[$]1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $ECHO works!
-  :
+[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+AC_MSG_CHECKING([how to print strings])
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='printf %s\n'
 else
-  # Restart under the correct shell.
-  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
-fi
-
-if test "X[$]1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<_LT_EOF
-[$]*
-_LT_EOF
-  exit 0
+  # Use this function as a fallback that always works.
+  func_fallback_echo ()
+  {
+    eval 'cat <<_LTECHO_EOF
+$[]1
+_LTECHO_EOF'
+  }
+  ECHO='func_fallback_echo'
 fi
 
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test -z "$lt_ECHO"; then
-  if test "X${echo_test_string+set}" != Xset; then
-    # find a string as large as possible, as long as the shell can cope with it
-    for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
-      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
-        { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
-      then
-        break
-      fi
-    done
-  fi
-
-  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-     test "X$echo_testing_string" = "X$echo_test_string"; then
-    :
-  else
-    # The Solaris, AIX, and Digital Unix default echo programs unquote
-    # backslashes.  This makes it impossible to quote backslashes using
-    #   echo "$something" | sed 's/\\/\\\\/g'
-    #
-    # So, first we look for a working echo in the user's PATH.
-
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for dir in $PATH /usr/ucb; do
-      IFS="$lt_save_ifs"
-      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        ECHO="$dir/echo"
-        break
-      fi
-    done
-    IFS="$lt_save_ifs"
-
-    if test "X$ECHO" = Xecho; then
-      # We didn't find a better echo, so look for alternatives.
-      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        # This shell has a builtin print -r that does the trick.
-        ECHO='print -r'
-      elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
-          test "X$CONFIG_SHELL" != X/bin/ksh; then
-        # If we have ksh, try running configure again with it.
-        ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-        export ORIGINAL_CONFIG_SHELL
-        CONFIG_SHELL=/bin/ksh
-        export CONFIG_SHELL
-        exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
-      else
-        # Try using printf.
-        ECHO='printf %s\n'
-        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-          echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-          test "X$echo_testing_string" = "X$echo_test_string"; then
-         # Cool, printf works
-         :
-        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-            test "X$echo_testing_string" = 'X\t' &&
-            echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-            test "X$echo_testing_string" = "X$echo_test_string"; then
-         CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-         export CONFIG_SHELL
-         SHELL="$CONFIG_SHELL"
-         export SHELL
-         ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
-        elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-            test "X$echo_testing_string" = 'X\t' &&
-            echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-            test "X$echo_testing_string" = "X$echo_test_string"; then
-         ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
-        else
-         # maybe with a smaller string...
-         prev=:
-
-         for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
-           if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
-           then
-             break
-           fi
-           prev="$cmd"
-         done
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO "$*" 
+}
 
-         if test "$prev" != 'sed 50q "[$]0"'; then
-           echo_test_string=`eval $prev`
-           export echo_test_string
-           exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
-         else
-           # Oops.  We lost completely, so just stick with echo.
-           ECHO=echo
-         fi
-        fi
-      fi
-    fi
-  fi
-fi
+case "$ECHO" in
+  printf*) AC_MSG_RESULT([printf]) ;;
+  print*) AC_MSG_RESULT([print -r]) ;;
+  *) AC_MSG_RESULT([cat]) ;;
+esac
 
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-lt_ECHO=$ECHO
-if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
-   lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
-fi
+m4_ifdef([_AS_DETECT_SUGGESTED],
+[_AS_DETECT_SUGGESTED([
+  test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
+    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+    PATH=/empty FPATH=/empty; export PATH FPATH
+    test "X`printf %s $ECHO`" = "X$ECHO" \
+      || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
 
-AC_SUBST(lt_ECHO)
-])
 _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
-_LT_DECL([], [ECHO], [1],
-    [An echo program that does not interpret backslashes])
+_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
 ])# _LT_PROG_ECHO_BACKSLASH
 
 
+# _LT_WITH_SYSROOT
+# ----------------
+AC_DEFUN([_LT_WITH_SYSROOT],
+[AC_MSG_CHECKING([for sysroot])
+AC_ARG_WITH([sysroot],
+[  --with-sysroot[=DIR] Search for dependent libraries within DIR
+                        (or the compiler's sysroot if not specified).],
+[], [with_sysroot=no])
+
+dnl lt_sysroot will always be passed unquoted.  We quote it here
+dnl in case the user passed a directory name.
+lt_sysroot=
+case ${with_sysroot} in #(
+ yes)
+   if test "$GCC" = yes; then
+     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+   fi
+   ;; #(
+ /*)
+   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+   ;; #(
+ no|'')
+   ;; #(
+ *)
+   AC_MSG_RESULT([${with_sysroot}])
+   AC_MSG_ERROR([The sysroot must be an absolute path.])
+   ;;
+esac
+
+ AC_MSG_RESULT([${lt_sysroot:-no}])
+_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
+[dependent libraries, and in which our libraries should be installed.])])
+
 # _LT_ENABLE_LOCK
 # ---------------
 m4_defun([_LT_ENABLE_LOCK],
@@ -2117,7 +2224,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     if test "$lt_cv_prog_gnu_ld" = yes; then
       case `/usr/bin/file conftest.$ac_objext` in
@@ -2235,14 +2342,47 @@ need_locks="$enable_libtool_lock"
 ])# _LT_ENABLE_LOCK
 
 
+# _LT_PROG_AR
+# -----------
+m4_defun([_LT_PROG_AR],
+[AC_CHECK_TOOLS(AR, [ar], false)
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+_LT_DECL([], [AR], [1], [The archiver])
+_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
+
+AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
+  [lt_cv_ar_at_file=no
+   AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
+     [echo conftest.$ac_objext > conftest.lst
+      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
+      AC_TRY_EVAL([lt_ar_try])
+      if test "$ac_status" -eq 0; then
+       # Ensure the archiver fails upon bogus file names.
+       rm -f conftest.$ac_objext libconftest.a
+       AC_TRY_EVAL([lt_ar_try])
+       if test "$ac_status" -ne 0; then
+          lt_cv_ar_at_file=@
+        fi
+      fi
+      rm -f conftest.* libconftest.a
+     ])
+  ])
+
+if test "x$lt_cv_ar_at_file" = xno; then
+  archiver_list_spec=
+else
+  archiver_list_spec=$lt_cv_ar_at_file
+fi
+_LT_DECL([], [archiver_list_spec], [1],
+  [How to feed a file listing to the archiver])
+])# _LT_PROG_AR
+
+
 # _LT_CMD_OLD_ARCHIVE
 # -------------------
 m4_defun([_LT_CMD_OLD_ARCHIVE],
-[AC_CHECK_TOOL(AR, ar, false)
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-_LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1])
+[_LT_PROG_AR
 
 AC_CHECK_TOOL(STRIP, strip, :)
 test -z "$STRIP" && STRIP=:
@@ -2269,10 +2409,19 @@ if test -n "$RANLIB"; then
   esac
   old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
 fi
+
+case $host_os in
+  darwin*)
+    lock_old_archive_extraction=yes ;;
+  *)
+    lock_old_archive_extraction=no ;;
+esac
 _LT_DECL([], [old_postinstall_cmds], [2])
 _LT_DECL([], [old_postuninstall_cmds], [2])
 _LT_TAGDECL([], [old_archive_cmds], [2],
     [Commands used to build an old-style archive])
+_LT_DECL([], [lock_old_archive_extraction], [0],
+    [Whether to use a lock for old archive extraction])
 ])# _LT_CMD_OLD_ARCHIVE
 
 
@@ -2297,15 +2446,15 @@ AC_CACHE_CHECK([$1], [$2],
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        $2=yes
@@ -2345,7 +2494,7 @@ AC_CACHE_CHECK([$1], [$2],
      if test -s conftest.err; then
        # Append any errors to the config.log.
        cat conftest.err 1>&AS_MESSAGE_LOG_FD
-       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
          $2=yes
@@ -2408,6 +2557,11 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
     lt_cv_sys_max_cmd_len=8192;
     ;;
 
+  mint*)
+    # On MiNT this can take a long time and run out of memory.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
   amigaos*)
     # On AmigaOS with pdksh, this test takes hours, literally.
     # So we just punt and use a minimum line length of 8192.
@@ -2472,8 +2626,8 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
-                = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
+      while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
+                = "X$teststring$teststring"; } >/dev/null 2>&1 &&
              test $i != 17 # 1/2 MB should be enough
       do
         i=`expr $i + 1`
@@ -2524,7 +2678,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-[#line __oline__ "configure"
+[#line $LINENO "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -2565,7 +2719,13 @@ else
 #  endif
 #endif
 
-void fnord() { int i=42;}
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
 int main ()
 {
   void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
@@ -2574,7 +2734,11 @@ int main ()
   if (self)
     {
       if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      else
+        {
+         if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+       }
       /* dlclose (self); */
     }
   else
@@ -2750,16 +2914,16 @@ AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
      if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
@@ -2918,6 +3082,7 @@ m4_require([_LT_DECL_EGREP])dnl
 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_DECL_OBJDUMP])dnl
 m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
 AC_MSG_CHECKING([dynamic linker characteristics])
 m4_if([$1],
        [], [
@@ -2926,16 +3091,23 @@ if test "$GCC" = yes; then
     darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
     *) lt_awk_arg="/^libraries:/" ;;
   esac
-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
+  case $host_os in
+    mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
+    *) lt_sed_strip_eq="s,=/,/,g" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+  case $lt_search_path_spec in
+  *\;*)
     # if the path contains ";" then we assume it to be the separator
     # otherwise default to the standard path separator (i.e. ":") - it is
     # assumed that no part of a normal pathname contains ";" but that should
     # okay in the real world where ";" in dirpaths is itself problematic.
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+    ;;
+  *)
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+    ;;
+  esac
   # Ok, now we have the path, separated by spaces, we can step through it
   # and add multilib dir if necessary.
   lt_tmp_lt_search_path_spec=
@@ -2948,7 +3120,7 @@ if test "$GCC" = yes; then
        lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
     fi
   done
-  lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
+  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
 BEGIN {RS=" "; FS="/|\n";} {
   lt_foo="";
   lt_count=0;
@@ -2968,7 +3140,13 @@ BEGIN {RS=" "; FS="/|\n";} {
   if (lt_foo != "") { lt_freq[[lt_foo]]++; }
   if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
 }'`
-  sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
+  # AWK program above erroneously prepends '/' to C:/dos/paths
+  # for these hosts.
+  case $host_os in
+    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+      $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
+  esac
+  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
 else
   sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
 fi])
@@ -3056,7 +3234,7 @@ amigaos*)
   m68k)
     library_names_spec='$libname.ixlibrary $libname.a'
     # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
     ;;
   esac
   ;;
@@ -3087,8 +3265,9 @@ cygwin* | mingw* | pw32* | cegcc*)
   need_version=no
   need_lib_prefix=no
 
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+  case $GCC,$cc_basename in
+  yes,*)
+    # gcc
     library_names_spec='$libname.dll.a'
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
     postinstall_cmds='base_file=`basename \${file}`~
@@ -3109,36 +3288,83 @@ cygwin* | mingw* | pw32* | cegcc*)
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
       soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+m4_if([$1], [],[
+      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
       ;;
     mingw* | cegcc*)
       # MinGW DLLs use traditional 'lib' prefix
       soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
       library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
       ;;
     esac
+    dynamic_linker='Win32 ld.exe'
+    ;;
+
+  *,cl*)
+    # Native MSVC
+    libname_spec='$name'
+    soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+    library_names_spec='${libname}.dll.lib'
+
+    case $build_os in
+    mingw*)
+      sys_lib_search_path_spec=
+      lt_save_ifs=$IFS
+      IFS=';'
+      for lt_path in $LIB
+      do
+        IFS=$lt_save_ifs
+        # Let DOS variable expansion print the short 8.3 style file name.
+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+      done
+      IFS=$lt_save_ifs
+      # Convert to MSYS style.
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
+      ;;
+    cygwin*)
+      # Convert to unix form, then to dos form, then back to unix form
+      # but this time dos style (no spaces!) so that the unix form looks
+      # like /cygdrive/c/PROGRA~1:/cygdr...
+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      ;;
+    *)
+      sys_lib_search_path_spec="$LIB"
+      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
+        # It is most probably a Windows format PATH.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      # FIXME: find the short name or the path components, as spaces are
+      # common. (e.g. "Program Files" -> "PROGRA~1")
+      ;;
+    esac
+
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+    dynamic_linker='Win32 link.exe'
     ;;
 
   *)
+    # Assume MSVC wrapper
     library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    dynamic_linker='Win32 ld.exe'
     ;;
   esac
-  dynamic_linker='Win32 ld.exe'
   # FIXME: first we should search . and the directory the executable is in
   shlibpath_var=PATH
   ;;
@@ -3225,6 +3451,19 @@ gnu*)
   hardcode_into_libs=yes
   ;;
 
+haiku*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+  hardcode_into_libs=yes
+  ;;
+
 hpux9* | hpux10* | hpux11*)
   # Give a soname corresponding to the major version so that dld.sl refuses to
   # link against other versions.
@@ -3267,8 +3506,10 @@ hpux9* | hpux10* | hpux11*)
     soname_spec='${libname}${release}${shared_ext}$major'
     ;;
   esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
   postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
   ;;
 
 interix[[3-9]]*)
@@ -3326,7 +3567,7 @@ linux*oldld* | linux*aout* | linux*coff*)
   ;;
 
 # This must be Linux ELF.
-linux* | k*bsd*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
   version_type=linux
   need_lib_prefix=no
   need_version=no
@@ -3335,16 +3576,21 @@ linux* | k*bsd*-gnu)
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
+
   # Some binutils ld are patched to set DT_RUNPATH
-  save_LDFLAGS=$LDFLAGS
-  save_libdir=$libdir
-  eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
-       LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
-    [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
-       [shlibpath_overrides_runpath=yes])])
-  LDFLAGS=$save_LDFLAGS
-  libdir=$save_libdir
+  AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
+    [lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
+        LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+      [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
+        [lt_cv_shlibpath_overrides_runpath=yes])])
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
+    ])
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
 
   # This implies no fast_install, which is unacceptable.
   # Some rework will be needed to allow for fast_install
@@ -3356,8 +3602,9 @@ linux* | k*bsd*-gnu)
 
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[  ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[  ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
     sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
+
   fi
 
   # We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -3589,6 +3836,8 @@ _LT_DECL([], [library_names_spec], [1],
     The last name is the one that the linker finds with -lNAME]])
 _LT_DECL([], [soname_spec], [1],
     [[The coded name of the library, if different from the real name]])
+_LT_DECL([], [install_override_mode], [1],
+    [Permission mode override for installation of shared libraries])
 _LT_DECL([], [postinstall_cmds], [2],
     [Command to use after installation of a shared archive])
 _LT_DECL([], [postuninstall_cmds], [2],
@@ -3701,6 +3950,7 @@ AC_REQUIRE([AC_CANONICAL_HOST])dnl
 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
 m4_require([_LT_DECL_SED])dnl
 m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
 
 AC_ARG_WITH([gnu-ld],
     [AS_HELP_STRING([--with-gnu-ld],
@@ -3822,6 +4072,11 @@ case $reload_flag in
 esac
 reload_cmds='$LD$reload_flag -o $output$reload_objs'
 case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    if test "$GCC" != yes; then
+      reload_cmds=false
+    fi
+    ;;
   darwin*)
     if test "$GCC" = yes; then
       reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
@@ -3830,8 +4085,8 @@ case $host_os in
     fi
     ;;
 esac
-_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl
-_LT_DECL([], [reload_cmds], [2])dnl
+_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
+_LT_TAGDECL([], [reload_cmds], [2])dnl
 ])# _LT_CMD_RELOAD
 
 
@@ -3883,16 +4138,18 @@ mingw* | pw32*)
   # Base MSYS/MinGW do not provide the 'file' command needed by
   # func_win32_libid shell function, so use a weaker test based on 'objdump',
   # unless we find 'file', for example because we are cross-compiling.
-  if ( file / ) >/dev/null 2>&1; then
+  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
+  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
     lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
     lt_cv_file_magic_cmd='func_win32_libid'
   else
-    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+    # Keep this pattern in sync with the one in func_win32_libid.
+    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
     lt_cv_file_magic_cmd='$OBJDUMP -f'
   fi
   ;;
 
-cegcc)
+cegcc*)
   # use the weaker test based on 'objdump'. See mingw*.
   lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
   lt_cv_file_magic_cmd='$OBJDUMP -f'
@@ -3922,6 +4179,10 @@ gnu*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
+haiku*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
 hpux10.20* | hpux11*)
   lt_cv_file_magic_cmd=/usr/bin/file
   case $host_cpu in
@@ -3930,11 +4191,11 @@ hpux10.20* | hpux11*)
     lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
     ;;
   hppa*64*)
-    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
     lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
     ;;
   *)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
     lt_cv_file_magic_test_file=/usr/lib/libc.sl
     ;;
   esac
@@ -3956,7 +4217,7 @@ irix5* | irix6* | nonstopux*)
   ;;
 
 # This must be Linux ELF.
-linux* | k*bsd*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -4034,6 +4295,21 @@ tpf*)
   ;;
 esac
 ])
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+  case $host_os in
+  mingw* | pw32*)
+    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+      want_nocaseglob=yes
+    else
+      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
+    fi
+    ;;
+  esac
+fi
+
 file_magic_cmd=$lt_cv_file_magic_cmd
 deplibs_check_method=$lt_cv_deplibs_check_method
 test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -4041,7 +4317,11 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
 _LT_DECL([], [deplibs_check_method], [1],
     [Method to check whether dependent libraries are shared objects])
 _LT_DECL([], [file_magic_cmd], [1],
-    [Command to use when deplibs_check_method == "file_magic"])
+    [Command to use when deplibs_check_method = "file_magic"])
+_LT_DECL([], [file_magic_glob], [1],
+    [How to find potential files when deplibs_check_method = "file_magic"])
+_LT_DECL([], [want_nocaseglob], [1],
+    [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
 ])# _LT_CHECK_MAGIC_METHOD
 
 
@@ -4098,7 +4378,19 @@ if test "$lt_cv_path_NM" != "no"; then
   NM="$lt_cv_path_NM"
 else
   # Didn't find any BSD compatible name lister, look for dumpbin.
-  AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :)
+  if test -n "$DUMPBIN"; then :
+    # Let the user override the test.
+  else
+    AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
+    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+    *COFF*)
+      DUMPBIN="$DUMPBIN -symbols"
+      ;;
+    *)
+      DUMPBIN=:
+      ;;
+    esac
+  fi
   AC_SUBST([DUMPBIN])
   if test "$DUMPBIN" != ":"; then
     NM="$DUMPBIN"
@@ -4111,13 +4403,13 @@ _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
 AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
   [lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD)
+  (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
   cat conftest.out >&AS_MESSAGE_LOG_FD
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -4132,6 +4424,67 @@ dnl aclocal-1.4 backwards compatibility:
 dnl AC_DEFUN([AM_PROG_NM], [])
 dnl AC_DEFUN([AC_PROG_NM], [])
 
+# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+# --------------------------------
+# how to determine the name of the shared library
+# associated with a specific link library.
+#  -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+m4_require([_LT_DECL_DLLTOOL])
+AC_CACHE_CHECK([how to associate runtime and link libraries],
+lt_cv_sharedlib_from_linklib_cmd,
+[lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+  # two different shell functions defined in ltmain.sh
+  # decide which to use based on capabilities of $DLLTOOL
+  case `$DLLTOOL --help 2>&1` in
+  *--identify-strict*)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+    ;;
+  *)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+    ;;
+  esac
+  ;;
+*)
+  # fallback: assume linklib IS sharedlib
+  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
+  ;;
+esac
+])
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
+    [Command to associate shared and link libraries])
+])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+
+
+# _LT_PATH_MANIFEST_TOOL
+# ----------------------
+# locate the manifest tool
+m4_defun([_LT_PATH_MANIFEST_TOOL],
+[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
+  [lt_cv_path_mainfest_tool=no
+  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
+  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+    lt_cv_path_mainfest_tool=yes
+  fi
+  rm -f conftest*])
+if test "x$lt_cv_path_mainfest_tool" != xyes; then
+  MANIFEST_TOOL=:
+fi
+_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
+])# _LT_PATH_MANIFEST_TOOL
+
 
 # LT_LIB_M
 # --------
@@ -4140,7 +4493,7 @@ AC_DEFUN([LT_LIB_M],
 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 LIBM=
 case $host in
-*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
   # These system don't have libm, or don't need it
   ;;
 *-ncr-sysv4.3*)
@@ -4168,7 +4521,12 @@ m4_defun([_LT_COMPILER_NO_RTTI],
 _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
 
 if test "$GCC" = yes; then
-  _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+  case $cc_basename in
+  nvcc*)
+    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
+  *)
+    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
+  esac
 
   _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
     lt_cv_prog_compiler_rtti_exceptions,
@@ -4185,6 +4543,7 @@ _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
 m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_AWK])dnl
 AC_REQUIRE([LT_PATH_NM])dnl
 AC_REQUIRE([LT_PATH_LD])dnl
 m4_require([_LT_DECL_SED])dnl
@@ -4252,8 +4611,8 @@ esac
 lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
 
 # Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
 
 # Handle CRLF in mingw tool chain
 opt_cr=
@@ -4289,6 +4648,7 @@ for ac_symprfx in "" "_"; do
   else
     lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[    ]]\($symcode$symcode*\)[[       ]][[    ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
   fi
+  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
 
   # Check to see that the pipe works correctly.
   pipe_works=no
@@ -4310,7 +4670,7 @@ _LT_EOF
   if AC_TRY_EVAL(ac_compile); then
     # Now try to grab the symbols.
     nlist=conftest.nm
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+    if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
       # Try sorting and uniquifying the output.
       if sort "$nlist" | uniq > "$nlist"T; then
        mv -f "$nlist"T "$nlist"
@@ -4322,6 +4682,18 @@ _LT_EOF
       if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
        if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
          cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT@&t@_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data.  */
+# define LT@&t@_DLSYM_CONST
+#else
+# define LT@&t@_DLSYM_CONST const
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -4333,7 +4705,7 @@ _LT_EOF
          cat <<_LT_EOF >> conftest.$ac_ext
 
 /* The mapping between symbol names and symbols.  */
-const struct {
+LT@&t@_DLSYM_CONST struct {
   const char *name;
   void       *address;
 }
@@ -4359,15 +4731,15 @@ static const void *lt_preloaded_setup() {
 _LT_EOF
          # Now try linking the two files.
          mv conftest.$ac_objext conftstm.$ac_objext
-         lt_save_LIBS="$LIBS"
-         lt_save_CFLAGS="$CFLAGS"
+         lt_globsym_save_LIBS=$LIBS
+         lt_globsym_save_CFLAGS=$CFLAGS
          LIBS="conftstm.$ac_objext"
          CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
          if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
            pipe_works=yes
          fi
-         LIBS="$lt_save_LIBS"
-         CFLAGS="$lt_save_CFLAGS"
+         LIBS=$lt_globsym_save_LIBS
+         CFLAGS=$lt_globsym_save_CFLAGS
        else
          echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
        fi
@@ -4400,6 +4772,13 @@ else
   AC_MSG_RESULT(ok)
 fi
 
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
+  nm_file_list_spec='@'
+fi
+
 _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
     [Take the output of nm and produce a listing of raw symbols and C names])
 _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
@@ -4410,6 +4789,8 @@ _LT_DECL([global_symbol_to_c_name_address],
 _LT_DECL([global_symbol_to_c_name_address_lib_prefix],
     [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
     [Transform the output of nm in a C name address pair when lib prefix is needed])
+_LT_DECL([], [nm_file_list_spec], [1],
+    [Specify filename containing input files for $NM])
 ]) # _LT_CMD_GLOBAL_SYMBOLS
 
 
@@ -4421,7 +4802,6 @@ _LT_TAGVAR(lt_prog_compiler_wl, $1)=
 _LT_TAGVAR(lt_prog_compiler_pic, $1)=
 _LT_TAGVAR(lt_prog_compiler_static, $1)=
 
-AC_MSG_CHECKING([for $compiler option to produce PIC])
 m4_if([$1], [CXX], [
   # C++ specific cases for pic, static, wl, etc.
   if test "$GXX" = yes; then
@@ -4472,6 +4852,11 @@ m4_if([$1], [CXX], [
       # DJGPP does not support shared libraries at all
       _LT_TAGVAR(lt_prog_compiler_pic, $1)=
       ;;
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)=
+      ;;
     interix[[3-9]]*)
       # Interix 3.x gcc -fpic/-fPIC options generate broken code.
       # Instead, we relocate shared libraries at runtime.
@@ -4521,6 +4906,12 @@ m4_if([$1], [CXX], [
          ;;
        esac
        ;;
+      mingw* | cygwin* | os2* | pw32* | cegcc*)
+       # This hack is so that the source file can tell whether it is being
+       # built for inclusion in a dll (and should export symbols for example).
+       m4_if([$1], [GCJ], [],
+         [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+       ;;
       dgux*)
        case $cc_basename in
          ec++*)
@@ -4577,7 +4968,7 @@ m4_if([$1], [CXX], [
            ;;
        esac
        ;;
-      linux* | k*bsd*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu)
        case $cc_basename in
          KCC*)
            # KAI C++ Compiler
@@ -4610,8 +5001,8 @@ m4_if([$1], [CXX], [
            _LT_TAGVAR(lt_prog_compiler_pic, $1)=
            _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
            ;;
-         xlc* | xlC*)
-           # IBM XL 8.0 on PPC
+         xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
+           # IBM XL 8.0, 9.0 on PPC and BlueGene
            _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
            _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
@@ -4673,7 +5064,7 @@ m4_if([$1], [CXX], [
        ;;
       solaris*)
        case $cc_basename in
-         CC*)
+         CC* | sunCC*)
            # Sun C++ 4.2, 5.x and Centerline C++
            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
            _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
@@ -4777,6 +5168,12 @@ m4_if([$1], [CXX], [
       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
       ;;
 
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)=
+      ;;
+
     hpux*)
       # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
       # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
@@ -4819,6 +5216,13 @@ m4_if([$1], [CXX], [
       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
       ;;
     esac
+
+    case $cc_basename in
+    nvcc*) # Cuda Compiler Driver 2.2
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC'
+      ;;
+    esac
   else
     # PORTME Check for flag to pass linker flags through the system compiler.
     case $host_os in
@@ -4861,7 +5265,7 @@ m4_if([$1], [CXX], [
       _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
       ;;
 
-    linux* | k*bsd*-gnu)
+    linux* | k*bsd*-gnu | kopensolaris*-gnu)
       case $cc_basename in
       # old Intel for x86_64 which still supported -KPIC.
       ecc*)
@@ -4882,7 +5286,13 @@ m4_if([$1], [CXX], [
        _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
        _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
        ;;
-      pgcc* | pgf77* | pgf90* | pgf95*)
+      nagfor*)
+       # NAG Fortran compiler
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+       ;;
+      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
         # Portland Group compilers (*not* the Pentium gcc compiler,
        # which looks to be a dead project)
        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
@@ -4894,25 +5304,25 @@ m4_if([$1], [CXX], [
         # All Alpha code is PIC.
         _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
         ;;
-      xl*)
-       # IBM XL C 8.0/Fortran 10.1 on PPC
+      xl* | bgxl* | bgf* | mpixl*)
+       # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
        _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
        ;;
       *)
        case `$CC -V 2>&1 | sed 5q` in
-       *Sun\ C*)
-         # Sun C 5.9
+       *Sun\ F* | *Sun*Fortran*)
+         # Sun Fortran 8.3 passes all unrecognized flags to the linker
          _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
          _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+         _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
          ;;
-       *Sun\ F*)
-         # Sun Fortran 8.3 passes all unrecognized flags to the linker
+       *Sun\ C*)
+         # Sun C 5.9
          _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
          _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-         _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
+         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
          ;;
        esac
        ;;
@@ -4944,7 +5354,7 @@ m4_if([$1], [CXX], [
       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       case $cc_basename in
-      f77* | f90* | f95*)
+      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
       *)
        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
@@ -5001,9 +5411,11 @@ case $host_os in
     _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
     ;;
 esac
-AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
-       [How to pass a linker flag through the compiler])
+
+AC_CACHE_CHECK([for $compiler option to produce PIC],
+  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
+  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
 
 #
 # Check to make sure the PIC flag actually works.
@@ -5022,6 +5434,8 @@ fi
 _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
        [Additional compiler flags for building library objects])
 
+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
+       [How to pass a linker flag through the compiler])
 #
 # Check to make sure the static flag actually works.
 #
@@ -5042,6 +5456,7 @@ _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
 m4_defun([_LT_LINKER_SHLIBS],
 [AC_REQUIRE([LT_PATH_LD])dnl
 AC_REQUIRE([LT_PATH_NM])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_DECL_EGREP])dnl
 m4_require([_LT_DECL_SED])dnl
@@ -5050,27 +5465,35 @@ m4_require([_LT_TAG_COMPILER])dnl
 AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
 m4_if([$1], [CXX], [
   _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
   case $host_os in
   aix[[4-9]]*)
     # If we're using GNU nm, then we don't want the "-C" option.
     # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    # Also, AIX nm treats weak defined symbols like other global defined
+    # symbols, whereas GNU nm marks them as "W".
     if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
     else
       _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
     fi
     ;;
   pw32*)
     _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
-  ;;
+    ;;
   cygwin* | mingw* | cegcc*)
-    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
+    case $cc_basename in
+    cl*) ;;
+    *)
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+      ;;
+    esac
+    ;;
   *)
     _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
+    ;;
   esac
-  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
 ], [
   runpath_var=
   _LT_TAGVAR(allow_undefined_flag, $1)=
@@ -5133,7 +5556,33 @@ dnl Note also adjust exclude_expsyms for C++ above.
   esac
 
   _LT_TAGVAR(ld_shlibs, $1)=yes
+
+  # On some targets, GNU ld is compatible enough with the native linker
+  # that we're better off using the native interface for both.
+  lt_use_gnu_ld_interface=no
   if test "$with_gnu_ld" = yes; then
+    case $host_os in
+      aix*)
+       # The AIX port of GNU ld has always aspired to compatibility
+       # with the native linker.  However, as the warning in the GNU ld
+       # block says, versions before 2.19.5* couldn't really create working
+       # shared libraries, regardless of the interface used.
+       case `$LD -v 2>&1` in
+         *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+         *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
+         *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
+         *)
+           lt_use_gnu_ld_interface=yes
+           ;;
+       esac
+       ;;
+      *)
+       lt_use_gnu_ld_interface=yes
+       ;;
+    esac
+  fi
+
+  if test "$lt_use_gnu_ld_interface" = yes; then
     # If archive_cmds runs LD, not CC, wlarc should be empty
     wlarc='${wl}'
 
@@ -5151,6 +5600,7 @@ dnl Note also adjust exclude_expsyms for C++ above.
     fi
     supports_anon_versioning=no
     case `$LD -v 2>&1` in
+      *GNU\ gold*) supports_anon_versioning=yes ;;
       *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
       *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
       *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
@@ -5166,11 +5616,12 @@ dnl Note also adjust exclude_expsyms for C++ above.
        _LT_TAGVAR(ld_shlibs, $1)=no
        cat <<_LT_EOF 1>&2
 
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** Warning: the GNU linker, at least up to release 2.19, is reported
 *** to be unable to reliably create shared libraries on AIX.
 *** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
 
 _LT_EOF
       fi
@@ -5206,10 +5657,12 @@ _LT_EOF
       # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
       # as there is no search path for DLLs.
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
       _LT_TAGVAR(always_export_symbols, $1)=no
       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
 
       if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
@@ -5227,6 +5680,11 @@ _LT_EOF
       fi
       ;;
 
+    haiku*)
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
     interix[[3-9]]*)
       _LT_TAGVAR(hardcode_direct, $1)=no
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
@@ -5242,7 +5700,7 @@ _LT_EOF
       _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
       ;;
 
-    gnu* | linux* | tpf* | k*bsd*-gnu)
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
       tmp_diet=no
       if test "$host_os" = linux-dietlibc; then
        case $cc_basename in
@@ -5252,15 +5710,16 @@ _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
         && test "$tmp_diet" = no
       then
-       tmp_addflag=
+       tmp_addflag=' $pic_flag'
        tmp_sharedflag='-shared'
        case $cc_basename,$host_cpu in
         pgcc*)                         # Portland Group C compiler
-         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
          tmp_addflag=' $pic_flag'
          ;;
-       pgf77* | pgf90* | pgf95*)       # Portland Group f77 and f90 compilers
-         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+       pgf77* | pgf90* | pgf95* | pgfortran*)
+                                       # Portland Group f77 and f90 compilers
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
          tmp_addflag=' $pic_flag -Mnomain' ;;
        ecc*,ia64* | icc*,ia64*)        # Intel C compiler on ia64
          tmp_addflag=' -i_dynamic' ;;
@@ -5271,13 +5730,17 @@ _LT_EOF
        lf95*)                          # Lahey Fortran 8.1
          _LT_TAGVAR(whole_archive_flag_spec, $1)=
          tmp_sharedflag='--shared' ;;
-       xl[[cC]]*)                      # IBM XL C 8.0 on PPC (deal with xlf below)
+       xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
          tmp_sharedflag='-qmkshrobj'
          tmp_addflag= ;;
+       nvcc*)  # Cuda Compiler Driver 2.2
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         _LT_TAGVAR(compiler_needs_object, $1)=yes
+         ;;
        esac
        case `$CC -V 2>&1 | sed 5q` in
        *Sun\ C*)                       # Sun C 5.9
-         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
          _LT_TAGVAR(compiler_needs_object, $1)=yes
          tmp_sharedflag='-G' ;;
        *Sun\ F*)                       # Sun Fortran 8.3
@@ -5293,17 +5756,17 @@ _LT_EOF
         fi
 
        case $cc_basename in
-       xlf*)
+       xlf* | bgf* | bgxlf* | mpixlf*)
          # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
          _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
          _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
-         _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+         _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
          if test "x$supports_anon_versioning" = xyes; then
            _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
              cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
              echo "local: *; };" >> $output_objdir/$libname.ver~
-             $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+             $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
          fi
          ;;
        esac
@@ -5317,8 +5780,8 @@ _LT_EOF
        _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
        wlarc=
       else
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       fi
       ;;
 
@@ -5336,8 +5799,8 @@ _LT_EOF
 
 _LT_EOF
       elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
        _LT_TAGVAR(ld_shlibs, $1)=no
       fi
@@ -5383,8 +5846,8 @@ _LT_EOF
 
     *)
       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
        _LT_TAGVAR(ld_shlibs, $1)=no
       fi
@@ -5424,8 +5887,10 @@ _LT_EOF
       else
        # If we're using GNU nm, then we don't want the "-C" option.
        # -C means demangle to AIX nm, but means don't demangle with GNU nm
+       # Also, AIX nm treats weak defined symbols like other global
+       # defined symbols, whereas GNU nm marks them as "W".
        if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-         _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+         _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
        else
          _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
        fi
@@ -5512,9 +5977,9 @@ _LT_EOF
        _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        _LT_SYS_MODULE_PATH_AIX
+        _LT_SYS_MODULE_PATH_AIX([$1])
         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
       else
        if test "$host_cpu" = ia64; then
          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
@@ -5523,14 +5988,19 @@ _LT_EOF
        else
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        _LT_SYS_MODULE_PATH_AIX
+        _LT_SYS_MODULE_PATH_AIX([$1])
         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
          # Warning - without using the other run time loading flags,
          # -berok will link without error, but may produce a broken library.
          _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
          _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-         # Exported symbols can be pulled into shared objects from archives
-         _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+         if test "$with_gnu_ld" = yes; then
+           # We only use this code for GNU lds that support --whole-archive.
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+         else
+           # Exported symbols can be pulled into shared objects from archives
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+         fi
          _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
          # This is similar to how AIX traditionally builds its shared libraries.
          _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
@@ -5562,20 +6032,63 @@ _LT_EOF
       # Microsoft Visual C++.
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-      # FIXME: Should let the user specify the lib program.
-      _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
-      _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
-      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      case $cc_basename in
+      cl*)
+       # Native MSVC
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+       _LT_TAGVAR(always_export_symbols, $1)=yes
+       _LT_TAGVAR(file_list_spec, $1)='@'
+       # Tell ltmain to make .lib files, not .a files.
+       libext=lib
+       # Tell ltmain to make .dll files, not .so files.
+       shrext_cmds=".dll"
+       # FIXME: Setting linknames here is a bad hack.
+       _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+       _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+           sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+         else
+           sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+         fi~
+         $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+         linknames='
+       # The linker will not automatically build a static lib if we build a DLL.
+       # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+       _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+       # Don't use ranlib
+       _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+       _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+         lt_tool_outputfile="@TOOL_OUTPUT@"~
+         case $lt_outputfile in
+           *.exe|*.EXE) ;;
+           *)
+             lt_outputfile="$lt_outputfile.exe"
+             lt_tool_outputfile="$lt_tool_outputfile.exe"
+             ;;
+         esac~
+         if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+           $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+           $RM "$lt_outputfile.manifest";
+         fi'
+       ;;
+      *)
+       # Assume MSVC wrapper
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+       # Tell ltmain to make .lib files, not .a files.
+       libext=lib
+       # Tell ltmain to make .dll files, not .so files.
+       shrext_cmds=".dll"
+       # FIXME: Setting linknames here is a bad hack.
+       _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+       # The linker will automatically build a .lib file if we build a DLL.
+       _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+       # FIXME: Should let the user specify the lib program.
+       _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+       ;;
+      esac
       ;;
 
     darwin* | rhapsody*)
@@ -5613,7 +6126,7 @@ _LT_EOF
 
     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
     freebsd* | dragonfly*)
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
       _LT_TAGVAR(hardcode_direct, $1)=yes
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
@@ -5621,7 +6134,7 @@ _LT_EOF
 
     hpux9*)
       if test "$GCC" = yes; then
-       _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       else
        _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       fi
@@ -5636,8 +6149,8 @@ _LT_EOF
       ;;
 
     hpux10*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
       else
        _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
       fi
@@ -5655,16 +6168,16 @@ _LT_EOF
       ;;
 
     hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
        case $host_cpu in
        hppa*64*)
          _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        ia64*)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        esac
       else
@@ -5676,7 +6189,14 @@ _LT_EOF
          _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+       m4_if($1, [], [
+         # Older versions of the 11.00 compiler do not understand -b yet
+         # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+         _LT_LINKER_OPTION([if $CC understands -b],
+           _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
+           [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
+           [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
+         [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
          ;;
        esac
       fi
@@ -5704,19 +6224,34 @@ _LT_EOF
 
     irix5* | irix6* | nonstopux*)
       if test "$GCC" = yes; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
        # Try to use the -exported_symbol ld option, if it does not
        # work, assume that -exports_file does not work either and
        # implicitly export all symbols.
-        save_LDFLAGS="$LDFLAGS"
-        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-        AC_LINK_IFELSE(int foo(void) {},
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-        )
-        LDFLAGS="$save_LDFLAGS"
+       # This should be the same for all languages, so no per-tag cache variable.
+       AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
+         [lt_cv_irix_exported_symbol],
+         [save_LDFLAGS="$LDFLAGS"
+          LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+          AC_LINK_IFELSE(
+            [AC_LANG_SOURCE(
+               [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
+                             [C++], [[int foo (void) { return 0; }]],
+                             [Fortran 77], [[
+      subroutine foo
+      end]],
+                             [Fortran], [[
+      subroutine foo
+      end]])])],
+             [lt_cv_irix_exported_symbol=yes],
+             [lt_cv_irix_exported_symbol=no])
+           LDFLAGS="$save_LDFLAGS"])
+       if test "$lt_cv_irix_exported_symbol" = yes; then
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+       fi
       else
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
       fi
       _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
@@ -5778,17 +6313,17 @@ _LT_EOF
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
       _LT_TAGVAR(hardcode_minus_L, $1)=yes
       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
       _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
       ;;
 
     osf3*)
       if test "$GCC" = yes; then
        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
       else
        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
       fi
       _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
@@ -5798,13 +6333,13 @@ _LT_EOF
     osf4* | osf5*)     # as osf3* with the addition of -msym flag
       if test "$GCC" = yes; then
        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
       else
        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-       $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+       $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
 
        # Both c and cxx compiler support -rpath directly
        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
@@ -5817,9 +6352,9 @@ _LT_EOF
       _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
       if test "$GCC" = yes; then
        wlarc='${wl}'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-         $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+         $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
       else
        case `$CC -V 2>&1` in
        *"Compilers 5.0"*)
@@ -5995,36 +6530,38 @@ x|xyes)
       # Test whether the compiler implicitly links with -lc since on some
       # systems, -lgcc has to come before -lc. If gcc already passes -lc
       # to ld, don't add -lc before -lgcc.
-      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
-      $RM conftest*
-      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
-       pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
-        _LT_TAGVAR(allow_undefined_flag, $1)=
-        if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
-        then
-         _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-        else
-         _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-        fi
-        _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $RM conftest*
-      AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)])
+      AC_CACHE_CHECK([whether -lc should be explicitly linked in],
+       [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
+       [$RM conftest*
+       echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+       if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+         soname=conftest
+         lib=conftest
+         libobjs=conftest.$ac_objext
+         deplibs=
+         wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
+         pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
+         compiler_flags=-v
+         linker_flags=-v
+         verstring=
+         output_objdir=.
+         libname=conftest
+         lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
+         _LT_TAGVAR(allow_undefined_flag, $1)=
+         if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
+         then
+           lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+         else
+           lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+         fi
+         _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+       else
+         cat conftest.err 1>&5
+       fi
+       $RM conftest*
+       ])
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
       ;;
     esac
   fi
@@ -6089,8 +6626,6 @@ _LT_TAGDECL([], [inherit_rpath], [0],
     to runtime path list])
 _LT_TAGDECL([], [link_all_deplibs], [0],
     [Whether libtool must link a program against all its dependency libraries])
-_LT_TAGDECL([], [fix_srcfile_path], [1],
-    [Fix the shell variable $srcfile for the compiler])
 _LT_TAGDECL([], [always_export_symbols], [0],
     [Set to "yes" if exported symbols are required])
 _LT_TAGDECL([], [export_symbols_cmds], [2],
@@ -6101,6 +6636,8 @@ _LT_TAGDECL([], [include_expsyms], [1],
     [Symbols that must always be exported])
 _LT_TAGDECL([], [prelink_cmds], [2],
     [Commands necessary for linking programs (against libraries) with templates])
+_LT_TAGDECL([], [postlink_cmds], [2],
+    [Commands necessary for finishing linking programs])
 _LT_TAGDECL([], [file_list_spec], [1],
     [Specify filename containing input files])
 dnl FIXME: Not yet implemented
@@ -6190,37 +6727,22 @@ CC="$lt_save_CC"
 ])# _LT_LANG_C_CONFIG
 
 
-# _LT_PROG_CXX
-# ------------
-# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++
-# compiler, we have our own version here.
-m4_defun([_LT_PROG_CXX],
-[
-pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes])
-AC_PROG_CXX
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-    (test "X$CXX" != "Xg++"))) ; then
-  AC_PROG_CXXCPP
-else
-  _lt_caught_CXX_error=yes
-fi
-popdef([AC_MSG_ERROR])
-])# _LT_PROG_CXX
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([_LT_PROG_CXX], [])
-
-
 # _LT_LANG_CXX_CONFIG([TAG])
 # --------------------------
 # Ensure that the configuration variables for a C++ compiler are suitably
 # defined.  These variables are subsequently used by _LT_CONFIG to write
 # the compiler configuration to `libtool'.
 m4_defun([_LT_LANG_CXX_CONFIG],
-[AC_REQUIRE([_LT_PROG_CXX])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+    (test "X$CXX" != "Xg++"))) ; then
+  AC_PROG_CXXCPP
+else
+  _lt_caught_CXX_error=yes
+fi
 
 AC_LANG_PUSH(C++)
 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
@@ -6242,6 +6764,8 @@ _LT_TAGVAR(module_cmds, $1)=
 _LT_TAGVAR(module_expsym_cmds, $1)=
 _LT_TAGVAR(link_all_deplibs, $1)=unknown
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 _LT_TAGVAR(no_undefined_flag, $1)=
 _LT_TAGVAR(whole_archive_flag_spec, $1)=
 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
@@ -6273,6 +6797,7 @@ if test "$_lt_caught_CXX_error" != yes; then
 
   # Allow CC to be a program name with arguments.
   lt_save_CC=$CC
+  lt_save_CFLAGS=$CFLAGS
   lt_save_LD=$LD
   lt_save_GCC=$GCC
   GCC=$GXX
@@ -6290,6 +6815,7 @@ if test "$_lt_caught_CXX_error" != yes; then
   fi
   test -z "${LDCXX+set}" || LD=$LDCXX
   CC=${CXX-"c++"}
+  CFLAGS=$CXXFLAGS
   compiler=$CC
   _LT_TAGVAR(compiler, $1)=$CC
   _LT_CC_BASENAME([$compiler])
@@ -6311,8 +6837,8 @@ if test "$_lt_caught_CXX_error" != yes; then
       # Check if GNU C++ uses GNU ld as the underlying linker, since the
       # archiving commands below assume that GNU ld is being used.
       if test "$with_gnu_ld" = yes; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
 
         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
@@ -6344,7 +6870,7 @@ if test "$_lt_caught_CXX_error" != yes; then
       # Commands to make compiler produce verbose output that lists
       # what "hidden" libraries, object files and flags are used when
       # linking a shared library.
-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 
     else
       GXX=no
@@ -6453,10 +6979,10 @@ if test "$_lt_caught_CXX_error" != yes; then
           _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
           # Determine the default libpath from the value encoded in an empty
           # executable.
-          _LT_SYS_MODULE_PATH_AIX
+          _LT_SYS_MODULE_PATH_AIX([$1])
           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
 
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
         else
           if test "$host_cpu" = ia64; then
            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
@@ -6465,14 +6991,19 @@ if test "$_lt_caught_CXX_error" != yes; then
           else
            # Determine the default libpath from the value encoded in an
            # empty executable.
-           _LT_SYS_MODULE_PATH_AIX
+           _LT_SYS_MODULE_PATH_AIX([$1])
            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
            # Warning - without using the other run time loading flags,
            # -berok will link without error, but may produce a broken library.
            _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
            _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-           # Exported symbols can be pulled into shared objects from archives
-           _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+           if test "$with_gnu_ld" = yes; then
+             # We only use this code for GNU lds that support --whole-archive.
+             _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+           else
+             # Exported symbols can be pulled into shared objects from archives
+             _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+           fi
            _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
            # This is similar to how AIX traditionally builds its shared
            # libraries.
@@ -6502,28 +7033,75 @@ if test "$_lt_caught_CXX_error" != yes; then
         ;;
 
       cygwin* | mingw* | pw32* | cegcc*)
-        # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-        # as there is no search path for DLLs.
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-        _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-        _LT_TAGVAR(always_export_symbols, $1)=no
-        _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
-        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-          # If the export-symbols file already is a .def file (1st line
-          # is EXPORTS), use it as is; otherwise, prepend...
-          _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-           cp $export_symbols $output_objdir/$soname.def;
-          else
-           echo EXPORTS > $output_objdir/$soname.def;
-           cat $export_symbols >> $output_objdir/$soname.def;
-          fi~
-          $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-        else
-          _LT_TAGVAR(ld_shlibs, $1)=no
-        fi
-        ;;
+       case $GXX,$cc_basename in
+       ,cl* | no,cl*)
+         # Native MSVC
+         # hardcode_libdir_flag_spec is actually meaningless, as there is
+         # no search path for DLLs.
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+         _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+         _LT_TAGVAR(always_export_symbols, $1)=yes
+         _LT_TAGVAR(file_list_spec, $1)='@'
+         # Tell ltmain to make .lib files, not .a files.
+         libext=lib
+         # Tell ltmain to make .dll files, not .so files.
+         shrext_cmds=".dll"
+         # FIXME: Setting linknames here is a bad hack.
+         _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+         _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+             $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+           else
+             $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+           fi~
+           $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+           linknames='
+         # The linker will not automatically build a static lib if we build a DLL.
+         # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+         _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+         # Don't use ranlib
+         _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+         _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+           lt_tool_outputfile="@TOOL_OUTPUT@"~
+           case $lt_outputfile in
+             *.exe|*.EXE) ;;
+             *)
+               lt_outputfile="$lt_outputfile.exe"
+               lt_tool_outputfile="$lt_tool_outputfile.exe"
+               ;;
+           esac~
+           func_to_tool_file "$lt_outputfile"~
+           if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+             $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+             $RM "$lt_outputfile.manifest";
+           fi'
+         ;;
+       *)
+         # g++
+         # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+         # as there is no search path for DLLs.
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
+         _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+         _LT_TAGVAR(always_export_symbols, $1)=no
+         _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+         if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+           # If the export-symbols file already is a .def file (1st line
+           # is EXPORTS), use it as is; otherwise, prepend...
+           _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+             cp $export_symbols $output_objdir/$soname.def;
+           else
+             echo EXPORTS > $output_objdir/$soname.def;
+             cat $export_symbols >> $output_objdir/$soname.def;
+           fi~
+           $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+         else
+           _LT_TAGVAR(ld_shlibs, $1)=no
+         fi
+         ;;
+       esac
+       ;;
       darwin* | rhapsody*)
         _LT_DARWIN_LINKER_FEATURES($1)
        ;;
@@ -6565,6 +7143,11 @@ if test "$_lt_caught_CXX_error" != yes; then
       gnu*)
         ;;
 
+      haiku*)
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(link_all_deplibs, $1)=yes
+        ;;
+
       hpux9*)
         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
         _LT_TAGVAR(hardcode_libdir_separator, $1)=:
@@ -6589,11 +7172,11 @@ if test "$_lt_caught_CXX_error" != yes; then
             # explicitly linking system object files so we need to strip them
             # from the output so that they don't get included in the library
             # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
             ;;
           *)
             if test "$GXX" = yes; then
-              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
             else
               # FIXME: insert proper C++ library support
               _LT_TAGVAR(ld_shlibs, $1)=no
@@ -6654,7 +7237,7 @@ if test "$_lt_caught_CXX_error" != yes; then
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+           output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
            ;;
           *)
            if test "$GXX" = yes; then
@@ -6664,10 +7247,10 @@ if test "$_lt_caught_CXX_error" != yes; then
                    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                    ;;
                  ia64*)
-                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                    ;;
                  *)
-                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                    ;;
                esac
              fi
@@ -6697,7 +7280,7 @@ if test "$_lt_caught_CXX_error" != yes; then
         case $cc_basename in
           CC*)
            # SGI C++
-           _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
 
            # Archives containing C++ object files must be created using
            # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
@@ -6708,9 +7291,9 @@ if test "$_lt_caught_CXX_error" != yes; then
           *)
            if test "$GXX" = yes; then
              if test "$with_gnu_ld" = no; then
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
              else
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
              fi
            fi
            _LT_TAGVAR(link_all_deplibs, $1)=yes
@@ -6721,7 +7304,7 @@ if test "$_lt_caught_CXX_error" != yes; then
         _LT_TAGVAR(inherit_rpath, $1)=yes
         ;;
 
-      linux* | k*bsd*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu)
         case $cc_basename in
           KCC*)
            # Kuck and Associates, Inc. (KAI) C++ Compiler
@@ -6739,7 +7322,7 @@ if test "$_lt_caught_CXX_error" != yes; then
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+           output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
 
            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
            _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
@@ -6776,26 +7359,26 @@ if test "$_lt_caught_CXX_error" != yes; then
           pgCC* | pgcpp*)
             # Portland Group C++ compiler
            case `$CC -V` in
-           *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*)
+           *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
              _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
                rm -rf $tpldir~
                $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-               compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
+               compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
              _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
                rm -rf $tpldir~
                $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-               $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
+               $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
                $RANLIB $oldlib'
              _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
                rm -rf $tpldir~
                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-               $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+               $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
              _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
                rm -rf $tpldir~
                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-               $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+               $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
              ;;
-           *) # Version 6 will use weak symbols
+           *) # Version 6 and above use weak symbols
              _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
              _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
              ;;
@@ -6803,7 +7386,7 @@ if test "$_lt_caught_CXX_error" != yes; then
 
            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
            _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
             ;;
          cxx*)
            # Compaq C++
@@ -6822,9 +7405,9 @@ if test "$_lt_caught_CXX_error" != yes; then
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
            ;;
-         xl*)
+         xl* | mpixl* | bgxl*)
            # IBM XL 8.0 on PPC, with GNU ld
            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
            _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
@@ -6844,13 +7427,13 @@ if test "$_lt_caught_CXX_error" != yes; then
              _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
              _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
              _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-             _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+             _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
              _LT_TAGVAR(compiler_needs_object, $1)=yes
 
              # Not sure whether something based on
              # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
              # would be better.
-             output_verbose_link_cmd='echo'
+             output_verbose_link_cmd='func_echo_all'
 
              # Archives containing C++ object files must be created using
              # "CC -xar", where "CC" is the Sun C++ compiler.  This is
@@ -6919,7 +7502,7 @@ if test "$_lt_caught_CXX_error" != yes; then
            _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
            _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
          fi
-         output_verbose_link_cmd=echo
+         output_verbose_link_cmd=func_echo_all
        else
          _LT_TAGVAR(ld_shlibs, $1)=no
        fi
@@ -6954,15 +7537,15 @@ if test "$_lt_caught_CXX_error" != yes; then
            case $host in
              osf3*)
                _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
                _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
                ;;
              *)
                _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
                _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
                  echo "-hidden">> $lib.exp~
-                 $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
+                 $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
                  $RM $lib.exp'
                _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
                ;;
@@ -6978,17 +7561,17 @@ if test "$_lt_caught_CXX_error" != yes; then
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
            ;;
          *)
            if test "$GXX" = yes && test "$with_gnu_ld" = no; then
              _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
              case $host in
                osf3*)
-                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
                  ;;
                *)
-                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
                  ;;
              esac
 
@@ -6998,7 +7581,7 @@ if test "$_lt_caught_CXX_error" != yes; then
              # Commands to make compiler produce verbose output that lists
              # what "hidden" libraries, object files and flags are used when
              # linking a shared library.
-             output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+             output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 
            else
              # FIXME: insert proper C++ library support
@@ -7034,7 +7617,7 @@ if test "$_lt_caught_CXX_error" != yes; then
 
       solaris*)
         case $cc_basename in
-          CC*)
+          CC* | sunCC*)
            # Sun C++ 4.2, 5.x and Centerline C++
             _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
            _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
@@ -7055,7 +7638,7 @@ if test "$_lt_caught_CXX_error" != yes; then
            esac
            _LT_TAGVAR(link_all_deplibs, $1)=yes
 
-           output_verbose_link_cmd='echo'
+           output_verbose_link_cmd='func_echo_all'
 
            # Archives containing C++ object files must be created using
            # "CC -xar", where "CC" is the Sun C++ compiler.  This is
@@ -7075,14 +7658,14 @@ if test "$_lt_caught_CXX_error" != yes; then
            if test "$GXX" = yes && test "$with_gnu_ld" = no; then
              _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
              if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
                _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-                 $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+                 $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
 
                # Commands to make compiler produce verbose output that lists
                # what "hidden" libraries, object files and flags are used when
                # linking a shared library.
-               output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+               output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
              else
                # g++ 2.7 appears to require `-G' NOT `-shared' on this
                # platform.
@@ -7093,7 +7676,7 @@ if test "$_lt_caught_CXX_error" != yes; then
                # Commands to make compiler produce verbose output that lists
                # what "hidden" libraries, object files and flags are used when
                # linking a shared library.
-               output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+               output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
              fi
 
              _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
@@ -7147,6 +7730,10 @@ if test "$_lt_caught_CXX_error" != yes; then
           CC*)
            _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
            _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+           _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
+             '"$_LT_TAGVAR(old_archive_cmds, $1)"
+           _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
+             '"$_LT_TAGVAR(reload_cmds, $1)"
            ;;
          *)
            _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
@@ -7202,6 +7789,7 @@ if test "$_lt_caught_CXX_error" != yes; then
   fi # test -n "$compiler"
 
   CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
   LDCXX=$LD
   LD=$lt_save_LD
   GCC=$lt_save_GCC
@@ -7216,6 +7804,29 @@ AC_LANG_POP
 ])# _LT_LANG_CXX_CONFIG
 
 
+# _LT_FUNC_STRIPNAME_CNF
+# ----------------------
+# func_stripname_cnf prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+#
+# This function is identical to the (non-XSI) version of func_stripname,
+# except this one can be used by m4 code that may be executed by configure,
+# rather than the libtool script.
+m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
+AC_REQUIRE([_LT_DECL_SED])
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
+func_stripname_cnf ()
+{
+  case ${2} in
+  .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+  *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+  esac
+} # func_stripname_cnf
+])# _LT_FUNC_STRIPNAME_CNF
+
 # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
 # ---------------------------------
 # Figure out "hidden" library dependencies from verbose
@@ -7224,6 +7835,7 @@ AC_LANG_POP
 # objects, libraries and library flags.
 m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
 [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
 # Dependencies to place before and after the object being linked:
 _LT_TAGVAR(predep_objects, $1)=
 _LT_TAGVAR(postdep_objects, $1)=
@@ -7274,6 +7886,13 @@ public class foo {
 };
 _LT_EOF
 ])
+
+_lt_libdeps_save_CFLAGS=$CFLAGS
+case "$CC $CFLAGS " in #(
+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
+esac
+
 dnl Parse the compiler output and extract the necessary
 dnl objects, libraries and library flags.
 if AC_TRY_EVAL(ac_compile); then
@@ -7285,7 +7904,7 @@ if AC_TRY_EVAL(ac_compile); then
   pre_test_object_deps_done=no
 
   for p in `eval "$output_verbose_link_cmd"`; do
-    case $p in
+    case ${prev}${p} in
 
     -L* | -R* | -l*)
        # Some compilers place space between "-{L,R}" and the path.
@@ -7294,13 +7913,22 @@ if AC_TRY_EVAL(ac_compile); then
           test $p = "-R"; then
         prev=$p
         continue
-       else
-        prev=
        fi
 
+       # Expand the sysroot to ease extracting the directories later.
+       if test -z "$prev"; then
+         case $p in
+         -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
+         -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
+         -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
+         esac
+       fi
+       case $p in
+       =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
+       esac
        if test "$pre_test_object_deps_done" = no; then
-        case $p in
-        -L* | -R*)
+        case ${prev} in
+        -L | -R)
           # Internal compiler library paths should come after those
           # provided the user.  The postdeps already come after the
           # user supplied libs so there is no need to process them.
@@ -7320,8 +7948,10 @@ if AC_TRY_EVAL(ac_compile); then
           _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
         fi
        fi
+       prev=
        ;;
 
+    *.lto.$objext) ;; # Ignore GCC LTO objects
     *.$objext)
        # This assumes that the test object file only shows up
        # once in the compiler output.
@@ -7357,6 +7987,7 @@ else
 fi
 
 $RM -f confest.$objext
+CFLAGS=$_lt_libdeps_save_CFLAGS
 
 # PORTME: override above test on systems where it is broken
 m4_if([$1], [CXX],
@@ -7393,7 +8024,7 @@ linux*)
 
 solaris*)
   case $cc_basename in
-  CC*)
+  CC* | sunCC*)
     # The more standards-conforming stlport4 library is
     # incompatible with the Cstd library. Avoid specifying
     # it if it's in CXXFLAGS. Ignore libCrun as
@@ -7437,32 +8068,16 @@ _LT_TAGDECL([], [compiler_lib_search_path], [1],
 ])# _LT_SYS_HIDDEN_LIBDEPS
 
 
-# _LT_PROG_F77
-# ------------
-# Since AC_PROG_F77 is broken, in that it returns the empty string
-# if there is no fortran compiler, we have our own version here.
-m4_defun([_LT_PROG_F77],
-[
-pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes])
-AC_PROG_F77
-if test -z "$F77" || test "X$F77" = "Xno"; then
-  _lt_disable_F77=yes
-fi
-popdef([AC_MSG_ERROR])
-])# _LT_PROG_F77
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([_LT_PROG_F77], [])
-
-
 # _LT_LANG_F77_CONFIG([TAG])
 # --------------------------
 # Ensure that the configuration variables for a Fortran 77 compiler are
 # suitably defined.  These variables are subsequently used by _LT_CONFIG
 # to write the compiler configuration to `libtool'.
 m4_defun([_LT_LANG_F77_CONFIG],
-[AC_REQUIRE([_LT_PROG_F77])dnl
-AC_LANG_PUSH(Fortran 77)
+[AC_LANG_PUSH(Fortran 77)
+if test -z "$F77" || test "X$F77" = "Xno"; then
+  _lt_disable_F77=yes
+fi
 
 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
 _LT_TAGVAR(allow_undefined_flag, $1)=
@@ -7481,6 +8096,8 @@ _LT_TAGVAR(module_cmds, $1)=
 _LT_TAGVAR(module_expsym_cmds, $1)=
 _LT_TAGVAR(link_all_deplibs, $1)=unknown
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 _LT_TAGVAR(no_undefined_flag, $1)=
 _LT_TAGVAR(whole_archive_flag_spec, $1)=
 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
@@ -7520,7 +8137,9 @@ if test "$_lt_disable_F77" != yes; then
   # Allow CC to be a program name with arguments.
   lt_save_CC="$CC"
   lt_save_GCC=$GCC
+  lt_save_CFLAGS=$CFLAGS
   CC=${F77-"f77"}
+  CFLAGS=$FFLAGS
   compiler=$CC
   _LT_TAGVAR(compiler, $1)=$CC
   _LT_CC_BASENAME([$compiler])
@@ -7574,38 +8193,24 @@ if test "$_lt_disable_F77" != yes; then
 
   GCC=$lt_save_GCC
   CC="$lt_save_CC"
+  CFLAGS="$lt_save_CFLAGS"
 fi # test "$_lt_disable_F77" != yes
 
 AC_LANG_POP
 ])# _LT_LANG_F77_CONFIG
 
 
-# _LT_PROG_FC
-# -----------
-# Since AC_PROG_FC is broken, in that it returns the empty string
-# if there is no fortran compiler, we have our own version here.
-m4_defun([_LT_PROG_FC],
-[
-pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes])
-AC_PROG_FC
-if test -z "$FC" || test "X$FC" = "Xno"; then
-  _lt_disable_FC=yes
-fi
-popdef([AC_MSG_ERROR])
-])# _LT_PROG_FC
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([_LT_PROG_FC], [])
-
-
 # _LT_LANG_FC_CONFIG([TAG])
 # -------------------------
 # Ensure that the configuration variables for a Fortran compiler are
 # suitably defined.  These variables are subsequently used by _LT_CONFIG
 # to write the compiler configuration to `libtool'.
 m4_defun([_LT_LANG_FC_CONFIG],
-[AC_REQUIRE([_LT_PROG_FC])dnl
-AC_LANG_PUSH(Fortran)
+[AC_LANG_PUSH(Fortran)
+
+if test -z "$FC" || test "X$FC" = "Xno"; then
+  _lt_disable_FC=yes
+fi
 
 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
 _LT_TAGVAR(allow_undefined_flag, $1)=
@@ -7624,6 +8229,8 @@ _LT_TAGVAR(module_cmds, $1)=
 _LT_TAGVAR(module_expsym_cmds, $1)=
 _LT_TAGVAR(link_all_deplibs, $1)=unknown
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 _LT_TAGVAR(no_undefined_flag, $1)=
 _LT_TAGVAR(whole_archive_flag_spec, $1)=
 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
@@ -7663,7 +8270,9 @@ if test "$_lt_disable_FC" != yes; then
   # Allow CC to be a program name with arguments.
   lt_save_CC="$CC"
   lt_save_GCC=$GCC
+  lt_save_CFLAGS=$CFLAGS
   CC=${FC-"f95"}
+  CFLAGS=$FCFLAGS
   compiler=$CC
   GCC=$ac_cv_fc_compiler_gnu
 
@@ -7719,7 +8328,8 @@ if test "$_lt_disable_FC" != yes; then
   fi # test -n "$compiler"
 
   GCC=$lt_save_GCC
-  CC="$lt_save_CC"
+  CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
 fi # test "$_lt_disable_FC" != yes
 
 AC_LANG_POP
@@ -7756,10 +8366,12 @@ _LT_COMPILER_BOILERPLATE
 _LT_LINKER_BOILERPLATE
 
 # Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
 lt_save_GCC=$GCC
 GCC=yes
 CC=${GCJ-"gcj"}
+CFLAGS=$GCJFLAGS
 compiler=$CC
 _LT_TAGVAR(compiler, $1)=$CC
 _LT_TAGVAR(LD, $1)="$LD"
@@ -7769,6 +8381,8 @@ _LT_CC_BASENAME([$compiler])
 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
 
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 
 if test -n "$compiler"; then
   _LT_COMPILER_NO_RTTI($1)
@@ -7784,7 +8398,8 @@ fi
 AC_LANG_RESTORE
 
 GCC=$lt_save_GCC
-CC="$lt_save_CC"
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
 ])# _LT_LANG_GCJ_CONFIG
 
 
@@ -7819,9 +8434,11 @@ _LT_LINKER_BOILERPLATE
 
 # Allow CC to be a program name with arguments.
 lt_save_CC="$CC"
+lt_save_CFLAGS=$CFLAGS
 lt_save_GCC=$GCC
 GCC=
 CC=${RC-"windres"}
+CFLAGS=
 compiler=$CC
 _LT_TAGVAR(compiler, $1)=$CC
 _LT_CC_BASENAME([$compiler])
@@ -7834,7 +8451,8 @@ fi
 
 GCC=$lt_save_GCC
 AC_LANG_RESTORE
-CC="$lt_save_CC"
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
 ])# _LT_LANG_RC_CONFIG
 
 
@@ -7893,6 +8511,15 @@ _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
 AC_SUBST([OBJDUMP])
 ])
 
+# _LT_DECL_DLLTOOL
+# ----------------
+# Ensure DLLTOOL variable is set.
+m4_defun([_LT_DECL_DLLTOOL],
+[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
+AC_SUBST([DLLTOOL])
+])
 
 # _LT_DECL_SED
 # ------------
@@ -7984,8 +8611,8 @@ m4_defun([_LT_CHECK_SHELL_FEATURES],
 # Try some XSI features
 xsi_shell=no
 ( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,, \
+  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
+      = c,a/b,b/c, \
     && eval 'test $(( 1 + 1 )) -eq 2 \
     && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
   && xsi_shell=yes
@@ -8024,222 +8651,177 @@ _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
 ])# _LT_CHECK_SHELL_FEATURES
 
 
-# _LT_PROG_XSI_SHELLFNS
-# ---------------------
-# Bourne and XSI compatible variants of some useful shell functions.
-m4_defun([_LT_PROG_XSI_SHELLFNS],
-[case $xsi_shell in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result="${1##*/}"
-}
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-#   dirname:  Compute the dirname of FILE.  If nonempty,
-#             add APPEND to the result, otherwise set result
-#             to NONDIR_REPLACEMENT.
-#             value returned in "$func_dirname_result"
-#   basename: Compute filename of FILE.
-#             value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-  func_basename_result="${1##*/}"
-}
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-func_stripname ()
-{
-  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-  # positional parameters, so assign one to ordinary parameter first.
-  func_stripname_result=${3}
-  func_stripname_result=${func_stripname_result#"${1}"}
-  func_stripname_result=${func_stripname_result%"${2}"}
-}
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=${1%%=*}
-  func_opt_split_arg=${1#*=}
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  case ${1} in
-    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-    *)    func_lo2o_result=${1} ;;
-  esac
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=${1%.*}.lo
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=$(( $[*] ))
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=${#1}
-}
-
-_LT_EOF
-    ;;
-  *) # Bourne compatible functions.
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  # Extract subdirectory from the argument.
-  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
-  if test "X$func_dirname_result" = "X${1}"; then
-    func_dirname_result="${3}"
-  else
-    func_dirname_result="$func_dirname_result${2}"
-  fi
-}
+# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
+# ------------------------------------------------------
+# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
+# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
+m4_defun([_LT_PROG_FUNCTION_REPLACE],
+[dnl {
+sed -e '/^$1 ()$/,/^} # $1 /c\
+$1 ()\
+{\
+m4_bpatsubsts([$2], [$], [\\], [^\([    ]\)], [\\\1])
+} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+])
 
-# func_basename file
-func_basename ()
-{
-  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
-}
 
-dnl func_dirname_and_basename
-dnl A portable version of this function is already defined in general.m4sh
-dnl so there is no need for it here.
+# _LT_PROG_REPLACE_SHELLFNS
+# -------------------------
+# Replace existing portable implementations of several shell functions with
+# equivalent extended shell implementations where those features are available..
+m4_defun([_LT_PROG_REPLACE_SHELLFNS],
+[if test x"$xsi_shell" = xyes; then
+  _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
+    case ${1} in
+      */*) func_dirname_result="${1%/*}${2}" ;;
+      *  ) func_dirname_result="${3}" ;;
+    esac])
 
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
-  case ${2} in
-    .*) func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
-    *)  func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
-  esac
-}
+  _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
+    func_basename_result="${1##*/}"])
 
-# sed scripts:
-my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q'
-my_sed_long_arg='1s/^-[[^=]]*=//'
+  _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
+    case ${1} in
+      */*) func_dirname_result="${1%/*}${2}" ;;
+      *  ) func_dirname_result="${3}" ;;
+    esac
+    func_basename_result="${1##*/}"])
+
+  _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
+    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+    # positional parameters, so assign one to ordinary parameter first.
+    func_stripname_result=${3}
+    func_stripname_result=${func_stripname_result#"${1}"}
+    func_stripname_result=${func_stripname_result%"${2}"}])
+
+  _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
+    func_split_long_opt_name=${1%%=*}
+    func_split_long_opt_arg=${1#*=}])
+
+  _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
+    func_split_short_opt_arg=${1#??}
+    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
+
+  _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
+    case ${1} in
+      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+      *)    func_lo2o_result=${1} ;;
+    esac])
 
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
-  func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
-}
+  _LT_PROG_FUNCTION_REPLACE([func_xform], [    func_xform_result=${1%.*}.lo])
 
-# func_lo2o object
-func_lo2o ()
-{
-  func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
-}
+  _LT_PROG_FUNCTION_REPLACE([func_arith], [    func_arith_result=$(( $[*] ))])
 
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'`
-}
+  _LT_PROG_FUNCTION_REPLACE([func_len], [    func_len_result=${#1}])
+fi
 
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=`expr "$[@]"`
-}
+if test x"$lt_shell_append" = xyes; then
+  _LT_PROG_FUNCTION_REPLACE([func_append], [    eval "${1}+=\\${2}"])
 
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len`
-}
+  _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
+    func_quote_for_eval "${2}"
+dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
+    eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
 
-_LT_EOF
-esac
+  # Save a `func_append' function call where possible by direct use of '+='
+  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+else
+  # Save a `func_append' function call even when '+=' is not available
+  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+fi
 
-case $lt_shell_append in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
+if test x"$_lt_function_replace_fail" = x":"; then
+  AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
+fi
+])
 
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$[1]+=\$[2]"
-}
-_LT_EOF
+# _LT_PATH_CONVERSION_FUNCTIONS
+# -----------------------------
+# Determine which file name conversion functions should be used by
+# func_to_host_file (and, implicitly, by func_to_host_path).  These are needed
+# for certain cross-compile configurations and native mingw.
+m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_MSG_CHECKING([how to convert $build file names to $host format])
+AC_CACHE_VAL(lt_cv_to_host_file_cmd,
+[case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+        ;;
+    esac
     ;;
-  *)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$[1]=\$$[1]\$[2]"
-}
-
-_LT_EOF
+  *-*-cygwin* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_noop
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+        ;;
+    esac
     ;;
-  esac
+  * ) # unhandled hosts (and "normal" native builds)
+    lt_cv_to_host_file_cmd=func_convert_file_noop
+    ;;
+esac
+])
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
+_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
+         [0], [convert $build file names to $host format])dnl
+
+AC_MSG_CHECKING([how to convert $build file names to toolchain format])
+AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
+[#assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+        ;;
+    esac
+    ;;
+esac
 ])
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
+_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
+         [0], [convert $build files to toolchain format])dnl
+])# _LT_PATH_CONVERSION_FUNCTIONS
 
 # Helper functions for option handling.                    -*- Autoconf -*-
 #
-#   Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+#   Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
+#   Inc.
 #   Written by Gary V. Vaughan, 2004
 #
 # This file is free software; the Free Software Foundation gives
 # unlimited permission to copy and/or distribute it, with or without
 # modifications, as long as this notice is preserved.
 
-# serial 6 ltoptions.m4
+# serial 7 ltoptions.m4
 
 # This is to help aclocal find these macros, as it can't see m4_define.
 AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
@@ -8354,7 +8936,7 @@ LT_OPTION_DEFINE([LT_INIT], [win32-dll],
 [enable_win32_dll=yes
 
 case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
   AC_CHECK_TOOL(AS, as, false)
   AC_CHECK_TOOL(DLLTOOL, dlltool, false)
   AC_CHECK_TOOL(OBJDUMP, objdump, false)
@@ -8362,13 +8944,13 @@ case $host in
 esac
 
 test -z "$AS" && AS=as
-_LT_DECL([], [AS],      [0], [Assembler program])dnl
+_LT_DECL([], [AS],      [1], [Assembler program])dnl
 
 test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
 
 test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl
+_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
 ])# win32-dll
 
 AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
@@ -8726,31 +9308,31 @@ m4_define([lt_dict_filter],
 # unlimited permission to copy and/or distribute it, with or without
 # modifications, as long as this notice is preserved.
 
-# Generated from ltversion.in.
+# @configure_input@
 
-# serial 3017 ltversion.m4
+# serial 3293 ltversion.m4
 # This file is part of GNU Libtool
 
-m4_define([LT_PACKAGE_VERSION], [2.2.6b])
-m4_define([LT_PACKAGE_REVISION], [1.3017])
+m4_define([LT_PACKAGE_VERSION], [2.4])
+m4_define([LT_PACKAGE_REVISION], [1.3293])
 
 AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.2.6b'
-macro_revision='1.3017'
+[macro_version='2.4'
+macro_revision='1.3293'
 _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
 _LT_DECL(, macro_revision, 0)
 ])
 
 # lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
 #
-#   Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
+#   Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
 #   Written by Scott James Remnant, 2004.
 #
 # This file is free software; the Free Software Foundation gives
 # unlimited permission to copy and/or distribute it, with or without
 # modifications, as long as this notice is preserved.
 
-# serial 4 lt~obsolete.m4
+# serial 5 lt~obsolete.m4
 
 # These exist entirely to fool aclocal when bootstrapping libtool.
 #
@@ -8820,7 +9402,6 @@ m4_ifndef([AC_DISABLE_FAST_INSTALL],      [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
 m4_ifndef([_LT_AC_LANG_CXX],           [AC_DEFUN([_LT_AC_LANG_CXX])])
 m4_ifndef([_LT_AC_LANG_F77],           [AC_DEFUN([_LT_AC_LANG_F77])])
 m4_ifndef([_LT_AC_LANG_GCJ],           [AC_DEFUN([_LT_AC_LANG_GCJ])])
-m4_ifndef([AC_LIBTOOL_RC],             [AC_DEFUN([AC_LIBTOOL_RC])])
 m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],  [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
 m4_ifndef([_LT_AC_LANG_C_CONFIG],      [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
 m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],        [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
@@ -8833,9 +9414,17 @@ m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG],   [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
 m4_ifndef([_LT_AC_LANG_RC_CONFIG],     [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
 m4_ifndef([AC_LIBTOOL_CONFIG],         [AC_DEFUN([AC_LIBTOOL_CONFIG])])
 m4_ifndef([_LT_AC_FILE_LTDLL_C],       [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
-
-# nls.m4 serial 3 (gettext-0.15)
-dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc.
+m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS],        [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
+m4_ifndef([_LT_AC_PROG_CXXCPP],                [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
+m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS],        [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
+m4_ifndef([_LT_PROG_ECHO_BACKSLASH],   [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_PROG_F77],              [AC_DEFUN([_LT_PROG_F77])])
+m4_ifndef([_LT_PROG_FC],               [AC_DEFUN([_LT_PROG_FC])])
+m4_ifndef([_LT_PROG_CXX],              [AC_DEFUN([_LT_PROG_CXX])])
+
+# nls.m4 serial 5 (gettext-0.18)
+dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation,
+dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -8853,20 +9442,21 @@ dnl Authors:
 dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
 dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
 
-AC_PREREQ(2.50)
+AC_PREREQ([2.50])
 
 AC_DEFUN([AM_NLS],
 [
   AC_MSG_CHECKING([whether NLS is requested])
   dnl Default is enabled NLS
-  AC_ARG_ENABLE(nls,
+  AC_ARG_ENABLE([nls],
     [  --disable-nls           do not use Native Language Support],
     USE_NLS=$enableval, USE_NLS=yes)
-  AC_MSG_RESULT($USE_NLS)
-  AC_SUBST(USE_NLS)
+  AC_MSG_RESULT([$USE_NLS])
+  AC_SUBST([USE_NLS])
 ])
 
 # pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
+# serial 1 (pkg-config-0.24)
 # 
 # Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
 #
@@ -8894,7 +9484,10 @@ AC_DEFUN([AM_NLS],
 AC_DEFUN([PKG_PROG_PKG_CONFIG],
 [m4_pattern_forbid([^_?PKG_[A-Z_]+$])
 m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
-AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
+AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
+AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
+
 if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
        AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
 fi
@@ -8907,7 +9500,6 @@ if test -n "$PKG_CONFIG"; then
                AC_MSG_RESULT([no])
                PKG_CONFIG=""
        fi
-               
 fi[]dnl
 ])# PKG_PROG_PKG_CONFIG
 
@@ -8916,21 +9508,20 @@ fi[]dnl
 # Check to see whether a particular set of modules exists.  Similar
 # to PKG_CHECK_MODULES(), but does not set variables or print errors.
 #
-#
-# Similar to PKG_CHECK_MODULES, make sure that the first instance of
-# this or PKG_CHECK_MODULES is called, or make sure to call
-# PKG_CHECK_EXISTS manually
+# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+# only at the first occurence in configure.ac, so if the first place
+# it's called might be skipped (such as if it is within an "if", you
+# have to call PKG_CHECK_EXISTS manually
 # --------------------------------------------------------------
 AC_DEFUN([PKG_CHECK_EXISTS],
 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
 if test -n "$PKG_CONFIG" && \
     AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
-  m4_ifval([$2], [$2], [:])
+  m4_default([$2], [:])
 m4_ifvaln([$3], [else
   $3])dnl
 fi])
 
-
 # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
 # ---------------------------------------------
 m4_define([_PKG_CONFIG],
@@ -8983,6 +9574,7 @@ and $1[]_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details.])
 
 if test $pkg_failed = yes; then
+       AC_MSG_RESULT([no])
         _PKG_SHORT_ERRORS_SUPPORTED
         if test $_pkg_short_errors_supported = yes; then
                $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
@@ -8992,7 +9584,7 @@ if test $pkg_failed = yes; then
        # Put the nasty error message in config.log where it belongs
        echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
 
-       ifelse([$4], , [AC_MSG_ERROR(dnl
+       m4_default([$4], [AC_MSG_ERROR(
 [Package requirements ($2) were not met:
 
 $$1_PKG_ERRORS
@@ -9000,25 +9592,24 @@ $$1_PKG_ERRORS
 Consider adjusting the PKG_CONFIG_PATH environment variable if you
 installed software in a non-standard prefix.
 
-_PKG_TEXT
-])],
-               [AC_MSG_RESULT([no])
-                $4])
+_PKG_TEXT])
+        ])
 elif test $pkg_failed = untried; then
-       ifelse([$4], , [AC_MSG_FAILURE(dnl
+       AC_MSG_RESULT([no])
+       m4_default([$4], [AC_MSG_FAILURE(
 [The pkg-config script could not be found or is too old.  Make sure it
 is in your PATH or set the PKG_CONFIG environment variable to the full
 path to pkg-config.
 
 _PKG_TEXT
 
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
-               [$4])
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])
+        ])
 else
        $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
        $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
         AC_MSG_RESULT([yes])
-       ifelse([$3], , :, [$3])
+       $3
 fi[]dnl
 ])# PKG_CHECK_MODULES
 
@@ -9111,29 +9702,6 @@ AC_PREREQ([2.50])dnl
 am_aux_dir=`cd $ac_aux_dir && pwd`
 ])
 
-
-# Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 4
-
-# This was merged into AC_PROG_CC in Autoconf.
-
-AU_DEFUN([AM_PROG_CC_STDC],
-[AC_PROG_CC
-AC_DIAGNOSE([obsolete], [$0:
-       your code should no longer depend upon `am_cv_prog_cc_stdc', but upon
-       `ac_cv_prog_cc_stdc'.  Remove this warning and the assignment when
-       you adjust the code.  You can also remove the above call to
-       AC_PROG_CC if you already called it elsewhere.])
-am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc
-])
-AU_DEFUN([fp_PROG_CC_STDC])
-
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
 # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
@@ -9432,18 +10000,6 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
      [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
 ])
 
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 8
-
-# AM_CONFIG_HEADER is obsolete.  It has been replaced by AC_CONFIG_HEADERS.
-AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
-
 # Do all the work for Automake.                             -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
@@ -9884,6 +10440,33 @@ Check your system clock])
 fi
 AC_MSG_RESULT(yes)])
 
+# Copyright (C) 2009  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 1
+
+# AM_SILENT_RULES([DEFAULT])
+# --------------------------
+# Enable less verbose build rules; with the default set to DEFAULT
+# (`yes' being less verbose, `no' or empty being verbose).
+AC_DEFUN([AM_SILENT_RULES],
+[AC_ARG_ENABLE([silent-rules],
+[  --enable-silent-rules          less verbose build output (undo: `make V=1')
+  --disable-silent-rules         verbose build output (undo: `make V=0')])
+case $enable_silent_rules in
+yes) AM_DEFAULT_VERBOSITY=0;;
+no)  AM_DEFAULT_VERBOSITY=1;;
+*)   AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+esac
+AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
+AM_BACKSLASH='\'
+AC_SUBST([AM_BACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
+])
+
 # Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
diff --git a/barcode-0.98/COPYING b/barcode-0.98/COPYING
deleted file mode 100644 (file)
index a43ea21..0000000
+++ /dev/null
@@ -1,339 +0,0 @@
-                   GNU GENERAL PUBLIC LICENSE
-                      Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-                          675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-                           Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-\f
-                   GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-\f
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-\f
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-\f
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-                           NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-                    END OF TERMS AND CONDITIONS
-\f
-       Appendix: How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) 19yy  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) 19yy name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/barcode-0.98/ChangeLog b/barcode-0.98/ChangeLog
deleted file mode 100644 (file)
index 024706d..0000000
+++ /dev/null
@@ -1,460 +0,0 @@
-2002-03-01  Alessandro Rubini  <rubini@linux.it>
-
-       * library.c (Barcode_Encode): handle bitsets separately, like
-               in Barcode_Print (otherwise, you might loose NO_CHECKSUM).
-
-       * debian/changelog: moved to 0.98 (but should fix all debian/ stuff)
-
-       * contrib/barcode-for-delphi.tar.gz: new, contributed by Michael Geddes
-
-       * contrib/barcode-for-delphi.tar.gz.README: short info for file above
-
-       * main.c (main): allow "-g" to set size of code in a table as well
-               -- suggested and initiallt implemented by Joachim Reichelt.
-       (main): fixed missing "Page: 1 1" in postscript for tables
-       (main): for tables don't use Encode_and_Print, use a local
-               unrolled version, so the default margin can be removed and
-               we avoid problems with negative xoff in the output phase
-               (first column may be offset, as noted by Karl Magnus Kolstoe)
-
-       * doc/doc.barcode: documented change above.
-       
-       * README: removed refernces to systemy.it, I'm no more there
-       Added link to FreeBSD ports tree and GLabels
-       Organized as sections with titles
-
-       * contrib/barcode-SVG.tar.gz: new contribution, by David J. Humphreys
-
-       * contrib/barcode-SVG.tar.gz.README: short description of file above
-
-       * contrib/grab-0.0.4.tar.gz: new program, by Tuukka Toivonen.
-
-       * contrib/grab-0.0.4.tar.gz.README: short description of file above
-       
-2002-03-01  Boszormenyi Zoltan <zboszor@externet.hu>
-
-       * barcode.spec: new file
-
-2002-02-27  Alessandro Rubini  <rubini@linux.it>
-
-       * bookland/bookland.py: updated to version 0.92 by Judah Milgram
-
-2001-11-13  Alessandro Rubini  <rubini@linux.it>
-
-       * README: Added a pointer to the Windows port.
-
-2001-11-09  Cloyce D. Spradling  <cloyce@headgear.org>
-       
-       * code128.c (Barcode_128b_verify): prototype fix (unsigned char).
-       
-       * ps.c (Barcode_ps_print): the comment for ascii codes must only
-               be printed if ascii is being printed (benign bug).
-
-2001-11-06  Christoph Pross  <c.pross@beck-ipc.com>
-
-       * pcl.c (Barcode_pcl_print): bugfix: bars were misplaced
-       
-2001-10-16  Nathan D. Holmes <nh412124@ursa.cosd.fedex.com>
-
-       ====> Version 0.97 released to ftp.systemy.it and ftp.gnu.org
-
-       * code93.c: new file (I modified something as well - Alessandro)
-
-       * doc/doc.barcode (Supported Encodings): added docs for code93
-
-       * main.c: added code93 names
-
-       * Makefile.in (LIBOBJECTS): added code93.o
-
-       * library.c: added code93 entry points
-
-2001-10-16  Alessandro Rubini  <rubini@linux.it>
-
-       * doc/manpager: added (trivial) support for @itemize, added copyright
-
-       * sample.c (main): accept -P to create PCL output
-
-       * doc/doc.barcode (PCL Output): added the section, using text
-       provided by Andrea Scopece and turning it into texinfo.
-       Removed also a few extra newlines that made bad man pages
-
-2001-10-16  Andrea Scopece  <a.scopece@vizzavi.it>
-
-       * barcode.h: added BARCODE_OUT_PCL and BARCODE_OUT_PCL_III
-
-       * library.c (Barcode_Print): use BARCODE_OUT_PCL to select pcl_print()
-
-       * Makefile.in (LIBOBJECTS): added pcl.o
-
-       * pcl.c: new file, with PCL output support
-
-2001-10-16  Alessandro Rubini  <rubini@linux.it>
-
-       * doc/doc.barcode (Supported Encodings): added documentation for
-               EAN and UPC with checksum, as coded by mr. Böszörményi (below)
-
-2001-10-16  Boszormenyi Zoltan <zboszor@externet.hu>
-
-       * ean.c: 
-
-       I found that barcode-0.96 does not correctly encodes UPC-E.
-       This was mainly because in upc_e_to_a() the switch() branches
-       all ended without "break;".
-
-       Printing UPC-E did not print the leading encoding number and
-       the trailing UPC-A checksum. Now it does.
-
-       Accept EAN-13 and EAN-8 with and without the checksum.
-       So always treat 7 and 12 digit sequences as valid EAN codes
-       and accept 8 and 13 digit sequences as valid EAN codes when
-       the last digit is the same as the calculated one.
-
-       Accept UPC-A as above (11 or 12 digit sequences.)
-
-       Accepts UPC-E as:
-       6 digit sequence: the middle part of the code (leading '0' assumed)
-       7 digit sequence: the middle part and either a leading '0' or '1',
-           or a trailing UPC-A checksum. In that case, leading '0' assumed.
-       8 digit sequence: a leading '0' or '1', middle part, checksum
-
-       UPC-A, UPC-E, EAN-13, and EAN-8 may all include
-       an additional barcode to the right of the main barcode.
-
-       As a 7 or a 12 digit sequence may be ambiguous, please remember
-       that EAN is checked before UPC if you specified BARCODE_ANY.
-
-2001-08-20  Alessandro Rubini  <rubini@linux.it>
-
-       * sample.c (main): added upc-e and ean-8 samples
-
-2001-08-11  Boszormenyi Zoltan <zboszor@externet.hu>
-
-       * ps.c (Barcode_ps_print): don't output "showpage" in EPS mode
-
-2001-08-11  Alessandro Rubini  <rubini@linux.it>
-
-       * README: Changed host names, added barcode-commit list.
-
-2000-11-29  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * doc/doc.barcode (The Field List): 1pt == 0.352mm, not 0.0352
-               (thanks to Stephen Irven for reporting)
-
-2000-11-09  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       ====> Version 0.96 released to ftp.systemy.it and ftp.gnu.org
-
-       * doc/Makefile.in ($(TARGET).html): fixed bug introduced on Sep 08
-
-       * doc/doc.barcode (top): correctly deal with "makeinfo --html"
-
-2000-11-08  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * README: new network pointers added
-
-       * codabar.c (Barcode_cbr_encode): don't print ascii text for the
-               checksum.
-
-       * doc/doc.barcode (The Intermediate Representaion): new section
-       Documented the new encodings by Leonid.
-       Promoted two sections to chapters
-       Added Leonid in the AUTHORS section of the manpage.
-
-       * Makefile.in: don't remove docs in distclean, as the distribution
-               now includes the docs
-       
-2000-11-07  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * Makefile.in (clean): don't remove docs, do that only in distclean
-
-       * doc/Makefile.in: a new life for the former Makefile (to build
-               with both gmake and pmake with features added on 2000-09-08)
-
-       * configure.in: use $MAKE in checking for gmake if set
-               (to allow testing with BSD make)
-       Check if makeinfo can manage html, used for doc/Makefile.in
-
-2000-11-07  Leonid A. Broukhis <leob@mailcom.com>
-
-       * code128.c (Barcode_encode_as): fixed a bug that prevented F
-               symbols to be correctly encoded.
-
-       * plessey.c: new file, for Plessey encoding.
-
-       * msi.c: new file, for MSI encoding.
-
-       * codabar.c: new file, for CodaBar encoding.
-
-       * code128.c (Barcode_128raw_encode): new encoding
-       (Barcode_128raw_verify): checker for new encoding
-
-       * barcode.h, library.c, main.c: added code128raw, codabar,
-               MSI and Plessey
-
-2000-11-07  Hans Schou <chlor@schou.dk>
-
-       * contrib/barcodeps-0.1.tgz: new file, sent to Alessandro on Oct 7
-
-2000-10-10  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * doc/manpager: use gsub instead of gensub, even though it may
-               leas to problems with some input. This achieves compatibility
-               with the original awk, so gawk is not needed any more
-
-2000-10-02  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * ps.c (Barcode_ps_print): add a backslash in front of '(' too.
-               Suggested by H Y <hlyi@yahoo.com>.
-       (Barcode_ps_print): use ps arrays to get compact (and prettier)
-               PostScript output. Suggested by Hans Schou <chlor@schou.dk>.
-
-       * main.c (get_geometry): accept "+offset+offset" to keep default size.
-               Suggested by Godmar Back <gback@cs.utah.edu>.
-
-2000-09-16  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * ps.c (Barcode_ps_print): use "half text height" instead of 
-               "two text heights" as minimum bar height. Suggested by
-               Oliver Vecernik <vecernik@aon.at>.
-
-2000-09-14  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * barcode.h: added the standard  ``extern "C"'' stuff for C++
-       (bug reported by Dany Pardo <dani@minerva.enpl.es>)
-
-2000-09-08  Andrea Ferraris  <andrea@gnu.systemy.it>
-
-       * doc/Makefile: added support for pdf and html via makeinfo
-
-       * doc/doc.barcode: added a missing trailing dot in an xref
-
-2000-08-28  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * i25.c (Barcode_i25_encode): fixed checksum calculation
-               (thanks to Hans Schou <chlor@schou.dk> for reporting)
-
-2000-05-19  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       ====> Version 0.95.1 released to ftp.prosa.it
-
-       * code128.c (Barcode_128_make_array): use code C if encoding 2 digits
-
-2000-05-08  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * cmdline.c (commandline_errormsg): removed "?:" gcc extension
-
-       * configure.in: added checks for unistd.h and strcasecmp, as
-               windows doesn't have them (thanks Marten Karl)
-
-2000-04-21  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * doc/Makefile: modified to build with both gmake and pmake
-
-       * Makefile: modified to build with both gmake and pmake
-
-2000-04-20  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * Makefile.in (.depend): removed gmake-specific features.
-               Thanks to Jukka A. Ukkonen for reporting.
-
-       * configure.in: detect gmake and avoid its features if not there
-
-       * ps.c (Barcode_ps_print): fix: codes with (relatively) short bars
-               were enlarged in height instead of reduced in width (also
-               the enlarging was wrong). Thanks to Rob Seace for reporting.
-
-2000-04-09  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * code128.c (Barcode_128_encode): removed extra messages to stderr,
-               forgot in the code when I finished code128 support
-
-       * doc/doc.barcode: bugfix: in the description of geometry, the unit
-               of measure is configurable 
-
-2000-02-03  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-====> Version 0.95 released to ftp.prosa.it and ftp.gnu.org
-
-2000-01-26  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * code128.c (Barcode_128_encode): new encoding: full-featured code128
-
-       * README: added reference to original ftp site
-
-2000-01-05  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * main.c (get_page_geometry): avoid using snprintf(), missing in HP/UX
-
-       * code39.c (Barcode_39_verify): added missing parens (a syntax error,
-               but only apparent where islower() is not a macro). Thanks to
-               Alexandre Oliva for finding it out.
-
-2000-01-04  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * doc/doc.barcode (The API): removed spurious "flags" argument
-               from description of Barcode_Encode_and_Print().
-               Thanks to Willy Wittesaele for noting the error.
-
-1999-12-24  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * main.c (get_geometry): fixed the y margin (thanks to Steve Kunath)
-
-====> Version 0.94 released to ftp.prosa.it and ftp.gnu.org
-
-1999-10-24  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * INSTALL: added instructions to install on a Debian GNU/Linux system
-
-       * debian/*: edited information for proper Debian support
-       
-       * debian/rules (binary-arch): new file, from "deb-make"
-
-       * Makefile.in (install): added "-m 0644" to install non-executables
-
-       * code128.c (Barcode_128b_encode): fixed checksum calculation.
-
-====> Version 0.93 released to ftp.prosa.it and ftp.gnu.org
-
-1999-09-26  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * doc/doc.barcode: fixed the rendering of complex options (-g and -t)
-       Removed extra "table of contents" heading in the ps output
-       Changed attribution on cover page
-
-       * main.c (get_table and others): be more specific in error msgs
-       (get_page_geometry): numeric specification is according to "-u"
-       (get_table): accept unsymmetric margin specification
-       (option_table): added "-u" to accept "cm", "mm", "in", "pt"
-       (get_page_geometry): bugfix: numeric spec was always consideder mm
-
-       * cmdline.c (commandline): don't always print help
-
-       * Makefile.in ($(INFO)): added missing dependency: distributed docs
-               formats were out of date with distributed doc source.
-
-1999-09-13  Alessandro Rubini  <rubini@amelia.prosa.it>
-
-       * main.c (main): print tables: y used xmargin (Tim Withers,Jon Bakken)
-
-1999-09-06  Alessandro Rubini  <rubini@plinio.prosa.it>
-
-       * Makefile.in: prevent -Wall when compiling getopt.
-
-       * i25.c, ean.c, ps.c: switched to unsigned char, to prevent warnings
-               on newer gcc's (thanks Al Piszcz)
-
-====> Version 0.92 released to ftp.prosa.it and ftp.gnu.org
-
-1999-08-31  Alessandro Rubini  <rubini@plinio.prosa.it>
-
-       * i25.c: the right guard was thinner than other bars
-
-       * doc/doc.barcode: spelling and manpage fixes (thanks Joachim Schaaf)
-
-====> Version 0.91.4 released to ftp.prosa.it
-
-1999-08-23  Thad Floryan <thad@thadlabs.com>
-
-       * main.c (strerror): replacement strerror selected by autoconf
-
-1999-08-06  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * changed all "ENODATA" in "EINVAL", as some system miss ENODATA
-
-       * Makefile.in (all): removed ".depend" from all, as it needs gcc
-
-       * i25.c (Barcode_i25_encode): fixed wrong free() in an unlinely path
-
-       * ean.c (Barcode_ean_encode): don't use sprintf's result, as some
-       systems return a char pointer instead of the number of chars.
-
-       * configure.in: new file, as autoconf support is being added
-
-====> Version 0.91.3 released to ftp.prosa.it
-
-1999-08-05  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * code128.c (Barcode_128c_encode): fixed malloc of textinfo (was short)
-
-       * i25.c (Barcode_i25_encode): new encoding: interleaved 2 of 5
-
-       * ean.c (Barcode_ean_encode): enlarged static "text", to fit add-5
-
-       * code128.c (Barcode_128b_encode): new encoding: 128-B 
-
-====> Version 0.91.2 released to ftp.prosa.it
-
-1999-08-04  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * bookland/bookland.py: upgraded to version 0.06 (Judas Milgram)
-
-       * ean.c (Barcode_ean_encode): fixed layout of 1st/last digit in UPC-A
-
-       * code128.c (Barcode_128c_encode): fixed checksum calculation
-
-====> Version 0.91.1 released to ftp.prosa.it
-
-1999-07-09  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * sample.c (main): due changes to show code128-C
-
-       * code128.c (Barcode_128c_encode): implemented code 128-C
-
-       * ps.c (Barcode_ps_print): Accept float position and font size
-
-       * code39.c (Barcode_39_encode): reduced font (looked too big)
-
-====> Version 0.91 released to both ftp.prosa.it and ftp.gnu.org
-
-1999-07-08  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * ps.c (Barcode_ps_print): shrink all the bars by 0.15 points
-       (Barcode_ps_print): Use Helvetica as font, not Courier-Bold
-       (Barcode_ps_print): remember previous font to make shorter ps output
-
-1999-07-07  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * bookland/bookland.py: new enntry, by Judah Milgram.
-
-       * ean.c (Barcode_isbn_verify): fixed bug with "-X" codes (thanks Judah)
-
-====> Version 0.90.3 released to ftp.prosa.it/pub/software
-
-1999-07-07  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * doc/doc.barcode: fixed the "BUGS" section (remove fixed stuff)
-
-       * ean.c (Barcode_ean_encode): added '+' markers in partial and textinfo
-
-       * ps.c (Barcode_ps_print): added support for text over bars ('+' mode)
-
-====> Version 0.90.2, internal checkpoint
-
-1999-07-06  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * Makefile: dirty autodetect of libpaper
-
-       * main.c (get_page_geometry): parse a cmdline argument (mcm@glisco.it)
-       (main): added "--version"
-       (main): added diagnostic message for unencodable strings
-
-====> Version 0.90.1 released to ftp.prosa.it/pub/software
-
-1999-07-03  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * barcode.h: removed BARCODE_OUT_PG_* as only the library doesn't
-       need to hack with the page size.
-
-       * ean.c (Barcode_ean_encode): supplemental 2 and 5 encodings (no text)
-
-       * library.c: use unsigned char all over the place, to prevent warnings
-
-1999-07-01  Alessandro Rubini  <rubini@morgana.systemy.it>
-
-       * ean.c: added EAN-8 and UPC-E support
-
-       * Updated the address of the FSF in any source file 
-
-       * README: new file. 
-
-====> Version 0.90 is the first public release. No Changelog up to now.
diff --git a/barcode-0.98/INSTALL b/barcode-0.98/INSTALL
deleted file mode 100644 (file)
index 5a6cb87..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-
-Installing on generic Unix systems
-----------------------------------
-
-The package includes both a library and a standalone program.
-To install everything try
-
-       ./configure && make && make install
-
-To uninstall, try
-
-       make uninstall
-
-You may have problems compiling the package on non-GNUish systems,
-because the tool currently uses both gmake and gawk features, and I have
-no access to non-gnu systems. If your operating system isn't able to
-compile barcode and you are willing to help porting, feel free to call me.
-
-
-Installing on Debian/GNU systems
---------------------------------
-
-The suggested installation here includes creation of a Debian package:
-
-       debian/rules binary
-
-Then, just install using dpkg:
-
-       dpkg -i ../barcode-0.98_*.deb
-
-(the "*" here will represent your architecture: "i386", "alpha", "sparc", ...)
diff --git a/barcode-0.98/Makefile.am b/barcode-0.98/Makefile.am
deleted file mode 100644 (file)
index e7456ab..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-INCLUDES = \
-       $(GLABELS_CFLAGS)
-
-
-BC_FILES =             \
-       library.c       \
-       ean.c           \
-       code128.c       \
-       code39.c        \
-       code93.c        \
-       i25.c           \
-       msi.c           \
-       plessey.c       \
-       codabar.c       \
-       ps.c            \
-       pcl.c           \
-       barcode.h       
-
-noinst_LTLIBRARIES = libbarcode.la
-
-libbarcode_la_SOURCES = $(BC_FILES)
-
-EXTRA_DIST =                   \
-       barcode.spec            \
-       ChangeLog               \
-       cmdline.c               \
-       cmdline.h               \
-       configure               \
-       configure.in.dist       \
-       COPYING                 \
-       INSTALL                 \
-       install-sh              \
-       main.c                  \
-       Makefile.in.dist        \
-       missing                 \
-       mkinstalldirs           \
-       README                  \
-       README.glabels          \
-       sample.c                \
-       TODO                    \
-       bookland/bookland.py    \
-       compat/getopt.c         \
-       compat/getopt.h         \
-       contrib/barcode-for-delphi.tar.gz               \
-       contrib/barcode-SVG.tar.gz.README               \
-       contrib/barcode-for-delphi.tar.gz.README        \
-       contrib/barcodeps-0.1.tgz                       \
-       contrib/grab-0.0.4.tar.gz                       \
-       contrib/barcodeps-0.1.tgz.README                \
-       contrib/grab-0.0.4.tar.gz.README                \
-       contrib/barcode-SVG.tar.gz                      \
-       debian/changelog                \
-       debian/control                  \
-       debian/copyright                \
-       debian/dirs                     \
-       debian/info                     \
-       debian/README.debian            \
-       debian/rules                    \
-       doc/barcodedoc.txt              \
-       doc/barcode.ps          \
-       doc/infofilter          \
-       doc/manpager            \
-       doc/texi2html           \
-       doc/barcode.info        \
-       doc/mktxt               \
-       doc/barcode.pdf         \
-       doc/doc.barcode         \
-       doc/Makefile.in         \
-       doc/README
-
-
-
-
diff --git a/barcode-0.98/Makefile.in b/barcode-0.98/Makefile.in
deleted file mode 100644 (file)
index 4bbfd2a..0000000
+++ /dev/null
@@ -1,596 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = barcode-0.98
-DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-       COPYING ChangeLog INSTALL TODO install-sh missing \
-       mkinstalldirs
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-       $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-libbarcode_la_LIBADD =
-am__objects_1 = library.lo ean.lo code128.lo code39.lo code93.lo \
-       i25.lo msi.lo plessey.lo codabar.lo ps.lo pcl.lo
-am_libbarcode_la_OBJECTS = $(am__objects_1)
-libbarcode_la_OBJECTS = $(am_libbarcode_la_OBJECTS)
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-       --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-       $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-       --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-       $(LDFLAGS) -o $@
-SOURCES = $(libbarcode_la_SOURCES)
-DIST_SOURCES = $(libbarcode_la_SOURCES)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ALL_LINGUAS = @ALL_LINGUAS@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CATALOGS = @CATALOGS@
-CATOBJEXT = @CATOBJEXT@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIRNAME = @DATADIRNAME@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
-DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
-DOC_USER_FORMATS = @DOC_USER_FORMATS@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
-GLABELS_CFLAGS = @GLABELS_CFLAGS@
-GLABELS_LIBS = @GLABELS_LIBS@
-GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
-GLIB_REQUIRED = @GLIB_REQUIRED@
-GMOFILES = @GMOFILES@
-GMSGFMT = @GMSGFMT@
-GREP = @GREP@
-GTKDOC_CHECK = @GTKDOC_CHECK@
-GTK_REQUIRED = @GTK_REQUIRED@
-HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@
-HELP_DIR = @HELP_DIR@
-HTML_DIR = @HTML_DIR@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INSTOBJEXT = @INSTOBJEXT@
-INTLLIBS = @INTLLIBS@
-INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
-INTLTOOL_MERGE = @INTLTOOL_MERGE@
-INTLTOOL_PERL = @INTLTOOL_PERL@
-INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
-LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
-LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
-LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
-LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
-LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@
-LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@
-LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@
-LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIBXML_REQUIRED = @LIBXML_REQUIRED@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-MSGFMT = @MSGFMT@
-MSGFMT_OPTS = @MSGFMT_OPTS@
-MSGMERGE = @MSGMERGE@
-MYGAL_CFLAGS = @MYGAL_CFLAGS@
-MYGAL_LIBS = @MYGAL_LIBS@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OMF_DIR = @OMF_DIR@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-POFILES = @POFILES@
-POSUB = @POSUB@
-PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
-PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@
-UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
-USE_NLS = @USE_NLS@
-VERSION = @VERSION@
-WARN_CFLAGS = @WARN_CFLAGS@
-XGETTEXT = @XGETTEXT@
-XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@
-XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-INCLUDES = \
-       $(GLABELS_CFLAGS)
-
-BC_FILES = \
-       library.c       \
-       ean.c           \
-       code128.c       \
-       code39.c        \
-       code93.c        \
-       i25.c           \
-       msi.c           \
-       plessey.c       \
-       codabar.c       \
-       ps.c            \
-       pcl.c           \
-       barcode.h       
-
-noinst_LTLIBRARIES = libbarcode.la
-libbarcode_la_SOURCES = $(BC_FILES)
-EXTRA_DIST = \
-       barcode.spec            \
-       ChangeLog               \
-       cmdline.c               \
-       cmdline.h               \
-       configure               \
-       configure.in.dist       \
-       COPYING                 \
-       INSTALL                 \
-       install-sh              \
-       main.c                  \
-       Makefile.in.dist        \
-       missing                 \
-       mkinstalldirs           \
-       README                  \
-       README.glabels          \
-       sample.c                \
-       TODO                    \
-       bookland/bookland.py    \
-       compat/getopt.c         \
-       compat/getopt.h         \
-       contrib/barcode-for-delphi.tar.gz               \
-       contrib/barcode-SVG.tar.gz.README               \
-       contrib/barcode-for-delphi.tar.gz.README        \
-       contrib/barcodeps-0.1.tgz                       \
-       contrib/grab-0.0.4.tar.gz                       \
-       contrib/barcodeps-0.1.tgz.README                \
-       contrib/grab-0.0.4.tar.gz.README                \
-       contrib/barcode-SVG.tar.gz                      \
-       debian/changelog                \
-       debian/control                  \
-       debian/copyright                \
-       debian/dirs                     \
-       debian/info                     \
-       debian/README.debian            \
-       debian/rules                    \
-       doc/barcodedoc.txt              \
-       doc/barcode.ps          \
-       doc/infofilter          \
-       doc/manpager            \
-       doc/texi2html           \
-       doc/barcode.info        \
-       doc/mktxt               \
-       doc/barcode.pdf         \
-       doc/doc.barcode         \
-       doc/Makefile.in         \
-       doc/README
-
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-       @for dep in $?; do \
-         case '$(am__configure_deps)' in \
-           *$$dep*) \
-             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-               && { if test -f $@; then exit 0; else break; fi; }; \
-             exit 1;; \
-         esac; \
-       done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu barcode-0.98/Makefile'; \
-       $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu barcode-0.98/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-       @case '$?' in \
-         *config.status*) \
-           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-         *) \
-           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-       esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-noinstLTLIBRARIES:
-       -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
-       @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
-         dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-         test "$$dir" != "$$p" || dir=.; \
-         echo "rm -f \"$${dir}/so_locations\""; \
-         rm -f "$${dir}/so_locations"; \
-       done
-libbarcode.la: $(libbarcode_la_OBJECTS) $(libbarcode_la_DEPENDENCIES) 
-       $(LINK)  $(libbarcode_la_OBJECTS) $(libbarcode_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
-       -rm -f *.$(OBJEXT)
-
-distclean-compile:
-       -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/codabar.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/code128.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/code39.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/code93.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ean.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i25.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/library.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msi.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcl.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plessey.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ps.Plo@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
-
-.c.obj:
-@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@   $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
-       -rm -f *.lo
-
-clean-libtool:
-       -rm -rf .libs _libs
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
-       mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
-       set x; \
-       here=`pwd`; \
-       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
-       shift; \
-       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-         test -n "$$unique" || unique=$$empty_fix; \
-         if test $$# -gt 0; then \
-           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-             "$$@" $$unique; \
-         else \
-           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-             $$unique; \
-         fi; \
-       fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
-       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
-       test -z "$(CTAGS_ARGS)$$unique" \
-         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-            $$unique
-
-GTAGS:
-       here=`$(am__cd) $(top_builddir) && pwd` \
-         && $(am__cd) $(top_srcdir) \
-         && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
-       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-       list='$(DISTFILES)'; \
-         dist_files=`for file in $$list; do echo $$file; done | \
-         sed -e "s|^$$srcdirstrip/||;t" \
-             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-       case $$dist_files in \
-         */*) $(MKDIR_P) `echo "$$dist_files" | \
-                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-                          sort -u` ;; \
-       esac; \
-       for file in $$dist_files; do \
-         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         if test -d $$d/$$file; then \
-           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-           if test -d "$(distdir)/$$file"; then \
-             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-           fi; \
-           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-           fi; \
-           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-         else \
-           test -f "$(distdir)/$$file" \
-           || cp -p $$d/$$file "$(distdir)/$$file" \
-           || exit 1; \
-         fi; \
-       done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES)
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-       @echo "This command is intended for maintainers to use"
-       @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
-       mostlyclean-am
-
-distclean: distclean-am
-       -rm -rf ./$(DEPDIR)
-       -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-       distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-       -rm -rf ./$(DEPDIR)
-       -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-       mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-       clean-libtool clean-noinstLTLIBRARIES ctags distclean \
-       distclean-compile distclean-generic distclean-libtool \
-       distclean-tags distdir dvi dvi-am html html-am info info-am \
-       install install-am install-data install-data-am install-dvi \
-       install-dvi-am install-exec install-exec-am install-html \
-       install-html-am install-info install-info-am install-man \
-       install-pdf install-pdf-am install-ps install-ps-am \
-       install-strip installcheck installcheck-am installdirs \
-       maintainer-clean maintainer-clean-generic mostlyclean \
-       mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-       pdf pdf-am ps ps-am tags uninstall uninstall-am
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/barcode-0.98/Makefile.in.dist b/barcode-0.98/Makefile.in.dist
deleted file mode 100644 (file)
index 848aa26..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-#
-# This Makefile should run fine with both pmake and gmake
-#
-
-CC = @CC@
-CFLAGS = @CFLAGS@ @DEFS@ @NO_GETOPT@ @NO_LIBPAPER@ @NO_STRERROR@
-RANLIB = @RANLIB@
-
-INSTALL = @INSTALL@
-
-LDFLAGS = -L. -l$(TARGET) @LIBPAPER@
-
-prefix = @prefix@
-BINDIR = $(prefix)/bin
-LIBDIR = $(prefix)/lib
-INCDIR = $(prefix)/include
-MAN1DIR = $(prefix)/man/man1
-MAN3DIR = $(prefix)/man/man3
-INFODIR = $(prefix)/info
-
-# getopt may be installed or not, if not take our copy
-GETOPT_O = @GETOPT_O@
-
-TARGET = barcode
-LIBRARY = lib$(TARGET).a
-MAN1 = $(TARGET).1
-MAN3 = $(TARGET).3
-INFO = doc/$(TARGET).info
-HEADER = $(TARGET).h
-
-LIBOBJECTS = library.o ean.o code128.o code39.o code93.o i25.o \
-               msi.o plessey.o codabar.o \
-               ps.o pcl.o
-EXEOBJECTS = main.o cmdline.o $(GETOPT_O)
-ALLSOURCES = $(LIBOBJECTS:.o=.c) $(EXEOBJECT:.o=.c)
-
-
-#Hmm... "RM" is undefined in pmake
-RM = rm
-
-all: $(TARGET) $(LIBRARY) $(MAN1) $(MAN3) $(INFO) sample
-
-$(TARGET): $(LIBRARY) $(EXEOBJECTS)
-       $(CC) $(CFLAGS) $(EXEOBJECTS) $(LDFLAGS) -o $(TARGET)
-
-sample: sample.o $(LIBRARY)
-       $(CC) $(CFLAGS) sample.o $(LDFLAGS) -o $@ 
-
-# Avoid the standard CFLAGS, to avoid -Wall and -DNO_GETOPT
-compat/getopt.o: compat/getopt.c
-       $(CC) -O -c compat/getopt.c -o $@
-
-$(LIBRARY): $(LIBOBJECTS)
-       $(AR) r $(LIBRARY) $(LIBOBJECTS)
-       $(RANLIB) $(LIBRARY)
-
-$(MAN1) $(MAN3): doc/doc.$(TARGET)
-       awk -f doc/manpager doc/doc.$(TARGET)
-
-
-# Unfortunately, pmake has no "-C". Also, "pmake -n" doesn't follow the cd.
-$(INFO): doc/doc.$(TARGET)
-       cd doc && $(MAKE) 
-
-install:
-       $(INSTALL) -d $(BINDIR) $(INCDIR) $(LIBDIR) $(MAN1DIR) \
-               $(MAN3DIR) $(INFODIR)
-       $(INSTALL) -c $(TARGET) $(BINDIR)
-       $(INSTALL) -c -m 0644 $(HEADER) $(INCDIR)
-       $(INSTALL) -c -m 0644  $(LIBRARY) $(LIBDIR)
-       $(INSTALL) -c -m 0644  $(MAN1) $(MAN1DIR)
-       $(INSTALL) -c -m 0644  $(MAN3) $(MAN3DIR)
-       $(INSTALL) -c -m 0644  $(INFO) $(INFODIR)
-
-uninstall:
-       $(RM) -f $(BINDIR)/$(TARGET)
-       $(RM) -f $(INCDIR)/$(HEADER)
-       $(RM) -f $(LIBDIR)/$(LIBRARY)
-       $(RM) -f $(MAN1DIR)/$(MAN1)
-       $(RM) -f $(MAN3DIR)/$(MAN3)
-       $(RM) -f $(INDODIR)/$(INFO)
-
-#Make clean keeps the compiled documents
-clean:
-       $(RM) -f *.o */*.o *~ */*~ $(TARGET) $(LIBRARY)
-       $(RM) -f  $(MAN1) $(MAN3) core sample
-       cd doc && $(MAKE) terse
-       $(RM) -f .depend
-
-distclean: clean
-       if [ -f build ]; then debian/rules clean; fi
-       # remove the configure stuff as well
-       $(RM) -f Makefile config.h config.log config.status config.cache \
-               doc/Makefile
-
-cleanest: clean
-       cd doc && $(MAKE) clean
-
-Makefile: Makefile.in configure
-       ./configure
-
-configure: configure.in
-       autoconf
-
-.depend: $(ALLSOURCES)
-       $(CC) $(CFLAGS) -MM $(ALLSOURCES) > $@
-
-depend: .depend
-
-tar:
-       @if [ "x" = "x$(RELEASE)" ]; then \
-           n=`basename \`pwd\``; cd ..; tar cvf - $$n | gzip > $$n.tar.gz; \
-           echo 'you can set a numeric $$(RELEASE) to make a named tar'; \
-       else \
-           if [ -d ../$(TARGET)-$(RELEASE) ]; then \
-               rm -rf ../$(TARGET)-$(RELEASE); \
-           fi; \
-           mkdir ../$(TARGET)-$(RELEASE) || exit 1; \
-           cp -a . ../$(TARGET)-$(RELEASE) && cd .. && \
-               tar --exclude '*/CVS*' \
-                   -cvzf $(TARGET)-$(RELEASE).tar.gz $(TARGET)-$(RELEASE); \
-       fi
-
-# print the version, as I usually forget to update it when distributing
-printv:
-       @grep -n VERSION $(HEADER) /dev/null
-       @grep -n set.version doc/doc.$(TARGET) /dev/null
-       @grep -n dpkg.-i INSTALL /dev/null
-
-# and this is how I make the distribution
-distrib: $(INFO) distclean tar printv
-
-
-.PHONY: all install uninstall mostlyclean clean disclean depend \
-       tar printv distrib
-
-# Only if make is gmake, have a rule to conditionally include .depend
-@GMAKEDEPEND0@
-@GMAKEDEPEND1@
-@GMAKEDEPEND2@
-
diff --git a/barcode-0.98/README b/barcode-0.98/README
deleted file mode 100644 (file)
index d3ae2a7..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-
-NETWORK LINKS
-=============
-
-This is GNU-barcode. The latest release can be downloaded from ftp.gnu.org
-and mirrors:
-       ftp://ftp.gnu.org/pub/gnu/barcode/
-
-It is also available from my own ftp/http server
-       ftp://ar.linux.it/pub/barcode/
-       http://ar.linux.it/pub/barcode/ (same as above).
-       
-The current source tree is available by anonymous CVS. See
-       http://ar.linux.it/software/#cvs
-
-Plesae note that ar.linux.it/pub/barcode also includes CVS snapshots,
-semi-atumatically taken when I commit stuff to CVS. Note that CVS
-snapshots include "CVS/" directories, so you can then "cvs update" for
-further updates.
-
-The documentation is online at:
-       http://ar.linux.it/software/barcode
-
-The MS-Windows port is maintained at:
-       http://gnuwin32.sourceforge.net/packages/barcode.htm
-
-It as also been included in the FreeBSD ports tree in the "graphics" section.
-This means /usr/ports/graphics/barcode. It's thus available from:
-       http://www.freebsd.org/ports/graphics.html
-
-GLabels, at http://snaught.com/glabels/, uses barcode internally, too.
-
-DESCRIPTION
-===========
-
-The package is meant to solve most needs in barcode creation with a
-conventional printer. It can create printouts for the conventional
-product tagging standards: UPC-A, UPC-E, EAN-13, EAN-8, ISBN, as well
-as a few other formats. Ouput is generated as either Postscript or
-Encapsulated Postscript (other back-ends may be added if needed).
-
-The package is released as both a library and a command-line frontend,
-so that you can include barcode-generation into your application.  The
-program is released in the hope that is proves useful but without any
-warranty, according to the GPL Licence (see ./COPYING).
-
-If you're specifically interested in making an ISBN (Bookland EAN)
-symbol, you might try to get "bookland.py" by Judah Milgram
-(http://www.cgpp.com/bookland/, whose version 0.92 is also included in
-the directory "bookland" within this package, for your convenience).
-While my main target is flexibility his main target is strict
-adherence to the standards. Bookland is free software like the barcode
-library and will probabily have its role in the GNU project.
-Bookland.py is a self-documenting program, you'll enjoy browsing its
-source code.
-
-Other contributed patches and/or software are available in the
-contrib/ directory.
-
-Please take the "no-warranty" disclaimer seriously: even though I
-spent reasonable efforts to make sure the output is useable in
-production you should verify it suits your needs as a faulty bar can
-cost you a bundle, and you'll be on your own. It's up to you to verify
-that the symbol is valid (and, obviously, I'd like to know about any
-problem you encounter). [This paragraph copied verbatim from bookland.py]
-
-
-ACKNOWLEDGMENTS
-===============
-
-I would like to thank both Judah Milgram and Michele Comitini
-(mcm@glisco.it) for their help with this tool, as well as Jim Westveer
-for introducing me to Debian packaging. Several encodings have been
-implemented by Leonid A. Broukhis (leob@mailcom.com).
-
-
-MAILING LISTS
-=============
-
-There is a mailing list where development is coordinated, called
-barcode@lists.linux.it . To get subscribed you should
-       echo subscribe | mail barcode-request@lists.linux.it
-or anything equivalent.
-
-To receive notification of CVS commit messages, please subscribe to
-barcode-commit@ar.linux.it, by issuing:
-       echo subscribe | mail barcode-commit-request@ar.linux.it
-
-(if you guess, "ar" or "arcana" is my own server, while lists.linux.it
-is the mail server of the italian association of gnu/linux users).
-
-/alessandro (rubini@gnu.org)
-
diff --git a/barcode-0.98/README.glabels b/barcode-0.98/README.glabels
deleted file mode 100644 (file)
index b0dc959..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-The following changes have been made to the stock barcode-0.98 distribution
-to facilitate compilation with glabels:
-
-       Makefile.in renamed to Makefile.in.dist
-       configure.in renamed to configure.in.dist
-       added Makefile.am, which is configured from ../configure.in
-
diff --git a/barcode-0.98/TODO b/barcode-0.98/TODO
deleted file mode 100644 (file)
index c91c79c..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-
-       Possible enhancements that I'd like to add
-
-* verbose mode, printing position information to stderr
-
-* document how a new encoding standard can be added
-
-* add Barcode_String, which has been contributed
-
-* EAN128 (as agreed with Dani Pardo)
-
-* Postnet and associated encoding-specific bar definitions
-
-* Use texinfo 4 with images
-
-* shrink the bars to account for ink spreading
-
-       Currently, small barcodes don't get rendered well. While
-       version 0.91 and later subtracts 0.15 points from the size of
-       the bars (I found that this makes good results for small
-       bars), a smart alghorithm to shrink the bars is needed to get
-       lighter prints at small sizes without loosing readability.
-
diff --git a/barcode-0.98/barcode.h b/barcode-0.98/barcode.h
deleted file mode 100644 (file)
index 6b9bdf4..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * barcode.h -- definitions for libbarcode
- *
- * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org)
- * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it)
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef _BARCODE_H_
-#define _BARCODE_H_
-
-#include <stdio.h>
-
-#define BARCODE_VERSION     "0.98" 
-#define BARCODE_VERSION_INT   9800
-
-/*
- * The object
- */
-struct Barcode_Item {
-    int flags;         /* type of encoding and decoding */
-    char *ascii;       /* malloced */
-    char *partial;     /* malloced too */
-    char *textinfo;    /* information about text positioning */
-    char *encoding;    /* code name, filled by encoding engine */
-    int width, height; /* output units */
-    int xoff, yoff;    /* output units */
-    int margin;        /* output units */
-    double scalef;     /* requested scaling for barcode */
-    int error;         /* an errno-like value, in case of failure */
-};
-
-/*
- * The flags field
- */
-#define BARCODE_DEFAULT_FLAGS 0x00000000
-
-#define BARCODE_ENCODING_MASK 0x000000ff   /* 256 possibilites... */
-#define BARCODE_NO_ASCII      0x00000100   /* avoid text in output */
-#define BARCODE_NO_CHECKSUM   0x00000200   /* avoid checksum in output */
-
-#define BARCODE_OUTPUT_MASK   0x000ff000   /* 256 output types */
-#define BARCODE_OUT_EPS       0x00001000
-#define BARCODE_OUT_PS        0x00002000
-#define BARCODE_OUT_PCL       0x00004000   /* by Andrea Scopece */
-/*                  PCL_III   0x00008000   */
-#define BARCODE_OUT_PCL_III   0x0000C000
-#define BARCODE_OUT_NOHEADERS 0x00100000   /* no header nor footer */
-
-enum {
-    BARCODE_ANY = 0,     /* choose best-fit */
-    BARCODE_EAN,
-    BARCODE_UPC,        /* upc == 12-digit ean */
-    BARCODE_ISBN,       /* isbn numbers (still EAN13) */
-    BARCODE_39,         /* code 39 */
-    BARCODE_128,        /* code 128 (a,b,c: autoselection) */
-    BARCODE_128C,       /* code 128 (compact form for digits) */
-    BARCODE_128B,       /* code 128, full printable ascii */
-    BARCODE_I25,        /* interleaved 2 of 5 (only digits) */
-    BARCODE_128RAW,     /* Raw code 128 (by Leonid A. Broukhis) */
-    BARCODE_CBR,        /* Codabar (by Leonid A. Broukhis) */
-    BARCODE_MSI,        /* MSI (by Leonid A. Broukhis) */
-    BARCODE_PLS,        /* Plessey (by Leonid A. Broukhis) */
-    BARCODE_93          /* code 93 (by Nathan D. Holmes) */
-};
-
-#define BARCODE_DEFAULT_MARGIN 10
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-/*
- * Create and destroy barcode structures
- */
-extern struct Barcode_Item *Barcode_Create(char *text);
-extern int                  Barcode_Delete(struct Barcode_Item *bc);
-
-/*
- * Encode and print
- */
-extern int Barcode_Encode(struct Barcode_Item *bc, int flags);
-extern int Barcode_Print(struct Barcode_Item *bc, FILE *f, int flags);
-
-/*
- * Choose the position
- */
-extern int Barcode_Position(struct Barcode_Item *bc, int wid, int hei,
-                           int xoff, int yoff, double scalef);
-
-/*
- * Do it all in one step
- */
-extern int Barcode_Encode_and_Print(char *text, FILE *f, int wid, int hei,
-                                   int xoff, int yoff, int flags);
-
-
-/*
- * Return current version (integer and string)
- */
-extern int Barcode_Version(char *versionname);
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif /* _BARCODE_H_ */
diff --git a/barcode-0.98/barcode.spec b/barcode-0.98/barcode.spec
deleted file mode 100644 (file)
index eccb602..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-%define name    barcode
-%define ver     0.98
-%define rel    1
-%define prefix   /usr
-%define sysconfdir     /etc
-
-Summary: GNU barcode
-Name: %name
-Version: %ver
-Release: %rel
-Copyright: GPL
-Group: Applications/Productivity
-Source:  ftp://ar.linux.it/pub/barcode/%name-%{ver}.tar.gz
-BuildRoot: /var/tmp/%name-%{ver}-root
-URL: http://gnu.systemy.it/software/barcode
-Prefix: %prefix
-
-%description
-This is GNU-barcode.
-The package is meant to solve most needs in barcode creation with a
-conventional printer. It can create printouts for the conventional
-product tagging standards: UPC-A, UPC-E, EAN-13, EAN-8, ISBN, as well
-as a few other formats. Ouput is generated as either Postscript or
-Encapsulated Postscript (other back-ends may be added if needed).
-
-%package devel
-Summary: GNU barcode files for development
-Group: Development/Libraries
-
-%description devel
-This is GNU-barcode.
-The package is meant to solve most needs in barcode creation with a
-conventional printer. It can create printouts for the conventional
-product tagging standards: UPC-A, UPC-E, EAN-13, EAN-8, ISBN, as well
-as a few other formats. Ouput is generated as either Postscript or
-Encapsulated Postscript (other back-ends may be added if needed).
-
-This package contain the C header, the static library and man page
-for development.
-
-%prep
-%setup
-
-%ifarch alpha
-  ARCH_FLAGS="--host=alpha-redhat-linux"
-%endif
-
-export -n LANG LINGUAS LC_ALL 
-if [ ! -f configure ]; then
-  CFLAGS="$RPM_OPT_FLAGS" ./autogen.sh $ARCH_FLAGS --prefix=%{prefix} --sysconfdir=%{sysconfdir}
-else
-  CFLAGS="$RPM_OPT_FLAGS" ./configure $ARCH_FLAGS --prefix=%{prefix} --sysconfdir=%{sysconfdir}
-fi
-
-%build
-export -n LANG LINGUAS LC_ALL 
-
-if [ "$SMP" != "" ]; then
-  (make "MAKE=make -k -j $SMP"; exit 0)
-  make
-else
-  make
-fi
-
-%install
-[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT
-make prefix=$RPM_BUILD_ROOT%{prefix} sysconfdir=$RPM_BUILD_ROOT%{sysconfdir} install
-
-%clean
-[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT
-
-%files
-%defattr(-, root, root)
-
-%doc COPYING ChangeLog INSTALL README TODO doc/*.html doc/*.pdf doc/*.ps
-
-%attr(0755,root,root) %{prefix}/bin/barcode
-%attr(0644,root,root) %{prefix}/info/barcode.info*
-%attr(0644,root,root) %{prefix}/man/man1/barcode.1*
-
-%files devel
-%attr(0644,root,root) %{prefix}/include/barcode.h
-%attr(0644,root,root) %{prefix}/lib/libbarcode.a
-%attr(0644,root,root) %{prefix}/man/man3/barcode.3*
diff --git a/barcode-0.98/bookland/bookland.py b/barcode-0.98/bookland/bookland.py
deleted file mode 100644 (file)
index 373587c..0000000
+++ /dev/null
@@ -1,884 +0,0 @@
-#!/usr/local/bin/python
-
-MYNAME="bookland.py"
-MYVERSION="0.92"
-COPYRIGHT="(C) 1999-2001 J. Milgram"
-DATE = "Jan. 2002"
-MAINTAINER = "bookland-bugs@cgpp.com"
-
-#   Copyright (C) 1999,2000 Judah Milgram     
-#
-#   bookland.py - generate Bookland EAN symbol for ISBN encoding
-#
-#   This program is free software; you can redistribute it and/or
-#   modify it under the terms of the GNU General Public License
-#   as published by the Free Software Foundation; either version 2
-#   of the License, or (at your option) any later version.
-#
-#   This program is distributed in the hope that it will be useful,
-#   but WITHOUT ANY WARRANTY; without even the implied warranty of
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#   GNU General Public License for more details.
-#     
-#   You should have received a copy of the GNU General Public License along
-#   with this program; if not, write to the Free Software Foundation, Inc.,
-#   59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
-#
-# ==============================================================================
-#
-#  usage: bookland.py [ISBN] [price-code] > output.eps
-#
-#         ISBN - the ISBN, with or without check digit, with or without hyphens.
-#                default: 1-56592-197-6 ("Programming Python"). If the check digit
-#                is provided on the command line, it is verified. If not, it is
-#                calculated. It's up to you to get the hyphenation right - it's
-#                important, and something the program can't calculate for you.
-#
-#         price - the five digit add-on code. Usually used to indicate the price,
-#                 in which case the first digit indicates the currency (4=$CAN,
-#                 5=$US, etc.). The remaining digits indicate the price, with
-#                 decimal point assumed to be between the digit 3 and 4.
-#                 For example: $US 6.95 = 50695, $CAN 35.00 = 43500. Instead of a
-#                 price code, a 5 digit add-on ranging from 90000-98999 can be
-#                 used for internal purposes. BISG recommends just using 90000 if
-#                 you don't want to specify a price. Add-ons ranging from 99000 to
-#                 99999 have been reserved for special use.
-#
-#  An Encapsulated Postscript file (eps) is sent to standard out. This may in turn
-#  be converted to other formats using the pbmplus package. You may have trouble
-#  getting the OCRB to map correctly. If you already have the font, you can look in
-#  the Fontmap file to see what your system calls it, and edit the fontnames accordingly
-#  (see below). If you don't have it, you might find it on your DOS system. You
-#  need a .pfa/.pfb (Type 1) or .ttf (TrueType). Your Postscript interpreter might
-#  or might not be able to deal with TrueType. In any event, in an emergency, you
-#  might get away with Helvetica. Note that as of 1990 BISG no longer requires the
-#  ISBN to be printed in OCR-A.
-#
-#  Take the "no-warranty" disclaimer seriously. Going to print with a faulty bar
-#  can cost you a bundle, and you'll be on your own. It's up to you to verify that
-#  the symbol is valid. If you need "corporate accountability", try the Book
-#  Industry Study Group at (212) 929-1393 or the US ISBN Agency at (908) 665-6770
-#  and ask for a list of commercial vendors. Outside the US, don't know.
-#
-#  Feedback welcome. If you discover a case where the program generates a faulty
-#  symbol, I definitely want to hear about it - write me at milgram@cgpp.com or
-#  P.O. Box 8376, Langley Park, MD 20787, USA
-#
-#  INSTALLATION:
-#
-#  If you have a Python interpreter on your system, you're done. Just put this file
-#  somewhere in your path and give it execute permission. If you haven't installed
-#  Python, see http://www.python.org. It has been ported to Macs, DOS, and MS-Windows.
-#
-#  ABOUT THE BOOKLAND EAN
-#
-#  The most difficult part of this project was finding the documents that define
-#  the Bookland EAN. There appears to be no single, authoritative source that
-#  provides all the information required. Some good sources:
-#
-#  [1] "Machine-Readable Coding Guidelines for the U.S. Book Industry", Book
-#      Industry Study Group, New York, Jan., 1992. (212) 929-1393
-#  [2] "UPC Symbol Specification Manual", Uniform Code Council Inc.,
-#      Dayton, Ohio, January 1986 (May 1995 Reprint). (937) 435-3870; I found it
-#      at http://www.uc-council.org/d36-t.htm
-#  [3] "EAN Identification for Retail/Trade Items", EAN International. I found it
-#      in Feb. 1999 at http://www.ean.be/html/Numbering.html
-#  [4] "Hyphenation Instructions", web page at:
-#      http://www.isbn.org/standards/home/isbn/international/hyphenation-instructions.asp
-#
-#  The starting point of the exercise is the ISBN, assigned by the national ISBN
-#  Agency. This is a 10 digit number, the last being a check digit. The ISBN is
-#  converted to a 13 digit EAN number. The first three digits of the EAN-13 indicate
-#  the country or region. A prefix of 978 has been assigned to books, regardless
-#  of country of origin (hence, "Bookland") [3]. The remaining ten digits are the
-#  first 9 digits of the ISBN followed by the EAN-13 check digit.
-#
-#  It seems the EAN-13 check digit can be calculated using the same algorithm as the
-#  UPC Version A number. Note that the EAN-13 check digit is always between 0 and 9,
-#  compare with ISBN check digit which can range to 10 ("X"). See Reference [2],
-#  Section 2 and Appendix G for details of creation of the EAN-13 symbol. Table 2 of
-#  Appendix G provides a good comparison of the UPC-A and EAN-13 symbols.
-#
-#  The 5 digit add-on (here called, "UPC5") is defined in Ref. [2] Appendix D.
-#  The ">" to the right of the five digit code serves to enforce the "quiet zone" to
-#  the right of the bar pattern. Can't remember where I read that. It's probably
-#  optional. According to [1], in the UK, three horizontal bars appear over price
-#  add-ons. Haven't implemented that here. The UPC5 encoding is based on UPC-A and
-#  UPC-E.
-#
-#  According to [2], Section 3, the EAN-13 numbers and 5-digit add-ons are supposed
-#  to be printed in OCR-B. The ISBN itself is printed above the EAN-13 symbol. At
-#  one time it was to be printed in OCR-A, but as of 1990 this requirement has been
-#  dropped [1], and I assume this means you can use any font you like.
-#
-#  SEE ALSO:
-#
-#  "TinyHelp 5 - Making ISBN Barcodes", D. Byram-Wigfield. Another approach to making
-#                the ISBN barcode symbol. I saw it at
-#                http://www.cappella.demon.co.uk/index.html/
-#                but haven't tried it.
-#
-#  "XBarcode" - nice open-source X-Windows program for generating all sorts of bar codes.
-#               It does much more than this program, but didn't seem to do the UPC
-#               5-digit add-on or do the ISBN->EAN13 calculation (as of v. 2.11). Might
-#               have made more sense to add this capability, but I needed a Python project.
-#               In any event, their license forbids distribution in modified form!
-#
-#  HYPHENATION
-#
-#  bookland.py includes automatic hyphenation for ISBN's in group 0 and 1
-#  (English-language). This is based on my reading of Ref [4]. If in doubt,
-#  users can use the "-y" option to force the program to accept the hyphenation
-#  as input. For other ISBN groups and for ISMN's, no hyphenation is performed
-#  other than to ensure a hyphen is placed after the group identifier and before
-#  the check digit.
-#
-#  ABOUT THE ISMN:
-#
-#  See the ISMN Users' Manual, 3rd Edition, 1998, ISBN 3-88053-070-X, published by
-#  the International ISMN Agency, Staatsbibliothek Preussischer Kulturbesitz, Berlin.
-#  I found my copy at http://www.ismn.spk-berlin.de/download/ISMNmanual.pdf
-#
-#  An ISMN is just like an ISBN, except:
-#   - first character is an "M"
-#   - the "M" counts as a "3" for computing the ISMN check digit (last digit)
-#   - the checksum weights are 3,1,3,1,3,1,3,1,3, sum to be divisible by "10". This
-#     means the last character is always a numerical digit, never an "X".
-#   - the EAN number is "979" plus the *entire* ten character ISMN, except the
-#     "M" is replaced by "0". Note this means the ISMN checksum is identical to the
-#     corresponding EAN-13 checksum (excercise left to the reader).
-#
-#  When bookland.py detects an "M" in the first position of the ISBN, it interprets
-#  it as an ISMN and proceeds accordingly. The 5-digit price code symbol is suppressed.
-#
-#  BAR WIDTH REDUCTIONS
-#
-#  Starting Version 0.92, the widths of the individual bars can be reduced using the
-#  "-r" option (units are inches). This is to compensate for bleed during printing.
-#  I don't know when it's a good idea to actually use this; in any event consult with
-#  your printer first. If not input, it defaults to zero (no reduction).
-#
-#  ABOUT PYTHON
-#
-#  See http://www.python.org
-#
-#  TO DO:
-#
-#  - Generalize to more bar codes, starting with UPC-A and UPC-E. "Plain" EAN13 is
-#    already built in, could add command line argument to generate that instead of
-#    Bookland.
-#  - Make font sizes and placement easier to configure - not sure I have it right.
-#    Does human-readable 5-digit code take wider font spacing?
-#  - Clean up bounding box stuff.
-#  - Bells and whistles.
-#  - GUI?
-#
-#  HISTORY:
-#
-#  1/2002  -  v 0.92 add ISMN support (thanks to Lars-Henrik Nysten for this suggestion)
-#                    re-wrote bar generation to preclude possibility of white hairlines
-#                        between adjacent black modules. Thanks to Tero Lindfors for
-#                        reporting this bug.
-#                    new -o option to write eps to file rather than stdout
-#                    new -x option for "check only" (verifies check digit)
-#                    new -r option for bar width reduction (compensate for print bleed)
-#                    new -s option to scale module (bar) height (Lars-Henrik Nysten again)
-#                    can suppress UPC-5 price code by entering empty string. (thanks to
-#                        Jacques Du Pasquier for this suggestion)
-#                    re-wrote ISBN/ISMN sanity checks
-#                    lowercase alphas ("x" for ISBN and "m" for ISMN) now ok on input
-#                    fix "long" command line options.
-#  10/2001 -  v 0.91 add -z option for quiet zone ">"
-#                    add -f option for fonts
-#                    re-write command line parsing to use getopt
-#  1/2000  -  v 0.09 eliminate use of eval
-#  9/99    -  v 0.08 accomodate different versions of OCRB by fitting
-#                    all strings to prescribed width. Thanks to Toby Gadd
-#                    for reporting this problem and Peter Deutsch for
-#                    help finding the fix.
-#  7/99    -v0.05-0.07 improve error handling.
-#  3/27/99 - v0.04 add "--help" and "--version".
-#  3/13/99 - v0.03, do a showpage at end (it's allowed)
-#            fixed checksum calculations for certain cases
-#  2/7/99 - v0.02, fixed LH parity pattern for EAN13. It's not the check digit!
-#  2/7/99 - initial release
-# ================================================================================
-
-#
-#  barCodeSymbol - the whole printed symbol, including bar code(s) and product code(s).
-#  UPC, UPCA, UPC5, EAN13 - the number itself, with check digit, string representation,
-#                         and barcode bits
-#
-
-import re       # we should get rid of regsub and regex in favor of re
-                # hope there's no conflict.
-import string
-import sys
-import regsub
-from regex_syntax import *
-import regex
-regex.set_syntax(RE_SYNTAX_AWK)
-from types import *
-
-BooklandError = "Something wrong"
-
-
-A="A";B="B";C="C";O="O";E="E"
-UPCABITS = [{O:"0001101",E:"1110010"},
-            {O:"0011001",E:"1100110"},
-            {O:"0010011",E:"1101100"},
-            {O:"0111101",E:"1000010"},
-            {O:"0100011",E:"1011100"},
-            {O:"0110001",E:"1001110"},
-            {O:"0101111",E:"1010000"},
-            {O:"0111011",E:"1000100"},
-            {O:"0110111",E:"1001000"},
-            {O:"0001011",E:"1110100"}]
-UPCAPARITY = [ "OOOOOOEEEEEE" ] * 10
-UPCEBITS = [{O:"0001101",E:"0100111"},
-            {O:"0011001",E:"0110011"},
-            {O:"0010011",E:"0011011"},
-            {O:"0111101",E:"0100001"},
-            {O:"0100011",E:"0011101"},
-            {O:"0110001",E:"0111001"},
-            {O:"0101111",E:"0000101"},
-            {O:"0111011",E:"0010001"},
-            {O:"0110111",E:"0001001"},
-            {O:"0001011",E:"0010111"}]
-# what about UPCEPARITY? Don't need for isbn.
-UPC5BITS = UPCEBITS
-UPC5PARITY = ["EEOOO","EOEOO","EOOEO","EOOOE","OEEOO",
-              "OOEEO","OOOEE","OEOEO","OEOOE","OOEOE"]
-EAN13BITS = [{A:"0001101", B:"0100111", C:"1110010"},
-             {A:"0011001", B:"0110011", C:"1100110"},
-             {A:"0010011", B:"0011011", C:"1101100"},
-             {A:"0111101", B:"0100001", C:"1000010"},
-             {A:"0100011", B:"0011101", C:"1011100"},
-             {A:"0110001", B:"0111001", C:"1001110"},
-             {A:"0101111", B:"0000101", C:"1010000"},
-             {A:"0111011", B:"0010001", C:"1000100"},
-             {A:"0110111", B:"0001001", C:"1001000"},
-             {A:"0001011", B:"0010111", C:"1110100"}]
-EAN13PARITY = map(lambda x: x+"CCCCCC",
-                  ["AAAAAA","AABABB","AABBAB","AABBBA","ABAABB",
-                   "ABBAAB","ABBBAA","ABABAB","ABABBA","ABBABA"])
-
-PSFORMAT = "%.6f"
-# Default fonts.
-# Fonts might have a different name on your system.
-# Edit if required.
-ISBNFONT = "OCRB"      #  Doesn't have to be OCR-B
-EAN13FONT = "OCRB"
-UPC5FONT = "OCRB"
-
-class psfile:
-    
-    def __init__(self):
-        self.x0 = 100; self.y0 = 100
-        self.lines=[]
-        self.bb=[self.x0,self.y0,self.x0,self.y0]
-
-    def orbb(self,arg):
-        self.bb[0] = min(self.bb[0],self.x0+arg[0])
-        self.bb[1] = min(self.bb[1],self.y0+arg[1])
-        self.bb[2] = max(self.bb[2],self.x0+arg[2])
-        self.bb[3] = max(self.bb[3],self.y0+arg[3])
-
-    def translate(self,dx,dy):
-        self.x0 = self.x0 + dx
-        self.y0 = self.y0 + dy
-        return "%d %d translate 0 0 moveto" % (dx,dy)
-        
-    def out(self,file=None):
-        if file:
-            outfid=open(file,"w")
-        else:
-            outfid=sys.stdout
-        for line in self.lines:
-            outfid.write("%s\n"%line)
-        outfid.close()
-
-    def do(self,arg):
-        self.lines = self.lines + arg
-
-    def setbb(self):
-        for i in range(len(self.lines)):
-            if self.lines[i]=="%%BoundingBox: TBD":
-                self.lines[i]= "%%BoundingBox:" + \
-                               " %d"%self.bb[0] + \
-                               " %d"%self.bb[1] + \
-                               " %d"%self.bb[2] + \
-                               " %d"%self.bb[3]
-                return
-
-    def header(self,title,comments,ean13font,isbnfont,upc5font):
-        for i in range(len(comments)):
-            comments[i] = regsub.gsub("^","%  ",comments[i])
-        # There's a more elegant way to do the bounding box line:
-        return [ "%!PS-Adobe-2.0 EPSF-1.2",
-                 "%%Creator: " + MYNAME + "  " + MYVERSION + "  " + DATE,
-                 "%%Title: " + title,
-                 "%%BoundingBox: TBD",
-                 "%%EndComments" ] +\
-                 comments + \
-               [ "\n% These font names might be different on your system:",
-                 "/ean13font { /" + ean13font + " findfont 10 scalefont setfont } def",
-                 "/isbnfont { /" + isbnfont + " findfont 8 scalefont setfont } def",
-                 "/upc5font { /" + upc5font +" findfont 14 scalefont setfont } def\n",
-                 "/nextModule { moduleWidth 0 rmoveto } def",
-                 "% The following shenanigans is to deal with different implementations",
-                 "% of same font having different char sizes and spacing.",
-                 "% function fitstring:",
-                 "% usage: width string font fitstring",
-                 "% set font, scaled so that string exactly fits desired width",
-                 "% leave string on stack",
-                 "/fitstring { dup findfont 1 scalefont setfont % w s f",
-                 "3 1 roll % f w s",
-                 "dup stringwidth pop % f w s sw",
-                 "3 2 roll exch div % f s x",
-                 "3 2 roll findfont exch scalefont setfont",
-                 "} def",
-                 "/barHeight { 72 } def",
-                 "/nextModule { moduleWidth 0 rmoveto } def",
-                 "/topcentershow {dup stringwidth pop neg 2 div -9 rmoveto show} def",
-                 "/toprightshow {dup stringwidth pop neg -9 rmoveto show} def",
-                 "/bottomcentershow {dup stringwidth pop neg 2 div 0 rmoveto show} def",
-                 "/bottomrightshow {dup stringwidth pop neg 0 rmoveto show} def",
-                 "/W { moduleWidth mul 0 rmoveto } def",
-                 "/B { dup moduleWidth mul 2 div 0 rmoveto",
-                 "dup moduleWidth mul barWidthReduction sub setlinewidth",
-                 "0 barHeight rlineto 0 barHeight neg rmoveto",
-                 "currentpoint stroke moveto",
-                 "moduleWidth mul 2 div 0 rmoveto } def",
-                 "/L { dup moduleWidth mul 2 div 0 rmoveto",
-                 "dup moduleWidth mul barWidthReduction sub setlinewidth",
-                 "0 -5 rmoveto 0 5 rlineto",
-                 "0 barHeight rlineto 0 barHeight neg rmoveto",
-                 "currentpoint stroke moveto",
-                 "moduleWidth mul 2 div 0 rmoveto } def",
-                 self.x0,self.y0,"translate",
-                 "0 0 moveto" ]
-
-    def trailer(self):
-        return ["stroke","% showpage supposedly OK in EPS",
-                "showpage","\n% Good luck!"]
-
-        
-class UPC:
-    
-    # Includes UPC-A, UPC-E, EAN-13 (sorry), UPC-5 et al.
-
-    def __init__(self,arg):
-        # arg is a string, either:
-        # - product code including checksum
-        # - same, with hyphens (hyphens not verified)
-        # - same, but with last digit (checksum) dropped, possibly leaving a
-        #   trailing hyphen.
-        # If checksum is included, it will be verified.        
-        # N.B. "integer" representation is still a string! Just has no hyphens.
-
-        self.s=arg
-        self.verifyChars(self.s)
-        self.n = regsub.gsub("-","",self.s)    # create "integer" representation
-        self.x = self.checkDigit(self.n)       # always calculate check digit
-        if len(self.n) == self.ndigits:
-            self.verifyCheckDigit()                # if check digit given, verify it
-        elif len(self.n) == self.ndigits-1:
-            self.tackonCheckDigit()                # tack on check digit
-        else:
-            raise BooklandError, "UPC: wrong number of digits in \"" + self.s + "\""
-
-    def setbits(self,arg):                       # UPC (all)
-        self.bits=""
-        parityPattern=self.parityPattern()
-        bitchar=self.bitchar()
-        for p in range(len(arg)):
-            digit=int(arg[p])
-            # maybe better to define parityPattern with a leading blank?
-            parity=parityPattern[p]
-            bit=bitchar[digit][parity]
-            self.bits=self.bits + bit
-
-    def verifyChars(self,s):                     # UPC (all)
-        # Trailing hyphen allowed.
-        nevergood = "--|^-|[^0-9-]"
-        ierr=regex.search(nevergood,s)
-        if ierr != -1:
-            raise BooklandError, \
-                  "UPCA: in %s: illegal characters beginning with: %s" % (s,s[ierr])
-
-    def verifyCheckDigit(self):               # UPC (all)
-        # first verify correct number of digits.
-        soll=self.checkDigit(self.n)
-        ist=self.s[-1:]
-        if ist != soll:
-            raise BooklandError, "For %s checksum %s is wrong, should be %s" % \
-                             (self.s,ist,soll)
-
-    def xstring(self,p):                      # UPC (all)
-        return "%d" % p
-
-    def tackonCheckDigit(self):
-        self.n = self.n + self.x              # UPC (all)
-        self.s = self.s + self.x
-
-class UPCA(UPC):
-
-    def __init__(self,arg):
-        UPC.__init__(self,arg)
-        self.setbits(self.n[1:])                 # skip first digit
-        
-    def parityPattern(self):
-        return UPCAPARITY[int(self.x)]
-    def bitchar(self):
-        return UPCABITS
-    
-    def checkDigit(self,arg):               # UPCA/EAN13
-          weight=[1,3]*6; magic=10; sum = 0
-          for i in range(12):         # checksum based on first 12 digits.
-              sum = sum + int(arg[i]) * weight[i]
-          z = ( magic - (sum % magic) ) % magic
-          if z < 0 or z >= magic:
-              raise BooklandError, "UPC checkDigit: something wrong."
-          return self.xstring(z)
-
-
-class ISBN:
-    # Includes ISMN, if the plan falls together.
-    def __init__(self,arg):
-        self.ndigits=10            #  Includes check digit!
-        self.s=string.upper(arg)
-        self.n=re.sub("[ -]","",self.s) # "integer" representation
-        # In ISMN, I allow spaces in place of hyphens. See ISMN User's manual.
-        if re.match("^M( |-)?\d(( |-)?\d){7,7}(-| )?\d?$",self.s):
-            # ISMN
-            self.name="ISMN"
-            self.n=re.sub("^M","3",self.n)
-            self.weight=[3,1,3,1,3,1,3,1,3]
-            self.magic=10
-        elif re.match("^\d-?\d(-?\d){7,7}-?(\d|X)?$",self.s):
-            # ISBN
-            self.name="ISBN"
-            self.weight=[10,9,8,7,6,5,4,3,2]
-            self.magic=11
-        else:
-            raise BooklandError, "%s invalid (hyphenation, characters, or length)" % self.s
-        self.x = self.checkDigit()
-        if len(self.n) == self.ndigits:
-            self.verifyCheckDigit()                # if check digit given, verify it
-        elif len(self.n) == self.ndigits-1:
-            self.tackonCheckDigit()                # tack on check digit
-        else:
-            raise BooklandError, "%s failed. Please report as bug" % self.s
-
-
-    def checkDigit(self):     # ISBN and ISMN; UPCA/EAN13 similar but for weights etc.
-        # now that we're checking regex's in init, we don't have to check the
-        # argument at all. (used to check length and bad characters)
-        sum = 0
-        for i in range(9):      # checksum based on first nine digits.
-            sum = sum + int(self.n[i]) * self.weight[i]
-        z = ( self.magic - (sum % self.magic) ) % self.magic
-        if z < 0 or z >= self.magic:
-            raise BooklandError, \
-                  "%s: checksum %d is wrong - please report as bug" % (self.s,z)
-        return self.xstring(z)
-
-    def xstring(self,p):
-        if p == 10:
-            return "X"
-        else:
-            return "%d" % p
-
-    def tackonCheckDigit(self):
-        if self.s[-1:] == "-":
-            # Already have a trailing hyphen
-            self.s = self.s + self.x
-        else:
-            self.s = self.s + "-" + self.x
-
-    def verifyCheckDigit(self):               # UPC A; EAN13
-        # first verify correct number of digits.
-        soll=self.x
-        ist=self.s[-1:]
-        if ist != soll: raise BooklandError, \
-                  "For %s checksum %s is wrong, should be %s\n" % (self.s,ist,soll)
-
-class Bar:
-    # a run of adjacent modules of identical value.
-    def __init__(self,val):
-        self.val=val
-        if not self.val in "L01":
-            raise BooklandError, "bar bit: %s, pls report as a bug" % self.val
-        self.width=1
-        if self.val=="1":
-            self.color="Black"
-        elif self.val=="0":
-            self.color="White"
-        elif self.val=="L":
-            self.color="Long Black"
-    def __cmp__(self,other):
-        if self.val==other or (self.val=="L" and other=="1"):
-            return 0
-        else:
-            return 1
-    def inc(self):
-        self.width=self.width+1
-    def pslines(self):
-        if self.val=="L":
-            rval = [ "%d L " % self.width ]
-        elif self.val=="1":
-            rval = [ "%d B " % self.width ]
-        else:
-            rval = [ "%d W " % self.width ]
-        return rval
-    def __repr__(self):
-        return "%s bar of width %d" % (self.color,self.width)
-
-class barCodeSymbol:
-
-    def __init__(self):
-        self.patternWidth = len(self.bits)*self.moduleWidth
-        # Anything else?
-
-    def bitsComment(self):
-        return [ "%% Bits:\n%% %s" % self.bits ]
-        
-    def psbars(self):
-        # new version, try to prevent all hairlines between adjacent modules.
-        bars = []
-        bar=Bar(self.bits[0])
-        for bit in self.bits[1:]:
-            if bit==bar:
-                bar.inc()
-            else:
-                bars.append(bar)
-                bar=Bar(bit)
-        bars.append(bar)
-        rval = ["0 0 moveto"]
-        for bar in bars:
-            rval = rval + bar.pslines()
-        rval = rval + [ "stroke" ]
-        return rval
-
-    def psbarsold(self):
-        psbits=regsub.gsub("1","I ",self.bits)
-        psbits=regsub.gsub("0","O ",psbits)
-        psbits=regsub.gsub("L","L ",psbits)
-        linewidth=50
-        p=0; j=linewidth; m=len(psbits); psbarlines=[]; blanks="^ | $"
-        while p <= m:
-            j = min(linewidth,m-p)
-            psbarlines = psbarlines + [ regsub.gsub(blanks,"",psbits[p:p+j]) ]
-            p=p+linewidth
-        return [ "0 0 moveto" ] + psbarlines + [ "stroke" ]
-        
-    def psSetBarHeight(self):
-        return [ "/barHeight { " + PSFORMAT % self.moduleHeight + " 72 mul } def" ]
-
-    def psSetBarWidthReduction(self):
-        return [ "/barWidthReduction { " + \
-                 PSFORMAT % self.barWidthReduction + " 72 mul } def" ]
-
-    def psSetModuleWidth(self):
-        rval = [ "/moduleWidth { " + PSFORMAT % self.moduleWidth + " 72 mul } def" ]
-        return rval
-
-    def psBottomRightText(self,text,font):
-        # this is specifically for the upc5 price code.
-        # this is all starting to get messy.
-        return [ PSFORMAT % self.patternWidth + " 72 mul dup 2 div",
-                 PSFORMAT % self.moduleHeight + " 72 mul 2 add moveto",
-                 "(" + text + ") /" + font + " fitstring bottomcentershow" ]    
-
-    def psTopCenterText(self,text,font):
-        # the text at the top center of the bar pattern (i.e. the ISBN)
-        return [ PSFORMAT % self.patternWidth + " 72 mul dup 2 div",
-                 PSFORMAT % self.moduleHeight + " 72 mul 3 add moveto",
-                 " (" + text + ") /" + font  + " fitstring bottomcentershow" ]
-
-    def psFittedText(self,width,text,font):
-        return [ PSFORMAT % width + " (" + text + ") " + font + " fitstring" ]
-
-    # This is optional; serves to enforce quiet zone to right of UPC 5 add-on
-    def psGreaterThan(self,font):
-        return [ PSFORMAT % self.patternWidth + " 72 mul",
-                 PSFORMAT % self.moduleHeight + " 72 mul 2 add moveto",
-                 "/%s (>) show" % font ]
-
-class EAN13Symbol(barCodeSymbol):
-
-    def __init__(self,arg,font=EAN13FONT,heightMultiplier=1,barWidthReduction=0):
-        # arg is a string with the EAN product code
-        self.barWidthReduction=barWidthReduction
-        self.ean13 = EAN13(arg)
-        self.moduleWidth = 0.0130
-        specModuleHeight = 1.00
-        self.moduleHeight = 1.00 * heightMultiplier
-        self.bits = self.ean13.bits
-        barCodeSymbol.__init__(self)
-        self.font=font
-
-    def bb(self):
-        return  [ -12, -10, self.patternWidth*72+10, self.moduleHeight*72+12 ]
-
-    def pslines(self):
-        return self.bitsComment() + \
-               self.psSetModuleWidth() + \
-               self.psSetBarWidthReduction() + \
-               self.psSetBarHeight() + \
-               self.psbars() + \
-               self.psLRDigitLines()
-              
-    def psLRDigitLines(self):
-        # 24 = 3+6*7/2
-        # 70 = 3+6*7+4+6*7/2   "4" so we center on the "L" bars (the rightmost of
-        #      the center guard bars is an "O".
-        # "5" in check digit is the five-module spacing recommended by [2], section 3.
-        return [ "% We do the left digits first and leave the font scaled",
-                 "% as is for the 9-digit and the right-digits.",
-                 "% EAN13 Left Digits:",
-                 "moduleWidth 24 mul 0 moveto",
-                 "moduleWidth 40 mul (" + self.ean13.leftDigits + ") ",
-                 "/" + self.font + " fitstring topcentershow",
-                 "\n% EAN13 human-readable number",
-                 "% The \"9\" digit (only when encoding ISBN's and ISMN's, I think):",
-                 "-5 0 moveto (" + self.ean13.n[0] + ") toprightshow",                 
-                 "% EAN13 Right Digits:",
-                 "moduleWidth 70 mul 0 moveto",
-                 "moduleWidth 40 mul (" + self.ean13.rightDigits + ") topcentershow" ]
-
-class EAN13(UPCA):
-
-    def __init__(self,arg):
-        self.ndigits=13            #  Includes check digit!
-        UPCA.__init__(self,arg)
-        leftBits = self.bits[0:42]
-        rightBits = self.bits[42:]
-        leftGuard="L0L"
-        rightGuard="L0L"
-        center="0L0L0"
-        self.bits = leftGuard + leftBits + center + rightBits + rightGuard
-        self.leftDigits = self.n[1:7]
-        self.rightDigits = self.n[7:13]
-
-    def parityPattern(self):
-        # N.B. parity pattern based on leftmost digit, the UCC Spec calls this
-        # the "13th" digit. It's not the check digit!
-        return EAN13PARITY[int(self.n[0])]
-    def bitchar(self):
-        return EAN13BITS
-
-class UPC5Symbol(barCodeSymbol):
-
-    def __init__(self,arg,heightMultiplier=1,barWidthReduction=0):
-        # arg is a string with the 5 digit add-on.
-        self.barWidthReduction=barWidthReduction
-        self.upc5 = UPC5(arg)
-        self.moduleWidth = 0.0130
-        specModuleHeight = 0.852
-        self.moduleHeight = 0.852 * heightMultiplier
-        self.bits = self.upc5.bits
-        barCodeSymbol.__init__(self)
-
-    def pslines(self):
-        return self.bitsComment() + \
-               self.psSetModuleWidth() + \
-               self.psSetBarHeight() + \
-               self.psbars()
-
-    def bb(self):
-        # Note quiet zone is there even if we don't print the ">".
-        return  [ 0, 0, self.patternWidth*72+10, self.moduleHeight*72+10 ]
-
-UPC5Error = "Something wrong with 5-digit price code add-on."
-class UPC5(UPC):
-
-    def __init__(self,arg):
-        self.ndigits=5            #  Includes check digit!
-        p=re.search("[^0-9]",arg)
-        if p:
-          badchar=arg[p.start()]
-          raise UPC5Error, "\"%s\" is wrong. The character \"%s\" is not allowed. Price code add-on should contain %d digits and nothing else. Or leave blank to suppress the UPC-5 code." % (arg,badchar,self.ndigits)
-        elif len(arg) != self.ndigits:
-          raise UPC5Error, \
-            "\"%s\" is wrong. Price code add-on should have exactly %d digits." % (arg,self.ndigits)
-        UPC.__init__(self,arg)
-        self.setbits(self.n)
-        leftGuard="1011"
-        # no right guard for UPC 5-digit add-on
-        # Have to insert pesky delineators:
-        delineator = "01"
-        self.bits = leftGuard + \
-                    self.bits[0:7] + delineator + \
-                    self.bits[7:14] + delineator + \
-                    self.bits[14:21] + delineator + \
-                    self.bits[21:28] + delineator + \
-                    self.bits[28:35]
-
-    def checkDigit(self,arg):     # UPC5
-          weight=[3,9,3,9,3]; sum = 0
-          for i in range(5):
-              sum = sum + int(arg[i]) * weight[i]
-          return self.xstring(sum % 10)
-
-    def verifyCheckDigit(self):               # UPC2/5 checksum not in number
-        return
-
-    def parityPattern(self):
-        return UPC5PARITY[int(self.x)]
-    def bitchar(self):
-        return UPC5BITS
-
-class bookland(barCodeSymbol):
-
-    def __init__(self,isbn,price="",*rest):
-
-
-        # Some defaults:
-        ean13font=EAN13FONT
-        isbnfont=ISBNFONT
-        upc5font = UPC5FONT
-        zone=None
-        heightMultiplier=1.0
-        commandLine=""
-        barWidthReduction=0
-
-        # Maybe different fonts:
-        if len(rest)>0:
-            font=rest[0]
-            if font:
-                ean13font=font
-                isbnfont=font
-                upc5font=font
-        if len(rest)>1:
-            zone=rest[1]
-        if len(rest)>2:
-            heightMultiplier=float(rest[2])
-        if len(rest) > 3:
-            commandLine=rest[3]
-        if len(rest) > 4:
-            barWidthReduction=float(rest[4])
-
-        # Initial setup:
-        
-        self.ps = psfile()
-        self.isbn = ISBN(isbn)
-
-        # Header, EAN13 bars, EAN13 number, and ISBN:
-
-        if self.isbn.name=="ISMN":
-            self.ean13Symbol = EAN13Symbol("9790"+self.isbn.n[1:9],ean13font,heightMultiplier,barWidthReduction)
-        elif self.isbn.name=="ISBN":
-            self.ean13Symbol = EAN13Symbol("978"+self.isbn.n[:9],ean13font,heightMultiplier,barWidthReduction)
-        else:
-            raise BooklandError, "Internal error doing %s, please report as bug" % isbn
-
-        self.ps.orbb(self.ean13Symbol.bb())
-        comments = ["",
-                    "     This is free software and comes with NO WARRANTY WHATSOVER",
-                    "     Think twice before going to press with this bar code!",
-                    "",
-                    "Command line: %s" % commandLine,
-                    "" ]
-        self.ps.lines = self.ps.header(self.isbn.s,comments,ean13font,isbnfont,upc5font) + \
-                        [ "ean13font" ] + \
-                        self.ean13Symbol.pslines() +\
-                        [ "isbnfont" ] + \
-                        self.ean13Symbol.psTopCenterText("%s %s" % (self.isbn.name,self.isbn.s),isbnfont)
-
-        # 5-digit add-on:  (optional for ISBN only)
-        BLANK=re.compile("^ *$")
-        if self.isbn.name=="ISBN" and not BLANK.match(price):
-            # 105 = 95 + 10; 10 = separation (min is 9)        
-            translate=[ self.ps.translate( self.ean13Symbol.moduleWidth * 72 * 105, 0 ) ]
-            self.upc5Symbol = UPC5Symbol(price,heightMultiplier,barWidthReduction)
-            self.ps.orbb(self.upc5Symbol.bb())
-            self.ps.lines = self.ps.lines + \
-                            translate + \
-                            self.upc5Symbol.pslines() + \
-                            [ "upc5font" ] +\
-                            self.upc5Symbol.psBottomRightText(price,upc5font)
-            if zone: self.ps.lines=self.ps.lines + self.upc5Symbol.psGreaterThan(upc5font)
-        else:
-            self.ps.lines.append("%% Skipping UPC-5 price code symbol per request")
-
-        self.ps.lines=self.ps.lines + self.ps.trailer()
-
-        # Can now set bounding box.
-
-        self.ps.setbb()
-    
-# Here we go ...
-        
-if __name__ == '__main__':
-
-    def printUsage():
-        print "Usage: bookland [-h|--help] [-v|--version] [-x|--check] [-f|--font=<font>] [-s|--height=<height scale>] [-r|--reduction=<reduction factor>] [-o|outfile=<filename>] [-z|--quietzone] [<isbn>|<isbn> <price>]"
-        print "Report bugs to " + MAINTAINER
-
-    def printVersion():
-        sys.stderr.write("%s version %s %s.\n" % (MYNAME,MYVERSION,COPYRIGHT))
-        sys.stderr.write("Bugs to %s\n" % MAINTAINER)
-        sys.stderr.write("This is free software and comes with NO WARRANTY\n")
-
-    import getopt
-    try:
-        opts,args = getopt.getopt(sys.argv[1:],
-                                  "xr:s:uvf:hzo:",
-                                  ["reduction=","outfile=","height=","noupc",
-                                   "check","version","help","font=","quietzone"])
-    except:
-        printUsage()
-        sys.exit(0)
-
-    # some initial defaults:
-    isbn = "1-56592-197-6" # Mark Lutz, "Programming Python",
-                           # O'Reilly, Sebastopol CA, 1996
-    price = "90000"
-    font=None
-    zone=None
-    checkonly=None
-    outfile=None
-    heightMultiplier=1
-    commandLine = string.join(sys.argv)
-    barWidthReduction = 0
-
-    # parse command line:
-    for opt,val in opts:
-        if opt in ("-v","--version"):
-            printVersion()
-            sys.exit(0)
-        elif opt in ("-h","--help"):
-            printUsage()
-            sys.exit(0)
-        elif opt in ("-f","--font"):
-            font=val
-        elif opt in ("-z","--quietzone"):
-            zone=1
-        elif opt in ("-x","--check"):
-            checkonly=1
-        elif opt in ("-s","--height"):
-            heightMultiplier = float(val)
-        elif opt in ("-r","--reduction"):
-            barWidthReduction = val
-        elif opt in ("-o","--outfile"):
-            outfile=val
-    if len(args)==1:
-        isbn=args[0]
-    elif len(args)==2:
-        isbn=args[0]
-        price=args[1]
-
-    # Do stuff.
-
-    printVersion()
-    try:
-        b = bookland(isbn,price,font,zone,heightMultiplier,
-                     commandLine,barWidthReduction)
-        if not checkonly: b.ps.out(outfile)
-        if outfile:
-            sys.stderr.write("Output written to %s\n" % outfile)
-    except BooklandError, message:
-        sys.stderr.write(BooklandError + ": " + message + "\n")
-        sys.exit(1)
diff --git a/barcode-0.98/cmdline.c b/barcode-0.98/cmdline.c
deleted file mode 100644 (file)
index a69a825..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * cmdline.c -- parse a command line using getopt, environment and defaults
- *
- * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org)
- * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it)
- * 
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- *
- *   Changes:
- *      Michele Comitini (mcm@glisco.it): better handling of numeric type args.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef NO_GETOPT
-  /* use replacement */
-  #include "compat/getopt.h"
-#else
-  #include <getopt.h>
-#endif
-
-#include "cmdline.h"
-
-/* In case of error, print help string and return error (-1) */
-int commandline_errormsg(FILE *f, struct commandline *args,
-                                      char *prgname, char *messagehead)
-{
-    char *buffer;
-    char *buffer2;
-    int len;
-    struct commandline *ptr;
-
-    if (!messagehead) {
-       fprintf(f,"%s: Error in cmdline\nPossible options:\n",prgname);
-    } else {
-       fprintf(f,"%s: %s",prgname,messagehead);
-    }
-
-    for (ptr = args; ptr->option; ptr++) {
-       if (ptr->descrip) {
-           len = strlen(ptr->descrip);
-           len +=  ptr->default_v ? strlen(ptr->default_v) : 6;
-           len += ptr->env ? strlen(ptr->env) : 6;
-           buffer2 = malloc(len+3); /* 3 to be safe :) */
-           len += 32;
-           if (buffer2) {
-               buffer = malloc(len);
-               if (buffer) {
-                   sprintf(buffer2, ptr->descrip,
-                           ptr->default_v ? ptr->default_v : "(none)",
-                           ptr->env ? ptr->env : "(none)");
-                   sprintf(buffer, "   -%c %s     %s", ptr->option,
-                           ptr->type ? "<arg>" : "     ", buffer2);
-                   fprintf(f, "%s\n",buffer);
-                   free(buffer);
-               }
-               free(buffer2);
-           }
-       }
-    }
-    return -1;
-}
-
-/*
- * Associate formats to type.
- */
-struct type_fmt {
-    enum option_type type;
-    char *fmt;
-};
-static struct type_fmt formats[] = {
-    {CMDLINE_I, "%i%s"},   /* the trailing "%s" is used for error check */
-    {CMDLINE_D, "%d%s"},
-    {CMDLINE_X, "%x%s"},
-    {CMDLINE_O, "%o%s"},
-    {CMDLINE_F, "%lf%s"},
-    {CMDLINE_P, "%p%s"},
-    {0, NULL}  /* If we get here, it's CMDLINE_S: no sscanf buf strcpy() */
-};
-
-
-/* Parse one argument (default or provided) */
-static int commandline_oneopt(struct commandline *ptr, char *value)
-{
-    struct type_fmt *tptr;
-    char *trash = value ? strdup(value) : NULL;
-
-    /* convert it, if needed */
-    if ((ptr->type != CMDLINE_NONE) && ptr->result) {
-       for (tptr = formats; tptr->type; tptr++)
-           if (tptr->type == ptr->type)
-               break;
-       if (!tptr->type) /* not found: it is a string */
-           *(char **)(ptr->result) = value;
-       else
-           if (sscanf(value, tptr->fmt, ptr->result, trash)!=1) {
-               free(trash);
-               return -1;
-           }
-    }
-    if (trash)
-       free(trash);
-    
-    if ((ptr->type == CMDLINE_NONE) && ptr->result) /* no type, just count */
-       (*(int *)(ptr->result))++;
-
-    /* call the function, if needed */
-    if (ptr->fun) {
-       if (ptr->type) {
-           if (ptr->result) return ptr->fun(ptr->result); /* converted */
-           return ptr->fun(value); /* type, but not converted */
-       }
-       return ptr->fun(NULL); /* no type: just call it */
-    }
-    return 0;
-}
-
-/* The main function */
-int commandline(struct commandline *args, int argc, char **argv,
-               char *errorhead)
-{
-    struct commandline *ptr;
-    char *getopt_desc = (char *)calloc(512, 1);
-    int desc_offset = 0;
-    int opt, retval;
-    char *value;
-
-    /* Build getopt string and process defaults values */
-    for (ptr = args; ptr->option; ptr++) {
-       getopt_desc[desc_offset++] = ptr->option;
-       if (ptr->type) getopt_desc[desc_offset++] = ':';
-
-       value = NULL;
-       if (ptr->env)
-           value = getenv(ptr->env);
-       if (!value)
-           value = ptr->default_v;
-       if (value && (retval = commandline_oneopt(ptr, value))) {
-           /*
-            * if the function returns a specific (not -1) value, it already
-            * printed its message, so avoid the generic help
-            */
-           if (retval == -1)
-               commandline_errormsg(stderr, args, argv[0], errorhead);
-           return retval;
-       }
-    }
-
-    /* Run getopt and process material */
-    while ((opt = getopt(argc, argv, getopt_desc)) != -1) {
-       for (ptr = args; ptr->option; ptr++)
-           if (opt == ptr->option)
-               break;
-       if (!ptr->option) /* unknown option */
-           return commandline_errormsg(stderr, args, argv[0], errorhead);
-       if ( (retval = commandline_oneopt(ptr, optarg)) ) { /*  wrong arg */
-           if (retval == -1)
-               commandline_errormsg(stderr, args, argv[0], errorhead);
-           return retval;
-       }
-    }
-    return 0;
-}
diff --git a/barcode-0.98/cmdline.h b/barcode-0.98/cmdline.h
deleted file mode 100644 (file)
index 6931991..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * cmdline.h -- generic commandline editing (uses getopt, only short)
- *
- * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org)
- * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it)
- * 
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- *
- */
-
-/*
- * The options may have different arguments of different type
- */
-enum  option_type {
-    CMDLINE_NONE=0,  /* no argument after option */
-    CMDLINE_I,       /* integer (any base)       */
-    CMDLINE_D,       /* decimal integer          */
-    CMDLINE_X,       /* hex integer              */
-    CMDLINE_O,       /* octal integer            */
-    CMDLINE_S,       /* string                   */
-    CMDLINE_F,       /* double float             */
-    CMDLINE_P,       /* pointer                  */
-};
-
-
-struct commandline {
-    int option;         /* Single byte: option id */
-    int type;           /* Type of argument, used in sscanf */
-    void *result;       /* Store data here, if non null */
-    int (*fun)(void *); /* Call if defined: arg is "result" or input string */
-    char *env;          /* Where to get runtime defaults, may be NULL */
-    char *default_v;    /* The compile-time default, may be NULL */
-    char *descrip;      /* For err msg. May have %s's for default and env */
-};
-
-/* returns: 0 or -1. "optarg" is global (see getopt) */
-extern int commandline(struct commandline *args,
-                      int argc, char **argv, char *errorhead);
-
-/* prints an error message based on "args" */
-extern int commandline_errormsg(FILE *f, struct commandline *args,
-                               char *prgname, char *messagehead);
-
-
-
-
diff --git a/barcode-0.98/codabar.c b/barcode-0.98/codabar.c
deleted file mode 100644 (file)
index 7065b9e..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * codabar.c -- encoding for Codabar
- *
- * Copyright (c) 2000 Leonid A. Broukhis (leob@mailcom.com)
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-
-#include "barcode.h"
-
-
-/* this is ordered in decades to simplify encoding */
-static char alphabet[] = 
-   "0123456789" "-$:/.+ABCD";
-
-#define CODE_A 16
-#define CODE_B 17
-
-#define NARROW 12
-#define WIDE   14
-
-/* Patterns */
-static char *patterns[] = {
-"1111133","1111331","1113113","3311111","1131131",
-"3111131","1311113","1311311","1331111","3113111",
-"1113311","1133111","3111313","3131113","3131311",
-"1131313","1133131","1313113","1113133","1113331" };
-
-/*
- * Check that the text can be encoded. Returns 0 or -1.
- * If it's all lowecase convert to uppercase and accept it.
- * If the first character is a letter (A to D), the last one must be too;
- * no other character should be a letter.
- */
-int Barcode_cbr_verify(unsigned char *text)
-{
-    int i, lower=0, upper=0;
-    int startpresent = 0;
-
-    if (!strlen(text))
-       return -1;
-    for (i=0; text[i]; i++) {
-       char * pos;
-        if (isupper(text[i])) upper++;
-        if (islower(text[i])) lower++;
-       pos = strchr(alphabet,toupper(text[i]));
-        if (!pos)
-            return -1;
-       if (i == 0 && pos - alphabet >= CODE_A)
-           startpresent = 1;
-       else if (pos - alphabet >= CODE_A &&
-                (!startpresent || i != strlen(text) - 1))
-           return -1;  
-    }
-    if (lower && upper)
-        return -1;
-    return 0;
-}
-
-static int add_one(char *ptr, int code)
-{
-    sprintf(ptr,"1%s", /* separator */ patterns[code]);
-    return 0;
-}
-
-/*
- * The encoding functions fills the "partial" and "textinfo" fields.
- * Lowercase chars are converted to uppercase
- */
-int Barcode_cbr_encode(struct Barcode_Item *bc)
-{
-    static char *text;
-    static char *partial;  /* dynamic */
-    static char *textinfo; /* dynamic */
-    char *c, *ptr, *textptr;
-    int i, code, textpos, usesum, checksum = 0, startpresent;
-
-    if (bc->partial)
-       free(bc->partial);
-    if (bc->textinfo)
-       free(bc->textinfo);
-    bc->partial = bc->textinfo = NULL; /* safe */
-
-    if (!bc->encoding)
-       bc->encoding = strdup("codabar");
-
-    text = bc->ascii;
-    if (!text) {
-        bc->error = EINVAL;
-        return -1;
-    }
-    /* the partial code is 8 * (head + text + check + tail) + margin + term. */
-    partial = malloc( (strlen(text) + 3) * 8 + 2);
-    if (!partial) {
-        bc->error = errno;
-        return -1;
-    }
-
-    /* the text information is at most "nnn:fff:c " * (strlen + check) +term */
-    textinfo = malloc(10*(strlen(text) + 1) + 2);
-    if (!textinfo) {
-        bc->error = errno;
-        free(partial);
-        return -1;
-    }
-
-    ptr = partial;
-    textptr = textinfo;
-    textpos = 0;
-    usesum = bc->flags & BARCODE_NO_CHECKSUM ? 0 : 1;
-    /* if no start character specified, A is used as a start character */
-    if (!isalpha(text[0])) {
-       add_one(ptr, CODE_A);
-       ptr += strlen(ptr);
-       textpos = WIDE;
-       checksum = CODE_A;
-       startpresent = 0;
-    } else {
-       startpresent = 1;
-    }
-    for (i=0; i<strlen(text); i++) {
-        c = strchr(alphabet, toupper(text[i]));
-        if (!c) {
-            bc->error = EINVAL; /* impossible if text is verified */
-            free(partial);
-            free(textinfo);
-            return -1;
-        }
-        code = c - alphabet;
-        add_one(ptr, code);
-        sprintf(textptr, "%i:12:%c ", textpos, toupper(text[i]));
-        textpos += code < 12 ? NARROW : WIDE;
-        textptr += strlen(textptr);
-        ptr += strlen(ptr); 
-       checksum += code;
-       if (startpresent && usesum && i == strlen(text) - 2) {
-           /* stuff a check symbol before the stop */
-           c = strchr(alphabet, toupper(text[i+1]));
-           if (!c) /* impossible */
-               continue;
-           code = c - alphabet;
-           checksum += code;
-
-           /* Complement to a multiple of 16 */
-           checksum = (checksum + 15) / 16 * 16 - checksum;
-           add_one(ptr, checksum);
-           ptr += strlen(ptr);
-       }
-    }
-    if (!startpresent) {
-       if (usesum) {
-           /* if no start character specified, B is used as a stop char */
-           checksum += CODE_B;
-           checksum = (checksum + 15) / 16 * 16 - checksum;
-           add_one(ptr, checksum);
-           ptr += strlen(ptr);
-       }
-       add_one(ptr, CODE_B);
-    }
-    bc->partial = partial;
-    bc->textinfo = textinfo;
-
-    return 0;
-}
diff --git a/barcode-0.98/code128.c b/barcode-0.98/code128.c
deleted file mode 100644 (file)
index cebba54..0000000
+++ /dev/null
@@ -1,607 +0,0 @@
-/*
- * code128.c -- encoding for code128 (A, B, C)
- *
- * Copyright (c) 1999,2000 Alessandro Rubini (rubini@gnu.org)
- * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it)
- * Copyright (c) 2000 Leonid A. Broukhis (leob@mailcom.com)
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-
-#include "barcode.h"
-
-static char *codeset[] = {
-    "212222", "222122", "222221", "121223", "121322",  /*  0 -  4 */
-    "131222", "122213", "122312", "132212", "221213",
-    "221312", "231212", "112232", "122132", "122231",  /* 10 - 14 */
-    "113222", "123122", "123221", "223211", "221132",
-    "221231", "213212", "223112", "312131", "311222",  /* 20 - 24 */
-    "321122", "321221", "312212", "322112", "322211",
-    "212123", "212321", "232121", "111323", "131123",  /* 30 - 34 */
-    "131321", "112313", "132113", "132311", "211313",
-    "231113", "231311", "112133", "112331", "132131",  /* 40 - 44 */
-    "113123", "113321", "133121", "313121", "211331",
-    "231131", "213113", "213311", "213131", "311123",  /* 50 - 54 */
-    "311321", "331121", "312113", "312311", "332111",
-    "314111", "221411", "431111", "111224", "111422",  /* 60 - 64 */
-    "121124", "121421", "141122", "141221", "112214",
-    "112412", "122114", "122411", "142112", "142211",  /* 70 - 74 */
-    "241211", "221114", "413111", "241112", "134111",
-    "111242", "121142", "121241", "114212", "124112",  /* 80 - 84 */
-    "124211", "411212", "421112", "421211", "212141",
-    "214121", "412121", "111143", "111341", "131141",  /* 90 - 94 */
-    "114113", "114311", "411113", "411311", "113141",
-    "114131", "311141", "411131", "b1a4a2", "b1a2a4",  /* 100 - 104 */
-    "b1a2c2", "b3c1a1b"
-};
-
-#define START_A 103
-#define START_B 104
-#define START_C 105
-#define STOP    106
-#define SHIFT    98 /* only A and B */
-#define CODE_A  101 /* only B and C */
-#define CODE_B  100 /* only A and C */
-#define CODE_C   99 /* only A and B */
-#define FUNC_1  102 /* all of them */
-#define FUNC_2   97 /* only A and B */
-#define FUNC_3   96 /* only A and B */
-/* FUNC_4 is CODE_A when in A and CODE_B when in B */
-
-#define SYMBOL_WID 11 /* all of them are 11-bar wide */
-
-/*
- * code 128-b includes all printable ascii chars
- */
-
-int Barcode_128b_verify(unsigned char *text)
-{
-    if (text[0] == '\0')
-       return -1;
-    while (*text && *text>=32 && !(*text&0x80))
-       text++;
-    if (*text)
-       return -1; /* a non-ascii char */
-    return 0; /* ok */
-}
-
-int Barcode_128b_encode(struct Barcode_Item *bc)
-{
-    static char *text;
-    static char *partial;  /* dynamic */
-    static char *textinfo; /* dynamic */
-    char *textptr;
-    int i, code, textpos, checksum = 0;
-
-    if (bc->partial)
-       free(bc->partial);
-    if (bc->textinfo)
-       free(bc->textinfo);
-    bc->partial = bc->textinfo = NULL; /* safe */
-
-    if (!bc->encoding)
-       bc->encoding = strdup("code 128-B");
-
-    text = bc->ascii;
-    if (!text) {
-        bc->error = EINVAL;
-        return -1;
-    }
-    /* the partial code is 6* (head + text + check + tail) + final + term. */
-    partial = malloc( (strlen(text) + 4) * 6 +2);
-    if (!partial) {
-        bc->error = errno;
-        return -1;
-    }
-
-    /* the text information is at most "nnn:fff:c " * strlen +term */
-    textinfo = malloc(10*strlen(text) + 2);
-    if (!textinfo) {
-        bc->error = errno;
-        free(partial);
-        return -1;
-    }
-
-    /* up to now, it was the same code as other encodings */
-
-    strcpy(partial, "0"); /* the first space */
-    strcat(partial, codeset[START_B]);
-    checksum += START_B; /* the start char is counted in the checksum */
-    textptr = textinfo;
-    textpos = SYMBOL_WID;
-
-    for (i=0; i<strlen(text); i++) {
-        if ( text[i] < 32 || (text[i] & 0x80)) {
-            bc->error = EINVAL; /* impossible if text is verified */
-            free(partial);
-            free(textinfo);
-            return -1;
-        }
-       code = text[i]-32;
-       strcat(partial, codeset[code]);
-       checksum += code * (i+1); /* first * 1 + second * 2 + third * 3... */
-        sprintf(textptr, "%i:12:%c ", textpos, text[i]);
-        textptr += strlen(textptr);
-        textpos += SYMBOL_WID; /* width of each code */
-    }
-    /* Add the checksum, independent of BARCODE_NO_CHECKSUM */
-    checksum %= 103;
-    strcat(partial, codeset[checksum]);
-    /* and the end marker */
-    strcat(partial, codeset[STOP]);
-
-    bc->partial = partial;
-    bc->textinfo = textinfo;
-
-    return 0;
-}
-
-/*
- * code 128-c is only digits, but two per symbol
- */
-
-int Barcode_128c_verify(unsigned char *text)
-{
-    if (text[0] == '\0')
-       return -1;
-    /* must be an even number of digits */
-    if (strlen(text)%2)
-       return -1;
-    /* and must be all digits */
-    for (; *text; text++)
-       if (!isdigit(*text))
-           return -1;
-    return 0;
-}
-
-int Barcode_128c_encode(struct Barcode_Item *bc)
-{
-    static char *text;
-    static char *partial;  /* dynamic */
-    static char *textinfo; /* dynamic */
-    char *textptr;
-    int i, code, textpos, checksum = 0;
-
-    if (bc->partial)
-       free(bc->partial);
-    if (bc->textinfo)
-       free(bc->textinfo);
-    bc->partial = bc->textinfo = NULL; /* safe */
-
-    if (!bc->encoding)
-       bc->encoding = strdup("code 128-C");
-
-    text = bc->ascii;
-    if (!text) {
-        bc->error = EINVAL;
-        return -1;
-    }
-    /* the partial code is 6* (head + text + check + tail) + final + term. */
-    partial = malloc( (strlen(text) + 3) * 6 +2);
-    if (!partial) {
-        bc->error = errno;
-        return -1;
-    }
-
-    /* the text information is at most "nnn.5:fff:c " * strlen +term */
-    textinfo = malloc(12*strlen(text) + 2);
-    if (!textinfo) {
-        bc->error = errno;
-        free(partial);
-        return -1;
-    }
-
-    strcpy(partial, "0"); /* the first space */
-    strcat(partial, codeset[START_C]);
-    checksum += START_C; /* the start char is counted in the checksum */
-    textptr = textinfo;
-    textpos = SYMBOL_WID;
-
-    for (i=0; text[i]; i+=2) {
-        if (!isdigit(text[i]) || !isdigit(text[i+1])) {
-            bc->error = EINVAL; /* impossible if text is verified */
-            free(partial);
-            free(textinfo);
-            return -1;
-        }
-        code = (text[i]-'0') * 10 + text[i+1]-'0';
-       strcat(partial, codeset[code]);
-       checksum += code * (i/2+1); /* first * 1 + second * 2 + third * 3... */
-
-       /* print as "%s", because we have ".5" positions */
-        sprintf(textptr, "%g:9:%c %g:9:%c ", (double)textpos, text[i],
-               textpos + (double)SYMBOL_WID/2, text[i+1]);
-        textptr += strlen(textptr);
-        textpos += SYMBOL_WID; /* width of each code */
-    }
-    /* Add the checksum, independent of BARCODE_NO_CHECKSUM */
-    checksum %= 103;
-    strcat(partial, codeset[checksum]);
-    /* and the end marker */
-    strcat(partial, codeset[STOP]);
-
-    bc->partial = partial;
-    bc->textinfo = textinfo;
-
-    return 0;
-}
-
-/*
- * generic (full-featured) code128 implementation: it selects between
- * A, B, C according to the data being encoded. F1, F2, F3, F4 are expressed
- * using ascii chars 0xc1, 0xc2, 0xc3, 0xc4 (0301, 0302, 0303, 0304).
- * Char '\0' is expressed by 0x80 (0200).
- */
-
-int Barcode_128_verify(unsigned char *text)
-{
-    if (text[0] == '\0')
-       return -1;
-    while (*text && (*text<=0x80 || (*text >= 0xc1 && *text <= 0xc4)))
-       text++;
-    if (*text)
-       return -1; /* unencodable character */
-    return 0; /* ok */
-}
-
-
-/*
- * These functions are extracted from Barcode_128_encode for clarity.
- * It deals with choosing the symbols used to represent the text
- * and returns a dynamic array of integers, terminated by -1.
- *
- * The algorithm used in choosing the codes comes from App 2 of
- * "El Codigo Estandar EAN/UCC 128", courtesy of AECOC, Spain.
- * Thanks to Dani Pardo for getting permission and giving me a copy
- * of the document
- */
-
-#define NEED_CODE_A(c) ((c)<32 || (c)==0x80) 
-#define NEED_CODE_B(c) ((c)>=96 && (c)<128)
-
-static int Barcode_a_or_b(unsigned char *text)
-{
-    for ( ; *text; text++) {
-       if (NEED_CODE_A(*text))
-           return 'A';
-       if (NEED_CODE_B(*text))
-           return 'B';
-    }
-    return 0; /* any */
-}
-
-/* code is either 'A' or 'B', and value must be valid */
-static int Barcode_encode_as(int code, int value)
-{
-
-    /* first check the special chars */
-    if (value == 0xC1) return FUNC_1;
-    if (value == 0xC2) return FUNC_2;
-    if (value == 0xC3) return FUNC_3;
-    if (value == 0xC4) { /* F4 */
-       if (code == 'A') return CODE_A;
-       return CODE_B;
-    }
-
-    /* then check ascii values */
-    if (value >= 0x20 && value <= 0x5F)
-       return value - 0x20; /* both codes */
-    if (value == 0x80) return 64; /* code A */
-    if (value < 0x20) return value+64; /* code A */
-    if (value >= 0x60) return value - 0x20; /* code B */
-    /* can't happen */
-    return -1;
-}
-
-static int *Barcode_128_make_array(struct Barcode_Item *bc, int *lptr)
-{
-    int len, *codes;
-    unsigned char *s;
-    int i=0, j, code, checksum;
-
-    /* allocate twice the text length + 5, as this is the worst case */
-    len = 2 * strlen(bc->ascii) + 5;
-    codes = malloc(len * sizeof(int));
-    s = bc->ascii;
-
-    /* choose the starting code */
-    if (s[2]=='\0' && isdigit(s[0]) && isdigit(s[1])) {
-      code = 'C';
-    } else if (isdigit(s[0])&&isdigit(s[1]) && isdigit(s[2])&&isdigit(s[3])) {
-       code = 'C';
-    } else {
-       code = Barcode_a_or_b(s);
-       if (!code) code = 'B'; /* default */
-    }
-    codes[i++] = START_A + code - 'A';
-    
-    for (s = bc->ascii; *s; /* increments are in the loop */) {
-       switch(code) {
-
-           case 'C':
-               if (s[0] == 0xC1) { /* F1 is valid */
-                   codes[i++] = FUNC_1;
-                   s++;
-               } else if (isdigit(s[0]) && isdigit(s[1])) {
-                   /* encode two digits */
-                   codes[i++] = (s[0]-'0') * 10 + s[1]-'0';
-                   s += 2;
-               } else {
-                   /* change code */
-                   code = Barcode_a_or_b(s);
-                   if (!code) code = 'B';
-                   codes[i++] = (code == 'A') ? CODE_A : CODE_B;
-               }
-               break;
-                   
-           case 'B':
-           case 'A':
-               for (j=0; isdigit(s[j]); j++)
-                   ;
-               if (j>=4) { /* if there are 4 or more digits, turn to C */
-                   if (j&1) {
-                       /* odd number: encode one first */
-                       codes[i++] = *(s++) - ' ';
-                   }
-                   codes[i++] = CODE_C;
-                   code = 'C';
-               } else if (code == 'A' && NEED_CODE_B(*s)) {
-                   /* check whether we should use SHIFT or change code */
-                   j = Barcode_a_or_b(s+1);
-                   if (j == 'B') {
-                       codes[i++] = CODE_B;
-                       code = 'B';
-                   } else {
-                       codes[i++] = SHIFT;
-                       codes[i++] = Barcode_encode_as('B', *s);
-                       s++;
-                   }
-               } else if (code == 'B' && NEED_CODE_A(*s)) {
-                   /* check whether we should use SHIFT or change code */
-                   j = Barcode_a_or_b(s+1);
-                   if (j == 'A') {
-                       codes[i++] = CODE_A;
-                       code = 'A';
-                   } else {
-                       codes[i++] = SHIFT;
-                       codes[i++] = Barcode_encode_as('A', *s);
-                       s++;
-                   }
-               } else {
-                   codes[i++] = Barcode_encode_as(code, *s);
-                   s++;
-               }
-               break;
-       }           
-    }
-    /* add the checksum */
-    checksum = codes[0];
-    for (j=1; j<i; j++)
-       checksum += j * codes[j];
-    checksum %= 103;
-    codes[i++] = checksum;
-    codes[i++] = STOP;
-    if (i > len) {
-       fprintf(stderr, "impossible: length is > allocated len\n");
-    }
-    *lptr = i;
-    return codes;
-}
-
-/*
- * Encoding is tricky, in that we cannot print the ascii
- * representation in an easy way. Therefore, just skip non-printable
- * chars and try to fit the rest somehow.
- */
-int Barcode_128_encode(struct Barcode_Item *bc)
-{
-    static char *text;
-    static char *partial;  /* dynamic */
-    static char *textinfo; /* dynamic */
-    char *textptr;
-    int *codes; /* dynamic */
-    int i, c, len;
-    double textpos, size, step;
-
-    if (bc->partial)
-       free(bc->partial);
-    if (bc->textinfo)
-       free(bc->textinfo);
-    bc->partial = bc->textinfo = NULL; /* safe */
-
-    if (!bc->encoding)
-       bc->encoding = strdup("code 128");
-
-    text = bc->ascii;
-    if (!text) {
-        bc->error = EINVAL;
-        return -1;
-    }
-
-    codes = Barcode_128_make_array(bc, &len);
-    if (!codes) return -1;
-
-    /* the partial code is 6*codelen + ini + term (+margin) */
-    partial = malloc( 6 * len + 4);
-    if (!partial) {
-        bc->error = errno;
-       free(codes);
-        return -1;
-    }
-
-    /* the text information is at most "nnn.n:ff.f:c " * strlen +term */
-    textptr = textinfo = malloc(13*strlen(text) + 2);
-    if (!textinfo) {
-        bc->error = errno;
-        free(partial);
-       free(codes);
-        return -1;
-    }
-
-    /* up to now, it was almost the same code as other encodings */
-
-    strcpy(partial, "0"); /* the first space */
-    for (i=0; i<len; i++) /* the symbols */
-       strcat(partial, codeset[codes[i]]);
-
-    /* avoid bars that fall lower than other bars */
-    for (i=0; partial[i]; i++)
-       if (isalpha(partial[i]))
-           partial[i] += '1' - 'a';
-
-    /*
-     * the accompanying text: reserve a space for every char.
-     * F[1-4] are rendered as spaces (separators), other unprintable chars
-     * are rendered as underscoress (placeholders)
-     */
-
-    /*
-     * A size of 9 is good for code-C (used above), so 18 for each symbol,
-     * but we place an upper limit of 12 to avoid overlapping on the bars.
-     */
-    size = (int)(180.0 * (len-3) / strlen(text) + .5) / 10.0;
-    if (size > 12.0) size = 12.0;
-
-    /* align the text to the left, using its natural size */
-    step = (int)(10 * (size/18.0 * SYMBOL_WID) + .5) / 10.0;
-    textpos = SYMBOL_WID;
-
-    for (i=0; i<strlen(text); i++) {
-       c = text[i];
-       if (c < 32 || c == 0x80) c = '_'; /* not printable */
-       if (c > 0xc0) c = ' '; /* F code */
-        sprintf(textptr, "%g:%g:%c ", textpos, size, c);
-        textptr += strlen(textptr);
-        textpos += step;
-    }
-
-    bc->partial = partial;
-    bc->textinfo = textinfo;
-    free(codes);
-    return 0;
-}
-
-/*
- * A raw 128 code is given as a sequence of space separated numbers
- * from 0 to 105, starting from the start code to be (Leonid)
- */
-
-int Barcode_128raw_verify(unsigned char *text)
-{
-    int n;
-    unsigned val;
-
-    if (!strlen(text))
-       return -1;
-    while (*text) {
-       if (sscanf(text, "%u%n", &val, &n) < 1)
-           return -1;
-       if (val > 105)
-           return -1;
-       text += n;
-    }
-    return 0;
-}
-
-int Barcode_128raw_encode(struct Barcode_Item *bc)
-{
-    static char *text;
-    static char *partial;  /* dynamic */
-    static char *textinfo; /* dynamic */
-    char *textptr;
-    int i, n, count, code, textpos, checksum = 0;
-
-    if (bc->partial)
-       free(bc->partial);
-    if (bc->textinfo)
-       free(bc->textinfo);
-    bc->partial = bc->textinfo = NULL; /* safe */
-
-    if (!bc->encoding)
-       bc->encoding = strdup("128raw");
-
-    text = bc->ascii;
-    if (!text) {
-        bc->error = EINVAL;
-        return -1;
-    }
-    /*
-     * length of partial code is unknown in advance, but it is
-     * at most  6* (1+text/2 + check + tail) + final + terminator
-     */
-    partial = malloc( (3+ strlen(text)/2) * 6 + 2);
-    if (!partial) {
-        bc->error = errno;
-        return -1;
-    }
-
-    /* the text information is at most "nnn.5:fff:c " * 1+strlen/2 +term */
-    textinfo = malloc(12 * (1+strlen(text)/2) + 2);
-    if (!textinfo) {
-        bc->error = errno;
-        free(partial);
-        return -1;
-    }
-
-    strcpy(partial, "0"); /* the first space */
-    textptr = textinfo;
-    textpos = 0;
-
-    for (i=0, count = 0; i < strlen(text); count++) {
-       if (sscanf(text + i, "%u%n", &code, &n) < 1) {
-            bc->error = EINVAL; /* impossible if text is verified */
-            free(partial);
-            free(textinfo);
-            return -1;
-       }
-       strcat(partial, codeset[code]);
-       
-       /*
-        * since the start code is part of the "raw" input, it is
-        * counted in the checksum by itself
-        */
-       if (!count) checksum += code; /* the start code */
-       else        checksum += code * count; /* first * 1 + second * 2 ... */
-
-       /*
-        * print as "%s", because we have ".5" positions
-        * also, use a size of 9 like codeC above, as each symbol is
-        * represented by two chars
-        */
-        sprintf(textptr, "%g:9:%c %g:9:%c ", (double)textpos, 
-               code >= 100 ? 'A' : code/10 + '0',
-               textpos + (double)SYMBOL_WID/2, code%10 + '0');
-        textptr += strlen(textptr);
-        textpos += SYMBOL_WID; /* width of each code */
-       i += n;
-    }
-    /* Add the checksum, independent of BARCODE_NO_CHECKSUM */
-    checksum %= 103;
-    strcat(partial, codeset[checksum]);
-    /* and the end marker */
-    strcat(partial, codeset[STOP]);
-
-    bc->partial = partial;
-    bc->textinfo = textinfo;
-
-    return 0;
-}
-
diff --git a/barcode-0.98/code39.c b/barcode-0.98/code39.c
deleted file mode 100644 (file)
index 3308c95..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * code39.c -- encoding for code39
- *
- * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org)
- * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it)
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-
-#include "barcode.h"
-
-
-/* this is ordered in decades to simplify encoding */
-static char alphabet[] = 
-   "1234567890" "ABCDEFGHIJ" "KLMNOPQRST" "UVWXYZ-. *" "$/+%";
-
-/* the checksum alphabet has a different order */
-static char checkbet[] = 
-   "0123456789" "ABCDEFGHIJ" "KLMNOPQRST" "UVWXYZ-. $" "/+%";
-
-/* The first 40 symbols repeat this bar pattern */
-static char *bars[] = {
-   "31113","13113","33111","11313","31311",
-   "13311","11133","31131","13131","11331"};
-
-/* The first 4 decades use these space patterns */
-static char *spaces[] = {"1311","1131","1113","3111"};
-
-/* the last four symbols are special */
-static char *specialbars[] = {
-   "11111","11111","11111","11111"};
-
-static char *specialspaces[] = {
-   "3331","3313","3133","1333"};
-
-static char *fillers[]= {
-    "0a3a1c1c1a",
-    "1a3a1c1c1a"
-};
-
-
-/*
- * Check that the text can be encoded. Returns 0 or -1.
- * If it's all lowecase convert to uppercase and accept it
- */
-int Barcode_39_verify(unsigned char *text)
-{
-    int i, lower=0, upper=0;
-
-    if (text[0] == '\0')
-       return -1;
-    for (i=0; text[i]; i++) {
-        if (isupper(text[i])) upper++;
-        if (islower(text[i])) lower++;
-        if (!strchr(alphabet,toupper(text[i])))
-            return -1;
-    }
-    if (lower && upper)
-        return -1;
-    return 0;
-}
-
-static int add_one(char *ptr, int code)
-{
-    char *b, *s;
-
-    if (code < 40) {
-        b = bars[code%10];
-        s = spaces[code/10];
-    } else {
-        b = specialbars[code-40];
-        s = specialspaces[code-40];
-    }
-    sprintf(ptr,"1%c%c%c%c%c%c%c%c%c", /* separator */
-            b[0], s[0], b[1], s[1], b[2], s[2],
-            b[3], s[3], b[4]);
-    return 0;
-}
-
-/*
- * The encoding functions fills the "partial" and "textinfo" fields.
- * Lowercase chars are converted to uppercase
- */
-int Barcode_39_encode(struct Barcode_Item *bc)
-{
-    static char *text;
-    static char *partial;  /* dynamic */
-    static char *textinfo; /* dynamic */
-    char *c, *ptr, *textptr;
-    int i, code, textpos, checksum = 0;
-
-    if (bc->partial)
-       free(bc->partial);
-    if (bc->textinfo)
-       free(bc->textinfo);
-    bc->partial = bc->textinfo = NULL; /* safe */
-
-    if (!bc->encoding)
-       bc->encoding = strdup("code 39");
-
-    text = bc->ascii;
-    if (!text) {
-        bc->error = EINVAL;
-        return -1;
-    }
-    /* the partial code is 10* (head + text + check + tail) + margin + term. */
-    partial = malloc( (strlen(text) + 3) * 10 +2);
-    if (!partial) {
-        bc->error = errno;
-        return -1;
-    }
-
-    /* the text information is at most "nnn:fff:c " * strlen +term */
-    textinfo = malloc(10*strlen(text) + 2);
-    if (!textinfo) {
-        bc->error = errno;
-        free(partial);
-        return -1;
-    }
-
-    strcpy(partial, fillers[0]);
-    ptr = partial + strlen(partial);
-    textptr = textinfo;
-    textpos = 22;
-
-    for (i=0; text[i]; i++) {
-        c = strchr(alphabet, toupper(text[i]));
-        if (!c) {
-            bc->error = EINVAL; /* impossible if text is verified */
-            free(partial);
-            free(textinfo);
-            return -1;
-        }
-        code = c - alphabet;
-        add_one(ptr, code);
-        c = strchr(checkbet,*c);
-        if (c) /* the '*' is not there */
-            checksum += (c-checkbet);
-        sprintf(textptr, "%i:12:%c ", textpos, toupper(text[i]));
-        
-        textpos += 16; /* width of each code */
-        textptr += strlen(textptr);
-        ptr += strlen(ptr); 
-    }
-    /* Add the checksum */
-    if ( (bc->flags & BARCODE_NO_CHECKSUM)==0 ) {
-       code = (strchr(alphabet, checkbet[checksum % 43]) - alphabet);
-       add_one(ptr, code);
-    }
-    strcat(ptr, fillers[1]); /* end */
-    bc->partial = partial;
-    bc->textinfo = textinfo;
-
-    return 0;
-}
diff --git a/barcode-0.98/code93.c b/barcode-0.98/code93.c
deleted file mode 100644 (file)
index 73f8cee..0000000
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * code39.c -- encoding for code39
- *
- * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org) 
- * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it)
- * Copyright (c) 2001 Nathan D. Holmes / FedEx Services (ndholmes@fedex.com) 
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-
-#include "barcode.h"
-
-
-/* this is ordered in decades to simplify encoding */
-static char alphabet[] = 
-   "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%";
-
-static char *codeset[] = {
-       "131112", "111213", "111312", "111411", "121113",  /*  0  -  4 */
-       "121212", "121311", "111114", "131211", "141111",  /*  5  -  9 */
-       "211113", "211212", "211311", "221112", "221211",  /*  A  -  E */
-       "231111", "112113", "112212", "112311", "122112",  /*  F  -  J */
-       "132111", "111123", "111222", "111321", "121122",  /*  K  -  O */
-       "131121", "212112", "212211", "211122", "211221",  /*  P  -  T */
-       "221121", "222111", "112122", "112221", "122121",  /*  U  -  Y */
-       "123111", "121131", "311112", "311211", "321111",  /*  Z  -  $ */
-       "112131", "113121", "211131", "121221", "312111",  /*  /  - (%) */
-       "311121", "122211", "111141"                       /* (/) -  (terminator) */
-};
-
-
-/*      00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111 */
-/*      00000000001111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000111111111122222222 */
-/*      01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567 */
-static char shiftset[] =
-       "%$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%% ///  ///// /             /%%%%%%                          %%%%%%++++++++++++++++++++++++++%%%%%";
-static char shiftset2[] =
-       "UABCDEFGHIJKLMNOPQRSTUVWXYZABCDE ABC  FGHIJ L             ZFGHIJV                          KLMNOWABCDEFGHIJLKMNOPQRSTUVWXYZPQRST";
-
-#define START_STOP 47
-#define EXTEND_DOLLAR   43
-#define EXTEND_PERCENT   44
-#define EXTEND_SLASH   45
-#define EXTEND_PLUS   46
-
-/*
- * Check that the text can be encoded. Returns 0 or -1.
- * All of ASCII-7 is accepted.
- */
-int Barcode_93_verify(unsigned char *text)
-{
-    int i;
-
-    if (!strlen(text))
-       return -1;
-    for (i=0; text[i]; i++) {
-
-        /* Test if beyond the range of 7-bit ASCII */
-        if ((int)text[i] > 127)
-            return -1;
-    }
-    return 0;
-}
-
-/*
- * The encoding functions fills the "partial" and "textinfo" fields.
- * Lowercase chars are converted to uppercase
- */
-int Barcode_93_encode(struct Barcode_Item *bc)
-{
-    static unsigned char *text;
-    static char *partial;  /* dynamic */
-    static char *textinfo; /* dynamic */
-    char *c, *textptr;
-    int *checksum_str;
-    int i, code, textpos, checksum_len=0;
-    int c_checksum = 0;
-    int k_checksum = 0;
-
-    if (bc->partial)
-       free(bc->partial);
-    if (bc->textinfo)
-       free(bc->textinfo);
-    bc->partial = bc->textinfo = NULL; /* safe */
-
-    if (!bc->encoding)
-       bc->encoding = strdup("code 93");
-
-    text = bc->ascii;
-    if (!text) {
-        bc->error = EINVAL;
-        return -1;
-    }
-
-    /* the partial code is 6 * (head + 2* text + 2* check + tail) + margin + term. */
-    partial = malloc( (strlen(text) *2 + 4) * 6 +2);
-    if (!partial) {
-        bc->error = errno;
-        return -1;
-    }
-
-    checksum_str = (int *)malloc( (strlen(text) + 3) * 2 * sizeof(int));
-    if (!checksum_str) {
-       free(partial);
-        bc->error = errno;
-        return -1;
-    }
-
-    /* the text information is at most "nnn:fff:c " * strlen +term */
-    textinfo = malloc(10*strlen(text) + 2);
-    if (!textinfo) {
-        bc->error = errno;
-        free(partial);
-       free(checksum_str);
-        return -1;
-    }
-
-    textptr = textinfo;
-    textpos = 22;
-    strcpy(partial, "0");
-    strcat(partial, codeset[START_STOP]);
-
-    for (i=0; i<strlen(text); i++) {
-        c = strchr(alphabet, text[i]);
-        if (!c) {
-           /* Encode the shift character */
-          switch(shiftset[text[i]])
-           {
-              case '$':
-                 code = EXTEND_DOLLAR;
-                 break;
-              case '%':
-                 code = EXTEND_PERCENT;
-                 break;
-              case '/':
-                 code = EXTEND_SLASH;
-                 break;
-              case '+':
-                 code = EXTEND_PLUS;
-                 break;
-              default:
-                 code = 0;
-                 break;
-           }
-
-           strcat(partial, codeset[code]);
-           checksum_str[checksum_len++] = code;
-
-           /* Encode the second character */
-           code = strchr(alphabet, shiftset2[text[i]]) - alphabet;
-           strcat(partial, codeset[code]);
-           checksum_str[checksum_len++] = code;
-        } else {
-            /* Character is natively supported by the symbology, encode directly */
-            code = c - alphabet;
-            strcat(partial, codeset[c -alphabet]);
-            checksum_str[checksum_len++] = code;
-        }
-        sprintf(textptr, "%i:12:%c ", textpos, text[i]);
-        textptr += strlen(textptr);
-       /*
-        * width of each code is 9; composed codes are 18, but aligning
-        * the text behind the right bars would be ugly, so use 9 anyways
-        */
-        textpos += 9;
-    }
-    c_checksum=0;
-    k_checksum=0;
-
-    /* Add the checksum */
-    if ( (bc->flags & BARCODE_NO_CHECKSUM)==0 ) 
-    {
-        for(i=1; i<=checksum_len; i++)
-        {
-           c_checksum += i * (int)checksum_str[checksum_len - i];
-           k_checksum += (i+1) * (int)checksum_str[checksum_len - i];
-        }
-
-        c_checksum = c_checksum % 47;
-        k_checksum += c_checksum;                           
-        k_checksum = k_checksum % 47;
-
-        strcat(partial, codeset[c_checksum]);
-        strcat(partial, codeset[k_checksum]);
-
-    }
-    strcat(partial, codeset[START_STOP]); /* end */
-
-    /* Encodes final 1-unit width bar to turn the start character into a stop char */
-    strcat(partial, "1");
-    bc->partial = partial;
-    bc->textinfo = textinfo;
-
-    return 0;
-}
diff --git a/barcode-0.98/compat/getopt.c b/barcode-0.98/compat/getopt.c
deleted file mode 100644 (file)
index 91f00b5..0000000
+++ /dev/null
@@ -1,831 +0,0 @@
-/* Getopt for GNU.
-   NOTE: getopt is now part of the C library, so if you don't know what
-   "Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu
-   before changing it!
-
-   Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 1996
-       Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify it
-   under the terms of the GNU General Public License as published by the
-   Free Software Foundation; either version 2, or (at your option) any
-   later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-\f
-/* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.
-   Ditto for AIX 3.2 and <stdlib.h>.  */
-#ifndef _NO_PROTO
-#define _NO_PROTO
-#endif
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#if !defined (__STDC__) || !__STDC__
-/* This is a separate conditional since some stdc systems
-   reject `defined (const)'.  */
-#ifndef const
-#define const
-#endif
-#endif
-
-#include <stdio.h>
-
-/* Comment out all this code if we are using the GNU C Library, and are not
-   actually compiling the library itself.  This code is part of the GNU C
-   Library, but also included in many other GNU distributions.  Compiling
-   and linking in this code is a waste when using the GNU C library
-   (especially if it is a shared library).  Rather than having every GNU
-   program understand `configure --with-gnu-libc' and omit the object files,
-   it is simpler to just do this in the source for each such file.  */
-
-#if defined (_LIBC) || !defined (__GNU_LIBRARY__)
-
-
-/* This needs to come after some library #include
-   to get __GNU_LIBRARY__ defined.  */
-#ifdef __GNU_LIBRARY__
-/* Don't include stdlib.h for non-GNU C libraries because some of them
-   contain conflicting prototypes for getopt.  */
-#include <stdlib.h>
-#if defined (_LIBC) || defined (HAVE_UNISTD_H)
-#include <unistd.h>
-#endif
-#endif /* GNU C library.  */
-
-#ifdef VMS
-#include <unixlib.h>
-#if HAVE_STRING_H - 0
-#include <string.h>
-#endif
-#endif
-
-#ifdef WIN32
-/* It's not Unix, really.  See?  Capital letters.  */
-#include <windows.h>
-#define getpid() GetCurrentProcessId()
-#endif
-
-#ifndef _
-/* This is for other GNU distributions with internationalized messages.
-   When compiling libc, the _ macro is predefined.  */
-#ifdef HAVE_LIBINTL_H
-# include <libintl.h>
-# define _(msgid)      gettext (msgid)
-#else
-# define _(msgid)      (msgid)
-#endif
-#endif
-
-/* This version of `getopt' appears to the caller like standard Unix `getopt'
-   but it behaves differently for the user, since it allows the user
-   to intersperse the options with the other arguments.
-
-   As `getopt' works, it permutes the elements of ARGV so that,
-   when it is done, all the options precede everything else.  Thus
-   all application programs are extended to handle flexible argument order.
-
-   Setting the environment variable POSIXLY_CORRECT disables permutation.
-   Then the behavior is completely standard.
-
-   GNU application programs can use a third alternative mode in which
-   they can distinguish the relative order of options and other arguments.  */
-
-#include "getopt.h"
-
-/* For communication from `getopt' to the caller.
-   When `getopt' finds an option that takes an argument,
-   the argument value is returned here.
-   Also, when `ordering' is RETURN_IN_ORDER,
-   each non-option ARGV-element is returned here.  */
-
-char *optarg = NULL;
-
-/* Index in ARGV of the next element to be scanned.
-   This is used for communication to and from the caller
-   and for communication between successive calls to `getopt'.
-
-   On entry to `getopt', zero means this is the first call; initialize.
-
-   When `getopt' returns EOF, this is the index of the first of the
-   non-option elements that the caller should itself scan.
-
-   Otherwise, `optind' communicates from one call to the next
-   how much of ARGV has been scanned so far.  */
-
-/* XXX 1003.2 says this must be 1 before any call.  */
-int optind = 0;
-
-/* The next char to be scanned in the option-element
-   in which the last option character we returned was found.
-   This allows us to pick up the scan where we left off.
-
-   If this is zero, or a null string, it means resume the scan
-   by advancing to the next ARGV-element.  */
-
-static char *nextchar;
-
-/* Callers store zero here to inhibit the error message
-   for unrecognized options.  */
-
-int opterr = 1;
-
-/* Set to an option character which was unrecognized.
-   This must be initialized on some systems to avoid linking in the
-   system's own getopt implementation.  */
-
-int optopt = '?';
-
-/* Describe how to deal with options that follow non-option ARGV-elements.
-
-   If the caller did not specify anything,
-   the default is REQUIRE_ORDER if the environment variable
-   POSIXLY_CORRECT is defined, PERMUTE otherwise.
-
-   REQUIRE_ORDER means don't recognize them as options;
-   stop option processing when the first non-option is seen.
-   This is what Unix does.
-   This mode of operation is selected by either setting the environment
-   variable POSIXLY_CORRECT, or using `+' as the first character
-   of the list of option characters.
-
-   PERMUTE is the default.  We permute the contents of ARGV as we scan,
-   so that eventually all the non-options are at the end.  This allows options
-   to be given in any order, even with programs that were not written to
-   expect this.
-
-   RETURN_IN_ORDER is an option available to programs that were written
-   to expect options and other ARGV-elements in any order and that care about
-   the ordering of the two.  We describe each non-option ARGV-element
-   as if it were the argument of an option with character code 1.
-   Using `-' as the first character of the list of option characters
-   selects this mode of operation.
-
-   The special argument `--' forces an end of option-scanning regardless
-   of the value of `ordering'.  In the case of RETURN_IN_ORDER, only
-   `--' can cause `getopt' to return EOF with `optind' != ARGC.  */
-
-static enum
-{
-  REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
-} ordering;
-
-/* Value of POSIXLY_CORRECT environment variable.  */
-static char *posixly_correct;
-\f
-#ifdef __GNU_LIBRARY__
-/* We want to avoid inclusion of string.h with non-GNU libraries
-   because there are many ways it can cause trouble.
-   On some systems, it contains special magic macros that don't work
-   in GCC.  */
-#include <string.h>
-#define        my_index        strchr
-#else
-
-/* Avoid depending on library functions or files
-   whose names are inconsistent.  */
-
-char *getenv ();
-
-static char *
-my_index (str, chr)
-     const char *str;
-     int chr;
-{
-  while (*str)
-    {
-      if (*str == chr)
-       return (char *) str;
-      str++;
-    }
-  return 0;
-}
-
-/* If using GCC, we can safely declare strlen this way.
-   If not using GCC, it is ok not to declare it.  */
-#ifdef __GNUC__
-/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h.
-   That was relevant to code that was here before.  */
-#if !defined (__STDC__) || !__STDC__
-/* gcc with -traditional declares the built-in strlen to return int,
-   and has done so at least since version 2.4.5. -- rms.  */
-extern int strlen (const char *);
-#endif /* not __STDC__ */
-#endif /* __GNUC__ */
-
-#endif /* not __GNU_LIBRARY__ */
-\f
-/* Handle permutation of arguments.  */
-
-/* Describe the part of ARGV that contains non-options that have
-   been skipped.  `first_nonopt' is the index in ARGV of the first of them;
-   `last_nonopt' is the index after the last of them.  */
-
-static int first_nonopt;
-static int last_nonopt;
-
-/* Bash 2.0 gives us an environment variable containing flags
-   indicating ARGV elements that should not be considered arguments.  */
-
-static const char *nonoption_flags;
-static int nonoption_flags_len;
-
-/* Exchange two adjacent subsequences of ARGV.
-   One subsequence is elements [first_nonopt,last_nonopt)
-   which contains all the non-options that have been skipped so far.
-   The other is elements [last_nonopt,optind), which contains all
-   the options processed since those non-options were skipped.
-
-   `first_nonopt' and `last_nonopt' are relocated so that they describe
-   the new indices of the non-options in ARGV after they are moved.  */
-
-#if defined (__STDC__) && __STDC__
-static void exchange (char **);
-#endif
-
-static void
-exchange (argv)
-     char **argv;
-{
-  int bottom = first_nonopt;
-  int middle = last_nonopt;
-  int top = optind;
-  char *tem;
-
-  /* Exchange the shorter segment with the far end of the longer segment.
-     That puts the shorter segment into the right place.
-     It leaves the longer segment in the right place overall,
-     but it consists of two parts that need to be swapped next.  */
-
-  while (top > middle && middle > bottom)
-    {
-      if (top - middle > middle - bottom)
-       {
-         /* Bottom segment is the short one.  */
-         int len = middle - bottom;
-         register int i;
-
-         /* Swap it with the top part of the top segment.  */
-         for (i = 0; i < len; i++)
-           {
-             tem = argv[bottom + i];
-             argv[bottom + i] = argv[top - (middle - bottom) + i];
-             argv[top - (middle - bottom) + i] = tem;
-           }
-         /* Exclude the moved bottom segment from further swapping.  */
-         top -= len;
-       }
-      else
-       {
-         /* Top segment is the short one.  */
-         int len = top - middle;
-         register int i;
-
-         /* Swap it with the bottom part of the bottom segment.  */
-         for (i = 0; i < len; i++)
-           {
-             tem = argv[bottom + i];
-             argv[bottom + i] = argv[middle + i];
-             argv[middle + i] = tem;
-           }
-         /* Exclude the moved top segment from further swapping.  */
-         bottom += len;
-       }
-    }
-
-  /* Update records for the slots the non-options now occupy.  */
-
-  first_nonopt += (optind - last_nonopt);
-  last_nonopt = optind;
-}
-
-/* Initialize the internal data when the first call is made.  */
-
-#if defined (__STDC__) && __STDC__
-static const char *_getopt_initialize (const char *);
-#endif
-static const char *
-_getopt_initialize (optstring)
-     const char *optstring;
-{
-  /* Start processing options with ARGV-element 1 (since ARGV-element 0
-     is the program name); the sequence of previously skipped
-     non-option ARGV-elements is empty.  */
-
-  first_nonopt = last_nonopt = optind = 1;
-
-  nextchar = NULL;
-
-  posixly_correct = getenv ("POSIXLY_CORRECT");
-
-  /* Determine how to handle the ordering of options and nonoptions.  */
-
-  if (optstring[0] == '-')
-    {
-      ordering = RETURN_IN_ORDER;
-      ++optstring;
-    }
-  else if (optstring[0] == '+')
-    {
-      ordering = REQUIRE_ORDER;
-      ++optstring;
-    }
-  else if (posixly_correct != NULL)
-    ordering = REQUIRE_ORDER;
-  else
-    ordering = PERMUTE;
-
-  if (posixly_correct == NULL)
-    {
-      /* Bash 2.0 puts a special variable in the environment for each
-        command it runs, specifying which ARGV elements are the results of
-        file name wildcard expansion and therefore should not be
-        considered as options.  */
-      char var[100];
-      sprintf (var, "_%d_GNU_nonoption_argv_flags_", getpid ());
-      nonoption_flags = getenv (var);
-      if (nonoption_flags == NULL)
-       nonoption_flags_len = 0;
-      else
-       nonoption_flags_len = strlen (nonoption_flags);
-    }
-
-  return optstring;
-}
-\f
-/* Scan elements of ARGV (whose length is ARGC) for option characters
-   given in OPTSTRING.
-
-   If an element of ARGV starts with '-', and is not exactly "-" or "--",
-   then it is an option element.  The characters of this element
-   (aside from the initial '-') are option characters.  If `getopt'
-   is called repeatedly, it returns successively each of the option characters
-   from each of the option elements.
-
-   If `getopt' finds another option character, it returns that character,
-   updating `optind' and `nextchar' so that the next call to `getopt' can
-   resume the scan with the following option character or ARGV-element.
-
-   If there are no more option characters, `getopt' returns `EOF'.
-   Then `optind' is the index in ARGV of the first ARGV-element
-   that is not an option.  (The ARGV-elements have been permuted
-   so that those that are not options now come last.)
-
-   OPTSTRING is a string containing the legitimate option characters.
-   If an option character is seen that is not listed in OPTSTRING,
-   return '?' after printing an error message.  If you set `opterr' to
-   zero, the error message is suppressed but we still return '?'.
-
-   If a char in OPTSTRING is followed by a colon, that means it wants an arg,
-   so the following text in the same ARGV-element, or the text of the following
-   ARGV-element, is returned in `optarg'.  Two colons mean an option that
-   wants an optional arg; if there is text in the current ARGV-element,
-   it is returned in `optarg', otherwise `optarg' is set to zero.
-
-   If OPTSTRING starts with `-' or `+', it requests different methods of
-   handling the non-option ARGV-elements.
-   See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above.
-
-   Long-named options begin with `--' instead of `-'.
-   Their names may be abbreviated as long as the abbreviation is unique
-   or is an exact match for some defined option.  If they have an
-   argument, it follows the option name in the same ARGV-element, separated
-   from the option name by a `=', or else the in next ARGV-element.
-   When `getopt' finds a long-named option, it returns 0 if that option's
-   `flag' field is nonzero, the value of the option's `val' field
-   if the `flag' field is zero.
-
-   The elements of ARGV aren't really const, because we permute them.
-   But we pretend they're const in the prototype to be compatible
-   with other systems.
-
-   LONGOPTS is a vector of `struct option' terminated by an
-   element containing a name which is zero.
-
-   LONGIND returns the index in LONGOPT of the long-named option found.
-   It is only valid when a long-named option has been found by the most
-   recent call.
-
-   If LONG_ONLY is nonzero, '-' as well as '--' can introduce
-   long-named options.  */
-
-int
-_getopt_internal (argc, argv, optstring, longopts, longind, long_only)
-     int argc;
-     char *const *argv;
-     const char *optstring;
-     const struct option *longopts;
-     int *longind;
-     int long_only;
-{
-  optarg = NULL;
-
-  if (optind == 0)
-    {
-      optstring = _getopt_initialize (optstring);
-      optind = 1;              /* Don't scan ARGV[0], the program name.  */
-    }
-
-  /* Test whether ARGV[optind] points to a non-option argument.
-     Either it does not have option syntax, or there is an environment flag
-     from the shell indicating it is not an option.  */
-#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0'       \
-                    || (optind < nonoption_flags_len                         \
-                        && nonoption_flags[optind] == '1'))
-
-  if (nextchar == NULL || *nextchar == '\0')
-    {
-      /* Advance to the next ARGV-element.  */
-
-      /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been
-        moved back by the user (who may also have changed the arguments).  */
-      if (last_nonopt > optind)
-       last_nonopt = optind;
-      if (first_nonopt > optind)
-       first_nonopt = optind;
-
-      if (ordering == PERMUTE)
-       {
-         /* If we have just processed some options following some non-options,
-            exchange them so that the options come first.  */
-
-         if (first_nonopt != last_nonopt && last_nonopt != optind)
-           exchange ((char **) argv);
-         else if (last_nonopt != optind)
-           first_nonopt = optind;
-
-         /* Skip any additional non-options
-            and extend the range of non-options previously skipped.  */
-
-         while (optind < argc && NONOPTION_P)
-           optind++;
-         last_nonopt = optind;
-       }
-
-      /* The special ARGV-element `--' means premature end of options.
-        Skip it like a null option,
-        then exchange with previous non-options as if it were an option,
-        then skip everything else like a non-option.  */
-
-      if (optind != argc && !strcmp (argv[optind], "--"))
-       {
-         optind++;
-
-         if (first_nonopt != last_nonopt && last_nonopt != optind)
-           exchange ((char **) argv);
-         else if (first_nonopt == last_nonopt)
-           first_nonopt = optind;
-         last_nonopt = argc;
-
-         optind = argc;
-       }
-
-      /* If we have done all the ARGV-elements, stop the scan
-        and back over any non-options that we skipped and permuted.  */
-
-      if (optind == argc)
-       {
-         /* Set the next-arg-index to point at the non-options
-            that we previously skipped, so the caller will digest them.  */
-         if (first_nonopt != last_nonopt)
-           optind = first_nonopt;
-         return EOF;
-       }
-
-      /* If we have come to a non-option and did not permute it,
-        either stop the scan or describe it to the caller and pass it by.  */
-
-      if (NONOPTION_P)
-       {
-         if (ordering == REQUIRE_ORDER)
-           return EOF;
-         optarg = argv[optind++];
-         return 1;
-       }
-
-      /* We have found another option-ARGV-element.
-        Skip the initial punctuation.  */
-
-      nextchar = (argv[optind] + 1
-                 + (longopts != NULL && argv[optind][1] == '-'));
-    }
-
-  /* Decode the current option-ARGV-element.  */
-
-  /* Check whether the ARGV-element is a long option.
-
-     If long_only and the ARGV-element has the form "-f", where f is
-     a valid short option, don't consider it an abbreviated form of
-     a long option that starts with f.  Otherwise there would be no
-     way to give the -f short option.
-
-     On the other hand, if there's a long option "fubar" and
-     the ARGV-element is "-fu", do consider that an abbreviation of
-     the long option, just like "--fu", and not "-f" with arg "u".
-
-     This distinction seems to be the most useful approach.  */
-
-  if (longopts != NULL
-      && (argv[optind][1] == '-'
-         || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1])))))
-    {
-      char *nameend;
-      const struct option *p;
-      const struct option *pfound = NULL;
-      int exact = 0;
-      int ambig = 0;
-      int indfound;
-      int option_index;
-
-      for (nameend = nextchar; *nameend && *nameend != '='; nameend++)
-       /* Do nothing.  */ ;
-
-#ifdef lint            /* Suppress `used before initialized' warning.  */
-      indfound = 0;
-#endif
-
-      /* Test all long options for either exact match
-        or abbreviated matches.  */
-      for (p = longopts, option_index = 0; p->name; p++, option_index++)
-       if (!strncmp (p->name, nextchar, nameend - nextchar))
-         {
-           if (nameend - nextchar == strlen (p->name))
-             {
-               /* Exact match found.  */
-               pfound = p;
-               indfound = option_index;
-               exact = 1;
-               break;
-             }
-           else if (pfound == NULL)
-             {
-               /* First nonexact match found.  */
-               pfound = p;
-               indfound = option_index;
-             }
-           else
-             /* Second or later nonexact match found.  */
-             ambig = 1;
-         }
-
-      if (ambig && !exact)
-       {
-         if (opterr)
-           fprintf (stderr, _("%s: option `%s' is ambiguous\n"),
-                    argv[0], argv[optind]);
-         nextchar += strlen (nextchar);
-         optind++;
-         optopt = 0;
-         return '?';
-       }
-
-      if (pfound != NULL)
-       {
-         option_index = indfound;
-         optind++;
-         if (*nameend)
-           {
-             /* Don't test has_arg with >, because some C compilers don't
-                allow it to be used on enums.  */
-             if (pfound->has_arg)
-               optarg = nameend + 1;
-             else
-               {
-                 if (opterr)
-                   if (argv[optind - 1][1] == '-')
-                     /* --option */
-                     fprintf (stderr,
-                       _("%s: option `--%s' doesn't allow an argument\n"),
-                              argv[0], pfound->name);
-                   else
-                     /* +option or -option */
-                     fprintf (stderr,
-                       _("%s: option `%c%s' doesn't allow an argument\n"),
-                              argv[0], argv[optind - 1][0], pfound->name);
-
-                 nextchar += strlen (nextchar);
-
-                 optopt = pfound->val;
-                 return '?';
-               }
-           }
-         else if (pfound->has_arg == 1)
-           {
-             if (optind < argc)
-               optarg = argv[optind++];
-             else
-               {
-                 if (opterr)
-                   fprintf (stderr,
-                            _("%s: option `%s' requires an argument\n"),
-                            argv[0], argv[optind - 1]);
-                 nextchar += strlen (nextchar);
-                 optopt = pfound->val;
-                 return optstring[0] == ':' ? ':' : '?';
-               }
-           }
-         nextchar += strlen (nextchar);
-         if (longind != NULL)
-           *longind = option_index;
-         if (pfound->flag)
-           {
-             *(pfound->flag) = pfound->val;
-             return 0;
-           }
-         return pfound->val;
-       }
-
-      /* Can't find it as a long option.  If this is not getopt_long_only,
-        or the option starts with '--' or is not a valid short
-        option, then it's an error.
-        Otherwise interpret it as a short option.  */
-      if (!long_only || argv[optind][1] == '-'
-         || my_index (optstring, *nextchar) == NULL)
-       {
-         if (opterr)
-           {
-             if (argv[optind][1] == '-')
-               /* --option */
-               fprintf (stderr, _("%s: unrecognized option `--%s'\n"),
-                        argv[0], nextchar);
-             else
-               /* +option or -option */
-               fprintf (stderr, _("%s: unrecognized option `%c%s'\n"),
-                        argv[0], argv[optind][0], nextchar);
-           }
-         nextchar = (char *) "";
-         optind++;
-         optopt = 0;
-         return '?';
-       }
-    }
-
-  /* Look at and handle the next short option-character.  */
-
-  {
-    char c = *nextchar++;
-    char *temp = my_index (optstring, c);
-
-    /* Increment `optind' when we start to process its last character.  */
-    if (*nextchar == '\0')
-      ++optind;
-
-    if (temp == NULL || c == ':')
-      {
-       if (opterr)
-         {
-           if (posixly_correct)
-             /* 1003.2 specifies the format of this message.  */
-             fprintf (stderr, _("%s: illegal option -- %c\n"),
-                      argv[0], c);
-           else
-             fprintf (stderr, _("%s: invalid option -- %c\n"),
-                      argv[0], c);
-         }
-       optopt = c;
-       return '?';
-      }
-    if (temp[1] == ':')
-      {
-       if (temp[2] == ':')
-         {
-           /* This is an option that accepts an argument optionally.  */
-           if (*nextchar != '\0')
-             {
-               optarg = nextchar;
-               optind++;
-             }
-           else
-             optarg = NULL;
-           nextchar = NULL;
-         }
-       else
-         {
-           /* This is an option that requires an argument.  */
-           if (*nextchar != '\0')
-             {
-               optarg = nextchar;
-               /* If we end this ARGV-element by taking the rest as an arg,
-                  we must advance to the next element now.  */
-               optind++;
-             }
-           else if (optind == argc)
-             {
-               if (opterr)
-                 {
-                   /* 1003.2 specifies the format of this message.  */
-                   fprintf (stderr,
-                            _("%s: option requires an argument -- %c\n"),
-                            argv[0], c);
-                 }
-               optopt = c;
-               if (optstring[0] == ':')
-                 c = ':';
-               else
-                 c = '?';
-             }
-           else
-             /* We already incremented `optind' once;
-                increment it again when taking next ARGV-elt as argument.  */
-             optarg = argv[optind++];
-           nextchar = NULL;
-         }
-      }
-    return c;
-  }
-}
-
-int
-getopt (argc, argv, optstring)
-     int argc;
-     char *const *argv;
-     const char *optstring;
-{
-  return _getopt_internal (argc, argv, optstring,
-                          (const struct option *) 0,
-                          (int *) 0,
-                          0);
-}
-
-#endif /* _LIBC or not __GNU_LIBRARY__.  */
-\f
-#ifdef TEST
-
-/* Compile with -DTEST to make an executable for use in testing
-   the above definition of `getopt'.  */
-
-int
-main (argc, argv)
-     int argc;
-     char **argv;
-{
-  int c;
-  int digit_optind = 0;
-
-  while (1)
-    {
-      int this_option_optind = optind ? optind : 1;
-
-      c = getopt (argc, argv, "abc:d:0123456789");
-      if (c == EOF)
-       break;
-
-      switch (c)
-       {
-       case '0':
-       case '1':
-       case '2':
-       case '3':
-       case '4':
-       case '5':
-       case '6':
-       case '7':
-       case '8':
-       case '9':
-         if (digit_optind != 0 && digit_optind != this_option_optind)
-           printf ("digits occur in two different argv-elements.\n");
-         digit_optind = this_option_optind;
-         printf ("option %c\n", c);
-         break;
-
-       case 'a':
-         printf ("option a\n");
-         break;
-
-       case 'b':
-         printf ("option b\n");
-         break;
-
-       case 'c':
-         printf ("option c with value `%s'\n", optarg);
-         break;
-
-       case '?':
-         break;
-
-       default:
-         printf ("?? getopt returned character code 0%o ??\n", c);
-       }
-    }
-
-  if (optind < argc)
-    {
-      printf ("non-option ARGV-elements: ");
-      while (optind < argc)
-       printf ("%s ", argv[optind++]);
-      printf ("\n");
-    }
-
-  exit (0);
-}
-
-#endif /* TEST */
diff --git a/barcode-0.98/compat/getopt.h b/barcode-0.98/compat/getopt.h
deleted file mode 100644 (file)
index 952f483..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-/* Declarations for getopt.
-   Copyright (C) 1989, 90, 91, 92, 93, 94 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify it
-   under the terms of the GNU General Public License as published by the
-   Free Software Foundation; either version 2, or (at your option) any
-   later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-#ifndef _GETOPT_H
-#define _GETOPT_H 1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* For communication from `getopt' to the caller.
-   When `getopt' finds an option that takes an argument,
-   the argument value is returned here.
-   Also, when `ordering' is RETURN_IN_ORDER,
-   each non-option ARGV-element is returned here.  */
-
-extern char *optarg;
-
-/* Index in ARGV of the next element to be scanned.
-   This is used for communication to and from the caller
-   and for communication between successive calls to `getopt'.
-
-   On entry to `getopt', zero means this is the first call; initialize.
-
-   When `getopt' returns EOF, this is the index of the first of the
-   non-option elements that the caller should itself scan.
-
-   Otherwise, `optind' communicates from one call to the next
-   how much of ARGV has been scanned so far.  */
-
-extern int optind;
-
-/* Callers store zero here to inhibit the error message `getopt' prints
-   for unrecognized options.  */
-
-extern int opterr;
-
-/* Set to an option character which was unrecognized.  */
-
-extern int optopt;
-
-/* Describe the long-named options requested by the application.
-   The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
-   of `struct option' terminated by an element containing a name which is
-   zero.
-
-   The field `has_arg' is:
-   no_argument         (or 0) if the option does not take an argument,
-   required_argument   (or 1) if the option requires an argument,
-   optional_argument   (or 2) if the option takes an optional argument.
-
-   If the field `flag' is not NULL, it points to a variable that is set
-   to the value given in the field `val' when the option is found, but
-   left unchanged if the option is not found.
-
-   To have a long-named option do something other than set an `int' to
-   a compiled-in constant, such as set a value from `optarg', set the
-   option's `flag' field to zero and its `val' field to a nonzero
-   value (the equivalent single-letter option character, if there is
-   one).  For long options that have a zero `flag' field, `getopt'
-   returns the contents of the `val' field.  */
-
-struct option
-{
-#if defined (__STDC__) && __STDC__
-  const char *name;
-#else
-  char *name;
-#endif
-  /* has_arg can't be an enum because some compilers complain about
-     type mismatches in all the code that assumes it is an int.  */
-  int has_arg;
-  int *flag;
-  int val;
-};
-
-/* Names for the values of the `has_arg' field of `struct option'.  */
-
-#define        no_argument             0
-#define required_argument      1
-#define optional_argument      2
-
-#if defined (__STDC__) && __STDC__
-#ifdef __GNU_LIBRARY__
-/* Many other libraries have conflicting prototypes for getopt, with
-   differences in the consts, in stdlib.h.  To avoid compilation
-   errors, only prototype getopt for the GNU C library.  */
-extern int getopt (int argc, char *const *argv, const char *shortopts);
-#else /* not __GNU_LIBRARY__ */
-extern int getopt ();
-#endif /* __GNU_LIBRARY__ */
-extern int getopt_long (int argc, char *const *argv, const char *shortopts,
-                       const struct option *longopts, int *longind);
-extern int getopt_long_only (int argc, char *const *argv,
-                            const char *shortopts,
-                            const struct option *longopts, int *longind);
-
-/* Internal only.  Users should not call this directly.  */
-extern int _getopt_internal (int argc, char *const *argv,
-                            const char *shortopts,
-                            const struct option *longopts, int *longind,
-                            int long_only);
-#else /* not __STDC__ */
-extern int getopt ();
-extern int getopt_long ();
-extern int getopt_long_only ();
-
-extern int _getopt_internal ();
-#endif /* __STDC__ */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _GETOPT_H */
diff --git a/barcode-0.98/configure b/barcode-0.98/configure
deleted file mode 100755 (executable)
index f0e5d45..0000000
+++ /dev/null
@@ -1,5197 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.57.
-#
-# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-
-# Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-        X"$0" : 'X\(//\)$' \| \
-        X"$0" : 'X\(/\)$' \| \
-        .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-         /^X\/\(\/\/\)$/{ s//\1/; q; }
-         /^X\/\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-        case $as_dir in
-        /*)
-          if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-            $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-            $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-            CONFIG_SHELL=$as_dir/$as_base
-            export CONFIG_SHELL
-            exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-          fi;;
-        esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='     ' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS="  $as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-exec 6>&1
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_config_libobj_dir=.
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Maximum number of lines to put in a shell here document.
-# This variable seems obsolete.  It should probably be removed, and
-# only ac_max_sed_lines should be used.
-: ${ac_max_here_lines=38}
-
-# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-
-ac_unique_file="barcode.h"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# if HAVE_STDLIB_H
-#  include <stdlib.h>
-# endif
-#endif
-#if HAVE_STRING_H
-# if !STDC_HEADERS && HAVE_MEMORY_H
-#  include <memory.h>
-# endif
-# include <string.h>
-#endif
-#if HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#else
-# if HAVE_STDINT_H
-#  include <stdint.h>
-# endif
-#endif
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT RANLIB ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CPP EGREP GETOPT_O NO_GETOPT NO_LIBPAPER LIBPAPER NO_STRERROR GMAKEDEPEND0 GMAKEDEPEND1 GMAKEDEPEND2 LIBOBJS LTLIBOBJS MAKEINFO REMOVEHTMLTAGS INFOTOHTML'
-ac_subst_files=''
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-ac_prev=
-for ac_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$ac_prev"; then
-    eval "$ac_prev=\$ac_option"
-    ac_prev=
-    continue
-  fi
-
-  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $ac_option in
-
-  -bindir | --bindir | --bindi | --bind | --bin | --bi)
-    ac_prev=bindir ;;
-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir=$ac_optarg ;;
-
-  -build | --build | --buil | --bui | --bu)
-    ac_prev=build_alias ;;
-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build_alias=$ac_optarg ;;
-
-  -cache-file | --cache-file | --cache-fil | --cache-fi \
-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-    ac_prev=cache_file ;;
-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file=$ac_optarg ;;
-
-  --config-cache | -C)
-    cache_file=config.cache ;;
-
-  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
-  | --da=*)
-    datadir=$ac_optarg ;;
-
-  -disable-* | --disable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    eval "enable_$ac_feature=no" ;;
-
-  -enable-* | --enable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "enable_$ac_feature='$ac_optarg'" ;;
-
-  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-  | --exec | --exe | --ex)
-    ac_prev=exec_prefix ;;
-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
-  | --exec=* | --exe=* | --ex=*)
-    exec_prefix=$ac_optarg ;;
-
-  -gas | --gas | --ga | --g)
-    # Obsolete; use --with-gas.
-    with_gas=yes ;;
-
-  -help | --help | --hel | --he | -h)
-    ac_init_help=long ;;
-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
-    ac_init_help=recursive ;;
-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
-    ac_init_help=short ;;
-
-  -host | --host | --hos | --ho)
-    ac_prev=host_alias ;;
-  -host=* | --host=* | --hos=* | --ho=*)
-    host_alias=$ac_optarg ;;
-
-  -includedir | --includedir | --includedi | --included | --include \
-  | --includ | --inclu | --incl | --inc)
-    ac_prev=includedir ;;
-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-  | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir=$ac_optarg ;;
-
-  -infodir | --infodir | --infodi | --infod | --info | --inf)
-    ac_prev=infodir ;;
-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir=$ac_optarg ;;
-
-  -libdir | --libdir | --libdi | --libd)
-    ac_prev=libdir ;;
-  -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir=$ac_optarg ;;
-
-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-  | --libexe | --libex | --libe)
-    ac_prev=libexecdir ;;
-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-  | --libexe=* | --libex=* | --libe=*)
-    libexecdir=$ac_optarg ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst \
-  | --locals | --local | --loca | --loc | --lo)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
-  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
-    localstatedir=$ac_optarg ;;
-
-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-    ac_prev=mandir ;;
-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir=$ac_optarg ;;
-
-  -nfp | --nfp | --nf)
-    # Obsolete; use --without-fp.
-    with_fp=no ;;
-
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n)
-    no_create=yes ;;
-
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    no_recursion=yes ;;
-
-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
-  | --oldin | --oldi | --old | --ol | --o)
-    ac_prev=oldincludedir ;;
-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir=$ac_optarg ;;
-
-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-    ac_prev=prefix ;;
-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix=$ac_optarg ;;
-
-  -program-prefix | --program-prefix | --program-prefi | --program-pref \
-  | --program-pre | --program-pr | --program-p)
-    ac_prev=program_prefix ;;
-  -program-prefix=* | --program-prefix=* | --program-prefi=* \
-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix=$ac_optarg ;;
-
-  -program-suffix | --program-suffix | --program-suffi | --program-suff \
-  | --program-suf | --program-su | --program-s)
-    ac_prev=program_suffix ;;
-  -program-suffix=* | --program-suffix=* | --program-suffi=* \
-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix=$ac_optarg ;;
-
-  -program-transform-name | --program-transform-name \
-  | --program-transform-nam | --program-transform-na \
-  | --program-transform-n | --program-transform- \
-  | --program-transform | --program-transfor \
-  | --program-transfo | --program-transf \
-  | --program-trans | --program-tran \
-  | --progr-tra | --program-tr | --program-t)
-    ac_prev=program_transform_name ;;
-  -program-transform-name=* | --program-transform-name=* \
-  | --program-transform-nam=* | --program-transform-na=* \
-  | --program-transform-n=* | --program-transform-=* \
-  | --program-transform=* | --program-transfor=* \
-  | --program-transfo=* | --program-transf=* \
-  | --program-trans=* | --program-tran=* \
-  | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name=$ac_optarg ;;
-
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil)
-    silent=yes ;;
-
-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
-    ac_prev=sbindir ;;
-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-  | --sbi=* | --sb=*)
-    sbindir=$ac_optarg ;;
-
-  -sharedstatedir | --sharedstatedir | --sharedstatedi \
-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-  | --sharedst | --shareds | --shared | --share | --shar \
-  | --sha | --sh)
-    ac_prev=sharedstatedir ;;
-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-  | --sha=* | --sh=*)
-    sharedstatedir=$ac_optarg ;;
-
-  -site | --site | --sit)
-    ac_prev=site ;;
-  -site=* | --site=* | --sit=*)
-    site=$ac_optarg ;;
-
-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-    ac_prev=srcdir ;;
-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir=$ac_optarg ;;
-
-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-  | --syscon | --sysco | --sysc | --sys | --sy)
-    ac_prev=sysconfdir ;;
-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir=$ac_optarg ;;
-
-  -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target_alias ;;
-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target_alias=$ac_optarg ;;
-
-  -v | -verbose | --verbose | --verbos | --verbo | --verb)
-    verbose=yes ;;
-
-  -version | --version | --versio | --versi | --vers | -V)
-    ac_init_version=: ;;
-
-  -with-* | --with-*)
-    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package| sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "with_$ac_package='$ac_optarg'" ;;
-
-  -without-* | --without-*)
-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/-/_/g'`
-    eval "with_$ac_package=no" ;;
-
-  --x)
-    # Obsolete; use --with-x.
-    with_x=yes ;;
-
-  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
-  | --x-incl | --x-inc | --x-in | --x-i)
-    ac_prev=x_includes ;;
-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes=$ac_optarg ;;
-
-  -x-libraries | --x-libraries | --x-librarie | --x-librari \
-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
-    ac_prev=x_libraries ;;
-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries=$ac_optarg ;;
-
-  -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; }
-    ;;
-
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
-    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
-    eval "$ac_envvar='$ac_optarg'"
-    export $ac_envvar ;;
-
-  *)
-    # FIXME: should be removed in autoconf 3.0.
-    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
-    ;;
-
-  esac
-done
-
-if test -n "$ac_prev"; then
-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  { echo "$as_me: error: missing argument to $ac_option" >&2
-   { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-              localstatedir libdir includedir oldincludedir infodir mandir
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
-  if test "x$build_alias" = x; then
-    cross_compiling=maybe
-    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used." >&2
-  elif test "x$build_alias" != "x$host_alias"; then
-    cross_compiling=yes
-  fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
-  ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then its parent.
-  ac_confdir=`(dirname "$0") 2>/dev/null ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$0" : 'X\(//\)[^/]' \| \
-         X"$0" : 'X\(//\)$' \| \
-         X"$0" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
-echo X"$0" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-         /^X\(\/\/\)$/{ s//\1/; q; }
-         /^X\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
-  srcdir=$ac_confdir
-  if test ! -r $srcdir/$ac_unique_file; then
-    srcdir=..
-  fi
-else
-  ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
-  if test "$ac_srcdir_defaulted" = yes; then
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
-   { (exit 1); exit 1; }; }
-  else
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-   { (exit 1); exit 1; }; }
-  fi
-fi
-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
-  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
-   { (exit 1); exit 1; }; }
-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-ac_env_build_alias_set=${build_alias+set}
-ac_env_build_alias_value=$build_alias
-ac_cv_env_build_alias_set=${build_alias+set}
-ac_cv_env_build_alias_value=$build_alias
-ac_env_host_alias_set=${host_alias+set}
-ac_env_host_alias_value=$host_alias
-ac_cv_env_host_alias_set=${host_alias+set}
-ac_cv_env_host_alias_value=$host_alias
-ac_env_target_alias_set=${target_alias+set}
-ac_env_target_alias_value=$target_alias
-ac_cv_env_target_alias_set=${target_alias+set}
-ac_cv_env_target_alias_value=$target_alias
-ac_env_CC_set=${CC+set}
-ac_env_CC_value=$CC
-ac_cv_env_CC_set=${CC+set}
-ac_cv_env_CC_value=$CC
-ac_env_CFLAGS_set=${CFLAGS+set}
-ac_env_CFLAGS_value=$CFLAGS
-ac_cv_env_CFLAGS_set=${CFLAGS+set}
-ac_cv_env_CFLAGS_value=$CFLAGS
-ac_env_LDFLAGS_set=${LDFLAGS+set}
-ac_env_LDFLAGS_value=$LDFLAGS
-ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
-ac_cv_env_LDFLAGS_value=$LDFLAGS
-ac_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_env_CPPFLAGS_value=$CPPFLAGS
-ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_cv_env_CPPFLAGS_value=$CPPFLAGS
-ac_env_CPP_set=${CPP+set}
-ac_env_CPP_value=$CPP
-ac_cv_env_CPP_set=${CPP+set}
-ac_cv_env_CPP_value=$CPP
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
-  # Omit some internal or obsolete options to make the list less imposing.
-  # This message is too long to be a string in the A/UX 3.1 sh.
-  cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE.  See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
-  -h, --help              display this help and exit
-      --help=short        display options specific to this package
-      --help=recursive    display the short help of all the included packages
-  -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking...' messages
-      --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
-  -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-
-_ACEOF
-
-  cat <<_ACEOF
-Installation directories:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-                          [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                          [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
-  --bindir=DIR           user executables [EPREFIX/bin]
-  --sbindir=DIR          system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR       program executables [EPREFIX/libexec]
-  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
-  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
-  --libdir=DIR           object code libraries [EPREFIX/lib]
-  --includedir=DIR       C header files [PREFIX/include]
-  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
-  --infodir=DIR          info documentation [PREFIX/info]
-  --mandir=DIR           man documentation [PREFIX/man]
-_ACEOF
-
-  cat <<\_ACEOF
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-
-  cat <<\_ACEOF
-
-Some influential environment variables:
-  CC          C compiler command
-  CFLAGS      C compiler flags
-  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
-              nonstandard directory <lib dir>
-  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
-              headers in a nonstandard directory <include dir>
-  CPP         C preprocessor
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-_ACEOF
-fi
-
-if test "$ac_init_help" = "recursive"; then
-  # If there are subdirs, report their specific --help.
-  ac_popdir=`pwd`
-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d $ac_dir || continue
-    ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
-
-    cd $ac_dir
-    # Check for guested configure; otherwise get Cygnus style configure.
-    if test -f $ac_srcdir/configure.gnu; then
-      echo
-      $SHELL $ac_srcdir/configure.gnu  --help=recursive
-    elif test -f $ac_srcdir/configure; then
-      echo
-      $SHELL $ac_srcdir/configure  --help=recursive
-    elif test -f $ac_srcdir/configure.ac ||
-           test -f $ac_srcdir/configure.in; then
-      echo
-      $ac_configure --help
-    else
-      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi
-    cd $ac_popdir
-  done
-fi
-
-test -n "$ac_init_help" && exit 0
-if $ac_init_version; then
-  cat <<\_ACEOF
-
-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
-Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
-  exit 0
-fi
-exec 5>config.log
-cat >&5 <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by $as_me, which was
-generated by GNU Autoconf 2.57.  Invocation command line was
-
-  $ $0 $@
-
-_ACEOF
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  echo "PATH: $as_dir"
-done
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_sep=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
-  for ac_arg
-  do
-    case $ac_arg in
-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-    | -silent | --silent | --silen | --sile | --sil)
-      continue ;;
-    *" "*|*"   "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
-    2)
-      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
-      if test $ac_must_keep_next = true; then
-        ac_must_keep_next=false # Got value, back to normal.
-      else
-        case $ac_arg in
-          *=* | --config-cache | -C | -disable-* | --disable-* \
-          | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-          | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-          | -with-* | --with-* | -without-* | --without-* | --x)
-            case "$ac_configure_args0 " in
-              "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-            esac
-            ;;
-          -* ) ac_must_keep_next=true ;;
-        esac
-      fi
-      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
-      # Get rid of the leading space.
-      ac_sep=" "
-      ;;
-    esac
-  done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log.  We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Be sure not to use single quotes in there, as some shells,
-# such as our DU 5.0 friend, will then `close' the trap.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-
-    cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-{
-  (set) 2>&1 |
-    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      sed -n \
-        "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
-         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
-      ;;
-    *)
-      sed -n \
-        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-}
-    echo
-
-    cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=$`echo $ac_var`
-      echo "$ac_var='"'"'$ac_val'"'"'"
-    done | sort
-    echo
-
-    if test -n "$ac_subst_files"; then
-      cat <<\_ASBOX
-## ------------- ##
-## Output files. ##
-## ------------- ##
-_ASBOX
-      echo
-      for ac_var in $ac_subst_files
-      do
-       eval ac_val=$`echo $ac_var`
-        echo "$ac_var='"'"'$ac_val'"'"'"
-      done | sort
-      echo
-    fi
-
-    if test -s confdefs.h; then
-      cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
-      echo
-      sed "/^$/d" confdefs.h | sort
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      echo "$as_me: caught signal $ac_signal"
-    echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core core.* *.core &&
-  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-     ' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo >confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
-  if test "x$prefix" != xNONE; then
-    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
-  else
-    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
-  fi
-fi
-for ac_site_file in $CONFIG_SITE; do
-  if test -r "$ac_site_file"; then
-    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file"
-  fi
-done
-
-if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special
-  # files actually), so we avoid doing that.
-  if test -f "$cache_file"; then
-    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . $cache_file;;
-      *)                      . ./$cache_file;;
-    esac
-  fi
-else
-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
-  >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in `(set) 2>&1 |
-               sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
-  eval ac_new_val="\$ac_env_${ac_var}_value"
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-        { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-        { echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
-echo "$as_me:   former value:  $ac_old_val" >&2;}
-        { echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
-echo "$as_me:   current value: $ac_new_val" >&2;}
-        ac_cache_corrupted=:
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *" "*|*"   "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  CC=$ac_ct_CC
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  CC=$ac_ct_CC
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-  fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-    test -n "$CC" && break
-  done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  test -n "$ac_ct_CC" && break
-done
-
-  CC=$ac_ct_CC
-fi
-
-fi
-
-
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
-     "checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
-  (eval $ac_compiler --version </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
-  (eval $ac_compiler -v </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
-  (eval $ac_compiler -V </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-echo "$as_me:$LINENO: checking for C compiler default output" >&5
-echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
-  (eval $ac_link_default) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # Find the output, starting from the most likely.  This scheme is
-# not robust to junk in `.', hence go to wildcards (a.*) only as a last
-# resort.
-
-# Be careful to initialize this variable, since it used to be cached.
-# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
-ac_cv_exeext=
-# b.out is created by i960 compilers.
-for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
-do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
-        ;;
-    conftest.$ac_ext )
-        # This is the source file.
-        ;;
-    [ab].out )
-        # We found the default executable, but exeext='' is most
-        # certainly right.
-        break;;
-    *.* )
-        ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-        # FIXME: I believe we export ac_cv_exeext for Libtool,
-        # but it would be cool to find out if it's true.  Does anybody
-        # maintain Libtool? --akim.
-        export ac_cv_exeext
-        break;;
-    * )
-        break;;
-  esac
-done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
-fi
-
-ac_exeext=$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6
-
-# Check the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
-  if { ac_try='./$ac_file'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-    cross_compiling=no
-  else
-    if test "$cross_compiling" = maybe; then
-       cross_compiling=yes
-    else
-       { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-    fi
-  fi
-fi
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-rm -f a.out a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-# Check the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6
-
-echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-          export ac_cv_exeext
-          break;;
-    * ) break;;
-  esac
-done
-else
-  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
-if test "${ac_cv_objext+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-       break;;
-  esac
-done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_compiler_gnu=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_compiler_gnu=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
-GCC=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-CFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_prog_cc_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_prog_cc_g=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_stdc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_prog_cc_stdc=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX                  -qlanglvl=ansi
-# Ultrix and OSF/1     -std1
-# HP-UX 10.20 and later        -Ae
-# HP-UX older versions -Aa -D_HPUX_SOURCE
-# SVR4                 -Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_prog_cc_stdc=$ac_arg
-break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.$ac_objext
-done
-rm -f conftest.$ac_ext conftest.$ac_objext
-CC=$ac_save_CC
-
-fi
-
-case "x$ac_cv_prog_cc_stdc" in
-  x|xno)
-    echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
-  *)
-    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
-    CC="$CC $ac_cv_prog_cc_stdc" ;;
-esac
-
-# Some people use a C++ compiler to compile C.  Since we use `exit',
-# in C++ we need to declare it.  In case someone uses the same compiler
-# for both compiling C and C++ we need to have the C++ compiler decide
-# the declaration of exit, since it's the most demanding environment.
-cat >conftest.$ac_ext <<_ACEOF
-#ifndef __cplusplus
-  choke me
-#endif
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  for ac_declaration in \
-   ''\
-   '#include <stdlib.h>' \
-   'extern "C" void std::exit (int) throw (); using std::exit;' \
-   'extern "C" void std::exit (int); using std::exit;' \
-   'extern "C" void exit (int) throw ();' \
-   'extern "C" void exit (int);' \
-   'void exit (int);'
-do
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-$ac_declaration
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-continue
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_declaration
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
-  echo '#ifdef __cplusplus' >>confdefs.h
-  echo $ac_declaration      >>confdefs.h
-  echo '#endif'             >>confdefs.h
-fi
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
-  echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
-  ac_ct_RANLIB=$RANLIB
-  # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_RANLIB"; then
-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_RANLIB="ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  RANLIB=$ac_ct_RANLIB
-else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
-  if test -f $ac_dir/install-sh; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f $ac_dir/install.sh; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f $ac_dir/shtool; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
-echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
-  ./ | .// | /cC/* | \
-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  /usr/ucb/* ) ;;
-  *)
-    # OSF1 and SCO ODT 3.0 have their own names for install.
-    # Don't use installbsd from OSF since it installs stuff as root
-    # by default.
-    for ac_prog in ginstall scoinst install; do
-      for ac_exec_ext in '' $ac_executable_extensions; do
-        if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
-          if test $ac_prog = install &&
-            grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-            # AIX install.  It has an incompatible calling convention.
-            :
-          elif test $ac_prog = install &&
-            grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-            # program-specific install script used by HP pwplus--don't use.
-            :
-          else
-            ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-            break 3
-          fi
-        fi
-      done
-    done
-    ;;
-esac
-done
-
-
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL=$ac_cv_path_install
-  else
-    # As a last resort, use the slow shell script.  We don't cache a
-    # path for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the path is relative.
-    INSTALL=$ac_install_sh
-  fi
-fi
-echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$INSTALL" >&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-
-if test x$GCC = xyes; then
-       CFLAGS="$CFLAGS -Wall"
-fi
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-                     Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether non-existent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  break
-fi
-
-    done
-    ac_cv_prog_CPP=$CPP
-
-fi
-  CPP=$ac_cv_prog_CPP
-else
-  ac_cv_prog_CPP=$CPP
-fi
-echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-                     Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether non-existent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
-else
-  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
-if test "${ac_cv_prog_egrep+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
-    then ac_cv_prog_egrep='grep -E'
-    else ac_cv_prog_egrep='egrep'
-    fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
-echo "${ECHO_T}$ac_cv_prog_egrep" >&6
- EGREP=$ac_cv_prog_egrep
-
-
-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
-if test "${ac_cv_header_stdc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_header_stdc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_header_stdc=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then
-  :
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then
-  :
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-                   (('a' <= (c) && (c) <= 'i') \
-                     || ('j' <= (c) && (c) <= 'r') \
-                     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-        || toupper (i) != TOUPPER (i))
-      exit(2);
-  exit (0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-
-
-
-
-
-
-
-
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-                  inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_Header=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_Header=no"
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-if test "${ac_cv_header_getopt_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for getopt.h" >&5
-echo $ECHO_N "checking for getopt.h... $ECHO_C" >&6
-if test "${ac_cv_header_getopt_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_getopt_h" >&5
-echo "${ECHO_T}$ac_cv_header_getopt_h" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking getopt.h usability" >&5
-echo $ECHO_N "checking getopt.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <getopt.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking getopt.h presence" >&5
-echo $ECHO_N "checking getopt.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <getopt.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc in
-  yes:no )
-    { echo "$as_me:$LINENO: WARNING: getopt.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: getopt.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: getopt.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: getopt.h: proceeding with the preprocessor's result" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-  no:yes )
-    { echo "$as_me:$LINENO: WARNING: getopt.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: getopt.h: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: getopt.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: getopt.h: check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: getopt.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: getopt.h: proceeding with the preprocessor's result" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-echo "$as_me:$LINENO: checking for getopt.h" >&5
-echo $ECHO_N "checking for getopt.h... $ECHO_C" >&6
-if test "${ac_cv_header_getopt_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_header_getopt_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_getopt_h" >&5
-echo "${ECHO_T}$ac_cv_header_getopt_h" >&6
-
-fi
-if test $ac_cv_header_getopt_h = yes; then
-  :
-else
-  NO_GETOPT=-DNO_GETOPT;GETOPT_O=compat/getopt.o
-fi
-
-
-if test "${ac_cv_header_paper_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for paper.h" >&5
-echo $ECHO_N "checking for paper.h... $ECHO_C" >&6
-if test "${ac_cv_header_paper_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_paper_h" >&5
-echo "${ECHO_T}$ac_cv_header_paper_h" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking paper.h usability" >&5
-echo $ECHO_N "checking paper.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <paper.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking paper.h presence" >&5
-echo $ECHO_N "checking paper.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <paper.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc in
-  yes:no )
-    { echo "$as_me:$LINENO: WARNING: paper.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: paper.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: paper.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: paper.h: proceeding with the preprocessor's result" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-  no:yes )
-    { echo "$as_me:$LINENO: WARNING: paper.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: paper.h: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: paper.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: paper.h: check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: paper.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: paper.h: proceeding with the preprocessor's result" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-echo "$as_me:$LINENO: checking for paper.h" >&5
-echo $ECHO_N "checking for paper.h... $ECHO_C" >&6
-if test "${ac_cv_header_paper_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_header_paper_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_paper_h" >&5
-echo "${ECHO_T}$ac_cv_header_paper_h" >&6
-
-fi
-if test $ac_cv_header_paper_h = yes; then
-  LIBPAPER=-lpaper
-else
-  NO_LIBPAPER=-DNO_LIBPAPER
-fi
-
-
-
-for ac_header in unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc in
-  yes:no )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-  no:yes )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=$ac_header_preproc"
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-echo "$as_me:$LINENO: checking for strerror" >&5
-echo $ECHO_N "checking for strerror... $ECHO_C" >&6
-if test "${ac_cv_func_strerror+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char strerror (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char strerror ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_strerror) || defined (__stub___strerror)
-choke me
-#else
-char (*f) () = strerror;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != strerror;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_strerror=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_func_strerror=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_strerror" >&5
-echo "${ECHO_T}$ac_cv_func_strerror" >&6
-if test $ac_cv_func_strerror = yes; then
-  :
-else
-  NO_STRERROR=-DNO_STRERROR
-fi
-
-
-for ac_func in strcasecmp
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-echo "$as_me:$LINENO: checking \"for gmake\"" >&5
-echo $ECHO_N "checking \"for gmake\"... $ECHO_C" >&6
-GMAKE=no
-${MAKE=make} --version 2> /dev/null | grep GNU > /dev/null && GMAKE=yes
-echo "$as_me:$LINENO: result: $GMAKE" >&5
-echo "${ECHO_T}$GMAKE" >&6
-if test "$GMAKE" = "yes"; then
-       GMAKEDEPEND0='ifeq (.depend,$(wildcard .depend))'
-       GMAKEDEPEND1='include .depend'
-       GMAKEDEPEND2='endif'
-fi
-
-echo "$as_me:$LINENO: checking \"if makeinfo can output html\"" >&5
-echo $ECHO_N "checking \"if makeinfo can output html\"... $ECHO_C" >&6
-MAKEINFOHTML=no
-${MAKEINFO=makeinfo} --help | grep .--html > /dev/null && MAKEINFOHTML=yes
-echo "$as_me:$LINENO: result: $MAKEINFOHTML" >&5
-echo "${ECHO_T}$MAKEINFOHTML" >&6
-if test "$MAKEINFOHTML" = "yes"; then
-   REMOVEHTMLTAGS="cat"
-   INFOTOHTML="$MAKEINFO --html"
-else
-   REMOVEHTMLTAGS="sed 's/ifnottex/ifinfo/; s/ifnotinfo/iftex/'"
-   INFOTOHTML="perl texi2html -monolithic"
-fi
-
-
-
-
-
-
-
-
-
-
-
-          ac_config_files="$ac_config_files Makefile"
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-{
-  (set) 2>&1 |
-    case `(ac_space=' '; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      # `set' does not quote correctly, so add quotes (double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \).
-      sed -n \
-        "s/'/'\\\\''/g;
-         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;;
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n \
-        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-} |
-  sed '
-     t clear
-     : clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     : end' >>confcache
-if diff $cache_file confcache >/dev/null 2>&1; then :; else
-  if test -w $cache_file; then
-    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
-    cat confcache >$cache_file
-  else
-    echo "not updating unwritable cache $cache_file"
-  fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[        ]*VPATH[        ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[   ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[     ]*$//;
-}'
-fi
-
-# Transform confdefs.h into DEFS.
-# Protect against shell expansion while executing Makefile rules.
-# Protect against Makefile macro expansion.
-#
-# If the first sed substitution is executed (which looks for macros that
-# take arguments), then we branch to the quote section.  Otherwise,
-# look for a macro that doesn't take arguments.
-cat >confdef2opt.sed <<\_ACEOF
-t clear
-: clear
-s,^[   ]*#[    ]*define[       ][      ]*\([^  (][^    (]*([^)]*)\)[   ]*\(.*\),-D\1=\2,g
-t quote
-s,^[   ]*#[    ]*define[       ][      ]*\([^  ][^     ]*\)[   ]*\(.*\),-D\1=\2,g
-t quote
-d
-: quote
-s,[    `~#$^&*(){}\\|;'"<>?],\\&,g
-s,\[,\\&,g
-s,\],\\&,g
-s,\$,$$,g
-p
-_ACEOF
-# We use echo to avoid assuming a particular line-breaking character.
-# The extra dot is to prevent the shell from consuming trailing
-# line-breaks from the sub-command output.  A line-break within
-# single-quotes doesn't work because, if this script is created in a
-# platform that uses two characters for line-breaks (e.g., DOS), tr
-# would break.
-ac_LF_and_DOT=`echo; echo .`
-DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
-rm -f confdef2opt.sed
-
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_i=`echo "$ac_i" |
-         sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
-  # 2. Add them.
-  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-
-# Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-        X"$0" : 'X\(//\)$' \| \
-        X"$0" : 'X\(/\)$' \| \
-        .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-         /^X\/\(\/\/\)$/{ s//\1/; q; }
-         /^X\/\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-        case $as_dir in
-        /*)
-          if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-            $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-            $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-            CONFIG_SHELL=$as_dir/$as_base
-            export CONFIG_SHELL
-            exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-          fi;;
-        esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='     ' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS="  $as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-exec 6>&1
-
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.  Logging --version etc. is OK.
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
-This file was extended by $as_me, which was
-generated by GNU Autoconf 2.57.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
-_ACEOF
-
-# Files that config.status was made for.
-if test -n "$ac_config_files"; then
-  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_headers"; then
-  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_links"; then
-  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_commands"; then
-  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
-  -h, --help       print this help, then exit
-  -V, --version    print version number, then exit
-  -q, --quiet      do not print progress messages
-  -d, --debug      don't remove temporary files
-      --recheck    update $as_me by reconfiguring in the same conditions
-  --file=FILE[:TEMPLATE]
-                   instantiate the configuration file FILE
-
-Configuration files:
-$config_files
-
-Report bugs to <bug-autoconf@gnu.org>."
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-config.status
-configured by $0, generated by GNU Autoconf 2.57,
-  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-srcdir=$srcdir
-INSTALL="$INSTALL"
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value.  By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
-do
-  case $1 in
-  --*=*)
-    ac_option=`expr "x$1" : 'x\([^=]*\)='`
-    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
-    ac_shift=:
-    ;;
-  -*)
-    ac_option=$1
-    ac_optarg=$2
-    ac_shift=shift
-    ;;
-  *) # This is not an option, so the user has probably given explicit
-     # arguments.
-     ac_option=$1
-     ac_need_defaults=false;;
-  esac
-
-  case $ac_option in
-  # Handling of the options.
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    ac_cs_recheck=: ;;
-  --version | --vers* | -V )
-    echo "$ac_cs_version"; exit 0 ;;
-  --he | --h)
-    # Conflict between --help and --header
-    { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; };;
-  --help | --hel | -h )
-    echo "$ac_cs_usage"; exit 0 ;;
-  --debug | --d* | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    $ac_shift
-    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
-    ac_need_defaults=false;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; } ;;
-
-  *) ac_config_targets="$ac_config_targets $1" ;;
-
-  esac
-  shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
-  exec 6>/dev/null
-  ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-if \$ac_cs_recheck; then
-  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-
-
-
-
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_config_target in $ac_config_targets
-do
-  case "$ac_config_target" in
-  # Handling of arguments.
-  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-fi
-
-# Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason to put it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
-  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
-}  ||
-{
-  tmp=./confstat$$-$RANDOM
-  (umask 077 && mkdir $tmp)
-} ||
-{
-   echo "$me: cannot create a temporary directory in ." >&2
-   { (exit 1); exit 1; }
-}
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-
-#
-# CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
-  # Protect against being on the right side of a sed subst in config.status.
-  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
-   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-s,@SHELL@,$SHELL,;t t
-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-s,@exec_prefix@,$exec_prefix,;t t
-s,@prefix@,$prefix,;t t
-s,@program_transform_name@,$program_transform_name,;t t
-s,@bindir@,$bindir,;t t
-s,@sbindir@,$sbindir,;t t
-s,@libexecdir@,$libexecdir,;t t
-s,@datadir@,$datadir,;t t
-s,@sysconfdir@,$sysconfdir,;t t
-s,@sharedstatedir@,$sharedstatedir,;t t
-s,@localstatedir@,$localstatedir,;t t
-s,@libdir@,$libdir,;t t
-s,@includedir@,$includedir,;t t
-s,@oldincludedir@,$oldincludedir,;t t
-s,@infodir@,$infodir,;t t
-s,@mandir@,$mandir,;t t
-s,@build_alias@,$build_alias,;t t
-s,@host_alias@,$host_alias,;t t
-s,@target_alias@,$target_alias,;t t
-s,@DEFS@,$DEFS,;t t
-s,@ECHO_C@,$ECHO_C,;t t
-s,@ECHO_N@,$ECHO_N,;t t
-s,@ECHO_T@,$ECHO_T,;t t
-s,@LIBS@,$LIBS,;t t
-s,@CC@,$CC,;t t
-s,@CFLAGS@,$CFLAGS,;t t
-s,@LDFLAGS@,$LDFLAGS,;t t
-s,@CPPFLAGS@,$CPPFLAGS,;t t
-s,@ac_ct_CC@,$ac_ct_CC,;t t
-s,@EXEEXT@,$EXEEXT,;t t
-s,@OBJEXT@,$OBJEXT,;t t
-s,@RANLIB@,$RANLIB,;t t
-s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
-s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
-s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
-s,@INSTALL_DATA@,$INSTALL_DATA,;t t
-s,@CPP@,$CPP,;t t
-s,@EGREP@,$EGREP,;t t
-s,@GETOPT_O@,$GETOPT_O,;t t
-s,@NO_GETOPT@,$NO_GETOPT,;t t
-s,@NO_LIBPAPER@,$NO_LIBPAPER,;t t
-s,@LIBPAPER@,$LIBPAPER,;t t
-s,@NO_STRERROR@,$NO_STRERROR,;t t
-s,@GMAKEDEPEND0@,$GMAKEDEPEND0,;t t
-s,@GMAKEDEPEND1@,$GMAKEDEPEND1,;t t
-s,@GMAKEDEPEND2@,$GMAKEDEPEND2,;t t
-s,@LIBOBJS@,$LIBOBJS,;t t
-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
-CEOF
-
-_ACEOF
-
-  cat >>$CONFIG_STATUS <<\_ACEOF
-  # Split the substitutions into bite-sized pieces for seds with
-  # small command number limits, like on Digital OSF/1 and HP-UX.
-  ac_max_sed_lines=48
-  ac_sed_frag=1 # Number of current file.
-  ac_beg=1 # First line for current file.
-  ac_end=$ac_max_sed_lines # Line after last line for current file.
-  ac_more_lines=:
-  ac_sed_cmds=
-  while $ac_more_lines; do
-    if test $ac_beg -gt 1; then
-      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    else
-      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    fi
-    if test ! -s $tmp/subs.frag; then
-      ac_more_lines=false
-    else
-      # The purpose of the label and of the branching condition is to
-      # speed up the sed processing (if there are no `@' at all, there
-      # is no need to browse any of the substitutions).
-      # These are the two extra sed commands mentioned above.
-      (echo ':t
-  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
-      if test -z "$ac_sed_cmds"; then
-       ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
-      else
-       ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
-      fi
-      ac_sed_frag=`expr $ac_sed_frag + 1`
-      ac_beg=$ac_end
-      ac_end=`expr $ac_end + $ac_max_sed_lines`
-    fi
-  done
-  if test -z "$ac_sed_cmds"; then
-    ac_sed_cmds=cat
-  fi
-fi # test -n "$CONFIG_FILES"
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-        cat >$tmp/stdin
-        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
-  esac
-
-  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
-  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$ac_file" : 'X\(//\)[^/]' \| \
-         X"$ac_file" : 'X\(//\)$' \| \
-         X"$ac_file" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-         /^X\(\/\/\)$/{ s//\1/; q; }
-         /^X\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
-  { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$as_dir" : 'X\(//\)[^/]' \| \
-         X"$as_dir" : 'X\(//\)$' \| \
-         X"$as_dir" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-         /^X\(\/\/\)$/{ s//\1/; q; }
-         /^X\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-  ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
-
-
-  case $INSTALL in
-  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
-  esac
-
-  if test x"$ac_file" != x-; then
-    { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    rm -f "$ac_file"
-  fi
-  # Let's still pretend it is `configure' which instantiates (i.e., don't
-  # use $as_me), people would be surprised to read:
-  #    /* config.h.  Generated by config.status.  */
-  if test x"$ac_file" = x-; then
-    configure_input=
-  else
-    configure_input="$ac_file.  "
-  fi
-  configure_input=$configure_input"Generated from `echo $ac_file_in |
-                                     sed 's,.*/,,'` by configure."
-
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-         # Absolute (can't be DOS-style, as IFS=:)
-         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-         echo $f;;
-      *) # Relative
-         if test -f "$f"; then
-           # Build tree
-           echo $f
-         elif test -f "$srcdir/$f"; then
-           # Source tree
-           echo $srcdir/$f
-         else
-           # /dev/null tree
-           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-         fi;;
-      esac
-    done` || { (exit 1); exit 1; }
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-  sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s,@configure_input@,$configure_input,;t t
-s,@srcdir@,$ac_srcdir,;t t
-s,@abs_srcdir@,$ac_abs_srcdir,;t t
-s,@top_srcdir@,$ac_top_srcdir,;t t
-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-s,@builddir@,$ac_builddir,;t t
-s,@abs_builddir@,$ac_abs_builddir,;t t
-s,@top_builddir@,$ac_top_builddir,;t t
-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
-s,@INSTALL@,$ac_INSTALL,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
-  rm -f $tmp/stdin
-  if test x"$ac_file" != x-; then
-    mv $tmp/out $ac_file
-  else
-    cat $tmp/out
-    rm -f $tmp/out
-  fi
-
-done
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded.  So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status.  When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
-  ac_cs_success=:
-  ac_config_status_args=
-  test "$silent" = yes &&
-    ac_config_status_args="$ac_config_status_args --quiet"
-  exec 5>/dev/null
-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-  exec 5>>config.log
-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-  # would make configure fail if this is the last instruction.
-  $ac_cs_success || { (exit 1); exit 1; }
-fi
-
-
-
-
-
-
-          ac_config_files="$ac_config_files doc/Makefile"
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-{
-  (set) 2>&1 |
-    case `(ac_space=' '; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      # `set' does not quote correctly, so add quotes (double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \).
-      sed -n \
-        "s/'/'\\\\''/g;
-         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;;
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n \
-        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-} |
-  sed '
-     t clear
-     : clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     : end' >>confcache
-if diff $cache_file confcache >/dev/null 2>&1; then :; else
-  if test -w $cache_file; then
-    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
-    cat confcache >$cache_file
-  else
-    echo "not updating unwritable cache $cache_file"
-  fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[        ]*VPATH[        ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[   ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[     ]*$//;
-}'
-fi
-
-# Transform confdefs.h into DEFS.
-# Protect against shell expansion while executing Makefile rules.
-# Protect against Makefile macro expansion.
-#
-# If the first sed substitution is executed (which looks for macros that
-# take arguments), then we branch to the quote section.  Otherwise,
-# look for a macro that doesn't take arguments.
-cat >confdef2opt.sed <<\_ACEOF
-t clear
-: clear
-s,^[   ]*#[    ]*define[       ][      ]*\([^  (][^    (]*([^)]*)\)[   ]*\(.*\),-D\1=\2,g
-t quote
-s,^[   ]*#[    ]*define[       ][      ]*\([^  ][^     ]*\)[   ]*\(.*\),-D\1=\2,g
-t quote
-d
-: quote
-s,[    `~#$^&*(){}\\|;'"<>?],\\&,g
-s,\[,\\&,g
-s,\],\\&,g
-s,\$,$$,g
-p
-_ACEOF
-# We use echo to avoid assuming a particular line-breaking character.
-# The extra dot is to prevent the shell from consuming trailing
-# line-breaks from the sub-command output.  A line-break within
-# single-quotes doesn't work because, if this script is created in a
-# platform that uses two characters for line-breaks (e.g., DOS), tr
-# would break.
-ac_LF_and_DOT=`echo; echo .`
-DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
-rm -f confdef2opt.sed
-
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_i=`echo "$ac_i" |
-         sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
-  # 2. Add them.
-  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-
-# Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-        X"$0" : 'X\(//\)$' \| \
-        X"$0" : 'X\(/\)$' \| \
-        .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-         /^X\/\(\/\/\)$/{ s//\1/; q; }
-         /^X\/\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-        case $as_dir in
-        /*)
-          if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-            $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-            $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-            CONFIG_SHELL=$as_dir/$as_base
-            export CONFIG_SHELL
-            exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-          fi;;
-        esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='     ' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS="  $as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-exec 6>&1
-
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.  Logging --version etc. is OK.
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
-This file was extended by $as_me, which was
-generated by GNU Autoconf 2.57.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
-_ACEOF
-
-# Files that config.status was made for.
-if test -n "$ac_config_files"; then
-  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_headers"; then
-  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_links"; then
-  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_commands"; then
-  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
-  -h, --help       print this help, then exit
-  -V, --version    print version number, then exit
-  -q, --quiet      do not print progress messages
-  -d, --debug      don't remove temporary files
-      --recheck    update $as_me by reconfiguring in the same conditions
-  --file=FILE[:TEMPLATE]
-                   instantiate the configuration file FILE
-
-Configuration files:
-$config_files
-
-Report bugs to <bug-autoconf@gnu.org>."
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-config.status
-configured by $0, generated by GNU Autoconf 2.57,
-  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-srcdir=$srcdir
-INSTALL="$INSTALL"
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value.  By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
-do
-  case $1 in
-  --*=*)
-    ac_option=`expr "x$1" : 'x\([^=]*\)='`
-    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
-    ac_shift=:
-    ;;
-  -*)
-    ac_option=$1
-    ac_optarg=$2
-    ac_shift=shift
-    ;;
-  *) # This is not an option, so the user has probably given explicit
-     # arguments.
-     ac_option=$1
-     ac_need_defaults=false;;
-  esac
-
-  case $ac_option in
-  # Handling of the options.
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    ac_cs_recheck=: ;;
-  --version | --vers* | -V )
-    echo "$ac_cs_version"; exit 0 ;;
-  --he | --h)
-    # Conflict between --help and --header
-    { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; };;
-  --help | --hel | -h )
-    echo "$ac_cs_usage"; exit 0 ;;
-  --debug | --d* | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    $ac_shift
-    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
-    ac_need_defaults=false;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; } ;;
-
-  *) ac_config_targets="$ac_config_targets $1" ;;
-
-  esac
-  shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
-  exec 6>/dev/null
-  ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-if \$ac_cs_recheck; then
-  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-
-
-
-
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_config_target in $ac_config_targets
-do
-  case "$ac_config_target" in
-  # Handling of arguments.
-  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-  "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-fi
-
-# Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason to put it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
-  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
-}  ||
-{
-  tmp=./confstat$$-$RANDOM
-  (umask 077 && mkdir $tmp)
-} ||
-{
-   echo "$me: cannot create a temporary directory in ." >&2
-   { (exit 1); exit 1; }
-}
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-
-#
-# CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
-  # Protect against being on the right side of a sed subst in config.status.
-  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
-   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-s,@SHELL@,$SHELL,;t t
-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-s,@exec_prefix@,$exec_prefix,;t t
-s,@prefix@,$prefix,;t t
-s,@program_transform_name@,$program_transform_name,;t t
-s,@bindir@,$bindir,;t t
-s,@sbindir@,$sbindir,;t t
-s,@libexecdir@,$libexecdir,;t t
-s,@datadir@,$datadir,;t t
-s,@sysconfdir@,$sysconfdir,;t t
-s,@sharedstatedir@,$sharedstatedir,;t t
-s,@localstatedir@,$localstatedir,;t t
-s,@libdir@,$libdir,;t t
-s,@includedir@,$includedir,;t t
-s,@oldincludedir@,$oldincludedir,;t t
-s,@infodir@,$infodir,;t t
-s,@mandir@,$mandir,;t t
-s,@build_alias@,$build_alias,;t t
-s,@host_alias@,$host_alias,;t t
-s,@target_alias@,$target_alias,;t t
-s,@DEFS@,$DEFS,;t t
-s,@ECHO_C@,$ECHO_C,;t t
-s,@ECHO_N@,$ECHO_N,;t t
-s,@ECHO_T@,$ECHO_T,;t t
-s,@LIBS@,$LIBS,;t t
-s,@CC@,$CC,;t t
-s,@CFLAGS@,$CFLAGS,;t t
-s,@LDFLAGS@,$LDFLAGS,;t t
-s,@CPPFLAGS@,$CPPFLAGS,;t t
-s,@ac_ct_CC@,$ac_ct_CC,;t t
-s,@EXEEXT@,$EXEEXT,;t t
-s,@OBJEXT@,$OBJEXT,;t t
-s,@RANLIB@,$RANLIB,;t t
-s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
-s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
-s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
-s,@INSTALL_DATA@,$INSTALL_DATA,;t t
-s,@CPP@,$CPP,;t t
-s,@EGREP@,$EGREP,;t t
-s,@GETOPT_O@,$GETOPT_O,;t t
-s,@NO_GETOPT@,$NO_GETOPT,;t t
-s,@NO_LIBPAPER@,$NO_LIBPAPER,;t t
-s,@LIBPAPER@,$LIBPAPER,;t t
-s,@NO_STRERROR@,$NO_STRERROR,;t t
-s,@GMAKEDEPEND0@,$GMAKEDEPEND0,;t t
-s,@GMAKEDEPEND1@,$GMAKEDEPEND1,;t t
-s,@GMAKEDEPEND2@,$GMAKEDEPEND2,;t t
-s,@LIBOBJS@,$LIBOBJS,;t t
-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
-s,@MAKEINFO@,$MAKEINFO,;t t
-s,@REMOVEHTMLTAGS@,$REMOVEHTMLTAGS,;t t
-s,@INFOTOHTML@,$INFOTOHTML,;t t
-CEOF
-
-_ACEOF
-
-  cat >>$CONFIG_STATUS <<\_ACEOF
-  # Split the substitutions into bite-sized pieces for seds with
-  # small command number limits, like on Digital OSF/1 and HP-UX.
-  ac_max_sed_lines=48
-  ac_sed_frag=1 # Number of current file.
-  ac_beg=1 # First line for current file.
-  ac_end=$ac_max_sed_lines # Line after last line for current file.
-  ac_more_lines=:
-  ac_sed_cmds=
-  while $ac_more_lines; do
-    if test $ac_beg -gt 1; then
-      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    else
-      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    fi
-    if test ! -s $tmp/subs.frag; then
-      ac_more_lines=false
-    else
-      # The purpose of the label and of the branching condition is to
-      # speed up the sed processing (if there are no `@' at all, there
-      # is no need to browse any of the substitutions).
-      # These are the two extra sed commands mentioned above.
-      (echo ':t
-  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
-      if test -z "$ac_sed_cmds"; then
-       ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
-      else
-       ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
-      fi
-      ac_sed_frag=`expr $ac_sed_frag + 1`
-      ac_beg=$ac_end
-      ac_end=`expr $ac_end + $ac_max_sed_lines`
-    fi
-  done
-  if test -z "$ac_sed_cmds"; then
-    ac_sed_cmds=cat
-  fi
-fi # test -n "$CONFIG_FILES"
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-        cat >$tmp/stdin
-        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
-  esac
-
-  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
-  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$ac_file" : 'X\(//\)[^/]' \| \
-         X"$ac_file" : 'X\(//\)$' \| \
-         X"$ac_file" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-         /^X\(\/\/\)$/{ s//\1/; q; }
-         /^X\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
-  { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$as_dir" : 'X\(//\)[^/]' \| \
-         X"$as_dir" : 'X\(//\)$' \| \
-         X"$as_dir" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-         /^X\(\/\/\)$/{ s//\1/; q; }
-         /^X\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-  ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
-
-
-  case $INSTALL in
-  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
-  esac
-
-  if test x"$ac_file" != x-; then
-    { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    rm -f "$ac_file"
-  fi
-  # Let's still pretend it is `configure' which instantiates (i.e., don't
-  # use $as_me), people would be surprised to read:
-  #    /* config.h.  Generated by config.status.  */
-  if test x"$ac_file" = x-; then
-    configure_input=
-  else
-    configure_input="$ac_file.  "
-  fi
-  configure_input=$configure_input"Generated from `echo $ac_file_in |
-                                     sed 's,.*/,,'` by configure."
-
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-         # Absolute (can't be DOS-style, as IFS=:)
-         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-         echo $f;;
-      *) # Relative
-         if test -f "$f"; then
-           # Build tree
-           echo $f
-         elif test -f "$srcdir/$f"; then
-           # Source tree
-           echo $srcdir/$f
-         else
-           # /dev/null tree
-           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-         fi;;
-      esac
-    done` || { (exit 1); exit 1; }
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-  sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s,@configure_input@,$configure_input,;t t
-s,@srcdir@,$ac_srcdir,;t t
-s,@abs_srcdir@,$ac_abs_srcdir,;t t
-s,@top_srcdir@,$ac_top_srcdir,;t t
-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-s,@builddir@,$ac_builddir,;t t
-s,@abs_builddir@,$ac_abs_builddir,;t t
-s,@top_builddir@,$ac_top_builddir,;t t
-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
-s,@INSTALL@,$ac_INSTALL,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
-  rm -f $tmp/stdin
-  if test x"$ac_file" != x-; then
-    mv $tmp/out $ac_file
-  else
-    cat $tmp/out
-    rm -f $tmp/out
-  fi
-
-done
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded.  So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status.  When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
-  ac_cs_success=:
-  ac_config_status_args=
-  test "$silent" = yes &&
-    ac_config_status_args="$ac_config_status_args --quiet"
-  exec 5>/dev/null
-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-  exec 5>>config.log
-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-  # would make configure fail if this is the last instruction.
-  $ac_cs_success || { (exit 1); exit 1; }
-fi
-
-
diff --git a/barcode-0.98/configure.in.dist b/barcode-0.98/configure.in.dist
deleted file mode 100644 (file)
index 07120b4..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-dnl Process this file with autoconf to produce a configure script.
-
-AC_INIT(barcode.h)
-AC_PREREQ(2.12)
-
-AC_PROG_CC
-AC_PROG_RANLIB
-AC_PROG_INSTALL
-
-dnl Add "-Wall" if this is gcc
-if test x$GCC = xyes; then
-       CFLAGS="$CFLAGS -Wall"
-fi
-
-
-dnl Check for getopt and libpaper. If getopt is missing, use our version
-AC_CHECK_HEADER(getopt.h, ,NO_GETOPT=-DNO_GETOPT;GETOPT_O=compat/getopt.o)
-AC_CHECK_HEADER(paper.h, LIBPAPER=-lpaper, NO_LIBPAPER=-DNO_LIBPAPER)
-AC_CHECK_HEADERS(unistd.h)
-
-AC_CHECK_FUNC(strerror, , NO_STRERROR=-DNO_STRERROR)
-AC_CHECK_FUNCS(strcasecmp)
-
-dnl Check if this is gmake, but allow ovverriding using $MAKE
-AC_MSG_CHECKING("for gmake")
-GMAKE=no
-${MAKE=make} --version 2> /dev/null | grep GNU > /dev/null && GMAKE=yes
-AC_MSG_RESULT($GMAKE)
-if test "$GMAKE" = "yes"; then
-       GMAKEDEPEND0='ifeq (.depend,$(wildcard .depend))'
-       GMAKEDEPEND1='include .depend'
-       GMAKEDEPEND2='endif'
-fi
-
-dnl Check if we use makeinfo or the local texi2html tool
-AC_MSG_CHECKING("if makeinfo can output html")
-MAKEINFOHTML=no
-${MAKEINFO=makeinfo} --help | grep .--html > /dev/null && MAKEINFOHTML=yes
-AC_MSG_RESULT($MAKEINFOHTML)
-if test "$MAKEINFOHTML" = "yes"; then
-   REMOVEHTMLTAGS="cat"
-   INFOTOHTML="$MAKEINFO --html"
-else
-   REMOVEHTMLTAGS="sed 's/ifnottex/ifinfo/; s/ifnotinfo/iftex/'"
-   INFOTOHTML="perl texi2html -monolithic"
-fi
-
-
-AC_SUBST(GETOPT_O)
-AC_SUBST(NO_GETOPT)
-AC_SUBST(NO_LIBPAPER)
-AC_SUBST(LIBPAPER)
-AC_SUBST(NO_STRERROR)
-AC_SUBST(GMAKEDEPEND0)
-AC_SUBST(GMAKEDEPEND1)
-AC_SUBST(GMAKEDEPEND2)
-
-AC_OUTPUT(Makefile)
-
-AC_SUBST(MAKEINFO)
-AC_SUBST(REMOVEHTMLTAGS)
-AC_SUBST(INFOTOHTML)
-
-AC_OUTPUT(doc/Makefile)
-
diff --git a/barcode-0.98/contrib/barcode-SVG.tar.gz b/barcode-0.98/contrib/barcode-SVG.tar.gz
deleted file mode 100644 (file)
index 69df956..0000000
Binary files a/barcode-0.98/contrib/barcode-SVG.tar.gz and /dev/null differ
diff --git a/barcode-0.98/contrib/barcode-SVG.tar.gz.README b/barcode-0.98/contrib/barcode-SVG.tar.gz.README
deleted file mode 100644 (file)
index 1608eba..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-
-[readme written by GNU-barcode maintainer]
-
-This is a stripped version of what you can find at:
-       http://www.onefour.net/barcode/SVG/barcode097-SVG.tar.gz
-
-It's by David J. Humphreys, it's GPL code and the original tarball
-(as per the previous URL) contains:
-
--rwxr--r-- david/david     243 2002-01-02 04:18:00 Makefile
--rwxr--r-- david/david    1284 2002-01-08 00:26:42 main.c
--rwxr--r-- david/david   37796 2002-01-02 04:33:00 screen1.png
--rwxr--r-- david/david    5503 2002-01-08 00:30:00 svg.c
--rwxr--r-- david/david    2499 2002-01-02 03:37:00 test1.svg
--rwxr--r-- david/david    2499 2002-01-02 03:44:00 test2.svg
--rwxr--r-- david/david    2499 2002-01-02 03:49:00 test3.svg
--rwxr--r-- david/david   34185 2002-01-02 04:41:00 test4.png
--rwxr--r-- david/david    1834 2002-01-02 04:19:00 test4.svg
--rwxr--r-- david/david   92713 2002-01-02 04:36:00 transformation.png
--rwxr--r-- david/david     586 2002-01-02 04:11:00 transformation.svg
-
-Here I only included Makefile, main.c, svg.c, after converting
-newlines to unix-style and changing permissions.
-
diff --git a/barcode-0.98/contrib/barcode-for-delphi.tar.gz b/barcode-0.98/contrib/barcode-for-delphi.tar.gz
deleted file mode 100644 (file)
index cbc8e67..0000000
Binary files a/barcode-0.98/contrib/barcode-for-delphi.tar.gz and /dev/null differ
diff --git a/barcode-0.98/contrib/barcode-for-delphi.tar.gz.README b/barcode-0.98/contrib/barcode-for-delphi.tar.gz.README
deleted file mode 100644 (file)
index 36d216d..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-
-The barcode-for-delphi tarball includes a version of this package
-ported to run under Delphi. Please note that you can't distribute the
-executable because of the GPL (i.e., disitributing it would be
-copyright violation, because the executable is a derived work of GNU
-barcode, whose authors don't allow distributing under non-GPL terms.
-
-I still think it may be useful to some users.
-
-The code has been contributed by Michael Geddes <michael@webease.com.au>.
diff --git a/barcode-0.98/contrib/barcodeps-0.1.tgz b/barcode-0.98/contrib/barcodeps-0.1.tgz
deleted file mode 100644 (file)
index 1dadb1c..0000000
Binary files a/barcode-0.98/contrib/barcodeps-0.1.tgz and /dev/null differ
diff --git a/barcode-0.98/contrib/barcodeps-0.1.tgz.README b/barcode-0.98/contrib/barcodeps-0.1.tgz.README
deleted file mode 100644 (file)
index b0364f6..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-
-                         ***** barcodeps  0.1 *****
-                                 2000-10-07
-
-Barcodes generated in PostScript
-by Hans Schou http://www.schou.dk
-
-PostScript is a programming language. It has all the control structures
-needed for creating barcodes on the fly. With this example it is not
-needed to have another programming language than PostScript as the
-barcodes are generated within the PostScript printer.
-
-This contribution gives some examples of how to generate Interleave 2 of 5
-barcodes. Edit the bottom of i25.ps with a new number and send it to
-a PostScript printer to see an example.
-
-Usage, in PostScript:
-To draw a Interleave 2 of 5 use the following command in i25.ps
-  (123456789) BarCodeI25
-
-This method is very usefull used together with other scripts
-or programming language as it is only necessary to copy some
-files to the printer. No program execution is needed.
-
-
diff --git a/barcode-0.98/contrib/grab-0.0.4.tar.gz b/barcode-0.98/contrib/grab-0.0.4.tar.gz
deleted file mode 100644 (file)
index 91fa9e6..0000000
Binary files a/barcode-0.98/contrib/grab-0.0.4.tar.gz and /dev/null differ
diff --git a/barcode-0.98/contrib/grab-0.0.4.tar.gz.README b/barcode-0.98/contrib/grab-0.0.4.tar.gz.README
deleted file mode 100644 (file)
index 4a04807..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-
-The purpose of this program is to read a (scanned) image containing a
-barcode. The image is then interpreted and the barcode is decoded.
-The decoded string is outputted to stdout.
-Currently, only Code-128 is supported.
-
-The program is GPL'd and it's the work of Tuukka Toivonen.
-
-The home page for this and other programs by Tuukka is 
-       http://www.ee.oulu.fi/~tuukkat/releases.html
-while a bare ls-like listing of all packages is at
-       http://www.ee.oulu.fi/~tuukkat/rel/
diff --git a/barcode-0.98/debian/README.debian b/barcode-0.98/debian/README.debian
deleted file mode 100644 (file)
index 7223023..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-The Debian Package barcode
-----------------------------
-
-This Debian package is integrated in the upstream release of GNU
-barcode, maintained by Alessandro Rubini (rubini@gnu.org,
-rubini@prosa.it).  Since I have no extended experience with Debian
-packages, I'm willing to accept any fixes that seem fit, as well as a
-real Debian maintainer for the Debian package.
-
diff --git a/barcode-0.98/debian/changelog b/barcode-0.98/debian/changelog
deleted file mode 100644 (file)
index b43e686..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-barcode (0.98) unstable; urgency=low
-
-  * New upstream release 
-
- -- Alessandro Rubini <rubini@gnu.org>  Fri,  1 Mar 2002 23:04:14 +0100
-
-barcode (0.96) unstable; urgency=low
-
-  * New upstream release 
-
- -- Alessandro Rubini <rubini@gnu.org>  Wed,  8 Nov 2000 18:29:18 +0200
-
-barcode (0.95) unstable; urgency=low
-
-  * New upstream release 
-
- -- Alessandro Rubini <rubini@gnu.org>  Thu,  3 Feb 2000 21:16:59 +0200
-
-barcode (0.94) unstable; urgency=low
-
-  * Initial Release.
-
- -- Alessandro Rubini <rubini@gnu.org>  Sun, 24 Oct 1999 01:10:23 +0200
-
-Local variables:
-mode: debian-changelog
-End:
diff --git a/barcode-0.98/debian/control b/barcode-0.98/debian/control
deleted file mode 100644 (file)
index aacbfd4..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-Source: barcode
-Section: misc
-Priority: optional
-Maintainer: Alessandro Rubini <rubini@prosa.it>
-Standards-Version: 2.5.0
-
-Package: barcode
-Architecture: any
-Depends: ${shlibs:Depends}
-Description:  Creates barcodes in .ps format
- GNU barcode can create printouts for the conventional
- product packagging standards: UPC-A, UPC-E, EAN-13, EAN-8, ISBN, code 39
- code 128 (b and c), and interleaved 2 of 5 . Ouput is generated as 
- either Postscript or Encapsulated Postscript.
diff --git a/barcode-0.98/debian/copyright b/barcode-0.98/debian/copyright
deleted file mode 100644 (file)
index c193af2..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-This package was written by Alessandro Rubini rubini@gnu.org on Sun, 24 Oct 1999 01:10:23 +0200.
-
-The pristine source can be downloaded from ftp://ftp.gnu.org/pub/barcode
-and GNU mirrors. Latest and greatest version (also beta) are immediately
-uploaded to ftp://ftp.prosa.it/pub/software.
-
-Copyright: GPL (see /usr/doc/copyright/GPL)
-
diff --git a/barcode-0.98/debian/dirs b/barcode-0.98/debian/dirs
deleted file mode 100644 (file)
index 6822e40..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-usr/bin
-usr/include
-usr/info
diff --git a/barcode-0.98/debian/info b/barcode-0.98/debian/info
deleted file mode 100644 (file)
index 18336bf..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-# This is a configuration files for installing a .info menu
-# The Description to be placed into the directory
-DESCR="Barcode library and frontend"
-
-# The section this info file should be placed in (Regexp) followed by
-# the new section name to be created if the Regexp does not match
-# (Optional. If not given the .info will be appended to the directory)
-SECTION_MATCH="[cC]ommands"
-SECTION_NAME="General Commands"
-
-# The file referred to from the Info directory
-FILE=barcode.info
-
-# Optional. The files to be copied to /usr/info
-FILES=doc/*.info
diff --git a/barcode-0.98/debian/rules b/barcode-0.98/debian/rules
deleted file mode 100755 (executable)
index c48c5a1..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/usr/bin/make -f
-# Made with the aid of debmake, by Christoph Lameter,
-# based on the sample debian/rules file for GNU hello by Ian Jackson.
-
-package=barcode
-
-build:
-       $(checkdir)
-       ./configure --prefix=/usr
-       $(MAKE) CFLAGS="-O2 -g -Wall"
-       touch build
-
-clean:
-       $(checkdir)
-       -rm -f build
-       -$(MAKE) distclean
-       -rm -f `find . -name "*~"`
-       -rm -rf debian/tmp debian/files* core debian/substvars
-
-binary-indep: checkroot build
-       $(checkdir)
-# There are no architecture-independent files to be uploaded
-# generated by this package.  If there were any they would be
-# made here.
-
-binary-arch: checkroot build
-       $(checkdir)
-       -rm -rf debian/tmp
-       install -d debian/tmp
-       cd debian/tmp && install -d `cat ../dirs`
-       $(MAKE) install prefix=`pwd`/debian/tmp/usr
-# Must have debmake installed for this to work. Otherwise please copy
-# /usr/bin/debstd into the debian directory and change debstd to debian/debstd
-       debstd ChangeLog README TODO INSTALL
-       dpkg-gencontrol
-       chown -R root.root debian/tmp
-       chmod -R go=rX debian/tmp
-       dpkg --build debian/tmp ..
-
-define checkdir
-       test -f debian/rules
-endef
-
-binary: binary-indep binary-arch
-
-checkroot:
-       $(checkdir)
-       test root = "`whoami`"
-
-.PHONY: binary binary-arch binary-indep clean checkroot
diff --git a/barcode-0.98/doc/Makefile.in b/barcode-0.98/doc/Makefile.in
deleted file mode 100644 (file)
index dae8f6b..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-#
-# Makefile (now .in) for the documentation directory
-#
-# Copyright 1994,2000   rubini@gnu.org (Alessandro Rubini)
-#
-#################
-#
-# BE CAREFUL in editing:
-#      due to the large number of index files, and my use of a non standard
-#      info input file, any file $(TARGET).* is removed by "make clean"
-#
-#      I chose to use a prefix for the input file ("doc.$(TARGET)"), to ease
-#      makeing clean and applying my own rules.
-#
-###################################################################
-#
-# First of all, retrieve features of makeinfo, to know if we can do images
-# and --html. Also, allow MAKEINFO to be specified on the commandline to
-# allow me testing with various versions.
-
-# NOTE: it looks like semi-old versions can do images too, so CANDOIMAGES
-#      is not (yet?) used
-
-
-MAKEINFO = @MAKEINFO@
-# According to whether this makeinfo can output html, autoconf define these
-REMOVEHTMLTAGS = @REMOVEHTMLTAGS@
-INFOTOHTML = @INFOTOHTML@
-
-##############################################
-
-
-TARGET = barcode
-ALL    = $(TARGET).ps $(TARGET).info $(TARGET)doc.txt $(TARGET).html \
-               $(TARGET).pdf 
-
-all: $(ALL) terse
-
-info: $(TARGET).info
-
-$(TARGET)doc.txt: mktxt
-
-mpage: all
-       mv $(TARGET).ps $(TARGET)1.ps
-       mpage -2A $(TARGET)1.ps > $(TARGET)2.ps && rm $(TARGET)1.ps
-
-terse:
-       # preserve the pdf copy
-       -mv -f $(TARGET).pdf PDF 2> /dev/null && \
-               rm -f *~ *.dvi *.log *.aux \
-                     $(TARGET).*.bak $(TARGET).??? $(TARGET).texinfo && \
-               mv PDF $(TARGET).pdf;
-
-       # preserve the ps copy
-       -mv $(TARGET).ps PS;
-       -rm -f $(TARGET).??;
-       -mv PS $(TARGET).ps;
-
-clean: terse
-       rm -f $(ALL) $(TARGET)_toc.html
-
-
-####################################################
-
-# These rules used to be expressed as "%.texinfo: doc.%" etc. However, this
-# is gmake-specific, so I turned every % to $(TARGET), thus loosing generality
-# but gaining portability. I also had to drop "$^": it worked with gmake
-# and not pmake, while "$<" worked with pmake and not gmake.
-# with gmake and not pmake.
-#    ARub 2000-04-21
-
-$(TARGET).texinfo: doc.$(TARGET)
-       @rm -f $@ 2> /dev/null
-       sed -f ./infofilter doc.$(TARGET) | $(REMOVEHTMLTAGS) > $@
-       chmod 400 $@
-
-
-# This rule is somewhat a rewrite of texi2dvi. I like make more than sh :-)
-# This had to be rewritten too, as "$*" is different in gmake and pmake
-
-$(TARGET).dvi: $(TARGET).texinfo
-
-# create a spurious  index file to please silly sh (bash will work anyway)
-       touch $(TARGET).oo
-
-# get the index list
-       if test "x`ls $(TARGET).?? $(TARGET).aux`" != "x"; then \
-         for i in `ls $(TARGET).?? $(TARGET).aux`; do \
-           cp $$i $$i~; \
-         done; \
-       fi
-       tex $(TARGET).texinfo
-
-#check the file list, the file and if needed run TeX again
-       old="`ls $(TARGET).??~ $(TARGET).aux~ | sed 's/~//g'`"; \
-       new="`ls $(TARGET).?? $(TARGET).aux`"; \
-       need="n"; \
-       if test "$$old" != "$$new"; then need="y"; \
-       else \
-         for i in  `ls $(TARGET).?? $(TARGET).aux`; do \
-           cmp -s $$i $$i~; if test $$? -ne 0; then need="y" break; fi; \
-         done; \
-       fi; \
-       if test "$$need" = "y"; then \
-         texindex $(TARGET).?? && tex $(TARGET).texinfo; \
-       fi
-
-
-$(TARGET).ps: $(TARGET).dvi
-       dvips -f $(TARGET).dvi > $@
-
-$(TARGET).pdf: $(TARGET).ps
-       ps2pdf $(TARGET).ps > $@
-
-$(TARGET).lj: $(TARGET).dvi
-       dvilj -e- $(TARGET).dvi > $@
-
-$(TARGET).info: $(TARGET).texinfo
-       makeinfo $(TARGET).texinfo -o $@
-
-$(TARGET).html: $(TARGET).texinfo
-       $(INFOTOHTML) -o $@ $<
-
-#$(TARGET).man: doc.$(TARGET)
-#              manpages are created by the toplevel Makefile
-
-$(TARGET)doc.txt: $(TARGET).info
-       awk -f ./mktxt $(TARGET).info > $@
-
-
-
-
-
-
-
diff --git a/barcode-0.98/doc/README b/barcode-0.98/doc/README
deleted file mode 100644 (file)
index 5af5490..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-
-The input file is "doc.barcode". I preprocess this file to
-build both a "barcode.texinfo" file and manual pages.
-
-The intermediat
diff --git a/barcode-0.98/doc/barcode.info b/barcode-0.98/doc/barcode.info
deleted file mode 100644 (file)
index 66b59d0..0000000
+++ /dev/null
@@ -1,747 +0,0 @@
-This is barcode.info, produced by makeinfo version 4.0b from
-barcode.texinfo.
-
-   This file is the User's Manual for the barcode library (version
-0.98).
-
-\1f
-File: barcode.info,  Node: Top,  Next: Overview,  Prev: (dir),  Up: (dir)
-
-Barcode tools
-*************
-
-   This file documents version 0.98 of the barcode library and sample
-programs (March 2002).
-
-* Menu:
-
-* Overview::
-* The Barcode Object::
-* Supported Flags::
-* The API::
-* The barcode Executable::
-* Supported Encodings::
-* PCL Output::
-* Bugs and Pending Issues::
-
-\1f
-File: barcode.info,  Node: Overview,  Next: The Barcode Object,  Prev: Top,  Up: Top
-
-Overview
-********
-
-   The "barcode" package is mainly a C library for creating bar-code
-output files. It also includes a command line front-end and (in a
-foreseeable future) a graphic frontend.
-
-   The package is designed as a library because we think the main use
-for barcode-generation tools is inside more featured applications. The
-library addresses bar code printing as two distinct problems: creation
-of bar information and actual conversion to an output format. To this
-aim we use an intermediate representation for bar codes, which is
-currently documented in the `ps.c' source file (not in this document).
-
-   Note that the library and the accompanying material is released
-according to the GPL license, not the LGPL one. A copy of the GPL is
-included in the distribution tarball.
-
-\1f
-File: barcode.info,  Node: The Barcode Object,  Next: Supported Flags,  Prev: Overview,  Up: Top
-
-The Underlying Data Structure
-*****************************
-
-   Every barcode-related function acts on a data structure defined in
-the `barcode.h' header, which must be included by any C source file
-that uses the library. The header is installed by make install.
-
-   The definition of the data structure is included here for reference:
-
-     struct Barcode_Item {
-         int flags;         /* type of encoding and other flags */
-         char *ascii;       /* malloced */
-         char *partial;     /* malloced too */
-         char *textinfo;    /* information about text placement */
-         char *encoding;    /* code name, filled by encoding engine */
-         int width, height; /* output units */
-         int xoff, yoff;    /* output units */
-         int margin;        /* output units */
-         double scalef;     /* requested scaling for barcode */
-         int error;         /* an errno-like value, in case of failure */
-     };
-
-   The exact meaning of each field and the various flags implemented are
-described in the following sections.
-
-   Even though you won't usually need to act on the contents of this
-structure, some of the functions in the library receive arguments that
-are directly related to one or more of these fields.
-
-* Menu:
-
-* The Field List::
-* The Intermediate Representation::
-
-\1f
-File: barcode.info,  Node: The Field List,  Next: The Intermediate Representation,  Prev: The Barcode Object,  Up: The Barcode Object
-
-The Fields
-==========
-
-`int flags;'
-     The flags are, as you may suspect, meant to specify the exact
-     behaviour of the library. They are often passed as an argument to
-     barcode functions and are discussed in the next section.
-
-`char *ascii;'
-`char *partial;'
-`char *textinfo;'
-`char *encoding;'
-     These fields are internally managed by the library, and you are
-     not expected to touch them if you use the provided API. All of
-     them are allocated with malloc.
-
-`int width;'
-`int height;'
-     They specify the width and height of the active barcode region
-     (i.e., excluding the white margin), in the units used to create
-     output data (for postscript they are points, 1/72th of an inch,
-     0.352 mm). The fields can be either assigned to in the structure
-     or via Barcode_Position(), at your choice.  If either value or
-     both are left to their default value of zero, the output engine
-     will assign default values according to the specified scaling
-     factor. If the specified width is bigger than needed (according to
-     the scaling factor), the output barcode will be centered in its
-     requested region. If either the width of the height are too small
-     for the specified scale factor, the output bar code will expand
-     symmetrically around the requested region.
-
-`int xoff;'
-`int yoff;'
-     The fields specify offset from the coordinate origin of the output
-     engine (for postscript, position 0,0 is the lower left corner of
-     the page).  The fields can be either assigned to in the structure
-     or via Barcode_Position(), at your choice.  The offset specifies
-     where the white margin begins, not where the first bar will be
-     printed. To print real ink to the specified position you should
-     set margin to 0.
-
-`int margin;'
-     The white margin that will be left around the printed area of the
-     bar code. The same margin is applied to all sides of the printed
-     area. The default value for the margin is defined in `barcode.h'
-     as BARCODE_DEFAULT_MARGIN (10).
-
-`double scalef;'
-     The enlarge or shrink value for the bar code over its default
-     dimension. The width and scalef fields interact deeply in the
-     creation of the output, and a complete description of the issues
-     appears later in this section.
-
-`int error;'
-     The field is used when a barcode function fails to host an
-     errno-like integer value.
-
-Use of the width and scalef fields.
------------------------------------
-
-   A width unit is the width of the thinnest bar and/or space in the
-chosen code; it defaults to 1 point if the output is postscript or
-encapsulated postscript.
-
-   Either or both the code width and the scale factor can be left
-unspecified (i.e., zero). The library deals with defaults in the
-following way:
-
-Both unspecified
-     If both the width and the scale factor are unspecified, the scale
-     factor will default to 1.0 and the width is calculated according
-     to the actual width of the bar code being printed.
-
-Width unspecified
-     If the width is not specified, it is calculated according to the
-     values of scalef.
-
-Scale factor unspecified
-     If the scale factor is not specified, it will be chosen so that
-     the generated bar code exactly fits the specified width.
-
-Both specified
-     The code will be printed inside the specified region according to
-     the specified scale factor. It will be aligned to the left.  If,
-     however, the chosen width is too small for the specific bar code
-     and scaling factor, then the code will extend symmetrically to the
-     left and to the right of the chosen region.
-
-\1f
-File: barcode.info,  Node: The Intermediate Representation,  Prev: The Field List,  Up: The Barcode Object
-
-The Intermediate Representation
-===============================
-
-   The encoding functions print their output into the partial and
-texinfo fields of the barcode data structure. Those fields, together
-with position information, are then used to generate actual output.
-This is an informal description of the intermediate format.
-
-   The first char in partial tells how much extra space to add to the
-left of the bars. For EAN-13, it is used to leave space to print the
-first digit, other codes may have '0' for no-extra-space-needed.
-
-   The next characters are alternating bars and spaces, as multiples of
-the base dimension which is 1 unless the code is rescaled. Rescaling is
-calculated as the ratio from the requested width and the calculated
-width.  Digits represent bar/space dimensions. Lower-case letters
-represent those bars that should extend lower than the others: 'a' is
-equivalent to '1', 'b' is '2' and so on up to 'i' which is equivalent to
-'9'. Other letters will be used for encoding-specific meanings, as soon
-as I implement them.
-
-   The textinfo string is made up of fields %lf:%lf:%c separated by
-blank space. The first integer is the x position of the character, the
-second is the font size (before rescaling) and the char item is the
-character to be printed.
-
-   Both the partial and textinfo strings may include "-" or "+" as
-special characters (in textinfo the char should be a stand-alone word).
-They state where the text should be printed: below the bars ("-",
-default) or above the bars. This is used, for example, to print the
-add-5 and add-2 codes to the right of UPC or EAN codes (the add-5
-extension is mostly used in ISBN codes).
-
-\1f
-File: barcode.info,  Node: Supported Flags,  Next: The API,  Prev: The Barcode Object,  Up: Top
-
-The Flags
-*********
-
-   The following flags are supported by version 0.98 of the library:
-
-`BARCODE_ENCODING_MASK'
-     The mask is used to extract the encoding-type identifier from the
-     flags field.
-
-`BARCODE_EAN'
-`BARCODE_UPC'
-`BARCODE_ISBN'
-`BARCODE_128B'
-`BARCODE_128C'
-`BARCODE_128'
-`BARCODE_128RAW'
-`BARCODE_39'
-`BARCODE_I25'
-`BARCODE_CBR'
-`BARCODE_MSI'
-`BARCODE_PLS'
-`BARCODE_93'
-     The currently supported encoding types: EAN (13 digits, 8 digits,
-     13 + 2 add-on and 13 + 5 add-on), UPC (UPC-A, UPC-E, UPC-A with 2
-     or 5 digit add-on), ISBN (with or without the 5-digit add-on),
-     CODE128-B (the whole set of printable ASCII characters), CODE128-C
-     (two digits encoded by each barcode symbol), CODE128 (all ASCII
-     values), a "raw-input" pseudo-code that generates CODE128 output,
-     CODE39 (alphanumeric), "interleaved 2 of 5" (numeric), Codabar
-     (numeric plus a few symbols), MSI (numeric) and Plessey (hex
-     digits).  *Note Supported Encodings::.
-
-`BARCODE_ANY'
-     This special encoding type (represented by a value of zero, so it
-     will be the default) tells the encoding procedure to look for the
-     first encoding type that can deal with a textual string.
-     Therefore, a 11-digit code will be printed as UPC (as well as
-     6-digit, 11+2 and 11+5), a 12-digit (or 7-digit, or 12+2 or 12+5)
-     as EAN13, an ISBN code (with or without hyphens, with or without
-     add-5) will be encoded in its EAN13 representation, an even number
-     of digits is encoded using CODE128C and a generic string is
-     encoded using CODE128B. Since code-39 offers a much larger
-     representation for the same text string, code128-b is preferred
-     over code39 for alphanumeric strings.
-
-`BARCODE_NO_ASCII'
-     Instructs the engine not to print the ascii string on output. By
-     default the bar code is accompanied with an ascii version of the
-     text it encodes.
-
-`BARCODE_NO_CHECKSUM'
-     Instructs the engine not to add the checksum character to the
-     output. Not all the encoding types can drop the checksum; those
-     where the checksum is mandatory (like EAN and UPC) just ignore the
-     flag.
-
-`BARCODE_OUTPUT_MASK'
-     The mask is used to extract the output-type identifier from the
-     flags field.
-
-`BARCODE_OUT_PS'
-`BARCODE_OUT_EPS'
-`BARCODE_OUT_PCL'
-`BARCODE_OUT_PCL_III'
-     The currently supported encoding types: full-page postscript and
-     encapsulated postscript; PCL (print command language, for HP
-     printers) and PCL-III (same as PCL, but uses a font not available
-     on older printers).
-
-`BARCODE_OUT_NOHEADERS'
-     The flag instructs the printing engine not to print the header and
-     footer part of the file. This makes sense for the postscript
-     engine but might not make sense for other engines; such other
-     engines will silently ignore the flag just like the PCL back-end
-     does.
-
-\1f
-File: barcode.info,  Node: The API,  Next: The barcode Executable,  Prev: Supported Flags,  Up: Top
-
-Functions Exported by the Library
-*********************************
-
-   The functions included in the barcode library are declared in the
-header file barcode.h.  They perform the following tasks:
-
-`struct Barcode_Item *Barcode_Create(char *text);'
-     The function creates a new barcode object to deal with a specified
-     text string.  It returns NULL in case of failure and a pointer to
-     a barcode data structure in case of success.
-
-`int Barcode_Delete(struct Barcode_Item *bc);'
-     Destroy a barcode object. Always returns 0 (success)
-
-`int Barcode_Encode(struct Barcode_Item *bc, int flags);'
-     Encode the text included in the bc object. Valid flags are the
-     encoding type (other flags are ignored) and BARCODE_NO_CHECKSUM
-     (other flags are silently ignored); if the flag argument is zero,
-     bc->flags will apply. The function returns 0 on success and -1 in
-     case of error. After successful termination the data structure
-     will host the description of the bar code and its textual
-     representation, after a failure the error field will include the
-     reason of the failure.
-
-`int Barcode_Print(struct Barcode_Item *bc, FILE *f, int flags);'
-     Print the bar code described by bc to the specified file.  Valid
-     flags are the output type, BARCODE_NO_ASCII and
-     BARCODE_OUT_NOHEADERS, other flags are ignored. If any of these
-     flags is zero, it will be inherited from bc->flags which therefore
-     takes precedence. The function returns 0 on success and -1 in case
-     of error (with bc->error set accordingly). In case of success, the
-     bar code is printed to the specified file, which won't be closed
-     after use.
-
-`int Barcode_Position(struct Barcode_Item *bc, int wid, int hei, int xoff, int yoff, double scalef);'
-     The function is a shortcut to assign values to the data structure.
-
-`int Barcode_Encode_and_Print(char *text, FILE *f, int wid, int hei, int xoff, int yoff, int flags);'
-     The function deals with the whole life of the barcode object by
-     calling the other functions; it uses all the specified flags.
-
-`int Barcode_Version(char *versionname);'
-     Returns the current version as an integer number of the form major
-     * 10000 + minor * 100 + release. Therefore, version 1.03.5 will be
-     returned as 10305 and version 0.53 as 5300.  If the argument is
-     non-null, it will be used to return the version number as a
-     string. Note that the same information is available from two
-     preprocessor macros: BARCODE_VERSION (the string) and
-     BARCODE_VERSION_INT (the integer number).
-
-\1f
-File: barcode.info,  Node: The barcode Executable,  Next: Supported Encodings,  Prev: The API,  Up: Top
-
-The barcode frontend program
-****************************
-
-   The barcode program is a front-end to access some features of the
-library from the command line.  It is able to read user supplied
-strings from the command line or a data file (standard input by default)
-and encode all of them.
-
-* Menu:
-
-* The Command Line::
-
-\1f
-File: barcode.info,  Node: The Command Line,  Prev: The barcode Executable,  Up: The barcode Executable
-
-The Command Line
-================
-
-   barcode accepts the following options:
-
-`--help or -h'
-     Print a usage summary and exit.
-
-`-i filename'
-     Identify a file where strings to be encoded are read from. If
-     missing (and if -b is not used) it defaults to standard input.
-     Each data line of the input file will be used to create one
-     barcode output.
-
-`-o filename'
-     Output file. It defaults to standard output.
-
-`-b string'
-     Specify a single "barcode" string to be encoded.  The option can
-     be used multiple times in order to encode multiple strings (this
-     will result in multi-page postscript output or a table of barcodes
-     if -t is specified).  The strings must match the encoding chosen;
-     if it doesn't match the program will print a warning to stderr and
-     generate "blank" output (although not zero-length).  Please note
-     that a string including spaces or other special characters must be
-     properly quoted.
-
-`-e encoding'
-     encoding is the name of the chosen encoding format being used. It
-     defaults to the value of the environment variable BARCODE_ENCODING
-     or to auto detection if the environment is also unset.
-
-`-g geometry'
-     The geometry argument is of the form "[<width> x <height>] [+
-     <xmargin> + <ymargin>]" (with no intervening spaces). Unspecified
-     margin values will result in no margin; unspecified size results
-     in default size.  The specified values represent print points by
-     default, and can be inches, millimeters or other units according
-     to the -u option or the BARCODE_UNIT environment variable.  The
-     argument is used to place the printout code on the page. Note that
-     an additional white margin of 10 points is added to the printout.
-     If the option is unspecified, BARCODE_GEOMETRY is looked up in the
-     environment, if missing a default size and no margin (but the
-     default 10 points) are used.
-
-`-t table-geometry'
-     Used to print several barcodes to a single page, this option is
-     meant to be used to print stickers. The argument is of the form
-     "<columns> x <lines> [+ <leftmargin> + <bottommargin> [-
-     <rightmargin> [- <topmargin>]]]" (with no intervening spaces); if
-     missing, the top and right margin will default to be the same as
-     the bottom and left margin. The margins are specified in print
-     points or in the chosen unit (see -u below).  If the option is not
-     specified, BARCODE_TABLE is looked up in the environment,
-     otherwise no table is printed and each barcode will get its own
-     page.  The size (but not the position) of a barcode item within a
-     table can also be selected using -g (see "geometry" above),
-     without struggling with external and internal margins.  I still
-     think management of geometries in a table is suboptimal, but I
-     can't make it better without introducing incompatibilities.
-
-`-m margin(s)'
-     Specifies an internal margin for each sticker in the table. The
-     argument is of the form "<xmargin>,<ymargin>" and the margin is
-     applied symmetrically to the sticker. If unspecified, the
-     environment variable BARCODE_MARGIN is used or a default internal
-     margin of 10 points is used.
-
-`-n'
-     "Numeric" output: don't print the ASCII form of the code, only the
-     bars.
-
-`-c'
-     No checksum character (for encodings that allow it, like code 39,
-     other codes, like UPC or EAN, ignore this option).
-
-`-E'
-     Encapsulated postscript (default is normal postscript). When the
-     output is generated as EPS only one barcode is encoded.
-
-`-P'
-     PCL output. Please note that the Y direction goes from top to
-     bottom for PCL, and the origin for an image is the top-left corner
-     instead of the bottom-left
-
-`-p pagesize'
-     Specify a non-default page size. The page size can be specified in
-     millimeters, inches or plain numbers (for example: "210x297mm",
-     "8.5x11in", "595x842"). A page specification as numbers will be
-     interpreted according to the current unit specification (see -u
-     below). If libpaper is available, you can also specify the page
-     size with its name, like "A3" or "letter" (libpaper is a standard
-     component of Debian GNU/Linux, but may be missing elsewhere). The
-     default page size is your system-wide default if libpaper is
-     there, A4 otherwise.
-
-`-u unit'
-     Choose the unit used in size specifications. Accepted values are
-     "mm", "cm", "in" and "pt". By default, the program will check
-     BARCODE_UNIT in the environment, and assume points otherwise (this
-     behaviour is compatible with 0.92 and previous versions. If -u
-     appears more than once, each instance will modified the behaviour
-     for the arguments at its right, as the command line is processes
-     left to right. The program internally works with points, and any
-     size is approximated to the nearest multiple of one point. The -u
-     option affect -g (geometry), -t (table) and -p (page size).
-
-\1f
-File: barcode.info,  Node: Supported Encodings,  Next: PCL Output,  Prev: The barcode Executable,  Up: Top
-
-Supported Encodings
-*******************
-
-   The program encodes text strings passed either on the command line
-(with -b) or retrieved from standard input. The text representation is
-interpreted according to the following rules. When auto-detection of
-the encoding is enabled (i.e, no explicit encoding type is specified),
-the encoding types are scanned to find one that can digest the text
-string.  The following list of supported types is sorted in the same
-order the library uses when auto-detecting a suitable encoding for a
-string.
-
-EAN
-     The EAN frontend is similar to UPC; it accepts strings of digits,
-     12 or 7 characters long. Strings of 13 or 8 characters are
-     accepted if the provided checksum digit is correct.  I expect most
-     users to feed input without a checksum, though. The add-2 and
-     add-5 extension are accepted for both the EAN-13 and the EAN-8
-     encodings.  The following are example of valid input strings:
-     "123456789012" (EAN-13), "1234567890128" (EAN-13 wih checksum),
-     "1234567" (EAN-8), "12345670 12345" (EAN-8 with checksum and
-     add-5), "123456789012 12" (EAN-13 with add-2), "123456789012
-     12345" (EAN-13 with add-5).
-
-UPC
-     The UPC frontend accepts only strings made up of digits (and, if a
-     supplemental encoding is used, a blank to separate it).  It
-     accepts strings of 11 or 12 digits (UPC-A) and 6 or 7 or 8 digits
-     (UPC-E).
-
-     The 12th digit of UPC-A is the checksum and is added by the
-     library if not specified in the input; if it is specified, it must
-     be the right checksum or the code is rejected as invalid.  For
-     UPC-E, 6 digit are considered to be the middle part of the code, a
-     leading 0 is assumed and the checksum is added; 7 digits are
-     either considered the initial part (leading digit 0 or 1, checksum
-     missing) or the final part (checksum specified, leading 0
-     assumed); 8 digits are considered to be the complete code, with
-     leading 0 or 1 and checksum.  For both UPC-A and UPC-E, a trailing
-     string of 2 digits or 5 digits is accepted as well. Therefore, the
-     following are examples of valid strings that can be encoded as UPC:
-     "01234567890" (UPC-A) "012345678905" (UPC-A with checksum),
-     "012345" (UPC-E), "01234567890 12" (UPC-A, add-2) and "01234567890
-     12345" (UPC-A, add-5), "0123456 12" (UPC-E, add-2).  Please note
-     that when setting BARCODE_ANY to auto-detect the encoding to be
-     used, 12-digit strings and 7-digit strings will always be
-     identified as EAN. This because I expect most user to provide
-     input without a checksum. If you need to specify UPC-with-checksum
-     as input you must explicitly set BARCODE_UPC as a flag or use -e
-     upc on the command line.
-
-ISBN
-     ISBN numbers are encoded as EAN-13 symbols, with an optional add-5
-     trailer. The ISBN frontend of the library accepts real ISBN
-     numbers and deals with any hyphen and, if present, the ISBN
-     checksum character before encoding data. Valid representations for
-     ISBN strings are for example: "1-56592-292-1", "3-89721-122-X" and
-     "3-89721-122-X 06900".
-
-CODE 128-B
-     This encoding can represent all of the printing ASCII characters,
-     from the space (32) to DEL (127). The checksum digit is mandatory
-     in this encoding.
-
-CODE 128-C
-     The "C" variation of Code-128 uses Code-128 symbols to represent
-     two digits at a time (Code-128 is made up of 104 symbols whose
-     interpretation is controlled by the start symbol being used). Code
-     128-C is thus the most compact way to represent any even number of
-     digits. The encoder refuses to deal with an odd number of digits
-     because the caller is expected to provide proper padding to an
-     even number of digits. (Since Code-128 includes control symbols to
-     switch charset, it is theoretically possible to represent the odd
-     digit as a Code 128-A or 128-B symbol, but this tool doesn't
-     currently implement this option).
-
-CODE 128 RAW
-     Code-128 output represented symbol-by-symbol in the input string.
-     To override part of the problems outlined below in specifying
-     code128 symbols, this pseudo-encoding allows the used to specify a
-     list of code128 symbols separated by spaces. Each symbol is
-     represented by a number in the range 0-105.  The list should
-     include the leading character.The checksum and the stop character
-     are automatically added by the library. Most likely this
-     pseudo-encoding will be used with BARCODE_NO_ASCII and some
-     external program to supply the printed text.
-
-CODE 39
-     The code-39 standard can encode uppercase letters, digits, the
-     blank space, plus, minus, dot, star, dollar, slash, percent.  Any
-     string that is only composed of such characters is accepted by the
-     code-39 encoder. To avoid loosing information, the encoder refuses
-     to encode mixed-case strings (a lowercase string is nonetheless
-     accepted as a shortcut, but is encoded as uppercase).
-
-INTERLEAVED 2 OF 5
-     This encoding can only represent an even number of digits (odd
-     digits are represented by bars, and even digits by the
-     interleaving spaces). The name stresses the fact that two of the
-     five items (bars or spaces) allocated to each symbol are wide,
-     while the rest are narrow. The checksum digit is optional (can be
-     disabled via BARCODE_NO_CHECKSUM).  Since the number of digits,
-     including the checksum, must be even, a leading zero is inserted
-     in the string being encoded if needed (this is specifically stated
-     in the specs I have access to).
-
-CODE 128
-     Automatic selection between alphabet A, B and C of the Code-128
-     standard. This encoding can represent all ASCII symbols, from 0
-     (NUL) to 127 (DEL), as well as four special symbols, named F1, F2,
-     F3, F4. The set of symbols available in this encoding is not
-     easily represented as input to the barcode library, so the
-     following convention is used.  In the input string, which is a
-     C-language null-terminated string, the NUL char is represented by
-     the value 128 (0x80, 0200) and the F1-F4 characters are
-     represented by the values 193-196 (0xc1-0xc4, 0301-0304).  The
-     values have been chosen to ease their representation as escape
-     sequences.
-
-     Since the shell doesn't seem to interpret escape sequences on the
-     command line, the "-b" option cannot be easily used to designate
-     the strings to be encoded. As a workaround you can resort to the
-     command echo, either within back-ticks or used separately to
-     create a file that is then fed to the standard-input of barcode -
-     assuming your echo command processes escape sequences.  The
-     newline character is especially though to encode (but not
-     impossible unless you use a csh variant.
-
-     These problems only apply to the command-line tool; the use of
-     library functions doesn't give any problem. In needed, you can use
-     the "code 128 raw" pseudo-encoding to represent code128 symbols by
-     their numerical value. This encoding is used late in the
-     auto-selection mechanism because (almost) any input string can be
-     represented using code128.
-
-CODABAR
-     Codabar can encode the ten digits and a few special symbols
-     (minus, plus, dollar, colon, bar, dot). The characters "A", "B",
-     "C" and "D" are used to represent four different start/stop
-     characters. The input string to the barcode library can include
-     the start and stop characters or not include them (in which case
-     "A" is used as start and "B" as stop). Start and stop characters
-     in the input string can be either all lowercase or all uppercase
-     and are always printed as uppercase.
-
-PLESSEY
-     Plessey barcodes can encode all the hexadecimal digits. Alphabetic
-     digits in the input string must either be all lowercase or all
-     uppercase. The output text is always uppercase.
-
-MSI
-     MSI can only encode the decimal digits. While the standard
-     specifies either one or two check digits, the current
-     implementation in this library only generates one check digit.
-
-CODE 93
-     The code-93 standard can natively encode 48 different characters,
-     including uppercase letters, digits, the blank space, plus, minus,
-     dot, star, dollar, slash, percent, as well as five special
-     characters:  a start/stop delimiter and four "shift characters"
-     used for extended encoding.    Using this "extended encoding"
-     method, any standard 7-bit ASCII character can be encoded, but it
-     takes up two symbol lengths in barcode if the character is not
-     natively supported (one of the 48).  The encoder here fully
-     implements the code 93 encoding standard.  Any characters natively
-     supported (A-Z, 0-9, ".+-/$&%") will be encoded as such - for any
-     other characters (such as lower case letters, brackets,
-     parentheses, etc.), the encoder will revert to extended encoding.
-     As a note, the option to exclude the checksum will eliminate the
-     two modulo-47 checksums (called C and K) from the barcode, but this
-     probably will make it unreadable by 99% of all scanning systems.
-     These checksums are specified to be used at the firmware level,
-     and their absence will be interpreted as an invalid barcode.
-
-\1f
-File: barcode.info,  Node: PCL Output,  Next: Bugs and Pending Issues,  Prev: Supported Encodings,  Up: Top
-
-PCL Output
-**********
-
-   While the default output is Postscript (possibly EPS), and Postscript
-can be post-processed to almost anything, it is sometimes desirable to
-create output directly usable by the specific printer at hand.  PCL is
-currently supported as an output format for this reason.  Please note
-that the Y coordinate for PCL goes from top to bottom, while for
-Postscript it goes from bottom to top. Consistently, while in
-Postscript you specify the bottom-left corner as origin, for PCL you
-specify the top-left corner.
-
-   Barcode output for PCL Printers (HP LaserJet and compatibles), was
-developed using PCL5 Reference manuals from HP.  that really refers to
-these printers:
-   * LaserJet III, III P, III D, III Si,
-
-   * LaserJet 4 family
-
-   * LaserJet 5 family
-
-   * LaserJet 6 family
-
-   * Color LaserJet
-
-   * DeskJet 1200 and 1600.
-
-
-   However, barcode printing uses a very small subset of PCL, probably
-also LaserJet II should print it without problem, but the resulting
-text may be horrible.
-
-   The only real difference from one printer to another really depends
-on which font are available in the printer, used in printing the label
-associated to the bars (if requested).
-
-   Earlier LaserJet supports only bitmaps fonts, so these are not
-"scalable". (Ljet II ?), Also these fonts, when available, have a
-specified direction, and not all of them are available in both Portrait
-and Landscape mode.
-
-   From LaserJet 4 series, (except 4L/5L that are entry-level printers),
-Arial scalable font should be available, so it's the "default font"
-used by this program.
-
-   LaserJet III series printers (and 4L, 5L), don't feature "Arial" as a
-resident font, so you should use BARCODE_OUT_PCL_III instead of
-BARCODE_OUT_PCL., and font the font used will be "Univers" instead of
-"Arial".
-
-   Results on compatible printers, may depend on consistency of PCL5
-compatibility, in doubt, try BARCODE_OUT_PCL_III
-
-   PJL commands are not used here, as it's not very compatible.
-
-   Tested Printers:
-   * Hp LaserJet 4050
-
-   * Hp LaserJet 2100
-
-   * Epson N-1200 emul PCL
-
-   * Toshiba DP2570 (copier) + PCL option
-
-   * Epson EPL-7100 emul. HP LaserJet II: bars print fine but text is
-     bad.
-
-\1f
-File: barcode.info,  Node: Bugs and Pending Issues,  Prev: PCL Output,  Up: Top
-
-Bugs and Pending Issues.
-************************
-
-   The current management of borders/margins is far from optimal. The
-"default" margin applied by the library interferes with the external
-representation, but I feel it is mandatory to avoid creating barcode
-output with no surrounding white space (the problem is especially
-relevant for EPS output).
-
-   EAN-128 is not (yet) supported. I plan to implement it pretty soon
-and then bless the package as version 1.0.
-
-
-\1f
-Tag Table:
-Node: Top\7f154
-Node: Overview\7f526
-Node: The Barcode Object\7f1404
-Node: The Field List\7f2821
-Node: The Intermediate Representation\7f6586
-Node: Supported Flags\7f8359
-Node: The API\7f11343
-Node: The barcode Executable\7f14029
-Node: The Command Line\7f14458
-Node: Supported Encodings\7f19557
-Node: PCL Output\7f28997
-Node: Bugs and Pending Issues\7f31316
-\1f
-End Tag Table
diff --git a/barcode-0.98/doc/barcode.pdf b/barcode-0.98/doc/barcode.pdf
deleted file mode 100644 (file)
index b2268f4..0000000
Binary files a/barcode-0.98/doc/barcode.pdf and /dev/null differ
diff --git a/barcode-0.98/doc/barcode.ps b/barcode-0.98/doc/barcode.ps
deleted file mode 100644 (file)
index cc6cc2c..0000000
+++ /dev/null
@@ -1,2378 +0,0 @@
-%!PS-Adobe-2.0
-%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
-%%Title: barcode.dvi
-%%Pages: 12
-%%PageOrder: Ascend
-%%BoundingBox: 0 0 596 842
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips -f barcode.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource:  TeX output 2002.08.21:2135
-%%BeginProcSet: texc.pro
-%!
-/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
-N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
-mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
-0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
-landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
-mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
-matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
-exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
-statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
-N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
-/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
-/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
-array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
-df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
-definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
-}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
-B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
-1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
-1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
-0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
-sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
-rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
-gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
-/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
-/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
-A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
-get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
-ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
-fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
-{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
-chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
-1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
-forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
-/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
-}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
-bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
-mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
-SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
-userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
-1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
-/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
-(LaserWriter 16/600)]{A length product length le{A length product exch 0
-exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
-end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
-grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
-imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
-exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
-fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
-delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
-B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
-p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
-rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
-
-%%EndProcSet
-TeXDict begin 39158280 55380996 1000 600 600 (barcode.dvi)
-@start
-%DVIPSBitmapFont: Fa cmbxti10 14.4 8
-/Fa 8 115 df<13FCEA03FF000F13804813C05AA25AA2B5FCA31480A214006C5A6C5A6C
-5AEA0FE0121271912B>46 D<ED3FF8913801FFFE020F9038FF83F0023FECC7F891B6EAEF
-FC499038F83FFF0107D9E0077F49EB800349496C5B495A49487F495AA248495D5A48495B
-A2485F5C485DA248495DA25E5A91C75CA25EB5FC495EA25EA24993C7FCA24CEB01F81803
-17FE5B167FF007F017FCA2007F03FFEB0FE05D6D5B003F4A9038F81FC0001F021F13FC6C
-6C017FEC3F809027FF81FFDFEB7F006C90B5388FFFFE0001ECFE076CDAF8035B013FD9E0
-0013F0010390C7EA3FC03D3773B547>97 D<EC7FF048B5FC5AA45DEA00035BA25DA25BA2
-5DA25BA292C9FCA25BA25CA2137FA25CA213FFED1FFC4AB57E02FB14E04890B612F88392
-38F83FFE9238C00FFF48DA000713805C02F86D13C05C484915E0A25CA24817F0A25CA248
-5DA291C7FCA2484B13E0A25BA25E007F17C05BA25E18805B00FF17005E5FA26C484A5AA2
-4B5B5F5D5F6C6C495B4B5B001F93C7FC6DEB3FFE6C6C495A3A07FF83FFF06C90B55A6C15
-806C6C49C8FC011F13F801031380345473D240>I<923807FF80037F13F00203B512FC02
-0F80023F8091B500031380499038F8007F010701E0EBFFC049EB800149495A49485B495A
-49485B5A485BA248491580180048496D5A486F5A93C8FC485BA35A91CAFCA3B5FC5BA45B
-A65B17036C6CED0780170FEF3FC0003F167F6DEC01FF001F4B13806C6C021F13006C6DEB
-7FFC6C9039F00FFFF86C90B612E06C5E013F4AC7FC010F14F0010049C8FC323773B540>
-I<F00FFEEF3FFF5FA419FCEF007F18FFA219F8A25FA219F0A25FA219E0A25FA219C0A25F
-A21980A25FED3FF8912601FFFE1400020FEBFF9F023F91B5FC91B8FC49D9F83F5B0107EB
-E00749EB800349497E49485D49487F495AA248495D5A48495BA2485F5C485DA248495DA2
-5E5A91C75CA25EB5FC495EA25EA24993C7FCA24CEB01F8180317FE5B167FF007F017FCA2
-007F03FFEB0FE05D6D5B003F4A9038F81FC0001F021F13FC6C6C017FEC3F809027FF81FF
-DFEB7F006C90B5388FFFFE0001ECFE076CDAF8035B013FD9E00013F0010390C7EA3FC03F
-5473D247>I<923807FF8092B512E0020714F8021F80027F80903A01FFFE03FF49D9F000
-13804901C0EB7FC0495B013F90C7123F495A495A5C5A485B4849147F18804816FF4A4913
-00485DEE0FFE4849EB7FFC923807FFF891B612E0485E94C7FC16F04BC8FCB5CAFC5BA45B
-A7007F1603EF0780170F003FEE3FC0177F6C6CEC01FF4C13806C6C021F13006C01C0EB7F
-FC6C9039F00FFFF86C90B612E06C6C5D6D4AC7FC010714F09026007FFEC8FC323773B540
->I<923807FFC0037F13FC0203B6FC020F15C0023F8191B5000313F8499039F8007FFC01
-0701E0133F4901806D7E4990C76C7E49481680495A4948804818C0485BA2485BA248494A
-13E05AA2485BA24D13C05A91C8FCA25FB517805BA25F19005B6017FF605E60495E5E6C6C
-4A5B604C5B003F4B90C7FC6D4A5A001F4B5A6C6C4A5A6CD980035B6CD9F01F13C06C90B6
-5A6C4BC8FC013F14F0010F14C0010001F8C9FC3B3773B547>111
-D<D91FE0EB07FED97FFC90383FFFC0496C90B512F048D9FF83804802C780D807F19039CF
-FC07FED80FE09039FFF001FFDCC000138048484A5A4C5A4848495B0181495B4B5BEA7F01
-5D5B00FE18004B5C715A496F5A0000705A4B90C8FCA25BA25DA25BA292CAFCA25BA25CA2
-137FA25CA213FFA25CA25AA25CA25AA25CA25C6C5B6C90CBFC137E393776B53C>114
-D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fb cmsy10 10.95 1
-/Fb 1 16 df<EB0FFCEB3FFF90B512C0000314F04880488048804880A2481580A3B712C0
-AA6C1580A36C1500A26C5C6C5C6C5C6C5CC614C0013F90C7FCEB0FFC22227BA72D>15
-D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fc cmb10 10.95 10
-/Fc 10 115 df<EB0FFE90387FFFC048B512F04814FC3907FC0FFE48486C7E6D6C7F486C
-7E82A26E7FA36C5A6C5AEA01E0C8FC5C49B5FC131F90B6FC000313F84813C0481300EA1F
-FC485A127F5B12FF5BA45CA26C6C5A16F83B3FF807BFFF80391FFC1F3F390FFFFE1F6C49
-7E0001EBF80326003FE0C8FC292B7EA92C>97 D<13FFB5FCA512077EAFEC03FE91381FFF
-C0027F13F091B57E9138FE0FFE9138F003FF4A7E02C014804A6C13C017E0A3EE7FF0A317
-F8AC17F0A3EEFFE0A217C05D02C014806E4813006E485A9138FC1FFC01FCB55A496C13E0
-D9F01F1380C7D807FCC7FC2D407EBE33>I<EB03FF011F13E0017F13F890B57E48EB83FE
-3903FE01FF00075B4848481380121F13F8123FA2127F496C13006E5AEC007800FF91C7FC
-AC127FA27F003FEC07C0A26C6C130F16806C6C131F000715006C6C137F6CEBC1FE6CEBFF
-FC6D13F0011F5B010390C7FC222B7DA928>I<ED01FEEC01FFA5EC000F1507AFEB01FF01
-1F13C7017F13F790B6FC4813C148EB007F4848131F485A001F140F5B123FA2485AA312FF
-AC127FA36C7EA3001F141F6C7E00074A7E6D90B512F83803FF83C690B6FC6D13EF011F13
-CF903A03FE0FF8002D407DBE33>I<49B47E010F13F0013F7F90B512FE48EBC3FF480100
-13804848EB7FC04848133F001F15E05B003FEC1FF0A2485A150F16F8A212FFA290B6FCA4
-01F0C8FCA5127FA37F003F15F8A26C6C1301000F15F06D13036C6CEB07E06C9038800FC0
-6C9038F07F806C6CB512006D5B010F13F8010013C0252B7EA92A>I<D907FE13FC90393F
-FFC3FE90B5EAF7FF4891B5128048130F3907FC03FE3A0FF801FF7F001FEDFF00496C13BE
-1680003F81A7001F5DA26D5A000F92C7FC6C6C485A3903FF0FFCECFFF8485CD80F3F13C0
-D907FEC8FC90CAFC5AA27FA213E090B512F015FF6C15C0826C816C8182120F4881393FE0
-003FD87F80EB07FF150148C7FC81A56D5B007F5D6D13036C6C495AD81FF8EB1FF86CB4EB
-FFF06C90B55A000115806C6C49C7FC010713E0293D7EA82D>103
-D<EA01F8487E487E487E481380A66C13006C5A6C5A6C5AC8FCA913FFB5FCA512077EB3AB
-B512F8A515407EBF19>105 D<01FFEB7FE0B53801FFF802077F4A7F91381FC3FFDA3E03
-13800007137C6CEB780102F014C014E0A214C0A31480B3A4B5D8FE1F13FFA530297EA833
->110 D<49B47E010F13F0013F13FC90B6FC48018113803A03FE007FC04848EB3FE0000F
-15F049131F001F15F8A24848EB0FFCA2007F15FEA400FF15FFAB007F15FEA3003F15FC6D
-131F001F15F8A26C6CEB3FF0000715E06C6CEB7FC03A01FF81FF806C90B51200013F13FC
-010F13F001011380282B7EA92D>I<3901FE07F800FFEB0FFE91383FFF804A13C0EC7C7F
-9138F8FFE03807FFF06C5B5CA2ED7FC09138803F80ED1F0092C7FCA291C8FCB3A3B6FCA5
-23297FA827>114 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fd cmbxti10 17.28 7
-/Fd 7 115 df<EEFFE0030F13FC037F01FF13FC4AB6EA83FE0207EDEFFF4AD9E07FB57E
-023FEB000F4A487F4948487F4913F04981495B49496D91C7FC495B5B92C8FC90B55E485B
-5F485B4860A248495CA248605C5F5A4A5EA2485EA24A5EA2B55DA24A5EA25FA291C85CA2
-4DEC3F801A7F19005B94B513FFA24E1400A24C5C007F614C13FC4C1403003F4B5D6D4A14
-076C4B5D6C6D49140F4BB55C6CD9C007013F495A6C9026F03FFEEBFE3FC690B5D8F81FB5
-5A6DDAF0075C011FDAC00349C7FC010749C75B9026007FF0EC1FF0494271C055>97
-D<EC1FFE90B6FC5A5AA46C5CC7FC5BA25DA25BA25DA25BA25DA25BA25DA25BA25DA25BA2
-5DA25BA2923800FFE0030F13FC90B5003F13FF92B612C084048113F8489139FC007FFC03
-F06D7E4B804B7F484A158092C77E4A16C05C485B19E05CA25AA25C5F5AA25CA2485EA25C
-A2485EA291C814C0A2B592B5FCA2491780A25E19005B5E60A24C5BA2495E4C5BA24C5B60
-5E007F5F6D4A90C7FC4C5A003F5E6D495B001F4A5B6C6C495B6CD9801F13806C01E0B5C8
-FC6C90B512FC6C6C14F06D14C0010F49C9FC010013E03B6570E34C>I<EE1FFE0303B512
-E0031F14F8037F804AB7FC0207D9FC071380021FD9E00013C04A0180137FDAFFFEC7EAFF
-E04949130349495B49494913F049495B495B49495B5B90B5C714E0A2485B4818C05C4870
-13804A91380FFE0048705AEF00E0484992C7FCA25A5CA25AA25CA2B5FCA25CA491CBFCA6
-5BA2F00380007FEF07C0F00FE06DEE1FF06C173F187F6C6DEDFFE0050313C06C6D020F13
-806C043F13006C6DECFFFE6C01F8010713F86C01FE90B55A6DB712C0011F93C7FC010715
-F801001580020F01F0C8FC3C4271C04C>I<963803FFC0061FB512E06060A47214C0F000
-1F61A21B80A261A21B00A296B5FCA262A260A262A260A262A260A262A260A2DCFFE05C03
-0F13FC037FEBFF1F4AB6129F020792B55A4AEBE07F023FEB000F4A487F4948486D5C4913
-F04981495B49496D91C7FC495B5B92C8FC90B55E485B5F485B4860A248495CA248605C5F
-5A4A5EA2485EA24A5EA2B55DA24A5EA25FA291C85CA24DEC3F801A7F19005B94B513FFA2
-4E1400A24C5C007F614C13FC4C1403003F4B5D6D4A14076C4B5D6C6D49140F4BB55C6CD9
-C007013F495A6C9026F03FFEEBFE3FC690B5D8F81FB55A6DDAF0075C011FDAC00349C7FC
-010749C75B9026007FF0EC1FF04B6571E355>I<EE1FFE0303B512C0031F14F092B612FC
-020381020F9038FC07FF4AD9E0011380027F90C713C04A48EC7FE04913F8010749143F49
-5B5B495B495B92C8FC90B5FC485B48177F5C48EFFFC05F48494A13804D130048EE1FFE4A
-EC7FFC933803FFF848033F5B4AB612C091B75A4804FCC7FC17E004FCC8FC03E0C9FC02C0
-CAFCB5FC5CA591CBFCA67EF00380F007C0F00FE06CEF1FF0183F187F6C6DEDFFE06C0403
-13C06E020F13806C6D023F13006C6DECFFFE6C6D010713F86C01FE90B55A013FB712C06D
-93C7FC010715F801001580020F01F0C8FC3C4271C04C>I<93381FFF804BB512F8031F14
-FF037F15C04AB77E0207D9FC0313F8021FD9E0007F4A0180EB3FFEDAFFFEC76C7E494916
-8049496E13C0495B49496E13E0495B494916F05B90B5C87E1AF8485B485F5C5A5C5AA248
-5B605A5CA2485FA24A17F0A2B55EA24A17E0A2601AC091C9FC95B51280A21A005F615F49
-5F4D5B127F6D4B5B616C4C5B4D5B6C6D4A90C7FC4D5A6C6D495B6C4B5B6C6D010F13E06C
-01F8013F5B6CD9FE01B5C8FC013FB612FC6D15F0010715C0010002FCC9FC020F13C04542
-71C055>111 D<D907FCEC0FFE90261FFF8090387FFFE049D9E001B512F890B5D8F00714
-FE48DAFC0F802A03FE3FFE3FFC071380D9FC1F90267FE00013C0D807F890B50080EB7FE0
-000F93380001FF01F04A5B001F4B4913F001E04A5B003F4B5B13C04A495B007F5D018018
-E05E00FF5B1AC0010091C76C13801A0091B5EC07FC48715AC74991C8FCA25BA25DA25BA2
-5DA25BA25DA25BA25DA25BA25DA25BA25DA25BA292CBFCA290B5FCA25CA25AA25CA26C5B
-5C6D5AEB1F80444275C048>114 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fe cmbxti10 13.15 11
-/Fe 11 120 df<EDFFC0020713F0023FEBFC3E91B56CB4FC4901E0B512800107D9003F13
-C049487F49487F495A49486D1380495A485D4A15005A5A4A5B485E91C7FC5A163F5F485A
-A2167F007F5E5BA216FF00FF5E5BA25DEFE01E49163FA24B147FEFC07EA3007F17FC5D4B
-1380003F4AEB81F85D6C6C49EB83F06C6C48B513E02707FE0FFC13CF6CB539F07FFFC06C
-4A6C13806C6CD9800F1300903A0FFC0003FC383375B141>97 D<ED3FF80203B5FC020F14
-80023F14C09139FFF81FE001039038C007F049010013F84948130F4948EB1FFC4948133F
-4948137F495A48EDFFF8485BA2484914F048ED7FE0EE3FC04890C7EA1F8093C7FCA2485A
-A3127F5BA312FF5BA45BA4007F166017F0EE01F8003F15036D1407001FED1FF0EE3FE06C
-6CECFFC06C6C010713803B03FFC07FFE006C90B512F86C6C14E0011F91C7FC010313F02E
-3375B13A>99 D<943801FF800403B512C05E1980A282EE000F1900A25FA260A2173FA260
-A2177FA260A217FFA260A25EEDFFC1020701F15B023F13FD91B7FC4913E00107D9003F5B
-49487F49487F495A49486D5B495A485D5C4894C7FC5A4A5B5A91C75B5A163FA248485DA2
-167F127F495DA216FF12FF495DA25D181E49EDE03FA24B5C187E17C0A2007F5F5D4B1380
-003F4AEB81F85D6C6C49EB83F06C6C48B55B2707FE0FFC13CF6CB539F07FFFC06C4A6C5B
-6C6CD9800F90C7FC903A0FFC0003FC3A4D75CB41>I<ED3FF80203B5FC021F1480027F14
-C0903A01FFF81FE0499038C00FF04990380007F8D91FFE1303495A494814FC494813014A
-13034816F8485B5A4A130748ED0FF091C7EA1FE048153FEEFFC0480207138049017F1300
-90B612FC16F048158003F0C7FC01FCC9FCA3485AA55B127FA2176017F0EE01F86C6C1403
-1607001FED1FF06C6CEC3FE0EEFFC06CB4010713806C9039C07FFE00C690B512F86D14E0
-011F91C7FC010113F02E3375B13A>I<EF1FF0EFFFFE4CEBFF80040714C093390FFC3FE0
-EE1FF893393FF07FF0047F13FF17F1EEFFE1A24B01E313E0A205E113C04B01C1138005C0
-1300187E95C7FCA25D5FA45D94C8FCA349B712FC4982A36D5E90C7D81FFEC8FCA2153F5E
-A4157F5EA515FF5EA45C5EA45C5EA55C5EA45C93C9FCA45C5DA45D143FA25DA2EA07E039
-1FF07FF0EA3FF8127F5D00FF13FF5D5DA201F190CAFCEBE1FE495A6C485A6CB45A6C5B00
-071380D801FECBFC3C6382CC2C>I<EC1FF890383FFFFC5B5DA27F13005DA25BA25DA25B
-A25DA25BA25DA25BA292CAFCA25B923801FFC0DAFE0F13F8033F13FE013F497F91B50003
-7FDBF8017F4B6C7F4913C05D92C77F5C495A5CA25C485D605CA2485D605CA2485D605C5E
-4894C7FCA291C75A5F5A043FEB01E0499238FC03F0A2003F037F130705F813E04914FFEF
-F00F007F18C0181F4903E01380F03F0012FF187E49027F5B93383FE3F8EFFFF049020F5B
-6C486E1380001FC8D801FEC7FC3C4D79CB41>104 D<15F8EC03FC4A7E4A7EA25CA35DA2
-5D6E5AEC03E091C8FCAEEB07F8EB1FFEEB7FFF90B57E3901FC7FC0D803F07FEA07E0D80F
-C07FA2381F80FFA2485A5B007E5CA25B00FE5C485A007C5C12005B92C7FCA25B5C133F5C
-A2137F5CA213FFECF00F48EC1F8014E0153F48150014C05D48147E14805D14816CEB01F8
-4A5A4A5A6CEB1FC06CEBFF806D90C7FC6D5AEB07F0214E78CC27>I<EC7FE090B512F05A
-15E0A27E130315C0A25BA21580A25BA21500A25BA25CA2133FA25CA2137FA25CA213FFA2
-5CA25AA25CA25AA25CA25AA25CA25AA291C7FCA25AA25BA2123FA25BA2127F140F9038F8
-1F80A200FF133F150013F0A25C147E13E05CA2387FE1F8A2383FE3F06CB45A6C5B6C5BC6
-48C7FC1C4D77CB20>108 D<913801FFC0021F13F8027F13FE91B6FC4901001380D903FC
-EB3FC0D907F0130F010FEC3FE04948137F4A13FF133FA2017F4913C0A26F138017006E13
-7E02FC90C7FCECFFC015FE6F7E16E06D80826D807F6D80010180EB003F1403EC003FD803
-C0130FD80FE01303EA3FF0486C7FA200FF5DA34B5A5B49495A495C49130F6CC7485AD83F
-C0EB7FC03A1FF803FF806CB548C7FC6C14F8000114E026001FFEC8FC2B3377B135>115
-D<EC0FC04A7E4A7E147F14FFA35BA25DA25BA25DA25BA25DA25BA2003FB612C04815E0B7
-FCA26C15C026001FFEC7FC133FA25CA2137FA25CA213FFA25CA25AA25CA25AA25CA25AA2
-5CA25AED03C091380007E0A248140F16C049131F1680ED3F005D49137E5D4A5A000F495A
-EC0FE00007EB3FC06CB55A6C91C7FC38007FFCEB1FE0234777C52A>I<D907F8EF1F80D9
-1FFEDA01F0EB3FC090267FFF80D903FCEB7FE090B56C0107ECFFF02701FC7FE0496C5A26
-03F83F021F15F8D807E06D5D000F017F143F01C016FCEA1F8085263F00FF027F7F4E137F
-4848181F007E5C05FF140FD8FE034CEB07F000FC5C127CC6485C03804A14E0A25B4B4815
-0F494C14C05CA24C151F013F4C14805CA2F23F00017F5C4A92C7FC1A7EA21A7C1AFCA24F
-5A62013F4A14034F5A6D6C5B4C6D485A6D6C90B56C485A902707FF83FCD9E07FC7FC6D90
-3AFFF87FFFFE01004A6C5B023FD9C00F13F00207D9000113C04D3378B154>119
-D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Ff cmbx12 13.14 13
-/Ff 13 117 df<923803FFE092B512FC020714FF021F81027F9038007FC0DAFFF0EB0FE0
-010301C0804990C7EA3FF84948147F4A81494814FF495AA2137F5CA2715A715A715AEF07
-8094C8FCA8EF07FCB9FCA526007FF0C7123F171FB3B3003FB5D8E00FB512F8A53D4D7ECC
-44>12 D<EA07E0EA1FF8EA3FFCEA7FFEA2B5FCA6EA7FFEA2EA3FFCEA1FF8EA07E0101077
-8F22>46 D<B700F8023FB512F8A5D8001F01C0C9380FE000745AB3B3AD6D180F63811A1F
-6D96C7FC626D7F1A7E6D7F6D606E6C4B5A6E6CED07F06E6C4B5A6E01C0EC3FC06E01F049
-B45A020101FF011F90C8FC6E91B55A033F15F8030715E0030092C9FC040713F0554C7CCA
-5E>85 D<ECFFFC010FEBFFC0017F14F090B612FC489038803FFF2703FC00077F486C6D7F
-486C6D7F6E7E83707EA3707E6C90C7FC6C5A6C5AC9FCA4ED1FFF021FB5FC49B6FC130F01
-3FEBC03F9038FFFE00000313F04813C04890C7FC485A485AA2485AA2485AA4167FA26D14
-FF007F15EF6D01017F6C6C903907CFFF806C6CD90F8F13FE6C9038E07F076C9038FFFE03
-00014A7ED8003F9038F0007F0103018090C7FC37337CB13C>97 D<EF1FF0EE3FFFA51600
-177FB3A2EC0FFF91B512E0010314F8010F14FE013FEB01FF903A7FF8003FFFD9FFE0130F
-48497F48497F4890C77E4881485AA2485AA3127F5BA212FFAC127FA37F123FA2121F7F00
-0F5D6C6C5C5E6C6D5B6C01E0497F6C6D017FEBFFE090393FFE03FE6DB512F801075C0101
-14C09027001FFC00EBC0003B4D7CCB44>100 D<EC0FFF91B512F0010314FC010F14FF90
-263FFE077F90267FF0007F4948EB3FE04801806D7E48824890C76C7E4848140783485A00
-3F6F7EA3485A701380A312FFA290B8FCA401F8CAFCA5127FA27FA2123FA26C6CED0F80A2
-000F161F6C6C16006E5C6C6D147E6C6D5C6C6D495AD97FFCEB07F0903A1FFF803FE06D90
-B55A010392C7FCD9007F13FC020713C031337DB138>I<ED7FE0913807FFFC021F7F027F
-7F902601FFE0138049018113C0902607FE0113E049485A14F8131FEB3FF0A26F13C0EB7F
-E06F1380EE3E0093C7FCADB77EA526007FF0C8FCB3B3A2003FB512F8A52B4D7DCC26>I<
-EB7FC0B5FCA512037EB3A2923801FFC0030F13F8033F13FE4B7F9126C1FE077F9126C3F0
-037F9138C7C001DACF8080150002DE7F02FC81A25CA25CA35CB3A9B6D8C07FEBFFE0A53B
-4C7BCB44>104 D<EB7FC0B5FCA512037EB3B3B3AAB61280A5194C7BCB22>108
-D<903A7FC001FFC0B5010F13F8033F13FE4B7F9126C1FE077F9126C3F0037F00039038C7
-C0016CD9CF8080150002DE7F02FC81A25CA25CA35CB3A9B6D8C07FEBFFE0A53B317BB044
->110 D<913807FF80027F13F80103B6FC010F15C090261FFE017F903A7FF0003FF8D9FF
-C0EB0FFC48496D7E4890C76C7E4817804980000F17C048486E13E0A2003F17F049157FA2
-007F17F8A400FF17FCAB007F17F8A36C6CEDFFF0A3001F17E06D5C000F17C06C6C4A1380
-6C17006C6D495A6C01E0EB1FFC6D6C495A903A3FFE01FFF0010FB612C0010392C7FCD900
-7F13F80207138036337DB13D>I<90390FFF8070017FEBF1F048B6FC1207380FFC01391F
-E0003F4848130F491307127F90C712035A1501A27FA213E06D90C7FC13FE387FFFF0ECFF
-C015F06C14FC6C14FF6C15806C15C06C15E0C615F0013F14F8010714FCEB007F14019138
-003FFE150F0078140700F81403A26C1401A37E16FC6C14036D14F87F6DEB07F001F8EB1F
-E001FFEBFFC091B51280D8FC7F1400D8F81F13FCD8E00313C027337CB130>115
-D<14F8A61301A41303A21307A2130FA2131F133F137F13FF1203000F90B512F0B7FCA426
-007FF8C7FCB3A6167CAA013F14F880A290391FFE01F0010F1303903907FF87E06DEBFFC0
-6D14806D6C1300EC0FFC26467EC430>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fg cmti10 10.95 35
-/Fg 35 122 df<933807FF80043F13E09338FE00F8DB01F0133EDB07E0130E4B48131F4C
-137F031F14FF4BC7FCA218FE157E1878180015FE5DA31401A25DA414030103B712F0A218
-E0903A0003F000070207140F4B14C0A3171F020F15805DA2173F1800141F5D5F177EA214
-3F92C712FE5FA34A1301027EECF81CA3160302FEECF03C4A1538A21878187013014A0101
-13F018E0933800F1C0EF7F804948EC1F0094C7FCA35C1307A2001E5B127F130F00FF5BA2
-49CAFC12FEEAF81EEA703CEA7878EA1FF0EA07C0385383BF33>12
-D<EE07FC93393FFF87F09338FC07C7923A03F001E7E0DB07C013F792390F8007FF031F49
-13C016005DA2037E1580EF039FEF001F183F4B1500A3600201157E5DA218FE6014035D01
-03B7FC60A2903A0007F000014B130360A31707020F5D5DA2170F60141F5D171F60A2143F
-92C7123F95C7FCA34A5C027EEC7E07A317FE02FE4A5A4A150EA2181E181C13014AEC7C3C
-1838EF3C70EF1FE04948EC07C094C8FCA3495AA3001E5BEA7F0FA200FF5BA249CBFC12FE
-EAF83EEA703CEA7878EA1FF0EA07C03C5383BF35>I<ED01801507ED0F00151C5D5D5D14
-014A5A4A5A4AC7FC141E143E5C14785C1301495AA2495A5C130F49C8FCA2133EA25BA213
-FC5B12015BA212035B1207A25B120FA25BA2121FA290C9FCA25AA2123EA2127EA2127CA6
-5AAB1278A67EA47EA2120E120F7EA26C7EA26C7E6C7E1360215A73C325>40
-D<14031580A2EC01C0EC00E0A21570A215781538153CA3151EA4151FA2150FA7151FA915
-3FA2153EA3157EA2157CA215FCA215F8A21401A215F0A2140315E0A2140715C0A2EC0F80
-A2141F15005C143EA25CA25CA2495A5C1303495A5C130F49C7FC131E5B137C5B5B485A48
-5A485A48C8FC121E5A12705A5A205A7FC325>I<387FFFFCA3B5FCA21605799521>45
-D<120FEA3FC0127FA212FFA31380EA7F00123C0A0A77891C>I<15031507150F151F151E
-153E157EEC01FEEC03FC1407141FEB01FF90380FFBF8EB1FC3EB0E07130015F0A2140FA2
-15E0A2141FA215C0A2143FA21580A2147FA21500A25CA25CA21301A25CA21303A25CA213
-07A25CA2130FA25CA2131FA25CEB7FE0B612F0A215E0203D77BC2E>49
-D<15FE913803FFC091380F01F091383C00F84A137C4A7F4948133F49487F4A148049C7FC
-5BEB0E0C011E15C0EB1C0EEB3C06133813781370020E133FD9F00C148013E0141C021813
-7F00011600EBC0384A13FEEC600102E05B3A00E3C003F89039FF0007F0013C495A90C748
-5A5E037FC7FC15FC4A5A4A5AEC0FC04AC8FC147E14F8EB03E0495A011FC9FC133E491418
-01F0143C48481438485A1678485A48C85A120E001E4A5AD83FE0130301FF495A397C3FF0
-1FD8780FB55AD8700391C7FCD8F0015B486C6C5A6E5AEC07C02A3F79BC2E>I<157F9138
-01FFE0913807C0F091381F007C023C133C4A133E4A131F1301495A5C1307A2495AA2163F
-011F143EA2167E6E137C16F8ECE00102F013F09138F803E09138FC07C090390FFE0F00EC
-FFBE6D13F86D5B7F6D7F8101037F90380F9FFFD91F0F1380D97C0713C0497E48486C13E0
-3903E0007F4848133F4848131F001F140F90C7FC003E1407A2127E127CA200FC15C05AA2
-ED0F80A2ED1F00153E007C143C157C007E5C6CEB03F0391F8007C0390FE03F802607FFFE
-C7FC000113F838003FC0283F78BC2E>56 D<49B712C018F818FE903B0003FC0001FF9438
-007F804BEC3FC0A2F01FE014074B15F0180FA2140F5D181FA2021F16E05D183F19C0023F
-ED7F804B14FF19004D5A027F4A5A92C7EA07F0EF1FE0EF7F804AD903FEC7FC92B512F017
-FE4AC7EA3F800101ED1FE04A6E7E17078401036F7E5CA30107825CA3010F5E4A1407A260
-011F150F5C4D5A60013F153F4A4A5A4D5A017F4A90C7FC4C5A91C7EA0FF849EC3FF0B812
-C094C8FC16F83C3E7BBD40>66 D<49B77E18F018FC903B0003FE0003FEEF00FF4BEC7F80
-F03FC00207151F19E05DA2020F16F0A25DA2141FF03FE05DA2023F16C0187F4B1580A202
-7FEDFF00604B495A4D5A02FF4A5A4D5A92C7EA3FC04CB4C7FC4990B512FC17E04ACAFCA2
-1303A25CA21307A25CA2130FA25CA2131FA25CA2133FA25CA2137FA25C497EB67EA33C3E
-7BBD3E>80 D<92391FE00380ED7FFC913A01FFFE0700913907F01F8F91390FC007DF4AC6
-6CB4FC023E6D5A4A130014FC495A4948147CA2495AA2010F15785CA3011F1570A46E91C7
-FCA2808014FE90380FFFE015FC6DEBFF8016E06D806D806D6C7F141F02037FEC003FED07
-FF1501A281A282A212075A167E120EA2001E15FE5EA25E003E14015E003F14034B5A486C
-5C150F6D495A6D49C8FCD8F9F0137C39F8FE01F839F03FFFF0D8E00F13C026C001FEC9FC
-314279BF33>83 D<277FFFFE01B500FC90B512E0B5FCA20003902680000790C7380FFC00
-6C90C701FCEC07F049725A04035EA26350C7FCA20407150EA2040F5D1A3C041F15386216
-3B6216734F5A6D14E303014B5A6C15C303034BC8FC1683DB0703140E191E030E151C6103
-1C7F61ED380161157003F04A5A15E002014B5A15C0DA03804AC9FC60DA0700140E60140E
-605C029C5D14B8D97FF85D5C715A5C4A5DA24A92CAFC5F91C7FC705A137E5F137C5F1378
-01705D53406EBD5B>87 D<147E49B47E903907C1C38090391F80EFC090383F00FF017E13
-7F4914804848133F485AA248481400120F5B001F5C157E485AA215FE007F5C90C7FCA214
-01485C5AA21403EDF0385AA21407EDE078020F1370127C021F13F0007E013F13E0003E13
-7FECF3E1261F01E313C03A0F8781E3803A03FF00FF00D800FC133E252977A72E>97
-D<EB1FC0EA0FFF5CA2EA003FA291C7FCA25BA2137EA213FEA25BA21201A25BA21203A25B
-147E3907F1FF809038F783E09038EF01F013FE390FF800F8A24913FC49137C485A157E5B
-15FE123FA290C7FCA248130115FC127EA2140300FE14F85AA2EC07F0A215E048130F15C0
-141F15800078EB3F00127C147E003C5B383E01F8381E03E06C485A6CB4C7FCEA01F81F40
-76BE2A>I<EC1FC0ECFFF0903803F03C903807C01E90381F800E90383F000F017E133F49
-13FF485A485A000714FE5B000F14FC48481300A2485AA3127F90C8FCA35A5AA648140300
-7E1407150F151E003E143C15786C14F0EC03E0390F800F803903E07E003801FFF838003F
-C0202977A72A>I<EE3F80ED1FFF1700A2ED007FA2167EA216FEA25EA21501A25EA21503
-A25EA21507A25E147E903801FF8F903807C1CF90391F80EFC090383F00FF017E137F5B48
-486D5A485AA2485A000F92C7FC5B001F5CA24848137EA215FE127F90C75AA214015A485C
-A2140316384814F0A21407167891380FE070127C021F13F0007E013F5B003E137FECF3E1
-261F01E35B3A0F8781E3802703FF00FFC7FCD800FC133E294077BE2E>I<EC3F80903801
-FFE0903807E0F890381F803CEB3E0001FC131E485A485A12074848133E49133C121F4848
-137C15F8EC03F0397F000FE0ECFF809038FFFC00B512C048C8FCA45AA61506150E151E00
-7C143C15786C14F0EC01E06CEB07C0390F801F003807C0FC3801FFF038007F801F2976A7
-2A>I<167C4BB4FC923807C78092380F83C0ED1F87161FED3F3FA2157EA21780EE0E004B
-C7FCA414015DA414035DA30103B512F8A390260007E0C7FCA3140F5DA5141F5DA4143F92
-C8FCA45C147EA414FE5CA413015CA4495AA4495AA4495A121E127F5C12FF49C9FCA2EAFE
-1EEAF83C1270EA7878EA3FE0EA0F802A5383BF1C>I<EC03F0EC0FFC91383E0E1C9138FC
-077E903901F003FE1303903807E001D90FC013FCEB1F80A2EB3F004914F8137E01FE1303
-A2484814F0A2150712034914E0A2150F12074914C0A2151FA216805B153F1203ED7F006D
-5BA200015B0000495A9038F80F7E90387C1EFEEB1FF8903807E0FC90C7FC1401A25DA214
-03A25D001C1307007F5C48130F5D4A5A4AC7FC48137E00F85B387C03F0381FFFC0D803FE
-C8FC273B7CA72A>I<EB01FC13FF5CA21303A25CA21307A25CA2130FA25CA2131FA25CA2
-133FA291C8FCEC03F890387F0FFE91383E0F80D97E7813C0ECE007D9FFC013E014801400
-A2485A5BA25B0003140F16C05BA20007141F16805BA2000F143F16005B5D001F147EEDFE
-074913FCA2003F0101130FEDF80E1300161E48ECF01CA2007E1538A200FE1570020013E0
-48EC7FC00038EC1F0028407ABE2E>I<1478EB01FCA21303A314F8EB00E01400AD137C48
-B4FC38038F80EA0707000E13C0121E121CEA3C0F1238A2EA781F00701380A2EAF03F1400
-12005B137E13FE5BA212015BA212035B1438120713E0000F1378EBC070A214F0EB80E0A2
-EB81C01383148038078700EA03FEEA00F8163E79BC1C>I<EB07F0EA03FF14E0A2EA000F
-A214C0A2131FA21480A2133FA21400A25BA2137EA213FEA25BA21201A25BA21203A25BA2
-1207A25BA2120FA25BA2121FA25BA2123FA290C7FCA25A1307127EA2EAFE0F130E12FCA2
-131E131CA2EA7C381378EA3C70EA1FE0EA0780144079BE17>108
-D<D801F0D93F80137F3D07FC01FFE003FFC03D0F3E07C1F80F83F03D0E1F0F00FC1E01F8
-001E011C90387C3800001C49D97E707F003C01F05C0038157F4A5C26783FC05C12704A91
-C7FC91C7127E00F003FE1301494A5CEA007EA20301140301FE5F495CA203031407000160
-495C180F03075D0003051F13E0494A1480A2030FEC3F810007F001C0495CA2031F91383E
-0380120F494AEC0700A2033F150E001FEF1E1C4991C7EA0FF80007C7000EEC03E0432979
-A74A>I<D801F0EB3F803A07FC01FFE03A0F3E07C1F83A0E1F0F00FC001E011C137C001C
-49137E003C13F012385C38783FC012705C91C7FC00F015FE495CEA007EA2150101FE5C5B
-A2150300015D5B15075E0003020F13704914C0A2031F13F00007ED80E05B1681EE01C012
-0F49EC0380A2EE0700001FEC0F0E49EB07FC0007C7EA01F02C2979A733>I<EC1FC0ECFF
-F8903803F07C90380FC01FEB1F8090393F000F80017E14C0491307484814E0485A12075B
-000F15F0485AA2485AA2ED0FE0127F90C7FCA2151F4815C05AA2ED3F80A2ED7F00A24814
-7E007C5C007E13015D4A5A003E495A6C495A4A5A260F803EC7FC3807C0FC3801FFF03800
-3F80242977A72E>I<903903E001F890390FF807FE903A1E7C1E0F80903A1C3E3C07C001
-3C137801389038E003E0EB783F017001C013F0ED80019038F07F0001E015F8147E160300
-0113FEA2C75AA20101140717F05CA20103140F17E05CA20107EC1FC0A24A1480163F010F
-15005E167E5E131F4B5A6E485A4B5A90393FB80F80DA9C1FC7FCEC0FFCEC03E049C9FCA2
-137EA213FEA25BA21201A25BA21203A2387FFFE0B5FCA22D3A80A72E>I<D801F013FC3A
-07FC07FF803A0F3E0F03C0260E1F1C13E0001EEB380F001C1370003CEBE01F123814C0D8
-783F14C00070903880070092C7FC91C8FC12F05BEA007EA313FE5BA312015BA312035BA3
-12075BA3120F5BA3121F5B0007C9FC232979A726>114 D<EC7F80903801FFE0903807C0
-F890381F003C013E131C013C131E017C133E49137E15FEA2000114FCA215706D13007FEB
-FFC014FC6C13FF15806D13C06D13E0010F13F01300140F14071403120C123F387F800114
-03D8FF0013E0A300FCEB07C000F0EB0F8012700078EB1F006C133C381F01F83807FFE0C6
-90C7FC1F297AA725>I<EB01C0EB03F01307A25CA2130FA25CA2131FA25CA2133FA291C7
-FCA2007FB51280B6FC1500D8007EC7FC13FEA25BA21201A25BA21203A25BA21207A25BA2
-120FA25BA2121F141C1380A2003F133C1438EB0078147014F05C495AEA1F03495A6C48C7
-FCEA07FCEA01F0193A78B81E>I<137C48B4141C26038F80137EEA0707000E7F001E15FE
-121CD83C0F5C12381501EA781F007001805BA2D8F03F1303140000005D5B017E1307A201
-FE5C5B150F1201495CA2151F0003EDC1C0491481A2153F1683EE0380A2ED7F07000102FF
-13005C01F8EBDF0F00009038079F0E90397C0F0F1C90391FFC07F8903907F001F02A2979
-A731>I<017CEB01C048B4EB07F038038F80EA0707000E01C013F8121E001C1403EA3C0F
-0038EC01F0A2D8781F130000705BA2EAF03F91C712E012005B017E130116C013FE5B1503
-000115805BA2ED07001203495B150EA25DA25D1578000114706D5B0000495A6D485AD97E
-0FC7FCEB1FFEEB03F0252979A72A>I<017C167048B491387001FC3A038F8001F8EA0707
-000E01C015FE001E1403001CEDF000EA3C0F0038177C1507D8781F4A133C00701380A2D8
-F03F130F020049133812005B017E011F14784C137013FE5B033F14F0000192C712E05BA2
-170100034A14C049137E17031880A2EF070015FE170E00010101141E01F86D131C0000D9
-039F5BD9FC076D5A903A3E0F07C1E0903A1FFC03FFC0902703F0007FC7FC372979A73C>
-I<903903F001F890390FFC07FE90393C1E0E0F9026780F1C138001F0EBB83FD801E013F8
-9039C007F07FEA0380000714E0D9000F140048151C000E4AC7FCA2001E131FA2C75BA214
-3F92C8FCA35C147EA314FE4A131CA30101143C001E1538003F491378D87F811470018314
-F000FF5D9039077801C039FE0F7C033A7C0E3C078027783C1E1EC7FC391FF80FFC3907E0
-03F029297CA72A>I<137C48B4143826038F8013FCEA0707000E7F001E1401001C15F8EA
-3C0F12381503D8781F14F000701380A2D8F03F1307020013E012005B017E130F16C013FE
-5B151F1201491480A2153F000315005BA25D157EA315FE5D00011301EBF8030000130790
-387C1FF8EB3FF9EB07E1EB00035DA21407000E5CEA3F80007F495AA24A5AD8FF0090C7FC
-143E007C137E00705B387801F0383803E0381E0FC06CB4C8FCEA03F8263B79A72C>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fh cmsl10 10.95 33
-/Fh 33 122 df<007FB5FCA2B512FEA418067C961E>45 D<157015F014011407143F9038
-03FFE0137FEBFFCFEBF80F1300141F15C0A5143F1580A5147F1500A55C5CA513015CA513
-035CA513075CA5130F5CA3131F497EB612F8A31D3D78BC2D>49 D<EC01FE91380FFFE002
-3F13F89138FC07FC903901E001FE903907C000FF49C7EA7F80011E15C0163F4915E05B01
-70141F13FF80A35A163FA26C90C7FC137E0118EC7FC090C8FCEEFF80A24B1300A24B5A5E
-4B5A4B5A4B5A5E4B5A4BC7FC15FEEC01F84A5A4A5A4A5A4AC8FC143E5C5CEB01E0494813
-0E49485B49C7FC131E495C13705B48485C484814F0000FB6FC5A485D5AB7FC5EA22B3D7C
-BC2D>I<EC07FC91383FFF809138F80FE0903903C007F09039078003FC90380F0001011C
-14FE013C14FF137F1480EBFFC0A31480A291380003FE137E90C7FCED07FC16F8150F16F0
-ED1FE016C0ED3F80ED7E005DEC07F0903803FF8015F090380001FC6E7EED7F80ED3FC0A2
-ED1FE016F0A316F8A4120EEA3F80486C133F16F012FFA216E0157F5B48C7EAFFC000F015
-80007049130012786C495A003EEB07F86C495A390FE03FE00003B51280C649C7FCEB1FE0
-283F7ABC2D>I<01061403D90780131F90390FF801FE91B512FC16F816F016E0168049EB
-FE0015F890381C7FC091C8FCA3133C1338A513781370A2EC1FE0ECFFF8903873E03E9038
-FF001F01FCEB0F804914C049EB07E04914F049130390C7FC16F8A61507A21206EA3F8048
-7EA2150F00FF15F0A24914E090C7121F00FC15C000F0143F00701580ED7F0012786C14FE
-4A5A6C495A390F800FE03907E03FC06CB5C7FCC613FCEB1FE0283F7ABC2D>53
-D<EC03FC91381FFF8091387C07E0903901F001F0903903C000F84948137C49C7123E131E
-013E141F133C137C137813F8A3163F486C143E167E6D147C6C6C14FC6E13F89138C001F0
-9138F003E090397FF807C09138FC0F0090383FFF3E6D13F86D13E06D7F01017F8101077F
-90391F1FFF80D93E0F13C0EBF8072601F00113E048486C13F04848137F4848131F001FEC
-0FF890C71207003E1403A2481401A300FC15F05AA3ED03E0A26CEC07C0007C1580007E14
-0F003EEC1F00003F143E6C6C5B6C6C485A3907F00FE00001B512806C6C48C7FCEB0FF028
-3F7ABC2D>56 D<EC07F8EC3FFE9138FC0F80903901F007C0903907E003E0D90FC013F090
-381F8001013F14F8EB7F004914FC48481300A24848EB01FEA21207A3485AA41503121F5B
-A31507A2000F15FC150FA2151F1207153F000315F86C6C137F000014EF90387C01CF9039
-3E078FF090380FFE1FEB03F890C713E0A2ED3FC0A3ED7F8016005D003F5C487E4A5A00FF
-495A5D4A5A49485A48495A007049C7FC0078137E383E03FC381FFFF06C13C0D801FEC8FC
-273F79BC2D>I<17E016011603831607A2160FA2161F83163FA2167F167716F7EEE7FCED
-01E316C3150316831507EE03FEED0F01150E151E151C153C03387FED7800157015F05D4A
-4880177F4A5AA24AC7FCA2020E81173F5C021FB6FC5CA20270C7EA3FE0171F5CA2495AA2
-494881170F49C8FCA2130EA24982013C1507A2137CD801FE4B7E2607FF80EC3FFEB500F0
-0107B512FC19F85E3E417DC044>65 D<013FB7FC18E018FC903B007FE00007FE6E489038
-01FF809438007FC05DF03FE0F01FF0A3027F16F892C8FCA54A16F04A153F19E0187F19C0
-F0FF8001014B13004A4A5A4D5AEF1FF04D5ADC03FFC7FC49B612F8EFFF8002F8C7EA3FE0
-EF0FF0EF07FC717E010715014A81711380A319C0130F5CA5011F4B13805C19005F601707
-013F4B5A4A4A5A4D5A4D5A017F913801FF8001FF020F90C7FCB812FC17F094C8FC3D3E7D
-BD40>I<DCFFC01338030F01F01378037F01FC13F0913A01FF803F01913A07FC000781DA
-1FE0EB03C3DA7FC0EB01E74AC812FF4948ED7FE0D907FC153F495A4948151F495A494815
-0F494816C018074890C9FC485AA2485A000F1880491603121FA248481607A295C7FC485A
-A412FF5BA75BA2181C183C1838A27F007F1778187018F0003F5F6D150160001F16036C6C
-4B5A95C7FC6C6C5D6C6C151E6C6C5D6C6C15F86D6C495A6D6CEB07C0D91FF0EB1F80D907
-FE01FEC8FC0101B512F86D6C13E0DA07FEC9FC3D4276BF42>I<013FB812F8A39026007F
-F0C7127F6E48140F18034B14011800A31978147F4B1570A502FF147092C7FCA3190017F0
-495D4A1301A21607161F91B6FC495DA29138FC003F160F1607160301075D5CA219E01801
-19C0010FEC07004A90C712031980A218071900011F5E5C181EA2183E183C013F167C4A15
-FC4D5A1707017F151F01FF4AB45AB9FCA2603D3E7DBD3E>69 D<011FB512FC5BA2903900
-3FF8006E5AA25DA5143F5DA5147F5DA514FF92C7FCA55B5CA513035CA513075CA5130F5C
-A5131F5CA3133F497E007FB512F0A2B6FC263E7EBD21>73 D<90263FFFF093381FFFF850
-13F0629026007FF8EFF000023F4D5AA2023B933801DFC0A2DA39FCED039FA2F1073F1479
-0271040E5BEC70FE191C19381A7F02F01670DAE07F94C7FC19E0A2F001C06201016D6C49
-5A02C05FF00700A2180E6F6C14010103161C028003385BA218706F7EF0E00313070200DA
-01C05BA2923907F00380A294380700075B010E902603F80E5C5FA25F190F011E6D6C5A01
-1C605FA2EEFDC0DB00FF141F013C5D013860013C92C7FC017C5C01FE027E143F2607FF80
-017C4A7EB500FC037FB512E004785E4A1338553E7CBD53>77 D<90263FFFE0023FB5FC6F
-16FEA29026003FF8020313C0021F030013004A6C157C023B163C6F153814398102381678
-02787FDA707F157082153F82031F15F002F07FDAE00F5D8215078203031401010180DAC0
-015D82811780047F1303010315C04A013F5C17E0161F17F0040F1307010715F891C70007
-91C7FC17FC160317FE04015B4915FF010E6E130E188E177F18CEEF3FDE011E16FE011C6F
-5AA2170FA21707133C01386F5A133C017C150113FE2607FF801400B512FC18705C483E7D
-BD44>I<013FB612FEEFFFE018F8903B007FF0000FFC6E48EB01FF7113804BEC7FC0183F
-19E0F01FF0A2147F5D19F8A402FFED3FF092C8FCA219E0A2F07FC05B4AEDFF8019004D5A
-4D5AEF0FF80103ED3FE04A903801FF8091B648C7FC17F002FCCAFCA213075CA5130F5CA5
-131F5CA5133F5CA3137F497EB612E0A25D3D3E7DBD3E>80 D<9238FF80070207EBE00F02
-1FEBF81E91387F00FE02FCEB1F3ED903F0EB0FFE49481307494813034AEB01FC49C7FC49
-1400133E137E177C491578A57F1770A26D1500808080EB7FFEECFFE06D13FEEDFFC06D14
-F06D14FC010380010080143F02031480DA003F13C015031500EE7FE0163F161FA2160F12
-1CA31607160F003C16C0A31780003E151F1700007E5D007F153E6D5C16FC01E0495AD87D
-F0495AD8FCFCEB0FC03AF87F803F8027F01FFFFEC7FCD8E00713F839C0007FC030427BBF
-33>83 D<B600E090B512FC4B15F8A2000101C0C7000F13006C49EC03FCEF01F091C9FC60
-A317015A495EA417031203495EA4170712074993C7FCA45F120F49150EA4171E121F4915
-1CA4173C123F491538A31778177017F05F001F15015F16036D4A5A000F93C8FC5E6C6C14
-1E6C6C5C000115F86C6C495A017FEB07C090393FC03F8090260FFFFEC9FC010313F89038
-007FC03E4073BD44>85 D<EC7FC0903803FFF890380FC07E90383E003F496D7E01FF6D7E
-82A248140782A26C5A137890C7120FA25EA2EC03FF147F903807FF1FEB1FE0D97F805B38
-01FE00EA03F8485A4848133F485A003F5D49EC81C048C7FCA2157F48ED03804814FFA200
-7F5B913903BF0700903880073F3A3FC00E1F8E260FE03C13FC3A03FFF00FF83A007FC003
-E02A2A7CA82D>97 D<EB3F80EA1FFFA3C6FC137FA291C9FCA55B5BA512015BA4EC07F800
-03EB3FFF9039F8F80FC09039FBE003E09039FF8001F891C77E5B4848147E49147F5B8217
-80A2120F5B17C0A3167F001F16805BA4EEFF00123F5B4B5AA24B5A5E007F4A5AA24B5A6D
-495A4BC7FCD87CE0137E39F87001F839F03C07E039E00FFF80260003FCC8FC2A4077BE33
->I<EC1FF0ECFFFE903903F01F8090390FC003C0D93F0013E0017E130F49131F000115F0
-4848EB3FE0485AA24848EB1FC0001FEC0F004990C7FC123FA2485AA412FF90C9FCA96CEC
-0380150716006C6C5B151E001F5C6C6C5B6C6C5B6C6C485A3901F80F8026007FFEC7FCEB
-0FF0242A7AA828>I<EE03F8ED01FFA3ED000F1607A217F0A4160FA217E0A4161FA217C0
-A491380FF03FECFFFC902603F81F138090390FC007BF90391F8003FF90387E0001497F00
-01157F48481500485A120F5B001F5D485A5E5B127FA2150112FF90C75BA41503A25EA37E
-1507A26C4A5A7F001F141F6C6C133F6C6CEBFFF83B03F001EFFFC03900F80F8F90383FFE
-0FD90FF0EBE0002D407ABE33>I<EC3FE0903801FFF8903807E07E90380F801F90393F00
-0F80017E14C049EB07E0485A12034848EB03F0485AA2121F5B123FA248481307A290B6FC
-A2D8FF80C8FC90C9FCA87EED01C015036C15806D1307001FEC0F006D131E000F5C6C6C5B
-6C6C485A3900FC07C0D93FFFC7FCEB07F8242A7BA828>I<ED07F0ED3FFCEDFC1E913803
-F03F4A48B4FC4A481380141FEC3F81DA7F0113008102FE137C93C7FCA213015CA513035C
-A50007B512F8A3260007F0C8FCA3130F5CA5131F5CA5133F5CA5137F91C9FCA55B5BA4EA
-03FF007F13FEB5FCA229407DBF1C>I<1478EB01FE130314FFA25B14FE130314FCEB00F0
-1400ACEB03F8EA01FF14F0A2EA001F130FA314E0A5131F14C0A5133F1480A5137F1400A5
-5B5BA4EA03FF007F13F0A2B5FC183E7DBD1A>105 D<143FEB1FFF5BA213017FA214FEA5
-130114FCA5130314F8A5130714F0A5130F14E0A5131F14C0A5133F1480A5137F1400A55B
-5BA4EA03FF007F13F8A2B5FC183F7DBE1A>108 D<903907F007F8D803FFEB1FFF9139E0
-781FC09138E1E00F3B001FE38007E090380FE70002EE14F014FC14D814F85CA24A130F13
-1F4A14E0A4161F133F4A14C0A4163F137F91C71380A4167F5B491500A300015D486C4913
-80B5D8F87F13FCA32E287DA733>110 D<EC0FF0ECFFFE903903F01F8090390FC007C049
-C66C7E013E6D7E01FC6D7E48488049147C0003157E485A000F157F5B121FA2485AA2007F
-1680A2170048C85AA54B5AA25E5A6C4A5A7E4B5A5E6C140F6C6C5C4B5A6C6C013EC7FC6C
-6C5B6C6C485A3900FC0FE090383FFF80D90FF8C8FC292A7BA82D>I<903907F01F80D803
-FFEB7FE09138E1E1F09138E387F839001FE707EB0FE614EE02FC13F002D813E09138F801
-804AC7FCA25C131FA25CA4133F5CA5137F91C8FCA55B5BA31201487EB512FEA325287EA7
-24>114 D<9138FF81C0010713E390381F807F90397C003F8049131F4848130F5B000314
-07A248481400A27FA27F6D90C7FCEBFF8014FC6C13FF6C14C015F06C6C7F011F7F130790
-38007FFE1403140100381300157EA2123C153E157E007C147CA2007E147815F8007F495A
-4A5A486C485A26F9E01FC7FC38E0FFFC38C01FE0222A7DA824>I<EB0380A4130791C7FC
-A25BA25BA2133EA2137E13FE12011207001FB512C0B6FCA2D801FCC7FCA312035BA51207
-5BA5120F5BA41407001F130E13C0A4141E141C1380A26D5AA2000F5B14F03807E1E03801
-FF80D8007EC7FC1A3978B723>I<B539E007FFF05D17E02707FE000313006C48EB01FC6F
-5A5E00014A5A5EA24B5A6D1307000092C7FC5D150E6D5B7F5DA25D1480013F5B14815D14
-C3011F5B02C7C8FCA214CE14EEEB0FFCA25CA26D5A5CA25CA26D5A2C2878A630>118
-D<B500C3B53803FFFCA204FE14F8290FFE003FE00013C0D807F86D48EB7F000003173E18
-3C150F18386D5E0001141F705B153F4D5A15776D4B5A0000ECE7F04DC7FCEC01C3170E90
-38FF0383017F5D91380703F85FEC0E01021E5CD93F9C14F002BC6D5A02B813FDDAF8005B
-4A13FF5F6D5A94C8FC5C4A137E167C6DC7FC1678010E14383E2878A642>I<90B539E007
-FFF05E18E0902707FE000313006D48EB01FC705A5F01014A5A5F16036E5C0100140794C7
-FC160E805E805E1678ED8070023F13F05EED81C015C191381FC38015C793C8FC15EF15EE
-EC0FFCA25DA26E5AA25DA26E5A5DA24AC9FC5C140E141E141C5C121C003F5B5A485B495A
-130300FE5B4848CAFCEA701EEA783CEA3FF0EA0FC0343A80A630>121
-D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fi cmbx12 17.28 43
-/Fi 43 122 df<EA01FCEA07FF4813804813C04813E04813F0A2B512F8A76C13F0A26C13
-E06C13C06C13806C1300EA01FC151574942D>46 D<16F04B7E1507151F153FEC01FF1407
-147F010FB5FCB7FCA41487EBF007C7FCB3B3B3B3007FB91280A6395E74DD51>49
-D<913801FFF8021FEBFFC091B612F8010315FF010F16C0013F8290267FFC0114F89027FF
-E0003F7F4890C7000F7F48486E7FD807F86E148048486E14C048486E14E048486F13F001
-FC17F8486C816D17FC6E80B56C16FE8380A219FFA283A36C5BA26C5B6C90C8FCD807FC5D
-EA01F0CA14FEA34D13FCA219F85F19F04D13E0A294B512C019804C14004C5B604C5B4C5B
-604C13804C90C7FC4C5A4C5A4B13F05F4B13804B90C8FC4B5AED1FF84B5A4B5A4B48143F
-4A5B4A48C8FC4A5A4A48157E4A5A4A5AEC7F8092C9FC02FE16FE495A495A4948ED01FCD9
-0FC0150749B8FC5B5B90B9FC5A4818F85A5A5A5A5ABAFCA219F0A4405E78DD51>I<92B5
-FC020F14F8023F14FF49B712C04916F0010FD9C01F13FC90271FFC00077FD93FE001017F
-49486D8049C86C7F484883486C6F7F14C0486D826E806E82487FA4805CA36C5E4A5E6C5B
-6C5B6C495E011FC85A90C95CA294B55A614C91C7FC604C5B4C5B4C5B4C5B047F13809226
-0FFFFEC8FC020FB512F817E094C9FC17F817FF91C7003F13E0040713F8040113FE707F71
-7F7113E085717FA2717F85A285831A80A31AC0EA03FCEA0FFF487F487F487FA2B57EA31A
-80A34D14005C7E4A5E5F6C495E49C8485BD81FF85F000F5ED807FE92B55A6C6C6C491480
-6C01F0010791C7FC6C9026FF803F5B6D90B65A011F16F0010716C001014BC8FCD9001F14
-F0020149C9FC426079DD51>I<F01F804E7E187F18FFA25F5F5F5FA25F5F5FA294B5FC5E
-5E5EA25E5EEE3FBFEE7F3FA216FEED01FCED03F8ED07F0A2ED0FE0ED1FC0ED3F8016005D
-15FE4A5A4A5AA24A5A4A5A4A5A4A5AA24AC7FC14FE495A5C1303495A495A495A5C133F49
-C8FC13FE485AA2485A485A485A5B121F485A48C9FC12FEBCFCA6CA6CEBC000B1037FB8FC
-A6485E7CDD51>I<01C0EE01C0D801F8160F01FF167F02F0EC07FFDAFF8090B5FC92B712
-8019006060606060606095C7FC17FC5F17E0178004FCC8FC16E09026FC3FFCC9FC91CBFC
-ADED3FFE0203B512F0020F14FE023F6E7E91B712E001FDD9E00F7F9027FFFE00037F02F8
-01007F02E06EB4FC02806E138091C8FC496F13C04917E07113F0EA00F090C914F8A219FC
-83A219FEA419FFA3EA03F0EA0FFC487E487E487FA2B57EA319FEA35C4D13FC6C90C8FC5B
-4917F8EA3FF001804B13F06D17E0001F5E6C6C17C06D4B1380D807FC92B512006C6C4A5B
-6C6C6C01075B6C01E0011F5BD97FFE90B55A6DB712C0010F93C7FC6D15FC010115F0D900
-3F1480020301F0C8FC406078DD51>I<EE1FFF0303B512E0031F14F892B612FE0203814A
-D9FC037F021F9039C0007FC04A90C7EA1FE0DAFFFC6E7E494914074949EC7FF8494914FF
-49495B4949497F4990C7FC495D5C13FF485BA25A4A6E5B5A715B48496E5B725A4894C8FC
-A35AA35C48913801FFE0030F13FE033F6D7E4B14E092B612F89126E1FE037FB53AE3F000
-7FFEDAE7E06D7EDAEFC06D7F4B6D7F02FFC76C7F4A82717F4A82A2854A8085A24A1780A5
-4A17C0A37EA77EA47E6E1780A27EA21A007E4D5B7E6E5E7E6E5E6C4C5B6D7E013F4B5B6D
-6C4A5B6D01C0495B6D6D90B5C7FC6DD9FC0713FC6D90B65A6D5E023F15C0020F92C8FC02
-0114F8DA001F1380426079DD51>I<EA07E0120F7F13FCEBFFFC91B912F8A45AA21AF01A
-E01AC01A801A00A248606161616101E0C9123F01804C5A48CA485A4D90C7FC60007E4C5A
-17074D5A4D5A4D5A485F4D5A17FF4C90C8FCC9485A5F4C5A160F4C5A5F163F4C5A16FF5F
-5D94C9FC5D5D5E150FA24B5AA2153FA24B5AA215FFA34A5BA25CA35CA44A5BA45CA65CAD
-6E5BA26E5BDA03FECAFC6E5A456377E051>I<92383FFF800203B512FC021FECFF80027F
-15E049B712F849D9F0077F010F90C76C7ED91FFCEC1FFFD93FF06E7F494802037F494882
-717F484980854890C9127FA24884183FA25A80A380806E157F6E5E14FE6E7E6F4A5A6C14
-F003FC495B03FF495B6C1580DCE0075B6CDBF80F90C7FC9338FE1FFE6C9238FF7FF84D5A
-6D16C06D5E6D4BC8FC6D6F7E6D16E00101826D16FC023F814A8149B87E01078349839026
-3FFE3F8190267FFC0F819026FFF003814849C6FC48496D804849131F4890C70007801601
-48486E1580003F163F49150F007F7014C0491501717E8400FF835B8484A384A21A80A27F
-007F1900607F003F606D160F001F606D4C5A6C6D153F6C6D4B5A6C01F04B5A6C01FC0203
-5B6C01FF021F5B6D9027F001FFFEC7FC6D90B65A010F16F001035E010093C8FC020F14F8
-DA007F90C9FC426079DD51>I<BB12F0F2FF801BF81BFEF3FFC088D800010280C7000114
-F8DF003F7F080F13FF74807480867480757FA2757FA28987A289A965A26365A2515BA298
-B55A505C505C5091C7FC505B505B087F13F00703B512C096B6C8FC93B812F81BC01BF8F3
-FF801CE00480C8001F13F8080713FE08016D7E7480757F757F757F89757F89871E80871E
-C0A41EE087A663A21EC0A3631E80A2511400A2515B515B6398B55A505C08075C081F5C97
-B6C7FCBD5A1CF81CE099C8FC1BF898C9FC63627AE173>66 D<4DB5ED03C0057F02F01407
-0407B600FE140F047FDBFFC0131F4BB800F0133F030F05FC137F033F9127F8007FFE13FF
-92B6C73807FF814A02F0020113C3020702C09138007FE74A91C9001FB5FC023F01FC1607
-4A01F08291B54882490280824991CB7E49498449498449498449865D49498490B5FC484A
-84A2484A84A24891CD127FA25A4A1A3F5AA348491A1FA44899C7FCA25CA3B5FCB07EA380
-A27EA2F50FC0A26C7FA37E6E1A1F6C1D80A26C801D3F6C6E1A00A26C6E616D1BFE6D7F6F
-4E5A7F6D6D4E5A6D6D4E5A6D6D4E5A6D6E171F6D02E04D5A6E6DEFFF806E01FC4C90C7FC
-020F01FFEE07FE6E02C0ED1FF8020102F8ED7FF06E02FF913803FFE0033F02F8013F1380
-030F91B648C8FC030117F86F6C16E004071680DC007F02F8C9FC050191CAFC626677E375
->I<BB12E0F2FF801BF01BFE757E1CF0D800010280C7000780DF007F13FE080F6D7E0801
-807480093F7F090F13FC757F757F877580767F8A88767F8A888AA2767FA28A881F80A376
-14C0A41FE0A5881FF0B05214E0A51FC0A4521480A31F006466A2525BA2525BA2525B6664
-99B55A515C5191C7FC515B515B515B097F5B50B512C008075C083F91C8FC0707B512FCBD
-12F01CC051C9FC1BF81B8008E0CAFC6C627AE17C>I<BD12FCA488A2D8000102C0C71201
-F1000F1A01F2007F1B3F1B0F1B07757EA28787A288A3F43F80A31C1FA3197EA3F40FC0A4
-99C7FC19FEA31801A218031807181F18FF93B6FCA6EEC000181F180718031801A21800A2
-1D7E197EA21DFCA696C812011DF8A31C03A3F407F0A31C0FA21C1F1C3F1DE01C7F1CFF63
-631B0F093F13C098B5FC1A0797B6FCBEFCA31D80A35F617AE06A>I<BD12E0A41CF0A2D8
-000102C0C71207F1003F1A0F1A031A001B7F1B3FF31FF81B0FA21B07A21B03A21B011CFC
-A31B00A419FCA21C7EA41C00A21801A31803A21807180F183FEF01FF93B6FCA6EEC001EF
-003F180F18071803A21801A31800A896C9FCB3A5B912F8A657617AE065>I<B912E0A6C7
-02E0C7FCB3B3B3B3AEB912E0A633627CE13C>73 D<B912F8A6D8000102C0CBFCB3B3B1F3
-07E0A5F30FC0A61B1FA31B3F1C80A21B7FA21BFFA262A262625013006262624FB5FC1907
-191F4EB6FCBDFC63A553627AE161>76 D<94381FFFE00407B67E043F15F04BB712FE030F
-EEFFC0033FD9FC0014F092B500C0010F13FC020349C7000113FF4A01F86E6C7F021F496F
-13E04A01C0030F7F4A496F7F91B5C96C7F0103497013FF494970804B834949717F498749
-49717F49874B8390B586484A717FA24891CB6C7FA2481D804A84481DC0A348497214E0A3
-481DF0A34A85481DF8A5B51CFCB06C1DF8A36E96B5FCA36C1DF0A46C6D4E14E0A36C1DC0
-6E606C1D80A26C6E4D1400A26C6E4D5BA26C6E4D5BA26D6D4D5B6D636D6D4D5B6F94B5FC
-6D636D6D4C5C6D6D4C91C7FC6D6E4B5B6D02E0031F5B023F6D4B13F06E01FC92B55A6E01
-FF02035C020302C0010F91C8FC020002FC90B512FC033F90B712F0030F17C0030394C9FC
-DB007F15F804071580DC001F01E0CAFC666677E379>79 D<BB7E1AFCF2FFC01BF81BFE75
-7ED800010280C7001F80070114F0736C7F081F7F747F747F7414807414C0A27414E0A21D
-F0A27513F8A41DFCA91DF8A498B512F0A21DE0A25014C01D8062501400505B505B087F5B
-4FB512E0071F5C93B9C7FC1BFC1BF01B8008F0C8FC04C0CCFCB3B3A2B97EA65E627AE16E
->I<DBFFFCEC01E0020FD9FFE01303027F02FC130749B7130F0107EEC01F011F16F049D9
-C007EBF83F4948C7383FFE7FD9FFF8020FB5FC4801E014014849804849153F91C97E4848
-82001F834982003F83845B007F187FA2193FA200FF181FA27F190FA27FA26D1707808080
-6C01F893C7FC80ECFF8015F86CECFFC016FC6CEDFFE017FE6CEEFFE018F86C17FE6C717E
-6C846C846D17F86D836D836D8313036D18806D6C17C0020F17E01401DA000F16F0150004
-0715F8EE007F1703050014FC183F84060713FE84A2007C8300FC83A2197FA3193F7EA31A
-FC7EA27F1AF86D177F7F1AF06D17FF6D18E06D5E01FF18C06E4B138002E04B130002F84B
-5A02FFED3FFC01CF01E0ECFFF8018301FF010F5B010191B65A6D6C5E48011F93C7FC4801
-0315FC48D9003F14E048020149C8FC476677E35A>83 D<001FBEFCA64849C79126E0000F
-148002E0180091C8171F498601F81A0349864986A2491B7FA2491B3F007F1DC090C9181F
-A4007E1C0FA600FE1DE0481C07A5CA95C7FCB3B3B3A3021FBAFCA663617AE070>I<B96C
-023FB612FEA6D8000102C0CA0007EBF000E2007FC7FCB3B3B3AA656D63A2821C01806570
-170380525A6E7F6E4F5A70171F6E626E6D4D5A6E6D177F525A6E6E030390C8FC033F01E0
-4B5A6F6DED1FFC6F01FCED7FF80303D9FF80903803FFE06F02F8017F5B6F6C90B7C9FC04
-1F5E040716F8040016C0050F4ACAFCDD003F13C06F647AE17C>I<913803FFFE027FEBFF
-F00103B612FE010F6F7E4916E090273FFE001F7FD97FE001077FD9FFF801017F486D6D7F
-717E486D6E7F85717FA2717FA36C496E7FA26C5B6D5AEB1FC090C9FCA74BB6FC157F0207
-B7FC147F49B61207010F14C0013FEBFE004913F048B512C04891C7FC485B4813F85A5C48
-5B5A5CA2B55AA45FA25F806C5E806C047D7F6EEB01F96C6DD903F1EBFF806C01FED90FE1
-14FF6C9027FFC07FC01580000191B5487E6C6C4B7E011F02FC130F010302F001011400D9
-001F90CBFC49437CC14E>97 D<903807FF80B6FCA6C6FC7F7FB3A8EFFFF8040FEBFF8004
-7F14F00381B612FC038715FF038F010014C0DBBFF0011F7FDBFFC001077F93C76C7F4B02
-007F03F8824B6F7E4B6F13804B17C0851BE0A27313F0A21BF8A37313FCA41BFEAE1BFCA4
-4F13F8A31BF0A24F13E0A24F13C06F17804F1300816F4B5A6F4A5B4AB402075B4A6C6C49
-5B9126F83FE0013F13C09127F00FFC03B55A4A6CB648C7FCDAC00115F84A6C15E091C700
-1F91C8FC90C8000313E04F657BE35A>I<92380FFFF04AB67E020F15F0023F15FC91B77E
-01039039FE001FFF4901F8010113804901E0010713C04901804913E0017F90C7FC49484A
-13F0A2485B485B5A5C5A7113E0485B7113C048701380943800FE0095C7FC485BA4B5FCAE
-7EA280A27EA2806C18FCA26C6D150119F87E6C6D15036EED07F06C18E06C6D150F6D6DEC
-1FC06D01E0EC7F806D6DECFF00010701FCEB03FE6D9039FFC03FFC010091B512F0023F5D
-020F1580020102FCC7FCDA000F13C03E437BC148>I<F17FF8050FB5FCA6EF000F8484B3
-A892380FFF804AB512F8020F14FE023FECFF8391B712E301039138807FF3499039F8000F
-FB011F01E00103B5FC494913004990C87E49488148498148834A815A485BA2485BA25AA3
-485BA4B5FCAE7EA46C7FA37EA26C7FA26C5F806C5F6C6D5D6C6D5D017F93B5FC6D6C6C01
-03806D6D49806D01F0D91FF7EBFFFE6D9039FE01FFE7010190B612876D6CECFE07021F14
-F8020314E09127003FFE00ECC0004F657BE35A>I<92380FFFC04AB512FC020FECFF8002
-3F15E091B712F80103D9FE037F499039F0007FFF011F01C0011F7F49496D7F4990C76C7F
-49486E7F48498048844A804884485B727E5A5C48717EA35A5C721380A2B5FCA391B9FCA4
-1A0002C0CBFCA67EA380A27EA27E6E160FF11F806C183F6C7FF17F006C7F6C6D16FE6C17
-016D6C4B5A6D6D4A5A6D01E04A5A6D6DEC3FE0010301FC49B45A6D9026FFC01F90C7FC6D
-6C90B55A021F15F8020715E0020092C8FC030713F041437CC14A>I<EE3FFC0307B51280
-033F14C04AB612F0020715F84A9038F03FFC4AEB807F913A7FFE00FFFE4A5A4B4813FF49
-13F05B4913E0A24913C0A27013FE4949EB7FFCEF3FF8EF1FF0EF07C094C7FCB0B812C0A6
-D8001F01C0C8FCB3B3B0007FB612FCA638657CE431>I<F107F8DB7FFEEC3FFE020FB5D8
-F001B5FC027FDAFE03148049B7128F49DCDFFD13C0010FD9F00FEBFFC149D98001140149
-90C7EBFC0349486E6C7E4948EC3FFF48496E018113800780130048F0C03E97C7FC48496E
-7FA34884A96C60A36C6D4A5BA26C60A26C6D4A90C8FC6D6C4A5A6D6C4A5A6D6D485BDBF0
-0F5B4990B612C060D97C7F4AC9FCD9FC0F14F09126007FFECAFC92CCFC1201A47FA27F80
-14F091B77E18FE6CEFFFC019F06D17FC19FF6D846D846D846D84013F8490BAFC00038548
-01E0C712014890C9000F7F484816014848EE007F4848717E8512FF5B85A56D5F007F616D
-173F003F616D177F6C6C4D5A6C01C003035B6C6D4B5B6C01F8031F5BC601FF92B5C7FC6D
-01F8011F5B011F90B712F8010717E0010094C8FC020F15F0DA003F01FCC9FC4A607CC151
->I<903807FF80B6FCA6C6FC7F7FB3A8EF1FFF94B512F0040714FC041F14FF4C8193267F
-E07F7F922781FE001F7FDB83F86D7FDB87F07FDB8FC0814C7F039FC78015BE03BC8003FC
-825DA25DA25DA45DB3B2B7D8F007B71280A651647BE35A>I<EB0FE0EB3FF8497E48B5FC
-A24880A24880A76C5CA26C91C7FCA238007FFC6D5AEB0FE090C9FCAF903807FF80007FB5
-FCA6C6FC7F7FB3B3AEB712C0A622657BE42C>I<903807FF80B6FCA6C6FC7F7FB3B3B3B3
-ADB712E0A623647BE32C>108 D<902607FF80D91FFFEEFFF8B691B500F00207EBFF8004
-0702FC023F14E0041F02FF91B612F84C6F488193267FE07F6D4801037F922781FE001F90
-27E00FF0007FC6DA83F86D9026F01FC06D7F6DD987F06D4A487F6DD98FC0DBF87EC7804C
-6D027C80039FC76E488203BEEEFDF003BC6E4A8003FC04FF834B5FA24B5FA24B94C8FCA4
-4B5EB3B2B7D8F007B7D8803FB612FCA67E417BC087>I<902607FF80EB1FFFB691B512F0
-040714FC041F14FF4C8193267FE07F7F922781FE001F7FC6DA83F86D7F6DD987F07F6DD9
-8FC0814C7F039FC78015BE03BC8003FC825DA25DA25DA45DB3B2B7D8F007B71280A65141
-7BC05A>I<923807FFE092B6FC020715E0021F15F8027F15FE494848C66C6C7E010701F0
-010F13E04901C001037F49496D7F4990C87F49486F7E49486F7E48496F13804819C04A81
-4819E048496F13F0A24819F8A348496F13FCA34819FEA4B518FFAD6C19FEA46C6D4B13FC
-A36C19F8A26C6D4B13F0A26C19E06C6D4B13C0A26C6D4B13806C6D4B13006D6C4B5A6D6D
-495B6D6D495B010701F0010F13E06D01FE017F5B010090B7C7FC023F15FC020715E00200
-92C8FC030713E048437CC151>I<902607FF80EBFFF8B6010FEBFF80047F14F00381B612
-FC038715FF038F010114C09227BFF0003F7FC6DAFFC0010F7F6D91C76C7F6D496E7F03F8
-6E7F4B6E7F4B17804B6F13C0A27313E0A27313F0A21BF885A21BFCA3851BFEAE4F13FCA4
-1BF861A21BF0611BE0611BC06F92B512801B006F5C6F4A5B6F4A5B03FF4A5B70495B04E0
-017F13C09226CFFC03B55A03C7B648C7FC03C115F803C015E0041F91C8FC040313E093CB
-FCB3A3B712F0A64F5D7BC05A>I<D90FFFEB0FFCB690383FFF8093B512E04B14F04B14F8
-923907FC7FFC92390FE0FFFEC6EC1F806DD93F0113FF6D133E157E157C15F8A215F07013
-FEA24BEB7FFCEF3FF8EF0FE04B90C7FCA55DB3B0B712F8A638417BC042>114
-D<913A3FFF8007800107B5EAF81F011FECFE7F017F91B5FC48B8FC48EBE0014890C7121F
-D80FFC1407D81FF0801600485A007F167F49153FA212FF171FA27F7F7F6D92C7FC13FF14
-E014FF6C14F8EDFFC06C15FC16FF6C16C06C16F06C826C826C826C82013F1680010F16C0
-1303D9007F15E0020315F0EC001F1500041F13F81607007C150100FC81177F6C163FA217
-1F7EA26D16F0A27F173F6D16E06D157F6D16C001FEEDFF806D0203130002C0EB0FFE02FC
-EB7FFC01DFB65A010F5DD8FE0315C026F8007F49C7FC48010F13E035437BC140>I<EC07
-E0A6140FA5141FA3143FA2147FA214FF5BA25B5B5B5B137F48B5FC000F91B512FEB8FCA5
-D8001F01E0C8FCB3AFEF0FC0AC171F6D6D1480A2173F6D16006F5B6D6D137E6D6D5B6DEB
-FF836EEBFFF86E5C020F14C002035C9126003FFCC7FC325C7DDA3F>I<902607FFC0ED3F
-FEB60207B5FCA6C6EE00076D826D82B3B3A260A360A2607F60183E6D6D147E4E7F6D6D49
-48806D6DD907F0ECFF806D01FFEB3FE06D91B55A6E1500021F5C020314F8DA003F018002
-F0C7FC51427BC05A>I<B700C00103B512FCA6C66C01C0C8381FFE006D6DED07F0A26D6D
-5E190F6D6D5E191F6D606F153F6D95C7FC6F5DA26D6D157E19FE6D6E5C18016E5E701303
-6E5E701307A26E6D5C180F6E6D5C181F6E6D5C183F6E93C8FC705BA26E6D13FEA26E6E5A
-17816FEBC1F817C36F5C17E76F5C17FFA26F5CA26F5CA26F91C9FCA26F5BA36F5BA2705A
-A2705AA2705AA2705A4E417DBF55>I<B70081B600FC0103B512FCA6C66C0180C701FCC8
-381FFE006F6FED03F86D047F5F856F6E16076D646F70140F6D705F866F6E161F6D646F4A
-6D143F6D99C7FC4E7F6F616D1B7E6F4A6D14FE6D6395B57E7001FC15016E62DCC0016E13
-036EDBF87F5D05038004E0496C14076E62DCF007ED800F6E4B6C5D050F15C004F8496C14
-1F6E62DCFC1FEDE03F6E4B6C92C8FC053F15F004FE496C5C6E197E7048EDF8FE6E027E6D
-5C05FE15FC4D6D13FD6F601BFF6F496E5BA24D806F60A26F496E5BA24D806F60A26F496E
-90C9FCA294C87E6F5FA26F486F5A047C6F5A6E417DBF75>I<007FB600C0017FB512F8A6
-D8001F01F8C70007EBF0006D040190C7FC6D6D5D6D6D4A5A6D6D4A5A70495A6D4C5A6E7F
-6E6D495A6E6D495A7049C8FC6E4A5A6E6D485A6E6D485A6E13FFEF8FF06EEC9FE06FEBFF
-C06F5C6F91C9FC5F6F5B816F7F6F7F8481707F8493B57E4B805D4B80DB0FF37FDB1FE17F
-04C080153F4B486C7F4B486C7F4A486D7F4A486D7F4A5A4B6D7F020F6E7F4A486D7F4A48
-6D804A5A4AC86C7F49486F7F4A6F7F0107707FEB3FFFB600F049B7FCA650407EBF55>I<
-B700C00103B512FCA6D8003F01C0C8381FFE006FED07F0A26D6D5E190F6D6D5E191F6D6D
-5E193F6D95C7FC6F5D6D177E6F15FEA26D6E495AA26E6D5C18036E6D5C18076E5E70130F
-6E5E70131FA26E6D495AA26E6D91C8FC606E6D137E18FE6E5D17816F5C17C3A26FEBE7F0
-A26FEBF7E017FF6F5CA26F5CA26F91C9FCA36F5BA26F5BA2705AA2705AA2705AA35FA25F
-163F94CAFC5E167E16FED807E05CD81FF81301487E486C495AA2B5495AA24B5A5E151F4B
-5A6C4849CBFC15FEEBFC01393FF807FC391FF03FF06CB55A6C5C6C91CCFCC613FCEB1FE0
-4E5D7DBF55>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fj cmtt10 10.95 76
-/Fj 76 126 df<00101304007C131F00FEEB3F80A26C137FA248133FB2007E1400007C7F
-003C131E00101304191C75B830>34 D<D803C0EB01E0D80FF01303486C497E487E150F48
-7ED87E7E495AEAFE7F5E486C133FA25E157FA24BC7FC6C5A5D387E7E01EA7FFED83FFC5B
-1403EA1FF86C48485AEA03C0C75B140FA25D141FA24A5AA25D147FA292C8FC5CA2495AA2
-5C1303A25C1307A290390FF001E0ED07F84A487E011F497EA24A487E133F163F90267F80
-7F1380ED7E1F14005BA25B1201A24848EB7F3F033F13004914FF12076F5A5B6F5A6C486D
-5A0001EC01E029477DBE30>37 D<141E147F14FF5BEB03FEEB07FCEB0FF0EB1FE0EB3FC0
-EB7F80EBFF00485A5B12035B485A120F5BA2485AA2123F5BA2127F90C7FCA412FEAD127F
-A47F123FA27F121FA26C7EA27F12076C7E7F12017F6C7EEB7F80EB3FC0EB1FE0EB0FF0EB
-07FCEB03FEEB01FF7F147F141E184771BE30>40 D<127812FE7E7F6C7E6C7EEA0FF06C7E
-6C7E6C7E6C7EEB7F80133F14C0131FEB0FE014F01307A2EB03F8A214FC1301A214FE1300
-A4147FAD14FEA4130114FCA2130314F8A2EB07F0A2130F14E0EB1FC0133F1480137FEBFF
-00485A485A485A485AEA3FE0485A485A90C7FC5A1278184778BE30>I<14E0497E497EA6
-0038EC0380007EEC0FC0D8FF83EB3FE001C3137F9038F3F9FF267FFBFB13C06CB6128000
-0FECFE00000314F86C5C6C6C13C0011F90C7FC017F13C048B512F04880000F14FE003FEC
-FF80267FFBFB13C026FFF3F913E09038C3F87F0183133FD87E03EB0FC00038EC03800000
-91C7FCA66D5A6D5A23277AAE30>I<143EA2147FAF007FB7FCA2B81280A36C1600A2C76C
-C8FCAF143EA229297DAF30>I<EA03E0EA0FF0EA1FF813FCEA3FFEA213FFA27EA27E1203
-EA007FA2137E13FEEA01FC1203EA07F8EA3FF0127FEAFFE0EA7F801300123C1019708B30
->I<007FB612F0A2B712F8A36C15F0A225077B9E30>I<120FEA3FC0EA7FE0A2EAFFF0A4EA
-7FE0A2EA3FC0EA0F000C0C6E8B30>I<16F01501ED03F8A21507A2ED0FF0A2ED1FE0A2ED
-3FC0A2ED7F80A2EDFF00A24A5AA25D1403A24A5AA24A5AA24A5AA24A5AA24A5AA24AC7FC
-A2495AA25C1303A2495AA2495AA2495AA2495AA2495AA249C8FCA2485AA25B1203A2485A
-A2485AA2485AA2485AA2485AA248C9FCA25AA2127CA225477BBE30>I<14FE903807FFC0
-497F013F13F8497F90B57E48EB83FF4848C6138049137F4848EB3FC04848EB1FE049130F
-001F15F0491307A24848EB03F8A290C712014815FCA400FEEC00FEAD6C14016C15FCA36D
-1303003F15F8A26D1307001F15F0A26D130F6C6CEB1FE0A26C6CEB3FC06C6CEB7F806D13
-FF2601FF8313006CEBFFFE6D5B6D5B010F13E06D5BD900FEC7FC273A7CB830>I<EB03C0
-497EA2130FA2131FA2133F137F13FF1203123FB5FCA213EF138FEA7E0F1200B3B0003FB5
-12F84814FCB612FEA26C14FC6C14F81F3977B830>I<EB07FC90383FFFC090B512F00003
-804814FE4880261FF80F1380263FE00113C09038C0007F4848EB3FE090C7121FED0FF048
-14075A6C15F81503A3127E1218C8FCA2150716F0150F16E0151F16C0153FED7F8015FF4A
-13005DEC07FC4A5A4A5A4A5A4A5A4A5A4990C7FC495A495AEB0FF0EB3FE0495A495A4890
-C8FC4848EB01F04848EB03F8485AEA1FE048B6FCB7FCA37E6C15F025397BB830>I<EB03
-FF013F13E090B512F84814FE4880481580260FFE0113C09038F0007F4848EB1FE0150F16
-F01507A26C5A6C5AC8FC150F16E0A2151FED3FC0157FEDFF8002071300903807FFFE495B
-5D8115FF6D1480D9000113C09138003FE0ED1FF0ED07F8150316FC150116FE1500A21218
-127EB4FCA2150116FC4814036C15F86C6C13076DEB1FF0D83FF0133F3A1FFE01FFE06CB6
-12C06C15806CECFE00C65C013F13F001031380273A7CB830>I<EC03FC4A7E140F141FA2
-143F147F157E14FEA2EB01FCEB03F8A2EB07F0A2EB0FE0EB1FC0A2EB3F80A2EB7F0013FE
-A2485A485AA2485AA2485A485AA2485AA248C7FC12FEB8FC1780A46C1600C8007EC7FCAA
-91387FFFFE91B6FCA46E5B29397DB830>I<000FB612804815C05AA316800180C8FCAEEB
-83FF019F13C090B512F015FC8181D9FE0313809039F0007FC049133F0180EB1FE06CC712
-0F000E15F0C81207A216F81503A31218127EA2B4FC150716F048140F6C15E06C141F6DEB
-3FC06D137F3A3FE001FF80261FFC0F13006CB55A6C5C6C5C6C14E06C6C1380D90FFCC7FC
-25397BB730>I<EC0FF8EC7FFF49B51280010714E0131F4914F090387FF80F9039FFC007
-F84813803803FE005B485A4848EB03F0ED01E0484890C7FC5B123F5BA2127FEB000C9038
-03FFE0010F13F8D8FF3F13FE48B6FCB7128016C09039FE007FE001F8EB1FF001E0130F49
-EB07F849EB03FCA290C7120116FE1500A37EA46C7E15016D14FC121F6D1303000FEC07F8
-6D130F6C6CEB1FF06DEB3FE03A03FF81FFC06C90B512806C15006D5B011F13F8010713E0
-01011380273A7CB830>I<127CB712FC16FEA416FC48C7EA0FF816F0ED1FE0007CEC3FC0
-C8EA7F80EDFF00A24A5A4A5A5D14075D140F5D4A5AA24A5AA24AC7FCA25C5C13015CA213
-035CA213075CA4495AA6131F5CA96D5A6DC8FC273A7CB830>I<49B4FC011F13F0017F13
-FC90B57E0003ECFF804815C048010113E03A1FF8003FF049131FD83FC0EB07F8A24848EB
-03FC90C71201A56D1303003F15F86D13076C6CEB0FF06C6CEB1FE0D807FCEB7FC03A03FF
-83FF806C90B512006C6C13FC011F13F0497F90B512FE48802607FE0013C0D80FF8EB3FE0
-D81FE0EB0FF04848EB07F8491303007F15FC90C712014815FE481400A66C14016C15FC6D
-1303003F15F86D1307D81FF0EB1FF06D133F3A0FFF01FFE06C90B512C06C1580C6ECFE00
-6D5B011F13F0010190C7FC273A7CB830>I<49B4FC010F13E0013F13F890B57E48804880
-48010113803A0FFC007FC0D81FF0EB3FE04848131F49EB0FF048481307A290C7EA03F85A
-4815FC1501A416FEA37E7E6D1303A26C6C13076C6C130F6D133FD80FFC13FF6CB6FC7E6C
-14FE6C14F9013FEBE1FC010F138190380060011400ED03F8A2150716F0150F000F15E048
-6C131F486CEB3FC0157FEDFF804A1300EC07FE391FF01FFC90B55A6C5C6C5C6C1480C649
-C7FCEB3FF0273A7CB830>I<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F00C7
-FCAF120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C276EA630>I<EA03C0EA
-0FF0EA1FF8A2EA3FFCA4EA1FF8A2EA0FF0EA03C0C7FCAFEA03C0EA0FF0121F13F8123F13
-FCA3121FA2120F12031200120113F8120313F01207EA1FE0123FEA7FC0EAFF80EA7F0012
-7E12380E3470A630>I<16F01503ED07F8151F157FEDFFF014034A13C0021F138091383F
-FE00ECFFF8495B010713C0495BD93FFEC7FC495A3801FFF0485B000F13804890C8FCEA7F
-FC5BEAFFE05B7FEA7FF87FEA1FFF6C7F000313E06C7F38007FFC6D7E90380FFF806D7F01
-0113F06D7FEC3FFE91381FFF80020713C06E13F01400ED7FF8151F1507ED03F01500252F
-7BB230>I<1278127EB4FC13C07FEA7FF813FEEA1FFF6C13C000037F6C13F86C6C7EEB1F
-FF6D7F010313E06D7F9038007FFC6E7E91380FFF806E13C0020113F080ED3FF8151F153F
-EDFFF05C020713C04A138091383FFE004A5A903801FFF0495B010F13804990C7FCEB7FFC
-48485A4813E0000F5B4890C8FCEA7FFE13F8EAFFE05B90C9FC127E1278252F7BB230>62
-D<EC1FE0ECFFF8010313FE010F7F4914804914C090397FF03FE09038FF800F4890380007
-F0D803FC13033A07F801FBF89038F007FF380FE01F4A13FCEA1FC0495A003FEBFF0F9038
-00FE07903901FC03FE007FEBF801EA7E03ECF000A2EAFE0700FC49137EAA00FE6D13FED8
-7E0314FCA2ECF801D87F0114F8003FEBFC03903900FE07F0903880FF0F001F90387FFFE0
-6D6C13C0EA0FE06E13803A07F007FE009038F801F86C6CC7127C6CB414FE6CEB80039038
-7FF01F6DB512FC6D14F86D14E0010314C00100EBFE00EC1FF0273A7CB830>64
-D<147F4A7EA2497FA4497F14F7A401077F14E3A3010F7FA314C1A2011F7FA490383F80FE
-A590387F007FA4498049133F90B6FCA34881A39038FC001F00038149130FA40007814913
-07A2D87FFFEB7FFFB56CB51280A46C496C130029397DB830>I<007FB512F0B612FE6F7E
-82826C813A03F8001FF815076F7E1501A26F7EA615015EA24B5A1507ED1FF0ED7FE090B6
-5A5E4BC7FC6F7E16E0829039F8000FF8ED03FC6F7E1500167FA3EE3F80A6167F1700A25E
-4B5A1503ED1FFC007FB6FCB75A5E16C05E6C02FCC7FC29387EB730>I<91387F803C9039
-03FFF03E49EBFC7E011F13FE49EBFFFE5B9038FFE07F48EB801F3903FE000F484813075B
-48481303A2484813015B123F491300A2127F90C8FC167C16005A5AAC7E7EA2167C6D14FE
-123FA27F121F6D13016C6C14FCA26C6CEB03F86D13076C6CEB0FF03901FF801F6C9038E0
-7FE06DB512C06D14806D1400010713FC6D13F09038007FC0273A7CB830>I<003FB512E0
-4814FCB67E6F7E6C816C813A03F8007FF0ED1FF8150F6F7E6F7E15016F7EA2EE7F80A216
-3F17C0161FA4EE0FE0AC161F17C0A3163F1780A2167F17005E4B5A15034B5A150F4B5AED
-7FF0003FB65A485DB75A93C7FC6C14FC6C14E02B387FB730>I<007FB7FCB81280A47ED8
-03F8C7123FA8EE1F0093C7FCA4157C15FEA490B5FCA6EBF800A4157C92C8FCA5EE07C0EE
-0FE0A9007FB7FCB8FCA46C16C02B387EB730>I<003FB712804816C0B8FCA27E7ED801FC
-C7121FA8EE0F8093C7FCA5153E157FA490B6FCA69038FC007FA4153E92C8FCAE383FFFF8
-487FB5FCA27E6C5B2A387EB730>I<02FF13F00103EBC0F8010F13F1013F13FD4913FF90
-B6FC4813C1EC007F4848133F4848131F49130F485A491307121F5B123F491303A2127F90
-C7FC6F5A92C8FC5A5AA892B5FC4A14805CA26C7F6C6D1400ED03F8A27F003F1407A27F12
-1F6D130F120F7F6C6C131FA2D803FE133F6C6C137FECC1FF6C90B5FC7F6D13FB010F13F3
-0103EBC1F0010090C8FC293A7DB830>I<3B3FFF800FFFE0486D4813F0B56C4813F8A26C
-496C13F06C496C13E0D803F8C7EAFE00B290B6FCA601F8C7FCB3A23B3FFF800FFFE0486D
-4813F0B56C4813F8A26C496C13F06C496C13E02D387FB730>I<007FB6FCB71280A46C15
-00260007F0C7FCB3B3A8007FB6FCB71280A46C1500213879B730>I<D83FFF90380FFF80
-486D4813C0B56C5AA26C497E6C496C1380D803F0903803F8004B5A4B5A151F4B5A5E4BC7
-FC15FE14014A5A5D4A5A4A5A141F5D4A5A4AC8FC5C13F18101F37F13F790B57E14EFECC7
-F01483EC03F8140101FE7F496C7E5B157F497F82151F82150F826F7EA26F7E1501821500
-D83FFF903803FFC0486D4813E0B56C5AA26C497E6C496C13C02B387FB730>75
-D<383FFFF8487FB57EA26C5B6C5BD801FCC9FCB3B0EE0F80EE1FC0A9003FB7FC5AB8FCA2
-7E6C16802A387EB730>I<D83FF8ECFFE0486C4913F0486C4913F8A2007F16F06C6C4913
-E00007160001EF14BFEC800FA39039E7C01F3FA4ECE03F01E3133EA2ECF07EA201E1137C
-A2ECF8FCA201E013F8A214FDEC7DF0A3147FEC3FE0A3EC1FC0A2EC070091C7FCADD83FFC
-903801FFE0486C4913F0B54913F8A26C486D13F06C486D13E02D387FB730>I<D83FFC90
-381FFF80486C4913C0B54913E0A26C6D6C13C06C6E13800003913801F800EBF7C0A3EBF3
-E0A314F013F1A214F8A213F014FCA2147C147EA2143E143FA2141FA21581A2140F15C1A2
-140715E1A2140315F1A21401A215F91400A3157DA3153FEA3FFF481380B5EAC01FA26CEB
-800F6C496C5A2B387EB730>I<90383FFFE048B512FC000714FF4815804815C04815E0EB
-F80001E0133FD87F80EB0FF0A290C71207A44815F8481403B3A96C1407A26C15F0A36D13
-0FA26D131F6C6CEB3FE001F813FF90B6FC6C15C06C15806C1500000114FCD8003F13E025
-3A7BB830>I<007FB512F0B612FE6F7E16E0826C813903F8003FED0FFCED03FE15016F7E
-A2821780163FA6167F17005EA24B5A1503ED0FFCED3FF890B6FC5E5E16804BC7FC15F001
-F8C9FCB0387FFFC0B57EA46C5B29387EB730>I<003FB57E4814F0B612FC15FF6C816C81
-2603F8017F9138003FF0151F6F7E15071503821501A515035E1507150F4B5A153F4AB45A
-90B65A5E93C7FC5D8182D9F8007FED3FE0151F150F821507A817F8EEF1FCA53A3FFF8003
-FB4801C0EBFFF8B56C7E17F06C496C13E06C49EB7FC0C9EA1F002E397FB730>82
-D<90390FF803C0D97FFF13E048B512C74814F74814FF5A381FF80F383FE001497E484813
-7F90C7123F5A48141FA2150FA37EED07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C
-14E0000114F86C80011F13FF01031480D9003F13C014019138007FE0151FED0FF0A2ED07
-F8A2007C140312FEA56C140716F07F6DEB0FE06D131F01F8EB3FC001FF13FF91B5128016
-0000FD5CD8FC7F13F8D8F81F5BD878011380253A7BB830>I<003FB712C04816E0B8FCA4
-3AFE003F800FA8007CED07C0C791C7FCB3B1011FB5FC4980A46D91C7FC2B387EB730>I<
-3B7FFFC007FFFCB56C4813FEA46C496C13FCD803F8C7EA3F80B3B16D147F00011600A36C
-6C14FE6D13016D5CEC800390393FE00FF890391FF83FF06DB55A6D5C6D5C6D91C7FC9038
-007FFCEC1FF02F3980B730>I<D87FFE90380FFFC0B54913E06E5AA24A7E6C486D13C0D8
-07F0903801FC00A26D130300035DA46C6C495AA46C6C495AA46D131F6D5CA3EC803F013F
-5CA46D6C48C7FCA490380FE0FEA401075B14F1A301035BA314FB01015BA314FFA26D5BA4
-6E5A6E5A2B397EB730>I<D83FFC903801FFE0486C4913F000FF16F8A2007F16F06C486D
-13E0D81FC09038001FC0000F1680A76D143F00071600A7000390380F803E9039F01FC07E
-EC3FE0A3EC7FF0A2147D0001157CA29039F8FDF8FCA314F8A300005D01F913FCA2ECF07C
-A201FD137DA2017D5CECE03DA3017F133FA2ECC01FA2013F5CA2EC800F6D486C5A2D397F
-B730>I<3A3FFF01FFF84801837F02C77FA202835B6C01015B3A01FC007F806D91C7FC00
-005C6D5BEB7F01EC81FCEB3F8314C3011F5B14E7010F5B14FF6D5BA26D5BA26D5BA26D90
-C8FCA4497FA2497FA2815B81EB0FE781EB1FC381EB3F8181EB7F0081497F49800001143F
-49800003141F49800007140FD87FFEEB7FFFB590B5128080A25C6C486D130029387DB730
->I<D87FFF90381FFFC0B56C4813E0A46C496C13C0D803F8903803F8006D1307A26C6C49
-5AA26C6C5C151F6D5CEC803F013F5CECC07F011F91C7FCA290380FE0FEA214F101075BA2
-903803FBF8A201015B14FF6D5BA26E5AA36E5AB1903803FFF8497F497FA26D5B6D5B2B38
-7EB730>I<007FB612F0A2B712F8A36C15F0A225077B7D30>95 D<EB7FF80003B5FC4814
-C04880488048809038E01FFC9038C003FE14016E7E6C487F6CC77FC8123FA491B5FC130F
-137F48B6FC12075A48EB803F383FF800EA7FE0138048C7FC5AA4157F7E6C6C13FFEBC003
-263FF01FEBFF8090B712C07E6C14EF000314876CD9FE01138026003FE0C8FC2A2A7BA830
->97 D<EA3FFC487E12FFA2127F123F1200AAEC03FE91381FFF80027F13E091B57E90B612
-FC82ECFE079138F001FF4A6C13804A137F4AEB3FC091C7121F17E049140FA217F01607A8
-160FA217E07F161F6EEB3FC0A26EEB7F806E13FFDAF00313009138FC0FFE91B55A5E495C
-D97E7F13C0D93C1F90C7FC90380003FC2C3980B730>I<ECFFE0010713FC011F7F017F7F
-90B612804815C048EB807F3907FC003F485A485A49EB1F804848EB0F004990C7FC127F90
-C9FCA25A5AA87E7EA27F003FEC07C06DEB0FE06C7E6D131F6C6C14C0D807FE133F9039FF
-C0FF806C90B5FCC615006D5B011F13F801075B01011380232A7AA830>I<913801FFE04A
-7F5CA28080EC0007AAEB03FE90381FFF874913E790B6FC5A5A481303380FFC00D81FF013
-3F49131F485A150F4848130790C7FCA25AA25AA87E6C140FA27F003F141F6D133F6C7E6D
-137F390FF801FF2607FE07EBFFC06CB712E06C16F06C14F76D01C713E0011F010313C0D9
-07FCC8FC2C397DB730>I<49B4FC010713E0011F13F8017F7F90B57E488048018113803A
-07FC007FC04848133FD81FE0EB1FE0150F484814F0491307127F90C7FCED03F85A5AB7FC
-A516F048C9FC7E7EA27F003FEC01F06DEB03F86C7E6C7E6D1307D807FEEB1FF03A03FFC0
-7FE06C90B5FC6C15C0013F14806DEBFE00010713F8010013C0252A7CA830>I<EDFF8002
-0713E0021F13F05C4A13F891B5FC491387903803FE079138FC03F0903907F800C04A1300
-A8003FB612C04815E0B7FCA36C15C0260007F0C7FCB3A9003FB512FE4880B71280A26C15
-006C5C25397DB830>I<D903FC13FF90261FFF8713C04913DF90B712E05A5A2607FE0713
-8F903AF801FE07C048486C6CC7FCA2497F001F8149133FA56D137F000F92C7FC6D5BA26C
-6C485AEBFE0790B55A5D485C15C001DF5BD9C3FCC8FC01C0C9FCA37F7F6CB512F015FF6C
-15C04815F0488148813A3FE0001FFE0180130148C8127F007E8100FE168048151FA56C15
-3F007FED7F006D5C6C6C495A01F013076CB4EB7FFC6C90B55A6C5D000115C06C6C91C7FC
-011F13FC010113C02B3E7DA730>I<EA3FFC487E12FFA2127F123F1200AAEC01FE91380F
-FF80023F13E091B57E90B67EA29138FE07FCECF8039138E001FE14C0EC8000A291C7FCA2
-5BB3A23B3FFFF81FFFF8486D4813FCB500FE14FEA26C01FC14FC6C496C13F82F3880B730
->I<14E0EB03F8A2497EA36D5AA2EB00E091C8FCA9381FFFF8487F5AA27E7EEA0001B3A9
-003FB612C04815E0B7FCA27E6C15C023397AB830>I<EA7FF8487EA4127F1200AB0203B5
-12804A14C017E0A217C06E14809139001FE0004B5A4B5A4BC7FC4A5A4A5AEC0FF84A5A4A
-5A4A5A4A5A01FD7F90B57E8114F7ECE3F8ECC1FCEC81FEEC00FF497F496D7E6F7E826F7E
-15076F7E6F7E3B7FFFF81FFFE0B56C4813F017F8A217F06C496C13E02D387FB730>107
-D<387FFFF8B57EA47EEA0001B3B3A8007FB612F0B712F8A46C15F025387BB730>I<02FC
-137E3B7FC3FF01FF80D8FFEF01877F90B500CF7F15DF92B57E6C010F13872607FE07EB03
-F801FC13FE9039F803FC01A201F013F8A301E013F0B3A23C7FFE0FFF07FF80B548018F13
-C0A46C486C01071380322881A730>I<EC01FE3A3FFC0FFF80267FFE3F13E000FF90B57E
-90B67E7E6C9038FE07FCC6EBF8039138E001FE14C0EC8000A291C7FCA25BB3A23B3FFFF8
-1FFFF8486D4813FCB500FE14FEA26C01FC14FC6C496C13F82F2880A730>I<49B4FC010F
-13E0013F13F8497F90B57E0003ECFF8014013A07FC007FC04848EB3FE0D81FE0EB0FF0A2
-4848EB07F8491303007F15FC90C71201A300FEEC00FEA86C14016C15FCA26D1303003F15
-F86D13076D130F6C6CEB1FF06C6CEB3FE06D137F3A07FF01FFC06C90B512806C15006C6C
-13FC6D5B010F13E0010190C7FC272A7CA830>I<EC03FE3A3FFC1FFF80267FFE7F13E000
-FF90B57E90B612FC6C816CEBFE07C69038F001FF4A6C13804A137F4AEB3FC091C7121F17
-E049140FA217F01607A8160FA217E07F161F6EEB3FC0A26EEB7F806E13FFDAF003130091
-38FC0FFE91B55A5E495C6E13C0021F90C7FCEC03FC91C9FCAD383FFFF8487FB57EA26C5B
-6C5B2C3C80A730>I<49B413F8010FEBC1FC013F13F14913FD48B6FC5A481381390FFC00
-7F49131F4848130F491307485A491303127F90C7FC15015A5AA77E7E15037FA26C6C1307
-150F6C6C131F6C6C133F01FC137F3907FF01FF6C90B5FC6C14FD6C14F9013F13F1010F13
-C1903803FE0190C7FCAD92B512F84A14FCA46E14F82E3C7DA730>I<ED07F83A3FFF803F
-FF486DB51280B512C302CF14C06C13DF6C9038FFFC3FD8001F13E09238801F809238000F
-004A90C7FC5C5C5CA25CA45CAF003FB512FC4880B7FCA26C5C6C5C2A287EA730>I<9038
-1FFC1E48B5129F000714FF5A5A5A387FF007EB800100FEC7FC4880A46C143E007F91C7FC
-13E06CB4FC6C13FC6CEBFF806C14E0000114F86C6C7F01037F9038000FFF02001380007C
-147F00FEEC1FC0A2150F7EA27F151F6DEB3F806D137F9039FC03FF0090B6FC5D5D00FC14
-F0D8F83F13C026780FFEC7FC222A79A830>I<EB0780497E131FA9003FB612E04815F0B7
-FCA36C15E026001FC0C7FCB216F8ED01FCA5ECE003010FEB07F814F09138FC1FF06DB512
-E06D14C016806D14009038007FFCEC1FF026337EB130>I<D83FFCEB3FFC486C497E00FF
-14FFA2007F147F003F143F00001400B3A41501A2150315076D130F903A7FC07FFFF891B6
-12FC6D15FE7F6D4913FC6D9038F87FF8010001C0C7FC2F2880A630>I<3B3FFFC07FFF80
-486DB512C0B515E0A26C16C06C496C13803B01F80003F000A26D130700005DA26D130F01
-7E5CA2017F131F6D5CA2EC803F011F91C7FCA26E5A010F137EA2ECE0FE01075BA214F101
-035BA3903801FBF0A314FF6D5BA36E5A6E5A2B277EA630>I<3B3FFFC01FFFE0486D4813
-F0B515F8A26C16F06C496C13E0D807E0C7EA3F00A26D5C0003157EA56D14FE00015DEC0F
-80EC1FC0EC3FE0A33A00FC7FF1F8A2147DA2ECFDF9017C5C14F8A3017E13FBA290393FF0
-7FE0A3ECE03FA2011F5C90390F800F802D277FA630>I<3A3FFF81FFFC4801C37FB580A2
-6C5D6C01815BC648C66CC7FC137FEC80FE90383F81FC90381FC3F8EB0FE3ECE7F06DB45A
-6D5B7F6D5B92C8FC147E147F5C497F81903803F7E0EB07E790380FE3F0ECC1F890381F81
-FC90383F80FE90387F007E017E137F01FE6D7E48486D7E267FFF80B5FCB500C1148014E3
-A214C16C0180140029277DA630>I<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C49
-6C13803B01FC0003F000A2000014076D5C137E150F017F5C7F151FD91F805BA214C0010F
-49C7FCA214E00107137EA2EB03F0157C15FCEB01F85DA2EB00F9ECFDF0147D147FA26E5A
-A36E5AA35DA2143F92C8FCA25C147EA2000F13FE486C5AEA3FC1EBC3F81387EB8FF0EBFF
-E06C5B5C6C90C9FC6C5AEA01F02B3C7EA630>I<001FB612FC4815FE5AA316FC90C7EA0F
-F8ED1FF0ED3FE0ED7FC0EDFF80003E491300C7485A4A5A4A5A4A5A4A5A4A5A4A5A4990C7
-FC495A495A495A495A495A495A4948133E4890C7127F485A485A485A485A485A48B7FCB8
-FCA46C15FE28277DA630>I<ED3FF0913803FFF8140F5C147F16F09138FFF00092C7FC49
-5A5CB3A21303495A133F383FFFF0B55A5C91C8FC14C080003F7F38003FF813076D7E1301
-B3A2806D7E15F091387FFFF016F8141F8014039138003FF025477BBE30>I<EA7FE0EAFF
-FE6D7E8014F07EC66C7E13076D7E1301B3A2806D7E15E091387FFFE06E13F8801407141F
-5C4A13E09138FFE00092C7FC495A5CB3A21303495A137F387FFFF0B5FC14C05C49C8FCEA
-7FE025477BBE30>125 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fk cmbx12 14.4 49
-/Fk 49 122 df<151E153E157E15FCEC01F8EC07F0EC0FE0EC1FC01580143FEC7F0014FE
-1301495A5C1307495AA2495A133F5C137FA2495AA24890C7FCA25A5BA21207A2485AA312
-1F5BA3123FA25BA3127FA55B12FFB3A3127F7FA5123FA37FA2121FA37F120FA36C7EA212
-03A27F7EA26C7FA26D7EA2133F80131F6D7EA26D7E1303806D7E1300147FEC3F80141F15
-C0EC0FE0EC07F0EC01F8EC00FC157E153E151E1F7973D934>40 D<127012F8127C127E7E
-EA1FC06C7E6C7E12037F6C7E6C7E7F6D7E133F806D7EA26D7E80130780A26D7EA26D7EA2
-15807FA215C0A2EC7FE0A315F0143FA315F8A2141FA315FCA5140F15FEB3A315FC141FA5
-15F8A3143FA215F0A3147F15E0A3ECFFC0A21580A25B1500A2495AA2495AA25C130F5C49
-5AA2495A5C137F49C7FC5B485A485A5B1207485A485A48C8FC127E127C5A12701F7979D9
-34>I<EA07F0487E487E487E487EB51280A76C13006C5A6C5A6C5A6C5A1111769025>46
-D<913803FFC0023F13FC91B6FC010315C0010F018113F0903A1FFC003FF849486D7E4948
-6D7E49486D7E48496D138048496D13C0A24817E04890C813F0A34817F8A24817FC49157F
-A3007F17FEA600FF17FFB3A5007F17FEA6003F17FCA26D15FFA26C17F8A36C17F0A26C6D
-4913E0A26C6D4913C06C17806E5B6C6D4913006D6C495AD91FFCEB3FF8903A0FFF81FFF0
-6D90B55A01011580D9003F01FCC7FC020313C0384F7BCD43>48 D<157815FC1403140714
-1F14FF130F0007B5FCB6FCA2147F13F0EAF800C7FCB3B3B3A6007FB712FEA52F4E76CD43
->I<EC3FFE0103B512E0010F14FC013F14FF90B712C048D9C07F7F2703FE000F13F8D807
-F801037FD80FE06D7F48486D7F48488001F01680486C6E13C07F486C6E13E07FA27013F0
-A56C5AA26C5AEA0FF0EA03C0C914E05EA218C05E1880A24C13005F4C5A4B5B5F4B5B5F4B
-5B4B90C7FC4B5A5E4B5AED7FE04B5A4A5B4A48C8FC4A5A5D4A48EB01F04A5AEC3F804AC7
-FC02FEEC03E0495A495A495A495AD91F80140749C8FC013E150F017FB7FC90B812C05A5A
-5A5A5A5A5AB9FC1880A4344E79CD43>I<91380FFFC091B512FC0107ECFF80011F15E090
-263FF8077F9026FF800113FC4848C76C7ED803F86E7E491680D807FC8048B416C080486D
-15E0A4805CA36C17C06C5B6C90C75AD801FC1680C9FC4C13005FA24C5A4B5B4B5B4B13C0
-4B5BDBFFFEC7FC91B512F816E016FCEEFF80DA000713E0030113F89238007FFE707E7013
-807013C018E07013F0A218F8A27013FCA218FEA2EA03E0EA0FF8487E487E487EB57EA318
-FCA25E18F891C7FC6C17F0495C6C4816E001F04A13C06C484A1380D80FF84A13006CB44A
-5A6CD9F0075BC690B612F06D5D011F1580010302FCC7FCD9001F1380374F7ACD43>I<17
-7C17FEA2160116031607160FA2161F163F167FA216FF5D5DA25D5DED1FBFED3F3F153E15
-7C15FCEC01F815F0EC03E01407EC0FC01580EC1F005C147E147C5C1301495A495A5C495A
-131F49C7FC133E5B13FC485A5B485A1207485A485A90C8FC123E127E5ABA12C0A5C96C48
-C7FCAF020FB712C0A53A4F7CCE43>I<D80380150ED807E0157E01FEEC03FED9FFF0137F
-91B65A5F5F5F5F5F94C7FC5E5E16F016C093C8FC15F801E190C9FC01E0CAFCABEC0FFF02
-7F13F001E3B512FE01E76E7E9026FFF8077FDAC0017F49C713F8496E7E49143F4981496E
-7E6C481680C9FC18C08218E0A418F0A3EA0FE0487E487E487E487EA418E0A35B6C484A13
-C05B491680003EC85A003F17006C6C4A5A6D5D6C6C4A5AD807F8495BD803FE01075B2701
-FFC03F5B6C90B65A013F4AC7FC6D14F8010314C09026007FF8C8FC344F79CD43>I<ED0F
-FF92B512E0020780021F14FC91397FFE03FE903A01FFF0007F4901C0EB3F804990C7121F
-4948EC7FC0494814FF49484913E049485B01FF5C485BA2485B5AA2486F13C04A6D138048
-6F1300177E94C7FC5AA291CAFC5AA21508913801FFF8020713FFB54814C04A14F04AC66C
-7E023C6D7E4A6D7E4A6D7E7013804A15C0A24A15E07013F05C18F8A491C714FCA37EA67E
-A46C17F880A27E18F06C5D18E06C6D15C07E6E4913806C6D15006D6C495A6D6CEB7FFC6D
-B448485A6D90B55A010315C0010092C7FC023F13FC020713C0364F7ACD43>I<121F7F7F
-EBFF8091B81280A45A1900606060A2606060485F0180C86CC7FC007EC95A4C5A007C4B5A
-5F4C5A160F4C5A484B5A4C5A94C8FC16FEC812014B5A5E4B5A150F4B5AA24B5AA24B5A15
-FFA24A90C9FCA25C5D1407A2140FA25D141FA2143FA4147F5DA314FFA55BAC6D5BA2EC3F
-C06E5A395279D043>I<913807FFC0027F13FC0103B67E010F15E090261FFC0113F8903A
-3FE0003FFCD97F80EB0FFE49C76C7E48488048486E1380000717C04980120F18E0177FA2
-121F7FA27F7F6E14FF02E015C014F802FE4913806C7FDBC00313009238F007FE6C02F85B
-9238FE1FF86C9138FFBFF06CEDFFE017806C4BC7FC6D806D81010F15E06D81010115FC01
-0781011F81491680EBFFE748018115C048D9007F14E04848011F14F048487F4848130303
-0014F8484880161F4848020713FC1601824848157F173FA2171FA2170FA218F8A27F007F
-17F06D151FA26C6CED3FE0001F17C06D157F6C6CEDFF806C6C6C010313006C01E0EB0FFE
-6C01FCEBFFFC6C6CB612F06D5D010F1580010102FCC7FCD9000F13C0364F7ACD43>I<91
-380FFF8091B512F8010314FE010F6E7E4901037F90267FF8007F4948EB3FF048496D7E48
-4980486F7E484980824817805A91C714C05A7013E0A218F0B5FCA318F8A618FCA46C5DA3
-7EA25E6C7F6C5DA26C5D6C7F6C6D137B6C6D13F390387FF803011FB512E36D14C3010302
-8313F89039007FFE03EC00401500A218F05EA3D801F816E0487E486C16C0487E486D4913
-80A218005E5F4C5A91C7FC6C484A5A494A5A49495B6C48495BD803FC010F5B9027FF807F
-FEC7FC6C90B55A6C6C14F06D14C0010F49C8FC010013F0364F7ACD43>I<171F4D7E4D7E
-A24D7EA34C7FA24C7FA34C7FA34C7FA24C7FA34C8083047F80167E8304FE804C7E030181
-16F8830303814C7E03078116E083030F814C7E031F81168083033F8293C77E4B82157E84
-03FE824B800201835D840203834B800207835D844AB87EA24A83A3DA3F80C88092C97E4A
-84A2027E8202FE844A82010185A24A820103854A82010785A24A82010F855C011F717FEB
-FFFCB600F8020FB712E0A55B547BD366>65 D<BA12C019FEF1FFC01AF01AFCD8000701F0
-C7000313FFDE007F7F737F070F7F737F878587858785A287A84F5BA263616361634F5B4F
-5B077F90C7FC4E485A060713F892B812E097C8FC861AF003F0C7000313FE9539003FFF80
-070F13E0737F07017F87737F747E1C807413C0A27413E0A31CF0A386A362A31CE0A2621C
-C0A250138097B5FC1C004F5B19074F5B073F13F04EB55ABC128098C7FC1AF81AC007F8C8
-FC54527CD160>I<932601FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F
-92B8EA803F0203DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC
-494848C9FC4901F8824949824949824949824949824990CA7E494883A2484983485B1B7F
-485B481A3FA24849181FA3485B1B0FA25AA298C7FC5CA2B5FCAE7EA280A2F307C07EA36C
-7FA21B0F6C6D1980A26C1A1F6C7F1C006C6D606C6D187EA26D6C606D6D4C5A6D6D16036D
-6D4C5A6D6D4C5A6D01FC4C5A6D6DEE7F806D6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1F
-F80203903AFFE001FFF0020091B612C0033F93C8FC030715FCDB007F14E0040101FCC9FC
-525479D261>I<BA7E19FCF1FF801AF01AFCD8000701F0C7000F13FF060014C0071F7F07
-0713F807017F737F747E747F747F86747F747F8886888688A2757EA31D8087A21DC0A51D
-E0A387A963A31DC0A51D80A2631D00A3515AA2646264505B6264505B505B5090C7FCF2FF
-FE4F5B07075B071F5B96B512C0060F91C8FCBB5A1AF01AC007FCC9FC19805B527CD167>
-I<BC1280A5D8000701F8C7000114C0F0001F19071901851A7F1A3F1A1FA2F20FE0A21A07
-A31A03A318F81BF01A01A497C7FC1701A317031707170F177F92B6FCA59238F8007F170F
-170717031701A317001B3EA31B7CA395C8FCA21BFCA21BF8A21A01A31A031BF01A071A0F
-A21A1F1A3FF27FE0F101FF1907191F0603B5FCBCFCA21BC0A34F517CD058>I<BB12FEA5
-D8000701F8C700077FF0007F191F190785858586861B80A21A1FA31A0FA41BC006F81307
-A497C7FCA31701A317031707170F177F92B6FCA59238F8007F170F170717031701A31700
-A795C9FCB3B812F8A54A517CD055>I<B812C0A5D8000701F8C7FCB3B3B3B2B812C0A52A
-527CD132>73 D<B812F8A5D8000701F8CAFCB3B3A91A7CA41AFC1AF8A51901A31903A219
-071AF0190FA2191F193F197F19FF180360183F4DB5FCBB12E0A546527CD151>76
-D<93380FFFC00303B6FC031F15E092B712FC0203D9FC0013FF020F01C0010F13C0023F90
-C7000313F0DA7FFC02007F494848ED7FFE4901E0ED1FFF49496F7F49496F7F4990C96C7F
-49854948707F4948707FA24849717E48864A83481B804A83481BC0A2481BE04A83A2481B
-F0A348497113F8A5B51AFCAF6C1BF86E5FA46C1BF0A26E5F6C1BE0A36C6D4D13C0A26C6D
-4D1380A26C1B006C6D4D5A6E5E6C626D6C4C5B6D6D4B5B6D6D4B5B6D6D4B5B6D6D4B5B6D
-6D4B90C7FC6D6D4B5A6D01FF02035B023F01E0011F13F0020F01FC90B512C0020390B7C8
-FC020016FC031F15E0030392C9FCDB001F13E0565479D265>79 D<BAFC19F819FF1AE086
-D8000701F0C7001F13FC060113FF726C13807313C0070F13E01BF0857313F81BFCA27313
-FEA41BFFA81BFEA31BFC61A21BF84F13F04F13E0614F13C04F13004E485A061F5B92B812
-F01AC04FC7FC19E003F8CBFCB3AEB812C0A550527CD15C>I<B912F0F0FF8019F819FF1A
-C0D8000701F0C714F0060F7F060113FE727F737F737F85737F87A2737FA387A863A26163
-63A24F5B4F5B4F90C8FC4F5A06035B060F13F095B512C092B8C9FC19F819E019F89226F0
-000313FE9439007FFF80727F727F727F727F727F8684A28684A787A71D1C75133EA38575
-137E73157C7513FC731401B86C6D9038F803F807039038FE07F07390B512E0736C14C008
-0F1400CEEA7FFC5F537CD164>82 D<91260FFF80130791B500F85B010702FF5B011FEDC0
-3F49EDF07F9026FFFC006D5A4801E0EB0FFD4801800101B5FC4848C87E48488149150F00
-1F824981123F4981007F82A28412FF84A27FA26D82A27F7F6D93C7FC14C06C13F014FF15
-F86CECFF8016FC6CEDFFC017F06C16FC6C16FF6C17C06C836C836D826D82010F82130301
-0082021F16801400030F15C0ED007F040714E01600173F050F13F08383A200788200F882
-A3187FA27EA219E07EA26CEFFFC0A27F6D4B13806D17006D5D01FC4B5A01FF4B5A02C04A
-5A02F8EC7FF0903B1FFFC003FFE0486C90B65AD8FC0393C7FC48C66C14FC48010F14F048
-D9007F90C8FC3C5479D24B>I<003FBC1280A59126C0003F9038C0007F49C71607D87FF8
-060113C001E08449197F49193F90C8171FA2007E1A0FA3007C1A07A500FC1BE0481A03A6
-C994C7FCB3B3AC91B912F0A553517BD05E>I<B800C00103B612FCA5D8000701F8CAEBF0
-00F31F80B3B3B11B3FA26D97C7FC81637F1B7E6D6D17FE505A6E7E505A6E6D15076E4D5A
-6E6D4B5A6E6D4B5A6E01F84B5A6E6DDA03FFC8FC6E6CB46CEB0FFE6F9039F001FFF8030F
-90B65A030316C0DB007F92C9FC040F14F8DC007F13805E537CD167>I<EC7FFF0107B512
-F0013F14FE90B77E48D9E00F7F2703FE000113F0486C6D7F6EEB3FFC48826E131F83707F
-A36C496D7FA26C90C7FC6C5AC9FCA6037FB5FC020FB6FC91B7FC01071487013FEBF00749
-13803901FFFC004813F0485B485B485B4890C7FC5A5BA2485AA45EA26D5C007F151D163D
-6C6C02797F6C6D01F113F86C9026C003E1EBFFE06C9026F81FC014F06C90B5487EC6ED00
-1F011F01FC010713E0010101E090C8FC3C387CB641>97 D<EB3FF0B5FCA51203C6FCB3A4
-923801FFE0030F13FE033FEBFFC092B612F002F301017F913AF7F8003FFEDAFFE0EB0FFF
-03806D7F92C76C7F4A6E7F4A824A6E7FA2727EA285A28584A31A80AC1A00A44E5AA36118
-FF616E4A5BA26E4A5B6E4A5B6F495BDACFC04990C7FCDA87F0EB7FFC913A03FE03FFF849
-C6B612E0496D148049011F01FCC8FC90C7000313C041547BD24B>I<913801FFF8021FEB
-FF8091B612F0010315FC010F9038C00FFE903A1FFE0001FFD97FFC491380D9FFF05B4817
-C048495B5C5A485BA2486F138091C7FC486F1300705A4892C8FC5BA312FFAD127F7FA27E
-A2EF03E06C7F17076C6D15C07E6E140F6CEE1F806C6DEC3F006C6D147ED97FFE5C6D6CEB
-03F8010F9038E01FF0010390B55A01001580023F49C7FC020113E033387CB63C>I<4DB4
-7E0407B5FCA5EE001F1707B3A4913801FFE0021F13FC91B6FC010315C7010F9038E03FE7
-4990380007F7D97FFC0101B5FC49487F4849143F484980485B83485B5A91C8FC5AA3485A
-A412FFAC127FA36C7EA37EA26C7F5F6C6D5C7E6C6D5C6C6D49B5FC6D6C4914E0D93FFED9
-0FEFEBFF80903A0FFFC07FCF6D90B5128F0101ECFE0FD9003F13F8020301C049C7FC4154
-7CD24B>I<913803FFC0023F13FC49B6FC010715C04901817F903A3FFC007FF849486D7E
-49486D7E4849130F48496D7E48178048497F18C0488191C7FC4817E0A248815B18F0A212
-FFA490B8FCA318E049CAFCA6127FA27F7EA218E06CEE01F06E14037E6C6DEC07E0A26C6D
-EC0FC06C6D141F6C6DEC3F806D6CECFF00D91FFEEB03FE903A0FFFC03FF8010390B55A01
-0015C0021F49C7FC020113F034387CB63D>I<ED3FFC0203B5FC020F14C0023F14E09139
-FFF81FF0499038C03FF849EB807F49903800FFFC495A495AA2495AA2EE7FF8495AEE3FF0
-EE0FC093C7FCAEB712E0A526007FF8C8FCB3B3A7007FB512FEA52E547CD329>I<DA3FFF
-14FF0103B5D8F00713C0010FDAFC1F13E0013FECFF7F90267FFC0F9038FF9FF09026FFE0
-01EBF83F48496C13E0484990387FF01F4890C7D83FF813E0489338FC0FC0F0078048486E
-6CC7FCA2003F82A9001F5EA26C6C4A5AA26C5E6C6D495A6C6D495A6C6D485BDAFC0F5B48
-90B6C8FCD803EF14FC01C314F02607C03F90C9FC91CBFCA2120FA37FA213F813FE90B7FC
-6C16F817FF18C06C836C836C836D828448B9FC12074848C700031480D81FF8EC003F4848
-150748486F13C083485A83A56D5D007F18806D5D003F18006C6C4B5AD80FFEED1FFC6C6C
-6CEC7FF86C01E049485A6C01FE011F5B6C6CB71280010F03FCC7FC010115E0D9000F01FC
-C8FC3C4F7CB543>I<EB3FF0B5FCA51203C6FCB3A4EE1FFC93B512C0030314F0030F8092
-391FE07FFC92393F001FFE037C8003F07FDAF1E081ECF3C0DAF7807F8502FFC7FC5CA25C
-A45CB3ACB6D8F807B612C0A542537BD24B>I<137F497E000313E0487FA2487FA76C5BA2
-6C5BC613806DC7FC90C8FCADEB3FF0B5FCA512017EB3B3A6B612E0A51B547BD325>I<EB
-3FF0B5FCA512017EB3B3B3B1B612F0A51C537BD225>108 D<D93FF0D91FFCEDFFE0B591
-B500C0010713FE030302F0011F6D7E030F6E017F8092271FE07FFCD9FF037F922A3F001F
-FE01F8007F0003027C9126FF03E080C602F06DD90780137FDAF1E0038FC77FDAF3C0159E
-DAF7806D01BC143F07FC8102FFC75C4A5EA24A5EA44A5EB3ACB6D8F807B6D8C03FB512FE
-A567367BB570>I<D93FF0EB1FFCB591B512C0030314F0030F8092391FE07FFC92393F00
-1FFE0003027C80C602F07FDAF1E081ECF3C0DAF7807F8502FFC7FC5CA25CA45CB3ACB6D8
-F807B612C0A542367BB54B>I<913801FFE0021F13FE91B612C0010315F0010F9038807F
-FC903A1FFC000FFED97FF86D6C7E49486D7F48496D7F48496D7F4A147F48834890C86C7E
-A24883A248486F7EA3007F1880A400FF18C0AC007F1880A3003F18006D5DA26C5FA26C5F
-6E147F6C5F6C6D4A5A6C6D495B6C6D495B6D6C495BD93FFE011F90C7FC903A0FFF807FFC
-6D90B55A010015C0023F91C8FC020113E03A387CB643>I<903A3FF001FFE0B5010F13FE
-033FEBFFC092B612F002F301017F913AF7F8007FFE0003D9FFE0EB1FFFC602806D7F92C7
-6C7F4A824A6E7F4A6E7FA2717FA285187F85A4721380AC1A0060A36118FFA2615F616E4A
-5BA26E4A5B6E4A5B6F495B6F4990C7FC03F0EBFFFC9126FBFE075B02F8B612E06F148003
-1F01FCC8FC030313C092CBFCB1B612F8A5414D7BB54B>I<90397FE003FEB590380FFF80
-033F13E04B13F09238FE1FF89139E1F83FFC0003D9E3E013FEC6ECC07FECE78014EF1500
-14EE02FEEB3FFC5CEE1FF8EE0FF04A90C7FCA55CB3AAB612FCA52F367CB537>114
-D<903903FFF00F013FEBFE1F90B7FC120348EB003FD80FF81307D81FE0130148487F4980
-127F90C87EA24881A27FA27F01F091C7FC13FCEBFFC06C13FF15F86C14FF16C06C15F06C
-816C816C81C681013F1580010F15C01300020714E0EC003F030713F015010078EC007F00
-F8153F161F7E160FA27E17E07E6D141F17C07F6DEC3F8001F8EC7F0001FEEB01FE9039FF
-C00FFC6DB55AD8FC1F14E0D8F807148048C601F8C7FC2C387CB635>I<143EA6147EA414
-FEA21301A313031307A2130F131F133F13FF5A000F90B6FCB8FCA426003FFEC8FCB3A9EE
-07C0AB011FEC0F8080A26DEC1F0015806DEBC03E6DEBF0FC6DEBFFF86D6C5B021F5B0203
-13802A4D7ECB34>I<D93FF8913801FFC0B50207B5FCA50003ED001FC61607B3AE5FA35F
-A2017F5D173B177B6D6C14F3DC01E313F06D6CD907C3EBFFC0903A0FFFC03F836D90B512
-03010114FE6D6C13F8020701E091C7FC42377BB54B>I<B600F00107B5FCA5000101F8C8
-EA7FE06C6DED3F00A2017F163E6E157E013F167C6E15FC6D5E6F13016D5E8117036D5E6F
-13076D5E6F130F6D5E6F131F6D93C7FC815F6E6C133E177E023F147C6F13FC6E5C16816E
-5C16C3A26EEBE3E016E76E5C16FF6E5CA26E91C8FCA26F5AA36F5AA26F5AA26F5AA26F5A
-6F5A40367DB447>I<B6D8E07FB5D8C003B512C0A5000101F0C701F0C7381FF8006E027F
-ED07E06C715DA26E023F150F017F705DA26E181F013F4B6C92C7FC6E606D70143E94B5FC
-6F177E6D4A6E137C03C001F315FC6D715B160303E001E114016D020702E05B03F013C06D
-71485A160F03F8D9807F13076D05F85B93381F003F03FC160F027F4902FC5BDBFE3E011F
-131F023F04FE90C8FC167EDBFF7C010F5B6E01FCECFF3E4C6D137E6E5FA24C7F6E5F4C7F
-6E5FA24C7F6E5F4C147FA26E5F93C8123F6F5EA2033E6FC9FC5A367DB461>I<007FB500
-F090387FFFFEA5C66C48C7000F90C7FC6D6CEC07F86D6D5C6D6D495A6D4B5A6F495A6D6D
-91C8FC6D6D137E6D6D5B91387FFE014C5A6E6C485A6EEB8FE06EEBCFC06EEBFF806E91C9
-FCA26E5B6E5B6F7E6F7EA26F7F834B7F4B7F92B5FCDA01FD7F03F87F4A486C7E4A486C7E
-020F7FDA1FC0804A486C7F4A486C7F02FE6D7F4A6D7F495A49486D7F01076F7E49486E7E
-49486E7FEBFFF0B500FE49B612C0A542357EB447>I<B600F00107B5FCA5C601F8C8EA7F
-E06EED3F00A26D6C153E187E013F167C6E15FC6D5E6F13016D5E6F13036D5E8117076D6D
-5C170F6D6D5C171F6D93C7FC6F5B027F143E6F137E023F147C6F13FCA26E6D5A16816EEB
-C1F016C36E5C16E76E5C16FF6E5CA26E91C8FCA36F5AA26F5AA26F5AA26F5AA26F5AA35E
-150F5E151F93C9FC5DD81FC0133E486C137E486C137C486C13FC5D14015D14034A5A6C48
-485A49485A263FC07FCAFCEB81FE6CB45A6C13F000035BC690CBFC404D7DB447>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fl cmr10 10.95 83
-/Fl 83 124 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF03FD907
-F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE6D91C7
-FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>11
-D<EC03FE91383FFF809138FE03E0903903F800F0D90FE013384948137C90393F8001FE90
-387F00035B5BA2485A6F5AED007093C7FCAA16FEB7FCA33901FC000315011500B3AC486C
-497EB5D8F87F13FCA32E407EBF33>I<EC03FF023F13EE9138FE01FEEB03F090380FE003
-EB1FC0EB3F80EB7F005B5B150148481300AEB7FCA3D801FCC7FCB3AE486C497EB5D8F87F
-13FCA32E407EBF33>I<001E130F397F803FC000FF137F01C013E0A201E013F0A3007F13
-3F391E600F3000001300A401E01370491360A3000114E04913C000031301010013804813
-03000EEB070048130E0018130C0038131C003013181C1C7DBE2D>34
-D<14E0A4EB07FC90383FFF8090B512E03901F8E3F03903E0E0FCD807C0133CD80F807FD8
-1F007F003E80003C1580007C140316C00078141F00F8143F157FA47EED3F806CEC0E0092
-C7FC127F138013C0EA3FF013FEEA1FFF6C13FC6C13FF6C14C06C806C6C13F8011F7F1303
-01007FECE7FF14E102E01380157F153FED1FC0A2003E140F127FD8FF801307A5130000FC
-158000F0140F1270007815005D6C141E153E6C5C6C5C3907C0E1F03903F8EFE0C6B51280
-D93FFEC7FCEB0FF8EB00E0A422497BC32D>36 D<013F1603D9FFC04B7E2601E0E0150F26
-07C070151F48486C4BC7FC023E157E48486C15FE48D90FC0EB03FC003ED90EF0EB0FF8DA
-0F3F13FD007E903A070FFFF1F0007C0200EB03E0160000FC6D6C495A170F604DC8FC5F17
-3E5F17FC5F4C5A1603007CD907005B4C5A007E150F003E495C020E49C9FC003F5D6C4913
-3E260F803C5B023813FC6C6C485B3A01E0E001F03800FFC090273F0003E0133F90C70007
-ECFFC09339C001E0E0923A0F8007C070031F49487E0400143C033E90381F001C037E497F
-037C133E4B150F0201027E7F4B137C4A5A020702FCEB03805D4A5A141F92C7FC143E147E
-147C5CA2495A0103037CEB07005C4948147E010F033E5B4A160E49C8123F496F5B013E92
-380F803C49173801FC6F6C5A49923801E0E0496FB45A0160043FC7FC41497BC34C>I<EC
-0F80EC7FE0ECF870903803E0380107133CECC01CEB0F80011F131E150EA2EB3F00A55D14
-80A25D157815705D6D6C5A14C1ECC38002C7CAFC02EE91387FFFFCEB0FEC14FC4A020713
-C06D48913801FE006E5DEF00F06D7E01074B5A496C5D011D1503D939FF4A5A017093C7FC
-496D5B0001017F140E496C6C131E00036E131C2607801F143C000F6E5B001F6D6C137026
-3F000714F0486E485ADA03FE5B913801FF03486D495A0487C8FCED7FCFED3FFE6F481438
-6D5C150F007F6E6C14786D6D6C1470003F4A6C14F06D496C6C13E0001F91393E3FC0016C
-6C903AFC1FF003C03D07FC07F007FC1F800001B5D8C001B512006C6C90C7EA7FFCD90FF8
-EC0FF03E437CC047>I<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A3
-12011380120313005A120E5A1218123812300B1C79BE19>I<1430147014E0EB01C0EB03
-801307EB0F00131E133E133C5B13F85B12015B1203A2485AA2120F5BA2121F90C7FCA25A
-A3123E127EA6127C12FCB2127C127EA6123E123FA37EA27F120FA27F1207A26C7EA21201
-7F12007F13787F133E131E7FEB07801303EB01C0EB00E014701430145A77C323>I<12C0
-7E12707E7E121E7E6C7E7F12036C7E7F12007F1378137CA27FA2133F7FA21480130FA214
-C0A3130714E0A6130314F0B214E01307A614C0130FA31480A2131F1400A25B133EA25BA2
-137813F85B12015B485A12075B48C7FC121E121C5A5A5A5A145A7BC323>I<EB03C0A280
-5CA600F0140F00FC143F00FE147F00FF14FF393FC3C3FC390FE187F03903F18FC03900FD
-BF00EB3FFCEB0FF0EB03C0EB0FF0EB3FFCEBFDBF3903F18FC0390FE187F0393FC3C3FC39
-FF03C0FF00FE147F00FC143F00F0140F00001400A6805CA220277AC32D>I<121EEA7F80
-12FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313005A120E5A121812
-3812300B1C798919>44 D<B512FEA617067F961E>I<121EEA7F80A2EAFFC0A4EA7F80A2
-EA1E000A0A798919>I<ED0180ED03C01507A21680150FA216005DA2151E153EA2153C15
-7CA2157815F8A25D1401A25D1403A25D1407A25D140FA24AC7FCA2141E143EA2143C147C
-A2147814F8A25C1301A25C1303A25C1307A25C130FA291C8FC5BA2131E133EA25BA21378
-13F8A25B1201A25B1203A25B1207A25B120FA290C9FC5AA2121E123EA2123C127CA21278
-12F8A25A1260225B7BC32D>I<EB01FE90380FFFC090383F03F090387C00F849137C4848
-7F48487F4848EB0F80A2000F15C04848EB07E0A3003F15F0A290C712034815F8A64815FC
-B3A26C15F8A56C6CEB07F0A3001F15E0A36C6CEB0FC0A26C6CEB1F80000315006C6C133E
-6C6C5B017C5B90383F03F090380FFFC0D901FEC7FC263F7DBC2D>I<EB01C01303130713
-1F137FEA07FFB5FC139FEAF81F1200B3B3ACEB7FF0B612F8A31D3D78BC2D>I<EB07FC90
-383FFF8090B512E03903F01FF83907C007FC390F0001FE001E6D7E001C1580003CEC7FC0
-5AED3FE01270B4FC6DEB1FF07FA56C5A6CC7FC120CC813E0153FA216C0157F168015FF16
-004A5A5D4A5A4A5A5D4A5A4A5A4AC7FC147E147C5C495A495A495A495A49C71270133E13
-3C5B4914E0485A485A485A48C7120148B6FCA25A4815C0B7FCA3243D7CBC2D>I<EB07FC
-90383FFF809038F80FE03901E003F839078001FCD80F007F000E6D7E001E1580D81F8013
-7F486C14C07FA27F5BA2121F6C5AC8138015FF1600A24A5AA24A5A5DEC07E04A5A023FC7
-FCEB1FFCECFF809038000FE0EC07F86E7E6E7E6E7E1680ED7FC0A216E0153FA216F0A212
-0C123F487E487EA316E0A249137F6CC713C01278EDFF807E6C4913006C495A3907C007FC
-3903F80FF0C6B55A013F1380D907F8C7FC243F7CBC2D>I<150E151E153EA2157EA215FE
-1401A21403EC077E1406140E141CA214381470A214E0EB01C0A2EB0380EB0700A2130E5B
-A25B5BA25B5B1201485A90C7FC5A120E120C121C5AA25A5AB8FCA3C8EAFE00AC4A7E49B6
-FCA3283E7EBD2D>I<00061403D80780131F01F813FE90B5FC5D5D5D15C092C7FC14FCEB
-3FE090C9FCACEB01FE90380FFF8090383E03E090387001F8496C7E49137E497F90C71380
-0006141FC813C0A216E0150FA316F0A3120C127F7F12FFA416E090C7121F12FC007015C0
-12780038EC3F80123C6CEC7F00001F14FE6C6C485A6C6C485A3903F80FE0C6B55A013F90
-C7FCEB07F8243F7CBC2D>I<EC1FE0ECFFF8903803F03E90380FC00F90391F000780133E
-017EEB1FC049133F4848137F12035B12074848EB3F80ED1F00001F91C7FC5BA2123FA348
-5AA214FE903887FF8039FF8F07E090389C01F09038B800FC01B0137E13F0497F16804914
-C0A2ED1FE0A34914F0A5127FA6123F6D14E0A2121FED3FC0A26C6C1480A20007EC7F006C
-6C137E6C6C5B6C6C485A90387E07F06DB45A010F1380D903FCC7FC243F7CBC2D>I<1238
-123C123F90B612FCA316F85A16F016E00078C712010070EC03C0ED078016005D48141E15
-1C153C5DC8127015F04A5A5D14034A5A92C7FC5C141EA25CA2147C147814F8A213015C13
-03A31307A3130F5CA2131FA6133FAA6D5A0107C8FC26407BBD2D>I<EB03FC90381FFF80
-90387C07E09038F001F83901E0007C48487F48487F48C7FCED0F80121E16C0003E1407A4
-123FA26DEB0F807F6C6C131F6D140001FC133E6C6C5B9038FF80786C6D5A6CEBF3E06CEB
-FF806C91C7FC133F6D13C06D7F013F13F801787F48486C7E3903E01FFF48486C1380260F
-800313C048487E489038007FE0003E143F007E141F007CEC0FF01507481403A31501A46C
-15E0007C1403A2007E15C06C14076CEC0F806DEB1F006C6C133ED807F05B3901FC03F86C
-B512E0011F1380D903FCC7FC243F7CBC2D>I<EB03FCEB1FFF90387E07C09038FC03F048
-486C7E48486C7E4848137C000F147E4848137F81003F15805B007F15C0A2151F12FF16E0
-A516F0A5127F153FA36C7EA2001F147F120F6C6C13FF6D13DF000313013900F8039F9038
-7E0F1FD91FFE13E0EB07F090C7FCA2ED3FC0A41680157FD80F801400487E486C13FEA24A
-5A5D49485AEB8007391E000FE0001F495A260FC07FC7FC3803FFFE6C13F838003FC0243F
-7CBC2D>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121EEA7F80A2EAFFC0A4EA
-7F80A2EA1E000A2779A619>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121E12
-7FEAFF80A213C0A4127F121E1200A412011380A3120313005A1206120E120C121C5A1230
-A20A3979A619>I<EB1FF890B5FC3903E01FC0390F0007F0001EEB03F848EB01FC4814FE
-140000FE14FF7E7FA46CC7FC123EC7EA01FEA2EC03FCEC07F815F0EC0FC0EC1F80EC3F00
-143E5C147814F85C13015CA2495AA25CAB91C7FC90C8FCA8EB0780EB1FE0A2497EA46D5A
-A2EB078020407BBF2B>63 D<15074B7EA34B7EA34B7EA34B7EA34B7E15E7A2913801C7FC
-15C3A291380381FEA34AC67EA3020E6D7EA34A6D7EA34A6D7EA34A6D7EA34A6D7EA34948
-6D7E91B6FCA249819138800001A249C87EA24982010E157FA2011E82011C153FA2013C82
-0138151FA2017882170F13FC00034C7ED80FFF4B7EB500F0010FB512F8A33D417DC044>
-65 D<B712FCEEFF8017F00001903980000FF86C6CC7EA03FE707E701380EF7FC0EF3FE0
-A2EF1FF0A218F8A3170F171FA318F0A2EF3FE0177F18C0EFFF804C1300EE03FCEE0FF8EE
-7FE091B6C7FC17E091C7EA07FCEE01FE933800FF80EF7FC0EF3FE0EF1FF018F8170F18FC
-1707A218FEA718FC170FA2EF1FF818F0173FEF7FE0EFFFC00403138048486C90380FFE00
-B85A17E094C7FC373E7DBD40>I<DB3FF01306912603FFFE130E020F9038FF801E913A3F
-F007E03E9139FF8000F8D903FEC7EA7C7ED907F8EC1EFE4948140FD93FE0140749481403
-495A91C812014848150012034848167E5B000F173EA24848161EA2123F5B180E127FA349
-160012FFAC127F7F180EA2123FA27F001F171E181C6C7EA20007173C6D16386C6C167800
-0117706C6C16F06EEC01E06D6C15C06D6C1403D90FF0EC07806D6CEC1F00D903FE143E90
-2600FF8013F891393FF007F0020FB512C0020391C7FC9138003FF037427BBF42>I<B712
-FCEEFF8017E000019039C0001FF86C6C48EB03FEEE00FF717E717EEF0FE084717E717E17
-0184717EA21980187F19C0A3F03FE0A519F0AB19E0A5F07FC0A21980A218FF19004D5AA2
-4D5A6017074D5A4D5AEF7FC04DC7FCEE03FE48486CEB1FF8B85A178004FCC8FC3C3E7DBD
-45>I<B912E0A300019038C000016C6C48EB001FEF0FF01703A217011700A31870A41838
-1638A41800A21678A216F81501150791B5FCA3EC8007150115001678A21638A2180EA318
-1C93C7FCA4183C1838A21878A318F8EF01F0A21707170F173F48486CEB03FFB912E0A337
-3E7DBD3E>I<B91280A300019038C000036C6C48EB007FEF1FC0170F1707A21703A31701
-A4EF00E0A21638A31800A31678A216F81501150791B5FCA3EC8007150115001678A21638
-A693C8FCAF3801FFE0B612F0A3333E7DBD3B>I<DB3FE0130C912603FFFE131C021F9038
-FF803C913A7FF00FC07C9139FF0001F0D903FC90380078FC4948143DD91FE0141F494814
-0F4948140701FF15034890C8FC491501485A000716005B000F177C5B001F173CA2485AA2
-181C127FA25B95C7FC12FFAB041FB512F0127FA26D9139000FFE00EF03FC123FA27F121F
-A26C7EA212077F12036C7E7F6C7F6D6C14076D7E6D6C140FD907F8141ED903FEEC3C7C90
-2600FF80EBF83C913A7FF007F01C021FB5EAC00C020391C8FC9138003FF03C427BBF47>
-I<B6D8C01FB512F8A3000101E0C7383FFC0026007F80EC0FF0B3A691B7FCA30280C7120F
-B3A92601FFE0EC3FFCB6D8C01FB512F8A33D3E7DBD44>I<B612F0A3C6EBF000EB3FC0B3
-B3B2EBFFF0B612F0A31C3E7EBD21>I<011FB512FCA3D9000713006E5A1401B3B3A6123F
-EA7F80EAFFC0A44A5A1380D87F005B007C130700385C003C495A6C495A6C495A2603E07E
-C7FC3800FFF8EB3FC026407CBD2F>I<B600C090387FFFFCA3000101E0C7000F13802600
-7F80913807FE0018F818E0604D5A4DC7FC173E5F5F4C5A4C5A4C5A4C5A4CC8FC163E5E5E
-4B5A4B5AED07804B7E151F4B7E4B7E15FF913881EFF8913883C7FCEC878791388F03FE91
-389E01FF14BCDAF8007F4A6D7E5C4A6D7E4A6D7EA2707E707EA2707E707EA2707F717E84
-173F717E717EA2717E848419802601FFE04A13C0B600C090B6FCA3403E7DBD47>I<B612
-F8A3000101E0C9FC38007F80B3B0EF0380A517071800A45FA35FA25F5F5F4C5A16074848
-6C133FB8FCA3313E7DBD39>I<B500C093B512C0A300016D4BEBE000D8007F1880D977F0
-ED03BFA3D973F8ED073FA3D971FC150EA2D970FE151CA3027F1538A36E6C1470A36E6C14
-E0A26E6CEB01C0A36E6CEB0380A36E6CEB0700A26E6C130EA36E6C5BA3037F5BA26F6C5A
-A36F6C5AA392380FE1C0A3923807F380A26FB4C7FCA36F5AA213F8486C6D5AD807FFEFFF
-E0B500F80178017FEBFFC0A34A3E7CBD53>I<B56C91B512F88080D8007F030713006EEC
-01FC6E6E5A1870EB77FCEB73FEA2EB71FF01707FA26E7E6E7EA26E7E6E7EA26E7E6E7EA2
-6E7E6E7FA26F7E6F7EA26F7E6F7EA26F7E6F7EA26F7E6F1380A2EE7FC0EE3FE0A2EE1FF0
-EE0FF8A2EE07FCEE03FEA2EE01FF7013F0A2177F173FA2171F170FA2170701F81503487E
-D807FF1501B500F81400A218703D3E7DBD44>I<ED7FE0913807FFFE91391FC03F809139
-7E0007E04948EB03F8D907F0EB00FE4948147F49486E7E49486E7E49C86C7E01FE6F7E00
-018349150300038348486F7EA248486F7EA2001F188049167F003F18C0A3007F18E04916
-3FA300FF18F0AC007F18E06D167FA4003F18C0A26C6CEEFF80A36C6C4B1300A26C6C4B5A
-00035F6D150700015F6C6C4B5A6D5E6D6C4A5A6D6C4A5A6D6C4AC7FC6D6C14FED901FCEB
-03F8D9007FEB0FE091391FC03F80912607FFFEC8FC9138007FE03C427BBF47>I<B712F8
-EEFF8017E000019039C0003FF86C6C48EB07FCEE01FE707EEF7F80EF3FC018E0A2EF1FF0
-A218F8A818F0A2EF3FE0A218C0EF7F80EFFF004C5AEE07FCEE3FF091B612C04CC7FC0280
-C9FCB3A73801FFE0B612C0A3353E7DBD3E>I<B712C016FCEEFF800001D9C00013E06C6C
-48EB1FF0EE07FCEE01FE707E84717EA2717EA284A760177F606017FF95C7FCEE01FCEE07
-F8EE1FE0EEFF8091B500FCC8FC16F091388001FCED003FEE1FC0707E707E831603831601
-83A383A484A4F0C004190EA28218E0057F131E2601FFE0161CB600C0EB3FF094381FF838
-05071370CA3801FFE09438003F803F407DBD43>82 D<D907FC131890391FFF8038017FEB
-E0783901FC03F83A03F0007CF8D807C0133F4848130F001F140748C7FC003E1403007E14
-01A2007C140012FC1678A46C1538A27EA26C6C14007F7FEA3FF8EBFF806C13F86CEBFF80
-6C14F06C14FC6C14FF6C15C0013F14E0010714F0EB007F020713F89138007FFC150FED07
-FE15031501ED00FFA200E0157FA3163FA27EA3163E7E167E6C157C6C15FC6C15F86D1301
-6DEB03F06DEB07E0D8F9FCEB0FC03AF07F803F8090391FFFFE00D8E00713F839C0007FC0
-28427BBF33>I<003FB91280A3903AF0007FE001018090393FC0003F48C7ED1FC0007E17
-07127C00781703A300701701A548EF00E0A5C81600B3B14B7E4B7E0107B612FEA33B3D7D
-BC42>I<B600C090B512F8A3000101E0C70007130026007F80EC01FC715A1870B3B3A401
-3F16F06E5DA21701011F5E80010F15036E4A5A010793C7FC6D6C5C6D6C141E6D6C5C027F
-14F86E6C485A91390FF00FE00203B51280020049C8FCED1FF03D407DBD44>I<B691380F
-FFFEA3000301E0020113E06C01809138007F806CEF3F00017F163E181C6E153C013F1638
-A26E1578011F1670A26D6C5DA26E140101075EA26E140301035EA26D6C4AC7FCA2806D15
-0EA26F131E027F141CA26F133C023F1438A26E6C5BA26F13F0020F5CA2EDF80102075CA2
-6E6C485AA2EDFE07020191C8FCA26F5A6E130EA2ED7F9CA216DCED3FF8A36F5AA36F5AA2
-6F5AA36F5A3F407EBD44>I<B500FE017FB5D88007B5FCA3000301C0010101E0C713F86C
-90C849EC3FE07148EC0F807E7215006E143F017F190E84A26D6C60A24D7E6D6C60A2EFE7
-F86D6C60A2933801C3FC6E18F001076104037F6E0281140101036104077F17006D6C4D5A
-A2040EEB7F806D6C4DC7FCA24CEB3FC0DA7F80160EA24CEB1FE003C0161E023F171C0478
-14F0DBE070010F133C021F173804F014F84C1307DA0FF05EA2DBF1C0EB03FCDA07F95EA2
-DBFB80EB01FEDA03FF6F5AA293C8FCA26E5FA24B157F020094C8FCA24B81037C153EA203
-78151E0338151C58407EBD5D>I<B66C0103B51280A3000101F0C8EBF8006C6C48ED3FC0
-725A013F041EC7FC6D7E606D6C15386D6C1578606D6C5D6E14016D5E6D6D1303606E6C49
-C8FC6E6C5B170E6E6C131E171C6E6C5B6E6C137817706E6C13F06F5B6E13016EEB83C05F
-ED7FC7DB3FE7C9FC16EFED1FFE5E150F6F5AB3A4ED1FFC020FB512FCA3413E7FBD44>89
-D<003FB712F8A391C7EA1FF013F801E0EC3FE00180EC7FC090C8FC003EEDFF80A2003C4A
-1300007C4A5A12784B5A4B5AA200704A5AA24B5A4B5AA2C8485A4A90C7FCA24A5A4A5AA2
-4A5AA24A5A4A5AA24A5A4A5AA24990C8FCA2495A4948141CA2495A495AA2495A495A173C
-495AA24890C8FC485A1778485A484815F8A24848140116034848140F4848143FED01FFB8
-FCA32E3E7BBD38>I<EAFFFCA4EAF000B3B3B3B3ABEAFFFCA40E5B77C319>I<486C13C000
-03130101001380481303000EEB070048130E0018130C0038131C00301318007013380060
-1330A300E01370481360A400CFEB678039FFC07FE001E013F0A3007F133FA2003F131F01
-C013E0390F0007801C1C73BE2D>I<EAFFFCA4EA003CB3B3B3B3ABEAFFFCA40E5B7FC319>
-I<EA0180120313005A120E5A12181238123012701260A312E05AA412CFEAFFC013E0A312
-7FA2123F13C0EA0F000B1C7ABE19>96 D<EB0FF8EBFFFE3903F01F8039078007E0000F6D
-7E9038E001F8D81FF07F6E7EA3157F6C5AEA0380C8FCA4EC1FFF0103B5FC90381FF87FEB
-7F803801FC00EA07F8EA0FE0485A485AA248C7FCEE038012FEA315FFA3007F5BEC03BF3B
-3F80071F8700261FC00E13CF3A07F03C0FFE3A01FFF807FC3A003FC001F0292A7DA82D>
-I<EA01FC12FFA3120712031201B1EC03FC91381FFF8091387C07E09039FDE001F09039FF
-C000FC4A137E91C77E49158049141F17C0EE0FE0A217F0A2160717F8AA17F0A2160FA217
-E0161F17C06D1580EE3F006D5C6E13FE9039F3C001F89039F1E003F09039E0780FC09026
-C03FFFC7FCC7EA07F82D407EBE33>I<49B4FC010F13E090383F00F8017C131E4848131F
-4848137F0007ECFF80485A5B121FA24848EB7F00151C007F91C7FCA290C9FC5AAB6C7EA3
-003FEC01C07F001F140316806C6C13076C6C14000003140E6C6C131E6C6C137890383F01
-F090380FFFC0D901FEC7FC222A7DA828>I<ED01FC15FFA3150715031501B114FF010713
-E190381F80F990387E003D49131FD803F81307485A49130348481301121F123F5B127FA2
-90C7FCA25AAA7E7FA2123FA26C7E000F14037F000714076C6C497E6C6C497ED8007C0179
-13F890383F01F190380FFFC1903A01FE01FC002D407DBE33>I<EB01FE90380FFFC09038
-3F03F09038FC01F848486C7E4848137E48487F000F158049131F001F15C04848130FA212
-7F16E090C7FCA25AA290B6FCA290C9FCA67EA27F123F16E06C7E1501000F15C06C6C1303
-6DEB07806C6C1400C66C131E017E5B90381F80F8903807FFE0010090C7FC232A7EA828>
-I<EC1FC0EC7FF8903801F83C903807E07E90380FC0FFEB1FC1EB3F811401137FEC00FE01
-FE137C1500AEB6FCA3C648C7FCB3AE487E007F13FFA320407EBF1C>I<167C903903F801
-FF903A1FFF078F8090397E0FDE1F9038F803F83803F001A23B07E000FC0600000F6EC7FC
-49137E001F147FA8000F147E6D13FE00075C6C6C485AA23901F803E03903FE0FC026071F
-FFC8FCEB03F80006CAFC120EA3120FA27F7F6CB512E015FE6C6E7E6C15E06C810003813A
-0FC0001FFC48C7EA01FE003E140048157E825A82A46C5D007C153E007E157E6C5D6C6C49
-5A6C6C495AD803F0EB0FC0D800FE017FC7FC90383FFFFC010313C0293D7EA82D>I<EA01
-FC12FFA3120712031201B1EC01FE913807FFC091381E07E091387803F09138E001F8D9FD
-C07F148001FF6D7E91C7FCA25BA25BB3A6486C497EB5D8F87F13FCA32E3F7DBE33>I<EA
-01E0EA07F8A2487EA46C5AA2EA01E0C8FCACEA01FC127FA3120712031201B3AC487EB512
-F0A3143E7DBD1A>I<1478EB01FEA2EB03FFA4EB01FEA2EB00781400AC147FEB7FFFA313
-017F147FB3B3A5123E127F38FF807E14FEA214FCEB81F8EA7F01387C03F0381E07C0380F
-FF803801FC00185185BD1C>I<EA01FC12FFA3120712031201B292B51280A392383FFC00
-16E0168093C7FC153C5D5D4A5AEC07C04A5A4AC8FC143E147F4A7E13FD9038FFDFC0EC9F
-E0140F496C7E01FC7F496C7E1401816E7E81826F7E151F826F7EA282486C14FEB539F07F
-FFE0A32B3F7EBE30>I<EA01FC12FFA3120712031201B3B3B1487EB512F8A3153F7DBE1A>
-I<2701F801FE14FF00FF902707FFC00313E0913B1E07E00F03F0913B7803F03C01F80007
-903BE001F87000FC2603F9C06D487F000101805C01FBD900FF147F91C75B13FF4992C7FC
-A2495CB3A6486C496CECFF80B5D8F87FD9FC3F13FEA347287DA74C>I<3901F801FE00FF
-903807FFC091381E07E091387803F000079038E001F82603F9C07F0001138001FB6D7E91
-C7FC13FF5BA25BB3A6486C497EB5D8F87F13FCA32E287DA733>I<14FF010713E090381F
-81F890387E007E01F8131F4848EB0F804848EB07C04848EB03E0000F15F04848EB01F8A2
-003F15FCA248C812FEA44815FFA96C15FEA36C6CEB01FCA3001F15F86C6CEB03F0A26C6C
-EB07E06C6CEB0FC06C6CEB1F80D8007EEB7E0090383F81FC90380FFFF0010090C7FC282A
-7EA82D>I<3901FC03FC00FF90381FFF8091387C0FE09039FDE003F03A07FFC001FC6C49
-6C7E6C90C7127F49EC3F805BEE1FC017E0A2EE0FF0A3EE07F8AAEE0FF0A4EE1FE0A2EE3F
-C06D1580EE7F007F6E13FE9138C001F89039FDE007F09039FC780FC0DA3FFFC7FCEC07F8
-91C9FCAD487EB512F8A32D3A7EA733>I<02FF131C0107EBC03C90381F80F090397F0038
-7C01FC131CD803F8130E4848EB0FFC150748481303121F485A1501485AA448C7FCAA6C7E
-A36C7EA2001F14036C7E15076C6C130F6C7E6C6C133DD8007E137990383F81F190380FFF
-C1903801FE0190C7FCAD4B7E92B512F8A32D3A7DA730>I<3901F807E000FFEB1FF8EC78
-7CECE1FE3807F9C100031381EA01FB1401EC00FC01FF1330491300A35BB3A5487EB512FE
-A31F287EA724>I<90383FC0603901FFF8E03807C03F381F000F003E1307003C1303127C
-0078130112F81400A27E7E7E6D1300EA7FF8EBFFC06C13F86C13FE6C7F6C1480000114C0
-D8003F13E0010313F0EB001FEC0FF800E01303A214017E1400A27E15F07E14016C14E06C
-EB03C0903880078039F3E01F0038E0FFFC38C01FE01D2A7DA824>I<131CA6133CA4137C
-A213FCA2120112031207001FB512C0B6FCA2D801FCC7FCB3A215E0A912009038FE01C0A2
-EB7F03013F138090381F8700EB07FEEB01F81B397EB723>I<D801FC14FE00FF147FA300
-0714030003140100011400B3A51501A31503120015076DEB06FF017E010E13806D4913FC
-90381FC078903807FFE00100903880FE002E297DA733>I<B539E00FFFE0A32707FE0003
-13006C48EB00FC5E00015D7F00005DA26D13016D5CA26D6C485AA2ECC007011F91C7FCA2
-90380FE00EA2ECF01E0107131CA26D6C5AA2ECFC7801011370A2ECFEF001005BA2EC7FC0
-A36E5AA26EC8FCA3140E2B287EA630>I<B53BC3FFFE03FFF8A3290FFE003FE00013C06C
-486D48EB3F806C4817006D010F141E00016F131C15076D163C00004A6C1338A2017F5E4B
-7E151DD93F805DED3DFC1538D91FC04A5AED78FE9238707E03D90FE0017F5BEDE03F02F0
-140701070387C7FC9138F1C01F02F9148F010315CE9138FB800F02FF14DE6D15FCED0007
-6D5DA24A1303027E5CA2027C1301023C5C023813003D287EA642>I<B539F01FFFE0A300
-03D9C00F1300C690388007F8D97F0013E002805BD93FC05B011F49C7FC90380FE00EECF0
-1E6D6C5A01035B6D6C5A6E5AEB00FF6E5A6E5A81141F814A7E81147BECF1FC903801E1FE
-ECC0FF01037F49486C7ED90F007F011E6D7E013E130F496D7E01FC80486C80000F4A7EB5
-39803FFFF8A32D277FA630>I<B539E00FFFE0A32707FE000313006C48EB01FC6F5A0001
-5D7F00005DA2017F495AA2EC8003013F5CA26D6C48C7FCA26E5A010F130EA26D6C5AA2EC
-F83C01031338A26D6C5AA2ECFEF001005BA2EC7FC0A36E5AA36EC8FCA2140EA2141E141C
-143C1438A2147800181370127EB45BA2495AA248485AD87E07C9FCEA780EEA3C3CEA1FF8
-EA07E02B3A7EA630>I<001FB61280A2EBE0000180140049485A001E495A121C4A5A003C
-495A141F00385C4A5A147F5D4AC7FCC6485AA2495A495A130F5C495A90393FC00380A2EB
-7F80EBFF005A5B484813071207491400485A48485BA248485B4848137F00FF495A90B6FC
-A221277EA628>I<B812F0A22C0280982D>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fm cmbx12 20.736 11
-/Fm 11 115 df<137F3801FFC0000713F0487F487F487F487FA2B61280A96C1400A26C5B
-6C5B6C5B6C5B000113C06C6CC7FC1919729836>46 D<EE3FFF0307B512F8033F14FF4AB7
-12E0020716F8021F16FE4AD9F8077F91B5D8C00014C04991C7003F7F4901FC020F7F4949
-6E7F49496E7F49496E7F49496E7F4B81498590B5C96C7FA24849707FA24886A248864A82
-4886A34886A448864A82A4481B80A8B51AC0B3AA6C1B80A86C1B006E5EA46C62A36C62A3
-6C6D4C5BA36C62A26C6D4C5BA26C6E4B5B6D616F92B5FC6D96C7FC6D6D4A5B6D6D4A5B6D
-6D4A5B6D6D4A5B6D01FF023F5B6D02C090B55A6ED9F8075C021F90B648C8FC020716F802
-0116E06E6C1580030702F8C9FCDB003F90CAFC527379F061>48 D<93B57E031F14FC92B7
-7E020316F0020F16FC023F16FF4A8349B5D8800314E04901F8C7003F7F4901C0020F7F49
-90C800037FD91FFC6F7F49486F6C7E137F4A7013804948827313C05A4A821BE05AA28548
-7FA38080806E5E8003C017C08103F85D03FE17806F6C5C6C6F160004F05C04FC4A5A6C6F
-5D706C13FFDDE0015B6CDCF8035BDDFC0F13C06DDBFF1F5B6D93B5C7FC19FC6D17F06D5F
-6D17806D17E06D836D6C16FC6E16FF020F836E17E06E83020F83023F8391B97E49840107
-01F0178049D9C07F16C0013FD9801F16E049EB00074948010116F048497F4849023F15F8
-4849140F4A6E15FC48160148496E6C14FE4A151F488391C9120348050014FF193F498385
-00FF84854983A28586A3861BFEA27FA2007F1AFC7F1A7F1BF86C7FF2FFF06C7F6E4C13E0
-6C6D4C13C06C6D5E6E4C13806C6D4C13006C6D6CED7FFE6C02E04A485A013F01FC020F13
-F06D9026FFC001B55A010791B712806D95C7FC010017FC021F16F002071680DA007F02FC
-C8FC030191C9FC507378F061>56 D<93B5FC031F14F092B612FE02076F7E021F16E04A16
-F891B87E49DAF00713FF0107DA0001804901FC6D6C7F49496E7F49496E7F49496E7F90B5
-486E7F484A8048854891C86C7FA2487114805C481AC0A2487213E0A2484918F0A31BF8A2
-B5FCA27313FCA51BFEA71BFF61A27EA396B6FC7EA2806C5FA27E606C7F607E6C6E5C6CEF
-1FBF6D6DEC3F3F6D6D147F6D6D14FE6D6DEB01FC6D01FE130701019039FFC01FF86D91B5
-00F014FE023F15C06E15800203ECFE00DA007F13F8030713C092C9FC4F13FCA41BF8A31B
-F0D91FF093B5FCEB7FFC496C18E0487F486E17C06048801B804E1400A26260624E5B4B5C
-626C91C8485B4A4B5B4A92B55A6C01F04A91C7FC02804A5B6C01E0020F5B6D6C023F13F0
-02FE91B55A90273FFFE00F5C6D90B7C8FC010716FC6D16F0010016C0023F92C9FC020714
-F09126007FFECAFC507378F061>I<92383FFFF80207B612E0027F15FC49B87E010717E0
-011F83499026F0007F13FC4948C7000F7F90B502036D7E486E6D806F6D80727F486E6E7F
-8486727FA28684A26C5C72806C5C6D90C8FC6D5AEB0FF8EB03E090CAFCA70507B6FC041F
-B7FC0303B8FC157F0203B9FC021FECFE0391B612800103ECF800010F14C04991C7FC017F
-13FC90B512F04814C0485C4891C8FC485B5A485B5C5A5CA2B5FC5CA360A36E5DA26C5F6E
-5D187E6C6D846E4A48806C6D4A4814FC6C6ED90FF0ECFFFC6C02E090263FE07F14FE0001
-9139FC03FFC06C91B6487E013F4B487E010F4B1307010303F01301D9003F0280D9003F13
-FC020101F8CBFC57507ACE5E>97 D<903801FFFCB6FCA8C67E131F7FB3ADF0FFFC050FEB
-FFE0057F14FE0403B77E040F16E0043F16F84CD9007F13FE9226FDFFF001077F92B500C0
-01018094C86C13E004FC6F7F4C6F7F04E06F7F4C6F7F5E747F93C915804B7014C0A27414
-E0A21DF087A21DF8A31DFC87A41DFEAF1DFCA4631DF8A31DF098B5FC1DE0A25014C0A26F
-1980501400705D705F704B5B505B704B5B04FC4B5BDBE7FE92B55A9226C3FF8001035C03
-8101E0011F49C7FC9226807FFC90B55A4B6CB712F04A010F16C04A010393C8FC4A010015
-F84A023F14C090C9000301F0C9FC5F797AF76C>I<93383FFFF00307B612C0033F15F84A
-B712FE0207707E021F17E0027F8391B526FC001F7F010302C001037F4991C7487F49495C
-495B4901F04A7F5B90B55A485CA2485C4891C8FCA248715B5C48715B725B4A6F5B489438
-007FC0071FC7FC96C8FC5AA25CA3B5FCAF7E80A47E80A27E806CF11F80F23FC06C6E167F
-A26C6EEEFF80816C606C6E17006D6D4B5A6D6D15076D6D4B5A6D6D6C4A5A6D02E0EC7FF0
-6D02F849485A01009126FF801F5B6E91B6C7FC021F5E020716F8020116E06E6C15800307
-02FCC8FCDB003F13804A507ACE56>I<97380FFFE00607B6FCA8F00003190086B3AD9338
-3FFF800307B512F8033F14FF4AB712C0020716F0021F16FC027F9039FE007FFE91B500F0
-EB0FFF01030280010190B5FC4949C87E49498149498149498149498190B548814884484A
-8192CAFC5AA2485BA25A5C5AA35A5CA4B5FCAF7EA4807EA37EA2807EA26C7F616C6E5D6C
-606C80616D6D5D6D6D5D6D6D92B67E6D6D4A15FC010301FF0207EDFFFE6D02C0EB3FFE6D
-6C9039FC01FFF86E90B65A020F16C002031600DA007F14FC030F14E09226007FFEC749C7
-FC5F797AF76C>I<93387FFF80030FB512FC037FECFF804AB712E0020716F8021F16FE02
-7FD9F8077F49B5D8C000804991C7003F13E04901FC020F7F49496E7F49498049496E7F49
-496E7F90B55A48727E92C914804884485B1BC048841BE0485BA27313F05AA25C5AA21BF8
-85A2B5FCA391BAFCA41BF002F8CCFCA67EA3807EA47E806CF103F0F207F86C7F1A0F6C6E
-17F06C191F6F17E06C6E163F6D6DEE7FC06D6D16FF6D6D4B13806D6D4B13006D6D6CEC0F
-FE6D02E0EC3FFC6D02F8ECFFF86D9126FFC00F5B023F91B65A020F178002034CC7FC0200
-16F8031F15E0030392C8FCDB000F13E04D507BCE58>I<93381FFFE00303B6FC031F15E0
-92B712FC020316FF020F17C0023FD9FC0014F091B500C0010F13FC4991C700037F4901FC
-02007F010F496F13C049496F7F49496F7F4B8149496F7F90B5C96C7F4886A24849707F48
-1B80A248497014C0A2481BE0A348497113F0A3481BF8A5B51AFCAE6C1BF8A46C1BF06E94
-B5FCA36C1BE0A26C6D4C14C0A26C1B806E5E6C1B006C6E4B5BA26C6E4B5B6D6D4B5B6D6D
-4B5B6D6D4B5B6D6D92B55A6D01FF02035C6D02C0010F91C7FC010002FC90B512FC6E90B7
-5A021F17E00207178002014CC8FCDA003F15F0030392C9FCDB001F13E056507BCE61>
-111 D<902601FFF8EB07FEB691383FFFC094B512F00403804C14FE4C8093261FFC3F1380
-93263FE07F13C0DC7F80B5FCC66C5D011FDAFE0114E06DEBF9FC16F815FB16F016E015FF
-16C07114C05E72138095381FFE0093C76C5AF001E095C8FCA25DA65DB3B3A2B812F8A843
-4E7ACD4F>114 D E
-%EndDVIPSBitmapFont
-end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop 94 1385 a Fm(barco)5 b(de)65 b(0.98)p 94 1451
-3780 34 v 2617 1548 a Fl(A)31 b(library)d(for)i(dra)m(wing)f(bar)h(co)s
-(des)3409 1656 y(Marc)m(h)h(2002)94 5367 y Fk(b)l(y)45
-b(Alessandro)h(Rubini)f(\()p Fj(rubini@gnu.org)p Fk(\))p
-94 5446 3780 17 v eop
-%%Page: 1 2
-1 1 bop 94 -116 a Fl(Chapter)30 b(2:)41 b(The)30 b(Underlying)e(Data)k
-(Structure)2012 b(1)94 365 y Fi(Barco)t(de)54 b(to)t(ols)219
-549 y Fl(This)29 b(\014le)g(do)s(cumen)m(ts)h(v)m(ersion)g(0.98)i(of)e
-(the)h(barco)s(de)f(library)e(and)i(sample)f(programs)h(\(Marc)m(h)i
-(2002\).)94 815 y Fi(1)81 b(Ov)l(erview)219 999 y Fl(The)26
-b Fh(barco)s(de)32 b Fl(pac)m(k)-5 b(age)29 b(is)d(mainly)f(a)i(C)f
-(library)f(for)h(creating)i(bar-co)s(de)f(output)f(\014les.)39
-b(It)27 b(also)f(includes)94 1099 y(a)31 b(command)f(line)f(fron)m
-(t-end)h(and)g(\(in)f(a)i(foreseeable)g(future\))f(a)h(graphic)e(fron)m
-(tend.)219 1215 y(The)k(pac)m(k)-5 b(age)35 b(is)d(designed)g(as)i(a)f
-(library)e(b)s(ecause)i(w)m(e)h(think)e(the)h(main)g(use)f(for)h(barco)
-s(de-generation)94 1315 y(to)s(ols)23 b(is)f(inside)f(more)i(featured)g
-(applications.)37 b(The)22 b(library)f(addresses)h(bar)h(co)s(de)g
-(prin)m(ting)e(as)i(t)m(w)m(o)i(distinct)94 1415 y(problems:)43
-b(creation)33 b(of)f(bar)g(information)e(and)i(actual)h(con)m(v)m
-(ersion)f(to)h(an)f(output)g(format.)47 b(T)-8 b(o)32
-b(this)g(aim)94 1514 y(w)m(e)25 b(use)f(an)g(in)m(termediate)g
-(represen)m(tation)g(for)g(bar)f(co)s(des,)j(whic)m(h)d(is)g(curren)m
-(tly)g(do)s(cumen)m(ted)h(in)e(the)j(`)p Fj(ps.c)p Fl(')94
-1614 y(source)31 b(\014le)e(\(not)i(in)f(this)f(do)s(cumen)m(t\).)219
-1730 y(Note)24 b(that)e(the)h(library)d(and)h(the)i(accompan)m(ying)g
-(material)e(is)h(released)g(according)g(to)h(the)f(GPL)h(license,)94
-1830 y(not)31 b(the)g(LGPL)f(one.)41 b(A)30 b(cop)m(y)h(of)g(the)g(GPL)
-f(is)f(included)f(in)h(the)i(distribution)26 b(tarball.)94
-2096 y Fi(2)81 b(The)53 b(Underlying)h(Data)g(Structure)219
-2280 y Fl(Ev)m(ery)33 b(barco)s(de-related)g(function)f(acts)i(on)f(a)h
-(data)f(structure)g(de\014ned)f(in)g(the)h(`)p Fj(barcode.h)p
-Fl(')e(header,)94 2380 y(whic)m(h)j(m)m(ust)h(b)s(e)f(included)e(b)m(y)
-j(an)m(y)g(C)g(source)g(\014le)f(that)h(uses)g(the)g(library)-8
-b(.)52 b(The)35 b(header)f(is)g(installed)f(b)m(y)94
-2480 y Fj(make)47 b(install)p Fl(.)219 2596 y(The)30
-b(de\014nition)e(of)i(the)h(data)g(structure)f(is)f(included)f(here)i
-(for)g(reference:)334 2717 y Fj(struct)47 b(Barcode_Item)d({)525
-2820 y(int)j(flags;)428 b(/*)47 b(type)g(of)g(encoding)f(and)h(other)f
-(flags)g(*/)525 2924 y(char)h(*ascii;)332 b(/*)47 b(malloced)f(*/)525
-3028 y(char)h(*partial;)236 b(/*)47 b(malloced)f(too)h(*/)525
-3132 y(char)g(*textinfo;)188 b(/*)47 b(information)e(about)h(text)h
-(placement)e(*/)525 3236 y(char)i(*encoding;)188 b(/*)47
-b(code)g(name,)f(filled)g(by)i(encoding)d(engine)h(*/)525
-3339 y(int)h(width,)f(height;)g(/*)h(output)f(units)h(*/)525
-3443 y(int)g(xoff,)g(yoff;)189 b(/*)47 b(output)f(units)h(*/)525
-3547 y(int)g(margin;)380 b(/*)47 b(output)f(units)h(*/)525
-3651 y(double)f(scalef;)237 b(/*)47 b(requested)f(scaling)f(for)i
-(barcode)f(*/)525 3754 y(int)h(error;)428 b(/*)47 b(an)h(errno-like)d
-(value,)h(in)h(case)f(of)i(failure)d(*/)334 3858 y(};)219
-3975 y Fl(The)e(exact)i(meaning)e(of)g(eac)m(h)i(\014eld)d(and)h(the)g
-(v)-5 b(arious)43 b(\015ags)g(implemen)m(ted)f(are)i(describ)s(ed)e(in)
-g(the)94 4074 y(follo)m(wing)29 b(sections.)219 4191
-y(Ev)m(en)38 b(though)f(y)m(ou)h(w)m(on't)g(usually)d(need)i(to)h(act)h
-(on)e(the)h(con)m(ten)m(ts)h(of)f(this)e(structure,)j(some)f(of)g(the)
-94 4290 y(functions)25 b(in)f(the)i(library)d(receiv)m(e)k(argumen)m
-(ts)e(that)i(are)f(directly)e(related)i(to)g(one)g(or)g(more)f(of)h
-(these)g(\014elds.)94 4524 y Fk(2.1)69 b(The)44 b(Fields)94
-4715 y Fj(int)30 b(flags;)574 4815 y Fl(The)42 b(\015ags)g(are,)j(as)d
-(y)m(ou)g(ma)m(y)g(susp)s(ect,)j(mean)m(t)d(to)h(sp)s(ecify)d(the)i
-(exact)h(b)s(eha)m(viour)e(of)h(the)574 4914 y(library)-8
-b(.)37 b(They)22 b(are)h(often)h(passed)e(as)h(an)g(argumen)m(t)g(to)h
-Fg(b)-5 b(ar)g(c)g(o)g(de)32 b Fl(functions)21 b(and)i(are)g(discussed)
-574 5014 y(in)30 b(the)g(next)h(section.)94 5147 y Fj(char)f(*ascii;)94
-5247 y(char)g(*partial;)94 5347 y(char)g(*textinfo;)94
-5446 y(char)g(*encoding;)574 5546 y Fl(These)41 b(\014elds)f(are)h(in)m
-(ternally)e(managed)i(b)m(y)g(the)h(library)-8 b(,)41
-b(and)g(y)m(ou)g(are)h(not)f(exp)s(ected)g(to)574 5645
-y(touc)m(h)31 b(them)g(if)e(y)m(ou)i(use)f(the)h(pro)m(vided)d(API.)j
-(All)e(of)h(them)h(are)g(allo)s(cated)f(with)f Fg(mal)5
-b(lo)-5 b(c)p Fl(.)p eop
-%%Page: 2 3
-2 2 bop 94 -116 a Fl(Chapter)30 b(2:)41 b(The)30 b(Underlying)e(Data)k
-(Structure)2012 b(2)94 365 y Fj(int)30 b(width;)94 465
-y(int)g(height;)574 565 y Fl(They)i(sp)s(ecify)e(the)i(width)d(and)i
-(heigh)m(t)h(of)g(the)f Fg(active)39 b Fl(barco)s(de)31
-b(region)g(\(i.e.,)i(excluding)d(the)574 664 y(white)21
-b(margin\),)i(in)d(the)i(units)e(used)h(to)h(create)i(output)d(data)h
-(\(for)g(p)s(ostscript)e(they)i(are)g(p)s(oin)m(ts,)574
-764 y(1/72th)33 b(of)d(an)g(inc)m(h,)g(0.352)j(mm\).)40
-b(The)30 b(\014elds)f(can)i(b)s(e)f(either)g(assigned)f(to)j(in)d(the)h
-(structure)574 863 y(or)37 b(via)e Fg(Bar)-5 b(c)g(o)g(de)p
-1161 863 28 4 v 36 w(Position\(\))p Fl(,)39 b(at)e(y)m(our)f(c)m
-(hoice.)59 b(If)35 b(either)h(v)-5 b(alue)35 b(or)h(b)s(oth)g(are)g
-(left)g(to)h(their)574 963 y(default)c(v)-5 b(alue)33
-b(of)g(zero,)i(the)e(output)g(engine)g(will)d(assign)j(default)f(v)-5
-b(alues)33 b(according)g(to)h(the)574 1063 y(sp)s(eci\014ed)g(scaling)f
-(factor.)55 b(If)35 b(the)g(sp)s(eci\014ed)e(width)g(is)h(bigger)g
-(than)h(needed)f(\(according)h(to)574 1162 y(the)g(scaling)f(factor\),)
-j(the)d(output)g(barco)s(de)h(will)c(b)s(e)j(cen)m(tered)i(in)d(its)h
-(requested)g(region.)52 b(If)574 1262 y(either)27 b(the)h(width)d(of)i
-(the)h(heigh)m(t)f(are)h(to)s(o)g(small)d(for)i(the)h(sp)s(eci\014ed)d
-(scale)j(factor,)h(the)e(output)574 1362 y(bar)j(co)s(de)h(will)d
-(expand)h(symmetrically)g(around)g(the)i(requested)f(region.)94
-1513 y Fj(int)g(xoff;)94 1612 y(int)g(yoff;)574 1738
-y Fl(The)53 b(\014elds)f(sp)s(ecify)g(o\013set)j(from)e(the)g(co)s
-(ordinate)h(origin)e(of)h(the)h(output)f(engine)g(\(for)574
-1838 y(p)s(ostscript,)46 b(p)s(osition)c(0,0)i(is)f(the)g(lo)m(w)m(er)h
-(left)f(corner)h(of)f(the)h(page\).)81 b(The)43 b(\014elds)f(can)i(b)s
-(e)574 1937 y(either)36 b(assigned)e(to)j(in)d(the)i(structure)f(or)g
-(via)g Fg(Bar)-5 b(c)g(o)g(de)p 2572 1937 V 36 w(Position\(\))p
-Fl(,)39 b(at)d(y)m(our)f(c)m(hoice.)57 b(The)574 2037
-y(o\013set)24 b(sp)s(eci\014es)d(where)h(the)g(white)g(margin)f(b)s
-(egins,)h(not)h(where)f(the)g(\014rst)g(bar)g(will)d(b)s(e)j(prin)m
-(ted.)574 2136 y(T)-8 b(o)31 b(prin)m(t)e(real)h(ink)f(to)j(the)e(sp)s
-(eci\014ed)f(p)s(osition)f(y)m(ou)j(should)d(set)j Fg(mar)-5
-b(gin)39 b Fl(to)31 b(0.)94 2288 y Fj(int)f(margin;)574
-2387 y Fl(The)36 b(white)g(margin)f(that)j(will)33 b(b)s(e)j(left)g
-(around)g(the)h(prin)m(ted)e(area)i(of)g(the)f(bar)g(co)s(de.)59
-b(The)574 2487 y(same)37 b(margin)e(is)g(applied)f(to)j(all)e(sides)g
-(of)h(the)g(prin)m(ted)f(area.)59 b(The)35 b(default)g(v)-5
-b(alue)36 b(for)g(the)574 2587 y(margin)30 b(is)f(de\014ned)g(in)g(`)p
-Fj(barcode.h)p Fl(')g(as)h Fj(BARCODE_DEFAULT_MARGIN)25
-b Fl(\(10\).)94 2738 y Fj(double)k(scalef;)574 2837 y
-Fl(The)j(enlarge)f(or)h(shrink)d(v)-5 b(alue)31 b(for)g(the)h(bar)f(co)
-s(de)h(o)m(v)m(er)h(its)e(default)g(dimension.)42 b(The)31
-b Fg(width)574 2937 y Fl(and)j Fg(sc)-5 b(alef)54 b Fl(\014elds)33
-b(in)m(teract)h(deeply)f(in)g(the)h(creation)h(of)f(the)g(output,)h
-(and)f(a)g(complete)h(de-)574 3037 y(scription)29 b(of)i(the)f(issues)f
-(app)s(ears)h(later)g(in)f(this)g(section.)94 3188 y
-Fj(int)h(error;)574 3288 y Fl(The)g(\014eld)f(is)h(used)f(when)h(a)g
-Fg(b)-5 b(ar)g(c)g(o)g(de)40 b Fl(function)29 b(fails)g(to)i(host)g(an)
-f Fj(errno)p Fl(-lik)m(e)f(in)m(teger)h(v)-5 b(alue.)94
-3515 y Ff(Use)42 b(of)f(the)g Fe(width)50 b Ff(and)41
-b Fe(sc)-6 b(alef)64 b Ff(\014elds.)219 3700 y Fl(A)29
-b(width)f(unit)f(is)h(the)i(width)d(of)i(the)h(thinnest)d(bar)i(and/or)
-g(space)h(in)d(the)j(c)m(hosen)f(co)s(de;)h(it)f(defaults)f(to)94
-3800 y(1)j(p)s(oin)m(t)f(if)f(the)i(output)e(is)h(p)s(ostscript)f(or)h
-(encapsulated)g(p)s(ostscript.)219 3926 y(Either)j(or)h(b)s(oth)g(the)g
-(co)s(de)h(width)d(and)i(the)g(scale)h(factor)g(can)g(b)s(e)e(left)h
-(unsp)s(eci\014ed)e(\(i.e.,)k(zero\).)53 b(The)94 4026
-y(library)28 b(deals)i(with)f(defaults)h(in)f(the)h(follo)m(wing)f(w)m
-(a)m(y:)94 4178 y Fg(Both)34 b(unsp)-5 b(e)g(ci\014e)g(d)574
-4277 y Fl(If)26 b(b)s(oth)f(the)h(width)e(and)h(the)h(scale)g(factor)g
-(are)g(unsp)s(eci\014ed,)f(the)h(scale)g(factor)g(will)d(default)i(to)
-574 4377 y(1.0)31 b(and)e(the)h(width)e(is)g(calculated)i(according)f
-(to)i(the)e(actual)h(width)e(of)i(the)g(bar)f(co)s(de)g(b)s(eing)574
-4477 y(prin)m(ted.)94 4628 y Fg(Width)34 b(unsp)-5 b(e)g(ci\014e)g(d)
-574 4728 y Fl(If)30 b(the)h(width)e(is)g(not)i(sp)s(eci\014ed,)d(it)i
-(is)g(calculated)g(according)g(to)i(the)e(v)-5 b(alues)30
-b(of)g Fg(sc)-5 b(alef)p Fl(.)94 4879 y Fg(Sc)g(ale)34
-b(factor)f(unsp)-5 b(e)g(ci\014e)g(d)574 4978 y Fl(If)32
-b(the)h(scale)f(factor)i(is)d(not)i(sp)s(eci\014ed,)e(it)h(will)d(b)s
-(e)j(c)m(hosen)h(so)f(that)h(the)g(generated)g(bar)f(co)s(de)574
-5078 y(exactly)g(\014ts)e(the)g(sp)s(eci\014ed)f(width.)94
-5229 y Fg(Both)34 b(sp)-5 b(e)g(ci\014e)g(d)574 5329
-y Fl(The)31 b(co)s(de)g(will)d(b)s(e)i(prin)m(ted)g(inside)e(the)j(sp)s
-(eci\014ed)f(region)g(according)h(to)g(the)g(sp)s(eci\014ed)f(scale)574
-5429 y(factor.)48 b(It)33 b(will)d(b)s(e)h(aligned)h(to)h(the)f(left.)
-47 b(If,)33 b(ho)m(w)m(ev)m(er,)h(the)f(c)m(hosen)g(width)e(is)g(to)s
-(o)i(small)e(for)574 5528 y(the)f(sp)s(eci\014c)e(bar)h(co)s(de)h(and)e
-(scaling)h(factor,)h(then)f(the)h(co)s(de)g(will)c(extend)k
-(symmetrically)d(to)574 5628 y(the)k(left)f(and)g(to)h(the)g(righ)m(t)f
-(of)g(the)h(c)m(hosen)g(region.)p eop
-%%Page: 3 4
-3 3 bop 94 -116 a Fl(Chapter)30 b(3:)41 b(The)30 b(Flags)2872
-b(3)94 365 y Fk(2.2)69 b(The)44 b(In)l(termediate)j(Represen)l(tation)
-219 565 y Fl(The)23 b(enco)s(ding)g(functions)f(prin)m(t)g(their)g
-(output)h(in)m(to)h(the)g Fj(partial)d Fl(and)i Fj(texinfo)f
-Fl(\014elds)g(of)h(the)h(barco)s(de)94 664 y(data)g(structure.)37
-b(Those)23 b(\014elds,)g(together)h(with)d(p)s(osition)g(information,)h
-(are)h(then)f(used)g(to)i(generate)g(actual)94 764 y(output.)41
-b(This)28 b(is)i(an)g(informal)e(description)h(of)h(the)h(in)m
-(termediate)f(format.)219 905 y(The)38 b(\014rst)g(c)m(har)h(in)f
-Fj(partial)f Fl(tells)g(ho)m(w)i(m)m(uc)m(h)g(extra)g(space)h(to)f(add)
-f(to)i(the)f(left)f(of)h(the)g(bars.)65 b(F)-8 b(or)94
-1005 y(EAN-13,)33 b(it)d(is)f(used)h(to)h(lea)m(v)m(e)h(space)f(to)g
-(prin)m(t)e(the)i(\014rst)f(digit,)f(other)i(co)s(des)f(ma)m(y)h(ha)m
-(v)m(e)h('0')f(for)g(no-extra-)94 1104 y(space-needed.)219
-1245 y(The)23 b(next)h(c)m(haracters)i(are)e(alternating)f(bars)g(and)h
-(spaces,)h(as)g(m)m(ultiples)c(of)j(the)g(base)g(dimension)d(whic)m(h)
-94 1345 y(is)35 b(1)g(unless)f(the)i(co)s(de)f(is)f(rescaled.)56
-b(Rescaling)34 b(is)h(calculated)g(as)g(the)h(ratio)f(from)g(the)h
-(requested)f(width)94 1445 y(and)e(the)h(calculated)f(width.)48
-b(Digits)33 b(represen)m(t)g(bar/space)h(dimensions.)47
-b(Lo)m(w)m(er-case)35 b(letters)f(represen)m(t)94 1544
-y(those)d(bars)f(that)h(should)e(extend)i(lo)m(w)m(er)f(than)h(the)f
-(others:)41 b('a')32 b(is)d(equiv)-5 b(alen)m(t)30 b(to)h('1',)h('b')f
-(is)e('2')i(and)f(so)h(on)94 1644 y(up)e(to)h('i')g(whic)m(h)e(is)g
-(equiv)-5 b(alen)m(t)29 b(to)i('9'.)41 b(Other)29 b(letters)h(will)d(b)
-s(e)i(used)g(for)g(enco)s(ding-sp)s(eci\014c)f(meanings,)h(as)94
-1743 y(so)s(on)i(as)f(I)g(implemen)m(t)f(them.)219 1885
-y(The)35 b Fj(textinfo)e Fl(string)h(is)h(made)g(up)f(of)i(\014elds)e
-Fj(\045lf:\045lf:\045c)e Fl(separated)k(b)m(y)g(blank)e(space.)56
-b(The)35 b(\014rst)94 1984 y(in)m(teger)f(is)e(the)h(x)g(p)s(osition)e
-(of)i(the)h(c)m(haracter,)h(the)e(second)g(is)f(the)i(fon)m(t)f(size)g
-(\(b)s(efore)g(rescaling\))f(and)h(the)94 2084 y(c)m(har)e(item)f(is)g
-(the)g(c)m(haracter)i(to)f(b)s(e)f(prin)m(ted.)219 2225
-y(Both)39 b(the)g Fj(partial)d Fl(and)i Fj(textinfo)f
-Fl(strings)g(ma)m(y)i(include)d(\\)p Fj(-)p Fl(")j(or)g(\\)p
-Fj(+)p Fl(")g(as)g(sp)s(ecial)e(c)m(haracters)j(\(in)94
-2325 y Fj(textinfo)25 b Fl(the)j(c)m(har)f(should)e(b)s(e)i(a)g
-(stand-alone)g(w)m(ord\).)40 b(They)26 b(state)j(where)d(the)i(text)g
-(should)d(b)s(e)h(prin)m(ted:)94 2424 y(b)s(elo)m(w)34
-b(the)g(bars)f(\(\\)p Fj(-)p Fl(",)j(default\))e(or)g(ab)s(o)m(v)m(e)h
-(the)f(bars.)51 b(This)32 b(is)h(used,)i(for)e(example,)i(to)g(prin)m
-(t)e(the)h(add-5)94 2524 y(and)27 b(add-2)g(co)s(des)g(to)h(the)f(righ)
-m(t)f(of)i(UPC)e(or)h(EAN)g(co)s(des)g(\(the)h(add-5)f(extension)g(is)f
-(mostly)g(used)g(in)g(ISBN)94 2623 y(co)s(des\).)94 2939
-y Fi(3)81 b(The)53 b(Flags)219 3213 y Fl(The)30 b(follo)m(wing)f
-(\015ags)h(are)h(supp)s(orted)e(b)m(y)h(v)m(ersion)g(0.98)i(of)e(the)h
-(library:)94 3387 y Fj(BARCODE_ENCODING_MASK)574 3487
-y Fl(The)f(mask)h(is)e(used)h(to)h(extract)h(the)e(enco)s(ding-t)m(yp)s
-(e)g(iden)m(ti\014er)f(from)h(the)g Fg(\015ags)39 b Fl(\014eld.)94
-3653 y Fj(BARCODE_EAN)94 3753 y(BARCODE_UPC)94 3852 y(BARCODE_ISBN)94
-3952 y(BARCODE_128B)94 4051 y(BARCODE_128C)94 4151 y(BARCODE_128)94
-4251 y(BARCODE_128RAW)94 4350 y(BARCODE_39)94 4450 y(BARCODE_I25)94
-4550 y(BARCODE_CBR)94 4649 y(BARCODE_MSI)94 4749 y(BARCODE_PLS)94
-4848 y(BARCODE_93)574 4948 y Fl(The)d(curren)m(tly)f(supp)s(orted)g
-(enco)s(ding)g(t)m(yp)s(es:)52 b(EAN)36 b(\(13)i(digits,)e(8)h(digits,)
-f(13)h Fj(+)f Fl(2)g(add-on)574 5048 y(and)26 b(13)i
-Fj(+)e Fl(5)h(add-on\),)g(UPC)f(\(UPC-A,)i(UPC-E,)e(UPC-A)h(with)e(2)i
-(or)f(5)h(digit)f(add-on\),)h(ISBN)574 5147 y(\(with)e(or)f(without)g
-(the)i(5-digit)e(add-on\),)i(CODE128-B)h(\(the)e(whole)g(set)g(of)g
-(prin)m(table)e(ASCI)s(I)574 5247 y(c)m(haracters\),)36
-b(CODE128-C)d(\(t)m(w)m(o)i(digits)c(enco)s(ded)h(b)m(y)h(eac)m(h)h
-(barco)s(de)e(sym)m(b)s(ol\),)h(CODE128)574 5347 y(\(all)41
-b(ASCI)s(I)f(v)-5 b(alues\),)44 b(a)e(\\ra)m(w-input")f(pseudo-co)s(de)
-h(that)g(generates)h(CODE128)f(output,)574 5446 y(CODE39)32
-b(\(alphan)m(umeric\),)e Fj(")p Fl(in)m(terlea)m(v)m(ed)i(2)f(of)h(5)p
-Fj(")f Fl(\(n)m(umeric\),)g(Co)s(dabar)f(\(n)m(umeric)g(plus)g(a)574
-5546 y(few)36 b(sym)m(b)s(ols\),)g(MSI)f(\(n)m(umeric\))g(and)g
-(Plessey)g(\(hex)g(digits\).)55 b(See)36 b(Chapter)f(6)h([Supp)s(orted)
-574 5645 y(Enco)s(dings],)30 b(page)h(7.)p eop
-%%Page: 4 5
-4 4 bop 94 -116 a Fl(Chapter)30 b(4:)41 b(F)-8 b(unctions)30
-b(Exp)s(orted)g(b)m(y)g(the)h(Library)1871 b(4)94 365
-y Fj(BARCODE_ANY)574 465 y Fl(This)27 b(sp)s(ecial)g(enco)s(ding)g(t)m
-(yp)s(e)h(\(represen)m(ted)h(b)m(y)f(a)h(v)-5 b(alue)27
-b(of)i(zero,)h(so)e(it)g(will)d(b)s(e)j(the)g(default\))574
-565 y(tells)33 b(the)g(enco)s(ding)f(pro)s(cedure)g(to)h(lo)s(ok)g(for)
-g(the)g(\014rst)f(enco)s(ding)g(t)m(yp)s(e)i(that)f(can)h(deal)e(with)
-574 664 y(a)44 b(textual)f(string.)77 b(Therefore,)46
-b(a)d(11-digit)f(co)s(de)h(will)e(b)s(e)h(prin)m(ted)f(as)i(UPC)g(\(as)
-g(w)m(ell)f(as)574 764 y(6-digit,)48 b(11)p Fj(+)p Fl(2)e(and)e(11)p
-Fj(+)p Fl(5\),)49 b(a)c(12-digit)g(\(or)g(7-digit,)i(or)e(12)p
-Fj(+)p Fl(2)h(or)e(12)p Fj(+)p Fl(5\))i(as)f(EAN13,)k(an)574
-863 y(ISBN)39 b(co)s(de)f(\(with)g(or)g(without)f(h)m(yphens,)i(with)e
-(or)i(without)e(add-5\))i(will)d(b)s(e)h(enco)s(ded)h(in)574
-963 y(its)e(EAN13)i(represen)m(tation,)g(an)e(ev)m(en)h(n)m(um)m(b)s
-(er)e(of)i(digits)e(is)g(enco)s(ded)h(using)f(CODE128C)574
-1063 y(and)45 b(a)h(generic)f(string)f(is)h(enco)s(ded)g(using)f
-(CODE128B.)j(Since)d(co)s(de-39)j(o\013ers)e(a)h(m)m(uc)m(h)574
-1162 y(larger)38 b(represen)m(tation)f(for)h(the)f(same)h(text)h
-(string,)f(co)s(de128-b)h(is)e(preferred)f(o)m(v)m(er)j(co)s(de39)574
-1262 y(for)31 b(alphan)m(umeric)d(strings.)94 1411 y
-Fj(BARCODE_NO_ASCII)574 1510 y Fl(Instructs)f(the)h(engine)e(not)i(to)g
-(prin)m(t)e(the)i(ascii)e(string)h(on)g(output.)39 b(By)28
-b(default)e(the)i(bar)f(co)s(de)574 1610 y(is)j(accompanied)g(with)f
-(an)i(ascii)e(v)m(ersion)h(of)h(the)f(text)i(it)d(enco)s(des.)94
-1759 y Fj(BARCODE_NO_CHECKSUM)574 1858 y Fl(Instructs)j(the)h(engine)f
-(not)h(to)g(add)f(the)h(c)m(hec)m(ksum)g(c)m(haracter)h(to)f(the)g
-(output.)47 b(Not)33 b(all)f(the)574 1958 y(enco)s(ding)23
-b(t)m(yp)s(es)g(can)h(drop)f(the)h(c)m(hec)m(ksum;)i(those)e(where)f
-(the)h(c)m(hec)m(ksum)g(is)f(mandatory)g(\(lik)m(e)574
-2058 y(EAN)31 b(and)f(UPC\))g(just)g(ignore)g(the)h(\015ag.)94
-2206 y Fj(BARCODE_OUTPUT_MASK)574 2306 y Fl(The)f(mask)h(is)e(used)h
-(to)h(extract)h(the)e(output-t)m(yp)s(e)h(iden)m(ti\014er)d(from)i(the)
-h Fg(\015ags)38 b Fl(\014eld.)94 2455 y Fj(BARCODE_OUT_PS)94
-2554 y(BARCODE_OUT_EPS)94 2654 y(BARCODE_OUT_PCL)94 2753
-y(BARCODE_OUT_PCL_III)574 2853 y Fl(The)48 b(curren)m(tly)f(supp)s
-(orted)f(enco)s(ding)g(t)m(yp)s(es:)76 b(full-page)47
-b(p)s(ostscript)f(and)h(encapsulated)574 2953 y(p)s(ostscript;)h(PCL)41
-b(\(prin)m(t)g(command)i(language,)j(for)c(HP)g(prin)m(ters\))f(and)h
-(PCL-I)s(I)s(I)e(\(same)574 3052 y(as)31 b(PCL,)f(but)g(uses)g(a)g(fon)
-m(t)h(not)g(a)m(v)-5 b(ailable)30 b(on)g(older)f(prin)m(ters\).)94
-3201 y Fj(BARCODE_OUT_NOHEADERS)574 3301 y Fl(The)f(\015ag)h(instructs)
-d(the)j(prin)m(ting)d(engine)h(not)i(to)f(prin)m(t)f(the)h(header)g
-(and)g(fo)s(oter)h(part)e(of)i(the)574 3400 y(\014le.)40
-b(This)29 b(mak)m(es)i(sense)f(for)f(the)i(p)s(ostscript)d(engine)i
-(but)f(migh)m(t)h(not)h(mak)m(e)g(sense)f(for)g(other)574
-3500 y(engines;)k(suc)m(h)f(other)h(engines)e(will)e(silen)m(tly)i
-(ignore)g(the)i(\015ag)f(just)g(lik)m(e)f(the)h(PCL)f(bac)m(k-end)574
-3600 y(do)s(es.)94 3881 y Fi(4)81 b(F)-13 b(unctions)52
-b(Exp)t(orted)h(b)l(y)g(the)g(Library)219 4103 y Fl(The)41
-b(functions)f(included)f(in)h(the)i(barco)s(de)f(library)e(are)j
-(declared)f(in)g(the)g(header)h(\014le)e Fj(barcode.h)p
-Fl(.)94 4203 y(They)30 b(p)s(erform)f(the)i(follo)m(wing)e(tasks:)94
-4352 y Fj(struct)g(Barcode_Item)e(*Barcode_Create\(char)e(*text\);)574
-4451 y Fl(The)35 b(function)e(creates)j(a)f(new)g(barco)s(de)f(ob)5
-b(ject)36 b(to)f(deal)g(with)e(a)i(sp)s(eci\014ed)e(text)j(string.)53
-b(It)574 4551 y(returns)27 b(NULL)h(in)e(case)j(of)f(failure)e(and)i(a)
-g(p)s(oin)m(ter)f(to)h(a)h(barco)s(de)e(data)i(structure)e(in)g(case)i
-(of)574 4651 y(success.)94 4799 y Fj(int)h(Barcode_Delete\(struct)25
-b(Barcode_Item)i(*bc\);)574 4899 y Fl(Destro)m(y)32 b(a)f(barco)s(de)f
-(ob)5 b(ject.)42 b(Alw)m(a)m(ys)31 b(returns)e(0)h(\(success\))94
-5048 y Fj(int)g(Barcode_Encode\(struct)25 b(Barcode_Item)i(*bc,)i(int)g
-(flags\);)574 5147 y Fl(Enco)s(de)h(the)h(text)g(included)d(in)h(the)h
-Fg(b)-5 b(c)35 b Fl(ob)5 b(ject.)42 b(V)-8 b(alid)29
-b(\015ags)i(are)f(the)h(enco)s(ding)e(t)m(yp)s(e)h(\(other)574
-5247 y(\015ags)45 b(are)f(ignored\))g(and)g(BAR)m(CODE)p
-1994 5247 28 4 v 33 w(NO)p 2166 5247 V 33 w(CHECKSUM)f(\(other)i
-(\015ags)f(are)h(silen)m(tly)d(ig-)574 5347 y(nored\);)35
-b(if)e(the)g(\015ag)h(argumen)m(t)g(is)e(zero,)j Fj(bc->flags)c
-Fl(will)g(apply)-8 b(.)49 b(The)32 b(function)g(returns)h(0)574
-5446 y(on)h(success)g(and)f(-1)i(in)d(case)j(of)f(error.)51
-b(After)34 b(successful)e(termination)h(the)h(data)g(structure)574
-5546 y(will)21 b(host)i(the)h(description)d(of)j(the)f(bar)g(co)s(de)g
-(and)g(its)g(textual)g(represen)m(tation,)i(after)f(a)g(failure)574
-5645 y(the)31 b Fj(error)e Fl(\014eld)g(will)f(include)g(the)i(reason)h
-(of)f(the)h(failure.)p eop
-%%Page: 5 6
-5 5 bop 94 -116 a Fl(Chapter)30 b(5:)41 b(The)30 b Fg(b)-5
-b(ar)g(c)g(o)g(de)40 b Fl(fron)m(tend)30 b(program)2063
-b(5)94 365 y Fj(int)30 b(Barcode_Print\(struct)25 b(Barcode_Item)i
-(*bc,)i(FILE)g(*f,)h(int)f(flags\);)574 465 y Fl(Prin)m(t)39
-b(the)g(bar)g(co)s(de)g(describ)s(ed)e(b)m(y)i Fj(bc)g
-Fl(to)h(the)f(sp)s(eci\014ed)f(\014le.)66 b(V)-8 b(alid)38
-b(\015ags)h(are)h(the)f(out-)574 565 y(put)25 b(t)m(yp)s(e,)h
-Fj(BARCODE_NO_ASCII)21 b Fl(and)j Fj(BARCODE_OUT_NOHEADERS)p
-Fl(,)d(other)k(\015ags)g(are)h(ignored.)574 664 y(If)39
-b(an)m(y)h(of)f(these)h(\015ags)g(is)e(zero,)43 b(it)c(will)d(b)s(e)j
-(inherited)e(from)i Fj(bc->flags)d Fl(whic)m(h)i(therefore)574
-764 y(tak)m(es)f(precedence.)57 b(The)35 b(function)g(returns)f(0)i(on)
-f(success)h(and)f(-1)h(in)e(case)j(of)f(error)f(\(with)574
-863 y Fj(bc->error)28 b Fl(set)j(accordingly\).)40 b(In)29
-b(case)j(of)e(success,)h(the)f(bar)g(co)s(de)g(is)f(prin)m(ted)g(to)i
-(the)f(sp)s(ec-)574 963 y(i\014ed)f(\014le,)h(whic)m(h)f(w)m(on't)i(b)s
-(e)f(closed)g(after)h(use.)94 1115 y Fj(int)f(Barcode_Position\(struct)
-24 b(Barcode_Item)j(*bc,)i(int)h(wid,)f(int)g(hei,)h(int)f(xoff,)g(int)
-h(yoff,)94 1215 y(double)f(scalef\);)574 1315 y Fl(The)h(function)f(is)
-h(a)h(shortcut)f(to)h(assign)f(v)-5 b(alues)29 b(to)j(the)e(data)h
-(structure.)94 1467 y Fj(int)f(Barcode_Encode_and_Print)o(\(cha)o(r)24
-b(*text,)29 b(FILE)g(*f,)h(int)f(wid,)g(int)h(hei,)f(int)h(xoff,)f(int)
-94 1567 y(yoff,)g(int)h(flags\);)574 1666 y Fl(The)38
-b(function)e(deals)h(with)g(the)h(whole)f(life)f(of)i(the)g(barco)s(de)
-g(ob)5 b(ject)39 b(b)m(y)e(calling)g(the)h(other)574
-1766 y(functions;)30 b(it)g(uses)g(all)f(the)h(sp)s(eci\014ed)f
-(\015ags.)94 1918 y Fj(int)h(Barcode_Version\(char)25
-b(*versionname\);)574 2018 y Fl(Returns)g(the)g(curren)m(t)f(v)m
-(ersion)h(as)g(an)g(in)m(teger)g(n)m(um)m(b)s(er)f(of)h(the)g(form)f
-(ma)5 b(jor)25 b(*)h(10000)h Fj(+)d Fl(minor)574 2118
-y(*)k(100)h Fj(+)e Fl(release.)40 b(Therefore,)28 b(v)m(ersion)f
-(1.03.5)i(will)c(b)s(e)i(returned)f(as)h(10305)j(and)d(v)m(ersion)f
-(0.53)574 2217 y(as)i(5300.)41 b(If)27 b(the)h(argumen)m(t)f(is)f
-(non-n)m(ull,)g(it)h(will)e(b)s(e)h(used)h(to)h(return)e(the)h(v)m
-(ersion)g(n)m(um)m(b)s(er)f(as)574 2317 y(a)h(string.)39
-b(Note)28 b(that)f(the)f(same)h(information)e(is)h(a)m(v)-5
-b(ailable)26 b(from)g(t)m(w)m(o)i(prepro)s(cessor)d(macros:)574
-2416 y Fj(BARCODE_VERSION)i Fl(\(the)k(string\))e(and)h
-Fj(BARCODE_VERSION_INT)25 b Fl(\(the)31 b(in)m(teger)g(n)m(um)m(b)s
-(er\).)94 2705 y Fi(5)81 b(The)53 b Fd(b)-8 b(ar)g(c)g(o)g(de)65
-b Fi(fron)l(tend)51 b(program)219 2938 y Fl(The)26 b
-Fc(barco)s(de)g Fl(program)g(is)f(a)h(fron)m(t-end)g(to)h(access)h
-(some)e(features)h(of)f(the)g(library)e(from)i(the)g(command)94
-3037 y(line.)63 b(It)38 b(is)g(able)f(to)i(read)f(user)g(supplied)d
-(strings)i(from)h(the)g(command)g(line)e(or)j(a)f(data)h(\014le)e
-(\(standard)94 3137 y(input)29 b(b)m(y)h(default\))g(and)g(enco)s(de)g
-(all)g(of)g(them.)94 3401 y Fk(5.1)69 b(The)44 b(Command)h(Line)219
-3587 y Fc(barco)s(de)30 b Fl(accepts)i(the)e(follo)m(wing)f(options:)94
-3741 y Fj(--help)g(or)h(-h)574 3840 y Fl(Prin)m(t)g(a)h(usage)g
-(summary)e(and)h(exit.)94 3993 y Fj(-i)g(filename)574
-4092 y Fl(Iden)m(tify)35 b(a)h(\014le)f(where)g(strings)f(to)j(b)s(e)e
-(enco)s(ded)g(are)h(read)f(from.)56 b(If)36 b(missing)d(\(and)i(if)g
-Fj(-b)g Fl(is)574 4192 y(not)29 b(used\))f(it)g(defaults)f(to)i
-(standard)e(input.)38 b(Eac)m(h)29 b(data)g(line)e(of)h(the)h(input)d
-(\014le)i(will)d(b)s(e)j(used)574 4292 y(to)k(create)g(one)e(barco)s
-(de)g(output.)94 4444 y Fj(-o)g(filename)574 4544 y Fl(Output)g
-(\014le.)40 b(It)30 b(defaults)f(to)j(standard)d(output.)94
-4696 y Fj(-b)h(string)66 b Fl(Sp)s(ecify)32 b(a)j(single)d(\\barco)s
-(de")i(string)f(to)h(b)s(e)g(enco)s(ded.)50 b(The)33
-b(option)g(can)h(b)s(e)f(used)g(m)m(ultiple)574 4796
-y(times)j(in)e(order)h(to)h(enco)s(de)g(m)m(ultiple)d(strings)i(\(this)
-f(will)f(result)i(in)f(m)m(ulti-page)h(p)s(ostscript)574
-4895 y(output)22 b(or)g(a)g(table)g(of)g(barco)s(des)g(if)f
-Fj(-t)g Fl(is)g(sp)s(eci\014ed\).)37 b(The)21 b(strings)g(m)m(ust)h
-(matc)m(h)h(the)f(enco)s(ding)574 4995 y(c)m(hosen;)29
-b(if)c(it)g(do)s(esn't)h(matc)m(h)h(the)f(program)g(will)d(prin)m(t)i
-(a)h(w)m(arning)f(to)i Fj(stderr)d Fl(and)h(generate)574
-5095 y(\\blank")44 b(output)g(\(although)h(not)f(zero-length\).)84
-b(Please)44 b(note)h(that)g(a)g(string)e(including)574
-5194 y(spaces)31 b(or)g(other)f(sp)s(ecial)f(c)m(haracters)j(m)m(ust)e
-(b)s(e)g(prop)s(erly)e(quoted.)94 5347 y Fj(-e)i(encoding)574
-5446 y Fc(enco)s(ding)j Fl(is)e(the)i(name)f(of)h(the)g(c)m(hosen)g
-(enco)s(ding)e(format)i(b)s(eing)e(used.)46 b(It)32 b(defaults)g(to)h
-(the)574 5546 y(v)-5 b(alue)41 b(of)f(the)h(en)m(vironmen)m(t)g(v)-5
-b(ariable)39 b Fj(BARCODE_ENCODING)d Fl(or)41 b(to)g(auto)h(detection)f
-(if)f(the)574 5645 y(en)m(vironmen)m(t)30 b(is)g(also)g(unset.)p
-eop
-%%Page: 6 7
-6 6 bop 94 -116 a Fl(Chapter)30 b(6:)41 b(Supp)s(orted)29
-b(Enco)s(dings)2417 b(6)94 365 y Fj(-g)30 b(geometry)574
-465 y Fl(The)e(geometry)g(argumen)m(t)g(is)f(of)h(the)f(form)g(\\[)p
-Fj(<)p Fg(width)p Fj(>)i(x)f(<)p Fg(height)p Fj(>)p Fl(])f([)p
-Fj(+)h(<)p Fg(xmar)-5 b(gin)p Fj(>)28 b(+)f(<)p Fg(ymar-)574
-565 y(gin)p Fj(>)p Fl(]")42 b(\(with)f(no)h(in)m(terv)m(ening)f
-(spaces\).)75 b(Unsp)s(eci\014ed)40 b(margin)h(v)-5 b(alues)41
-b(will)e(result)i(in)f(no)574 664 y(margin;)31 b(unsp)s(eci\014ed)d
-(size)j(results)e(in)h(default)g(size.)42 b(The)30 b(sp)s(eci\014ed)f
-(v)-5 b(alues)30 b(represen)m(t)h(prin)m(t)574 764 y(p)s(oin)m(ts)e(b)m
-(y)g(default,)g(and)g(can)g(b)s(e)g(inc)m(hes,)g(millimeters)e(or)i
-(other)h(units)e(according)h(to)h(the)g Fj(-u)574 863
-y Fl(option)j(or)h(the)g Fj(BARCODE_UNIT)c Fl(en)m(vironmen)m(t)j(v)-5
-b(ariable.)49 b(The)33 b(argumen)m(t)h(is)e(used)h(to)h(place)574
-963 y(the)g(prin)m(tout)f(co)s(de)h(on)f(the)h(page.)51
-b(Note)35 b(that)f(an)f(additional)f(white)g(margin)h(of)h(10)g(p)s
-(oin)m(ts)574 1063 y(is)e(added)f(to)i(the)g(prin)m(tout.)45
-b(If)31 b(the)i(option)f(is)f(unsp)s(eci\014ed,)f Fj(BARCODE_GEOMETRY)e
-Fl(is)j(lo)s(ok)m(ed)574 1162 y(up)h(in)f(the)h(en)m(vironmen)m(t,)h
-(if)e(missing)f(a)j(default)f(size)g(and)g(no)g(margin)f(\(but)h(the)h
-(default)e(10)574 1262 y(p)s(oin)m(ts\))f(are)h(used.)94
-1409 y Fj(-t)f(table-geometry)574 1508 y Fl(Used)j(to)g(prin)m(t)e(sev)
-m(eral)i(barco)s(des)f(to)i(a)f(single)e(page,)j(this)d(option)h(is)g
-(mean)m(t)h(to)h(b)s(e)d(used)h(to)574 1608 y(prin)m(t)e(stic)m(k)m
-(ers.)43 b(The)30 b(argumen)m(t)h(is)f(of)h(the)g(form)g(\\)p
-Fj(<)p Fg(c)-5 b(olumns)p Fj(>)32 b(x)e(<)p Fg(lines)p
-Fj(>)h Fl([)p Fj(+)g(<)p Fg(leftmar)-5 b(gin)p Fj(>)31
-b(+)574 1707 y(<)p Fg(b)-5 b(ottommar)g(gin)p Fj(>)39
-b Fl([)p Fj(-)d(<)p Fg(rightmar)-5 b(gin)p Fj(>)38 b
-Fl([)p Fj(-)e(<)p Fg(topmar)-5 b(gin)p Fj(>)p Fl(]]]")39
-b(\(with)c(no)h(in)m(terv)m(ening)f(spaces\);)574 1807
-y(if)42 b(missing,)i(the)f(top)g(and)f(righ)m(t)g(margin)g(will)e
-(default)i(to)i(b)s(e)e(the)h(same)g(as)g(the)g(b)s(ottom)574
-1907 y(and)c(left)g(margin.)66 b(The)38 b(margins)g(are)i(sp)s
-(eci\014ed)d(in)h(prin)m(t)g(p)s(oin)m(ts)g(or)h(in)e(the)j(c)m(hosen)f
-(unit)574 2006 y(\(see)f Fj(-u)d Fl(b)s(elo)m(w\).)59
-b(If)35 b(the)i(option)f(is)f(not)i(sp)s(eci\014ed,)f
-Fj(BARCODE_TABLE)d Fl(is)i(lo)s(ok)m(ed)h(up)g(in)f(the)574
-2106 y(en)m(vironmen)m(t,)d(otherwise)f(no)h(table)f(is)g(prin)m(ted)f
-(and)h(eac)m(h)i(barco)s(de)f(will)c(get)33 b(its)e(o)m(wn)h(page.)574
-2206 y(The)27 b(size)g(\(but)f(not)h(the)g(p)s(osition\))e(of)j(a)f
-(barco)s(de)f(item)h(within)d(a)k(table)e(can)h(also)g(b)s(e)f
-(selected)574 2305 y(using)43 b Fj(-g)g Fl(\(see)i Fj(")p
-Fl(geometry)p Fj(")g Fl(ab)s(o)m(v)m(e\),)k(without)43
-b(struggling)f(with)h(external)h(and)f(in)m(ternal)574
-2405 y(margins.)71 b(I)40 b(still)e(think)h(managemen)m(t)j(of)f
-(geometries)g(in)f(a)h(table)f(is)g(sub)s(optimal,)g(but)g(I)574
-2504 y(can't)32 b(mak)m(e)f(it)f(b)s(etter)h(without)e(in)m(tro)s
-(ducing)f(incompatibilities.)94 2651 y Fj(-m)i(margin\(s\))574
-2751 y Fl(Sp)s(eci\014es)21 b(an)g(in)m(ternal)g(margin)g(for)g(eac)m
-(h)i(stic)m(k)m(er)g(in)d(the)i(table.)38 b(The)21 b(argumen)m(t)i(is)d
-(of)i(the)g(form)574 2850 y(\\)p Fj(<)p Fg(xmar)-5 b(gin)p
-Fj(>,<)p Fg(ymar)g(gin)p Fj(>)p Fl(")35 b(and)c(the)g(margin)g(is)g
-(applied)e(symmetrically)h(to)i(the)g(stic)m(k)m(er.)45
-b(If)574 2950 y(unsp)s(eci\014ed,)28 b(the)h(en)m(vironmen)m(t)g(v)-5
-b(ariable)28 b Fj(BARCODE_MARGIN)e Fl(is)i(used)h(or)g(a)h(default)e
-(in)m(ternal)574 3050 y(margin)i(of)g(10)i(p)s(oin)m(ts)d(is)g(used.)94
-3196 y Fj(-n)384 b Fl(\\Numeric")31 b(output:)40 b(don't)31
-b(prin)m(t)e(the)h(ASCI)s(I)f(form)h(of)g(the)h(co)s(de,)g(only)e(the)i
-(bars.)94 3343 y Fj(-c)384 b Fl(No)35 b(c)m(hec)m(ksum)f(c)m(haracter)h
-(\(for)f(enco)s(dings)e(that)j(allo)m(w)e(it,)h(lik)m(e)f(co)s(de)h
-(39,)h(other)f(co)s(des,)h(lik)m(e)574 3442 y(UPC)c(or)f(EAN,)h(ignore)
-f(this)f(option\).)94 3589 y Fj(-E)384 b Fl(Encapsulated)32
-b(p)s(ostscript)f(\(default)h(is)g(normal)f(p)s(ostscript\).)47
-b(When)32 b(the)h(output)f(is)f(gener-)574 3689 y(ated)h(as)e(EPS)g
-(only)f(one)i(barco)s(de)f(is)f(enco)s(ded.)94 3835 y
-Fj(-P)384 b Fl(PCL)35 b(output.)56 b(Please)36 b(note)g(that)g(the)f(Y)
-h(direction)e(go)s(es)i(from)f(top)h(to)g(b)s(ottom)g(for)f(PCL,)574
-3935 y(and)30 b(the)h(origin)e(for)h(an)g(image)h(is)e(the)i(top-left)f
-(corner)h(instead)e(of)i(the)f(b)s(ottom-left)94 4081
-y Fj(-p)g(pagesize)574 4181 y Fl(Sp)s(ecify)44 b(a)h(non-default)f
-(page)i(size.)85 b(The)45 b(page)h(size)f(can)g(b)s(e)f(sp)s(eci\014ed)
-g(in)g(millimeters,)574 4281 y(inc)m(hes)34 b(or)g(plain)e(n)m(um)m(b)s
-(ers)g(\(for)i(example:)48 b Fj("210x297mm")p Fl(,)32
-b Fj("8.5x11in")p Fl(,)g Fj("595x842")p Fl(\).)50 b(A)574
-4380 y(page)27 b(sp)s(eci\014cation)d(as)i(n)m(um)m(b)s(ers)e(will)f(b)
-s(e)i(in)m(terpreted)g(according)g(to)i(the)f(curren)m(t)f(unit)f(sp)s
-(ec-)574 4480 y(i\014cation)33 b(\(see)h Fj(-u)e Fl(b)s(elo)m(w\).)49
-b(If)33 b(libpap)s(er)d(is)i(a)m(v)-5 b(ailable,)33 b(y)m(ou)h(can)f
-(also)g(sp)s(ecify)f(the)h(page)h(size)574 4580 y(with)40
-b(its)g(name,)k(lik)m(e)d Fj("A3")e Fl(or)i Fj("letter")e
-Fl(\(libpap)s(er)f(is)i(a)h(standard)g(comp)s(onen)m(t)g(of)g(De-)574
-4679 y(bian)d(GNU/Lin)m(ux,)k(but)d(ma)m(y)h(b)s(e)e(missing)f
-(elsewhere\).)68 b(The)39 b(default)f(page)i(size)g(is)e(y)m(our)574
-4779 y(system-wide)30 b(default)g(if)f(libpap)s(er)e(is)j(there,)h(A4)g
-(otherwise.)94 4925 y Fj(-u)f(unit)162 b Fl(Cho)s(ose)32
-b(the)f(unit)f(used)g(in)g(size)i(sp)s(eci\014cations.)42
-b(Accepted)32 b(v)-5 b(alues)31 b(are)g(\\mm",)i(\\cm",)f(\\in")574
-5025 y(and)37 b(\\pt".)61 b(By)37 b(default,)h(the)f(program)f(will)f
-(c)m(hec)m(k)j Fj(BARCODE_UNIT)33 b Fl(in)j(the)h(en)m(vironmen)m(t,)
-574 5125 y(and)c(assume)g(p)s(oin)m(ts)g(otherwise)f(\(this)h(b)s(eha)m
-(viour)f(is)g(compatible)h(with)f(0.92)j(and)d(previous)574
-5224 y(v)m(ersions.)50 b(If)33 b Fj(-u)g Fl(app)s(ears)g(more)g(than)g
-(once,)j(eac)m(h)e(instance)f(will)e(mo)s(di\014ed)h(the)h(b)s(eha)m
-(viour)574 5324 y(for)h(the)g(argumen)m(ts)g(at)g(its)f(righ)m(t,)i(as)
-f(the)g(command)f(line)f(is)h(pro)s(cesses)g(left)h(to)g(righ)m(t.)50
-b(The)574 5424 y(program)32 b(in)m(ternally)f(w)m(orks)h(with)f(p)s
-(oin)m(ts,)h(and)f(an)m(y)i(size)f(is)f(appro)m(ximated)h(to)h(the)f
-(nearest)574 5523 y(m)m(ultiple)c(of)j(one)f(p)s(oin)m(t.)40
-b(The)30 b Fj(-u)f Fl(option)h(a\013ect)i Fj(-g)e Fl(\(geometry\),)i
-Fj(-t)e Fl(\(table\))h(and)e Fj(-p)h Fl(\(page)574 5623
-y(size\).)p eop
-%%Page: 7 8
-7 7 bop 94 -116 a Fl(Chapter)30 b(6:)41 b(Supp)s(orted)29
-b(Enco)s(dings)2417 b(7)94 365 y Fi(6)81 b(Supp)t(orted)51
-b(Enco)t(dings)219 558 y Fl(The)31 b(program)h(enco)s(des)g(text)g
-(strings)f(passed)g(either)g(on)h(the)g(command)g(line)e(\(with)g(-b\))
-i(or)g(retriev)m(ed)94 658 y(from)38 b(standard)f(input.)61
-b(The)37 b(text)i(represen)m(tation)f(is)f(in)m(terpreted)g(according)g
-(to)i(the)f(follo)m(wing)e(rules.)94 758 y(When)42 b(auto-detection)g
-(of)g(the)f(enco)s(ding)f(is)h(enabled)f(\(i.e,)k(no)e(explicit)d(enco)
-s(ding)h(t)m(yp)s(e)i(is)e(sp)s(eci\014ed\),)94 857 y(the)c(enco)s
-(ding)e(t)m(yp)s(es)h(are)h(scanned)f(to)h(\014nd)d(one)j(that)g(can)f
-(digest)g(the)g(text)i(string.)54 b(The)35 b(follo)m(wing)e(list)94
-957 y(of)h(supp)s(orted)e(t)m(yp)s(es)h(is)g(sorted)g(in)g(the)g(same)h
-(order)f(the)h(library)d(uses)i(when)f(auto-detecting)k(a)d(suitable)94
-1056 y(enco)s(ding)d(for)g(a)h(string.)94 1193 y Fh(EAN)282
-b Fl(The)36 b(EAN)h(fron)m(tend)f(is)g(similar)d(to)38
-b(UPC;)e(it)g(accepts)i(strings)d(of)i(digits,)g(12)g(or)g(7)f(c)m
-(harac-)574 1293 y(ters)c(long.)41 b(Strings)30 b(of)h(13)g(or)g(8)g(c)
-m(haracters)i(are)e(accepted)h(if)e(the)h(pro)m(vided)f(c)m(hec)m(ksum)
-h(digit)574 1393 y(is)40 b(correct.)73 b(I)40 b(exp)s(ect)i(most)f
-(users)e(to)j(feed)e(input)f(without)h(a)h(c)m(hec)m(ksum,)j(though.)71
-b(The)574 1492 y(add-2)36 b(and)g(add-5)g(extension)f(are)h(accepted)i
-(for)d(b)s(oth)g(the)i(EAN-13)g(and)e(the)h(EAN-8)h(en-)574
-1592 y(co)s(dings.)42 b(The)30 b(follo)m(wing)f(are)j(example)e(of)h(v)
--5 b(alid)29 b(input)g(strings:)41 b(\\)p Fj(123456789012)p
-Fl(")28 b(\(EAN-)574 1692 y(13\),)43 b(\\)p Fj(1234567890128)p
-Fl(")37 b(\(EAN-13)k(wih)c(c)m(hec)m(ksum\),)43 b(\\)p
-Fj(1234567)p Fl(")38 b(\(EAN-8\),)44 b(\\)p Fj(12345670)574
-1791 y(12345)p Fl(")23 b(\(EAN-8)h(with)e(c)m(hec)m(ksum)h(and)g
-(add-5\),)i(\\)p Fj(123456789012)45 b(12)p Fl(")23 b(\(EAN-13)i(with)c
-(add-)574 1891 y(2\),)32 b(\\)p Fj(123456789012)45 b(12345)p
-Fl(")29 b(\(EAN-13)j(with)d(add-5\).)94 2028 y Fh(UPC)284
-b Fl(The)35 b(UPC)g(fron)m(tend)g(accepts)i(only)d(strings)g(made)i(up)
-e(of)h(digits)f(\(and,)j(if)d(a)i(supplemen)m(tal)574
-2127 y(enco)s(ding)27 b(is)g(used,)g(a)h(blank)f(to)h(separate)g(it\).)
-40 b(It)28 b(accepts)h(strings)d(of)i(11)g(or)g(12)g(digits)f(\(UPC-)
-574 2227 y(A\))k(and)f(6)h(or)f(7)h(or)f(8)h(digits)e(\(UPC-E\).)574
-2345 y(The)c(12th)h(digit)e(of)h(UPC-A)g(is)f(the)h(c)m(hec)m(ksum)h
-(and)e(is)g(added)h(b)m(y)g(the)g(library)d(if)i(not)i(sp)s(eci\014ed)
-574 2445 y(in)k(the)h(input;)e(if)h(it)h(is)f(sp)s(eci\014ed,)f(it)h(m)
-m(ust)h(b)s(e)f(the)h(righ)m(t)g(c)m(hec)m(ksum)g(or)g(the)g(co)s(de)g
-(is)f(rejected)574 2545 y(as)38 b(in)m(v)-5 b(alid.)59
-b(F)-8 b(or)38 b(UPC-E,)f(6)h(digit)e(are)i(considered)e(to)i(b)s(e)e
-(the)i(middle)d(part)i(of)g(the)g(co)s(de,)574 2644 y(a)i(leading)d(0)i
-(is)f(assumed)g(and)g(the)h(c)m(hec)m(ksum)g(is)f(added;)k(7)d(digits)e
-(are)i(either)f(considered)574 2744 y(the)30 b(initial)d(part)i
-(\(leading)g(digit)f(0)i(or)g(1,)g(c)m(hec)m(ksum)g(missing\))e(or)i
-(the)f(\014nal)g(part)g(\(c)m(hec)m(ksum)574 2844 y(sp)s(eci\014ed,)f
-(leading)g(0)i(assumed\);)g(8)f(digits)f(are)i(considered)e(to)i(b)s(e)
-e(the)i(complete)f(co)s(de,)h(with)574 2943 y(leading)k(0)i(or)f(1)g
-(and)g(c)m(hec)m(ksum.)55 b(F)-8 b(or)36 b(b)s(oth)f(UPC-A)g(and)f
-(UPC-E,)i(a)f(trailing)e(string)h(of)i(2)574 3043 y(digits)30
-b(or)h(5)g(digits)e(is)h(accepted)i(as)f(w)m(ell.)40
-b(Therefore,)31 b(the)g(follo)m(wing)e(are)i(examples)g(of)g(v)-5
-b(alid)574 3142 y(strings)41 b(that)h(can)f(b)s(e)g(enco)s(ded)g(as)h
-(UPC:)f(\\)p Fj(01234567890)p Fl(")e(\(UPC-A\))j(\\)p
-Fj(012345678905)p Fl(")574 3242 y(\(UPC-A)33 b(with)d(c)m(hec)m
-(ksum\),)k(\\)p Fj(012345)p Fl(")d(\(UPC-E\),)i(\\)p
-Fj(01234567890)45 b(12)p Fl(")32 b(\(UPC-A,)g(add-2\))574
-3342 y(and)21 b(\\)p Fj(01234567890)45 b(12345)p Fl(")20
-b(\(UPC-A,)i(add-5\),)h(\\)p Fj(0123456)47 b(12)p Fl(")20
-b(\(UPC-E,)i(add-2\).)38 b(Please)574 3441 y(note)24
-b(that)f(when)f(setting)h Fj(BARCODE_ANY)c Fl(to)24 b(auto-detect)h
-(the)e(enco)s(ding)f(to)h(b)s(e)f(used,)i(12-digit)574
-3541 y(strings)32 b(and)h(7-digit)f(strings)g(will)e(alw)m(a)m(ys)k(b)s
-(e)e(iden)m(ti\014ed)f(as)i(EAN.)h(This)d(b)s(ecause)i(I)f(exp)s(ect)
-574 3641 y(most)h(user)f(to)h(pro)m(vide)f(input)e(without)i(a)g(c)m
-(hec)m(ksum.)48 b(If)32 b(y)m(ou)h(need)f(to)h(sp)s(ecify)e(UPC-with-)
-574 3740 y(c)m(hec)m(ksum)h(as)g(input)d(y)m(ou)i(m)m(ust)g(explicitly)
-e(set)j Fj(BARCODE_UPC)c Fl(as)j(a)g(\015ag)h(or)f(use)g
-Fj(-e)47 b(upc)30 b Fl(on)574 3840 y(the)h(command)f(line.)94
-3977 y Fh(ISBN)264 b Fl(ISBN)26 b(n)m(um)m(b)s(ers)e(are)i(enco)s(ded)f
-(as)h(EAN-13)g(sym)m(b)s(ols,)g(with)e(an)h(optional)g(add-5)g
-(trailer.)38 b(The)574 4076 y(ISBN)27 b(fron)m(tend)f(of)h(the)g
-(library)e(accepts)j(real)e(ISBN)h(n)m(um)m(b)s(ers)e(and)h(deals)h
-(with)e(an)m(y)i(h)m(yphen)574 4176 y(and,)h(if)f(presen)m(t,)h(the)g
-(ISBN)f(c)m(hec)m(ksum)i(c)m(haracter)g(b)s(efore)e(enco)s(ding)f
-(data.)41 b(V)-8 b(alid)26 b(represen-)574 4276 y(tations)j(for)e(ISBN)
-h(strings)e(are)j(for)e(example:)40 b(\\)p Fj(1-56592-292-1)p
-Fl(",)25 b(\\)p Fj(3-89721-122-X)p Fl(")h(and)574 4375
-y(\\)p Fj(3-89721-122-X)45 b(06900)p Fl(".)94 4512 y
-Fh(co)s(de)31 b(128-B)574 4612 y Fl(This)37 b(enco)s(ding)g(can)h
-(represen)m(t)g(all)f(of)h(the)h(prin)m(ting)c(ASCI)s(I)i(c)m
-(haracters,)42 b(from)37 b(the)h(space)574 4711 y(\(32\))32
-b(to)g(DEL)e(\(127\).)43 b(The)30 b(c)m(hec)m(ksum)h(digit)e(is)g
-(mandatory)i(in)e(this)g(enco)s(ding.)94 4848 y Fh(co)s(de)i(128-C)574
-4948 y Fl(The)h(\\C")g(v)-5 b(ariation)31 b(of)h(Co)s(de-128)h(uses)e
-(Co)s(de-128)i(sym)m(b)s(ols)d(to)j(represen)m(t)f(t)m(w)m(o)h(digits)d
-(at)j(a)574 5048 y(time)28 b(\(Co)s(de-128)g(is)f(made)g(up)f(of)i(104)
-g(sym)m(b)s(ols)e(whose)i(in)m(terpretation)e(is)h(con)m(trolled)g(b)m
-(y)g(the)574 5147 y(start)35 b(sym)m(b)s(ol)e(b)s(eing)g(used\).)52
-b(Co)s(de)34 b(128-C)h(is)e(th)m(us)h(the)h(most)f(compact)i(w)m(a)m(y)
-f(to)g(represen)m(t)574 5247 y(an)m(y)41 b(ev)m(en)h(n)m(um)m(b)s(er)d
-(of)i(digits.)70 b(The)40 b(enco)s(der)g(refuses)g(to)h(deal)f(with)g
-(an)g(o)s(dd)g(n)m(um)m(b)s(er)f(of)574 5347 y(digits)24
-b(b)s(ecause)h(the)g(caller)f(is)g(exp)s(ected)h(to)h(pro)m(vide)e
-(prop)s(er)f(padding)g(to)j(an)f(ev)m(en)g(n)m(um)m(b)s(er)f(of)574
-5446 y(digits.)38 b(\(Since)23 b(Co)s(de-128)i(includes)d(con)m(trol)j
-(sym)m(b)s(ols)d(to)j(switc)m(h)f(c)m(harset,)j(it)c(is)g
-(theoretically)574 5546 y(p)s(ossible)29 b(to)j(represen)m(t)f(the)h(o)
-s(dd)e(digit)g(as)h(a)g(Co)s(de)g(128-A)i(or)e(128-B)i(sym)m(b)s(ol,)e
-(but)f(this)g(to)s(ol)574 5645 y(do)s(esn't)h(curren)m(tly)e(implemen)m
-(t)g(this)g(option\).)p eop
-%%Page: 8 9
-8 8 bop 94 -116 a Fl(Chapter)30 b(6:)41 b(Supp)s(orted)29
-b(Enco)s(dings)2417 b(8)94 365 y Fh(co)s(de)31 b(128)h(ra)m(w)574
-465 y Fl(Co)s(de-128)24 b(output)d(represen)m(ted)h(sym)m(b)s(ol-b)m
-(y-sym)m(b)s(ol)e(in)h(the)h(input)f(string.)36 b(T)-8
-b(o)23 b(o)m(v)m(erride)f(part)574 565 y(of)27 b(the)g(problems)d
-(outlined)h(b)s(elo)m(w)g(in)g(sp)s(ecifying)f(co)s(de128)k(sym)m(b)s
-(ols,)e(this)f(pseudo-enco)s(ding)574 664 y(allo)m(ws)42
-b(the)h(used)f(to)h(sp)s(ecify)e(a)i(list)e(of)i(co)s(de128)h(sym)m(b)s
-(ols)d(separated)i(b)m(y)g(spaces.)77 b(Eac)m(h)574 764
-y(sym)m(b)s(ol)31 b(is)g(represen)m(ted)h(b)m(y)g(a)g(n)m(um)m(b)s(er)f
-(in)g(the)h(range)g(0-105.)48 b(The)31 b(list)g(should)f(include)g(the)
-574 863 y(leading)e(c)m(haracter.The)i(c)m(hec)m(ksum)g(and)e(the)h
-(stop)g(c)m(haracter)h(are)f(automatically)g(added)f(b)m(y)574
-963 y(the)k(library)-8 b(.)42 b(Most)33 b(lik)m(ely)d(this)g
-(pseudo-enco)s(ding)g(will)f(b)s(e)i(used)f(with)g Fj(BARCODE_NO_ASCII)
-574 1063 y Fl(and)g(some)h(external)f(program)g(to)i(supply)27
-b(the)k(prin)m(ted)e(text.)94 1245 y Fh(co)s(de)37 b(39)180
-b Fl(The)36 b(co)s(de-39)h(standard)f(can)g(enco)s(de)g(upp)s(ercase)g
-(letters,)i(digits,)e(the)g(blank)f(space,)k(plus,)574
-1345 y(min)m(us,)d(dot,)i(star,)f(dollar,)f(slash,)g(p)s(ercen)m(t.)57
-b(An)m(y)36 b(string)f(that)h(is)f(only)g(comp)s(osed)g(of)h(suc)m(h)
-574 1445 y(c)m(haracters)j(is)e(accepted)h(b)m(y)g(the)f(co)s(de-39)i
-(enco)s(der.)61 b(T)-8 b(o)38 b(a)m(v)m(oid)g(lo)s(osing)e
-(information,)i(the)574 1544 y(enco)s(der)c(refuses)g(to)h(enco)s(de)f
-(mixed-case)g(strings)f(\(a)i(lo)m(w)m(ercase)g(string)e(is)g
-(nonetheless)h(ac-)574 1644 y(cepted)d(as)g(a)g(shortcut,)f(but)g(is)f
-(enco)s(ded)h(as)h(upp)s(ercase\).)94 1826 y Fh(in)m(terlea)m(v)m(ed)g
-(2)g(of)g(5)574 1926 y Fl(This)36 b(enco)s(ding)g(can)i(only)e
-(represen)m(t)h(an)g(ev)m(en)h(n)m(um)m(b)s(er)e(of)h(digits)f(\(o)s
-(dd)h(digits)f(are)h(repre-)574 2026 y(sen)m(ted)c(b)m(y)g(bars,)f(and)
-g(ev)m(en)h(digits)e(b)m(y)i(the)f(in)m(terlea)m(ving)g(spaces\).)48
-b(The)32 b(name)g(stresses)h(the)574 2125 y(fact)i(that)g(t)m(w)m(o)g
-(of)f(the)g(\014v)m(e)g(items)f(\(bars)h(or)f(spaces\))i(allo)s(cated)f
-(to)g(eac)m(h)h(sym)m(b)s(ol)e(are)h(wide,)574 2225 y(while)41
-b(the)i(rest)g(are)g(narro)m(w.)78 b(The)42 b(c)m(hec)m(ksum)h(digit)f
-(is)g(optional)f(\(can)j(b)s(e)e(disabled)e(via)574 2325
-y Fj(BARCODE_NO_CHECKSUM)p Fl(\).)f(Since)31 b(the)h(n)m(um)m(b)s(er)e
-(of)h(digits,)g(including)d(the)j(c)m(hec)m(ksum,)i(m)m(ust)574
-2424 y(b)s(e)40 b(ev)m(en,)k(a)c(leading)f(zero)i(is)e(inserted)g(in)g
-(the)i(string)e(b)s(eing)g(enco)s(ded)g(if)h(needed)f(\(this)h(is)574
-2524 y(sp)s(eci\014cally)29 b(stated)i(in)e(the)h(sp)s(ecs)g(I)g(ha)m
-(v)m(e)i(access)g(to\).)94 2707 y Fh(co)s(de)f(128)136
-b Fl(Automatic)31 b(selection)g(b)s(et)m(w)m(een)g(alphab)s(et)f(A,)h
-(B)g(and)f(C)h(of)g(the)g(Co)s(de-128)h(standard.)41
-b(This)574 2806 y(enco)s(ding)31 b(can)i(represen)m(t)f(all)f(ASCI)s(I)
-f(sym)m(b)s(ols,)i(from)f(0)h(\(NUL\))h(to)g(127)g(\(DEL\),)g(as)g(w)m
-(ell)e(as)574 2906 y(four)36 b(sp)s(ecial)e(sym)m(b)s(ols,)i(named)f
-(F1,)j(F2,)g(F3,)g(F4.)58 b(The)35 b(set)h(of)g(sym)m(b)s(ols)f(a)m(v)
--5 b(ailable)35 b(in)f(this)574 3005 y(enco)s(ding)g(is)f(not)i(easily)
-e(represen)m(ted)i(as)f(input)e(to)k(the)e Fg(b)-5 b(ar)g(c)g(o)g(de)44
-b Fl(library)-8 b(,)33 b(so)i(the)f(follo)m(wing)574
-3105 y(con)m(v)m(en)m(tion)24 b(is)e(used.)38 b(In)22
-b(the)g(input)f(string,)j(whic)m(h)d(is)h(a)h(C-language)g(n)m
-(ull-terminated)e(string,)574 3205 y(the)26 b(NUL)g(c)m(har)f(is)g
-(represen)m(ted)g(b)m(y)h(the)f(v)-5 b(alue)25 b(128)i(\(0x80,)h
-(0200\))g(and)d(the)g(F1-F4)i(c)m(haracters)574 3304
-y(are)f(represen)m(ted)g(b)m(y)f(the)h(v)-5 b(alues)25
-b(193-196)k(\(0xc1-0xc4,)h(0301-0304\).)43 b(The)25 b(v)-5
-b(alues)25 b(ha)m(v)m(e)i(b)s(een)574 3404 y(c)m(hosen)k(to)h(ease)f
-(their)e(represen)m(tation)i(as)f(escap)s(e)h(sequences.)574
-3545 y(Since)39 b(the)h(shell)d(do)s(esn't)j(seem)f(to)i(in)m(terpret)d
-(escap)s(e)i(sequences)g(on)f(the)h(command)f(line,)574
-3645 y(the)e Fj(")p Fl(-b)p Fj(")e Fl(option)g(cannot)h(b)s(e)f(easily)
-g(used)g(to)i(designate)f(the)g(strings)f(to)h(b)s(e)f(enco)s(ded.)57
-b(As)574 3744 y(a)44 b(w)m(ork)-5 b(around)42 b(y)m(ou)i(can)f(resort)h
-(to)f(the)h(command)f Fj(echo)p Fl(,)i(either)e(within)d(bac)m(k-tic)m
-(ks)45 b(or)574 3844 y(used)34 b(separately)g(to)g(create)i(a)e(\014le)
-f(that)i(is)e(then)g(fed)h(to)h(the)f(standard-input)d(of)j
-Fg(b)-5 b(ar)g(c)g(o)g(de)44 b Fl({)574 3944 y(assuming)34
-b(y)m(our)h Fj(echo)f Fl(command)h(pro)s(cesses)g(escap)s(e)h
-(sequences.)56 b(The)34 b(newline)f(c)m(haracter)574
-4043 y(is)d(esp)s(ecially)f(though)h(to)h(enco)s(de)f(\(but)g(not)h
-(imp)s(ossible)c(unless)h(y)m(ou)j(use)f(a)h Fj(csh)e
-Fl(v)-5 b(arian)m(t.)574 4184 y(These)35 b(problems)f(only)g(apply)g
-(to)i(the)f(command-line)f(to)s(ol;)j(the)f(use)e(of)i(library)c
-(functions)574 4284 y(do)s(esn't)44 b(giv)m(e)f(an)m(y)h(problem.)78
-b(In)42 b(needed,)47 b(y)m(ou)c(can)h(use)f(the)h(\\)p
-Fg(c)-5 b(o)g(de)46 b(128)f(r)-5 b(aw)10 b Fl(")45 b(pseudo-)574
-4384 y(enco)s(ding)33 b(to)h(represen)m(t)g(co)s(de128)h(sym)m(b)s(ols)
-d(b)m(y)h(their)g(n)m(umerical)f(v)-5 b(alue.)50 b(This)31
-b(enco)s(ding)i(is)574 4483 y(used)28 b(late)h(in)e(the)h
-(auto-selection)i(mec)m(hanism)d(b)s(ecause)h(\(almost\))i(an)m(y)e
-(input)f(string)g(can)i(b)s(e)574 4583 y(represen)m(ted)i(using)e(co)s
-(de128.)94 4765 y Fh(Co)s(dabar)138 b Fl(Co)s(dabar)33
-b(can)h(enco)s(de)g(the)g(ten)f(digits)g(and)g(a)h(few)f(sp)s(ecial)f
-(sym)m(b)s(ols)g(\(min)m(us,)i(plus,)e(dollar,)574 4865
-y(colon,)k(bar,)g(dot\).)54 b(The)34 b(c)m(haracters)i(\\)p
-Fj(A)p Fl(",)h(\\)p Fj(B)p Fl(",)f(\\)p Fj(C)p Fl(")f(and)g(\\)p
-Fj(D)p Fl(")g(are)g(used)f(to)h(represen)m(t)g(four)574
-4965 y(di\013eren)m(t)30 b(start/stop)i(c)m(haracters.)42
-b(The)30 b(input)e(string)i(to)h(the)f(barco)s(de)h(library)d(can)i
-(include)574 5064 y(the)d(start)g(and)f(stop)h(c)m(haracters)h(or)e
-(not)h(include)d(them)j(\(in)e(whic)m(h)h(case)h(\\)p
-Fj(A)p Fl(")g(is)f(used)g(as)g(start)574 5164 y(and)38
-b(\\)p Fj(B)p Fl(")g(as)g(stop\).)64 b(Start)38 b(and)f(stop)h(c)m
-(haracters)h(in)e(the)h(input)e(string)g(can)j(b)s(e)e(either)g(all)574
-5264 y(lo)m(w)m(ercase)32 b(or)f(all)e(upp)s(ercase)g(and)h(are)h(alw)m
-(a)m(ys)g(prin)m(ted)e(as)h(upp)s(ercase.)94 5446 y Fh(Plessey)192
-b Fl(Plessey)39 b(barco)s(des)f(can)h(enco)s(de)g(all)f(the)h
-(hexadecimal)f(digits.)64 b(Alphab)s(etic)37 b(digits)g(in)h(the)574
-5546 y(input)25 b(string)g(m)m(ust)h(either)g(b)s(e)f(all)g(lo)m(w)m
-(ercase)j(or)e(all)f(upp)s(ercase.)38 b(The)26 b(output)g(text)h(is)e
-(alw)m(a)m(ys)574 5645 y(upp)s(ercase.)p eop
-%%Page: 9 10
-9 9 bop 94 -116 a Fl(Chapter)30 b(7:)41 b(PCL)30 b(Output)2761
-b(9)94 365 y Fh(MSI)313 b Fl(MSI)39 b(can)g(only)e(enco)s(de)i(the)g
-(decimal)e(digits.)64 b(While)38 b(the)h(standard)e(sp)s(eci\014es)h
-(either)g(one)574 465 y(or)e(t)m(w)m(o)h(c)m(hec)m(k)g(digits,)e(the)h
-(curren)m(t)f(implemen)m(tation)f(in)g(this)g(library)f(only)i
-(generates)i(one)574 565 y(c)m(hec)m(k)32 b(digit.)94
-701 y Fh(co)s(de)f(93)180 b Fl(The)30 b(co)s(de-93)h(standard)f(can)g
-(nativ)m(ely)g(enco)s(de)g(48)h(di\013eren)m(t)e(c)m(haracters,)j
-(including)27 b(upp)s(er-)574 801 y(case)39 b(letters,)h(digits,)e(the)
-g(blank)e(space,)k(plus,)e(min)m(us,)g(dot,)h(star,)h(dollar,)e(slash,)
-h(p)s(ercen)m(t,)574 901 y(as)31 b(w)m(ell)f(as)g(\014v)m(e)h(sp)s
-(ecial)e(c)m(haracters:)43 b(a)30 b(start/stop)i(delimiter)c(and)i
-(four)g Fj(")p Fl(shift)f(c)m(haracters)p Fj(")574 1000
-y Fl(used)f(for)f(extended)h(enco)s(ding.)39 b(Using)27
-b(this)g Fj(")p Fl(extended)g(enco)s(ding)p Fj(")g Fl(metho)s(d,)h(an)m
-(y)g(standard)574 1100 y(7-bit)34 b(ASCI)s(I)e(c)m(haracter)k(can)e(b)s
-(e)f(enco)s(ded,)i(but)e(it)h(tak)m(es)h(up)e(t)m(w)m(o)i(sym)m(b)s(ol)
-d(lengths)i(in)e(bar-)574 1200 y(co)s(de)k(if)f(the)g(c)m(haracter)j
-(is)c(not)i(nativ)m(ely)f(supp)s(orted)f(\(one)i(of)g(the)f(48\).)58
-b(The)35 b(enco)s(der)g(here)574 1299 y(fully)24 b(implemen)m(ts)g(the)
-i(co)s(de)g(93)g(enco)s(ding)f(standard.)38 b(An)m(y)26
-b(c)m(haracters)h(nativ)m(ely)e(supp)s(orted)574 1399
-y(\(A-Z,)35 b(0-9,)h Fj(")p Fl(.)p Fj(+)p Fl(-/$&\045)p
-Fj(")p Fl(\))e(will)d(b)s(e)j(enco)s(ded)f(as)h(suc)m(h)g(-)g(for)f(an)
-m(y)h(other)h(c)m(haracters)g(\(suc)m(h)f(as)574 1498
-y(lo)m(w)m(er)h(case)g(letters,)g(brac)m(k)m(ets,)h(paren)m(theses,)g
-(etc.\),)h(the)d(enco)s(der)f(will)f(rev)m(ert)i(to)h(extended)574
-1598 y(enco)s(ding.)68 b(As)40 b(a)g(note,)j(the)d(option)f(to)h
-(exclude)f(the)h(c)m(hec)m(ksum)g(will)d(eliminate)i(the)h(t)m(w)m(o)
-574 1698 y(mo)s(dulo-47)f(c)m(hec)m(ksums)g(\(called)g(C)f(and)g(K\))h
-(from)f(the)h(barco)s(de,)i(but)d(this)g(probably)f(will)574
-1797 y(mak)m(e)c(it)e(unreadable)e(b)m(y)i(99\045)h(of)g(all)e
-(scanning)g(systems.)43 b(These)31 b(c)m(hec)m(ksums)h(are)g(sp)s
-(eci\014ed)574 1897 y(to)f(b)s(e)e(used)g(at)i(the)f(\014rm)m(w)m(are)f
-(lev)m(el,)h(and)f(their)g(absence)h(will)d(b)s(e)j(in)m(terpreted)f
-(as)h(an)f(in)m(v)-5 b(alid)574 1997 y(barco)s(de.)94
-2266 y Fi(7)81 b(PCL)53 b(Output)219 2459 y Fl(While)28
-b(the)h(default)g(output)f(is)g(P)m(ostscript)i(\(p)s(ossibly)c(EPS\),)
-j(and)g(P)m(ostscript)g(can)g(b)s(e)f(p)s(ost-pro)s(cessed)94
-2558 y(to)40 b(almost)e(an)m(ything,)i(it)e(is)f(sometimes)i(desirable)
-d(to)j(create)h(output)e(directly)f(usable)g(b)m(y)i(the)f(sp)s
-(eci\014c)94 2658 y(prin)m(ter)33 b(at)h(hand.)50 b(PCL)33
-b(is)g(curren)m(tly)f(supp)s(orted)g(as)i(an)g(output)f(format)h(for)g
-(this)e(reason.)51 b(Please)34 b(note)94 2758 y(that)25
-b(the)f(Y)g(co)s(ordinate)g(for)f(PCL)h(go)s(es)g(from)f(top)i(to)f(b)s
-(ottom,)i(while)c(for)h(P)m(ostscript)h(it)g(go)s(es)g(from)g(b)s
-(ottom)94 2857 y(to)35 b(top.)51 b(Consisten)m(tly)-8
-b(,)34 b(while)d(in)i(P)m(ostscript)g(y)m(ou)h(sp)s(ecify)f(the)g(b)s
-(ottom-left)i(corner)e(as)h(origin,)f(for)h(PCL)94 2957
-y(y)m(ou)d(sp)s(ecify)e(the)i(top-left)f(corner.)219
-3075 y(Barco)s(de)c(output)e(for)h(PCL)f(Prin)m(ters)g(\(HP)h(LaserJet)
-g(and)g(compatibles\),)g(w)m(as)h(dev)m(elop)s(ed)e(using)f(PCL5)94
-3175 y(Reference)32 b(man)m(uals)d(from)h(HP)-8 b(.)31
-b(that)g(really)e(refers)h(to)h(these)g(prin)m(ters:)169
-3293 y Fb(\017)60 b Fl(LaserJet)31 b(I)s(I)s(I,)f(I)s(I)s(I)e(P)-8
-b(,)31 b(I)s(I)s(I)e(D,)i(I)s(I)s(I)e(Si,)169 3411 y
-Fb(\017)60 b Fl(LaserJet)31 b(4)g(family)169 3529 y Fb(\017)60
-b Fl(LaserJet)31 b(5)g(family)169 3648 y Fb(\017)60 b
-Fl(LaserJet)31 b(6)g(family)169 3766 y Fb(\017)60 b Fl(Color)30
-b(LaserJet)169 3884 y Fb(\017)60 b Fl(DeskJet)32 b(1200)g(and)e(1600.)
-219 4021 y(Ho)m(w)m(ev)m(er,)g(barco)s(de)e(prin)m(ting)d(uses)i(a)h(v)
-m(ery)g(small)e(subset)h(of)g(PCL,)g(probably)f(also)h(LaserJet)h(I)s
-(I)f(should)94 4121 y(prin)m(t)i(it)h(without)g(problem,)f(but)g(the)i
-(resulting)e(text)i(ma)m(y)g(b)s(e)f(horrible.)219 4239
-y(The)22 b(only)g(real)h(di\013erence)f(from)h(one)g(prin)m(ter)e(to)j
-(another)f(really)f(dep)s(ends)f(on)h(whic)m(h)g(fon)m(t)h(are)h(a)m(v)
--5 b(ailable)94 4338 y(in)30 b(the)g(prin)m(ter,)f(used)h(in)f(prin)m
-(ting)f(the)j(lab)s(el)d(asso)s(ciated)j(to)g(the)g(bars)f(\(if)f
-(requested\).)219 4457 y(Earlier)j(LaserJet)j(supp)s(orts)d(only)h
-(bitmaps)f(fon)m(ts,)k(so)e(these)g(are)h(not)f Fj(")p
-Fl(scalable)p Fj(")p Fl(.)50 b(\(Ljet)35 b(I)s(I)e(?\),)i(Also)94
-4556 y(these)c(fon)m(ts,)f(when)f(a)m(v)-5 b(ailable,)29
-b(ha)m(v)m(e)i(a)f(sp)s(eci\014ed)e(direction,)h(and)g(not)h(all)f(of)g
-(them)h(are)g(a)m(v)-5 b(ailable)29 b(in)g(b)s(oth)94
-4656 y(P)m(ortrait)i(and)f(Landscap)s(e)g(mo)s(de.)219
-4774 y(F)-8 b(rom)23 b(LaserJet)g(4)f(series,)i(\(except)g(4L/5L)f
-(that)g(are)g(en)m(try-lev)m(el)f(prin)m(ters\),)h(Arial)e(scalable)h
-(fon)m(t)h(should)94 4874 y(b)s(e)30 b(a)m(v)-5 b(ailable,)30
-b(so)h(it's)f(the)g Fj(")p Fl(default)g(fon)m(t)p Fj(")g
-Fl(used)g(b)m(y)g(this)f(program.)219 4992 y(LaserJet)41
-b(I)s(I)s(I)d(series)i(prin)m(ters)e(\(and)i(4L,)g(5L\),)h(don't)f
-(feature)h Fj(")p Fl(Arial)p Fj(")d Fl(as)i(a)h(residen)m(t)e(fon)m(t,)
-k(so)e(y)m(ou)94 5092 y(should)27 b(use)i Fj(BARCODE_OUT_PCL_III)23
-b Fl(instead)28 b(of)h Fj(BARCODE_OUT_PCL.)p Fl(,)c(and)j(fon)m(t)h
-(the)g(fon)m(t)h(used)d(will)g(b)s(e)94 5191 y Fj(")p
-Fl(Univ)m(ers)p Fj(")j Fl(instead)f(of)i Fj(")p Fl(Arial)p
-Fj(")p Fl(.)219 5309 y(Results)26 b(on)i(compatible)e(prin)m(ters,)h
-(ma)m(y)h(dep)s(end)d(on)i(consistency)g(of)h(PCL5)f(compatibilit)m(y)
--8 b(,)26 b(in)g(doubt,)94 5409 y(try)31 b(BAR)m(CODE)p
-713 5409 28 4 v 33 w(OUT)p 951 5409 V 32 w(PCL)p 1168
-5409 V 32 w(I)s(I)s(I)219 5527 y(PJL)f(commands)g(are)g(not)h(used)f
-(here,)g(as)h(it's)f(not)g(v)m(ery)h(compatible.)219
-5645 y(T)-8 b(ested)31 b(Prin)m(ters:)p eop
-%%Page: 10 11
-10 10 bop 94 -116 a Fl(Chapter)30 b(8:)41 b(Bugs)31 b(and)f(P)m(ending)
-f(Issues.)2211 b(10)169 365 y Fb(\017)60 b Fl(Hp)30 b(LaserJet)h(4050)
-169 490 y Fb(\017)60 b Fl(Hp)30 b(LaserJet)h(2100)169
-614 y Fb(\017)60 b Fl(Epson)30 b(N-1200)j(em)m(ul)c(PCL)169
-739 y Fb(\017)60 b Fl(T)-8 b(oshiba)30 b(DP2570)i(\(copier\))f
-Fj(+)f Fl(PCL)g(option)169 863 y Fb(\017)60 b Fl(Epson)30
-b(EPL-7100)i(em)m(ul.)40 b(HP)30 b(LaserJet)h(I)s(I:)f(bars)g(prin)m(t)
-f(\014ne)g(but)h(text)i(is)d(bad.)94 1146 y Fi(8)81 b(Bugs)52
-b(and)i(P)l(ending)f(Issues.)219 1370 y Fl(The)42 b(curren)m(t)g
-(managemen)m(t)h(of)g(b)s(orders/margins)d(is)h(far)h(from)g(optimal.)
-75 b(The)42 b(\\default")g(margin)94 1469 y(applied)d(b)m(y)h(the)h
-(library)d(in)m(terferes)i(with)f(the)i(external)g(represen)m(tation,)i
-(but)d(I)g(feel)g(it)g(is)g(mandatory)94 1569 y(to)f(a)m(v)m(oid)f
-(creating)g(barco)s(de)f(output)h(with)e(no)i(surrounding)c(white)j
-(space)h(\(the)g(problem)e(is)h(esp)s(ecially)94 1669
-y(relev)-5 b(an)m(t)31 b(for)f(EPS)g(output\).)219 1793
-y(EAN-128)44 b(is)d(not)h(\(y)m(et\))i(supp)s(orted.)73
-b(I)42 b(plan)e(to)j(implemen)m(t)e(it)g(prett)m(y)h(so)s(on)g(and)f
-(then)h(bless)f(the)94 1893 y(pac)m(k)-5 b(age)33 b(as)d(v)m(ersion)g
-(1.0.)p eop
-%%Page: -1 12
--1 11 bop 3849 -116 a Fl(i)94 365 y Fi(T)-13 b(able)55
-b(of)e(Con)l(ten)l(ts)94 697 y Fk(Barco)t(de)45 b(to)t(ols)16
-b Fa(.)k(.)g(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)
-f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g
-(.)h(.)60 b Fk(1)94 955 y(1)135 b(Ov)l(erview)12 b Fa(.)21
-b(.)f(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h
-(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)
-f(.)57 b Fk(1)94 1212 y(2)135 b(The)45 b(Underlying)g(Data)h(Structure)
-41 b Fa(.)20 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)86
-b Fk(1)393 1337 y Fl(2.1)92 b(The)30 b(Fields)19 b Fg(.)14
-b(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49
-b Fl(1)692 1436 y(Use)31 b(of)g(the)f Fg(width)39 b Fl(and)30
-b Fg(sc)-5 b(alef)50 b Fl(\014elds.)25 b Fg(.)15 b(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)56 b Fl(2)393 1536 y(2.2)92 b(The)30 b(In)m(termediate)h
-(Represen)m(tation)24 b Fg(.)15 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)54 b Fl(3)94 1768 y Fk(3)135 b(The)45 b(Flags)28
-b Fa(.)20 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f
-(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)
-f(.)g(.)73 b Fk(3)94 2026 y(4)135 b(F)-11 b(unctions)44
-b(Exp)t(orted)h(b)l(y)g(the)g(Library)37 b Fa(.)19 b(.)h(.)f(.)g(.)h(.)
-f(.)h(.)f(.)h(.)f(.)g(.)81 b Fk(4)94 2283 y(5)135 b(The)45
-b Fa(b)-7 b(ar)g(c)g(o)g(de)52 b Fk(fron)l(tend)46 b(program)11
-b Fa(.)19 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h
-(.)55 b Fk(5)393 2408 y Fl(5.1)92 b(The)30 b(Command)g(Line)24
-b Fg(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b Fl(5)94 2640 y Fk(6)135
-b(Supp)t(orted)44 b(Enco)t(dings)33 b Fa(.)20 b(.)f(.)g(.)h(.)f(.)h(.)f
-(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)
-78 b Fk(7)94 2897 y(7)135 b(PCL)45 b(Output)40 b Fa(.)20
-b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)85
-b Fk(9)94 3155 y(8)135 b(Bugs)45 b(and)f(P)l(ending)h(Issues.)36
-b Fa(.)19 b(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)g(.)h(.)79 b Fk(10)p eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
diff --git a/barcode-0.98/doc/barcodedoc.txt b/barcode-0.98/doc/barcodedoc.txt
deleted file mode 100644 (file)
index 2d242f9..0000000
+++ /dev/null
@@ -1,734 +0,0 @@
-
-
-This is barcode.info, produced by makeinfo version 4.0b from
-barcode.texinfo.
-
-   This file is the User's Manual for the barcode library (version
-0.98).
-
-
-
-
-*Node: Overview
-                               Overview
-                               ********
-
-   The "barcode" package is mainly a C library for creating bar-code
-output files. It also includes a command line front-end and (in a
-foreseeable future) a graphic frontend.
-
-   The package is designed as a library because we think the main use
-for barcode-generation tools is inside more featured applications. The
-library addresses bar code printing as two distinct problems: creation
-of bar information and actual conversion to an output format. To this
-aim we use an intermediate representation for bar codes, which is
-currently documented in the `ps.c' source file (not in this document).
-
-   Note that the library and the accompanying material is released
-according to the GPL license, not the LGPL one. A copy of the GPL is
-included in the distribution tarball.
-
-
-
-
-*Node: The Barcode Object
-                               The Underlying Data Structure
-                               *****************************
-
-   Every barcode-related function acts on a data structure defined in
-the `barcode.h' header, which must be included by any C source file
-that uses the library. The header is installed by make install.
-
-   The definition of the data structure is included here for reference:
-
-     struct Barcode_Item {
-         int flags;         /* type of encoding and other flags */
-         char *ascii;       /* malloced */
-         char *partial;     /* malloced too */
-         char *textinfo;    /* information about text placement */
-         char *encoding;    /* code name, filled by encoding engine */
-         int width, height; /* output units */
-         int xoff, yoff;    /* output units */
-         int margin;        /* output units */
-         double scalef;     /* requested scaling for barcode */
-         int error;         /* an errno-like value, in case of failure */
-     };
-
-   The exact meaning of each field and the various flags implemented are
-described in the following sections.
-
-   Even though you won't usually need to act on the contents of this
-structure, some of the functions in the library receive arguments that
-are directly related to one or more of these fields.
-
-
-
-
-*Node: The Field List
-                               The Fields
-                               ==========
-
-`int flags;'
-     The flags are, as you may suspect, meant to specify the exact
-     behaviour of the library. They are often passed as an argument to
-     barcode functions and are discussed in the next section.
-
-`char *ascii;'
-`char *partial;'
-`char *textinfo;'
-`char *encoding;'
-     These fields are internally managed by the library, and you are
-     not expected to touch them if you use the provided API. All of
-     them are allocated with malloc.
-
-`int width;'
-`int height;'
-     They specify the width and height of the active barcode region
-     (i.e., excluding the white margin), in the units used to create
-     output data (for postscript they are points, 1/72th of an inch,
-     0.352 mm). The fields can be either assigned to in the structure
-     or via Barcode_Position(), at your choice.  If either value or
-     both are left to their default value of zero, the output engine
-     will assign default values according to the specified scaling
-     factor. If the specified width is bigger than needed (according to
-     the scaling factor), the output barcode will be centered in its
-     requested region. If either the width of the height are too small
-     for the specified scale factor, the output bar code will expand
-     symmetrically around the requested region.
-
-`int xoff;'
-`int yoff;'
-     The fields specify offset from the coordinate origin of the output
-     engine (for postscript, position 0,0 is the lower left corner of
-     the page).  The fields can be either assigned to in the structure
-     or via Barcode_Position(), at your choice.  The offset specifies
-     where the white margin begins, not where the first bar will be
-     printed. To print real ink to the specified position you should
-     set margin to 0.
-
-`int margin;'
-     The white margin that will be left around the printed area of the
-     bar code. The same margin is applied to all sides of the printed
-     area. The default value for the margin is defined in `barcode.h'
-     as BARCODE_DEFAULT_MARGIN (10).
-
-`double scalef;'
-     The enlarge or shrink value for the bar code over its default
-     dimension. The width and scalef fields interact deeply in the
-     creation of the output, and a complete description of the issues
-     appears later in this section.
-
-`int error;'
-     The field is used when a barcode function fails to host an
-     errno-like integer value.
-
-Use of the width and scalef fields.
------------------------------------
-
-   A width unit is the width of the thinnest bar and/or space in the
-chosen code; it defaults to 1 point if the output is postscript or
-encapsulated postscript.
-
-   Either or both the code width and the scale factor can be left
-unspecified (i.e., zero). The library deals with defaults in the
-following way:
-
-Both unspecified
-     If both the width and the scale factor are unspecified, the scale
-     factor will default to 1.0 and the width is calculated according
-     to the actual width of the bar code being printed.
-
-Width unspecified
-     If the width is not specified, it is calculated according to the
-     values of scalef.
-
-Scale factor unspecified
-     If the scale factor is not specified, it will be chosen so that
-     the generated bar code exactly fits the specified width.
-
-Both specified
-     The code will be printed inside the specified region according to
-     the specified scale factor. It will be aligned to the left.  If,
-     however, the chosen width is too small for the specific bar code
-     and scaling factor, then the code will extend symmetrically to the
-     left and to the right of the chosen region.
-
-
-
-
-*Node: The Intermediate Representation
-                               The Intermediate Representation
-                               ===============================
-
-   The encoding functions print their output into the partial and
-texinfo fields of the barcode data structure. Those fields, together
-with position information, are then used to generate actual output.
-This is an informal description of the intermediate format.
-
-   The first char in partial tells how much extra space to add to the
-left of the bars. For EAN-13, it is used to leave space to print the
-first digit, other codes may have '0' for no-extra-space-needed.
-
-   The next characters are alternating bars and spaces, as multiples of
-the base dimension which is 1 unless the code is rescaled. Rescaling is
-calculated as the ratio from the requested width and the calculated
-width.  Digits represent bar/space dimensions. Lower-case letters
-represent those bars that should extend lower than the others: 'a' is
-equivalent to '1', 'b' is '2' and so on up to 'i' which is equivalent to
-'9'. Other letters will be used for encoding-specific meanings, as soon
-as I implement them.
-
-   The textinfo string is made up of fields %lf:%lf:%c separated by
-blank space. The first integer is the x position of the character, the
-second is the font size (before rescaling) and the char item is the
-character to be printed.
-
-   Both the partial and textinfo strings may include "-" or "+" as
-special characters (in textinfo the char should be a stand-alone word).
-They state where the text should be printed: below the bars ("-",
-default) or above the bars. This is used, for example, to print the
-add-5 and add-2 codes to the right of UPC or EAN codes (the add-5
-extension is mostly used in ISBN codes).
-
-
-
-
-*Node: Supported Flags
-                               The Flags
-                               *********
-
-   The following flags are supported by version 0.98 of the library:
-
-`BARCODE_ENCODING_MASK'
-     The mask is used to extract the encoding-type identifier from the
-     flags field.
-
-`BARCODE_EAN'
-`BARCODE_UPC'
-`BARCODE_ISBN'
-`BARCODE_128B'
-`BARCODE_128C'
-`BARCODE_128'
-`BARCODE_128RAW'
-`BARCODE_39'
-`BARCODE_I25'
-`BARCODE_CBR'
-`BARCODE_MSI'
-`BARCODE_PLS'
-`BARCODE_93'
-     The currently supported encoding types: EAN (13 digits, 8 digits,
-     13 + 2 add-on and 13 + 5 add-on), UPC (UPC-A, UPC-E, UPC-A with 2
-     or 5 digit add-on), ISBN (with or without the 5-digit add-on),
-     CODE128-B (the whole set of printable ASCII characters), CODE128-C
-     (two digits encoded by each barcode symbol), CODE128 (all ASCII
-     values), a "raw-input" pseudo-code that generates CODE128 output,
-     CODE39 (alphanumeric), "interleaved 2 of 5" (numeric), Codabar
-     (numeric plus a few symbols), MSI (numeric) and Plessey (hex
-     digits).  *Note Supported Encodings::.
-
-`BARCODE_ANY'
-     This special encoding type (represented by a value of zero, so it
-     will be the default) tells the encoding procedure to look for the
-     first encoding type that can deal with a textual string.
-     Therefore, a 11-digit code will be printed as UPC (as well as
-     6-digit, 11+2 and 11+5), a 12-digit (or 7-digit, or 12+2 or 12+5)
-     as EAN13, an ISBN code (with or without hyphens, with or without
-     add-5) will be encoded in its EAN13 representation, an even number
-     of digits is encoded using CODE128C and a generic string is
-     encoded using CODE128B. Since code-39 offers a much larger
-     representation for the same text string, code128-b is preferred
-     over code39 for alphanumeric strings.
-
-`BARCODE_NO_ASCII'
-     Instructs the engine not to print the ascii string on output. By
-     default the bar code is accompanied with an ascii version of the
-     text it encodes.
-
-`BARCODE_NO_CHECKSUM'
-     Instructs the engine not to add the checksum character to the
-     output. Not all the encoding types can drop the checksum; those
-     where the checksum is mandatory (like EAN and UPC) just ignore the
-     flag.
-
-`BARCODE_OUTPUT_MASK'
-     The mask is used to extract the output-type identifier from the
-     flags field.
-
-`BARCODE_OUT_PS'
-`BARCODE_OUT_EPS'
-`BARCODE_OUT_PCL'
-`BARCODE_OUT_PCL_III'
-     The currently supported encoding types: full-page postscript and
-     encapsulated postscript; PCL (print command language, for HP
-     printers) and PCL-III (same as PCL, but uses a font not available
-     on older printers).
-
-`BARCODE_OUT_NOHEADERS'
-     The flag instructs the printing engine not to print the header and
-     footer part of the file. This makes sense for the postscript
-     engine but might not make sense for other engines; such other
-     engines will silently ignore the flag just like the PCL back-end
-     does.
-
-
-
-
-*Node: The API
-                               Functions Exported by the Library
-                               *********************************
-
-   The functions included in the barcode library are declared in the
-header file barcode.h.  They perform the following tasks:
-
-`struct Barcode_Item *Barcode_Create(char *text);'
-     The function creates a new barcode object to deal with a specified
-     text string.  It returns NULL in case of failure and a pointer to
-     a barcode data structure in case of success.
-
-`int Barcode_Delete(struct Barcode_Item *bc);'
-     Destroy a barcode object. Always returns 0 (success)
-
-`int Barcode_Encode(struct Barcode_Item *bc, int flags);'
-     Encode the text included in the bc object. Valid flags are the
-     encoding type (other flags are ignored) and BARCODE_NO_CHECKSUM
-     (other flags are silently ignored); if the flag argument is zero,
-     bc->flags will apply. The function returns 0 on success and -1 in
-     case of error. After successful termination the data structure
-     will host the description of the bar code and its textual
-     representation, after a failure the error field will include the
-     reason of the failure.
-
-`int Barcode_Print(struct Barcode_Item *bc, FILE *f, int flags);'
-     Print the bar code described by bc to the specified file.  Valid
-     flags are the output type, BARCODE_NO_ASCII and
-     BARCODE_OUT_NOHEADERS, other flags are ignored. If any of these
-     flags is zero, it will be inherited from bc->flags which therefore
-     takes precedence. The function returns 0 on success and -1 in case
-     of error (with bc->error set accordingly). In case of success, the
-     bar code is printed to the specified file, which won't be closed
-     after use.
-
-`int Barcode_Position(struct Barcode_Item *bc, int wid, int hei, int xoff, int yoff, double scalef);'
-     The function is a shortcut to assign values to the data structure.
-
-`int Barcode_Encode_and_Print(char *text, FILE *f, int wid, int hei, int xoff, int yoff, int flags);'
-     The function deals with the whole life of the barcode object by
-     calling the other functions; it uses all the specified flags.
-
-`int Barcode_Version(char *versionname);'
-     Returns the current version as an integer number of the form major
-     * 10000 + minor * 100 + release. Therefore, version 1.03.5 will be
-     returned as 10305 and version 0.53 as 5300.  If the argument is
-     non-null, it will be used to return the version number as a
-     string. Note that the same information is available from two
-     preprocessor macros: BARCODE_VERSION (the string) and
-     BARCODE_VERSION_INT (the integer number).
-
-
-
-
-*Node: The barcode Executable
-                               The barcode frontend program
-                               ****************************
-
-   The barcode program is a front-end to access some features of the
-library from the command line.  It is able to read user supplied
-strings from the command line or a data file (standard input by default)
-and encode all of them.
-
-
-
-
-*Node: The Command Line
-                               The Command Line
-                               ================
-
-   barcode accepts the following options:
-
-`--help or -h'
-     Print a usage summary and exit.
-
-`-i filename'
-     Identify a file where strings to be encoded are read from. If
-     missing (and if -b is not used) it defaults to standard input.
-     Each data line of the input file will be used to create one
-     barcode output.
-
-`-o filename'
-     Output file. It defaults to standard output.
-
-`-b string'
-     Specify a single "barcode" string to be encoded.  The option can
-     be used multiple times in order to encode multiple strings (this
-     will result in multi-page postscript output or a table of barcodes
-     if -t is specified).  The strings must match the encoding chosen;
-     if it doesn't match the program will print a warning to stderr and
-     generate "blank" output (although not zero-length).  Please note
-     that a string including spaces or other special characters must be
-     properly quoted.
-
-`-e encoding'
-     encoding is the name of the chosen encoding format being used. It
-     defaults to the value of the environment variable BARCODE_ENCODING
-     or to auto detection if the environment is also unset.
-
-`-g geometry'
-     The geometry argument is of the form "[<width> x <height>] [+
-     <xmargin> + <ymargin>]" (with no intervening spaces). Unspecified
-     margin values will result in no margin; unspecified size results
-     in default size.  The specified values represent print points by
-     default, and can be inches, millimeters or other units according
-     to the -u option or the BARCODE_UNIT environment variable.  The
-     argument is used to place the printout code on the page. Note that
-     an additional white margin of 10 points is added to the printout.
-     If the option is unspecified, BARCODE_GEOMETRY is looked up in the
-     environment, if missing a default size and no margin (but the
-     default 10 points) are used.
-
-`-t table-geometry'
-     Used to print several barcodes to a single page, this option is
-     meant to be used to print stickers. The argument is of the form
-     "<columns> x <lines> [+ <leftmargin> + <bottommargin> [-
-     <rightmargin> [- <topmargin>]]]" (with no intervening spaces); if
-     missing, the top and right margin will default to be the same as
-     the bottom and left margin. The margins are specified in print
-     points or in the chosen unit (see -u below).  If the option is not
-     specified, BARCODE_TABLE is looked up in the environment,
-     otherwise no table is printed and each barcode will get its own
-     page.  The size (but not the position) of a barcode item within a
-     table can also be selected using -g (see "geometry" above),
-     without struggling with external and internal margins.  I still
-     think management of geometries in a table is suboptimal, but I
-     can't make it better without introducing incompatibilities.
-
-`-m margin(s)'
-     Specifies an internal margin for each sticker in the table. The
-     argument is of the form "<xmargin>,<ymargin>" and the margin is
-     applied symmetrically to the sticker. If unspecified, the
-     environment variable BARCODE_MARGIN is used or a default internal
-     margin of 10 points is used.
-
-`-n'
-     "Numeric" output: don't print the ASCII form of the code, only the
-     bars.
-
-`-c'
-     No checksum character (for encodings that allow it, like code 39,
-     other codes, like UPC or EAN, ignore this option).
-
-`-E'
-     Encapsulated postscript (default is normal postscript). When the
-     output is generated as EPS only one barcode is encoded.
-
-`-P'
-     PCL output. Please note that the Y direction goes from top to
-     bottom for PCL, and the origin for an image is the top-left corner
-     instead of the bottom-left
-
-`-p pagesize'
-     Specify a non-default page size. The page size can be specified in
-     millimeters, inches or plain numbers (for example: "210x297mm",
-     "8.5x11in", "595x842"). A page specification as numbers will be
-     interpreted according to the current unit specification (see -u
-     below). If libpaper is available, you can also specify the page
-     size with its name, like "A3" or "letter" (libpaper is a standard
-     component of Debian GNU/Linux, but may be missing elsewhere). The
-     default page size is your system-wide default if libpaper is
-     there, A4 otherwise.
-
-`-u unit'
-     Choose the unit used in size specifications. Accepted values are
-     "mm", "cm", "in" and "pt". By default, the program will check
-     BARCODE_UNIT in the environment, and assume points otherwise (this
-     behaviour is compatible with 0.92 and previous versions. If -u
-     appears more than once, each instance will modified the behaviour
-     for the arguments at its right, as the command line is processes
-     left to right. The program internally works with points, and any
-     size is approximated to the nearest multiple of one point. The -u
-     option affect -g (geometry), -t (table) and -p (page size).
-
-
-
-
-*Node: Supported Encodings
-                               Supported Encodings
-                               *******************
-
-   The program encodes text strings passed either on the command line
-(with -b) or retrieved from standard input. The text representation is
-interpreted according to the following rules. When auto-detection of
-the encoding is enabled (i.e, no explicit encoding type is specified),
-the encoding types are scanned to find one that can digest the text
-string.  The following list of supported types is sorted in the same
-order the library uses when auto-detecting a suitable encoding for a
-string.
-
-EAN
-     The EAN frontend is similar to UPC; it accepts strings of digits,
-     12 or 7 characters long. Strings of 13 or 8 characters are
-     accepted if the provided checksum digit is correct.  I expect most
-     users to feed input without a checksum, though. The add-2 and
-     add-5 extension are accepted for both the EAN-13 and the EAN-8
-     encodings.  The following are example of valid input strings:
-     "123456789012" (EAN-13), "1234567890128" (EAN-13 wih checksum),
-     "1234567" (EAN-8), "12345670 12345" (EAN-8 with checksum and
-     add-5), "123456789012 12" (EAN-13 with add-2), "123456789012
-     12345" (EAN-13 with add-5).
-
-UPC
-     The UPC frontend accepts only strings made up of digits (and, if a
-     supplemental encoding is used, a blank to separate it).  It
-     accepts strings of 11 or 12 digits (UPC-A) and 6 or 7 or 8 digits
-     (UPC-E).
-
-     The 12th digit of UPC-A is the checksum and is added by the
-     library if not specified in the input; if it is specified, it must
-     be the right checksum or the code is rejected as invalid.  For
-     UPC-E, 6 digit are considered to be the middle part of the code, a
-     leading 0 is assumed and the checksum is added; 7 digits are
-     either considered the initial part (leading digit 0 or 1, checksum
-     missing) or the final part (checksum specified, leading 0
-     assumed); 8 digits are considered to be the complete code, with
-     leading 0 or 1 and checksum.  For both UPC-A and UPC-E, a trailing
-     string of 2 digits or 5 digits is accepted as well. Therefore, the
-     following are examples of valid strings that can be encoded as UPC:
-     "01234567890" (UPC-A) "012345678905" (UPC-A with checksum),
-     "012345" (UPC-E), "01234567890 12" (UPC-A, add-2) and "01234567890
-     12345" (UPC-A, add-5), "0123456 12" (UPC-E, add-2).  Please note
-     that when setting BARCODE_ANY to auto-detect the encoding to be
-     used, 12-digit strings and 7-digit strings will always be
-     identified as EAN. This because I expect most user to provide
-     input without a checksum. If you need to specify UPC-with-checksum
-     as input you must explicitly set BARCODE_UPC as a flag or use -e
-     upc on the command line.
-
-ISBN
-     ISBN numbers are encoded as EAN-13 symbols, with an optional add-5
-     trailer. The ISBN frontend of the library accepts real ISBN
-     numbers and deals with any hyphen and, if present, the ISBN
-     checksum character before encoding data. Valid representations for
-     ISBN strings are for example: "1-56592-292-1", "3-89721-122-X" and
-     "3-89721-122-X 06900".
-
-CODE 128-B
-     This encoding can represent all of the printing ASCII characters,
-     from the space (32) to DEL (127). The checksum digit is mandatory
-     in this encoding.
-
-CODE 128-C
-     The "C" variation of Code-128 uses Code-128 symbols to represent
-     two digits at a time (Code-128 is made up of 104 symbols whose
-     interpretation is controlled by the start symbol being used). Code
-     128-C is thus the most compact way to represent any even number of
-     digits. The encoder refuses to deal with an odd number of digits
-     because the caller is expected to provide proper padding to an
-     even number of digits. (Since Code-128 includes control symbols to
-     switch charset, it is theoretically possible to represent the odd
-     digit as a Code 128-A or 128-B symbol, but this tool doesn't
-     currently implement this option).
-
-CODE 128 RAW
-     Code-128 output represented symbol-by-symbol in the input string.
-     To override part of the problems outlined below in specifying
-     code128 symbols, this pseudo-encoding allows the used to specify a
-     list of code128 symbols separated by spaces. Each symbol is
-     represented by a number in the range 0-105.  The list should
-     include the leading character.The checksum and the stop character
-     are automatically added by the library. Most likely this
-     pseudo-encoding will be used with BARCODE_NO_ASCII and some
-     external program to supply the printed text.
-
-CODE 39
-     The code-39 standard can encode uppercase letters, digits, the
-     blank space, plus, minus, dot, star, dollar, slash, percent.  Any
-     string that is only composed of such characters is accepted by the
-     code-39 encoder. To avoid loosing information, the encoder refuses
-     to encode mixed-case strings (a lowercase string is nonetheless
-     accepted as a shortcut, but is encoded as uppercase).
-
-INTERLEAVED 2 OF 5
-     This encoding can only represent an even number of digits (odd
-     digits are represented by bars, and even digits by the
-     interleaving spaces). The name stresses the fact that two of the
-     five items (bars or spaces) allocated to each symbol are wide,
-     while the rest are narrow. The checksum digit is optional (can be
-     disabled via BARCODE_NO_CHECKSUM).  Since the number of digits,
-     including the checksum, must be even, a leading zero is inserted
-     in the string being encoded if needed (this is specifically stated
-     in the specs I have access to).
-
-CODE 128
-     Automatic selection between alphabet A, B and C of the Code-128
-     standard. This encoding can represent all ASCII symbols, from 0
-     (NUL) to 127 (DEL), as well as four special symbols, named F1, F2,
-     F3, F4. The set of symbols available in this encoding is not
-     easily represented as input to the barcode library, so the
-     following convention is used.  In the input string, which is a
-     C-language null-terminated string, the NUL char is represented by
-     the value 128 (0x80, 0200) and the F1-F4 characters are
-     represented by the values 193-196 (0xc1-0xc4, 0301-0304).  The
-     values have been chosen to ease their representation as escape
-     sequences.
-
-     Since the shell doesn't seem to interpret escape sequences on the
-     command line, the "-b" option cannot be easily used to designate
-     the strings to be encoded. As a workaround you can resort to the
-     command echo, either within back-ticks or used separately to
-     create a file that is then fed to the standard-input of barcode -
-     assuming your echo command processes escape sequences.  The
-     newline character is especially though to encode (but not
-     impossible unless you use a csh variant.
-
-     These problems only apply to the command-line tool; the use of
-     library functions doesn't give any problem. In needed, you can use
-     the "code 128 raw" pseudo-encoding to represent code128 symbols by
-     their numerical value. This encoding is used late in the
-     auto-selection mechanism because (almost) any input string can be
-     represented using code128.
-
-CODABAR
-     Codabar can encode the ten digits and a few special symbols
-     (minus, plus, dollar, colon, bar, dot). The characters "A", "B",
-     "C" and "D" are used to represent four different start/stop
-     characters. The input string to the barcode library can include
-     the start and stop characters or not include them (in which case
-     "A" is used as start and "B" as stop). Start and stop characters
-     in the input string can be either all lowercase or all uppercase
-     and are always printed as uppercase.
-
-PLESSEY
-     Plessey barcodes can encode all the hexadecimal digits. Alphabetic
-     digits in the input string must either be all lowercase or all
-     uppercase. The output text is always uppercase.
-
-MSI
-     MSI can only encode the decimal digits. While the standard
-     specifies either one or two check digits, the current
-     implementation in this library only generates one check digit.
-
-CODE 93
-     The code-93 standard can natively encode 48 different characters,
-     including uppercase letters, digits, the blank space, plus, minus,
-     dot, star, dollar, slash, percent, as well as five special
-     characters:  a start/stop delimiter and four "shift characters"
-     used for extended encoding.    Using this "extended encoding"
-     method, any standard 7-bit ASCII character can be encoded, but it
-     takes up two symbol lengths in barcode if the character is not
-     natively supported (one of the 48).  The encoder here fully
-     implements the code 93 encoding standard.  Any characters natively
-     supported (A-Z, 0-9, ".+-/$&%") will be encoded as such - for any
-     other characters (such as lower case letters, brackets,
-     parentheses, etc.), the encoder will revert to extended encoding.
-     As a note, the option to exclude the checksum will eliminate the
-     two modulo-47 checksums (called C and K) from the barcode, but this
-     probably will make it unreadable by 99% of all scanning systems.
-     These checksums are specified to be used at the firmware level,
-     and their absence will be interpreted as an invalid barcode.
-
-
-
-
-*Node: PCL Output
-                               PCL Output
-                               **********
-
-   While the default output is Postscript (possibly EPS), and Postscript
-can be post-processed to almost anything, it is sometimes desirable to
-create output directly usable by the specific printer at hand.  PCL is
-currently supported as an output format for this reason.  Please note
-that the Y coordinate for PCL goes from top to bottom, while for
-Postscript it goes from bottom to top. Consistently, while in
-Postscript you specify the bottom-left corner as origin, for PCL you
-specify the top-left corner.
-
-   Barcode output for PCL Printers (HP LaserJet and compatibles), was
-developed using PCL5 Reference manuals from HP.  that really refers to
-these printers:
-   * LaserJet III, III P, III D, III Si,
-
-   * LaserJet 4 family
-
-   * LaserJet 5 family
-
-   * LaserJet 6 family
-
-   * Color LaserJet
-
-   * DeskJet 1200 and 1600.
-
-
-   However, barcode printing uses a very small subset of PCL, probably
-also LaserJet II should print it without problem, but the resulting
-text may be horrible.
-
-   The only real difference from one printer to another really depends
-on which font are available in the printer, used in printing the label
-associated to the bars (if requested).
-
-   Earlier LaserJet supports only bitmaps fonts, so these are not
-"scalable". (Ljet II ?), Also these fonts, when available, have a
-specified direction, and not all of them are available in both Portrait
-and Landscape mode.
-
-   From LaserJet 4 series, (except 4L/5L that are entry-level printers),
-Arial scalable font should be available, so it's the "default font"
-used by this program.
-
-   LaserJet III series printers (and 4L, 5L), don't feature "Arial" as a
-resident font, so you should use BARCODE_OUT_PCL_III instead of
-BARCODE_OUT_PCL., and font the font used will be "Univers" instead of
-"Arial".
-
-   Results on compatible printers, may depend on consistency of PCL5
-compatibility, in doubt, try BARCODE_OUT_PCL_III
-
-   PJL commands are not used here, as it's not very compatible.
-
-   Tested Printers:
-   * Hp LaserJet 4050
-
-   * Hp LaserJet 2100
-
-   * Epson N-1200 emul PCL
-
-   * Toshiba DP2570 (copier) + PCL option
-
-   * Epson EPL-7100 emul. HP LaserJet II: bars print fine but text is
-     bad.
-
-
-
-
-*Node: Bugs and Pending Issues
-                               Bugs and Pending Issues.
-                               ************************
-
-   The current management of borders/margins is far from optimal. The
-"default" margin applied by the library interferes with the external
-representation, but I feel it is mandatory to avoid creating barcode
-output with no surrounding white space (the problem is especially
-relevant for EPS output).
-
-   EAN-128 is not (yet) supported. I plan to implement it pretty soon
-and then bless the package as version 1.0.
-
-
-
-
-
-Tag Table:Node: Top\7f154
-                               Node: Overview\7f526
-                               Node: The Barcode Object\7f1404
-Node: The Field List\7f2821
-Node: The Intermediate Representation\7f6586
-Node: Supported Flags\7f8359
-Node: The API\7f11343
-Node: The barcode Executable\7f14029
-Node: The Command Line\7f14458
-Node: Supported Encodings\7f19557
-Node: PCL Output\7f28997
-Node: Bugs and Pending Issues\7f31316
-
-
-
-End Tag Table
\ No newline at end of file
diff --git a/barcode-0.98/doc/doc.barcode b/barcode-0.98/doc/doc.barcode
deleted file mode 100644 (file)
index 7b46055..0000000
+++ /dev/null
@@ -1,939 +0,0 @@
-\input texinfo    @c -*-texinfo-*-
-%
-% doc.barcode - main file for the documentation
-%
-%%%%
-
-%------------------------------------------------------------------------------
-%
-%                         NOTE FOR THE UNAWARE USER
-%                         =========================
-%
-%    This file is a texinfo source. It isn't the binary file of some strange
-%    editor of mine. If you want ascii, you should "make barcodedoc.txt".
-%
-%------------------------------------------------------------------------------
-
-%
-% This is not a conventional info file...
-% I use two extra features:
-%       - The '%' as a comment marker, if at beg. of line ("\%" -> "%")
-%       - leading blanks are allowed
-%
-
-@comment %**start of header
-@setfilename barcode.info
-@settitle Barcode @value{version}
-@iftex
-@afourpaper
-@end iftex
-@comment %**end of header
-
-@setchapternewpage off
-
-@set version 0.98
-@set update-month March 2002
-
-@finalout
-
-@ifinfo
-
-This file is the User's Manual for the barcode library (version
-@value{version}).
-
-@end ifinfo
-
-@setchapternewpage odd
-@titlepage
-@c use the new format for titles
-@title barcode @value{version}
-@subtitle A library for drawing bar codes
-@subtitle @value{update-month}
-
-@author by Alessandro Rubini (@code{rubini@@gnu.org})
-
-@end titlepage
-@setchapternewpage off
-@headings single
-
-
-@node Top, Overview, (dir), (dir)
-@top Barcode tools
-
-This file documents version @value{version} of the barcode
-library and sample programs (@value{update-month}).
-
-@menu
-* Overview::                    
-* The Barcode Object::          
-* Supported Flags::             
-* The API::                     
-* The barcode Executable::      
-* Supported Encodings::         
-* PCL Output::                  
-* Bugs and Pending Issues::     
-@end menu
-
-
-%##########################################################################
-%##########################################################################
-
-@node Overview, The Barcode Object, Top, Top
-@chapter Overview
-
-The @dfn{barcode} package is mainly a C library for creating bar-code
-output files. It also includes a command line front-end and (in a
-foreseeable future) a graphic frontend.
-
-The package is designed as a library because we think the main use for
-barcode-generation tools is inside more featured applications. The
-library addresses bar code printing as two distinct problems: creation
-of bar information and actual conversion to an output format. To this
-aim we use an intermediate representation for bar codes, which is
-currently documented in the @file{ps.c} source file (not in this
-document).
-
-Note that the library and the accompanying material is released
-according to the GPL license, not the LGPL one. A copy of the GPL is
-included in the distribution tarball.
-
-%##########################################################################
-
-@node  The Barcode Object, Supported Flags, Overview, Top
-@chapter The Underlying Data Structure
-
-Every barcode-related function acts on a data structure defined in the
-@file{barcode.h} header, which must be included by any C source file
-that uses the library. The header is installed by @t{make install}.
-
-The definition of the data structure is included here for reference:
-
-@lisp
-struct Barcode_Item @{
-    int flags;         /* type of encoding and other flags */
-    char *ascii;       /* malloced */
-    char *partial;     /* malloced too */
-    char *textinfo;    /* information about text placement */
-    char *encoding;    /* code name, filled by encoding engine */
-    int width, height; /* output units */
-    int xoff, yoff;    /* output units */
-    int margin;        /* output units */
-    double scalef;     /* requested scaling for barcode */
-    int error;         /* an errno-like value, in case of failure */
-@};
-@end lisp
-
-The exact meaning of each field and the various flags implemented are
-described in the following sections.
-
-Even though you won't usually need to act on the contents of this
-structure, some of the functions in the library receive arguments that
-are directly related to one or more of these fields.
-
-%==========================================================================
-
-@menu
-* The Field List::              
-* The Intermediate Representation::  
-@end menu
-
-%--------------------------------------------------------------------------
-@node The Field List, The Intermediate Representation, The Barcode Object, The Barcode Object
-@section The Fields
-
-@table @code
-
-@item int flags;
-
-        The flags are, as you may suspect, meant to specify the exact
-        behaviour of the library. They are often passed as an argument
-        to @i{barcode} functions and are discussed in the next section.
-
-@item char *ascii;
-@itemx char *partial;
-@itemx char *textinfo;
-@itemx char *encoding;
-
-        These fields are internally managed by the library, and you are
-        not expected to touch them if you use the provided API. All
-        of them are allocated with @i{malloc}.
-
-@item int width;
-@itemx int height;
-
-        They specify the width and height of the @i{active} barcode
-       region (i.e., excluding the white margin), in the units used
-       to create output data (for postscript they are points, 1/72th
-       of an inch, 0.352 mm). The fields can be either assigned to
-       in the structure or via @i{Barcode_Position()}, at your
-       choice.  If either value or both are left to their default
-       value of zero, the output engine will assign default values
-       according to the specified scaling factor. If the specified
-       width is bigger than needed (according to the scaling factor),
-       the output barcode will be centered in its requested
-       region. If either the width of the height are too small for
-       the specified scale factor, the output bar code will expand
-       symmetrically around the requested region.
-        
-@item int xoff;
-@itemx int yoff;
-
-       The fields specify offset from the coordinate origin of the
-       output engine (for postscript, position 0,0 is the lower left
-       corner of the page).  The fields can be either assigned to in
-       the structure or via @i{Barcode_Position()}, at your choice.
-       The offset specifies where the white margin begins, not where
-       the first bar will be printed. To print real ink to the
-       specified position you should set @i{margin} to 0.
-
-@item int margin;
-
-       The white margin that will be left around the printed area of
-       the bar code. The same margin is applied to all sides of the
-       printed area. The default value for the margin is defined in
-       @file{barcode.h} as @t{BARCODE_DEFAULT_MARGIN} (10).
-
-@item double scalef;
-
-       The enlarge or shrink value for the bar code over its default
-       dimension. The @i{width} and @i{scalef} fields interact deeply
-       in the creation of the output, and a complete description of
-       the issues appears later in this section.
-
-@item int error;
-
-       The field is used when a @i{barcode} function fails to host
-        an @t{errno}-like integer value.
-
-@end table
-
-
-@unnumberedsubsec Use of the @i{width} and @i{scalef} fields.
-
-A width unit is the width of the thinnest bar and/or space in the
-chosen code; it defaults to 1 point if the output is postscript or
-encapsulated postscript.
-
-Either or both the code width and the scale factor can be left
-unspecified (i.e., zero). The library deals with defaults in the
-following way:
-
-@table @i
-
-@item Both unspecified
-
-       If both the width and the scale factor are unspecified, the
-       scale factor will default to 1.0 and the width is calculated
-       according to the actual width of the bar code being printed.
-
-@item Width unspecified
-
-       If the width is not specified, it is calculated according to
-       the values of @i{scalef}. 
-
-@item Scale factor unspecified
-
-       If the scale factor is not specified, it will be chosen so
-       that the generated bar code exactly fits the specified width.
-
-@item Both specified
-
-       The code will be printed inside the specified region according
-       to the specified scale factor. It will be aligned to the left.
-       If, however, the chosen width is too small for the specific
-       bar code and scaling factor, then the code will extend
-       symmetrically to the left and to the right of the chosen
-       region.
-
-@end table
-
-%--------------------------------------------------------------------------
-@node The Intermediate Representation,  , The Field List, The Barcode Object
-@section The Intermediate Representation
-
-The encoding functions print their output into the @t{partial} and
-@t{texinfo} fields of the barcode data structure. Those fields, together
-with position information, are then used to generate actual output.
-This is an informal description of the intermediate format.
-
-The first char in @t{partial} tells how much extra space to add to the
-left of the bars. For EAN-13, it is used to leave space to print the
-first digit, other codes may have '0' for no-extra-space-needed.
-
-The next characters are alternating bars and spaces, as multiples of the
-base dimension which is 1 unless the code is rescaled. Rescaling is
-calculated as the ratio from the requested width and the calculated
-width.  Digits represent bar/space dimensions. Lower-case letters
-represent those bars that should extend lower than the others: 'a' is
-equivalent to '1', 'b' is '2' and so on up to 'i' which is equivalent to
-'9'. Other letters will be used for encoding-specific meanings, as soon
-as I implement them.
-
-The @t{textinfo} string is made up of fields @t{%lf:%lf:%c} separated by
-blank space. The first integer is the x position of the character,
-the second is the font size (before rescaling) and the char item is
-the character to be printed.
-
-Both the @t{partial} and @t{textinfo} strings may include ``@t{-}'' or
-``@t{+}'' as special characters (in @t{textinfo} the char should be a
-stand-alone word).  They state where the text should be printed: below
-the bars (``@t{-}'', default) or above the bars. This is used, for
-example, to print the add-5 and add-2 codes to the right of UPC or EAN
-codes (the add-5 extension is mostly used in ISBN codes).
-
-
-
-
-%==========================================================================
-
-@node Supported Flags, The API, The Barcode Object, Top
-@chapter The Flags
-
-The following flags are supported by version @value{version} of the
-library:
-
-@table @code
-
-@item BARCODE_ENCODING_MASK
-
-       The mask is used to extract the encoding-type identifier from
-       the @i{flags} field.
-
-@item BARCODE_EAN
-@itemx BARCODE_UPC
-@itemx BARCODE_ISBN
-@itemx BARCODE_128B
-@itemx BARCODE_128C
-@itemx BARCODE_128
-@itemx BARCODE_128RAW
-@itemx BARCODE_39
-@itemx BARCODE_I25
-@itemx BARCODE_CBR
-@itemx BARCODE_MSI
-@itemx BARCODE_PLS
-@itemx BARCODE_93
-
-       The currently supported encoding types: EAN (13 digits, 8
-       digits, 13 + 2 add-on and 13 + 5 add-on), UPC (UPC-A, UPC-E,
-       UPC-A with 2 or 5 digit add-on), ISBN (with or without the
-       5-digit add-on), CODE128-B (the whole set of printable
-        ASCII characters), CODE128-C (two digits encoded by each barcode
-       symbol), CODE128 (all ASCII values), a ``raw-input'' pseudo-code
-       that generates CODE128 output, CODE39 (alphanumeric),
-        "interleaved 2 of 5" (numeric), Codabar (numeric plus a few
-       symbols), MSI (numeric) and Plessey (hex digits).
-        @xref{Supported Encodings}.
-
-@item BARCODE_ANY
-
-       This special encoding type (represented by a value of zero, so
-       it will be the default) tells the encoding procedure to look
-       for the first encoding type that can deal with a textual
-       string.  Therefore, a 11-digit code will be printed as UPC (as
-       well as 6-digit, 11+2 and 11+5), a 12-digit (or 7-digit, or
-       12+2 or 12+5) as EAN13, an ISBN code (with or without hyphens,
-       with or without add-5) will be encoded in its EAN13
-       representation, an even number of digits is encoded using
-       CODE128C and a generic string is encoded using CODE128B. Since
-        code-39 offers a much larger representation for the same
-        text string, code128-b is preferred over code39 for
-        alphanumeric strings.
-
-@item BARCODE_NO_ASCII
-
-       Instructs the engine not to print the ascii string on
-       output. By default the bar code is accompanied with an ascii
-       version of the text it encodes.
-
-@item BARCODE_NO_CHECKSUM
-
-       Instructs the engine not to add the checksum character to the
-       output. Not all the encoding types can drop the checksum;
-       those where the checksum is mandatory (like EAN and UPC)
-       just ignore the flag.
-
-@item BARCODE_OUTPUT_MASK
-
-       The mask is used to extract the output-type identifier from
-       the @i{flags} field.
-
-@item BARCODE_OUT_PS
-@itemx BARCODE_OUT_EPS
-@itemx BARCODE_OUT_PCL
-@itemx BARCODE_OUT_PCL_III
-
-       The currently supported encoding types: full-page postscript
-       and encapsulated postscript; PCL (print command language, for
-        HP printers) and PCL-III (same as PCL, but uses a font not
-        available on older printers).
-
-@item BARCODE_OUT_NOHEADERS
-
-       The flag instructs the printing engine not to print the header
-       and footer part of the file. This makes sense for the
-       postscript engine but might not make sense for other engines;
-       such other engines will silently ignore the flag just like
-        the PCL back-end does.
-
-@end table
-
-%##########################################################################
-
-@node  The API, The barcode Executable, Supported Flags, Top
-@chapter Functions Exported by the Library
-
-%MANPAGE barcode.3
-%M .TH BARCODE 3 "October 1999" "GNU" "GNU barcode"
-%M .UC 4
-%M .SH NAME
-%M barcode \- a library to create and print bar codes
-%M .SH SYNOPSIS
-%M .B #include <barcode.h>
-%M .sp
-%M .BI "struct Barcode_Item *Barcode_Create(char *" text ");"
-%M .br
-%M .BI "int Barcode_Delete(struct Barcode_Item *" bc ");"
-%M .br
-%M .BI "int Barcode_Encode(struct Barcode_Item *" bc ", int " flags ");"
-%M .br
-%M .BI "int Barcode_Print(struct Barcode_Item *" bc ", FILE *" f ", int " flags ");"
-%M .br
-%M .BI "int Barcode_Position(struct Barcode_Item *" bc ", int " wid ", int " hei ", int " xoff ", int " yoff " , double " scalef ");"
-%M .br
-%M .BI "int Barcode_Encode_and_Print(char *" text ", FILE *" f ", int " wid ", int " hei ", int " xoff ", int " yoff ", int " flags ");"
-%M .br
-%M .BI "int Barcode_Version(char *" versionname ");"
-%M
-%M .SH DESCRIPTION
-%M
-%M The barcode family of library functions is meant to ease
-%M creation of bar-code printouts.
-%M
-%M The information below is extracted from the texinfo file, which is the
-%M preferred source of information.
-
-The functions included in the barcode library are declared in the
-header file @t{barcode.h}.  They perform the following tasks:
-
-@table @code
-
-@item struct Barcode_Item *Barcode_Create(char *text);
-       The function creates a new barcode object to deal with a
-       specified text string.  It returns NULL in case of failure and
-       a pointer to a barcode data structure in case of success.
-
-@item int Barcode_Delete(struct Barcode_Item *bc);
-       Destroy a barcode object. Always returns 0 (success)
-
-@item int Barcode_Encode(struct Barcode_Item *bc, int flags);
-       Encode the text included in the @i{bc} object. Valid flags are
-       the encoding type (other flags are ignored) and
-       BARCODE_NO_CHECKSUM (other flags are silently ignored); if the
-       flag argument is zero, @t{bc->flags} will apply. The function
-       returns 0 on success and -1 in case of error. After
-       successful termination the data structure will host the
-       description of the bar code and its textual representation,
-       after a failure the @t{error} field will include the reason of
-       the failure.
-
-@item int Barcode_Print(struct Barcode_Item *bc, FILE *f, int flags);
-       Print the bar code described by @t{bc} to the specified file.
-       Valid flags are the output type, @t{BARCODE_NO_ASCII} and
-       @t{BARCODE_OUT_NOHEADERS}, other flags are ignored. If any of
-       these flags is zero, it will be inherited from @t{bc->flags}
-       which therefore takes precedence. The function returns 0 on
-       success and -1 in case of error (with @t{bc->error} set
-       accordingly). In case of success, the bar code is printed to
-       the specified file, which won't be closed after use.
-
-@item int Barcode_Position(struct Barcode_Item *bc, int wid, int hei, int xoff, int yoff, double scalef);
-       The function is a shortcut to assign values to the data
-       structure.
-
-@item int Barcode_Encode_and_Print(char *text, FILE *f, int wid, int hei, int xoff, int yoff, int flags);
-       The function deals with the whole life of the barcode
-       object by calling the other functions; it uses all the specified
-       flags.
-
-@item int Barcode_Version(char *versionname);
-       Returns the current version as an integer number of the form
-       major * 10000 + minor * 100 + release. Therefore, version
-       1.03.5 will be returned as 10305 and version 0.53 as 5300.  If
-        the argument is non-null, it will be used to return the version
-        number as a string. Note that the same information is available from
-        two preprocessor macros: @t{BARCODE_VERSION} (the string) and
-        @t{BARCODE_VERSION_INT} (the integer number).
-
-@end table
-
-%MANPAGE END
-
-%##########################################################################
-
-@node  The barcode Executable, Supported Encodings, The API, Top
-@chapter The @i{barcode} frontend program
-
-%MANPAGE barcode.1
-%M .TH BARCODE 1 "October 2001" "GNU" "GNU barcode"
-%M .UC 4
-%M .SH NAME
-%M barcode \- a stand alone program to run the barcode library
-%M .SH SYNOPSIS
-%M .B barcode
-%M [\-b - | string] [\-e encoding] [\-o - | outfile] [
-%M .I other-flags
-%M ]
-%M .SH DESCRIPTION
-%M
-%M The information below is extracted from the texinfo file, which is the
-%M preferred source of information.
-%M .PP
-The @b{barcode} program is a front-end to access some features of the
-library from the command line.  It is able to read user supplied
-strings from the command line or a data file (standard input by default)
-and encode all of them.
-
-%M .SH OPTIONS
-%M .PP
-
-@menu
-* The Command Line::            
-@end menu
-
-%--------------------------------------------------------------------------
-@node  The Command Line,  , The barcode Executable, The barcode Executable
-@section The Command Line
-
-
-@b{barcode} accepts the following options:
-
-@table @code
-
-@item --help or -h
-       Print a usage summary and exit.
-
-@item -i filename
-       Identify a file where strings to be encoded are read from. If
-       missing (and if @t{-b} is not used) it defaults to standard
-       input. Each data line of the input file will be used to create
-       one barcode output.
-
-@item -o filename
-       Output file. It defaults to standard output.
-
-@item -b string
-       Specify a single ``barcode'' string to be encoded.
-        The option can be used multiple times in order to encode
-        multiple strings (this will result in multi-page postscript
-        output or a table of barcodes if @t{-t} is specified).  The
-        strings must match the encoding chosen; if it doesn't
-        match the program will print a warning to @t{stderr} and
-        generate ``blank'' output (although not zero-length).
-        Please note that a string including spaces or
-        other special characters must be properly quoted.
-
-@item -e encoding
-        @b{encoding} is the name of the chosen encoding format being
-       used. It defaults to the value of the environment variable
-       @t{BARCODE_ENCODING} or to auto detection if the environment is
-       also unset.
-
-@item -g geometry
-       The geometry argument is of the form ``[@i{<width>} @t{x}
-       @i{<height>}] [@t{+} @i{<xmargin>} @t{+} @i{<ymargin>}]'' (with
-       no intervening spaces). Unspecified margin values will result in
-        no margin; unspecified size results in default size.
-       The specified values represent print points by
-       default, and can be inches, millimeters or other units
-       according to the @t{-u} option or the @t{BARCODE_UNIT}
-       environment variable.  The argument is used to place the
-       printout code on the page. Note that an additional white
-       margin of 10 points is added to the printout. If the option is
-       unspecified, @t{BARCODE_GEOMETRY} is looked up in the
-       environment, if missing a default size and no margin (but the
-       default 10 points) are used.
-
-@item -t table-geometry
-       Used to print several barcodes to a single page, this option
-        is meant to be used to print stickers. The argument is of the
-        form ``@i{<columns>} @t{x} @i{<lines>} [@t{+} @i{<leftmargin>}
-        @t{+} @i{<bottommargin>} [@t{-} @i{<rightmargin>} [@t{-}
-        @i{<topmargin>}]]]'' (with no intervening spaces); if missing,
-        the top and right margin will default to be the same as the
-        bottom and left margin. The margins are specified in print
-        points or in the chosen unit (see @t{-u} below).  If the
-        option is not specified, @t{BARCODE_TABLE} is looked up in the
-        environment, otherwise no table is printed and each barcode
-        will get its own page.  The size (but not the position)
-        of a barcode item within a table can also be selected using
-        @t{-g} (see "geometry" above), without struggling with
-        external and internal margins.  I still think management of
-        geometries in a table is suboptimal, but I can't make it
-        better without introducing incompatibilities.
-
-
-@item -m margin(s)
-       Specifies an internal margin for each sticker in the
-       table. The argument is of the form
-       ``@i{<xmargin>}@t{,}@i{<ymargin>}'' and the margin is applied
-       symmetrically to the sticker. If unspecified, the environment
-       variable @t{BARCODE_MARGIN} is used or a default internal
-       margin of 10 points is used.
-
-@item -n
-       ``Numeric'' output: don't print the ASCII form of the code,
-       only the bars.
-
-@item -c
-       No checksum character (for encodings that allow it, like code 39,
-       other codes, like UPC or EAN, ignore this option).
-
-@item -E
-       Encapsulated postscript (default is normal postscript). When
-       the output is generated as EPS only one barcode is encoded.
-
-@item -P
-       PCL output. Please note that the Y direction goes from top
-        to bottom for PCL, and the origin for an image is the top-left
-        corner instead of the bottom-left
-
-@item -p pagesize
-       Specify a non-default page size. The page size can be specified
-        in millimeters, inches or plain numbers (for example: "@t{210x297mm}",
-        "@t{8.5x11in}", "@t{595x842}"). A page specification as numbers
-       will be interpreted according to the current unit specification
-       (see @t{-u} below). If libpaper is available,
-        you can also specify the page size with its name, like "@t{A3}"
-        or "@t{letter}" (libpaper is a standard component of Debian
-        GNU/Linux, but may be missing elsewhere). The default page
-        size is your system-wide default if libpaper is there, A4 otherwise.
-
-@item -u unit
-       Choose the unit used in size specifications. Accepted values
-       are ``mm'', ``cm'', ``in'' and ``pt''. By default, the program
-       will check @t{BARCODE_UNIT} in the environment, and assume
-       points otherwise (this behaviour is compatible with 0.92 and
-       previous versions. If @t{-u} appears more than once, each
-       instance will modified the behaviour for the arguments at its
-       right, as the command line is processes left to right. The
-       program internally works with points, and any size is
-       approximated to the nearest multiple of one point. The @t{-u}
-       option affect @t{-g} (geometry), @t{-t} (table) and @t{-p}
-       (page size).
-       
-@end table
-
-%M .SH ENCODING TYPES
-%M .PP
-
-%##########################################################################
-@node  Supported Encodings, PCL Output, The barcode Executable, Top
-@chapter Supported Encodings
-
-The program encodes text strings passed either on the command line
-(with -b) or retrieved from standard input. The text representation is
-interpreted according to the following rules. When auto-detection
-of the encoding is enabled (i.e, no explicit encoding type is specified),
-the encoding types are scanned to find one that can digest the text string.
-The following list of supported types is sorted in the same order
-the library uses when auto-detecting a suitable encoding for a string.
-
-@table @var
-
-@item EAN
-       The EAN frontend is similar to UPC; it accepts strings of
-       digits, 12 or 7 characters long. Strings of 13 or 8 characters
-        are accepted if the provided checksum digit is correct.
-        I expect most users to feed input without a 
-        checksum, though. The add-2 and add-5 extension are accepted for both
-        the EAN-13 and the EAN-8 encodings.
-        The following are example of valid input strings:
-       ``@t{123456789012}'' (EAN-13), ``@t{1234567890128}'' (EAN-13 wih
-        checksum),  ``@t{1234567}'' (EAN-8), ``@t{12345670 12345}'' (EAN-8
-        with checksum and add-5),
-       ``@t{123456789012 12}'' (EAN-13 with add-2),
-       ``@t{123456789012 12345}'' (EAN-13 with add-5).
-
-@item UPC
-       The UPC frontend accepts only strings made up of digits (and,
-       if a supplemental encoding is used, a blank to separate it).
-       It accepts strings of 11 or 12 digits (UPC-A) and 6 or 7 or 8
-        digits (UPC-E).
-
-       The 12th digit of UPC-A is the checksum and is added by the
-       library if not specified in the input; if it is specified, it
-        must be the right checksum or the code is rejected as invalid.
-        For UPC-E, 6 digit are considered to be the middle part of the
-        code, a leading 0 is assumed and the checksum is added;
-        7 digits are either considered the initial part (leading digit
-        0 or 1, checksum missing) or the final part (checksum specified,
-        leading 0 assumed); 8 digits are considered to be the complete code,
-        with leading 0 or 1 and checksum.
-        For both UPC-A and UPC-E, a trailing string of 2 digits or 5 digits
-       is accepted as well. Therefore, the following are examples
-        of valid strings that can be encoded as UPC:
-       ``@t{01234567890}'' (UPC-A)
-        ``@t{012345678905}'' (UPC-A with checksum), ``@t{012345}''
-       (UPC-E), ``@t{01234567890 12}'' (UPC-A, add-2) and
-       ``@t{01234567890 12345}'' (UPC-A, add-5), ``@t{0123456 12}''
-        (UPC-E, add-2).
-        Please note that when setting @t{BARCODE_ANY} to auto-detect
-        the encoding to be used, 12-digit strings and 7-digit strings
-        will always be identified as EAN. This because I expect most
-        user to provide input without a checksum. If you need to
-        specify UPC-with-checksum as input you must explicitly set
-        @t{BARCODE_UPC} as a flag or use @t{-e upc} on the command line.
-
-@item ISBN
-       ISBN numbers are encoded as EAN-13 symbols, with an optional
-       add-5 trailer. The ISBN frontend of the library accepts real
-       ISBN numbers and deals with any hyphen and, if present, the
-       ISBN checksum character before encoding data. Valid
-       representations for ISBN strings are for example:
-       ``@t{1-56592-292-1}'', ``@t{3-89721-122-X}'' and ``@t{3-89721-122-X
-       06900}''.
-
-@item code 128-B
-       This encoding can represent all of the printing ASCII
-        characters, from the space (32) to DEL (127). The checksum
-        digit is mandatory in this encoding.
-
-@item code 128-C
-       The ``C'' variation of Code-128 uses Code-128 symbols to
-       represent two digits at a time (Code-128 is made up of 104
-       symbols whose interpretation is controlled by the start symbol
-       being used). Code 128-C is thus the most compact way to
-       represent any even number of digits. The encoder refuses to
-       deal with an odd number of digits because the caller is
-       expected to provide proper padding to an even number of
-       digits. (Since Code-128 includes control symbols to switch
-       charset, it is theoretically possible to represent the odd
-       digit as a Code 128-A or 128-B symbol, but this tool doesn't
-       currently implement this option).
-
-@item code 128 raw
-       Code-128 output represented symbol-by-symbol in the input
-       string.  To override part of the problems outlined below in
-       specifying code128 symbols, this pseudo-encoding allows the
-       used to specify a list of code128 symbols separated by
-       spaces. Each symbol is represented by a number in the range
-       0-105.  The list should include the leading character.The
-       checksum and the stop character are automatically added by the
-       library. Most likely this pseudo-encoding will be used with
-       @t{BARCODE_NO_ASCII} and some external program to supply the
-       printed text.
-
-@item code 39
-       The code-39 standard can encode uppercase letters, digits, the
-       blank space, plus, minus, dot, star, dollar, slash, percent.
-       Any string that is only composed of such characters is
-       accepted by the code-39 encoder. To avoid loosing information,
-       the encoder refuses to encode mixed-case strings (a lowercase
-       string is nonetheless accepted as a shortcut, but is encoded
-       as uppercase).
-
-@item interleaved 2 of 5
-       This encoding can only represent an even number of digits
-        (odd digits are represented by bars, and even digits by the
-        interleaving spaces). The name stresses the fact that two
-        of the five items (bars or spaces) allocated to each symbol
-        are wide, while the rest are narrow. The checksum digit is
-        optional (can be disabled via @t{BARCODE_NO_CHECKSUM}).
-        Since the number of digits, including the checksum, must be even,
-        a leading zero is inserted in the string being encoded if needed
-        (this is specifically stated in the specs I have access to).
-
-@item code 128
-       Automatic selection between alphabet A, B and C of the Code-128
-        standard. This encoding can represent all ASCII symbols, from
-        0 (NUL) to 127 (DEL), as well as four special symbols, named
-        F1, F2, F3, F4. The set of symbols available in this encoding
-        is not easily represented as input to the @i{barcode} library,
-        so the following convention is used.  In the input string,
-        which is a C-language null-terminated string, the NUL char
-        is represented by the value 128 (0x80, 0200) and the F1-F4 characters
-        are represented by the values 193-196 (0xc1-0xc4, 0301-0304).
-        The values have been chosen to ease their representation as
-        escape sequences.
-
-        Since the shell doesn't seem to interpret escape sequences on the
-        command line, the "-b" option cannot be easily used to designate
-        the strings to be encoded. As a workaround you can resort
-        to the command @t{echo}, either within back-ticks or used
-        separately to create a file that is then fed to the standard-input
-        of @i{barcode} -- assuming your @t{echo} command processes escape
-        sequences.  The newline character is especially though to encode
-        (but not impossible unless you use a @t{csh} variant.
-
-        These problems only apply to the command-line tool; the use of
-        library functions doesn't give any problem. In needed, you can
-        use the ``@i{code 128 raw}'' pseudo-encoding to represent
-        code128 symbols by their numerical value. This encoding is
-        used late in the auto-selection mechanism because (almost) any
-        input string can be represented using code128.
-
-@item Codabar
-       Codabar can encode the ten digits and a few special symbols
-       (minus, plus, dollar, colon, bar, dot). The characters
-       ``@t{A}'', ``@t{B}'', ``@t{C}'' and ``@t{D}'' are used to
-       represent four different start/stop characters. The input
-       string to the barcode library can include the start and stop
-       characters or not include them (in which case ``@t{A}'' is
-       used as start and ``@t{B}'' as stop). Start and stop
-       characters in the input string can be either all lowercase or
-       all uppercase and are always printed as uppercase.
-
-@item Plessey
-       Plessey barcodes can encode all the hexadecimal
-       digits. Alphabetic digits in the input string must either be
-       all lowercase or all uppercase. The output text is always
-       uppercase.
-
-@item MSI
-       MSI can only encode the decimal digits. While the standard
-       specifies either one or two check digits, the current
-       implementation in this library only generates one check digit.
-
-@item code 93
-      The code-93 standard can natively encode 48 different characters,
-      including uppercase letters, digits, the blank space, plus, minus,
-      dot, star, dollar, slash, percent, as well as five special
-      characters:  a start/stop delimiter and four "shift characters" used
-      for extended encoding.    Using this "extended encoding" method, any
-      standard 7-bit ASCII character can be encoded, but it takes up two
-      symbol lengths in barcode if the character is not natively supported
-      (one of the 48).
-      The encoder here fully implements the code 93 encoding standard.
-      Any characters natively supported (A-Z, 0-9, ".+-/$&%") will be
-      encoded as such - for any other characters (such as lower case
-      letters, brackets, parentheses, etc.), the encoder will revert
-      to extended encoding.
-      As a note, the option to exclude the checksum will eliminate the
-      two modulo-47 checksums (called C and K) from the barcode, but this
-      probably will make it unreadable by 99% of all scanning systems.
-      These checksums are specified to be used at the firmware level,
-      and their absence will be interpreted as an invalid barcode.
-
-
-@end table
-
-%M .SH PCL OUTPUT
-
-%##########################################################################
-@node  PCL Output, Bugs and Pending Issues, Supported Encodings, Top
-@chapter PCL Output
-
-While the default output is Postscript (possibly EPS), and Postscript
-can be post-processed to almost anything, it is sometimes desirable to
-create output directly usable by the specific printer at hand. 
-PCL is currently supported as an output format for this reason.
-Please note that the Y coordinate for PCL goes from top to bottom, while
-for Postscript it goes from bottom to top. Consistently, while in
-Postscript you specify the bottom-left corner as origin, for PCL
-you specify the top-left corner.
-
-Barcode output for PCL Printers (HP LaserJet and compatibles),
-was developed using PCL5 Reference manuals from HP.
-that really refers to these printers:
-@itemize @bullet
-
-@item
-LaserJet III, III P, III D, III Si,
-
-@item
-LaserJet 4 family
-
-@item
-LaserJet 5 family
-
-@item
-LaserJet 6 family
-
-@item
-Color LaserJet
-
-@item
-DeskJet 1200 and 1600.
-
-@end itemize
-
-However, barcode printing uses a very small subset of PCL, probably also
-LaserJet II should print it without problem, but the resulting text may
-be horrible.
-
-The only real difference from one printer to another really depends on
-which font are available in the printer, used in printing the label
-associated to the bars (if requested).
-
-Earlier LaserJet supports only bitmaps fonts, so these are not
-"scalable". (Ljet II ?), Also these fonts, when available, have a
-specified direction, and not all of them are available in
-both Portrait and Landscape mode.
-
-From LaserJet 4 series, (except 4L/5L that are entry-level printers),
-Arial scalable font should be available, so it's the "default font"
-used by this program.
-
-LaserJet III series printers (and 4L, 5L), don't feature "Arial" as a
-resident font, so you should use @t{BARCODE_OUT_PCL_III} instead of
-@t{BARCODE_OUT_PCL.}, and font the font used will be "Univers" instead
-of "Arial".
-
-Results on compatible printers, may depend on consistency of
-PCL5 compatibility, in doubt, try BARCODE_OUT_PCL_III
-
-PJL commands are not used here, as it's not very compatible.
-
-
-Tested Printers:
-@itemize @bullet
-@item
-Hp LaserJet 4050
-@item
-Hp LaserJet 2100
-@item
-Epson N-1200 emul PCL
-@item
-Toshiba DP2570 (copier) + PCL option
-@item
-Epson EPL-7100 emul. HP LaserJet II: bars print fine but text is bad.
-@end itemize
-
-
-%M .SH BUGS
-
-%##########################################################################
-@node  Bugs and Pending Issues,  , PCL Output, Top
-@chapter Bugs and Pending Issues.
-
-The current management of borders/margins is far from optimal. The
-``default'' margin applied by the library interferes with the external
-representation, but I feel it is mandatory to avoid creating barcode
-output with no surrounding white space (the problem is especially
-relevant for EPS output).
-
-EAN-128 is not (yet) supported. I plan to implement it pretty soon and
-then bless the package as version 1.0.
-
-%M .SH "SEE ALSO"
-%M \fBbarcode(3)\fP
-%M
-%M .SH AUTHORS
-%M Alessandro Rubini <rubini@gnu.org> (maintainer)
-%M .PP
-%M Leonid A. Broukhis <leob@mailcom.com> (several encodings)
-%M .PP
-%M Andrea Scopece <a.scopece@tin.it> (PCL output)
-%MANPAGE END
-
-@iftex
-@contents
-@end iftex
-
-@bye
-@c  LocalWords:  barcode ifinfo titlepage iftex texinfo ascii frontend LGPL
-@c  LocalWords:  tarball malloced textinfo scalef isbn Plessey codabar GPL Ljet
-@c  LocalWords:  LocalWords LaserJet Univers Arial Debian libpaper pagesize
-@c  LocalWords:  Epson MANPAGE stderr barcodes emul DeskJet xmargin ymargin
-@c  LocalWords:  leftmargin rightmargin topmargin bottommargin unset struct
-@c  LocalWords:  NOHEADERS yoff xoff versionname errno malloc behaviour charset
diff --git a/barcode-0.98/doc/infofilter b/barcode-0.98/doc/infofilter
deleted file mode 100755 (executable)
index 92bc8b7..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#! /usr/bin/sed -f
-
-
-# allow "%" as a comment char, but only at the beginning of the line
-s/^%/@c /
-#s/[^\\]%.*$//
-s/^\\%/%/
-
-#preserve blanks in @lisp blocks
-/@lisp/,/@end lisp/ p
-/@lisp/,/@end lisp/ d
-
-# remove leading blanks
-s/^[   ]*//
-
-#s/\\t/@code/g
diff --git a/barcode-0.98/doc/manpager b/barcode-0.98/doc/manpager
deleted file mode 100755 (executable)
index 46de5be..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-#! /usr/bin/awk -f
-# Copyright (c) 1998-2001 Alessandro Rubini
-
-BEGIN {IN=0}
-
-/^%MANPAGE END/ {IN=0; next}
-/^%MANPAGE/     {IN=1; USELP=NEEDLP=INTABLE=0; NAME=$2; next}
-IN==0           {next}
-
-/^%MSKIP/      {SKIP=1;next}
-/^%M/          {SKIP=0}
-
-/^@menu/        {SKIP=1;next}
-/^@end menu/    {SKIP=0;next}
-
-SKIP==1         {next}
-/^%M$/         {next}
-/^@ignore/     {next}
-/^@end ign/     {next}
-
-#now perform all the substitutions needed
-
-               { gsub("^%M ?",""); }
-
-# Use gensub for converting tags: itz Sep 30 1998
-#
-# However, the gensub function is gawk-specific, and we want things
-# to work with original-awk too (for portability).
-# Therefore, use a normal gsub, even though it's a subobptimal solution
-# as it may step in extra braces. The good solution will be piping to sed,
-# or match, extract subesxpression, replace, reinsert -- bleah...
-# (ARub, Oct 10 2000)
-/@b\{/ {
-  #$0 = gensub(/@b\{([^}]+)\}/, "\\\\fB\\1\\\\fP","g");
-  gsub("@b\{","\\fB");
-  gsub("\}","\\fP");
-} 
-
-/@var\{/ {
-  #$0 = gensub(/@var\{([^}]+)\}/, "\\\\fI\\1\\\\fP","g");
-  gsub("@var\{","\\fB");
-  gsub("\}","\\fP");
-} 
-
-/@(samp|code|file)\{/ {
-  #$0 = gensub(/@(samp|code|file)\{([^}]+)\}/, "`\\2'","g");
-  gsub("@(samp|code|file)\{","");
-  gsub("\}","");
-}
-
-
-/@xref\{.*\}\./ {
-  gsub(/@xref\{.*\}\./,"");
-}
-
-/@ref\{.*\}/ {
-  gsub("@ref\{","");
-  gsub("\}","");
-}
-
-/@\*/ {
-  gsub(/@\* */,"\n.br\n");
-}
-
-/@[a-z]+\{/      {
-                gsub("@[a-z]+\\{","");
-               gsub("}","");
-               }
-
-/^@table/       { TABLE=1; }
-/^@itemize/     { TABLE=1; next}
-
-/^@item/        {
-               gsub("^@item *","");
-               printf ".TP\n%s\n",$0 > NAME;
-               NEEDLP=0; next;
-               }
-
-/^@end table/   {TABLE=0}
-/^@end itemize/ {TABLE=0}
-
-# discard other texinfo commands
-
-/^@/           {next}
-
-# manage comments and '%'
-
-/^%/           {next}
-
-
-               {
-               gsub("[^\\\\]%.*$","");
-               gsub("\\%","%");
-               }
-
-# remove leading blanks
-
-/^[ \t]/       {gsub("^[ \t]*","");}
-
-# put a .LP at blank lines
-
-/^.nf/          {USELP=0}
-/^.fi/          {USELP=1}
-
-/^$/           {if (USELP) {NEEDLP++; next;} }
-
-
-/./            { if (NEEDLP) { printf "\n.LP\n" > NAME; NEEDLP=0; } }
-
-/^.TH/         {USELP=1}
-
-# Escape single slashes (e.g. in documentation for `-l' command line option)
-
-               {gsub("\\\\ ", "\\\\ ");}
-
-                {gsub("~", "~~");}
-
-               {print > NAME}
-
-
diff --git a/barcode-0.98/doc/mktxt b/barcode-0.98/doc/mktxt
deleted file mode 100755 (executable)
index bd3f88b..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-#! /usr/bin/awk -f
-
-# Warning: this may use gnu-awk features
-
-# Program to create ascii from info;
-# Missing: table of contents
-
-# skip 
-
-BEGIN {NODELINE=0; NODE=0; KEEP=1; printf "\n\n"}
-
-
-/^\037$/     { NODELINE=1; NODE=NODE+1; KEEP=1; next}
-
-NODE==1      { next }
-
-NODELINE==1  {
-             NODELINE=2;
-            sub("^.*Node: ","*Node: ");
-            sub(",.*$","");
-            printf "\n\n\n%s",$0;
-#print
-            next;
-            }
-
-NODELINE     { NODELINE=NODELINE+1 }
-
-NODELINE==4  { printf "\t\t\t\t"; }
-NODELINE==5  { printf "\t\t\t\t"; NODELINE=0}
-
-
-/^\* Menu:$/  { KEEP=0 }
-
-
-
-KEEP==0      { next }
-
-{ print }
diff --git a/barcode-0.98/doc/texi2html b/barcode-0.98/doc/texi2html
deleted file mode 100755 (executable)
index 2c61aa9..0000000
+++ /dev/null
@@ -1,2021 +0,0 @@
-#!/usr/local/bin/perl
-'di ';
-'ig 00 ';
-#+##############################################################################
-#                                                                              #
-# File: texi2html                                                              #
-#                                                                              #
-# Description: Program to transform most Texinfo documents to HTML             #
-#                                                                              #
-#-##############################################################################
-
-# @(#)texi2html        1.51 09/10/96   Written (mainly) by Lionel Cons, Lionel.Cons@cern.ch
-
-# The man page for this program is included at the end of this file and can be
-# viewed using the command 'nroff -man texi2html'.
-# Please read the copyright at the end of the man page.
-
-#+++############################################################################
-#                                                                              #
-# Constants                                                                    #
-#                                                                              #
-#---############################################################################
-
-$DEBUG_TOC   =  1;
-$DEBUG_INDEX =  2;
-$DEBUG_BIB   =  4;
-$DEBUG_GLOSS =  8;
-$DEBUG_DEF   = 16;
-$DEBUG_HTML  = 32;
-$DEBUG_USER  = 64;
-
-$BIBRE = '\[[\w\/]+\]';                        # RE for a bibliography reference
-$FILERE = '[\/\w.+-]+';                        # RE for a file name
-$VARRE = '[^\s\{\}]+';                 # RE for a variable name
-$NODERE = '[^@{}:\'`",]+';             # RE for a node name
-$NODESRE = '[^@{}:\'`"]+';             # RE for a list of node names
-$XREFRE = '[^@{}]+';                   # RE for a xref (should use NODERE)
-
-$ERROR = "***";                                # prefix for errors and warnings
-$THISPROG = "texi2html 1.51";                  # program name and version
-$HOMEPAGE = "http://wwwcn.cern.ch/dci/texi2html/"; # program home page
-$TODAY = &pretty_date;                 # like "20 September 1993"
-$SPLITTAG = "<!-- SPLIT HERE -->\n";   # tag to know where to split
-$PROTECTTAG = "_ThisIsProtected_";     # tag to recognize protected sections
-$html2_doctype = '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0 Strict Level 2//EN">';
-
-#
-# language dependent constants
-#
-#$LDC_SEE = 'see';
-#$LDC_SECTION = 'section';
-#$LDC_IN = 'in';
-#$LDC_TOC = 'Table of Contents';
-#$LDC_GOTO = 'Go to the';
-#$LDC_FOOT = 'Footnotes';
-# TODO: @def* shortcuts
-
-#
-# pre-defined indices
-#
-%predefined_index = (
-                   'cp', 'c',
-                   'fn', 'f',
-                   'vr', 'v',
-                   'ky', 'k',
-                   'pg', 'p',
-                   'tp', 't',
-                   );
-
-#
-# valid indices
-#
-%valid_index = (
-                   'c', 1,
-                   'f', 1,
-                   'v', 1,
-                   'k', 1,
-                   'p', 1,
-                   't', 1,
-               );
-
-#
-# texinfo section names to level
-#
-%sec2level = (
-             'top', 0,
-             'chapter', 1,
-             'unnumbered', 1,
-             'majorheading', 1,
-             'chapheading', 1,
-             'appendix', 1,
-             'section', 2,
-             'unnumberedsec', 2,
-             'heading', 2,
-             'appendixsec', 2,
-             'appendixsection', 2,
-             'subsection', 3,
-             'unnumberedsubsec', 3,
-             'subheading', 3,
-             'appendixsubsec', 3,
-             'subsubsection', 4,
-             'unnumberedsubsubsec', 4,
-             'subsubheading', 4,
-             'appendixsubsubsec', 4,
-             );
-
-#
-# accent map, TeX command to ISO name
-#
-%accent_map = (
-              '"',  'uml',
-              '~',  'tilde',
-              '^',  'circ',
-              '`',  'grave',
-              '\'', 'acute',
-              );
-
-#
-# texinfo "simple things" (@foo) to HTML ones
-#
-%simple_map = (
-              # cf. makeinfo.c
-              "*", "<BR>",             # HTML+
-              " ", " ",
-              "\n", "\n",
-              "|", "",
-              # spacing commands
-              ":", "",
-              "!", "!",
-              "?", "?",
-              ".", ".",
-              );
-
-#
-# texinfo "things" (@foo{}) to HTML ones
-#
-%things_map = (
-              'TeX', 'TeX',
-              'br', '<P>',             # paragraph break
-              'bullet', '*',
-              'copyright', '(C)',
-              'dots', '...',
-              'equiv', '==',
-              'error', 'error-->',
-              'expansion', '==>',
-              'minus', '-',
-              'point', '-!-',
-              'print', '-|',
-              'result', '=>',
-              'today', $TODAY,
-              );
-
-#
-# texinfo styles (@foo{bar}) to HTML ones
-#
-%style_map = (
-             'asis', '',
-             'b', 'B',
-             'cite', 'CITE',
-             'code', 'CODE',
-             'ctrl', '&do_ctrl',       # special case
-             'dfn', 'STRONG',          # DFN tag is illegal in the standard
-             'dmn', '',                # useless
-             'emph', 'EM',
-             'file', '"TT',            # will put quotes, cf. &apply_style
-             'i', 'I',
-             'kbd', 'KBD',
-             'key', 'KBD',
-             'r', '',                  # unsupported
-             'samp', '"SAMP',          # will put quotes, cf. &apply_style
-             'sc', '&do_sc',           # special case
-             'strong', 'STRONG',
-             't', 'TT',
-             'titlefont', '',          # useless
-             'var', 'VAR',
-             'w', '',                  # unsupported
-             );
-
-#
-# texinfo format (@foo/@end foo) to HTML ones
-#
-%format_map = (
-              'display', 'PRE',
-              'example', 'PRE',
-              'format', 'PRE',
-              'lisp', 'PRE',
-              'quotation', 'BLOCKQUOTE',
-              'smallexample', 'PRE',
-              'smalllisp', 'PRE',
-              # lists
-              'itemize', 'UL',
-              'enumerate', 'OL',
-              # poorly supported
-              'flushleft', 'PRE',
-              'flushright', 'PRE',
-              );
-
-#
-# texinfo definition shortcuts to real ones
-#
-%def_map = (
-           # basic commands
-           'deffn', 0,
-           'defvr', 0,
-           'deftypefn', 0,
-           'deftypevr', 0,
-           'defcv', 0,
-           'defop', 0,
-           'deftp', 0,
-           # basic x commands
-           'deffnx', 0,
-           'defvrx', 0,
-           'deftypefnx', 0,
-           'deftypevrx', 0,
-           'defcvx', 0,
-           'defopx', 0,
-           'deftpx', 0,
-           # shortcuts
-           'defun', 'deffn Function',
-           'defmac', 'deffn Macro',
-           'defspec', 'deffn {Special Form}',
-           'defvar', 'defvr Variable',
-           'defopt', 'defvr {User Option}',
-           'deftypefun', 'deftypefn Function',
-           'deftypevar', 'deftypevr Variable',
-           'defivar', 'defcv {Instance Variable}',
-           'defmethod', 'defop Method',
-           # x shortcuts
-           'defunx', 'deffnx Function',
-           'defmacx', 'deffnx Macro',
-           'defspecx', 'deffnx {Special Form}',
-           'defvarx', 'defvrx Variable',
-           'defoptx', 'defvrx {User Option}',
-           'deftypefunx', 'deftypefnx Function',
-           'deftypevarx', 'deftypevrx Variable',
-           'defivarx', 'defcvx {Instance Variable}',
-           'defmethodx', 'defopx Method',
-           );
-
-#
-# things to skip
-#
-%to_skip = (
-           # comments
-           'c', 1,
-           'comment', 1,
-           # useless
-           'contents', 1,
-           'shortcontents', 1,
-           'summarycontents', 1,
-           'footnotestyle', 1,
-           'end ifclear', 1,
-           'end ifset', 1,
-           'titlepage', 1,
-           'end titlepage', 1,
-           # unsupported commands (formatting)
-           'afourpaper', 1,
-           'cropmarks', 1,
-           'finalout', 1,
-           'headings', 1,
-           'need', 1,
-           'page', 1,
-           'setchapternewpage', 1,
-           'everyheading', 1,
-           'everyfooting', 1,
-           'evenheading', 1,
-           'evenfooting', 1,
-           'oddheading', 1,
-           'oddfooting', 1,
-           'smallbook', 1,
-           'vskip', 1,
-           'filbreak', 1,
-           # unsupported formats
-           'cartouche', 1,
-           'end cartouche', 1,
-           'group', 1,
-           'end group', 1,
-           );
-
-#+++############################################################################
-#                                                                              #
-# Argument parsing, initialisation                                             #
-#                                                                              #
-#---############################################################################
-
-$use_bibliography = 1;
-$use_acc = 0;
-$debug = 0;
-$doctype = '';
-$check = 0;
-$expandinfo = 0;
-$use_glossary = 0;
-$invisible_mark = '';
-$use_iso = 0;
-@include_dirs = ();
-$show_menu = 0;
-$number_sections = 0;
-$split_node = 0;
-$split_chapter = 0;
-$monolithic = 0;
-$verbose = 0;
-$usage = <<EOT;
-This is $THISPROG
-To convert a Texinfo file to HMTL: $0 [options] file
-  where options can be:
-    -expandinfo    : use \@ifinfo sections, not \@iftex
-    -glossary      : handle a glossary
-    -invisible name: use 'name' as an invisible anchor
-    -I dir         : search also for files in 'dir'
-    -menu          : handle menus
-    -monolithic    : output only one file including ToC
-    -number        : number sections
-    -split_chapter : split on main sections
-    -split_node    : split on nodes
-    -usage         : print usage instructions
-    -verbose       : verbose output
-To check converted files: $0 -check [-verbose] files
-EOT
-
-while ($#ARGV >= 0 && $ARGV[0] =~ /^-/) {
-    $_ = shift(@ARGV);
-    if (/^-acc$/)            { $use_acc = 1; next; }
-    if (/^-d(ebug)?(\d+)?$/) { $debug = $2 || shift(@ARGV); next; }
-    if (/^-doctype$/)        { $doctype = shift(@ARGV); next; }
-    if (/^-c(heck)?$/)       { $check = 1; next; }
-    if (/^-e(xpandinfo)?$/)  { $expandinfo = 1; next; }
-    if (/^-g(lossary)?$/)    { $use_glossary = 1; next; }
-    if (/^-i(nvisible)?$/)   { $invisible_mark = shift(@ARGV); next; }
-    if (/^-iso$/)            { $use_iso = 1; next; }
-    if (/^-I(.+)?$/)         { push(@include_dirs, $1 || shift(@ARGV)); next; }
-    if (/^-m(enu)?$/)        { $show_menu = 1; next; }
-    if (/^-mono(lithic)?$/)  { $monolithic = 1; next; }
-    if (/^-n(umber)?$/)      { $number_sections = 1; next; }
-    if (/^-s(plit)?_?(n(ode)?|c(hapter)?)?$/) {
-       if ($2 =~ /^n/) {
-           $split_node = 1;
-       } else {
-           $split_chapter = 1;
-       }
-       next;
-    }
-    if (/^-v(erbose)?$/)     { $verbose = 1; next; }
-    die $usage;
-}
-if ($check) {
-    die $usage unless @ARGV > 0;
-    &check;
-    exit;
-}
-
-if (($split_node || $split_chapter) && $monolithic) {
-    warn "Can't use -monolithic with -split, -monolithic ignored.\n";
-    $monolithic = 0;
-}
-if ($expandinfo) {
-    $to_skip{'ifinfo'}++;
-    $to_skip{'end ifinfo'}++;
-} else {
-    $to_skip{'iftex'}++;
-    $to_skip{'end iftex'}++;
-}
-$invisible_mark = '<IMG SRC="invisible.xbm">' if $invisible_mark eq 'xbm';
-die $usage unless @ARGV == 1;
-$docu = shift(@ARGV);
-if ($docu =~ /.*\//) {
-    chop($docu_dir = $&);
-    $docu_name = $';
-} else {
-    $docu_dir = '.';
-    $docu_name = $docu;
-}
-unshift(@include_dirs, $docu_dir);
-$docu_name =~ s/\.te?x(i|info)?$//;    # basename of the document
-
-$docu_doc = "$docu_name.html";         # document's contents
-if ($monolithic) {
-    $docu_toc = $docu_foot = $docu_doc;
-} else {
-    $docu_toc  = "${docu_name}_toc.html";  # document's table of contents
-    $docu_foot = "${docu_name}_foot.html"; # document's footnotes
-}
-
-#
-# variables
-#
-%value = ();                           # hold texinfo variables
-$value{'html'} = 1;                    # predefine html (the output format)
-$value{'texi2html'} = '1.51';          # predefine texi2html (the translator)
-# _foo: internal to track @foo
-foreach ('_author', '_title', '_subtitle',
-        '_settitle', '_setfilename') {
-    $value{$_} = '';                   # prevent -w warnings
-}
-%node2sec = ();                                # node to section name
-%node2href = ();                       # node to HREF
-%bib2href = ();                                # bibliography reference to HREF
-%gloss2href = ();                      # glossary term to HREF
-@sections = ();                                # list of sections
-%tag2pro = ();                         # protected sections
-
-#
-# initial indexes
-#
-$bib_num = 0;
-$foot_num = 0;
-$gloss_num = 0;
-$idx_num = 0;
-$sec_num = 0;
-$doc_num = 0;
-$html_num = 0;
-
-#
-# can I use ISO8879 characters? (HTML+)
-#
-if ($use_iso) {
-    $things_map{'bullet'} = "&bull;";
-    $things_map{'copyright'} = "&copy;";
-    $things_map{'dots'} = "&hellip;";
-    $things_map{'equiv'} = "&equiv;";
-    $things_map{'expansion'} = "&rarr;";
-    $things_map{'point'} = "&lowast;";
-    $things_map{'result'} = "&rArr;";
-}
-
-#
-# read texi2html extensions (if any)
-#
-$extensions = 'texi2html.ext'; # extensions in working directory
-if (-f $extensions) {
-    print "# reading extensions from $extensions\n" if $verbose;
-    require($extensions);
-}
-($progdir = $0) =~ s/[^\/]+$//;
-if ($progdir && ($progdir ne './')) {
-    $extensions = "${progdir}texi2html.ext"; # extensions in texi2html directory
-    if (-f $extensions) {
-       print "# reading extensions from $extensions\n" if $verbose;
-       require($extensions);
-    }
-}
-
-print "# reading from $docu\n" if $verbose;
-
-#+++############################################################################
-#                                                                              #
-# Pass 1: read source, handle command, variable, simple substitution           #
-#                                                                              #
-#---############################################################################
-
-@lines = ();                           # whole document
-@toc_lines = ();                       # table of contents
-$toplevel = 0;                         # top level seen in hierarchy
-$curlevel = 0;                         # current level in TOC
-$node = '';                            # current node name
-$in_table = 0;                         # am I inside a table
-$table_type = '';                      # type of table ('', 'f', 'v')
-@tables = ();                          # nested table support
-$in_bibliography = 0;                  # am I inside a bibliography
-$in_glossary = 0;                      # am I inside a glossary
-$in_top = 0;                           # am I inside the top node
-$in_pre = 0;                           # am I inside a preformatted section
-$in_list = 0;                          # am I inside a list
-$in_html = 0;                          # am I inside an HTML section
-$first_line = 1;                       # is it the first line
-$dont_html = 0;                                # don't protect HTML on this line
-$split_num = 0;                                # split index
-$deferred_ref = '';                    # deferred reference for indexes
-@html_stack = ();                      # HTML elements stack
-$html_element = '';                    # current HTML element
-&html_reset;
-
-# build code for simple substitutions
-# the maps used (%simple_map and %things_map) MUST be aware of this
-# watch out for regexps, / and escaped characters!
-$subst_code = '';
-foreach (keys(%simple_map)) {
-    ($re = $_) =~ s/(\W)/\\$1/g; # protect regexp chars
-    $subst_code .= "s/\\\@$re/$simple_map{$_}/g;\n";
-}
-foreach (keys(%things_map)) {
-    $subst_code .= "s/\\\@$_\\{\\}/$things_map{$_}/g;\n";
-}
-if ($use_acc) {
-    # accentuated characters
-    foreach (keys(%accent_map)) {
-       if ($_ eq "`") {
-           $subst_code .= "s/$;3";
-       } elsif ($_ eq "'") {
-           $subst_code .= "s/$;4";
-       } else {
-           $subst_code .= "s/\\\@\\$_";
-       }
-       $subst_code .= "([aeiou])/&\${1}$accent_map{$_};/gi;\n";
-    }
-}
-eval("sub simple_substitutions { $subst_code }");
-
-&init_input;
-while ($_ = &next_line) {
-    #
-    # remove \input on the first lines only
-    #
-    if ($first_line) {
-       next if /^\\input/;
-       $first_line = 0;
-    }
-    #
-    # parse texinfo tags
-    #
-    $tag = '';
-    $end_tag = '';
-    if (/^\@end\s+(\w+)\b/) {
-       $end_tag = $1;
-    } elsif (/^\@(\w+)\b/) {
-       $tag = $1;
-    }
-    #
-    # handle @ifhtml / @end ifhtml
-    #
-    if ($in_html) {
-       if ($end_tag eq 'ifhtml') {
-           $in_html = 0;
-       } else {
-           $tag2pro{$in_html} .= $_;
-       }
-       next;
-    } elsif ($tag eq 'ifhtml') {
-       $in_html = $PROTECTTAG . ++$html_num;
-       push(@lines, $in_html);
-       next;
-    }
-    #
-    # try to skip the line
-    #
-    if ($end_tag) {
-       next if $to_skip{"end $end_tag"};
-    } elsif ($tag) {
-       next if $to_skip{$tag};
-       last if $tag eq 'bye';
-    }
-    if ($in_top) {
-       # parsing the top node
-       if ($tag eq 'node' || $tag eq 'include' || $sec2level{$tag}) {
-           # no more in top
-           $in_top = 0;
-       } else {
-           # skip it
-           next;
-       }
-    }
-    #
-    # try to remove inlined comments
-    # syntax from tex-mode.el comment-start-skip
-    #
-    s/((^|[^\@])(\@\@)*)\@c(omment)? .*/$1/;
-    # non-@ substitutions cf. texinfmt.el
-    s/``/\"/g;
-    s/''/\"/g;
-    s/([\w ])---([\w ])/$1--$2/g;
-    #
-    # analyze the tag
-    #
-    if ($tag) {
-       # skip lines
-       &skip_until($tag), next if $tag eq 'ignore';
-       if ($expandinfo) {
-           &skip_until($tag), next if $tag eq 'iftex';
-       } else {
-           &skip_until($tag), next if $tag eq 'ifinfo';
-       }
-       &skip_until($tag), next if $tag eq 'tex';
-       # handle special tables
-       if ($tag eq 'table') {
-           $table_type = '';
-       } elsif ($tag eq 'ftable') {
-           $tag = 'table';
-           $table_type = 'f';
-       } elsif ($tag eq 'vtable') {
-           $tag = 'table';
-           $table_type = 'v';
-       }
-       # special cases
-       if ($tag eq 'top' || ($tag eq 'node' && /^\@node\s+top\s*,/i)) {
-           $in_top = 1;
-           @lines = (); # ignore all lines before top (title page garbage)
-           next;
-       } elsif ($tag eq 'node') {
-           $in_top = 0;
-           warn "$ERROR Bad node line: $_" unless $_ =~ /^\@node\s$NODESRE$/o;
-           $_ = &protect_html($_); # if node contains '&' for instance
-           s/^\@node\s+//;
-           ($node) = split(/,/);
-           &normalise_node($node);
-           if ($split_node) {
-               &next_doc;
-               push(@lines, $SPLITTAG) if $split_num++;
-               push(@sections, $node);
-           }
-           next;
-       } elsif ($tag eq 'include') {
-           if (/^\@include\s+($FILERE)\s*$/o) {
-               $file = $1;
-               unless (-e $file) {
-                   foreach $dir (@include_dirs) {
-                       $file = "$dir/$1";
-                       last if -e $file;
-                   }
-               }
-               if (-e $file) {
-                   &open($file);
-                   print "# including $file\n" if $verbose;
-               } else {
-                   warn "$ERROR Can't find $file, skipping";
-               }
-           } else {
-               warn "$ERROR Bad include line: $_";
-           }
-           next;
-       } elsif ($tag eq 'ifclear') {
-           if (/^\@ifclear\s+($VARRE)\s*$/o) {
-               next unless defined($value{$1});
-               &skip_until($tag);
-           } else {
-               warn "$ERROR Bad ifclear line: $_";
-           }
-           next;
-       } elsif ($tag eq 'ifset') {
-           if (/^\@ifset\s+($VARRE)\s*$/o) {
-               next if defined($value{$1});
-               &skip_until($tag);
-           } else {
-               warn "$ERROR Bad ifset line: $_";
-           }
-           next;
-       } elsif ($tag eq 'menu') {
-           unless ($show_menu) {
-               &skip_until($tag);
-               next;
-           }
-           &html_push_if($tag);
-           push(@lines, &html_debug("\n", __LINE__));
-       } elsif ($format_map{$tag}) {
-           $in_pre = 1 if $format_map{$tag} eq 'PRE';
-           &html_push_if($format_map{$tag});
-           push(@lines, &html_debug("\n", __LINE__));
-           $in_list++ if $format_map{$tag} eq 'UL' || $format_map{$tag} eq 'OL' ;
-           push(@lines, &debug("<$format_map{$tag}>\n", __LINE__));
-           next;
-       } elsif ($tag eq 'table') {
-           if (/^\@[fv]?table\s+\@(\w+)\s*$/) {
-               $in_table = $1;
-               unshift(@tables, join($;, $table_type, $in_table));
-               push(@lines, &debug("<DL COMPACT>\n", __LINE__));
-               &html_push_if('DL');
-               push(@lines, &html_debug("\n", __LINE__));
-           } else {
-               warn "$ERROR Bad table line: $_";
-           }
-           next;
-       } elsif ($tag eq 'synindex' || $tag eq 'syncodeindex') {
-           if (/^\@$tag\s+(\w)\w\s+(\w)\w\s*$/) {
-               eval("*${1}index = *${2}index");
-           } else {
-               warn "$ERROR Bad syn*index line: $_";
-           }
-           next;
-       } elsif ($tag eq 'sp') {
-           push(@lines, &debug("<P>\n", __LINE__));
-           next;
-       } elsif ($tag eq 'setref') {
-           &protect_html; # if setref contains '&' for instance
-           if (/^\@$tag\s*{($NODERE)}\s*$/) {
-               $setref = $1;
-               $setref =~ s/\s+/ /g; # normalize
-               $setref =~ s/ $//;
-               $node2sec{$setref} = $name;
-               $node2href{$setref} = "$docu_doc#$docid";
-           } else {
-               warn "$ERROR Bad setref line: $_";
-           }
-           next;
-       } elsif ($tag eq 'defindex' || $tag eq 'defcodeindex') {
-           if (/^\@$tag\s+(\w\w)\s*$/) {
-               $valid_index{$1} = 1;
-           } else {
-               warn "$ERROR Bad defindex line: $_";
-           }
-           next;
-       } elsif (defined($def_map{$tag})) {
-           if ($def_map{$tag}) {
-               s/^\@$tag\s+//;
-               $tag = $def_map{$tag};
-               $_ = "\@$tag $_";
-               $tag =~ s/\s.*//;
-           }
-       } elsif (defined($user_sub{$tag})) {
-           s/^\@$tag\s+//;
-           $sub = $user_sub{$tag};
-           print "# user $tag = $sub, arg: $_" if $debug & $DEBUG_USER;
-           if (defined(&$sub)) {
-               chop($_);
-               &$sub($_);
-           } else {
-               warn "$ERROR Bad user sub for $tag: $sub\n";
-           }
-           next;
-       }
-       if (defined($def_map{$tag})) {
-           s/^\@$tag\s+//;
-           if ($tag =~ /x$/) {
-               # extra definition line
-               $tag = $`;
-               $is_extra = 1;
-           } else {
-               $is_extra = 0;
-           }
-           while (/\{([^\{\}]*)\}/) {
-               # this is a {} construct
-               ($before, $contents, $after) = ($`, $1, $');
-               # protect spaces
-               $contents =~ s/\s+/$;9/g;
-               # restore $_ protecting {}
-               $_ = "$before$;7$contents$;8$after";
-           }
-           @args = split(/\s+/, &protect_html($_));
-           foreach (@args) {
-               s/$;9/ /g;      # unprotect spaces
-               s/$;7/\{/g;     # ... {
-               s/$;8/\}/g;     # ... }
-           }
-           $type = shift(@args);
-           $type =~ s/^\{(.*)\}$/$1/;
-           print "# def ($tag): {$type} ", join(', ', @args), "\n"
-               if $debug & $DEBUG_DEF;
-           $type .= ':'; # it's nicer like this
-           $name = shift(@args);
-           $name =~ s/^\{(.*)\}$/$1/;
-           if ($is_extra) {
-               $_ = &debug("<DT>", __LINE__);
-           } else {
-               $_ = &debug("<DL>\n<DT>", __LINE__);
-           }
-           if ($tag eq 'deffn' || $tag eq 'defvr' || $tag eq 'deftp') {
-               $_ .= "<U>$type</U> <B>$name</B>";
-               $_ .= " <I>@args</I>" if @args;
-           } elsif ($tag eq 'deftypefn' || $tag eq 'deftypevr'
-                    || $tag eq 'defcv' || $tag eq 'defop') {
-               $ftype = $name;
-               $name = shift(@args);
-               $name =~ s/^\{(.*)\}$/$1/;
-               $_ .= "<U>$type</U> $ftype <B>$name</B>";
-               $_ .= " <I>@args</I>" if @args;
-           } else {
-               warn "$ERROR Unknown definition type: $tag\n";
-               $_ .= "<U>$type</U> <B>$name</B>";
-               $_ .= " <I>@args</I>" if @args;
-           }
-           $_ .= &debug("\n<DD>", __LINE__);
-           $name = &unprotect_html($name);
-           if ($tag eq 'deffn' || $tag eq 'deftypefn') {
-               unshift(@input_spool, "\@findex $name\n");
-           } elsif ($tag eq 'defop') {
-               unshift(@input_spool, "\@findex $name on $ftype\n");
-           } elsif ($tag eq 'defvr' || $tag eq 'deftypevr' || $tag eq 'defcv') {
-               unshift(@input_spool, "\@vindex $name\n");
-           } else {
-               unshift(@input_spool, "\@tindex $name\n");
-           }
-           $dont_html = 1;
-       }
-    } elsif ($end_tag) {
-       if ($format_map{$end_tag}) {
-           $in_pre = 0 if $format_map{$end_tag} eq 'PRE';
-           $in_list-- if $format_map{$end_tag} eq 'UL' || $format_map{$end_tag} eq 'OL' ;
-           &html_pop_if('LI', 'P');
-           &html_pop_if();
-           push(@lines, &debug("</$format_map{$end_tag}>\n", __LINE__));
-           push(@lines, &html_debug("\n", __LINE__));
-       } elsif ($end_tag eq 'table' ||
-                $end_tag eq 'ftable' ||
-                $end_tag eq 'vtable') {
-           shift(@tables);
-           if (@tables) {
-               ($table_type, $in_table) = split($;, $tables[0]);
-           } else {
-               $in_table = 0;
-           }
-           push(@lines, "</DL>\n");
-           &html_pop_if('DD');
-           &html_pop_if();
-       } elsif (defined($def_map{$end_tag})) {
-           push(@lines, &debug("</DL>\n", __LINE__));
-       } elsif ($end_tag eq 'menu') {
-           &html_pop_if();
-           push(@lines, $_); # must keep it for pass 2
-       }
-       next;
-    }
-    #
-    # misc things
-    #
-    # protect texi and HTML things
-    &protect_texi;
-    $_ = &protect_html($_) unless $dont_html;
-    $dont_html = 0;
-    # substitution (unsupported things)
-    s/^\@center\s+//g;
-    s/^\@exdent\s+//g;
-    s/\@noindent\s+//g;
-    s/\@refill\s+//g;
-    # other substitutions
-    &simple_substitutions;
-    s/\@value{($VARRE)}/$value{$1}/eg;
-    s/\@footnote\{/\@footnote$docu_doc\{/g; # mark footnotes, cf. pass 4
-    #
-    # analyze the tag again
-    #
-    if ($tag) {
-       if (defined($sec2level{$tag}) && $sec2level{$tag} > 0) {
-           if (/^\@$tag\s+(.+)$/) {
-               $name = $1;
-               $name =~ s/\s+$//;
-               $level = $sec2level{$tag};
-               $name = &update_sec_num($tag, $level) . "  $name"
-                   if $number_sections && $tag !~ /^unnumbered/;
-               if ($tag =~ /heading$/) {
-                   push(@lines, &html_debug("\n", __LINE__));
-                   if ($html_element ne 'body') {
-                       # We are in a nice pickle here. We are trying to get a H? heading
-                       # even though we are not in the body level. So, we convert it to a
-                       # nice, bold, line by itself.
-                       $_ = &debug("\n\n<P><STRONG>$name</STRONG></P>\n\n", __LINE__);
-                   } else {
-                       $_ = &debug("<H$level>$name</H$level>\n", __LINE__);
-                       &html_push_if('body');
-                   }
-                   print "# heading, section $name, level $level\n"
-                       if $debug & $DEBUG_TOC;
-               } else {
-                   if ($split_chapter) {
-                       unless ($toplevel) {
-                           # first time we see a "section"
-                           unless ($level == 1) {
-                               warn "$ERROR The first section found is not of level 1: $_";
-                               warn "$ERROR I'll split on sections of level $level...\n";
-                           }
-                           $toplevel = $level;
-                       }
-                       if ($level == $toplevel) {
-                           &next_doc;
-                           push(@lines, $SPLITTAG) if $split_num++;
-                           push(@sections, $name);
-                       }
-                   }
-                   $sec_num++;
-                   $docid = "SEC$sec_num";
-                   $tocid = "TOC$sec_num";
-                   # check biblio and glossary
-                   $in_bibliography = ($name =~ /^([A-Z]|\d+)?(\.\d+)*\s*bibliography$/i);
-                   $in_glossary = ($name =~ /^([A-Z]|\d+)?(\.\d+)*\s*glossary$/i);
-                   # check node
-                   if ($node) {
-                       if ($node2sec{$node}) {
-                           warn "$ERROR Duplicate node found: $node\n";
-                       } else {
-                           $node2sec{$node} = $name;
-                           $node2href{$node} = "$docu_doc#$docid";
-                           print "# node $node, section $name, level $level\n"
-                               if $debug & $DEBUG_TOC;
-                       }
-                       $node = '';
-                   } else {
-                       print "# no node, section $name, level $level\n"
-                           if $debug & $DEBUG_TOC;
-                   }
-                   # update TOC
-                   while ($level > $curlevel) {
-                       $curlevel++;
-                       push(@toc_lines, "<UL>\n");
-                   }
-                   while ($level < $curlevel) {
-                       $curlevel--;
-                       push(@toc_lines, "</UL>\n");
-                   }
-                   $_ = "<LI>" . &anchor($tocid, "$docu_doc#$docid", $name, 1);
-                   push(@toc_lines, &substitute_style($_));
-                   # update DOC
-                   push(@lines, &html_debug("\n", __LINE__));
-                   &html_reset;
-                   $_ =  "<H$level>".&anchor($docid, "$docu_toc#$tocid", $name)."</H$level>\n";
-                   $_ = &debug($_, __LINE__);
-                   push(@lines, &html_debug("\n", __LINE__));
-               }
-               # update DOC
-               foreach $line (split(/\n+/, $_)) {
-                   push(@lines, "$line\n");
-               }
-               next;
-           } else {
-               warn "$ERROR Bad section line: $_";
-           }
-       } else {
-           # track variables
-           $value{$1} = $2, next if /^\@set\s+($VARRE)\s+(.*)$/o;
-           delete $value{$1}, next if /^\@clear\s+($VARRE)\s*$/o;
-           # store things
-           $value{'_setfilename'}   = $1, next if /^\@setfilename\s+(.*)$/;
-           $value{'_settitle'}      = $1, next if /^\@settitle\s+(.*)$/;
-           $value{'_author'}   .= "$1\n", next if /^\@author\s+(.*)$/;
-           $value{'_subtitle'} .= "$1\n", next if /^\@subtitle\s+(.*)$/;
-           $value{'_title'}    .= "$1\n", next if /^\@title\s+(.*)$/;
-           # index
-           if (/^\@(..?)index\s+/) {
-               unless ($valid_index{$1}) {
-                   warn "$ERROR Undefined index command: $_";
-                   next;
-               }
-               $id = 'IDX' . ++$idx_num;
-               $index = $1 . 'index';
-               $what = &substitute_style($');
-               $what =~ s/\s+$//;
-               print "# found $index for '$what' id $id\n"
-                   if $debug & $DEBUG_INDEX;
-               eval(<<EOC);
-               if (defined(\$$index\{\$what\})) {
-                   \$$index\{\$what\} .= "$;$docu_doc#$id";
-               } else {
-                   \$$index\{\$what\} = "$docu_doc#$id";
-               }
-EOC
-               #
-               # dirty hack to see if I can put an invisible anchor...
-               #
-               if ($html_element eq 'P' ||
-                   $html_element eq 'LI' ||
-                   $html_element eq 'DT' ||
-                   $html_element eq 'DD' ||
-                   $html_element eq 'ADDRESS' ||
-                   $html_element eq 'B' ||
-                   $html_element eq 'BLOCKQUOTE' ||
-                   $html_element eq 'PRE' ||
-                   $html_element eq 'SAMP') {
-                    push(@lines, &anchor($id, '', $invisible_mark, !$in_pre));
-                } elsif ($html_element eq 'body') {
-                   push(@lines, &debug("<P>\n", __LINE__));
-                    push(@lines, &anchor($id, '', $invisible_mark, !$in_pre));
-                   &html_push('P');
-               } elsif ($html_element eq 'DL' ||
-                        $html_element eq 'UL' ||
-                        $html_element eq 'OL' ) {
-                   $deferred_ref .= &anchor($id, '', $invisible_mark, !$in_pre) . " ";
-               }
-               next;
-           }
-           # list item
-           if (/^\@itemx?\s+/) {
-               $what = $';
-               $what =~ s/\s+$//;
-               if ($in_bibliography && $use_bibliography) {
-                   if ($what =~ /^$BIBRE$/o) {
-                       $id = 'BIB' . ++$bib_num;
-                       $bib2href{$what} = "$docu_doc#$id";
-                       print "# found bibliography for '$what' id $id\n"
-                           if $debug & $DEBUG_BIB;
-                       $what = &anchor($id, '', $what);
-                   }
-               } elsif ($in_glossary && $use_glossary) {
-                   $id = 'GLOSS' . ++$gloss_num;
-                   $entry = $what;
-                   $entry =~ tr/A-Z/a-z/ unless $entry =~ /^[A-Z\s]+$/;
-                   $gloss2href{$entry} = "$docu_doc#$id";
-                   print "# found glossary for '$entry' id $id\n"
-                       if $debug & $DEBUG_GLOSS;
-                   $what = &anchor($id, '', $what);
-               }
-               &html_pop_if('P');
-               if ($html_element eq 'DL' || $html_element eq 'DD') {
-                   if ($things_map{$in_table} && !$what) {
-                       # special case to allow @table @bullet for instance
-                       push(@lines, &debug("<DT>$things_map{$in_table}\n", __LINE__));
-                   } else {
-                       push(@lines, &debug("<DT>\@$in_table\{$what\}\n", __LINE__));
-                   }
-                   push(@lines, "<DD>");
-                   &html_push('DD') unless $html_element eq 'DD';
-                   if ($table_type) { # add also an index
-                       unshift(@input_spool, "\@${table_type}index $what\n");
-                   }
-               } else {
-                   push(@lines, &debug("<LI>$what\n", __LINE__));
-                   &html_push('LI') unless $html_element eq 'LI';
-               }
-               push(@lines, &html_debug("\n", __LINE__));
-               if ($deferred_ref) {
-                   push(@lines, &debug("$deferred_ref\n", __LINE__));
-                   $deferred_ref = '';
-               }
-               next;
-           }
-       }
-    }
-    # paragraph separator
-    if ($_ eq "\n") {
-       next if $#lines >= 0 && $lines[$#lines] eq "\n";
-       if ($html_element eq 'P') {
-           push(@lines, "\n");
-           $_ = &debug("</P>\n", __LINE__);
-           &html_pop;
-       }
-    } elsif ($html_element eq 'body' || $html_element eq 'BLOCKQUOTE') {
-       push(@lines, "<P>\n");
-       &html_push('P');
-       $_ = &debug($_, __LINE__);
-    }
-    # otherwise
-    push(@lines, $_);
-}
-
-# finish TOC
-$level = 0;
-while ($level < $curlevel) {
-    $curlevel--;
-    push(@toc_lines, "</UL>\n");
-}
-
-print "# end of pass 1\n" if $verbose;
-
-#+++############################################################################
-#                                                                              #
-# Pass 2/3: handle style, menu, index, cross-reference                         #
-#                                                                              #
-#---############################################################################
-
-@lines2 = ();                          # whole document (2nd pass)
-@lines3 = ();                          # whole document (3rd pass)
-$in_menu = 0;                          # am I inside a menu
-
-while (@lines) {
-    $_ = shift(@lines);
-    #
-    # special case (protected sections)
-    #
-    if (/^$PROTECTTAG/o) {
-       push(@lines2, $_);
-       next;
-    }
-    #
-    # menu
-    #
-    $in_menu = 1, push(@lines2, &debug("<UL>\n", __LINE__)), next if /^\@menu\b/;
-    $in_menu = 0, push(@lines2, &debug("</UL>\n", __LINE__)), next if /^\@end\s+menu\b/;
-    if ($in_menu) {
-       if (/^\*\s+($NODERE)::/o) {
-           $descr = $';
-           chop($descr);
-           &menu_entry($1, $1, $descr);
-       } elsif (/^\*\s+(.+):\s+([^\t,\.\n]+)[\t,\.\n]/) {
-           $descr = $';
-           chop($descr);
-           &menu_entry($1, $2, $descr);
-       } elsif (/^\*/) {
-           warn "$ERROR Bad menu line: $_";
-       } else { # description continued?
-           push(@lines2, $_);
-       }
-       next;
-    }
-    #
-    # printindex
-    #
-    if (/^\@printindex\s+(\w\w)\b/) {
-       local($index, *ary, @keys, $key, $letter, $last_letter, @refs);
-       if ($predefined_index{$1}) {
-           $index = $predefined_index{$1} . 'index';
-       } else {
-           $index = $1 . 'index';
-       }
-       eval("*ary = *$index");
-       @keys = keys(%ary);
-       foreach $key (@keys) {
-           $_ = $key;
-           1 while s/<(\w+)>\`(.*)\'<\/\1>/$2/; # remove HTML tags with quotes
-           1 while s/<(\w+)>(.*)<\/\1>/$2/;     # remove HTML tags
-           $_ = &unprotect_html($_);
-           &unprotect_texi;
-           tr/A-Z/a-z/; # lowercase
-           $key2alpha{$key} = $_;
-           print "# index $key sorted as $_\n"
-               if $key ne $_ && $debug & $DEBUG_INDEX;
-       }
-       $last_letter = undef;
-       foreach $key (sort byalpha @keys) {
-           $letter = substr($key2alpha{$key}, 0, 1);
-           $letter = substr($key2alpha{$key}, 0, 2) if $letter eq $;;
-           if (!defined($last_letter) || $letter ne $last_letter) {
-               push(@lines2, "</DIR>\n") if defined($last_letter);
-               push(@lines2, "<H2>" . &protect_html($letter) . "</H2>\n");
-               push(@lines2, "<DIR>\n");
-               $last_letter = $letter;
-           }
-           @refs = ();
-           foreach (split(/$;/, $ary{$key})) {
-               push(@refs, &anchor('', $_, $key, 0));
-           }
-           push(@lines2, "<LI>" . join(", ", @refs) . "\n");
-       }
-       push(@lines2, "</DIR>\n") if defined($last_letter);
-       next;
-    }
-    #
-    # simple style substitutions
-    #
-    $_ = &substitute_style($_);
-    #
-    # xref
-    #
-    while (/\@(x|px|info|)ref{($XREFRE)(}?)/o) {
-       # note: Texinfo may accept other characters
-       ($type, $nodes, $full) = ($1, $2, $3);
-       ($before, $after) = ($`, $');
-       if (! $full && $after) {
-           warn "$ERROR Bad xref (no ending } on line): $_";
-           $_ = "$before$;0${type}ref\{$nodes$after";
-           next; # while xref
-       }
-       if ($type eq 'x') {
-           $type = 'See ';
-       } elsif ($type eq 'px') {
-           $type = 'see ';
-       } elsif ($type eq 'info') {
-           $type = 'See Info';
-       } else {
-           $type = '';
-       }
-       unless ($full) {
-           $next = shift(@lines);
-           $next = &substitute_style($next);
-           chop($nodes); # remove final newline
-           if ($next =~ /\}/) { # split on 2 lines
-               $nodes .= " $`";
-               $after = $';
-           } else {
-               $nodes .= " $next";
-               $next = shift(@lines);
-               $next = &substitute_style($next);
-               chop($nodes);
-               if ($next =~ /\}/) { # split on 3 lines
-                   $nodes .= " $`";
-                   $after = $';
-               } else {
-                   warn "$ERROR Bad xref (no ending }): $_";
-                   $_ = "$before$;0xref\{$nodes$after";
-                   unshift(@lines, $next);
-                   next; # while xref
-               }
-           }
-       }
-       $nodes =~ s/\s+/ /g; # remove useless spaces
-       @args = split(/\s*,\s*/, $nodes);
-       $node = $args[0]; # the node is always the first arg
-       &normalise_node($node);
-       $sec = $node2sec{$node};
-       if (@args == 5) { # reference to another manual
-           $sec = $args[2] || $node;
-           $man = $args[4] || $args[3];
-           $_ = "${before}${type}section `$sec' in \@cite{$man}$after";
-       } elsif ($type =~ /Info/) { # inforef
-           warn "$ERROR Wrong number of arguments: $_" unless @args == 3;
-           ($nn, $_, $in) = @args;
-           $_ = "${before}${type} file `$in', node `$nn'$after";
-       } elsif ($sec) {
-           $href = $node2href{$node};
-           $_ = "${before}${type}section " . &anchor('', $href, $sec) . $after;
-       } else {
-           warn "$ERROR Undefined node ($node): $_";
-           $_ = "$before$;0xref{$nodes}$after";
-       }
-    }
-    #
-    # try to guess bibliography references or glossary terms
-    #
-    unless (/^<H\d><A NAME=\"SEC\d/) {
-       if ($use_bibliography) {
-           $done = '';
-           while (/$BIBRE/o) {
-               ($pre, $what, $post) = ($`, $&, $');
-               $href = $bib2href{$what};
-               if (defined($href) && $post !~ /^[^<]*<\/A>/) {
-                   $done .= $pre . &anchor('', $href, $what);
-               } else {
-                   $done .= "$pre$what";
-               }
-               $_ = $post;
-           }
-           $_ = $done . $_;
-       }
-       if ($use_glossary) {
-           $done = '';
-           while (/\b\w+\b/) {
-               ($pre, $what, $post) = ($`, $&, $');
-               $entry = $what;
-               $entry =~ tr/A-Z/a-z/ unless $entry =~ /^[A-Z\s]+$/;
-               $href = $gloss2href{$entry};
-               if (defined($href) && $post !~ /^[^<]*<\/A>/) {
-                   $done .= $pre . &anchor('', $href, $what);
-               } else {
-                   $done .= "$pre$what";
-               }
-               $_ = $post;
-           }
-           $_ = $done . $_;
-       }
-    }
-    # otherwise
-    push(@lines2, $_);
-}
-print "# end of pass 2\n" if $verbose;
-
-#
-# split style substitutions
-#
-while (@lines2) {
-    $_ = shift(@lines2);
-    #
-    # special case (protected sections)
-    #
-    if (/^$PROTECTTAG/o) {
-       push(@lines3, $_);
-       next;
-    }
-    #
-    # split style substitutions
-    #
-    $old = '';
-    while ($old ne $_) {
-        $old = $_;
-       if (/\@(\w+)\{/) {
-           ($before, $style, $after) = ($`, $1, $');
-           if (defined($style_map{$style})) {
-               $_ = $after;
-               $text = '';
-               $after = '';
-               $failed = 1;
-               while (@lines2) {
-                   if (/\}/) {
-                       $text .= $`;
-                       $after = $';
-                       $failed = 0;
-                       last;
-                   } else {
-                       $text .= $_;
-                       $_ = shift(@lines2);
-                   }
-               }
-               if ($failed) {
-                   die "* Bad syntax (\@$style) after: $before\n";
-               } else {
-                   $text = &apply_style($style, $text);
-                   $_ = "$before$text$after";
-               }
-           }
-       }
-    }
-    # otherwise
-    push(@lines3, $_);
-}
-print "# end of pass 3\n" if $verbose;
-
-#+++############################################################################
-#                                                                              #
-# Pass 4: foot notes, final cleanup                                            #
-#                                                                              #
-#---############################################################################
-
-@foot_lines = ();                      # footnotes
-@doc_lines = ();                       # final document
-$end_of_para = 0;                      # true if last line is <P>
-
-while (@lines3) {
-    $_ = shift(@lines3);
-    #
-    # special case (protected sections)
-    #
-    if (/^$PROTECTTAG/o) {
-       push(@doc_lines, $_);
-       $end_of_para = 0;
-       next;
-    }
-    #
-    # footnotes
-    #
-    while (/\@footnote([^\{\s]+)\{/) {
-       ($before, $d, $after) = ($`, $1, $');
-       $_ = $after;
-       $text = '';
-       $after = '';
-       $failed = 1;
-       while (@lines3) {
-           if (/\}/) {
-               $text .= $`;
-               $after = $';
-               $failed = 0;
-               last;
-           } else {
-               $text .= $_;
-               $_ = shift(@lines3);
-           }
-       }
-       if ($failed) {
-           die "* Bad syntax (\@footnote) after: $before\n";
-       } else {
-           $foot_num++;
-           $docid  = "DOCF$foot_num";
-           $footid = "FOOT$foot_num";
-           $foot = "($foot_num)";
-           push(@foot_lines, "<H3>" . &anchor($footid, "$d#$docid", $foot) . "</H3>\n");
-           $text = "<P>$text" unless $text =~ /^\s*<P>/;
-           push(@foot_lines, "$text\n");
-           $_ = $before . &anchor($docid, "$docu_foot#$footid", $foot) . $after;
-       }
-    }
-    #
-    # remove unnecessary <P>
-    #
-    if (/^\s*<P>\s*$/) {
-       next if $end_of_para++;
-    } else {
-       $end_of_para = 0;
-    }
-    # otherwise
-    push(@doc_lines, $_);
-}
-print "# end of pass 4\n" if $verbose;
-
-#+++############################################################################
-#                                                                              #
-# Pass 5: print things                                                         #
-#                                                                              #
-#---############################################################################
-
-$header = <<EOT;
-<!-- This HTML file has been created by $THISPROG
-     from $docu on $TODAY -->
-EOT
-
-$full_title = $value{'_title'} || $value{'_settitle'} || "Untitled Document";
-$title = $value{'_settitle'} || $full_title;
-$_ = &substitute_style($full_title);
-&unprotect_texi;
-s/\n$//; # rmv last \n (if any)
-$full_title = "<H1>" . join("</H1>\n<H1>", split(/\n/, $_)) . "</H1>\n";
-
-#
-# print ToC
-#
-if (!$monolithic && @toc_lines) {
-    if (open(FILE, "> $docu_toc")) {
-       print "# creating $docu_toc...\n" if $verbose;
-       &print_toplevel_header("$title - Table of Contents");
-       &print_ruler;
-       &print(*toc_lines, FILE);
-       &print_toplevel_footer;
-       close(FILE);
-    } else {
-       warn "$ERROR Can't write to $docu_toc: $!\n";
-    }
-}
-
-#
-# print footnotes
-#
-if (!$monolithic && @foot_lines) {
-    if (open(FILE, "> $docu_foot")) {
-       print "# creating $docu_foot...\n" if $verbose;
-       &print_toplevel_header("$title - Footnotes");
-       &print_ruler;
-        &print(*foot_lines, FILE);
-       &print_toplevel_footer;
-       close(FILE);
-    } else {
-       warn "$ERROR Can't write to $docu_foot: $!\n";
-    }
-}
-
-#
-# print document
-#
-if ($split_chapter || $split_node) { # split
-    $doc_num = 0;
-    $last_num = scalar(@sections);
-    $first_doc = &doc_name(1);
-    $last_doc = &doc_name($last_num);
-    while (@sections) {
-       $section = shift(@sections);
-       &next_doc;
-       if (open(FILE, "> $docu_doc")) {
-           print "# creating $docu_doc...\n" if $verbose;
-           &print_header("$title - $section");
-           $prev_doc = ($doc_num == 1 ? undef : &doc_name($doc_num - 1));
-           $next_doc = ($doc_num == $last_num ? undef : &doc_name($doc_num + 1));
-           $navigation = "Go to the ";
-           $navigation .= ($prev_doc ? &anchor('', $first_doc, "first") : "first");
-           $navigation .= ", ";
-           $navigation .= ($prev_doc ? &anchor('', $prev_doc, "previous") : "previous");
-           $navigation .= ", ";
-           $navigation .= ($next_doc ? &anchor('', $next_doc, "next") : "next");
-           $navigation .= ", ";
-           $navigation .= ($next_doc ? &anchor('', $last_doc, "last") : "last");
-           $navigation .= " section, " . &anchor('', $docu_toc, "table of contents") . ".\n";
-           print FILE $navigation;
-           &print_ruler;
-           # find corresponding lines
-            @tmp_lines = ();
-            while (@doc_lines) {
-               $_ = shift(@doc_lines);
-               last if ($_ eq $SPLITTAG);
-               push(@tmp_lines, $_);
-           }
-            &print(*tmp_lines, FILE);
-           &print_ruler;
-           print FILE $navigation;
-           &print_footer;
-           close(FILE);
-       } else {
-           warn "$ERROR Can't write to $docu_doc: $!\n";
-       }
-    }
-} else { # not split
-    if (open(FILE, "> $docu_doc")) {
-       print "# creating $docu_doc...\n" if $verbose;
-       if ($monolithic || !@toc_lines) {
-           &print_toplevel_header($title);
-       } else {
-           &print_header($title);
-           print FILE $full_title;
-       }
-       if ($monolithic && @toc_lines) {
-           &print_ruler;
-           print FILE "<H1>Table of Contents</H1>\n";
-           &print(*toc_lines, FILE);
-       }
-       &print_ruler;
-        &print(*doc_lines, FILE);
-       if ($monolithic && @foot_lines) {
-           &print_ruler;
-           print FILE "<H1>Footnotes</H1>\n";
-           &print(*foot_lines, FILE);
-       }
-       if ($monolithic || !@toc_lines) {
-           &print_toplevel_footer;
-       } else {
-           &print_footer;
-       }
-       close(FILE);
-    } else {
-       warn "$ERROR Can't write to $docu_doc: $!\n";
-    }
-}
-
-print "# that's all folks\n" if $verbose;
-
-#+++############################################################################
-#                                                                              #
-# Low level functions                                                          #
-#                                                                              #
-#---############################################################################
-
-sub update_sec_num {
-    local($name, $level) = @_;
-
-    $level--; # here we start at 0
-    if ($name =~ /^appendix/) {
-       # appendix style
-       if (defined(@appendix_sec_num)) {
-           &incr_sec_num($level, @appendix_sec_num);
-       } else {
-           @appendix_sec_num = ('A', 0, 0, 0);
-       }
-       return(join('.', @appendix_sec_num[0..$level]));
-    } else {
-       # normal style
-       if (defined(@normal_sec_num)) {
-           &incr_sec_num($level, @normal_sec_num);
-       } else {
-           @normal_sec_num = (1, 0, 0, 0);
-       }
-       return(join('.', @normal_sec_num[0..$level]));
-    }
-}
-
-sub incr_sec_num {
-    local($level, $l);
-    $level = shift(@_);
-    $_[$level]++;
-    foreach $l ($level+1 .. 3) {
-       $_[$l] = 0;
-    }
-}
-
-sub check {
-    local($_, %seen, %context, $before, $match, $after);
-
-    while (<>) {
-       if (/\@(\*|\.|\:|\@|\{|\})/) {
-           $seen{$&}++;
-           $context{$&} .= "> $_" if $verbose;
-           $_ = "$`XX$'";
-           redo;
-       }
-       if (/\@(\w+)/) {
-           ($before, $match, $after) = ($`, $&, $');
-           if ($before =~ /\b[\w-]+$/ && $after =~ /^[\w-.]*\b/) { # e-mail address
-               $seen{'e-mail address'}++;
-               $context{'e-mail address'} .= "> $_" if $verbose;
-           } else {
-               $seen{$match}++;
-               $context{$match} .= "> $_" if $verbose;
-           }
-           $match =~ s/^\@/X/;
-           $_ = "$before$match$after";
-           redo;
-       }
-    }
-    
-    foreach (sort(keys(%seen))) {
-       if ($verbose) {
-           print "$_\n";
-           print $context{$_};
-       } else {
-           print "$_ ($seen{$_})\n";
-       }
-    }
-}
-
-sub open {
-    local($name) = @_;
-
-    ++$fh_name;
-    if (open($fh_name, $name)) {
-       unshift(@fhs, $fh_name);
-    } else {
-       warn "$ERROR Can't read file $name: $!\n";
-    }
-}
-
-sub init_input {
-    @fhs = ();                 # hold the file handles to read
-    @input_spool = ();         # spooled lines to read
-    $fh_name = 'FH000';
-    &open($docu);
-}
-
-sub next_line {
-    local($fh, $line);
-
-    if (@input_spool) {
-       $line = shift(@input_spool);
-       return($line);
-    }
-    while (@fhs) {
-       $fh = $fhs[0];
-       $line = <$fh>;
-       return($line) if $line;
-       close($fh);
-       shift(@fhs);
-    }
-    return(undef);
-}
-
-# used in pass 1, use &next_line
-sub skip_until {
-    local($tag) = @_;
-    local($_);
-
-    while ($_ = &next_line) {
-       return if /^\@end\s+$tag\s*$/;
-    }
-    die "* Failed to find '$tag' after: " . $lines[$#lines];
-}
-
-#
-# HTML stacking to have a better HTML output
-#
-
-sub html_reset {
-    @html_stack = ('html');
-    $html_element = 'body';
-}
-
-sub html_push {
-    local($what) = @_;
-    push(@html_stack, $html_element);
-    $html_element = $what;
-}
-
-sub html_push_if {
-    local($what) = @_;
-    push(@html_stack, $html_element)
-       if ($html_element && $html_element ne 'P');
-    $html_element = $what;
-}
-
-sub html_pop {
-    $html_element = pop(@html_stack);
-}
-
-sub html_pop_if {
-    local($elt);
-
-    if (@_) {
-       foreach $elt (@_) {
-           if ($elt eq $html_element) {
-               $html_element = pop(@html_stack) if @html_stack;
-               last;
-           }
-       }
-    } else {
-       $html_element = pop(@html_stack) if @html_stack;
-    }
-}
-
-sub html_debug {
-    local($what, $line) = @_;
-    return("<!-- $line @html_stack, $html_element -->$what")
-       if $debug & $DEBUG_HTML;
-    return($what);
-}
-
-# to debug the output...
-sub debug {
-    local($what, $line) = @_;
-    return("<!-- $line -->$what")
-       if $debug & $DEBUG_HTML;
-    return($what);
-}
-
-sub normalise_node {
-    $_[0] =~ s/\s+/ /g;
-    $_[0] =~ s/ $//;
-    $_[0] =~ s/^ //;
-}
-
-sub menu_entry {
-    local($entry, $node, $descr) = @_;
-    local($href);
-
-    &normalise_node($node);
-    $href = $node2href{$node};
-    if ($href) {
-       $descr =~ s/^\s+//;
-       $descr = ": $descr" if $descr;
-       push(@lines2, "<LI>" . &anchor('', $href, $entry) . "$descr\n");
-    } else {
-       warn "$ERROR Undefined node ($node): $_";
-    }
-}
-
-sub do_ctrl { "^$_[0]" }
-
-sub do_sc { "\U$_[0]\E" }
-
-sub apply_style {
-    local($texi_style, $text) = @_;
-    local($style);
-
-    $style = $style_map{$texi_style};
-    if (defined($style)) { # known style
-       if ($style =~ /^\"/) { # add quotes
-           $style = $';
-           $text = "\`$text\'";
-       }
-       if ($style =~ /^\&/) { # custom
-           $style = $';
-           $text = &$style($text);
-       } elsif ($style) { # good style
-           $text = "<$style>$text</$style>";
-       } else { # no style
-       }
-    } else { # unknown style
-       $text = undef;
-    }
-    return($text);
-}
-
-# remove Texinfo styles
-sub remove_style {
-    local($_) = @_;
-    s/\@\w+{([^\{\}]+)}/$1/g;
-    return($_);
-}
-
-sub substitute_style {
-    local($_) = @_;
-    local($changed, $done, $style, $text);
-
-    $changed = 1;
-    while ($changed) {
-       $changed = 0;
-       $done = '';
-       while (/\@(\w+){([^\{\}]+)}/) {
-           $text = &apply_style($1, $2);
-           if ($text) {
-               $_ = "$`$text$'";
-               $changed = 1;
-           } else {
-               $done .= "$`\@$1";
-               $_ = "{$2}$'";
-           }
-       }
-        $_ = $done . $_;
-    }
-    return($_);
-}
-
-sub anchor {
-    local($name, $href, $text, $newline) = @_;
-    local($result);
-
-    $result = "<A";
-    $result .= " NAME=\"$name\"" if $name;
-    $result .= " HREF=\"$href\"" if $href;
-    $result .= ">$text</A>";
-    $result .= "\n" if $newline;
-    return($result);
-}
-
-sub pretty_date {
-    local(@MoY, $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst);
-
-    @MoY = ('January', 'Febuary', 'March', 'April', 'May', 'June',
-           'July', 'August', 'September', 'October', 'November', 'December');
-    ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
-    $year += ($year < 70) ? 2000 : 1900;
-    return("$mday $MoY[$mon] $year");
-}
-
-sub doc_name {
-    local($num) = @_;
-
-    return("${docu_name}_$num.html");
-}
-
-sub next_doc {
-    $docu_doc = &doc_name(++$doc_num);
-}
-
-sub print {
-    local(*lines, $fh) = @_;
-    local($_);
-
-    while (@lines) {
-       $_ = shift(@lines);
-       if (/^$PROTECTTAG/o) {
-           $_ = $tag2pro{$_};
-       } else {
-           &unprotect_texi;
-       }
-       print $fh $_;
-    }
-}
-
-sub print_ruler {
-    print FILE "<P><HR><P>\n";
-}
-
-sub print_header {
-    local($_);
-
-    # clean the title
-    $_ = &remove_style($_[0]);
-    &unprotect_texi;
-    # print the header
-    if ($doctype eq 'html2') {
-       print FILE $html2_doctype;
-    } elsif ($doctype) {
-       print FILE $doctype;
-    }
-    print FILE <<EOT;
-<HTML>
-<HEAD>
-$header
-<TITLE>$_</TITLE>
-</HEAD>
-<BODY>
-EOT
-}
-
-sub print_toplevel_header {
-    local($_);
-
-    &print_header; # pass given arg...
-    print FILE $full_title;
-    if ($value{'_subtitle'}) {
-       $value{'_subtitle'} =~ s/\n+$//;
-       foreach (split(/\n/, $value{'_subtitle'})) {
-           $_ = &substitute_style($_);
-           &unprotect_texi;
-           print FILE "<H2>$_</H2>\n";
-       }
-    }
-    if ($value{'_author'}) {
-       $value{'_author'} =~ s/\n+$//;
-       foreach (split(/\n/, $value{'_author'})) {
-           $_ = &substitute_style($_);
-           &unprotect_texi;
-           s/[\w.-]+\@[\w.-]+/<A HREF="mailto:$&">$&<\/A>/g;
-           print FILE "<ADDRESS>$_</ADDRESS>\n";
-       }
-    }
-    print FILE "<P>\n";
-}
-
-sub print_footer {
-    print FILE <<EOT;
-</BODY>
-</HTML>
-EOT
-}
-
-sub print_toplevel_footer {
-    &print_ruler;
-    print FILE <<EOT;
-This document was generated on $TODAY using the
-<A HREF=\"$HOMEPAGE\">texi2html</A>
-translator version 1.51.</P>
-EOT
-    &print_footer;
-}
-
-sub protect_texi {
-    # protect @ { } ` '
-    s/\@\@/$;0/go;
-    s/\@\{/$;1/go;
-    s/\@\}/$;2/go;
-    s/\@\`/$;3/go;
-    s/\@\'/$;4/go;
-}
-
-sub protect_html {
-    local($what) = @_;
-    # protect & < >
-    $what =~ s/\&/\&\#38;/g;
-    $what =~ s/\</\&\#60;/g;
-    $what =~ s/\>/\&\#62;/g;
-    # but recognize some HTML things
-    $what =~ s/\&\#60;\/A\&\#62;/<\/A>/g;            # </A>
-    $what =~ s/\&\#60;A ([^\&]+)\&\#62;/<A $1>/g;     # <A [^&]+>
-    $what =~ s/\&\#60;IMG ([^\&]+)\&\#62;/<IMG $1>/g; # <IMG [^&]+>
-    return($what);
-}
-
-sub unprotect_texi {
-    s/$;0/\@/go;
-    s/$;1/\{/go;
-    s/$;2/\}/go;
-    s/$;3/\`/go;
-    s/$;4/\'/go;
-}
-
-sub unprotect_html {
-    local($what) = @_;
-    $what =~ s/\&\#38;/\&/g;
-    $what =~ s/\&\#60;/\</g;
-    $what =~ s/\&\#62;/\>/g;
-    return($what);
-}
-
-sub byalpha {
-    $key2alpha{$a} cmp $key2alpha{$b};
-}
-
-##############################################################################
-
-       # These next few lines are legal in both Perl and nroff.
-
-.00 ;                  # finish .ig
-'di                    \" finish diversion--previous line must be blank
-.nr nl 0-1             \" fake up transition to first page again
-.nr % 0                        \" start at page 1
-'; __END__ ############# From here on it's a standard manual page ############
-.TH TEXI2HTML 1 "09/10/96"
-.AT 3
-.SH NAME
-texi2html \- a Texinfo to HTML converter
-.SH SYNOPSIS
-.B texi2html [options] file
-.PP
-.B texi2html -check [-verbose] files
-.SH DESCRIPTION
-.I Texi2html
-converts the given Texinfo file to a set of HTML files. It tries to handle
-most of the Texinfo commands. It creates hypertext links for cross-references,
-footnotes...
-.PP
-It also tries to add links from a reference to its corresponding entry in the
-bibliography (if any). It may also handle a glossary (see the
-.B \-glossary
-option).
-.PP
-.I Texi2html
-creates several files depending on the contents of the Texinfo file and on
-the chosen options (see FILES).
-.PP
-The HTML files created by
-.I texi2html
-are closer to TeX than to Info, that's why
-.I texi2html
-converts @iftex sections and not @ifinfo ones by default. You can reverse
-this with the \-expandinfo option.
-.SH OPTIONS
-.TP 12
-.B \-check
-Check the given file and give the list of all things that may be Texinfo commands.
-This may be used to check the output of
-.I texi2html
-to find the Texinfo commands that have been left in the HTML file.
-.TP
-.B \-expandinfo
-Expand @ifinfo sections, not @iftex ones.
-.TP
-.B \-glossary
-Use the section named 'Glossary' to build a list of terms and put links in the HTML
-document from each term toward its definition.
-.TP
-.B \-invisible \fIname\fP
-Use \fIname\fP to create invisible destination anchors for index links. This is a workaround
-for a known bug of many WWW browsers, including xmosaic.
-.TP
-.B \-I \fIdir\fP
-Look also in \fIdir\fP to find included files.
-.TP
-.B \-menu
-Show the Texinfo menus; by default they are ignored.
-.TP
-.B \-monolithic
-Output only one file, including the table of contents and footnotes.
-.TP
-.B \-number
-Number the sections.
-.TP
-.B \-split_chapter
-Split the output into several HTML files (one per main section:
-chapter, appendix...).
-.TP
-.B \-split_node
-Split the output into several HTML files (one per node).
-.TP
-.B \-usage
-Print usage instructions, listing the current available command-line options.
-.TP
-.B \-verbose
-Give a verbose output. Can be used with the
-.B \-check
-option.
-.PP
-.SH FILES
-By default
-.I texi2html
-creates the following files (foo being the name of the Texinfo file):
-.TP 16
-.B foo_toc.html
-The table of contents.
-.TP
-.B foo.html
-The document's contents.
-.TP
-.B foo_foot.html
-The footnotes (if any).
-.PP
-When used with the
-.B \-split
-option, it creates several files (one per chapter or node), named
-.B foo_n.html
-(n being the indice of the chapter or node), instead of the single
-.B foo.html
-file.
-.PP
-When used with the
-.B \-monolithic
-option, it creates only one file:
-.B foo.html
-.SH VARIABLES
-.I texi2html
-predefines the following variables: \fBhtml\fP, \fBtexi2html\fP.
-.SH ADDITIONAL COMMANDS
-.I texi2html
-implements the following non-Texinfo commands:
-.TP 16
-.B @ifhtml
-This indicates the start of an HTML section, this section will passed through
-without any modofication.
-.TP
-.B @end ifhtml
-This indcates the end of an HTML section.
-.SH VERSION
-This is \fItexi2html\fP version 1.51, 09/10/96.
-.PP
-The latest version of \fItexi2html\fP can be found in WWW, cf. URL
-http://wwwcn.cern.ch/dci/texi2html/
-.SH AUTHOR
-The main author is Lionel Cons, CERN CN/DCI/UWS, Lionel.Cons@cern.ch.
-Many other people around the net contributed to this program.
-.SH COPYRIGHT
-This program is the intellectual property of the European
-Laboratory for Particle Physics (known as CERN). No guarantee whatsoever is
-provided by CERN. No liability whatsoever is accepted for any loss or damage
-of any kind resulting from any defect or inaccuracy in this information or
-code.
-.PP
-CERN, 1211 Geneva 23, Switzerland
-.SH "SEE ALSO"
-GNU Texinfo Documentation Format,
-HyperText Markup Language (HTML),
-World Wide Web (WWW).
-.SH BUGS
-This program does not understand all Texinfo commands (yet).
-.PP
-TeX specific commands (normally enclosed in @iftex) will be
-passed unmodified.
-.ex
diff --git a/barcode-0.98/ean.c b/barcode-0.98/ean.c
deleted file mode 100644 (file)
index 0801a0e..0000000
+++ /dev/null
@@ -1,774 +0,0 @@
-/*
- * ean.c -- encoding for ean, upc and isbn
- *
- * Copyright (c) 1999 Alessandro Rubini <rubini@gnu.org>
- * Copyright (c) 1999 Prosa Srl. <prosa@prosa.it>
- * Copyright (c) 2001 Boszormenyi Zoltan <zboszor@mail.externet.hu>
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-
-#include "barcode.h"
-
-/*
- * IMPORTANT NOTE: if you are reading this file to learn how to add a
- * new encoding type, this is the wrong place as there are too many
- * special cases. Please refer to code39.c instead. If you want to
- * learn how UPC, EAN, ISBN work, on the other hand, I did my best to
- * commend things and hope you enjoy it.
- */
-
-/*
- * These following static arrays are used to describe the barcode.
- *
- * The various forms of UPC and EAN are documented as using three
- * different alphabets to encode the ten digits. However, each digit
- * has exactly one encoding; only, it is sometimes mirrored. Moreover,
- * if you represent the width of each symbol (bar/space) instead of
- * the sequence of 1's and 0's, you find that even-parity and odd-parity
- * encoding are exactly the same. So, here are the digits: */
-static char *digits[] = {
-     "3211","2221","2122","1411","1132",
-     "1231","1114","1312","1213","3112"};
-
-/*
- * What EAN encoding does is adding a leading digit (the 13th digit).
- * Such an extra digit is encoded by mirroring three of the six digits that
- * appear in the left half of the UPC code. Here how mirroring works:
- */
-static char *ean_mirrortab[] = {
-     "------","--1-11","--11-1","--111-","-1--11",
-     "-11--1","-111--","-1-1-1","-1-11-","-11-1-"
-};
-
-/*
- * UPC-E (the 6-digit one), instead, encodes the check character as
- * a mirroring of the symbols. This is similar, but the encoding for "0" is
- * different (EAN uses no mirroring for "0" to be compatible with UPC).
- * The same rule is used for UPC-5 (the supplemental digits for ISBN)
- */
-static char *upc_mirrortab[] = {
-     "---111","--1-11","--11-1","--111-","-1--11",
-     "-11--1","-111--","-1-1-1","-1-11-","-11-1-"
-};
-
-/*
- * UPC-E mirroring for encoding "1"
- */
-static char *upc_mirrortab1[] = {
-     "111---","11-1--","11--1-","11---1","1-11--",
-     "1--11-","1---11","1-1-1-","1-1--1","1--1-1"
-};
-
-/* UPC-2 has just two digits to mirror */
-static char *upc_mirrortab2[] = {
-    "11","1-","-1","--"
-};
-
-/*
- * initial, middle, final guard bars (first symbol is a a space).
- * EAN-13 overwrites the first "0" with "9" to make space for the extra digit.
- */
-static char *guard[] = {"0a1a","1a1a1","a1a"};
-
-/* initial, final guard bars for UPC-E*/
-static char *guardE[] = {"0a1a","1a1a1a"};
-
-/* initial and inter-char guard bars for supplementals (first is space) */
-static char *guardS[] = {"9112","11"};
-
-/*
- * These functions are shortcuts I use in the encoding engine
- */
-static int ean_make_checksum(char *text, int mode)
-{
-    int esum = 0, osum = 0, i;
-    int even=1; /* last char is even */
-
-    if (strchr(text, ' '))
-       i = strchr(text, ' ') - text; /* end of first part */
-    else 
-       i = strlen(text); /* end of all */
-
-    while (i-- > 0) {
-       if (even) esum += text[i]-'0';
-       else      osum += text[i]-'0';
-       even = !even;
-    }
-    if (!mode) { /* standard upc/ean checksum */
-       i = (3*esum + osum) % 10;
-       return (10-i) % 10; /* complement to 10 */
-    } else { /* add-5 checksum */
-       i = (3*esum + 9*osum);
-       return i%10;
-    }
-}
-
-/*
- * Check that the text can be encoded. Returns 0 or -1.
- * Accept:
- *   13 or 12 digits: EAN-13 w/ or w/o checksum
- * or
- *   8 or 7 digits: EAN-8 w/ or w/o checksum.
- * For both EAN-13 and EAN-8, accept an addon of 2 or 5 digits,
- * separated by ' '
- */
-int Barcode_ean_verify(unsigned char *text)
-{
-    int i, len0, len, addon;
-    unsigned char tmp[24], *spc;
-
-    len = strlen(text);
-    spc = strchr(text, ' ');
-    if (spc) {
-       len0 = spc - text;
-       addon = len - len0 - 1;
-       if (addon != 2 && addon != 5)
-               return -1;
-       for (i=len0+1; i<len; i++)
-           if (!isdigit(text[i]))
-               return -1;
-    } else
-       len0 = len;
-
-    for (i=0; i<len0; i++)
-        if (!isdigit(text[i]))
-            return -1;
-
-    switch (len0) {
-    case 8:
-       strncpy(tmp, text, 7);
-       tmp[7] = '\0';
-       if (text[7] != (ean_make_checksum(tmp, 0) + '0'))
-               return -1;
-    case 7:
-       break;
-    case 13:
-       strncpy(tmp, text, 12);
-       tmp[12] = '\0';
-       if (text[12] != (ean_make_checksum(tmp, 0) + '0'))
-               return -1;
-    case 12:
-       break;
-    default:
-       return -1;
-    }
-    return 0;
-}
-
-/* Expand the middle part of UPC-E to UPC-A */
-static char *upc_e_to_a0(unsigned char *text)
-{
-    static char result[16];
-    strcpy(result, "00000000000"); /* 11 0's */
-
-    switch(text[5]) { /* last char */
-        case '0': case '1': case '2':
-           strncpy(result+1, text,  2); result[3]=text[5]; /* Manuf. */
-           memcpy(result+8, text+2, 3); /* Product */
-           break;
-        case '3':
-           memcpy(result+1, text,   3); /* Manufacturer */
-           memcpy(result+9, text+3, 2); /* Product */
-           break;
-        case '4':
-           memcpy(result+1,  text,   4); /* Manufacturer */
-           memcpy(result+10, text+4, 1); /* Product */
-           break;
-        default:
-           memcpy(result+1,  text,   5); /* Manufacturer */
-           memcpy(result+10, text+5, 1); /* Product */
-           break;
-    }
-    return result;
-}
-
-/* Try to expand an UPC-E barcode to its UPC-A equivalent.
- * Accept 6, 7 or 8-digit sequence (not counting the addon):
- *  6:  only the middle part, encoding "0", w/o checksum.
- *  7:  the middle part, encoding "0" with a correct checksum
- *    or
- *      the middle part, encoding "0" or "1" prepended
- *  8:  fully qualified UPC-E with checksum.
- *
- * Returns a 11 digit UPC-A (w/o checksum) for valid EPC-E barcode
- * or an empty string for an invalid one.
- *
- * The checksum for UPC-E is calculated using its UPC-A equivalent.
- */
-static char *upc_e_to_a(unsigned char *text)
-{
-    static unsigned char       result[16], *spc;
-    int                                len, chk;
-
-    spc = strchr(text, ' ');
-    if (spc)
-       len = spc - text;
-    else
-       len = strlen(text);
-
-    switch (len) {
-    case 6:
-       strcpy(result, upc_e_to_a0(text));
-       return result;
-    case 7:
-       /* the first char is '0' or '1':
-        * valid number system for UPC-E and no checksum
-        */
-       if (text[0] == '0' || text[0] == '1') {
-               strcpy(result, upc_e_to_a0(text+1));
-               result[0] = text[0];
-               return result;
-       }
-
-       /* Find out whether the 7th char is correct checksum */
-       strcpy(result, upc_e_to_a0(text));
-       chk = ean_make_checksum(result, 0);
-
-       if (chk == (text[len-1] - '0'))
-               return result;
-       /* Invalid 7 digit representation for UPC-E. */
-       return NULL;
-    case 8:
-       if (text[0] == '0' || text[0] == '1') {
-               strcpy(result, upc_e_to_a0(text+1));
-               result[0] = text[0];
-               chk = ean_make_checksum(result, 0);
-               if (chk == (text[len-1] - '0'))
-                       return result;
-       }
-    default:
-       /* Invalid representation for UPC-E. */
-       return NULL;
-    }
-}
-
-/*
- * Accept a 11 or 12 digit UPC-A barcode and
- * shrink it into an 8-digit UPC-E equivalent if possible.
- * Return NULL if impossible, the UPC-E barcode if possible.
- */
-static unsigned char *upc_a_to_e(unsigned char *text)
-{
-    static unsigned char       result[16];
-    int                                len, chksum;
-
-    len = strlen(text);
-    switch (len) {
-    case 12:
-       strcpy(result, text);
-       result[11] = '\0';
-       chksum = ean_make_checksum(result, 0);
-       if (text[11] != (chksum - '0'))
-               return NULL;
-       break;
-    case 11:
-       chksum = ean_make_checksum(text, 0);
-       break;
-    default:
-       return NULL;
-    }
-
-    strcpy(result, "00000000"); /* 8 0's*/
-
-    /* UPC-E can only be used with number system 0 or 1 */
-    if (text[0] != '0' && text[0] != '1')
-       return NULL;
-
-    result[0] = text[0];
-
-    if ((text[3] == '0' || text[3] == '1' || text[3] == '2')
-           && !strncmp(text+4, "0000", 4)) {
-       memcpy(&result[1], text+1, 2);
-       memcpy(&result[3], text+8, 3);
-       result[6] = text[3];
-    } else if (!strncmp(text+4, "00000", 5)) {
-       memcpy(&result[1], text+1, 3);
-       memcpy(&result[4], text+9, 2);
-       result[6] = '3';
-    } else if (!strncmp(text+5, "00000", 5)) {
-       memcpy(&result[1], text+1, 4);
-       result[5] = text[10];
-       result[6] = '4';
-    } else if ((text[5] != '0') && !strncmp(text+6, "0000", 4)
-           && text[10] >= '5' && text[10] <= '9') {
-       memcpy(&result[1], text+1, 5);
-       result[6] = text[10];
-    } else {
-       return NULL;
-    }
-    result[7] = chksum + '0';
-
-    return result;
-}
-
-/*
- * UPC-A is the same as EAN, but accept
- *    12 or 11 digits (UPC-A w/ or w/o checksum)
- * or accept UPC-E as:
- *    6 digits (w/o number system and checksum): number system '0' assumed,
- *    7 digits (either w/o number system or checksum),
- *    8 digits (w/ number system and checksum)
- * plus the 2 or 5-digit add-on
- */
-int Barcode_upc_verify(unsigned char *text)
-{
-    int i, len0, len, addon;
-    unsigned char tmp[24], *spc;
-
-    len = strlen(text);
-    spc = strchr(text, ' ');
-    if (spc) {
-       len0 = spc - text;
-       addon = len - len0 - 1;
-       if (addon != 2 && addon != 5)
-               return -1;
-       for (i=len0+1; i<len; i++)
-           if (!isdigit(text[i]))
-               return -1;
-    } else
-       len0 = len;
-
-    for (i=0; i<len0; i++)
-        if (!isdigit(text[i]))
-            return -1;
-
-    switch (len0) {
-    case 6: case 7: case 8:
-       strncpy(tmp, text, len0);
-       tmp[len0] = '\0';
-       if (!upc_e_to_a(tmp))
-               return -1;
-       break;
-    case 12:
-       strncpy(tmp, text, 11);
-       tmp[11] = '\0';
-       if (text[11] != (ean_make_checksum(tmp, 0) + '0'))
-               return -1;
-    case 11:
-       break;
-    default:
-       return -1;
-    }
-    return 0;
-}
-
-/*
- * Isbn is the same as EAN, just shorter. Dashes are accepted, the
- * check character (if specified) is skipped, the extra 5 digits are
- * accepted after a blank.
- */
-int Barcode_isbn_verify(unsigned char *text)
-{
-    int i, ndigit=0;
-
-    for (i=0; text[i]; i++) {
-       if (text[i] == '-')
-           continue;
-       if (isdigit(text[i])) {
-           ndigit++;
-           if (ndigit == 9) { /* got it all */
-               i++; break;
-           }
-           continue;
-       }
-       return -1; /* found non-digit */
-    }
-    if (ndigit!=9) return -1; /* too short */
-
-    /* skip an hyphen, if any */
-    if (text[i] == '-')
-       i++;
-    /* accept one more char if any (the checksum) */
-    if (isdigit(text[i]) || toupper(text[i])=='X')
-       i++;
-    if (text[i] == '\0')
-       return 0; /* Ok */
-
-    /* and accept the extra price tag (blank + 5 digits), if any */
-    if (strlen(text+i) != 6)
-       return -1;
-    if (text[i] != ' ')
-       return -1;
-    i++; /* skip the blank */
-    while (text[i]) {
-       if (!isdigit(text[i]))
-           return -1;
-       i++;
-    }
-    return 0; /* Ok: isbn + 5-digit addon */
-}
-
-static int width_of_partial(unsigned char *partial)
-{
-    int i=0;
-    while (*partial) {
-       if (isdigit(*partial))
-           i += *partial - '0';
-       else if (islower(*partial))
-           i += *partial - 'a' + 1;
-       partial++;
-    }
-    return i;
-}
-
-/*
- * The encoding functions fills the "partial" and "textinfo" fields.
- * This one deals with both upc (-A and -E) and ean (13 and 8).
- */
-int Barcode_ean_encode(struct Barcode_Item *bc)
-{
-    static char text[24];
-    static char partial[256];
-    static char textinfo[256];
-    char *mirror, *ptr1, *ptr2, *tptr = textinfo; /* where text is written */
-    char *spc;
-
-    enum {UPCA, UPCE, EAN13, EAN8, ISBN} encoding = ISBN;
-    int i, xpos, checksum, len, len0, addon;
-
-    if (!bc->ascii) {
-       bc->error = EINVAL;
-       return -1;
-    }
-
-    /* Find out whether the barcode has addon and
-     * the length of the barcode w/o the addon.
-     */
-    len = strlen(bc->ascii);
-    spc = strchr(bc->ascii, ' ');
-    if (spc) {
-       len0 = spc - bc->ascii;
-       addon = strlen(spc + 1);
-       if (addon != 2 && addon != 5) {
-           bc->error = EINVAL; /* impossible, actually */
-           return -1;
-       }
-    } else {
-       len0 = len;
-       addon = 0;
-    }
-
-    if (!bc->encoding) {
-       /* ISBN already wrote what it is; if unknown, find it out */
-
-       /*
-        * Do not decide only by barcode length, it may be ambiguous.
-        * Anyway, either the user specified the barcode type or
-        * we already found a fitting one.
-        */
-       switch(bc->flags & BARCODE_ENCODING_MASK) {
-       case BARCODE_EAN:
-               switch (len0) {
-               case 7: case 8:
-                       bc->encoding = strdup("EAN-8");
-                       encoding = EAN8;
-                       break;
-               case 12: case 13:
-                       bc->encoding = strdup("EAN-13");
-                       encoding = EAN13;
-                       break;
-               default:
-                       bc->error = -EINVAL;
-                       return -1;
-               }
-               break;
-
-       case BARCODE_UPC:
-               switch (len0) {
-               case 6: case 7: case 8:
-                       bc->encoding = strdup("UPC-E");
-                       encoding = UPCE;
-                       break;
-               case 11: case 12:
-                       bc->encoding = strdup("UPC-A");
-                       encoding = UPCA;
-                       break;
-               default:
-                       bc->error = -EINVAL;
-                       return -1;
-               }
-               break;
-       default:
-               /* else, it's wrong (impossible, as the text is checked) */
-               bc->error = -EINVAL;
-               return -1;
-       }
-    }
-
-    /* better safe than sorry */
-    if (bc->partial)   free(bc->partial);  bc->partial =  NULL;
-    if (bc->textinfo)  free(bc->textinfo); bc->textinfo = NULL;
-
-    if (encoding == UPCA) { /* add the leading 0 (not printed) */
-       text[0] = '0';
-       strcpy(text+1, bc->ascii);
-    } else if (encoding == UPCE) {
-       strcpy(text, upc_a_to_e(upc_e_to_a(bc->ascii)));
-    } else {
-       strcpy(text, bc->ascii);
-    }
-
-    /*
-     * build the checksum and the bars: any encoding is slightly different
-     */
-    if (encoding == UPCA || encoding == EAN13 || encoding == ISBN) {
-       if (!(encoding == UPCA && len0 == 12) &&
-               !(encoding == EAN13 && len0 == 13)) {
-               checksum = ean_make_checksum(text, 0);
-               text[12] = '0' + checksum; /* add it to the text */
-               text[13] = '\0';
-       }
-
-       strcpy(partial, guard[0]);
-       if (encoding == EAN13 || encoding == ISBN) { /* The first digit */
-           sprintf(tptr,"0:12:%c ",text[0]);
-           tptr += strlen(tptr);
-           partial[0] = '9'; /* extra space for the digit */
-       } else if (encoding == UPCA)
-           partial[0] = '9'; /* UPC has one digit before the symbol, too */
-       xpos = width_of_partial(partial);
-       mirror = ean_mirrortab[text[0]-'0'];
-
-       /* left part */
-       for (i=1;i<7;i++) {      
-           ptr1 = partial + strlen(partial); /* target */
-           ptr2 =  digits[text[i]-'0'];      /* source */
-           strcpy(ptr1, ptr2);
-           if (mirror[i-1] == '1') {
-               /* mirror this */
-               ptr1[0] = ptr2[3];
-               ptr1[1] = ptr2[2];
-               ptr1[2] = ptr2[1];
-               ptr1[3] = ptr2[0];
-           }
-           /*
-            * Write the ascii digit. UPC has a special case
-            * for the first digit, which is out of the bars
-            */
-           if (encoding == UPCA && i==1) {
-               sprintf(tptr, "0:10:%c ", text[i]);
-               tptr += strlen(tptr);
-               ptr1[1] += 'a'-'1'; /* bars are long */
-               ptr1[3] += 'a'-'1';
-           } else {
-               sprintf(tptr, "%i:12:%c ", xpos, text[i]);
-               tptr += strlen(tptr);
-           }
-           /* count the width of the symbol */
-           xpos += 7; /* width_of_partial(ptr2) */
-       }
-
-       strcat(partial, guard[1]); /* middle */
-       xpos += width_of_partial(guard[1]);
-    
-       /* right part */
-       for (i=7;i<13;i++) {  
-           ptr1 = partial + strlen(partial); /* target */
-           ptr2 =  digits[text[i]-'0'];      /* source */
-           strcpy(ptr1, ptr2);
-           /*
-            * Ascii digit. Once again, UPC has a special
-            * case for the last digit
-            */
-           if (encoding == UPCA && i==12) {
-               sprintf(tptr, "%i:10:%c ", xpos+13, text[i]);
-               tptr += strlen(tptr);
-               ptr1[0] += 'a'-'1'; /* bars are long */
-               ptr1[2] += 'a'-'1';
-           } else {
-               sprintf(tptr, "%i:12:%c ", xpos, text[i]);
-               tptr += strlen(tptr);
-           }
-           xpos += 7; /* width_of_partial(ptr2) */
-       }
-       tptr[-1] = '\0'; /* overwrite last space */
-       strcat(partial, guard[2]); /* end */
-       xpos += width_of_partial(guard[2]);
-
-    } else if (encoding == UPCE) {
-       checksum = text[7] - '0';
-
-       strcpy(partial, guardE[0]);
-       partial[0] = '9'; /* UPC-A has one digit before the symbol, too */
-       xpos = width_of_partial(partial);
-
-       /* UPC-E has the number system written before the bars. */
-       sprintf(tptr, "0:10:%c ", text[0]);
-       tptr += strlen(tptr);
-
-       if (text[0] == '0')
-               mirror = upc_mirrortab[checksum];
-       else
-               mirror = upc_mirrortab1[checksum];
-
-       for (i=0;i<6;i++) {      
-           ptr1 = partial + strlen(partial); /* target */
-           ptr2 =  digits[text[i+1]-'0'];      /* source */
-           strcpy(ptr1, ptr2);
-           if (mirror[i] != '1') { /* negated wrt EAN13 */
-               /* mirror this */
-               ptr1[0] = ptr2[3];
-               ptr1[1] = ptr2[2];
-               ptr1[2] = ptr2[1];
-               ptr1[3] = ptr2[0];
-           }
-           sprintf(tptr, "%i:12:%c ", xpos, text[i+1]);
-           tptr += strlen(tptr);
-           xpos += 7; /* width_of_partial(ptr2) */
-       }
-
-       sprintf(tptr, "%i:10:%c ", xpos+10, text[7]);
-       tptr += strlen(tptr);
-       ptr1[0] += 'a'-'1'; /* bars are long */
-       ptr1[2] += 'a'-'1';
-
-       tptr[-1] = '\0'; /* overwrite last space */
-       strcat(partial, guardE[1]); /* end */
-
-    } else { /* EAN-8  almost identical to EAN-13 but no mirroring */
-
-       if (len0 != 8) {
-           checksum = ean_make_checksum(text, 0);
-           text[7] = '0' + checksum; /* add it to the text */
-           text[8] = '\0';
-       }
-
-       strcpy(partial, guard[0]);
-       xpos = width_of_partial(partial);
-
-       /* left part */
-       for (i=0;i<4;i++) {      
-           strcpy(partial + strlen(partial), digits[text[i]-'0']);
-           sprintf(tptr, "%i:12:%c ", xpos, text[i]);
-           tptr += strlen(tptr);
-           xpos += 7; /* width_of_partial(digits[text[i]-'0' */
-       }
-       strcat(partial, guard[1]); /* middle */
-       xpos += width_of_partial(guard[1]);
-    
-       /* right part */
-       for (i=4;i<8;i++) {      
-           strcpy(partial + strlen(partial), digits[text[i]-'0']);
-           sprintf(tptr, "%i:12:%c ", xpos, text[i]);
-           tptr += strlen(tptr);
-           xpos += 7; /* width_of_partial(digits[text[i]-'0' */
-       }
-       tptr[-1] = '\0'; /* overwrite last space */
-       strcat(partial, guard[2]); /* end */
-    }
-
-    /*
-     * And that's it. Now, in case some add-on is specified it
-     * must be encoded too. Look for it.
-     */
-    if ( (ptr1 = spc) ) {
-       ptr1++;
-       strcpy(text, ptr1);
-       if (strlen(ptr1)==5) {
-           checksum = ean_make_checksum(text, 1 /* special way */);
-           mirror = upc_mirrortab[checksum]+1; /* only last 5 digits */
-       } else {
-           checksum = atoi(text)%4;
-           mirror = upc_mirrortab2[checksum];
-       }
-       strcat(textinfo, " +"); strcat(partial, "+");
-       tptr = textinfo + strlen(textinfo);
-       for (i=0; i<strlen(text); i++) {
-           if (!i) {
-               strcat(partial, guardS[0]); /* separation and head */
-               xpos += width_of_partial(guardS[0]);
-           } else {
-               strcat(partial, guardS[1]);
-               xpos += width_of_partial(guardS[1]);
-           }
-           ptr1 = partial + strlen(partial); /* target */
-           ptr2 =  digits[text[i]-'0'];      /* source */
-           strcpy(ptr1, ptr2);
-           if (mirror[i] != '1') { /* negated wrt EAN13 */
-               /* mirror this */
-               ptr1[0] = ptr2[3];
-               ptr1[1] = ptr2[2];
-               ptr1[2] = ptr2[1];
-               ptr1[3] = ptr2[0];
-           }
-           /* and the text */
-           sprintf(tptr, " %i:12:%c", xpos, text[i]);
-           tptr += strlen(tptr);
-           xpos += 7; /* width_of_partial(ptr2) */
-       }
-    }
-
-    /* all done, copy results to the data structure */
-    bc->partial = strdup(partial);
-    if (!bc->partial) {
-       bc->error = errno;
-       return -1;
-    }
-    bc->textinfo = strdup(textinfo);
-    if (!bc->textinfo) {
-       bc->error = errno;
-       free(bc->partial);
-       bc->partial = NULL;
-       return -1;
-    }
-    if (!bc->width)
-       bc->width = width_of_partial(partial);
-
-    return 0; /* success */
-}
-
-int Barcode_upc_encode(struct Barcode_Item *bc)
-{
-    return Barcode_ean_encode(bc); /* UPC is folded into EAN */
-}
-
-int Barcode_isbn_encode(struct Barcode_Item *bc)
-{
-    /* For ISBN we must normalize the string and prefix "978" */
-    unsigned char *text = malloc(24); /* 13 + ' ' + 5 plus some slack */
-    unsigned char *otext;
-    int i, j, retval;
-
-    if (!text) {
-       bc->error = ENOMEM;
-       return -1;
-    }
-    strcpy(text, "978"); j=3;
-
-    otext = bc->ascii;
-    for (i=0; otext[i]; i++) {
-       if (isdigit(otext[i]))
-           text[j++] = otext[i];
-       if (j == 12) /* checksum added later */
-           break;
-    }
-    text[j]='\0';
-    if (strchr(otext, ' '))
-       strcat(text, strchr(otext, ' '));
-    bc->ascii = text;
-    bc->encoding = strdup("ISBN");
-    retval = Barcode_ean_encode(bc);
-    bc->ascii = otext; /* restore ascii for the ps comments */
-    free(text);
-    return retval;
-}
-    
diff --git a/barcode-0.98/i25.c b/barcode-0.98/i25.c
deleted file mode 100644 (file)
index 72bd035..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * i25.c -- "interleaved 2 of 5"
- *
- * Copyright (c) 1999,2000 Alessandro Rubini (rubini@gnu.org)
- * Copyright (c) 1999      Prosa Srl. (prosa@prosa.it)
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-
-#include "barcode.h"
-
-static char *codes[] = {
-    "11331", "31113", "13113", "33111", "11313",
-    "31311", "13311", "11133", "31131", "13131"
-};
-
-static char *guard[] = {"a1a1", "c1a"}; /* begin end */
-
-int Barcode_i25_verify(unsigned char *text)
-{
-    if (!text[0])
-       return -1;
-    while (*text && isdigit(*text))
-       text++;
-    if (*text)
-       return -1; /* a non-digit char */
-    return 0; /* ok */
-}
-
-int Barcode_i25_encode(struct Barcode_Item *bc)
-{
-    unsigned char *text;
-    unsigned char *partial;  /* dynamic */
-    unsigned char *textinfo; /* dynamic */
-    unsigned char *textptr, *p1, *p2, *pd;
-    int i, len, sum[2], textpos, usesum = 0;
-
-    if (bc->partial)
-       free(bc->partial);
-    if (bc->textinfo)
-       free(bc->textinfo);
-    bc->partial = bc->textinfo = NULL; /* safe */
-
-    if (!bc->encoding)
-       bc->encoding = strdup("interleaved 2 of 5");
-
-    text = bc->ascii;
-    if (!bc->ascii) {
-        bc->error = EINVAL;
-        return -1;
-    }
-
-    if ((bc->flags & BARCODE_NO_CHECKSUM)) usesum = 0; else usesum = 1;
-
-    /* create the real text string, padded to an even number of digits */
-    text = malloc(strlen(bc->ascii) + 3); /* leading 0, checksum, term. */
-    if (!text) {
-       bc->error = errno;
-       return -1;
-    }
-    /* add the leading 0 if needed */
-    i = strlen(bc->ascii) + usesum;
-    if (i % 2) {
-       /* add a leading 0 */
-       text[0] = '0';
-       strcpy(text+1, bc->ascii);
-    } else {
-       strcpy(text, bc->ascii);
-    }
-    /* add the trailing checksum if needed, the leading 0 is ignored */
-    if (usesum) {
-       sum[0] = sum[1] = 0;
-       for (i=0; text[i]; i++) 
-           sum[i%2] += text[i]-'0';
-       /*
-        * The "even" sum must be multiplied by three, and the *
-        * rightmost digit is defined as "even". The digits' position
-        * is already correct, whether or not we added a leading zero.
-        * (e.g., they are in pos. 0..4 or 1..4 of the string)
-        */
-       i = sum[0] * 3 + sum[1];
-       strcat(text, "0");
-       text[strlen(text)-1] += (10 - (i%10)) % 10;
-    }
-
-    /* the partial code is 5 * (text + check) + 4(head) + 3(tail) + term. */
-    partial = malloc( (strlen(text) + 3) * 5 +2); /* be large... */
-    if (!partial) {
-        bc->error = errno;
-       free(text);
-        return -1;
-    }
-
-    /* the text information is at most "nnn:fff:c " * (strlen+1) +term */
-    textinfo = malloc(10*(strlen(text)+1) + 2);
-    if (!textinfo) {
-        bc->error = errno;
-        free(partial);
-       free(text);
-        return -1;
-    }
-
-
-    strcpy(partial, "0"); /* the first space */
-    strcat(partial, guard[0]); /* start */
-    textpos = 4; /* width of initial guard */
-    textptr = textinfo;
-
-    len = strlen(text);
-    for (i=0; i<len; i+=2) {
-        if (!isdigit(text[i]) || !isdigit(text[i+1])) {
-            bc->error = EINVAL; /* impossible if text is verified */
-            free(partial);
-            free(textinfo);
-            free(text);
-            return -1;
-        }
-       /* interleave two digits */
-       p1 = codes[text[i]-'0'];
-       p2 = codes[text[i+1]-'0'];
-       pd = partial + strlen(partial); /* destination */
-       while (*p1) {
-           *(pd++) = *(p1++);
-           *(pd++) = *(p2++);
-       }
-       *pd = '\0';
-       /* and print the ascii text (but don't print the checksum, if any */
-       if (usesum && strlen(text+i)==2) {
-           /* print only one digit, discard the checksum */
-           sprintf(textptr, "%i:12:%c ", textpos, text[i]);
-       } else {
-           sprintf(textptr, "%i:12:%c %i:12:%c ", textpos, text[i],
-                   textpos+9, text[i+1]);
-       }
-        textpos += 18; /* width of two codes */
-        textptr += strlen(textptr);
-    }
-    strcat(partial, guard[1]);
-
-    bc->partial = partial;
-    bc->textinfo = textinfo;
-    free(text);
-
-    return 0;
-}
-    
diff --git a/barcode-0.98/install-sh b/barcode-0.98/install-sh
deleted file mode 100644 (file)
index ab74c88..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-#!/bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.
-#
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-tranformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
-    case $1 in
-       -c) instcmd="$cpprog"
-           shift
-           continue;;
-
-       -d) dir_arg=true
-           shift
-           continue;;
-
-       -m) chmodcmd="$chmodprog $2"
-           shift
-           shift
-           continue;;
-
-       -o) chowncmd="$chownprog $2"
-           shift
-           shift
-           continue;;
-
-       -g) chgrpcmd="$chgrpprog $2"
-           shift
-           shift
-           continue;;
-
-       -s) stripcmd="$stripprog"
-           shift
-           continue;;
-
-       -t=*) transformarg=`echo $1 | sed 's/-t=//'`
-           shift
-           continue;;
-
-       -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
-           shift
-           continue;;
-
-       *)  if [ x"$src" = x ]
-           then
-               src=$1
-           else
-               # this colon is to work around a 386BSD /bin/sh bug
-               :
-               dst=$1
-           fi
-           shift
-           continue;;
-    esac
-done
-
-if [ x"$src" = x ]
-then
-       echo "install:  no input file specified"
-       exit 1
-else
-       true
-fi
-
-if [ x"$dir_arg" != x ]; then
-       dst=$src
-       src=""
-       
-       if [ -d $dst ]; then
-               instcmd=:
-       else
-               instcmd=mkdir
-       fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad 
-# if $src (and thus $dsttmp) contains '*'.
-
-       if [ -f $src -o -d $src ]
-       then
-               true
-       else
-               echo "install:  $src does not exist"
-               exit 1
-       fi
-       
-       if [ x"$dst" = x ]
-       then
-               echo "install:  no destination specified"
-               exit 1
-       else
-               true
-       fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
-       if [ -d $dst ]
-       then
-               dst="$dst"/`basename $src`
-       else
-               true
-       fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-#  this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='   
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
-       pathcomp="${pathcomp}${1}"
-       shift
-
-       if [ ! -d "${pathcomp}" ] ;
-        then
-               $mkdirprog "${pathcomp}"
-       else
-               true
-       fi
-
-       pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
-       $doit $instcmd $dst &&
-
-       if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
-       if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
-       if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
-       if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
-       if [ x"$transformarg" = x ] 
-       then
-               dstfile=`basename $dst`
-       else
-               dstfile=`basename $dst $transformbasename | 
-                       sed $transformarg`$transformbasename
-       fi
-
-# don't allow the sed command to completely eliminate the filename
-
-       if [ x"$dstfile" = x ] 
-       then
-               dstfile=`basename $dst`
-       else
-               true
-       fi
-
-# Make a temp file name in the proper directory.
-
-       dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
-       $doit $instcmd $src $dsttmp &&
-
-       trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing.  If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
-       if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
-       if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
-       if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
-       if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
-       $doit $rmcmd -f $dstdir/$dstfile &&
-       $doit $mvcmd $dsttmp $dstdir/$dstfile 
-
-fi &&
-
-
-exit 0
diff --git a/barcode-0.98/library.c b/barcode-0.98/library.c
deleted file mode 100644 (file)
index a878702..0000000
+++ /dev/null
@@ -1,244 +0,0 @@
-/*
- * library.c -- external functions of libbarcode
- *
- * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org)
- * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it)
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#ifdef HAVE_UNISTD_H /* sometimes (windows, for instance) it's missing */
-#  include <unistd.h>
-#endif
-#include <errno.h>
-
-#include "barcode.h"
-
-/*
- * This function allocates a barcode structure and strdup()s the
- * text string. It returns NULL in case of error
- */
-struct Barcode_Item *Barcode_Create(char *text)
-{
-    struct Barcode_Item *bc;
-
-    bc = malloc(sizeof(*bc));
-    if (!bc) return NULL;
-
-    memset(bc, 0, sizeof(*bc));
-    bc->ascii = strdup(text);
-    bc->margin = BARCODE_DEFAULT_MARGIN; /* default margin */
-    return bc;
-}
-
-
-/*
- * Free a barcode structure
- */
-int Barcode_Delete(struct Barcode_Item *bc)
-{
-    if (bc->ascii)
-       free(bc->ascii);
-    if (bc->partial)
-       free(bc->partial);
-    if (bc->textinfo)
-       free(bc->textinfo);
-    if (bc->encoding)
-       free(bc->encoding);
-    free(bc);
-    return 0; /* always success */
-}
-
-
-/*
- * The various supported encodings.  This might be extended to support
- * dynamic addition of extra encodings
- */
-extern int Barcode_ean_verify(unsigned char *text);
-extern int Barcode_ean_encode(struct Barcode_Item *bc);
-extern int Barcode_upc_verify(unsigned char *text);
-extern int Barcode_upc_encode(struct Barcode_Item *bc);
-extern int Barcode_isbn_verify(unsigned char *text);
-extern int Barcode_isbn_encode(struct Barcode_Item *bc);
-extern int Barcode_39_verify(unsigned char *text);
-extern int Barcode_39_encode(struct Barcode_Item *bc);
-extern int Barcode_128b_verify(unsigned char *text);
-extern int Barcode_128b_encode(struct Barcode_Item *bc);
-extern int Barcode_128c_verify(unsigned char *text);
-extern int Barcode_128c_encode(struct Barcode_Item *bc);
-extern int Barcode_128_verify(unsigned char *text);
-extern int Barcode_128_encode(struct Barcode_Item *bc);
-extern int Barcode_128raw_verify(unsigned char *text);
-extern int Barcode_128raw_encode(struct Barcode_Item *bc);
-extern int Barcode_i25_verify(unsigned char *text);
-extern int Barcode_i25_encode(struct Barcode_Item *bc);
-extern int Barcode_cbr_verify(unsigned char *text);
-extern int Barcode_cbr_encode(struct Barcode_Item *bc);
-extern int Barcode_msi_verify(unsigned char *text);
-extern int Barcode_msi_encode(struct Barcode_Item *bc);
-extern int Barcode_pls_verify(unsigned char *text);
-extern int Barcode_pls_encode(struct Barcode_Item *bc);
-extern int Barcode_93_verify(unsigned char *text);
-extern int Barcode_93_encode(struct Barcode_Item *bc);
-
-
-struct encoding {
-    int type;
-    int (*verify)(unsigned char *text);
-    int (*encode)(struct Barcode_Item *bc);
-};
-
-struct encoding encodings[] = {
-    {BARCODE_EAN,    Barcode_ean_verify,    Barcode_ean_encode},
-    {BARCODE_UPC,    Barcode_upc_verify,    Barcode_upc_encode},
-    {BARCODE_ISBN,   Barcode_isbn_verify,   Barcode_isbn_encode},
-    {BARCODE_128B,   Barcode_128b_verify,   Barcode_128b_encode},
-    {BARCODE_128C,   Barcode_128c_verify,   Barcode_128c_encode},
-    {BARCODE_128RAW, Barcode_128raw_verify, Barcode_128raw_encode},
-    {BARCODE_39,     Barcode_39_verify,     Barcode_39_encode},
-    {BARCODE_I25,    Barcode_i25_verify,    Barcode_i25_encode},
-    {BARCODE_128,    Barcode_128_verify,    Barcode_128_encode},
-    {BARCODE_CBR,    Barcode_cbr_verify,    Barcode_cbr_encode},
-    {BARCODE_PLS,    Barcode_pls_verify,    Barcode_pls_encode},
-    {BARCODE_MSI,    Barcode_msi_verify,    Barcode_msi_encode},
-    {BARCODE_93,     Barcode_93_verify,     Barcode_93_encode},
-    {0,              NULL,                  NULL}
-};
-
-/*
- * A function to encode a string into bc->partial, ready for
- * postprocessing to the output file. Meaningful bits for "flags" are
- * the encoding mask and the no-checksum flag. These bits
- * get saved in the data structure.
- */
-int Barcode_Encode(struct Barcode_Item *bc, int flags)
-{
-    int validbits = BARCODE_ENCODING_MASK | BARCODE_NO_CHECKSUM;
-    struct encoding *cptr;
-
-    /* If any flag is cleared in "flags", inherit it from "bc->flags" */
-    if (!(flags & BARCODE_ENCODING_MASK))
-       flags |= bc->flags & BARCODE_ENCODING_MASK;
-    if (!(flags & BARCODE_NO_CHECKSUM))
-       flags |= bc->flags & BARCODE_NO_CHECKSUM;
-    flags = bc->flags = (flags & validbits) | (bc->flags & ~validbits);
-
-    if (!(flags & BARCODE_ENCODING_MASK)) {
-       /* get the first code able to handle the text */
-       for (cptr = encodings; cptr->verify; cptr++)
-           if (cptr->verify((unsigned char *)bc->ascii)==0)
-               break;
-       if (!cptr->verify) {
-           bc->error = EINVAL; /* no code can handle this text */
-           return -1;
-       }
-       flags |= cptr->type; /* this works */
-       bc->flags |= cptr->type;
-    }
-    for (cptr = encodings; cptr->verify; cptr++)
-       if (cptr->type == (flags & BARCODE_ENCODING_MASK))
-           break;
-    if (!cptr->verify) {
-       bc->error = EINVAL; /* invalid barcode type */
-       return -1;
-    }
-    if (cptr->verify(bc->ascii) != 0) {
-       bc->error = EINVAL;
-       return -1;
-    }
-    return cptr->encode(bc);
-}
-
-
-/* 
- * When multiple output formats are supported, there will
- * be a jumpt table like the one for the types. Now we don't need it
- */
-extern int Barcode_ps_print(struct Barcode_Item *bc, FILE *f);
-extern int Barcode_pcl_print(struct Barcode_Item *bc, FILE *f);
-
-/*
- * A function to print a partially decoded string. Meaningful bits for
- * "flags" are the output mask etc. These bits get saved in the data
- * structure. 
- */
-int Barcode_Print(struct Barcode_Item *bc, FILE *f, int flags)
-{
-    int validbits = BARCODE_OUTPUT_MASK | BARCODE_NO_ASCII
-       | BARCODE_OUT_NOHEADERS;
-
-    /* If any flag is clear in "flags", inherit it from "bc->flags" */
-    if (!(flags & BARCODE_OUTPUT_MASK))
-       flags |= bc->flags & BARCODE_OUTPUT_MASK;
-    if (!(flags & BARCODE_NO_ASCII))
-       flags |= bc->flags & BARCODE_NO_ASCII;
-    if (!(flags & BARCODE_OUT_NOHEADERS))
-       flags |= bc->flags & BARCODE_OUT_NOHEADERS;
-    flags = bc->flags = (flags & validbits) | (bc->flags & ~validbits);
-
-    if (bc->flags & BARCODE_OUT_PCL)
-       return Barcode_pcl_print(bc, f);
-    return Barcode_ps_print(bc, f);
-}
-
-/*
- * Choose the position
- */
-int Barcode_Position(struct Barcode_Item *bc, int wid, int hei,
-                    int xoff, int yoff, double scalef)
-{
-    bc->width = wid; bc->height = hei;
-    bc->xoff = xoff; bc->yoff = yoff;
-    bc->scalef = scalef;
-    return 0;
-}
-
-/*
- * Do it all in one step
- */
-int Barcode_Encode_and_Print(char *text, FILE *f, int wid, int hei,
-                                   int xoff, int yoff, int flags)
-{
-    struct Barcode_Item * bc;
-    
-    if (!(bc=Barcode_Create(text))) {
-       errno = -ENOMEM;
-       return -1;
-    }
-    if (     Barcode_Position(bc, wid, hei, xoff, yoff, 0.0) < 0
-         || Barcode_Encode(bc, flags) < 0
-         || Barcode_Print(bc, f, flags) < 0) {
-       errno = bc->error;
-       Barcode_Delete(bc);
-       return -1;
-    }
-    Barcode_Delete(bc);
-    return 0;
-}
-
-/*
- * Return the version
- */
-
-int Barcode_Version(char *vptr)
-{
-    if (vptr)
-       strcpy(vptr, BARCODE_VERSION);
-    return BARCODE_VERSION_INT;
-}
diff --git a/barcode-0.98/main.c b/barcode-0.98/main.c
deleted file mode 100644 (file)
index e07e4d3..0000000
+++ /dev/null
@@ -1,604 +0,0 @@
-/*
- * main.c - a commandline frontend for the barcode library
- *
- * Copyright (c) 1999 Michele Comitini (mcm@glisco.it)
- * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org)
- * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it)
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- */
-       
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-
-#include "cmdline.h"
-#include "barcode.h"
-
-#ifndef NO_LIBPAPER
-#include <paper.h>
-#endif
-
-/*
- * Most of this file deals with command line options, by exploiting
- * the cmdline.[ch] engine to offer defaults via environment variables
- * and handling functions for complex options.
- *
- * In order to offer a friendly interface (for those who feel the
- * cmdline *is* friendly, like me), we have to convert names to enums...
- */
-
-struct {
-    char *name;
-    int type;
-} encode_tab[] = {
-    {"ean",      BARCODE_EAN},
-    {"ean13",    BARCODE_EAN},
-    {"ean-13",   BARCODE_EAN},
-    {"ean8",     BARCODE_EAN},
-    {"ean-8",    BARCODE_EAN},
-    {"upc",      BARCODE_UPC},
-    {"upc-a",    BARCODE_UPC},
-    {"upc-e",    BARCODE_UPC},
-    {"isbn",     BARCODE_ISBN},
-    {"39",       BARCODE_39},
-    {"code39",   BARCODE_39},
-    {"128c",     BARCODE_128C},
-    {"code128c", BARCODE_128C},
-    {"128b",     BARCODE_128B},
-    {"code128b", BARCODE_128B},
-    {"128",      BARCODE_128},
-    {"code128",  BARCODE_128},
-    {"128raw",   BARCODE_128RAW},
-    {"i25",      BARCODE_I25},
-    {"interleaved 2 of 5", BARCODE_I25},
-    {"cbr",      BARCODE_CBR},
-    {"codabar",  BARCODE_CBR},
-    {"msi",     BARCODE_MSI},
-    {"pls",      BARCODE_PLS},
-    {"plessey",  BARCODE_PLS},
-    {"code93",   BARCODE_93},
-    {"93",       BARCODE_93},
-
-    {NULL, 0}
-};
-
-/*
- * Get encoding type from string rapresentation.
- * Returns -1 on error.
- */
-#ifndef HAVE_STRCASECMP /* some libs (windows, for example) have stricmp */
-#  define strcasecmp stricmp
-#endif
-
-int encode_id(char *encode_name)
-{
-    int i;
-    for (i = 0;  encode_tab[i].name; i++)
-       if (!strcasecmp(encode_tab[i].name, encode_name))
-           return encode_tab[i].type;
-    return -1;
-}
-
-int list_encodes(FILE *f) /* used in the help message */
-{
-    int prev = -1;
-    int i;
-
-    fprintf(f, "Known encodings are (synonyms appear on the same line):");
-    for (i = 0;  encode_tab[i].name; i++) {
-       if (encode_tab[i].type != prev)
-           fprintf(f, "\n\t");
-       else
-           fprintf(f, ", ");
-       fprintf(f, "\"%s\"", encode_tab[i].name);
-       prev = encode_tab[i].type;
-    }
-    fprintf(f, "\n");
-    return 0;
-}
-
-
-/*
- * Variables to hold cmdline arguments (or defaults)
- */
-
-char *ifilename, *ofilename;
-int encoding_type;                    /* filled by get_encoding() */
-int code_width, code_height;          /* "-g" for standalone codes */
-int lines, columns;                   /* "-t" for tables */
-int xmargin0, ymargin0;               /* both for "-g" and "-t" */
-int xmargin1, ymargin1;               /* same, but right and top */
-int ximargin, yimargin;               /* "-m": internal margins */
-int eps, pcl, ps, noascii, nochecksum; /* boolean flags */
-int page_wid, page_hei;               /* page size in points */
-char *page_name;                      /* name of the media */
-double unit = 1.0;                    /* unit specification */
-
-char *prgname;  /* used to print error msgs, initialized to argv[0] by main */
-
-/*
- * Functions to handle command line arguments
- */
-
-struct encode_item {
-    char *string;
-    struct encode_item *next;
-} *list_head, *list_tail;
-
-/* each "-b" option adds a string to the input pool allocating its space */
-int get_input_string(void *arg)
-{
-    struct encode_item *item = malloc(sizeof(*item));
-    if (!item) {
-       fprintf(stderr, "%s: malloc: %s\n", prgname, strerror(errno));
-       return -2;
-    }
-    item->string = strdup(arg);
-    if (!list_head) {
-       list_head = list_tail = item;
-    } else {
-       list_tail->next = item;
-       list_tail = item;
-    }
-    item->next = NULL;
-    return 0;
-}
-
-/* and this function extracts strings from the pool */
-unsigned char *retrieve_input_string(FILE *ifile)
-{
-    char *string;
-    static char fileline[128];
-
-    struct encode_item *item = list_head;
-    if (list_tail) { /* this means at least one "-b" was specified */
-       if (!item)
-           return NULL; /* the list is empty */
-       string = item->string;
-       list_head = item->next;
-       free(item);
-       return string;
-    }
-
-    /* else,  read from the file */
-    if (!fgets(fileline, 128, ifile))
-       return NULL;
-    if (fileline[strlen(fileline)-1]=='\n')
-       fileline[strlen(fileline)-1]= '\0';
-    return strdup(fileline);
-}
-
-/* accept a unit specification */
-int get_unit(void *arg)
-{
-    static struct {
-       char *str;
-       double unit;
-    } *ptr, unittab[] = {
-       {"pt",  1.0},
-       {"in",  72.0},
-       {"cm",  72.0/2.54},
-       {"mm",  72.0/25.4},
-       {NULL, 0.0}
-    };
-
-    for (ptr = unittab; ptr->str && strcmp((char *)arg, ptr->str); ptr++)
-       ;
-    unit = ptr->unit;
-    if (ptr->str) return 0;
-
-    fprintf(stderr, "%s: incorrect unit \"%s\" (use one of",
-           prgname, (char *)arg);
-    for (ptr = unittab; ptr->str; ptr++)
-       fprintf(stderr, " \"%s\"", ptr->str);
-    fprintf(stderr, ")\n");
-    return -2;
-}
-
-/* convert an encoding name to an encoding integer code */
-int get_encoding(void *arg)
-{
-    encoding_type = encode_id((char *)arg);
-    if (encoding_type >=0) return 0;
-    fprintf(stderr, "%s: wrong encoding \"%s\"\n", prgname,
-           (char *)arg);
-    return -2; /* error, no help */
-}
-
-/* convert a geometry specification */
-int get_geometry(void *arg)
-{
-    double w = 0.0, h = 0.0;
-    double x = 0.0, y = 0.0;
-    int n;
-
-    if (((char *)arg)[0]=='+') {
-       n = sscanf((char *)arg, "+%lf+%lf%s", &x, &y, (char *)arg);
-    } else {
-       n = sscanf((char *)arg, "%lfx%lf+%lf+%lf%s", &w, &h, &x, &y,
-                  (char *)arg);
-    }
-    if (n!=4 && n!=2) {
-       fprintf(stderr, "%s: wrong geometry \"%s\"\n", prgname, (char *)arg);
-       return -2;
-    }
-    /* convert to points */
-    code_width  = w * unit;
-    code_height = h * unit;
-    xmargin0 = x * unit;
-    ymargin0 = y * unit;
-    return 0;
-}
-
-/* convert a geometry specification */
-int get_table(void *arg)
-{
-    double x0 = 0.0, y0 = 0.0, x1 = 0.0, y1 = 0.0;
-    int n;
-
-    n = sscanf((char *)arg, "%dx%d+%lf+%lf-%lf-%lf",
-              &columns, &lines, &x0, &y0, &x1, &y1);
-
-    if (n==1 || n==3) { /* error: 2, 4, 5, 6 are fine */
-       fprintf(stderr, "%s: wrong table specification \"%s\"\n", prgname,
-               (char *)arg);
-       return -2;
-    }
-    if (n < 6) y1 = y0; /* symmetric by default */
-    if (n < 5) x1 = x0;
-
-    /* convert and return */
-    xmargin0 = x0 * unit;
-    ymargin0 = y0 * unit;
-    xmargin1 = x1 * unit;
-    ymargin1 = y1 * unit;
-    return 0;
-}
-
-/* convert an internal margin specification */
-int get_margin(void *arg)
-{
-    char separator;
-    double x,y;
-    int n;
-
-    /* accept one number or two, separated by any char */
-    n = sscanf((char *)arg, "%lf%c%lf", &x, &separator, &y);
-
-    if (n==1) {
-       n=3; y = x;
-    }
-    if (n==3) {
-       ximargin = x * unit;
-       yimargin = y * unit;
-       return 0;
-    }
-    fprintf(stderr, "%s: wrong margin specification \"%s\"\n", prgname,
-           (char *)arg);
-       return -2;
-    return 0;
-}
-
-/* convert a page geometry specification */
-int get_page_geometry(void *arg)
-{
-    int n;
-    double dpw, dph; /* page width, height in mm or inches */
-    static char tmpstr[20];
-    page_name = arg; /* if undecipherable, we won't run the program :) */
-    /*
-     * try to decode a "mm" string (eg. "210mmx297mm" or "210x297mm")
-     */
-    n = sscanf((char *)arg, "%lfmmx%lf", &dpw, &dph);
-    if (n != 2 && strlen(arg)<20) {
-       n =  sscanf((char *)arg, "%lfx%lf%s", &dpw, &dph, tmpstr);
-       if (n == 3 && !strcmp(tmpstr, "mm")) {
-           /* Ok, convert to points: 1in is 25.4mm, 1in is also 72p */
-           page_wid = (int)(dpw / 25.4 * 72.0 + 0.5);
-           page_hei = (int)(dph / 25.4 * 72.0 + 0.5);
-           return 0;
-       }
-    }
-
-    /*
-     * try to decode an "in" string (eg. "8.5inx11in" or "8.5x11in")
-     */
-    n = sscanf((char *)arg, "%lfinx%lf", &dpw, &dph);
-    if (n != 2 && strlen(arg)<20) {
-       n =  sscanf((char *)arg, "%lfx%lf%s", &dpw, &dph, tmpstr);
-       if (n == 3 && !strcmp(tmpstr, "in")) {
-           page_wid = (int)(dpw * 72.0 + 0.5); /* round to points */
-           page_hei = (int)(dph * 72.0 + 0.5);
-           return 0;
-       }
-    }
-
-    /*
-     * try to decode a numeric specification
-     */
-    n = sscanf((char *)arg, "%lfx%lf", &dpw, &dph);
-    if (n == 2) {
-       page_wid = dpw * unit;
-       page_hei = dph * unit;
-       if (unit != 1.0) { /* rebuild the page name */
-           page_name = malloc(32); /* big, to avoid snprintf, missing on HP */
-           if (page_name)
-               sprintf(page_name, "%dx%d\n", page_wid, page_hei);
-       }
-       return 0;
-    }
-
-#ifndef NO_LIBPAPER
-    /*
-     * try to use libpaper, since it is available
-     */
-    {
-    const struct paper* paptr;
-
-    paperinit();
-    paptr = paperinfo(arg);
-    if (!paptr) { /* unknown name */
-       paperdone();
-       return -1;
-    }
-    page_wid = (int)(paperpswidth(paptr) + 0.5);
-    page_hei = (int)(paperpsheight(paptr) + 0.5);
-    paperdone();
-    return 0;
-    }
-#endif
-    /* If we got here, the argument is undecipherable: fail */
-    fprintf(stderr, "%s: wrong page size specification \"%s\"\n", prgname,
-           (char *)arg);
-    return -2;
-}
-
-/*
- * The table of possible arguments
- */
-struct commandline option_table[] = {
-    {'i', CMDLINE_S, &ifilename, NULL, NULL, NULL,
-                   "input file (strings to encode), default is stdin"},
-    {'o', CMDLINE_S, &ofilename, NULL, NULL, NULL,
-                    "output file, default is stdout"},
-    {'b', CMDLINE_S, NULL, get_input_string, NULL, NULL,
-                   "string to encode (use input file if missing)"},
-    {'e', CMDLINE_S, NULL, get_encoding, "BARCODE_ENCODING", NULL,
-                   "encoding type (default is best fit for first string)"},
-    {'u', CMDLINE_S, NULL, get_unit, "BARCODE_UNIT", NULL,
-                    "unit (\"mm\", \"in\", ...) used to decode -g, -t, -p"},
-    {'g', CMDLINE_S, NULL, get_geometry, "BARCODE_GEOMETRY", NULL,
-                    "geometry on the page: [<wid>x<hei>][+<margin>+<margin>]"},
-    {'t', CMDLINE_S, NULL, get_table, "BARCODE_TABLE", NULL,
-                    "table geometry: <cols>x<lines>[+<margin>+<margin>]"},
-    {'m', CMDLINE_S, NULL, get_margin, "BARCODE_MARGIN", "10",
-                    "internal margin for each item in a table: <xm>[,<ym>]"},
-    {'n', CMDLINE_NONE, &noascii, NULL, NULL, NULL,
-                    "\"numeric\": avoid printing text along with the bars"},
-    {'c', CMDLINE_NONE, &nochecksum, NULL, NULL, NULL,
-                    "no Checksum character, if the chosen encoding allows it"},
-    {'E', CMDLINE_NONE, &eps, NULL, NULL, NULL,
-                    "print one code as eps file (default: multi-page ps)"},
-    {'P', CMDLINE_NONE, &pcl, NULL, NULL, NULL,
-                    "create PCL output instead of postscript"},
-    {'p', CMDLINE_S, NULL, get_page_geometry, NULL, NULL,
-                    "page size (refer to the man page)"},
-    {0,}
-};
-
-#ifdef NO_STRERROR
-/*
- * A strerror replacement (thanks to Thad Floryan <thad@thadlabs.com>)
- */
-char *strerror(int error)
-{
-    static char msg[16];
-    if (error >= 0 && error < sys_nerr)
-       return sys_errlist[error];
-    sprintf(msg, "Error %d", error);
-    return msg;
-}
-#endif
-        
-/*
- * The main function
- */
-int main(int argc, char **argv)
-{
-    struct Barcode_Item * bc;
-    FILE *ifile = stdin;
-    FILE *ofile = stdout;
-    char *line;
-    int flags=0; /* for the library */
-    int page, retval;
-
-    prgname = argv[0];
-
-    /* First of all, accept "--help" and "-h" as a special case */
-    if (argc == 2 && (!strcmp(argv[1],"--help") || !strcmp(argv[1],"-h"))) {
-       commandline_errormsg(stderr, option_table, argv[0], "Options:\n");
-       fprintf(stderr,"\n");
-       list_encodes(stderr);
-       exit(1);
-    }
-    /* Also, accept "--version" as a special case */
-    if (argc == 2 && (!strcmp(argv[1],"--version"))) {
-       printf("barcode frontend (GNU barcode) " BARCODE_VERSION "\n");
-       exit(0);
-    }
-
-    /* Otherwise, parse the commandline */
-    retval = commandline(option_table, argc, argv, "Use: %s [options]\n");
-    if (retval) {
-       if (retval == -1) /* help printed, complete it */
-           list_encodes(stderr);
-       else /* no help printed, suggest it */
-           fprintf(stderr, "%s: try \"%s --help\"\n", prgname, prgname);
-       exit(1);
-    }
-
-    /* If no paper size has been specified, use the default, if any */
-    if (!page_name) {
-       page_wid = 595; page_hei = 842;
-       page_name = "A4"; /* I live in Europe :) */
-#ifndef NO_LIBPAPER
-       get_page_geometry(systempapername()); /* or the system default */
-#endif
-    }
-
-    /* FIXME: print warnings for incompatible options */
-
-    /* open the input stream if specified */
-    if (ifilename)
-       ifile = fopen(ifilename,"r");
-    if (!ifile) {
-       fprintf(stderr, "%s: %s: %s\n", argv[0], ifilename,
-               strerror(errno));
-       exit(1);
-    }
-
-    /* open the output stream if specified */
-    if (ofilename)
-       ofile = fopen(ofilename,"w");
-    if (!ofile) {
-       fprintf(stderr, "%s: %s: %s\n", argv[0], ofilename,
-               strerror(errno));
-       exit(1);
-    }
-
-    if (encoding_type < 0) { /* unknown type specified */
-       fprintf(stderr,"%s: Unknown endoding. Try \"%s --help\"\n",
-               argv[0], argv[0]);
-       exit(1);
-    }
-    flags |= encoding_type;  
-    if (pcl) {
-       flags |= BARCODE_OUT_PCL;
-    } else {
-       ps = !eps; /* a shortcut */
-       if (eps)
-           flags |= BARCODE_OUT_EPS; /* print headers too */
-       else
-           flags |= BARCODE_OUT_PS | BARCODE_OUT_NOHEADERS;
-    }
-    if (noascii)
-       flags |= BARCODE_NO_ASCII;
-    if (nochecksum)
-       flags |= BARCODE_NO_CHECKSUM;
-
-    /* the table is not available in eps mode */
-    if (eps && (lines>1 || columns>1)) {
-       fprintf(stderr, "%s: can't print tables in EPS format\n",argv[0]);
-       exit(1);
-    }
-
-    if (ps) { /* The header is independent of single/table mode */
-       /* Headers. Don't let the library do it, we may need multi-page */
-       fprintf(ofile, "%%!PS-Adobe-2.0\n");
-       /* It would be nice to know the bounding box. Leave it alone */
-       fprintf(ofile, "%%%%Creator: \"barcode\", "
-               "libbarcode sample frontend\n");
-       if (page_name)
-           fprintf(ofile, "%%%%DocumentPaperSizes: %s\n", page_name);
-       fprintf(ofile, "%%%%EndComments\n");
-       fprintf(ofile, "%%%%EndProlog\n\n");
-    }
-
-    /*
-     * Here we are, ready to work. Handle the one-per-page case first,
-     * as it is shorter.
-     */
-    if (!lines && !columns) {
-       page = 0;
-       while ( (line = retrieve_input_string(ifile)) ) {
-           page++;
-           if (ps) {
-               fprintf(ofile, "%%%%Page: %i %i\n\n",page,page);
-           }
-           if (Barcode_Encode_and_Print(line, ofile, code_width, code_height,
-                                        xmargin0, ymargin0, flags) < 0) {
-               fprintf(stderr, "%s: can't encode \"%s\"\n", argv[0], line);
-           }
-           if (eps) break; /* if output is eps, do it once only */
-           if (ps) fprintf(ofile, "showpage\n");
-           if (pcl) fprintf(ofile, "\f");
-       }
-       /* no more lines, print footers */
-       if (ps) {
-           fprintf(ofile, "%%%%Trailer\n\n");
-       }
-    } else {
-
-       /* table mode, the header has been already printed */
-       
-       int xstep = (page_wid - xmargin0 - xmargin1)/columns;
-       int ystep = (page_hei - ymargin0 - ymargin1)/lines;
-       int x = columns, y = -1; /* position in the table, start off-page */
-
-       if (!ximargin) ximargin = BARCODE_DEFAULT_MARGIN;
-       if (!yimargin) yimargin = BARCODE_DEFAULT_MARGIN;
-       /* Assign default size unless -g did it (Joachim Reichelt) */
-       if ( !code_width && !code_height) {
-           code_width = xstep - 2*ximargin;
-           code_height = ystep - 2*yimargin;
-       }
-
-       page=0;
-       while ( (line = retrieve_input_string(ifile)) ) {
-           x++;  /* fit x and y */
-           if (x >= columns) {
-               x=0; y--;
-               if (y<0) {
-                   y = lines-1; page++;
-                   /* flush page */
-                   if (ps && page > 1) fprintf(ofile, "showpage\n");
-                   if (pcl && page > 1) fprintf(ofile, "\f");
-                   /* new page */
-                   if (ps) fprintf(ofile, "%%%%Page: %i %i\n\n",page,page);
-               }
-           }
-
-           /*
-            * Create a barcode item. This allows to set the margin to 0, as
-            * we have [xy]imargin to use. But don't use Encode_and_Print(),
-            * unroll it here instead
-            */
-           bc = Barcode_Create(line);
-           if (!bc) {
-               fprintf(stderr, "%s: Barcode_Create(): %s\n", argv[0],
-                       strerror(errno));
-               exit(1);
-           }
-           bc->margin = 0;
-           if ( (Barcode_Position(bc, code_width, code_height,
-                                  xmargin0 + ximargin + x * xstep,
-                                  ymargin0 + yimargin + y * ystep, 0.0) < 0)
-                || (Barcode_Encode(bc, flags) < 0)
-                || (Barcode_Print(bc, ofile, flags) < 0) ) {
-               fprintf(stderr, "%s: can't encode \"%s\": %s\n", argv[0],
-                       line, strerror(bc->error));
-           }
-           Barcode_Delete(bc);
-       }
-       if (ps) fprintf(ofile, "showpage\n\n%%%%Trailer\n\n");
-       if (pcl) fprintf(ofile, "\f");
-    }
-    return 0;
-}
-
-
-
diff --git a/barcode-0.98/missing b/barcode-0.98/missing
deleted file mode 100755 (executable)
index d46f79f..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-#! /bin/sh
-# Common stub for a few missing GNU programs while installing.
-# Copyright (C) 1996, 1997, 2001 Free Software Foundation, Inc.
-# Franc,ois Pinard <pinard@iro.umontreal.ca>, 1996.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-if test $# -eq 0; then
-  echo 1>&2 "Try \`$0 --help' for more information"
-  exit 1
-fi
-
-# In the cases where this matters, `missing' is being run in the
-# srcdir already.
-if test -f configure.in; then
-  configure_ac=configure.ac
-else
-  configure_ac=configure.in
-fi
-
-case "$1" in
-
-  -h|--h|--he|--hel|--help)
-    echo "\
-$0 [OPTION]... PROGRAM [ARGUMENT]...
-
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
-
-Options:
-  -h, --help      display this help and exit
-  -v, --version   output version information and exit
-
-Supported PROGRAM values:
-  aclocal      touch file \`aclocal.m4'
-  autoconf     touch file \`configure'
-  autoheader   touch file \`config.h.in'
-  automake     touch all \`Makefile.in' files
-  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
-  flex         create \`lex.yy.c', if possible, from existing .c
-  lex          create \`lex.yy.c', if possible, from existing .c
-  makeinfo     touch the output file
-  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]"
-    ;;
-
-  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
-    echo "missing - GNU libit 0.0"
-    ;;
-
-  -*)
-    echo 1>&2 "$0: Unknown \`$1' option"
-    echo 1>&2 "Try \`$0 --help' for more information"
-    exit 1
-    ;;
-
-  aclocal)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified \`acinclude.m4' or \`$configure_ac'.  You might want
-         to install the \`Automake' and \`Perl' packages.  Grab them from
-         any GNU archive site."
-    touch aclocal.m4
-    ;;
-
-  autoconf)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified \`$configure_ac'.  You might want to install the
-         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
-         archive site."
-    touch configure
-    ;;
-
-  autoheader)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified \`acconfig.h' or \`$configure_ac'.  You might want
-         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
-         from any GNU archive site."
-    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' $configure_ac`
-    test -z "$files" && files="config.h"
-    touch_files=
-    for f in $files; do
-      case "$f" in
-      *:*) touch_files="$touch_files "`echo "$f" |
-                                      sed -e 's/^[^:]*://' -e 's/:.*//'`;;
-      *) touch_files="$touch_files $f.in";;
-      esac
-    done
-    touch $touch_files
-    ;;
-
-  automake)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified \`Makefile.am', \`acinclude.m4' or \`$configure_ac'.
-         You might want to install the \`Automake' and \`Perl' packages.
-         Grab them from any GNU archive site."
-    find . -type f -name Makefile.am -print |
-          sed 's/\.am$/.in/' |
-          while read f; do touch "$f"; done
-    ;;
-
-  bison|yacc)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified a \`.y' file.  You may need the \`Bison' package
-         in order for those modifications to take effect.  You can get
-         \`Bison' from any GNU archive site."
-    rm -f y.tab.c y.tab.h
-    if [ $# -ne 1 ]; then
-        eval LASTARG="\${$#}"
-       case "$LASTARG" in
-       *.y)
-           SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
-           if [ -f "$SRCFILE" ]; then
-                cp "$SRCFILE" y.tab.c
-           fi
-           SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
-           if [ -f "$SRCFILE" ]; then
-                cp "$SRCFILE" y.tab.h
-           fi
-         ;;
-       esac
-    fi
-    if [ ! -f y.tab.h ]; then
-       echo >y.tab.h
-    fi
-    if [ ! -f y.tab.c ]; then
-       echo 'main() { return 0; }' >y.tab.c
-    fi
-    ;;
-
-  lex|flex)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified a \`.l' file.  You may need the \`Flex' package
-         in order for those modifications to take effect.  You can get
-         \`Flex' from any GNU archive site."
-    rm -f lex.yy.c
-    if [ $# -ne 1 ]; then
-        eval LASTARG="\${$#}"
-       case "$LASTARG" in
-       *.l)
-           SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
-           if [ -f "$SRCFILE" ]; then
-                cp "$SRCFILE" lex.yy.c
-           fi
-         ;;
-       esac
-    fi
-    if [ ! -f lex.yy.c ]; then
-       echo 'main() { return 0; }' >lex.yy.c
-    fi
-    ;;
-
-  makeinfo)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified a \`.texi' or \`.texinfo' file, or any other file
-         indirectly affecting the aspect of the manual.  The spurious
-         call might also be the consequence of using a buggy \`make' (AIX,
-         DU, IRIX).  You might want to install the \`Texinfo' package or
-         the \`GNU make' package.  Grab either from any GNU archive site."
-    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
-    if test -z "$file"; then
-      file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
-      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
-    fi
-    touch $file
-    ;;
-
-  *)
-    echo 1>&2 "\
-WARNING: \`$1' is needed, and you do not seem to have it handy on your
-         system.  You might have modified some files without having the
-         proper tools for further handling them.  Check the \`README' file,
-         it often tells you about the needed prerequirements for installing
-         this package.  You may also peek at any GNU archive site, in case
-         some other package would contain this missing \`$1' program."
-    exit 1
-    ;;
-esac
-
-exit 0
diff --git a/barcode-0.98/mkinstalldirs b/barcode-0.98/mkinstalldirs
deleted file mode 100755 (executable)
index 6b3b5fc..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain
-
-# $Id$
-
-errstatus=0
-
-for file
-do
-   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
-   shift
-
-   pathcomp=
-   for d
-   do
-     pathcomp="$pathcomp$d"
-     case "$pathcomp" in
-       -* ) pathcomp=./$pathcomp ;;
-     esac
-
-     if test ! -d "$pathcomp"; then
-        echo "mkdir $pathcomp"
-
-        mkdir "$pathcomp" || lasterr=$?
-
-        if test ! -d "$pathcomp"; then
-         errstatus=$lasterr
-        fi
-     fi
-
-     pathcomp="$pathcomp/"
-   done
-done
-
-exit $errstatus
-
-# mkinstalldirs ends here
diff --git a/barcode-0.98/msi.c b/barcode-0.98/msi.c
deleted file mode 100644 (file)
index 77a373b..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * msi.c -- encoding for MSI-Plessey
- *
- * Copyright (c) 2000 Leonid A. Broukhis (leob@mailcom.com)
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-
-#include "barcode.h"
-
-
-/* Patterns */
-static char *patterns[] = { "13", "31" };
-
-static char *fillers[] = { "031", "131" };
-
-static int width = 16 /* each character uses 4 patterns */,
-       startpos = 6 /* length of the first filler */;
-
-/*
- * Check that the text can be encoded. Returns 0 or -1.
- */
-int Barcode_msi_verify(unsigned char *text)
-{
-    int i;
-
-    if (!strlen(text))
-       return -1;
-    for (i=0; text[i]; i++) {
-        if (!isdigit(text[i]))
-            return -1;
-    }
-    return 0;
-}
-
-static int add_one(char *ptr, int code)
-{
-    sprintf(ptr, "%s%s%s%s", 
-       patterns[(code >> 3) & 1],
-       patterns[(code >> 2) & 1],
-       patterns[(code >> 1) & 1],
-       patterns[code & 1]);
-    return 0;
-}
-
-/*
- * The encoding functions fills the "partial" and "textinfo" fields.
- * Lowercase chars are converted to uppercase
- */
-int Barcode_msi_encode(struct Barcode_Item *bc)
-{
-    static char *text;
-    static char *partial;  /* dynamic */
-    static char *textinfo; /* dynamic */
-    char *ptr, *textptr;
-    int i, code, textpos, usesum, checksum = 0;
-
-    if (bc->partial)
-       free(bc->partial);
-    if (bc->textinfo)
-       free(bc->textinfo);
-    bc->partial = bc->textinfo = NULL; /* safe */
-
-    if (!bc->encoding)
-       bc->encoding = strdup("msi");
-
-    if ((bc->flags & BARCODE_NO_CHECKSUM))
-       usesum = 0;
-    else
-       usesum = 1;
-
-    text = bc->ascii;
-
-    /* the partial code is head + 8 * (text + check) + tail + margin + term. */
-    partial = malloc( 3 + 8 * (strlen(text) + 1) + 3 + 2 );
-    if (!partial) {
-        bc->error = errno;
-        return -1;
-    }
-
-    /* the text information is at most "nnn:fff:c " * strlen +term */
-    textinfo = malloc(10*strlen(text) + 2);
-    if (!textinfo) {
-        bc->error = errno;
-        free(partial);
-        return -1;
-    }
-
-    strcpy(partial, fillers[0]);
-    ptr = partial + strlen(partial);
-    textptr = textinfo;
-    textpos = startpos;
-    
-    for (i=0; i<strlen(text); i++) {
-        code = text[i] - '0';
-        add_one(ptr, code);
-        sprintf(textptr, "%i:12:%c ", textpos, text[i]);
-        
-        textpos += width; /* width of each code */
-        textptr += strlen(textptr);
-        ptr += strlen(ptr); 
-       if (usesum) {
-       /* For a code ...FEDCBA the checksum is computed
-        * as the sum of digits of the number ...FDB plus
-        * the sum of digits of the number ...ECA * 2.
-        * Which is equivalent to the sum of each digit of ...ECA doubled
-        * plus carry.
-        */
-           if ((i ^ strlen(text)) & 1) {
-               /* a last digit, 2 away from last, etc. */
-               checksum += 2 * code + (2 * code) / 10;
-           } else {
-               checksum += code;
-           }
-       }
-    }
-    /* Some implementations use a double checksum. Currently the only way
-     * to print a barcode with double checksum is to put the checksum
-     * digit printed below at the end of a code in the command line
-     * and re-run the program.
-     */
-    if (usesum) {
-       /* the check digit is the complement of the checksum
-        * to a multiple of 10.
-        */
-       checksum = (checksum + 9) / 10 * 10 - checksum;
-       /* fprintf(stderr, "Checksum: %d\n", checksum); */
-       add_one(ptr, checksum);
-       ptr += strlen(ptr);
-    }
-
-    strcpy(ptr, fillers[1]);
-    bc->partial = partial;
-    bc->textinfo = textinfo;
-
-    return 0;
-}
diff --git a/barcode-0.98/pcl.c b/barcode-0.98/pcl.c
deleted file mode 100644 (file)
index d5ec097..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * pcl.c -- printing the "partial" bar encoding in PCL format
- *
- * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org)
- * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it)
- * Copyright (c) 2001 Andrea Scopece (a.scopece@tin.it)
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-
-#include "barcode.h"
-
-#define SHRINK_AMOUNT 0.15  /* shrink the bars to account for ink spreading */
-
-
-/*
- * How do the "partial" and "textinfo" strings work? See file "ps.c"
- */
-
-
-int Barcode_pcl_print(struct Barcode_Item *bc, FILE *f)
-{
-    int i, j, k, barlen;
-    double f1, f2, fsav=0;
-    int mode = '-'; /* text below bars */
-    double scalef=1, xpos, x0, y0, yr;
-    unsigned char *ptr;
-    unsigned char c;
-
-    char font_id[6];           /* default font, should be "scalable" */
-    /* 0     Line printer,    use on older LJet II, isn't scalable   */
-    /* 4148  Univers,         use on LJet III series, and Lj 4L, 5L  */
-    /* 16602 Arial,           default LJ family 4, 5, 6, Color, Djet */
-
-    if (!bc->partial || !bc->textinfo) {
-       bc->error = EINVAL;
-       return -1;
-    }
-
-    /*
-     * Maybe this first part can be made common to several printing back-ends,
-     * we'll see how that works when other ouput engines are added
-     */
-
-    /* First, calculate barlen */
-    barlen = bc->partial[0] - '0';
-    for (ptr = bc->partial+1; *ptr; ptr++)
-       if (isdigit(*ptr)) 
-           barlen += (*ptr - '0');
-       else if (islower(*ptr))
-           barlen += (*ptr - 'a'+1);
-
-    /* The scale factor depends on bar length */
-    if (!bc->scalef) {
-        if (!bc->width) bc->width = barlen; /* default */
-        scalef = bc->scalef = (double)bc->width / (double)barlen;
-    }
-
-    /* The width defaults to "just enough" */
-    if (!bc->width) bc->width = barlen * scalef +1;
-
-    /* But it can be too small, in this case enlarge and center the area */
-    if (bc->width < barlen * scalef) {
-        int wid = barlen * scalef + 1;
-        bc->xoff -= (wid - bc->width)/2 ;
-        bc->width = wid;
-        /* Can't extend too far on the left */
-        if (bc->xoff < 0) {
-            bc->width += -bc->xoff;
-            bc->xoff = 0;
-        }
-    }
-
-    /* The height defaults to 80 points (rescaled) */
-    if (!bc->height) bc->height = 80 * scalef;
-
-#if 0
-    /* If too small (5 + text), enlarge and center */
-    i = 5 + 10 * ((bc->flags & BARCODE_NO_ASCII)==0);
-    if (bc->height < i * scalef ) {
-        int hei = i * scalef;
-        bc->yoff -= (hei-bc->height)/2;
-        bc->height = hei;
-        if (bc->yoff < 0) {
-            bc->height += -bc->yoff;
-            bc->yoff = 0;
-        }
-    }
-#else
-    /* If too small (5 + text), reduce the scale factor and center */
-    i = 5 + 10 * ((bc->flags & BARCODE_NO_ASCII)==0);
-    if (bc->height < i * scalef ) {
-        double scaleg = ((double)bc->height) / i;
-        int wid = bc->width * scaleg / scalef;
-        bc->xoff += (bc->width - wid)/2;
-        bc->width = wid;
-        scalef = scaleg;
-    }
-#endif
-
-    /*
-     * deal with PCL output
-     */
-
-    xpos = bc->margin + (bc->partial[0]-'0') * scalef;
-    for (ptr = bc->partial+1, i=1; *ptr; ptr++, i++) {
-       /* special cases: '+' and '-' */
-       if (*ptr == '+' || *ptr == '-') {
-           mode = *ptr; /* don't count it */ i++; continue;
-       }
-
-       /* j is the width of this bar/space */
-       if (isdigit (*ptr))   j = *ptr-'0';
-       else                  j = *ptr-'a'+1;
-       if (i%2) { /* bar */
-           x0 = bc->xoff + xpos;
-            y0 = bc->yoff + bc->margin;
-            yr = bc->height;
-            if (!(bc->flags & BARCODE_NO_ASCII)) { /* leave space for text */
-               if (mode == '-') {
-                   /* text below bars: 10 points or five points */
-                   yr -= (isdigit(*ptr) ? 10 : 5) * scalef;
-               } else { /* '+' */
-                   /* text above bars: 10 or 0 from bottom, and 10 from top */
-                   y0 += (isdigit(*ptr) ? 10 : 0) * scalef;
-                   yr -= (isdigit(*ptr) ? 20 : 10) * scalef; 
-               }
-           }
-
-           fprintf(f,"%c&a%.0fH", 27, x0 * 10.0);
-           fprintf(f,"%c&a%.0fV", 27, y0 * 10.0);
-           fprintf(f,"%c*c%.0fH", 27, ((j*scalef)-SHRINK_AMOUNT) * 10.0);
-           fprintf(f,"%c*c%.0fV", 27, yr * 10.0);
-           fprintf(f,"%c*c0P\n", 27);
-       }
-       xpos += j * scalef;
-    }
-
-    /* the text */
-
-    mode = '-'; /* reinstantiate default */
-    if (!(bc->flags & BARCODE_NO_ASCII)) {
-        k=0; /* k is the "previous font size" */
-        for (ptr = bc->textinfo; ptr; ptr = strchr(ptr, ' ')) {
-            while (*ptr == ' ') ptr++;
-            if (!*ptr) break;
-           if (*ptr == '+' || *ptr == '-') {
-               mode = *ptr; continue;
-           }
-            if (sscanf(ptr, "%lf:%lf:%c", &f1, &f2, &c) != 3) {
-               fprintf(stderr, "barcode: impossible data: %s\n", ptr);
-                continue;
-            }
-
-    /* select a Scalable Font */
-
-           if (fsav != f2)
-           {   
-               if ((bc->flags & BARCODE_OUT_PCL_III) == BARCODE_OUT_PCL_III)
-               {       strcpy(font_id, "4148");        /* font Univers */
-               }
-               else
-               {       strcpy(font_id, "16602");       /* font Arial */
-               }
-
-               fprintf(f,"%c(8U%c(s1p%5.2fv0s0b%sT", 27, 27, f2 * scalef, font_id);
-           }
-           fsav = f2;
-       
-           fprintf(f,"%c&a%.0fH", 27, (bc->xoff + f1 * scalef + bc->margin) * 10.0);
-           fprintf(f,"%c&a%.0fV", 27,
-                   mode != '-'
-                       ? ((double)bc->yoff + bc->margin              + 8*scalef) * 10.0
-                      : ((double)bc->yoff + bc->margin + bc->height           ) * 10.0);
-
-               fprintf(f, "%c", c);
-       }
-
-    }
-
-    return 0;
-}
diff --git a/barcode-0.98/plessey.c b/barcode-0.98/plessey.c
deleted file mode 100644 (file)
index ec47100..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * plessey.c -- encoding for Plessey
- *
- * Copyright (c) 2000 Leonid A. Broukhis (leob@mailcom.com)
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-
-#include "barcode.h"
-
-static char * patterns[] = { "13", "31" };
-
-/* this is ordered in decades to simplify encoding */
-static char alphabet[] = 
-   "0123456789" "ABCDEF";
-
-/* stop sequence may be 231311313 (barcodemill.com) */
-static char *fillers[] = { "031311331", "331311313" };
-
-static int width = 16, startpos = 16;
-
-/*
- * Check that the text can be encoded. Returns 0 or -1.
- * If it's all lowecase convert to uppercase and accept it
- */
-int Barcode_pls_verify(unsigned char *text)
-{
-    int i, upper = 0, lower = 0;
-
-    if (!strlen(text))
-       return -1;
-    for (i=0; text[i]; i++) {
-        if (!strchr(alphabet,toupper(text[i])))
-            return -1;
-       if (isupper(text[i])) upper++;
-       if (islower(text[i])) lower++;
-    }
-    if (upper && lower)
-       return -1;
-    return 0;
-}
-
-static int add_one(char *ptr, int code)
-{
-    sprintf(ptr, "%s%s%s%s", 
-       patterns[code & 1],
-       patterns[(code >> 1) & 1],
-       patterns[(code >> 2) & 1],
-       patterns[(code >> 3) & 1]
-    );
-    return 0;
-}
-
-/*
- * The encoding functions fills the "partial" and "textinfo" fields.
- * Lowercase chars are converted to uppercase
- */
-int Barcode_pls_encode(struct Barcode_Item *bc)
-{
-    static char *text;
-    static char *partial;  /* dynamic */
-    static char *textinfo; /* dynamic */
-    char *c, *ptr, *textptr;
-    unsigned char *checkptr;
-    int i, code, textpos;
-    static char check[9] = {1,1,1,1,0,1,0,0,1};
-    if (bc->partial)
-       free(bc->partial);
-    if (bc->textinfo)
-       free(bc->textinfo);
-    bc->partial = bc->textinfo = NULL; /* safe */
-
-    if (!bc->encoding)
-       bc->encoding = strdup("plessey");
-
-    text = bc->ascii;
-    if (!text) {
-        bc->error = EINVAL;
-        return -1;
-    }
-    /* the partial code is 8 * (head + text + check + tail) + margin + term. */
-    partial = malloc( (strlen(text) + 4) * 8 + 3);
-    checkptr = calloc (1, strlen(text) * 4 + 8);
-
-    if (!partial || !checkptr) {
-       if (partial) free(partial);
-       if (checkptr) free(checkptr);
-        bc->error = errno;
-        return -1;
-    }
-
-    /* the text information is at most "nnn:fff:c " * strlen +term */
-    textinfo = malloc(10*strlen(text) + 2);
-    if (!textinfo) {
-        bc->error = errno;
-        free(partial);
-        return -1;
-    }
-
-    strcpy(partial, fillers[0]);
-    ptr = partial + strlen(partial);
-    textptr = textinfo;
-    textpos = startpos;
-    
-    for (i=0; i<strlen(text); i++) {
-        c = strchr(alphabet, toupper(text[i]));
-        if (!c) {
-            bc->error = EINVAL; /* impossible if text is verified */
-            free(partial);
-            free(textinfo);
-            return -1;
-        }
-        code = c - alphabet;
-        add_one(ptr, code);
-        sprintf(textptr, "%i:12:%c ", textpos, toupper(text[i]));
-        
-        textpos += width; /* width of each code */
-        textptr += strlen(textptr);
-        ptr += strlen(ptr); 
-       checkptr[4*i] = code & 1;
-       checkptr[4*i+1] = (code >> 1) & 1;
-       checkptr[4*i+2] = (code >> 2) & 1;
-       checkptr[4*i+3] = (code >> 3) & 1;
-    }
-    /* The CRC checksum is required */
-    for (i=0; i < 4*strlen(text); i++) {
-        int j;
-        if (checkptr[i])
-                for (j = 0; j < 9; j++)
-                        checkptr[i+j] ^= check[j];
-    }
-    for (i = 0; i < 8; i++) {
-        sprintf(ptr, patterns[checkptr[strlen(text) * 4 + i]]);
-       ptr += 2;
-    }
-    fprintf(stderr, "CRC: ");
-    for (i = 0; i < 8; i++) {
-        fputc('0' + checkptr[strlen(text) * 4 + i], stderr);
-    }
-    fputc('\n', stderr);
-    strcpy(ptr, fillers[1]);
-    bc->partial = partial;
-    bc->textinfo = textinfo;
-
-    return 0;
-}
diff --git a/barcode-0.98/ps.c b/barcode-0.98/ps.c
deleted file mode 100644 (file)
index 3591751..0000000
+++ /dev/null
@@ -1,272 +0,0 @@
-/*
- * ps.c -- printing the "partial" bar encoding
- *
- * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org)
- * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it)
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-
-#include "barcode.h"
-
-#define SHRINK_AMOUNT 0.15 /* shrink the bars to account for ink spreading */
-
-
-/*
- * How do the "partial" and "textinfo" strings work?
- *
- * The first char in "partial" tells how much extra space to add to the
- * left of the bars. For EAN-13, it is used to leave space to print the
- * first digit, other codes may have '0' for no-extra-space-needed.
- *
- * The next characters are alternating bars and spaces, as multiples
- * of the base dimension which is 1 unless the code is
- * rescaled. Rescaling is calculated as the ratio from the requested
- * width and the calculated width.  Digits represent bar/space
- * dimensions. Lower-case letters represent those bars that should
- * extend lower than the others: 'a' is equivalent to '1', 'b' is '2' and
- * so on.
- *
- * The "textinfo" string is made up of fields "%lf:%lf:%c" separated by
- * blank space. The first integer is the x position of the character,
- * the second is the font size (before rescaling) and the char item is
- * the charcter to be printed.
- *
- * Both the "partial" and "textinfo" strings may include "-" or "+" as
- * special characters (in "textinfo" the char should be a standalone
- * word).  They state where the text should be printed: below the bars
- * ("-", default) or above the bars. This is used, for example, to
- * print the add-5 and add-2 codes to the right of UPC or EAN codes
- * (the add-5 extension is mostly used in ISBN codes.
- */
-
-
-int Barcode_ps_print(struct Barcode_Item *bc, FILE *f)
-{
-    int i, j, k, barlen, printable=1;
-    double f1, f2, fsav=0;
-    int mode = '-'; /* text below bars */
-    double scalef=1, xpos, x0, y0, yr;
-    unsigned char *ptr;
-    unsigned char c;
-
-    if (!bc->partial || !bc->textinfo) {
-       bc->error = EINVAL;
-       return -1;
-    }
-
-
-    /*
-     * Maybe this first part can be made common to several printing back-ends,
-     * we'll see how that works when other ouput engines are added
-     */
-
-    /* First, calculate barlen */
-    barlen = bc->partial[0] - '0';
-    for (ptr = bc->partial+1; *ptr; ptr++)
-       if (isdigit(*ptr)) 
-           barlen += (*ptr - '0');
-       else if (islower(*ptr))
-           barlen += (*ptr - 'a'+1);
-
-    /* The scale factor depends on bar length */
-    if (!bc->scalef) {
-        if (!bc->width) bc->width = barlen; /* default */
-        scalef = bc->scalef = (double)bc->width / (double)barlen;
-    }
-
-    /* The width defaults to "just enough" */
-    if (!bc->width) bc->width = barlen * scalef +1;
-
-    /* But it can be too small, in this case enlarge and center the area */
-    if (bc->width < barlen * scalef) {
-        int wid = barlen * scalef + 1;
-        bc->xoff -= (wid - bc->width)/2 ;
-        bc->width = wid;
-        /* Can't extend too far on the left */
-        if (bc->xoff < 0) {
-            bc->width += -bc->xoff;
-            bc->xoff = 0;
-        }
-    }
-
-    /* The height defaults to 80 points (rescaled) */
-    if (!bc->height) bc->height = 80 * scalef;
-
-#if 0
-    /* If too small (5 + text), enlarge and center */
-    i = 5 + 10 * ((bc->flags & BARCODE_NO_ASCII)==0);
-    if (bc->height < i * scalef ) {
-        int hei = i * scalef;
-        bc->yoff -= (hei-bc->height)/2;
-        bc->height = hei;
-        if (bc->yoff < 0) {
-            bc->height += -bc->yoff;
-            bc->yoff = 0;
-        }
-    }
-#else
-    /* If too small (5 + text), reduce the scale factor and center */
-    i = 5 + 10 * ((bc->flags & BARCODE_NO_ASCII)==0);
-    if (bc->height < i * scalef ) {
-        double scaleg = ((double)bc->height) / i;
-        int wid = bc->width * scaleg / scalef;
-        bc->xoff += (bc->width - wid)/2;
-        bc->width = wid;
-        scalef = scaleg;
-    }
-#endif
-
-    /*
-     * Ok, then deal with actual ps (eps) output
-     */
-
-    if (!(bc->flags & BARCODE_OUT_NOHEADERS)) { /* spit a header first */
-       if (bc->flags & BARCODE_OUT_EPS) 
-           fprintf(f, "%%!PS-Adobe-2.0 EPSF-1.2\n");
-       else
-           fprintf(f, "%%!PS-Adobe-2.0\n");
-       fprintf(f, "%%%%Creator: libbarcode\n");
-       if (bc->flags & BARCODE_OUT_EPS)  {
-           fprintf(f, "%%%%BoundingBox: %i %i %i %i\n",
-                   bc->xoff,
-                   bc->yoff,
-                   bc->xoff + bc->width + 2* bc->margin,
-                   bc->yoff + bc->height + 2* bc->margin);
-       }
-       fprintf(f, "%%%%EndComments\n");
-       if (bc->flags & BARCODE_OUT_PS)  {
-           fprintf(f, "%%%%EndProlog\n\n");
-           fprintf(f, "%%%%Page: 1 1\n\n");
-       }
-    }
-
-    /* Print some informative comments */
-    for (i=0; bc->ascii[i]; i++)
-       if (bc->ascii[i] < ' ')
-           printable = 0;
-
-    fprintf(f,"%% Printing barcode for \"%s\", scaled %5.2f",
-           printable ? bc->ascii : "<unprintable string>", scalef);
-    if (bc->encoding)
-       fprintf(f,", encoded using \"%s\"",bc->encoding);
-    fprintf(f, "\n");
-    fprintf(f,"%% The space/bar succession is represented "
-           "by the following widths (space first):\n"
-           "%% ");
-    for (i=0; i<strlen(bc->partial); i++) {
-        unsigned char c = bc->partial[i];
-       if (isdigit(c)) putc(c, f);
-       if (islower(c)) putc(c-'a'+'1', f);
-       if (isupper(c)) putc(c-'A'+'1', f);
-    }
-    /* open array for "forall" */
-    fprintf(f, "\n[\n%%  height  xpos   ypos  width"
-                "       height  xpos   ypos  width\n");
-
-    xpos = bc->margin + (bc->partial[0]-'0') * scalef;
-    for (ptr = bc->partial+1, i=1; *ptr; ptr++, i++) {
-       /* special cases: '+' and '-' */
-       if (*ptr == '+' || *ptr == '-') {
-           mode = *ptr; /* don't count it */ i++; continue;
-       }
-       /* j is the width of this bar/space */
-       if (isdigit (*ptr))   j = *ptr-'0';
-       else                  j = *ptr-'a'+1;
-       if (i%2) { /* bar */
-           x0 = bc->xoff + xpos + (j*scalef)/2;
-            y0 = bc->yoff + bc->margin;
-            yr = bc->height;
-            if (!(bc->flags & BARCODE_NO_ASCII)) { /* leave space for text */
-               if (mode == '-') {
-                   /* text below bars: 10 points or five points */
-                   y0 += (isdigit(*ptr) ? 10 : 5) * scalef;
-                   yr -= (isdigit(*ptr) ? 10 : 5) * scalef;
-               } else { /* '+' */
-                   /* text above bars: 10 or 0 from bottom, and 10 from top */
-                   y0 += (isdigit(*ptr) ? 10 : 0) * scalef;
-                   yr -= (isdigit(*ptr) ? 20 : 10) * scalef; 
-               }
-           }
-           /* Define an array and then use "forall" (Hans Schou) */
-            fprintf(f,"   [%5.2f %6.2f %6.2f %5.2f]%s",
-                    yr, x0, y0, (j * scalef) - SHRINK_AMOUNT,
-                   i%4 == 1 ? "   " : "\n");
-       }
-       xpos += j * scalef;
-    }
-    fprintf(f,"\n]\t{ {} forall setlinewidth moveto 0 exch rlineto stroke} "
-           "bind forall\n");
-
-    /* Then, the text */
-
-    mode = '-'; /* reinstantiate default */
-    if (!(bc->flags & BARCODE_NO_ASCII)) {
-       fprintf(f, "[\n%%   char    xpos   ypos fontsize\n");
-        k=0; /* k is the "previous font size" */
-        for (ptr = bc->textinfo; ptr; ptr = strchr(ptr, ' ')) {
-            while (*ptr == ' ') ptr++;
-            if (!*ptr) break;
-           if (*ptr == '+' || *ptr == '-') {
-               mode = *ptr; continue;
-           }
-            if (sscanf(ptr, "%lf:%lf:%c", &f1, &f2, &c) != 3) {
-               fprintf(stderr, "barcode: impossible data: %s\n", ptr);
-                continue;
-            }
-
-            fprintf(f, "    [(");
-           /* Both the backslash and the two parens are special */
-           if (c=='\\' || c==')' || c=='(')
-               fprintf(f, "\\%c) ", c);
-           else
-               fprintf(f, "%c)  ", c);
-            fprintf(f, "%6.2f %6.2f %5.2f]\n", 
-                    bc->xoff + f1 * scalef + bc->margin,
-                   mode == '-'
-                       ? (double)bc->yoff + bc->margin
-                      : (double)bc->yoff + bc->margin+bc->height - 8*scalef,
-                   fsav == f2 ? 0.0 : f2 * scalef);
-           fsav = f2;
-       }
-       fprintf(f,"]   { {} forall dup 0.00 ne {\n\t"
-               "/Helvetica findfont exch scalefont setfont\n"
-               "    } {pop} ifelse\n"
-               "    moveto show} bind forall\n");
-       
-
-    }
-
-    fprintf(f,"%% End barcode for \"%s\"\n\n",
-           printable ? bc->ascii : "<unprintable string>");
-
-    if (!(bc->flags & BARCODE_OUT_NOHEADERS)) {
-       if (bc->flags & BARCODE_OUT_PS)  {
-           fprintf(f,"showpage\n");
-           fprintf(f, "%%%%Trailer\n\n");
-       }
-    }
-    return 0;
-}
-
-
-
-
diff --git a/barcode-0.98/sample.c b/barcode-0.98/sample.c
deleted file mode 100644 (file)
index 46e6205..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "barcode.h"
-
-int main(int argc, char **argv)
-{
-    int ps = 1, pcl = 0, oflags;
-    if (argc == 2 && !strcmp(argv[1],"-P")) {
-       ps = 0; pcl = 1; argc=1;
-    }
-    if (argc>2) {
-       fprintf(stderr, "%s: use \"%s\" for postscript or \"%s -P\" for PCL\n",
-               argv[0], argv[0], argv[0]);
-       exit(1);
-    }
-    if (pcl) {
-       oflags = BARCODE_OUT_PCL;
-    } else {
-       oflags = BARCODE_OUT_PS | BARCODE_OUT_NOHEADERS;
-       printf("%%!PS-Adobe-2.0\n");
-       printf("%%%%Creator: barcode sample program\n");
-       printf("%%%%EndComments\n");
-       printf("%%%%EndProlog\n\n");
-       printf("%%%%Page: 1 1\n\n");
-    }
-    /* Print a few barcodes in several places in the page */
-
-    /* default size, bottom left */
-    Barcode_Encode_and_Print("800894002700",stdout, 0, 0, 40, 40, 
-                      BARCODE_EAN | oflags);
-
-    /* smaller */
-    Barcode_Encode_and_Print("800894002700",stdout, 70, 50, 160, 55, 
-                      BARCODE_EAN | oflags);
-
-    /* smallest */
-    Barcode_Encode_and_Print("800894002700",stdout, 40, 30, 270, 70, 
-                      BARCODE_EAN | oflags);
-
-    /* A bigger all-0 */
-    Barcode_Encode_and_Print("000000000000",stdout, 170, 0, 40, 160, 
-                      BARCODE_EAN | oflags);
-
-    /* Still bigger all-0 (but UPC, this time) */
-    Barcode_Encode_and_Print("00000000000",stdout, 250, 0, 270, 160, 
-                      BARCODE_UPC | oflags);
-
-    /* A few code-39 ones */
-    Barcode_Encode_and_Print("silly code",stdout, 0, 0, 40, 320, 
-                      BARCODE_39 | oflags);
-    Barcode_Encode_and_Print("SAMPLE CODES",stdout, 100, 30, 400, 80, 
-                      BARCODE_39 | oflags);
-
-    /* ISBN with add-5 */
-    Barcode_Encode_and_Print("1-56592-292-1 90000",stdout, 0, 0, 40, 430, 
-                      BARCODE_ISBN | oflags);
-
-    /* UPC with add-2 */
-    Barcode_Encode_and_Print("07447084452 07",stdout, 0, 0, 300, 410, 
-                      BARCODE_UPC | oflags);
-
-    /* code 128-C */
-    Barcode_Encode_and_Print("12345678900123456789",stdout, 0, 0, 40, 530, 
-                      BARCODE_128C | oflags);
-
-    /* and my data as code-128B autodetected */
-    Barcode_Encode_and_Print("RBNLSN68T11E897W",stdout, 0, 60, 240, 510, 
-                oflags);
-    /* same as code-39, forced */
-    Barcode_Encode_and_Print("RBNLSN68T11E897W",stdout, 0, 60, 240, 590, 
-                BARCODE_NO_CHECKSUM | BARCODE_39 | oflags);
-
-    /* one interleaved 2 of 5 */
-    Barcode_Encode_and_Print("0123456789",stdout, 0, 0, 40, 620, 
-                BARCODE_I25 | oflags);
-
-    /* upc-e and ean-8 (autotected based on code size) */
-    Barcode_Encode_and_Print("012345",stdout, 0, 0, 50, 720, oflags);
-    Barcode_Encode_and_Print("0123456",stdout, 0, 0, 160, 720, oflags);
-
-
-    
-    if (pcl) {
-       printf("\f");
-    } else {
-       printf("\nshowpage\n");
-       printf("%%%%Trailer\n\n");
-    }
-    return 0;
-}
-
-
-
-
-
-
-
index 9a3a81a5799ef4a64b93720fb8abe7209694c21c..1510926599a9335cc06143f973da8767ed25a715 100644 (file)
@@ -1,4 +1,4 @@
-/* config.h.in.  Generated from configure.in by autoheader.  */
+/* config.h.in.  Generated from configure.ac by autoheader.  */
 
 /* always defined to indicate that i18n is enabled */
 #undef ENABLE_NLS
 /* Define if your <locale.h> file defines LC_MESSAGES. */
 #undef HAVE_LC_MESSAGES
 
+/* Define to 1 for GNU Barcode support */
+#undef HAVE_LIBBARCODE
+
 /* Define to 1 for EDS support */
 #undef HAVE_LIBEBOOK
 
+/* Define to 1 for IEC 16022 support */
+#undef HAVE_LIBIEC16022
+
+/* Define to 1 for QR code support */
+#undef HAVE_LIBQRENCODE
+
+/* Define to 1 for Zint Barcode support */
+#undef HAVE_LIBZINT
+
 /* Define to 1 if you have the <locale.h> header file. */
 #undef HAVE_LOCALE_H
 
@@ -73,6 +85,9 @@
 /* Define to the one symbol short name of this package. */
 #undef PACKAGE_TARNAME
 
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
 /* Define to the version of this package. */
 #undef PACKAGE_VERSION
 
index 041da4d93adc00ad66ba4ebaf7d23fbb12995f47..60830ff418a820f058f29305e9814c120ae163c4 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,20 +1,24 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for glabels 2.2.8.
+# Generated by GNU Autoconf 2.68 for glabels 3.0.0.
+#
+# Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=glabels>.
 #
-# Report bugs to <http://sourceforge.net/tracker/?func=add&group_id=46122&atid=445116>.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
+# Foundation, Inc.
+#
+#
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
@@ -22,23 +26,15 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
 else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
 esac
-
 fi
 
 
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
 as_nl='
 '
 export as_nl
@@ -46,7 +42,13 @@ export as_nl
 as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
   as_echo='printf %s\n'
   as_echo_n='printf %s'
 else
@@ -57,7 +59,7 @@ else
     as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
     as_echo_n_body='eval
       arg=$1;
-      case $arg in
+      case $arg in #(
       *"$as_nl"*)
        expr "X$arg" : "X\\(.*\\)$as_nl";
        arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
@@ -80,13 +82,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
   }
 fi
 
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
 
 # IFS
 # We need space, tab and new line, in precisely that order.  Quoting is
@@ -96,15 +91,16 @@ fi
 IFS=" ""       $as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
-case $0 in
+as_myself=
+case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
 IFS=$as_save_IFS
 
      ;;
@@ -116,12 +112,16 @@ if test "x$as_myself" = x; then
 fi
 if test ! -f "$as_myself"; then
   $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  { (exit 1); exit 1; }
+  exit 1
 fi
 
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
 done
 PS1='$ '
 PS2='> '
@@ -133,7 +133,265 @@ export LC_ALL
 LANGUAGE=C
 export LANGUAGE
 
-# Required to use basename.
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test "x$CONFIG_SHELL" = x; then
+  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+"
+  as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+  exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1"
+  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+
+  test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
+    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+    PATH=/empty FPATH=/empty; export PATH FPATH
+    test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
+      || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+  if (eval "$as_required") 2>/dev/null; then :
+  as_have_required=yes
+else
+  as_have_required=no
+fi
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  as_found=:
+  case $as_dir in #(
+        /*)
+          for as_base in sh bash ksh sh5; do
+            # Try only shells that exist, to save several forks.
+            as_shell=$as_dir/$as_base
+            if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+                   { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  CONFIG_SHELL=$as_shell as_have_required=yes
+                  if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  break 2
+fi
+fi
+          done;;
+       esac
+  as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+             { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+      if test "x$CONFIG_SHELL" != x; then :
+  # We cannot yet assume a decent shell, so we have to provide a
+       # neutralization value for shells without unset; and this also
+       # works around shells that cannot unset nonexistent variables.
+       # Preserve -v and -x to the replacement shell.
+       BASH_ENV=/dev/null
+       ENV=/dev/null
+       (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+       export CONFIG_SHELL
+       case $- in # ((((
+         *v*x* | *x*v* ) as_opts=-vx ;;
+         *v* ) as_opts=-v ;;
+         *x* ) as_opts=-x ;;
+         * ) as_opts= ;;
+       esac
+       exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
+fi
+
+    if test x$as_have_required = xno; then :
+  $as_echo "$0: This script requires a shell more modern than all"
+  $as_echo "$0: the shells that I found on your system."
+  if test x${ZSH_VERSION+set} = xset ; then
+    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+  else
+    $as_echo "$0: Please tell bug-autoconf@gnu.org and
+$0: http://bugzilla.gnome.org/enter_bug.cgi?product=glabels
+$0: about your system, including any error possibly output
+$0: before this message. Then install a modern shell, or
+$0: manually run the script under such a shell if you do
+$0: have one."
+  fi
+  exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$as_dir" : 'X\(//\)[^/]' \| \
+        X"$as_dir" : 'X\(//\)$' \| \
+        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
 if expr a : '\(a\)' >/dev/null 2>&1 &&
    test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
@@ -147,8 +405,12 @@ else
   as_basename=false
 fi
 
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
 
-# Name of the executable.
 as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
         X"$0" : 'X\(//\)$' \| \
@@ -168,564 +430,129 @@ $as_echo X/"$0" |
          }
          s/.*/./; q'`
 
-# CDPATH.
-$as_unset CDPATH
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
 
 
-if test "x$CONFIG_SHELL" = x; then
-  if (eval ":") 2>/dev/null; then
-  as_have_required=yes
-else
-  as_have_required=no
-fi
+  as_lineno_1=$LINENO as_lineno_1a=$LINENO
+  as_lineno_2=$LINENO as_lineno_2a=$LINENO
+  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
 
-  if test $as_have_required = yes &&    (eval ":
-(as_func_return () {
-  (exit \$1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
 }
 
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='        ';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
 
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
 fi
-
-if as_func_ret_success; then
-  :
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -p'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -p'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -p'
+  fi
 else
-  exitcode=1
-  echo as_func_ret_success failed.
+  as_ln_s='cp -p'
 fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
 
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
 fi
 
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-  :
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
 else
-  exitcode=1
-  echo positional parameters were not saved.
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+       test -d "$1/.";
+      else
+       case $1 in #(
+       -*)set "./$1";;
+       esac;
+       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+       ???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
 fi
+as_executable_p=$as_test_x
 
-test \$exitcode = 0) || { (exit 1); exit 1; }
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 
-(
-  as_lineno_1=\$LINENO
-  as_lineno_2=\$LINENO
-  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
-  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
-") 2> /dev/null; then
-  :
-else
-  as_candidate_shells=
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  case $as_dir in
-        /*)
-          for as_base in sh bash ksh sh5; do
-            as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
-          done;;
-       esac
-done
-IFS=$as_save_IFS
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
+SHELL=${CONFIG_SHELL-/bin/sh}
 
-      for as_shell in $as_candidate_shells $SHELL; do
-        # Try only shells that exist, to save several forks.
-        if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-               { ("$as_shell") 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
-
-fi
-
-
-:
-_ASEOF
-}; then
-  CONFIG_SHELL=$as_shell
-              as_have_required=yes
-              if { "$as_shell" 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
-
-fi
-
-
-:
-(as_func_return () {
-  (exit $1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = "$1" ); then
-  :
-else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test $exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
-
-_ASEOF
-}; then
-  break
-fi
-
-fi
-
-      done
-
-      if test "x$CONFIG_SHELL" != x; then
-  for as_var in BASH_ENV ENV
-       do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-       done
-       export CONFIG_SHELL
-       exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
-fi
-
-
-    if test $as_have_required = no; then
-  echo This script requires a shell more modern than all the
-      echo shells that I found on your system.  Please install a
-      echo modern shell, or manually run the script under such a
-      echo shell if you do have one.
-      { (exit 1); exit 1; }
-fi
-
-
-fi
-
-fi
-
-
-
-(eval "as_func_return () {
-  (exit \$1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-  :
-else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test \$exitcode = 0") || {
-  echo No shell found that supports shell functions.
-  echo Please tell bug-autoconf@gnu.org about your system,
-  echo including any error possibly output before this message.
-  echo This can help us improve future autoconf versions.
-  echo Configuration will now proceed without shell functions.
-}
-
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  Blame Lee
-  # E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
 
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
--n*)
-  case `echo 'x\c'` in
-  *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
-  *)   ECHO_C='\c';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -p'
-  fi
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-       test -d "$1/.";
-      else
-       case $1 in
-       -*)set "./$1";;
-       esac;
-       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
-       ???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-
-
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$lt_ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','`
-  ;;
-esac
-
-ECHO=${lt_ECHO-echo}
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $ECHO works!
-  :
-else
-  # Restart under the correct shell.
-  exec $SHELL "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<_LT_EOF
-$*
-_LT_EOF
-  exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test -z "$lt_ECHO"; then
-  if test "X${echo_test_string+set}" != Xset; then
-    # find a string as large as possible, as long as the shell can cope with it
-    for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
-      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
-        { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
-      then
-        break
-      fi
-    done
-  fi
-
-  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-     test "X$echo_testing_string" = "X$echo_test_string"; then
-    :
-  else
-    # The Solaris, AIX, and Digital Unix default echo programs unquote
-    # backslashes.  This makes it impossible to quote backslashes using
-    #   echo "$something" | sed 's/\\/\\\\/g'
-    #
-    # So, first we look for a working echo in the user's PATH.
-
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for dir in $PATH /usr/ucb; do
-      IFS="$lt_save_ifs"
-      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        ECHO="$dir/echo"
-        break
-      fi
-    done
-    IFS="$lt_save_ifs"
-
-    if test "X$ECHO" = Xecho; then
-      # We didn't find a better echo, so look for alternatives.
-      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        # This shell has a builtin print -r that does the trick.
-        ECHO='print -r'
-      elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
-          test "X$CONFIG_SHELL" != X/bin/ksh; then
-        # If we have ksh, try running configure again with it.
-        ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-        export ORIGINAL_CONFIG_SHELL
-        CONFIG_SHELL=/bin/ksh
-        export CONFIG_SHELL
-        exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
-      else
-        # Try using printf.
-        ECHO='printf %s\n'
-        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-          echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-          test "X$echo_testing_string" = "X$echo_test_string"; then
-         # Cool, printf works
-         :
-        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-            test "X$echo_testing_string" = 'X\t' &&
-            echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-            test "X$echo_testing_string" = "X$echo_test_string"; then
-         CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-         export CONFIG_SHELL
-         SHELL="$CONFIG_SHELL"
-         export SHELL
-         ECHO="$CONFIG_SHELL $0 --fallback-echo"
-        elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-            test "X$echo_testing_string" = 'X\t' &&
-            echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-            test "X$echo_testing_string" = "X$echo_test_string"; then
-         ECHO="$CONFIG_SHELL $0 --fallback-echo"
-        else
-         # maybe with a smaller string...
-         prev=:
-
-         for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
-           if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
-           then
-             break
-           fi
-           prev="$cmd"
-         done
-
-         if test "$prev" != 'sed 50q "$0"'; then
-           echo_test_string=`eval $prev`
-           export echo_test_string
-           exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
-         else
-           # Oops.  We lost completely, so just stick with echo.
-           ECHO=echo
-         fi
-        fi
-      fi
-    fi
-  fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-lt_ECHO=$ECHO
-if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
-   lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
-fi
-
-
-
-
-exec 7<&0 </dev/null 6>&1
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
 
 # Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
 # so uname gets run too.
 ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
 
@@ -740,14 +567,14 @@ cross_compiling=no
 subdirs=
 MFLAGS=
 MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
 
 # Identity of this package.
 PACKAGE_NAME='glabels'
 PACKAGE_TARNAME='glabels'
-PACKAGE_VERSION='2.2.8'
-PACKAGE_STRING='glabels 2.2.8'
-PACKAGE_BUGREPORT='http://sourceforge.net/tracker/?func=add&group_id=46122&atid=445116'
+PACKAGE_VERSION='3.0.0'
+PACKAGE_STRING='glabels 3.0.0'
+PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=glabels'
+PACKAGE_URL=''
 
 ac_unique_file="src/glabels.c"
 # Factoring default headers for most tests.
@@ -802,54 +629,82 @@ CATOBJEXT
 CATALOGS
 MSGFMT_OPTS
 GETTEXT_PACKAGE
-ENABLE_UPDATE_DESKTOPDB_FALSE
-ENABLE_UPDATE_DESKTOPDB_TRUE
-ENABLE_UPDATE_MIMEDB_FALSE
-ENABLE_UPDATE_MIMEDB_TRUE
-HAVE_NEWER_MIME_FALSE
-HAVE_NEWER_MIME_TRUE
-UPDATE_DESKTOP_DATABASE
-HAVE_NEW_MIME_FALSE
-HAVE_NEW_MIME_TRUE
-UPDATE_MIME_DATABASE
 DISABLE_DEPRECATED_CFLAGS
-HAVE_XML_PARSE_HUGE
-XML_PARSE_HUGE_LIBS
-XML_PARSE_HUGE_CFLAGS
-MYGAL_LIBS
-MYGAL_CFLAGS
+LIBIEC16022_LIBS
+LIBIEC16022_CFLAGS
+LIBQRENCODE_LIBS
+LIBQRENCODE_CFLAGS
+LIBZINT_LIBS
+LIBZINT_CFLAGS
+LIBBARCODE_LIBS
+LIBBARCODE_CFLAGS
+LIBEBOOK_LIBS
+LIBEBOOK_CFLAGS
+LIBGLBARCODE_LIBS
+LIBGLBARCODE_CFLAGS
 LIBGLABELS_LIBS
 LIBGLABELS_CFLAGS
 GLABELS_LIBS
 GLABELS_CFLAGS
-LIBEBOOK_LIBS
-LIBEBOOK_CFLAGS
+LIBZINT_REQUIRED
+LIBIEC16022_REQUIRED
+LIBQRENCODE_REQUIRED
+LIBBARCODE_REQUIRED
 LIBEBOOK_REQUIRED
-LIBGLADE_REQUIRED
+PANGO_REQUIRED
+CAIRO_REQUIRED
+LIBRSVG_REQUIRED
 LIBXML_REQUIRED
-LIBGNOMEUI_REQUIRED
-LIBGNOME_REQUIRED
 GTK_REQUIRED
 GLIB_REQUIRED
-LIBGLABELS_VERSION_INFO
+LIBGLBARCODE_API_VERSION
+LIBGLABELS_API_VERSION
+LIBGLBARCODE_BRANCH
+LIBGLABELS_BRANCH
+GLABELS_BRANCH
+GTK_UPDATE_ICON_CACHE
+GDK_PIXBUF_CSOURCE
+GLIB_GENMARSHAL
+WARN_CFLAGS
+GSETTINGS_RULES
+GLIB_COMPILE_SCHEMAS
+gsettingsschemadir
+GSETTINGS_DISABLE_SCHEMAS_COMPILE
+GTK_DOC_USE_REBASE_FALSE
+GTK_DOC_USE_REBASE_TRUE
 GTK_DOC_USE_LIBTOOL_FALSE
 GTK_DOC_USE_LIBTOOL_TRUE
+GTK_DOC_BUILD_PDF_FALSE
+GTK_DOC_BUILD_PDF_TRUE
+GTK_DOC_BUILD_HTML_FALSE
+GTK_DOC_BUILD_HTML_TRUE
 ENABLE_GTK_DOC_FALSE
 ENABLE_GTK_DOC_TRUE
-GTKDOC_CHECK
 HTML_DIR
-GLIB_GENMARSHAL
-WARN_CFLAGS
+GTKDOC_MKPDF
+GTKDOC_REBASE
+GTKDOC_CHECK
+HAVE_GNOME_DOC_UTILS_FALSE
+HAVE_GNOME_DOC_UTILS_TRUE
+DISTCHECK_CONFIGURE_FLAGS
+ENABLE_SK_FALSE
+ENABLE_SK_TRUE
+DOC_USER_FORMATS
+OMF_DIR
+HELP_DIR
 CPP
 OTOOL64
 OTOOL
 LIPO
 NMEDIT
 DSYMUTIL
-lt_ECHO
+MANIFEST_TOOL
 RANLIB
+ac_ct_AR
 AR
+DLLTOOL
 OBJDUMP
+LN_S
 NM
 ac_ct_DUMPBIN
 DUMPBIN
@@ -867,6 +722,9 @@ build_vendor
 build_cpu
 build
 LIBTOOL
+PKG_CONFIG_LIBDIR
+PKG_CONFIG_PATH
+PKG_CONFIG
 DATADIRNAME
 am__fastdepCC_FALSE
 am__fastdepCC_TRUE
@@ -913,19 +771,11 @@ INTLTOOL_EXTRACT
 INTLTOOL_MERGE
 INTLTOOL_UPDATE
 USE_NLS
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
 MAINT
 MAINTAINER_MODE_FALSE
 MAINTAINER_MODE_TRUE
-HAVE_GNOME_DOC_UTILS_FALSE
-HAVE_GNOME_DOC_UTILS_TRUE
-DISTCHECK_CONFIGURE_FLAGS
-ENABLE_SK_FALSE
-ENABLE_SK_TRUE
-DOC_USER_FORMATS
-OMF_DIR
-HELP_DIR
-PKG_CONFIG
-LN_S
 am__untar
 am__tar
 AMTAR
@@ -979,6 +829,7 @@ bindir
 program_transform_name
 prefix
 exec_prefix
+PACKAGE_URL
 PACKAGE_BUGREPORT
 PACKAGE_STRING
 PACKAGE_VERSION
@@ -989,11 +840,8 @@ SHELL'
 ac_subst_files=''
 ac_user_opts='
 enable_option_checking
-with_help_dir
-with_omf_dir
-with_help_formats
-enable_scrollkeeper
 enable_maintainer_mode
+enable_silent_rules
 enable_nls
 enable_dependency_tracking
 enable_shared
@@ -1001,36 +849,50 @@ enable_static
 with_pic
 enable_fast_install
 with_gnu_ld
+with_sysroot
 enable_libtool_lock
-enable_compile_warnings
-enable_iso_c
+with_help_dir
+with_omf_dir
+with_help_formats
+enable_scrollkeeper
 with_html_dir
 enable_gtk_doc
+enable_gtk_doc_html
+enable_gtk_doc_pdf
+enable_schemas_compile
+enable_compile_warnings
+enable_iso_c
 with_libebook
+with_libbarcode
+with_libzint
+with_libqrencode
+with_libiec16022
 enable_deprecations
-enable_update_mimedb
-enable_update_desktopdb
 '
       ac_precious_vars='build_alias
 host_alias
 target_alias
-PKG_CONFIG
 CC
 CFLAGS
 LDFLAGS
 LIBS
 CPPFLAGS
+PKG_CONFIG
+PKG_CONFIG_PATH
+PKG_CONFIG_LIBDIR
 CPP
-LIBEBOOK_CFLAGS
-LIBEBOOK_LIBS
 GLABELS_CFLAGS
 GLABELS_LIBS
 LIBGLABELS_CFLAGS
 LIBGLABELS_LIBS
-MYGAL_CFLAGS
-MYGAL_LIBS
-XML_PARSE_HUGE_CFLAGS
-XML_PARSE_HUGE_LIBS'
+LIBGLBARCODE_CFLAGS
+LIBGLBARCODE_LIBS
+LIBEBOOK_CFLAGS
+LIBEBOOK_LIBS
+LIBQRENCODE_CFLAGS
+LIBQRENCODE_LIBS
+LIBIEC16022_CFLAGS
+LIBIEC16022_LIBS'
 
 
 # Initialize some variables set by options.
@@ -1093,8 +955,9 @@ do
   fi
 
   case $ac_option in
-  *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
-  *)   ac_optarg=yes ;;
+  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *=)   ac_optarg= ;;
+  *)    ac_optarg=yes ;;
   esac
 
   # Accept the important Cygnus configure options, so we can diagnose typos.
@@ -1139,8 +1002,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
-   { (exit 1); exit 1; }; }
+      as_fn_error $? "invalid feature name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1166,8 +1028,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
-   { (exit 1); exit 1; }; }
+      as_fn_error $? "invalid feature name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1371,8 +1232,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
-   { (exit 1); exit 1; }; }
+      as_fn_error $? "invalid package name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1388,8 +1248,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
-   { (exit 1); exit 1; }; }
+      as_fn_error $? "invalid package name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1419,17 +1278,17 @@ do
   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
     x_libraries=$ac_optarg ;;
 
-  -*) { $as_echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; }
+  -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
     ;;
 
   *=*)
     ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
+    case $ac_envvar in #(
+      '' | [0-9]* | *[!_$as_cr_alnum]* )
+      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+    esac
     eval $ac_envvar=\$ac_optarg
     export $ac_envvar ;;
 
@@ -1438,7 +1297,7 @@ Try \`$0 --help' for more information." >&2
     $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
       $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
     ;;
 
   esac
@@ -1446,15 +1305,13 @@ done
 
 if test -n "$ac_prev"; then
   ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  { $as_echo "$as_me: error: missing argument to $ac_option" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "missing argument to $ac_option"
 fi
 
 if test -n "$ac_unrecognized_opts"; then
   case $enable_option_checking in
     no) ;;
-    fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2
-   { (exit 1); exit 1; }; } ;;
+    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
     *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
   esac
 fi
@@ -1477,8 +1334,7 @@ do
     [\\/$]* | ?:[\\/]* )  continue;;
     NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
   esac
-  { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
 done
 
 # There might be people who depend on the old broken behavior: `$host'
@@ -1492,8 +1348,8 @@ target=$target_alias
 if test "x$host_alias" != x; then
   if test "x$build_alias" = x; then
     cross_compiling=maybe
-    $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used." >&2
+    $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
+    If a cross compiler is detected then cross compile mode will be used" >&2
   elif test "x$build_alias" != "x$host_alias"; then
     cross_compiling=yes
   fi
@@ -1508,11 +1364,9 @@ test "$silent" = yes && exec 6>/dev/null
 ac_pwd=`pwd` && test -n "$ac_pwd" &&
 ac_ls_di=`ls -di .` &&
 ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  { $as_echo "$as_me: error: working directory cannot be determined" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "working directory cannot be determined"
 test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  { $as_echo "$as_me: error: pwd does not report name of working directory" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "pwd does not report name of working directory"
 
 
 # Find the source files, if location was not specified.
@@ -1551,13 +1405,11 @@ else
 fi
 if test ! -r "$srcdir/$ac_unique_file"; then
   test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-  { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
 fi
 ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
 ac_abs_confdir=`(
-       cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2
-   { (exit 1); exit 1; }; }
+       cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
        pwd)`
 # When building in place, set srcdir=.
 if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1583,7 +1435,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures glabels 2.2.8 to adapt to many kinds of systems.
+\`configure' configures glabels 3.0.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1597,7 +1449,7 @@ Configuration:
       --help=short        display options specific to this package
       --help=recursive    display the short help of all the included packages
   -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking...' messages
+  -q, --quiet, --silent   do not print \`checking ...' messages
       --cache-file=FILE   cache test results in FILE [disabled]
   -C, --config-cache      alias for \`--cache-file=config.cache'
   -n, --no-create         do not create output files
@@ -1653,7 +1505,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of glabels 2.2.8:";;
+     short | recursive ) echo "Configuration of glabels 3.0.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1661,9 +1513,10 @@ Optional Features:
   --disable-option-checking  ignore unrecognized --enable/--with options
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --disable-scrollkeeper  do not make updates to the scrollkeeper database
   --enable-maintainer-mode  enable make rules and dependencies not useful
                          (and sometimes confusing) to the casual installer
+  --enable-silent-rules          less verbose build output (undo: `make V=1')
+  --disable-silent-rules         verbose build output (undo: `make V=0')
   --disable-nls           do not use Native Language Support
   --disable-dependency-tracking  speeds up one-time build
   --enable-dependency-tracking   do not reject slow dependency extractors
@@ -1672,44 +1525,50 @@ Optional Features:
   --enable-fast-install[=PKGS]
                           optimize for fast installation [default=yes]
   --disable-libtool-lock  avoid locking (might break parallel builds)
+  --disable-scrollkeeper  do not make updates to the scrollkeeper database
+  --enable-gtk-doc        use gtk-doc to build documentation [[default=no]]
+  --enable-gtk-doc-html   build documentation in html format [[default=yes]]
+  --enable-gtk-doc-pdf    build documentation in pdf format [[default=no]]
+  --disable-schemas-compile
+                          Disable regeneration of gschemas.compiled on install
   --enable-compile-warnings=[no/minimum/yes/maximum/error]
                           Turn on compiler warnings
   --enable-iso-c          Try to warn if code is not ISO C
-  --enable-gtk-doc        use gtk-doc to build documentation [default=no]
   --enable-deprecations   warn about deprecated usages [default=no]
-  --disable-update-mimedb disable the update-mime-database after install
-                          default=no
-  --disable-update-desktopdb
-                          disable the update-desktop-database after install
-                          default=no
 
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-pic              try to use only PIC/non-PIC objects [default=use
+                          both]
+  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
+  --with-sysroot=DIR Search for dependent libraries within DIR
+                        (or the compiler's sysroot if not specified).
   --with-help-dir=DIR     path to help docs
   --with-omf-dir=DIR      path to OMF files
   --with-help-formats=FORMATS
                           list of formats
-  --with-pic              try to use only PIC/non-PIC objects [default=use
-                          both]
-  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
   --with-html-dir=PATH    path to installed docs
   --without-libebook      build without Evolution Data Server support
+  --without-libbarcode    build without GNU Barcode support
+  --without-libzint       build without Zint Barcode support
+  --without-libqrencode   build without QR code support
+  --without-libiec16022   build without IEC 16022 support
 
 Some influential environment variables:
-  PKG_CONFIG  path to pkg-config utility
   CC          C compiler command
   CFLAGS      C compiler flags
   LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
               nonstandard directory <lib dir>
   LIBS        libraries to pass to the linker, e.g. -l<library>
-  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
+  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
               you have headers in a nonstandard directory <include dir>
+  PKG_CONFIG  path to pkg-config utility
+  PKG_CONFIG_PATH
+              directories to add to pkg-config's search path
+  PKG_CONFIG_LIBDIR
+              path overriding pkg-config's built-in search path
   CPP         C preprocessor
-  LIBEBOOK_CFLAGS
-              C compiler flags for LIBEBOOK, overriding pkg-config
-  LIBEBOOK_LIBS
-              linker flags for LIBEBOOK, overriding pkg-config
   GLABELS_CFLAGS
               C compiler flags for GLABELS, overriding pkg-config
   GLABELS_LIBS
@@ -1718,18 +1577,27 @@ Some influential environment variables:
               C compiler flags for LIBGLABELS, overriding pkg-config
   LIBGLABELS_LIBS
               linker flags for LIBGLABELS, overriding pkg-config
-  MYGAL_CFLAGS
-              C compiler flags for MYGAL, overriding pkg-config
-  MYGAL_LIBS  linker flags for MYGAL, overriding pkg-config
-  XML_PARSE_HUGE_CFLAGS
-              C compiler flags for XML_PARSE_HUGE, overriding pkg-config
-  XML_PARSE_HUGE_LIBS
-              linker flags for XML_PARSE_HUGE, overriding pkg-config
+  LIBGLBARCODE_CFLAGS
+              C compiler flags for LIBGLBARCODE, overriding pkg-config
+  LIBGLBARCODE_LIBS
+              linker flags for LIBGLBARCODE, overriding pkg-config
+  LIBEBOOK_CFLAGS
+              C compiler flags for LIBEBOOK, overriding pkg-config
+  LIBEBOOK_LIBS
+              linker flags for LIBEBOOK, overriding pkg-config
+  LIBQRENCODE_CFLAGS
+              C compiler flags for LIBQRENCODE, overriding pkg-config
+  LIBQRENCODE_LIBS
+              linker flags for LIBQRENCODE, overriding pkg-config
+  LIBIEC16022_CFLAGS
+              C compiler flags for LIBIEC16022, overriding pkg-config
+  LIBIEC16022_LIBS
+              linker flags for LIBIEC16022, overriding pkg-config
 
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
 
-Report bugs to <http://sourceforge.net/tracker/?func=add&group_id=46122&atid=445116>.
+Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=glabels>.
 _ACEOF
 ac_status=$?
 fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-glabels configure 2.2.8
-generated by GNU Autoconf 2.63
+glabels configure 3.0.0
+generated by GNU Autoconf 2.68
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+Copyright (C) 2010 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
   exit
 fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest$ac_exeext
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_retval=1
+fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
+
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $2 (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_func
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } > conftest.i && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+    ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+       $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_retval=$ac_status
+fi
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if eval \${$3+:} false; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_header_compiler=yes
+else
+  ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  ac_header_preproc=yes
+else
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+  yes:no: )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+( $as_echo "## ---------------------------------------------------------------------- ##
+## Report this to http://bugzilla.gnome.org/enter_bug.cgi?product=glabels ##
+## ---------------------------------------------------------------------- ##"
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_mongrel
 cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by glabels $as_me 2.2.8, which was
-generated by GNU Autoconf 2.63.  Invocation command line was
+It was created by glabels $as_me 3.0.0, which was
+generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
 
@@ -1843,8 +2066,8 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  $as_echo "PATH: $as_dir"
-done
+    $as_echo "PATH: $as_dir"
+  done
 IFS=$as_save_IFS
 
 } >&5
@@ -1881,9 +2104,9 @@ do
       ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
     case $ac_pass in
-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
     2)
-      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+      as_fn_append ac_configure_args1 " '$ac_arg'"
       if test $ac_must_keep_next = true; then
        ac_must_keep_next=false # Got value, back to normal.
       else
@@ -1899,13 +2122,13 @@ do
          -* ) ac_must_keep_next=true ;;
        esac
       fi
-      ac_configure_args="$ac_configure_args '$ac_arg'"
+      as_fn_append ac_configure_args " '$ac_arg'"
       ;;
     esac
   done
 done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
 
 # When interrupted or exit'd, cleanup temporary files, and complete
 # config.log.  We remove comments because anyway the quotes in there
@@ -1917,11 +2140,9 @@ trap 'exit_status=$?
   {
     echo
 
-    cat <<\_ASBOX
-## ---------------- ##
+    $as_echo "## ---------------- ##
 ## Cache variables. ##
-## ---------------- ##
-_ASBOX
+## ---------------- ##"
     echo
     # The following way of writing the cache mishandles newlines in values,
 (
@@ -1930,13 +2151,13 @@ _ASBOX
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
       BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) $as_unset $ac_var ;;
+      *) { eval $ac_var=; unset $ac_var;} ;;
       esac ;;
     esac
   done
@@ -1955,11 +2176,9 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
 )
     echo
 
-    cat <<\_ASBOX
-## ----------------- ##
+    $as_echo "## ----------------- ##
 ## Output variables. ##
-## ----------------- ##
-_ASBOX
+## ----------------- ##"
     echo
     for ac_var in $ac_subst_vars
     do
@@ -1972,11 +2191,9 @@ _ASBOX
     echo
 
     if test -n "$ac_subst_files"; then
-      cat <<\_ASBOX
-## ------------------- ##
+      $as_echo "## ------------------- ##
 ## File substitutions. ##
-## ------------------- ##
-_ASBOX
+## ------------------- ##"
       echo
       for ac_var in $ac_subst_files
       do
@@ -1990,11 +2207,9 @@ _ASBOX
     fi
 
     if test -s confdefs.h; then
-      cat <<\_ASBOX
-## ----------- ##
+      $as_echo "## ----------- ##
 ## confdefs.h. ##
-## ----------- ##
-_ASBOX
+## ----------- ##"
       echo
       cat confdefs.h
       echo
@@ -2008,46 +2223,53 @@ _ASBOX
     exit $exit_status
 ' 0
 for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
 done
 ac_signal=0
 
 # confdefs.h avoids OS command line length limits that DEFS can exceed.
 rm -f -r conftest* confdefs.h
 
+$as_echo "/* confdefs.h */" > confdefs.h
+
 # Predefined preprocessor variables.
 
 cat >>confdefs.h <<_ACEOF
 #define PACKAGE_NAME "$PACKAGE_NAME"
 _ACEOF
 
-
 cat >>confdefs.h <<_ACEOF
 #define PACKAGE_TARNAME "$PACKAGE_TARNAME"
 _ACEOF
 
-
 cat >>confdefs.h <<_ACEOF
 #define PACKAGE_VERSION "$PACKAGE_VERSION"
 _ACEOF
 
-
 cat >>confdefs.h <<_ACEOF
 #define PACKAGE_STRING "$PACKAGE_STRING"
 _ACEOF
 
-
 cat >>confdefs.h <<_ACEOF
 #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
 _ACEOF
 
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
 
 # Let the site file select an alternate cache file if it wants to.
 # Prefer an explicitly selected file to automatically selected ones.
 ac_site_file1=NONE
 ac_site_file2=NONE
 if test -n "$CONFIG_SITE"; then
-  ac_site_file1=$CONFIG_SITE
+  # We do not want a PATH search for config.site.
+  case $CONFIG_SITE in #((
+    -*)  ac_site_file1=./$CONFIG_SITE;;
+    */*) ac_site_file1=$CONFIG_SITE;;
+    *)   ac_site_file1=./$CONFIG_SITE;;
+  esac
 elif test "x$prefix" != xNONE; then
   ac_site_file1=$prefix/share/config.site
   ac_site_file2=$prefix/etc/config.site
@@ -2058,19 +2280,23 @@ fi
 for ac_site_file in "$ac_site_file1" "$ac_site_file2"
 do
   test "x$ac_site_file" = xNONE && continue
-  if test -r "$ac_site_file"; then
-    { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
 $as_echo "$as_me: loading site script $ac_site_file" >&6;}
     sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file"
+    . "$ac_site_file" \
+      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
   fi
 done
 
 if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special
-  # files actually), so we avoid doing that.
-  if test -f "$cache_file"; then
-    { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5
+  # Some versions of bash will fail to source /dev/null (special files
+  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
+  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
 $as_echo "$as_me: loading cache $cache_file" >&6;}
     case $cache_file in
       [\\/]* | ?:[\\/]* ) . "$cache_file";;
@@ -2078,7 +2304,7 @@ $as_echo "$as_me: loading cache $cache_file" >&6;}
     esac
   fi
 else
-  { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
 $as_echo "$as_me: creating cache $cache_file" >&6;}
   >$cache_file
 fi
@@ -2093,11 +2319,11 @@ for ac_var in $ac_precious_vars; do
   eval ac_new_val=\$ac_env_${ac_var}_value
   case $ac_old_set,$ac_new_set in
     set,)
-      { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,set)
-      { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,);;
@@ -2107,17 +2333,17 @@ $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
        ac_old_val_w=`echo x $ac_old_val`
        ac_new_val_w=`echo x $ac_new_val`
        if test "$ac_old_val_w" != "$ac_new_val_w"; then
-         { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+         { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
          ac_cache_corrupted=:
        else
-         { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+         { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
          eval $ac_var=\$ac_old_val
        fi
-       { $as_echo "$as_me:$LINENO:   former value:  \`$ac_old_val'" >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
 $as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
-       { $as_echo "$as_me:$LINENO:   current value: \`$ac_new_val'" >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
 $as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
       fi;;
   esac
@@ -2129,43 +2355,20 @@ $as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
     esac
     case " $ac_configure_args " in
       *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
     esac
   fi
 done
 if $ac_cache_corrupted; then
-  { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-  { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
 fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
 
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -2175,6 +2378,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
+
+
 am__api_version='1.11'
 
 ac_aux_dir=
@@ -2194,9 +2399,7 @@ for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
   fi
 done
 if test -z "$ac_aux_dir"; then
-  { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5
-$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
 fi
 
 # These three variables are undocumented and unsupported,
@@ -2222,10 +2425,10 @@ ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 # OS/2's system install, which has a completely different semantic
 # ./install, which can be erroneously created by make from ./install.sh.
 # Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
 $as_echo_n "checking for a BSD-compatible install... " >&6; }
 if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
+if ${ac_cv_path_install+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -2233,11 +2436,11 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
-  ./ | .// | /cC/* | \
+    # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+  ./ | .// | /[cC]/* | \
   /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
   /usr/ucb/* ) ;;
   *)
     # OSF1 and SCO ODT 3.0 have their own names for install.
@@ -2274,7 +2477,7 @@ case $as_dir/ in
     ;;
 esac
 
-done
+  done
 IFS=$as_save_IFS
 
 rm -rf conftest.one conftest.two conftest.dir
@@ -2290,7 +2493,7 @@ fi
     INSTALL=$ac_install_sh
   fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
 $as_echo "$INSTALL" >&6; }
 
 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
@@ -2301,7 +2504,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
-{ $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
 $as_echo_n "checking whether build environment is sane... " >&6; }
 # Just in case
 sleep 1
@@ -2312,15 +2515,11 @@ am_lf='
 '
 case `pwd` in
   *[\\\"\#\$\&\'\`$am_lf]*)
-    { { $as_echo "$as_me:$LINENO: error: unsafe absolute working directory name" >&5
-$as_echo "$as_me: error: unsafe absolute working directory name" >&2;}
-   { (exit 1); exit 1; }; };;
+    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
 esac
 case $srcdir in
   *[\\\"\#\$\&\'\`$am_lf\ \    ]*)
-    { { $as_echo "$as_me:$LINENO: error: unsafe srcdir value: \`$srcdir'" >&5
-$as_echo "$as_me: error: unsafe srcdir value: \`$srcdir'" >&2;}
-   { (exit 1); exit 1; }; };;
+    as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
 esac
 
 # Do `set' in a subshell so we don't clobber the current shell's
@@ -2342,11 +2541,8 @@ if (
       # if, for instance, CONFIG_SHELL is bash and it inherits a
       # broken ls alias from the environment.  This has actually
       # happened.  Such a system could not be considered "sane".
-      { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" >&5
-$as_echo "$as_me: error: ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" >&2;}
-   { (exit 1); exit 1; }; }
+      as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
+alias in your environment" "$LINENO" 5
    fi
 
    test "$2" = conftest.file
@@ -2355,13 +2551,10 @@ then
    # Ok.
    :
 else
-   { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files!
-Check your system clock" >&5
-$as_echo "$as_me: error: newly created file is older than distributed files!
-Check your system clock" >&2;}
-   { (exit 1); exit 1; }; }
+   as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
 fi
-{ $as_echo "$as_me:$LINENO: result: yes" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 test "$program_prefix" != NONE &&
   program_transform_name="s&^&$program_prefix&;$program_transform_name"
@@ -2389,7 +2582,7 @@ if eval "$MISSING --run true"; then
   am_missing_run="$MISSING --run "
 else
   am_missing_run=
-  { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
 fi
 
@@ -2410,9 +2603,9 @@ if test "$cross_compiling" != no; then
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
 set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then
+if ${ac_cv_prog_STRIP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$STRIP"; then
@@ -2423,24 +2616,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 STRIP=$ac_cv_prog_STRIP
 if test -n "$STRIP"; then
-  { $as_echo "$as_me:$LINENO: result: $STRIP" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
 $as_echo "$STRIP" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -2450,9 +2643,9 @@ if test -z "$ac_cv_prog_STRIP"; then
   ac_ct_STRIP=$STRIP
   # Extract the first word of "strip", so it can be a program name with args.
 set dummy strip; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_STRIP"; then
@@ -2463,24 +2656,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_STRIP="strip"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
 if test -n "$ac_ct_STRIP"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
 $as_echo "$ac_ct_STRIP" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -2489,7 +2682,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -2502,10 +2695,10 @@ fi
 fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 
-{ $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
 if test -z "$MKDIR_P"; then
-  if test "${ac_cv_path_mkdir+set}" = set; then
+  if ${ac_cv_path_mkdir+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -2513,7 +2706,7 @@ for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_prog in mkdir gmkdir; do
+    for ac_prog in mkdir gmkdir; do
         for ac_exec_ext in '' $ac_executable_extensions; do
           { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
           case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
@@ -2525,11 +2718,12 @@ do
           esac
         done
        done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 
+  test -d ./--version && rmdir ./--version
   if test "${ac_cv_path_mkdir+set}" = set; then
     MKDIR_P="$ac_cv_path_mkdir -p"
   else
@@ -2537,11 +2731,10 @@ fi
     # value for MKDIR_P within a source directory, because that will
     # break other packages using the cache if that directory is
     # removed, or if the value is a relative name.
-    test -d ./--version && rmdir ./--version
     MKDIR_P="$ac_install_sh -d"
   fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
 $as_echo "$MKDIR_P" >&6; }
 
 mkdir_p="$MKDIR_P"
@@ -2554,9 +2747,9 @@ for ac_prog in gawk mawk nawk awk
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then
+if ${ac_cv_prog_AWK+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AWK"; then
@@ -2567,24 +2760,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_AWK="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 AWK=$ac_cv_prog_AWK
 if test -n "$AWK"; then
-  { $as_echo "$as_me:$LINENO: result: $AWK" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
 $as_echo "$AWK" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -2592,11 +2785,11 @@ fi
   test -n "$AWK" && break
 done
 
-{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
 set x ${MAKE-make}
 ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat >conftest.make <<\_ACEOF
@@ -2604,7 +2797,7 @@ SHELL = /bin/sh
 all:
        @echo '@@@%%%=$(MAKE)=@@@%%%'
 _ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
 case `${MAKE-make} -f conftest.make 2>/dev/null` in
   *@@@%%%=?*=@@@%%%*)
     eval ac_cv_prog_make_${ac_make}_set=yes;;
@@ -2614,11 +2807,11 @@ esac
 rm -f conftest.make
 fi
 if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { $as_echo "$as_me:$LINENO: result: yes" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
   SET_MAKE=
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
   SET_MAKE="MAKE=${MAKE-make}"
 fi
@@ -2638,9 +2831,7 @@ if test "`cd $srcdir && pwd`" != "`pwd`"; then
   am__isrc=' -I$(srcdir)'
   # test to see if srcdir already configured
   if test -f $srcdir/config.status; then
-    { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
-$as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
   fi
 fi
 
@@ -2656,7 +2847,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE=glabels
- VERSION=2.2.8
+ VERSION=3.0.0
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2696,236 +2887,18 @@ am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
 
 
 
-{ $as_echo "$as_me:$LINENO: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
-  { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
-fi
-
-
-
-if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
-       if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
-set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  case $PKG_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-PKG_CONFIG=$ac_cv_path_PKG_CONFIG
-if test -n "$PKG_CONFIG"; then
-  { $as_echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
-$as_echo "$PKG_CONFIG" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_path_PKG_CONFIG"; then
-  ac_pt_PKG_CONFIG=$PKG_CONFIG
-  # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  case $ac_pt_PKG_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
-if test -n "$ac_pt_PKG_CONFIG"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5
-$as_echo "$ac_pt_PKG_CONFIG" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_pt_PKG_CONFIG" = x; then
-    PKG_CONFIG=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    PKG_CONFIG=$ac_pt_PKG_CONFIG
-  fi
-else
-  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
-fi
-
-fi
-if test -n "$PKG_CONFIG"; then
-       _pkg_min_version=0.9.0
-       { $as_echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5
-$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
-       if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
-               { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-       else
-               { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-               PKG_CONFIG=""
-       fi
-
-fi
-
-gdu_cv_version_required=0.3.2
-
-{ $as_echo "$as_me:$LINENO: checking gnome-doc-utils >= $gdu_cv_version_required" >&5
-$as_echo_n "checking gnome-doc-utils >= $gdu_cv_version_required... " >&6; }
-if test -n "$PKG_CONFIG" && \
-    { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gnome-doc-utils >= \$gdu_cv_version_required\"") >&5
-  ($PKG_CONFIG --exists --print-errors "gnome-doc-utils >= $gdu_cv_version_required") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  gdu_cv_have_gdu=yes
-else
-  gdu_cv_have_gdu=no
-fi
-
-if test "$gdu_cv_have_gdu" = "yes"; then
-       { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-       :
-else
-       { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-       { { $as_echo "$as_me:$LINENO: error: gnome-doc-utils >= $gdu_cv_version_required not found" >&5
-$as_echo "$as_me: error: gnome-doc-utils >= $gdu_cv_version_required not found" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-
-
-# Check whether --with-help-dir was given.
-if test "${with_help_dir+set}" = set; then
-  withval=$with_help_dir;
-else
-  with_help_dir='${datadir}/gnome/help'
-fi
-
-HELP_DIR="$with_help_dir"
-
-
-
-# Check whether --with-omf-dir was given.
-if test "${with_omf_dir+set}" = set; then
-  withval=$with_omf_dir;
-else
-  with_omf_dir='${datadir}/omf'
-fi
-
-OMF_DIR="$with_omf_dir"
-
-
-
-# Check whether --with-help-formats was given.
-if test "${with_help_formats+set}" = set; then
-  withval=$with_help_formats;
-else
-  with_help_formats=''
-fi
-
-DOC_USER_FORMATS="$with_help_formats"
-
-
-# Check whether --enable-scrollkeeper was given.
-if test "${enable_scrollkeeper+set}" = set; then
-  enableval=$enable_scrollkeeper;
-else
-  enable_scrollkeeper=yes
-fi
-
- if test "$gdu_cv_have_gdu" = "yes" -a "$enable_scrollkeeper" = "yes"; then
-  ENABLE_SK_TRUE=
-  ENABLE_SK_FALSE='#'
-else
-  ENABLE_SK_TRUE='#'
-  ENABLE_SK_FALSE=
-fi
-
-
-DISTCHECK_CONFIGURE_FLAGS="--disable-scrollkeeper $DISTCHECK_CONFIGURE_FLAGS"
-
-
- if test "$gdu_cv_have_gdu" = "yes"; then
-  HAVE_GNOME_DOC_UTILS_TRUE=
-  HAVE_GNOME_DOC_UTILS_FALSE='#'
-else
-  HAVE_GNOME_DOC_UTILS_TRUE='#'
-  HAVE_GNOME_DOC_UTILS_FALSE=
-fi
-
-
-
 
 
-{ $as_echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
     # Check whether --enable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then
+if test "${enable_maintainer_mode+set}" = set; then :
   enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
 else
   USE_MAINTAINER_MODE=no
 fi
 
-  { $as_echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
 $as_echo "$USE_MAINTAINER_MODE" >&6; }
    if test $USE_MAINTAINER_MODE = yes; then
   MAINTAINER_MODE_TRUE=
@@ -2938,20 +2911,33 @@ fi
   MAINT=$MAINTAINER_MODE_TRUE
 
 
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+  enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in
+yes) AM_DEFAULT_VERBOSITY=0;;
+no)  AM_DEFAULT_VERBOSITY=1;;
+*)   AM_DEFAULT_VERBOSITY=0;;
+esac
+AM_BACKSLASH='\'
+
+
 ac_config_headers="$ac_config_headers config.h"
 
 
 
-  { $as_echo "$as_me:$LINENO: checking whether NLS is requested" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
 $as_echo_n "checking whether NLS is requested... " >&6; }
     # Check whether --enable-nls was given.
-if test "${enable_nls+set}" = set; then
+if test "${enable_nls+set}" = set; then :
   enableval=$enable_nls; USE_NLS=$enableval
 else
   USE_NLS=yes
 fi
 
-  { $as_echo "$as_me:$LINENO: result: $USE_NLS" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
 $as_echo "$USE_NLS" >&6; }
 
 
@@ -2967,7 +2953,7 @@ am__doit:
 .PHONY: am__doit
 END
 # If we don't find an include directive, just comment out the code.
-{ $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
 $as_echo_n "checking for style of include used by $am_make... " >&6; }
 am__include="#"
 am__quote=
@@ -2995,12 +2981,12 @@ if test "$am__include" = "#"; then
 fi
 
 
-{ $as_echo "$as_me:$LINENO: result: $_am_result" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
 $as_echo "$_am_result" >&6; }
 rm -f confinc confmf
 
 # Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then
+if test "${enable_dependency_tracking+set}" = set; then :
   enableval=$enable_dependency_tracking;
 fi
 
@@ -3025,9 +3011,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3038,24 +3024,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -3065,9 +3051,9 @@ if test -z "$ac_cv_prog_CC"; then
   ac_ct_CC=$CC
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -3078,24 +3064,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
 $as_echo "$ac_ct_CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -3104,7 +3090,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -3118,9 +3104,9 @@ if test -z "$CC"; then
           if test -n "$ac_tool_prefix"; then
     # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3131,24 +3117,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -3158,9 +3144,9 @@ fi
 if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3172,18 +3158,18 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
      fi
     ac_cv_prog_CC="cc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 if test $ac_prog_rejected = yes; then
@@ -3202,10 +3188,10 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -3217,9 +3203,9 @@ if test -z "$CC"; then
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3230,24 +3216,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -3261,9 +3247,9 @@ if test -z "$CC"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -3274,24 +3260,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
 $as_echo "$ac_ct_CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -3304,7 +3290,7 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -3315,57 +3301,37 @@ fi
 fi
 
 
-test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
 
 # Provide some information about the compiler.
-$as_echo "$as_me:$LINENO: checking for C compiler version" >&5
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
 set X $ac_compile
 ac_compiler=$2
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
 
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -3381,8 +3347,8 @@ ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
 # Try to create an executable without -o first, disregard a.out.
 # It will help us diagnose broken compilers, and finding out an intuition
 # of exeext.
-{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
 ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
 
 # The possible output files:
@@ -3398,17 +3364,17 @@ do
 done
 rm -f $ac_rmfiles
 
-if { (ac_try="$ac_link_default"
+if { ac_try="$ac_link_default"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_link_default") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
   # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
 # So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
 # in a Makefile.  We should not override ac_cv_exeext if it was cached,
@@ -3425,7 +3391,7 @@ do
        # certainly right.
        break;;
     *.* )
-        if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+       if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
        then :; else
           ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
        fi
@@ -3444,84 +3410,41 @@ test "$ac_cv_exeext" = no && ac_cv_exeext=
 else
   ac_file=''
 fi
-
-{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-if test -z "$ac_file"; then
-  $as_echo "$as_me: failed program was:" >&5
+if test -z "$ac_file"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }; }
-fi
-
-ac_exeext=$ac_cv_exeext
-
-# Check that the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
-  if { ac_try='./$ac_file'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-    cross_compiling=no
-  else
-    if test "$cross_compiling" = maybe; then
-       cross_compiling=yes
-    else
-       { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
-    fi
-  fi
-fi
-{ $as_echo "$as_me:$LINENO: result: yes" >&5
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
 
 rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
 ac_clean_files=$ac_clean_files_save
-# Check that the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
-{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
 $as_echo_n "checking for suffix of executables... " >&6; }
-if { (ac_try="$ac_link"
+if { ac_try="$ac_link"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
   # If both `conftest.exe' and `conftest' are `present' (well, observable)
 # catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
 # work properly (i.e., refer to `conftest.exe'), while it won't with
@@ -3536,32 +3459,83 @@ for ac_file in conftest.exe conftest conftest.*; do
   esac
 done
 else
-  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
 fi
-
-rm -f conftest$ac_cv_exeext
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
 $as_echo "$ac_cv_exeext" >&6; }
 
 rm -f conftest.$ac_ext
 EXEEXT=$ac_cv_exeext
 ac_exeext=$EXEEXT
-{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+  { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+  if { ac_try='./conftest$ac_cv_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+       cross_compiling=yes
+    else
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+    fi
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
 $as_echo_n "checking for suffix of object files... " >&6; }
-if test "${ac_cv_objext+set}" = set; then
+if ${ac_cv_objext+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -3573,17 +3547,17 @@ main ()
 }
 _ACEOF
 rm -f conftest.o conftest.obj
-if { (ac_try="$ac_compile"
+if { ac_try="$ac_compile"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_compile") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
   for ac_file in conftest.o conftest.obj conftest.*; do
   test -f "$ac_file" || continue;
   case $ac_file in
@@ -3596,31 +3570,23 @@ else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
 fi
-
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
 $as_echo "$ac_cv_objext" >&6; }
 OBJEXT=$ac_cv_objext
 ac_objext=$OBJEXT
-{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
+if ${ac_cv_c_compiler_gnu+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -3634,37 +3600,16 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_compiler_gnu=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_compiler_gnu=no
+  ac_compiler_gnu=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
 $as_echo "$ac_cv_c_compiler_gnu" >&6; }
 if test $ac_compiler_gnu = yes; then
   GCC=yes
@@ -3673,20 +3618,16 @@ else
 fi
 ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
 $as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then
+if ${ac_cv_prog_cc_g+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_save_c_werror_flag=$ac_c_werror_flag
    ac_c_werror_flag=yes
    ac_cv_prog_cc_g=no
    CFLAGS="-g"
-   cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -3697,35 +3638,11 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_g=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       CFLAGS=""
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  CFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -3736,36 +3653,12 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_compile "$LINENO"; then :
 
-       ac_c_werror_flag=$ac_save_c_werror_flag
+else
+  ac_c_werror_flag=$ac_save_c_werror_flag
         CFLAGS="-g"
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -3776,42 +3669,17 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_g=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    ac_c_werror_flag=$ac_save_c_werror_flag
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
 $as_echo "$ac_cv_prog_cc_g" >&6; }
 if test "$ac_test_CFLAGS" = set; then
   CFLAGS=$ac_save_CFLAGS
@@ -3828,18 +3696,14 @@ else
     CFLAGS=
   fi
 fi
-{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then
+if ${ac_cv_prog_cc_c89+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c89=no
 ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdarg.h>
 #include <stdio.h>
@@ -3896,32 +3760,9 @@ for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
        -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
-  rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+  if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_c89=$ac_arg
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext
   test "x$ac_cv_prog_cc_c89" != "xno" && break
 done
@@ -3932,17 +3773,19 @@ fi
 # AC_CACHE_VAL
 case "x$ac_cv_prog_cc_c89" in
   x)
-    { $as_echo "$as_me:$LINENO: result: none needed" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
 $as_echo "none needed" >&6; } ;;
   xno)
-    { $as_echo "$as_me:$LINENO: result: unsupported" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
 $as_echo "unsupported" >&6; } ;;
   *)
     CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
 esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
 
+fi
 
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -3952,9 +3795,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 depcc="$CC"   am_compiler_list=
 
-{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
 $as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@@ -4062,7 +3905,7 @@ else
 fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
 
@@ -4082,35 +3925,31 @@ fi
 
 case "$am__api_version" in
     1.01234)
-       { { $as_echo "$as_me:$LINENO: error: Automake 1.5 or newer is required to use intltool" >&5
-$as_echo "$as_me: error: Automake 1.5 or newer is required to use intltool" >&2;}
-   { (exit 1); exit 1; }; }
+       as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5
     ;;
     *)
     ;;
 esac
 
 if test -n "0.21"; then
-    { $as_echo "$as_me:$LINENO: checking for intltool >= 0.21" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.21" >&5
 $as_echo_n "checking for intltool >= 0.21... " >&6; }
 
     INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.21 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
     INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3`
     INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
 
-    { $as_echo "$as_me:$LINENO: result: $INTLTOOL_APPLIED_VERSION found" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5
 $as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; }
     test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" ||
-       { { $as_echo "$as_me:$LINENO: error: Your intltool is too old.  You need intltool 0.21 or later." >&5
-$as_echo "$as_me: error: Your intltool is too old.  You need intltool 0.21 or later." >&2;}
-   { (exit 1); exit 1; }; }
+       as_fn_error $? "Your intltool is too old.  You need intltool 0.21 or later." "$LINENO" 5
 fi
 
 # Extract the first word of "intltool-update", so it can be a program name with args.
 set dummy intltool-update; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_INTLTOOL_UPDATE+set}" = set; then
+if ${ac_cv_path_INTLTOOL_UPDATE+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $INTLTOOL_UPDATE in
@@ -4123,14 +3962,14 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   ;;
@@ -4138,19 +3977,19 @@ esac
 fi
 INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE
 if test -n "$INTLTOOL_UPDATE"; then
-  { $as_echo "$as_me:$LINENO: result: $INTLTOOL_UPDATE" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5
 $as_echo "$INTLTOOL_UPDATE" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
 # Extract the first word of "intltool-merge", so it can be a program name with args.
 set dummy intltool-merge; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_INTLTOOL_MERGE+set}" = set; then
+if ${ac_cv_path_INTLTOOL_MERGE+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $INTLTOOL_MERGE in
@@ -4163,14 +4002,14 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   ;;
@@ -4178,19 +4017,19 @@ esac
 fi
 INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE
 if test -n "$INTLTOOL_MERGE"; then
-  { $as_echo "$as_me:$LINENO: result: $INTLTOOL_MERGE" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5
 $as_echo "$INTLTOOL_MERGE" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
 # Extract the first word of "intltool-extract", so it can be a program name with args.
 set dummy intltool-extract; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_INTLTOOL_EXTRACT+set}" = set; then
+if ${ac_cv_path_INTLTOOL_EXTRACT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $INTLTOOL_EXTRACT in
@@ -4203,14 +4042,14 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   ;;
@@ -4218,18 +4057,16 @@ esac
 fi
 INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT
 if test -n "$INTLTOOL_EXTRACT"; then
-  { $as_echo "$as_me:$LINENO: result: $INTLTOOL_EXTRACT" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5
 $as_echo "$INTLTOOL_EXTRACT" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
 if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then
-    { { $as_echo "$as_me:$LINENO: error: The intltool scripts were not found. Please install intltool." >&5
-$as_echo "$as_me: error: The intltool scripts were not found. Please install intltool." >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5
 fi
 
   INTLTOOL_DESKTOP_RULE='%.desktop:   %.desktop.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
@@ -4351,9 +4188,9 @@ INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcar
 # Check the gettext tools to make sure they are GNU
 # Extract the first word of "xgettext", so it can be a program name with args.
 set dummy xgettext; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_XGETTEXT+set}" = set; then
+if ${ac_cv_path_XGETTEXT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $XGETTEXT in
@@ -4366,14 +4203,14 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   ;;
@@ -4381,19 +4218,19 @@ esac
 fi
 XGETTEXT=$ac_cv_path_XGETTEXT
 if test -n "$XGETTEXT"; then
-  { $as_echo "$as_me:$LINENO: result: $XGETTEXT" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5
 $as_echo "$XGETTEXT" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
 # Extract the first word of "msgmerge", so it can be a program name with args.
 set dummy msgmerge; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MSGMERGE+set}" = set; then
+if ${ac_cv_path_MSGMERGE+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $MSGMERGE in
@@ -4406,14 +4243,14 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   ;;
@@ -4421,19 +4258,19 @@ esac
 fi
 MSGMERGE=$ac_cv_path_MSGMERGE
 if test -n "$MSGMERGE"; then
-  { $as_echo "$as_me:$LINENO: result: $MSGMERGE" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5
 $as_echo "$MSGMERGE" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
 # Extract the first word of "msgfmt", so it can be a program name with args.
 set dummy msgfmt; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MSGFMT+set}" = set; then
+if ${ac_cv_path_MSGFMT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $MSGFMT in
@@ -4446,14 +4283,14 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   ;;
@@ -4461,19 +4298,19 @@ esac
 fi
 MSGFMT=$ac_cv_path_MSGFMT
 if test -n "$MSGFMT"; then
-  { $as_echo "$as_me:$LINENO: result: $MSGFMT" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
 $as_echo "$MSGFMT" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
 # Extract the first word of "gmsgfmt", so it can be a program name with args.
 set dummy gmsgfmt; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_GMSGFMT+set}" = set; then
+if ${ac_cv_path_GMSGFMT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $GMSGFMT in
@@ -4486,14 +4323,14 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
@@ -4502,33 +4339,29 @@ esac
 fi
 GMSGFMT=$ac_cv_path_GMSGFMT
 if test -n "$GMSGFMT"; then
-  { $as_echo "$as_me:$LINENO: result: $GMSGFMT" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5
 $as_echo "$GMSGFMT" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
 if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then
-    { { $as_echo "$as_me:$LINENO: error: GNU gettext tools not found; required for intltool" >&5
-$as_echo "$as_me: error: GNU gettext tools not found; required for intltool" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5
 fi
 xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`"
 mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`"
 mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`"
 if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then
-    { { $as_echo "$as_me:$LINENO: error: GNU gettext tools not found; required for intltool" >&5
-$as_echo "$as_me: error: GNU gettext tools not found; required for intltool" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5
 fi
 
 # Extract the first word of "perl", so it can be a program name with args.
 set dummy perl; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_INTLTOOL_PERL+set}" = set; then
+if ${ac_cv_path_INTLTOOL_PERL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $INTLTOOL_PERL in
@@ -4541,14 +4374,14 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   ;;
@@ -4556,41 +4389,35 @@ esac
 fi
 INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL
 if test -n "$INTLTOOL_PERL"; then
-  { $as_echo "$as_me:$LINENO: result: $INTLTOOL_PERL" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5
 $as_echo "$INTLTOOL_PERL" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
 if test -z "$INTLTOOL_PERL"; then
-   { { $as_echo "$as_me:$LINENO: error: perl not found" >&5
-$as_echo "$as_me: error: perl not found" >&2;}
-   { (exit 1); exit 1; }; }
+   as_fn_error $? "perl not found" "$LINENO" 5
 fi
-{ $as_echo "$as_me:$LINENO: checking for perl >= 5.8.1" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5
 $as_echo_n "checking for perl >= 5.8.1... " >&6; }
 $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1
 if test $? -ne 0; then
-   { { $as_echo "$as_me:$LINENO: error: perl 5.8.1 is required for intltool" >&5
-$as_echo "$as_me: error: perl 5.8.1 is required for intltool" >&2;}
-   { (exit 1); exit 1; }; }
+   as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5
 else
    IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`"
-   { $as_echo "$as_me:$LINENO: result: $IT_PERL_VERSION" >&5
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5
 $as_echo "$IT_PERL_VERSION" >&6; }
 fi
 if test "x" != "xno-xml"; then
-   { $as_echo "$as_me:$LINENO: checking for XML::Parser" >&5
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5
 $as_echo_n "checking for XML::Parser... " >&6; }
    if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
-       { $as_echo "$as_me:$LINENO: result: ok" >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
 $as_echo "ok" >&6; }
    else
-       { { $as_echo "$as_me:$LINENO: error: XML::Parser perl module is required for intltool" >&5
-$as_echo "$as_me: error: XML::Parser perl module is required for intltool" >&2;}
-   { (exit 1); exit 1; }; }
+       as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5
    fi
 fi
 
@@ -4600,11 +4427,7 @@ fi
 # Set DATADIRNAME correctly if it is not set yet
 # (copied from glib-gettext.m4)
 if test -z "$DATADIRNAME"; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -4616,120 +4439,13 @@ extern int _nl_msg_cat_cntr;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   DATADIRNAME=share
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       case $host in
+  case $host in
     *-*-solaris*)
-                        { $as_echo "$as_me:$LINENO: checking for bind_textdomain_codeset" >&5
-$as_echo_n "checking for bind_textdomain_codeset... " >&6; }
-if test "${ac_cv_func_bind_textdomain_codeset+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define bind_textdomain_codeset to an innocuous variant, in case <limits.h> declares bind_textdomain_codeset.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define bind_textdomain_codeset innocuous_bind_textdomain_codeset
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char bind_textdomain_codeset (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef bind_textdomain_codeset
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char bind_textdomain_codeset ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_bind_textdomain_codeset || defined __stub___bind_textdomain_codeset
-choke me
-#endif
-
-int
-main ()
-{
-return bind_textdomain_codeset ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_bind_textdomain_codeset=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_bind_textdomain_codeset=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_bind_textdomain_codeset" >&5
-$as_echo "$ac_cv_func_bind_textdomain_codeset" >&6; }
-if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then
+                        ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset"
+if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then :
   DATADIRNAME=share
 else
   DATADIRNAME=lib
@@ -4741,10 +4457,8 @@ fi
     ;;
     esac
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi
 
 
@@ -4753,13 +4467,18 @@ fi
 
 
 
+
+
+
+
+
 if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
        if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
 set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $PKG_CONFIG in
@@ -4772,14 +4491,14 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   ;;
@@ -4787,10 +4506,10 @@ esac
 fi
 PKG_CONFIG=$ac_cv_path_PKG_CONFIG
 if test -n "$PKG_CONFIG"; then
-  { $as_echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
 $as_echo "$PKG_CONFIG" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -4800,9 +4519,9 @@ if test -z "$ac_cv_path_PKG_CONFIG"; then
   ac_pt_PKG_CONFIG=$PKG_CONFIG
   # Extract the first word of "pkg-config", so it can be a program name with args.
 set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $ac_pt_PKG_CONFIG in
@@ -4815,14 +4534,14 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   ;;
@@ -4830,10 +4549,10 @@ esac
 fi
 ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
 if test -n "$ac_pt_PKG_CONFIG"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
 $as_echo "$ac_pt_PKG_CONFIG" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -4842,7 +4561,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -4855,29 +4574,28 @@ fi
 fi
 if test -n "$PKG_CONFIG"; then
        _pkg_min_version=0.9.0
-       { $as_echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
        if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
-               { $as_echo "$as_me:$LINENO: result: yes" >&5
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
        else
-               { $as_echo "$as_me:$LINENO: result: no" >&5
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
                PKG_CONFIG=""
        fi
-
 fi
 
 case `pwd` in
   *\ * | *\    *)
-    { $as_echo "$as_me:$LINENO: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
 esac
 
 
 
-macro_version='2.2.6b'
-macro_revision='1.3017'
+macro_version='2.4'
+macro_revision='1.3293'
 
 
 
@@ -4895,35 +4613,27 @@ ltmain="$ac_aux_dir/ltmain.sh"
 
 # Make sure we can run config.sub.
 $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
-$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
 
-{ $as_echo "$as_me:$LINENO: checking build system type" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
 $as_echo_n "checking build system type... " >&6; }
-if test "${ac_cv_build+set}" = set; then
+if ${ac_cv_build+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_build_alias=$build_alias
 test "x$ac_build_alias" = x &&
   ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
 test "x$ac_build_alias" = x &&
-  { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
-$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
 $as_echo "$ac_cv_build" >&6; }
 case $ac_cv_build in
 *-*-*) ;;
-*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
-$as_echo "$as_me: error: invalid value of canonical build" >&2;}
-   { (exit 1); exit 1; }; };;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
 esac
 build=$ac_cv_build
 ac_save_IFS=$IFS; IFS='-'
@@ -4939,28 +4649,24 @@ IFS=$ac_save_IFS
 case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 
 
-{ $as_echo "$as_me:$LINENO: checking host system type" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
 $as_echo_n "checking host system type... " >&6; }
-if test "${ac_cv_host+set}" = set; then
+if ${ac_cv_host+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test "x$host_alias" = x; then
   ac_cv_host=$ac_cv_build
 else
   ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
-$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
 fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
 $as_echo "$ac_cv_host" >&6; }
 case $ac_cv_host in
 *-*-*) ;;
-*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
-$as_echo "$as_me: error: invalid value of canonical host" >&2;}
-   { (exit 1); exit 1; }; };;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
 esac
 host=$ac_cv_host
 ac_save_IFS=$IFS; IFS='-'
@@ -4976,9 +4682,78 @@ IFS=$ac_save_IFS
 case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
 
 
-{ $as_echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
+# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+$as_echo_n "checking how to print strings... " >&6; }
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='printf %s\n'
+else
+  # Use this function as a fallback that always works.
+  func_fallback_echo ()
+  {
+    eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+  }
+  ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO ""
+}
+
+case "$ECHO" in
+  printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+$as_echo "printf" >&6; } ;;
+  print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+$as_echo "print -r" >&6; } ;;
+  *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+$as_echo "cat" >&6; } ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
 $as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if test "${ac_cv_path_SED+set}" = set; then
+if ${ac_cv_path_SED+:} false; then :
   $as_echo_n "(cached) " >&6
 else
             ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
@@ -4986,7 +4761,7 @@ else
        ac_script="$ac_script$as_nl$ac_script"
      done
      echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
-     $as_unset ac_script || ac_script=
+     { ac_script=; unset ac_script;}
      if test -z "$SED"; then
   ac_path_SED_found=false
   # Loop through the user's path and test for each of PROGNAME-LIST
@@ -4995,7 +4770,7 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_prog in sed gsed; do
+    for ac_prog in sed gsed; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
       { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
@@ -5015,7 +4790,7 @@ case `"$ac_path_SED" --version 2>&1` in
     $as_echo '' >> "conftest.nl"
     "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
     if test $ac_count -gt ${ac_path_SED_max-0}; then
       # Best one so far, save it but keep looking for a better one
       ac_cv_path_SED="$ac_path_SED"
@@ -5030,19 +4805,17 @@ esac
       $ac_path_SED_found && break 3
     done
   done
-done
+  done
 IFS=$as_save_IFS
   if test -z "$ac_cv_path_SED"; then
-    { { $as_echo "$as_me:$LINENO: error: no acceptable sed could be found in \$PATH" >&5
-$as_echo "$as_me: error: no acceptable sed could be found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
   fi
 else
   ac_cv_path_SED=$SED
 fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_SED" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
 $as_echo "$ac_cv_path_SED" >&6; }
  SED="$ac_cv_path_SED"
   rm -f conftest.sed
@@ -5060,9 +4833,9 @@ Xsed="$SED -e 1s/^X//"
 
 
 
-{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
 $as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then
+if ${ac_cv_path_GREP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$GREP"; then
@@ -5073,7 +4846,7 @@ for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_prog in grep ggrep; do
+    for ac_prog in grep ggrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
       { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
@@ -5093,7 +4866,7 @@ case `"$ac_path_GREP" --version 2>&1` in
     $as_echo 'GREP' >> "conftest.nl"
     "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
     if test $ac_count -gt ${ac_path_GREP_max-0}; then
       # Best one so far, save it but keep looking for a better one
       ac_cv_path_GREP="$ac_path_GREP"
@@ -5108,26 +4881,24 @@ esac
       $ac_path_GREP_found && break 3
     done
   done
-done
+  done
 IFS=$as_save_IFS
   if test -z "$ac_cv_path_GREP"; then
-    { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
   fi
 else
   ac_cv_path_GREP=$GREP
 fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
 $as_echo "$ac_cv_path_GREP" >&6; }
  GREP="$ac_cv_path_GREP"
 
 
-{ $as_echo "$as_me:$LINENO: checking for egrep" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
 $as_echo_n "checking for egrep... " >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then
+if ${ac_cv_path_EGREP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
@@ -5141,7 +4912,7 @@ for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_prog in egrep; do
+    for ac_prog in egrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
       { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
@@ -5161,7 +4932,7 @@ case `"$ac_path_EGREP" --version 2>&1` in
     $as_echo 'EGREP' >> "conftest.nl"
     "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
     if test $ac_count -gt ${ac_path_EGREP_max-0}; then
       # Best one so far, save it but keep looking for a better one
       ac_cv_path_EGREP="$ac_path_EGREP"
@@ -5176,12 +4947,10 @@ esac
       $ac_path_EGREP_found && break 3
     done
   done
-done
+  done
 IFS=$as_save_IFS
   if test -z "$ac_cv_path_EGREP"; then
-    { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
   fi
 else
   ac_cv_path_EGREP=$EGREP
@@ -5189,14 +4958,14 @@ fi
 
    fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
 $as_echo "$ac_cv_path_EGREP" >&6; }
  EGREP="$ac_cv_path_EGREP"
 
 
-{ $as_echo "$as_me:$LINENO: checking for fgrep" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
 $as_echo_n "checking for fgrep... " >&6; }
-if test "${ac_cv_path_FGREP+set}" = set; then
+if ${ac_cv_path_FGREP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
@@ -5210,7 +4979,7 @@ for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_prog in fgrep; do
+    for ac_prog in fgrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
       { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
@@ -5230,7 +4999,7 @@ case `"$ac_path_FGREP" --version 2>&1` in
     $as_echo 'FGREP' >> "conftest.nl"
     "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
     if test $ac_count -gt ${ac_path_FGREP_max-0}; then
       # Best one so far, save it but keep looking for a better one
       ac_cv_path_FGREP="$ac_path_FGREP"
@@ -5245,12 +5014,10 @@ esac
       $ac_path_FGREP_found && break 3
     done
   done
-done
+  done
 IFS=$as_save_IFS
   if test -z "$ac_cv_path_FGREP"; then
-    { { $as_echo "$as_me:$LINENO: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-$as_echo "$as_me: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
   fi
 else
   ac_cv_path_FGREP=$FGREP
@@ -5258,7 +5025,7 @@ fi
 
    fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_FGREP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
 $as_echo "$ac_cv_path_FGREP" >&6; }
  FGREP="$ac_cv_path_FGREP"
 
@@ -5284,7 +5051,7 @@ test -z "$GREP" && GREP=grep
 
 
 # Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
+if test "${with_gnu_ld+set}" = set; then :
   withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
 else
   with_gnu_ld=no
@@ -5293,7 +5060,7 @@ fi
 ac_prog=ld
 if test "$GCC" = yes; then
   # Check if gcc -print-prog-name=ld gives a path.
-  { $as_echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
 $as_echo_n "checking for ld used by $CC... " >&6; }
   case $host in
   *-*-mingw*)
@@ -5323,13 +5090,13 @@ $as_echo_n "checking for ld used by $CC... " >&6; }
     ;;
   esac
 elif test "$with_gnu_ld" = yes; then
-  { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
 $as_echo_n "checking for GNU ld... " >&6; }
 else
-  { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
 $as_echo_n "checking for non-GNU ld... " >&6; }
 fi
-if test "${lt_cv_path_LD+set}" = set; then
+if ${lt_cv_path_LD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
@@ -5360,18 +5127,16 @@ fi
 
 LD="$lt_cv_path_LD"
 if test -n "$LD"; then
-  { $as_echo "$as_me:$LINENO: result: $LD" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
 $as_echo "$LD" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
-test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
-{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then
+if ${lt_cv_prog_gnu_ld+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   # I'd rather use --version here, but apparently some GNU lds only accept -v.
@@ -5384,7 +5149,7 @@ case `$LD -v 2>&1 </dev/null` in
   ;;
 esac
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
 $as_echo "$lt_cv_prog_gnu_ld" >&6; }
 with_gnu_ld=$lt_cv_prog_gnu_ld
 
@@ -5396,9 +5161,9 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
 
 
 
-{ $as_echo "$as_me:$LINENO: checking for BSD- or MS-compatible name lister (nm)" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if test "${lt_cv_path_NM+set}" = set; then
+if ${lt_cv_path_NM+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$NM"; then
@@ -5445,20 +5210,23 @@ else
   : ${lt_cv_path_NM=no}
 fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
 $as_echo "$lt_cv_path_NM" >&6; }
 if test "$lt_cv_path_NM" != "no"; then
   NM="$lt_cv_path_NM"
 else
   # Didn't find any BSD compatible name lister, look for dumpbin.
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in "dumpbin -symbols" "link -dump -symbols"
+  if test -n "$DUMPBIN"; then :
+    # Let the user override the test.
+  else
+    if test -n "$ac_tool_prefix"; then
+  for ac_prog in dumpbin "link -dump"
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DUMPBIN+set}" = set; then
+if ${ac_cv_prog_DUMPBIN+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$DUMPBIN"; then
@@ -5469,24 +5237,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 DUMPBIN=$ac_cv_prog_DUMPBIN
 if test -n "$DUMPBIN"; then
-  { $as_echo "$as_me:$LINENO: result: $DUMPBIN" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
 $as_echo "$DUMPBIN" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -5496,13 +5264,13 @@ fi
 fi
 if test -z "$DUMPBIN"; then
   ac_ct_DUMPBIN=$DUMPBIN
-  for ac_prog in "dumpbin -symbols" "link -dump -symbols"
+  for ac_prog in dumpbin "link -dump"
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then
+if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_DUMPBIN"; then
@@ -5513,24 +5281,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
 if test -n "$ac_ct_DUMPBIN"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_DUMPBIN" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
 $as_echo "$ac_ct_DUMPBIN" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -5543,7 +5311,7 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -5551,6 +5319,15 @@ esac
   fi
 fi
 
+    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+    *COFF*)
+      DUMPBIN="$DUMPBIN -symbols"
+      ;;
+    *)
+      DUMPBIN=:
+      ;;
+    esac
+  fi
 
   if test "$DUMPBIN" != ":"; then
     NM="$DUMPBIN"
@@ -5563,33 +5340,44 @@ test -z "$NM" && NM=nm
 
 
 
-{ $as_echo "$as_me:$LINENO: checking the name lister ($NM) interface" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
 $as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if test "${lt_cv_nm_interface+set}" = set; then
+if ${lt_cv_nm_interface+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:5573: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5576: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5579: output\"" >&5)
+  (eval echo "\"\$as_me:$LINENO: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
   fi
   rm -f conftest*
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_nm_interface" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
 $as_echo "$lt_cv_nm_interface" >&6; }
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
 # find the maximum length of command line arguments
-{ $as_echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
 $as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if test "${lt_cv_sys_max_cmd_len+set}" = set; then
+if ${lt_cv_sys_max_cmd_len+:} false; then :
   $as_echo_n "(cached) " >&6
 else
     i=0
@@ -5622,6 +5410,11 @@ else
     lt_cv_sys_max_cmd_len=8192;
     ;;
 
+  mint*)
+    # On MiNT this can take a long time and run out of memory.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
   amigaos*)
     # On AmigaOS with pdksh, this test takes hours, literally.
     # So we just punt and use a minimum line length of 8192.
@@ -5686,8 +5479,8 @@ else
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
-                = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
+      while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
+                = "X$teststring$teststring"; } >/dev/null 2>&1 &&
              test $i != 17 # 1/2 MB should be enough
       do
         i=`expr $i + 1`
@@ -5707,10 +5500,10 @@ else
 fi
 
 if test -n $lt_cv_sys_max_cmd_len ; then
-  { $as_echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
 $as_echo "$lt_cv_sys_max_cmd_len" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: none" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
 $as_echo "none" >&6; }
 fi
 max_cmd_len=$lt_cv_sys_max_cmd_len
@@ -5724,27 +5517,27 @@ max_cmd_len=$lt_cv_sys_max_cmd_len
 : ${MV="mv -f"}
 : ${RM="rm -f"}
 
-{ $as_echo "$as_me:$LINENO: checking whether the shell understands some XSI constructs" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
 # Try some XSI features
 xsi_shell=no
 ( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,, \
+  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
+      = c,a/b,b/c, \
     && eval 'test $(( 1 + 1 )) -eq 2 \
     && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
   && xsi_shell=yes
-{ $as_echo "$as_me:$LINENO: result: $xsi_shell" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
 $as_echo "$xsi_shell" >&6; }
 
 
-{ $as_echo "$as_me:$LINENO: checking whether the shell understands \"+=\"" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
 lt_shell_append=no
 ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
     >/dev/null 2>&1 \
   && lt_shell_append=yes
-{ $as_echo "$as_me:$LINENO: result: $lt_shell_append" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
 $as_echo "$lt_shell_append" >&6; }
 
 
@@ -5779,14 +5572,88 @@ esac
 
 
 
-{ $as_echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
+$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
+if ${lt_cv_to_host_file_cmd+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+        ;;
+    esac
+    ;;
+  *-*-cygwin* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_noop
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+        ;;
+    esac
+    ;;
+  * ) # unhandled hosts (and "normal" native builds)
+    lt_cv_to_host_file_cmd=func_convert_file_noop
+    ;;
+esac
+
+fi
+
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
+$as_echo "$lt_cv_to_host_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
+if ${lt_cv_to_tool_file_cmd+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  #assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+        ;;
+    esac
+    ;;
+esac
+
+fi
+
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
+$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
 $as_echo_n "checking for $LD option to reload object files... " >&6; }
-if test "${lt_cv_ld_reload_flag+set}" = set; then
+if ${lt_cv_ld_reload_flag+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_ld_reload_flag='-r'
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
 $as_echo "$lt_cv_ld_reload_flag" >&6; }
 reload_flag=$lt_cv_ld_reload_flag
 case $reload_flag in
@@ -5795,6 +5662,11 @@ case $reload_flag in
 esac
 reload_cmds='$LD$reload_flag -o $output$reload_objs'
 case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    if test "$GCC" != yes; then
+      reload_cmds=false
+    fi
+    ;;
   darwin*)
     if test "$GCC" = yes; then
       reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
@@ -5815,9 +5687,9 @@ esac
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
 set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OBJDUMP+set}" = set; then
+if ${ac_cv_prog_OBJDUMP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OBJDUMP"; then
@@ -5828,24 +5700,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 OBJDUMP=$ac_cv_prog_OBJDUMP
 if test -n "$OBJDUMP"; then
-  { $as_echo "$as_me:$LINENO: result: $OBJDUMP" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
 $as_echo "$OBJDUMP" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -5855,9 +5727,9 @@ if test -z "$ac_cv_prog_OBJDUMP"; then
   ac_ct_OBJDUMP=$OBJDUMP
   # Extract the first word of "objdump", so it can be a program name with args.
 set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OBJDUMP"; then
@@ -5868,24 +5740,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_OBJDUMP="objdump"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
 if test -n "$ac_ct_OBJDUMP"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
 $as_echo "$ac_ct_OBJDUMP" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -5894,7 +5766,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -5914,9 +5786,9 @@ test -z "$OBJDUMP" && OBJDUMP=objdump
 
 
 
-{ $as_echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
 $as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if test "${lt_cv_deplibs_check_method+set}" = set; then
+if ${lt_cv_deplibs_check_method+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_file_magic_cmd='$MAGIC_CMD'
@@ -5958,16 +5830,18 @@ mingw* | pw32*)
   # Base MSYS/MinGW do not provide the 'file' command needed by
   # func_win32_libid shell function, so use a weaker test based on 'objdump',
   # unless we find 'file', for example because we are cross-compiling.
-  if ( file / ) >/dev/null 2>&1; then
+  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
+  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
     lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
     lt_cv_file_magic_cmd='func_win32_libid'
   else
-    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+    # Keep this pattern in sync with the one in func_win32_libid.
+    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
     lt_cv_file_magic_cmd='$OBJDUMP -f'
   fi
   ;;
 
-cegcc)
+cegcc*)
   # use the weaker test based on 'objdump'. See mingw*.
   lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
   lt_cv_file_magic_cmd='$OBJDUMP -f'
@@ -5997,6 +5871,10 @@ gnu*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
+haiku*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
 hpux10.20* | hpux11*)
   lt_cv_file_magic_cmd=/usr/bin/file
   case $host_cpu in
@@ -6005,11 +5883,11 @@ hpux10.20* | hpux11*)
     lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
     ;;
   hppa*64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
     lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
     ;;
   *)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
     lt_cv_file_magic_test_file=/usr/lib/libc.sl
     ;;
   esac
@@ -6031,7 +5909,7 @@ irix5* | irix6* | nonstopux*)
   ;;
 
 # This must be Linux ELF.
-linux* | k*bsd*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -6041,85 +5919,251 @@ netbsd*)
   else
     lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
   fi
-  ;;
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+*nto* | *qnx*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+openbsd*)
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+rdos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv4 | sysv4.3*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  pc)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+tpf*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+$as_echo "$lt_cv_deplibs_check_method" >&6; }
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+  case $host_os in
+  mingw* | pw32*)
+    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+      want_nocaseglob=yes
+    else
+      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
+    fi
+    ;;
+  esac
+fi
+
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DLLTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$DLLTOOL"; then
+  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+$as_echo "$DLLTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DLLTOOL"; then
+  ac_ct_DLLTOOL=$DLLTOOL
+  # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_DLLTOOL"; then
+  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
+if test -n "$ac_ct_DLLTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+$as_echo "$ac_ct_DLLTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_DLLTOOL" = x; then
+    DLLTOOL="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    DLLTOOL=$ac_ct_DLLTOOL
+  fi
+else
+  DLLTOOL="$ac_cv_prog_DLLTOOL"
+fi
 
-newos6*)
-  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-  ;;
+test -z "$DLLTOOL" && DLLTOOL=dlltool
 
-*nto* | *qnx*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
 
-openbsd*)
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
-  fi
-  ;;
 
-osf3* | osf4* | osf5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
 
-rdos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
 
-solaris*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
 
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
 
-sysv4 | sysv4.3*)
-  case $host_vendor in
-  motorola)
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-    ;;
-  ncr)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  sequent)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
-    ;;
-  sni)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
-    lt_cv_file_magic_test_file=/lib/libc.so
-    ;;
-  siemens)
-    lt_cv_deplibs_check_method=pass_all
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
+$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
+if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+  # two different shell functions defined in ltmain.sh
+  # decide which to use based on capabilities of $DLLTOOL
+  case `$DLLTOOL --help 2>&1` in
+  *--identify-strict*)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
     ;;
-  pc)
-    lt_cv_deplibs_check_method=pass_all
+  *)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
     ;;
   esac
   ;;
-
-tpf*)
-  lt_cv_deplibs_check_method=pass_all
+*)
+  # fallback: assume linklib IS sharedlib
+  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
   ;;
 esac
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
-$as_echo "$lt_cv_deplibs_check_method" >&6; }
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-
-
-
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
 
 
 
@@ -6128,11 +6172,13 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
 
 
 if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+  for ac_prog in ar
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AR+set}" = set; then
+if ${ac_cv_prog_AR+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AR"; then
@@ -6143,36 +6189,40 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_AR="${ac_tool_prefix}ar"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 AR=$ac_cv_prog_AR
 if test -n "$AR"; then
-  { $as_echo "$as_me:$LINENO: result: $AR" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
 $as_echo "$AR" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
+    test -n "$AR" && break
+  done
 fi
-if test -z "$ac_cv_prog_AR"; then
+if test -z "$AR"; then
   ac_ct_AR=$AR
-  # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+  for ac_prog in ar
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_AR"; then
@@ -6183,50 +6233,110 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_AR="ar"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    ac_cv_prog_ac_ct_AR="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_AR=$ac_cv_prog_ac_ct_AR
 if test -n "$ac_ct_AR"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
 $as_echo "$ac_ct_AR" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
+
+  test -n "$ac_ct_AR" && break
+done
+
   if test "x$ac_ct_AR" = x; then
     AR="false"
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     AR=$ac_ct_AR
   fi
-else
-  AR="$ac_cv_prog_AR"
 fi
 
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+
+
+
+
+
 
 
 
 
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
+$as_echo_n "checking for archiver @FILE support... " >&6; }
+if ${lt_cv_ar_at_file+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ar_at_file=no
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  echo conftest.$ac_objext > conftest.lst
+      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
+      { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+  (eval $lt_ar_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+      if test "$ac_status" -eq 0; then
+       # Ensure the archiver fails upon bogus file names.
+       rm -f conftest.$ac_objext libconftest.a
+       { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+  (eval $lt_ar_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+       if test "$ac_status" -ne 0; then
+          lt_cv_ar_at_file=@
+        fi
+      fi
+      rm -f conftest.* libconftest.a
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
+$as_echo "$lt_cv_ar_at_file" >&6; }
+
+if test "x$lt_cv_ar_at_file" = xno; then
+  archiver_list_spec=
+else
+  archiver_list_spec=$lt_cv_ar_at_file
+fi
+
+
 
 
 
@@ -6235,9 +6345,9 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
 set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then
+if ${ac_cv_prog_STRIP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$STRIP"; then
@@ -6248,24 +6358,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 STRIP=$ac_cv_prog_STRIP
 if test -n "$STRIP"; then
-  { $as_echo "$as_me:$LINENO: result: $STRIP" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
 $as_echo "$STRIP" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -6275,9 +6385,9 @@ if test -z "$ac_cv_prog_STRIP"; then
   ac_ct_STRIP=$STRIP
   # Extract the first word of "strip", so it can be a program name with args.
 set dummy strip; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_STRIP"; then
@@ -6288,24 +6398,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_STRIP="strip"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
 if test -n "$ac_ct_STRIP"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
 $as_echo "$ac_ct_STRIP" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -6314,7 +6424,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -6334,9 +6444,9 @@ test -z "$STRIP" && STRIP=:
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then
+if ${ac_cv_prog_RANLIB+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$RANLIB"; then
@@ -6347,24 +6457,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 RANLIB=$ac_cv_prog_RANLIB
 if test -n "$RANLIB"; then
-  { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
 $as_echo "$RANLIB" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -6374,9 +6484,9 @@ if test -z "$ac_cv_prog_RANLIB"; then
   ac_ct_RANLIB=$RANLIB
   # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_RANLIB"; then
@@ -6387,24 +6497,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_RANLIB="ranlib"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 if test -n "$ac_ct_RANLIB"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
 $as_echo "$ac_ct_RANLIB" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -6413,7 +6523,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -6447,6 +6557,18 @@ if test -n "$RANLIB"; then
   old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
 fi
 
+case $host_os in
+  darwin*)
+    lock_old_archive_extraction=yes ;;
+  *)
+    lock_old_archive_extraction=no ;;
+esac
+
+
+
+
+
+
 
 
 
@@ -6491,9 +6613,9 @@ compiler=$CC
 
 
 # Check for command to grab the raw symbol name followed by C symbol from nm.
-{ $as_echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
+if ${lt_cv_sys_global_symbol_pipe+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -6554,8 +6676,8 @@ esac
 lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
 
 # Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
 
 # Handle CRLF in mingw tool chain
 opt_cr=
@@ -6591,6 +6713,7 @@ for ac_symprfx in "" "_"; do
   else
     lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[     ]\($symcode$symcode*\)[         ][      ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
   fi
+  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
 
   # Check to see that the pipe works correctly.
   pipe_works=no
@@ -6609,18 +6732,18 @@ void nm_test_func(void){}
 int main(){nm_test_var='a';nm_test_func();return(0);}
 _LT_EOF
 
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
     # Now try to grab the symbols.
     nlist=conftest.nm
-    if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
-  (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
+  (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s "$nlist"; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s "$nlist"; then
       # Try sorting and uniquifying the output.
       if sort "$nlist" | uniq > "$nlist"T; then
        mv -f "$nlist"T "$nlist"
@@ -6632,6 +6755,18 @@ _LT_EOF
       if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
        if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
          cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data.  */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -6643,7 +6778,7 @@ _LT_EOF
          cat <<_LT_EOF >> conftest.$ac_ext
 
 /* The mapping between symbol names and symbols.  */
-const struct {
+LT_DLSYM_CONST struct {
   const char *name;
   void       *address;
 }
@@ -6669,19 +6804,19 @@ static const void *lt_preloaded_setup() {
 _LT_EOF
          # Now try linking the two files.
          mv conftest.$ac_objext conftstm.$ac_objext
-         lt_save_LIBS="$LIBS"
-         lt_save_CFLAGS="$CFLAGS"
+         lt_globsym_save_LIBS=$LIBS
+         lt_globsym_save_CFLAGS=$CFLAGS
          LIBS="conftstm.$ac_objext"
          CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
-         if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+         if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext}; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest${ac_exeext}; then
            pipe_works=yes
          fi
-         LIBS="$lt_save_LIBS"
-         CFLAGS="$lt_save_CFLAGS"
+         LIBS=$lt_globsym_save_LIBS
+         CFLAGS=$lt_globsym_save_CFLAGS
        else
          echo "cannot find nm_test_func in $nlist" >&5
        fi
@@ -6711,13 +6846,31 @@ if test -z "$lt_cv_sys_global_symbol_pipe"; then
   lt_cv_sys_global_symbol_to_cdecl=
 fi
 if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  { $as_echo "$as_me:$LINENO: result: failed" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
 $as_echo "failed" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: ok" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
 $as_echo "ok" >&6; }
 fi
 
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
+  nm_file_list_spec='@'
+fi
+
+
+
+
+
+
+
+
+
+
+
+
 
 
 
@@ -6733,14 +6886,45 @@ fi
 
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
+$as_echo_n "checking for sysroot... " >&6; }
 
+# Check whether --with-sysroot was given.
+if test "${with_sysroot+set}" = set; then :
+  withval=$with_sysroot;
+else
+  with_sysroot=no
+fi
+
+
+lt_sysroot=
+case ${with_sysroot} in #(
+ yes)
+   if test "$GCC" = yes; then
+     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+   fi
+   ;; #(
+ /*)
+   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+   ;; #(
+ no|'')
+   ;; #(
+ *)
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
+$as_echo "${with_sysroot}" >&6; }
+   as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
+   ;;
+esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
+$as_echo "${lt_sysroot:-no}" >&6; }
 
 
 
 
 
 # Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then
+if test "${enable_libtool_lock+set}" = set; then :
   enableval=$enable_libtool_lock;
 fi
 
@@ -6752,11 +6936,11 @@ case $host in
 ia64-*-hpux*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
     case `/usr/bin/file conftest.$ac_objext` in
       *ELF-32*)
        HPUX_IA64_MODE="32"
@@ -6770,12 +6954,12 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 6773 "configure"' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
     if test "$lt_cv_prog_gnu_ld" = yes; then
       case `/usr/bin/file conftest.$ac_objext` in
        *32-bit*)
@@ -6809,11 +6993,11 @@ x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
     case `/usr/bin/file conftest.o` in
       *32-bit*)
        case $host in
@@ -6862,9 +7046,9 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
   SAVE_CFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS -belf"
-  { $as_echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
 $as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if test "${lt_cv_cc_needs_belf+set}" = set; then
+if ${lt_cv_cc_needs_belf+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_ext=c
@@ -6873,11 +7057,7 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-     cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -6888,38 +7068,13 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   lt_cv_cc_needs_belf=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       lt_cv_cc_needs_belf=no
+  lt_cv_cc_needs_belf=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
      ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -6927,7 +7082,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
 $as_echo "$lt_cv_cc_needs_belf" >&6; }
   if test x"$lt_cv_cc_needs_belf" != x"yes"; then
     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
@@ -6937,11 +7092,11 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; }
 sparc*-*solaris*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
     case `/usr/bin/file conftest.o` in
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
@@ -6959,7 +7114,124 @@ sparc*-*solaris*)
   ;;
 esac
 
-need_locks="$enable_libtool_lock"
+need_locks="$enable_libtool_lock"
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
+set dummy ${ac_tool_prefix}mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$MANIFEST_TOOL"; then
+  ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
+if test -n "$MANIFEST_TOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
+$as_echo "$MANIFEST_TOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
+  ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
+  # Extract the first word of "mt", so it can be a program name with args.
+set dummy mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_MANIFEST_TOOL"; then
+  ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
+if test -n "$ac_ct_MANIFEST_TOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_MANIFEST_TOOL" = x; then
+    MANIFEST_TOOL=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
+  fi
+else
+  MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
+fi
+
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
+if ${lt_cv_path_mainfest_tool+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_path_mainfest_tool=no
+  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
+  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+  cat conftest.err >&5
+  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+    lt_cv_path_mainfest_tool=yes
+  fi
+  rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
+$as_echo "$lt_cv_path_mainfest_tool" >&6; }
+if test "x$lt_cv_path_mainfest_tool" != xyes; then
+  MANIFEST_TOOL=:
+fi
+
+
+
+
 
 
   case $host_os in
@@ -6967,9 +7239,9 @@ need_locks="$enable_libtool_lock"
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
 set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DSYMUTIL+set}" = set; then
+if ${ac_cv_prog_DSYMUTIL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$DSYMUTIL"; then
@@ -6980,24 +7252,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 DSYMUTIL=$ac_cv_prog_DSYMUTIL
 if test -n "$DSYMUTIL"; then
-  { $as_echo "$as_me:$LINENO: result: $DSYMUTIL" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
 $as_echo "$DSYMUTIL" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7007,9 +7279,9 @@ if test -z "$ac_cv_prog_DSYMUTIL"; then
   ac_ct_DSYMUTIL=$DSYMUTIL
   # Extract the first word of "dsymutil", so it can be a program name with args.
 set dummy dsymutil; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then
+if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_DSYMUTIL"; then
@@ -7020,24 +7292,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
 if test -n "$ac_ct_DSYMUTIL"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
 $as_echo "$ac_ct_DSYMUTIL" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7046,7 +7318,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -7059,9 +7331,9 @@ fi
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
 set dummy ${ac_tool_prefix}nmedit; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_NMEDIT+set}" = set; then
+if ${ac_cv_prog_NMEDIT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$NMEDIT"; then
@@ -7072,24 +7344,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 NMEDIT=$ac_cv_prog_NMEDIT
 if test -n "$NMEDIT"; then
-  { $as_echo "$as_me:$LINENO: result: $NMEDIT" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
 $as_echo "$NMEDIT" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7099,9 +7371,9 @@ if test -z "$ac_cv_prog_NMEDIT"; then
   ac_ct_NMEDIT=$NMEDIT
   # Extract the first word of "nmedit", so it can be a program name with args.
 set dummy nmedit; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then
+if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_NMEDIT"; then
@@ -7112,24 +7384,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_NMEDIT="nmedit"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
 if test -n "$ac_ct_NMEDIT"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
 $as_echo "$ac_ct_NMEDIT" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7138,7 +7410,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -7151,9 +7423,9 @@ fi
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
 set dummy ${ac_tool_prefix}lipo; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_LIPO+set}" = set; then
+if ${ac_cv_prog_LIPO+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$LIPO"; then
@@ -7164,24 +7436,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 LIPO=$ac_cv_prog_LIPO
 if test -n "$LIPO"; then
-  { $as_echo "$as_me:$LINENO: result: $LIPO" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
 $as_echo "$LIPO" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7191,9 +7463,9 @@ if test -z "$ac_cv_prog_LIPO"; then
   ac_ct_LIPO=$LIPO
   # Extract the first word of "lipo", so it can be a program name with args.
 set dummy lipo; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then
+if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_LIPO"; then
@@ -7204,24 +7476,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_LIPO="lipo"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
 if test -n "$ac_ct_LIPO"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_LIPO" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
 $as_echo "$ac_ct_LIPO" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7230,7 +7502,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -7243,9 +7515,9 @@ fi
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
 set dummy ${ac_tool_prefix}otool; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OTOOL+set}" = set; then
+if ${ac_cv_prog_OTOOL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OTOOL"; then
@@ -7256,24 +7528,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 OTOOL=$ac_cv_prog_OTOOL
 if test -n "$OTOOL"; then
-  { $as_echo "$as_me:$LINENO: result: $OTOOL" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
 $as_echo "$OTOOL" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7283,9 +7555,9 @@ if test -z "$ac_cv_prog_OTOOL"; then
   ac_ct_OTOOL=$OTOOL
   # Extract the first word of "otool", so it can be a program name with args.
 set dummy otool; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then
+if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OTOOL"; then
@@ -7296,24 +7568,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_OTOOL="otool"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
 if test -n "$ac_ct_OTOOL"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
 $as_echo "$ac_ct_OTOOL" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7322,7 +7594,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -7335,9 +7607,9 @@ fi
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
 set dummy ${ac_tool_prefix}otool64; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OTOOL64+set}" = set; then
+if ${ac_cv_prog_OTOOL64+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OTOOL64"; then
@@ -7348,24 +7620,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 OTOOL64=$ac_cv_prog_OTOOL64
 if test -n "$OTOOL64"; then
-  { $as_echo "$as_me:$LINENO: result: $OTOOL64" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
 $as_echo "$OTOOL64" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7375,9 +7647,9 @@ if test -z "$ac_cv_prog_OTOOL64"; then
   ac_ct_OTOOL64=$OTOOL64
   # Extract the first word of "otool64", so it can be a program name with args.
 set dummy otool64; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then
+if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OTOOL64"; then
@@ -7388,24 +7660,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_OTOOL64="otool64"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
 if test -n "$ac_ct_OTOOL64"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL64" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
 $as_echo "$ac_ct_OTOOL64" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7414,7 +7686,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -7450,9 +7722,9 @@ fi
 
 
 
-    { $as_echo "$as_me:$LINENO: checking for -single_module linker flag" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
 $as_echo_n "checking for -single_module linker flag... " >&6; }
-if test "${lt_cv_apple_cc_single_mod+set}" = set; then
+if ${lt_cv_apple_cc_single_mod+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_apple_cc_single_mod=no
@@ -7477,22 +7749,18 @@ else
        rm -f conftest.*
       fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
 $as_echo "$lt_cv_apple_cc_single_mod" >&6; }
-    { $as_echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if test "${lt_cv_ld_exported_symbols_list+set}" = set; then
+if ${lt_cv_ld_exported_symbols_list+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_ld_exported_symbols_list=no
       save_LDFLAGS=$LDFLAGS
       echo "_main" > conftest.sym
       LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -7503,43 +7771,50 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   lt_cv_ld_exported_symbols_list=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       lt_cv_ld_exported_symbols_list=no
+  lt_cv_ld_exported_symbols_list=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
        LDFLAGS="$save_LDFLAGS"
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+$as_echo_n "checking for -force_load linker flag... " >&6; }
+if ${lt_cv_ld_force_load+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ld_force_load=no
+      cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
+      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+      echo "$AR cru libconftest.a conftest.o" >&5
+      $AR cru libconftest.a conftest.o 2>&5
+      echo "$RANLIB libconftest.a" >&5
+      $RANLIB libconftest.a 2>&5
+      cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
+      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+      _lt_result=$?
+      if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
+       lt_cv_ld_force_load=yes
+      else
+       cat conftest.err >&5
+      fi
+        rm -f conftest.err libconftest.a conftest conftest.c
+        rm -rf conftest.dSYM
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+$as_echo "$lt_cv_ld_force_load" >&6; }
     case $host_os in
     rhapsody* | darwin1.[012])
       _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
@@ -7567,7 +7842,7 @@ $as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
     else
       _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
     fi
-    if test "$DSYMUTIL" != ":"; then
+    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
       _lt_dsymutil='~$DSYMUTIL $lib || :'
     else
       _lt_dsymutil=
@@ -7580,14 +7855,14 @@ ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
 $as_echo_n "checking how to run the C preprocessor... " >&6; }
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
 fi
 if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then
+  if ${ac_cv_prog_CPP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
       # Double quotes because CPP needs to be expanded
@@ -7602,11 +7877,7 @@ do
   # <limits.h> exists even on freestanding compilers.
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #ifdef __STDC__
 # include <limits.h>
@@ -7615,78 +7886,34 @@ cat >>conftest.$ac_ext <<_ACEOF
 #endif
                     Syntax error
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_cpp "$LINENO"; then :
 
+else
   # Broken: fails on valid input.
 continue
 fi
-
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
+if ac_fn_c_try_cpp "$LINENO"; then :
   # Broken: success on invalid input.
 continue
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
   # Passes both tests.
 ac_preproc_ok=:
 break
 fi
-
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
   break
 fi
 
@@ -7698,7 +7925,7 @@ fi
 else
   ac_cv_prog_CPP=$CPP
 fi
-{ $as_echo "$as_me:$LINENO: result: $CPP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
 $as_echo "$CPP" >&6; }
 ac_preproc_ok=false
 for ac_c_preproc_warn_flag in '' yes
@@ -7709,11 +7936,7 @@ do
   # <limits.h> exists even on freestanding compilers.
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #ifdef __STDC__
 # include <limits.h>
@@ -7722,87 +7945,40 @@ cat >>conftest.$ac_ext <<_ACEOF
 #endif
                     Syntax error
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_cpp "$LINENO"; then :
 
+else
   # Broken: fails on valid input.
 continue
 fi
-
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
+if ac_fn_c_try_cpp "$LINENO"; then :
   # Broken: success on invalid input.
 continue
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
   # Passes both tests.
 ac_preproc_ok=:
 break
 fi
-
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
 else
-  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 
 ac_ext=c
@@ -7812,16 +7988,12 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
-{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
 $as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then
+if ${ac_cv_header_stdc+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdlib.h>
 #include <stdarg.h>
@@ -7836,48 +8008,23 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_header_stdc=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_header_stdc=no
+  ac_cv_header_stdc=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <string.h>
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then
-  :
+  $EGREP "memchr" >/dev/null 2>&1; then :
+
 else
   ac_cv_header_stdc=no
 fi
@@ -7887,18 +8034,14 @@ fi
 
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdlib.h>
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then
-  :
+  $EGREP "free" >/dev/null 2>&1; then :
+
 else
   ac_cv_header_stdc=no
 fi
@@ -7908,14 +8051,10 @@ fi
 
 if test $ac_cv_header_stdc = yes; then
   # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then
+  if test "$cross_compiling" = yes; then :
   :
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <ctype.h>
 #include <stdlib.h>
@@ -7942,118 +8081,33 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_run "$LINENO"; then :
 
-( exit $ac_status )
-ac_cv_header_stdc=no
+else
+  ac_cv_header_stdc=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
 fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
 $as_echo "$ac_cv_header_stdc" >&6; }
 if test $ac_cv_header_stdc = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
 
 fi
 
 # On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-
-
-
-
-
-
-
-
 for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
                  inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_ac_Header=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_Header=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -8063,62 +8117,13 @@ fi
 done
 
 
-
 for ac_header in dlfcn.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_ac_Header=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_Header=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_DLFCN_H 1
 _ACEOF
 
 fi
@@ -8127,6 +8132,8 @@ done
 
 
 
+
+
 # Set options
 
 
@@ -8138,7 +8145,7 @@ done
 
 
             # Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then
+if test "${enable_shared+set}" = set; then :
   enableval=$enable_shared; p=${PACKAGE-default}
     case $enableval in
     yes) enable_shared=yes ;;
@@ -8169,7 +8176,7 @@ fi
 
 
   # Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then
+if test "${enable_static+set}" = set; then :
   enableval=$enable_static; p=${PACKAGE-default}
     case $enableval in
     yes) enable_static=yes ;;
@@ -8201,7 +8208,7 @@ fi
 
 
 # Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then
+if test "${with_pic+set}" = set; then :
   withval=$with_pic; pic_mode="$withval"
 else
   pic_mode=default
@@ -8217,7 +8224,7 @@ test -z "$pic_mode" && pic_mode=default
 
 
   # Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then
+if test "${enable_fast_install+set}" = set; then :
   enableval=$enable_fast_install; p=${PACKAGE-default}
     case $enableval in
     yes) enable_fast_install=yes ;;
@@ -8277,6 +8284,7 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtool'
 
 
 
+
 
 
 test -z "$LN_S" && LN_S="ln -s"
@@ -8298,9 +8306,9 @@ if test -n "${ZSH_VERSION+set}" ; then
    setopt NO_GLOB_SUBST
 fi
 
-{ $as_echo "$as_me:$LINENO: checking for objdir" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
 $as_echo_n "checking for objdir... " >&6; }
-if test "${lt_cv_objdir+set}" = set; then
+if ${lt_cv_objdir+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   rm -f .libs 2>/dev/null
@@ -8313,7 +8321,7 @@ else
 fi
 rmdir .libs 2>/dev/null
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
 $as_echo "$lt_cv_objdir" >&6; }
 objdir=$lt_cv_objdir
 
@@ -8328,47 +8336,17 @@ _ACEOF
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
 case $host_os in
 aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
 
 # Global variables:
 ofile=libtool
@@ -8398,7 +8376,7 @@ for cc_temp in $compiler""; do
     *) break;;
   esac
 done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
 
 
 # Only perform the check for file, if the check method requires it
@@ -8406,9 +8384,9 @@ test -z "$MAGIC_CMD" && MAGIC_CMD=file
 case $deplibs_check_method in
 file_magic*)
   if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    { $as_echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $MAGIC_CMD in
@@ -8459,10 +8437,10 @@ fi
 
 MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
 if test -n "$MAGIC_CMD"; then
-  { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
 $as_echo "$MAGIC_CMD" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8472,9 +8450,9 @@ fi
 
 if test -z "$lt_cv_path_MAGIC_CMD"; then
   if test -n "$ac_tool_prefix"; then
-    { $as_echo "$as_me:$LINENO: checking for file" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
 $as_echo_n "checking for file... " >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $MAGIC_CMD in
@@ -8525,10 +8503,10 @@ fi
 
 MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
 if test -n "$MAGIC_CMD"; then
-  { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
 $as_echo "$MAGIC_CMD" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8603,11 +8581,16 @@ if test -n "$compiler"; then
 lt_prog_compiler_no_builtin_flag=
 
 if test "$GCC" = yes; then
-  lt_prog_compiler_no_builtin_flag=' -fno-builtin'
+  case $cc_basename in
+  nvcc*)
+    lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
+  *)
+    lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
+  esac
 
-  { $as_echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
+if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_rtti_exceptions=no
@@ -8623,15 +8606,15 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8626: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:8630: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_rtti_exceptions=yes
@@ -8640,7 +8623,7 @@ else
    $RM conftest*
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
 
 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
@@ -8660,8 +8643,6 @@ fi
 lt_prog_compiler_pic=
 lt_prog_compiler_static=
 
-{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 
   if test "$GCC" = yes; then
     lt_prog_compiler_wl='-Wl,'
@@ -8709,6 +8690,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       lt_prog_compiler_pic='-fno-common'
       ;;
 
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      lt_prog_compiler_static=
+      ;;
+
     hpux*)
       # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
       # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
@@ -8751,6 +8738,13 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       lt_prog_compiler_pic='-fPIC'
       ;;
     esac
+
+    case $cc_basename in
+    nvcc*) # Cuda Compiler Driver 2.2
+      lt_prog_compiler_wl='-Xlinker '
+      lt_prog_compiler_pic='-Xcompiler -fPIC'
+      ;;
+    esac
   else
     # PORTME Check for flag to pass linker flags through the system compiler.
     case $host_os in
@@ -8792,7 +8786,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       lt_prog_compiler_static='-non_shared'
       ;;
 
-    linux* | k*bsd*-gnu)
+    linux* | k*bsd*-gnu | kopensolaris*-gnu)
       case $cc_basename in
       # old Intel for x86_64 which still supported -KPIC.
       ecc*)
@@ -8813,7 +8807,13 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
        lt_prog_compiler_pic='--shared'
        lt_prog_compiler_static='--static'
        ;;
-      pgcc* | pgf77* | pgf90* | pgf95*)
+      nagfor*)
+       # NAG Fortran compiler
+       lt_prog_compiler_wl='-Wl,-Wl,,'
+       lt_prog_compiler_pic='-PIC'
+       lt_prog_compiler_static='-Bstatic'
+       ;;
+      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
         # Portland Group compilers (*not* the Pentium gcc compiler,
        # which looks to be a dead project)
        lt_prog_compiler_wl='-Wl,'
@@ -8825,25 +8825,25 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
         # All Alpha code is PIC.
         lt_prog_compiler_static='-non_shared'
         ;;
-      xl*)
-       # IBM XL C 8.0/Fortran 10.1 on PPC
+      xl* | bgxl* | bgf* | mpixl*)
+       # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
        lt_prog_compiler_wl='-Wl,'
        lt_prog_compiler_pic='-qpic'
        lt_prog_compiler_static='-qstaticlink'
        ;;
       *)
        case `$CC -V 2>&1 | sed 5q` in
-       *Sun\ C*)
-         # Sun C 5.9
+       *Sun\ F* | *Sun*Fortran*)
+         # Sun Fortran 8.3 passes all unrecognized flags to the linker
          lt_prog_compiler_pic='-KPIC'
          lt_prog_compiler_static='-Bstatic'
-         lt_prog_compiler_wl='-Wl,'
+         lt_prog_compiler_wl=''
          ;;
-       *Sun\ F*)
-         # Sun Fortran 8.3 passes all unrecognized flags to the linker
+       *Sun\ C*)
+         # Sun C 5.9
          lt_prog_compiler_pic='-KPIC'
          lt_prog_compiler_static='-Bstatic'
-         lt_prog_compiler_wl=''
+         lt_prog_compiler_wl='-Wl,'
          ;;
        esac
        ;;
@@ -8875,7 +8875,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       lt_prog_compiler_pic='-KPIC'
       lt_prog_compiler_static='-Bstatic'
       case $cc_basename in
-      f77* | f90* | f95*)
+      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
        lt_prog_compiler_wl='-Qoption ld ';;
       *)
        lt_prog_compiler_wl='-Wl,';;
@@ -8932,21 +8932,25 @@ case $host_os in
     lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
     ;;
 esac
-{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
-$as_echo "$lt_prog_compiler_pic" >&6; }
-
-
-
-
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+if ${lt_cv_prog_compiler_pic+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
+$as_echo "$lt_cv_prog_compiler_pic" >&6; }
+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
 
 #
 # Check to make sure the PIC flag actually works.
 #
 if test -n "$lt_prog_compiler_pic"; then
-  { $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if test "${lt_cv_prog_compiler_pic_works+set}" = set; then
+if ${lt_cv_prog_compiler_pic_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_pic_works=no
@@ -8962,15 +8966,15 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8965: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:8969: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_pic_works=yes
@@ -8979,7 +8983,7 @@ else
    $RM conftest*
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
 
 if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
@@ -8999,13 +9003,18 @@ fi
 
 
 
+
+
+
+
+
 #
 # Check to make sure the static flag actually works.
 #
 wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if test "${lt_cv_prog_compiler_static_works+set}" = set; then
+if ${lt_cv_prog_compiler_static_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_static_works=no
@@ -9018,7 +9027,7 @@ else
      if test -s conftest.err; then
        # Append any errors to the config.log.
        cat conftest.err 1>&5
-       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
          lt_cv_prog_compiler_static_works=yes
@@ -9031,7 +9040,7 @@ else
    LDFLAGS="$save_LDFLAGS"
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
 $as_echo "$lt_cv_prog_compiler_static_works" >&6; }
 
 if test x"$lt_cv_prog_compiler_static_works" = xyes; then
@@ -9046,9 +9055,9 @@ fi
 
 
 
-  { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then
+if ${lt_cv_prog_compiler_c_o+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o=no
@@ -9067,16 +9076,16 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9070: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:9074: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
      if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_c_o=yes
@@ -9093,7 +9102,7 @@ else
    $RM conftest*
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
 $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 
 
@@ -9101,9 +9110,9 @@ $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 
 
 
-  { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then
+if ${lt_cv_prog_compiler_c_o+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o=no
@@ -9122,16 +9131,16 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9125: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:9129: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
      if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_c_o=yes
@@ -9148,7 +9157,7 @@ else
    $RM conftest*
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
 $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 
 
@@ -9157,7 +9166,7 @@ $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 hard_links="nottested"
 if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
   # do not overwrite the value of need_locks provided by the user
-  { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
 $as_echo_n "checking if we can lock with hard links... " >&6; }
   hard_links=yes
   $RM conftest*
@@ -9165,10 +9174,10 @@ $as_echo_n "checking if we can lock with hard links... " >&6; }
   touch conftest.a
   ln conftest.a conftest.b 2>&5 || hard_links=no
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { $as_echo "$as_me:$LINENO: result: $hard_links" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
 $as_echo "$hard_links" >&6; }
   if test "$hard_links" = no; then
-    { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
     need_locks=warn
   fi
@@ -9181,7 +9190,7 @@ fi
 
 
 
-  { $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
 
   runpath_var=
@@ -9244,7 +9253,33 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
   esac
 
   ld_shlibs=yes
+
+  # On some targets, GNU ld is compatible enough with the native linker
+  # that we're better off using the native interface for both.
+  lt_use_gnu_ld_interface=no
   if test "$with_gnu_ld" = yes; then
+    case $host_os in
+      aix*)
+       # The AIX port of GNU ld has always aspired to compatibility
+       # with the native linker.  However, as the warning in the GNU ld
+       # block says, versions before 2.19.5* couldn't really create working
+       # shared libraries, regardless of the interface used.
+       case `$LD -v 2>&1` in
+         *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+         *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
+         *\ \(GNU\ Binutils\)\ [3-9]*) ;;
+         *)
+           lt_use_gnu_ld_interface=yes
+           ;;
+       esac
+       ;;
+      *)
+       lt_use_gnu_ld_interface=yes
+       ;;
+    esac
+  fi
+
+  if test "$lt_use_gnu_ld_interface" = yes; then
     # If archive_cmds runs LD, not CC, wlarc should be empty
     wlarc='${wl}'
 
@@ -9262,6 +9297,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
     fi
     supports_anon_versioning=no
     case `$LD -v 2>&1` in
+      *GNU\ gold*) supports_anon_versioning=yes ;;
       *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
       *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
       *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
@@ -9277,11 +9313,12 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
        ld_shlibs=no
        cat <<_LT_EOF 1>&2
 
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** Warning: the GNU linker, at least up to release 2.19, is reported
 *** to be unable to reliably create shared libraries on AIX.
 *** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
 
 _LT_EOF
       fi
@@ -9317,10 +9354,12 @@ _LT_EOF
       # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
       # as there is no search path for DLLs.
       hardcode_libdir_flag_spec='-L$libdir'
+      export_dynamic_flag_spec='${wl}--export-all-symbols'
       allow_undefined_flag=unsupported
       always_export_symbols=no
       enable_shared_with_static_runtimes=yes
-      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+      exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
 
       if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
         archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
@@ -9338,6 +9377,11 @@ _LT_EOF
       fi
       ;;
 
+    haiku*)
+      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      link_all_deplibs=yes
+      ;;
+
     interix[3-9]*)
       hardcode_direct=no
       hardcode_shlibpath_var=no
@@ -9353,7 +9397,7 @@ _LT_EOF
       archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
       ;;
 
-    gnu* | linux* | tpf* | k*bsd*-gnu)
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
       tmp_diet=no
       if test "$host_os" = linux-dietlibc; then
        case $cc_basename in
@@ -9363,15 +9407,16 @@ _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
         && test "$tmp_diet" = no
       then
-       tmp_addflag=
+       tmp_addflag=' $pic_flag'
        tmp_sharedflag='-shared'
        case $cc_basename,$host_cpu in
         pgcc*)                         # Portland Group C compiler
-         whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+         whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
          tmp_addflag=' $pic_flag'
          ;;
-       pgf77* | pgf90* | pgf95*)       # Portland Group f77 and f90 compilers
-         whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+       pgf77* | pgf90* | pgf95* | pgfortran*)
+                                       # Portland Group f77 and f90 compilers
+         whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
          tmp_addflag=' $pic_flag -Mnomain' ;;
        ecc*,ia64* | icc*,ia64*)        # Intel C compiler on ia64
          tmp_addflag=' -i_dynamic' ;;
@@ -9382,13 +9427,17 @@ _LT_EOF
        lf95*)                          # Lahey Fortran 8.1
          whole_archive_flag_spec=
          tmp_sharedflag='--shared' ;;
-       xl[cC]*)                        # IBM XL C 8.0 on PPC (deal with xlf below)
+       xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
          tmp_sharedflag='-qmkshrobj'
          tmp_addflag= ;;
+       nvcc*)  # Cuda Compiler Driver 2.2
+         whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         compiler_needs_object=yes
+         ;;
        esac
        case `$CC -V 2>&1 | sed 5q` in
        *Sun\ C*)                       # Sun C 5.9
-         whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+         whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
          compiler_needs_object=yes
          tmp_sharedflag='-G' ;;
        *Sun\ F*)                       # Sun Fortran 8.3
@@ -9404,17 +9453,17 @@ _LT_EOF
         fi
 
        case $cc_basename in
-       xlf*)
+       xlf* | bgf* | bgxlf* | mpixlf*)
          # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
          whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
          hardcode_libdir_flag_spec=
          hardcode_libdir_flag_spec_ld='-rpath $libdir'
-         archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+         archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
          if test "x$supports_anon_versioning" = xyes; then
            archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
              cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
              echo "local: *; };" >> $output_objdir/$libname.ver~
-             $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+             $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
          fi
          ;;
        esac
@@ -9428,8 +9477,8 @@ _LT_EOF
        archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
        wlarc=
       else
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       fi
       ;;
 
@@ -9447,8 +9496,8 @@ _LT_EOF
 
 _LT_EOF
       elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
        ld_shlibs=no
       fi
@@ -9494,8 +9543,8 @@ _LT_EOF
 
     *)
       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
        ld_shlibs=no
       fi
@@ -9535,8 +9584,10 @@ _LT_EOF
       else
        # If we're using GNU nm, then we don't want the "-C" option.
        # -C means demangle to AIX nm, but means don't demangle with GNU nm
+       # Also, AIX nm treats weak defined symbols like other global
+       # defined symbols, whereas GNU nm marks them as "W".
        if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-         export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+         export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
        else
          export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
        fi
@@ -9623,11 +9674,13 @@ _LT_EOF
        allow_undefined_flag='-berok'
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+        if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if ${lt_cv_aix_libpath_+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -9638,54 +9691,34 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
 
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-       /^0/ {
-           s/^0  *\(.*\)$/\1/
-           p
-       }
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+         /^0/ {
+             s/^0  *\([^ ]*\) *$/\1/
+             p
+         }
+      }'
+  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
 fi
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_="/usr/lib:/lib"
+  fi
 
 fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+  aix_libpath=$lt_cv_aix_libpath_
+fi
 
         hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
       else
        if test "$host_cpu" = ia64; then
          hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
@@ -9694,11 +9727,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
        else
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+        if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if ${lt_cv_aix_libpath_+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -9709,59 +9744,44 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
 
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-       /^0/ {
-           s/^0  *\(.*\)$/\1/
-           p
-       }
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+         /^0/ {
+             s/^0  *\([^ ]*\) *$/\1/
+             p
+         }
+      }'
+  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
 fi
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_="/usr/lib:/lib"
+  fi
 
 fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+  aix_libpath=$lt_cv_aix_libpath_
+fi
 
         hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
          # Warning - without using the other run time loading flags,
          # -berok will link without error, but may produce a broken library.
          no_undefined_flag=' ${wl}-bernotok'
          allow_undefined_flag=' ${wl}-berok'
-         # Exported symbols can be pulled into shared objects from archives
-         whole_archive_flag_spec='$convenience'
+         if test "$with_gnu_ld" = yes; then
+           # We only use this code for GNU lds that support --whole-archive.
+           whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+         else
+           # Exported symbols can be pulled into shared objects from archives
+           whole_archive_flag_spec='$convenience'
+         fi
          archive_cmds_need_lc=yes
          # This is similar to how AIX traditionally builds its shared libraries.
          archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
@@ -9793,20 +9813,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       # Microsoft Visual C++.
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
-      hardcode_libdir_flag_spec=' '
-      allow_undefined_flag=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      old_archive_from_new_cmds='true'
-      # FIXME: Should let the user specify the lib program.
-      old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      enable_shared_with_static_runtimes=yes
+      case $cc_basename in
+      cl*)
+       # Native MSVC
+       hardcode_libdir_flag_spec=' '
+       allow_undefined_flag=unsupported
+       always_export_symbols=yes
+       file_list_spec='@'
+       # Tell ltmain to make .lib files, not .a files.
+       libext=lib
+       # Tell ltmain to make .dll files, not .so files.
+       shrext_cmds=".dll"
+       # FIXME: Setting linknames here is a bad hack.
+       archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+       archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+           sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+         else
+           sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+         fi~
+         $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+         linknames='
+       # The linker will not automatically build a static lib if we build a DLL.
+       # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
+       enable_shared_with_static_runtimes=yes
+       export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+       # Don't use ranlib
+       old_postinstall_cmds='chmod 644 $oldlib'
+       postlink_cmds='lt_outputfile="@OUTPUT@"~
+         lt_tool_outputfile="@TOOL_OUTPUT@"~
+         case $lt_outputfile in
+           *.exe|*.EXE) ;;
+           *)
+             lt_outputfile="$lt_outputfile.exe"
+             lt_tool_outputfile="$lt_tool_outputfile.exe"
+             ;;
+         esac~
+         if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+           $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+           $RM "$lt_outputfile.manifest";
+         fi'
+       ;;
+      *)
+       # Assume MSVC wrapper
+       hardcode_libdir_flag_spec=' '
+       allow_undefined_flag=unsupported
+       # Tell ltmain to make .lib files, not .a files.
+       libext=lib
+       # Tell ltmain to make .dll files, not .so files.
+       shrext_cmds=".dll"
+       # FIXME: Setting linknames here is a bad hack.
+       archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+       # The linker will automatically build a .lib file if we build a DLL.
+       old_archive_from_new_cmds='true'
+       # FIXME: Should let the user specify the lib program.
+       old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+       enable_shared_with_static_runtimes=yes
+       ;;
+      esac
       ;;
 
     darwin* | rhapsody*)
@@ -9816,7 +9879,11 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
   hardcode_direct=no
   hardcode_automatic=yes
   hardcode_shlibpath_var=unsupported
-  whole_archive_flag_spec=''
+  if test "$lt_cv_ld_force_load" = "yes"; then
+    whole_archive_flag_spec='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+  else
+    whole_archive_flag_spec=''
+  fi
   link_all_deplibs=yes
   allow_undefined_flag="$_lt_dar_allow_undefined"
   case $cc_basename in
@@ -9824,7 +9891,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
      *) _lt_dar_can_shared=$GCC ;;
   esac
   if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=echo
+    output_verbose_link_cmd=func_echo_all
     archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
     module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
     archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
@@ -9867,7 +9934,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
     freebsd* | dragonfly*)
-      archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
       hardcode_libdir_flag_spec='-R$libdir'
       hardcode_direct=yes
       hardcode_shlibpath_var=no
@@ -9875,7 +9942,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
     hpux9*)
       if test "$GCC" = yes; then
-       archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+       archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       else
        archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       fi
@@ -9890,8 +9957,8 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       ;;
 
     hpux10*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-       archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+       archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
       else
        archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
       fi
@@ -9909,16 +9976,16 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       ;;
 
     hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
        case $host_cpu in
        hppa*64*)
          archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        ia64*)
-         archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+         archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
-         archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+         archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        esac
       else
@@ -9930,7 +9997,46 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
          archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
-         archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+
+         # Older versions of the 11.00 compiler do not understand -b yet
+         # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+         { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+$as_echo_n "checking if $CC understands -b... " >&6; }
+if ${lt_cv_prog_compiler__b+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler__b=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS -b"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_cv_prog_compiler__b=yes
+       fi
+     else
+       lt_cv_prog_compiler__b=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+$as_echo "$lt_cv_prog_compiler__b" >&6; }
+
+if test x"$lt_cv_prog_compiler__b" = xyes; then
+    archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+else
+    archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+fi
+
          ;;
        esac
       fi
@@ -9958,52 +10064,39 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
     irix5* | irix6* | nonstopux*)
       if test "$GCC" = yes; then
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
        # Try to use the -exported_symbol ld option, if it does not
        # work, assume that -exports_file does not work either and
        # implicitly export all symbols.
-        save_LDFLAGS="$LDFLAGS"
-        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-        cat >conftest.$ac_ext <<_ACEOF
-int foo(void) {}
+       # This should be the same for all languages, so no per-tag cache variable.
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
+if ${lt_cv_irix_exported_symbol+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  save_LDFLAGS="$LDFLAGS"
+          LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+int foo (void) { return 0; }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-
+if ac_fn_c_try_link "$LINENO"; then :
+  lt_cv_irix_exported_symbol=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
+  lt_cv_irix_exported_symbol=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-        LDFLAGS="$save_LDFLAGS"
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+           LDFLAGS="$save_LDFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+$as_echo "$lt_cv_irix_exported_symbol" >&6; }
+       if test "$lt_cv_irix_exported_symbol" = yes; then
+          archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+       fi
       else
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
       fi
       archive_cmds_need_lc='no'
       hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
@@ -10065,17 +10158,17 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       hardcode_libdir_flag_spec='-L$libdir'
       hardcode_minus_L=yes
       allow_undefined_flag=unsupported
-      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
       old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
       ;;
 
     osf3*)
       if test "$GCC" = yes; then
        allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
       else
        allow_undefined_flag=' -expect_unresolved \*'
-       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
       fi
       archive_cmds_need_lc='no'
       hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
@@ -10085,13 +10178,13 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
     osf4* | osf5*)     # as osf3* with the addition of -msym flag
       if test "$GCC" = yes; then
        allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
        hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
       else
        allow_undefined_flag=' -expect_unresolved \*'
-       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
        archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-       $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+       $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
 
        # Both c and cxx compiler support -rpath directly
        hardcode_libdir_flag_spec='-rpath $libdir'
@@ -10104,9 +10197,9 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       no_undefined_flag=' -z defs'
       if test "$GCC" = yes; then
        wlarc='${wl}'
-       archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+       archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
        archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-         $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+         $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
       else
        case `$CC -V 2>&1` in
        *"Compilers 5.0"*)
@@ -10255,7 +10348,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
     fi
   fi
 
-{ $as_echo "$as_me:$LINENO: result: $ld_shlibs" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
 $as_echo "$ld_shlibs" >&6; }
 test "$ld_shlibs" = no && can_build_shared=no
 
@@ -10292,46 +10385,52 @@ x|xyes)
       # Test whether the compiler implicitly links with -lc since on some
       # systems, -lgcc has to come before -lc. If gcc already passes -lc
       # to ld, don't add -lc before -lgcc.
-      { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-      $RM conftest*
-      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if ${lt_cv_archive_cmds_need_lc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  $RM conftest*
+       echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
-      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+       if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl
-       pic_flag=$lt_prog_compiler_pic
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag
-        allow_undefined_flag=
-        if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } 2>conftest.err; then
+         soname=conftest
+         lib=conftest
+         libobjs=conftest.$ac_objext
+         deplibs=
+         wl=$lt_prog_compiler_wl
+         pic_flag=$lt_prog_compiler_pic
+         compiler_flags=-v
+         linker_flags=-v
+         verstring=
+         output_objdir=.
+         libname=conftest
+         lt_save_allow_undefined_flag=$allow_undefined_flag
+         allow_undefined_flag=
+         if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
   (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-        then
-         archive_cmds_need_lc=no
-        else
-         archive_cmds_need_lc=yes
-        fi
-        allow_undefined_flag=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $RM conftest*
-      { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
-$as_echo "$archive_cmds_need_lc" >&6; }
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+         then
+           lt_cv_archive_cmds_need_lc=no
+         else
+           lt_cv_archive_cmds_need_lc=yes
+         fi
+         allow_undefined_flag=$lt_save_allow_undefined_flag
+       else
+         cat conftest.err 1>&5
+       fi
+       $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
+      archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
       ;;
     esac
   fi
@@ -10494,7 +10593,7 @@ esac
 
 
 
-  { $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
 $as_echo_n "checking dynamic linker characteristics... " >&6; }
 
 if test "$GCC" = yes; then
@@ -10502,16 +10601,23 @@ if test "$GCC" = yes; then
     darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
     *) lt_awk_arg="/^libraries:/" ;;
   esac
-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
+  case $host_os in
+    mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
+    *) lt_sed_strip_eq="s,=/,/,g" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+  case $lt_search_path_spec in
+  *\;*)
     # if the path contains ";" then we assume it to be the separator
     # otherwise default to the standard path separator (i.e. ":") - it is
     # assumed that no part of a normal pathname contains ";" but that should
     # okay in the real world where ";" in dirpaths is itself problematic.
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+    ;;
+  *)
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+    ;;
+  esac
   # Ok, now we have the path, separated by spaces, we can step through it
   # and add multilib dir if necessary.
   lt_tmp_lt_search_path_spec=
@@ -10524,7 +10630,7 @@ if test "$GCC" = yes; then
        lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
     fi
   done
-  lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
+  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
 BEGIN {RS=" "; FS="/|\n";} {
   lt_foo="";
   lt_count=0;
@@ -10544,7 +10650,13 @@ BEGIN {RS=" "; FS="/|\n";} {
   if (lt_foo != "") { lt_freq[lt_foo]++; }
   if (lt_freq[lt_foo] == 1) { print lt_foo; }
 }'`
-  sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
+  # AWK program above erroneously prepends '/' to C:/dos/paths
+  # for these hosts.
+  case $host_os in
+    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+      $SED 's,/\([A-Za-z]:\),\1,g'` ;;
+  esac
+  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
 else
   sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
 fi
@@ -10632,7 +10744,7 @@ amigaos*)
   m68k)
     library_names_spec='$libname.ixlibrary $libname.a'
     # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
     ;;
   esac
   ;;
@@ -10663,8 +10775,9 @@ cygwin* | mingw* | pw32* | cegcc*)
   need_version=no
   need_lib_prefix=no
 
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+  case $GCC,$cc_basename in
+  yes,*)
+    # gcc
     library_names_spec='$libname.dll.a'
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
     postinstall_cmds='base_file=`basename \${file}`~
@@ -10685,36 +10798,83 @@ cygwin* | mingw* | pw32* | cegcc*)
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
       soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+
+      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
       ;;
     mingw* | cegcc*)
       # MinGW DLLs use traditional 'lib' prefix
       soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
       library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
       ;;
     esac
+    dynamic_linker='Win32 ld.exe'
+    ;;
+
+  *,cl*)
+    # Native MSVC
+    libname_spec='$name'
+    soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+    library_names_spec='${libname}.dll.lib'
+
+    case $build_os in
+    mingw*)
+      sys_lib_search_path_spec=
+      lt_save_ifs=$IFS
+      IFS=';'
+      for lt_path in $LIB
+      do
+        IFS=$lt_save_ifs
+        # Let DOS variable expansion print the short 8.3 style file name.
+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+      done
+      IFS=$lt_save_ifs
+      # Convert to MSYS style.
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+      ;;
+    cygwin*)
+      # Convert to unix form, then to dos form, then back to unix form
+      # but this time dos style (no spaces!) so that the unix form looks
+      # like /cygdrive/c/PROGRA~1:/cygdr...
+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      ;;
+    *)
+      sys_lib_search_path_spec="$LIB"
+      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      # FIXME: find the short name or the path components, as spaces are
+      # common. (e.g. "Program Files" -> "PROGRA~1")
+      ;;
+    esac
+
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+    dynamic_linker='Win32 link.exe'
     ;;
 
   *)
+    # Assume MSVC wrapper
     library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    dynamic_linker='Win32 ld.exe'
     ;;
   esac
-  dynamic_linker='Win32 ld.exe'
   # FIXME: first we should search . and the directory the executable is in
   shlibpath_var=PATH
   ;;
@@ -10801,6 +10961,19 @@ gnu*)
   hardcode_into_libs=yes
   ;;
 
+haiku*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+  hardcode_into_libs=yes
+  ;;
+
 hpux9* | hpux10* | hpux11*)
   # Give a soname corresponding to the major version so that dld.sl refuses to
   # link against other versions.
@@ -10843,8 +11016,10 @@ hpux9* | hpux10* | hpux11*)
     soname_spec='${libname}${release}${shared_ext}$major'
     ;;
   esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
   postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
   ;;
 
 interix[3-9]*)
@@ -10902,7 +11077,7 @@ linux*oldld* | linux*aout* | linux*coff*)
   ;;
 
 # This must be Linux ELF.
-linux* | k*bsd*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
   version_type=linux
   need_lib_prefix=no
   need_version=no
@@ -10911,16 +11086,17 @@ linux* | k*bsd*-gnu)
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
+
   # Some binutils ld are patched to set DT_RUNPATH
-  save_LDFLAGS=$LDFLAGS
-  save_libdir=$libdir
-  eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
-       LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+        LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -10931,43 +11107,19 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
-  shlibpath_overrides_runpath=yes
+if ac_fn_c_try_link "$LINENO"; then :
+  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+  lt_cv_shlibpath_overrides_runpath=yes
 fi
-
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
 
 fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-  LDFLAGS=$save_LDFLAGS
-  libdir=$save_libdir
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
 
   # This implies no fast_install, which is unacceptable.
   # Some rework will be needed to allow for fast_install
@@ -10979,8 +11131,9 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[      ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[      ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
     sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
+
   fi
 
   # We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -11180,7 +11333,7 @@ uts4*)
   dynamic_linker=no
   ;;
 esac
-{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
 $as_echo "$dynamic_linker" >&6; }
 test "$dynamic_linker" = no && can_build_shared=no
 
 
 
 
-  { $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
 $as_echo_n "checking how to hardcode library paths into programs... " >&6; }
 hardcode_action=
 if test -n "$hardcode_libdir_flag_spec" ||
@@ -11307,7 +11465,7 @@ else
   # directories.
   hardcode_action=unsupported
 fi
-{ $as_echo "$as_me:$LINENO: result: $hardcode_action" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
 $as_echo "$hardcode_action" >&6; }
 
 if test "$hardcode_action" = relink ||
@@ -11352,18 +11510,14 @@ else
 
   darwin*)
   # if libdl is installed we need to link against it
-    { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+if ${ac_cv_lib_dl_dlopen+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -11381,43 +11535,18 @@ return dlopen ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_dl_dlopen=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dl_dlopen=no
+  ac_cv_lib_dl_dlopen=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 else
 
     ;;
 
   *)
-    { $as_echo "$as_me:$LINENO: checking for shl_load" >&5
-$as_echo_n "checking for shl_load... " >&6; }
-if test "${ac_cv_func_shl_load+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define shl_load innocuous_shl_load
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char shl_load (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef shl_load
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_shl_load || defined __stub___shl_load
-choke me
-#endif
-
-int
-main ()
-{
-return shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_shl_load=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_shl_load=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-$as_echo "$ac_cv_func_shl_load" >&6; }
-if test "x$ac_cv_func_shl_load" = x""yes; then
+    ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = xyes; then :
   lt_cv_dlopen="shl_load"
 else
-  { $as_echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
 $as_echo_n "checking for shl_load in -ldld... " >&6; }
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+if ${ac_cv_lib_dld_shl_load+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -11547,145 +11588,32 @@ return shl_load ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_dld_shl_load=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dld_shl_load=no
+  ac_cv_lib_dld_shl_load=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
 $as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = x""yes; then
+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
   lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
 else
-  { $as_echo "$as_me:$LINENO: checking for dlopen" >&5
-$as_echo_n "checking for dlopen... " >&6; }
-if test "${ac_cv_func_dlopen+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define dlopen innocuous_dlopen
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dlopen (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef dlopen
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_dlopen || defined __stub___dlopen
-choke me
-#endif
-
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_dlopen=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_dlopen=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-$as_echo "$ac_cv_func_dlopen" >&6; }
-if test "x$ac_cv_func_dlopen" = x""yes; then
+  ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = xyes; then :
   lt_cv_dlopen="dlopen"
 else
-  { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+if ${ac_cv_lib_dl_dlopen+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -11703,57 +11631,28 @@ return dlopen ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_dl_dlopen=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dl_dlopen=no
+  ac_cv_lib_dl_dlopen=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 else
-  { $as_echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
 $as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then
+if ${ac_cv_lib_svld_dlopen+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lsvld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -11771,57 +11670,28 @@ return dlopen ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_svld_dlopen=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_svld_dlopen=no
+  ac_cv_lib_svld_dlopen=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
 $as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = x""yes; then
+if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
 else
-  { $as_echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
 $as_echo_n "checking for dld_link in -ldld... " >&6; }
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then
+if ${ac_cv_lib_dld_dld_link+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -11839,43 +11709,18 @@ return dld_link ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_dld_dld_link=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dld_dld_link=no
+  ac_cv_lib_dld_dld_link=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
 $as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = x""yes; then
+if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
   lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
 fi
 
@@ -11914,9 +11759,9 @@ fi
     save_LIBS="$LIBS"
     LIBS="$lt_cv_dlopen_libs $LIBS"
 
-    { $as_echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
 $as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if test "${lt_cv_dlopen_self+set}" = set; then
+if ${lt_cv_dlopen_self+:} false; then :
   $as_echo_n "(cached) " >&6
 else
          if test "$cross_compiling" = yes; then :
@@ -11925,7 +11770,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11928 "configure"
+#line $LINENO "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11966,7 +11811,13 @@ else
 #  endif
 #endif
 
-void fnord() { int i=42;}
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
 int main ()
 {
   void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
@@ -11975,7 +11826,11 @@ int main ()
   if (self)
     {
       if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      else
+        {
+         if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+       }
       /* dlclose (self); */
     }
   else
@@ -11984,11 +11839,11 @@ int main ()
   return status;
 }
 _LT_EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
     (./conftest; exit; ) >&5 2>/dev/null
     lt_status=$?
     case x$lt_status in
@@ -12005,14 +11860,14 @@ rm -fr conftest*
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
 $as_echo "$lt_cv_dlopen_self" >&6; }
 
     if test "x$lt_cv_dlopen_self" = xyes; then
       wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-      { $as_echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if test "${lt_cv_dlopen_self_static+set}" = set; then
+if ${lt_cv_dlopen_self_static+:} false; then :
   $as_echo_n "(cached) " >&6
 else
          if test "$cross_compiling" = yes; then :
@@ -12021,7 +11876,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12024 "configure"
+#line $LINENO "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12062,7 +11917,13 @@ else
 #  endif
 #endif
 
-void fnord() { int i=42;}
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
 int main ()
 {
   void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
@@ -12071,7 +11932,11 @@ int main ()
   if (self)
     {
       if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      else
+        {
+         if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+       }
       /* dlclose (self); */
     }
   else
@@ -12080,11 +11945,11 @@ int main ()
   return status;
 }
 _LT_EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
     (./conftest; exit; ) >&5 2>/dev/null
     lt_status=$?
     case x$lt_status in
@@ -12101,7 +11966,7 @@ rm -fr conftest*
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
 $as_echo "$lt_cv_dlopen_self_static" >&6; }
     fi
 
 
 striplib=
 old_striplib=
-{ $as_echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
 $as_echo_n "checking whether stripping libraries is possible... " >&6; }
 if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
   test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
   test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { $as_echo "$as_me:$LINENO: result: yes" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 else
 # FIXME - insert some real tests, host_os isn't really good enough
@@ -12154,15 +12019,15 @@ else
     if test -n "$STRIP" ; then
       striplib="$STRIP -x"
       old_striplib="$STRIP -S"
-      { $as_echo "$as_me:$LINENO: result: yes" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
     else
-      { $as_echo "$as_me:$LINENO: result: no" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
     fi
     ;;
   *)
-    { $as_echo "$as_me:$LINENO: result: no" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
     ;;
   esac
 
 
   # Report which library types will actually be built
-  { $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
 $as_echo_n "checking if libtool supports shared libraries... " >&6; }
-  { $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
 $as_echo "$can_build_shared" >&6; }
 
-  { $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
 $as_echo_n "checking whether to build shared libraries... " >&6; }
   test "$can_build_shared" = "no" && enable_shared=no
 
@@ -12206,14 +12071,14 @@ $as_echo_n "checking whether to build shared libraries... " >&6; }
     fi
     ;;
   esac
-  { $as_echo "$as_me:$LINENO: result: $enable_shared" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
 $as_echo "$enable_shared" >&6; }
 
-  { $as_echo "$as_me:$LINENO: checking whether to build static libraries" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
 $as_echo_n "checking whether to build static libraries... " >&6; }
   # Make sure either enable_shared or enable_static is yes.
   test "$enable_shared" = yes || enable_static=yes
-  { $as_echo "$as_me:$LINENO: result: $enable_static" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
 $as_echo "$enable_static" >&6; }
 
 
@@ -12249,902 +12114,610 @@ CC="$lt_save_CC"
 
 
 
-{ $as_echo "$as_me:$LINENO: checking for library containing strerror" >&5
-$as_echo_n "checking for library containing strerror... " >&6; }
-if test "${ac_cv_search_strerror+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char strerror ();
-int
-main ()
-{
-return strerror ();
-  ;
-  return 0;
-}
-_ACEOF
-for ac_lib in '' cposix; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
+gdu_cv_version_required=0.3.2
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking gnome-doc-utils >= $gdu_cv_version_required" >&5
+$as_echo_n "checking gnome-doc-utils >= $gdu_cv_version_required... " >&6; }
+if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnome-doc-utils >= \$gdu_cv_version_required\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gnome-doc-utils >= $gdu_cv_version_required") 2>&5
   ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_search_strerror=$ac_res
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  gdu_cv_have_gdu=yes
+else
+  gdu_cv_have_gdu=no
+fi
+
+if test "$gdu_cv_have_gdu" = "yes"; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       :
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       as_fn_error $? "gnome-doc-utils >= $gdu_cv_version_required not found" "$LINENO" 5
+fi
 
 
+
+# Check whether --with-help-dir was given.
+if test "${with_help_dir+set}" = set; then :
+  withval=$with_help_dir;
+else
+  with_help_dir='${datadir}/gnome/help'
 fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_strerror+set}" = set; then
-  break
+HELP_DIR="$with_help_dir"
+
+
+
+# Check whether --with-omf-dir was given.
+if test "${with_omf_dir+set}" = set; then :
+  withval=$with_omf_dir;
+else
+  with_omf_dir='${datadir}/omf'
 fi
-done
-if test "${ac_cv_search_strerror+set}" = set; then
-  :
+
+OMF_DIR="$with_omf_dir"
+
+
+
+# Check whether --with-help-formats was given.
+if test "${with_help_formats+set}" = set; then :
+  withval=$with_help_formats;
 else
-  ac_cv_search_strerror=no
+  with_help_formats=''
 fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
+
+DOC_USER_FORMATS="$with_help_formats"
+
+
+# Check whether --enable-scrollkeeper was given.
+if test "${enable_scrollkeeper+set}" = set; then :
+  enableval=$enable_scrollkeeper;
+else
+  enable_scrollkeeper=yes
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5
-$as_echo "$ac_cv_search_strerror" >&6; }
-ac_res=$ac_cv_search_strerror
-if test "$ac_res" != no; then
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
+ if test "$gdu_cv_have_gdu" = "yes" -a "$enable_scrollkeeper" = "yes"; then
+  ENABLE_SK_TRUE=
+  ENABLE_SK_FALSE='#'
+else
+  ENABLE_SK_TRUE='#'
+  ENABLE_SK_FALSE=
 fi
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+
+DISTCHECK_CONFIGURE_FLAGS="--disable-scrollkeeper $DISTCHECK_CONFIGURE_FLAGS"
+
+
+ if test "$gdu_cv_have_gdu" = "yes"; then
+  HAVE_GNOME_DOC_UTILS_TRUE=
+  HAVE_GNOME_DOC_UTILS_FALSE='#'
+else
+  HAVE_GNOME_DOC_UTILS_TRUE='#'
+  HAVE_GNOME_DOC_UTILS_FALSE=
+fi
+
+
+
+
+
+    # Extract the first word of "gtkdoc-check", so it can be a program name with args.
+set dummy gtkdoc-check; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if ${ac_cv_path_GTKDOC_CHECK+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+  case $GTKDOC_CHECK in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    ac_cv_path_GTKDOC_CHECK="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
+  ;;
+esac
 fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
-$as_echo "$CC" >&6; }
+GTKDOC_CHECK=$ac_cv_path_GTKDOC_CHECK
+if test -n "$GTKDOC_CHECK"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5
+$as_echo "$GTKDOC_CHECK" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+  for ac_prog in gtkdoc-rebase
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+if ${ac_cv_path_GTKDOC_REBASE+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+  case $GTKDOC_REBASE in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GTKDOC_REBASE="$GTKDOC_REBASE" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    ac_cv_path_GTKDOC_REBASE="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
+  ;;
+esac
 fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+GTKDOC_REBASE=$ac_cv_path_GTKDOC_REBASE
+if test -n "$GTKDOC_REBASE"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_REBASE" >&5
+$as_echo "$GTKDOC_REBASE" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-else
-  CC="$ac_cv_prog_CC"
-fi
 
-if test -z "$CC"; then
-          if test -n "$ac_tool_prefix"; then
-    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+  test -n "$GTKDOC_REBASE" && break
+done
+test -n "$GTKDOC_REBASE" || GTKDOC_REBASE="true"
+
+  # Extract the first word of "gtkdoc-mkpdf", so it can be a program name with args.
+set dummy gtkdoc-mkpdf; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if ${ac_cv_path_GTKDOC_MKPDF+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+  case $GTKDOC_MKPDF in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GTKDOC_MKPDF="$GTKDOC_MKPDF" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    ac_cv_path_GTKDOC_MKPDF="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
+  ;;
+esac
 fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
-$as_echo "$CC" >&6; }
+GTKDOC_MKPDF=$ac_cv_path_GTKDOC_MKPDF
+if test -n "$GTKDOC_MKPDF"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_MKPDF" >&5
+$as_echo "$GTKDOC_MKPDF" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
-  fi
+
+
+# Check whether --with-html-dir was given.
+if test "${with_html_dir+set}" = set; then :
+  withval=$with_html_dir;
+else
+  with_html_dir='${datadir}/gtk-doc/html'
 fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  $as_echo_n "(cached) " >&6
+
+  HTML_DIR="$with_html_dir"
+
+
+    # Check whether --enable-gtk-doc was given.
+if test "${enable_gtk_doc+set}" = set; then :
+  enableval=$enable_gtk_doc;
 else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
+  enable_gtk_doc=no
+fi
+
+
+  if test x$enable_gtk_doc = xyes; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-doc >= 1.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk-doc >= 1.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  :
 else
-  ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
+  as_fn_error $? "You need to have gtk-doc >= 1.0 installed to build $PACKAGE_NAME" "$LINENO" 5
+fi
   fi
-done
-done
-IFS=$as_save_IFS
 
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build gtk-doc documentation" >&5
+$as_echo_n "checking whether to build gtk-doc documentation... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gtk_doc" >&5
+$as_echo "$enable_gtk_doc" >&6; }
+
+    # Check whether --enable-gtk-doc-html was given.
+if test "${enable_gtk_doc_html+set}" = set; then :
+  enableval=$enable_gtk_doc_html;
+else
+  enable_gtk_doc_html=yes
+fi
+
+    # Check whether --enable-gtk-doc-pdf was given.
+if test "${enable_gtk_doc_pdf+set}" = set; then :
+  enableval=$enable_gtk_doc_pdf;
+else
+  enable_gtk_doc_pdf=no
+fi
+
+
+  if test -z "$GTKDOC_MKPDF"; then
+    enable_gtk_doc_pdf=no
   fi
+
+
+   if test x$enable_gtk_doc = xyes; then
+  ENABLE_GTK_DOC_TRUE=
+  ENABLE_GTK_DOC_FALSE='#'
+else
+  ENABLE_GTK_DOC_TRUE='#'
+  ENABLE_GTK_DOC_FALSE=
+fi
+
+   if test x$enable_gtk_doc_html = xyes; then
+  GTK_DOC_BUILD_HTML_TRUE=
+  GTK_DOC_BUILD_HTML_FALSE='#'
+else
+  GTK_DOC_BUILD_HTML_TRUE='#'
+  GTK_DOC_BUILD_HTML_FALSE=
 fi
+
+   if test x$enable_gtk_doc_pdf = xyes; then
+  GTK_DOC_BUILD_PDF_TRUE=
+  GTK_DOC_BUILD_PDF_FALSE='#'
+else
+  GTK_DOC_BUILD_PDF_TRUE='#'
+  GTK_DOC_BUILD_PDF_FALSE=
 fi
+
+   if test -n "$LIBTOOL"; then
+  GTK_DOC_USE_LIBTOOL_TRUE=
+  GTK_DOC_USE_LIBTOOL_FALSE='#'
+else
+  GTK_DOC_USE_LIBTOOL_TRUE='#'
+  GTK_DOC_USE_LIBTOOL_FALSE=
 fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
-$as_echo "$CC" >&6; }
+
+   if test -n "$GTKDOC_REBASE"; then
+  GTK_DOC_USE_REBASE_TRUE=
+  GTK_DOC_USE_REBASE_FALSE='#'
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
+  GTK_DOC_USE_REBASE_TRUE='#'
+  GTK_DOC_USE_REBASE_FALSE=
 fi
 
 
+
+
+
+  # Check whether --enable-schemas-compile was given.
+if test "${enable_schemas_compile+set}" = set; then :
+  enableval=$enable_schemas_compile; case ${enableval} in
+                  yes) GSETTINGS_DISABLE_SCHEMAS_COMPILE=""  ;;
+                  no)  GSETTINGS_DISABLE_SCHEMAS_COMPILE="1" ;;
+                  *) as_fn_error $? "bad value ${enableval} for --enable-schemas-compile" "$LINENO" 5 ;;
+                 esac
 fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl.exe
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+
+
+
+
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+       if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
+  ;;
+esac
 fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
-$as_echo "$CC" >&6; }
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
-    test -n "$CC" && break
-  done
 fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl.exe
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
+  ;;
+esac
 fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
-
-  test -n "$ac_ct_CC" && break
-done
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG=""
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
-    CC=$ac_ct_CC
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
   fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:$LINENO: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-
-{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_compiler_gnu=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_compiler_gnu=no
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GCC=yes
-else
-  GCC=
+if test -n "$PKG_CONFIG"; then
+       _pkg_min_version=0.16
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+       if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       else
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+               PKG_CONFIG=""
+       fi
 fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_c_werror_flag=$ac_c_werror_flag
-   ac_c_werror_flag=yes
-   ac_cv_prog_cc_g=no
-   CFLAGS="-g"
-   cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_g=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       CFLAGS=""
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_c_werror_flag=$ac_save_c_werror_flag
-        CFLAGS="-g"
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
+  gsettingsschemadir=${datadir}/glib-2.0/schemas
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_g=yes
+  if test x$cross_compiling != xyes; then
+    GLIB_COMPILE_SCHEMAS=`$PKG_CONFIG --variable glib_compile_schemas gio-2.0`
+  else
+    # Extract the first word of "glib-compile-schemas", so it can be a program name with args.
+set dummy glib-compile-schemas; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GLIB_COMPILE_SCHEMAS+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
+  case $GLIB_COMPILE_SCHEMAS in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GLIB_COMPILE_SCHEMAS="$GLIB_COMPILE_SCHEMAS" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_GLIB_COMPILE_SCHEMAS="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
+  ;;
+esac
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+GLIB_COMPILE_SCHEMAS=$ac_cv_path_GLIB_COMPILE_SCHEMAS
+if test -n "$GLIB_COMPILE_SCHEMAS"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_COMPILE_SCHEMAS" >&5
+$as_echo "$GLIB_COMPILE_SCHEMAS" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
   fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
+
+  if test "x$GLIB_COMPILE_SCHEMAS" = "x"; then
+    as_fn_error $? "glib-compile-schemas not found." "$LINENO" 5
   else
-    CFLAGS=
+    :
   fi
-fi
-{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
 
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+  GSETTINGS_RULES='
+.PHONY : uninstall-gsettings-schemas install-gsettings-schemas clean-gsettings-schemas
 
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+mostlyclean-am: clean-gsettings-schemas
 
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-       -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_c89=$ac_arg
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+gsettings__enum_file = $(addsuffix .enums.xml,$(gsettings_ENUM_NAMESPACE))
 
+%.gschema.valid: %.gschema.xml $(gsettings__enum_file)
+       $(AM_V_GEN) if test -f "$<"; then d=; else d="$(srcdir)/"; fi; $(GLIB_COMPILE_SCHEMAS) --strict --dry-run $(addprefix --schema-file=,$(gsettings__enum_file)) --schema-file=$${d}$< && touch $@
 
-fi
+all-am: $(gsettings_SCHEMAS:.xml=.valid)
+uninstall-am: uninstall-gsettings-schemas
+install-data-am: install-gsettings-schemas
 
-rm -f core conftest.err conftest.$ac_objext
-  test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
+.SECONDARY: $(gsettings_SCHEMAS)
 
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
-  x)
-    { $as_echo "$as_me:$LINENO: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
-  xno)
-    { $as_echo "$as_me:$LINENO: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
+install-gsettings-schemas: $(gsettings_SCHEMAS) $(gsettings__enum_file)
+       @$(NORMAL_INSTALL)
+       if test -n "$^"; then \
+               test -z "$(gsettingsschemadir)" || $(MKDIR_P) "$(DESTDIR)$(gsettingsschemadir)"; \
+               $(INSTALL_DATA) $^ "$(DESTDIR)$(gsettingsschemadir)"; \
+               test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir); \
+       fi
 
+uninstall-gsettings-schemas:
+       @$(NORMAL_UNINSTALL)
+       @list='\''$(gsettings_SCHEMAS) $(gsettings__enum_file)'\''; test -n "$(gsettingsschemadir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e '\''s|^.*/||'\''`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '\''$(DESTDIR)$(gsettingsschemadir)'\'' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(gsettingsschemadir)" && rm -f $$files
+       test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir)
+
+clean-gsettings-schemas:
+       rm -f $(gsettings_SCHEMAS:.xml=.valid) $(gsettings__enum_file)
+
+ifdef gsettings_ENUM_NAMESPACE
+$(gsettings__enum_file): $(gsettings_ENUM_FILES)
+       $(AM_V_GEN) glib-mkenums --comments '\''<!-- @comment@ -->'\'' --fhead "<schemalist>" --vhead "  <@type@ id='\''$(gsettings_ENUM_NAMESPACE).@EnumName@'\''>" --vprod "    <value nick='\''@valuenick@'\'' value='\''@valuenum@'\''/>" --vtail "  </@type@>" --ftail "</schemalist>" $^ > $@.tmp && mv $@.tmp $@
+endif
+'
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-depcc="$CC"   am_compiler_list=
 
-{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
 
-  am_cv_CC_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
-  fi
-  am__universal=false
-  case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac
 
-  for depmode in $am_compiler_list; do
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
-    case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
-    nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
-      if test "x$enable_dependency_tracking" = xyes; then
-       continue
-      else
-       break
-      fi
-      ;;
-    msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
-    none) break ;;
-    esac
-    if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_CC_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
 
-  cd ..
-  rm -rf conftest.dir
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5
+$as_echo_n "checking for library containing strerror... " >&6; }
+if ${ac_cv_search_strerror+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  am_cv_CC_dependencies_compiler_type=none
-fi
+  ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char strerror ();
+int
+main ()
+{
+return strerror ();
+  ;
+  return 0;
+}
+_ACEOF
+for ac_lib in '' cposix; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+  fi
+  if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_search_strerror=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if ${ac_cv_search_strerror+:} false; then :
+  break
 fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+done
+if ${ac_cv_search_strerror+:} false; then :
 
- if
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
-  am__fastdepCC_TRUE=
-  am__fastdepCC_FALSE='#'
 else
-  am__fastdepCC_TRUE='#'
-  am__fastdepCC_FALSE=
+  ac_cv_search_strerror=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5
+$as_echo "$ac_cv_search_strerror" >&6; }
+ac_res=$ac_cv_search_strerror
+if test "$ac_res" != no; then :
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
+fi
 
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -13154,9 +12727,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -13167,24 +12740,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -13194,9 +12767,9 @@ if test -z "$ac_cv_prog_CC"; then
   ac_ct_CC=$CC
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -13207,24 +12780,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
 $as_echo "$ac_ct_CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -13233,7 +12806,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -13247,9 +12820,9 @@ if test -z "$CC"; then
           if test -n "$ac_tool_prefix"; then
     # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -13260,24 +12833,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -13287,9 +12860,9 @@ fi
 if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -13301,18 +12874,18 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
      fi
     ac_cv_prog_CC="cc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 if test $ac_prog_rejected = yes; then
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -13346,9 +12919,9 @@ if test -z "$CC"; then
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -13359,24 +12932,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -13390,9 +12963,9 @@ if test -z "$CC"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -13403,24 +12976,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
 $as_echo "$ac_ct_CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -13433,7 +13006,7 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
 fi
 
 
-test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
 
 # Provide some information about the compiler.
-$as_echo "$as_me:$LINENO: checking for C compiler version" >&5
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
 set X $ac_compile
 ac_compiler=$2
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
 
-{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
+if ${ac_cv_c_compiler_gnu+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -13513,37 +13066,16 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_compiler_gnu=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_compiler_gnu=no
+  ac_compiler_gnu=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
 $as_echo "$ac_cv_c_compiler_gnu" >&6; }
 if test $ac_compiler_gnu = yes; then
   GCC=yes
@@ -13552,20 +13084,16 @@ else
 fi
 ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
 $as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then
+if ${ac_cv_prog_cc_g+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_save_c_werror_flag=$ac_c_werror_flag
    ac_c_werror_flag=yes
    ac_cv_prog_cc_g=no
    CFLAGS="-g"
-   cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -13576,35 +13104,11 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_g=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       CFLAGS=""
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  CFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -13615,36 +13119,12 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_compile "$LINENO"; then :
 
-       ac_c_werror_flag=$ac_save_c_werror_flag
+else
+  ac_c_werror_flag=$ac_save_c_werror_flag
         CFLAGS="-g"
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -13655,42 +13135,17 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_g=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    ac_c_werror_flag=$ac_save_c_werror_flag
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
 $as_echo "$ac_cv_prog_cc_g" >&6; }
 if test "$ac_test_CFLAGS" = set; then
   CFLAGS=$ac_save_CFLAGS
@@ -13707,18 +13162,14 @@ else
     CFLAGS=
   fi
 fi
-{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then
+if ${ac_cv_prog_cc_c89+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c89=no
 ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdarg.h>
 #include <stdio.h>
@@ -13775,32 +13226,9 @@ for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
        -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
-  rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+  if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_c89=$ac_arg
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext
   test "x$ac_cv_prog_cc_c89" != "xno" && break
 done
 # AC_CACHE_VAL
 case "x$ac_cv_prog_cc_c89" in
   x)
-    { $as_echo "$as_me:$LINENO: result: none needed" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
 $as_echo "none needed" >&6; } ;;
   xno)
-    { $as_echo "$as_me:$LINENO: result: unsupported" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
 $as_echo "unsupported" >&6; } ;;
   *)
     CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
 esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
 
+fi
 
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -13831,9 +13261,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 depcc="$CC"   am_compiler_list=
 
-{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
 $as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@@ -13878,270 +13308,90 @@ else
       # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
       # Solaris 8's {/usr,}/bin/sh.
       touch sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
-    case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
-    nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
-      if test "x$enable_dependency_tracking" = xyes; then
-       continue
-      else
-       break
-      fi
-      ;;
-    msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
-    none) break ;;
-    esac
-    if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_CC_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
- if
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
-  am__fastdepCC_TRUE=
-  am__fastdepCC_FALSE='#'
-else
-  am__fastdepCC_TRUE='#'
-  am__fastdepCC_FALSE=
-fi
-
-
-
-am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc
-
-{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_header_stdc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_header_stdc=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then
-  :
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then
-  :
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
+    case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+       continue
+      else
+       break
+      fi
+      ;;
+    msvisualcpp | msvcmsys)
+      # This compiler won't grok `-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
+    none) break ;;
+    esac
+    if depmode=$depmode \
+       source=sub/conftest.c object=$am__obj \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CC_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
 else
-  ac_cv_header_stdc=no
+  am_cv_CC_dependencies_compiler_type=none
 fi
-rm -f conftest*
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
 
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-                  (('a' <= (c) && (c) <= 'i') \
-                    || ('j' <= (c) && (c) <= 'r') \
-                    || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-       || toupper (i) != TOUPPER (i))
-      return 2;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
+ if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+  am__fastdepCC_TRUE=
+  am__fastdepCC_FALSE='#'
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
+  am__fastdepCC_TRUE='#'
+  am__fastdepCC_FALSE=
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
 
-fi
 
 
 
 
     # Check whether --enable-compile-warnings was given.
-if test "${enable_compile_warnings+set}" = set; then
+if test "${enable_compile_warnings+set}" = set; then :
   enableval=$enable_compile_warnings;
 else
   enable_compile_warnings="yes"
        for option in -Wno-sign-compare; do
                SAVE_CFLAGS="$CFLAGS"
                CFLAGS="$CFLAGS $option"
-               { $as_echo "$as_me:$LINENO: checking whether gcc understands $option" >&5
+               { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc understands $option" >&5
 $as_echo_n "checking whether gcc understands $option... " >&6; }
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -14189,35 +13435,14 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   has_option=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       has_option=no
+  has_option=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
                CFLAGS="$SAVE_CFLAGS"
-               { $as_echo "$as_me:$LINENO: result: $has_option" >&5
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_option" >&5
 $as_echo "$has_option" >&6; }
                if test $has_option = yes; then
                  warning_flags="$warning_flags $option"
@@ -14231,26 +13456,24 @@ $as_echo "$has_option" >&6; }
        fi
        ;;
     *)
-       { { $as_echo "$as_me:$LINENO: error: Unknown argument '$enable_compile_warnings' to --enable-compile-warnings" >&5
-$as_echo "$as_me: error: Unknown argument '$enable_compile_warnings' to --enable-compile-warnings" >&2;}
-   { (exit 1); exit 1; }; }
+       as_fn_error $? "Unknown argument '$enable_compile_warnings' to --enable-compile-warnings" "$LINENO" 5
        ;;
     esac
     CFLAGS="$realsave_CFLAGS"
-    { $as_echo "$as_me:$LINENO: checking what warning flags to pass to the C compiler" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking what warning flags to pass to the C compiler" >&5
 $as_echo_n "checking what warning flags to pass to the C compiler... " >&6; }
-    { $as_echo "$as_me:$LINENO: result: $warning_flags" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $warning_flags" >&5
 $as_echo "$warning_flags" >&6; }
 
     # Check whether --enable-iso-c was given.
-if test "${enable_iso_c+set}" = set; then
+if test "${enable_iso_c+set}" = set; then :
   enableval=$enable_iso_c;
 else
   enable_iso_c=no
 fi
 
 
-    { $as_echo "$as_me:$LINENO: checking what language compliance flags to pass to the C compiler" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking what language compliance flags to pass to the C compiler" >&5
 $as_echo_n "checking what language compliance flags to pass to the C compiler... " >&6; }
     complCFLAGS=
     if test "x$enable_iso_c" != "xno"; then
@@ -14265,7 +13488,7 @@ $as_echo_n "checking what language compliance flags to pass to the C compiler...
        esac
        fi
     fi
-    { $as_echo "$as_me:$LINENO: result: $complCFLAGS" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $complCFLAGS" >&5
 $as_echo "$complCFLAGS" >&6; }
 
     WARN_CFLAGS="$warning_flags $complCFLAGS"
@@ -14274,9 +13497,9 @@ $as_echo "$complCFLAGS" >&6; }
 
 # Extract the first word of "glib-genmarshal", so it can be a program name with args.
 set dummy glib-genmarshal; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_GLIB_GENMARSHAL+set}" = set; then
+if ${ac_cv_path_GLIB_GENMARSHAL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $GLIB_GENMARSHAL in
@@ -14289,14 +13512,14 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_GLIB_GENMARSHAL="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   ;;
@@ -14304,67 +13527,24 @@ esac
 fi
 GLIB_GENMARSHAL=$ac_cv_path_GLIB_GENMARSHAL
 if test -n "$GLIB_GENMARSHAL"; then
-  { $as_echo "$as_me:$LINENO: result: $GLIB_GENMARSHAL" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_GENMARSHAL" >&5
 $as_echo "$GLIB_GENMARSHAL" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
-
-
-
-# Check whether --with-html-dir was given.
-if test "${with_html_dir+set}" = set; then
-  withval=$with_html_dir;
-else
-  with_html_dir='${datadir}/gtk-doc/html'
-fi
-
-  HTML_DIR="$with_html_dir"
-
-
-    # Check whether --enable-gtk-doc was given.
-if test "${enable_gtk_doc+set}" = set; then
-  enableval=$enable_gtk_doc;
-else
-  enable_gtk_doc=no
-fi
-
-
-  if test x$enable_gtk_doc = xyes; then
-    if test -n "$PKG_CONFIG" && \
-    { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk-doc >= 1.0\"") >&5
-  ($PKG_CONFIG --exists --print-errors "gtk-doc >= 1.0") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  :
-else
-  { { $as_echo "$as_me:$LINENO: error: You need to have gtk-doc >= 1.0 installed to build gtk-doc" >&5
-$as_echo "$as_me: error: You need to have gtk-doc >= 1.0 installed to build gtk-doc" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-  fi
-
-  { $as_echo "$as_me:$LINENO: checking whether to build gtk-doc documentation" >&5
-$as_echo_n "checking whether to build gtk-doc documentation... " >&6; }
-  { $as_echo "$as_me:$LINENO: result: $enable_gtk_doc" >&5
-$as_echo "$enable_gtk_doc" >&6; }
-
-  for ac_prog in gtkdoc-check
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+# Extract the first word of "gdk-pixbuf-csource", so it can be a program name with args.
+set dummy gdk-pixbuf-csource; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_GTKDOC_CHECK+set}" = set; then
+if ${ac_cv_path_GDK_PIXBUF_CSOURCE+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  case $GTKDOC_CHECK in
+  case $GDK_PIXBUF_CSOURCE in
   [\\/]* | ?:[\\/]*)
-  ac_cv_path_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test with a path.
+  ac_cv_path_GDK_PIXBUF_CSOURCE="$GDK_PIXBUF_CSOURCE" # Let the user override the test with a path.
   ;;
   *)
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -14372,201 +13552,149 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_GTKDOC_CHECK="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    ac_cv_path_GDK_PIXBUF_CSOURCE="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   ;;
 esac
 fi
-GTKDOC_CHECK=$ac_cv_path_GTKDOC_CHECK
-if test -n "$GTKDOC_CHECK"; then
-  { $as_echo "$as_me:$LINENO: result: $GTKDOC_CHECK" >&5
-$as_echo "$GTKDOC_CHECK" >&6; }
+GDK_PIXBUF_CSOURCE=$ac_cv_path_GDK_PIXBUF_CSOURCE
+if test -n "$GDK_PIXBUF_CSOURCE"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GDK_PIXBUF_CSOURCE" >&5
+$as_echo "$GDK_PIXBUF_CSOURCE" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
-  test -n "$GTKDOC_CHECK" && break
+# Extract the first word of "gtk-update-icon-cache", so it can be a program name with args.
+set dummy gtk-update-icon-cache; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GTK_UPDATE_ICON_CACHE+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $GTK_UPDATE_ICON_CACHE in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GTK_UPDATE_ICON_CACHE="$GTK_UPDATE_ICON_CACHE" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_GTK_UPDATE_ICON_CACHE="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
 done
+  done
+IFS=$as_save_IFS
 
-
-   if test x$enable_gtk_doc = xyes; then
-  ENABLE_GTK_DOC_TRUE=
-  ENABLE_GTK_DOC_FALSE='#'
-else
-  ENABLE_GTK_DOC_TRUE='#'
-  ENABLE_GTK_DOC_FALSE=
+  ;;
+esac
 fi
-
-   if test -n "$LIBTOOL"; then
-  GTK_DOC_USE_LIBTOOL_TRUE=
-  GTK_DOC_USE_LIBTOOL_FALSE='#'
+GTK_UPDATE_ICON_CACHE=$ac_cv_path_GTK_UPDATE_ICON_CACHE
+if test -n "$GTK_UPDATE_ICON_CACHE"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_UPDATE_ICON_CACHE" >&5
+$as_echo "$GTK_UPDATE_ICON_CACHE" >&6; }
 else
-  GTK_DOC_USE_LIBTOOL_TRUE='#'
-  GTK_DOC_USE_LIBTOOL_FALSE=
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
 
-LIBGLABELS_C=6
-LIBGLABELS_R=2
-LIBGLABELS_A=1
 
-LIBGLABELS_VERSION_INFO=${LIBGLABELS_C}:${LIBGLABELS_R}:${LIBGLABELS_A}
+GLABELS_BRANCH=glabels-3.0
 
 
+LIBGLABELS_BRANCH=libglabels-3.0
 
-GLIB_REQUIRED=2.12.0
-GTK_REQUIRED=2.10.0
-LIBGNOME_REQUIRED=2.16.0
-LIBGNOMEUI_REQUIRED=2.16.0
-LIBXML_REQUIRED=2.6.0
-LIBGLADE_REQUIRED=2.6.0
-LIBEBOOK_REQUIRED=1.8.0
 
+LIBGLBARCODE_BRANCH=libglbarcode-3.0
 
 
+LIBGLABELS_C=8
+LIBGLABELS_R=0
+LIBGLABELS_A=0
 
+LIBGLABELS_API_VERSION=${LIBGLABELS_C}:${LIBGLABELS_R}:${LIBGLABELS_A}
 
 
+LIBGLBARCODE_C=0
+LIBGLBARCODE_R=0
+LIBGLBARCODE_A=0
 
+LIBGLBARCODE_API_VERSION=${LIBGLBARCODE_C}:${LIBGLBARCODE_R}:${LIBGLBARCODE_A}
+
+
+GLIB_REQUIRED=2.28.2
+GTK_REQUIRED=3.0.9
+LIBXML_REQUIRED=2.7.8
+LIBRSVG_REQUIRED=2.32.0
+CAIRO_REQUIRED=1.10.0
+PANGO_REQUIRED=1.28.1
+
+LIBEBOOK_REQUIRED=2.30.3
+LIBBARCODE_REQUIRED=0.98
+LIBQRENCODE_REQUIRED=3.1.0
+LIBIEC16022_REQUIRED=0.2.4
+LIBZINT_REQUIRED=2.4.0
 
 
 
 
-# Check whether --with-libebook was given.
-if test "${with_libebook+set}" = set; then
-  withval=$with_libebook;
-fi
-
-have_libebook=no
-if test "x$with_libebook" != xno; then
-
-pkg_failed=no
-{ $as_echo "$as_me:$LINENO: checking for LIBEBOOK" >&5
-$as_echo_n "checking for LIBEBOOK... " >&6; }
-
-if test -n "$LIBEBOOK_CFLAGS"; then
-    pkg_cv_LIBEBOOK_CFLAGS="$LIBEBOOK_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libebook-1.2 >= \$LIBEBOOK_REQUIRED\"") >&5
-  ($PKG_CONFIG --exists --print-errors "libebook-1.2 >= $LIBEBOOK_REQUIRED") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  pkg_cv_LIBEBOOK_CFLAGS=`$PKG_CONFIG --cflags "libebook-1.2 >= $LIBEBOOK_REQUIRED" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
- else
-    pkg_failed=untried
-fi
-if test -n "$LIBEBOOK_LIBS"; then
-    pkg_cv_LIBEBOOK_LIBS="$LIBEBOOK_LIBS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libebook-1.2 >= \$LIBEBOOK_REQUIRED\"") >&5
-  ($PKG_CONFIG --exists --print-errors "libebook-1.2 >= $LIBEBOOK_REQUIRED") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  pkg_cv_LIBEBOOK_LIBS=`$PKG_CONFIG --libs "libebook-1.2 >= $LIBEBOOK_REQUIRED" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
- else
-    pkg_failed=untried
-fi
 
 
 
-if test $pkg_failed = yes; then
 
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
-        _pkg_short_errors_supported=yes
-else
-        _pkg_short_errors_supported=no
-fi
-        if test $_pkg_short_errors_supported = yes; then
-               LIBEBOOK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libebook-1.2 >= $LIBEBOOK_REQUIRED" 2>&1`
-        else
-               LIBEBOOK_PKG_ERRORS=`$PKG_CONFIG --print-errors "libebook-1.2 >= $LIBEBOOK_REQUIRED" 2>&1`
-        fi
-       # Put the nasty error message in config.log where it belongs
-       echo "$LIBEBOOK_PKG_ERRORS" >&5
 
-       { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-                have_libebook=no
-elif test $pkg_failed = untried; then
-       have_libebook=no
-else
-       LIBEBOOK_CFLAGS=$pkg_cv_LIBEBOOK_CFLAGS
-       LIBEBOOK_LIBS=$pkg_cv_LIBEBOOK_LIBS
-        { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-       have_libebook=yes
-fi
-fi
 
-if test "x$have_libebook" = "xyes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LIBEBOOK 1
-_ACEOF
 
-       OPTIONAL_MODULES="$OPTIONAL_MODULES libebook-1.2 >= $LIBEBOOK_REQUIRED"
-fi
 
 
 
 pkg_failed=no
-{ $as_echo "$as_me:$LINENO: checking for GLABELS" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLABELS" >&5
 $as_echo_n "checking for GLABELS... " >&6; }
 
 if test -n "$GLABELS_CFLAGS"; then
     pkg_cv_GLABELS_CFLAGS="$GLABELS_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\\
-glib-2.0 >= \$GLIB_REQUIRED \\
-gtk+-2.0 >= \$GTK_REQUIRED \\
-libgnome-2.0 >= \$LIBGNOME_REQUIRED \\
-libgnomeui-2.0 >= \$LIBGNOMEUI_REQUIRED \\
-libxml-2.0 >= \$LIBXML_REQUIRED \\
-libglade-2.0 >= \$LIBGLADE_REQUIRED \\
-\$OPTIONAL_MODULES \\
-\"") >&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\\
+       glib-2.0 >= \$GLIB_REQUIRED \\
+       gtk+-3.0 >= \$GTK_REQUIRED \\
+       libxml-2.0 >= \$LIBXML_REQUIRED \\
+       librsvg-2.0 >= \$LIBRSVG_REQUIRED \\
+\""; } >&5
   ($PKG_CONFIG --exists --print-errors "\
-glib-2.0 >= $GLIB_REQUIRED \
-gtk+-2.0 >= $GTK_REQUIRED \
-libgnome-2.0 >= $LIBGNOME_REQUIRED \
-libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \
-libxml-2.0 >= $LIBXML_REQUIRED \
-libglade-2.0 >= $LIBGLADE_REQUIRED \
-$OPTIONAL_MODULES \
+       glib-2.0 >= $GLIB_REQUIRED \
+       gtk+-3.0 >= $GTK_REQUIRED \
+       libxml-2.0 >= $LIBXML_REQUIRED \
+       librsvg-2.0 >= $LIBRSVG_REQUIRED \
 ") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
   pkg_cv_GLABELS_CFLAGS=`$PKG_CONFIG --cflags "\
-glib-2.0 >= $GLIB_REQUIRED \
-gtk+-2.0 >= $GTK_REQUIRED \
-libgnome-2.0 >= $LIBGNOME_REQUIRED \
-libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \
-libxml-2.0 >= $LIBXML_REQUIRED \
-libglade-2.0 >= $LIBGLADE_REQUIRED \
-$OPTIONAL_MODULES \
+       glib-2.0 >= $GLIB_REQUIRED \
+       gtk+-3.0 >= $GTK_REQUIRED \
+       libxml-2.0 >= $LIBXML_REQUIRED \
+       librsvg-2.0 >= $LIBRSVG_REQUIRED \
 " 2>/dev/null`
 else
   pkg_failed=yes
@@ -14578,35 +13706,26 @@ if test -n "$GLABELS_LIBS"; then
     pkg_cv_GLABELS_LIBS="$GLABELS_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\\
-glib-2.0 >= \$GLIB_REQUIRED \\
-gtk+-2.0 >= \$GTK_REQUIRED \\
-libgnome-2.0 >= \$LIBGNOME_REQUIRED \\
-libgnomeui-2.0 >= \$LIBGNOMEUI_REQUIRED \\
-libxml-2.0 >= \$LIBXML_REQUIRED \\
-libglade-2.0 >= \$LIBGLADE_REQUIRED \\
-\$OPTIONAL_MODULES \\
-\"") >&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\\
+       glib-2.0 >= \$GLIB_REQUIRED \\
+       gtk+-3.0 >= \$GTK_REQUIRED \\
+       libxml-2.0 >= \$LIBXML_REQUIRED \\
+       librsvg-2.0 >= \$LIBRSVG_REQUIRED \\
+\""; } >&5
   ($PKG_CONFIG --exists --print-errors "\
-glib-2.0 >= $GLIB_REQUIRED \
-gtk+-2.0 >= $GTK_REQUIRED \
-libgnome-2.0 >= $LIBGNOME_REQUIRED \
-libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \
-libxml-2.0 >= $LIBXML_REQUIRED \
-libglade-2.0 >= $LIBGLADE_REQUIRED \
-$OPTIONAL_MODULES \
+       glib-2.0 >= $GLIB_REQUIRED \
+       gtk+-3.0 >= $GTK_REQUIRED \
+       libxml-2.0 >= $LIBXML_REQUIRED \
+       librsvg-2.0 >= $LIBRSVG_REQUIRED \
 ") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
   pkg_cv_GLABELS_LIBS=`$PKG_CONFIG --libs "\
-glib-2.0 >= $GLIB_REQUIRED \
-gtk+-2.0 >= $GTK_REQUIRED \
-libgnome-2.0 >= $LIBGNOME_REQUIRED \
-libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \
-libxml-2.0 >= $LIBXML_REQUIRED \
-libglade-2.0 >= $LIBGLADE_REQUIRED \
-$OPTIONAL_MODULES \
+       glib-2.0 >= $GLIB_REQUIRED \
+       gtk+-3.0 >= $GTK_REQUIRED \
+       libxml-2.0 >= $LIBXML_REQUIRED \
+       librsvg-2.0 >= $LIBRSVG_REQUIRED \
 " 2>/dev/null`
 else
   pkg_failed=yes
@@ -14618,6 +13737,8 @@ fi
 
 
 if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
         _pkg_short_errors_supported=yes
@@ -14626,36 +13747,27 @@ else
 fi
         if test $_pkg_short_errors_supported = yes; then
                GLABELS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "\
-glib-2.0 >= $GLIB_REQUIRED \
-gtk+-2.0 >= $GTK_REQUIRED \
-libgnome-2.0 >= $LIBGNOME_REQUIRED \
-libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \
-libxml-2.0 >= $LIBXML_REQUIRED \
-libglade-2.0 >= $LIBGLADE_REQUIRED \
-$OPTIONAL_MODULES \
+       glib-2.0 >= $GLIB_REQUIRED \
+       gtk+-3.0 >= $GTK_REQUIRED \
+       libxml-2.0 >= $LIBXML_REQUIRED \
+       librsvg-2.0 >= $LIBRSVG_REQUIRED \
 " 2>&1`
         else
                GLABELS_PKG_ERRORS=`$PKG_CONFIG --print-errors "\
-glib-2.0 >= $GLIB_REQUIRED \
-gtk+-2.0 >= $GTK_REQUIRED \
-libgnome-2.0 >= $LIBGNOME_REQUIRED \
-libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \
-libxml-2.0 >= $LIBXML_REQUIRED \
-libglade-2.0 >= $LIBGLADE_REQUIRED \
-$OPTIONAL_MODULES \
+       glib-2.0 >= $GLIB_REQUIRED \
+       gtk+-3.0 >= $GTK_REQUIRED \
+       libxml-2.0 >= $LIBXML_REQUIRED \
+       librsvg-2.0 >= $LIBRSVG_REQUIRED \
 " 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
        echo "$GLABELS_PKG_ERRORS" >&5
 
-       { { $as_echo "$as_me:$LINENO: error: Package requirements (\
-glib-2.0 >= $GLIB_REQUIRED \
-gtk+-2.0 >= $GTK_REQUIRED \
-libgnome-2.0 >= $LIBGNOME_REQUIRED \
-libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \
-libxml-2.0 >= $LIBXML_REQUIRED \
-libglade-2.0 >= $LIBGLADE_REQUIRED \
-$OPTIONAL_MODULES \
+       as_fn_error $? "Package requirements (\
+       glib-2.0 >= $GLIB_REQUIRED \
+       gtk+-3.0 >= $GTK_REQUIRED \
+       libxml-2.0 >= $LIBXML_REQUIRED \
+       librsvg-2.0 >= $LIBRSVG_REQUIRED \
 ) were not met:
 
 $GLABELS_PKG_ERRORS
@@ -14665,32 +13777,14 @@ installed software in a non-standard prefix.
 
 Alternatively, you may set the environment variables GLABELS_CFLAGS
 and GLABELS_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&5
-$as_echo "$as_me: error: Package requirements (\
-glib-2.0 >= $GLIB_REQUIRED \
-gtk+-2.0 >= $GTK_REQUIRED \
-libgnome-2.0 >= $LIBGNOME_REQUIRED \
-libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \
-libxml-2.0 >= $LIBXML_REQUIRED \
-libglade-2.0 >= $LIBGLADE_REQUIRED \
-$OPTIONAL_MODULES \
-) were not met:
+See the pkg-config man page for more details." "$LINENO" 5
 
-$GLABELS_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables GLABELS_CFLAGS
-and GLABELS_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&2;}
-   { (exit 1); exit 1; }; }
 elif test $pkg_failed = untried; then
-       { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old.  Make sure it
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
 is in your PATH or set the PKG_CONFIG environment variable to the full
 path to pkg-config.
 
@@ -14699,24 +13793,14 @@ and GLABELS_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details.
 
 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: The pkg-config script could not be found or is too old.  Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables GLABELS_CFLAGS
-and GLABELS_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
+See \`config.log' for more details" "$LINENO" 5; }
 
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
 else
        GLABELS_CFLAGS=$pkg_cv_GLABELS_CFLAGS
        GLABELS_LIBS=$pkg_cv_GLABELS_LIBS
-        { $as_echo "$as_me:$LINENO: result: yes" >&5
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-       :
+
 fi
 
 
 
 
 pkg_failed=no
-{ $as_echo "$as_me:$LINENO: checking for LIBGLABELS" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBGLABELS" >&5
 $as_echo_n "checking for LIBGLABELS... " >&6; }
 
 if test -n "$LIBGLABELS_CFLAGS"; then
     pkg_cv_LIBGLABELS_CFLAGS="$LIBGLABELS_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\\
-glib-2.0 >= \$GLIB_REQUIRED \\
-libxml-2.0 >= \$LIBXML_REQUIRED \\
-\"") >&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\\
+       glib-2.0 >= \$GLIB_REQUIRED \\
+       libxml-2.0 >= \$LIBXML_REQUIRED \\
+\""; } >&5
   ($PKG_CONFIG --exists --print-errors "\
-glib-2.0 >= $GLIB_REQUIRED \
-libxml-2.0 >= $LIBXML_REQUIRED \
+       glib-2.0 >= $GLIB_REQUIRED \
+       libxml-2.0 >= $LIBXML_REQUIRED \
 ") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
   pkg_cv_LIBGLABELS_CFLAGS=`$PKG_CONFIG --cflags "\
-glib-2.0 >= $GLIB_REQUIRED \
-libxml-2.0 >= $LIBXML_REQUIRED \
+       glib-2.0 >= $GLIB_REQUIRED \
+       libxml-2.0 >= $LIBXML_REQUIRED \
 " 2>/dev/null`
 else
   pkg_failed=yes
@@ -14757,20 +13841,20 @@ if test -n "$LIBGLABELS_LIBS"; then
     pkg_cv_LIBGLABELS_LIBS="$LIBGLABELS_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\\
-glib-2.0 >= \$GLIB_REQUIRED \\
-libxml-2.0 >= \$LIBXML_REQUIRED \\
-\"") >&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\\
+       glib-2.0 >= \$GLIB_REQUIRED \\
+       libxml-2.0 >= \$LIBXML_REQUIRED \\
+\""; } >&5
   ($PKG_CONFIG --exists --print-errors "\
-glib-2.0 >= $GLIB_REQUIRED \
-libxml-2.0 >= $LIBXML_REQUIRED \
+       glib-2.0 >= $GLIB_REQUIRED \
+       libxml-2.0 >= $LIBXML_REQUIRED \
 ") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
   pkg_cv_LIBGLABELS_LIBS=`$PKG_CONFIG --libs "\
-glib-2.0 >= $GLIB_REQUIRED \
-libxml-2.0 >= $LIBXML_REQUIRED \
+       glib-2.0 >= $GLIB_REQUIRED \
+       libxml-2.0 >= $LIBXML_REQUIRED \
 " 2>/dev/null`
 else
   pkg_failed=yes
@@ -14782,6 +13866,8 @@ fi
 
 
 if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
         _pkg_short_errors_supported=yes
@@ -14790,21 +13876,21 @@ else
 fi
         if test $_pkg_short_errors_supported = yes; then
                LIBGLABELS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "\
-glib-2.0 >= $GLIB_REQUIRED \
-libxml-2.0 >= $LIBXML_REQUIRED \
+       glib-2.0 >= $GLIB_REQUIRED \
+       libxml-2.0 >= $LIBXML_REQUIRED \
 " 2>&1`
         else
                LIBGLABELS_PKG_ERRORS=`$PKG_CONFIG --print-errors "\
-glib-2.0 >= $GLIB_REQUIRED \
-libxml-2.0 >= $LIBXML_REQUIRED \
+       glib-2.0 >= $GLIB_REQUIRED \
+       libxml-2.0 >= $LIBXML_REQUIRED \
 " 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
        echo "$LIBGLABELS_PKG_ERRORS" >&5
 
-       { { $as_echo "$as_me:$LINENO: error: Package requirements (\
-glib-2.0 >= $GLIB_REQUIRED \
-libxml-2.0 >= $LIBXML_REQUIRED \
+       as_fn_error $? "Package requirements (\
+       glib-2.0 >= $GLIB_REQUIRED \
+       libxml-2.0 >= $LIBXML_REQUIRED \
 ) were not met:
 
 $LIBGLABELS_PKG_ERRORS
@@ -14814,27 +13900,14 @@ installed software in a non-standard prefix.
 
 Alternatively, you may set the environment variables LIBGLABELS_CFLAGS
 and LIBGLABELS_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&5
-$as_echo "$as_me: error: Package requirements (\
-glib-2.0 >= $GLIB_REQUIRED \
-libxml-2.0 >= $LIBXML_REQUIRED \
-) were not met:
-
-$LIBGLABELS_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
+See the pkg-config man page for more details." "$LINENO" 5
 
-Alternatively, you may set the environment variables LIBGLABELS_CFLAGS
-and LIBGLABELS_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&2;}
-   { (exit 1); exit 1; }; }
 elif test $pkg_failed = untried; then
-       { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old.  Make sure it
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
 is in your PATH or set the PKG_CONFIG environment variable to the full
 path to pkg-config.
 
@@ -14843,24 +13916,14 @@ and LIBGLABELS_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details.
 
 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: The pkg-config script could not be found or is too old.  Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
+See \`config.log' for more details" "$LINENO" 5; }
 
-Alternatively, you may set the environment variables LIBGLABELS_CFLAGS
-and LIBGLABELS_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
 else
        LIBGLABELS_CFLAGS=$pkg_cv_LIBGLABELS_CFLAGS
        LIBGLABELS_LIBS=$pkg_cv_LIBGLABELS_LIBS
-        { $as_echo "$as_me:$LINENO: result: yes" >&5
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-       :
+
 fi
 
 
 
 
 pkg_failed=no
-{ $as_echo "$as_me:$LINENO: checking for MYGAL" >&5
-$as_echo_n "checking for MYGAL... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBGLBARCODE" >&5
+$as_echo_n "checking for LIBGLBARCODE... " >&6; }
 
-if test -n "$MYGAL_CFLAGS"; then
-    pkg_cv_MYGAL_CFLAGS="$MYGAL_CFLAGS"
+if test -n "$LIBGLBARCODE_CFLAGS"; then
+    pkg_cv_LIBGLBARCODE_CFLAGS="$LIBGLBARCODE_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\\
-gtk+-2.0 >= \$GTK_REQUIRED \\
-libgnomeui-2.0 >= \$LIBGNOMEUI_REQUIRED \\
-\"") >&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\\
+       glib-2.0 >= \$GLIB_REQUIRED \\
+       cairo >= \$CAIRO_REQUIRED \\
+       pango >= \$PANGO_REQUIRED \\
+\""; } >&5
   ($PKG_CONFIG --exists --print-errors "\
-gtk+-2.0 >= $GTK_REQUIRED \
-libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \
+       glib-2.0 >= $GLIB_REQUIRED \
+       cairo >= $CAIRO_REQUIRED \
+       pango >= $PANGO_REQUIRED \
 ") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  pkg_cv_MYGAL_CFLAGS=`$PKG_CONFIG --cflags "\
-gtk+-2.0 >= $GTK_REQUIRED \
-libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LIBGLBARCODE_CFLAGS=`$PKG_CONFIG --cflags "\
+       glib-2.0 >= $GLIB_REQUIRED \
+       cairo >= $CAIRO_REQUIRED \
+       pango >= $PANGO_REQUIRED \
 " 2>/dev/null`
 else
   pkg_failed=yes
  else
     pkg_failed=untried
 fi
-if test -n "$MYGAL_LIBS"; then
-    pkg_cv_MYGAL_LIBS="$MYGAL_LIBS"
+if test -n "$LIBGLBARCODE_LIBS"; then
+    pkg_cv_LIBGLBARCODE_LIBS="$LIBGLBARCODE_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\\
-gtk+-2.0 >= \$GTK_REQUIRED \\
-libgnomeui-2.0 >= \$LIBGNOMEUI_REQUIRED \\
-\"") >&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\\
+       glib-2.0 >= \$GLIB_REQUIRED \\
+       cairo >= \$CAIRO_REQUIRED \\
+       pango >= \$PANGO_REQUIRED \\
+\""; } >&5
   ($PKG_CONFIG --exists --print-errors "\
-gtk+-2.0 >= $GTK_REQUIRED \
-libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \
+       glib-2.0 >= $GLIB_REQUIRED \
+       cairo >= $CAIRO_REQUIRED \
+       pango >= $PANGO_REQUIRED \
 ") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  pkg_cv_MYGAL_LIBS=`$PKG_CONFIG --libs "\
-gtk+-2.0 >= $GTK_REQUIRED \
-libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LIBGLBARCODE_LIBS=`$PKG_CONFIG --libs "\
+       glib-2.0 >= $GLIB_REQUIRED \
+       cairo >= $CAIRO_REQUIRED \
+       pango >= $PANGO_REQUIRED \
 " 2>/dev/null`
 else
   pkg_failed=yes
@@ -14926,6 +13995,8 @@ fi
 
 
 if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
         _pkg_short_errors_supported=yes
@@ -14933,78 +14004,58 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               MYGAL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "\
-gtk+-2.0 >= $GTK_REQUIRED \
-libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \
+               LIBGLBARCODE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "\
+       glib-2.0 >= $GLIB_REQUIRED \
+       cairo >= $CAIRO_REQUIRED \
+       pango >= $PANGO_REQUIRED \
 " 2>&1`
         else
-               MYGAL_PKG_ERRORS=`$PKG_CONFIG --print-errors "\
-gtk+-2.0 >= $GTK_REQUIRED \
-libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \
+               LIBGLBARCODE_PKG_ERRORS=`$PKG_CONFIG --print-errors "\
+       glib-2.0 >= $GLIB_REQUIRED \
+       cairo >= $CAIRO_REQUIRED \
+       pango >= $PANGO_REQUIRED \
 " 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
-       echo "$MYGAL_PKG_ERRORS" >&5
+       echo "$LIBGLBARCODE_PKG_ERRORS" >&5
 
-       { { $as_echo "$as_me:$LINENO: error: Package requirements (\
-gtk+-2.0 >= $GTK_REQUIRED \
-libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \
+       as_fn_error $? "Package requirements (\
+       glib-2.0 >= $GLIB_REQUIRED \
+       cairo >= $CAIRO_REQUIRED \
+       pango >= $PANGO_REQUIRED \
 ) were not met:
 
-$MYGAL_PKG_ERRORS
+$LIBGLBARCODE_PKG_ERRORS
 
 Consider adjusting the PKG_CONFIG_PATH environment variable if you
 installed software in a non-standard prefix.
 
-Alternatively, you may set the environment variables MYGAL_CFLAGS
-and MYGAL_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&5
-$as_echo "$as_me: error: Package requirements (\
-gtk+-2.0 >= $GTK_REQUIRED \
-libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \
-) were not met:
-
-$MYGAL_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
+Alternatively, you may set the environment variables LIBGLBARCODE_CFLAGS
+and LIBGLBARCODE_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
 
-Alternatively, you may set the environment variables MYGAL_CFLAGS
-and MYGAL_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&2;}
-   { (exit 1); exit 1; }; }
 elif test $pkg_failed = untried; then
-       { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old.  Make sure it
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
 is in your PATH or set the PKG_CONFIG environment variable to the full
 path to pkg-config.
 
-Alternatively, you may set the environment variables MYGAL_CFLAGS
-and MYGAL_LIBS to avoid the need to call pkg-config.
+Alternatively, you may set the environment variables LIBGLBARCODE_CFLAGS
+and LIBGLBARCODE_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details.
 
 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: The pkg-config script could not be found or is too old.  Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables MYGAL_CFLAGS
-and MYGAL_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
+See \`config.log' for more details" "$LINENO" 5; }
 
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
 else
-       MYGAL_CFLAGS=$pkg_cv_MYGAL_CFLAGS
-       MYGAL_LIBS=$pkg_cv_MYGAL_LIBS
-        { $as_echo "$as_me:$LINENO: result: yes" >&5
+       LIBGLBARCODE_CFLAGS=$pkg_cv_LIBGLBARCODE_CFLAGS
+       LIBGLBARCODE_LIBS=$pkg_cv_LIBGLBARCODE_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-       :
+
 fi
 
 
 
 
 
+# Check whether --with-libebook was given.
+if test "${with_libebook+set}" = set; then :
+  withval=$with_libebook;
+fi
+
+have_libebook=no
+if test "x$with_libebook" != xno; then
+
 pkg_failed=no
-{ $as_echo "$as_me:$LINENO: checking for XML_PARSE_HUGE" >&5
-$as_echo_n "checking for XML_PARSE_HUGE... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBEBOOK" >&5
+$as_echo_n "checking for LIBEBOOK... " >&6; }
 
-if test -n "$XML_PARSE_HUGE_CFLAGS"; then
-    pkg_cv_XML_PARSE_HUGE_CFLAGS="$XML_PARSE_HUGE_CFLAGS"
+if test -n "$LIBEBOOK_CFLAGS"; then
+    pkg_cv_LIBEBOOK_CFLAGS="$LIBEBOOK_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.7.0\"") >&5
-  ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.7.0") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libebook-1.2 >= \$LIBEBOOK_REQUIRED\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libebook-1.2 >= $LIBEBOOK_REQUIRED") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  pkg_cv_XML_PARSE_HUGE_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 >= 2.7.0" 2>/dev/null`
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LIBEBOOK_CFLAGS=`$PKG_CONFIG --cflags "libebook-1.2 >= $LIBEBOOK_REQUIRED" 2>/dev/null`
 else
   pkg_failed=yes
 fi
  else
     pkg_failed=untried
 fi
-if test -n "$XML_PARSE_HUGE_LIBS"; then
-    pkg_cv_XML_PARSE_HUGE_LIBS="$XML_PARSE_HUGE_LIBS"
+if test -n "$LIBEBOOK_LIBS"; then
+    pkg_cv_LIBEBOOK_LIBS="$LIBEBOOK_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.7.0\"") >&5
-  ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.7.0") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libebook-1.2 >= \$LIBEBOOK_REQUIRED\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libebook-1.2 >= $LIBEBOOK_REQUIRED") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  pkg_cv_XML_PARSE_HUGE_LIBS=`$PKG_CONFIG --libs "libxml-2.0 >= 2.7.0" 2>/dev/null`
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LIBEBOOK_LIBS=`$PKG_CONFIG --libs "libebook-1.2 >= $LIBEBOOK_REQUIRED" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -15052,6 +14111,8 @@ fi
 
 
 if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
         _pkg_short_errors_supported=yes
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               XML_PARSE_HUGE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libxml-2.0 >= 2.7.0" 2>&1`
+               LIBEBOOK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libebook-1.2 >= $LIBEBOOK_REQUIRED" 2>&1`
         else
-               XML_PARSE_HUGE_PKG_ERRORS=`$PKG_CONFIG --print-errors "libxml-2.0 >= 2.7.0" 2>&1`
+               LIBEBOOK_PKG_ERRORS=`$PKG_CONFIG --print-errors "libebook-1.2 >= $LIBEBOOK_REQUIRED" 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
-       echo "$XML_PARSE_HUGE_PKG_ERRORS" >&5
+       echo "$LIBEBOOK_PKG_ERRORS" >&5
 
-       { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-                HAVE_XML_PARSE_HUGE="-UHAVE_XML_PARSE_HUGE"
+       have_libebook=no
 elif test $pkg_failed = untried; then
-       HAVE_XML_PARSE_HUGE="-UHAVE_XML_PARSE_HUGE"
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       have_libebook=no
 else
-       XML_PARSE_HUGE_CFLAGS=$pkg_cv_XML_PARSE_HUGE_CFLAGS
-       XML_PARSE_HUGE_LIBS=$pkg_cv_XML_PARSE_HUGE_LIBS
-        { $as_echo "$as_me:$LINENO: result: yes" >&5
+       LIBEBOOK_CFLAGS=$pkg_cv_LIBEBOOK_CFLAGS
+       LIBEBOOK_LIBS=$pkg_cv_LIBEBOOK_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-       HAVE_XML_PARSE_HUGE="-DHAVE_XML_PARSE_HUGE"
+       have_libebook=yes
+fi
 fi
 
+if test "x$have_libebook" = "xyes"; then
+
+$as_echo "#define HAVE_LIBEBOOK 1" >>confdefs.h
+
 
 
-# Check whether --enable-deprecations was given.
-if test "${enable_deprecations+set}" = set; then
-  enableval=$enable_deprecations;
-else
-  enable_deprecations=no
 fi
 
 
-if test "x$enable_deprecations" = "xyes"; then
-   DISABLE_DEPRECATED_CFLAGS="\
--DG_DISABLE_DEPRECATED \
--DGDK_DISABLE_DEPRECATED \
--DGTK_DISABLE_DEPRECATED \
--DGDK_PIXBUF_DISABLE_DEPRECATED \
--DGNOME_DISABLE_DEPRECATED \
--DLIBGLADE_DISABLE_DEPRECATED"
 
+# Check whether --with-libbarcode was given.
+if test "${with_libbarcode+set}" = set; then :
+  withval=$with_libbarcode;
 fi
 
-
-# Extract the first word of "update-mime-database", so it can be a program name with args.
-set dummy update-mime-database; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_UPDATE_MIME_DATABASE+set}" = set; then
+have_libbarcode=no
+if test "x$with_libbarcode" != xno; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Barcode_Create in -lbarcode" >&5
+$as_echo_n "checking for Barcode_Create in -lbarcode... " >&6; }
+if ${ac_cv_lib_barcode_Barcode_Create+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  case $UPDATE_MIME_DATABASE in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_UPDATE_MIME_DATABASE="$UPDATE_MIME_DATABASE" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_UPDATE_MIME_DATABASE="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbarcode  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  test -z "$ac_cv_path_UPDATE_MIME_DATABASE" && ac_cv_path_UPDATE_MIME_DATABASE="no"
-  ;;
-esac
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char Barcode_Create ();
+int
+main ()
+{
+return Barcode_Create ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_barcode_Barcode_Create=yes
+else
+  ac_cv_lib_barcode_Barcode_Create=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-UPDATE_MIME_DATABASE=$ac_cv_path_UPDATE_MIME_DATABASE
-if test -n "$UPDATE_MIME_DATABASE"; then
-  { $as_echo "$as_me:$LINENO: result: $UPDATE_MIME_DATABASE" >&5
-$as_echo "$UPDATE_MIME_DATABASE" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_barcode_Barcode_Create" >&5
+$as_echo "$ac_cv_lib_barcode_Barcode_Create" >&6; }
+if test "x$ac_cv_lib_barcode_Barcode_Create" = xyes; then :
+  have_libbarcode=yes
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
+  have_libbarcode=no
+fi
+
 fi
 
+if test "x$have_libbarcode" = "xyes"; then
+
+$as_echo "#define HAVE_LIBBARCODE 1" >>confdefs.h
+
+       LIBBARCODE_CFLAGS=""
+       LIBBARCODE_LIBS="-lbarcode"
+
 
- if test x$UPDATE_MIME_DATABASE != xno; then
-  HAVE_NEW_MIME_TRUE=
-  HAVE_NEW_MIME_FALSE='#'
 else
-  HAVE_NEW_MIME_TRUE='#'
-  HAVE_NEW_MIME_FALSE=
+       help_libbarcode="(See http://www.gnu.org/software/barcode/barcode.html)"
 fi
 
 
-# Extract the first word of "update-desktop-database", so it can be a program name with args.
-set dummy update-desktop-database; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_UPDATE_DESKTOP_DATABASE+set}" = set; then
+# Check whether --with-libzint was given.
+if test "${with_libzint+set}" = set; then :
+  withval=$with_libzint;
+fi
+
+have_libzint=no
+if test "x$with_libzint" != xno; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ZBarcode_Render in -lzint" >&5
+$as_echo_n "checking for ZBarcode_Render in -lzint... " >&6; }
+if ${ac_cv_lib_zint_ZBarcode_Render+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  case $UPDATE_DESKTOP_DATABASE in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_UPDATE_DESKTOP_DATABASE="$UPDATE_DESKTOP_DATABASE" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_UPDATE_DESKTOP_DATABASE="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lzint  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  test -z "$ac_cv_path_UPDATE_DESKTOP_DATABASE" && ac_cv_path_UPDATE_DESKTOP_DATABASE="no"
-  ;;
-esac
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ZBarcode_Render ();
+int
+main ()
+{
+return ZBarcode_Render ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_zint_ZBarcode_Render=yes
+else
+  ac_cv_lib_zint_ZBarcode_Render=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_zint_ZBarcode_Render" >&5
+$as_echo "$ac_cv_lib_zint_ZBarcode_Render" >&6; }
+if test "x$ac_cv_lib_zint_ZBarcode_Render" = xyes; then :
+  have_libzint=yes
+else
+  have_libzint=no
+fi
+
+fi
+
+if test "x$have_libzint" = "xyes"; then
+
+$as_echo "#define HAVE_LIBZINT 1" >>confdefs.h
+
+       LIBZINT_CFLAGS=""
+       LIBZINT_LIBS="-lzint"
+
+
+else
+       help_libzint="(See http://www.zint.org.uk)"
+fi
+
+
+
+# Check whether --with-libqrencode was given.
+if test "${with_libqrencode+set}" = set; then :
+  withval=$with_libqrencode;
+fi
+
+have_libqrencode=no
+if test "x$with_libqrencode" != xno; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBQRENCODE" >&5
+$as_echo_n "checking for LIBQRENCODE... " >&6; }
+
+if test -n "$LIBQRENCODE_CFLAGS"; then
+    pkg_cv_LIBQRENCODE_CFLAGS="$LIBQRENCODE_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libqrencode >= \$LIBQRENCODE_REQUIRED\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libqrencode >= $LIBQRENCODE_REQUIRED") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LIBQRENCODE_CFLAGS=`$PKG_CONFIG --cflags "libqrencode >= $LIBQRENCODE_REQUIRED" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$LIBQRENCODE_LIBS"; then
+    pkg_cv_LIBQRENCODE_LIBS="$LIBQRENCODE_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libqrencode >= \$LIBQRENCODE_REQUIRED\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libqrencode >= $LIBQRENCODE_REQUIRED") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LIBQRENCODE_LIBS=`$PKG_CONFIG --libs "libqrencode >= $LIBQRENCODE_REQUIRED" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
 fi
-UPDATE_DESKTOP_DATABASE=$ac_cv_path_UPDATE_DESKTOP_DATABASE
-if test -n "$UPDATE_DESKTOP_DATABASE"; then
-  { $as_echo "$as_me:$LINENO: result: $UPDATE_DESKTOP_DATABASE" >&5
-$as_echo "$UPDATE_DESKTOP_DATABASE" >&6; }
+
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               LIBQRENCODE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libqrencode >= $LIBQRENCODE_REQUIRED" 2>&1`
+        else
+               LIBQRENCODE_PKG_ERRORS=`$PKG_CONFIG --print-errors "libqrencode >= $LIBQRENCODE_REQUIRED" 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$LIBQRENCODE_PKG_ERRORS" >&5
+
+       have_libqrencode=no
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
+       have_libqrencode=no
+else
+       LIBQRENCODE_CFLAGS=$pkg_cv_LIBQRENCODE_CFLAGS
+       LIBQRENCODE_LIBS=$pkg_cv_LIBQRENCODE_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       have_libqrencode=yes
 fi
+fi
+
+if test "x$have_libqrencode" = "xyes"; then
+
+$as_echo "#define HAVE_LIBQRENCODE 1" >>confdefs.h
+
 
 
- if test x$UPDATE_DESKTOP_DATABASE != xno; then
-  HAVE_NEWER_MIME_TRUE=
-  HAVE_NEWER_MIME_FALSE='#'
 else
-  HAVE_NEWER_MIME_TRUE='#'
-  HAVE_NEWER_MIME_FALSE=
+       help_libqrencode="(See http://megaui.net/fukuchi/works/qrencode/index.en.html)"
 fi
 
 
-# Check whether --enable-update-mimedb was given.
-if test "${enable_update_mimedb+set}" = set; then
-  enableval=$enable_update_mimedb;
-else
-  enable_update_mimedb=yes
+
+# Check whether --with-libiec16022 was given.
+if test "${with_libiec16022+set}" = set; then :
+  withval=$with_libiec16022;
 fi
 
- if test x$enable_update_mimedb = xyes; then
-  ENABLE_UPDATE_MIMEDB_TRUE=
-  ENABLE_UPDATE_MIMEDB_FALSE='#'
+have_libiec16022=no
+if test "x$with_libiec16022" != xno; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBIEC16022" >&5
+$as_echo_n "checking for LIBIEC16022... " >&6; }
+
+if test -n "$LIBIEC16022_CFLAGS"; then
+    pkg_cv_LIBIEC16022_CFLAGS="$LIBIEC16022_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libiec16022 >= \$LIBIEC16022_REQUIRED\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libiec16022 >= $LIBIEC16022_REQUIRED") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LIBIEC16022_CFLAGS=`$PKG_CONFIG --cflags "libiec16022 >= $LIBIEC16022_REQUIRED" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$LIBIEC16022_LIBS"; then
+    pkg_cv_LIBIEC16022_LIBS="$LIBIEC16022_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libiec16022 >= \$LIBIEC16022_REQUIRED\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libiec16022 >= $LIBIEC16022_REQUIRED") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LIBIEC16022_LIBS=`$PKG_CONFIG --libs "libiec16022 >= $LIBIEC16022_REQUIRED" 2>/dev/null`
 else
-  ENABLE_UPDATE_MIMEDB_TRUE='#'
-  ENABLE_UPDATE_MIMEDB_FALSE=
+  pkg_failed=yes
 fi
+ else
+    pkg_failed=untried
+fi
+
 
 
-# Check whether --enable-update-desktopdb was given.
-if test "${enable_update_desktopdb+set}" = set; then
-  enableval=$enable_update_desktopdb;
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
 else
-  enable_update_desktopdb=yes
+        _pkg_short_errors_supported=no
 fi
+        if test $_pkg_short_errors_supported = yes; then
+               LIBIEC16022_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libiec16022 >= $LIBIEC16022_REQUIRED" 2>&1`
+        else
+               LIBIEC16022_PKG_ERRORS=`$PKG_CONFIG --print-errors "libiec16022 >= $LIBIEC16022_REQUIRED" 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$LIBIEC16022_PKG_ERRORS" >&5
 
- if test x$enable_update_desktopdb = xyes; then
-  ENABLE_UPDATE_DESKTOPDB_TRUE=
-  ENABLE_UPDATE_DESKTOPDB_FALSE='#'
+       have_libiec16022=no
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       have_libiec16022=no
 else
-  ENABLE_UPDATE_DESKTOPDB_TRUE='#'
-  ENABLE_UPDATE_DESKTOPDB_FALSE=
+       LIBIEC16022_CFLAGS=$pkg_cv_LIBIEC16022_CFLAGS
+       LIBIEC16022_LIBS=$pkg_cv_LIBIEC16022_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       have_libiec16022=yes
+fi
 fi
 
+if test "x$have_libiec16022" = "xyes"; then
 
+$as_echo "#define HAVE_LIBIEC16022 1" >>confdefs.h
 
-GETTEXT_PACKAGE=glabels
 
 
-cat >>confdefs.h <<_ACEOF
-#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE"
-_ACEOF
+else
+       help_libiec16022="(See http://datenfreihafen.org/projects/iec16022.html)"
+fi
 
 
+# Check whether --enable-deprecations was given.
+if test "${enable_deprecations+set}" = set; then :
+  enableval=$enable_deprecations;
+else
+  enable_deprecations=no
+fi
 
 
-for ac_header in locale.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if test "x$enable_deprecations" = "xyes"; then
+   DISABLE_DEPRECATED_CFLAGS="\
+-DG_DISABLE_DEPRECATED \
+-DGDK_DISABLE_DEPRECATED \
+-DGTK_DISABLE_DEPRECATED \
+-DGDK_PIXBUF_DISABLE_DEPRECATED \
+"
 
-       ac_header_compiler=no
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
 
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+GETTEXT_PACKAGE=${GLABELS_BRANCH}
 
-  ac_header_preproc=no
-fi
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
+cat >>confdefs.h <<_ACEOF
+#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE"
+_ACEOF
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ---------------------------------------------------------------------------------- ##
-## Report this to http://sourceforge.net/tracker/?func=add&group_id=46122&atid=445116 ##
-## ---------------------------------------------------------------------------------- ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
 
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+
+   for ac_header in locale.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default"
+if test "x$ac_cv_header_locale_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_LOCALE_H 1
 _ACEOF
 
 fi
 done
 
     if test $ac_cv_header_locale_h = yes; then
-    { $as_echo "$as_me:$LINENO: checking for LC_MESSAGES" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5
 $as_echo_n "checking for LC_MESSAGES... " >&6; }
-if test "${am_cv_val_LC_MESSAGES+set}" = set; then
+if ${am_cv_val_LC_MESSAGES+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <locale.h>
 int
@@ -15415,46 +14516,19 @@ return LC_MESSAGES
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   am_cv_val_LC_MESSAGES=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       am_cv_val_LC_MESSAGES=no
+  am_cv_val_LC_MESSAGES=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_val_LC_MESSAGES" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5
 $as_echo "$am_cv_val_LC_MESSAGES" >&6; }
     if test $am_cv_val_LC_MESSAGES = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LC_MESSAGES 1
-_ACEOF
+$as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h
 
     fi
   fi
@@ -15467,155 +14541,20 @@ _ACEOF
     XGETTEXT=:
     INTLLIBS=
 
-    if test "${ac_cv_header_libintl_h+set}" = set; then
-  { $as_echo "$as_me:$LINENO: checking for libintl.h" >&5
-$as_echo_n "checking for libintl.h... " >&6; }
-if test "${ac_cv_header_libintl_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5
-$as_echo "$ac_cv_header_libintl_h" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking libintl.h usability" >&5
-$as_echo_n "checking libintl.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <libintl.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking libintl.h presence" >&5
-$as_echo_n "checking libintl.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <libintl.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: libintl.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: libintl.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: libintl.h: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: libintl.h:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: libintl.h:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: libintl.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: libintl.h: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: libintl.h:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: libintl.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: libintl.h: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: libintl.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: libintl.h: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ---------------------------------------------------------------------------------- ##
-## Report this to http://sourceforge.net/tracker/?func=add&group_id=46122&atid=445116 ##
-## ---------------------------------------------------------------------------------- ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for libintl.h" >&5
-$as_echo_n "checking for libintl.h... " >&6; }
-if test "${ac_cv_header_libintl_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_header_libintl_h=$ac_header_preproc
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5
-$as_echo "$ac_cv_header_libintl_h" >&6; }
-
-fi
-if test "x$ac_cv_header_libintl_h" = x""yes; then
+    ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default"
+if test "x$ac_cv_header_libintl_h" = xyes; then :
   gt_cv_func_dgettext_libintl="no"
       libintl_extra_libs=""
 
       #
       # First check in libc
       #
-      { $as_echo "$as_me:$LINENO: checking for ngettext in libc" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5
 $as_echo_n "checking for ngettext in libc... " >&6; }
-if test "${gt_cv_func_ngettext_libc+set}" = set; then
+if ${gt_cv_func_ngettext_libc+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <libintl.h>
@@ -15626,203 +14565,59 @@ main ()
 return !ngettext ("","", 1)
   ;
   return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  gt_cv_func_ngettext_libc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gt_cv_func_ngettext_libc=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_ngettext_libc" >&5
-$as_echo "$gt_cv_func_ngettext_libc" >&6; }
-
-      if test "$gt_cv_func_ngettext_libc" = "yes" ; then
-             { $as_echo "$as_me:$LINENO: checking for dgettext in libc" >&5
-$as_echo_n "checking for dgettext in libc... " >&6; }
-if test "${gt_cv_func_dgettext_libc+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <libintl.h>
-
-int
-main ()
-{
-return !dgettext ("","")
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  gt_cv_func_dgettext_libc=yes
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gt_cv_func_ngettext_libc=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gt_cv_func_dgettext_libc=no
+  gt_cv_func_ngettext_libc=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_dgettext_libc" >&5
-$as_echo "$gt_cv_func_dgettext_libc" >&6; }
-      fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5
+$as_echo "$gt_cv_func_ngettext_libc" >&6; }
 
       if test "$gt_cv_func_ngettext_libc" = "yes" ; then
-
-for ac_func in bind_textdomain_codeset
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+             { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5
+$as_echo_n "checking for dgettext in libc... " >&6; }
+if ${gt_cv_func_dgettext_libc+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
+#include <libintl.h>
 
 int
 main ()
 {
-return $ac_func ();
+return !dgettext ("","")
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if ac_fn_c_try_link "$LINENO"; then :
+  gt_cv_func_dgettext_libc=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
+  gt_cv_func_dgettext_libc=no
 fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5
+$as_echo "$gt_cv_func_dgettext_libc" >&6; }
+      fi
+
+      if test "$gt_cv_func_ngettext_libc" = "yes" ; then
+        for ac_func in bind_textdomain_codeset
+do :
+  ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset"
+if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_BIND_TEXTDOMAIN_CODESET 1
 _ACEOF
 
 fi
@@ -15837,18 +14632,14 @@ done
         || test "$gt_cv_func_ngettext_libc" != "yes" \
          || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then
 
-        { $as_echo "$as_me:$LINENO: checking for bindtextdomain in -lintl" >&5
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5
 $as_echo_n "checking for bindtextdomain in -lintl... " >&6; }
-if test "${ac_cv_lib_intl_bindtextdomain+set}" = set; then
+if ${ac_cv_lib_intl_bindtextdomain+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lintl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -15866,55 +14657,26 @@ return bindtextdomain ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_intl_bindtextdomain=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_intl_bindtextdomain=no
+  ac_cv_lib_intl_bindtextdomain=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_bindtextdomain" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5
 $as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; }
-if test "x$ac_cv_lib_intl_bindtextdomain" = x""yes; then
-  { $as_echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5
+if test "x$ac_cv_lib_intl_bindtextdomain" = xyes; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5
 $as_echo_n "checking for ngettext in -lintl... " >&6; }
-if test "${ac_cv_lib_intl_ngettext+set}" = set; then
+if ${ac_cv_lib_intl_ngettext+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lintl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -15932,55 +14694,26 @@ return ngettext ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_intl_ngettext=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_intl_ngettext=no
+  ac_cv_lib_intl_ngettext=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5
 $as_echo "$ac_cv_lib_intl_ngettext" >&6; }
-if test "x$ac_cv_lib_intl_ngettext" = x""yes; then
-  { $as_echo "$as_me:$LINENO: checking for dgettext in -lintl" >&5
+if test "x$ac_cv_lib_intl_ngettext" = xyes; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5
 $as_echo_n "checking for dgettext in -lintl... " >&6; }
-if test "${ac_cv_lib_intl_dgettext+set}" = set; then
+if ${ac_cv_lib_intl_dgettext+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lintl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -15998,43 +14731,18 @@ return dgettext ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_intl_dgettext=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_intl_dgettext=no
+  ac_cv_lib_intl_dgettext=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dgettext" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5
 $as_echo "$ac_cv_lib_intl_dgettext" >&6; }
-if test "x$ac_cv_lib_intl_dgettext" = x""yes; then
+if test "x$ac_cv_lib_intl_dgettext" = xyes; then :
   gt_cv_func_dgettext_libintl=yes
 fi
 
 
 
        if test "$gt_cv_func_dgettext_libintl" != "yes" ; then
-         { $as_echo "$as_me:$LINENO: checking if -liconv is needed to use gettext" >&5
+         { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5
 $as_echo_n "checking if -liconv is needed to use gettext... " >&6; }
-         { $as_echo "$as_me:$LINENO: result: " >&5
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
 $as_echo "" >&6; }
-         { $as_echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5
+         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5
 $as_echo_n "checking for ngettext in -lintl... " >&6; }
-if test "${ac_cv_lib_intl_ngettext+set}" = set; then
+if ${ac_cv_lib_intl_ngettext+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lintl -liconv $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -16077,55 +14781,26 @@ return ngettext ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_intl_ngettext=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_intl_ngettext=no
+  ac_cv_lib_intl_ngettext=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5
 $as_echo "$ac_cv_lib_intl_ngettext" >&6; }
-if test "x$ac_cv_lib_intl_ngettext" = x""yes; then
-  { $as_echo "$as_me:$LINENO: checking for dcgettext in -lintl" >&5
+if test "x$ac_cv_lib_intl_ngettext" = xyes; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5
 $as_echo_n "checking for dcgettext in -lintl... " >&6; }
-if test "${ac_cv_lib_intl_dcgettext+set}" = set; then
+if ${ac_cv_lib_intl_dcgettext+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lintl -liconv $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -16143,43 +14818,18 @@ return dcgettext ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_intl_dcgettext=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_intl_dcgettext=no
+  ac_cv_lib_intl_dcgettext=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dcgettext" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5
 $as_echo "$ac_cv_lib_intl_dcgettext" >&6; }
-if test "x$ac_cv_lib_intl_dcgettext" = x""yes; then
+if test "x$ac_cv_lib_intl_dcgettext" = xyes; then :
   gt_cv_func_dgettext_libintl=yes
                        libintl_extra_libs=-liconv
 else
           glib_save_LIBS="$LIBS"
           LIBS="$LIBS -lintl $libintl_extra_libs"
           unset ac_cv_func_bind_textdomain_codeset
-
-for ac_func in bind_textdomain_codeset
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+          for ac_func in bind_textdomain_codeset
+do :
+  ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset"
+if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_BIND_TEXTDOMAIN_CODESET 1
 _ACEOF
 
 fi
@@ -16326,15 +14886,13 @@ done
 
       if test "$gt_cv_have_gettext" = "yes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GETTEXT 1
-_ACEOF
+$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h
 
        # Extract the first word of "msgfmt", so it can be a program name with args.
 set dummy msgfmt; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MSGFMT+set}" = set; then
+if ${ac_cv_path_MSGFMT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case "$MSGFMT" in
@@ -16359,118 +14917,28 @@ esac
 fi
 MSGFMT="$ac_cv_path_MSGFMT"
 if test "$MSGFMT" != "no"; then
-  { $as_echo "$as_me:$LINENO: result: $MSGFMT" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
 $as_echo "$MSGFMT" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
        if test "$MSGFMT" != "no"; then
-          glib_save_LIBS="$LIBS"
-          LIBS="$LIBS $INTLLIBS"
-
-for ac_func in dcgettext
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+          glib_save_LIBS="$LIBS"
+          LIBS="$LIBS $INTLLIBS"
+         for ac_func in dcgettext
+do :
+  ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext"
+if test "x$ac_cv_func_dcgettext" = xyes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_DCGETTEXT 1
 _ACEOF
 
 fi
 done
 
          MSGFMT_OPTS=
-         { $as_echo "$as_me:$LINENO: checking if msgfmt accepts -c" >&5
+         { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5
 $as_echo_n "checking if msgfmt accepts -c... " >&6; }
          cat >conftest.foo <<_ACEOF
 
@@ -16485,14 +14953,14 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 _ACEOF
-if { ($as_echo "$as_me:$LINENO: \$MSGFMT -c -o /dev/null conftest.foo") >&5
+if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5
   ($MSGFMT -c -o /dev/null conftest.foo) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  MSGFMT_OPTS=-c; { $as_echo "$as_me:$LINENO: result: yes" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-else { $as_echo "$as_me:$LINENO: result: no" >&5
+else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 echo "$as_me: failed input was:" >&5
 sed 's/^/| /' conftest.foo >&5
@@ -16500,9 +14968,9 @@ fi
 
          # Extract the first word of "gmsgfmt", so it can be a program name with args.
 set dummy gmsgfmt; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_GMSGFMT+set}" = set; then
+if ${ac_cv_path_GMSGFMT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $GMSGFMT in
@@ -16515,14 +14983,14 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
@@ -16531,19 +14999,19 @@ esac
 fi
 GMSGFMT=$ac_cv_path_GMSGFMT
 if test -n "$GMSGFMT"; then
-  { $as_echo "$as_me:$LINENO: result: $GMSGFMT" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5
 $as_echo "$GMSGFMT" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
          # Extract the first word of "xgettext", so it can be a program name with args.
 set dummy xgettext; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_XGETTEXT+set}" = set; then
+if ${ac_cv_path_XGETTEXT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case "$XGETTEXT" in
@@ -16568,18 +15036,14 @@ esac
 fi
 XGETTEXT="$ac_cv_path_XGETTEXT"
 if test "$XGETTEXT" != ":"; then
-  { $as_echo "$as_me:$LINENO: result: $XGETTEXT" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5
 $as_echo "$XGETTEXT" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
-         cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -16591,121 +15055,14 @@ extern int _nl_msg_cat_cntr;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   CATOBJEXT=.gmo
              DATADIRNAME=share
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       case $host in
+  case $host in
            *-*-solaris*)
-                                                               { $as_echo "$as_me:$LINENO: checking for bind_textdomain_codeset" >&5
-$as_echo_n "checking for bind_textdomain_codeset... " >&6; }
-if test "${ac_cv_func_bind_textdomain_codeset+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define bind_textdomain_codeset to an innocuous variant, in case <limits.h> declares bind_textdomain_codeset.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define bind_textdomain_codeset innocuous_bind_textdomain_codeset
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char bind_textdomain_codeset (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef bind_textdomain_codeset
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char bind_textdomain_codeset ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_bind_textdomain_codeset || defined __stub___bind_textdomain_codeset
-choke me
-#endif
-
-int
-main ()
-{
-return bind_textdomain_codeset ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_bind_textdomain_codeset=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_bind_textdomain_codeset=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_bind_textdomain_codeset" >&5
-$as_echo "$ac_cv_func_bind_textdomain_codeset" >&6; }
-if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then
+                                                               ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset"
+if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then :
   CATOBJEXT=.gmo
                DATADIRNAME=share
 else
            ;;
            esac
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
           LIBS="$glib_save_LIBS"
          INSTOBJEXT=.mo
        else
@@ -16737,9 +15092,7 @@ fi
 
     if test "$gt_cv_have_gettext" = "yes" ; then
 
-cat >>confdefs.h <<\_ACEOF
-#define ENABLE_NLS 1
-_ACEOF
+$as_echo "#define ENABLE_NLS 1" >>confdefs.h
 
     fi
 
@@ -16747,7 +15100,7 @@ _ACEOF
                   if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
         : ;
       else
-        { $as_echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5
 $as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; }
         XGETTEXT=":"
       fi
@@ -16780,7 +15133,7 @@ $as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; }
      if test "x$ALL_LINGUAS" = "x"; then
        LINGUAS=
      else
-       { $as_echo "$as_me:$LINENO: checking for catalogs to be installed" >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5
 $as_echo_n "checking for catalogs to be installed... " >&6; }
        NEW_LINGUAS=
        for presentlang in $ALL_LINGUAS; do
@@ -16805,7 +15158,7 @@ $as_echo_n "checking for catalogs to be installed... " >&6; }
          fi
        done
        LINGUAS=$NEW_LINGUAS
-       { $as_echo "$as_me:$LINENO: result: $LINGUAS" >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5
 $as_echo "$LINGUAS" >&6; }
      fi
 
@@ -16839,7 +15192,7 @@ $as_echo "$LINGUAS" >&6; }
 
 
 
-ac_config_files="$ac_config_files Makefile barcode-0.98/Makefile iec16022-0.2.1/Makefile libglabels/Makefile libglabels/libglabels.pc src/Makefile src/pixmaps/Makefile src/stock-pixmaps/Makefile src/mygal/Makefile data/Makefile data/templates/Makefile data/pixmaps/Makefile data/mime/Makefile data/glade/Makefile data/desktop/Makefile data/dtd/Makefile data/man/Makefile po/Makefile.in help/Makefile docs/Makefile docs/libglabels/Makefile glabels.spec"
+ac_config_files="$ac_config_files Makefile libglabels/Makefile libglabels/${LIBGLABELS_BRANCH}.pc libglbarcode/Makefile libglbarcode/${LIBGLBARCODE_BRANCH}.pc src/Makefile src/cursors/Makefile src/pixmaps/Makefile data/Makefile data/desktop/Makefile data/icons/Makefile data/icons/16x16/Makefile data/icons/22x22/Makefile data/icons/24x24/Makefile data/icons/32x32/Makefile data/icons/48x48/Makefile data/man/Makefile data/mime/Makefile data/pixmaps/Makefile data/schemas/Makefile data/schemas/org.gnome.glabels-3.gschema.xml.in data/ui/Makefile templates/Makefile po/Makefile.in help/Makefile docs/Makefile docs/libglabels/Makefile docs/libglbarcode/Makefile glabels.spec"
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -16868,13 +15221,13 @@ _ACEOF
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
       BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) $as_unset $ac_var ;;
+      *) { eval $ac_var=; unset $ac_var;} ;;
       esac ;;
     esac
   done
@@ -16882,8 +15235,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
   (set) 2>&1 |
     case $as_nl`(ac_space=' '; set) 2>&1` in #(
     *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes (double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      # `set' does not quote correctly, so add quotesdouble-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \.
       sed -n \
        "s/'/'\\\\''/g;
          s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
@@ -16905,12 +15258,23 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
      :end' >>confcache
 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
   if test -w "$cache_file"; then
-    test "x$cache_file" != "x/dev/null" &&
-      { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5
+    if test "x$cache_file" != "x/dev/null"; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
 $as_echo "$as_me: updating cache $cache_file" >&6;}
-    cat confcache >$cache_file
+      if test ! -f "$cache_file" || test -h "$cache_file"; then
+       cat confcache >"$cache_file"
+      else
+        case $cache_file in #(
+        */* | ?:*)
+         mv -f confcache "$cache_file"$$ &&
+         mv -f "$cache_file"$$ "$cache_file" ;; #(
+        *)
+         mv -f confcache "$cache_file" ;;
+       esac
+      fi
+    fi
   else
-    { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
   fi
 fi
@@ -16924,14 +15288,15 @@ DEFS=-DHAVE_CONFIG_H
 
 ac_libobjs=
 ac_ltlibobjs=
+U=
 for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
   # 1. Remove the extension, and $U if already installed.
   ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
   ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
   # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
   #    will be set to the directory where LIBOBJS objects are built.
-  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
+  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
 done
 LIBOBJS=$ac_libobjs
 
@@ -16946,109 +15311,63 @@ else
   am__EXEEXT_FALSE=
 fi
 
-if test -z "${ENABLE_SK_TRUE}" && test -z "${ENABLE_SK_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_SK\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"ENABLE_SK\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-if test -z "${HAVE_GNOME_DOC_UTILS_TRUE}" && test -z "${HAVE_GNOME_DOC_UTILS_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_GNOME_DOC_UTILS\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"HAVE_GNOME_DOC_UTILS\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
-fi
 if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 
   ac_config_commands="$ac_config_commands po/stamp-it"
 
 
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+if test -z "${ENABLE_SK_TRUE}" && test -z "${ENABLE_SK_FALSE}"; then
+  as_fn_error $? "conditional \"ENABLE_SK\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+if test -z "${HAVE_GNOME_DOC_UTILS_TRUE}" && test -z "${HAVE_GNOME_DOC_UTILS_FALSE}"; then
+  as_fn_error $? "conditional \"HAVE_GNOME_DOC_UTILS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_GTK_DOC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"ENABLE_GTK_DOC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "conditional \"ENABLE_GTK_DOC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GTK_DOC_BUILD_HTML_TRUE}" && test -z "${GTK_DOC_BUILD_HTML_FALSE}"; then
+  as_fn_error $? "conditional \"GTK_DOC_BUILD_HTML\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GTK_DOC_BUILD_PDF_TRUE}" && test -z "${GTK_DOC_BUILD_PDF_FALSE}"; then
+  as_fn_error $? "conditional \"GTK_DOC_BUILD_PDF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${GTK_DOC_USE_LIBTOOL_TRUE}" && test -z "${GTK_DOC_USE_LIBTOOL_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"GTK_DOC_USE_LIBTOOL\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"GTK_DOC_USE_LIBTOOL\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-if test -z "${HAVE_NEW_MIME_TRUE}" && test -z "${HAVE_NEW_MIME_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_NEW_MIME\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"HAVE_NEW_MIME\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-if test -z "${HAVE_NEWER_MIME_TRUE}" && test -z "${HAVE_NEWER_MIME_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_NEWER_MIME\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"HAVE_NEWER_MIME\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-if test -z "${ENABLE_UPDATE_MIMEDB_TRUE}" && test -z "${ENABLE_UPDATE_MIMEDB_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_UPDATE_MIMEDB\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"ENABLE_UPDATE_MIMEDB\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-if test -z "${ENABLE_UPDATE_DESKTOPDB_TRUE}" && test -z "${ENABLE_UPDATE_DESKTOPDB_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_UPDATE_DESKTOPDB\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"ENABLE_UPDATE_DESKTOPDB\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-: ${CONFIG_STATUS=./config.status}
+  as_fn_error $? "conditional \"GTK_DOC_USE_LIBTOOL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GTK_DOC_USE_REBASE_TRUE}" && test -z "${GTK_DOC_USE_REBASE_FALSE}"; then
+  as_fn_error $? "conditional \"GTK_DOC_USE_REBASE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: "${CONFIG_STATUS=./config.status}"
 ac_write_fail=0
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
 #! $SHELL
 # Generated by $as_me.
 # Run this file to recreate the current configuration.
@@ -17058,17 +15377,18 @@ cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 debug=false
 ac_cs_recheck=false
 ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
 
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
@@ -17076,23 +15396,15 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
 else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
 esac
-
 fi
 
 
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
 as_nl='
 '
 export as_nl
@@ -17100,7 +15412,13 @@ export as_nl
 as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
   as_echo='printf %s\n'
   as_echo_n='printf %s'
 else
@@ -17111,7 +15429,7 @@ else
     as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
     as_echo_n_body='eval
       arg=$1;
-      case $arg in
+      case $arg in #(
       *"$as_nl"*)
        expr "X$arg" : "X\\(.*\\)$as_nl";
        arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
@@ -17134,13 +15452,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
   }
 fi
 
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
 
 # IFS
 # We need space, tab and new line, in precisely that order.  Quoting is
 IFS=" ""       $as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
-case $0 in
+as_myself=
+case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
 IFS=$as_save_IFS
 
      ;;
@@ -17170,12 +15482,16 @@ if test "x$as_myself" = x; then
 fi
 if test ! -f "$as_myself"; then
   $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  { (exit 1); exit 1; }
+  exit 1
 fi
 
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
 done
 PS1='$ '
 PS2='> '
@@ -17187,7 +15503,89 @@ export LC_ALL
 LANGUAGE=C
 export LANGUAGE
 
-# Required to use basename.
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
 if expr a : '\(a\)' >/dev/null 2>&1 &&
    test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
@@ -17201,8 +15599,12 @@ else
   as_basename=false
 fi
 
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
 
-# Name of the executable.
 as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
         X"$0" : 'X\(//\)$' \| \
@@ -17222,106 +15624,103 @@ $as_echo X/"$0" |
          }
          s/.*/./; q'`
 
-# CDPATH.
-$as_unset CDPATH
-
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  Blame Lee
-  # E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
 
 ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
+case `echo -n x` in #(((((
 -n*)
-  case `echo 'x\c'` in
+  case `echo 'xy\c'` in
   *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
-  *)   ECHO_C='\c';;
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='        ';;
   esac;;
 *)
   ECHO_N='-n';;
 esac
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
 else
-  as_expr=false
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -p'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -p'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -p'
+  fi
+else
+  as_ln_s='cp -p'
 fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$as_dir" : 'X\(//\)[^/]' \| \
+        X"$as_dir" : 'X\(//\)$' \| \
+        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
 
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -p'
-  fi
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
 
+} # as_fn_mkdir_p
 if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
+  as_mkdir_p='mkdir -p "$as_dir"'
 else
   test -d ./-p && rmdir ./-p
   as_mkdir_p=false
@@ -17340,10 +15739,10 @@ else
       if test -d "$1"; then
        test -d "$1/.";
       else
-       case $1 in
+       case $1 in #(
        -*)set "./$1";;
        esac;
-       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
        ???[sx]*):;;*)false;;esac;fi
     '\'' sh
   '
@@ -17358,13 +15757,19 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
 
 exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
 
-# Save the log message, to keep $[0] and so on meaningful, and to
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by glabels $as_me 2.2.8, which was
-generated by GNU Autoconf 2.63.  Invocation command line was
+This file was extended by glabels $as_me 3.0.0, which was
+generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -17396,13 +15801,15 @@ _ACEOF
 
 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration.  Unless the files
+and actions are specified as TAGs, all are instantiated by default.
 
-Usage: $0 [OPTION]... [FILE]...
+Usage: $0 [OPTION]... [TAG]...
 
   -h, --help       print this help, then exit
   -V, --version    print version number and configuration settings, then exit
+      --config     print configuration, then exit
   -q, --quiet, --silent
                    do not print progress messages
   -d, --debug      don't remove temporary files
@@ -17421,16 +15828,17 @@ $config_headers
 Configuration commands:
 $config_commands
 
-Report bugs to <bug-autoconf@gnu.org>."
+Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=glabels>."
 
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-glabels config.status 2.2.8
-configured by $0, generated by GNU Autoconf 2.63,
-  with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+glabels config.status 3.0.0
+configured by $0, generated by GNU Autoconf 2.68,
+  with options \\"\$ac_cs_config\\"
 
-Copyright (C) 2008 Free Software Foundation, Inc.
+Copyright (C) 2010 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
@@ -17448,11 +15856,16 @@ ac_need_defaults=:
 while test $# != 0
 do
   case $1 in
-  --*=*)
+  --*=?*)
     ac_option=`expr "X$1" : 'X\([^=]*\)='`
     ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
     ac_shift=:
     ;;
+  --*=)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=
+    ac_shift=:
+    ;;
   *)
     ac_option=$1
     ac_optarg=$2
     ac_cs_recheck=: ;;
   --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
     $as_echo "$ac_cs_version"; exit ;;
+  --config | --confi | --conf | --con | --co | --c )
+    $as_echo "$ac_cs_config"; exit ;;
   --debug | --debu | --deb | --de | --d | -d )
     debug=: ;;
   --file | --fil | --fi | --f )
     $ac_shift
     case $ac_optarg in
     *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    '') as_fn_error $? "missing file argument" ;;
     esac
-    CONFIG_FILES="$CONFIG_FILES '$ac_optarg'"
+    as_fn_append CONFIG_FILES " '$ac_optarg'"
     ac_need_defaults=false;;
   --header | --heade | --head | --hea )
     $ac_shift
     case $ac_optarg in
     *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
-    CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'"
+    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
     ac_need_defaults=false;;
   --he | --h)
     # Conflict between --help and --header
-    { $as_echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; };;
+    as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
   --help | --hel | -h )
     $as_echo "$ac_cs_usage"; exit ;;
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
@@ -17494,11 +15909,10 @@ Try \`$0 --help' for more information." >&2
     ac_cs_silent=: ;;
 
   # This is an error.
-  -*) { $as_echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; } ;;
+  -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
 
-  *) ac_config_targets="$ac_config_targets $1"
+  *) as_fn_append ac_config_targets " $1"
      ac_need_defaults=false ;;
 
   esac
@@ -17549,131 +15963,153 @@ AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
 sed_quote_subst='$sed_quote_subst'
 double_quote_subst='$double_quote_subst'
 delay_variable_subst='$delay_variable_subst'
-macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`'
-macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`'
-enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`'
-pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`'
-enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`'
-host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`'
-host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`'
-host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`'
-build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`'
-build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`'
-build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`'
-SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`'
-Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`'
-GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`'
-EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`'
-FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`'
-LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`'
-NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`'
-LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`'
-max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`'
-ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`'
-exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`'
-lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`'
-lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`'
-lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`'
-reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`'
-reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`'
-deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`'
-file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`'
-AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`'
-AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`'
-STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`'
-RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`'
-old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`'
-CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`'
-compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`'
-GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
-objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`'
-SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`'
-ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`'
-MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`'
-need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`'
-DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`'
-NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`'
-LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`'
-OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`'
-OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`'
-libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`'
-shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`'
-export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`'
-allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
-no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`'
-inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`'
-link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`'
-fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`'
-always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`'
-export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
-include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
-prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`'
-variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`'
-need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
-need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`'
-version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`'
-runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`'
-libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`'
-library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`'
-soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`'
-postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`'
-sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
-sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`'
-old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`'
-striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`'
+macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
+enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
+pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
+enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
+SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
+ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
+host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
+host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
+host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
+build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
+build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
+build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
+SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
+Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
+GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
+EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
+FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
+LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
+NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
+LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
+max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
+ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
+exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
+AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
+STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
+lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
+CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
+CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
+compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
+GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
+DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
+OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
+libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
+shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
+extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
+hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
+file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
+version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
+runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
+libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
+library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
+soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
+install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
+postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
+finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
+hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
+sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
+sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
+enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
+old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
+striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
 
 LTCC='$LTCC'
 LTCFLAGS='$LTCFLAGS'
 compiler='$compiler_DEFAULT'
 
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+
 # Quote evaled strings.
-for var in SED \
+for var in SHELL \
+ECHO \
+SED \
 GREP \
 EGREP \
 FGREP \
@@ -17686,8 +16122,13 @@ reload_flag \
 OBJDUMP \
 deplibs_check_method \
 file_magic_cmd \
+file_magic_glob \
+want_nocaseglob \
+DLLTOOL \
+sharedlib_from_linklib_cmd \
 AR \
 AR_FLAGS \
+archiver_list_spec \
 STRIP \
 RANLIB \
 CC \
@@ -17697,14 +16138,14 @@ lt_cv_sys_global_symbol_pipe \
 lt_cv_sys_global_symbol_to_cdecl \
 lt_cv_sys_global_symbol_to_c_name_address \
 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-SHELL \
-ECHO \
+nm_file_list_spec \
 lt_prog_compiler_no_builtin_flag \
-lt_prog_compiler_wl \
 lt_prog_compiler_pic \
+lt_prog_compiler_wl \
 lt_prog_compiler_static \
 lt_cv_prog_compiler_c_o \
 need_locks \
+MANIFEST_TOOL \
 DSYMUTIL \
 NMEDIT \
 LIPO \
@@ -17720,7 +16161,6 @@ no_undefined_flag \
 hardcode_libdir_flag_spec \
 hardcode_libdir_flag_spec_ld \
 hardcode_libdir_separator \
-fix_srcfile_path \
 exclude_expsyms \
 include_expsyms \
 file_list_spec \
@@ -17728,12 +16168,13 @@ variables_saved_for_relink \
 libname_spec \
 library_names_spec \
 soname_spec \
+install_override_mode \
 finish_eval \
 old_striplib \
 striplib; do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -17755,14 +16196,15 @@ module_cmds \
 module_expsym_cmds \
 export_symbols_cmds \
 prelink_cmds \
+postlink_cmds \
 postinstall_cmds \
 postuninstall_cmds \
 finish_cmds \
 sys_lib_search_path_spec \
 sys_lib_dlsearch_path_spec; do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -17770,12 +16212,6 @@ sys_lib_dlsearch_path_spec; do
     esac
 done
 
-# Fix-up fallback echo if it was mangled by the above quoting rules.
-case \$lt_ECHO in
-*'\\\$0 --fallback-echo"')  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\`
-  ;;
-esac
-
 ac_aux_dir='$ac_aux_dir'
 xsi_shell='$xsi_shell'
 lt_shell_append='$lt_shell_append'
     "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
     "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
     "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-    "barcode-0.98/Makefile") CONFIG_FILES="$CONFIG_FILES barcode-0.98/Makefile" ;;
-    "iec16022-0.2.1/Makefile") CONFIG_FILES="$CONFIG_FILES iec16022-0.2.1/Makefile" ;;
     "libglabels/Makefile") CONFIG_FILES="$CONFIG_FILES libglabels/Makefile" ;;
-    "libglabels/libglabels.pc") CONFIG_FILES="$CONFIG_FILES libglabels/libglabels.pc" ;;
+    "libglabels/${LIBGLABELS_BRANCH}.pc") CONFIG_FILES="$CONFIG_FILES libglabels/${LIBGLABELS_BRANCH}.pc" ;;
+    "libglbarcode/Makefile") CONFIG_FILES="$CONFIG_FILES libglbarcode/Makefile" ;;
+    "libglbarcode/${LIBGLBARCODE_BRANCH}.pc") CONFIG_FILES="$CONFIG_FILES libglbarcode/${LIBGLBARCODE_BRANCH}.pc" ;;
     "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
+    "src/cursors/Makefile") CONFIG_FILES="$CONFIG_FILES src/cursors/Makefile" ;;
     "src/pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES src/pixmaps/Makefile" ;;
-    "src/stock-pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES src/stock-pixmaps/Makefile" ;;
-    "src/mygal/Makefile") CONFIG_FILES="$CONFIG_FILES src/mygal/Makefile" ;;
     "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;;
-    "data/templates/Makefile") CONFIG_FILES="$CONFIG_FILES data/templates/Makefile" ;;
-    "data/pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES data/pixmaps/Makefile" ;;
-    "data/mime/Makefile") CONFIG_FILES="$CONFIG_FILES data/mime/Makefile" ;;
-    "data/glade/Makefile") CONFIG_FILES="$CONFIG_FILES data/glade/Makefile" ;;
     "data/desktop/Makefile") CONFIG_FILES="$CONFIG_FILES data/desktop/Makefile" ;;
-    "data/dtd/Makefile") CONFIG_FILES="$CONFIG_FILES data/dtd/Makefile" ;;
+    "data/icons/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/Makefile" ;;
+    "data/icons/16x16/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/16x16/Makefile" ;;
+    "data/icons/22x22/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/22x22/Makefile" ;;
+    "data/icons/24x24/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/24x24/Makefile" ;;
+    "data/icons/32x32/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/32x32/Makefile" ;;
+    "data/icons/48x48/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/48x48/Makefile" ;;
     "data/man/Makefile") CONFIG_FILES="$CONFIG_FILES data/man/Makefile" ;;
+    "data/mime/Makefile") CONFIG_FILES="$CONFIG_FILES data/mime/Makefile" ;;
+    "data/pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES data/pixmaps/Makefile" ;;
+    "data/schemas/Makefile") CONFIG_FILES="$CONFIG_FILES data/schemas/Makefile" ;;
+    "data/schemas/org.gnome.glabels-3.gschema.xml.in") CONFIG_FILES="$CONFIG_FILES data/schemas/org.gnome.glabels-3.gschema.xml.in" ;;
+    "data/ui/Makefile") CONFIG_FILES="$CONFIG_FILES data/ui/Makefile" ;;
+    "templates/Makefile") CONFIG_FILES="$CONFIG_FILES templates/Makefile" ;;
     "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
     "help/Makefile") CONFIG_FILES="$CONFIG_FILES help/Makefile" ;;
     "docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;;
     "docs/libglabels/Makefile") CONFIG_FILES="$CONFIG_FILES docs/libglabels/Makefile" ;;
+    "docs/libglbarcode/Makefile") CONFIG_FILES="$CONFIG_FILES docs/libglbarcode/Makefile" ;;
     "glabels.spec") CONFIG_FILES="$CONFIG_FILES glabels.spec" ;;
     "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;;
 
-  *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
+  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
 done
 
 # after its creation but before its name has been assigned to `$tmp'.
 $debug ||
 {
-  tmp=
+  tmp= ac_tmp=
   trap 'exit_status=$?
-  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+  : "${ac_tmp:=$tmp}"
+  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
 ' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
+  trap 'as_fn_exit 1' 1 2 13 15
 }
 # Create a (secure) tmp directory for tmp files.
 
 {
   tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
+  test -d "$tmp"
 }  ||
 {
   tmp=./conf$$-$RANDOM
   (umask 077 && mkdir "$tmp")
-} ||
-{
-   $as_echo "$as_me: cannot create a temporary directory in ." >&2
-   { (exit 1); exit 1; }
-}
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
 
 # Set up the scripts for CONFIG_FILES section.
 # No need to generate them if there are no CONFIG_FILES.
@@ -17885,7 +16324,13 @@ $debug ||
 if test -n "$CONFIG_FILES"; then
 
 
-ac_cr='\r'
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+  eval ac_cr=\$\'\\r\'
+fi
 ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
 if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
   ac_cs_awk_cr='\\r'
@@ -17893,7 +16338,7 @@ else
   ac_cs_awk_cr=$ac_cr
 fi
 
-echo 'BEGIN {' >"$tmp/subs1.awk" &&
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
 _ACEOF
 
 
@@ -17902,24 +16347,18 @@ _ACEOF
   echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
   echo "_ACEOF"
 } >conf$$subs.sh ||
-  { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
+  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   . ./conf$$subs.sh ||
-    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
 
   ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
   if test $ac_delim_n = $ac_delim_num; then
     break
   elif $ac_last_try; then
-    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
   else
     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
   fi
@@ -17927,7 +16366,7 @@ done
 rm -f conf$$subs.sh
 
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
 _ACEOF
 sed -n '
 h
@@ -17941,7 +16380,7 @@ s/'"$ac_delim"'$//
 t delim
 :nl
 h
-s/\(.\{148\}\).*/\1/
+s/\(.\{148\}\)..*/\1/
 t more1
 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
 p
@@ -17955,7 +16394,7 @@ s/.\{148\}//
 t nl
 :delim
 h
-s/\(.\{148\}\).*/\1/
+s/\(.\{148\}\)..*/\1/
 t more2
 s/["\\]/\\&/g; s/^/"/; s/$/"/
 p
@@ -17975,7 +16414,7 @@ t delim
 rm -f conf$$subs.awk
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 _ACAWK
-cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
   for (key in S) S_is_set[key] = 1
   FS = "\a"
 
@@ -18007,23 +16446,29 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
   sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
 else
   cat
-fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
-  || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5
-$as_echo "$as_me: error: could not setup config files machinery" >&2;}
-   { (exit 1); exit 1; }; }
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
 _ACEOF
 
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
 # trailing colons and then remove the whole line if VPATH becomes empty
 # (actually we leave an empty line to preserve line numbers).
 if test "x$srcdir" = x.; then
-  ac_vpsub='/^[         ]*VPATH[        ]*=/{
-s/:*\$(srcdir):*/:/
-s/:*\${srcdir}:*/:/
-s/:*@srcdir@:*/:/
-s/^\([^=]*=[    ]*\):*/\1/
+  ac_vpsub='/^[         ]*VPATH[        ]*=[    ]*/{
+h
+s///
+s/^/:/
+s/[     ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
 s/:*$//
+x
+s/\(=[  ]*\).*/\1/
+G
+s/\n//
 s/^[^=]*=[      ]*$//
 }'
 fi
@@ -18035,7 +16480,7 @@ fi # test -n "$CONFIG_FILES"
 # No need to generate them if there are no CONFIG_HEADERS.
 # This happens for instance with `./config.status Makefile'.
 if test -n "$CONFIG_HEADERS"; then
-cat >"$tmp/defines.awk" <<\_ACAWK ||
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
 BEGIN {
 _ACEOF
 
@@ -18047,13 +16492,11 @@ _ACEOF
 # handling of long lines.
 ac_delim='%!_!# '
 for ac_last_try in false false :; do
-  ac_t=`sed -n "/$ac_delim/p" confdefs.h`
-  if test -z "$ac_t"; then
+  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+  if test -z "$ac_tt"; then
     break
   elif $ac_last_try; then
-    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
   else
     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
   fi
@@ -18138,9 +16581,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 _ACAWK
 _ACEOF
 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-  { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5
-$as_echo "$as_me: error: could not setup config headers machinery" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
 fi # test -n "$CONFIG_HEADERS"
 
 
@@ -18153,9 +16594,7 @@ do
   esac
   case $ac_mode$ac_tag in
   :[FHL]*:*);;
-  :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5
-$as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
-   { (exit 1); exit 1; }; };;
+  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
   :[FH]-) ac_tag=-:-;;
   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
   esac
@@ -18174,7 +16613,7 @@ $as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
     for ac_f
     do
       case $ac_f in
-      -) ac_f="$tmp/stdin";;
+      -) ac_f="$ac_tmp/stdin";;
       *) # Look for the file first in the build tree, then in the source tree
         # (if the path is not absolute).  The absolute path cannot be DOS-style,
         # because $ac_f cannot contain `:'.
@@ -18183,12 +16622,10 @@ $as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
           [\\/$]*) false;;
           *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
           esac ||
-          { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
-$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
-   { (exit 1); exit 1; }; };;
+          as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
       esac
       case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
-      ac_file_inputs="$ac_file_inputs '$ac_f'"
+      as_fn_append ac_file_inputs " '$ac_f'"
     done
 
     # Let's still pretend it is `configure' which instantiates (i.e., don't
@@ -18199,7 +16636,7 @@ $as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
        `' by configure.'
     if test x"$ac_file" != x-; then
       configure_input="$ac_file.  $configure_input"
-      { $as_echo "$as_me:$LINENO: creating $ac_file" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
 $as_echo "$as_me: creating $ac_file" >&6;}
     fi
     # Neutralize special characters interpreted by sed in replacement strings.
@@ -18211,10 +16648,8 @@ $as_echo "$as_me: creating $ac_file" >&6;}
     esac
 
     case $ac_tag in
-    *:-:* | *:-) cat >"$tmp/stdin" \
-      || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; } ;;
+    *:-:* | *:-) cat >"$ac_tmp/stdin" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
     esac
     ;;
   esac
@@ -18242,47 +16677,7 @@ $as_echo X"$ac_file" |
            q
          }
          s/.*/./; q'`
-  { as_dir="$ac_dir"
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$as_dir" : 'X\(//\)[^/]' \| \
-        X"$as_dir" : 'X\(//\)$' \| \
-        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)[^/].*/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\).*/{
-           s//\1/
-           q
-         }
-         s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
-   { (exit 1); exit 1; }; }; }
+  as_dir="$ac_dir"; as_fn_mkdir_p
   ac_builddir=.
 
 case "$ac_dir" in
@@ -18339,7 +16734,6 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # If the template does not know about datarootdir, expand it.
 # FIXME: This hack should be removed a few years after 2.60.
 ac_datarootdir_hack=; ac_datarootdir_seen=
-
 ac_sed_dataroot='
 /datarootdir/ {
   p
@@ -18349,12 +16743,11 @@ ac_sed_dataroot='
 /@docdir@/p
 /@infodir@/p
 /@localedir@/p
-/@mandir@/p
-'
+/@mandir@/p'
 case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
 *datarootdir*) ac_datarootdir_seen=yes;;
 *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
@@ -18364,7 +16757,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
   s&@infodir@&$infodir&g
   s&@localedir@&$localedir&g
   s&@mandir@&$mandir&g
-    s&\\\${datarootdir}&$datarootdir&g' ;;
+  s&\\\${datarootdir}&$datarootdir&g' ;;
 esac
 _ACEOF
 
@@ -18392,27 +16785,24 @@ s&@INSTALL@&$ac_INSTALL&;t t
 s&@MKDIR_P@&$ac_MKDIR_P&;t t
 $ac_datarootdir_hack
 "
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
-  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; }
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
 
 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
-  { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
-  { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined." >&5
+  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' \
+      "$ac_tmp/out"`; test -z "$ac_out"; } &&
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&5
 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined." >&2;}
+which seems to be undefined.  Please make sure it is defined" >&2;}
 
-  rm -f "$tmp/stdin"
+  rm -f "$ac_tmp/stdin"
   case $ac_file in
-  -) cat "$tmp/out" && rm -f "$tmp/out";;
-  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
   esac \
-  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; }
+  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
  ;;
   :H)
   #
@@ -18421,27 +16811,21 @@ $as_echo "$as_me: error: could not create $ac_file" >&2;}
   if test x"$ac_file" != x-; then
     {
       $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
-    } >"$tmp/config.h" \
-      || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; }
-    if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
-      { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+    } >"$ac_tmp/config.h" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
 $as_echo "$as_me: $ac_file is unchanged" >&6;}
     else
       rm -f "$ac_file"
-      mv "$tmp/config.h" "$ac_file" \
-       || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; }
+      mv "$ac_tmp/config.h" "$ac_file" \
+       || as_fn_error $? "could not create $ac_file" "$LINENO" 5
     fi
   else
     $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
-      || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5
-$as_echo "$as_me: error: could not create -" >&2;}
-   { (exit 1); exit 1; }; }
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+      || as_fn_error $? "could not create -" "$LINENO" 5
   fi
 # Compute "$ac_file"'s index in $config_headers.
 _am_arg="$ac_file"
@@ -18479,7 +16863,7 @@ $as_echo X"$_am_arg" |
          s/.*/./; q'`/stamp-h$_am_stamp_count
  ;;
 
-  :C)  { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5
+  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
 $as_echo "$as_me: executing $ac_file commands" >&6;}
  ;;
   esac
@@ -18574,47 +16958,7 @@ $as_echo X"$file" |
            q
          }
          s/.*/./; q'`
-      { as_dir=$dirpart/$fdir
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$as_dir" : 'X\(//\)[^/]' \| \
-        X"$as_dir" : 'X\(//\)$' \| \
-        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)[^/].*/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\).*/{
-           s//\1/
-           q
-         }
-         s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
-   { (exit 1); exit 1; }; }; }
+      as_dir=$dirpart/$fdir; as_fn_mkdir_p
       # echo "creating $dirpart/$file"
       echo '# dummy' > "$dirpart/$file"
     done
@@ -18642,7 +16986,8 @@ $as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 #
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
+#                 Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 #   This file is part of GNU Libtool.
@@ -18690,6 +17035,12 @@ pic_mode=$pic_mode
 # Whether or not to optimize for fast installation.
 fast_install=$enable_fast_install
 
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# An echo program that protects backslashes.
+ECHO=$lt_ECHO
+
 # The host system.
 host_alias=$host_alias
 host=$host
@@ -18739,9 +17090,11 @@ SP2NL=$lt_lt_SP2NL
 # turn newlines into spaces.
 NL2SP=$lt_lt_NL2SP
 
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
+# convert \$build file names to \$host format.
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+
+# convert \$build files to toolchain format.
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
 
 # An object symbol dumper.
 OBJDUMP=$lt_OBJDUMP
@@ -18749,13 +17102,30 @@ OBJDUMP=$lt_OBJDUMP
 # Method to check whether dependent libraries are shared objects.
 deplibs_check_method=$lt_deplibs_check_method
 
-# Command to use when deplibs_check_method == "file_magic".
+# Command to use when deplibs_check_method = "file_magic".
 file_magic_cmd=$lt_file_magic_cmd
 
+# How to find potential files when deplibs_check_method = "file_magic".
+file_magic_glob=$lt_file_magic_glob
+
+# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
+want_nocaseglob=$lt_want_nocaseglob
+
+# DLL creation program.
+DLLTOOL=$lt_DLLTOOL
+
+# Command to associate shared and link libraries.
+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
+
 # The archiver.
 AR=$lt_AR
+
+# Flags to create an archive.
 AR_FLAGS=$lt_AR_FLAGS
 
+# How to feed a file listing to the archiver.
+archiver_list_spec=$lt_archiver_list_spec
+
 # A symbol stripping program.
 STRIP=$lt_STRIP
 
@@ -18764,6 +17134,9 @@ RANLIB=$lt_RANLIB
 old_postinstall_cmds=$lt_old_postinstall_cmds
 old_postuninstall_cmds=$lt_old_postuninstall_cmds
 
+# Whether to use a lock for old archive extraction.
+lock_old_archive_extraction=$lock_old_archive_extraction
+
 # A C compiler.
 LTCC=$lt_CC
 
@@ -18782,14 +17155,14 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
 # Transform the output of nm in a C name address pair when lib prefix is needed.
 global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
 
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
+# Specify filename containing input files for \$NM.
+nm_file_list_spec=$lt_nm_file_list_spec
 
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
+# The root where to search for dependent libraries,and in which our libraries should be installed.
+lt_sysroot=$lt_sysroot
 
-# An echo program that does not interpret backslashes.
-ECHO=$lt_ECHO
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
 
 # Used to examine libraries when file_magic_cmd begins with "file".
 MAGIC_CMD=$MAGIC_CMD
@@ -18797,6 +17170,9 @@ MAGIC_CMD=$MAGIC_CMD
 # Must we lock files when doing compilation?
 need_locks=$lt_need_locks
 
+# Manifest tool.
+MANIFEST_TOOL=$lt_MANIFEST_TOOL
+
 # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
 DSYMUTIL=$lt_DSYMUTIL
 
@@ -18853,6 +17229,9 @@ library_names_spec=$lt_library_names_spec
 # The coded name of the library, if different from the real name.
 soname_spec=$lt_soname_spec
 
+# Permission mode override for installation of shared libraries.
+install_override_mode=$lt_install_override_mode
+
 # Command to use after installation of a shared archive.
 postinstall_cmds=$lt_postinstall_cmds
 
@@ -18892,6 +17271,10 @@ striplib=$lt_striplib
 # The linker used to build libraries.
 LD=$lt_LD
 
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
 # Commands used to build an old-style archive.
 old_archive_cmds=$lt_old_archive_cmds
 
@@ -18904,12 +17287,12 @@ with_gcc=$GCC
 # Compiler flag to turn off builtin functions.
 no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
 
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
 # Additional compiler flags for building library objects.
 pic_flag=$lt_lt_prog_compiler_pic
 
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
 # Compiler flag to prevent dynamic linking.
 link_static_flag=$lt_lt_prog_compiler_static
 
@@ -18996,9 +17379,6 @@ inherit_rpath=$inherit_rpath
 # Whether libtool must link a program against all its dependency libraries.
 link_all_deplibs=$link_all_deplibs
 
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path=$lt_fix_srcfile_path
-
 # Set to "yes" if exported symbols are required.
 always_export_symbols=$always_export_symbols
 
@@ -19014,6 +17394,9 @@ include_expsyms=$lt_include_expsyms
 # Commands necessary for linking programs (against libraries) with templates.
 prelink_cmds=$lt_prelink_cmds
 
+# Commands necessary for finishing linking programs.
+postlink_cmds=$lt_postlink_cmds
+
 # Specify filename containing input files.
 file_list_spec=$lt_file_list_spec
 
@@ -19046,212 +17429,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
   # if finds mixed CR/LF and LF-only lines.  Since sed operates in
   # text mode, it properly converts lines to CR/LF.  This bash problem
   # is reportedly fixed, but why not run on old versions too?
-  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  case $xsi_shell in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result="${1##*/}"
-}
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-#   dirname:  Compute the dirname of FILE.  If nonempty,
-#             add APPEND to the result, otherwise set result
-#             to NONDIR_REPLACEMENT.
-#             value returned in "$func_dirname_result"
-#   basename: Compute filename of FILE.
-#             value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-  func_basename_result="${1##*/}"
-}
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-func_stripname ()
-{
-  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-  # positional parameters, so assign one to ordinary parameter first.
-  func_stripname_result=${3}
-  func_stripname_result=${func_stripname_result#"${1}"}
-  func_stripname_result=${func_stripname_result%"${2}"}
-}
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=${1%%=*}
-  func_opt_split_arg=${1#*=}
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  case ${1} in
-    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-    *)    func_lo2o_result=${1} ;;
-  esac
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=${1%.*}.lo
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=$(( $* ))
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=${#1}
-}
-
-_LT_EOF
-    ;;
-  *) # Bourne compatible functions.
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  # Extract subdirectory from the argument.
-  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
-  if test "X$func_dirname_result" = "X${1}"; then
-    func_dirname_result="${3}"
-  else
-    func_dirname_result="$func_dirname_result${2}"
-  fi
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
-}
-
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
-  case ${2} in
-    .*) func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
-    *)  func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
-  esac
-}
-
-# sed scripts:
-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
-my_sed_long_arg='1s/^-[^=]*=//'
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
-  func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'`
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=`expr "$@"`
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
-}
-
-_LT_EOF
-esac
-
-case $lt_shell_append in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$1+=\$2"
-}
-_LT_EOF
-    ;;
-  *)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$1=\$$1\$2"
-}
-
-_LT_EOF
-    ;;
-  esac
-
-
-  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" ||
+  sed '$q' "$ltmain" >> "$cfgfile" \
+     || (rm -f "$cfgfile"; exit 1)
+
+  if test x"$xsi_shell" = xyes; then
+  sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
+func_dirname ()\
+{\
+\    case ${1} in\
+\      */*) func_dirname_result="${1%/*}${2}" ;;\
+\      *  ) func_dirname_result="${3}" ;;\
+\    esac\
+} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_basename ()$/,/^} # func_basename /c\
+func_basename ()\
+{\
+\    func_basename_result="${1##*/}"\
+} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
+func_dirname_and_basename ()\
+{\
+\    case ${1} in\
+\      */*) func_dirname_result="${1%/*}${2}" ;;\
+\      *  ) func_dirname_result="${3}" ;;\
+\    esac\
+\    func_basename_result="${1##*/}"\
+} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
+func_stripname ()\
+{\
+\    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
+\    # positional parameters, so assign one to ordinary parameter first.\
+\    func_stripname_result=${3}\
+\    func_stripname_result=${func_stripname_result#"${1}"}\
+\    func_stripname_result=${func_stripname_result%"${2}"}\
+} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
+func_split_long_opt ()\
+{\
+\    func_split_long_opt_name=${1%%=*}\
+\    func_split_long_opt_arg=${1#*=}\
+} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
+func_split_short_opt ()\
+{\
+\    func_split_short_opt_arg=${1#??}\
+\    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
+} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
+func_lo2o ()\
+{\
+\    case ${1} in\
+\      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
+\      *)    func_lo2o_result=${1} ;;\
+\    esac\
+} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_xform ()$/,/^} # func_xform /c\
+func_xform ()\
+{\
+    func_xform_result=${1%.*}.lo\
+} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_arith ()$/,/^} # func_arith /c\
+func_arith ()\
+{\
+    func_arith_result=$(( $* ))\
+} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_len ()$/,/^} # func_len /c\
+func_len ()\
+{\
+    func_len_result=${#1}\
+} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+fi
+
+if test x"$lt_shell_append" = xyes; then
+  sed -e '/^func_append ()$/,/^} # func_append /c\
+func_append ()\
+{\
+    eval "${1}+=\\${2}"\
+} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
+func_append_quoted ()\
+{\
+\    func_quote_for_eval "${2}"\
+\    eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
+} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  # Save a `func_append' function call where possible by direct use of '+='
+  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+else
+  # Save a `func_append' function call even when '+=' is not available
+  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+fi
+
+if test x"$_lt_function_replace_fail" = x":"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
+$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
+fi
+
+
+   mv -f "$cfgfile" "$ofile" ||
     (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
   chmod +x "$ofile"
 
@@ -19261,9 +17601,7 @@ _LT_EOF
       esac ;;
     "po/stamp-it":C)
     if  ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then
-       { { $as_echo "$as_me:$LINENO: error: po/Makefile.in.in was not created by intltoolize." >&5
-$as_echo "$as_me: error: po/Makefile.in.in was not created by intltoolize." >&2;}
-   { (exit 1); exit 1; }; }
+       as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5
     fi
     rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp"
     >"po/stamp-it.tmp"
@@ -19286,15 +17624,12 @@ $as_echo "$as_me: error: po/Makefile.in.in was not created by intltoolize." >&2;
 done # for ac_tag
 
 
-{ (exit 0); exit 0; }
+as_fn_exit 0
 _ACEOF
-chmod +x $CONFIG_STATUS
 ac_clean_files=$ac_clean_files_save
 
 test $ac_write_fail = 0 ||
-  { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
 
 
 # configure is writing to config.log, and then calls config.status.
@@ -19315,23 +17650,36 @@ if test "$no_create" != yes; then
   exec 5>>config.log
   # Use ||, not &&, to avoid exiting from the if with $? = 1, which
   # would make configure fail if this is the last instruction.
-  $ac_cs_success || { (exit 1); exit 1; }
+  $ac_cs_success || as_fn_exit 1
 fi
 if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-  { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
 fi
 
 
 
 echo "
+
 Configuration:
 
-       Package:                        ${PACKAGE}-${VERSION}:
-        Installation prefix             ${prefix}
-        Source code location:           ${srcdir}
-        Compiler:                       ${CC}
-       Evolution Data Server support:  ${have_libebook}
+        Package ................. ${PACKAGE}-${VERSION}
+        Installation prefix ..... ${prefix}
+        Source code location .... ${srcdir}
+        Compiler ................ ${CC}
+
+
+Optional data merge backends:
+
+        Evolution Data Server ... ${have_libebook}
 
-"
 
+Optional barcode backends:
+
+        GNU Barcode ............. ${have_libbarcode} ${help_libbarcode}
+        QR Code ................. ${have_libqrencode} ${help_libqrencode}
+        IEC 16022 ............... ${have_libiec16022} ${help_libiec16022}
+        Zint .................... ${have_libzint} ${help_libzint}
+
+
+"
diff --git a/configure.ac b/configure.ac
new file mode 100644 (file)
index 0000000..ebcb0c4
--- /dev/null
@@ -0,0 +1,378 @@
+dnl Process this file with autoconf to produce a configure script.
+
+
+dnl ---------------------------------------------------------------------------
+dnl - GLABELS version
+dnl ---------------------------------------------------------------------------
+m4_define([glabels_major_version], [3])
+m4_define([glabels_minor_version], [0])
+m4_define([glabels_micro_version], [0])
+
+m4_define([glabels_version],
+          [glabels_major_version.glabels_minor_version.glabels_micro_version])
+
+dnl ---------------------------------------------------------------------------
+
+
+AC_PREREQ(2.64)
+AC_INIT([glabels],[glabels_version],
+       [http://bugzilla.gnome.org/enter_bug.cgi?product=glabels],
+       [glabels])
+
+AC_CONFIG_SRCDIR(src/glabels.c)
+
+AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
+
+AM_MAINTAINER_MODE
+m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
+
+AC_CONFIG_HEADERS(config.h)
+
+IT_PROG_INTLTOOL([0.21])
+
+PKG_PROG_PKG_CONFIG
+
+LT_INIT
+
+GNOME_DOC_INIT
+GTK_DOC_CHECK(1.0)
+
+GLIB_GSETTINGS
+
+AC_SEARCH_LIBS([strerror],[cposix])
+AC_PROG_CC
+AC_PROG_INSTALL
+
+GNOME_COMPILE_WARNINGS
+
+AC_PATH_PROG(GLIB_GENMARSHAL,         glib-genmarshal)
+AC_PATH_PROG(GDK_PIXBUF_CSOURCE,      gdk-pixbuf-csource)
+AC_PATH_PROG(GTK_UPDATE_ICON_CACHE,   gtk-update-icon-cache)
+
+
+dnl ---------------------------------------------------------------------------
+dnl - GLABELS branch
+dnl ---------------------------------------------------------------------------
+GLABELS_BRANCH=glabels-3.0
+AC_SUBST(GLABELS_BRANCH)
+
+dnl ---------------------------------------------------------------------------
+dnl - LIBGLABELS branch
+dnl ---------------------------------------------------------------------------
+LIBGLABELS_BRANCH=libglabels-3.0
+AC_SUBST(LIBGLABELS_BRANCH)
+
+dnl ---------------------------------------------------------------------------
+dnl - LIBGLBARCODE branch
+dnl ---------------------------------------------------------------------------
+LIBGLBARCODE_BRANCH=libglbarcode-3.0
+AC_SUBST(LIBGLBARCODE_BRANCH)
+
+dnl ---------------------------------------------------------------------------
+dnl - LIBGLABELS API versioning
+dnl ---------------------------------------------------------------------------
+dnl From the libtool manual:
+dnl 1. Start with version information of `0:0:0' for each libtool library.
+dnl 2. Update the version information only immediately before a public release.
+dnl    More frequent updates are unnecessary, and only guarantee that the current
+dnl    interface number gets larger faster.
+dnl 3. If the library source code has changed at all since the last update, then increment
+dnl    revision (`c:r:a' becomes `c:r+1:a').
+dnl 4. If any interfaces have been added, removed, or changed since the last update,
+dnl    increment current, and set revision to 0.
+dnl 5. If any interfaces have been added since the last public release, then increment age.
+dnl 6. If any interfaces have been removed since the last public release, then set age
+dnl    to 0.
+LIBGLABELS_C=8
+LIBGLABELS_R=0
+LIBGLABELS_A=0
+
+LIBGLABELS_API_VERSION=${LIBGLABELS_C}:${LIBGLABELS_R}:${LIBGLABELS_A}
+AC_SUBST(LIBGLABELS_API_VERSION)
+
+dnl ---------------------------------------------------------------------------
+dnl - LIBGLBARCODE API versioning
+dnl ---------------------------------------------------------------------------
+dnl From the libtool manual:
+dnl 1. Start with version information of `0:0:0' for each libtool library.
+dnl 2. Update the version information only immediately before a public release.
+dnl    More frequent updates are unnecessary, and only guarantee that the current
+dnl    interface number gets larger faster.
+dnl 3. If the library source code has changed at all since the last update, then increment
+dnl    revision (`c:r:a' becomes `c:r+1:a').
+dnl 4. If any interfaces have been added, removed, or changed since the last update,
+dnl    increment current, and set revision to 0.
+dnl 5. If any interfaces have been added since the last public release, then increment age.
+dnl 6. If any interfaces have been removed since the last public release, then set age
+dnl    to 0.
+LIBGLBARCODE_C=0
+LIBGLBARCODE_R=0
+LIBGLBARCODE_A=0
+
+LIBGLBARCODE_API_VERSION=${LIBGLBARCODE_C}:${LIBGLBARCODE_R}:${LIBGLBARCODE_A}
+AC_SUBST(LIBGLBARCODE_API_VERSION)
+
+dnl ---------------------------------------------------------------------------
+dnl - Library dependencies
+dnl ---------------------------------------------------------------------------
+dnl Required dependencies
+GLIB_REQUIRED=2.28.2
+GTK_REQUIRED=3.0.9
+LIBXML_REQUIRED=2.7.8
+LIBRSVG_REQUIRED=2.32.0
+CAIRO_REQUIRED=1.10.0
+PANGO_REQUIRED=1.28.1
+
+dnl Optional dependencies
+LIBEBOOK_REQUIRED=2.30.3
+LIBBARCODE_REQUIRED=0.98
+LIBQRENCODE_REQUIRED=3.1.0
+LIBIEC16022_REQUIRED=0.2.4
+LIBZINT_REQUIRED=2.4.0
+
+dnl Make above strings available for packaging files (e.g. rpm spec files)
+AC_SUBST(GLIB_REQUIRED)
+AC_SUBST(GTK_REQUIRED)
+AC_SUBST(LIBXML_REQUIRED)
+AC_SUBST(LIBRSVG_REQUIRED)
+AC_SUBST(CAIRO_REQUIRED)
+AC_SUBST(PANGO_REQUIRED)
+AC_SUBST(LIBEBOOK_REQUIRED)
+AC_SUBST(LIBBARCODE_REQUIRED)
+AC_SUBST(LIBQRENCODE_REQUIRED)
+AC_SUBST(LIBIEC16022_REQUIRED)
+AC_SUBST(LIBZINT_REQUIRED)
+
+
+dnl ---------------------------------------------------------------------------
+dnl - GLABELS prerequisites
+dnl ---------------------------------------------------------------------------
+PKG_CHECK_MODULES(GLABELS, [\
+       glib-2.0 >= $GLIB_REQUIRED \
+       gtk+-3.0 >= $GTK_REQUIRED \
+       libxml-2.0 >= $LIBXML_REQUIRED \
+       librsvg-2.0 >= $LIBRSVG_REQUIRED \
+])
+
+AC_SUBST(GLABELS_CFLAGS)
+AC_SUBST(GLABELS_LIBS)
+
+
+dnl ---------------------------------------------------------------------------
+dnl - LIBGLABELS more modest prerequisites
+dnl ---------------------------------------------------------------------------
+PKG_CHECK_MODULES(LIBGLABELS, [\
+       glib-2.0 >= $GLIB_REQUIRED \
+       libxml-2.0 >= $LIBXML_REQUIRED \
+])
+
+AC_SUBST(LIBGLABELS_CFLAGS)
+AC_SUBST(LIBGLABELS_LIBS)
+
+
+dnl ---------------------------------------------------------------------------
+dnl - LIBGLBARCODE more modest prerequisites
+dnl ---------------------------------------------------------------------------
+PKG_CHECK_MODULES(LIBGLBARCODE, [\
+       glib-2.0 >= $GLIB_REQUIRED \
+       cairo >= $CAIRO_REQUIRED \
+       pango >= $PANGO_REQUIRED \
+])
+
+AC_SUBST(LIBGLBARCODE_CFLAGS)
+AC_SUBST(LIBGLBARCODE_LIBS)
+
+
+dnl ---------------------------------------------------------------------------
+dnl - Check for optional evolution data server
+dnl ---------------------------------------------------------------------------
+AC_ARG_WITH(libebook,
+           [AS_HELP_STRING([--without-libebook],[build without Evolution Data Server support])])
+have_libebook=no
+if test "x$with_libebook" != xno; then
+       PKG_CHECK_MODULES(LIBEBOOK, libebook-1.2 >= $LIBEBOOK_REQUIRED,
+                         [have_libebook=yes], [have_libebook=no])
+fi
+
+if test "x$have_libebook" = "xyes"; then
+       AC_DEFINE(HAVE_LIBEBOOK,1,[Define to 1 for EDS support])
+       AC_SUBST(LIBEBOOK_CFLAGS)
+       AC_SUBST(LIBEBOOK_LIBS)
+fi
+
+
+dnl ---------------------------------------------------------------------------
+dnl - Check for optional GNU Barcode backend
+dnl ---------------------------------------------------------------------------
+AC_ARG_WITH(libbarcode,
+           [AS_HELP_STRING([--without-libbarcode],[build without GNU Barcode support])])
+have_libbarcode=no
+if test "x$with_libbarcode" != xno; then
+   AC_CHECK_LIB(barcode, Barcode_Create,
+               [have_libbarcode=yes], [have_libbarcode=no])
+fi
+
+if test "x$have_libbarcode" = "xyes"; then
+       AC_DEFINE(HAVE_LIBBARCODE,1,[Define to 1 for GNU Barcode support])
+       LIBBARCODE_CFLAGS=""
+       LIBBARCODE_LIBS="-lbarcode"
+       AC_SUBST(LIBBARCODE_CFLAGS)
+       AC_SUBST(LIBBARCODE_LIBS)
+else
+       help_libbarcode="(See http://www.gnu.org/software/barcode/barcode.html)"
+fi
+
+dnl ---------------------------------------------------------------------------
+dnl - Check for optional Zint backend
+dnl ---------------------------------------------------------------------------
+AC_ARG_WITH(libzint,
+           [AS_HELP_STRING([--without-libzint],[build without Zint Barcode support])])
+have_libzint=no
+if test "x$with_libzint" != xno; then
+   AC_CHECK_LIB(zint, ZBarcode_Render,
+               [have_libzint=yes], [have_libzint=no])
+fi
+
+if test "x$have_libzint" = "xyes"; then
+       AC_DEFINE(HAVE_LIBZINT,1,[Define to 1 for Zint Barcode support])
+       LIBZINT_CFLAGS=""
+       LIBZINT_LIBS="-lzint"
+       AC_SUBST(LIBZINT_CFLAGS)
+       AC_SUBST(LIBZINT_LIBS)
+else
+       help_libzint="(See http://www.zint.org.uk)"
+fi
+
+
+dnl ---------------------------------------------------------------------------
+dnl - Check for optional QRencode Barcode backend
+dnl ---------------------------------------------------------------------------
+AC_ARG_WITH(libqrencode,
+           [AS_HELP_STRING([--without-libqrencode],[build without QR code support])])
+have_libqrencode=no
+if test "x$with_libqrencode" != xno; then
+       PKG_CHECK_MODULES(LIBQRENCODE, libqrencode >= $LIBQRENCODE_REQUIRED,
+                         [have_libqrencode=yes], [have_libqrencode=no])
+fi
+
+if test "x$have_libqrencode" = "xyes"; then
+       AC_DEFINE(HAVE_LIBQRENCODE,1,[Define to 1 for QR code support])
+       AC_SUBST(LIBQRENCODE_CFLAGS)
+       AC_SUBST(LIBQRENCODE_LIBS)
+else
+       help_libqrencode="(See http://megaui.net/fukuchi/works/qrencode/index.en.html)"
+fi
+
+
+dnl ---------------------------------------------------------------------------
+dnl - Check for IEC16022 Barcode backend
+dnl ---------------------------------------------------------------------------
+AC_ARG_WITH(libiec16022,
+           [AS_HELP_STRING([--without-libiec16022],[build without IEC 16022 support])])
+have_libiec16022=no
+if test "x$with_libiec16022" != xno; then
+       PKG_CHECK_MODULES(LIBIEC16022, libiec16022 >= $LIBIEC16022_REQUIRED,
+                         [have_libiec16022=yes], [have_libiec16022=no])
+fi
+
+if test "x$have_libiec16022" = "xyes"; then
+       AC_DEFINE(HAVE_LIBIEC16022,1,[Define to 1 for IEC 16022 support])
+       AC_SUBST(LIBIEC16022_CFLAGS)
+       AC_SUBST(LIBIEC16022_LIBS)
+else
+       help_libiec16022="(See http://datenfreihafen.org/projects/iec16022.html)"
+fi
+
+
+dnl ---------------------------------------------------------------------------
+dnl - Enable deprecation testing
+dnl ---------------------------------------------------------------------------
+AC_ARG_ENABLE(deprecations,
+              [AS_HELP_STRING([--enable-deprecations],[warn about deprecated usages [default=no]])],,
+              [enable_deprecations=no])
+
+if test "x$enable_deprecations" = "xyes"; then
+   DISABLE_DEPRECATED_CFLAGS="\
+-DG_DISABLE_DEPRECATED \
+-DGDK_DISABLE_DEPRECATED \
+-DGTK_DISABLE_DEPRECATED \
+-DGDK_PIXBUF_DISABLE_DEPRECATED \
+"
+   AC_SUBST(DISABLE_DEPRECATED_CFLAGS)
+fi
+
+
+dnl ---------------------------------------------------------------------------
+dnl - i18n support
+dnl ---------------------------------------------------------------------------
+GETTEXT_PACKAGE=${GLABELS_BRANCH}
+AC_SUBST(GETTEXT_PACKAGE)
+AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Gettext package])
+
+AM_GLIB_GNU_GETTEXT
+
+
+dnl ---------------------------------------------------------------------------
+dnl - Makefiles, etc.
+dnl ---------------------------------------------------------------------------
+AC_CONFIG_FILES([
+Makefile
+libglabels/Makefile
+libglabels/${LIBGLABELS_BRANCH}.pc
+libglbarcode/Makefile
+libglbarcode/${LIBGLBARCODE_BRANCH}.pc
+src/Makefile
+src/cursors/Makefile
+src/pixmaps/Makefile
+data/Makefile
+data/desktop/Makefile
+data/icons/Makefile
+data/icons/16x16/Makefile
+data/icons/22x22/Makefile
+data/icons/24x24/Makefile
+data/icons/32x32/Makefile
+data/icons/48x48/Makefile
+data/man/Makefile
+data/mime/Makefile
+data/pixmaps/Makefile
+data/schemas/Makefile
+data/schemas/org.gnome.glabels-3.gschema.xml.in
+data/ui/Makefile
+templates/Makefile
+po/Makefile.in
+help/Makefile
+docs/Makefile
+docs/libglabels/Makefile
+docs/libglbarcode/Makefile
+glabels.spec
+])
+AC_OUTPUT
+
+
+dnl ---------------------------------------------------------------------------
+dnl - Print configuration information
+dnl ---------------------------------------------------------------------------
+echo "
+
+Configuration:
+
+        Package ................. ${PACKAGE}-${VERSION}
+        Installation prefix ..... ${prefix}
+        Source code location .... ${srcdir}
+        Compiler ................ ${CC} 
+
+
+Optional data merge backends:
+
+        Evolution Data Server ... ${have_libebook}
+
+
+Optional barcode backends:
+
+        GNU Barcode ............. ${have_libbarcode} ${help_libbarcode}
+        QR Code ................. ${have_libqrencode} ${help_libqrencode}
+        IEC 16022 ............... ${have_libiec16022} ${help_libiec16022}
+        Zint .................... ${have_libzint} ${help_libzint}
+
+
+"
diff --git a/configure.in b/configure.in
deleted file mode 100644 (file)
index 0258b0f..0000000
+++ /dev/null
@@ -1,234 +0,0 @@
-dnl Process this file with autoconf to produce a configure script.
-
-AC_PREREQ(2.52)
-
-AC_INIT(glabels, 2.2.8, http://sourceforge.net/tracker/?func=add&group_id=46122&atid=445116)
-AC_CONFIG_SRCDIR(src/glabels.c)
-AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
-GNOME_DOC_INIT
-
-AM_MAINTAINER_MODE
-AM_CONFIG_HEADER(config.h)
-
-AC_PROG_INTLTOOL([0.21])
-PKG_PROG_PKG_CONFIG
-
-AM_PROG_LIBTOOL
-
-AC_ISC_POSIX
-AC_PROG_CC
-AM_PROG_CC_STDC
-AC_HEADER_STDC
-
-GNOME_COMPILE_WARNINGS
-
-AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
-
-GTK_DOC_CHECK(1.0)
-
-dnl ---------------------------------------------------------------------------
-dnl - LIBGLABELS API versioning
-dnl ---------------------------------------------------------------------------
-dnl From the libtool manual:
-dnl 1. Start with version information of `0:0:0' for each libtool library.
-dnl 2. Update the version information only immediately before a public release.
-dnl    More frequent updates are unnecessary, and only guarantee that the current
-dnl    interface number gets larger faster.
-dnl 3. If the library source code has changed at all since the last update, then increment
-dnl    revision (`c:r:a' becomes `c:r+1:a').
-dnl 4. If any interfaces have been added, removed, or changed since the last update,
-dnl    increment current, and set revision to 0.
-dnl 5. If any interfaces have been added since the last public release, then increment age.
-dnl 6. If any interfaces have been removed since the last public release, then set age
-dnl    to 0.
-LIBGLABELS_C=6
-LIBGLABELS_R=2
-LIBGLABELS_A=1
-
-LIBGLABELS_VERSION_INFO=${LIBGLABELS_C}:${LIBGLABELS_R}:${LIBGLABELS_A}
-AC_SUBST(LIBGLABELS_VERSION_INFO)
-
-
-dnl ---------------------------------------------------------------------------
-dnl - Library dependencies
-dnl ---------------------------------------------------------------------------
-GLIB_REQUIRED=2.12.0
-GTK_REQUIRED=2.10.0
-LIBGNOME_REQUIRED=2.16.0
-LIBGNOMEUI_REQUIRED=2.16.0
-LIBXML_REQUIRED=2.6.0
-LIBGLADE_REQUIRED=2.6.0
-LIBEBOOK_REQUIRED=1.8.0
-
-dnl Make above strings available for packaging files (e.g. rpm spec files)
-AC_SUBST(GLIB_REQUIRED)
-AC_SUBST(GTK_REQUIRED)
-AC_SUBST(LIBGNOME_REQUIRED)
-AC_SUBST(LIBGNOMEUI_REQUIRED)
-AC_SUBST(LIBXML_REQUIRED)
-AC_SUBST(LIBGLADE_REQUIRED)
-AC_SUBST(LIBEBOOK_REQUIRED)
-
-
-dnl ---------------------------------------------------------------------------
-dnl - Check for evolution data server
-dnl ---------------------------------------------------------------------------
-AC_ARG_WITH(libebook,
-           [AC_HELP_STRING([--without-libebook],
-                            [build without Evolution Data Server support])])
-have_libebook=no
-if test "x$with_libebook" != xno; then
-       PKG_CHECK_MODULES(LIBEBOOK, libebook-1.2 >= $LIBEBOOK_REQUIRED,
-                         [have_libebook=yes], [have_libebook=no])
-fi
-
-if test "x$have_libebook" = "xyes"; then
-       AC_DEFINE(HAVE_LIBEBOOK,1,[Define to 1 for EDS support])
-       OPTIONAL_MODULES="$OPTIONAL_MODULES libebook-1.2 >= $LIBEBOOK_REQUIRED"
-fi
-
-
-dnl ---------------------------------------------------------------------------
-dnl - GLABELS prerequisites
-dnl ---------------------------------------------------------------------------
-PKG_CHECK_MODULES(GLABELS, \
-glib-2.0 >= $GLIB_REQUIRED \
-gtk+-2.0 >= $GTK_REQUIRED \
-libgnome-2.0 >= $LIBGNOME_REQUIRED \
-libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \
-libxml-2.0 >= $LIBXML_REQUIRED \
-libglade-2.0 >= $LIBGLADE_REQUIRED \
-$OPTIONAL_MODULES \
-)
-
-AC_SUBST(GLABELS_CFLAGS)
-AC_SUBST(GLABELS_LIBS)
-
-
-dnl ---------------------------------------------------------------------------
-dnl - LIBGLABELS more modest prerequisites
-dnl ---------------------------------------------------------------------------
-PKG_CHECK_MODULES(LIBGLABELS, \
-glib-2.0 >= $GLIB_REQUIRED \
-libxml-2.0 >= $LIBXML_REQUIRED \
-)
-
-AC_SUBST(LIBGLABELS_CFLAGS)
-AC_SUBST(LIBGLABELS_LIBS)
-
-
-dnl ---------------------------------------------------------------------------
-dnl - MYGAL prerequisites
-dnl ---------------------------------------------------------------------------
-PKG_CHECK_MODULES(MYGAL, \
-gtk+-2.0 >= $GTK_REQUIRED \
-libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \
-)
-
-AC_SUBST(MYGAL_CFLAGS)
-AC_SUBST(MYGAL_LIBS)
-
-
-dnl ---------------------------------------------------------------------------
-dnl - Is XML_PARSE_HUGE available?
-dnl ---------------------------------------------------------------------------
-PKG_CHECK_MODULES(XML_PARSE_HUGE, libxml-2.0 >= 2.7.0,
-                  HAVE_XML_PARSE_HUGE="-DHAVE_XML_PARSE_HUGE",
-                  HAVE_XML_PARSE_HUGE="-UHAVE_XML_PARSE_HUGE")
-AC_SUBST(HAVE_XML_PARSE_HUGE)
-
-
-dnl ---------------------------------------------------------------------------
-dnl - Enable deprecation testing
-dnl ---------------------------------------------------------------------------
-AC_ARG_ENABLE(deprecations,
-              [AC_HELP_STRING([--enable-deprecations],
-                              [warn about deprecated usages [default=no]])],,
-              [enable_deprecations=no])
-
-if test "x$enable_deprecations" = "xyes"; then
-   DISABLE_DEPRECATED_CFLAGS="\
--DG_DISABLE_DEPRECATED \
--DGDK_DISABLE_DEPRECATED \
--DGTK_DISABLE_DEPRECATED \
--DGDK_PIXBUF_DISABLE_DEPRECATED \
--DGNOME_DISABLE_DEPRECATED \
--DLIBGLADE_DISABLE_DEPRECATED"
-   AC_SUBST(DISABLE_DEPRECATED_CFLAGS)
-fi
-
-
-dnl ---------------------------------------------------------------------------
-dnl - Is freedesktop mime dbase available?
-dnl ---------------------------------------------------------------------------
-AC_PATH_PROG(UPDATE_MIME_DATABASE, update-mime-database, no)
-AM_CONDITIONAL(HAVE_NEW_MIME, test x$UPDATE_MIME_DATABASE != xno)
-
-AC_PATH_PROG(UPDATE_DESKTOP_DATABASE, update-desktop-database, no)
-AM_CONDITIONAL(HAVE_NEWER_MIME, test x$UPDATE_DESKTOP_DATABASE != xno)
-
-AC_ARG_ENABLE(update-mimedb, AC_HELP_STRING([--disable-update-mimedb],
-              [disable the update-mime-database after install [default=no]]),,
-              enable_update_mimedb=yes)
-AM_CONDITIONAL(ENABLE_UPDATE_MIMEDB, test x$enable_update_mimedb = xyes)
-
-AC_ARG_ENABLE(update-desktopdb, AC_HELP_STRING([--disable-update-desktopdb],
-              [disable the update-desktop-database after install [default=no]]),,
-              enable_update_desktopdb=yes)
-AM_CONDITIONAL(ENABLE_UPDATE_DESKTOPDB, test x$enable_update_desktopdb = xyes)
-
-
-dnl ---------------------------------------------------------------------------
-dnl - Supported languages
-dnl ---------------------------------------------------------------------------
-GETTEXT_PACKAGE=glabels
-AC_SUBST(GETTEXT_PACKAGE)
-AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Gettext package])
-
-AM_GLIB_GNU_GETTEXT
-
-
-dnl ---------------------------------------------------------------------------
-dnl - Makefiles, etc.
-dnl ---------------------------------------------------------------------------
-AC_OUTPUT([
-Makefile
-barcode-0.98/Makefile
-iec16022-0.2.1/Makefile
-libglabels/Makefile
-libglabels/libglabels.pc
-src/Makefile
-src/pixmaps/Makefile
-src/stock-pixmaps/Makefile
-src/mygal/Makefile
-data/Makefile
-data/templates/Makefile
-data/pixmaps/Makefile
-data/mime/Makefile
-data/glade/Makefile
-data/desktop/Makefile
-data/dtd/Makefile
-data/man/Makefile
-po/Makefile.in
-help/Makefile
-docs/Makefile
-docs/libglabels/Makefile
-glabels.spec
-])
-
-
-dnl ---------------------------------------------------------------------------
-dnl - Print configuration information
-dnl ---------------------------------------------------------------------------
-echo "
-Configuration:
-
-       Package:                        ${PACKAGE}-${VERSION}:
-        Installation prefix             ${prefix}
-        Source code location:           ${srcdir}
-        Compiler:                       ${CC} 
-       Evolution Data Server support:  ${have_libebook}
-
-"
-
-dnl cat ${srcdir}/MESSAGE-OF-DOOM
index 6b00c46498f04ec3c526047ae4920fb4b3bffc31..bc73c7560e3043e9ba17e42b970563831160cd28 100644 (file)
@@ -1,5 +1,12 @@
 ## Process this file with automake to produce Makefile.in
 
-SUBDIRS = desktop dtd glade man mime pixmaps templates
+SUBDIRS = \
+       desktop \
+       icons \
+       man \
+       mime \
+       pixmaps \
+       schemas \
+       ui
 
 
index 388536049941dd47ad0417ead80af7d7a02199e3..1f5a84dfd79cd9cb047b78dc151a29b6db177950 100644 (file)
@@ -36,13 +36,19 @@ host_triplet = @host@
 subdir = data
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -89,11 +95,13 @@ am__relativize = \
 ACLOCAL = @ACLOCAL@
 ALL_LINGUAS = @ALL_LINGUAS@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
+CAIRO_REQUIRED = @CAIRO_REQUIRED@
 CATALOGS = @CATALOGS@
 CATOBJEXT = @CATOBJEXT@
 CC = @CC@
@@ -107,6 +115,7 @@ DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
 DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DLLTOOL = @DLLTOOL@
 DOC_USER_FORMATS = @DOC_USER_FORMATS@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
@@ -116,17 +125,23 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
+GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLABELS_BRANCH = @GLABELS_BRANCH@
 GLABELS_CFLAGS = @GLABELS_CFLAGS@
 GLABELS_LIBS = @GLABELS_LIBS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GLIB_REQUIRED = @GLIB_REQUIRED@
 GMOFILES = @GMOFILES@
 GMSGFMT = @GMSGFMT@
 GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
 GTK_REQUIRED = @GTK_REQUIRED@
-HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@
+GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@
 HELP_DIR = @HELP_DIR@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -142,31 +157,45 @@ INTLTOOL_PERL = @INTLTOOL_PERL@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
+LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@
+LIBBARCODE_LIBS = @LIBBARCODE_LIBS@
+LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@
 LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
 LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
 LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
+LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@
+LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@
 LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
 LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
-LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@
-LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@
-LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@
-LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@
+LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@
+LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@
+LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@
+LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@
+LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@
+LIBIEC16022_LIBS = @LIBIEC16022_LIBS@
+LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@
 LIBOBJS = @LIBOBJS@
+LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@
+LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@
+LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@
+LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBXML_REQUIRED = @LIBXML_REQUIRED@
+LIBZINT_CFLAGS = @LIBZINT_CFLAGS@
+LIBZINT_LIBS = @LIBZINT_LIBS@
+LIBZINT_REQUIRED = @LIBZINT_REQUIRED@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MKINSTALLDIRS = @MKINSTALLDIRS@
 MSGFMT = @MSGFMT@
 MSGFMT_OPTS = @MSGFMT_OPTS@
 MSGMERGE = @MSGMERGE@
-MYGAL_CFLAGS = @MYGAL_CFLAGS@
-MYGAL_LIBS = @MYGAL_LIBS@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -179,9 +208,13 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_REQUIRED = @PANGO_REQUIRED@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 POFILES = @POFILES@
 POSUB = @POSUB@
 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -191,18 +224,15 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
-UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@
-UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
 WARN_CFLAGS = @WARN_CFLAGS@
 XGETTEXT = @XGETTEXT@
-XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@
-XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 am__include = @am__include@
@@ -222,6 +252,7 @@ datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
 exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
 host = @host@
 host_alias = @host_alias@
 host_cpu = @host_cpu@
@@ -235,7 +266,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -251,7 +281,15 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-SUBDIRS = desktop dtd glade man mime pixmaps templates
+SUBDIRS = \
+       desktop \
+       icons \
+       man \
+       mime \
+       pixmaps \
+       schemas \
+       ui
+
 all: all-recursive
 
 .SUFFIXES:
index ce2a21fc38d16c4eb5f26e8e13d55026bf4ba2e4..0358d5a53a3914269c485945a8f406fb34f277a6 100644 (file)
@@ -2,7 +2,7 @@
 
 @INTLTOOL_DESKTOP_RULE@
 
-DESKTOP_IN_FILES = glabels.desktop.in
+DESKTOP_IN_FILES = $(GLABELS_BRANCH).desktop.in
 DESKTOP_FILES =$(DESKTOP_IN_FILES:.desktop.in=.desktop)
 
 desktopdir = $(datadir)/applications
@@ -11,3 +11,4 @@ desktop_DATA = $(DESKTOP_FILES)
 EXTRA_DIST = $(DESKTOP_IN_FILES)
 
 CLEANFILES = $(DESKTOP_FILES)
+
index 3986b8f6cdc44fbe5aa5cece2e65993a59a4e4bc..2f36ae085147e44df5ee45c5611641ed8b59aec0 100644 (file)
@@ -37,13 +37,19 @@ host_triplet = @host@
 subdir = data/desktop
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -73,11 +79,13 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALL_LINGUAS = @ALL_LINGUAS@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
+CAIRO_REQUIRED = @CAIRO_REQUIRED@
 CATALOGS = @CATALOGS@
 CATOBJEXT = @CATOBJEXT@
 CC = @CC@
@@ -91,6 +99,7 @@ DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
 DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DLLTOOL = @DLLTOOL@
 DOC_USER_FORMATS = @DOC_USER_FORMATS@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
@@ -100,17 +109,23 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
+GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLABELS_BRANCH = @GLABELS_BRANCH@
 GLABELS_CFLAGS = @GLABELS_CFLAGS@
 GLABELS_LIBS = @GLABELS_LIBS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GLIB_REQUIRED = @GLIB_REQUIRED@
 GMOFILES = @GMOFILES@
 GMSGFMT = @GMSGFMT@
 GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
 GTK_REQUIRED = @GTK_REQUIRED@
-HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@
+GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@
 HELP_DIR = @HELP_DIR@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -126,31 +141,45 @@ INTLTOOL_PERL = @INTLTOOL_PERL@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
+LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@
+LIBBARCODE_LIBS = @LIBBARCODE_LIBS@
+LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@
 LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
 LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
 LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
+LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@
+LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@
 LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
 LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
-LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@
-LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@
-LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@
-LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@
+LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@
+LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@
+LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@
+LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@
+LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@
+LIBIEC16022_LIBS = @LIBIEC16022_LIBS@
+LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@
 LIBOBJS = @LIBOBJS@
+LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@
+LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@
+LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@
+LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBXML_REQUIRED = @LIBXML_REQUIRED@
+LIBZINT_CFLAGS = @LIBZINT_CFLAGS@
+LIBZINT_LIBS = @LIBZINT_LIBS@
+LIBZINT_REQUIRED = @LIBZINT_REQUIRED@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MKINSTALLDIRS = @MKINSTALLDIRS@
 MSGFMT = @MSGFMT@
 MSGFMT_OPTS = @MSGFMT_OPTS@
 MSGMERGE = @MSGMERGE@
-MYGAL_CFLAGS = @MYGAL_CFLAGS@
-MYGAL_LIBS = @MYGAL_LIBS@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -163,9 +192,13 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_REQUIRED = @PANGO_REQUIRED@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 POFILES = @POFILES@
 POSUB = @POSUB@
 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -175,18 +208,15 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
-UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@
-UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
 WARN_CFLAGS = @WARN_CFLAGS@
 XGETTEXT = @XGETTEXT@
-XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@
-XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 am__include = @am__include@
@@ -206,6 +236,7 @@ datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
 exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
 host = @host@
 host_alias = @host_alias@
 host_cpu = @host_cpu@
@@ -219,7 +250,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -235,7 +265,7 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-DESKTOP_IN_FILES = glabels.desktop.in
+DESKTOP_IN_FILES = $(GLABELS_BRANCH).desktop.in
 DESKTOP_FILES = $(DESKTOP_IN_FILES:.desktop.in=.desktop)
 desktopdir = $(datadir)/applications
 desktop_DATA = $(DESKTOP_FILES)
diff --git a/data/desktop/glabels-3.0.desktop.in b/data/desktop/glabels-3.0.desktop.in
new file mode 100644 (file)
index 0000000..4d7d579
--- /dev/null
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+_Name=gLabels Label Designer 3
+_Comment=Create labels, business cards and media covers
+Exec=glabels-3 %F
+Icon=glabels-3.0.png
+Terminal=false
+Type=Application
+Categories=GTK;Office;
+StartupNotify=true
+MimeType=application/x-glabels;
diff --git a/data/desktop/glabels.desktop.in b/data/desktop/glabels.desktop.in
deleted file mode 100644 (file)
index be70f92..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-_Name=gLabels Label Designer
-_Comment=Create labels, business cards and media covers
-Exec=glabels %F
-Icon=glabels.png
-Terminal=false
-Type=Application
-Categories=GNOME;Application;Office;
-StartupNotify=true
-MimeType=application/x-glabels;
diff --git a/data/dtd/Makefile.am b/data/dtd/Makefile.am
deleted file mode 100644 (file)
index 0dce23d..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-dtddir = $(datadir)/glabels/dtd
-
-dtd_DATA = \
-       glabels-2.2.dtd
-
-EXTRA_DIST = $(dtd_DATA)
-
diff --git a/data/dtd/Makefile.in b/data/dtd/Makefile.in
deleted file mode 100644 (file)
index 3dabd77..0000000
+++ /dev/null
@@ -1,454 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = data/dtd
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-       $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-SOURCES =
-DIST_SOURCES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(dtddir)"
-DATA = $(dtd_DATA)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ALL_LINGUAS = @ALL_LINGUAS@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CATALOGS = @CATALOGS@
-CATOBJEXT = @CATOBJEXT@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIRNAME = @DATADIRNAME@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
-DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
-DOC_USER_FORMATS = @DOC_USER_FORMATS@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
-GLABELS_CFLAGS = @GLABELS_CFLAGS@
-GLABELS_LIBS = @GLABELS_LIBS@
-GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
-GLIB_REQUIRED = @GLIB_REQUIRED@
-GMOFILES = @GMOFILES@
-GMSGFMT = @GMSGFMT@
-GREP = @GREP@
-GTKDOC_CHECK = @GTKDOC_CHECK@
-GTK_REQUIRED = @GTK_REQUIRED@
-HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@
-HELP_DIR = @HELP_DIR@
-HTML_DIR = @HTML_DIR@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INSTOBJEXT = @INSTOBJEXT@
-INTLLIBS = @INTLLIBS@
-INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
-INTLTOOL_MERGE = @INTLTOOL_MERGE@
-INTLTOOL_PERL = @INTLTOOL_PERL@
-INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
-LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
-LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
-LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
-LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
-LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@
-LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@
-LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@
-LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIBXML_REQUIRED = @LIBXML_REQUIRED@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-MSGFMT = @MSGFMT@
-MSGFMT_OPTS = @MSGFMT_OPTS@
-MSGMERGE = @MSGMERGE@
-MYGAL_CFLAGS = @MYGAL_CFLAGS@
-MYGAL_LIBS = @MYGAL_LIBS@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OMF_DIR = @OMF_DIR@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-POFILES = @POFILES@
-POSUB = @POSUB@
-PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
-PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@
-UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
-USE_NLS = @USE_NLS@
-VERSION = @VERSION@
-WARN_CFLAGS = @WARN_CFLAGS@
-XGETTEXT = @XGETTEXT@
-XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@
-XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-dtddir = $(datadir)/glabels/dtd
-dtd_DATA = \
-       glabels-2.2.dtd
-
-EXTRA_DIST = $(dtd_DATA)
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-       @for dep in $?; do \
-         case '$(am__configure_deps)' in \
-           *$$dep*) \
-             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-               && { if test -f $@; then exit 0; else break; fi; }; \
-             exit 1;; \
-         esac; \
-       done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/dtd/Makefile'; \
-       $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu data/dtd/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-       @case '$?' in \
-         *config.status*) \
-           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-         *) \
-           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-       esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-mostlyclean-libtool:
-       -rm -f *.lo
-
-clean-libtool:
-       -rm -rf .libs _libs
-install-dtdDATA: $(dtd_DATA)
-       @$(NORMAL_INSTALL)
-       test -z "$(dtddir)" || $(MKDIR_P) "$(DESTDIR)$(dtddir)"
-       @list='$(dtd_DATA)'; test -n "$(dtddir)" || list=; \
-       for p in $$list; do \
-         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-         echo "$$d$$p"; \
-       done | $(am__base_list) | \
-       while read files; do \
-         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dtddir)'"; \
-         $(INSTALL_DATA) $$files "$(DESTDIR)$(dtddir)" || exit $$?; \
-       done
-
-uninstall-dtdDATA:
-       @$(NORMAL_UNINSTALL)
-       @list='$(dtd_DATA)'; test -n "$(dtddir)" || list=; \
-       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(dtddir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(dtddir)" && rm -f $$files
-tags: TAGS
-TAGS:
-
-ctags: CTAGS
-CTAGS:
-
-
-distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-       list='$(DISTFILES)'; \
-         dist_files=`for file in $$list; do echo $$file; done | \
-         sed -e "s|^$$srcdirstrip/||;t" \
-             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-       case $$dist_files in \
-         */*) $(MKDIR_P) `echo "$$dist_files" | \
-                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-                          sort -u` ;; \
-       esac; \
-       for file in $$dist_files; do \
-         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         if test -d $$d/$$file; then \
-           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-           if test -d "$(distdir)/$$file"; then \
-             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-           fi; \
-           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-           fi; \
-           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-         else \
-           test -f "$(distdir)/$$file" \
-           || cp -p $$d/$$file "$(distdir)/$$file" \
-           || exit 1; \
-         fi; \
-       done
-check-am: all-am
-check: check-am
-all-am: Makefile $(DATA)
-installdirs:
-       for dir in "$(DESTDIR)$(dtddir)"; do \
-         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-       done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-       @echo "This command is intended for maintainers to use"
-       @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
-       -rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-dtdDATA
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-       -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-dtdDATA
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am check check-am clean clean-generic clean-libtool \
-       distclean distclean-generic distclean-libtool distdir dvi \
-       dvi-am html html-am info info-am install install-am \
-       install-data install-data-am install-dtdDATA install-dvi \
-       install-dvi-am install-exec install-exec-am install-html \
-       install-html-am install-info install-info-am install-man \
-       install-pdf install-pdf-am install-ps install-ps-am \
-       install-strip installcheck installcheck-am installdirs \
-       maintainer-clean maintainer-clean-generic mostlyclean \
-       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-       uninstall uninstall-am uninstall-dtdDATA
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/data/dtd/glabels-2.2.dtd b/data/dtd/glabels-2.2.dtd
deleted file mode 100644 (file)
index b23519f..0000000
+++ /dev/null
@@ -1,381 +0,0 @@
-
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!-- ENTITIES: primitive types used in element attributes                 -->
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-
-<!-- primitives -->
-<!ENTITY % BOOLEAN_TYPE       "(False | True | 0 | 1)">
-<!ENTITY % STRING_TYPE        "CDATA">
-<!ENTITY % LENGTH_TYPE        "CDATA"> <!-- %g (pt|in|mm|cm|pc) -->
-<!ENTITY % INT_TYPE           "CDATA"> <!-- %d | 0x%x | 0%o -->
-<!ENTITY % UINT_TYPE          "CDATA"> <!-- %u | 0x%x | 0%o -->
-<!ENTITY % FLOAT_TYPE         "CDATA"> <!-- %g -->
-
-<!-- Text related enumerations/types -->
-<!ENTITY % JUSTIFY_TYPE       "(Left | Right | Center)">
-<!ENTITY % FONT_WEIGHT_TYPE   "(Regular | Bold)">
-
-<!-- Barcode related enumerations/types -->
-<!ENTITY % BC_STYLE_TYPE      "CDATA">
-                              <!-- one of:
-                              "(POSTNET    |
-                                POSTNET-5  |
-                                POSTNET-9  |
-                                POSTNET-11 |
-                                CEPNET     |
-                                EAN        |
-                                EAN-8      |
-                                EAN-8+2    |
-                                EAN-8+5    |
-                                EAN-13     |
-                                EAN-13+2   |
-                                EAN-13+5   |
-                                UPC        |
-                                UPC-A      |
-                                UPC-A+2    |
-                                UPC-A+5    |
-                                UPC-E      |
-                                UPC-E+2    |
-                                UPC-E+5    |
-                                ISBN       |
-                                ISBN+5     |
-                                Code39     |
-                                Code128    |
-                                Code128C   |
-                                Code128B   |
-                                I25        |
-                                CBR        |
-                                MSI        |
-                                PLS        |
-                               IEC16022)"
-                               -->
-
-<!-- Data encoding method -->
-<!ENTITY % DATA_ENCODING_TYPE "(None | Base64)">
-
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!-- Top-level glabels paper data base                                    -->
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!ELEMENT Glabels-paper-sizes (Paper-size*)>
-<!ATTLIST Glabels-paper-sizes
-                 xmlns           %STRING_TYPE;           #IMPLIED
->
-
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!-- Top-level glabels categories data base                               -->
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!ELEMENT Glabels-categories (Category*)>
-<!ATTLIST Glabels-categories
-                 xmlns           %STRING_TYPE;           #IMPLIED
->
-
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!-- Top-level glabels template data base                                 -->
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!ELEMENT Glabels-templates (Template*)>
-<!ATTLIST Glabels-templates
-                 xmlns           %STRING_TYPE;           #IMPLIED
->
-
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!-- Top-level glabels document                                           -->
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!ELEMENT Glabels-document (Template, Objects+, Merge?, Data*)>
-<!ATTLIST Glabels-document
-                 xmlns           %STRING_TYPE;           #IMPLIED
->
-
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!-- Paper size                                                           -->
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!ELEMENT Paper-size EMPTY>
-<!ATTLIST Paper-size
-                 id              %STRING_TYPE;           #REQUIRED
-                 name            %STRING_TYPE;           #IMPLIED
-                 _name           %STRING_TYPE;           #IMPLIED
-                 pwg_size        %STRING_TYPE;           #REQUIRED
-                 width           %LENGTH_TYPE;           #REQUIRED
-                 height          %LENGTH_TYPE;           #REQUIRED
->
-
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!-- Category                                                             -->
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!ELEMENT Category EMPTY>
-<!ATTLIST Category
-                 id              %STRING_TYPE;           #REQUIRED
-                 name            %STRING_TYPE;           #IMPLIED
-                 _name           %STRING_TYPE;           #IMPLIED
->
-
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!-- Template Section                                                     -->
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!ENTITY % label_element  "Label-rectangle | Label-round | Label-cd">
-<!ENTITY % markup_element "Markup-margin | Markup-line | Markup-circle | Markup-rect">
-
-<!ELEMENT Template (Meta*, (%label_element;)+, Alias*)>
-<!ATTLIST Template
-                 brand           %STRING_TYPE;           #REQUIRED
-                 part            %STRING_TYPE;           #REQUIRED
-                 name            %STRING_TYPE;           #IMPLIED
-                 size            %STRING_TYPE;           #REQUIRED
-                 width           %LENGTH_TYPE;           #IMPLIED
-                 height          %LENGTH_TYPE;           #IMPLIED
-                 description     %STRING_TYPE;           #IMPLIED
-                 _description    %STRING_TYPE;           #IMPLIED
->
-
-<!ELEMENT Meta EMPTY>
-<!ATTLIST Meta
-                 category        %STRING_TYPE;           #REQUIRED
->
-
-<!ELEMENT Label-rectangle ((%markup_element;)*, Layout+)>
-<!ATTLIST Label-rectangle
-                 id              %STRING_TYPE;           #REQUIRED
-                 width           %LENGTH_TYPE;           #REQUIRED
-                 height          %LENGTH_TYPE;           #REQUIRED
-                 round           %LENGTH_TYPE;           "0 pt"
-                 waste           %LENGTH_TYPE;           #IMPLIED
-                 x_waste         %LENGTH_TYPE;           #IMPLIED
-                 y_waste         %LENGTH_TYPE;           #IMPLIED
->
-
-<!ELEMENT Label-round ((%markup_element;)*, Layout+)>
-<!ATTLIST Label-round
-                 id              %STRING_TYPE;           #REQUIRED
-                 radius          %LENGTH_TYPE;           #REQUIRED
-                 waste           %LENGTH_TYPE;           #IMPLIED
->
-
-<!ELEMENT Label-cd ((%markup_element;)*, Layout+)>
-<!ATTLIST Label-cd
-                 id              %STRING_TYPE;           #REQUIRED
-                 radius          %LENGTH_TYPE;           #REQUIRED
-                 hole            %LENGTH_TYPE;           #REQUIRED
-                 width           %LENGTH_TYPE;           #IMPLIED
-                 height          %LENGTH_TYPE;           #IMPLIED
-                 waste           %LENGTH_TYPE;           #IMPLIED
->
-
-<!ELEMENT Markup-margin EMPTY>
-<!ATTLIST Markup-margin
-                 size            %LENGTH_TYPE;           #REQUIRED
->
-
-<!ELEMENT Markup-line EMPTY>
-<!ATTLIST Markup-line
-                 x1              %LENGTH_TYPE;           #REQUIRED
-                 y1              %LENGTH_TYPE;           #REQUIRED
-                 x2              %LENGTH_TYPE;           #REQUIRED
-                 y2              %LENGTH_TYPE;           #REQUIRED
->
-
-<!ELEMENT Markup-circle EMPTY>
-<!ATTLIST Markup-circle
-                 x0              %LENGTH_TYPE;           #REQUIRED
-                 y0              %LENGTH_TYPE;           #REQUIRED
-                 radius          %LENGTH_TYPE;           #REQUIRED
->
-
-<!ELEMENT Markup-rect EMPTY>
-<!ATTLIST Markup-rect
-                 x1              %LENGTH_TYPE;           #REQUIRED
-                 y1              %LENGTH_TYPE;           #REQUIRED
-                 w               %LENGTH_TYPE;           #REQUIRED
-                 h               %LENGTH_TYPE;           #REQUIRED
-                 r               %LENGTH_TYPE;           #REQUIRED
->
-
-<!ELEMENT Layout EMPTY>
-<!ATTLIST Layout
-                 nx              %UINT_TYPE;             #REQUIRED
-                 ny              %UINT_TYPE;             #REQUIRED
-                 x0              %LENGTH_TYPE;           "0 pt"
-                 y0              %LENGTH_TYPE;           "0 pt"
-                 dx              %LENGTH_TYPE;           "0 pt"
-                 dy              %LENGTH_TYPE;           "0 pt"
->
-
-<!ELEMENT Alias EMPTY>
-<!ATTLIST Alias
-                 brand           %STRING_TYPE;           #REQUIRED
-                 part            %STRING_TYPE;           #REQUIRED
-                 name            %STRING_TYPE;           #IMPLIED
->
-
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!-- Objects Section                                                      -->
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!ENTITY % object_class_element  "Object-text    |
-                                  Object-box     |
-                                  Object-line    |
-                                  Object-ellipse |
-                                  Object-image   |
-                                  Object-barcode"
->
-
-<!ELEMENT Objects ((%object_class_element;)*)>
-<!ATTLIST Objects
-                 id              %STRING_TYPE;           #REQUIRED
-                 rotate          %BOOLEAN_TYPE;          #REQUIRED
->
-
-<!ENTITY % position_attrs
-                 "x              %LENGTH_TYPE;           #REQUIRED
-                  y              %LENGTH_TYPE;           #REQUIRED"
->
-
-<!ENTITY % size_attrs
-                 "w              %LENGTH_TYPE;           #REQUIRED
-                  h              %LENGTH_TYPE;           #REQUIRED"
->
-
-<!ENTITY % line_attrs
-                 "line_width       %LENGTH_TYPE;          #IMPLIED
-                  line_color       %UINT_TYPE;            #IMPLIED
-                  line_color_field %STRING_TYPE;          #IMPLIED"
->
-
-<!ENTITY % fill_attrs
-                 "fill_color       %UINT_TYPE;           #IMPLIED
-                  fill_color_field %STRING_TYPE;         #IMPLIED"
->
-
-<!ENTITY % affine_attrs
-                 "a0              %FLOAT_TYPE;           #IMPLIED
-                  a1              %FLOAT_TYPE;           #IMPLIED
-                  a2              %FLOAT_TYPE;           #IMPLIED
-                  a3              %FLOAT_TYPE;           #IMPLIED
-                  a4              %FLOAT_TYPE;           #IMPLIED
-                  a5              %FLOAT_TYPE;           #IMPLIED"
->
-
-<!ENTITY % shadow_attrs
-                 ""
->
-
-<!ELEMENT Object-text (Span)>
-<!ATTLIST Object-text
-                 %position_attrs;
-                 %size_attrs;
-                 justify         %JUSTIFY_TYPE;          #REQUIRED
-                 auto_shrink     %BOOLEAN_TYPE;          #IMPLIED
-                 %affine_attrs;
-                 %shadow_attrs;
->
-
-<!ELEMENT Object-box EMPTY>
-<!ATTLIST Object-box
-                 %position_attrs;
-                 %size_attrs;
-                 %line_attrs;
-                 %fill_attrs;
-                 %affine_attrs;
-                 %shadow_attrs;
->
-
-<!ELEMENT Object-ellipse EMPTY>
-<!ATTLIST Object-ellipse
-                 %position_attrs;
-                 %size_attrs;
-                 %line_attrs;
-                 %fill_attrs;
-                 %affine_attrs;
-                 %shadow_attrs;
->
-
-<!ELEMENT Object-line EMPTY>
-<!ATTLIST Object-line
-                 %position_attrs;
-                 dx              %LENGTH_TYPE;           #REQUIRED
-                 dy              %LENGTH_TYPE;           #REQUIRED
-                 %line_attrs;
-                 %affine_attrs;
-                 %shadow_attrs;
->
-
-<!ELEMENT Object-image EMPTY>
-<!ATTLIST Object-image
-                 %position_attrs;
-                 %size_attrs;
-                 src             %STRING_TYPE;           #IMPLIED
-                 field           %STRING_TYPE;           #IMPLIED
-                 embed           %BOOLEAN_TYPE;          #IMPLIED
-                 %affine_attrs;
-                 %shadow_attrs;
->
-
-<!ELEMENT Object-barcode EMPTY>
-<!ATTLIST Object-barcode
-                 %position_attrs;
-                 %size_attrs;
-                 style            %BC_STYLE_TYPE;         #REQUIRED
-                 text             %BOOLEAN_TYPE;          #REQUIRED
-                 checksum         %BOOLEAN_TYPE;          #REQUIRED
-                 color            %UINT_TYPE;             #IMPLIED
-                 color_field      %STRING_TYPE;           #IMPLIED
-                 data             %STRING_TYPE;           #IMPLIED
-                 field            %STRING_TYPE;           #IMPLIED
-                 format           %UINT_TYPE;             #IMPLIED
-                 %affine_attrs;
-                 %shadow_attrs;
->
-
-
-
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!-- Merge Section                                                        -->
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!ELEMENT Merge EMPTY>
-<!ATTLIST Merge
-                 type            %STRING_TYPE;           #REQUIRED
-                 src             %STRING_TYPE;           #IMPLIED
->
-
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!-- Data Section                                                         -->
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!ENTITY % data_element "Pixdata">
-
-<!ELEMENT Data (%data_element;)*>
-
-<!-- Inline Pixdata -->
-<!ELEMENT Pixdata (#PCDATA)>
-<!ATTLIST Pixdata
-                 name            %STRING_TYPE;           #REQUIRED
-                 encoding        %DATA_ENCODING_TYPE;    "Base64"
->
-
-
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!-- Text elements                                                        -->
-<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-<!ENTITY % text_element "#PCDATA | Span | Field | NL">
-
-<!ELEMENT Span (%text_element;)*>
-<!ATTLIST Span
-                 font_family     %STRING_TYPE;           #IMPLIED
-                 font_size       %LENGTH_TYPE;           #IMPLIED
-                 font_weight     %FONT_WEIGHT_TYPE;      #IMPLIED
-                 font_italic     %BOOLEAN_TYPE;          #IMPLIED
-                 color           %UINT_TYPE;             #IMPLIED
-                                color_field     %STRING_TYPE;           #IMPLIED
-                 line_spacing    %LENGTH_TYPE;           #IMPLIED
->
-
-<!ELEMENT Field EMPTY>
-<!ATTLIST Field
-                 name            %STRING_TYPE;           #REQUIRED
->
-
-<!ELEMENT NL EMPTY>
diff --git a/data/glade/Makefile.am b/data/glade/Makefile.am
deleted file mode 100644 (file)
index 4747c88..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-gladedir = $(datadir)/glabels/glade/
-
-glade_DATA = \
-       object-editor.glade             \
-       prefs-dialog.glade              \
-       template-designer.glade         \
-       merge-properties-dialog.glade   \
-       property-bar.glade              \
-       print-custom-widget.glade       \
-       wdgt-media-select.glade         \
-       wdgt-rotate-label.glade         \
-       new-label-dialog.glade
-
-EXTRA_DIST = $(glade_DATA)
-
-
diff --git a/data/glade/Makefile.in b/data/glade/Makefile.in
deleted file mode 100644 (file)
index 2c82fbd..0000000
+++ /dev/null
@@ -1,462 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = data/glade
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-       $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-SOURCES =
-DIST_SOURCES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(gladedir)"
-DATA = $(glade_DATA)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ALL_LINGUAS = @ALL_LINGUAS@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CATALOGS = @CATALOGS@
-CATOBJEXT = @CATOBJEXT@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIRNAME = @DATADIRNAME@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
-DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
-DOC_USER_FORMATS = @DOC_USER_FORMATS@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
-GLABELS_CFLAGS = @GLABELS_CFLAGS@
-GLABELS_LIBS = @GLABELS_LIBS@
-GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
-GLIB_REQUIRED = @GLIB_REQUIRED@
-GMOFILES = @GMOFILES@
-GMSGFMT = @GMSGFMT@
-GREP = @GREP@
-GTKDOC_CHECK = @GTKDOC_CHECK@
-GTK_REQUIRED = @GTK_REQUIRED@
-HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@
-HELP_DIR = @HELP_DIR@
-HTML_DIR = @HTML_DIR@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INSTOBJEXT = @INSTOBJEXT@
-INTLLIBS = @INTLLIBS@
-INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
-INTLTOOL_MERGE = @INTLTOOL_MERGE@
-INTLTOOL_PERL = @INTLTOOL_PERL@
-INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
-LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
-LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
-LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
-LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
-LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@
-LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@
-LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@
-LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIBXML_REQUIRED = @LIBXML_REQUIRED@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-MSGFMT = @MSGFMT@
-MSGFMT_OPTS = @MSGFMT_OPTS@
-MSGMERGE = @MSGMERGE@
-MYGAL_CFLAGS = @MYGAL_CFLAGS@
-MYGAL_LIBS = @MYGAL_LIBS@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OMF_DIR = @OMF_DIR@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-POFILES = @POFILES@
-POSUB = @POSUB@
-PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
-PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@
-UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
-USE_NLS = @USE_NLS@
-VERSION = @VERSION@
-WARN_CFLAGS = @WARN_CFLAGS@
-XGETTEXT = @XGETTEXT@
-XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@
-XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-gladedir = $(datadir)/glabels/glade/
-glade_DATA = \
-       object-editor.glade             \
-       prefs-dialog.glade              \
-       template-designer.glade         \
-       merge-properties-dialog.glade   \
-       property-bar.glade              \
-       print-custom-widget.glade       \
-       wdgt-media-select.glade         \
-       wdgt-rotate-label.glade         \
-       new-label-dialog.glade
-
-EXTRA_DIST = $(glade_DATA)
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-       @for dep in $?; do \
-         case '$(am__configure_deps)' in \
-           *$$dep*) \
-             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-               && { if test -f $@; then exit 0; else break; fi; }; \
-             exit 1;; \
-         esac; \
-       done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/glade/Makefile'; \
-       $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu data/glade/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-       @case '$?' in \
-         *config.status*) \
-           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-         *) \
-           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-       esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-mostlyclean-libtool:
-       -rm -f *.lo
-
-clean-libtool:
-       -rm -rf .libs _libs
-install-gladeDATA: $(glade_DATA)
-       @$(NORMAL_INSTALL)
-       test -z "$(gladedir)" || $(MKDIR_P) "$(DESTDIR)$(gladedir)"
-       @list='$(glade_DATA)'; test -n "$(gladedir)" || list=; \
-       for p in $$list; do \
-         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-         echo "$$d$$p"; \
-       done | $(am__base_list) | \
-       while read files; do \
-         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(gladedir)'"; \
-         $(INSTALL_DATA) $$files "$(DESTDIR)$(gladedir)" || exit $$?; \
-       done
-
-uninstall-gladeDATA:
-       @$(NORMAL_UNINSTALL)
-       @list='$(glade_DATA)'; test -n "$(gladedir)" || list=; \
-       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(gladedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(gladedir)" && rm -f $$files
-tags: TAGS
-TAGS:
-
-ctags: CTAGS
-CTAGS:
-
-
-distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-       list='$(DISTFILES)'; \
-         dist_files=`for file in $$list; do echo $$file; done | \
-         sed -e "s|^$$srcdirstrip/||;t" \
-             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-       case $$dist_files in \
-         */*) $(MKDIR_P) `echo "$$dist_files" | \
-                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-                          sort -u` ;; \
-       esac; \
-       for file in $$dist_files; do \
-         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         if test -d $$d/$$file; then \
-           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-           if test -d "$(distdir)/$$file"; then \
-             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-           fi; \
-           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-           fi; \
-           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-         else \
-           test -f "$(distdir)/$$file" \
-           || cp -p $$d/$$file "$(distdir)/$$file" \
-           || exit 1; \
-         fi; \
-       done
-check-am: all-am
-check: check-am
-all-am: Makefile $(DATA)
-installdirs:
-       for dir in "$(DESTDIR)$(gladedir)"; do \
-         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-       done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-       @echo "This command is intended for maintainers to use"
-       @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
-       -rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-gladeDATA
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-       -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-gladeDATA
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am check check-am clean clean-generic clean-libtool \
-       distclean distclean-generic distclean-libtool distdir dvi \
-       dvi-am html html-am info info-am install install-am \
-       install-data install-data-am install-dvi install-dvi-am \
-       install-exec install-exec-am install-gladeDATA install-html \
-       install-html-am install-info install-info-am install-man \
-       install-pdf install-pdf-am install-ps install-ps-am \
-       install-strip installcheck installcheck-am installdirs \
-       maintainer-clean maintainer-clean-generic mostlyclean \
-       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-       uninstall uninstall-am uninstall-gladeDATA
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/data/glade/merge-properties-dialog.glade b/data/glade/merge-properties-dialog.glade
deleted file mode 100644 (file)
index b62dced..0000000
+++ /dev/null
@@ -1,375 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-
-<widget class="GtkDialog" id="merge_properties_dialog">
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">dialog1</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="has_separator">True</property>
-
-  <child internal-child="vbox">
-    <widget class="GtkVBox" id="dialog-vbox1">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child internal-child="action_area">
-       <widget class="GtkHButtonBox" id="dialog-action_area1">
-         <property name="visible">True</property>
-         <property name="layout_style">GTK_BUTTONBOX_END</property>
-
-         <child>
-           <widget class="GtkButton" id="cancelbutton1">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="label">gtk-cancel</property>
-             <property name="use_stock">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <property name="response_id">-6</property>
-           </widget>
-         </child>
-
-         <child>
-           <widget class="GtkButton" id="okbutton1">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="label">gtk-ok</property>
-             <property name="use_stock">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <property name="response_id">-5</property>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">True</property>
-         <property name="pack_type">GTK_PACK_END</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkVBox" id="merge_properties_vbox">
-         <property name="visible">True</property>
-         <property name="homogeneous">False</property>
-         <property name="spacing">6</property>
-
-         <child>
-           <widget class="GtkFrame" id="frame1">
-             <property name="visible">True</property>
-             <property name="label_xalign">0</property>
-             <property name="label_yalign">0.5</property>
-             <property name="shadow_type">GTK_SHADOW_NONE</property>
-
-             <child>
-               <widget class="GtkAlignment" id="alignment1">
-                 <property name="visible">True</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xscale">1</property>
-                 <property name="yscale">1</property>
-                 <property name="top_padding">0</property>
-                 <property name="bottom_padding">0</property>
-                 <property name="left_padding">12</property>
-                 <property name="right_padding">0</property>
-
-                 <child>
-                   <widget class="GtkTable" id="table1">
-                     <property name="border_width">12</property>
-                     <property name="visible">True</property>
-                     <property name="n_rows">2</property>
-                     <property name="n_columns">2</property>
-                     <property name="homogeneous">False</property>
-                     <property name="row_spacing">6</property>
-                     <property name="column_spacing">6</property>
-
-                     <child>
-                       <widget class="GtkLabel" id="label3">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">Format:</property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="left_attach">0</property>
-                         <property name="right_attach">1</property>
-                         <property name="top_attach">0</property>
-                         <property name="bottom_attach">1</property>
-                         <property name="x_options">fill</property>
-                         <property name="y_options"></property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkComboBox" id="type_combo">
-                         <property name="visible">True</property>
-                         <property name="add_tearoffs">False</property>
-                         <property name="focus_on_click">True</property>
-                       </widget>
-                       <packing>
-                         <property name="left_attach">1</property>
-                         <property name="right_attach">2</property>
-                         <property name="top_attach">0</property>
-                         <property name="bottom_attach">1</property>
-                         <property name="y_options">fill</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkVBox" id="location_vbox">
-                         <property name="visible">True</property>
-                         <property name="homogeneous">False</property>
-                         <property name="spacing">0</property>
-
-                         <child>
-                           <placeholder/>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="left_attach">1</property>
-                         <property name="right_attach">2</property>
-                         <property name="top_attach">1</property>
-                         <property name="bottom_attach">2</property>
-                         <property name="x_options">fill</property>
-                         <property name="y_options">fill</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkLabel" id="label4">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">Location:</property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="left_attach">0</property>
-                         <property name="right_attach">1</property>
-                         <property name="top_attach">1</property>
-                         <property name="bottom_attach">2</property>
-                         <property name="x_options">fill</property>
-                         <property name="y_options"></property>
-                       </packing>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-             </child>
-
-             <child>
-               <widget class="GtkLabel" id="label1">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">&lt;b&gt;Source&lt;/b&gt;</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">True</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="type">label_item</property>
-               </packing>
-             </child>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">False</property>
-             <property name="fill">True</property>
-           </packing>
-         </child>
-
-         <child>
-           <widget class="GtkFrame" id="frame2">
-             <property name="visible">True</property>
-             <property name="label_xalign">0</property>
-             <property name="label_yalign">0.5</property>
-             <property name="shadow_type">GTK_SHADOW_NONE</property>
-
-             <child>
-               <widget class="GtkAlignment" id="alignment2">
-                 <property name="visible">True</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xscale">1</property>
-                 <property name="yscale">1</property>
-                 <property name="top_padding">0</property>
-                 <property name="bottom_padding">0</property>
-                 <property name="left_padding">12</property>
-                 <property name="right_padding">0</property>
-
-                 <child>
-                   <widget class="GtkVBox" id="vbox3">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">6</property>
-
-                     <child>
-                       <widget class="GtkScrolledWindow" id="scrolledwindow1">
-                         <property name="border_width">6</property>
-                         <property name="width_request">500</property>
-                         <property name="height_request">350</property>
-                         <property name="visible">True</property>
-                         <property name="can_focus">True</property>
-                         <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                         <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                         <property name="shadow_type">GTK_SHADOW_IN</property>
-                         <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-                         <child>
-                           <widget class="GtkTreeView" id="treeview">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="headers_visible">True</property>
-                             <property name="rules_hint">False</property>
-                             <property name="reorderable">False</property>
-                             <property name="enable_search">True</property>
-                             <property name="fixed_height_mode">False</property>
-                             <property name="hover_selection">False</property>
-                             <property name="hover_expand">False</property>
-                           </widget>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkHBox" id="hbox1">
-                         <property name="border_width">6</property>
-                         <property name="visible">True</property>
-                         <property name="homogeneous">False</property>
-                         <property name="spacing">12</property>
-
-                         <child>
-                           <widget class="GtkButton" id="select_all_button">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="label" translatable="yes">Select all</property>
-                             <property name="use_underline">True</property>
-                             <property name="relief">GTK_RELIEF_NORMAL</property>
-                             <property name="focus_on_click">True</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkButton" id="unselect_all_button">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="label" translatable="yes">Unselect all</property>
-                             <property name="use_underline">True</property>
-                             <property name="relief">GTK_RELIEF_NORMAL</property>
-                             <property name="focus_on_click">True</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-             </child>
-
-             <child>
-               <widget class="GtkLabel" id="label2">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">&lt;b&gt;Record selection/preview&lt;/b&gt;</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">True</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="type">label_item</property>
-               </packing>
-             </child>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">True</property>
-             <property name="fill">True</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">True</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-</glade-interface>
diff --git a/data/glade/new-label-dialog.glade b/data/glade/new-label-dialog.glade
deleted file mode 100644 (file)
index 8633976..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0"?>
-<glade-interface>
-  <!-- interface-requires gtk+ 2.6 -->
-  <!-- interface-naming-policy toplevel-contextual -->
-  <widget class="GtkWindow" id="window1">
-    <property name="visible">True</property>
-    <property name="title" translatable="yes">window1</property>
-    <child>
-      <widget class="GtkVBox" id="new_label_dialog_vbox">
-        <property name="visible">True</property>
-        <property name="border_width">3</property>
-        <property name="orientation">vertical</property>
-        <property name="spacing">6</property>
-        <child>
-          <widget class="GtkFrame" id="frame1">
-            <property name="visible">True</property>
-            <property name="label_xalign">0</property>
-            <property name="shadow_type">none</property>
-            <child>
-              <widget class="GtkAlignment" id="alignment1">
-                <property name="visible">True</property>
-                <property name="left_padding">12</property>
-                <child>
-                  <widget class="GtkVBox" id="media_select_vbox">
-                    <property name="visible">True</property>
-                    <child>
-                      <placeholder/>
-                    </child>
-                  </widget>
-                </child>
-              </widget>
-            </child>
-            <child>
-              <widget class="GtkLabel" id="label1">
-                <property name="visible">True</property>
-                <property name="label" translatable="yes">&lt;b&gt;Media type&lt;/b&gt;</property>
-                <property name="use_markup">True</property>
-              </widget>
-              <packing>
-                <property name="type">label_item</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="position">0</property>
-          </packing>
-        </child>
-        <child>
-          <widget class="GtkFrame" id="frame2">
-            <property name="visible">True</property>
-            <property name="label_xalign">0</property>
-            <property name="shadow_type">none</property>
-            <child>
-              <widget class="GtkAlignment" id="alignment2">
-                <property name="visible">True</property>
-                <property name="left_padding">12</property>
-                <child>
-                  <widget class="GtkVBox" id="rotate_label_vbox">
-                    <property name="visible">True</property>
-                    <child>
-                      <placeholder/>
-                    </child>
-                  </widget>
-                </child>
-              </widget>
-            </child>
-            <child>
-              <widget class="GtkLabel" id="label2">
-                <property name="visible">True</property>
-                <property name="label" translatable="yes">&lt;b&gt;Label orientation&lt;/b&gt;</property>
-                <property name="use_markup">True</property>
-              </widget>
-              <packing>
-                <property name="type">label_item</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="position">1</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-  </widget>
-</glade-interface>
diff --git a/data/glade/object-editor.glade b/data/glade/object-editor.glade
deleted file mode 100644 (file)
index d4ba2fe..0000000
+++ /dev/null
@@ -1,3471 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-<requires lib="gnome"/>
-
-<widget class="GtkDialog" id="dialog">
-  <property name="border_width">6</property>
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">dialog1</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-  <property name="has_separator">True</property>
-
-  <child internal-child="vbox">
-    <widget class="GtkVBox" id="dialog-vbox1">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child internal-child="action_area">
-       <widget class="GtkHButtonBox" id="dialog-action_area1">
-         <property name="visible">True</property>
-         <property name="layout_style">GTK_BUTTONBOX_END</property>
-
-         <child>
-           <widget class="GtkButton" id="closebutton1">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="label">gtk-close</property>
-             <property name="use_stock">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <property name="response_id">-7</property>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">True</property>
-         <property name="pack_type">GTK_PACK_END</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkVBox" id="editor_vbox">
-         <property name="border_width">6</property>
-         <property name="visible">True</property>
-         <property name="homogeneous">False</property>
-         <property name="spacing">12</property>
-
-         <child>
-           <widget class="GtkHBox" id="title_hbox">
-             <property name="visible">True</property>
-             <property name="homogeneous">False</property>
-             <property name="spacing">12</property>
-
-             <child>
-               <widget class="GtkImage" id="title_image">
-                 <property name="visible">True</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">True</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkLabel" id="title_label">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot; size=&quot;larger&quot;&gt;Xxx object properties&lt;/span&gt;</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">True</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">False</property>
-               </packing>
-             </child>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">False</property>
-             <property name="fill">False</property>
-           </packing>
-         </child>
-
-         <child>
-           <widget class="GtkNotebook" id="notebook">
-             <property name="visible">True</property>
-             <property name="can_focus">True</property>
-             <property name="show_tabs">True</property>
-             <property name="show_border">True</property>
-             <property name="tab_pos">GTK_POS_TOP</property>
-             <property name="scrollable">True</property>
-             <property name="enable_popup">False</property>
-
-             <child>
-               <widget class="GtkVBox" id="edit_page_vbox">
-                 <property name="border_width">12</property>
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">6</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox30">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">0</property>
-
-                     <child>
-                       <widget class="GtkScrolledWindow" id="scrolledwindow1">
-                         <property name="visible">True</property>
-                         <property name="can_focus">True</property>
-                         <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
-                         <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
-                         <property name="shadow_type">GTK_SHADOW_NONE</property>
-                         <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-                         <child>
-                           <widget class="GtkTextView" id="edit_text_view">
-                             <property name="width_request">232</property>
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="editable">True</property>
-                             <property name="overwrite">False</property>
-                             <property name="accepts_tab">True</property>
-                             <property name="justification">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap_mode">GTK_WRAP_NONE</property>
-                             <property name="cursor_visible">True</property>
-                             <property name="pixels_above_lines">0</property>
-                             <property name="pixels_below_lines">0</property>
-                             <property name="pixels_inside_wrap">0</property>
-                             <property name="left_margin">0</property>
-                             <property name="right_margin">0</property>
-                             <property name="indent">0</property>
-                             <property name="text" translatable="yes"></property>
-                           </widget>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">True</property>
-                     <property name="fill">True</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox1">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">12</property>
-
-                     <child>
-                       <widget class="GtkLabel" id="edit_key_label">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">Key:</property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkComboBox" id="edit_key_combo">
-                         <property name="visible">True</property>
-                         <property name="add_tearoffs">False</property>
-                         <property name="focus_on_click">True</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkButton" id="edit_insert_field_button">
-                         <property name="visible">True</property>
-                         <property name="can_focus">True</property>
-                         <property name="label" translatable="yes">Insert merge field</property>
-                         <property name="use_underline">True</property>
-                         <property name="relief">GTK_RELIEF_NORMAL</property>
-                         <property name="focus_on_click">True</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="tab_expand">False</property>
-                 <property name="tab_fill">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkLabel" id="edit_tab_label">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">Text</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">False</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="type">tab</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkVBox" id="text_page_vbox">
-                 <property name="border_width">12</property>
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">12</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox65">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">12</property>
-
-                     <child>
-                       <widget class="GtkLabel" id="text_family_label">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">Family:</property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkComboBox" id="text_family_combo">
-                         <property name="visible">True</property>
-                         <property name="add_tearoffs">False</property>
-                         <property name="focus_on_click">True</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox66">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">12</property>
-
-                     <child>
-                       <widget class="GtkLabel" id="text_size_label">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">Size:</property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkHBox" id="hbox28">
-                         <property name="visible">True</property>
-                         <property name="homogeneous">False</property>
-                         <property name="spacing">12</property>
-
-                         <child>
-                           <widget class="GtkSpinButton" id="text_size_spin">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="climb_rate">0.00999999977648</property>
-                             <property name="digits">0</property>
-                             <property name="numeric">True</property>
-                             <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                             <property name="snap_to_ticks">False</property>
-                             <property name="wrap">False</property>
-                             <property name="adjustment">1 1 100 1 10 0</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox67">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">12</property>
-
-                     <child>
-                       <widget class="GtkLabel" id="text_style_label">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">Style:</property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkHBox" id="hbox29">
-                         <property name="visible">True</property>
-                         <property name="homogeneous">False</property>
-                         <property name="spacing">12</property>
-
-                         <child>
-                           <widget class="GtkToggleButton" id="text_bold_toggle">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="relief">GTK_RELIEF_NORMAL</property>
-                             <property name="focus_on_click">True</property>
-                             <property name="active">False</property>
-                             <property name="inconsistent">False</property>
-
-                             <child>
-                               <widget class="GtkImage" id="image1">
-                                 <property name="visible">True</property>
-                                 <property name="stock">gtk-bold</property>
-                                 <property name="icon_size">4</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                               </widget>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkToggleButton" id="text_italic_toggle">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="relief">GTK_RELIEF_NORMAL</property>
-                             <property name="focus_on_click">True</property>
-                             <property name="active">False</property>
-                             <property name="inconsistent">False</property>
-
-                             <child>
-                               <widget class="GtkImage" id="image2">
-                                 <property name="visible">True</property>
-                                 <property name="stock">gtk-italic</property>
-                                 <property name="icon_size">4</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                               </widget>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox68">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">12</property>
-
-                     <child>
-                       <widget class="GtkLabel" id="text_color_label">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">Color:</property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0</property>
-                         <property name="yalign">0.140000000596</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkVBox" id="vbox3">
-                         <property name="visible">True</property>
-                         <property name="homogeneous">False</property>
-                         <property name="spacing">6</property>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox42">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">6</property>
-
-                             <child>
-                               <widget class="GtkRadioButton" id="text_color_radio">
-                                 <property name="visible">True</property>
-                                 <property name="can_focus">True</property>
-                                 <property name="label" translatable="yes"></property>
-                                 <property name="use_underline">True</property>
-                                 <property name="relief">GTK_RELIEF_NORMAL</property>
-                                 <property name="focus_on_click">True</property>
-                                 <property name="active">False</property>
-                                 <property name="inconsistent">False</property>
-                                 <property name="draw_indicator">True</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkHBox" id="hbox43">
-                                 <property name="visible">True</property>
-                                 <property name="homogeneous">False</property>
-                                 <property name="spacing">12</property>
-
-                                 <child>
-                                   <widget class="Custom" id="text_color_combo">
-                                     <property name="visible">True</property>
-                                     <property name="creation_function">gl_object_editor_construct_color_combo</property>
-                                     <property name="int1">2</property>
-                                     <property name="int2">0</property>
-                                     <property name="last_modification_time">Sun, 16 Nov 2003 06:52:23 GMT</property>
-                                   </widget>
-                                   <packing>
-                                     <property name="padding">0</property>
-                                     <property name="expand">False</property>
-                                     <property name="fill">False</property>
-                                   </packing>
-                                 </child>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">True</property>
-                                 <property name="fill">True</property>
-                               </packing>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">True</property>
-                             <property name="fill">True</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox44">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">6</property>
-
-                             <child>
-                               <widget class="GtkRadioButton" id="text_color_key_radio">
-                                 <property name="visible">True</property>
-                                 <property name="can_focus">True</property>
-                                 <property name="label" translatable="yes">Key:</property>
-                                 <property name="use_underline">True</property>
-                                 <property name="relief">GTK_RELIEF_NORMAL</property>
-                                 <property name="focus_on_click">True</property>
-                                 <property name="active">False</property>
-                                 <property name="inconsistent">False</property>
-                                 <property name="draw_indicator">True</property>
-                                 <property name="group">text_color_radio</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkHBox" id="hbox45">
-                                 <property name="visible">True</property>
-                                 <property name="homogeneous">False</property>
-                                 <property name="spacing">12</property>
-
-                                 <child>
-                                   <widget class="GtkComboBox" id="text_color_key_combo">
-                                     <property name="visible">True</property>
-                                     <property name="add_tearoffs">False</property>
-                                     <property name="focus_on_click">True</property>
-                                   </widget>
-                                   <packing>
-                                     <property name="padding">0</property>
-                                     <property name="expand">True</property>
-                                     <property name="fill">True</property>
-                                   </packing>
-                                 </child>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">True</property>
-                                 <property name="fill">True</property>
-                               </packing>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">True</property>
-                             <property name="fill">True</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox69">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">12</property>
-
-                     <child>
-                       <widget class="GtkLabel" id="text_align_label">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">Alignment:</property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkHBox" id="hbox4">
-                         <property name="visible">True</property>
-                         <property name="homogeneous">False</property>
-                         <property name="spacing">12</property>
-
-                         <child>
-                           <widget class="GtkToggleButton" id="text_left_toggle">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="relief">GTK_RELIEF_NORMAL</property>
-                             <property name="focus_on_click">True</property>
-                             <property name="active">False</property>
-                             <property name="inconsistent">False</property>
-
-                             <child>
-                               <widget class="GtkImage" id="image3">
-                                 <property name="visible">True</property>
-                                 <property name="stock">gtk-justify-left</property>
-                                 <property name="icon_size">4</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                               </widget>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkToggleButton" id="text_center_toggle">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="relief">GTK_RELIEF_NORMAL</property>
-                             <property name="focus_on_click">True</property>
-                             <property name="active">False</property>
-                             <property name="inconsistent">False</property>
-
-                             <child>
-                               <widget class="GtkImage" id="image4">
-                                 <property name="visible">True</property>
-                                 <property name="stock">gtk-justify-center</property>
-                                 <property name="icon_size">4</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                               </widget>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkToggleButton" id="text_right_toggle">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="relief">GTK_RELIEF_NORMAL</property>
-                             <property name="focus_on_click">True</property>
-                             <property name="active">False</property>
-                             <property name="inconsistent">False</property>
-
-                             <child>
-                               <widget class="GtkImage" id="image5">
-                                 <property name="visible">True</property>
-                                 <property name="stock">gtk-justify-right</property>
-                                 <property name="icon_size">4</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                               </widget>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox70">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">12</property>
-
-                     <child>
-                       <widget class="GtkLabel" id="text_line_spacing_label">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">Line Spacing:</property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkHBox" id="hbox31">
-                         <property name="visible">True</property>
-                         <property name="homogeneous">False</property>
-                         <property name="spacing">12</property>
-
-                         <child>
-                           <widget class="GtkSpinButton" id="text_line_spacing_spin">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="climb_rate">0.00999999977648</property>
-                             <property name="digits">2</property>
-                             <property name="numeric">False</property>
-                             <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                             <property name="snap_to_ticks">False</property>
-                             <property name="wrap">False</property>
-                             <property name="adjustment">1 0 5 0.01 0.1 0</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkCheckButton" id="text_auto_shrink_check">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="label" translatable="yes">Allow merge to automatically shrink text</property>
-                     <property name="use_underline">True</property>
-                     <property name="relief">GTK_RELIEF_NORMAL</property>
-                     <property name="focus_on_click">True</property>
-                     <property name="active">False</property>
-                     <property name="inconsistent">False</property>
-                     <property name="draw_indicator">True</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="tab_expand">False</property>
-                 <property name="tab_fill">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkLabel" id="text_tab_label">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">Style</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">False</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="type">tab</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkVBox" id="line_page_vbox">
-                 <property name="border_width">12</property>
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">12</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox71">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">12</property>
-
-                     <child>
-                       <widget class="GtkLabel" id="line_w_label">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">Width:</property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkHBox" id="hbox7">
-                         <property name="visible">True</property>
-                         <property name="homogeneous">False</property>
-                         <property name="spacing">12</property>
-
-                         <child>
-                           <widget class="GtkSpinButton" id="line_width_spin">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="climb_rate">0.00999999977648</property>
-                             <property name="digits">2</property>
-                             <property name="numeric">True</property>
-                             <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                             <property name="snap_to_ticks">False</property>
-                             <property name="wrap">False</property>
-                             <property name="adjustment">1 0.25 4 0.25 1 0</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkLabel" id="label21">
-                             <property name="visible">True</property>
-                             <property name="label" translatable="yes">points</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0.5</property>
-                             <property name="yalign">0.5</property>
-                             <property name="xpad">0</property>
-                             <property name="ypad">0</property>
-                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox72">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">12</property>
-
-                     <child>
-                       <widget class="GtkLabel" id="line_color_label">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">Color:</property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0</property>
-                         <property name="yalign">0.140000000596</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkVBox" id="vbox2">
-                         <property name="visible">True</property>
-                         <property name="homogeneous">False</property>
-                         <property name="spacing">6</property>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox38">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">6</property>
-
-                             <child>
-                               <widget class="GtkRadioButton" id="line_color_radio">
-                                 <property name="visible">True</property>
-                                 <property name="can_focus">True</property>
-                                 <property name="label" translatable="yes"></property>
-                                 <property name="use_underline">True</property>
-                                 <property name="relief">GTK_RELIEF_NORMAL</property>
-                                 <property name="focus_on_click">True</property>
-                                 <property name="active">False</property>
-                                 <property name="inconsistent">False</property>
-                                 <property name="draw_indicator">True</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkHBox" id="hbox39">
-                                 <property name="visible">True</property>
-                                 <property name="homogeneous">False</property>
-                                 <property name="spacing">12</property>
-
-                                 <child>
-                                   <widget class="Custom" id="line_color_combo">
-                                     <property name="visible">True</property>
-                                     <property name="creation_function">gl_object_editor_construct_color_combo</property>
-                                     <property name="int1">1</property>
-                                     <property name="int2">0</property>
-                                     <property name="last_modification_time">Sun, 16 Nov 2003 06:52:23 GMT</property>
-                                   </widget>
-                                   <packing>
-                                     <property name="padding">0</property>
-                                     <property name="expand">False</property>
-                                     <property name="fill">False</property>
-                                   </packing>
-                                 </child>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">True</property>
-                                 <property name="fill">True</property>
-                               </packing>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">True</property>
-                             <property name="fill">True</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox40">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">6</property>
-
-                             <child>
-                               <widget class="GtkRadioButton" id="line_key_radio">
-                                 <property name="visible">True</property>
-                                 <property name="can_focus">True</property>
-                                 <property name="label" translatable="yes">Key:</property>
-                                 <property name="use_underline">True</property>
-                                 <property name="relief">GTK_RELIEF_NORMAL</property>
-                                 <property name="focus_on_click">True</property>
-                                 <property name="active">False</property>
-                                 <property name="inconsistent">False</property>
-                                 <property name="draw_indicator">True</property>
-                                 <property name="group">line_color_radio</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkHBox" id="hbox41">
-                                 <property name="visible">True</property>
-                                 <property name="homogeneous">False</property>
-                                 <property name="spacing">12</property>
-
-                                 <child>
-                                   <widget class="GtkComboBox" id="line_key_combo">
-                                     <property name="visible">True</property>
-                                     <property name="add_tearoffs">False</property>
-                                     <property name="focus_on_click">True</property>
-                                   </widget>
-                                   <packing>
-                                     <property name="padding">0</property>
-                                     <property name="expand">True</property>
-                                     <property name="fill">True</property>
-                                   </packing>
-                                 </child>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">True</property>
-                                 <property name="fill">True</property>
-                               </packing>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">True</property>
-                             <property name="fill">True</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="tab_expand">False</property>
-                 <property name="tab_fill">True</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkLabel" id="line_tab_label">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">Line</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">False</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="type">tab</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkVBox" id="fill_page_vbox">
-                 <property name="border_width">12</property>
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">0</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox73">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">12</property>
-
-                     <child>
-                       <widget class="GtkLabel" id="fill_color_label">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">Color:</property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0</property>
-                         <property name="yalign">0.140000000596</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkVBox" id="vbox5">
-                         <property name="visible">True</property>
-                         <property name="homogeneous">False</property>
-                         <property name="spacing">6</property>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox50">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">6</property>
-
-                             <child>
-                               <widget class="GtkRadioButton" id="fill_color_radio">
-                                 <property name="visible">True</property>
-                                 <property name="can_focus">True</property>
-                                 <property name="label" translatable="yes"></property>
-                                 <property name="use_underline">True</property>
-                                 <property name="relief">GTK_RELIEF_NORMAL</property>
-                                 <property name="focus_on_click">True</property>
-                                 <property name="active">False</property>
-                                 <property name="inconsistent">False</property>
-                                 <property name="draw_indicator">True</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkHBox" id="hbox51">
-                                 <property name="visible">True</property>
-                                 <property name="homogeneous">False</property>
-                                 <property name="spacing">12</property>
-
-                                 <child>
-                                   <widget class="Custom" id="fill_color_combo">
-                                     <property name="visible">True</property>
-                                     <property name="creation_function">gl_object_editor_construct_color_combo</property>
-                                     <property name="int1">0</property>
-                                     <property name="int2">0</property>
-                                     <property name="last_modification_time">Sun, 16 Nov 2003 06:52:23 GMT</property>
-                                   </widget>
-                                   <packing>
-                                     <property name="padding">0</property>
-                                     <property name="expand">False</property>
-                                     <property name="fill">False</property>
-                                   </packing>
-                                 </child>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">True</property>
-                                 <property name="fill">True</property>
-                               </packing>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">True</property>
-                             <property name="fill">True</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox52">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">6</property>
-
-                             <child>
-                               <widget class="GtkRadioButton" id="fill_key_radio">
-                                 <property name="visible">True</property>
-                                 <property name="can_focus">True</property>
-                                 <property name="label" translatable="yes">Key:</property>
-                                 <property name="use_underline">True</property>
-                                 <property name="relief">GTK_RELIEF_NORMAL</property>
-                                 <property name="focus_on_click">True</property>
-                                 <property name="active">False</property>
-                                 <property name="inconsistent">False</property>
-                                 <property name="draw_indicator">True</property>
-                                 <property name="group">fill_color_radio</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkHBox" id="hbox53">
-                                 <property name="visible">True</property>
-                                 <property name="homogeneous">False</property>
-                                 <property name="spacing">12</property>
-
-                                 <child>
-                                   <widget class="GtkComboBox" id="fill_key_combo">
-                                     <property name="visible">True</property>
-                                     <property name="add_tearoffs">False</property>
-                                     <property name="focus_on_click">True</property>
-                                   </widget>
-                                   <packing>
-                                     <property name="padding">0</property>
-                                     <property name="expand">True</property>
-                                     <property name="fill">True</property>
-                                   </packing>
-                                 </child>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">True</property>
-                                 <property name="fill">True</property>
-                               </packing>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">True</property>
-                             <property name="fill">True</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="tab_expand">False</property>
-                 <property name="tab_fill">True</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkLabel" id="fill_tab_label">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">Fill</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">False</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="type">tab</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkVBox" id="img_page_vbox">
-                 <property name="border_width">12</property>
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">12</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox74">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">12</property>
-
-                     <child>
-                       <widget class="GtkRadioButton" id="img_file_radio">
-                         <property name="visible">True</property>
-                         <property name="can_focus">True</property>
-                         <property name="label" translatable="yes">File:</property>
-                         <property name="use_underline">True</property>
-                         <property name="relief">GTK_RELIEF_NORMAL</property>
-                         <property name="focus_on_click">True</property>
-                         <property name="active">False</property>
-                         <property name="inconsistent">False</property>
-                         <property name="draw_indicator">True</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkFileChooserButton" id="img_file_button">
-                         <property name="visible">True</property>
-                         <property name="title" translatable="yes">Select A File</property>
-                         <property name="action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
-                         <property name="local_only">True</property>
-                         <property name="show_hidden">True</property>
-                         <property name="do_overwrite_confirmation">False</property>
-                         <property name="width_chars">-1</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox75">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">12</property>
-
-                     <child>
-                       <widget class="GtkRadioButton" id="img_key_radio">
-                         <property name="visible">True</property>
-                         <property name="sensitive">False</property>
-                         <property name="can_focus">True</property>
-                         <property name="label" translatable="yes">Key:</property>
-                         <property name="use_underline">True</property>
-                         <property name="relief">GTK_RELIEF_NORMAL</property>
-                         <property name="focus_on_click">True</property>
-                         <property name="active">False</property>
-                         <property name="inconsistent">False</property>
-                         <property name="draw_indicator">True</property>
-                         <property name="group">img_file_radio</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkComboBox" id="img_key_combo">
-                         <property name="visible">True</property>
-                         <property name="add_tearoffs">False</property>
-                         <property name="focus_on_click">True</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="tab_expand">False</property>
-                 <property name="tab_fill">True</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkLabel" id="img_tab_label">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">Image</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">False</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="type">tab</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkVBox" id="data_page_vbox">
-                 <property name="border_width">12</property>
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">12</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox76">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">12</property>
-
-                     <child>
-                       <widget class="GtkRadioButton" id="data_literal_radio">
-                         <property name="visible">True</property>
-                         <property name="can_focus">True</property>
-                         <property name="label" translatable="yes">Literal:</property>
-                         <property name="use_underline">True</property>
-                         <property name="relief">GTK_RELIEF_NORMAL</property>
-                         <property name="focus_on_click">True</property>
-                         <property name="active">False</property>
-                         <property name="inconsistent">False</property>
-                         <property name="draw_indicator">True</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkEntry" id="data_text_entry">
-                         <property name="visible">True</property>
-                         <property name="can_focus">True</property>
-                         <property name="editable">True</property>
-                         <property name="visibility">True</property>
-                         <property name="max_length">0</property>
-                         <property name="text" translatable="yes"></property>
-                         <property name="has_frame">True</property>
-                         <property name="invisible_char">*</property>
-                         <property name="activates_default">False</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox77">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">12</property>
-
-                     <child>
-                       <widget class="GtkRadioButton" id="data_key_radio">
-                         <property name="visible">True</property>
-                         <property name="can_focus">True</property>
-                         <property name="label" translatable="yes">Key:</property>
-                         <property name="use_underline">True</property>
-                         <property name="relief">GTK_RELIEF_NORMAL</property>
-                         <property name="focus_on_click">True</property>
-                         <property name="active">False</property>
-                         <property name="inconsistent">False</property>
-                         <property name="draw_indicator">True</property>
-                         <property name="group">data_literal_radio</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkComboBox" id="data_key_combo">
-                         <property name="visible">True</property>
-                         <property name="add_tearoffs">False</property>
-                         <property name="focus_on_click">True</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox78">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">12</property>
-
-                     <child>
-                       <widget class="GtkLabel" id="data_fill_label">
-                         <property name="visible">True</property>
-                         <property name="label">         </property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkTable" id="table9">
-                         <property name="visible">True</property>
-                         <property name="n_rows">2</property>
-                         <property name="n_columns">2</property>
-                         <property name="homogeneous">False</property>
-                         <property name="row_spacing">6</property>
-                         <property name="column_spacing">6</property>
-
-                         <child>
-                           <widget class="GtkLabel" id="data_format_label">
-                             <property name="visible">True</property>
-                             <property name="label" translatable="yes">format:</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0</property>
-                             <property name="yalign">0.5</property>
-                             <property name="xpad">0</property>
-                             <property name="ypad">0</property>
-                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="left_attach">0</property>
-                             <property name="right_attach">1</property>
-                             <property name="top_attach">0</property>
-                             <property name="bottom_attach">1</property>
-                             <property name="x_options">fill</property>
-                             <property name="y_options"></property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkLabel" id="data_ex_label">
-                             <property name="visible">True</property>
-                             <property name="label" translatable="yes">00000000000 00000</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0</property>
-                             <property name="yalign">0.5</property>
-                             <property name="xpad">0</property>
-                             <property name="ypad">0</property>
-                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="left_attach">1</property>
-                             <property name="right_attach">2</property>
-                             <property name="top_attach">0</property>
-                             <property name="bottom_attach">1</property>
-                             <property name="x_options">fill</property>
-                             <property name="y_options"></property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkLabel" id="data_digits_label">
-                             <property name="visible">True</property>
-                             <property name="label" translatable="yes">digits:</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0</property>
-                             <property name="yalign">0.5</property>
-                             <property name="xpad">0</property>
-                             <property name="ypad">0</property>
-                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="left_attach">0</property>
-                             <property name="right_attach">1</property>
-                             <property name="top_attach">1</property>
-                             <property name="bottom_attach">2</property>
-                             <property name="x_options">fill</property>
-                             <property name="y_options"></property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox32">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">0</property>
-
-                             <child>
-                               <widget class="GtkSpinButton" id="data_digits_spin">
-                                 <property name="visible">True</property>
-                                 <property name="can_focus">True</property>
-                                 <property name="climb_rate">1</property>
-                                 <property name="digits">0</property>
-                                 <property name="numeric">True</property>
-                                 <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                                 <property name="snap_to_ticks">False</property>
-                                 <property name="wrap">False</property>
-                                 <property name="adjustment">1 1 100 1 10 0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="left_attach">1</property>
-                             <property name="right_attach">2</property>
-                             <property name="top_attach">1</property>
-                             <property name="bottom_attach">2</property>
-                             <property name="x_options">fill</property>
-                             <property name="y_options">fill</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="tab_expand">False</property>
-                 <property name="tab_fill">True</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkLabel" id="data_tab_label">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">Data</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">False</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="type">tab</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkVBox" id="bc_page_vbox">
-                 <property name="border_width">12</property>
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">12</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox79">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">12</property>
-
-                     <child>
-                       <widget class="GtkLabel" id="bc_style_label">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">Style:</property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkComboBox" id="bc_style_combo">
-                         <property name="visible">True</property>
-                         <property name="add_tearoffs">False</property>
-                         <property name="focus_on_click">True</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkCheckButton" id="bc_text_check">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="label" translatable="yes">Text</property>
-                     <property name="use_underline">True</property>
-                     <property name="relief">GTK_RELIEF_NORMAL</property>
-                     <property name="focus_on_click">True</property>
-                     <property name="active">False</property>
-                     <property name="inconsistent">False</property>
-                     <property name="draw_indicator">True</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkCheckButton" id="bc_cs_check">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="label" translatable="yes">Checksum</property>
-                     <property name="use_underline">True</property>
-                     <property name="relief">GTK_RELIEF_NORMAL</property>
-                     <property name="focus_on_click">True</property>
-                     <property name="active">False</property>
-                     <property name="inconsistent">False</property>
-                     <property name="draw_indicator">True</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox80">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">12</property>
-
-                     <child>
-                       <widget class="GtkLabel" id="bc_color_label">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">Color:</property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0</property>
-                         <property name="yalign">0.140000000596</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkVBox" id="vbox4">
-                         <property name="visible">True</property>
-                         <property name="homogeneous">False</property>
-                         <property name="spacing">6</property>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox46">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">6</property>
-
-                             <child>
-                               <widget class="GtkRadioButton" id="bc_color_radio">
-                                 <property name="visible">True</property>
-                                 <property name="can_focus">True</property>
-                                 <property name="label" translatable="yes"></property>
-                                 <property name="use_underline">True</property>
-                                 <property name="relief">GTK_RELIEF_NORMAL</property>
-                                 <property name="focus_on_click">True</property>
-                                 <property name="active">False</property>
-                                 <property name="inconsistent">False</property>
-                                 <property name="draw_indicator">True</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkHBox" id="hbox47">
-                                 <property name="visible">True</property>
-                                 <property name="homogeneous">False</property>
-                                 <property name="spacing">12</property>
-
-                                 <child>
-                                   <widget class="Custom" id="bc_color_combo">
-                                     <property name="visible">True</property>
-                                     <property name="creation_function">gl_object_editor_construct_color_combo</property>
-                                     <property name="int1">1</property>
-                                     <property name="int2">0</property>
-                                     <property name="last_modification_time">Sun, 16 Nov 2003 06:52:23 GMT</property>
-                                   </widget>
-                                   <packing>
-                                     <property name="padding">0</property>
-                                     <property name="expand">False</property>
-                                     <property name="fill">False</property>
-                                   </packing>
-                                 </child>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">True</property>
-                                 <property name="fill">True</property>
-                               </packing>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">True</property>
-                             <property name="fill">True</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox48">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">6</property>
-
-                             <child>
-                               <widget class="GtkRadioButton" id="bc_key_radio">
-                                 <property name="visible">True</property>
-                                 <property name="can_focus">True</property>
-                                 <property name="label" translatable="yes">Key:</property>
-                                 <property name="use_underline">True</property>
-                                 <property name="relief">GTK_RELIEF_NORMAL</property>
-                                 <property name="focus_on_click">True</property>
-                                 <property name="active">False</property>
-                                 <property name="inconsistent">False</property>
-                                 <property name="draw_indicator">True</property>
-                                 <property name="group">bc_color_radio</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkHBox" id="hbox49">
-                                 <property name="visible">True</property>
-                                 <property name="homogeneous">False</property>
-                                 <property name="spacing">12</property>
-
-                                 <child>
-                                   <widget class="GtkComboBox" id="bc_key_combo">
-                                     <property name="visible">True</property>
-                                     <property name="add_tearoffs">False</property>
-                                     <property name="focus_on_click">True</property>
-                                   </widget>
-                                   <packing>
-                                     <property name="padding">0</property>
-                                     <property name="expand">True</property>
-                                     <property name="fill">True</property>
-                                   </packing>
-                                 </child>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">True</property>
-                                 <property name="fill">True</property>
-                               </packing>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">True</property>
-                             <property name="fill">True</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="tab_expand">True</property>
-                 <property name="tab_fill">True</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkLabel" id="bc_tab_label">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">Style</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">False</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="type">tab</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkVBox" id="size_page_vbox">
-                 <property name="border_width">12</property>
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">12</property>
-
-                 <child>
-                   <widget class="GtkTable" id="table6">
-                     <property name="visible">True</property>
-                     <property name="n_rows">3</property>
-                     <property name="n_columns">3</property>
-                     <property name="homogeneous">False</property>
-                     <property name="row_spacing">12</property>
-                     <property name="column_spacing">12</property>
-
-                     <child>
-                       <widget class="GtkLabel" id="size_w_label">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">Width:</property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="left_attach">0</property>
-                         <property name="right_attach">1</property>
-                         <property name="top_attach">0</property>
-                         <property name="bottom_attach">1</property>
-                         <property name="x_options">fill</property>
-                         <property name="y_options"></property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkLabel" id="size_h_label">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">Height:</property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="left_attach">0</property>
-                         <property name="right_attach">1</property>
-                         <property name="top_attach">1</property>
-                         <property name="bottom_attach">2</property>
-                         <property name="x_options">fill</property>
-                         <property name="y_options"></property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkHBox" id="hbox11">
-                         <property name="visible">True</property>
-                         <property name="homogeneous">False</property>
-                         <property name="spacing">12</property>
-
-                         <child>
-                           <widget class="GtkSpinButton" id="size_h_spin">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="climb_rate">0.00999999977648</property>
-                             <property name="digits">2</property>
-                             <property name="numeric">True</property>
-                             <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                             <property name="snap_to_ticks">True</property>
-                             <property name="wrap">False</property>
-                             <property name="adjustment">1 0 100 0.01 10 0</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">True</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkLabel" id="size_h_units_label">
-                             <property name="visible">True</property>
-                             <property name="label" translatable="yes">inches</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0.5</property>
-                             <property name="yalign">0.5</property>
-                             <property name="xpad">0</property>
-                             <property name="ypad">0</property>
-                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="left_attach">1</property>
-                         <property name="right_attach">2</property>
-                         <property name="top_attach">1</property>
-                         <property name="bottom_attach">2</property>
-                         <property name="x_options">fill</property>
-                         <property name="y_options">fill</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkHBox" id="hbox13">
-                         <property name="visible">True</property>
-                         <property name="homogeneous">False</property>
-                         <property name="spacing">12</property>
-
-                         <child>
-                           <widget class="GtkButton" id="size_reset_image_button">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="label" translatable="yes">Reset image size</property>
-                             <property name="use_underline">True</property>
-                             <property name="relief">GTK_RELIEF_NORMAL</property>
-                             <property name="focus_on_click">True</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="left_attach">0</property>
-                         <property name="right_attach">2</property>
-                         <property name="top_attach">2</property>
-                         <property name="bottom_attach">3</property>
-                         <property name="x_options">fill</property>
-                         <property name="y_options"></property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkHBox" id="hbox10">
-                         <property name="visible">True</property>
-                         <property name="homogeneous">False</property>
-                         <property name="spacing">12</property>
-
-                         <child>
-                           <widget class="GtkSpinButton" id="size_w_spin">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="climb_rate">0.00999999977648</property>
-                             <property name="digits">2</property>
-                             <property name="numeric">True</property>
-                             <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                             <property name="snap_to_ticks">True</property>
-                             <property name="wrap">False</property>
-                             <property name="adjustment">1 0 100 0.01 10 0</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">True</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkLabel" id="size_w_units_label">
-                             <property name="visible">True</property>
-                             <property name="label" translatable="yes">inches</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0.5</property>
-                             <property name="yalign">0.5</property>
-                             <property name="xpad">0</property>
-                             <property name="ypad">0</property>
-                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="left_attach">1</property>
-                         <property name="right_attach">2</property>
-                         <property name="top_attach">0</property>
-                         <property name="bottom_attach">1</property>
-                         <property name="x_options">fill</property>
-                         <property name="y_options">fill</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="Custom" id="size_aspect_checkbutton">
-                         <property name="visible">True</property>
-                         <property name="creation_function">gl_object_editor_construct_chain_button</property>
-                         <property name="int1">0</property>
-                         <property name="int2">0</property>
-                         <property name="last_modification_time">Sat, 07 Feb 2004 02:56:47 GMT</property>
-                       </widget>
-                       <packing>
-                         <property name="left_attach">2</property>
-                         <property name="right_attach">3</property>
-                         <property name="top_attach">0</property>
-                         <property name="bottom_attach">2</property>
-                         <property name="x_options"></property>
-                         <property name="y_options">fill</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">True</property>
-                     <property name="fill">True</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="tab_expand">False</property>
-                 <property name="tab_fill">True</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkLabel" id="size_tab_label">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">Size</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">False</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="type">tab</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkVBox" id="lsize_page_vbox">
-                 <property name="border_width">12</property>
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">12</property>
-
-                 <child>
-                   <widget class="GtkTable" id="table7">
-                     <property name="visible">True</property>
-                     <property name="n_rows">2</property>
-                     <property name="n_columns">2</property>
-                     <property name="homogeneous">False</property>
-                     <property name="row_spacing">12</property>
-                     <property name="column_spacing">12</property>
-
-                     <child>
-                       <widget class="GtkLabel" id="lsize_r_label">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">Length:</property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="left_attach">0</property>
-                         <property name="right_attach">1</property>
-                         <property name="top_attach">0</property>
-                         <property name="bottom_attach">1</property>
-                         <property name="x_options">fill</property>
-                         <property name="y_options"></property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkLabel" id="lsize_theta_label">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">Angle:</property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="left_attach">0</property>
-                         <property name="right_attach">1</property>
-                         <property name="top_attach">1</property>
-                         <property name="bottom_attach">2</property>
-                         <property name="x_options">fill</property>
-                         <property name="y_options"></property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkHBox" id="hbox25">
-                         <property name="visible">True</property>
-                         <property name="homogeneous">False</property>
-                         <property name="spacing">12</property>
-
-                         <child>
-                           <widget class="GtkSpinButton" id="lsize_r_spin">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="climb_rate">0.00999999977648</property>
-                             <property name="digits">2</property>
-                             <property name="numeric">True</property>
-                             <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                             <property name="snap_to_ticks">True</property>
-                             <property name="wrap">False</property>
-                             <property name="adjustment">1 0 100 0.01 10 0</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">True</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkLabel" id="lsize_r_units_label">
-                             <property name="visible">True</property>
-                             <property name="label" translatable="yes">inches</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0.5</property>
-                             <property name="yalign">0.5</property>
-                             <property name="xpad">0</property>
-                             <property name="ypad">0</property>
-                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="left_attach">1</property>
-                         <property name="right_attach">2</property>
-                         <property name="top_attach">0</property>
-                         <property name="bottom_attach">1</property>
-                         <property name="y_options">fill</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkHBox" id="hbox26">
-                         <property name="visible">True</property>
-                         <property name="homogeneous">False</property>
-                         <property name="spacing">12</property>
-
-                         <child>
-                           <widget class="GtkSpinButton" id="lsize_theta_spin">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="climb_rate">0.00999999977648</property>
-                             <property name="digits">1</property>
-                             <property name="numeric">True</property>
-                             <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                             <property name="snap_to_ticks">True</property>
-                             <property name="wrap">False</property>
-                             <property name="adjustment">0 -180 180 0.1 5 0</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">True</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkLabel" id="label38">
-                             <property name="visible">True</property>
-                             <property name="label" translatable="yes">degrees</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0.5</property>
-                             <property name="yalign">0.5</property>
-                             <property name="xpad">0</property>
-                             <property name="ypad">0</property>
-                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="left_attach">1</property>
-                         <property name="right_attach">2</property>
-                         <property name="top_attach">1</property>
-                         <property name="bottom_attach">2</property>
-                         <property name="x_options">fill</property>
-                         <property name="y_options">fill</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">True</property>
-                     <property name="fill">True</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="tab_expand">False</property>
-                 <property name="tab_fill">True</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkLabel" id="lsize_tab_label">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">Size</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">False</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="type">tab</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkVBox" id="pos_page_vbox">
-                 <property name="border_width">12</property>
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">12</property>
-
-                 <child>
-                   <widget class="GtkTable" id="table8">
-                     <property name="visible">True</property>
-                     <property name="n_rows">2</property>
-                     <property name="n_columns">3</property>
-                     <property name="homogeneous">False</property>
-                     <property name="row_spacing">12</property>
-                     <property name="column_spacing">12</property>
-
-                     <child>
-                       <widget class="GtkLabel" id="pos_x_label">
-                         <property name="width_request">50</property>
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">X:</property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="left_attach">0</property>
-                         <property name="right_attach">1</property>
-                         <property name="top_attach">0</property>
-                         <property name="bottom_attach">1</property>
-                         <property name="x_options">fill</property>
-                         <property name="y_options"></property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkLabel" id="pos_y_label">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">Y:</property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="left_attach">0</property>
-                         <property name="right_attach">1</property>
-                         <property name="top_attach">1</property>
-                         <property name="bottom_attach">2</property>
-                         <property name="x_options">fill</property>
-                         <property name="y_options"></property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkLabel" id="pos_x_units_label">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">inches</property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="left_attach">2</property>
-                         <property name="right_attach">3</property>
-                         <property name="top_attach">0</property>
-                         <property name="bottom_attach">1</property>
-                         <property name="x_options">fill</property>
-                         <property name="y_options"></property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkLabel" id="pos_y_units_label">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">inches</property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="left_attach">2</property>
-                         <property name="right_attach">3</property>
-                         <property name="top_attach">1</property>
-                         <property name="bottom_attach">2</property>
-                         <property name="x_options">fill</property>
-                         <property name="y_options"></property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkSpinButton" id="pos_x_spin">
-                         <property name="visible">True</property>
-                         <property name="can_focus">True</property>
-                         <property name="climb_rate">0.00999999977648</property>
-                         <property name="digits">2</property>
-                         <property name="numeric">True</property>
-                         <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                         <property name="snap_to_ticks">True</property>
-                         <property name="wrap">False</property>
-                         <property name="adjustment">0 0 100 0.01 10 0</property>
-                       </widget>
-                       <packing>
-                         <property name="left_attach">1</property>
-                         <property name="right_attach">2</property>
-                         <property name="top_attach">0</property>
-                         <property name="bottom_attach">1</property>
-                         <property name="x_options"></property>
-                         <property name="y_options"></property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkSpinButton" id="pos_y_spin">
-                         <property name="visible">True</property>
-                         <property name="can_focus">True</property>
-                         <property name="climb_rate">0.00999999977648</property>
-                         <property name="digits">2</property>
-                         <property name="numeric">True</property>
-                         <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                         <property name="snap_to_ticks">True</property>
-                         <property name="wrap">False</property>
-                         <property name="adjustment">0 0 100 0.01 10 0</property>
-                       </widget>
-                       <packing>
-                         <property name="left_attach">1</property>
-                         <property name="right_attach">2</property>
-                         <property name="top_attach">1</property>
-                         <property name="bottom_attach">2</property>
-                         <property name="x_options"></property>
-                         <property name="y_options"></property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">True</property>
-                     <property name="fill">True</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="tab_expand">False</property>
-                 <property name="tab_fill">True</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkLabel" id="pos_tab_label">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">Position</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">False</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="type">tab</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkVBox" id="shadow_page_vbox">
-                 <property name="border_width">12</property>
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">12</property>
-
-                 <child>
-                   <widget class="GtkCheckButton" id="shadow_enable_check">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="label" translatable="yes">Enable shadow</property>
-                     <property name="use_underline">True</property>
-                     <property name="relief">GTK_RELIEF_NORMAL</property>
-                     <property name="focus_on_click">True</property>
-                     <property name="active">False</property>
-                     <property name="inconsistent">False</property>
-                     <property name="draw_indicator">True</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkVBox" id="shadow_controls_table">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">12</property>
-
-                     <child>
-                       <widget class="GtkHBox" id="hbox63">
-                         <property name="visible">True</property>
-                         <property name="homogeneous">False</property>
-                         <property name="spacing">12</property>
-
-                         <child>
-                           <widget class="GtkLabel" id="label40">
-                             <property name="visible">True</property>
-                             <property name="label" translatable="yes">X Offset:</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0</property>
-                             <property name="yalign">0.5</property>
-                             <property name="xpad">0</property>
-                             <property name="ypad">0</property>
-                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox54">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">12</property>
-
-                             <child>
-                               <widget class="GtkSpinButton" id="shadow_x_spin">
-                                 <property name="visible">True</property>
-                                 <property name="can_focus">True</property>
-                                 <property name="climb_rate">0.00999999977648</property>
-                                 <property name="digits">2</property>
-                                 <property name="numeric">True</property>
-                                 <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                                 <property name="snap_to_ticks">True</property>
-                                 <property name="wrap">False</property>
-                                 <property name="adjustment">0 0 100 0.00999999977648 10 0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">True</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkLabel" id="shadow_x_units_label">
-                                 <property name="visible">True</property>
-                                 <property name="label" translatable="yes">inches</property>
-                                 <property name="use_underline">False</property>
-                                 <property name="use_markup">False</property>
-                                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                                 <property name="wrap">False</property>
-                                 <property name="selectable">False</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                                 <property name="width_chars">-1</property>
-                                 <property name="single_line_mode">False</property>
-                                 <property name="angle">0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">True</property>
-                             <property name="fill">True</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkHBox" id="hbox64">
-                         <property name="visible">True</property>
-                         <property name="homogeneous">False</property>
-                         <property name="spacing">12</property>
-
-                         <child>
-                           <widget class="GtkLabel" id="label41">
-                             <property name="visible">True</property>
-                             <property name="label" translatable="yes">Y Offset:</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0</property>
-                             <property name="yalign">0.5</property>
-                             <property name="xpad">0</property>
-                             <property name="ypad">0</property>
-                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox55">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">12</property>
-
-                             <child>
-                               <widget class="GtkSpinButton" id="shadow_y_spin">
-                                 <property name="visible">True</property>
-                                 <property name="can_focus">True</property>
-                                 <property name="climb_rate">0.00999999977648</property>
-                                 <property name="digits">2</property>
-                                 <property name="numeric">True</property>
-                                 <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                                 <property name="snap_to_ticks">True</property>
-                                 <property name="wrap">False</property>
-                                 <property name="adjustment">0 0 100 0.00999999977648 10 0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">True</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkLabel" id="shadow_y_units_label">
-                                 <property name="visible">True</property>
-                                 <property name="label" translatable="yes">inches</property>
-                                 <property name="use_underline">False</property>
-                                 <property name="use_markup">False</property>
-                                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                                 <property name="wrap">False</property>
-                                 <property name="selectable">False</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                                 <property name="width_chars">-1</property>
-                                 <property name="single_line_mode">False</property>
-                                 <property name="angle">0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">True</property>
-                             <property name="fill">True</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkHBox" id="hbox61">
-                         <property name="visible">True</property>
-                         <property name="homogeneous">False</property>
-                         <property name="spacing">12</property>
-
-                         <child>
-                           <widget class="GtkLabel" id="label45">
-                             <property name="visible">True</property>
-                             <property name="label" translatable="yes">Color:</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0</property>
-                             <property name="yalign">0.140000000596</property>
-                             <property name="xpad">0</property>
-                             <property name="ypad">0</property>
-                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkVBox" id="vbox7">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">6</property>
-
-                             <child>
-                               <widget class="GtkHBox" id="hbox57">
-                                 <property name="visible">True</property>
-                                 <property name="homogeneous">False</property>
-                                 <property name="spacing">6</property>
-
-                                 <child>
-                                   <widget class="GtkRadioButton" id="shadow_color_radio">
-                                     <property name="visible">True</property>
-                                     <property name="can_focus">True</property>
-                                     <property name="label" translatable="yes"></property>
-                                     <property name="use_underline">True</property>
-                                     <property name="relief">GTK_RELIEF_NORMAL</property>
-                                     <property name="focus_on_click">True</property>
-                                     <property name="active">False</property>
-                                     <property name="inconsistent">False</property>
-                                     <property name="draw_indicator">True</property>
-                                   </widget>
-                                   <packing>
-                                     <property name="padding">0</property>
-                                     <property name="expand">False</property>
-                                     <property name="fill">False</property>
-                                   </packing>
-                                 </child>
-
-                                 <child>
-                                   <widget class="GtkHBox" id="hbox58">
-                                     <property name="visible">True</property>
-                                     <property name="homogeneous">False</property>
-                                     <property name="spacing">12</property>
-
-                                     <child>
-                                       <widget class="Custom" id="shadow_color_combo">
-                                         <property name="visible">True</property>
-                                         <property name="creation_function">gl_object_editor_construct_color_combo</property>
-                                         <property name="int1">3</property>
-                                         <property name="int2">0</property>
-                                         <property name="last_modification_time">Sun, 16 Nov 2003 06:52:23 GMT</property>
-                                       </widget>
-                                       <packing>
-                                         <property name="padding">0</property>
-                                         <property name="expand">False</property>
-                                         <property name="fill">False</property>
-                                       </packing>
-                                     </child>
-                                   </widget>
-                                   <packing>
-                                     <property name="padding">0</property>
-                                     <property name="expand">True</property>
-                                     <property name="fill">True</property>
-                                   </packing>
-                                 </child>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">True</property>
-                                 <property name="fill">True</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkHBox" id="hbox59">
-                                 <property name="visible">True</property>
-                                 <property name="homogeneous">False</property>
-                                 <property name="spacing">6</property>
-
-                                 <child>
-                                   <widget class="GtkRadioButton" id="shadow_key_radio">
-                                     <property name="visible">True</property>
-                                     <property name="can_focus">True</property>
-                                     <property name="label" translatable="yes">Key:</property>
-                                     <property name="use_underline">True</property>
-                                     <property name="relief">GTK_RELIEF_NORMAL</property>
-                                     <property name="focus_on_click">True</property>
-                                     <property name="active">False</property>
-                                     <property name="inconsistent">False</property>
-                                     <property name="draw_indicator">True</property>
-                                     <property name="group">shadow_color_radio</property>
-                                   </widget>
-                                   <packing>
-                                     <property name="padding">0</property>
-                                     <property name="expand">False</property>
-                                     <property name="fill">False</property>
-                                   </packing>
-                                 </child>
-
-                                 <child>
-                                   <widget class="GtkHBox" id="hbox60">
-                                     <property name="visible">True</property>
-                                     <property name="homogeneous">False</property>
-                                     <property name="spacing">12</property>
-
-                                     <child>
-                                       <widget class="GtkComboBox" id="shadow_key_combo">
-                                         <property name="visible">True</property>
-                                         <property name="add_tearoffs">False</property>
-                                         <property name="focus_on_click">True</property>
-                                       </widget>
-                                       <packing>
-                                         <property name="padding">0</property>
-                                         <property name="expand">True</property>
-                                         <property name="fill">True</property>
-                                       </packing>
-                                     </child>
-                                   </widget>
-                                   <packing>
-                                     <property name="padding">0</property>
-                                     <property name="expand">True</property>
-                                     <property name="fill">True</property>
-                                   </packing>
-                                 </child>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">True</property>
-                                 <property name="fill">True</property>
-                               </packing>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">True</property>
-                             <property name="fill">True</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkHBox" id="hbox62">
-                         <property name="visible">True</property>
-                         <property name="homogeneous">False</property>
-                         <property name="spacing">12</property>
-
-                         <child>
-                           <widget class="GtkLabel" id="label46">
-                             <property name="visible">True</property>
-                             <property name="label" translatable="yes">Opacity:</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0</property>
-                             <property name="yalign">0.5</property>
-                             <property name="xpad">0</property>
-                             <property name="ypad">0</property>
-                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox56">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">12</property>
-
-                             <child>
-                               <widget class="GtkSpinButton" id="shadow_opacity_spin">
-                                 <property name="visible">True</property>
-                                 <property name="can_focus">True</property>
-                                 <property name="climb_rate">1</property>
-                                 <property name="digits">0</property>
-                                 <property name="numeric">False</property>
-                                 <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                                 <property name="snap_to_ticks">False</property>
-                                 <property name="wrap">False</property>
-                                 <property name="adjustment">1 0 100 1 10 0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">True</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkLabel" id="label47">
-                                 <property name="visible">True</property>
-                                 <property name="label" translatable="yes">%</property>
-                                 <property name="use_underline">False</property>
-                                 <property name="use_markup">False</property>
-                                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                                 <property name="wrap">False</property>
-                                 <property name="selectable">False</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                                 <property name="width_chars">-1</property>
-                                 <property name="single_line_mode">False</property>
-                                 <property name="angle">0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">True</property>
-                             <property name="fill">True</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="tab_expand">False</property>
-                 <property name="tab_fill">True</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkLabel" id="shadow_tab_label">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">Shadow</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">False</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="type">tab</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkVBox" id="dummy_vbox">
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">0</property>
-
-                 <child>
-                   <placeholder/>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="tab_expand">False</property>
-                 <property name="tab_fill">True</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkLabel" id="dummy_page">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">label48</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">False</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="type">tab</property>
-               </packing>
-             </child>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">True</property>
-             <property name="fill">True</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">True</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-</glade-interface>
diff --git a/data/glade/prefs-dialog.glade b/data/glade/prefs-dialog.glade
deleted file mode 100644 (file)
index b169a38..0000000
+++ /dev/null
@@ -1,1309 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-
-<widget class="GtkDialog" id="dialog1">
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">gLabels Preferences</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-  <property name="has_separator">True</property>
-
-  <child internal-child="vbox">
-    <widget class="GtkVBox" id="dialog-vbox1">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child internal-child="action_area">
-       <widget class="GtkHButtonBox" id="dialog-action_area1">
-         <property name="visible">True</property>
-         <property name="layout_style">GTK_BUTTONBOX_END</property>
-
-         <child>
-           <widget class="GtkButton" id="closebutton1">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="label">gtk-close</property>
-             <property name="use_stock">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <property name="response_id">-7</property>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">True</property>
-         <property name="pack_type">GTK_PACK_END</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkNotebook" id="prefs_notebook">
-         <property name="visible">True</property>
-         <property name="can_focus">True</property>
-         <property name="show_tabs">True</property>
-         <property name="show_border">True</property>
-         <property name="tab_pos">GTK_POS_TOP</property>
-         <property name="scrollable">False</property>
-         <property name="enable_popup">False</property>
-
-         <child>
-           <widget class="GtkVBox" id="vbox1">
-             <property name="border_width">12</property>
-             <property name="visible">True</property>
-             <property name="homogeneous">False</property>
-             <property name="spacing">12</property>
-
-             <child>
-               <widget class="GtkLabel" id="label3">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">Select locale specific behavior.</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">False</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkFrame" id="frame1">
-                 <property name="visible">True</property>
-                 <property name="label_xalign">0</property>
-                 <property name="label_yalign">0.5</property>
-                 <property name="shadow_type">GTK_SHADOW_NONE</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox1">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">0</property>
-
-                     <child>
-                       <widget class="GtkLabel" id="label6">
-                         <property name="visible">True</property>
-                         <property name="label">   </property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkVBox" id="vbox2">
-                         <property name="border_width">6</property>
-                         <property name="visible">True</property>
-                         <property name="homogeneous">False</property>
-                         <property name="spacing">6</property>
-
-                         <child>
-                           <widget class="GtkRadioButton" id="units_points_radio">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="label" translatable="yes">Points</property>
-                             <property name="use_underline">True</property>
-                             <property name="relief">GTK_RELIEF_NORMAL</property>
-                             <property name="focus_on_click">True</property>
-                             <property name="active">False</property>
-                             <property name="inconsistent">False</property>
-                             <property name="draw_indicator">True</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkRadioButton" id="units_inches_radio">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="label" translatable="yes">Inches</property>
-                             <property name="use_underline">True</property>
-                             <property name="relief">GTK_RELIEF_NORMAL</property>
-                             <property name="focus_on_click">True</property>
-                             <property name="active">False</property>
-                             <property name="inconsistent">False</property>
-                             <property name="draw_indicator">True</property>
-                             <property name="group">units_points_radio</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkRadioButton" id="units_mm_radio">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="label" translatable="yes">Millimeters</property>
-                             <property name="use_underline">True</property>
-                             <property name="relief">GTK_RELIEF_NORMAL</property>
-                             <property name="focus_on_click">True</property>
-                             <property name="active">False</property>
-                             <property name="inconsistent">False</property>
-                             <property name="draw_indicator">True</property>
-                             <property name="group">units_points_radio</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label4">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;Units&lt;/span&gt;</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">True</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="type">label_item</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkFrame" id="frame2">
-                 <property name="visible">True</property>
-                 <property name="label_xalign">0</property>
-                 <property name="label_yalign">0.5</property>
-                 <property name="shadow_type">GTK_SHADOW_NONE</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox2">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">0</property>
-
-                     <child>
-                       <widget class="GtkLabel" id="label7">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">   </property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkVBox" id="vbox3">
-                         <property name="border_width">6</property>
-                         <property name="visible">True</property>
-                         <property name="homogeneous">False</property>
-                         <property name="spacing">6</property>
-
-                         <child>
-                           <widget class="GtkRadioButton" id="page_size_us_letter_radio">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="label" translatable="yes">US Letter</property>
-                             <property name="use_underline">True</property>
-                             <property name="relief">GTK_RELIEF_NORMAL</property>
-                             <property name="focus_on_click">True</property>
-                             <property name="active">False</property>
-                             <property name="inconsistent">False</property>
-                             <property name="draw_indicator">True</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkRadioButton" id="page_size_a4_radio">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="label" translatable="yes">ISO A4</property>
-                             <property name="use_underline">True</property>
-                             <property name="relief">GTK_RELIEF_NORMAL</property>
-                             <property name="focus_on_click">True</property>
-                             <property name="active">False</property>
-                             <property name="inconsistent">False</property>
-                             <property name="draw_indicator">True</property>
-                             <property name="group">page_size_us_letter_radio</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label5">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;Default page size&lt;/span&gt;</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">True</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="type">label_item</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">False</property>
-               </packing>
-             </child>
-           </widget>
-           <packing>
-             <property name="tab_expand">False</property>
-             <property name="tab_fill">True</property>
-           </packing>
-         </child>
-
-         <child>
-           <widget class="GtkLabel" id="label1">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">Locale</property>
-             <property name="use_underline">False</property>
-             <property name="use_markup">False</property>
-             <property name="justify">GTK_JUSTIFY_LEFT</property>
-             <property name="wrap">False</property>
-             <property name="selectable">False</property>
-             <property name="xalign">0.5</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">0</property>
-             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-             <property name="width_chars">-1</property>
-             <property name="single_line_mode">False</property>
-             <property name="angle">0</property>
-           </widget>
-           <packing>
-             <property name="type">tab</property>
-           </packing>
-         </child>
-
-         <child>
-           <widget class="GtkVBox" id="vbox4">
-             <property name="border_width">12</property>
-             <property name="visible">True</property>
-             <property name="homogeneous">False</property>
-             <property name="spacing">12</property>
-
-             <child>
-               <widget class="GtkLabel" id="label8">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">Select default properties for new objects.</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">False</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkFrame" id="frame3">
-                 <property name="visible">True</property>
-                 <property name="label_xalign">0</property>
-                 <property name="label_yalign">0.5</property>
-                 <property name="shadow_type">GTK_SHADOW_NONE</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox3">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">0</property>
-
-                     <child>
-                       <widget class="GtkLabel" id="label12">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">   </property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkTable" id="table1">
-                         <property name="visible">True</property>
-                         <property name="n_rows">4</property>
-                         <property name="n_columns">2</property>
-                         <property name="homogeneous">False</property>
-                         <property name="row_spacing">12</property>
-                         <property name="column_spacing">12</property>
-
-                         <child>
-                           <widget class="GtkLabel" id="label15">
-                             <property name="visible">True</property>
-                             <property name="label" translatable="yes">Font:</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0</property>
-                             <property name="yalign">0.5</property>
-                             <property name="xpad">0</property>
-                             <property name="ypad">0</property>
-                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="left_attach">0</property>
-                             <property name="right_attach">1</property>
-                             <property name="top_attach">0</property>
-                             <property name="bottom_attach">1</property>
-                             <property name="x_options">fill</property>
-                             <property name="y_options"></property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkLabel" id="label16">
-                             <property name="visible">True</property>
-                             <property name="label" translatable="yes">Color:</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0</property>
-                             <property name="yalign">0.5</property>
-                             <property name="xpad">0</property>
-                             <property name="ypad">0</property>
-                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="left_attach">0</property>
-                             <property name="right_attach">1</property>
-                             <property name="top_attach">1</property>
-                             <property name="bottom_attach">2</property>
-                             <property name="x_options">fill</property>
-                             <property name="y_options"></property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkLabel" id="label17">
-                             <property name="visible">True</property>
-                             <property name="label" translatable="yes">Alignment:</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0</property>
-                             <property name="yalign">0.5</property>
-                             <property name="xpad">0</property>
-                             <property name="ypad">0</property>
-                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="left_attach">0</property>
-                             <property name="right_attach">1</property>
-                             <property name="top_attach">2</property>
-                             <property name="bottom_attach">3</property>
-                             <property name="x_options">fill</property>
-                             <property name="y_options"></property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkLabel" id="label22">
-                             <property name="width_request">90</property>
-                             <property name="visible">True</property>
-                             <property name="label" translatable="yes">Line Spacing:</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0</property>
-                             <property name="yalign">0.5</property>
-                             <property name="xpad">0</property>
-                             <property name="ypad">0</property>
-                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="left_attach">0</property>
-                             <property name="right_attach">1</property>
-                             <property name="top_attach">3</property>
-                             <property name="bottom_attach">4</property>
-                             <property name="x_options">fill</property>
-                             <property name="y_options"></property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox6">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">12</property>
-
-                             <child>
-                               <widget class="GtkComboBox" id="text_family_combo">
-                                 <property name="visible">True</property>
-                                 <property name="add_tearoffs">False</property>
-                                 <property name="focus_on_click">True</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">True</property>
-                                 <property name="fill">True</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkSpinButton" id="text_size_spin">
-                                 <property name="visible">True</property>
-                                 <property name="can_focus">True</property>
-                                 <property name="climb_rate">1</property>
-                                 <property name="digits">0</property>
-                                 <property name="numeric">True</property>
-                                 <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                                 <property name="snap_to_ticks">False</property>
-                                 <property name="wrap">False</property>
-                                 <property name="adjustment">1 1 100 1 10 0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkToggleButton" id="text_bold_toggle">
-                                 <property name="visible">True</property>
-                                 <property name="can_focus">True</property>
-                                 <property name="relief">GTK_RELIEF_NORMAL</property>
-                                 <property name="focus_on_click">True</property>
-                                 <property name="active">False</property>
-                                 <property name="inconsistent">False</property>
-
-                                 <child>
-                                   <widget class="GtkImage" id="image6">
-                                     <property name="visible">True</property>
-                                     <property name="stock">gtk-bold</property>
-                                     <property name="icon_size">4</property>
-                                     <property name="xalign">0.5</property>
-                                     <property name="yalign">0.5</property>
-                                     <property name="xpad">0</property>
-                                     <property name="ypad">0</property>
-                                   </widget>
-                                 </child>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkToggleButton" id="text_italic_toggle">
-                                 <property name="visible">True</property>
-                                 <property name="can_focus">True</property>
-                                 <property name="relief">GTK_RELIEF_NORMAL</property>
-                                 <property name="focus_on_click">True</property>
-                                 <property name="active">False</property>
-                                 <property name="inconsistent">False</property>
-
-                                 <child>
-                                   <widget class="GtkImage" id="image7">
-                                     <property name="visible">True</property>
-                                     <property name="stock">gtk-italic</property>
-                                     <property name="icon_size">4</property>
-                                     <property name="xalign">0.5</property>
-                                     <property name="yalign">0.5</property>
-                                     <property name="xpad">0</property>
-                                     <property name="ypad">0</property>
-                                   </widget>
-                                 </child>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="left_attach">1</property>
-                             <property name="right_attach">2</property>
-                             <property name="top_attach">0</property>
-                             <property name="bottom_attach">1</property>
-                             <property name="y_options">fill</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox7">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">12</property>
-
-                             <child>
-                               <widget class="Custom" id="text_color_combo">
-                                 <property name="visible">True</property>
-                                 <property name="creation_function">gl_object_editor_construct_color_combo</property>
-                                 <property name="int1">2</property>
-                                 <property name="int2">0</property>
-                                 <property name="last_modification_time">Sun, 23 Nov 2003 15:42:02 GMT</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="left_attach">1</property>
-                             <property name="right_attach">2</property>
-                             <property name="top_attach">1</property>
-                             <property name="bottom_attach">2</property>
-                             <property name="x_options">fill</property>
-                             <property name="y_options">fill</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox8">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">12</property>
-
-                             <child>
-                               <widget class="GtkToggleButton" id="text_left_toggle">
-                                 <property name="visible">True</property>
-                                 <property name="can_focus">True</property>
-                                 <property name="relief">GTK_RELIEF_NORMAL</property>
-                                 <property name="focus_on_click">True</property>
-                                 <property name="active">False</property>
-                                 <property name="inconsistent">False</property>
-
-                                 <child>
-                                   <widget class="GtkImage" id="image3">
-                                     <property name="visible">True</property>
-                                     <property name="stock">gtk-justify-left</property>
-                                     <property name="icon_size">4</property>
-                                     <property name="xalign">0.5</property>
-                                     <property name="yalign">0.5</property>
-                                     <property name="xpad">0</property>
-                                     <property name="ypad">0</property>
-                                   </widget>
-                                 </child>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkToggleButton" id="text_center_toggle">
-                                 <property name="visible">True</property>
-                                 <property name="can_focus">True</property>
-                                 <property name="relief">GTK_RELIEF_NORMAL</property>
-                                 <property name="focus_on_click">True</property>
-                                 <property name="active">False</property>
-                                 <property name="inconsistent">False</property>
-
-                                 <child>
-                                   <widget class="GtkImage" id="image4">
-                                     <property name="visible">True</property>
-                                     <property name="stock">gtk-justify-center</property>
-                                     <property name="icon_size">4</property>
-                                     <property name="xalign">0.5</property>
-                                     <property name="yalign">0.5</property>
-                                     <property name="xpad">0</property>
-                                     <property name="ypad">0</property>
-                                   </widget>
-                                 </child>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkToggleButton" id="text_right_toggle">
-                                 <property name="visible">True</property>
-                                 <property name="can_focus">True</property>
-                                 <property name="relief">GTK_RELIEF_NORMAL</property>
-                                 <property name="focus_on_click">True</property>
-                                 <property name="active">False</property>
-                                 <property name="inconsistent">False</property>
-
-                                 <child>
-                                   <widget class="GtkImage" id="image5">
-                                     <property name="visible">True</property>
-                                     <property name="stock">gtk-justify-right</property>
-                                     <property name="icon_size">4</property>
-                                     <property name="xalign">0.5</property>
-                                     <property name="yalign">0.5</property>
-                                     <property name="xpad">0</property>
-                                     <property name="ypad">0</property>
-                                   </widget>
-                                 </child>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="left_attach">1</property>
-                             <property name="right_attach">2</property>
-                             <property name="top_attach">2</property>
-                             <property name="bottom_attach">3</property>
-                             <property name="x_options">fill</property>
-                             <property name="y_options">fill</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox12">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">40</property>
-
-                             <child>
-                               <widget class="GtkSpinButton" id="text_line_spacing_spin">
-                                 <property name="visible">True</property>
-                                 <property name="can_focus">True</property>
-                                 <property name="climb_rate">0.00999999977648</property>
-                                 <property name="digits">2</property>
-                                 <property name="numeric">False</property>
-                                 <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                                 <property name="snap_to_ticks">False</property>
-                                 <property name="wrap">False</property>
-                                 <property name="adjustment">1 0 5 0.01 0.1 0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="left_attach">1</property>
-                             <property name="right_attach">2</property>
-                             <property name="top_attach">3</property>
-                             <property name="bottom_attach">4</property>
-                             <property name="x_options">fill</property>
-                             <property name="y_options">fill</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label9">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;Text&lt;/span&gt;</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">True</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0.5</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="type">label_item</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkFrame" id="frame4">
-                 <property name="visible">True</property>
-                 <property name="label_xalign">0</property>
-                 <property name="label_yalign">0.5</property>
-                 <property name="shadow_type">GTK_SHADOW_NONE</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox4">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">0</property>
-
-                     <child>
-                       <widget class="GtkLabel" id="label13">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">   </property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkTable" id="table2">
-                         <property name="visible">True</property>
-                         <property name="n_rows">2</property>
-                         <property name="n_columns">2</property>
-                         <property name="homogeneous">False</property>
-                         <property name="row_spacing">12</property>
-                         <property name="column_spacing">12</property>
-
-                         <child>
-                           <widget class="GtkLabel" id="label18">
-                             <property name="width_request">90</property>
-                             <property name="visible">True</property>
-                             <property name="label" translatable="yes">Width:</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0</property>
-                             <property name="yalign">0.5</property>
-                             <property name="xpad">0</property>
-                             <property name="ypad">0</property>
-                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="left_attach">0</property>
-                             <property name="right_attach">1</property>
-                             <property name="top_attach">0</property>
-                             <property name="bottom_attach">1</property>
-                             <property name="x_options">fill</property>
-                             <property name="y_options"></property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkLabel" id="label19">
-                             <property name="visible">True</property>
-                             <property name="label" translatable="yes">Color:</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0</property>
-                             <property name="yalign">0.5</property>
-                             <property name="xpad">0</property>
-                             <property name="ypad">0</property>
-                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="left_attach">0</property>
-                             <property name="right_attach">1</property>
-                             <property name="top_attach">1</property>
-                             <property name="bottom_attach">2</property>
-                             <property name="x_options">fill</property>
-                             <property name="y_options"></property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox9">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">12</property>
-
-                             <child>
-                               <widget class="GtkSpinButton" id="line_width_spin">
-                                 <property name="visible">True</property>
-                                 <property name="can_focus">True</property>
-                                 <property name="climb_rate">0.00999999977648</property>
-                                 <property name="digits">2</property>
-                                 <property name="numeric">True</property>
-                                 <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                                 <property name="snap_to_ticks">False</property>
-                                 <property name="wrap">False</property>
-                                 <property name="adjustment">1 0.25 4 0.25 1 0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkLabel" id="label21">
-                                 <property name="visible">True</property>
-                                 <property name="label" translatable="yes">points</property>
-                                 <property name="use_underline">False</property>
-                                 <property name="use_markup">False</property>
-                                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                                 <property name="wrap">False</property>
-                                 <property name="selectable">False</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                                 <property name="width_chars">-1</property>
-                                 <property name="single_line_mode">False</property>
-                                 <property name="angle">0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="left_attach">1</property>
-                             <property name="right_attach">2</property>
-                             <property name="top_attach">0</property>
-                             <property name="bottom_attach">1</property>
-                             <property name="y_options">fill</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox10">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">12</property>
-
-                             <child>
-                               <widget class="Custom" id="line_color_combo">
-                                 <property name="visible">True</property>
-                                 <property name="creation_function">gl_object_editor_construct_color_combo</property>
-                                 <property name="int1">1</property>
-                                 <property name="int2">0</property>
-                                 <property name="last_modification_time">Sun, 23 Nov 2003 15:42:41 GMT</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="left_attach">1</property>
-                             <property name="right_attach">2</property>
-                             <property name="top_attach">1</property>
-                             <property name="bottom_attach">2</property>
-                             <property name="x_options">fill</property>
-                             <property name="y_options">fill</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label10">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;Line&lt;/span&gt;</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">True</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0.5</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="type">label_item</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkFrame" id="frame5">
-                 <property name="visible">True</property>
-                 <property name="label_xalign">0</property>
-                 <property name="label_yalign">0.5</property>
-                 <property name="shadow_type">GTK_SHADOW_NONE</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox5">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">0</property>
-
-                     <child>
-                       <widget class="GtkLabel" id="label14">
-                         <property name="visible">True</property>
-                         <property name="label" translatable="yes">   </property>
-                         <property name="use_underline">False</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkTable" id="table4">
-                         <property name="visible">True</property>
-                         <property name="n_rows">1</property>
-                         <property name="n_columns">2</property>
-                         <property name="homogeneous">False</property>
-                         <property name="row_spacing">12</property>
-                         <property name="column_spacing">12</property>
-
-                         <child>
-                           <widget class="GtkLabel" id="label20">
-                             <property name="width_request">90</property>
-                             <property name="visible">True</property>
-                             <property name="label" translatable="yes">Color:</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0</property>
-                             <property name="yalign">0.5</property>
-                             <property name="xpad">0</property>
-                             <property name="ypad">0</property>
-                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="left_attach">0</property>
-                             <property name="right_attach">1</property>
-                             <property name="top_attach">0</property>
-                             <property name="bottom_attach">1</property>
-                             <property name="x_options">fill</property>
-                             <property name="y_options"></property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox11">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">12</property>
-
-                             <child>
-                               <widget class="Custom" id="fill_color_combo">
-                                 <property name="visible">True</property>
-                                 <property name="creation_function">gl_object_editor_construct_color_combo</property>
-                                 <property name="int1">0</property>
-                                 <property name="int2">0</property>
-                                 <property name="last_modification_time">Sun, 23 Nov 2003 15:43:12 GMT</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-                           </widget>
-                           <packing>
-                             <property name="left_attach">1</property>
-                             <property name="right_attach">2</property>
-                             <property name="top_attach">0</property>
-                             <property name="bottom_attach">1</property>
-                             <property name="y_options">fill</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label11">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;Fill&lt;/span&gt;</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">True</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0.5</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="type">label_item</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">False</property>
-               </packing>
-             </child>
-           </widget>
-           <packing>
-             <property name="tab_expand">False</property>
-             <property name="tab_fill">True</property>
-           </packing>
-         </child>
-
-         <child>
-           <widget class="GtkLabel" id="label2">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">Object defaults</property>
-             <property name="use_underline">False</property>
-             <property name="use_markup">False</property>
-             <property name="justify">GTK_JUSTIFY_LEFT</property>
-             <property name="wrap">False</property>
-             <property name="selectable">False</property>
-             <property name="xalign">0.5</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">0</property>
-             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-             <property name="width_chars">-1</property>
-             <property name="single_line_mode">False</property>
-             <property name="angle">0</property>
-           </widget>
-           <packing>
-             <property name="type">tab</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">True</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-</glade-interface>
diff --git a/data/glade/print-custom-widget.glade b/data/glade/print-custom-widget.glade
deleted file mode 100644 (file)
index f5063ab..0000000
+++ /dev/null
@@ -1,287 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-
-<widget class="GtkWindow" id="window1">
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">window1</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-
-  <child>
-    <widget class="GtkVBox" id="print_custom_widget_vbox">
-      <property name="border_width">12</property>
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">12</property>
-
-      <child>
-       <widget class="GtkVBox" id="vbox3">
-         <property name="visible">True</property>
-         <property name="homogeneous">False</property>
-         <property name="spacing">0</property>
-
-         <child>
-           <widget class="GtkFrame" id="simple_frame">
-             <property name="visible">True</property>
-             <property name="label_xalign">0</property>
-             <property name="label_yalign">0.5</property>
-             <property name="shadow_type">GTK_SHADOW_NONE</property>
-
-             <child>
-               <widget class="GtkAlignment" id="alignment1">
-                 <property name="visible">True</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xscale">1</property>
-                 <property name="yscale">1</property>
-                 <property name="top_padding">0</property>
-                 <property name="bottom_padding">0</property>
-                 <property name="left_padding">12</property>
-                 <property name="right_padding">0</property>
-
-                 <child>
-                   <widget class="GtkVBox" id="copies_vbox">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">0</property>
-
-                     <child>
-                       <placeholder/>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-             </child>
-
-             <child>
-               <widget class="GtkLabel" id="label2">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">&lt;b&gt;Print control (Simple)&lt;/b&gt;</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">True</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="type">label_item</property>
-               </packing>
-             </child>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">True</property>
-             <property name="fill">True</property>
-           </packing>
-         </child>
-
-         <child>
-           <widget class="GtkFrame" id="merge_frame">
-             <property name="visible">True</property>
-             <property name="label_xalign">0</property>
-             <property name="label_yalign">0.5</property>
-             <property name="shadow_type">GTK_SHADOW_NONE</property>
-
-             <child>
-               <widget class="GtkAlignment" id="alignment2">
-                 <property name="visible">True</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xscale">1</property>
-                 <property name="yscale">1</property>
-                 <property name="top_padding">0</property>
-                 <property name="bottom_padding">0</property>
-                 <property name="left_padding">12</property>
-                 <property name="right_padding">0</property>
-
-                 <child>
-                   <widget class="GtkVBox" id="prmerge_vbox">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">0</property>
-
-                     <child>
-                       <placeholder/>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-             </child>
-
-             <child>
-               <widget class="GtkLabel" id="label3">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">&lt;b&gt;Print control (Merge)&lt;/b&gt;</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">True</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="type">label_item</property>
-               </packing>
-             </child>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">True</property>
-             <property name="fill">True</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">False</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkFrame" id="frame3">
-         <property name="visible">True</property>
-         <property name="label_xalign">0</property>
-         <property name="label_yalign">0.5</property>
-         <property name="shadow_type">GTK_SHADOW_NONE</property>
-
-         <child>
-           <widget class="GtkAlignment" id="alignment3">
-             <property name="visible">True</property>
-             <property name="xalign">0.5</property>
-             <property name="yalign">0.5</property>
-             <property name="xscale">1</property>
-             <property name="yscale">1</property>
-             <property name="top_padding">0</property>
-             <property name="bottom_padding">0</property>
-             <property name="left_padding">12</property>
-             <property name="right_padding">0</property>
-
-             <child>
-               <widget class="GtkVBox" id="vbox2">
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">0</property>
-
-                 <child>
-                   <widget class="GtkCheckButton" id="outline_check">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="label" translatable="yes">print outlines (to test printer alignment)</property>
-                     <property name="use_underline">True</property>
-                     <property name="relief">GTK_RELIEF_NORMAL</property>
-                     <property name="focus_on_click">True</property>
-                     <property name="active">False</property>
-                     <property name="inconsistent">False</property>
-                     <property name="draw_indicator">True</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkCheckButton" id="reverse_check">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="label" translatable="yes">print in reverse (i.e. a mirror image)</property>
-                     <property name="use_underline">True</property>
-                     <property name="relief">GTK_RELIEF_NORMAL</property>
-                     <property name="focus_on_click">True</property>
-                     <property name="active">False</property>
-                     <property name="inconsistent">False</property>
-                     <property name="draw_indicator">True</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkCheckButton" id="crop_marks_check">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="label" translatable="yes">print crop marks</property>
-                     <property name="use_underline">True</property>
-                     <property name="relief">GTK_RELIEF_NORMAL</property>
-                     <property name="focus_on_click">True</property>
-                     <property name="active">False</property>
-                     <property name="inconsistent">False</property>
-                     <property name="draw_indicator">True</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-               </widget>
-             </child>
-           </widget>
-         </child>
-
-         <child>
-           <widget class="GtkLabel" id="label4">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">&lt;b&gt;Options&lt;/b&gt;</property>
-             <property name="use_underline">False</property>
-             <property name="use_markup">True</property>
-             <property name="justify">GTK_JUSTIFY_LEFT</property>
-             <property name="wrap">False</property>
-             <property name="selectable">False</property>
-             <property name="xalign">0.5</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">0</property>
-             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-             <property name="width_chars">-1</property>
-             <property name="single_line_mode">False</property>
-             <property name="angle">0</property>
-           </widget>
-           <packing>
-             <property name="type">label_item</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">True</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-</glade-interface>
diff --git a/data/glade/property-bar.glade b/data/glade/property-bar.glade
deleted file mode 100644 (file)
index f86d773..0000000
+++ /dev/null
@@ -1,375 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-
-<widget class="GtkWindow" id="window1">
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">window1</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-
-  <child>
-    <widget class="GtkToolbar" id="property_toolbar">
-      <property name="visible">True</property>
-      <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
-      <property name="toolbar_style">GTK_TOOLBAR_ICONS</property>
-      <property name="tooltips">True</property>
-      <property name="show_arrow">False</property>
-
-      <child>
-       <widget class="GtkToolItem" id="toolitem1">
-         <property name="visible">True</property>
-         <property name="visible_horizontal">True</property>
-         <property name="visible_vertical">True</property>
-         <property name="is_important">False</property>
-
-         <child>
-           <widget class="GtkEventBox" id="eventbox1">
-             <property name="visible">True</property>
-             <property name="tooltip" translatable="yes">Font family</property>
-             <property name="visible_window">True</property>
-             <property name="above_child">False</property>
-
-             <child>
-               <widget class="GtkComboBox" id="font_family_combo">
-                 <property name="visible">True</property>
-                 <property name="add_tearoffs">False</property>
-                 <property name="focus_on_click">False</property>
-               </widget>
-             </child>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="expand">False</property>
-         <property name="homogeneous">False</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkToolItem" id="toolitem2">
-         <property name="visible">True</property>
-         <property name="visible_horizontal">True</property>
-         <property name="visible_vertical">True</property>
-         <property name="is_important">False</property>
-
-         <child>
-           <widget class="GtkAlignment" id="alignment1">
-             <property name="visible">True</property>
-             <property name="xalign">0.5</property>
-             <property name="yalign">0.5</property>
-             <property name="xscale">1</property>
-             <property name="yscale">1</property>
-             <property name="top_padding">0</property>
-             <property name="bottom_padding">0</property>
-             <property name="left_padding">6</property>
-             <property name="right_padding">0</property>
-
-             <child>
-               <widget class="GtkSpinButton" id="font_size_spin">
-                 <property name="visible">True</property>
-                 <property name="tooltip" translatable="yes">Font size</property>
-                 <property name="can_focus">True</property>
-                 <property name="climb_rate">1</property>
-                 <property name="digits">0</property>
-                 <property name="numeric">False</property>
-                 <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                 <property name="snap_to_ticks">False</property>
-                 <property name="wrap">False</property>
-                 <property name="adjustment">1 1 250 1 10 0</property>
-               </widget>
-             </child>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="expand">False</property>
-         <property name="homogeneous">False</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkSeparatorToolItem" id="separatortoolitem1">
-         <property name="visible">True</property>
-         <property name="draw">True</property>
-         <property name="visible_horizontal">True</property>
-         <property name="visible_vertical">True</property>
-       </widget>
-       <packing>
-         <property name="expand">False</property>
-         <property name="homogeneous">False</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkToggleToolButton" id="font_bold_toggle">
-         <property name="visible">True</property>
-         <property name="tooltip" translatable="yes">Bold</property>
-         <property name="label" translatable="yes"></property>
-         <property name="use_underline">True</property>
-         <property name="stock_id">gtk-bold</property>
-         <property name="visible_horizontal">True</property>
-         <property name="visible_vertical">True</property>
-         <property name="is_important">False</property>
-         <property name="active">False</property>
-       </widget>
-       <packing>
-         <property name="expand">False</property>
-         <property name="homogeneous">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkToggleToolButton" id="font_italic_toggle">
-         <property name="visible">True</property>
-         <property name="tooltip" translatable="yes">Italic</property>
-         <property name="label" translatable="yes"></property>
-         <property name="use_underline">True</property>
-         <property name="stock_id">gtk-italic</property>
-         <property name="visible_horizontal">True</property>
-         <property name="visible_vertical">True</property>
-         <property name="is_important">False</property>
-         <property name="active">False</property>
-       </widget>
-       <packing>
-         <property name="expand">False</property>
-         <property name="homogeneous">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkSeparatorToolItem" id="separatortoolitem2">
-         <property name="visible">True</property>
-         <property name="draw">True</property>
-         <property name="visible_horizontal">True</property>
-         <property name="visible_vertical">True</property>
-       </widget>
-       <packing>
-         <property name="expand">False</property>
-         <property name="homogeneous">False</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkRadioToolButton" id="text_align_left_radio">
-         <property name="visible">True</property>
-         <property name="tooltip" translatable="yes">Left align</property>
-         <property name="label" translatable="yes"></property>
-         <property name="use_underline">True</property>
-         <property name="stock_id">gtk-justify-left</property>
-         <property name="visible_horizontal">True</property>
-         <property name="visible_vertical">True</property>
-         <property name="is_important">False</property>
-         <property name="active">False</property>
-       </widget>
-       <packing>
-         <property name="expand">False</property>
-         <property name="homogeneous">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkRadioToolButton" id="text_align_center_radio">
-         <property name="visible">True</property>
-         <property name="tooltip" translatable="yes">Center align</property>
-         <property name="label" translatable="yes"></property>
-         <property name="use_underline">True</property>
-         <property name="stock_id">gtk-justify-center</property>
-         <property name="visible_horizontal">True</property>
-         <property name="visible_vertical">True</property>
-         <property name="is_important">False</property>
-         <property name="active">False</property>
-         <property name="group">text_align_left_radio</property>
-       </widget>
-       <packing>
-         <property name="expand">False</property>
-         <property name="homogeneous">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkRadioToolButton" id="text_align_right_radio">
-         <property name="visible">True</property>
-         <property name="tooltip" translatable="yes">Right align</property>
-         <property name="label" translatable="yes"></property>
-         <property name="use_underline">True</property>
-         <property name="stock_id">gtk-justify-right</property>
-         <property name="visible_horizontal">True</property>
-         <property name="visible_vertical">True</property>
-         <property name="is_important">False</property>
-         <property name="active">False</property>
-         <property name="group">text_align_left_radio</property>
-       </widget>
-       <packing>
-         <property name="expand">False</property>
-         <property name="homogeneous">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkSeparatorToolItem" id="separatortoolitem3">
-         <property name="visible">True</property>
-         <property name="draw">True</property>
-         <property name="visible_horizontal">True</property>
-         <property name="visible_vertical">True</property>
-       </widget>
-       <packing>
-         <property name="expand">False</property>
-         <property name="homogeneous">False</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkToolItem" id="toolitem3">
-         <property name="visible">True</property>
-         <property name="visible_horizontal">True</property>
-         <property name="visible_vertical">True</property>
-         <property name="is_important">False</property>
-
-         <child>
-           <widget class="GtkEventBox" id="eventbox2">
-             <property name="visible">True</property>
-             <property name="tooltip" translatable="yes">Text Color</property>
-             <property name="visible_window">True</property>
-             <property name="above_child">False</property>
-
-             <child>
-               <widget class="Custom" id="text_color_combo">
-                 <property name="visible">True</property>
-                 <property name="tooltip" translatable="yes">Text color</property>
-                 <property name="creation_function">gl_ui_property_bar_construct_color_combo</property>
-                 <property name="int1">0</property>
-                 <property name="int2">0</property>
-                 <property name="last_modification_time">Sun, 01 May 2005 15:21:11 GMT</property>
-               </widget>
-             </child>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="expand">False</property>
-         <property name="homogeneous">False</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkToolItem" id="toolitem4">
-         <property name="visible">True</property>
-         <property name="visible_horizontal">True</property>
-         <property name="visible_vertical">True</property>
-         <property name="is_important">False</property>
-
-         <child>
-           <widget class="GtkEventBox" id="eventbox3">
-             <property name="visible">True</property>
-             <property name="tooltip" translatable="yes">Fill color</property>
-             <property name="visible_window">True</property>
-             <property name="above_child">False</property>
-
-             <child>
-               <widget class="Custom" id="fill_color_combo">
-                 <property name="visible">True</property>
-                 <property name="tooltip" translatable="yes">Fill color</property>
-                 <property name="creation_function">gl_ui_property_bar_construct_color_combo</property>
-                 <property name="int1">1</property>
-                 <property name="int2">0</property>
-                 <property name="last_modification_time">Sun, 01 May 2005 15:21:18 GMT</property>
-               </widget>
-             </child>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="expand">False</property>
-         <property name="homogeneous">False</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkToolItem" id="toolitem5">
-         <property name="visible">True</property>
-         <property name="visible_horizontal">True</property>
-         <property name="visible_vertical">True</property>
-         <property name="is_important">False</property>
-
-         <child>
-           <widget class="GtkEventBox" id="eventbox4">
-             <property name="visible">True</property>
-             <property name="tooltip" translatable="yes">Line color</property>
-             <property name="visible_window">True</property>
-             <property name="above_child">False</property>
-
-             <child>
-               <widget class="Custom" id="line_color_combo">
-                 <property name="visible">True</property>
-                 <property name="tooltip" translatable="yes">Line color</property>
-                 <property name="creation_function">gl_ui_property_bar_construct_color_combo</property>
-                 <property name="int1">2</property>
-                 <property name="int2">0</property>
-                 <property name="last_modification_time">Sun, 01 May 2005 15:21:24 GMT</property>
-               </widget>
-             </child>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="expand">False</property>
-         <property name="homogeneous">False</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkSeparatorToolItem" id="separatortoolitem4">
-         <property name="visible">True</property>
-         <property name="draw">True</property>
-         <property name="visible_horizontal">True</property>
-         <property name="visible_vertical">True</property>
-       </widget>
-       <packing>
-         <property name="expand">False</property>
-         <property name="homogeneous">False</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkToolItem" id="toolitem6">
-         <property name="visible">True</property>
-         <property name="visible_horizontal">True</property>
-         <property name="visible_vertical">True</property>
-         <property name="is_important">False</property>
-
-         <child>
-           <widget class="GtkSpinButton" id="line_width_spin">
-             <property name="visible">True</property>
-             <property name="tooltip" translatable="yes">Line width</property>
-             <property name="can_focus">True</property>
-             <property name="climb_rate">1</property>
-             <property name="digits">2</property>
-             <property name="numeric">False</property>
-             <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-             <property name="snap_to_ticks">False</property>
-             <property name="wrap">False</property>
-             <property name="adjustment">1 0.25 4 0.25 1 0</property>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="expand">False</property>
-         <property name="homogeneous">False</property>
-       </packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-</glade-interface>
diff --git a/data/glade/template-designer.glade b/data/glade/template-designer.glade
deleted file mode 100644 (file)
index 22a0be7..0000000
+++ /dev/null
@@ -1,3445 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-<requires lib="gnome"/>
-
-<widget class="GtkWindow" id="window">
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">window1</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-
-  <child>
-    <widget class="GtkNotebook" id="notebook">
-      <property name="border_width">6</property>
-      <property name="visible">True</property>
-      <property name="can_focus">True</property>
-      <property name="show_tabs">True</property>
-      <property name="show_border">True</property>
-      <property name="tab_pos">GTK_POS_TOP</property>
-      <property name="scrollable">False</property>
-      <property name="enable_popup">False</property>
-
-      <child>
-       <widget class="GtkLabel" id="start_page">
-         <property name="visible">True</property>
-         <property name="label" translatable="yes">Welcome to the gLabels Template Designer.
-
-This dialog will assist you in the creation of a custom gLabels template.</property>
-         <property name="use_underline">False</property>
-         <property name="use_markup">False</property>
-         <property name="justify">GTK_JUSTIFY_LEFT</property>
-         <property name="wrap">False</property>
-         <property name="selectable">False</property>
-         <property name="xalign">0.5</property>
-         <property name="yalign">0.5</property>
-         <property name="xpad">0</property>
-         <property name="ypad">0</property>
-         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-         <property name="width_chars">-1</property>
-         <property name="single_line_mode">False</property>
-         <property name="angle">0</property>
-       </widget>
-       <packing>
-         <property name="tab_expand">False</property>
-         <property name="tab_fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkLabel" id="label108">
-         <property name="visible">True</property>
-         <property name="label" translatable="yes">start_page</property>
-         <property name="use_underline">False</property>
-         <property name="use_markup">False</property>
-         <property name="justify">GTK_JUSTIFY_LEFT</property>
-         <property name="wrap">False</property>
-         <property name="selectable">False</property>
-         <property name="xalign">0.5</property>
-         <property name="yalign">0.5</property>
-         <property name="xpad">0</property>
-         <property name="ypad">0</property>
-         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-         <property name="width_chars">-1</property>
-         <property name="single_line_mode">False</property>
-         <property name="angle">0</property>
-       </widget>
-       <packing>
-         <property name="type">tab</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkVBox" id="name_page">
-         <property name="border_width">18</property>
-         <property name="visible">True</property>
-         <property name="homogeneous">False</property>
-         <property name="spacing">24</property>
-
-         <child>
-           <widget class="GtkLabel" id="label1">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">Please enter the following identifying information about the template stationery.</property>
-             <property name="use_underline">False</property>
-             <property name="use_markup">False</property>
-             <property name="justify">GTK_JUSTIFY_LEFT</property>
-             <property name="wrap">False</property>
-             <property name="selectable">False</property>
-             <property name="xalign">0</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">0</property>
-             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-             <property name="width_chars">-1</property>
-             <property name="single_line_mode">False</property>
-             <property name="angle">0</property>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">False</property>
-             <property name="fill">False</property>
-           </packing>
-         </child>
-
-         <child>
-           <widget class="GtkTable" id="table2">
-             <property name="visible">True</property>
-             <property name="n_rows">6</property>
-             <property name="n_columns">2</property>
-             <property name="homogeneous">False</property>
-             <property name="row_spacing">12</property>
-             <property name="column_spacing">12</property>
-
-             <child>
-               <widget class="GtkLabel" id="label72">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">Brand/Manufacturer:</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">False</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="left_attach">0</property>
-                 <property name="right_attach">1</property>
-                 <property name="top_attach">0</property>
-                 <property name="bottom_attach">1</property>
-                 <property name="x_options">fill</property>
-                 <property name="y_options"></property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkLabel" id="label73">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">Part #:</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">False</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="left_attach">0</property>
-                 <property name="right_attach">1</property>
-                 <property name="top_attach">1</property>
-                 <property name="bottom_attach">2</property>
-                 <property name="x_options">fill</property>
-                 <property name="y_options"></property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkHBox" id="hbox34">
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">12</property>
-
-                 <child>
-                   <widget class="GtkEntry" id="part_num_entry">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="editable">True</property>
-                     <property name="visibility">True</property>
-                     <property name="max_length">0</property>
-                     <property name="text" translatable="yes"></property>
-                     <property name="has_frame">True</property>
-                     <property name="invisible_char">*</property>
-                     <property name="activates_default">False</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label76">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">(e.g., 8163A)</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="left_attach">1</property>
-                 <property name="right_attach">2</property>
-                 <property name="top_attach">1</property>
-                 <property name="bottom_attach">2</property>
-                 <property name="x_options">fill</property>
-                 <property name="y_options">fill</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkHBox" id="hbox33">
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">12</property>
-
-                 <child>
-                   <widget class="GtkEntry" id="brand_entry">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="editable">True</property>
-                     <property name="visibility">True</property>
-                     <property name="max_length">0</property>
-                     <property name="text" translatable="yes"></property>
-                     <property name="has_frame">True</property>
-                     <property name="invisible_char">*</property>
-                     <property name="activates_default">False</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label75">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">(e.g., Avery, Acme, ...)</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="left_attach">1</property>
-                 <property name="right_attach">2</property>
-                 <property name="top_attach">0</property>
-                 <property name="bottom_attach">1</property>
-                 <property name="x_options">fill</property>
-                 <property name="y_options">fill</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkLabel" id="label74">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">Description:</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">False</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0</property>
-                 <property name="yalign">0</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="left_attach">0</property>
-                 <property name="right_attach">1</property>
-                 <property name="top_attach">4</property>
-                 <property name="bottom_attach">5</property>
-                 <property name="x_options">fill</property>
-                 <property name="y_options"></property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkEntry" id="description_entry">
-                 <property name="visible">True</property>
-                 <property name="can_focus">True</property>
-                 <property name="editable">True</property>
-                 <property name="visibility">True</property>
-                 <property name="max_length">0</property>
-                 <property name="text" translatable="yes"></property>
-                 <property name="has_frame">True</property>
-                 <property name="invisible_char">*</property>
-                 <property name="activates_default">False</property>
-               </widget>
-               <packing>
-                 <property name="left_attach">1</property>
-                 <property name="right_attach">2</property>
-                 <property name="top_attach">4</property>
-                 <property name="bottom_attach">5</property>
-                 <property name="y_options"></property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkLabel" id="label77">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">(e.g., &quot;Mailing Labels,&quot; &quot;Business Cards,&quot; ...)</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">False</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0</property>
-                 <property name="yalign">0</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="left_attach">1</property>
-                 <property name="right_attach">2</property>
-                 <property name="top_attach">5</property>
-                 <property name="bottom_attach">6</property>
-                 <property name="x_options">fill</property>
-                 <property name="y_options"></property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkHBox" id="hbox39">
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">6</property>
-
-                 <child>
-                   <widget class="GtkImage" id="name_warning_image">
-                     <property name="visible">True</property>
-                     <property name="xalign">0.5</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="name_warning_label">
-                     <property name="visible">True</property>
-                     <property name="label"></property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">True</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">True</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="left_attach">1</property>
-                 <property name="right_attach">2</property>
-                 <property name="top_attach">2</property>
-                 <property name="bottom_attach">3</property>
-                 <property name="x_options">fill</property>
-                 <property name="y_options"></property>
-               </packing>
-             </child>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">True</property>
-             <property name="fill">True</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="tab_expand">False</property>
-         <property name="tab_fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkLabel" id="label109">
-         <property name="visible">True</property>
-         <property name="label" translatable="yes">name_page</property>
-         <property name="use_underline">False</property>
-         <property name="use_markup">False</property>
-         <property name="justify">GTK_JUSTIFY_LEFT</property>
-         <property name="wrap">False</property>
-         <property name="selectable">False</property>
-         <property name="xalign">0.5</property>
-         <property name="yalign">0.5</property>
-         <property name="xpad">0</property>
-         <property name="ypad">0</property>
-         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-         <property name="width_chars">-1</property>
-         <property name="single_line_mode">False</property>
-         <property name="angle">0</property>
-       </widget>
-       <packing>
-         <property name="type">tab</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkVBox" id="pg_size_page">
-         <property name="border_width">18</property>
-         <property name="visible">True</property>
-         <property name="homogeneous">False</property>
-         <property name="spacing">24</property>
-
-         <child>
-           <widget class="GtkLabel" id="label43">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">Please select the page size of the template stationery.</property>
-             <property name="use_underline">False</property>
-             <property name="use_markup">False</property>
-             <property name="justify">GTK_JUSTIFY_LEFT</property>
-             <property name="wrap">False</property>
-             <property name="selectable">False</property>
-             <property name="xalign">0</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">0</property>
-             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-             <property name="width_chars">-1</property>
-             <property name="single_line_mode">False</property>
-             <property name="angle">0</property>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">False</property>
-             <property name="fill">False</property>
-           </packing>
-         </child>
-
-         <child>
-           <widget class="GtkTable" id="table3">
-             <property name="visible">True</property>
-             <property name="n_rows">3</property>
-             <property name="n_columns">2</property>
-             <property name="homogeneous">False</property>
-             <property name="row_spacing">12</property>
-             <property name="column_spacing">12</property>
-
-             <child>
-               <widget class="GtkLabel" id="label78">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">Page size:</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">False</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="left_attach">0</property>
-                 <property name="right_attach">1</property>
-                 <property name="top_attach">0</property>
-                 <property name="bottom_attach">1</property>
-                 <property name="x_options">fill</property>
-                 <property name="y_options"></property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkLabel" id="label79">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">Width:</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">False</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="left_attach">0</property>
-                 <property name="right_attach">1</property>
-                 <property name="top_attach">1</property>
-                 <property name="bottom_attach">2</property>
-                 <property name="x_options">fill</property>
-                 <property name="y_options"></property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkLabel" id="label80">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">Height:</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">False</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="left_attach">0</property>
-                 <property name="right_attach">1</property>
-                 <property name="top_attach">2</property>
-                 <property name="bottom_attach">3</property>
-                 <property name="x_options">fill</property>
-                 <property name="y_options"></property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkHBox" id="hbox35">
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">0</property>
-
-                 <child>
-                   <widget class="GtkComboBox" id="pg_size_combo">
-                     <property name="visible">True</property>
-                     <property name="add_tearoffs">False</property>
-                     <property name="focus_on_click">True</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <placeholder/>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="left_attach">1</property>
-                 <property name="right_attach">2</property>
-                 <property name="top_attach">0</property>
-                 <property name="bottom_attach">1</property>
-                 <property name="y_options">fill</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkHBox" id="hbox36">
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">12</property>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="pg_w_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">1 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="pg_w_units_label">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">inches</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="left_attach">1</property>
-                 <property name="right_attach">2</property>
-                 <property name="top_attach">1</property>
-                 <property name="bottom_attach">2</property>
-                 <property name="x_options">fill</property>
-                 <property name="y_options">fill</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkHBox" id="hbox37">
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">12</property>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="pg_h_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">1 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="pg_h_units_label">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">inches</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="left_attach">1</property>
-                 <property name="right_attach">2</property>
-                 <property name="top_attach">2</property>
-                 <property name="bottom_attach">3</property>
-                 <property name="x_options">fill</property>
-                 <property name="y_options">fill</property>
-               </packing>
-             </child>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">False</property>
-             <property name="fill">False</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="tab_expand">False</property>
-         <property name="tab_fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkLabel" id="label110">
-         <property name="visible">True</property>
-         <property name="label" translatable="yes">pg_size_page</property>
-         <property name="use_underline">False</property>
-         <property name="use_markup">False</property>
-         <property name="justify">GTK_JUSTIFY_LEFT</property>
-         <property name="wrap">False</property>
-         <property name="selectable">False</property>
-         <property name="xalign">0.5</property>
-         <property name="yalign">0.5</property>
-         <property name="xpad">0</property>
-         <property name="ypad">0</property>
-         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-         <property name="width_chars">-1</property>
-         <property name="single_line_mode">False</property>
-         <property name="angle">0</property>
-       </widget>
-       <packing>
-         <property name="type">tab</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkVBox" id="shape_page">
-         <property name="border_width">18</property>
-         <property name="visible">True</property>
-         <property name="homogeneous">False</property>
-         <property name="spacing">24</property>
-
-         <child>
-           <widget class="GtkLabel" id="label13">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">Please select the basic shape of the labels or cards.</property>
-             <property name="use_underline">False</property>
-             <property name="use_markup">False</property>
-             <property name="justify">GTK_JUSTIFY_LEFT</property>
-             <property name="wrap">False</property>
-             <property name="selectable">False</property>
-             <property name="xalign">0</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">0</property>
-             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-             <property name="width_chars">-1</property>
-             <property name="single_line_mode">False</property>
-             <property name="angle">0</property>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">False</property>
-             <property name="fill">False</property>
-           </packing>
-         </child>
-
-         <child>
-           <widget class="GtkVBox" id="vbox7">
-             <property name="visible">True</property>
-             <property name="homogeneous">False</property>
-             <property name="spacing">6</property>
-
-             <child>
-               <widget class="GtkRadioButton" id="shape_rect_radio">
-                 <property name="visible">True</property>
-                 <property name="can_focus">True</property>
-                 <property name="label" translatable="yes">Rectangular or square (can have rounded corners)</property>
-                 <property name="use_underline">True</property>
-                 <property name="relief">GTK_RELIEF_NORMAL</property>
-                 <property name="focus_on_click">True</property>
-                 <property name="active">False</property>
-                 <property name="inconsistent">False</property>
-                 <property name="draw_indicator">True</property>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkRadioButton" id="shape_round_radio">
-                 <property name="visible">True</property>
-                 <property name="can_focus">True</property>
-                 <property name="label" translatable="yes">Round</property>
-                 <property name="use_underline">True</property>
-                 <property name="relief">GTK_RELIEF_NORMAL</property>
-                 <property name="focus_on_click">True</property>
-                 <property name="active">False</property>
-                 <property name="inconsistent">False</property>
-                 <property name="draw_indicator">True</property>
-                 <property name="group">shape_rect_radio</property>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkRadioButton" id="shape_cd_radio">
-                 <property name="visible">True</property>
-                 <property name="can_focus">True</property>
-                 <property name="label" translatable="yes">CD/DVD (including credit card CDs)</property>
-                 <property name="use_underline">True</property>
-                 <property name="relief">GTK_RELIEF_NORMAL</property>
-                 <property name="focus_on_click">True</property>
-                 <property name="active">False</property>
-                 <property name="inconsistent">False</property>
-                 <property name="draw_indicator">True</property>
-                 <property name="group">shape_rect_radio</property>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">False</property>
-               </packing>
-             </child>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">True</property>
-             <property name="fill">True</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="tab_expand">False</property>
-         <property name="tab_fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkLabel" id="label111">
-         <property name="visible">True</property>
-         <property name="label" translatable="yes">shape_page</property>
-         <property name="use_underline">False</property>
-         <property name="use_markup">False</property>
-         <property name="justify">GTK_JUSTIFY_LEFT</property>
-         <property name="wrap">False</property>
-         <property name="selectable">False</property>
-         <property name="xalign">0.5</property>
-         <property name="yalign">0.5</property>
-         <property name="xpad">0</property>
-         <property name="ypad">0</property>
-         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-         <property name="width_chars">-1</property>
-         <property name="single_line_mode">False</property>
-         <property name="angle">0</property>
-       </widget>
-       <packing>
-         <property name="type">tab</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkVBox" id="rect_size_page">
-         <property name="border_width">18</property>
-         <property name="visible">True</property>
-         <property name="homogeneous">False</property>
-         <property name="spacing">24</property>
-
-         <child>
-           <widget class="GtkLabel" id="label14">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">Please enter the following size parameters of a single label or card in your template.</property>
-             <property name="use_underline">False</property>
-             <property name="use_markup">False</property>
-             <property name="justify">GTK_JUSTIFY_LEFT</property>
-             <property name="wrap">False</property>
-             <property name="selectable">False</property>
-             <property name="xalign">0</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">0</property>
-             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-             <property name="width_chars">-1</property>
-             <property name="single_line_mode">False</property>
-             <property name="angle">0</property>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">False</property>
-             <property name="fill">False</property>
-           </packing>
-         </child>
-
-         <child>
-           <widget class="GtkHBox" id="hbox7">
-             <property name="visible">True</property>
-             <property name="homogeneous">False</property>
-             <property name="spacing">12</property>
-
-             <child>
-               <widget class="GtkTable" id="table4">
-                 <property name="visible">True</property>
-                 <property name="n_rows">6</property>
-                 <property name="n_columns">3</property>
-                 <property name="homogeneous">False</property>
-                 <property name="row_spacing">12</property>
-                 <property name="column_spacing">12</property>
-
-                 <child>
-                   <widget class="GtkLabel" id="label83">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">1. Width:</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">0</property>
-                     <property name="right_attach">1</property>
-                     <property name="top_attach">0</property>
-                     <property name="bottom_attach">1</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label84">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">2. Height:</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">0</property>
-                     <property name="right_attach">1</property>
-                     <property name="top_attach">1</property>
-                     <property name="bottom_attach">2</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label85">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">3. Round (radius of corner):</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">0</property>
-                     <property name="right_attach">1</property>
-                     <property name="top_attach">2</property>
-                     <property name="bottom_attach">3</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label86">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">4. Horiz. waste (overprint allowed):</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">0</property>
-                     <property name="right_attach">1</property>
-                     <property name="top_attach">3</property>
-                     <property name="bottom_attach">4</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="rect_w_units_label">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">inches</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">2</property>
-                     <property name="right_attach">3</property>
-                     <property name="top_attach">0</property>
-                     <property name="bottom_attach">1</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="rect_h_units_label">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">inches</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">2</property>
-                     <property name="right_attach">3</property>
-                     <property name="top_attach">1</property>
-                     <property name="bottom_attach">2</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="rect_r_units_label">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">inches</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">2</property>
-                     <property name="right_attach">3</property>
-                     <property name="top_attach">2</property>
-                     <property name="bottom_attach">3</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="rect_x_waste_units_label">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">inches</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">2</property>
-                     <property name="right_attach">3</property>
-                     <property name="top_attach">3</property>
-                     <property name="bottom_attach">4</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="rect_w_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">0 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">1</property>
-                     <property name="right_attach">2</property>
-                     <property name="top_attach">0</property>
-                     <property name="bottom_attach">1</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="rect_h_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">0 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">1</property>
-                     <property name="right_attach">2</property>
-                     <property name="top_attach">1</property>
-                     <property name="bottom_attach">2</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="rect_r_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">0 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">1</property>
-                     <property name="right_attach">2</property>
-                     <property name="top_attach">2</property>
-                     <property name="bottom_attach">3</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="rect_x_waste_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">0 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">1</property>
-                     <property name="right_attach">2</property>
-                     <property name="top_attach">3</property>
-                     <property name="bottom_attach">4</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label101">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">6. Margin</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">0</property>
-                     <property name="right_attach">1</property>
-                     <property name="top_attach">5</property>
-                     <property name="bottom_attach">6</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="rect_margin_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">0 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">1</property>
-                     <property name="right_attach">2</property>
-                     <property name="top_attach">5</property>
-                     <property name="bottom_attach">6</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="rect_margin_units_label">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">inches</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">2</property>
-                     <property name="right_attach">3</property>
-                     <property name="top_attach">5</property>
-                     <property name="bottom_attach">6</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="rect_y_waste_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">0 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">1</property>
-                     <property name="right_attach">2</property>
-                     <property name="top_attach">4</property>
-                     <property name="bottom_attach">5</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="rect_y_waste_units_label">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">inches</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">2</property>
-                     <property name="right_attach">3</property>
-                     <property name="top_attach">4</property>
-                     <property name="bottom_attach">5</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label107">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">5. Vert. waste (overprint allowed):</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">0</property>
-                     <property name="right_attach">1</property>
-                     <property name="top_attach">4</property>
-                     <property name="bottom_attach">5</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkImage" id="rect_image">
-                 <property name="visible">True</property>
-                 <property name="xalign">1</property>
-                 <property name="yalign">0</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">True</property>
-                 <property name="fill">True</property>
-               </packing>
-             </child>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">False</property>
-             <property name="fill">False</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="tab_expand">False</property>
-         <property name="tab_fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkLabel" id="label112">
-         <property name="visible">True</property>
-         <property name="label" translatable="yes">rect_size_page</property>
-         <property name="use_underline">False</property>
-         <property name="use_markup">False</property>
-         <property name="justify">GTK_JUSTIFY_LEFT</property>
-         <property name="wrap">False</property>
-         <property name="selectable">False</property>
-         <property name="xalign">0.5</property>
-         <property name="yalign">0.5</property>
-         <property name="xpad">0</property>
-         <property name="ypad">0</property>
-         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-         <property name="width_chars">-1</property>
-         <property name="single_line_mode">False</property>
-         <property name="angle">0</property>
-       </widget>
-       <packing>
-         <property name="type">tab</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkVBox" id="round_size_page">
-         <property name="border_width">18</property>
-         <property name="visible">True</property>
-         <property name="homogeneous">False</property>
-         <property name="spacing">24</property>
-
-         <child>
-           <widget class="GtkLabel" id="label23">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">Please enter the following size parameters of a single label in your template.</property>
-             <property name="use_underline">False</property>
-             <property name="use_markup">False</property>
-             <property name="justify">GTK_JUSTIFY_LEFT</property>
-             <property name="wrap">False</property>
-             <property name="selectable">False</property>
-             <property name="xalign">0</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">0</property>
-             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-             <property name="width_chars">-1</property>
-             <property name="single_line_mode">False</property>
-             <property name="angle">0</property>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">False</property>
-             <property name="fill">False</property>
-           </packing>
-         </child>
-
-         <child>
-           <widget class="GtkHBox" id="hbox12">
-             <property name="visible">True</property>
-             <property name="homogeneous">False</property>
-             <property name="spacing">12</property>
-
-             <child>
-               <widget class="GtkTable" id="table8">
-                 <property name="visible">True</property>
-                 <property name="n_rows">3</property>
-                 <property name="n_columns">3</property>
-                 <property name="homogeneous">False</property>
-                 <property name="row_spacing">12</property>
-                 <property name="column_spacing">12</property>
-
-                 <child>
-                   <widget class="GtkLabel" id="label91">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">1. Radius:</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">0</property>
-                     <property name="right_attach">1</property>
-                     <property name="top_attach">0</property>
-                     <property name="bottom_attach">1</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label92">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">2. Waste (overprint allowed):</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">0</property>
-                     <property name="right_attach">1</property>
-                     <property name="top_attach">1</property>
-                     <property name="bottom_attach">2</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="round_r_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">0 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">1</property>
-                     <property name="right_attach">2</property>
-                     <property name="top_attach">0</property>
-                     <property name="bottom_attach">1</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="round_waste_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">0 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">1</property>
-                     <property name="right_attach">2</property>
-                     <property name="top_attach">1</property>
-                     <property name="bottom_attach">2</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="round_r_units_label">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">inches</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">2</property>
-                     <property name="right_attach">3</property>
-                     <property name="top_attach">0</property>
-                     <property name="bottom_attach">1</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="round_waste_units_label">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">inches</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">2</property>
-                     <property name="right_attach">3</property>
-                     <property name="top_attach">1</property>
-                     <property name="bottom_attach">2</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label103">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">3. Margin</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">0</property>
-                     <property name="right_attach">1</property>
-                     <property name="top_attach">2</property>
-                     <property name="bottom_attach">3</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="round_margin_units_label">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">inches</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">2</property>
-                     <property name="right_attach">3</property>
-                     <property name="top_attach">2</property>
-                     <property name="bottom_attach">3</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="round_margin_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">0 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">1</property>
-                     <property name="right_attach">2</property>
-                     <property name="top_attach">2</property>
-                     <property name="bottom_attach">3</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkImage" id="round_image">
-                 <property name="visible">True</property>
-                 <property name="xalign">1</property>
-                 <property name="yalign">0</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">True</property>
-                 <property name="fill">True</property>
-               </packing>
-             </child>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">False</property>
-             <property name="fill">False</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="tab_expand">False</property>
-         <property name="tab_fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkLabel" id="label113">
-         <property name="visible">True</property>
-         <property name="label" translatable="yes">round_size_page</property>
-         <property name="use_underline">False</property>
-         <property name="use_markup">False</property>
-         <property name="justify">GTK_JUSTIFY_LEFT</property>
-         <property name="wrap">False</property>
-         <property name="selectable">False</property>
-         <property name="xalign">0.5</property>
-         <property name="yalign">0.5</property>
-         <property name="xpad">0</property>
-         <property name="ypad">0</property>
-         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-         <property name="width_chars">-1</property>
-         <property name="single_line_mode">False</property>
-         <property name="angle">0</property>
-       </widget>
-       <packing>
-         <property name="type">tab</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkVBox" id="cd_size_page">
-         <property name="border_width">18</property>
-         <property name="visible">True</property>
-         <property name="homogeneous">False</property>
-         <property name="spacing">24</property>
-
-         <child>
-           <widget class="GtkLabel" id="label32">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">Please enter the following size parameters of a single label in your template.</property>
-             <property name="use_underline">False</property>
-             <property name="use_markup">False</property>
-             <property name="justify">GTK_JUSTIFY_LEFT</property>
-             <property name="wrap">False</property>
-             <property name="selectable">False</property>
-             <property name="xalign">0</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">0</property>
-             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-             <property name="width_chars">-1</property>
-             <property name="single_line_mode">False</property>
-             <property name="angle">0</property>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">False</property>
-             <property name="fill">False</property>
-           </packing>
-         </child>
-
-         <child>
-           <widget class="GtkHBox" id="hbox17">
-             <property name="visible">True</property>
-             <property name="homogeneous">False</property>
-             <property name="spacing">12</property>
-
-             <child>
-               <widget class="GtkTable" id="table7">
-                 <property name="visible">True</property>
-                 <property name="n_rows">6</property>
-                 <property name="n_columns">3</property>
-                 <property name="homogeneous">False</property>
-                 <property name="row_spacing">12</property>
-                 <property name="column_spacing">12</property>
-
-                 <child>
-                   <widget class="GtkLabel" id="label95">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">1. Outer radius:</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">0</property>
-                     <property name="right_attach">1</property>
-                     <property name="top_attach">0</property>
-                     <property name="bottom_attach">1</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label96">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">2. Inner radius:</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">0</property>
-                     <property name="right_attach">1</property>
-                     <property name="top_attach">1</property>
-                     <property name="bottom_attach">2</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label97">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">3. Clipping width:</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">0</property>
-                     <property name="right_attach">1</property>
-                     <property name="top_attach">2</property>
-                     <property name="bottom_attach">3</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label98">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">4. Clipping height:</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">0</property>
-                     <property name="right_attach">1</property>
-                     <property name="top_attach">3</property>
-                     <property name="bottom_attach">4</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label99">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">5. Waste (overprint allowed):</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">0</property>
-                     <property name="right_attach">1</property>
-                     <property name="top_attach">4</property>
-                     <property name="bottom_attach">5</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="cd_radius_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">0 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">1</property>
-                     <property name="right_attach">2</property>
-                     <property name="top_attach">0</property>
-                     <property name="bottom_attach">1</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="cd_hole_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">0 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">1</property>
-                     <property name="right_attach">2</property>
-                     <property name="top_attach">1</property>
-                     <property name="bottom_attach">2</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="cd_w_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">0 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">1</property>
-                     <property name="right_attach">2</property>
-                     <property name="top_attach">2</property>
-                     <property name="bottom_attach">3</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="cd_h_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">0 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">1</property>
-                     <property name="right_attach">2</property>
-                     <property name="top_attach">3</property>
-                     <property name="bottom_attach">4</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="cd_waste_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">0 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">1</property>
-                     <property name="right_attach">2</property>
-                     <property name="top_attach">4</property>
-                     <property name="bottom_attach">5</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="cd_radius_units_label">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">inches</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">2</property>
-                     <property name="right_attach">3</property>
-                     <property name="top_attach">0</property>
-                     <property name="bottom_attach">1</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="cd_hole_units_label">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">inches</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">2</property>
-                     <property name="right_attach">3</property>
-                     <property name="top_attach">1</property>
-                     <property name="bottom_attach">2</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="cd_w_units_label">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">inches</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">2</property>
-                     <property name="right_attach">3</property>
-                     <property name="top_attach">2</property>
-                     <property name="bottom_attach">3</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="cd_h_units_label">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">inches</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">2</property>
-                     <property name="right_attach">3</property>
-                     <property name="top_attach">3</property>
-                     <property name="bottom_attach">4</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="cd_waste_units_label">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">inches</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">2</property>
-                     <property name="right_attach">3</property>
-                     <property name="top_attach">4</property>
-                     <property name="bottom_attach">5</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label105">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">6. Margin</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">0</property>
-                     <property name="right_attach">1</property>
-                     <property name="top_attach">5</property>
-                     <property name="bottom_attach">6</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="cd_margin_units_label">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">inches</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">2</property>
-                     <property name="right_attach">3</property>
-                     <property name="top_attach">5</property>
-                     <property name="bottom_attach">6</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="cd_margin_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">0 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">1</property>
-                     <property name="right_attach">2</property>
-                     <property name="top_attach">5</property>
-                     <property name="bottom_attach">6</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkImage" id="cd_image">
-                 <property name="visible">True</property>
-                 <property name="xalign">1</property>
-                 <property name="yalign">0</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">True</property>
-                 <property name="fill">True</property>
-               </packing>
-             </child>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">False</property>
-             <property name="fill">False</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="tab_expand">False</property>
-         <property name="tab_fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkLabel" id="label114">
-         <property name="visible">True</property>
-         <property name="label" translatable="yes">cd_size_page</property>
-         <property name="use_underline">False</property>
-         <property name="use_markup">False</property>
-         <property name="justify">GTK_JUSTIFY_LEFT</property>
-         <property name="wrap">False</property>
-         <property name="selectable">False</property>
-         <property name="xalign">0.5</property>
-         <property name="yalign">0.5</property>
-         <property name="xpad">0</property>
-         <property name="ypad">0</property>
-         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-         <property name="width_chars">-1</property>
-         <property name="single_line_mode">False</property>
-         <property name="angle">0</property>
-       </widget>
-       <packing>
-         <property name="type">tab</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkVBox" id="nlayouts_page">
-         <property name="border_width">18</property>
-         <property name="visible">True</property>
-         <property name="homogeneous">False</property>
-         <property name="spacing">24</property>
-
-         <child>
-           <widget class="GtkLabel" id="label9">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">How many layouts will your template contain? 
-
-A layout is a set of labels or cards that can be arranged in a simple grid.
-Most templates only need one layout, as in the first example.
-The second example illustrates when two layouts are needed.</property>
-             <property name="use_underline">False</property>
-             <property name="use_markup">False</property>
-             <property name="justify">GTK_JUSTIFY_LEFT</property>
-             <property name="wrap">False</property>
-             <property name="selectable">False</property>
-             <property name="xalign">0</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">0</property>
-             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-             <property name="width_chars">-1</property>
-             <property name="single_line_mode">False</property>
-             <property name="angle">0</property>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">False</property>
-             <property name="fill">False</property>
-           </packing>
-         </child>
-
-         <child>
-           <widget class="GtkHBox" id="hbox5">
-             <property name="visible">True</property>
-             <property name="homogeneous">False</property>
-             <property name="spacing">12</property>
-
-             <child>
-               <widget class="GtkVBox" id="vbox4">
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">0</property>
-
-                 <child>
-                   <widget class="GtkImage" id="nlayouts_image1">
-                     <property name="visible">True</property>
-                     <property name="xalign">0.5</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">True</property>
-                     <property name="fill">True</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label10">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Templates needing only
-one layout.</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_CENTER</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0.5</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">True</property>
-                 <property name="fill">True</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkVBox" id="vbox5">
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">0</property>
-
-                 <child>
-                   <widget class="GtkImage" id="nlayouts_image2">
-                     <property name="visible">True</property>
-                     <property name="xalign">0.5</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">True</property>
-                     <property name="fill">True</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label11">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Templates needing
-two layouts.</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_CENTER</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0.5</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">True</property>
-                 <property name="fill">True</property>
-               </packing>
-             </child>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">False</property>
-             <property name="fill">False</property>
-           </packing>
-         </child>
-
-         <child>
-           <widget class="GtkHBox" id="hbox6">
-             <property name="visible">True</property>
-             <property name="homogeneous">False</property>
-             <property name="spacing">12</property>
-
-             <child>
-               <widget class="GtkLabel" id="label12">
-                 <property name="visible">True</property>
-                 <property name="label" translatable="yes">Number of layouts:</property>
-                 <property name="use_underline">False</property>
-                 <property name="use_markup">False</property>
-                 <property name="justify">GTK_JUSTIFY_LEFT</property>
-                 <property name="wrap">False</property>
-                 <property name="selectable">False</property>
-                 <property name="xalign">0</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                 <property name="width_chars">-1</property>
-                 <property name="single_line_mode">False</property>
-                 <property name="angle">0</property>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkSpinButton" id="nlayouts_spin">
-                 <property name="visible">True</property>
-                 <property name="can_focus">True</property>
-                 <property name="climb_rate">0.10000000149</property>
-                 <property name="digits">0</property>
-                 <property name="numeric">False</property>
-                 <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                 <property name="snap_to_ticks">False</property>
-                 <property name="wrap">False</property>
-                 <property name="adjustment">1 1 2 1 1 0</property>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">False</property>
-               </packing>
-             </child>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">False</property>
-             <property name="fill">False</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="tab_expand">False</property>
-         <property name="tab_fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkLabel" id="label115">
-         <property name="visible">True</property>
-         <property name="label" translatable="yes">nlayouts_page</property>
-         <property name="use_underline">False</property>
-         <property name="use_markup">False</property>
-         <property name="justify">GTK_JUSTIFY_LEFT</property>
-         <property name="wrap">False</property>
-         <property name="selectable">False</property>
-         <property name="xalign">0.5</property>
-         <property name="yalign">0.5</property>
-         <property name="xpad">0</property>
-         <property name="ypad">0</property>
-         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-         <property name="width_chars">-1</property>
-         <property name="single_line_mode">False</property>
-         <property name="angle">0</property>
-       </widget>
-       <packing>
-         <property name="type">tab</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkVBox" id="layout_page">
-         <property name="border_width">18</property>
-         <property name="visible">True</property>
-         <property name="homogeneous">False</property>
-         <property name="spacing">12</property>
-
-         <child>
-           <widget class="GtkLabel" id="label48">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">Please enter the following layout information.</property>
-             <property name="use_underline">False</property>
-             <property name="use_markup">False</property>
-             <property name="justify">GTK_JUSTIFY_LEFT</property>
-             <property name="wrap">False</property>
-             <property name="selectable">False</property>
-             <property name="xalign">0</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">0</property>
-             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-             <property name="width_chars">-1</property>
-             <property name="single_line_mode">False</property>
-             <property name="angle">0</property>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">False</property>
-             <property name="fill">False</property>
-           </packing>
-         </child>
-
-         <child>
-           <widget class="GtkHBox" id="hbox25">
-             <property name="visible">True</property>
-             <property name="homogeneous">False</property>
-             <property name="spacing">18</property>
-
-             <child>
-               <widget class="GtkTable" id="table1">
-                 <property name="visible">True</property>
-                 <property name="n_rows">7</property>
-                 <property name="n_columns">4</property>
-                 <property name="homogeneous">False</property>
-                 <property name="row_spacing">6</property>
-                 <property name="column_spacing">12</property>
-
-                 <child>
-                   <widget class="GtkLabel" id="layout1_head_label">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Layout #1</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">1</property>
-                     <property name="right_attach">2</property>
-                     <property name="top_attach">0</property>
-                     <property name="bottom_attach">1</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="layout2_head_label">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Layout #2</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">2</property>
-                     <property name="right_attach">3</property>
-                     <property name="top_attach">0</property>
-                     <property name="bottom_attach">1</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label62">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Number across (nx):</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">0</property>
-                     <property name="right_attach">1</property>
-                     <property name="top_attach">1</property>
-                     <property name="bottom_attach">2</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label63">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Number down (ny):</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">0</property>
-                     <property name="right_attach">1</property>
-                     <property name="top_attach">2</property>
-                     <property name="bottom_attach">3</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label64">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Distance from left edge (x0):</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">0</property>
-                     <property name="right_attach">1</property>
-                     <property name="top_attach">3</property>
-                     <property name="bottom_attach">4</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label65">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Distance from top edge (y0):</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">0</property>
-                     <property name="right_attach">1</property>
-                     <property name="top_attach">4</property>
-                     <property name="bottom_attach">5</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label66">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Horizontal pitch (dx):</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">0</property>
-                     <property name="right_attach">1</property>
-                     <property name="top_attach">5</property>
-                     <property name="bottom_attach">6</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label67">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Vertical pitch (dy):</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">0</property>
-                     <property name="right_attach">1</property>
-                     <property name="top_attach">6</property>
-                     <property name="bottom_attach">7</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="layout_x0_units_label">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">inches</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">3</property>
-                     <property name="right_attach">4</property>
-                     <property name="top_attach">3</property>
-                     <property name="bottom_attach">4</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="layout_y0_units_label">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">inches</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">3</property>
-                     <property name="right_attach">4</property>
-                     <property name="top_attach">4</property>
-                     <property name="bottom_attach">5</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="layout_dx_units_label">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">inches</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">3</property>
-                     <property name="right_attach">4</property>
-                     <property name="top_attach">5</property>
-                     <property name="bottom_attach">6</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="layout_dy_units_label">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">inches</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">3</property>
-                     <property name="right_attach">4</property>
-                     <property name="top_attach">6</property>
-                     <property name="bottom_attach">7</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="layout1_nx_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">1 1 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">1</property>
-                     <property name="right_attach">2</property>
-                     <property name="top_attach">1</property>
-                     <property name="bottom_attach">2</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="layout1_ny_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">1 1 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">1</property>
-                     <property name="right_attach">2</property>
-                     <property name="top_attach">2</property>
-                     <property name="bottom_attach">3</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="layout2_nx_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">1 1 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">2</property>
-                     <property name="right_attach">3</property>
-                     <property name="top_attach">1</property>
-                     <property name="bottom_attach">2</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="layout2_ny_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">1 1 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">2</property>
-                     <property name="right_attach">3</property>
-                     <property name="top_attach">2</property>
-                     <property name="bottom_attach">3</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="layout1_x0_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">0 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">1</property>
-                     <property name="right_attach">2</property>
-                     <property name="top_attach">3</property>
-                     <property name="bottom_attach">4</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="layout2_x0_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">0 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">2</property>
-                     <property name="right_attach">3</property>
-                     <property name="top_attach">3</property>
-                     <property name="bottom_attach">4</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="layout1_y0_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">0 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">1</property>
-                     <property name="right_attach">2</property>
-                     <property name="top_attach">4</property>
-                     <property name="bottom_attach">5</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="layout2_y0_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">0 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">2</property>
-                     <property name="right_attach">3</property>
-                     <property name="top_attach">4</property>
-                     <property name="bottom_attach">5</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="layout1_dx_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">0 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">1</property>
-                     <property name="right_attach">2</property>
-                     <property name="top_attach">5</property>
-                     <property name="bottom_attach">6</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="layout2_dx_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">0 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">2</property>
-                     <property name="right_attach">3</property>
-                     <property name="top_attach">5</property>
-                     <property name="bottom_attach">6</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="layout1_dy_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">0 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">1</property>
-                     <property name="right_attach">2</property>
-                     <property name="top_attach">6</property>
-                     <property name="bottom_attach">7</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkSpinButton" id="layout2_dy_spin">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="climb_rate">0.00999999977648</property>
-                     <property name="digits">0</property>
-                     <property name="numeric">False</property>
-                     <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                     <property name="snap_to_ticks">False</property>
-                     <property name="wrap">False</property>
-                     <property name="adjustment">0 0 100 1 10 0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">2</property>
-                     <property name="right_attach">3</property>
-                     <property name="top_attach">6</property>
-                     <property name="bottom_attach">7</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkHBox" id="hbox38">
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">0</property>
-
-                 <child>
-                   <widget class="GtkLabel" id="label100">
-                     <property name="visible">True</property>
-                     <property name="label">  </property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0.5</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">True</property>
-                     <property name="fill">True</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkVBox" id="vbox15">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">6</property>
-
-                     <child>
-                       <widget class="Custom" id="layout_mini_preview">
-                         <property name="visible">True</property>
-                         <property name="creation_function">gl_template_designer_construct_mini_preview</property>
-                         <property name="int1">175</property>
-                         <property name="int2">200</property>
-                         <property name="last_modification_time">Mon, 29 Dec 2003 21:27:10 GMT</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkButton" id="layout_test_button">
-                         <property name="border_width">6</property>
-                         <property name="visible">True</property>
-                         <property name="can_focus">True</property>
-                         <property name="label" translatable="yes">Print test sheet</property>
-                         <property name="use_underline">True</property>
-                         <property name="relief">GTK_RELIEF_NORMAL</property>
-                         <property name="focus_on_click">True</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">True</property>
-                 <property name="fill">True</property>
-               </packing>
-             </child>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">False</property>
-             <property name="fill">False</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="tab_expand">False</property>
-         <property name="tab_fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkLabel" id="label116">
-         <property name="visible">True</property>
-         <property name="label" translatable="yes">layout_page</property>
-         <property name="use_underline">False</property>
-         <property name="use_markup">False</property>
-         <property name="justify">GTK_JUSTIFY_LEFT</property>
-         <property name="wrap">False</property>
-         <property name="selectable">False</property>
-         <property name="xalign">0.5</property>
-         <property name="yalign">0.5</property>
-         <property name="xpad">0</property>
-         <property name="ypad">0</property>
-         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-         <property name="width_chars">-1</property>
-         <property name="single_line_mode">False</property>
-         <property name="angle">0</property>
-       </widget>
-       <packing>
-         <property name="type">tab</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkLabel" id="finish_page">
-         <property name="visible">True</property>
-         <property name="label" translatable="yes">Congratulations!
-
-You have completed the gLabels Template Designer.
-If you wish to accept and save your design, click &quot;Apply.&quot;
-
-Otherwise, you may click &quot;Cancel&quot; to abandon your design
-or &quot;Back&quot; to continue editing this design.</property>
-         <property name="use_underline">False</property>
-         <property name="use_markup">False</property>
-         <property name="justify">GTK_JUSTIFY_LEFT</property>
-         <property name="wrap">False</property>
-         <property name="selectable">False</property>
-         <property name="xalign">0.5</property>
-         <property name="yalign">0.5</property>
-         <property name="xpad">0</property>
-         <property name="ypad">0</property>
-         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-         <property name="width_chars">-1</property>
-         <property name="single_line_mode">False</property>
-         <property name="angle">0</property>
-       </widget>
-       <packing>
-         <property name="tab_expand">False</property>
-         <property name="tab_fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkLabel" id="label117">
-         <property name="visible">True</property>
-         <property name="label" translatable="yes">finish_page</property>
-         <property name="use_underline">False</property>
-         <property name="use_markup">False</property>
-         <property name="justify">GTK_JUSTIFY_LEFT</property>
-         <property name="wrap">False</property>
-         <property name="selectable">False</property>
-         <property name="xalign">0.5</property>
-         <property name="yalign">0.5</property>
-         <property name="xpad">0</property>
-         <property name="ypad">0</property>
-         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-         <property name="width_chars">-1</property>
-         <property name="single_line_mode">False</property>
-         <property name="angle">0</property>
-       </widget>
-       <packing>
-         <property name="type">tab</property>
-       </packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-</glade-interface>
diff --git a/data/glade/wdgt-media-select.glade b/data/glade/wdgt-media-select.glade
deleted file mode 100644 (file)
index 1696bfa..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-<?xml version="1.0"?>
-<glade-interface>
-  <!-- interface-requires gtk+ 2.6 -->
-  <!-- interface-naming-policy toplevel-contextual -->
-  <widget class="GtkWindow" id="window1">
-    <property name="visible">True</property>
-    <property name="title" translatable="yes">window1</property>
-    <child>
-      <widget class="GtkHBox" id="wdgt_media_select_hbox">
-        <property name="visible">True</property>
-        <child>
-          <widget class="GtkNotebook" id="notebook">
-            <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="border_width">6</property>
-            <child>
-              <widget class="GtkVBox" id="recent_tab_vbox">
-                <property name="visible">True</property>
-                <child>
-                  <widget class="GtkScrolledWindow" id="scrolledwindow2">
-                    <property name="width_request">480</property>
-                    <property name="height_request">320</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="border_width">12</property>
-                    <property name="hscrollbar_policy">automatic</property>
-                    <property name="vscrollbar_policy">automatic</property>
-                    <property name="shadow_type">in</property>
-                    <child>
-                      <widget class="GtkTreeView" id="recent_treeview">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="headers_visible">False</property>
-                      </widget>
-                    </child>
-                  </widget>
-                  <packing>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-              </widget>
-            </child>
-            <child>
-              <widget class="GtkLabel" id="recent_tab_label">
-                <property name="visible">True</property>
-                <property name="label" translatable="yes">Recent templates</property>
-              </widget>
-              <packing>
-                <property name="tab_fill">False</property>
-                <property name="type">tab</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkVBox" id="search_all_tab_vbox">
-                <property name="visible">True</property>
-                <child>
-                  <widget class="GtkHBox" id="hbox6">
-                    <property name="visible">True</property>
-                    <property name="border_width">12</property>
-                    <property name="spacing">12</property>
-                    <child>
-                      <widget class="GtkHBox" id="hbox9">
-                        <property name="visible">True</property>
-                        <property name="spacing">6</property>
-                        <child>
-                          <widget class="GtkLabel" id="label14">
-                            <property name="visible">True</property>
-                            <property name="label" translatable="yes">Brand:</property>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkComboBox" id="brand_combo">
-                            <property name="visible">True</property>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">0</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="GtkHBox" id="hbox7">
-                        <property name="visible">True</property>
-                        <property name="spacing">6</property>
-                        <child>
-                          <widget class="GtkLabel" id="label12">
-                            <property name="visible">True</property>
-                            <property name="label" translatable="yes">Page size:</property>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkComboBox" id="page_size_combo">
-                            <property name="visible">True</property>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="position">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="GtkHBox" id="hbox8">
-                        <property name="visible">True</property>
-                        <property name="spacing">6</property>
-                        <child>
-                          <widget class="GtkLabel" id="label13">
-                            <property name="visible">True</property>
-                            <property name="label" translatable="yes">Category:</property>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkComboBox" id="category_combo">
-                            <property name="visible">True</property>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="position">2</property>
-                      </packing>
-                    </child>
-                  </widget>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkScrolledWindow" id="scrolledwindow1">
-                    <property name="width_request">480</property>
-                    <property name="height_request">320</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="border_width">12</property>
-                    <property name="hscrollbar_policy">automatic</property>
-                    <property name="vscrollbar_policy">automatic</property>
-                    <property name="shadow_type">in</property>
-                    <child>
-                      <widget class="GtkTreeView" id="search_all_treeview">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="headers_visible">False</property>
-                      </widget>
-                    </child>
-                  </widget>
-                  <packing>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-              </widget>
-              <packing>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkLabel" id="search_all_tabLlabel">
-                <property name="visible">True</property>
-                <property name="label" translatable="yes">Search all templates</property>
-              </widget>
-              <packing>
-                <property name="position">1</property>
-                <property name="tab_fill">False</property>
-                <property name="type">tab</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="position">0</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-  </widget>
-</glade-interface>
diff --git a/data/glade/wdgt-rotate-label.glade b/data/glade/wdgt-rotate-label.glade
deleted file mode 100644 (file)
index aa48b50..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0"?>
-<glade-interface>
-  <!-- interface-requires gtk+ 2.6 -->
-  <!-- interface-naming-policy toplevel-contextual -->
-  <widget class="GtkWindow" id="window1">
-    <property name="visible">True</property>
-    <property name="title" translatable="yes">window1</property>
-    <child>
-      <widget class="GtkHBox" id="rotate_hbox">
-        <property name="visible">True</property>
-        <property name="border_width">6</property>
-        <property name="spacing">6</property>
-        <child>
-          <widget class="GtkCheckButton" id="rotate_check">
-            <property name="label" translatable="yes">Rotate</property>
-            <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="receives_default">False</property>
-            <property name="use_underline">True</property>
-            <property name="draw_indicator">True</property>
-          </widget>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">False</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-        <child>
-          <widget class="GtkDrawingArea" id="rotate_drawingarea">
-            <property name="visible">True</property>
-          </widget>
-          <packing>
-            <property name="position">1</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-  </widget>
-</glade-interface>
diff --git a/data/icons/16x16/Makefile.am b/data/icons/16x16/Makefile.am
new file mode 100644 (file)
index 0000000..6b40ab3
--- /dev/null
@@ -0,0 +1,40 @@
+
+size = 16x16
+appiconsdir = $(datadir)/icons/hicolor/$(size)/apps
+actioniconsdir = $(datadir)/$(GLABELS_BRANCH)/icons/hicolor/$(size)/actions
+
+appicons_DATA = \
+       apps/glabels-3.0.png
+
+actionicons_DATA = \
+       actions/glabels-align-bottom.png        \
+       actions/glabels-align-hcenter.png       \
+       actions/glabels-align-left.png          \
+       actions/glabels-align-right.png         \
+       actions/glabels-align-top.png           \
+       actions/glabels-align-vcenter.png       \
+       actions/glabels-arrow.png               \
+       actions/glabels-barcode.png             \
+       actions/glabels-box.png                 \
+       actions/glabels-bucket-fill.png         \
+       actions/glabels-center-horiz.png        \
+       actions/glabels-center-vert.png         \
+       actions/glabels-ellipse.png             \
+       actions/glabels-flip-horiz.png          \
+       actions/glabels-flip-vert.png           \
+       actions/glabels-image.png               \
+       actions/glabels-line.png                \
+       actions/glabels-merge.png               \
+       actions/glabels-object-properties.png   \
+       actions/glabels-order-bottom.png        \
+       actions/glabels-order-top.png           \
+       actions/glabels-pencil.png              \
+       actions/glabels-rotate-left.png         \
+       actions/glabels-rotate-right.png        \
+       actions/glabels-text.png
+
+noinst_DATA =
+
+EXTRA_DIST = $(appicons_DATA)                  \
+            $(actionicons_DATA)                \
+            $(noinst_DATA)
diff --git a/data/icons/16x16/Makefile.in b/data/icons/16x16/Makefile.in
new file mode 100644 (file)
index 0000000..2c7a0f6
--- /dev/null
@@ -0,0 +1,539 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = data/icons/16x16
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(actioniconsdir)" \
+       "$(DESTDIR)$(appiconsdir)"
+DATA = $(actionicons_DATA) $(appicons_DATA) $(noinst_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CAIRO_REQUIRED = @CAIRO_REQUIRED@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DLLTOOL = @DLLTOOL@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLABELS_BRANCH = @GLABELS_BRANCH@
+GLABELS_CFLAGS = @GLABELS_CFLAGS@
+GLABELS_LIBS = @GLABELS_LIBS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_REQUIRED = @GLIB_REQUIRED@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GTK_REQUIRED = @GTK_REQUIRED@
+GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@
+HELP_DIR = @HELP_DIR@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@
+LIBBARCODE_LIBS = @LIBBARCODE_LIBS@
+LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@
+LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
+LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
+LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
+LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@
+LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@
+LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
+LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
+LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@
+LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@
+LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@
+LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@
+LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@
+LIBIEC16022_LIBS = @LIBIEC16022_LIBS@
+LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@
+LIBOBJS = @LIBOBJS@
+LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@
+LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@
+LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@
+LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_REQUIRED = @LIBXML_REQUIRED@
+LIBZINT_CFLAGS = @LIBZINT_CFLAGS@
+LIBZINT_LIBS = @LIBZINT_LIBS@
+LIBZINT_REQUIRED = @LIBZINT_REQUIRED@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_REQUIRED = @PANGO_REQUIRED@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+size = 16x16
+appiconsdir = $(datadir)/icons/hicolor/$(size)/apps
+actioniconsdir = $(datadir)/$(GLABELS_BRANCH)/icons/hicolor/$(size)/actions
+appicons_DATA = \
+       apps/glabels-3.0.png
+
+actionicons_DATA = \
+       actions/glabels-align-bottom.png        \
+       actions/glabels-align-hcenter.png       \
+       actions/glabels-align-left.png          \
+       actions/glabels-align-right.png         \
+       actions/glabels-align-top.png           \
+       actions/glabels-align-vcenter.png       \
+       actions/glabels-arrow.png               \
+       actions/glabels-barcode.png             \
+       actions/glabels-box.png                 \
+       actions/glabels-bucket-fill.png         \
+       actions/glabels-center-horiz.png        \
+       actions/glabels-center-vert.png         \
+       actions/glabels-ellipse.png             \
+       actions/glabels-flip-horiz.png          \
+       actions/glabels-flip-vert.png           \
+       actions/glabels-image.png               \
+       actions/glabels-line.png                \
+       actions/glabels-merge.png               \
+       actions/glabels-object-properties.png   \
+       actions/glabels-order-bottom.png        \
+       actions/glabels-order-top.png           \
+       actions/glabels-pencil.png              \
+       actions/glabels-rotate-left.png         \
+       actions/glabels-rotate-right.png        \
+       actions/glabels-text.png
+
+noinst_DATA = 
+EXTRA_DIST = $(appicons_DATA)                  \
+            $(actionicons_DATA)                \
+            $(noinst_DATA)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/icons/16x16/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu data/icons/16x16/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-actioniconsDATA: $(actionicons_DATA)
+       @$(NORMAL_INSTALL)
+       test -z "$(actioniconsdir)" || $(MKDIR_P) "$(DESTDIR)$(actioniconsdir)"
+       @list='$(actionicons_DATA)'; test -n "$(actioniconsdir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(actioniconsdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(actioniconsdir)" || exit $$?; \
+       done
+
+uninstall-actioniconsDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(actionicons_DATA)'; test -n "$(actioniconsdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(actioniconsdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(actioniconsdir)" && rm -f $$files
+install-appiconsDATA: $(appicons_DATA)
+       @$(NORMAL_INSTALL)
+       test -z "$(appiconsdir)" || $(MKDIR_P) "$(DESTDIR)$(appiconsdir)"
+       @list='$(appicons_DATA)'; test -n "$(appiconsdir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(appiconsdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(appiconsdir)" || exit $$?; \
+       done
+
+uninstall-appiconsDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(appicons_DATA)'; test -n "$(appiconsdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(appiconsdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(appiconsdir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(actioniconsdir)" "$(DESTDIR)$(appiconsdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-actioniconsDATA install-appiconsDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-actioniconsDATA uninstall-appiconsDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+       distclean distclean-generic distclean-libtool distdir dvi \
+       dvi-am html html-am info info-am install \
+       install-actioniconsDATA install-am install-appiconsDATA \
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
+       install-info install-info-am install-man install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am uninstall \
+       uninstall-actioniconsDATA uninstall-am uninstall-appiconsDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/data/icons/16x16/actions/glabels-align-bottom.png b/data/icons/16x16/actions/glabels-align-bottom.png
new file mode 100644 (file)
index 0000000..da901bc
Binary files /dev/null and b/data/icons/16x16/actions/glabels-align-bottom.png differ
diff --git a/data/icons/16x16/actions/glabels-align-hcenter.png b/data/icons/16x16/actions/glabels-align-hcenter.png
new file mode 100644 (file)
index 0000000..684c125
Binary files /dev/null and b/data/icons/16x16/actions/glabels-align-hcenter.png differ
diff --git a/data/icons/16x16/actions/glabels-align-left.png b/data/icons/16x16/actions/glabels-align-left.png
new file mode 100644 (file)
index 0000000..1cdcf9b
Binary files /dev/null and b/data/icons/16x16/actions/glabels-align-left.png differ
diff --git a/data/icons/16x16/actions/glabels-align-right.png b/data/icons/16x16/actions/glabels-align-right.png
new file mode 100644 (file)
index 0000000..2b4872b
Binary files /dev/null and b/data/icons/16x16/actions/glabels-align-right.png differ
diff --git a/data/icons/16x16/actions/glabels-align-top.png b/data/icons/16x16/actions/glabels-align-top.png
new file mode 100644 (file)
index 0000000..5bda931
Binary files /dev/null and b/data/icons/16x16/actions/glabels-align-top.png differ
diff --git a/data/icons/16x16/actions/glabels-align-vcenter.png b/data/icons/16x16/actions/glabels-align-vcenter.png
new file mode 100644 (file)
index 0000000..a51293f
Binary files /dev/null and b/data/icons/16x16/actions/glabels-align-vcenter.png differ
diff --git a/data/icons/16x16/actions/glabels-arrow.png b/data/icons/16x16/actions/glabels-arrow.png
new file mode 100644 (file)
index 0000000..0ae5f36
Binary files /dev/null and b/data/icons/16x16/actions/glabels-arrow.png differ
diff --git a/data/icons/16x16/actions/glabels-barcode.png b/data/icons/16x16/actions/glabels-barcode.png
new file mode 100644 (file)
index 0000000..6e0e289
Binary files /dev/null and b/data/icons/16x16/actions/glabels-barcode.png differ
diff --git a/data/icons/16x16/actions/glabels-box.png b/data/icons/16x16/actions/glabels-box.png
new file mode 100644 (file)
index 0000000..c141c9d
Binary files /dev/null and b/data/icons/16x16/actions/glabels-box.png differ
diff --git a/data/icons/16x16/actions/glabels-bucket-fill.png b/data/icons/16x16/actions/glabels-bucket-fill.png
new file mode 100644 (file)
index 0000000..2be70de
Binary files /dev/null and b/data/icons/16x16/actions/glabels-bucket-fill.png differ
diff --git a/data/icons/16x16/actions/glabels-center-horiz.png b/data/icons/16x16/actions/glabels-center-horiz.png
new file mode 100644 (file)
index 0000000..fce3e90
Binary files /dev/null and b/data/icons/16x16/actions/glabels-center-horiz.png differ
diff --git a/data/icons/16x16/actions/glabels-center-vert.png b/data/icons/16x16/actions/glabels-center-vert.png
new file mode 100644 (file)
index 0000000..08b19af
Binary files /dev/null and b/data/icons/16x16/actions/glabels-center-vert.png differ
diff --git a/data/icons/16x16/actions/glabels-ellipse.png b/data/icons/16x16/actions/glabels-ellipse.png
new file mode 100644 (file)
index 0000000..9652562
Binary files /dev/null and b/data/icons/16x16/actions/glabels-ellipse.png differ
diff --git a/data/icons/16x16/actions/glabels-flip-horiz.png b/data/icons/16x16/actions/glabels-flip-horiz.png
new file mode 100644 (file)
index 0000000..e477068
Binary files /dev/null and b/data/icons/16x16/actions/glabels-flip-horiz.png differ
diff --git a/data/icons/16x16/actions/glabels-flip-vert.png b/data/icons/16x16/actions/glabels-flip-vert.png
new file mode 100644 (file)
index 0000000..93027c9
Binary files /dev/null and b/data/icons/16x16/actions/glabels-flip-vert.png differ
diff --git a/data/icons/16x16/actions/glabels-image.png b/data/icons/16x16/actions/glabels-image.png
new file mode 100644 (file)
index 0000000..ee9ed3d
Binary files /dev/null and b/data/icons/16x16/actions/glabels-image.png differ
diff --git a/data/icons/16x16/actions/glabels-line.png b/data/icons/16x16/actions/glabels-line.png
new file mode 100644 (file)
index 0000000..cf0e040
Binary files /dev/null and b/data/icons/16x16/actions/glabels-line.png differ
diff --git a/data/icons/16x16/actions/glabels-merge.png b/data/icons/16x16/actions/glabels-merge.png
new file mode 100644 (file)
index 0000000..2a3bfe8
Binary files /dev/null and b/data/icons/16x16/actions/glabels-merge.png differ
diff --git a/data/icons/16x16/actions/glabels-object-properties.png b/data/icons/16x16/actions/glabels-object-properties.png
new file mode 100644 (file)
index 0000000..ab42b19
Binary files /dev/null and b/data/icons/16x16/actions/glabels-object-properties.png differ
diff --git a/data/icons/16x16/actions/glabels-order-bottom.png b/data/icons/16x16/actions/glabels-order-bottom.png
new file mode 100644 (file)
index 0000000..f6ed2d0
Binary files /dev/null and b/data/icons/16x16/actions/glabels-order-bottom.png differ
diff --git a/data/icons/16x16/actions/glabels-order-top.png b/data/icons/16x16/actions/glabels-order-top.png
new file mode 100644 (file)
index 0000000..0884bc1
Binary files /dev/null and b/data/icons/16x16/actions/glabels-order-top.png differ
diff --git a/data/icons/16x16/actions/glabels-pencil.png b/data/icons/16x16/actions/glabels-pencil.png
new file mode 100644 (file)
index 0000000..83a1493
Binary files /dev/null and b/data/icons/16x16/actions/glabels-pencil.png differ
diff --git a/data/icons/16x16/actions/glabels-rotate-left.png b/data/icons/16x16/actions/glabels-rotate-left.png
new file mode 100644 (file)
index 0000000..157884e
Binary files /dev/null and b/data/icons/16x16/actions/glabels-rotate-left.png differ
diff --git a/data/icons/16x16/actions/glabels-rotate-right.png b/data/icons/16x16/actions/glabels-rotate-right.png
new file mode 100644 (file)
index 0000000..cc5dc49
Binary files /dev/null and b/data/icons/16x16/actions/glabels-rotate-right.png differ
diff --git a/data/icons/16x16/actions/glabels-text.png b/data/icons/16x16/actions/glabels-text.png
new file mode 100644 (file)
index 0000000..c539bf1
Binary files /dev/null and b/data/icons/16x16/actions/glabels-text.png differ
diff --git a/data/icons/16x16/apps/glabels-3.0.png b/data/icons/16x16/apps/glabels-3.0.png
new file mode 100644 (file)
index 0000000..4e244e3
Binary files /dev/null and b/data/icons/16x16/apps/glabels-3.0.png differ
diff --git a/data/icons/22x22/Makefile.am b/data/icons/22x22/Makefile.am
new file mode 100644 (file)
index 0000000..955d860
--- /dev/null
@@ -0,0 +1,11 @@
+
+size = 22x22
+appiconsdir = $(datadir)/icons/hicolor/$(size)/apps
+
+appicons_DATA = \
+       apps/glabels-3.0.png
+
+noinst_DATA =
+
+EXTRA_DIST = $(appicons_DATA) \
+            $(noinst_DATA)
diff --git a/data/icons/22x22/Makefile.in b/data/icons/22x22/Makefile.in
new file mode 100644 (file)
index 0000000..9c2bf6b
--- /dev/null
@@ -0,0 +1,488 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = data/icons/22x22
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(appiconsdir)"
+DATA = $(appicons_DATA) $(noinst_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CAIRO_REQUIRED = @CAIRO_REQUIRED@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DLLTOOL = @DLLTOOL@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLABELS_BRANCH = @GLABELS_BRANCH@
+GLABELS_CFLAGS = @GLABELS_CFLAGS@
+GLABELS_LIBS = @GLABELS_LIBS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_REQUIRED = @GLIB_REQUIRED@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GTK_REQUIRED = @GTK_REQUIRED@
+GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@
+HELP_DIR = @HELP_DIR@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@
+LIBBARCODE_LIBS = @LIBBARCODE_LIBS@
+LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@
+LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
+LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
+LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
+LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@
+LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@
+LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
+LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
+LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@
+LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@
+LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@
+LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@
+LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@
+LIBIEC16022_LIBS = @LIBIEC16022_LIBS@
+LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@
+LIBOBJS = @LIBOBJS@
+LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@
+LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@
+LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@
+LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_REQUIRED = @LIBXML_REQUIRED@
+LIBZINT_CFLAGS = @LIBZINT_CFLAGS@
+LIBZINT_LIBS = @LIBZINT_LIBS@
+LIBZINT_REQUIRED = @LIBZINT_REQUIRED@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_REQUIRED = @PANGO_REQUIRED@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+size = 22x22
+appiconsdir = $(datadir)/icons/hicolor/$(size)/apps
+appicons_DATA = \
+       apps/glabels-3.0.png
+
+noinst_DATA = 
+EXTRA_DIST = $(appicons_DATA) \
+            $(noinst_DATA)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/icons/22x22/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu data/icons/22x22/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-appiconsDATA: $(appicons_DATA)
+       @$(NORMAL_INSTALL)
+       test -z "$(appiconsdir)" || $(MKDIR_P) "$(DESTDIR)$(appiconsdir)"
+       @list='$(appicons_DATA)'; test -n "$(appiconsdir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(appiconsdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(appiconsdir)" || exit $$?; \
+       done
+
+uninstall-appiconsDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(appicons_DATA)'; test -n "$(appiconsdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(appiconsdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(appiconsdir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(appiconsdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-appiconsDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-appiconsDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+       distclean distclean-generic distclean-libtool distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-appiconsDATA install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       uninstall uninstall-am uninstall-appiconsDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/data/icons/22x22/apps/glabels-3.0.png b/data/icons/22x22/apps/glabels-3.0.png
new file mode 100644 (file)
index 0000000..ea1ee02
Binary files /dev/null and b/data/icons/22x22/apps/glabels-3.0.png differ
diff --git a/data/icons/24x24/Makefile.am b/data/icons/24x24/Makefile.am
new file mode 100644 (file)
index 0000000..4dd62a0
--- /dev/null
@@ -0,0 +1,30 @@
+
+size = 24x24
+appiconsdir = $(datadir)/icons/hicolor/$(size)/apps
+actioniconsdir = $(datadir)/$(GLABELS_BRANCH)/icons/hicolor/$(size)/actions
+
+appicons_DATA = \
+       apps/glabels-3.0.png
+
+actionicons_DATA = \
+       actions/glabels-arrow.png               \
+       actions/glabels-barcode.png             \
+       actions/glabels-box.png                 \
+       actions/glabels-bucket-fill.png         \
+       actions/glabels-ellipse.png             \
+       actions/glabels-hchain-broken.png       \
+       actions/glabels-hchain.png              \
+       actions/glabels-image.png               \
+       actions/glabels-line.png                \
+       actions/glabels-merge.png               \
+       actions/glabels-pencil.png              \
+       actions/glabels-object-properties.png   \
+       actions/glabels-text.png                \
+       actions/glabels-vchain-broken.png       \
+       actions/glabels-vchain.png
+
+noinst_DATA =
+
+EXTRA_DIST = $(appicons_DATA)                  \
+            $(actionicons_DATA)                \
+            $(noinst_DATA)
diff --git a/data/icons/24x24/Makefile.in b/data/icons/24x24/Makefile.in
new file mode 100644 (file)
index 0000000..6752336
--- /dev/null
@@ -0,0 +1,529 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = data/icons/24x24
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(actioniconsdir)" \
+       "$(DESTDIR)$(appiconsdir)"
+DATA = $(actionicons_DATA) $(appicons_DATA) $(noinst_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CAIRO_REQUIRED = @CAIRO_REQUIRED@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DLLTOOL = @DLLTOOL@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLABELS_BRANCH = @GLABELS_BRANCH@
+GLABELS_CFLAGS = @GLABELS_CFLAGS@
+GLABELS_LIBS = @GLABELS_LIBS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_REQUIRED = @GLIB_REQUIRED@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GTK_REQUIRED = @GTK_REQUIRED@
+GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@
+HELP_DIR = @HELP_DIR@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@
+LIBBARCODE_LIBS = @LIBBARCODE_LIBS@
+LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@
+LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
+LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
+LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
+LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@
+LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@
+LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
+LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
+LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@
+LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@
+LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@
+LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@
+LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@
+LIBIEC16022_LIBS = @LIBIEC16022_LIBS@
+LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@
+LIBOBJS = @LIBOBJS@
+LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@
+LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@
+LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@
+LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_REQUIRED = @LIBXML_REQUIRED@
+LIBZINT_CFLAGS = @LIBZINT_CFLAGS@
+LIBZINT_LIBS = @LIBZINT_LIBS@
+LIBZINT_REQUIRED = @LIBZINT_REQUIRED@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_REQUIRED = @PANGO_REQUIRED@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+size = 24x24
+appiconsdir = $(datadir)/icons/hicolor/$(size)/apps
+actioniconsdir = $(datadir)/$(GLABELS_BRANCH)/icons/hicolor/$(size)/actions
+appicons_DATA = \
+       apps/glabels-3.0.png
+
+actionicons_DATA = \
+       actions/glabels-arrow.png               \
+       actions/glabels-barcode.png             \
+       actions/glabels-box.png                 \
+       actions/glabels-bucket-fill.png         \
+       actions/glabels-ellipse.png             \
+       actions/glabels-hchain-broken.png       \
+       actions/glabels-hchain.png              \
+       actions/glabels-image.png               \
+       actions/glabels-line.png                \
+       actions/glabels-merge.png               \
+       actions/glabels-pencil.png              \
+       actions/glabels-object-properties.png   \
+       actions/glabels-text.png                \
+       actions/glabels-vchain-broken.png       \
+       actions/glabels-vchain.png
+
+noinst_DATA = 
+EXTRA_DIST = $(appicons_DATA)                  \
+            $(actionicons_DATA)                \
+            $(noinst_DATA)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/icons/24x24/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu data/icons/24x24/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-actioniconsDATA: $(actionicons_DATA)
+       @$(NORMAL_INSTALL)
+       test -z "$(actioniconsdir)" || $(MKDIR_P) "$(DESTDIR)$(actioniconsdir)"
+       @list='$(actionicons_DATA)'; test -n "$(actioniconsdir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(actioniconsdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(actioniconsdir)" || exit $$?; \
+       done
+
+uninstall-actioniconsDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(actionicons_DATA)'; test -n "$(actioniconsdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(actioniconsdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(actioniconsdir)" && rm -f $$files
+install-appiconsDATA: $(appicons_DATA)
+       @$(NORMAL_INSTALL)
+       test -z "$(appiconsdir)" || $(MKDIR_P) "$(DESTDIR)$(appiconsdir)"
+       @list='$(appicons_DATA)'; test -n "$(appiconsdir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(appiconsdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(appiconsdir)" || exit $$?; \
+       done
+
+uninstall-appiconsDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(appicons_DATA)'; test -n "$(appiconsdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(appiconsdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(appiconsdir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(actioniconsdir)" "$(DESTDIR)$(appiconsdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-actioniconsDATA install-appiconsDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-actioniconsDATA uninstall-appiconsDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+       distclean distclean-generic distclean-libtool distdir dvi \
+       dvi-am html html-am info info-am install \
+       install-actioniconsDATA install-am install-appiconsDATA \
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
+       install-info install-info-am install-man install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am uninstall \
+       uninstall-actioniconsDATA uninstall-am uninstall-appiconsDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/data/icons/24x24/actions/glabels-arrow.png b/data/icons/24x24/actions/glabels-arrow.png
new file mode 100644 (file)
index 0000000..6e0e26a
Binary files /dev/null and b/data/icons/24x24/actions/glabels-arrow.png differ
diff --git a/data/icons/24x24/actions/glabels-barcode.png b/data/icons/24x24/actions/glabels-barcode.png
new file mode 100644 (file)
index 0000000..9699c8d
Binary files /dev/null and b/data/icons/24x24/actions/glabels-barcode.png differ
diff --git a/data/icons/24x24/actions/glabels-box.png b/data/icons/24x24/actions/glabels-box.png
new file mode 100644 (file)
index 0000000..9f8e06f
Binary files /dev/null and b/data/icons/24x24/actions/glabels-box.png differ
diff --git a/data/icons/24x24/actions/glabels-bucket-fill.png b/data/icons/24x24/actions/glabels-bucket-fill.png
new file mode 100644 (file)
index 0000000..1ee5993
Binary files /dev/null and b/data/icons/24x24/actions/glabels-bucket-fill.png differ
diff --git a/data/icons/24x24/actions/glabels-ellipse.png b/data/icons/24x24/actions/glabels-ellipse.png
new file mode 100644 (file)
index 0000000..12f0468
Binary files /dev/null and b/data/icons/24x24/actions/glabels-ellipse.png differ
diff --git a/data/icons/24x24/actions/glabels-hchain-broken.png b/data/icons/24x24/actions/glabels-hchain-broken.png
new file mode 100644 (file)
index 0000000..2e961a3
Binary files /dev/null and b/data/icons/24x24/actions/glabels-hchain-broken.png differ
diff --git a/data/icons/24x24/actions/glabels-hchain.png b/data/icons/24x24/actions/glabels-hchain.png
new file mode 100644 (file)
index 0000000..5bc2eed
Binary files /dev/null and b/data/icons/24x24/actions/glabels-hchain.png differ
diff --git a/data/icons/24x24/actions/glabels-image.png b/data/icons/24x24/actions/glabels-image.png
new file mode 100644 (file)
index 0000000..093c8ad
Binary files /dev/null and b/data/icons/24x24/actions/glabels-image.png differ
diff --git a/data/icons/24x24/actions/glabels-line.png b/data/icons/24x24/actions/glabels-line.png
new file mode 100644 (file)
index 0000000..7bb6523
Binary files /dev/null and b/data/icons/24x24/actions/glabels-line.png differ
diff --git a/data/icons/24x24/actions/glabels-merge.png b/data/icons/24x24/actions/glabels-merge.png
new file mode 100644 (file)
index 0000000..af61200
Binary files /dev/null and b/data/icons/24x24/actions/glabels-merge.png differ
diff --git a/data/icons/24x24/actions/glabels-object-properties.png b/data/icons/24x24/actions/glabels-object-properties.png
new file mode 100644 (file)
index 0000000..f592606
Binary files /dev/null and b/data/icons/24x24/actions/glabels-object-properties.png differ
diff --git a/data/icons/24x24/actions/glabels-pencil.png b/data/icons/24x24/actions/glabels-pencil.png
new file mode 100644 (file)
index 0000000..a36ce93
Binary files /dev/null and b/data/icons/24x24/actions/glabels-pencil.png differ
diff --git a/data/icons/24x24/actions/glabels-text.png b/data/icons/24x24/actions/glabels-text.png
new file mode 100644 (file)
index 0000000..b9e5511
Binary files /dev/null and b/data/icons/24x24/actions/glabels-text.png differ
diff --git a/data/icons/24x24/actions/glabels-vchain-broken.png b/data/icons/24x24/actions/glabels-vchain-broken.png
new file mode 100644 (file)
index 0000000..8ef1363
Binary files /dev/null and b/data/icons/24x24/actions/glabels-vchain-broken.png differ
diff --git a/data/icons/24x24/actions/glabels-vchain.png b/data/icons/24x24/actions/glabels-vchain.png
new file mode 100644 (file)
index 0000000..7dc2031
Binary files /dev/null and b/data/icons/24x24/actions/glabels-vchain.png differ
diff --git a/data/icons/24x24/apps/glabels-3.0.png b/data/icons/24x24/apps/glabels-3.0.png
new file mode 100644 (file)
index 0000000..8e876e2
Binary files /dev/null and b/data/icons/24x24/apps/glabels-3.0.png differ
diff --git a/data/icons/32x32/Makefile.am b/data/icons/32x32/Makefile.am
new file mode 100644 (file)
index 0000000..c792c3d
--- /dev/null
@@ -0,0 +1,11 @@
+
+size = 32x32
+appiconsdir = $(datadir)/icons/hicolor/$(size)/apps
+
+appicons_DATA = \
+       apps/glabels-3.0.png
+
+noinst_DATA =
+
+EXTRA_DIST = $(appicons_DATA) \
+            $(noinst_DATA)
diff --git a/data/icons/32x32/Makefile.in b/data/icons/32x32/Makefile.in
new file mode 100644 (file)
index 0000000..ec5387e
--- /dev/null
@@ -0,0 +1,488 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = data/icons/32x32
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(appiconsdir)"
+DATA = $(appicons_DATA) $(noinst_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CAIRO_REQUIRED = @CAIRO_REQUIRED@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DLLTOOL = @DLLTOOL@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLABELS_BRANCH = @GLABELS_BRANCH@
+GLABELS_CFLAGS = @GLABELS_CFLAGS@
+GLABELS_LIBS = @GLABELS_LIBS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_REQUIRED = @GLIB_REQUIRED@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GTK_REQUIRED = @GTK_REQUIRED@
+GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@
+HELP_DIR = @HELP_DIR@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@
+LIBBARCODE_LIBS = @LIBBARCODE_LIBS@
+LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@
+LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
+LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
+LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
+LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@
+LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@
+LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
+LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
+LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@
+LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@
+LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@
+LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@
+LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@
+LIBIEC16022_LIBS = @LIBIEC16022_LIBS@
+LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@
+LIBOBJS = @LIBOBJS@
+LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@
+LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@
+LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@
+LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_REQUIRED = @LIBXML_REQUIRED@
+LIBZINT_CFLAGS = @LIBZINT_CFLAGS@
+LIBZINT_LIBS = @LIBZINT_LIBS@
+LIBZINT_REQUIRED = @LIBZINT_REQUIRED@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_REQUIRED = @PANGO_REQUIRED@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+size = 32x32
+appiconsdir = $(datadir)/icons/hicolor/$(size)/apps
+appicons_DATA = \
+       apps/glabels-3.0.png
+
+noinst_DATA = 
+EXTRA_DIST = $(appicons_DATA) \
+            $(noinst_DATA)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/icons/32x32/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu data/icons/32x32/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-appiconsDATA: $(appicons_DATA)
+       @$(NORMAL_INSTALL)
+       test -z "$(appiconsdir)" || $(MKDIR_P) "$(DESTDIR)$(appiconsdir)"
+       @list='$(appicons_DATA)'; test -n "$(appiconsdir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(appiconsdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(appiconsdir)" || exit $$?; \
+       done
+
+uninstall-appiconsDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(appicons_DATA)'; test -n "$(appiconsdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(appiconsdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(appiconsdir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(appiconsdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-appiconsDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-appiconsDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+       distclean distclean-generic distclean-libtool distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-appiconsDATA install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       uninstall uninstall-am uninstall-appiconsDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/data/icons/32x32/apps/glabels-3.0.png b/data/icons/32x32/apps/glabels-3.0.png
new file mode 100644 (file)
index 0000000..79c36f0
Binary files /dev/null and b/data/icons/32x32/apps/glabels-3.0.png differ
diff --git a/data/icons/48x48/Makefile.am b/data/icons/48x48/Makefile.am
new file mode 100644 (file)
index 0000000..b219845
--- /dev/null
@@ -0,0 +1,16 @@
+
+size = 48x48
+appiconsdir = $(datadir)/icons/hicolor/$(size)/apps
+mimetypeiconsdir = $(datadir)/icons/hicolor/$(size)/mimetypes
+
+appicons_DATA = \
+       apps/glabels-3.0.png
+
+mimetypeicons_DATA = \
+       mimetypes/application-x-glabels.png
+
+noinst_DATA =
+
+EXTRA_DIST = $(appicons_DATA)          \
+            $(mimetypeicons_DATA)      \
+            $(noinst_DATA)
diff --git a/data/icons/48x48/Makefile.in b/data/icons/48x48/Makefile.in
new file mode 100644 (file)
index 0000000..57c886c
--- /dev/null
@@ -0,0 +1,515 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = data/icons/48x48
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(appiconsdir)" \
+       "$(DESTDIR)$(mimetypeiconsdir)"
+DATA = $(appicons_DATA) $(mimetypeicons_DATA) $(noinst_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CAIRO_REQUIRED = @CAIRO_REQUIRED@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DLLTOOL = @DLLTOOL@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLABELS_BRANCH = @GLABELS_BRANCH@
+GLABELS_CFLAGS = @GLABELS_CFLAGS@
+GLABELS_LIBS = @GLABELS_LIBS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_REQUIRED = @GLIB_REQUIRED@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GTK_REQUIRED = @GTK_REQUIRED@
+GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@
+HELP_DIR = @HELP_DIR@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@
+LIBBARCODE_LIBS = @LIBBARCODE_LIBS@
+LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@
+LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
+LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
+LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
+LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@
+LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@
+LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
+LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
+LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@
+LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@
+LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@
+LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@
+LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@
+LIBIEC16022_LIBS = @LIBIEC16022_LIBS@
+LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@
+LIBOBJS = @LIBOBJS@
+LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@
+LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@
+LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@
+LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_REQUIRED = @LIBXML_REQUIRED@
+LIBZINT_CFLAGS = @LIBZINT_CFLAGS@
+LIBZINT_LIBS = @LIBZINT_LIBS@
+LIBZINT_REQUIRED = @LIBZINT_REQUIRED@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_REQUIRED = @PANGO_REQUIRED@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+size = 48x48
+appiconsdir = $(datadir)/icons/hicolor/$(size)/apps
+mimetypeiconsdir = $(datadir)/icons/hicolor/$(size)/mimetypes
+appicons_DATA = \
+       apps/glabels-3.0.png
+
+mimetypeicons_DATA = \
+       mimetypes/application-x-glabels.png
+
+noinst_DATA = 
+EXTRA_DIST = $(appicons_DATA)          \
+            $(mimetypeicons_DATA)      \
+            $(noinst_DATA)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/icons/48x48/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu data/icons/48x48/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-appiconsDATA: $(appicons_DATA)
+       @$(NORMAL_INSTALL)
+       test -z "$(appiconsdir)" || $(MKDIR_P) "$(DESTDIR)$(appiconsdir)"
+       @list='$(appicons_DATA)'; test -n "$(appiconsdir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(appiconsdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(appiconsdir)" || exit $$?; \
+       done
+
+uninstall-appiconsDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(appicons_DATA)'; test -n "$(appiconsdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(appiconsdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(appiconsdir)" && rm -f $$files
+install-mimetypeiconsDATA: $(mimetypeicons_DATA)
+       @$(NORMAL_INSTALL)
+       test -z "$(mimetypeiconsdir)" || $(MKDIR_P) "$(DESTDIR)$(mimetypeiconsdir)"
+       @list='$(mimetypeicons_DATA)'; test -n "$(mimetypeiconsdir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(mimetypeiconsdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(mimetypeiconsdir)" || exit $$?; \
+       done
+
+uninstall-mimetypeiconsDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(mimetypeicons_DATA)'; test -n "$(mimetypeiconsdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(mimetypeiconsdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(mimetypeiconsdir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(appiconsdir)" "$(DESTDIR)$(mimetypeiconsdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-appiconsDATA install-mimetypeiconsDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-appiconsDATA uninstall-mimetypeiconsDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+       distclean distclean-generic distclean-libtool distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-appiconsDATA install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-mimetypeiconsDATA install-pdf install-pdf-am \
+       install-ps install-ps-am install-strip installcheck \
+       installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+       uninstall-appiconsDATA uninstall-mimetypeiconsDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/data/icons/48x48/apps/glabels-3.0.png b/data/icons/48x48/apps/glabels-3.0.png
new file mode 100644 (file)
index 0000000..e54900a
Binary files /dev/null and b/data/icons/48x48/apps/glabels-3.0.png differ
diff --git a/data/icons/48x48/mimetypes/application-x-glabels.png b/data/icons/48x48/mimetypes/application-x-glabels.png
new file mode 100644 (file)
index 0000000..9f300f3
Binary files /dev/null and b/data/icons/48x48/mimetypes/application-x-glabels.png differ
diff --git a/data/icons/Makefile.am b/data/icons/Makefile.am
new file mode 100644 (file)
index 0000000..7a9e4f2
--- /dev/null
@@ -0,0 +1,15 @@
+
+SUBDIRS = 16x16 22x22 24x24 32x32 48x48
+
+gtk_update_icon_cache = $(GTK_UPDATE_ICON_CACHE) -f -t $(datadir)/icons/hicolor
+
+install-data-hook: update-icon-cache
+uninstall-hook: update-icon-cache
+update-icon-cache:
+       @-if test -z "$(DESTDIR)"; then \
+               echo "Updating Gtk icon cache."; \
+               $(gtk_update_icon_cache); \
+       else \
+               echo "*** Icon cache not updated.  After (un)install, run this:"; \
+               echo "***   $(gtk_update_icon_cache)"; \
+       fi
diff --git a/data/icons/Makefile.in b/data/icons/Makefile.in
new file mode 100644 (file)
index 0000000..4168c35
--- /dev/null
@@ -0,0 +1,649 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = data/icons
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+       html-recursive info-recursive install-data-recursive \
+       install-dvi-recursive install-exec-recursive \
+       install-html-recursive install-info-recursive \
+       install-pdf-recursive install-ps-recursive install-recursive \
+       installcheck-recursive installdirs-recursive pdf-recursive \
+       ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+       $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+       distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CAIRO_REQUIRED = @CAIRO_REQUIRED@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DLLTOOL = @DLLTOOL@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLABELS_BRANCH = @GLABELS_BRANCH@
+GLABELS_CFLAGS = @GLABELS_CFLAGS@
+GLABELS_LIBS = @GLABELS_LIBS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_REQUIRED = @GLIB_REQUIRED@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GTK_REQUIRED = @GTK_REQUIRED@
+GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@
+HELP_DIR = @HELP_DIR@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@
+LIBBARCODE_LIBS = @LIBBARCODE_LIBS@
+LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@
+LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
+LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
+LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
+LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@
+LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@
+LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
+LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
+LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@
+LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@
+LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@
+LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@
+LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@
+LIBIEC16022_LIBS = @LIBIEC16022_LIBS@
+LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@
+LIBOBJS = @LIBOBJS@
+LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@
+LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@
+LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@
+LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_REQUIRED = @LIBXML_REQUIRED@
+LIBZINT_CFLAGS = @LIBZINT_CFLAGS@
+LIBZINT_LIBS = @LIBZINT_LIBS@
+LIBZINT_REQUIRED = @LIBZINT_REQUIRED@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_REQUIRED = @PANGO_REQUIRED@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = 16x16 22x22 24x24 32x32 48x48
+gtk_update_icon_cache = $(GTK_UPDATE_ICON_CACHE) -f -t $(datadir)/icons/hicolor
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/icons/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu data/icons/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+       @fail= failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+       @fail= failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       rev=''; for subdir in $$list; do \
+         if test "$$subdir" = "."; then :; else \
+           rev="$$subdir $$rev"; \
+         fi; \
+       done; \
+       rev="$$rev ."; \
+       target=`echo $@ | sed s/-recursive//`; \
+       for subdir in $$rev; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done && test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+       done
+ctags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+       done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       set x; \
+       here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -d "$(distdir)/$$subdir" \
+           || $(MKDIR_P) "$(distdir)/$$subdir" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+       @$(NORMAL_INSTALL)
+       $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+       @$(NORMAL_INSTALL)
+       $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+       install-am install-data-am install-strip tags-recursive \
+       uninstall-am
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+       all all-am check check-am clean clean-generic clean-libtool \
+       ctags ctags-recursive distclean distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-data-hook install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
+       install-info install-info-am install-man install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs installdirs-am \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       tags tags-recursive uninstall uninstall-am uninstall-hook
+
+
+install-data-hook: update-icon-cache
+uninstall-hook: update-icon-cache
+update-icon-cache:
+       @-if test -z "$(DESTDIR)"; then \
+               echo "Updating Gtk icon cache."; \
+               $(gtk_update_icon_cache); \
+       else \
+               echo "*** Icon cache not updated.  After (un)install, run this:"; \
+               echo "***   $(gtk_update_icon_cache)"; \
+       fi
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
index 340519046374f4de83e6597563aeb02c1c6cdcf5..43fc5121d7412d2736832ff8bfaca1eebdd5c979 100644 (file)
@@ -1,6 +1,5 @@
 ## Process this file with automake to produce Makefile.in
 
-man_MANS = glabels.1
+man_MANS = glabels-3.1 glabels-3-batch.1
 
 EXTRA_DIST = $(man_MANS)
-
index 0cba8c40f03d4937f64c93afc149025b7936dcdc..da96bca7fada22e2d2ab69aadeb88cea2f2f4606 100644 (file)
@@ -36,13 +36,19 @@ host_triplet = @host@
 subdir = data/man
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -74,11 +80,13 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALL_LINGUAS = @ALL_LINGUAS@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
+CAIRO_REQUIRED = @CAIRO_REQUIRED@
 CATALOGS = @CATALOGS@
 CATOBJEXT = @CATOBJEXT@
 CC = @CC@
@@ -92,6 +100,7 @@ DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
 DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DLLTOOL = @DLLTOOL@
 DOC_USER_FORMATS = @DOC_USER_FORMATS@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
@@ -101,17 +110,23 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
+GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLABELS_BRANCH = @GLABELS_BRANCH@
 GLABELS_CFLAGS = @GLABELS_CFLAGS@
 GLABELS_LIBS = @GLABELS_LIBS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GLIB_REQUIRED = @GLIB_REQUIRED@
 GMOFILES = @GMOFILES@
 GMSGFMT = @GMSGFMT@
 GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
 GTK_REQUIRED = @GTK_REQUIRED@
-HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@
+GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@
 HELP_DIR = @HELP_DIR@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -127,31 +142,45 @@ INTLTOOL_PERL = @INTLTOOL_PERL@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
+LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@
+LIBBARCODE_LIBS = @LIBBARCODE_LIBS@
+LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@
 LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
 LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
 LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
+LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@
+LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@
 LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
 LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
-LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@
-LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@
-LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@
-LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@
+LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@
+LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@
+LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@
+LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@
+LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@
+LIBIEC16022_LIBS = @LIBIEC16022_LIBS@
+LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@
 LIBOBJS = @LIBOBJS@
+LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@
+LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@
+LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@
+LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBXML_REQUIRED = @LIBXML_REQUIRED@
+LIBZINT_CFLAGS = @LIBZINT_CFLAGS@
+LIBZINT_LIBS = @LIBZINT_LIBS@
+LIBZINT_REQUIRED = @LIBZINT_REQUIRED@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MKINSTALLDIRS = @MKINSTALLDIRS@
 MSGFMT = @MSGFMT@
 MSGFMT_OPTS = @MSGFMT_OPTS@
 MSGMERGE = @MSGMERGE@
-MYGAL_CFLAGS = @MYGAL_CFLAGS@
-MYGAL_LIBS = @MYGAL_LIBS@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -164,9 +193,13 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_REQUIRED = @PANGO_REQUIRED@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 POFILES = @POFILES@
 POSUB = @POSUB@
 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -176,18 +209,15 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
-UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@
-UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
 WARN_CFLAGS = @WARN_CFLAGS@
 XGETTEXT = @XGETTEXT@
-XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@
-XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 am__include = @am__include@
@@ -207,6 +237,7 @@ datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
 exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
 host = @host@
 host_alias = @host_alias@
 host_cpu = @host_cpu@
@@ -220,7 +251,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -236,7 +266,7 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-man_MANS = glabels.1
+man_MANS = glabels-3.1 glabels-3-batch.1
 EXTRA_DIST = $(man_MANS)
 all: all-am
 
diff --git a/data/man/glabels-3-batch.1 b/data/man/glabels-3-batch.1
new file mode 100644 (file)
index 0000000..d9248d5
--- /dev/null
@@ -0,0 +1 @@
+.so man1/glabels-3.1
diff --git a/data/man/glabels-3.1 b/data/man/glabels-3.1
new file mode 100644 (file)
index 0000000..5b5b434
--- /dev/null
@@ -0,0 +1,67 @@
+.TH glabels 1 "Jun 28, 2004"
+.SH NAME
+glabels \- Label and business card creation program for GNOME
+.SH SYNOPSIS
+.B glabels-3
+.RI [OPTIONS]
+.RI [label-filename...]
+.sp
+.B glabels-3-batch
+.RI [OPTIONS]
+.RI [label-filename...]
+.SH DESCRIPTION
+.B glabels-3
+is a lightweight program for creating labels and business cards for
+the GNOME desktop environment. It is designed to work with various
+laser/ink-jet peel-off label and business card sheets that you'll find at most
+office supply stores.
+.B glabels-3
+is pre-configured with templates for many of these products.
+It also provides an interactive template designer for creating new
+templates according to user specifications.
+.PP
+For full documentation see the \fBgLabels\fR online help.
+
+.PP
+.B glabels-3-batch
+is a command line utility to print labels previously prepared with
+.B glabels-3.
+.SH OPTIONS
+.TP
+\fB\-?\fR, \fB\-\-help\fR
+Display a summary of available command-line options.
+.TP
+\fB\-\-usage\fR
+Display a short usage summary.
+.TP
+\fB\-v\fR, \fB\-\-version\fR
+Print program version information.
+.PP
+.B Options specific to glabels-batch
+.TP
+\fB\-o\fR \fIfilename\fR, \fB\-\-output\fR=\fIfilename\fR
+Set output filename to \fIfilename\fR. (default="output.ps")
+.TP
+\fB\-s\fR \fIn\fR, \fB\-\-sheets\fR=\fIn\fR
+Set number of sheets to \fIn\fR. (default=1)
+.TP
+\fB\-c\fR \fIn\fR, \fB\-\-copies\fR=\fIn\fR
+Set number of copies to \fIn\fR. (default=1)
+.TP
+\fB\-f\fR \fIn\fR, \fB\-\-first\fR=\fIn\fR
+Set label on first sheet to start printing from to \fIn\fR. (default=1)
+.TP
+\fB\-l\fR, \fB\-\-outline\fR
+Print outlines around labels.  This is useful for testing printer alignment
+or printing proof sheets.
+.TP
+\fB\-r\fR, \fB\-\-reverse\fR
+Print mirror image of labels.  This is useful for clear labels intended to be
+seen from the back through glass.
+
+.SH FILES
+The $HOME/.glabels directory contains all user-defined templates.
+.SH SEE ALSO
+The gLabels homepage at <http://glabels.org/>.
+.SH AUTHOR
+Jim Evins <evins@snaught.com>
diff --git a/data/man/glabels.1 b/data/man/glabels.1
deleted file mode 100644 (file)
index 489b2a4..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-.TH glabels 1 "Jun 28, 2004"
-.SH NAME
-glabels \- Label and business card creation program for GNOME
-.SH SYNOPSIS
-.B glabels
-.RI [OPTIONS]
-.RI [label-filename...]
-.sp
-.B glabels-batch
-.RI [OPTIONS]
-.RI [label-filename...]
-.SH DESCRIPTION
-.B glabels
-is a lightweight program for creating labels and business cards for
-the GNOME desktop environment. It is designed to work with various
-laser/ink-jet peel-off label and business card sheets that you'll find at most
-office supply stores.
-.B glabels
-is pre-configured with templates for many of these products.
-It also provides an interactive template designer for creating new
-templates according to user specifications.
-.PP
-For full documentation see the \fBgLabels\fR online help.
-
-.PP
-.B glabels-batch
-is a command line utility to print labels previously prepared with
-.B glabels.
-.SH OPTIONS
-.TP
-\fB\-?\fR, \fB\-\-help\fR
-Display a summary of available command-line options.
-.TP
-\fB\-\-usage\fR
-Display a short usage summary.
-.TP
-\fB\-v\fR, \fB\-\-version\fR
-Print program version information.
-.PP
-.B Options specific to glabels-batch
-.TP
-\fB\-o\fR \fIfilename\fR, \fB\-\-output\fR=\fIfilename\fR
-Set output filename to \fIfilename\fR. (default="output.ps")
-.TP
-\fB\-s\fR \fIn\fR, \fB\-\-sheets\fR=\fIn\fR
-Set number of sheets to \fIn\fR. (default=1)
-.TP
-\fB\-c\fR \fIn\fR, \fB\-\-copies\fR=\fIn\fR
-Set number of copies to \fIn\fR. (default=1)
-.TP
-\fB\-f\fR \fIn\fR, \fB\-\-first\fR=\fIn\fR
-Set label on first sheet to start printing from to \fIn\fR. (default=1)
-.TP
-\fB\-l\fR, \fB\-\-outline\fR
-Print outlines around labels.  This is useful for testing printer alignment
-or printing proof sheets.
-.TP
-\fB\-r\fR, \fB\-\-reverse\fR
-Print mirror image of labels.  This is useful for clear labels intended to be
-seen from the back through glass.
-
-.SH FILES
-The $HOME/.glabels directory contains all user-defined templates.
-.SH SEE ALSO
-The gLabels homepage at <http://glabels.sourceforge.net/>.
-.SH AUTHOR
-Jim Evins <evins@snaught.com>
index 027c10225b4ca320993072f30346a2210be52c64..1c71a5e86a0fd140239003e1859580f5d2572c2c 100644 (file)
@@ -1,53 +1,16 @@
 ## Process this file with automake to produce Makefile.in
 
-keys_in_files=glabels.keys.in
-keys_files = $(keys_in_files:.keys.in=.keys)
-@INTLTOOL_KEYS_RULE@
-
-xml_in_files=glabels.xml.in
+xml_in_files=$(GLABELS_BRANCH).xml.in
 xml_files = $(xml_in_files:.xml.in=.xml)
 @INTLTOOL_XML_RULE@
 
-mimedir = $(datadir)/mime-info
-mime_DATA = $(keys_files) glabels.mime
-
-appdir = $(datadir)/application-registry
-app_DATA = glabels.applications
-
-newmimedir = $(datadir)/mime/packages
-newmime_DATA = $(xml_files)
+mimedir = $(datadir)/mime/packages
+mime_DATA = $(xml_files)
 
 EXTRA_DIST = \
-       $(keys_in_files)        \
-       $(mime_DATA)            \
-       $(app_DATA)             \
-       $(xml_in_files)         \
-       $(newmime_DATA)
-
-CLEANFILES = $(keys_files) $(xml_files)
-
+       $(xml_in_files)
 
-install-data-hook:
-if ENABLE_UPDATE_MIMEDB
-if HAVE_NEW_MIME
-       $(UPDATE_MIME_DATABASE) "$(DESTDIR)$(datadir)/mime"
-endif
-endif
-if ENABLE_UPDATE_DESKTOPDB
-if HAVE_NEWER_MIME
-       $(UPDATE_DESKTOP_DATABASE) 
-endif
-endif
+CLEANFILES = \
+       $(xml_files)
 
-uninstall-hook:
-if ENABLE_UPDATE_MIMEDB
-if HAVE_NEW_MIME
-       $(UPDATE_MIME_DATABASE) "$(DESTDIR)$(datadir)/mime"
-endif
-endif
-if ENABLE_UPDATE_DESKTOPDB
-if HAVE_NEWER_MIME
-       $(UPDATE_DESKTOP_DATABASE) 
-endif
-endif
 
index 8e95bd13c7a7c5672ee1a8e110c8e92db12ad640..62a60a81356d0959704156decbe28062b9fb46bf 100644 (file)
@@ -37,13 +37,19 @@ host_triplet = @host@
 subdir = data/mime
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -67,18 +73,19 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(appdir)" "$(DESTDIR)$(mimedir)" \
-       "$(DESTDIR)$(newmimedir)"
-DATA = $(app_DATA) $(mime_DATA) $(newmime_DATA)
+am__installdirs = "$(DESTDIR)$(mimedir)"
+DATA = $(mime_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALL_LINGUAS = @ALL_LINGUAS@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
+CAIRO_REQUIRED = @CAIRO_REQUIRED@
 CATALOGS = @CATALOGS@
 CATOBJEXT = @CATOBJEXT@
 CC = @CC@
@@ -92,6 +99,7 @@ DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
 DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DLLTOOL = @DLLTOOL@
 DOC_USER_FORMATS = @DOC_USER_FORMATS@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
@@ -101,17 +109,23 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
+GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLABELS_BRANCH = @GLABELS_BRANCH@
 GLABELS_CFLAGS = @GLABELS_CFLAGS@
 GLABELS_LIBS = @GLABELS_LIBS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GLIB_REQUIRED = @GLIB_REQUIRED@
 GMOFILES = @GMOFILES@
 GMSGFMT = @GMSGFMT@
 GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
 GTK_REQUIRED = @GTK_REQUIRED@
-HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@
+GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@
 HELP_DIR = @HELP_DIR@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -127,31 +141,45 @@ INTLTOOL_PERL = @INTLTOOL_PERL@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
+LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@
+LIBBARCODE_LIBS = @LIBBARCODE_LIBS@
+LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@
 LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
 LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
 LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
+LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@
+LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@
 LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
 LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
-LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@
-LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@
-LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@
-LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@
+LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@
+LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@
+LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@
+LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@
+LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@
+LIBIEC16022_LIBS = @LIBIEC16022_LIBS@
+LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@
 LIBOBJS = @LIBOBJS@
+LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@
+LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@
+LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@
+LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBXML_REQUIRED = @LIBXML_REQUIRED@
+LIBZINT_CFLAGS = @LIBZINT_CFLAGS@
+LIBZINT_LIBS = @LIBZINT_LIBS@
+LIBZINT_REQUIRED = @LIBZINT_REQUIRED@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MKINSTALLDIRS = @MKINSTALLDIRS@
 MSGFMT = @MSGFMT@
 MSGFMT_OPTS = @MSGFMT_OPTS@
 MSGMERGE = @MSGMERGE@
-MYGAL_CFLAGS = @MYGAL_CFLAGS@
-MYGAL_LIBS = @MYGAL_LIBS@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -164,9 +192,13 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_REQUIRED = @PANGO_REQUIRED@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 POFILES = @POFILES@
 POSUB = @POSUB@
 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -176,18 +208,15 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
-UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@
-UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
 WARN_CFLAGS = @WARN_CFLAGS@
 XGETTEXT = @XGETTEXT@
-XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@
-XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 am__include = @am__include@
@@ -207,6 +236,7 @@ datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
 exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
 host = @host@
 host_alias = @host_alias@
 host_cpu = @host_cpu@
@@ -220,7 +250,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -236,24 +265,16 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-keys_in_files = glabels.keys.in
-keys_files = $(keys_in_files:.keys.in=.keys)
-xml_in_files = glabels.xml.in
+xml_in_files = $(GLABELS_BRANCH).xml.in
 xml_files = $(xml_in_files:.xml.in=.xml)
-mimedir = $(datadir)/mime-info
-mime_DATA = $(keys_files) glabels.mime
-appdir = $(datadir)/application-registry
-app_DATA = glabels.applications
-newmimedir = $(datadir)/mime/packages
-newmime_DATA = $(xml_files)
+mimedir = $(datadir)/mime/packages
+mime_DATA = $(xml_files)
 EXTRA_DIST = \
-       $(keys_in_files)        \
-       $(mime_DATA)            \
-       $(app_DATA)             \
-       $(xml_in_files)         \
-       $(newmime_DATA)
+       $(xml_in_files)
+
+CLEANFILES = \
+       $(xml_files)
 
-CLEANFILES = $(keys_files) $(xml_files)
 all: all-am
 
 .SUFFIXES:
@@ -293,26 +314,6 @@ mostlyclean-libtool:
 
 clean-libtool:
        -rm -rf .libs _libs
-install-appDATA: $(app_DATA)
-       @$(NORMAL_INSTALL)
-       test -z "$(appdir)" || $(MKDIR_P) "$(DESTDIR)$(appdir)"
-       @list='$(app_DATA)'; test -n "$(appdir)" || list=; \
-       for p in $$list; do \
-         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-         echo "$$d$$p"; \
-       done | $(am__base_list) | \
-       while read files; do \
-         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(appdir)'"; \
-         $(INSTALL_DATA) $$files "$(DESTDIR)$(appdir)" || exit $$?; \
-       done
-
-uninstall-appDATA:
-       @$(NORMAL_UNINSTALL)
-       @list='$(app_DATA)'; test -n "$(appdir)" || list=; \
-       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(appdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(appdir)" && rm -f $$files
 install-mimeDATA: $(mime_DATA)
        @$(NORMAL_INSTALL)
        test -z "$(mimedir)" || $(MKDIR_P) "$(DESTDIR)$(mimedir)"
@@ -333,26 +334,6 @@ uninstall-mimeDATA:
        test -n "$$files" || exit 0; \
        echo " ( cd '$(DESTDIR)$(mimedir)' && rm -f" $$files ")"; \
        cd "$(DESTDIR)$(mimedir)" && rm -f $$files
-install-newmimeDATA: $(newmime_DATA)
-       @$(NORMAL_INSTALL)
-       test -z "$(newmimedir)" || $(MKDIR_P) "$(DESTDIR)$(newmimedir)"
-       @list='$(newmime_DATA)'; test -n "$(newmimedir)" || list=; \
-       for p in $$list; do \
-         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-         echo "$$d$$p"; \
-       done | $(am__base_list) | \
-       while read files; do \
-         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(newmimedir)'"; \
-         $(INSTALL_DATA) $$files "$(DESTDIR)$(newmimedir)" || exit $$?; \
-       done
-
-uninstall-newmimeDATA:
-       @$(NORMAL_UNINSTALL)
-       @list='$(newmime_DATA)'; test -n "$(newmimedir)" || list=; \
-       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(newmimedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(newmimedir)" && rm -f $$files
 tags: TAGS
 TAGS:
 
@@ -394,7 +375,7 @@ check-am: all-am
 check: check-am
 all-am: Makefile $(DATA)
 installdirs:
-       for dir in "$(DESTDIR)$(appdir)" "$(DESTDIR)$(mimedir)" "$(DESTDIR)$(newmimedir)"; do \
+       for dir in "$(DESTDIR)$(mimedir)"; do \
          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
@@ -443,9 +424,8 @@ info: info-am
 
 info-am:
 
-install-data-am: install-appDATA install-mimeDATA install-newmimeDATA
-       @$(NORMAL_INSTALL)
-       $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-data-am: install-mimeDATA
+
 install-dvi: install-dvi-am
 
 install-dvi-am:
@@ -488,36 +468,23 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-appDATA uninstall-mimeDATA \
-       uninstall-newmimeDATA
-       @$(NORMAL_INSTALL)
-       $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
-.MAKE: install-am install-data-am install-strip uninstall-am
+uninstall-am: uninstall-mimeDATA
+
+.MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
        distclean distclean-generic distclean-libtool distdir dvi \
        dvi-am html html-am info info-am install install-am \
-       install-appDATA install-data install-data-am install-data-hook \
-       install-dvi install-dvi-am install-exec install-exec-am \
-       install-html install-html-am install-info install-info-am \
-       install-man install-mimeDATA install-newmimeDATA install-pdf \
-       install-pdf-am install-ps install-ps-am install-strip \
-       installcheck installcheck-am installdirs maintainer-clean \
-       maintainer-clean-generic mostlyclean mostlyclean-generic \
-       mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
-       uninstall-appDATA uninstall-hook uninstall-mimeDATA \
-       uninstall-newmimeDATA
-
-@INTLTOOL_KEYS_RULE@
-@INTLTOOL_XML_RULE@
-
-install-data-hook:
-@ENABLE_UPDATE_MIMEDB_TRUE@@HAVE_NEW_MIME_TRUE@        $(UPDATE_MIME_DATABASE) "$(DESTDIR)$(datadir)/mime"
-@ENABLE_UPDATE_DESKTOPDB_TRUE@@HAVE_NEWER_MIME_TRUE@   $(UPDATE_DESKTOP_DATABASE) 
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
+       install-info install-info-am install-man install-mimeDATA \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       uninstall uninstall-am uninstall-mimeDATA
 
-uninstall-hook:
-@ENABLE_UPDATE_MIMEDB_TRUE@@HAVE_NEW_MIME_TRUE@        $(UPDATE_MIME_DATABASE) "$(DESTDIR)$(datadir)/mime"
-@ENABLE_UPDATE_DESKTOPDB_TRUE@@HAVE_NEWER_MIME_TRUE@   $(UPDATE_DESKTOP_DATABASE) 
+@INTLTOOL_XML_RULE@
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/data/mime/glabels-3.0.xml.in b/data/mime/glabels-3.0.xml.in
new file mode 100644 (file)
index 0000000..70f0e2f
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
+   <mime-type type="application/x-glabels">
+     <_comment>gLabels Project File</_comment>
+     <glob pattern="*.glabels"/>
+   </mime-type>
+</mime-info>
+
diff --git a/data/mime/glabels.applications b/data/mime/glabels.applications
deleted file mode 100644 (file)
index 1391018..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-glabels
-       command=glabels
-       name=gLabels
-       can_open_multiple_files=true
-       expects_uris=false
-       requires_terminal=false
-       mime_types=application/x-glabels
-       uses_gnomevfs=false
-
diff --git a/data/mime/glabels.keys b/data/mime/glabels.keys
deleted file mode 100644 (file)
index 9d76d32..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-application/x-glabels:
-       open=glabels %f
-       description=gLabels Project File
-       [ca]description=Fitxer de projecte del gLabels
-       [cs]description=Projektový soubor gLabels
-       [da]description=gLabels' projektfil
-       [de]description=gLabels-Projektdatei
-       [eo]description=Dosiero de Projekto de gLabels
-       [es]description=Archivo de projecto gLabels
-       [fr]description=Fichier de projet gLabels
-       [it]description=File di progetto di gLabels
-       [ja]description=gLabels のプロジェクト・ファイル
-       [ko]description=gLabels 프로젝트 파일
-       [pt]description=Propriedades de ficheiro gLabels
-       [ru]description=Файл проекта gLabels
-       [sl]description=Datoteka projekta gLabels
-       [sv]description=gLabels-projektfil
-       [zh_CN]description=gLabels工程文件
-        icon_filename=glabels-application-x-glabels.png
-        default_action_type=application
-       category=Documents
-        short_list_application_ids_for_novice_user_level=glabels
-        short_list_application_ids_for_intermediate_user_level=glabels
-        short_list_application_ids_for_advanced_user_level=glabels
diff --git a/data/mime/glabels.keys.in b/data/mime/glabels.keys.in
deleted file mode 100644 (file)
index 596c96c..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-application/x-glabels:
-       open=glabels %f
-       _description=gLabels Project File
-        icon_filename=glabels-application-x-glabels.png
-        default_action_type=application
-       category=Documents
-        short_list_application_ids_for_novice_user_level=glabels
-        short_list_application_ids_for_intermediate_user_level=glabels
-        short_list_application_ids_for_advanced_user_level=glabels
diff --git a/data/mime/glabels.mime b/data/mime/glabels.mime
deleted file mode 100644 (file)
index ab2f8cd..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-application/x-glabels
-        ext: glabels
diff --git a/data/mime/glabels.xml b/data/mime/glabels.xml
deleted file mode 100644 (file)
index f09cb35..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
-   <mime-type type="application/x-glabels">
-     <comment>gLabels Project File</comment>
-     <comment xml:lang="ca">Fitxer de projecte del gLabels</comment>
-     <comment xml:lang="cs">Projektový soubor gLabels</comment>
-     <comment xml:lang="da">gLabels' projektfil</comment>
-     <comment xml:lang="de">gLabels-Projektdatei</comment>
-     <comment xml:lang="eo">Dosiero de Projekto de gLabels</comment>
-     <comment xml:lang="es">Archivo de projecto gLabels</comment>
-     <comment xml:lang="fr">Fichier de projet gLabels</comment>
-     <comment xml:lang="it">File di progetto di gLabels</comment>
-     <comment xml:lang="ja">gLabels のプロジェクト・ファイル</comment>
-     <comment xml:lang="ko">gLabels 프로젝트 파일</comment>
-     <comment xml:lang="pt">Propriedades de ficheiro gLabels</comment>
-     <comment xml:lang="ru">Файл проекта gLabels</comment>
-     <comment xml:lang="sl">Datoteka projekta gLabels</comment>
-     <comment xml:lang="sv">gLabels-projektfil</comment>
-     <comment xml:lang="zh_CN">gLabels工程文件</comment>
-     <glob pattern="*.glabels"/>
-   </mime-type>
-</mime-info>
\ No newline at end of file
diff --git a/data/mime/glabels.xml.in b/data/mime/glabels.xml.in
deleted file mode 100644 (file)
index 70f0e2f..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
-   <mime-type type="application/x-glabels">
-     <_comment>gLabels Project File</_comment>
-     <glob pattern="*.glabels"/>
-   </mime-type>
-</mime-info>
-
index 4cebb802003d11f82e021be94c8db34638ea62d4..59d94c4f8bb881d74d58b3eb0f16d4616da1203f 100644 (file)
@@ -1,26 +1,18 @@
 ## Process this file with automake to produce Makefile.in
 
-glabels_pixmapsdir = $(datadir)/pixmaps/glabels
+glabels_pixmapsdir = $(datadir)/$(GLABELS_BRANCH)/pixmaps
 
 glabels_pixmaps_DATA = \
-       glabels-splash.png      \
-       glabels-about-logo.png  \
+       glabels-logo.png        \
+       new-select.png          \
+       new-rotate.png          \
+       new-confirm.png         \
+       template-designer.png   \
        ex-rect-size.png        \
+       ex-ellipse-size.png     \
        ex-round-size.png       \
        ex-cd-size.png          \
        ex-1layout.png          \
        ex-2layouts.png         
 
-glabels_app_icondir = $(datadir)/pixmaps
-
-glabels_app_icon_DATA = \
-       glabels.png
-
-glabels_mime_icondir = $(datadir)/pixmaps
-
-glabels_mime_icon_DATA = \
-       glabels-application-x-glabels.png
-
-EXTRA_DIST = $(glabels_pixmaps_DATA)   \
-            $(glabels_app_icon_DATA)  \
-            $(glabels_mime_icon_DATA)
+EXTRA_DIST = $(glabels_pixmaps_DATA)
index 5946c1d382834be1b18262d8ce2fdb78a88a5bf5..e9348b776182000473df1b7d05d6ced0831fd53c 100644 (file)
@@ -37,13 +37,19 @@ host_triplet = @host@
 subdir = data/pixmaps
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -67,20 +73,19 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(glabels_app_icondir)" \
-       "$(DESTDIR)$(glabels_mime_icondir)" \
-       "$(DESTDIR)$(glabels_pixmapsdir)"
-DATA = $(glabels_app_icon_DATA) $(glabels_mime_icon_DATA) \
-       $(glabels_pixmaps_DATA)
+am__installdirs = "$(DESTDIR)$(glabels_pixmapsdir)"
+DATA = $(glabels_pixmaps_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALL_LINGUAS = @ALL_LINGUAS@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
+CAIRO_REQUIRED = @CAIRO_REQUIRED@
 CATALOGS = @CATALOGS@
 CATOBJEXT = @CATOBJEXT@
 CC = @CC@
@@ -94,6 +99,7 @@ DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
 DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DLLTOOL = @DLLTOOL@
 DOC_USER_FORMATS = @DOC_USER_FORMATS@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
@@ -103,17 +109,23 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
+GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLABELS_BRANCH = @GLABELS_BRANCH@
 GLABELS_CFLAGS = @GLABELS_CFLAGS@
 GLABELS_LIBS = @GLABELS_LIBS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GLIB_REQUIRED = @GLIB_REQUIRED@
 GMOFILES = @GMOFILES@
 GMSGFMT = @GMSGFMT@
 GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
 GTK_REQUIRED = @GTK_REQUIRED@
-HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@
+GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@
 HELP_DIR = @HELP_DIR@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -129,31 +141,45 @@ INTLTOOL_PERL = @INTLTOOL_PERL@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
+LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@
+LIBBARCODE_LIBS = @LIBBARCODE_LIBS@
+LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@
 LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
 LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
 LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
+LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@
+LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@
 LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
 LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
-LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@
-LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@
-LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@
-LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@
+LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@
+LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@
+LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@
+LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@
+LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@
+LIBIEC16022_LIBS = @LIBIEC16022_LIBS@
+LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@
 LIBOBJS = @LIBOBJS@
+LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@
+LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@
+LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@
+LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBXML_REQUIRED = @LIBXML_REQUIRED@
+LIBZINT_CFLAGS = @LIBZINT_CFLAGS@
+LIBZINT_LIBS = @LIBZINT_LIBS@
+LIBZINT_REQUIRED = @LIBZINT_REQUIRED@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MKINSTALLDIRS = @MKINSTALLDIRS@
 MSGFMT = @MSGFMT@
 MSGFMT_OPTS = @MSGFMT_OPTS@
 MSGMERGE = @MSGMERGE@
-MYGAL_CFLAGS = @MYGAL_CFLAGS@
-MYGAL_LIBS = @MYGAL_LIBS@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -166,9 +192,13 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_REQUIRED = @PANGO_REQUIRED@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 POFILES = @POFILES@
 POSUB = @POSUB@
 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -178,18 +208,15 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
-UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@
-UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
 WARN_CFLAGS = @WARN_CFLAGS@
 XGETTEXT = @XGETTEXT@
-XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@
-XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 am__include = @am__include@
@@ -209,6 +236,7 @@ datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
 exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
 host = @host@
 host_alias = @host_alias@
 host_cpu = @host_cpu@
@@ -222,7 +250,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -238,28 +265,21 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-glabels_pixmapsdir = $(datadir)/pixmaps/glabels
+glabels_pixmapsdir = $(datadir)/$(GLABELS_BRANCH)/pixmaps
 glabels_pixmaps_DATA = \
-       glabels-splash.png      \
-       glabels-about-logo.png  \
+       glabels-logo.png        \
+       new-select.png          \
+       new-rotate.png          \
+       new-confirm.png         \
+       template-designer.png   \
        ex-rect-size.png        \
+       ex-ellipse-size.png     \
        ex-round-size.png       \
        ex-cd-size.png          \
        ex-1layout.png          \
        ex-2layouts.png         
 
-glabels_app_icondir = $(datadir)/pixmaps
-glabels_app_icon_DATA = \
-       glabels.png
-
-glabels_mime_icondir = $(datadir)/pixmaps
-glabels_mime_icon_DATA = \
-       glabels-application-x-glabels.png
-
-EXTRA_DIST = $(glabels_pixmaps_DATA)   \
-            $(glabels_app_icon_DATA)  \
-            $(glabels_mime_icon_DATA)
-
+EXTRA_DIST = $(glabels_pixmaps_DATA)
 all: all-am
 
 .SUFFIXES:
@@ -299,46 +319,6 @@ mostlyclean-libtool:
 
 clean-libtool:
        -rm -rf .libs _libs
-install-glabels_app_iconDATA: $(glabels_app_icon_DATA)
-       @$(NORMAL_INSTALL)
-       test -z "$(glabels_app_icondir)" || $(MKDIR_P) "$(DESTDIR)$(glabels_app_icondir)"
-       @list='$(glabels_app_icon_DATA)'; test -n "$(glabels_app_icondir)" || list=; \
-       for p in $$list; do \
-         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-         echo "$$d$$p"; \
-       done | $(am__base_list) | \
-       while read files; do \
-         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(glabels_app_icondir)'"; \
-         $(INSTALL_DATA) $$files "$(DESTDIR)$(glabels_app_icondir)" || exit $$?; \
-       done
-
-uninstall-glabels_app_iconDATA:
-       @$(NORMAL_UNINSTALL)
-       @list='$(glabels_app_icon_DATA)'; test -n "$(glabels_app_icondir)" || list=; \
-       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(glabels_app_icondir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(glabels_app_icondir)" && rm -f $$files
-install-glabels_mime_iconDATA: $(glabels_mime_icon_DATA)
-       @$(NORMAL_INSTALL)
-       test -z "$(glabels_mime_icondir)" || $(MKDIR_P) "$(DESTDIR)$(glabels_mime_icondir)"
-       @list='$(glabels_mime_icon_DATA)'; test -n "$(glabels_mime_icondir)" || list=; \
-       for p in $$list; do \
-         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-         echo "$$d$$p"; \
-       done | $(am__base_list) | \
-       while read files; do \
-         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(glabels_mime_icondir)'"; \
-         $(INSTALL_DATA) $$files "$(DESTDIR)$(glabels_mime_icondir)" || exit $$?; \
-       done
-
-uninstall-glabels_mime_iconDATA:
-       @$(NORMAL_UNINSTALL)
-       @list='$(glabels_mime_icon_DATA)'; test -n "$(glabels_mime_icondir)" || list=; \
-       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(glabels_mime_icondir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(glabels_mime_icondir)" && rm -f $$files
 install-glabels_pixmapsDATA: $(glabels_pixmaps_DATA)
        @$(NORMAL_INSTALL)
        test -z "$(glabels_pixmapsdir)" || $(MKDIR_P) "$(DESTDIR)$(glabels_pixmapsdir)"
@@ -400,7 +380,7 @@ check-am: all-am
 check: check-am
 all-am: Makefile $(DATA)
 installdirs:
-       for dir in "$(DESTDIR)$(glabels_app_icondir)" "$(DESTDIR)$(glabels_mime_icondir)" "$(DESTDIR)$(glabels_pixmapsdir)"; do \
+       for dir in "$(DESTDIR)$(glabels_pixmapsdir)"; do \
          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
@@ -448,8 +428,7 @@ info: info-am
 
 info-am:
 
-install-data-am: install-glabels_app_iconDATA \
-       install-glabels_mime_iconDATA install-glabels_pixmapsDATA
+install-data-am: install-glabels_pixmapsDATA
 
 install-dvi: install-dvi-am
 
@@ -493,8 +472,7 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-glabels_app_iconDATA \
-       uninstall-glabels_mime_iconDATA uninstall-glabels_pixmapsDATA
+uninstall-am: uninstall-glabels_pixmapsDATA
 
 .MAKE: install-am install-strip
 
@@ -502,15 +480,13 @@ uninstall-am: uninstall-glabels_app_iconDATA \
        distclean distclean-generic distclean-libtool distdir dvi \
        dvi-am html html-am info info-am install install-am \
        install-data install-data-am install-dvi install-dvi-am \
-       install-exec install-exec-am install-glabels_app_iconDATA \
-       install-glabels_mime_iconDATA install-glabels_pixmapsDATA \
+       install-exec install-exec-am install-glabels_pixmapsDATA \
        install-html install-html-am install-info install-info-am \
        install-man install-pdf install-pdf-am install-ps \
        install-ps-am install-strip installcheck installcheck-am \
        installdirs maintainer-clean maintainer-clean-generic \
        mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
-       ps ps-am uninstall uninstall-am uninstall-glabels_app_iconDATA \
-       uninstall-glabels_mime_iconDATA uninstall-glabels_pixmapsDATA
+       ps ps-am uninstall uninstall-am uninstall-glabels_pixmapsDATA
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/data/pixmaps/ex-ellipse-size.png b/data/pixmaps/ex-ellipse-size.png
new file mode 100644 (file)
index 0000000..456ec2e
Binary files /dev/null and b/data/pixmaps/ex-ellipse-size.png differ
diff --git a/data/pixmaps/glabels-about-logo.png b/data/pixmaps/glabels-about-logo.png
deleted file mode 100644 (file)
index 9997c67..0000000
Binary files a/data/pixmaps/glabels-about-logo.png and /dev/null differ
diff --git a/data/pixmaps/glabels-application-x-glabels.png b/data/pixmaps/glabels-application-x-glabels.png
deleted file mode 100644 (file)
index 59c749f..0000000
Binary files a/data/pixmaps/glabels-application-x-glabels.png and /dev/null differ
diff --git a/data/pixmaps/glabels-logo.png b/data/pixmaps/glabels-logo.png
new file mode 100644 (file)
index 0000000..e3066c9
Binary files /dev/null and b/data/pixmaps/glabels-logo.png differ
diff --git a/data/pixmaps/glabels-splash.png b/data/pixmaps/glabels-splash.png
deleted file mode 100644 (file)
index 713cb8a..0000000
Binary files a/data/pixmaps/glabels-splash.png and /dev/null differ
diff --git a/data/pixmaps/glabels.png b/data/pixmaps/glabels.png
deleted file mode 100644 (file)
index afb7ecf..0000000
Binary files a/data/pixmaps/glabels.png and /dev/null differ
diff --git a/data/pixmaps/new-confirm.png b/data/pixmaps/new-confirm.png
new file mode 100644 (file)
index 0000000..9361eb0
Binary files /dev/null and b/data/pixmaps/new-confirm.png differ
diff --git a/data/pixmaps/new-rotate.png b/data/pixmaps/new-rotate.png
new file mode 100644 (file)
index 0000000..22fc27d
Binary files /dev/null and b/data/pixmaps/new-rotate.png differ
diff --git a/data/pixmaps/new-select.png b/data/pixmaps/new-select.png
new file mode 100644 (file)
index 0000000..e9e4a5b
Binary files /dev/null and b/data/pixmaps/new-select.png differ
diff --git a/data/pixmaps/template-designer.png b/data/pixmaps/template-designer.png
new file mode 100644 (file)
index 0000000..278970c
Binary files /dev/null and b/data/pixmaps/template-designer.png differ
diff --git a/data/schemas/Makefile.am b/data/schemas/Makefile.am
new file mode 100644 (file)
index 0000000..b971934
--- /dev/null
@@ -0,0 +1,23 @@
+
+gsettings_files = \
+       org.gnome.glabels-3.gschema.xml.in
+
+gsettings_SCHEMAS = $(gsettings_files:.xml.in=.xml)
+
+@INTLTOOL_XML_NOMERGE_RULE@
+@GSETTINGS_RULES@
+
+
+EXTRA_DIST = \
+       $(gsettings_files)
+
+CLEANFILES = \
+       $(gsettings_SCHEMAS)
+
+DISTCLEANFILES = \
+       $(gsettings_files) \
+       $(gsettings_SCHEMAS)
+
+MAINTAINERCLEANFILES = \
+       $(DISTCLEANFILES) \
+       $(gsettings_SCHEMAS:.xml=.valid)
diff --git a/data/schemas/Makefile.in b/data/schemas/Makefile.in
new file mode 100644 (file)
index 0000000..6f24266
--- /dev/null
@@ -0,0 +1,458 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = data/schemas
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+       $(srcdir)/org.gnome.glabels-3.gschema.xml.in.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES = org.gnome.glabels-3.gschema.xml.in
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CAIRO_REQUIRED = @CAIRO_REQUIRED@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DLLTOOL = @DLLTOOL@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLABELS_BRANCH = @GLABELS_BRANCH@
+GLABELS_CFLAGS = @GLABELS_CFLAGS@
+GLABELS_LIBS = @GLABELS_LIBS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_REQUIRED = @GLIB_REQUIRED@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GTK_REQUIRED = @GTK_REQUIRED@
+GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@
+HELP_DIR = @HELP_DIR@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@
+LIBBARCODE_LIBS = @LIBBARCODE_LIBS@
+LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@
+LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
+LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
+LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
+LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@
+LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@
+LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
+LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
+LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@
+LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@
+LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@
+LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@
+LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@
+LIBIEC16022_LIBS = @LIBIEC16022_LIBS@
+LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@
+LIBOBJS = @LIBOBJS@
+LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@
+LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@
+LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@
+LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_REQUIRED = @LIBXML_REQUIRED@
+LIBZINT_CFLAGS = @LIBZINT_CFLAGS@
+LIBZINT_LIBS = @LIBZINT_LIBS@
+LIBZINT_REQUIRED = @LIBZINT_REQUIRED@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_REQUIRED = @PANGO_REQUIRED@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+gsettings_files = \
+       org.gnome.glabels-3.gschema.xml.in
+
+gsettings_SCHEMAS = $(gsettings_files:.xml.in=.xml)
+EXTRA_DIST = \
+       $(gsettings_files)
+
+CLEANFILES = \
+       $(gsettings_SCHEMAS)
+
+DISTCLEANFILES = \
+       $(gsettings_files) \
+       $(gsettings_SCHEMAS)
+
+MAINTAINERCLEANFILES = \
+       $(DISTCLEANFILES) \
+       $(gsettings_SCHEMAS:.xml=.valid)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/schemas/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu data/schemas/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+org.gnome.glabels-3.gschema.xml.in: $(top_builddir)/config.status $(srcdir)/org.gnome.glabels-3.gschema.xml.in.in
+       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+       -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+       distclean distclean-generic distclean-libtool distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
+       install-info install-info-am install-man install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+
+
+@INTLTOOL_XML_NOMERGE_RULE@
+@GSETTINGS_RULES@
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/data/schemas/org.gnome.glabels-3.gschema.xml.in b/data/schemas/org.gnome.glabels-3.gschema.xml.in
new file mode 100644 (file)
index 0000000..01a4e0b
--- /dev/null
@@ -0,0 +1,180 @@
+<schemalist>
+
+
+  <schema id="org.gnome.glabels-3" path="/apps/glabels-3/" gettext-domain="glabels-3.0">
+    <child name="ui" schema="org.gnome.glabels.ui"/>
+    <child name="locale" schema="org.gnome.glabels.locale"/>
+    <child name="objects" schema="org.gnome.glabels.objects"/>
+    <child name="history" schema="org.gnome.glabels.history"/>
+  </schema>
+
+
+  <schema id="org.gnome.glabels-3.ui" path="/apps/glabels-3/ui/" gettext-domain="glabels-3.0">
+
+    <key name="main-toolbar-visible" type="b">
+      <default>true</default>
+      <_summary>Show/hide main toolbar.</_summary>
+      <_description>Controls visibility of main toolbar.</_description>
+    </key>
+
+    <key name="drawing-toolbar-visible" type="b">
+      <default>true</default>
+      <_summary>Show/hide drawing toolbar.</_summary>
+      <_description>Controls visibility of drawing toolbar.</_description>
+    </key>
+
+    <key name="property-toolbar-visible" type="b">
+      <default>true</default>
+      <_summary>Show/hide property toolbar.</_summary>
+      <_description>Controls visibility of property toolbar.</_description>
+    </key>
+
+    <key name="grid-visible" type="b">
+      <default>false</default>
+      <_summary>Show/hide grid.</_summary>
+      <_description>Controls visibility of grid.</_description>
+    </key>
+
+    <key name="markup-visible" type="b">
+      <default>true</default>
+      <_summary>Show/hide markup.</_summary>
+      <_description>Controls visibility of markup lines.</_description>
+    </key>
+
+    <key name="max-recents" type="i">
+      <default>-1</default>
+      <_summary>Maximum recent files.</_summary>
+      <_description>Controls maximum number of recent files tracked.</_description>
+    </key>
+
+  </schema>
+
+
+  <schema id="org.gnome.glabels-3.locale" path="/apps/glabels-3/locale/" gettext-domain="glabels-3.0">
+
+    <key name="units" type="s">
+      <choices>
+       <choice value=""/>
+       <choice value="pt"/>
+       <choice value="in"/>
+       <choice value="mm"/>
+      </choices>
+      <default>''</default>
+      <_summary>Units.</_summary>
+      <_description>The default unit of measurement.</_description>
+    </key>
+
+    <key name="default-page-size" type="s">
+      <choices>
+       <choice value=""/>
+       <choice value="A4"/>
+       <choice value="US-Letter"/>
+      </choices>
+      <default>''</default>
+      <_summary>Default page size.</_summary>
+      <_description>The preferred page size when searching templates.</_description>
+    </key>
+
+  </schema>
+
+
+  <schema id="org.gnome.glabels-3.objects" path="/apps/glabels-3/objects/" gettext-domain="glabels-3.0">
+    <key name="default-font-family" type="s">
+      <default>'Sans'</default>
+      <_summary>Default font family.</_summary>
+      <_description>The default font family for new text objects.</_description>
+    </key>
+
+    <key name="default-font-size" type="d">
+      <range min="0.01" max="250"/>
+      <default>12</default>
+      <_summary>Default font size.</_summary>
+      <_description>The default font size for new text objects.</_description>
+    </key>
+
+    <key name="default-font-weight" type="s">
+      <choices>
+       <choice value="Regular"/>
+       <choice value="Bold"/>
+      </choices>
+      <default>'Regular'</default>
+      <_summary>Default font weight.</_summary>
+      <_description>The default font weight for new text objects.</_description>
+    </key>
+
+    <key name="default-font-italic-flag" type="b">
+      <default>false</default>
+      <_summary>Default font italic flag.</_summary>
+      <_description>The default font italic state for new text objects.</_description>
+    </key>
+
+    <key name="default-text-color" type="u">
+      <default>0x000000ff</default>
+      <_summary>Default text color.</_summary>
+      <_description>The default color of text for new text objects (0xRRGGBBAA).</_description>
+    </key>
+
+    <key name="default-text-alignment" type="s">
+      <choices>
+       <choice value="Left"/>
+       <choice value="Center"/>
+       <choice value="Right"/>
+      </choices>
+      <default>'Left'</default>
+      <_summary>Default text alignment.</_summary>
+      <_description>The default text alignment for new text objects.</_description>
+    </key>
+
+    <key name="default-text-line-spacing" type="d">
+      <range min="0.1" max="5"/>
+      <default>1.0</default>
+      <_summary>Default text line spacing.</_summary>
+      <_description>The default line spacing for new text objects.</_description>
+    </key>
+
+    <key name="default-line-width" type="d">
+      <range min="0.25" max="10"/>
+      <default>1.0</default>
+      <_summary>Default line width.</_summary>
+      <_description>The default line width for new objects.</_description>
+    </key>
+
+    <key name="default-line-color" type="u">
+      <default>0x000000ff</default>
+      <_summary>Default line color.</_summary>
+      <_description>The default line color new objects (0xRRGGBBAA).</_description>
+    </key>
+
+    <key name="default-fill-color" type="u">
+      <default>0x00ff00ff</default>
+      <_summary>Default fill color.</_summary>
+      <_description>The default fill color new objects (0xRRGGBBAA).</_description>
+    </key>
+
+  </schema>
+
+
+  <schema id="org.gnome.glabels-3.history" path="/apps/glabels-3/history/" gettext-domain="glabels-3.0">
+
+    <key name="recent-templates" type="as">
+      <default>[]</default>
+      <_summary>Recent templates.</_summary>
+      <_description>Recently used templates.</_description>
+    </key>
+
+    <key name="recent-fonts" type="as">
+      <default>[]</default>
+      <_summary>Recent fonts.</_summary>
+      <_description>Recently used font families.</_description>
+    </key>
+
+    <key name="recent-colors" type="au">
+      <default>[]</default>
+      <_summary>Recent colors.</_summary>
+      <_description>Recently created custom colors.</_description>
+    </key>
+
+  </schema>
+
+
+</schemalist>
diff --git a/data/schemas/org.gnome.glabels-3.gschema.xml.in.in b/data/schemas/org.gnome.glabels-3.gschema.xml.in.in
new file mode 100644 (file)
index 0000000..c7e7ea9
--- /dev/null
@@ -0,0 +1,180 @@
+<schemalist>
+
+
+  <schema id="org.gnome.glabels-3" path="/apps/glabels-3/" gettext-domain="@GETTEXT_PACKAGE@">
+    <child name="ui" schema="org.gnome.glabels.ui"/>
+    <child name="locale" schema="org.gnome.glabels.locale"/>
+    <child name="objects" schema="org.gnome.glabels.objects"/>
+    <child name="history" schema="org.gnome.glabels.history"/>
+  </schema>
+
+
+  <schema id="org.gnome.glabels-3.ui" path="/apps/glabels-3/ui/" gettext-domain="@GETTEXT_PACKAGE@">
+
+    <key name="main-toolbar-visible" type="b">
+      <default>true</default>
+      <_summary>Show/hide main toolbar.</_summary>
+      <_description>Controls visibility of main toolbar.</_description>
+    </key>
+
+    <key name="drawing-toolbar-visible" type="b">
+      <default>true</default>
+      <_summary>Show/hide drawing toolbar.</_summary>
+      <_description>Controls visibility of drawing toolbar.</_description>
+    </key>
+
+    <key name="property-toolbar-visible" type="b">
+      <default>true</default>
+      <_summary>Show/hide property toolbar.</_summary>
+      <_description>Controls visibility of property toolbar.</_description>
+    </key>
+
+    <key name="grid-visible" type="b">
+      <default>false</default>
+      <_summary>Show/hide grid.</_summary>
+      <_description>Controls visibility of grid.</_description>
+    </key>
+
+    <key name="markup-visible" type="b">
+      <default>true</default>
+      <_summary>Show/hide markup.</_summary>
+      <_description>Controls visibility of markup lines.</_description>
+    </key>
+
+    <key name="max-recents" type="i">
+      <default>-1</default>
+      <_summary>Maximum recent files.</_summary>
+      <_description>Controls maximum number of recent files tracked.</_description>
+    </key>
+
+  </schema>
+
+
+  <schema id="org.gnome.glabels-3.locale" path="/apps/glabels-3/locale/" gettext-domain="@GETTEXT_PACKAGE@">
+
+    <key name="units" type="s">
+      <choices>
+       <choice value=""/>
+       <choice value="pt"/>
+       <choice value="in"/>
+       <choice value="mm"/>
+      </choices>
+      <default>''</default>
+      <_summary>Units.</_summary>
+      <_description>The default unit of measurement.</_description>
+    </key>
+
+    <key name="default-page-size" type="s">
+      <choices>
+       <choice value=""/>
+       <choice value="A4"/>
+       <choice value="US-Letter"/>
+      </choices>
+      <default>''</default>
+      <_summary>Default page size.</_summary>
+      <_description>The preferred page size when searching templates.</_description>
+    </key>
+
+  </schema>
+
+
+  <schema id="org.gnome.glabels-3.objects" path="/apps/glabels-3/objects/" gettext-domain="@GETTEXT_PACKAGE@">
+    <key name="default-font-family" type="s">
+      <default>'Sans'</default>
+      <_summary>Default font family.</_summary>
+      <_description>The default font family for new text objects.</_description>
+    </key>
+
+    <key name="default-font-size" type="d">
+      <range min="0.01" max="250"/>
+      <default>12</default>
+      <_summary>Default font size.</_summary>
+      <_description>The default font size for new text objects.</_description>
+    </key>
+
+    <key name="default-font-weight" type="s">
+      <choices>
+       <choice value="Regular"/>
+       <choice value="Bold"/>
+      </choices>
+      <default>'Regular'</default>
+      <_summary>Default font weight.</_summary>
+      <_description>The default font weight for new text objects.</_description>
+    </key>
+
+    <key name="default-font-italic-flag" type="b">
+      <default>false</default>
+      <_summary>Default font italic flag.</_summary>
+      <_description>The default font italic state for new text objects.</_description>
+    </key>
+
+    <key name="default-text-color" type="u">
+      <default>0x000000ff</default>
+      <_summary>Default text color.</_summary>
+      <_description>The default color of text for new text objects (0xRRGGBBAA).</_description>
+    </key>
+
+    <key name="default-text-alignment" type="s">
+      <choices>
+       <choice value="Left"/>
+       <choice value="Center"/>
+       <choice value="Right"/>
+      </choices>
+      <default>'Left'</default>
+      <_summary>Default text alignment.</_summary>
+      <_description>The default text alignment for new text objects.</_description>
+    </key>
+
+    <key name="default-text-line-spacing" type="d">
+      <range min="0.1" max="5"/>
+      <default>1.0</default>
+      <_summary>Default text line spacing.</_summary>
+      <_description>The default line spacing for new text objects.</_description>
+    </key>
+
+    <key name="default-line-width" type="d">
+      <range min="0.25" max="10"/>
+      <default>1.0</default>
+      <_summary>Default line width.</_summary>
+      <_description>The default line width for new objects.</_description>
+    </key>
+
+    <key name="default-line-color" type="u">
+      <default>0x000000ff</default>
+      <_summary>Default line color.</_summary>
+      <_description>The default line color new objects (0xRRGGBBAA).</_description>
+    </key>
+
+    <key name="default-fill-color" type="u">
+      <default>0x00ff00ff</default>
+      <_summary>Default fill color.</_summary>
+      <_description>The default fill color new objects (0xRRGGBBAA).</_description>
+    </key>
+
+  </schema>
+
+
+  <schema id="org.gnome.glabels-3.history" path="/apps/glabels-3/history/" gettext-domain="@GETTEXT_PACKAGE@">
+
+    <key name="recent-templates" type="as">
+      <default>[]</default>
+      <_summary>Recent templates.</_summary>
+      <_description>Recently used templates.</_description>
+    </key>
+
+    <key name="recent-fonts" type="as">
+      <default>[]</default>
+      <_summary>Recent fonts.</_summary>
+      <_description>Recently used font families.</_description>
+    </key>
+
+    <key name="recent-colors" type="au">
+      <default>[]</default>
+      <_summary>Recent colors.</_summary>
+      <_description>Recently created custom colors.</_description>
+    </key>
+
+  </schema>
+
+
+</schemalist>
diff --git a/data/templates/Makefile.am b/data/templates/Makefile.am
deleted file mode 100644 (file)
index 4d38e06..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-templatesdir = $(datadir)/glabels/templates
-
-templates_DATA = \
-       paper-sizes.xml \
-       categories.xml \
-       avery-iso-templates.xml \
-       avery-other-templates.xml \
-       avery-us-templates.xml \
-       brother-other-templates.xml \
-       dymo-other-templates.xml \
-       misc-iso-templates.xml \
-       misc-other-templates.xml \
-       misc-us-templates.xml \
-       pearl-templates.xml \
-       zweckform-iso-templates.xml
-
-EXTRA_DIST = $(templates_DATA)
-
diff --git a/data/templates/Makefile.in b/data/templates/Makefile.in
deleted file mode 100644 (file)
index c60ec5f..0000000
+++ /dev/null
@@ -1,465 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = data/templates
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-       $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-SOURCES =
-DIST_SOURCES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(templatesdir)"
-DATA = $(templates_DATA)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ALL_LINGUAS = @ALL_LINGUAS@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CATALOGS = @CATALOGS@
-CATOBJEXT = @CATOBJEXT@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIRNAME = @DATADIRNAME@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
-DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
-DOC_USER_FORMATS = @DOC_USER_FORMATS@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
-GLABELS_CFLAGS = @GLABELS_CFLAGS@
-GLABELS_LIBS = @GLABELS_LIBS@
-GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
-GLIB_REQUIRED = @GLIB_REQUIRED@
-GMOFILES = @GMOFILES@
-GMSGFMT = @GMSGFMT@
-GREP = @GREP@
-GTKDOC_CHECK = @GTKDOC_CHECK@
-GTK_REQUIRED = @GTK_REQUIRED@
-HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@
-HELP_DIR = @HELP_DIR@
-HTML_DIR = @HTML_DIR@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INSTOBJEXT = @INSTOBJEXT@
-INTLLIBS = @INTLLIBS@
-INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
-INTLTOOL_MERGE = @INTLTOOL_MERGE@
-INTLTOOL_PERL = @INTLTOOL_PERL@
-INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
-LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
-LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
-LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
-LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
-LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@
-LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@
-LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@
-LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIBXML_REQUIRED = @LIBXML_REQUIRED@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-MSGFMT = @MSGFMT@
-MSGFMT_OPTS = @MSGFMT_OPTS@
-MSGMERGE = @MSGMERGE@
-MYGAL_CFLAGS = @MYGAL_CFLAGS@
-MYGAL_LIBS = @MYGAL_LIBS@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OMF_DIR = @OMF_DIR@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-POFILES = @POFILES@
-POSUB = @POSUB@
-PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
-PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@
-UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
-USE_NLS = @USE_NLS@
-VERSION = @VERSION@
-WARN_CFLAGS = @WARN_CFLAGS@
-XGETTEXT = @XGETTEXT@
-XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@
-XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-templatesdir = $(datadir)/glabels/templates
-templates_DATA = \
-       paper-sizes.xml \
-       categories.xml \
-       avery-iso-templates.xml \
-       avery-other-templates.xml \
-       avery-us-templates.xml \
-       brother-other-templates.xml \
-       dymo-other-templates.xml \
-       misc-iso-templates.xml \
-       misc-other-templates.xml \
-       misc-us-templates.xml \
-       pearl-templates.xml \
-       zweckform-iso-templates.xml
-
-EXTRA_DIST = $(templates_DATA)
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-       @for dep in $?; do \
-         case '$(am__configure_deps)' in \
-           *$$dep*) \
-             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-               && { if test -f $@; then exit 0; else break; fi; }; \
-             exit 1;; \
-         esac; \
-       done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/templates/Makefile'; \
-       $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu data/templates/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-       @case '$?' in \
-         *config.status*) \
-           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-         *) \
-           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-       esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-mostlyclean-libtool:
-       -rm -f *.lo
-
-clean-libtool:
-       -rm -rf .libs _libs
-install-templatesDATA: $(templates_DATA)
-       @$(NORMAL_INSTALL)
-       test -z "$(templatesdir)" || $(MKDIR_P) "$(DESTDIR)$(templatesdir)"
-       @list='$(templates_DATA)'; test -n "$(templatesdir)" || list=; \
-       for p in $$list; do \
-         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-         echo "$$d$$p"; \
-       done | $(am__base_list) | \
-       while read files; do \
-         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(templatesdir)'"; \
-         $(INSTALL_DATA) $$files "$(DESTDIR)$(templatesdir)" || exit $$?; \
-       done
-
-uninstall-templatesDATA:
-       @$(NORMAL_UNINSTALL)
-       @list='$(templates_DATA)'; test -n "$(templatesdir)" || list=; \
-       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(templatesdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(templatesdir)" && rm -f $$files
-tags: TAGS
-TAGS:
-
-ctags: CTAGS
-CTAGS:
-
-
-distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-       list='$(DISTFILES)'; \
-         dist_files=`for file in $$list; do echo $$file; done | \
-         sed -e "s|^$$srcdirstrip/||;t" \
-             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-       case $$dist_files in \
-         */*) $(MKDIR_P) `echo "$$dist_files" | \
-                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-                          sort -u` ;; \
-       esac; \
-       for file in $$dist_files; do \
-         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         if test -d $$d/$$file; then \
-           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-           if test -d "$(distdir)/$$file"; then \
-             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-           fi; \
-           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-           fi; \
-           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-         else \
-           test -f "$(distdir)/$$file" \
-           || cp -p $$d/$$file "$(distdir)/$$file" \
-           || exit 1; \
-         fi; \
-       done
-check-am: all-am
-check: check-am
-all-am: Makefile $(DATA)
-installdirs:
-       for dir in "$(DESTDIR)$(templatesdir)"; do \
-         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-       done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-       @echo "This command is intended for maintainers to use"
-       @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
-       -rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-templatesDATA
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-       -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-templatesDATA
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am check check-am clean clean-generic clean-libtool \
-       distclean distclean-generic distclean-libtool distdir dvi \
-       dvi-am html html-am info info-am install install-am \
-       install-data install-data-am install-dvi install-dvi-am \
-       install-exec install-exec-am install-html install-html-am \
-       install-info install-info-am install-man install-pdf \
-       install-pdf-am install-ps install-ps-am install-strip \
-       install-templatesDATA installcheck installcheck-am installdirs \
-       maintainer-clean maintainer-clean-generic mostlyclean \
-       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-       uninstall uninstall-am uninstall-templatesDATA
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/data/templates/avery-iso-templates.xml b/data/templates/avery-iso-templates.xml
deleted file mode 100644 (file)
index 269c926..0000000
+++ /dev/null
@@ -1,316 +0,0 @@
-<?xml version="1.0"?>
-<Glabels-templates>
-
-
-  <!-- ******************************************************************** -->
-  <!-- Avery A4 products (and look-alikes)                                  -->
-  <!-- ******************************************************************** -->
-
-  <!-- =================================================================== -->
-  <!-- Avery L4732 family: Mini Labels                                     -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="L4732" size="A4" _description="Mini Labels">
-    <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Label-rectangle id="0" width="35.6mm" height="16.9mm" round="1.5mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="1mm"/>
-      <Layout nx="5" ny="16" x0="11mm" y0="13mm" dx="38.1mm" dy="16.9mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery L6015 family: CD/DVD Labels, 2 per sheet                      -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="L6015" size="A4" _description="CD/DVD Labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="165.827pt" hole="58.1102pt" waste="9.07087pt">
-      <Markup-margin size="9pt"/>
-      <Layout nx="1" ny="2" x0="131.811pt" y0="60.6614pt" dx="349.795pt" dy="392.4pt"/>
-    </Label-cd>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 6121 family: Allround labels.                                 -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="6121" size="A4" _description="Allround labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="107.928pt" height="60.12pt" round="0pt" x_waste="0pt" y_waste="0pt">
-      <Markup-margin size="8.496pt"/>
-      <Layout nx="5" ny="13" x0="26.928pt" y0="29.736pt" dx="107.928pt" dy="60.12pt"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 7160 family: Mailing labels, 63.5 x 38.1 mm, 21 per sheet     -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="7160" size="A4" _description="Mailing labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="181.4" height="108.0" round="5">
-      <Markup-margin size="5"/>
-      <Layout nx="3" ny="7" x0="21.2" y0="43.9" dx="187.2" dy="108.0"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="L7160"/>
-    <Alias brand="Avery" part="J8160"/>
-    <Alias brand="DECAdry" part="DLW-1731"/>
-    <Alias brand="DECAdry" part="OLW-4731"/>
-    <Alias brand="DECAdry" part="OLW-7131"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 7161 family: Mailing labels, 63.5 x 46.6 mm, 18 per sheet     -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="7161" size="A4" _description="Mailing labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="180.2" height="132.6" round="7">
-      <Markup-margin size="5"/>
-      <Layout nx="3" ny="6" x0="21" y0="23" dx="186.9" dy="132.5"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="L7161"/>
-    <Alias brand="Avery" part="J8161"/>
-  </Template>
-
-  <!-- ================================================================== -->  
-  <!-- Avery 7162 family: Mailing labels, 99.1 x 33.9 mm, 16 per sheet    -->  
-  <!-- ================================================================== -->  
-  <Template brand="Avery" part="7162" size="A4" _description="Mailing labels">  
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="280.9" height="96.1" round="5">  
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="8" x0="11.3" y0="36.8" dx="290.5" dy="96.1"/>  
-    </Label-rectangle>  
-    <Alias brand="Avery" part="L7162"/>  
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 7163 family: Mailing labels, 99.1 x 38.1 mm, 14 per sheet     -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="7163" size="A4" _description="Mailing labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="280.9" height="108" round="5">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="7" x0="9.5" y0="43" dx="292" dy="108"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="L7163"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 7164 family: Address labels, 63.50 x 71.98 mm, 12 per sheet   -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="7164" size="A4" _description="Address labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="180" height="204.038" round="8.5">
-      <Markup-margin size="5"/>
-      <Layout nx="3" ny="4" x0="20.84" y0="10" dx="187.08" dy="204.038"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="J8164"/>
-    <Alias brand="Avery" part="L7164"/>
-    <Alias brand="Biltema" part="23-756"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 7165 family: Address labels                                   -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="7165" size="A4" _description="Address Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="280.8pt" height="191.991pt" round="0pt" waste="0pt">
-      <Markup-margin size="5.66929pt"/>
-      <Layout nx="2" ny="4" x0="13.2378pt" y0="36.9638pt" dx="288.113pt" dy="191.991pt"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="J8165"/>
-    <Alias brand="Avery" part="L7165"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 7169 family: shipping labels, 99.1 x 139.0 mm, 4 per sheet    -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="7169" size="A4" _description="Shipping labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="280.9" height="394.0" round="6">
-      <Markup-margin size="6"/>
-      <Layout nx="2" ny="2" x0="14.2" y0="20.0" dx="287.7" dy="394.0"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="L7169"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 7414 family: Business Cards, 52mm x 90mm, 10 per sheet        -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="7414" size="A4" _description="Business Cards">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Label-rectangle id="0" width="255.1" height="147.4" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="5" x0="42.51" y0="52.44" dx="255.1" dy="147.4"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="L7414"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 7664 family: Diskette Labels, 70mm x 71.9 mm, 8 per sheet     -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="7664" size="A4" _description="Diskette Labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-rectangle id="0" width="70mm" height="71.9mm" round="2.5mm">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="4" x0="17mm" y0="5mm" dx="104.5mm" dy="72mm"/> 
-    </Label-rectangle>
-    <Alias brand="Avery" part="L7664"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery L7676 family: CD/DVD Labels, 2 per sheet                      -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="L7676" size="A4" _description="CD/DVD Labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="165.827pt" hole="24.9449pt" waste="5.66929pt">
-      <Markup-margin size="5.66929pt"/>
-      <Layout nx="1" ny="2" x0="131.811pt" y0="62.3622pt" dx="342.992pt" dy="388.346pt"/>
-    </Label-cd>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 8414 family: Business Cards, 50.8 x 87.0 mm, 10 per sheet     -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="8414" size="A4" _description="Business Cards">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Label-rectangle id="0" width="246.6" height="144" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="5" x0="42" y0="57.890" dx="264" dy="144"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="J8414"/>
-  </Template>
-
-  <!-- =============================================================== -->
-  <!-- Avery J8435: CD Inlets Booklet part                         -->
-  <!-- =============================================================== -->
-  <Template brand="Avery" part="8435A" size="A4" _description="CD Booklet">
-    <Meta category="media"/>
-    <Label-rectangle id="0" width="155mm" height="125mm" round="0">
-      <Markup-margin size="2mm"/>
-      <Markup-line x1="32mm" y1="0mm" x2="32mm" y2="125mm"/>
-      <Layout nx="1" ny="1" x0="27.5mm" y0="22mm" dx="155mm" dy="125mm"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="J8435A"/>
-    <Alias brand="Avery" part="32250A"/>
-    <Alias brand="Zweckform" part="32250A"/>
-    <Alias brand="Zweckform" part="J8435A"/>
-  </Template>
-
-  <!-- =============================================================== -->
-  <!-- Avery J8435: CD Inlets Inlet part                           -->
-  <!-- =============================================================== -->
-  <Template brand="Avery" part="8435B" size="A4" _description="CD Inlet">
-    <Meta category="media"/>
-    <Label-rectangle id="0" width="155mm" height="122mm" round="0">
-      <Markup-margin size="2mm"/>
-      <Markup-line x1="8.5mm" y1="0mm" x2="8.5mm" y2="122mm"/>
-      <Markup-line x1="146.5mm" y1="0mm" x2="146.5mm" y2="122mm"/>
-      <Layout nx="1" ny="1" x0="27.5mm" y0="21mm" dx="155mm" dy="122mm"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="J8435B"/>
-    <Alias brand="Avery" part="32250B"/>
-    <Alias brand="Zweckform" part="32250B"/>
-    <Alias brand="Zweckform" part="J8435B"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 8651 family: Mailing labels, 38.1 x 21.2 mm, 65 per sheet     -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="8651" size="A4" _description="Mini Address Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="108" height="60.09" round="5">
-      <Markup-margin size="5"/>
-      <Layout nx="5" ny="13" x0="13.32" y0="30.90" dx="115.09" dy="60.09"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="L8651"/>
-    <Alias brand="Avery" part="J8651"/>
-    <Alias brand="Avery" part="J8551"/>
-    <Alias brand="Avery" part="L7651"/>
-    <Alias brand="Avery" part="L7551"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 8666 family: Diskette labels (face only), 70 x 52 mm, 10 per  -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="8666" size="A4" _description="Diskette labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-rectangle id="0" width="198.4" height="147.4" round="5">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="5" x0="66" y0="53" dx="264" dy="147"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="J8666"/>
-  </Template>
-
-  <!-- =============================================================== -->
-  <!-- Avery J8676A: CD/DVD Labels 2 per sheet                         -->
-  <!-- =============================================================== -->
-  <Template brand="Avery" part="8676" size="A4" _description="CD/DVD Labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="166.5" hole="17" waste="5">
-      <Markup-margin size="5"/>
-      <Layout nx="1" ny="2" x0="130" y0="59.5" dx="0" dy="388"/>        
-    </Label-cd>
-    <Alias brand="Avery" part="J8676"/>
-  </Template>
-
-  <!-- =============================================================== -->
-  <!-- Avery 18036 Mailing Labels, 70mm x 32mm, 27 per sheet           -->
-  <!-- =============================================================== -->
-  <Template brand="Avery" part="18036" size="A4" _description="Mailing Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="198" height="91" round="0">
-      <Markup-margin size="10"/>
-      <Layout nx="3" ny="9" x0="0" y0="13" dx="198" dy="91"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- ============================================================ -->
-  <!-- Avery 32015: Business Cards                                  -->
-  <!-- ============================================================ -->
-  <Template brand="Avery" part="32015" size="A4" _description="Business Cards">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Label-rectangle id="0" width="85mm" height="54mm" round="0mm">
-      <Markup-margin size="5mm"/>
-      <Layout nx="2" ny="4" x0="17mm" y0="31.5mm" dx="91mm" dy="60mm"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="C32015"/>
-    <Alias brand="Zweckform" part="32015"/>
-  </Template>
-
-
-  <!-- ============================================================ -->
-  <!-- Avery 38931 Family: Rectangular Labels                       -->
-  <!-- ============================================================ -->
-  <Template brand="Avery" part="38931" size="A4" description="Rectangular Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="70mm" height="25mm" round="0mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3mm"/>
-      <Layout nx="3" ny="11" x0="0mm" y0="10mm" dx="70mm" dy="25mm"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="DL33"/>
-    <Alias brand="Avery" part="CR33"/>
-  </Template>
-
-
-</Glabels-templates>
-
-
-
-
diff --git a/data/templates/avery-other-templates.xml b/data/templates/avery-other-templates.xml
deleted file mode 100644 (file)
index 796657c..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<Glabels-templates xmlns="http://snaught.com/glabels/2.0/">
-
-
-  <!-- ******************************************************************** -->
-  <!-- Avery non-standard size products (not US-Letter/Legal or ISO)        -->
-  <!-- ******************************************************************** -->
-
-  <!-- =================================================================== -->
-  <!-- Avery 06141 family: File Folder Labels, 5/8'' x 2_3/4'', 7 per sheet-->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="06141" size="Other" width="207pt" height="351pt"
-            _description="File Folder Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="198pt" height="45pt" round="4.5pt" waste="0pt">
-      <Markup-margin size="4.5pt"/>
-      <Layout nx="1" ny="7" x0="4.5pt" y0="4.5pt" dx="198pt" dy="49.5pt"/>
-    </Label-rectangle>
-  </Template>
-
-
-</Glabels-templates>
diff --git a/data/templates/avery-us-templates.xml b/data/templates/avery-us-templates.xml
deleted file mode 100644 (file)
index 2c2bab6..0000000
+++ /dev/null
@@ -1,807 +0,0 @@
-<?xml version="1.0"?>
-<Glabels-templates>
-
-
-  <!-- ******************************************************************** -->
-  <!-- ******************************************************************** -->
-  <!--                                                                      -->
-  <!-- Avery US-Letter products (and look-alikes)                           -->
-  <!--                                                                      -->
-  <!-- ******************************************************************** -->
-  <!-- ******************************************************************** -->
-
-  <!-- =================================================================== -->
-  <!-- Avery 5160 family: Address Labels, 1'' x 2_5/8'', 30 per sheet    x -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5160" size="US-Letter" _description="Address Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="2.625in" height="1in" round="0.0625in">
-      <Markup-margin size="0.0625in"/>
-      <Layout nx="3" ny="10" x0="0.1875in" y0="0.5in" dx="2.75in" dy="1in"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="5260"/>
-    <Alias brand="Avery" part="5510"/>
-    <Alias brand="Avery" part="5520"/>
-    <Alias brand="Avery" part="5560"/>
-    <Alias brand="Avery" part="5810"/>
-    <Alias brand="Avery" part="5920"/>
-    <Alias brand="Avery" part="5960"/>
-    <Alias brand="Avery" part="5970"/>
-    <Alias brand="Avery" part="5971"/>
-    <Alias brand="Avery" part="5972"/>
-    <Alias brand="Avery" part="5979"/>
-    <Alias brand="Avery" part="5980"/>
-    <Alias brand="Avery" part="6231"/>
-    <Alias brand="Avery" part="6233"/>
-    <Alias brand="Avery" part="6245"/>
-    <Alias brand="Avery" part="6460"/>
-    <Alias brand="Avery" part="6498"/>
-    <Alias brand="Avery" part="8160"/>
-    <Alias brand="Avery" part="8250"/>
-    <Alias brand="Avery" part="8460"/>
-    <Alias brand="Avery" part="8560"/>
-    <Alias brand="Avery" part="8620"/>
-    <Alias brand="Avery" part="8660"/>
-    <Alias brand="Avery" part="8810"/>
-    <Alias brand="Avery" part="8920"/>
-    <Alias brand="Avery" part="8930"/>
-    <Alias brand="Avery" part="15160"/>
-    <Alias brand="Avery" part="18160"/>
-    <Alias brand="Avery" part="18660"/>
-    <Alias brand="Avery" part="25160"/>
-    <!-- Look alikes -->
-    <Alias brand="Maco" part="ll5805"/>
-    <Alias brand="Worldlabel" part="OL875"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 5161 family: Address Labels, 1'' x 4'', 20 per sheet        x -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5161" size="US-Letter" _description="Address Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="4in" height="1in" round="0.0625in">
-      <Markup-margin size="0.0625in"/>
-      <Layout nx="2" ny="10" x0="0.15625in" y0="0.5in" dx="4.1875in" dy="1in"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="5261"/>
-    <Alias brand="Avery" part="5961"/>
-    <Alias brand="Avery" part="8161"/>
-    <Alias brand="Avery" part="8461"/>
-    <Alias brand="Avery" part="18161"/>
-    <!-- Look alikes -->
-    <Alias brand="Worldlabel" part="OL75"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 5162 family: Address Labels, 1_1/3'' x 4'', 14 per sheet    x -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5162" size="US-Letter" _description="Address Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="4in" height="1.333333333in" round="0.0625in">
-      <Markup-margin size="0.0625in"/>
-      <Layout nx="2" ny="7"
-              x0="0.15625in" y0="0.833333333in" dx="4.1875in" dy="1.333333333in"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="5262"/>
-    <Alias brand="Avery" part="5512"/>
-    <Alias brand="Avery" part="5522"/>
-    <Alias brand="Avery" part="5922"/>
-    <Alias brand="Avery" part="5962"/>
-    <Alias brand="Avery" part="8162"/>
-    <Alias brand="Avery" part="8252"/>
-    <Alias brand="Avery" part="8462"/>
-    <Alias brand="Avery" part="8662"/>
-    <Alias brand="Avery" part="8922"/>
-    <Alias brand="Avery" part="8932"/>
-    <Alias brand="Avery" part="15162"/>
-    <Alias brand="Avery" part="18162"/>
-    <Alias brand="Avery" part="18662"/>
-    <!-- Look alikes -->
-    <Alias brand="Worldlabel" part="OL100"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 5305 family: Tent Cards, 2_1/2'' x 8_1/2'', 2 per sheet       -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5305" size="US-Letter" _description="Tent Cards">
-    <Meta category="card"/>
-    <Label-rectangle id="0" width="612pt" height="180pt" round="0pt" x_waste="0pt" y_waste="0pt">
-      <Markup-margin size="27pt"/>
-      <Layout nx="1" ny="2" x0="0pt" y0="216pt" dx="0pt" dy="360pt"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 6879 family: Address Labels, 1_1/4'' x 3_3/4'', 12 per sheetx -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="6879" size="US-Letter" _description="Address Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="3.75in" height="1.25in" round="0.0625in" waste="5pt">
-      <Markup-margin size="0.0625in"/>
-      <Layout nx="2" ny="6" x0="0.375in" y0="1.125in" dx="4in" dy="1.5in"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="8769"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 5159 family: Address Labels, 1_1/2'' x 4'', 14 per sheet      -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5159" size="US-Letter" _description="Address Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="4in" height="1.5in" round="0.0625in" waste="0in">
-      <Markup-margin size="0.0625in"/>
-      <Layout nx="2" ny="7" x0="0.15625in" y0="0.25in" dx="4.1875in" dy="1.5in"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 5163 family: Shipping Labels, 4'' x 2'', 10 per sheet       x -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5163" size="US-Letter" _description="Shipping Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="4in" height="2in" round="0.125in">
-      <Markup-margin size="0.125in"/>
-      <Layout nx="2" ny="5" x0="0.1625in" y0="0.5in" dx="4.1875in" dy="2in"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="5263"/>
-    <Alias brand="Avery" part="5513"/>
-    <Alias brand="Avery" part="5523"/>
-    <Alias brand="Avery" part="5795"/>
-    <Alias brand="Avery" part="5923"/>
-    <Alias brand="Avery" part="5963"/>
-    <Alias brand="Avery" part="5978"/>
-    <Alias brand="Avery" part="8163"/>
-    <Alias brand="Avery" part="8253"/>
-    <Alias brand="Avery" part="8463"/>
-    <Alias brand="Avery" part="8663"/>
-    <Alias brand="Avery" part="8763"/>
-    <Alias brand="Avery" part="8923"/>
-    <Alias brand="Avery" part="15163"/>
-    <Alias brand="Avery" part="18163"/>
-    <Alias brand="Avery" part="18663"/>
-    <!-- Look alikes -->
-    <Alias brand="Worldlabel" part="OL125"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 5164 family: Shipping Labels. 4'' x 3_1/3'', 6 per sheet    x -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5164" size="US-Letter" _description="Shipping Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="4in" height="3.333333333in" round="0.125in">
-      <Markup-margin size="0.125in"/>
-      <Layout nx="2" ny="3" x0="0.15625in" y0="0.5in" dx="4.1875in" dy="3.333333333in"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="5264"/>
-    <Alias brand="Avery" part="5514"/>
-    <Alias brand="Avery" part="5524"/>
-    <Alias brand="Avery" part="6464"/>
-    <Alias brand="Avery" part="6499"/>
-    <Alias brand="Avery" part="8164"/>
-    <Alias brand="Avery" part="8254"/>
-    <Alias brand="Avery" part="8464"/>
-    <!-- Look alikes -->
-    <Alias brand="Worldlabel" part="OL150"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 5168 family:  Shipping Labels 5'' x 3_1/2'', 4 per sheet      -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5168" size="US-Letter" _description="Shipping Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="3.5in" height="5in" round="0.0625in" waste="0in">
-      <Markup-margin size="0.0625in"/>
-      <Layout nx="2" ny="2" x0="0.5in" y0="0.5in" dx="4in" dy="5in"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 5167 family: Address Labels, 1_3/4'' x 1/2'', 80 per sheet  x -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5167" size="US-Letter" _description="Return Address Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="1.75in" height="0.5in" round="0.0625in">
-      <Markup-margin size="0.0625in"/>
-      <Layout nx="4" ny="20" x0="0.28125in" y0="0.5in" dx="2.0625in" dy="0.5in"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="5267"/>
-    <Alias brand="Avery" part="5667"/>
-    <Alias brand="Avery" part="5927"/>
-    <Alias brand="Avery" part="6467"/>
-    <Alias brand="Avery" part="6504"/>
-    <Alias brand="Avery" part="8167"/>
-    <Alias brand="Avery" part="8567"/>
-    <Alias brand="Avery" part="8667"/>
-    <Alias brand="Avery" part="8927"/>
-    <Alias brand="Avery" part="15167"/>
-    <Alias brand="Avery" part="15267"/>
-    <Alias brand="Avery" part="18167"/>
-    <Alias brand="Avery" part="18667"/>
-    <!-- Look alikes -->
-    <Alias brand="Worldlabel" part="OL25"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 5196 family: Diskette Labels, 2_3/4'' x 2_3/4'', 9 per sheetx -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5196" size="US-Letter" _description="Diskette Labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-rectangle id="0" width="2.75in" height="2.75in" round="0.0625in">
-      <Markup-margin size="0.0625in"/>
-      <Layout nx="3" ny="3" x0="0.125in" y0="0.5in" dx="2.75in" dy="3in"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="5096"/>
-    <Alias brand="Avery" part="5896"/>
-    <Alias brand="Avery" part="5996"/>
-    <Alias brand="Avery" part="8196"/>
-    <Alias brand="Avery" part="8197"/>
-    <!-- Look alikes -->
-    <Alias brand="Worldlabel" part="OL225"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 5197 family: Mailing Labels                                   -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5197" size="US-Letter" _description="Address Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="4in" height="1.5in" round="0.0625in">
-      <Markup-margin size="0.0625in"/>
-      <Layout nx="2" ny="6" x0="0.1875in" y0="1in" dx="4.125in" dy="1.5in"/>
-    </Label-rectangle>
-    <!-- Look alikes -->
-    <Alias brand="Worldlabel" part="OL250"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 5193 family: Round Labels                                     -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5193" size="US-Letter" _description="Round Labels">
-    <Meta category="label"/>
-    <Meta category="round-label"/>
-    <Label-round id="0" radius="0.8125in" waste="0pt">
-      <Markup-margin size="0.0625in"/>
-      <Layout nx="4" ny="6" x0="0.4157in" y0="0.549in" dx="2.0145in" dy="1.6554in"/>
-    </Label-round>
-    <Alias brand="Avery" part="5293"/>
-    <!-- Look alikes -->
-    <Alias brand="Worldlabel" part="OL325"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 5194 family: Round Labels, 12 per sheet.                      -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5194" size="US-Letter" _description="Round Labels">
-    <Meta category="label"/>
-    <Meta category="round-label"/>
-    <Label-round id="0" radius="1.25in" waste="0pt">
-      <Markup-margin size="0.0625in"/>
-      <Layout nx="3" ny="4" x0="0.21in" y0="0.425in" dx="2.75in" dy="2.515in"/>
-    </Label-round>
-    <Alias brand="Avery" part="5294"/>
-    <!-- Look alikes -->
-    <Alias brand="Worldlabel" part="OL350"/>
-    <Alias brand="Maco" part="ML-1225"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 5195 family: Round Labels                                     -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5195" size="US-Letter" _description="Round Labels">
-    <Meta category="label"/>
-    <Meta category="round-label"/>
-    <Label-round id="0" radius="1.65625in" waste="0pt">
-      <Markup-margin size="0.0625in"/>
-      <Layout nx="2" ny="3" x0="0.6406in" y0="0.4844in" dx="3.9063in" dy="3.3594in"/>
-    </Label-round>
-    <Alias brand="Avery" part="5295"/>
-    <!-- Look alikes -->
-    <Alias brand="Worldlabel" part="OL375"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 5663 family: Mailing Labels                                   -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5663" size="US-Letter" _description="Address Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="4.25in" height="2in" round="0in">
-      <Markup-margin size="0.0625in"/>
-      <Layout nx="2" ny="5" x0="0in" y0="0.5in" dx="4.25in" dy="2in"/>
-    </Label-rectangle>
-    <!-- Look alikes -->
-    <Alias brand="Worldlabel" part="OL625"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 6490 family: Diskette Labels, 2_11/16'' x 2'', 15 per sheet x -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="6490" size="US-Letter" _description="Diskette Labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-rectangle id="0" width="2.6875in" height="2in" round="0.0625in">
-      <Markup-margin size="0.0625in"/>
-      <Layout nx="3" ny="5" x0="0.125in" y0="0.5in" dx="2.78125in" dy="2in"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="6501"/>
-    <Alias brand="Avery" part="6861"/>
-    <Alias brand="Avery" part="8096"/>
-  </Template> 
-
-  <!-- =================================================================== -->
-  <!-- Avery 5366 family: Filing Labels, 2/3'' x 3_7/16'', 30 per sheet  x -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5366" size="US-Letter" _description="Filing Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="3.4375in" height="0.666666667in" round="0.0625in">
-      <Markup-margin size="0.0625in"/>
-      <Layout nx="2" ny="15" x0="0.53125in" y0="0.5in" dx="4in" dy="0.666666667in"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="5066"/>
-    <Alias brand="Avery" part="5166"/>
-    <Alias brand="Avery" part="5266"/>
-    <Alias brand="Avery" part="5268"/>
-    <Alias brand="Avery" part="5368"/>
-    <Alias brand="Avery" part="5378"/>
-    <Alias brand="Avery" part="5666"/>
-    <Alias brand="Avery" part="5766"/>
-    <Alias brand="Avery" part="5866"/>
-    <Alias brand="Avery" part="5966"/>
-    <Alias brand="Avery" part="6368"/>
-    <Alias brand="Avery" part="6466"/>
-    <Alias brand="Avery" part="6468"/>
-    <Alias brand="Avery" part="6500"/>
-    <Alias brand="Avery" part="6505"/>
-    <Alias brand="Avery" part="6865"/>
-    <Alias brand="Avery" part="8066"/>
-    <Alias brand="Avery" part="8166"/>
-    <Alias brand="Avery" part="8366"/>
-    <Alias brand="Avery" part="8478"/>
-    <!-- Look alikes -->
-    <Alias brand="Worldlabel" part="OL200"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 5371 family: Business Cards, 2'' x 3_1/2'', 10 per sheet    x -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5371" size="US-Letter" _description="Business Cards">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Label-rectangle id="0" width="3.5in" height="2in" round="0">
-      <Markup-margin size="0.0625in"/>
-      <Layout nx="2" ny="5" x0="0.75in" y0="0.5in" dx="3.5in" dy="2in"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="5372"/>
-    <Alias brand="Avery" part="5376"/>
-    <Alias brand="Avery" part="5377"/>
-    <Alias brand="Avery" part="5871"/>
-    <Alias brand="Avery" part="5872"/>
-    <Alias brand="Avery" part="5873"/>
-    <Alias brand="Avery" part="5876"/>
-    <Alias brand="Avery" part="5877"/>
-    <Alias brand="Avery" part="5878"/>
-    <Alias brand="Avery" part="5911"/>
-    <Alias brand="Avery" part="6235"/>
-    <Alias brand="Avery" part="8271"/>
-    <Alias brand="Avery" part="8371"/>
-    <Alias brand="Avery" part="8372"/>
-    <Alias brand="Avery" part="8374"/>
-    <Alias brand="Avery" part="8376"/>
-    <Alias brand="Avery" part="8377"/>
-    <Alias brand="Avery" part="8379"/>
-    <Alias brand="Avery" part="8471"/>
-    <Alias brand="Avery" part="8476"/>
-    <Alias brand="Avery" part="8571"/>
-    <Alias brand="Avery" part="8871"/>
-    <Alias brand="Avery" part="8872"/>
-    <Alias brand="Avery" part="8873"/>
-    <Alias brand="Avery" part="8876"/>
-    <Alias brand="Avery" part="8877"/>
-    <Alias brand="Avery" part="8878"/>
-    <Alias brand="Avery" part="8879"/>
-    <Alias brand="Avery" part="25371"/>
-    <Alias brand="Avery" part="26550"/>
-    <Alias brand="Avery" part="26551"/>
-    <Alias brand="Avery" part="27870"/>
-    <Alias brand="Avery" part="27876"/>
-    <Alias brand="Avery" part="27871"/>
-    <Alias brand="Avery" part="27881"/>
-    <Alias brand="Avery" part="27882"/>
-    <Alias brand="Avery" part="28371"/>
-    <Alias brand="Avery" part="28373"/>
-    <Alias brand="Avery" part="28876"/>
-    <Alias brand="Avery" part="28877"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 5388 family: Index Cards, 5'' x 3'', 3 per sheet              -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5388" size="US-Letter" _description="Index Cards">
-    <Meta category="card"/>
-    <Label-rectangle id="0" width="5in" height="3in" round="0pt" waste="0pt">
-      <Markup-margin size="0.125in"/>
-      <Layout nx="1" ny="3" x0="1.75in" y0="1in" dx="5in" dy="3in"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="5386"/>
-    <Alias brand="Avery" part="8388"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 5389 family: Post Cards, 6'' x 4'', 2 per sheet               -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5389" size="US-Letter" _description="Post cards">
-    <Meta category="card"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="6in" height="4in" round="0pt" waste="0pt">
-      <Markup-margin size="0.125in"/>
-      <Layout nx="1" ny="2" x0="1.25in" y0="1.25in" dx="6in" dy="4.5in"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 8195 family: Return address labels                            -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="8195" size="US-Letter" _description="Return Address Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="1.75in" height="0.666in" round="0.063in" x_waste="0in" y_waste="0in">
-      <Markup-margin size="0.125in"/>
-      <Layout nx="4" ny="15" x0="0.297in" y0="0.531in" dx="2.031in" dy="0.666in"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 8373 family: Business Cards, 2'' x 3_1/2'', 8 per sheet     x -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="8373" size="US-Letter" _description="Business Cards">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Label-rectangle id="0" width="3.5in" height="2in" round="0" waste="0.0625in">
-      <Markup-margin size="0.0625in"/>
-      <Layout nx="2" ny="4" x0="0.5in" y0="0.75in" dx="4in" dy="2.5in"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="3612"/>
-    <Alias brand="Avery" part="5881"/>
-    <Alias brand="Avery" part="28373"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 5395 family: Name Badge Labels, 2_1/3'' x 3_3/8'', 8 per sheetx -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5395" size="US-Letter" _description="Name Badge Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="3.375in" height="2.333333333in" round="0.1875in" waste="0.0625in">
-      <Markup-margin size="0.0625in"/>
-      <Layout nx="2" ny="4" x0="0.6875in" y0="0.583333333in" dx="3.75in" dy="2.5in"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="5095"/>
-    <Alias brand="Avery" part="5895"/>
-    <Alias brand="Avery" part="8395"/>
-    <Alias brand="Avery" part="15395"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 5824 family: CD/DVD Labels (face only), 2 per sheet         * -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5824" size="US-Letter" _description="CD/DVD Labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="166.5pt" hole="58.5pt" waste="9pt">
-      <Markup-margin size="9pt"/>
-      <Layout nx="1" ny="2" x0="144pt" y0="36pt" dx="351pt" dy="396pt"/>
-    </Label-cd>
-    <!-- Look alikes -->
-    <Alias brand="Worldlabel" part="OL1200"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 5931 family: CD/DVD Labels (face only), 2 per sheet         x -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5931-Disc" size="US-Letter"
-         _description="CD/DVD Labels (Disc Labels)">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="2.3125in" hole="0.8125in" waste="0.0625in">
-      <Markup-margin size="0.0625in"/>
-      <Markup-line x1="0" y1="2.3125in" x2="1.5in" y2="2.3125in"/>
-      <Markup-line x1="3.125in" y1="2.3125in" x2="4.625in" y2="2.3125in"/>
-      <Markup-line x1="2.3125in" y1="0" x2="2.3125in" y2="1.5in"/>
-      <Markup-line x1="2.3125in" y1="3.125in" x2="2.3125in" y2="4.625in"/>
-      <Layout nx="1" ny="2" x0="1.9375in" y0="0.6875in" dx="0" dy="5in"/>
-    </Label-cd>
-    <Alias brand="Avery" part="5691-Disc"/>
-    <Alias brand="Avery" part="5692-Disc"/>
-    <Alias brand="Avery" part="5694-Disc"/>
-    <Alias brand="Avery" part="5698-Disc"/>
-    <Alias brand="Avery" part="6692-Disc"/>
-    <Alias brand="Avery" part="8536-Disc"/>
-    <Alias brand="Avery" part="8691-Disc"/>
-    <Alias brand="Avery" part="8692-Disc"/>
-    <Alias brand="Avery" part="8694-Disc"/>
-    <Alias brand="Avery" part="8695-Disc"/>
-    <Alias brand="Avery" part="8699-Disc"/>
-    <Alias brand="Avery" part="8831-Disc"/>
-    <Alias brand="Avery" part="8832-Disc"/>
-    <Alias brand="Avery" part="8842-Disc"/>
-    <Alias brand="Avery" part="8844-Disc"/>
-    <Alias brand="Avery" part="8846-Disc"/>
-    <Alias brand="Avery" part="8847-Disc"/>
-    <Alias brand="Avery" part="8931-Disc"/>
-    <Alias brand="Avery" part="8941-Disc"/>
-    <Alias brand="Avery" part="8942-Disc"/>
-    <!-- Look alikes -->
-    <Alias brand="Worldlabel" part="OL5075"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 5931 family: CD/DVD Labels (spine only), 4 per sheet        x -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5931-Spine" size="US-Letter" 
-         _description="CD/DVD Labels (Spine Labels)">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-rectangle id="0" width="0.21875in" height="4.6875in" round="0.0625in" waste="0.0625in">
-      <Layout nx="2" ny="2" x0="0.5in" y0="0.734375in" dx="0.46875in" dy="4.84375in"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="5691-Spine"/>
-    <Alias brand="Avery" part="5692-Spine"/>
-    <Alias brand="Avery" part="5694-Spine"/>
-    <Alias brand="Avery" part="5698-Spine"/>
-    <Alias brand="Avery" part="6692-Spine"/>
-    <Alias brand="Avery" part="8536-Spine"/>
-    <Alias brand="Avery" part="8691-Spine"/>
-    <Alias brand="Avery" part="8692-Spine"/>
-    <Alias brand="Avery" part="8694-Spine"/>
-    <Alias brand="Avery" part="8695-Spine"/>
-    <Alias brand="Avery" part="8699-Spine"/>
-    <Alias brand="Avery" part="8831-Spine"/>
-    <Alias brand="Avery" part="8832-Spine"/>
-    <Alias brand="Avery" part="8842-Spine"/>
-    <Alias brand="Avery" part="8844-Spine"/>
-    <Alias brand="Avery" part="8846-Spine"/>
-    <Alias brand="Avery" part="8847-Spine"/>
-    <Alias brand="Avery" part="8931-Spine"/>
-    <Alias brand="Avery" part="8941-Spine"/>
-    <Alias brand="Avery" part="8942-Spine"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 5997face family: VCR Labels, 1_7/8'' x 3_1/16'', 10 per sheet -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5997-Face" size="US-Letter"
-         _description="Video Tape Face Labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-rectangle id="0" width="220" height="133" round="5">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="5" x0="80" y0="60.5" dx="236" dy="133"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="5199-Face"/>
-    <!-- Look alikes -->
-    <Alias brand="Worldlabel" part="OL1125"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 5997spine family: VCR Labels, 2/3'' x 5_3/4'',15 per sheet    -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5997-Spine" size="US-Letter"
-        _description="Video Tape Spine Labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-rectangle id="0" width="414" height="48" round="5">
-      <Markup-margin size="5"/>
-      <Layout nx="1" ny="15" x0="99" y0="36" dx="0" dy="48"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="5199-Spine"/>
-    <!-- Look alikes -->
-    <Alias brand="Worldlabel" part="OL1150"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 6570 family: ID Labels.                                       -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="6570" size="US-Letter" _description="ID Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="126pt" height="90pt" round="4.464pt" x_waste="6.768pt" y_waste="0pt">
-      <Markup-margin size="9pt"/>
-      <Layout nx="4" ny="8" x0="36pt" y0="36pt" dx="139.536pt" dy="90pt"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 8165 family: Full-page label, 8_1/2'' x 11'', 1 per sheet   x -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="8165" size="US-Letter" _description="Full Sheet Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="8.5in" height="11.in" round="0">
-      <Markup-margin size="0.0625in"/>
-      <Layout nx="1" ny="1" x0="0" y0="0" dx="0" dy="0"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="3114"/>
-    <Alias brand="Avery" part="3121"/>
-    <Alias brand="Avery" part="3123"/>
-    <Alias brand="Avery" part="3131"/>
-    <Alias brand="Avery" part="3132"/>
-    <Alias brand="Avery" part="3133"/>
-    <Alias brand="Avery" part="3141"/>
-    <Alias brand="Avery" part="3142"/>
-    <Alias brand="Avery" part="3145"/>
-    <Alias brand="Avery" part="3245"/>
-    <Alias brand="Avery" part="3246"/>
-    <Alias brand="Avery" part="3247"/>
-    <Alias brand="Avery" part="3255"/>
-    <Alias brand="Avery" part="3267"/>
-    <Alias brand="Avery" part="3270"/>
-    <Alias brand="Avery" part="3271"/>
-    <Alias brand="Avery" part="3272"/>
-    <Alias brand="Avery" part="3275"/>
-    <Alias brand="Avery" part="3276"/>
-    <Alias brand="Avery" part="3277"/>
-    <Alias brand="Avery" part="3614"/>
-    <Alias brand="Avery" part="3625"/>
-    <Alias brand="Avery" part="3641"/>
-    <Alias brand="Avery" part="3651"/>
-    <Alias brand="Avery" part="5165"/>
-    <Alias brand="Avery" part="5177"/>
-    <Alias brand="Avery" part="5182"/>
-    <Alias brand="Avery" part="5265"/>
-    <Alias brand="Avery" part="5277"/>
-    <Alias brand="Avery" part="5282"/>
-    <Alias brand="Avery" part="5884"/>
-    <Alias brand="Avery" part="5975"/>
-    <Alias brand="Avery" part="6465"/>
-    <Alias brand="Avery" part="6503"/>
-    <Alias brand="Avery" part="8255"/>
-    <Alias brand="Avery" part="8314"/>
-    <Alias brand="Avery" part="8324"/>
-    <Alias brand="Avery" part="8384"/>
-    <Alias brand="Avery" part="8465"/>
-    <Alias brand="Avery" part="8665"/>
-    <Alias brand="Avery" part="53205"/>
-    <Alias brand="Avery" part="53211"/>
-    <Alias brand="Avery" part="53230"/>
-    <Alias brand="Avery" part="53240"/>
-    <Alias brand="Avery" part="75287"/>
-    <Alias brand="Avery" part="75299"/>
-    <!-- Look alikes -->
-    <Alias brand="IP Invent It!" part="#00064-3"/>
-    <Alias brand="Worldlabel" part="OL175"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 8960 family: CD/DVD Labels.                                   -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="8960" size="US-Letter" _description="CD/DVD Labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="166.5pt" hole="14.1732pt" waste="9.07087pt">
-      <Markup-margin size="9pt"/>
-      <Layout nx="1" ny="2" x0="138.898pt" y0="50.1732pt" dx="351.142pt" dy="360pt"/>
-    </Label-cd>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 3274.1 family: Square stickers, 2_1/2'' x 2_1/2, 9 per sheetx  -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="3274.1" size="US-Letter" _description="Square Labels">
-    <Meta category="label"/>
-    <Meta category="square-label"/>
-    <Meta category="rectangle-label"/>
-    <Label-rectangle id="0" width="2.5in" height="2.5in" round="0">
-      <Markup-margin size="0.0625in"/>
-      <Layout nx="3" ny="3" x0="0.3125in" y0="1.25in" dx="2.6875in" dy="3in"/>
-    </Label-rectangle>
-    <Alias brand="Avery" part="3111"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 3274.2 family: Small round stickers, 1_1/2'', 20 per sheet  x -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="3274.2" size="US-Letter" _description="Small Round Labels">
-    <Meta category="label"/>
-    <Meta category="round-label"/>
-    <Label-round id="0" radius="0.75in">
-      <Markup-margin size="0.0625in"/>
-      <Layout nx="4" ny="5" x0="0.5in" y0="0.75in" dx="2in" dy="2in"/>
-    </Label-round>
-    <Alias brand="Avery" part="3112"/>
-    <Alias brand="Avery" part="8293"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 3274.3 family: Large round stickers, 2_1/2'', 9 per sheet   x -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="3274.3" size="US-Letter" _description="Large Round Labels">
-    <Meta category="label"/>
-    <Meta category="round-label"/>
-    <Label-round id="0" radius="1.25in">
-      <Markup-margin size="5"/>
-      <Layout nx="3" ny="3" x0="0.3125in" y0="1.25in" dx="2.6875in" dy="3in"/>
-    </Label-round>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Avery 5526 family: Shipping Labels.                                 -->
-  <!-- =================================================================== -->
-  <Template brand="Avery" part="5526" size="US-Letter" _description="Shipping Labels">
-    <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="8.5in" height="5.5in" round="0in" x_waste="0in" y_waste="0in">
-      <Markup-margin size="9pt"/>
-      <Layout nx="1" ny="2" x0="0in" y0="0in" dx="0in" dy="5.5in"/>
-    </Label-rectangle>
-    <!-- Look alikes -->
-    <Alias brand="Avery" part="5126"/>
-    <Alias brand="Avery" part="8126"/>
-    <Alias brand="Avery" part="15516"/>
-    <Alias brand="Avery" part="18126"/>
-    <Alias brand="ULine" part="S-5044"/>
-  </Template>
-
-
-  <!-- ******************************************************************** -->
-  <!-- Avery labels in tech builitin 152                                   -->
-  <!-- http://www.avery.com/help/tech_bulletin.jsp?tech_bull_code=152       -->
-  <!-- ******************************************************************** -->
-  <Template brand="Avery" part="LSK-8" size="US-Letter" _description="Divider Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="1.13in" height="0.5in" round="5">
-      <Markup-margin size="5"/>
-      <Layout nx="4" ny="20" x0="0.5in" y0="0.5in" dx="2.13in" dy="0.5in"/>
-    </Label-rectangle>
-  </Template>
-  <!-- the LSK labels can be torn in half down the center -->
-  <Template brand="Avery" part="LSK-8.5" size="US-Letter" _description="Divider Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="1" width="1.13in" height="0.5in" round="5">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="20" x0="0.5in" y0="0.5in" dx="2.13in" dy="0.5in"/>
-    </Label-rectangle>
-  </Template>
-  <Template brand="Avery" part="LSK-5" size="US-Letter" _description="Divider Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="2" width="1.75in" height="0.5in" round="5">
-      <Markup-margin size="5"/>
-      <Layout nx="4" ny="20" x0="0.5in" y0="0.3in" dx="2.05in" dy="0.5in"/>
-    </Label-rectangle>
-  </Template>
-  <!-- the LSK labels can be torn in half down the center -->
-  <Template brand="Avery" part="LSK-5.5" size="US-Letter" _description="Divider Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="3" width="1.75in" height="0.5in" round="5">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="20" x0="0.5in" y0="0.3in" dx="2.05in" dy="0.5in"/>
-    </Label-rectangle>
-  </Template>
-  <Template brand="Avery" part="LSK-3" size="US-Letter" _description="Divider Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="4" width="3.13in" height="0.5in" round="5">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="20" x0="0.5in" y0="0.5in" dx="4.38in" dy="0.5in"/>
-    </Label-rectangle>
-  </Template>
-  <!-- the LSK labels can be torn in half down the center -->
-  <Template brand="Avery" part="LSK-3.5" size="US-Letter" _description="Divider Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="5" width="3.13in" height="0.5in" round="5">
-      <Markup-margin size="5"/>
-      <Layout nx="1" ny="20" x0="0.5in" y0="0.5in" dx="4.38in" dy="0.5in"/>
-    </Label-rectangle>
-  </Template>
-
-</Glabels-templates>
-
-
-
-
diff --git a/data/templates/brother-other-templates.xml b/data/templates/brother-other-templates.xml
deleted file mode 100644 (file)
index 6fb666b..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0"?>
-<Glabels-templates xmlns="http://snaught.com/glabels/2.2/">
-
-  <!--
-   *********************************************************************
-   *********************************************************************
-   Labels for the Brother QL-500/550/650 PC Label Printers
-      
-   These templates work with the Brother Linux Printer CUPS Driver.  It
-   is unknown if these work correctly with the foomatic print driver for
-   these printers.
-      
-   One difference from typical templates is that the template size is
-   not the actual media size - it is the size of the printable area,
-   which is smaller than the media size.  This is because (at least with
-   the Brother driver) coordinates are relative the corner of this area.
-      
-   *********************************************************************
-   *********************************************************************
-  -->
-
-  <Template brand="Brother" part="DK-1201" size="Other" width="25.91mm" height="83.90mm" _description="Standard Address Labels 29mm x 90mm">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="25.91mm" height="83.90mm" round="0" x_waste="0" y_waste="0">
-      <Markup-rect x1="-1.5mm" y1="-3mm" w="29mm" h="90mm" r="1.5mm" />
-      <Layout nx="1" ny="1" x0="0" y0="0" dx="0" dy="0"/>
-    </Label-rectangle>
-  </Template>
-
-  <Template brand="Brother" part="DK-1202" size="Other" width="58.93mm" height="93.20mm" _description="Shipping Labels 62mm x 100mm">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="58.93mm" height="93.20mm" round="0" x_waste="0" y_waste="0">
-      <Markup-rect x1="-1.5mm" y1="-3mm" w="62mm" h="100mm" r="1.5mm" />
-      <Layout nx="1" ny="1" x0="0" y0="0" dx="0" dy="0"/>
-    </Label-rectangle>
-  </Template>
-
-  <Template brand="Brother" part="DK-1204" size="Other" width="13.97mm" height="47.92mm" _description="Multi Purpose Labels 17mm x 54mm">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="13.97mm" height="47.92mm" round="0" x_waste="0" y_waste="0">
-      <Markup-rect x1="-1.5mm" y1="-3mm" w="17mm" h="54mm" r="1.5mm" />
-      <Layout nx="1" ny="1" x0="0" y0="0" dx="0" dy="0"/>
-    </Label-rectangle>
-  </Template>
-
-
-</Glabels-templates>
diff --git a/data/templates/categories.xml b/data/templates/categories.xml
deleted file mode 100644 (file)
index cae2d4c..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0"?>
-<Glabels-categories>
-
-  <Category id="label"            _name="Any label"/>
-  <Category id="round-label"      _name="Round labels"/>
-  <Category id="square-label"     _name="Square labels"/>
-  <Category id="rectangle-label"  _name="Rectangular labels"/>
-  <Category id="card"            _name="Any card"/>
-  <Category id="business-card"   _name="Business cards"/>
-  <Category id="media"           _name="CD/DVD or other media"/>
-  <Category id="mail"             _name="Mailing/shipping products"/>
-
-</Glabels-categories>
diff --git a/data/templates/dymo-other-templates.xml b/data/templates/dymo-other-templates.xml
deleted file mode 100644 (file)
index b1518ce..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0"?>
-<Glabels-templates xmlns="http://snaught.com/glabels/2.0/">
-
-
-  <!-- =================================================================== -->
-  <!-- Dymo 99012 Large Address labels.                                    -->
-  <!-- =================================================================== -->
-  <Template brand="Dymo" part="99012" size="Other" width="102.047pt" height="252.283pt" _description="Large Address Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="102.047pt" height="252.283pt" round="0pt" x_waste="0pt" y_waste="0pt">
-      <Markup-margin size="0pt"/>
-      <Layout nx="1" ny="1" x0="0pt" y0="0pt" dx="102.047pt" dy="252.283pt"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Dymo 99010 Address labels.                                          -->
-  <!-- =================================================================== -->
-  <Template brand="Dymo" part="99010" size="Other" width="81pt" height="252pt" _description="Address Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="81pt" height="252pt" round="0pt" x_waste="0pt" y_waste="0pt">
-      <Markup-margin size="0pt"/>
-      <Layout nx="1" ny="1" x0="0pt" y0="0pt" dx="81pt" dy="252pt"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Dymo 11355 Return Address labels.                                   -->
-  <!-- =================================================================== -->
-  <Template brand="Dymo" part="11355" size="Other" width="54pt" height="144pt" _description="Return Address Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="54pt" height="144pt" round="0pt" x_waste="0pt" y_waste="0pt">
-      <Markup-margin size="0pt"/>
-      <Layout nx="1" ny="1" x0="0pt" y0="0pt" dx="54pt" dy="144pt"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Dymo 99014 Shipping Address labels.                                 -->
-  <!-- =================================================================== -->
-  <Template brand="Dymo" part="99014" size="Other" width="167pt" height="288pt" _description="Shipping Address Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="167pt" height="288pt" round="0pt" x_waste="0pt" y_waste="0pt">
-      <Markup-margin size="0pt"/>
-      <Layout nx="1" ny="1" x0="0pt" y0="0pt" dx="167pt" dy="288pt"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Dymo 30327 File Folder labels.                                      -->
-  <!-- =================================================================== -->
-  <Template brand="Dymo" part="30327" size="Other" width="41pt" height="248pt" _description="File Folder">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="41pt" height="248pt" round="0pt" x_waste="0pt" y_waste="0pt">
-      <Markup-margin size="0pt"/>
-      <Layout nx="1" ny="1" x0="0pt" y0="0pt" dx="41pt" dy="248pt"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Dymo 30376 Hanging Folder labels.                                   -->
-  <!-- =================================================================== -->
-  <Template brand="Dymo" part="30376" size="Other" width="41pt" height="144pt" _description="Hanging Folder">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="41pt" height="144pt" round="0pt" x_waste="0pt" y_waste="0pt">
-      <Markup-margin size="0pt"/>
-      <Layout nx="1" ny="1" x0="0pt" y0="0pt" dx="41pt" dy="144pt"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Dymo 30258 3.5" Disk labels.                                        -->
-  <!-- =================================================================== -->
-  <Template brand="Dymo" part="30258" size="Other" width="153pt" height="198pt" _description="3.5in Diskette">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-rectangle id="0" width="153pt" height="198pt" round="0pt" x_waste="0pt" y_waste="0pt">
-      <Markup-margin size="0pt"/>
-      <Layout nx="1" ny="1" x0="0pt" y0="0pt" dx="153pt" dy="198pt"/>
-    </Label-rectangle>
-  </Template>
-
-</Glabels-templates>
diff --git a/data/templates/misc-iso-templates.xml b/data/templates/misc-iso-templates.xml
deleted file mode 100644 (file)
index f84b0a9..0000000
+++ /dev/null
@@ -1,715 +0,0 @@
-<?xml version="1.0"?>
-<Glabels-templates>
-
-
-  <!-- ******************************************************************** -->
-  <!-- Misc. A4 products.                                                   -->
-  <!-- ******************************************************************** -->
-
-  <!-- =================================================================== -->
-  <!-- Sigel LP 800/LP 801/LP 802: Business Cards, 55.0 x 85.0 mm, 10 per sheet   -->
-  <!-- =================================================================== -->
-  <Template brand="Sigel" part="LP 800" size="A4" _description="Business Cards">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Label-rectangle id="0" width="85.0mm" height="55.0mm" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="5" x0="15.0mm" y0="10.0mm" dx="95.0mm" dy="55.0mm"/>
-    </Label-rectangle>
-    <Alias brand="Sigel" part="LP 801"/>
-    <Alias brand="Sigel" part="LP 802"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Sigel DP 830/DP 930: Business Cards, 55.0 x 85.0 mm, 10 per sheet   -->
-  <!-- =================================================================== -->
-  <Template brand="Sigel" part="DP 830" size="A4" _description="Business Cards">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Label-rectangle id="0" width="240.9" height="155.9" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="5" x0="40" y0="31" dx="269" dy="156"/>
-    </Label-rectangle>
-    <Alias brand="Sigel" part="DP 930"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Ascom A4/24/MKII: Rectangular Labels, 24 per sheet                  -->
-  <!-- =================================================================== -->
-  <Template brand="Ascom" part="A4/24/MKII" size="A4" _description="Rectangular Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="181" height="96" round="10">
-      <Markup-margin size="5"/>
-      <Layout nx="3" ny="8" x0="19" y0="36" dx="187" dy="96"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Agipa 119488: Business Cards, 50 x 90 mm, 10 per sheet              -->
-  <!-- =================================================================== -->
-  <Template brand="Agipa" part="119488" size="A4" _description="Business Cards">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Label-rectangle id="0" width="255" height="142" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="5" x0="43" y0="67" dx="255" dy="142"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Ednet BC: Business Cards, 51 x 89 mm, 10 per sheet                  -->
-  <!-- =================================================================== -->
-  <Template brand="Ednet" part="BC" size="A4" _description="Business Cards">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Label-rectangle id="0" width="253" height="145" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="5" x0="40" y0="59" dx="253" dy="145"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Ednet 45021: Inkjet/Laser Labels 70x37mm                            -->
-  <!-- =================================================================== -->
-  <Template brand="Ednet" part="45021" size="A4" _description="Inkjet/Laser Labels 70x37mm">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="198.425pt" height="104.882pt" round="0pt" x_waste="0pt" y_waste="0pt">
-      <Markup-margin size="0pt"/>
-      <Layout nx="3" ny="8" x0="0pt" y0="0pt" dx="198.425pt" dy="104.882pt"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Herma 4620: Mailing Labels - 2 columns, 107 x 37 mm, 16 per sheet   -->
-  <!-- =================================================================== -->
-  <Template brand="Herma" part="4620" size="A4" _description="Mailing Labels-2 columns">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="298" height="105" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="8" x0="0" y0="0" dx="298" dy="105"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Herma 4464: Mailing Labels - 3 columns, 70 x 37.125 mm, 24 per sheet-->
-  <!-- =================================================================== -->
-  <Template brand="Herma" part="4464" size="A4" _description="Mailing Labels-3 columns">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="199" height="105" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="3" ny="8" x0="0" y0="0" dx="199" dy="105"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Herma 5079: CD/DVD Labels, 2 per sheet                              -->
-  <!-- =================================================================== -->
-  <Template brand="Herma" part="5079" size="A4" _description="CD/DVD Labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="164.409pt" hole="58.1102pt" waste="9pt">
-      <Markup-margin size="9pt"/>
-      <Layout nx="1" ny="2" x0="133.228pt" y0="46.7717pt" dx="346.819pt" dy="419.528pt"/>
-    </Label-cd>
-  </Template>
-
-  <!-- ===================================================================-->
-  <!-- Neato brand CD/DVD Labels (face only), 2 per sheet                 -->
-  <!-- ===================================================================-->
-  <Template brand="Neato" part="A4 CD" size="A4" _description="CD/DVD Labels (face only)">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="166.5" hole="58.5" waste="5">
-      <Markup-margin size="5"/>
-      <Layout nx="1" ny="2" x0="125" y0="68.890" dx="0" dy="360"/>        
-    </Label-cd>                                                      
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- DATA BECKER: Business Cards, 50 x 90 mm, 10 per sheet               -->
-  <!-- =================================================================== -->
-  <Template brand="DataBecker" part="BC?" size="A4" _description="Business Cards">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Label-rectangle id="0" width="255" height="142" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="5" x0="36" y0="69.890" dx="255" dy="142"/>
-    </Label-rectangle>
-  </Template>
-  <!-- =================================================================== -->
-  <!-- DATA BECKER 0491 Business Cards, 50 x 90 mm, 10 per sheet           -->
-  <!-- =================================================================== -->
-  <Template brand="DataBecker" part="0491" size="A4" _description="Business Cards">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Label-rectangle id="0" width="90mm" height="50mm" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="5" x0="12.5mm" y0="15mm" dx="94.55mm" dy="54mm"/>
-    </Label-rectangle>
-  </Template>
-  <!-- =================================================================== -->
-  <!-- DATA BECKER 0526 Address Labels.                                    -->
-  <!-- =================================================================== -->
-  <Template brand="DataBecker" part="0526" size="A4" _description="Address Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="198.425pt" height="102.047pt" round="0pt" x_waste="0pt" y_waste="0pt">
-      <Markup-margin size="9pt"/>
-      <Layout nx="3" ny="8" x0="3.93386e-16pt" y0="15.5906pt" dx="198.425pt" dy="102.047pt"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- DATA BECKER 0562 CD Labels.                                         -->
-  <!-- =================================================================== -->
-  <Template brand="DataBecker" part="0562" size="A4" _description="CD Labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="58mm" hole="20.6375mm" waste="2mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="1" ny="2" x0="5mm" y0="5mm" dx="120mm" dy="171mm"/>
-      <Layout nx="1" ny="1" x0="89mm" y0="90mm" dx="120mm" dy="120mm"/>
-    </Label-cd>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- DATA BECKER 0598 Address Labels.                                    -->
-  <!-- =================================================================== -->
-  <Template brand="DataBecker" part="0598" size="A4" _description="Address Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="274.961pt" height="119.906pt" round="0pt" x_waste="0pt" y_waste="0pt">
-      <Markup-margin size="9pt"/>
-      <Layout nx="2" ny="6" x0="23.2441pt" y0="65.1968pt" dx="274.961pt" dy="119.906pt"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Dataline 57125: Business Cards, 54.0 x 86.0 mm, 10 per sheet        -->
-  <!-- =================================================================== -->
-  <Template brand="Dataline" part="57125" size="A4" _description="Business Cards">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Label-rectangle id="0" width="86.00mm" height="54.00mm" round="0">
-      <Markup-margin size="0mm"/>
-      <Layout nx="2" ny="5" x0="16mm" y0="11mm" dx="91mm" dy="55.625mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Hema Etiketten: 65 x 38 mm, 21 per sheet                            -->
-  <!-- =================================================================== -->
-  <Template brand="Hema" part="Etiketten" size="A4" _description="Rectangular Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="178" height="108" round="5">
-      <Markup-margin size="5"/>
-      <Layout nx="3" ny="7" x0="20" y0="49.890" dx="187" dy="107"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- ====================================================== -->
-  <!-- APLI 02793: Business Cards, 50,8 x 90 mm, 10 per sheet -->
-  <!-- ====================================================== -->
-  <Template brand="APLI" part="02793" size="A4" _description="Business Cards">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Label-rectangle id="0" width="255.118" height="144" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="5" x0="42.5197" y0="62.3622" dx="255.118" dy="144"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- APLI 1999:  Mailing Labels, 9,9cm x 6,8cm, 8 per sheet              -->
-  <!-- =================================================================== -->
-  <Template brand="APLI" part="1999" size="A4" _description="Mailing Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="281" height="193" round="5">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="4" x0="13" y0="21.890" dx="289" dy="194"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- APLI 01293:  General Labels.                                        -->
-  <!-- =================================================================== -->
-  <Template brand="Apli" part="01293" size="A4" _description="General Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="198.425pt" height="94.3937pt" round="0pt" x_waste="0pt" y_waste="0pt">
-      <Markup-margin size="0pt"/>
-      <Layout nx="3" ny="8" x0="0pt" y0="43.3701pt" dx="198.425pt" dy="94.3937pt"/>
-    </Label-rectangle>
-  </Template>
-
-
-  <!-- =================================================================== -->
-  <!-- Data Becker Etiketten Paket: Ordnerrucken, 192 x 61,5 mm, 4 per sheet    -->
-  <!-- =================================================================== -->
-  <Template brand="Herma" part="4284" size="A4" _description="Arch File Labels (large)">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="544.252" height="174.331" round="5">
-      <Markup-margin size="5"/>
-      <Layout nx="1" ny="4" x0="25.5118" y0="38.2677" dx="544.252" dy="197.008"/>
-    </Label-rectangle>
-    <Alias brand="Herma" part="5095"/>
-    <Alias brand="Herma" part="5096"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Data Becker Etiketten Paket: Ordnerrucken, 192 x 39 mm, 6 per sheet    -->
-  <!-- =================================================================== -->
-  <Template brand="Herma" part="4283" size="A4" _description="Arch File Labels (small)">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="544.252" height="110.551" round="5">
-      <Markup-margin size="5"/>
-      <Layout nx="1" ny="6" x0="25.5118" y0="32.5984" dx="544.252" dy="133.228"/>
-    </Label-rectangle>
-    <Alias brand="Herma" part="5090"/>
-    <Alias brand="Herma" part="5091"/>
-  </Template>
-  
-  <!-- =================================================================== -->
-  <!-- Data Becker Etiketten Paket: Video Etiketten, 78,7 x 46,5 mm, 12 per sheet    -->
-  <!-- =================================================================== -->
-  <Template brand="Herma" part="4828" size="A4" _description="Video Labels (face only)">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-rectangle id="0" width="223.086" height="131.811" round="5">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="6" x0="38.5512" y0="24.9449" dx="295.086" dy="131.811"/>
-    </Label-rectangle>
-    <Alias brand="Herma" part="5070"/>
-  </Template>
-  
-  <!-- =================================================================== -->
-  <!-- Data Becker Etiketten Paket: Disketten Etiketten, 70 x 50,8 mm, 10 per sheet    -->
-  <!-- =================================================================== -->
-  <Template brand="Herma" part="8803" size="A4" _description="Diskette Labels (face only)">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-rectangle id="0" width="198.425" height="144" round="5">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="5" x0="60.9448" y0="60.9448" dx="270.425" dy="144"/>
-    </Label-rectangle>
-    <Alias brand="Herma" part="8839"/>
-  </Template>
-  
-  <!-- =================================================================== -->
-  <!-- Otto Versand: Allzweck Etiketten, 38 x 21,2 mm, 65 per sheet        -->
-  <!-- =================================================================== -->
-  <Template brand="Herma" part="4606" size="A4" _description="Allround Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="107.716" height="60.0945" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="5" ny="13" x0="26.9291" y0="29.7638" dx="107.716" dy="60.0945"/>
-    </Label-rectangle>
-    <Alias brand="Herma" part="4270"/>
-  </Template>
-  
-  <!-- =================================================================== -->
-  <!-- Herma Musteretiketten: Allzweck Etiketten, 48,3 x 16,9 mm           -->
-  <!-- =================================================================== -->
-  <Template brand="Herma" part="4607" size="A4" _description="Allround Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="136.913" height="47.9055" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="4" ny="16" x0="24.0945" y0="39.6853" dx="136.913" dy="47.9055"/>
-    </Label-rectangle>
-    <Alias brand="Herma" part="4271"/>
-  </Template>
-  
-  <!-- =================================================================== -->
-  <!-- Herma Musteretiketten: Allzweck Etiketten, 48,3 x 25,4 mm, 44 per sheet    -->
-  <!-- =================================================================== -->
-  <Template brand="Herma" part="4608" size="A4" _description="Allround Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="136.913" height="72" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="4" ny="11" x0="24.0945" y0="24.0945" dx="136.913" dy="72"/>
-    </Label-rectangle>
-    <Alias brand="Herma" part="4272"/>
-    <Alias brand="Herma" part="5051"/>
-  </Template>
-  
-  <!-- =================================================================== -->
-  <!-- Herma Musteretiketten: Allzweck Etiketten, 66 x 33,8 mm, 24 per sheet    -->
-  <!-- =================================================================== -->
-  <Template brand="Herma" part="4614" size="A4" _description="Allround Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="187.086" height="95.811" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="3" ny="8" x0="16.1575" y0="36.8504" dx="187.086" dy="95.811"/>
-    </Label-rectangle>
-    <Alias brand="Herma" part="4670"/>
-    <Alias brand="Herma" part="5053"/>
-  </Template>
-  
-  <!-- =================================================================== -->
-  <!-- Herma Musteretiketten: Adress Etiketten, 105 x 42,3 mm, 24 per sheet    -->
-  <!-- =================================================================== -->
-  <Template brand="Herma" part="4625" size="A4" _description="Mailing Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="297.638" height="119.905" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="7" x0="0" y0="0" dx="297.638" dy="119.905"/>
-    </Label-rectangle>
-    <Alias brand="Herma" part="4674"/>
-    <Alias brand="Herma" part="5057"/>
-  </Template>
-  
-  <!-- =================================================================== -->
-  <!-- Herma Musteretiketten: Ordnerrucken, 192 x 38 mm, 7 per sheet    -->
-  <!-- =================================================================== -->
-  <Template brand="Herma" part="4293" size="A4" _description="Arch File Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="544.252" height="107.716" round="5">
-      <Markup-margin size="5"/>
-      <Layout nx="1" ny="7" x0="25.5118" y0="42.5197" dx="544.252" dy="107.716"/>
-    </Label-rectangle>
-    <Alias brand="Herma" part="5092"/>
-  </Template>
-  
-  <!-- ===================================================================-->
-  <!-- Data Becker CD/DVD Labels (face only), 2 per sheet                 -->
-  <!-- ===================================================================-->
-  <Template brand="DataBecker" part="0335" size="A4" _description="CD/DVD Labels Standard Format (face only)">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="164.409" hole="58.1102" waste="5">
-      <Markup-margin size="5"/>
-      <Layout nx="1" ny="2" x0="133.228" y0="46.7716" dx="0" dy="419.527"/>
-    </Label-cd>
-    <Alias brand="DataBecker" part="0368"/>
-  </Template>
-
-  <!-- ===================================================================-->
-  <!-- LeLabel 2001.018 CD/DVD Labels, 1 per sheet                        -->
-  <!-- ===================================================================-->
-  <Template brand="LeLabel" part="2001.018" size="A4" _description="CD/DVD Labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="168.08" hole="54.69" waste="5">
-      <Markup-margin size="5"/>
-      <Layout nx="1" ny="1" x0="128.556" y0="42.52" dx="0" dy="0"/>
-    </Label-cd>
-  </Template>
-
-  <!-- ===================================================================-->
-  <!-- Viking 02204 Etiketten, 21 per sheet                               -->
-  <!-- ===================================================================-->
-  <Template brand="Viking" part="02204" size="A4" _description="Etiketten">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="198" height="120" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="3" ny="7" x0="0" y0="0" dx="198" dy="120"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- ===================================================================-->
-  <!-- Media Line CD/DVD Labels (face only), 2 per sheet                  -->
-  <!-- ===================================================================-->
-  <Template brand="MediaLine" part="760-50475 A4 CD" size="A4" _description="CD/DVD Labels (face only)">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="166.5" hole="58.5" waste="5">
-      <Markup-margin size="5"/>
-      <Layout nx="1" ny="2" x0="133" y0="45" dx="0" dy="422"/>
-    </Label-cd>
-  </Template>
-
-  <!-- ===================================================================-->
-  <!-- Encre.com Business Cards, 10 per sheet                             -->
-  <!-- ===================================================================-->
-  <Template brand="Encre.com" part="BCV10" size="A4" _description="Business Cards">  
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Label-rectangle id="0" width="243.78" height="153.07">  
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="5" x0="48.19" y0="42.50" dx="255.12" dy="157.32"/>  
-    </Label-rectangle> 
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Celcast IJ37: Fridge magnet (stickers), 52 x 90 mm, 10 per sheet    -->
-  <!-- =================================================================== -->
-  <Template brand="Celcast" part="IJ37" size="A4" _description="Fridge Magnet Stickers">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="255" height="147.5" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="5" x0="43" y0="52.7" dx="255" dy="147.5"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- CD STOMPER PRO CD Label Refills, (Face Only) ISO Version            -->
-  <!-- =================================================================== -->
-  <Template brand="Stomper" part="PRO A4" size="A4" _description="PRO CD Labels 2-up (face only)">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="166.5" hole="58" waste="10">
-      <Markup-margin size="5"/>
-      <Layout nx="1" ny="1" x0="34.5" y0="47" dx="0" dy="0"/>
-      <Layout nx="1" ny="1" x0="223" y0="459" dx="0" dy="0"/>
-    </Label-cd>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Pressit CD Labels/                                                  -->
-  <!-- =================================================================== -->
-  <Template brand="Pressit" part="50blank" size="A4" _description="CD Labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="166.5pt" hole="58.5pt" waste="9pt">
-      <Markup-margin size="9pt"/>
-      <Layout nx="1" ny="1" x0="30.096pt" y0="70.416pt" dx="351pt" dy="351pt"/>
-      <Layout nx="1" ny="1" x0="233.208pt" y0="440.712pt" dx="351pt" dy="351pt"/>
-    </Label-cd>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Ryman P14 Universal labels.                                         -->
-  <!-- =================================================================== -->
-  <Template brand="Ryman" part="P14" size="A4" _description="Universal Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="99.1mm" height="38.1mm" round="0.2mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="2" ny="7" x0="4.2mm" y0="13.8mm" dx="102mm" dy="38.1mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Ryman Standard CD/DVD Labels.                                       -->
-  <!-- =================================================================== -->
-  <Template brand="Ryman" part="Standard CD/DVD" size="A4" _description="CD/DVD Labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="165.827pt" hole="58.1102pt" waste="9pt">
-      <Markup-margin size="9pt"/>
-      <Layout nx="1" ny="2" x0="131.811pt" y0="60.6614pt" dx="245.622pt" dy="388.346pt"/>
-    </Label-cd>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Ryman 0215016061 CD/DVD Labels.                                     -->
-  <!-- =================================================================== -->
-  <Template brand="Ryman" part="0215016061" size="A4" _description="CD/DVD Labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="165.827pt" hole="24.0945pt" waste="8.50394pt">
-      <Markup-margin size="0pt"/>
-      <Layout nx="1" ny="2" x0="131.811pt" y0="60.6614pt" dx="348.661pt" dy="388.346pt"/>
-    </Label-cd>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Fellows 04715 CD/DVD Labels (Face only).                            -->
-  <!-- =================================================================== -->
-  <Template brand="Fellows" part="04715" size="A4" _description="CD Labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="166.5pt" hole="58.5pt" waste="9pt">
-      <Markup-margin size="9pt"/>
-      <Layout nx="1" ny="2" x0="133.2pt" y0="50.4pt" dx="244.276pt" dy="363.6pt"/>
-    </Label-cd>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Staples EU Business Cards Supreme.                                  -->
-  <!-- =================================================================== -->
-  <Template brand="Staples" part="EU BC Supreme" size="A4" _description="Business Cards">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Label-rectangle id="0" width="240.945pt" height="155.906pt" round="0pt" x_waste="0pt" y_waste="0pt">
-      <Markup-margin size="9.07087pt"/>
-      <Layout nx="1" ny="5" x0="42.5197pt" y0="28.3465pt" dx="240.945pt" dy="155.906pt"/>
-      <Layout nx="1" ny="5" x0="311.811pt" y0="28.3465pt" dx="240.945pt" dy="155.906pt"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- DECAdry OCC 3342 Business Cards.                                    -->
-  <!-- =================================================================== -->
-  <Template brand="DECAdry" part="OCC 3342" size="A4" _description="Business Cards">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Label-rectangle id="0" width="240.945pt" height="153.071pt" round="0pt" x_waste="0pt" y_waste="0pt">
-      <Markup-margin size="0pt"/>
-      <Layout nx="2" ny="5" x0="42.5197pt" y0="38.2677pt" dx="269.291pt" dy="153.071pt"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- DECAdry DLW-1734: Mailing Labels.                                   -->
-  <!-- =================================================================== -->
-  <Template brand="DECAdry" part="DLW-1734" size="A4" _description="Mailing Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="99.1mm" height="67.7mm" round="2mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3.175mm"/>
-      <Layout nx="2" ny="4" x0="4.65mm" y0="13.1mm" dx="101.5mm" dy="67.7mm"/>
-    </Label-rectangle>
-    <Alias brand="DECAdry" part="OLW-4734"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- DECAdry DLW-1786: Mailing Labels.                                   -->
-  <!-- =================================================================== -->
-  <Template brand="DECAdry" part="DLW-1786" size="A4" _description="Mailing Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="105mm" height="39mm" round="0mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3.175mm"/>
-      <Layout nx="2" ny="7" x0="0mm" y0="12mm" dx="105mm" dy="39mm"/>
-    </Label-rectangle>
-    <Alias brand="DECAdry" part="OLW-4786"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- DECAdry DLW-1787: Mailing Labels.                                   -->
-  <!-- =================================================================== -->
-  <Template brand="DECAdry" part="DLW-1787" size="A4" _description="Mailing Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="70mm" height="35mm" round="0mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="3" ny="8" x0="0mm" y0="8.5mm" dx="70mm" dy="35mm"/>
-    </Label-rectangle>
-    <Alias brand="DECAdry" part="OLW-4787"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Connect KF10647 Mailing Labels..                                    -->
-  <!-- =================================================================== -->
-  <Template brand="Connect" part="KF10647" size="A4" _description="Mailing Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="198.425pt" height="104.882pt" round="0pt" x_waste="0pt" y_waste="0pt">
-      <Markup-margin size="9pt"/>
-      <Layout nx="3" ny="8" x0="7.86772e-17pt" y0="11.3386pt" dx="198.425pt" dy="104.882pt"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Poundland 30 Labels.                                                -->
-  <!-- =================================================================== -->
-  <Template brand="Poundland" part="30" size="A4" _description="Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="184.252pt" height="72pt" round="8.50394pt" x_waste="4.25197pt" y_waste="0pt">
-      <Markup-margin size="7.08661pt"/>
-      <Layout nx="3" ny="10" x0="4.25197pt" y0="62.3622pt" dx="201.26pt" dy="72pt"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Sanwa LB-CDRJP.  CD Labels.                                         -->
-  <!-- =================================================================== -->
-  <Template brand="Sanwa" part="LB-CDRJP" size="A4" _description="CD Labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="167.244pt" hole="34.0pt" waste="9pt">
-      <Markup-margin size="9pt"/>
-      <Layout nx="1" ny="2" x0="29.1969pt" y0="70.8661pt" dx="352.488pt" dy="367.087pt"/>
-    </Label-cd>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Bruna 241301.  Mailing Labels.                                      -->
-  <!-- =================================================================== -->
-  <Template brand="Bruna" part="241301" size="A4" _description="Mailing Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="198.425pt" height="102.047pt" round="0pt" x_waste="0pt" y_waste="0pt">
-      <Markup-margin size="9pt"/>
-      <Layout nx="3" ny="8" x0="0pt" y0="0pt" dx="198.425pt" dy="102.047pt"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Geha Z53.  Address Labels.                                         -->
-  <!-- =================================================================== -->
-  <Template brand="Geha" part="Z53" size="A4" _description="Address Labels">
-    <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.geha.de/index.php?id=1047&amp;pid=30767"/>
-    <Label-rectangle id="0" width="99.1mm" height="38.1mm" round="0.2mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="2" ny="7" x0="3mm" y0="15.9mm" dx="101.6mm" dy="38.1mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Staples STAP14 Mailing Labels.                                      -->
-  <!-- =================================================================== -->
-  <Template brand="Staples" part="STAP14" size="A4" _description="Mailing Labels">
-    <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Label-rectangle id="0" width="99mm" height="38mm" round="2mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3mm"/>
-      <Layout nx="2" ny="7" x0="5mm" y0="15mm" dx="102mm" dy="38mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- ******************************************************************** -->
-  <!-- Misc. A6 products.                                                   -->
-  <!-- ******************************************************************** -->
-
-  <!-- =================================================================== -->
-  <!-- EPSON Photo Stickers, 17 x 24 mm, 16 per sheet                      -->
-  <!-- =================================================================== -->
-  <Template brand="Epson" part="S041144" size="A6" _description="EPSON Photo Stickers 16">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="48" height="68" round="7">
-      <Markup-margin size="5"/>
-      <Layout nx="4" ny="4" x0="33" y0="59" dx="59.5" dy="79.5"/>
-    </Label-rectangle>
-  </Template>
-
-
-  <!-- ============================================================ -->
-  <!-- Impact LC33 Family: Rectangular Labels                       -->
-  <!-- ============================================================ -->
-  <Template brand="Impact" part="LC33" size="A4" description="Rectangular Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="70mm" height="25mm" round="0mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3mm"/>
-      <Layout nx="3" ny="11" x0="0mm" y0="10mm" dx="70mm" dy="25mm"/>
-    </Label-rectangle>
-  </Template>
-
-
-  <!-- ******************************************************************** -->
-  <!-- Templates for A4 and A3 media, size 50 x 90 mm                       -->
-  <!-- ******************************************************************** -->
-  
-  <Template brand="Russian" part="A3 5x9" size="A3" _description="Business Cards">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Label-rectangle id="0" width="90mm" height="50mm" round="0">
-      <Markup-margin size="5pt"/>
-      <Layout nx="3" ny="8" x0="14mm" y0="10mm" dx="90mm" dy="50mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <Template brand="Russian" part="A4 5x9" size="A4" _description="Business Cards">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Label-rectangle id="0" width="50mm" height="90mm" round="0">
-      <Markup-margin size="5pt"/>
-      <Layout nx="4" ny="3" x0="5mm" y0="13mm" dx="50mm" dy="90mm"/>
-    </Label-rectangle>
-  </Template>
-
-
-
-</Glabels-templates>
-
-
-
-
diff --git a/data/templates/misc-other-templates.xml b/data/templates/misc-other-templates.xml
deleted file mode 100644 (file)
index 4f57e74..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0"?>
-<Glabels-templates xmlns="http://snaught.com/glabels/2.0/">
-
-
-  <!-- =================================================================== -->
-  <!-- OfficeMax 86112: Multi-Purpose Labels, 2'' x 4'', 3 per sheet       -->
-  <!-- =================================================================== -->
-  <Template brand="OfficeMax" part="86112" size="Other" width="297pt" height="450pt"
-            _description="Multi-Purpose Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="288pt" height="144pt" round="9pt" waste="0pt">
-      <Markup-margin size="9pt"/>
-      <Layout nx="1" ny="3" x0="4.5pt" y0="3.6pt" dx="288pt" dy="148.5pt"/>
-    </Label-rectangle>
-  </Template>
-
-
-
-</Glabels-templates>
diff --git a/data/templates/misc-us-templates.xml b/data/templates/misc-us-templates.xml
deleted file mode 100644 (file)
index 7b6a05a..0000000
+++ /dev/null
@@ -1,248 +0,0 @@
-<?xml version="1.0"?>
-<Glabels-templates>
-
-
-
-  <!-- ******************************************************************** -->
-  <!-- Misc. US-Letter products.                                            -->
-  <!-- ******************************************************************** -->
-
-  <!-- =================================================================== -->
-  <!-- Southworth BC: Business Cards, 2'' x 3_1/2'', 10 per sheet          -->
-  <!-- =================================================================== -->
-  <Template brand="Southworth" part="BC" size="US-Letter" _description="Business Cards">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Label-rectangle id="0" width="252" height="144" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="5" x0="36" y0="36" dx="288" dy="144"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Memorex CD Labels                                                 * -->
-  <!-- =================================================================== -->
-  <Template brand="Memorex" part="CD Labels" size="US-Letter" _description="CD/DVD Labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="166.5" hole="58.5" waste="5">
-      <Markup-margin size="5"/>
-      <Layout nx="1" ny="1" x0="40.5" y0="45" dx="0" dy="0"/>
-      <Layout nx="1" ny="1" x0="238.5" y0="414" dx="0" dy="0"/>
-    </Label-cd>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Neato USCD2lbl.NTT: CD/DVD Labels (face only), 2 per sheet          -->
-  <!-- =================================================================== -->
-  <Template brand="Neato" part="USCD2lbl.NTT" size="US-Letter"
-         _description="CD/DVD Labels (face only)">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="166.5" hole="58.5" waste="9">
-      <Markup-margin size="5"/>
-      <Layout nx="1" ny="2" x0="139.5" y0="49.5" dx="0" dy="360"/>
-    </Label-cd>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Neato USCD2lbl.NTT: CD/DVD Labels (rectangles), 2 per sheet         -->
-  <!-- =================================================================== -->
-  <Template brand="Neato" part="USCD2lbl Rectangles" size="US-Letter"
-        _description="CD Template Rectangles">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-rectangle id="0" width="77.04" height="234.36" round="10">
-      <Markup-margin size="2.016"/>
-      <Layout nx="2" ny="1" x0="51.3" y0="279.72" dx="433.44" dy="0"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Neato CLP-192328/26: HandiCD-R 50MB, 3" x 2_1/8'', 9 per sheet      -->
-  <!-- =================================================================== -->
-  <Template brand="Neato" part="HandiCD-R" size="US-Letter"
-        _description="Business Card CD">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="108" width="171" hole="58" waste="5">
-      <Markup-margin size="5"/>
-      <Layout nx="3" ny="3" x0="36.5" y0="54" dx="184.5" dy="234"/>
-    </Label-cd>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Neato 69143: Jewel Case Booklet                                     -->
-  <!-- =================================================================== -->
-  <Template brand="Neato" part="69143" size="US-Letter" _description="Jewel Case Booklet">
-    <Meta category="media"/>
-    <Label-rectangle id="0" width="4.75in" height="9.5in" round="0in" x_waste="0in" y_waste="0in">
-      <Markup-margin size="0.125in"/>
-      <Markup-line x1="0in" y1="4.75in" x2="4.75in" y2="4.75in"/>
-      <Layout nx="1" ny="1" x0="1.875in" y0="0.75in" dx="4.75in" dy="9.5in"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- CD STOMPER PRO CD Label Refills, (Face Only)                      * -->
-  <!-- =================================================================== -->
-  <Template brand="Stomper" part="PRO CD" size="US-Letter"
-         _description="PRO CD Labels 2-up (face only)">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="166.5" hole="58.5" waste="5">
-      <Markup-margin size="5"/>
-      <Layout nx="1" ny="1" x0="34" y0="43" dx="0" dy="0"/>
-      <Layout nx="1" ny="1" x0="245" y0="416" dx="0" dy="0"/>
-    </Label-cd>
-  </Template>
-
-  <Template brand="Stomper" part="PRO Zip" size="US-Letter"
-         _description="PRO CD Labels 2-up (Face only)">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-rectangle id="0" width="168" height="142" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="1" ny="2" x0="407" y0="68" dx="0" dy="142"/>
-      <Layout nx="1" ny="2" x0="37" y0="440" dx="0" dy="142"/>
-    </Label-rectangle>
-  </Template>
-
-  <Template brand="Stomper" part="PRO Spine" size="US-Letter"
-         _description="PRO CD Labels 2-up (CD spine only)">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-rectangle id="0" width="288" height="20" round="0">
-      <Markup-margin size="2"/>
-      <Layout nx="2" ny="1" x0="18" y0="385" dx="288" dy="0"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- ===================================================================-->
-  <!-- Meritline Mini CD/DVD Labels (face only), 5 per sheet              -->
-  <!-- ===================================================================-->
-  <Template brand="Meritline" part="Mini-CD" size="US-Letter" _description="Mini-CD Labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="110.5" hole="57.5" waste="5">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="2" x0="48.4" y0="47.6" dx="299.5" dy="481.5"/>
-      <Layout nx="1" ny="1" x0="197.3" y0="289.5" dx="0" dy="0"/>
-    </Label-cd>
-  </Template>
-
-  <!-- ===================================================================-->
-  <!-- Neato Slimline CD Jewel Case Insert, 2 per sheet.                  -->
-  <!-- Left margin area is CD spine; ignore other margins.                -->
-  <!-- To write text on spine, use "upside down" template, "rotated",     -->
-  <!-- spine is bottom margin, print label sheet BOTTOM FIRST.            -->
-  <!-- ===================================================================-->
-  <Template brand="Neato" part="Slimline CD Case" size="US-Letter"
-         _description="Slimline CD Case (rightside up)">
-    <Meta category="card"/>
-    <Meta category="media"/>
-    <Label-rectangle id="0" width="394.5" height="342.5" round="0">
-      <Markup-margin size="7.5"/>
-      <Layout nx="1" ny="2" x0="130" y0="41.9" dx="0" dy="363"/>
-    </Label-rectangle>
-  </Template>
-  <Template brand="Neato" part="Slimline CD Case, spine" size="US-Letter"
-         _description="Slimline CD Case (upside down)">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-rectangle id="0" width="394.5" height="342.5" round="0">
-      <Markup-margin size="7.5"/>
-      <Layout nx="1" ny="2" x0="96.5" y0="41.9" dx="0" dy="363"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Great Gizmos : CD/DVD Labels (face only), 2 per sheet             * -->
-  <!-- =================================================================== -->
-  <Template brand="Great Gizmos" part="CD/DVD" size="US-Letter"
-          _description="CD/DVD Labels (face only)">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="166.5" hole="58.5" waste="5">
-      <Markup-margin size="5"/>
-      <Layout nx="1" ny="2" x0="139.5" y0="42.52" dx="0" dy="374.17"/>
-    </Label-cd>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Imation-SoniX CD/DVD Labels  (Face Only)                          * -->
-  <!-- =================================================================== -->
-  <Template brand="Imation-SoniX" part="No.5112 15954" size="US-Letter"
-         _description="CD/DVD Labels (Face Only)">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="167.8" hole="18.5" waste="5">
-      <Markup-margin size="5"/>
-      <Layout nx="1" ny="1" x0="40.5" y0="370" dx="0" dy="0"/>
-    </Label-cd>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Netc Label Stock: DLT Labels, (www.netclabels.com), 30 per sheet    -->
-  <!-- =================================================================== -->
-  <Template brand="Netc" part="749303-70001 " size="US-Letter" _description="DLT Labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-rectangle id="0" width="162" height="59.4" round="0">
-      <Markup-margin size="18"/>
-      <Layout nx="3" ny="10" x0="36" y0="45" dx="189" dy="72"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Tough-Tags TTLW-2016 Microtube labels, 85 per sheet.                -->
-  <!-- =================================================================== -->
-  <Template brand="Tough-Tags" part="TTLW-2016" size="US-Letter" _description="Microtube labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="92.16" height="36" round="5">
-      <Markup-margin size="5"/>
-      <Layout nx="5" ny="17" x0="68" y0="4.17" dx="100.8" dy="45.3"/>
-    </Label-rectangle>
-  </Template> 
-
-  <!-- =================================================================== -->
-  <!-- Kingdom L Cassette Labels, 12 per sheet.                            -->
-  <!-- =================================================================== -->
-  <Template brand="Kingdom" part="L" size="US-Letter" _description="Cassette Labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-rectangle id="0" width="252pt" height="117pt" round="9pt" x_waste="2.376pt" y_waste="2.376pt">
-      <Markup-margin size="9pt"/>
-      <Layout nx="2" ny="6" x0="33.12pt" y0="27pt" dx="261pt" dy="126.144pt"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- OfficeMax OM99060 Mailing Labels.                                   -->
-  <!-- =================================================================== -->
-  <Template brand="OfficeMax" part="OM99060" size="US-Letter" _description="Mailing Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="203.76pt" height="72pt" round="0pt" x_waste="0pt" y_waste="0pt">
-      <Markup-margin size="12.024pt"/>
-      <Layout nx="3" ny="10" x0="0pt" y0="36pt" dx="203.76pt" dy="72pt"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Online Labels OL1025 Round Labels.                                  -->
-  <!-- =================================================================== -->
-  <Template brand="Online Labels" part="OL1025" size="US-Letter" _description="Round Labels">
-    <Meta category="label"/>
-    <Meta category="round-label"/>
-    <Label-round id="0" radius="0.5in" waste="0.062in">
-      <Markup-margin size="0.125in"/>
-      <Layout nx="7" ny="9" x0="0.375in" y0="0.5in" dx="1.125in" dy="1.125in"/>
-    </Label-round>
-  </Template>
-
-</Glabels-templates>
-
-
-
-
diff --git a/data/templates/paper-sizes.xml b/data/templates/paper-sizes.xml
deleted file mode 100644 (file)
index 17149ae..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0"?>
-<Glabels-paper-sizes>
-
-  <!-- Most popular (at top of list) -->
-  <Paper-size id="US-Letter"    _name="US Letter"    pwg_size="na_letter"    width="8.5in" height="11in"/>
-  <Paper-size id="A4"           _name="A4"           pwg_size="iso_a4"       width="210mm" height="297mm"/>
-
-  <!-- Other US paper sizes -->
-  <Paper-size id="US-Legal"     _name="US Legal"     pwg_size="na_legal"     width="8.5in" height="14in"/>
-  <Paper-size id="US-Executive" _name="US Executive" pwg_size="na_executive" width="7.25in" height="10.5in"/>
-
-  <!-- Other ISO A series sizes -->
-  <Paper-size id="A0"           _name="A0"           pwg_size="iso_a0"       width="841mm" height="1189mm"/>
-  <Paper-size id="A1"           _name="A1"           pwg_size="iso_a1"       width="594mm" height="841mm"/>
-  <Paper-size id="A2"           _name="A2"           pwg_size="iso_a2"       width="420mm" height="594mm"/>
-  <Paper-size id="A3"           _name="A3"           pwg_size="iso_a3"       width="297mm" height="420mm"/>
-  <Paper-size id="A5"           _name="A5"           pwg_size="iso_a5"       width="148mm" height="210mm"/>
-  <Paper-size id="A6"           _name="A6"           pwg_size="iso_a6"       width="105mm" height="148mm"/>
-  <Paper-size id="A7"           _name="A7"           pwg_size="iso_a7"       width="74mm"  height="105mm"/>
-  <Paper-size id="A8"           _name="A8"           pwg_size="iso_a8"       width="52mm"  height="74mm"/>
-  <Paper-size id="A9"           _name="A9"           pwg_size="iso_a9"       width="37mm"  height="52mm"/>
-  <Paper-size id="A10"          _name="A10"          pwg_size="iso_a10"      width="26mm"  height="37mm"/>
-
-  <!-- ISO B series sizes -->
-  <Paper-size id="B0"           _name="B0"           pwg_size="iso_b0"       width="1000mm" height="1414mm"/>
-  <Paper-size id="B1"           _name="B1"           pwg_size="iso_b1"       width="707mm"  height="1000mm"/>
-  <Paper-size id="B2"           _name="B2"           pwg_size="iso_b2"       width="500mm"  height="707mm"/>
-  <Paper-size id="B3"           _name="B3"           pwg_size="iso_b3"       width="353mm"  height="500mm"/>
-  <Paper-size id="B4"           _name="B4"           pwg_size="iso_b4"       width="250mm"  height="353mm"/>
-  <Paper-size id="B5"           _name="B5"           pwg_size="iso_b5"       width="176mm"  height="250mm"/>
-  <Paper-size id="B6"           _name="B6"           pwg_size="iso_b6"       width="125mm"  height="176mm"/>
-  <Paper-size id="B7"           _name="B7"           pwg_size="iso_b7"       width="88mm"   height="125mm"/>
-  <Paper-size id="B8"           _name="B8"           pwg_size="iso_b8"       width="62mm"   height="88mm"/>
-  <Paper-size id="B9"           _name="B9"           pwg_size="iso_b9"       width="44mm"   height="62mm"/>
-  <Paper-size id="B10"          _name="B10"          pwg_size="iso_b10"      width="31mm"   height="44mm"/>
-
-</Glabels-paper-sizes>
diff --git a/data/templates/pearl-templates.xml b/data/templates/pearl-templates.xml
deleted file mode 100644 (file)
index 52df93d..0000000
+++ /dev/null
@@ -1,498 +0,0 @@
-<?xml version="1.0"?>
-<Glabels-templates xmlns="http://snaught.com/glabels/3.0/">
-
-  <!-- ******************************************************************** -->
-  <!-- PEARL products                                                                                                      -->
-  <!-- ******************************************************************** -->
-
-  <!-- =================================================================== -->
-  <!-- PEARL: Adress Labels, 70mm x 36mm, 24 per sheet                            -->
-  <!-- =================================================================== -->
-  <Template brand="PEARL" part="PE-8004, PE-8014" size="A4" description="Adress-Etiketten 70x36 mm Universalf&#xFC;r Laser/Inkjet">
-    <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-PE8004-2204.shtml"/>
-    <Label-rectangle id="0" width="70mm" height="36mm" round="0mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="3" ny="8" x0="0mm" y0="4.8mm" dx="70mm" dy="36mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- PEARL: Round labels, d=40mm, 24 per sheet                                                  -->
-  <!-- =================================================================== -->
-  <Template brand="PEARL" part="VM-6085, VM-6585" size="A4" description="Etiketten rund 40 mm f&#xFC;r Laser/Inkjet">
-    <Meta category="label"/>
-    <Meta category="round-label"/>
-    <Meta product_url="http://www.pearl.de/a-VM6085-2204.shtml"/>
-    <Label-round id="0" radius="20mm" waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="4" ny="6" x0="16mm" y0="13.5mm" dx="46mm" dy="46mm"/>
-    </Label-round>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- PEARL: Adress Labels, 48.8mm x 25.4mm, 40 per sheet                -->
-  <!-- =================================================================== -->
-  <Template brand="PEARL" part="PE 8008, PE 8018" size="A4" description="Adressetiketten">
-       <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-PE8008-2204.shtml"/>
-    <Label-rectangle id="0" width="48.4mm" height="25.4mm" round="0mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="4" ny="10" x0="8mm" y0="21.5mm" dx="48.4mm" dy="25.4mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- PEARL: Adress Labels, 70mm x 36mm, 24 per sheet                            -->
-  <!-- =================================================================== -->
-       <Template brand="PEARL" part="PE-8004, PE-8014" size="A4" description="Adress-Etiketten">
-       <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-PE8004-2204.shtml"/>
-    <Label-rectangle id="0" width="70mm" height="36mm" round="0mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="3" ny="8" x0="0mm" y0="4.8mm" dx="70mm" dy="36mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- PEARL: Labels, 210mm x 297mm, 1 per sheet                                          -->
-  <!-- =================================================================== -->
-       <Template brand="PEARL" part="PE-8007, PE-8017" size="A4" description="Etiketten A4">
-       <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-PE8007-2204.shtml"/>
-    <Label-rectangle id="0" width="210mm" height="297mm" round="0mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="1" ny="1" x0="0mm" y0="0mm" dx="210mm" dy="297mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- PEARL: Self-adhesive film, 210mm x 297mm, 1 per sheet              -->
-  <!-- =================================================================== -->
-       <Template brand="PEARL" part="PE-8350, PE-8352" size="A4" description="Klebefolien wetterfest f&#xFC;r Laser">
-       <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-PE8350-2010.shtml"/>
-    <Label-rectangle id="0" width="210mm" height="297mm" round="0mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="1" ny="1" x0="0mm" y0="0mm" dx="210mm" dy="297mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- PEARL: Self-adhesive film, 210mm x 297mm, 1 per sheet              -->
-  <!-- =================================================================== -->
-       <Template brand="PEARL" part="PE-8351, PE-894" size="A4" description="Klebefolien transparent f&#xFC;r Inkjet">
-       <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-PE8351-2200.shtml"/>
-    <Label-rectangle id="0" width="210mm" height="297mm" round="0mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="1" ny="1" x0="0mm" y0="0mm" dx="210mm" dy="297mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- PEARL: Application photos, 45mm x 55mm, 12 per sheet               -->
-  <!-- =================================================================== -->
-       <Template brand="PEARL" part="VM-5040, VM-5540" size="A4" description="Bewerbungsfotos">
-       <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-VM5040-2002.shtml"/>
-    <Label-rectangle id="0" width="45mm" height="55mm" round="0mm" x_waste="5mm" y_waste="5mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="3" ny="4" x0="27mm" y0="22.5mm" dx="55mm" dy="65mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- PEARL: Self-adhesive window film, 210mm x 297mm, 1 per sheet       -->
-  <!-- =================================================================== -->
-       <Template brand="PEARL" part="VM-5081, VM 5581" size="A4" description="Selbstklebende Fensterfolien">
-       <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-VM5081-2200.shtml"/>
-    <Label-rectangle id="0" width="210mm" height="297mm" round="0mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="1" ny="1" x0="0mm" y0="0mm" dx="210mm" dy="297mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- PEARL: Bottle labels, 100mm x 130mm, 4 per sheet                                           -->
-  <!-- =================================================================== -->
-       <Template brand="PEARL" part="VM-5217, VM-5517" size="A4" description="Flaschenetiketten">
-       <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-VM5217-2200.shtml"/>
-    <Label-rectangle id="0" width="100mm" height="130mm" round="0mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="2" ny="2" x0="4.5mm" y0="14mm" dx="107mm" dy="130mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- PEARL: Self-adhesive film, 210mm x 297mm, 1 per sheet                      -->
-  <!-- =================================================================== -->
-       <Template brand="PEARL" part="VM-5220, VM-5720" size="A4" description="Klebefolien wetterfest f&#xFC;r Inkjet">
-       <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-VM5220-2200.shtml"/>
-    <Label-rectangle id="0" width="210mm" height="297mm" round="0mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="1" ny="1" x0="0mm" y0="0mm" dx="210mm" dy="297mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- PEARL: Floppy disk labels, 70mm x 70mm, 12 per sheet                                       -->
-  <!-- =================================================================== -->
-       <Template brand="PEARL" part="VM-5221, VM-5721" size="A4" description="Diskettenaufkleber">
-       <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-VM5221-2204.shtml"/>
-    <Label-rectangle id="0" width="70mm" height="70mm" round="0mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="3" ny="4" x0="0mm" y0="8.5mm" dx="70mm" dy="70mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- PEARL: Address labels, 25.4mm x 16.9mm, 102 per sheet                      -->
-  <!-- =================================================================== -->
-       <Template brand="PEARL" part="VM-6083, VM-6583" size="A4" description="Adressetiketten">
-       <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-VM6083-2204.shtml"/>
-    <Label-rectangle id="0" width="25.4mm" height="16.9mm" round="1.5mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="2mm"/>
-      <Layout nx="7" ny="16" x0="9mm" y0="13mm" dx="27.9mm" dy="16.9mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- PEARL: Labels, 105mm x 148 mm, 1 per sheet                                                 -->
-  <!-- =================================================================== -->
-       <Template brand="PEARL" part="VM-6096, VM-6596" size="A6" description="Etiketten A6 f&#xFC;r Laser/Inkjet">
-       <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-VM6096-2204.shtml"/>
-    <Label-rectangle id="0" width="105mm" height="148mm" round="0mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="1" ny="1" x0="0mm" y0="0mm" dx="105mm" dy="148mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- PEARL: Labels, 148mm x 210 mm, 1 per sheet                                                 -->
-  <!-- =================================================================== -->
-       <Template brand="PEARL" part="VM-6097, VM-6597" size="A5" description="Etiketten A5">
-       <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-VM6097-2204.shtml"/>
-    <Label-rectangle id="0" width="148mm" height="210mm" round="0mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="1" ny="1" x0="0mm" y0="0mm" dx="148mm" dy="210mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- PEARL: Photo labels, 45mm x 55mm, 12 per sheet                                     -->
-  <!-- =================================================================== -->
-       <Template brand="PEARL" part="VM-6102, VM-6502" size="A4" description="Fotoetiketten">
-       <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-VM6102-2202.shtml"/>
-    <Label-rectangle id="0" width="45mm" height="55mm" round="0mm" x_waste="5mm" y_waste="5mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="3" ny="4" x0="27mm" y0="23.5mm" dx="55mm" dy="65mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- PEARL: Photo labels, 210mm x 297mm, 1 per sheet                                    -->
-  <!-- =================================================================== -->
-       <Template brand="PEARL" part="VM-6206, VM-6706" size="A4" description="Etiketten semigloss Foto f&#xFC;r Inkjet">
-       <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-VM6206-2202.shtml"/>
-    <Label-rectangle id="0" width="210mm" height="297mm" round="0mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="1" ny="1" x0="0mm" y0="0mm" dx="210mm" dy="297mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- PEARL: Address labels, 96.5mm x 42.3mm, 12 per sheet                               -->
-  <!-- =================================================================== -->
-       <Template brand="PEARL" part="VM-6232, VM-6732" size="A4" description="Adressetiketten (STAMPIT) f. Laser/Inkjet">
-       <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-VM6232-2201.shtml"/>
-    <Label-rectangle id="0" width="96.5mm" height="42.1mm" round="0mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="2mm"/>
-      <Layout nx="2" ny="6" x0="8.5mm" y0="21mm" dx="96.5mm" dy="42.1mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- PEARL: Address labels, 105mm x 74mm, 8 per sheet                                           -->
-  <!-- =================================================================== -->
-       <Template brand="PEARL" part="VM-6233, VM-6733" size="A4" description="Adressetiketten &#xBB;STAMPIT&#xAB;">
-       <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-VM6233-2204.shtml"/>
-    <Label-rectangle id="0" width="105mm" height="74mm" round="0mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="2" ny="4" x0="0mm" y0="0.5mm" dx="105mm" dy="74mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- PEARL: Address labels, 99.1mm x 57mm, 10 per sheet                                 -->
-  <!-- =================================================================== -->
-       <Template brand="PEARL" part="VM-6234, VM-6734" size="A4" description="Adressetiketten">
-       <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-VM6234-2204.shtml"/>
-    <Label-rectangle id="0" width="99.1mm" height="57mm" round="2.5mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="2" ny="5" x0="5mm" y0="6mm" dx="102.1mm" dy="57mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- PEARL: Self-adhesive abels, 210mm x 297mm, 1 per sheet                     -->
-  <!-- =================================================================== -->
-       <Template brand="PEARL" part="VM-6252, VM-6752" size="A4" description="Etiketten">
-       <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-VM6252-2202.shtml"/>
-    <Label-rectangle id="0" width="210mm" height="297mm" round="0mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="1" ny="1" x0="0mm" y0="0mm" dx="0mm" dy="297mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- PEARL: SD card labels, 20mm x 25mm, 90 per sheet                                           -->
-  <!-- =================================================================== -->
-  <Template brand="PEARL" part="VM-6398" size="A4" description="SD-Etiketten">
-       <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-VM6398-2204.shtml"/>
-    <Label-rectangle id="0" width="19.6mm" height="25mm" round="1.2mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="1.5mm"/>
-      <Layout nx="9" ny="10" x0="4.5mm" y0="10mm" dx="22.6mm" dy="28mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- PEARL: Address labels, 105mm x 41mm, 14 per sheet                                  -->
-  <!-- =================================================================== -->
-  <Template brand="PEARL" part="VM-8005, VM-8015" size="A4" description="Adressetiketten">
-       <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-PE8005-2204.shtml"/>
-    <Label-rectangle id="0" width="105mm" height="41mm" round="0mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="2" ny="7" x0="0mm" y0="5mm" dx="105mm" dy="41mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- ******************************************************************** -->
-  <!-- Sattleford products                                                                                                 -->
-  <!-- ******************************************************************** -->
-
-  <!-- =================================================================== -->
-  <!-- Sattleford: Business cards, 85mm x 54mm, 10 per sheet                                      -->
-  <!-- =================================================================== -->
-  <Template brand="Sattleford" part="VM-5019, VM-5519" size="A4" description="Visitenkarten microperforiert">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Meta product_url="http://www.pearl.de/a-VM5019-2014.shtml"/>
-    <Label-rectangle id="0" width="85mm" height="54.2mm" round="0mm" x_waste="5mm" y_waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="2" ny="5" x0="13.5mm" y0="13.5mm" dx="95mm" dy="54.2mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Sattleford: Passport photo labels, 45mm x 54mm, 12 per sheet               -->
-  <!-- =================================================================== -->
-  <Template brand="Sattleford" part="VM-5040, VM-5540" size="A4" description="Bewerbungsfotos gl&#xE4;nzend">
-    <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-VM5040-2002.shtml"/>
-    <Label-rectangle id="0" width="45mm" height="54.5mm" round="0mm" x_waste="5mm" y_waste="5mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="3" ny="4" x0="28mm" y0="24.5mm" dx="55mm" dy="64.5mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Sattleford: Business cards, 86mm x 54mm, 10 per sheet                      -->
-  <!-- =================================================================== -->
-  <Template brand="Sattleford" part="VM-5061, VM-5561" size="A4" description="Visitenkarten gestanzt">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Meta product_url="http://www.pearl.de/a-VM5061-2014.shtml"/>
-    <Label-rectangle id="0" width="86mm" height="53.8mm" round="0mm" x_waste="2.5mm" y_waste="1mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="2" ny="5" x0="16.5mm" y0="10mm" dx="91mm" dy="55.8mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Sattleford: Business cards, 85mm x 54mm, 10 per sheet                      -->
-  <!-- =================================================================== -->
-  <Template brand="Sattleford" part="VM-6059, VM-6559" size="A4" description="Visitenkarten gestanzt matt">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Meta product_url="http://www.pearl.de/a-VM6059-2013.shtml"/>
-    <Label-rectangle id="0" width="85mm" height="54mm" round="0mm" x_waste="5mm" y_waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="2" ny="5" x0="16mm" y0="14mm" dx="95mm" dy="54mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Sattleford: Business cards, 85mm x 54mm, 10 per sheet                      -->
-  <!-- =================================================================== -->
-  <Template brand="Sattleford" part="VM-6066, VM-6566" size="A4" description="Visitenkarten hochgl&#xE4;nzend">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Meta product_url="http://www.pearl.de/a-VM6066-2013.shtml"/>
-    <Label-rectangle id="0" width="85mm" height="54mm" round="0mm" x_waste="5mm" y_waste="0mm">
-      <Markup-margin size="3.175mm"/>
-      <Layout nx="2" ny="5" x0="14mm" y0="13mm" dx="95mm" dy="54mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Sattleford: Name plates, 85mm x 54mm, 10 per sheet                                 -->
-  <!-- =================================================================== -->
-  <Template brand="Sattleford" part="VM-6067, VM-6567" size="A4" description="Namensschilder">
-    <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-VM6067-5026.shtml"/>
-    <Label-rectangle id="0" width="85mm" height="54mm" round="0mm" x_waste="5mm" y_waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="2" ny="5" x0="15mm" y0="13mm" dx="95mm" dy="54mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Sattleford: Passport photo labels, 45mm x 55mm, 12 per sheet               -->
-  <!-- =================================================================== -->
-  <Template brand="Sattleford" part="VM-6102, VM-6502" size="A4" description="Bewerbungsfotos gl&#xE4;nzend">
-    <Meta category="label"/>
-    <Meta category="rectangle-label"/>
-    <Meta product_url="http://www.pearl.de/a-VM6102-2202.shtml"/>
-    <Label-rectangle id="0" width="45mm" height="55mm" round="0mm" x_waste="5mm" y_waste="5mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="3" ny="4" x0="27mm" y0="23.5mm" dx="55mm" dy="65mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Sattleford: Foldable business cards, 180mm x 50mm, 5 per sheet     -->
-  <!-- =================================================================== -->
-  <Template brand="Sattleford" part="VM-6200" size="A4" description="Visitenkarten gl&#xE4;nzend beidseitig">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Meta product_url="http://www.pearl.de/a-VM6200-2013.shtml"/>
-    <Label-rectangle id="0" width="180mm" height="50mm" round="3mm" x_waste="0mm" y_waste="2.5mm">
-      <Markup-rect x1="3.2mm" y1="3.2mm" w="83.6mm" h="43.6mm"/>
-         <Markup-rect x1="93.2mm" y1="3.2mm" w="83.6mm" h="43.6mm"/>
-         <Markup-line x1="90mm" y1="0mm" x2="90mm" y2="50mm"/>
-      <Layout nx="1" ny="5" x0="15mm" y0="14mm" dx="180mm" dy="55mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Sattleford: Business cards, 85mm x 54mm, 10 per sheet                      -->
-  <!-- =================================================================== -->
-  <Template brand="Sattleford" part="VM-6253, VM-6753" size="A4" description="Visitenkarten gestanzt gl&#xE4;nzend">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Meta product_url="http://www.pearl.de/a-VM6253-2013.shtml"/>
-    <Label-rectangle id="0" width="85mm" height="54mm" round="0mm" x_waste="1mm" y_waste="2.5mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="2" ny="5" x0="16.5mm" y0="6mm" dx="90mm" dy="55.5mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Sattleford: Foldable business cards, 170mm x 54mm, 5 per sheet     -->
-  <!-- =================================================================== -->
-  <Template brand="Sattleford" part="VM-6356, VM-5856" size="A4" description="Faltbare Visitenkarten gl&#xE4;nzend/matt">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Meta product_url="http://www.pearl.de/a-VM6356-2013.shtml"/>
-    <Label-rectangle id="0" width="170mm" height="54mm" round="0mm" x_waste="0mm" y_waste="0mm">
-      <Markup-rect x1="3.2mm" y1="3.2mm" w="78.6mm" h="47.6mm"/>
-         <Markup-rect x1="88.2mm" y1="3.2mm" w="78.6mm" h="47.6mm"/>
-         <Markup-line x1="85mm" y1="0mm" x2="85mm" y2="54mm"/>
-      <Layout nx="1" ny="5" x0="20mm" y0="14mm" dx="170mm" dy="54mm"/>
-      <Layout nx="1" ny="5" x0="20mm" y0="14mm" dx="170mm" dy="54mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Sattleford: Foldable business cards, 180mm x 50mm, 5 per sheet     -->
-  <!-- =================================================================== -->
-  <Template brand="Sattleford" part="VM-6700" size="A4" description="Faltbare Visitenkarten">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Meta product_url="http://www.pearl.de/a-VM6700-2013.shtml"/>
-    <Label-rectangle id="0" width="180mm" height="50mm" round="0mm" x_waste="0mm" y_waste="2.5mm">
-      <Markup-rect x1="3.2mm" y1="3.2mm" w="83.6mm" h="43.6mm"/>
-         <Markup-rect x1="93.2mm" y1="3.2mm" w="83.6mm" h="43.6mm"/>
-         <Markup-line x1="90mm" y1="0mm" x2="90mm" y2="50mm"/>
-      <Layout nx="1" ny="5" x0="15mm" y0="14mm" dx="180mm" dy="55mm"/>
-      <Layout nx="1" ny="5" x0="15mm" y0="14mm" dx="180mm" dy="55mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- ******************************************************************** -->
-  <!-- Your Design products                                                                                                        -->
-  <!-- ******************************************************************** -->
-
-  <!-- =================================================================== -->
-  <!-- Your Design: Membership cards, 85mm x 54.25mm, 8 per sheet                 -->
-  <!-- =================================================================== -->
-  <Template brand="Your Design" part="VM-5112, VM-5612" size="A4" description="Club-Karten">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-       <Meta print="mirrored"/>
-    <Meta product_url="http://www.pearl.de/a-VM5112-2411.shtml"/>
-    <Label-rectangle id="0" width="85mm" height="54.25mm" round="3.5mm" x_waste="7mm" y_waste="7.5mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="2" ny="4" x0="12mm" y0="21mm" dx="100mm" dy="68.75mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Your Design: Membership cards, 85mm x 54.25mm, 8 per sheet                 -->
-  <!-- =================================================================== -->
-  <Template brand="Your Design" part="VM-6310, VM-6810" size="A4" description="Club-Karten beidseitig">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-       <Meta print="mirrored"/>
-    <Meta product_url="http://www.pearl.de/a-VM6310-2013.shtml"/>
-    <Label-rectangle id="0" width="85mm" height="53.5mm" round="2.5mm" x_waste="7.5mm" y_waste="7.5mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="2" ny="4" x0="12mm" y0="18mm" dx="100mm" dy="69mm"/>
-      <Layout nx="2" ny="4" x0="12mm" y0="18mm" dx="100mm" dy="69mm"/>
-    </Label-rectangle>
-  </Template>
-</Glabels-templates>
-
-
-
-
diff --git a/data/templates/zweckform-iso-templates.xml b/data/templates/zweckform-iso-templates.xml
deleted file mode 100644 (file)
index fa3c939..0000000
+++ /dev/null
@@ -1,246 +0,0 @@
-<?xml version="1.0"?>
-<Glabels-templates>
-
-
-  <!-- ******************************************************************** -->
-  <!-- Zweckform A4 products                                                -->
-  <!-- ******************************************************************** -->
-
-  <!-- =================================================================== -->
-  <!-- Zweckform 4761: Lever Arch File Labels, 192 x 61 mm, 4 per sheet    -->
-  <!-- =================================================================== -->
-  <Template brand="Zweckform" part="4761" size="A4" _description="Lever Arch File Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="544.25" height="172.9" round="5">
-      <Markup-margin size="5"/>
-      <Layout nx="1" ny="4" x0="25" y0="75" dx="544.25" dy="172.9"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Zweckform 3477: Adress labels                                       -->
-  <!-- =================================================================== -->
-  <Template brand="Zweckform" part="3477" size="A4" _description="Address Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="105mm" height="41mm" round="0mm" x_waste="0mm" y_waste="0mm">
-      <Markup-margin size="3.2mm"/>
-      <Layout nx="2" ny="7" x0="0mm" y0="4.93mm" dx="105mm" dy="41mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Zweckform 3651: Rectangular Labels, 52 x 29.5 mm, 40 per sheet      -->
-  <!-- =================================================================== -->
-  <Template brand="Zweckform" part="3651" size="A4" _description="Rectangular Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="147.4016" height="83.6220" round="0">  
-      <Markup-margin size="5"/>
-      <Layout nx="4" ny="10" x0="2.834" y0="2.834" dx="147.4016" dy="83.6220"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- ====================================================================-->
-  <!-- Zweckform 3654: CD Labels  2 per Template                              -->
-  <!-- ====================================================================-->
-  <Template brand="Zweckform" part="3654" size="A4" _description="CD/DVD Labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-cd id="0" radius="165.78" hole="58.09" waste="5">
-      <Markup-margin size="5"/>
-      <Layout nx="1" ny="2" x0="131.78" y0="58.7998" dx="0" dy="387.97"/>
-    </Label-cd>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Zweckform 3659: Rectangular Labels, 97 x 42.125 mm, 12 per sheet    -->
-  <!-- =================================================================== -->
-  <Template brand="Zweckform" part="3659" size="A4" _description="Mailing Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="274" height="120.5" round="0">  
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="6" x0="22.68" y0="60" dx="274" dy="120.5"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Zweckform 3669:  Rectangular Labels, 70 x 50.8mm, 15 per sheet      -->
-  <!-- =================================================================== -->
-  <Template brand="Zweckform" part="3669" size="A4" _description="QSL-Karten Etiketten 70mm x 50,8mm">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="198.425" height="144" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="3" ny="5" x0="0" y0="61" dx="198.425" dy="144"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Zweckform 3688: Ordnerruecken Labels                                -->
-  <!-- =================================================================== -->
-  <Template brand="Zweckform" part="3688" size="A4" _description="File Back Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="544.252pt" height="172.913pt" round="0pt" waste="0pt">
-      <Markup-margin size="9.07087pt"/>
-      <Layout nx="1" ny="4" x0="28.3465pt" y0="76.5354pt" dx="544.252pt" dy="172.913pt"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Zweckform 4732: Multi-purpose Stick+Lift labels                     -->
-  <!-- =================================================================== -->
-  <Template brand="Zweckform" part="4732" size="A4" _description="Multi-purpose Stick+Lift Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="102.047pt" height="48.189pt" round="5.66929pt" waste="0pt">
-      <Markup-margin size="5.66929pt"/>
-      <Layout nx="5" ny="16" x0="31.1811pt" y0="36.8504pt" dx="107.717pt" dy="48.189pt"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Zweckform 4746: Video Labels, 147,32 x 20 mm, 13 per sheet          -->
-  <!-- =================================================================== -->
-  <Template brand="Zweckform" part="4746" size="A4" _description="Video Labels (back)">
-    <Meta category="label"/>
-    <Meta category="media"/>
-    <Label-rectangle id="0" width="416.6" height="56.6929" round="5">
-      <Markup-margin size="5"/>
-      <Layout nx="1" ny="13" x0="88.8377" y0="52.2425" dx="416.6" dy="56.6929"/>
-    </Label-rectangle>
-  </Template>
-  
-  <!-- =================================================================== -->
-  <!-- Zweckform 4780: Allround Labels, 48,5 x 25,4 mm, 40 per sheet       -->
-  <!-- =================================================================== -->
-  <Template brand="Zweckform" part="4780" size="A4" _description="Allround Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="137.48" height="72" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="4" ny="10" x0="23" y0="53.8898" dx="137.48" dy="72"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Zweckform 3474: Address Labels, 70 x 37 mm, 24 per sheet            -->
-  <!-- =================================================================== -->
-  <Template brand="Zweckform" part="3474" size="A4" _description="Address Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="70mm" height="37mm" round="0">
-      <Markup-margin size="0"/>
-      <Layout nx="3" ny="8" x0="0" y0="0" dx="70mm" dy="37mm"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Zweckform 3475: Address Labels, 70 x 30 mm, 24 per sheet            -->
-  <!-- =================================================================== -->
-  <Template brand="Zweckform" part="3475" size="A4" _description="Address Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="198.570" height="102.121" round="0">
-      <Markup-margin size="0"/>
-      <Layout nx="3" ny="8" x0="0" y0="12.566" dx="198.570" dy="102.121"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Zweckform 3490: Rectangular Labels, 70 x 36 mm, 24 per sheet        -->
-  <!-- =================================================================== -->
-   <Template brand="Zweckform" part="3490" size="A4" _description="Rectangular Copier Labels">
-     <Meta category="label"/>
-     <Label-rectangle id="0" width="198.425" height="102.047" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="3" ny="8" x0="" y0="12.557" dx="198.425" dy="102.047"/>
-     </Label-rectangle>
-   </Template>
-                     
-  <!-- =================================================================== -->
-  <!-- Zweckform 4781: Rectangular Labels, 97 x 42.3 mm, 12 per sheet      -->
-  <!-- =================================================================== -->
-   <Template brand="Zweckform" part="4781" size="A4" _description="Rectangular Copier Labels">
-     <Meta category="label"/>
-     <Label-rectangle id="0" width="274.960" height="119.905" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="6" x0="22.677" y0="61.030" dx="274.960" dy="119.905"/>
-     </Label-rectangle>
-   </Template>
-
-  <!-- =================================================================== -->
-  <!-- Zweckform 6091: Correction and Cover, 64.6 x 33.8 mm, 24 per sheet  -->
-  <!-- =================================================================== -->
-   <Template brand="Zweckform" part="6091" size="A4" _description="Correction and Cover-up Labels">
-     <Meta category="label"/>
-     <Label-rectangle id="0" width="183.118" height="95.811" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="3" ny="8" x0="22.961" y0="37.502" dx="183.118" dy="95.881"/>
-     </Label-rectangle>
-   </Template>
-   
-  <!-- =================================================================== -->
-  <!-- Zweckform 6015: CD Labels, 2 per Template                           -->
-  <!-- =================================================================== -->
-   <Template brand="Zweckform" part="6015" size="A4" _description="CD/DVD Labels">
-    <Meta category="label"/>
-    <Meta category="media"/>
-     <Label-cd id="0" radius="165.827" hole="58.110" waste="5">
-      <Markup-margin size="5"/>
-      <Layout nx="1" ny="2" x0="131.811" y0="60.746" dx="0" dy="388.346"/>
-     </Label-cd>
-   </Template>
-
-  <!-- =================================================================== -->
-  <!-- Zweckform 6021: Allround Labels                                     -->
-  <!-- =================================================================== -->
-  <Template brand="Zweckform" part="6021" size="A4" _description="Allround Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="130.392pt" height="47.9055pt" round="0pt" waste="0pt">
-      <Markup-margin size="5pt"/>
-      <Layout nx="4" ny="16" x0="24.0945pt" y0="39.6853pt" dx="136.913pt" dy="47.9055pt"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Zweckform 32010: Business Cards, 54.0 x 85.0 mm, 10 per sheet       -->
-  <!-- =================================================================== -->
-  <Template brand="Zweckform" part="32010" size="A4" _description="Business Cards">
-    <Meta category="card"/>
-    <Meta category="business-card"/>
-    <Label-rectangle id="0" width="240.94" height="153.07" round="0">
-      <Markup-margin size="5"/>
-      <Layout nx="2" ny="5" x0="40" y0="40" dx="269" dy="153"/>
-    </Label-rectangle>
-    <Alias brand="DECAdry" part="SCW-2090"/>
-    <Alias brand="DECAdry" part="OCB-3327"/>
-    <Alias brand="DECAdry" part="OCC-3342"/>
-    <Alias brand="DECAdry" part="DAW-327"/>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Zweckform 4760: File Labels, 192 x 38 mm, 7 per sheet               -->
-  <!-- =================================================================== -->
-  <Template brand="Zweckform" part="4760" size="A4" _description="File Back Labels">
-    <Meta category="label"/>
-    <Label-rectangle id="0" width="544.252pt" height="107.717pt" round="5.66929pt" waste="0pt">
-      <Markup-margin size="9pt"/>
-      <Layout nx="1" ny="7" x0="25.5118pt" y0="43.7386pt" dx="544.252pt" dy="107.717pt"/>
-    </Label-rectangle>
-  </Template>
-
-  <!-- =================================================================== -->
-  <!-- Zweckform 3348: Adress Labels.                                      -->
-  <!-- =================================================================== -->
-  <Template brand="Zweckform" part="3348" size="A4" _description="Address Labels">
-    <Meta category="label"/>
-    <Meta category="mail"/>
-    <Label-rectangle id="0" width="189.921pt" height="107.717pt" round="0pt" x_waste="0pt" y_waste="0pt">
-      <Markup-margin size="9pt"/>
-      <Layout nx="3" ny="7" x0="5.66929pt" y0="56.6929pt" dx="198.425pt" dy="107.717pt"/>
-    </Label-rectangle>
-  </Template>
-
-</Glabels-templates>
-
-
-
-
diff --git a/data/ui/Makefile.am b/data/ui/Makefile.am
new file mode 100644 (file)
index 0000000..833eb26
--- /dev/null
@@ -0,0 +1,15 @@
+## Process this file with automake to produce Makefile.in
+
+builderdir = $(datadir)/$(GLABELS_BRANCH)/ui/
+
+builder_DATA = \
+       property-bar.ui                         \
+       print-op-dialog-custom-widget.ui        \
+       media-select.ui                         \
+       new-label-dialog.ui                     \
+       merge-properties-dialog.ui              \
+       template-designer.ui                    \
+       prefs-dialog.ui                         \
+       object-editor.ui
+
+EXTRA_DIST = $(builder_DATA)
diff --git a/data/ui/Makefile.in b/data/ui/Makefile.in
new file mode 100644 (file)
index 0000000..9c50465
--- /dev/null
@@ -0,0 +1,491 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = data/ui
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(builderdir)"
+DATA = $(builder_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CAIRO_REQUIRED = @CAIRO_REQUIRED@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DLLTOOL = @DLLTOOL@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLABELS_BRANCH = @GLABELS_BRANCH@
+GLABELS_CFLAGS = @GLABELS_CFLAGS@
+GLABELS_LIBS = @GLABELS_LIBS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_REQUIRED = @GLIB_REQUIRED@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GTK_REQUIRED = @GTK_REQUIRED@
+GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@
+HELP_DIR = @HELP_DIR@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@
+LIBBARCODE_LIBS = @LIBBARCODE_LIBS@
+LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@
+LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
+LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
+LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
+LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@
+LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@
+LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
+LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
+LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@
+LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@
+LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@
+LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@
+LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@
+LIBIEC16022_LIBS = @LIBIEC16022_LIBS@
+LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@
+LIBOBJS = @LIBOBJS@
+LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@
+LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@
+LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@
+LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_REQUIRED = @LIBXML_REQUIRED@
+LIBZINT_CFLAGS = @LIBZINT_CFLAGS@
+LIBZINT_LIBS = @LIBZINT_LIBS@
+LIBZINT_REQUIRED = @LIBZINT_REQUIRED@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_REQUIRED = @PANGO_REQUIRED@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+builderdir = $(datadir)/$(GLABELS_BRANCH)/ui/
+builder_DATA = \
+       property-bar.ui                         \
+       print-op-dialog-custom-widget.ui        \
+       media-select.ui                         \
+       new-label-dialog.ui                     \
+       merge-properties-dialog.ui              \
+       template-designer.ui                    \
+       prefs-dialog.ui                         \
+       object-editor.ui
+
+EXTRA_DIST = $(builder_DATA)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/ui/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu data/ui/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-builderDATA: $(builder_DATA)
+       @$(NORMAL_INSTALL)
+       test -z "$(builderdir)" || $(MKDIR_P) "$(DESTDIR)$(builderdir)"
+       @list='$(builder_DATA)'; test -n "$(builderdir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(builderdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(builderdir)" || exit $$?; \
+       done
+
+uninstall-builderDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(builder_DATA)'; test -n "$(builderdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(builderdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(builderdir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(builderdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-builderDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-builderDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+       distclean distclean-generic distclean-libtool distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-builderDATA install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       uninstall uninstall-am uninstall-builderDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/data/ui/media-select.ui b/data/ui/media-select.ui
new file mode 100644 (file)
index 0000000..499ddbd
--- /dev/null
@@ -0,0 +1,362 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <requires lib="gtk+" version="2.20"/>
+  <!-- interface-naming-policy toplevel-contextual -->
+  <object class="GtkSizeGroup" id="custom_buttons_sizegroup">
+    <widgets>
+      <widget name="custom_delete_button"/>
+      <widget name="custom_edit_button"/>
+      <widget name="custom_add_button"/>
+    </widgets>
+  </object>
+  <object class="GtkWindow" id="window1">
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">window1</property>
+    <child>
+      <object class="GtkHBox" id="media_select_hbox">
+        <property name="visible">True</property>
+        <child>
+          <object class="GtkNotebook" id="notebook">
+            <property name="visible">True</property>
+            <property name="tab_hborder">0</property>
+            <child>
+              <object class="GtkVBox" id="recent_tab_vbox">
+                <property name="height_request">320</property>
+                <property name="visible">True</property>
+                <property name="border_width">6</property>
+                <child>
+                  <object class="GtkVBox" id="recent_info_vbox">
+                    <property name="visible">True</property>
+                    <child>
+                      <placeholder/>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkScrolledWindow" id="scrolledwindow2">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="hscrollbar_policy">automatic</property>
+                    <property name="vscrollbar_policy">automatic</property>
+                    <property name="shadow_type">in</property>
+                    <child>
+                      <object class="GtkTreeView" id="recent_treeview">
+                        <property name="visible">True</property>
+                        <property name="headers_visible">False</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="recent_tab_label">
+                <property name="visible">True</property>
+                <property name="xpad">12</property>
+                <property name="label" translatable="yes">Recent</property>
+              </object>
+              <packing>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="search_all_tab_vbox">
+                <property name="visible">True</property>
+                <property name="border_width">6</property>
+                <child>
+                  <object class="GtkHBox" id="hbox6">
+                    <property name="visible">True</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkHBox" id="hbox9">
+                        <property name="visible">True</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkLabel" id="label14">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">Brand:</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="brand_combo_hbox">
+                            <property name="visible">True</property>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkHBox" id="hbox7">
+                        <property name="visible">True</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkLabel" id="label12">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">Page size:</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="page_size_combo_hbox">
+                            <property name="visible">True</property>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkHBox" id="hbox8">
+                        <property name="visible">True</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkLabel" id="label13">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">Category:</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="category_combo_hbox">
+                            <property name="visible">True</property>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="padding">6</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkVBox" id="search_all_info_vbox">
+                    <property name="visible">True</property>
+                    <child>
+                      <placeholder/>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkScrolledWindow" id="scrolledwindow1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="hscrollbar_policy">automatic</property>
+                    <property name="vscrollbar_policy">automatic</property>
+                    <property name="shadow_type">in</property>
+                    <child>
+                      <object class="GtkTreeView" id="search_all_treeview">
+                        <property name="visible">True</property>
+                        <property name="headers_visible">False</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                    <property name="position">2</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="search_all_tabLlabel">
+                <property name="visible">True</property>
+                <property name="xpad">12</property>
+                <property name="label" translatable="yes">Search all</property>
+              </object>
+              <packing>
+                <property name="position">1</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="custom_tab_vbox">
+                <property name="height_request">320</property>
+                <property name="visible">True</property>
+                <property name="border_width">6</property>
+                <child>
+                  <object class="GtkVBox" id="custom_info_vbox">
+                    <property name="visible">True</property>
+                    <child>
+                      <placeholder/>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkScrolledWindow" id="scrolledwindow3">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="hscrollbar_policy">automatic</property>
+                    <property name="vscrollbar_policy">automatic</property>
+                    <property name="shadow_type">in</property>
+                    <child>
+                      <object class="GtkTreeView" id="custom_treeview">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="headers_visible">False</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHBox" id="hbox1">
+                    <property name="visible">True</property>
+                    <property name="spacing">9</property>
+                    <child>
+                      <object class="GtkButton" id="custom_add_button">
+                        <property name="label">gtk-add</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                        <property name="use_stock">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkButton" id="custom_edit_button">
+                        <property name="label">gtk-edit</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                        <property name="use_stock">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkButton" id="custom_delete_button">
+                        <property name="label">gtk-delete</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                        <property name="use_stock">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="padding">6</property>
+                    <property name="position">2</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="position">2</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label3">
+                <property name="visible">True</property>
+                <property name="xpad">12</property>
+                <property name="label" translatable="yes">Custom</property>
+              </object>
+              <packing>
+                <property name="position">2</property>
+                <property name="tab_expand">True</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/data/ui/merge-properties-dialog.ui b/data/ui/merge-properties-dialog.ui
new file mode 100644 (file)
index 0000000..6e7458e
--- /dev/null
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <requires lib="gtk+" version="2.20"/>
+  <!-- interface-naming-policy toplevel-contextual -->
+  <object class="GtkWindow" id="window1">
+    <child>
+      <object class="GtkVBox" id="merge_properties_vbox">
+        <property name="visible">True</property>
+        <property name="spacing">6</property>
+        <child>
+          <object class="GtkVBox" id="vbox1">
+            <property name="visible">True</property>
+            <property name="border_width">3</property>
+            <property name="spacing">6</property>
+            <child>
+              <object class="GtkFrame" id="frame1">
+                <property name="visible">True</property>
+                <property name="label_xalign">0</property>
+                <property name="shadow_type">none</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment1">
+                    <property name="visible">True</property>
+                    <property name="left_padding">12</property>
+                    <child>
+                      <object class="GtkTable" id="table1">
+                        <property name="visible">True</property>
+                        <property name="border_width">12</property>
+                        <property name="n_rows">2</property>
+                        <property name="n_columns">2</property>
+                        <property name="column_spacing">6</property>
+                        <property name="row_spacing">6</property>
+                        <child>
+                          <object class="GtkLabel" id="label3">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Format:</property>
+                          </object>
+                          <packing>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkVBox" id="location_vbox">
+                            <property name="visible">True</property>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options">GTK_FILL</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label4">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Location:</property>
+                          </object>
+                          <packing>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="type_combo_hbox">
+                            <property name="visible">True</property>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="label1">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Source</property>
+                    <attributes>
+                      <attribute name="weight" value="bold"/>
+                    </attributes>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkFrame" id="frame2">
+                <property name="visible">True</property>
+                <property name="label_xalign">0</property>
+                <property name="shadow_type">none</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment2">
+                    <property name="visible">True</property>
+                    <property name="left_padding">12</property>
+                    <child>
+                      <object class="GtkVBox" id="vbox3">
+                        <property name="visible">True</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkScrolledWindow" id="scrolledwindow1">
+                            <property name="width_request">500</property>
+                            <property name="height_request">350</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="border_width">6</property>
+                            <property name="hscrollbar_policy">automatic</property>
+                            <property name="vscrollbar_policy">automatic</property>
+                            <property name="shadow_type">in</property>
+                            <child>
+                              <object class="GtkTreeView" id="treeview">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                              </object>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="hbox1">
+                            <property name="visible">True</property>
+                            <property name="border_width">6</property>
+                            <property name="spacing">12</property>
+                            <child>
+                              <object class="GtkButton" id="select_all_button">
+                                <property name="label" translatable="yes">Select all</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <property name="use_underline">True</property>
+                                <property name="focus_on_click">False</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkButton" id="unselect_all_button">
+                                <property name="label" translatable="yes">Unselect all</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <property name="use_underline">True</property>
+                                <property name="focus_on_click">False</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="label2">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Record selection/preview</property>
+                    <attributes>
+                      <attribute name="weight" value="bold"/>
+                    </attributes>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/data/ui/new-label-dialog.ui b/data/ui/new-label-dialog.ui
new file mode 100644 (file)
index 0000000..3d276e1
--- /dev/null
@@ -0,0 +1,486 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <requires lib="gtk+" version="2.20"/>
+  <!-- interface-naming-policy project-wide -->
+  <object class="GtkWindow" id="window1">
+    <child>
+      <object class="GtkHBox" id="new_label_dialog_hbox">
+        <property name="visible">True</property>
+        <property name="border_width">6</property>
+        <property name="spacing">18</property>
+        <child>
+          <object class="GtkNotebook" id="notebook2">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <child>
+              <object class="GtkVBox" id="template_page_vbox">
+                <property name="visible">True</property>
+                <property name="border_width">6</property>
+                <property name="spacing">12</property>
+                <child>
+                  <object class="GtkLabel" id="label19">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Choose label or card product from hundreds of predefined templates or define your own.</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHBox" id="combo_hbox">
+                    <property name="visible">True</property>
+                    <child>
+                      <placeholder/>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label6">
+                <property name="visible">True</property>
+                <property name="label">page 1</property>
+              </object>
+              <packing>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="rotate_page_vbox">
+                <property name="visible">True</property>
+                <property name="border_width">6</property>
+                <property name="spacing">12</property>
+                <child>
+                  <object class="GtkLabel" id="label10">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Select orientation of label content.</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHBox" id="hbox2">
+                    <property name="visible">True</property>
+                    <property name="homogeneous">True</property>
+                    <child>
+                      <object class="GtkVBox" id="vbox1">
+                        <property name="visible">True</property>
+                        <property name="spacing">12</property>
+                        <child>
+                          <object class="GtkHBox" id="normal_preview_hbox">
+                            <property name="visible">True</property>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="hbox4">
+                            <property name="visible">True</property>
+                            <child>
+                              <object class="GtkRadioButton" id="normal_radio">
+                                <property name="label" translatable="yes">Normal</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="active">True</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkVBox" id="vbox2">
+                        <property name="visible">True</property>
+                        <property name="spacing">12</property>
+                        <child>
+                          <object class="GtkHBox" id="rotated_preview_hbox">
+                            <property name="visible">True</property>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="hbox5">
+                            <property name="visible">True</property>
+                            <child>
+                              <object class="GtkRadioButton" id="rotated_radio">
+                                <property name="label" translatable="yes">Rotated</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="draw_indicator">True</property>
+                                <property name="group">normal_radio</property>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label9">
+                <property name="visible">True</property>
+                <property name="label">page 2</property>
+              </object>
+              <packing>
+                <property name="position">1</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="confirm_page_vbox">
+                <property name="visible">True</property>
+                <property name="border_width">6</property>
+                <property name="spacing">12</property>
+                <child>
+                  <object class="GtkLabel" id="label11">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Please review and confirm your selection.</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHBox" id="hbox3">
+                    <property name="visible">True</property>
+                    <property name="spacing">24</property>
+                    <child>
+                      <object class="GtkVBox" id="vbox3">
+                        <property name="visible">True</property>
+                        <child>
+                          <object class="GtkVBox" id="preview_vbox">
+                            <property name="visible">True</property>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkTable" id="table1">
+                        <property name="visible">True</property>
+                        <property name="n_rows">7</property>
+                        <property name="n_columns">2</property>
+                        <property name="column_spacing">12</property>
+                        <property name="row_spacing">6</property>
+                        <child>
+                          <object class="GtkLabel" id="label1">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Description:</property>
+                          </object>
+                          <packing>
+                            <property name="top_attach">2</property>
+                            <property name="bottom_attach">3</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label2">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Page size:</property>
+                          </object>
+                          <packing>
+                            <property name="top_attach">3</property>
+                            <property name="bottom_attach">4</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label3">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Label size:</property>
+                          </object>
+                          <packing>
+                            <property name="top_attach">4</property>
+                            <property name="bottom_attach">5</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label4">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Layout:</property>
+                          </object>
+                          <packing>
+                            <property name="top_attach">5</property>
+                            <property name="bottom_attach">6</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label7">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="yalign">0</property>
+                            <property name="label" translatable="yes">Similar products:</property>
+                          </object>
+                          <packing>
+                            <property name="top_attach">6</property>
+                            <property name="bottom_attach">7</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options">GTK_FILL</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="desc_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">2</property>
+                            <property name="bottom_attach">3</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="page_size_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">3</property>
+                            <property name="bottom_attach">4</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label_size_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">4</property>
+                            <property name="bottom_attach">5</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="layout_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">5</property>
+                            <property name="bottom_attach">6</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="vendor_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label8">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Part #:</property>
+                          </object>
+                          <packing>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="part_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkScrolledWindow" id="scrolledwindow1">
+                            <property name="height_request">77</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="hscrollbar_policy">never</property>
+                            <property name="vscrollbar_policy">automatic</property>
+                            <child>
+                              <object class="GtkViewport" id="viewport1">
+                                <property name="visible">True</property>
+                                <property name="resize_mode">queue</property>
+                                <property name="shadow_type">etched-in</property>
+                                <child>
+                                  <object class="GtkLabel" id="similar_label">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="yalign">0</property>
+                                    <property name="label">1
+2
+3
+4</property>
+                                  </object>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">6</property>
+                            <property name="bottom_attach">7</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label5">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Vendor:</property>
+                          </object>
+                          <packing>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="position">2</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label18">
+                <property name="visible">True</property>
+                <property name="label">page 3</property>
+              </object>
+              <packing>
+                <property name="position">2</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/data/ui/object-editor.ui b/data/ui/object-editor.ui
new file mode 100644 (file)
index 0000000..582a19e
--- /dev/null
@@ -0,0 +1,2376 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <requires lib="gtk+" version="2.20"/>
+  <!-- interface-naming-policy toplevel-contextual -->
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="lower">1</property>
+    <property name="upper">250</property>
+    <property name="value">1</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment2">
+    <property name="upper">5</property>
+    <property name="value">1</property>
+    <property name="step_increment">0.01</property>
+    <property name="page_increment">0.10000000000000001</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment3">
+    <property name="lower">0.25</property>
+    <property name="upper">10</property>
+    <property name="value">1</property>
+    <property name="step_increment">0.25</property>
+    <property name="page_increment">1</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment4">
+    <property name="upper">100</property>
+    <property name="value">1</property>
+    <property name="step_increment">0.01</property>
+    <property name="page_increment">0.10000000000000001</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment5">
+    <property name="upper">100</property>
+    <property name="value">1</property>
+    <property name="step_increment">0.01</property>
+    <property name="page_increment">0.10000000000000001</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment6">
+    <property name="upper">100</property>
+    <property name="value">1</property>
+    <property name="step_increment">0.01</property>
+    <property name="page_increment">0.10000000000000001</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment7">
+    <property name="lower">-180</property>
+    <property name="upper">180</property>
+    <property name="step_increment">0.10000000000000001</property>
+    <property name="page_increment">5</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment8">
+    <property name="upper">100</property>
+    <property name="step_increment">0.01</property>
+    <property name="page_increment">1</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment9">
+    <property name="upper">100</property>
+    <property name="step_increment">0.01</property>
+    <property name="page_increment">1</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment10">
+    <property name="upper">100</property>
+    <property name="step_increment">0.01</property>
+    <property name="page_increment">1</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment11">
+    <property name="upper">100</property>
+    <property name="step_increment">0.01</property>
+    <property name="page_increment">1</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment12">
+    <property name="upper">100</property>
+    <property name="value">1</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment13">
+    <property name="lower">1</property>
+    <property name="upper">100</property>
+    <property name="value">1</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkSizeGroup" id="page_sizegroup">
+    <property name="mode">both</property>
+    <widgets>
+      <widget name="shadow_page_vbox"/>
+      <widget name="lsize_page_vbox"/>
+      <widget name="size_page_vbox"/>
+      <widget name="bc_page_vbox"/>
+      <widget name="data_page_vbox"/>
+      <widget name="img_page_vbox"/>
+      <widget name="fill_page_vbox"/>
+      <widget name="line_page_vbox"/>
+      <widget name="text_page_vbox"/>
+      <widget name="edit_page_vbox"/>
+    </widgets>
+  </object>
+  <object class="GtkSizeGroup" id="width_sizegroup">
+    <widgets>
+      <widget name="notebook"/>
+      <widget name="title_hbox"/>
+    </widgets>
+  </object>
+  <object class="GtkDialog" id="dialog">
+    <property name="visible">True</property>
+    <property name="border_width">6</property>
+    <property name="title" translatable="yes">dialog1</property>
+    <property name="type_hint">dialog</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox1">
+        <property name="visible">True</property>
+        <child>
+          <object class="GtkVBox" id="editor_vbox">
+            <property name="visible">True</property>
+            <property name="border_width">6</property>
+            <property name="spacing">12</property>
+            <child>
+              <object class="GtkHBox" id="title_hbox">
+                <property name="visible">True</property>
+                <property name="spacing">12</property>
+                <child>
+                  <object class="GtkImage" id="title_image">
+                    <property name="visible">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="title_label">
+                    <property name="visible">True</property>
+                    <property name="label">&lt;span weight="bold" size="larger"&gt;Xxx object properties&lt;/span&gt;</property>
+                    <property name="use_markup">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkNotebook" id="notebook">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="scrollable">True</property>
+                <child>
+                  <object class="GtkVBox" id="edit_page_vbox">
+                    <property name="visible">True</property>
+                    <property name="border_width">12</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <object class="GtkHBox" id="hbox30">
+                        <property name="visible">True</property>
+                        <child>
+                          <object class="GtkScrolledWindow" id="scrolledwindow1">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <child>
+                              <object class="GtkTextView" id="edit_text_view">
+                                <property name="width_request">232</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                              </object>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkHBox" id="hbox1">
+                        <property name="visible">True</property>
+                        <property name="spacing">12</property>
+                        <child>
+                          <object class="GtkVBox" id="edit_insert_field_vbox">
+                            <property name="visible">True</property>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="tab_fill">False</property>
+                  </packing>
+                </child>
+                <child type="tab">
+                  <object class="GtkLabel" id="edit_tab_label">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Text</property>
+                  </object>
+                  <packing>
+                    <property name="tab_fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkVBox" id="text_page_vbox">
+                    <property name="visible">True</property>
+                    <property name="border_width">12</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkHBox" id="hbox65">
+                        <property name="visible">True</property>
+                        <property name="spacing">12</property>
+                        <child>
+                          <object class="GtkLabel" id="text_family_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Family:</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="text_family_hbox">
+                            <property name="visible">True</property>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkHBox" id="hbox66">
+                        <property name="visible">True</property>
+                        <property name="spacing">12</property>
+                        <child>
+                          <object class="GtkLabel" id="text_size_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Size:</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="hbox28">
+                            <property name="visible">True</property>
+                            <property name="spacing">12</property>
+                            <child>
+                              <object class="GtkSpinButton" id="text_size_spin">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="adjustment">adjustment1</property>
+                                <property name="climb_rate">0.0099999997764800008</property>
+                                <property name="numeric">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkHBox" id="hbox67">
+                        <property name="visible">True</property>
+                        <property name="spacing">12</property>
+                        <child>
+                          <object class="GtkLabel" id="text_style_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Style:</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="hbox29">
+                            <property name="visible">True</property>
+                            <property name="spacing">12</property>
+                            <child>
+                              <object class="GtkToggleButton" id="text_bold_toggle">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <child>
+                                  <object class="GtkImage" id="image1">
+                                    <property name="visible">True</property>
+                                    <property name="stock">gtk-bold</property>
+                                  </object>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkToggleButton" id="text_italic_toggle">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <child>
+                                  <object class="GtkImage" id="image2">
+                                    <property name="visible">True</property>
+                                    <property name="stock">gtk-italic</property>
+                                  </object>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkHBox" id="hbox68">
+                        <property name="visible">True</property>
+                        <property name="spacing">12</property>
+                        <child>
+                          <object class="GtkLabel" id="text_color_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="yalign">0.14000000059604645</property>
+                            <property name="label" translatable="yes">Color:</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkVBox" id="vbox3">
+                            <property name="visible">True</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkHBox" id="hbox42">
+                                <property name="visible">True</property>
+                                <property name="spacing">6</property>
+                                <child>
+                                  <object class="GtkRadioButton" id="text_color_radio">
+                                    <property name="label" translatable="yes"> </property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="focus_on_click">False</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkHBox" id="text_color_hbox">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">12</property>
+                                    <child>
+                                      <placeholder/>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHBox" id="hbox44">
+                                <property name="visible">True</property>
+                                <property name="spacing">6</property>
+                                <child>
+                                  <object class="GtkRadioButton" id="text_color_key_radio">
+                                    <property name="label" translatable="yes">key:</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="focus_on_click">False</property>
+                                    <property name="xalign">0.54000002145767212</property>
+                                    <property name="draw_indicator">True</property>
+                                    <property name="group">text_color_radio</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkHBox" id="text_color_key_hbox">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">12</property>
+                                    <child>
+                                      <placeholder/>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">3</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkHBox" id="hbox69">
+                        <property name="visible">True</property>
+                        <property name="spacing">12</property>
+                        <child>
+                          <object class="GtkLabel" id="text_align_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Alignment:</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="hbox4">
+                            <property name="visible">True</property>
+                            <property name="spacing">12</property>
+                            <child>
+                              <object class="GtkToggleButton" id="text_left_toggle">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <child>
+                                  <object class="GtkImage" id="image3">
+                                    <property name="visible">True</property>
+                                    <property name="stock">gtk-justify-left</property>
+                                  </object>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkToggleButton" id="text_center_toggle">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <child>
+                                  <object class="GtkImage" id="image4">
+                                    <property name="visible">True</property>
+                                    <property name="stock">gtk-justify-center</property>
+                                  </object>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkToggleButton" id="text_right_toggle">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <child>
+                                  <object class="GtkImage" id="image5">
+                                    <property name="visible">True</property>
+                                    <property name="stock">gtk-justify-right</property>
+                                  </object>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">2</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">4</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkHBox" id="hbox70">
+                        <property name="visible">True</property>
+                        <property name="spacing">12</property>
+                        <child>
+                          <object class="GtkLabel" id="text_line_spacing_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Line Spacing:</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="hbox31">
+                            <property name="visible">True</property>
+                            <property name="spacing">12</property>
+                            <child>
+                              <object class="GtkSpinButton" id="text_line_spacing_spin">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="adjustment">adjustment2</property>
+                                <property name="climb_rate">0.0099999997764800008</property>
+                                <property name="digits">2</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">5</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkCheckButton" id="text_auto_shrink_check">
+                        <property name="label" translatable="yes">Allow merge to automatically shrink text</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="use_underline">True</property>
+                        <property name="draw_indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">6</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="position">1</property>
+                    <property name="tab_fill">False</property>
+                  </packing>
+                </child>
+                <child type="tab">
+                  <object class="GtkLabel" id="text_tab_label">
+                    <property name="visible">True</property>
+                    <property name="xalign">0.46000000834465027</property>
+                    <property name="label" translatable="yes">Style</property>
+                  </object>
+                  <packing>
+                    <property name="position">1</property>
+                    <property name="tab_fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkVBox" id="line_page_vbox">
+                    <property name="visible">True</property>
+                    <property name="border_width">12</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkHBox" id="hbox71">
+                        <property name="visible">True</property>
+                        <property name="spacing">12</property>
+                        <child>
+                          <object class="GtkLabel" id="line_w_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Width:</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="hbox7">
+                            <property name="visible">True</property>
+                            <property name="spacing">12</property>
+                            <child>
+                              <object class="GtkSpinButton" id="line_width_spin">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="adjustment">adjustment3</property>
+                                <property name="climb_rate">0.0099999997764800008</property>
+                                <property name="digits">2</property>
+                                <property name="numeric">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label21">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">points</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkHBox" id="hbox72">
+                        <property name="visible">True</property>
+                        <property name="spacing">12</property>
+                        <child>
+                          <object class="GtkLabel" id="line_color_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="yalign">0.14000000059604645</property>
+                            <property name="label" translatable="yes">Color:</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkVBox" id="vbox2">
+                            <property name="visible">True</property>
+                            <property name="spacing">6</property>
+                           <property name="vexpand">False</property>
+                            <child>
+                              <object class="GtkHBox" id="hbox38">
+                                <property name="visible">True</property>
+                                <property name="spacing">6</property>
+                                <child>
+                                  <object class="GtkRadioButton" id="line_color_radio">
+                                    <property name="label" translatable="yes"> </property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="focus_on_click">False</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkHBox" id="line_color_hbox">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">12</property>
+                                    <child>
+                                      <placeholder/>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHBox" id="hbox40">
+                                <property name="visible">True</property>
+                                <property name="spacing">6</property>
+                                <child>
+                                  <object class="GtkRadioButton" id="line_key_radio">
+                                    <property name="label" translatable="yes">Key:</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="focus_on_click">False</property>
+                                    <property name="draw_indicator">True</property>
+                                    <property name="group">line_color_radio</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkHBox" id="line_key_hbox">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">12</property>
+                                    <child>
+                                      <placeholder/>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="position">2</property>
+                  </packing>
+                </child>
+                <child type="tab">
+                  <object class="GtkLabel" id="line_tab_label">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Line</property>
+                  </object>
+                  <packing>
+                    <property name="position">2</property>
+                    <property name="tab_fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkVBox" id="fill_page_vbox">
+                    <property name="visible">True</property>
+                    <property name="border_width">12</property>
+                    <child>
+                      <object class="GtkHBox" id="hbox73">
+                        <property name="visible">True</property>
+                        <property name="spacing">12</property>
+                       <property name="vexpand">False</property>
+                        <child>
+                          <object class="GtkLabel" id="fill_color_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="yalign">0.14000000059604645</property>
+                            <property name="label" translatable="yes">Color:</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkVBox" id="vbox5">
+                            <property name="visible">True</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkHBox" id="hbox50">
+                                <property name="visible">True</property>
+                                <property name="spacing">6</property>
+                                <child>
+                                  <object class="GtkRadioButton" id="fill_color_radio">
+                                    <property name="label" translatable="yes"> </property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="focus_on_click">False</property>
+                                    <property name="active">True</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkHBox" id="fill_color_hbox">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">12</property>
+                                    <child>
+                                      <placeholder/>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHBox" id="hbox52">
+                                <property name="visible">True</property>
+                                <property name="spacing">6</property>
+                                <child>
+                                  <object class="GtkRadioButton" id="fill_key_radio">
+                                    <property name="label" translatable="yes">Key:</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="focus_on_click">False</property>
+                                    <property name="draw_indicator">True</property>
+                                    <property name="group">fill_color_radio</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkHBox" id="fill_key_hbox">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">12</property>
+                                    <child>
+                                      <placeholder/>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="position">3</property>
+                  </packing>
+                </child>
+                <child type="tab">
+                  <object class="GtkLabel" id="fill_tab_label">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Fill</property>
+                  </object>
+                  <packing>
+                    <property name="position">3</property>
+                    <property name="tab_fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkVBox" id="img_page_vbox">
+                    <property name="visible">True</property>
+                    <property name="border_width">12</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkHBox" id="hbox74">
+                        <property name="visible">True</property>
+                        <property name="spacing">12</property>
+                        <child>
+                          <object class="GtkRadioButton" id="img_file_radio">
+                            <property name="label" translatable="yes">File:</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="use_underline">True</property>
+                            <property name="focus_on_click">False</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkFileChooserButton" id="img_file_button">
+                            <property name="visible">True</property>
+                            <property name="show_hidden">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkHBox" id="hbox75">
+                        <property name="visible">True</property>
+                        <property name="spacing">12</property>
+                        <child>
+                          <object class="GtkRadioButton" id="img_key_radio">
+                            <property name="label" translatable="yes">Key:</property>
+                            <property name="visible">True</property>
+                            <property name="sensitive">False</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="use_underline">True</property>
+                            <property name="focus_on_click">False</property>
+                            <property name="draw_indicator">True</property>
+                            <property name="group">img_file_radio</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="img_key_hbox">
+                            <property name="visible">True</property>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="position">4</property>
+                  </packing>
+                </child>
+                <child type="tab">
+                  <object class="GtkLabel" id="img_tab_label">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Image</property>
+                  </object>
+                  <packing>
+                    <property name="position">4</property>
+                    <property name="tab_fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkVBox" id="data_page_vbox">
+                    <property name="visible">True</property>
+                    <property name="border_width">12</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkHBox" id="hbox76">
+                        <property name="visible">True</property>
+                        <property name="spacing">12</property>
+                        <child>
+                          <object class="GtkRadioButton" id="data_literal_radio">
+                            <property name="label" translatable="yes">Literal:</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="use_underline">True</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkEntry" id="data_text_entry">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkHBox" id="hbox77">
+                        <property name="visible">True</property>
+                        <property name="spacing">12</property>
+                        <child>
+                          <object class="GtkRadioButton" id="data_key_radio">
+                            <property name="label" translatable="yes">Key:</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="use_underline">True</property>
+                            <property name="draw_indicator">True</property>
+                            <property name="group">data_literal_radio</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="data_key_hbox">
+                            <property name="visible">True</property>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkHBox" id="hbox78">
+                        <property name="visible">True</property>
+                        <property name="spacing">12</property>
+                        <child>
+                          <object class="GtkLabel" id="data_fill_label">
+                            <property name="visible">True</property>
+                            <property name="label">         </property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkTable" id="table9">
+                            <property name="visible">True</property>
+                            <property name="n_rows">2</property>
+                            <property name="n_columns">2</property>
+                            <property name="column_spacing">6</property>
+                            <property name="row_spacing">6</property>
+                            <child>
+                              <object class="GtkLabel" id="data_format_label">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">format:</property>
+                              </object>
+                              <packing>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options"></property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="data_ex_label">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label">00000000000 00000</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options"></property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="data_digits_label">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">digits:</property>
+                              </object>
+                              <packing>
+                                <property name="top_attach">1</property>
+                                <property name="bottom_attach">2</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options"></property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHBox" id="hbox32">
+                                <property name="visible">True</property>
+                                <child>
+                                  <object class="GtkSpinButton" id="data_digits_spin">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="adjustment">adjustment13</property>
+                                    <property name="climb_rate">1</property>
+                                    <property name="numeric">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="top_attach">1</property>
+                                <property name="bottom_attach">2</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options">GTK_FILL</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="position">5</property>
+                  </packing>
+                </child>
+                <child type="tab">
+                  <object class="GtkLabel" id="data_tab_label">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Data</property>
+                  </object>
+                  <packing>
+                    <property name="position">5</property>
+                    <property name="tab_fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkVBox" id="bc_page_vbox">
+                    <property name="visible">True</property>
+                    <property name="border_width">12</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkTable" id="table1">
+                        <property name="visible">True</property>
+                        <property name="n_rows">2</property>
+                        <property name="n_columns">2</property>
+                        <property name="column_spacing">6</property>
+                        <property name="row_spacing">6</property>
+                       <property name="vexpand">False</property>
+                        <child>
+                          <object class="GtkLabel" id="bc_be_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Backend:</property>
+                          </object>
+                          <packing>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="bc_style_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Style:</property>
+                          </object>
+                          <packing>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="bc_backend_combo_hbox">
+                            <property name="visible">True</property>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="bc_style_combo_hbox">
+                            <property name="visible">True</property>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkCheckButton" id="bc_text_check">
+                        <property name="label" translatable="yes">Text</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="use_underline">True</property>
+                        <property name="draw_indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkCheckButton" id="bc_cs_check">
+                        <property name="label" translatable="yes">Checksum</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="use_underline">True</property>
+                        <property name="draw_indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkHBox" id="hbox80">
+                        <property name="visible">True</property>
+                        <property name="spacing">12</property>
+                       <property name="vexpand">False</property>
+                        <child>
+                          <object class="GtkLabel" id="bc_color_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="yalign">0.14000000059604645</property>
+                            <property name="label" translatable="yes">Color:</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkVBox" id="vbox4">
+                            <property name="visible">True</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkHBox" id="hbox46">
+                                <property name="visible">True</property>
+                                <property name="spacing">6</property>
+                                <child>
+                                  <object class="GtkRadioButton" id="bc_color_radio">
+                                    <property name="label" translatable="yes"> </property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="focus_on_click">False</property>
+                                    <property name="active">True</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkHBox" id="bc_color_hbox">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">12</property>
+                                    <child>
+                                      <placeholder/>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHBox" id="hbox48">
+                                <property name="visible">True</property>
+                                <property name="spacing">6</property>
+                                <child>
+                                  <object class="GtkRadioButton" id="bc_key_radio">
+                                    <property name="label" translatable="yes">Key:</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="focus_on_click">False</property>
+                                    <property name="draw_indicator">True</property>
+                                    <property name="group">bc_color_radio</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkHBox" id="bc_key_hbox">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">12</property>
+                                    <child>
+                                      <placeholder/>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">3</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="position">6</property>
+                  </packing>
+                </child>
+                <child type="tab">
+                  <object class="GtkLabel" id="bc_tab_label">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Style</property>
+                  </object>
+                  <packing>
+                    <property name="position">6</property>
+                    <property name="tab_fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkVBox" id="size_page_vbox">
+                    <property name="visible">True</property>
+                    <property name="border_width">12</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkTable" id="table6">
+                        <property name="visible">True</property>
+                        <property name="n_rows">3</property>
+                        <property name="n_columns">3</property>
+                        <property name="column_spacing">12</property>
+                        <property name="row_spacing">12</property>
+                        <child>
+                          <object class="GtkLabel" id="size_w_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Width:</property>
+                          </object>
+                          <packing>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="size_h_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Height:</property>
+                          </object>
+                          <packing>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="hbox11">
+                            <property name="visible">True</property>
+                            <property name="spacing">12</property>
+                            <child>
+                              <object class="GtkSpinButton" id="size_h_spin">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="adjustment">adjustment5</property>
+                                <property name="climb_rate">0.0099999997764800008</property>
+                                <property name="digits">2</property>
+                                <property name="snap_to_ticks">True</property>
+                                <property name="numeric">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="size_h_units_label">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">inches</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options">GTK_FILL</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="hbox13">
+                            <property name="visible">True</property>
+                            <property name="spacing">12</property>
+                            <child>
+                              <object class="GtkButton" id="size_reset_image_button">
+                                <property name="label" translatable="yes">Reset image size</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">2</property>
+                            <property name="bottom_attach">3</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="hbox10">
+                            <property name="visible">True</property>
+                            <property name="spacing">12</property>
+                            <child>
+                              <object class="GtkSpinButton" id="size_w_spin">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="adjustment">adjustment4</property>
+                                <property name="climb_rate">0.0099999997764800008</property>
+                                <property name="digits">2</property>
+                                <property name="snap_to_ticks">True</property>
+                                <property name="numeric">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="size_w_units_label">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">inches</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options">GTK_FILL</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkVBox" id="size_aspect_vbox">
+                            <property name="visible">True</property>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">2</property>
+                            <property name="right_attach">3</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options">GTK_FILL</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <placeholder/>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="position">7</property>
+                  </packing>
+                </child>
+                <child type="tab">
+                  <object class="GtkLabel" id="size_tab_label">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Size</property>
+                  </object>
+                  <packing>
+                    <property name="position">7</property>
+                    <property name="tab_fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkVBox" id="lsize_page_vbox">
+                    <property name="visible">True</property>
+                    <property name="border_width">12</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkTable" id="table7">
+                        <property name="visible">True</property>
+                        <property name="n_rows">2</property>
+                        <property name="n_columns">2</property>
+                        <property name="column_spacing">12</property>
+                        <property name="row_spacing">12</property>
+                        <child>
+                          <object class="GtkLabel" id="lsize_r_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Length:</property>
+                          </object>
+                          <packing>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="lsize_theta_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Angle:</property>
+                          </object>
+                          <packing>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="hbox25">
+                            <property name="visible">True</property>
+                            <property name="spacing">12</property>
+                            <child>
+                              <object class="GtkSpinButton" id="lsize_r_spin">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="adjustment">adjustment6</property>
+                                <property name="climb_rate">0.0099999997764800008</property>
+                                <property name="digits">2</property>
+                                <property name="snap_to_ticks">True</property>
+                                <property name="numeric">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="lsize_r_units_label">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">inches</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="y_options">GTK_FILL</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="hbox26">
+                            <property name="visible">True</property>
+                            <property name="spacing">12</property>
+                            <child>
+                              <object class="GtkSpinButton" id="lsize_theta_spin">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="adjustment">adjustment7</property>
+                                <property name="climb_rate">0.0099999997764800008</property>
+                                <property name="digits">1</property>
+                                <property name="snap_to_ticks">True</property>
+                                <property name="numeric">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label38">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">degrees</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options">GTK_FILL</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="position">8</property>
+                  </packing>
+                </child>
+                <child type="tab">
+                  <object class="GtkLabel" id="lsize_tab_label">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Size</property>
+                  </object>
+                  <packing>
+                    <property name="position">8</property>
+                    <property name="tab_fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkVBox" id="pos_page_vbox">
+                    <property name="visible">True</property>
+                    <property name="border_width">12</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkTable" id="table8">
+                        <property name="visible">True</property>
+                        <property name="n_rows">2</property>
+                        <property name="n_columns">3</property>
+                        <property name="column_spacing">12</property>
+                        <property name="row_spacing">12</property>
+                        <child>
+                          <object class="GtkLabel" id="pos_x_label">
+                            <property name="width_request">50</property>
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">X:</property>
+                          </object>
+                          <packing>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="pos_y_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Y:</property>
+                          </object>
+                          <packing>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="pos_x_units_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">inches</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">2</property>
+                            <property name="right_attach">3</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="pos_y_units_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">inches</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">2</property>
+                            <property name="right_attach">3</property>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkSpinButton" id="pos_x_spin">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="adjustment">adjustment8</property>
+                            <property name="climb_rate">0.0099999997764800008</property>
+                            <property name="digits">2</property>
+                            <property name="snap_to_ticks">True</property>
+                            <property name="numeric">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="x_options"></property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkSpinButton" id="pos_y_spin">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="adjustment">adjustment9</property>
+                            <property name="climb_rate">0.0099999997764800008</property>
+                            <property name="digits">2</property>
+                            <property name="snap_to_ticks">True</property>
+                            <property name="numeric">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options"></property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="position">9</property>
+                  </packing>
+                </child>
+                <child type="tab">
+                  <object class="GtkLabel" id="pos_tab_label">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Position</property>
+                  </object>
+                  <packing>
+                    <property name="position">9</property>
+                    <property name="tab_fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkVBox" id="shadow_page_vbox">
+                    <property name="visible">True</property>
+                    <property name="border_width">12</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkCheckButton" id="shadow_enable_check">
+                        <property name="label" translatable="yes">Enable shadow</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="use_underline">True</property>
+                        <property name="draw_indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkVBox" id="shadow_controls_table">
+                        <property name="visible">True</property>
+                        <property name="spacing">12</property>
+                       <property name="vexpand">False</property>
+                        <child>
+                          <object class="GtkHBox" id="hbox63">
+                            <property name="visible">True</property>
+                            <property name="spacing">12</property>
+                            <child>
+                              <object class="GtkLabel" id="label40">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">X Offset:</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHBox" id="hbox54">
+                                <property name="visible">True</property>
+                                <property name="spacing">12</property>
+                                <child>
+                                  <object class="GtkSpinButton" id="shadow_x_spin">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="adjustment">adjustment10</property>
+                                    <property name="climb_rate">0.0099999997764800008</property>
+                                    <property name="digits">2</property>
+                                    <property name="snap_to_ticks">True</property>
+                                    <property name="numeric">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="shadow_x_units_label">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes">inches</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="hbox64">
+                            <property name="visible">True</property>
+                            <property name="spacing">12</property>
+                            <child>
+                              <object class="GtkLabel" id="label41">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Y Offset:</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHBox" id="hbox55">
+                                <property name="visible">True</property>
+                                <property name="spacing">12</property>
+                                <child>
+                                  <object class="GtkSpinButton" id="shadow_y_spin">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="adjustment">adjustment11</property>
+                                    <property name="climb_rate">0.0099999997764800008</property>
+                                    <property name="digits">2</property>
+                                    <property name="snap_to_ticks">True</property>
+                                    <property name="numeric">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="shadow_y_units_label">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes">inches</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="hbox61">
+                            <property name="visible">True</property>
+                            <property name="spacing">12</property>
+                            <child>
+                              <object class="GtkLabel" id="label45">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="yalign">0.14000000059604645</property>
+                                <property name="label" translatable="yes">Color:</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkVBox" id="vbox7">
+                                <property name="visible">True</property>
+                                <property name="spacing">6</property>
+                                <child>
+                                  <object class="GtkHBox" id="hbox57">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">6</property>
+                                    <child>
+                                      <object class="GtkRadioButton" id="shadow_color_radio">
+                                        <property name="label" translatable="yes"> </property>
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="receives_default">False</property>
+                                        <property name="use_underline">True</property>
+                                        <property name="focus_on_click">False</property>
+                                        <property name="draw_indicator">True</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkHBox" id="shadow_color_hbox">
+                                        <property name="visible">True</property>
+                                        <property name="spacing">12</property>
+                                        <child>
+                                          <placeholder/>
+                                        </child>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkHBox" id="hbox59">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">6</property>
+                                    <child>
+                                      <object class="GtkRadioButton" id="shadow_key_radio">
+                                        <property name="label" translatable="yes">Key:</property>
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="receives_default">False</property>
+                                        <property name="use_underline">True</property>
+                                        <property name="focus_on_click">False</property>
+                                        <property name="draw_indicator">True</property>
+                                        <property name="group">shadow_color_radio</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkHBox" id="shadow_key_hbox">
+                                        <property name="visible">True</property>
+                                        <property name="spacing">12</property>
+                                        <child>
+                                          <placeholder/>
+                                        </child>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">True</property>
+                                        <property name="fill">True</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">2</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="hbox62">
+                            <property name="visible">True</property>
+                            <property name="spacing">12</property>
+                            <child>
+                              <object class="GtkLabel" id="label46">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Opacity:</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHBox" id="hbox56">
+                                <property name="visible">True</property>
+                                <property name="spacing">12</property>
+                                <child>
+                                  <object class="GtkSpinButton" id="shadow_opacity_spin">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="adjustment">adjustment12</property>
+                                    <property name="climb_rate">1</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label47">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes">%</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">3</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="position">10</property>
+                  </packing>
+                </child>
+                <child type="tab">
+                  <object class="GtkLabel" id="shadow_tab_label">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Shadow</property>
+                  </object>
+                  <packing>
+                    <property name="position">10</property>
+                    <property name="tab_fill">False</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">2</property>
+          </packing>
+        </child>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area1">
+            <property name="visible">True</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="closebutton1">
+                <property name="label">gtk-close</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-7">closebutton1</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/ui/prefs-dialog.ui b/data/ui/prefs-dialog.ui
new file mode 100644 (file)
index 0000000..337e2e8
--- /dev/null
@@ -0,0 +1,809 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <requires lib="gtk+" version="2.20"/>
+  <!-- interface-naming-policy toplevel-contextual -->
+  <object class="GtkAdjustment" id="adjustment3">
+    <property name="lower">0.25</property>
+    <property name="upper">4</property>
+    <property name="value">1</property>
+    <property name="step_increment">0.25</property>
+    <property name="page_increment">1</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment2">
+    <property name="upper">5</property>
+    <property name="value">1</property>
+    <property name="step_increment">0.01</property>
+    <property name="page_increment">0.10000000000000001</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="lower">1</property>
+    <property name="upper">100</property>
+    <property name="value">1</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkDialog" id="dialog1">
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">gLabels Preferences</property>
+    <property name="type_hint">dialog</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox1">
+        <property name="visible">True</property>
+        <child>
+          <object class="GtkNotebook" id="prefs_notebook">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <child>
+              <object class="GtkVBox" id="vbox1">
+                <property name="visible">True</property>
+                <property name="border_width">12</property>
+                <property name="spacing">12</property>
+                <child>
+                  <object class="GtkLabel" id="label3">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Select locale specific behavior.</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkFrame" id="frame1">
+                    <property name="visible">True</property>
+                    <property name="label_xalign">0</property>
+                    <property name="shadow_type">none</property>
+                    <child>
+                      <object class="GtkHBox" id="hbox1">
+                        <property name="visible">True</property>
+                        <child>
+                          <object class="GtkLabel" id="label6">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">   </property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkVBox" id="vbox2">
+                            <property name="visible">True</property>
+                            <property name="border_width">6</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkRadioButton" id="units_points_radio">
+                                <property name="label" translatable="yes">Points</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkRadioButton" id="units_inches_radio">
+                                <property name="label" translatable="yes">Inches</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                                <property name="group">units_points_radio</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkRadioButton" id="units_mm_radio">
+                                <property name="label" translatable="yes">Millimeters</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                                <property name="group">units_points_radio</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">2</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                    <child type="label">
+                      <object class="GtkLabel" id="label4">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Units</property>
+                        <attributes>
+                          <attribute name="weight" value="bold"/>
+                        </attributes>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkFrame" id="frame2">
+                    <property name="visible">True</property>
+                    <property name="label_xalign">0</property>
+                    <property name="shadow_type">none</property>
+                    <child>
+                      <object class="GtkHBox" id="hbox2">
+                        <property name="visible">True</property>
+                        <child>
+                          <object class="GtkLabel" id="label7">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">   </property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkVBox" id="vbox3">
+                            <property name="visible">True</property>
+                            <property name="border_width">6</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkRadioButton" id="page_size_us_letter_radio">
+                                <property name="label" translatable="yes">US Letter</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkRadioButton" id="page_size_a4_radio">
+                                <property name="label" translatable="yes">ISO A4</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                                <property name="group">page_size_us_letter_radio</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                    <child type="label">
+                      <object class="GtkLabel" id="label5">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Default page size</property>
+                        <attributes>
+                          <attribute name="weight" value="bold"/>
+                        </attributes>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">2</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label1">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Locale</property>
+              </object>
+              <packing>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox4">
+                <property name="visible">True</property>
+                <property name="border_width">12</property>
+                <property name="spacing">12</property>
+                <child>
+                  <object class="GtkLabel" id="label8">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Select default properties for new objects.</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkFrame" id="frame3">
+                    <property name="visible">True</property>
+                    <property name="label_xalign">0</property>
+                    <property name="shadow_type">none</property>
+                    <child>
+                      <object class="GtkHBox" id="hbox3">
+                        <property name="visible">True</property>
+                        <child>
+                          <object class="GtkLabel" id="label12">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">   </property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkTable" id="table1">
+                            <property name="visible">True</property>
+                            <property name="n_rows">4</property>
+                            <property name="n_columns">2</property>
+                            <property name="column_spacing">12</property>
+                            <property name="row_spacing">12</property>
+                            <child>
+                              <object class="GtkLabel" id="label15">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Font:</property>
+                              </object>
+                              <packing>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options"></property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label16">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Color:</property>
+                              </object>
+                              <packing>
+                                <property name="top_attach">1</property>
+                                <property name="bottom_attach">2</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options"></property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label17">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Alignment:</property>
+                              </object>
+                              <packing>
+                                <property name="top_attach">2</property>
+                                <property name="bottom_attach">3</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options"></property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label22">
+                                <property name="width_request">90</property>
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Line Spacing:</property>
+                              </object>
+                              <packing>
+                                <property name="top_attach">3</property>
+                                <property name="bottom_attach">4</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options"></property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHBox" id="hbox6">
+                                <property name="visible">True</property>
+                                <property name="spacing">12</property>
+                                <child>
+                                  <object class="GtkHBox" id="text_family_hbox">
+                                    <property name="visible">True</property>
+                                    <child>
+                                      <placeholder/>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkSpinButton" id="text_size_spin">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="adjustment">adjustment1</property>
+                                    <property name="climb_rate">1</property>
+                                    <property name="numeric">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkToggleButton" id="text_bold_toggle">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <child>
+                                      <object class="GtkImage" id="image6">
+                                        <property name="visible">True</property>
+                                        <property name="stock">gtk-bold</property>
+                                      </object>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">2</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkToggleButton" id="text_italic_toggle">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <child>
+                                      <object class="GtkImage" id="image7">
+                                        <property name="visible">True</property>
+                                        <property name="stock">gtk-italic</property>
+                                      </object>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">3</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="y_options">GTK_FILL</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHBox" id="text_color_hbox">
+                                <property name="visible">True</property>
+                                <property name="spacing">12</property>
+                                <child>
+                                  <placeholder/>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="top_attach">1</property>
+                                <property name="bottom_attach">2</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options">GTK_FILL</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHBox" id="hbox8">
+                                <property name="visible">True</property>
+                                <property name="spacing">12</property>
+                                <child>
+                                  <object class="GtkToggleButton" id="text_left_toggle">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <child>
+                                      <object class="GtkImage" id="image3">
+                                        <property name="visible">True</property>
+                                        <property name="stock">gtk-justify-left</property>
+                                      </object>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkToggleButton" id="text_center_toggle">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <child>
+                                      <object class="GtkImage" id="image4">
+                                        <property name="visible">True</property>
+                                        <property name="stock">gtk-justify-center</property>
+                                      </object>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkToggleButton" id="text_right_toggle">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <child>
+                                      <object class="GtkImage" id="image5">
+                                        <property name="visible">True</property>
+                                        <property name="stock">gtk-justify-right</property>
+                                      </object>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">2</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="top_attach">2</property>
+                                <property name="bottom_attach">3</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options">GTK_FILL</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHBox" id="hbox12">
+                                <property name="visible">True</property>
+                                <property name="spacing">40</property>
+                                <child>
+                                  <object class="GtkSpinButton" id="text_line_spacing_spin">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="adjustment">adjustment2</property>
+                                    <property name="climb_rate">0.0099999997764800008</property>
+                                    <property name="digits">2</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="top_attach">3</property>
+                                <property name="bottom_attach">4</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options">GTK_FILL</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                    <child type="label">
+                      <object class="GtkLabel" id="label9">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Text</property>
+                        <attributes>
+                          <attribute name="weight" value="bold"/>
+                        </attributes>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkFrame" id="frame4">
+                    <property name="visible">True</property>
+                    <property name="label_xalign">0</property>
+                    <property name="shadow_type">none</property>
+                    <child>
+                      <object class="GtkHBox" id="hbox4">
+                        <property name="visible">True</property>
+                        <child>
+                          <object class="GtkLabel" id="label13">
+                            <property name="visible">True</property>
+                            <property name="label">   </property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkTable" id="table2">
+                            <property name="visible">True</property>
+                            <property name="n_rows">2</property>
+                            <property name="n_columns">2</property>
+                            <property name="column_spacing">12</property>
+                            <property name="row_spacing">12</property>
+                            <child>
+                              <object class="GtkLabel" id="label18">
+                                <property name="width_request">90</property>
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Width:</property>
+                              </object>
+                              <packing>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options"></property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label19">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Color:</property>
+                              </object>
+                              <packing>
+                                <property name="top_attach">1</property>
+                                <property name="bottom_attach">2</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options"></property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHBox" id="hbox9">
+                                <property name="visible">True</property>
+                                <property name="spacing">12</property>
+                                <child>
+                                  <object class="GtkSpinButton" id="line_width_spin">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="adjustment">adjustment3</property>
+                                    <property name="climb_rate">0.0099999997764800008</property>
+                                    <property name="digits">2</property>
+                                    <property name="numeric">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label21">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes">points</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="y_options">GTK_FILL</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHBox" id="line_color_hbox">
+                                <property name="visible">True</property>
+                                <property name="spacing">12</property>
+                                <child>
+                                  <placeholder/>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="top_attach">1</property>
+                                <property name="bottom_attach">2</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options">GTK_FILL</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                    <child type="label">
+                      <object class="GtkLabel" id="label10">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Line</property>
+                        <attributes>
+                          <attribute name="weight" value="bold"/>
+                        </attributes>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">2</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkFrame" id="frame5">
+                    <property name="visible">True</property>
+                    <property name="label_xalign">0</property>
+                    <property name="shadow_type">none</property>
+                    <child>
+                      <object class="GtkHBox" id="hbox5">
+                        <property name="visible">True</property>
+                        <child>
+                          <object class="GtkLabel" id="label14">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">   </property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkTable" id="table4">
+                            <property name="visible">True</property>
+                            <property name="n_columns">2</property>
+                            <property name="column_spacing">12</property>
+                            <property name="row_spacing">12</property>
+                            <child>
+                              <object class="GtkLabel" id="label20">
+                                <property name="width_request">90</property>
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Color:</property>
+                              </object>
+                              <packing>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options"></property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHBox" id="fill_color_hbox">
+                                <property name="visible">True</property>
+                                <property name="spacing">12</property>
+                                <child>
+                                  <placeholder/>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="y_options">GTK_FILL</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                    <child type="label">
+                      <object class="GtkLabel" id="label11">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Fill</property>
+                        <attributes>
+                          <attribute name="weight" value="bold"/>
+                        </attributes>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">3</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label2">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Object defaults</property>
+              </object>
+              <packing>
+                <property name="position">1</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">2</property>
+          </packing>
+        </child>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area1">
+            <property name="visible">True</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="closebutton1">
+                <property name="label">gtk-close</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-7">closebutton1</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/ui/print-op-dialog-custom-widget.ui b/data/ui/print-op-dialog-custom-widget.ui
new file mode 100644 (file)
index 0000000..f6662b5
--- /dev/null
@@ -0,0 +1,478 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <requires lib="gtk+" version="2.20"/>
+  <!-- interface-naming-policy toplevel-contextual -->
+  <object class="GtkAdjustment" id="adjustment5">
+    <property name="lower">1</property>
+    <property name="upper">100</property>
+    <property name="value">1</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment4">
+    <property name="lower">1</property>
+    <property name="upper">100</property>
+    <property name="value">1</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment3">
+    <property name="lower">1</property>
+    <property name="upper">100</property>
+    <property name="value">1</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment2">
+    <property name="lower">1</property>
+    <property name="upper">100</property>
+    <property name="value">1</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="lower">1</property>
+    <property name="upper">100</property>
+    <property name="value">1</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkWindow" id="window1">
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">window1</property>
+    <child>
+      <object class="GtkHBox" id="print_custom_widget_hbox">
+        <property name="visible">True</property>
+        <property name="border_width">12</property>
+        <property name="spacing">3</property>
+        <child>
+          <placeholder/>
+        </child>
+        <child>
+          <object class="GtkVBox" id="vbox1">
+            <property name="visible">True</property>
+            <property name="spacing">12</property>
+            <property name="vexpand">False</property>
+            <child>
+              <object class="GtkVBox" id="vbox3">
+                <property name="visible">True</property>
+                <property name="spacing">12</property>
+               <property name="vexpand">False</property>
+                <child>
+                  <object class="GtkFrame" id="simple_frame">
+                    <property name="visible">True</property>
+                    <property name="label_xalign">0</property>
+                    <property name="shadow_type">none</property>
+                    <child>
+                      <object class="GtkAlignment" id="alignment1">
+                        <property name="visible">True</property>
+                        <property name="left_padding">12</property>
+                        <child>
+                          <object class="GtkVBox" id="copies_vbox">
+                            <property name="visible">True</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkHBox" id="hbox1">
+                                <property name="visible">True</property>
+                                <property name="spacing">6</property>
+                                <child>
+                                  <object class="GtkRadioButton" id="simple_sheets_radio">
+                                    <property name="label" translatable="yes">Sheets:</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="active">True</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkSpinButton" id="simple_sheets_spin">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="invisible_char">●</property>
+                                    <property name="adjustment">adjustment1</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHBox" id="hbox2">
+                                <property name="visible">True</property>
+                                <property name="spacing">6</property>
+                                <child>
+                                  <object class="GtkRadioButton" id="simple_labels_radio">
+                                    <property name="label" translatable="yes">Labels</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="active">True</property>
+                                    <property name="draw_indicator">True</property>
+                                    <property name="group">simple_sheets_radio</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkHBox" id="hbox3">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">3</property>
+                                    <child>
+                                      <object class="GtkLabel" id="label1">
+                                        <property name="visible">True</property>
+                                        <property name="label" translatable="yes">from:</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkSpinButton" id="simple_first_spin">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="invisible_char">●</property>
+                                        <property name="adjustment">adjustment2</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="padding">3</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkHBox" id="hbox4">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">3</property>
+                                    <child>
+                                      <object class="GtkLabel" id="label5">
+                                        <property name="visible">True</property>
+                                        <property name="label" translatable="yes">to:</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkSpinButton" id="simple_last_spin">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="invisible_char">●</property>
+                                        <property name="adjustment">adjustment3</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="padding">3</property>
+                                    <property name="position">2</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child type="label">
+                      <object class="GtkLabel" id="label2">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Copies</property>
+                        <attributes>
+                          <attribute name="weight" value="bold"/>
+                        </attributes>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkFrame" id="merge_frame">
+                    <property name="visible">True</property>
+                    <property name="label_xalign">0</property>
+                    <property name="shadow_type">none</property>
+                    <child>
+                      <object class="GtkAlignment" id="alignment2">
+                        <property name="visible">True</property>
+                        <property name="left_padding">12</property>
+                        <child>
+                          <object class="GtkVBox" id="prmerge_vbox">
+                            <property name="visible">True</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkHBox" id="hbox5">
+                                <property name="visible">True</property>
+                                <property name="spacing">6</property>
+                                <child>
+                                  <object class="GtkLabel" id="label6">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes">Start on label</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkSpinButton" id="merge_first_spin">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="invisible_char">●</property>
+                                    <property name="adjustment">adjustment4</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label7">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes">on 1st sheet</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">2</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHBox" id="hbox6">
+                                <property name="visible">True</property>
+                                <property name="spacing">6</property>
+                                <child>
+                                  <object class="GtkLabel" id="label8">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes">Copies:</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkSpinButton" id="merge_copies_spin">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="invisible_char">●</property>
+                                    <property name="adjustment">adjustment5</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkHBox" id="merge_collate_hbox">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">12</property>
+                                    <child>
+                                      <object class="GtkCheckButton" id="merge_collate_check">
+                                        <property name="label" translatable="yes">Collate</property>
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="receives_default">False</property>
+                                        <property name="draw_indicator">True</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkImage" id="merge_collate_image">
+                                        <property name="visible">True</property>
+                                        <property name="stock">gtk-missing-image</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">True</property>
+                                        <property name="fill">True</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="padding">12</property>
+                                    <property name="position">2</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child type="label">
+                      <object class="GtkLabel" id="label3">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Merge Control</property>
+                        <attributes>
+                          <attribute name="weight" value="bold"/>
+                        </attributes>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkFrame" id="frame3">
+                <property name="visible">True</property>
+                <property name="label_xalign">0</property>
+                <property name="shadow_type">none</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment3">
+                    <property name="visible">True</property>
+                    <property name="left_padding">12</property>
+                    <child>
+                      <object class="GtkVBox" id="vbox2">
+                        <property name="visible">True</property>
+                        <child>
+                          <object class="GtkCheckButton" id="outline_check">
+                            <property name="label" translatable="yes">print outlines (to test printer alignment)</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="use_underline">True</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkCheckButton" id="reverse_check">
+                            <property name="label" translatable="yes">print in reverse (i.e. a mirror image)</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="use_underline">True</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkCheckButton" id="crop_marks_check">
+                            <property name="label" translatable="yes">print crop marks</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="use_underline">True</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">2</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="label4">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Options</property>
+                    <attributes>
+                      <attribute name="weight" value="bold"/>
+                    </attributes>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/data/ui/property-bar.ui b/data/ui/property-bar.ui
new file mode 100644 (file)
index 0000000..0d3914a
--- /dev/null
@@ -0,0 +1,237 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <requires lib="gtk+" version="2.20"/>
+  <!-- interface-naming-policy toplevel-contextual -->
+  <object class="GtkAdjustment" id="adjustment2">
+    <property name="lower">0.25</property>
+    <property name="upper">4</property>
+    <property name="value">1</property>
+    <property name="step_increment">0.25</property>
+    <property name="page_increment">1</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="lower">1</property>
+    <property name="upper">250</property>
+    <property name="value">1</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkWindow" id="window1">
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">window1</property>
+    <child>
+      <object class="GtkToolbar" id="property_toolbar">
+        <property name="visible">True</property>
+        <property name="toolbar_style">icons</property>
+        <property name="show_arrow">False</property>
+        <child>
+          <object class="GtkToolItem" id="toolitem1">
+            <property name="visible">True</property>
+            <child>
+              <object class="GtkEventBox" id="font_family_eventbox">
+                <property name="visible">True</property>
+                <property name="tooltip_text" translatable="yes">Font family</property>
+                <property name="visible_window">False</property>
+                <child>
+                  <placeholder/>
+                </child>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkToolItem" id="toolitem2">
+            <property name="visible">True</property>
+            <child>
+              <object class="GtkAlignment" id="alignment1">
+                <property name="visible">True</property>
+                <property name="left_padding">6</property>
+                <child>
+                  <object class="GtkSpinButton" id="font_size_spin">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="tooltip_text" translatable="yes">Font size</property>
+                    <property name="adjustment">adjustment1</property>
+                    <property name="climb_rate">1</property>
+                  </object>
+                </child>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkSeparatorToolItem" id="separatortoolitem1">
+            <property name="visible">True</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkToggleToolButton" id="font_bold_toggle">
+            <property name="visible">True</property>
+            <property name="tooltip_text" translatable="yes">Bold</property>
+            <property name="use_underline">True</property>
+            <property name="stock_id">gtk-bold</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="homogeneous">True</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkToggleToolButton" id="font_italic_toggle">
+            <property name="visible">True</property>
+            <property name="tooltip_text" translatable="yes">Italic</property>
+            <property name="use_underline">True</property>
+            <property name="stock_id">gtk-italic</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="homogeneous">True</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkSeparatorToolItem" id="separatortoolitem2">
+            <property name="visible">True</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkRadioToolButton" id="text_align_left_radio">
+            <property name="visible">True</property>
+            <property name="tooltip_text" translatable="yes">Left align</property>
+            <property name="use_underline">True</property>
+            <property name="stock_id">gtk-justify-left</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="homogeneous">True</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkRadioToolButton" id="text_align_center_radio">
+            <property name="visible">True</property>
+            <property name="tooltip_text" translatable="yes">Center align</property>
+            <property name="use_underline">True</property>
+            <property name="stock_id">gtk-justify-center</property>
+            <property name="group">text_align_left_radio</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="homogeneous">True</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkRadioToolButton" id="text_align_right_radio">
+            <property name="visible">True</property>
+            <property name="tooltip_text" translatable="yes">Right align</property>
+            <property name="use_underline">True</property>
+            <property name="stock_id">gtk-justify-right</property>
+            <property name="group">text_align_left_radio</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="homogeneous">True</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkSeparatorToolItem" id="separatortoolitem3">
+            <property name="visible">True</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkToolItem" id="toolitem3">
+            <property name="visible">True</property>
+            <child>
+              <object class="GtkEventBox" id="text_color_eventbox">
+                <property name="visible">True</property>
+                <property name="tooltip_text" translatable="yes">Text color</property>
+                <property name="visible_window">False</property>
+                <child>
+                  <placeholder/>
+                </child>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkToolItem" id="toolitem4">
+            <property name="visible">True</property>
+            <child>
+              <object class="GtkEventBox" id="fill_color_eventbox">
+                <property name="visible">True</property>
+                <property name="tooltip_text" translatable="yes">Fill color</property>
+                <property name="visible_window">False</property>
+                <child>
+                  <placeholder/>
+                </child>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkToolItem" id="toolitem5">
+            <property name="visible">True</property>
+            <child>
+              <object class="GtkEventBox" id="line_color_eventbox">
+                <property name="visible">True</property>
+                <property name="tooltip_text" translatable="yes">Line color</property>
+                <property name="visible_window">False</property>
+                <child>
+                  <placeholder/>
+                </child>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkSeparatorToolItem" id="separatortoolitem4">
+            <property name="visible">True</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkToolItem" id="toolitem6">
+            <property name="visible">True</property>
+            <child>
+              <object class="GtkSpinButton" id="line_width_spin">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="tooltip_text" translatable="yes">Line width</property>
+                <property name="adjustment">adjustment2</property>
+                <property name="climb_rate">1</property>
+                <property name="digits">2</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/data/ui/template-designer.ui b/data/ui/template-designer.ui
new file mode 100644 (file)
index 0000000..a4be629
--- /dev/null
@@ -0,0 +1,2448 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <requires lib="gtk+" version="2.20"/>
+  <!-- interface-naming-policy toplevel-contextual -->
+  <object class="GtkAdjustment" id="adjustment30">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment29">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment28">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment27">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment26">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment25">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment24">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment23">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment22">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment21">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment20">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment19">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment18">
+    <property name="lower">1</property>
+    <property name="upper">2</property>
+    <property name="value">1</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">1</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment17">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment16">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment15">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment14">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment13">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment12">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment11">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment10">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment9">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment8">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment7">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment6">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment5">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment4">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment3">
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment2">
+    <property name="upper">100</property>
+    <property name="value">1</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="upper">100</property>
+    <property name="value">1</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkWindow" id="window">
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">window1</property>
+    <child>
+      <object class="GtkNotebook" id="notebook">
+        <property name="visible">True</property>
+        <property name="can_focus">True</property>
+        <property name="border_width">6</property>
+        <child>
+          <object class="GtkLabel" id="start_page">
+            <property name="visible">True</property>
+            <property name="label" translatable="yes">Welcome to the gLabels Template Designer.
+
+This dialog will assist you in the creation of a custom gLabels template.</property>
+          </object>
+        </child>
+        <child type="tab">
+          <object class="GtkLabel" id="label108">
+            <property name="visible">True</property>
+            <property name="label">start_page</property>
+          </object>
+          <packing>
+            <property name="tab_fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVBox" id="name_page">
+            <property name="visible">True</property>
+            <property name="border_width">18</property>
+            <property name="spacing">24</property>
+            <child>
+              <object class="GtkLabel" id="label1">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">Please enter the following identifying information about the template stationery.</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkTable" id="table2">
+                <property name="visible">True</property>
+                <property name="n_rows">6</property>
+                <property name="n_columns">2</property>
+                <property name="column_spacing">12</property>
+                <property name="row_spacing">12</property>
+                <child>
+                  <object class="GtkLabel" id="label72">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Brand/Manufacturer:</property>
+                  </object>
+                  <packing>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label73">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Part #:</property>
+                  </object>
+                  <packing>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHBox" id="hbox34">
+                    <property name="visible">True</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkEntry" id="part_num_entry">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label76">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">(e.g., 8163A)</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options">GTK_FILL</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHBox" id="hbox33">
+                    <property name="visible">True</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkEntry" id="brand_entry">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label75">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">(e.g., Avery, Acme, ...)</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options">GTK_FILL</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label74">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0</property>
+                    <property name="label" translatable="yes">Description:</property>
+                  </object>
+                  <packing>
+                    <property name="top_attach">4</property>
+                    <property name="bottom_attach">5</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry" id="description_entry">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">4</property>
+                    <property name="bottom_attach">5</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label77">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0</property>
+                    <property name="label" translatable="yes">(e.g., "Mailing Labels," "Business Cards," ...)</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">5</property>
+                    <property name="bottom_attach">6</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHBox" id="hbox39">
+                    <property name="visible">True</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <object class="GtkImage" id="name_warning_image">
+                        <property name="visible">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="name_warning_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="use_markup">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child type="tab">
+          <object class="GtkLabel" id="label109">
+            <property name="visible">True</property>
+            <property name="label">name_page</property>
+          </object>
+          <packing>
+            <property name="position">1</property>
+            <property name="tab_fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVBox" id="pg_size_page">
+            <property name="visible">True</property>
+            <property name="border_width">18</property>
+            <property name="spacing">24</property>
+            <child>
+              <object class="GtkLabel" id="label43">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">Please select the page size of the template stationery.</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkTable" id="table3">
+                <property name="visible">True</property>
+                <property name="n_rows">3</property>
+                <property name="n_columns">2</property>
+                <property name="column_spacing">12</property>
+                <property name="row_spacing">12</property>
+                <child>
+                  <object class="GtkLabel" id="label78">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Page size:</property>
+                  </object>
+                  <packing>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label79">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Width:</property>
+                  </object>
+                  <packing>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label80">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Height:</property>
+                  </object>
+                  <packing>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHBox" id="hbox35">
+                    <property name="visible">True</property>
+                    <child>
+                      <object class="GtkHBox" id="pg_size_combo_hbox">
+                        <property name="visible">True</property>
+                        <child>
+                          <placeholder/>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options">GTK_FILL</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHBox" id="hbox36">
+                    <property name="visible">True</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkSpinButton" id="pg_w_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment1</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="pg_w_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options">GTK_FILL</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHBox" id="hbox37">
+                    <property name="visible">True</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkSpinButton" id="pg_h_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment2</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="pg_h_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">GTK_FILL</property>
+                    <property name="y_options">GTK_FILL</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="position">2</property>
+          </packing>
+        </child>
+        <child type="tab">
+          <object class="GtkLabel" id="label110">
+            <property name="visible">True</property>
+            <property name="label">pg_size_page</property>
+          </object>
+          <packing>
+            <property name="position">2</property>
+            <property name="tab_fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVBox" id="shape_page">
+            <property name="visible">True</property>
+            <property name="border_width">18</property>
+            <property name="spacing">24</property>
+            <child>
+              <object class="GtkLabel" id="label13">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">Please select the basic shape of the labels or cards.</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox7">
+                <property name="visible">True</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkRadioButton" id="shape_rect_radio">
+                    <property name="label" translatable="yes">Rectangular or square (can have rounded corners)</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">False</property>
+                    <property name="use_underline">True</property>
+                    <property name="draw_indicator">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkRadioButton" id="shape_round_radio">
+                    <property name="label" translatable="yes">Round</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">False</property>
+                    <property name="use_underline">True</property>
+                    <property name="draw_indicator">True</property>
+                    <property name="group">shape_rect_radio</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkRadioButton" id="shape_ellipse_radio">
+                    <property name="label" translatable="yes">Elliptical</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">False</property>
+                    <property name="draw_indicator">True</property>
+                    <property name="group">shape_rect_radio</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">2</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkRadioButton" id="shape_cd_radio">
+                    <property name="label" translatable="yes">CD/DVD (including credit card CDs)</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">False</property>
+                    <property name="use_underline">True</property>
+                    <property name="draw_indicator">True</property>
+                    <property name="group">shape_rect_radio</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">3</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="position">3</property>
+          </packing>
+        </child>
+        <child type="tab">
+          <object class="GtkLabel" id="label111">
+            <property name="visible">True</property>
+            <property name="label">shape_page</property>
+          </object>
+          <packing>
+            <property name="position">3</property>
+            <property name="tab_fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVBox" id="rect_size_page">
+            <property name="visible">True</property>
+            <property name="border_width">18</property>
+            <property name="spacing">24</property>
+            <child>
+              <object class="GtkLabel" id="label14">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">Please enter the following size parameters of a single label or card in your template.</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkHBox" id="hbox7">
+                <property name="visible">True</property>
+                <property name="spacing">12</property>
+                <child>
+                  <object class="GtkTable" id="table4">
+                    <property name="visible">True</property>
+                    <property name="n_rows">6</property>
+                    <property name="n_columns">3</property>
+                    <property name="column_spacing">12</property>
+                    <property name="row_spacing">12</property>
+                    <child>
+                      <object class="GtkLabel" id="label83">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">1. Width:</property>
+                      </object>
+                      <packing>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label84">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">2. Height:</property>
+                      </object>
+                      <packing>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label85">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">3. Round (radius of corner):</property>
+                      </object>
+                      <packing>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label86">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">4. Horiz. waste (overprint allowed):</property>
+                      </object>
+                      <packing>
+                        <property name="top_attach">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="rect_w_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="rect_h_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="rect_r_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="rect_x_waste_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="rect_w_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment3</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="rect_h_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment4</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="rect_r_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment5</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="rect_x_waste_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment6</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label101">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">6. Margin</property>
+                      </object>
+                      <packing>
+                        <property name="top_attach">5</property>
+                        <property name="bottom_attach">6</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="rect_margin_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment8</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">5</property>
+                        <property name="bottom_attach">6</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="rect_margin_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">5</property>
+                        <property name="bottom_attach">6</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="rect_y_waste_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment7</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">4</property>
+                        <property name="bottom_attach">5</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="rect_y_waste_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">4</property>
+                        <property name="bottom_attach">5</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label107">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">5. Vert. waste (overprint allowed):</property>
+                      </object>
+                      <packing>
+                        <property name="top_attach">4</property>
+                        <property name="bottom_attach">5</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkImage" id="rect_image">
+                    <property name="visible">True</property>
+                    <property name="xalign">1</property>
+                    <property name="yalign">0</property>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="position">4</property>
+          </packing>
+        </child>
+        <child type="tab">
+          <object class="GtkLabel" id="label112">
+            <property name="visible">True</property>
+            <property name="label">rect_size_page</property>
+          </object>
+          <packing>
+            <property name="position">4</property>
+            <property name="tab_fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVBox" id="ellipse_size_page">
+            <property name="visible">True</property>
+            <property name="border_width">18</property>
+            <property name="spacing">24</property>
+            <child>
+              <object class="GtkLabel" id="label3">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">Please enter the following size parameters of a single label or card in your template.</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkHBox" id="hbox1">
+                <property name="visible">True</property>
+                <property name="spacing">12</property>
+                <child>
+                  <object class="GtkTable" id="table5">
+                    <property name="visible">True</property>
+                    <property name="n_rows">4</property>
+                    <property name="n_columns">3</property>
+                    <property name="column_spacing">12</property>
+                    <property name="row_spacing">12</property>
+                    <child>
+                      <object class="GtkLabel" id="label4">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">1. Width:</property>
+                      </object>
+                      <packing>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label5">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">2. Height:</property>
+                      </object>
+                      <packing>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label7">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">3. Waste (overprint allowed):</property>
+                      </object>
+                      <packing>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="ellipse_w_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="ellipse_h_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="ellipse_waste_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="ellipse_w_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="invisible_char">●</property>
+                        <property name="adjustment">adjustment3</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="ellipse_h_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="invisible_char">●</property>
+                        <property name="adjustment">adjustment4</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="ellipse_waste_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="invisible_char">●</property>
+                        <property name="adjustment">adjustment6</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label8">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">4. Margin</property>
+                      </object>
+                      <packing>
+                        <property name="top_attach">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="ellipse_margin_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="invisible_char">●</property>
+                        <property name="adjustment">adjustment8</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="ellipse_margin_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkImage" id="ellipse_image">
+                    <property name="visible">True</property>
+                    <property name="xalign">1</property>
+                    <property name="yalign">0</property>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="position">5</property>
+          </packing>
+        </child>
+        <child type="tab">
+          <object class="GtkLabel" id="label2">
+            <property name="visible">True</property>
+            <property name="label">ellipse_page</property>
+          </object>
+          <packing>
+            <property name="position">10</property>
+            <property name="tab_fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVBox" id="round_size_page">
+            <property name="visible">True</property>
+            <property name="border_width">18</property>
+            <property name="spacing">24</property>
+            <child>
+              <object class="GtkLabel" id="label23">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">Please enter the following size parameters of a single label in your template.</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkHBox" id="hbox12">
+                <property name="visible">True</property>
+                <property name="spacing">12</property>
+                <child>
+                  <object class="GtkTable" id="table8">
+                    <property name="visible">True</property>
+                    <property name="n_rows">3</property>
+                    <property name="n_columns">3</property>
+                    <property name="column_spacing">12</property>
+                    <property name="row_spacing">12</property>
+                    <child>
+                      <object class="GtkLabel" id="label91">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">1. Radius:</property>
+                      </object>
+                      <packing>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label92">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">2. Waste (overprint allowed):</property>
+                      </object>
+                      <packing>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="round_r_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment9</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="round_waste_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment10</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="round_r_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="round_waste_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label103">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">3. Margin</property>
+                      </object>
+                      <packing>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="round_margin_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="round_margin_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment11</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkImage" id="round_image">
+                    <property name="visible">True</property>
+                    <property name="xalign">1</property>
+                    <property name="yalign">0</property>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="position">6</property>
+          </packing>
+        </child>
+        <child type="tab">
+          <object class="GtkLabel" id="label113">
+            <property name="visible">True</property>
+            <property name="label">round_size_page</property>
+          </object>
+          <packing>
+            <property name="position">6</property>
+            <property name="tab_fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVBox" id="cd_size_page">
+            <property name="visible">True</property>
+            <property name="border_width">18</property>
+            <property name="spacing">24</property>
+            <child>
+              <object class="GtkLabel" id="label32">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">Please enter the following size parameters of a single label in your template.</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkHBox" id="hbox17">
+                <property name="visible">True</property>
+                <property name="spacing">12</property>
+                <child>
+                  <object class="GtkTable" id="table7">
+                    <property name="visible">True</property>
+                    <property name="n_rows">6</property>
+                    <property name="n_columns">3</property>
+                    <property name="column_spacing">12</property>
+                    <property name="row_spacing">12</property>
+                    <child>
+                      <object class="GtkLabel" id="label95">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">1. Outer radius:</property>
+                      </object>
+                      <packing>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label96">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">2. Inner radius:</property>
+                      </object>
+                      <packing>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label97">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">3. Clipping width:</property>
+                      </object>
+                      <packing>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label98">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">4. Clipping height:</property>
+                      </object>
+                      <packing>
+                        <property name="top_attach">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label99">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">5. Waste (overprint allowed):</property>
+                      </object>
+                      <packing>
+                        <property name="top_attach">4</property>
+                        <property name="bottom_attach">5</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="cd_radius_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment12</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="cd_hole_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment13</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="cd_w_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment14</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="cd_h_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment15</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="cd_waste_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment16</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">4</property>
+                        <property name="bottom_attach">5</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="cd_radius_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="cd_hole_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="cd_w_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="cd_h_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="cd_waste_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">4</property>
+                        <property name="bottom_attach">5</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label105">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">6. Margin</property>
+                      </object>
+                      <packing>
+                        <property name="top_attach">5</property>
+                        <property name="bottom_attach">6</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="cd_margin_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">5</property>
+                        <property name="bottom_attach">6</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="cd_margin_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment17</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">5</property>
+                        <property name="bottom_attach">6</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkImage" id="cd_image">
+                    <property name="visible">True</property>
+                    <property name="xalign">1</property>
+                    <property name="yalign">0</property>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="position">7</property>
+          </packing>
+        </child>
+        <child type="tab">
+          <object class="GtkLabel" id="label114">
+            <property name="visible">True</property>
+            <property name="label">cd_size_page</property>
+          </object>
+          <packing>
+            <property name="position">7</property>
+            <property name="tab_fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVBox" id="nlayouts_page">
+            <property name="visible">True</property>
+            <property name="border_width">18</property>
+            <property name="spacing">24</property>
+            <child>
+              <object class="GtkLabel" id="label9">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">How many layouts will your template contain? 
+
+A layout is a set of labels or cards that can be arranged in a simple grid.
+Most templates only need one layout, as in the first example.
+The second example illustrates when two layouts are needed.</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkHBox" id="hbox5">
+                <property name="visible">True</property>
+                <property name="spacing">12</property>
+                <property name="homogeneous">True</property>
+                <child>
+                  <object class="GtkVBox" id="vbox4">
+                    <property name="visible">True</property>
+                    <child>
+                      <object class="GtkImage" id="nlayouts_image1">
+                        <property name="visible">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label10">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Templates needing only
+one layout.</property>
+                        <property name="justify">center</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkVBox" id="vbox5">
+                    <property name="visible">True</property>
+                    <child>
+                      <object class="GtkImage" id="nlayouts_image2">
+                        <property name="visible">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label11">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Templates needing
+two layouts.</property>
+                        <property name="justify">center</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label6">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">Note: if more than 2 layouts are required, the template must be edited manually.</property>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkHBox" id="hbox6">
+                <property name="visible">True</property>
+                <property name="spacing">12</property>
+                <child>
+                  <object class="GtkLabel" id="label12">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Number of layouts:</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkSpinButton" id="nlayouts_spin">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="max_length">1</property>
+                    <property name="adjustment">adjustment18</property>
+                    <property name="climb_rate">1</property>
+                    <property name="numeric">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">3</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="position">8</property>
+          </packing>
+        </child>
+        <child type="tab">
+          <object class="GtkLabel" id="label115">
+            <property name="visible">True</property>
+            <property name="label">nlayouts_page</property>
+          </object>
+          <packing>
+            <property name="position">8</property>
+            <property name="tab_fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVBox" id="layout_page">
+            <property name="visible">True</property>
+            <property name="border_width">18</property>
+            <property name="spacing">12</property>
+            <child>
+              <object class="GtkLabel" id="label48">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">Please enter the following layout information.</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkHBox" id="hbox25">
+                <property name="visible">True</property>
+                <property name="spacing">18</property>
+                <child>
+                  <object class="GtkTable" id="table1">
+                    <property name="visible">True</property>
+                    <property name="n_rows">7</property>
+                    <property name="n_columns">4</property>
+                    <property name="column_spacing">12</property>
+                    <property name="row_spacing">6</property>
+                    <child>
+                      <object class="GtkLabel" id="layout1_head_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Layout #1</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="layout2_head_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Layout #2</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label62">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Number across (nx):</property>
+                      </object>
+                      <packing>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label63">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Number down (ny):</property>
+                      </object>
+                      <packing>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label64">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Distance from left edge (x0):</property>
+                      </object>
+                      <packing>
+                        <property name="top_attach">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label65">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Distance from top edge (y0):</property>
+                      </object>
+                      <packing>
+                        <property name="top_attach">4</property>
+                        <property name="bottom_attach">5</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label66">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Horizontal pitch (dx):</property>
+                      </object>
+                      <packing>
+                        <property name="top_attach">5</property>
+                        <property name="bottom_attach">6</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label67">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Vertical pitch (dy):</property>
+                      </object>
+                      <packing>
+                        <property name="top_attach">6</property>
+                        <property name="bottom_attach">7</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="layout_x0_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">3</property>
+                        <property name="right_attach">4</property>
+                        <property name="top_attach">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="layout_y0_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">3</property>
+                        <property name="right_attach">4</property>
+                        <property name="top_attach">4</property>
+                        <property name="bottom_attach">5</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="layout_dx_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">3</property>
+                        <property name="right_attach">4</property>
+                        <property name="top_attach">5</property>
+                        <property name="bottom_attach">6</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="layout_dy_units_label">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">inches</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">3</property>
+                        <property name="right_attach">4</property>
+                        <property name="top_attach">6</property>
+                        <property name="bottom_attach">7</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="layout1_nx_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment19</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="layout1_ny_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment21</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="layout2_nx_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment20</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="layout2_ny_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment22</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="layout1_x0_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment23</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="layout2_x0_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment24</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">3</property>
+                        <property name="bottom_attach">4</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="layout1_y0_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment25</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">4</property>
+                        <property name="bottom_attach">5</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="layout2_y0_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment26</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">4</property>
+                        <property name="bottom_attach">5</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="layout1_dx_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment27</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">5</property>
+                        <property name="bottom_attach">6</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="layout2_dx_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment28</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">5</property>
+                        <property name="bottom_attach">6</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="layout1_dy_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment29</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">6</property>
+                        <property name="bottom_attach">7</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="layout2_dy_spin">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="adjustment">adjustment30</property>
+                        <property name="climb_rate">0.0099999997764800008</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">6</property>
+                        <property name="bottom_attach">7</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHBox" id="hbox38">
+                    <property name="visible">True</property>
+                    <child>
+                      <object class="GtkLabel" id="label100">
+                        <property name="visible">True</property>
+                        <property name="label">  </property>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkVBox" id="vbox15">
+                        <property name="visible">True</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkVBox" id="mini_preview_vbox">
+                            <property name="visible">True</property>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="layout_test_button">
+                            <property name="label" translatable="yes">Print test sheet</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="border_width">6</property>
+                            <property name="use_underline">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="position">9</property>
+          </packing>
+        </child>
+        <child type="tab">
+          <object class="GtkLabel" id="label116">
+            <property name="visible">True</property>
+            <property name="label">layout_page</property>
+          </object>
+          <packing>
+            <property name="position">9</property>
+            <property name="tab_fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkLabel" id="finish_page">
+            <property name="visible">True</property>
+            <property name="label" translatable="yes">Congratulations!
+
+You have completed the gLabels Template Designer.
+If you wish to accept and save your design, click "Apply."
+
+Otherwise, you may click "Cancel" to abandon your design
+or "Back" to continue editing this design.</property>
+          </object>
+          <packing>
+            <property name="position">10</property>
+          </packing>
+        </child>
+        <child type="tab">
+          <object class="GtkLabel" id="label117">
+            <property name="visible">True</property>
+            <property name="label">finish_page</property>
+          </object>
+          <packing>
+            <property name="position">10</property>
+            <property name="tab_fill">False</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
index 0cb49459d756899565a44464094b7a7d8bf902d7..a0be5c8ee0112789835adf29b998a3b8f977232c 100644 (file)
@@ -1,3 +1,5 @@
 ## Process this file with automake to produce Makefile.in.
 
-SUBDIRS = libglabels
+SUBDIRS = \
+       libglabels \
+       libglbarcode
index 341a3dabdf94767c2c0a4f855c3b81c8417b08bf..ab2917427ca8cc4a725e0367139bd36d28067dce 100644 (file)
@@ -36,13 +36,19 @@ host_triplet = @host@
 subdir = docs
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -89,11 +95,13 @@ am__relativize = \
 ACLOCAL = @ACLOCAL@
 ALL_LINGUAS = @ALL_LINGUAS@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
+CAIRO_REQUIRED = @CAIRO_REQUIRED@
 CATALOGS = @CATALOGS@
 CATOBJEXT = @CATOBJEXT@
 CC = @CC@
@@ -107,6 +115,7 @@ DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
 DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DLLTOOL = @DLLTOOL@
 DOC_USER_FORMATS = @DOC_USER_FORMATS@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
@@ -116,17 +125,23 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
+GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLABELS_BRANCH = @GLABELS_BRANCH@
 GLABELS_CFLAGS = @GLABELS_CFLAGS@
 GLABELS_LIBS = @GLABELS_LIBS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GLIB_REQUIRED = @GLIB_REQUIRED@
 GMOFILES = @GMOFILES@
 GMSGFMT = @GMSGFMT@
 GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
 GTK_REQUIRED = @GTK_REQUIRED@
-HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@
+GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@
 HELP_DIR = @HELP_DIR@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -142,31 +157,45 @@ INTLTOOL_PERL = @INTLTOOL_PERL@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
+LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@
+LIBBARCODE_LIBS = @LIBBARCODE_LIBS@
+LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@
 LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
 LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
 LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
+LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@
+LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@
 LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
 LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
-LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@
-LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@
-LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@
-LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@
+LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@
+LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@
+LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@
+LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@
+LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@
+LIBIEC16022_LIBS = @LIBIEC16022_LIBS@
+LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@
 LIBOBJS = @LIBOBJS@
+LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@
+LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@
+LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@
+LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBXML_REQUIRED = @LIBXML_REQUIRED@
+LIBZINT_CFLAGS = @LIBZINT_CFLAGS@
+LIBZINT_LIBS = @LIBZINT_LIBS@
+LIBZINT_REQUIRED = @LIBZINT_REQUIRED@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MKINSTALLDIRS = @MKINSTALLDIRS@
 MSGFMT = @MSGFMT@
 MSGFMT_OPTS = @MSGFMT_OPTS@
 MSGMERGE = @MSGMERGE@
-MYGAL_CFLAGS = @MYGAL_CFLAGS@
-MYGAL_LIBS = @MYGAL_LIBS@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -179,9 +208,13 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_REQUIRED = @PANGO_REQUIRED@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 POFILES = @POFILES@
 POSUB = @POSUB@
 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -191,18 +224,15 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
-UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@
-UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
 WARN_CFLAGS = @WARN_CFLAGS@
 XGETTEXT = @XGETTEXT@
-XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@
-XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 am__include = @am__include@
@@ -222,6 +252,7 @@ datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
 exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
 host = @host@
 host_alias = @host_alias@
 host_cpu = @host_cpu@
@@ -235,7 +266,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -251,7 +281,10 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-SUBDIRS = libglabels
+SUBDIRS = \
+       libglabels \
+       libglbarcode
+
 all: all-recursive
 
 .SUFFIXES:
index 28e56fdb960f11d6e47aa26ad980abd2e4ea8af1..8d5cb87fa4b1f8448edb6c68986f3d19801864b2 100644 (file)
@@ -9,7 +9,7 @@ AUTOMAKE_OPTIONS = 1.6
 # of using the various options.
 
 # The name of the module, e.g. 'glib'.
-DOC_MODULE=libglabels
+DOC_MODULE=libglabels-3.0
 
 # The top-level SGML file. You can change this if you want to.
 DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
@@ -43,7 +43,7 @@ CFILE_GLOB=
 
 # Header files to ignore when scanning.
 # e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
-IGNORE_HFILES=libglabels-private.h
+IGNORE_HFILES=libglabels-3.0-private.h
 
 # Images to copy into HTML directory.
 # e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
index c95b075f64f1c6ef9bfd394db3449cb7ba1d4a73..79b6b552c49af9d40d8682872adcf3b95b7e97a7 100644 (file)
@@ -43,24 +43,32 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
        $(top_srcdir)/gtk-doc.make
 subdir = docs/libglabels
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALL_LINGUAS = @ALL_LINGUAS@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
+CAIRO_REQUIRED = @CAIRO_REQUIRED@
 CATALOGS = @CATALOGS@
 CATOBJEXT = @CATOBJEXT@
 CC = @CC@
@@ -74,6 +82,7 @@ DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
 DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DLLTOOL = @DLLTOOL@
 DOC_USER_FORMATS = @DOC_USER_FORMATS@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
@@ -83,17 +92,23 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
+GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLABELS_BRANCH = @GLABELS_BRANCH@
 GLABELS_CFLAGS = @GLABELS_CFLAGS@
 GLABELS_LIBS = @GLABELS_LIBS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GLIB_REQUIRED = @GLIB_REQUIRED@
 GMOFILES = @GMOFILES@
 GMSGFMT = @GMSGFMT@
 GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
 GTK_REQUIRED = @GTK_REQUIRED@
-HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@
+GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@
 HELP_DIR = @HELP_DIR@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -109,31 +124,45 @@ INTLTOOL_PERL = @INTLTOOL_PERL@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
+LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@
+LIBBARCODE_LIBS = @LIBBARCODE_LIBS@
+LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@
 LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
 LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
 LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
+LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@
+LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@
 LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
 LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
-LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@
-LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@
-LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@
-LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@
+LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@
+LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@
+LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@
+LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@
+LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@
+LIBIEC16022_LIBS = @LIBIEC16022_LIBS@
+LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@
 LIBOBJS = @LIBOBJS@
+LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@
+LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@
+LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@
+LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBXML_REQUIRED = @LIBXML_REQUIRED@
+LIBZINT_CFLAGS = @LIBZINT_CFLAGS@
+LIBZINT_LIBS = @LIBZINT_LIBS@
+LIBZINT_REQUIRED = @LIBZINT_REQUIRED@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MKINSTALLDIRS = @MKINSTALLDIRS@
 MSGFMT = @MSGFMT@
 MSGFMT_OPTS = @MSGFMT_OPTS@
 MSGMERGE = @MSGMERGE@
-MYGAL_CFLAGS = @MYGAL_CFLAGS@
-MYGAL_LIBS = @MYGAL_LIBS@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -146,9 +175,13 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_REQUIRED = @PANGO_REQUIRED@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 POFILES = @POFILES@
 POSUB = @POSUB@
 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -158,18 +191,15 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
-UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@
-UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
 WARN_CFLAGS = @WARN_CFLAGS@
 XGETTEXT = @XGETTEXT@
-XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@
-XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 am__include = @am__include@
@@ -189,6 +219,7 @@ datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
 exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
 host = @host@
 host_alias = @host_alias@
 host_cpu = @host_cpu@
@@ -202,7 +233,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -228,7 +258,7 @@ AUTOMAKE_OPTIONS = 1.6
 # of using the various options.
 
 # The name of the module, e.g. 'glib'.
-DOC_MODULE = libglabels
+DOC_MODULE = libglabels-3.0
 
 # The top-level SGML file. You can change this if you want to.
 DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.sgml
@@ -262,7 +292,7 @@ CFILE_GLOB =
 
 # Header files to ignore when scanning.
 # e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
-IGNORE_HFILES = libglabels-private.h
+IGNORE_HFILES = libglabels-3.0-private.h
 
 # Images to copy into HTML directory.
 # e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
@@ -280,10 +310,10 @@ content_files =
 INCLUDES = 
 GTKDOC_LIBS = 
 @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
-@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
-@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = sh -c
+@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
+@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = 
 @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute
 
 # We set GPATH here; this gives us semantics for GNU make
@@ -293,15 +323,21 @@ GTKDOC_LIBS =
 #
 GPATH = $(srcdir)
 TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE)
+SETUP_FILES = \
+       $(content_files)                \
+       $(DOC_MAIN_SGML_FILE)           \
+       $(DOC_MODULE)-sections.txt      \
+       $(DOC_MODULE)-overrides.txt
+
 
 # This includes the standard gtk-doc make rules, copied by gtkdocize.
 
 # Other files to distribute
 # e.g. EXTRA_DIST += version.xml.in
-EXTRA_DIST = $(content_files) $(HTML_IMAGES) $(DOC_MAIN_SGML_FILE) \
-       $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
-DOC_STAMPS = scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \
-          $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp
+EXTRA_DIST = $(SETUP_FILES)
+DOC_STAMPS = setup-build.stamp scan-build.stamp tmpl-build.stamp sgml-build.stamp \
+       html-build.stamp pdf-build.stamp \
+       setup.stamp tmpl.stamp sgml.stamp html.stamp pdf.stamp
 
 SCANOBJ_FILES = \
        $(DOC_MODULE).args       \
@@ -316,6 +352,10 @@ REPORT_FILES = \
        $(DOC_MODULE)-unused.txt
 
 CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS)
+@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP = 
+@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp
+@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP = 
+@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp
 all: all-am
 
 .SUFFIXES:
@@ -509,55 +549,83 @@ uninstall-am: uninstall-local
        uninstall-local
 
 
-@ENABLE_GTK_DOC_TRUE@all-local: html-build.stamp
+@ENABLE_GTK_DOC_TRUE@all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
 @ENABLE_GTK_DOC_FALSE@all-local:
 
-docs: html-build.stamp
+docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
 
 $(REPORT_FILES): sgml-build.stamp
 
+#### setup ####
+
+setup-build.stamp:
+       -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+          echo 'gtk-doc: Preparing build'; \
+          files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
+          if test "x$$files" != "x" ; then \
+              for file in $$files ; do \
+                  test -f $(abs_srcdir)/$$file && \
+                      cp -p $(abs_srcdir)/$$file $(abs_builddir)/; \
+              done \
+          fi; \
+          test -f $(abs_srcdir)/tmpl && \
+              cp -rp $(abs_srcdir)/tmpl $(abs_builddir)/; \
+       fi
+       @touch setup-build.stamp
+
+setup.stamp: setup-build.stamp
+       @true
+
 #### scan ####
 
 scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
        @echo 'gtk-doc: Scanning header files'
-       @-chmod -R u+w $(srcdir)
-       cd $(srcdir) && \
-         gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES)
-       if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; then \
-           CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \
+       @_source_dir='' ; \
+       for i in $(DOC_SOURCE_DIR) ; do \
+           _source_dir="$${_source_dir} --source-dir=$$i" ; \
+       done ; \
+       gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
+       @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
+           CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) ; \
        else \
-           cd $(srcdir) ; \
            for i in $(SCANOBJ_FILES) ; do \
                test -f $$i || touch $$i ; \
            done \
        fi
-       touch scan-build.stamp
+       @touch scan-build.stamp
 
 $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
        @true
 
 #### templates ####
 
-tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
+tmpl-build.stamp: setup.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
        @echo 'gtk-doc: Rebuilding template files'
-       @-chmod -R u+w $(srcdir)
-       cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
-       touch tmpl-build.stamp
+       @gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
+       @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+         if test -w $(abs_srcdir) ; then \
+           cp -rp $(abs_builddir)/tmpl $(abs_srcdir)/; \
+         fi \
+       fi
+       @touch tmpl-build.stamp
 
 tmpl.stamp: tmpl-build.stamp
        @true
 
-tmpl/*.sgml:
+$(srcdir)/tmpl/*.sgml:
        @true
 
 #### xml ####
 
-sgml-build.stamp: tmpl.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
+sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
        @echo 'gtk-doc: Building XML'
        @-chmod -R u+w $(srcdir)
-       cd $(srcdir) && \
-       gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $(MKDB_OPTIONS)
-       touch sgml-build.stamp
+       @_source_dir='' ; \
+       for i in $(DOC_SOURCE_DIR) ; do \
+           _source_dir="$${_source_dir} --source-dir=$$i" ; \
+       done ; \
+       gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)
+       @touch sgml-build.stamp
 
 sgml.stamp: sgml-build.stamp
        @true
@@ -566,19 +634,44 @@ sgml.stamp: sgml-build.stamp
 
 html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
        @echo 'gtk-doc: Building HTML'
-       @-chmod -R u+w $(srcdir)
-       rm -rf $(srcdir)/html
-       mkdir $(srcdir)/html
-       mkhtml_options=""; \
+       @rm -rf html
+       @mkdir html
+       @mkhtml_options=""; \
        gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-path"; \
        if test "$(?)" = "0"; then \
-         mkhtml_options=--path="$(srcdir)"; \
-       fi
-       cd $(srcdir)/html && gtkdoc-mkhtml $(mkhtml_options) $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
-       test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html )
+         mkhtml_options=--path="$(abs_srcdir)"; \
+       fi; \
+       cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
+       -@test "x$(HTML_IMAGES)" = "x" || \
+       for file in $(HTML_IMAGES) ; do \
+         if test -f $(abs_srcdir)/$$file ; then \
+           cp $(abs_srcdir)/$$file $(abs_builddir)/html; \
+         fi; \
+         if test -f $(abs_builddir)/$$file ; then \
+           cp $(abs_builddir)/$$file $(abs_builddir)/html; \
+         fi; \
+       done;
        @echo 'gtk-doc: Fixing cross-references'
-       cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
-       touch html-build.stamp
+       @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
+       @touch html-build.stamp
+
+#### pdf ####
+
+pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
+       @echo 'gtk-doc: Building PDF'
+       @rm -rf $(DOC_MODULE).pdf
+       @mkpdf_imgdirs=""; \
+       if test "x$(HTML_IMAGES)" != "x"; then \
+         for img in $(HTML_IMAGES); do \
+           part=`dirname $$img`; \
+           echo $$mkpdf_imgdirs | grep >/dev/null "\-\-imgdir=$$part "; \
+           if test $$? != 0; then \
+             mkpdf_imgdirs="$$mkpdf_imgdirs --imgdir=$$part"; \
+           fi; \
+         done; \
+       fi; \
+       gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_imgdirs $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
+       @touch pdf-build.stamp
 
 ##############
 
@@ -587,15 +680,18 @@ clean-local:
        rm -rf .libs
 
 distclean-local:
-       cd $(srcdir) && \
-         rm -rf xml $(REPORT_FILES) \
-                $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
+       rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
+           $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
+       if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+           rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \
+           rm -rf tmpl; \
+       fi
 
 maintainer-clean-local: clean
-       cd $(srcdir) && rm -rf xml html
+       rm -rf xml html
 
 install-data-local:
-       installfiles=`echo $(srcdir)/html/*`; \
+       @installfiles=`echo $(srcdir)/html/*`; \
        if test "$$installfiles" = '$(srcdir)/html/*'; \
        then echo '-- Nothing to install' ; \
        else \
@@ -615,12 +711,11 @@ install-data-local:
            mv -f $${installdir}/$(DOC_MODULE).devhelp \
              $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp; \
          fi; \
-         ! which gtkdoc-rebase >/dev/null 2>&1 || \
-           gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir} ; \
+         $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \
        fi
 
 uninstall-local:
-       if test -n "$(DOC_MODULE_VERSION)"; then \
+       @if test -n "$(DOC_MODULE_VERSION)"; then \
          installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
        else \
          installdir="$(DESTDIR)$(TARGET_DIR)"; \
@@ -637,16 +732,14 @@ uninstall-local:
 
 dist-hook: dist-check-gtkdoc dist-hook-local
        mkdir $(distdir)/tmpl
-       mkdir $(distdir)/xml
        mkdir $(distdir)/html
-       -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
-       -cp $(srcdir)/xml/*.xml $(distdir)/xml
-       cp $(srcdir)/html/* $(distdir)/html
-       -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/
-       -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/
+       -cp $(build)/tmpl/*.sgml $(distdir)/tmpl
+       cp $(builddir)/html/* $(distdir)/html
+       -cp $(builddir)/$(DOC_MODULE).pdf $(distdir)/
+       -cp $(build)/$(DOC_MODULE).types $(distdir)/
+       -cp $(build)/$(DOC_MODULE)-sections.txt $(distdir)/
        cd $(distdir) && rm -f $(DISTCLEANFILES)
-       ! which gtkdoc-rebase >/dev/null 2>&1 || \
-         gtkdoc-rebase --online --relative --html-dir=$(distdir)/html
+       $(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html
 
 .PHONY : dist-hook-local docs
 
index ace3432c06d57d4b8df1bcd311812af700db4b39..335e7d35c86bc255efa1ee42b80ad6d47008b57c 100644 (file)
@@ -3,45 +3,45 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Basic LibGlabels Usage</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="LibGlabels Reference Manual">
-<link rel="up" href="index.html" title="LibGlabels Reference Manual">
-<link rel="prev" href="index.html" title="LibGlabels Reference Manual">
-<link rel="next" href="libglabels-db.html" title="Database">
-<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="LibGlabels 3.0 Reference Manual">
+<link rel="up" href="index.html" title="LibGlabels 3.0 Reference Manual">
+<link rel="prev" href="index.html" title="LibGlabels 3.0 Reference Manual">
+<link rel="next" href="libglabels-3.0-db.html" title="Database">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
-<link rel="chapter" href="ch01.html" title="Basic LibGlabels Usage">
-<link rel="chapter" href="ch02.html" title="Working Directly With LibGlabels XML">
-<link rel="chapter" href="ch03.html" title="Miscellaneous">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
 <td><a accesskey="p" href="index.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td> </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">LibGlabels Reference Manual</th>
-<td><a accesskey="n" href="libglabels-db.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<th width="100%" align="center">LibGlabels 3.0 Reference Manual</th>
+<td><a accesskey="n" href="libglabels-3.0-db.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
-<div class="chapter" title="Basic LibGlabels Usage">
+<div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
-<a name="id2726253"></a>Basic LibGlabels Usage</h2></div></div></div>
+<a name="id2948250"></a>Basic LibGlabels Usage</h2></div></div></div>
 <div class="toc"><dl>
 <dt>
-<span class="refentrytitle"><a href="libglabels-db.html">Database</a></span><span class="refpurpose"> — Database of pre-defined templates</span>
+<span class="refentrytitle"><a href="libglabels-3.0-db.html">Database</a></span><span class="refpurpose"> — Database of pre-defined templates</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="libglabels-template.html">The lglTemplate Structure</a></span><span class="refpurpose"> — How templates are represented in memory</span>
+<span class="refentrytitle"><a href="libglabels-3.0-template.html">The lglTemplate Structure</a></span><span class="refpurpose"> — How templates are represented in memory</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="libglabels-paper.html">The lglPaper Structure</a></span><span class="refpurpose"> — Paper size definitions</span>
+<span class="refentrytitle"><a href="libglabels-3.0-paper.html">The lglPaper Structure</a></span><span class="refpurpose"> — Paper size definitions</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="libglabels-category.html">The lglCategory Structure</a></span><span class="refpurpose"> — Template category definitions</span>
+<span class="refentrytitle"><a href="libglabels-3.0-category.html">The lglCategory Structure</a></span><span class="refpurpose"> — Template category definitions</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libglabels-3.0-vendor.html">The lglVendor Structure</a></span><span class="refpurpose"> — Vendor definitions</span>
 </dt>
 </dl></div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.11</div>
+          Generated by GTK-Doc V1.17</div>
 </body>
-</html>
+</html>
\ No newline at end of file
index bfe8fb9a3b253286d0965bfceb367d1023ae8e88..3d69c1f212720cf2bd144b71216ab0fa10ba3cd8 100644 (file)
@@ -3,45 +3,45 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Working Directly With LibGlabels XML</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="LibGlabels Reference Manual">
-<link rel="up" href="index.html" title="LibGlabels Reference Manual">
-<link rel="prev" href="libglabels-category.html" title="The lglCategory Structure">
-<link rel="next" href="libglabels-xml-paper.html" title="XML Paper Functions">
-<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="LibGlabels 3.0 Reference Manual">
+<link rel="up" href="index.html" title="LibGlabels 3.0 Reference Manual">
+<link rel="prev" href="libglabels-3.0-vendor.html" title="The lglVendor Structure">
+<link rel="next" href="libglabels-3.0-xml-paper.html" title="XML Paper Functions">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
-<link rel="chapter" href="ch01.html" title="Basic LibGlabels Usage">
-<link rel="chapter" href="ch02.html" title="Working Directly With LibGlabels XML">
-<link rel="chapter" href="ch03.html" title="Miscellaneous">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="libglabels-category.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="libglabels-3.0-vendor.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td> </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">LibGlabels Reference Manual</th>
-<td><a accesskey="n" href="libglabels-xml-paper.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<th width="100%" align="center">LibGlabels 3.0 Reference Manual</th>
+<td><a accesskey="n" href="libglabels-3.0-xml-paper.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
-<div class="chapter" title="Working Directly With LibGlabels XML">
+<div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
-<a name="id2736967"></a>Working Directly With LibGlabels XML</h2></div></div></div>
+<a name="id2928856"></a>Working Directly With LibGlabels XML</h2></div></div></div>
 <div class="toc"><dl>
 <dt>
-<span class="refentrytitle"><a href="libglabels-xml-paper.html">XML Paper Functions</a></span><span class="refpurpose"> — Functions to parse glabels XML paper definition files</span>
+<span class="refentrytitle"><a href="libglabels-3.0-xml-paper.html">XML Paper Functions</a></span><span class="refpurpose"> — Functions to parse glabels XML paper definition files</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="libglabels-xml-category.html">XML Category Functions</a></span><span class="refpurpose"> — Functions to parse glabels XML category definition files</span>
+<span class="refentrytitle"><a href="libglabels-3.0-xml-category.html">XML Category Functions</a></span><span class="refpurpose"> — Functions to parse glabels XML category definition files</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="libglabels-xml-template.html">XML Template Functions</a></span><span class="refpurpose"> — Functions to create and parse glabels XML template nodes and files</span>
+<span class="refentrytitle"><a href="libglabels-3.0-xml-template.html">XML Template Functions</a></span><span class="refpurpose"> — Functions to create and parse glabels XML template nodes and files</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="libglabels-xml.html">XML Helper Functions</a></span><span class="refpurpose"> — Functions to help format and parse glabels XML properties</span>
+<span class="refentrytitle"><a href="libglabels-3.0-xml-vendor.html">XML Vendor Functions</a></span><span class="refpurpose"> — Functions to parse glabels XML vendor descriptions</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libglabels-3.0-xml.html">XML Helper Functions</a></span><span class="refpurpose"> — Functions to help format and parse glabels XML properties</span>
 </dt>
 </dl></div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.11</div>
+          Generated by GTK-Doc V1.17</div>
 </body>
-</html>
+</html>
\ No newline at end of file
index 9705f9f7bbc762a17c9c6a8cbddb6599d8eb31f2..82f9eb1004c57f6079444a48baaeecf875698e1d 100644 (file)
@@ -3,39 +3,36 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Miscellaneous</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="LibGlabels Reference Manual">
-<link rel="up" href="index.html" title="LibGlabels Reference Manual">
-<link rel="prev" href="libglabels-xml.html" title="XML Helper Functions">
-<link rel="next" href="libglabels-enums.html" title="Enumerations">
-<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="LibGlabels 3.0 Reference Manual">
+<link rel="up" href="index.html" title="LibGlabels 3.0 Reference Manual">
+<link rel="prev" href="libglabels-3.0-xml.html" title="XML Helper Functions">
+<link rel="next" href="libglabels-3.0-units.html" title="Units">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
-<link rel="chapter" href="ch01.html" title="Basic LibGlabels Usage">
-<link rel="chapter" href="ch02.html" title="Working Directly With LibGlabels XML">
-<link rel="chapter" href="ch03.html" title="Miscellaneous">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="libglabels-xml.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="libglabels-3.0-xml.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td> </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">LibGlabels Reference Manual</th>
-<td><a accesskey="n" href="libglabels-enums.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<th width="100%" align="center">LibGlabels 3.0 Reference Manual</th>
+<td><a accesskey="n" href="libglabels-3.0-units.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
-<div class="chapter" title="Miscellaneous">
+<div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
-<a name="id2703107"></a>Miscellaneous</h2></div></div></div>
+<a name="id2928896"></a>Miscellaneous</h2></div></div></div>
 <div class="toc"><dl>
 <dt>
-<span class="refentrytitle"><a href="libglabels-enums.html">Enumerations</a></span><span class="refpurpose"> — Common enumerations used by libglabels</span>
+<span class="refentrytitle"><a href="libglabels-3.0-units.html">Units</a></span><span class="refpurpose"> — Type to represent units of distance supported by libglabels</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="libglabels-str.html">String Utility Functions</a></span><span class="refpurpose"> — String utility functions provided by libglabels</span>
+<span class="refentrytitle"><a href="libglabels-3.0-str.html">String Utility Functions</a></span><span class="refpurpose"> — String utility functions provided by libglabels</span>
 </dt>
 </dl></div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.11</div>
+          Generated by GTK-Doc V1.17</div>
 </body>
-</html>
+</html>
\ No newline at end of file
index 2670d9f1badae69ce2aee3c982e38769d7aafeb2..696622421e01d9c2dc1da488a08aa72ce41c5e43 100644 (file)
@@ -2,66 +2,69 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>LibGlabels Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="LibGlabels Reference Manual">
+<title>LibGlabels 3.0 Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="LibGlabels 3.0 Reference Manual">
 <link rel="next" href="ch01.html" title="Basic LibGlabels Usage">
-<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
-<link rel="chapter" href="ch01.html" title="Basic LibGlabels Usage">
-<link rel="chapter" href="ch02.html" title="Working Directly With LibGlabels XML">
-<link rel="chapter" href="ch03.html" title="Miscellaneous">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<div class="book" title="LibGlabels Reference Manual">
+<div class="book">
 <div class="titlepage">
-<div><div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">LibGlabels Reference Manual</p></th></tr></table></div></div>
+<div><div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">LibGlabels 3.0 Reference Manual</p></th></tr></table></div></div>
 <hr>
 </div>
 <div class="toc"><dl>
 <dt><span class="chapter"><a href="ch01.html">Basic LibGlabels Usage</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="libglabels-db.html">Database</a></span><span class="refpurpose"> — Database of pre-defined templates</span>
+<span class="refentrytitle"><a href="libglabels-3.0-db.html">Database</a></span><span class="refpurpose"> — Database of pre-defined templates</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="libglabels-template.html">The lglTemplate Structure</a></span><span class="refpurpose"> — How templates are represented in memory</span>
+<span class="refentrytitle"><a href="libglabels-3.0-template.html">The lglTemplate Structure</a></span><span class="refpurpose"> — How templates are represented in memory</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="libglabels-paper.html">The lglPaper Structure</a></span><span class="refpurpose"> — Paper size definitions</span>
+<span class="refentrytitle"><a href="libglabels-3.0-paper.html">The lglPaper Structure</a></span><span class="refpurpose"> — Paper size definitions</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="libglabels-category.html">The lglCategory Structure</a></span><span class="refpurpose"> — Template category definitions</span>
+<span class="refentrytitle"><a href="libglabels-3.0-category.html">The lglCategory Structure</a></span><span class="refpurpose"> — Template category definitions</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libglabels-3.0-vendor.html">The lglVendor Structure</a></span><span class="refpurpose"> — Vendor definitions</span>
 </dt>
 </dl></dd>
 <dt><span class="chapter"><a href="ch02.html">Working Directly With LibGlabels XML</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="libglabels-xml-paper.html">XML Paper Functions</a></span><span class="refpurpose"> — Functions to parse glabels XML paper definition files</span>
+<span class="refentrytitle"><a href="libglabels-3.0-xml-paper.html">XML Paper Functions</a></span><span class="refpurpose"> — Functions to parse glabels XML paper definition files</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libglabels-3.0-xml-category.html">XML Category Functions</a></span><span class="refpurpose"> — Functions to parse glabels XML category definition files</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="libglabels-xml-category.html">XML Category Functions</a></span><span class="refpurpose"> — Functions to parse glabels XML category definition files</span>
+<span class="refentrytitle"><a href="libglabels-3.0-xml-template.html">XML Template Functions</a></span><span class="refpurpose"> — Functions to create and parse glabels XML template nodes and files</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="libglabels-xml-template.html">XML Template Functions</a></span><span class="refpurpose"> — Functions to create and parse glabels XML template nodes and files</span>
+<span class="refentrytitle"><a href="libglabels-3.0-xml-vendor.html">XML Vendor Functions</a></span><span class="refpurpose"> — Functions to parse glabels XML vendor descriptions</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="libglabels-xml.html">XML Helper Functions</a></span><span class="refpurpose"> — Functions to help format and parse glabels XML properties</span>
+<span class="refentrytitle"><a href="libglabels-3.0-xml.html">XML Helper Functions</a></span><span class="refpurpose"> — Functions to help format and parse glabels XML properties</span>
 </dt>
 </dl></dd>
 <dt><span class="chapter"><a href="ch03.html">Miscellaneous</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="libglabels-enums.html">Enumerations</a></span><span class="refpurpose"> — Common enumerations used by libglabels</span>
+<span class="refentrytitle"><a href="libglabels-3.0-units.html">Units</a></span><span class="refpurpose"> — Type to represent units of distance supported by libglabels</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="libglabels-str.html">String Utility Functions</a></span><span class="refpurpose"> — String utility functions provided by libglabels</span>
+<span class="refentrytitle"><a href="libglabels-3.0-str.html">String Utility Functions</a></span><span class="refpurpose"> — String utility functions provided by libglabels</span>
 </dt>
 </dl></dd>
 </dl></div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.11</div>
+          Generated by GTK-Doc V1.17</div>
 </body>
-</html>
+</html>
\ No newline at end of file
index 98deb56883c66fa1feb92e2e023a888b19feb2bf..31c3c0e5de56ebc59179477c3484fd89b44e7095 100644 (file)
-<ANCHOR id="libglabels-db" href="libglabels/libglabels-db.html">
-<ANCHOR id="libglabels-db.synopsis" href="libglabels/libglabels-db.html#libglabels-db.synopsis">
-<ANCHOR id="libglabels-db.description" href="libglabels/libglabels-db.html#libglabels-db.description">
-<ANCHOR id="libglabels-db.details" href="libglabels/libglabels-db.html#libglabels-db.details">
-<ANCHOR id="lglDbRegStatus" href="libglabels/libglabels-db.html#lglDbRegStatus">
-<ANCHOR id="lgl-db-init" href="libglabels/libglabels-db.html#lgl-db-init">
-<ANCHOR id="lgl-db-get-paper-id-list" href="libglabels/libglabels-db.html#lgl-db-get-paper-id-list">
-<ANCHOR id="lgl-db-free-paper-id-list" href="libglabels/libglabels-db.html#lgl-db-free-paper-id-list">
-<ANCHOR id="lgl-db-get-paper-name-list" href="libglabels/libglabels-db.html#lgl-db-get-paper-name-list">
-<ANCHOR id="lgl-db-free-paper-name-list" href="libglabels/libglabels-db.html#lgl-db-free-paper-name-list">
-<ANCHOR id="lgl-db-lookup-paper-from-id" href="libglabels/libglabels-db.html#lgl-db-lookup-paper-from-id">
-<ANCHOR id="lgl-db-lookup-paper-from-name" href="libglabels/libglabels-db.html#lgl-db-lookup-paper-from-name">
-<ANCHOR id="lgl-db-lookup-paper-id-from-name" href="libglabels/libglabels-db.html#lgl-db-lookup-paper-id-from-name">
-<ANCHOR id="lgl-db-lookup-paper-name-from-id" href="libglabels/libglabels-db.html#lgl-db-lookup-paper-name-from-id">
-<ANCHOR id="lgl-db-is-paper-id-known" href="libglabels/libglabels-db.html#lgl-db-is-paper-id-known">
-<ANCHOR id="lgl-db-is-paper-id-other" href="libglabels/libglabels-db.html#lgl-db-is-paper-id-other">
-<ANCHOR id="lgl-db-get-category-id-list" href="libglabels/libglabels-db.html#lgl-db-get-category-id-list">
-<ANCHOR id="lgl-db-free-category-id-list" href="libglabels/libglabels-db.html#lgl-db-free-category-id-list">
-<ANCHOR id="lgl-db-get-category-name-list" href="libglabels/libglabels-db.html#lgl-db-get-category-name-list">
-<ANCHOR id="lgl-db-free-category-name-list" href="libglabels/libglabels-db.html#lgl-db-free-category-name-list">
-<ANCHOR id="lgl-db-lookup-category-from-id" href="libglabels/libglabels-db.html#lgl-db-lookup-category-from-id">
-<ANCHOR id="lgl-db-lookup-category-from-name" href="libglabels/libglabels-db.html#lgl-db-lookup-category-from-name">
-<ANCHOR id="lgl-db-lookup-category-id-from-name" href="libglabels/libglabels-db.html#lgl-db-lookup-category-id-from-name">
-<ANCHOR id="lgl-db-lookup-category-name-from-id" href="libglabels/libglabels-db.html#lgl-db-lookup-category-name-from-id">
-<ANCHOR id="lgl-db-is-category-id-known" href="libglabels/libglabels-db.html#lgl-db-is-category-id-known">
-<ANCHOR id="lgl-db-get-brand-list" href="libglabels/libglabels-db.html#lgl-db-get-brand-list">
-<ANCHOR id="lgl-db-free-brand-list" href="libglabels/libglabels-db.html#lgl-db-free-brand-list">
-<ANCHOR id="lgl-db-register-template" href="libglabels/libglabels-db.html#lgl-db-register-template">
-<ANCHOR id="lgl-db-does-template-exist" href="libglabels/libglabels-db.html#lgl-db-does-template-exist">
-<ANCHOR id="lgl-db-does-template-name-exist" href="libglabels/libglabels-db.html#lgl-db-does-template-name-exist">
-<ANCHOR id="lgl-db-get-template-name-list-unique" href="libglabels/libglabels-db.html#lgl-db-get-template-name-list-unique">
-<ANCHOR id="lgl-db-get-template-name-list-all" href="libglabels/libglabels-db.html#lgl-db-get-template-name-list-all">
-<ANCHOR id="lgl-db-free-template-name-list" href="libglabels/libglabels-db.html#lgl-db-free-template-name-list">
-<ANCHOR id="lgl-db-lookup-template-from-name" href="libglabels/libglabels-db.html#lgl-db-lookup-template-from-name">
-<ANCHOR id="lgl-db-print-known-papers" href="libglabels/libglabels-db.html#lgl-db-print-known-papers">
-<ANCHOR id="lgl-db-print-known-categories" href="libglabels/libglabels-db.html#lgl-db-print-known-categories">
-<ANCHOR id="lgl-db-print-known-templates" href="libglabels/libglabels-db.html#lgl-db-print-known-templates">
-<ANCHOR id="lgl-db-print-aliases" href="libglabels/libglabels-db.html#lgl-db-print-aliases">
-<ANCHOR id="libglabels-template" href="libglabels/libglabels-template.html">
-<ANCHOR id="libglabels-template.synopsis" href="libglabels/libglabels-template.html#libglabels-template.synopsis">
-<ANCHOR id="libglabels-template.description" href="libglabels/libglabels-template.html#libglabels-template.description">
-<ANCHOR id="libglabels-template.details" href="libglabels/libglabels-template.html#libglabels-template.details">
-<ANCHOR id="lglTemplate" href="libglabels/libglabels-template.html#lglTemplate">
-<ANCHOR id="lglTemplateAlias" href="libglabels/libglabels-template.html#lglTemplateAlias">
-<ANCHOR id="lglTemplateFrameShape" href="libglabels/libglabels-template.html#lglTemplateFrameShape">
-<ANCHOR id="lglTemplateFrame" href="libglabels/libglabels-template.html#lglTemplateFrame">
-<ANCHOR id="lglTemplateFrameAll" href="libglabels/libglabels-template.html#lglTemplateFrameAll">
-<ANCHOR id="lglTemplateFrameRect" href="libglabels/libglabels-template.html#lglTemplateFrameRect">
-<ANCHOR id="lglTemplateFrameRound" href="libglabels/libglabels-template.html#lglTemplateFrameRound">
-<ANCHOR id="lglTemplateFrameCD" href="libglabels/libglabels-template.html#lglTemplateFrameCD">
-<ANCHOR id="lglTemplateLayout" href="libglabels/libglabels-template.html#lglTemplateLayout">
-<ANCHOR id="lglTemplateMarkupType" href="libglabels/libglabels-template.html#lglTemplateMarkupType">
-<ANCHOR id="lglTemplateMarkup" href="libglabels/libglabels-template.html#lglTemplateMarkup">
-<ANCHOR id="lglTemplateMarkupMargin" href="libglabels/libglabels-template.html#lglTemplateMarkupMargin">
-<ANCHOR id="lglTemplateMarkupLine" href="libglabels/libglabels-template.html#lglTemplateMarkupLine">
-<ANCHOR id="lglTemplateMarkupCircle" href="libglabels/libglabels-template.html#lglTemplateMarkupCircle">
-<ANCHOR id="lglTemplateMarkupRect" href="libglabels/libglabels-template.html#lglTemplateMarkupRect">
-<ANCHOR id="lglTemplateOrigin" href="libglabels/libglabels-template.html#lglTemplateOrigin">
-<ANCHOR id="lgl-template-new" href="libglabels/libglabels-template.html#lgl-template-new">
-<ANCHOR id="lgl-template-dup" href="libglabels/libglabels-template.html#lgl-template-dup">
-<ANCHOR id="lgl-template-free" href="libglabels/libglabels-template.html#lgl-template-free">
-<ANCHOR id="lgl-template-add-category" href="libglabels/libglabels-template.html#lgl-template-add-category">
-<ANCHOR id="lgl-template-add-frame" href="libglabels/libglabels-template.html#lgl-template-add-frame">
-<ANCHOR id="lgl-template-add-alias" href="libglabels/libglabels-template.html#lgl-template-add-alias">
-<ANCHOR id="lgl-template-get-name" href="libglabels/libglabels-template.html#lgl-template-get-name">
-<ANCHOR id="lgl-template-do-templates-match" href="libglabels/libglabels-template.html#lgl-template-do-templates-match">
-<ANCHOR id="lgl-template-does-brand-match" href="libglabels/libglabels-template.html#lgl-template-does-brand-match">
-<ANCHOR id="lgl-template-does-page-size-match" href="libglabels/libglabels-template.html#lgl-template-does-page-size-match">
-<ANCHOR id="lgl-template-does-category-match" href="libglabels/libglabels-template.html#lgl-template-does-category-match">
-<ANCHOR id="lgl-template-alias-new" href="libglabels/libglabels-template.html#lgl-template-alias-new">
-<ANCHOR id="lgl-template-alias-dup" href="libglabels/libglabels-template.html#lgl-template-alias-dup">
-<ANCHOR id="lgl-template-alias-free" href="libglabels/libglabels-template.html#lgl-template-alias-free">
-<ANCHOR id="lgl-template-frame-rect-new" href="libglabels/libglabels-template.html#lgl-template-frame-rect-new">
-<ANCHOR id="lgl-template-frame-round-new" href="libglabels/libglabels-template.html#lgl-template-frame-round-new">
-<ANCHOR id="lgl-template-frame-cd-new" href="libglabels/libglabels-template.html#lgl-template-frame-cd-new">
-<ANCHOR id="lgl-template-frame-dup" href="libglabels/libglabels-template.html#lgl-template-frame-dup">
-<ANCHOR id="lgl-template-frame-free" href="libglabels/libglabels-template.html#lgl-template-frame-free">
-<ANCHOR id="lgl-template-frame-add-layout" href="libglabels/libglabels-template.html#lgl-template-frame-add-layout">
-<ANCHOR id="lgl-template-frame-add-markup" href="libglabels/libglabels-template.html#lgl-template-frame-add-markup">
-<ANCHOR id="lgl-template-frame-get-size" href="libglabels/libglabels-template.html#lgl-template-frame-get-size">
-<ANCHOR id="lgl-template-frame-get-n-labels" href="libglabels/libglabels-template.html#lgl-template-frame-get-n-labels">
-<ANCHOR id="lgl-template-frame-get-origins" href="libglabels/libglabels-template.html#lgl-template-frame-get-origins">
-<ANCHOR id="lgl-template-layout-new" href="libglabels/libglabels-template.html#lgl-template-layout-new">
-<ANCHOR id="lgl-template-layout-dup" href="libglabels/libglabels-template.html#lgl-template-layout-dup">
-<ANCHOR id="lgl-template-layout-free" href="libglabels/libglabels-template.html#lgl-template-layout-free">
-<ANCHOR id="lgl-template-markup-margin-new" href="libglabels/libglabels-template.html#lgl-template-markup-margin-new">
-<ANCHOR id="lgl-template-markup-line-new" href="libglabels/libglabels-template.html#lgl-template-markup-line-new">
-<ANCHOR id="lgl-template-markup-circle-new" href="libglabels/libglabels-template.html#lgl-template-markup-circle-new">
-<ANCHOR id="lgl-template-markup-rect-new" href="libglabels/libglabels-template.html#lgl-template-markup-rect-new">
-<ANCHOR id="lgl-template-markup-dup" href="libglabels/libglabels-template.html#lgl-template-markup-dup">
-<ANCHOR id="lgl-template-markup-free" href="libglabels/libglabels-template.html#lgl-template-markup-free">
-<ANCHOR id="libglabels-paper" href="libglabels/libglabels-paper.html">
-<ANCHOR id="libglabels-paper.synopsis" href="libglabels/libglabels-paper.html#libglabels-paper.synopsis">
-<ANCHOR id="libglabels-paper.description" href="libglabels/libglabels-paper.html#libglabels-paper.description">
-<ANCHOR id="libglabels-paper.details" href="libglabels/libglabels-paper.html#libglabels-paper.details">
-<ANCHOR id="lglPaper" href="libglabels/libglabels-paper.html#lglPaper">
-<ANCHOR id="lgl-paper-new" href="libglabels/libglabels-paper.html#lgl-paper-new">
-<ANCHOR id="lgl-paper-dup" href="libglabels/libglabels-paper.html#lgl-paper-dup">
-<ANCHOR id="lgl-paper-free" href="libglabels/libglabels-paper.html#lgl-paper-free">
-<ANCHOR id="libglabels-category" href="libglabels/libglabels-category.html">
-<ANCHOR id="libglabels-category.synopsis" href="libglabels/libglabels-category.html#libglabels-category.synopsis">
-<ANCHOR id="libglabels-category.description" href="libglabels/libglabels-category.html#libglabels-category.description">
-<ANCHOR id="libglabels-category.details" href="libglabels/libglabels-category.html#libglabels-category.details">
-<ANCHOR id="lglCategory" href="libglabels/libglabels-category.html#lglCategory">
-<ANCHOR id="lgl-category-new" href="libglabels/libglabels-category.html#lgl-category-new">
-<ANCHOR id="lgl-category-dup" href="libglabels/libglabels-category.html#lgl-category-dup">
-<ANCHOR id="lgl-category-free" href="libglabels/libglabels-category.html#lgl-category-free">
-<ANCHOR id="libglabels-xml-paper" href="libglabels/libglabels-xml-paper.html">
-<ANCHOR id="libglabels-xml-paper.synopsis" href="libglabels/libglabels-xml-paper.html#libglabels-xml-paper.synopsis">
-<ANCHOR id="libglabels-xml-paper.description" href="libglabels/libglabels-xml-paper.html#libglabels-xml-paper.description">
-<ANCHOR id="libglabels-xml-paper.details" href="libglabels/libglabels-xml-paper.html#libglabels-xml-paper.details">
-<ANCHOR id="lgl-xml-paper-read-papers-from-file" href="libglabels/libglabels-xml-paper.html#lgl-xml-paper-read-papers-from-file">
-<ANCHOR id="lgl-xml-paper-parse-papers-doc" href="libglabels/libglabels-xml-paper.html#lgl-xml-paper-parse-papers-doc">
-<ANCHOR id="lgl-xml-paper-parse-paper-node" href="libglabels/libglabels-xml-paper.html#lgl-xml-paper-parse-paper-node">
-<ANCHOR id="libglabels-xml-category" href="libglabels/libglabels-xml-category.html">
-<ANCHOR id="libglabels-xml-category.synopsis" href="libglabels/libglabels-xml-category.html#libglabels-xml-category.synopsis">
-<ANCHOR id="libglabels-xml-category.description" href="libglabels/libglabels-xml-category.html#libglabels-xml-category.description">
-<ANCHOR id="libglabels-xml-category.details" href="libglabels/libglabels-xml-category.html#libglabels-xml-category.details">
-<ANCHOR id="lgl-xml-category-read-categories-from-file" href="libglabels/libglabels-xml-category.html#lgl-xml-category-read-categories-from-file">
-<ANCHOR id="lgl-xml-category-parse-categories-doc" href="libglabels/libglabels-xml-category.html#lgl-xml-category-parse-categories-doc">
-<ANCHOR id="lgl-xml-category-parse-category-node" href="libglabels/libglabels-xml-category.html#lgl-xml-category-parse-category-node">
-<ANCHOR id="libglabels-xml-template" href="libglabels/libglabels-xml-template.html">
-<ANCHOR id="libglabels-xml-template.synopsis" href="libglabels/libglabels-xml-template.html#libglabels-xml-template.synopsis">
-<ANCHOR id="libglabels-xml-template.description" href="libglabels/libglabels-xml-template.html#libglabels-xml-template.description">
-<ANCHOR id="libglabels-xml-template.details" href="libglabels/libglabels-xml-template.html#libglabels-xml-template.details">
-<ANCHOR id="lgl-xml-template-read-templates-from-file" href="libglabels/libglabels-xml-template.html#lgl-xml-template-read-templates-from-file">
-<ANCHOR id="lgl-xml-template-parse-templates-doc" href="libglabels/libglabels-xml-template.html#lgl-xml-template-parse-templates-doc">
-<ANCHOR id="lgl-xml-template-parse-template-node" href="libglabels/libglabels-xml-template.html#lgl-xml-template-parse-template-node">
-<ANCHOR id="lgl-xml-template-write-templates-to-file" href="libglabels/libglabels-xml-template.html#lgl-xml-template-write-templates-to-file">
-<ANCHOR id="lgl-xml-template-write-template-to-file" href="libglabels/libglabels-xml-template.html#lgl-xml-template-write-template-to-file">
-<ANCHOR id="lgl-xml-template-create-template-node" href="libglabels/libglabels-xml-template.html#lgl-xml-template-create-template-node">
-<ANCHOR id="libglabels-xml" href="libglabels/libglabels-xml.html">
-<ANCHOR id="libglabels-xml.synopsis" href="libglabels/libglabels-xml.html#libglabels-xml.synopsis">
-<ANCHOR id="libglabels-xml.description" href="libglabels/libglabels-xml.html#libglabels-xml.description">
-<ANCHOR id="libglabels-xml.details" href="libglabels/libglabels-xml.html#libglabels-xml.details">
-<ANCHOR id="LGL-XML-NAME-SPACE--CAPS" href="libglabels/libglabels-xml.html#LGL-XML-NAME-SPACE--CAPS">
-<ANCHOR id="lgl-xml-get-prop-string" href="libglabels/libglabels-xml.html#lgl-xml-get-prop-string">
-<ANCHOR id="lgl-xml-get-prop-i18n-string" href="libglabels/libglabels-xml.html#lgl-xml-get-prop-i18n-string">
-<ANCHOR id="lgl-xml-get-prop-double" href="libglabels/libglabels-xml.html#lgl-xml-get-prop-double">
-<ANCHOR id="lgl-xml-get-prop-boolean" href="libglabels/libglabels-xml.html#lgl-xml-get-prop-boolean">
-<ANCHOR id="lgl-xml-get-prop-int" href="libglabels/libglabels-xml.html#lgl-xml-get-prop-int">
-<ANCHOR id="lgl-xml-get-prop-uint" href="libglabels/libglabels-xml.html#lgl-xml-get-prop-uint">
-<ANCHOR id="lgl-xml-get-prop-length" href="libglabels/libglabels-xml.html#lgl-xml-get-prop-length">
-<ANCHOR id="lgl-xml-set-prop-string" href="libglabels/libglabels-xml.html#lgl-xml-set-prop-string">
-<ANCHOR id="lgl-xml-set-prop-double" href="libglabels/libglabels-xml.html#lgl-xml-set-prop-double">
-<ANCHOR id="lgl-xml-set-prop-boolean" href="libglabels/libglabels-xml.html#lgl-xml-set-prop-boolean">
-<ANCHOR id="lgl-xml-set-prop-int" href="libglabels/libglabels-xml.html#lgl-xml-set-prop-int">
-<ANCHOR id="lgl-xml-set-prop-uint-hex" href="libglabels/libglabels-xml.html#lgl-xml-set-prop-uint-hex">
-<ANCHOR id="lgl-xml-set-prop-length" href="libglabels/libglabels-xml.html#lgl-xml-set-prop-length">
-<ANCHOR id="lgl-xml-is-node" href="libglabels/libglabels-xml.html#lgl-xml-is-node">
-<ANCHOR id="lgl-xml-get-node-content" href="libglabels/libglabels-xml.html#lgl-xml-get-node-content">
-<ANCHOR id="lgl-xml-set-default-units" href="libglabels/libglabels-xml.html#lgl-xml-set-default-units">
-<ANCHOR id="libglabels-enums" href="libglabels/libglabels-enums.html">
-<ANCHOR id="libglabels-enums.synopsis" href="libglabels/libglabels-enums.html#libglabels-enums.synopsis">
-<ANCHOR id="libglabels-enums.description" href="libglabels/libglabels-enums.html#libglabels-enums.description">
-<ANCHOR id="libglabels-enums.details" href="libglabels/libglabels-enums.html#libglabels-enums.details">
-<ANCHOR id="lglUnitsType" href="libglabels/libglabels-enums.html#lglUnitsType">
-<ANCHOR id="libglabels-str" href="libglabels/libglabels-str.html">
-<ANCHOR id="libglabels-str.synopsis" href="libglabels/libglabels-str.html#libglabels-str.synopsis">
-<ANCHOR id="libglabels-str.description" href="libglabels/libglabels-str.html#libglabels-str.description">
-<ANCHOR id="libglabels-str.details" href="libglabels/libglabels-str.html#libglabels-str.details">
-<ANCHOR id="lgl-str-utf8-casecmp" href="libglabels/libglabels-str.html#lgl-str-utf8-casecmp">
+<ANCHOR id="libglabels-3.0-db" href="libglabels-3.0/libglabels-3.0-db.html">
+<ANCHOR id="libglabels-3.0-db.synopsis" href="libglabels-3.0/libglabels-3.0-db.html#libglabels-3.0-db.synopsis">
+<ANCHOR id="libglabels-3.0-db.description" href="libglabels-3.0/libglabels-3.0-db.html#libglabels-3.0-db.description">
+<ANCHOR id="libglabels-3.0-db.details" href="libglabels-3.0/libglabels-3.0-db.html#libglabels-3.0-db.details">
+<ANCHOR id="lglDbRegStatus" href="libglabels-3.0/libglabels-3.0-db.html#lglDbRegStatus">
+<ANCHOR id="LGL-DB-REG-OK:CAPS" href="libglabels-3.0/libglabels-3.0-db.html#LGL-DB-REG-OK:CAPS">
+<ANCHOR id="LGL-DB-REG-BAD-PAPER-ID:CAPS" href="libglabels-3.0/libglabels-3.0-db.html#LGL-DB-REG-BAD-PAPER-ID:CAPS">
+<ANCHOR id="LGL-DB-REG-BRAND-PART-EXISTS:CAPS" href="libglabels-3.0/libglabels-3.0-db.html#LGL-DB-REG-BRAND-PART-EXISTS:CAPS">
+<ANCHOR id="LGL-DB-REG-FILE-WRITE-ERROR:CAPS" href="libglabels-3.0/libglabels-3.0-db.html#LGL-DB-REG-FILE-WRITE-ERROR:CAPS">
+<ANCHOR id="lglDbDeleteStatus" href="libglabels-3.0/libglabels-3.0-db.html#lglDbDeleteStatus">
+<ANCHOR id="LGL-DB-DELETE-OK:CAPS" href="libglabels-3.0/libglabels-3.0-db.html#LGL-DB-DELETE-OK:CAPS">
+<ANCHOR id="LGL-DB-DELETE-DOES-NOT-EXIST:CAPS" href="libglabels-3.0/libglabels-3.0-db.html#LGL-DB-DELETE-DOES-NOT-EXIST:CAPS">
+<ANCHOR id="LGL-DB-DELETE-NOT-USER-DEFINED:CAPS" href="libglabels-3.0/libglabels-3.0-db.html#LGL-DB-DELETE-NOT-USER-DEFINED:CAPS">
+<ANCHOR id="LGL-DB-DELETE-FILE-ERROR:CAPS" href="libglabels-3.0/libglabels-3.0-db.html#LGL-DB-DELETE-FILE-ERROR:CAPS">
+<ANCHOR id="lgl-db-init" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-init">
+<ANCHOR id="lglDbNotifyFunc" href="libglabels-3.0/libglabels-3.0-db.html#lglDbNotifyFunc">
+<ANCHOR id="lgl-db-notify-add" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-notify-add">
+<ANCHOR id="lgl-db-notify-remove" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-notify-remove">
+<ANCHOR id="lgl-db-get-paper-id-list" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-get-paper-id-list">
+<ANCHOR id="lgl-db-free-paper-id-list" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-free-paper-id-list">
+<ANCHOR id="lgl-db-get-paper-name-list" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-get-paper-name-list">
+<ANCHOR id="lgl-db-free-paper-name-list" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-free-paper-name-list">
+<ANCHOR id="lgl-db-lookup-paper-from-id" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-lookup-paper-from-id">
+<ANCHOR id="lgl-db-lookup-paper-from-name" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-lookup-paper-from-name">
+<ANCHOR id="lgl-db-lookup-paper-id-from-name" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-lookup-paper-id-from-name">
+<ANCHOR id="lgl-db-lookup-paper-name-from-id" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-lookup-paper-name-from-id">
+<ANCHOR id="lgl-db-is-paper-id-known" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-is-paper-id-known">
+<ANCHOR id="lgl-db-is-paper-id-other" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-is-paper-id-other">
+<ANCHOR id="lgl-db-get-category-id-list" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-get-category-id-list">
+<ANCHOR id="lgl-db-free-category-id-list" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-free-category-id-list">
+<ANCHOR id="lgl-db-get-category-name-list" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-get-category-name-list">
+<ANCHOR id="lgl-db-free-category-name-list" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-free-category-name-list">
+<ANCHOR id="lgl-db-lookup-category-from-id" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-lookup-category-from-id">
+<ANCHOR id="lgl-db-lookup-category-from-name" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-lookup-category-from-name">
+<ANCHOR id="lgl-db-lookup-category-id-from-name" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-lookup-category-id-from-name">
+<ANCHOR id="lgl-db-lookup-category-name-from-id" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-lookup-category-name-from-id">
+<ANCHOR id="lgl-db-is-category-id-known" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-is-category-id-known">
+<ANCHOR id="lgl-db-get-brand-list" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-get-brand-list">
+<ANCHOR id="lgl-db-free-brand-list" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-free-brand-list">
+<ANCHOR id="lgl-db-register-template" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-register-template">
+<ANCHOR id="lgl-db-delete-template-by-brand-part" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-delete-template-by-brand-part">
+<ANCHOR id="lgl-db-delete-template-by-name" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-delete-template-by-name">
+<ANCHOR id="lgl-db-does-template-exist" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-does-template-exist">
+<ANCHOR id="lgl-db-does-template-name-exist" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-does-template-name-exist">
+<ANCHOR id="lgl-db-get-template-name-list-all" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-get-template-name-list-all">
+<ANCHOR id="lgl-db-get-similar-template-name-list" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-get-similar-template-name-list">
+<ANCHOR id="lgl-db-free-template-name-list" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-free-template-name-list">
+<ANCHOR id="lgl-db-lookup-template-from-name" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-lookup-template-from-name">
+<ANCHOR id="lgl-db-lookup-template-from-brand-part" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-lookup-template-from-brand-part">
+<ANCHOR id="lgl-db-get-vendor-name-list" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-get-vendor-name-list">
+<ANCHOR id="lgl-db-free-vendor-name-list" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-free-vendor-name-list">
+<ANCHOR id="lgl-db-is-vendor-name-known" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-is-vendor-name-known">
+<ANCHOR id="lgl-db-lookup-vendor-from-name" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-lookup-vendor-from-name">
+<ANCHOR id="lgl-db-print-known-papers" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-print-known-papers">
+<ANCHOR id="lgl-db-print-known-categories" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-print-known-categories">
+<ANCHOR id="lgl-db-print-known-templates" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-print-known-templates">
+<ANCHOR id="lgl-db-print-known-vendors" href="libglabels-3.0/libglabels-3.0-db.html#lgl-db-print-known-vendors">
+<ANCHOR id="libglabels-3.0-template" href="libglabels-3.0/libglabels-3.0-template.html">
+<ANCHOR id="libglabels-3.0-template.synopsis" href="libglabels-3.0/libglabels-3.0-template.html#libglabels-3.0-template.synopsis">
+<ANCHOR id="libglabels-3.0-template.description" href="libglabels-3.0/libglabels-3.0-template.html#libglabels-3.0-template.description">
+<ANCHOR id="libglabels-3.0-template.details" href="libglabels-3.0/libglabels-3.0-template.html#libglabels-3.0-template.details">
+<ANCHOR id="lglTemplate" href="libglabels-3.0/libglabels-3.0-template.html#lglTemplate">
+<ANCHOR id="lglTemplateFrameShape" href="libglabels-3.0/libglabels-3.0-template.html#lglTemplateFrameShape">
+<ANCHOR id="LGL-TEMPLATE-FRAME-SHAPE-RECT:CAPS" href="libglabels-3.0/libglabels-3.0-template.html#LGL-TEMPLATE-FRAME-SHAPE-RECT:CAPS">
+<ANCHOR id="LGL-TEMPLATE-FRAME-SHAPE-ELLIPSE:CAPS" href="libglabels-3.0/libglabels-3.0-template.html#LGL-TEMPLATE-FRAME-SHAPE-ELLIPSE:CAPS">
+<ANCHOR id="LGL-TEMPLATE-FRAME-SHAPE-ROUND:CAPS" href="libglabels-3.0/libglabels-3.0-template.html#LGL-TEMPLATE-FRAME-SHAPE-ROUND:CAPS">
+<ANCHOR id="LGL-TEMPLATE-FRAME-SHAPE-CD:CAPS" href="libglabels-3.0/libglabels-3.0-template.html#LGL-TEMPLATE-FRAME-SHAPE-CD:CAPS">
+<ANCHOR id="lglTemplateFrame" href="libglabels-3.0/libglabels-3.0-template.html#lglTemplateFrame">
+<ANCHOR id="lglTemplateFrameAll" href="libglabels-3.0/libglabels-3.0-template.html#lglTemplateFrameAll">
+<ANCHOR id="lglTemplateFrameRect" href="libglabels-3.0/libglabels-3.0-template.html#lglTemplateFrameRect">
+<ANCHOR id="lglTemplateFrameEllipse" href="libglabels-3.0/libglabels-3.0-template.html#lglTemplateFrameEllipse">
+<ANCHOR id="lglTemplateFrameRound" href="libglabels-3.0/libglabels-3.0-template.html#lglTemplateFrameRound">
+<ANCHOR id="lglTemplateFrameCD" href="libglabels-3.0/libglabels-3.0-template.html#lglTemplateFrameCD">
+<ANCHOR id="lglTemplateLayout" href="libglabels-3.0/libglabels-3.0-template.html#lglTemplateLayout">
+<ANCHOR id="lglTemplateMarkupType" href="libglabels-3.0/libglabels-3.0-template.html#lglTemplateMarkupType">
+<ANCHOR id="LGL-TEMPLATE-MARKUP-MARGIN:CAPS" href="libglabels-3.0/libglabels-3.0-template.html#LGL-TEMPLATE-MARKUP-MARGIN:CAPS">
+<ANCHOR id="LGL-TEMPLATE-MARKUP-LINE:CAPS" href="libglabels-3.0/libglabels-3.0-template.html#LGL-TEMPLATE-MARKUP-LINE:CAPS">
+<ANCHOR id="LGL-TEMPLATE-MARKUP-CIRCLE:CAPS" href="libglabels-3.0/libglabels-3.0-template.html#LGL-TEMPLATE-MARKUP-CIRCLE:CAPS">
+<ANCHOR id="LGL-TEMPLATE-MARKUP-RECT:CAPS" href="libglabels-3.0/libglabels-3.0-template.html#LGL-TEMPLATE-MARKUP-RECT:CAPS">
+<ANCHOR id="LGL-TEMPLATE-MARKUP-ELLIPSE:CAPS" href="libglabels-3.0/libglabels-3.0-template.html#LGL-TEMPLATE-MARKUP-ELLIPSE:CAPS">
+<ANCHOR id="lglTemplateMarkup" href="libglabels-3.0/libglabels-3.0-template.html#lglTemplateMarkup">
+<ANCHOR id="lglTemplateMarkupMargin" href="libglabels-3.0/libglabels-3.0-template.html#lglTemplateMarkupMargin">
+<ANCHOR id="lglTemplateMarkupLine" href="libglabels-3.0/libglabels-3.0-template.html#lglTemplateMarkupLine">
+<ANCHOR id="lglTemplateMarkupCircle" href="libglabels-3.0/libglabels-3.0-template.html#lglTemplateMarkupCircle">
+<ANCHOR id="lglTemplateMarkupRect" href="libglabels-3.0/libglabels-3.0-template.html#lglTemplateMarkupRect">
+<ANCHOR id="lglTemplateMarkupEllipse" href="libglabels-3.0/libglabels-3.0-template.html#lglTemplateMarkupEllipse">
+<ANCHOR id="lglTemplateOrigin" href="libglabels-3.0/libglabels-3.0-template.html#lglTemplateOrigin">
+<ANCHOR id="lgl-template-new" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-new">
+<ANCHOR id="lgl-template-new-from-equiv" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-new-from-equiv">
+<ANCHOR id="lgl-template-dup" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-dup">
+<ANCHOR id="lgl-template-free" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-free">
+<ANCHOR id="lgl-template-add-category" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-add-category">
+<ANCHOR id="lgl-template-add-frame" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-add-frame">
+<ANCHOR id="lgl-template-get-name" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-get-name">
+<ANCHOR id="lgl-template-do-templates-match" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-do-templates-match">
+<ANCHOR id="lgl-template-does-brand-match" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-does-brand-match">
+<ANCHOR id="lgl-template-does-page-size-match" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-does-page-size-match">
+<ANCHOR id="lgl-template-does-category-match" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-does-category-match">
+<ANCHOR id="lgl-template-are-templates-identical" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-are-templates-identical">
+<ANCHOR id="lgl-template-frame-rect-new" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-frame-rect-new">
+<ANCHOR id="lgl-template-frame-ellipse-new" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-frame-ellipse-new">
+<ANCHOR id="lgl-template-frame-round-new" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-frame-round-new">
+<ANCHOR id="lgl-template-frame-cd-new" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-frame-cd-new">
+<ANCHOR id="lgl-template-frame-dup" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-frame-dup">
+<ANCHOR id="lgl-template-frame-free" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-frame-free">
+<ANCHOR id="lgl-template-frame-add-layout" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-frame-add-layout">
+<ANCHOR id="lgl-template-frame-add-markup" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-frame-add-markup">
+<ANCHOR id="lgl-template-frame-get-size" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-frame-get-size">
+<ANCHOR id="lgl-template-frame-get-n-labels" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-frame-get-n-labels">
+<ANCHOR id="lgl-template-frame-get-origins" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-frame-get-origins">
+<ANCHOR id="lgl-template-frame-get-layout-description" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-frame-get-layout-description">
+<ANCHOR id="lgl-template-frame-get-size-description" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-frame-get-size-description">
+<ANCHOR id="lgl-template-layout-new" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-layout-new">
+<ANCHOR id="lgl-template-layout-dup" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-layout-dup">
+<ANCHOR id="lgl-template-layout-free" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-layout-free">
+<ANCHOR id="lgl-template-markup-margin-new" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-markup-margin-new">
+<ANCHOR id="lgl-template-markup-line-new" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-markup-line-new">
+<ANCHOR id="lgl-template-markup-circle-new" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-markup-circle-new">
+<ANCHOR id="lgl-template-markup-rect-new" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-markup-rect-new">
+<ANCHOR id="lgl-template-markup-ellipse-new" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-markup-ellipse-new">
+<ANCHOR id="lgl-template-markup-dup" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-markup-dup">
+<ANCHOR id="lgl-template-markup-free" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-markup-free">
+<ANCHOR id="lgl-template-print" href="libglabels-3.0/libglabels-3.0-template.html#lgl-template-print">
+<ANCHOR id="libglabels-3.0-paper" href="libglabels-3.0/libglabels-3.0-paper.html">
+<ANCHOR id="libglabels-3.0-paper.synopsis" href="libglabels-3.0/libglabels-3.0-paper.html#libglabels-3.0-paper.synopsis">
+<ANCHOR id="libglabels-3.0-paper.description" href="libglabels-3.0/libglabels-3.0-paper.html#libglabels-3.0-paper.description">
+<ANCHOR id="libglabels-3.0-paper.details" href="libglabels-3.0/libglabels-3.0-paper.html#libglabels-3.0-paper.details">
+<ANCHOR id="lglPaper" href="libglabels-3.0/libglabels-3.0-paper.html#lglPaper">
+<ANCHOR id="lgl-paper-new" href="libglabels-3.0/libglabels-3.0-paper.html#lgl-paper-new">
+<ANCHOR id="lgl-paper-dup" href="libglabels-3.0/libglabels-3.0-paper.html#lgl-paper-dup">
+<ANCHOR id="lgl-paper-free" href="libglabels-3.0/libglabels-3.0-paper.html#lgl-paper-free">
+<ANCHOR id="libglabels-3.0-category" href="libglabels-3.0/libglabels-3.0-category.html">
+<ANCHOR id="libglabels-3.0-category.synopsis" href="libglabels-3.0/libglabels-3.0-category.html#libglabels-3.0-category.synopsis">
+<ANCHOR id="libglabels-3.0-category.description" href="libglabels-3.0/libglabels-3.0-category.html#libglabels-3.0-category.description">
+<ANCHOR id="libglabels-3.0-category.details" href="libglabels-3.0/libglabels-3.0-category.html#libglabels-3.0-category.details">
+<ANCHOR id="lglCategory" href="libglabels-3.0/libglabels-3.0-category.html#lglCategory">
+<ANCHOR id="lgl-category-new" href="libglabels-3.0/libglabels-3.0-category.html#lgl-category-new">
+<ANCHOR id="lgl-category-dup" href="libglabels-3.0/libglabels-3.0-category.html#lgl-category-dup">
+<ANCHOR id="lgl-category-free" href="libglabels-3.0/libglabels-3.0-category.html#lgl-category-free">
+<ANCHOR id="libglabels-3.0-vendor" href="libglabels-3.0/libglabels-3.0-vendor.html">
+<ANCHOR id="libglabels-3.0-vendor.synopsis" href="libglabels-3.0/libglabels-3.0-vendor.html#libglabels-3.0-vendor.synopsis">
+<ANCHOR id="libglabels-3.0-vendor.description" href="libglabels-3.0/libglabels-3.0-vendor.html#libglabels-3.0-vendor.description">
+<ANCHOR id="libglabels-3.0-vendor.details" href="libglabels-3.0/libglabels-3.0-vendor.html#libglabels-3.0-vendor.details">
+<ANCHOR id="lglVendor" href="libglabels-3.0/libglabels-3.0-vendor.html#lglVendor">
+<ANCHOR id="lgl-vendor-new" href="libglabels-3.0/libglabels-3.0-vendor.html#lgl-vendor-new">
+<ANCHOR id="lgl-vendor-dup" href="libglabels-3.0/libglabels-3.0-vendor.html#lgl-vendor-dup">
+<ANCHOR id="lgl-vendor-free" href="libglabels-3.0/libglabels-3.0-vendor.html#lgl-vendor-free">
+<ANCHOR id="libglabels-3.0-xml-paper" href="libglabels-3.0/libglabels-3.0-xml-paper.html">
+<ANCHOR id="libglabels-3.0-xml-paper.synopsis" href="libglabels-3.0/libglabels-3.0-xml-paper.html#libglabels-3.0-xml-paper.synopsis">
+<ANCHOR id="libglabels-3.0-xml-paper.description" href="libglabels-3.0/libglabels-3.0-xml-paper.html#libglabels-3.0-xml-paper.description">
+<ANCHOR id="libglabels-3.0-xml-paper.details" href="libglabels-3.0/libglabels-3.0-xml-paper.html#libglabels-3.0-xml-paper.details">
+<ANCHOR id="lgl-xml-paper-read-papers-from-file" href="libglabels-3.0/libglabels-3.0-xml-paper.html#lgl-xml-paper-read-papers-from-file">
+<ANCHOR id="lgl-xml-paper-parse-papers-doc" href="libglabels-3.0/libglabels-3.0-xml-paper.html#lgl-xml-paper-parse-papers-doc">
+<ANCHOR id="lgl-xml-paper-parse-paper-node" href="libglabels-3.0/libglabels-3.0-xml-paper.html#lgl-xml-paper-parse-paper-node">
+<ANCHOR id="libglabels-3.0-xml-category" href="libglabels-3.0/libglabels-3.0-xml-category.html">
+<ANCHOR id="libglabels-3.0-xml-category.synopsis" href="libglabels-3.0/libglabels-3.0-xml-category.html#libglabels-3.0-xml-category.synopsis">
+<ANCHOR id="libglabels-3.0-xml-category.description" href="libglabels-3.0/libglabels-3.0-xml-category.html#libglabels-3.0-xml-category.description">
+<ANCHOR id="libglabels-3.0-xml-category.details" href="libglabels-3.0/libglabels-3.0-xml-category.html#libglabels-3.0-xml-category.details">
+<ANCHOR id="lgl-xml-category-read-categories-from-file" href="libglabels-3.0/libglabels-3.0-xml-category.html#lgl-xml-category-read-categories-from-file">
+<ANCHOR id="lgl-xml-category-parse-categories-doc" href="libglabels-3.0/libglabels-3.0-xml-category.html#lgl-xml-category-parse-categories-doc">
+<ANCHOR id="lgl-xml-category-parse-category-node" href="libglabels-3.0/libglabels-3.0-xml-category.html#lgl-xml-category-parse-category-node">
+<ANCHOR id="libglabels-3.0-xml-template" href="libglabels-3.0/libglabels-3.0-xml-template.html">
+<ANCHOR id="libglabels-3.0-xml-template.synopsis" href="libglabels-3.0/libglabels-3.0-xml-template.html#libglabels-3.0-xml-template.synopsis">
+<ANCHOR id="libglabels-3.0-xml-template.description" href="libglabels-3.0/libglabels-3.0-xml-template.html#libglabels-3.0-xml-template.description">
+<ANCHOR id="libglabels-3.0-xml-template.details" href="libglabels-3.0/libglabels-3.0-xml-template.html#libglabels-3.0-xml-template.details">
+<ANCHOR id="lgl-xml-template-read-templates-from-file" href="libglabels-3.0/libglabels-3.0-xml-template.html#lgl-xml-template-read-templates-from-file">
+<ANCHOR id="lgl-xml-template-parse-templates-doc" href="libglabels-3.0/libglabels-3.0-xml-template.html#lgl-xml-template-parse-templates-doc">
+<ANCHOR id="lgl-xml-template-parse-template-node" href="libglabels-3.0/libglabels-3.0-xml-template.html#lgl-xml-template-parse-template-node">
+<ANCHOR id="lgl-xml-template-write-templates-to-file" href="libglabels-3.0/libglabels-3.0-xml-template.html#lgl-xml-template-write-templates-to-file">
+<ANCHOR id="lgl-xml-template-write-template-to-file" href="libglabels-3.0/libglabels-3.0-xml-template.html#lgl-xml-template-write-template-to-file">
+<ANCHOR id="lgl-xml-template-create-template-node" href="libglabels-3.0/libglabels-3.0-xml-template.html#lgl-xml-template-create-template-node">
+<ANCHOR id="libglabels-3.0-xml-vendor" href="libglabels-3.0/libglabels-3.0-xml-vendor.html">
+<ANCHOR id="libglabels-3.0-xml-vendor.synopsis" href="libglabels-3.0/libglabels-3.0-xml-vendor.html#libglabels-3.0-xml-vendor.synopsis">
+<ANCHOR id="libglabels-3.0-xml-vendor.description" href="libglabels-3.0/libglabels-3.0-xml-vendor.html#libglabels-3.0-xml-vendor.description">
+<ANCHOR id="libglabels-3.0-xml-vendor.details" href="libglabels-3.0/libglabels-3.0-xml-vendor.html#libglabels-3.0-xml-vendor.details">
+<ANCHOR id="lgl-xml-vendor-read-vendors-from-file" href="libglabels-3.0/libglabels-3.0-xml-vendor.html#lgl-xml-vendor-read-vendors-from-file">
+<ANCHOR id="lgl-xml-vendor-parse-vendors-doc" href="libglabels-3.0/libglabels-3.0-xml-vendor.html#lgl-xml-vendor-parse-vendors-doc">
+<ANCHOR id="lgl-xml-vendor-parse-vendor-node" href="libglabels-3.0/libglabels-3.0-xml-vendor.html#lgl-xml-vendor-parse-vendor-node">
+<ANCHOR id="libglabels-3.0-xml" href="libglabels-3.0/libglabels-3.0-xml.html">
+<ANCHOR id="libglabels-3.0-xml.synopsis" href="libglabels-3.0/libglabels-3.0-xml.html#libglabels-3.0-xml.synopsis">
+<ANCHOR id="libglabels-3.0-xml.description" href="libglabels-3.0/libglabels-3.0-xml.html#libglabels-3.0-xml.description">
+<ANCHOR id="libglabels-3.0-xml.details" href="libglabels-3.0/libglabels-3.0-xml.html#libglabels-3.0-xml.details">
+<ANCHOR id="LGL-XML-NAME-SPACE:CAPS" href="libglabels-3.0/libglabels-3.0-xml.html#LGL-XML-NAME-SPACE:CAPS">
+<ANCHOR id="lgl-xml-get-prop-string" href="libglabels-3.0/libglabels-3.0-xml.html#lgl-xml-get-prop-string">
+<ANCHOR id="lgl-xml-get-prop-i18n-string" href="libglabels-3.0/libglabels-3.0-xml.html#lgl-xml-get-prop-i18n-string">
+<ANCHOR id="lgl-xml-get-prop-double" href="libglabels-3.0/libglabels-3.0-xml.html#lgl-xml-get-prop-double">
+<ANCHOR id="lgl-xml-get-prop-boolean" href="libglabels-3.0/libglabels-3.0-xml.html#lgl-xml-get-prop-boolean">
+<ANCHOR id="lgl-xml-get-prop-int" href="libglabels-3.0/libglabels-3.0-xml.html#lgl-xml-get-prop-int">
+<ANCHOR id="lgl-xml-get-prop-uint" href="libglabels-3.0/libglabels-3.0-xml.html#lgl-xml-get-prop-uint">
+<ANCHOR id="lgl-xml-get-prop-length" href="libglabels-3.0/libglabels-3.0-xml.html#lgl-xml-get-prop-length">
+<ANCHOR id="lgl-xml-set-prop-string" href="libglabels-3.0/libglabels-3.0-xml.html#lgl-xml-set-prop-string">
+<ANCHOR id="lgl-xml-set-prop-double" href="libglabels-3.0/libglabels-3.0-xml.html#lgl-xml-set-prop-double">
+<ANCHOR id="lgl-xml-set-prop-boolean" href="libglabels-3.0/libglabels-3.0-xml.html#lgl-xml-set-prop-boolean">
+<ANCHOR id="lgl-xml-set-prop-int" href="libglabels-3.0/libglabels-3.0-xml.html#lgl-xml-set-prop-int">
+<ANCHOR id="lgl-xml-set-prop-uint-hex" href="libglabels-3.0/libglabels-3.0-xml.html#lgl-xml-set-prop-uint-hex">
+<ANCHOR id="lgl-xml-set-prop-length" href="libglabels-3.0/libglabels-3.0-xml.html#lgl-xml-set-prop-length">
+<ANCHOR id="lgl-xml-is-node" href="libglabels-3.0/libglabels-3.0-xml.html#lgl-xml-is-node">
+<ANCHOR id="lgl-xml-get-node-content" href="libglabels-3.0/libglabels-3.0-xml.html#lgl-xml-get-node-content">
+<ANCHOR id="lgl-xml-set-default-units" href="libglabels-3.0/libglabels-3.0-xml.html#lgl-xml-set-default-units">
+<ANCHOR id="libglabels-3.0-units" href="libglabels-3.0/libglabels-3.0-units.html">
+<ANCHOR id="libglabels-3.0-units.synopsis" href="libglabels-3.0/libglabels-3.0-units.html#libglabels-3.0-units.synopsis">
+<ANCHOR id="libglabels-3.0-units.description" href="libglabels-3.0/libglabels-3.0-units.html#libglabels-3.0-units.description">
+<ANCHOR id="libglabels-3.0-units.details" href="libglabels-3.0/libglabels-3.0-units.html#libglabels-3.0-units.details">
+<ANCHOR id="lglUnits" href="libglabels-3.0/libglabels-3.0-units.html#lglUnits">
+<ANCHOR id="LGL-UNITS-POINT:CAPS" href="libglabels-3.0/libglabels-3.0-units.html#LGL-UNITS-POINT:CAPS">
+<ANCHOR id="LGL-UNITS-INCH:CAPS" href="libglabels-3.0/libglabels-3.0-units.html#LGL-UNITS-INCH:CAPS">
+<ANCHOR id="LGL-UNITS-MM:CAPS" href="libglabels-3.0/libglabels-3.0-units.html#LGL-UNITS-MM:CAPS">
+<ANCHOR id="LGL-UNITS-CM:CAPS" href="libglabels-3.0/libglabels-3.0-units.html#LGL-UNITS-CM:CAPS">
+<ANCHOR id="LGL-UNITS-PICA:CAPS" href="libglabels-3.0/libglabels-3.0-units.html#LGL-UNITS-PICA:CAPS">
+<ANCHOR id="LGL-UNITS-FIRST:CAPS" href="libglabels-3.0/libglabels-3.0-units.html#LGL-UNITS-FIRST:CAPS">
+<ANCHOR id="LGL-UNITS-LAST:CAPS" href="libglabels-3.0/libglabels-3.0-units.html#LGL-UNITS-LAST:CAPS">
+<ANCHOR id="LGL-UNITS-INVALID:CAPS" href="libglabels-3.0/libglabels-3.0-units.html#LGL-UNITS-INVALID:CAPS">
+<ANCHOR id="lgl-units-get-id" href="libglabels-3.0/libglabels-3.0-units.html#lgl-units-get-id">
+<ANCHOR id="lgl-units-from-id" href="libglabels-3.0/libglabels-3.0-units.html#lgl-units-from-id">
+<ANCHOR id="lgl-units-get-name" href="libglabels-3.0/libglabels-3.0-units.html#lgl-units-get-name">
+<ANCHOR id="lgl-units-from-name" href="libglabels-3.0/libglabels-3.0-units.html#lgl-units-from-name">
+<ANCHOR id="lgl-units-get-points-per-unit" href="libglabels-3.0/libglabels-3.0-units.html#lgl-units-get-points-per-unit">
+<ANCHOR id="lgl-units-get-units-per-point" href="libglabels-3.0/libglabels-3.0-units.html#lgl-units-get-units-per-point">
+<ANCHOR id="libglabels-3.0-str" href="libglabels-3.0/libglabels-3.0-str.html">
+<ANCHOR id="libglabels-3.0-str.synopsis" href="libglabels-3.0/libglabels-3.0-str.html#libglabels-3.0-str.synopsis">
+<ANCHOR id="libglabels-3.0-str.description" href="libglabels-3.0/libglabels-3.0-str.html#libglabels-3.0-str.description">
+<ANCHOR id="libglabels-3.0-str.details" href="libglabels-3.0/libglabels-3.0-str.html#libglabels-3.0-str.details">
+<ANCHOR id="lgl-str-utf8-casecmp" href="libglabels-3.0/libglabels-3.0-str.html#lgl-str-utf8-casecmp">
+<ANCHOR id="lgl-str-part-name-cmp" href="libglabels-3.0/libglabels-3.0-str.html#lgl-str-part-name-cmp">
+<ANCHOR id="lgl-str-format-fraction" href="libglabels-3.0/libglabels-3.0-str.html#lgl-str-format-fraction">
diff --git a/docs/libglabels/html/libglabels-3.0-category.html b/docs/libglabels/html/libglabels-3.0-category.html
new file mode 100644 (file)
index 0000000..315f28d
--- /dev/null
@@ -0,0 +1,153 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>The lglCategory Structure</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="LibGlabels 3.0 Reference Manual">
+<link rel="up" href="ch01.html" title="Basic LibGlabels Usage">
+<link rel="prev" href="libglabels-3.0-paper.html" title="The lglPaper Structure">
+<link rel="next" href="libglabels-3.0-vendor.html" title="The lglVendor Structure">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libglabels-3.0-paper.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">LibGlabels 3.0 Reference Manual</th>
+<td><a accesskey="n" href="libglabels-3.0-vendor.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libglabels-3.0-category.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#libglabels-3.0-category.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libglabels-3.0-category"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libglabels-3.0-category.top_of_page"></a>The lglCategory Structure</span></h2>
+<p>The lglCategory Structure — Template category definitions</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libglabels-3.0-category.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libglabels/lgl-category.h&gt;
+
+struct              <a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory">lglCategory</a>;
+<a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="returnvalue">lglCategory</span></a> *       <a class="link" href="libglabels-3.0-category.html#lgl-category-new" title="lgl_category_new ()">lgl_category_new</a>                    (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
+<a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="returnvalue">lglCategory</span></a> *       <a class="link" href="libglabels-3.0-category.html#lgl-category-dup" title="lgl_category_dup ()">lgl_category_dup</a>                    (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="type">lglCategory</span></a> *orig</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-category.html#lgl-category-free" title="lgl_category_free ()">lgl_category_free</a>                   (<em class="parameter"><code><a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="type">lglCategory</span></a> *category</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libglabels-3.0-category.description"></a><h2>Description</h2>
+<p>
+This section describes a structure for representing a category of stationary and related
+functions.
+</p>
+</div>
+<div class="refsect1">
+<a name="libglabels-3.0-category.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="lglCategory"></a><h3>struct lglCategory</h3>
+<pre class="programlisting">struct lglCategory {
+        gchar               *id;     /* Unique ID of category */
+        gchar               *name;   /* Localized name of category */
+};
+</pre>
+<p>
+This structure defines a category.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="lglCategory.id"></a>id</code></em>;</span></p></td>
+<td>Category ID.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="lglCategory.name"></a>name</code></em>;</span></p></td>
+<td>Localized category name.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-category-new"></a><h3>lgl_category_new ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="returnvalue">lglCategory</span></a> *       lgl_category_new                    (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
+<p>
+Allocates and constructs a new <a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="type">lglCategory</span></a> structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>Id of category definition. (E.g. label, card, etc.)  Should be
+unique.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Localized name of category.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a pointer to a newly allocated <a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="type">lglCategory</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-category-dup"></a><h3>lgl_category_dup ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="returnvalue">lglCategory</span></a> *       lgl_category_dup                    (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="type">lglCategory</span></a> *orig</code></em>);</pre>
+<p>
+Duplicates an existing <a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="type">lglCategory</span></a> structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>orig</code></em> :</span></p></td>
+<td>
+<a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="type">lglCategory</span></a> structure to be duplicated.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a pointer to a newly allocated <a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="type">lglCategory</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-category-free"></a><h3>lgl_category_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_category_free                   (<em class="parameter"><code><a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="type">lglCategory</span></a> *category</code></em>);</pre>
+<p>
+Free all memory associated with an existing <a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="type">lglCategory</span></a> structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>category</code></em> :</span></p></td>
+<td>pointer to <a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="type">lglCategory</span></a> structure to be freed.</td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.17</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libglabels/html/libglabels-3.0-db.html b/docs/libglabels/html/libglabels-3.0-db.html
new file mode 100644 (file)
index 0000000..29f3c9c
--- /dev/null
@@ -0,0 +1,1024 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Database</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="LibGlabels 3.0 Reference Manual">
+<link rel="up" href="ch01.html" title="Basic LibGlabels Usage">
+<link rel="prev" href="ch01.html" title="Basic LibGlabels Usage">
+<link rel="next" href="libglabels-3.0-template.html" title="The lglTemplate Structure">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="ch01.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">LibGlabels 3.0 Reference Manual</th>
+<td><a accesskey="n" href="libglabels-3.0-template.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libglabels-3.0-db.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#libglabels-3.0-db.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libglabels-3.0-db"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libglabels-3.0-db.top_of_page"></a>Database</span></h2>
+<p>Database — Database of pre-defined templates</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libglabels-3.0-db.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libglabels/lgl-db.h&gt;
+
+enum                <a class="link" href="libglabels-3.0-db.html#lglDbRegStatus" title="enum lglDbRegStatus">lglDbRegStatus</a>;
+enum                <a class="link" href="libglabels-3.0-db.html#lglDbDeleteStatus" title="enum lglDbDeleteStatus">lglDbDeleteStatus</a>;
+
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-db.html#lgl-db-init" title="lgl_db_init ()">lgl_db_init</a>                         (<em class="parameter"><code><span class="type">void</span></code></em>);
+
+<span class="returnvalue">void</span>                (<a class="link" href="libglabels-3.0-db.html#lglDbNotifyFunc" title="lglDbNotifyFunc ()">*lglDbNotifyFunc</a>)                  (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="returnvalue">gulong</span></a>              <a class="link" href="libglabels-3.0-db.html#lgl-db-notify-add" title="lgl_db_notify_add ()">lgl_db_notify_add</a>                   (<em class="parameter"><code><a class="link" href="libglabels-3.0-db.html#lglDbNotifyFunc" title="lglDbNotifyFunc ()"><span class="type">lglDbNotifyFunc</span></a> func</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-db.html#lgl-db-notify-remove" title="lgl_db_notify_remove ()">lgl_db_notify_remove</a>                (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> id</code></em>);
+
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="libglabels-3.0-db.html#lgl-db-get-paper-id-list" title="lgl_db_get_paper_id_list ()">lgl_db_get_paper_id_list</a>            (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-db.html#lgl-db-free-paper-id-list" title="lgl_db_free_paper_id_list ()">lgl_db_free_paper_id_list</a>           (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *ids</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="libglabels-3.0-db.html#lgl-db-get-paper-name-list" title="lgl_db_get_paper_name_list ()">lgl_db_get_paper_name_list</a>          (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-db.html#lgl-db-free-paper-name-list" title="lgl_db_free_paper_name_list ()">lgl_db_free_paper_name_list</a>         (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *names</code></em>);
+<a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="returnvalue">lglPaper</span></a> *          <a class="link" href="libglabels-3.0-db.html#lgl-db-lookup-paper-from-id" title="lgl_db_lookup_paper_from_id ()">lgl_db_lookup_paper_from_id</a>         (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>);
+<a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="returnvalue">lglPaper</span></a> *          <a class="link" href="libglabels-3.0-db.html#lgl-db-lookup-paper-from-name" title="lgl_db_lookup_paper_from_name ()">lgl_db_lookup_paper_from_name</a>       (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="libglabels-3.0-db.html#lgl-db-lookup-paper-id-from-name" title="lgl_db_lookup_paper_id_from_name ()">lgl_db_lookup_paper_id_from_name</a>    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="libglabels-3.0-db.html#lgl-db-lookup-paper-name-from-id" title="lgl_db_lookup_paper_name_from_id ()">lgl_db_lookup_paper_name_from_id</a>    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="libglabels-3.0-db.html#lgl-db-is-paper-id-known" title="lgl_db_is_paper_id_known ()">lgl_db_is_paper_id_known</a>            (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="libglabels-3.0-db.html#lgl-db-is-paper-id-other" title="lgl_db_is_paper_id_other ()">lgl_db_is_paper_id_other</a>            (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>);
+
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="libglabels-3.0-db.html#lgl-db-get-category-id-list" title="lgl_db_get_category_id_list ()">lgl_db_get_category_id_list</a>         (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-db.html#lgl-db-free-category-id-list" title="lgl_db_free_category_id_list ()">lgl_db_free_category_id_list</a>        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *ids</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="libglabels-3.0-db.html#lgl-db-get-category-name-list" title="lgl_db_get_category_name_list ()">lgl_db_get_category_name_list</a>       (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-db.html#lgl-db-free-category-name-list" title="lgl_db_free_category_name_list ()">lgl_db_free_category_name_list</a>      (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *names</code></em>);
+<a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="returnvalue">lglCategory</span></a> *       <a class="link" href="libglabels-3.0-db.html#lgl-db-lookup-category-from-id" title="lgl_db_lookup_category_from_id ()">lgl_db_lookup_category_from_id</a>      (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>);
+<a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="returnvalue">lglCategory</span></a> *       <a class="link" href="libglabels-3.0-db.html#lgl-db-lookup-category-from-name" title="lgl_db_lookup_category_from_name ()">lgl_db_lookup_category_from_name</a>    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="libglabels-3.0-db.html#lgl-db-lookup-category-id-from-name" title="lgl_db_lookup_category_id_from_name ()">lgl_db_lookup_category_id_from_name</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="libglabels-3.0-db.html#lgl-db-lookup-category-name-from-id" title="lgl_db_lookup_category_name_from_id ()">lgl_db_lookup_category_name_from_id</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="libglabels-3.0-db.html#lgl-db-is-category-id-known" title="lgl_db_is_category_id_known ()">lgl_db_is_category_id_known</a>         (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>);
+
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="libglabels-3.0-db.html#lgl-db-get-brand-list" title="lgl_db_get_brand_list ()">lgl_db_get_brand_list</a>               (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *paper_id</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *category_id</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-db.html#lgl-db-free-brand-list" title="lgl_db_free_brand_list ()">lgl_db_free_brand_list</a>              (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *brands</code></em>);
+
+<a class="link" href="libglabels-3.0-db.html#lglDbRegStatus" title="enum lglDbRegStatus"><span class="returnvalue">lglDbRegStatus</span></a>      <a class="link" href="libglabels-3.0-db.html#lgl-db-register-template" title="lgl_db_register_template ()">lgl_db_register_template</a>            (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template</code></em>);
+<a class="link" href="libglabels-3.0-db.html#lglDbDeleteStatus" title="enum lglDbDeleteStatus"><span class="returnvalue">lglDbDeleteStatus</span></a>   <a class="link" href="libglabels-3.0-db.html#lgl-db-delete-template-by-brand-part" title="lgl_db_delete_template_by_brand_part ()">lgl_db_delete_template_by_brand_part</a>
+                                                        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *brand</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *part</code></em>);
+<a class="link" href="libglabels-3.0-db.html#lglDbDeleteStatus" title="enum lglDbDeleteStatus"><span class="returnvalue">lglDbDeleteStatus</span></a>   <a class="link" href="libglabels-3.0-db.html#lgl-db-delete-template-by-name" title="lgl_db_delete_template_by_name ()">lgl_db_delete_template_by_name</a>      (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="libglabels-3.0-db.html#lgl-db-does-template-exist" title="lgl_db_does_template_exist ()">lgl_db_does_template_exist</a>          (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *brand</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *part</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="libglabels-3.0-db.html#lgl-db-does-template-name-exist" title="lgl_db_does_template_name_exist ()">lgl_db_does_template_name_exist</a>     (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="libglabels-3.0-db.html#lgl-db-get-template-name-list-all" title="lgl_db_get_template_name_list_all ()">lgl_db_get_template_name_list_all</a>   (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *brand</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *paper_id</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *category_id</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="libglabels-3.0-db.html#lgl-db-get-similar-template-name-list" title="lgl_db_get_similar_template_name_list ()">lgl_db_get_similar_template_name_list</a>
+                                                        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-db.html#lgl-db-free-template-name-list" title="lgl_db_free_template_name_list ()">lgl_db_free_template_name_list</a>      (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *names</code></em>);
+<a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="returnvalue">lglTemplate</span></a> *       <a class="link" href="libglabels-3.0-db.html#lgl-db-lookup-template-from-name" title="lgl_db_lookup_template_from_name ()">lgl_db_lookup_template_from_name</a>    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
+<a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="returnvalue">lglTemplate</span></a> *       <a class="link" href="libglabels-3.0-db.html#lgl-db-lookup-template-from-brand-part" title="lgl_db_lookup_template_from_brand_part ()">lgl_db_lookup_template_from_brand_part</a>
+                                                        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *brand</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *part</code></em>);
+
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="libglabels-3.0-db.html#lgl-db-get-vendor-name-list" title="lgl_db_get_vendor_name_list ()">lgl_db_get_vendor_name_list</a>         (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-db.html#lgl-db-free-vendor-name-list" title="lgl_db_free_vendor_name_list ()">lgl_db_free_vendor_name_list</a>        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *names</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="libglabels-3.0-db.html#lgl-db-is-vendor-name-known" title="lgl_db_is_vendor_name_known ()">lgl_db_is_vendor_name_known</a>         (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
+<a class="link" href="libglabels-3.0-vendor.html#lglVendor" title="struct lglVendor"><span class="returnvalue">lglVendor</span></a> *         <a class="link" href="libglabels-3.0-db.html#lgl-db-lookup-vendor-from-name" title="lgl_db_lookup_vendor_from_name ()">lgl_db_lookup_vendor_from_name</a>      (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
+
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-db.html#lgl-db-print-known-papers" title="lgl_db_print_known_papers ()">lgl_db_print_known_papers</a>           (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-db.html#lgl-db-print-known-categories" title="lgl_db_print_known_categories ()">lgl_db_print_known_categories</a>       (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-db.html#lgl-db-print-known-templates" title="lgl_db_print_known_templates ()">lgl_db_print_known_templates</a>        (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-db.html#lgl-db-print-known-vendors" title="lgl_db_print_known_vendors ()">lgl_db_print_known_vendors</a>          (<em class="parameter"><code><span class="type">void</span></code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libglabels-3.0-db.description"></a><h2>Description</h2>
+<p>
+This section describes a set of functions to locate and add templates and related information in
+the LibGlabels template database.
+</p>
+</div>
+<div class="refsect1">
+<a name="libglabels-3.0-db.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="lglDbRegStatus"></a><h3>enum lglDbRegStatus</h3>
+<pre class="programlisting">typedef enum
+{
+        LGL_DB_REG_OK                =  0,
+        LGL_DB_REG_BAD_PAPER_ID      = -1,
+        LGL_DB_REG_BRAND_PART_EXISTS = -2,
+        LGL_DB_REG_FILE_WRITE_ERROR  = -3
+} lglDbRegStatus;
+</pre>
+<p>
+This enumeration defines a set of possible return values for <a class="link" href="libglabels-3.0-db.html#lgl-db-register-template" title="lgl_db_register_template ()"><code class="function">lgl_db_register_template()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="LGL-DB-REG-OK:CAPS"></a><span class="term"><code class="literal">LGL_DB_REG_OK</code></span></p></td>
+<td>Registration successful.
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-DB-REG-BAD-PAPER-ID:CAPS"></a><span class="term"><code class="literal">LGL_DB_REG_BAD_PAPER_ID</code></span></p></td>
+<td> Registration failed because paper id is unknown.
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-DB-REG-BRAND-PART-EXISTS:CAPS"></a><span class="term"><code class="literal">LGL_DB_REG_BRAND_PART_EXISTS</code></span></p></td>
+<td>Registration failed because template with same brand and part name/number already exists.
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-DB-REG-FILE-WRITE-ERROR:CAPS"></a><span class="term"><code class="literal">LGL_DB_REG_FILE_WRITE_ERROR</code></span></p></td>
+<td>Registration failed because an error while writing to disk.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglDbDeleteStatus"></a><h3>enum lglDbDeleteStatus</h3>
+<pre class="programlisting">typedef enum
+{
+        LGL_DB_DELETE_OK                =  0,
+        LGL_DB_DELETE_DOES_NOT_EXIST    = -1,
+        LGL_DB_DELETE_NOT_USER_DEFINED  = -2,
+        LGL_DB_DELETE_FILE_ERROR        = -3
+} lglDbDeleteStatus;
+</pre>
+<p>
+This enumeration defines a set of possible return values for <a class="link" href="libglabels-3.0-db.html#lgl-db-delete-template-by-name" title="lgl_db_delete_template_by_name ()"><code class="function">lgl_db_delete_template_by_name()</code></a> or <a class="link" href="libglabels-3.0-db.html#lgl-db-delete-template-by-brand-part" title="lgl_db_delete_template_by_brand_part ()"><code class="function">lgl_db_delete_template_by_brand_part()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="LGL-DB-DELETE-OK:CAPS"></a><span class="term"><code class="literal">LGL_DB_DELETE_OK</code></span></p></td>
+<td>Deletion successful.
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-DB-DELETE-DOES-NOT-EXIST:CAPS"></a><span class="term"><code class="literal">LGL_DB_DELETE_DOES_NOT_EXIST</code></span></p></td>
+<td>Deletion failed because template with given brand and part name/number does not exist.
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-DB-DELETE-NOT-USER-DEFINED:CAPS"></a><span class="term"><code class="literal">LGL_DB_DELETE_NOT_USER_DEFINED</code></span></p></td>
+<td>Deletion failed because given template is not a user defined template.
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-DB-DELETE-FILE-ERROR:CAPS"></a><span class="term"><code class="literal">LGL_DB_DELETE_FILE_ERROR</code></span></p></td>
+<td>Deletion failed because of an error while attempting to remove template from disk.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-init"></a><h3>lgl_db_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_db_init                         (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Initialize all libglabels subsystems.  It is not necessary for an application to call
+<a class="link" href="libglabels-3.0-db.html#lgl-db-init" title="lgl_db_init ()"><code class="function">lgl_db_init()</code></a>, because libglabels will initialize on demand.  An application programmer may
+choose to call <a class="link" href="libglabels-3.0-db.html#lgl-db-init" title="lgl_db_init ()"><code class="function">lgl_db_init()</code></a> at startup to minimize the impact of the first libglabels call
+on GUI response time.
+</p>
+<p>
+This function initializes its paper definitions, category definitions, vendor definitions,
+and its template database. It will search both system and user template directories to locate
+this data.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglDbNotifyFunc"></a><h3>lglDbNotifyFunc ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                (*lglDbNotifyFunc)                  (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+Defines the type of notify callback function to be called when database changes.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>Pointer to user data that is passed to the notify function.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-notify-add"></a><h3>lgl_db_notify_add ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="returnvalue">gulong</span></a>              lgl_db_notify_add                   (<em class="parameter"><code><a class="link" href="libglabels-3.0-db.html#lglDbNotifyFunc" title="lglDbNotifyFunc ()"><span class="type">lglDbNotifyFunc</span></a> func</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+Register a notification callback function to be called when the database changes.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
+<td>Callback function to be called when database changes.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>Passback user data to supply to callback function.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>an ID for this notification registration.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-notify-remove"></a><h3>lgl_db_notify_remove ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_db_notify_remove                (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> id</code></em>);</pre>
+<p>
+Cancel a previous registration a notification callback function.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>ID of notification registration to cancel (see <a class="link" href="libglabels-3.0-db.html#lgl-db-notify-add" title="lgl_db_notify_add ()"><code class="function">lgl_db_notify_add()</code></a>).</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-get-paper-id-list"></a><h3>lgl_db_get_paper_id_list ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             lgl_db_get_paper_id_list            (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Get a list of all paper ids known to libglabels.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a list of paper ids.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-free-paper-id-list"></a><h3>lgl_db_free_paper_id_list ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_db_free_paper_id_list           (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *ids</code></em>);</pre>
+<p>
+Free up all storage associated with an id list obtained with
+<a class="link" href="libglabels-3.0-db.html#lgl-db-get-paper-id-list" title="lgl_db_get_paper_id_list ()"><code class="function">lgl_db_get_paper_id_list()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>ids</code></em> :</span></p></td>
+<td>List of id strings to be freed.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-get-paper-name-list"></a><h3>lgl_db_get_paper_name_list ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             lgl_db_get_paper_name_list          (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Get a list of all localized paper names known to libglabels.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a list of localized paper names.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-free-paper-name-list"></a><h3>lgl_db_free_paper_name_list ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_db_free_paper_name_list         (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *names</code></em>);</pre>
+<p>
+Free up all storage associated with a name list obtained with
+<a class="link" href="libglabels-3.0-db.html#lgl-db-get-paper-name-list" title="lgl_db_get_paper_name_list ()"><code class="function">lgl_db_get_paper_name_list()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>names</code></em> :</span></p></td>
+<td>List of localized paper name strings to be freed.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-lookup-paper-from-id"></a><h3>lgl_db_lookup_paper_from_id ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="returnvalue">lglPaper</span></a> *          lgl_db_lookup_paper_from_id         (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>);</pre>
+<p>
+Lookup paper definition from id string.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>paper id string</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>pointer to a newly allocated <a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="type">lglPaper</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-lookup-paper-from-name"></a><h3>lgl_db_lookup_paper_from_name ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="returnvalue">lglPaper</span></a> *          lgl_db_lookup_paper_from_name       (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
+<p>
+Lookup paper definition from localized paper name string.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>localized paper name string</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>pointer to a newly allocated <a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="type">lglPaper</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-lookup-paper-id-from-name"></a><h3>lgl_db_lookup_paper_id_from_name ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             lgl_db_lookup_paper_id_from_name    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
+<p>
+Lookup paper name string from localized paper name string.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>localized paper name stringp</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>pointer to a newly allocated id string.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-lookup-paper-name-from-id"></a><h3>lgl_db_lookup_paper_name_from_id ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             lgl_db_lookup_paper_name_from_id    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>);</pre>
+<p>
+Lookup localized paper name string from paper id string.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>paper id string</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>pointer to a newly allocated localized paper name string.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-is-paper-id-known"></a><h3>lgl_db_is_paper_id_known ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            lgl_db_is_paper_id_known            (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>);</pre>
+<p>
+Determine if given paper id is known to libglabels.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>paper id to test</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if id is known, otherwise FALSE.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-is-paper-id-other"></a><h3>lgl_db_is_paper_id_other ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            lgl_db_is_paper_id_other            (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>);</pre>
+<p>
+Determine if given paper id is the special id "Other."
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>paper id to test</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if id is "Other", otherwise FALSE.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-get-category-id-list"></a><h3>lgl_db_get_category_id_list ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             lgl_db_get_category_id_list         (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Get a list of all category ids known to libglabels.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a list of category ids.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-free-category-id-list"></a><h3>lgl_db_free_category_id_list ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_db_free_category_id_list        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *ids</code></em>);</pre>
+<p>
+Free up all storage associated with an id list obtained with
+<a class="link" href="libglabels-3.0-db.html#lgl-db-get-category-id-list" title="lgl_db_get_category_id_list ()"><code class="function">lgl_db_get_category_id_list()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>ids</code></em> :</span></p></td>
+<td>List of id strings to be freed.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-get-category-name-list"></a><h3>lgl_db_get_category_name_list ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             lgl_db_get_category_name_list       (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Get a list of all localized category names known to libglabels.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a list of localized category names.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-free-category-name-list"></a><h3>lgl_db_free_category_name_list ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_db_free_category_name_list      (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *names</code></em>);</pre>
+<p>
+Free up all storage associated with a name list obtained with
+<a class="link" href="libglabels-3.0-db.html#lgl-db-get-category-name-list" title="lgl_db_get_category_name_list ()"><code class="function">lgl_db_get_category_name_list()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>names</code></em> :</span></p></td>
+<td>List of localized category name strings to be freed.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-lookup-category-from-id"></a><h3>lgl_db_lookup_category_from_id ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="returnvalue">lglCategory</span></a> *       lgl_db_lookup_category_from_id      (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>);</pre>
+<p>
+Lookup category definition from id string.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>category id string</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>pointer to a newly allocated <a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="type">lglCategory</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-lookup-category-from-name"></a><h3>lgl_db_lookup_category_from_name ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="returnvalue">lglCategory</span></a> *       lgl_db_lookup_category_from_name    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
+<p>
+Lookup category definition from localized category name string.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>localized category name string</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>pointer to a newly allocated <a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="type">lglCategory</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-lookup-category-id-from-name"></a><h3>lgl_db_lookup_category_id_from_name ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             lgl_db_lookup_category_id_from_name (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
+<p>
+Lookup category name string from localized category name string.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>localized category name stringp</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>pointer to a newly allocated id string.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-lookup-category-name-from-id"></a><h3>lgl_db_lookup_category_name_from_id ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             lgl_db_lookup_category_name_from_id (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>);</pre>
+<p>
+Lookup localized category name string from category id string.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>category id string</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>pointer to a newly allocated localized category name string.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-is-category-id-known"></a><h3>lgl_db_is_category_id_known ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            lgl_db_is_category_id_known         (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>);</pre>
+<p>
+Determine if given category id is known to libglabels.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>category id to test</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if id is known, otherwise FALSE.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-get-brand-list"></a><h3>lgl_db_get_brand_list ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             lgl_db_get_brand_list               (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *paper_id</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *category_id</code></em>);</pre>
+<p>
+Get a list of all valid brands of templates in the template database.
+Results can be filtered by page size and/or template category.  A list of valid page
+sizes can be obtained using <a class="link" href="libglabels-3.0-db.html#lgl-db-get-paper-id-list" title="lgl_db_get_paper_id_list ()"><code class="function">lgl_db_get_paper_id_list()</code></a>.  A list of valid template
+categories can be obtained using <a class="link" href="libglabels-3.0-db.html#lgl-db-get-category-id-list" title="lgl_db_get_category_id_list ()"><code class="function">lgl_db_get_category_id_list()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>paper_id</code></em> :</span></p></td>
+<td>If non NULL, limit results to given page size.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>category_id</code></em> :</span></p></td>
+<td>If non NULL, limit results to given template category.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a list of brands</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-free-brand-list"></a><h3>lgl_db_free_brand_list ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_db_free_brand_list              (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *brands</code></em>);</pre>
+<p>
+Free up all storage associated with a list of template names obtained with
+<a class="link" href="libglabels-3.0-db.html#lgl-db-get-brand-list" title="lgl_db_get_brand_list ()"><code class="function">lgl_db_get_brand_list()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>brands</code></em> :</span></p></td>
+<td>List of template brand strings to be freed.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-register-template"></a><h3>lgl_db_register_template ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-db.html#lglDbRegStatus" title="enum lglDbRegStatus"><span class="returnvalue">lglDbRegStatus</span></a>      lgl_db_register_template            (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template</code></em>);</pre>
+<p>
+Register a template.  This function adds a template to the template database.
+The template will be stored in an individual XML file in the user template directory.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>template</code></em> :</span></p></td>
+<td>Pointer to a template structure to add to database.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Status of registration attempt (<a class="link" href="libglabels-3.0-db.html#lglDbRegStatus" title="enum lglDbRegStatus"><span class="type">lglDbRegStatus</span></a>)</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-delete-template-by-brand-part"></a><h3>lgl_db_delete_template_by_brand_part ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-db.html#lglDbDeleteStatus" title="enum lglDbDeleteStatus"><span class="returnvalue">lglDbDeleteStatus</span></a>   lgl_db_delete_template_by_brand_part
+                                                        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *brand</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *part</code></em>);</pre>
+<p>
+Delete a user defined template.  This function deletes a template from
+the template database. The individual XML file in the user template
+directory will also be removed.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>brand</code></em> :</span></p></td>
+<td>Brand name or vendor of template to be deleted.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>part</code></em> :</span></p></td>
+<td>Part name or number of template to be deleted.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Status of registration attempt (<a class="link" href="libglabels-3.0-db.html#lglDbDeleteStatus" title="enum lglDbDeleteStatus"><span class="type">lglDbDeleteStatus</span></a>)</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-delete-template-by-name"></a><h3>lgl_db_delete_template_by_name ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-db.html#lglDbDeleteStatus" title="enum lglDbDeleteStatus"><span class="returnvalue">lglDbDeleteStatus</span></a>   lgl_db_delete_template_by_name      (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
+<p>
+Delete a user defined template.  This function deletes a template from
+the template database. The individual XML file in the user template
+directory will also be removed.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Name of template to be deleted.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Status of registration attempt (<a class="link" href="libglabels-3.0-db.html#lglDbDeleteStatus" title="enum lglDbDeleteStatus"><span class="type">lglDbDeleteStatus</span></a>)</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-does-template-exist"></a><h3>lgl_db_does_template_exist ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            lgl_db_does_template_exist          (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *brand</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *part</code></em>);</pre>
+<p>
+This function tests whether a template with the given brand and part name/number exists.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>brand</code></em> :</span></p></td>
+<td>Brand name.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>part</code></em> :</span></p></td>
+<td>Part name/number.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if such a template exists in the database.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-does-template-name-exist"></a><h3>lgl_db_does_template_name_exist ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            lgl_db_does_template_name_exist     (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
+<p>
+This function test whether a template with the given name exists.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>name string</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if such a template exists in the database.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-get-template-name-list-all"></a><h3>lgl_db_get_template_name_list_all ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             lgl_db_get_template_name_list_all   (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *brand</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *paper_id</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *category_id</code></em>);</pre>
+<p>
+Get a list of all valid names of templates in the template database.
+Results can be filtered by page size and/or template category.  A list of valid page
+sizes can be obtained using <a class="link" href="libglabels-3.0-db.html#lgl-db-get-paper-id-list" title="lgl_db_get_paper_id_list ()"><code class="function">lgl_db_get_paper_id_list()</code></a>.  A list of valid template
+categories can be obtained using <a class="link" href="libglabels-3.0-db.html#lgl-db-get-category-id-list" title="lgl_db_get_category_id_list ()"><code class="function">lgl_db_get_category_id_list()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>brand</code></em> :</span></p></td>
+<td>If non NULL, limit results to given brand</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>paper_id</code></em> :</span></p></td>
+<td>If non NULL, limit results to given page size.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>category_id</code></em> :</span></p></td>
+<td>If non NULL, limit results to given template category.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a list of template names.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-get-similar-template-name-list"></a><h3>lgl_db_get_similar_template_name_list ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             lgl_db_get_similar_template_name_list
+                                                        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
+<p>
+Get a list of all valid names of templates in the template database that
+have the same size and layout characteristics as the given template.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Name of template under test.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a list of template names.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-free-template-name-list"></a><h3>lgl_db_free_template_name_list ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_db_free_template_name_list      (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *names</code></em>);</pre>
+<p>
+Free up all storage associated with a list of template names obtained with
+<a class="link" href="libglabels-3.0-db.html#lgl-db-get-template-name-list-all" title="lgl_db_get_template_name_list_all ()"><code class="function">lgl_db_get_template_name_list_all()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>names</code></em> :</span></p></td>
+<td>List of template name strings to be freed.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-lookup-template-from-name"></a><h3>lgl_db_lookup_template_from_name ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="returnvalue">lglTemplate</span></a> *       lgl_db_lookup_template_from_name    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
+<p>
+Lookup template in template database from name string.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>name string</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>pointer to a newly allocated <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-lookup-template-from-brand-part"></a><h3>lgl_db_lookup_template_from_brand_part ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="returnvalue">lglTemplate</span></a> *       lgl_db_lookup_template_from_brand_part
+                                                        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *brand</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *part</code></em>);</pre>
+<p>
+Lookup template in template database from brand and part strings.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>brand</code></em> :</span></p></td>
+<td>brand name string</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>part</code></em> :</span></p></td>
+<td>part name string</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>pointer to a newly allocated <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-get-vendor-name-list"></a><h3>lgl_db_get_vendor_name_list ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             lgl_db_get_vendor_name_list         (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Get a list of all localized vendor names known to libglabels.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a list of localized vendor names.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-free-vendor-name-list"></a><h3>lgl_db_free_vendor_name_list ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_db_free_vendor_name_list        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *names</code></em>);</pre>
+<p>
+Free up all storage associated with a name list obtained with
+<a class="link" href="libglabels-3.0-db.html#lgl-db-get-vendor-name-list" title="lgl_db_get_vendor_name_list ()"><code class="function">lgl_db_get_vendor_name_list()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>names</code></em> :</span></p></td>
+<td>List of localized vendor name strings to be freed.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-is-vendor-name-known"></a><h3>lgl_db_is_vendor_name_known ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            lgl_db_is_vendor_name_known         (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
+<p>
+Determine if given vendor id is known to libglabels.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>vendor name to test</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if id is known, otherwise FALSE.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-lookup-vendor-from-name"></a><h3>lgl_db_lookup_vendor_from_name ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-vendor.html#lglVendor" title="struct lglVendor"><span class="returnvalue">lglVendor</span></a> *         lgl_db_lookup_vendor_from_name      (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
+<p>
+Lookup vendor definition from localized vendor name string.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>localized vendor name string</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>pointer to a newly allocated <a class="link" href="libglabels-3.0-vendor.html#lglVendor" title="struct lglVendor"><span class="type">lglVendor</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-print-known-papers"></a><h3>lgl_db_print_known_papers ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_db_print_known_papers           (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+For debugging purposes: print a list of all paper definitions known to
+libglabels.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-print-known-categories"></a><h3>lgl_db_print_known_categories ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_db_print_known_categories       (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+For debugging purposes: print a list of all category definitions known to
+libglabels.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-print-known-templates"></a><h3>lgl_db_print_known_templates ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_db_print_known_templates        (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Print all known templates (for debugging purposes).
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-db-print-known-vendors"></a><h3>lgl_db_print_known_vendors ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_db_print_known_vendors          (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+For debugging purposes: print a list of all vendor definitions known to
+libglabels.
+</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.17</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libglabels/html/libglabels-3.0-paper.html b/docs/libglabels/html/libglabels-3.0-paper.html
new file mode 100644 (file)
index 0000000..e074aad
--- /dev/null
@@ -0,0 +1,186 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>The lglPaper Structure</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="LibGlabels 3.0 Reference Manual">
+<link rel="up" href="ch01.html" title="Basic LibGlabels Usage">
+<link rel="prev" href="libglabels-3.0-template.html" title="The lglTemplate Structure">
+<link rel="next" href="libglabels-3.0-category.html" title="The lglCategory Structure">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libglabels-3.0-template.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">LibGlabels 3.0 Reference Manual</th>
+<td><a accesskey="n" href="libglabels-3.0-category.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libglabels-3.0-paper.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#libglabels-3.0-paper.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libglabels-3.0-paper"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libglabels-3.0-paper.top_of_page"></a>The lglPaper Structure</span></h2>
+<p>The lglPaper Structure — Paper size definitions</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libglabels-3.0-paper.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libglabels/lgl-paper.h&gt;
+
+struct              <a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper">lglPaper</a>;
+<a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="returnvalue">lglPaper</span></a> *          <a class="link" href="libglabels-3.0-paper.html#lgl-paper-new" title="lgl_paper_new ()">lgl_paper_new</a>                       (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> width</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> height</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *pwg_size</code></em>);
+<a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="returnvalue">lglPaper</span></a> *          <a class="link" href="libglabels-3.0-paper.html#lgl-paper-dup" title="lgl_paper_dup ()">lgl_paper_dup</a>                       (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="type">lglPaper</span></a> *orig</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-paper.html#lgl-paper-free" title="lgl_paper_free ()">lgl_paper_free</a>                      (<em class="parameter"><code><a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="type">lglPaper</span></a> *paper</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libglabels-3.0-paper.description"></a><h2>Description</h2>
+<p>
+This section describes a structure for representing a paper size definition
+and related functions.
+</p>
+</div>
+<div class="refsect1">
+<a name="libglabels-3.0-paper.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="lglPaper"></a><h3>struct lglPaper</h3>
+<pre class="programlisting">struct lglPaper {
+        gchar               *id;       /* Unique ID of paper definition */
+        gchar               *name;     /* Localized name of paper */
+        gdouble              width;    /* Width (in points) */
+        gdouble              height;   /* Height (in points) */
+        gchar               *pwg_size; /* PWG 5101.1-2002 size name */
+};
+</pre>
+<p>
+This structure defines a paper (page) size.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="lglPaper.id"></a>id</code></em>;</span></p></td>
+<td>Paper size ID.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="lglPaper.name"></a>name</code></em>;</span></p></td>
+<td>Localized paper size name.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglPaper.width"></a>width</code></em>;</span></p></td>
+<td>Width of paper in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglPaper.height"></a>height</code></em>;</span></p></td>
+<td>Height of paper in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="lglPaper.pwg-size"></a>pwg_size</code></em>;</span></p></td>
+<td>Paper size string as defined in PWG 5101.1-2002.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-paper-new"></a><h3>lgl_paper_new ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="returnvalue">lglPaper</span></a> *          lgl_paper_new                       (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> width</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> height</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *pwg_size</code></em>);</pre>
+<p>
+Allocates and constructs a new <a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="type">lglPaper</span></a> structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>Id of paper definition. (E.g. US-Letter, A4, etc.)  Should be
+unique.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Localized name of paper.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
+<td>Width of paper in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>height</code></em> :</span></p></td>
+<td>Height of paper in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pwg_size</code></em> :</span></p></td>
+<td>PWG 5101.1-2002 size name.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a pointer to a newly allocated <a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="type">lglPaper</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-paper-dup"></a><h3>lgl_paper_dup ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="returnvalue">lglPaper</span></a> *          lgl_paper_dup                       (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="type">lglPaper</span></a> *orig</code></em>);</pre>
+<p>
+Duplicates an existing <a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="type">lglPaper</span></a> structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>orig</code></em> :</span></p></td>
+<td>
+<a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="type">lglPaper</span></a> structure to be duplicated.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a pointer to a newly allocated <a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="type">lglPaper</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-paper-free"></a><h3>lgl_paper_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_paper_free                      (<em class="parameter"><code><a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="type">lglPaper</span></a> *paper</code></em>);</pre>
+<p>
+Free all memory associated with an existing <a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="type">lglPaper</span></a> structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>paper</code></em> :</span></p></td>
+<td>pointer to <a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="type">lglPaper</span></a> structure to be freed.</td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.17</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libglabels/html/libglabels-3.0-str.html b/docs/libglabels/html/libglabels-3.0-str.html
new file mode 100644 (file)
index 0000000..f5abbf9
--- /dev/null
@@ -0,0 +1,169 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>String Utility Functions</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="LibGlabels 3.0 Reference Manual">
+<link rel="up" href="ch03.html" title="Miscellaneous">
+<link rel="prev" href="libglabels-3.0-units.html" title="Units">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libglabels-3.0-units.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch03.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">LibGlabels 3.0 Reference Manual</th>
+<td> </td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libglabels-3.0-str.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#libglabels-3.0-str.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libglabels-3.0-str"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libglabels-3.0-str.top_of_page"></a>String Utility Functions</span></h2>
+<p>String Utility Functions — String utility functions provided by libglabels</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libglabels-3.0-str.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libglabels/lgl-str.h&gt;
+
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="libglabels-3.0-str.html#lgl-str-utf8-casecmp" title="lgl_str_utf8_casecmp ()">lgl_str_utf8_casecmp</a>                (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *s1</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *s2</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="libglabels-3.0-str.html#lgl-str-part-name-cmp" title="lgl_str_part_name_cmp ()">lgl_str_part_name_cmp</a>               (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *s1</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *s2</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="libglabels-3.0-str.html#lgl-str-format-fraction" title="lgl_str_format_fraction ()">lgl_str_format_fraction</a>             (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libglabels-3.0-str.description"></a><h2>Description</h2>
+<p>
+This section defines string utility functions used by libglabels and of
+possible use to a user of libglabels.
+</p>
+</div>
+<div class="refsect1">
+<a name="libglabels-3.0-str.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="lgl-str-utf8-casecmp"></a><h3>lgl_str_utf8_casecmp ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                lgl_str_utf8_casecmp                (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *s1</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *s2</code></em>);</pre>
+<p>
+Compare two UTF-8 strings, ignoring the case of characters.
+</p>
+<p>
+This function should be used only on strings that are known to be encoded
+in UTF-8 or a compatible UTF-8 subset.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>s1</code></em> :</span></p></td>
+<td>string to compare with s2.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>s2</code></em> :</span></p></td>
+<td>string to compare with s1.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 if the strings match, a negative value if s1 &lt; s2,
+or a positive value if s1 &gt; s2.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-str-part-name-cmp"></a><h3>lgl_str_part_name_cmp ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                lgl_str_part_name_cmp               (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *s1</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *s2</code></em>);</pre>
+<p>
+Compare two UTF-8 strings representing part names or numbers.  This function
+uses a natural sort order:
+</p>
+<p>
+ - Ignores case.
+</p>
+<p>
+ - Strings are divided into chunks (numeric and non-numeric)
+</p>
+<p>
+ - Non-numeric chunks are compared character by character
+</p>
+<p>
+ - Numerical chunks are compared numerically, so that "20" precedes "100".
+</p>
+<p>
+ - Comparison of chunks is performed left to right until the first difference
+   is encountered or all chunks evaluate as equal.
+</p>
+<p>
+This function should be used only on strings that are known to be encoded
+in UTF-8 or a compatible UTF-8 subset.
+</p>
+<p>
+Numeric chunks are converted to 64 bit unsigned integers for comparison,
+so the behaviour may be unpredictable for numeric chunks that exceed
+18446744073709551615.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>s1</code></em> :</span></p></td>
+<td>string to compare with s2.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>s2</code></em> :</span></p></td>
+<td>string to compare with s1.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 if the strings match, a negative value if s1 &lt; s2,
+or a positive value if s1 &gt; s2.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-str-format-fraction"></a><h3>lgl_str_format_fraction ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             lgl_str_format_fraction             (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x</code></em>);</pre>
+<p>
+Create fractional representation of number, if possible.  Uses UTF-8 superscripts and
+subscripts for numerator and denominator values respecively.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
+<td>Floating point number to convert to fractional notation</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>UTF-8 string containing fractional representation of x.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.17</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libglabels/html/libglabels-3.0-template.html b/docs/libglabels/html/libglabels-3.0-template.html
new file mode 100644 (file)
index 0000000..5520b92
--- /dev/null
@@ -0,0 +1,1891 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>The lglTemplate Structure</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="LibGlabels 3.0 Reference Manual">
+<link rel="up" href="ch01.html" title="Basic LibGlabels Usage">
+<link rel="prev" href="libglabels-3.0-db.html" title="Database">
+<link rel="next" href="libglabels-3.0-paper.html" title="The lglPaper Structure">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libglabels-3.0-db.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">LibGlabels 3.0 Reference Manual</th>
+<td><a accesskey="n" href="libglabels-3.0-paper.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libglabels-3.0-template.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#libglabels-3.0-template.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libglabels-3.0-template"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libglabels-3.0-template.top_of_page"></a>The lglTemplate Structure</span></h2>
+<p>The lglTemplate Structure — How templates are represented in memory</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libglabels-3.0-template.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libglabels/lgl-template.h&gt;
+
+struct              <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate">lglTemplate</a>;
+
+enum                <a class="link" href="libglabels-3.0-template.html#lglTemplateFrameShape" title="enum lglTemplateFrameShape">lglTemplateFrameShape</a>;
+union               <a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a>;
+struct              <a class="link" href="libglabels-3.0-template.html#lglTemplateFrameAll" title="struct lglTemplateFrameAll">lglTemplateFrameAll</a>;
+struct              <a class="link" href="libglabels-3.0-template.html#lglTemplateFrameRect" title="struct lglTemplateFrameRect">lglTemplateFrameRect</a>;
+struct              <a class="link" href="libglabels-3.0-template.html#lglTemplateFrameEllipse" title="struct lglTemplateFrameEllipse">lglTemplateFrameEllipse</a>;
+struct              <a class="link" href="libglabels-3.0-template.html#lglTemplateFrameRound" title="struct lglTemplateFrameRound">lglTemplateFrameRound</a>;
+struct              <a class="link" href="libglabels-3.0-template.html#lglTemplateFrameCD" title="struct lglTemplateFrameCD">lglTemplateFrameCD</a>;
+
+struct              <a class="link" href="libglabels-3.0-template.html#lglTemplateLayout" title="struct lglTemplateLayout">lglTemplateLayout</a>;
+
+enum                <a class="link" href="libglabels-3.0-template.html#lglTemplateMarkupType" title="enum lglTemplateMarkupType">lglTemplateMarkupType</a>;
+union               <a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup">lglTemplateMarkup</a>;
+struct              <a class="link" href="libglabels-3.0-template.html#lglTemplateMarkupMargin" title="struct lglTemplateMarkupMargin">lglTemplateMarkupMargin</a>;
+struct              <a class="link" href="libglabels-3.0-template.html#lglTemplateMarkupLine" title="struct lglTemplateMarkupLine">lglTemplateMarkupLine</a>;
+struct              <a class="link" href="libglabels-3.0-template.html#lglTemplateMarkupCircle" title="struct lglTemplateMarkupCircle">lglTemplateMarkupCircle</a>;
+struct              <a class="link" href="libglabels-3.0-template.html#lglTemplateMarkupRect" title="struct lglTemplateMarkupRect">lglTemplateMarkupRect</a>;
+struct              <a class="link" href="libglabels-3.0-template.html#lglTemplateMarkupEllipse" title="struct lglTemplateMarkupEllipse">lglTemplateMarkupEllipse</a>;
+
+struct              <a class="link" href="libglabels-3.0-template.html#lglTemplateOrigin" title="struct lglTemplateOrigin">lglTemplateOrigin</a>;
+
+<a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="returnvalue">lglTemplate</span></a> *       <a class="link" href="libglabels-3.0-template.html#lgl-template-new" title="lgl_template_new ()">lgl_template_new</a>                    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *brand</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *part</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *paper_id</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> page_width</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> page_height</code></em>);
+<a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="returnvalue">lglTemplate</span></a> *       <a class="link" href="libglabels-3.0-template.html#lgl-template-new-from-equiv" title="lgl_template_new_from_equiv ()">lgl_template_new_from_equiv</a>         (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *brand</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *part</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *equiv_part</code></em>);
+<a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="returnvalue">lglTemplate</span></a> *       <a class="link" href="libglabels-3.0-template.html#lgl-template-dup" title="lgl_template_dup ()">lgl_template_dup</a>                    (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *orig_template</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-template.html#lgl-template-free" title="lgl_template_free ()">lgl_template_free</a>                   (<em class="parameter"><code><a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-template.html#lgl-template-add-category" title="lgl_template_add_category ()">lgl_template_add_category</a>           (<em class="parameter"><code><a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *category_id</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-template.html#lgl-template-add-frame" title="lgl_template_add_frame ()">lgl_template_add_frame</a>              (<em class="parameter"><code><a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> *frame</code></em>);
+
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="libglabels-3.0-template.html#lgl-template-get-name" title="lgl_template_get_name ()">lgl_template_get_name</a>               (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="libglabels-3.0-template.html#lgl-template-do-templates-match" title="lgl_template_do_templates_match ()">lgl_template_do_templates_match</a>     (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template1</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template2</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="libglabels-3.0-template.html#lgl-template-does-brand-match" title="lgl_template_does_brand_match ()">lgl_template_does_brand_match</a>       (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *brand</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="libglabels-3.0-template.html#lgl-template-does-page-size-match" title="lgl_template_does_page_size_match ()">lgl_template_does_page_size_match</a>   (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *paper_id</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="libglabels-3.0-template.html#lgl-template-does-category-match" title="lgl_template_does_category_match ()">lgl_template_does_category_match</a>    (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *category_id</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="libglabels-3.0-template.html#lgl-template-are-templates-identical" title="lgl_template_are_templates_identical ()">lgl_template_are_templates_identical</a>
+                                                        (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template1</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template2</code></em>);
+
+<a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="returnvalue">lglTemplateFrame</span></a> *  <a class="link" href="libglabels-3.0-template.html#lgl-template-frame-rect-new" title="lgl_template_frame_rect_new ()">lgl_template_frame_rect_new</a>         (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> w</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> h</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> r</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x_waste</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y_waste</code></em>);
+<a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="returnvalue">lglTemplateFrame</span></a> *  <a class="link" href="libglabels-3.0-template.html#lgl-template-frame-ellipse-new" title="lgl_template_frame_ellipse_new ()">lgl_template_frame_ellipse_new</a>      (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> w</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> h</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> waste</code></em>);
+<a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="returnvalue">lglTemplateFrame</span></a> *  <a class="link" href="libglabels-3.0-template.html#lgl-template-frame-round-new" title="lgl_template_frame_round_new ()">lgl_template_frame_round_new</a>        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> r</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> waste</code></em>);
+<a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="returnvalue">lglTemplateFrame</span></a> *  <a class="link" href="libglabels-3.0-template.html#lgl-template-frame-cd-new" title="lgl_template_frame_cd_new ()">lgl_template_frame_cd_new</a>           (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> r1</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> r2</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> w</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> h</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> waste</code></em>);
+<a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="returnvalue">lglTemplateFrame</span></a> *  <a class="link" href="libglabels-3.0-template.html#lgl-template-frame-dup" title="lgl_template_frame_dup ()">lgl_template_frame_dup</a>              (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> *orig_frame</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-template.html#lgl-template-frame-free" title="lgl_template_frame_free ()">lgl_template_frame_free</a>             (<em class="parameter"><code><a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> *frame</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-template.html#lgl-template-frame-add-layout" title="lgl_template_frame_add_layout ()">lgl_template_frame_add_layout</a>       (<em class="parameter"><code><a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> *frame</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="libglabels-3.0-template.html#lglTemplateLayout" title="struct lglTemplateLayout"><span class="type">lglTemplateLayout</span></a> *layout</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-template.html#lgl-template-frame-add-markup" title="lgl_template_frame_add_markup ()">lgl_template_frame_add_markup</a>       (<em class="parameter"><code><a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> *frame</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="type">lglTemplateMarkup</span></a> *markup</code></em>);
+
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-template.html#lgl-template-frame-get-size" title="lgl_template_frame_get_size ()">lgl_template_frame_get_size</a>         (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> *frame</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *w</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *h</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="libglabels-3.0-template.html#lgl-template-frame-get-n-labels" title="lgl_template_frame_get_n_labels ()">lgl_template_frame_get_n_labels</a>     (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> *frame</code></em>);
+<a class="link" href="libglabels-3.0-template.html#lglTemplateOrigin" title="struct lglTemplateOrigin"><span class="returnvalue">lglTemplateOrigin</span></a> * <a class="link" href="libglabels-3.0-template.html#lgl-template-frame-get-origins" title="lgl_template_frame_get_origins ()">lgl_template_frame_get_origins</a>      (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> *frame</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="libglabels-3.0-template.html#lgl-template-frame-get-layout-description" title="lgl_template_frame_get_layout_description ()">lgl_template_frame_get_layout_description</a>
+                                                        (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> *frame</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="libglabels-3.0-template.html#lgl-template-frame-get-size-description" title="lgl_template_frame_get_size_description ()">lgl_template_frame_get_size_description</a>
+                                                        (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> *frame</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="type">lglUnits</span></a> units</code></em>);
+
+<a class="link" href="libglabels-3.0-template.html#lglTemplateLayout" title="struct lglTemplateLayout"><span class="returnvalue">lglTemplateLayout</span></a> * <a class="link" href="libglabels-3.0-template.html#lgl-template-layout-new" title="lgl_template_layout_new ()">lgl_template_layout_new</a>             (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> nx</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> ny</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x0</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y0</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> dx</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> dy</code></em>);
+<a class="link" href="libglabels-3.0-template.html#lglTemplateLayout" title="struct lglTemplateLayout"><span class="returnvalue">lglTemplateLayout</span></a> * <a class="link" href="libglabels-3.0-template.html#lgl-template-layout-dup" title="lgl_template_layout_dup ()">lgl_template_layout_dup</a>             (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplateLayout" title="struct lglTemplateLayout"><span class="type">lglTemplateLayout</span></a> *orig_layout</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-template.html#lgl-template-layout-free" title="lgl_template_layout_free ()">lgl_template_layout_free</a>            (<em class="parameter"><code><a class="link" href="libglabels-3.0-template.html#lglTemplateLayout" title="struct lglTemplateLayout"><span class="type">lglTemplateLayout</span></a> *layout</code></em>);
+
+<a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="returnvalue">lglTemplateMarkup</span></a> * <a class="link" href="libglabels-3.0-template.html#lgl-template-markup-margin-new" title="lgl_template_markup_margin_new ()">lgl_template_markup_margin_new</a>      (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> size</code></em>);
+<a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="returnvalue">lglTemplateMarkup</span></a> * <a class="link" href="libglabels-3.0-template.html#lgl-template-markup-line-new" title="lgl_template_markup_line_new ()">lgl_template_markup_line_new</a>        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x1</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y1</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x2</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y2</code></em>);
+<a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="returnvalue">lglTemplateMarkup</span></a> * <a class="link" href="libglabels-3.0-template.html#lgl-template-markup-circle-new" title="lgl_template_markup_circle_new ()">lgl_template_markup_circle_new</a>      (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x0</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y0</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> r</code></em>);
+<a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="returnvalue">lglTemplateMarkup</span></a> * <a class="link" href="libglabels-3.0-template.html#lgl-template-markup-rect-new" title="lgl_template_markup_rect_new ()">lgl_template_markup_rect_new</a>        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x1</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y1</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> w</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> h</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> r</code></em>);
+<a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="returnvalue">lglTemplateMarkup</span></a> * <a class="link" href="libglabels-3.0-template.html#lgl-template-markup-ellipse-new" title="lgl_template_markup_ellipse_new ()">lgl_template_markup_ellipse_new</a>     (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x1</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y1</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> w</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> h</code></em>);
+<a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="returnvalue">lglTemplateMarkup</span></a> * <a class="link" href="libglabels-3.0-template.html#lgl-template-markup-dup" title="lgl_template_markup_dup ()">lgl_template_markup_dup</a>             (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="type">lglTemplateMarkup</span></a> *orig_markup</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-template.html#lgl-template-markup-free" title="lgl_template_markup_free ()">lgl_template_markup_free</a>            (<em class="parameter"><code><a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="type">lglTemplateMarkup</span></a> *markup</code></em>);
+
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-template.html#lgl-template-print" title="lgl_template_print ()">lgl_template_print</a>                  (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libglabels-3.0-template.description"></a><h2>Description</h2>
+<p>
+This section describes a set of structures that represent a template in memory.  It also
+describes functions to help create and interpret these structures.
+</p>
+</div>
+<div class="refsect1">
+<a name="libglabels-3.0-template.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="lglTemplate"></a><h3>struct lglTemplate</h3>
+<pre class="programlisting">struct lglTemplate {
+        gchar               *brand;
+        gchar               *part;
+        gchar               *equiv_part;
+
+        gchar               *description;
+        gchar               *paper_id;
+        gdouble              page_width;
+        gdouble              page_height;
+
+        /* Meta information. */
+        gchar               *product_url;   /* URL to manufacturer's product website. */
+        GList               *category_ids;  /* List of (gchar *) category ids. */
+
+        /* List of (lglTemplateFrame *) label frame structures.
+         * Currently glabels only supports a single label frame per
+         * template. */
+        GList               *frames;
+};
+</pre>
+<p>
+This is the main structure of a libglabels template.  A template represents a single sheet
+of peel-off labels or cards.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="lglTemplate.brand"></a>brand</code></em>;</span></p></td>
+<td>Vendor or brand name of label or card.  E.g. "Avery."</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="lglTemplate.part"></a>part</code></em>;</span></p></td>
+<td>Part name or number of label or card.  E.g. "8160."</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="lglTemplate.equiv-part"></a>equiv_part</code></em>;</span></p></td>
+<td>Part name or number of a part with identical layout.  Must be from same vendor.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="lglTemplate.description"></a>description</code></em>;</span></p></td>
+<td>A description of the template.  E.g. "Mailing labels."</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="lglTemplate.paper-id"></a>paper_id</code></em>;</span></p></td>
+<td>A paper ID.  E.g. "A4" or "US-Letter."</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplate.page-width"></a>page_width</code></em>;</span></p></td>
+<td>Page width in points.  Used only if paper_id is "Other."</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplate.page-height"></a>page_height</code></em>;</span></p></td>
+<td>Page height in points.  Used only if paper_id is "Other."</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="lglTemplate.product-url"></a>product_url</code></em>;</span></p></td>
+<td>URL to a webpage describing product.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="lglTemplate.category-ids"></a>category_ids</code></em>;</span></p></td>
+<td>A list of category IDs that this template belongs to.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="lglTemplate.frames"></a>frames</code></em>;</span></p></td>
+<td>A list of (<a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> *) structures.  GLabels currently only supports one frame
+per template -- future versions may support multiple frames per template.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglTemplateFrameShape"></a><h3>enum lglTemplateFrameShape</h3>
+<pre class="programlisting">typedef enum {
+        LGL_TEMPLATE_FRAME_SHAPE_RECT,
+        LGL_TEMPLATE_FRAME_SHAPE_ELLIPSE,
+        LGL_TEMPLATE_FRAME_SHAPE_ROUND,
+        LGL_TEMPLATE_FRAME_SHAPE_CD
+} lglTemplateFrameShape;
+</pre>
+<p>
+This enumeration defines frame types that are supported by libglabels
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="LGL-TEMPLATE-FRAME-SHAPE-RECT:CAPS"></a><span class="term"><code class="literal">LGL_TEMPLATE_FRAME_SHAPE_RECT</code></span></p></td>
+<td>A rectangular frame.  (May have rounded corners.)
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-TEMPLATE-FRAME-SHAPE-ELLIPSE:CAPS"></a><span class="term"><code class="literal">LGL_TEMPLATE_FRAME_SHAPE_ELLIPSE</code></span></p></td>
+<td>An elliptical frame.
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-TEMPLATE-FRAME-SHAPE-ROUND:CAPS"></a><span class="term"><code class="literal">LGL_TEMPLATE_FRAME_SHAPE_ROUND</code></span></p></td>
+<td>A round frame.
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-TEMPLATE-FRAME-SHAPE-CD:CAPS"></a><span class="term"><code class="literal">LGL_TEMPLATE_FRAME_SHAPE_CD</code></span></p></td>
+<td>A CD or DVD frame.  (Includes credit-card style CDs.)
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglTemplateFrame"></a><h3>union lglTemplateFrame</h3>
+<pre class="programlisting">union _lglTemplateFrame{
+
+        lglTemplateFrameShape   shape;
+
+        lglTemplateFrameAll     all;
+        lglTemplateFrameRect    rect;
+        lglTemplateFrameEllipse ellipse;
+        lglTemplateFrameRound   round;
+        lglTemplateFrameCD      cd;
+};
+</pre>
+<p>
+A union of all possible frame structures.  The type of structure is indicated by the shape
+member, which overlays the first field of all other member structures.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglTemplateFrameAll"></a><h3>struct lglTemplateFrameAll</h3>
+<pre class="programlisting">struct lglTemplateFrameAll {
+        /* Begin Common Fields */
+        lglTemplateFrameShape shape;
+
+        gchar                *id;       /* Id, currently always "0" */
+        GList                *layouts;  /* List of lglTemplateLayouts */
+        GList                *markups;  /* List of lglTemplateMarkups */
+        /* End Common Fields */
+};
+</pre>
+<p>
+This structure is composed of a set of fields common to all frame structures.  All frame types
+can be cast to this structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="libglabels-3.0-template.html#lglTemplateFrameShape" title="enum lglTemplateFrameShape"><span class="type">lglTemplateFrameShape</span></a> <em class="structfield"><code><a name="lglTemplateFrameAll.shape"></a>shape</code></em>;</span></p></td>
+<td>The shape of the frame.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="lglTemplateFrameAll.id"></a>id</code></em>;</span></p></td>
+<td>Reserved for future use.  Should always be zero.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="lglTemplateFrameAll.layouts"></a>layouts</code></em>;</span></p></td>
+<td>A list of (<a class="link" href="libglabels-3.0-template.html#lglTemplateLayout" title="struct lglTemplateLayout"><span class="type">lglTemplateLayout</span></a> *) structures.  Typically a frame will have a single
+layout, representing a simple grid of labels or cards.  If the layout of labels or cards is
+more complex, multiple (<a class="link" href="libglabels-3.0-template.html#lglTemplateLayout" title="struct lglTemplateLayout"><span class="type">lglTemplateLayout</span></a> *) structures may be needed.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="lglTemplateFrameAll.markups"></a>markups</code></em>;</span></p></td>
+<td>A list of (<a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="type">lglTemplateMarkup</span></a> *) structures, which represent non-printing markup lines.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglTemplateFrameRect"></a><h3>struct lglTemplateFrameRect</h3>
+<pre class="programlisting">struct lglTemplateFrameRect {
+        /* Begin Common Fields */
+        lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_RECT. */
+
+        gchar                *id;       /* Id, currently always "0" */
+        GList                *layouts;  /* List of lglTemplateLayouts */
+        GList                *markups;  /* List of lglTemplateMarkups */
+        /* End Common Fields */
+
+        gdouble               w;        /* Width */
+        gdouble               h;        /* Height */
+        gdouble               r;        /* Corner radius */
+        gdouble               x_waste;  /* Amount of horiz overprint allowed. */
+        gdouble               y_waste;  /* Amount of vert overprint allowed. */
+};
+</pre>
+<p>
+This structure defines the frame for a rectangular label or card.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="libglabels-3.0-template.html#lglTemplateFrameShape" title="enum lglTemplateFrameShape"><span class="type">lglTemplateFrameShape</span></a> <em class="structfield"><code><a name="lglTemplateFrameRect.shape"></a>shape</code></em>;</span></p></td>
+<td>Common field.  Always <a class="link" href="libglabels-3.0-template.html#LGL-TEMPLATE-FRAME-SHAPE-RECT:CAPS"><span class="type">LGL_TEMPLATE_FRAME_SHAPE_RECT</span></a> for <a class="link" href="libglabels-3.0-template.html#lglTemplateFrameRect" title="struct lglTemplateFrameRect"><span class="type">lglTemplateFrameRect</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="lglTemplateFrameRect.id"></a>id</code></em>;</span></p></td>
+<td>Common field.  See <a class="link" href="libglabels-3.0-template.html#lglTemplateFrameAll" title="struct lglTemplateFrameAll"><span class="type">lglTemplateFrameAll</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="lglTemplateFrameRect.layouts"></a>layouts</code></em>;</span></p></td>
+<td>Common field.  See <a class="link" href="libglabels-3.0-template.html#lglTemplateFrameAll" title="struct lglTemplateFrameAll"><span class="type">lglTemplateFrameAll</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="lglTemplateFrameRect.markups"></a>markups</code></em>;</span></p></td>
+<td>Common field.  See <a class="link" href="libglabels-3.0-template.html#lglTemplateFrameAll" title="struct lglTemplateFrameAll"><span class="type">lglTemplateFrameAll</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateFrameRect.w"></a>w</code></em>;</span></p></td>
+<td>Width of label or card in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateFrameRect.h"></a>h</code></em>;</span></p></td>
+<td>Height of label or card in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateFrameRect.r"></a>r</code></em>;</span></p></td>
+<td>Radius of corners in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateFrameRect.x-waste"></a>x_waste</code></em>;</span></p></td>
+<td>Amount of horizontal over-print to allow in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateFrameRect.y-waste"></a>y_waste</code></em>;</span></p></td>
+<td>Amount of vertical over-print to allow in points.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglTemplateFrameEllipse"></a><h3>struct lglTemplateFrameEllipse</h3>
+<pre class="programlisting">struct lglTemplateFrameEllipse {
+        /* Begin Common Fields */
+        lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_ELLIPSE. */
+
+        gchar                *id;       /* Id, currently always "0" */
+        GList                *layouts;  /* List of lglTemplateLayouts */
+        GList                *markups;  /* List of lglTemplateMarkups */
+        /* End Common Fields */
+
+        gdouble               w;        /* Width */
+        gdouble               h;        /* Height */
+        gdouble               waste;    /* Amount of overprint allowed. */
+};
+</pre>
+<p>
+This structure defines the frame for an elliptical label or card.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="libglabels-3.0-template.html#lglTemplateFrameShape" title="enum lglTemplateFrameShape"><span class="type">lglTemplateFrameShape</span></a> <em class="structfield"><code><a name="lglTemplateFrameEllipse.shape"></a>shape</code></em>;</span></p></td>
+<td>Common field.  Always <a class="link" href="libglabels-3.0-template.html#LGL-TEMPLATE-FRAME-SHAPE-ELLIPSE:CAPS"><span class="type">LGL_TEMPLATE_FRAME_SHAPE_ELLIPSE</span></a> for <a class="link" href="libglabels-3.0-template.html#lglTemplateFrameEllipse" title="struct lglTemplateFrameEllipse"><span class="type">lglTemplateFrameEllipse</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="lglTemplateFrameEllipse.id"></a>id</code></em>;</span></p></td>
+<td>Common field.  See <a class="link" href="libglabels-3.0-template.html#lglTemplateFrameAll" title="struct lglTemplateFrameAll"><span class="type">lglTemplateFrameAll</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="lglTemplateFrameEllipse.layouts"></a>layouts</code></em>;</span></p></td>
+<td>Common field.  See <a class="link" href="libglabels-3.0-template.html#lglTemplateFrameAll" title="struct lglTemplateFrameAll"><span class="type">lglTemplateFrameAll</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="lglTemplateFrameEllipse.markups"></a>markups</code></em>;</span></p></td>
+<td>Common field.  See <a class="link" href="libglabels-3.0-template.html#lglTemplateFrameAll" title="struct lglTemplateFrameAll"><span class="type">lglTemplateFrameAll</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateFrameEllipse.w"></a>w</code></em>;</span></p></td>
+<td>Width of label or card in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateFrameEllipse.h"></a>h</code></em>;</span></p></td>
+<td>Height of label or card in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateFrameEllipse.waste"></a>waste</code></em>;</span></p></td>
+<td>Amount of over-print to allow in points.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglTemplateFrameRound"></a><h3>struct lglTemplateFrameRound</h3>
+<pre class="programlisting">struct lglTemplateFrameRound {
+        /* Begin Common Fields */
+        lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_ROUND. */
+
+        gchar                *id;       /* Id, currently always "0" */
+        GList                *layouts;  /* List of lglTemplateLayouts */
+        GList                *markups;  /* List of lglTemplateMarkups */
+        /* End Common Fields */
+
+        gdouble               r;      /* Radius */
+        gdouble               waste;  /* Amount of overprint allowed. */
+};
+</pre>
+<p>
+This structure defines the frame for a round label or card.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="libglabels-3.0-template.html#lglTemplateFrameShape" title="enum lglTemplateFrameShape"><span class="type">lglTemplateFrameShape</span></a> <em class="structfield"><code><a name="lglTemplateFrameRound.shape"></a>shape</code></em>;</span></p></td>
+<td>Common field.  Always <a class="link" href="libglabels-3.0-template.html#LGL-TEMPLATE-FRAME-SHAPE-ROUND:CAPS"><span class="type">LGL_TEMPLATE_FRAME_SHAPE_ROUND</span></a> for <a class="link" href="libglabels-3.0-template.html#lglTemplateFrameRound" title="struct lglTemplateFrameRound"><span class="type">lglTemplateFrameRound</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="lglTemplateFrameRound.id"></a>id</code></em>;</span></p></td>
+<td>Common field.  See <a class="link" href="libglabels-3.0-template.html#lglTemplateFrameAll" title="struct lglTemplateFrameAll"><span class="type">lglTemplateFrameAll</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="lglTemplateFrameRound.layouts"></a>layouts</code></em>;</span></p></td>
+<td>Common field.  See <a class="link" href="libglabels-3.0-template.html#lglTemplateFrameAll" title="struct lglTemplateFrameAll"><span class="type">lglTemplateFrameAll</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="lglTemplateFrameRound.markups"></a>markups</code></em>;</span></p></td>
+<td>Common field.  See <a class="link" href="libglabels-3.0-template.html#lglTemplateFrameAll" title="struct lglTemplateFrameAll"><span class="type">lglTemplateFrameAll</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateFrameRound.r"></a>r</code></em>;</span></p></td>
+<td>Radius of label or card in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateFrameRound.waste"></a>waste</code></em>;</span></p></td>
+<td>Amount of over-print to allow in points.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglTemplateFrameCD"></a><h3>struct lglTemplateFrameCD</h3>
+<pre class="programlisting">struct lglTemplateFrameCD {
+        /* Begin Common Fields */
+        lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_CD. */
+
+        gchar                *id;       /* Id, currently always "0" */
+        GList                *layouts;  /* List of lglTemplateLayouts */
+        GList                *markups;  /* List of lglTemplateMarkups */
+        /* End Common Fields */
+
+        gdouble               r1;     /* Outer radius */
+        gdouble               r2;     /* Inner radius (hole) */
+        gdouble               w;      /* Clip width, business card CDs */
+        gdouble               h;      /* Clip height, business card CDs */
+        gdouble               waste;  /* Amount of overprint allowed. */
+};
+</pre>
+<p>
+This structure defines the frame for a CD or DVD label.  This structure also supports
+credit-card CD labels.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="libglabels-3.0-template.html#lglTemplateFrameShape" title="enum lglTemplateFrameShape"><span class="type">lglTemplateFrameShape</span></a> <em class="structfield"><code><a name="lglTemplateFrameCD.shape"></a>shape</code></em>;</span></p></td>
+<td>Common field.  Always <a class="link" href="libglabels-3.0-template.html#LGL-TEMPLATE-FRAME-SHAPE-CD:CAPS"><span class="type">LGL_TEMPLATE_FRAME_SHAPE_CD</span></a> for <a class="link" href="libglabels-3.0-template.html#lglTemplateFrameCD" title="struct lglTemplateFrameCD"><span class="type">lglTemplateFrameCD</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="lglTemplateFrameCD.id"></a>id</code></em>;</span></p></td>
+<td>Common field.  See <a class="link" href="libglabels-3.0-template.html#lglTemplateFrameAll" title="struct lglTemplateFrameAll"><span class="type">lglTemplateFrameAll</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="lglTemplateFrameCD.layouts"></a>layouts</code></em>;</span></p></td>
+<td>Common field.  See <a class="link" href="libglabels-3.0-template.html#lglTemplateFrameAll" title="struct lglTemplateFrameAll"><span class="type">lglTemplateFrameAll</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="lglTemplateFrameCD.markups"></a>markups</code></em>;</span></p></td>
+<td>Common field.  See <a class="link" href="libglabels-3.0-template.html#lglTemplateFrameAll" title="struct lglTemplateFrameAll"><span class="type">lglTemplateFrameAll</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateFrameCD.r1"></a>r1</code></em>;</span></p></td>
+<td>Outer radius of label in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateFrameCD.r2"></a>r2</code></em>;</span></p></td>
+<td>Radius of center hole in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateFrameCD.w"></a>w</code></em>;</span></p></td>
+<td>Clip width in points.  Used for credit-card CD labels.  This field is ignored if zero.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateFrameCD.h"></a>h</code></em>;</span></p></td>
+<td>Clip height in points.  Used for credit-card CD labels.  This field is ignored if zero.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateFrameCD.waste"></a>waste</code></em>;</span></p></td>
+<td>Amount of over-print to allow in points.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglTemplateLayout"></a><h3>struct lglTemplateLayout</h3>
+<pre class="programlisting">struct lglTemplateLayout {
+        gint                  nx;  /* Number of labels across */
+        gint                  ny;  /* Number of labels up and down */
+
+        gdouble               x0;  /* Left of grid from left edge of paper */
+        gdouble               y0;  /* Top of grid from top edge of paper */
+
+        gdouble               dx;  /* Horizontal pitch of grid */
+        gdouble               dy;  /* Vertical pitch of grid */
+};
+</pre>
+<p>
+This structure defines a simple grid layout of labels or cards.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="lglTemplateLayout.nx"></a>nx</code></em>;</span></p></td>
+<td>Number of labels or cards across in the grid (horizontal).</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="lglTemplateLayout.ny"></a>ny</code></em>;</span></p></td>
+<td>Number of labels or cards down in the grid (vertical).</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateLayout.x0"></a>x0</code></em>;</span></p></td>
+<td>Distance (in points) from the left edge of page to the left edge of the left column of
+cards or labels in the layout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateLayout.y0"></a>y0</code></em>;</span></p></td>
+<td>Distance (in points) from the top edge of page to the top edge of the top row of
+cards or labels in the layout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateLayout.dx"></a>dx</code></em>;</span></p></td>
+<td>Horizontal pitch of grid in points.  This is the distance from left edge to left edge
+(not the gap between labels or cards).</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateLayout.dy"></a>dy</code></em>;</span></p></td>
+<td>Vertical pitch of grid in points.  This is the distance from top edge to top edge
+(not the gap between labels or cards).</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglTemplateMarkupType"></a><h3>enum lglTemplateMarkupType</h3>
+<pre class="programlisting">typedef enum {
+        LGL_TEMPLATE_MARKUP_MARGIN,
+        LGL_TEMPLATE_MARKUP_LINE,
+        LGL_TEMPLATE_MARKUP_CIRCLE,
+        LGL_TEMPLATE_MARKUP_RECT,
+        LGL_TEMPLATE_MARKUP_ELLIPSE
+} lglTemplateMarkupType;
+</pre>
+<p>
+This enumeration defines markup types that are supported by libglabels
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="LGL-TEMPLATE-MARKUP-MARGIN:CAPS"></a><span class="term"><code class="literal">LGL_TEMPLATE_MARKUP_MARGIN</code></span></p></td>
+<td>A margin line around perimeter of label or card.
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-TEMPLATE-MARKUP-LINE:CAPS"></a><span class="term"><code class="literal">LGL_TEMPLATE_MARKUP_LINE</code></span></p></td>
+<td>A simple line segment.
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-TEMPLATE-MARKUP-CIRCLE:CAPS"></a><span class="term"><code class="literal">LGL_TEMPLATE_MARKUP_CIRCLE</code></span></p></td>
+<td>A circle.
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-TEMPLATE-MARKUP-RECT:CAPS"></a><span class="term"><code class="literal">LGL_TEMPLATE_MARKUP_RECT</code></span></p></td>
+<td>A rectangle.  Possibly with rounded corners.
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-TEMPLATE-MARKUP-ELLIPSE:CAPS"></a><span class="term"><code class="literal">LGL_TEMPLATE_MARKUP_ELLIPSE</code></span></p></td>
+<td>An ellipse.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglTemplateMarkup"></a><h3>union lglTemplateMarkup</h3>
+<pre class="programlisting">union _lglTemplateMarkup {
+
+        lglTemplateMarkupType    type;
+
+        lglTemplateMarkupMargin  margin;
+        lglTemplateMarkupLine    line;
+        lglTemplateMarkupCircle  circle;
+        lglTemplateMarkupRect    rect;
+        lglTemplateMarkupEllipse ellipse;
+};
+</pre>
+<p>
+A union of all possible markup structures.  The type of structure is indicated by the type
+member, which overlays the first field of all other member structures.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglTemplateMarkupMargin"></a><h3>struct lglTemplateMarkupMargin</h3>
+<pre class="programlisting">struct lglTemplateMarkupMargin {
+        lglTemplateMarkupType  type;  /* Always LGL_TEMPLATE_MARKUP_MARGIN */
+
+        gdouble                size;  /* Margin size */
+};
+</pre>
+<p>
+This structure defines a simple margin markup around the perimeter of a label or card.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="libglabels-3.0-template.html#lglTemplateMarkupType" title="enum lglTemplateMarkupType"><span class="type">lglTemplateMarkupType</span></a> <em class="structfield"><code><a name="lglTemplateMarkupMargin.type"></a>type</code></em>;</span></p></td>
+<td>Common field.  Always <a class="link" href="libglabels-3.0-template.html#LGL-TEMPLATE-MARKUP-MARGIN:CAPS"><span class="type">LGL_TEMPLATE_MARKUP_MARGIN</span></a> for <a class="link" href="libglabels-3.0-template.html#lglTemplateMarkupMargin" title="struct lglTemplateMarkupMargin"><span class="type">lglTemplateMarkupMargin</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateMarkupMargin.size"></a>size</code></em>;</span></p></td>
+<td>Distance of margin from edge of label or card.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglTemplateMarkupLine"></a><h3>struct lglTemplateMarkupLine</h3>
+<pre class="programlisting">struct lglTemplateMarkupLine {
+        lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_LINE */
+
+        gdouble                x1, y1; /* 1st endpoint */
+        gdouble                x2, y2; /* 2nd endpoint */
+};
+</pre>
+<p>
+This structure defines a simple line segment markup.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="libglabels-3.0-template.html#lglTemplateMarkupType" title="enum lglTemplateMarkupType"><span class="type">lglTemplateMarkupType</span></a> <em class="structfield"><code><a name="lglTemplateMarkupLine.type"></a>type</code></em>;</span></p></td>
+<td>Common field.  Always <a class="link" href="libglabels-3.0-template.html#LGL-TEMPLATE-MARKUP-LINE:CAPS"><span class="type">LGL_TEMPLATE_MARKUP_LINE</span></a> for <a class="link" href="libglabels-3.0-template.html#lglTemplateMarkupLine" title="struct lglTemplateMarkupLine"><span class="type">lglTemplateMarkupLine</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateMarkupLine.x1"></a>x1</code></em>;</span></p></td>
+<td>Distance (in points) of first endpoint from left edge of label or card.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateMarkupLine.y1"></a>y1</code></em>;</span></p></td>
+<td>Distance (in points) of first endpoint from top edge of label or card.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateMarkupLine.x2"></a>x2</code></em>;</span></p></td>
+<td>Distance (in points) of second endpoint from left edge of label or card.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateMarkupLine.y2"></a>y2</code></em>;</span></p></td>
+<td>Distance (in points) of second endpoint from top edge of label or card.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglTemplateMarkupCircle"></a><h3>struct lglTemplateMarkupCircle</h3>
+<pre class="programlisting">struct lglTemplateMarkupCircle {
+        lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_CIRCLE */
+
+        gdouble                x0, y0; /* Center of circle */
+        gdouble                r;      /* Radius of circle */
+};
+</pre>
+<p>
+This structure defines a simple circle markup.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="libglabels-3.0-template.html#lglTemplateMarkupType" title="enum lglTemplateMarkupType"><span class="type">lglTemplateMarkupType</span></a> <em class="structfield"><code><a name="lglTemplateMarkupCircle.type"></a>type</code></em>;</span></p></td>
+<td>Common field.  Always <a class="link" href="libglabels-3.0-template.html#LGL-TEMPLATE-MARKUP-CIRCLE:CAPS"><span class="type">LGL_TEMPLATE_MARKUP_CIRCLE</span></a> for <a class="link" href="libglabels-3.0-template.html#lglTemplateMarkupCircle" title="struct lglTemplateMarkupCircle"><span class="type">lglTemplateMarkupCircle</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateMarkupCircle.x0"></a>x0</code></em>;</span></p></td>
+<td>Distance (in points) of vertex from left edge of label or card.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateMarkupCircle.y0"></a>y0</code></em>;</span></p></td>
+<td>Distance (in points) of vertex from top edge of label or card.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateMarkupCircle.r"></a>r</code></em>;</span></p></td>
+<td>Radius of circle in points.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglTemplateMarkupRect"></a><h3>struct lglTemplateMarkupRect</h3>
+<pre class="programlisting">struct lglTemplateMarkupRect {
+        lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_RECT */
+
+        gdouble                x1, y1; /* Upper left corner */
+        gdouble                w, h;   /* Width and height. */
+        gdouble                r;      /* Radius of corners. */
+};
+</pre>
+<p>
+This structure defines a simple rectangle markup.  The rectangle can have rounded corners.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="libglabels-3.0-template.html#lglTemplateMarkupType" title="enum lglTemplateMarkupType"><span class="type">lglTemplateMarkupType</span></a> <em class="structfield"><code><a name="lglTemplateMarkupRect.type"></a>type</code></em>;</span></p></td>
+<td>Common field.  Always <a class="link" href="libglabels-3.0-template.html#LGL-TEMPLATE-MARKUP-RECT:CAPS"><span class="type">LGL_TEMPLATE_MARKUP_RECT</span></a> for <a class="link" href="libglabels-3.0-template.html#lglTemplateMarkupRect" title="struct lglTemplateMarkupRect"><span class="type">lglTemplateMarkupRect</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateMarkupRect.x1"></a>x1</code></em>;</span></p></td>
+<td>Distance (in points) of left edge of markup from left edge of label or card.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateMarkupRect.y1"></a>y1</code></em>;</span></p></td>
+<td>Distance (in points) of top edge of markup from top edge of label or card.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateMarkupRect.w"></a>w</code></em>;</span></p></td>
+<td>Width of rectangle in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateMarkupRect.h"></a>h</code></em>;</span></p></td>
+<td>Height of rectangle in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateMarkupRect.r"></a>r</code></em>;</span></p></td>
+<td>Radius of corners in points.  Should be zero for sharp corners.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglTemplateMarkupEllipse"></a><h3>struct lglTemplateMarkupEllipse</h3>
+<pre class="programlisting">struct lglTemplateMarkupEllipse {
+        lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_ELLIPSE */
+
+        gdouble                x1, y1; /* Upper left corner */
+        gdouble                w, h;   /* Width and height. */
+};
+</pre>
+<p>
+This structure defines a simple elliptical markup.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="libglabels-3.0-template.html#lglTemplateMarkupType" title="enum lglTemplateMarkupType"><span class="type">lglTemplateMarkupType</span></a> <em class="structfield"><code><a name="lglTemplateMarkupEllipse.type"></a>type</code></em>;</span></p></td>
+<td>Common field.  Always <a class="link" href="libglabels-3.0-template.html#LGL-TEMPLATE-MARKUP-ELLIPSE:CAPS"><span class="type">LGL_TEMPLATE_MARKUP_ELLIPSE</span></a> for <a class="link" href="libglabels-3.0-template.html#lglTemplateMarkupEllipse" title="struct lglTemplateMarkupEllipse"><span class="type">lglTemplateMarkupEllipse</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateMarkupEllipse.x1"></a>x1</code></em>;</span></p></td>
+<td>Distance (in points) of left edge of markup from left edge of label or card.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateMarkupEllipse.y1"></a>y1</code></em>;</span></p></td>
+<td>Distance (in points) of top edge of markup from top edge of label or card.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateMarkupEllipse.w"></a>w</code></em>;</span></p></td>
+<td>Width of rectangle in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateMarkupEllipse.h"></a>h</code></em>;</span></p></td>
+<td>Height of rectangle in points.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglTemplateOrigin"></a><h3>struct lglTemplateOrigin</h3>
+<pre class="programlisting">struct lglTemplateOrigin {
+        gdouble               x, y; /* Label origin relative to upper 
+                                     * upper left hand corner of paper */
+};
+</pre>
+<p>
+This structure represents the cartesian coordinates of the origin of a label or card on the page.
+The orign is the upper left corner of the extent of the label or card.  These coordinates are
+relative to the upper left corner of the page.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateOrigin.x"></a>x</code></em>;</span></p></td>
+<td>Distance in points from top edge of page.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglTemplateOrigin.y"></a>y</code></em>;</span></p></td>
+<td>Distance in points from left edge of page.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-new"></a><h3>lgl_template_new ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="returnvalue">lglTemplate</span></a> *       lgl_template_new                    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *brand</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *part</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *paper_id</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> page_width</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> page_height</code></em>);</pre>
+<p>
+Create a new template structure, with the given top-level attributes.  The
+created template will have no initial categories, or frames associated with
+it.  See <a class="link" href="libglabels-3.0-template.html#lgl-template-add-category" title="lgl_template_add_category ()"><code class="function">lgl_template_add_category()</code></a> and <a class="link" href="libglabels-3.0-template.html#lgl-template-add-frame" title="lgl_template_add_frame ()"><code class="function">lgl_template_add_frame()</code></a> to add
+these.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>brand</code></em> :</span></p></td>
+<td>Template brand</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>part</code></em> :</span></p></td>
+<td>Template part name/number</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>description</code></em> :</span></p></td>
+<td>Template descriptions</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>paper_id</code></em> :</span></p></td>
+<td>Page size id</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>page_width</code></em> :</span></p></td>
+<td>Page width in points, set to zero unless paper_id="Other"</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>page_height</code></em> :</span></p></td>
+<td>Page height in points, set to zero unless paper_id="Other"</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>pointer to a newly allocated <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-new-from-equiv"></a><h3>lgl_template_new_from_equiv ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="returnvalue">lglTemplate</span></a> *       lgl_template_new_from_equiv         (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *brand</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *part</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *equiv_part</code></em>);</pre>
+<p>
+Create a new template structure based on an existing template.  The
+created template will be a duplicate of the original template, except with
+the new part name/number.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>brand</code></em> :</span></p></td>
+<td>Template brand</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>part</code></em> :</span></p></td>
+<td>Template part name/number</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>equiv_part</code></em> :</span></p></td>
+<td>Name of equivalent part to base template on</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>pointer to a newly allocated <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-dup"></a><h3>lgl_template_dup ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="returnvalue">lglTemplate</span></a> *       lgl_template_dup                    (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *orig_template</code></em>);</pre>
+<p>
+This function duplicates a template structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>orig_template</code></em> :</span></p></td>
+<td>Template to duplicate.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a newly allocated <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-free"></a><h3>lgl_template_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_template_free                   (<em class="parameter"><code><a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template</code></em>);</pre>
+<p>
+This function frees all memory associated with given template structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>template</code></em> :</span></p></td>
+<td>Template to free.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-add-category"></a><h3>lgl_template_add_category ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_template_add_category           (<em class="parameter"><code><a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *category_id</code></em>);</pre>
+<p>
+This function adds the given category ID to a templates category list.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>template</code></em> :</span></p></td>
+<td>Pointer to template structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>category_id</code></em> :</span></p></td>
+<td>Category ID string</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-add-frame"></a><h3>lgl_template_add_frame ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_template_add_frame              (<em class="parameter"><code><a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> *frame</code></em>);</pre>
+<p>
+This function adds the given frame structure to the template.  Once added,
+the frame structure belongs to the given template; do not attempt to free
+it.
+</p>
+<p>
+Note: Currently glabels only supports a single frame per template.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>template</code></em> :</span></p></td>
+<td>Pointer to template structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>Pointer to frame structure</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-get-name"></a><h3>lgl_template_get_name ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             lgl_template_get_name               (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template</code></em>);</pre>
+<p>
+This function returns the name of the given template.  The name is the concetenation
+of the brand and part name/number.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>template</code></em> :</span></p></td>
+<td>Pointer to template structure to test</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A pointer to a newly allocated name string.  Should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-do-templates-match"></a><h3>lgl_template_do_templates_match ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            lgl_template_do_templates_match     (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template1</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template2</code></em>);</pre>
+<p>
+This function tests if the given templates match.  This is a simple test that only tests
+the brand and part name/number. It does not test if they are actually identical.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>template1</code></em> :</span></p></td>
+<td>Pointer to 1st template structure to test</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>template2</code></em> :</span></p></td>
+<td>Pointer to 2nd template structure to test</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if the two templates match.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-does-brand-match"></a><h3>lgl_template_does_brand_match ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            lgl_template_does_brand_match       (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *brand</code></em>);</pre>
+<p>
+This function tests if the brand of the template matches the given brand.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>template</code></em> :</span></p></td>
+<td>Pointer to template structure to test</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>brand</code></em> :</span></p></td>
+<td>Brand string</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if the template matches the given brand.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-does-page-size-match"></a><h3>lgl_template_does_page_size_match ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            lgl_template_does_page_size_match   (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *paper_id</code></em>);</pre>
+<p>
+This function tests if the page size of the template matches the given ID.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>template</code></em> :</span></p></td>
+<td>Pointer to template structure to test</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>paper_id</code></em> :</span></p></td>
+<td>Page size ID string</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if the template matches the given page size ID.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-does-category-match"></a><h3>lgl_template_does_category_match ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            lgl_template_does_category_match    (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *category_id</code></em>);</pre>
+<p>
+This function tests if the given template belongs to the given category ID.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>template</code></em> :</span></p></td>
+<td>Pointer to template structure to test</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>category_id</code></em> :</span></p></td>
+<td>Category ID string</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if the template matches the given category ID.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-are-templates-identical"></a><h3>lgl_template_are_templates_identical ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            lgl_template_are_templates_identical
+                                                        (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template1</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template2</code></em>);</pre>
+<p>
+This function tests if the given templates have identical size and layout properties.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>template1</code></em> :</span></p></td>
+<td>Pointer to 1st template structure to test</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>template2</code></em> :</span></p></td>
+<td>Pointer to 2nd template structure to test</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if the two templates are identical.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-frame-rect-new"></a><h3>lgl_template_frame_rect_new ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="returnvalue">lglTemplateFrame</span></a> *  lgl_template_frame_rect_new         (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> w</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> h</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> r</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x_waste</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y_waste</code></em>);</pre>
+<p>
+This function creates a new template frame for a rectangular label or card.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>ID of frame.  (This should currently always be "0").</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>w</code></em> :</span></p></td>
+<td>width of frame in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>h</code></em> :</span></p></td>
+<td>height of frame in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>r</code></em> :</span></p></td>
+<td>radius of rounded corners in points.  (Should be 0 for square corners.)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x_waste</code></em> :</span></p></td>
+<td>Amount of overprint to allow in the horizontal direction.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y_waste</code></em> :</span></p></td>
+<td>Amount of overprint to allow in the vertical direction.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Pointer to newly allocated <a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-frame-ellipse-new"></a><h3>lgl_template_frame_ellipse_new ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="returnvalue">lglTemplateFrame</span></a> *  lgl_template_frame_ellipse_new      (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> w</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> h</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> waste</code></em>);</pre>
+<p>
+This function creates a new template frame for an elliptical label or card.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>ID of frame.  (This should currently always be "0").</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>w</code></em> :</span></p></td>
+<td>width of frame in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>h</code></em> :</span></p></td>
+<td>height of frame in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>waste</code></em> :</span></p></td>
+<td>Amount of overprint to allow in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Pointer to newly allocated <a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-frame-round-new"></a><h3>lgl_template_frame_round_new ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="returnvalue">lglTemplateFrame</span></a> *  lgl_template_frame_round_new        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> r</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> waste</code></em>);</pre>
+<p>
+This function creates a new template frame for a round label.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>ID of frame.  (This should currently always be "0").</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>r</code></em> :</span></p></td>
+<td>radius of label in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>waste</code></em> :</span></p></td>
+<td>Amount of overprint to allow.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Pointer to newly allocated <a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-frame-cd-new"></a><h3>lgl_template_frame_cd_new ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="returnvalue">lglTemplateFrame</span></a> *  lgl_template_frame_cd_new           (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> r1</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> r2</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> w</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> h</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> waste</code></em>);</pre>
+<p>
+This function creates a new template frame for a CD/DVD label.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>ID of frame.  (This should currently always be "0").</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>r1</code></em> :</span></p></td>
+<td>outer radius of label in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>r2</code></em> :</span></p></td>
+<td>radius of center hole in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>w</code></em> :</span></p></td>
+<td>clip width of frame in points for business card CDs.  Should be 0 for no clipping.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>h</code></em> :</span></p></td>
+<td>clip height of frame in points for business card CDs.  Should be 0 for no clipping.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>waste</code></em> :</span></p></td>
+<td>Amount of overprint to allow.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Pointer to newly allocated <a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-frame-dup"></a><h3>lgl_template_frame_dup ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="returnvalue">lglTemplateFrame</span></a> *  lgl_template_frame_dup              (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> *orig_frame</code></em>);</pre>
+<p>
+This function duplicates a template frame structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>orig_frame</code></em> :</span></p></td>
+<td>Frame to duplicate.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a newly allocated <a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-frame-free"></a><h3>lgl_template_frame_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_template_frame_free             (<em class="parameter"><code><a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> *frame</code></em>);</pre>
+<p>
+This function frees all memory associated with given template frame structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>Frame to free.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-frame-add-layout"></a><h3>lgl_template_frame_add_layout ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_template_frame_add_layout       (<em class="parameter"><code><a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> *frame</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="libglabels-3.0-template.html#lglTemplateLayout" title="struct lglTemplateLayout"><span class="type">lglTemplateLayout</span></a> *layout</code></em>);</pre>
+<p>
+This function adds a layout structure to the given template frame.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>Pointer to template frame to add layout to.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
+<td>Pointer to layout structure to add to frame.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-frame-add-markup"></a><h3>lgl_template_frame_add_markup ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_template_frame_add_markup       (<em class="parameter"><code><a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> *frame</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="type">lglTemplateMarkup</span></a> *markup</code></em>);</pre>
+<p>
+This function adds a markup structure to the given template frame.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>Pointer to template frame to add markup to.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>markup</code></em> :</span></p></td>
+<td>Pointer to markup structure to add to frame.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-frame-get-size"></a><h3>lgl_template_frame_get_size ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_template_frame_get_size         (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> *frame</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *w</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *h</code></em>);</pre>
+<p>
+Get size (width and height) of given <a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> in points.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>
+<a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> structure to query</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>w</code></em> :</span></p></td>
+<td>pointer to location to receive width of frame</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>h</code></em> :</span></p></td>
+<td>pointer to location to receive height of frame</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-frame-get-n-labels"></a><h3>lgl_template_frame_get_n_labels ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                lgl_template_frame_get_n_labels     (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> *frame</code></em>);</pre>
+<p>
+Get total number of labels per sheet corresponding to the given frame.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>
+<a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> structure to query</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>number of labels per sheet.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-frame-get-origins"></a><h3>lgl_template_frame_get_origins ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-template.html#lglTemplateOrigin" title="struct lglTemplateOrigin"><span class="returnvalue">lglTemplateOrigin</span></a> * lgl_template_frame_get_origins      (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> *frame</code></em>);</pre>
+<p>
+Get an array of label origins for the given frame.  These origins represent the
+upper left hand corner of each label on a page corresponding to the given frame.
+The origins will be ordered geometrically left to right and then top to bottom.
+The array should be freed using <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>
+<a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> structure to query</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated array of <a class="link" href="libglabels-3.0-template.html#lglTemplateOrigin" title="struct lglTemplateOrigin"><span class="type">lglTemplateOrigin</span></a> structures.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-frame-get-layout-description"></a><h3>lgl_template_frame_get_layout_description ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             lgl_template_frame_get_layout_description
+                                                        (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> *frame</code></em>);</pre>
+<p>
+Get a description of the label layout including number of labels per sheet.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>
+<a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> structure to query</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a newly allocation description string.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-frame-get-size-description"></a><h3>lgl_template_frame_get_size_description ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             lgl_template_frame_get_size_description
+                                                        (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> *frame</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="type">lglUnits</span></a> units</code></em>);</pre>
+<p>
+Get a description of the label size.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>
+<a class="link" href="libglabels-3.0-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> structure to query</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>units</code></em> :</span></p></td>
+<td><a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="type">lglUnits</span></a></td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a newly allocation description string.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-layout-new"></a><h3>lgl_template_layout_new ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-template.html#lglTemplateLayout" title="struct lglTemplateLayout"><span class="returnvalue">lglTemplateLayout</span></a> * lgl_template_layout_new             (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> nx</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> ny</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x0</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y0</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> dx</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> dy</code></em>);</pre>
+<p>
+This function creates a new layout structure with the given parameters.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>nx</code></em> :</span></p></td>
+<td>Number of labels across.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ny</code></em> :</span></p></td>
+<td>Number of labels down.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x0</code></em> :</span></p></td>
+<td>X coordinate of the top-left corner of the top-left label in the layout in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y0</code></em> :</span></p></td>
+<td>Y coordinate of the top-left corner of the top-left label in the layout in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dx</code></em> :</span></p></td>
+<td>Horizontal pitch in points.  This is the distance from left-edge to left-edge.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dy</code></em> :</span></p></td>
+<td>Vertical pitch in points.  This is the distance from top-edge to top-edge.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a newly allocated <a class="link" href="libglabels-3.0-template.html#lglTemplateLayout" title="struct lglTemplateLayout"><span class="type">lglTemplateLayout</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-layout-dup"></a><h3>lgl_template_layout_dup ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-template.html#lglTemplateLayout" title="struct lglTemplateLayout"><span class="returnvalue">lglTemplateLayout</span></a> * lgl_template_layout_dup             (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplateLayout" title="struct lglTemplateLayout"><span class="type">lglTemplateLayout</span></a> *orig_layout</code></em>);</pre>
+<p>
+This function duplicates a template layout structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>orig_layout</code></em> :</span></p></td>
+<td>Layout to duplicate.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a newly allocated <a class="link" href="libglabels-3.0-template.html#lglTemplateLayout" title="struct lglTemplateLayout"><span class="type">lglTemplateLayout</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-layout-free"></a><h3>lgl_template_layout_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_template_layout_free            (<em class="parameter"><code><a class="link" href="libglabels-3.0-template.html#lglTemplateLayout" title="struct lglTemplateLayout"><span class="type">lglTemplateLayout</span></a> *layout</code></em>);</pre>
+<p>
+This function frees all memory associated with given template layout structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
+<td>Layout to free.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-markup-margin-new"></a><h3>lgl_template_markup_margin_new ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="returnvalue">lglTemplateMarkup</span></a> * lgl_template_markup_margin_new      (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> size</code></em>);</pre>
+<p>
+This function creates a new margin markup structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
+<td>margin size in points.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a newly allocated <a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="type">lglTemplateMarkup</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-markup-line-new"></a><h3>lgl_template_markup_line_new ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="returnvalue">lglTemplateMarkup</span></a> * lgl_template_markup_line_new        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x1</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y1</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x2</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y2</code></em>);</pre>
+<p>
+This function creates a new line markup structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x1</code></em> :</span></p></td>
+<td>x coordinate of first endpoint.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y1</code></em> :</span></p></td>
+<td>y coordinate of first endpoint.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x2</code></em> :</span></p></td>
+<td>x coordinate of second endpoint.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y2</code></em> :</span></p></td>
+<td>y coordinate of second endpoint.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a newly allocated <a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="type">lglTemplateMarkup</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-markup-circle-new"></a><h3>lgl_template_markup_circle_new ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="returnvalue">lglTemplateMarkup</span></a> * lgl_template_markup_circle_new      (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x0</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y0</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> r</code></em>);</pre>
+<p>
+This function creates a new circle markup structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x0</code></em> :</span></p></td>
+<td>x coordinate of center of circle.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y0</code></em> :</span></p></td>
+<td>y coordinate of center of circle.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>r</code></em> :</span></p></td>
+<td>radius of circle.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a newly allocated <a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="type">lglTemplateMarkup</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-markup-rect-new"></a><h3>lgl_template_markup_rect_new ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="returnvalue">lglTemplateMarkup</span></a> * lgl_template_markup_rect_new        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x1</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y1</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> w</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> h</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> r</code></em>);</pre>
+<p>
+This function creates a new rectangle markup structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x1</code></em> :</span></p></td>
+<td>x coordinate of top-left corner of rectangle.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y1</code></em> :</span></p></td>
+<td>y coordinate of top-left corner of rectangle.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>w</code></em> :</span></p></td>
+<td>width of rectangle.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>h</code></em> :</span></p></td>
+<td>height of rectangle.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>r</code></em> :</span></p></td>
+<td>radius of rounded corner.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a newly allocated <a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="type">lglTemplateMarkup</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-markup-ellipse-new"></a><h3>lgl_template_markup_ellipse_new ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="returnvalue">lglTemplateMarkup</span></a> * lgl_template_markup_ellipse_new     (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x1</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y1</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> w</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> h</code></em>);</pre>
+<p>
+This function creates a new ellipse markup structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x1</code></em> :</span></p></td>
+<td>x coordinate of top-left corner of ellipse.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y1</code></em> :</span></p></td>
+<td>y coordinate of top-left corner of ellipse.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>w</code></em> :</span></p></td>
+<td>width of ellipse.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>h</code></em> :</span></p></td>
+<td>height of ellipse.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a newly allocated <a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="type">lglTemplateMarkup</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-markup-dup"></a><h3>lgl_template_markup_dup ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="returnvalue">lglTemplateMarkup</span></a> * lgl_template_markup_dup             (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="type">lglTemplateMarkup</span></a> *orig_markup</code></em>);</pre>
+<p>
+This function duplicates a template markup structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>orig_markup</code></em> :</span></p></td>
+<td>Markup to duplicate.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a newly allocated <a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="type">lglTemplateMarkup</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-markup-free"></a><h3>lgl_template_markup_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_template_markup_free            (<em class="parameter"><code><a class="link" href="libglabels-3.0-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="type">lglTemplateMarkup</span></a> *markup</code></em>);</pre>
+<p>
+This function frees all memory associated with given template markup structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>markup</code></em> :</span></p></td>
+<td>Markup to free.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-template-print"></a><h3>lgl_template_print ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_template_print                  (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template</code></em>);</pre>
+<p>
+Print template details (for debugging purposes).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>template</code></em> :</span></p></td>
+<td>template</td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.17</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libglabels/html/libglabels-3.0-units.html b/docs/libglabels/html/libglabels-3.0-units.html
new file mode 100644 (file)
index 0000000..79a2835
--- /dev/null
@@ -0,0 +1,265 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Units</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="LibGlabels 3.0 Reference Manual">
+<link rel="up" href="ch03.html" title="Miscellaneous">
+<link rel="prev" href="ch03.html" title="Miscellaneous">
+<link rel="next" href="libglabels-3.0-str.html" title="String Utility Functions">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="ch03.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch03.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">LibGlabels 3.0 Reference Manual</th>
+<td><a accesskey="n" href="libglabels-3.0-str.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libglabels-3.0-units.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#libglabels-3.0-units.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libglabels-3.0-units"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libglabels-3.0-units.top_of_page"></a>Units</span></h2>
+<p>Units — Type to represent units of distance supported by libglabels</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libglabels-3.0-units.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libglabels/lgl-units.h&gt;
+
+enum                <a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits">lglUnits</a>;
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="libglabels-3.0-units.html#lgl-units-get-id" title="lgl_units_get_id ()">lgl_units_get_id</a>                    (<em class="parameter"><code><a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="type">lglUnits</span></a> units</code></em>);
+<a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="returnvalue">lglUnits</span></a>            <a class="link" href="libglabels-3.0-units.html#lgl-units-from-id" title="lgl_units_from_id ()">lgl_units_from_id</a>                   (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="libglabels-3.0-units.html#lgl-units-get-name" title="lgl_units_get_name ()">lgl_units_get_name</a>                  (<em class="parameter"><code><a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="type">lglUnits</span></a> units</code></em>);
+<a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="returnvalue">lglUnits</span></a>            <a class="link" href="libglabels-3.0-units.html#lgl-units-from-name" title="lgl_units_from_name ()">lgl_units_from_name</a>                 (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>             <a class="link" href="libglabels-3.0-units.html#lgl-units-get-points-per-unit" title="lgl_units_get_points_per_unit ()">lgl_units_get_points_per_unit</a>       (<em class="parameter"><code><a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="type">lglUnits</span></a> units</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>             <a class="link" href="libglabels-3.0-units.html#lgl-units-get-units-per-point" title="lgl_units_get_units_per_point ()">lgl_units_get_units_per_point</a>       (<em class="parameter"><code><a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="type">lglUnits</span></a> units</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libglabels-3.0-units.description"></a><h2>Description</h2>
+<p>
+This section defines a type to represent the various units of distance
+supported by libglabels.  It also defines a set of related functions.
+</p>
+</div>
+<div class="refsect1">
+<a name="libglabels-3.0-units.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="lglUnits"></a><h3>enum lglUnits</h3>
+<pre class="programlisting">typedef enum {
+        LGL_UNITS_POINT, /* encoded as "pt" */
+        LGL_UNITS_INCH,  /* encoded as "in" */
+        LGL_UNITS_MM,    /* encoded as "mm" */
+        LGL_UNITS_CM,    /* encoded as "cm" */
+        LGL_UNITS_PICA,  /* encoded as "pc" */
+
+        LGL_UNITS_FIRST = LGL_UNITS_POINT,
+        LGL_UNITS_LAST  = LGL_UNITS_PICA,
+
+        LGL_UNITS_INVALID = -1
+} lglUnits;
+</pre>
+<p>
+This enumeration defines supported units of distance.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="LGL-UNITS-POINT:CAPS"></a><span class="term"><code class="literal">LGL_UNITS_POINT</code></span></p></td>
+<td>Points.
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-UNITS-INCH:CAPS"></a><span class="term"><code class="literal">LGL_UNITS_INCH</code></span></p></td>
+<td>Inches.
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-UNITS-MM:CAPS"></a><span class="term"><code class="literal">LGL_UNITS_MM</code></span></p></td>
+<td>Millimeters
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-UNITS-CM:CAPS"></a><span class="term"><code class="literal">LGL_UNITS_CM</code></span></p></td>
+<td>Centimeters
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-UNITS-PICA:CAPS"></a><span class="term"><code class="literal">LGL_UNITS_PICA</code></span></p></td>
+<td>Picas
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-UNITS-FIRST:CAPS"></a><span class="term"><code class="literal">LGL_UNITS_FIRST</code></span></p></td>
+<td>First supported unit.  (Used for bounds checking and iteration through supported units.)
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-UNITS-LAST:CAPS"></a><span class="term"><code class="literal">LGL_UNITS_LAST</code></span></p></td>
+<td>Last supported unit.  (Used for bounds checking and iteration through supported units.)
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-UNITS-INVALID:CAPS"></a><span class="term"><code class="literal">LGL_UNITS_INVALID</code></span></p></td>
+<td>Invalid unit.  (Returned by libglabels units functions when a supported unit cannot be determined.)
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-units-get-id"></a><h3>lgl_units_get_id ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       lgl_units_get_id                    (<em class="parameter"><code><a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="type">lglUnits</span></a> units</code></em>);</pre>
+<p>
+Return a unique ID string for the given units.  This ID is how units
+are encoded in libglabels XML files and will remain constant across
+all locales.  IDs are identical to the absolute length units supported
+in the CSS2 Specification (Section 4.3.2).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>units</code></em> :</span></p></td>
+<td>Units (<a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="type">lglUnits</span></a>)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>ID string.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-units-from-id"></a><h3>lgl_units_from_id ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="returnvalue">lglUnits</span></a>            lgl_units_from_id                   (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>);</pre>
+<p>
+Return the unique <a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="type">lglUnits</span></a> for the given ID string.
+This ID is how units are encoded in libglabels XML files and will remain
+constant across all locales.  IDs are identical to the absolute length
+units supported in the CSS2 Specification (Section 4.3.2).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>ID string</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>units (<a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="type">lglUnits</span></a>).</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-units-get-name"></a><h3>lgl_units_get_name ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       lgl_units_get_name                  (<em class="parameter"><code><a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="type">lglUnits</span></a> units</code></em>);</pre>
+<p>
+Return a unique name string for the given units.  This name is human
+readable and will be translated to the current locale.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>units</code></em> :</span></p></td>
+<td>Units (<a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="type">lglUnits</span></a>)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>name string.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-units-from-name"></a><h3>lgl_units_from_name ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="returnvalue">lglUnits</span></a>            lgl_units_from_name                 (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
+<p>
+Return the unique <a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="type">lglUnits</span></a> for the given name string.  This name is
+human readable and is expected to be translated to the current locale.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>NAME string</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>units (<a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="type">lglUnits</span></a>).</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-units-get-points-per-unit"></a><h3>lgl_units_get_points_per_unit ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>             lgl_units_get_points_per_unit       (<em class="parameter"><code><a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="type">lglUnits</span></a> units</code></em>);</pre>
+<p>
+Return a scale factor for the given units in points/unit.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>units</code></em> :</span></p></td>
+<td>Units (<a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="type">lglUnits</span></a>)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>scale factor.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-units-get-units-per-point"></a><h3>lgl_units_get_units_per_point ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>             lgl_units_get_units_per_point       (<em class="parameter"><code><a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="type">lglUnits</span></a> units</code></em>);</pre>
+<p>
+Return a scale factor for the given units in units/point.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>units</code></em> :</span></p></td>
+<td>Units (<a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="type">lglUnits</span></a>)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>scale factor.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.17</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libglabels/html/libglabels-3.0-vendor.html b/docs/libglabels/html/libglabels-3.0-vendor.html
new file mode 100644 (file)
index 0000000..a2cd814
--- /dev/null
@@ -0,0 +1,145 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>The lglVendor Structure</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="LibGlabels 3.0 Reference Manual">
+<link rel="up" href="ch01.html" title="Basic LibGlabels Usage">
+<link rel="prev" href="libglabels-3.0-category.html" title="The lglCategory Structure">
+<link rel="next" href="ch02.html" title="Working Directly With LibGlabels XML">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libglabels-3.0-category.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">LibGlabels 3.0 Reference Manual</th>
+<td><a accesskey="n" href="ch02.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libglabels-3.0-vendor.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#libglabels-3.0-vendor.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libglabels-3.0-vendor"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libglabels-3.0-vendor.top_of_page"></a>The lglVendor Structure</span></h2>
+<p>The lglVendor Structure — Vendor definitions</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libglabels-3.0-vendor.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libglabels/lgl-vendor.h&gt;
+
+struct              <a class="link" href="libglabels-3.0-vendor.html#lglVendor" title="struct lglVendor">lglVendor</a>;
+<a class="link" href="libglabels-3.0-vendor.html#lglVendor" title="struct lglVendor"><span class="returnvalue">lglVendor</span></a> *         <a class="link" href="libglabels-3.0-vendor.html#lgl-vendor-new" title="lgl_vendor_new ()">lgl_vendor_new</a>                      (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
+<a class="link" href="libglabels-3.0-vendor.html#lglVendor" title="struct lglVendor"><span class="returnvalue">lglVendor</span></a> *         <a class="link" href="libglabels-3.0-vendor.html#lgl-vendor-dup" title="lgl_vendor_dup ()">lgl_vendor_dup</a>                      (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-vendor.html#lglVendor" title="struct lglVendor"><span class="type">lglVendor</span></a> *orig</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-vendor.html#lgl-vendor-free" title="lgl_vendor_free ()">lgl_vendor_free</a>                     (<em class="parameter"><code><a class="link" href="libglabels-3.0-vendor.html#lglVendor" title="struct lglVendor"><span class="type">lglVendor</span></a> *vendor</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libglabels-3.0-vendor.description"></a><h2>Description</h2>
+<p>
+This section describes a structure for representing vendor data.
+</p>
+</div>
+<div class="refsect1">
+<a name="libglabels-3.0-vendor.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="lglVendor"></a><h3>struct lglVendor</h3>
+<pre class="programlisting">struct lglVendor {
+        gchar               *name;           /* Vendor name */
+        gchar               *url;            /* Vendor URL */
+};
+</pre>
+<p>
+This structure defines a vendor.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="lglVendor.name"></a>name</code></em>;</span></p></td>
+<td>Vendor name.  (e.g. "Avery")</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="lglVendor.url"></a>url</code></em>;</span></p></td>
+<td>URL to vendor website</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-vendor-new"></a><h3>lgl_vendor_new ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-vendor.html#lglVendor" title="struct lglVendor"><span class="returnvalue">lglVendor</span></a> *         lgl_vendor_new                      (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
+<p>
+Allocates and constructs a new <a class="link" href="libglabels-3.0-vendor.html#lglVendor" title="struct lglVendor"><span class="type">lglVendor</span></a> structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Localized name of vendor.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a pointer to a newly allocated <a class="link" href="libglabels-3.0-vendor.html#lglVendor" title="struct lglVendor"><span class="type">lglVendor</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-vendor-dup"></a><h3>lgl_vendor_dup ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-vendor.html#lglVendor" title="struct lglVendor"><span class="returnvalue">lglVendor</span></a> *         lgl_vendor_dup                      (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-vendor.html#lglVendor" title="struct lglVendor"><span class="type">lglVendor</span></a> *orig</code></em>);</pre>
+<p>
+Duplicates an existing <a class="link" href="libglabels-3.0-vendor.html#lglVendor" title="struct lglVendor"><span class="type">lglVendor</span></a> structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>orig</code></em> :</span></p></td>
+<td>
+<a class="link" href="libglabels-3.0-vendor.html#lglVendor" title="struct lglVendor"><span class="type">lglVendor</span></a> structure to be duplicated.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a pointer to a newly allocated <a class="link" href="libglabels-3.0-vendor.html#lglVendor" title="struct lglVendor"><span class="type">lglVendor</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-vendor-free"></a><h3>lgl_vendor_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_vendor_free                     (<em class="parameter"><code><a class="link" href="libglabels-3.0-vendor.html#lglVendor" title="struct lglVendor"><span class="type">lglVendor</span></a> *vendor</code></em>);</pre>
+<p>
+Free all memory associated with an existing <a class="link" href="libglabels-3.0-vendor.html#lglVendor" title="struct lglVendor"><span class="type">lglVendor</span></a> structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>vendor</code></em> :</span></p></td>
+<td>pointer to <a class="link" href="libglabels-3.0-vendor.html#lglVendor" title="struct lglVendor"><span class="type">lglVendor</span></a> structure to be freed.</td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.17</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libglabels/html/libglabels-3.0-xml-category.html b/docs/libglabels/html/libglabels-3.0-xml-category.html
new file mode 100644 (file)
index 0000000..fc6ac61
--- /dev/null
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>XML Category Functions</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="LibGlabels 3.0 Reference Manual">
+<link rel="up" href="ch02.html" title="Working Directly With LibGlabels XML">
+<link rel="prev" href="libglabels-3.0-xml-paper.html" title="XML Paper Functions">
+<link rel="next" href="libglabels-3.0-xml-template.html" title="XML Template Functions">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libglabels-3.0-xml-paper.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">LibGlabels 3.0 Reference Manual</th>
+<td><a accesskey="n" href="libglabels-3.0-xml-template.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libglabels-3.0-xml-category.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#libglabels-3.0-xml-category.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libglabels-3.0-xml-category"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libglabels-3.0-xml-category.top_of_page"></a>XML Category Functions</span></h2>
+<p>XML Category Functions — Functions to parse glabels XML category definition files</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libglabels-3.0-xml-category.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libglabels/lgl-xml-category.h&gt;
+
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="libglabels-3.0-xml-category.html#lgl-xml-category-read-categories-from-file" title="lgl_xml_category_read_categories_from_file ()">lgl_xml_category_read_categories_from_file</a>
+                                                        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *utf8_filename</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="libglabels-3.0-xml-category.html#lgl-xml-category-parse-categories-doc" title="lgl_xml_category_parse_categories_doc ()">lgl_xml_category_parse_categories_doc</a>
+                                                        (<em class="parameter"><code><span class="type">xmlDocPtr</span> categories_doc</code></em>);
+<a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="returnvalue">lglCategory</span></a> *       <a class="link" href="libglabels-3.0-xml-category.html#lgl-xml-category-parse-category-node" title="lgl_xml_category_parse_category_node ()">lgl_xml_category_parse_category_node</a>
+                                                        (<em class="parameter"><code><span class="type">xmlNodePtr</span> category_node</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libglabels-3.0-xml-category.description"></a><h2>Description</h2>
+<p>
+This section describes a number of functions for parsing glabels
+XML category definition files.
+</p>
+</div>
+<div class="refsect1">
+<a name="libglabels-3.0-xml-category.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="lgl-xml-category-read-categories-from-file"></a><h3>lgl_xml_category_read_categories_from_file ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             lgl_xml_category_read_categories_from_file
+                                                        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *utf8_filename</code></em>);</pre>
+<p>
+Read category definitions from a file.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>utf8_filename</code></em> :</span></p></td>
+<td>Filename of categories file (name encoded as UTF-8)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a list of <a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="type">lglCategory</span></a> structures.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-category-parse-categories-doc"></a><h3>lgl_xml_category_parse_categories_doc ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             lgl_xml_category_parse_categories_doc
+                                                        (<em class="parameter"><code><span class="type">xmlDocPtr</span> categories_doc</code></em>);</pre>
+<p>
+Read category definitions from a libxml <span class="type">xmlDocPtr</span> tree.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>categories_doc</code></em> :</span></p></td>
+<td>libxml <span class="type">xmlDocPtr</span> tree, representing a categories
+definition file.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a list of <a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="type">lglCategory</span></a> structures.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-category-parse-category-node"></a><h3>lgl_xml_category_parse_category_node ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="returnvalue">lglCategory</span></a> *       lgl_xml_category_parse_category_node
+                                                        (<em class="parameter"><code><span class="type">xmlNodePtr</span> category_node</code></em>);</pre>
+<p>
+Read a single category definition from a libxml <span class="type">xmlNodePtr</span> node.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>category_node</code></em> :</span></p></td>
+<td>libxml <span class="type">xmlNodePtr</span> category node from a <span class="type">xmlDocPtr</span> tree.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a pointer to a newly created <a class="link" href="libglabels-3.0-category.html#lglCategory" title="struct lglCategory"><span class="type">lglCategory</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.17</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libglabels/html/libglabels-3.0-xml-paper.html b/docs/libglabels/html/libglabels-3.0-xml-paper.html
new file mode 100644 (file)
index 0000000..a7ee3d6
--- /dev/null
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>XML Paper Functions</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="LibGlabels 3.0 Reference Manual">
+<link rel="up" href="ch02.html" title="Working Directly With LibGlabels XML">
+<link rel="prev" href="ch02.html" title="Working Directly With LibGlabels XML">
+<link rel="next" href="libglabels-3.0-xml-category.html" title="XML Category Functions">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="ch02.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">LibGlabels 3.0 Reference Manual</th>
+<td><a accesskey="n" href="libglabels-3.0-xml-category.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libglabels-3.0-xml-paper.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#libglabels-3.0-xml-paper.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libglabels-3.0-xml-paper"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libglabels-3.0-xml-paper.top_of_page"></a>XML Paper Functions</span></h2>
+<p>XML Paper Functions — Functions to parse glabels XML paper definition files</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libglabels-3.0-xml-paper.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libglabels/lgl-xml-paper.h&gt;
+
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="libglabels-3.0-xml-paper.html#lgl-xml-paper-read-papers-from-file" title="lgl_xml_paper_read_papers_from_file ()">lgl_xml_paper_read_papers_from_file</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *utf8_filename</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="libglabels-3.0-xml-paper.html#lgl-xml-paper-parse-papers-doc" title="lgl_xml_paper_parse_papers_doc ()">lgl_xml_paper_parse_papers_doc</a>      (<em class="parameter"><code><span class="type">xmlDocPtr</span> papers_doc</code></em>);
+<a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="returnvalue">lglPaper</span></a> *          <a class="link" href="libglabels-3.0-xml-paper.html#lgl-xml-paper-parse-paper-node" title="lgl_xml_paper_parse_paper_node ()">lgl_xml_paper_parse_paper_node</a>      (<em class="parameter"><code><span class="type">xmlNodePtr</span> paper_node</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libglabels-3.0-xml-paper.description"></a><h2>Description</h2>
+<p>
+This section describes a number of functions for parsing glabels
+XML paper definition files.
+</p>
+</div>
+<div class="refsect1">
+<a name="libglabels-3.0-xml-paper.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="lgl-xml-paper-read-papers-from-file"></a><h3>lgl_xml_paper_read_papers_from_file ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             lgl_xml_paper_read_papers_from_file (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *utf8_filename</code></em>);</pre>
+<p>
+Read paper definitions from a file.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>utf8_filename</code></em> :</span></p></td>
+<td>Filename of papers file (name encoded as UTF-8)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a list of <a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="type">lglPaper</span></a> structures.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-paper-parse-papers-doc"></a><h3>lgl_xml_paper_parse_papers_doc ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             lgl_xml_paper_parse_papers_doc      (<em class="parameter"><code><span class="type">xmlDocPtr</span> papers_doc</code></em>);</pre>
+<p>
+Read paper definitions from a libxml <span class="type">xmlDocPtr</span> tree.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>papers_doc</code></em> :</span></p></td>
+<td>libxml <span class="type">xmlDocPtr</span> tree, representing a papers definition file.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a list of <a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="type">lglPaper</span></a> structures.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-paper-parse-paper-node"></a><h3>lgl_xml_paper_parse_paper_node ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="returnvalue">lglPaper</span></a> *          lgl_xml_paper_parse_paper_node      (<em class="parameter"><code><span class="type">xmlNodePtr</span> paper_node</code></em>);</pre>
+<p>
+Read a single paper definition from a libxml <span class="type">xmlNodePtr</span> node.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>paper_node</code></em> :</span></p></td>
+<td>libxml <span class="type">xmlNodePtr</span> paper node from a <span class="type">xmlDocPtr</span> tree.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a pointer to a newly created <a class="link" href="libglabels-3.0-paper.html#lglPaper" title="struct lglPaper"><span class="type">lglPaper</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.17</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libglabels/html/libglabels-3.0-xml-template.html b/docs/libglabels/html/libglabels-3.0-xml-template.html
new file mode 100644 (file)
index 0000000..a7021ce
--- /dev/null
@@ -0,0 +1,215 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>XML Template Functions</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="LibGlabels 3.0 Reference Manual">
+<link rel="up" href="ch02.html" title="Working Directly With LibGlabels XML">
+<link rel="prev" href="libglabels-3.0-xml-category.html" title="XML Category Functions">
+<link rel="next" href="libglabels-3.0-xml-vendor.html" title="XML Vendor Functions">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libglabels-3.0-xml-category.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">LibGlabels 3.0 Reference Manual</th>
+<td><a accesskey="n" href="libglabels-3.0-xml-vendor.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libglabels-3.0-xml-template.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#libglabels-3.0-xml-template.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libglabels-3.0-xml-template"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libglabels-3.0-xml-template.top_of_page"></a>XML Template Functions</span></h2>
+<p>XML Template Functions — Functions to create and parse glabels XML template nodes and files</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libglabels-3.0-xml-template.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libglabels/lgl-xml-templates.h&gt;
+
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-xml-template.html#lgl-xml-template-read-templates-from-file" title="lgl_xml_template_read_templates_from_file ()">lgl_xml_template_read_templates_from_file</a>
+                                                        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *utf8_filename</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-xml-template.html#lgl-xml-template-parse-templates-doc" title="lgl_xml_template_parse_templates_doc ()">lgl_xml_template_parse_templates_doc</a>
+                                                        (<em class="parameter"><code>const <span class="type">xmlDocPtr</span> templates_doc</code></em>);
+<a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="returnvalue">lglTemplate</span></a> *       <a class="link" href="libglabels-3.0-xml-template.html#lgl-xml-template-parse-template-node" title="lgl_xml_template_parse_template_node ()">lgl_xml_template_parse_template_node</a>
+                                                        (<em class="parameter"><code>const <span class="type">xmlNodePtr</span> template_node</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="libglabels-3.0-xml-template.html#lgl-xml-template-write-templates-to-file" title="lgl_xml_template_write_templates_to_file ()">lgl_xml_template_write_templates_to_file</a>
+                                                        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *templates</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *utf8_filename</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="libglabels-3.0-xml-template.html#lgl-xml-template-write-template-to-file" title="lgl_xml_template_write_template_to_file ()">lgl_xml_template_write_template_to_file</a>
+                                                        (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *utf8_filename</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-xml-template.html#lgl-xml-template-create-template-node" title="lgl_xml_template_create_template_node ()">lgl_xml_template_create_template_node</a>
+                                                        (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template</code></em>,
+                                                         <em class="parameter"><code><span class="type">xmlNodePtr</span> root</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">xmlNsPtr</span> ns</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libglabels-3.0-xml-template.description"></a><h2>Description</h2>
+<p>
+This section describes a number of functions for creating and parsing
+glabels XML template nodes and files.  Template nodes are used in both
+template files and document files.
+</p>
+</div>
+<div class="refsect1">
+<a name="libglabels-3.0-xml-template.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="lgl-xml-template-read-templates-from-file"></a><h3>lgl_xml_template_read_templates_from_file ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_xml_template_read_templates_from_file
+                                                        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *utf8_filename</code></em>);</pre>
+<p>
+Read glabels templates from template file.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>utf8_filename</code></em> :</span></p></td>
+<td>Filename of papers file (name encoded as UTF-8)</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-template-parse-templates-doc"></a><h3>lgl_xml_template_parse_templates_doc ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_xml_template_parse_templates_doc
+                                                        (<em class="parameter"><code>const <span class="type">xmlDocPtr</span> templates_doc</code></em>);</pre>
+<p>
+Read glabels templates from a libxml <span class="type">xmlDocPtr</span> tree.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>templates_doc</code></em> :</span></p></td>
+<td>libxml <span class="type">xmlDocPtr</span> tree, representing template file.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-template-parse-template-node"></a><h3>lgl_xml_template_parse_template_node ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="returnvalue">lglTemplate</span></a> *       lgl_xml_template_parse_template_node
+                                                        (<em class="parameter"><code>const <span class="type">xmlNodePtr</span> template_node</code></em>);</pre>
+<p>
+Read a single glabels template from a libxml <span class="type">xmlNodePtr</span> node.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>template_node</code></em> :</span></p></td>
+<td>libxml <span class="type">xmlNodePtr</span> template node from a <span class="type">xmlDocPtr</span> tree.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a pointer to a newly created <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-template-write-templates-to-file"></a><h3>lgl_xml_template_write_templates_to_file ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                lgl_xml_template_write_templates_to_file
+                                                        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *templates</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *utf8_filename</code></em>);</pre>
+<p>
+Write a list of <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> structures to a glabels XML template file.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>templates</code></em> :</span></p></td>
+<td>List of <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> structures</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>utf8_filename</code></em> :</span></p></td>
+<td>Filename of templates file (name encoded as UTF-8)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of bytes written or -1 in case of failure</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-template-write-template-to-file"></a><h3>lgl_xml_template_write_template_to_file ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                lgl_xml_template_write_template_to_file
+                                                        (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *utf8_filename</code></em>);</pre>
+<p>
+Write a single <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> structures to a glabels XML template file.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>template</code></em> :</span></p></td>
+<td>
+<a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> structure to be written</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>utf8_filename</code></em> :</span></p></td>
+<td>Filename of templates file (name encoded as UTF-8)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of bytes written or -1 in case of failure</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-template-create-template-node"></a><h3>lgl_xml_template_create_template_node ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_xml_template_create_template_node
+                                                        (<em class="parameter"><code>const <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> *template</code></em>,
+                                                         <em class="parameter"><code><span class="type">xmlNodePtr</span> root</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">xmlNsPtr</span> ns</code></em>);</pre>
+<p>
+Add a single <a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> child node to given <span class="type">xmlNodePtr</span>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>template</code></em> :</span></p></td>
+<td>
+<a class="link" href="libglabels-3.0-template.html#lglTemplate" title="struct lglTemplate"><span class="type">lglTemplate</span></a> structure to be written</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>root</code></em> :</span></p></td>
+<td>parent node to receive new child node</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ns</code></em> :</span></p></td>
+<td>a libxml <span class="type">xmlNsPtr</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.17</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libglabels/html/libglabels-3.0-xml-vendor.html b/docs/libglabels/html/libglabels-3.0-xml-vendor.html
new file mode 100644 (file)
index 0000000..b09075c
--- /dev/null
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>XML Vendor Functions</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="LibGlabels 3.0 Reference Manual">
+<link rel="up" href="ch02.html" title="Working Directly With LibGlabels XML">
+<link rel="prev" href="libglabels-3.0-xml-template.html" title="XML Template Functions">
+<link rel="next" href="libglabels-3.0-xml.html" title="XML Helper Functions">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libglabels-3.0-xml-template.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">LibGlabels 3.0 Reference Manual</th>
+<td><a accesskey="n" href="libglabels-3.0-xml.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libglabels-3.0-xml-vendor.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#libglabels-3.0-xml-vendor.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libglabels-3.0-xml-vendor"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libglabels-3.0-xml-vendor.top_of_page"></a>XML Vendor Functions</span></h2>
+<p>XML Vendor Functions — Functions to parse glabels XML vendor descriptions</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libglabels-3.0-xml-vendor.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libglabels/lgl-xml-vendor.h&gt;
+
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="libglabels-3.0-xml-vendor.html#lgl-xml-vendor-read-vendors-from-file" title="lgl_xml_vendor_read_vendors_from_file ()">lgl_xml_vendor_read_vendors_from_file</a>
+                                                        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *utf8_filename</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="libglabels-3.0-xml-vendor.html#lgl-xml-vendor-parse-vendors-doc" title="lgl_xml_vendor_parse_vendors_doc ()">lgl_xml_vendor_parse_vendors_doc</a>    (<em class="parameter"><code><span class="type">xmlDocPtr</span> vendors_doc</code></em>);
+<a class="link" href="libglabels-3.0-vendor.html#lglVendor" title="struct lglVendor"><span class="returnvalue">lglVendor</span></a> *         <a class="link" href="libglabels-3.0-xml-vendor.html#lgl-xml-vendor-parse-vendor-node" title="lgl_xml_vendor_parse_vendor_node ()">lgl_xml_vendor_parse_vendor_node</a>    (<em class="parameter"><code><span class="type">xmlNodePtr</span> vendor_node</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libglabels-3.0-xml-vendor.description"></a><h2>Description</h2>
+<p>
+This section describes several functions for parsing vendor XML description files.
+</p>
+</div>
+<div class="refsect1">
+<a name="libglabels-3.0-xml-vendor.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="lgl-xml-vendor-read-vendors-from-file"></a><h3>lgl_xml_vendor_read_vendors_from_file ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             lgl_xml_vendor_read_vendors_from_file
+                                                        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *utf8_filename</code></em>);</pre>
+<p>
+Read vendor definitions from a file.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>utf8_filename</code></em> :</span></p></td>
+<td>Filename of vendors file (name encoded as UTF-8)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a list of <a class="link" href="libglabels-3.0-vendor.html#lglVendor" title="struct lglVendor"><span class="type">lglVendor</span></a> structures.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-vendor-parse-vendors-doc"></a><h3>lgl_xml_vendor_parse_vendors_doc ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             lgl_xml_vendor_parse_vendors_doc    (<em class="parameter"><code><span class="type">xmlDocPtr</span> vendors_doc</code></em>);</pre>
+<p>
+Read vendor definitions from a libxml <span class="type">xmlDocPtr</span> tree.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>vendors_doc</code></em> :</span></p></td>
+<td>libxml <span class="type">xmlDocPtr</span> tree, representing a vendors definition file.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a list of <a class="link" href="libglabels-3.0-vendor.html#lglVendor" title="struct lglVendor"><span class="type">lglVendor</span></a> structures.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-vendor-parse-vendor-node"></a><h3>lgl_xml_vendor_parse_vendor_node ()</h3>
+<pre class="programlisting"><a class="link" href="libglabels-3.0-vendor.html#lglVendor" title="struct lglVendor"><span class="returnvalue">lglVendor</span></a> *         lgl_xml_vendor_parse_vendor_node    (<em class="parameter"><code><span class="type">xmlNodePtr</span> vendor_node</code></em>);</pre>
+<p>
+Read a single vendor definition from a libxml <span class="type">xmlNodePtr</span> node.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>vendor_node</code></em> :</span></p></td>
+<td>libxml <span class="type">xmlNodePtr</span> vendor node from a <span class="type">xmlDocPtr</span> tree.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a pointer to a newly created <a class="link" href="libglabels-3.0-vendor.html#lglVendor" title="struct lglVendor"><span class="type">lglVendor</span></a> structure.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.17</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libglabels/html/libglabels-3.0-xml.html b/docs/libglabels/html/libglabels-3.0-xml.html
new file mode 100644 (file)
index 0000000..a53c868
--- /dev/null
@@ -0,0 +1,571 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>XML Helper Functions</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="LibGlabels 3.0 Reference Manual">
+<link rel="up" href="ch02.html" title="Working Directly With LibGlabels XML">
+<link rel="prev" href="libglabels-3.0-xml-vendor.html" title="XML Vendor Functions">
+<link rel="next" href="ch03.html" title="Miscellaneous">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libglabels-3.0-xml-vendor.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">LibGlabels 3.0 Reference Manual</th>
+<td><a accesskey="n" href="ch03.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libglabels-3.0-xml.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#libglabels-3.0-xml.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libglabels-3.0-xml"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libglabels-3.0-xml.top_of_page"></a>XML Helper Functions</span></h2>
+<p>XML Helper Functions — Functions to help format and parse glabels XML properties</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libglabels-3.0-xml.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libglabels/lgl-xml.h&gt;
+
+#define             <a class="link" href="libglabels-3.0-xml.html#LGL-XML-NAME-SPACE:CAPS" title="LGL_XML_NAME_SPACE">LGL_XML_NAME_SPACE</a>
+
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="libglabels-3.0-xml.html#lgl-xml-get-prop-string" title="lgl_xml_get_prop_string ()">lgl_xml_get_prop_string</a>             (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *default_val</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="libglabels-3.0-xml.html#lgl-xml-get-prop-i18n-string" title="lgl_xml_get_prop_i18n_string ()">lgl_xml_get_prop_i18n_string</a>        (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *default_val</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>             <a class="link" href="libglabels-3.0-xml.html#lgl-xml-get-prop-double" title="lgl_xml_get_prop_double ()">lgl_xml_get_prop_double</a>             (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> default_val</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="libglabels-3.0-xml.html#lgl-xml-get-prop-boolean" title="lgl_xml_get_prop_boolean ()">lgl_xml_get_prop_boolean</a>            (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> default_val</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="libglabels-3.0-xml.html#lgl-xml-get-prop-int" title="lgl_xml_get_prop_int ()">lgl_xml_get_prop_int</a>                (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> default_val</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="libglabels-3.0-xml.html#lgl-xml-get-prop-uint" title="lgl_xml_get_prop_uint ()">lgl_xml_get_prop_uint</a>               (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> default_val</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>             <a class="link" href="libglabels-3.0-xml.html#lgl-xml-get-prop-length" title="lgl_xml_get_prop_length ()">lgl_xml_get_prop_length</a>             (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> default_val</code></em>);
+
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-xml.html#lgl-xml-set-prop-string" title="lgl_xml_set_prop_string ()">lgl_xml_set_prop_string</a>             (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *val</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-xml.html#lgl-xml-set-prop-double" title="lgl_xml_set_prop_double ()">lgl_xml_set_prop_double</a>             (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> val</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-xml.html#lgl-xml-set-prop-boolean" title="lgl_xml_set_prop_boolean ()">lgl_xml_set_prop_boolean</a>            (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> val</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-xml.html#lgl-xml-set-prop-int" title="lgl_xml_set_prop_int ()">lgl_xml_set_prop_int</a>                (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> val</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-xml.html#lgl-xml-set-prop-uint-hex" title="lgl_xml_set_prop_uint_hex ()">lgl_xml_set_prop_uint_hex</a>           (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> val</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-xml.html#lgl-xml-set-prop-length" title="lgl_xml_set_prop_length ()">lgl_xml_set_prop_length</a>             (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> val</code></em>);
+
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="libglabels-3.0-xml.html#lgl-xml-is-node" title="lgl_xml_is_node ()">lgl_xml_is_node</a>                     (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="libglabels-3.0-xml.html#lgl-xml-get-node-content" title="lgl_xml_get_node_content ()">lgl_xml_get_node_content</a>            (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>);
+
+<span class="returnvalue">void</span>                <a class="link" href="libglabels-3.0-xml.html#lgl-xml-set-default-units" title="lgl_xml_set_default_units ()">lgl_xml_set_default_units</a>           (<em class="parameter"><code><a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="type">lglUnits</span></a> units</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libglabels-3.0-xml.description"></a><h2>Description</h2>
+<p>
+This section describes a number of "helper" functions for formatting and
+parsing various types of properties for tags in glabels XML file formats.
+</p>
+<p>
+These functions are basically wrappers to functions from libxml2.
+</p>
+</div>
+<div class="refsect1">
+<a name="libglabels-3.0-xml.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="LGL-XML-NAME-SPACE:CAPS"></a><h3>LGL_XML_NAME_SPACE</h3>
+<pre class="programlisting">#define LGL_XML_NAME_SPACE "http://glabels.org/xmlns/3.0/"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-get-prop-string"></a><h3>lgl_xml_get_prop_string ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             lgl_xml_get_prop_string             (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *default_val</code></em>);</pre>
+<p>
+Return value of property as a string.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
+<td>the libxml2 <span class="type">xmlNodePtr</span> of the node</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>the property name</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>default_val</code></em> :</span></p></td>
+<td>a default value to return if property not found</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the property as a pointer to a gchar string.  This string should
+be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-get-prop-i18n-string"></a><h3>lgl_xml_get_prop_i18n_string ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             lgl_xml_get_prop_i18n_string        (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *default_val</code></em>);</pre>
+<p>
+Return value of a translatable property as a string.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
+<td>the libxml2 <span class="type">xmlNodePtr</span> of the node</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>the property name</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>default_val</code></em> :</span></p></td>
+<td>a default value to return if property not found</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the property as a pointer to a gchar string.  This string should
+be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-get-prop-double"></a><h3>lgl_xml_get_prop_double ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>             lgl_xml_get_prop_double             (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> default_val</code></em>);</pre>
+<p>
+Return value of property as a double.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
+<td>the libxml2 <span class="type">xmlNodePtr</span> of the node</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>the property name</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>default_val</code></em> :</span></p></td>
+<td>a default value to return if property not found</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the property as a double.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-get-prop-boolean"></a><h3>lgl_xml_get_prop_boolean ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            lgl_xml_get_prop_boolean            (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> default_val</code></em>);</pre>
+<p>
+Return value of property as a boolean.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
+<td>the libxml2 <span class="type">xmlNodePtr</span> of the node</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>the property name</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>default_val</code></em> :</span></p></td>
+<td>a default value to return if property not found</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the property as a boolean.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-get-prop-int"></a><h3>lgl_xml_get_prop_int ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                lgl_xml_get_prop_int                (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> default_val</code></em>);</pre>
+<p>
+Return value of property as an integer.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
+<td>the libxml2 <span class="type">xmlNodePtr</span> of the node</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>the property name</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>default_val</code></em> :</span></p></td>
+<td>a default value to return if property not found</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the property as an integer.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-get-prop-uint"></a><h3>lgl_xml_get_prop_uint ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               lgl_xml_get_prop_uint               (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> default_val</code></em>);</pre>
+<p>
+Return value of property (usually formatted in hex) as an unsigned integer.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
+<td>the libxml2 <span class="type">xmlNodePtr</span> of the node</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>the property name</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>default_val</code></em> :</span></p></td>
+<td>a default value to return if property not found</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the property as an unsigned integer.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-get-prop-length"></a><h3>lgl_xml_get_prop_length ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>             lgl_xml_get_prop_length             (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> default_val</code></em>);</pre>
+<p>
+Return value of a length property as a double, converting to internal
+units (points).  The property is expected to be formatted as a number
+followed by a units string.  If there is no units string, the length
+is assumed to be in points.  Valid units strings are "pt" for points,
+"in" for inches, "mm" for millimeters, "cm" for centimeters, and
+"pc" for picas.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
+<td>the libxml2 <span class="type">xmlNodePtr</span> of the node</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>the property name</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>default_val</code></em> :</span></p></td>
+<td>a default value to return if property not found</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the length in points.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-set-prop-string"></a><h3>lgl_xml_set_prop_string ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_xml_set_prop_string             (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *val</code></em>);</pre>
+<p>
+Set a property from a string.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
+<td>the libxml2 <span class="type">xmlNodePtr</span> of the node</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>the property name</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
+<td>the value to set</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-set-prop-double"></a><h3>lgl_xml_set_prop_double ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_xml_set_prop_double             (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> val</code></em>);</pre>
+<p>
+Set a property from a double.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
+<td>the libxml2 <span class="type">xmlNodePtr</span> of the node</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>the property name</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
+<td>the value to set</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-set-prop-boolean"></a><h3>lgl_xml_set_prop_boolean ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_xml_set_prop_boolean            (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> val</code></em>);</pre>
+<p>
+Set a property from a boolean.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
+<td>the libxml2 <span class="type">xmlNodePtr</span> of the node</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>the property name</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
+<td>the value to set</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-set-prop-int"></a><h3>lgl_xml_set_prop_int ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_xml_set_prop_int                (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> val</code></em>);</pre>
+<p>
+Set a property from an integer.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
+<td>the libxml2 <span class="type">xmlNodePtr</span> of the node</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>the property name</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
+<td>the value to set</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-set-prop-uint-hex"></a><h3>lgl_xml_set_prop_uint_hex ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_xml_set_prop_uint_hex           (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> val</code></em>);</pre>
+<p>
+Set a property from an unsigned integer and format in hex.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
+<td>the libxml2 <span class="type">xmlNodePtr</span> of the node</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>the property name</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
+<td>the value to set</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-set-prop-length"></a><h3>lgl_xml_set_prop_length ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_xml_set_prop_length             (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> val</code></em>);</pre>
+<p>
+Set a property from a length, performing any necessary conversion.
+Length properties are formatted as a number followed by a units string.
+The units of the formatted property is determined by the most recent call to
+<a class="link" href="libglabels-3.0-xml.html#lgl-xml-set-default-units" title="lgl_xml_set_default_units ()"><code class="function">lgl_xml_set_default_units()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
+<td>the libxml2 <span class="type">xmlNodePtr</span> of the node</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>the property name</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
+<td>the length to set in internal units (points)</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-is-node"></a><h3>lgl_xml_is_node ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            lgl_xml_is_node                     (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
+<p>
+Test if a node name matches given name.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
+<td>the libxml2 <span class="type">xmlNodePtr</span> of the node</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>the node name</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if the name of the node matches.  Otherwise FALSE.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-get-node-content"></a><h3>lgl_xml_get_node_content ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             lgl_xml_get_node_content            (<em class="parameter"><code><span class="type">xmlNodePtr</span> node</code></em>);</pre>
+<p>
+Get the content of a node.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
+<td>the libxml2 <span class="type">xmlNodePtr</span> of the node</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the property as a pointer to a gchar string.  This string should
+be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-xml-set-default-units"></a><h3>lgl_xml_set_default_units ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_xml_set_default_units           (<em class="parameter"><code><a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="type">lglUnits</span></a> units</code></em>);</pre>
+<p>
+Set the default units when formatting lengths.  See
+<a class="link" href="libglabels-3.0-xml.html#lgl-xml-set-prop-length" title="lgl_xml_set_prop_length ()"><code class="function">lgl_xml_set_prop_length()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>units</code></em> :</span></p></td>
+<td>default units selection (<a class="link" href="libglabels-3.0-units.html#lglUnits" title="enum lglUnits"><span class="type">lglUnits</span></a>)</td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.17</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libglabels/html/libglabels-3.0.devhelp b/docs/libglabels/html/libglabels-3.0.devhelp
new file mode 100644 (file)
index 0000000..1b34d57
--- /dev/null
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
+<book xmlns="http://www.devhelp.net/book" title="LibGlabels 3.0 Reference Manual" link="index.html" author="" name="libglabels-3.0">
+  <chapters>
+    <sub name="Basic LibGlabels Usage" link="ch01.html">
+      <sub name="Database" link="libglabels-3.0-db.html"/>
+      <sub name="The lglTemplate Structure" link="libglabels-3.0-template.html"/>
+      <sub name="The lglPaper Structure" link="libglabels-3.0-paper.html"/>
+      <sub name="The lglCategory Structure" link="libglabels-3.0-category.html"/>
+      <sub name="The lglVendor Structure" link="libglabels-3.0-vendor.html"/>
+    </sub>
+    <sub name="Working Directly With LibGlabels XML" link="ch02.html">
+      <sub name="XML Paper Functions" link="libglabels-3.0-xml-paper.html"/>
+      <sub name="XML Category Functions" link="libglabels-3.0-xml-category.html"/>
+      <sub name="XML Template Functions" link="libglabels-3.0-xml-template.html"/>
+      <sub name="XML Vendor Functions" link="libglabels-3.0-xml-vendor.html"/>
+      <sub name="XML Helper Functions" link="libglabels-3.0-xml.html"/>
+    </sub>
+    <sub name="Miscellaneous" link="ch03.html">
+      <sub name="Units" link="libglabels-3.0-units.html"/>
+      <sub name="String Utility Functions" link="libglabels-3.0-str.html"/>
+    </sub>
+  </chapters>
+  <functions>
+    <function name="enum lglDbRegStatus" link="libglabels-3.0-db.html#lglDbRegStatus"/>
+    <function name="enum lglDbDeleteStatus" link="libglabels-3.0-db.html#lglDbDeleteStatus"/>
+    <function name="lgl_db_init ()" link="libglabels-3.0-db.html#lgl-db-init"/>
+    <function name="lglDbNotifyFunc ()" link="libglabels-3.0-db.html#lglDbNotifyFunc"/>
+    <function name="lgl_db_notify_add ()" link="libglabels-3.0-db.html#lgl-db-notify-add"/>
+    <function name="lgl_db_notify_remove ()" link="libglabels-3.0-db.html#lgl-db-notify-remove"/>
+    <function name="lgl_db_get_paper_id_list ()" link="libglabels-3.0-db.html#lgl-db-get-paper-id-list"/>
+    <function name="lgl_db_free_paper_id_list ()" link="libglabels-3.0-db.html#lgl-db-free-paper-id-list"/>
+    <function name="lgl_db_get_paper_name_list ()" link="libglabels-3.0-db.html#lgl-db-get-paper-name-list"/>
+    <function name="lgl_db_free_paper_name_list ()" link="libglabels-3.0-db.html#lgl-db-free-paper-name-list"/>
+    <function name="lgl_db_lookup_paper_from_id ()" link="libglabels-3.0-db.html#lgl-db-lookup-paper-from-id"/>
+    <function name="lgl_db_lookup_paper_from_name ()" link="libglabels-3.0-db.html#lgl-db-lookup-paper-from-name"/>
+    <function name="lgl_db_lookup_paper_id_from_name ()" link="libglabels-3.0-db.html#lgl-db-lookup-paper-id-from-name"/>
+    <function name="lgl_db_lookup_paper_name_from_id ()" link="libglabels-3.0-db.html#lgl-db-lookup-paper-name-from-id"/>
+    <function name="lgl_db_is_paper_id_known ()" link="libglabels-3.0-db.html#lgl-db-is-paper-id-known"/>
+    <function name="lgl_db_is_paper_id_other ()" link="libglabels-3.0-db.html#lgl-db-is-paper-id-other"/>
+    <function name="lgl_db_get_category_id_list ()" link="libglabels-3.0-db.html#lgl-db-get-category-id-list"/>
+    <function name="lgl_db_free_category_id_list ()" link="libglabels-3.0-db.html#lgl-db-free-category-id-list"/>
+    <function name="lgl_db_get_category_name_list ()" link="libglabels-3.0-db.html#lgl-db-get-category-name-list"/>
+    <function name="lgl_db_free_category_name_list ()" link="libglabels-3.0-db.html#lgl-db-free-category-name-list"/>
+    <function name="lgl_db_lookup_category_from_id ()" link="libglabels-3.0-db.html#lgl-db-lookup-category-from-id"/>
+    <function name="lgl_db_lookup_category_from_name ()" link="libglabels-3.0-db.html#lgl-db-lookup-category-from-name"/>
+    <function name="lgl_db_lookup_category_id_from_name ()" link="libglabels-3.0-db.html#lgl-db-lookup-category-id-from-name"/>
+    <function name="lgl_db_lookup_category_name_from_id ()" link="libglabels-3.0-db.html#lgl-db-lookup-category-name-from-id"/>
+    <function name="lgl_db_is_category_id_known ()" link="libglabels-3.0-db.html#lgl-db-is-category-id-known"/>
+    <function name="lgl_db_get_brand_list ()" link="libglabels-3.0-db.html#lgl-db-get-brand-list"/>
+    <function name="lgl_db_free_brand_list ()" link="libglabels-3.0-db.html#lgl-db-free-brand-list"/>
+    <function name="lgl_db_register_template ()" link="libglabels-3.0-db.html#lgl-db-register-template"/>
+    <function name="lgl_db_delete_template_by_brand_part ()" link="libglabels-3.0-db.html#lgl-db-delete-template-by-brand-part"/>
+    <function name="lgl_db_delete_template_by_name ()" link="libglabels-3.0-db.html#lgl-db-delete-template-by-name"/>
+    <function name="lgl_db_does_template_exist ()" link="libglabels-3.0-db.html#lgl-db-does-template-exist"/>
+    <function name="lgl_db_does_template_name_exist ()" link="libglabels-3.0-db.html#lgl-db-does-template-name-exist"/>
+    <function name="lgl_db_get_template_name_list_all ()" link="libglabels-3.0-db.html#lgl-db-get-template-name-list-all"/>
+    <function name="lgl_db_get_similar_template_name_list ()" link="libglabels-3.0-db.html#lgl-db-get-similar-template-name-list"/>
+    <function name="lgl_db_free_template_name_list ()" link="libglabels-3.0-db.html#lgl-db-free-template-name-list"/>
+    <function name="lgl_db_lookup_template_from_name ()" link="libglabels-3.0-db.html#lgl-db-lookup-template-from-name"/>
+    <function name="lgl_db_lookup_template_from_brand_part ()" link="libglabels-3.0-db.html#lgl-db-lookup-template-from-brand-part"/>
+    <function name="lgl_db_get_vendor_name_list ()" link="libglabels-3.0-db.html#lgl-db-get-vendor-name-list"/>
+    <function name="lgl_db_free_vendor_name_list ()" link="libglabels-3.0-db.html#lgl-db-free-vendor-name-list"/>
+    <function name="lgl_db_is_vendor_name_known ()" link="libglabels-3.0-db.html#lgl-db-is-vendor-name-known"/>
+    <function name="lgl_db_lookup_vendor_from_name ()" link="libglabels-3.0-db.html#lgl-db-lookup-vendor-from-name"/>
+    <function name="lgl_db_print_known_papers ()" link="libglabels-3.0-db.html#lgl-db-print-known-papers"/>
+    <function name="lgl_db_print_known_categories ()" link="libglabels-3.0-db.html#lgl-db-print-known-categories"/>
+    <function name="lgl_db_print_known_templates ()" link="libglabels-3.0-db.html#lgl-db-print-known-templates"/>
+    <function name="lgl_db_print_known_vendors ()" link="libglabels-3.0-db.html#lgl-db-print-known-vendors"/>
+    <function name="struct lglTemplate" link="libglabels-3.0-template.html#lglTemplate"/>
+    <function name="enum lglTemplateFrameShape" link="libglabels-3.0-template.html#lglTemplateFrameShape"/>
+    <function name="union lglTemplateFrame" link="libglabels-3.0-template.html#lglTemplateFrame"/>
+    <function name="struct lglTemplateFrameAll" link="libglabels-3.0-template.html#lglTemplateFrameAll"/>
+    <function name="struct lglTemplateFrameRect" link="libglabels-3.0-template.html#lglTemplateFrameRect"/>
+    <function name="struct lglTemplateFrameEllipse" link="libglabels-3.0-template.html#lglTemplateFrameEllipse"/>
+    <function name="struct lglTemplateFrameRound" link="libglabels-3.0-template.html#lglTemplateFrameRound"/>
+    <function name="struct lglTemplateFrameCD" link="libglabels-3.0-template.html#lglTemplateFrameCD"/>
+    <function name="struct lglTemplateLayout" link="libglabels-3.0-template.html#lglTemplateLayout"/>
+    <function name="enum lglTemplateMarkupType" link="libglabels-3.0-template.html#lglTemplateMarkupType"/>
+    <function name="union lglTemplateMarkup" link="libglabels-3.0-template.html#lglTemplateMarkup"/>
+    <function name="struct lglTemplateMarkupMargin" link="libglabels-3.0-template.html#lglTemplateMarkupMargin"/>
+    <function name="struct lglTemplateMarkupLine" link="libglabels-3.0-template.html#lglTemplateMarkupLine"/>
+    <function name="struct lglTemplateMarkupCircle" link="libglabels-3.0-template.html#lglTemplateMarkupCircle"/>
+    <function name="struct lglTemplateMarkupRect" link="libglabels-3.0-template.html#lglTemplateMarkupRect"/>
+    <function name="struct lglTemplateMarkupEllipse" link="libglabels-3.0-template.html#lglTemplateMarkupEllipse"/>
+    <function name="struct lglTemplateOrigin" link="libglabels-3.0-template.html#lglTemplateOrigin"/>
+    <function name="lgl_template_new ()" link="libglabels-3.0-template.html#lgl-template-new"/>
+    <function name="lgl_template_new_from_equiv ()" link="libglabels-3.0-template.html#lgl-template-new-from-equiv"/>
+    <function name="lgl_template_dup ()" link="libglabels-3.0-template.html#lgl-template-dup"/>
+    <function name="lgl_template_free ()" link="libglabels-3.0-template.html#lgl-template-free"/>
+    <function name="lgl_template_add_category ()" link="libglabels-3.0-template.html#lgl-template-add-category"/>
+    <function name="lgl_template_add_frame ()" link="libglabels-3.0-template.html#lgl-template-add-frame"/>
+    <function name="lgl_template_get_name ()" link="libglabels-3.0-template.html#lgl-template-get-name"/>
+    <function name="lgl_template_do_templates_match ()" link="libglabels-3.0-template.html#lgl-template-do-templates-match"/>
+    <function name="lgl_template_does_brand_match ()" link="libglabels-3.0-template.html#lgl-template-does-brand-match"/>
+    <function name="lgl_template_does_page_size_match ()" link="libglabels-3.0-template.html#lgl-template-does-page-size-match"/>
+    <function name="lgl_template_does_category_match ()" link="libglabels-3.0-template.html#lgl-template-does-category-match"/>
+    <function name="lgl_template_are_templates_identical ()" link="libglabels-3.0-template.html#lgl-template-are-templates-identical"/>
+    <function name="lgl_template_frame_rect_new ()" link="libglabels-3.0-template.html#lgl-template-frame-rect-new"/>
+    <function name="lgl_template_frame_ellipse_new ()" link="libglabels-3.0-template.html#lgl-template-frame-ellipse-new"/>
+    <function name="lgl_template_frame_round_new ()" link="libglabels-3.0-template.html#lgl-template-frame-round-new"/>
+    <function name="lgl_template_frame_cd_new ()" link="libglabels-3.0-template.html#lgl-template-frame-cd-new"/>
+    <function name="lgl_template_frame_dup ()" link="libglabels-3.0-template.html#lgl-template-frame-dup"/>
+    <function name="lgl_template_frame_free ()" link="libglabels-3.0-template.html#lgl-template-frame-free"/>
+    <function name="lgl_template_frame_add_layout ()" link="libglabels-3.0-template.html#lgl-template-frame-add-layout"/>
+    <function name="lgl_template_frame_add_markup ()" link="libglabels-3.0-template.html#lgl-template-frame-add-markup"/>
+    <function name="lgl_template_frame_get_size ()" link="libglabels-3.0-template.html#lgl-template-frame-get-size"/>
+    <function name="lgl_template_frame_get_n_labels ()" link="libglabels-3.0-template.html#lgl-template-frame-get-n-labels"/>
+    <function name="lgl_template_frame_get_origins ()" link="libglabels-3.0-template.html#lgl-template-frame-get-origins"/>
+    <function name="lgl_template_frame_get_layout_description ()" link="libglabels-3.0-template.html#lgl-template-frame-get-layout-description"/>
+    <function name="lgl_template_frame_get_size_description ()" link="libglabels-3.0-template.html#lgl-template-frame-get-size-description"/>
+    <function name="lgl_template_layout_new ()" link="libglabels-3.0-template.html#lgl-template-layout-new"/>
+    <function name="lgl_template_layout_dup ()" link="libglabels-3.0-template.html#lgl-template-layout-dup"/>
+    <function name="lgl_template_layout_free ()" link="libglabels-3.0-template.html#lgl-template-layout-free"/>
+    <function name="lgl_template_markup_margin_new ()" link="libglabels-3.0-template.html#lgl-template-markup-margin-new"/>
+    <function name="lgl_template_markup_line_new ()" link="libglabels-3.0-template.html#lgl-template-markup-line-new"/>
+    <function name="lgl_template_markup_circle_new ()" link="libglabels-3.0-template.html#lgl-template-markup-circle-new"/>
+    <function name="lgl_template_markup_rect_new ()" link="libglabels-3.0-template.html#lgl-template-markup-rect-new"/>
+    <function name="lgl_template_markup_ellipse_new ()" link="libglabels-3.0-template.html#lgl-template-markup-ellipse-new"/>
+    <function name="lgl_template_markup_dup ()" link="libglabels-3.0-template.html#lgl-template-markup-dup"/>
+    <function name="lgl_template_markup_free ()" link="libglabels-3.0-template.html#lgl-template-markup-free"/>
+    <function name="lgl_template_print ()" link="libglabels-3.0-template.html#lgl-template-print"/>
+    <function name="struct lglPaper" link="libglabels-3.0-paper.html#lglPaper"/>
+    <function name="lgl_paper_new ()" link="libglabels-3.0-paper.html#lgl-paper-new"/>
+    <function name="lgl_paper_dup ()" link="libglabels-3.0-paper.html#lgl-paper-dup"/>
+    <function name="lgl_paper_free ()" link="libglabels-3.0-paper.html#lgl-paper-free"/>
+    <function name="struct lglCategory" link="libglabels-3.0-category.html#lglCategory"/>
+    <function name="lgl_category_new ()" link="libglabels-3.0-category.html#lgl-category-new"/>
+    <function name="lgl_category_dup ()" link="libglabels-3.0-category.html#lgl-category-dup"/>
+    <function name="lgl_category_free ()" link="libglabels-3.0-category.html#lgl-category-free"/>
+    <function name="struct lglVendor" link="libglabels-3.0-vendor.html#lglVendor"/>
+    <function name="lgl_vendor_new ()" link="libglabels-3.0-vendor.html#lgl-vendor-new"/>
+    <function name="lgl_vendor_dup ()" link="libglabels-3.0-vendor.html#lgl-vendor-dup"/>
+    <function name="lgl_vendor_free ()" link="libglabels-3.0-vendor.html#lgl-vendor-free"/>
+    <function name="lgl_xml_paper_read_papers_from_file ()" link="libglabels-3.0-xml-paper.html#lgl-xml-paper-read-papers-from-file"/>
+    <function name="lgl_xml_paper_parse_papers_doc ()" link="libglabels-3.0-xml-paper.html#lgl-xml-paper-parse-papers-doc"/>
+    <function name="lgl_xml_paper_parse_paper_node ()" link="libglabels-3.0-xml-paper.html#lgl-xml-paper-parse-paper-node"/>
+    <function name="lgl_xml_category_read_categories_from_file ()" link="libglabels-3.0-xml-category.html#lgl-xml-category-read-categories-from-file"/>
+    <function name="lgl_xml_category_parse_categories_doc ()" link="libglabels-3.0-xml-category.html#lgl-xml-category-parse-categories-doc"/>
+    <function name="lgl_xml_category_parse_category_node ()" link="libglabels-3.0-xml-category.html#lgl-xml-category-parse-category-node"/>
+    <function name="lgl_xml_template_read_templates_from_file ()" link="libglabels-3.0-xml-template.html#lgl-xml-template-read-templates-from-file"/>
+    <function name="lgl_xml_template_parse_templates_doc ()" link="libglabels-3.0-xml-template.html#lgl-xml-template-parse-templates-doc"/>
+    <function name="lgl_xml_template_parse_template_node ()" link="libglabels-3.0-xml-template.html#lgl-xml-template-parse-template-node"/>
+    <function name="lgl_xml_template_write_templates_to_file ()" link="libglabels-3.0-xml-template.html#lgl-xml-template-write-templates-to-file"/>
+    <function name="lgl_xml_template_write_template_to_file ()" link="libglabels-3.0-xml-template.html#lgl-xml-template-write-template-to-file"/>
+    <function name="lgl_xml_template_create_template_node ()" link="libglabels-3.0-xml-template.html#lgl-xml-template-create-template-node"/>
+    <function name="lgl_xml_vendor_read_vendors_from_file ()" link="libglabels-3.0-xml-vendor.html#lgl-xml-vendor-read-vendors-from-file"/>
+    <function name="lgl_xml_vendor_parse_vendors_doc ()" link="libglabels-3.0-xml-vendor.html#lgl-xml-vendor-parse-vendors-doc"/>
+    <function name="lgl_xml_vendor_parse_vendor_node ()" link="libglabels-3.0-xml-vendor.html#lgl-xml-vendor-parse-vendor-node"/>
+    <function name="LGL_XML_NAME_SPACE" link="libglabels-3.0-xml.html#LGL-XML-NAME-SPACE:CAPS"/>
+    <function name="lgl_xml_get_prop_string ()" link="libglabels-3.0-xml.html#lgl-xml-get-prop-string"/>
+    <function name="lgl_xml_get_prop_i18n_string ()" link="libglabels-3.0-xml.html#lgl-xml-get-prop-i18n-string"/>
+    <function name="lgl_xml_get_prop_double ()" link="libglabels-3.0-xml.html#lgl-xml-get-prop-double"/>
+    <function name="lgl_xml_get_prop_boolean ()" link="libglabels-3.0-xml.html#lgl-xml-get-prop-boolean"/>
+    <function name="lgl_xml_get_prop_int ()" link="libglabels-3.0-xml.html#lgl-xml-get-prop-int"/>
+    <function name="lgl_xml_get_prop_uint ()" link="libglabels-3.0-xml.html#lgl-xml-get-prop-uint"/>
+    <function name="lgl_xml_get_prop_length ()" link="libglabels-3.0-xml.html#lgl-xml-get-prop-length"/>
+    <function name="lgl_xml_set_prop_string ()" link="libglabels-3.0-xml.html#lgl-xml-set-prop-string"/>
+    <function name="lgl_xml_set_prop_double ()" link="libglabels-3.0-xml.html#lgl-xml-set-prop-double"/>
+    <function name="lgl_xml_set_prop_boolean ()" link="libglabels-3.0-xml.html#lgl-xml-set-prop-boolean"/>
+    <function name="lgl_xml_set_prop_int ()" link="libglabels-3.0-xml.html#lgl-xml-set-prop-int"/>
+    <function name="lgl_xml_set_prop_uint_hex ()" link="libglabels-3.0-xml.html#lgl-xml-set-prop-uint-hex"/>
+    <function name="lgl_xml_set_prop_length ()" link="libglabels-3.0-xml.html#lgl-xml-set-prop-length"/>
+    <function name="lgl_xml_is_node ()" link="libglabels-3.0-xml.html#lgl-xml-is-node"/>
+    <function name="lgl_xml_get_node_content ()" link="libglabels-3.0-xml.html#lgl-xml-get-node-content"/>
+    <function name="lgl_xml_set_default_units ()" link="libglabels-3.0-xml.html#lgl-xml-set-default-units"/>
+    <function name="enum lglUnits" link="libglabels-3.0-units.html#lglUnits"/>
+    <function name="lgl_units_get_id ()" link="libglabels-3.0-units.html#lgl-units-get-id"/>
+    <function name="lgl_units_from_id ()" link="libglabels-3.0-units.html#lgl-units-from-id"/>
+    <function name="lgl_units_get_name ()" link="libglabels-3.0-units.html#lgl-units-get-name"/>
+    <function name="lgl_units_from_name ()" link="libglabels-3.0-units.html#lgl-units-from-name"/>
+    <function name="lgl_units_get_points_per_unit ()" link="libglabels-3.0-units.html#lgl-units-get-points-per-unit"/>
+    <function name="lgl_units_get_units_per_point ()" link="libglabels-3.0-units.html#lgl-units-get-units-per-point"/>
+    <function name="lgl_str_utf8_casecmp ()" link="libglabels-3.0-str.html#lgl-str-utf8-casecmp"/>
+    <function name="lgl_str_part_name_cmp ()" link="libglabels-3.0-str.html#lgl-str-part-name-cmp"/>
+    <function name="lgl_str_format_fraction ()" link="libglabels-3.0-str.html#lgl-str-format-fraction"/>
+  </functions>
+</book>
diff --git a/docs/libglabels/html/libglabels-3.0.devhelp2 b/docs/libglabels/html/libglabels-3.0.devhelp2
new file mode 100644 (file)
index 0000000..33abfc7
--- /dev/null
@@ -0,0 +1,203 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
+<book xmlns="http://www.devhelp.net/book" title="LibGlabels 3.0 Reference Manual" link="index.html" author="" name="libglabels-3.0" version="2" language="c">
+  <chapters>
+    <sub name="Basic LibGlabels Usage" link="ch01.html">
+      <sub name="Database" link="libglabels-3.0-db.html"/>
+      <sub name="The lglTemplate Structure" link="libglabels-3.0-template.html"/>
+      <sub name="The lglPaper Structure" link="libglabels-3.0-paper.html"/>
+      <sub name="The lglCategory Structure" link="libglabels-3.0-category.html"/>
+      <sub name="The lglVendor Structure" link="libglabels-3.0-vendor.html"/>
+    </sub>
+    <sub name="Working Directly With LibGlabels XML" link="ch02.html">
+      <sub name="XML Paper Functions" link="libglabels-3.0-xml-paper.html"/>
+      <sub name="XML Category Functions" link="libglabels-3.0-xml-category.html"/>
+      <sub name="XML Template Functions" link="libglabels-3.0-xml-template.html"/>
+      <sub name="XML Vendor Functions" link="libglabels-3.0-xml-vendor.html"/>
+      <sub name="XML Helper Functions" link="libglabels-3.0-xml.html"/>
+    </sub>
+    <sub name="Miscellaneous" link="ch03.html">
+      <sub name="Units" link="libglabels-3.0-units.html"/>
+      <sub name="String Utility Functions" link="libglabels-3.0-str.html"/>
+    </sub>
+  </chapters>
+  <functions>
+    <keyword type="enum" name="enum lglDbRegStatus" link="libglabels-3.0-db.html#lglDbRegStatus"/>
+    <keyword type="enum" name="enum lglDbDeleteStatus" link="libglabels-3.0-db.html#lglDbDeleteStatus"/>
+    <keyword type="function" name="lgl_db_init ()" link="libglabels-3.0-db.html#lgl-db-init"/>
+    <keyword type="function" name="lglDbNotifyFunc ()" link="libglabels-3.0-db.html#lglDbNotifyFunc"/>
+    <keyword type="function" name="lgl_db_notify_add ()" link="libglabels-3.0-db.html#lgl-db-notify-add"/>
+    <keyword type="function" name="lgl_db_notify_remove ()" link="libglabels-3.0-db.html#lgl-db-notify-remove"/>
+    <keyword type="function" name="lgl_db_get_paper_id_list ()" link="libglabels-3.0-db.html#lgl-db-get-paper-id-list"/>
+    <keyword type="function" name="lgl_db_free_paper_id_list ()" link="libglabels-3.0-db.html#lgl-db-free-paper-id-list"/>
+    <keyword type="function" name="lgl_db_get_paper_name_list ()" link="libglabels-3.0-db.html#lgl-db-get-paper-name-list"/>
+    <keyword type="function" name="lgl_db_free_paper_name_list ()" link="libglabels-3.0-db.html#lgl-db-free-paper-name-list"/>
+    <keyword type="function" name="lgl_db_lookup_paper_from_id ()" link="libglabels-3.0-db.html#lgl-db-lookup-paper-from-id"/>
+    <keyword type="function" name="lgl_db_lookup_paper_from_name ()" link="libglabels-3.0-db.html#lgl-db-lookup-paper-from-name"/>
+    <keyword type="function" name="lgl_db_lookup_paper_id_from_name ()" link="libglabels-3.0-db.html#lgl-db-lookup-paper-id-from-name"/>
+    <keyword type="function" name="lgl_db_lookup_paper_name_from_id ()" link="libglabels-3.0-db.html#lgl-db-lookup-paper-name-from-id"/>
+    <keyword type="function" name="lgl_db_is_paper_id_known ()" link="libglabels-3.0-db.html#lgl-db-is-paper-id-known"/>
+    <keyword type="function" name="lgl_db_is_paper_id_other ()" link="libglabels-3.0-db.html#lgl-db-is-paper-id-other"/>
+    <keyword type="function" name="lgl_db_get_category_id_list ()" link="libglabels-3.0-db.html#lgl-db-get-category-id-list"/>
+    <keyword type="function" name="lgl_db_free_category_id_list ()" link="libglabels-3.0-db.html#lgl-db-free-category-id-list"/>
+    <keyword type="function" name="lgl_db_get_category_name_list ()" link="libglabels-3.0-db.html#lgl-db-get-category-name-list"/>
+    <keyword type="function" name="lgl_db_free_category_name_list ()" link="libglabels-3.0-db.html#lgl-db-free-category-name-list"/>
+    <keyword type="function" name="lgl_db_lookup_category_from_id ()" link="libglabels-3.0-db.html#lgl-db-lookup-category-from-id"/>
+    <keyword type="function" name="lgl_db_lookup_category_from_name ()" link="libglabels-3.0-db.html#lgl-db-lookup-category-from-name"/>
+    <keyword type="function" name="lgl_db_lookup_category_id_from_name ()" link="libglabels-3.0-db.html#lgl-db-lookup-category-id-from-name"/>
+    <keyword type="function" name="lgl_db_lookup_category_name_from_id ()" link="libglabels-3.0-db.html#lgl-db-lookup-category-name-from-id"/>
+    <keyword type="function" name="lgl_db_is_category_id_known ()" link="libglabels-3.0-db.html#lgl-db-is-category-id-known"/>
+    <keyword type="function" name="lgl_db_get_brand_list ()" link="libglabels-3.0-db.html#lgl-db-get-brand-list"/>
+    <keyword type="function" name="lgl_db_free_brand_list ()" link="libglabels-3.0-db.html#lgl-db-free-brand-list"/>
+    <keyword type="function" name="lgl_db_register_template ()" link="libglabels-3.0-db.html#lgl-db-register-template"/>
+    <keyword type="function" name="lgl_db_delete_template_by_brand_part ()" link="libglabels-3.0-db.html#lgl-db-delete-template-by-brand-part"/>
+    <keyword type="function" name="lgl_db_delete_template_by_name ()" link="libglabels-3.0-db.html#lgl-db-delete-template-by-name"/>
+    <keyword type="function" name="lgl_db_does_template_exist ()" link="libglabels-3.0-db.html#lgl-db-does-template-exist"/>
+    <keyword type="function" name="lgl_db_does_template_name_exist ()" link="libglabels-3.0-db.html#lgl-db-does-template-name-exist"/>
+    <keyword type="function" name="lgl_db_get_template_name_list_all ()" link="libglabels-3.0-db.html#lgl-db-get-template-name-list-all"/>
+    <keyword type="function" name="lgl_db_get_similar_template_name_list ()" link="libglabels-3.0-db.html#lgl-db-get-similar-template-name-list"/>
+    <keyword type="function" name="lgl_db_free_template_name_list ()" link="libglabels-3.0-db.html#lgl-db-free-template-name-list"/>
+    <keyword type="function" name="lgl_db_lookup_template_from_name ()" link="libglabels-3.0-db.html#lgl-db-lookup-template-from-name"/>
+    <keyword type="function" name="lgl_db_lookup_template_from_brand_part ()" link="libglabels-3.0-db.html#lgl-db-lookup-template-from-brand-part"/>
+    <keyword type="function" name="lgl_db_get_vendor_name_list ()" link="libglabels-3.0-db.html#lgl-db-get-vendor-name-list"/>
+    <keyword type="function" name="lgl_db_free_vendor_name_list ()" link="libglabels-3.0-db.html#lgl-db-free-vendor-name-list"/>
+    <keyword type="function" name="lgl_db_is_vendor_name_known ()" link="libglabels-3.0-db.html#lgl-db-is-vendor-name-known"/>
+    <keyword type="function" name="lgl_db_lookup_vendor_from_name ()" link="libglabels-3.0-db.html#lgl-db-lookup-vendor-from-name"/>
+    <keyword type="function" name="lgl_db_print_known_papers ()" link="libglabels-3.0-db.html#lgl-db-print-known-papers"/>
+    <keyword type="function" name="lgl_db_print_known_categories ()" link="libglabels-3.0-db.html#lgl-db-print-known-categories"/>
+    <keyword type="function" name="lgl_db_print_known_templates ()" link="libglabels-3.0-db.html#lgl-db-print-known-templates"/>
+    <keyword type="function" name="lgl_db_print_known_vendors ()" link="libglabels-3.0-db.html#lgl-db-print-known-vendors"/>
+    <keyword type="struct" name="struct lglTemplate" link="libglabels-3.0-template.html#lglTemplate"/>
+    <keyword type="enum" name="enum lglTemplateFrameShape" link="libglabels-3.0-template.html#lglTemplateFrameShape"/>
+    <keyword type="union" name="union lglTemplateFrame" link="libglabels-3.0-template.html#lglTemplateFrame"/>
+    <keyword type="struct" name="struct lglTemplateFrameAll" link="libglabels-3.0-template.html#lglTemplateFrameAll"/>
+    <keyword type="struct" name="struct lglTemplateFrameRect" link="libglabels-3.0-template.html#lglTemplateFrameRect"/>
+    <keyword type="struct" name="struct lglTemplateFrameEllipse" link="libglabels-3.0-template.html#lglTemplateFrameEllipse"/>
+    <keyword type="struct" name="struct lglTemplateFrameRound" link="libglabels-3.0-template.html#lglTemplateFrameRound"/>
+    <keyword type="struct" name="struct lglTemplateFrameCD" link="libglabels-3.0-template.html#lglTemplateFrameCD"/>
+    <keyword type="struct" name="struct lglTemplateLayout" link="libglabels-3.0-template.html#lglTemplateLayout"/>
+    <keyword type="enum" name="enum lglTemplateMarkupType" link="libglabels-3.0-template.html#lglTemplateMarkupType"/>
+    <keyword type="union" name="union lglTemplateMarkup" link="libglabels-3.0-template.html#lglTemplateMarkup"/>
+    <keyword type="struct" name="struct lglTemplateMarkupMargin" link="libglabels-3.0-template.html#lglTemplateMarkupMargin"/>
+    <keyword type="struct" name="struct lglTemplateMarkupLine" link="libglabels-3.0-template.html#lglTemplateMarkupLine"/>
+    <keyword type="struct" name="struct lglTemplateMarkupCircle" link="libglabels-3.0-template.html#lglTemplateMarkupCircle"/>
+    <keyword type="struct" name="struct lglTemplateMarkupRect" link="libglabels-3.0-template.html#lglTemplateMarkupRect"/>
+    <keyword type="struct" name="struct lglTemplateMarkupEllipse" link="libglabels-3.0-template.html#lglTemplateMarkupEllipse"/>
+    <keyword type="struct" name="struct lglTemplateOrigin" link="libglabels-3.0-template.html#lglTemplateOrigin"/>
+    <keyword type="function" name="lgl_template_new ()" link="libglabels-3.0-template.html#lgl-template-new"/>
+    <keyword type="function" name="lgl_template_new_from_equiv ()" link="libglabels-3.0-template.html#lgl-template-new-from-equiv"/>
+    <keyword type="function" name="lgl_template_dup ()" link="libglabels-3.0-template.html#lgl-template-dup"/>
+    <keyword type="function" name="lgl_template_free ()" link="libglabels-3.0-template.html#lgl-template-free"/>
+    <keyword type="function" name="lgl_template_add_category ()" link="libglabels-3.0-template.html#lgl-template-add-category"/>
+    <keyword type="function" name="lgl_template_add_frame ()" link="libglabels-3.0-template.html#lgl-template-add-frame"/>
+    <keyword type="function" name="lgl_template_get_name ()" link="libglabels-3.0-template.html#lgl-template-get-name"/>
+    <keyword type="function" name="lgl_template_do_templates_match ()" link="libglabels-3.0-template.html#lgl-template-do-templates-match"/>
+    <keyword type="function" name="lgl_template_does_brand_match ()" link="libglabels-3.0-template.html#lgl-template-does-brand-match"/>
+    <keyword type="function" name="lgl_template_does_page_size_match ()" link="libglabels-3.0-template.html#lgl-template-does-page-size-match"/>
+    <keyword type="function" name="lgl_template_does_category_match ()" link="libglabels-3.0-template.html#lgl-template-does-category-match"/>
+    <keyword type="function" name="lgl_template_are_templates_identical ()" link="libglabels-3.0-template.html#lgl-template-are-templates-identical"/>
+    <keyword type="function" name="lgl_template_frame_rect_new ()" link="libglabels-3.0-template.html#lgl-template-frame-rect-new"/>
+    <keyword type="function" name="lgl_template_frame_ellipse_new ()" link="libglabels-3.0-template.html#lgl-template-frame-ellipse-new"/>
+    <keyword type="function" name="lgl_template_frame_round_new ()" link="libglabels-3.0-template.html#lgl-template-frame-round-new"/>
+    <keyword type="function" name="lgl_template_frame_cd_new ()" link="libglabels-3.0-template.html#lgl-template-frame-cd-new"/>
+    <keyword type="function" name="lgl_template_frame_dup ()" link="libglabels-3.0-template.html#lgl-template-frame-dup"/>
+    <keyword type="function" name="lgl_template_frame_free ()" link="libglabels-3.0-template.html#lgl-template-frame-free"/>
+    <keyword type="function" name="lgl_template_frame_add_layout ()" link="libglabels-3.0-template.html#lgl-template-frame-add-layout"/>
+    <keyword type="function" name="lgl_template_frame_add_markup ()" link="libglabels-3.0-template.html#lgl-template-frame-add-markup"/>
+    <keyword type="function" name="lgl_template_frame_get_size ()" link="libglabels-3.0-template.html#lgl-template-frame-get-size"/>
+    <keyword type="function" name="lgl_template_frame_get_n_labels ()" link="libglabels-3.0-template.html#lgl-template-frame-get-n-labels"/>
+    <keyword type="function" name="lgl_template_frame_get_origins ()" link="libglabels-3.0-template.html#lgl-template-frame-get-origins"/>
+    <keyword type="function" name="lgl_template_frame_get_layout_description ()" link="libglabels-3.0-template.html#lgl-template-frame-get-layout-description"/>
+    <keyword type="function" name="lgl_template_frame_get_size_description ()" link="libglabels-3.0-template.html#lgl-template-frame-get-size-description"/>
+    <keyword type="function" name="lgl_template_layout_new ()" link="libglabels-3.0-template.html#lgl-template-layout-new"/>
+    <keyword type="function" name="lgl_template_layout_dup ()" link="libglabels-3.0-template.html#lgl-template-layout-dup"/>
+    <keyword type="function" name="lgl_template_layout_free ()" link="libglabels-3.0-template.html#lgl-template-layout-free"/>
+    <keyword type="function" name="lgl_template_markup_margin_new ()" link="libglabels-3.0-template.html#lgl-template-markup-margin-new"/>
+    <keyword type="function" name="lgl_template_markup_line_new ()" link="libglabels-3.0-template.html#lgl-template-markup-line-new"/>
+    <keyword type="function" name="lgl_template_markup_circle_new ()" link="libglabels-3.0-template.html#lgl-template-markup-circle-new"/>
+    <keyword type="function" name="lgl_template_markup_rect_new ()" link="libglabels-3.0-template.html#lgl-template-markup-rect-new"/>
+    <keyword type="function" name="lgl_template_markup_ellipse_new ()" link="libglabels-3.0-template.html#lgl-template-markup-ellipse-new"/>
+    <keyword type="function" name="lgl_template_markup_dup ()" link="libglabels-3.0-template.html#lgl-template-markup-dup"/>
+    <keyword type="function" name="lgl_template_markup_free ()" link="libglabels-3.0-template.html#lgl-template-markup-free"/>
+    <keyword type="function" name="lgl_template_print ()" link="libglabels-3.0-template.html#lgl-template-print"/>
+    <keyword type="struct" name="struct lglPaper" link="libglabels-3.0-paper.html#lglPaper"/>
+    <keyword type="function" name="lgl_paper_new ()" link="libglabels-3.0-paper.html#lgl-paper-new"/>
+    <keyword type="function" name="lgl_paper_dup ()" link="libglabels-3.0-paper.html#lgl-paper-dup"/>
+    <keyword type="function" name="lgl_paper_free ()" link="libglabels-3.0-paper.html#lgl-paper-free"/>
+    <keyword type="struct" name="struct lglCategory" link="libglabels-3.0-category.html#lglCategory"/>
+    <keyword type="function" name="lgl_category_new ()" link="libglabels-3.0-category.html#lgl-category-new"/>
+    <keyword type="function" name="lgl_category_dup ()" link="libglabels-3.0-category.html#lgl-category-dup"/>
+    <keyword type="function" name="lgl_category_free ()" link="libglabels-3.0-category.html#lgl-category-free"/>
+    <keyword type="struct" name="struct lglVendor" link="libglabels-3.0-vendor.html#lglVendor"/>
+    <keyword type="function" name="lgl_vendor_new ()" link="libglabels-3.0-vendor.html#lgl-vendor-new"/>
+    <keyword type="function" name="lgl_vendor_dup ()" link="libglabels-3.0-vendor.html#lgl-vendor-dup"/>
+    <keyword type="function" name="lgl_vendor_free ()" link="libglabels-3.0-vendor.html#lgl-vendor-free"/>
+    <keyword type="function" name="lgl_xml_paper_read_papers_from_file ()" link="libglabels-3.0-xml-paper.html#lgl-xml-paper-read-papers-from-file"/>
+    <keyword type="function" name="lgl_xml_paper_parse_papers_doc ()" link="libglabels-3.0-xml-paper.html#lgl-xml-paper-parse-papers-doc"/>
+    <keyword type="function" name="lgl_xml_paper_parse_paper_node ()" link="libglabels-3.0-xml-paper.html#lgl-xml-paper-parse-paper-node"/>
+    <keyword type="function" name="lgl_xml_category_read_categories_from_file ()" link="libglabels-3.0-xml-category.html#lgl-xml-category-read-categories-from-file"/>
+    <keyword type="function" name="lgl_xml_category_parse_categories_doc ()" link="libglabels-3.0-xml-category.html#lgl-xml-category-parse-categories-doc"/>
+    <keyword type="function" name="lgl_xml_category_parse_category_node ()" link="libglabels-3.0-xml-category.html#lgl-xml-category-parse-category-node"/>
+    <keyword type="function" name="lgl_xml_template_read_templates_from_file ()" link="libglabels-3.0-xml-template.html#lgl-xml-template-read-templates-from-file"/>
+    <keyword type="function" name="lgl_xml_template_parse_templates_doc ()" link="libglabels-3.0-xml-template.html#lgl-xml-template-parse-templates-doc"/>
+    <keyword type="function" name="lgl_xml_template_parse_template_node ()" link="libglabels-3.0-xml-template.html#lgl-xml-template-parse-template-node"/>
+    <keyword type="function" name="lgl_xml_template_write_templates_to_file ()" link="libglabels-3.0-xml-template.html#lgl-xml-template-write-templates-to-file"/>
+    <keyword type="function" name="lgl_xml_template_write_template_to_file ()" link="libglabels-3.0-xml-template.html#lgl-xml-template-write-template-to-file"/>
+    <keyword type="function" name="lgl_xml_template_create_template_node ()" link="libglabels-3.0-xml-template.html#lgl-xml-template-create-template-node"/>
+    <keyword type="function" name="lgl_xml_vendor_read_vendors_from_file ()" link="libglabels-3.0-xml-vendor.html#lgl-xml-vendor-read-vendors-from-file"/>
+    <keyword type="function" name="lgl_xml_vendor_parse_vendors_doc ()" link="libglabels-3.0-xml-vendor.html#lgl-xml-vendor-parse-vendors-doc"/>
+    <keyword type="function" name="lgl_xml_vendor_parse_vendor_node ()" link="libglabels-3.0-xml-vendor.html#lgl-xml-vendor-parse-vendor-node"/>
+    <keyword type="macro" name="LGL_XML_NAME_SPACE" link="libglabels-3.0-xml.html#LGL-XML-NAME-SPACE:CAPS"/>
+    <keyword type="function" name="lgl_xml_get_prop_string ()" link="libglabels-3.0-xml.html#lgl-xml-get-prop-string"/>
+    <keyword type="function" name="lgl_xml_get_prop_i18n_string ()" link="libglabels-3.0-xml.html#lgl-xml-get-prop-i18n-string"/>
+    <keyword type="function" name="lgl_xml_get_prop_double ()" link="libglabels-3.0-xml.html#lgl-xml-get-prop-double"/>
+    <keyword type="function" name="lgl_xml_get_prop_boolean ()" link="libglabels-3.0-xml.html#lgl-xml-get-prop-boolean"/>
+    <keyword type="function" name="lgl_xml_get_prop_int ()" link="libglabels-3.0-xml.html#lgl-xml-get-prop-int"/>
+    <keyword type="function" name="lgl_xml_get_prop_uint ()" link="libglabels-3.0-xml.html#lgl-xml-get-prop-uint"/>
+    <keyword type="function" name="lgl_xml_get_prop_length ()" link="libglabels-3.0-xml.html#lgl-xml-get-prop-length"/>
+    <keyword type="function" name="lgl_xml_set_prop_string ()" link="libglabels-3.0-xml.html#lgl-xml-set-prop-string"/>
+    <keyword type="function" name="lgl_xml_set_prop_double ()" link="libglabels-3.0-xml.html#lgl-xml-set-prop-double"/>
+    <keyword type="function" name="lgl_xml_set_prop_boolean ()" link="libglabels-3.0-xml.html#lgl-xml-set-prop-boolean"/>
+    <keyword type="function" name="lgl_xml_set_prop_int ()" link="libglabels-3.0-xml.html#lgl-xml-set-prop-int"/>
+    <keyword type="function" name="lgl_xml_set_prop_uint_hex ()" link="libglabels-3.0-xml.html#lgl-xml-set-prop-uint-hex"/>
+    <keyword type="function" name="lgl_xml_set_prop_length ()" link="libglabels-3.0-xml.html#lgl-xml-set-prop-length"/>
+    <keyword type="function" name="lgl_xml_is_node ()" link="libglabels-3.0-xml.html#lgl-xml-is-node"/>
+    <keyword type="function" name="lgl_xml_get_node_content ()" link="libglabels-3.0-xml.html#lgl-xml-get-node-content"/>
+    <keyword type="function" name="lgl_xml_set_default_units ()" link="libglabels-3.0-xml.html#lgl-xml-set-default-units"/>
+    <keyword type="enum" name="enum lglUnits" link="libglabels-3.0-units.html#lglUnits"/>
+    <keyword type="function" name="lgl_units_get_id ()" link="libglabels-3.0-units.html#lgl-units-get-id"/>
+    <keyword type="function" name="lgl_units_from_id ()" link="libglabels-3.0-units.html#lgl-units-from-id"/>
+    <keyword type="function" name="lgl_units_get_name ()" link="libglabels-3.0-units.html#lgl-units-get-name"/>
+    <keyword type="function" name="lgl_units_from_name ()" link="libglabels-3.0-units.html#lgl-units-from-name"/>
+    <keyword type="function" name="lgl_units_get_points_per_unit ()" link="libglabels-3.0-units.html#lgl-units-get-points-per-unit"/>
+    <keyword type="function" name="lgl_units_get_units_per_point ()" link="libglabels-3.0-units.html#lgl-units-get-units-per-point"/>
+    <keyword type="function" name="lgl_str_utf8_casecmp ()" link="libglabels-3.0-str.html#lgl-str-utf8-casecmp"/>
+    <keyword type="function" name="lgl_str_part_name_cmp ()" link="libglabels-3.0-str.html#lgl-str-part-name-cmp"/>
+    <keyword type="function" name="lgl_str_format_fraction ()" link="libglabels-3.0-str.html#lgl-str-format-fraction"/>
+    <keyword type="constant" name="LGL_DB_REG_OK" link="libglabels-3.0-db.html#LGL-DB-REG-OK:CAPS"/>
+    <keyword type="constant" name="LGL_DB_REG_BAD_PAPER_ID" link="libglabels-3.0-db.html#LGL-DB-REG-BAD-PAPER-ID:CAPS"/>
+    <keyword type="constant" name="LGL_DB_REG_BRAND_PART_EXISTS" link="libglabels-3.0-db.html#LGL-DB-REG-BRAND-PART-EXISTS:CAPS"/>
+    <keyword type="constant" name="LGL_DB_REG_FILE_WRITE_ERROR" link="libglabels-3.0-db.html#LGL-DB-REG-FILE-WRITE-ERROR:CAPS"/>
+    <keyword type="constant" name="LGL_DB_DELETE_OK" link="libglabels-3.0-db.html#LGL-DB-DELETE-OK:CAPS"/>
+    <keyword type="constant" name="LGL_DB_DELETE_DOES_NOT_EXIST" link="libglabels-3.0-db.html#LGL-DB-DELETE-DOES-NOT-EXIST:CAPS"/>
+    <keyword type="constant" name="LGL_DB_DELETE_NOT_USER_DEFINED" link="libglabels-3.0-db.html#LGL-DB-DELETE-NOT-USER-DEFINED:CAPS"/>
+    <keyword type="constant" name="LGL_DB_DELETE_FILE_ERROR" link="libglabels-3.0-db.html#LGL-DB-DELETE-FILE-ERROR:CAPS"/>
+    <keyword type="constant" name="LGL_TEMPLATE_FRAME_SHAPE_RECT" link="libglabels-3.0-template.html#LGL-TEMPLATE-FRAME-SHAPE-RECT:CAPS"/>
+    <keyword type="constant" name="LGL_TEMPLATE_FRAME_SHAPE_ELLIPSE" link="libglabels-3.0-template.html#LGL-TEMPLATE-FRAME-SHAPE-ELLIPSE:CAPS"/>
+    <keyword type="constant" name="LGL_TEMPLATE_FRAME_SHAPE_ROUND" link="libglabels-3.0-template.html#LGL-TEMPLATE-FRAME-SHAPE-ROUND:CAPS"/>
+    <keyword type="constant" name="LGL_TEMPLATE_FRAME_SHAPE_CD" link="libglabels-3.0-template.html#LGL-TEMPLATE-FRAME-SHAPE-CD:CAPS"/>
+    <keyword type="constant" name="LGL_TEMPLATE_MARKUP_MARGIN" link="libglabels-3.0-template.html#LGL-TEMPLATE-MARKUP-MARGIN:CAPS"/>
+    <keyword type="constant" name="LGL_TEMPLATE_MARKUP_LINE" link="libglabels-3.0-template.html#LGL-TEMPLATE-MARKUP-LINE:CAPS"/>
+    <keyword type="constant" name="LGL_TEMPLATE_MARKUP_CIRCLE" link="libglabels-3.0-template.html#LGL-TEMPLATE-MARKUP-CIRCLE:CAPS"/>
+    <keyword type="constant" name="LGL_TEMPLATE_MARKUP_RECT" link="libglabels-3.0-template.html#LGL-TEMPLATE-MARKUP-RECT:CAPS"/>
+    <keyword type="constant" name="LGL_TEMPLATE_MARKUP_ELLIPSE" link="libglabels-3.0-template.html#LGL-TEMPLATE-MARKUP-ELLIPSE:CAPS"/>
+    <keyword type="constant" name="LGL_UNITS_POINT" link="libglabels-3.0-units.html#LGL-UNITS-POINT:CAPS"/>
+    <keyword type="constant" name="LGL_UNITS_INCH" link="libglabels-3.0-units.html#LGL-UNITS-INCH:CAPS"/>
+    <keyword type="constant" name="LGL_UNITS_MM" link="libglabels-3.0-units.html#LGL-UNITS-MM:CAPS"/>
+    <keyword type="constant" name="LGL_UNITS_CM" link="libglabels-3.0-units.html#LGL-UNITS-CM:CAPS"/>
+    <keyword type="constant" name="LGL_UNITS_PICA" link="libglabels-3.0-units.html#LGL-UNITS-PICA:CAPS"/>
+    <keyword type="constant" name="LGL_UNITS_FIRST" link="libglabels-3.0-units.html#LGL-UNITS-FIRST:CAPS"/>
+    <keyword type="constant" name="LGL_UNITS_LAST" link="libglabels-3.0-units.html#LGL-UNITS-LAST:CAPS"/>
+    <keyword type="constant" name="LGL_UNITS_INVALID" link="libglabels-3.0-units.html#LGL-UNITS-INVALID:CAPS"/>
+  </functions>
+</book>
diff --git a/docs/libglabels/html/libglabels-category.html b/docs/libglabels/html/libglabels-category.html
deleted file mode 100644 (file)
index 3725ff5..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>The lglCategory Structure</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="LibGlabels Reference Manual">
-<link rel="up" href="ch01.html" title="Basic LibGlabels Usage">
-<link rel="prev" href="libglabels-paper.html" title="The lglPaper Structure">
-<link rel="next" href="ch02.html" title="Working Directly With LibGlabels XML">
-<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-<link rel="chapter" href="ch01.html" title="Basic LibGlabels Usage">
-<link rel="chapter" href="ch02.html" title="Working Directly With LibGlabels XML">
-<link rel="chapter" href="ch03.html" title="Miscellaneous">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="libglabels-paper.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">LibGlabels Reference Manual</th>
-<td><a accesskey="n" href="ch02.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#libglabels-category.synopsis" class="shortcut">Top</a>
-                 | 
-                <a href="#libglabels-category.description" class="shortcut">Description</a>
-</td></tr>
-</table>
-<div class="refentry" title="The lglCategory Structure">
-<a name="libglabels-category"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="libglabels-category.top_of_page"></a>The lglCategory Structure</span></h2>
-<p>The lglCategory Structure — Template category definitions</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv" title="Synopsis">
-<a name="libglabels-category.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-
-#include &lt;libglabels/category.h&gt;
-
-                    <a class="link" href="libglabels-category.html#lglCategory" title="lglCategory">lglCategory</a>;
-<a class="link" href="libglabels-category.html#lglCategory" title="lglCategory">lglCategory</a> *       <a class="link" href="libglabels-category.html#lgl-category-new" title="lgl_category_new ()">lgl_category_new</a>                    (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *id,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *name);
-<a class="link" href="libglabels-category.html#lglCategory" title="lglCategory">lglCategory</a> *       <a class="link" href="libglabels-category.html#lgl-category-dup" title="lgl_category_dup ()">lgl_category_dup</a>                    (const <a class="link" href="libglabels-category.html#lglCategory" title="lglCategory">lglCategory</a> *orig);
-void                <a class="link" href="libglabels-category.html#lgl-category-free" title="lgl_category_free ()">lgl_category_free</a>                   (<a class="link" href="libglabels-category.html#lglCategory" title="lglCategory">lglCategory</a> *category);
-</pre>
-</div>
-<div class="refsect1" title="Description">
-<a name="libglabels-category.description"></a><h2>Description</h2>
-<p>
-This section describes a structure for representing a category of stationary and related
-functions.
-</p>
-</div>
-<div class="refsect1" title="Details">
-<a name="libglabels-category.details"></a><h2>Details</h2>
-<div class="refsect2" title="lglCategory">
-<a name="lglCategory"></a><h3>lglCategory</h3>
-<pre class="programlisting">typedef struct {
-       gchar               *id;     /* Unique ID of category */
-       gchar               *name;   /* Localized name of category */
-} lglCategory;
-</pre>
-<p>
-This structure defines a category.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *<em class="structfield"><code>id</code></em>;</span></p></td>
-<td>Category ID.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *<em class="structfield"><code>name</code></em>;</span></p></td>
-<td>Localized category name.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_category_new ()">
-<a name="lgl-category-new"></a><h3>lgl_category_new ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-category.html#lglCategory" title="lglCategory">lglCategory</a> *       lgl_category_new                    (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *id,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *name);</pre>
-<p>
-Allocates and constructs a new <a class="link" href="libglabels-category.html#lglCategory" title="lglCategory"><span class="type">lglCategory</span></a> structure.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td>     Id of category definition. (E.g. label, card, etc.)  Should be
-         unique.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
-<td>   Localized name of category.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a pointer to a newly allocated <a class="link" href="libglabels-category.html#lglCategory" title="lglCategory"><span class="type">lglCategory</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_category_dup ()">
-<a name="lgl-category-dup"></a><h3>lgl_category_dup ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-category.html#lglCategory" title="lglCategory">lglCategory</a> *       lgl_category_dup                    (const <a class="link" href="libglabels-category.html#lglCategory" title="lglCategory">lglCategory</a> *orig);</pre>
-<p>
-Duplicates an existing <a class="link" href="libglabels-category.html#lglCategory" title="lglCategory"><span class="type">lglCategory</span></a> structure.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>orig</code></em> :</span></p></td>
-<td>  <a class="link" href="libglabels-category.html#lglCategory" title="lglCategory"><span class="type">lglCategory</span></a> structure to be duplicated.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a pointer to a newly allocated <a class="link" href="libglabels-category.html#lglCategory" title="lglCategory"><span class="type">lglCategory</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_category_free ()">
-<a name="lgl-category-free"></a><h3>lgl_category_free ()</h3>
-<pre class="programlisting">void                lgl_category_free                   (<a class="link" href="libglabels-category.html#lglCategory" title="lglCategory">lglCategory</a> *category);</pre>
-<p>
-Free all memory associated with an existing <a class="link" href="libglabels-category.html#lglCategory" title="lglCategory"><span class="type">lglCategory</span></a> structure.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>category</code></em> :</span></p></td>
-<td>  pointer to <a class="link" href="libglabels-category.html#lglCategory" title="lglCategory"><span class="type">lglCategory</span></a> structure to be freed.
-</td>
-</tr></tbody>
-</table></div>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
-          Generated by GTK-Doc V1.11</div>
-</body>
-</html>
diff --git a/docs/libglabels/html/libglabels-db.html b/docs/libglabels/html/libglabels-db.html
deleted file mode 100644 (file)
index e221080..0000000
+++ /dev/null
@@ -1,1073 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Database</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="LibGlabels Reference Manual">
-<link rel="up" href="ch01.html" title="Basic LibGlabels Usage">
-<link rel="prev" href="ch01.html" title="Basic LibGlabels Usage">
-<link rel="next" href="libglabels-template.html" title="The lglTemplate Structure">
-<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-<link rel="chapter" href="ch01.html" title="Basic LibGlabels Usage">
-<link rel="chapter" href="ch02.html" title="Working Directly With LibGlabels XML">
-<link rel="chapter" href="ch03.html" title="Miscellaneous">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="ch01.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">LibGlabels Reference Manual</th>
-<td><a accesskey="n" href="libglabels-template.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#libglabels-db.synopsis" class="shortcut">Top</a>
-                 | 
-                <a href="#libglabels-db.description" class="shortcut">Description</a>
-</td></tr>
-</table>
-<div class="refentry" title="Database">
-<a name="libglabels-db"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="libglabels-db.top_of_page"></a>Database</span></h2>
-<p>Database — Database of pre-defined templates</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv" title="Synopsis">
-<a name="libglabels-db.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-
-#include &lt;libglabels/db.h&gt;
-
-enum                <a class="link" href="libglabels-db.html#lglDbRegStatus" title="enum lglDbRegStatus">lglDbRegStatus</a>;
-
-void                <a class="link" href="libglabels-db.html#lgl-db-init" title="lgl_db_init ()">lgl_db_init</a>                         (void);
-
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             <a class="link" href="libglabels-db.html#lgl-db-get-paper-id-list" title="lgl_db_get_paper_id_list ()">lgl_db_get_paper_id_list</a>            (void);
-void                <a class="link" href="libglabels-db.html#lgl-db-free-paper-id-list" title="lgl_db_free_paper_id_list ()">lgl_db_free_paper_id_list</a>           (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *ids);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             <a class="link" href="libglabels-db.html#lgl-db-get-paper-name-list" title="lgl_db_get_paper_name_list ()">lgl_db_get_paper_name_list</a>          (void);
-void                <a class="link" href="libglabels-db.html#lgl-db-free-paper-name-list" title="lgl_db_free_paper_name_list ()">lgl_db_free_paper_name_list</a>         (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *names);
-<a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper">lglPaper</a> *          <a class="link" href="libglabels-db.html#lgl-db-lookup-paper-from-id" title="lgl_db_lookup_paper_from_id ()">lgl_db_lookup_paper_from_id</a>         (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *id);
-<a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper">lglPaper</a> *          <a class="link" href="libglabels-db.html#lgl-db-lookup-paper-from-name" title="lgl_db_lookup_paper_from_name ()">lgl_db_lookup_paper_from_name</a>       (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *name);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *             <a class="link" href="libglabels-db.html#lgl-db-lookup-paper-id-from-name" title="lgl_db_lookup_paper_id_from_name ()">lgl_db_lookup_paper_id_from_name</a>    (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *name);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *             <a class="link" href="libglabels-db.html#lgl-db-lookup-paper-name-from-id" title="lgl_db_lookup_paper_name_from_id ()">lgl_db_lookup_paper_name_from_id</a>    (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *id);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a>            <a class="link" href="libglabels-db.html#lgl-db-is-paper-id-known" title="lgl_db_is_paper_id_known ()">lgl_db_is_paper_id_known</a>            (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *id);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a>            <a class="link" href="libglabels-db.html#lgl-db-is-paper-id-other" title="lgl_db_is_paper_id_other ()">lgl_db_is_paper_id_other</a>            (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *id);
-
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             <a class="link" href="libglabels-db.html#lgl-db-get-category-id-list" title="lgl_db_get_category_id_list ()">lgl_db_get_category_id_list</a>         (void);
-void                <a class="link" href="libglabels-db.html#lgl-db-free-category-id-list" title="lgl_db_free_category_id_list ()">lgl_db_free_category_id_list</a>        (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *ids);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             <a class="link" href="libglabels-db.html#lgl-db-get-category-name-list" title="lgl_db_get_category_name_list ()">lgl_db_get_category_name_list</a>       (void);
-void                <a class="link" href="libglabels-db.html#lgl-db-free-category-name-list" title="lgl_db_free_category_name_list ()">lgl_db_free_category_name_list</a>      (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *names);
-<a class="link" href="libglabels-category.html#lglCategory" title="lglCategory">lglCategory</a> *       <a class="link" href="libglabels-db.html#lgl-db-lookup-category-from-id" title="lgl_db_lookup_category_from_id ()">lgl_db_lookup_category_from_id</a>      (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *id);
-<a class="link" href="libglabels-category.html#lglCategory" title="lglCategory">lglCategory</a> *       <a class="link" href="libglabels-db.html#lgl-db-lookup-category-from-name" title="lgl_db_lookup_category_from_name ()">lgl_db_lookup_category_from_name</a>    (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *name);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *             <a class="link" href="libglabels-db.html#lgl-db-lookup-category-id-from-name" title="lgl_db_lookup_category_id_from_name ()">lgl_db_lookup_category_id_from_name</a> (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *name);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *             <a class="link" href="libglabels-db.html#lgl-db-lookup-category-name-from-id" title="lgl_db_lookup_category_name_from_id ()">lgl_db_lookup_category_name_from_id</a> (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *id);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a>            <a class="link" href="libglabels-db.html#lgl-db-is-category-id-known" title="lgl_db_is_category_id_known ()">lgl_db_is_category_id_known</a>         (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *id);
-
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             <a class="link" href="libglabels-db.html#lgl-db-get-brand-list" title="lgl_db_get_brand_list ()">lgl_db_get_brand_list</a>               (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *paper_id,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *category_id);
-void                <a class="link" href="libglabels-db.html#lgl-db-free-brand-list" title="lgl_db_free_brand_list ()">lgl_db_free_brand_list</a>              (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *brands);
-
-<a class="link" href="libglabels-db.html#lglDbRegStatus" title="enum lglDbRegStatus">lglDbRegStatus</a>      <a class="link" href="libglabels-db.html#lgl-db-register-template" title="lgl_db_register_template ()">lgl_db_register_template</a>            (const <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a>            <a class="link" href="libglabels-db.html#lgl-db-does-template-exist" title="lgl_db_does_template_exist ()">lgl_db_does_template_exist</a>          (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *brand,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *part);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a>            <a class="link" href="libglabels-db.html#lgl-db-does-template-name-exist" title="lgl_db_does_template_name_exist ()">lgl_db_does_template_name_exist</a>     (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *name);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             <a class="link" href="libglabels-db.html#lgl-db-get-template-name-list-unique" title="lgl_db_get_template_name_list_unique ()">lgl_db_get_template_name_list_unique</a>
-                                                        (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *brand,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *paper_id,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *category_id);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             <a class="link" href="libglabels-db.html#lgl-db-get-template-name-list-all" title="lgl_db_get_template_name_list_all ()">lgl_db_get_template_name_list_all</a>   (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *brand,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *paper_id,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *category_id);
-void                <a class="link" href="libglabels-db.html#lgl-db-free-template-name-list" title="lgl_db_free_template_name_list ()">lgl_db_free_template_name_list</a>      (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *names);
-<a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *       <a class="link" href="libglabels-db.html#lgl-db-lookup-template-from-name" title="lgl_db_lookup_template_from_name ()">lgl_db_lookup_template_from_name</a>    (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *name);
-
-void                <a class="link" href="libglabels-db.html#lgl-db-print-known-papers" title="lgl_db_print_known_papers ()">lgl_db_print_known_papers</a>           (void);
-void                <a class="link" href="libglabels-db.html#lgl-db-print-known-categories" title="lgl_db_print_known_categories ()">lgl_db_print_known_categories</a>       (void);
-void                <a class="link" href="libglabels-db.html#lgl-db-print-known-templates" title="lgl_db_print_known_templates ()">lgl_db_print_known_templates</a>        (void);
-void                <a class="link" href="libglabels-db.html#lgl-db-print-aliases" title="lgl_db_print_aliases ()">lgl_db_print_aliases</a>                (const <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template);
-</pre>
-</div>
-<div class="refsect1" title="Description">
-<a name="libglabels-db.description"></a><h2>Description</h2>
-<p>
-This section describes a set of functions to locate and add templates and related information in
-the LibGlabels template database.
-</p>
-</div>
-<div class="refsect1" title="Details">
-<a name="libglabels-db.details"></a><h2>Details</h2>
-<div class="refsect2" title="enum lglDbRegStatus">
-<a name="lglDbRegStatus"></a><h3>enum lglDbRegStatus</h3>
-<pre class="programlisting">typedef enum
-{
-        LGL_DB_REG_OK                =  0,
-        LGL_DB_REG_BAD_PAPER_ID      = -1,
-        LGL_DB_REG_BRAND_PART_EXISTS = -2,
-        LGL_DB_REG_FILE_WRITE_ERROR  = -3
-} lglDbRegStatus;
-</pre>
-<p>
-This enumeration defines a set of possible return values for <a class="link" href="libglabels-db.html#lgl-db-register-template" title="lgl_db_register_template ()"><code class="function">lgl_db_register_template()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="LGL-DB-REG-OK--CAPS"></a><span class="term"><code class="literal">LGL_DB_REG_OK</code></span></p></td>
-<td>Registration successful.
-</td>
-</tr>
-<tr>
-<td><p><a name="LGL-DB-REG-BAD-PAPER-ID--CAPS"></a><span class="term"><code class="literal">LGL_DB_REG_BAD_PAPER_ID</code></span></p></td>
-<td> Registration failed because paper id is unknown.
-</td>
-</tr>
-<tr>
-<td><p><a name="LGL-DB-REG-BRAND-PART-EXISTS--CAPS"></a><span class="term"><code class="literal">LGL_DB_REG_BRAND_PART_EXISTS</code></span></p></td>
-<td>Registration failed because template with same brand and part name/number already exists.
-</td>
-</tr>
-<tr>
-<td><p><a name="LGL-DB-REG-FILE-WRITE-ERROR--CAPS"></a><span class="term"><code class="literal">LGL_DB_REG_FILE_WRITE_ERROR</code></span></p></td>
-<td>Registration failed because an error while writing to disk.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_init ()">
-<a name="lgl-db-init"></a><h3>lgl_db_init ()</h3>
-<pre class="programlisting">void                lgl_db_init                         (void);</pre>
-<p>
-Initialize all libglabels subsystems.  It is not necessary for an application to call
-<a class="link" href="libglabels-db.html#lgl-db-init" title="lgl_db_init ()"><code class="function">lgl_db_init()</code></a>, because libglabels will initialize on demand.  An application programmer may
-choose to call <a class="link" href="libglabels-db.html#lgl-db-init" title="lgl_db_init ()"><code class="function">lgl_db_init()</code></a> at startup to minimize the impact of the first libglabels call
-on GUI response time.
-</p>
-<p>
-This function initializes its paper definitions, category definitions, and its template
-database.. It will search both system and user template directories to locate
-this data.</p>
-<p>
-</p>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_get_paper_id_list ()">
-<a name="lgl-db-get-paper-id-list"></a><h3>lgl_db_get_paper_id_list ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             lgl_db_get_paper_id_list            (void);</pre>
-<p>
-Get a list of all paper ids known to libglabels.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a list of paper ids.
-
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_free_paper_id_list ()">
-<a name="lgl-db-free-paper-id-list"></a><h3>lgl_db_free_paper_id_list ()</h3>
-<pre class="programlisting">void                lgl_db_free_paper_id_list           (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *ids);</pre>
-<p>
-Free up all storage associated with an id list obtained with
-<a class="link" href="libglabels-db.html#lgl-db-get-paper-id-list" title="lgl_db_get_paper_id_list ()"><code class="function">lgl_db_get_paper_id_list()</code></a>.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>ids</code></em> :</span></p></td>
-<td> List of id strings to be freed.
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_get_paper_name_list ()">
-<a name="lgl-db-get-paper-name-list"></a><h3>lgl_db_get_paper_name_list ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             lgl_db_get_paper_name_list          (void);</pre>
-<p>
-Get a list of all localized paper names known to libglabels.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a list of localized paper names.
-
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_free_paper_name_list ()">
-<a name="lgl-db-free-paper-name-list"></a><h3>lgl_db_free_paper_name_list ()</h3>
-<pre class="programlisting">void                lgl_db_free_paper_name_list         (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *names);</pre>
-<p>
-Free up all storage associated with a name list obtained with
-<a class="link" href="libglabels-db.html#lgl-db-get-paper-name-list" title="lgl_db_get_paper_name_list ()"><code class="function">lgl_db_get_paper_name_list()</code></a>.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>names</code></em> :</span></p></td>
-<td> List of localized paper name strings to be freed.
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_lookup_paper_from_id ()">
-<a name="lgl-db-lookup-paper-from-id"></a><h3>lgl_db_lookup_paper_from_id ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper">lglPaper</a> *          lgl_db_lookup_paper_from_id         (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *id);</pre>
-<p>
-Lookup paper definition from id string.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td> paper id string
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> pointer to a newly allocated <a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper"><span class="type">lglPaper</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_lookup_paper_from_name ()">
-<a name="lgl-db-lookup-paper-from-name"></a><h3>lgl_db_lookup_paper_from_name ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper">lglPaper</a> *          lgl_db_lookup_paper_from_name       (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *name);</pre>
-<p>
-Lookup paper definition from localized paper name string.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
-<td> localized paper name string
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> pointer to a newly allocated <a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper"><span class="type">lglPaper</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_lookup_paper_id_from_name ()">
-<a name="lgl-db-lookup-paper-id-from-name"></a><h3>lgl_db_lookup_paper_id_from_name ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *             lgl_db_lookup_paper_id_from_name    (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *name);</pre>
-<p>
-Lookup paper name string from localized paper name string.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
-<td> localized paper name stringp
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> pointer to a newly allocated id string.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_lookup_paper_name_from_id ()">
-<a name="lgl-db-lookup-paper-name-from-id"></a><h3>lgl_db_lookup_paper_name_from_id ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *             lgl_db_lookup_paper_name_from_id    (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *id);</pre>
-<p>
-Lookup localized paper name string from paper id string.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td> paper id string
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> pointer to a newly allocated localized paper name string.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_is_paper_id_known ()">
-<a name="lgl-db-is-paper-id-known"></a><h3>lgl_db_is_paper_id_known ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a>            lgl_db_is_paper_id_known            (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *id);</pre>
-<p>
-Determine if given paper id is known to libglabels.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td> paper id to test
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> TRUE if id is known, otherwise FALSE.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_is_paper_id_other ()">
-<a name="lgl-db-is-paper-id-other"></a><h3>lgl_db_is_paper_id_other ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a>            lgl_db_is_paper_id_other            (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *id);</pre>
-<p>
-Determine if given paper id is the special id "Other."</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td> paper id to test
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> TRUE if id is "Other", otherwise FALSE.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_get_category_id_list ()">
-<a name="lgl-db-get-category-id-list"></a><h3>lgl_db_get_category_id_list ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             lgl_db_get_category_id_list         (void);</pre>
-<p>
-Get a list of all category ids known to libglabels.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a list of category ids.
-
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_free_category_id_list ()">
-<a name="lgl-db-free-category-id-list"></a><h3>lgl_db_free_category_id_list ()</h3>
-<pre class="programlisting">void                lgl_db_free_category_id_list        (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *ids);</pre>
-<p>
-Free up all storage associated with an id list obtained with
-<a class="link" href="libglabels-db.html#lgl-db-get-category-id-list" title="lgl_db_get_category_id_list ()"><code class="function">lgl_db_get_category_id_list()</code></a>.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>ids</code></em> :</span></p></td>
-<td> List of id strings to be freed.
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_get_category_name_list ()">
-<a name="lgl-db-get-category-name-list"></a><h3>lgl_db_get_category_name_list ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             lgl_db_get_category_name_list       (void);</pre>
-<p>
-Get a list of all localized category names known to libglabels.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a list of localized category names.
-
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_free_category_name_list ()">
-<a name="lgl-db-free-category-name-list"></a><h3>lgl_db_free_category_name_list ()</h3>
-<pre class="programlisting">void                lgl_db_free_category_name_list      (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *names);</pre>
-<p>
-Free up all storage associated with a name list obtained with
-<a class="link" href="libglabels-db.html#lgl-db-get-category-name-list" title="lgl_db_get_category_name_list ()"><code class="function">lgl_db_get_category_name_list()</code></a>.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>names</code></em> :</span></p></td>
-<td> List of localized category name strings to be freed.
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_lookup_category_from_id ()">
-<a name="lgl-db-lookup-category-from-id"></a><h3>lgl_db_lookup_category_from_id ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-category.html#lglCategory" title="lglCategory">lglCategory</a> *       lgl_db_lookup_category_from_id      (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *id);</pre>
-<p>
-Lookup category definition from id string.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td> category id string
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> pointer to a newly allocated <a class="link" href="libglabels-category.html#lglCategory" title="lglCategory"><span class="type">lglCategory</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_lookup_category_from_name ()">
-<a name="lgl-db-lookup-category-from-name"></a><h3>lgl_db_lookup_category_from_name ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-category.html#lglCategory" title="lglCategory">lglCategory</a> *       lgl_db_lookup_category_from_name    (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *name);</pre>
-<p>
-Lookup category definition from localized category name string.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
-<td> localized category name string
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> pointer to a newly allocated <a class="link" href="libglabels-category.html#lglCategory" title="lglCategory"><span class="type">lglCategory</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_lookup_category_id_from_name ()">
-<a name="lgl-db-lookup-category-id-from-name"></a><h3>lgl_db_lookup_category_id_from_name ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *             lgl_db_lookup_category_id_from_name (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *name);</pre>
-<p>
-Lookup category name string from localized category name string.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
-<td> localized category name stringp
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> pointer to a newly allocated id string.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_lookup_category_name_from_id ()">
-<a name="lgl-db-lookup-category-name-from-id"></a><h3>lgl_db_lookup_category_name_from_id ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *             lgl_db_lookup_category_name_from_id (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *id);</pre>
-<p>
-Lookup localized category name string from category id string.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td> category id string
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> pointer to a newly allocated localized category name string.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_is_category_id_known ()">
-<a name="lgl-db-is-category-id-known"></a><h3>lgl_db_is_category_id_known ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a>            lgl_db_is_category_id_known         (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *id);</pre>
-<p>
-Determine if given category id is known to libglabels.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td> category id to test
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> TRUE if id is known, otherwise FALSE.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_get_brand_list ()">
-<a name="lgl-db-get-brand-list"></a><h3>lgl_db_get_brand_list ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             lgl_db_get_brand_list               (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *paper_id,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *category_id);</pre>
-<p>
-Get a list of all valid brands of templates in the template database.
-Results can be filtered by page size and/or template category.  A list of valid page
-sizes can be obtained using <a class="link" href="libglabels-db.html#lgl-db-get-paper-id-list" title="lgl_db_get_paper_id_list ()"><code class="function">lgl_db_get_paper_id_list()</code></a>.  A list of valid template
-categories can be obtained using <a class="link" href="libglabels-db.html#lgl-db-get-category-id-list" title="lgl_db_get_category_id_list ()"><code class="function">lgl_db_get_category_id_list()</code></a>.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>paper_id</code></em> :</span></p></td>
-<td> If non NULL, limit results to given page size.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>category_id</code></em> :</span></p></td>
-<td> If non NULL, limit results to given template category.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a list of brands
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_free_brand_list ()">
-<a name="lgl-db-free-brand-list"></a><h3>lgl_db_free_brand_list ()</h3>
-<pre class="programlisting">void                lgl_db_free_brand_list              (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *brands);</pre>
-<p>
-Free up all storage associated with a list of template names obtained with
-<a class="link" href="libglabels-db.html#lgl-db-get-brand-list" title="lgl_db_get_brand_list ()"><code class="function">lgl_db_get_brand_list()</code></a>.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>brands</code></em> :</span></p></td>
-<td> List of template brand strings to be freed.
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_register_template ()">
-<a name="lgl-db-register-template"></a><h3>lgl_db_register_template ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-db.html#lglDbRegStatus" title="enum lglDbRegStatus">lglDbRegStatus</a>      lgl_db_register_template            (const <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template);</pre>
-<p>
-Register a template.  This function adds a template to the template database.
-The template will be stored in an individual XML file in the user template directory.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>template</code></em> :</span></p></td>
-<td>  Pointer to a template structure to add to database.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> Status of registration attempt (<a class="link" href="libglabels-db.html#lglDbRegStatus" title="enum lglDbRegStatus"><span class="type">lglDbRegStatus</span></a>)
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_does_template_exist ()">
-<a name="lgl-db-does-template-exist"></a><h3>lgl_db_does_template_exist ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a>            lgl_db_does_template_exist          (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *brand,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *part);</pre>
-<p>
-This function tests whether a template with the given brand and part name/number exists.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>brand</code></em> :</span></p></td>
-<td> Brand name.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>part</code></em> :</span></p></td>
-<td>  Part name/number.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>  TRUE if such a template exists in the database.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_does_template_name_exist ()">
-<a name="lgl-db-does-template-name-exist"></a><h3>lgl_db_does_template_name_exist ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a>            lgl_db_does_template_name_exist     (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *name);</pre>
-<p>
-This function test whether a template with the given name exists.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
-<td> name string
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> TRUE if such a template exists in the database.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_get_template_name_list_unique ()">
-<a name="lgl-db-get-template-name-list-unique"></a><h3>lgl_db_get_template_name_list_unique ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             lgl_db_get_template_name_list_unique
-                                                        (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *brand,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *paper_id,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *category_id);</pre>
-<p>
-Get a list of valid names of unique templates in the template database.  Results
-can be filtered by page size and/or template category.  A list of valid page sizes
-can be obtained using <a class="link" href="libglabels-db.html#lgl-db-get-paper-id-list" title="lgl_db_get_paper_id_list ()"><code class="function">lgl_db_get_paper_id_list()</code></a>.  A list of valid template categories
-can be obtained using <a class="link" href="libglabels-db.html#lgl-db-get-category-id-list" title="lgl_db_get_category_id_list ()"><code class="function">lgl_db_get_category_id_list()</code></a>.
-</p>
-<p>
-This function differs from <a class="link" href="libglabels-db.html#lgl-db-get-template-name-list-all" title="lgl_db_get_template_name_list_all ()"><code class="function">lgl_db_get_template_name_list_all()</code></a>, because it does not
-return multiple names for the same template.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>brand</code></em> :</span></p></td>
-<td>     If non NULL, limit results to given brand
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>paper_id</code></em> :</span></p></td>
-<td> If non NULL, limit results to given page size.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>category_id</code></em> :</span></p></td>
-<td> If non NULL, limit results to given template category.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a list of template names.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_get_template_name_list_all ()">
-<a name="lgl-db-get-template-name-list-all"></a><h3>lgl_db_get_template_name_list_all ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             lgl_db_get_template_name_list_all   (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *brand,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *paper_id,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *category_id);</pre>
-<p>
-Get a list of all valid names and aliases of templates in the template database.
-Results can be filtered by page size and/or template category.  A list of valid page
-sizes can be obtained using <a class="link" href="libglabels-db.html#lgl-db-get-paper-id-list" title="lgl_db_get_paper_id_list ()"><code class="function">lgl_db_get_paper_id_list()</code></a>.  A list of valid template
-categories can be obtained using <a class="link" href="libglabels-db.html#lgl-db-get-category-id-list" title="lgl_db_get_category_id_list ()"><code class="function">lgl_db_get_category_id_list()</code></a>.
-</p>
-<p>
-This function differs from <a class="link" href="libglabels-db.html#lgl-db-get-template-name-list-unique" title="lgl_db_get_template_name_list_unique ()"><code class="function">lgl_db_get_template_name_list_unique()</code></a>, because it will
-return multiple names for the same template.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>brand</code></em> :</span></p></td>
-<td>     If non NULL, limit results to given brand
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>paper_id</code></em> :</span></p></td>
-<td> If non NULL, limit results to given page size.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>category_id</code></em> :</span></p></td>
-<td> If non NULL, limit results to given template category.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a list of template names and aliases.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_free_template_name_list ()">
-<a name="lgl-db-free-template-name-list"></a><h3>lgl_db_free_template_name_list ()</h3>
-<pre class="programlisting">void                lgl_db_free_template_name_list      (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *names);</pre>
-<p>
-Free up all storage associated with a list of template names obtained with
-<a class="link" href="libglabels-db.html#lgl-db-get-template-name-list-all" title="lgl_db_get_template_name_list_all ()"><code class="function">lgl_db_get_template_name_list_all()</code></a> or <a class="link" href="libglabels-db.html#lgl-db-get-template-name-list-unique" title="lgl_db_get_template_name_list_unique ()"><code class="function">lgl_db_get_template_name_list_unique()</code></a>.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>names</code></em> :</span></p></td>
-<td> List of template name strings to be freed.
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_lookup_template_from_name ()">
-<a name="lgl-db-lookup-template-from-name"></a><h3>lgl_db_lookup_template_from_name ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *       lgl_db_lookup_template_from_name    (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *name);</pre>
-<p>
-Lookup template in template database from name string.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
-<td> name string
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> pointer to a newly allocated <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate"><span class="type">lglTemplate</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_print_known_papers ()">
-<a name="lgl-db-print-known-papers"></a><h3>lgl_db_print_known_papers ()</h3>
-<pre class="programlisting">void                lgl_db_print_known_papers           (void);</pre>
-<p>
-For debugging purposes: print a list of all paper definitions known to
-libglabels.</p>
-<p>
-</p>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_print_known_categories ()">
-<a name="lgl-db-print-known-categories"></a><h3>lgl_db_print_known_categories ()</h3>
-<pre class="programlisting">void                lgl_db_print_known_categories       (void);</pre>
-<p>
-For debugging purposes: print a list of all category definitions known to
-libglabels.</p>
-<p>
-</p>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_print_known_templates ()">
-<a name="lgl-db-print-known-templates"></a><h3>lgl_db_print_known_templates ()</h3>
-<pre class="programlisting">void                lgl_db_print_known_templates        (void);</pre>
-<p>
-Print all known templates (for debugging purposes).</p>
-<p>
-</p>
-</div>
-<hr>
-<div class="refsect2" title="lgl_db_print_aliases ()">
-<a name="lgl-db-print-aliases"></a><h3>lgl_db_print_aliases ()</h3>
-<pre class="programlisting">void                lgl_db_print_aliases                (const <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template);</pre>
-<p>
-Print all aliases of a template (for debugging purposes).</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>template</code></em> :</span></p></td>
-<td> template
-</td>
-</tr></tbody>
-</table></div>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
-          Generated by GTK-Doc V1.11</div>
-</body>
-</html>
diff --git a/docs/libglabels/html/libglabels-enums.html b/docs/libglabels/html/libglabels-enums.html
deleted file mode 100644 (file)
index d2f3862..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Enumerations</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="LibGlabels Reference Manual">
-<link rel="up" href="ch03.html" title="Miscellaneous">
-<link rel="prev" href="ch03.html" title="Miscellaneous">
-<link rel="next" href="libglabels-str.html" title="String Utility Functions">
-<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-<link rel="chapter" href="ch01.html" title="Basic LibGlabels Usage">
-<link rel="chapter" href="ch02.html" title="Working Directly With LibGlabels XML">
-<link rel="chapter" href="ch03.html" title="Miscellaneous">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="ch03.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch03.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">LibGlabels Reference Manual</th>
-<td><a accesskey="n" href="libglabels-str.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#libglabels-enums.synopsis" class="shortcut">Top</a>
-                 | 
-                <a href="#libglabels-enums.description" class="shortcut">Description</a>
-</td></tr>
-</table>
-<div class="refentry" title="Enumerations">
-<a name="libglabels-enums"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="libglabels-enums.top_of_page"></a>Enumerations</span></h2>
-<p>Enumerations — Common enumerations used by libglabels</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv" title="Synopsis">
-<a name="libglabels-enums.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-
-#include &lt;libglabels/enums.h&gt;
-
-enum                <a class="link" href="libglabels-enums.html#lglUnitsType" title="enum lglUnitsType">lglUnitsType</a>;
-</pre>
-</div>
-<div class="refsect1" title="Description">
-<a name="libglabels-enums.description"></a><h2>Description</h2>
-<p>
-This section defines enumerations used to interact with libglabels.
-</p>
-</div>
-<div class="refsect1" title="Details">
-<a name="libglabels-enums.details"></a><h2>Details</h2>
-<div class="refsect2" title="enum lglUnitsType">
-<a name="lglUnitsType"></a><h3>enum lglUnitsType</h3>
-<pre class="programlisting">typedef enum {
-       LGL_UNITS_POINT, /* encoded as "pt" */
-       LGL_UNITS_INCH,  /* encoded as "in" */
-       LGL_UNITS_MM,    /* encoded as "mm" */
-       LGL_UNITS_CM,    /* encoded as "cm" */
-       LGL_UNITS_PICA,  /* encoded as "pc" */
-
-       LGL_UNITS_FIRST = LGL_UNITS_POINT,
-       LGL_UNITS_LAST  = LGL_UNITS_PICA,
-} lglUnitsType;
-</pre>
-<p>
-This enumeration defines a set of units of distance supported by the libglabels XML distance
-attributes.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="LGL-UNITS-POINT--CAPS"></a><span class="term"><code class="literal">LGL_UNITS_POINT</code></span></p></td>
-<td>Points.  Encoded as "pt" in XML distance attributes.
-</td>
-</tr>
-<tr>
-<td><p><a name="LGL-UNITS-INCH--CAPS"></a><span class="term"><code class="literal">LGL_UNITS_INCH</code></span></p></td>
-<td>Inches.  Encoded as "in" in XML distance attributes.
-</td>
-</tr>
-<tr>
-<td><p><a name="LGL-UNITS-MM--CAPS"></a><span class="term"><code class="literal">LGL_UNITS_MM</code></span></p></td>
-<td>Millmeters.  Encoded as "mm" in XML distance attributes.
-</td>
-</tr>
-<tr>
-<td><p><a name="LGL-UNITS-CM--CAPS"></a><span class="term"><code class="literal">LGL_UNITS_CM</code></span></p></td>
-<td>Centimeters.  Encoded as "cm" in XML distance attributes.
-</td>
-</tr>
-<tr>
-<td><p><a name="LGL-UNITS-PICA--CAPS"></a><span class="term"><code class="literal">LGL_UNITS_PICA</code></span></p></td>
-<td>Picas.  Encoded as "pc" in XML distance attributes.
-</td>
-</tr>
-<tr>
-<td><p><a name="LGL-UNITS-FIRST--CAPS"></a><span class="term"><code class="literal">LGL_UNITS_FIRST</code></span></p></td>
-<td>First enumeration.  Used for generic iteration through supported units..
-</td>
-</tr>
-<tr>
-<td><p><a name="LGL-UNITS-LAST--CAPS"></a><span class="term"><code class="literal">LGL_UNITS_LAST</code></span></p></td>
-<td>Last enumeration.  Used for generic iteration through supported units.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
-          Generated by GTK-Doc V1.11</div>
-</body>
-</html>
diff --git a/docs/libglabels/html/libglabels-paper.html b/docs/libglabels/html/libglabels-paper.html
deleted file mode 100644 (file)
index 54f9255..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>The lglPaper Structure</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="LibGlabels Reference Manual">
-<link rel="up" href="ch01.html" title="Basic LibGlabels Usage">
-<link rel="prev" href="libglabels-template.html" title="The lglTemplate Structure">
-<link rel="next" href="libglabels-category.html" title="The lglCategory Structure">
-<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-<link rel="chapter" href="ch01.html" title="Basic LibGlabels Usage">
-<link rel="chapter" href="ch02.html" title="Working Directly With LibGlabels XML">
-<link rel="chapter" href="ch03.html" title="Miscellaneous">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="libglabels-template.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">LibGlabels Reference Manual</th>
-<td><a accesskey="n" href="libglabels-category.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#libglabels-paper.synopsis" class="shortcut">Top</a>
-                 | 
-                <a href="#libglabels-paper.description" class="shortcut">Description</a>
-</td></tr>
-</table>
-<div class="refentry" title="The lglPaper Structure">
-<a name="libglabels-paper"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="libglabels-paper.top_of_page"></a>The lglPaper Structure</span></h2>
-<p>The lglPaper Structure — Paper size definitions</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv" title="Synopsis">
-<a name="libglabels-paper.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-
-#include &lt;libglabels/paper.h&gt;
-
-                    <a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper">lglPaper</a>;
-<a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper">lglPaper</a> *          <a class="link" href="libglabels-paper.html#lgl-paper-new" title="lgl_paper_new ()">lgl_paper_new</a>                       (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *id,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *name,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> width,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> height,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *pwg_size);
-<a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper">lglPaper</a> *          <a class="link" href="libglabels-paper.html#lgl-paper-dup" title="lgl_paper_dup ()">lgl_paper_dup</a>                       (const <a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper">lglPaper</a> *orig);
-void                <a class="link" href="libglabels-paper.html#lgl-paper-free" title="lgl_paper_free ()">lgl_paper_free</a>                      (<a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper">lglPaper</a> *paper);
-</pre>
-</div>
-<div class="refsect1" title="Description">
-<a name="libglabels-paper.description"></a><h2>Description</h2>
-<p>
-This section describes a structure for representing a paper size definition
-and related functions.
-</p>
-</div>
-<div class="refsect1" title="Details">
-<a name="libglabels-paper.details"></a><h2>Details</h2>
-<div class="refsect2" title="lglPaper">
-<a name="lglPaper"></a><h3>lglPaper</h3>
-<pre class="programlisting">typedef struct {
-       gchar               *id;       /* Unique ID of paper definition */
-       gchar               *name;     /* Localized name of paper */
-       gdouble              width;    /* Width (in points) */
-       gdouble              height;   /* Height (in points) */
-       gchar               *pwg_size; /* PWG 5101.1-2002 size name */
-} lglPaper;
-</pre>
-<p>
-This structure defines a paper (page) size.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *<em class="structfield"><code>id</code></em>;</span></p></td>
-<td>Paper size ID.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *<em class="structfield"><code>name</code></em>;</span></p></td>
-<td>Localized paper size name.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>width</code></em>;</span></p></td>
-<td>Width of paper in points.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>height</code></em>;</span></p></td>
-<td>Height of paper in points.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *<em class="structfield"><code>pwg_size</code></em>;</span></p></td>
-<td>PWG 5101.1-2002 size name.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_paper_new ()">
-<a name="lgl-paper-new"></a><h3>lgl_paper_new ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper">lglPaper</a> *          lgl_paper_new                       (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *id,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *name,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> width,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> height,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *pwg_size);</pre>
-<p>
-Allocates and constructs a new <a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper"><span class="type">lglPaper</span></a> structure.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td>       Id of paper definition. (E.g. US-Letter, A4, etc.)  Should be
-           unique.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
-<td>     Localized name of paper.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
-<td>    Width of paper in points.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>height</code></em> :</span></p></td>
-<td>   Height of paper in points.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pwg_size</code></em> :</span></p></td>
-<td> PWG 5101.1-2002 size name.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a pointer to a newly allocated <a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper"><span class="type">lglPaper</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_paper_dup ()">
-<a name="lgl-paper-dup"></a><h3>lgl_paper_dup ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper">lglPaper</a> *          lgl_paper_dup                       (const <a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper">lglPaper</a> *orig);</pre>
-<p>
-Duplicates an existing <a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper"><span class="type">lglPaper</span></a> structure.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>orig</code></em> :</span></p></td>
-<td>  <a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper"><span class="type">lglPaper</span></a> structure to be duplicated.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a pointer to a newly allocated <a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper"><span class="type">lglPaper</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_paper_free ()">
-<a name="lgl-paper-free"></a><h3>lgl_paper_free ()</h3>
-<pre class="programlisting">void                lgl_paper_free                      (<a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper">lglPaper</a> *paper);</pre>
-<p>
-Free all memory associated with an existing <a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper"><span class="type">lglPaper</span></a> structure.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>paper</code></em> :</span></p></td>
-<td>  pointer to <a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper"><span class="type">lglPaper</span></a> structure to be freed.
-</td>
-</tr></tbody>
-</table></div>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
-          Generated by GTK-Doc V1.11</div>
-</body>
-</html>
diff --git a/docs/libglabels/html/libglabels-str.html b/docs/libglabels/html/libglabels-str.html
deleted file mode 100644 (file)
index 12af9dc..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>String Utility Functions</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="LibGlabels Reference Manual">
-<link rel="up" href="ch03.html" title="Miscellaneous">
-<link rel="prev" href="libglabels-enums.html" title="Enumerations">
-<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-<link rel="chapter" href="ch01.html" title="Basic LibGlabels Usage">
-<link rel="chapter" href="ch02.html" title="Working Directly With LibGlabels XML">
-<link rel="chapter" href="ch03.html" title="Miscellaneous">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="libglabels-enums.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch03.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">LibGlabels Reference Manual</th>
-<td> </td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#libglabels-str.synopsis" class="shortcut">Top</a>
-                 | 
-                <a href="#libglabels-str.description" class="shortcut">Description</a>
-</td></tr>
-</table>
-<div class="refentry" title="String Utility Functions">
-<a name="libglabels-str"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="libglabels-str.top_of_page"></a>String Utility Functions</span></h2>
-<p>String Utility Functions — String utility functions provided by libglabels</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv" title="Synopsis">
-<a name="libglabels-str.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-
-#include &lt;libglabels/str.h&gt;
-
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
->gint</a>                <a class="link" href="libglabels-str.html#lgl-str-utf8-casecmp" title="lgl_str_utf8_casecmp ()">lgl_str_utf8_casecmp</a>                (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *s1,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *s2);
-</pre>
-</div>
-<div class="refsect1" title="Description">
-<a name="libglabels-str.description"></a><h2>Description</h2>
-<p>
-This section defines string utility functions used by libglabels and of
-possible use to a user of libglabels.
-</p>
-</div>
-<div class="refsect1" title="Details">
-<a name="libglabels-str.details"></a><h2>Details</h2>
-<div class="refsect2" title="lgl_str_utf8_casecmp ()">
-<a name="lgl-str-utf8-casecmp"></a><h3>lgl_str_utf8_casecmp ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
->gint</a>                lgl_str_utf8_casecmp                (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *s1,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *s2);</pre>
-<p>
-Compare two UTF-8 strings, ignoring the case of characters.
-</p>
-<p>
-This function should be used only on strings that are known to be encoded
-in UTF-8 or a compatible UTF-8 subset.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>s1</code></em> :</span></p></td>
-<td> string to compare with s2.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>s2</code></em> :</span></p></td>
-<td> string to compare with s1.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> 0 if the strings match, a negative value if s1 &lt; s2,
-         or a positive value if s1 &gt; s2.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
-          Generated by GTK-Doc V1.11</div>
-</body>
-</html>
diff --git a/docs/libglabels/html/libglabels-template.html b/docs/libglabels/html/libglabels-template.html
deleted file mode 100644 (file)
index 3f01933..0000000
+++ /dev/null
@@ -1,2229 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>The lglTemplate Structure</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="LibGlabels Reference Manual">
-<link rel="up" href="ch01.html" title="Basic LibGlabels Usage">
-<link rel="prev" href="libglabels-db.html" title="Database">
-<link rel="next" href="libglabels-paper.html" title="The lglPaper Structure">
-<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-<link rel="chapter" href="ch01.html" title="Basic LibGlabels Usage">
-<link rel="chapter" href="ch02.html" title="Working Directly With LibGlabels XML">
-<link rel="chapter" href="ch03.html" title="Miscellaneous">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="libglabels-db.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">LibGlabels Reference Manual</th>
-<td><a accesskey="n" href="libglabels-paper.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#libglabels-template.synopsis" class="shortcut">Top</a>
-                 | 
-                <a href="#libglabels-template.description" class="shortcut">Description</a>
-</td></tr>
-</table>
-<div class="refentry" title="The lglTemplate Structure">
-<a name="libglabels-template"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="libglabels-template.top_of_page"></a>The lglTemplate Structure</span></h2>
-<p>The lglTemplate Structure — How templates are represented in memory</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv" title="Synopsis">
-<a name="libglabels-template.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-
-#include &lt;libglabels/template.h&gt;
-
-                    <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a>;
-
-                    <a class="link" href="libglabels-template.html#lglTemplateAlias" title="lglTemplateAlias">lglTemplateAlias</a>;
-
-enum                <a class="link" href="libglabels-template.html#lglTemplateFrameShape" title="enum lglTemplateFrameShape">lglTemplateFrameShape</a>;
-union               <a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a>;
-                    <a class="link" href="libglabels-template.html#lglTemplateFrameAll" title="lglTemplateFrameAll">lglTemplateFrameAll</a>;
-                    <a class="link" href="libglabels-template.html#lglTemplateFrameRect" title="lglTemplateFrameRect">lglTemplateFrameRect</a>;
-                    <a class="link" href="libglabels-template.html#lglTemplateFrameRound" title="lglTemplateFrameRound">lglTemplateFrameRound</a>;
-                    <a class="link" href="libglabels-template.html#lglTemplateFrameCD" title="lglTemplateFrameCD">lglTemplateFrameCD</a>;
-
-                    <a class="link" href="libglabels-template.html#lglTemplateLayout" title="lglTemplateLayout">lglTemplateLayout</a>;
-
-enum                <a class="link" href="libglabels-template.html#lglTemplateMarkupType" title="enum lglTemplateMarkupType">lglTemplateMarkupType</a>;
-union               <a class="link" href="libglabels-template.html#lglTemplateMarkup" title="union lglTemplateMarkup">lglTemplateMarkup</a>;
-                    <a class="link" href="libglabels-template.html#lglTemplateMarkupMargin" title="lglTemplateMarkupMargin">lglTemplateMarkupMargin</a>;
-                    <a class="link" href="libglabels-template.html#lglTemplateMarkupLine" title="lglTemplateMarkupLine">lglTemplateMarkupLine</a>;
-                    <a class="link" href="libglabels-template.html#lglTemplateMarkupCircle" title="lglTemplateMarkupCircle">lglTemplateMarkupCircle</a>;
-                    <a class="link" href="libglabels-template.html#lglTemplateMarkupRect" title="lglTemplateMarkupRect">lglTemplateMarkupRect</a>;
-
-                    <a class="link" href="libglabels-template.html#lglTemplateOrigin" title="lglTemplateOrigin">lglTemplateOrigin</a>;
-
-<a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *       <a class="link" href="libglabels-template.html#lgl-template-new" title="lgl_template_new ()">lgl_template_new</a>                    (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *brand,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *part,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *description,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *paper_id,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> page_width,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> page_height);
-<a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *       <a class="link" href="libglabels-template.html#lgl-template-dup" title="lgl_template_dup ()">lgl_template_dup</a>                    (const <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *orig_template);
-void                <a class="link" href="libglabels-template.html#lgl-template-free" title="lgl_template_free ()">lgl_template_free</a>                   (<a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template);
-void                <a class="link" href="libglabels-template.html#lgl-template-add-category" title="lgl_template_add_category ()">lgl_template_add_category</a>           (<a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *category_id);
-void                <a class="link" href="libglabels-template.html#lgl-template-add-frame" title="lgl_template_add_frame ()">lgl_template_add_frame</a>              (<a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template,
-                                                         <a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a> *frame);
-void                <a class="link" href="libglabels-template.html#lgl-template-add-alias" title="lgl_template_add_alias ()">lgl_template_add_alias</a>              (<a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template,
-                                                         <a class="link" href="libglabels-template.html#lglTemplateAlias" title="lglTemplateAlias">lglTemplateAlias</a> *alias);
-
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *             <a class="link" href="libglabels-template.html#lgl-template-get-name" title="lgl_template_get_name ()">lgl_template_get_name</a>               (const <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a>            <a class="link" href="libglabels-template.html#lgl-template-do-templates-match" title="lgl_template_do_templates_match ()">lgl_template_do_templates_match</a>     (const <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template1,
-                                                         const <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template2);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a>            <a class="link" href="libglabels-template.html#lgl-template-does-brand-match" title="lgl_template_does_brand_match ()">lgl_template_does_brand_match</a>       (const <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *brand);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a>            <a class="link" href="libglabels-template.html#lgl-template-does-page-size-match" title="lgl_template_does_page_size_match ()">lgl_template_does_page_size_match</a>   (const <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *paper_id);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a>            <a class="link" href="libglabels-template.html#lgl-template-does-category-match" title="lgl_template_does_category_match ()">lgl_template_does_category_match</a>    (const <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *category_id);
-
-<a class="link" href="libglabels-template.html#lglTemplateAlias" title="lglTemplateAlias">lglTemplateAlias</a> *  <a class="link" href="libglabels-template.html#lgl-template-alias-new" title="lgl_template_alias_new ()">lgl_template_alias_new</a>              (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *brand,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *part);
-<a class="link" href="libglabels-template.html#lglTemplateAlias" title="lglTemplateAlias">lglTemplateAlias</a> *  <a class="link" href="libglabels-template.html#lgl-template-alias-dup" title="lgl_template_alias_dup ()">lgl_template_alias_dup</a>              (const <a class="link" href="libglabels-template.html#lglTemplateAlias" title="lglTemplateAlias">lglTemplateAlias</a> *orig_alias);
-void                <a class="link" href="libglabels-template.html#lgl-template-alias-free" title="lgl_template_alias_free ()">lgl_template_alias_free</a>             (<a class="link" href="libglabels-template.html#lglTemplateAlias" title="lglTemplateAlias">lglTemplateAlias</a> *alias);
-
-<a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a> *  <a class="link" href="libglabels-template.html#lgl-template-frame-rect-new" title="lgl_template_frame_rect_new ()">lgl_template_frame_rect_new</a>         (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *id,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> w,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> h,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> r,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> x_waste,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> y_waste);
-<a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a> *  <a class="link" href="libglabels-template.html#lgl-template-frame-round-new" title="lgl_template_frame_round_new ()">lgl_template_frame_round_new</a>        (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *id,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> r,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> waste);
-<a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a> *  <a class="link" href="libglabels-template.html#lgl-template-frame-cd-new" title="lgl_template_frame_cd_new ()">lgl_template_frame_cd_new</a>           (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *id,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> r1,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> r2,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> w,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> h,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> waste);
-<a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a> *  <a class="link" href="libglabels-template.html#lgl-template-frame-dup" title="lgl_template_frame_dup ()">lgl_template_frame_dup</a>              (const <a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a> *orig_frame);
-void                <a class="link" href="libglabels-template.html#lgl-template-frame-free" title="lgl_template_frame_free ()">lgl_template_frame_free</a>             (<a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a> *frame);
-void                <a class="link" href="libglabels-template.html#lgl-template-frame-add-layout" title="lgl_template_frame_add_layout ()">lgl_template_frame_add_layout</a>       (<a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a> *frame,
-                                                         <a class="link" href="libglabels-template.html#lglTemplateLayout" title="lglTemplateLayout">lglTemplateLayout</a> *layout);
-void                <a class="link" href="libglabels-template.html#lgl-template-frame-add-markup" title="lgl_template_frame_add_markup ()">lgl_template_frame_add_markup</a>       (<a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a> *frame,
-                                                         <a class="link" href="libglabels-template.html#lglTemplateMarkup" title="union lglTemplateMarkup">lglTemplateMarkup</a> *markup);
-
-void                <a class="link" href="libglabels-template.html#lgl-template-frame-get-size" title="lgl_template_frame_get_size ()">lgl_template_frame_get_size</a>         (const <a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a> *frame,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> *w,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> *h);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
->gint</a>                <a class="link" href="libglabels-template.html#lgl-template-frame-get-n-labels" title="lgl_template_frame_get_n_labels ()">lgl_template_frame_get_n_labels</a>     (const <a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a> *frame);
-<a class="link" href="libglabels-template.html#lglTemplateOrigin" title="lglTemplateOrigin">lglTemplateOrigin</a> * <a class="link" href="libglabels-template.html#lgl-template-frame-get-origins" title="lgl_template_frame_get_origins ()">lgl_template_frame_get_origins</a>      (const <a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a> *frame);
-
-<a class="link" href="libglabels-template.html#lglTemplateLayout" title="lglTemplateLayout">lglTemplateLayout</a> * <a class="link" href="libglabels-template.html#lgl-template-layout-new" title="lgl_template_layout_new ()">lgl_template_layout_new</a>             (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
->gint</a> nx,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
->gint</a> ny,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> x0,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> y0,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> dx,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> dy);
-<a class="link" href="libglabels-template.html#lglTemplateLayout" title="lglTemplateLayout">lglTemplateLayout</a> * <a class="link" href="libglabels-template.html#lgl-template-layout-dup" title="lgl_template_layout_dup ()">lgl_template_layout_dup</a>             (const <a class="link" href="libglabels-template.html#lglTemplateLayout" title="lglTemplateLayout">lglTemplateLayout</a> *orig_layout);
-void                <a class="link" href="libglabels-template.html#lgl-template-layout-free" title="lgl_template_layout_free ()">lgl_template_layout_free</a>            (<a class="link" href="libglabels-template.html#lglTemplateLayout" title="lglTemplateLayout">lglTemplateLayout</a> *layout);
-
-<a class="link" href="libglabels-template.html#lglTemplateMarkup" title="union lglTemplateMarkup">lglTemplateMarkup</a> * <a class="link" href="libglabels-template.html#lgl-template-markup-margin-new" title="lgl_template_markup_margin_new ()">lgl_template_markup_margin_new</a>      (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> size);
-<a class="link" href="libglabels-template.html#lglTemplateMarkup" title="union lglTemplateMarkup">lglTemplateMarkup</a> * <a class="link" href="libglabels-template.html#lgl-template-markup-line-new" title="lgl_template_markup_line_new ()">lgl_template_markup_line_new</a>        (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> x1,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> y1,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> x2,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> y2);
-<a class="link" href="libglabels-template.html#lglTemplateMarkup" title="union lglTemplateMarkup">lglTemplateMarkup</a> * <a class="link" href="libglabels-template.html#lgl-template-markup-circle-new" title="lgl_template_markup_circle_new ()">lgl_template_markup_circle_new</a>      (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> x0,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> y0,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> r);
-<a class="link" href="libglabels-template.html#lglTemplateMarkup" title="union lglTemplateMarkup">lglTemplateMarkup</a> * <a class="link" href="libglabels-template.html#lgl-template-markup-rect-new" title="lgl_template_markup_rect_new ()">lgl_template_markup_rect_new</a>        (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> x1,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> y1,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> w,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> h,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> r);
-<a class="link" href="libglabels-template.html#lglTemplateMarkup" title="union lglTemplateMarkup">lglTemplateMarkup</a> * <a class="link" href="libglabels-template.html#lgl-template-markup-dup" title="lgl_template_markup_dup ()">lgl_template_markup_dup</a>             (const <a class="link" href="libglabels-template.html#lglTemplateMarkup" title="union lglTemplateMarkup">lglTemplateMarkup</a> *orig_markup);
-void                <a class="link" href="libglabels-template.html#lgl-template-markup-free" title="lgl_template_markup_free ()">lgl_template_markup_free</a>            (<a class="link" href="libglabels-template.html#lglTemplateMarkup" title="union lglTemplateMarkup">lglTemplateMarkup</a> *markup);
-</pre>
-</div>
-<div class="refsect1" title="Description">
-<a name="libglabels-template.description"></a><h2>Description</h2>
-<p>
-This section describes a set of structures that represent a template in memory.  It also
-describes functions to help create and interpret these structures.
-</p>
-</div>
-<div class="refsect1" title="Details">
-<a name="libglabels-template.details"></a><h2>Details</h2>
-<div class="refsect2" title="lglTemplate">
-<a name="lglTemplate"></a><h3>lglTemplate</h3>
-<pre class="programlisting">typedef struct {
-       gchar               *brand;
-        gchar               *part;
-       gchar               *description;
-       gchar               *paper_id;
-       gdouble              page_width;
-       gdouble              page_height;
-
-       /* List of (lglTemplateAlias *) aliase structures. */
-       GList               *aliases;
-
-        /* List of (gchar *) category ids. */
-       GList               *category_ids;
-
-       /* List of (lglTemplateFrame *) label frame structures.
-        * Currently glabels only supports a single label frame per
-        * template. */
-       GList               *frames;
-} lglTemplate;
-</pre>
-<p>
-This is the main structure of a libglabels template.  A template represents a single sheet
-of peel-off labels or cards.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *<em class="structfield"><code>brand</code></em>;</span></p></td>
-<td>Brand name of label or card.  E.g. "Avery."
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *<em class="structfield"><code>part</code></em>;</span></p></td>
-<td>Part name or number of label or card.  E.g. "8160."
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *<em class="structfield"><code>description</code></em>;</span></p></td>
-<td>A description of the template.  E.g. "Mailing labels."
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *<em class="structfield"><code>paper_id</code></em>;</span></p></td>
-<td>A paper ID.  E.g. "A4" or "US-Letter."
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>page_width</code></em>;</span></p></td>
-<td>Page width in points.  Used only if paper_id is "Other."
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>page_height</code></em>;</span></p></td>
-<td>Page height in points.  Used only if paper_id is "Other."
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *<em class="structfield"><code>aliases</code></em>;</span></p></td>
-<td>A list of alternate names for this template.  Often a single template can be used for
-multiple products.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *<em class="structfield"><code>category_ids</code></em>;</span></p></td>
-<td>A list of category IDs that this template belongs to.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *<em class="structfield"><code>frames</code></em>;</span></p></td>
-<td>A list of (<a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> *) structures.  GLabels currently only supports one frame
-per template -- future versions may support multiple frames per template.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lglTemplateAlias">
-<a name="lglTemplateAlias"></a><h3>lglTemplateAlias</h3>
-<pre class="programlisting">typedef struct {
-       gchar               *brand;
-        gchar               *part;
-} lglTemplateAlias;
-</pre>
-<p>
-This structure defines an alias for the parent template structure.  An alias is used for
-different products that can use the same template.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *<em class="structfield"><code>brand</code></em>;</span></p></td>
-<td>Brand name of label or card.  E.g. "Avery."
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *<em class="structfield"><code>part</code></em>;</span></p></td>
-<td>Part name or number of label or card.  E.g. "8160."
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="enum lglTemplateFrameShape">
-<a name="lglTemplateFrameShape"></a><h3>enum lglTemplateFrameShape</h3>
-<pre class="programlisting">typedef enum {
-       LGL_TEMPLATE_FRAME_SHAPE_RECT,
-       LGL_TEMPLATE_FRAME_SHAPE_ROUND,
-       LGL_TEMPLATE_FRAME_SHAPE_CD,
-} lglTemplateFrameShape;
-</pre>
-<p>
-This enumeration defines frame types that are supported by libglabels
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="LGL-TEMPLATE-FRAME-SHAPE-RECT--CAPS"></a><span class="term"><code class="literal">LGL_TEMPLATE_FRAME_SHAPE_RECT</code></span></p></td>
-<td>A rectangular frame.  (May have rounded corners.)
-</td>
-</tr>
-<tr>
-<td><p><a name="LGL-TEMPLATE-FRAME-SHAPE-ROUND--CAPS"></a><span class="term"><code class="literal">LGL_TEMPLATE_FRAME_SHAPE_ROUND</code></span></p></td>
-<td>A round frame.
-</td>
-</tr>
-<tr>
-<td><p><a name="LGL-TEMPLATE-FRAME-SHAPE-CD--CAPS"></a><span class="term"><code class="literal">LGL_TEMPLATE_FRAME_SHAPE_CD</code></span></p></td>
-<td>A CD or DVD frame.  (Includes credit-card style CDs.)
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="union lglTemplateFrame">
-<a name="lglTemplateFrame"></a><h3>union lglTemplateFrame</h3>
-<pre class="programlisting">union lglTemplateFrame{
-
-       lglTemplateFrameShape shape;
-
-       lglTemplateFrameAll   all;
-       lglTemplateFrameRect  rect;
-       lglTemplateFrameRound round;
-       lglTemplateFrameCD    cd;
-};
-</pre>
-<p>
-A union of all possible frame structures.  The type of structure is indicated by the shape
-member, which overlays the first field of all other member structures.
-</p>
-</div>
-<hr>
-<div class="refsect2" title="lglTemplateFrameAll">
-<a name="lglTemplateFrameAll"></a><h3>lglTemplateFrameAll</h3>
-<pre class="programlisting">typedef struct {
-        /* Begin Common Fields */
-       lglTemplateFrameShape shape;
-
-       gchar                *id;       /* Id, currently always "0" */
-       GList                *layouts;  /* List of lglTemplateLayouts */
-       GList                *markups;  /* List of lglTemplateMarkups */
-        /* End Common Fields */
-} lglTemplateFrameAll;
-</pre>
-<p>
-This structure is composed of a set of fields common to all frame structures.  All frame types
-can be cast to this structure.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a class="link" href="libglabels-template.html#lglTemplateFrameShape" title="enum lglTemplateFrameShape">lglTemplateFrameShape</a> <em class="structfield"><code>shape</code></em>;</span></p></td>
-<td>The shape of the frame.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *<em class="structfield"><code>id</code></em>;</span></p></td>
-<td>Reserved for future use.  Should always be zero.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *<em class="structfield"><code>layouts</code></em>;</span></p></td>
-<td>A list of (<a class="link" href="libglabels-template.html#lglTemplateLayout" title="lglTemplateLayout"><span class="type">lglTemplateLayout</span></a> *) structures.  Typically a frame will have a single
-layout, representing a simple grid of labels or cards.  If the layout of labels or cards is
-more complex, multiple (<a class="link" href="libglabels-template.html#lglTemplateLayout" title="lglTemplateLayout"><span class="type">lglTemplateLayout</span></a> *) structures may be needed.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *<em class="structfield"><code>markups</code></em>;</span></p></td>
-<td>A list of (<a class="link" href="libglabels-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="type">lglTemplateMarkup</span></a> *) structures, which represent non-printing markup lines.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lglTemplateFrameRect">
-<a name="lglTemplateFrameRect"></a><h3>lglTemplateFrameRect</h3>
-<pre class="programlisting">typedef struct {
-        /* Begin Common Fields */
-       lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_RECT. */
-
-       gchar                *id;       /* Id, currently always "0" */
-       GList                *layouts;  /* List of lglTemplateLayouts */
-       GList                *markups;  /* List of lglTemplateMarkups */
-        /* End Common Fields */
-
-        gdouble               w;        /* Width */
-        gdouble               h;        /* Height */
-        gdouble               r;        /* Corner radius */
-        gdouble               x_waste;  /* Amount of horiz overprint allowed. */
-        gdouble               y_waste;  /* Amount of vert overprint allowed. */
-} lglTemplateFrameRect;
-</pre>
-<p>
-This structure defines the frame for a rectangular label or card.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a class="link" href="libglabels-template.html#lglTemplateFrameShape" title="enum lglTemplateFrameShape">lglTemplateFrameShape</a> <em class="structfield"><code>shape</code></em>;</span></p></td>
-<td>Common field.  Always <a class="link" href="libglabels-template.html#LGL-TEMPLATE-FRAME-SHAPE-RECT--CAPS"><span class="type">LGL_TEMPLATE_FRAME_SHAPE_RECT</span></a> for <a class="link" href="libglabels-template.html#lglTemplateFrameRect" title="lglTemplateFrameRect"><span class="type">lglTemplateFrameRect</span></a>.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *<em class="structfield"><code>id</code></em>;</span></p></td>
-<td>Common field.  See <a class="link" href="libglabels-template.html#lglTemplateFrameAll" title="lglTemplateFrameAll"><span class="type">lglTemplateFrameAll</span></a>.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *<em class="structfield"><code>layouts</code></em>;</span></p></td>
-<td> Common field.  See <a class="link" href="libglabels-template.html#lglTemplateFrameAll" title="lglTemplateFrameAll"><span class="type">lglTemplateFrameAll</span></a>.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *<em class="structfield"><code>markups</code></em>;</span></p></td>
-<td> Common field.  See <a class="link" href="libglabels-template.html#lglTemplateFrameAll" title="lglTemplateFrameAll"><span class="type">lglTemplateFrameAll</span></a>.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>w</code></em>;</span></p></td>
-<td>Width of label or card in points.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>h</code></em>;</span></p></td>
-<td>Height of label or card in points.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>r</code></em>;</span></p></td>
-<td>Radius of corners in points.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>x_waste</code></em>;</span></p></td>
-<td>Amount of horizontal over-print to allow in points.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>y_waste</code></em>;</span></p></td>
-<td>Amount of vertical over-print to allow in points.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lglTemplateFrameRound">
-<a name="lglTemplateFrameRound"></a><h3>lglTemplateFrameRound</h3>
-<pre class="programlisting">typedef struct {
-        /* Begin Common Fields */
-       lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_ROUND. */
-
-       gchar                *id;       /* Id, currently always "0" */
-       GList                *layouts;  /* List of lglTemplateLayouts */
-       GList                *markups;  /* List of lglTemplateMarkups */
-        /* End Common Fields */
-
-        gdouble               r;      /* Radius */
-        gdouble               waste;  /* Amount of overprint allowed. */
-} lglTemplateFrameRound;
-</pre>
-<p>
-This structure defines the frame for a round label or card.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a class="link" href="libglabels-template.html#lglTemplateFrameShape" title="enum lglTemplateFrameShape">lglTemplateFrameShape</a> <em class="structfield"><code>shape</code></em>;</span></p></td>
-<td>Common field.  Always <a class="link" href="libglabels-template.html#LGL-TEMPLATE-FRAME-SHAPE-ROUND--CAPS"><span class="type">LGL_TEMPLATE_FRAME_SHAPE_ROUND</span></a> for <a class="link" href="libglabels-template.html#lglTemplateFrameRound" title="lglTemplateFrameRound"><span class="type">lglTemplateFrameRound</span></a>.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *<em class="structfield"><code>id</code></em>;</span></p></td>
-<td>Common field.  See <a class="link" href="libglabels-template.html#lglTemplateFrameAll" title="lglTemplateFrameAll"><span class="type">lglTemplateFrameAll</span></a>.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *<em class="structfield"><code>layouts</code></em>;</span></p></td>
-<td>Common field.  See <a class="link" href="libglabels-template.html#lglTemplateFrameAll" title="lglTemplateFrameAll"><span class="type">lglTemplateFrameAll</span></a>.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *<em class="structfield"><code>markups</code></em>;</span></p></td>
-<td>Common field.  See <a class="link" href="libglabels-template.html#lglTemplateFrameAll" title="lglTemplateFrameAll"><span class="type">lglTemplateFrameAll</span></a>.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>r</code></em>;</span></p></td>
-<td>Radius of label or card in points.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>waste</code></em>;</span></p></td>
-<td>Amount of over-print to allow in points.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lglTemplateFrameCD">
-<a name="lglTemplateFrameCD"></a><h3>lglTemplateFrameCD</h3>
-<pre class="programlisting">typedef struct {
-        /* Begin Common Fields */
-       lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_CD. */
-
-       gchar                *id;       /* Id, currently always "0" */
-       GList                *layouts;  /* List of lglTemplateLayouts */
-       GList                *markups;  /* List of lglTemplateMarkups */
-        /* End Common Fields */
-
-        gdouble               r1;     /* Outer radius */
-        gdouble               r2;     /* Inner radius (hole) */
-        gdouble               w;      /* Clip width, business card CDs */
-        gdouble               h;      /* Clip height, business card CDs */
-        gdouble               waste;  /* Amount of overprint allowed. */
-} lglTemplateFrameCD;
-</pre>
-<p>
-This structure defines the frame for a CD or DVD label.  This structure also supports
-credit-card CD labels.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a class="link" href="libglabels-template.html#lglTemplateFrameShape" title="enum lglTemplateFrameShape">lglTemplateFrameShape</a> <em class="structfield"><code>shape</code></em>;</span></p></td>
-<td>Common field.  Always <a class="link" href="libglabels-template.html#LGL-TEMPLATE-FRAME-SHAPE-CD--CAPS"><span class="type">LGL_TEMPLATE_FRAME_SHAPE_CD</span></a> for <a class="link" href="libglabels-template.html#lglTemplateFrameCD" title="lglTemplateFrameCD"><span class="type">lglTemplateFrameCD</span></a>.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *<em class="structfield"><code>id</code></em>;</span></p></td>
-<td>Common field.  See <a class="link" href="libglabels-template.html#lglTemplateFrameAll" title="lglTemplateFrameAll"><span class="type">lglTemplateFrameAll</span></a>.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *<em class="structfield"><code>layouts</code></em>;</span></p></td>
-<td>Common field.  See <a class="link" href="libglabels-template.html#lglTemplateFrameAll" title="lglTemplateFrameAll"><span class="type">lglTemplateFrameAll</span></a>.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *<em class="structfield"><code>markups</code></em>;</span></p></td>
-<td>Common field.  See <a class="link" href="libglabels-template.html#lglTemplateFrameAll" title="lglTemplateFrameAll"><span class="type">lglTemplateFrameAll</span></a>.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>r1</code></em>;</span></p></td>
-<td>Outer radius of label in points.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>r2</code></em>;</span></p></td>
-<td>Radius of center hole in points.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>w</code></em>;</span></p></td>
-<td>Clip width in points.  Used for credit-card CD labels.  This field is ignored if zero.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>h</code></em>;</span></p></td>
-<td>Clip height in points.  Used for credit-card CD labels.  This field is ignored if zero.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>waste</code></em>;</span></p></td>
-<td>Amount of over-print to allow in points.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lglTemplateLayout">
-<a name="lglTemplateLayout"></a><h3>lglTemplateLayout</h3>
-<pre class="programlisting">typedef struct {
-       gint                  nx;  /* Number of labels across */
-       gint                  ny;  /* Number of labels up and down */
-
-       gdouble               x0;  /* Left of grid from left edge of paper */
-       gdouble               y0;  /* Top of grid from top edge of paper */
-
-       gdouble               dx;  /* Horizontal pitch of grid */
-       gdouble               dy;  /* Vertical pitch of grid */
-} lglTemplateLayout;
-</pre>
-<p>
-This structure defines a simple grid layout of labels or cards.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
->gint</a> <em class="structfield"><code>nx</code></em>;</span></p></td>
-<td>Number of labels or cards across in the grid (horizontal).
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
->gint</a> <em class="structfield"><code>ny</code></em>;</span></p></td>
-<td>Number of labels or cards down in the grid (vertical).
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>x0</code></em>;</span></p></td>
-<td>Distance (in points) from the left edge of page to the left edge of the left column of
-cards or labels in the layout.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>y0</code></em>;</span></p></td>
-<td>Distance (in points) from the top edge of page to the top edge of the top row of
-cards or labels in the layout.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>dx</code></em>;</span></p></td>
-<td>Horizontal pitch of grid in points.  This is the distance from left edge to left edge
-(not the gap between labels or cards).
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>dy</code></em>;</span></p></td>
-<td>Vertical pitch of grid in points.  This is the distance from top edge to top edge
-(not the gap between labels or cards).
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="enum lglTemplateMarkupType">
-<a name="lglTemplateMarkupType"></a><h3>enum lglTemplateMarkupType</h3>
-<pre class="programlisting">typedef enum {
-       LGL_TEMPLATE_MARKUP_MARGIN,
-       LGL_TEMPLATE_MARKUP_LINE,
-       LGL_TEMPLATE_MARKUP_CIRCLE,
-       LGL_TEMPLATE_MARKUP_RECT,
-} lglTemplateMarkupType;
-</pre>
-<p>
-This enumeration defines markup types that are supported by libglabels
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="LGL-TEMPLATE-MARKUP-MARGIN--CAPS"></a><span class="term"><code class="literal">LGL_TEMPLATE_MARKUP_MARGIN</code></span></p></td>
-<td>A margin line around perimeter of label or card.
-</td>
-</tr>
-<tr>
-<td><p><a name="LGL-TEMPLATE-MARKUP-LINE--CAPS"></a><span class="term"><code class="literal">LGL_TEMPLATE_MARKUP_LINE</code></span></p></td>
-<td>A simple line segment.
-</td>
-</tr>
-<tr>
-<td><p><a name="LGL-TEMPLATE-MARKUP-CIRCLE--CAPS"></a><span class="term"><code class="literal">LGL_TEMPLATE_MARKUP_CIRCLE</code></span></p></td>
-<td>A circle.
-</td>
-</tr>
-<tr>
-<td><p><a name="LGL-TEMPLATE-MARKUP-RECT--CAPS"></a><span class="term"><code class="literal">LGL_TEMPLATE_MARKUP_RECT</code></span></p></td>
-<td>A rectangle.  Possibly with rounded corners.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="union lglTemplateMarkup">
-<a name="lglTemplateMarkup"></a><h3>union lglTemplateMarkup</h3>
-<pre class="programlisting">union lglTemplateMarkup {
-
-       lglTemplateMarkupType   type;
-
-       lglTemplateMarkupMargin margin;
-       lglTemplateMarkupLine   line;
-       lglTemplateMarkupCircle circle;
-       lglTemplateMarkupRect   rect;
-};
-</pre>
-<p>
-A union of all possible markup structures.  The type of structure is indicated by the type
-member, which overlays the first field of all other member structures.
-</p>
-</div>
-<hr>
-<div class="refsect2" title="lglTemplateMarkupMargin">
-<a name="lglTemplateMarkupMargin"></a><h3>lglTemplateMarkupMargin</h3>
-<pre class="programlisting">typedef struct {
-       lglTemplateMarkupType  type;  /* Always LGL_TEMPLATE_MARKUP_MARGIN */
-
-        gdouble                size;  /* Margin size */
-} lglTemplateMarkupMargin;
-</pre>
-<p>
-This structure defines a simple margin markup around the perimeter of a label or card.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a class="link" href="libglabels-template.html#lglTemplateMarkupType" title="enum lglTemplateMarkupType">lglTemplateMarkupType</a> <em class="structfield"><code>type</code></em>;</span></p></td>
-<td>Common field.  Always <a class="link" href="libglabels-template.html#LGL-TEMPLATE-MARKUP-MARGIN--CAPS"><span class="type">LGL_TEMPLATE_MARKUP_MARGIN</span></a> for <a class="link" href="libglabels-template.html#lglTemplateMarkupMargin" title="lglTemplateMarkupMargin"><span class="type">lglTemplateMarkupMargin</span></a>.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>size</code></em>;</span></p></td>
-<td>Distance of margin from edge of label or card.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lglTemplateMarkupLine">
-<a name="lglTemplateMarkupLine"></a><h3>lglTemplateMarkupLine</h3>
-<pre class="programlisting">typedef struct {
-       lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_LINE */
-
-        gdouble                x1, y1; /* 1st endpoint */
-        gdouble                x2, y2; /* 2nd endpoint */
-} lglTemplateMarkupLine;
-</pre>
-<p>
-This structure defines a simple line segment markup.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a class="link" href="libglabels-template.html#lglTemplateMarkupType" title="enum lglTemplateMarkupType">lglTemplateMarkupType</a> <em class="structfield"><code>type</code></em>;</span></p></td>
-<td>Common field.  Always <a class="link" href="libglabels-template.html#LGL-TEMPLATE-MARKUP-LINE--CAPS"><span class="type">LGL_TEMPLATE_MARKUP_LINE</span></a> for <a class="link" href="libglabels-template.html#lglTemplateMarkupLine" title="lglTemplateMarkupLine"><span class="type">lglTemplateMarkupLine</span></a>.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>x1</code></em>;</span></p></td>
-<td>Distance (in points) of first endpoint from left edge of label or card.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>y1</code></em>;</span></p></td>
-<td>Distance (in points) of first endpoint from top edge of label or card.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>x2</code></em>;</span></p></td>
-<td>Distance (in points) of second endpoint from left edge of label or card.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>y2</code></em>;</span></p></td>
-<td>Distance (in points) of second endpoint from top edge of label or card.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lglTemplateMarkupCircle">
-<a name="lglTemplateMarkupCircle"></a><h3>lglTemplateMarkupCircle</h3>
-<pre class="programlisting">typedef struct {
-       lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_CIRCLE */
-
-        gdouble                x0, y0; /* Center of circle */
-        gdouble                r;      /* Radius of circle */
-} lglTemplateMarkupCircle;
-</pre>
-<p>
-This structure defines a simple circle markup.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a class="link" href="libglabels-template.html#lglTemplateMarkupType" title="enum lglTemplateMarkupType">lglTemplateMarkupType</a> <em class="structfield"><code>type</code></em>;</span></p></td>
-<td>Common field.  Always <a class="link" href="libglabels-template.html#LGL-TEMPLATE-MARKUP-CIRCLE--CAPS"><span class="type">LGL_TEMPLATE_MARKUP_CIRCLE</span></a> for <a class="link" href="libglabels-template.html#lglTemplateMarkupCircle" title="lglTemplateMarkupCircle"><span class="type">lglTemplateMarkupCircle</span></a>.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>x0</code></em>;</span></p></td>
-<td>Distance (in points) of vertex from left edge of label or card.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>y0</code></em>;</span></p></td>
-<td>Distance (in points) of vertex from top edge of label or card.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>r</code></em>;</span></p></td>
-<td>Radius of circle in points.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lglTemplateMarkupRect">
-<a name="lglTemplateMarkupRect"></a><h3>lglTemplateMarkupRect</h3>
-<pre class="programlisting">typedef struct {
-       lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_RECT */
-
-        gdouble                x1, y1; /* Upper left corner */
-        gdouble                w, h;   /* Width and height. */
-        gdouble                r;      /* Radius of corners. */
-} lglTemplateMarkupRect;
-</pre>
-<p>
-This structure defines a simple rectangle markup.  The rectangle can have rounded corners.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a class="link" href="libglabels-template.html#lglTemplateMarkupType" title="enum lglTemplateMarkupType">lglTemplateMarkupType</a> <em class="structfield"><code>type</code></em>;</span></p></td>
-<td>Common field.  Always <a class="link" href="libglabels-template.html#LGL-TEMPLATE-MARKUP-RECT--CAPS"><span class="type">LGL_TEMPLATE_MARKUP_RECT</span></a> for <a class="link" href="libglabels-template.html#lglTemplateMarkupRect" title="lglTemplateMarkupRect"><span class="type">lglTemplateMarkupRect</span></a>.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>x1</code></em>;</span></p></td>
-<td>Distance (in points) of left edge of markup from left edge of label or card.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>y1</code></em>;</span></p></td>
-<td>Distance (in points) of top edge of markup from top edge of label or card.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>w</code></em>;</span></p></td>
-<td>Width of rectangle in points.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>h</code></em>;</span></p></td>
-<td>Height of rectangle in points.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>r</code></em>;</span></p></td>
-<td>Radius of corners in points.  Should be zero for sharp corners.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lglTemplateOrigin">
-<a name="lglTemplateOrigin"></a><h3>lglTemplateOrigin</h3>
-<pre class="programlisting">typedef struct {
-       gdouble               x, y; /* Label origin relative to upper 
-                                    * upper left hand corner of paper */
-} lglTemplateOrigin;
-</pre>
-<p>
-This structure represents the cartesian coordinates of the origin of a label or card on the page.
-The orign is the upper left corner of the extent of the label or card.  These coordinates are
-relative to the upper left corner of the page.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>x</code></em>;</span></p></td>
-<td>Distance in points from top edge of page.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> <em class="structfield"><code>y</code></em>;</span></p></td>
-<td>Distance in points from left edge of page.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_new ()">
-<a name="lgl-template-new"></a><h3>lgl_template_new ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *       lgl_template_new                    (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *brand,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *part,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *description,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *paper_id,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> page_width,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> page_height);</pre>
-<p>
-Create a new template structure, with the given top-level attributes.  The
-created template will have no initial aliases, categories, or frames
-associated with it.  See <a class="link" href="libglabels-template.html#lgl-template-add-alias" title="lgl_template_add_alias ()"><code class="function">lgl_template_add_alias()</code></a>, <a class="link" href="libglabels-template.html#lgl-template-add-category" title="lgl_template_add_category ()"><code class="function">lgl_template_add_category()</code></a>,
-and <a class="link" href="libglabels-template.html#lgl-template-add-frame" title="lgl_template_add_frame ()"><code class="function">lgl_template_add_frame()</code></a> to add these.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>brand</code></em> :</span></p></td>
-<td>        Template brand
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>part</code></em> :</span></p></td>
-<td>         Template part name/number
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>description</code></em> :</span></p></td>
-<td>  Template descriptions
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>paper_id</code></em> :</span></p></td>
-<td>     Page size id
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>page_width</code></em> :</span></p></td>
-<td>   Page width in points, set to zero unless paper_id="Other"
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>page_height</code></em> :</span></p></td>
-<td>  Page height in points, set to zero unless paper_id="Other"
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> pointer to a newly allocated <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate"><span class="type">lglTemplate</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_dup ()">
-<a name="lgl-template-dup"></a><h3>lgl_template_dup ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *       lgl_template_dup                    (const <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *orig_template);</pre>
-<p>
-This function duplicates a template structure.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>orig_template</code></em> :</span></p></td>
-<td> Template to duplicate.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>  a newly allocated <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate"><span class="type">lglTemplate</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_free ()">
-<a name="lgl-template-free"></a><h3>lgl_template_free ()</h3>
-<pre class="programlisting">void                lgl_template_free                   (<a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template);</pre>
-<p>
-This function frees all memory associated with given template structure.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>template</code></em> :</span></p></td>
-<td> Template to free.
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_add_category ()">
-<a name="lgl-template-add-category"></a><h3>lgl_template_add_category ()</h3>
-<pre class="programlisting">void                lgl_template_add_category           (<a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *category_id);</pre>
-<p>
-This function adds the given category ID to a templates category list.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>template</code></em> :</span></p></td>
-<td>     Pointer to template structure
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>category_id</code></em> :</span></p></td>
-<td>  Category ID string
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_add_frame ()">
-<a name="lgl-template-add-frame"></a><h3>lgl_template_add_frame ()</h3>
-<pre class="programlisting">void                lgl_template_add_frame              (<a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template,
-                                                         <a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a> *frame);</pre>
-<p>
-This function adds the given frame structure to the template.  Once added,
-the frame structure belongs to the given template; do not attempt to free
-it.
-</p>
-<p>
-Note: Currently glabels only supports a single frame per template.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>template</code></em> :</span></p></td>
-<td>  Pointer to template structure
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
-<td>     Pointer to frame structure
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_add_alias ()">
-<a name="lgl-template-add-alias"></a><h3>lgl_template_add_alias ()</h3>
-<pre class="programlisting">void                lgl_template_add_alias              (<a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template,
-                                                         <a class="link" href="libglabels-template.html#lglTemplateAlias" title="lglTemplateAlias">lglTemplateAlias</a> *alias);</pre>
-<p>
-This function adds the given alias to a templates list of aliases.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>template</code></em> :</span></p></td>
-<td>  Pointer to template structure
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>alias</code></em> :</span></p></td>
-<td>     Alias string
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_get_name ()">
-<a name="lgl-template-get-name"></a><h3>lgl_template_get_name ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *             lgl_template_get_name               (const <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template);</pre>
-<p>
-This function returns the name of the given template.  The name is the concetenation
-of the brand and part name/number.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>template</code></em> :</span></p></td>
-<td>  Pointer to template structure to test
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>  A pointer to a newly allocated name string.  Should be freed with <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"
-><code class="function">g_free()</code></a>.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_do_templates_match ()">
-<a name="lgl-template-do-templates-match"></a><h3>lgl_template_do_templates_match ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a>            lgl_template_do_templates_match     (const <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template1,
-                                                         const <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template2);</pre>
-<p>
-This function tests if the given templates match.  This is a simple test that only tests
-the brand and part name/number. It does not test if they are actually identical.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>template1</code></em> :</span></p></td>
-<td>  Pointer to 1st template structure to test
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>template2</code></em> :</span></p></td>
-<td>  Pointer to 2nd template structure to test
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>  TRUE if the two template matche.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_does_brand_match ()">
-<a name="lgl-template-does-brand-match"></a><h3>lgl_template_does_brand_match ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a>            lgl_template_does_brand_match       (const <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *brand);</pre>
-<p>
-This function tests if the brand of the template matches the given brand.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>template</code></em> :</span></p></td>
-<td>  Pointer to template structure to test
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>brand</code></em> :</span></p></td>
-<td>     Brand string
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>  TRUE if the template matches the given brand.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_does_page_size_match ()">
-<a name="lgl-template-does-page-size-match"></a><h3>lgl_template_does_page_size_match ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a>            lgl_template_does_page_size_match   (const <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *paper_id);</pre>
-<p>
-This function tests if the page size of the template matches the given ID.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>template</code></em> :</span></p></td>
-<td>  Pointer to template structure to test
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>paper_id</code></em> :</span></p></td>
-<td>  Page size ID string
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>  TRUE if the template matches the given page size ID.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_does_category_match ()">
-<a name="lgl-template-does-category-match"></a><h3>lgl_template_does_category_match ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a>            lgl_template_does_category_match    (const <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *category_id);</pre>
-<p>
-This function tests if the given template belongs to the given category ID.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>template</code></em> :</span></p></td>
-<td>     Pointer to template structure to test
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>category_id</code></em> :</span></p></td>
-<td>  Category ID string
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>  TRUE if the template matches the given category ID.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_alias_new ()">
-<a name="lgl-template-alias-new"></a><h3>lgl_template_alias_new ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-template.html#lglTemplateAlias" title="lglTemplateAlias">lglTemplateAlias</a> *  lgl_template_alias_new              (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *brand,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *part);</pre>
-<p>
-Create a new template alias structure, with the given brand and part number.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>brand</code></em> :</span></p></td>
-<td>        Alias brand
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>part</code></em> :</span></p></td>
-<td>         Alias part name/number
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> pointer to a newly allocated <a class="link" href="libglabels-template.html#lglTemplateAlias" title="lglTemplateAlias"><span class="type">lglTemplateAlias</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_alias_dup ()">
-<a name="lgl-template-alias-dup"></a><h3>lgl_template_alias_dup ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-template.html#lglTemplateAlias" title="lglTemplateAlias">lglTemplateAlias</a> *  lgl_template_alias_dup              (const <a class="link" href="libglabels-template.html#lglTemplateAlias" title="lglTemplateAlias">lglTemplateAlias</a> *orig_alias);</pre>
-<p>
-This function duplicates a template alias structure.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>orig_alias</code></em> :</span></p></td>
-<td> Alias to duplicate.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>  a newly allocated <a class="link" href="libglabels-template.html#lglTemplateAlias" title="lglTemplateAlias"><span class="type">lglTemplateAlias</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_alias_free ()">
-<a name="lgl-template-alias-free"></a><h3>lgl_template_alias_free ()</h3>
-<pre class="programlisting">void                lgl_template_alias_free             (<a class="link" href="libglabels-template.html#lglTemplateAlias" title="lglTemplateAlias">lglTemplateAlias</a> *alias);</pre>
-<p>
-This function frees all memory associated with given template alias structure.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>alias</code></em> :</span></p></td>
-<td> Alias to free.
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_frame_rect_new ()">
-<a name="lgl-template-frame-rect-new"></a><h3>lgl_template_frame_rect_new ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a> *  lgl_template_frame_rect_new         (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *id,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> w,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> h,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> r,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> x_waste,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> y_waste);</pre>
-<p>
-This function creates a new template frame for a rectangular label or card.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td>      ID of frame.  (This should currently always be "0").
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>w</code></em> :</span></p></td>
-<td>       width of frame in points.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>h</code></em> :</span></p></td>
-<td>       height of frame in points.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>r</code></em> :</span></p></td>
-<td>       radius of rounded corners in points.  (Should be 0 for square corners.)
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>x_waste</code></em> :</span></p></td>
-<td> Amount of overprint to allow in the horizontal direction.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>y_waste</code></em> :</span></p></td>
-<td> Amount of overprint to allow in the vertical direction.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> Pointer to newly allocated <a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_frame_round_new ()">
-<a name="lgl-template-frame-round-new"></a><h3>lgl_template_frame_round_new ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a> *  lgl_template_frame_round_new        (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *id,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> r,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> waste);</pre>
-<p>
-This function creates a new template frame for a round label.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td>      ID of frame.  (This should currently always be "0").
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>r</code></em> :</span></p></td>
-<td>       radius of label in points.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>waste</code></em> :</span></p></td>
-<td>   Amount of overprint to allow.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> Pointer to newly allocated <a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_frame_cd_new ()">
-<a name="lgl-template-frame-cd-new"></a><h3>lgl_template_frame_cd_new ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a> *  lgl_template_frame_cd_new           (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *id,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> r1,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> r2,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> w,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> h,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> waste);</pre>
-<p>
-This function creates a new template frame for a CD/DVD label.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td>      ID of frame.  (This should currently always be "0").
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>r1</code></em> :</span></p></td>
-<td>      outer radius of label in points.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>r2</code></em> :</span></p></td>
-<td>      radius of center hole in points.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>w</code></em> :</span></p></td>
-<td>       clip width of frame in points for business card CDs.  Should be 0 for no clipping.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>h</code></em> :</span></p></td>
-<td>       clip height of frame in points for business card CDs.  Should be 0 for no clipping.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>waste</code></em> :</span></p></td>
-<td>   Amount of overprint to allow.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> Pointer to newly allocated <a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_frame_dup ()">
-<a name="lgl-template-frame-dup"></a><h3>lgl_template_frame_dup ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a> *  lgl_template_frame_dup              (const <a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a> *orig_frame);</pre>
-<p>
-This function duplicates a template frame structure.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>orig_frame</code></em> :</span></p></td>
-<td> Frame to duplicate.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>  a newly allocated <a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_frame_free ()">
-<a name="lgl-template-frame-free"></a><h3>lgl_template_frame_free ()</h3>
-<pre class="programlisting">void                lgl_template_frame_free             (<a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a> *frame);</pre>
-<p>
-This function frees all memory associated with given template frame structure.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
-<td> Frame to free.
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_frame_add_layout ()">
-<a name="lgl-template-frame-add-layout"></a><h3>lgl_template_frame_add_layout ()</h3>
-<pre class="programlisting">void                lgl_template_frame_add_layout       (<a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a> *frame,
-                                                         <a class="link" href="libglabels-template.html#lglTemplateLayout" title="lglTemplateLayout">lglTemplateLayout</a> *layout);</pre>
-<p>
-This function adds a layout structure to the given template frame.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
-<td>  Pointer to template frame to add layout to.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
-<td> Pointer to layout structure to add to frame.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_frame_add_markup ()">
-<a name="lgl-template-frame-add-markup"></a><h3>lgl_template_frame_add_markup ()</h3>
-<pre class="programlisting">void                lgl_template_frame_add_markup       (<a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a> *frame,
-                                                         <a class="link" href="libglabels-template.html#lglTemplateMarkup" title="union lglTemplateMarkup">lglTemplateMarkup</a> *markup);</pre>
-<p>
-This function adds a markup structure to the given template frame.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
-<td>  Pointer to template frame to add markup to.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>markup</code></em> :</span></p></td>
-<td> Pointer to markup structure to add to frame.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_frame_get_size ()">
-<a name="lgl-template-frame-get-size"></a><h3>lgl_template_frame_get_size ()</h3>
-<pre class="programlisting">void                lgl_template_frame_get_size         (const <a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a> *frame,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> *w,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> *h);</pre>
-<p>
-Get size (width and height) of given <a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> in points.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
-<td> <a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> structure to query
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>w</code></em> :</span></p></td>
-<td> pointer to location to receive width of frame
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>h</code></em> :</span></p></td>
-<td> pointer to location to receive height of frame
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_frame_get_n_labels ()">
-<a name="lgl-template-frame-get-n-labels"></a><h3>lgl_template_frame_get_n_labels ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
->gint</a>                lgl_template_frame_get_n_labels     (const <a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a> *frame);</pre>
-<p>
-Get total number of labels per sheet corresponding to the given frame.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
-<td> <a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> structure to query
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> number of labels per sheet.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_frame_get_origins ()">
-<a name="lgl-template-frame-get-origins"></a><h3>lgl_template_frame_get_origins ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-template.html#lglTemplateOrigin" title="lglTemplateOrigin">lglTemplateOrigin</a> * lgl_template_frame_get_origins      (const <a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame">lglTemplateFrame</a> *frame);</pre>
-<p>
-Get an array of label origins for the given frame.  These origins represent the
-upper left hand corner of each label on a page corresponding to the given frame.
-The origins will be ordered geometrically left to right and then top to bottom.
-The array should be freed using <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"
-><code class="function">g_free()</code></a>.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
-<td> <a class="link" href="libglabels-template.html#lglTemplateFrame" title="union lglTemplateFrame"><span class="type">lglTemplateFrame</span></a> structure to query
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> A newly allocated array of <a class="link" href="libglabels-template.html#lglTemplateOrigin" title="lglTemplateOrigin"><span class="type">lglTemplateOrigin</span></a> structures.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_layout_new ()">
-<a name="lgl-template-layout-new"></a><h3>lgl_template_layout_new ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-template.html#lglTemplateLayout" title="lglTemplateLayout">lglTemplateLayout</a> * lgl_template_layout_new             (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
->gint</a> nx,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
->gint</a> ny,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> x0,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> y0,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> dx,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> dy);</pre>
-<p>
-This function creates a new layout structure with the given parameters.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>nx</code></em> :</span></p></td>
-<td>  Number of labels across.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>ny</code></em> :</span></p></td>
-<td>  Number of labels down.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>x0</code></em> :</span></p></td>
-<td>  X coordinate of the top-left corner of the top-left label in the layout in points.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>y0</code></em> :</span></p></td>
-<td>  Y coordinate of the top-left corner of the top-left label in the layout in points.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>dx</code></em> :</span></p></td>
-<td>  Horizontal pitch in points.  This is the distance from left-edge to left-edge.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>dy</code></em> :</span></p></td>
-<td>  Vertical pitch in points.  This is the distance from top-edge to top-edge.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a newly allocated <a class="link" href="libglabels-template.html#lglTemplateLayout" title="lglTemplateLayout"><span class="type">lglTemplateLayout</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_layout_dup ()">
-<a name="lgl-template-layout-dup"></a><h3>lgl_template_layout_dup ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-template.html#lglTemplateLayout" title="lglTemplateLayout">lglTemplateLayout</a> * lgl_template_layout_dup             (const <a class="link" href="libglabels-template.html#lglTemplateLayout" title="lglTemplateLayout">lglTemplateLayout</a> *orig_layout);</pre>
-<p>
-This function duplicates a template layout structure.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>orig_layout</code></em> :</span></p></td>
-<td> Layout to duplicate.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>  a newly allocated <a class="link" href="libglabels-template.html#lglTemplateLayout" title="lglTemplateLayout"><span class="type">lglTemplateLayout</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_layout_free ()">
-<a name="lgl-template-layout-free"></a><h3>lgl_template_layout_free ()</h3>
-<pre class="programlisting">void                lgl_template_layout_free            (<a class="link" href="libglabels-template.html#lglTemplateLayout" title="lglTemplateLayout">lglTemplateLayout</a> *layout);</pre>
-<p>
-This function frees all memory associated with given template layout structure.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
-<td> Layout to free.
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_markup_margin_new ()">
-<a name="lgl-template-markup-margin-new"></a><h3>lgl_template_markup_margin_new ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-template.html#lglTemplateMarkup" title="union lglTemplateMarkup">lglTemplateMarkup</a> * lgl_template_markup_margin_new      (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> size);</pre>
-<p>
-This function creates a new margin markup structure.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td> margin size in points.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a newly allocated <a class="link" href="libglabels-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="type">lglTemplateMarkup</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_markup_line_new ()">
-<a name="lgl-template-markup-line-new"></a><h3>lgl_template_markup_line_new ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-template.html#lglTemplateMarkup" title="union lglTemplateMarkup">lglTemplateMarkup</a> * lgl_template_markup_line_new        (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> x1,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> y1,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> x2,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> y2);</pre>
-<p>
-This function creates a new line markup structure.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>x1</code></em> :</span></p></td>
-<td> x coordinate of first endpoint.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>y1</code></em> :</span></p></td>
-<td> y coordinate of first endpoint.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>x2</code></em> :</span></p></td>
-<td> x coordinate of second endpoint.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>y2</code></em> :</span></p></td>
-<td> y coordinate of second endpoint.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a newly allocated <a class="link" href="libglabels-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="type">lglTemplateMarkup</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_markup_circle_new ()">
-<a name="lgl-template-markup-circle-new"></a><h3>lgl_template_markup_circle_new ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-template.html#lglTemplateMarkup" title="union lglTemplateMarkup">lglTemplateMarkup</a> * lgl_template_markup_circle_new      (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> x0,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> y0,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> r);</pre>
-<p>
-This function creates a new circle markup structure.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>x0</code></em> :</span></p></td>
-<td> x coordinate of center of circle.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>y0</code></em> :</span></p></td>
-<td> y coordinate of center of circle.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>r</code></em> :</span></p></td>
-<td>  radius of circle.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a newly allocated <a class="link" href="libglabels-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="type">lglTemplateMarkup</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_markup_rect_new ()">
-<a name="lgl-template-markup-rect-new"></a><h3>lgl_template_markup_rect_new ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-template.html#lglTemplateMarkup" title="union lglTemplateMarkup">lglTemplateMarkup</a> * lgl_template_markup_rect_new        (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> x1,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> y1,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> w,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> h,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> r);</pre>
-<p>
-This function creates a new rectangle markup structure.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>x1</code></em> :</span></p></td>
-<td> x coordinate of top-left corner of rectangle.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>y1</code></em> :</span></p></td>
-<td> y coordinate of top-left corner of rectangle.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>w</code></em> :</span></p></td>
-<td>  width of rectangle.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>h</code></em> :</span></p></td>
-<td>  height of rectangle.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>r</code></em> :</span></p></td>
-<td>  radius of rounded corner.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a newly allocated <a class="link" href="libglabels-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="type">lglTemplateMarkup</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_markup_dup ()">
-<a name="lgl-template-markup-dup"></a><h3>lgl_template_markup_dup ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-template.html#lglTemplateMarkup" title="union lglTemplateMarkup">lglTemplateMarkup</a> * lgl_template_markup_dup             (const <a class="link" href="libglabels-template.html#lglTemplateMarkup" title="union lglTemplateMarkup">lglTemplateMarkup</a> *orig_markup);</pre>
-<p>
-This function duplicates a template markup structure.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>orig_markup</code></em> :</span></p></td>
-<td> Markup to duplicate.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>  a newly allocated <a class="link" href="libglabels-template.html#lglTemplateMarkup" title="union lglTemplateMarkup"><span class="type">lglTemplateMarkup</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_template_markup_free ()">
-<a name="lgl-template-markup-free"></a><h3>lgl_template_markup_free ()</h3>
-<pre class="programlisting">void                lgl_template_markup_free            (<a class="link" href="libglabels-template.html#lglTemplateMarkup" title="union lglTemplateMarkup">lglTemplateMarkup</a> *markup);</pre>
-<p>
-This function frees all memory associated with given template markup structure.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>markup</code></em> :</span></p></td>
-<td> Markup to free.
-</td>
-</tr></tbody>
-</table></div>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
-          Generated by GTK-Doc V1.11</div>
-</body>
-</html>
diff --git a/docs/libglabels/html/libglabels-xml-category.html b/docs/libglabels/html/libglabels-xml-category.html
deleted file mode 100644 (file)
index 42a1e53..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>XML Category Functions</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="LibGlabels Reference Manual">
-<link rel="up" href="ch02.html" title="Working Directly With LibGlabels XML">
-<link rel="prev" href="libglabels-xml-paper.html" title="XML Paper Functions">
-<link rel="next" href="libglabels-xml-template.html" title="XML Template Functions">
-<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-<link rel="chapter" href="ch01.html" title="Basic LibGlabels Usage">
-<link rel="chapter" href="ch02.html" title="Working Directly With LibGlabels XML">
-<link rel="chapter" href="ch03.html" title="Miscellaneous">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="libglabels-xml-paper.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">LibGlabels Reference Manual</th>
-<td><a accesskey="n" href="libglabels-xml-template.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#libglabels-xml-category.synopsis" class="shortcut">Top</a>
-                 | 
-                <a href="#libglabels-xml-category.description" class="shortcut">Description</a>
-</td></tr>
-</table>
-<div class="refentry" title="XML Category Functions">
-<a name="libglabels-xml-category"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="libglabels-xml-category.top_of_page"></a>XML Category Functions</span></h2>
-<p>XML Category Functions — Functions to parse glabels XML category definition files</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv" title="Synopsis">
-<a name="libglabels-xml-category.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-
-#include &lt;libglabels/xml-category.h&gt;
-
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             <a class="link" href="libglabels-xml-category.html#lgl-xml-category-read-categories-from-file" title="lgl_xml_category_read_categories_from_file ()">lgl_xml_category_read_categories_from_file</a>
-                                                        (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *utf8_filename);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             <a class="link" href="libglabels-xml-category.html#lgl-xml-category-parse-categories-doc" title="lgl_xml_category_parse_categories_doc ()">lgl_xml_category_parse_categories_doc</a>
-                                                        (xmlDocPtr categories_doc);
-<a class="link" href="libglabels-category.html#lglCategory" title="lglCategory">lglCategory</a> *       <a class="link" href="libglabels-xml-category.html#lgl-xml-category-parse-category-node" title="lgl_xml_category_parse_category_node ()">lgl_xml_category_parse_category_node</a>
-                                                        (xmlNodePtr category_node);
-</pre>
-</div>
-<div class="refsect1" title="Description">
-<a name="libglabels-xml-category.description"></a><h2>Description</h2>
-<p>
-This section describes a number of functions for parsing glabels
-XML category definition files.
-</p>
-</div>
-<div class="refsect1" title="Details">
-<a name="libglabels-xml-category.details"></a><h2>Details</h2>
-<div class="refsect2" title="lgl_xml_category_read_categories_from_file ()">
-<a name="lgl-xml-category-read-categories-from-file"></a><h3>lgl_xml_category_read_categories_from_file ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             lgl_xml_category_read_categories_from_file
-                                                        (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *utf8_filename);</pre>
-<p>
-Read category definitions from a file.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>utf8_filename</code></em> :</span></p></td>
-<td>       Filename of categories file (name encoded as UTF-8)
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a list of <a class="link" href="libglabels-category.html#lglCategory" title="lglCategory"><span class="type">lglCategory</span></a> structures.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_category_parse_categories_doc ()">
-<a name="lgl-xml-category-parse-categories-doc"></a><h3>lgl_xml_category_parse_categories_doc ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             lgl_xml_category_parse_categories_doc
-                                                        (xmlDocPtr categories_doc);</pre>
-<p>
-Read category definitions from a libxml <span class="type">xmlDocPtr</span> tree.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>categories_doc</code></em> :</span></p></td>
-<td>  libxml <span class="type">xmlDocPtr</span> tree, representing a categories
-definition file.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a list of <a class="link" href="libglabels-category.html#lglCategory" title="lglCategory"><span class="type">lglCategory</span></a> structures.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_category_parse_category_node ()">
-<a name="lgl-xml-category-parse-category-node"></a><h3>lgl_xml_category_parse_category_node ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-category.html#lglCategory" title="lglCategory">lglCategory</a> *       lgl_xml_category_parse_category_node
-                                                        (xmlNodePtr category_node);</pre>
-<p>
-Read a single category definition from a libxml <span class="type">xmlNodePtr</span> node.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>category_node</code></em> :</span></p></td>
-<td>  libxml <span class="type">xmlNodePtr</span> category node from a <span class="type">xmlDocPtr</span> tree.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a pointer to a newly created <a class="link" href="libglabels-category.html#lglCategory" title="lglCategory"><span class="type">lglCategory</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
-          Generated by GTK-Doc V1.11</div>
-</body>
-</html>
diff --git a/docs/libglabels/html/libglabels-xml-paper.html b/docs/libglabels/html/libglabels-xml-paper.html
deleted file mode 100644 (file)
index e368aea..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>XML Paper Functions</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="LibGlabels Reference Manual">
-<link rel="up" href="ch02.html" title="Working Directly With LibGlabels XML">
-<link rel="prev" href="ch02.html" title="Working Directly With LibGlabels XML">
-<link rel="next" href="libglabels-xml-category.html" title="XML Category Functions">
-<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-<link rel="chapter" href="ch01.html" title="Basic LibGlabels Usage">
-<link rel="chapter" href="ch02.html" title="Working Directly With LibGlabels XML">
-<link rel="chapter" href="ch03.html" title="Miscellaneous">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="ch02.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">LibGlabels Reference Manual</th>
-<td><a accesskey="n" href="libglabels-xml-category.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#libglabels-xml-paper.synopsis" class="shortcut">Top</a>
-                 | 
-                <a href="#libglabels-xml-paper.description" class="shortcut">Description</a>
-</td></tr>
-</table>
-<div class="refentry" title="XML Paper Functions">
-<a name="libglabels-xml-paper"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="libglabels-xml-paper.top_of_page"></a>XML Paper Functions</span></h2>
-<p>XML Paper Functions — Functions to parse glabels XML paper definition files</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv" title="Synopsis">
-<a name="libglabels-xml-paper.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-
-#include &lt;libglabels/xml-paper.h&gt;
-
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             <a class="link" href="libglabels-xml-paper.html#lgl-xml-paper-read-papers-from-file" title="lgl_xml_paper_read_papers_from_file ()">lgl_xml_paper_read_papers_from_file</a> (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *utf8_filename);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             <a class="link" href="libglabels-xml-paper.html#lgl-xml-paper-parse-papers-doc" title="lgl_xml_paper_parse_papers_doc ()">lgl_xml_paper_parse_papers_doc</a>      (xmlDocPtr papers_doc);
-<a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper">lglPaper</a> *          <a class="link" href="libglabels-xml-paper.html#lgl-xml-paper-parse-paper-node" title="lgl_xml_paper_parse_paper_node ()">lgl_xml_paper_parse_paper_node</a>      (xmlNodePtr paper_node);
-</pre>
-</div>
-<div class="refsect1" title="Description">
-<a name="libglabels-xml-paper.description"></a><h2>Description</h2>
-<p>
-This section describes a number of functions for parsing glabels
-XML paper definition files.
-</p>
-</div>
-<div class="refsect1" title="Details">
-<a name="libglabels-xml-paper.details"></a><h2>Details</h2>
-<div class="refsect2" title="lgl_xml_paper_read_papers_from_file ()">
-<a name="lgl-xml-paper-read-papers-from-file"></a><h3>lgl_xml_paper_read_papers_from_file ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             lgl_xml_paper_read_papers_from_file (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *utf8_filename);</pre>
-<p>
-Read paper definitions from a file.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>utf8_filename</code></em> :</span></p></td>
-<td>       Filename of papers file (name encoded as UTF-8)
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a list of <a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper"><span class="type">lglPaper</span></a> structures.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_paper_parse_papers_doc ()">
-<a name="lgl-xml-paper-parse-papers-doc"></a><h3>lgl_xml_paper_parse_papers_doc ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             lgl_xml_paper_parse_papers_doc      (xmlDocPtr papers_doc);</pre>
-<p>
-Read paper definitions from a libxml <span class="type">xmlDocPtr</span> tree.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>papers_doc</code></em> :</span></p></td>
-<td>  libxml <span class="type">xmlDocPtr</span> tree, representing a papers definition file.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a list of <a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper"><span class="type">lglPaper</span></a> structures.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_paper_parse_paper_node ()">
-<a name="lgl-xml-paper-parse-paper-node"></a><h3>lgl_xml_paper_parse_paper_node ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper">lglPaper</a> *          lgl_xml_paper_parse_paper_node      (xmlNodePtr paper_node);</pre>
-<p>
-Read a single paper definition from a libxml <span class="type">xmlNodePtr</span> node.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>paper_node</code></em> :</span></p></td>
-<td>  libxml <span class="type">xmlNodePtr</span> paper node from a <span class="type">xmlDocPtr</span> tree.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a pointer to a newly created <a class="link" href="libglabels-paper.html#lglPaper" title="lglPaper"><span class="type">lglPaper</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
-          Generated by GTK-Doc V1.11</div>
-</body>
-</html>
diff --git a/docs/libglabels/html/libglabels-xml-template.html b/docs/libglabels/html/libglabels-xml-template.html
deleted file mode 100644 (file)
index 732d430..0000000
+++ /dev/null
@@ -1,286 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>XML Template Functions</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="LibGlabels Reference Manual">
-<link rel="up" href="ch02.html" title="Working Directly With LibGlabels XML">
-<link rel="prev" href="libglabels-xml-category.html" title="XML Category Functions">
-<link rel="next" href="libglabels-xml.html" title="XML Helper Functions">
-<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-<link rel="chapter" href="ch01.html" title="Basic LibGlabels Usage">
-<link rel="chapter" href="ch02.html" title="Working Directly With LibGlabels XML">
-<link rel="chapter" href="ch03.html" title="Miscellaneous">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="libglabels-xml-category.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">LibGlabels Reference Manual</th>
-<td><a accesskey="n" href="libglabels-xml.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#libglabels-xml-template.synopsis" class="shortcut">Top</a>
-                 | 
-                <a href="#libglabels-xml-template.description" class="shortcut">Description</a>
-</td></tr>
-</table>
-<div class="refentry" title="XML Template Functions">
-<a name="libglabels-xml-template"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="libglabels-xml-template.top_of_page"></a>XML Template Functions</span></h2>
-<p>XML Template Functions — Functions to create and parse glabels XML template nodes and files</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv" title="Synopsis">
-<a name="libglabels-xml-template.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-
-#include &lt;libglabels/xml-templates.h&gt;
-
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             <a class="link" href="libglabels-xml-template.html#lgl-xml-template-read-templates-from-file" title="lgl_xml_template_read_templates_from_file ()">lgl_xml_template_read_templates_from_file</a>
-                                                        (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *utf8_filename);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             <a class="link" href="libglabels-xml-template.html#lgl-xml-template-parse-templates-doc" title="lgl_xml_template_parse_templates_doc ()">lgl_xml_template_parse_templates_doc</a>
-                                                        (const xmlDocPtr templates_doc);
-<a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *       <a class="link" href="libglabels-xml-template.html#lgl-xml-template-parse-template-node" title="lgl_xml_template_parse_template_node ()">lgl_xml_template_parse_template_node</a>
-                                                        (const xmlNodePtr template_node);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
->gint</a>                <a class="link" href="libglabels-xml-template.html#lgl-xml-template-write-templates-to-file" title="lgl_xml_template_write_templates_to_file ()">lgl_xml_template_write_templates_to_file</a>
-                                                        (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *templates,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *utf8_filename);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
->gint</a>                <a class="link" href="libglabels-xml-template.html#lgl-xml-template-write-template-to-file" title="lgl_xml_template_write_template_to_file ()">lgl_xml_template_write_template_to_file</a>
-                                                        (const <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *utf8_filename);
-void                <a class="link" href="libglabels-xml-template.html#lgl-xml-template-create-template-node" title="lgl_xml_template_create_template_node ()">lgl_xml_template_create_template_node</a>
-                                                        (const <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template,
-                                                         xmlNodePtr root,
-                                                         const xmlNsPtr ns);
-</pre>
-</div>
-<div class="refsect1" title="Description">
-<a name="libglabels-xml-template.description"></a><h2>Description</h2>
-<p>
-This section describes a number of functions for creating and parsing
-glabels XML template nodes and files.  Template nodes are used in both
-template files and document files.
-</p>
-</div>
-<div class="refsect1" title="Details">
-<a name="libglabels-xml-template.details"></a><h2>Details</h2>
-<div class="refsect2" title="lgl_xml_template_read_templates_from_file ()">
-<a name="lgl-xml-template-read-templates-from-file"></a><h3>lgl_xml_template_read_templates_from_file ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             lgl_xml_template_read_templates_from_file
-                                                        (const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *utf8_filename);</pre>
-<p>
-Read glabels templates from template file.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>utf8_filename</code></em> :</span></p></td>
-<td>       Filename of papers file (name encoded as UTF-8)
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a list of <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate"><span class="type">lglTemplate</span></a> structures.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_template_parse_templates_doc ()">
-<a name="lgl-xml-template-parse-templates-doc"></a><h3>lgl_xml_template_parse_templates_doc ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *             lgl_xml_template_parse_templates_doc
-                                                        (const xmlDocPtr templates_doc);</pre>
-<p>
-Read glabels templates from a libxml <span class="type">xmlDocPtr</span> tree.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>templates_doc</code></em> :</span></p></td>
-<td>  libxml <span class="type">xmlDocPtr</span> tree, representing template file.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a list of <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate"><span class="type">lglTemplate</span></a> structures.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_template_parse_template_node ()">
-<a name="lgl-xml-template-parse-template-node"></a><h3>lgl_xml_template_parse_template_node ()</h3>
-<pre class="programlisting"><a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *       lgl_xml_template_parse_template_node
-                                                        (const xmlNodePtr template_node);</pre>
-<p>
-Read a single glabels template from a libxml <span class="type">xmlNodePtr</span> node.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>template_node</code></em> :</span></p></td>
-<td>  libxml <span class="type">xmlNodePtr</span> template node from a <span class="type">xmlDocPtr</span> tree.
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> a pointer to a newly created <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate"><span class="type">lglTemplate</span></a> structure.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_template_write_templates_to_file ()">
-<a name="lgl-xml-template-write-templates-to-file"></a><h3>lgl_xml_template_write_templates_to_file ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
->gint</a>                lgl_xml_template_write_templates_to_file
-                                                        (<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"
->GList</a> *templates,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *utf8_filename);</pre>
-<p>
-Write a list of <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate"><span class="type">lglTemplate</span></a> structures to a glabels XML template file.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>templates</code></em> :</span></p></td>
-<td>      List of <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate"><span class="type">lglTemplate</span></a> structures
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>utf8_filename</code></em> :</span></p></td>
-<td>  Filename of templates file (name encoded as UTF-8)
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> the number of bytes written or -1 in case of failure
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_template_write_template_to_file ()">
-<a name="lgl-xml-template-write-template-to-file"></a><h3>lgl_xml_template_write_template_to_file ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
->gint</a>                lgl_xml_template_write_template_to_file
-                                                        (const <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *utf8_filename);</pre>
-<p>
-Write a single <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate"><span class="type">lglTemplate</span></a> structures to a glabels XML template file.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>template</code></em> :</span></p></td>
-<td>       <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate"><span class="type">lglTemplate</span></a> structure to be written
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>utf8_filename</code></em> :</span></p></td>
-<td>  Filename of templates file (name encoded as UTF-8)
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> the number of bytes written or -1 in case of failure
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_template_create_template_node ()">
-<a name="lgl-xml-template-create-template-node"></a><h3>lgl_xml_template_create_template_node ()</h3>
-<pre class="programlisting">void                lgl_xml_template_create_template_node
-                                                        (const <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate">lglTemplate</a> *template,
-                                                         xmlNodePtr root,
-                                                         const xmlNsPtr ns);</pre>
-<p>
-Add a single <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate"><span class="type">lglTemplate</span></a> child node to given <span class="type">xmlNodePtr</span>.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>template</code></em> :</span></p></td>
-<td>       <a class="link" href="libglabels-template.html#lglTemplate" title="lglTemplate"><span class="type">lglTemplate</span></a> structure to be written
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>root</code></em> :</span></p></td>
-<td>           parent node to receive new child node
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>ns</code></em> :</span></p></td>
-<td>             a libxml <span class="type">xmlNsPtr</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
-          Generated by GTK-Doc V1.11</div>
-</body>
-</html>
diff --git a/docs/libglabels/html/libglabels-xml.html b/docs/libglabels/html/libglabels-xml.html
deleted file mode 100644 (file)
index 02347b9..0000000
+++ /dev/null
@@ -1,801 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>XML Helper Functions</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="LibGlabels Reference Manual">
-<link rel="up" href="ch02.html" title="Working Directly With LibGlabels XML">
-<link rel="prev" href="libglabels-xml-template.html" title="XML Template Functions">
-<link rel="next" href="ch03.html" title="Miscellaneous">
-<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-<link rel="chapter" href="ch01.html" title="Basic LibGlabels Usage">
-<link rel="chapter" href="ch02.html" title="Working Directly With LibGlabels XML">
-<link rel="chapter" href="ch03.html" title="Miscellaneous">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="libglabels-xml-template.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">LibGlabels Reference Manual</th>
-<td><a accesskey="n" href="ch03.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#libglabels-xml.synopsis" class="shortcut">Top</a>
-                 | 
-                <a href="#libglabels-xml.description" class="shortcut">Description</a>
-</td></tr>
-</table>
-<div class="refentry" title="XML Helper Functions">
-<a name="libglabels-xml"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="libglabels-xml.top_of_page"></a>XML Helper Functions</span></h2>
-<p>XML Helper Functions — Functions to help format and parse glabels XML properties</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv" title="Synopsis">
-<a name="libglabels-xml.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-
-#include &lt;libglabels/xml.h&gt;
-
-#define             <a class="link" href="libglabels-xml.html#LGL-XML-NAME-SPACE--CAPS" title="LGL_XML_NAME_SPACE">LGL_XML_NAME_SPACE</a>
-
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *             <a class="link" href="libglabels-xml.html#lgl-xml-get-prop-string" title="lgl_xml_get_prop_string ()">lgl_xml_get_prop_string</a>             (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *default_val);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *             <a class="link" href="libglabels-xml.html#lgl-xml-get-prop-i18n-string" title="lgl_xml_get_prop_i18n_string ()">lgl_xml_get_prop_i18n_string</a>        (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *default_val);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a>             <a class="link" href="libglabels-xml.html#lgl-xml-get-prop-double" title="lgl_xml_get_prop_double ()">lgl_xml_get_prop_double</a>             (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> default_val);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a>            <a class="link" href="libglabels-xml.html#lgl-xml-get-prop-boolean" title="lgl_xml_get_prop_boolean ()">lgl_xml_get_prop_boolean</a>            (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a> default_val);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
->gint</a>                <a class="link" href="libglabels-xml.html#lgl-xml-get-prop-int" title="lgl_xml_get_prop_int ()">lgl_xml_get_prop_int</a>                (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
->gint</a> default_val);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"
->guint</a>               <a class="link" href="libglabels-xml.html#lgl-xml-get-prop-uint" title="lgl_xml_get_prop_uint ()">lgl_xml_get_prop_uint</a>               (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"
->guint</a> default_val);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a>             <a class="link" href="libglabels-xml.html#lgl-xml-get-prop-length" title="lgl_xml_get_prop_length ()">lgl_xml_get_prop_length</a>             (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> default_val);
-
-void                <a class="link" href="libglabels-xml.html#lgl-xml-set-prop-string" title="lgl_xml_set_prop_string ()">lgl_xml_set_prop_string</a>             (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *val);
-void                <a class="link" href="libglabels-xml.html#lgl-xml-set-prop-double" title="lgl_xml_set_prop_double ()">lgl_xml_set_prop_double</a>             (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> val);
-void                <a class="link" href="libglabels-xml.html#lgl-xml-set-prop-boolean" title="lgl_xml_set_prop_boolean ()">lgl_xml_set_prop_boolean</a>            (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a> val);
-void                <a class="link" href="libglabels-xml.html#lgl-xml-set-prop-int" title="lgl_xml_set_prop_int ()">lgl_xml_set_prop_int</a>                (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
->gint</a> val);
-void                <a class="link" href="libglabels-xml.html#lgl-xml-set-prop-uint-hex" title="lgl_xml_set_prop_uint_hex ()">lgl_xml_set_prop_uint_hex</a>           (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"
->guint</a> val);
-void                <a class="link" href="libglabels-xml.html#lgl-xml-set-prop-length" title="lgl_xml_set_prop_length ()">lgl_xml_set_prop_length</a>             (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> val);
-
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a>            <a class="link" href="libglabels-xml.html#lgl-xml-is-node" title="lgl_xml_is_node ()">lgl_xml_is_node</a>                     (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *name);
-<a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *             <a class="link" href="libglabels-xml.html#lgl-xml-get-node-content" title="lgl_xml_get_node_content ()">lgl_xml_get_node_content</a>            (xmlNodePtr node);
-
-void                <a class="link" href="libglabels-xml.html#lgl-xml-set-default-units" title="lgl_xml_set_default_units ()">lgl_xml_set_default_units</a>           (<a class="link" href="libglabels-enums.html#lglUnitsType" title="enum lglUnitsType">lglUnitsType</a> units);
-</pre>
-</div>
-<div class="refsect1" title="Description">
-<a name="libglabels-xml.description"></a><h2>Description</h2>
-<p>
-This section describes a number of "helper" functions for formatting and
-parsing various types of properties for tags in glabels XML file formats.
-</p>
-<p>
-These functions are basically wrappers to functions from libxml2.
-</p>
-</div>
-<div class="refsect1" title="Details">
-<a name="libglabels-xml.details"></a><h2>Details</h2>
-<div class="refsect2" title="LGL_XML_NAME_SPACE">
-<a name="LGL-XML-NAME-SPACE--CAPS"></a><h3>LGL_XML_NAME_SPACE</h3>
-<pre class="programlisting">#define LGL_XML_NAME_SPACE "http://snaught.com/glabels/2.2/"
-</pre>
-<p>
-</p>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_get_prop_string ()">
-<a name="lgl-xml-get-prop-string"></a><h3>lgl_xml_get_prop_string ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *             lgl_xml_get_prop_string             (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *default_val);</pre>
-<p>
-Return value of property as a string.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>        the libxml2 <span class="type">xmlNodePtr</span> of the node
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
-<td>    the property name
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>default_val</code></em> :</span></p></td>
-<td> a default value to return if property not found
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> the property as a pointer to a gchar string.  This string should
-         be freed with <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"
-><code class="function">g_free()</code></a>.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_get_prop_i18n_string ()">
-<a name="lgl-xml-get-prop-i18n-string"></a><h3>lgl_xml_get_prop_i18n_string ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *             lgl_xml_get_prop_i18n_string        (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *default_val);</pre>
-<p>
-Return value of a translatable property as a string.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>        the libxml2 <span class="type">xmlNodePtr</span> of the node
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
-<td>    the property name
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>default_val</code></em> :</span></p></td>
-<td> a default value to return if property not found
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> the property as a pointer to a gchar string.  This string should
-         be freed with <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"
-><code class="function">g_free()</code></a>.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_get_prop_double ()">
-<a name="lgl-xml-get-prop-double"></a><h3>lgl_xml_get_prop_double ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a>             lgl_xml_get_prop_double             (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> default_val);</pre>
-<p>
-Return value of property as a double.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>        the libxml2 <span class="type">xmlNodePtr</span> of the node
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
-<td>    the property name
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>default_val</code></em> :</span></p></td>
-<td> a default value to return if property not found
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> the property as a double.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_get_prop_boolean ()">
-<a name="lgl-xml-get-prop-boolean"></a><h3>lgl_xml_get_prop_boolean ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a>            lgl_xml_get_prop_boolean            (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a> default_val);</pre>
-<p>
-Return value of property as a boolean.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>        the libxml2 <span class="type">xmlNodePtr</span> of the node
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
-<td>    the property name
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>default_val</code></em> :</span></p></td>
-<td> a default value to return if property not found
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> the property as a boolean.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_get_prop_int ()">
-<a name="lgl-xml-get-prop-int"></a><h3>lgl_xml_get_prop_int ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
->gint</a>                lgl_xml_get_prop_int                (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
->gint</a> default_val);</pre>
-<p>
-Return value of property as an integer.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>        the libxml2 <span class="type">xmlNodePtr</span> of the node
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
-<td>    the property name
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>default_val</code></em> :</span></p></td>
-<td> a default value to return if property not found
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> the property as an integer.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_get_prop_uint ()">
-<a name="lgl-xml-get-prop-uint"></a><h3>lgl_xml_get_prop_uint ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"
->guint</a>               lgl_xml_get_prop_uint               (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"
->guint</a> default_val);</pre>
-<p>
-Return value of property (usually formatted in hex) as an unsigned integer.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>        the libxml2 <span class="type">xmlNodePtr</span> of the node
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
-<td>    the property name
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>default_val</code></em> :</span></p></td>
-<td> a default value to return if property not found
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> the property as an unsigned integer.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_get_prop_length ()">
-<a name="lgl-xml-get-prop-length"></a><h3>lgl_xml_get_prop_length ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a>             lgl_xml_get_prop_length             (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> default_val);</pre>
-<p>
-Return value of a length property as a double, converting to internal
-units (points).  The property is expected to be formatted as a number
-followed by a units string.  If there is no units string, the length
-is assumed to be in points.  Valid units strings are "pt" for points,
-"in" for inches, "mm" for millimeters, "cm" for centimeters, and
-"pc" for picas.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>        the libxml2 <span class="type">xmlNodePtr</span> of the node
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
-<td>    the property name
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>default_val</code></em> :</span></p></td>
-<td> a default value to return if property not found
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> the length in points.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_set_prop_string ()">
-<a name="lgl-xml-set-prop-string"></a><h3>lgl_xml_set_prop_string ()</h3>
-<pre class="programlisting">void                lgl_xml_set_prop_string             (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *val);</pre>
-<p>
-Set a property from a string.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>        the libxml2 <span class="type">xmlNodePtr</span> of the node
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
-<td>    the property name
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>         the value to set
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_set_prop_double ()">
-<a name="lgl-xml-set-prop-double"></a><h3>lgl_xml_set_prop_double ()</h3>
-<pre class="programlisting">void                lgl_xml_set_prop_double             (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> val);</pre>
-<p>
-Set a property from a double.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>        the libxml2 <span class="type">xmlNodePtr</span> of the node
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
-<td>    the property name
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>         the value to set
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_set_prop_boolean ()">
-<a name="lgl-xml-set-prop-boolean"></a><h3>lgl_xml_set_prop_boolean ()</h3>
-<pre class="programlisting">void                lgl_xml_set_prop_boolean            (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a> val);</pre>
-<p>
-Set a property from a boolean.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>        the libxml2 <span class="type">xmlNodePtr</span> of the node
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
-<td>    the property name
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>         the value to set
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_set_prop_int ()">
-<a name="lgl-xml-set-prop-int"></a><h3>lgl_xml_set_prop_int ()</h3>
-<pre class="programlisting">void                lgl_xml_set_prop_int                (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
->gint</a> val);</pre>
-<p>
-Set a property from an integer.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>        the libxml2 <span class="type">xmlNodePtr</span> of the node
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
-<td>    the property name
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>         the value to set
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_set_prop_uint_hex ()">
-<a name="lgl-xml-set-prop-uint-hex"></a><h3>lgl_xml_set_prop_uint_hex ()</h3>
-<pre class="programlisting">void                lgl_xml_set_prop_uint_hex           (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"
->guint</a> val);</pre>
-<p>
-Set a property from an unsigned integer and format in hex.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>        the libxml2 <span class="type">xmlNodePtr</span> of the node
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
-<td>    the property name
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>         the value to set
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_set_prop_length ()">
-<a name="lgl-xml-set-prop-length"></a><h3>lgl_xml_set_prop_length ()</h3>
-<pre class="programlisting">void                lgl_xml_set_prop_length             (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *property,
-                                                         <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"
->gdouble</a> val);</pre>
-<p>
-Set a property from a length, performing any necessary conversion.
-Length properties are formatted as a number followed by a units string.
-The units of the formatted property is determined by the most recent call to
-<a class="link" href="libglabels-xml.html#lgl-xml-set-default-units" title="lgl_xml_set_default_units ()"><code class="function">lgl_xml_set_default_units()</code></a>.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>        the libxml2 <span class="type">xmlNodePtr</span> of the node
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
-<td>    the property name
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>         the length to set in internal units (points)
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_is_node ()">
-<a name="lgl-xml-is-node"></a><h3>lgl_xml_is_node ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
->gboolean</a>            lgl_xml_is_node                     (xmlNodePtr node,
-                                                         const <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *name);</pre>
-<p>
-Test if a node name matches given name.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>        the libxml2 <span class="type">xmlNodePtr</span> of the node
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
-<td>    the node name
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> TRUE if the name of the node matches.  Otherwise FALSE.
-
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_get_node_content ()">
-<a name="lgl-xml-get-node-content"></a><h3>lgl_xml_get_node_content ()</h3>
-<pre class="programlisting"><a
-href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"
->gchar</a> *             lgl_xml_get_node_content            (xmlNodePtr node);</pre>
-<p>
-Get the content of a node.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
-<td>        the libxml2 <span class="type">xmlNodePtr</span> of the node
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> the property as a pointer to a gchar string.  This string should
-         be freed with <a
-href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"
-><code class="function">g_free()</code></a>.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="lgl_xml_set_default_units ()">
-<a name="lgl-xml-set-default-units"></a><h3>lgl_xml_set_default_units ()</h3>
-<pre class="programlisting">void                lgl_xml_set_default_units           (<a class="link" href="libglabels-enums.html#lglUnitsType" title="enum lglUnitsType">lglUnitsType</a> units);</pre>
-<p>
-Set the default units when formatting lengths.  See
-<a class="link" href="libglabels-xml.html#lgl-xml-set-prop-length" title="lgl_xml_set_prop_length ()"><code class="function">lgl_xml_set_prop_length()</code></a>.</p>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>units</code></em> :</span></p></td>
-<td>       default units selection (<a class="link" href="libglabels-enums.html#lglUnitsType" title="enum lglUnitsType"><span class="type">lglUnitsType</span></a>)
-</td>
-</tr></tbody>
-</table></div>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
-          Generated by GTK-Doc V1.11</div>
-</body>
-</html>
diff --git a/docs/libglabels/html/libglabels.devhelp b/docs/libglabels/html/libglabels.devhelp
deleted file mode 100644 (file)
index dd43881..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="no"?>
-<!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
-<book xmlns="http://www.devhelp.net/book" title="LibGlabels Reference Manual" link="index.html" author="" name="libglabels">
-  <chapters>
-    <sub name="Basic LibGlabels Usage" link="ch01.html">
-      <sub name="Database" link="libglabels-db.html"/>
-      <sub name="The lglTemplate Structure" link="libglabels-template.html"/>
-      <sub name="The lglPaper Structure" link="libglabels-paper.html"/>
-      <sub name="The lglCategory Structure" link="libglabels-category.html"/>
-    </sub>
-    <sub name="Working Directly With LibGlabels XML" link="ch02.html">
-      <sub name="XML Paper Functions" link="libglabels-xml-paper.html"/>
-      <sub name="XML Category Functions" link="libglabels-xml-category.html"/>
-      <sub name="XML Template Functions" link="libglabels-xml-template.html"/>
-      <sub name="XML Helper Functions" link="libglabels-xml.html"/>
-    </sub>
-    <sub name="Miscellaneous" link="ch03.html">
-      <sub name="Enumerations" link="libglabels-enums.html"/>
-      <sub name="String Utility Functions" link="libglabels-str.html"/>
-    </sub>
-  </chapters>
-  <functions>
-    <function name="enum lglDbRegStatus" link="libglabels-db.html#lglDbRegStatus"/>
-    <function name="lgl_db_init ()" link="libglabels-db.html#lgl-db-init"/>
-    <function name="lgl_db_get_paper_id_list ()" link="libglabels-db.html#lgl-db-get-paper-id-list"/>
-    <function name="lgl_db_free_paper_id_list ()" link="libglabels-db.html#lgl-db-free-paper-id-list"/>
-    <function name="lgl_db_get_paper_name_list ()" link="libglabels-db.html#lgl-db-get-paper-name-list"/>
-    <function name="lgl_db_free_paper_name_list ()" link="libglabels-db.html#lgl-db-free-paper-name-list"/>
-    <function name="lgl_db_lookup_paper_from_id ()" link="libglabels-db.html#lgl-db-lookup-paper-from-id"/>
-    <function name="lgl_db_lookup_paper_from_name ()" link="libglabels-db.html#lgl-db-lookup-paper-from-name"/>
-    <function name="lgl_db_lookup_paper_id_from_name ()" link="libglabels-db.html#lgl-db-lookup-paper-id-from-name"/>
-    <function name="lgl_db_lookup_paper_name_from_id ()" link="libglabels-db.html#lgl-db-lookup-paper-name-from-id"/>
-    <function name="lgl_db_is_paper_id_known ()" link="libglabels-db.html#lgl-db-is-paper-id-known"/>
-    <function name="lgl_db_is_paper_id_other ()" link="libglabels-db.html#lgl-db-is-paper-id-other"/>
-    <function name="lgl_db_get_category_id_list ()" link="libglabels-db.html#lgl-db-get-category-id-list"/>
-    <function name="lgl_db_free_category_id_list ()" link="libglabels-db.html#lgl-db-free-category-id-list"/>
-    <function name="lgl_db_get_category_name_list ()" link="libglabels-db.html#lgl-db-get-category-name-list"/>
-    <function name="lgl_db_free_category_name_list ()" link="libglabels-db.html#lgl-db-free-category-name-list"/>
-    <function name="lgl_db_lookup_category_from_id ()" link="libglabels-db.html#lgl-db-lookup-category-from-id"/>
-    <function name="lgl_db_lookup_category_from_name ()" link="libglabels-db.html#lgl-db-lookup-category-from-name"/>
-    <function name="lgl_db_lookup_category_id_from_name ()" link="libglabels-db.html#lgl-db-lookup-category-id-from-name"/>
-    <function name="lgl_db_lookup_category_name_from_id ()" link="libglabels-db.html#lgl-db-lookup-category-name-from-id"/>
-    <function name="lgl_db_is_category_id_known ()" link="libglabels-db.html#lgl-db-is-category-id-known"/>
-    <function name="lgl_db_get_brand_list ()" link="libglabels-db.html#lgl-db-get-brand-list"/>
-    <function name="lgl_db_free_brand_list ()" link="libglabels-db.html#lgl-db-free-brand-list"/>
-    <function name="lgl_db_register_template ()" link="libglabels-db.html#lgl-db-register-template"/>
-    <function name="lgl_db_does_template_exist ()" link="libglabels-db.html#lgl-db-does-template-exist"/>
-    <function name="lgl_db_does_template_name_exist ()" link="libglabels-db.html#lgl-db-does-template-name-exist"/>
-    <function name="lgl_db_get_template_name_list_unique ()" link="libglabels-db.html#lgl-db-get-template-name-list-unique"/>
-    <function name="lgl_db_get_template_name_list_all ()" link="libglabels-db.html#lgl-db-get-template-name-list-all"/>
-    <function name="lgl_db_free_template_name_list ()" link="libglabels-db.html#lgl-db-free-template-name-list"/>
-    <function name="lgl_db_lookup_template_from_name ()" link="libglabels-db.html#lgl-db-lookup-template-from-name"/>
-    <function name="lgl_db_print_known_papers ()" link="libglabels-db.html#lgl-db-print-known-papers"/>
-    <function name="lgl_db_print_known_categories ()" link="libglabels-db.html#lgl-db-print-known-categories"/>
-    <function name="lgl_db_print_known_templates ()" link="libglabels-db.html#lgl-db-print-known-templates"/>
-    <function name="lgl_db_print_aliases ()" link="libglabels-db.html#lgl-db-print-aliases"/>
-    <function name="lglTemplate" link="libglabels-template.html#lglTemplate"/>
-    <function name="lglTemplateAlias" link="libglabels-template.html#lglTemplateAlias"/>
-    <function name="enum lglTemplateFrameShape" link="libglabels-template.html#lglTemplateFrameShape"/>
-    <function name="union lglTemplateFrame" link="libglabels-template.html#lglTemplateFrame"/>
-    <function name="lglTemplateFrameAll" link="libglabels-template.html#lglTemplateFrameAll"/>
-    <function name="lglTemplateFrameRect" link="libglabels-template.html#lglTemplateFrameRect"/>
-    <function name="lglTemplateFrameRound" link="libglabels-template.html#lglTemplateFrameRound"/>
-    <function name="lglTemplateFrameCD" link="libglabels-template.html#lglTemplateFrameCD"/>
-    <function name="lglTemplateLayout" link="libglabels-template.html#lglTemplateLayout"/>
-    <function name="enum lglTemplateMarkupType" link="libglabels-template.html#lglTemplateMarkupType"/>
-    <function name="union lglTemplateMarkup" link="libglabels-template.html#lglTemplateMarkup"/>
-    <function name="lglTemplateMarkupMargin" link="libglabels-template.html#lglTemplateMarkupMargin"/>
-    <function name="lglTemplateMarkupLine" link="libglabels-template.html#lglTemplateMarkupLine"/>
-    <function name="lglTemplateMarkupCircle" link="libglabels-template.html#lglTemplateMarkupCircle"/>
-    <function name="lglTemplateMarkupRect" link="libglabels-template.html#lglTemplateMarkupRect"/>
-    <function name="lglTemplateOrigin" link="libglabels-template.html#lglTemplateOrigin"/>
-    <function name="lgl_template_new ()" link="libglabels-template.html#lgl-template-new"/>
-    <function name="lgl_template_dup ()" link="libglabels-template.html#lgl-template-dup"/>
-    <function name="lgl_template_free ()" link="libglabels-template.html#lgl-template-free"/>
-    <function name="lgl_template_add_category ()" link="libglabels-template.html#lgl-template-add-category"/>
-    <function name="lgl_template_add_frame ()" link="libglabels-template.html#lgl-template-add-frame"/>
-    <function name="lgl_template_add_alias ()" link="libglabels-template.html#lgl-template-add-alias"/>
-    <function name="lgl_template_get_name ()" link="libglabels-template.html#lgl-template-get-name"/>
-    <function name="lgl_template_do_templates_match ()" link="libglabels-template.html#lgl-template-do-templates-match"/>
-    <function name="lgl_template_does_brand_match ()" link="libglabels-template.html#lgl-template-does-brand-match"/>
-    <function name="lgl_template_does_page_size_match ()" link="libglabels-template.html#lgl-template-does-page-size-match"/>
-    <function name="lgl_template_does_category_match ()" link="libglabels-template.html#lgl-template-does-category-match"/>
-    <function name="lgl_template_alias_new ()" link="libglabels-template.html#lgl-template-alias-new"/>
-    <function name="lgl_template_alias_dup ()" link="libglabels-template.html#lgl-template-alias-dup"/>
-    <function name="lgl_template_alias_free ()" link="libglabels-template.html#lgl-template-alias-free"/>
-    <function name="lgl_template_frame_rect_new ()" link="libglabels-template.html#lgl-template-frame-rect-new"/>
-    <function name="lgl_template_frame_round_new ()" link="libglabels-template.html#lgl-template-frame-round-new"/>
-    <function name="lgl_template_frame_cd_new ()" link="libglabels-template.html#lgl-template-frame-cd-new"/>
-    <function name="lgl_template_frame_dup ()" link="libglabels-template.html#lgl-template-frame-dup"/>
-    <function name="lgl_template_frame_free ()" link="libglabels-template.html#lgl-template-frame-free"/>
-    <function name="lgl_template_frame_add_layout ()" link="libglabels-template.html#lgl-template-frame-add-layout"/>
-    <function name="lgl_template_frame_add_markup ()" link="libglabels-template.html#lgl-template-frame-add-markup"/>
-    <function name="lgl_template_frame_get_size ()" link="libglabels-template.html#lgl-template-frame-get-size"/>
-    <function name="lgl_template_frame_get_n_labels ()" link="libglabels-template.html#lgl-template-frame-get-n-labels"/>
-    <function name="lgl_template_frame_get_origins ()" link="libglabels-template.html#lgl-template-frame-get-origins"/>
-    <function name="lgl_template_layout_new ()" link="libglabels-template.html#lgl-template-layout-new"/>
-    <function name="lgl_template_layout_dup ()" link="libglabels-template.html#lgl-template-layout-dup"/>
-    <function name="lgl_template_layout_free ()" link="libglabels-template.html#lgl-template-layout-free"/>
-    <function name="lgl_template_markup_margin_new ()" link="libglabels-template.html#lgl-template-markup-margin-new"/>
-    <function name="lgl_template_markup_line_new ()" link="libglabels-template.html#lgl-template-markup-line-new"/>
-    <function name="lgl_template_markup_circle_new ()" link="libglabels-template.html#lgl-template-markup-circle-new"/>
-    <function name="lgl_template_markup_rect_new ()" link="libglabels-template.html#lgl-template-markup-rect-new"/>
-    <function name="lgl_template_markup_dup ()" link="libglabels-template.html#lgl-template-markup-dup"/>
-    <function name="lgl_template_markup_free ()" link="libglabels-template.html#lgl-template-markup-free"/>
-    <function name="lglPaper" link="libglabels-paper.html#lglPaper"/>
-    <function name="lgl_paper_new ()" link="libglabels-paper.html#lgl-paper-new"/>
-    <function name="lgl_paper_dup ()" link="libglabels-paper.html#lgl-paper-dup"/>
-    <function name="lgl_paper_free ()" link="libglabels-paper.html#lgl-paper-free"/>
-    <function name="lglCategory" link="libglabels-category.html#lglCategory"/>
-    <function name="lgl_category_new ()" link="libglabels-category.html#lgl-category-new"/>
-    <function name="lgl_category_dup ()" link="libglabels-category.html#lgl-category-dup"/>
-    <function name="lgl_category_free ()" link="libglabels-category.html#lgl-category-free"/>
-    <function name="lgl_xml_paper_read_papers_from_file ()" link="libglabels-xml-paper.html#lgl-xml-paper-read-papers-from-file"/>
-    <function name="lgl_xml_paper_parse_papers_doc ()" link="libglabels-xml-paper.html#lgl-xml-paper-parse-papers-doc"/>
-    <function name="lgl_xml_paper_parse_paper_node ()" link="libglabels-xml-paper.html#lgl-xml-paper-parse-paper-node"/>
-    <function name="lgl_xml_category_read_categories_from_file ()" link="libglabels-xml-category.html#lgl-xml-category-read-categories-from-file"/>
-    <function name="lgl_xml_category_parse_categories_doc ()" link="libglabels-xml-category.html#lgl-xml-category-parse-categories-doc"/>
-    <function name="lgl_xml_category_parse_category_node ()" link="libglabels-xml-category.html#lgl-xml-category-parse-category-node"/>
-    <function name="lgl_xml_template_read_templates_from_file ()" link="libglabels-xml-template.html#lgl-xml-template-read-templates-from-file"/>
-    <function name="lgl_xml_template_parse_templates_doc ()" link="libglabels-xml-template.html#lgl-xml-template-parse-templates-doc"/>
-    <function name="lgl_xml_template_parse_template_node ()" link="libglabels-xml-template.html#lgl-xml-template-parse-template-node"/>
-    <function name="lgl_xml_template_write_templates_to_file ()" link="libglabels-xml-template.html#lgl-xml-template-write-templates-to-file"/>
-    <function name="lgl_xml_template_write_template_to_file ()" link="libglabels-xml-template.html#lgl-xml-template-write-template-to-file"/>
-    <function name="lgl_xml_template_create_template_node ()" link="libglabels-xml-template.html#lgl-xml-template-create-template-node"/>
-    <function name="LGL_XML_NAME_SPACE" link="libglabels-xml.html#LGL-XML-NAME-SPACE--CAPS"/>
-    <function name="lgl_xml_get_prop_string ()" link="libglabels-xml.html#lgl-xml-get-prop-string"/>
-    <function name="lgl_xml_get_prop_i18n_string ()" link="libglabels-xml.html#lgl-xml-get-prop-i18n-string"/>
-    <function name="lgl_xml_get_prop_double ()" link="libglabels-xml.html#lgl-xml-get-prop-double"/>
-    <function name="lgl_xml_get_prop_boolean ()" link="libglabels-xml.html#lgl-xml-get-prop-boolean"/>
-    <function name="lgl_xml_get_prop_int ()" link="libglabels-xml.html#lgl-xml-get-prop-int"/>
-    <function name="lgl_xml_get_prop_uint ()" link="libglabels-xml.html#lgl-xml-get-prop-uint"/>
-    <function name="lgl_xml_get_prop_length ()" link="libglabels-xml.html#lgl-xml-get-prop-length"/>
-    <function name="lgl_xml_set_prop_string ()" link="libglabels-xml.html#lgl-xml-set-prop-string"/>
-    <function name="lgl_xml_set_prop_double ()" link="libglabels-xml.html#lgl-xml-set-prop-double"/>
-    <function name="lgl_xml_set_prop_boolean ()" link="libglabels-xml.html#lgl-xml-set-prop-boolean"/>
-    <function name="lgl_xml_set_prop_int ()" link="libglabels-xml.html#lgl-xml-set-prop-int"/>
-    <function name="lgl_xml_set_prop_uint_hex ()" link="libglabels-xml.html#lgl-xml-set-prop-uint-hex"/>
-    <function name="lgl_xml_set_prop_length ()" link="libglabels-xml.html#lgl-xml-set-prop-length"/>
-    <function name="lgl_xml_is_node ()" link="libglabels-xml.html#lgl-xml-is-node"/>
-    <function name="lgl_xml_get_node_content ()" link="libglabels-xml.html#lgl-xml-get-node-content"/>
-    <function name="lgl_xml_set_default_units ()" link="libglabels-xml.html#lgl-xml-set-default-units"/>
-    <function name="enum lglUnitsType" link="libglabels-enums.html#lglUnitsType"/>
-    <function name="lgl_str_utf8_casecmp ()" link="libglabels-str.html#lgl-str-utf8-casecmp"/>
-  </functions>
-</book>
diff --git a/docs/libglabels/html/libglabels.devhelp2 b/docs/libglabels/html/libglabels.devhelp2
deleted file mode 100644 (file)
index 1e9cf7d..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="no"?>
-<!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
-<book xmlns="http://www.devhelp.net/book" title="LibGlabels Reference Manual" link="index.html" author="" name="libglabels" version="2" language="c">
-  <chapters>
-    <sub name="Basic LibGlabels Usage" link="ch01.html">
-      <sub name="Database" link="libglabels-db.html"/>
-      <sub name="The lglTemplate Structure" link="libglabels-template.html"/>
-      <sub name="The lglPaper Structure" link="libglabels-paper.html"/>
-      <sub name="The lglCategory Structure" link="libglabels-category.html"/>
-    </sub>
-    <sub name="Working Directly With LibGlabels XML" link="ch02.html">
-      <sub name="XML Paper Functions" link="libglabels-xml-paper.html"/>
-      <sub name="XML Category Functions" link="libglabels-xml-category.html"/>
-      <sub name="XML Template Functions" link="libglabels-xml-template.html"/>
-      <sub name="XML Helper Functions" link="libglabels-xml.html"/>
-    </sub>
-    <sub name="Miscellaneous" link="ch03.html">
-      <sub name="Enumerations" link="libglabels-enums.html"/>
-      <sub name="String Utility Functions" link="libglabels-str.html"/>
-    </sub>
-  </chapters>
-  <functions>
-    <keyword type="enum" name="enum lglDbRegStatus" link="libglabels-db.html#lglDbRegStatus"/>
-    <keyword type="function" name="lgl_db_init ()" link="libglabels-db.html#lgl-db-init"/>
-    <keyword type="function" name="lgl_db_get_paper_id_list ()" link="libglabels-db.html#lgl-db-get-paper-id-list"/>
-    <keyword type="function" name="lgl_db_free_paper_id_list ()" link="libglabels-db.html#lgl-db-free-paper-id-list"/>
-    <keyword type="function" name="lgl_db_get_paper_name_list ()" link="libglabels-db.html#lgl-db-get-paper-name-list"/>
-    <keyword type="function" name="lgl_db_free_paper_name_list ()" link="libglabels-db.html#lgl-db-free-paper-name-list"/>
-    <keyword type="function" name="lgl_db_lookup_paper_from_id ()" link="libglabels-db.html#lgl-db-lookup-paper-from-id"/>
-    <keyword type="function" name="lgl_db_lookup_paper_from_name ()" link="libglabels-db.html#lgl-db-lookup-paper-from-name"/>
-    <keyword type="function" name="lgl_db_lookup_paper_id_from_name ()" link="libglabels-db.html#lgl-db-lookup-paper-id-from-name"/>
-    <keyword type="function" name="lgl_db_lookup_paper_name_from_id ()" link="libglabels-db.html#lgl-db-lookup-paper-name-from-id"/>
-    <keyword type="function" name="lgl_db_is_paper_id_known ()" link="libglabels-db.html#lgl-db-is-paper-id-known"/>
-    <keyword type="function" name="lgl_db_is_paper_id_other ()" link="libglabels-db.html#lgl-db-is-paper-id-other"/>
-    <keyword type="function" name="lgl_db_get_category_id_list ()" link="libglabels-db.html#lgl-db-get-category-id-list"/>
-    <keyword type="function" name="lgl_db_free_category_id_list ()" link="libglabels-db.html#lgl-db-free-category-id-list"/>
-    <keyword type="function" name="lgl_db_get_category_name_list ()" link="libglabels-db.html#lgl-db-get-category-name-list"/>
-    <keyword type="function" name="lgl_db_free_category_name_list ()" link="libglabels-db.html#lgl-db-free-category-name-list"/>
-    <keyword type="function" name="lgl_db_lookup_category_from_id ()" link="libglabels-db.html#lgl-db-lookup-category-from-id"/>
-    <keyword type="function" name="lgl_db_lookup_category_from_name ()" link="libglabels-db.html#lgl-db-lookup-category-from-name"/>
-    <keyword type="function" name="lgl_db_lookup_category_id_from_name ()" link="libglabels-db.html#lgl-db-lookup-category-id-from-name"/>
-    <keyword type="function" name="lgl_db_lookup_category_name_from_id ()" link="libglabels-db.html#lgl-db-lookup-category-name-from-id"/>
-    <keyword type="function" name="lgl_db_is_category_id_known ()" link="libglabels-db.html#lgl-db-is-category-id-known"/>
-    <keyword type="function" name="lgl_db_get_brand_list ()" link="libglabels-db.html#lgl-db-get-brand-list"/>
-    <keyword type="function" name="lgl_db_free_brand_list ()" link="libglabels-db.html#lgl-db-free-brand-list"/>
-    <keyword type="function" name="lgl_db_register_template ()" link="libglabels-db.html#lgl-db-register-template"/>
-    <keyword type="function" name="lgl_db_does_template_exist ()" link="libglabels-db.html#lgl-db-does-template-exist"/>
-    <keyword type="function" name="lgl_db_does_template_name_exist ()" link="libglabels-db.html#lgl-db-does-template-name-exist"/>
-    <keyword type="function" name="lgl_db_get_template_name_list_unique ()" link="libglabels-db.html#lgl-db-get-template-name-list-unique"/>
-    <keyword type="function" name="lgl_db_get_template_name_list_all ()" link="libglabels-db.html#lgl-db-get-template-name-list-all"/>
-    <keyword type="function" name="lgl_db_free_template_name_list ()" link="libglabels-db.html#lgl-db-free-template-name-list"/>
-    <keyword type="function" name="lgl_db_lookup_template_from_name ()" link="libglabels-db.html#lgl-db-lookup-template-from-name"/>
-    <keyword type="function" name="lgl_db_print_known_papers ()" link="libglabels-db.html#lgl-db-print-known-papers"/>
-    <keyword type="function" name="lgl_db_print_known_categories ()" link="libglabels-db.html#lgl-db-print-known-categories"/>
-    <keyword type="function" name="lgl_db_print_known_templates ()" link="libglabels-db.html#lgl-db-print-known-templates"/>
-    <keyword type="function" name="lgl_db_print_aliases ()" link="libglabels-db.html#lgl-db-print-aliases"/>
-    <keyword type="struct" name="lglTemplate" link="libglabels-template.html#lglTemplate"/>
-    <keyword type="struct" name="lglTemplateAlias" link="libglabels-template.html#lglTemplateAlias"/>
-    <keyword type="enum" name="enum lglTemplateFrameShape" link="libglabels-template.html#lglTemplateFrameShape"/>
-    <keyword type="union" name="union lglTemplateFrame" link="libglabels-template.html#lglTemplateFrame"/>
-    <keyword type="struct" name="lglTemplateFrameAll" link="libglabels-template.html#lglTemplateFrameAll"/>
-    <keyword type="struct" name="lglTemplateFrameRect" link="libglabels-template.html#lglTemplateFrameRect"/>
-    <keyword type="struct" name="lglTemplateFrameRound" link="libglabels-template.html#lglTemplateFrameRound"/>
-    <keyword type="struct" name="lglTemplateFrameCD" link="libglabels-template.html#lglTemplateFrameCD"/>
-    <keyword type="struct" name="lglTemplateLayout" link="libglabels-template.html#lglTemplateLayout"/>
-    <keyword type="enum" name="enum lglTemplateMarkupType" link="libglabels-template.html#lglTemplateMarkupType"/>
-    <keyword type="union" name="union lglTemplateMarkup" link="libglabels-template.html#lglTemplateMarkup"/>
-    <keyword type="struct" name="lglTemplateMarkupMargin" link="libglabels-template.html#lglTemplateMarkupMargin"/>
-    <keyword type="struct" name="lglTemplateMarkupLine" link="libglabels-template.html#lglTemplateMarkupLine"/>
-    <keyword type="struct" name="lglTemplateMarkupCircle" link="libglabels-template.html#lglTemplateMarkupCircle"/>
-    <keyword type="struct" name="lglTemplateMarkupRect" link="libglabels-template.html#lglTemplateMarkupRect"/>
-    <keyword type="struct" name="lglTemplateOrigin" link="libglabels-template.html#lglTemplateOrigin"/>
-    <keyword type="function" name="lgl_template_new ()" link="libglabels-template.html#lgl-template-new"/>
-    <keyword type="function" name="lgl_template_dup ()" link="libglabels-template.html#lgl-template-dup"/>
-    <keyword type="function" name="lgl_template_free ()" link="libglabels-template.html#lgl-template-free"/>
-    <keyword type="function" name="lgl_template_add_category ()" link="libglabels-template.html#lgl-template-add-category"/>
-    <keyword type="function" name="lgl_template_add_frame ()" link="libglabels-template.html#lgl-template-add-frame"/>
-    <keyword type="function" name="lgl_template_add_alias ()" link="libglabels-template.html#lgl-template-add-alias"/>
-    <keyword type="function" name="lgl_template_get_name ()" link="libglabels-template.html#lgl-template-get-name"/>
-    <keyword type="function" name="lgl_template_do_templates_match ()" link="libglabels-template.html#lgl-template-do-templates-match"/>
-    <keyword type="function" name="lgl_template_does_brand_match ()" link="libglabels-template.html#lgl-template-does-brand-match"/>
-    <keyword type="function" name="lgl_template_does_page_size_match ()" link="libglabels-template.html#lgl-template-does-page-size-match"/>
-    <keyword type="function" name="lgl_template_does_category_match ()" link="libglabels-template.html#lgl-template-does-category-match"/>
-    <keyword type="function" name="lgl_template_alias_new ()" link="libglabels-template.html#lgl-template-alias-new"/>
-    <keyword type="function" name="lgl_template_alias_dup ()" link="libglabels-template.html#lgl-template-alias-dup"/>
-    <keyword type="function" name="lgl_template_alias_free ()" link="libglabels-template.html#lgl-template-alias-free"/>
-    <keyword type="function" name="lgl_template_frame_rect_new ()" link="libglabels-template.html#lgl-template-frame-rect-new"/>
-    <keyword type="function" name="lgl_template_frame_round_new ()" link="libglabels-template.html#lgl-template-frame-round-new"/>
-    <keyword type="function" name="lgl_template_frame_cd_new ()" link="libglabels-template.html#lgl-template-frame-cd-new"/>
-    <keyword type="function" name="lgl_template_frame_dup ()" link="libglabels-template.html#lgl-template-frame-dup"/>
-    <keyword type="function" name="lgl_template_frame_free ()" link="libglabels-template.html#lgl-template-frame-free"/>
-    <keyword type="function" name="lgl_template_frame_add_layout ()" link="libglabels-template.html#lgl-template-frame-add-layout"/>
-    <keyword type="function" name="lgl_template_frame_add_markup ()" link="libglabels-template.html#lgl-template-frame-add-markup"/>
-    <keyword type="function" name="lgl_template_frame_get_size ()" link="libglabels-template.html#lgl-template-frame-get-size"/>
-    <keyword type="function" name="lgl_template_frame_get_n_labels ()" link="libglabels-template.html#lgl-template-frame-get-n-labels"/>
-    <keyword type="function" name="lgl_template_frame_get_origins ()" link="libglabels-template.html#lgl-template-frame-get-origins"/>
-    <keyword type="function" name="lgl_template_layout_new ()" link="libglabels-template.html#lgl-template-layout-new"/>
-    <keyword type="function" name="lgl_template_layout_dup ()" link="libglabels-template.html#lgl-template-layout-dup"/>
-    <keyword type="function" name="lgl_template_layout_free ()" link="libglabels-template.html#lgl-template-layout-free"/>
-    <keyword type="function" name="lgl_template_markup_margin_new ()" link="libglabels-template.html#lgl-template-markup-margin-new"/>
-    <keyword type="function" name="lgl_template_markup_line_new ()" link="libglabels-template.html#lgl-template-markup-line-new"/>
-    <keyword type="function" name="lgl_template_markup_circle_new ()" link="libglabels-template.html#lgl-template-markup-circle-new"/>
-    <keyword type="function" name="lgl_template_markup_rect_new ()" link="libglabels-template.html#lgl-template-markup-rect-new"/>
-    <keyword type="function" name="lgl_template_markup_dup ()" link="libglabels-template.html#lgl-template-markup-dup"/>
-    <keyword type="function" name="lgl_template_markup_free ()" link="libglabels-template.html#lgl-template-markup-free"/>
-    <keyword type="struct" name="lglPaper" link="libglabels-paper.html#lglPaper"/>
-    <keyword type="function" name="lgl_paper_new ()" link="libglabels-paper.html#lgl-paper-new"/>
-    <keyword type="function" name="lgl_paper_dup ()" link="libglabels-paper.html#lgl-paper-dup"/>
-    <keyword type="function" name="lgl_paper_free ()" link="libglabels-paper.html#lgl-paper-free"/>
-    <keyword type="struct" name="lglCategory" link="libglabels-category.html#lglCategory"/>
-    <keyword type="function" name="lgl_category_new ()" link="libglabels-category.html#lgl-category-new"/>
-    <keyword type="function" name="lgl_category_dup ()" link="libglabels-category.html#lgl-category-dup"/>
-    <keyword type="function" name="lgl_category_free ()" link="libglabels-category.html#lgl-category-free"/>
-    <keyword type="function" name="lgl_xml_paper_read_papers_from_file ()" link="libglabels-xml-paper.html#lgl-xml-paper-read-papers-from-file"/>
-    <keyword type="function" name="lgl_xml_paper_parse_papers_doc ()" link="libglabels-xml-paper.html#lgl-xml-paper-parse-papers-doc"/>
-    <keyword type="function" name="lgl_xml_paper_parse_paper_node ()" link="libglabels-xml-paper.html#lgl-xml-paper-parse-paper-node"/>
-    <keyword type="function" name="lgl_xml_category_read_categories_from_file ()" link="libglabels-xml-category.html#lgl-xml-category-read-categories-from-file"/>
-    <keyword type="function" name="lgl_xml_category_parse_categories_doc ()" link="libglabels-xml-category.html#lgl-xml-category-parse-categories-doc"/>
-    <keyword type="function" name="lgl_xml_category_parse_category_node ()" link="libglabels-xml-category.html#lgl-xml-category-parse-category-node"/>
-    <keyword type="function" name="lgl_xml_template_read_templates_from_file ()" link="libglabels-xml-template.html#lgl-xml-template-read-templates-from-file"/>
-    <keyword type="function" name="lgl_xml_template_parse_templates_doc ()" link="libglabels-xml-template.html#lgl-xml-template-parse-templates-doc"/>
-    <keyword type="function" name="lgl_xml_template_parse_template_node ()" link="libglabels-xml-template.html#lgl-xml-template-parse-template-node"/>
-    <keyword type="function" name="lgl_xml_template_write_templates_to_file ()" link="libglabels-xml-template.html#lgl-xml-template-write-templates-to-file"/>
-    <keyword type="function" name="lgl_xml_template_write_template_to_file ()" link="libglabels-xml-template.html#lgl-xml-template-write-template-to-file"/>
-    <keyword type="function" name="lgl_xml_template_create_template_node ()" link="libglabels-xml-template.html#lgl-xml-template-create-template-node"/>
-    <keyword type="macro" name="LGL_XML_NAME_SPACE" link="libglabels-xml.html#LGL-XML-NAME-SPACE--CAPS"/>
-    <keyword type="function" name="lgl_xml_get_prop_string ()" link="libglabels-xml.html#lgl-xml-get-prop-string"/>
-    <keyword type="function" name="lgl_xml_get_prop_i18n_string ()" link="libglabels-xml.html#lgl-xml-get-prop-i18n-string"/>
-    <keyword type="function" name="lgl_xml_get_prop_double ()" link="libglabels-xml.html#lgl-xml-get-prop-double"/>
-    <keyword type="function" name="lgl_xml_get_prop_boolean ()" link="libglabels-xml.html#lgl-xml-get-prop-boolean"/>
-    <keyword type="function" name="lgl_xml_get_prop_int ()" link="libglabels-xml.html#lgl-xml-get-prop-int"/>
-    <keyword type="function" name="lgl_xml_get_prop_uint ()" link="libglabels-xml.html#lgl-xml-get-prop-uint"/>
-    <keyword type="function" name="lgl_xml_get_prop_length ()" link="libglabels-xml.html#lgl-xml-get-prop-length"/>
-    <keyword type="function" name="lgl_xml_set_prop_string ()" link="libglabels-xml.html#lgl-xml-set-prop-string"/>
-    <keyword type="function" name="lgl_xml_set_prop_double ()" link="libglabels-xml.html#lgl-xml-set-prop-double"/>
-    <keyword type="function" name="lgl_xml_set_prop_boolean ()" link="libglabels-xml.html#lgl-xml-set-prop-boolean"/>
-    <keyword type="function" name="lgl_xml_set_prop_int ()" link="libglabels-xml.html#lgl-xml-set-prop-int"/>
-    <keyword type="function" name="lgl_xml_set_prop_uint_hex ()" link="libglabels-xml.html#lgl-xml-set-prop-uint-hex"/>
-    <keyword type="function" name="lgl_xml_set_prop_length ()" link="libglabels-xml.html#lgl-xml-set-prop-length"/>
-    <keyword type="function" name="lgl_xml_is_node ()" link="libglabels-xml.html#lgl-xml-is-node"/>
-    <keyword type="function" name="lgl_xml_get_node_content ()" link="libglabels-xml.html#lgl-xml-get-node-content"/>
-    <keyword type="function" name="lgl_xml_set_default_units ()" link="libglabels-xml.html#lgl-xml-set-default-units"/>
-    <keyword type="enum" name="enum lglUnitsType" link="libglabels-enums.html#lglUnitsType"/>
-    <keyword type="function" name="lgl_str_utf8_casecmp ()" link="libglabels-str.html#lgl-str-utf8-casecmp"/>
-    <keyword type="constant" name="LGL_DB_REG_OK" link="libglabels-db.html#LGL-DB-REG-OK--CAPS"/>
-    <keyword type="constant" name="LGL_DB_REG_BAD_PAPER_ID" link="libglabels-db.html#LGL-DB-REG-BAD-PAPER-ID--CAPS"/>
-    <keyword type="constant" name="LGL_DB_REG_BRAND_PART_EXISTS" link="libglabels-db.html#LGL-DB-REG-BRAND-PART-EXISTS--CAPS"/>
-    <keyword type="constant" name="LGL_DB_REG_FILE_WRITE_ERROR" link="libglabels-db.html#LGL-DB-REG-FILE-WRITE-ERROR--CAPS"/>
-    <keyword type="constant" name="LGL_TEMPLATE_FRAME_SHAPE_RECT" link="libglabels-template.html#LGL-TEMPLATE-FRAME-SHAPE-RECT--CAPS"/>
-    <keyword type="constant" name="LGL_TEMPLATE_FRAME_SHAPE_ROUND" link="libglabels-template.html#LGL-TEMPLATE-FRAME-SHAPE-ROUND--CAPS"/>
-    <keyword type="constant" name="LGL_TEMPLATE_FRAME_SHAPE_CD" link="libglabels-template.html#LGL-TEMPLATE-FRAME-SHAPE-CD--CAPS"/>
-    <keyword type="constant" name="LGL_TEMPLATE_MARKUP_MARGIN" link="libglabels-template.html#LGL-TEMPLATE-MARKUP-MARGIN--CAPS"/>
-    <keyword type="constant" name="LGL_TEMPLATE_MARKUP_LINE" link="libglabels-template.html#LGL-TEMPLATE-MARKUP-LINE--CAPS"/>
-    <keyword type="constant" name="LGL_TEMPLATE_MARKUP_CIRCLE" link="libglabels-template.html#LGL-TEMPLATE-MARKUP-CIRCLE--CAPS"/>
-    <keyword type="constant" name="LGL_TEMPLATE_MARKUP_RECT" link="libglabels-template.html#LGL-TEMPLATE-MARKUP-RECT--CAPS"/>
-    <keyword type="constant" name="LGL_UNITS_POINT" link="libglabels-enums.html#LGL-UNITS-POINT--CAPS"/>
-    <keyword type="constant" name="LGL_UNITS_INCH" link="libglabels-enums.html#LGL-UNITS-INCH--CAPS"/>
-    <keyword type="constant" name="LGL_UNITS_MM" link="libglabels-enums.html#LGL-UNITS-MM--CAPS"/>
-    <keyword type="constant" name="LGL_UNITS_CM" link="libglabels-enums.html#LGL-UNITS-CM--CAPS"/>
-    <keyword type="constant" name="LGL_UNITS_PICA" link="libglabels-enums.html#LGL-UNITS-PICA--CAPS"/>
-    <keyword type="constant" name="LGL_UNITS_FIRST" link="libglabels-enums.html#LGL-UNITS-FIRST--CAPS"/>
-    <keyword type="constant" name="LGL_UNITS_LAST" link="libglabels-enums.html#LGL-UNITS-LAST--CAPS"/>
-  </functions>
-</book>
index bb44c280939386e023451f4355275833247a9a2a..d6f6c26ece096fcfb7fee1d4d8ea7896ca3aa765 100644 (file)
@@ -1,13 +1,15 @@
 .synopsis, .classsynopsis
 {
-  background: #eeeeee;
-  border: solid 1px #aaaaaa;
+  /* tango:aluminium 1/2 */
+  background: #eeeeec;
+  border: solid 1px #d3d7cf;
   padding: 0.5em;
 }
 .programlisting
 {
-  background: #eeeeff;
-  border: solid 1px #aaaaff;
+  /* tango:sky blue 0/1 */
+  background: #e6f3ff;
+  border: solid 1px #729fcf;
   padding: 0.5em;
 }
 .variablelist
   vertical-align: top;
 }
 
-/* this is needed so that the local anchors are displayed below the naviagtion */
 @media screen {
   sup a.footnote
   {
     position: relative;
     top: 0em ! important;
+    
   }
-  div.refnamediv a[name], div.refsect1 a[name]
+  /* this is needed so that the local anchors are displayed below the naviagtion */
+  div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name]
   {
+    display: inline-block;
     position: relative;
-    top: -4.5em;
+    top:-5em;
   }
+  /* this seems to be a bug in the xsl style sheets when generating indexes */
+  div.index div.index
+  {
+    top: 0em;
+  }
+  /* make space for the fixed navigation bar and add space at the bottom so that
+   * link targets appear somewhat close to top
+   */
+  body
+  {
+    padding-top: 3.2em;
+    padding-bottom: 20em;
+  }
+  /* style and size the navigation bar */
   table.navigation#top
   {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
+    position: fixed;
+    /* tango:scarlet red 0/1 */
+    background: #ffe6e6;
+    border: solid 1px #ef2929;
     margin-top: 0;
     margin-bottom: 0;
-    position: fixed;
     top: 0;
     left: 0;
-    height: 2em;
-    z-index: 1;
+    height: 3em;
+    z-index: 10;
   }
-  .navigation a
+  .navigation a, .navigation a:visited
   {
-    color: #770000;
+    /* tango:scarlet red 3 */
+    color: #a40000;
   }
-  .navigation a:visited
+  .navigation a:hover
   {
-    color: #550000;
+    /* tango:scarlet red 1 */
+    color: #ef2929;
   }
   td.shortcuts
   {
-    color: #770000;
+    /* tango:scarlet red 1 */
+    color: #ef2929;
     font-size: 80%;
     white-space: nowrap;
   }
-  div.refentry, div.chapter, div.reference, div.part, div.book, div.glossary, div.sect1, div.appendix, div.preface
-  {
-    position: relative;
-    top: 3em;
-    z-index: 0;
-  }
-  div.glossary, div.index
-  {
-    position: relative;
-    top: 2em;
-    z-index: 0;
-  }
-  div.refnamediv
-  {
-    margin-top: 2em;
-  }
-  body
-  {
-    padding-bottom: 20em;
-  }
 }
 @media print {
   table.navigation {
   div.titlepage table.navigation {
     visibility: visible;
     display: table;
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
+    /* tango:scarlet red 0/1 */
+    background: #ffe6e6;
+    border: solid 1px #ef2929;
     margin-top: 0;
     margin-bottom: 0;
     top: 0;
     left: 0;
-    height: 2em;
+    height: 3em;
   }
 }
 
   font-size: 200%;
 }
 
-
 div.gallery-float
 {
   float: left;
@@ -116,44 +118,48 @@ div.gallery-spacer
 {
   clear: both;
 }
-a
+
+a, a:visited
 {
   text-decoration: none;
+  /* tango:sky blue 2 */
+  color: #3465a4;
 }
 a:hover
 {
   text-decoration: underline;
-  color: #FF0000;
+  /* tango:sky blue 1 */
+  color: #729fcf;
 }
 
 div.table table
 {
   border-collapse: collapse;
   border-spacing: 0px;
-  border-style: solid;
-  border-color: #777777;
-  border-width: 1px;
+  /* tango:aluminium 3 */
+  border: solid 1px #babdb6;
 }
 
 div.table table td, div.table table th
 {
-  border-style: solid;
-  border-color: #777777;
-  border-width: 1px;
+  /* tango:aluminium 3 */
+  border: solid 1px #babdb6;
   padding: 3px;
   vertical-align: top;
 }
 
 div.table table th
 {
-  background-color: #eeeeee;
+  /* tango:aluminium 2 */
+  background-color: #d3d7cf;
 }
 
 hr
 {
-  color: #777777;
-  background: #777777;
-  border: 0;
+  /* tango:aluminium 3 */
+  color: #babdb6;
+  background: #babdb6;
+  border: none 0px;
   height: 1px;
   clear: both;
 }
@@ -161,7 +167,100 @@ hr
 .footer
 {
   padding-top: 3.5em;
-  color: #777777;
+  /* tango:aluminium 3 */
+  color: #babdb6;
   text-align: center;
   font-size: 80%;
 }
+
+.warning
+{
+  /* tango:orange 0/1 */
+  background: #ffeed9;
+  border-color: #ffb04f;
+}
+.note
+{
+  /* tango:chameleon 0/0.5 */
+  background: #d8ffb2;
+  border-color: #abf562;
+}
+.note, .warning
+{
+  padding: 0.5em;
+  border-width: 1px;
+  border-style: solid;
+}
+.note h3, .warning h3
+{
+  margin-top: 0.0em
+}
+.note p, .warning p
+{
+  margin-bottom: 0.0em
+}
+
+/* blob links */
+h2 .extralinks, h3 .extralinks
+{
+  float: right;
+  /* tango:aluminium 3 */
+  color: #babdb6;
+  font-size: 80%;
+  font-weight: normal;
+}
+
+.annotation
+{
+  /* tango:aluminium 5 */
+  color: #555753;
+  font-size: 80%;
+  font-weight: normal;
+}
+
+/* code listings */
+
+.listing_code .programlisting .cbracket   { color: #a40000; } /* tango: scarlet red 3 */
+.listing_code .programlisting .comment    { color: #a1a39d; } /* tango: aluminium 4 */
+.listing_code .programlisting .function   { color: #000000; font-weight: bold; }
+.listing_code .programlisting .function a { color: #11326b; font-weight: bold; } /* tango: sky blue 4 */
+.listing_code .programlisting .keyword    { color: #4e9a06; } /* tango: chameleon 3  */
+.listing_code .programlisting .linenum    { color: #babdb6; } /* tango: aluminium 3 */
+.listing_code .programlisting .normal     { color: #000000; }
+.listing_code .programlisting .number     { color: #75507b; } /* tango: plum 2 */
+.listing_code .programlisting .preproc    { color: #204a87; } /* tango: sky blue 3  */
+.listing_code .programlisting .string     { color: #c17d11; } /* tango: chocolate 2 */
+.listing_code .programlisting .type       { color: #000000; }
+.listing_code .programlisting .type a     { color: #11326b; } /* tango: sky blue 4 */
+.listing_code .programlisting .symbol     { color: #ce5c00; } /* tango: orange 3 */
+
+.listing_frame {
+  /* tango:sky blue 1 */
+  border: solid 1px #729fcf;
+  padding: 0px;
+}
+
+.listing_lines, .listing_code {
+  margin-top: 0px;
+  margin-bottom: 0px;
+  padding: 0.5em;
+}
+.listing_lines {
+  /* tango:sky blue 0.5 */
+  background: #a6c5e3;
+  /* tango:aluminium 6 */
+  color: #2e3436;
+}
+.listing_code {
+  /* tango:sky blue 0 */
+  background: #e6f3ff;
+}
+.listing_code .programlisting {
+  /* override from previous */
+  border: none 0px;
+  padding: 0px;
+}
+.listing_lines pre, .listing_code pre {
+  margin: 0px;
+}
+
diff --git a/docs/libglabels/libglabels-3.0-docs.sgml b/docs/libglabels/libglabels-3.0-docs.sgml
new file mode 100644 (file)
index 0000000..28ddc61
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
+
+<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
+
+  <bookinfo>
+    <title>LibGlabels 3.0 Reference Manual</title>
+  </bookinfo>
+
+  <chapter>
+    <title>Basic LibGlabels Usage</title>
+    <xi:include href="xml/db.xml"/>
+    <xi:include href="xml/template.xml"/>
+    <xi:include href="xml/paper.xml"/>
+    <xi:include href="xml/category.xml"/>
+    <xi:include href="xml/vendor.xml"/>
+  </chapter>
+
+  <chapter>
+    <title>Working Directly With LibGlabels XML</title>
+    <xi:include href="xml/xml-paper.xml"/>
+    <xi:include href="xml/xml-category.xml"/>
+    <xi:include href="xml/xml-template.xml"/>
+    <xi:include href="xml/xml-vendor.xml"/>
+    <xi:include href="xml/xml.xml"/>
+  </chapter>
+
+  <chapter>
+    <title>Miscellaneous</title>
+    <xi:include href="xml/units.xml"/>
+    <xi:include href="xml/str.xml"/>
+  </chapter>
+
+</book>
diff --git a/docs/libglabels/libglabels-3.0-overrides.txt b/docs/libglabels/libglabels-3.0-overrides.txt
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/docs/libglabels/libglabels-3.0-sections.txt b/docs/libglabels/libglabels-3.0-sections.txt
new file mode 100644 (file)
index 0000000..7efab0c
--- /dev/null
@@ -0,0 +1,235 @@
+<SECTION>
+<FILE>db</FILE>
+<INCLUDE>libglabels/lgl-db.h</INCLUDE>
+lglDbRegStatus
+lglDbDeleteStatus
+<SUBSECTION Init Functions>
+lgl_db_init
+<SUBSECTION Notification>
+lglDbNotifyFunc
+lgl_db_notify_add
+lgl_db_notify_remove
+<SUBSECTION Paper Functions>
+lgl_db_get_paper_id_list
+lgl_db_free_paper_id_list
+lgl_db_get_paper_name_list
+lgl_db_free_paper_name_list
+lgl_db_lookup_paper_from_id
+lgl_db_lookup_paper_from_name
+lgl_db_lookup_paper_id_from_name
+lgl_db_lookup_paper_name_from_id
+lgl_db_is_paper_id_known
+lgl_db_is_paper_id_other
+<SUBSECTION Category Functions>
+lgl_db_get_category_id_list
+lgl_db_free_category_id_list
+lgl_db_get_category_name_list
+lgl_db_free_category_name_list
+lgl_db_lookup_category_from_id
+lgl_db_lookup_category_from_name
+lgl_db_lookup_category_id_from_name
+lgl_db_lookup_category_name_from_id
+lgl_db_is_category_id_known
+<SUBSECTION Brand Functions>
+lgl_db_get_brand_list
+lgl_db_free_brand_list
+<SUBSECTION Template Functions>
+lgl_db_register_template
+lgl_db_delete_template_by_brand_part
+lgl_db_delete_template_by_name
+lgl_db_does_template_exist
+lgl_db_does_template_name_exist
+lgl_db_get_template_name_list_all
+lgl_db_get_similar_template_name_list
+lgl_db_free_template_name_list
+lgl_db_lookup_template_from_name
+lgl_db_lookup_template_from_brand_part
+<SUBSECTION Vendor Functions>
+lgl_db_get_vendor_name_list
+lgl_db_free_vendor_name_list
+lgl_db_is_vendor_name_known
+lgl_db_lookup_vendor_from_name
+<SUBSECTION Debugging Functions>
+lgl_db_print_known_papers
+lgl_db_print_known_categories
+lgl_db_print_known_templates
+lgl_db_print_known_vendors
+</SECTION>
+
+<SECTION>
+<FILE>template</FILE>
+<INCLUDE>libglabels/lgl-template.h</INCLUDE>
+lglTemplate
+<SUBSECTION Frame Structure>
+lglTemplateFrameShape
+lglTemplateFrame
+lglTemplateFrameAll
+lglTemplateFrameRect
+lglTemplateFrameEllipse
+lglTemplateFrameRound
+lglTemplateFrameCD
+<SUBSECTION Layout Structure>
+lglTemplateLayout
+<SUBSECTION Markup Structure>
+lglTemplateMarkupType
+lglTemplateMarkup
+lglTemplateMarkupMargin
+lglTemplateMarkupLine
+lglTemplateMarkupCircle
+lglTemplateMarkupRect
+lglTemplateMarkupEllipse
+<SUBSECTION Origin Structure>
+lglTemplateOrigin
+<SUBSECTION Template Functions>
+lgl_template_new
+lgl_template_new_from_equiv
+lgl_template_dup
+lgl_template_free
+lgl_template_add_category
+lgl_template_add_frame
+<SUBSECTION Template Query Functions>
+lgl_template_get_name
+lgl_template_do_templates_match
+lgl_template_does_brand_match
+lgl_template_does_page_size_match
+lgl_template_does_category_match
+lgl_template_are_templates_identical
+<SUBSECTION Frame Functions>
+lgl_template_frame_rect_new
+lgl_template_frame_ellipse_new
+lgl_template_frame_round_new
+lgl_template_frame_cd_new
+lgl_template_frame_dup
+lgl_template_frame_free
+lgl_template_frame_add_layout
+lgl_template_frame_add_markup
+<SUBSECTION Frame Frame Query Functions>
+lgl_template_frame_get_size
+lgl_template_frame_get_n_labels
+lgl_template_frame_get_origins
+lgl_template_frame_get_layout_description
+lgl_template_frame_get_size_description
+<SUBSECTION Layout Functions>
+lgl_template_layout_new
+lgl_template_layout_dup
+lgl_template_layout_free
+<SUBSECTION Markup Functions>
+lgl_template_markup_margin_new
+lgl_template_markup_line_new
+lgl_template_markup_circle_new
+lgl_template_markup_rect_new
+lgl_template_markup_ellipse_new
+lgl_template_markup_dup
+lgl_template_markup_free
+<SUBSECTION Debugging Functions>
+lgl_template_print
+</SECTION>
+
+<SECTION>
+<FILE>paper</FILE>
+<INCLUDE>libglabels/lgl-paper.h</INCLUDE>
+lglPaper
+lgl_paper_new
+lgl_paper_dup
+lgl_paper_free
+</SECTION>
+
+<SECTION>
+<FILE>category</FILE>
+<INCLUDE>libglabels/lgl-category.h</INCLUDE>
+lglCategory
+lgl_category_new
+lgl_category_dup
+lgl_category_free
+</SECTION>
+
+<SECTION>
+<FILE>vendor</FILE>
+<INCLUDE>libglabels/lgl-vendor.h</INCLUDE>
+lglVendor
+lgl_vendor_new
+lgl_vendor_dup
+lgl_vendor_free
+</SECTION>
+
+<SECTION>
+<FILE>xml-paper</FILE>
+<INCLUDE>libglabels/lgl-xml-paper.h</INCLUDE>
+lgl_xml_paper_read_papers_from_file
+lgl_xml_paper_parse_papers_doc
+lgl_xml_paper_parse_paper_node
+</SECTION>
+
+<SECTION>
+<FILE>xml-category</FILE>
+<INCLUDE>libglabels/lgl-xml-category.h</INCLUDE>
+lgl_xml_category_read_categories_from_file
+lgl_xml_category_parse_categories_doc
+lgl_xml_category_parse_category_node
+</SECTION>
+
+<SECTION>
+<FILE>xml-template</FILE>
+<INCLUDE>libglabels/lgl-xml-templates.h</INCLUDE>
+lgl_xml_template_read_templates_from_file
+lgl_xml_template_parse_templates_doc
+lgl_xml_template_parse_template_node
+lgl_xml_template_write_templates_to_file
+lgl_xml_template_write_template_to_file
+lgl_xml_template_create_template_node
+</SECTION>
+
+<SECTION>
+<FILE>xml-vendor</FILE>
+<INCLUDE>libglabels/lgl-xml-vendor.h</INCLUDE>
+lgl_xml_vendor_read_vendors_from_file
+lgl_xml_vendor_parse_vendors_doc
+lgl_xml_vendor_parse_vendor_node
+</SECTION>
+
+<SECTION>
+<FILE>xml</FILE>
+<INCLUDE>libglabels/lgl-xml.h</INCLUDE>
+LGL_XML_NAME_SPACE
+<SUBSECTION Get Property Functions>
+lgl_xml_get_prop_string
+lgl_xml_get_prop_i18n_string
+lgl_xml_get_prop_double
+lgl_xml_get_prop_boolean
+lgl_xml_get_prop_int
+lgl_xml_get_prop_uint
+lgl_xml_get_prop_length
+<SUBSECTION Set Property Functions>
+lgl_xml_set_prop_string
+lgl_xml_set_prop_double
+lgl_xml_set_prop_boolean
+lgl_xml_set_prop_int
+lgl_xml_set_prop_uint_hex
+lgl_xml_set_prop_length
+<SUBSECTION Misc Functions>
+lgl_xml_is_node
+lgl_xml_get_node_content
+<SUBSECTION Configuration Functions>
+lgl_xml_set_default_units
+</SECTION>
+
+<SECTION>
+<FILE>units</FILE>
+<INCLUDE>libglabels/lgl-units.h</INCLUDE>
+lglUnits
+lgl_units_get_id
+lgl_units_from_id
+lgl_units_get_name
+lgl_units_from_name
+lgl_units_get_points_per_unit
+lgl_units_get_units_per_point
+</SECTION>
+
+<SECTION>
+<FILE>str</FILE>
+<INCLUDE>libglabels/lgl-str.h</INCLUDE>
+lgl_str_utf8_casecmp
+lgl_str_part_name_cmp
+lgl_str_format_fraction
+</SECTION>
+
diff --git a/docs/libglabels/libglabels-docs.sgml b/docs/libglabels/libglabels-docs.sgml
deleted file mode 100644 (file)
index a4b5b38..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
-               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
-
-<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
-
-  <bookinfo>
-    <title>LibGlabels Reference Manual</title>
-  </bookinfo>
-
-  <chapter>
-    <title>Basic LibGlabels Usage</title>
-    <xi:include href="xml/db.xml"/>
-    <xi:include href="xml/template.xml"/>
-    <xi:include href="xml/paper.xml"/>
-    <xi:include href="xml/category.xml"/>
-  </chapter>
-
-  <chapter>
-    <title>Working Directly With LibGlabels XML</title>
-    <xi:include href="xml/xml-paper.xml"/>
-    <xi:include href="xml/xml-category.xml"/>
-    <xi:include href="xml/xml-template.xml"/>
-    <xi:include href="xml/xml.xml"/>
-  </chapter>
-
-  <chapter>
-    <title>Miscellaneous</title>
-    <xi:include href="xml/enums.xml"/>
-    <xi:include href="xml/str.xml"/>
-  </chapter>
-
-</book>
diff --git a/docs/libglabels/libglabels-overrides.txt b/docs/libglabels/libglabels-overrides.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/docs/libglabels/libglabels-sections.txt b/docs/libglabels/libglabels-sections.txt
deleted file mode 100644 (file)
index 658d109..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-<SECTION>
-<FILE>db</FILE>
-<INCLUDE>libglabels/db.h</INCLUDE>
-lglDbRegStatus
-<SUBSECTION Init Functions>
-lgl_db_init
-<SUBSECTION Paper Functions>
-lgl_db_get_paper_id_list
-lgl_db_free_paper_id_list
-lgl_db_get_paper_name_list
-lgl_db_free_paper_name_list
-lgl_db_lookup_paper_from_id
-lgl_db_lookup_paper_from_name
-lgl_db_lookup_paper_id_from_name
-lgl_db_lookup_paper_name_from_id
-lgl_db_is_paper_id_known
-lgl_db_is_paper_id_other
-<SUBSECTION Category Functions>
-lgl_db_get_category_id_list
-lgl_db_free_category_id_list
-lgl_db_get_category_name_list
-lgl_db_free_category_name_list
-lgl_db_lookup_category_from_id
-lgl_db_lookup_category_from_name
-lgl_db_lookup_category_id_from_name
-lgl_db_lookup_category_name_from_id
-lgl_db_is_category_id_known
-<SUBSECTION Brand Functions>
-lgl_db_get_brand_list
-lgl_db_free_brand_list
-<SUBSECTION Template Functions>
-lgl_db_register_template
-lgl_db_does_template_exist
-lgl_db_does_template_name_exist
-lgl_db_get_template_name_list_unique
-lgl_db_get_template_name_list_all
-lgl_db_free_template_name_list
-lgl_db_lookup_template_from_name
-<SUBSECTION Debugging Functions>
-lgl_db_print_known_papers
-lgl_db_print_known_categories
-lgl_db_print_known_templates
-lgl_db_print_aliases
-</SECTION>
-
-<SECTION>
-<FILE>template</FILE>
-<INCLUDE>libglabels/template.h</INCLUDE>
-lglTemplate
-<SUBSECTION Alias Structure>
-lglTemplateAlias
-<SUBSECTION Frame Structure>
-lglTemplateFrameShape
-lglTemplateFrame
-lglTemplateFrameAll
-lglTemplateFrameRect
-lglTemplateFrameRound
-lglTemplateFrameCD
-<SUBSECTION Layout Structure>
-lglTemplateLayout
-<SUBSECTION Markup Structure>
-lglTemplateMarkupType
-lglTemplateMarkup
-lglTemplateMarkupMargin
-lglTemplateMarkupLine
-lglTemplateMarkupCircle
-lglTemplateMarkupRect
-<SUBSECTION Origin Structure>
-lglTemplateOrigin
-<SUBSECTION Template Functions>
-lgl_template_new
-lgl_template_dup
-lgl_template_free
-lgl_template_add_category
-lgl_template_add_frame
-lgl_template_add_alias
-<SUBSECTION Template Query Functions>
-lgl_template_get_name
-lgl_template_do_templates_match
-lgl_template_does_brand_match
-lgl_template_does_page_size_match
-lgl_template_does_category_match
-<SUBSECTION Alias Functions>
-lgl_template_alias_new
-lgl_template_alias_dup
-lgl_template_alias_free
-<SUBSECTION Frame Functions>
-lgl_template_frame_rect_new
-lgl_template_frame_round_new
-lgl_template_frame_cd_new
-lgl_template_frame_dup
-lgl_template_frame_free
-lgl_template_frame_add_layout
-lgl_template_frame_add_markup
-<SUBSECTION Frame Frame Query Functions>
-lgl_template_frame_get_size
-lgl_template_frame_get_n_labels
-lgl_template_frame_get_origins
-<SUBSECTION Layout Functions>
-lgl_template_layout_new
-lgl_template_layout_dup
-lgl_template_layout_free
-<SUBSECTION Markup Functions>
-lgl_template_markup_margin_new
-lgl_template_markup_line_new
-lgl_template_markup_circle_new
-lgl_template_markup_rect_new
-lgl_template_markup_dup
-lgl_template_markup_free
-</SECTION>
-
-<SECTION>
-<FILE>paper</FILE>
-<INCLUDE>libglabels/paper.h</INCLUDE>
-lglPaper
-lgl_paper_new
-lgl_paper_dup
-lgl_paper_free
-</SECTION>
-
-<SECTION>
-<FILE>category</FILE>
-<INCLUDE>libglabels/category.h</INCLUDE>
-lglCategory
-lgl_category_new
-lgl_category_dup
-lgl_category_free
-</SECTION>
-
-<SECTION>
-<FILE>xml-paper</FILE>
-<INCLUDE>libglabels/xml-paper.h</INCLUDE>
-lgl_xml_paper_read_papers_from_file
-lgl_xml_paper_parse_papers_doc
-lgl_xml_paper_parse_paper_node
-</SECTION>
-
-<SECTION>
-<FILE>xml-category</FILE>
-<INCLUDE>libglabels/xml-category.h</INCLUDE>
-lgl_xml_category_read_categories_from_file
-lgl_xml_category_parse_categories_doc
-lgl_xml_category_parse_category_node
-</SECTION>
-
-<SECTION>
-<FILE>xml-template</FILE>
-<INCLUDE>libglabels/xml-templates.h</INCLUDE>
-lgl_xml_template_read_templates_from_file
-lgl_xml_template_parse_templates_doc
-lgl_xml_template_parse_template_node
-lgl_xml_template_write_templates_to_file
-lgl_xml_template_write_template_to_file
-lgl_xml_template_create_template_node
-</SECTION>
-
-<SECTION>
-<FILE>xml</FILE>
-<INCLUDE>libglabels/xml.h</INCLUDE>
-LGL_XML_NAME_SPACE
-<SUBSECTION Get Property Functions>
-lgl_xml_get_prop_string
-lgl_xml_get_prop_i18n_string
-lgl_xml_get_prop_double
-lgl_xml_get_prop_boolean
-lgl_xml_get_prop_int
-lgl_xml_get_prop_uint
-lgl_xml_get_prop_length
-<SUBSECTION Set Property Functions>
-lgl_xml_set_prop_string
-lgl_xml_set_prop_double
-lgl_xml_set_prop_boolean
-lgl_xml_set_prop_int
-lgl_xml_set_prop_uint_hex
-lgl_xml_set_prop_length
-<SUBSECTION Misc Functions>
-lgl_xml_is_node
-lgl_xml_get_node_content
-<SUBSECTION Configuration Functions>
-lgl_xml_set_default_units
-</SECTION>
-
-<SECTION>
-<FILE>enums</FILE>
-<INCLUDE>libglabels/enums.h</INCLUDE>
-lglUnitsType
-</SECTION>
-
-<SECTION>
-<FILE>str</FILE>
-<INCLUDE>libglabels/str.h</INCLUDE>
-lgl_str_utf8_casecmp
-</SECTION>
-
diff --git a/docs/libglabels/libglabels.types b/docs/libglabels/libglabels.types
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/docs/libglabels/tmpl/category.sgml b/docs/libglabels/tmpl/category.sgml
deleted file mode 100644 (file)
index 2143fd1..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-The lglCategory Structure
-
-<!-- ##### SECTION Short_Description ##### -->
-Template category definitions
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-This section describes a structure for representing a category of stationary and related
-functions.
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### STRUCT lglCategory ##### -->
-<para>
-This structure defines a category.
-</para>
-
-@id: Category ID.
-@name: Localized category name.
-
-<!-- ##### FUNCTION lgl_category_new ##### -->
-<para>
-
-</para>
-
-@id: 
-@name: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_category_dup ##### -->
-<para>
-
-</para>
-
-@orig: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_category_free ##### -->
-<para>
-
-</para>
-
-@category: 
-
-
diff --git a/docs/libglabels/tmpl/db.sgml b/docs/libglabels/tmpl/db.sgml
deleted file mode 100644 (file)
index 3d5d2de..0000000
+++ /dev/null
@@ -1,314 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-Database
-
-<!-- ##### SECTION Short_Description ##### -->
-Database of pre-defined templates
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-This section describes a set of functions to locate and add templates and related information in
-the LibGlabels template database.
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### ENUM lglDbRegStatus ##### -->
-<para>
-This enumeration defines a set of possible return values for lgl_db_register_template().
-</para>
-
-@LGL_DB_REG_OK: Registration successful.
-@LGL_DB_REG_BAD_PAPER_ID:  Registration failed because paper id is unknown.
-@LGL_DB_REG_BRAND_PART_EXISTS: Registration failed because template with same brand and part name/number already exists.
-@LGL_DB_REG_FILE_WRITE_ERROR: Registration failed because an error while writing to disk.
-
-<!-- ##### FUNCTION lgl_db_init ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### FUNCTION lgl_db_get_paper_id_list ##### -->
-<para>
-
-</para>
-
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_db_free_paper_id_list ##### -->
-<para>
-
-</para>
-
-@ids: 
-
-
-<!-- ##### FUNCTION lgl_db_get_paper_name_list ##### -->
-<para>
-
-</para>
-
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_db_free_paper_name_list ##### -->
-<para>
-
-</para>
-
-@names: 
-
-
-<!-- ##### FUNCTION lgl_db_lookup_paper_from_id ##### -->
-<para>
-
-</para>
-
-@id: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_db_lookup_paper_from_name ##### -->
-<para>
-
-</para>
-
-@name: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_db_lookup_paper_id_from_name ##### -->
-<para>
-
-</para>
-
-@name: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_db_lookup_paper_name_from_id ##### -->
-<para>
-
-</para>
-
-@id: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_db_is_paper_id_known ##### -->
-<para>
-
-</para>
-
-@id: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_db_is_paper_id_other ##### -->
-<para>
-
-</para>
-
-@id: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_db_get_category_id_list ##### -->
-<para>
-
-</para>
-
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_db_free_category_id_list ##### -->
-<para>
-
-</para>
-
-@ids: 
-
-
-<!-- ##### FUNCTION lgl_db_get_category_name_list ##### -->
-<para>
-
-</para>
-
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_db_free_category_name_list ##### -->
-<para>
-
-</para>
-
-@names: 
-
-
-<!-- ##### FUNCTION lgl_db_lookup_category_from_id ##### -->
-<para>
-
-</para>
-
-@id: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_db_lookup_category_from_name ##### -->
-<para>
-
-</para>
-
-@name: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_db_lookup_category_id_from_name ##### -->
-<para>
-
-</para>
-
-@name: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_db_lookup_category_name_from_id ##### -->
-<para>
-
-</para>
-
-@id: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_db_is_category_id_known ##### -->
-<para>
-
-</para>
-
-@id: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_db_get_brand_list ##### -->
-<para>
-
-</para>
-
-@paper_id: 
-@category_id: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_db_free_brand_list ##### -->
-<para>
-
-</para>
-
-@brands: 
-
-
-<!-- ##### FUNCTION lgl_db_register_template ##### -->
-<para>
-
-</para>
-
-@template: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_db_does_template_exist ##### -->
-<para>
-
-</para>
-
-@brand: 
-@part: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_db_does_template_name_exist ##### -->
-<para>
-
-</para>
-
-@name: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_db_get_template_name_list_unique ##### -->
-<para>
-
-</para>
-
-@brand: 
-@paper_id: 
-@category_id: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_db_get_template_name_list_all ##### -->
-<para>
-
-</para>
-
-@brand: 
-@paper_id: 
-@category_id: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_db_free_template_name_list ##### -->
-<para>
-
-</para>
-
-@names: 
-
-
-<!-- ##### FUNCTION lgl_db_lookup_template_from_name ##### -->
-<para>
-
-</para>
-
-@name: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_db_print_known_papers ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### FUNCTION lgl_db_print_known_categories ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### FUNCTION lgl_db_print_known_templates ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### FUNCTION lgl_db_print_aliases ##### -->
-<para>
-
-</para>
-
-@template: 
-
-
diff --git a/docs/libglabels/tmpl/enums.sgml b/docs/libglabels/tmpl/enums.sgml
deleted file mode 100644 (file)
index b74f00d..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-Enumerations
-
-<!-- ##### SECTION Short_Description ##### -->
-Common enumerations used by libglabels
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-This section defines enumerations used to interact with libglabels.
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### ENUM lglUnitsType ##### -->
-<para>
-This enumeration defines a set of units of distance supported by the libglabels XML distance
-attributes.
-</para>
-
-@LGL_UNITS_POINT: Points.  Encoded as "pt" in XML distance attributes.
-@LGL_UNITS_INCH: Inches.  Encoded as "in" in XML distance attributes.
-@LGL_UNITS_MM: Millmeters.  Encoded as "mm" in XML distance attributes.
-@LGL_UNITS_CM: Centimeters.  Encoded as "cm" in XML distance attributes.
-@LGL_UNITS_PICA: Picas.  Encoded as "pc" in XML distance attributes.
-@LGL_UNITS_FIRST: First enumeration.  Used for generic iteration through supported units..
-@LGL_UNITS_LAST: Last enumeration.  Used for generic iteration through supported units.
-
diff --git a/docs/libglabels/tmpl/libglabels-unused.sgml b/docs/libglabels/tmpl/libglabels-unused.sgml
deleted file mode 100644 (file)
index dc089b4..0000000
+++ /dev/null
@@ -1,1519 +0,0 @@
-<!-- ##### SECTION ./tmpl/init.sgml:Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/init.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/init.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/init.sgml:Stability_Level ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/init.sgml:Title ##### -->
-init
-
-
-<!-- ##### SECTION ./tmpl/libglabels.sgml:Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/libglabels.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/libglabels.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/libglabels.sgml:Stability_Level ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/libglabels.sgml:Title ##### -->
-libglabels
-
-
-<!-- ##### SECTION ./tmpl/template-construction.sgml:Long_Description ##### -->
-<para>
-This section describes a set of functions for constructing new template structures.
-</para>
-
-
-<!-- ##### SECTION ./tmpl/template-construction.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/template-construction.sgml:Short_Description ##### -->
-Functions to help create new templates
-
-
-<!-- ##### SECTION ./tmpl/template-construction.sgml:Stability_Level ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/template-construction.sgml:Title ##### -->
-Construction Functions
-
-
-<!-- ##### SECTION ./tmpl/template-db.sgml:Long_Description ##### -->
-<para>
-This section describes a set of functions to locate pre-defined templates and add templates
-to the LibGlabels template database.
-</para>
-
-
-<!-- ##### SECTION ./tmpl/template-db.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/template-db.sgml:Short_Description ##### -->
-Database of pre-defined templates
-
-
-<!-- ##### SECTION ./tmpl/template-db.sgml:Stability_Level ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/template-db.sgml:Title ##### -->
-Database
-
-
-<!-- ##### SECTION ./tmpl/template-misc.sgml:Long_Description ##### -->
-<para>
-This section describes miscellaneous template functions.
-</para>
-
-
-<!-- ##### SECTION ./tmpl/template-misc.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/template-misc.sgml:Short_Description ##### -->
-Miscellaneous template functions
-
-
-<!-- ##### SECTION ./tmpl/template-misc.sgml:Stability_Level ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/template-misc.sgml:Title ##### -->
-Miscellaneous Functions
-
-
-<!-- ##### SECTION ./tmpl/template2.sgml:Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/template2.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/template2.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/template2.sgml:Stability_Level ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/template2.sgml:Title ##### -->
-template2
-
-
-<!-- ##### SECTION ./tmpl/template3.sgml:Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/template3.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/template3.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/template3.sgml:Stability_Level ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/template3.sgml:Title ##### -->
-template3
-
-
-<!-- ##### MACRO GL_XML_NAME_SPACE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### STRUCT glCategory ##### -->
-<para>
-
-</para>
-
-@id: 
-@name: 
-
-<!-- ##### STRUCT glPaper ##### -->
-<para>
-
-</para>
-
-@id: 
-@name: 
-@width: 
-@height: 
-
-<!-- ##### STRUCT glTemplate ##### -->
-<para>
-
-</para>
-
-@name: 
-@description: 
-@page_size: 
-@page_width: 
-@page_height: 
-@categories: 
-@frames: 
-@aliases: 
-
-<!-- ##### UNION glTemplateFrame ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### STRUCT glTemplateFrameAll ##### -->
-<para>
-
-</para>
-
-@shape: 
-@id: 
-@layouts: 
-@markups: 
-
-<!-- ##### STRUCT glTemplateFrameCD ##### -->
-<para>
-
-</para>
-
-@shape: 
-@id: 
-@layouts: 
-@markups: 
-@r1: 
-@r2: 
-@w: 
-@h: 
-@waste: 
-
-<!-- ##### STRUCT glTemplateFrameRect ##### -->
-<para>
-
-</para>
-
-@shape: 
-@id: 
-@layouts: 
-@markups: 
-@w: 
-@h: 
-@r: 
-@x_waste: 
-@y_waste: 
-
-<!-- ##### STRUCT glTemplateFrameRound ##### -->
-<para>
-
-</para>
-
-@shape: 
-@id: 
-@layouts: 
-@markups: 
-@r: 
-@waste: 
-
-<!-- ##### ENUM glTemplateFrameShape ##### -->
-<para>
-
-</para>
-
-@GL_TEMPLATE_FRAME_SHAPE_RECT: 
-@GL_TEMPLATE_FRAME_SHAPE_ROUND: 
-@GL_TEMPLATE_FRAME_SHAPE_CD: 
-
-<!-- ##### ENUM glTemplateLabelShape ##### -->
-<para>
-
-</para>
-
-@GL_TEMPLATE_SHAPE_RECT: 
-@GL_TEMPLATE_SHAPE_ROUND: 
-@GL_TEMPLATE_SHAPE_CD: 
-
-<!-- ##### STRUCT glTemplateLabelType ##### -->
-<para>
-
-</para>
-
-@id: 
-@layouts: 
-@markups: 
-@shape: 
-
-<!-- ##### STRUCT glTemplateLayout ##### -->
-<para>
-
-</para>
-
-@nx: 
-@ny: 
-@x0: 
-@y0: 
-@dx: 
-@dy: 
-
-<!-- ##### UNION glTemplateMarkup ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### STRUCT glTemplateMarkupCircle ##### -->
-<para>
-
-</para>
-
-@type: 
-@x0: 
-@y0: 
-@r: 
-
-<!-- ##### STRUCT glTemplateMarkupLine ##### -->
-<para>
-
-</para>
-
-@type: 
-@x1: 
-@y1: 
-@x2: 
-@y2: 
-
-<!-- ##### STRUCT glTemplateMarkupMargin ##### -->
-<para>
-
-</para>
-
-@type: 
-@size: 
-
-<!-- ##### STRUCT glTemplateMarkupRect ##### -->
-<para>
-
-</para>
-
-@type: 
-@x1: 
-@y1: 
-@w: 
-@h: 
-@r: 
-
-<!-- ##### ENUM glTemplateMarkupType ##### -->
-<para>
-
-</para>
-
-@GL_TEMPLATE_MARKUP_MARGIN: 
-@GL_TEMPLATE_MARKUP_LINE: 
-@GL_TEMPLATE_MARKUP_CIRCLE: 
-@GL_TEMPLATE_MARKUP_RECT: 
-
-<!-- ##### STRUCT glTemplateOrigin ##### -->
-<para>
-
-</para>
-
-@x: 
-@y: 
-
-<!-- ##### ENUM glUnitsType ##### -->
-<para>
-Enumerations for the units of length supported by libglabels.  Internally
-all lengths are in points.  Externally libglabels supports points ("pt"),
-inches ("in"), millimeters ("mm"), centimeters ("cm"), and picas ("pc").
-These units are identical to the absolute length units supported in
-the CSS2 Specification (Section 4.3.2).
-</para>
-
-@GL_UNITS_POINT: 
-@GL_UNITS_INCH: 
-@GL_UNITS_MM: 
-@GL_UNITS_CM: 
-@GL_UNITS_PICA: 
-@GL_UNITS_FIRST: 
-@GL_UNITS_LAST: 
-
-<!-- ##### FUNCTION gl_category_dup ##### -->
-<para>
-
-</para>
-
-@orig: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_category_free ##### -->
-<para>
-
-</para>
-
-@category: 
-
-<!-- ##### FUNCTION gl_category_free_name_list ##### -->
-<para>
-
-</para>
-
-@names: 
-
-<!-- ##### FUNCTION gl_category_from_id ##### -->
-<para>
-
-</para>
-
-@id: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_category_from_name ##### -->
-<para>
-
-</para>
-
-@name: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_category_get_name_list ##### -->
-<para>
-
-</para>
-
-@Returns: 
-
-<!-- ##### FUNCTION gl_category_init ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### FUNCTION gl_category_lookup_id_from_name ##### -->
-<para>
-
-</para>
-
-@name: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_category_lookup_name_from_id ##### -->
-<para>
-
-</para>
-
-@id: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_category_new ##### -->
-<para>
-
-</para>
-
-@id: 
-@name: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_paper_dup ##### -->
-<para>
-
-</para>
-
-@orig: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_paper_free ##### -->
-<para>
-
-</para>
-
-@paper: 
-
-<!-- ##### FUNCTION gl_paper_free_id_list ##### -->
-<para>
-
-</para>
-
-@ids: 
-
-<!-- ##### FUNCTION gl_paper_free_name_list ##### -->
-<para>
-
-</para>
-
-@names: 
-
-<!-- ##### FUNCTION gl_paper_from_id ##### -->
-<para>
-
-</para>
-
-@id: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_paper_from_name ##### -->
-<para>
-
-</para>
-
-@name: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_paper_get_id_list ##### -->
-<para>
-
-</para>
-
-@Returns: 
-
-<!-- ##### FUNCTION gl_paper_get_name_list ##### -->
-<para>
-
-</para>
-
-@Returns: 
-
-<!-- ##### FUNCTION gl_paper_init ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### FUNCTION gl_paper_is_id_known ##### -->
-<para>
-
-</para>
-
-@id: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_paper_is_id_other ##### -->
-<para>
-
-</para>
-
-@id: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_paper_lookup_id_from_name ##### -->
-<para>
-
-</para>
-
-@name: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_paper_lookup_name_from_id ##### -->
-<para>
-
-</para>
-
-@id: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_paper_new ##### -->
-<para>
-
-</para>
-
-@id: 
-@name: 
-@width: 
-@height: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_paper_print_known_papers ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### FUNCTION gl_template_add_alias ##### -->
-<para>
-
-</para>
-
-@template: 
-@alias: 
-
-<!-- ##### FUNCTION gl_template_add_category ##### -->
-<para>
-
-</para>
-
-@template: 
-@category: 
-
-<!-- ##### FUNCTION gl_template_add_frame ##### -->
-<para>
-
-</para>
-
-@template: 
-@frame: 
-
-<!-- ##### FUNCTION gl_template_add_label_type ##### -->
-<para>
-
-</para>
-
-@template: 
-@label_type: 
-
-<!-- ##### FUNCTION gl_template_add_layout ##### -->
-<para>
-
-</para>
-
-@frame: 
-@layout: 
-
-<!-- ##### FUNCTION gl_template_add_markup ##### -->
-<para>
-
-</para>
-
-@frame: 
-@markup: 
-
-<!-- ##### FUNCTION gl_template_cd_label_type_new ##### -->
-<para>
-
-</para>
-
-@id: 
-@r1: 
-@r2: 
-@w: 
-@h: 
-@waste: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_does_category_match ##### -->
-<para>
-
-</para>
-
-@template: 
-@category: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_does_page_size_match ##### -->
-<para>
-
-</para>
-
-@template: 
-@page_size: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_dup ##### -->
-<para>
-
-</para>
-
-@orig: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_frame_cd_new ##### -->
-<para>
-
-</para>
-
-@id: 
-@r1: 
-@r2: 
-@w: 
-@h: 
-@waste: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_frame_dup ##### -->
-<para>
-
-</para>
-
-@orig_frame: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_frame_free ##### -->
-<para>
-
-</para>
-
-@frame: 
-
-<!-- ##### FUNCTION gl_template_frame_get_n_labels ##### -->
-<para>
-
-</para>
-
-@frame: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_frame_get_origins ##### -->
-<para>
-
-</para>
-
-@frame: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_frame_get_size ##### -->
-<para>
-
-</para>
-
-@frame: 
-@w: 
-@h: 
-
-<!-- ##### FUNCTION gl_template_frame_rect_new ##### -->
-<para>
-
-</para>
-
-@id: 
-@w: 
-@h: 
-@r: 
-@x_waste: 
-@y_waste: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_frame_round_new ##### -->
-<para>
-
-</para>
-
-@id: 
-@r: 
-@waste: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_free ##### -->
-<para>
-
-</para>
-
-@template: 
-
-<!-- ##### FUNCTION gl_template_free_name_list ##### -->
-<para>
-
-</para>
-
-@names: 
-
-<!-- ##### FUNCTION gl_template_from_name ##### -->
-<para>
-
-</para>
-
-@name: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_get_first_frame ##### -->
-<para>
-
-</para>
-
-@template: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_get_first_label_type ##### -->
-<para>
-
-</para>
-
-@template: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_get_label_size ##### -->
-<para>
-
-</para>
-
-@label_type: 
-@w: 
-@h: 
-
-<!-- ##### FUNCTION gl_template_get_n_labels ##### -->
-<para>
-
-</para>
-
-@label_type: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_get_name_list ##### -->
-<para>
-
-</para>
-
-@page_size: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_get_name_list_all ##### -->
-<para>
-
-</para>
-
-@page_size: 
-@category: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_get_name_list_unique ##### -->
-<para>
-
-</para>
-
-@page_size: 
-@category: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_get_name_with_desc ##### -->
-<para>
-
-</para>
-
-@template: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_get_origins ##### -->
-<para>
-
-</para>
-
-@label_type: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_init ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### FUNCTION gl_template_label_type_dup ##### -->
-<para>
-
-</para>
-
-@orig_ltype: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_label_type_free ##### -->
-<para>
-
-</para>
-
-@ltype: 
-
-<!-- ##### FUNCTION gl_template_layout_dup ##### -->
-<para>
-
-</para>
-
-@orig_layout: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_layout_free ##### -->
-<para>
-
-</para>
-
-@layout: 
-
-<!-- ##### FUNCTION gl_template_layout_new ##### -->
-<para>
-
-</para>
-
-@nx: 
-@ny: 
-@x0: 
-@y0: 
-@dx: 
-@dy: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_markup_circle_new ##### -->
-<para>
-
-</para>
-
-@x0: 
-@y0: 
-@r: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_markup_dup ##### -->
-<para>
-
-</para>
-
-@orig_markup: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_markup_free ##### -->
-<para>
-
-</para>
-
-@markup: 
-
-<!-- ##### FUNCTION gl_template_markup_line_new ##### -->
-<para>
-
-</para>
-
-@x1: 
-@y1: 
-@x2: 
-@y2: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_markup_margin_new ##### -->
-<para>
-
-</para>
-
-@size: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_markup_rect_new ##### -->
-<para>
-
-</para>
-
-@x1: 
-@y1: 
-@w: 
-@h: 
-@r: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_new ##### -->
-<para>
-
-</para>
-
-@name: 
-@description: 
-@page_size: 
-@page_width: 
-@page_height: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_print_aliases ##### -->
-<para>
-
-</para>
-
-@template: 
-
-<!-- ##### FUNCTION gl_template_print_known_templates ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### FUNCTION gl_template_rect_label_type_new ##### -->
-<para>
-
-</para>
-
-@id: 
-@w: 
-@h: 
-@r: 
-@x_waste: 
-@y_waste: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_template_register ##### -->
-<para>
-
-</para>
-
-@template: 
-
-<!-- ##### FUNCTION gl_template_round_label_type_new ##### -->
-<para>
-
-</para>
-
-@id: 
-@r: 
-@waste: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_xml_category_parse_categories_doc ##### -->
-<para>
-
-</para>
-
-@categories_doc: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_xml_category_parse_category_node ##### -->
-<para>
-
-</para>
-
-@category_node: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_xml_category_read_categories_from_file ##### -->
-<para>
-
-</para>
-
-@utf8_filename: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_xml_get_node_content ##### -->
-<para>
-
-</para>
-
-@node: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_xml_get_prop_boolean ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@default_val: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_xml_get_prop_double ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@default_val: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_xml_get_prop_i18n_string ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@default_val: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_xml_get_prop_int ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@default_val: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_xml_get_prop_length ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@default_val: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_xml_get_prop_string ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@default_val: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_xml_get_prop_uint ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@default_val: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_xml_is_node ##### -->
-<para>
-
-</para>
-
-@node: 
-@name: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_xml_paper_parse_paper_node ##### -->
-<para>
-
-</para>
-
-@paper_node: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_xml_paper_parse_papers_doc ##### -->
-<para>
-
-</para>
-
-@papers_doc: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_xml_paper_read_papers_from_file ##### -->
-<para>
-
-</para>
-
-@utf8_filename: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_xml_set_default_units ##### -->
-<para>
-
-</para>
-
-@units: 
-
-<!-- ##### FUNCTION gl_xml_set_prop_boolean ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@val: 
-
-<!-- ##### FUNCTION gl_xml_set_prop_double ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@val: 
-
-<!-- ##### FUNCTION gl_xml_set_prop_int ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@val: 
-
-<!-- ##### FUNCTION gl_xml_set_prop_length ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@val: 
-
-<!-- ##### FUNCTION gl_xml_set_prop_string ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@val: 
-
-<!-- ##### FUNCTION gl_xml_set_prop_uint_hex ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@val: 
-
-<!-- ##### FUNCTION gl_xml_template_create_template_node ##### -->
-<para>
-
-</para>
-
-@template: 
-@root: 
-@ns: 
-
-<!-- ##### FUNCTION gl_xml_template_create_templates_doc ##### -->
-<para>
-
-</para>
-
-@templates: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_xml_template_parse_template_node ##### -->
-<para>
-
-</para>
-
-@template_node: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_xml_template_parse_templates_doc ##### -->
-<para>
-
-</para>
-
-@templates_doc: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_xml_template_read_templates_from_file ##### -->
-<para>
-
-</para>
-
-@utf8_filename: 
-@Returns: 
-
-<!-- ##### FUNCTION gl_xml_template_write_template_to_file ##### -->
-<para>
-
-</para>
-
-@template: 
-@utf8_filename: 
-
-<!-- ##### FUNCTION gl_xml_template_write_templates_to_file ##### -->
-<para>
-
-</para>
-
-@templates: 
-@utf8_filename: 
-
-<!-- ##### FUNCTION lgl_category_free_id_list ##### -->
-<para>
-
-</para>
-
-@ids: 
-
-<!-- ##### FUNCTION lgl_category_free_name_list ##### -->
-<para>
-
-</para>
-
-@names: 
-
-<!-- ##### FUNCTION lgl_category_from_id ##### -->
-<para>
-
-</para>
-
-@id: 
-@Returns: 
-
-<!-- ##### FUNCTION lgl_category_from_name ##### -->
-<para>
-
-</para>
-
-@name: 
-@Returns: 
-
-<!-- ##### FUNCTION lgl_category_get_id_list ##### -->
-<para>
-
-</para>
-
-@Returns: 
-
-<!-- ##### FUNCTION lgl_category_get_name_list ##### -->
-<para>
-
-</para>
-
-@Returns: 
-
-<!-- ##### FUNCTION lgl_category_init ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### FUNCTION lgl_category_lookup_id_from_name ##### -->
-<para>
-
-</para>
-
-@name: 
-@Returns: 
-
-<!-- ##### FUNCTION lgl_category_lookup_name_from_id ##### -->
-<para>
-
-</para>
-
-@id: 
-@Returns: 
-
-<!-- ##### FUNCTION lgl_init ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### FUNCTION lgl_paper_free_id_list ##### -->
-<para>
-
-</para>
-
-@ids: 
-
-<!-- ##### FUNCTION lgl_paper_free_name_list ##### -->
-<para>
-
-</para>
-
-@names: 
-
-<!-- ##### FUNCTION lgl_paper_from_id ##### -->
-<para>
-
-</para>
-
-@id: 
-@Returns: 
-
-<!-- ##### FUNCTION lgl_paper_from_name ##### -->
-<para>
-
-</para>
-
-@name: 
-@Returns: 
-
-<!-- ##### FUNCTION lgl_paper_get_id_list ##### -->
-<para>
-
-</para>
-
-@Returns: 
-
-<!-- ##### FUNCTION lgl_paper_get_name_list ##### -->
-<para>
-
-</para>
-
-@Returns: 
-
-<!-- ##### FUNCTION lgl_paper_init ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### FUNCTION lgl_paper_is_id_known ##### -->
-<para>
-
-</para>
-
-@id: 
-@Returns: 
-
-<!-- ##### FUNCTION lgl_paper_is_id_other ##### -->
-<para>
-
-</para>
-
-@id: 
-@Returns: 
-
-<!-- ##### FUNCTION lgl_paper_lookup_id_from_name ##### -->
-<para>
-
-</para>
-
-@name: 
-@Returns: 
-
-<!-- ##### FUNCTION lgl_paper_lookup_name_from_id ##### -->
-<para>
-
-</para>
-
-@id: 
-@Returns: 
-
-<!-- ##### FUNCTION lgl_paper_print_known_papers ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### FUNCTION lgl_template_add_layout ##### -->
-<para>
-
-</para>
-
-@frame: 
-@layout: 
-
-<!-- ##### FUNCTION lgl_template_add_markup ##### -->
-<para>
-
-</para>
-
-@frame: 
-@markup: 
-
-<!-- ##### FUNCTION lgl_template_free_brand_list ##### -->
-<para>
-
-</para>
-
-@brands: 
-
-<!-- ##### FUNCTION lgl_template_free_name_list ##### -->
-<para>
-
-</para>
-
-@names: 
-
-<!-- ##### FUNCTION lgl_template_from_name ##### -->
-<para>
-
-</para>
-
-@name: 
-@Returns: 
-
-<!-- ##### FUNCTION lgl_template_get_brand_list ##### -->
-<para>
-
-</para>
-
-@page_size: 
-@category: 
-@Returns: 
-
-<!-- ##### FUNCTION lgl_template_get_first_frame ##### -->
-<para>
-
-</para>
-
-@template: 
-@Returns: 
-
-<!-- ##### FUNCTION lgl_template_get_name_list_all ##### -->
-<para>
-
-</para>
-
-@brand: 
-@page_size: 
-@category: 
-@Returns: 
-
-<!-- ##### FUNCTION lgl_template_get_name_list_unique ##### -->
-<para>
-
-</para>
-
-@brand: 
-@page_size: 
-@category: 
-@Returns: 
-
-<!-- ##### FUNCTION lgl_template_init ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### FUNCTION lgl_template_print_aliases ##### -->
-<para>
-
-</para>
-
-@template: 
-
-<!-- ##### FUNCTION lgl_template_print_known_templates ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### FUNCTION lgl_template_register ##### -->
-<para>
-
-</para>
-
-@template: 
-
-<!-- ##### FUNCTION lgl_xml_template_create_templates_doc ##### -->
-<para>
-
-</para>
-
-@templates: 
-@Returns: 
-
diff --git a/docs/libglabels/tmpl/libglabels.sgml b/docs/libglabels/tmpl/libglabels.sgml
deleted file mode 100644 (file)
index 0552a20..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-libglabels
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
diff --git a/docs/libglabels/tmpl/paper.sgml b/docs/libglabels/tmpl/paper.sgml
deleted file mode 100644 (file)
index dc69d74..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-The lglPaper Structure
-
-<!-- ##### SECTION Short_Description ##### -->
-Paper size definitions
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-This section describes a structure for representing a paper size definition
-and related functions.
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### STRUCT lglPaper ##### -->
-<para>
-This structure defines a paper (page) size.
-</para>
-
-@id: Paper size ID.
-@name: Localized paper size name.
-@width: Width of paper in points.
-@height: Height of paper in points.
-@pwg_size: PWG 5101.1-2002 size name.
-
-<!-- ##### FUNCTION lgl_paper_new ##### -->
-<para>
-
-</para>
-
-@id: 
-@name: 
-@width: 
-@height: 
-@pwg_size: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_paper_dup ##### -->
-<para>
-
-</para>
-
-@orig: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_paper_free ##### -->
-<para>
-
-</para>
-
-@paper: 
-
-
diff --git a/docs/libglabels/tmpl/str.sgml b/docs/libglabels/tmpl/str.sgml
deleted file mode 100644 (file)
index 53cbd3b..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-String Utility Functions
-
-<!-- ##### SECTION Short_Description ##### -->
-String utility functions provided by libglabels
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-This section defines string utility functions used by libglabels and of
-possible use to a user of libglabels.
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### FUNCTION lgl_str_utf8_casecmp ##### -->
-<para>
-
-</para>
-
-@s1: 
-@s2: 
-@Returns: 
-
-
diff --git a/docs/libglabels/tmpl/template.sgml b/docs/libglabels/tmpl/template.sgml
deleted file mode 100644 (file)
index e7a5887..0000000
+++ /dev/null
@@ -1,532 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-The lglTemplate Structure
-
-<!-- ##### SECTION Short_Description ##### -->
-How templates are represented in memory
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-This section describes a set of structures that represent a template in memory.  It also
-describes functions to help create and interpret these structures.
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### STRUCT lglTemplate ##### -->
-<para>
-This is the main structure of a libglabels template.  A template represents a single sheet
-of peel-off labels or cards.
-</para>
-
-@brand: Brand name of label or card.  E.g. "Avery."
-@part: Part name or number of label or card.  E.g. "8160."
-@description: A description of the template.  E.g. "Mailing labels."
-@paper_id: A paper ID.  E.g. "A4" or "US-Letter."
-@page_width: Page width in points.  Used only if paper_id is "Other."
-@page_height: Page height in points.  Used only if paper_id is "Other."
-@aliases: A list of alternate names for this template.  Often a single template can be used for
-multiple products.
-@category_ids: A list of category IDs that this template belongs to.
-@frames: A list of (#lglTemplateFrame *) structures.  GLabels currently only supports one frame
-per template -- future versions may support multiple frames per template.
-
-<!-- ##### STRUCT lglTemplateAlias ##### -->
-<para>
-This structure defines an alias for the parent template structure.  An alias is used for
-different products that can use the same template.
-</para>
-
-@brand: Brand name of label or card.  E.g. "Avery."
-@part: Part name or number of label or card.  E.g. "8160."
-
-<!-- ##### ENUM lglTemplateFrameShape ##### -->
-<para>
-This enumeration defines frame types that are supported by libglabels
-</para>
-
-@LGL_TEMPLATE_FRAME_SHAPE_RECT: A rectangular frame.  (May have rounded corners.)
-@LGL_TEMPLATE_FRAME_SHAPE_ROUND: A round frame.
-@LGL_TEMPLATE_FRAME_SHAPE_CD: A CD or DVD frame.  (Includes credit-card style CDs.)
-
-<!-- ##### UNION lglTemplateFrame ##### -->
-<para>
-A union of all possible frame structures.  The type of structure is indicated by the shape
-member, which overlays the first field of all other member structures.
-</para>
-
-
-<!-- ##### STRUCT lglTemplateFrameAll ##### -->
-<para>
-This structure is composed of a set of fields common to all frame structures.  All frame types
-can be cast to this structure.
-</para>
-
-@shape: The shape of the frame.
-@id: Reserved for future use.  Should always be zero.
-@layouts: A list of (#lglTemplateLayout *) structures.  Typically a frame will have a single
-layout, representing a simple grid of labels or cards.  If the layout of labels or cards is
-more complex, multiple (#lglTemplateLayout *) structures may be needed.
-@markups: A list of (#lglTemplateMarkup *) structures, which represent non-printing markup lines.
-
-<!-- ##### STRUCT lglTemplateFrameRect ##### -->
-<para>
-This structure defines the frame for a rectangular label or card.
-</para>
-
-@shape: Common field.  Always #LGL_TEMPLATE_FRAME_SHAPE_RECT for #lglTemplateFrameRect.
-@id: Common field.  See #lglTemplateFrameAll.
-@layouts:  Common field.  See #lglTemplateFrameAll.
-@markups:  Common field.  See #lglTemplateFrameAll.
-@w: Width of label or card in points.
-@h: Height of label or card in points.
-@r: Radius of corners in points.
-@x_waste: Amount of horizontal over-print to allow in points.
-@y_waste: Amount of vertical over-print to allow in points.
-
-<!-- ##### STRUCT lglTemplateFrameRound ##### -->
-<para>
-This structure defines the frame for a round label or card.
-</para>
-
-@shape: Common field.  Always #LGL_TEMPLATE_FRAME_SHAPE_ROUND for #lglTemplateFrameRound.
-@id: Common field.  See #lglTemplateFrameAll.
-@layouts: Common field.  See #lglTemplateFrameAll.
-@markups: Common field.  See #lglTemplateFrameAll.
-@r: Radius of label or card in points.
-@waste: Amount of over-print to allow in points.
-
-<!-- ##### STRUCT lglTemplateFrameCD ##### -->
-<para>
-This structure defines the frame for a CD or DVD label.  This structure also supports
-credit-card CD labels.
-</para>
-
-@shape: Common field.  Always #LGL_TEMPLATE_FRAME_SHAPE_CD for #lglTemplateFrameCD.
-@id: Common field.  See #lglTemplateFrameAll.
-@layouts: Common field.  See #lglTemplateFrameAll.
-@markups: Common field.  See #lglTemplateFrameAll.
-@r1: Outer radius of label in points.
-@r2: Radius of center hole in points.
-@w: Clip width in points.  Used for credit-card CD labels.  This field is ignored if zero.
-@h: Clip height in points.  Used for credit-card CD labels.  This field is ignored if zero.
-@waste: Amount of over-print to allow in points.
-
-<!-- ##### STRUCT lglTemplateLayout ##### -->
-<para>
-This structure defines a simple grid layout of labels or cards.
-</para>
-
-@nx: Number of labels or cards across in the grid (horizontal).
-@ny: Number of labels or cards down in the grid (vertical).
-@x0: Distance (in points) from the left edge of page to the left edge of the left column of
-cards or labels in the layout.
-@y0: Distance (in points) from the top edge of page to the top edge of the top row of
-cards or labels in the layout.
-@dx: Horizontal pitch of grid in points.  This is the distance from left edge to left edge
-(not the gap between labels or cards).
-@dy: Vertical pitch of grid in points.  This is the distance from top edge to top edge
-(not the gap between labels or cards).
-
-<!-- ##### ENUM lglTemplateMarkupType ##### -->
-<para>
-This enumeration defines markup types that are supported by libglabels
-</para>
-
-@LGL_TEMPLATE_MARKUP_MARGIN: A margin line around perimeter of label or card.
-@LGL_TEMPLATE_MARKUP_LINE: A simple line segment.
-@LGL_TEMPLATE_MARKUP_CIRCLE: A circle.
-@LGL_TEMPLATE_MARKUP_RECT: A rectangle.  Possibly with rounded corners.
-
-<!-- ##### UNION lglTemplateMarkup ##### -->
-<para>
-A union of all possible markup structures.  The type of structure is indicated by the type
-member, which overlays the first field of all other member structures.
-</para>
-
-
-<!-- ##### STRUCT lglTemplateMarkupMargin ##### -->
-<para>
-This structure defines a simple margin markup around the perimeter of a label or card.
-</para>
-
-@type: Common field.  Always #LGL_TEMPLATE_MARKUP_MARGIN for #lglTemplateMarkupMargin.
-@size: Distance of margin from edge of label or card.
-
-<!-- ##### STRUCT lglTemplateMarkupLine ##### -->
-<para>
-This structure defines a simple line segment markup.
-</para>
-
-@type: Common field.  Always #LGL_TEMPLATE_MARKUP_LINE for #lglTemplateMarkupLine.
-@x1: Distance (in points) of first endpoint from left edge of label or card.
-@y1: Distance (in points) of first endpoint from top edge of label or card.
-@x2: Distance (in points) of second endpoint from left edge of label or card.
-@y2: Distance (in points) of second endpoint from top edge of label or card.
-
-<!-- ##### STRUCT lglTemplateMarkupCircle ##### -->
-<para>
-This structure defines a simple circle markup.
-</para>
-
-@type: Common field.  Always #LGL_TEMPLATE_MARKUP_CIRCLE for #lglTemplateMarkupCircle.
-@x0: Distance (in points) of vertex from left edge of label or card.
-@y0: Distance (in points) of vertex from top edge of label or card.
-@r: Radius of circle in points.
-
-<!-- ##### STRUCT lglTemplateMarkupRect ##### -->
-<para>
-This structure defines a simple rectangle markup.  The rectangle can have rounded corners.
-</para>
-
-@type: Common field.  Always #LGL_TEMPLATE_MARKUP_RECT for #lglTemplateMarkupRect.
-@x1: Distance (in points) of left edge of markup from left edge of label or card.
-@y1: Distance (in points) of top edge of markup from top edge of label or card.
-@w: Width of rectangle in points.
-@h: Height of rectangle in points.
-@r: Radius of corners in points.  Should be zero for sharp corners.
-
-<!-- ##### STRUCT lglTemplateOrigin ##### -->
-<para>
-This structure represents the cartesian coordinates of the origin of a label or card on the page.
-The orign is the upper left corner of the extent of the label or card.  These coordinates are
-relative to the upper left corner of the page.
-</para>
-
-@x: Distance in points from top edge of page.
-@y: Distance in points from left edge of page.
-
-<!-- ##### FUNCTION lgl_template_new ##### -->
-<para>
-
-</para>
-
-@brand: 
-@part: 
-@description: 
-@paper_id: 
-@page_width: 
-@page_height: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_template_dup ##### -->
-<para>
-
-</para>
-
-@orig_template: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_template_free ##### -->
-<para>
-
-</para>
-
-@template: 
-
-
-<!-- ##### FUNCTION lgl_template_add_category ##### -->
-<para>
-
-</para>
-
-@template: 
-@category_id: 
-
-
-<!-- ##### FUNCTION lgl_template_add_frame ##### -->
-<para>
-
-</para>
-
-@template: 
-@frame: 
-
-
-<!-- ##### FUNCTION lgl_template_add_alias ##### -->
-<para>
-
-</para>
-
-@template: 
-@alias: 
-
-
-<!-- ##### FUNCTION lgl_template_get_name ##### -->
-<para>
-
-</para>
-
-@template: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_template_do_templates_match ##### -->
-<para>
-
-</para>
-
-@template1: 
-@template2: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_template_does_brand_match ##### -->
-<para>
-
-</para>
-
-@template: 
-@brand: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_template_does_page_size_match ##### -->
-<para>
-
-</para>
-
-@template: 
-@paper_id: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_template_does_category_match ##### -->
-<para>
-
-</para>
-
-@template: 
-@category_id: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_template_alias_new ##### -->
-<para>
-
-</para>
-
-@brand: 
-@part: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_template_alias_dup ##### -->
-<para>
-
-</para>
-
-@orig_alias: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_template_alias_free ##### -->
-<para>
-
-</para>
-
-@alias: 
-
-
-<!-- ##### FUNCTION lgl_template_frame_rect_new ##### -->
-<para>
-
-</para>
-
-@id: 
-@w: 
-@h: 
-@r: 
-@x_waste: 
-@y_waste: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_template_frame_round_new ##### -->
-<para>
-
-</para>
-
-@id: 
-@r: 
-@waste: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_template_frame_cd_new ##### -->
-<para>
-
-</para>
-
-@id: 
-@r1: 
-@r2: 
-@w: 
-@h: 
-@waste: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_template_frame_dup ##### -->
-<para>
-
-</para>
-
-@orig_frame: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_template_frame_free ##### -->
-<para>
-
-</para>
-
-@frame: 
-
-
-<!-- ##### FUNCTION lgl_template_frame_add_layout ##### -->
-<para>
-
-</para>
-
-@frame: 
-@layout: 
-
-
-<!-- ##### FUNCTION lgl_template_frame_add_markup ##### -->
-<para>
-
-</para>
-
-@frame: 
-@markup: 
-
-
-<!-- ##### FUNCTION lgl_template_frame_get_size ##### -->
-<para>
-
-</para>
-
-@frame: 
-@w: 
-@h: 
-
-
-<!-- ##### FUNCTION lgl_template_frame_get_n_labels ##### -->
-<para>
-
-</para>
-
-@frame: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_template_frame_get_origins ##### -->
-<para>
-
-</para>
-
-@frame: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_template_layout_new ##### -->
-<para>
-
-</para>
-
-@nx: 
-@ny: 
-@x0: 
-@y0: 
-@dx: 
-@dy: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_template_layout_dup ##### -->
-<para>
-
-</para>
-
-@orig_layout: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_template_layout_free ##### -->
-<para>
-
-</para>
-
-@layout: 
-
-
-<!-- ##### FUNCTION lgl_template_markup_margin_new ##### -->
-<para>
-
-</para>
-
-@size: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_template_markup_line_new ##### -->
-<para>
-
-</para>
-
-@x1: 
-@y1: 
-@x2: 
-@y2: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_template_markup_circle_new ##### -->
-<para>
-
-</para>
-
-@x0: 
-@y0: 
-@r: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_template_markup_rect_new ##### -->
-<para>
-
-</para>
-
-@x1: 
-@y1: 
-@w: 
-@h: 
-@r: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_template_markup_dup ##### -->
-<para>
-
-</para>
-
-@orig_markup: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_template_markup_free ##### -->
-<para>
-
-</para>
-
-@markup: 
-
-
diff --git a/docs/libglabels/tmpl/xml-category.sgml b/docs/libglabels/tmpl/xml-category.sgml
deleted file mode 100644 (file)
index f22b59e..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-XML Category Functions
-
-<!-- ##### SECTION Short_Description ##### -->
-Functions to parse glabels XML category definition files
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-This section describes a number of functions for parsing glabels
-XML category definition files.
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### FUNCTION lgl_xml_category_read_categories_from_file ##### -->
-<para>
-
-</para>
-
-@utf8_filename: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_xml_category_parse_categories_doc ##### -->
-<para>
-
-</para>
-
-@categories_doc: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_xml_category_parse_category_node ##### -->
-<para>
-
-</para>
-
-@category_node: 
-@Returns: 
-
-
diff --git a/docs/libglabels/tmpl/xml-paper.sgml b/docs/libglabels/tmpl/xml-paper.sgml
deleted file mode 100644 (file)
index 0909d2c..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-XML Paper Functions
-
-<!-- ##### SECTION Short_Description ##### -->
-Functions to parse glabels XML paper definition files
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-This section describes a number of functions for parsing glabels
-XML paper definition files.
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### FUNCTION lgl_xml_paper_read_papers_from_file ##### -->
-<para>
-
-</para>
-
-@utf8_filename: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_xml_paper_parse_papers_doc ##### -->
-<para>
-
-</para>
-
-@papers_doc: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_xml_paper_parse_paper_node ##### -->
-<para>
-
-</para>
-
-@paper_node: 
-@Returns: 
-
-
diff --git a/docs/libglabels/tmpl/xml-template.sgml b/docs/libglabels/tmpl/xml-template.sgml
deleted file mode 100644 (file)
index 071a08a..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-XML Template Functions
-
-<!-- ##### SECTION Short_Description ##### -->
-Functions to create and parse glabels XML template nodes and files
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-This section describes a number of functions for creating and parsing
-glabels XML template nodes and files.  Template nodes are used in both
-template files and document files.
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### FUNCTION lgl_xml_template_read_templates_from_file ##### -->
-<para>
-
-</para>
-
-@utf8_filename: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_xml_template_parse_templates_doc ##### -->
-<para>
-
-</para>
-
-@templates_doc: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_xml_template_parse_template_node ##### -->
-<para>
-
-</para>
-
-@template_node: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_xml_template_write_templates_to_file ##### -->
-<para>
-
-</para>
-
-@templates: 
-@utf8_filename: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_xml_template_write_template_to_file ##### -->
-<para>
-
-</para>
-
-@template: 
-@utf8_filename: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_xml_template_create_template_node ##### -->
-<para>
-
-</para>
-
-@template: 
-@root: 
-@ns: 
-
-
diff --git a/docs/libglabels/tmpl/xml.sgml b/docs/libglabels/tmpl/xml.sgml
deleted file mode 100644 (file)
index e080337..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-XML Helper Functions
-
-<!-- ##### SECTION Short_Description ##### -->
-Functions to help format and parse glabels XML properties
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-This section describes a number of "helper" functions for formatting and
-parsing various types of properties for tags in glabels XML file formats.
-</para>
-<para>
-These functions are basically wrappers to functions from libxml2.
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### MACRO LGL_XML_NAME_SPACE ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### FUNCTION lgl_xml_get_prop_string ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@default_val: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_xml_get_prop_i18n_string ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@default_val: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_xml_get_prop_double ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@default_val: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_xml_get_prop_boolean ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@default_val: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_xml_get_prop_int ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@default_val: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_xml_get_prop_uint ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@default_val: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_xml_get_prop_length ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@default_val: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_xml_set_prop_string ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@val: 
-
-
-<!-- ##### FUNCTION lgl_xml_set_prop_double ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@val: 
-
-
-<!-- ##### FUNCTION lgl_xml_set_prop_boolean ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@val: 
-
-
-<!-- ##### FUNCTION lgl_xml_set_prop_int ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@val: 
-
-
-<!-- ##### FUNCTION lgl_xml_set_prop_uint_hex ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@val: 
-
-
-<!-- ##### FUNCTION lgl_xml_set_prop_length ##### -->
-<para>
-
-</para>
-
-@node: 
-@property: 
-@val: 
-
-
-<!-- ##### FUNCTION lgl_xml_is_node ##### -->
-<para>
-
-</para>
-
-@node: 
-@name: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_xml_get_node_content ##### -->
-<para>
-
-</para>
-
-@node: 
-@Returns: 
-
-
-<!-- ##### FUNCTION lgl_xml_set_default_units ##### -->
-<para>
-
-</para>
-
-@units: 
-
-
diff --git a/docs/libglabels/xml/api-index-deprecated.xml b/docs/libglabels/xml/api-index-deprecated.xml
deleted file mode 100644 (file)
index 3041b73..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE indexdiv PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
-               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
-
-<indexdiv>
-</indexdiv>
diff --git a/docs/libglabels/xml/api-index-full.xml b/docs/libglabels/xml/api-index-full.xml
deleted file mode 100644 (file)
index 23d767e..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE indexdiv PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
-               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
-
-<indexdiv>
-<indexdiv><title>L</title>
-<indexentry><primaryie linkends="lglCategory"><link linkend="lglCategory">lglCategory</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lglDbRegStatus"><link linkend="lglDbRegStatus">lglDbRegStatus</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lglPaper"><link linkend="lglPaper">lglPaper</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lglTemplate"><link linkend="lglTemplate">lglTemplate</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lglTemplateAlias"><link linkend="lglTemplateAlias">lglTemplateAlias</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lglTemplateFrame"><link linkend="lglTemplateFrame">lglTemplateFrame</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lglTemplateFrameAll"><link linkend="lglTemplateFrameAll">lglTemplateFrameAll</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lglTemplateFrameCD"><link linkend="lglTemplateFrameCD">lglTemplateFrameCD</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lglTemplateFrameRect"><link linkend="lglTemplateFrameRect">lglTemplateFrameRect</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lglTemplateFrameRound"><link linkend="lglTemplateFrameRound">lglTemplateFrameRound</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lglTemplateFrameShape"><link linkend="lglTemplateFrameShape">lglTemplateFrameShape</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lglTemplateLayout"><link linkend="lglTemplateLayout">lglTemplateLayout</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lglTemplateMarkup"><link linkend="lglTemplateMarkup">lglTemplateMarkup</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lglTemplateMarkupCircle"><link linkend="lglTemplateMarkupCircle">lglTemplateMarkupCircle</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lglTemplateMarkupLine"><link linkend="lglTemplateMarkupLine">lglTemplateMarkupLine</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lglTemplateMarkupMargin"><link linkend="lglTemplateMarkupMargin">lglTemplateMarkupMargin</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lglTemplateMarkupRect"><link linkend="lglTemplateMarkupRect">lglTemplateMarkupRect</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lglTemplateMarkupType"><link linkend="lglTemplateMarkupType">lglTemplateMarkupType</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lglTemplateOrigin"><link linkend="lglTemplateOrigin">lglTemplateOrigin</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lglUnitsType"><link linkend="lglUnitsType">lglUnitsType</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-category-dup"><link linkend="lgl-category-dup">lgl_category_dup</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-category-free"><link linkend="lgl-category-free">lgl_category_free</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-category-new"><link linkend="lgl-category-new">lgl_category_new</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-does-template-exist"><link linkend="lgl-db-does-template-exist">lgl_db_does_template_exist</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-does-template-name-exist"><link linkend="lgl-db-does-template-name-exist">lgl_db_does_template_name_exist</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-free-brand-list"><link linkend="lgl-db-free-brand-list">lgl_db_free_brand_list</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-free-category-id-list"><link linkend="lgl-db-free-category-id-list">lgl_db_free_category_id_list</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-free-category-name-list"><link linkend="lgl-db-free-category-name-list">lgl_db_free_category_name_list</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-free-paper-id-list"><link linkend="lgl-db-free-paper-id-list">lgl_db_free_paper_id_list</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-free-paper-name-list"><link linkend="lgl-db-free-paper-name-list">lgl_db_free_paper_name_list</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-free-template-name-list"><link linkend="lgl-db-free-template-name-list">lgl_db_free_template_name_list</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-get-brand-list"><link linkend="lgl-db-get-brand-list">lgl_db_get_brand_list</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-get-category-id-list"><link linkend="lgl-db-get-category-id-list">lgl_db_get_category_id_list</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-get-category-name-list"><link linkend="lgl-db-get-category-name-list">lgl_db_get_category_name_list</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-get-paper-id-list"><link linkend="lgl-db-get-paper-id-list">lgl_db_get_paper_id_list</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-get-paper-name-list"><link linkend="lgl-db-get-paper-name-list">lgl_db_get_paper_name_list</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-get-template-name-list-all"><link linkend="lgl-db-get-template-name-list-all">lgl_db_get_template_name_list_all</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-get-template-name-list-unique"><link linkend="lgl-db-get-template-name-list-unique">lgl_db_get_template_name_list_unique</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-init"><link linkend="lgl-db-init">lgl_db_init</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-is-category-id-known"><link linkend="lgl-db-is-category-id-known">lgl_db_is_category_id_known</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-is-paper-id-known"><link linkend="lgl-db-is-paper-id-known">lgl_db_is_paper_id_known</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-is-paper-id-other"><link linkend="lgl-db-is-paper-id-other">lgl_db_is_paper_id_other</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-lookup-category-from-id"><link linkend="lgl-db-lookup-category-from-id">lgl_db_lookup_category_from_id</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-lookup-category-from-name"><link linkend="lgl-db-lookup-category-from-name">lgl_db_lookup_category_from_name</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-lookup-category-id-from-name"><link linkend="lgl-db-lookup-category-id-from-name">lgl_db_lookup_category_id_from_name</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-lookup-category-name-from-id"><link linkend="lgl-db-lookup-category-name-from-id">lgl_db_lookup_category_name_from_id</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-lookup-paper-from-id"><link linkend="lgl-db-lookup-paper-from-id">lgl_db_lookup_paper_from_id</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-lookup-paper-from-name"><link linkend="lgl-db-lookup-paper-from-name">lgl_db_lookup_paper_from_name</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-lookup-paper-id-from-name"><link linkend="lgl-db-lookup-paper-id-from-name">lgl_db_lookup_paper_id_from_name</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-lookup-paper-name-from-id"><link linkend="lgl-db-lookup-paper-name-from-id">lgl_db_lookup_paper_name_from_id</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-lookup-template-from-name"><link linkend="lgl-db-lookup-template-from-name">lgl_db_lookup_template_from_name</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-print-aliases"><link linkend="lgl-db-print-aliases">lgl_db_print_aliases</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-print-known-categories"><link linkend="lgl-db-print-known-categories">lgl_db_print_known_categories</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-print-known-papers"><link linkend="lgl-db-print-known-papers">lgl_db_print_known_papers</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-print-known-templates"><link linkend="lgl-db-print-known-templates">lgl_db_print_known_templates</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-db-register-template"><link linkend="lgl-db-register-template">lgl_db_register_template</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-paper-dup"><link linkend="lgl-paper-dup">lgl_paper_dup</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-paper-free"><link linkend="lgl-paper-free">lgl_paper_free</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-paper-new"><link linkend="lgl-paper-new">lgl_paper_new</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-str-utf8-casecmp"><link linkend="lgl-str-utf8-casecmp">lgl_str_utf8_casecmp</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-add-alias"><link linkend="lgl-template-add-alias">lgl_template_add_alias</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-add-category"><link linkend="lgl-template-add-category">lgl_template_add_category</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-add-frame"><link linkend="lgl-template-add-frame">lgl_template_add_frame</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-alias-dup"><link linkend="lgl-template-alias-dup">lgl_template_alias_dup</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-alias-free"><link linkend="lgl-template-alias-free">lgl_template_alias_free</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-alias-new"><link linkend="lgl-template-alias-new">lgl_template_alias_new</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-does-brand-match"><link linkend="lgl-template-does-brand-match">lgl_template_does_brand_match</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-does-category-match"><link linkend="lgl-template-does-category-match">lgl_template_does_category_match</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-does-page-size-match"><link linkend="lgl-template-does-page-size-match">lgl_template_does_page_size_match</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-do-templates-match"><link linkend="lgl-template-do-templates-match">lgl_template_do_templates_match</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-dup"><link linkend="lgl-template-dup">lgl_template_dup</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-frame-add-layout"><link linkend="lgl-template-frame-add-layout">lgl_template_frame_add_layout</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-frame-add-markup"><link linkend="lgl-template-frame-add-markup">lgl_template_frame_add_markup</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-frame-cd-new"><link linkend="lgl-template-frame-cd-new">lgl_template_frame_cd_new</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-frame-dup"><link linkend="lgl-template-frame-dup">lgl_template_frame_dup</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-frame-free"><link linkend="lgl-template-frame-free">lgl_template_frame_free</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-frame-get-n-labels"><link linkend="lgl-template-frame-get-n-labels">lgl_template_frame_get_n_labels</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-frame-get-origins"><link linkend="lgl-template-frame-get-origins">lgl_template_frame_get_origins</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-frame-get-size"><link linkend="lgl-template-frame-get-size">lgl_template_frame_get_size</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-frame-rect-new"><link linkend="lgl-template-frame-rect-new">lgl_template_frame_rect_new</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-frame-round-new"><link linkend="lgl-template-frame-round-new">lgl_template_frame_round_new</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-free"><link linkend="lgl-template-free">lgl_template_free</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-get-name"><link linkend="lgl-template-get-name">lgl_template_get_name</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-layout-dup"><link linkend="lgl-template-layout-dup">lgl_template_layout_dup</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-layout-free"><link linkend="lgl-template-layout-free">lgl_template_layout_free</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-layout-new"><link linkend="lgl-template-layout-new">lgl_template_layout_new</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-markup-circle-new"><link linkend="lgl-template-markup-circle-new">lgl_template_markup_circle_new</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-markup-dup"><link linkend="lgl-template-markup-dup">lgl_template_markup_dup</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-markup-free"><link linkend="lgl-template-markup-free">lgl_template_markup_free</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-markup-line-new"><link linkend="lgl-template-markup-line-new">lgl_template_markup_line_new</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-markup-margin-new"><link linkend="lgl-template-markup-margin-new">lgl_template_markup_margin_new</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-markup-rect-new"><link linkend="lgl-template-markup-rect-new">lgl_template_markup_rect_new</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-template-new"><link linkend="lgl-template-new">lgl_template_new</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-category-parse-categories-doc"><link linkend="lgl-xml-category-parse-categories-doc">lgl_xml_category_parse_categories_doc</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-category-parse-category-node"><link linkend="lgl-xml-category-parse-category-node">lgl_xml_category_parse_category_node</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-category-read-categories-from-file"><link linkend="lgl-xml-category-read-categories-from-file">lgl_xml_category_read_categories_from_file</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-get-node-content"><link linkend="lgl-xml-get-node-content">lgl_xml_get_node_content</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-get-prop-boolean"><link linkend="lgl-xml-get-prop-boolean">lgl_xml_get_prop_boolean</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-get-prop-double"><link linkend="lgl-xml-get-prop-double">lgl_xml_get_prop_double</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-get-prop-i18n-string"><link linkend="lgl-xml-get-prop-i18n-string">lgl_xml_get_prop_i18n_string</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-get-prop-int"><link linkend="lgl-xml-get-prop-int">lgl_xml_get_prop_int</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-get-prop-length"><link linkend="lgl-xml-get-prop-length">lgl_xml_get_prop_length</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-get-prop-string"><link linkend="lgl-xml-get-prop-string">lgl_xml_get_prop_string</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-get-prop-uint"><link linkend="lgl-xml-get-prop-uint">lgl_xml_get_prop_uint</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-is-node"><link linkend="lgl-xml-is-node">lgl_xml_is_node</link></primaryie></indexentry>
-<indexentry><primaryie linkends="LGL-XML-NAME-SPACE--CAPS"><link linkend="LGL-XML-NAME-SPACE--CAPS">LGL_XML_NAME_SPACE</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-paper-parse-papers-doc"><link linkend="lgl-xml-paper-parse-papers-doc">lgl_xml_paper_parse_papers_doc</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-paper-parse-paper-node"><link linkend="lgl-xml-paper-parse-paper-node">lgl_xml_paper_parse_paper_node</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-paper-read-papers-from-file"><link linkend="lgl-xml-paper-read-papers-from-file">lgl_xml_paper_read_papers_from_file</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-set-default-units"><link linkend="lgl-xml-set-default-units">lgl_xml_set_default_units</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-set-prop-boolean"><link linkend="lgl-xml-set-prop-boolean">lgl_xml_set_prop_boolean</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-set-prop-double"><link linkend="lgl-xml-set-prop-double">lgl_xml_set_prop_double</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-set-prop-int"><link linkend="lgl-xml-set-prop-int">lgl_xml_set_prop_int</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-set-prop-length"><link linkend="lgl-xml-set-prop-length">lgl_xml_set_prop_length</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-set-prop-string"><link linkend="lgl-xml-set-prop-string">lgl_xml_set_prop_string</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-set-prop-uint-hex"><link linkend="lgl-xml-set-prop-uint-hex">lgl_xml_set_prop_uint_hex</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-template-create-template-node"><link linkend="lgl-xml-template-create-template-node">lgl_xml_template_create_template_node</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-template-parse-templates-doc"><link linkend="lgl-xml-template-parse-templates-doc">lgl_xml_template_parse_templates_doc</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-template-parse-template-node"><link linkend="lgl-xml-template-parse-template-node">lgl_xml_template_parse_template_node</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-template-read-templates-from-file"><link linkend="lgl-xml-template-read-templates-from-file">lgl_xml_template_read_templates_from_file</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-template-write-templates-to-file"><link linkend="lgl-xml-template-write-templates-to-file">lgl_xml_template_write_templates_to_file</link></primaryie></indexentry>
-<indexentry><primaryie linkends="lgl-xml-template-write-template-to-file"><link linkend="lgl-xml-template-write-template-to-file">lgl_xml_template_write_template_to_file</link></primaryie></indexentry>
-</indexdiv>
-</indexdiv>
diff --git a/docs/libglabels/xml/category.xml b/docs/libglabels/xml/category.xml
deleted file mode 100644 (file)
index 0ec3249..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
-               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
-
-<refentry id="libglabels-category">
-<refmeta>
-<refentrytitle role="top_of_page" id="libglabels-category.top_of_page">The lglCategory Structure</refentrytitle>
-<manvolnum>3</manvolnum>
-<refmiscinfo>LIBGLABELS Library</refmiscinfo>
-</refmeta>
-
-<refnamediv>
-<refname>The lglCategory Structure</refname>
-<refpurpose>Template category definitions</refpurpose>
-</refnamediv>
-
-<refsynopsisdiv id="libglabels-category.synopsis" role="synopsis">
-<title role="synopsis.title">Synopsis</title>
-
-<synopsis>
-
-#include &lt;libglabels/category.h&gt;
-
-                    <link linkend="lglCategory">lglCategory</link>;
-<link linkend="lglCategory">lglCategory</link> *       <link linkend="lgl-category-new">lgl_category_new</link>                    (<link linkend="gchar">gchar</link> *id,
-                                                         <link linkend="gchar">gchar</link> *name);
-<link linkend="lglCategory">lglCategory</link> *       <link linkend="lgl-category-dup">lgl_category_dup</link>                    (const <link linkend="lglCategory">lglCategory</link> *orig);
-<link linkend="void">void</link>                <link linkend="lgl-category-free">lgl_category_free</link>                   (<link linkend="lglCategory">lglCategory</link> *category);
-</synopsis>
-</refsynopsisdiv>
-
-
-
-
-
-
-
-
-
-<refsect1 id="libglabels-category.description" role="desc">
-<title role="desc.title">Description</title>
-<para>
-This section describes a structure for representing a category of stationary and related
-functions.
-</para>
-</refsect1>
-
-<refsect1 id="libglabels-category.details" role="details">
-<title role="details.title">Details</title>
-<refsect2 id="lglCategory" role="struct">
-<title>lglCategory</title>
-<indexterm zone="lglCategory"><primary sortas="lglCategory">lglCategory</primary></indexterm><programlisting>typedef struct {
-       gchar               *id;     /* Unique ID of category */
-       gchar               *name;   /* Localized name of category */
-} lglCategory;
-</programlisting>
-<para>
-This structure defines a category.
-</para><variablelist role="struct">
-<varlistentry>
-<term><link linkend="gchar">gchar</link>&#160;*<structfield>id</structfield>;</term>
-<listitem><simpara>Category ID.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gchar">gchar</link>&#160;*<structfield>name</structfield>;</term>
-<listitem><simpara>Localized category name.
-</simpara></listitem>
-</varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-category-new" role="function">
-<title>lgl_category_new ()</title>
-<indexterm zone="lgl-category-new"><primary sortas="lgl_category_new">lgl_category_new</primary></indexterm><programlisting><link linkend="lglCategory">lglCategory</link> *       lgl_category_new                    (<link linkend="gchar">gchar</link> *id,
-                                                         <link linkend="gchar">gchar</link> *name);</programlisting>
-<para>
-Allocates and constructs a new <link linkend="lglCategory"><type>lglCategory</type></link> structure.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>id</parameter>&#160;:</term>
-<listitem><simpara>     Id of category definition. (E.g. label, card, etc.)  Should be
-         unique.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>name</parameter>&#160;:</term>
-<listitem><simpara>   Localized name of category.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a pointer to a newly allocated <link linkend="lglCategory"><type>lglCategory</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-category-dup" role="function">
-<title>lgl_category_dup ()</title>
-<indexterm zone="lgl-category-dup"><primary sortas="lgl_category_dup">lgl_category_dup</primary></indexterm><programlisting><link linkend="lglCategory">lglCategory</link> *       lgl_category_dup                    (const <link linkend="lglCategory">lglCategory</link> *orig);</programlisting>
-<para>
-Duplicates an existing <link linkend="lglCategory"><type>lglCategory</type></link> structure.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>orig</parameter>&#160;:</term>
-<listitem><simpara>  <link linkend="lglCategory"><type>lglCategory</type></link> structure to be duplicated.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a pointer to a newly allocated <link linkend="lglCategory"><type>lglCategory</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-category-free" role="function">
-<title>lgl_category_free ()</title>
-<indexterm zone="lgl-category-free"><primary sortas="lgl_category_free">lgl_category_free</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_category_free                   (<link linkend="lglCategory">lglCategory</link> *category);</programlisting>
-<para>
-Free all memory associated with an existing <link linkend="lglCategory"><type>lglCategory</type></link> structure.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>category</parameter>&#160;:</term>
-<listitem><simpara>  pointer to <link linkend="lglCategory"><type>lglCategory</type></link> structure to be freed.
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-
-</refsect1>
-
-
-
-
-</refentry>
diff --git a/docs/libglabels/xml/db.xml b/docs/libglabels/xml/db.xml
deleted file mode 100644 (file)
index eff5a29..0000000
+++ /dev/null
@@ -1,587 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
-               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
-
-<refentry id="libglabels-db">
-<refmeta>
-<refentrytitle role="top_of_page" id="libglabels-db.top_of_page">Database</refentrytitle>
-<manvolnum>3</manvolnum>
-<refmiscinfo>LIBGLABELS Library</refmiscinfo>
-</refmeta>
-
-<refnamediv>
-<refname>Database</refname>
-<refpurpose>Database of pre-defined templates</refpurpose>
-</refnamediv>
-
-<refsynopsisdiv id="libglabels-db.synopsis" role="synopsis">
-<title role="synopsis.title">Synopsis</title>
-
-<synopsis>
-
-#include &lt;libglabels/db.h&gt;
-
-enum                <link linkend="lglDbRegStatus">lglDbRegStatus</link>;
-
-<link linkend="void">void</link>                <link linkend="lgl-db-init">lgl_db_init</link>                         (void);
-
-<link linkend="GList">GList</link> *             <link linkend="lgl-db-get-paper-id-list">lgl_db_get_paper_id_list</link>            (void);
-<link linkend="void">void</link>                <link linkend="lgl-db-free-paper-id-list">lgl_db_free_paper_id_list</link>           (<link linkend="GList">GList</link> *ids);
-<link linkend="GList">GList</link> *             <link linkend="lgl-db-get-paper-name-list">lgl_db_get_paper_name_list</link>          (void);
-<link linkend="void">void</link>                <link linkend="lgl-db-free-paper-name-list">lgl_db_free_paper_name_list</link>         (<link linkend="GList">GList</link> *names);
-<link linkend="lglPaper">lglPaper</link> *          <link linkend="lgl-db-lookup-paper-from-id">lgl_db_lookup_paper_from_id</link>         (const <link linkend="gchar">gchar</link> *id);
-<link linkend="lglPaper">lglPaper</link> *          <link linkend="lgl-db-lookup-paper-from-name">lgl_db_lookup_paper_from_name</link>       (const <link linkend="gchar">gchar</link> *name);
-<link linkend="gchar">gchar</link> *             <link linkend="lgl-db-lookup-paper-id-from-name">lgl_db_lookup_paper_id_from_name</link>    (const <link linkend="gchar">gchar</link> *name);
-<link linkend="gchar">gchar</link> *             <link linkend="lgl-db-lookup-paper-name-from-id">lgl_db_lookup_paper_name_from_id</link>    (const <link linkend="gchar">gchar</link> *id);
-<link linkend="gboolean">gboolean</link>            <link linkend="lgl-db-is-paper-id-known">lgl_db_is_paper_id_known</link>            (const <link linkend="gchar">gchar</link> *id);
-<link linkend="gboolean">gboolean</link>            <link linkend="lgl-db-is-paper-id-other">lgl_db_is_paper_id_other</link>            (const <link linkend="gchar">gchar</link> *id);
-
-<link linkend="GList">GList</link> *             <link linkend="lgl-db-get-category-id-list">lgl_db_get_category_id_list</link>         (void);
-<link linkend="void">void</link>                <link linkend="lgl-db-free-category-id-list">lgl_db_free_category_id_list</link>        (<link linkend="GList">GList</link> *ids);
-<link linkend="GList">GList</link> *             <link linkend="lgl-db-get-category-name-list">lgl_db_get_category_name_list</link>       (void);
-<link linkend="void">void</link>                <link linkend="lgl-db-free-category-name-list">lgl_db_free_category_name_list</link>      (<link linkend="GList">GList</link> *names);
-<link linkend="lglCategory">lglCategory</link> *       <link linkend="lgl-db-lookup-category-from-id">lgl_db_lookup_category_from_id</link>      (const <link linkend="gchar">gchar</link> *id);
-<link linkend="lglCategory">lglCategory</link> *       <link linkend="lgl-db-lookup-category-from-name">lgl_db_lookup_category_from_name</link>    (const <link linkend="gchar">gchar</link> *name);
-<link linkend="gchar">gchar</link> *             <link linkend="lgl-db-lookup-category-id-from-name">lgl_db_lookup_category_id_from_name</link> (const <link linkend="gchar">gchar</link> *name);
-<link linkend="gchar">gchar</link> *             <link linkend="lgl-db-lookup-category-name-from-id">lgl_db_lookup_category_name_from_id</link> (const <link linkend="gchar">gchar</link> *id);
-<link linkend="gboolean">gboolean</link>            <link linkend="lgl-db-is-category-id-known">lgl_db_is_category_id_known</link>         (const <link linkend="gchar">gchar</link> *id);
-
-<link linkend="GList">GList</link> *             <link linkend="lgl-db-get-brand-list">lgl_db_get_brand_list</link>               (const <link linkend="gchar">gchar</link> *paper_id,
-                                                         const <link linkend="gchar">gchar</link> *category_id);
-<link linkend="void">void</link>                <link linkend="lgl-db-free-brand-list">lgl_db_free_brand_list</link>              (<link linkend="GList">GList</link> *brands);
-
-<link linkend="lglDbRegStatus">lglDbRegStatus</link>      <link linkend="lgl-db-register-template">lgl_db_register_template</link>            (const <link linkend="lglTemplate">lglTemplate</link> *template);
-<link linkend="gboolean">gboolean</link>            <link linkend="lgl-db-does-template-exist">lgl_db_does_template_exist</link>          (const <link linkend="gchar">gchar</link> *brand,
-                                                         const <link linkend="gchar">gchar</link> *part);
-<link linkend="gboolean">gboolean</link>            <link linkend="lgl-db-does-template-name-exist">lgl_db_does_template_name_exist</link>     (const <link linkend="gchar">gchar</link> *name);
-<link linkend="GList">GList</link> *             <link linkend="lgl-db-get-template-name-list-unique">lgl_db_get_template_name_list_unique</link>
-                                                        (const <link linkend="gchar">gchar</link> *brand,
-                                                         const <link linkend="gchar">gchar</link> *paper_id,
-                                                         const <link linkend="gchar">gchar</link> *category_id);
-<link linkend="GList">GList</link> *             <link linkend="lgl-db-get-template-name-list-all">lgl_db_get_template_name_list_all</link>   (const <link linkend="gchar">gchar</link> *brand,
-                                                         const <link linkend="gchar">gchar</link> *paper_id,
-                                                         const <link linkend="gchar">gchar</link> *category_id);
-<link linkend="void">void</link>                <link linkend="lgl-db-free-template-name-list">lgl_db_free_template_name_list</link>      (<link linkend="GList">GList</link> *names);
-<link linkend="lglTemplate">lglTemplate</link> *       <link linkend="lgl-db-lookup-template-from-name">lgl_db_lookup_template_from_name</link>    (const <link linkend="gchar">gchar</link> *name);
-
-<link linkend="void">void</link>                <link linkend="lgl-db-print-known-papers">lgl_db_print_known_papers</link>           (void);
-<link linkend="void">void</link>                <link linkend="lgl-db-print-known-categories">lgl_db_print_known_categories</link>       (void);
-<link linkend="void">void</link>                <link linkend="lgl-db-print-known-templates">lgl_db_print_known_templates</link>        (void);
-<link linkend="void">void</link>                <link linkend="lgl-db-print-aliases">lgl_db_print_aliases</link>                (const <link linkend="lglTemplate">lglTemplate</link> *template);
-</synopsis>
-</refsynopsisdiv>
-
-
-
-
-
-
-
-
-
-<refsect1 id="libglabels-db.description" role="desc">
-<title role="desc.title">Description</title>
-<para>
-This section describes a set of functions to locate and add templates and related information in
-the LibGlabels template database.
-</para>
-</refsect1>
-
-<refsect1 id="libglabels-db.details" role="details">
-<title role="details.title">Details</title>
-<refsect2 id="lglDbRegStatus" role="enum">
-<title>enum lglDbRegStatus</title>
-<indexterm zone="lglDbRegStatus"><primary sortas="lglDbRegStatus">lglDbRegStatus</primary></indexterm><programlisting>typedef enum
-{
-        LGL_DB_REG_OK                =  0,
-        LGL_DB_REG_BAD_PAPER_ID      = -1,
-        LGL_DB_REG_BRAND_PART_EXISTS = -2,
-        LGL_DB_REG_FILE_WRITE_ERROR  = -3
-} lglDbRegStatus;
-</programlisting>
-<para>
-This enumeration defines a set of possible return values for <link linkend="lgl-db-register-template"><function>lgl_db_register_template()</function></link>.
-</para><variablelist role="enum">
-<varlistentry id="LGL-DB-REG-OK--CAPS" role="constant">
-<term><literal>LGL_DB_REG_OK</literal></term>
-<listitem><simpara>Registration successful.
-</simpara></listitem>
-</varlistentry>
-<varlistentry id="LGL-DB-REG-BAD-PAPER-ID--CAPS" role="constant">
-<term><literal>LGL_DB_REG_BAD_PAPER_ID</literal></term>
-<listitem><simpara> Registration failed because paper id is unknown.
-</simpara></listitem>
-</varlistentry>
-<varlistentry id="LGL-DB-REG-BRAND-PART-EXISTS--CAPS" role="constant">
-<term><literal>LGL_DB_REG_BRAND_PART_EXISTS</literal></term>
-<listitem><simpara>Registration failed because template with same brand and part name/number already exists.
-</simpara></listitem>
-</varlistentry>
-<varlistentry id="LGL-DB-REG-FILE-WRITE-ERROR--CAPS" role="constant">
-<term><literal>LGL_DB_REG_FILE_WRITE_ERROR</literal></term>
-<listitem><simpara>Registration failed because an error while writing to disk.
-</simpara></listitem>
-</varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-init" role="function">
-<title>lgl_db_init ()</title>
-<indexterm zone="lgl-db-init"><primary sortas="lgl_db_init">lgl_db_init</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_db_init                         (void);</programlisting>
-<para>
-Initialize all libglabels subsystems.  It is not necessary for an application to call
-<link linkend="lgl-db-init"><function>lgl_db_init()</function></link>, because libglabels will initialize on demand.  An application programmer may
-choose to call <link linkend="lgl-db-init"><function>lgl_db_init()</function></link> at startup to minimize the impact of the first libglabels call
-on GUI response time.
-</para>
-<para>
-This function initializes its paper definitions, category definitions, and its template
-database.. It will search both system and user template directories to locate
-this data.</para>
-<para>
-</para></refsect2>
-<refsect2 id="lgl-db-get-paper-id-list" role="function">
-<title>lgl_db_get_paper_id_list ()</title>
-<indexterm zone="lgl-db-get-paper-id-list"><primary sortas="lgl_db_get_paper_id_list">lgl_db_get_paper_id_list</primary></indexterm><programlisting><link linkend="GList">GList</link> *             lgl_db_get_paper_id_list            (void);</programlisting>
-<para>
-Get a list of all paper ids known to libglabels.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a list of paper ids.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-free-paper-id-list" role="function">
-<title>lgl_db_free_paper_id_list ()</title>
-<indexterm zone="lgl-db-free-paper-id-list"><primary sortas="lgl_db_free_paper_id_list">lgl_db_free_paper_id_list</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_db_free_paper_id_list           (<link linkend="GList">GList</link> *ids);</programlisting>
-<para>
-Free up all storage associated with an id list obtained with
-<link linkend="lgl-db-get-paper-id-list"><function>lgl_db_get_paper_id_list()</function></link>.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>ids</parameter>&#160;:</term>
-<listitem><simpara> List of id strings to be freed.
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-get-paper-name-list" role="function">
-<title>lgl_db_get_paper_name_list ()</title>
-<indexterm zone="lgl-db-get-paper-name-list"><primary sortas="lgl_db_get_paper_name_list">lgl_db_get_paper_name_list</primary></indexterm><programlisting><link linkend="GList">GList</link> *             lgl_db_get_paper_name_list          (void);</programlisting>
-<para>
-Get a list of all localized paper names known to libglabels.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a list of localized paper names.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-free-paper-name-list" role="function">
-<title>lgl_db_free_paper_name_list ()</title>
-<indexterm zone="lgl-db-free-paper-name-list"><primary sortas="lgl_db_free_paper_name_list">lgl_db_free_paper_name_list</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_db_free_paper_name_list         (<link linkend="GList">GList</link> *names);</programlisting>
-<para>
-Free up all storage associated with a name list obtained with
-<link linkend="lgl-db-get-paper-name-list"><function>lgl_db_get_paper_name_list()</function></link>.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>names</parameter>&#160;:</term>
-<listitem><simpara> List of localized paper name strings to be freed.
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-lookup-paper-from-id" role="function">
-<title>lgl_db_lookup_paper_from_id ()</title>
-<indexterm zone="lgl-db-lookup-paper-from-id"><primary sortas="lgl_db_lookup_paper_from_id">lgl_db_lookup_paper_from_id</primary></indexterm><programlisting><link linkend="lglPaper">lglPaper</link> *          lgl_db_lookup_paper_from_id         (const <link linkend="gchar">gchar</link> *id);</programlisting>
-<para>
-Lookup paper definition from id string.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>id</parameter>&#160;:</term>
-<listitem><simpara> paper id string
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> pointer to a newly allocated <link linkend="lglPaper"><type>lglPaper</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-lookup-paper-from-name" role="function">
-<title>lgl_db_lookup_paper_from_name ()</title>
-<indexterm zone="lgl-db-lookup-paper-from-name"><primary sortas="lgl_db_lookup_paper_from_name">lgl_db_lookup_paper_from_name</primary></indexterm><programlisting><link linkend="lglPaper">lglPaper</link> *          lgl_db_lookup_paper_from_name       (const <link linkend="gchar">gchar</link> *name);</programlisting>
-<para>
-Lookup paper definition from localized paper name string.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>name</parameter>&#160;:</term>
-<listitem><simpara> localized paper name string
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> pointer to a newly allocated <link linkend="lglPaper"><type>lglPaper</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-lookup-paper-id-from-name" role="function">
-<title>lgl_db_lookup_paper_id_from_name ()</title>
-<indexterm zone="lgl-db-lookup-paper-id-from-name"><primary sortas="lgl_db_lookup_paper_id_from_name">lgl_db_lookup_paper_id_from_name</primary></indexterm><programlisting><link linkend="gchar">gchar</link> *             lgl_db_lookup_paper_id_from_name    (const <link linkend="gchar">gchar</link> *name);</programlisting>
-<para>
-Lookup paper name string from localized paper name string.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>name</parameter>&#160;:</term>
-<listitem><simpara> localized paper name stringp
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> pointer to a newly allocated id string.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-lookup-paper-name-from-id" role="function">
-<title>lgl_db_lookup_paper_name_from_id ()</title>
-<indexterm zone="lgl-db-lookup-paper-name-from-id"><primary sortas="lgl_db_lookup_paper_name_from_id">lgl_db_lookup_paper_name_from_id</primary></indexterm><programlisting><link linkend="gchar">gchar</link> *             lgl_db_lookup_paper_name_from_id    (const <link linkend="gchar">gchar</link> *id);</programlisting>
-<para>
-Lookup localized paper name string from paper id string.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>id</parameter>&#160;:</term>
-<listitem><simpara> paper id string
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> pointer to a newly allocated localized paper name string.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-is-paper-id-known" role="function">
-<title>lgl_db_is_paper_id_known ()</title>
-<indexterm zone="lgl-db-is-paper-id-known"><primary sortas="lgl_db_is_paper_id_known">lgl_db_is_paper_id_known</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            lgl_db_is_paper_id_known            (const <link linkend="gchar">gchar</link> *id);</programlisting>
-<para>
-Determine if given paper id is known to libglabels.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>id</parameter>&#160;:</term>
-<listitem><simpara> paper id to test
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> TRUE if id is known, otherwise FALSE.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-is-paper-id-other" role="function">
-<title>lgl_db_is_paper_id_other ()</title>
-<indexterm zone="lgl-db-is-paper-id-other"><primary sortas="lgl_db_is_paper_id_other">lgl_db_is_paper_id_other</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            lgl_db_is_paper_id_other            (const <link linkend="gchar">gchar</link> *id);</programlisting>
-<para>
-Determine if given paper id is the special id "Other."</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>id</parameter>&#160;:</term>
-<listitem><simpara> paper id to test
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> TRUE if id is "Other", otherwise FALSE.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-get-category-id-list" role="function">
-<title>lgl_db_get_category_id_list ()</title>
-<indexterm zone="lgl-db-get-category-id-list"><primary sortas="lgl_db_get_category_id_list">lgl_db_get_category_id_list</primary></indexterm><programlisting><link linkend="GList">GList</link> *             lgl_db_get_category_id_list         (void);</programlisting>
-<para>
-Get a list of all category ids known to libglabels.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a list of category ids.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-free-category-id-list" role="function">
-<title>lgl_db_free_category_id_list ()</title>
-<indexterm zone="lgl-db-free-category-id-list"><primary sortas="lgl_db_free_category_id_list">lgl_db_free_category_id_list</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_db_free_category_id_list        (<link linkend="GList">GList</link> *ids);</programlisting>
-<para>
-Free up all storage associated with an id list obtained with
-<link linkend="lgl-db-get-category-id-list"><function>lgl_db_get_category_id_list()</function></link>.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>ids</parameter>&#160;:</term>
-<listitem><simpara> List of id strings to be freed.
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-get-category-name-list" role="function">
-<title>lgl_db_get_category_name_list ()</title>
-<indexterm zone="lgl-db-get-category-name-list"><primary sortas="lgl_db_get_category_name_list">lgl_db_get_category_name_list</primary></indexterm><programlisting><link linkend="GList">GList</link> *             lgl_db_get_category_name_list       (void);</programlisting>
-<para>
-Get a list of all localized category names known to libglabels.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a list of localized category names.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-free-category-name-list" role="function">
-<title>lgl_db_free_category_name_list ()</title>
-<indexterm zone="lgl-db-free-category-name-list"><primary sortas="lgl_db_free_category_name_list">lgl_db_free_category_name_list</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_db_free_category_name_list      (<link linkend="GList">GList</link> *names);</programlisting>
-<para>
-Free up all storage associated with a name list obtained with
-<link linkend="lgl-db-get-category-name-list"><function>lgl_db_get_category_name_list()</function></link>.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>names</parameter>&#160;:</term>
-<listitem><simpara> List of localized category name strings to be freed.
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-lookup-category-from-id" role="function">
-<title>lgl_db_lookup_category_from_id ()</title>
-<indexterm zone="lgl-db-lookup-category-from-id"><primary sortas="lgl_db_lookup_category_from_id">lgl_db_lookup_category_from_id</primary></indexterm><programlisting><link linkend="lglCategory">lglCategory</link> *       lgl_db_lookup_category_from_id      (const <link linkend="gchar">gchar</link> *id);</programlisting>
-<para>
-Lookup category definition from id string.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>id</parameter>&#160;:</term>
-<listitem><simpara> category id string
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> pointer to a newly allocated <link linkend="lglCategory"><type>lglCategory</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-lookup-category-from-name" role="function">
-<title>lgl_db_lookup_category_from_name ()</title>
-<indexterm zone="lgl-db-lookup-category-from-name"><primary sortas="lgl_db_lookup_category_from_name">lgl_db_lookup_category_from_name</primary></indexterm><programlisting><link linkend="lglCategory">lglCategory</link> *       lgl_db_lookup_category_from_name    (const <link linkend="gchar">gchar</link> *name);</programlisting>
-<para>
-Lookup category definition from localized category name string.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>name</parameter>&#160;:</term>
-<listitem><simpara> localized category name string
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> pointer to a newly allocated <link linkend="lglCategory"><type>lglCategory</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-lookup-category-id-from-name" role="function">
-<title>lgl_db_lookup_category_id_from_name ()</title>
-<indexterm zone="lgl-db-lookup-category-id-from-name"><primary sortas="lgl_db_lookup_category_id_from_name">lgl_db_lookup_category_id_from_name</primary></indexterm><programlisting><link linkend="gchar">gchar</link> *             lgl_db_lookup_category_id_from_name (const <link linkend="gchar">gchar</link> *name);</programlisting>
-<para>
-Lookup category name string from localized category name string.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>name</parameter>&#160;:</term>
-<listitem><simpara> localized category name stringp
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> pointer to a newly allocated id string.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-lookup-category-name-from-id" role="function">
-<title>lgl_db_lookup_category_name_from_id ()</title>
-<indexterm zone="lgl-db-lookup-category-name-from-id"><primary sortas="lgl_db_lookup_category_name_from_id">lgl_db_lookup_category_name_from_id</primary></indexterm><programlisting><link linkend="gchar">gchar</link> *             lgl_db_lookup_category_name_from_id (const <link linkend="gchar">gchar</link> *id);</programlisting>
-<para>
-Lookup localized category name string from category id string.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>id</parameter>&#160;:</term>
-<listitem><simpara> category id string
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> pointer to a newly allocated localized category name string.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-is-category-id-known" role="function">
-<title>lgl_db_is_category_id_known ()</title>
-<indexterm zone="lgl-db-is-category-id-known"><primary sortas="lgl_db_is_category_id_known">lgl_db_is_category_id_known</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            lgl_db_is_category_id_known         (const <link linkend="gchar">gchar</link> *id);</programlisting>
-<para>
-Determine if given category id is known to libglabels.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>id</parameter>&#160;:</term>
-<listitem><simpara> category id to test
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> TRUE if id is known, otherwise FALSE.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-get-brand-list" role="function">
-<title>lgl_db_get_brand_list ()</title>
-<indexterm zone="lgl-db-get-brand-list"><primary sortas="lgl_db_get_brand_list">lgl_db_get_brand_list</primary></indexterm><programlisting><link linkend="GList">GList</link> *             lgl_db_get_brand_list               (const <link linkend="gchar">gchar</link> *paper_id,
-                                                         const <link linkend="gchar">gchar</link> *category_id);</programlisting>
-<para>
-Get a list of all valid brands of templates in the template database.
-Results can be filtered by page size and/or template category.  A list of valid page
-sizes can be obtained using <link linkend="lgl-db-get-paper-id-list"><function>lgl_db_get_paper_id_list()</function></link>.  A list of valid template
-categories can be obtained using <link linkend="lgl-db-get-category-id-list"><function>lgl_db_get_category_id_list()</function></link>.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>paper_id</parameter>&#160;:</term>
-<listitem><simpara> If non NULL, limit results to given page size.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>category_id</parameter>&#160;:</term>
-<listitem><simpara> If non NULL, limit results to given template category.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a list of brands
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-free-brand-list" role="function">
-<title>lgl_db_free_brand_list ()</title>
-<indexterm zone="lgl-db-free-brand-list"><primary sortas="lgl_db_free_brand_list">lgl_db_free_brand_list</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_db_free_brand_list              (<link linkend="GList">GList</link> *brands);</programlisting>
-<para>
-Free up all storage associated with a list of template names obtained with
-<link linkend="lgl-db-get-brand-list"><function>lgl_db_get_brand_list()</function></link>.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>brands</parameter>&#160;:</term>
-<listitem><simpara> List of template brand strings to be freed.
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-register-template" role="function">
-<title>lgl_db_register_template ()</title>
-<indexterm zone="lgl-db-register-template"><primary sortas="lgl_db_register_template">lgl_db_register_template</primary></indexterm><programlisting><link linkend="lglDbRegStatus">lglDbRegStatus</link>      lgl_db_register_template            (const <link linkend="lglTemplate">lglTemplate</link> *template);</programlisting>
-<para>
-Register a template.  This function adds a template to the template database.
-The template will be stored in an individual XML file in the user template directory.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>template</parameter>&#160;:</term>
-<listitem><simpara>  Pointer to a template structure to add to database.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> Status of registration attempt (<link linkend="lglDbRegStatus"><type>lglDbRegStatus</type></link>)
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-does-template-exist" role="function">
-<title>lgl_db_does_template_exist ()</title>
-<indexterm zone="lgl-db-does-template-exist"><primary sortas="lgl_db_does_template_exist">lgl_db_does_template_exist</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            lgl_db_does_template_exist          (const <link linkend="gchar">gchar</link> *brand,
-                                                         const <link linkend="gchar">gchar</link> *part);</programlisting>
-<para>
-This function tests whether a template with the given brand and part name/number exists.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>brand</parameter>&#160;:</term>
-<listitem><simpara> Brand name.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>part</parameter>&#160;:</term>
-<listitem><simpara>  Part name/number.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>  TRUE if such a template exists in the database.
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-does-template-name-exist" role="function">
-<title>lgl_db_does_template_name_exist ()</title>
-<indexterm zone="lgl-db-does-template-name-exist"><primary sortas="lgl_db_does_template_name_exist">lgl_db_does_template_name_exist</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            lgl_db_does_template_name_exist     (const <link linkend="gchar">gchar</link> *name);</programlisting>
-<para>
-This function test whether a template with the given name exists.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>name</parameter>&#160;:</term>
-<listitem><simpara> name string
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> TRUE if such a template exists in the database.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-get-template-name-list-unique" role="function">
-<title>lgl_db_get_template_name_list_unique ()</title>
-<indexterm zone="lgl-db-get-template-name-list-unique"><primary sortas="lgl_db_get_template_name_list_unique">lgl_db_get_template_name_list_unique</primary></indexterm><programlisting><link linkend="GList">GList</link> *             lgl_db_get_template_name_list_unique
-                                                        (const <link linkend="gchar">gchar</link> *brand,
-                                                         const <link linkend="gchar">gchar</link> *paper_id,
-                                                         const <link linkend="gchar">gchar</link> *category_id);</programlisting>
-<para>
-Get a list of valid names of unique templates in the template database.  Results
-can be filtered by page size and/or template category.  A list of valid page sizes
-can be obtained using <link linkend="lgl-db-get-paper-id-list"><function>lgl_db_get_paper_id_list()</function></link>.  A list of valid template categories
-can be obtained using <link linkend="lgl-db-get-category-id-list"><function>lgl_db_get_category_id_list()</function></link>.
-</para>
-<para>
-This function differs from <link linkend="lgl-db-get-template-name-list-all"><function>lgl_db_get_template_name_list_all()</function></link>, because it does not
-return multiple names for the same template.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>brand</parameter>&#160;:</term>
-<listitem><simpara>     If non NULL, limit results to given brand
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>paper_id</parameter>&#160;:</term>
-<listitem><simpara> If non NULL, limit results to given page size.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>category_id</parameter>&#160;:</term>
-<listitem><simpara> If non NULL, limit results to given template category.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a list of template names.
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-get-template-name-list-all" role="function">
-<title>lgl_db_get_template_name_list_all ()</title>
-<indexterm zone="lgl-db-get-template-name-list-all"><primary sortas="lgl_db_get_template_name_list_all">lgl_db_get_template_name_list_all</primary></indexterm><programlisting><link linkend="GList">GList</link> *             lgl_db_get_template_name_list_all   (const <link linkend="gchar">gchar</link> *brand,
-                                                         const <link linkend="gchar">gchar</link> *paper_id,
-                                                         const <link linkend="gchar">gchar</link> *category_id);</programlisting>
-<para>
-Get a list of all valid names and aliases of templates in the template database.
-Results can be filtered by page size and/or template category.  A list of valid page
-sizes can be obtained using <link linkend="lgl-db-get-paper-id-list"><function>lgl_db_get_paper_id_list()</function></link>.  A list of valid template
-categories can be obtained using <link linkend="lgl-db-get-category-id-list"><function>lgl_db_get_category_id_list()</function></link>.
-</para>
-<para>
-This function differs from <link linkend="lgl-db-get-template-name-list-unique"><function>lgl_db_get_template_name_list_unique()</function></link>, because it will
-return multiple names for the same template.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>brand</parameter>&#160;:</term>
-<listitem><simpara>     If non NULL, limit results to given brand
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>paper_id</parameter>&#160;:</term>
-<listitem><simpara> If non NULL, limit results to given page size.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>category_id</parameter>&#160;:</term>
-<listitem><simpara> If non NULL, limit results to given template category.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a list of template names and aliases.
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-free-template-name-list" role="function">
-<title>lgl_db_free_template_name_list ()</title>
-<indexterm zone="lgl-db-free-template-name-list"><primary sortas="lgl_db_free_template_name_list">lgl_db_free_template_name_list</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_db_free_template_name_list      (<link linkend="GList">GList</link> *names);</programlisting>
-<para>
-Free up all storage associated with a list of template names obtained with
-<link linkend="lgl-db-get-template-name-list-all"><function>lgl_db_get_template_name_list_all()</function></link> or <link linkend="lgl-db-get-template-name-list-unique"><function>lgl_db_get_template_name_list_unique()</function></link>.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>names</parameter>&#160;:</term>
-<listitem><simpara> List of template name strings to be freed.
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-lookup-template-from-name" role="function">
-<title>lgl_db_lookup_template_from_name ()</title>
-<indexterm zone="lgl-db-lookup-template-from-name"><primary sortas="lgl_db_lookup_template_from_name">lgl_db_lookup_template_from_name</primary></indexterm><programlisting><link linkend="lglTemplate">lglTemplate</link> *       lgl_db_lookup_template_from_name    (const <link linkend="gchar">gchar</link> *name);</programlisting>
-<para>
-Lookup template in template database from name string.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>name</parameter>&#160;:</term>
-<listitem><simpara> name string
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> pointer to a newly allocated <link linkend="lglTemplate"><type>lglTemplate</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-db-print-known-papers" role="function">
-<title>lgl_db_print_known_papers ()</title>
-<indexterm zone="lgl-db-print-known-papers"><primary sortas="lgl_db_print_known_papers">lgl_db_print_known_papers</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_db_print_known_papers           (void);</programlisting>
-<para>
-For debugging purposes: print a list of all paper definitions known to
-libglabels.</para>
-<para>
-</para></refsect2>
-<refsect2 id="lgl-db-print-known-categories" role="function">
-<title>lgl_db_print_known_categories ()</title>
-<indexterm zone="lgl-db-print-known-categories"><primary sortas="lgl_db_print_known_categories">lgl_db_print_known_categories</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_db_print_known_categories       (void);</programlisting>
-<para>
-For debugging purposes: print a list of all category definitions known to
-libglabels.</para>
-<para>
-</para></refsect2>
-<refsect2 id="lgl-db-print-known-templates" role="function">
-<title>lgl_db_print_known_templates ()</title>
-<indexterm zone="lgl-db-print-known-templates"><primary sortas="lgl_db_print_known_templates">lgl_db_print_known_templates</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_db_print_known_templates        (void);</programlisting>
-<para>
-Print all known templates (for debugging purposes).</para>
-<para>
-</para></refsect2>
-<refsect2 id="lgl-db-print-aliases" role="function">
-<title>lgl_db_print_aliases ()</title>
-<indexterm zone="lgl-db-print-aliases"><primary sortas="lgl_db_print_aliases">lgl_db_print_aliases</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_db_print_aliases                (const <link linkend="lglTemplate">lglTemplate</link> *template);</programlisting>
-<para>
-Print all aliases of a template (for debugging purposes).</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>template</parameter>&#160;:</term>
-<listitem><simpara> template
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-
-</refsect1>
-
-
-
-
-</refentry>
diff --git a/docs/libglabels/xml/enums.xml b/docs/libglabels/xml/enums.xml
deleted file mode 100644 (file)
index 55a9000..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
-               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
-
-<refentry id="libglabels-enums">
-<refmeta>
-<refentrytitle role="top_of_page" id="libglabels-enums.top_of_page">Enumerations</refentrytitle>
-<manvolnum>3</manvolnum>
-<refmiscinfo>LIBGLABELS Library</refmiscinfo>
-</refmeta>
-
-<refnamediv>
-<refname>Enumerations</refname>
-<refpurpose>Common enumerations used by libglabels</refpurpose>
-</refnamediv>
-
-<refsynopsisdiv id="libglabels-enums.synopsis" role="synopsis">
-<title role="synopsis.title">Synopsis</title>
-
-<synopsis>
-
-#include &lt;libglabels/enums.h&gt;
-
-enum                <link linkend="lglUnitsType">lglUnitsType</link>;
-</synopsis>
-</refsynopsisdiv>
-
-
-
-
-
-
-
-
-
-<refsect1 id="libglabels-enums.description" role="desc">
-<title role="desc.title">Description</title>
-<para>
-This section defines enumerations used to interact with libglabels.
-</para>
-</refsect1>
-
-<refsect1 id="libglabels-enums.details" role="details">
-<title role="details.title">Details</title>
-<refsect2 id="lglUnitsType" role="enum">
-<title>enum lglUnitsType</title>
-<indexterm zone="lglUnitsType"><primary sortas="lglUnitsType">lglUnitsType</primary></indexterm><programlisting>typedef enum {
-       LGL_UNITS_POINT, /* encoded as "pt" */
-       LGL_UNITS_INCH,  /* encoded as "in" */
-       LGL_UNITS_MM,    /* encoded as "mm" */
-       LGL_UNITS_CM,    /* encoded as "cm" */
-       LGL_UNITS_PICA,  /* encoded as "pc" */
-
-       LGL_UNITS_FIRST = LGL_UNITS_POINT,
-       LGL_UNITS_LAST  = LGL_UNITS_PICA,
-} lglUnitsType;
-</programlisting>
-<para>
-This enumeration defines a set of units of distance supported by the libglabels XML distance
-attributes.
-</para><variablelist role="enum">
-<varlistentry id="LGL-UNITS-POINT--CAPS" role="constant">
-<term><literal>LGL_UNITS_POINT</literal></term>
-<listitem><simpara>Points.  Encoded as "pt" in XML distance attributes.
-</simpara></listitem>
-</varlistentry>
-<varlistentry id="LGL-UNITS-INCH--CAPS" role="constant">
-<term><literal>LGL_UNITS_INCH</literal></term>
-<listitem><simpara>Inches.  Encoded as "in" in XML distance attributes.
-</simpara></listitem>
-</varlistentry>
-<varlistentry id="LGL-UNITS-MM--CAPS" role="constant">
-<term><literal>LGL_UNITS_MM</literal></term>
-<listitem><simpara>Millmeters.  Encoded as "mm" in XML distance attributes.
-</simpara></listitem>
-</varlistentry>
-<varlistentry id="LGL-UNITS-CM--CAPS" role="constant">
-<term><literal>LGL_UNITS_CM</literal></term>
-<listitem><simpara>Centimeters.  Encoded as "cm" in XML distance attributes.
-</simpara></listitem>
-</varlistentry>
-<varlistentry id="LGL-UNITS-PICA--CAPS" role="constant">
-<term><literal>LGL_UNITS_PICA</literal></term>
-<listitem><simpara>Picas.  Encoded as "pc" in XML distance attributes.
-</simpara></listitem>
-</varlistentry>
-<varlistentry id="LGL-UNITS-FIRST--CAPS" role="constant">
-<term><literal>LGL_UNITS_FIRST</literal></term>
-<listitem><simpara>First enumeration.  Used for generic iteration through supported units..
-</simpara></listitem>
-</varlistentry>
-<varlistentry id="LGL-UNITS-LAST--CAPS" role="constant">
-<term><literal>LGL_UNITS_LAST</literal></term>
-<listitem><simpara>Last enumeration.  Used for generic iteration through supported units.
-</simpara></listitem>
-</varlistentry>
-</variablelist></refsect2>
-
-</refsect1>
-
-
-
-
-</refentry>
diff --git a/docs/libglabels/xml/paper.xml b/docs/libglabels/xml/paper.xml
deleted file mode 100644 (file)
index 1a1abcf..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
-               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
-
-<refentry id="libglabels-paper">
-<refmeta>
-<refentrytitle role="top_of_page" id="libglabels-paper.top_of_page">The lglPaper Structure</refentrytitle>
-<manvolnum>3</manvolnum>
-<refmiscinfo>LIBGLABELS Library</refmiscinfo>
-</refmeta>
-
-<refnamediv>
-<refname>The lglPaper Structure</refname>
-<refpurpose>Paper size definitions</refpurpose>
-</refnamediv>
-
-<refsynopsisdiv id="libglabels-paper.synopsis" role="synopsis">
-<title role="synopsis.title">Synopsis</title>
-
-<synopsis>
-
-#include &lt;libglabels/paper.h&gt;
-
-                    <link linkend="lglPaper">lglPaper</link>;
-<link linkend="lglPaper">lglPaper</link> *          <link linkend="lgl-paper-new">lgl_paper_new</link>                       (<link linkend="gchar">gchar</link> *id,
-                                                         <link linkend="gchar">gchar</link> *name,
-                                                         <link linkend="gdouble">gdouble</link> width,
-                                                         <link linkend="gdouble">gdouble</link> height,
-                                                         <link linkend="gchar">gchar</link> *pwg_size);
-<link linkend="lglPaper">lglPaper</link> *          <link linkend="lgl-paper-dup">lgl_paper_dup</link>                       (const <link linkend="lglPaper">lglPaper</link> *orig);
-<link linkend="void">void</link>                <link linkend="lgl-paper-free">lgl_paper_free</link>                      (<link linkend="lglPaper">lglPaper</link> *paper);
-</synopsis>
-</refsynopsisdiv>
-
-
-
-
-
-
-
-
-
-<refsect1 id="libglabels-paper.description" role="desc">
-<title role="desc.title">Description</title>
-<para>
-This section describes a structure for representing a paper size definition
-and related functions.
-</para>
-</refsect1>
-
-<refsect1 id="libglabels-paper.details" role="details">
-<title role="details.title">Details</title>
-<refsect2 id="lglPaper" role="struct">
-<title>lglPaper</title>
-<indexterm zone="lglPaper"><primary sortas="lglPaper">lglPaper</primary></indexterm><programlisting>typedef struct {
-       gchar               *id;       /* Unique ID of paper definition */
-       gchar               *name;     /* Localized name of paper */
-       gdouble              width;    /* Width (in points) */
-       gdouble              height;   /* Height (in points) */
-       gchar               *pwg_size; /* PWG 5101.1-2002 size name */
-} lglPaper;
-</programlisting>
-<para>
-This structure defines a paper (page) size.
-</para><variablelist role="struct">
-<varlistentry>
-<term><link linkend="gchar">gchar</link>&#160;*<structfield>id</structfield>;</term>
-<listitem><simpara>Paper size ID.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gchar">gchar</link>&#160;*<structfield>name</structfield>;</term>
-<listitem><simpara>Localized paper size name.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>width</structfield>;</term>
-<listitem><simpara>Width of paper in points.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>height</structfield>;</term>
-<listitem><simpara>Height of paper in points.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gchar">gchar</link>&#160;*<structfield>pwg_size</structfield>;</term>
-<listitem><simpara>PWG 5101.1-2002 size name.
-</simpara></listitem>
-</varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-paper-new" role="function">
-<title>lgl_paper_new ()</title>
-<indexterm zone="lgl-paper-new"><primary sortas="lgl_paper_new">lgl_paper_new</primary></indexterm><programlisting><link linkend="lglPaper">lglPaper</link> *          lgl_paper_new                       (<link linkend="gchar">gchar</link> *id,
-                                                         <link linkend="gchar">gchar</link> *name,
-                                                         <link linkend="gdouble">gdouble</link> width,
-                                                         <link linkend="gdouble">gdouble</link> height,
-                                                         <link linkend="gchar">gchar</link> *pwg_size);</programlisting>
-<para>
-Allocates and constructs a new <link linkend="lglPaper"><type>lglPaper</type></link> structure.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>id</parameter>&#160;:</term>
-<listitem><simpara>       Id of paper definition. (E.g. US-Letter, A4, etc.)  Should be
-           unique.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>name</parameter>&#160;:</term>
-<listitem><simpara>     Localized name of paper.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>width</parameter>&#160;:</term>
-<listitem><simpara>    Width of paper in points.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>height</parameter>&#160;:</term>
-<listitem><simpara>   Height of paper in points.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>pwg_size</parameter>&#160;:</term>
-<listitem><simpara> PWG 5101.1-2002 size name.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a pointer to a newly allocated <link linkend="lglPaper"><type>lglPaper</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-paper-dup" role="function">
-<title>lgl_paper_dup ()</title>
-<indexterm zone="lgl-paper-dup"><primary sortas="lgl_paper_dup">lgl_paper_dup</primary></indexterm><programlisting><link linkend="lglPaper">lglPaper</link> *          lgl_paper_dup                       (const <link linkend="lglPaper">lglPaper</link> *orig);</programlisting>
-<para>
-Duplicates an existing <link linkend="lglPaper"><type>lglPaper</type></link> structure.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>orig</parameter>&#160;:</term>
-<listitem><simpara>  <link linkend="lglPaper"><type>lglPaper</type></link> structure to be duplicated.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a pointer to a newly allocated <link linkend="lglPaper"><type>lglPaper</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-paper-free" role="function">
-<title>lgl_paper_free ()</title>
-<indexterm zone="lgl-paper-free"><primary sortas="lgl_paper_free">lgl_paper_free</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_paper_free                      (<link linkend="lglPaper">lglPaper</link> *paper);</programlisting>
-<para>
-Free all memory associated with an existing <link linkend="lglPaper"><type>lglPaper</type></link> structure.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>paper</parameter>&#160;:</term>
-<listitem><simpara>  pointer to <link linkend="lglPaper"><type>lglPaper</type></link> structure to be freed.
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-
-</refsect1>
-
-
-
-
-</refentry>
diff --git a/docs/libglabels/xml/str.xml b/docs/libglabels/xml/str.xml
deleted file mode 100644 (file)
index 7071c10..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
-               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
-
-<refentry id="libglabels-str">
-<refmeta>
-<refentrytitle role="top_of_page" id="libglabels-str.top_of_page">String Utility Functions</refentrytitle>
-<manvolnum>3</manvolnum>
-<refmiscinfo>LIBGLABELS Library</refmiscinfo>
-</refmeta>
-
-<refnamediv>
-<refname>String Utility Functions</refname>
-<refpurpose>String utility functions provided by libglabels</refpurpose>
-</refnamediv>
-
-<refsynopsisdiv id="libglabels-str.synopsis" role="synopsis">
-<title role="synopsis.title">Synopsis</title>
-
-<synopsis>
-
-#include &lt;libglabels/str.h&gt;
-
-<link linkend="gint">gint</link>                <link linkend="lgl-str-utf8-casecmp">lgl_str_utf8_casecmp</link>                (const <link linkend="gchar">gchar</link> *s1,
-                                                         const <link linkend="gchar">gchar</link> *s2);
-</synopsis>
-</refsynopsisdiv>
-
-
-
-
-
-
-
-
-
-<refsect1 id="libglabels-str.description" role="desc">
-<title role="desc.title">Description</title>
-<para>
-This section defines string utility functions used by libglabels and of
-possible use to a user of libglabels.
-</para>
-</refsect1>
-
-<refsect1 id="libglabels-str.details" role="details">
-<title role="details.title">Details</title>
-<refsect2 id="lgl-str-utf8-casecmp" role="function">
-<title>lgl_str_utf8_casecmp ()</title>
-<indexterm zone="lgl-str-utf8-casecmp"><primary sortas="lgl_str_utf8_casecmp">lgl_str_utf8_casecmp</primary></indexterm><programlisting><link linkend="gint">gint</link>                lgl_str_utf8_casecmp                (const <link linkend="gchar">gchar</link> *s1,
-                                                         const <link linkend="gchar">gchar</link> *s2);</programlisting>
-<para>
-Compare two UTF-8 strings, ignoring the case of characters.
-</para>
-<para>
-This function should be used only on strings that are known to be encoded
-in UTF-8 or a compatible UTF-8 subset.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>s1</parameter>&#160;:</term>
-<listitem><simpara> string to compare with s2.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>s2</parameter>&#160;:</term>
-<listitem><simpara> string to compare with s1.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> 0 if the strings match, a negative value if s1 &lt; s2,
-         or a positive value if s1 &gt; s2.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-
-</refsect1>
-
-
-
-
-</refentry>
diff --git a/docs/libglabels/xml/template.xml b/docs/libglabels/xml/template.xml
deleted file mode 100644 (file)
index 6e81f96..0000000
+++ /dev/null
@@ -1,1391 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
-               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
-
-<refentry id="libglabels-template">
-<refmeta>
-<refentrytitle role="top_of_page" id="libglabels-template.top_of_page">The lglTemplate Structure</refentrytitle>
-<manvolnum>3</manvolnum>
-<refmiscinfo>LIBGLABELS Library</refmiscinfo>
-</refmeta>
-
-<refnamediv>
-<refname>The lglTemplate Structure</refname>
-<refpurpose>How templates are represented in memory</refpurpose>
-</refnamediv>
-
-<refsynopsisdiv id="libglabels-template.synopsis" role="synopsis">
-<title role="synopsis.title">Synopsis</title>
-
-<synopsis>
-
-#include &lt;libglabels/template.h&gt;
-
-                    <link linkend="lglTemplate">lglTemplate</link>;
-
-                    <link linkend="lglTemplateAlias">lglTemplateAlias</link>;
-
-enum                <link linkend="lglTemplateFrameShape">lglTemplateFrameShape</link>;
-union               <link linkend="lglTemplateFrame">lglTemplateFrame</link>;
-                    <link linkend="lglTemplateFrameAll">lglTemplateFrameAll</link>;
-                    <link linkend="lglTemplateFrameRect">lglTemplateFrameRect</link>;
-                    <link linkend="lglTemplateFrameRound">lglTemplateFrameRound</link>;
-                    <link linkend="lglTemplateFrameCD">lglTemplateFrameCD</link>;
-
-                    <link linkend="lglTemplateLayout">lglTemplateLayout</link>;
-
-enum                <link linkend="lglTemplateMarkupType">lglTemplateMarkupType</link>;
-union               <link linkend="lglTemplateMarkup">lglTemplateMarkup</link>;
-                    <link linkend="lglTemplateMarkupMargin">lglTemplateMarkupMargin</link>;
-                    <link linkend="lglTemplateMarkupLine">lglTemplateMarkupLine</link>;
-                    <link linkend="lglTemplateMarkupCircle">lglTemplateMarkupCircle</link>;
-                    <link linkend="lglTemplateMarkupRect">lglTemplateMarkupRect</link>;
-
-                    <link linkend="lglTemplateOrigin">lglTemplateOrigin</link>;
-
-<link linkend="lglTemplate">lglTemplate</link> *       <link linkend="lgl-template-new">lgl_template_new</link>                    (const <link linkend="gchar">gchar</link> *brand,
-                                                         const <link linkend="gchar">gchar</link> *part,
-                                                         const <link linkend="gchar">gchar</link> *description,
-                                                         const <link linkend="gchar">gchar</link> *paper_id,
-                                                         <link linkend="gdouble">gdouble</link> page_width,
-                                                         <link linkend="gdouble">gdouble</link> page_height);
-<link linkend="lglTemplate">lglTemplate</link> *       <link linkend="lgl-template-dup">lgl_template_dup</link>                    (const <link linkend="lglTemplate">lglTemplate</link> *orig_template);
-<link linkend="void">void</link>                <link linkend="lgl-template-free">lgl_template_free</link>                   (<link linkend="lglTemplate">lglTemplate</link> *template);
-<link linkend="void">void</link>                <link linkend="lgl-template-add-category">lgl_template_add_category</link>           (<link linkend="lglTemplate">lglTemplate</link> *template,
-                                                         const <link linkend="gchar">gchar</link> *category_id);
-<link linkend="void">void</link>                <link linkend="lgl-template-add-frame">lgl_template_add_frame</link>              (<link linkend="lglTemplate">lglTemplate</link> *template,
-                                                         <link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame);
-<link linkend="void">void</link>                <link linkend="lgl-template-add-alias">lgl_template_add_alias</link>              (<link linkend="lglTemplate">lglTemplate</link> *template,
-                                                         <link linkend="lglTemplateAlias">lglTemplateAlias</link> *alias);
-
-<link linkend="gchar">gchar</link> *             <link linkend="lgl-template-get-name">lgl_template_get_name</link>               (const <link linkend="lglTemplate">lglTemplate</link> *template);
-<link linkend="gboolean">gboolean</link>            <link linkend="lgl-template-do-templates-match">lgl_template_do_templates_match</link>     (const <link linkend="lglTemplate">lglTemplate</link> *template1,
-                                                         const <link linkend="lglTemplate">lglTemplate</link> *template2);
-<link linkend="gboolean">gboolean</link>            <link linkend="lgl-template-does-brand-match">lgl_template_does_brand_match</link>       (const <link linkend="lglTemplate">lglTemplate</link> *template,
-                                                         const <link linkend="gchar">gchar</link> *brand);
-<link linkend="gboolean">gboolean</link>            <link linkend="lgl-template-does-page-size-match">lgl_template_does_page_size_match</link>   (const <link linkend="lglTemplate">lglTemplate</link> *template,
-                                                         const <link linkend="gchar">gchar</link> *paper_id);
-<link linkend="gboolean">gboolean</link>            <link linkend="lgl-template-does-category-match">lgl_template_does_category_match</link>    (const <link linkend="lglTemplate">lglTemplate</link> *template,
-                                                         const <link linkend="gchar">gchar</link> *category_id);
-
-<link linkend="lglTemplateAlias">lglTemplateAlias</link> *  <link linkend="lgl-template-alias-new">lgl_template_alias_new</link>              (const <link linkend="gchar">gchar</link> *brand,
-                                                         const <link linkend="gchar">gchar</link> *part);
-<link linkend="lglTemplateAlias">lglTemplateAlias</link> *  <link linkend="lgl-template-alias-dup">lgl_template_alias_dup</link>              (const <link linkend="lglTemplateAlias">lglTemplateAlias</link> *orig_alias);
-<link linkend="void">void</link>                <link linkend="lgl-template-alias-free">lgl_template_alias_free</link>             (<link linkend="lglTemplateAlias">lglTemplateAlias</link> *alias);
-
-<link linkend="lglTemplateFrame">lglTemplateFrame</link> *  <link linkend="lgl-template-frame-rect-new">lgl_template_frame_rect_new</link>         (const <link linkend="gchar">gchar</link> *id,
-                                                         <link linkend="gdouble">gdouble</link> w,
-                                                         <link linkend="gdouble">gdouble</link> h,
-                                                         <link linkend="gdouble">gdouble</link> r,
-                                                         <link linkend="gdouble">gdouble</link> x_waste,
-                                                         <link linkend="gdouble">gdouble</link> y_waste);
-<link linkend="lglTemplateFrame">lglTemplateFrame</link> *  <link linkend="lgl-template-frame-round-new">lgl_template_frame_round_new</link>        (const <link linkend="gchar">gchar</link> *id,
-                                                         <link linkend="gdouble">gdouble</link> r,
-                                                         <link linkend="gdouble">gdouble</link> waste);
-<link linkend="lglTemplateFrame">lglTemplateFrame</link> *  <link linkend="lgl-template-frame-cd-new">lgl_template_frame_cd_new</link>           (const <link linkend="gchar">gchar</link> *id,
-                                                         <link linkend="gdouble">gdouble</link> r1,
-                                                         <link linkend="gdouble">gdouble</link> r2,
-                                                         <link linkend="gdouble">gdouble</link> w,
-                                                         <link linkend="gdouble">gdouble</link> h,
-                                                         <link linkend="gdouble">gdouble</link> waste);
-<link linkend="lglTemplateFrame">lglTemplateFrame</link> *  <link linkend="lgl-template-frame-dup">lgl_template_frame_dup</link>              (const <link linkend="lglTemplateFrame">lglTemplateFrame</link> *orig_frame);
-<link linkend="void">void</link>                <link linkend="lgl-template-frame-free">lgl_template_frame_free</link>             (<link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame);
-<link linkend="void">void</link>                <link linkend="lgl-template-frame-add-layout">lgl_template_frame_add_layout</link>       (<link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame,
-                                                         <link linkend="lglTemplateLayout">lglTemplateLayout</link> *layout);
-<link linkend="void">void</link>                <link linkend="lgl-template-frame-add-markup">lgl_template_frame_add_markup</link>       (<link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame,
-                                                         <link linkend="lglTemplateMarkup">lglTemplateMarkup</link> *markup);
-
-<link linkend="void">void</link>                <link linkend="lgl-template-frame-get-size">lgl_template_frame_get_size</link>         (const <link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame,
-                                                         <link linkend="gdouble">gdouble</link> *w,
-                                                         <link linkend="gdouble">gdouble</link> *h);
-<link linkend="gint">gint</link>                <link linkend="lgl-template-frame-get-n-labels">lgl_template_frame_get_n_labels</link>     (const <link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame);
-<link linkend="lglTemplateOrigin">lglTemplateOrigin</link> * <link linkend="lgl-template-frame-get-origins">lgl_template_frame_get_origins</link>      (const <link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame);
-
-<link linkend="lglTemplateLayout">lglTemplateLayout</link> * <link linkend="lgl-template-layout-new">lgl_template_layout_new</link>             (<link linkend="gint">gint</link> nx,
-                                                         <link linkend="gint">gint</link> ny,
-                                                         <link linkend="gdouble">gdouble</link> x0,
-                                                         <link linkend="gdouble">gdouble</link> y0,
-                                                         <link linkend="gdouble">gdouble</link> dx,
-                                                         <link linkend="gdouble">gdouble</link> dy);
-<link linkend="lglTemplateLayout">lglTemplateLayout</link> * <link linkend="lgl-template-layout-dup">lgl_template_layout_dup</link>             (const <link linkend="lglTemplateLayout">lglTemplateLayout</link> *orig_layout);
-<link linkend="void">void</link>                <link linkend="lgl-template-layout-free">lgl_template_layout_free</link>            (<link linkend="lglTemplateLayout">lglTemplateLayout</link> *layout);
-
-<link linkend="lglTemplateMarkup">lglTemplateMarkup</link> * <link linkend="lgl-template-markup-margin-new">lgl_template_markup_margin_new</link>      (<link linkend="gdouble">gdouble</link> size);
-<link linkend="lglTemplateMarkup">lglTemplateMarkup</link> * <link linkend="lgl-template-markup-line-new">lgl_template_markup_line_new</link>        (<link linkend="gdouble">gdouble</link> x1,
-                                                         <link linkend="gdouble">gdouble</link> y1,
-                                                         <link linkend="gdouble">gdouble</link> x2,
-                                                         <link linkend="gdouble">gdouble</link> y2);
-<link linkend="lglTemplateMarkup">lglTemplateMarkup</link> * <link linkend="lgl-template-markup-circle-new">lgl_template_markup_circle_new</link>      (<link linkend="gdouble">gdouble</link> x0,
-                                                         <link linkend="gdouble">gdouble</link> y0,
-                                                         <link linkend="gdouble">gdouble</link> r);
-<link linkend="lglTemplateMarkup">lglTemplateMarkup</link> * <link linkend="lgl-template-markup-rect-new">lgl_template_markup_rect_new</link>        (<link linkend="gdouble">gdouble</link> x1,
-                                                         <link linkend="gdouble">gdouble</link> y1,
-                                                         <link linkend="gdouble">gdouble</link> w,
-                                                         <link linkend="gdouble">gdouble</link> h,
-                                                         <link linkend="gdouble">gdouble</link> r);
-<link linkend="lglTemplateMarkup">lglTemplateMarkup</link> * <link linkend="lgl-template-markup-dup">lgl_template_markup_dup</link>             (const <link linkend="lglTemplateMarkup">lglTemplateMarkup</link> *orig_markup);
-<link linkend="void">void</link>                <link linkend="lgl-template-markup-free">lgl_template_markup_free</link>            (<link linkend="lglTemplateMarkup">lglTemplateMarkup</link> *markup);
-</synopsis>
-</refsynopsisdiv>
-
-
-
-
-
-
-
-
-
-<refsect1 id="libglabels-template.description" role="desc">
-<title role="desc.title">Description</title>
-<para>
-This section describes a set of structures that represent a template in memory.  It also
-describes functions to help create and interpret these structures.
-</para>
-</refsect1>
-
-<refsect1 id="libglabels-template.details" role="details">
-<title role="details.title">Details</title>
-<refsect2 id="lglTemplate" role="struct">
-<title>lglTemplate</title>
-<indexterm zone="lglTemplate"><primary sortas="lglTemplate">lglTemplate</primary></indexterm><programlisting>typedef struct {
-       gchar               *brand;
-        gchar               *part;
-       gchar               *description;
-       gchar               *paper_id;
-       gdouble              page_width;
-       gdouble              page_height;
-
-       /* List of (lglTemplateAlias *) aliase structures. */
-       GList               *aliases;
-
-        /* List of (gchar *) category ids. */
-       GList               *category_ids;
-
-       /* List of (lglTemplateFrame *) label frame structures.
-        * Currently glabels only supports a single label frame per
-        * template. */
-       GList               *frames;
-} lglTemplate;
-</programlisting>
-<para>
-This is the main structure of a libglabels template.  A template represents a single sheet
-of peel-off labels or cards.
-</para><variablelist role="struct">
-<varlistentry>
-<term><link linkend="gchar">gchar</link>&#160;*<structfield>brand</structfield>;</term>
-<listitem><simpara>Brand name of label or card.  E.g. "Avery."
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gchar">gchar</link>&#160;*<structfield>part</structfield>;</term>
-<listitem><simpara>Part name or number of label or card.  E.g. "8160."
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gchar">gchar</link>&#160;*<structfield>description</structfield>;</term>
-<listitem><simpara>A description of the template.  E.g. "Mailing labels."
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gchar">gchar</link>&#160;*<structfield>paper_id</structfield>;</term>
-<listitem><simpara>A paper ID.  E.g. "A4" or "US-Letter."
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>page_width</structfield>;</term>
-<listitem><simpara>Page width in points.  Used only if paper_id is "Other."
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>page_height</structfield>;</term>
-<listitem><simpara>Page height in points.  Used only if paper_id is "Other."
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="GList">GList</link>&#160;*<structfield>aliases</structfield>;</term>
-<listitem><simpara>A list of alternate names for this template.  Often a single template can be used for
-multiple products.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="GList">GList</link>&#160;*<structfield>category_ids</structfield>;</term>
-<listitem><simpara>A list of category IDs that this template belongs to.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="GList">GList</link>&#160;*<structfield>frames</structfield>;</term>
-<listitem><simpara>A list of (<link linkend="lglTemplateFrame"><type>lglTemplateFrame</type></link> *) structures.  GLabels currently only supports one frame
-per template -- future versions may support multiple frames per template.
-</simpara></listitem>
-</varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lglTemplateAlias" role="struct">
-<title>lglTemplateAlias</title>
-<indexterm zone="lglTemplateAlias"><primary sortas="lglTemplateAlias">lglTemplateAlias</primary></indexterm><programlisting>typedef struct {
-       gchar               *brand;
-        gchar               *part;
-} lglTemplateAlias;
-</programlisting>
-<para>
-This structure defines an alias for the parent template structure.  An alias is used for
-different products that can use the same template.
-</para><variablelist role="struct">
-<varlistentry>
-<term><link linkend="gchar">gchar</link>&#160;*<structfield>brand</structfield>;</term>
-<listitem><simpara>Brand name of label or card.  E.g. "Avery."
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gchar">gchar</link>&#160;*<structfield>part</structfield>;</term>
-<listitem><simpara>Part name or number of label or card.  E.g. "8160."
-</simpara></listitem>
-</varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lglTemplateFrameShape" role="enum">
-<title>enum lglTemplateFrameShape</title>
-<indexterm zone="lglTemplateFrameShape"><primary sortas="lglTemplateFrameShape">lglTemplateFrameShape</primary></indexterm><programlisting>typedef enum {
-       LGL_TEMPLATE_FRAME_SHAPE_RECT,
-       LGL_TEMPLATE_FRAME_SHAPE_ROUND,
-       LGL_TEMPLATE_FRAME_SHAPE_CD,
-} lglTemplateFrameShape;
-</programlisting>
-<para>
-This enumeration defines frame types that are supported by libglabels
-</para><variablelist role="enum">
-<varlistentry id="LGL-TEMPLATE-FRAME-SHAPE-RECT--CAPS" role="constant">
-<term><literal>LGL_TEMPLATE_FRAME_SHAPE_RECT</literal></term>
-<listitem><simpara>A rectangular frame.  (May have rounded corners.)
-</simpara></listitem>
-</varlistentry>
-<varlistentry id="LGL-TEMPLATE-FRAME-SHAPE-ROUND--CAPS" role="constant">
-<term><literal>LGL_TEMPLATE_FRAME_SHAPE_ROUND</literal></term>
-<listitem><simpara>A round frame.
-</simpara></listitem>
-</varlistentry>
-<varlistentry id="LGL-TEMPLATE-FRAME-SHAPE-CD--CAPS" role="constant">
-<term><literal>LGL_TEMPLATE_FRAME_SHAPE_CD</literal></term>
-<listitem><simpara>A CD or DVD frame.  (Includes credit-card style CDs.)
-</simpara></listitem>
-</varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lglTemplateFrame" role="union">
-<title>union lglTemplateFrame</title>
-<indexterm zone="lglTemplateFrame"><primary sortas="lglTemplateFrame">lglTemplateFrame</primary></indexterm><programlisting>union lglTemplateFrame{
-
-       lglTemplateFrameShape shape;
-
-       lglTemplateFrameAll   all;
-       lglTemplateFrameRect  rect;
-       lglTemplateFrameRound round;
-       lglTemplateFrameCD    cd;
-};
-</programlisting>
-<para>
-A union of all possible frame structures.  The type of structure is indicated by the shape
-member, which overlays the first field of all other member structures.
-</para></refsect2>
-<refsect2 id="lglTemplateFrameAll" role="struct">
-<title>lglTemplateFrameAll</title>
-<indexterm zone="lglTemplateFrameAll"><primary sortas="lglTemplateFrameAll">lglTemplateFrameAll</primary></indexterm><programlisting>typedef struct {
-        /* Begin Common Fields */
-       lglTemplateFrameShape shape;
-
-       gchar                *id;       /* Id, currently always "0" */
-       GList                *layouts;  /* List of lglTemplateLayouts */
-       GList                *markups;  /* List of lglTemplateMarkups */
-        /* End Common Fields */
-} lglTemplateFrameAll;
-</programlisting>
-<para>
-This structure is composed of a set of fields common to all frame structures.  All frame types
-can be cast to this structure.
-</para><variablelist role="struct">
-<varlistentry>
-<term><link linkend="lglTemplateFrameShape">lglTemplateFrameShape</link>&#160;<structfield>shape</structfield>;</term>
-<listitem><simpara>The shape of the frame.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gchar">gchar</link>&#160;*<structfield>id</structfield>;</term>
-<listitem><simpara>Reserved for future use.  Should always be zero.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="GList">GList</link>&#160;*<structfield>layouts</structfield>;</term>
-<listitem><simpara>A list of (<link linkend="lglTemplateLayout"><type>lglTemplateLayout</type></link> *) structures.  Typically a frame will have a single
-layout, representing a simple grid of labels or cards.  If the layout of labels or cards is
-more complex, multiple (<link linkend="lglTemplateLayout"><type>lglTemplateLayout</type></link> *) structures may be needed.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="GList">GList</link>&#160;*<structfield>markups</structfield>;</term>
-<listitem><simpara>A list of (<link linkend="lglTemplateMarkup"><type>lglTemplateMarkup</type></link> *) structures, which represent non-printing markup lines.
-</simpara></listitem>
-</varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lglTemplateFrameRect" role="struct">
-<title>lglTemplateFrameRect</title>
-<indexterm zone="lglTemplateFrameRect"><primary sortas="lglTemplateFrameRect">lglTemplateFrameRect</primary></indexterm><programlisting>typedef struct {
-        /* Begin Common Fields */
-       lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_RECT. */
-
-       gchar                *id;       /* Id, currently always "0" */
-       GList                *layouts;  /* List of lglTemplateLayouts */
-       GList                *markups;  /* List of lglTemplateMarkups */
-        /* End Common Fields */
-
-        gdouble               w;        /* Width */
-        gdouble               h;        /* Height */
-        gdouble               r;        /* Corner radius */
-        gdouble               x_waste;  /* Amount of horiz overprint allowed. */
-        gdouble               y_waste;  /* Amount of vert overprint allowed. */
-} lglTemplateFrameRect;
-</programlisting>
-<para>
-This structure defines the frame for a rectangular label or card.
-</para><variablelist role="struct">
-<varlistentry>
-<term><link linkend="lglTemplateFrameShape">lglTemplateFrameShape</link>&#160;<structfield>shape</structfield>;</term>
-<listitem><simpara>Common field.  Always <link linkend="LGL-TEMPLATE-FRAME-SHAPE-RECT--CAPS"><type>LGL_TEMPLATE_FRAME_SHAPE_RECT</type></link> for <link linkend="lglTemplateFrameRect"><type>lglTemplateFrameRect</type></link>.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gchar">gchar</link>&#160;*<structfield>id</structfield>;</term>
-<listitem><simpara>Common field.  See <link linkend="lglTemplateFrameAll"><type>lglTemplateFrameAll</type></link>.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="GList">GList</link>&#160;*<structfield>layouts</structfield>;</term>
-<listitem><simpara> Common field.  See <link linkend="lglTemplateFrameAll"><type>lglTemplateFrameAll</type></link>.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="GList">GList</link>&#160;*<structfield>markups</structfield>;</term>
-<listitem><simpara> Common field.  See <link linkend="lglTemplateFrameAll"><type>lglTemplateFrameAll</type></link>.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>w</structfield>;</term>
-<listitem><simpara>Width of label or card in points.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>h</structfield>;</term>
-<listitem><simpara>Height of label or card in points.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>r</structfield>;</term>
-<listitem><simpara>Radius of corners in points.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>x_waste</structfield>;</term>
-<listitem><simpara>Amount of horizontal over-print to allow in points.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>y_waste</structfield>;</term>
-<listitem><simpara>Amount of vertical over-print to allow in points.
-</simpara></listitem>
-</varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lglTemplateFrameRound" role="struct">
-<title>lglTemplateFrameRound</title>
-<indexterm zone="lglTemplateFrameRound"><primary sortas="lglTemplateFrameRound">lglTemplateFrameRound</primary></indexterm><programlisting>typedef struct {
-        /* Begin Common Fields */
-       lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_ROUND. */
-
-       gchar                *id;       /* Id, currently always "0" */
-       GList                *layouts;  /* List of lglTemplateLayouts */
-       GList                *markups;  /* List of lglTemplateMarkups */
-        /* End Common Fields */
-
-        gdouble               r;      /* Radius */
-        gdouble               waste;  /* Amount of overprint allowed. */
-} lglTemplateFrameRound;
-</programlisting>
-<para>
-This structure defines the frame for a round label or card.
-</para><variablelist role="struct">
-<varlistentry>
-<term><link linkend="lglTemplateFrameShape">lglTemplateFrameShape</link>&#160;<structfield>shape</structfield>;</term>
-<listitem><simpara>Common field.  Always <link linkend="LGL-TEMPLATE-FRAME-SHAPE-ROUND--CAPS"><type>LGL_TEMPLATE_FRAME_SHAPE_ROUND</type></link> for <link linkend="lglTemplateFrameRound"><type>lglTemplateFrameRound</type></link>.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gchar">gchar</link>&#160;*<structfield>id</structfield>;</term>
-<listitem><simpara>Common field.  See <link linkend="lglTemplateFrameAll"><type>lglTemplateFrameAll</type></link>.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="GList">GList</link>&#160;*<structfield>layouts</structfield>;</term>
-<listitem><simpara>Common field.  See <link linkend="lglTemplateFrameAll"><type>lglTemplateFrameAll</type></link>.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="GList">GList</link>&#160;*<structfield>markups</structfield>;</term>
-<listitem><simpara>Common field.  See <link linkend="lglTemplateFrameAll"><type>lglTemplateFrameAll</type></link>.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>r</structfield>;</term>
-<listitem><simpara>Radius of label or card in points.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>waste</structfield>;</term>
-<listitem><simpara>Amount of over-print to allow in points.
-</simpara></listitem>
-</varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lglTemplateFrameCD" role="struct">
-<title>lglTemplateFrameCD</title>
-<indexterm zone="lglTemplateFrameCD"><primary sortas="lglTemplateFrameCD">lglTemplateFrameCD</primary></indexterm><programlisting>typedef struct {
-        /* Begin Common Fields */
-       lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_CD. */
-
-       gchar                *id;       /* Id, currently always "0" */
-       GList                *layouts;  /* List of lglTemplateLayouts */
-       GList                *markups;  /* List of lglTemplateMarkups */
-        /* End Common Fields */
-
-        gdouble               r1;     /* Outer radius */
-        gdouble               r2;     /* Inner radius (hole) */
-        gdouble               w;      /* Clip width, business card CDs */
-        gdouble               h;      /* Clip height, business card CDs */
-        gdouble               waste;  /* Amount of overprint allowed. */
-} lglTemplateFrameCD;
-</programlisting>
-<para>
-This structure defines the frame for a CD or DVD label.  This structure also supports
-credit-card CD labels.
-</para><variablelist role="struct">
-<varlistentry>
-<term><link linkend="lglTemplateFrameShape">lglTemplateFrameShape</link>&#160;<structfield>shape</structfield>;</term>
-<listitem><simpara>Common field.  Always <link linkend="LGL-TEMPLATE-FRAME-SHAPE-CD--CAPS"><type>LGL_TEMPLATE_FRAME_SHAPE_CD</type></link> for <link linkend="lglTemplateFrameCD"><type>lglTemplateFrameCD</type></link>.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gchar">gchar</link>&#160;*<structfield>id</structfield>;</term>
-<listitem><simpara>Common field.  See <link linkend="lglTemplateFrameAll"><type>lglTemplateFrameAll</type></link>.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="GList">GList</link>&#160;*<structfield>layouts</structfield>;</term>
-<listitem><simpara>Common field.  See <link linkend="lglTemplateFrameAll"><type>lglTemplateFrameAll</type></link>.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="GList">GList</link>&#160;*<structfield>markups</structfield>;</term>
-<listitem><simpara>Common field.  See <link linkend="lglTemplateFrameAll"><type>lglTemplateFrameAll</type></link>.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>r1</structfield>;</term>
-<listitem><simpara>Outer radius of label in points.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>r2</structfield>;</term>
-<listitem><simpara>Radius of center hole in points.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>w</structfield>;</term>
-<listitem><simpara>Clip width in points.  Used for credit-card CD labels.  This field is ignored if zero.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>h</structfield>;</term>
-<listitem><simpara>Clip height in points.  Used for credit-card CD labels.  This field is ignored if zero.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>waste</structfield>;</term>
-<listitem><simpara>Amount of over-print to allow in points.
-</simpara></listitem>
-</varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lglTemplateLayout" role="struct">
-<title>lglTemplateLayout</title>
-<indexterm zone="lglTemplateLayout"><primary sortas="lglTemplateLayout">lglTemplateLayout</primary></indexterm><programlisting>typedef struct {
-       gint                  nx;  /* Number of labels across */
-       gint                  ny;  /* Number of labels up and down */
-
-       gdouble               x0;  /* Left of grid from left edge of paper */
-       gdouble               y0;  /* Top of grid from top edge of paper */
-
-       gdouble               dx;  /* Horizontal pitch of grid */
-       gdouble               dy;  /* Vertical pitch of grid */
-} lglTemplateLayout;
-</programlisting>
-<para>
-This structure defines a simple grid layout of labels or cards.
-</para><variablelist role="struct">
-<varlistentry>
-<term><link linkend="gint">gint</link>&#160;<structfield>nx</structfield>;</term>
-<listitem><simpara>Number of labels or cards across in the grid (horizontal).
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gint">gint</link>&#160;<structfield>ny</structfield>;</term>
-<listitem><simpara>Number of labels or cards down in the grid (vertical).
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>x0</structfield>;</term>
-<listitem><simpara>Distance (in points) from the left edge of page to the left edge of the left column of
-cards or labels in the layout.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>y0</structfield>;</term>
-<listitem><simpara>Distance (in points) from the top edge of page to the top edge of the top row of
-cards or labels in the layout.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>dx</structfield>;</term>
-<listitem><simpara>Horizontal pitch of grid in points.  This is the distance from left edge to left edge
-(not the gap between labels or cards).
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>dy</structfield>;</term>
-<listitem><simpara>Vertical pitch of grid in points.  This is the distance from top edge to top edge
-(not the gap between labels or cards).
-</simpara></listitem>
-</varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lglTemplateMarkupType" role="enum">
-<title>enum lglTemplateMarkupType</title>
-<indexterm zone="lglTemplateMarkupType"><primary sortas="lglTemplateMarkupType">lglTemplateMarkupType</primary></indexterm><programlisting>typedef enum {
-       LGL_TEMPLATE_MARKUP_MARGIN,
-       LGL_TEMPLATE_MARKUP_LINE,
-       LGL_TEMPLATE_MARKUP_CIRCLE,
-       LGL_TEMPLATE_MARKUP_RECT,
-} lglTemplateMarkupType;
-</programlisting>
-<para>
-This enumeration defines markup types that are supported by libglabels
-</para><variablelist role="enum">
-<varlistentry id="LGL-TEMPLATE-MARKUP-MARGIN--CAPS" role="constant">
-<term><literal>LGL_TEMPLATE_MARKUP_MARGIN</literal></term>
-<listitem><simpara>A margin line around perimeter of label or card.
-</simpara></listitem>
-</varlistentry>
-<varlistentry id="LGL-TEMPLATE-MARKUP-LINE--CAPS" role="constant">
-<term><literal>LGL_TEMPLATE_MARKUP_LINE</literal></term>
-<listitem><simpara>A simple line segment.
-</simpara></listitem>
-</varlistentry>
-<varlistentry id="LGL-TEMPLATE-MARKUP-CIRCLE--CAPS" role="constant">
-<term><literal>LGL_TEMPLATE_MARKUP_CIRCLE</literal></term>
-<listitem><simpara>A circle.
-</simpara></listitem>
-</varlistentry>
-<varlistentry id="LGL-TEMPLATE-MARKUP-RECT--CAPS" role="constant">
-<term><literal>LGL_TEMPLATE_MARKUP_RECT</literal></term>
-<listitem><simpara>A rectangle.  Possibly with rounded corners.
-</simpara></listitem>
-</varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lglTemplateMarkup" role="union">
-<title>union lglTemplateMarkup</title>
-<indexterm zone="lglTemplateMarkup"><primary sortas="lglTemplateMarkup">lglTemplateMarkup</primary></indexterm><programlisting>union lglTemplateMarkup {
-
-       lglTemplateMarkupType   type;
-
-       lglTemplateMarkupMargin margin;
-       lglTemplateMarkupLine   line;
-       lglTemplateMarkupCircle circle;
-       lglTemplateMarkupRect   rect;
-};
-</programlisting>
-<para>
-A union of all possible markup structures.  The type of structure is indicated by the type
-member, which overlays the first field of all other member structures.
-</para></refsect2>
-<refsect2 id="lglTemplateMarkupMargin" role="struct">
-<title>lglTemplateMarkupMargin</title>
-<indexterm zone="lglTemplateMarkupMargin"><primary sortas="lglTemplateMarkupMargin">lglTemplateMarkupMargin</primary></indexterm><programlisting>typedef struct {
-       lglTemplateMarkupType  type;  /* Always LGL_TEMPLATE_MARKUP_MARGIN */
-
-        gdouble                size;  /* Margin size */
-} lglTemplateMarkupMargin;
-</programlisting>
-<para>
-This structure defines a simple margin markup around the perimeter of a label or card.
-</para><variablelist role="struct">
-<varlistentry>
-<term><link linkend="lglTemplateMarkupType">lglTemplateMarkupType</link>&#160;<structfield>type</structfield>;</term>
-<listitem><simpara>Common field.  Always <link linkend="LGL-TEMPLATE-MARKUP-MARGIN--CAPS"><type>LGL_TEMPLATE_MARKUP_MARGIN</type></link> for <link linkend="lglTemplateMarkupMargin"><type>lglTemplateMarkupMargin</type></link>.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>size</structfield>;</term>
-<listitem><simpara>Distance of margin from edge of label or card.
-</simpara></listitem>
-</varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lglTemplateMarkupLine" role="struct">
-<title>lglTemplateMarkupLine</title>
-<indexterm zone="lglTemplateMarkupLine"><primary sortas="lglTemplateMarkupLine">lglTemplateMarkupLine</primary></indexterm><programlisting>typedef struct {
-       lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_LINE */
-
-        gdouble                x1, y1; /* 1st endpoint */
-        gdouble                x2, y2; /* 2nd endpoint */
-} lglTemplateMarkupLine;
-</programlisting>
-<para>
-This structure defines a simple line segment markup.
-</para><variablelist role="struct">
-<varlistentry>
-<term><link linkend="lglTemplateMarkupType">lglTemplateMarkupType</link>&#160;<structfield>type</structfield>;</term>
-<listitem><simpara>Common field.  Always <link linkend="LGL-TEMPLATE-MARKUP-LINE--CAPS"><type>LGL_TEMPLATE_MARKUP_LINE</type></link> for <link linkend="lglTemplateMarkupLine"><type>lglTemplateMarkupLine</type></link>.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>x1</structfield>;</term>
-<listitem><simpara>Distance (in points) of first endpoint from left edge of label or card.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>y1</structfield>;</term>
-<listitem><simpara>Distance (in points) of first endpoint from top edge of label or card.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>x2</structfield>;</term>
-<listitem><simpara>Distance (in points) of second endpoint from left edge of label or card.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>y2</structfield>;</term>
-<listitem><simpara>Distance (in points) of second endpoint from top edge of label or card.
-</simpara></listitem>
-</varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lglTemplateMarkupCircle" role="struct">
-<title>lglTemplateMarkupCircle</title>
-<indexterm zone="lglTemplateMarkupCircle"><primary sortas="lglTemplateMarkupCircle">lglTemplateMarkupCircle</primary></indexterm><programlisting>typedef struct {
-       lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_CIRCLE */
-
-        gdouble                x0, y0; /* Center of circle */
-        gdouble                r;      /* Radius of circle */
-} lglTemplateMarkupCircle;
-</programlisting>
-<para>
-This structure defines a simple circle markup.
-</para><variablelist role="struct">
-<varlistentry>
-<term><link linkend="lglTemplateMarkupType">lglTemplateMarkupType</link>&#160;<structfield>type</structfield>;</term>
-<listitem><simpara>Common field.  Always <link linkend="LGL-TEMPLATE-MARKUP-CIRCLE--CAPS"><type>LGL_TEMPLATE_MARKUP_CIRCLE</type></link> for <link linkend="lglTemplateMarkupCircle"><type>lglTemplateMarkupCircle</type></link>.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>x0</structfield>;</term>
-<listitem><simpara>Distance (in points) of vertex from left edge of label or card.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>y0</structfield>;</term>
-<listitem><simpara>Distance (in points) of vertex from top edge of label or card.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>r</structfield>;</term>
-<listitem><simpara>Radius of circle in points.
-</simpara></listitem>
-</varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lglTemplateMarkupRect" role="struct">
-<title>lglTemplateMarkupRect</title>
-<indexterm zone="lglTemplateMarkupRect"><primary sortas="lglTemplateMarkupRect">lglTemplateMarkupRect</primary></indexterm><programlisting>typedef struct {
-       lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_RECT */
-
-        gdouble                x1, y1; /* Upper left corner */
-        gdouble                w, h;   /* Width and height. */
-        gdouble                r;      /* Radius of corners. */
-} lglTemplateMarkupRect;
-</programlisting>
-<para>
-This structure defines a simple rectangle markup.  The rectangle can have rounded corners.
-</para><variablelist role="struct">
-<varlistentry>
-<term><link linkend="lglTemplateMarkupType">lglTemplateMarkupType</link>&#160;<structfield>type</structfield>;</term>
-<listitem><simpara>Common field.  Always <link linkend="LGL-TEMPLATE-MARKUP-RECT--CAPS"><type>LGL_TEMPLATE_MARKUP_RECT</type></link> for <link linkend="lglTemplateMarkupRect"><type>lglTemplateMarkupRect</type></link>.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>x1</structfield>;</term>
-<listitem><simpara>Distance (in points) of left edge of markup from left edge of label or card.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>y1</structfield>;</term>
-<listitem><simpara>Distance (in points) of top edge of markup from top edge of label or card.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>w</structfield>;</term>
-<listitem><simpara>Width of rectangle in points.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>h</structfield>;</term>
-<listitem><simpara>Height of rectangle in points.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>r</structfield>;</term>
-<listitem><simpara>Radius of corners in points.  Should be zero for sharp corners.
-</simpara></listitem>
-</varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lglTemplateOrigin" role="struct">
-<title>lglTemplateOrigin</title>
-<indexterm zone="lglTemplateOrigin"><primary sortas="lglTemplateOrigin">lglTemplateOrigin</primary></indexterm><programlisting>typedef struct {
-       gdouble               x, y; /* Label origin relative to upper 
-                                    * upper left hand corner of paper */
-} lglTemplateOrigin;
-</programlisting>
-<para>
-This structure represents the cartesian coordinates of the origin of a label or card on the page.
-The orign is the upper left corner of the extent of the label or card.  These coordinates are
-relative to the upper left corner of the page.
-</para><variablelist role="struct">
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>x</structfield>;</term>
-<listitem><simpara>Distance in points from top edge of page.
-</simpara></listitem>
-</varlistentry>
-<varlistentry>
-<term><link linkend="gdouble">gdouble</link>&#160;<structfield>y</structfield>;</term>
-<listitem><simpara>Distance in points from left edge of page.
-</simpara></listitem>
-</varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-new" role="function">
-<title>lgl_template_new ()</title>
-<indexterm zone="lgl-template-new"><primary sortas="lgl_template_new">lgl_template_new</primary></indexterm><programlisting><link linkend="lglTemplate">lglTemplate</link> *       lgl_template_new                    (const <link linkend="gchar">gchar</link> *brand,
-                                                         const <link linkend="gchar">gchar</link> *part,
-                                                         const <link linkend="gchar">gchar</link> *description,
-                                                         const <link linkend="gchar">gchar</link> *paper_id,
-                                                         <link linkend="gdouble">gdouble</link> page_width,
-                                                         <link linkend="gdouble">gdouble</link> page_height);</programlisting>
-<para>
-Create a new template structure, with the given top-level attributes.  The
-created template will have no initial aliases, categories, or frames
-associated with it.  See <link linkend="lgl-template-add-alias"><function>lgl_template_add_alias()</function></link>, <link linkend="lgl-template-add-category"><function>lgl_template_add_category()</function></link>,
-and <link linkend="lgl-template-add-frame"><function>lgl_template_add_frame()</function></link> to add these.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>brand</parameter>&#160;:</term>
-<listitem><simpara>        Template brand
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>part</parameter>&#160;:</term>
-<listitem><simpara>         Template part name/number
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>description</parameter>&#160;:</term>
-<listitem><simpara>  Template descriptions
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>paper_id</parameter>&#160;:</term>
-<listitem><simpara>     Page size id
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>page_width</parameter>&#160;:</term>
-<listitem><simpara>   Page width in points, set to zero unless paper_id="Other"
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>page_height</parameter>&#160;:</term>
-<listitem><simpara>  Page height in points, set to zero unless paper_id="Other"
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> pointer to a newly allocated <link linkend="lglTemplate"><type>lglTemplate</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-dup" role="function">
-<title>lgl_template_dup ()</title>
-<indexterm zone="lgl-template-dup"><primary sortas="lgl_template_dup">lgl_template_dup</primary></indexterm><programlisting><link linkend="lglTemplate">lglTemplate</link> *       lgl_template_dup                    (const <link linkend="lglTemplate">lglTemplate</link> *orig_template);</programlisting>
-<para>
-This function duplicates a template structure.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>orig_template</parameter>&#160;:</term>
-<listitem><simpara> Template to duplicate.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>  a newly allocated <link linkend="lglTemplate"><type>lglTemplate</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-free" role="function">
-<title>lgl_template_free ()</title>
-<indexterm zone="lgl-template-free"><primary sortas="lgl_template_free">lgl_template_free</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_template_free                   (<link linkend="lglTemplate">lglTemplate</link> *template);</programlisting>
-<para>
-This function frees all memory associated with given template structure.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>template</parameter>&#160;:</term>
-<listitem><simpara> Template to free.
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-add-category" role="function">
-<title>lgl_template_add_category ()</title>
-<indexterm zone="lgl-template-add-category"><primary sortas="lgl_template_add_category">lgl_template_add_category</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_template_add_category           (<link linkend="lglTemplate">lglTemplate</link> *template,
-                                                         const <link linkend="gchar">gchar</link> *category_id);</programlisting>
-<para>
-This function adds the given category ID to a templates category list.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>template</parameter>&#160;:</term>
-<listitem><simpara>     Pointer to template structure
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>category_id</parameter>&#160;:</term>
-<listitem><simpara>  Category ID string
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-add-frame" role="function">
-<title>lgl_template_add_frame ()</title>
-<indexterm zone="lgl-template-add-frame"><primary sortas="lgl_template_add_frame">lgl_template_add_frame</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_template_add_frame              (<link linkend="lglTemplate">lglTemplate</link> *template,
-                                                         <link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame);</programlisting>
-<para>
-This function adds the given frame structure to the template.  Once added,
-the frame structure belongs to the given template; do not attempt to free
-it.
-</para>
-<para>
-Note: Currently glabels only supports a single frame per template.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>template</parameter>&#160;:</term>
-<listitem><simpara>  Pointer to template structure
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>frame</parameter>&#160;:</term>
-<listitem><simpara>     Pointer to frame structure
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-add-alias" role="function">
-<title>lgl_template_add_alias ()</title>
-<indexterm zone="lgl-template-add-alias"><primary sortas="lgl_template_add_alias">lgl_template_add_alias</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_template_add_alias              (<link linkend="lglTemplate">lglTemplate</link> *template,
-                                                         <link linkend="lglTemplateAlias">lglTemplateAlias</link> *alias);</programlisting>
-<para>
-This function adds the given alias to a templates list of aliases.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>template</parameter>&#160;:</term>
-<listitem><simpara>  Pointer to template structure
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>alias</parameter>&#160;:</term>
-<listitem><simpara>     Alias string
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-get-name" role="function">
-<title>lgl_template_get_name ()</title>
-<indexterm zone="lgl-template-get-name"><primary sortas="lgl_template_get_name">lgl_template_get_name</primary></indexterm><programlisting><link linkend="gchar">gchar</link> *             lgl_template_get_name               (const <link linkend="lglTemplate">lglTemplate</link> *template);</programlisting>
-<para>
-This function returns the name of the given template.  The name is the concetenation
-of the brand and part name/number.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>template</parameter>&#160;:</term>
-<listitem><simpara>  Pointer to template structure to test
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>  A pointer to a newly allocated name string.  Should be freed with <link linkend="g-free"><function>g_free()</function></link>.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-do-templates-match" role="function">
-<title>lgl_template_do_templates_match ()</title>
-<indexterm zone="lgl-template-do-templates-match"><primary sortas="lgl_template_do_templates_match">lgl_template_do_templates_match</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            lgl_template_do_templates_match     (const <link linkend="lglTemplate">lglTemplate</link> *template1,
-                                                         const <link linkend="lglTemplate">lglTemplate</link> *template2);</programlisting>
-<para>
-This function tests if the given templates match.  This is a simple test that only tests
-the brand and part name/number. It does not test if they are actually identical.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>template1</parameter>&#160;:</term>
-<listitem><simpara>  Pointer to 1st template structure to test
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>template2</parameter>&#160;:</term>
-<listitem><simpara>  Pointer to 2nd template structure to test
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>  TRUE if the two template matche.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-does-brand-match" role="function">
-<title>lgl_template_does_brand_match ()</title>
-<indexterm zone="lgl-template-does-brand-match"><primary sortas="lgl_template_does_brand_match">lgl_template_does_brand_match</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            lgl_template_does_brand_match       (const <link linkend="lglTemplate">lglTemplate</link> *template,
-                                                         const <link linkend="gchar">gchar</link> *brand);</programlisting>
-<para>
-This function tests if the brand of the template matches the given brand.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>template</parameter>&#160;:</term>
-<listitem><simpara>  Pointer to template structure to test
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>brand</parameter>&#160;:</term>
-<listitem><simpara>     Brand string
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>  TRUE if the template matches the given brand.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-does-page-size-match" role="function">
-<title>lgl_template_does_page_size_match ()</title>
-<indexterm zone="lgl-template-does-page-size-match"><primary sortas="lgl_template_does_page_size_match">lgl_template_does_page_size_match</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            lgl_template_does_page_size_match   (const <link linkend="lglTemplate">lglTemplate</link> *template,
-                                                         const <link linkend="gchar">gchar</link> *paper_id);</programlisting>
-<para>
-This function tests if the page size of the template matches the given ID.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>template</parameter>&#160;:</term>
-<listitem><simpara>  Pointer to template structure to test
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>paper_id</parameter>&#160;:</term>
-<listitem><simpara>  Page size ID string
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>  TRUE if the template matches the given page size ID.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-does-category-match" role="function">
-<title>lgl_template_does_category_match ()</title>
-<indexterm zone="lgl-template-does-category-match"><primary sortas="lgl_template_does_category_match">lgl_template_does_category_match</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            lgl_template_does_category_match    (const <link linkend="lglTemplate">lglTemplate</link> *template,
-                                                         const <link linkend="gchar">gchar</link> *category_id);</programlisting>
-<para>
-This function tests if the given template belongs to the given category ID.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>template</parameter>&#160;:</term>
-<listitem><simpara>     Pointer to template structure to test
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>category_id</parameter>&#160;:</term>
-<listitem><simpara>  Category ID string
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>  TRUE if the template matches the given category ID.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-alias-new" role="function">
-<title>lgl_template_alias_new ()</title>
-<indexterm zone="lgl-template-alias-new"><primary sortas="lgl_template_alias_new">lgl_template_alias_new</primary></indexterm><programlisting><link linkend="lglTemplateAlias">lglTemplateAlias</link> *  lgl_template_alias_new              (const <link linkend="gchar">gchar</link> *brand,
-                                                         const <link linkend="gchar">gchar</link> *part);</programlisting>
-<para>
-Create a new template alias structure, with the given brand and part number.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>brand</parameter>&#160;:</term>
-<listitem><simpara>        Alias brand
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>part</parameter>&#160;:</term>
-<listitem><simpara>         Alias part name/number
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> pointer to a newly allocated <link linkend="lglTemplateAlias"><type>lglTemplateAlias</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-alias-dup" role="function">
-<title>lgl_template_alias_dup ()</title>
-<indexterm zone="lgl-template-alias-dup"><primary sortas="lgl_template_alias_dup">lgl_template_alias_dup</primary></indexterm><programlisting><link linkend="lglTemplateAlias">lglTemplateAlias</link> *  lgl_template_alias_dup              (const <link linkend="lglTemplateAlias">lglTemplateAlias</link> *orig_alias);</programlisting>
-<para>
-This function duplicates a template alias structure.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>orig_alias</parameter>&#160;:</term>
-<listitem><simpara> Alias to duplicate.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>  a newly allocated <link linkend="lglTemplateAlias"><type>lglTemplateAlias</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-alias-free" role="function">
-<title>lgl_template_alias_free ()</title>
-<indexterm zone="lgl-template-alias-free"><primary sortas="lgl_template_alias_free">lgl_template_alias_free</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_template_alias_free             (<link linkend="lglTemplateAlias">lglTemplateAlias</link> *alias);</programlisting>
-<para>
-This function frees all memory associated with given template alias structure.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>alias</parameter>&#160;:</term>
-<listitem><simpara> Alias to free.
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-frame-rect-new" role="function">
-<title>lgl_template_frame_rect_new ()</title>
-<indexterm zone="lgl-template-frame-rect-new"><primary sortas="lgl_template_frame_rect_new">lgl_template_frame_rect_new</primary></indexterm><programlisting><link linkend="lglTemplateFrame">lglTemplateFrame</link> *  lgl_template_frame_rect_new         (const <link linkend="gchar">gchar</link> *id,
-                                                         <link linkend="gdouble">gdouble</link> w,
-                                                         <link linkend="gdouble">gdouble</link> h,
-                                                         <link linkend="gdouble">gdouble</link> r,
-                                                         <link linkend="gdouble">gdouble</link> x_waste,
-                                                         <link linkend="gdouble">gdouble</link> y_waste);</programlisting>
-<para>
-This function creates a new template frame for a rectangular label or card.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>id</parameter>&#160;:</term>
-<listitem><simpara>      ID of frame.  (This should currently always be "0").
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>w</parameter>&#160;:</term>
-<listitem><simpara>       width of frame in points.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>h</parameter>&#160;:</term>
-<listitem><simpara>       height of frame in points.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>r</parameter>&#160;:</term>
-<listitem><simpara>       radius of rounded corners in points.  (Should be 0 for square corners.)
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>x_waste</parameter>&#160;:</term>
-<listitem><simpara> Amount of overprint to allow in the horizontal direction.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>y_waste</parameter>&#160;:</term>
-<listitem><simpara> Amount of overprint to allow in the vertical direction.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> Pointer to newly allocated <link linkend="lglTemplateFrame"><type>lglTemplateFrame</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-frame-round-new" role="function">
-<title>lgl_template_frame_round_new ()</title>
-<indexterm zone="lgl-template-frame-round-new"><primary sortas="lgl_template_frame_round_new">lgl_template_frame_round_new</primary></indexterm><programlisting><link linkend="lglTemplateFrame">lglTemplateFrame</link> *  lgl_template_frame_round_new        (const <link linkend="gchar">gchar</link> *id,
-                                                         <link linkend="gdouble">gdouble</link> r,
-                                                         <link linkend="gdouble">gdouble</link> waste);</programlisting>
-<para>
-This function creates a new template frame for a round label.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>id</parameter>&#160;:</term>
-<listitem><simpara>      ID of frame.  (This should currently always be "0").
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>r</parameter>&#160;:</term>
-<listitem><simpara>       radius of label in points.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>waste</parameter>&#160;:</term>
-<listitem><simpara>   Amount of overprint to allow.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> Pointer to newly allocated <link linkend="lglTemplateFrame"><type>lglTemplateFrame</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-frame-cd-new" role="function">
-<title>lgl_template_frame_cd_new ()</title>
-<indexterm zone="lgl-template-frame-cd-new"><primary sortas="lgl_template_frame_cd_new">lgl_template_frame_cd_new</primary></indexterm><programlisting><link linkend="lglTemplateFrame">lglTemplateFrame</link> *  lgl_template_frame_cd_new           (const <link linkend="gchar">gchar</link> *id,
-                                                         <link linkend="gdouble">gdouble</link> r1,
-                                                         <link linkend="gdouble">gdouble</link> r2,
-                                                         <link linkend="gdouble">gdouble</link> w,
-                                                         <link linkend="gdouble">gdouble</link> h,
-                                                         <link linkend="gdouble">gdouble</link> waste);</programlisting>
-<para>
-This function creates a new template frame for a CD/DVD label.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>id</parameter>&#160;:</term>
-<listitem><simpara>      ID of frame.  (This should currently always be "0").
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>r1</parameter>&#160;:</term>
-<listitem><simpara>      outer radius of label in points.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>r2</parameter>&#160;:</term>
-<listitem><simpara>      radius of center hole in points.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>w</parameter>&#160;:</term>
-<listitem><simpara>       clip width of frame in points for business card CDs.  Should be 0 for no clipping.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>h</parameter>&#160;:</term>
-<listitem><simpara>       clip height of frame in points for business card CDs.  Should be 0 for no clipping.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>waste</parameter>&#160;:</term>
-<listitem><simpara>   Amount of overprint to allow.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> Pointer to newly allocated <link linkend="lglTemplateFrame"><type>lglTemplateFrame</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-frame-dup" role="function">
-<title>lgl_template_frame_dup ()</title>
-<indexterm zone="lgl-template-frame-dup"><primary sortas="lgl_template_frame_dup">lgl_template_frame_dup</primary></indexterm><programlisting><link linkend="lglTemplateFrame">lglTemplateFrame</link> *  lgl_template_frame_dup              (const <link linkend="lglTemplateFrame">lglTemplateFrame</link> *orig_frame);</programlisting>
-<para>
-This function duplicates a template frame structure.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>orig_frame</parameter>&#160;:</term>
-<listitem><simpara> Frame to duplicate.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>  a newly allocated <link linkend="lglTemplateFrame"><type>lglTemplateFrame</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-frame-free" role="function">
-<title>lgl_template_frame_free ()</title>
-<indexterm zone="lgl-template-frame-free"><primary sortas="lgl_template_frame_free">lgl_template_frame_free</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_template_frame_free             (<link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame);</programlisting>
-<para>
-This function frees all memory associated with given template frame structure.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>frame</parameter>&#160;:</term>
-<listitem><simpara> Frame to free.
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-frame-add-layout" role="function">
-<title>lgl_template_frame_add_layout ()</title>
-<indexterm zone="lgl-template-frame-add-layout"><primary sortas="lgl_template_frame_add_layout">lgl_template_frame_add_layout</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_template_frame_add_layout       (<link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame,
-                                                         <link linkend="lglTemplateLayout">lglTemplateLayout</link> *layout);</programlisting>
-<para>
-This function adds a layout structure to the given template frame.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>frame</parameter>&#160;:</term>
-<listitem><simpara>  Pointer to template frame to add layout to.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>layout</parameter>&#160;:</term>
-<listitem><simpara> Pointer to layout structure to add to frame.
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-frame-add-markup" role="function">
-<title>lgl_template_frame_add_markup ()</title>
-<indexterm zone="lgl-template-frame-add-markup"><primary sortas="lgl_template_frame_add_markup">lgl_template_frame_add_markup</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_template_frame_add_markup       (<link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame,
-                                                         <link linkend="lglTemplateMarkup">lglTemplateMarkup</link> *markup);</programlisting>
-<para>
-This function adds a markup structure to the given template frame.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>frame</parameter>&#160;:</term>
-<listitem><simpara>  Pointer to template frame to add markup to.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>markup</parameter>&#160;:</term>
-<listitem><simpara> Pointer to markup structure to add to frame.
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-frame-get-size" role="function">
-<title>lgl_template_frame_get_size ()</title>
-<indexterm zone="lgl-template-frame-get-size"><primary sortas="lgl_template_frame_get_size">lgl_template_frame_get_size</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_template_frame_get_size         (const <link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame,
-                                                         <link linkend="gdouble">gdouble</link> *w,
-                                                         <link linkend="gdouble">gdouble</link> *h);</programlisting>
-<para>
-Get size (width and height) of given <link linkend="lglTemplateFrame"><type>lglTemplateFrame</type></link> in points.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>frame</parameter>&#160;:</term>
-<listitem><simpara> <link linkend="lglTemplateFrame"><type>lglTemplateFrame</type></link> structure to query
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>w</parameter>&#160;:</term>
-<listitem><simpara> pointer to location to receive width of frame
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>h</parameter>&#160;:</term>
-<listitem><simpara> pointer to location to receive height of frame
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-frame-get-n-labels" role="function">
-<title>lgl_template_frame_get_n_labels ()</title>
-<indexterm zone="lgl-template-frame-get-n-labels"><primary sortas="lgl_template_frame_get_n_labels">lgl_template_frame_get_n_labels</primary></indexterm><programlisting><link linkend="gint">gint</link>                lgl_template_frame_get_n_labels     (const <link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame);</programlisting>
-<para>
-Get total number of labels per sheet corresponding to the given frame.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>frame</parameter>&#160;:</term>
-<listitem><simpara> <link linkend="lglTemplateFrame"><type>lglTemplateFrame</type></link> structure to query
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> number of labels per sheet.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-frame-get-origins" role="function">
-<title>lgl_template_frame_get_origins ()</title>
-<indexterm zone="lgl-template-frame-get-origins"><primary sortas="lgl_template_frame_get_origins">lgl_template_frame_get_origins</primary></indexterm><programlisting><link linkend="lglTemplateOrigin">lglTemplateOrigin</link> * lgl_template_frame_get_origins      (const <link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame);</programlisting>
-<para>
-Get an array of label origins for the given frame.  These origins represent the
-upper left hand corner of each label on a page corresponding to the given frame.
-The origins will be ordered geometrically left to right and then top to bottom.
-The array should be freed using <link linkend="g-free"><function>g_free()</function></link>.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>frame</parameter>&#160;:</term>
-<listitem><simpara> <link linkend="lglTemplateFrame"><type>lglTemplateFrame</type></link> structure to query
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> A newly allocated array of <link linkend="lglTemplateOrigin"><type>lglTemplateOrigin</type></link> structures.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-layout-new" role="function">
-<title>lgl_template_layout_new ()</title>
-<indexterm zone="lgl-template-layout-new"><primary sortas="lgl_template_layout_new">lgl_template_layout_new</primary></indexterm><programlisting><link linkend="lglTemplateLayout">lglTemplateLayout</link> * lgl_template_layout_new             (<link linkend="gint">gint</link> nx,
-                                                         <link linkend="gint">gint</link> ny,
-                                                         <link linkend="gdouble">gdouble</link> x0,
-                                                         <link linkend="gdouble">gdouble</link> y0,
-                                                         <link linkend="gdouble">gdouble</link> dx,
-                                                         <link linkend="gdouble">gdouble</link> dy);</programlisting>
-<para>
-This function creates a new layout structure with the given parameters.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>nx</parameter>&#160;:</term>
-<listitem><simpara>  Number of labels across.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>ny</parameter>&#160;:</term>
-<listitem><simpara>  Number of labels down.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>x0</parameter>&#160;:</term>
-<listitem><simpara>  X coordinate of the top-left corner of the top-left label in the layout in points.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>y0</parameter>&#160;:</term>
-<listitem><simpara>  Y coordinate of the top-left corner of the top-left label in the layout in points.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>dx</parameter>&#160;:</term>
-<listitem><simpara>  Horizontal pitch in points.  This is the distance from left-edge to left-edge.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>dy</parameter>&#160;:</term>
-<listitem><simpara>  Vertical pitch in points.  This is the distance from top-edge to top-edge.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a newly allocated <link linkend="lglTemplateLayout"><type>lglTemplateLayout</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-layout-dup" role="function">
-<title>lgl_template_layout_dup ()</title>
-<indexterm zone="lgl-template-layout-dup"><primary sortas="lgl_template_layout_dup">lgl_template_layout_dup</primary></indexterm><programlisting><link linkend="lglTemplateLayout">lglTemplateLayout</link> * lgl_template_layout_dup             (const <link linkend="lglTemplateLayout">lglTemplateLayout</link> *orig_layout);</programlisting>
-<para>
-This function duplicates a template layout structure.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>orig_layout</parameter>&#160;:</term>
-<listitem><simpara> Layout to duplicate.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>  a newly allocated <link linkend="lglTemplateLayout"><type>lglTemplateLayout</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-layout-free" role="function">
-<title>lgl_template_layout_free ()</title>
-<indexterm zone="lgl-template-layout-free"><primary sortas="lgl_template_layout_free">lgl_template_layout_free</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_template_layout_free            (<link linkend="lglTemplateLayout">lglTemplateLayout</link> *layout);</programlisting>
-<para>
-This function frees all memory associated with given template layout structure.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>layout</parameter>&#160;:</term>
-<listitem><simpara> Layout to free.
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-markup-margin-new" role="function">
-<title>lgl_template_markup_margin_new ()</title>
-<indexterm zone="lgl-template-markup-margin-new"><primary sortas="lgl_template_markup_margin_new">lgl_template_markup_margin_new</primary></indexterm><programlisting><link linkend="lglTemplateMarkup">lglTemplateMarkup</link> * lgl_template_markup_margin_new      (<link linkend="gdouble">gdouble</link> size);</programlisting>
-<para>
-This function creates a new margin markup structure.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>size</parameter>&#160;:</term>
-<listitem><simpara> margin size in points.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a newly allocated <link linkend="lglTemplateMarkup"><type>lglTemplateMarkup</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-markup-line-new" role="function">
-<title>lgl_template_markup_line_new ()</title>
-<indexterm zone="lgl-template-markup-line-new"><primary sortas="lgl_template_markup_line_new">lgl_template_markup_line_new</primary></indexterm><programlisting><link linkend="lglTemplateMarkup">lglTemplateMarkup</link> * lgl_template_markup_line_new        (<link linkend="gdouble">gdouble</link> x1,
-                                                         <link linkend="gdouble">gdouble</link> y1,
-                                                         <link linkend="gdouble">gdouble</link> x2,
-                                                         <link linkend="gdouble">gdouble</link> y2);</programlisting>
-<para>
-This function creates a new line markup structure.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>x1</parameter>&#160;:</term>
-<listitem><simpara> x coordinate of first endpoint.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>y1</parameter>&#160;:</term>
-<listitem><simpara> y coordinate of first endpoint.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>x2</parameter>&#160;:</term>
-<listitem><simpara> x coordinate of second endpoint.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>y2</parameter>&#160;:</term>
-<listitem><simpara> y coordinate of second endpoint.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a newly allocated <link linkend="lglTemplateMarkup"><type>lglTemplateMarkup</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-markup-circle-new" role="function">
-<title>lgl_template_markup_circle_new ()</title>
-<indexterm zone="lgl-template-markup-circle-new"><primary sortas="lgl_template_markup_circle_new">lgl_template_markup_circle_new</primary></indexterm><programlisting><link linkend="lglTemplateMarkup">lglTemplateMarkup</link> * lgl_template_markup_circle_new      (<link linkend="gdouble">gdouble</link> x0,
-                                                         <link linkend="gdouble">gdouble</link> y0,
-                                                         <link linkend="gdouble">gdouble</link> r);</programlisting>
-<para>
-This function creates a new circle markup structure.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>x0</parameter>&#160;:</term>
-<listitem><simpara> x coordinate of center of circle.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>y0</parameter>&#160;:</term>
-<listitem><simpara> y coordinate of center of circle.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>r</parameter>&#160;:</term>
-<listitem><simpara>  radius of circle.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a newly allocated <link linkend="lglTemplateMarkup"><type>lglTemplateMarkup</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-markup-rect-new" role="function">
-<title>lgl_template_markup_rect_new ()</title>
-<indexterm zone="lgl-template-markup-rect-new"><primary sortas="lgl_template_markup_rect_new">lgl_template_markup_rect_new</primary></indexterm><programlisting><link linkend="lglTemplateMarkup">lglTemplateMarkup</link> * lgl_template_markup_rect_new        (<link linkend="gdouble">gdouble</link> x1,
-                                                         <link linkend="gdouble">gdouble</link> y1,
-                                                         <link linkend="gdouble">gdouble</link> w,
-                                                         <link linkend="gdouble">gdouble</link> h,
-                                                         <link linkend="gdouble">gdouble</link> r);</programlisting>
-<para>
-This function creates a new rectangle markup structure.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>x1</parameter>&#160;:</term>
-<listitem><simpara> x coordinate of top-left corner of rectangle.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>y1</parameter>&#160;:</term>
-<listitem><simpara> y coordinate of top-left corner of rectangle.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>w</parameter>&#160;:</term>
-<listitem><simpara>  width of rectangle.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>h</parameter>&#160;:</term>
-<listitem><simpara>  height of rectangle.
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>r</parameter>&#160;:</term>
-<listitem><simpara>  radius of rounded corner.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a newly allocated <link linkend="lglTemplateMarkup"><type>lglTemplateMarkup</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-markup-dup" role="function">
-<title>lgl_template_markup_dup ()</title>
-<indexterm zone="lgl-template-markup-dup"><primary sortas="lgl_template_markup_dup">lgl_template_markup_dup</primary></indexterm><programlisting><link linkend="lglTemplateMarkup">lglTemplateMarkup</link> * lgl_template_markup_dup             (const <link linkend="lglTemplateMarkup">lglTemplateMarkup</link> *orig_markup);</programlisting>
-<para>
-This function duplicates a template markup structure.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>orig_markup</parameter>&#160;:</term>
-<listitem><simpara> Markup to duplicate.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>  a newly allocated <link linkend="lglTemplateMarkup"><type>lglTemplateMarkup</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-template-markup-free" role="function">
-<title>lgl_template_markup_free ()</title>
-<indexterm zone="lgl-template-markup-free"><primary sortas="lgl_template_markup_free">lgl_template_markup_free</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_template_markup_free            (<link linkend="lglTemplateMarkup">lglTemplateMarkup</link> *markup);</programlisting>
-<para>
-This function frees all memory associated with given template markup structure.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>markup</parameter>&#160;:</term>
-<listitem><simpara> Markup to free.
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-
-</refsect1>
-
-
-
-
-</refentry>
diff --git a/docs/libglabels/xml/xml-category.xml b/docs/libglabels/xml/xml-category.xml
deleted file mode 100644 (file)
index d5a8d8e..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
-               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
-
-<refentry id="libglabels-xml-category">
-<refmeta>
-<refentrytitle role="top_of_page" id="libglabels-xml-category.top_of_page">XML Category Functions</refentrytitle>
-<manvolnum>3</manvolnum>
-<refmiscinfo>LIBGLABELS Library</refmiscinfo>
-</refmeta>
-
-<refnamediv>
-<refname>XML Category Functions</refname>
-<refpurpose>Functions to parse glabels XML category definition files</refpurpose>
-</refnamediv>
-
-<refsynopsisdiv id="libglabels-xml-category.synopsis" role="synopsis">
-<title role="synopsis.title">Synopsis</title>
-
-<synopsis>
-
-#include &lt;libglabels/xml-category.h&gt;
-
-<link linkend="GList">GList</link> *             <link linkend="lgl-xml-category-read-categories-from-file">lgl_xml_category_read_categories_from_file</link>
-                                                        (<link linkend="gchar">gchar</link> *utf8_filename);
-<link linkend="GList">GList</link> *             <link linkend="lgl-xml-category-parse-categories-doc">lgl_xml_category_parse_categories_doc</link>
-                                                        (<link linkend="xmlDocPtr">xmlDocPtr</link> categories_doc);
-<link linkend="lglCategory">lglCategory</link> *       <link linkend="lgl-xml-category-parse-category-node">lgl_xml_category_parse_category_node</link>
-                                                        (<link linkend="xmlNodePtr">xmlNodePtr</link> category_node);
-</synopsis>
-</refsynopsisdiv>
-
-
-
-
-
-
-
-
-
-<refsect1 id="libglabels-xml-category.description" role="desc">
-<title role="desc.title">Description</title>
-<para>
-This section describes a number of functions for parsing glabels
-XML category definition files.
-</para>
-</refsect1>
-
-<refsect1 id="libglabels-xml-category.details" role="details">
-<title role="details.title">Details</title>
-<refsect2 id="lgl-xml-category-read-categories-from-file" role="function">
-<title>lgl_xml_category_read_categories_from_file ()</title>
-<indexterm zone="lgl-xml-category-read-categories-from-file"><primary sortas="lgl_xml_category_read_categories_from_file">lgl_xml_category_read_categories_from_file</primary></indexterm><programlisting><link linkend="GList">GList</link> *             lgl_xml_category_read_categories_from_file
-                                                        (<link linkend="gchar">gchar</link> *utf8_filename);</programlisting>
-<para>
-Read category definitions from a file.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>utf8_filename</parameter>&#160;:</term>
-<listitem><simpara>       Filename of categories file (name encoded as UTF-8)
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a list of <link linkend="lglCategory"><type>lglCategory</type></link> structures.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-xml-category-parse-categories-doc" role="function">
-<title>lgl_xml_category_parse_categories_doc ()</title>
-<indexterm zone="lgl-xml-category-parse-categories-doc"><primary sortas="lgl_xml_category_parse_categories_doc">lgl_xml_category_parse_categories_doc</primary></indexterm><programlisting><link linkend="GList">GList</link> *             lgl_xml_category_parse_categories_doc
-                                                        (<link linkend="xmlDocPtr">xmlDocPtr</link> categories_doc);</programlisting>
-<para>
-Read category definitions from a libxml <link linkend="xmlDocPtr"><type>xmlDocPtr</type></link> tree.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>categories_doc</parameter>&#160;:</term>
-<listitem><simpara>  libxml <link linkend="xmlDocPtr"><type>xmlDocPtr</type></link> tree, representing a categories
-definition file.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a list of <link linkend="lglCategory"><type>lglCategory</type></link> structures.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-xml-category-parse-category-node" role="function">
-<title>lgl_xml_category_parse_category_node ()</title>
-<indexterm zone="lgl-xml-category-parse-category-node"><primary sortas="lgl_xml_category_parse_category_node">lgl_xml_category_parse_category_node</primary></indexterm><programlisting><link linkend="lglCategory">lglCategory</link> *       lgl_xml_category_parse_category_node
-                                                        (<link linkend="xmlNodePtr">xmlNodePtr</link> category_node);</programlisting>
-<para>
-Read a single category definition from a libxml <link linkend="xmlNodePtr"><type>xmlNodePtr</type></link> node.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>category_node</parameter>&#160;:</term>
-<listitem><simpara>  libxml <link linkend="xmlNodePtr"><type>xmlNodePtr</type></link> category node from a <link linkend="xmlDocPtr"><type>xmlDocPtr</type></link> tree.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a pointer to a newly created <link linkend="lglCategory"><type>lglCategory</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-
-</refsect1>
-
-
-
-
-</refentry>
diff --git a/docs/libglabels/xml/xml-paper.xml b/docs/libglabels/xml/xml-paper.xml
deleted file mode 100644 (file)
index 8097f4a..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
-               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
-
-<refentry id="libglabels-xml-paper">
-<refmeta>
-<refentrytitle role="top_of_page" id="libglabels-xml-paper.top_of_page">XML Paper Functions</refentrytitle>
-<manvolnum>3</manvolnum>
-<refmiscinfo>LIBGLABELS Library</refmiscinfo>
-</refmeta>
-
-<refnamediv>
-<refname>XML Paper Functions</refname>
-<refpurpose>Functions to parse glabels XML paper definition files</refpurpose>
-</refnamediv>
-
-<refsynopsisdiv id="libglabels-xml-paper.synopsis" role="synopsis">
-<title role="synopsis.title">Synopsis</title>
-
-<synopsis>
-
-#include &lt;libglabels/xml-paper.h&gt;
-
-<link linkend="GList">GList</link> *             <link linkend="lgl-xml-paper-read-papers-from-file">lgl_xml_paper_read_papers_from_file</link> (<link linkend="gchar">gchar</link> *utf8_filename);
-<link linkend="GList">GList</link> *             <link linkend="lgl-xml-paper-parse-papers-doc">lgl_xml_paper_parse_papers_doc</link>      (<link linkend="xmlDocPtr">xmlDocPtr</link> papers_doc);
-<link linkend="lglPaper">lglPaper</link> *          <link linkend="lgl-xml-paper-parse-paper-node">lgl_xml_paper_parse_paper_node</link>      (<link linkend="xmlNodePtr">xmlNodePtr</link> paper_node);
-</synopsis>
-</refsynopsisdiv>
-
-
-
-
-
-
-
-
-
-<refsect1 id="libglabels-xml-paper.description" role="desc">
-<title role="desc.title">Description</title>
-<para>
-This section describes a number of functions for parsing glabels
-XML paper definition files.
-</para>
-</refsect1>
-
-<refsect1 id="libglabels-xml-paper.details" role="details">
-<title role="details.title">Details</title>
-<refsect2 id="lgl-xml-paper-read-papers-from-file" role="function">
-<title>lgl_xml_paper_read_papers_from_file ()</title>
-<indexterm zone="lgl-xml-paper-read-papers-from-file"><primary sortas="lgl_xml_paper_read_papers_from_file">lgl_xml_paper_read_papers_from_file</primary></indexterm><programlisting><link linkend="GList">GList</link> *             lgl_xml_paper_read_papers_from_file (<link linkend="gchar">gchar</link> *utf8_filename);</programlisting>
-<para>
-Read paper definitions from a file.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>utf8_filename</parameter>&#160;:</term>
-<listitem><simpara>       Filename of papers file (name encoded as UTF-8)
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a list of <link linkend="lglPaper"><type>lglPaper</type></link> structures.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-xml-paper-parse-papers-doc" role="function">
-<title>lgl_xml_paper_parse_papers_doc ()</title>
-<indexterm zone="lgl-xml-paper-parse-papers-doc"><primary sortas="lgl_xml_paper_parse_papers_doc">lgl_xml_paper_parse_papers_doc</primary></indexterm><programlisting><link linkend="GList">GList</link> *             lgl_xml_paper_parse_papers_doc      (<link linkend="xmlDocPtr">xmlDocPtr</link> papers_doc);</programlisting>
-<para>
-Read paper definitions from a libxml <link linkend="xmlDocPtr"><type>xmlDocPtr</type></link> tree.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>papers_doc</parameter>&#160;:</term>
-<listitem><simpara>  libxml <link linkend="xmlDocPtr"><type>xmlDocPtr</type></link> tree, representing a papers definition file.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a list of <link linkend="lglPaper"><type>lglPaper</type></link> structures.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-xml-paper-parse-paper-node" role="function">
-<title>lgl_xml_paper_parse_paper_node ()</title>
-<indexterm zone="lgl-xml-paper-parse-paper-node"><primary sortas="lgl_xml_paper_parse_paper_node">lgl_xml_paper_parse_paper_node</primary></indexterm><programlisting><link linkend="lglPaper">lglPaper</link> *          lgl_xml_paper_parse_paper_node      (<link linkend="xmlNodePtr">xmlNodePtr</link> paper_node);</programlisting>
-<para>
-Read a single paper definition from a libxml <link linkend="xmlNodePtr"><type>xmlNodePtr</type></link> node.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>paper_node</parameter>&#160;:</term>
-<listitem><simpara>  libxml <link linkend="xmlNodePtr"><type>xmlNodePtr</type></link> paper node from a <link linkend="xmlDocPtr"><type>xmlDocPtr</type></link> tree.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a pointer to a newly created <link linkend="lglPaper"><type>lglPaper</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-
-</refsect1>
-
-
-
-
-</refentry>
diff --git a/docs/libglabels/xml/xml-template.xml b/docs/libglabels/xml/xml-template.xml
deleted file mode 100644 (file)
index b8e88e3..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
-               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
-
-<refentry id="libglabels-xml-template">
-<refmeta>
-<refentrytitle role="top_of_page" id="libglabels-xml-template.top_of_page">XML Template Functions</refentrytitle>
-<manvolnum>3</manvolnum>
-<refmiscinfo>LIBGLABELS Library</refmiscinfo>
-</refmeta>
-
-<refnamediv>
-<refname>XML Template Functions</refname>
-<refpurpose>Functions to create and parse glabels XML template nodes and files</refpurpose>
-</refnamediv>
-
-<refsynopsisdiv id="libglabels-xml-template.synopsis" role="synopsis">
-<title role="synopsis.title">Synopsis</title>
-
-<synopsis>
-
-#include &lt;libglabels/xml-templates.h&gt;
-
-<link linkend="GList">GList</link> *             <link linkend="lgl-xml-template-read-templates-from-file">lgl_xml_template_read_templates_from_file</link>
-                                                        (const <link linkend="gchar">gchar</link> *utf8_filename);
-<link linkend="GList">GList</link> *             <link linkend="lgl-xml-template-parse-templates-doc">lgl_xml_template_parse_templates_doc</link>
-                                                        (const <link linkend="xmlDocPtr">xmlDocPtr</link> templates_doc);
-<link linkend="lglTemplate">lglTemplate</link> *       <link linkend="lgl-xml-template-parse-template-node">lgl_xml_template_parse_template_node</link>
-                                                        (const <link linkend="xmlNodePtr">xmlNodePtr</link> template_node);
-<link linkend="gint">gint</link>                <link linkend="lgl-xml-template-write-templates-to-file">lgl_xml_template_write_templates_to_file</link>
-                                                        (<link linkend="GList">GList</link> *templates,
-                                                         const <link linkend="gchar">gchar</link> *utf8_filename);
-<link linkend="gint">gint</link>                <link linkend="lgl-xml-template-write-template-to-file">lgl_xml_template_write_template_to_file</link>
-                                                        (const <link linkend="lglTemplate">lglTemplate</link> *template,
-                                                         const <link linkend="gchar">gchar</link> *utf8_filename);
-<link linkend="void">void</link>                <link linkend="lgl-xml-template-create-template-node">lgl_xml_template_create_template_node</link>
-                                                        (const <link linkend="lglTemplate">lglTemplate</link> *template,
-                                                         <link linkend="xmlNodePtr">xmlNodePtr</link> root,
-                                                         const <link linkend="xmlNsPtr">xmlNsPtr</link> ns);
-</synopsis>
-</refsynopsisdiv>
-
-
-
-
-
-
-
-
-
-<refsect1 id="libglabels-xml-template.description" role="desc">
-<title role="desc.title">Description</title>
-<para>
-This section describes a number of functions for creating and parsing
-glabels XML template nodes and files.  Template nodes are used in both
-template files and document files.
-</para>
-</refsect1>
-
-<refsect1 id="libglabels-xml-template.details" role="details">
-<title role="details.title">Details</title>
-<refsect2 id="lgl-xml-template-read-templates-from-file" role="function">
-<title>lgl_xml_template_read_templates_from_file ()</title>
-<indexterm zone="lgl-xml-template-read-templates-from-file"><primary sortas="lgl_xml_template_read_templates_from_file">lgl_xml_template_read_templates_from_file</primary></indexterm><programlisting><link linkend="GList">GList</link> *             lgl_xml_template_read_templates_from_file
-                                                        (const <link linkend="gchar">gchar</link> *utf8_filename);</programlisting>
-<para>
-Read glabels templates from template file.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>utf8_filename</parameter>&#160;:</term>
-<listitem><simpara>       Filename of papers file (name encoded as UTF-8)
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a list of <link linkend="lglTemplate"><type>lglTemplate</type></link> structures.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-xml-template-parse-templates-doc" role="function">
-<title>lgl_xml_template_parse_templates_doc ()</title>
-<indexterm zone="lgl-xml-template-parse-templates-doc"><primary sortas="lgl_xml_template_parse_templates_doc">lgl_xml_template_parse_templates_doc</primary></indexterm><programlisting><link linkend="GList">GList</link> *             lgl_xml_template_parse_templates_doc
-                                                        (const <link linkend="xmlDocPtr">xmlDocPtr</link> templates_doc);</programlisting>
-<para>
-Read glabels templates from a libxml <link linkend="xmlDocPtr"><type>xmlDocPtr</type></link> tree.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>templates_doc</parameter>&#160;:</term>
-<listitem><simpara>  libxml <link linkend="xmlDocPtr"><type>xmlDocPtr</type></link> tree, representing template file.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a list of <link linkend="lglTemplate"><type>lglTemplate</type></link> structures.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-xml-template-parse-template-node" role="function">
-<title>lgl_xml_template_parse_template_node ()</title>
-<indexterm zone="lgl-xml-template-parse-template-node"><primary sortas="lgl_xml_template_parse_template_node">lgl_xml_template_parse_template_node</primary></indexterm><programlisting><link linkend="lglTemplate">lglTemplate</link> *       lgl_xml_template_parse_template_node
-                                                        (const <link linkend="xmlNodePtr">xmlNodePtr</link> template_node);</programlisting>
-<para>
-Read a single glabels template from a libxml <link linkend="xmlNodePtr"><type>xmlNodePtr</type></link> node.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>template_node</parameter>&#160;:</term>
-<listitem><simpara>  libxml <link linkend="xmlNodePtr"><type>xmlNodePtr</type></link> template node from a <link linkend="xmlDocPtr"><type>xmlDocPtr</type></link> tree.
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a pointer to a newly created <link linkend="lglTemplate"><type>lglTemplate</type></link> structure.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-xml-template-write-templates-to-file" role="function">
-<title>lgl_xml_template_write_templates_to_file ()</title>
-<indexterm zone="lgl-xml-template-write-templates-to-file"><primary sortas="lgl_xml_template_write_templates_to_file">lgl_xml_template_write_templates_to_file</primary></indexterm><programlisting><link linkend="gint">gint</link>                lgl_xml_template_write_templates_to_file
-                                                        (<link linkend="GList">GList</link> *templates,
-                                                         const <link linkend="gchar">gchar</link> *utf8_filename);</programlisting>
-<para>
-Write a list of <link linkend="lglTemplate"><type>lglTemplate</type></link> structures to a glabels XML template file.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>templates</parameter>&#160;:</term>
-<listitem><simpara>      List of <link linkend="lglTemplate"><type>lglTemplate</type></link> structures
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>utf8_filename</parameter>&#160;:</term>
-<listitem><simpara>  Filename of templates file (name encoded as UTF-8)
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the number of bytes written or -1 in case of failure
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-xml-template-write-template-to-file" role="function">
-<title>lgl_xml_template_write_template_to_file ()</title>
-<indexterm zone="lgl-xml-template-write-template-to-file"><primary sortas="lgl_xml_template_write_template_to_file">lgl_xml_template_write_template_to_file</primary></indexterm><programlisting><link linkend="gint">gint</link>                lgl_xml_template_write_template_to_file
-                                                        (const <link linkend="lglTemplate">lglTemplate</link> *template,
-                                                         const <link linkend="gchar">gchar</link> *utf8_filename);</programlisting>
-<para>
-Write a single <link linkend="lglTemplate"><type>lglTemplate</type></link> structures to a glabels XML template file.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>template</parameter>&#160;:</term>
-<listitem><simpara>       <link linkend="lglTemplate"><type>lglTemplate</type></link> structure to be written
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>utf8_filename</parameter>&#160;:</term>
-<listitem><simpara>  Filename of templates file (name encoded as UTF-8)
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the number of bytes written or -1 in case of failure
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-xml-template-create-template-node" role="function">
-<title>lgl_xml_template_create_template_node ()</title>
-<indexterm zone="lgl-xml-template-create-template-node"><primary sortas="lgl_xml_template_create_template_node">lgl_xml_template_create_template_node</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_xml_template_create_template_node
-                                                        (const <link linkend="lglTemplate">lglTemplate</link> *template,
-                                                         <link linkend="xmlNodePtr">xmlNodePtr</link> root,
-                                                         const <link linkend="xmlNsPtr">xmlNsPtr</link> ns);</programlisting>
-<para>
-Add a single <link linkend="lglTemplate"><type>lglTemplate</type></link> child node to given <link linkend="xmlNodePtr"><type>xmlNodePtr</type></link>.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>template</parameter>&#160;:</term>
-<listitem><simpara>       <link linkend="lglTemplate"><type>lglTemplate</type></link> structure to be written
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>root</parameter>&#160;:</term>
-<listitem><simpara>           parent node to receive new child node
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>ns</parameter>&#160;:</term>
-<listitem><simpara>             a libxml <link linkend="xmlNsPtr"><type>xmlNsPtr</type></link>
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-
-</refsect1>
-
-
-
-
-</refentry>
diff --git a/docs/libglabels/xml/xml.xml b/docs/libglabels/xml/xml.xml
deleted file mode 100644 (file)
index ad1919a..0000000
+++ /dev/null
@@ -1,430 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
-               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
-
-<refentry id="libglabels-xml">
-<refmeta>
-<refentrytitle role="top_of_page" id="libglabels-xml.top_of_page">XML Helper Functions</refentrytitle>
-<manvolnum>3</manvolnum>
-<refmiscinfo>LIBGLABELS Library</refmiscinfo>
-</refmeta>
-
-<refnamediv>
-<refname>XML Helper Functions</refname>
-<refpurpose>Functions to help format and parse glabels XML properties</refpurpose>
-</refnamediv>
-
-<refsynopsisdiv id="libglabels-xml.synopsis" role="synopsis">
-<title role="synopsis.title">Synopsis</title>
-
-<synopsis>
-
-#include &lt;libglabels/xml.h&gt;
-
-#define             <link linkend="LGL-XML-NAME-SPACE--CAPS">LGL_XML_NAME_SPACE</link>
-
-<link linkend="gchar">gchar</link> *             <link linkend="lgl-xml-get-prop-string">lgl_xml_get_prop_string</link>             (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         const <link linkend="gchar">gchar</link> *default_val);
-<link linkend="gchar">gchar</link> *             <link linkend="lgl-xml-get-prop-i18n-string">lgl_xml_get_prop_i18n_string</link>        (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         const <link linkend="gchar">gchar</link> *default_val);
-<link linkend="gdouble">gdouble</link>             <link linkend="lgl-xml-get-prop-double">lgl_xml_get_prop_double</link>             (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         <link linkend="gdouble">gdouble</link> default_val);
-<link linkend="gboolean">gboolean</link>            <link linkend="lgl-xml-get-prop-boolean">lgl_xml_get_prop_boolean</link>            (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         <link linkend="gboolean">gboolean</link> default_val);
-<link linkend="gint">gint</link>                <link linkend="lgl-xml-get-prop-int">lgl_xml_get_prop_int</link>                (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         <link linkend="gint">gint</link> default_val);
-<link linkend="guint">guint</link>               <link linkend="lgl-xml-get-prop-uint">lgl_xml_get_prop_uint</link>               (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         <link linkend="guint">guint</link> default_val);
-<link linkend="gdouble">gdouble</link>             <link linkend="lgl-xml-get-prop-length">lgl_xml_get_prop_length</link>             (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         <link linkend="gdouble">gdouble</link> default_val);
-
-<link linkend="void">void</link>                <link linkend="lgl-xml-set-prop-string">lgl_xml_set_prop_string</link>             (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         const <link linkend="gchar">gchar</link> *val);
-<link linkend="void">void</link>                <link linkend="lgl-xml-set-prop-double">lgl_xml_set_prop_double</link>             (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         <link linkend="gdouble">gdouble</link> val);
-<link linkend="void">void</link>                <link linkend="lgl-xml-set-prop-boolean">lgl_xml_set_prop_boolean</link>            (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         <link linkend="gboolean">gboolean</link> val);
-<link linkend="void">void</link>                <link linkend="lgl-xml-set-prop-int">lgl_xml_set_prop_int</link>                (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         <link linkend="gint">gint</link> val);
-<link linkend="void">void</link>                <link linkend="lgl-xml-set-prop-uint-hex">lgl_xml_set_prop_uint_hex</link>           (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         <link linkend="guint">guint</link> val);
-<link linkend="void">void</link>                <link linkend="lgl-xml-set-prop-length">lgl_xml_set_prop_length</link>             (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         <link linkend="gdouble">gdouble</link> val);
-
-<link linkend="gboolean">gboolean</link>            <link linkend="lgl-xml-is-node">lgl_xml_is_node</link>                     (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *name);
-<link linkend="gchar">gchar</link> *             <link linkend="lgl-xml-get-node-content">lgl_xml_get_node_content</link>            (<link linkend="xmlNodePtr">xmlNodePtr</link> node);
-
-<link linkend="void">void</link>                <link linkend="lgl-xml-set-default-units">lgl_xml_set_default_units</link>           (<link linkend="lglUnitsType">lglUnitsType</link> units);
-</synopsis>
-</refsynopsisdiv>
-
-
-
-
-
-
-
-
-
-<refsect1 id="libglabels-xml.description" role="desc">
-<title role="desc.title">Description</title>
-<para>
-This section describes a number of "helper" functions for formatting and
-parsing various types of properties for tags in glabels XML file formats.
-</para>
-<para>
-These functions are basically wrappers to functions from libxml2.
-</para>
-</refsect1>
-
-<refsect1 id="libglabels-xml.details" role="details">
-<title role="details.title">Details</title>
-<refsect2 id="LGL-XML-NAME-SPACE--CAPS" role="macro">
-<title>LGL_XML_NAME_SPACE</title>
-<indexterm zone="LGL-XML-NAME-SPACE--CAPS"><primary sortas="LGL_XML_NAME_SPACE">LGL_XML_NAME_SPACE</primary></indexterm><programlisting>#define LGL_XML_NAME_SPACE "http://snaught.com/glabels/2.2/"
-</programlisting>
-<para>
-</para></refsect2>
-<refsect2 id="lgl-xml-get-prop-string" role="function">
-<title>lgl_xml_get_prop_string ()</title>
-<indexterm zone="lgl-xml-get-prop-string"><primary sortas="lgl_xml_get_prop_string">lgl_xml_get_prop_string</primary></indexterm><programlisting><link linkend="gchar">gchar</link> *             lgl_xml_get_prop_string             (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         const <link linkend="gchar">gchar</link> *default_val);</programlisting>
-<para>
-Return value of property as a string.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>node</parameter>&#160;:</term>
-<listitem><simpara>        the libxml2 <link linkend="xmlNodePtr"><type>xmlNodePtr</type></link> of the node
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>property</parameter>&#160;:</term>
-<listitem><simpara>    the property name
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>default_val</parameter>&#160;:</term>
-<listitem><simpara> a default value to return if property not found
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the property as a pointer to a gchar string.  This string should
-         be freed with <link linkend="g-free"><function>g_free()</function></link>.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-xml-get-prop-i18n-string" role="function">
-<title>lgl_xml_get_prop_i18n_string ()</title>
-<indexterm zone="lgl-xml-get-prop-i18n-string"><primary sortas="lgl_xml_get_prop_i18n_string">lgl_xml_get_prop_i18n_string</primary></indexterm><programlisting><link linkend="gchar">gchar</link> *             lgl_xml_get_prop_i18n_string        (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         const <link linkend="gchar">gchar</link> *default_val);</programlisting>
-<para>
-Return value of a translatable property as a string.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>node</parameter>&#160;:</term>
-<listitem><simpara>        the libxml2 <link linkend="xmlNodePtr"><type>xmlNodePtr</type></link> of the node
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>property</parameter>&#160;:</term>
-<listitem><simpara>    the property name
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>default_val</parameter>&#160;:</term>
-<listitem><simpara> a default value to return if property not found
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the property as a pointer to a gchar string.  This string should
-         be freed with <link linkend="g-free"><function>g_free()</function></link>.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-xml-get-prop-double" role="function">
-<title>lgl_xml_get_prop_double ()</title>
-<indexterm zone="lgl-xml-get-prop-double"><primary sortas="lgl_xml_get_prop_double">lgl_xml_get_prop_double</primary></indexterm><programlisting><link linkend="gdouble">gdouble</link>             lgl_xml_get_prop_double             (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         <link linkend="gdouble">gdouble</link> default_val);</programlisting>
-<para>
-Return value of property as a double.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>node</parameter>&#160;:</term>
-<listitem><simpara>        the libxml2 <link linkend="xmlNodePtr"><type>xmlNodePtr</type></link> of the node
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>property</parameter>&#160;:</term>
-<listitem><simpara>    the property name
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>default_val</parameter>&#160;:</term>
-<listitem><simpara> a default value to return if property not found
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the property as a double.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-xml-get-prop-boolean" role="function">
-<title>lgl_xml_get_prop_boolean ()</title>
-<indexterm zone="lgl-xml-get-prop-boolean"><primary sortas="lgl_xml_get_prop_boolean">lgl_xml_get_prop_boolean</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            lgl_xml_get_prop_boolean            (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         <link linkend="gboolean">gboolean</link> default_val);</programlisting>
-<para>
-Return value of property as a boolean.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>node</parameter>&#160;:</term>
-<listitem><simpara>        the libxml2 <link linkend="xmlNodePtr"><type>xmlNodePtr</type></link> of the node
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>property</parameter>&#160;:</term>
-<listitem><simpara>    the property name
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>default_val</parameter>&#160;:</term>
-<listitem><simpara> a default value to return if property not found
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the property as a boolean.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-xml-get-prop-int" role="function">
-<title>lgl_xml_get_prop_int ()</title>
-<indexterm zone="lgl-xml-get-prop-int"><primary sortas="lgl_xml_get_prop_int">lgl_xml_get_prop_int</primary></indexterm><programlisting><link linkend="gint">gint</link>                lgl_xml_get_prop_int                (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         <link linkend="gint">gint</link> default_val);</programlisting>
-<para>
-Return value of property as an integer.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>node</parameter>&#160;:</term>
-<listitem><simpara>        the libxml2 <link linkend="xmlNodePtr"><type>xmlNodePtr</type></link> of the node
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>property</parameter>&#160;:</term>
-<listitem><simpara>    the property name
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>default_val</parameter>&#160;:</term>
-<listitem><simpara> a default value to return if property not found
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the property as an integer.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-xml-get-prop-uint" role="function">
-<title>lgl_xml_get_prop_uint ()</title>
-<indexterm zone="lgl-xml-get-prop-uint"><primary sortas="lgl_xml_get_prop_uint">lgl_xml_get_prop_uint</primary></indexterm><programlisting><link linkend="guint">guint</link>               lgl_xml_get_prop_uint               (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         <link linkend="guint">guint</link> default_val);</programlisting>
-<para>
-Return value of property (usually formatted in hex) as an unsigned integer.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>node</parameter>&#160;:</term>
-<listitem><simpara>        the libxml2 <link linkend="xmlNodePtr"><type>xmlNodePtr</type></link> of the node
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>property</parameter>&#160;:</term>
-<listitem><simpara>    the property name
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>default_val</parameter>&#160;:</term>
-<listitem><simpara> a default value to return if property not found
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the property as an unsigned integer.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-xml-get-prop-length" role="function">
-<title>lgl_xml_get_prop_length ()</title>
-<indexterm zone="lgl-xml-get-prop-length"><primary sortas="lgl_xml_get_prop_length">lgl_xml_get_prop_length</primary></indexterm><programlisting><link linkend="gdouble">gdouble</link>             lgl_xml_get_prop_length             (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         <link linkend="gdouble">gdouble</link> default_val);</programlisting>
-<para>
-Return value of a length property as a double, converting to internal
-units (points).  The property is expected to be formatted as a number
-followed by a units string.  If there is no units string, the length
-is assumed to be in points.  Valid units strings are "pt" for points,
-"in" for inches, "mm" for millimeters, "cm" for centimeters, and
-"pc" for picas.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>node</parameter>&#160;:</term>
-<listitem><simpara>        the libxml2 <link linkend="xmlNodePtr"><type>xmlNodePtr</type></link> of the node
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>property</parameter>&#160;:</term>
-<listitem><simpara>    the property name
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>default_val</parameter>&#160;:</term>
-<listitem><simpara> a default value to return if property not found
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the length in points.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-xml-set-prop-string" role="function">
-<title>lgl_xml_set_prop_string ()</title>
-<indexterm zone="lgl-xml-set-prop-string"><primary sortas="lgl_xml_set_prop_string">lgl_xml_set_prop_string</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_xml_set_prop_string             (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         const <link linkend="gchar">gchar</link> *val);</programlisting>
-<para>
-Set a property from a string.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>node</parameter>&#160;:</term>
-<listitem><simpara>        the libxml2 <link linkend="xmlNodePtr"><type>xmlNodePtr</type></link> of the node
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>property</parameter>&#160;:</term>
-<listitem><simpara>    the property name
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>val</parameter>&#160;:</term>
-<listitem><simpara>         the value to set
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-xml-set-prop-double" role="function">
-<title>lgl_xml_set_prop_double ()</title>
-<indexterm zone="lgl-xml-set-prop-double"><primary sortas="lgl_xml_set_prop_double">lgl_xml_set_prop_double</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_xml_set_prop_double             (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         <link linkend="gdouble">gdouble</link> val);</programlisting>
-<para>
-Set a property from a double.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>node</parameter>&#160;:</term>
-<listitem><simpara>        the libxml2 <link linkend="xmlNodePtr"><type>xmlNodePtr</type></link> of the node
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>property</parameter>&#160;:</term>
-<listitem><simpara>    the property name
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>val</parameter>&#160;:</term>
-<listitem><simpara>         the value to set
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-xml-set-prop-boolean" role="function">
-<title>lgl_xml_set_prop_boolean ()</title>
-<indexterm zone="lgl-xml-set-prop-boolean"><primary sortas="lgl_xml_set_prop_boolean">lgl_xml_set_prop_boolean</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_xml_set_prop_boolean            (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         <link linkend="gboolean">gboolean</link> val);</programlisting>
-<para>
-Set a property from a boolean.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>node</parameter>&#160;:</term>
-<listitem><simpara>        the libxml2 <link linkend="xmlNodePtr"><type>xmlNodePtr</type></link> of the node
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>property</parameter>&#160;:</term>
-<listitem><simpara>    the property name
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>val</parameter>&#160;:</term>
-<listitem><simpara>         the value to set
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-xml-set-prop-int" role="function">
-<title>lgl_xml_set_prop_int ()</title>
-<indexterm zone="lgl-xml-set-prop-int"><primary sortas="lgl_xml_set_prop_int">lgl_xml_set_prop_int</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_xml_set_prop_int                (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         <link linkend="gint">gint</link> val);</programlisting>
-<para>
-Set a property from an integer.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>node</parameter>&#160;:</term>
-<listitem><simpara>        the libxml2 <link linkend="xmlNodePtr"><type>xmlNodePtr</type></link> of the node
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>property</parameter>&#160;:</term>
-<listitem><simpara>    the property name
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>val</parameter>&#160;:</term>
-<listitem><simpara>         the value to set
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-xml-set-prop-uint-hex" role="function">
-<title>lgl_xml_set_prop_uint_hex ()</title>
-<indexterm zone="lgl-xml-set-prop-uint-hex"><primary sortas="lgl_xml_set_prop_uint_hex">lgl_xml_set_prop_uint_hex</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_xml_set_prop_uint_hex           (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         <link linkend="guint">guint</link> val);</programlisting>
-<para>
-Set a property from an unsigned integer and format in hex.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>node</parameter>&#160;:</term>
-<listitem><simpara>        the libxml2 <link linkend="xmlNodePtr"><type>xmlNodePtr</type></link> of the node
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>property</parameter>&#160;:</term>
-<listitem><simpara>    the property name
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>val</parameter>&#160;:</term>
-<listitem><simpara>         the value to set
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-xml-set-prop-length" role="function">
-<title>lgl_xml_set_prop_length ()</title>
-<indexterm zone="lgl-xml-set-prop-length"><primary sortas="lgl_xml_set_prop_length">lgl_xml_set_prop_length</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_xml_set_prop_length             (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *property,
-                                                         <link linkend="gdouble">gdouble</link> val);</programlisting>
-<para>
-Set a property from a length, performing any necessary conversion.
-Length properties are formatted as a number followed by a units string.
-The units of the formatted property is determined by the most recent call to
-<link linkend="lgl-xml-set-default-units"><function>lgl_xml_set_default_units()</function></link>.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>node</parameter>&#160;:</term>
-<listitem><simpara>        the libxml2 <link linkend="xmlNodePtr"><type>xmlNodePtr</type></link> of the node
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>property</parameter>&#160;:</term>
-<listitem><simpara>    the property name
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>val</parameter>&#160;:</term>
-<listitem><simpara>         the length to set in internal units (points)
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-xml-is-node" role="function">
-<title>lgl_xml_is_node ()</title>
-<indexterm zone="lgl-xml-is-node"><primary sortas="lgl_xml_is_node">lgl_xml_is_node</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            lgl_xml_is_node                     (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
-                                                         const <link linkend="gchar">gchar</link> *name);</programlisting>
-<para>
-Test if a node name matches given name.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>node</parameter>&#160;:</term>
-<listitem><simpara>        the libxml2 <link linkend="xmlNodePtr"><type>xmlNodePtr</type></link> of the node
-</simpara></listitem></varlistentry>
-<varlistentry><term><parameter>name</parameter>&#160;:</term>
-<listitem><simpara>    the node name
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> TRUE if the name of the node matches.  Otherwise FALSE.
-
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-xml-get-node-content" role="function">
-<title>lgl_xml_get_node_content ()</title>
-<indexterm zone="lgl-xml-get-node-content"><primary sortas="lgl_xml_get_node_content">lgl_xml_get_node_content</primary></indexterm><programlisting><link linkend="gchar">gchar</link> *             lgl_xml_get_node_content            (<link linkend="xmlNodePtr">xmlNodePtr</link> node);</programlisting>
-<para>
-Get the content of a node.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>node</parameter>&#160;:</term>
-<listitem><simpara>        the libxml2 <link linkend="xmlNodePtr"><type>xmlNodePtr</type></link> of the node
-</simpara></listitem></varlistentry>
-<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the property as a pointer to a gchar string.  This string should
-         be freed with <link linkend="g-free"><function>g_free()</function></link>.
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-<refsect2 id="lgl-xml-set-default-units" role="function">
-<title>lgl_xml_set_default_units ()</title>
-<indexterm zone="lgl-xml-set-default-units"><primary sortas="lgl_xml_set_default_units">lgl_xml_set_default_units</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_xml_set_default_units           (<link linkend="lglUnitsType">lglUnitsType</link> units);</programlisting>
-<para>
-Set the default units when formatting lengths.  See
-<link linkend="lgl-xml-set-prop-length"><function>lgl_xml_set_prop_length()</function></link>.</para>
-<para>
-</para><variablelist role="params">
-<varlistentry><term><parameter>units</parameter>&#160;:</term>
-<listitem><simpara>       default units selection (<link linkend="lglUnitsType"><type>lglUnitsType</type></link>)
-</simpara></listitem></varlistentry>
-</variablelist></refsect2>
-
-</refsect1>
-
-
-
-
-</refentry>
diff --git a/docs/libglbarcode/Makefile.am b/docs/libglbarcode/Makefile.am
new file mode 100644 (file)
index 0000000..1bed761
--- /dev/null
@@ -0,0 +1,73 @@
+## Process this file with automake to produce Makefile.in
+
+# We require automake 1.6 at least.
+AUTOMAKE_OPTIONS = 1.6
+
+# This is a blank Makefile.am for using gtk-doc.
+# Copy this to your project's API docs directory and modify the variables to
+# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
+# of using the various options.
+
+# The name of the module, e.g. 'glib'.
+DOC_MODULE=libglbarcode-3.0
+
+# The top-level SGML file. You can change this if you want to.
+DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
+
+# The directory containing the source code. Relative to $(srcdir).
+# gtk-doc will search all .c & .h files beneath here for inline comments
+# documenting the functions and macros.
+# e.g. DOC_SOURCE_DIR=../../../gtk
+DOC_SOURCE_DIR=../../libglbarcode
+
+# Extra options to pass to gtkdoc-scangobj. Not normally needed.
+SCANGOBJ_OPTIONS=
+
+# Extra options to supply to gtkdoc-scan.
+# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" 
+SCAN_OPTIONS=
+
+# Extra options to supply to gtkdoc-mkdb.
+# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml
+MKDB_OPTIONS=--sgml-mode --output-format=xml
+
+# Extra options to supply to gtkdoc-fixref. Not normally needed.
+# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
+FIXXREF_OPTIONS=
+
+# Used for dependencies. The docs will be rebuilt if any of these change.
+# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
+# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
+HFILE_GLOB=
+CFILE_GLOB=
+
+# Header files to ignore when scanning.
+# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
+IGNORE_HFILES= \
+       lgl-barcode-code39.h \
+       lgl-barcode-onecode.h \
+       lgl-barcode-postnet.h
+
+# Images to copy into HTML directory.
+# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
+HTML_IMAGES=
+
+# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
+# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
+content_files= \
+       intro.sgml
+
+# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
+# Only needed if you are using gtkdoc-scangobj to dynamically query widget
+# signals and properties.
+# e.g. INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
+# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
+INCLUDES=
+GTKDOC_LIBS=
+
+# This includes the standard gtk-doc make rules, copied by gtkdocize.
+include $(top_srcdir)/gtk-doc.make
+
+# Other files to distribute
+# e.g. EXTRA_DIST += version.xml.in
+EXTRA_DIST += 
diff --git a/docs/libglbarcode/Makefile.in b/docs/libglbarcode/Makefile.in
new file mode 100644 (file)
index 0000000..e791d55
--- /dev/null
@@ -0,0 +1,754 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# -*- mode: makefile -*-
+
+####################################
+# Everything below here is generic #
+####################################
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+       $(top_srcdir)/gtk-doc.make
+subdir = docs/libglbarcode
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CAIRO_REQUIRED = @CAIRO_REQUIRED@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DLLTOOL = @DLLTOOL@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLABELS_BRANCH = @GLABELS_BRANCH@
+GLABELS_CFLAGS = @GLABELS_CFLAGS@
+GLABELS_LIBS = @GLABELS_LIBS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_REQUIRED = @GLIB_REQUIRED@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GTK_REQUIRED = @GTK_REQUIRED@
+GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@
+HELP_DIR = @HELP_DIR@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@
+LIBBARCODE_LIBS = @LIBBARCODE_LIBS@
+LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@
+LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
+LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
+LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
+LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@
+LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@
+LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
+LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
+LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@
+LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@
+LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@
+LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@
+LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@
+LIBIEC16022_LIBS = @LIBIEC16022_LIBS@
+LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@
+LIBOBJS = @LIBOBJS@
+LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@
+LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@
+LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@
+LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_REQUIRED = @LIBXML_REQUIRED@
+LIBZINT_CFLAGS = @LIBZINT_CFLAGS@
+LIBZINT_LIBS = @LIBZINT_LIBS@
+LIBZINT_REQUIRED = @LIBZINT_REQUIRED@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_REQUIRED = @PANGO_REQUIRED@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+
+# We require automake 1.6 at least.
+AUTOMAKE_OPTIONS = 1.6
+
+# This is a blank Makefile.am for using gtk-doc.
+# Copy this to your project's API docs directory and modify the variables to
+# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
+# of using the various options.
+
+# The name of the module, e.g. 'glib'.
+DOC_MODULE = libglbarcode-3.0
+
+# The top-level SGML file. You can change this if you want to.
+DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.sgml
+
+# The directory containing the source code. Relative to $(srcdir).
+# gtk-doc will search all .c & .h files beneath here for inline comments
+# documenting the functions and macros.
+# e.g. DOC_SOURCE_DIR=../../../gtk
+DOC_SOURCE_DIR = ../../libglbarcode
+
+# Extra options to pass to gtkdoc-scangobj. Not normally needed.
+SCANGOBJ_OPTIONS = 
+
+# Extra options to supply to gtkdoc-scan.
+# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" 
+SCAN_OPTIONS = 
+
+# Extra options to supply to gtkdoc-mkdb.
+# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml
+MKDB_OPTIONS = --sgml-mode --output-format=xml
+
+# Extra options to supply to gtkdoc-fixref. Not normally needed.
+# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
+FIXXREF_OPTIONS = 
+
+# Used for dependencies. The docs will be rebuilt if any of these change.
+# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
+# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
+HFILE_GLOB = 
+CFILE_GLOB = 
+
+# Header files to ignore when scanning.
+# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
+IGNORE_HFILES = \
+       lgl-barcode-code39.h \
+       lgl-barcode-onecode.h \
+       lgl-barcode-postnet.h
+
+
+# Images to copy into HTML directory.
+# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
+HTML_IMAGES = 
+
+# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
+# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
+content_files = \
+       intro.sgml
+
+
+# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
+# Only needed if you are using gtkdoc-scangobj to dynamically query widget
+# signals and properties.
+# e.g. INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
+# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
+INCLUDES = 
+GTKDOC_LIBS = 
+@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
+@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
+@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = 
+@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute
+
+# We set GPATH here; this gives us semantics for GNU make
+# which are more like other make's VPATH, when it comes to
+# whether a source that is a target of one rule is then
+# searched for in VPATH/GPATH.
+#
+GPATH = $(srcdir)
+TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE)
+SETUP_FILES = \
+       $(content_files)                \
+       $(DOC_MAIN_SGML_FILE)           \
+       $(DOC_MODULE)-sections.txt      \
+       $(DOC_MODULE)-overrides.txt
+
+
+# This includes the standard gtk-doc make rules, copied by gtkdocize.
+
+# Other files to distribute
+# e.g. EXTRA_DIST += version.xml.in
+EXTRA_DIST = $(SETUP_FILES)
+DOC_STAMPS = setup-build.stamp scan-build.stamp tmpl-build.stamp sgml-build.stamp \
+       html-build.stamp pdf-build.stamp \
+       setup.stamp tmpl.stamp sgml.stamp html.stamp pdf.stamp
+
+SCANOBJ_FILES = \
+       $(DOC_MODULE).args       \
+       $(DOC_MODULE).hierarchy  \
+       $(DOC_MODULE).interfaces \
+       $(DOC_MODULE).prerequisites \
+       $(DOC_MODULE).signals
+
+REPORT_FILES = \
+       $(DOC_MODULE)-undocumented.txt \
+       $(DOC_MODULE)-undeclared.txt \
+       $(DOC_MODULE)-unused.txt
+
+CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS)
+@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP = 
+@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp
+@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP = 
+@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/gtk-doc.make $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/libglbarcode/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu docs/libglbarcode/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+       $(MAKE) $(AM_MAKEFLAGS) \
+         top_distdir="$(top_distdir)" distdir="$(distdir)" \
+         dist-hook
+check-am: all-am
+check: check-am
+all-am: Makefile all-local
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-local mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-local
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic \
+       maintainer-clean-local
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-local
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am all-local check check-am clean clean-generic \
+       clean-libtool clean-local dist-hook distclean \
+       distclean-generic distclean-libtool distclean-local distdir \
+       dvi dvi-am html html-am info info-am install install-am \
+       install-data install-data-am install-data-local install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic \
+       maintainer-clean-local mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+       uninstall-local
+
+
+@ENABLE_GTK_DOC_TRUE@all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
+@ENABLE_GTK_DOC_FALSE@all-local:
+
+docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
+
+$(REPORT_FILES): sgml-build.stamp
+
+#### setup ####
+
+setup-build.stamp:
+       -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+          echo 'gtk-doc: Preparing build'; \
+          files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
+          if test "x$$files" != "x" ; then \
+              for file in $$files ; do \
+                  test -f $(abs_srcdir)/$$file && \
+                      cp -p $(abs_srcdir)/$$file $(abs_builddir)/; \
+              done \
+          fi; \
+          test -f $(abs_srcdir)/tmpl && \
+              cp -rp $(abs_srcdir)/tmpl $(abs_builddir)/; \
+       fi
+       @touch setup-build.stamp
+
+setup.stamp: setup-build.stamp
+       @true
+
+#### scan ####
+
+scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
+       @echo 'gtk-doc: Scanning header files'
+       @_source_dir='' ; \
+       for i in $(DOC_SOURCE_DIR) ; do \
+           _source_dir="$${_source_dir} --source-dir=$$i" ; \
+       done ; \
+       gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
+       @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
+           CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) ; \
+       else \
+           for i in $(SCANOBJ_FILES) ; do \
+               test -f $$i || touch $$i ; \
+           done \
+       fi
+       @touch scan-build.stamp
+
+$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
+       @true
+
+#### templates ####
+
+tmpl-build.stamp: setup.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
+       @echo 'gtk-doc: Rebuilding template files'
+       @gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
+       @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+         if test -w $(abs_srcdir) ; then \
+           cp -rp $(abs_builddir)/tmpl $(abs_srcdir)/; \
+         fi \
+       fi
+       @touch tmpl-build.stamp
+
+tmpl.stamp: tmpl-build.stamp
+       @true
+
+$(srcdir)/tmpl/*.sgml:
+       @true
+
+#### xml ####
+
+sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
+       @echo 'gtk-doc: Building XML'
+       @-chmod -R u+w $(srcdir)
+       @_source_dir='' ; \
+       for i in $(DOC_SOURCE_DIR) ; do \
+           _source_dir="$${_source_dir} --source-dir=$$i" ; \
+       done ; \
+       gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)
+       @touch sgml-build.stamp
+
+sgml.stamp: sgml-build.stamp
+       @true
+
+#### html ####
+
+html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
+       @echo 'gtk-doc: Building HTML'
+       @rm -rf html
+       @mkdir html
+       @mkhtml_options=""; \
+       gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-path"; \
+       if test "$(?)" = "0"; then \
+         mkhtml_options=--path="$(abs_srcdir)"; \
+       fi; \
+       cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
+       -@test "x$(HTML_IMAGES)" = "x" || \
+       for file in $(HTML_IMAGES) ; do \
+         if test -f $(abs_srcdir)/$$file ; then \
+           cp $(abs_srcdir)/$$file $(abs_builddir)/html; \
+         fi; \
+         if test -f $(abs_builddir)/$$file ; then \
+           cp $(abs_builddir)/$$file $(abs_builddir)/html; \
+         fi; \
+       done;
+       @echo 'gtk-doc: Fixing cross-references'
+       @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
+       @touch html-build.stamp
+
+#### pdf ####
+
+pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
+       @echo 'gtk-doc: Building PDF'
+       @rm -rf $(DOC_MODULE).pdf
+       @mkpdf_imgdirs=""; \
+       if test "x$(HTML_IMAGES)" != "x"; then \
+         for img in $(HTML_IMAGES); do \
+           part=`dirname $$img`; \
+           echo $$mkpdf_imgdirs | grep >/dev/null "\-\-imgdir=$$part "; \
+           if test $$? != 0; then \
+             mkpdf_imgdirs="$$mkpdf_imgdirs --imgdir=$$part"; \
+           fi; \
+         done; \
+       fi; \
+       gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_imgdirs $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
+       @touch pdf-build.stamp
+
+##############
+
+clean-local:
+       rm -f *~ *.bak
+       rm -rf .libs
+
+distclean-local:
+       rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
+           $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
+       if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+           rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \
+           rm -rf tmpl; \
+       fi
+
+maintainer-clean-local: clean
+       rm -rf xml html
+
+install-data-local:
+       @installfiles=`echo $(srcdir)/html/*`; \
+       if test "$$installfiles" = '$(srcdir)/html/*'; \
+       then echo '-- Nothing to install' ; \
+       else \
+         if test -n "$(DOC_MODULE_VERSION)"; then \
+           installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
+         else \
+           installdir="$(DESTDIR)$(TARGET_DIR)"; \
+         fi; \
+         $(mkinstalldirs) $${installdir} ; \
+         for i in $$installfiles; do \
+           echo '-- Installing '$$i ; \
+           $(INSTALL_DATA) $$i $${installdir}; \
+         done; \
+         if test -n "$(DOC_MODULE_VERSION)"; then \
+           mv -f $${installdir}/$(DOC_MODULE).devhelp2 \
+             $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \
+           mv -f $${installdir}/$(DOC_MODULE).devhelp \
+             $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp; \
+         fi; \
+         $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \
+       fi
+
+uninstall-local:
+       @if test -n "$(DOC_MODULE_VERSION)"; then \
+         installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
+       else \
+         installdir="$(DESTDIR)$(TARGET_DIR)"; \
+       fi; \
+       rm -rf $${installdir}
+
+#
+# Require gtk-doc when making dist
+#
+@ENABLE_GTK_DOC_TRUE@dist-check-gtkdoc:
+@ENABLE_GTK_DOC_FALSE@dist-check-gtkdoc:
+@ENABLE_GTK_DOC_FALSE@ @echo "*** gtk-doc must be installed and enabled in order to make dist"
+@ENABLE_GTK_DOC_FALSE@ @false
+
+dist-hook: dist-check-gtkdoc dist-hook-local
+       mkdir $(distdir)/tmpl
+       mkdir $(distdir)/html
+       -cp $(build)/tmpl/*.sgml $(distdir)/tmpl
+       cp $(builddir)/html/* $(distdir)/html
+       -cp $(builddir)/$(DOC_MODULE).pdf $(distdir)/
+       -cp $(build)/$(DOC_MODULE).types $(distdir)/
+       -cp $(build)/$(DOC_MODULE)-sections.txt $(distdir)/
+       cd $(distdir) && rm -f $(DISTCLEANFILES)
+       $(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html
+
+.PHONY : dist-hook-local docs
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/docs/libglbarcode/html/api.html b/docs/libglbarcode/html/api.html
new file mode 100644 (file)
index 0000000..b36b546
--- /dev/null
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>API Reference</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="LibGlbarcode 3.0 Reference Manual">
+<link rel="up" href="index.html" title="LibGlbarcode 3.0 Reference Manual">
+<link rel="prev" href="libglbarcode-intro.html" title="Introduction">
+<link rel="next" href="libglbarcode-3.0-lgl-barcode.html" title="lglBarcode">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="libglbarcode-intro.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">LibGlbarcode 3.0 Reference Manual</th>
+<td><a accesskey="n" href="libglbarcode-3.0-lgl-barcode.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="api"></a>API Reference</h2></div></div></div>
+<div class="toc"><dl>
+<dt>
+<span class="refentrytitle"><a href="libglbarcode-3.0-lgl-barcode.html">lglBarcode</a></span><span class="refpurpose"> — Barcode structure</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libglbarcode-3.0-lgl-barcode-create.html">Barcode Factory</a></span><span class="refpurpose"> — Basic end-user barcode creation API</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libglbarcode-3.0-lgl-barcode-render-to-cairo.html">Cairo Renderer</a></span><span class="refpurpose"> — Render barcode to cairo context</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libglbarcode-3.0-lgl-barcode-type.html">Barcode Types</a></span><span class="refpurpose"> — Enumeration of supported barcode types</span>
+</dt>
+</dl></div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.17</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libglbarcode/html/home.png b/docs/libglbarcode/html/home.png
new file mode 100644 (file)
index 0000000..1700361
Binary files /dev/null and b/docs/libglbarcode/html/home.png differ
diff --git a/docs/libglbarcode/html/index.html b/docs/libglbarcode/html/index.html
new file mode 100644 (file)
index 0000000..ad28989
--- /dev/null
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LibGlbarcode 3.0 Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="LibGlbarcode 3.0 Reference Manual">
+<link rel="next" href="overview.html" title="LibGlbarcode Overview">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="book">
+<div class="titlepage">
+<div><div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">LibGlbarcode 3.0 Reference Manual</p></th></tr></table></div></div>
+<hr>
+</div>
+<div class="toc"><dl>
+<dt><span class="chapter"><a href="overview.html">LibGlbarcode Overview</a></span></dt>
+<dd><dl><dt>
+<span class="refentrytitle"><a href="libglbarcode-intro.html">Introduction</a></span><span class="refpurpose"> — 
+Introduction to libglbarcode library
+</span>
+</dt></dl></dd>
+<dt><span class="chapter"><a href="api.html">API Reference</a></span></dt>
+<dd><dl>
+<dt>
+<span class="refentrytitle"><a href="libglbarcode-3.0-lgl-barcode.html">lglBarcode</a></span><span class="refpurpose"> — Barcode structure</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libglbarcode-3.0-lgl-barcode-create.html">Barcode Factory</a></span><span class="refpurpose"> — Basic end-user barcode creation API</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libglbarcode-3.0-lgl-barcode-render-to-cairo.html">Cairo Renderer</a></span><span class="refpurpose"> — Render barcode to cairo context</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libglbarcode-3.0-lgl-barcode-type.html">Barcode Types</a></span><span class="refpurpose"> — Enumeration of supported barcode types</span>
+</dt>
+</dl></dd>
+</dl></div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.17</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libglbarcode/html/index.sgml b/docs/libglbarcode/html/index.sgml
new file mode 100644 (file)
index 0000000..d712961
--- /dev/null
@@ -0,0 +1,47 @@
+<ANCHOR id="libglbarcode-intro" href="libglbarcode-3.0/libglbarcode-intro.html">
+<ANCHOR id="libglbarcode-3.0-lgl-barcode" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode.html">
+<ANCHOR id="libglbarcode-3.0-lgl-barcode.synopsis" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode.html#libglbarcode-3.0-lgl-barcode.synopsis">
+<ANCHOR id="libglbarcode-3.0-lgl-barcode.description" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode.html#libglbarcode-3.0-lgl-barcode.description">
+<ANCHOR id="libglbarcode-3.0-lgl-barcode.details" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode.html#libglbarcode-3.0-lgl-barcode.details">
+<ANCHOR id="lglBarcode" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode.html#lglBarcode">
+<ANCHOR id="lgl-barcode-new" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode.html#lgl-barcode-new">
+<ANCHOR id="lgl-barcode-free" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode.html#lgl-barcode-free">
+<ANCHOR id="lglBarcodeShapeType" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeType">
+<ANCHOR id="lglBarcodeShape" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode.html#lglBarcodeShape">
+<ANCHOR id="lglBarcodeShapeAny" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeAny">
+<ANCHOR id="lglBarcodeShapeLine" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeLine">
+<ANCHOR id="lglBarcodeShapeBox" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeBox">
+<ANCHOR id="lglBarcodeShapeChar" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeChar">
+<ANCHOR id="lglBarcodeShapeString" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeString">
+<ANCHOR id="lglBarcodeShapeRing" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeRing">
+<ANCHOR id="lglBarcodeShapeHexagon" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeHexagon">
+<ANCHOR id="lgl-barcode-add-line" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode.html#lgl-barcode-add-line">
+<ANCHOR id="lgl-barcode-add-box" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode.html#lgl-barcode-add-box">
+<ANCHOR id="lgl-barcode-add-char" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode.html#lgl-barcode-add-char">
+<ANCHOR id="lgl-barcode-add-string" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode.html#lgl-barcode-add-string">
+<ANCHOR id="lgl-barcode-add-ring" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode.html#lgl-barcode-add-ring">
+<ANCHOR id="lgl-barcode-add-hexagon" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode.html#lgl-barcode-add-hexagon">
+<ANCHOR id="libglbarcode-3.0-lgl-barcode-create" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-create.html">
+<ANCHOR id="libglbarcode-3.0-lgl-barcode-create.synopsis" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-create.html#libglbarcode-3.0-lgl-barcode-create.synopsis">
+<ANCHOR id="libglbarcode-3.0-lgl-barcode-create.description" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-create.html#libglbarcode-3.0-lgl-barcode-create.description">
+<ANCHOR id="libglbarcode-3.0-lgl-barcode-create.details" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-create.html#libglbarcode-3.0-lgl-barcode-create.details">
+<ANCHOR id="lgl-barcode-create" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-create.html#lgl-barcode-create">
+<ANCHOR id="libglbarcode-3.0-lgl-barcode-render-to-cairo" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-render-to-cairo.html">
+<ANCHOR id="libglbarcode-3.0-lgl-barcode-render-to-cairo.synopsis" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-render-to-cairo.html#libglbarcode-3.0-lgl-barcode-render-to-cairo.synopsis">
+<ANCHOR id="libglbarcode-3.0-lgl-barcode-render-to-cairo.description" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-render-to-cairo.html#libglbarcode-3.0-lgl-barcode-render-to-cairo.description">
+<ANCHOR id="libglbarcode-3.0-lgl-barcode-render-to-cairo.details" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-render-to-cairo.html#libglbarcode-3.0-lgl-barcode-render-to-cairo.details">
+<ANCHOR id="lgl-barcode-render-to-cairo" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-render-to-cairo.html#lgl-barcode-render-to-cairo">
+<ANCHOR id="lgl-barcode-render-to-cairo-path" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-render-to-cairo.html#lgl-barcode-render-to-cairo-path">
+<ANCHOR id="libglbarcode-3.0-lgl-barcode-type" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-type.html">
+<ANCHOR id="libglbarcode-3.0-lgl-barcode-type.synopsis" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-type.html#libglbarcode-3.0-lgl-barcode-type.synopsis">
+<ANCHOR id="libglbarcode-3.0-lgl-barcode-type.description" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-type.html#libglbarcode-3.0-lgl-barcode-type.description">
+<ANCHOR id="libglbarcode-3.0-lgl-barcode-type.details" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-type.html#libglbarcode-3.0-lgl-barcode-type.details">
+<ANCHOR id="lglBarcodeType" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-type.html#lglBarcodeType">
+<ANCHOR id="LGL-BARCODE-TYPE-POSTNET:CAPS" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-type.html#LGL-BARCODE-TYPE-POSTNET:CAPS">
+<ANCHOR id="LGL-BARCODE-TYPE-POSTNET-5:CAPS" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-type.html#LGL-BARCODE-TYPE-POSTNET-5:CAPS">
+<ANCHOR id="LGL-BARCODE-TYPE-POSTNET-9:CAPS" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-type.html#LGL-BARCODE-TYPE-POSTNET-9:CAPS">
+<ANCHOR id="LGL-BARCODE-TYPE-POSTNET-11:CAPS" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-type.html#LGL-BARCODE-TYPE-POSTNET-11:CAPS">
+<ANCHOR id="LGL-BARCODE-TYPE-CEPNET:CAPS" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-type.html#LGL-BARCODE-TYPE-CEPNET:CAPS">
+<ANCHOR id="LGL-BARCODE-TYPE-ONECODE:CAPS" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-type.html#LGL-BARCODE-TYPE-ONECODE:CAPS">
+<ANCHOR id="LGL-BARCODE-TYPE-CODE39:CAPS" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-type.html#LGL-BARCODE-TYPE-CODE39:CAPS">
+<ANCHOR id="LGL-BARCODE-TYPE-CODE39-EXT:CAPS" href="libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-type.html#LGL-BARCODE-TYPE-CODE39-EXT:CAPS">
diff --git a/docs/libglbarcode/html/left.png b/docs/libglbarcode/html/left.png
new file mode 100644 (file)
index 0000000..2d05b3d
Binary files /dev/null and b/docs/libglbarcode/html/left.png differ
diff --git a/docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode-create.html b/docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode-create.html
new file mode 100644 (file)
index 0000000..b13937e
--- /dev/null
@@ -0,0 +1,122 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Barcode Factory</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="LibGlbarcode 3.0 Reference Manual">
+<link rel="up" href="api.html" title="API Reference">
+<link rel="prev" href="libglbarcode-3.0-lgl-barcode.html" title="lglBarcode">
+<link rel="next" href="libglbarcode-3.0-lgl-barcode-render-to-cairo.html" title="Cairo Renderer">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libglbarcode-3.0-lgl-barcode.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="api.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">LibGlbarcode 3.0 Reference Manual</th>
+<td><a accesskey="n" href="libglbarcode-3.0-lgl-barcode-render-to-cairo.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libglbarcode-3.0-lgl-barcode-create.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#libglbarcode-3.0-lgl-barcode-create.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libglbarcode-3.0-lgl-barcode-create"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libglbarcode-3.0-lgl-barcode-create.top_of_page"></a>Barcode Factory</span></h2>
+<p>Barcode Factory — Basic end-user barcode creation API</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libglbarcode-3.0-lgl-barcode-create.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libglbarcode/lgl-barcode-create.h&gt;
+
+<a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="returnvalue">lglBarcode</span></a> *        <a class="link" href="libglbarcode-3.0-lgl-barcode-create.html#lgl-barcode-create" title="lgl_barcode_create ()">lgl_barcode_create</a>                  (<em class="parameter"><code><a class="link" href="libglbarcode-3.0-lgl-barcode-type.html#lglBarcodeType" title="enum lglBarcodeType"><span class="type">lglBarcodeType</span></a> type</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> text_flag</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> checksum_flag</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> w</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> h</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libglbarcode-3.0-lgl-barcode-create.description"></a><h2>Description</h2>
+<p>
+This section describes a simple API to select and create <span class="type">glBarcode</span> structures using a built-in
+barcode backend.
+</p>
+</div>
+<div class="refsect1">
+<a name="libglbarcode-3.0-lgl-barcode-create.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="lgl-barcode-create"></a><h3>lgl_barcode_create ()</h3>
+<pre class="programlisting"><a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="returnvalue">lglBarcode</span></a> *        lgl_barcode_create                  (<em class="parameter"><code><a class="link" href="libglbarcode-3.0-lgl-barcode-type.html#lglBarcodeType" title="enum lglBarcodeType"><span class="type">lglBarcodeType</span></a> type</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> text_flag</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> checksum_flag</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> w</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> h</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>);</pre>
+<p>
+Create a new barcode structure, encoding <em class="parameter"><code>data</code></em> with selected barcode type and
+characteristics.
+</p>
+<p>
+Barcode dimensions (<em class="parameter"><code>w</code></em> and <em class="parameter"><code>h</code></em>) are in points ( 1 point = 1/72 inch ).
+If either <em class="parameter"><code>w</code></em> or <em class="parameter"><code>h</code></em> are zero, the barcode will be rendered in a nominal size
+appropriate for the barcode type and data.  The actual size of the resulting
+barcode may also be limited by required tolerances of line sizes and spacing
+for the given barcode type.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
+<td>Barcode type selection (<a class="link" href="libglbarcode-3.0-lgl-barcode-type.html#lglBarcodeType" title="enum lglBarcodeType"><span class="type">lglBarcodeType</span></a>)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text_flag</code></em> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to show text, if supported by barcode type</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>checksum_flag</code></em> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to include checksum, if supported or optional for barcode type</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>w</code></em> :</span></p></td>
+<td>Suggested width of barcode</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>h</code></em> :</span></p></td>
+<td>Suggested height of barcode</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>Data to encode into barcode</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> structure.  Use <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-free" title="lgl_barcode_free ()"><code class="function">lgl_barcode_free()</code></a> to
+free it.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.17</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode-render-to-cairo.html b/docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode-render-to-cairo.html
new file mode 100644 (file)
index 0000000..a5010d1
--- /dev/null
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Cairo Renderer</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="LibGlbarcode 3.0 Reference Manual">
+<link rel="up" href="api.html" title="API Reference">
+<link rel="prev" href="libglbarcode-3.0-lgl-barcode-create.html" title="Barcode Factory">
+<link rel="next" href="libglbarcode-3.0-lgl-barcode-type.html" title="Barcode Types">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libglbarcode-3.0-lgl-barcode-create.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="api.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">LibGlbarcode 3.0 Reference Manual</th>
+<td><a accesskey="n" href="libglbarcode-3.0-lgl-barcode-type.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libglbarcode-3.0-lgl-barcode-render-to-cairo.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#libglbarcode-3.0-lgl-barcode-render-to-cairo.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libglbarcode-3.0-lgl-barcode-render-to-cairo"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libglbarcode-3.0-lgl-barcode-render-to-cairo.top_of_page"></a>Cairo Renderer</span></h2>
+<p>Cairo Renderer — Render barcode to cairo context</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libglbarcode-3.0-lgl-barcode-render-to-cairo.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libglbarcode/lgl-barcode-render-to-cairo.h&gt;
+
+<span class="returnvalue">void</span>                <a class="link" href="libglbarcode-3.0-lgl-barcode-render-to-cairo.html#lgl-barcode-render-to-cairo" title="lgl_barcode_render_to_cairo ()">lgl_barcode_render_to_cairo</a>         (<em class="parameter"><code>const <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> *bc</code></em>,
+                                                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglbarcode-3.0-lgl-barcode-render-to-cairo.html#lgl-barcode-render-to-cairo-path" title="lgl_barcode_render_to_cairo_path ()">lgl_barcode_render_to_cairo_path</a>    (<em class="parameter"><code>const <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> *bc</code></em>,
+                                                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libglbarcode-3.0-lgl-barcode-render-to-cairo.description"></a><h2>Description</h2>
+<p>
+This section describes the cairo barcode renderer.
+</p>
+</div>
+<div class="refsect1">
+<a name="libglbarcode-3.0-lgl-barcode-render-to-cairo.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="lgl-barcode-render-to-cairo"></a><h3>lgl_barcode_render_to_cairo ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_barcode_render_to_cairo         (<em class="parameter"><code>const <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> *bc</code></em>,
+                                                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>
+Render barcode to cairo context.  Context should be prepared with desired
+translation and appropriate scale.  Context should be translated such that
+the origin is at the desired location of the upper left hand corner of the
+barcode bounding box.  Context should be scaled such that all dimensions
+are in points ( 1 point = 1/72 inch ) and that positive y coordinates
+go down the surface.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bc</code></em> :</span></p></td>
+<td>An <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cr</code></em> :</span></p></td>
+<td>A <a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> context</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-barcode-render-to-cairo-path"></a><h3>lgl_barcode_render_to_cairo_path ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_barcode_render_to_cairo_path    (<em class="parameter"><code>const <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> *bc</code></em>,
+                                                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>
+Render barcode to cairo context, but only create a path to be filled or
+tested against.  Context should be prepared with desired
+translation and appropriate scale.  Context should be translated such that
+the origin is at the desired location of the upper left hand corner of the
+barcode bounding box.  Context should be scaled such that all dimensions
+are in points ( 1 point = 1/72 inch ) and that positive y coordinates
+go down the surface.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bc</code></em> :</span></p></td>
+<td>An <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cr</code></em> :</span></p></td>
+<td>A <a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> context</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.17</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode-type.html b/docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode-type.html
new file mode 100644 (file)
index 0000000..463a60f
--- /dev/null
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Barcode Types</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="LibGlbarcode 3.0 Reference Manual">
+<link rel="up" href="api.html" title="API Reference">
+<link rel="prev" href="libglbarcode-3.0-lgl-barcode-render-to-cairo.html" title="Cairo Renderer">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libglbarcode-3.0-lgl-barcode-render-to-cairo.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="api.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">LibGlbarcode 3.0 Reference Manual</th>
+<td> </td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libglbarcode-3.0-lgl-barcode-type.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#libglbarcode-3.0-lgl-barcode-type.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libglbarcode-3.0-lgl-barcode-type"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libglbarcode-3.0-lgl-barcode-type.top_of_page"></a>Barcode Types</span></h2>
+<p>Barcode Types — Enumeration of supported barcode types</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libglbarcode-3.0-lgl-barcode-type.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libglbarcode/lgl-barcode-type.h&gt;
+
+enum                <a class="link" href="libglbarcode-3.0-lgl-barcode-type.html#lglBarcodeType" title="enum lglBarcodeType">lglBarcodeType</a>;
+</pre>
+</div>
+<div class="refsect1">
+<a name="libglbarcode-3.0-lgl-barcode-type.description"></a><h2>Description</h2>
+<p>
+This section describes an enumeration for selecting one of the barcode types supported by libglbarcode.
+</p>
+</div>
+<div class="refsect1">
+<a name="libglbarcode-3.0-lgl-barcode-type.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="lglBarcodeType"></a><h3>enum lglBarcodeType</h3>
+<pre class="programlisting">typedef enum {
+
+        LGL_BARCODE_TYPE_POSTNET,        /* USPS Postnet Barcode (5, 9, or 11 digits) */
+        LGL_BARCODE_TYPE_POSTNET_5,      /* USPS Postnet Barcode (5 digits) */
+        LGL_BARCODE_TYPE_POSTNET_9,      /* USPS Postnet Barcode (9 digits) */
+        LGL_BARCODE_TYPE_POSTNET_11,     /* USPS Postnet Barcode (11 digits) */
+        LGL_BARCODE_TYPE_CEPNET,         /* Brazilian Postal Code */
+
+        LGL_BARCODE_TYPE_ONECODE,        /* USPS Intelligent Mail Barcode */
+
+        LGL_BARCODE_TYPE_CODE39,         /* Code 39 */
+        LGL_BARCODE_TYPE_CODE39_EXT,     /* Extended Code 39 (Supports full ASCII character set) */
+
+        /*&lt; private &gt;*/
+        LGL_BARCODE_N_TYPES
+
+} lglBarcodeType;
+</pre>
+<p>
+This enumeration is used to select a built-in barcode type.  The currently supported barcode types are
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="LGL-BARCODE-TYPE-POSTNET:CAPS"></a><span class="term"><code class="literal">LGL_BARCODE_TYPE_POSTNET</code></span></p></td>
+<td>    USPS Postnet Barcode (5, 9, or 11 digits)
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-BARCODE-TYPE-POSTNET-5:CAPS"></a><span class="term"><code class="literal">LGL_BARCODE_TYPE_POSTNET_5</code></span></p></td>
+<td>  USPS Postnet Barcode (5 digits)
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-BARCODE-TYPE-POSTNET-9:CAPS"></a><span class="term"><code class="literal">LGL_BARCODE_TYPE_POSTNET_9</code></span></p></td>
+<td>  USPS Postnet Barcode (9 digits)
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-BARCODE-TYPE-POSTNET-11:CAPS"></a><span class="term"><code class="literal">LGL_BARCODE_TYPE_POSTNET_11</code></span></p></td>
+<td> USPS Postnet Barcode (11 digits)
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-BARCODE-TYPE-CEPNET:CAPS"></a><span class="term"><code class="literal">LGL_BARCODE_TYPE_CEPNET</code></span></p></td>
+<td>     Brazilian Postal Code
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-BARCODE-TYPE-ONECODE:CAPS"></a><span class="term"><code class="literal">LGL_BARCODE_TYPE_ONECODE</code></span></p></td>
+<td>    USPS Intelligent Mail Barcode
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-BARCODE-TYPE-CODE39:CAPS"></a><span class="term"><code class="literal">LGL_BARCODE_TYPE_CODE39</code></span></p></td>
+<td>     Code 39
+</td>
+</tr>
+<tr>
+<td><p><a name="LGL-BARCODE-TYPE-CODE39-EXT:CAPS"></a><span class="term"><code class="literal">LGL_BARCODE_TYPE_CODE39_EXT</code></span></p></td>
+<td> Extended Code 39 (Supports full ASCII character set)
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.17</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode.html b/docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode.html
new file mode 100644 (file)
index 0000000..b017093
--- /dev/null
@@ -0,0 +1,923 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>lglBarcode</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="LibGlbarcode 3.0 Reference Manual">
+<link rel="up" href="api.html" title="API Reference">
+<link rel="prev" href="api.html" title="API Reference">
+<link rel="next" href="libglbarcode-3.0-lgl-barcode-create.html" title="Barcode Factory">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="api.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="api.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">LibGlbarcode 3.0 Reference Manual</th>
+<td><a accesskey="n" href="libglbarcode-3.0-lgl-barcode-create.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libglbarcode-3.0-lgl-barcode.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#libglbarcode-3.0-lgl-barcode.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libglbarcode-3.0-lgl-barcode"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libglbarcode-3.0-lgl-barcode.top_of_page"></a>lglBarcode</span></h2>
+<p>lglBarcode — Barcode structure</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libglbarcode-3.0-lgl-barcode.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libglbarcode/lgl-barcode.h&gt;
+
+                    <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode">lglBarcode</a>;
+
+<a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="returnvalue">lglBarcode</span></a> *        <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-new" title="lgl_barcode_new ()">lgl_barcode_new</a>                     (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-free" title="lgl_barcode_free ()">lgl_barcode_free</a>                    (<em class="parameter"><code><a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> *bc</code></em>);
+
+enum                <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeType" title="enum lglBarcodeShapeType">lglBarcodeShapeType</a>;
+                    <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShape" title="lglBarcodeShape">lglBarcodeShape</a>;
+                    <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeAny" title="lglBarcodeShapeAny">lglBarcodeShapeAny</a>;
+                    <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeLine" title="lglBarcodeShapeLine">lglBarcodeShapeLine</a>;
+                    <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeBox" title="lglBarcodeShapeBox">lglBarcodeShapeBox</a>;
+                    <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeChar" title="lglBarcodeShapeChar">lglBarcodeShapeChar</a>;
+                    <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeString" title="lglBarcodeShapeString">lglBarcodeShapeString</a>;
+                    <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeRing" title="lglBarcodeShapeRing">lglBarcodeShapeRing</a>;
+                    <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeHexagon" title="lglBarcodeShapeHexagon">lglBarcodeShapeHexagon</a>;
+
+<span class="returnvalue">void</span>                <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-add-line" title="lgl_barcode_add_line ()">lgl_barcode_add_line</a>                (<em class="parameter"><code><a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> *bc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> length</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> width</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-add-box" title="lgl_barcode_add_box ()">lgl_barcode_add_box</a>                 (<em class="parameter"><code><a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> *bc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> width</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> height</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-add-char" title="lgl_barcode_add_char ()">lgl_barcode_add_char</a>                (<em class="parameter"><code><a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> *bc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> fsize</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> c</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-add-string" title="lgl_barcode_add_string ()">lgl_barcode_add_string</a>              (<em class="parameter"><code><a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> *bc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> fsize</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *string</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> length</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-add-ring" title="lgl_barcode_add_ring ()">lgl_barcode_add_ring</a>                (<em class="parameter"><code><a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> *bc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> radius</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> line_width</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-add-hexagon" title="lgl_barcode_add_hexagon ()">lgl_barcode_add_hexagon</a>             (<em class="parameter"><code><a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> *bc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> height</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libglbarcode-3.0-lgl-barcode.description"></a><h2>Description</h2>
+<p>
+This section describes the <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> structure and the <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShape" title="lglBarcodeShape"><span class="type">lglBarcodeShape</span></a> family of simple drawing primitives.
+These structures form the basic intermediate barcode representation used by libglbarcode.
+The section also defines a set of functions for constructing an <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> structure and populating it with drawing primitives.
+</p>
+</div>
+<div class="refsect1">
+<a name="libglbarcode-3.0-lgl-barcode.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="lglBarcode"></a><h3>lglBarcode</h3>
+<pre class="programlisting">typedef struct {
+        gdouble  width;
+        gdouble  height;
+
+        GList   *shapes;    /* List of lglBarcodeShape drawing primitives */
+} lglBarcode;
+</pre>
+<p>
+This structure contains the libglbarcode intermediate barcode format.  This
+structure contains a simple vectorized representation of the barcode.  This
+vectorized representation is easy to interpret by a rendering backend for
+either vector or raster formats.  A simple API is provided for constructing
+barcodes in this format.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglBarcode.width"></a>width</code></em>;</span></p></td>
+<td>Width of barcode bounding box (points)</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglBarcode.height"></a>height</code></em>;</span></p></td>
+<td>Height of barcode bounding box (points)</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="lglBarcode.shapes"></a>shapes</code></em>;</span></p></td>
+<td>List of <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShape" title="lglBarcodeShape"><span class="type">lglBarcodeShape</span></a> drawing primitives</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-barcode-new"></a><h3>lgl_barcode_new ()</h3>
+<pre class="programlisting"><a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="returnvalue">lglBarcode</span></a> *        lgl_barcode_new                     (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Allocate a new <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> structure.
+</p>
+<p>
+This function allocates a new <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> structure.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>
+      This function is intended to be used internally by barcode implementations.
+      Typically an end-user would use <a class="link" href="libglbarcode-3.0-lgl-barcode-create.html#lgl-barcode-create" title="lgl_barcode_create ()"><code class="function">lgl_barcode_create()</code></a> instead.
+</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> structure.  Use <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-free" title="lgl_barcode_free ()"><code class="function">lgl_barcode_free()</code></a> to
+free it.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-barcode-free"></a><h3>lgl_barcode_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_barcode_free                    (<em class="parameter"><code><a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> *bc</code></em>);</pre>
+<p>
+Free a previously allocated <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>bc</code></em> :</span></p></td>
+<td>The <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> structure to free</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglBarcodeShapeType"></a><h3>enum lglBarcodeShapeType</h3>
+<pre class="programlisting">typedef enum {
+        LGL_BARCODE_SHAPE_LINE,
+        LGL_BARCODE_SHAPE_BOX,
+        LGL_BARCODE_SHAPE_CHAR,
+        LGL_BARCODE_SHAPE_STRING,
+        LGL_BARCODE_SHAPE_RING,
+        LGL_BARCODE_SHAPE_HEXAGON
+} lglBarcodeShapeType;
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglBarcodeShape"></a><h3>lglBarcodeShape</h3>
+<pre class="programlisting">typedef union {
+
+        lglBarcodeShapeType    type;
+        lglBarcodeShapeAny     any;
+
+        lglBarcodeShapeLine    line;
+        lglBarcodeShapeBox     box;
+        lglBarcodeShapeChar    bchar;
+        lglBarcodeShapeString  string;
+        lglBarcodeShapeRing    ring;
+        lglBarcodeShapeHexagon hexagon;
+
+} lglBarcodeShape;
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglBarcodeShapeAny"></a><h3>lglBarcodeShapeAny</h3>
+<pre class="programlisting">typedef struct {
+        /* Begin Common Fields */
+        lglBarcodeShapeType  type;
+        gdouble              x;
+        gdouble              y;
+        /* End Common Fields */
+} lglBarcodeShapeAny;
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglBarcodeShapeLine"></a><h3>lglBarcodeShapeLine</h3>
+<pre class="programlisting">typedef struct {
+        /* Begin Common Fields */
+        lglBarcodeShapeType  type; /* Always LGL_BARCODE_SHAPE_LINE. */
+        gdouble              x;
+        gdouble              y;
+        /* End Common Fields */
+
+        gdouble              length;
+        gdouble              width;
+} lglBarcodeShapeLine;
+</pre>
+<p>
+A vertical line drawing primitive.
+</p>
+<p>
+</p>
+<pre class="programlisting">
+
+@ =  origin (x,y) from top left corner of barcode
+
+             +--@--+
+             |     |
+             |     |
+             |     |
+             |     | length
+             |     |
+             |     |
+             |     |
+             +-----+
+              width
+
+</pre>
+<p>
+</p>
+<p>
+All units are in points ( 1 point = 1/72 inch ).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeType" title="enum lglBarcodeShapeType"><span class="type">lglBarcodeShapeType</span></a> <em class="structfield"><code><a name="lglBarcodeShapeLine.type"></a>type</code></em>;</span></p></td>
+<td>Always <code class="literal">LGL_BARCODE_SHAPE_LINE</code>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglBarcodeShapeLine.x"></a>x</code></em>;</span></p></td>
+<td>x coordinate of top of line</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglBarcodeShapeLine.y"></a>y</code></em>;</span></p></td>
+<td>y coordinate of top of line</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglBarcodeShapeLine.length"></a>length</code></em>;</span></p></td>
+<td>Length of line</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglBarcodeShapeLine.width"></a>width</code></em>;</span></p></td>
+<td>Width of line</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglBarcodeShapeBox"></a><h3>lglBarcodeShapeBox</h3>
+<pre class="programlisting">typedef struct {
+        /* Begin Common Fields */
+        lglBarcodeShapeType  type; /* Always LGL_BARCODE_SHAPE_BOX. */
+        gdouble              x;
+        gdouble              y;
+        /* End Common Fields */
+
+        gdouble              width;
+        gdouble              height;
+} lglBarcodeShapeBox;
+</pre>
+<p>
+A solid box drawing primitive.
+</p>
+<p>
+</p>
+<pre class="programlisting">
+
+@ =  origin (x,y) from top left corner of barcode
+
+             @---------+
+             |         |
+             |         |
+             |         |
+             |         | height
+             |         |
+             |         |
+             |         |
+             +---------+
+                width
+
+</pre>
+<p>
+</p>
+<p>
+All units are in points ( 1 point = 1/72 inch ).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeType" title="enum lglBarcodeShapeType"><span class="type">lglBarcodeShapeType</span></a> <em class="structfield"><code><a name="lglBarcodeShapeBox.type"></a>type</code></em>;</span></p></td>
+<td>Always <code class="literal">LGL_BARCODE_SHAPE_BOX</code>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglBarcodeShapeBox.x"></a>x</code></em>;</span></p></td>
+<td>x coordinate of top left corner of box</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglBarcodeShapeBox.y"></a>y</code></em>;</span></p></td>
+<td>y coordinate of top left corner of box</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglBarcodeShapeBox.width"></a>width</code></em>;</span></p></td>
+<td>Width of box</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglBarcodeShapeBox.height"></a>height</code></em>;</span></p></td>
+<td>Height of box</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglBarcodeShapeChar"></a><h3>lglBarcodeShapeChar</h3>
+<pre class="programlisting">typedef struct {
+        /* Begin Common Fields */
+        lglBarcodeShapeType  type; /* Always LGL_BARCODE_SHAPE_CHAR. */
+        gdouble              x;
+        gdouble              y;
+        /* End Common Fields */
+
+        gdouble              fsize;
+        gchar                c;
+} lglBarcodeShapeChar;
+</pre>
+<p>
+An single byte character drawing primitive.
+</p>
+<p>
+</p>
+<pre class="programlisting">
+
+@ =  origin (x,y) from top left corner of barcode
+
+             ____ ------------
+            /    \           ^
+           /  /\  \          |
+          /  /__\  \         |
+         /  ______  \        | ~fsize
+        /  /      \  \       |
+       /__/        \__\      |
+                             v
+      @ ----------------------
+
+</pre>
+<p>
+</p>
+<p>
+All units are in points ( 1 point = 1/72 inch ).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeType" title="enum lglBarcodeShapeType"><span class="type">lglBarcodeShapeType</span></a> <em class="structfield"><code><a name="lglBarcodeShapeChar.type"></a>type</code></em>;</span></p></td>
+<td>Always <code class="literal">LGL_BARCODE_SHAPE_CHAR</code>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglBarcodeShapeChar.x"></a>x</code></em>;</span></p></td>
+<td>x coordinate of left baseline of character</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglBarcodeShapeChar.y"></a>y</code></em>;</span></p></td>
+<td>y coordinate of left baseline of character</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglBarcodeShapeChar.fsize"></a>fsize</code></em>;</span></p></td>
+<td>Font size</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> <em class="structfield"><code><a name="lglBarcodeShapeChar.c"></a>c</code></em>;</span></p></td>
+<td>Character to add</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglBarcodeShapeString"></a><h3>lglBarcodeShapeString</h3>
+<pre class="programlisting">typedef struct {
+        /* Begin Common Fields */
+        lglBarcodeShapeType  type; /* Always LGL_BARCODE_SHAPE_STRING. */
+        gdouble              x;
+        gdouble              y;
+        /* End Common Fields */
+
+        gdouble              fsize;
+        gchar               *string;
+} lglBarcodeShapeString;
+</pre>
+<p>
+A character string drawing primitive.
+</p>
+<p>
+</p>
+<pre class="programlisting">
+
+@ =  origin (x,y) from top left corner of barcode
+
+             ____        _  ------------------
+            /    \      | |                  ^
+           /  /\  \     | |                  |
+          /  /__\  \    | |___     ____      |
+         /  ______  \   | ._  \   /  __|     | ~fsize
+        /  /      \  \  | |_)  | |  (__      |
+       /__/        \__\ |_.___/   \____|     |
+                                             v
+                          @ ------------------
+                          x = horizontal center
+
+</pre>
+<p>
+</p>
+<p>
+All units are in points ( 1 point = 1/72 inch ).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeType" title="enum lglBarcodeShapeType"><span class="type">lglBarcodeShapeType</span></a> <em class="structfield"><code><a name="lglBarcodeShapeString.type"></a>type</code></em>;</span></p></td>
+<td>Always <code class="literal">LGL_BARCODE_SHAPE_STRING</code>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglBarcodeShapeString.x"></a>x</code></em>;</span></p></td>
+<td>x coordinate of horizontal center of baseline of string</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglBarcodeShapeString.y"></a>y</code></em>;</span></p></td>
+<td>y coordinate of horizontal center of baseline of string</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglBarcodeShapeString.fsize"></a>fsize</code></em>;</span></p></td>
+<td>Font size</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="lglBarcodeShapeString.string"></a>string</code></em>;</span></p></td>
+<td>String to add</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglBarcodeShapeRing"></a><h3>lglBarcodeShapeRing</h3>
+<pre class="programlisting">typedef struct {
+        /* Begin Common Fields */
+        lglBarcodeShapeType  type; /* Always LGL_BARCODE_SHAPE_RING. */
+        gdouble              x;
+        gdouble              y;
+        /* End Common Fields */
+
+        gdouble              radius;
+        gdouble              line_width;
+} lglBarcodeShapeRing;
+</pre>
+<p>
+A ring (an open circle) drawing primitive.
+</p>
+<p>
+</p>
+<pre class="programlisting">
+
+@ = origin (x,y) is centre of circle
+
+               v  line_width
+          _.-""""-._
+        .'   ____   `.
+       /   .'  ^ `.   \
+      |   /        \   |
+      |   |    @---|---|------
+      |   \        /   |     ^
+       \   `.____.'   /      | radius
+        `._    ...._.'.......|
+           `-....-'
+
+</pre>
+<p>
+</p>
+<p>
+All units are in points ( 1 point = 1/72 inch ).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeType" title="enum lglBarcodeShapeType"><span class="type">lglBarcodeShapeType</span></a> <em class="structfield"><code><a name="lglBarcodeShapeRing.type"></a>type</code></em>;</span></p></td>
+<td>Always <code class="literal">LGL_BARCODE_SHAPE_RING</code>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglBarcodeShapeRing.x"></a>x</code></em>;</span></p></td>
+<td>x coordinate of center of circle</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglBarcodeShapeRing.y"></a>y</code></em>;</span></p></td>
+<td>y coordinate of center of circle</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglBarcodeShapeRing.radius"></a>radius</code></em>;</span></p></td>
+<td>Radius of ring (center of line)</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglBarcodeShapeRing.line-width"></a>line_width</code></em>;</span></p></td>
+<td>Width of line</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lglBarcodeShapeHexagon"></a><h3>lglBarcodeShapeHexagon</h3>
+<pre class="programlisting">typedef struct {
+        /* Begin Common Fields */
+        lglBarcodeShapeType  type; /* Always LGL_BARCODE_SHAPE_HEXAGON. */
+        gdouble              x;
+        gdouble              y;
+        /* End Common Fields */
+
+        gdouble              height;
+} lglBarcodeShapeHexagon;
+</pre>
+<p>
+A solid regular hexagon (oriented with vertexes at top and bottom) drawing primitive.
+</p>
+<p>
+</p>
+<pre class="programlisting">
+
+@ = origin (x,y) is top of hexagon
+
+                 @ ------------------
+             _-"   "-_              ^
+         _-"           "-_          |
+      +"                   "+       |
+      |                     |       |
+      |                     |       |
+      |                     |       | height
+      |                     |       |
+      |                     |       |
+      +_                   _+       |
+        "-_             _-"         |
+           "-_       _-"            |
+              "-_ _-"               v
+                 " ------------------
+
+</pre>
+<p>
+</p>
+<p>
+All units are in points ( 1 point = 1/72 inch ).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeType" title="enum lglBarcodeShapeType"><span class="type">lglBarcodeShapeType</span></a> <em class="structfield"><code><a name="lglBarcodeShapeHexagon.type"></a>type</code></em>;</span></p></td>
+<td>Always <code class="literal">LGL_BARCODE_SHAPE_HEXAGON</code>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglBarcodeShapeHexagon.x"></a>x</code></em>;</span></p></td>
+<td>x coordinate of top point of hexagon</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglBarcodeShapeHexagon.y"></a>y</code></em>;</span></p></td>
+<td>y coordinate of top point of hexagon</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="lglBarcodeShapeHexagon.height"></a>height</code></em>;</span></p></td>
+<td>Height of hexagon</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-barcode-add-line"></a><h3>lgl_barcode_add_line ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_barcode_add_line                (<em class="parameter"><code><a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> *bc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> length</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> width</code></em>);</pre>
+<p>
+Add a vertical line to barcode.  Coordinates are relative to top left corner
+of barcode.  All units are in points ( 1 point = 1/72 inch ).
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>
+       This function is intended to be used internally by barcode implementations.
+</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bc</code></em> :</span></p></td>
+<td>An <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
+<td>x coordinate of top of line</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
+<td>y coordinate of top of line</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
+<td>Length of line</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
+<td>Width of line</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-barcode-add-box"></a><h3>lgl_barcode_add_box ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_barcode_add_box                 (<em class="parameter"><code><a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> *bc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> width</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> height</code></em>);</pre>
+<p>
+Add a box to barcode.  Coordinates are relative to top left corner
+of barcode.  All units are in points ( 1 point = 1/72 inch ).
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>
+       This function is intended to be used internally by barcode implementations.
+</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bc</code></em> :</span></p></td>
+<td>An <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
+<td>x coordinate of top left corner of box</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
+<td>y coordinate of top left corner of box</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
+<td>Width of box</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>height</code></em> :</span></p></td>
+<td>Height of box</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-barcode-add-char"></a><h3>lgl_barcode_add_char ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_barcode_add_char                (<em class="parameter"><code><a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> *bc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> fsize</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> c</code></em>);</pre>
+<p>
+Add an ASCII character to barcode.  Coordinates are relative to top left corner
+of barcode.  All units are in points ( 1 point = 1/72 inch ).
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>
+       This function is intended to be used internally by barcode implementations.
+</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bc</code></em> :</span></p></td>
+<td>An <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
+<td>x coordinate of left baseline of character</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
+<td>y coordinate of left baseline of character</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>fsize</code></em> :</span></p></td>
+<td>Font size</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
+<td>Character to add</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-barcode-add-string"></a><h3>lgl_barcode_add_string ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_barcode_add_string              (<em class="parameter"><code><a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> *bc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> fsize</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *string</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> length</code></em>);</pre>
+<p>
+Add a character string to barcode.  Coordinates are relative to top left corner
+of barcode.  All units are in points ( 1 point = 1/72 inch ).
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>
+       This function is intended to be used internally by barcode implementations.
+</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bc</code></em> :</span></p></td>
+<td>An <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
+<td>x coordinate of horizontal center of baseline of string</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
+<td>y coordinate of horizontal center of baseline of string</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>fsize</code></em> :</span></p></td>
+<td>Font size</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>string</code></em> :</span></p></td>
+<td>String to add</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
+<td>Number of bytes in string</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-barcode-add-ring"></a><h3>lgl_barcode_add_ring ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_barcode_add_ring                (<em class="parameter"><code><a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> *bc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> radius</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> line_width</code></em>);</pre>
+<p>
+Add a ring to barcode.  Coordinates are relative to top left corner
+of barcode.  All units are in points ( 1 point = 1/72 inch ).
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>
+       This function is intended to be used internally by barcode implementations.
+</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bc</code></em> :</span></p></td>
+<td>An <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
+<td>x coordinate of center of circle</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
+<td>y coordinate of center of circle</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>radius</code></em> :</span></p></td>
+<td>Radius of ring (center of line)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>line_width</code></em> :</span></p></td>
+<td>Width of line</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="lgl-barcode-add-hexagon"></a><h3>lgl_barcode_add_hexagon ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                lgl_barcode_add_hexagon             (<em class="parameter"><code><a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> *bc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> x</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> y</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> height</code></em>);</pre>
+<p>
+Add a regular hexagon (oriented with vertexes at top and bottom) to barcode.
+Coordinates are relative to top left corner of barcode.  All units are in
+points ( 1 point = 1/72 inch ).
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>
+       This function is intended to be used internally by barcode implementations.
+</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bc</code></em> :</span></p></td>
+<td>An <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode"><span class="type">lglBarcode</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
+<td>x coordinate of top point of hexagon</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
+<td>y coordinate of top point of hexagon</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>height</code></em> :</span></p></td>
+<td>Height of hexagon</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.17</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libglbarcode/html/libglbarcode-3.0.devhelp b/docs/libglbarcode/html/libglbarcode-3.0.devhelp
new file mode 100644 (file)
index 0000000..43a8c1d
--- /dev/null
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
+<book xmlns="http://www.devhelp.net/book" title="LibGlbarcode 3.0 Reference Manual" link="index.html" author="" name="libglbarcode-3.0">
+  <chapters>
+    <sub name="LibGlbarcode Overview" link="overview.html">
+      <sub name="Introduction" link="libglbarcode-intro.html"/>
+    </sub>
+    <sub name="API Reference" link="api.html">
+      <sub name="lglBarcode" link="libglbarcode-3.0-lgl-barcode.html"/>
+      <sub name="Barcode Factory" link="libglbarcode-3.0-lgl-barcode-create.html"/>
+      <sub name="Cairo Renderer" link="libglbarcode-3.0-lgl-barcode-render-to-cairo.html"/>
+      <sub name="Barcode Types" link="libglbarcode-3.0-lgl-barcode-type.html"/>
+    </sub>
+  </chapters>
+  <functions>
+    <function name="lglBarcode" link="libglbarcode-3.0-lgl-barcode.html#lglBarcode"/>
+    <function name="lgl_barcode_new ()" link="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-new"/>
+    <function name="lgl_barcode_free ()" link="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-free"/>
+    <function name="enum lglBarcodeShapeType" link="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeType"/>
+    <function name="lglBarcodeShape" link="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShape"/>
+    <function name="lglBarcodeShapeAny" link="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeAny"/>
+    <function name="lglBarcodeShapeLine" link="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeLine"/>
+    <function name="lglBarcodeShapeBox" link="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeBox"/>
+    <function name="lglBarcodeShapeChar" link="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeChar"/>
+    <function name="lglBarcodeShapeString" link="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeString"/>
+    <function name="lglBarcodeShapeRing" link="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeRing"/>
+    <function name="lglBarcodeShapeHexagon" link="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeHexagon"/>
+    <function name="lgl_barcode_add_line ()" link="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-add-line"/>
+    <function name="lgl_barcode_add_box ()" link="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-add-box"/>
+    <function name="lgl_barcode_add_char ()" link="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-add-char"/>
+    <function name="lgl_barcode_add_string ()" link="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-add-string"/>
+    <function name="lgl_barcode_add_ring ()" link="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-add-ring"/>
+    <function name="lgl_barcode_add_hexagon ()" link="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-add-hexagon"/>
+    <function name="lgl_barcode_create ()" link="libglbarcode-3.0-lgl-barcode-create.html#lgl-barcode-create"/>
+    <function name="lgl_barcode_render_to_cairo ()" link="libglbarcode-3.0-lgl-barcode-render-to-cairo.html#lgl-barcode-render-to-cairo"/>
+    <function name="lgl_barcode_render_to_cairo_path ()" link="libglbarcode-3.0-lgl-barcode-render-to-cairo.html#lgl-barcode-render-to-cairo-path"/>
+    <function name="enum lglBarcodeType" link="libglbarcode-3.0-lgl-barcode-type.html#lglBarcodeType"/>
+  </functions>
+</book>
diff --git a/docs/libglbarcode/html/libglbarcode-3.0.devhelp2 b/docs/libglbarcode/html/libglbarcode-3.0.devhelp2
new file mode 100644 (file)
index 0000000..29ec214
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
+<book xmlns="http://www.devhelp.net/book" title="LibGlbarcode 3.0 Reference Manual" link="index.html" author="" name="libglbarcode-3.0" version="2" language="c">
+  <chapters>
+    <sub name="LibGlbarcode Overview" link="overview.html">
+      <sub name="Introduction" link="libglbarcode-intro.html"/>
+    </sub>
+    <sub name="API Reference" link="api.html">
+      <sub name="lglBarcode" link="libglbarcode-3.0-lgl-barcode.html"/>
+      <sub name="Barcode Factory" link="libglbarcode-3.0-lgl-barcode-create.html"/>
+      <sub name="Cairo Renderer" link="libglbarcode-3.0-lgl-barcode-render-to-cairo.html"/>
+      <sub name="Barcode Types" link="libglbarcode-3.0-lgl-barcode-type.html"/>
+    </sub>
+  </chapters>
+  <functions>
+    <keyword type="struct" name="lglBarcode" link="libglbarcode-3.0-lgl-barcode.html#lglBarcode"/>
+    <keyword type="function" name="lgl_barcode_new ()" link="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-new"/>
+    <keyword type="function" name="lgl_barcode_free ()" link="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-free"/>
+    <keyword type="enum" name="enum lglBarcodeShapeType" link="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeType"/>
+    <keyword type="union" name="lglBarcodeShape" link="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShape"/>
+    <keyword type="struct" name="lglBarcodeShapeAny" link="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeAny"/>
+    <keyword type="struct" name="lglBarcodeShapeLine" link="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeLine"/>
+    <keyword type="struct" name="lglBarcodeShapeBox" link="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeBox"/>
+    <keyword type="struct" name="lglBarcodeShapeChar" link="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeChar"/>
+    <keyword type="struct" name="lglBarcodeShapeString" link="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeString"/>
+    <keyword type="struct" name="lglBarcodeShapeRing" link="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeRing"/>
+    <keyword type="struct" name="lglBarcodeShapeHexagon" link="libglbarcode-3.0-lgl-barcode.html#lglBarcodeShapeHexagon"/>
+    <keyword type="function" name="lgl_barcode_add_line ()" link="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-add-line"/>
+    <keyword type="function" name="lgl_barcode_add_box ()" link="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-add-box"/>
+    <keyword type="function" name="lgl_barcode_add_char ()" link="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-add-char"/>
+    <keyword type="function" name="lgl_barcode_add_string ()" link="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-add-string"/>
+    <keyword type="function" name="lgl_barcode_add_ring ()" link="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-add-ring"/>
+    <keyword type="function" name="lgl_barcode_add_hexagon ()" link="libglbarcode-3.0-lgl-barcode.html#lgl-barcode-add-hexagon"/>
+    <keyword type="function" name="lgl_barcode_create ()" link="libglbarcode-3.0-lgl-barcode-create.html#lgl-barcode-create"/>
+    <keyword type="function" name="lgl_barcode_render_to_cairo ()" link="libglbarcode-3.0-lgl-barcode-render-to-cairo.html#lgl-barcode-render-to-cairo"/>
+    <keyword type="function" name="lgl_barcode_render_to_cairo_path ()" link="libglbarcode-3.0-lgl-barcode-render-to-cairo.html#lgl-barcode-render-to-cairo-path"/>
+    <keyword type="enum" name="enum lglBarcodeType" link="libglbarcode-3.0-lgl-barcode-type.html#lglBarcodeType"/>
+    <keyword type="constant" name="LGL_BARCODE_TYPE_POSTNET" link="libglbarcode-3.0-lgl-barcode-type.html#LGL-BARCODE-TYPE-POSTNET:CAPS"/>
+    <keyword type="constant" name="LGL_BARCODE_TYPE_POSTNET_5" link="libglbarcode-3.0-lgl-barcode-type.html#LGL-BARCODE-TYPE-POSTNET-5:CAPS"/>
+    <keyword type="constant" name="LGL_BARCODE_TYPE_POSTNET_9" link="libglbarcode-3.0-lgl-barcode-type.html#LGL-BARCODE-TYPE-POSTNET-9:CAPS"/>
+    <keyword type="constant" name="LGL_BARCODE_TYPE_POSTNET_11" link="libglbarcode-3.0-lgl-barcode-type.html#LGL-BARCODE-TYPE-POSTNET-11:CAPS"/>
+    <keyword type="constant" name="LGL_BARCODE_TYPE_CEPNET" link="libglbarcode-3.0-lgl-barcode-type.html#LGL-BARCODE-TYPE-CEPNET:CAPS"/>
+    <keyword type="constant" name="LGL_BARCODE_TYPE_ONECODE" link="libglbarcode-3.0-lgl-barcode-type.html#LGL-BARCODE-TYPE-ONECODE:CAPS"/>
+    <keyword type="constant" name="LGL_BARCODE_TYPE_CODE39" link="libglbarcode-3.0-lgl-barcode-type.html#LGL-BARCODE-TYPE-CODE39:CAPS"/>
+    <keyword type="constant" name="LGL_BARCODE_TYPE_CODE39_EXT" link="libglbarcode-3.0-lgl-barcode-type.html#LGL-BARCODE-TYPE-CODE39-EXT:CAPS"/>
+  </functions>
+</book>
diff --git a/docs/libglbarcode/html/libglbarcode-intro.html b/docs/libglbarcode/html/libglbarcode-intro.html
new file mode 100644 (file)
index 0000000..8261dfc
--- /dev/null
@@ -0,0 +1,166 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Introduction</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="LibGlbarcode 3.0 Reference Manual">
+<link rel="up" href="overview.html" title="LibGlbarcode Overview">
+<link rel="prev" href="overview.html" title="LibGlbarcode Overview">
+<link rel="next" href="api.html" title="API Reference">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="overview.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="overview.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">LibGlbarcode 3.0 Reference Manual</th>
+<td><a accesskey="n" href="api.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="libglbarcode-intro"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libglbarcode-intro.top_of_page"></a>Introduction</span></h2>
+<p>Introduction — 
+Introduction to libglbarcode library
+</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="id2963460"></a><h2>Overview</h2>
+<p>
+Libglbarcode provides the core barcode functionality for <span class="application">glabels</span>.  It provides
+an intermediate barcode format, a small set of built-in barcode back-ends, and a cairo renderer.  While
+libglbarcode does not currently include a large set of built-in barcode back-ends or renderers, its
+simple architecture would easily support extending its functionality beyond the needs of
+<span class="application">glabels</span>.
+</p>
+</div>
+<div class="refsect1">
+<a name="id2963536"></a><h2>Basic Usage</h2>
+<pre class="programlisting">
+
+#include &lt;libglbarcode/lgl-barcode-create.h&gt;
+#include &lt;libglbarcode/lgl-barcode-render-to-cairo.h&gt;
+
+void
+example (gchar   *data,
+         cairo_t *cr)
+{
+        glBarcode *bc;
+
+        bc = lgl_barcode_create (LGL_BARCODE_TYPE_CODE39, TRUE, FALSE, 0, 0, data);
+
+        /* Render to cairo context.  Assume context has appropriate scale and translation.
+         * Scale should be such that world units are points (1 point = 1/72 inch) and that
+         * positive y values go downward.
+         */
+        lgl_barcode_render_to_cairo (bc, cr);
+
+        lgl_free (bc);
+}
+
+</pre>
+</div>
+<div class="refsect1">
+<a name="id2963569"></a><h2>Writing Renderers</h2>
+<p>
+The <a class="link" href="libglbarcode-3.0-lgl-barcode.html#lglBarcode" title="lglBarcode">lglBarcode</a> structure is independent of
+barcode type, and consists of a simple list of drawing primitives.
+A renderer simply traverses this list translating these primitives into native
+drawing commands for its target format or device.
+All renderers will follow this simple pattern as illustrated in the example
+below.
+</p>
+<pre class="programlisting">
+
+#include &lt;libglbarcode/lgl-barcode.h&gt;
+#include &lt;xxx.h&gt;
+
+void
+lgl_barcode_render_to_xxx (const lglBarcode  *bc)
+{
+        GList                  *p;
+
+        lglBarcodeShape        *shape;
+        lglBarcodeShapeLine    *line;
+        lglBarcodeShapeBox     *box;
+        lglBarcodeShapeChar    *bchar;
+        lglBarcodeShapeString  *bstring;
+        lglBarcodeShapeRing    *ring;
+        lglBarcodeShapeHexagon *hexagon;
+
+
+        for (p = bc-&gt;shapes; p != NULL; p = p-&gt;next) {
+
+                shape = (lglBarcodeShape *)p-&gt;data;
+
+                switch (shape-&gt;type)
+                {
+
+                case LGL_BARCODE_SHAPE_LINE:
+                        line = (lglBarcodeShapeLine *) shape;
+
+                        xxx_plot_line (line-&gt;x, line-&gt;y,
+                                       line-&gt;x, line-&gt;y + line-&gt;length,
+                                       line-&gt;width );
+                        break;
+
+                case LGL_BARCODE_SHAPE_BOX:
+                        box = (lglBarcodeShapeBox *) shape;
+
+                        xxx_plot_rectangle (box-&gt;x, box-&gt;y,
+                                            box-&gt;width, box-&gt;height);
+                        break;
+
+                case LGL_BARCODE_SHAPE_CHAR:
+                        bchar = (lglBarcodeShapeChar *) shape;
+
+                        ...
+                        xxx_plot_char (...);
+                        break;
+
+                case LGL_BARCODE_SHAPE_STRING:
+                        bstring = (lglBarcodeShapeString *) shape;
+
+                        ...
+                        xxx_plot_string (...);
+                        break;
+
+                case LGL_BARCODE_SHAPE_RING:
+                        ring = (lglBarcodeShapeRing *) shape;
+
+                        ...
+                        xxx_plot_circle (...);
+                        break;
+
+                case LGL_BARCODE_SHAPE_HEXAGON:
+                        hexagon = (lglBarcodeShapeHexagon *) shape;
+
+                        ...
+                        xxx_plot_polygon (...);
+                        break;
+
+                default:
+                        g_assert_not_reached ();
+                        break;
+
+                }
+
+        }
+
+}
+
+
+</pre>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.17</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libglbarcode/html/overview.html b/docs/libglbarcode/html/overview.html
new file mode 100644 (file)
index 0000000..6a6eddd
--- /dev/null
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LibGlbarcode Overview</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="LibGlbarcode 3.0 Reference Manual">
+<link rel="up" href="index.html" title="LibGlbarcode 3.0 Reference Manual">
+<link rel="prev" href="index.html" title="LibGlbarcode 3.0 Reference Manual">
+<link rel="next" href="libglbarcode-intro.html" title="Introduction">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="index.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">LibGlbarcode 3.0 Reference Manual</th>
+<td><a accesskey="n" href="libglbarcode-intro.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="overview"></a>LibGlbarcode Overview</h2></div></div></div>
+<div class="toc"><dl><dt>
+<span class="refentrytitle"><a href="libglbarcode-intro.html">Introduction</a></span><span class="refpurpose"> — 
+Introduction to libglbarcode library
+</span>
+</dt></dl></div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.17</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libglbarcode/html/right.png b/docs/libglbarcode/html/right.png
new file mode 100644 (file)
index 0000000..92832e3
Binary files /dev/null and b/docs/libglbarcode/html/right.png differ
diff --git a/docs/libglbarcode/html/style.css b/docs/libglbarcode/html/style.css
new file mode 100644 (file)
index 0000000..d6f6c26
--- /dev/null
@@ -0,0 +1,266 @@
+.synopsis, .classsynopsis
+{
+  /* tango:aluminium 1/2 */
+  background: #eeeeec;
+  border: solid 1px #d3d7cf;
+  padding: 0.5em;
+}
+.programlisting
+{
+  /* tango:sky blue 0/1 */
+  background: #e6f3ff;
+  border: solid 1px #729fcf;
+  padding: 0.5em;
+}
+.variablelist
+{
+  padding: 4px;
+  margin-left: 3em;
+}
+.variablelist td:first-child
+{
+  vertical-align: top;
+}
+
+@media screen {
+  sup a.footnote
+  {
+    position: relative;
+    top: 0em ! important;
+    
+  }
+  /* this is needed so that the local anchors are displayed below the naviagtion */
+  div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name]
+  {
+    display: inline-block;
+    position: relative;
+    top:-5em;
+  }
+  /* this seems to be a bug in the xsl style sheets when generating indexes */
+  div.index div.index
+  {
+    top: 0em;
+  }
+  /* make space for the fixed navigation bar and add space at the bottom so that
+   * link targets appear somewhat close to top
+   */
+  body
+  {
+    padding-top: 3.2em;
+    padding-bottom: 20em;
+  }
+  /* style and size the navigation bar */
+  table.navigation#top
+  {
+    position: fixed;
+    /* tango:scarlet red 0/1 */
+    background: #ffe6e6;
+    border: solid 1px #ef2929;
+    margin-top: 0;
+    margin-bottom: 0;
+    top: 0;
+    left: 0;
+    height: 3em;
+    z-index: 10;
+  }
+  .navigation a, .navigation a:visited
+  {
+    /* tango:scarlet red 3 */
+    color: #a40000;
+  }
+  .navigation a:hover
+  {
+    /* tango:scarlet red 1 */
+    color: #ef2929;
+  }
+  td.shortcuts
+  {
+    /* tango:scarlet red 1 */
+    color: #ef2929;
+    font-size: 80%;
+    white-space: nowrap;
+  }
+}
+@media print {
+  table.navigation {
+    visibility: collapse;
+    display: none;
+  }
+  div.titlepage table.navigation {
+    visibility: visible;
+    display: table;
+    /* tango:scarlet red 0/1 */
+    background: #ffe6e6;
+    border: solid 1px #ef2929;
+    margin-top: 0;
+    margin-bottom: 0;
+    top: 0;
+    left: 0;
+    height: 3em;
+  }
+}
+
+.navigation .title
+{
+  font-size: 200%;
+}
+
+div.gallery-float
+{
+  float: left;
+  padding: 10px;
+}
+div.gallery-float img
+{
+  border-style: none;
+}
+div.gallery-spacer
+{
+  clear: both;
+}
+
+a, a:visited
+{
+  text-decoration: none;
+  /* tango:sky blue 2 */
+  color: #3465a4;
+}
+a:hover
+{
+  text-decoration: underline;
+  /* tango:sky blue 1 */
+  color: #729fcf;
+}
+
+div.table table
+{
+  border-collapse: collapse;
+  border-spacing: 0px;
+  /* tango:aluminium 3 */
+  border: solid 1px #babdb6;
+}
+
+div.table table td, div.table table th
+{
+  /* tango:aluminium 3 */
+  border: solid 1px #babdb6;
+  padding: 3px;
+  vertical-align: top;
+}
+
+div.table table th
+{
+  /* tango:aluminium 2 */
+  background-color: #d3d7cf;
+}
+
+hr
+{
+  /* tango:aluminium 3 */
+  color: #babdb6;
+  background: #babdb6;
+  border: none 0px;
+  height: 1px;
+  clear: both;
+}
+
+.footer
+{
+  padding-top: 3.5em;
+  /* tango:aluminium 3 */
+  color: #babdb6;
+  text-align: center;
+  font-size: 80%;
+}
+
+.warning
+{
+  /* tango:orange 0/1 */
+  background: #ffeed9;
+  border-color: #ffb04f;
+}
+.note
+{
+  /* tango:chameleon 0/0.5 */
+  background: #d8ffb2;
+  border-color: #abf562;
+}
+.note, .warning
+{
+  padding: 0.5em;
+  border-width: 1px;
+  border-style: solid;
+}
+.note h3, .warning h3
+{
+  margin-top: 0.0em
+}
+.note p, .warning p
+{
+  margin-bottom: 0.0em
+}
+
+/* blob links */
+h2 .extralinks, h3 .extralinks
+{
+  float: right;
+  /* tango:aluminium 3 */
+  color: #babdb6;
+  font-size: 80%;
+  font-weight: normal;
+}
+
+.annotation
+{
+  /* tango:aluminium 5 */
+  color: #555753;
+  font-size: 80%;
+  font-weight: normal;
+}
+
+/* code listings */
+
+.listing_code .programlisting .cbracket   { color: #a40000; } /* tango: scarlet red 3 */
+.listing_code .programlisting .comment    { color: #a1a39d; } /* tango: aluminium 4 */
+.listing_code .programlisting .function   { color: #000000; font-weight: bold; }
+.listing_code .programlisting .function a { color: #11326b; font-weight: bold; } /* tango: sky blue 4 */
+.listing_code .programlisting .keyword    { color: #4e9a06; } /* tango: chameleon 3  */
+.listing_code .programlisting .linenum    { color: #babdb6; } /* tango: aluminium 3 */
+.listing_code .programlisting .normal     { color: #000000; }
+.listing_code .programlisting .number     { color: #75507b; } /* tango: plum 2 */
+.listing_code .programlisting .preproc    { color: #204a87; } /* tango: sky blue 3  */
+.listing_code .programlisting .string     { color: #c17d11; } /* tango: chocolate 2 */
+.listing_code .programlisting .type       { color: #000000; }
+.listing_code .programlisting .type a     { color: #11326b; } /* tango: sky blue 4 */
+.listing_code .programlisting .symbol     { color: #ce5c00; } /* tango: orange 3 */
+
+.listing_frame {
+  /* tango:sky blue 1 */
+  border: solid 1px #729fcf;
+  padding: 0px;
+}
+
+.listing_lines, .listing_code {
+  margin-top: 0px;
+  margin-bottom: 0px;
+  padding: 0.5em;
+}
+.listing_lines {
+  /* tango:sky blue 0.5 */
+  background: #a6c5e3;
+  /* tango:aluminium 6 */
+  color: #2e3436;
+}
+.listing_code {
+  /* tango:sky blue 0 */
+  background: #e6f3ff;
+}
+.listing_code .programlisting {
+  /* override from previous */
+  border: none 0px;
+  padding: 0px;
+}
+.listing_lines pre, .listing_code pre {
+  margin: 0px;
+}
+
diff --git a/docs/libglbarcode/html/up.png b/docs/libglbarcode/html/up.png
new file mode 100644 (file)
index 0000000..85b3e2a
Binary files /dev/null and b/docs/libglbarcode/html/up.png differ
diff --git a/docs/libglbarcode/intro.sgml b/docs/libglbarcode/intro.sgml
new file mode 100644 (file)
index 0000000..7d9724d
--- /dev/null
@@ -0,0 +1,161 @@
+<refentry id="libglbarcode-intro" revision="07 Nov 2010">
+<refmeta>
+<refentrytitle role="top_of_page" id="libglbarcode-intro.top_of_page">Introduction</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>
+  LIBGLBARCODE-3.0 Library
+</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>Introduction</refname>
+<refpurpose>
+Introduction to libglbarcode library
+</refpurpose>
+</refnamediv>
+
+
+<refsect1>
+<title>Overview</title>
+
+<para>
+Libglbarcode provides the core barcode functionality for <application>glabels</application>.  It provides
+an intermediate barcode format, a small set of built-in barcode back-ends, and a cairo renderer.  While
+libglbarcode does not currently include a large set of built-in barcode back-ends or renderers, its
+simple architecture would easily support extending its functionality beyond the needs of
+<application>glabels</application>.
+</para>
+
+</refsect1>
+
+
+<refsect1>
+<title>Basic Usage</title>
+
+<programlisting>
+
+#include &lt;libglbarcode/lgl-barcode-create.h&gt;
+#include &lt;libglbarcode/lgl-barcode-render-to-cairo.h&gt;
+
+void
+example (gchar   *data,
+         cairo_t *cr)
+{
+        glBarcode *bc;
+
+        bc = lgl_barcode_create (LGL_BARCODE_TYPE_CODE39, TRUE, FALSE, 0, 0, data);
+
+        /* Render to cairo context.  Assume context has appropriate scale and translation.
+         * Scale should be such that world units are points (1 point = 1/72 inch) and that
+         * positive y values go downward.
+         */
+        lgl_barcode_render_to_cairo (bc, cr);
+
+        lgl_free (bc);
+}
+
+</programlisting>
+
+
+</refsect1>
+
+
+<refsect1>
+<title>Writing Renderers</title>
+
+<para>
+The <link linkend="lglBarcode">lglBarcode</link> structure is independent of
+barcode type, and consists of a simple list of drawing primitives.
+A renderer simply traverses this list translating these primitives into native
+drawing commands for its target format or device.
+All renderers will follow this simple pattern as illustrated in the example
+below.
+</para>
+
+<programlisting>
+
+#include &lt;libglbarcode/lgl-barcode.h&gt;
+#include &lt;xxx.h&gt;
+
+void
+lgl_barcode_render_to_xxx (const lglBarcode  *bc)
+{
+        GList                  *p;
+
+        lglBarcodeShape        *shape;
+        lglBarcodeShapeLine    *line;
+        lglBarcodeShapeBox     *box;
+        lglBarcodeShapeChar    *bchar;
+        lglBarcodeShapeString  *bstring;
+        lglBarcodeShapeRing    *ring;
+        lglBarcodeShapeHexagon *hexagon;
+
+
+        for (p = bc->shapes; p != NULL; p = p->next) {
+
+                shape = (lglBarcodeShape *)p->data;
+
+                switch (shape->type)
+                {
+
+                case LGL_BARCODE_SHAPE_LINE:
+                        line = (lglBarcodeShapeLine *) shape;
+
+                        xxx_plot_line (line->x, line->y,
+                                       line->x, line->y + line->length,
+                                       line->width );
+                        break;
+
+                case LGL_BARCODE_SHAPE_BOX:
+                        box = (lglBarcodeShapeBox *) shape;
+
+                        xxx_plot_rectangle (box->x, box->y,
+                                            box->width, box->height);
+                        break;
+
+                case LGL_BARCODE_SHAPE_CHAR:
+                        bchar = (lglBarcodeShapeChar *) shape;
+
+                        ...
+                        xxx_plot_char (...);
+                        break;
+
+                case LGL_BARCODE_SHAPE_STRING:
+                        bstring = (lglBarcodeShapeString *) shape;
+
+                        ...
+                        xxx_plot_string (...);
+                        break;
+
+                case LGL_BARCODE_SHAPE_RING:
+                        ring = (lglBarcodeShapeRing *) shape;
+
+                        ...
+                        xxx_plot_circle (...);
+                        break;
+
+                case LGL_BARCODE_SHAPE_HEXAGON:
+                        hexagon = (lglBarcodeShapeHexagon *) shape;
+
+                        ...
+                        xxx_plot_polygon (...);
+                        break;
+
+                default:
+                        g_assert_not_reached ();
+                        break;
+
+                }
+
+        }
+
+}
+
+
+</programlisting>
+
+
+</refsect1>
+
+
+</refentry>
diff --git a/docs/libglbarcode/libglbarcode-3.0-docs.sgml b/docs/libglbarcode/libglbarcode-3.0-docs.sgml
new file mode 100644 (file)
index 0000000..d04ced2
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+               "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
+[
+  <!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
+  <!ENTITY libglbarcode-intro SYSTEM "intro.sgml">
+]>
+<book id="index">
+
+  <bookinfo>
+    <title>LibGlbarcode 3.0 Reference Manual</title>
+  </bookinfo>
+
+  <chapter id="overview">
+    <title>LibGlbarcode Overview</title>
+
+    &libglbarcode-intro;
+
+  </chapter>
+
+  <chapter id="api">
+    <title>API Reference</title>
+
+    <xi:include href="xml/lgl-barcode.xml"/>
+    <xi:include href="xml/lgl-barcode-create.xml"/>
+    <xi:include href="xml/lgl-barcode-render-to-cairo.xml"/>
+    <xi:include href="xml/lgl-barcode-type.xml"/>
+
+  </chapter>
+
+</book>
diff --git a/docs/libglbarcode/libglbarcode-3.0-overrides.txt b/docs/libglbarcode/libglbarcode-3.0-overrides.txt
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/docs/libglbarcode/libglbarcode-3.0-sections.txt b/docs/libglbarcode/libglbarcode-3.0-sections.txt
new file mode 100644 (file)
index 0000000..0eb153c
--- /dev/null
@@ -0,0 +1,46 @@
+<SECTION>
+<FILE>lgl-barcode</FILE>
+<INCLUDE>libglbarcode/lgl-barcode.h</INCLUDE>
+<SUBSECTION Barcode Structure>
+lglBarcode
+<SUBSECTION Barcode Structure Management>
+lgl_barcode_new
+lgl_barcode_free
+<SUBSECTION Barcode Drawing Primitives>
+lglBarcodeShapeType
+lglBarcodeShape
+lglBarcodeShapeAny
+lglBarcodeShapeLine
+lglBarcodeShapeBox
+lglBarcodeShapeChar
+lglBarcodeShapeString
+lglBarcodeShapeRing
+lglBarcodeShapeHexagon
+<SUBSECTION Barcode Construction>
+lgl_barcode_add_line
+lgl_barcode_add_box
+lgl_barcode_add_char
+lgl_barcode_add_string
+lgl_barcode_add_ring
+lgl_barcode_add_hexagon
+</SECTION>
+
+<SECTION>
+<FILE>lgl-barcode-create</FILE>
+<INCLUDE>libglbarcode/lgl-barcode-create.h</INCLUDE>
+lgl_barcode_create
+</SECTION>
+
+<SECTION>
+<FILE>lgl-barcode-render-to-cairo</FILE>
+<INCLUDE>libglbarcode/lgl-barcode-render-to-cairo.h</INCLUDE>
+lgl_barcode_render_to_cairo
+lgl_barcode_render_to_cairo_path
+</SECTION>
+
+<SECTION>
+<FILE>lgl-barcode-type</FILE>
+<INCLUDE>libglbarcode/lgl-barcode-type.h</INCLUDE>
+lglBarcodeType
+</SECTION>
+
index f4df384fe9e88378f79187a359e86a3d5c7dd226..0be76319d451ed05b60d8cb1f2b02ab13bf08b60 100644 (file)
@@ -1,6 +1,6 @@
 Summary: glabels is a GNOME program to create labels and business cards
 Name:      glabels
-Version:   2.2.8
+Version:   3.0.0
 Release:   1
 License: GPL
 Group: Applications/Publishing
@@ -10,15 +10,15 @@ Source: %{name}-%{version}.tar.gz
 BuildRoot: %{_tmppath}/root-%{name}-%{version}
 Prefix: %{_prefix}
 
-BuildRequires: gtk2-devel >= 2.10.0
-BuildRequires: libxml2-devel >= 2.6.0
-BuildRequires: libgnomeui-devel >= 2.16.0
-BuildRequires: libglade2-devel >= 2.6.0
+BuildRequires: gtk2-devel >= 3.0.9
+BuildRequires: libxml2-devel >= 2.7.8
+BuildRequires: libgnomeui-devel >= @LIBGNOMEUI_REQUIRED@
+BuildRequires: libglade2-devel >= @LIBGLADE_REQUIRED@
 
-Requires: gtk2 >= 2.10.0
-Requires: libxml2 >= 2.6.0
-Requires: libgnomeui >= 2.16.0
-Requires: libglade2 >= 2.6.0
+Requires: gtk2 >= 3.0.9
+Requires: libxml2 >= 2.7.8
+Requires: libgnomeui >= @LIBGNOMEUI_REQUIRED@
+Requires: libglade2 >= @LIBGLADE_REQUIRED@
 
 %description
 gLabels is a lightweight program for creating labels and
index ec8f698366032e3dcb165ad95aaeb3817b9a5525..0da2cf91c147fed88c4743d3ab172882361f9f39 100644 (file)
@@ -138,7 +138,7 @@ _db2omf  ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
 _malrng  ?= `$(PKG_CONFIG) --variable malrng gnome-doc-utils`
 _chunks  ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
 _credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
-_ids ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl
+_ids ?= $(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl
 
 if ENABLE_SK
 _ENABLE_SK = true
@@ -266,6 +266,13 @@ _DOC_POFILES = $(if $(DOC_MODULE)$(DOC_ID),                                        \
 .PHONY: po
 po: $(_DOC_POFILES)
 
+## @ _DOC_MOFILES
+## The .mo files used for translating the document
+_DOC_MOFILES = $(patsubst %.po,%.mo,$(_DOC_POFILES))
+
+.PHONY: mo
+mo: $(_DOC_MOFILES)
+
 ## @ _DOC_LC_MODULES
 ## The top-level documentation files in all other locales
 _DOC_LC_MODULES = $(if $(DOC_MODULE),                                          \
@@ -332,22 +339,29 @@ $(_DOC_POFILES):
            $(_xml2po) -m $(_xml2po_mode) -e -u $(notdir $@) $$docs); \
        fi
 
+$(_DOC_MOFILES): %.mo: %.po
+       @if ! test -d $(dir $@); then \
+         echo "mkdir $(dir $@)"; \
+         mkdir "$(dir $@)"; \
+       fi
+       msgfmt -o $@ $<
+
 # FIXME: fix the dependancy
 # FIXME: hook xml2po up
-$(_DOC_LC_DOCS) : $(_DOC_POFILES)
+$(_DOC_LC_DOCS) : $(_DOC_MOFILES)
 $(_DOC_LC_DOCS) : $(_DOC_C_DOCS)
        if ! test -d $(dir $@); then mkdir $(dir $@); fi
        if [ -f "C/$(notdir $@)" ]; then d="../"; else d="$(_DOC_ABS_SRCDIR)/"; fi; \
-       po="$(dir $@)$(patsubst %/$(notdir $@),%,$@).po"; \
-       if [ -f "$${po}" ]; then po="../$${po}"; else po="$(_DOC_ABS_SRCDIR)/$${po}"; fi; \
+       mo="$(dir $@)$(patsubst %/$(notdir $@),%,$@).mo"; \
+       if [ -f "$${mo}" ]; then mo="../$${mo}"; else mo="$(_DOC_ABS_SRCDIR)/$${mo}"; fi; \
        (cd $(dir $@) && \
-         $(_xml2po) -m $(_xml2po_mode) -e -p "$${po}" \
+         $(_xml2po) -m $(_xml2po_mode) -e -t "$${mo}" \
            "$${d}C/$(notdir $@)" > $(notdir $@).tmp && \
            cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp)
 
 ## @ _DOC_POT
 ## A pot file
-_DOC_POT = $(if $(DOC_MODULE),$(DOC_MODULE).pot)
+_DOC_POT = $(if $(DOC_MODULE),$(DOC_MODULE).pot,$(if $(DOC_ID),$(DOC_ID).pot))
 .PHONY: pot
 pot: $(_DOC_POT)
 $(_DOC_POT): $(_DOC_C_DOCS_NOENT)
@@ -386,12 +400,14 @@ clean-doc-omf: ; rm -f $(_DOC_OMF_DB) $(_DOC_OMF_HTML)
 clean-doc-dsk: ; rm -f $(_DOC_DSK_DB) $(_DOC_DSK_HTML)
 clean-doc-lc:
        rm -f $(_DOC_LC_DOCS)
+       rm -f $(_DOC_MOFILES)
        @list='$(_DOC_POFILES)'; for po in $$list; do \
          if ! test "$$po" -ef "$(srcdir)/$$po"; then \
            echo "rm -f $$po"; \
            rm -f "$$po"; \
          fi; \
        done
+#      .xml2.po.mo cleaning is obsolete as of 0.18.1 and could be removed in 0.20.x
        @for lc in C $(_DOC_REAL_LINGUAS); do \
          if test -f "$$lc/.xml2po.mo"; then \
            echo "rm -f $$lc/.xml2po.mo"; \
index 0f87cc797f71eb3a3515be6c17713d71131152dc..f5c53c7af44d2357c62f3092e3be0634e042ba35 100644 (file)
@@ -5,13 +5,13 @@
 ####################################
 
 if GTK_DOC_USE_LIBTOOL
-GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
+GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
 GTKDOC_RUN = $(LIBTOOL) --mode=execute
 else
 GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
-GTKDOC_RUN = sh -c
+GTKDOC_RUN =
 endif
 
 # We set GPATH here; this gives us semantics for GNU make
@@ -23,15 +23,18 @@ GPATH = $(srcdir)
 
 TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
 
-EXTRA_DIST =                           \
+SETUP_FILES = \
        $(content_files)                \
-       $(HTML_IMAGES)                  \
        $(DOC_MAIN_SGML_FILE)           \
        $(DOC_MODULE)-sections.txt      \
        $(DOC_MODULE)-overrides.txt
 
-DOC_STAMPS=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \
-          $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp
+EXTRA_DIST =                           \
+       $(SETUP_FILES)
+
+DOC_STAMPS=setup-build.stamp scan-build.stamp tmpl-build.stamp sgml-build.stamp \
+       html-build.stamp pdf-build.stamp \
+       setup.stamp tmpl.stamp sgml.stamp html.stamp pdf.stamp
 
 SCANOBJ_FILES =                 \
        $(DOC_MODULE).args       \
@@ -48,58 +51,98 @@ REPORT_FILES = \
 CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS)
 
 if ENABLE_GTK_DOC
-all-local: html-build.stamp
+if GTK_DOC_BUILD_HTML
+HTML_BUILD_STAMP=html-build.stamp
+else
+HTML_BUILD_STAMP=
+endif
+if GTK_DOC_BUILD_PDF
+PDF_BUILD_STAMP=pdf-build.stamp
+else
+PDF_BUILD_STAMP=
+endif
+
+all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
 else
 all-local:
 endif
 
-docs: html-build.stamp
+docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
 
 $(REPORT_FILES): sgml-build.stamp
 
+#### setup ####
+
+setup-build.stamp:
+       -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+          echo 'gtk-doc: Preparing build'; \
+          files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
+          if test "x$$files" != "x" ; then \
+              for file in $$files ; do \
+                  test -f $(abs_srcdir)/$$file && \
+                      cp -p $(abs_srcdir)/$$file $(abs_builddir)/; \
+              done \
+          fi; \
+          test -f $(abs_srcdir)/tmpl && \
+              cp -rp $(abs_srcdir)/tmpl $(abs_builddir)/; \
+       fi
+       @touch setup-build.stamp
+
+
+setup.stamp: setup-build.stamp
+       @true
+
+
 #### scan ####
 
 scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
        @echo 'gtk-doc: Scanning header files'
-       @-chmod -R u+w $(srcdir)
-       cd $(srcdir) && \
-         gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES)
-       if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; then \
-           CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \
+       @_source_dir='' ; \
+       for i in $(DOC_SOURCE_DIR) ; do \
+           _source_dir="$${_source_dir} --source-dir=$$i" ; \
+       done ; \
+       gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
+       @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
+           CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) ; \
        else \
-           cd $(srcdir) ; \
            for i in $(SCANOBJ_FILES) ; do \
                test -f $$i || touch $$i ; \
            done \
        fi
-       touch scan-build.stamp
+       @touch scan-build.stamp
 
 $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
        @true
 
 #### templates ####
 
-tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
+tmpl-build.stamp: setup.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
        @echo 'gtk-doc: Rebuilding template files'
-       @-chmod -R u+w $(srcdir)
-       cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
-       touch tmpl-build.stamp
+       @gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
+       @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+         if test -w $(abs_srcdir) ; then \
+           cp -rp $(abs_builddir)/tmpl $(abs_srcdir)/; \
+         fi \
+       fi
+       @touch tmpl-build.stamp
 
 tmpl.stamp: tmpl-build.stamp
        @true
 
-tmpl/*.sgml:
+$(srcdir)/tmpl/*.sgml:
        @true
 
-
 #### xml ####
 
-sgml-build.stamp: tmpl.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
+sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
        @echo 'gtk-doc: Building XML'
        @-chmod -R u+w $(srcdir)
-       cd $(srcdir) && \
-       gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $(MKDB_OPTIONS)
-       touch sgml-build.stamp
+       @_source_dir='' ; \
+       for i in $(DOC_SOURCE_DIR) ; do \
+           _source_dir="$${_source_dir} --source-dir=$$i" ; \
+       done ; \
+       gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)
+       @touch sgml-build.stamp
 
 sgml.stamp: sgml-build.stamp
        @true
@@ -108,19 +151,44 @@ sgml.stamp: sgml-build.stamp
 
 html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
        @echo 'gtk-doc: Building HTML'
-       @-chmod -R u+w $(srcdir)
-       rm -rf $(srcdir)/html
-       mkdir $(srcdir)/html
-       mkhtml_options=""; \
+       @rm -rf html
+       @mkdir html
+       @mkhtml_options=""; \
        gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-path"; \
        if test "$(?)" = "0"; then \
-         mkhtml_options=--path="$(srcdir)"; \
-       fi
-       cd $(srcdir)/html && gtkdoc-mkhtml $(mkhtml_options) $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
-       test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html )
+         mkhtml_options=--path="$(abs_srcdir)"; \
+       fi; \
+       cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
+       -@test "x$(HTML_IMAGES)" = "x" || \
+       for file in $(HTML_IMAGES) ; do \
+         if test -f $(abs_srcdir)/$$file ; then \
+           cp $(abs_srcdir)/$$file $(abs_builddir)/html; \
+         fi; \
+         if test -f $(abs_builddir)/$$file ; then \
+           cp $(abs_builddir)/$$file $(abs_builddir)/html; \
+         fi; \
+       done;
        @echo 'gtk-doc: Fixing cross-references'
-       cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
-       touch html-build.stamp
+       @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
+       @touch html-build.stamp
+
+#### pdf ####
+
+pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
+       @echo 'gtk-doc: Building PDF'
+       @rm -rf $(DOC_MODULE).pdf
+       @mkpdf_imgdirs=""; \
+       if test "x$(HTML_IMAGES)" != "x"; then \
+         for img in $(HTML_IMAGES); do \
+           part=`dirname $$img`; \
+           echo $$mkpdf_imgdirs | grep >/dev/null "\-\-imgdir=$$part "; \
+           if test $$? != 0; then \
+             mkpdf_imgdirs="$$mkpdf_imgdirs --imgdir=$$part"; \
+           fi; \
+         done; \
+       fi; \
+       gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_imgdirs $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
+       @touch pdf-build.stamp
 
 ##############
 
@@ -129,15 +197,18 @@ clean-local:
        rm -rf .libs
 
 distclean-local:
-       cd $(srcdir) && \
-         rm -rf xml $(REPORT_FILES) \
-                $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
+       rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
+           $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
+       if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+           rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \
+           rm -rf tmpl; \
+       fi
 
 maintainer-clean-local: clean
-       cd $(srcdir) && rm -rf xml html
+       rm -rf xml html
 
 install-data-local:
-       installfiles=`echo $(srcdir)/html/*`; \
+       @installfiles=`echo $(srcdir)/html/*`; \
        if test "$$installfiles" = '$(srcdir)/html/*'; \
        then echo '-- Nothing to install' ; \
        else \
@@ -157,12 +228,11 @@ install-data-local:
            mv -f $${installdir}/$(DOC_MODULE).devhelp \
              $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp; \
          fi; \
-         ! which gtkdoc-rebase >/dev/null 2>&1 || \
-           gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir} ; \
+         $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \
        fi
 
 uninstall-local:
-       if test -n "$(DOC_MODULE_VERSION)"; then \
+       @if test -n "$(DOC_MODULE_VERSION)"; then \
          installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
        else \
          installdir="$(DESTDIR)$(TARGET_DIR)"; \
@@ -182,15 +252,13 @@ endif
 
 dist-hook: dist-check-gtkdoc dist-hook-local
        mkdir $(distdir)/tmpl
-       mkdir $(distdir)/xml
        mkdir $(distdir)/html
-       -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
-       -cp $(srcdir)/xml/*.xml $(distdir)/xml
-       cp $(srcdir)/html/* $(distdir)/html
-       -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/
-       -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/
+       -cp $(build)/tmpl/*.sgml $(distdir)/tmpl
+       cp $(builddir)/html/* $(distdir)/html
+       -cp $(builddir)/$(DOC_MODULE).pdf $(distdir)/
+       -cp $(build)/$(DOC_MODULE).types $(distdir)/
+       -cp $(build)/$(DOC_MODULE)-sections.txt $(distdir)/
        cd $(distdir) && rm -f $(DISTCLEANFILES)
-       ! which gtkdoc-rebase >/dev/null 2>&1 || \
-         gtkdoc-rebase --online --relative --html-dir=$(distdir)/html
+       $(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html
 
 .PHONY : dist-hook-local docs
diff --git a/help/C/about.page b/help/C/about.page
new file mode 100644 (file)
index 0000000..0aa524f
--- /dev/null
@@ -0,0 +1,43 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      xmlns:e="http://projectmallard.org/experimental/"
+      type="topic"
+      id="about">
+
+  <info>
+    <link type="seealso" xref="index"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      Information about <app>gLabels</app>.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>About <app>gLabels</app></title>
+
+    <p> <app>gLabels</app> was written by <link href="mailto:evins@snaught.com">Jim Evins</link>.
+      To find more information about <app>gLabels</app>, please visit the 
+      <link href="http://glabels.org" type="http"><app>gLabels</app> Web
+       page</link>. </p>
+    <p>
+      To report a bug or make a suggestion regarding this application or
+      this manual, follow the directions at the
+      <link href="http://glabels.org/contact/" type="http"><app>gLabels</app> Contact Page</link>.
+    </p>
+
+    <p> This program is distributed under the terms of the GNU
+      General Public license as published by the Free Software
+      Foundation; either version 3 of the License, or (at your option)
+      any later version. A copy of this license can be found at this
+      <link href="ghelp:gpl" type="help">link</link>, or in the file
+      COPYING included with the source code of this program. </p>
+</page>
diff --git a/help/C/basicusage.page b/help/C/basicusage.page
new file mode 100644 (file)
index 0000000..e2f22b1
--- /dev/null
@@ -0,0 +1,90 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      xmlns:e="http://projectmallard.org/experimental/"
+      type="guide"
+      id="basicusage">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      Handling files and quit the application.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+   <title>Basic usage</title>
+    
+    <section>
+    <title>To open a file</title>
+
+      <p>To open a file, choose 
+        <guiseq><gui>File</gui><gui>Open</gui>
+       </guiseq> to display the <gui>Open File</gui> dialog.
+        Select the file that you want to open, then click
+        <gui>OK</gui>. The file is displayed in the display area
+        of the <app>gLabels</app> window. </p>
+
+      <p>You can also open multiple files in
+        <app>gLabels</app>. The application creates a separate
+        application window for each open file.</p>
+
+      <p>The application records the paths and filenames of the
+        most recent files that you have edited and displays the files as menu
+        items on the <guiseq><gui>File</gui><gui>Recent Files</gui>
+        </guiseq> menu.</p>
+     </section>
+
+     <section id="closefile">
+    <title>To close a file</title>
+
+      <p>To close the current document, choose
+        <guiseq><gui>File</gui>
+        <gui>Close</gui></guiseq> to close the application
+        window.  If the current document is modified, a confirmation dialog
+        will be presented, allowing you to save the document or cancel
+        the command.  If the window being closed is the only open window,
+        <app>gLabels</app> will exit.</p>
+     </section>
+     
+     <section>
+    <title>To save a file</title>
+
+      <p>You can save files in the following ways:</p>
+
+      <list><item>
+
+         <p>To save changes to an existing file, choose 
+            <guiseq><gui>File</gui>
+            <gui>Save</gui></guiseq>. </p>
+
+       </item>
+        <item>
+
+         <p>To save a new file or to save an existing file under a new
+            filename, choose <guiseq><gui>File</gui>
+            <gui>Save As</gui></guiseq>. Enter a name
+            for the file in the <gui>Save As</gui> dialog box,
+            then click <gui>OK</gui>.</p>
+
+       </item>
+      </list>
+     </section>
+
+     <section>
+    <title>To quit <app>gLabels</app></title>
+
+      <p>To quit <app>gLabels</app>, choose <guiseq><gui>File</gui>
+        <gui>Quit</gui></guiseq>. This is equivalent to closing all open windows. 
+        See <link xref="basicusage#closefile"/>.</p>
+     </section>
+</page>
diff --git a/help/C/createnew.page b/help/C/createnew.page
new file mode 100644 (file)
index 0000000..f98a2fc
--- /dev/null
@@ -0,0 +1,93 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      xmlns:e="http://projectmallard.org/experimental/"
+      type="guide"
+      id="createnew">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      Create new objects within your document.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>To create new objects</title>
+
+      <p>Objects are created by choosing the appropriate selection under
+        the <guiseq><gui>Objects</gui><gui>Create Object</gui></guiseq> submenu
+        or the <gui>Drawing Toolbar</gui>.  This will place the display area into
+        object creation mode as indicated by its cursor.  To return to the default
+        object selection mode without creating an object, choose
+        <guiseq><gui>Objects</gui><gui>Select Mode</gui></guiseq>.  This will
+        return the display area's cursor to the default selection arrow.</p>
+
+      <p>The following describes the object creation mode for each object
+        type:</p>
+
+       <section>
+         <title>Text</title>
+           <p>Click the desired location of the upper left corner of the
+              text object.  New text objects are initialized with the
+              string "Text."  To change this text, or other properties, see
+              <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Box</title>
+           <p>Click the desired location of the upper left corner of the
+              box object and drag to the desired location of the lower right
+              corner.  If you simply click in a single location, a square
+              box will be created. To change properties of the box object, see
+              <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Line</title>
+           <p>Click the desired location of one end of the
+              line object and drag to the desired location of the other end.
+              If you simply click in a single location, a diagonal line
+              will be created. To change properties of the line object, see
+              <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Ellipse</title>
+           <p>Click the desired location of the upper left corner of the
+              ellipse object and drag to the desired location of the lower
+              right corner.  If you simply click in a single location, a circle
+              will be created. To change properties of the ellipse object, see
+              <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Image</title>
+           <p>Click the desired location of the upper left corner of the
+              image object and drag to the desired location of the lower
+              right corner.  If you simply click in a single location, a square
+              will be created.  New image objects are initialized with a
+              simple checkerboard image.  To change this image, or other
+              properties of the image object, see
+              <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Barcode</title>
+           <p>Click the desired location of the upper left corner of the
+              barcode object.  New barcode objects are initialized to a
+              POSTNET barcode with representative data.  To change data
+              and properties of the barcode object, see
+              <link xref="editprop"/>.</p>
+       </section>
+
+</page>
diff --git a/help/C/customize.page b/help/C/customize.page
new file mode 100644 (file)
index 0000000..1dd3140
--- /dev/null
@@ -0,0 +1,129 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      xmlns:e="http://projectmallard.org/experimental/"
+      type="guide"
+      id="customize">
+
+  <info>
+    <link type="guide" xref="index#advanced"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Customize <app>gLabels</app> to match your needs.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+    
+  <!-- ============= Customization ============================= -->
+  <!-- Use this section to describe how to customize the application. -->
+    <title>Settings</title> 
+    <p>To configure <app>gLabels</app>, choose 
+      <guiseq> 
+       <gui>Settings</gui> 
+       <gui>Preferences</gui> 
+      </guiseq>. The 
+      <gui>Preferences</gui> dialog contains the following tabbed
+      sections:</p>
+
+  <section id="prefs-locale" style="2column">
+    <title>Locale</title>
+       <section>
+       <title>Units</title>
+       <p>Use this radio button group to specify your preferred units.
+              Select one of the following options:</p>
+          <list>
+               <item>
+               <p><gui>Points</gui></p>
+               <p>Use points (1 point = 1/72 in = 0.352778 mm).</p>
+               </item>
+               <item>
+               <p><gui>Inches</gui></p>
+               <p>Use Inches.</p>
+               </item>
+               <item>
+               <p><gui>Millimeters</gui></p>
+               <p>Use Millimeters.</p>
+               </item>
+          </list>
+          <p>Default: <gui>Inches</gui>.</p>
+       </section>
+
+       <section>
+       <title>Default page size</title>
+       <p>Use this radio button group to specify your prefered page size.
+              This will make it quicker for you to locate media types when creating a new
+              label or card.</p>
+          <list>
+               <item>
+               <p><gui>US Letter</gui></p>
+               <p>Most of your media will be of the US Letter page size (8.5 x 11 inches).</p>
+               </item>
+               <item>
+               <p><gui>ISO A4</gui></p>
+               <p>Most of your media will be of the ISO A4 page size (210 x 297 mm).</p>
+               </item>
+          </list>
+          <p>Default: <gui>US Letter</gui>.</p>                
+       </section>
+    </section>
+
+  <section id="prefs-defaults" style="2column">
+    <title>Object Defaults</title>
+
+       <section>
+       <title>Text</title>
+       <p>Use these controls to set the default properties of new text objects.
+              These properties are:</p>
+          <list>
+               <item>
+               <p><gui>Font</gui></p>
+               <p>These controls are used to select font family and font size, and
+                  whether the font should bold or in italics.</p>
+               </item>
+               <item>
+               <p><gui>Color</gui></p>
+               <p>This control selects the default text color.</p>
+               </item>
+               <item>
+               <p><gui>Alignment</gui></p>
+               <p>These controls are used to select the default text alignment (left, center or right).</p>
+               </item>
+          </list>
+       </section>
+
+       <section>
+       <title>Line</title>
+       <p>Use these controls to set the default properties of lines and outlines of
+              new objects.  These properties are:</p>
+          <list>
+               <item>
+               <p><gui>Width</gui></p>
+               <p>This control selects the default line width.</p>
+               </item>
+               <item>
+               <p><gui>Color</gui></p>
+               <p>This control selects the default line color.</p>
+               </item>
+          </list>
+       </section>
+
+       <section>
+       <title>Fill</title>
+       <p>Use this control to set the default fill property of
+              new objects.  This property is:</p>
+          <list>
+               <item>
+               <p><gui>Color</gui></p>
+               <p>This control selects the default fill color.</p>
+               </item>
+          </list>
+       </section>
+       </section>
+
+</page>
diff --git a/help/C/customtemplate.page b/help/C/customtemplate.page
new file mode 100644 (file)
index 0000000..2de0b9d
--- /dev/null
@@ -0,0 +1,38 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      xmlns:e="http://projectmallard.org/experimental/"
+      type="guide"
+      id="customtemplate">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      Create your own templates for stationery products.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>To create a custom template</title>
+
+      <p>To create a new custom template, choose 
+        <guiseq><gui>File</gui>
+       <gui>Template Designer ...</gui></guiseq>
+       to display the <gui>Template Designer</gui> dialog.
+        This dialog will assist you in creating a custom template for
+        most types of label or card stationery that you may encounter.</p>
+
+      <p>If you prefer, you can create your templates manually.
+        For this option see <link xref="mancreate"/>
+      </p>
+
+</page>
diff --git a/help/C/editprop.page b/help/C/editprop.page
new file mode 100644 (file)
index 0000000..07b4a40
--- /dev/null
@@ -0,0 +1,238 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      xmlns:e="http://projectmallard.org/experimental/"
+      type="guide"
+      id="editprop">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      Change the properties of objects.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>To edit object properties</title>
+
+    <section id="glabels-object-properties">
+
+      <p>Most object properties can be modified through the object
+        editor sidebar, illustrated below.  To use the object editor,
+        a single object must first be selected.  See
+        <link xref="select" />.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/object-editor-sidebar.png" mime="image/png" style="right">
+               <p>Print Copy Controls</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>The object editor will contain a subset of the following
+        tabbed sections, depending on object type:</p>
+
+      <section id="object-editor-text">
+       <title>Text Tabbed Section (Text objects)</title>
+
+       <p>This section contains a small editor for changing the content
+          of a text object.  It also contains a dropdown menu of available
+          document merge keys, that can be inserted into text.</p>
+
+      </section>
+
+      <section id="object-editor-image">
+       <title>Image Tabbed Section (Image objects)</title>
+
+       <p>This section contains a file entry with preview to select
+          image files.  The browse button can be used to easily locate
+          image files.  Alternatively, a document merge key can be used
+          instead to provide a filename at print time.</p>
+
+      </section>
+
+      <section id="object-editor-data">
+       <title>Data Tabbed Section (Barcode objects)</title>
+
+       <p>This section contains a text entry to enter literal barcode
+          data.  Alternatively, a document merge key can be used to
+          provide this data at print time.</p>
+
+      </section>
+
+      <section id="object-editor-style">
+       <title>Style Tabbed Section (Text objects)</title>
+
+       <p>This section contains controls to select text properties,
+          including font family, font size, font weight, color, and
+          text justification.</p>
+
+      </section>
+
+      <section id="object-editor-barcode">
+       <title>Style Tabbed Section (Barcode objects)</title>
+
+       <p>This section contains controls to select barcode properties,
+          including barcode style, color, whether to print text, and whether
+          to include a checksum digit.</p>
+
+      </section>
+
+      <section id="object-editor-line">
+       <title>Line Tabbed Section</title>
+
+       <p>This section contains controls to select properties of lines
+          and outlines.  These properties include line width and color.</p>
+
+      </section>
+
+      <section id="object-editor-fill">
+       <title>Fill Tabbed Section</title>
+
+       <p>This section contains controls to select fill properties of box
+          and ellipse objects.  Currently the only fill property is fill
+          color.</p>
+
+      </section>
+
+      <section id="object-editor-size">
+       <title>Size Tabbed Section (All except line objects)</title>
+
+       <p>This section contains controls to select the width and height
+          of an object.  A checkbox is provided, so that the current aspect
+          ratio can be locked while manipulating the width and height controls.
+          Image objects also provide a button to reset the size to the
+          image's natural size (Assumes 72DPI).</p>
+
+      </section>
+
+      <section id="object-editor-size-line">
+       <title>Size Tabbed Section (Line objects)</title>
+
+       <p>This section contains controls to select the length and angle
+          of a line object.</p>
+
+      </section>
+
+      <section id="object-editor-position">
+       <title>Position Tabbed Section</title>
+
+       <p>This section contains controls to change the position of an
+          object.</p>
+
+      </section>
+
+
+      <section id="object-editor-shadow">
+       <title>Shadow Tabbed Section (All except barcode objects)</title>
+
+       <p>This section contains controls to add a shadow to an object.</p>
+
+      </section>
+
+
+    </section>
+
+<!-- ============= Other Manipulations of Objects ========= -->
+    <section id="glabels-object-manipulation"> 
+      <title>Other Manipulations of Objects</title>
+
+      <p>Objects can also be manipulated in the following ways.</p>
+
+      <section id="other-moving-resizing">
+       <title>Moving and Resizing Objects</title>
+
+       <p>Objects can be moved by simply clicking on a selected
+          object and dragging the object to its new location.  If the object
+          is part of an aggregate selection, all objects in the selection
+          will move with the object being dragged, maintaining their relative
+          positions to one another.  If no object is selected, clicking on
+          an object will create a new selection containing that object.
+          See <link xref="select" />.</p>
+
+       <p>A selected object can be resized by clicking one of its resize
+          handle and dragging it to obtain the new size.</p>
+
+      </section>
+
+      <section id="other-stacking-order">
+       <title>Changing Stacking Order</title>
+
+       <p>Stacking order refers to relative position in the z-axis of
+          objects.  That is when objects overlap, which object will appear
+          on top of the other.  By default, newer objects will appear above
+          older objects.  To change this order, select one or more objects
+          and choose <guiseq> <gui>Objects</gui>
+          <gui>Order</gui>
+          <gui>Bring to Front</gui> </guiseq>
+          to raise the selection to the top of the stacking
+          order, or choose <guiseq> <gui>Objects</gui>
+          <gui>Order</gui>
+          <gui>Send to Back</gui> </guiseq>
+          to lower the selection to the bottom of the
+          stacking order.  These menuitems are also available by right-clicking
+          the display area when there is a non-empty selection.</p>
+
+      </section>
+
+      <section id="other-rotating-flipping">
+       <title>Rotating and Flipping Objects</title>
+
+       <p>Objects can be rotated 90 degrees in either direction, or flipped
+          horizontally or vertically, by choosing the appropriate menuitem
+          in the  <guiseq> <gui>Objects</gui>
+          <gui>Rotate/Flip</gui> </guiseq> sub-menu.  These
+          menuitems are also available by right-clicking
+          the display area when there is a non-empty selection.</p>
+
+         <note>
+         <p>
+         This feature could be useful when you are designing CD box inlays. For 
+          the spine caption, you need vertical aligned text. After you have created
+          a basic text box, choose <guiseq> <gui>Objects</gui><gui>Rotate/Flip</gui> </guiseq>
+          to rotate the text box according to your needs.
+         </p>
+         </note>
+
+      </section>
+
+      <section id="other-alignment">
+       <title>Aligning Objects</title>
+
+       <p>Objects can be aligned horizontally or vertically, relative to
+          one another, or relative to the center line of the label, by
+          choosing the appropriate menuitem from the  <guiseq>
+          <gui>Objects</gui>
+          <gui>Align Horizontal</gui>
+          </guiseq> or  <guiseq> <gui>Objects</gui>
+          <gui>Align Vertical</gui> </guiseq> sub-menus.
+          These menuitems are also available by right-clicking
+          the display area when there is a non-empty selection.</p>
+
+      </section>
+
+      <section id="other-property-bar">
+       <title>Using the Property Bar</title>
+
+       <p>The property bar can be used to change some common properties
+          of objects en-masse.  These properties include font family, font
+          size, font weight, text alignment, text color, fill color, line
+          or outline color, and line width.  The property bar also controls
+          the defaults for these properties for any newly created objects.
+          </p>
+
+      </section>
+
+
+
+    </section>
+
+</page>
diff --git a/help/C/figures/glabels-logo.png b/help/C/figures/glabels-logo.png
new file mode 100644 (file)
index 0000000..a99548d
Binary files /dev/null and b/help/C/figures/glabels-logo.png differ
diff --git a/help/C/figures/glabels-template-cd-label.png b/help/C/figures/glabels-template-cd-label.png
new file mode 100644 (file)
index 0000000..2c50586
Binary files /dev/null and b/help/C/figures/glabels-template-cd-label.png differ
diff --git a/help/C/figures/glabels-template-cd.png b/help/C/figures/glabels-template-cd.png
deleted file mode 100644 (file)
index 0a3de3b..0000000
Binary files a/help/C/figures/glabels-template-cd.png and /dev/null differ
diff --git a/help/C/figures/glabels-template-circle-label.png b/help/C/figures/glabels-template-circle-label.png
new file mode 100644 (file)
index 0000000..337caae
Binary files /dev/null and b/help/C/figures/glabels-template-circle-label.png differ
diff --git a/help/C/figures/glabels-template-ellipse-label.png b/help/C/figures/glabels-template-ellipse-label.png
new file mode 100644 (file)
index 0000000..b3b3013
Binary files /dev/null and b/help/C/figures/glabels-template-ellipse-label.png differ
diff --git a/help/C/figures/glabels-template-label.png b/help/C/figures/glabels-template-label.png
deleted file mode 100644 (file)
index 87a724b..0000000
Binary files a/help/C/figures/glabels-template-label.png and /dev/null differ
index c71279520eb56db0701e359666bfb403f1b3e953..17db6bc80c7f919f3b75de59da454ead0a844498 100644 (file)
Binary files a/help/C/figures/glabels-template-layout.png and b/help/C/figures/glabels-template-layout.png differ
diff --git a/help/C/figures/glabels-template-rect-label.png b/help/C/figures/glabels-template-rect-label.png
new file mode 100644 (file)
index 0000000..e9d5b03
Binary files /dev/null and b/help/C/figures/glabels-template-rect-label.png differ
diff --git a/help/C/figures/introduction-glabels-main-window.png b/help/C/figures/introduction-glabels-main-window.png
new file mode 100644 (file)
index 0000000..7d7b389
Binary files /dev/null and b/help/C/figures/introduction-glabels-main-window.png differ
diff --git a/help/C/figures/main-window-empty.png b/help/C/figures/main-window-empty.png
deleted file mode 100644 (file)
index 94a2ab4..0000000
Binary files a/help/C/figures/main-window-empty.png and /dev/null differ
index 72221b95cf2781abf2e3ba10fb28f9e89afb39e3..19d68beef82a8a74289f9d58ef5ad537b38e5bc1 100644 (file)
Binary files a/help/C/figures/merge-ex1-1.png and b/help/C/figures/merge-ex1-1.png differ
index 37ea403cb7802ec5a81b186566ab1e41584e100c..f6633463c57a938d20f778ab06ccfab7c3d076e4 100644 (file)
Binary files a/help/C/figures/merge-ex1-2.png and b/help/C/figures/merge-ex1-2.png differ
index ede4240ae16378988e884393bccede077a63df88..b9ad3477e82f1f04d36c59b5a04e9522707c72bf 100644 (file)
Binary files a/help/C/figures/merge-ex1-3.png and b/help/C/figures/merge-ex1-3.png differ
index 808aef68f33b9c2265c0539fcdd7367942513779..06a5743a5500b539e458b6cc79025acf0d624616 100644 (file)
Binary files a/help/C/figures/merge-ex1-4.png and b/help/C/figures/merge-ex1-4.png differ
index a41e3d6755e263975e0f3f98ee5b9b680711d49b..61be56c79da7cab56b924b7c5ea8b2d4bdeb3959 100644 (file)
Binary files a/help/C/figures/merge-ex2-1.png and b/help/C/figures/merge-ex2-1.png differ
index 5de11e0b45a07955fd6421305643c22997085d6a..580edc2c44f4c137f29b66bed1f22e73781ce413 100644 (file)
Binary files a/help/C/figures/merge-ex2-2.png and b/help/C/figures/merge-ex2-2.png differ
index c222d9cdf7f9960aef682fdeffd322050ddf1c5c..646618068b8191008d2a4af55a86fed8af47e5a4 100644 (file)
Binary files a/help/C/figures/merge-ex2-3.png and b/help/C/figures/merge-ex2-3.png differ
index 73996dd983515cdb81a670e297d5ea84b795df56..3f53adfaf83d7a59b2d24a2d04147bbf9d200071 100644 (file)
Binary files a/help/C/figures/merge-ex2-4.png and b/help/C/figures/merge-ex2-4.png differ
diff --git a/help/C/figures/merge-ex3-1.png b/help/C/figures/merge-ex3-1.png
deleted file mode 100644 (file)
index 6395cd0..0000000
Binary files a/help/C/figures/merge-ex3-1.png and /dev/null differ
diff --git a/help/C/figures/merge-ex3-2.png b/help/C/figures/merge-ex3-2.png
deleted file mode 100644 (file)
index 09c7bea..0000000
Binary files a/help/C/figures/merge-ex3-2.png and /dev/null differ
index 1c41426349ac08bc495cadfdb3b22365516f7565..118ac0aba818158c34f649a4c1b2fef0dc1c7f4c 100644 (file)
Binary files a/help/C/figures/object-editor-sidebar.png and b/help/C/figures/object-editor-sidebar.png differ
index 029add8013324f5b531fa8784cd91085d713a4f1..bcac68680195c9b0438e2ba34779df0133ddac0d 100644 (file)
Binary files a/help/C/figures/print-copies.png and b/help/C/figures/print-copies.png differ
index 86f2e929f80bb611e0a1f5ce3c8515a4ccfc6fd3..0d01733edf2bde30be435bf0fce2736d9d460c8b 100644 (file)
Binary files a/help/C/figures/print-merge.png and b/help/C/figures/print-merge.png differ
diff --git a/help/C/figures/skip-fields-output.png b/help/C/figures/skip-fields-output.png
new file mode 100644 (file)
index 0000000..1cdf3da
Binary files /dev/null and b/help/C/figures/skip-fields-output.png differ
diff --git a/help/C/figures/skip-fields-screenshot.png b/help/C/figures/skip-fields-screenshot.png
new file mode 100644 (file)
index 0000000..78ddb9b
Binary files /dev/null and b/help/C/figures/skip-fields-screenshot.png differ
diff --git a/help/C/glabels.xml b/help/C/glabels.xml
deleted file mode 100644 (file)
index 8e17cb3..0000000
+++ /dev/null
@@ -1,2251 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
-"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
-  <!ENTITY legal SYSTEM "legal.xml">
-  <!ENTITY appversion "2.2.6">
-  <!ENTITY manrevision "2.2.6">
-  <!ENTITY date "December 2007">
-  <!ENTITY app "<application>gLabels</application>">
-  <!-- Information about the entities
-       The legal.xml file contains legal information, there is no need to edit the file. 
-       Use the appversion entity to specify the version of the application.
-       Use the manrevision entity to specify the revision number of this manual.
-       Use the date entity to specify the release date of this manual.
-       Use the app entity to specify the name of the application. -->
-]>
-
-
-<!-- 
-      (Do not remove this comment block.)
-  Maintained by the GNOME Documentation Project
-  http://developer.gnome.org/projects/gdp
-  Template version: 2.0 beta
-  Template last modified Apr 11, 2002
--->
-
-<!-- =============Document Header ============================= -->
-<article id="index" lang="en">
-<!-- please do not change the id; for translations, change lang to -->
-<!-- appropriate code -->
-  <articleinfo> 
-    <title>&app; Manual V&manrevision;</title>       
-       <abstract role="description">
-       <para> 
-        User manual for the &app; label and business card creation program
-       </para>
-    </abstract>
-    <copyright> 
-      <year>2003-2009</year> 
-      <holder>Jim Evins</holder> 
-    </copyright>
-       <publisher> 
-               <publishername> Jim Evins </publishername> 
-       </publisher> 
-
-   &legal;
-   <!-- This file  contains link to license for the documentation (GNU FDL), and 
-        other legal stuff such as "NO WARRANTY" statement. Please do not change 
-       any of this. -->
-
-    <authorgroup> 
-      <author role="maintainer"> 
-               <firstname>Jim</firstname> 
-               <surname>Evins</surname> 
-      </author> 
-      
-<!-- This is appropriate place for other contributors: translators,
-     maintainers,  etc. Commented out by default.
-     
-      <othercredit role="translator">
-               <firstname>Latin</firstname> 
-               <surname>Translator 1</surname> 
-               <affiliation> 
-                       <orgname>Latin Translation Team</orgname> 
-                       <address> <email>translator@gnome.org</email> </address> 
-               </affiliation>
-               <contrib>Latin translation</contrib>
-      </othercredit>
--->
-    </authorgroup>
-
-
-<!-- According to GNU FDL, revision history is mandatory if you are -->
-<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
-<!-- Remember to remove the &manrevision; entity from the revision entries other
--->
-<!-- than the current revision. -->
-<!-- The revision numbering system for GNOME manuals is as follows: -->
-<!-- * the revision number consists of two components -->
-<!-- * the first component of the revision number reflects the release version of the GNOME desktop. -->
-<!-- * the second component of the revision number is a decimal unit that is incremented with each revision of the manual. -->
-<!-- For example, if the GNOME desktop release is V2.x, the first version of the manual that -->
-<!-- is written in that desktop timeframe is V2.0, the second version of the manual is V2.1, etc. -->
-<!-- When the desktop release version changes to V3.x, the revision number of the manual changes -->
-<!-- to V3.0, and so on. -->  
-    <revhistory>
-      <revision> 
-               <revnumber>gLabels Manual V2.2.6</revnumber> 
-               <date>October 2009</date> 
-               <revdescription> 
-                       <para role="author">Mario Blättermann
-               <email>mariobl@gnome.org</email>
-                       </para>
-                       <para role="publisher">Jim Evins</para>
-               </revdescription> 
-      </revision> 
-      <revision> 
-               <revnumber>gLabels Manual V2.2</revnumber> 
-               <date>December 2007</date> 
-               <revdescription> 
-                       <para role="author">Jim Evins
-               <email>evins@snaught.com</email>
-                       </para>
-                       <para role="publisher">Jim Evins</para>
-               </revdescription> 
-      </revision> 
-    </revhistory> 
-
-    <releaseinfo>This manual describes version &appversion; of &app;.
-    </releaseinfo> 
-    <legalnotice> 
-      <title>Feedback</title> 
-      <para>To report a bug or make a suggestion regarding the &app; application or
-      this manual, follow the directions in the <ulink url="http://glabels.sourceforge.net/contact/"
-         type="http">&app; Contact Page</ulink>. 
-      </para>
-<!-- Translators may also add here feedback address for translations -->
-    </legalnotice> 
-  </articleinfo> 
-
-  <indexterm zone="index"> 
-    <primary>gLabels</primary> 
-  </indexterm> 
-  <indexterm zone="index"> 
-    <primary>glabels</primary> 
-  </indexterm>
-
-
-
-
-<!-- ============= Document Body ============================= -->
-<!-- ============= Introduction ============================== -->
-<!-- Use the Introduction section to give a brief overview of what
-     the application is and what it does. -->
-  <sect1 id="glabels-introduction"> 
-    <title>Introduction</title> 
-
-    <para>The &app; application is a lightweight program for creating labels
-      and business cards for the <systemitem>GNOME desktop</systemitem>
-      environment.  It is designed to work with various laser/ink-jet
-      peel-off label and business card sheets that you'll find at most
-      office supply stores.</para>
-
-  </sect1>
-
-
-
-
-<!-- =========== Getting Started ============================== -->
-<!-- Use the Getting Started section to describe the steps required
-     to start the application and to describe the user interface components
-     of the application. If there is other information that it is important
-     for readers to know before they start using the application, you should
-     also include this information here. 
-     If the information about how to get started is very short, you can 
-     include it in the Introduction and omit this section. -->
-
-  <sect1 id="glabels-getting-started"> 
-    <title>Getting Started</title> 
-
-    <sect2 id="glabels-start">
-    <title>To Start &app;</title>
-    <para>You can start &app; in the following ways:
-    </para> 
-    <variablelist>
-       <varlistentry>
-               <term><guimenu>Applications</guimenu> menu</term>
-               <listitem>
-               <para>Choose 
-               <menuchoice>
-               <guisubmenu>Office</guisubmenu>
-               <guimenuitem>gLabels</guimenuitem>
-               </menuchoice>. </para>
-               </listitem>
-       </varlistentry>
-       <varlistentry>
-               <term>Command line</term>
-               <listitem>
-               <para>Type <command>glabels</command>,
-                then press <keycap>Return</keycap>:</para>
-               </listitem>
-       </varlistentry>
-    </variablelist>
-    </sect2>
-
-    <sect2 id="glabels-when-start">
-    <title>When You Start &app;</title>
-    <para>When you start &app;, the following window is displayed.</para>
-
-    <!-- ==== Figure ==== -->
-      <figure id="mainwindow-fig"> 
-       <title>&app; Start Up Window</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata
-               fileref="figures/main-window-empty.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-    <!-- ==== End of Figure ==== -->
-
-    <!-- Include any descriptions of the GUI immediately after the screenshot of the main UI, -->
-    <!-- for example, the items on the menubar and on the toolbar. This section is optional. -->
-
-    <para>The &app; window contains the following elements:
-    </para>
-      <variablelist>
-       <varlistentry>
-       <term>Menubar. </term>
-       <listitem>
-           <para>The menus on the menubar contain all of the commands you
-              need to create and edit labels and business cards in 
-             &app;.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Main toolbar. </term>
-       <listitem>
-           <para>The main toolbar contains a subset of common File and Edit
-              commands that you can access from the menubar.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Drawing toolbar.</term>
-       <listitem>
-           <para>The drawing toolbar contains a subset of commands for
-              editing the current &app; document.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Display area.</term>
-       <listitem>
-           <para>The display area is the main drawing interface to
-              &app;.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Object sidebar.</term>
-       <listitem>
-           <para>The object sidebar provides an interface for viewing and
-              editing all properties of an individual object. </para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Properties toolbar. </term>
-       <listitem>
-           <para>The properties toolbar contains a set of tools to
-              manipulate the properties of selected objects and set default
-              properties for new objects.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Statusbar. </term>
-       <listitem>
-           <para>The statusbar displays information about current
-              &app; activity and contextual
-              information about the menu items. </para>
-       </listitem>
-       </varlistentry>
-       </variablelist>
-    </sect2>
-  </sect1>
-
-
-
-
-<!-- ================ Usage ================================ -->
-<!-- Use this section to describe how to use the application to perform the tasks for 
-  which the application is designed. -->
-  <sect1 id="glabels-usage"> 
-    <title>Usage</title> 
-
-<!-- ============= To create a new file ============================= -->
-    <sect2 id="glabels-open-new"> 
-      <title>To Create a New Label or Card</title>
-
-      <para>To create a new label or business card, choose 
-        <menuchoice> <guimenu>File</guimenu> <guimenuitem>New</guimenuitem>
-       </menuchoice>
-       to display the <guilabel>New Label or Card</guilabel> dialog. Select
-        the media type and orientation for the new document,
-       then click <guibutton>OK</guibutton>. A new document is
-       displayed in the display area of the &app;
-        window. </para>
-
-      <para>If your particular media type is missing from this dialog,
-        see <xref linkend="glabels-create-template"/></para>
-
-    </sect2>
-
-<!-- ============= To Open a File ============================= -->
-    <sect2 id="glabels-open-file"> 
-      <title>To Open a File</title>
-
-      <para>To open a file, choose 
-        <menuchoice> <guimenu>File</guimenu> <guimenuitem>Open</guimenuitem>
-       </menuchoice> to display the <guilabel>Open File</guilabel> dialog.
-        Select the file that you want to open, then click
-        <guibutton>OK</guibutton>. The file is displayed in the display area
-        of the &app; window. </para>
-
-      <para>You can also open multiple files in
-        &app;. The application creates a separate
-        application window for each open file.</para>
-
-      <para>The application records the paths and filenames of the
-        most recent files that you have edited and displays the files as menu
-        items on the <menuchoice>
-        <guimenu>File</guimenu><guisubmenu>Recent Files</guisubmenu>
-        </menuchoice> menu.</para>
-
-    </sect2>
-
-<!-- ============= To Open Multiple Files from the Command Line ========= -->
-    <sect2 id="glabels-run-from-cmd-line"> 
-      <title>To Open Multiple Files from a Command Line</title>
-
-      <para>You can run &app; from a command line
-       and open a single file or multiple files. To open multiple files from
-        a command line, type the following command, then press
-        <keycap>Return</keycap>:</para>
-
-      <para><command>glabels
-      <replaceable>file1.glabels file2.glabels file3.glabels</replaceable>
-      </command></para>
-
-      <para>When the application starts, the files that you specify are
-       displayed in separate &app; windows.</para>
-
-    </sect2>
-
-<!-- ============= To Save a File ========= -->
-    <sect2 id="glabels-save-file"> 
-      <title>To Save a File</title>
-
-      <para>You can save files in the following ways:</para>
-
-      <itemizedlist> 
-       <listitem>
-
-         <para>To save changes to an existing file, choose 
-            <menuchoice> <guimenu>File</guimenu>
-            <guimenuitem>Save</guimenuitem> </menuchoice>. </para>
-
-       </listitem>
-       <listitem>
-
-         <para>To save a new file or to save an existing file under a new
-            filename, choose <menuchoice> <guimenu>File</guimenu>
-            <guimenuitem>Save As</guimenuitem> </menuchoice>. Enter a name
-            for the file in the <guilabel>Save As</guilabel> dialog box,
-            then click <guibutton>OK</guibutton>.</para>
-
-       </listitem>
-      </itemizedlist>
-
-    </sect2>
-
-<!-- ============= To Change Label Properties ========= -->
-    <sect2 id="glabels-label-properties"> 
-      <title>To Change Label Properties</title>
-
-      <para>To change the media type and/or orientation of a label, choose
-        <menuchoice> <guimenu>File</guimenu>
-        <guimenuitem>Properties</guimenuitem> </menuchoice> to display the
-        <guilabel>Label properties</guilabel> dialog.  Select the
-        new media type and orientation for the document, then click
-        <guibutton>OK</guibutton>.</para>
-
-    </sect2>
-
-<!-- ============= To create a custom template ======================= -->
-    <sect2 id="glabels-create-template"> 
-      <title>To Create a Custom Template</title>
-
-      <para>To create a new custom template, choose 
-        <menuchoice> <guimenu>File</guimenu>
-       <guimenuitem>Template Designer ...</guimenuitem> </menuchoice>
-       to display the <guilabel>Template Designer</guilabel> dialog.
-        This dialog will assist you in creating a custom template for
-        most types of label or card stationery that you may encounter.</para>
-
-      <para>If you prefer, you can create your templates manually.
-        For this option see <xref linkend="glabels-manual-create-template"/>
-      </para>
-
-    </sect2>
-
-<!-- ============= To Close a File ========= -->
-    <sect2 id="glabels-close-file"> 
-      <title>To Close a File</title>
-
-      <para>To close the current document, choose
-        <menuchoice> <guimenu>File</guimenu>
-        <guimenuitem>Close</guimenuitem> </menuchoice> to close the application
-        window.  If the current document is modified, a confirmation dialog
-        will be presented, allowing you to save the document or cancel
-        the command.  If the window being closed is the only open window,
-        &app; will exit.</para>
-
-    </sect2>
-
-<!-- ============= To Quit ========= -->
-    <sect2 id="glabels-quit"> 
-      <title>To Quit &app;</title>
-
-      <para>To quit &app;, choose
-        <menuchoice> <guimenu>File</guimenu>
-        <guimenuitem>Quit</guimenuitem> </menuchoice>. This is equivalent
-        to closing all open windows.  See
-        <xref linkend="glabels-close-file"/>.</para>
-
-    </sect2>
-
-<!-- ============= To Print Labels and Cards ========= -->
-    <sect2 id="glabels-print-file"> 
-      <title>To Print Labels or Cards</title>
-
-      <para>To print labels or cards, choose
-        <menuchoice> <guimenu>File</guimenu> <guimenuitem>Print</guimenuitem>
-       </menuchoice> to display the <guilabel>Print</guilabel> dialog.
-        Once print options have been selected, click <guilabel>Print</guilabel>
-        to print the labels or cards.  To simply preview the results,
-        click <guilabel>Print Preview</guilabel> instead.</para>
-
-      <para>The <guilabel>Print</guilabel> dialog allows you to specify the
-        following print options:</para>
-               
-      <sect3 id="print-dialog-job">
-       <title>The Labels Tab of the Print Dialog</title>
-
-       <variablelist>
-
-         <varlistentry>
-            <term><guilabel>Print control (Simple)</guilabel></term>
-           <listitem> 
-
-             <para>For simple labels or cards (no document merge), the <guilabel>labels</guilabel>
-                tabbed section contains the following copy controls.</para>
-
-             <!-- ==== Figure ==== -->
-             <figure id="print-copies-fig"> 
-               <title>Print Copy Controls</title> 
-               <screenshot> 
-                 <mediaobject> 
-                   <imageobject><imagedata
-                      fileref="figures/print-copies.png" format="PNG"/> 
-                   </imageobject>
-                 </mediaobject> 
-               </screenshot> 
-             </figure>
-             <!-- ==== End of Figure ==== -->
-
-             <para>The number of copies of the label can be selected by
-                choosing the number of full sheets to print, or a specific
-                subset of labels on a single sheet.</para>
-
-             <para>The mini-preview can also be used to graphically select
-                the subset of labels by clicking the first label on the
-                mini-preview and dragging to the last label.</para>
-
-           </listitem>
-         </varlistentry>
-
-         <varlistentry>
-            <term><guilabel>Print control (Merge)</guilabel></term>
-           <listitem> 
-
-             <para>For labels or cards using the document merge (also known
-                as "mail merge") capability, the <guilabel>labels</guilabel> tabbed section contains
-                the following merge controls instead of copy controls.</para>
-
-             <!-- ==== Figure ==== -->
-             <figure id="print-merge-fig"> 
-               <title>Print Document Merge Controls</title> 
-               <screenshot> 
-                 <mediaobject> 
-                   <imageobject><imagedata
-                      fileref="figures/print-merge.png" format="PNG"/> 
-                   </imageobject>
-                 </mediaobject> 
-               </screenshot> 
-             </figure>
-             <!-- ==== End of Figure ==== -->
-
-             <para>The total number of labels or cards printed is the
-                product of the number of records in the merge source and
-                the number of copies selected.  If multiple copies are
-                selected, these can be either collated (copies of the
-                same record grouped together) or un-collated (one copy
-                each record is printed before next copy).</para>
-
-             <para>Printing can begin on any label on the first sheet.
-                This can be selected with the <guilabel>Start on
-                label</guilabel> spinbutton.</para>
-
-             <para>The mini-preview can also be used to graphically select
-                this first label, by clicking on the desired label in the
-                mini-preview.</para>
-
-           </listitem>
-         </varlistentry>
-
-         <varlistentry> <term><guilabel>Options</guilabel> </term> 
-           <listitem> 
-             <para>The following options can also be selected.</para>
-             <itemizedlist>
-               <listitem>
-                 <para><guilabel>print outlines</guilabel></para>
-                 <para>Print outlines of labels.  This option is useful for
-                    dry-runs, to test printer alignment.</para>
-               </listitem>
-               <listitem>
-                 <para><guilabel>print in reverse</guilabel></para>
-                 <para>Prints the labels as mirror images.  This option is
-                    useful for printing on clear labels that will be viewed
-                    from the reverse side (e.g. in a car window).</para>
-               </listitem>
-               <listitem>
-                 <para><guilabel>print crop marks</guilabel></para>
-                 <para>Prints crop marks along the edge of the sheet.
-                    This option is useful for printing on blank stock, to
-                    be cut after printing.  This option does not work well
-                    with all templates.</para>
-               </listitem>
-             </itemizedlist>
-           </listitem>
-         </varlistentry>
-       </variablelist>
-      </sect3>
-               
-    </sect2>
-
-<!-- ============= To Create New Objects ========= -->
-    <sect2 id="glabels-new-objects"> 
-      <title>To Create New Objects</title>
-
-      <para>Objects are created by choosing the appropriate selection under
-        the <menuchoice> <guimenu>Objects</guimenu>
-        <guimenuitem>Create Object</guimenuitem> </menuchoice> submenu or
-        the <guilabel>Drawing Toolbar</guilabel>.  This will place the
-        display area into object creation mode as indicated by its cursor.
-        To return to the default object selection mode without creating
-        an object, choose <menuchoice> <guimenu>Objects</guimenu>
-        <guimenuitem>Select Mode</guimenuitem> </menuchoice>.  This will
-        return the display area's cursor to the default selection arrow.</para>
-
-      <para>The following describes the object creation mode for each object
-        type:</para>
-
-      <variablelist>
-
-       <varlistentry>
-         <term>Text</term>
-         <listitem>
-           <para>Click the desired location of the upper left corner of the
-              text object.  New text objects are initialized with the
-              string "Text."  To change this text, or other properties, see
-              <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Box</term>
-         <listitem>
-           <para>Click the desired location of the upper left corner of the
-              box object and drag to the desired location of the lower right
-              corner.  If you simply click in a single location, a square
-              box will be created. To change properties of the box object, see
-              <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Line</term>
-         <listitem>
-           <para>Click the desired location of one end of the
-              line object and drag to the desired location of the other end.
-              If you simply click in a single location, a diagonal line
-              will be created. To change properties of the line object, see
-              <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Ellipse</term>
-         <listitem>
-           <para>Click the desired location of the upper left corner of the
-              ellipse object and drag to the desired location of the lower
-              right corner.  If you simply click in a single location, a circle
-              will be created. To change properties of the ellipse object, see
-              <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Image</term>
-         <listitem>
-           <para>Click the desired location of the upper left corner of the
-              image object and drag to the desired location of the lower
-              right corner.  If you simply click in a single location, a square
-              will be created.  New image objects are initialized with a
-              simple checkerboard image.  To change this image, or other
-              properties of the image object, see
-              <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Barcode</term>
-         <listitem>
-           <para>Click the desired location of the upper left corner of the
-              barcode object.  New barcode objects are initialized to a
-              POSTNET barcode with representative data.  To change data
-              and properties of the barcode object, see
-              <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-
-
-    </sect2>
-
-<!-- ============= To Select Objects ========= -->
-    <sect2 id="glabels-select-objects"> 
-      <title>To Select Objects</title>
-
-      <para>A prerequisite for performing operations on objects is the
-        selection of individual objects or groups of objects.  The
-        display area must be in the object selection mode to create new
-        selections, as indicated by an arrow cursor.  The object
-        selection mode is selected by the
-        <menuchoice> <guimenu>Objects</guimenu>
-        <guimenuitem>Select Mode</guimenuitem> </menuchoice> menu item,
-        or the corresponding command on the <guilabel>Drawing
-        Toolbar</guilabel>.</para>
-
-      <variablelist>
-
-       <varlistentry>
-         <term>Selecting a single object</term>
-         <listitem>
-           <para>A single object can be selected simply by clicking
-             on the desired object in the display area.
-             Once selected the object will be highlighted with a set of
-             resizing handles.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Aggregate object selections</term>
-         <listitem>
-           <para>Multiple objects can be selected by first selecting the first
-              object as above and then by holding the <keycap>Ctrl</keycap>
-              key while selecting additional objects.
-              Individual objects can be added to an existing selection
-              at any time by holding the <keycap>Ctrl</keycap> key while
-              selecting the desired objects.  All objects can also be
-              selected by using the <menuchoice> <guimenu>Edit</guimenu>
-              <guimenuitem>Select All</guimenuitem> </menuchoice>
-              menu item.  All objects in an aggregate object selection will be
-              highlighted.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Area selections</term>
-         <listitem>
-           <para>Multiple objects can also be selected by clicking an empty
-              area and dragging to form a rectangular area.  When released,
-              all objects contained in the area will form an aggregate
-              selection.  An area selection can be used to add to an existing
-              selection by holding the <keycap>Ctrl</keycap> key while
-              performing the selection.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Unselecting objects</term>
-         <listitem>
-           <para>Individual objects can be removed from an existing
-              selection by holding the <keycap>Ctrl</keycap> key while
-              clicking on a previously selected object.  An entire selection
-              can be dismissed by using the <menuchoice>
-             <guimenu>Edit</guimenu> <guimenuitem>Un-select All</guimenuitem>
-              </menuchoice> menu item
-              or by simply clicking any empty space in the display area.
-              Once an object is unselected its highlight is removed.</para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-
-    </sect2>
-
-<!-- ============= Clipboard Commands ========= -->
-    <sect2 id="glabels-clipboard"> 
-      <title>Clipboard Commands</title>
-
-      <para>Object selections can be manipulated using the standard clipboard
-        operations <guimenuitem>Cut</guimenuitem>,
-        <guimenuitem>Copy</guimenuitem>, <guimenuitem>Paste</guimenuitem>,
-        and <guimenuitem>Delete</guimenuitem>.</para>
-
-      <variablelist>
-
-       <varlistentry>
-         <term>
-            <menuchoice>
-             <shortcut>
-               <keycombo><keycap>Ctrl</keycap><keycap>X</keycap></keycombo>
-             </shortcut>
-             <guimenuitem>Cut</guimenuitem>
-           </menuchoice>
-          </term>
-         <listitem>
-           <para>Moves selected objects to the clipboard.  The objects are
-              then available for pasting back into the current document or
-              another document.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>
-            <menuchoice>
-             <shortcut>
-               <keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo>
-             </shortcut>
-             <guimenuitem>Copy</guimenuitem>
-           </menuchoice>
-          </term>
-         <listitem>
-           <para>Copies selected objects to the clipboard without deleting
-              them.  The objects are then available for pasting back into
-              the current document or another document.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>
-            <menuchoice>
-             <shortcut>
-               <keycombo><keycap>Ctrl</keycap><keycap>V</keycap></keycombo>
-             </shortcut>
-             <guimenuitem>Paste</guimenuitem>
-           </menuchoice>
-          </term>
-         <listitem>
-           <para>Pastes objects from the clipboard into the current document.
-              &app; can only paste objects from
-              another &app; document.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>
-            <menuchoice>
-             <shortcut>
-               <keycap>Delete</keycap>
-             </shortcut>
-             <guimenuitem>Delete</guimenuitem>
-           </menuchoice>
-          </term>
-         <listitem>
-           <para>Deletes selected objects without placing them on the
-              clipboard.</para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-
-    </sect2>
-
-<!-- ============= To Edit object Properties ========= -->
-    <sect2 id="glabels-object-properties"> 
-      <title>To Edit Object Properties</title>
-
-      <para>Most object properties can be modified through the object
-        editor sidebar, illustrated below.  To use the object editor,
-        a single object must first be selected.  See
-        <xref linkend="glabels-select-objects" />.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="object-editor-sidebar-fig"> 
-       <title>Object Editor Sidebar</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata
-             fileref="figures/object-editor-sidebar.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>The object editor will contain a subset of the following
-        tabbed sections, depending on object type:</para>
-
-      <sect3 id="object-editor-text">
-       <title>Text Tabbed Section (Text objects)</title>
-
-       <para>This section contains a small editor for changing the content
-          of a text object.  It also contains a dropdown menu of available
-          document merge keys, that can be inserted into text.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-image">
-       <title>Image Tabbed Section (Image objecs)</title>
-
-       <para>This section contains a file entry with preview to select
-          image files.  The browse button can be used to easily locate
-          image files.  Alternatively, a document merge key can be used
-          instead to provide a filename at print time.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-data">
-       <title>Data Tabbed Section (Barcode objecs)</title>
-
-       <para>This section contains a text entry to enter literal barcode
-          data. Alternatively, a document merge key can be used to
-          provide this data at print time.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-style">
-       <title>Style Tabbed Section (Text objects)</title>
-
-       <para>This section contains controls to select text properties,
-          including font family, font size, font weight, color, and
-          text justification.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-barcode">
-       <title>Style Tabbed Section (Barcode objecs)</title>
-
-       <para>This section contains controls to select barcode properties,
-          including barcode style, color, whether to print text, and whether
-          to include a checksum digit.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-line">
-       <title>Line Tabbed Section</title>
-
-       <para>This section contains controls to select properties of lines
-          and outlines.  These properties include line width and color.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-fill">
-       <title>Fill Tabbed Section</title>
-
-       <para>This section contains controls to select fill properties of box
-          and ellipse objects.  Currently the only fill property is fill
-          color.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-size">
-       <title>Size Tabbed Section (All except line objects)</title>
-
-       <para>This section contains controls to select the width and height
-          of an object.  A checkbox is provided, so that the current aspect
-          ratio can be locked while manipulating the width and height controls.
-          Image objects also provide a button to reset the size to the
-          image's natural size (Assumes 72DPI).</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-size-line">
-       <title>Size Tabbed Section (Line objects)</title>
-
-       <para>This section contains controls to select the length and angle
-          of a line object.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-position">
-       <title>Position Tabbed Section</title>
-
-       <para>This section contains controls to change the position of an
-          object.</para>
-
-      </sect3>
-
-
-      <sect3 id="object-editor-shadow">
-       <title>Shadow Tabbed Section (All except image and barcode objects)</title>
-
-       <para>This section contains controls to add a shadow to an object.</para>
-
-      </sect3>
-
-
-    </sect2>
-
-<!-- ============= Other Manipulations of Objects ========= -->
-    <sect2 id="glabels-object-manipulation"> 
-      <title>Other Manipulations of Objects</title>
-
-      <para>Objects can also be manipulated in the following ways.</para>
-
-      <sect3 id="other-moving-resizing">
-       <title>Moving and Resizing Objects</title>
-
-       <para>Objects can be moved by simply clicking on a selected
-          object and dragging the object to its new location.  If the object
-          is part of an aggregate selection, all objects in the selection
-          will move with the object being dragged, maintaining their relative
-          positions to one another.  If no object is selected, clicking on
-          an object will create a new selection containing that object.
-          See <xref linkend="glabels-select-objects" />.</para>
-
-       <para>A selected object can be resized by clicking one of its resize
-          handle and dragging it to obtain the new size.</para>
-
-      </sect3>
-
-      <sect3 id="other-stacking-order">
-       <title>Changing Stacking Order</title>
-
-       <para>Stacking order refers to relative position in the z-axis of
-          objects.  That is when objects overlap, which object will appear
-          on top of the other.  By default, newer objects will appear above
-          older objects.  To change this order, select one or more objects
-          and choose <menuchoice> <guimenu>Objects</guimenu>
-          <guimenuitem>Order</guimenuitem>
-          <guimenuitem>Bring to Front</guimenuitem> </menuchoice>
-          to raise the selection to the top of the stacking
-          order, or choose <menuchoice> <guimenu>Objects</guimenu>
-          <guimenuitem>Order</guimenuitem>
-          <guimenuitem>Send to Back</guimenuitem> </menuchoice>
-          to lower the selection to the bottom of the
-          stacking order.  These menuitems are also available by right-clicking
-          the display area when there is a non-empty selection.</para>
-
-      </sect3>
-
-      <sect3 id="other-rotating-flipping">
-       <title>Rotating and Flipping Objects</title>
-
-       <para>Objects can be rotated 90 degrees in either direction, or flipped
-          horizontally or vertically, by choosing the appropriate menuitem
-          in the  <menuchoice> <guimenu>Objects</guimenu>
-          <guimenuitem>Rotate/Flip</guimenuitem> </menuchoice> sub-menu.  These
-          menuitems are also available by right-clicking
-          the display area when there is a non-empty selection.</para>
-
-      </sect3>
-
-      <sect3 id="other-alignment">
-       <title>Aligning Objects</title>
-
-       <para>Objects can be aligned horizontally or vertically, relative to
-          one another, or relative to the center line of the label, by
-          choosing the appropriate menuitem from the  <menuchoice>
-          <guimenu>Objects</guimenu>
-          <guimenuitem>Align Horizontal</guimenuitem>
-          </menuchoice> or  <menuchoice> <guimenu>Objects</guimenu>
-          <guimenuitem>Align Horizontal</guimenuitem> </menuchoice> sub-menus.
-          These menuitems are also available by right-clicking
-          the display area when there is a non-empty selection.</para>
-
-      </sect3>
-
-      <sect3 id="other-property-bar">
-       <title>Using the Property Bar</title>
-
-       <para>The property bar can be used to change some common properties
-          of objects en-masse.  These properties include font family, font
-          size, font weight, text alignment, text color, fill color, line
-          or outline color, and line width.  The property bar also controls
-          the defaults for these properties for any newly created objects.
-          </para>
-
-      </sect3>
-
-
-
-    </sect2>
-
-<!-- ============= Document Merge Features ========= -->
-    <sect2 id="glabels-merge"> 
-      <title>Performing a Document Merge</title>
-
-      <para>Document Merge (sometimes called "Mail Merge") is a powerful
-        feature that allows a unique label or card to be printed for each
-        record in an external data source.</para>
-
-      <para>The first step to performing a document merge is to prepare
-        a source document that contains your merge data.  This data could
-        be mailing addresses or any other data that you wish to create
-        unique labels or cards for.  Currently back-ends only exist for
-        text files and the evolution data server -- others are planned.  The currently
-        supported text-file format is very simple:  each line is a record;
-        fields are delimited by commas (CSV), tabs, or colons; and newlines
-        can be embedded into fields by using the "\n" entity.  This file
-        could be created using any text editor or could be created by
-        another program or script.  A common way of creating CSV files is
-       to export them from a spreadsheet program.</para>
-
-      <para>A label must then be configured to "point at" this data file.
-        To configure the merge properties of a document, choose
-        <menuchoice> <guimenu>Objects</guimenu>
-        <guimenuitem>Merge Properties</guimenuitem> </menuchoice> menu item
-        to display the <guilabel>merge properties</guilabel> dialog.  This
-        dialog is used to select the exact data file format and file
-        name (location) of the merge data.</para>
-
-      <para>Finally, once the label has been configured for a data file,
-        field keys can be inserted into text objects and used as source
-        or data for barcode objects and image filenames for image objects.
-        See <xref linkend="glabels-object-properties" /> for more information
-        on using merge data for these object types.</para>
-
-      <para>Now that your label is configured, &app; will print a unique
-        label for each record in your source document -- substituting fields
-        from each record for field keys in the all text, barcode, and
-        image objects.</para>
-
-      <para>See <xref linkend="glabels-merge-tutorial" /> for a detailed
-        tutorial on the document merge feature.</para>
-
-
-    </sect2>
-
-
-  </sect1>
-
-
-
-
-  <!-- ============= Customization ============================= -->
-  <!-- Use this section to describe how to customize the application. -->
-  <sect1 id="glabels-prefs"> 
-    <title>Settings</title> 
-    <para>To configure &app;, choose 
-      <menuchoice> 
-       <guimenu>Settings</guimenu> 
-       <guimenuitem>Preferences</guimenuitem> 
-      </menuchoice>. The 
-      <guilabel>Preferences</guilabel> dialog contains the following tabbed
-      sections:</para> 
-    <itemizedlist> 
-      <listitem> 
-       <para> 
-         <xref linkend="glabels-prefs-locale"/></para> 
-      </listitem> 
-      <listitem> 
-       <para> 
-         <xref linkend="glabels-prefs-object-defaults"/></para> 
-      </listitem> 
-    </itemizedlist>
-<!-- =============== Customization Subsection ================ -->
-<!-- Use a new section to describe different tabbed sections on the Settings or Preferences
-            dialog. -->
-    <sect2 id="glabels-prefs-locale"> 
-      <title>Locale</title> 
-      <variablelist> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Units</guilabel> </term> 
-         <listitem> 
-           <para>Use this radio button group to specify your preferred units.
-              Select one of the following options:</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>Points</guilabel> </para> 
-               <para>Use points (1 point = 1/72 in = 0.352778 mm).</para> 
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Inches</guilabel> </para> 
-               <para>Use inches.</para>
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Millimeters</guilabel> </para> 
-               <para>Use millimeters.</para>
-             </listitem> 
-           </itemizedlist> 
-           <para>Default: 
-             <guilabel>Inches</guilabel>.</para> 
-         </listitem> 
-       </varlistentry> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Default page size</guilabel> </term> 
-         <listitem> 
-           <para>Use this radio button group to specify your preferred page size.
-              This will make it quicker for you to locate media types when creating a new
-              label or card.</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>US Letter</guilabel> </para> 
-               <para>Most of your media will be of the US Letter page size (8.5 x 11 inches).</para> 
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>ISO A4</guilabel> </para> 
-               <para>Most of your media will be of the ISO A4 page size (210 x 297 mm).</para>
-             </listitem> 
-           </itemizedlist> 
-           <para>Default: 
-             <guilabel>US Letter</guilabel>.</para> 
-         </listitem> 
-       </varlistentry> 
-      </variablelist> 
-    </sect2>
-    <!-- ============= Customization Subsection ===================== -->
-    <!-- Another tabbed section on the Preferences dialog. -->
-    <sect2 id="glabels-prefs-object-defaults"> 
-      <title>Object defaults</title> 
-      <variablelist> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Text</guilabel> </term> 
-         <listitem> 
-           <para>Use these controls to set the default properties of new text objects.
-              These properties are</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>Font</guilabel> </para> 
-               <para>These controls are used to select font family and font size, and
-                  whether the font should bold or in italics.</para> 
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Color</guilabel> </para> 
-               <para>This control selects the default text color.</para>
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Alignment</guilabel> </para> 
-               <para>These controls are used to select the default text alignment (left, center or right).</para>
-             </listitem> 
-           </itemizedlist> 
-         </listitem> 
-       </varlistentry> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Line</guilabel> </term> 
-         <listitem> 
-           <para>Use these controls to set the default properties of lines and outlines of
-              new objects.  These properties are</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>Width</guilabel> </para> 
-               <para>This control selects the default line width.</para>
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Color</guilabel> </para> 
-               <para>This control selects the default line color.</para>
-             </listitem> 
-           </itemizedlist> 
-         </listitem> 
-       </varlistentry> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Fill</guilabel> </term> 
-         <listitem> 
-           <para>Use these controls to set the default fill properties of
-              new objects.  These properties are</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>Color</guilabel> </para> 
-               <para>This control selects the default fill color.</para>
-             </listitem> 
-           </itemizedlist> 
-         </listitem> 
-       </varlistentry> 
-      </variablelist> 
-    </sect2> 
-  </sect1>
-
-
-
-
-<!-- ============= Document Merge Tutorial ================================== -->
-  <sect1 id="glabels-merge-tutorial"> 
-    <title>Document Merge Tutorial</title>
-
-    <para>Document Merge (sometimes called "Mail Merge") is a powerful
-      feature that allows a unique label or card to be printed for each
-      record in an external data source.  It is however, the most mis-understood
-      feature of &app;.  The following examples
-      will step through a couple of common tasks using the document merge
-      feature.</para>
-
-    <sect2 id="merge-ex1">
-      <title>Example 1: Name Tags Using a CSV File</title>
-  
-      <para>In this example we are organizing an orientation party for the new
-        crew members of our ship.  We have a list of freshman crew members that we
-        created in <application>gnumeric</application> and exported as the following
-        CSV file.  We could have created this file by using a text editor, but heck it
-        is the 23rd century.</para>
-
-      <programlisting>
-Name,Department,SN
-"Jim Kirk",Management,"SC937-0176 CEC"
-"Mr. Spock",Sciences,S179-276SP
-"Leonard McCoy",Medicine,unknown
-"Montgomery Scott",Engineering,SE-197-54T
-      </programlisting>
-
-      <para>In &app; we have created a new &app;
-        document using the Avery 5395 "Name Badge Labels" template.  Next we use the
-        <menuchoice> <guimenu>Objects</guimenu>
-        <guimenuitem>Merge Properties</guimenuitem> </menuchoice> menu item to display
-        the <guilabel>merge properties</guilabel> dialog.  We use this dialog to
-        select the source type (in our case CSV) and the merge source (filename) as
-        shown.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex1-1-fig"> 
-       <title>Merge properties dialog</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata
-              fileref="figures/merge-ex1-1.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Before applying the merge source, we uncheck the first record since it is only
-        column headers from our original <application>gnumeric</application> spreadsheet
-        and would simply waste our first label.  We could also unselect any other records
-        that we didn't want to print a label for.</para>
-
-      <para>We can also view each record in more detail by clicking on the appropriate
-        expander (the little triangles) as shown.  Once we are satisfied with the
-        selections in this dialog we click <guibutton>OK</guibutton> to accept the
-        changes.</para>
-
-      <para>Now we start adding objects to our &app; document as shown.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex1-2-fig"> 
-       <title>Adding objects</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata
-              fileref="figures/merge-ex1-2.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>In this example we have added three text objects and a barcode object.  The
-        first text object contains only simple literal text ("Hello, my name is").  The
-        second text object contains a single merge field ("${1}") corresponding to the
-        first field of a record (first column of a line) which contains the new crew
-        member's full name.  The third text field contains both literal text
-        ("Department: ") followed by a single merge field ("${2}") corresponding to
-        the second field or the crew member's department.  The barcode object is
-        configured to use field (or key) "3" which contains our crew member's
-        starfleet serial number.</para>
-
-      <para>Now we can print our name tags by selecting the
-        <menuchoice> <guimenu>File</guimenu>
-        <guimenuitem>Print</guimenuitem> </menuchoice> menu item.  This will display
-        print dialog as shown below.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex1-3-fig"> 
-       <title>Printing name tags</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata
-              fileref="figures/merge-ex1-3.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Just to make sure our labels are going to look okay, we select the
-        <guilabel>Print outlines</guilabel> option and click
-        <guibutton>Print Preview</guibutton>.  This will display a print preview dialog
-        as shown below.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex1-4-fig"> 
-       <title>Name tags preview</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata
-              fileref="figures/merge-ex1-4.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Everything looks good, so we can now load up our printer with
-        the appropriate label stock, print our name tags and start beaming our guests
-        aboard.</para>
-
-    </sect2>
-
-    <sect2 id="merge-ex2">
-      <title>Example 2: Address Labels Using a CSV File</title>
-  
-      <para>In this example we are going to throw a party and need to print mailing
-        address labels for our invitations.  We have a list of our closest friends
-        that we created in <application>gnumeric</application> and exported as the
-        following CSV file.  It should be noted that not everyone has a middle initial or
-        a two line address.</para>
-
-      <programlisting>
-LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP
-,,,,,,,
-Critter,Ess,S,"123 Faux St.",,Alexandria,VA,22310
-Doe,John,,"Apt 1X","451 Mystery St.",Trenton,NJ,08601
-Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037
-McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813
-Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207
-      </programlisting>
-
-      <para>In &app; we have created a new &app;
-        document using the Avery 5512 "Address Labels" template.  Next we use the
-        <menuchoice> <guimenu>Objects</guimenu>
-        <guimenuitem>Merge Properties</guimenuitem> </menuchoice> menu item to display
-        the <guilabel>merge properties</guilabel> dialog.  We use this dialog to
-        select the source type (in our case CSV) and the merge source (filename) as
-        shown.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex2-1-fig"> 
-       <title>Merge properties dialog</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata
-              fileref="figures/merge-ex2-1.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Before applying the merge source, we uncheck the first record since it is only
-        column headers from our original <application>gnumeric</application> spreadsheet
-        and would simply waste our first label.  We also unselect the second record
-        which is empty (an artifact of our original spreadsheet).  We could also unselect
-        any other records that we didn't want to print a label for.</para>
-
-      <para>We can also view each record in more detail by clicking on the appropriate
-        expander (the little triangles) as shown.  Once we are satisfied with the
-        selections in this dialog we click <guibutton>OK</guibutton> to accept the
-        changes.</para>
-
-      <para>Now we start adding objects to our &app; document as shown.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex2-2-fig"> 
-       <title>Adding objects</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata
-              fileref="figures/merge-ex2-2.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>In this example we have a single text object.  This text object contains
-        all of our merge fields organized on multiple lines as a mailing address.
-        Notice that fields ${4} and ${5} (corresponding to ADDR1 and ADDR2) are each
-        located with no other text on their own lines.  When
-        &app; encounters a field as the only text on
-        a line, it will not expand the line if the field is empty.</para>
-
-      <para>Now we can print our address labels by selecting the
-        <menuchoice> <guimenu>File</guimenu>
-        <guimenuitem>Print</guimenuitem> </menuchoice> menu item.  This will display
-        print dialog as shown below.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex2-3-fig"> 
-       <title>Printing address labels</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata
-              fileref="figures/merge-ex2-3.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Just to make sure our labels are going to look okay, we select the
-        <guilabel>Print outlines</guilabel> option and click
-        <guibutton>Print Preview</guibutton>.  This will display a print preview dialog
-        as shown below.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex2-4-fig"> 
-       <title>Address labels preview</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata
-              fileref="figures/merge-ex2-4.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Everything looks good, so we can now load up our printer with
-        the appropriate label stock, print our address labels and start mailing
-        our party invitations.</para>
-
-    </sect2>
-
-<sect2 id="merge-ex3">
-      <title>Example 3: Address Labels Using the <application>Evolution</application> Addressbook</title>
-  
-      <para>Our last party was a great success, and now we need to print mailing
-        address labels for the invitations to a new one. To simplify this, we can use
-       the <application>Evolution</application> addressbook, because the address
-       data of all our friends is stored there.</para>
-
-      <note>
-       <para>Depending on how your copy of &app; was packaged, this option could be unavailable.
-         Support for the <application>Evolution</application> addressbook will only be available
-         if the <application>evolution-data-server</application> and its development files
-         were present when &app; was built. Please keep this in mind if you build &app;
-         directly from source.</para>
-       
-       <para>If the &app; package from your distribution lacks this support,
-         you may wish to contact the package maintainer or file a bug against the package
-         to request it.</para>
-      </note>
-
-      <para>In <application>glabels</application> we have created a new &app;
-        document using the Avery 5512 "Address Labels" template. Next we use the
-        <menuchoice> <guimenu>Objects</guimenu>
-        <guimenuitem>Merge Properties</guimenuitem></menuchoice> menu item to display
-        the <guilabel>Merge properties</guilabel> dialog. We use this dialog to
-        select the source type (in our case <guilabel>Data from default Evolution
-       addressbook</guilabel>) as shown.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex3-1-fig"> 
-       <title>Merge properties dialog</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata
-              fileref="figures/merge-ex3-1.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Once we have chosen <guilabel>Data from default Evolution addressbook
-       </guilabel> as our merge source, we will get a full list of its content. Initially,
-       all entries are checked. Assuming we were planning a really big party, we could
-       leave this selection untouched (but let's keep our budget in mind). We will now select or
-       unselect certain entries by clicking on the appropriate checkboxes, or we could use
-       the <guibutton>Select all</guibutton> and <guibutton>Unselect all
-       </guibutton> buttons to activate or deactivate all entries in the address book.</para>
-      <para>We can also view each entry in more detail by clicking on the appropriate
-        expander (the little triangles) as shown. Once we are satisfied with the
-        selections in this dialog, we will click the <guibutton>OK</guibutton> button to
-       accept the changes.</para>
-
-      <para>Now we start adding objects to our glabels document as shown.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex3-2-fig"> 
-       <title>Adding objects</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata
-              fileref="figures/merge-ex3-2.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>In this example we have a single text object again. This text object contains
-        all of our merge fields organized on multiple lines as a mailing address.</para>
-
-      <para>Now we can print our address labels by selecting the
-        <menuchoice> <guimenu>File</guimenu>
-        <guimenuitem>Print</guimenuitem> </menuchoice> menu item. This will display
-        the print dialog as shown below.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex3-3-fig"> 
-       <title>Printing address labels</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata
-              fileref="figures/merge-ex2-3.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Just to make sure our labels are going to look okay, we select the
-        <guilabel>Print outlines</guilabel> option and click
-        <guibutton>Print Preview</guibutton>. This will display a print preview dialog
-        as shown below.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex3-4-fig"> 
-       <title>Address labels preview</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata
-              fileref="figures/merge-ex2-4.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Everything looks good, so we can now load up our printer with
-        the appropriate label stock, print our address labels and start mailing
-        our party invitations.</para>
-
-    </sect2>
-
-  </sect1>
-
-
-
-
-<!-- ============= Creating templates ================================== -->
-  <sect1 id="glabels-manual-create-template"> 
-    <title>Manually Creating New Templates</title> 
-
-    <para>Predefined templates are defined by XML files located in
-      <filename>${prefix}/share/glabels/</filename>,
-      where <filename>${prefix}</filename> is usually something like
-      <filename>/usr/local</filename> or <filename>/usr</filename> depending
-      on the configuration option <filename>prefix</filename>.  &app; will
-      use all files of the form <filename>*-templates.xml</filename>
-      or <filename>*.template</filename>, that it finds in
-      <filename>${prefix}/share/glabels/</filename> and
-      <filename>${HOME}/.glabels/</filename>.
-      Additional templates can be added by creating additional
-      <filename>*.template</filename> files in either of these directories.
-      </para>
-
-    <para>The format for these files is defined in the DTD:
-      <ulink url="http://glabels.sourceforge.net/doc/glabels-2.0.dtd.txt"
-       type="http">glabels-2.2.dtd</ulink>. (This DTD also describes other
-       XML formats used by &app;.)</para>
-
-    <sect2 id="template-assumptions">
-      <title>Assumptions/caveats</title>
-      <itemizedlist>
-       <listitem>
-         <para>A sheet contains only one size of label or card (if a sheet
-            contains more than one size of item, it can be split into
-             multiple templates for multiple pass printing)</para>
-       </listitem>
-       <listitem>
-         <para>Distances can be expressed in units of <emphasis>pt</emphasis>,
-            <emphasis>in</emphasis>, <emphasis>mm</emphasis>,
-            <emphasis>cm</emphasis>, or <emphasis>pc</emphasis>.  For example:
-            "<literal>1.0in</literal>" or "<literal>2.54cm</literal>".  If no
-            units are specified, computer points (<emphasis>pt</emphasis>) will
-            be assumed (1 <emphasis>pt</emphasis> =
-            1/72 <emphasis>in</emphasis> = 0.352778 <emphasis>mm</emphasis>).
-            </para>
-       </listitem>
-      </itemizedlist>
-    </sect2>
-
-    <sect2 id="template-file">
-      <title>Template Files</title>
-
-      <programlisting>
-&lt;?xml version="1.0"?&gt;
-&lt;Glabels-templates&gt;
-
-   <replaceable>...templates...</replaceable>
-
-&lt;/Glabels-templates&gt;
-      </programlisting>
-    </sect2>
-
-
-    <sect2 id="template-example">
-      <title>Example Template</title>
-      <programlisting>
-  &lt;Template brand="Avery" part="8160" size="US-Letter" description="Mailing Labels"&gt;
-    &lt;Label-rectangle id="0" width="189pt" height="72pt" round="5pt"&gt;
-      &lt;Markup-margin size="5pt"/&gt;
-      &lt;Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/&gt;
-    &lt;/Label-rectangle&gt;
-    &lt;Alias brand="Avery" part="5160"/&gt;
-    &lt;Alias brand="Avery" part="6233"/&gt;
-  &lt;/Template&gt;
-      </programlisting>
-    </sect2>
-
-    <sect2 id="template-template-node">
-      <title>Template Node</title>
-
-      <para>A <emphasis>Template</emphasis> node describes a single stationary
-        product.  It must contain one instance of any type of Label node
-        (<emphasis>Label-rectangle</emphasis>,
-        <emphasis>Label-round</emphasis>, or <emphasis>Label-cd</emphasis>).
-        This node can be followed by zero or more 
-        <emphasis>Alias</emphasis> nodes.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Property</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Description</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>brand</para></entry>
-             <entry>
-                <para>Brand or manufacturer of stationary product.
-                  E.g. "Avery"</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>part</para></entry>
-             <entry>
-                <para>Part number or name of stationary product.
-                  E.g. "8160"</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>size</para></entry>
-             <entry>
-                <para>Size of sheet.  E.g., "US-Letter," "A4", ...</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>description</para></entry>
-             <entry>
-                <para>Description of stationary product.  E.g,
-                   "Mailing Labels."</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>_description</para></entry>
-             <entry>
-                <para>Translatable description of stationary product.
-                  E.g, "Mailing Labels." (Only useful for predefined
-                  templates)</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>width</para></entry>
-             <entry>
-                <para>Page width.  Only valid if size="Other"</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>height</para></entry>
-             <entry>
-                <para>Page height.  Only valid if size="Other"</para>
-               </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-label-rectangle-node">
-      <title>Label-rectangle Node</title>
-
-      <para>A <emphasis>Label-rectangle</emphasis> node describes the
-        dimensions of a single label or business card that is rectangular
-        in shape (may have rounded edges).</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Property</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Description</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>id</para></entry>
-             <entry>
-                <para>Reserved for future use.  Should always be 0.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>width</para></entry>
-             <entry><para>Width of label/card</para></entry>
-            </row>
-           <row valign="top">
-             <entry><para>height</para></entry>
-             <entry><para>Height of label/card</para></entry>
-           </row>
-           <row valign="top">
-             <entry><para>round</para></entry>
-             <entry>
-                <para>Radius of corners.  For items with square edges
-                  (business cards), the radius should be 0.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>x_waste</para></entry>
-             <entry>
-                <para>Amount of horizontal waste (over-print) to allow.  This is useful
-                  for minimizing alignment problems when using non-white
-                  backgrounds (e.g. images).</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y_waste</para></entry>
-             <entry>
-                <para>Amount of vertical waste (over-print) to allow.  This is useful
-                  for minimizing alignment problems when using non-white
-                  backgrounds (e.g. images).</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-      <!-- ==== Figure ==== -->
-      <figure id="template-label-fig"> 
-       <title>Label-rectangle Parameters</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata
-               fileref="figures/glabels-template-label.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-    </sect2>
-
-    <sect2 id="template-label-round-node">
-      <title>Label-round Node</title>
-
-      <para>A <emphasis>Label-round</emphasis> node describes the dimensions
-        of a simple round label (not a CD).</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Property</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Description</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>id</para></entry>
-             <entry>
-                <para>Reserved for future use.  Should always be 0.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>radius</para></entry>
-             <entry><para>Radius (1/2 diameter) of label</para></entry>
-            </row>
-           <row valign="top">
-             <entry><para>waste</para></entry>
-             <entry>
-                <para>Amount of waste (over-print) to allow.  This is useful
-                  for minimizing alignment problems when using non-white
-                  backgrounds (e.g. images).</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-label-cd-node">
-      <title>Label-cd Node</title>
-
-      <para>A <emphasis>Label-cd</emphasis> node describes the dimensions
-        of a CD, DVD, or business card CD.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Property</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Description</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>id</para></entry>
-             <entry>
-                <para>Reserved for future use.  Should always be 0.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>radius</para></entry>
-             <entry><para>Outer radius of label</para></entry>
-           </row>
-           <row valign="top">
-             <entry><para>hole</para></entry>
-             <entry><para>Radius of concentric hole</para></entry>
-           </row>
-           <row valign="top">
-             <entry><para>width</para></entry>
-             <entry>
-                <para>If present, the label is clipped to the given width.
-                  (Useful for "business card CDs").</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>height</para></entry>
-             <entry>
-                <para>If present, the label is clipped to the given height.
-                  (Useful for "business card CDs").</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>waste</para></entry>
-             <entry>
-                <para>Amount of waste (over-print) to allow.  This is useful
-                  for minimizing alignment problems when using non-white
-                  backgrounds (e.g. images).</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-      <!-- ==== Figure ==== -->
-      <figure id="template-label-cd-fig"> 
-       <title>CD Label Parameters</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata
-               fileref="figures/glabels-template-cd.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-    </sect2>
-
-    <sect2 id="template-markup-margin-node">
-      <title>Markup-margin Node</title>
-
-      <para>A <emphasis>Markup-margin</emphasis> describes a margin along
-        all edges of a label.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Property</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Description</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>size</para></entry>
-             <entry>
-                <para>Size of the margin.  I.e. the distance of the margin
-                  line from the edge of the card/label.</para>
-              </entry>
-            </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-markup-line-node">
-      <title>Markup-line Node</title>
-
-      <para>A <emphasis>Markup-line</emphasis> describes a markup line.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Property</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Description</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>x1</para></entry>
-             <entry>
-                <para>x coordinate of 1st endpoint of the line segment.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y1</para></entry>
-             <entry>
-                <para>y coordinate of 1st endpoint of the line segment.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>x2</para></entry>
-             <entry>
-                <para>x coordinate of 2nd endpoint of the line segment.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y2</para></entry>
-             <entry>
-                <para>y coordinate of 2nd endpoint of the line segment.</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-markup-circle-node">
-      <title>Markup-circle Node</title>
-
-      <para>A <emphasis>Markup-circle</emphasis> describes a markup circle.
-        </para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Property</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Description</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>x0</para></entry>
-             <entry>
-                <para>x coordinate of circle origin (center).</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y0</para></entry>
-             <entry>
-                <para>y coordinate of circle origin (center).</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>radius</para></entry>
-             <entry><para>Radius of circle.</para></entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-markup-rect-node">
-      <title>Markup-rect Node</title>
-
-      <para>A <emphasis>Markup-rect</emphasis> describes a markup rectangle.
-        </para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Property</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Description</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>x1</para></entry>
-             <entry>
-                <para>x coordinate of upper left corner of rectangle.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y1</para></entry>
-             <entry>
-                <para>y coordinate of upper left corner of rectangle.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>w</para></entry>
-             <entry>
-                <para>Width of rectangle.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>h</para></entry>
-             <entry>
-                <para>Height of rectangle.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>r</para></entry>
-             <entry><para>Radius of rounded corners of rectangle.</para></entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-layout-node">
-      <title>Layout Node</title>
-
-      <para>A label node may contain multiple <emphasis>Layout</emphasis>
-        children.  If labels are arranged in a simple grid pattern, only
-        one layout is needed.  However, if labels are arranged in multiple
-        grids, such as a running bond pattern, multiple
-        <emphasis>layout</emphasis> tags can be used.  Note: a single label
-        can always be treated as a grid of one.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Property</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Description</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>nx</para></entry>
-             <entry>
-                <para>Number of labels/cards across in the grid
-                  (horizontal)</para>
-              </entry>
-            </row>
-           <row valign="top">
-             <entry><para>ny</para></entry>
-             <entry>
-                <para>Number of labels/cards up and down in the grid
-                  (vertical)</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>x0</para></entry>
-             <entry>
-                <para>Distance from left edge of sheet to the left edge of
-                  the left column of cards/labels in the layout.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y0</para></entry>
-             <entry>
-                <para>Distance from the top edge of sheet to the top edge of
-                  the top row of labels/cards in the layout.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>dx</para></entry>
-             <entry><para>Horizontal pitch of grid.</para></entry>
-           </row>
-           <row valign="top">
-             <entry><para>dy</para></entry>
-             <entry><para>Vertical pitch of grid.</para></entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-      <!-- ==== Figure ==== -->
-      <figure id="template-layout-fig"> 
-       <title>Layout Parameters</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata
-               fileref="figures/glabels-template-layout.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-    </sect2>
-
-    <sect2 id="template-alias-node">
-      <title>Alias Node</title>
-
-      <para>An <emphasis>Alias</emphasis> node provides the name of a
-        product with the same size and layout characteristics as the
-        parent template.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Property</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Description</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>brand</para></entry>
-             <entry>
-                <para>The brand or manufacturer of the equivalent product.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>part</para></entry>
-             <entry>
-                <para>The part number or name of the equivalent product.</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-      </sect2>
-
-  </sect1>
-
-
-
-
-<!-- ============= Bugs ================================== -->
-<!-- This section is optional and is commented out by default. 
-     You can use it to describe known bugs and limitations of the 
-         program if there are any - please be frank and list all
-     problems you know of. 
-  
-  <sect1 id="mayapp-bugs">
-  <title>Known Bugs and Limitations</title>
-  <para> </para>
- </sect1>
--->
-
-
-
-
-<!-- ============= About ================================== -->
-<!-- This section contains info about the program (not docs), such as
-      author's name(s), web page, license, feedback address. This
-      section is optional: primary place for this info is "About.." box of
-      the program. However, if you do wish to include this info in the
-      manual, this is the place to put it. Alternatively, you can put this information in the title page.-->
-  <sect1 id="glabels-about"> 
-    <title>About &app;</title> 
-    <para> &app; was written by Jim Evins
-      (<email>evins@snaught.com</email>). To find more information about
-      &app;, please visit the 
-      <ulink url="http://glabels.sourceforge.net" type="http">gLabels Web
-       page</ulink>. </para>
-    <para>
-      To report a bug or make a suggestion regarding this application or
-      this manual, follow the directions at the
-      <ulink url="http://glabels.sourceforge.net/contact/" type="http">&app; Contact Page</ulink>.
-    </para>
-
-    <para> This program is distributed under the terms of the GNU
-      General Public license as published by the Free Software
-      Foundation; either version 2 of the License, or (at your option)
-      any later version. A copy of this license can be found at this
-      <ulink url="ghelp:gpl" type="help">link</ulink>, or in the file
-      COPYING included with the source code of this program. </para>
-
-  </sect1> 
-
-
-
-
-
-</article>
diff --git a/help/C/index.page b/help/C/index.page
new file mode 100644 (file)
index 0000000..de674c3
--- /dev/null
@@ -0,0 +1,64 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      xmlns:e="http://projectmallard.org/experimental/"
+      type="guide"
+      id="index">
+
+  <info>
+    <title type="link">gLabels label and business card designer</title>
+    <title type="text">gLabels label and business card designer</title>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+  <title>
+    <media type="image" mime="image/png" src="figures/glabels-logo.png">gLabels logo</media>
+    gLabels Manual
+  </title>
+
+  <p>
+    The <app>gLabels</app> application is a lightweight program for creating labels and 
+    business cards for the GNOME desktop environment. It is designed to work with 
+    various laser/ink-jet peel-off label and business card sheets that you'll find 
+    at most office supply stores.
+  </p>
+  <p>
+    <app>gLabels</app> can be used to design address labels, name tags, price tags,
+    cd/dvd labels, or just about anything else that is organized in a regular
+    pattern on a sheet of paper.  Labels (or cards) can contain text, images, lines,
+    shapes, and barcodes.  <app>gLabels</app> also includes a document-merge
+    feature which lets you print a unique label for each record from an external
+    data source, such as a CSV file or an <app>Evolution</app> address book.
+  </p>
+
+  <figure>
+    <title><app>gLabels</app> main window</title>
+    <desc><app>gLabels</app> main window</desc>
+    <media type="image" src="figures/introduction-glabels-main-window.png" mime="image/png" style="right">
+      <p><app>gLabels</app> main window.</p>
+    </media>
+  </figure>
+
+  <section id="usage" style="2column">
+    <title>Usage</title>
+  </section>
+
+  <section id="merging" style="2column">
+    <title>Document Merging</title>
+  </section>
+
+  <section id="advanced" style="2column">
+    <title>Advanced usage</title>
+  </section>
+
+</page>
diff --git a/help/C/labelprop.page b/help/C/labelprop.page
new file mode 100644 (file)
index 0000000..d77e2bc
--- /dev/null
@@ -0,0 +1,34 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      xmlns:e="http://projectmallard.org/experimental/"
+      type="guide"
+      id="labelprop">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      How to change the properties of a label or business card.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>To change label properties</title>
+
+      <p>To change the media type and/or orientation of a label, choose
+        <guiseq><gui>File</gui>
+        <gui>Properties</gui></guiseq> to display the
+        <gui>Label properties</gui> dialog.  Select the
+        new media type and orientation for the document, then click
+        <gui>OK</gui>.</p>
+
+</page>
diff --git a/help/C/legal.xml b/help/C/legal.xml
deleted file mode 100644 (file)
index ac97e1d..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-  <legalnotice id="legalnotice">
-       <para>
-         Permission is granted to copy, distribute and/or modify this
-         document under the terms of the GNU Free Documentation
-         License (GFDL), Version 1.1 or any later version published
-         by the Free Software Foundation with no Invariant Sections,
-         no Front-Cover Texts, and no Back-Cover Texts.  You can find
-         a copy of the GFDL at this <ulink type="help"
-         url="ghelp:fdl">link</ulink> or in the file COPYING-DOCS
-         distributed with this manual.
-         </para>
-         <para> This manual is part of a collection of GNOME manuals
-          distributed under the GFDL.  If you want to distribute this
-          manual separately from the collection, you can do so by
-          adding a copy of the license to the manual, as described in
-          section 6 of the license.
-       </para>
-
-       <para>
-         Many of the names used by companies to distinguish their
-         products and services are claimed as trademarks. Where those
-         names appear in any GNOME documentation, and the members of
-         the GNOME Documentation Project are made aware of those
-         trademarks, then the names are in capital letters or initial
-         capital letters.
-       </para>
-
-       <para>
-         DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED
-         UNDER  THE TERMS OF THE GNU FREE DOCUMENTATION LICENSE
-         WITH THE FURTHER UNDERSTANDING THAT:
-
-         <orderedlist>
-               <listitem>
-                 <para>DOCUMENT IS PROVIDED ON AN "AS IS" BASIS,
-                    WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR
-                    IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
-                    THAT THE DOCUMENT OR MODIFIED VERSION OF THE
-                    DOCUMENT IS FREE OF DEFECTS MERCHANTABLE, FIT FOR
-                    A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE
-                    RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE
-                    OF THE DOCUMENT OR MODIFIED VERSION OF THE
-                    DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR
-                    MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT,
-                    YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY
-                    CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY
-                    SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
-                    OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS
-                    LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED
-                    VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER
-                    EXCEPT UNDER THIS DISCLAIMER; AND
-                 </para>
-               </listitem>
-               <listitem>
-                 <para>UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL
-                       THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE),
-                       CONTRACT, OR OTHERWISE, SHALL THE AUTHOR,
-                       INITIAL WRITER, ANY CONTRIBUTOR, OR ANY
-                       DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION
-                       OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH
-                       PARTIES, BE LIABLE TO ANY PERSON FOR ANY
-                       DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR
-                       CONSEQUENTIAL DAMAGES OF ANY CHARACTER
-                       INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS
-                       OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
-                       MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR
-                       LOSSES ARISING OUT OF OR RELATING TO USE OF THE
-                       DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT,
-                       EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF
-                       THE POSSIBILITY OF SUCH DAMAGES.
-                 </para>
-               </listitem>
-         </orderedlist>
-       </para>
-  </legalnotice>
-
diff --git a/help/C/license.page b/help/C/license.page
new file mode 100644 (file)
index 0000000..312b6cf
--- /dev/null
@@ -0,0 +1,59 @@
+<page xmlns="http://projectmallard.org/1.0/"
+  type="topic"
+  id="license">
+  
+  <info>
+    <link type="seealso" xref="index"/>
+    <revision pkgversion="2.30" version="0.1" date="2009-12-28" status="draft"/>
+    <desc>Legal information.</desc>
+  </info>
+
+  <title>License</title>
+  <p>
+    <!-- 
+    Translators: try to use the same translation as the one provided by the CreativeCommons website. 
+    If there is no translation for your language, consider providing one to CreativeCommons.
+    -->
+    This work is distributed under a CreativeCommons Attribution-Share Alike
+    3.0 Unported license.
+  </p>
+  <p>
+    You are free:
+  </p>
+  <terms>
+    <item>
+      <title><em>To share</em></title>
+      <p>To copy, distribute and transmit the work.</p>
+    </item>
+    <item>
+      <title><em>To remix</em></title>
+      <p>To adapt the work.</p> 
+    </item>
+  </terms>
+  <p>
+    Under the following conditions:
+  </p>
+  <terms>
+    <item>
+      <title><em>Attribution</em></title>
+      <p>
+        You must attribute the work in the manner specified by the author or 
+        licensor (but not in any way that suggests that they endorse you or 
+        your use of the work).  
+      </p>
+    </item>
+    <item>
+      <title><em>Share Alike</em></title>
+      <p>
+        If you alter, transform, or build upon this work, you may distribute the 
+        resulting work only under the same, similar or a compatible license.  
+      </p>
+    </item>
+  </terms>
+  <p>
+    <!-- Translators: there are no official localized versions of the legal code, only the deed is localized. -->
+    For the full text of the license, see the 
+    <link href="http://creativecommons.org/licenses/by-sa/3.0/legalcode">CreativeCommons website</link>, 
+    or read the full <link href="http://creativecommons.org/licenses/by-sa/3.0/">Commons Deed</link>. 
+  </p>
+</page>
diff --git a/help/C/mancreate.page b/help/C/mancreate.page
new file mode 100644 (file)
index 0000000..34c681e
--- /dev/null
@@ -0,0 +1,774 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      xmlns:e="http://projectmallard.org/experimental/"
+      xmlns:its="http://www.w3.org/2005/11/its"
+      type="guide"
+      id="mancreate">
+
+  <info>
+    <link type="guide" xref="index#advanced"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      Create your templates manually.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+  <title>Manually creating new templates</title>
+
+
+
+  <!-- ****************** -->
+  <!-- BEGIN Introduction -->
+  <!-- ****************** -->
+  <p>This page is a reference guide to manually creating <app>gLabels</app> templates.
+  <app>gLabels</app> templates are defined in simple XML files as described in the DTD:
+  <link href="http://glabels.org/xmlns/2.3/glabels-2.3.dtd.txt">glabels-2.3.dtd</link>
+  (this DTD also describes other XML files used by <app>gLabels</app>).</p>
+
+  <p>Manually created template files should be placed in the <file>${HOME}/.glabels</file>
+  and be named with a <file>.template</file> extension.</p>
+
+  <note style="advanced">
+    <p><app>gLabels</app> searches for templates in several other locations as defined here:</p>
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Location</p></td>
+        <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p></p></td>
+        <td><p></p></td>
+      </tr>
+      <tr>
+        <td><p><file>${prefix}/share/libglabels-3.0/templates</file></p></td>
+        <td><p>Predefined templates distributed with <app>gLabels</app>.</p>
+            <p><file>${prefix}</file> is usually <file>/usr</file> or <file>/usr/local</file>,
+            depending on where <app>gLabels</app> was installed.</p></td>
+      </tr>
+      <tr>
+        <td><p><file>${XDG_CONFIG_HOME}/libglabels/templates</file></p></td>
+        <td><p>User defined templates created with the <app>gLabels</app> <gui>Template Designer</gui>.
+            <em>Do not put manually created templates in this directory.</em></p>
+            <p>If <file>${XDG_CONFIG_HOME}</file> is not defined, it defaults to
+            <file>${HOME}/.config</file>.</p></td>
+      </tr>
+      <tr>
+        <td><p><file>${HOME}/.glabels</file></p></td>
+        <td><p>User defined templates that have been created manually should be placed in this
+            directory.
+            Older versions of the <app>gLabels</app> <gui>Template Designer</gui> (prior to 3.0)
+            would also put templates in this directory.</p></td>
+      </tr>
+    </table>
+  </note>
+
+  <note><p>Completed template files can be sent to the
+        <app>gLabels</app> template
+        <link href="mailto:glabels-templates@lists.sourceforge.net">mailing list</link>
+        for possible inclusion in future versions of <app>gLabels</app>.</p>
+  </note>
+  <!-- ****************** -->
+  <!-- END Introduction   -->
+  <!-- ****************** -->
+
+
+  <!-- ***************** -->
+  <!-- BEGIN Assumptions -->
+  <!-- ***************** -->
+  <section id="template-assumptions">
+    <title>Assumptions/caveats</title>
+    <list>
+      <item>
+        <p>A sheet contains only one size of label or card (if a sheet
+          contains more than one size of item, it can be split into
+           multiple templates for multiple pass printing)</p>
+      </item>
+      <item>
+        <p>Distances can be expressed in units of <code its:translate="no">pt</code>,
+          <code its:translate="no">in</code>, <code its:translate="no">mm</code>,
+          <code its:translate="no">cm</code>, or <code its:translate="no">pc</code>.  For example:
+          "<code its:translate="no">1.0in</code>" or "<code its:translate="no">2.54cm</code>".  If no
+          units are specified, computer points (<code its:translate="no">pt</code>) will
+          be assumed (1 <em>pt</em> =
+          1/72 <em>in</em> = 0.352778 <em>mm</em>).
+          </p>
+      </item>
+    </list>
+  </section>
+  <!-- ***************** -->
+  <!-- END Assumptions   -->
+  <!-- ***************** -->
+
+
+
+  <!-- ******************** -->
+  <!-- BEGIN Template Files -->
+  <!-- ******************** -->
+  <section id="template-file">
+    <title>Template Files</title>
+
+    <p>A template file contains a single <code its:translate="no">Glabels-templates</code> top-level
+    node.</p>
+
+    <code mime="text/xml" its:translate="no">
+&lt;?xml version="1.0"?&gt;
+&lt;Glabels-templates&gt;
+
+   <var its:translate="yes">...templates...</var>
+
+&lt;/Glabels-templates&gt;</code>
+
+    <listing>
+      <title>Example Template</title>
+      <desc>Example <app>gLabels</app> template file containing a single
+            <code its:translate="no">Template</code> node.</desc>
+      <code mime="text/xml" its:translate="no">
+&lt;?xml version="1.0"?&gt;
+&lt;Glabels-templates&gt;
+
+  &lt;Template brand="Avery" part="8160" size="US-Letter" description="Mailing Labels"&gt;
+    &lt;Meta category="label"/&gt;
+    &lt;Meta category="mail"/&gt;
+    &lt;Meta product_url="http://www.avery.com/avery/en_us/"/&gt;
+    &lt;Label-rectangle id="0" width="189pt" height="72pt" round="5pt"&gt;
+      &lt;Markup-margin size="5pt"/&gt;
+      &lt;Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/&gt;
+    &lt;/Label-rectangle&gt;
+  &lt;/Template&gt;
+
+&lt;/Glabels-templates&gt;</code>
+    </listing>
+
+  </section>
+  <!-- ******************** -->
+  <!-- END Template Files   -->
+  <!-- ******************** -->
+
+
+
+  <!-- ******************** -->
+  <!-- BEGIN Template Node  -->
+  <!-- ******************** -->
+  <section id="template-template-node">
+    <title><span its:translate="no">Template</span> Node</title>
+
+    <p>A <code its:translate="no">Template</code> node describes a single
+      stationery product.  It must contain one instance of any type of Label node
+      (<code its:translate="no">Label-rectangle</code>,
+      <code its:translate="no">Label-round</code>, or
+      <code its:translate="no">Label-cd</code>).</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Property</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p></p></td>  <td><p></p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">brand</code></p></td>  
+        <td><p>Brand or manufacturer of stationery product. E.g. "Avery"</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">part</code></p></td>
+        <td><p>Part number or name of stationery product. E.g. "8160"</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">size</code></p></td>
+        <td><p>Size of sheet.
+               E.g., "<code its:translate="no">US-Letter</code>", "<code its:translate="no">A4</code>", ...
+            </p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">description</code></p></td>
+        <td><p>Description of stationery product.  E.g, "Mailing Labels."</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">_description</code></p></td>
+        <td><p>Translatable description of stationery product. E.g, "Mailing Labels."
+            (Only useful for predefined templates)</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">width</code></p></td>
+        <td><p>Page width.  Only valid if size="Other"</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">height</code></p></td>
+        <td><p>Page height.  Only valid if size="Other"</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">equiv</code></p></td>
+        <td><p>Equivalent part number.  If this property is present, the template
+            is a clone of another template of the same brand.  The template will
+            inherit all properties, except brand and name from the other template.
+            This equiv property must refer to a previously defined template - 
+            <app>gLabels</app> does not currently support forward references.</p></td>
+      </tr>
+    </table>
+
+  </section>
+  <!-- ******************** -->
+  <!-- END Template Node    -->
+  <!-- ******************** -->
+
+
+  <!-- ******************** -->
+  <!-- BEGIN Meta Node      -->
+  <!-- ******************** -->
+  <section id="meta-template-node">
+    <title><span its:translate="no">Meta</span> Node</title>
+
+    <p>A <code its:translate="no">Meta</code> node contains some additional
+         information about the template. A <code its:translate="no">Template</code>
+         node may contain zero or more <code its:translate="no">Meta</code> nodes.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Subnode</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p></p></td>  <td><p></p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">category</code></p></td>
+        <td><p>A category for the template.
+            A template can belong to multiple categories by simply adding multiple
+            <code its:translate="no">Meta</code> nodes to the parent
+            <code its:translate="no">Template</code> node.
+            Template categories are used by the <app>gLabels</app> <gui>New Label
+            Dialog</gui> to filter the results of template searches.</p>
+
+            <p>The value of this category must match a predefined category ID defined in
+            the file <file>${prefix}/libglabels-3.0/templates/categories.xml</file>.
+             Currently defined category IDs include:</p>
+            <list>
+              <item><p><code its:translate="no">label</code></p></item>
+              <item><p><code its:translate="no">round-label</code></p></item>
+              <item><p><code its:translate="no">elliptical-label</code></p></item>
+              <item><p><code its:translate="no">square-label</code></p></item>
+              <item><p><code its:translate="no">rectangle-label</code></p></item>
+              <item><p><code its:translate="no">card</code></p></item>
+              <item><p><code its:translate="no">business-card</code></p></item>
+              <item><p><code its:translate="no">media</code></p></item>
+              <item><p><code its:translate="no">mail</code></p></item>
+              <item><p><code its:translate="no">foldable</code></p></item>
+              <item><p><code its:translate="no">photo</code></p></item>
+            </list>
+
+
+        </td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">product_url</code></p></td>
+        <td><p>A URL pointing to the vendor's webpage for the specific product, if available.</p></td>
+      </tr>
+    </table>
+
+    <note><p>Suggestions for additional categories can be sent to the 
+          <app>gLabels</app> developer's
+          <link href="mailto:glabels-devel@lists.sourceforge.net">mailing list</link>.</p>
+          <p>Product URLs may be of limited use, because they may not be permanent.</p>
+    </note>
+
+  </section>
+  <!-- ******************** -->
+  <!-- END Meta Node        -->
+  <!-- ******************** -->
+
+
+  <!-- ************************** -->
+  <!-- BEGIN Label-rectangle Node -->
+  <!-- ************************** -->
+  <section id="template-label-rectangle-node">
+    <title><span its:translate="no">Label-rectangle</span> Node</title>
+
+    <p>A <code its:translate="no">Label-rectangle</code> node describes the
+      dimensions of a single label or business card that is rectangular
+      in shape (may have rounded edges).</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Property</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p></p></td>  <td><p></p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">id</code></p></td>
+        <td><p>Reserved for future use.  Should always be 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">width</code></p></td>
+        <td><p>Width of label/card</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">height</code></p></td>
+        <td><p>Heigth of label/card</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">round</code></p></td>
+        <td><p>Radius of corners.  For items with square edges (business cards),
+               the radius should be 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">x_waste</code></p></td>
+        <td><p>Amount of horizontal waste (over-print) to allow.  This is useful
+                      for minimizing alignment problems when using non-white
+                      backgrounds (e.g. images).</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">y_waste</code></p></td>
+        <td><p>Amount of vertical waste (over-print) to allow.  This is useful
+                      for minimizing alignment problems when using non-white
+                      backgrounds (e.g. images).</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc><span its:translate="no">Label-rectangle</span> parameters</desc>
+      <media type="image" src="figures/glabels-template-rect-label.png" mime="image/png" style="right">
+        <p><span its:translate="no">Label-rectangle</span> parameters</p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ************************** -->
+  <!-- END Label-rectangle Node   -->
+  <!-- ************************** -->
+
+
+  <!-- ************************ -->
+  <!-- BEGIN Label-ellipse Node -->
+  <!-- ************************ -->
+  <section id="template-label-ellipse-node">
+    <title><span its:translate="no">Label-ellipse</span> Node</title>
+
+    <p>A <code its:translate="no">Label-ellipse</code> node describes the
+      dimensions of a single label or business card that is elliptic
+      in shape.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Property</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p></p></td>  <td><p></p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">id</code></p></td>
+        <td><p>Reserved for future use.  Should always be 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">width</code></p></td>
+        <td><p>Width of the ellipse</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">height</code></p></td>
+        <td><p>Heigth of the ellipse</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">waste</code></p></td>
+        <td><p>Amount of waste (over-print) to allow.  This is useful
+            for minimizing alignment problems when using non-white
+            backgrounds (e.g. images).</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc><span its:translate="no">Label-ellipse</span> parameters</desc>
+      <media type="image" src="figures/glabels-template-ellipse-label.png" mime="image/png" style="right">
+        <p><span its:translate="no">Label-ellipse</span> parameters</p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ************************ -->
+  <!-- END Label-ellipse Node   -->
+  <!-- ************************ -->
+
+
+  <!-- ********************** -->
+  <!-- BEGIN Label-round Node -->
+  <!-- ********************** -->
+  <section id="template-label-round-node">
+    <title><span its:translate="no">Label-round</span> Node</title>
+
+    <p>A <code its:translate="no">Label-round</code> node describes the dimensions
+      of a simple round label (not a CD).</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Property</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p></p></td>  <td><p></p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">id</code></p></td>
+        <td><p>Reserved for future use.  Should always be 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">radius</code></p></td>
+        <td><p>Radius (1/2 diameter) of label</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">waste</code></p></td>
+        <td><p>Amount of waste (over-print) to allow.  This is useful
+                for minimizing alignment problems when using non-white
+                backgrounds (e.g. images).</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc><span its:translate="no">Label-ellipse</span> parameters</desc>
+      <media type="image" src="figures/glabels-template-circle-label.png" mime="image/png" style="right">
+        <p><span its:translate="no">Label-ellipse</span> parameters</p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ********************** -->
+  <!-- END Label-round Node   -->
+  <!-- ********************** -->
+
+
+  <!-- ******************* -->
+  <!-- BEGIN Label-cd Node -->
+  <!-- ******************* -->
+  <section id="template-label-cd-node">
+    <title><span its:translate="no">Label-cd</span> Node</title>
+
+    <p>A <code its:translate="no">Label-cd</code> node describes the dimensions
+      of a CD, DVD, or business card CD.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Property</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p></p></td>  <td><p></p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">id</code></p></td>
+        <td><p>Reserved for future use.  Should always be 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">radius</code></p></td>
+        <td><p>Outer radius of label</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">hole</code></p></td>
+        <td><p>Radius of concentric hole</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">width</code></p></td>
+        <td><p>If present, the label is clipped to the given width.
+                      (Useful for "business card CDs").</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">height</code></p></td>
+        <td><p>If present, the label is clipped to the given height.
+                      (Useful for "business card CDs").</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">waste</code></p></td>
+        <td><p>Amount of waste (over-print) to allow.  This is useful
+                      for minimizing alignment problems when using non-white
+                      backgrounds (e.g. images).</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc><span its:translate="no">Label-cd</span> parameters</desc>
+      <media type="image" src="figures/glabels-template-cd-label.png" mime="image/png" style="right">
+        <p>CD label parameters</p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ******************* -->
+  <!-- END Label-cd Node   -->
+  <!-- ******************* -->
+
+
+  <!-- ***************** -->
+  <!-- BEGIN Markup Node -->
+  <!-- ***************** -->
+  <section id="template-markup">
+    <title><span its:translate="no">Markup</span> Nodes</title>
+
+    <p>Templates may contain optional markup nodes.  These nodes are used to describe
+    a simple set of markup lines that are visible in the <app>glabels</app> drawing canvas, but
+    not visible when printed.  These lines can represent margins, fold lines, center lines,
+    special areas, or other helpful hints to the user of a template.</p>
+
+
+    <!-- ======================== -->
+    <!-- BEGIN Markup-margin Node -->
+    <!-- ======================== -->
+    <section id="template-markup-margin-node">
+      <title><span its:translate="no">Markup-margin</span> Node</title>
+
+      <p>A <code its:translate="no">Markup-margin</code> describes a margin along
+      all edges of a label.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Property</p></td>  <td><p>Description</p></td>
+        </tr>
+        <tr>
+          <td><p></p></td>  <td><p></p></td>
+        </tr>
+        <tr>
+          <td><p><code its:translate="no">size</code></p></td>
+          <td><p>Size of the margin.  I.e. the distance of the margin
+                        line from the edge of the card/label.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ======================== -->
+    <!-- END Markup-margin Node   -->
+    <!-- ======================== -->
+
+
+    <!-- ====================== -->
+    <!-- BEGIN Markup-line Node -->
+    <!-- ====================== -->
+    <section id="template-markup-line-node">
+      <title><span its:translate="no">Markup-line</span> Node</title>
+
+      <p>A <code its:translate="no">Markup-line</code> node describes a markup line.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Property</p></td>  <td><p>Description</p></td>
+        </tr>
+        <tr>
+          <td><p></p></td>  <td><p></p></td>
+        </tr>
+        <tr>
+          <td><p><code its:translate="no">x1</code></p></td>
+          <td><p>x coordinate of 1st endpoint of the line segment.</p></td>
+        </tr>
+        <tr>
+          <td><p><code its:translate="no">y1</code></p></td>
+          <td><p>y coordinate of 1st endpoint of the line segment.</p></td>
+        </tr>
+        <tr>
+          <td><p><code its:translate="no">x2</code></p></td>
+          <td><p>x coordinate of 2st endpoint of the line segment.</p></td>
+        </tr>
+        <tr>
+          <td><p><code its:translate="no">y2</code></p></td>
+          <td><p>y coordinate of 2st endpoint of the line segment.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ====================== -->
+    <!-- END Markup-line Node   -->
+    <!-- ====================== -->
+
+
+    <!-- ======================== -->
+    <!-- BEGIN Markup-circle Node -->
+    <!-- ======================== -->
+    <section id="template-markup-circle-node">
+      <title><span its:translate="no">Markup-circle</span> Node</title>
+
+      <p>A <code its:translate="no">Markup-circle</code> describes a markup circle.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Property</p></td>  <td><p>Description</p></td>
+        </tr>
+        <tr>
+          <td><p></p></td>  <td><p></p></td>
+        </tr>
+        <tr>
+          <td><p><code its:translate="no">x0</code></p></td>
+          <td><p>x coordinate of circle origin (center).</p></td>
+        </tr>
+        <tr>
+          <td><p><code its:translate="no">y0</code></p></td>
+          <td><p>y coordinate of circle origin (center).</p></td>
+        </tr>
+        <tr>
+          <td><p><code its:translate="no">radius</code></p></td>
+          <td><p>Radius of circle.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ======================== -->
+    <!-- END Markup-circle Node   -->
+    <!-- ======================== -->
+
+
+    <!-- ====================== -->
+    <!-- BEGIN Markup-rect Node -->
+    <!-- ====================== -->
+    <section id="template-markup-rect-node">
+      <title><span its:translate="no">Markup-rect</span> Node</title>
+
+      <p>A <code its:translate="no">Markup-rect</code> describes a markup rectangle.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Property</p></td>  <td><p>Description</p></td>
+        </tr>
+        <tr>
+          <td><p></p></td>  <td><p></p></td>
+        </tr>
+        <tr>
+          <td><p><code its:translate="no">x1</code></p></td>
+          <td><p>x coordinate of upper left corner of rectangle.</p></td>
+        </tr>
+        <tr>
+          <td><p><code its:translate="no">y1</code></p></td>
+          <td><p>y coordinate of upper left corner of rectangle.</p></td>
+        </tr>
+        <tr>
+          <td><p><code its:translate="no">w</code></p></td>
+          <td><p>Width of rectangle.</p></td>
+        </tr>
+        <tr>
+          <td><p><code its:translate="no">h</code></p></td>
+          <td><p>Height of rectangle.</p></td>
+        </tr>
+        <tr>
+          <td><p><code its:translate="no">r</code></p></td>
+          <td><p>Radius of rounded corners of rectangle.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ====================== -->
+    <!-- END Markup-rect Node   -->
+    <!-- ====================== -->
+
+
+    <!-- ========================= -->
+    <!-- BEGIN Markup-ellipse Node -->
+    <!-- ========================= -->
+    <section id="template-markup-ellipse-node">
+      <title><span its:translate="no">Markup-ellipse</span> Node</title>
+
+      <p>A <code its:translate="no">Markup-ellipse</code> describes a markup ellipse.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Property</p></td>  <td><p>Description</p></td>
+        </tr>
+        <tr>
+          <td><p></p></td>  <td><p></p></td>
+        </tr>
+        <tr>
+          <td><p><code its:translate="no">x1</code></p></td>
+          <td><p>x coordinate of upper left corner of ellipse.</p></td>
+        </tr>
+        <tr>
+          <td><p><code its:translate="no">y1</code></p></td>
+          <td><p>y coordinate of upper left corner of ellipse.</p></td>
+        </tr>
+        <tr>
+          <td><p><code its:translate="no">w</code></p></td>
+          <td><p>Width of ellipse.</p></td>
+        </tr>
+        <tr>
+          <td><p><code its:translate="no">h</code></p></td>
+          <td><p>Height of ellipse.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ========================= -->
+    <!-- END Markup-ellipse Node   -->
+    <!-- ========================= -->
+
+  </section>
+  <!-- ***************** -->
+  <!-- END Markup Node   -->
+  <!-- ***************** -->
+
+
+  <!-- ***************** -->
+  <!-- BEGIN Layout Node -->
+  <!-- ***************** -->
+  <section id="template-layout-node">
+    <title><span its:translate="no">Layout</span> Node</title>
+
+    <p>A label node may contain multiple <code its:translate="no">Layout</code>
+      children.  If labels are arranged in a simple grid pattern, only
+      one layout is needed.  However, if labels are arranged in multiple
+      grids, such as a running bond pattern, multiple
+      <code its:translate="no">Layout</code> tags can be used. </p>
+       <note style="tip">
+       <p>A single label can always be treated as a grid of one.</p>
+      </note>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Property</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p></p></td>  <td><p></p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">nx</code></p></td>
+        <td><p>Number of labels/cards across in the grid (horizontal)</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">ny</code></p></td>
+        <td><p>Number of labels/cards across in the grid (vertical)</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">x0</code></p></td>
+        <td><p>Distance from left edge of sheet to the left edge of
+            the left column of cards/labels in the layout.</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">y0</code></p></td>
+        <td><p>Distance from the top edge of sheet to the top edge of
+             the top row of labels/cards in the layout.</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">dx</code></p></td>
+        <td><p>Horizontal pitch of grid.</p></td>
+      </tr>
+      <tr>
+        <td><p><code its:translate="no">dy</code></p></td>
+        <td><p>Vertical pitch of grid.</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc><span its:translate="no">Layout</span> parameters</desc>
+      <media type="image" src="figures/glabels-template-layout.png" mime="image/png" style="right">
+        <p><span its:translate="no">Layout</span> Parameters</p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ***************** -->
+  <!-- END Layout Node   -->
+  <!-- ***************** -->
+
+
+</page>
diff --git a/help/C/merge-ex1.page b/help/C/merge-ex1.page
new file mode 100644 (file)
index 0000000..29ea44c
--- /dev/null
@@ -0,0 +1,105 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      xmlns:e="http://projectmallard.org/experimental/"
+      type="guide"
+      id="merge-ex1">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+       Create name tags from a CSV file.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Example 1: Name Tags</title>
+
+      <p>In this example we are organizing an orientation party for the new
+        crew members of our ship.  We have a list of freshman crew members that we
+        created in <app>gnumeric</app> and exported as the following
+        CSV file.  We could have created this file by using a text editor, but heck it
+        is the 23rd century.</p>
+
+      <code>
+Name,Department,SN
+"Jim Kirk",Management,"SC937-0176 CEC"
+"Mr. Spock",Sciences,S179-276SP
+"Leonard McCoy",Medicine,unknown
+"Montgomery Scott",Engineering,SE-197-54T
+      </code>
+
+      <p>In <app>gLabels</app> we have created a new <app>glabels</app>
+        document using the Avery 5395 "Name Badge Labels" template.  Next we use the
+        <guiseq> <gui>Objects</gui>
+        <gui>Merge Properties</gui> </guiseq> menu item to display
+        the <gui>merge properties</gui> dialog.  We use this dialog to
+        select the source type (in our case CSV with keys on line 1) and the merge
+       source (filename) as shown.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-1.png" mime="image/png" style="right">
+               <p>Merge properties dialog</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>We can also view each record in more detail by clicking on the appropriate
+        expander (the little triangles) as shown.  Once we are satisfied with the
+        selections in this dialog we click <gui>OK</gui> to accept the
+        changes.</p>
+
+      <p>Now we start adding objects to our <app>glabels</app> document as shown.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-2.png" mime="image/png" style="right">
+               <p>Adding objects</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>In this example we have added three text objects and a barcode object.  The
+        first text object contains only simple literal text ("Hello, my name is").  The
+        second text object contains a single merge field ("${Name}") corresponding to the
+        first field of a record (first column of a line) which contains the new crew
+        member's full name.  The third text field contains both literal text
+        ("Department: ") followed by a single merge field ("${Department}") corresponding to
+        the second field or the crew member's department.  The barcode object is
+        configured to use field (or key) "SN" which contains our crew member's
+        starfleet serial number.</p>
+
+      <p>Now we can print our name tags by selecting the
+        <guiseq> <gui>File</gui>
+        <gui>Print</gui> </guiseq> menu item.  This will display
+        print dialog as shown below.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-3.png" mime="image/png" style="right">
+               <p>Printing name tags</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Just to make sure our labels are going to look okay, we select the
+        <gui>Print outlines</gui> option and click
+        <gui>Print Preview</gui>.  This will display a print preview dialog
+        as shown below.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-4.png" mime="image/png" style="right">
+               <p>Name tags preview</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Everything looks good, so we can now load up our printer with
+        the appropriate label stock, print our name tags and start beaming our guests
+        aboard.</p>
+
+
+</page>
diff --git a/help/C/merge-ex2.page b/help/C/merge-ex2.page
new file mode 100644 (file)
index 0000000..4dfef4f
--- /dev/null
@@ -0,0 +1,108 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      xmlns:e="http://projectmallard.org/experimental/"
+      type="guide"
+      id="merge-ex2">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+       Create address labels from a CSV file.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Example 2: Address labels</title>
+
+      <p>In this example we are going to throw a party and need to print mailing
+        address labels for our invitations.  We have a list of our closest friends
+        that we created in <app>gnumeric</app> and exported as the
+        following CSV file.  It should be noted that not everyone has a middle initial or
+        a two line address.</p>
+
+      <code>
+LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP
+,,,,,,,
+Critter,Ess,S,"123 Faux St.",,Alexandria,VA,22310
+Doe,John,,"Apt 1X","451 Mystery St.",Trenton,NJ,08601
+Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037
+McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813
+Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207
+      </code>
+
+      <p>In <app>glabels</app> we have created a new <app>glabels</app>
+        document using the Avery 5512 "Address Labels" template.  Next we use the
+        <guiseq> <gui>Objects</gui>
+        <gui>Merge Properties</gui> </guiseq> menu item to display
+        the <gui>merge properties</gui> dialog.  We use this dialog to
+        select the source type (in our case CSV with keys on line 1) and the merge
+       source (filename) as shown.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-1.png" mime="image/png" style="right">
+               <p>Merge properties dialog</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Before applying the merge source, we uncheck the first record since it only
+        contains empty fields.  It is an artifact of our original <app>gnumeric</app> spreadsheet
+        and would simply waste our first label.  We could also unselect
+        any other records that we didn't want to print a label for.</p>
+
+      <p>We can also view each record in more detail by clicking on the appropriate
+        expander (the little triangles) as shown.  Once we are satisfied with the
+        selections in this dialog we click <gui>OK</gui> to accept the
+        changes.</p>
+
+      <p>Now we start adding objects to our <app>glabels</app> document as shown.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-2.png" mime="image/png" style="right">
+               <p>Adding objects</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>In this example we have a single text object.  This text object contains
+        all of our merge fields organized on multiple lines as a mailing address.
+        Notice that fields ${ADDR1} and ${ADDR2} are each
+        located with no other text on their own lines.  When
+        <app>glabels</app> encounters a field as the only text on
+        a line, it will not expand the line if the field is empty.</p>
+
+      <p>Now we can print our address labels by selecting the
+        <guiseq> <gui>File</gui>
+        <gui>Print</gui> </guiseq> menu item.  This will display
+        print dialog as shown below.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-3.png" mime="image/png" style="right">
+               <p>Printing address labels</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Just to make sure our labels are going to look okay, we select the
+        <gui>Print outlines</gui> option and click
+        <gui>Print Preview</gui>.  This will display a print preview dialog
+        as shown below.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-4.png" mime="image/png" style="right">
+               <p>Address labels preview</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Everything looks good, so we can now load up our printer with
+        the appropriate label stock, print our address labels and start mailing
+        our party invitations.</p>
+
+</page>
diff --git a/help/C/merge-ex3.page b/help/C/merge-ex3.page
new file mode 100644 (file)
index 0000000..6505936
--- /dev/null
@@ -0,0 +1,109 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      xmlns:e="http://projectmallard.org/experimental/"
+      type="guide"
+      id="merge-ex3">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+       Create address labels from the <app>Evolution</app> address book entries.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Example 3: Address Labels Using the <app>Evolution</app> Addressbook</title>
+
+      <p>Our last party was a great success, and now we need to print mailing
+        address labels for the invitations to a new one. To simplify this, we can use
+       the <app>Evolution</app> addressbook, because the address
+       data of all our friends is stored there.</p>
+
+      <note>
+       <p>Depending on how your copy of <app>gLabels</app> was packaged, this option could be unavailable.
+         Support for the <app>Evolution</app> addressbook will only be available
+         if the <app>evolution-data-server</app> and its development files
+         were present when <app>gLabels</app> was built. Please keep this in mind if you build <app>gLabels</app>
+         directly from source.</p>
+       
+       <p>If the <app>gLabels</app> package from your distribution lacks this support,
+         you may wish to contact the package maintainer or file a bug against the package
+         to request it.</p>
+      </note>
+
+      <p>In <app>glabels</app> we have created a new <app>gLabels</app>
+        document using the Avery 5512 "Address Labels" template. Next we use the
+        <guiseq> <gui>Objects</gui>
+        <gui>Merge Properties</gui></guiseq> menu item to display
+        the <gui>Merge properties</gui> dialog. We use this dialog to
+        select the source type (in our case <gui>Data from default Evolution
+       addressbook</gui>) as shown.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-1.png" mime="image/png" style="right">
+               <p>Merge properties dialog</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Once we have chosen <gui>Data from default Evolution addressbook
+       </gui> as our merge source, we will get a full list of its content. Initially,
+       all entries are checked. Assuming we were planning a really big party, we could
+       leave this selection untouched (but let's keep our budget in mind). We will now select or
+       unselect certain entries by clicking on the appropriate checkboxes, or we could use
+       the <gui>Select all</gui> and <gui>Unselect all
+       </gui> buttons to activate or deactivate all entries in the address book.</p>
+      <p>We can also view each entry in more detail by clicking on the appropriate
+        expander (the little triangles) as shown. Once we are satisfied with the
+        selections in this dialog, we will click the <gui>OK</gui> button to
+       accept the changes.</p>
+
+      <p>Now we start adding objects to our <app>glabels</app> document as shown.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-2.png" mime="image/png" style="right">
+               <p>Adding objects</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>In this example we have a single text object again. This text object contains
+        all of our merge fields organized on multiple lines as a mailing address.</p>
+
+      <p>Now we can print our address labels by selecting the
+        <guiseq> <gui>File</gui>
+        <gui>Print</gui> </guiseq> menu item. This will display
+        the print dialog as shown below.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-3.png" mime="image/png" style="right">
+               <p>Printing address labels</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Just to make sure our labels are going to look okay, we select the
+        <gui>Print outlines</gui> option and click
+        <gui>Print Preview</gui>. This will display a print preview dialog
+        as shown below.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-4.png" mime="image/png" style="right">
+               <p>Addess labels preview</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Everything looks good, so we can now load up our printer with
+        the appropriate label stock, print our address labels and start mailing
+        our party invitations.</p>
+
+
+</page>
diff --git a/help/C/merge-ex4.page b/help/C/merge-ex4.page
new file mode 100644 (file)
index 0000000..5295113
--- /dev/null
@@ -0,0 +1,28 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      xmlns:e="http://projectmallard.org/experimental/"
+      type="guide"
+      id="merge-ex4">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+       Create address labels from a vCard file.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Example 4: Address Labels Using a vCard file</title>
+
+
+</page>
diff --git a/help/C/merge.page b/help/C/merge.page
new file mode 100644 (file)
index 0000000..033ebd0
--- /dev/null
@@ -0,0 +1,37 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      xmlns:e="http://projectmallard.org/experimental/"
+      type="guide"
+      id="merge">
+
+  <info>
+    <link type="guide" xref="index#merging"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+       Merge a data source to create multiple documents.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Document merge tutorial</title>
+
+    <p>Document Merge (sometimes called "Mail Merge") is a powerful
+      feature that allows a unique label or card to be printed for each
+      record in an external data source.  It is however, the most mis-understood
+      feature of <app>glabels</app>.  The following examples
+      will step through a couple of common tasks using the document merge
+      feature.</p>
+
+  <section id="merge-ex" style="2column">
+  </section>
+
+</page>
diff --git a/help/C/mergefeatures.page b/help/C/mergefeatures.page
new file mode 100644 (file)
index 0000000..e325527
--- /dev/null
@@ -0,0 +1,65 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      xmlns:e="http://projectmallard.org/experimental/"
+      type="guide"
+      id="mergefeatures">
+
+  <info>
+    <link type="guide" xref="index#merging"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+       What you may expect from a document merge.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Performing a document merge</title>
+
+      <p>Document Merge (sometimes called "Mail Merge") is a powerful
+        feature that allows a unique label or card to be printed for each
+        record in an external data source.</p>
+
+      <p>The first step to performing a document merge is to prepare
+        a source document that contains your merge data.  This data could
+        be mailing addresses or any other data that you wish to create
+        unique labels or cards for.  Currently back-ends only exist for
+        text files and the evolution data server -- others are planned.  The currently
+        supported text-file format is very simple:  each line is a record;
+        fields are delimited by commas (CSV), tabs, or colons; and newlines
+        can be embedded into fields by using the "\n" entity.  This file
+        could be created using any text editor or could be created by
+        another program or script.  A common way of creating CSV files is
+       to export them from a spreadsheet program.</p>
+
+      <p>A label must then be configured to "point at" this data file.
+        To configure the merge properties of a document, choose
+        <guiseq><gui>Objects</gui>
+        <gui>Merge Properties</gui></guiseq> menu item
+        to display the <gui>merge properties</gui> dialog.  This
+        dialog is used to select the exact data file format and file
+        name (location) of the merge data.</p>
+
+      <p>Finally, once the label has been configured for a data file,
+        field keys can be inserted into text objects and used as source
+        or data for barcode objects and image filenames for image objects.
+        See <link xref="editprop" /> for more information
+        on using merge data for these object types.</p>
+
+      <p>Now that your label is configured, <app>gLabels</app> will print a unique
+        label for each record in your source document -- substituting fields
+        from each record for field keys in the all text, barcode, and
+        image objects.</p>
+
+      <p>See <link xref="merge" /> for a detailed
+        tutorial on the document merge feature.</p>
+
+</page>
diff --git a/help/C/multifile.page b/help/C/multifile.page
new file mode 100644 (file)
index 0000000..acfa057
--- /dev/null
@@ -0,0 +1,39 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      xmlns:e="http://projectmallard.org/experimental/"
+      type="guide"
+      id="multifile">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      How to open multiple files at once by using the command line.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>To open multiple files from the command line</title>
+
+      <p>You can run <app>gLabels</app> from a command line
+       and open a single file or multiple files. To open multiple files from
+        a command line, type the following command, then press
+        <key>Return</key>:</p>
+
+      <p><cmd>glabels
+      <var>file1.glabels file2.glabels file3.glabels</var>
+      </cmd></p>
+
+      <p>When the application starts, the files that you specify are
+       displayed in separate <app>gLabels</app> windows.</p>
+
+</page>
diff --git a/help/C/newlabel.page b/help/C/newlabel.page
new file mode 100644 (file)
index 0000000..4b2809e
--- /dev/null
@@ -0,0 +1,35 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      xmlns:e="http://projectmallard.org/experimental/"
+      type="guide"
+      id="newlabel">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      Create a new label or card in <app>gLabels</app>.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>To create a new label or card</title>
+
+    <p>To create a new label or business card, choose 
+        <guiseq><gui>File</gui><gui>New</gui></guiseq>
+       to display the <gui>New Label or Card</gui> dialog. Select
+        the media type and orientation for the new document,
+       then click <gui>OK</gui>. A new document is
+       displayed in the display area of the <app>gLabels</app>
+        window. </p>
+
+</page>
diff --git a/help/C/printfile.page b/help/C/printfile.page
new file mode 100644 (file)
index 0000000..f55a6c0
--- /dev/null
@@ -0,0 +1,118 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      xmlns:e="http://projectmallard.org/experimental/"
+      type="guide"
+      id="printfile">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      How to print your labels and cards.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>To print labels and cards</title>
+
+      <p>To print labels or cards, choose
+        <guiseq><gui>File</gui><gui>Print</gui>
+       </guiseq> to display the <gui>Print</gui> dialog.
+        Once print options have been selected, click <gui>Print</gui>
+        to print the labels or cards.  To simply preview the results,
+        click <gui>Print Preview</gui> instead.</p>
+
+      <p>The <gui>Print</gui> dialog allows you to specify the
+        following print options:</p>
+
+      <section>
+       <title>The Labels Tab of the Print Dialog</title>
+
+       <section>
+            <title>Print control (Simple)</title>
+
+             <p>For simple labels or cards (no document merge), the job
+                tabbed section contains the following copy controls.</p>
+
+             <!-- ==== Figure ==== -->
+               <media type="image" src="figures/print-copies.png" mime="image/png" style="right">
+               <p>Print Copy Controls</p>
+               </media>
+             <!-- ==== End of Figure ==== -->
+
+             <p>The number of copies of the label can be selected by
+                choosing the number of full sheets to print, or a specific
+                subset of labels on a single sheet.</p>
+
+             <p>The mini-preview can also be used to graphically select
+                the subset of labels by clicking the first label on the
+                mini-preview and dragging to the last label.</p>
+
+         </section>
+
+         <section>
+            <title>Print control (Merge)</title>
+
+             <p>For labels or cards using the document merge (also known
+                as "mail merge") capability, the job tabbed section contains
+                the following merge controls instead of copy controls.</p>
+
+             <!-- ==== Figure ==== -->
+               <media type="image" src="figures/print-merge.png" mime="image/png" style="right">
+               <p>Print Document Merge Controls</p>
+               </media>
+             <!-- ==== End of Figure ==== -->
+
+             <p>The total number of labels or cards printed is the
+                product of the number of records in the merge source and
+                the number of copies selected.  If multiple copies are
+                selected, these can be either collated (copies of the
+                same record grouped together) or un-collated (one copy
+                each record is printed before next copy).</p>
+
+             <p>Printing can begin on any label on the first sheet.
+                This can be selected with the <gui>Start on
+                label</gui> spinbutton.</p>
+
+             <p>The mini-preview can also be used to graphically select
+                this first label, by clicking on the desired label in the
+                mini-preview.</p>
+
+         </section>
+
+         <section> 
+         <title>Options</title>
+             <p>The following options can also be selected.</p>
+             <list>
+               <item>
+                 <p><gui>print outlines</gui></p>
+                 <p>Print outlines of labels.  This option is useful for
+                    dry-runs, to test printer alignment.</p>
+               </item>
+               <item>
+                 <p><gui>print in reverse</gui></p>
+                 <p>Prints the labels as mirror images.  This option is
+                    useful for printing on clear labels that will be viewed
+                    from the reverse side (e.g. in a car window).</p>
+               </item>
+               <item>
+                 <p><gui>print crop marks</gui></p>
+                 <p>Prints crop marks along the edge of the sheet.
+                    This option is useful for printing on blank stock, to
+                    be cut after printing.  This option does not work well
+                    with all templates.</p>
+               </item>
+             </list>
+       </section>
+       </section>
+
+</page>
diff --git a/help/C/select.page b/help/C/select.page
new file mode 100644 (file)
index 0000000..dc3fea7
--- /dev/null
@@ -0,0 +1,129 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      xmlns:e="http://projectmallard.org/experimental/"
+      type="guide"
+      id="select">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      How to select objects.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>To select objects</title>
+
+      <p>A prerequisite for performing operations on objects is the
+        selection of individual objects or groups of objects.  The
+        display area must be in the object selection mode to create new
+        selections, as indicated by an arrow cursor.  The object
+        selection mode is selected by the
+        <guiseq><gui>Objects</gui>
+        <gui>Select Mode</gui></guiseq> menu item,
+        or the corresponding command on the <gui>Drawing
+        Toolbar</gui>.</p>
+
+      <section>
+         <title>Selecting a single object</title>
+           <p>A single object can be selected simply by clicking
+             on the desired object in the display area.
+             Once selected the object will be highlighted with a set of
+             resizing handles.</p>
+       </section>
+
+       <section>
+         <title>Aggregate object selections</title>
+           <p>Multiple objects can be selected by first selecting the first
+              object as above and then by holding the <key>Ctrl</key>
+              key while selecting additional objects.
+              Individual objects can be added to an existing selection
+              at any time by holding the <key>Ctrl</key> key while
+              selecting the desired objects.  All objects can also be
+              selected by using the <guiseq><gui>Edit</gui>
+              <gui>Select All</gui></guiseq>
+              menu item.  All objects in an aggregate object selection will be
+              highlighted.</p>
+       </section>
+
+       <section>
+         <title>Area selections</title>
+         
+           <p>Multiple objects can also be selected by clicking an empty
+              area and dragging to form a rectangular area.  When released,
+              all objects contained in the area will form an aggregate
+              selection.  An area selection can be used to add to an existing
+              selection by holding the <key>Ctrl</key> key while
+              performing the selection.</p>
+         
+       </section>
+
+       <section>
+         <title>Unselecting objects</title>
+         
+           <p>Individual objects can be removed from an existing
+              selection by holding the <key>Ctrl</key> key while
+              clicking on a previously selected object.  An entire selection
+              can be dismissed by using the <guiseq>
+             <gui>Edit</gui> <gui>Un-select All</gui>
+              </guiseq> menu item
+              or by simply clicking any empty space in the display area.
+              Once an object is unselected its highlight is removed.</p>
+         
+       </section>
+
+    <section id="clipboard"> 
+      <title>Clipboard Commands</title>
+
+      <p>Object selections can be manipulated using the standard clipboard
+        operations <gui>Cut</gui>,
+        <gui>Copy</gui>, <gui>Paste</gui>,
+        and <gui>Delete</gui>.</p>
+
+       <section>
+         <title><gui>Cut</gui> (<keyseq><key>Ctrl</key><key>X</key></keyseq>)</title>
+         
+           <p>Moves selected objects to the clipboard.  The objects are
+              then available for pasting back into the current document or
+              another document.</p>
+         
+       </section>
+
+       <section>
+         <title><gui>Copy</gui> (<keyseq><key>Ctrl</key><key>C</key></keyseq>)</title>
+         
+           <p>Copies selected objects to the clipboard without deleting
+              them.  The objects are then available for pasting back into
+              the current document or another document.</p>
+         
+       </section>
+
+       <section>
+         <title><gui>Paste</gui> (<keyseq><key>Ctrl</key><key>V</key></keyseq>)</title>
+         
+           <p>Pastes objects from the clipboard into the current document.
+              <app>gLabels</app> can only paste objects from
+              another <app>gLabels</app> document.</p>
+         
+       </section>
+
+       <section>
+         <title><gui>Delete</gui> (<key>Del</key>)</title>
+         
+           <p>Deletes selected objects without placing them on the
+              clipboard.</p>
+         
+       </section>
+       </section>
+
+</page>
diff --git a/help/C/skipfields.page b/help/C/skipfields.page
new file mode 100644 (file)
index 0000000..d7030ab
--- /dev/null
@@ -0,0 +1,57 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      xmlns:e="http://projectmallard.org/experimental/"
+      type="guide"
+      id="mergeskipfields">
+
+  <info>
+    <link type="guide" xref="index#merging"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+       How to skip blank address lines when doing a document merge.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+  <title>Skipping blank address lines</title>
+
+  <p>This feature can be best described by a simple example.  In the
+  following CSV file, column 5 (ADDR2) contains the second address line
+  for each record.  This field is empty in records 1 and 2, but not in
+  record 3. (For this feature to work, the field must be completely
+  empty -- any text, including spaces will defeat this feature.)</p>
+
+  <code>
+  LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP
+  Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037
+  McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813
+  Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207
+  </code>
+
+  <p>In the following screenshot, a single multiline text object has been
+  created to format these addresses.  Notice that ${ADDR2} representing
+  the second address line is on a line by itself.  (Any additional text
+  on this line, including spaces would defeat this feature.)</p>
+
+  <media type="image" src="figures/skip-fields-screenshot.png" mime="image/png" style="right">
+  <p>Multi-line address</p>
+  </media>
+
+  <p>Printing this label results in the following output.  Notice that the
+  line containing the ${ADDR2} field is completely skipped for the first
+  two records, without printing a blank line.</p>
+
+  <media type="image" src="figures/skip-fields-output.png" mime="image/png" style="right">
+  <p>Output</p>
+  </media>
+
+</page>
index 3ed935f623c3496ffb598509cae6c9761623d6dc..4177122c07d915d56665fc8224a23d9b1396fd81 100644 (file)
@@ -2,25 +2,51 @@ include $(top_srcdir)/gnome-doc-utils.make
 
 dist-hook: doc-dist-hook
 
-DOC_MODULE = glabels
-DOC_ENTITIES = legal.xml 
-DOC_INCLUDES =
-DOC_FIGURES = figures/glabels-template-cd.png          \
-              figures/glabels-template-label.png       \
-             figures/glabels-template-layout.png       \
-             figures/main-window-empty.png             \
-             figures/merge-ex1-1.png                   \
-             figures/merge-ex1-2.png                   \
-             figures/merge-ex1-3.png                   \
-             figures/merge-ex1-4.png                   \
-             figures/merge-ex2-1.png                   \
-             figures/merge-ex2-2.png                   \
-             figures/merge-ex2-3.png                   \
-             figures/merge-ex2-4.png                   \
-             figures/merge-ex3-1.png                   \
-             figures/merge-ex3-2.png                   \
-             figures/object-editor-sidebar.png         \
-             figures/print-copies.png                  \
-             figures/print-merge.png
+DOC_ID = $(GLABELS_BRANCH)
+DOC_FIGURES = \
+       figures/glabels-logo.png                        \
+       figures/glabels-template-cd-label.png           \
+       figures/glabels-template-circle-label.png       \
+       figures/glabels-template-ellipse-label.png      \
+       figures/glabels-template-layout.png             \
+       figures/glabels-template-rect-label.png         \
+       figures/introduction-glabels-main-window.png    \
+       figures/main-window-empty.png                   \
+       figures/merge-ex1-1.png                         \
+       figures/merge-ex1-2.png                         \
+       figures/merge-ex1-3.png                         \
+       figures/merge-ex1-4.png                         \
+       figures/merge-ex2-1.png                         \
+       figures/merge-ex2-2.png                         \
+       figures/merge-ex2-3.png                         \
+       figures/merge-ex2-4.png                         \
+       figures/object-editor-sidebar.png               \
+       figures/print-copies.png                        \
+       figures/print-merge.png                         \
+       figures/skip-fields-output.png                  \
+       figures/skip-fields-screenshot.png
 
-DOC_LINGUAS = cs de es fr
+DOC_PAGES = \
+       about.page              \
+       basicusage.page         \
+       createnew.page          \
+       customize.page          \
+       customtemplate.page     \
+       editprop.page           \
+       index.page              \
+       labelprop.page          \
+       license.page            \
+       mancreate.page          \
+       merge-ex1.page          \
+       merge-ex2.page          \
+       merge-ex3.page          \
+       merge-ex4.page          \
+       mergefeatures.page      \
+       merge.page              \
+       multifile.page          \
+       newlabel.page           \
+       printfile.page          \
+       select.page             \
+       skipfields.page
+
+DOC_LINGUAS = cs de es fr nl sl
index c8b57ac233606bd7b068dd9d78c76bb57eac1b9e..2ce87bead464f299c766f26cc4933370791b467d 100644 (file)
@@ -61,24 +61,32 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
        $(top_srcdir)/gnome-doc-utils.make
 subdir = help
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALL_LINGUAS = @ALL_LINGUAS@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
+CAIRO_REQUIRED = @CAIRO_REQUIRED@
 CATALOGS = @CATALOGS@
 CATOBJEXT = @CATOBJEXT@
 CC = @CC@
@@ -92,6 +100,7 @@ DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
 DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DLLTOOL = @DLLTOOL@
 DOC_USER_FORMATS = @DOC_USER_FORMATS@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
@@ -101,17 +110,23 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
+GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLABELS_BRANCH = @GLABELS_BRANCH@
 GLABELS_CFLAGS = @GLABELS_CFLAGS@
 GLABELS_LIBS = @GLABELS_LIBS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GLIB_REQUIRED = @GLIB_REQUIRED@
 GMOFILES = @GMOFILES@
 GMSGFMT = @GMSGFMT@
 GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
 GTK_REQUIRED = @GTK_REQUIRED@
-HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@
+GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@
 HELP_DIR = @HELP_DIR@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -127,31 +142,45 @@ INTLTOOL_PERL = @INTLTOOL_PERL@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
+LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@
+LIBBARCODE_LIBS = @LIBBARCODE_LIBS@
+LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@
 LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
 LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
 LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
+LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@
+LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@
 LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
 LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
-LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@
-LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@
-LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@
-LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@
+LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@
+LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@
+LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@
+LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@
+LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@
+LIBIEC16022_LIBS = @LIBIEC16022_LIBS@
+LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@
 LIBOBJS = @LIBOBJS@
+LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@
+LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@
+LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@
+LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBXML_REQUIRED = @LIBXML_REQUIRED@
+LIBZINT_CFLAGS = @LIBZINT_CFLAGS@
+LIBZINT_LIBS = @LIBZINT_LIBS@
+LIBZINT_REQUIRED = @LIBZINT_REQUIRED@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MKINSTALLDIRS = @MKINSTALLDIRS@
 MSGFMT = @MSGFMT@
 MSGFMT_OPTS = @MSGFMT_OPTS@
 MSGMERGE = @MSGMERGE@
-MYGAL_CFLAGS = @MYGAL_CFLAGS@
-MYGAL_LIBS = @MYGAL_LIBS@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -164,9 +193,13 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_REQUIRED = @PANGO_REQUIRED@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 POFILES = @POFILES@
 POSUB = @POSUB@
 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -176,18 +209,15 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
-UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@
-UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
 WARN_CFLAGS = @WARN_CFLAGS@
 XGETTEXT = @XGETTEXT@
-XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@
-XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 am__include = @am__include@
@@ -207,6 +237,7 @@ datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
 exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
 host = @host@
 host_alias = @host_alias@
 host_cpu = @host_cpu@
@@ -220,7 +251,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -305,6 +335,7 @@ _DOC_C_HTML = $(foreach f,                                          \
 _DOC_POFILES = $(if $(DOC_MODULE)$(DOC_ID),                                    \
        $(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(lc).po))
 
+_DOC_MOFILES = $(patsubst %.po,%.mo,$(_DOC_POFILES))
 _DOC_LC_MODULES = $(if $(DOC_MODULE),                                          \
        $(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xml))
 
@@ -333,7 +364,7 @@ _DOC_SRC_FIGURES = \
        $(foreach fig,$(_DOC_C_FIGURES), $(foreach lc,C $(_DOC_REAL_LINGUAS),   \
                $(wildcard $(srcdir)/$(lc)/$(patsubst C/%,%,$(fig))) ))
 
-_DOC_POT = $(if $(DOC_MODULE),$(DOC_MODULE).pot)
+_DOC_POT = $(if $(DOC_MODULE),$(DOC_MODULE).pot,$(if $(DOC_ID),$(DOC_ID).pot))
 
 ################################################################################
 _DOC_HTML_ALL = $(if $(filter html HTML,$(_DOC_REAL_FORMATS)), \
@@ -345,28 +376,54 @@ _clean_dsk = $(if $(_DOC_DSK_IN),clean-doc-dsk)
 _clean_lc = $(if $(_DOC_REAL_LINGUAS),clean-doc-lc)
 _clean_dir = $(if $(DOC_MODULE)$(DOC_ID),clean-doc-dir)
 _doc_install_dir = $(if $(DOC_ID),$(DOC_ID),$(DOC_MODULE))
-DOC_MODULE = glabels
-DOC_ENTITIES = legal.xml 
-DOC_INCLUDES = 
-DOC_FIGURES = figures/glabels-template-cd.png          \
-              figures/glabels-template-label.png       \
-             figures/glabels-template-layout.png       \
-             figures/main-window-empty.png             \
-             figures/merge-ex1-1.png                   \
-             figures/merge-ex1-2.png                   \
-             figures/merge-ex1-3.png                   \
-             figures/merge-ex1-4.png                   \
-             figures/merge-ex2-1.png                   \
-             figures/merge-ex2-2.png                   \
-             figures/merge-ex2-3.png                   \
-             figures/merge-ex2-4.png                   \
-             figures/merge-ex3-1.png                   \
-             figures/merge-ex3-2.png                   \
-             figures/object-editor-sidebar.png         \
-             figures/print-copies.png                  \
-             figures/print-merge.png
-
-DOC_LINGUAS = cs de es fr
+DOC_ID = $(GLABELS_BRANCH)
+DOC_FIGURES = \
+       figures/glabels-logo.png                        \
+       figures/glabels-template-cd-label.png           \
+       figures/glabels-template-circle-label.png       \
+       figures/glabels-template-ellipse-label.png      \
+       figures/glabels-template-layout.png             \
+       figures/glabels-template-rect-label.png         \
+       figures/introduction-glabels-main-window.png    \
+       figures/main-window-empty.png                   \
+       figures/merge-ex1-1.png                         \
+       figures/merge-ex1-2.png                         \
+       figures/merge-ex1-3.png                         \
+       figures/merge-ex1-4.png                         \
+       figures/merge-ex2-1.png                         \
+       figures/merge-ex2-2.png                         \
+       figures/merge-ex2-3.png                         \
+       figures/merge-ex2-4.png                         \
+       figures/object-editor-sidebar.png               \
+       figures/print-copies.png                        \
+       figures/print-merge.png                         \
+       figures/skip-fields-output.png                  \
+       figures/skip-fields-screenshot.png
+
+DOC_PAGES = \
+       about.page              \
+       basicusage.page         \
+       createnew.page          \
+       customize.page          \
+       customtemplate.page     \
+       editprop.page           \
+       index.page              \
+       labelprop.page          \
+       license.page            \
+       mancreate.page          \
+       merge-ex1.page          \
+       merge-ex2.page          \
+       merge-ex3.page          \
+       merge-ex4.page          \
+       mergefeatures.page      \
+       merge.page              \
+       multifile.page          \
+       newlabel.page           \
+       printfile.page          \
+       select.page             \
+       skipfields.page
+
+DOC_LINGUAS = cs de es fr nl sl
 all: all-am
 
 .SUFFIXES:
@@ -640,7 +697,7 @@ _db2omf  ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
 _malrng  ?= `$(PKG_CONFIG) --variable malrng gnome-doc-utils`
 _chunks  ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
 _credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
-_ids ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl
+_ids ?= $(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl
 @ENABLE_SK_TRUE@_skpkgdatadir ?= `scrollkeeper-config --pkgdatadir`
 @ENABLE_SK_TRUE@_sklocalstatedir ?= `scrollkeeper-config --pkglocalstatedir`
 @ENABLE_SK_TRUE@_skcontentslist ?= $(_skpkgdatadir)/Templates/C/scrollkeeper_cl.xml
@@ -667,6 +724,9 @@ omf: $(_DOC_OMF_ALL)
 .PHONY: po
 po: $(_DOC_POFILES)
 
+.PHONY: mo
+mo: $(_DOC_MOFILES)
+
 $(_DOC_POFILES):
        @if ! test -d $(dir $@); then \
          echo "mkdir $(dir $@)"; \
@@ -694,16 +754,23 @@ $(_DOC_POFILES):
            $(_xml2po) -m $(_xml2po_mode) -e -u $(notdir $@) $$docs); \
        fi
 
+$(_DOC_MOFILES): %.mo: %.po
+       @if ! test -d $(dir $@); then \
+         echo "mkdir $(dir $@)"; \
+         mkdir "$(dir $@)"; \
+       fi
+       msgfmt -o $@ $<
+
 # FIXME: fix the dependancy
 # FIXME: hook xml2po up
-$(_DOC_LC_DOCS) : $(_DOC_POFILES)
+$(_DOC_LC_DOCS) : $(_DOC_MOFILES)
 $(_DOC_LC_DOCS) : $(_DOC_C_DOCS)
        if ! test -d $(dir $@); then mkdir $(dir $@); fi
        if [ -f "C/$(notdir $@)" ]; then d="../"; else d="$(_DOC_ABS_SRCDIR)/"; fi; \
-       po="$(dir $@)$(patsubst %/$(notdir $@),%,$@).po"; \
-       if [ -f "$${po}" ]; then po="../$${po}"; else po="$(_DOC_ABS_SRCDIR)/$${po}"; fi; \
+       mo="$(dir $@)$(patsubst %/$(notdir $@),%,$@).mo"; \
+       if [ -f "$${mo}" ]; then mo="../$${mo}"; else mo="$(_DOC_ABS_SRCDIR)/$${mo}"; fi; \
        (cd $(dir $@) && \
-         $(_xml2po) -m $(_xml2po_mode) -e -p "$${po}" \
+         $(_xml2po) -m $(_xml2po_mode) -e -t "$${mo}" \
            "$${d}C/$(notdir $@)" > $(notdir $@).tmp && \
            cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp)
 .PHONY: pot
@@ -729,12 +796,14 @@ clean-doc-omf: ; rm -f $(_DOC_OMF_DB) $(_DOC_OMF_HTML)
 clean-doc-dsk: ; rm -f $(_DOC_DSK_DB) $(_DOC_DSK_HTML)
 clean-doc-lc:
        rm -f $(_DOC_LC_DOCS)
+       rm -f $(_DOC_MOFILES)
        @list='$(_DOC_POFILES)'; for po in $$list; do \
          if ! test "$$po" -ef "$(srcdir)/$$po"; then \
            echo "rm -f $$po"; \
            rm -f "$$po"; \
          fi; \
        done
+#      .xml2.po.mo cleaning is obsolete as of 0.18.1 and could be removed in 0.20.x
        @for lc in C $(_DOC_REAL_LINGUAS); do \
          if test -f "$$lc/.xml2po.mo"; then \
            echo "rm -f $$lc/.xml2po.mo"; \
diff --git a/help/cs/about.page b/help/cs/about.page
new file mode 100644 (file)
index 0000000..4cef785
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="topic" id="about" xml:lang="cs">
+
+  <info>
+    <link type="seealso" xref="index"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Informace o <app>gLabels</app>.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>O aplikaci <application>gLabels</application></title>
+
+    <p>Aplikaci <app>gLabels</app> napsal <link href="mailto:evins@snaught.com">Jim Evins</link>. Pokud o ní chcete najít více informací, navštivte prosím <link href="http://glabels.org" type="http">webovou stránku <app>gLabels</app>.</link></p>
+    <p>Pokud chcete oznámit chybu nebo navrhnout vylepšení vztahující se k této aplikaci nebo této příručce, postupujte dle instrukcí na <link href="http://glabels.org/contact/" type="http">kontaktní stránce <app>gLabels</app>.</link></p>
+
+    <p>Tento program je šířen podle ustanovení GNU General Public License, vydávané Free Software Foundation; a to buď verze 3 této licence anebo (podle vlastního uvážení) kterékoliv pozdější verze. Kopii této licence naleznete pod tímto <link href="ghelp:gpl" type="help">odkazem</link> nebo v souboru COPYING přiloženém ke zdrojovým kódům tohoto programu. </p>
+</page>
diff --git a/help/cs/basicusage.page b/help/cs/basicusage.page
new file mode 100644 (file)
index 0000000..4cfd6a9
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="basicusage" xml:lang="cs">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Práce se soubory a ukončení aplikace.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+   <title>Základy používání</title>
+    
+    <section>
+    <title>Jak otevřít soubor</title>
+
+      <p>Soubor otevřete pomocí volby <guiseq><gui>Soubor</gui><gui>Otevřít</gui></guiseq>, která zobrazí dialogové okno <gui>Otevření souboru</gui>. Vyberte soubor, který chcete otevřít a klikněte na <gui>OK</gui>. Soubor se zobrazí v zobrazovací oblasti okna <app>gLabels</app>.</p>
+
+      <p>V aplikaci <app>gLabels</app> můžete otevřít i více souborů naráz. Aplikace pro každý otevřený soubor vytvoří samostatné okno.</p>
+
+      <p>Pro soubory nedávno otevřené k úpravě si aplikace zaznamenává cesty a názvy a tyto soubory potom zobrazuje v nabídce <guiseq><gui>Soubor</gui><gui>Otevřít nedávné soubory</gui></guiseq>.</p>
+     </section>
+
+     <section id="closefile">
+    <title>Jak zavřít soubor</title>
+
+      <p>Když chcete aktuální dokument zavřít, zvolte <guiseq><gui>Soubor</gui><gui>Zavřít</gui></guiseq> a zavřete tím aplikační okno. Pokud byl aktuální dokument změněn, zobrazí se potvrzovací dialogové okno, kde můžete dokument uložit nebo příkaz zrušit. Pokud je zavírané okno jediné otevřené, ukončí se celá aplikace <app>gLabels</app>.</p>
+     </section>
+     
+     <section>
+    <title>Jak uložit soubor</title>
+
+      <p>Soubory můžete uložit následujícími způsoby:</p>
+
+      <list><item>
+
+         <p>Pro uložení změn do stávajícího souboru, zvolte <guiseq><gui>Soubor</gui><gui>Uložit</gui></guiseq>.</p>
+
+       </item>
+        <item>
+
+         <p>Pro uložení nového souboru nebo uložení stávajícího souboru pod novým názvem, zvolte <guiseq><gui>Soubor</gui><gui>Uložit jako</gui></guiseq>. V dialogovém okně <gui>Uložení jako</gui> zadejte pro soubor název a klikněte na <gui>OK</gui>.</p>
+
+       </item>
+      </list>
+     </section>
+
+     <section>
+    <title>Jak ukončit <application>gLabels</application></title>
+
+      <p>Když chcete aplikaci <app>gLabels</app> ukončit, zvolte <guiseq><gui>Soubor</gui><gui>Ukončit</gui></guiseq>. Odpovídá to zavření všech otevřených oken. Viz <link xref="basicusage#closefile"/>.</p>
+     </section>
+</page>
diff --git a/help/cs/createnew.page b/help/cs/createnew.page
new file mode 100644 (file)
index 0000000..b6b881c
--- /dev/null
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="createnew" xml:lang="cs">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Jak vytvořit nový objekt ve vašich dokumentech.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Vytváření nových objektů</title>
+
+      <p>Objekty se vytvářejí příslušným výběrem v podnabídce <guiseq><gui>Objekty</gui><gui>Vytvořit</gui></guiseq> nebo na <gui>Liště kreslení</gui>. Zobrazovací oblast se přepne do režimu vytváření objektu, což je signalizováno patřičným ukazatelem. Do výchozího režimu výběru objektů se můžete vrátit, aniž byste nějaký objekt vytvořili, volbou <guiseq><gui>Objekty</gui><gui>Režim výběru</gui></guiseq>. Ukazatel pro zobrazovací oblast se změní zpět na výchozí šipku.</p>
+
+      <p>Zde je popis režimu vytváření objektu pro jednotlivé typy objektů:</p>
+
+       <section>
+         <title>Text</title>
+           <p>Klikněte na požadované umístění levého horního rohu objektu text. Nový textový objekt se vytvoří s počátečním řetězcem „Text“. Jak tento text nebo další vlastnosti změnit uvádí <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Obdélník</title>
+           <p>Klikněte na požadované umístění levého horního rohu objektu obdélník a táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše kliknete na jednom místě, vytvoří se čtverec. Jak změnit vlastnosti obdélníku uvádí <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Čára</title>
+           <p>Klikněte na požadované umístění levého horního konce objektu čára a táhněte k požadovanému umístění pravého dolního konce. Když jednoduše kliknete na jednom místě, vytvoří diagonální úsečka. Jak změnit vlastnosti čáry uvádí <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Elipsa</title>
+           <p>Klikněte na požadované umístění levého horního rohu objektu elipsa a táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše kliknete na jednom místě, vytvoří se kruh. Jak změnit vlastnosti elipsy uvádí <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Obrázek</title>
+           <p>Klikněte na požadované umístění levého horního rohu objektu obrázku a táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše kliknete na jednom místě, vytvoří se čtverec. Nový obrázkový objekt se vytvoří s jednoduchým počátečním obrázkem šachovnice. Jak změnit tento obrázek a další vlastnosti uvádí <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Čárový kód</title>
+           <p>Klikněte na požadované umístění levého horního rohu objektu čárového kódu. Nový objekt čárového kódu se vytvoří jako čárový kód POSTNET s ukázkovými daty. Jak tato data nebo další vlastnosti změnit uvádí <link xref="editprop"/>.</p>
+       </section>
+
+</page>
index 86f22876f879214395481bc302d1d3c1e1dbbf4b..671670371aa26c1c2e0e66ea78cbbf84742841a9 100644 (file)
 # Czech translation for glabels help.
 # Copyright (C) 2010 glabels's COPYRIGHT HOLDER
 # This file is distributed under the same license as the glabels help.
-# Marek Černocký <marek@manet.cz>, 2010.
+# Marek Černocký <marek@manet.cz>, 2010, 2011.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: glabels glabels_2_2\n"
-"POT-Creation-Date: 2010-02-19 11:58+0000\n"
-"PO-Revision-Date: 2010-02-19 21:31+0100\n"
+"Project-Id-Version: glabels\n"
+"POT-Creation-Date: 2011-04-03 14:39+0000\n"
+"PO-Revision-Date: 2011-04-20 23:59+0200\n"
 "Last-Translator: Marek Černocký <marek@manet.cz>\n"
 "Language-Team: Czech <gnome-cs-list@gnome.org>\n"
 "MIME-Version: 1.0\n"
+"Language: cs\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:195(None)
+#: C/skipfields.page:45(None)
 msgid ""
-"@@image: 'figures/main-window-empty.png'; "
-"md5=226b58f05f4171531066358a29cda1a7"
+"@@image: 'figures/skip-fields-screenshot.png'; "
+"md5=eef4a81f48546bd7d3753656a3df9cb7"
 msgstr ""
-"@@image: 'figures/main-window-empty.png'; "
-"md5=226b58f05f4171531066358a29cda1a7"
+"@@image: 'figures/skip-fields-screenshot.png'; "
+"md5=eef4a81f48546bd7d3753656a3df9cb7"
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:447(None)
-msgid ""
-"@@image: 'figures/print-copies.png'; md5=ebb4d08810a67cc9cd7ec6ddd7b52fb0"
-msgstr ""
-"@@image: 'figures/print-copies.png'; md5=ebb4d08810a67cc9cd7ec6ddd7b52fb0"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:479(None)
-msgid ""
-"@@image: 'figures/print-merge.png'; md5=ffe6027513a10f7ba940c350c1dc5717"
-msgstr ""
-"@@image: 'figures/print-merge.png'; md5=ffe6027513a10f7ba940c350c1dc5717"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:790(None)
-msgid ""
-"@@image: 'figures/object-editor-sidebar.png'; "
-"md5=14eace177c1f5bfe36022acbbd6a9f0e"
-msgstr ""
-"@@image: 'figures/object-editor-sidebar.png'; "
-"md5=14eace177c1f5bfe36022acbbd6a9f0e"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1231(None)
-msgid ""
-"@@image: 'figures/merge-ex1-1.png'; md5=55a97963022047cdad6aa198b5ed698e"
-msgstr ""
-"@@image: 'figures/merge-ex1-1.png'; md5=55a97963022047cdad6aa198b5ed698e"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1256(None)
-msgid ""
-"@@image: 'figures/merge-ex1-2.png'; md5=d03979f010e20e98532258edb20b1bc0"
-msgstr ""
-"@@image: 'figures/merge-ex1-2.png'; md5=d03979f010e20e98532258edb20b1bc0"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1284(None)
-msgid ""
-"@@image: 'figures/merge-ex1-3.png'; md5=94e382ccdfbc2fe5d320010d2ef10c61"
-msgstr ""
-"@@image: 'figures/merge-ex1-3.png'; md5=94e382ccdfbc2fe5d320010d2ef10c61"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1302(None)
-msgid ""
-"@@image: 'figures/merge-ex1-4.png'; md5=e72810bc3c191df6c8b2ad0cb1131021"
-msgstr ""
-"@@image: 'figures/merge-ex1-4.png'; md5=e72810bc3c191df6c8b2ad0cb1131021"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1348(None)
-msgid ""
-"@@image: 'figures/merge-ex2-1.png'; md5=4f062158be21bfadc4adfbdcf5d0206f"
-msgstr ""
-"@@image: 'figures/merge-ex2-1.png'; md5=4f062158be21bfadc4adfbdcf5d0206f"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1374(None)
-msgid ""
-"@@image: 'figures/merge-ex2-2.png'; md5=f69a7e0ae86f66b0d70d39a7757918fa"
-msgstr ""
-"@@image: 'figures/merge-ex2-2.png'; md5=f69a7e0ae86f66b0d70d39a7757918fa"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1399(None) C/glabels.xml:1513(None)
-msgid ""
-"@@image: 'figures/merge-ex2-3.png'; md5=f5134b9e911ebdd17d4a5b36a5ba56d0"
-msgstr ""
-"@@image: 'figures/merge-ex2-3.png'; md5=f5134b9e911ebdd17d4a5b36a5ba56d0"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1417(None) C/glabels.xml:1531(None)
-msgid ""
-"@@image: 'figures/merge-ex2-4.png'; md5=29a60e970cb026aecf75543203494b00"
-msgstr ""
-"@@image: 'figures/merge-ex2-4.png'; md5=29a60e970cb026aecf75543203494b00"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1464(None)
-msgid ""
-"@@image: 'figures/merge-ex3-1.png'; md5=b0c387b5fcfd730b2ae75172895ff5b8"
-msgstr ""
-"@@image: 'figures/merge-ex3-1.png'; md5=b0c387b5fcfd730b2ae75172895ff5b8"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1492(None)
-msgid ""
-"@@image: 'figures/merge-ex3-2.png'; md5=09f105e133657345e6e478a464e5b49f"
-msgstr ""
-"@@image: 'figures/merge-ex3-2.png'; md5=09f105e133657345e6e478a464e5b49f"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1767(None)
-msgid ""
-"@@image: 'figures/glabels-template-label.png'; "
-"md5=b7db4090373462b8d45feb22d4cd5646"
-msgstr ""
-"@@image: 'figures/glabels-template-label.png'; "
-"md5=b7db4090373462b8d45feb22d4cd5646"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1888(None)
-msgid ""
-"@@image: 'figures/glabels-template-cd.png'; "
-"md5=145b49a5380de63ffa9451d2bbb81934"
-msgstr ""
-"@@image: 'figures/glabels-template-cd.png'; "
-"md5=145b49a5380de63ffa9451d2bbb81934"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:2150(None)
-msgid ""
-"@@image: 'figures/glabels-template-layout.png'; "
-"md5=a8adcff0584be1f0275bc2a169a580df"
-msgstr ""
-"@@image: 'figures/glabels-template-layout.png'; "
-"md5=a8adcff0584be1f0275bc2a169a580df"
-
-#: C/glabels.xml:31(title)
-msgid "<application>gLabels</application> Manual V2.2.6"
-msgstr "Příručka V2.2.6 k aplikaci <application>gLabels</application>"
-
-#: C/glabels.xml:33(para)
-msgid ""
-"User manual for the <application>gLabels</application> label and business "
-"card creation program"
-msgstr ""
-"Uživatelská příručka k aplikaci <application>gLabels</application> na "
-"vytváření etiket a vizitek"
-
-#: C/glabels.xml:38(year)
-msgid "2003-2009"
-msgstr "2003-2009"
-
-#: C/glabels.xml:39(holder) C/glabels.xml:42(publishername)
-#: C/glabels.xml:93(para) C/glabels.xml:103(para)
+#: C/skipfields.page:53(None)
+msgid ""
+"@@image: 'figures/skip-fields-output.png'; "
+"md5=b64d1a7fdf0d37e9a6d93f0bc2f9fa0d"
+msgstr ""
+"@@image: 'figures/skip-fields-output.png'; "
+"md5=b64d1a7fdf0d37e9a6d93f0bc2f9fa0d"
+
+#: C/skipfields.page:9(desc)
+msgid "How to skip blank address lines when doing a document merge."
+msgstr "Jak přeskakovat prázdné řádky v adresách při slučování dokumentu."
+
+#: C/skipfields.page:13(name) C/select.page:13(name) C/printfile.page:13(name)
+#: C/newlabel.page:13(name) C/multifile.page:13(name) C/merge.page:13(name)
+#: C/mergefeatures.page:13(name) C/merge-ex4.page:13(name)
+#: C/merge-ex3.page:13(name) C/merge-ex2.page:13(name)
+#: C/merge-ex1.page:13(name) C/mancreate.page:14(name)
+#: C/labelprop.page:13(name) C/index.page:11(name) C/editprop.page:13(name)
+#: C/customtemplate.page:13(name) C/customize.page:11(name)
+#: C/createnew.page:13(name) C/basicusage.page:13(name) C/about.page:13(name)
 msgid "Jim Evins"
 msgstr "Jim Evins"
 
-#: C/glabels.xml:2(para)
-msgid ""
-"Permission is granted to copy, distribute and/or modify this document under "
-"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any "
-"later version published by the Free Software Foundation with no Invariant "
-"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy "
-"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or "
-"in the file COPYING-DOCS distributed with this manual."
-msgstr ""
-"Je povoleno kopírovat, šířit a/nebo upravovat tento dokument za podmínek GNU "
-"Free Documentation License, verze 1.1 nebo jakékoli další verze vydané "
-"nadací Free Software Foundation; bez neměnných oddílů, bez textů předních "
-"desek a bez textů zadních desek. Kopie této licence je zahrnuta v oddílu "
-"jménem <ulink type=\"help\" url=\"ghelp:fdl\">GNU Free Documentation "
-"License</ulink> nebo v souboru COPYING-DOCS dodávaném s touto příručkou."
-
-#: C/glabels.xml:12(para)
-msgid ""
-"This manual is part of a collection of GNOME manuals distributed under the "
-"GFDL. If you want to distribute this manual separately from the collection, "
-"you can do so by adding a copy of the license to the manual, as described in "
-"section 6 of the license."
-msgstr ""
-"Tato příručka je součástí kolekce příruček GNOME, distribuovaných pod "
-"licencí GNU FDL. Pokud chcete tento dokument šířit odděleně od kolekce, "
-"musíte přiložit kopii licence dle popisu v sekci 6 dané licence."
-
-#: C/glabels.xml:19(para)
-msgid ""
-"Many of the names used by companies to distinguish their products and "
-"services are claimed as trademarks. Where those names appear in any GNOME "
-"documentation, and the members of the GNOME Documentation Project are made "
-"aware of those trademarks, then the names are in capital letters or initial "
-"capital letters."
-msgstr ""
-"Mnoho užívaných jmen určených k zviditelnění produktů nebo služeb jsou "
-"ochranné známky. Na místech, kde jsou tato jména v dokumentaci užita a "
-"členové Dokumentačního projektu GNOME jsou si vědomi skutečnosti, že se "
-"jedná o ochrannou známku, je takové jméno psáno velkými písmeny celé nebo s "
-"velkým písmenem na začátku."
-
-#: C/glabels.xml:35(para)
-msgid ""
-"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, "
-"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT "
-"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS "
-"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE "
-"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR "
-"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR "
-"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL "
-"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY "
-"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN "
-"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION "
-"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND"
-msgstr ""
-"DOKUMENT JE POSKYTOVÁN V PODOBĚ „JAK JE“ BEZ ZÁRUKY V JAKÉKOLIV PODOBĚ, "
-"NEPOSKYTUJÍ SE ANI ODVOZENÉ ZÁRUKY, ZÁRUKY, ŽE DOKUMENT, NEBO JEHO UPRAVENÁ "
-"VERZE, JE BEZCHYBNÝ NEBO ZÁRUKY PRODEJNOSTI, VHODNOSTI PRO URČITÝ ÚČEL NEBO "
-"NEPORUŠENOSTI. RIZIKO NEKVALITY, NEPŘESNOSTI A ŠPATNÉHO PROVEDENÍ DOKUMENTU, "
-"NEBO JEHO UPRAVENÉ VERZE, LEŽÍ NA VÁS. POKUD KVŮLI TOMUTO DOKUMENTU, NEBO "
-"JEHO UPRAVENÉ VERZI, NASTANE PROBLÉM, VY (NIKOLIV PŮVODNÍ AUTOR NEBO "
-"JAKÝKOLIV PŘISPĚVATEL) PŘEBÍRÁTE JAKÉKOLIV NÁKLADY ZA NUTNÉ ÚPRAVY, OPRAVY "
-"ČI SLUŽBY. TOTO PROHLÁŠENÍ O ZÁRUCE PŘEDSTAVUJE ZÁKLADNÍ SOUČÁST TÉTO "
-"LICENCE. BEZ TOHOTO PROHLÁŠENÍ NENÍ, PODLE TÉTO DOHODY, POVOLENO UŽÍVÁNÍ ANI "
-"ÚPRAVY TOHOTO DOKUMENTU; DÁLE"
-
-#: C/glabels.xml:55(para)
-msgid ""
-"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING "
-"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY "
-"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE "
-"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON "
-"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF "
-"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, "
-"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES "
-"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED "
-"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE "
-"POSSIBILITY OF SUCH DAMAGES."
-msgstr ""
-"ZA ŽÁDNÝCH OKOLNOSTÍ A ŽÁDNÝCH PRÁVNÍCH PŘEDPOKLADŮ, AŤ SE JEDNÁ O PŘEČIN "
-"(VČETNĚ NEDBALOSTNÍCH), SMLOUVU NEBO JINÉ, NENÍ AUTOR, PŮVODNÍ PISATEL, "
-"KTERÝKOLIV PŘISPĚVATEL NEBO KTERÝKOLIV DISTRIBUTOR TOHOTO DOKUMENTU NEBO "
-"UPRAVENÉ VERZE DOKUMENTU NEBO KTERÝKOLIV DODAVATEL NĚKTERÉ Z TĚCHTO STRAN "
-"ODPOVĚDNÝ NĚJAKÉ OSOBĚ ZA PŘÍMÉ, NEPŘÍMÉ, SPECIÁLNÍ, NAHODILÉ NEBO NÁSLEDNÉ "
-"ŠKODY JAKÉHOKOLIV CHARAKTERU, VČETNĚ, ALE NEJEN, ZA POŠKOZENÍ ZE ZTRÁTY "
-"DOBRÉHO JMÉNA, PŘERUŠENÍ PRÁCE, PORUCHY NEBO NESPRÁVNÉ FUNKCE POČÍTAČE NEBO "
-"JINÉHO A VŠECH DALŠÍCH ŠKOD NEBO ZTRÁT VYVSTÁVAJÍCÍCH Z NEBO VZTAHUJÍCÍCH SE "
-"K POUŽÍVÁNÍ TOHOTO DOKUMENTU NEBO UPRAVENÝCH VERZÍ DOKUMENTU, I KDYŽ BY "
-"TAKOVÁTO STRANA BYLA INFORMOVANÁ O MOŽNOSTI TAKOVÉHOTO POŠKOZENÍ."
-
-#: C/glabels.xml:28(para)
-msgid ""
-"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS "
-"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: "
-"<placeholder-1/>"
-msgstr ""
-"DOKUMENT A JEHO UPRAVENÉ VERZE JSOU ŠÍŘENY V SOULADU SE ZNĚNÍM LICENCE GNU "
-"FREE DOCUMENTATION LICENSE S NÁSLEDUJÍCÍM USTANOVENÍM: <placeholder-1/>"
-
-#: C/glabels.xml:52(firstname)
-msgid "Jim"
-msgstr "Jim"
-
-#: C/glabels.xml:53(surname)
-msgid "Evins"
-msgstr "Evins"
-
-#: C/glabels.xml:87(revnumber)
-msgid "gLabels Manual V2.2.6"
-msgstr "Příručka V2.2.6 k aplikaci gLabels"
-
-#: C/glabels.xml:88(date)
-msgid "October 2009"
-msgstr "Říjen 2009"
-
-#: C/glabels.xml:90(para)
-msgid "Mario Blättermann <email>mariobl@gnome.org</email>"
-msgstr "Mario Blättermann <email>mariobl@gnome.org</email>"
-
-#: C/glabels.xml:97(revnumber)
-msgid "gLabels Manual V2.2"
-msgstr "Příručka V2.2 k aplikaci gLabels"
-
-#: C/glabels.xml:98(date)
-msgid "December 2007"
-msgstr "Prosinec 2007"
-
-#: C/glabels.xml:100(para)
-msgid "Jim Evins <email>evins@snaught.com</email>"
-msgstr "Jim Evins <email>evins@snaught.com</email>"
-
-#: C/glabels.xml:108(releaseinfo)
-msgid ""
-"This manual describes version 2.2.6 of <application>gLabels</application>."
-msgstr ""
-"Tato příručka popisuje aplikaci <application>gLabels</application> ve verzi "
-"2.2.6."
-
-#: C/glabels.xml:111(title)
-msgid "Feedback"
-msgstr "Ohlasy"
-
-#: C/glabels.xml:112(para)
-msgid ""
-"To report a bug or make a suggestion regarding the <application>gLabels</"
-"application> application or this manual, follow the directions in the <ulink "
-"url=\"http://glabels.sourceforge.net/contact/\" type=\"http"
-"\"><application>gLabels</application> Contact Page</ulink>."
-msgstr ""
-"Pokud chcete oznámit chybu nebo navrhnout vylepšení vztahující se k aplikaci "
-"<application>gLabels</application> nebo této příručce, postupujte dle "
-"instrukcí na <ulink url=\"http://glabels.sourceforge.net/contact/\" type="
-"\"http\">kontaktní stránce <application>gLabels</application></ulink>."
-
-#: C/glabels.xml:121(primary)
-msgid "gLabels"
-msgstr "gLabels"
-
-#: C/glabels.xml:124(primary)
-msgid "glabels"
-msgstr "glabels"
-
-#: C/glabels.xml:135(title)
-msgid "Introduction"
-msgstr "Úvod"
-
-#: C/glabels.xml:137(para)
-msgid ""
-"The <application>gLabels</application> application is a lightweight program "
-"for creating labels and business cards for the <systemitem>GNOME desktop</"
-"systemitem> environment. It is designed to work with various laser/ink-jet "
-"peel-off label and business card sheets that you'll find at most office "
-"supply stores."
-msgstr ""
-"Aplikace <application>gLabels</application> je jednoduchý program na "
-"vytváření etiket a vizitek pro <systemitem>pracovní prostředí GNOME</"
-"systemitem>. Je navržená pro práci s různými samolepicími etiketami a "
-"vizitkami rozmístěnými na listech pro laserový/inkoustový tisk, které "
-"najdete v každém obchodě s kancelářskými potřebami."
-
-#: C/glabels.xml:158(title)
-msgid "Getting Started"
-msgstr "Začínáme"
-
-#: C/glabels.xml:161(title)
-msgid "To Start <application>gLabels</application>"
-msgstr "Jak spustit aplikaci <application>gLabels</application>"
-
-#: C/glabels.xml:162(para)
-msgid "You can start <application>gLabels</application> in the following ways:"
-msgstr ""
-"Aplikaci <application>gLabels</application> můžete spustit následujícími "
-"způsoby:"
-
-#: C/glabels.xml:166(term)
-msgid "<guimenu>Applications</guimenu> menu"
-msgstr "Nabídka <guimenu>Aplikace</guimenu>"
-
-#: C/glabels.xml:168(para)
-msgid ""
-"Choose <menuchoice><guisubmenu>Office</guisubmenu><guimenuitem>gLabels</"
-"guimenuitem></menuchoice>."
-msgstr ""
-"Zvolte <menuchoice><guisubmenu>Kancelář</guisubmenu><guimenuitem>Návrhář "
-"etiket gLabels</guimenuitem></menuchoice>."
-
-#: C/glabels.xml:176(term)
-msgid "Command line"
-msgstr "Příkazový řádek"
-
-#: C/glabels.xml:178(para)
-msgid "Type <command>glabels</command>, then press <keycap>Return</keycap>:"
-msgstr ""
-"Napište příkaz <command>glabels</command> a zmáčkněte <keycap>Enter</keycap>:"
-
-#: C/glabels.xml:186(title)
-msgid "When You Start <application>gLabels</application>"
-msgstr "Když spustíte aplikaci <application>gLabels</application>"
-
-#: C/glabels.xml:187(para)
-msgid ""
-"When you start <application>gLabels</application>, the following window is "
-"displayed."
-msgstr ""
-"Když spustíte aplikaci <application>gLabels</application>, zobrazí se "
-"následující okno."
-
-#: C/glabels.xml:191(title)
-msgid "<application>gLabels</application> Start Up Window"
-msgstr "Okno <application>gLabels</application> po spuštění"
-
-#. for example, the items on the menubar and on the toolbar. This section is optional.
-#: C/glabels.xml:205(para)
-msgid ""
-"The <application>gLabels</application> window contains the following "
-"elements:"
-msgstr "Okno <application>gLabels</application> obsahuje následující části:"
-
-#: C/glabels.xml:209(term)
-msgid "Menubar."
-msgstr "Panel nabídek."
-
-#: C/glabels.xml:211(para)
-msgid ""
-"The menus on the menubar contain all of the commands you need to create and "
-"edit labels and business cards in <application>gLabels</application>."
-msgstr ""
-"Nabídky v panelu nabídek obsahují všechny příkazy potřebné k vytváření a "
-"úpravám etiket a vizitek v aplikaci <application>gLabels</application>."
-
-#: C/glabels.xml:217(term)
-msgid "Main toolbar."
-msgstr "Hlavní panel nástrojů."
-
-#: C/glabels.xml:219(para)
+#: C/skipfields.page:14(email) C/select.page:14(email)
+#: C/printfile.page:14(email) C/newlabel.page:14(email)
+#: C/multifile.page:14(email) C/merge.page:14(email)
+#: C/mergefeatures.page:14(email) C/merge-ex4.page:14(email)
+#: C/merge-ex3.page:14(email) C/merge-ex2.page:14(email)
+#: C/merge-ex1.page:14(email) C/mancreate.page:15(email)
+#: C/labelprop.page:14(email) C/index.page:12(email) C/editprop.page:14(email)
+#: C/customtemplate.page:14(email) C/customize.page:12(email)
+#: C/createnew.page:14(email) C/basicusage.page:14(email)
+#: C/about.page:14(email)
+msgid "evins@snaught.com"
+msgstr "evins@snaught.com"
+
+#: C/skipfields.page:17(name) C/select.page:17(name) C/printfile.page:17(name)
+#: C/newlabel.page:17(name) C/multifile.page:17(name) C/merge.page:17(name)
+#: C/mergefeatures.page:17(name) C/merge-ex4.page:17(name)
+#: C/merge-ex3.page:17(name) C/merge-ex2.page:17(name)
+#: C/merge-ex1.page:17(name) C/mancreate.page:18(name)
+#: C/labelprop.page:17(name) C/index.page:15(name) C/editprop.page:17(name)
+#: C/customtemplate.page:17(name) C/customize.page:15(name)
+#: C/createnew.page:17(name) C/basicusage.page:17(name) C/about.page:17(name)
+msgid "Mario Blättermann"
+msgstr "Mario Blättermann"
+
+#: C/skipfields.page:18(email) C/select.page:18(email)
+#: C/printfile.page:18(email) C/newlabel.page:18(email)
+#: C/multifile.page:18(email) C/merge.page:18(email)
+#: C/mergefeatures.page:18(email) C/merge-ex4.page:18(email)
+#: C/merge-ex3.page:18(email) C/merge-ex2.page:18(email)
+#: C/merge-ex1.page:18(email) C/mancreate.page:19(email)
+#: C/labelprop.page:18(email) C/index.page:16(email) C/editprop.page:18(email)
+#: C/customtemplate.page:18(email) C/customize.page:16(email)
+#: C/createnew.page:18(email) C/basicusage.page:18(email)
+#: C/about.page:18(email)
+msgid "mariobl@gnome.org"
+msgstr "mariobl@gnome.org"
+
+#: C/skipfields.page:21(p) C/select.page:21(p) C/printfile.page:21(p)
+#: C/newlabel.page:21(p) C/multifile.page:21(p) C/merge.page:21(p)
+#: C/mergefeatures.page:21(p) C/merge-ex4.page:21(p) C/merge-ex3.page:21(p)
+#: C/merge-ex2.page:21(p) C/merge-ex1.page:21(p) C/mancreate.page:22(p)
+#: C/labelprop.page:21(p) C/index.page:19(p) C/editprop.page:21(p)
+#: C/customtemplate.page:21(p) C/customize.page:19(p) C/createnew.page:21(p)
+#: C/basicusage.page:21(p) C/about.page:21(p)
+msgid "Creative Commons Share Alike 3.0"
+msgstr "Creative Commons Share Alike 3.0"
+
+#: C/skipfields.page:25(title)
+#| msgid "Printing address labels"
+msgid "Skipping blank address lines"
+msgstr "Přeskakování prázdných řádků v adresách"
+
+#: C/skipfields.page:27(p)
+msgid ""
+"This feature can be best described by a simple example. In the following CSV "
+"file, column 5 (ADDR2) contains the second address line for each record. "
+"This field is empty in records 1 and 2, but not in record 3. (For this "
+"feature to work, the field must be completely empty -- any text, including "
+"spaces will defeat this feature.)"
+msgstr ""
+"Tuto funkci bude nejlepší popsat příkladem. V následujícím souboru CSV "
+"obsahuje sloupec 2 (OSOBA) konkrétní osobu v adrese do firmy pro každý "
+"záznam. Toto pole je v záznamech 1 a 2 prázdné, ale ve 3. záznamu ne. (Aby "
+"tato funkce pracovala, musí být pole úplně prázdné – jakýkoliv text, a to "
+"včetně mezer, překazí použití této funkce.)"
+
+#: C/skipfields.page:33(code)
+#, no-wrap
 msgid ""
-"The main toolbar contains a subset of common File and Edit commands that you "
-"can access from the menubar."
+"\n"
+"  LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n"
+"  Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n"
+"  McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n"
+"  Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n"
+"  "
 msgstr ""
-"Hlavní panel nástrojů obsahuje podmnožinu běžných příkazů pro práci se "
-"soubory a k úpravám z těch, které jsou dostupné v panelu nabídek."
-
-#: C/glabels.xml:224(term)
-msgid "Drawing toolbar."
-msgstr "Panel kreslení."
+"\n"
+"  FIRMA,OSOBA,ADR,MESTO,PSC\n"
+"  \"Stolařství Novák &amp; syn\",,\"Pod Lesem 4\",\"Ústí nad Orlicí\",\"562 03\"\n"
+"  \"Dřevolak s.r.o.\",,\"Barvírenská 78/436\",Třešť,\"589 01\"\n"
+"  \"Nábytek holding a.s.\",\"Ing. Jiří Procházka\",\"Vídeňská 95\",Brno,\"619 00\"\n"
+"  "
 
-#: C/glabels.xml:226(para)
+#: C/skipfields.page:40(p)
 msgid ""
-"The drawing toolbar contains a subset of commands for editing the current "
-"<application>gLabels</application> document."
+"In the following screenshot, a single multiline text object has been created "
+"to format these addresses. Notice that ${ADDR2} representing the second "
+"address line is on a line by itself. (Any additional text on this line, "
+"including spaces would defeat this feature.)"
 msgstr ""
-"Panel kreslení obsahuje podmnožinu běžných příkazů k úpravám aktuálního "
-"dokumentu <application>gLabels</application>."
+"Na následujícím snímku obrazovky byl pro formátování těchto adres vytvořen "
+"textový objekt s více řádky. Všimněte si, že ${OSOBA} představující osobu v "
+"adres do firmy, je na svém vlastním řádku. (Jakýkoliv další text na stejném "
+"řádku, a to včetně mezer, by překazil tuto funkci.)"
 
-#: C/glabels.xml:231(term)
-msgid "Display area."
-msgstr "Zobrazovací oblast"
+#: C/skipfields.page:46(p)
+msgid "Multi-line address"
+msgstr "Adresa na víc řádků"
 
-#: C/glabels.xml:233(para)
+#: C/skipfields.page:49(p)
 msgid ""
-"The display area is the main drawing interface to <application>gLabels</"
-"application>."
+"Printing this label results in the following output. Notice that the line "
+"containing the ${ADDR2} field is completely skipped for the first two "
+"records, without printing a blank line."
 msgstr ""
-"Zobrazovací oblast je hlavní rozhraní aplikace <application>gLabels</"
-"application> sloužící ke kreslení."
+"Výsledky tisku můžete vidět na následujícím výstupu. Všimněte si, že řádek "
+"obsahující pole ${OSOBA} byl u prvních dvou záznamů zcela vynechán, "
+"nevytiskl se ani prázdný řádek."
 
-#: C/glabels.xml:238(term)
-msgid "Object sidebar."
-msgstr "Postranní panel objektů."
+#: C/skipfields.page:54(p)
+msgid "Output"
+msgstr "Výstup"
 
-#: C/glabels.xml:240(para)
-msgid ""
-"The object sidebar provides an interface for viewing and editing all "
-"properties of an individual object."
-msgstr ""
-"Postranní panel objektů poskytuje rozhraní na prohlížení a úpravu všech "
-"vlastností jednotlivých objektů."
+#: C/select.page:9(desc)
+msgid "How to select objects."
+msgstr "Jak vybrat objekty."
 
-#: C/glabels.xml:245(term)
-msgid "Properties toolbar."
-msgstr "Panel vlastností."
+#: C/select.page:25(title)
+msgid "To select objects"
+msgstr "Výběr objektů"
 
-#: C/glabels.xml:247(para)
+#: C/select.page:27(p)
 msgid ""
-"The properties toolbar contains a set of tools to manipulate the properties "
-"of selected objects and set default properties for new objects."
-msgstr ""
-"Panel vlastností obsahuje sadu nástrojů na úpravu vlastností vybraných "
-"objektů a nastavení výchozích vlastností pro nové objekty."
-
-#: C/glabels.xml:253(term)
-msgid "Statusbar."
-msgstr "Stavový panel."
+"A prerequisite for performing operations on objects is the selection of "
+"individual objects or groups of objects. The display area must be in the "
+"object selection mode to create new selections, as indicated by an arrow "
+"cursor. The object selection mode is selected by the <guiseq><gui>Objects</"
+"gui><gui>Select Mode</gui></guiseq> menu item, or the corresponding command "
+"on the <gui>Drawing Toolbar</gui>."
+msgstr ""
+"Předpokladem k provádění operací s objekty je výběr jednoho objektu či "
+"skupiny více objektů. Aby bylo možné výběr provést, musí být zobrazovací "
+"oblast v režimu výběru objektů, což je signalizováno kurzorem v podobě "
+"šipky. Režim výběru objektů se zvolí pomocí <guiseq><gui>Objekty</"
+"gui><gui>Režim výběru</gui></guiseq> nebo odpovídajícím příkazem na "
+"<gui>Liště kreslení</gui>."
+
+#: C/select.page:38(title)
+msgid "Selecting a single object"
+msgstr "Výběr jednoho objektu"
 
-#: C/glabels.xml:255(para)
+#: C/select.page:39(p)
 msgid ""
-"The statusbar displays information about current <application>gLabels</"
-"application> activity and contextual information about the menu items."
+"A single object can be selected simply by clicking on the desired object in "
+"the display area. Once selected the object will be highlighted with a set of "
+"resizing handles."
 msgstr ""
-"Stavový panel zobrazuje informace o aktuální činnosti aplikace "
-"<application>gLabels</application> a kontextové informace o položkách "
-"nabídky."
-
-#: C/glabels.xml:271(title)
-msgid "Usage"
-msgstr "Použití"
-
-#: C/glabels.xml:275(title)
-msgid "To Create a New Label or Card"
-msgstr "Jak vytvořit novou etiketu nebo vizitku"
+"Jeden objekt vyberete prostým kliknutím na něj v zobrazovací oblasti. "
+"Vybraný objekt bude zvýrazněný pomocí úchytů sloužících ke změně velikosti"
 
-#: C/glabels.xml:277(para)
-msgid ""
-"To create a new label or business card, choose <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>New</guimenuitem></menuchoice> to display the "
-"<guilabel>New Label or Card</guilabel> dialog. Select the media type and "
-"orientation for the new document, then click <guibutton>OK</guibutton>. A "
-"new document is displayed in the display area of the <application>gLabels</"
-"application> window."
-msgstr ""
-"Když chcete vytvořit novou etiketu nebo vizitku, zvolte "
-"<menuchoice><guimenu>Soubor</guimenu><guimenuitem>Nový</guimenuitem></"
-"menuchoice> a zobrazí se dialogové okno <guilabel>Nová etiketa či vizitka</"
-"guilabel>. Vyberte pro nový dokument typ média a orientaci a klikněte na "
-"<guibutton>OK</guibutton>. Nový dokument se zobrazí v zobrazovací oblasti "
-"okna <application>gLabels</application>."
+#: C/select.page:46(title)
+msgid "Aggregate object selections"
+msgstr "Přidávání objektů do výběru"
 
-#: C/glabels.xml:286(para)
+#: C/select.page:47(p)
 msgid ""
-"If your particular media type is missing from this dialog, see <xref linkend="
-"\"glabels-create-template\"/>"
+"Multiple objects can be selected by first selecting the first object as "
+"above and then by holding the <key>Ctrl</key> key while selecting additional "
+"objects. Individual objects can be added to an existing selection at any "
+"time by holding the <key>Ctrl</key> key while selecting the desired objects. "
+"All objects can also be selected by using the <guiseq><gui>Edit</"
+"gui><gui>Select All</gui></guiseq> menu item. All objects in an aggregate "
+"object selection will be highlighted."
 msgstr ""
-"V případě, že vaše konkrétní médium v tomto dialogovém okně schází, přečtěte "
-"si <xref linkend=\"glabels-create-template\"/>."
+"Více objektů můžete vybrat tak, že vyberete první dříve uvedeným způsobem a "
+"po té budete držet klávesu <key>Ctrl</key> a vybírat další objekty. "
+"Jednotlivé objekty lze přidat do stávajícího výběru kdykoliv držením klávesy "
+"<key>Ctrl</key> během vybírání požadovaných objektů. Všechny objekty můžete "
+"vybrat pomocí položky nabídky <guiseq><gui>Upravit</gui><gui>Vybrat vše</"
+"gui></guiseq>. Všechny objekty ve výběru jsou zvýrazněné."
 
-#: C/glabels.xml:293(title)
-msgid "To Open a File"
-msgstr "Jak otevřít soubor"
+#: C/select.page:60(title)
+msgid "Area selections"
+msgstr "Výběr oblasti"
 
-#: C/glabels.xml:295(para)
+#: C/select.page:62(p)
 msgid ""
-"To open a file, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</"
-"guimenuitem></menuchoice> to display the <guilabel>Open File</guilabel> "
-"dialog. Select the file that you want to open, then click <guibutton>OK</"
-"guibutton>. The file is displayed in the display area of the "
-"<application>gLabels</application> window."
+"Multiple objects can also be selected by clicking an empty area and dragging "
+"to form a rectangular area. When released, all objects contained in the area "
+"will form an aggregate selection. An area selection can be used to add to an "
+"existing selection by holding the <key>Ctrl</key> key while performing the "
+"selection."
 msgstr ""
-"Soubor otevřete pomocí volby <menuchoice><guimenu>Soubor</"
-"guimenu><guimenuitem>Otevřít</guimenuitem></menuchoice>, která zobrazí "
-"dialogové okno <guilabel>Otevření souboru</guilabel>. Vyberte soubor, který "
-"chcete otevřít a klikněte na <guibutton>OK</guibutton>. Soubor se zobrazí v "
-"zobrazovací oblasti okna <application>gLabels</application>."
+"Více objektů lze rovněž vybrat zmáčknutím tlačítka myši na prázdném místě a "
+"tažením obdélníkové oblasti. Po uvolnění tlačítka se všechny objekty "
+"obsažené v takovéto oblasti naráz vyberou. Výběr pomocí oblasti lez použít k "
+"přidání ke stávajícímu výběru podržením klávesy <key>Ctrl</key> během "
+"provádění výběru."
 
-#: C/glabels.xml:302(para)
-msgid ""
-"You can also open multiple files in <application>gLabels</application>. The "
-"application creates a separate application window for each open file."
-msgstr ""
-"V aplikaci <application>gLabels</application> můžete otevřít i více souborů "
-"naráz. Aplikace pro každý otevřený soubor vytvoří zvláštní okno."
+#: C/select.page:72(title)
+msgid "Unselecting objects"
+msgstr "Zrušení výběru objektů"
 
-#: C/glabels.xml:306(para)
+#: C/select.page:74(p)
 msgid ""
-"The application records the paths and filenames of the most recent files "
-"that you have edited and displays the files as menu items on the "
-"<menuchoice><guimenu>File</guimenu><guisubmenu>Recent Files</guisubmenu></"
-"menuchoice> menu."
-msgstr ""
-"Pro soubory nedávno otevřené k úpravě si aplikace zaznamenává cesty a názvy "
-"a tyto soubory potom zobrazuje v nabídce <menuchoice><guimenu>Soubor</"
-"guimenu><guisubmenu>Otevřít nedávné soubory</guisubmenu></menuchoice>."
-
-#: C/glabels.xml:316(title)
-msgid "To Open Multiple Files from a Command Line"
-msgstr "Jak otevřít více souborů z příkazové řádky"
+"Individual objects can be removed from an existing selection by holding the "
+"<key>Ctrl</key> key while clicking on a previously selected object. An "
+"entire selection can be dismissed by using the <guiseq><gui>Edit</"
+"gui><gui>Un-select All</gui></guiseq> menu item or by simply clicking any "
+"empty space in the display area. Once an object is unselected its highlight "
+"is removed."
+msgstr ""
+"Jednotlivé objekty lze z výběru odebrat podržením klávesy <key>Ctrl</key> a "
+"klikáním na označené objekty. Veškerý výběr můžete zrušit pomocí nabídky "
+"<guiseq><gui>Upravit</gui><gui>Zrušit výběr</gui></guiseq> nebo jednoduchým "
+"kliknutím na prázdné místo v zobrazovací oblasti. Jakmile je u objektu "
+"zrušen výběr, zmizí i jeho zvýraznění."
+
+#: C/select.page:86(title)
+msgid "Clipboard Commands"
+msgstr "Příkazy pro práci se schránkou"
 
-#: C/glabels.xml:318(para)
+#: C/select.page:88(p)
 msgid ""
-"You can run <application>gLabels</application> from a command line and open "
-"a single file or multiple files. To open multiple files from a command line, "
-"type the following command, then press <keycap>Return</keycap>:"
+"Object selections can be manipulated using the standard clipboard operations "
+"<gui>Cut</gui>, <gui>Copy</gui>, <gui>Paste</gui>, and <gui>Delete</gui>."
 msgstr ""
-"Aplikaci <application>gLabels</application> můžete spustit z příkazového "
-"řádku a otevřít při tom jeden nebo více souborů. Pokud chcete otevřít z "
-"příkazového řádku více souborů, napište následující příkaz a zmáčkněte "
-"<keycap>Enter</keycap>:"
-
-#: C/glabels.xml:324(replaceable)
-msgid "file1.glabels file2.glabels file3.glabels"
-msgstr "soubor1.glabels soubor2.glabels soubor3.glabels"
+"S vybranými objekty lze manipulovat pomocí standardních operací se schránkou "
+"<gui>Vyjmout</gui>, <gui>Kopírovat</gui>, <gui>Vložit</gui> a <gui>Smazat</"
+"gui>."
 
-#: C/glabels.xml:323(command)
-msgid "glabels <placeholder-1/>"
-msgstr "glabels <placeholder-1/>"
+#: C/select.page:94(title)
+msgid "<gui>Cut</gui> (<keyseq><key>Ctrl</key><key>X</key></keyseq>)"
+msgstr "<gui>Vyjmout</gui> (<keyseq><key>Ctrl</key><key>X</key></keyseq>)"
 
-#: C/glabels.xml:327(para)
+#: C/select.page:96(p)
 msgid ""
-"When the application starts, the files that you specify are displayed in "
-"separate <application>gLabels</application> windows."
+"Moves selected objects to the clipboard. The objects are then available for "
+"pasting back into the current document or another document."
 msgstr ""
-"Po spuštění aplikace se každý ze zadaných souborů zobrazí ve zvláštním okně "
-"<application>gLabels</application>."
-
-#: C/glabels.xml:334(title)
-msgid "To Save a File"
-msgstr "Jak uložit soubor"
-
-#: C/glabels.xml:336(para)
-msgid "You can save files in the following ways:"
-msgstr "Soubory můžete uložit následujícími způsoby:"
+"Přesune vybrané objekty do schránky. Objekty jsou potom přístupné pro "
+"vkládání zpátky do aktuálního dokumentu nebo jiného dokumentu."
 
-#: C/glabels.xml:341(para)
-msgid ""
-"To save changes to an existing file, choose <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>Save</guimenuitem></menuchoice>."
-msgstr ""
-"Pro uložení změn do stávajícího souboru, zvolte <menuchoice><guimenu>Soubor</"
-"guimenu><guimenuitem>Uložit</guimenuitem></menuchoice>."
+#: C/select.page:103(title)
+msgid "<gui>Copy</gui> (<keyseq><key>Ctrl</key><key>C</key></keyseq>)"
+msgstr "<gui>Kopírovat</gui> (<keyseq><key>Ctrl</key><key>C</key></keyseq>)"
 
-#: C/glabels.xml:348(para)
+#: C/select.page:105(p)
 msgid ""
-"To save a new file or to save an existing file under a new filename, choose "
-"<menuchoice><guimenu>File</guimenu><guimenuitem>Save As</guimenuitem></"
-"menuchoice>. Enter a name for the file in the <guilabel>Save As</guilabel> "
-"dialog box, then click <guibutton>OK</guibutton>."
+"Copies selected objects to the clipboard without deleting them. The objects "
+"are then available for pasting back into the current document or another "
+"document."
 msgstr ""
-"Pro uložení nového souboru nebo uložení stávajícího souboru pod novým "
-"názvem, zvolte <menuchoice><guimenu>Soubor</guimenu><guimenuitem>Uložit "
-"jako</guimenuitem></menuchoice>. V dialogovém okně <guilabel>Uložit jako</"
-"guilabel> zadejte pro soubor název a klikněte na <guibutton>OK</guibutton>."
+"Zkopíruje vybrané objekty do schránky, aniž by byly vymazány. Objekty jsou "
+"potom přístupné pro vkládání zpátky do aktuálního dokumentu nebo jiného "
+"dokumentu."
 
-#: C/glabels.xml:361(title)
-msgid "To Change Label Properties"
-msgstr "Jak změnit vlastnosti etikety"
+#: C/select.page:112(title)
+msgid "<gui>Paste</gui> (<keyseq><key>Ctrl</key><key>V</key></keyseq>)"
+msgstr "<gui>Vložit</gui> (<keyseq><key>Ctrl</key><key>V</key></keyseq>)"
 
-#: C/glabels.xml:363(para)
+#: C/select.page:114(p)
 msgid ""
-"To change the media type and/or orientation of a label, choose "
-"<menuchoice><guimenu>File</guimenu><guimenuitem>Properties</guimenuitem></"
-"menuchoice> to display the <guilabel>Label properties</guilabel> dialog. "
-"Select the new media type and orientation for the document, then click "
-"<guibutton>OK</guibutton>."
+"Pastes objects from the clipboard into the current document. <app>gLabels</"
+"app> can only paste objects from another <app>gLabels</app> document."
 msgstr ""
-"Pokud chcete změnit typ média a/nebo orientaci etiket, zvolte "
-"<menuchoice><guimenu>Soubor</guimenu><guimenuitem>Vlastnosti</guimenuitem></"
-"menuchoice> a zobrazí se dialogové okno <guilabel>Vlastnosti etikety</"
-"guilabel>. Zvolte pro dokument nový typ média a orientaci a klikněte na "
-"<guibutton>OK</guibutton>."
+"Vloží objekty ze schránky do aktuálního dokumentu. Aplikace <app>gLabels</"
+"app> umí vkládat pouze objekty z jiného dokumentu <app>gLabels</app>."
 
-#: C/glabels.xml:374(title)
-msgid "To Create a Custom Template"
-msgstr "Jak vytvořit vlastní šablonu"
+#: C/select.page:121(title)
+msgid "<gui>Delete</gui> (<key>Del</key>)"
+msgstr "<gui>Smazat</gui> (<key>Del</key>)"
 
-#: C/glabels.xml:376(para)
-msgid ""
-"To create a new custom template, choose <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>Template Designer ...</guimenuitem></menuchoice> to "
-"display the <guilabel>Template Designer</guilabel> dialog. This dialog will "
-"assist you in creating a custom template for most types of label or card "
-"stationery that you may encounter."
-msgstr ""
-"Když chcete vytvořit novou vlastní šablonu, zvolte "
-"<menuchoice><guimenu>Soubor</guimenu><guimenuitem>Návrhář šablon…</"
-"guimenuitem></menuchoice> a zobrazí se dialogové okno <guilabel>Návrhář "
-"šablon gLabels</guilabel>. Toto dialogové okno vás provede vytvořením "
-"vlastní šablony pro většinu typů etiket nebo vizitek, se kterými se můžete "
-"setkat."
+#: C/select.page:123(p)
+msgid "Deletes selected objects without placing them on the clipboard."
+msgstr "Smaže vybrané objekty, aniž by byly umístěny do schránky."
 
-#: C/glabels.xml:383(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/printfile.page:47(None)
 msgid ""
-"If you prefer, you can create your templates manually. For this option see "
-"<xref linkend=\"glabels-manual-create-template\"/>"
+"@@image: 'figures/print-copies.png'; md5=1896f693ac50b47ea5abaafb59b5e8cc"
 msgstr ""
-"Pokud dáváte přednost ručnímu vytvoření šablon, přečtěte si <xref linkend="
-"\"glabels-manual-create-template\"/>"
-
-#: C/glabels.xml:391(title)
-msgid "To Close a File"
-msgstr "Jak zavřít soubor"
+"@@image: 'figures/print-copies.png'; md5=1896f693ac50b47ea5abaafb59b5e8cc"
 
-#: C/glabels.xml:393(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/printfile.page:70(None)
 msgid ""
-"To close the current document, choose <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>Close</guimenuitem></menuchoice> to close the "
-"application window. If the current document is modified, a confirmation "
-"dialog will be presented, allowing you to save the document or cancel the "
-"command. If the window being closed is the only open window, "
-"<application>gLabels</application> will exit."
+"@@image: 'figures/print-merge.png'; md5=65a719b5624f88fdb40e2322454819a6"
 msgstr ""
-"Když chcete aktuální dokument zavřít, zvolte <menuchoice><guimenu>Soubor</"
-"guimenu><guimenuitem>Zavřít</guimenuitem></menuchoice> a zavřete tím "
-"aplikační okno. Pokud byl aktuální dokument změněn, zobrazí se potvrzovací "
-"dialogové okno, kde můžete dokument uložit nebo příkaz zrušit. Pokud je "
-"zavírané okno jediné otevřené, ukončí se celá aplikace <application>gLabels</"
-"application>."
-
-#: C/glabels.xml:405(title)
-msgid "To Quit <application>gLabels</application>"
-msgstr "Jak ukončit <application>gLabels</application>"
+"@@image: 'figures/print-merge.png'; md5=65a719b5624f88fdb40e2322454819a6"
 
-#: C/glabels.xml:407(para)
-msgid ""
-"To quit <application>gLabels</application>, choose "
-"<menuchoice><guimenu>File</guimenu><guimenuitem>Quit</guimenuitem></"
-"menuchoice>. This is equivalent to closing all open windows. See <xref "
-"linkend=\"glabels-close-file\"/>."
-msgstr ""
-"Když chcete aplikaci <application>gLabels</application> ukončit, zvolte "
-"<menuchoice><guimenu>Soubor</guimenu><guimenuitem>Ukončit</guimenuitem></"
-"menuchoice>. Odpovídá to zavření všech otevřených oken. Viz <xref linkend="
-"\"glabels-close-file\"/>."
+#: C/printfile.page:9(desc)
+msgid "How to print your labels and cards."
+msgstr "Jak vytisknout etikety nebo vizitky."
 
-#: C/glabels.xml:417(title)
-msgid "To Print Labels or Cards"
-msgstr "Jak vytisknout etikety nebo vizitky"
+#: C/printfile.page:25(title)
+msgid "To print labels and cards"
+msgstr "Tisk etiket a vizitek"
 
-#: C/glabels.xml:419(para)
+#: C/printfile.page:27(p)
 msgid ""
-"To print labels or cards, choose <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>Print</guimenuitem></menuchoice> to display the "
-"<guilabel>Print</guilabel> dialog. Once print options have been selected, "
-"click <guilabel>Print</guilabel> to print the labels or cards. To simply "
-"preview the results, click <guilabel>Print Preview</guilabel> instead."
+"To print labels or cards, choose <guiseq><gui>File</gui><gui>Print</gui></"
+"guiseq> to display the <gui>Print</gui> dialog. Once print options have been "
+"selected, click <gui>Print</gui> to print the labels or cards. To simply "
+"preview the results, click <gui>Print Preview</gui> instead."
 msgstr ""
-"Když chcete vytisknout etikety nebo vizitky, zvolte "
-"<menuchoice><guimenu>Soubor</guimenu><guimenuitem>Tisk</guimenuitem></"
-"menuchoice> a zobrazí se dialogové okno <guilabel>Tisk</guilabel>. Až "
-"nastavíte volby tisku, klikněte na <guilabel>Tisk</guilabel> a etikety nebo "
-"vizitky se vytisknou. Pokud se chcete jen podívat na náhled, klikněte místo "
-"toho na <guilabel>Náhled tisku</guilabel>."
+"Když chcete vytisknout etikety nebo vizitky, zvolte <guiseq><gui>Soubor</"
+"gui><gui>Tisk</gui></guiseq> a zobrazí se dialogové okno <gui>Tisk</gui>. Až "
+"nastavíte volby tisku, klikněte na <gui>Tisk</gui> a etikety nebo vizitky se "
+"vytisknou. Pokud se chcete jen podívat na náhled, klikněte místo toho na "
+"<gui>Náhled tisku</gui>."
 
-#: C/glabels.xml:426(para)
+#: C/printfile.page:34(p)
 msgid ""
-"The <guilabel>Print</guilabel> dialog allows you to specify the following "
-"print options:"
+"The <gui>Print</gui> dialog allows you to specify the following print "
+"options:"
 msgstr ""
-"V dialogovém okně <guilabel>Tisk</guilabel> můžete nastavit následující "
-"volby tisku:"
+"V dialogovém okně <gui>Tisk</gui> můžete nastavit následující volby tisku:"
 
-#: C/glabels.xml:430(title)
+#: C/printfile.page:38(title)
 msgid "The Labels Tab of the Print Dialog"
 msgstr "Karta Etikety v dialogovém okně Tisk"
 
-#: C/glabels.xml:435(guilabel)
+#: C/printfile.page:41(title)
 msgid "Print control (Simple)"
 msgstr "Ovládání tisku (jednoduchý)"
 
-#: C/glabels.xml:438(para)
+#: C/printfile.page:43(p)
 msgid ""
-"For simple labels or cards (no document merge), the <guilabel>labels</"
-"guilabel> tabbed section contains the following copy controls."
+"For simple labels or cards (no document merge), the job tabbed section "
+"contains the following copy controls."
 msgstr ""
 "Pro jednoduché etikety nebo vizitky (bez slučování dokumentů), obsahuje "
-"karta <guilabel>Etikety</guilabel> následující prvky."
+"karta úlohy následující ovládací prvky pro nastavení kopie."
 
-#: C/glabels.xml:443(title)
+#: C/printfile.page:48(p) C/editprop.page:36(p)
 msgid "Print Copy Controls"
 msgstr "Ovládací prvky tisku kopií"
 
 #. ==== End of Figure ====
-#: C/glabels.xml:454(para)
+#: C/printfile.page:52(p)
 msgid ""
 "The number of copies of the label can be selected by choosing the number of "
 "full sheets to print, or a specific subset of labels on a single sheet."
@@ -770,36 +391,35 @@ msgstr ""
 "Počet kopií etikety můžete vybrat zvolením počtu plných listů, které se mají "
 "vytisknout, a nebo vybrat jen část etiket na jednom listu."
 
-#: C/glabels.xml:458(para)
+#: C/printfile.page:56(p)
 msgid ""
 "The mini-preview can also be used to graphically select the subset of labels "
 "by clicking the first label on the mini-preview and dragging to the last "
 "label."
 msgstr ""
-"Mini-náhled můžete také použít ke grafickému výběru části etiket tak, že "
-"kliknete na první etiketu v mini-náhledu a táhnete až na poslední etiketu."
+"Minináhled můžete také použít ke grafickému výběru části etiket tak, že "
+"kliknete na první etiketu v minináhledu a táhnete až na poslední etiketu."
 
-#: C/glabels.xml:466(guilabel)
+#: C/printfile.page:63(title)
 msgid "Print control (Merge)"
 msgstr "Ovládání tisku (slučování)"
 
-#: C/glabels.xml:469(para)
+#: C/printfile.page:65(p)
 msgid ""
 "For labels or cards using the document merge (also known as \"mail merge\") "
-"capability, the <guilabel>labels</guilabel> tabbed section contains the "
-"following merge controls instead of copy controls."
+"capability, the job tabbed section contains the following merge controls "
+"instead of copy controls."
 msgstr ""
 "Pro etikety nebo vizitky používající slučování dokumentů (někdy také "
-"nazývané „hromadná korespondence“), obsahuje karta <guilabel>Etikety</"
-"guilabel> následující ovládací prvky slučování lišící se od ovládacích prvků "
-"jednoduchého tisku."
+"nazývané „hromadná korespondence“), obsahuje karta úlohy následující "
+"ovládací prvky slučování, lišící se od ovládacích prvků jednoduchého tisku."
 
-#: C/glabels.xml:475(title)
+#: C/printfile.page:71(p)
 msgid "Print Document Merge Controls"
 msgstr "Ovládací prvky tisku slučovaných dokumentů"
 
 #. ==== End of Figure ====
-#: C/glabels.xml:486(para)
+#: C/printfile.page:75(p)
 msgid ""
 "The total number of labels or cards printed is the product of the number of "
 "records in the merge source and the number of copies selected. If multiple "
@@ -812,35 +432,35 @@ msgstr ""
 "uspořádané (kopie ze stejného záznamu seskupené spolu) nebo neuspořádané "
 "(kopie jednotlivých záznamů za sebou)."
 
-#: C/glabels.xml:493(para)
+#: C/printfile.page:82(p)
 msgid ""
 "Printing can begin on any label on the first sheet. This can be selected "
-"with the <guilabel>Start on label</guilabel> spinbutton."
+"with the <gui>Start on label</gui> spinbutton."
 msgstr ""
 "Tisk může začínat na libovolné etiketě na prvním listu. Tu můžete vybrat "
-"pomocí číselníku <guilabel>Začít na etiketě</guilabel>."
+"pomocí číselníku <gui>Začít na etiketě</gui>."
 
-#: C/glabels.xml:497(para)
+#: C/printfile.page:86(p)
 msgid ""
 "The mini-preview can also be used to graphically select this first label, by "
 "clicking on the desired label in the mini-preview."
 msgstr ""
-"Mini-náhled můžete také použít ke grafickému výběru první etikety tak, že na "
-"ni v mini-náhledu kliknete."
+"Minináhled můžete také použít ke grafickému výběru první etikety tak, že na "
+"ni v minináhledu kliknete."
 
-#: C/glabels.xml:504(guilabel)
+#: C/printfile.page:93(title)
 msgid "Options"
 msgstr "Volby"
 
-#: C/glabels.xml:506(para)
+#: C/printfile.page:94(p)
 msgid "The following options can also be selected."
 msgstr "Můžete rovněž vybrat následující volby."
 
-#: C/glabels.xml:509(guilabel)
+#: C/printfile.page:97(gui)
 msgid "print outlines"
 msgstr "tisk obrysů"
 
-#: C/glabels.xml:510(para)
+#: C/printfile.page:98(p)
 msgid ""
 "Print outlines of labels. This option is useful for dry-runs, to test "
 "printer alignment."
@@ -848,11 +468,11 @@ msgstr ""
 "Tisk obrysů etiket. Tato volba je použitelná k tisku nanečisto, k otestování "
 "lícování."
 
-#: C/glabels.xml:514(guilabel)
+#: C/printfile.page:102(gui)
 msgid "print in reverse"
 msgstr "obrácený tisk"
 
-#: C/glabels.xml:515(para)
+#: C/printfile.page:103(p)
 msgid ""
 "Prints the labels as mirror images. This option is useful for printing on "
 "clear labels that will be viewed from the reverse side (e.g. in a car "
@@ -861,11 +481,11 @@ msgstr ""
 "Tisknout etikety zrcadlově. Tato volba je použitelná pro tisk na čiré "
 "etikety, na které se bude dívat z druhé strany (např. na okně auta)."
 
-#: C/glabels.xml:520(guilabel)
+#: C/printfile.page:108(gui)
 msgid "print crop marks"
 msgstr "tisknout značky pro ořez"
 
-#: C/glabels.xml:521(para)
+#: C/printfile.page:109(p)
 msgid ""
 "Prints crop marks along the edge of the sheet. This option is useful for "
 "printing on blank stock, to be cut after printing. This option does not work "
@@ -875,1913 +495,2599 @@ msgstr ""
 "na čisté listy, které se budou po tisku rozřezávat. Tato volba nepracuje "
 "úplně správně se všemi šablonami."
 
-#: C/glabels.xml:536(title)
-msgid "To Create New Objects"
-msgstr "Jak vytvořit nový objekt"
+#: C/newlabel.page:9(desc)
+msgid "Create a new label or card in <app>gLabels</app>."
+msgstr "Jak vytvořit novou etiketu nebo vizitku v aplikaci <app>gLabels</app>."
+
+#: C/newlabel.page:25(title)
+msgid "To create a new label or card"
+msgstr "Vytváření nové etikety nebo vizitky"
 
-#: C/glabels.xml:538(para)
+#: C/newlabel.page:27(p)
 msgid ""
-"Objects are created by choosing the appropriate selection under the "
-"<menuchoice><guimenu>Objects</guimenu><guimenuitem>Create Object</"
-"guimenuitem></menuchoice> submenu or the <guilabel>Drawing Toolbar</"
-"guilabel>. This will place the display area into object creation mode as "
-"indicated by its cursor. To return to the default object selection mode "
-"without creating an object, choose <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Select Mode</guimenuitem></menuchoice>. This will "
-"return the display area's cursor to the default selection arrow."
-msgstr ""
-"Objekty se vytvářejí příslušným výběrem v podnabídce "
-"<menuchoice><guimenu>Objekty</guimenu><guimenuitem>Vytvořit</guimenuitem></"
-"menuchoice> nebo na <guilabel>Panelu kreslení</guilabel>. Zobrazovací oblast "
-"se přepne do režimu vytváření objektu, což je indikováno patřičným "
-"ukazatelem. Do výchozího režimu výběru objektů se můžete vrátit, aniž byste "
-"nějaký objekt vytvořili, volbou <menuchoice><guimenu>Objekty</"
-"guimenu><guimenuitem>Režim výběru</guimenuitem></menuchoice>. Ukazatel pro "
-"zobrazovací oblast se změní zpět na výchozí šipku."
+"To create a new label or business card, choose <guiseq><gui>File</"
+"gui><gui>New</gui></guiseq> to display the <gui>New Label or Card</gui> "
+"dialog. Select the media type and orientation for the new document, then "
+"click <gui>OK</gui>. A new document is displayed in the display area of the "
+"<app>gLabels</app> window."
+msgstr ""
+"Když chcete vytvořit novou etiketu nebo vizitku, zvolte <guiseq><gui>Soubor</"
+"gui><gui>Nový</gui></guiseq> a zobrazí se dialogové okno <gui>Nová etiketa "
+"či vizitka</gui>. Vyberte pro nový dokument typ média a orientaci a klikněte "
+"na <gui>OK</gui>. Nový dokument se zobrazí v zobrazovací oblasti okna "
+"<app>gLabels</app>."
 
-#: C/glabels.xml:548(para)
-msgid "The following describes the object creation mode for each object type:"
-msgstr "Zde je popis režimu vytváření objektu pro jednotlivé typy objektů:"
+#: C/multifile.page:9(desc)
+msgid "How to open multiple files at once by using the command line."
+msgstr "Jak otevřít více souborů naráz pomocí příkazového řádku."
 
-#: C/glabels.xml:554(term) C/glabels.xml:1123(guilabel)
-msgid "Text"
-msgstr "Text"
+#: C/multifile.page:25(title)
+msgid "To open multiple files from the command line"
+msgstr "Jak otevřít více souborů z příkazového řádku"
 
-#: C/glabels.xml:556(para)
+#: C/multifile.page:27(p)
 msgid ""
-"Click the desired location of the upper left corner of the text object. New "
-"text objects are initialized with the string \"Text.\" To change this text, "
-"or other properties, see <xref linkend=\"glabels-object-properties\"/>."
+"You can run <app>gLabels</app> from a command line and open a single file or "
+"multiple files. To open multiple files from a command line, type the "
+"following command, then press <key>Return</key>:"
 msgstr ""
-"Klikněte na požadované umístění levého horního rohu objektu text. Nový "
-"textový objekt se vytvoří s počátečním řetězcem „Text“. Jak tento text nebo "
-"další vlastnosti změnit uvádí <xref linkend=\"glabels-object-properties\"/>."
+"Aplikaci <app>gLabels</app> můžete spustit z příkazového řádku a otevřít při "
+"tom jeden nebo více souborů. Pokud chcete otevřít z příkazového řádku více "
+"souborů, napište následující příkaz a zmáčkněte <key>Enter</key>:"
 
-#: C/glabels.xml:564(term)
-msgid "Box"
-msgstr "Obdélník"
+#: C/multifile.page:33(var)
+msgid "file1.glabels file2.glabels file3.glabels"
+msgstr "soubor1.glabels soubor2.glabels soubor3.glabels"
+
+#: C/multifile.page:32(cmd)
+msgid "glabels <placeholder-1/>"
+msgstr "glabels <placeholder-1/>"
 
-#: C/glabels.xml:566(para)
+#: C/multifile.page:36(p)
 msgid ""
-"Click the desired location of the upper left corner of the box object and "
-"drag to the desired location of the lower right corner. If you simply click "
-"in a single location, a square box will be created. To change properties of "
-"the box object, see <xref linkend=\"glabels-object-properties\"/>."
+"When the application starts, the files that you specify are displayed in "
+"separate <app>gLabels</app> windows."
 msgstr ""
-"Klikněte na požadované umístění levého horního rohu objektu obdélník a "
-"táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše "
-"kliknete na jednom místě, vytvoří se čtverec. Jak změnit vlastnosti "
-"obdélníku uvádí <xref linkend=\"glabels-object-properties\"/>."
+"Po spuštění aplikace se každý ze zadaných souborů zobrazí v samostatném okně "
+"<application>gLabels</application>."
 
-#: C/glabels.xml:575(term) C/glabels.xml:1149(guilabel)
-msgid "Line"
-msgstr "Čára"
+#: C/merge.page:9(desc)
+msgid "Merge a data source to create multiple documents."
+msgstr "Jak slučovat zdroje dat při vytváření více dokumentů."
 
-#: C/glabels.xml:577(para)
+#: C/merge.page:25(title)
+msgid "Document merge tutorial"
+msgstr "Výuka slučování dokumentů"
+
+#: C/merge.page:27(p)
 msgid ""
-"Click the desired location of one end of the line object and drag to the "
-"desired location of the other end. If you simply click in a single location, "
-"a diagonal line will be created. To change properties of the line object, "
-"see <xref linkend=\"glabels-object-properties\"/>."
+"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that "
+"allows a unique label or card to be printed for each record in an external "
+"data source. It is however, the most mis-understood feature of <app>glabels</"
+"app>. The following examples will step through a couple of common tasks "
+"using the document merge feature."
 msgstr ""
-"Klikněte na požadované umístění levého horního konce objektu čára a táhněte "
-"k požadovanému umístění pravého dolního konce. Když jednoduše kliknete na "
-"jednom místě, vytvoří diagonální úsečka. Jak změnit vlastnosti čáry uvádí "
-"<xref linkend=\"glabels-object-properties\"/>."
+"Slučování dokumentů (někdy také nazývané „hromadná korespondence“) je mocná "
+"funkce, díky které můžete tisknout odlišné etikety nebo vizitky pro každý "
+"záznam v externím zdroji dat. Je však také ze všech funkcí aplikace "
+"<app>gLabels</app> nejnáročnější na pochopení. Následující příklady vás "
+"provedou několika obvyklými úlohami, které používají funkci slučování "
+"dokumentů."
 
-#: C/glabels.xml:586(term)
-msgid "Ellipse"
-msgstr "Elipsa"
+#: C/mergefeatures.page:9(desc)
+msgid "What you may expect from a document merge."
+msgstr "Co můžete očekávat od slučování dokumentů."
+
+#: C/mergefeatures.page:25(title)
+msgid "Performing a document merge"
+msgstr "Provádění slučování dokumentů"
 
-#: C/glabels.xml:588(para)
+#: C/mergefeatures.page:27(p)
 msgid ""
-"Click the desired location of the upper left corner of the ellipse object "
-"and drag to the desired location of the lower right corner. If you simply "
-"click in a single location, a circle will be created. To change properties "
-"of the ellipse object, see <xref linkend=\"glabels-object-properties\"/>."
+"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that "
+"allows a unique label or card to be printed for each record in an external "
+"data source."
 msgstr ""
-"Klikněte na požadované umístění levého horního rohu objektu elipsa a táhněte "
-"k požadovanému umístění pravého dolního rohu. Když jednoduše kliknete na "
-"jednom místě, vytvoří se kruh. Jak změnit vlastnosti elipsy uvádí <xref "
-"linkend=\"glabels-object-properties\"/>."
-
-#: C/glabels.xml:597(term)
-msgid "Image"
-msgstr "Obrázek"
+"Slučování dokumentů (někdy také nazývané „hromadná korespondence“) je mocná "
+"funkce, která umožňuje vytisknout na etikety nebo vizitky různé texty podle "
+"jednotlivých záznamů v externím zdroji dat."
 
-#: C/glabels.xml:599(para)
+#: C/mergefeatures.page:31(p)
 msgid ""
-"Click the desired location of the upper left corner of the image object and "
-"drag to the desired location of the lower right corner. If you simply click "
-"in a single location, a square will be created. New image objects are "
-"initialized with a simple checkerboard image. To change this image, or other "
-"properties of the image object, see <xref linkend=\"glabels-object-properties"
-"\"/>."
+"The first step to performing a document merge is to prepare a source "
+"document that contains your merge data. This data could be mailing addresses "
+"or any other data that you wish to create unique labels or cards for. "
+"Currently back-ends only exist for text files and the evolution data server "
+"-- others are planned. The currently supported text-file format is very "
+"simple: each line is a record; fields are delimited by commas (CSV), tabs, "
+"or colons; and newlines can be embedded into fields by using the \"\\n\" "
+"entity. This file could be created using any text editor or could be created "
+"by another program or script. A common way of creating CSV files is to "
+"export them from a spreadsheet program."
 msgstr ""
-"Klikněte na požadované umístění levého horního rohu objektu obrázku a "
-"táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše "
-"kliknete na jednom místě, vytvoří se čtverec. Nový obrázkový objekt se "
-"vytvoří s jednoduchým počátečním obrázkem šachovnice. Jak změnit tento "
-"obrázek a další vlastnosti uvádí <xref linkend=\"glabels-object-properties\"/"
-">."
-
-#: C/glabels.xml:610(term)
-msgid "Barcode"
-msgstr "Čárový kód"
+"Prvním krokem při slučování dokumentů je příprava zdrojového dokumentu, "
+"který má obsahovat slučovaná data. Tato data mohou být poštovní adresy nebo "
+"jakákoliv jiná data, pro která si přejete vytvořit jedinečné etikety nebo "
+"vizitky. V současnosti jsou zatím jako zdroje podporované pouze textové "
+"soubory a datový server Evolution, jiné jsou v plánu. Současně podporovaný "
+"formát textových souborů je velmi jednoduchý: co řádek, to záznam; pole jsou "
+"oddělená čárkami (CSV), tabulátory nebo dvojtečkami; řádky jsou zakončené "
+"pomocí znaku „\\n“. Takovýto soubor jde vytvořit v libovolném textovém "
+"editoru nebo jiným programem nebo skriptem. Obvyklým způsobem vytváření "
+"souborů CSV je jejich export z tabulkového kalkulátoru."
 
-#: C/glabels.xml:612(para)
+#: C/mergefeatures.page:43(p)
 msgid ""
-"Click the desired location of the upper left corner of the barcode object. "
-"New barcode objects are initialized to a POSTNET barcode with representative "
-"data. To change data and properties of the barcode object, see <xref linkend="
-"\"glabels-object-properties\"/>."
+"A label must then be configured to \"point at\" this data file. To configure "
+"the merge properties of a document, choose <guiseq><gui>Objects</"
+"gui><gui>Merge Properties</gui></guiseq> menu item to display the <gui>merge "
+"properties</gui> dialog. This dialog is used to select the exact data file "
+"format and file name (location) of the merge data."
 msgstr ""
-"Klikněte na požadované umístění levého horního rohu objektu čárového kódu. "
-"Nový objekt čárového kódu se vytvoří jako čárový kód POSTNET s ukázkovými "
-"daty. Jak tato data nebo další vlastnosti změnit uvádí <xref linkend="
-"\"glabels-object-properties\"/>."
-
-#: C/glabels.xml:627(title)
-msgid "To Select Objects"
-msgstr "Jak vybrat objekty"
+"Etiketa musí být nastavená tak, aby „ukazovala na“ takovýto datový soubor. "
+"Abyste nastavili vlastnosti slučování dokumentu, zvolte položku nabídky "
+"<guiseq><gui>Objekty</gui><gui>Vlastnosti slučování</gui></guiseq> a zobrazí "
+"se dialogové okno <gui>vlastnosti slučování</gui>. Toto dialogové okno "
+"slouží k výběru přesného formátu datového souboru a názvu (umístění) souboru "
+"se slučovanými daty."
 
-#: C/glabels.xml:629(para)
+#: C/mergefeatures.page:51(p)
 msgid ""
-"A prerequisite for performing operations on objects is the selection of "
-"individual objects or groups of objects. The display area must be in the "
-"object selection mode to create new selections, as indicated by an arrow "
-"cursor. The object selection mode is selected by the "
-"<menuchoice><guimenu>Objects</guimenu><guimenuitem>Select Mode</"
-"guimenuitem></menuchoice> menu item, or the corresponding command on the "
-"<guilabel>Drawing Toolbar</guilabel>."
-msgstr ""
-"Předpokladem k provádění operací s objekty je výběr jednoho či skupiny více "
-"objektů. Aby bylo možné výběr provést, musí být zobrazovací oblast v režimu "
-"výběru objektů, což je indikováno kurzorem v podobě šipky. Režim výběru "
-"objektů se zvolí pomocí <menuchoice><guimenu>Objekty</"
-"guimenu><guimenuitem>Režim výběru</guimenuitem></menuchoice> nebo "
-"odpovídajícím příkazem na <guilabel>Panelu kreslení</guilabel>."
-
-#: C/glabels.xml:642(term)
-msgid "Selecting a single object"
-msgstr "Výběr jednoho objektu"
+"Finally, once the label has been configured for a data file, field keys can "
+"be inserted into text objects and used as source or data for barcode objects "
+"and image filenames for image objects. See <link xref=\"editprop\"/> for "
+"more information on using merge data for these object types."
+msgstr ""
+"Nakonec, až je etiketa nastavená pro datový soubor, je zapotřebí vložit "
+"klíče polí do textových objektů a použít klíče polí jako zdroje nebo data "
+"pro objekty čárových kódů a jako názvy souborů pro obrázkové objekty. Více "
+"informací o použití slučovaných dat pro tyto typy objektů viz <link xref="
+"\"editprop\"/>."
 
-#: C/glabels.xml:644(para)
+#: C/mergefeatures.page:57(p)
 msgid ""
-"A single object can be selected simply by clicking on the desired object in "
-"the display area. Once selected the object will be highlighted with a set of "
-"resizing handles."
+"Now that your label is configured, <app>gLabels</app> will print a unique "
+"label for each record in your source document -- substituting fields from "
+"each record for field keys in the all text, barcode, and image objects."
 msgstr ""
-"Jeden objekt vyberete prostým kliknutím na něj v zobrazovací oblasti. "
-"Vybraný objekt bude zvýrazněný sadou úchopů sloužících ke změně velikosti"
-
-#: C/glabels.xml:652(term)
-msgid "Aggregate object selections"
-msgstr "Přidávání objektů do výběru"
+"Nyní, když máte svoji etiketu nastavenou, bude aplikace <app>gLabels</app> "
+"tisknout jednotlivé etikety odlišné pro každý záznam ve vašem zdrojovém "
+"dokumentu – do klíčů polí se ve všech textech budou dosazovat pole z "
+"jednotlivých záznamů."
 
-#: C/glabels.xml:654(para)
+#: C/mergefeatures.page:62(p)
 msgid ""
-"Multiple objects can be selected by first selecting the first object as "
-"above and then by holding the <keycap>Ctrl</keycap> key while selecting "
-"additional objects. Individual objects can be added to an existing selection "
-"at any time by holding the <keycap>Ctrl</keycap> key while selecting the "
-"desired objects. All objects can also be selected by using the "
-"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Select All</guimenuitem></"
-"menuchoice> menu item. All objects in an aggregate object selection will be "
-"highlighted."
-msgstr ""
-"Více objektů můžete vybrat tak, že vyberete první dříve uvedeným způsobem a "
-"po té budete držet klávesu <keycap>Ctrl</keycap> a vybírat další objekty. "
-"Jednotlivé objekty lze přidat do stávajícího výběru kdykoliv držením klávesy "
-"<keycap>Ctrl</keycap> během vybírání požadovaných objektů. Všechny objekty "
-"můžete vybrat pomocí položky nabídky <menuchoice><guimenu>Upravit</"
-"guimenu><guimenuitem>Vybrat vše</guimenuitem></menuchoice>. Všechny objekty "
-"ve výběru jsou zvýrazněné."
+"See <link xref=\"merge\"/> for a detailed tutorial on the document merge "
+"feature."
+msgstr "Podrobný výklad funkcí slučování dokumentů viz <link xref=\"merge\"/>."
 
-#: C/glabels.xml:668(term)
-msgid "Area selections"
-msgstr "Výběr oblasti"
+#: C/merge-ex4.page:9(desc)
+msgid "Create address labels from a vCard file."
+msgstr "Vytvoření adresních štítků ze souboru VCard."
 
-#: C/glabels.xml:670(para)
+#: C/merge-ex4.page:25(title)
+msgid "Example 4: Address Labels Using a vCard file"
+msgstr "Příklad 4: Adresní štítky s použitím souboru VCard"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex3.page:53(None)
 msgid ""
-"Multiple objects can also be selected by clicking an empty area and dragging "
-"to form a rectangular area. When released, all objects contained in the area "
-"will form an aggregate selection. An area selection can be used to add to an "
-"existing selection by holding the <keycap>Ctrl</keycap> key while performing "
-"the selection."
+"@@image: 'figures/merge-ex3-1.png'; md5=fb5bf719857fb0a49517ecb50124384d"
 msgstr ""
-"Více objektů lze rovněž vybrat zmáčknutím tlačítka myši na prázdném místě a "
-"tažením obdélníkové oblasti. Po uvolnění tlačítka se všechny objekty "
-"obsažené v takovéto oblasti naráz vyberou. Výběr pomocí oblasti lez použít k "
-"přidání ke stávajícímu výběru podržením klávesy <keycap>Ctrl</keycap> během "
-"provádění výběru."
+"@@image: 'figures/merge-ex3-1.png'; md5=fb5bf719857fb0a49517ecb50124384d"
 
-#: C/glabels.xml:680(term)
-msgid "Unselecting objects"
-msgstr "Zrušení výběru objektů"
-
-#: C/glabels.xml:682(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex3.page:74(None)
 msgid ""
-"Individual objects can be removed from an existing selection by holding the "
-"<keycap>Ctrl</keycap> key while clicking on a previously selected object. An "
-"entire selection can be dismissed by using the <menuchoice><guimenu>Edit</"
-"guimenu><guimenuitem>Un-select All</guimenuitem></menuchoice> menu item or "
-"by simply clicking any empty space in the display area. Once an object is "
-"unselected its highlight is removed."
-msgstr ""
-"Jednotlivé objekty lze z výběru odebrat podržením klávesy <keycap>Ctrl</"
-"keycap> a klikáním na označené objekty. Veškerý výběr můžete zrušit pomocí "
-"nabídky <menuchoice><guimenu>Upravit</guimenu><guimenuitem>Zrušit výběr</"
-"guimenuitem></menuchoice> nebo jednoduchým kliknutím na prázdné místo v "
-"zobrazovací oblasti. Jakmile je u objektu zrušen výběr, zmizí i jeho "
-"zvýraznění."
-
-#: C/glabels.xml:699(title)
-msgid "Clipboard Commands"
-msgstr "Příkazy pro práci se schránkou"
+"@@image: 'figures/merge-ex3-2.png'; md5=28a15319cea58be75ff789c766dc0717"
+msgstr ""
+"@@image: 'figures/merge-ex3-2.png'; md5=28a15319cea58be75ff789c766dc0717"
 
-#: C/glabels.xml:701(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex3.page:88(None)
 msgid ""
-"Object selections can be manipulated using the standard clipboard operations "
-"<guimenuitem>Cut</guimenuitem>, <guimenuitem>Copy</guimenuitem>, "
-"<guimenuitem>Paste</guimenuitem>, and <guimenuitem>Delete</guimenuitem>."
+"@@image: 'figures/merge-ex3-3.png'; md5=443d59a44d8ddf5580087a772d4e3eec"
 msgstr ""
-"S vybranými objekty lze manipulovat pomocí standardních operací se schránkou "
-"<guimenuitem>Vyjmout</guimenuitem>, <guimenuitem>Kopírovat</guimenuitem>, "
-"<guimenuitem>Vložit</guimenuitem> a <guimenuitem>Smazat</guimenuitem>."
-
-#: C/glabels.xml:712(keycap) C/glabels.xml:728(keycap)
-#: C/glabels.xml:744(keycap)
-msgid "Ctrl"
-msgstr "Ctrl"
-
-#: C/glabels.xml:712(keycap)
-msgid "X"
-msgstr "X"
-
-#: C/glabels.xml:714(guimenuitem)
-msgid "Cut"
-msgstr "Vyjmout"
+"@@image: 'figures/merge-ex3-3.png'; md5=443d59a44d8ddf5580087a772d4e3eec"
 
-#: C/glabels.xml:718(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex3.page:99(None)
 msgid ""
-"Moves selected objects to the clipboard. The objects are then available for "
-"pasting back into the current document or another document."
+"@@image: 'figures/merge-ex3-4.png'; md5=1995114757cccebda45b686caeb37fa7"
 msgstr ""
-"Přesune vybrané objekty do schránky. Objekty jsou potom přístupné pro "
-"vkládání zpátky do aktuálního dokumentu nebo jiného dokumentu."
-
-#: C/glabels.xml:728(keycap)
-msgid "C"
-msgstr "C"
-
-#: C/glabels.xml:730(guimenuitem)
-msgid "Copy"
-msgstr "Kopírovat"
+"@@image: 'figures/merge-ex3-4.png'; md5=1995114757cccebda45b686caeb37fa7"
 
-#: C/glabels.xml:734(para)
+#: C/merge-ex3.page:9(desc)
 msgid ""
-"Copies selected objects to the clipboard without deleting them. The objects "
-"are then available for pasting back into the current document or another "
-"document."
+"Create address labels from the <app>Evolution</app> address book entries."
 msgstr ""
-"Zkopíruje vybrané objekty do schránky, aniž by byly vymazány. Objekty jsou "
-"potom přístupné pro vkládání zpátky do aktuálního dokumentu nebo jiného "
-"dokumentu."
+"Vytvoření adresních štítků ze záznamů adresáře aplikace <app>Evolution</app>."
 
-#: C/glabels.xml:744(keycap)
-msgid "V"
-msgstr "V"
+#: C/merge-ex3.page:25(title)
+msgid "Example 3: Address Labels Using the <app>Evolution</app> Addressbook"
+msgstr "Příklad 3: Adresní štítky z adresáře aplikace <app>Evolution</app>"
 
-#: C/glabels.xml:746(guimenuitem)
-msgid "Paste"
-msgstr "Vložit"
-
-#: C/glabels.xml:750(para)
+#: C/merge-ex3.page:27(p)
 msgid ""
-"Pastes objects from the clipboard into the current document. "
-"<application>gLabels</application> can only paste objects from another "
-"<application>gLabels</application> document."
+"Our last party was a great success, and now we need to print mailing address "
+"labels for the invitations to a new one. To simplify this, we can use the "
+"<app>Evolution</app> addressbook, because the address data of all our "
+"friends is stored there."
 msgstr ""
-"Vloží objekty ze schránky do aktuálního dokumentu. Aplikace "
-"<application>gLabels</application> umí vkládat pouze objekty z jiného "
-"dokumentu <application>gLabels</application>."
+"Náš předchozí večírek měl velký úspěch a my nyní chceme vytisknout adresní "
+"štítky pro pozvánky na další takový. Abychom si to zjednodušili, můžeme "
+"použít adresář aplikace <app>Evolution</app>, protože adresy všech našich "
+"přátel máme uložené v něm."
+
+#: C/merge-ex3.page:33(p)
+msgid ""
+"Depending on how your copy of <app>gLabels</app> was packaged, this option "
+"could be unavailable. Support for the <app>Evolution</app> addressbook will "
+"only be available if the <app>evolution-data-server</app> and its "
+"development files were present when <app>gLabels</app> was built. Please "
+"keep this in mind if you build <app>gLabels</app> directly from source."
+msgstr ""
+"V závislosti na tom, jak byl připravený váš balíček <app>gLabels</app>, "
+"nemusí být tato funkčnost dostupná. Podpora pro adresář <app>Evolution</app> "
+"je dostupná jen v případě, že byl při překladu aplikace <app>gLabels</app> k "
+"dispozici <app>evolution-data-server</app> a k němu vývojářské soubory. "
+"Mějte toto na paměti, pokud si aplikaci překládáte sami ze zdrojových kódů."
+
+#: C/merge-ex3.page:39(p)
+msgid ""
+"If the <app>gLabels</app> package from your distribution lacks this support, "
+"you may wish to contact the package maintainer or file a bug against the "
+"package to request it."
+msgstr ""
+"Pokud balíček <app>gLabels</app> ve vaší distribuci tuto podporu postrádá, "
+"můžete zkusit kontaktovat správce balíčku nebo to zkusit nahlásit jako "
+"požadavek do systému pro hlášení chyb."
+
+#: C/merge-ex3.page:44(p)
+msgid ""
+"In <app>glabels</app> we have created a new <app>gLabels</app> document "
+"using the Avery 5512 \"Address Labels\" template. Next we use the "
+"<guiseq><gui>Objects</gui><gui>Merge Properties</gui></guiseq> menu item to "
+"display the <gui>Merge properties</gui> dialog. We use this dialog to select "
+"the source type (in our case <gui>Data from default Evolution addressbook</"
+"gui>) as shown."
+msgstr ""
+"V aplikaci <app>glabels</app> vytvoříme nový dokument ze šablony Avery L7162 "
+"„Poštovní etikety“. Potom v nabídce zvolíme <guiseq><gui>Objekty</"
+"gui><gui>Vlastnosti slučování</gui></guiseq>, aby se nám zobrazilo dialogové "
+"okno <gui>Vlastnosti slučování</gui>. V něm vybereme typ zdroje (v našem "
+"případě <gui>Data z výchozího adresáře Evolution</gui>), jak je ukázáno na "
+"obrázku."
 
-#: C/glabels.xml:760(keycap) C/glabels.xml:762(guimenuitem)
-msgid "Delete"
-msgstr "Smazat"
+#: C/merge-ex3.page:54(p) C/merge-ex2.page:53(p) C/merge-ex1.page:51(p)
+msgid "Merge properties dialog"
+msgstr "Dialogové okno vlastností slučování"
 
-#: C/glabels.xml:766(para)
-msgid "Deletes selected objects without placing them on the clipboard."
-msgstr "Smaže vybrané objekty, aniž by byly umístěny do schránky."
+#. ==== End of Figure ====
+#: C/merge-ex3.page:58(p)
+msgid ""
+"Once we have chosen <gui>Data from default Evolution addressbook </gui> as "
+"our merge source, we will get a full list of its content. Initially, all "
+"entries are checked. Assuming we were planning a really big party, we could "
+"leave this selection untouched (but let's keep our budget in mind). We will "
+"now select or unselect certain entries by clicking on the appropriate "
+"checkboxes, or we could use the <gui>Select all</gui> and <gui>Unselect all "
+"</gui> buttons to activate or deactivate all entries in the address book."
+msgstr ""
+"Když máme jako zdroj slučování vybráno <gui>Data z výchozího adresáře "
+"Evolution</gui>, obdržíme úplný seznam jeho obsahu. Na začátku jsou "
+"zaškrtnuté všechny položky. Předpokládá se, že budeme pořádat opravdu velký "
+"večírek a tak bychom mohli ponechat výběr jak je (ale uvědomte si kolik to "
+"bude stát). Nyní některé záznamy kliknutím na příslušné zaškrtávací políčko "
+"vyřadíme nebo naopak vybereme, případně můžeme použít tlačítka <gui>Vybrat "
+"vše</gui> a <gui>Zrušit výběr</gui> pro aktivování nebo deaktivování všech "
+"záznamů v adresáři."
 
-#: C/glabels.xml:777(title)
-msgid "To Edit Object Properties"
-msgstr "Jak upravit vlastnosti objektu"
+#: C/merge-ex3.page:66(p)
+msgid ""
+"We can also view each entry in more detail by clicking on the appropriate "
+"expander (the little triangles) as shown. Once we are satisfied with the "
+"selections in this dialog, we will click the <gui>OK</gui> button to accept "
+"the changes."
+msgstr ""
+"U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení "
+"kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně "
+"spokojení, klikneme na <gui>OK</gui> a změny se použijí."
 
-#: C/glabels.xml:779(para)
+#: C/merge-ex3.page:71(p) C/merge-ex2.page:67(p) C/merge-ex1.page:60(p)
 msgid ""
-"Most object properties can be modified through the object editor sidebar, "
-"illustrated below. To use the object editor, a single object must first be "
-"selected. See <xref linkend=\"glabels-select-objects\"/>."
+"Now we start adding objects to our <app>glabels</app> document as shown."
 msgstr ""
-"Většinu vlastností objektů lze upravit přes editor objektů v postranním "
-"panelu, který je vyobrazený níže. Abyste mohli editor objektů používat, "
-"musíte nejdříve vybrat jeden objekt. Viz <xref linkend=\"glabels-select-"
-"objects\"/>."
+"Nyní můžeme začít s přidáváním objektů do svého dokumentu <app>glabels</"
+"app>, jak je ukázáno níže."
 
-#: C/glabels.xml:786(title)
-msgid "Object Editor Sidebar"
-msgstr "Editor objektů z postranního panelu"
+#: C/merge-ex3.page:75(p) C/merge-ex2.page:71(p) C/merge-ex1.page:64(p)
+msgid "Adding objects"
+msgstr "Přidávání objektů"
 
 #. ==== End of Figure ====
-#: C/glabels.xml:797(para)
+#: C/merge-ex3.page:79(p)
 msgid ""
-"The object editor will contain a subset of the following tabbed sections, "
-"depending on object type:"
+"In this example we have a single text object again. This text object "
+"contains all of our merge fields organized on multiple lines as a mailing "
+"address."
 msgstr ""
-"Editor objektů bude obsahovat některé z následujících karet, které závisí na "
-"typu objektu:"
-
-#: C/glabels.xml:801(title)
-msgid "Text Tabbed Section (Text objects)"
-msgstr "Karta Text (textové objekty)"
+"V tomto příkladu máme opět jen jeden textový objekt. Ten obsahuje všechna "
+"slučovaná pole uspořádaná v několika řádcích, představujících poštovní "
+"adresy."
 
-#: C/glabels.xml:803(para)
+#: C/merge-ex3.page:82(p)
 msgid ""
-"This section contains a small editor for changing the content of a text "
-"object. It also contains a dropdown menu of available document merge keys, "
-"that can be inserted into text."
+"Now we can print our address labels by selecting the <guiseq><gui>File</"
+"gui><gui>Print</gui></guiseq> menu item. This will display the print dialog "
+"as shown below."
 msgstr ""
-"Tato karta obsahuje malý editor na úpravu obsahu textového objektu. Rovněž "
-"obsahuje vyskakovací nabídku dostupných klíčů slučování dokumentů, které lze "
-"do textu vkládat."
+"Nyní můžeme své etikety s adresami vytisknout volbou položky nabídky "
+"<guiseq><gui>Soubor</gui><gui>Tisk</gui></guiseq>. Zobrazí se dialogové okno "
+"tisku, jak jej můžete vidět níže."
 
-#: C/glabels.xml:810(title)
-msgid "Image Tabbed Section (Image objecs)"
-msgstr "Karta Obrázek (obrázkové objekty)"
+#: C/merge-ex3.page:89(p) C/merge-ex2.page:89(p)
+msgid "Printing address labels"
+msgstr "Tisk etiket s adresami"
 
-#: C/glabels.xml:812(para)
+#. ==== End of Figure ====
+#: C/merge-ex3.page:93(p) C/merge-ex2.page:93(p) C/merge-ex1.page:89(p)
 msgid ""
-"This section contains a file entry with preview to select image files. The "
-"browse button can be used to easily locate image files. Alternatively, a "
-"document merge key can be used instead to provide a filename at print time."
+"Just to make sure our labels are going to look okay, we select the "
+"<gui>Print outlines</gui> option and click <gui>Print Preview</gui>. This "
+"will display a print preview dialog as shown below."
 msgstr ""
-"Tato karta obsahuje pole na zadání souboru s obrázkem. Přes tlačítko "
-"procházení můžete soubor snadno najít. Druhou možností je použití klíče pro "
-"slučování dokumentů, který poskytne název souboru až během tisku."
+"Nyní zkontrolujeme, zda vypadají etikety jak mají. Vybereme možnost "
+"<gui>Tisk obrysů</gui> a klikneme na <gui>Náhled tisku</gui>. Zobrazí se "
+"dialogové okno s náhledem tisku, stejně jako na následujícím obrázku."
 
-#: C/glabels.xml:820(title)
-msgid "Data Tabbed Section (Barcode objecs)"
-msgstr "Karta Data (objekty čárových kódů)"
+#: C/merge-ex3.page:100(p)
+msgid "Addess labels preview"
+msgstr "Náhled etiket s adresami"
 
-#: C/glabels.xml:822(para)
+#. ==== End of Figure ====
+#: C/merge-ex3.page:104(p) C/merge-ex2.page:104(p)
 msgid ""
-"This section contains a text entry to enter literal barcode data. "
-"Alternatively, a document merge key can be used to provide this data at "
-"print time."
+"Everything looks good, so we can now load up our printer with the "
+"appropriate label stock, print our address labels and start mailing our "
+"party invitations."
 msgstr ""
-"Tato karta obsahuje textové pole na zadání dat pro čárový kód. Druhou "
-"možností je použití klíče pro slučování dokumentů, přes který jsou data "
-"poskytována až během tisku."
-
-#: C/glabels.xml:829(title)
-msgid "Style Tabbed Section (Text objects)"
-msgstr "Karta Styl (textové objekty)"
+"Vše vypadá dobře a tak můžeme vložit do tiskárny správný list s etiketami, "
+"vytisknout adresní štítky a začít rozesílat pozvánky na večírek."
 
-#: C/glabels.xml:831(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex2.page:52(None)
 msgid ""
-"This section contains controls to select text properties, including font "
-"family, font size, font weight, color, and text justification."
+"@@image: 'figures/merge-ex2-1.png'; md5=c9db139c5b7188e101470dc74684a118"
 msgstr ""
-"Tato karta obsahuje ovládací prvky na výběr vlastností textu, včetně typu "
-"písma, velikosti písma, tloušťky písma, barvy a zarovnání textu."
-
-#: C/glabels.xml:838(title)
-msgid "Style Tabbed Section (Barcode objecs)"
-msgstr "Karta Styl (objekty čárových kódů)"
+"@@image: 'figures/merge-ex2-1.png'; md5=c9db139c5b7188e101470dc74684a118"
 
-#: C/glabels.xml:840(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex2.page:70(None)
 msgid ""
-"This section contains controls to select barcode properties, including "
-"barcode style, color, whether to print text, and whether to include a "
-"checksum digit."
+"@@image: 'figures/merge-ex2-2.png'; md5=240b4e4ebaa270e0e8bf84c5bfd7233e"
 msgstr ""
-"Tato karta obsahuje ovládací prvky na výběr vlastností čárového kódu, včetně "
-"stylu čárového kódu, barvy, zda tisknout text a zda vkládat číslo s "
-"kontrolním součtem."
-
-#: C/glabels.xml:847(title)
-msgid "Line Tabbed Section"
-msgstr "Karta Čára"
+"@@image: 'figures/merge-ex2-2.png'; md5=240b4e4ebaa270e0e8bf84c5bfd7233e"
 
-#: C/glabels.xml:849(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex2.page:88(None)
 msgid ""
-"This section contains controls to select properties of lines and outlines. "
-"These properties include line width and color."
+"@@image: 'figures/merge-ex2-3.png'; md5=c347460091d8eef9f4ec89557fa9f1e2"
 msgstr ""
-"Tato karta obsahuje ovládací prvky na výběr vlastností čar a obrysů. Tyto "
-"vlastnosti zahrnují tloušťku čáry a její barvu."
+"@@image: 'figures/merge-ex2-3.png'; md5=c347460091d8eef9f4ec89557fa9f1e2"
 
-#: C/glabels.xml:855(title)
-msgid "Fill Tabbed Section"
-msgstr "Karta Výplň"
-
-#: C/glabels.xml:857(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex2.page:99(None)
 msgid ""
-"This section contains controls to select fill properties of box and ellipse "
-"objects. Currently the only fill property is fill color."
+"@@image: 'figures/merge-ex2-4.png'; md5=30d12e946a79e27211b835e38742671c"
 msgstr ""
-"Tato karta obsahuje ovládací prvky na výběr vlastností výplně objektů "
-"obdélníků a elips. V současnosti obsahuje pouze barvu výplně."
+"@@image: 'figures/merge-ex2-4.png'; md5=30d12e946a79e27211b835e38742671c"
 
-#: C/glabels.xml:864(title)
-msgid "Size Tabbed Section (All except line objects)"
-msgstr "Karta Velikost (všechny objekty vyjma čar)"
+#: C/merge-ex2.page:9(desc)
+msgid "Create address labels from a CSV file."
+msgstr "Vytvoření adresních štítků ze souboru CSV."
+
+#: C/merge-ex2.page:25(title)
+msgid "Example 2: Address labels"
+msgstr "Příklad 2: Adresní štítky"
 
-#: C/glabels.xml:866(para)
+#: C/merge-ex2.page:27(p)
 msgid ""
-"This section contains controls to select the width and height of an object. "
-"A checkbox is provided, so that the current aspect ratio can be locked while "
-"manipulating the width and height controls. Image objects also provide a "
-"button to reset the size to the image's natural size (Assumes 72DPI)."
+"In this example we are going to throw a party and need to print mailing "
+"address labels for our invitations. We have a list of our closest friends "
+"that we created in <app>gnumeric</app> and exported as the following CSV "
+"file. It should be noted that not everyone has a middle initial or a two "
+"line address."
 msgstr ""
-"Tato karta obsahuje ovládací prvky na výběr šířky a výšky objektu. K "
-"dispozici je zaškrtávací pole, kterým můžete zamknout poměr stran během "
-"úprav šířky a výšky. U obrázků je k dispozici rovněž tlačítko, kterým můžete "
-"nastavit reálné rozměry obrázku (předpokládá se 72 DPI)."
-
-#: C/glabels.xml:875(title)
-msgid "Size Tabbed Section (Line objects)"
-msgstr "Karta Velikost (objekty čar)"
+"V tomto příkladu se chystáme uspořádat večírek a potřebujeme vytisknout "
+"adresní štítky na své pozvánky. Máme seznam svých nejbližších přátel, který "
+"jsem vytvořili v aplikaci <app>gnumeric</app> a vyexportovali jej jako "
+"soubor CSV. Povšimněte si, že ne všichni mají přezdívku nebo dvouřádkovou "
+"adresu."
 
-#: C/glabels.xml:877(para)
+#: C/merge-ex2.page:33(code)
+#, no-wrap
 msgid ""
-"This section contains controls to select the length and angle of a line "
-"object."
-msgstr "Tato karta obsahuje ovládací prvky pro výběr délky a úhlu čáry."
-
-#: C/glabels.xml:883(title)
-msgid "Position Tabbed Section"
-msgstr "Karta Pozice"
-
-#: C/glabels.xml:885(para)
-msgid "This section contains controls to change the position of an object."
-msgstr "Tato karta obsahuje ovládací prvky pro změnu pozice objektu."
-
-#: C/glabels.xml:892(title)
-msgid "Shadow Tabbed Section (All except image and barcode objects)"
-msgstr "Karta Stín (všechny objekty vyjma obrázků a čárových kódů)"
-
-#: C/glabels.xml:894(para)
-msgid "This section contains controls to add a shadow to an object."
-msgstr "Tato karta obsahuje ovládací prvky pro přidání stínu k objektu."
-
-#: C/glabels.xml:903(title)
-msgid "Other Manipulations of Objects"
-msgstr "Ostatní manipulace s objekty"
-
-#: C/glabels.xml:905(para)
-msgid "Objects can also be manipulated in the following ways."
-msgstr "S objekty lze manipulovat ještě následujícími způsoby:"
-
-#: C/glabels.xml:908(title)
-msgid "Moving and Resizing Objects"
-msgstr "Přesouvání a změna velikosti objektů"
+"\n"
+"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n"
+",,,,,,,\n"
+"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n"
+"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n"
+"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n"
+"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n"
+"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n"
+"      "
+msgstr ""
+"\n"
+"PRIJMENI,JMENO,PREZDIVKA,ADR1,ADR2,MESTO,PSC\n"
+",,,,,,,\n"
+"Pacovský,Tomáš,,\"U dvou akordů\",\"Křižíkova 506\",Praha,\"123 00\"\n"
+"Pacovský,František,Ozzák,\"Křižíkova 62\",,\"Praha - Vinohrady\",\"110 00\"\n"
+"Divičová,Marcela,,\"Náměstí míru 1\",,Praha,\"150 00\"\n"
+"Bůček,Alexandr,Lexa,\"U Jezevce\",\"Nitranská 7\",Praha,\"160 13\"\n"
+"Bůčková,Alexandra,,\"Korunní 18\",,Praha,\"100 24\"\n"
+"      "
 
-#: C/glabels.xml:910(para)
+#: C/merge-ex2.page:43(p)
 msgid ""
-"Objects can be moved by simply clicking on a selected object and dragging "
-"the object to its new location. If the object is part of an aggregate "
-"selection, all objects in the selection will move with the object being "
-"dragged, maintaining their relative positions to one another. If no object "
-"is selected, clicking on an object will create a new selection containing "
-"that object. See <xref linkend=\"glabels-select-objects\"/>."
+"In <app>glabels</app> we have created a new <app>glabels</app> document "
+"using the Avery 5512 \"Address Labels\" template. Next we use the "
+"<guiseq><gui>Objects</gui><gui>Merge Properties</gui></guiseq> menu item to "
+"display the <gui>merge properties</gui> dialog. We use this dialog to select "
+"the source type (in our case CSV with keys on line 1) and the merge source "
+"(filename) as shown."
 msgstr ""
-"Objekty lze přesunout kliknutím na vybraný objekt a tažením objektu na nové "
-"místo. Pokud je objekt součástí skupiny označených objektů, budou se s "
-"objektem přesouvat všechny vybrané objekty, ale jejich vzájemná pozice "
-"zůstane zachovaná. Pokud není žádný objekt vybraný, kliknutí na objekt "
-"provede nový výběr tohoto objektu. Viz <xref linkend=\"glabels-select-objects"
-"\"/>."
+"V aplikaci <app>gLabels</app> vytvoříme nový dokument ze šablony Avery L7162 "
+"„Poštovní etikety“. Následně použijeme položku nabídky <guiseq><gui>Objekty</"
+"gui><gui>Vlastnosti slučování</gui></guiseq> a zobrazí se nám dialogové okno "
+"<gui>vlastností slučování</gui>. V tomto dialogovém okně vybereme typ zdroje "
+"(v našem případě CSV s klíči na 1. řádku) a konkrétní zdroj (název souboru) "
+"pro slučování, jak můžete vidět na následujícím obrázku."
 
-#: C/glabels.xml:918(para)
+#. ==== End of Figure ====
+#: C/merge-ex2.page:57(p)
 msgid ""
-"A selected object can be resized by clicking one of its resize handle and "
-"dragging it to obtain the new size."
+"Before applying the merge source, we uncheck the first record since it only "
+"contains empty fields. It is an artifact of our original <app>gnumeric</app> "
+"spreadsheet and would simply waste our first label. We could also unselect "
+"any other records that we didn't want to print a label for."
 msgstr ""
-"U vybraných objektů můžete měnit jejich velikost kliknutím na úchop pro "
-"změnu velikosti a jeho tažením tak, abyste dosáhli správné velikost."
-
-#: C/glabels.xml:924(title)
-msgid "Changing Stacking Order"
-msgstr "Změna pořadí objektů"
+"Před použitím zdroje slučování zrušíme zaškrtnutí prvního záznamu, protože "
+"ten obsahuje pouze prázdná pole. To je pozůstatek z naší původní tabulky "
+"vytvořené v <app>gnumeric</app> a akorát bychom tím zničili první etiketu. "
+"Stejným způsobem můžeme zrušit zaškrtnutí kteréhokoliv záznamu, který "
+"nechceme vytisknout."
 
-#: C/glabels.xml:926(para)
+#. ==== End of Figure ====
+#: C/merge-ex2.page:62(p) C/merge-ex1.page:55(p)
 msgid ""
-"Stacking order refers to relative position in the z-axis of objects. That is "
-"when objects overlap, which object will appear on top of the other. By "
-"default, newer objects will appear above older objects. To change this "
-"order, select one or more objects and choose <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Order</guimenuitem><guimenuitem>Bring to Front</"
-"guimenuitem></menuchoice> to raise the selection to the top of the stacking "
-"order, or choose <menuchoice><guimenu>Objects</guimenu><guimenuitem>Order</"
-"guimenuitem><guimenuitem>Send to Back</guimenuitem></menuchoice> to lower "
-"the selection to the bottom of the stacking order. These menuitems are also "
-"available by right-clicking the display area when there is a non-empty "
-"selection."
+"We can also view each record in more detail by clicking on the appropriate "
+"expander (the little triangles) as shown. Once we are satisfied with the "
+"selections in this dialog we click <gui>OK</gui> to accept the changes."
 msgstr ""
-"Pořadí objektů představuje jejich relativní polohu v ose z. Prakticky to "
-"určuje při překrývání objektů, který z nich bude nahoře a který vespod. "
-"Standardně se nové objekty vytvářejí nad staršími objekty. Když chcete toto "
-"pořadí změnit, jeden nebo více objektů vyberte a zvolte "
-"<menuchoice><guimenu>Objekty</guimenu><guimenuitem>Pořadí</"
-"guimenuitem><guimenuitem>Přenést dopředu</guimenuitem></menuchoice> pro "
-"vynesení výběru na nejvyšší pozici nebo <menuchoice><guimenu>Objekty</"
-"guimenu><guimenuitem>Pořadí</guimenuitem><guimenuitem>Přenést dozadu</"
-"guimenuitem></menuchoice> pro zatlačení výběru úplně dospod. Tyto položky "
-"nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací oblasti "
-"za předpokladu, že jsou vybrané nějaké objekty."
-
-#: C/glabels.xml:944(title)
-msgid "Rotating and Flipping Objects"
-msgstr "Otáčení a překlápění objektů"
+"U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení "
+"kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně "
+"spokojení, klikneme na <gui>OK</gui> a změny se použijí."
 
-#: C/glabels.xml:946(para)
+#. ==== End of Figure ====
+#: C/merge-ex2.page:75(p)
 msgid ""
-"Objects can be rotated 90 degrees in either direction, or flipped "
-"horizontally or vertically, by choosing the appropriate menuitem in the "
-"<menuchoice><guimenu>Objects</guimenu><guimenuitem>Rotate/Flip</"
-"guimenuitem></menuchoice> sub-menu. These menuitems are also available by "
-"right-clicking the display area when there is a non-empty selection."
+"In this example we have a single text object. This text object contains all "
+"of our merge fields organized on multiple lines as a mailing address. Notice "
+"that fields ${ADDR1} and ${ADDR2} are each located with no other text on "
+"their own lines. When <app>glabels</app> encounters a field as the only text "
+"on a line, it will not expand the line if the field is empty."
 msgstr ""
-"Objekty lze otáčet po 90stupňových krocích v obou směrech nebo je překlápět "
-"svisle nebo vodorovně a to volbou příslušné položky v podnabídce "
-"<menuchoice><guimenu>Objekty</guimenu><guimenuitem>Otočit/Překlopit</"
-"guimenuitem></menuchoice>. Tyto položky nabídky jsou přístupné i po kliknutí "
-"pravým tlačítkem v zobrazovací oblasti za předpokladu, že jsou vybrané "
-"nějaké objekty."
-
-#: C/glabels.xml:956(title)
-msgid "Aligning Objects"
-msgstr "Zarovnávání objektů"
+"V tomto příkladu máme jen jeden textový objekt. Tento textový objekt "
+"obsahuje všechna slučovaná pole uspořádaná v několika řádcích "
+"představujících poštovní adresu. Všimněte si, že pole ${ADR1} a ${ADR2} jsou "
+"umístěná na samostatných řádcích bez jakéhokoliv dalšího textu. Pokud "
+"aplikace <app>gLabels</app> narazí na pole, které je jediným textem na řádku "
+"a toto pole je prázdné, řádek nebude ve výsledku zabírat žádné místo."
 
-#: C/glabels.xml:958(para)
+#: C/merge-ex2.page:82(p)
 msgid ""
-"Objects can be aligned horizontally or vertically, relative to one another, "
-"or relative to the center line of the label, by choosing the appropriate "
-"menuitem from the <menuchoice><guimenu>Objects</guimenu><guimenuitem>Align "
-"Horizontal</guimenuitem></menuchoice> or <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Align Horizontal</guimenuitem></menuchoice> sub-menus. "
-"These menuitems are also available by right-clicking the display area when "
-"there is a non-empty selection."
+"Now we can print our address labels by selecting the <guiseq><gui>File</"
+"gui><gui>Print</gui></guiseq> menu item. This will display print dialog as "
+"shown below."
 msgstr ""
-"Objekty lze zarovnávat vodorovně nebo svisle, relativně vůči sobě nebo "
-"relativně ke středové čáře etikety, volbou příslušné položky z podnabídky "
-"<menuchoice><guimenu>Objekty</guimenu><guimenuitem>Zarovnat vodorovně</"
-"guimenuitem></menuchoice> nebo <menuchoice><guimenu>Objekty</"
-"guimenu><guimenuitem>Zarovnat svisle</guimenuitem></menuchoice>. Tyto "
-"položky nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací "
-"oblasti za předpokladu, že jsou vybrané nějaké objekty."
+"Nyní se můžeme pustit do tisku adresních štítků pomocí volby "
+"<guiseq><gui>Soubor</gui><gui>Tisk</gui></guiseq> v nabídce. Zobrazí se "
+"dialogové okno tisku jako na následujícím obrázku."
 
-#: C/glabels.xml:971(title)
-msgid "Using the Property Bar"
-msgstr "Používání panelu vlastností"
+#: C/merge-ex2.page:100(p)
+msgid "Address labels preview"
+msgstr "Náhled etiket s adresami"
 
-#: C/glabels.xml:973(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex1.page:50(None)
 msgid ""
-"The property bar can be used to change some common properties of objects en-"
-"masse. These properties include font family, font size, font weight, text "
-"alignment, text color, fill color, line or outline color, and line width. "
-"The property bar also controls the defaults for these properties for any "
-"newly created objects."
+"@@image: 'figures/merge-ex1-1.png'; md5=6e1cda54b797f875f379b657370d87c8"
 msgstr ""
-"Panel vlastností lze použít ke změně některých běžných vlastností objektů "
-"jako celku. Tyto vlastnosti zahrnují typ písma, velikost písma, tloušťku "
-"písma, zarovnání textu, barvu textu, barvu výplně, barvu čáry nebo obrysu a "
-"tloušťku čáry. Přes panel vlastností může také zadat výchozí hodnoty těchto "
-"vlastností pro nově vytvářené objekty."
-
-#: C/glabels.xml:988(title)
-msgid "Performing a Document Merge"
-msgstr "Provádění slučování dokumentů"
+"@@image: 'figures/merge-ex1-1.png'; md5=6e1cda54b797f875f379b657370d87c8"
 
-#: C/glabels.xml:990(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex1.page:63(None)
 msgid ""
-"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that "
-"allows a unique label or card to be printed for each record in an external "
-"data source."
+"@@image: 'figures/merge-ex1-2.png'; md5=2ccad04ae5830f5f4a6a601d9fabed6a"
 msgstr ""
-"Slučování dokumentů (někdy také nazývané „hromadná korespondence“) je mocná "
-"funkce, která umožňuje vytisknout na etikety nebo vizitky různé texty podle "
-"jednotlivých záznamů v externím zdroji dat."
+"@@image: 'figures/merge-ex1-2.png'; md5=2ccad04ae5830f5f4a6a601d9fabed6a"
 
-#: C/glabels.xml:994(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex1.page:84(None)
 msgid ""
-"The first step to performing a document merge is to prepare a source "
-"document that contains your merge data. This data could be mailing addresses "
-"or any other data that you wish to create unique labels or cards for. "
-"Currently back-ends only exist for text files and the evolution data server "
-"-- others are planned. The currently supported text-file format is very "
-"simple: each line is a record; fields are delimited by commas (CSV), tabs, "
-"or colons; and newlines can be embedded into fields by using the \"\\n\" "
-"entity. This file could be created using any text editor or could be created "
-"by another program or script. A common way of creating CSV files is to "
-"export them from a spreadsheet program."
+"@@image: 'figures/merge-ex1-3.png'; md5=858855ab1a392db74b70cdb2bdb27ddd"
 msgstr ""
-"Prvním krokem při slučování dokumentů je příprava zdrojového dokumentu, "
-"který má obsahovat slučovaná data. Tato data mohou být poštovní adresy nebo "
-"jakákoliv jiná data, pro která si přejete vytvořit jedinečné etikety nebo "
-"vizitky. V současnosti jsou zatím jako zdroje podporované pouze textové "
-"soubory a datový server Evolution, jiné jsou v plánu. Současně podporovaný "
-"formát textových souborů je velmi jednoduchý: co řádek, to záznam; pole jsou "
-"oddělená čárkami (CSV), tabulátory nebo dvojtečkami; řádky jsou zakončené "
-"pomocí znaku „\\n“. Takovýto soubor jde vytvořit v libovolném textovém "
-"editoru nebo jiným programem nebo skriptem. Obvyklým způsobem vytváření "
-"souborů CSV je jejich export z tabulkového kalkulátoru."
+"@@image: 'figures/merge-ex1-3.png'; md5=858855ab1a392db74b70cdb2bdb27ddd"
 
-#: C/glabels.xml:1006(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex1.page:95(None)
 msgid ""
-"A label must then be configured to \"point at\" this data file. To configure "
-"the merge properties of a document, choose <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Merge Properties</guimenuitem></menuchoice> menu item "
-"to display the <guilabel>merge properties</guilabel> dialog. This dialog is "
-"used to select the exact data file format and file name (location) of the "
-"merge data."
+"@@image: 'figures/merge-ex1-4.png'; md5=8648ff55dd2e531a1a82b797f0430279"
 msgstr ""
-"Etiketa musí být nastavená tak, aby „ukazovala na“ takovýto datový soubor. "
-"Abyste nastavili vlastnosti slučování dokumentu, zvolte položku nabídky "
-"<menuchoice><guimenu>Objekty</guimenu><guimenuitem>Vlastnosti slučování</"
-"guimenuitem></menuchoice>, zobrazí se dialogové okno <guilabel>vlastnosti "
-"slučování</guilabel>. Toto dialogové okno slouží k výběru přesného formátu "
-"datového souboru a názvu (umístění) souboru se slučovanými daty."
+"@@image: 'figures/merge-ex1-4.png'; md5=8648ff55dd2e531a1a82b797f0430279"
 
-#: C/glabels.xml:1014(para)
+#: C/merge-ex1.page:9(desc)
+msgid "Create name tags from a CSV file."
+msgstr "Vytvoření jmenovek ze souboru CSV."
+
+#: C/merge-ex1.page:25(title)
+msgid "Example 1: Name Tags"
+msgstr "Příklad 1: Jmenovky"
+
+#: C/merge-ex1.page:27(p)
 msgid ""
-"Finally, once the label has been configured for a data file, field keys can "
-"be inserted into text objects and used as source or data for barcode objects "
-"and image filenames for image objects. See <xref linkend=\"glabels-object-"
-"properties\"/> for more information on using merge data for these object "
-"types."
+"In this example we are organizing an orientation party for the new crew "
+"members of our ship. We have a list of freshman crew members that we created "
+"in <app>gnumeric</app> and exported as the following CSV file. We could have "
+"created this file by using a text editor, but heck it is the 23rd century."
 msgstr ""
-"Nakonec, až je etiketa nastavená pro datový soubor, je zapotřebí vložit "
-"klíče polí do textových objektů a použít klíče polí jako zdroje nebo data "
-"pro objekty čárových kódů a jako názvy souborů pro obrázkové objekty. Více "
-"informací o použití slučovaných dat pro tyto typy objektů viz <xref linkend="
-"\"glabels-object-properties\"/>."
+"V tomto příkladu pořádáme seznamovací párty pro nové členy osádky naší lodi. "
+"Máme seznam nováčků v osádce, který jsme vytvořili v aplikaci <app>gnumeric</"
+"app> a následně jej vyexportovali do souboru CSV. Mohli bychom jej vytvořit "
+"i v textovém editoru, ale žijeme přece v 21. století."
 
-#: C/glabels.xml:1020(para)
+#: C/merge-ex1.page:33(code)
+#, no-wrap
 msgid ""
-"Now that your label is configured, <application>gLabels</application> will "
-"print a unique label for each record in your source document -- substituting "
-"fields from each record for field keys in the all text, barcode, and image "
-"objects."
+"\n"
+"Name,Department,SN\n"
+"\"Jim Kirk\",Management,\"SC937-0176 CEC\"\n"
+"\"Mr. Spock\",Sciences,S179-276SP\n"
+"\"Leonard McCoy\",Medicine,unknown\n"
+"\"Montgomery Scott\",Engineering,SE-197-54T\n"
+"      "
 msgstr ""
-"Nyní, když máte svoji etiketu nastavenou, bude aplikace "
-"<application>gLabels</application> tisknout jednotlivé etikety odlišné pro "
-"každý záznam ve vašem zdrojovém dokumentu - do klíčů polí se ve všech "
-"textech budou dosazovat pole z jednotlivých záznamů."
+"\n"
+"jmeno,zarazeni,cislo\n"
+"\"Jiří Kroupa\",vedení,\"SC937-0176 CEC\"\n"
+"\"prof. Hrbolek\",vědec,S179-276SP\n"
+"\"MUDr. Kroupová\",lékař,unknown\n"
+"\"Viktor Hujer\",technik,SE-197-54T\n"
+"      "
 
-#: C/glabels.xml:1025(para)
+#: C/merge-ex1.page:41(p)
 msgid ""
-"See <xref linkend=\"glabels-merge-tutorial\"/> for a detailed tutorial on "
-"the document merge feature."
+"In <app>gLabels</app> we have created a new <app>glabels</app> document "
+"using the Avery 5395 \"Name Badge Labels\" template. Next we use the "
+"<guiseq><gui>Objects</gui><gui>Merge Properties</gui></guiseq> menu item to "
+"display the <gui>merge properties</gui> dialog. We use this dialog to select "
+"the source type (in our case CSV with keys on line 1) and the merge source "
+"(filename) as shown."
 msgstr ""
-"Podrobný průvodce funkcí slučování dokumentů viz <xref linkend=\"glabels-"
-"merge-tutorial\"/>."
+"V aplikaci <app>gLabels</app> máme vytvořený dokument vycházející ze šablony "
+"Avery 5395 „Etikety na jmenovky“. Nyní použijeme položku nabídky "
+"<guiseq><gui>Objekty</gui><gui>Vlastnosti slučování</gui></guiseq> a zobrazí "
+"se nám dialogové okno <gui>vlastnosti slučování</gui>. Toto dialogové okno "
+"použijeme k výběru typu zdroje (v našem případě CSV s klíči na 1. řádku) a "
+"vlastního zdroje (souboru), jak můžete vidět níže."
 
-#: C/glabels.xml:1040(title)
-msgid "Settings"
-msgstr "Nastavení"
+#. ==== End of Figure ====
+#: C/merge-ex1.page:68(p)
+msgid ""
+"In this example we have added three text objects and a barcode object. The "
+"first text object contains only simple literal text (\"Hello, my name is\"). "
+"The second text object contains a single merge field (\"${Name}\") "
+"corresponding to the first field of a record (first column of a line) which "
+"contains the new crew member's full name. The third text field contains both "
+"literal text (\"Department: \") followed by a single merge field "
+"(\"${Department}\") corresponding to the second field or the crew member's "
+"department. The barcode object is configured to use field (or key) \"SN\" "
+"which contains our crew member's starfleet serial number."
+msgstr ""
+"V tomto příkladu máme přidané tři textové objekty a čárový kód. První "
+"textový objekt obsahuje pouze prostý text („Ahoj, jmenuji se“). Druhý "
+"textový objekt obsahuje jedno slučované pole („${jmeno}“), které odpovídá "
+"prvnímu poli v záznamu (první sloupec v řádku) a které obsahuje celé jméno "
+"nového člena osádky. Třetí textové pole obsahuje jak text („Zařazení: “), "
+"tak za ním následuje jedno slučované pole („${zarazeni}“), které odpovídá "
+"druhému poli se zařazením člena posádky. Objekt s čárovým kódem je nastavený "
+"na použití pole (klíče) „cislo“, které obsahuje identifikační číslo člena "
+"posádky."
 
-#: C/glabels.xml:1041(para)
+#: C/merge-ex1.page:78(p)
 msgid ""
-"To configure <application>gLabels</application>, choose "
-"<menuchoice><guimenu>Settings</guimenu><guimenuitem>Preferences</"
-"guimenuitem></menuchoice>. The <guilabel>Preferences</guilabel> dialog "
-"contains the following tabbed sections:"
+"Now we can print our name tags by selecting the <guiseq><gui>File</"
+"gui><gui>Print</gui></guiseq> menu item. This will display print dialog as "
+"shown below."
 msgstr ""
-"Když chcete v aplikaci <application>gLabels</application> změnit nastavení, "
-"zvolte <menuchoice><guimenu>Upravit</guimenu><guimenuitem>Předvolby</"
-"guimenuitem></menuchoice>. Dialogové okno <guilabel>Předvolby gLabels</"
-"guilabel> obsahuje následující karty:"
+"Nyní můžeme své jmenovky vytisknout pomocí položky nabídky "
+"<guiseq><gui>Soubor</gui><gui>Tisk</gui></guiseq>. Zobrazí se dialogové okno "
+"jako na následujícím obrázku."
 
-#: C/glabels.xml:1062(title)
-msgid "Locale"
-msgstr "Národní prostředí"
+#: C/merge-ex1.page:85(p)
+msgid "Printing name tags"
+msgstr "Tisk jmenovek"
 
-#: C/glabels.xml:1066(guilabel)
-msgid "Units"
-msgstr "Jednotky"
+#: C/merge-ex1.page:96(p)
+msgid "Name tags preview"
+msgstr "Náhled jmenovek"
 
-#: C/glabels.xml:1068(para)
+#. ==== End of Figure ====
+#: C/merge-ex1.page:100(p)
 msgid ""
-"Use this radio button group to specify your preferred units. Select one of "
-"the following options:"
+"Everything looks good, so we can now load up our printer with the "
+"appropriate label stock, print our name tags and start beaming our guests "
+"aboard."
 msgstr ""
-"Tento skupinový přepínač použijte k určení svých upřednostňovaných jednotek. "
-"Vyberte jednu z následujících možností:"
-
-#: C/glabels.xml:1073(guilabel)
-msgid "Points"
-msgstr "Body"
+"Vše vypadá v pořádku, takže můžeme do tiskárny vložit správný list s "
+"etiketami, vytisknout jmenovky a vzhůru na palubu nalodit naše hosty."
 
-#: C/glabels.xml:1074(para)
-msgid "Use points (1 point = 1/72 in = 0.352778 mm)."
-msgstr "Použít body (1 bod = 1/72 palce = 0,352778 mm)."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:340(None)
+msgid ""
+"@@image: 'figures/glabels-template-rect-label.png'; "
+"md5=9c7ae1c1a888e1c9eefd19655d093971"
+msgstr ""
+"@@image: 'figures/glabels-template-rect-label.png'; "
+"md5=9c7ae1c1a888e1c9eefd19655d093971"
 
-#: C/glabels.xml:1078(guilabel)
-msgid "Inches"
-msgstr "Palce"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:392(None)
+msgid ""
+"@@image: 'figures/glabels-template-ellipse-label.png'; "
+"md5=ba612c86b5fb8fcd2b5384ecc1c331d2"
+msgstr ""
+"@@image: 'figures/glabels-template-ellipse-label.png'; "
+"md5=ba612c86b5fb8fcd2b5384ecc1c331d2"
 
-#: C/glabels.xml:1079(para)
-msgid "Use inches."
-msgstr "Použít palce (1 palec = 25,4 mm)."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:439(None)
+msgid ""
+"@@image: 'figures/glabels-template-circle-label.png'; "
+"md5=841e36a1f92aeed01e8fbaacc67758f1"
+msgstr ""
+"@@image: 'figures/glabels-template-circle-label.png'; "
+"md5=841e36a1f92aeed01e8fbaacc67758f1"
 
-#: C/glabels.xml:1083(guilabel)
-msgid "Millimeters"
-msgstr "Milimetry"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:500(None)
+msgid ""
+"@@image: 'figures/glabels-template-cd-label.png'; "
+"md5=c7952ac1b26ecbfa53facfbbf6486841"
+msgstr ""
+"@@image: 'figures/glabels-template-cd-label.png'; "
+"md5=c7952ac1b26ecbfa53facfbbf6486841"
 
-#: C/glabels.xml:1084(para)
-msgid "Use millimeters."
-msgstr "Použít milimetry."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:762(None)
+msgid ""
+"@@image: 'figures/glabels-template-layout.png'; "
+"md5=fe1c9652d5448b2e0ece086777d3a287"
+msgstr ""
+"@@image: 'figures/glabels-template-layout.png'; "
+"md5=fe1c9652d5448b2e0ece086777d3a287"
 
-#: C/glabels.xml:1087(para)
-msgid "Default: <guilabel>Inches</guilabel>."
-msgstr "Výchozí : <guilabel>Palce</guilabel>."
+#: C/mancreate.page:10(desc)
+msgid "Create your templates manually."
+msgstr "Vytvářejte své šablony ručně."
 
-#: C/glabels.xml:1093(guilabel)
-msgid "Default page size"
-msgstr "Výchozí velikost stránky"
+#: C/mancreate.page:26(title)
+msgid "Manually creating new templates"
+msgstr "Ruční vytváření nových šablon"
 
-#: C/glabels.xml:1095(para)
+#. ******************
+#: C/mancreate.page:33(p)
 msgid ""
-"Use this radio button group to specify your preferred page size. This will "
-"make it quicker for you to locate media types when creating a new label or "
-"card."
+"This page is a reference guide to manually creating <app>gLabels</app> "
+"templates. <app>gLabels</app> templates are defined in simple XML files as "
+"described in the DTD: <link href=\"http://glabels.org/xmlns/2.3/glabels-2.3."
+"dtd.txt\">glabels-2.3.dtd</link> (this DTD also describes other XML files "
+"used by <app>gLabels</app>)."
 msgstr ""
-"Tento skupinový přepínač použijte k určení své upřednostňované velikosti "
-"stránky. Urychlí vám to hledání typu média při vytváření nové etikety nebo "
-"vizitky."
+"Tato stránka je příručkou k ručnímu vytváření šablon <app>gLabels</app>. "
+"Šablony <app>gLabels</app> jsou definovány v jednoduchých souborech XML, "
+"které jsou popsány v DTD: <link href=\"http://glabels.org/xmlns/2.3/"
+"glabels-2.3.dtd.txt\">glabels-2.3.dtd</link> (toto DTD popisuje i ostatní "
+"formáty XML používané v aplikaci <application>gLabels</application>)."
 
-#: C/glabels.xml:1101(guilabel)
-msgid "US Letter"
-msgstr "US Letter"
+#: C/mancreate.page:38(p)
+msgid ""
+"Manually created template files should be placed in the <file>${HOME}/."
+"glabels</file> and be named with a <file>.template</file> extension."
+msgstr ""
+"Soubory s ručně vytvořenými šablonami by měly být umístěny ve složce <file>"
+"${HOME}/.glabels</file> a jejich název by měl mít příponu <file>.template</"
+"file>."
 
-#: C/glabels.xml:1102(para)
+#: C/mancreate.page:42(p)
 msgid ""
-"Most of your media will be of the US Letter page size (8.5 x 11 inches)."
-msgstr "Většina vašich médií má velikost stránky US Letter (8,5 × 11 palců)."
+"<app>gLabels</app> searches for templates in several other locations as "
+"defined here:"
+msgstr ""
+"Aplikace <app>gLabels</app> hledá šablony na několika další místech, "
+"konkrétně na těchto:"
 
-#: C/glabels.xml:1106(guilabel)
-msgid "ISO A4"
-msgstr "ISO A4"
+#: C/mancreate.page:45(p)
+msgid "Location"
+msgstr "Umístění"
 
-#: C/glabels.xml:1107(para)
-msgid "Most of your media will be of the ISO A4 page size (210 x 297 mm)."
-msgstr "Většina vašich médií má velikost stránky ISO A4 (210 × 297 mm)."
+#: C/mancreate.page:46(p) C/mancreate.page:173(p) C/mancreate.page:237(p)
+#: C/mancreate.page:301(p) C/mancreate.page:364(p) C/mancreate.page:415(p)
+#: C/mancreate.page:462(p) C/mancreate.page:535(p) C/mancreate.page:562(p)
+#: C/mancreate.page:600(p) C/mancreate.page:634(p) C/mancreate.page:676(p)
+#: C/mancreate.page:726(p)
+msgid "Description"
+msgstr "Popis"
 
-#: C/glabels.xml:1110(para)
-msgid "Default: <guilabel>US Letter</guilabel>."
-msgstr "Výchozí: <guilabel>US Letter</guilabel>."
+#: C/mancreate.page:53(file)
+msgid "${prefix}/share/libglabels-3.0/templates"
+msgstr "${prefix}/share/libglabels-3.0/templates"
 
-#: C/glabels.xml:1119(title)
-msgid "Object defaults"
-msgstr "Výchozí hodnoty objektu"
+#: C/mancreate.page:54(p)
+msgid "Predefined templates distributed with <app>gLabels</app>."
+msgstr "Předdefinované šablony šířené s aplikací <app>gLabels</app>."
 
-#: C/glabels.xml:1125(para)
+#: C/mancreate.page:55(p)
 msgid ""
-"Use these controls to set the default properties of new text objects. These "
-"properties are"
+"<file>${prefix}</file> is usually <file>/usr</file> or <file>/usr/local</"
+"file>, depending on where <app>gLabels</app> was installed."
 msgstr ""
-"Použijte tyto ovládací prvky k nastavení výchozích vlastností nových "
-"textových objektů. Tyto vlastnosti jsou:"
+"<file>${prefix}</file> je obvykle <file>/usr</file> nebo <file>/usr/local</"
+"file> podle toho, kde je nainstalována vlastní aplikace <app>gLabels</app>."
 
-#: C/glabels.xml:1130(guilabel)
-msgid "Font"
-msgstr "Písmo"
+#: C/mancreate.page:59(file)
+msgid "${XDG_CONFIG_HOME}/libglabels/templates"
+msgstr "${XDG_CONFIG_HOME}/libglabels/templates"
 
-#: C/glabels.xml:1131(para)
+#: C/mancreate.page:60(p)
 msgid ""
-"These controls are used to select font family and font size, and whether the "
-"font should bold or in italics."
+"User defined templates created with the <app>gLabels</app><gui>Template "
+"Designer</gui>. <em>Do not put manually created templates in this directory."
+"</em>"
 msgstr ""
-"Tyto ovládací prvky slouží k nastavení rodiny písma a velikosti písma a zda "
-"by mělo být písmo tučné nebo kurzívou."
-
-#: C/glabels.xml:1136(guilabel) C/glabels.xml:1161(guilabel)
-#: C/glabels.xml:1176(guilabel)
-msgid "Color"
-msgstr "Barva"
+"Uživatelem definované šablony vytvořené pomocí <gui>Návrháře šablon</gui> "
+"<app>gLabels</app>. <em>Neumisťujte do této složky ručně vytvořené šablony.</"
+"em>"
 
-#: C/glabels.xml:1137(para)
-msgid "This control selects the default text color."
-msgstr "Tímto ovládacím prvkem se vybírá výchozí barva textu."
+#: C/mancreate.page:62(p)
+msgid ""
+"If <file>${XDG_CONFIG_HOME}</file> is not defined, it defaults to <file>"
+"${HOME}/.config</file>."
+msgstr ""
+"Pokud není <file>${XDG_CONFIG_HOME}</file> definováno, použije se výchozí "
+"<file>${HOME}/.config</file>."
 
-#: C/glabels.xml:1141(guilabel)
-msgid "Alignment"
-msgstr "Zarovnání"
+#: C/mancreate.page:66(file)
+msgid "${HOME}/.glabels"
+msgstr "${HOME}/.glabels"
 
-#: C/glabels.xml:1142(para)
+#: C/mancreate.page:67(p)
 msgid ""
-"These controls are used to select the default text alignment (left, center "
-"or right)."
+"User defined templates that have been created manually should be placed in "
+"this directory. Older versions of the <app>gLabels</app><gui>Template "
+"Designer</gui> (prior to 3.0) would also put templates in this directory."
 msgstr ""
-"Tyto ovládací prvky slouží k výběru výchozího zarovnání textu (vlevo, na "
-"střed nebo vpravo)."
+"Uživatelem definované šablony, které byly vytvořeny ručně, by měly být "
+"umístěny v této složce. Do této složky by ukládaly šablony také starší verze "
+"<gui>Návrháře šablon</gui> <app>gLabels</app> (před verzí 3.0)."
 
-#: C/glabels.xml:1151(para)
+#: C/mancreate.page:75(p)
 msgid ""
-"Use these controls to set the default properties of lines and outlines of "
-"new objects. These properties are"
+"Completed template files can be sent to the <app>gLabels</app> template "
+"<link href=\"mailto:glabels-templates@lists.sourceforge.net\">mailing list</"
+"link> for possible inclusion in future versions of <app>gLabels</app>."
 msgstr ""
-"Použijte tyto ovládací prvky k nastavení výchozích vlastností čar a obrysů "
-"nových objektů. Tyto vlastnosti jsou:"
-
-#: C/glabels.xml:1156(guilabel)
-msgid "Width"
-msgstr "Šířka"
-
-#: C/glabels.xml:1157(para)
-msgid "This control selects the default line width."
-msgstr "Tímto ovládacím prvkem se vybírá výchozí šířka čáry."
+"Soubory s hotovými šablonami můžete posílat do <link href=\"mailto:glabels-"
+"templates@lists.sourceforge.net\">poštovní konference</link> o šablonách "
+"<app>gLabels</app> a možná budou zařazeny jako součást příští verze "
+"<app>gLabels</app>."
 
-#: C/glabels.xml:1162(para)
-msgid "This control selects the default line color."
-msgstr "Tímto ovládacím prvkem se vybírá výchozí barva čáry."
-
-#: C/glabels.xml:1169(guilabel)
-msgid "Fill"
-msgstr "Výplň"
+#: C/mancreate.page:89(title)
+msgid "Assumptions/caveats"
+msgstr "Předpoklady/upozornění"
 
-#: C/glabels.xml:1171(para)
+#: C/mancreate.page:92(p)
 msgid ""
-"Use these controls to set the default fill properties of new objects. These "
-"properties are"
+"A sheet contains only one size of label or card (if a sheet contains more "
+"than one size of item, it can be split into multiple templates for multiple "
+"pass printing)"
 msgstr ""
-"Použijte tyto ovládací prvky k nastavení výchozích vlastností výplně nových "
-"objektů. Tyto vlastnosti jsou:"
+"Stránka obsahuje etiketu nebo vizitku pouze jedné velikosti (pokud má "
+"stránka obsahovat více než jednu velikost položky, můžete ji rozdělit do "
+"více šablon a vytisknout na vícekrát)"
 
-#: C/glabels.xml:1177(para)
-msgid "This control selects the default fill color."
-msgstr "Tento ovládací prvek slouží k výběru výchozí barvy výplně."
+#: C/mancreate.page:97(p)
+msgid ""
+"Distances can be expressed in units of <code translate=\"no\">pt</code>, "
+"<code translate=\"no\">in</code>, <code translate=\"no\">mm</code>, <code "
+"translate=\"no\">cm</code>, or <code translate=\"no\">pc</code>. For "
+"example: \"<code translate=\"no\">1.0in</code>\" or \"<code translate=\"no"
+"\">2.54cm</code>\". If no units are specified, computer points (<code "
+"translate=\"no\">pt</code>) will be assumed (1 <em>pt</em> = 1/72 <em>in</"
+"em> = 0.352778 <em>mm</em>)."
+msgstr ""
+"Rozměry mohou být uváděny v jednotkách <code translate=\"no\">pt</code>, "
+"<code translate=\"no\">in</code>, <code translate=\"no\">mm</code>, <code "
+"translate=\"no\">cm</code> nebo <code translate=\"no\">pc</code> a s tečkou "
+"jako desetinným oddělovačem. Například: „<code translate=\"no\">1.0in</"
+"code>“ nebo „<code translate=\"no\">2.54cm</code>“. Pokud není žádná "
+"jednotka uvedená, budou předpokládány body <code translate=\"no\">pt</code>  "
+"(1 <em>pt</em> = 1/72 <em>in</em> = 0,352778 <em>mm</em>)."
+
+#: C/mancreate.page:118(title)
+msgid "Template Files"
+msgstr "Soubory šablon"
 
-#: C/glabels.xml:1191(title)
-msgid "Document Merge Tutorial"
-msgstr "Průvodce slučováním dokumentů"
+#: C/mancreate.page:120(p)
+msgid ""
+"A template file contains a single <code translate=\"no\">Glabels-templates</"
+"code> top-level node."
+msgstr ""
+"Soubor se šablonou obsahuje jeden uzel nejvyšší úrovně <code translate=\"no"
+"\">Glabels-templates</code>."
 
-#: C/glabels.xml:1193(para)
+#: C/mancreate.page:123(code)
+#, no-wrap
 msgid ""
-"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that "
-"allows a unique label or card to be printed for each record in an external "
-"data source. It is however, the most mis-understood feature of "
-"<application>gLabels</application>. The following examples will step through "
-"a couple of common tasks using the document merge feature."
+"\n"
+"&lt;?xml version=\"1.0\"?&gt;\n"
+"&lt;Glabels-templates&gt;\n"
+"\n"
+"   <var its:translate=\"yes\">...templates...</var>\n"
+"\n"
+"&lt;/Glabels-templates&gt;"
 msgstr ""
-"Slučování dokumentů (někdy také nazývané „hromadná korespondence“) je mocná "
-"funkce, díky které můžete tisknout odlišné etikety nebo vizitky pro každý "
-"záznam v externím zdroji dat. Je však také ze všech funkcí aplikace "
-"<application>gLabels</application> nejnáročnější na pochopení. Následující "
-"příklady vás provedou dvojicí obvyklých úloh, které používají funkci "
-"slučování dokumentů."
+"\n"
+"&lt;?xml version=\"1.0\"?&gt;\n"
+"&lt;Glabels-templates&gt;\n"
+"\n"
+"   <replaceable>…šablony…</replaceable>\n"
+"\n"
+"&lt;/Glabels-templates&gt;"
 
-#: C/glabels.xml:1201(title)
-msgid "Example 1: Name Tags Using a CSV File"
-msgstr "Příklad 1: Jmenovky s použitím souboru CSV"
+#: C/mancreate.page:132(title)
+msgid "Example Template"
+msgstr "Příklad šablony"
 
-#: C/glabels.xml:1203(para)
+#: C/mancreate.page:133(desc)
 msgid ""
-"In this example we are organizing an orientation party for the new crew "
-"members of our ship. We have a list of freshman crew members that we created "
-"in <application>gnumeric</application> and exported as the following CSV "
-"file. We could have created this file by using a text editor, but heck it is "
-"the 23rd century."
+"Example <app>gLabels</app> template file containing a single <code translate="
+"\"no\">Template</code> node."
 msgstr ""
-"V tomto příkladu pořádáme seznamovací párty pro nové členy osádky naší lodi. "
-"Máme seznam nováčků v osádce, který jsme vytvořili v aplikaci "
-"<application>gnumeric</application> a následně jej vyexportovali do souboru "
-"CSV. Mohli bychom jej vytvořit i v textovém editoru, ale žijeme přece v 21. "
-"století."
+"Příklad souboru se šablonou <app>gLabels</app> obsahujícího jeden uzel <code "
+"translate=\"no\">Template</code>."
 
-#: C/glabels.xml:1209(programlisting)
+#: C/mancreate.page:135(code)
 #, no-wrap
 msgid ""
 "\n"
-"Name,Department,SN\n"
-"\"Jim Kirk\",Management,\"SC937-0176 CEC\"\n"
-"\"Mr. Spock\",Sciences,S179-276SP\n"
-"\"Leonard McCoy\",Medicine,unknown\n"
-"\"Montgomery Scott\",Engineering,SE-197-54T\n"
-"      "
+"&lt;?xml version=\"1.0\"?&gt;\n"
+"&lt;Glabels-templates&gt;\n"
+"\n"
+"  &lt;Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\"&gt;\n"
+"    &lt;Meta category=\"label\"/&gt;\n"
+"    &lt;Meta category=\"mail\"/&gt;\n"
+"    &lt;Meta product_url=\"http://www.avery.com/avery/en_us/\"/&gt;\n"
+"    &lt;Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\"&gt;\n"
+"      &lt;Markup-margin size=\"5pt\"/&gt;\n"
+"      &lt;Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/&gt;\n"
+"    &lt;/Label-rectangle&gt;\n"
+"  &lt;/Template&gt;\n"
+"\n"
+"&lt;/Glabels-templates&gt;"
 msgstr ""
 "\n"
-"jmeno,zarazeni,cislo\n"
-"\"Jiří Kroupa\",vedení,\"SC937-0176 CEC\"\n"
-"\"prof. Hrbolek\",vědec,S179-276SP\n"
-"\"MUDr. Kroupová\",lékař,unknown\n"
-"\"Viktor Hujer\",technik,SE-197-54T\n"
-"      "
+"&lt;?xml version=\"1.0\"?&gt;\n"
+"&lt;Glabels-templates&gt;\n"
+"\n"
+"  &lt;Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\"&gt;\n"
+"    &lt;Meta category=\"label\"/&gt;\n"
+"    &lt;Meta category=\"mail\"/&gt;\n"
+"    &lt;Meta product_url=\"http://www.avery.com/avery/en_us/\"/&gt;\n"
+"    &lt;Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\"&gt;\n"
+"      &lt;Markup-margin size=\"5pt\"/&gt;\n"
+"      &lt;Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/&gt;\n"
+"    &lt;/Label-rectangle&gt;\n"
+"  &lt;/Template&gt;\n"
+"\n"
+"&lt;/Glabels-templates&gt;"
+
+#: C/mancreate.page:163(title)
+msgid "<span translate=\"no\">Template</span> Node"
+msgstr "Uzel <span translate=\"no\">Template</span>"
 
-#: C/glabels.xml:1217(para)
+#: C/mancreate.page:165(p)
 msgid ""
-"In <application>gLabels</application> we have created a new "
-"<application>gLabels</application> document using the Avery 5395 \"Name "
-"Badge Labels\" template. Next we use the <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Merge Properties</guimenuitem></menuchoice> menu item "
-"to display the <guilabel>merge properties</guilabel> dialog. We use this "
-"dialog to select the source type (in our case CSV) and the merge source "
-"(filename) as shown."
+"A <code translate=\"no\">Template</code> node describes a single stationery "
+"product. It must contain one instance of any type of Label node (<code "
+"translate=\"no\">Label-rectangle</code>, <code translate=\"no\">Label-round</"
+"code>, or <code translate=\"no\">Label-cd</code>)."
 msgstr ""
-"V aplikaci <application>gLabels</application> máme vytvořený dokument "
-"vycházející ze šablony Avery 5395 „Etikety na jmenovky“. Nyní použijeme "
-"položku nabídky <menuchoice><guimenu>Objekty</"
-"guimenu><guimenuitem>Vlastnosti slučování</guimenuitem></menuchoice> a "
-"zobrazí se nám dialogové okno <guilabel>vlastnosti slučování</guilabel>. "
-"Toto dialogové okno použijeme k výběru typu zdroje (v našem případě CSV) a "
-"vlastního zdroje (souboru), jak můžete vidět níže."
+"Uzel <code translate=\"no\">Template</code> popisuje jeden pevně daný "
+"výrobek. Musí obsahovat jednu instanci libovolného uzlu Label (<code "
+"translate=\"no\">Label-rectangle</code>, <code translate=\"no\">Label-round</"
+"code> nebo <code translate=\"no\">Label-cd</code>)."
 
-#: C/glabels.xml:1227(title) C/glabels.xml:1344(title)
-#: C/glabels.xml:1460(title)
-msgid "Merge properties dialog"
-msgstr "Dialogové okno vlastností slučování"
+#: C/mancreate.page:173(p) C/mancreate.page:301(p) C/mancreate.page:364(p)
+#: C/mancreate.page:415(p) C/mancreate.page:462(p) C/mancreate.page:535(p)
+#: C/mancreate.page:562(p) C/mancreate.page:600(p) C/mancreate.page:634(p)
+#: C/mancreate.page:676(p) C/mancreate.page:726(p)
+msgid "Property"
+msgstr "Vlastnost"
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1238(para)
-msgid ""
-"Before applying the merge source, we uncheck the first record since it is "
-"only column headers from our original <application>gnumeric</application> "
-"spreadsheet and would simply waste our first label. We could also unselect "
-"any other records that we didn't want to print a label for."
-msgstr ""
-"Před použitím zdroje slučování zrušíme zaškrtnutí prvního záznamu, protože "
-"ten obsahuje pouze záhlaví sloupců z naší původní tabulky v "
-"<application>gnumeric</application> a akorát bychom tím zničili první "
-"etiketu. Stejným způsobem můžeme zrušit zaškrtnutí kteréhokoliv záznamu, "
-"který nechceme vytisknout."
+#: C/mancreate.page:179(code)
+#, no-wrap
+msgid "brand"
+msgstr "brand"
 
-#: C/glabels.xml:1243(para) C/glabels.xml:1361(para)
-msgid ""
-"We can also view each record in more detail by clicking on the appropriate "
-"expander (the little triangles) as shown. Once we are satisfied with the "
-"selections in this dialog we click <guibutton>OK</guibutton> to accept the "
-"changes."
-msgstr ""
-"U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení "
-"kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně "
-"spokojení, klikneme na <guibutton>OK</guibutton> a změny se použijí."
+#: C/mancreate.page:180(p)
+msgid "Brand or manufacturer of stationery product. E.g. \"Avery\""
+msgstr "Značka nebo výrobce papírenského produktu. Např. \"S&amp;K Label\""
 
-#: C/glabels.xml:1248(para) C/glabels.xml:1366(para)
-msgid ""
-"Now we start adding objects to our <application>gLabels</application> "
-"document as shown."
-msgstr ""
-"Nyní můžeme začít s přidáváním objektů do svého dokumentu "
-"<application>gLabels</application>, jak je zobrazeno níže."
+#: C/mancreate.page:183(code)
+#, no-wrap
+msgid "part"
+msgstr "part"
 
-#: C/glabels.xml:1252(title) C/glabels.xml:1370(title)
-#: C/glabels.xml:1488(title)
-msgid "Adding objects"
-msgstr "Přidávání objektů"
+#: C/mancreate.page:184(p)
+msgid "Part number or name of stationery product. E.g. \"8160\""
+msgstr "Produktové číslo nebo název papírenského produktu. Např. \"8160\""
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1263(para)
-msgid ""
-"In this example we have added three text objects and a barcode object. The "
-"first text object contains only simple literal text (\"Hello, my name is\"). "
-"The second text object contains a single merge field (\"${1}\") "
-"corresponding to the first field of a record (first column of a line) which "
-"contains the new crew member's full name. The third text field contains both "
-"literal text (\"Department: \") followed by a single merge field (\"${2}\") "
-"corresponding to the second field or the crew member's department. The "
-"barcode object is configured to use field (or key) \"3\" which contains our "
-"crew member's starfleet serial number."
-msgstr ""
-"V tomto příkladu máme přidané tři textové objekty a čárový kód. První "
-"textový objekt obsahuje pouze prostý text („Ahoj, jmenuji se“). Druhý "
-"textový objekt obsahuje jedno slučované pole („${1}“), které odpovídá "
-"prvnímu poli v záznamu (první sloupec v řádku) a které obsahuje celé jméno "
-"nového člena osádky. Třetí textové pole obsahuje jak text („Zařazení: “), "
-"tak za ním následuje jedno slučované pole („${2}“), které odpovídá druhému "
-"poli se zařazením člena posádky. Objekt s čárovým kódem je nastavený na "
-"použití pole (klíče) „3“, které obsahuje identifikační číslo člena posádky."
+#: C/mancreate.page:187(code) C/mancreate.page:541(code)
+#, no-wrap
+msgid "size"
+msgstr "size"
 
-#: C/glabels.xml:1273(para)
+#: C/mancreate.page:188(p)
 msgid ""
-"Now we can print our name tags by selecting the <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>Print</guimenuitem></menuchoice> menu item. This will "
-"display print dialog as shown below."
+"Size of sheet. E.g., \"<code translate=\"no\">US-Letter</code>\", \"<code "
+"translate=\"no\">A4</code>\", ..."
 msgstr ""
-"Nyní můžeme své jmenovky vytisknout pomocí položky nabídky "
-"<menuchoice><guimenu>Soubor</guimenu><guimenuitem>Tisk</guimenuitem></"
-"menuchoice>. Zobrazí se dialogové okno jako na následujícím obrázku."
+"Velikost stránky. Např. \"<code translate=\"no\">US-Letter</code>\", \"<code "
+"translate=\"no\">A4</code>\", …"
 
-#: C/glabels.xml:1280(title)
-msgid "Printing name tags"
-msgstr "Tisk jmenovek"
+#: C/mancreate.page:193(code)
+#, no-wrap
+msgid "description"
+msgstr "description"
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1291(para) C/glabels.xml:1406(para) C/glabels.xml:1520(para)
-msgid ""
-"Just to make sure our labels are going to look okay, we select the "
-"<guilabel>Print outlines</guilabel> option and click <guibutton>Print "
-"Preview</guibutton>. This will display a print preview dialog as shown below."
-msgstr ""
-"Nyní zkontrolujeme, zda vypadají etikety jak mají. Vybereme možnost "
-"<guilabel>Tisk obrysů</guilabel> a klikneme na <guibutton>Náhled tisku</"
-"guibutton>. Zobrazí se dialogové okno s náhledem tisku, stejně jako na "
-"následujícím obrázku."
+#: C/mancreate.page:194(p)
+msgid "Description of stationery product. E.g, \"Mailing Labels.\""
+msgstr "Popis papírenského produktu. Např. \"Mailing Labels.\""
 
-#: C/glabels.xml:1298(title)
-msgid "Name tags preview"
-msgstr "Náhled jmenovek"
+#: C/mancreate.page:197(code)
+#, no-wrap
+msgid "_description"
+msgstr "_description"
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1309(para)
+#: C/mancreate.page:198(p)
 msgid ""
-"Everything looks good, so we can now load up our printer with the "
-"appropriate label stock, print our name tags and start beaming our guests "
-"aboard."
+"Translatable description of stationery product. E.g, \"Mailing Labels."
+"\" (Only useful for predefined templates)"
 msgstr ""
-"Vše vypadá v pořádku, takže můžeme do tiskárny vložit správný list s "
-"etiketami, vytisknout jmenovky a vzhůru na palubu nalodit naše hosty."
+"Popis papírenského produktu s možností překladu. Např. \"Mailing Labels."
+"\" (Použitelné pouze pro předdefinované šablony)"
 
-#: C/glabels.xml:1316(title)
-msgid "Example 2: Address Labels Using a CSV File"
-msgstr "Příklad 2: Adresní štítky s použitím souboru CSV"
+#: C/mancreate.page:202(code) C/mancreate.page:311(code)
+#: C/mancreate.page:374(code) C/mancreate.page:480(code)
+#, no-wrap
+msgid "width"
+msgstr "width"
 
-#: C/glabels.xml:1318(para)
-msgid ""
-"In this example we are going to throw a party and need to print mailing "
-"address labels for our invitations. We have a list of our closest friends "
-"that we created in <application>gnumeric</application> and exported as the "
-"following CSV file. It should be noted that not everyone has a middle "
-"initial or a two line address."
-msgstr ""
-"V tomto příkladu se chystáme uspořádat večírek a potřebujeme vytisknout "
-"adresní štítky na své pozvánky. Máme seznam svých nejbližších přátel, který "
-"jsem vytvořili v aplikaci <application>gnumeric</application> a "
-"vyexportovali jej jako soubor CSV. Povšimněte si, že ne všichni mají "
-"přezdívku nebo dvouřádkovou adresu."
+#: C/mancreate.page:203(p)
+msgid "Page width. Only valid if size=\"Other\""
+msgstr "Šířka stránky. Platné jen v případě, že size=\"Other\""
+
+#: C/mancreate.page:206(code) C/mancreate.page:315(code)
+#: C/mancreate.page:378(code) C/mancreate.page:485(code)
+#, no-wrap
+msgid "height"
+msgstr "height"
+
+#: C/mancreate.page:207(p)
+msgid "Page height. Only valid if size=\"Other\""
+msgstr "Výška stránky. Platné jen v případě, že size=\"Other\""
 
-#: C/glabels.xml:1324(programlisting)
+#: C/mancreate.page:210(code)
 #, no-wrap
+msgid "equiv"
+msgstr "equiv"
+
+#: C/mancreate.page:211(p)
 msgid ""
-"\n"
-"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n"
-",,,,,,,\n"
-"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n"
-"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n"
-"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n"
-"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n"
-"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n"
-"      "
+"Equivalent part number. If this property is present, the template is a clone "
+"of another template of the same brand. The template will inherit all "
+"properties, except brand and name from the other template. This equiv "
+"property must refer to a previously defined template - <app>gLabels</app> "
+"does not currently support forward references."
 msgstr ""
-"\n"
-"PRIJMENI,JMENO,PREZDIVKA,ADR1,ADR2,MESTO,PSC\n"
-",,,,,,,\n"
-"Pacovský,Tomáš,,\"U dvou akordů\",\"Křižíkova 506\",Praha,\"123 00\"\n"
-"Pacovský,František,Ozzák,\"Křižíkova 62\",,\"Praha - Vinohrady\",\"110 00\"\n"
-"Divićová,Marcela,,\"Náměstí míru 1\",,Praha,\"150 00\"\n"
-"Bůček,Alexandr,Lexa,\"U Jezevce\",\"Nitranská 7\",Praha,\"160 13\"\n"
-"Bůčková,Alexandra,,\"Korunní 18\",,Praha,\"100 24\"\n"
-"      "
+"Ekvivalentní produktové číslo. Pokud je tato vlastnost nastavena, je šablona "
+"klonem jiné šablony téže značky. Šablona pak dědí všechny vlastnosti z jiné "
+"šablony, vyjma značky a názvu. Tato vlastnost se musí odkazovat na šablonu "
+"definovanou dříve – aplikace <app>gLabels</app> v současnosti nepodporuje "
+"dopředné odkazy."
 
-#: C/glabels.xml:1334(para)
+#: C/mancreate.page:229(title)
+msgid "<span translate=\"no\">Meta</span> Node"
+msgstr "Uzel <span translate=\"no\">Meta</span>"
+
+#: C/mancreate.page:231(p)
 msgid ""
-"In <application>gLabels</application> we have created a new "
-"<application>gLabels</application> document using the Avery 5512 \"Address "
-"Labels\" template. Next we use the <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Merge Properties</guimenuitem></menuchoice> menu item "
-"to display the <guilabel>merge properties</guilabel> dialog. We use this "
-"dialog to select the source type (in our case CSV) and the merge source "
-"(filename) as shown."
+"A <code translate=\"no\">Meta</code> node contains some additional "
+"information about the template. A <code translate=\"no\">Template</code> "
+"node may contain zero or more <code translate=\"no\">Meta</code> nodes."
 msgstr ""
-"V aplikaci <application>gLabels</application> vytvoříme nový dokument ze "
-"šablony Avery L7162 „Poštovní etikety“. Následně použijeme položku nabídky "
-"<menuchoice><guimenu>Objekty</guimenu><guimenuitem>Vlastnosti slučování</"
-"guimenuitem></menuchoice> a zobrazí se nám dialogové okno "
-"<guilabel>vlastností slučování</guilabel>. V tomto dialogovém okně vybereme "
-"typ zdroje (v našem případě CSV) a konkrétní zdroj (název souboru) pro "
-"slučování, jak můžete vidět na následujícím obrázku."
+"Uzel <code translate=\"no\">Meta</code> obsahuje některé doplňující "
+"informace o šabloně. Uzel <code translate=\"no\">Template</code> může "
+"obsahovat žádný nebo více uzlů <code translate=\"no\">Meta</code>."
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1355(para)
-msgid ""
-"Before applying the merge source, we uncheck the first record since it is "
-"only column headers from our original <application>gnumeric</application> "
-"spreadsheet and would simply waste our first label. We also unselect the "
-"second record which is empty (an artifact of our original spreadsheet). We "
-"could also unselect any other records that we didn't want to print a label "
-"for."
-msgstr ""
-"Před tím, než zdroj pro slučován použijeme, zrušíme zaškrtnutí prvního "
-"záznamu, protože ten obsahuje pouze záhlaví sloupců z původní tabulky v "
-"<application>gnumeric</application> a akorát bychom tím znehodnotili první "
-"etiketu. Zrušíme zaškrtnutí i druhého záznamu, protože je prázdný (což je "
-"pozůstatek z tabulkového kalkulátoru). A stejným způsobem můžeme vyřadit "
-"kterýkoliv jiný záznam, který nechceme na etikety vytisknout."
+#: C/mancreate.page:237(p)
+msgid "Subnode"
+msgstr "Podřízený uzel"
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1381(para)
+#: C/mancreate.page:243(code)
+#, no-wrap
+msgid "category"
+msgstr "category"
+
+#: C/mancreate.page:244(p)
 msgid ""
-"In this example we have a single text object. This text object contains all "
-"of our merge fields organized on multiple lines as a mailing address. Notice "
-"that fields ${4} and ${5} (corresponding to ADDR1 and ADDR2) are each "
-"located with no other text on their own lines. When <application>gLabels</"
-"application> encounters a field as the only text on a line, it will not "
-"expand the line if the field is empty."
+"A category for the template. A template can belong to multiple categories by "
+"simply adding multiple <code translate=\"no\">Meta</code> nodes to the "
+"parent <code translate=\"no\">Template</code> node. Template categories are "
+"used by the <app>gLabels</app><gui>New Label Dialog</gui> to filter the "
+"results of template searches."
 msgstr ""
-"V tomto příkladu máme jen jeden textový objekt. Tento textový objekt "
-"obsahuje všechna slučovaná pole uspořádaná v několika řádcích "
-"představujících poštovní adresu. Všimněte si, že pole ${4} a ${5} (ta "
-"odpovídají ADR1 a ADR2) jsou umístěná na samostatných řádcích bez "
-"jakéhokoliv dalšího textu. Pokud aplikace <application>gLabels</application> "
-"narazí na pole, které je jediným textem na řádku a toto pole je prázdné, "
-"řádek nebude ve výsledku zabírat žádné místo."
+"Kategorie pro šablonu. Šablona může patřit do více kategorií jednoduše tak, "
+"že přidáte více uzlů <code translate=\"no\">Meta</code> do rodičovského uzlu "
+"<code translate=\"no\">Template</code>. Kategorie šablony využívá aplikace "
+"<app>gLabels</app> v dialogovém okně <gui>Nová etiketa či vizitka</gui>, aby "
+"vám mohla vyfiltrovat nalezené šablony."
 
-#: C/glabels.xml:1388(para)
+#: C/mancreate.page:251(p)
 msgid ""
-"Now we can print our address labels by selecting the "
-"<menuchoice><guimenu>File</guimenu><guimenuitem>Print</guimenuitem></"
-"menuchoice> menu item. This will display print dialog as shown below."
+"The value of this category must match a predefined category ID defined in "
+"the file <file>${prefix}/libglabels-3.0/templates/categories.xml</file>. "
+"Currently defined category IDs include:"
 msgstr ""
-"Nyní se můžeme pustit do tisku adresních etiket pomocí volby "
-"<menuchoice><guimenu>Soubor</guimenu><guimenuitem>Tisk</guimenuitem></"
-"menuchoice> v nabídce. Zobrazí se dialogové okno tisku jako na následujícím "
-"obrázku."
+"Hodnota kategorie musí odpovídat jednomu z předdefinovaných ID kategorie ze "
+"souboru <file>${prefix}/libglabels-3.0/templates/categories.xml</file>. "
+"Aktuálně jsou definovány tato ID kategorií:"
 
-#: C/glabels.xml:1395(title) C/glabels.xml:1509(title)
-msgid "Printing address labels"
-msgstr "Tisk etiket s adresami"
+#: C/mancreate.page:255(code)
+#, no-wrap
+msgid "label"
+msgstr "label (etiketa)"
 
-#: C/glabels.xml:1413(title) C/glabels.xml:1527(title)
-msgid "Address labels preview"
-msgstr "Náhled etiket s adresami"
+#: C/mancreate.page:256(code)
+#, no-wrap
+msgid "round-label"
+msgstr "round-label (etiketa se zaoblenými rohy)"
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1424(para) C/glabels.xml:1538(para)
+#: C/mancreate.page:257(code)
+#, no-wrap
+msgid "elliptical-label"
+msgstr "elliptical-label (eliptická etiketa)"
+
+#: C/mancreate.page:258(code)
+#, no-wrap
+msgid "square-label"
+msgstr "square-label (čtvercová etiketa)"
+
+#: C/mancreate.page:259(code)
+#, no-wrap
+msgid "rectangle-label"
+msgstr "rectangle-label (obdélníková etiketa)"
+
+#: C/mancreate.page:260(code)
+#, no-wrap
+msgid "card"
+msgstr "card (karta)"
+
+#: C/mancreate.page:261(code)
+#, no-wrap
+msgid "business-card"
+msgstr "business-card (vizitka)"
+
+#: C/mancreate.page:262(code)
+#, no-wrap
+msgid "media"
+msgstr "media (médium)"
+
+#: C/mancreate.page:263(code)
+#, no-wrap
+msgid "mail"
+msgstr "mail (poštovní)"
+
+#: C/mancreate.page:264(code)
+#, no-wrap
+msgid "foldable"
+msgstr "foldable (přání)"
+
+#: C/mancreate.page:265(code)
+#, no-wrap
+msgid "photo"
+msgstr "photo (fotka)"
+
+#: C/mancreate.page:272(code)
+#, no-wrap
+msgid "product_url"
+msgstr "product_url"
+
+#: C/mancreate.page:273(p)
 msgid ""
-"Everything looks good, so we can now load up our printer with the "
-"appropriate label stock, print our address labels and start mailing our "
-"party invitations."
+"A URL pointing to the vendor's webpage for the specific product, if "
+"available."
 msgstr ""
-"Vše vypadá dobře a tak můžeme vložit do tiskárny správný list s etiketami, "
-"vytisknout adresní štítky a začít rozesílat pozvánky na večírek."
+"Adresa URL odkazující na webovou stránku výrobce a to tu, pokud existuje, "
+"která se týká konkrétního výrobku."
 
-#: C/glabels.xml:1431(title)
+#: C/mancreate.page:277(p)
 msgid ""
-"Example 3: Address Labels Using the <application>Evolution</application> "
-"Addressbook"
+"Suggestions for additional categories can be sent to the <app>gLabels</app> "
+"developer's <link href=\"mailto:glabels-devel@lists.sourceforge.net"
+"\">mailing list</link>."
 msgstr ""
-"Příklad 3: Adresní štítky s použitím adresáře aplikace "
-"<application>Evolution</application>"
+"Doporučení na další kategorie můžete zasílat do vývojářské <link href="
+"\"mailto:glabels-devel@lists.sourceforge.net\">poštovní konference</link> "
+"aplikace <app>gLabels</app>."
 
-#: C/glabels.xml:1433(para)
-msgid ""
-"Our last party was a great success, and now we need to print mailing address "
-"labels for the invitations to a new one. To simplify this, we can use the "
-"<application>Evolution</application> addressbook, because the address data "
-"of all our friends is stored there."
+#: C/mancreate.page:280(p)
+msgid "Product URLs may be of limited use, because they may not be permanent."
 msgstr ""
-"Náš předchozí večírek měl velký úspěch a my nyní chceme vytisknout adresní "
-"štítky pro pozvánky na další takový. Abychom si to zjednodušili, můžeme "
-"použít adresář aplikace <application>Evolution</application>, protože adresy "
-"všech našich přátel máme uložené v něm."
-
-#: C/glabels.xml:1439(para)
-msgid ""
-"Depending on how your copy of <application>gLabels</application> was "
-"packaged, this option could be unavailable. Support for the "
-"<application>Evolution</application> addressbook will only be available if "
-"the <application>evolution-data-server</application> and its development "
-"files were present when <application>gLabels</application> was built. Please "
-"keep this in mind if you build <application>gLabels</application> directly "
-"from source."
-msgstr ""
-"V závislosti na tom, jak byl připravený váš balíček <application>gLabels</"
-"application>, nemusí být tato funkčnost dostupná. Podpora pro adresář "
-"<application>Evolution</application> je dostupná jen v případě, že byl při "
-"překladu aplikace <application>gLabels</application> k dispozici "
-"<application>evolution-data-server</application> a k němu vývojářské "
-"soubory. Mějte toto na paměti, pokud si aplikaci překládáte sami ze "
-"zdrojových kódů."
-
-#: C/glabels.xml:1445(para)
-msgid ""
-"If the <application>gLabels</application> package from your distribution "
-"lacks this support, you may wish to contact the package maintainer or file a "
-"bug against the package to request it."
-msgstr ""
-"Pokud balíček <application>gLabels</application> ve vaší distribuci tuto "
-"podporu postrádá, můžete zkusit kontaktovat správce balíčku nebo to zkusit "
-"nahlásit jako chybu."
-
-#: C/glabels.xml:1450(para)
-msgid ""
-"In <application>glabels</application> we have created a new "
-"<application>gLabels</application> document using the Avery 5512 \"Address "
-"Labels\" template. Next we use the <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Merge Properties</guimenuitem></menuchoice> menu item "
-"to display the <guilabel>Merge properties</guilabel> dialog. We use this "
-"dialog to select the source type (in our case <guilabel>Data from default "
-"Evolution addressbook</guilabel>) as shown."
-msgstr ""
-"V aplikaci <application>glabels</application> vytvoříme nový dokument ze "
-"šablony Avery L7162 „Poštovní etikety“. Potom v nabídce zvolíme "
-"<menuchoice><guimenu>Objekty</guimenu><guimenuitem>Vlastnosti slučování</"
-"guimenuitem></menuchoice>, aby se nám zobrazilo dialogové okno "
-"<guilabel>Vlastnosti slučování</guilabel>. V něm vybereme typ zdroje (v "
-"našem případě <guilabel>Data z výchozího adresáře Evolution</guilabel>), jak "
-"je ukázáno na obrázku."
+"Použití adresy URL výrobku může být omezené, protože adresa nemusí být "
+"trvalá."
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1471(para)
-msgid ""
-"Once we have chosen <guilabel>Data from default Evolution addressbook </"
-"guilabel> as our merge source, we will get a full list of its content. "
-"Initially, all entries are checked. Assuming we were planning a really big "
-"party, we could leave this selection untouched (but let's keep our budget in "
-"mind). We will now select or unselect certain entries by clicking on the "
-"appropriate checkboxes, or we could use the <guibutton>Select all</"
-"guibutton> and <guibutton>Unselect all </guibutton> buttons to activate or "
-"deactivate all entries in the address book."
-msgstr ""
-"Když máme jako zdroj slučování vybráno <guilabel>Data z výchozího adresáře "
-"Evolution</guilabel>, obdržíme úplný seznam jeho obsahu. Na začátku jsou "
-"zaškrtnuté všechny položky. Předpokládá se, že budeme pořádat opravdu velký "
-"večírek a tak bychom mohli ponechat výběr jak je (ale uvědomte si kolik to "
-"bude stát). Nyní některé záznamy kliknutím na příslušné zaškrtávací políčko "
-"vyřadíme nebo naopak vybereme, případně můžeme použít tlačítka "
-"<guibutton>Vybrat vše</guibutton> a <guibutton>Zrušit výběr</guibutton> pro "
-"aktivování nebo deaktivování všech záznamů v adresáři."
+#: C/mancreate.page:293(title)
+msgid "<span translate=\"no\">Label-rectangle</span> Node"
+msgstr "Uzel <span translate=\"no\">Label-rectangle</span>"
 
-#: C/glabels.xml:1479(para)
+#: C/mancreate.page:295(p)
 msgid ""
-"We can also view each entry in more detail by clicking on the appropriate "
-"expander (the little triangles) as shown. Once we are satisfied with the "
-"selections in this dialog, we will click the <guibutton>OK</guibutton> "
-"button to accept the changes."
+"A <code translate=\"no\">Label-rectangle</code> node describes the "
+"dimensions of a single label or business card that is rectangular in shape "
+"(may have rounded edges)."
 msgstr ""
-"U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení "
-"kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně "
-"spokojení, klikneme na <guibutton>OK</guibutton> a změny se použijí."
+"Uzel <code translate=\"no\">Label-rectangle</code> popisuje rozměry jedné "
+"etikety nebo vizitky, která má obdélníkový tvar (může mít zaoblené rohy)."
+
+#: C/mancreate.page:307(code) C/mancreate.page:370(code)
+#: C/mancreate.page:421(code) C/mancreate.page:468(code)
+#, no-wrap
+msgid "id"
+msgstr "id"
+
+#: C/mancreate.page:308(p) C/mancreate.page:371(p) C/mancreate.page:422(p)
+#: C/mancreate.page:469(p)
+msgid "Reserved for future use. Should always be 0."
+msgstr "Rezervované pro pozdější použití. Vždy by mělo být nastavené  na 0."
+
+#: C/mancreate.page:312(p)
+msgid "Width of label/card"
+msgstr "Šířka etikety/vizitky"
+
+#: C/mancreate.page:316(p)
+msgid "Heigth of label/card"
+msgstr "Výška etikety/vizitky"
+
+#: C/mancreate.page:319(code)
+#, no-wrap
+msgid "round"
+msgstr "round"
 
-#: C/glabels.xml:1484(para)
-msgid "Now we start adding objects to our glabels document as shown."
+#: C/mancreate.page:320(p)
+msgid ""
+"Radius of corners. For items with square edges (business cards), the radius "
+"should be 0."
 msgstr ""
-"Nyní můžeme začít s přidáváním objektů do svého dokumentu glabels, jak bylo "
-"ukázáno dříve."
+"Poloměr rohů. Pro položky s ostrými rohy (např. vizitky) by mělo být "
+"nastaveno na 0."
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1499(para)
+#: C/mancreate.page:324(code)
+#, no-wrap
+msgid "x_waste"
+msgstr "x_waste"
+
+#: C/mancreate.page:325(p)
 msgid ""
-"In this example we have a single text object again. This text object "
-"contains all of our merge fields organized on multiple lines as a mailing "
-"address."
+"Amount of horizontal waste (over-print) to allow. This is useful for "
+"minimizing alignment problems when using non-white backgrounds (e.g. images)."
 msgstr ""
-"V tomto příkladu máme opět jen jeden textový objekt. Ten obsahuje všechna "
-"slučovaná pole uspořádaná v několika řádcích, představujících poštovní "
-"adresy."
+"Velikost dovoleného vodorovného odsazení (umožňuje přetisk). To je užitečné "
+"kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé "
+"pozadí, ale např. obrázkové."
+
+#: C/mancreate.page:330(code)
+#, no-wrap
+msgid "y_waste"
+msgstr "y_waste"
 
-#: C/glabels.xml:1502(para)
+#: C/mancreate.page:331(p)
 msgid ""
-"Now we can print our address labels by selecting the "
-"<menuchoice><guimenu>File</guimenu><guimenuitem>Print</guimenuitem></"
-"menuchoice> menu item. This will display the print dialog as shown below."
+"Amount of vertical waste (over-print) to allow. This is useful for "
+"minimizing alignment problems when using non-white backgrounds (e.g. images)."
 msgstr ""
-"Nyní můžeme své etikety s adresami vytisknout volbou položky nabídky "
-"<menuchoice><guimenu>Soubor</guimenu><guimenuitem>Tisk</guimenuitem></"
-"menuchoice>. Zobrazí se dialogové okno tisku, jak jej můžete vidět níže."
-
-#: C/glabels.xml:1551(title)
-msgid "Manually Creating New Templates"
-msgstr "Ruční vytváření šablon"
-
-#: C/glabels.xml:1553(para)
-msgid ""
-"Predefined templates are defined by XML files located in <filename>${prefix}/"
-"share/glabels/</filename>, where <filename>${prefix}</filename> is usually "
-"something like <filename>/usr/local</filename> or <filename>/usr</filename> "
-"depending on the configuration option <filename>prefix</filename>. "
-"<application>gLabels</application> will use all files of the form "
-"<filename>*-templates.xml</filename> or <filename>*.template</filename>, "
-"that it finds in <filename>${prefix}/share/glabels/</filename> and <filename>"
-"${HOME}/.glabels/</filename>. Additional templates can be added by creating "
-"additional <filename>*.template</filename> files in either of these "
-"directories."
-msgstr ""
-"Předdefinované šablony jsou definované soubory XML umístěnými v <filename>"
-"${prefix}/share/glabels/</filename>, kde <filename>${prefix}</filename> je "
-"obvykle <filename>/usr/local</filename> nebo <filename>/usr</filename>, v "
-"závislosti na volbě nastavení <filename>prefix</filename> při překladu "
-"programu. Aplikace <application>gLabels</application> použije všechny "
-"soubory s názvem v podobě <filename>*-templates.xml</filename> nebo "
-"<filename>*.template</filename>, které nalezne v <filename>${prefix}/share/"
-"glabels/</filename> a <filename>${HOME}/.glabels/</filename>. Další šablony "
-"si můžete přidat vytvořením dalších souborů <filename>*.template</filename> "
-"v jedné z těchto složek."
-
-#: C/glabels.xml:1566(para)
-msgid ""
-"The format for these files is defined in the DTD: <ulink url=\"http://"
-"glabels.sourceforge.net/doc/glabels-2.0.dtd.txt\" type=\"http\">glabels-2.2."
-"dtd</ulink>. (This DTD also describes other XML formats used by "
-"<application>gLabels</application>.)"
-msgstr ""
-"Formát těchto souborů je dán v DTD: <ulink url=\"http://glabels.sourceforge."
-"net/doc/glabels-2.0.dtd.txt\" type=\"http\">glabels-2.2.dtd</ulink>. (Toto "
-"DTD popisuje i ostatní formáty XML používané v aplikaci "
-"<application>gLabels</application>.)"
-
-#: C/glabels.xml:1572(title)
-msgid "Assumptions/caveats"
-msgstr "Předpoklady/upozornění"
+"Velikost dovoleného svislého odsazení (umožňuje přetisk). To je užitečné "
+"kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé "
+"pozadí, ale např. obrázkové."
+
+#: C/mancreate.page:339(desc) C/mancreate.page:341(p)
+msgid "<span translate=\"no\">Label-rectangle</span> parameters"
+msgstr "Parametry uzlu <span translate=\"no\">Label-rectangle</span>"
 
-#: C/glabels.xml:1575(para)
+#: C/mancreate.page:356(title)
+msgid "<span translate=\"no\">Label-ellipse</span> Node"
+msgstr "Uzel <span translate=\"no\">Label-ellipse</span>"
+
+#: C/mancreate.page:358(p)
 msgid ""
-"A sheet contains only one size of label or card (if a sheet contains more "
-"than one size of item, it can be split into multiple templates for multiple "
-"pass printing)"
+"A <code translate=\"no\">Label-ellipse</code> node describes the dimensions "
+"of a single label or business card that is elliptic in shape."
 msgstr ""
-"Stránka obsahuje etiketu nebo vizitku pouze jedné velikosti (pokud má "
-"stránka obsahovat více než jednu velikost položky, můžete ji rozdělit do "
-"více šablon a vytisknout na vícekrát)"
+"Uzel <code translate=\"no\">Label-ellipse</code> popisuje rozměry jedné "
+"etikety nebo vizitky, která má eliptický tvar."
+
+#: C/mancreate.page:375(p)
+msgid "Width of the ellipse"
+msgstr "Šířka elipsy"
+
+#: C/mancreate.page:379(p)
+msgid "Heigth of the ellipse"
+msgstr "Výška elipsy"
+
+#: C/mancreate.page:382(code) C/mancreate.page:429(code)
+#: C/mancreate.page:490(code)
+#, no-wrap
+msgid "waste"
+msgstr "waste"
 
-#: C/glabels.xml:1580(para)
+#: C/mancreate.page:383(p) C/mancreate.page:430(p) C/mancreate.page:491(p)
 msgid ""
-"Distances can be expressed in units of <emphasis>pt</emphasis>, "
-"<emphasis>in</emphasis>, <emphasis>mm</emphasis>, <emphasis>cm</emphasis>, "
-"or <emphasis>pc</emphasis>. For example: \"<literal>1.0in</literal>\" or "
-"\"<literal>2.54cm</literal>\". If no units are specified, computer points "
-"(<emphasis>pt</emphasis>) will be assumed (1 <emphasis>pt</emphasis> = 1/72 "
-"<emphasis>in</emphasis> = 0.352778 <emphasis>mm</emphasis>)."
+"Amount of waste (over-print) to allow. This is useful for minimizing "
+"alignment problems when using non-white backgrounds (e.g. images)."
 msgstr ""
-"Rozměry mohou být uváděny v jednotkách <emphasis>pt</emphasis>, "
-"<emphasis>in</emphasis>, <emphasis>mm</emphasis>, <emphasis>cm</emphasis> "
-"nebo <emphasis>pc</emphasis>. Například: „<literal>1.0in</literal>“ nebo "
-"„<literal>2.54cm</literal>“. Pokud není žádná jednotka uvedená, budou "
-"předpokládány body <emphasis>pt</emphasis>  (1 <emphasis>pt</emphasis> = "
-"1/72 <emphasis>in</emphasis> = 0,352778 <emphasis>mm</emphasis>)."
+"Velikost dovoleného odsazení (umožňuje přetisk). To je užitečné kvůli "
+"zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, "
+"ale např. obrázkové."
 
-#: C/glabels.xml:1593(title)
-msgid "Template Files"
-msgstr "Soubory šablon"
+#: C/mancreate.page:391(desc) C/mancreate.page:393(p)
+#: C/mancreate.page:438(desc) C/mancreate.page:440(p)
+msgid "<span translate=\"no\">Label-ellipse</span> parameters"
+msgstr "Parametry uzlu <span translate=\"no\">Label-ellipse</span>"
 
-#: C/glabels.xml:1595(programlisting)
+#: C/mancreate.page:408(title)
+msgid "<span translate=\"no\">Label-round</span> Node"
+msgstr "Uzel <span translate=\"no\">Label-round</span>"
+
+#: C/mancreate.page:410(p)
+msgid ""
+"A <code translate=\"no\">Label-round</code> node describes the dimensions of "
+"a simple round label (not a CD)."
+msgstr ""
+"Uzel <emphasis>Label-round</emphasis> popisuje rozměry jedné kulaté etikety "
+"(ale ne CD)."
+
+#: C/mancreate.page:425(code) C/mancreate.page:472(code)
+#: C/mancreate.page:614(code)
 #, no-wrap
+msgid "radius"
+msgstr "radius"
+
+#: C/mancreate.page:426(p)
+msgid "Radius (1/2 diameter) of label"
+msgstr "Poloměr (½ průměru) etikety."
+
+#: C/mancreate.page:455(title)
+msgid "<span translate=\"no\">Label-cd</span> Node"
+msgstr "Uzel <span translate=\"no\">Label-cd</span>"
+
+#: C/mancreate.page:457(p)
 msgid ""
-"\n"
-"&lt;?xml version=\"1.0\"?&gt;\n"
-"&lt;Glabels-templates&gt;\n"
-"\n"
-"   <replaceable>...templates...</replaceable>\n"
-"\n"
-"&lt;/Glabels-templates&gt;\n"
-"      "
+"A <code translate=\"no\">Label-cd</code> node describes the dimensions of a "
+"CD, DVD, or business card CD."
 msgstr ""
-"\n"
-"&lt;?xml version=\"1.0\"?&gt;\n"
-"&lt;Glabels-templates&gt;\n"
-"\n"
-"   <replaceable>…šablony…</replaceable>\n"
-"\n"
-"&lt;/Glabels-templates&gt;\n"
-"      "
+"Uzel <code translate=\"no\">Label-cd</code> popisuje rozměry etiket na CD, "
+"DVD nebo vizitkové CD."
 
-#: C/glabels.xml:1607(title)
-msgid "Example Template"
-msgstr "Příklad šablony"
+#: C/mancreate.page:473(p)
+msgid "Outer radius of label"
+msgstr "Vnější poloměr etikety."
 
-#: C/glabels.xml:1608(programlisting)
+#: C/mancreate.page:476(code)
 #, no-wrap
+msgid "hole"
+msgstr "hole"
+
+#: C/mancreate.page:477(p)
+msgid "Radius of concentric hole"
+msgstr "Poloměr středové díry."
+
+#: C/mancreate.page:481(p)
 msgid ""
-"\n"
-"  &lt;Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\"&gt;\n"
-"    &lt;Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\"&gt;\n"
-"      &lt;Markup-margin size=\"5pt\"/&gt;\n"
-"      &lt;Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/&gt;\n"
-"    &lt;/Label-rectangle&gt;\n"
-"    &lt;Alias brand=\"Avery\" part=\"5160\"/&gt;\n"
-"    &lt;Alias brand=\"Avery\" part=\"6233\"/&gt;\n"
-"  &lt;/Template&gt;\n"
-"      "
+"If present, the label is clipped to the given width. (Useful for \"business "
+"card CDs\")."
 msgstr ""
-"\n"
-"  &lt;Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" _description=\"Mailing Labels\"&gt;\n"
-"    &lt;Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\"&gt;\n"
-"      &lt;Markup-margin size=\"5pt\"/&gt;\n"
-"      &lt;Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/&gt;\n"
-"    &lt;/Label-rectangle&gt;\n"
-"    &lt;Alias brand=\"Avery\" part=\"5160\"/&gt;\n"
-"    &lt;Alias brand=\"Avery\" part=\"6233\"/&gt;\n"
-"  &lt;/Template&gt;\n"
-"      "
+"Pokud je zadáno, bude etiketa oříznuta na uvedenou šířku. (Vhodné pro "
+"„vizitková CD“)."
+
+#: C/mancreate.page:486(p)
+msgid ""
+"If present, the label is clipped to the given height. (Useful for \"business "
+"card CDs\")."
+msgstr ""
+"Pokud je zadáno, bude etiketa oříznuta na uvedenou výšku. (Vhodné pro "
+"„vizitková CD“)."
+
+#: C/mancreate.page:499(desc)
+msgid "<span translate=\"no\">Label-cd</span> parameters"
+msgstr "Parametry uzlu <span translate=\"no\">Label-cd</span>"
+
+#: C/mancreate.page:501(p)
+msgid "CD label parameters"
+msgstr "Parametry etiket na CD"
 
-#: C/glabels.xml:1621(title)
-msgid "Template Node"
-msgstr "Uzel Template"
+#: C/mancreate.page:516(title)
+msgid "<span translate=\"no\">Markup</span> Nodes"
+msgstr "Uzly <span translate=\"no\">Markup</span>"
 
-#: C/glabels.xml:1623(para)
+#: C/mancreate.page:518(p)
 msgid ""
-"A <emphasis>Template</emphasis> node describes a single stationary product. "
-"It must contain one instance of any type of Label node (<emphasis>Label-"
-"rectangle</emphasis>, <emphasis>Label-round</emphasis>, or <emphasis>Label-"
-"cd</emphasis>). This node can be followed by zero or more <emphasis>Alias</"
-"emphasis> nodes."
+"Templates may contain optional markup nodes. These nodes are used to "
+"describe a simple set of markup lines that are visible in the <app>glabels</"
+"app> drawing canvas, but not visible when printed. These lines can represent "
+"margins, fold lines, center lines, special areas, or other helpful hints to "
+"the user of a template."
 msgstr ""
-"Uzel <emphasis>Template</emphasis> popisuje jeden pevně daný výrobek. Musí "
-"obsahovat jednu instanci libovolného uzlu Label (<emphasis>Label-rectangle</"
-"emphasis>, <emphasis>Label-round</emphasis> nebo <emphasis>Label-cd</"
-"emphasis>). Tento uzel může být následován žádným nebo více uzly "
-"<emphasis>Alias</emphasis>."
+"Šablona může volitelně obsahovat uzly se značkami. Tyto uzly se používají k "
+"popisu jednoduchých sad pomocných čar, které jsou viditelné na kreslící "
+"ploše aplikace <app>glabels</app>, ale netisknou se. Tyto čáry mohou "
+"představovat například okraje, přehyby, speciální oblasti a další pomůcky "
+"užitečné pro uživatele šablony."
 
-#: C/glabels.xml:1637(para) C/glabels.xml:1712(para) C/glabels.xml:1789(para)
-#: C/glabels.xml:1834(para) C/glabels.xml:1910(para) C/glabels.xml:1943(para)
-#: C/glabels.xml:1994(para) C/glabels.xml:2037(para) C/glabels.xml:2096(para)
-#: C/glabels.xml:2173(para)
-msgid "Property"
-msgstr "Vlastnost"
+#: C/mancreate.page:528(title)
+msgid "<span translate=\"no\">Markup-margin</span> Node"
+msgstr "<span translate=\"no\">Markup-margin</span> Node"
 
-#: C/glabels.xml:1640(para) C/glabels.xml:1715(para) C/glabels.xml:1792(para)
-#: C/glabels.xml:1837(para) C/glabels.xml:1913(para) C/glabels.xml:1946(para)
-#: C/glabels.xml:1997(para) C/glabels.xml:2040(para) C/glabels.xml:2099(para)
-#: C/glabels.xml:2176(para)
-msgid "Description"
-msgstr "Popis"
+#: C/mancreate.page:530(p)
+msgid ""
+"A <code translate=\"no\">Markup-margin</code> describes a margin along all "
+"edges of a label."
+msgstr ""
+"Uzel <code translate=\"no\">Markup-margin</code> popisuje okraj podél všech "
+"hran etikety."
 
-#: C/glabels.xml:1646(para) C/glabels.xml:2182(para)
-msgid "brand"
-msgstr "brand"
+#: C/mancreate.page:542(p)
+msgid ""
+"Size of the margin. I.e. the distance of the margin line from the edge of "
+"the card/label."
+msgstr ""
+"Velikost okraje. Např. vzdálenost hranice okraje od hrany etikety/vizitky."
 
-#: C/glabels.xml:1648(para)
-msgid "Brand or manufacturer of stationary product. E.g. \"Avery\""
-msgstr "Značka nebo výrobce pevně daného výrobku. Např. \"S&K Label\""
+#: C/mancreate.page:556(title)
+msgid "<span translate=\"no\">Markup-line</span> Node"
+msgstr "Uzel <span translate=\"no\">Markup-line</span>"
 
-#: C/glabels.xml:1653(para) C/glabels.xml:2188(para)
-msgid "part"
-msgstr "part"
+#: C/mancreate.page:558(p)
+msgid ""
+"A <code translate=\"no\">Markup-line</code> node describes a markup line."
+msgstr ""
+"Uzel <code translate=\"no\">Markup-line</code> popisuje značku v podobě čáry."
 
-#: C/glabels.xml:1655(para)
-msgid "Part number or name of stationary product. E.g. \"8160\""
-msgstr "Produktové číslo nebo název pevně daného výrobku. Např. \"8160\""
+#: C/mancreate.page:568(code) C/mancreate.page:640(code)
+#: C/mancreate.page:682(code)
+#, no-wrap
+msgid "x1"
+msgstr "x1"
 
-#: C/glabels.xml:1660(para) C/glabels.xml:1919(para)
-msgid "size"
-msgstr "size"
+#: C/mancreate.page:569(p)
+msgid "x coordinate of 1st endpoint of the line segment."
+msgstr "x-ová souřadnice 1. koncového bodu úsečky."
 
-#: C/glabels.xml:1662(para)
-msgid "Size of sheet. E.g., \"US-Letter,\" \"A4\", ..."
-msgstr "Velikost stránky. Např. \"A4\", \"US-Letter\""
+#: C/mancreate.page:572(code) C/mancreate.page:644(code)
+#: C/mancreate.page:686(code)
+#, no-wrap
+msgid "y1"
+msgstr "y1"
 
-#: C/glabels.xml:1666(para)
-msgid "description"
-msgstr "description"
+#: C/mancreate.page:573(p)
+msgid "y coordinate of 1st endpoint of the line segment."
+msgstr "y-ová souřadnice 1. koncového bodu úsečky."
+
+#: C/mancreate.page:576(code)
+#, no-wrap
+msgid "x2"
+msgstr "x2"
 
-#: C/glabels.xml:1668(para)
-msgid "Description of stationary product. E.g, \"Mailing Labels.\""
-msgstr "Popis pevně daného produktu. Např. \"Mailing Labels.\""
+#: C/mancreate.page:577(p)
+msgid "x coordinate of 2st endpoint of the line segment."
+msgstr "x-ová souřadnice 2. koncového bodu úsečky."
 
-#: C/glabels.xml:1673(para)
-msgid "_description"
-msgstr "_description"
+#: C/mancreate.page:580(code)
+#, no-wrap
+msgid "y2"
+msgstr "y2"
+
+#: C/mancreate.page:581(p)
+msgid "y coordinate of 2st endpoint of the line segment."
+msgstr "y-ová souřadnice 2. koncového bodu úsečky."
+
+#: C/mancreate.page:594(title)
+msgid "<span translate=\"no\">Markup-circle</span> Node"
+msgstr "Uzel <span translate=\"no\">Markup-circle</span>"
 
-#: C/glabels.xml:1675(para)
+#: C/mancreate.page:596(p)
 msgid ""
-"Translatable description of stationary product. E.g, \"Mailing Labels."
-"\" (Only useful for predefined templates)"
+"A <code translate=\"no\">Markup-circle</code> describes a markup circle."
 msgstr ""
-"Popis pevně daného produktu s možností překladu. Např. \"Mailing Labels."
-"\" (Použitelné pouze pro předdefinované šablony)"
+"Uzel <code translate=\"no\">Markup-circle</code> popisuje značku v podobě "
+"kruhu."
 
-#: C/glabels.xml:1681(para) C/glabels.xml:1727(para) C/glabels.xml:1857(para)
-msgid "width"
-msgstr "width"
+#: C/mancreate.page:606(code) C/mancreate.page:740(code)
+#, no-wrap
+msgid "x0"
+msgstr "x0"
 
-#: C/glabels.xml:1683(para)
-msgid "Page width. Only valid if size=\"Other\""
-msgstr "Šířka stránky. Platné jen v případě, že size=\"Other\""
+#: C/mancreate.page:607(p)
+msgid "x coordinate of circle origin (center)."
+msgstr "x-ová souřadnice středu kruhu."
 
-#: C/glabels.xml:1687(para) C/glabels.xml:1731(para) C/glabels.xml:1864(para)
-msgid "height"
-msgstr "height"
+#: C/mancreate.page:610(code) C/mancreate.page:745(code)
+#, no-wrap
+msgid "y0"
+msgstr "y0"
 
-#: C/glabels.xml:1689(para)
-msgid "Page height. Only valid if size=\"Other\""
-msgstr "Výška stránky. Platné jen v případě, že size=\"Other\""
+#: C/mancreate.page:611(p)
+msgid "y coordinate of circle origin (center)."
+msgstr "y-ová souřadnice středu kruhu."
+
+#: C/mancreate.page:615(p)
+msgid "Radius of circle."
+msgstr "Poloměr kruhu."
 
-#: C/glabels.xml:1699(title)
-msgid "Label-rectangle Node"
-msgstr "Uzel Label-rectangle"
+#: C/mancreate.page:628(title)
+msgid "<span translate=\"no\">Markup-rect</span> Node"
+msgstr "Uzel <span translate=\"no\">Markup-rect</span>"
 
-#: C/glabels.xml:1701(para)
+#: C/mancreate.page:630(p)
 msgid ""
-"A <emphasis>Label-rectangle</emphasis> node describes the dimensions of a "
-"single label or business card that is rectangular in shape (may have rounded "
-"edges)."
+"A <code translate=\"no\">Markup-rect</code> describes a markup rectangle."
 msgstr ""
-"Uzel <emphasis>Label-rectangle</emphasis> popisuje rozměry jedné etikety "
-"nebo vizitky, která má obdélníkový tvar (může mít zaoblené rohy)."
+"Uzel <code translate=\"no\">Markup-rect</code> popisuje značku v podobě "
+"obdélníku."
 
-#: C/glabels.xml:1721(para) C/glabels.xml:1798(para) C/glabels.xml:1843(para)
-msgid "id"
-msgstr "id"
+#: C/mancreate.page:641(p)
+msgid "x coordinate of upper left corner of rectangle."
+msgstr "x-ová souřadnice levého horního rohu obdélníku."
 
-#: C/glabels.xml:1723(para) C/glabels.xml:1800(para) C/glabels.xml:1845(para)
-msgid "Reserved for future use. Should always be 0."
-msgstr "Rezervované pro pozdější použití. Vždy by mělo být nastavené  na 0."
+#: C/mancreate.page:645(p)
+msgid "y coordinate of upper left corner of rectangle."
+msgstr "y-ová souřadnice levého horního rohu obdélníku."
 
-#: C/glabels.xml:1728(para)
-msgid "Width of label/card"
-msgstr "Šířka etikety/vizitky"
+#: C/mancreate.page:648(code) C/mancreate.page:690(code)
+#, no-wrap
+msgid "w"
+msgstr "w"
 
-#: C/glabels.xml:1732(para)
-msgid "Height of label/card"
-msgstr "Výška etikety/vizitky"
+#: C/mancreate.page:649(p)
+msgid "Width of rectangle."
+msgstr "Šířka obdélníku."
 
-#: C/glabels.xml:1735(para)
-msgid "round"
-msgstr "round"
+#: C/mancreate.page:652(code) C/mancreate.page:694(code)
+#, no-wrap
+msgid "h"
+msgstr "h"
+
+#: C/mancreate.page:653(p)
+msgid "Height of rectangle."
+msgstr "Výška obdélníku."
+
+#: C/mancreate.page:656(code)
+#, no-wrap
+msgid "r"
+msgstr "r"
+
+#: C/mancreate.page:657(p)
+msgid "Radius of rounded corners of rectangle."
+msgstr "Poloměr zakulacených rohů obdélníku."
 
-#: C/glabels.xml:1737(para)
+#: C/mancreate.page:670(title)
+msgid "<span translate=\"no\">Markup-ellipse</span> Node"
+msgstr "Uzel <span translate=\"no\">Markup-ellipse</span>"
+
+#: C/mancreate.page:672(p)
 msgid ""
-"Radius of corners. For items with square edges (business cards), the radius "
-"should be 0."
+"A <code translate=\"no\">Markup-ellipse</code> describes a markup ellipse."
 msgstr ""
-"Poloměr rohů. Pro položky s ostrými rohy (např. vizitky) by mělo být "
-"nastaveno na 0."
+"Uzel <code translate=\"no\">Markup-ellipse</code> popisuje značku v podobě "
+"elipsy."
 
-#: C/glabels.xml:1742(para)
-msgid "x_waste"
-msgstr "x_waste"
+#: C/mancreate.page:683(p)
+msgid "x coordinate of upper left corner of ellipse."
+msgstr "x-ová souřadnice levého horního rohu elipsy."
+
+#: C/mancreate.page:687(p)
+msgid "y coordinate of upper left corner of ellipse."
+msgstr "y-ová souřadnice levého horního rohu elipsy."
 
-#: C/glabels.xml:1744(para)
+#: C/mancreate.page:691(p)
+msgid "Width of ellipse."
+msgstr "Šířka elipsy."
+
+#: C/mancreate.page:695(p)
+msgid "Height of ellipse."
+msgstr "Výška elipsy."
+
+#: C/mancreate.page:713(title)
+msgid "<span translate=\"no\">Layout</span> Node"
+msgstr "Uzel <span translate=\"no\">Layout</span>"
+
+#: C/mancreate.page:715(p)
 msgid ""
-"Amount of horizontal waste (over-print) to allow. This is useful for "
-"minimizing alignment problems when using non-white backgrounds (e.g. images)."
+"A label node may contain multiple <code translate=\"no\">Layout</code> "
+"children. If labels are arranged in a simple grid pattern, only one layout "
+"is needed. However, if labels are arranged in multiple grids, such as a "
+"running bond pattern, multiple <code translate=\"no\">Layout</code> tags can "
+"be used."
 msgstr ""
-"Velikost dovoleného vodorovného odsazení (umožňuje přetisk). To je užitečné "
-"kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé "
-"pozadí, ale např. obrázkové."
+"Uzel typu Label může obsahovat více potomků <code translate=\"no\">Layout</"
+"code>. V případě, že jsou etikety rozmístěné do jednoduché pravidelné "
+"mřížky, postačuje jeden uzel Layout. Pokud jsou ale etikety rozmístěné ve "
+"více mřížkách, např. mají podobu cihlové zdi, musí se použít více značek "
+"<code translate=\"no\">Layout</code>."
 
-#: C/glabels.xml:1750(para)
-msgid "y_waste"
-msgstr "y_waste"
+#: C/mancreate.page:721(p)
+msgid "A single label can always be treated as a grid of one."
+msgstr "Jedna etiketa může být vždy považována za mřížku s jednou buňkou."
+
+#: C/mancreate.page:732(code)
+#, no-wrap
+msgid "nx"
+msgstr "nx"
+
+#: C/mancreate.page:733(p)
+msgid "Number of labels/cards across in the grid (horizontal)"
+msgstr "Počet etiket/vizitek v mřížce (vodorovně)."
+
+#: C/mancreate.page:736(code)
+#, no-wrap
+msgid "ny"
+msgstr "ny"
+
+#: C/mancreate.page:737(p)
+msgid "Number of labels/cards across in the grid (vertical)"
+msgstr "Počet etiket/vizitek v mřížce (svisle)."
+
+#: C/mancreate.page:741(p)
+msgid ""
+"Distance from left edge of sheet to the left edge of the left column of "
+"cards/labels in the layout."
+msgstr ""
+"Vzdálenost od levé hrany stránky k levé hraně levého sloupce etiket/vizitek "
+"v rozvržení."
+
+#: C/mancreate.page:746(p)
+msgid ""
+"Distance from the top edge of sheet to the top edge of the top row of labels/"
+"cards in the layout."
+msgstr ""
+"Vzdálenost od horní hrany stránky k horní hraně horní řady etiket/vizitek v "
+"rozvržení."
+
+#: C/mancreate.page:750(code)
+#, no-wrap
+msgid "dx"
+msgstr "dx"
+
+#: C/mancreate.page:751(p)
+msgid "Horizontal pitch of grid."
+msgstr "Vodorovná rozteč mřížky."
+
+#: C/mancreate.page:754(code)
+#, no-wrap
+msgid "dy"
+msgstr "dy"
+
+#: C/mancreate.page:755(p)
+msgid "Vertical pitch of grid."
+msgstr "Svislá rozteč mřížky."
+
+#: C/mancreate.page:761(desc)
+msgid "<span translate=\"no\">Layout</span> parameters"
+msgstr "Parametry uzlu <span translate=\"no\">Layout</span>"
+
+#: C/mancreate.page:763(p)
+msgid "<span translate=\"no\">Layout</span> Parameters"
+msgstr "Parametry uzlu <span translate=\"no\">Layout</span>"
+
+#: C/license.page:8(desc)
+msgid "Legal information."
+msgstr "Právní informace."
+
+#: C/license.page:11(title)
+msgid "License"
+msgstr "Licence"
+
+#: C/license.page:12(p)
+msgid ""
+"This work is distributed under a CreativeCommons Attribution-Share Alike 3.0 "
+"Unported license."
+msgstr ""
+"Tato práce je šířena pod licencí CreativeCommons Attribution-Share Alike 3.0 "
+"Unported Licence."
+
+#: C/license.page:20(p)
+msgid "You are free:"
+msgstr "Můžete volně:"
+
+#: C/license.page:25(em)
+msgid "To share"
+msgstr "Sdílet"
+
+#: C/license.page:26(p)
+msgid "To copy, distribute and transmit the work."
+msgstr "Kopírovat, šířit a rozesílat dílo."
+
+#: C/license.page:29(em)
+msgid "To remix"
+msgstr "Měnit"
+
+#: C/license.page:30(p)
+msgid "To adapt the work."
+msgstr "Přizpůsobovat dílo."
+
+#: C/license.page:33(p)
+msgid "Under the following conditions:"
+msgstr "Za následujících podmínek:"
+
+#: C/license.page:38(em)
+msgid "Attribution"
+msgstr "Označení"
+
+#: C/license.page:39(p)
+msgid ""
+"You must attribute the work in the manner specified by the author or "
+"licensor (but not in any way that suggests that they endorse you or your use "
+"of the work)."
+msgstr ""
+"Musíte dílo označit v souladu s požadavky autora nebo licence (ale ne žádným "
+"způsobem, který předpokládá, že schvalují vás nebo vaše použití díla)."
+
+#: C/license.page:46(em)
+msgid "Share Alike"
+msgstr "Stejné sdílení"
+
+#: C/license.page:47(p)
+msgid ""
+"If you alter, transform, or build upon this work, you may distribute the "
+"resulting work only under the same, similar or a compatible license."
+msgstr ""
+"Pokud dílo změníte, převedete nebo na něm založíte jiné, můžete výsledek "
+"této práce šířit pouze pod stejnou, podobnou nebo kompatibilní licencí."
+
+#: C/license.page:53(p)
+msgid ""
+"For the full text of the license, see the <link href=\"http://"
+"creativecommons.org/licenses/by-sa/3.0/legalcode\">CreativeCommons website</"
+"link>, or read the full <link href=\"http://creativecommons.org/licenses/by-"
+"sa/3.0/\">Commons Deed</link>."
+msgstr ""
+"Text licence v plném znění najdete na <link href=\"http://creativecommons."
+"org/licenses/by-sa/3.0/legalcode\">webových stránkách CreativeCommons</link> "
+"nebo si přečtěte <link href=\"http://creativecommons.org/licenses/by-sa/3.0/"
+"\">výtah dokumentu pro neprávníky</link>."
+
+#: C/labelprop.page:9(desc)
+msgid "How to change the properties of a label or business card."
+msgstr "Jak změnit vlastnosti etikety nebo vizitky."
+
+#: C/labelprop.page:25(title)
+msgid "To change label properties"
+msgstr "Změna vlastností etikety"
+
+#: C/labelprop.page:27(p)
+msgid ""
+"To change the media type and/or orientation of a label, choose "
+"<guiseq><gui>File</gui><gui>Properties</gui></guiseq> to display the "
+"<gui>Label properties</gui> dialog. Select the new media type and "
+"orientation for the document, then click <gui>OK</gui>."
+msgstr ""
+"Pokud chcete změnit typ média a/nebo orientaci etiket, zvolte "
+"<guiseq><gui>Soubor</gui><gui>Vlastnosti</gui></guiseq> a zobrazí se "
+"dialogové okno <gui>Vlastnosti etikety</gui>. Zvolte pro dokument nový typ "
+"média a orientaci a klikněte na <gui>OK</gui>."
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/index.page:24(None)
+msgid ""
+"@@image: 'figures/glabels-logo.png'; md5=0c1e32afcbae0d2fc6976020c24a0a43"
+msgstr ""
+"@@image: 'figures/glabels-logo.png'; md5=0c1e32afcbae0d2fc6976020c24a0a43"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/index.page:47(None)
+msgid ""
+"@@image: 'figures/introduction-glabels-main-window.png'; "
+"md5=fceca242699bb062a5ac243a5f962f3b"
+msgstr ""
+"@@image: 'figures/introduction-glabels-main-window.png'; "
+"md5=fceca242699bb062a5ac243a5f962f3b"
+
+#: C/index.page:7(title) C/index.page:8(title)
+msgid "gLabels label and business card designer"
+msgstr "Návrhář etiket a vizitek gLabels"
+
+#: C/index.page:23(title)
+msgid ""
+"<media type=\"image\" mime=\"image/png\" src=\"figures/glabels-logo.png"
+"\">gLabels logo</media> gLabels Manual"
+msgstr ""
+"<media type=\"image\" mime=\"image/png\" src=\"figures/glabels-logo.png"
+"\">logo gLabels</media> Příručka aplikace gLabels"
+
+#: C/index.page:28(p)
+msgid ""
+"The <app>gLabels</app> application is a lightweight program for creating "
+"labels and business cards for the GNOME desktop environment. It is designed "
+"to work with various laser/ink-jet peel-off label and business card sheets "
+"that you'll find at most office supply stores."
+msgstr ""
+"Aplikace <application>gLabels</application> je jednoduchý program na "
+"vytváření etiket a vizitek pro pracovní prostředí GNOME. Je navržená pro "
+"práci s různými samolepicími etiketami a vizitkami rozmístěnými na listech "
+"pro laserový/inkoustový tisk, které najdete ve většině obchodů s "
+"kancelářskými potřebami."
+
+#: C/index.page:35(p)
+msgid ""
+"<app>gLabels</app> can be used to design address labels, name tags, price "
+"tags, cd/dvd labels, or just about anything else that is organized in a "
+"regular pattern on a sheet of paper. Labels (or cards) can contain text, "
+"images, lines, shapes, and barcodes. <app>gLabels</app> also includes a "
+"document-merge feature which lets you print a unique label for each record "
+"from an external data source, such as a CSV file or an <app>Evolution</app> "
+"address book."
+msgstr ""
+"Aplikaci <app>gLabels</app> můžete používat k návrhu adresních štítků, "
+"visaček, cenovek, obalů na CD/DVD nebo cokoliv jiného, co je uspořádáno na "
+"listu papíru v pravidelném vzoru. Etikety (nebo kartičky) mohou obsahovat "
+"text, obrázky, čáry, tvary a čárové kódy. Aplikace <app>gLabels</app> "
+"obsahuje také funkci slučování dokumentů, díky které můžete tisknout každou "
+"etiketu jinou, podle záznamů v externím zdroji dat, jako jsou soubory CSV "
+"nebo adresář kontaktů <app>Evolution</app>."
+
+#: C/index.page:45(title) C/index.page:46(desc)
+msgid "<app>gLabels</app> main window"
+msgstr "Hlavní okno <app>gLabels</app>"
+
+#: C/index.page:48(p)
+msgid "<app>gLabels</app> main window."
+msgstr "Hlavní okno <app>gLabels</app>."
+
+#: C/index.page:53(title)
+msgid "Usage"
+msgstr "Použití"
+
+#: C/index.page:57(title)
+msgid "Document Merging"
+msgstr "Slučováním dokumentů"
+
+#: C/index.page:61(title)
+msgid "Advanced usage"
+msgstr "Pokročilé používání"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/editprop.page:35(None)
+msgid ""
+"@@image: 'figures/object-editor-sidebar.png'; "
+"md5=828ffc05f69e1914595cc1e3d7401e2f"
+msgstr ""
+"@@image: 'figures/object-editor-sidebar.png'; "
+"md5=828ffc05f69e1914595cc1e3d7401e2f"
+
+#: C/editprop.page:9(desc)
+msgid "Change the properties of objects."
+msgstr "Jak upravit vlastnosti objektu."
+
+#: C/editprop.page:25(title)
+#| msgid "To Edit Object Properties"
+msgid "To edit object properties"
+msgstr "Změna vlastností objektů"
+
+#: C/editprop.page:29(p)
+msgid ""
+"Most object properties can be modified through the object editor sidebar, "
+"illustrated below. To use the object editor, a single object must first be "
+"selected. See <link xref=\"select\"/>."
+msgstr ""
+"Většinu vlastností objektů lze upravit přes editor objektů v postranní "
+"liště, který je vyobrazený níže. Abyste mohli editor objektů používat, "
+"musíte nejdříve vybrat jeden objekt. Viz <link xref=\"select\"/>."
+
+#. ==== End of Figure ====
+#: C/editprop.page:40(p)
+msgid ""
+"The object editor will contain a subset of the following tabbed sections, "
+"depending on object type:"
+msgstr ""
+"Editor objektů bude obsahovat některé z následujících karet, které závisí na "
+"typu objektu:"
+
+#: C/editprop.page:44(title)
+msgid "Text Tabbed Section (Text objects)"
+msgstr "Karta Text (textové objekty)"
+
+#: C/editprop.page:46(p)
+msgid ""
+"This section contains a small editor for changing the content of a text "
+"object. It also contains a dropdown menu of available document merge keys, "
+"that can be inserted into text."
+msgstr ""
+"Tato karta obsahuje malý editor na úpravu obsahu textového objektu. Rovněž "
+"obsahuje vyskakovací nabídku dostupných klíčů slučování dokumentů, které lze "
+"do textu vkládat."
+
+#: C/editprop.page:53(title)
+msgid "Image Tabbed Section (Image objects)"
+msgstr "Karta Obrázek (obrázkové objekty)"
+
+#: C/editprop.page:55(p)
+msgid ""
+"This section contains a file entry with preview to select image files. The "
+"browse button can be used to easily locate image files. Alternatively, a "
+"document merge key can be used instead to provide a filename at print time."
+msgstr ""
+"Tato karta obsahuje pole na zadání souboru s obrázkem. Přes tlačítko "
+"procházení můžete soubor snadno najít. Druhou možností je použití klíče pro "
+"slučování dokumentů, který poskytne název souboru až během tisku."
+
+#: C/editprop.page:63(title)
+msgid "Data Tabbed Section (Barcode objects)"
+msgstr "Karta Data (objekty čárových kódů)"
+
+#: C/editprop.page:65(p)
+msgid ""
+"This section contains a text entry to enter literal barcode data. "
+"Alternatively, a document merge key can be used to provide this data at "
+"print time."
+msgstr ""
+"Tato karta obsahuje textové pole na zadání dat pro čárový kód. Druhou "
+"možností je použití klíče pro slučování dokumentů, přes který jsou data "
+"poskytována až během tisku."
+
+#: C/editprop.page:72(title)
+msgid "Style Tabbed Section (Text objects)"
+msgstr "Karta Styl (textové objekty)"
+
+#: C/editprop.page:74(p)
+msgid ""
+"This section contains controls to select text properties, including font "
+"family, font size, font weight, color, and text justification."
+msgstr ""
+"Tato karta obsahuje ovládací prvky na výběr vlastností textu, včetně typu "
+"písma, velikosti písma, tloušťky písma, barvy a zarovnání textu."
+
+#: C/editprop.page:81(title)
+msgid "Style Tabbed Section (Barcode objects)"
+msgstr "Karta Styl (objekty čárových kódů)"
+
+#: C/editprop.page:83(p)
+msgid ""
+"This section contains controls to select barcode properties, including "
+"barcode style, color, whether to print text, and whether to include a "
+"checksum digit."
+msgstr ""
+"Tato karta obsahuje ovládací prvky na výběr vlastností čárového kódu, včetně "
+"stylu čárového kódu, barvy, zda tisknout text a zda vkládat číslo s "
+"kontrolním součtem."
+
+#: C/editprop.page:90(title)
+msgid "Line Tabbed Section"
+msgstr "Karta Čára"
+
+#: C/editprop.page:92(p)
+msgid ""
+"This section contains controls to select properties of lines and outlines. "
+"These properties include line width and color."
+msgstr ""
+"Tato karta obsahuje ovládací prvky na výběr vlastností čar a obrysů. Tyto "
+"vlastnosti zahrnují tloušťku čáry a její barvu."
+
+#: C/editprop.page:98(title)
+msgid "Fill Tabbed Section"
+msgstr "Karta Výplň"
+
+#: C/editprop.page:100(p)
+msgid ""
+"This section contains controls to select fill properties of box and ellipse "
+"objects. Currently the only fill property is fill color."
+msgstr ""
+"Tato karta obsahuje ovládací prvky na výběr vlastností výplně objektů "
+"obdélníků a elips. V současnosti obsahuje pouze barvu výplně."
+
+#: C/editprop.page:107(title)
+msgid "Size Tabbed Section (All except line objects)"
+msgstr "Karta Velikost (všechny objekty vyjma čar)"
+
+#: C/editprop.page:109(p)
+msgid ""
+"This section contains controls to select the width and height of an object. "
+"A checkbox is provided, so that the current aspect ratio can be locked while "
+"manipulating the width and height controls. Image objects also provide a "
+"button to reset the size to the image's natural size (Assumes 72DPI)."
+msgstr ""
+"Tato karta obsahuje ovládací prvky na výběr šířky a výšky objektu. K "
+"dispozici je zaškrtávací pole, kterým můžete zamknout poměr stran během "
+"úprav šířky a výšky. U obrázků je k dispozici rovněž tlačítko, kterým můžete "
+"nastavit reálné rozměry obrázku (předpokládá se 72 DPI)."
+
+#: C/editprop.page:118(title)
+msgid "Size Tabbed Section (Line objects)"
+msgstr "Karta Velikost (objekty čar)"
+
+#: C/editprop.page:120(p)
+msgid ""
+"This section contains controls to select the length and angle of a line "
+"object."
+msgstr "Tato karta obsahuje ovládací prvky pro výběr délky a úhlu čáry."
+
+#: C/editprop.page:126(title)
+msgid "Position Tabbed Section"
+msgstr "Karta Pozice"
+
+#: C/editprop.page:128(p)
+msgid "This section contains controls to change the position of an object."
+msgstr "Tato karta obsahuje ovládací prvky pro změnu pozice objektu."
+
+#: C/editprop.page:135(title)
+msgid "Shadow Tabbed Section (All except barcode objects)"
+msgstr "Karta Stín (všechny objekty vyjma čárových kódů)"
+
+#: C/editprop.page:137(p)
+msgid "This section contains controls to add a shadow to an object."
+msgstr "Tato karta obsahuje ovládací prvky pro přidání stínu k objektu."
+
+#: C/editprop.page:146(title)
+msgid "Other Manipulations of Objects"
+msgstr "Ostatní manipulace s objekty"
+
+#: C/editprop.page:148(p)
+msgid "Objects can also be manipulated in the following ways."
+msgstr "S objekty lze manipulovat ještě následujícími způsoby:"
+
+#: C/editprop.page:151(title)
+msgid "Moving and Resizing Objects"
+msgstr "Přesouvání a změna velikosti objektů"
+
+#: C/editprop.page:153(p)
+msgid ""
+"Objects can be moved by simply clicking on a selected object and dragging "
+"the object to its new location. If the object is part of an aggregate "
+"selection, all objects in the selection will move with the object being "
+"dragged, maintaining their relative positions to one another. If no object "
+"is selected, clicking on an object will create a new selection containing "
+"that object. See <link xref=\"select\"/>."
+msgstr ""
+"Objekty lze přesunout kliknutím na vybraný objekt a tažením objektu na nové "
+"místo. Pokud je objekt součástí skupiny označených objektů, budou se s "
+"objektem přesouvat všechny vybrané objekty, ale jejich vzájemná pozice "
+"zůstane zachovaná. Pokud není žádný objekt vybraný, kliknutí na objekt "
+"provede nový výběr tohoto objektu. Viz <link xref=\"select\"/>."
+
+#: C/editprop.page:161(p)
+msgid ""
+"A selected object can be resized by clicking one of its resize handle and "
+"dragging it to obtain the new size."
+msgstr ""
+"U vybraných objektů můžete měnit jejich velikost kliknutím na úchyt pro "
+"změnu velikosti a jeho tažením tak, abyste dosáhli správné velikost."
+
+#: C/editprop.page:167(title)
+msgid "Changing Stacking Order"
+msgstr "Změna pořadí objektů"
+
+#: C/editprop.page:169(p)
+msgid ""
+"Stacking order refers to relative position in the z-axis of objects. That is "
+"when objects overlap, which object will appear on top of the other. By "
+"default, newer objects will appear above older objects. To change this "
+"order, select one or more objects and choose <guiseq><gui>Objects</"
+"gui><gui>Order</gui><gui>Bring to Front</gui></guiseq> to raise the "
+"selection to the top of the stacking order, or choose <guiseq><gui>Objects</"
+"gui><gui>Order</gui><gui>Send to Back</gui></guiseq> to lower the selection "
+"to the bottom of the stacking order. These menuitems are also available by "
+"right-clicking the display area when there is a non-empty selection."
+msgstr ""
+"Pořadí objektů představuje jejich relativní polohu v ose z. Prakticky to "
+"určuje při překrývání objektů, který z nich bude nahoře a který vespod. "
+"Standardně se nové objekty vytvářejí nad staršími objekty. Když chcete toto "
+"pořadí změnit, jeden nebo více objektů vyberte a zvolte "
+"<guiseq><gui>Objekty</gui><gui>Pořadí</gui><gui>Přenést dopředu</gui></"
+"guiseq> pro vynesení výběru na nejvyšší pozici nebo <guiseq><gui>Objekty</"
+"gui><gui>Pořadí</gui><gui>Odsunout dozadu</gui></guiseq> pro zatlačení "
+"výběru úplně dospod. Tyto položky nabídky jsou přístupné i po kliknutí "
+"pravým tlačítkem v zobrazovací oblasti za předpokladu, že jsou vybrané "
+"nějaké objekty."
+
+#: C/editprop.page:187(title)
+msgid "Rotating and Flipping Objects"
+msgstr "Otáčení a překlápění objektů"
+
+#: C/editprop.page:189(p)
+msgid ""
+"Objects can be rotated 90 degrees in either direction, or flipped "
+"horizontally or vertically, by choosing the appropriate menuitem in the "
+"<guiseq><gui>Objects</gui><gui>Rotate/Flip</gui></guiseq> sub-menu. These "
+"menuitems are also available by right-clicking the display area when there "
+"is a non-empty selection."
+msgstr ""
+"Objekty lze otáčet po 90stupňových krocích v obou směrech nebo je překlápět "
+"svisle či vodorovně a to volbou příslušné položky v podnabídce "
+"<guiseq><gui>Objekty</gui><gui>Otočit/Překlopit</gui></guiseq>. Tyto položky "
+"nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací oblasti "
+"za předpokladu, že jsou vybrané nějaké objekty."
+
+#: C/editprop.page:197(p)
+msgid ""
+"This feature could be useful when you are designing CD box inlays. For the "
+"spine caption, you need vertical aligned text. After you have created a "
+"basic text box, choose <guiseq><gui>Objects</gui><gui>Rotate/Flip</gui></"
+"guiseq> to rotate the text box according to your needs."
+msgstr ""
+"Tato funkce je užitečná, když navrhujete vložky do krabičky na CD. Pro text "
+"na hřbetu potřebujete svisle uspořádaný text. Po té co vytvoříte rámec se "
+"základním textem, zvolte <guiseq><gui>Objekty</gui><gui>Otočit/překlopit</"
+"gui></guiseq>, abyste textový rámec natočili podle svých požadavků."
+
+#: C/editprop.page:208(title)
+msgid "Aligning Objects"
+msgstr "Zarovnávání objektů"
+
+#: C/editprop.page:210(p)
+msgid ""
+"Objects can be aligned horizontally or vertically, relative to one another, "
+"or relative to the center line of the label, by choosing the appropriate "
+"menuitem from the <guiseq><gui>Objects</gui><gui>Align Horizontal</gui></"
+"guiseq> or <guiseq><gui>Objects</gui><gui>Align Vertical</gui></guiseq> sub-"
+"menus. These menuitems are also available by right-clicking the display area "
+"when there is a non-empty selection."
+msgstr ""
+"Objekty lze zarovnávat vodorovně nebo svisle, relativně vůči sobě nebo "
+"relativně ke středové čáře etikety, volbou příslušné položky z podnabídky "
+"<guiseq><gui>Objekty</gui><gui>Zarovnat vodorovně</gui></guiseq> nebo "
+"<guiseq><gui>Objekty</gui><gui>Zarovnat svisle</gui></guiseq>. Tyto položky "
+"nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací oblasti "
+"za předpokladu, že jsou vybrané nějaké objekty."
+
+#: C/editprop.page:223(title)
+msgid "Using the Property Bar"
+msgstr "Používání lišty vlastností"
+
+#: C/editprop.page:225(p)
+msgid ""
+"The property bar can be used to change some common properties of objects en-"
+"masse. These properties include font family, font size, font weight, text "
+"alignment, text color, fill color, line or outline color, and line width. "
+"The property bar also controls the defaults for these properties for any "
+"newly created objects."
+msgstr ""
+"Lištu vlastností lze použít ke změně některých běžných vlastností objektů "
+"jako celku. Tyto vlastnosti zahrnují typ písma, velikost písma, tloušťku "
+"písma, zarovnání textu, barvu textu, barvu výplně, barvu čáry nebo obrysu a "
+"tloušťku čáry. Přes panel vlastností může také zadat výchozí hodnoty těchto "
+"vlastností pro nově vytvářené objekty."
+
+#: C/customtemplate.page:9(desc)
+msgid "Create your own templates for stationery products."
+msgstr "Jak vytvořit vlastní šablonu pro papírové výrobky."
+
+#: C/customtemplate.page:25(title)
+msgid "To create a custom template"
+msgstr "Vytvoření vlastní šablony"
+
+#: C/customtemplate.page:27(p)
+msgid ""
+"To create a new custom template, choose <guiseq><gui>File</gui><gui>Template "
+"Designer ...</gui></guiseq> to display the <gui>Template Designer</gui> "
+"dialog. This dialog will assist you in creating a custom template for most "
+"types of label or card stationery that you may encounter."
+msgstr ""
+"Když chcete vytvořit novou vlastní šablonu, zvolte <guiseq><gui>Soubor</"
+"gui><gui>Návrhář šablon…</gui></guiseq> a zobrazí se dialogové okno "
+"<gui>Návrhář šablon gLabels</gui>. Toto dialogové okno vás provede "
+"vytvořením vlastní šablony pro většinu typů etiket nebo vizitek, se kterými "
+"se můžete setkat."
+
+#: C/customtemplate.page:34(p)
+msgid ""
+"If you prefer, you can create your templates manually. For this option see "
+"<link xref=\"mancreate\"/>"
+msgstr ""
+"Pokud dáváte přednost ručnímu vytvoření šablon, přečtěte si <link xref="
+"\"mancreate\"/>"
+
+#: C/customize.page:9(desc)
+msgid "Customize <app>gLabels</app> to match your needs."
+msgstr "Přizpůsobte si aplikaci <app>gLabels</app> svým potřebám."
+
+#. Use this section to describe how to customize the application.
+#: C/customize.page:25(title)
+msgid "Settings"
+msgstr "Nastavení"
 
-#: C/glabels.xml:1752(para)
+#: C/customize.page:26(p)
 msgid ""
-"Amount of vertical waste (over-print) to allow. This is useful for "
-"minimizing alignment problems when using non-white backgrounds (e.g. images)."
+"To configure <app>gLabels</app>, choose <guiseq><gui>Settings</"
+"gui><gui>Preferences</gui></guiseq>. The <gui>Preferences</gui> dialog "
+"contains the following tabbed sections:"
 msgstr ""
-"Velikost dovoleného svislého odsazení (umožňuje přetisk). To je užitečné "
-"kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé "
-"pozadí, ale např. obrázkové."
+"Když chcete v aplikaci <app>gLabels</app> změnit nastavení, zvolte "
+"<guiseq><gui>Upravit</gui><gui>Předvolby</gui></guiseq>. Dialogové okno "
+"<gui>Předvolby gLabels</gui> obsahuje následující karty:"
 
-#: C/glabels.xml:1763(title)
-msgid "Label-rectangle Parameters"
-msgstr "Parametry uzlu Label-rectangle"
+#: C/customize.page:35(title)
+msgid "Locale"
+msgstr "Národní prostředí"
 
-#: C/glabels.xml:1777(title)
-msgid "Label-round Node"
-msgstr "Uzel Label-round"
+#: C/customize.page:37(title)
+msgid "Units"
+msgstr "Jednotky"
 
-#: C/glabels.xml:1779(para)
+#: C/customize.page:38(p)
 msgid ""
-"A <emphasis>Label-round</emphasis> node describes the dimensions of a simple "
-"round label (not a CD)."
+"Use this radio button group to specify your preferred units. Select one of "
+"the following options:"
 msgstr ""
-"Uzel <emphasis>Label-round</emphasis> popisuje rozměry jedné zaoblené "
-"etikety (ne CD)."
-
-#: C/glabels.xml:1804(para) C/glabels.xml:1849(para) C/glabels.xml:2015(para)
-msgid "radius"
-msgstr "radius"
+"Tento skupinový přepínač použijte k určení svých upřednostňovaných jednotek. "
+"Vyberte jednu z následujících možností:"
 
-#: C/glabels.xml:1805(para)
-msgid "Radius (1/2 diameter) of label"
-msgstr "Poloměr (½ průměru) etikety"
+#: C/customize.page:42(gui)
+msgid "Points"
+msgstr "Body"
 
-#: C/glabels.xml:1808(para) C/glabels.xml:1871(para)
-msgid "waste"
-msgstr "waste"
+#: C/customize.page:43(p)
+msgid "Use points (1 point = 1/72 in = 0.352778 mm)."
+msgstr "Použít body (1 bod = 1/72 palce = 0,352778 mm)."
 
-#: C/glabels.xml:1810(para) C/glabels.xml:1873(para)
-msgid ""
-"Amount of waste (over-print) to allow. This is useful for minimizing "
-"alignment problems when using non-white backgrounds (e.g. images)."
-msgstr ""
-"Velikost dovoleného odsazení (umožňuje přetisk). To je užitečné kvůli "
-"zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, "
-"ale např. obrázkové."
+#: C/customize.page:46(gui)
+msgid "Inches"
+msgstr "Palce"
 
-#: C/glabels.xml:1822(title)
-msgid "Label-cd Node"
-msgstr "Uzel Label-cd"
+#: C/customize.page:47(p)
+msgid "Use Inches."
+msgstr "Použít palce (1 palec = 25,4 mm)."
 
-#: C/glabels.xml:1824(para)
-msgid ""
-"A <emphasis>Label-cd</emphasis> node describes the dimensions of a CD, DVD, "
-"or business card CD."
-msgstr ""
-"Uzel <emphasis>Label-cd</emphasis> popisuje rozměry etiket na CD, DVD nebo "
-"vizitkové CD."
+#: C/customize.page:50(gui)
+msgid "Millimeters"
+msgstr "Milimetry"
 
-#: C/glabels.xml:1850(para)
-msgid "Outer radius of label"
-msgstr "Vnější poloměr etikety"
+#: C/customize.page:51(p)
+msgid "Use Millimeters."
+msgstr "Použít milimetry."
 
-#: C/glabels.xml:1853(para)
-msgid "hole"
-msgstr "hole"
+#: C/customize.page:54(p)
+msgid "Default: <gui>Inches</gui>."
+msgstr "Výchozí : <gui>Palce</gui>."
 
-#: C/glabels.xml:1854(para)
-msgid "Radius of concentric hole"
-msgstr "Poloměr středové díry"
+#: C/customize.page:58(title)
+msgid "Default page size"
+msgstr "Výchozí velikost stránky"
 
-#: C/glabels.xml:1859(para)
+#: C/customize.page:59(p)
 msgid ""
-"If present, the label is clipped to the given width. (Useful for \"business "
-"card CDs\")."
+"Use this radio button group to specify your prefered page size. This will "
+"make it quicker for you to locate media types when creating a new label or "
+"card."
 msgstr ""
-"Pokud je zadáno, bude etiketa oříznuta na uvedenou šířku. (Vhodné pro "
-"„vizitková CD“)."
+"Tento skupinový přepínač použijte k určení své upřednostňované velikosti "
+"stránky. Urychlí vám to hledání typu média při vytváření nové etikety nebo "
+"vizitky."
+
+#: C/customize.page:64(gui)
+msgid "US Letter"
+msgstr "US Letter"
 
-#: C/glabels.xml:1866(para)
+#: C/customize.page:65(p)
 msgid ""
-"If present, the label is clipped to the given height. (Useful for \"business "
-"card CDs\")."
-msgstr ""
-"Pokud je zadáno, bude etiketa oříznuta na uvedenou výšku. (Vhodné pro "
-"„vizitková CD“)."
+"Most of your media will be of the US Letter page size (8.5 x 11 inches)."
+msgstr "Většina vašich médií má velikost stránky US Letter (8,5 × 11 palců)."
 
-#: C/glabels.xml:1884(title)
-msgid "CD Label Parameters"
-msgstr "Parametry etiket na CD"
+#: C/customize.page:68(gui)
+msgid "ISO A4"
+msgstr "ISO A4"
+
+#: C/customize.page:69(p)
+msgid "Most of your media will be of the ISO A4 page size (210 x 297 mm)."
+msgstr "Většina vašich médií má velikost stránky ISO A4 (210 × 297 mm)."
+
+#: C/customize.page:72(p)
+msgid "Default: <gui>US Letter</gui>."
+msgstr "Výchozí: <gui>US Letter</gui>."
+
+#: C/customize.page:77(title)
+msgid "Object Defaults"
+msgstr "Výchozí hodnoty objektů"
 
-#: C/glabels.xml:1898(title)
-msgid "Markup-margin Node"
-msgstr "Uzel Markup-margin"
+#: C/customize.page:80(title) C/createnew.page:39(title)
+msgid "Text"
+msgstr "Text"
 
-#: C/glabels.xml:1900(para)
+#: C/customize.page:81(p)
 msgid ""
-"A <emphasis>Markup-margin</emphasis> describes a margin along all edges of a "
-"label."
+"Use these controls to set the default properties of new text objects. These "
+"properties are:"
 msgstr ""
-"Uzel <emphasis>Markup-margin</emphasis> popisuje okraj podél všech hran "
-"etikety."
+"Použijte tyto ovládací prvky k nastavení výchozích vlastností nových "
+"textových objektů. Tyto vlastnosti jsou:"
+
+#: C/customize.page:85(gui)
+msgid "Font"
+msgstr "Písmo"
 
-#: C/glabels.xml:1921(para)
+#: C/customize.page:86(p)
 msgid ""
-"Size of the margin. I.e. the distance of the margin line from the edge of "
-"the card/label."
+"These controls are used to select font family and font size, and whether the "
+"font should bold or in italics."
 msgstr ""
-"Velikost okraje. Např. vzdálenost hranice okraje od hrany etikety/vizitky."
-
-#: C/glabels.xml:1932(title)
-msgid "Markup-line Node"
-msgstr "Uzel Markup-line"
+"Tyto ovládací prvky slouží k nastavení rodiny písma a velikosti písma a zda "
+"by mělo být písmo tučné nebo kurzívou."
 
-#: C/glabels.xml:1934(para)
-msgid "A <emphasis>Markup-line</emphasis> describes a markup line."
-msgstr "Uzel <emphasis>Markup-line</emphasis> popisuje značku v podobě čáry."
+#: C/customize.page:90(gui) C/customize.page:110(gui)
+#: C/customize.page:122(gui)
+msgid "Color"
+msgstr "Barva"
 
-#: C/glabels.xml:1952(para) C/glabels.xml:2046(para)
-msgid "x1"
-msgstr "x1"
+#: C/customize.page:91(p)
+msgid "This control selects the default text color."
+msgstr "Tímto ovládacím prvkem se vybírá výchozí barva textu."
 
-#: C/glabels.xml:1954(para)
-msgid "x coordinate of 1st endpoint of the line segment."
-msgstr "x-ová souřadnice počátku úsečky"
+#: C/customize.page:94(gui)
+msgid "Alignment"
+msgstr "Zarovnání"
 
-#: C/glabels.xml:1958(para) C/glabels.xml:2052(para)
-msgid "y1"
-msgstr "y1"
+#: C/customize.page:95(p)
+msgid ""
+"These controls are used to select the default text alignment (left, center "
+"or right)."
+msgstr ""
+"Tyto ovládací prvky slouží k výběru výchozího zarovnání textu (vlevo, na "
+"střed nebo vpravo)."
 
-#: C/glabels.xml:1960(para)
-msgid "y coordinate of 1st endpoint of the line segment."
-msgstr "y-ová souřadnice počátku úsečky"
+#: C/customize.page:101(title) C/createnew.page:56(title)
+msgid "Line"
+msgstr "Čára"
 
-#: C/glabels.xml:1964(para)
-msgid "x2"
-msgstr "x2"
+#: C/customize.page:102(p)
+msgid ""
+"Use these controls to set the default properties of lines and outlines of "
+"new objects. These properties are:"
+msgstr ""
+"Použijte tyto ovládací prvky k nastavení výchozích vlastností čar a obrysů "
+"nových objektů. Tyto vlastnosti jsou:"
 
-#: C/glabels.xml:1966(para)
-msgid "x coordinate of 2nd endpoint of the line segment."
-msgstr "x-ová souřadnice konce úsečky"
+#: C/customize.page:106(gui)
+msgid "Width"
+msgstr "Šířka"
 
-#: C/glabels.xml:1970(para)
-msgid "y2"
-msgstr "y2"
+#: C/customize.page:107(p)
+msgid "This control selects the default line width."
+msgstr "Tímto ovládacím prvkem se vybírá výchozí šířka čáry."
 
-#: C/glabels.xml:1972(para)
-msgid "y coordinate of 2nd endpoint of the line segment."
-msgstr "y-ová souřadnice konce úsečky"
+#: C/customize.page:111(p)
+msgid "This control selects the default line color."
+msgstr "Tímto ovládacím prvkem se vybírá výchozí barva čáry."
 
-#: C/glabels.xml:1982(title)
-msgid "Markup-circle Node"
-msgstr "Uzel Markup-circle"
+#: C/customize.page:117(title)
+msgid "Fill"
+msgstr "Výplň"
 
-#: C/glabels.xml:1984(para)
-msgid "A <emphasis>Markup-circle</emphasis> describes a markup circle."
+#: C/customize.page:118(p)
+msgid ""
+"Use this control to set the default fill property of new objects. This "
+"property is:"
 msgstr ""
-"Uzel <emphasis>Markup-circle</emphasis> popisuje značku v podobě kruhu."
-
-#: C/glabels.xml:2003(para) C/glabels.xml:2119(para)
-msgid "x0"
-msgstr "x0"
+"Použijte tyto ovládací prvky k nastavení výchozích vlastností výplně nových "
+"objektů. Tyto vlastnosti jsou:"
 
-#: C/glabels.xml:2005(para)
-msgid "x coordinate of circle origin (center)."
-msgstr "x-ová souřadnice středu kruhu"
+#: C/customize.page:123(p)
+msgid "This control selects the default fill color."
+msgstr "Tento ovládací prvek slouží k výběru výchozí barvy výplně."
 
-#: C/glabels.xml:2009(para) C/glabels.xml:2126(para)
-msgid "y0"
-msgstr "y0"
+#: C/createnew.page:9(desc)
+msgid "Create new objects within your document."
+msgstr "Jak vytvořit nový objekt ve vašich dokumentech."
 
-#: C/glabels.xml:2011(para)
-msgid "y coordinate of circle origin (center)."
-msgstr "y-ová souřadnice středu kruhu"
+#: C/createnew.page:25(title)
+msgid "To create new objects"
+msgstr "Vytváření nových objektů"
 
-#: C/glabels.xml:2016(para)
-msgid "Radius of circle."
-msgstr "Poloměr kruhu."
+#: C/createnew.page:27(p)
+msgid ""
+"Objects are created by choosing the appropriate selection under the "
+"<guiseq><gui>Objects</gui><gui>Create Object</gui></guiseq> submenu or the "
+"<gui>Drawing Toolbar</gui>. This will place the display area into object "
+"creation mode as indicated by its cursor. To return to the default object "
+"selection mode without creating an object, choose <guiseq><gui>Objects</"
+"gui><gui>Select Mode</gui></guiseq>. This will return the display area's "
+"cursor to the default selection arrow."
+msgstr ""
+"Objekty se vytvářejí příslušným výběrem v podnabídce <guiseq><gui>Objekty</"
+"gui><gui>Vytvořit</gui></guiseq> nebo na <gui>Liště kreslení</gui>. "
+"Zobrazovací oblast se přepne do režimu vytváření objektu, což je "
+"signalizováno patřičným ukazatelem. Do výchozího režimu výběru objektů se "
+"můžete vrátit, aniž byste nějaký objekt vytvořili, volbou "
+"<guiseq><gui>Objekty</gui><gui>Režim výběru</gui></guiseq>. Ukazatel pro "
+"zobrazovací oblast se změní zpět na výchozí šipku."
 
-#: C/glabels.xml:2025(title)
-msgid "Markup-rect Node"
-msgstr "Uzel Markup-rect"
+#: C/createnew.page:35(p)
+msgid "The following describes the object creation mode for each object type:"
+msgstr "Zde je popis režimu vytváření objektu pro jednotlivé typy objektů:"
 
-#: C/glabels.xml:2027(para)
-msgid "A <emphasis>Markup-rect</emphasis> describes a markup rectangle."
+#: C/createnew.page:40(p)
+msgid ""
+"Click the desired location of the upper left corner of the text object. New "
+"text objects are initialized with the string \"Text.\" To change this text, "
+"or other properties, see <link xref=\"editprop\"/>."
 msgstr ""
-"Uzel <emphasis>Markup-rect</emphasis> popisuje značku v podobě obdélníku."
-
-#: C/glabels.xml:2048(para)
-msgid "x coordinate of upper left corner of rectangle."
-msgstr "x-ová souřadnice levého horního rohu obdélníku."
+"Klikněte na požadované umístění levého horního rohu objektu text. Nový "
+"textový objekt se vytvoří s počátečním řetězcem „Text“. Jak tento text nebo "
+"další vlastnosti změnit uvádí <link xref=\"editprop\"/>."
 
-#: C/glabels.xml:2054(para)
-msgid "y coordinate of upper left corner of rectangle."
-msgstr "y-ová souřadnice levého horního rohu obdélníku."
+#: C/createnew.page:47(title)
+msgid "Box"
+msgstr "Obdélník"
 
-#: C/glabels.xml:2058(para)
-msgid "w"
-msgstr "w"
+#: C/createnew.page:48(p)
+msgid ""
+"Click the desired location of the upper left corner of the box object and "
+"drag to the desired location of the lower right corner. If you simply click "
+"in a single location, a square box will be created. To change properties of "
+"the box object, see <link xref=\"editprop\"/>."
+msgstr ""
+"Klikněte na požadované umístění levého horního rohu objektu obdélník a "
+"táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše "
+"kliknete na jednom místě, vytvoří se čtverec. Jak změnit vlastnosti "
+"obdélníku uvádí <link xref=\"editprop\"/>."
 
-#: C/glabels.xml:2060(para)
-msgid "Width of rectangle."
-msgstr "Šířka obdélníku."
+#: C/createnew.page:57(p)
+msgid ""
+"Click the desired location of one end of the line object and drag to the "
+"desired location of the other end. If you simply click in a single location, "
+"a diagonal line will be created. To change properties of the line object, "
+"see <link xref=\"editprop\"/>."
+msgstr ""
+"Klikněte na požadované umístění levého horního konce objektu čára a táhněte "
+"k požadovanému umístění pravého dolního konce. Když jednoduše kliknete na "
+"jednom místě, vytvoří diagonální úsečka. Jak změnit vlastnosti čáry uvádí "
+"<link xref=\"editprop\"/>."
 
-#: C/glabels.xml:2064(para)
-msgid "h"
-msgstr "h"
+#: C/createnew.page:65(title)
+msgid "Ellipse"
+msgstr "Elipsa"
 
-#: C/glabels.xml:2066(para)
-msgid "Height of rectangle."
-msgstr "Výška obdélníku."
+#: C/createnew.page:66(p)
+msgid ""
+"Click the desired location of the upper left corner of the ellipse object "
+"and drag to the desired location of the lower right corner. If you simply "
+"click in a single location, a circle will be created. To change properties "
+"of the ellipse object, see <link xref=\"editprop\"/>."
+msgstr ""
+"Klikněte na požadované umístění levého horního rohu objektu elipsa a táhněte "
+"k požadovanému umístění pravého dolního rohu. Když jednoduše kliknete na "
+"jednom místě, vytvoří se kruh. Jak změnit vlastnosti elipsy uvádí <link xref="
+"\"editprop\"/>."
 
-#: C/glabels.xml:2070(para)
-msgid "r"
-msgstr "r"
+#: C/createnew.page:74(title)
+msgid "Image"
+msgstr "Obrázek"
 
-#: C/glabels.xml:2071(para)
-msgid "Radius of rounded corners of rectangle."
-msgstr "Poloměr zakulacených rohů obdélníku."
+#: C/createnew.page:75(p)
+msgid ""
+"Click the desired location of the upper left corner of the image object and "
+"drag to the desired location of the lower right corner. If you simply click "
+"in a single location, a square will be created. New image objects are "
+"initialized with a simple checkerboard image. To change this image, or other "
+"properties of the image object, see <link xref=\"editprop\"/>."
+msgstr ""
+"Klikněte na požadované umístění levého horního rohu objektu obrázku a "
+"táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše "
+"kliknete na jednom místě, vytvoří se čtverec. Nový obrázkový objekt se "
+"vytvoří s jednoduchým počátečním obrázkem šachovnice. Jak změnit tento "
+"obrázek a další vlastnosti uvádí <link xref=\"editprop\"/>."
 
-#: C/glabels.xml:2080(title)
-msgid "Layout Node"
-msgstr "Uzel Layout"
+#: C/createnew.page:85(title)
+msgid "Barcode"
+msgstr "Čárový kód"
 
-#: C/glabels.xml:2082(para)
+#: C/createnew.page:86(p)
 msgid ""
-"A label node may contain multiple <emphasis>Layout</emphasis> children. If "
-"labels are arranged in a simple grid pattern, only one layout is needed. "
-"However, if labels are arranged in multiple grids, such as a running bond "
-"pattern, multiple <emphasis>layout</emphasis> tags can be used. Note: a "
-"single label can always be treated as a grid of one."
+"Click the desired location of the upper left corner of the barcode object. "
+"New barcode objects are initialized to a POSTNET barcode with representative "
+"data. To change data and properties of the barcode object, see <link xref="
+"\"editprop\"/>."
 msgstr ""
-"Uzel typu Label může obsahovat více potomků <emphasis>Layout</emphasis>. V "
-"případě, že jsou etikety rozmístěné do jednoduché pravidelné mřížky, "
-"postačuje jeden uzel Layout. Pokud ale jsou etikety rozmístěné ve více "
-"mřížkách, např. mají podobu cihlové zdi, musí se použít více značek "
-"<emphasis>layout</emphasis>. Poznámka: jedna etiketa může být vždy "
-"považována za mřížku s jednou buňkou."
-
-#: C/glabels.xml:2105(para)
-msgid "nx"
-msgstr "nx"
+"Klikněte na požadované umístění levého horního rohu objektu čárového kódu. "
+"Nový objekt čárového kódu se vytvoří jako čárový kód POSTNET s ukázkovými "
+"daty. Jak tato data nebo další vlastnosti změnit uvádí <link xref=\"editprop"
+"\"/>."
 
-#: C/glabels.xml:2107(para)
-msgid "Number of labels/cards across in the grid (horizontal)"
-msgstr "Počet etiket/vizitek v mřížce (vodorovně)"
+#: C/basicusage.page:9(desc)
+msgid "Handling files and quit the application."
+msgstr "Práce se soubory a ukončení aplikace."
 
-#: C/glabels.xml:2112(para)
-msgid "ny"
-msgstr "ny"
+#: C/basicusage.page:25(title)
+msgid "Basic usage"
+msgstr "Základy používání"
 
-#: C/glabels.xml:2114(para)
-msgid "Number of labels/cards up and down in the grid (vertical)"
-msgstr "Počet etiket/vizitek v mřížce (svisle)"
+#: C/basicusage.page:28(title)
+msgid "To open a file"
+msgstr "Jak otevřít soubor"
 
-#: C/glabels.xml:2121(para)
+#: C/basicusage.page:30(p)
 msgid ""
-"Distance from left edge of sheet to the left edge of the left column of "
-"cards/labels in the layout."
+"To open a file, choose <guiseq><gui>File</gui><gui>Open</gui></guiseq> to "
+"display the <gui>Open File</gui> dialog. Select the file that you want to "
+"open, then click <gui>OK</gui>. The file is displayed in the display area of "
+"the <app>gLabels</app> window."
 msgstr ""
-"Vzdálenost od levé hrany stránky k levé hraně levého sloupce etiket/vizitek "
-"v rozvržení."
+"Soubor otevřete pomocí volby <guiseq><gui>Soubor</gui><gui>Otevřít</gui></"
+"guiseq>, která zobrazí dialogové okno <gui>Otevření souboru</gui>. Vyberte "
+"soubor, který chcete otevřít a klikněte na <gui>OK</gui>. Soubor se zobrazí "
+"v zobrazovací oblasti okna <app>gLabels</app>."
 
-#: C/glabels.xml:2128(para)
+#: C/basicusage.page:37(p)
 msgid ""
-"Distance from the top edge of sheet to the top edge of the top row of labels/"
-"cards in the layout."
+"You can also open multiple files in <app>gLabels</app>. The application "
+"creates a separate application window for each open file."
 msgstr ""
-"Vzdálenost od horní hrany stránky k horní hraně horní řady etiket/vizitek v "
-"rozvržení."
+"V aplikaci <app>gLabels</app> můžete otevřít i více souborů naráz. Aplikace "
+"pro každý otevřený soubor vytvoří samostatné okno."
 
-#: C/glabels.xml:2133(para)
-msgid "dx"
-msgstr "dx"
+#: C/basicusage.page:41(p)
+msgid ""
+"The application records the paths and filenames of the most recent files "
+"that you have edited and displays the files as menu items on the "
+"<guiseq><gui>File</gui><gui>Recent Files</gui></guiseq> menu."
+msgstr ""
+"Pro soubory nedávno otevřené k úpravě si aplikace zaznamenává cesty a názvy "
+"a tyto soubory potom zobrazuje v nabídce <guiseq><gui>Soubor</"
+"gui><gui>Otevřít nedávné soubory</gui></guiseq>."
 
-#: C/glabels.xml:2134(para)
-msgid "Horizontal pitch of grid."
-msgstr "Vodorovná rozteč mřížky."
+#: C/basicusage.page:48(title)
+msgid "To close a file"
+msgstr "Jak zavřít soubor"
 
-#: C/glabels.xml:2137(para)
-msgid "dy"
-msgstr "dy"
+#: C/basicusage.page:50(p)
+msgid ""
+"To close the current document, choose <guiseq><gui>File</gui><gui>Close</"
+"gui></guiseq> to close the application window. If the current document is "
+"modified, a confirmation dialog will be presented, allowing you to save the "
+"document or cancel the command. If the window being closed is the only open "
+"window, <app>gLabels</app> will exit."
+msgstr ""
+"Když chcete aktuální dokument zavřít, zvolte <guiseq><gui>Soubor</"
+"gui><gui>Zavřít</gui></guiseq> a zavřete tím aplikační okno. Pokud byl "
+"aktuální dokument změněn, zobrazí se potvrzovací dialogové okno, kde můžete "
+"dokument uložit nebo příkaz zrušit. Pokud je zavírané okno jediné otevřené, "
+"ukončí se celá aplikace <app>gLabels</app>."
 
-#: C/glabels.xml:2138(para)
-msgid "Vertical pitch of grid."
-msgstr "Svislá rozteč mřížky."
+#: C/basicusage.page:60(title)
+msgid "To save a file"
+msgstr "Jak uložit soubor"
 
-#: C/glabels.xml:2146(title)
-msgid "Layout Parameters"
-msgstr "Parametry uzlu Layout"
+#: C/basicusage.page:62(p)
+msgid "You can save files in the following ways:"
+msgstr "Soubory můžete uložit následujícími způsoby:"
 
-#: C/glabels.xml:2160(title)
-msgid "Alias Node"
-msgstr "Uzel Alias"
+#: C/basicusage.page:66(p)
+msgid ""
+"To save changes to an existing file, choose <guiseq><gui>File</"
+"gui><gui>Save</gui></guiseq>."
+msgstr ""
+"Pro uložení změn do stávajícího souboru, zvolte <guiseq><gui>Soubor</"
+"gui><gui>Uložit</gui></guiseq>."
 
-#: C/glabels.xml:2162(para)
+#: C/basicusage.page:73(p)
 msgid ""
-"An <emphasis>Alias</emphasis> node provides the name of a product with the "
-"same size and layout characteristics as the parent template."
+"To save a new file or to save an existing file under a new filename, choose "
+"<guiseq><gui>File</gui><gui>Save As</gui></guiseq>. Enter a name for the "
+"file in the <gui>Save As</gui> dialog box, then click <gui>OK</gui>."
 msgstr ""
-"Uzel <emphasis>Alias</emphasis> uvádí názvy výrobků se stejnými rozměry a "
-"rozvržením, jako má rodičovská šablona."
+"Pro uložení nového souboru nebo uložení stávajícího souboru pod novým "
+"názvem, zvolte <guiseq><gui>Soubor</gui><gui>Uložit jako</gui></guiseq>. V "
+"dialogovém okně <gui>Uložení jako</gui> zadejte pro soubor název a klikněte "
+"na <gui>OK</gui>."
+
+#: C/basicusage.page:84(title)
+msgid "To quit <app>gLabels</app>"
+msgstr "Jak ukončit <application>gLabels</application>"
 
-#: C/glabels.xml:2184(para)
-msgid "The brand or manufacturer of the equivalent product."
-msgstr "Značka nebo výrobce odpovídajícího výrobku."
+#: C/basicusage.page:86(p)
+msgid ""
+"To quit <app>gLabels</app>, choose <guiseq><gui>File</gui><gui>Quit</gui></"
+"guiseq>. This is equivalent to closing all open windows. See <link xref="
+"\"basicusage#closefile\"/>."
+msgstr ""
+"Když chcete aplikaci <app>gLabels</app> ukončit, zvolte <guiseq><gui>Soubor</"
+"gui><gui>Ukončit</gui></guiseq>. Odpovídá to zavření všech otevřených oken. "
+"Viz <link xref=\"basicusage#closefile\"/>."
 
-#: C/glabels.xml:2190(para)
-msgid "The part number or name of the equivalent product."
-msgstr "Produktové číslo nebo název odpovídajícího výrobku."
+#: C/about.page:9(desc)
+msgid "Information about <app>gLabels</app>."
+msgstr "Informace o <app>gLabels</app>."
 
-#: C/glabels.xml:2226(title)
-msgid "About <application>gLabels</application>"
+#: C/about.page:25(title)
+msgid "About <app>gLabels</app>"
 msgstr "O aplikaci <application>gLabels</application>"
 
-#: C/glabels.xml:2227(para)
+#: C/about.page:27(p)
 msgid ""
-"<application>gLabels</application> was written by Jim Evins "
-"(<email>evins@snaught.com</email>). To find more information about "
-"<application>gLabels</application>, please visit the <ulink url=\"http://"
-"glabels.sourceforge.net\" type=\"http\">gLabels Web page</ulink>."
+"<app>gLabels</app> was written by <link href=\"mailto:evins@snaught.com"
+"\">Jim Evins</link>. To find more information about <app>gLabels</app>, "
+"please visit the <link href=\"http://glabels.org\" type=\"http"
+"\"><app>gLabels</app> Web page</link>."
 msgstr ""
-"Aplikaci <application>gLabels</application> napsal Jim Evins "
-"(<email>evins@snaught.com</email>).  Pokud chcete o aplikaci "
-"<application>gLabels</application> najít více informací, navštivte prosím "
-"<ulink url=\"http://glabels.sourceforge.net\" type=\"http\">webovou stránku "
-"gLabels</ulink>."
+"Aplikaci <app>gLabels</app> napsal <link href=\"mailto:evins@snaught.com"
+"\">Jim Evins</link>. Pokud o ní chcete najít více informací, navštivte "
+"prosím <link href=\"http://glabels.org\" type=\"http\">webovou stránku "
+"<app>gLabels</app></ulink>."
 
-#: C/glabels.xml:2232(para)
+#: C/about.page:31(p)
 msgid ""
 "To report a bug or make a suggestion regarding this application or this "
-"manual, follow the directions at the <ulink url=\"http://glabels.sourceforge."
-"net/contact/\" type=\"http\"><application>gLabels</application> Contact "
-"Page</ulink>."
+"manual, follow the directions at the <link href=\"http://glabels.org/contact/"
+"\" type=\"http\"><app>gLabels</app> Contact Page</link>."
 msgstr ""
 "Pokud chcete oznámit chybu nebo navrhnout vylepšení vztahující se k této "
-"aplikaci nebo této příručce, postupujte dle instrukcí na <ulink url=\"http://"
-"glabels.sourceforge.net/contact/\" type=\"http\">kontaktní stránce "
-"<application>gLabels</application></ulink>."
+"aplikaci nebo této příručce, postupujte dle instrukcí na <link href=\"http://"
+"glabels.org/contact/\" type=\"http\">kontaktní stránce <app>gLabels</app></"
+"ulink>."
 
-#: C/glabels.xml:2238(para)
+#: C/about.page:37(p)
 msgid ""
 "This program is distributed under the terms of the GNU General Public "
-"license as published by the Free Software Foundation; either version 2 of "
+"license as published by the Free Software Foundation; either version 3 of "
 "the License, or (at your option) any later version. A copy of this license "
-"can be found at this <ulink url=\"ghelp:gpl\" type=\"help\">link</ulink>, or "
+"can be found at this <link href=\"ghelp:gpl\" type=\"help\">link</link>, or "
 "in the file COPYING included with the source code of this program."
 msgstr ""
 "Tento program je šířen podle ustanovení GNU General Public License, vydávané "
-"Free Software Foundation; a to buď verze 2 této licence anebo (podle "
+"Free Software Foundation; a to buď verze 3 této licence anebo (podle "
 "vlastního uvážení) kterékoliv pozdější verze. Kopii této licence naleznete "
-"pod tímto <ulink url=\"ghelp:gpl\" type=\"help\">odkazem</ulink> nebo v "
+"pod tímto <link href=\"ghelp:gpl\" type=\"help\">odkazem</link> nebo v "
 "souboru COPYING přiloženém ke zdrojovým kódům tohoto programu. "
 
 #. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2
-#: C/glabels.xml:0(None)
+#: C/index.page:0(None)
 msgid "translator-credits"
-msgstr "Marek Černocký <marek@manet.cz>, 2010"
-
+msgstr "Marek Černocký <marek@manet.cz>, 2010 – 2011"
diff --git a/help/cs/customize.page b/help/cs/customize.page
new file mode 100644 (file)
index 0000000..c9b1c97
--- /dev/null
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="customize" xml:lang="cs">
+
+  <info>
+    <link type="guide" xref="index#advanced"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Přizpůsobte si aplikaci <app>gLabels</app> svým potřebám.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+    
+  <!-- ============= Customization ============================= -->
+  <!-- Use this section to describe how to customize the application. -->
+    <title>Nastavení</title> 
+    <p>Když chcete v aplikaci <app>gLabels</app> změnit nastavení, zvolte <guiseq><gui>Upravit</gui><gui>Předvolby</gui></guiseq>. Dialogové okno <gui>Předvolby gLabels</gui> obsahuje následující karty:</p>
+
+  <section id="prefs-locale" style="2column">
+    <title>Národní prostředí</title>
+       <section>
+       <title>Jednotky</title>
+       <p>Tento skupinový přepínač použijte k určení svých upřednostňovaných jednotek. Vyberte jednu z následujících možností:</p>
+          <list>
+               <item>
+               <p><gui>Body</gui></p>
+               <p>Použít body (1 bod = 1/72 palce = 0,352778 mm).</p>
+               </item>
+               <item>
+               <p><gui>Palce</gui></p>
+               <p>Použít palce (1 palec = 25,4 mm).</p>
+               </item>
+               <item>
+               <p><gui>Milimetry</gui></p>
+               <p>Použít milimetry.</p>
+               </item>
+          </list>
+          <p>Výchozí : <gui>Palce</gui>.</p>
+       </section>
+
+       <section>
+       <title>Výchozí velikost stránky</title>
+       <p>Tento skupinový přepínač použijte k určení své upřednostňované velikosti stránky. Urychlí vám to hledání typu média při vytváření nové etikety nebo vizitky.</p>
+          <list>
+               <item>
+               <p><gui>US Letter</gui></p>
+               <p>Většina vašich médií má velikost stránky US Letter (8,5 × 11 palců).</p>
+               </item>
+               <item>
+               <p><gui>ISO A4</gui></p>
+               <p>Většina vašich médií má velikost stránky ISO A4 (210 × 297 mm).</p>
+               </item>
+          </list>
+          <p>Výchozí: <gui>US Letter</gui>.</p>              
+       </section>
+    </section>
+
+  <section id="prefs-defaults" style="2column">
+    <title>Výchozí hodnoty objektů</title>
+
+       <section>
+       <title>Text</title>
+       <p>Použijte tyto ovládací prvky k nastavení výchozích vlastností nových textových objektů. Tyto vlastnosti jsou:</p>
+          <list>
+               <item>
+               <p><gui>Písmo</gui></p>
+               <p>Tyto ovládací prvky slouží k nastavení rodiny písma a velikosti písma a zda by mělo být písmo tučné nebo kurzívou.</p>
+               </item>
+               <item>
+               <p><gui>Barva</gui></p>
+               <p>Tímto ovládacím prvkem se vybírá výchozí barva textu.</p>
+               </item>
+               <item>
+               <p><gui>Zarovnání</gui></p>
+               <p>Tyto ovládací prvky slouží k výběru výchozího zarovnání textu (vlevo, na střed nebo vpravo).</p>
+               </item>
+          </list>
+       </section>
+
+       <section>
+       <title>Čára</title>
+       <p>Použijte tyto ovládací prvky k nastavení výchozích vlastností čar a obrysů nových objektů. Tyto vlastnosti jsou:</p>
+          <list>
+               <item>
+               <p><gui>Šířka</gui></p>
+               <p>Tímto ovládacím prvkem se vybírá výchozí šířka čáry.</p>
+               </item>
+               <item>
+               <p><gui>Barva</gui></p>
+               <p>Tímto ovládacím prvkem se vybírá výchozí barva čáry.</p>
+               </item>
+          </list>
+       </section>
+
+       <section>
+       <title>Výplň</title>
+       <p>Použijte tyto ovládací prvky k nastavení výchozích vlastností výplně nových objektů. Tyto vlastnosti jsou:</p>
+          <list>
+               <item>
+               <p><gui>Barva</gui></p>
+               <p>Tento ovládací prvek slouží k výběru výchozí barvy výplně.</p>
+               </item>
+          </list>
+       </section>
+       </section>
+
+</page>
diff --git a/help/cs/customtemplate.page b/help/cs/customtemplate.page
new file mode 100644 (file)
index 0000000..8254c9a
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="customtemplate" xml:lang="cs">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Jak vytvořit vlastní šablonu pro papírové výrobky.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Vytvoření vlastní šablony</title>
+
+      <p>Když chcete vytvořit novou vlastní šablonu, zvolte <guiseq><gui>Soubor</gui><gui>Návrhář šablon…</gui></guiseq> a zobrazí se dialogové okno <gui>Návrhář šablon gLabels</gui>. Toto dialogové okno vás provede vytvořením vlastní šablony pro většinu typů etiket nebo vizitek, se kterými se můžete setkat.</p>
+
+      <p>Pokud dáváte přednost ručnímu vytvoření šablon, přečtěte si <link xref="mancreate"/></p>
+
+</page>
diff --git a/help/cs/editprop.page b/help/cs/editprop.page
new file mode 100644 (file)
index 0000000..d5d8019
--- /dev/null
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="editprop" xml:lang="cs">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Jak upravit vlastnosti objektu.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Změna vlastností objektů</title>
+
+    <section id="glabels-object-properties">
+
+      <p>Většinu vlastností objektů lze upravit přes editor objektů v postranní liště, který je vyobrazený níže. Abyste mohli editor objektů používat, musíte nejdříve vybrat jeden objekt. Viz <link xref="select"/>.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/object-editor-sidebar.png" mime="image/png" style="right">
+               <p>Ovládací prvky tisku kopií</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Editor objektů bude obsahovat některé z následujících karet, které závisí na typu objektu:</p>
+
+      <section id="object-editor-text">
+       <title>Karta Text (textové objekty)</title>
+
+       <p>Tato karta obsahuje malý editor na úpravu obsahu textového objektu. Rovněž obsahuje vyskakovací nabídku dostupných klíčů slučování dokumentů, které lze do textu vkládat.</p>
+
+      </section>
+
+      <section id="object-editor-image">
+       <title>Karta Obrázek (obrázkové objekty)</title>
+
+       <p>Tato karta obsahuje pole na zadání souboru s obrázkem. Přes tlačítko procházení můžete soubor snadno najít. Druhou možností je použití klíče pro slučování dokumentů, který poskytne název souboru až během tisku.</p>
+
+      </section>
+
+      <section id="object-editor-data">
+       <title>Karta Data (objekty čárových kódů)</title>
+
+       <p>Tato karta obsahuje textové pole na zadání dat pro čárový kód. Druhou možností je použití klíče pro slučování dokumentů, přes který jsou data poskytována až během tisku.</p>
+
+      </section>
+
+      <section id="object-editor-style">
+       <title>Karta Styl (textové objekty)</title>
+
+       <p>Tato karta obsahuje ovládací prvky na výběr vlastností textu, včetně typu písma, velikosti písma, tloušťky písma, barvy a zarovnání textu.</p>
+
+      </section>
+
+      <section id="object-editor-barcode">
+       <title>Karta Styl (objekty čárových kódů)</title>
+
+       <p>Tato karta obsahuje ovládací prvky na výběr vlastností čárového kódu, včetně stylu čárového kódu, barvy, zda tisknout text a zda vkládat číslo s kontrolním součtem.</p>
+
+      </section>
+
+      <section id="object-editor-line">
+       <title>Karta Čára</title>
+
+       <p>Tato karta obsahuje ovládací prvky na výběr vlastností čar a obrysů. Tyto vlastnosti zahrnují tloušťku čáry a její barvu.</p>
+
+      </section>
+
+      <section id="object-editor-fill">
+       <title>Karta Výplň</title>
+
+       <p>Tato karta obsahuje ovládací prvky na výběr vlastností výplně objektů obdélníků a elips. V současnosti obsahuje pouze barvu výplně.</p>
+
+      </section>
+
+      <section id="object-editor-size">
+       <title>Karta Velikost (všechny objekty vyjma čar)</title>
+
+       <p>Tato karta obsahuje ovládací prvky na výběr šířky a výšky objektu. K dispozici je zaškrtávací pole, kterým můžete zamknout poměr stran během úprav šířky a výšky. U obrázků je k dispozici rovněž tlačítko, kterým můžete nastavit reálné rozměry obrázku (předpokládá se 72 DPI).</p>
+
+      </section>
+
+      <section id="object-editor-size-line">
+       <title>Karta Velikost (objekty čar)</title>
+
+       <p>Tato karta obsahuje ovládací prvky pro výběr délky a úhlu čáry.</p>
+
+      </section>
+
+      <section id="object-editor-position">
+       <title>Karta Pozice</title>
+
+       <p>Tato karta obsahuje ovládací prvky pro změnu pozice objektu.</p>
+
+      </section>
+
+
+      <section id="object-editor-shadow">
+       <title>Karta Stín (všechny objekty vyjma čárových kódů)</title>
+
+       <p>Tato karta obsahuje ovládací prvky pro přidání stínu k objektu.</p>
+
+      </section>
+
+
+    </section>
+
+<!-- ============= Other Manipulations of Objects ========= -->
+    <section id="glabels-object-manipulation"> 
+      <title>Ostatní manipulace s objekty</title>
+
+      <p>S objekty lze manipulovat ještě následujícími způsoby:</p>
+
+      <section id="other-moving-resizing">
+       <title>Přesouvání a změna velikosti objektů</title>
+
+       <p>Objekty lze přesunout kliknutím na vybraný objekt a tažením objektu na nové místo. Pokud je objekt součástí skupiny označených objektů, budou se s objektem přesouvat všechny vybrané objekty, ale jejich vzájemná pozice zůstane zachovaná. Pokud není žádný objekt vybraný, kliknutí na objekt provede nový výběr tohoto objektu. Viz <link xref="select"/>.</p>
+
+       <p>U vybraných objektů můžete měnit jejich velikost kliknutím na úchyt pro změnu velikosti a jeho tažením tak, abyste dosáhli správné velikost.</p>
+
+      </section>
+
+      <section id="other-stacking-order">
+       <title>Změna pořadí objektů</title>
+
+       <p>Pořadí objektů představuje jejich relativní polohu v ose z. Prakticky to určuje při překrývání objektů, který z nich bude nahoře a který vespod. Standardně se nové objekty vytvářejí nad staršími objekty. Když chcete toto pořadí změnit, jeden nebo více objektů vyberte a zvolte <guiseq><gui>Objekty</gui><gui>Pořadí</gui><gui>Přenést dopředu</gui></guiseq> pro vynesení výběru na nejvyšší pozici nebo <guiseq><gui>Objekty</gui><gui>Pořadí</gui><gui>Odsunout dozadu</gui></guiseq> pro zatlačení výběru úplně dospod. Tyto položky nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací oblasti za předpokladu, že jsou vybrané nějaké objekty.</p>
+
+      </section>
+
+      <section id="other-rotating-flipping">
+       <title>Otáčení a překlápění objektů</title>
+
+       <p>Objekty lze otáčet po 90stupňových krocích v obou směrech nebo je překlápět svisle či vodorovně a to volbou příslušné položky v podnabídce <guiseq><gui>Objekty</gui><gui>Otočit/Překlopit</gui></guiseq>. Tyto položky nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací oblasti za předpokladu, že jsou vybrané nějaké objekty.</p>
+
+         <note>
+         <p>Tato funkce je užitečná, když navrhujete vložky do krabičky na CD. Pro text na hřbetu potřebujete svisle uspořádaný text. Po té co vytvoříte rámec se základním textem, zvolte <guiseq><gui>Objekty</gui><gui>Otočit/překlopit</gui></guiseq>, abyste textový rámec natočili podle svých požadavků.</p>
+         </note>
+
+      </section>
+
+      <section id="other-alignment">
+       <title>Zarovnávání objektů</title>
+
+       <p>Objekty lze zarovnávat vodorovně nebo svisle, relativně vůči sobě nebo relativně ke středové čáře etikety, volbou příslušné položky z podnabídky <guiseq><gui>Objekty</gui><gui>Zarovnat vodorovně</gui></guiseq> nebo <guiseq><gui>Objekty</gui><gui>Zarovnat svisle</gui></guiseq>. Tyto položky nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací oblasti za předpokladu, že jsou vybrané nějaké objekty.</p>
+
+      </section>
+
+      <section id="other-property-bar">
+       <title>Používání lišty vlastností</title>
+
+       <p>Lištu vlastností lze použít ke změně některých běžných vlastností objektů jako celku. Tyto vlastnosti zahrnují typ písma, velikost písma, tloušťku písma, zarovnání textu, barvu textu, barvu výplně, barvu čáry nebo obrysu a tloušťku čáry. Přes panel vlastností může také zadat výchozí hodnoty těchto vlastností pro nově vytvářené objekty.</p>
+
+      </section>
+
+
+
+    </section>
+
+</page>
diff --git a/help/cs/figures/main-window-empty.png b/help/cs/figures/main-window-empty.png
deleted file mode 100644 (file)
index f9157f9..0000000
Binary files a/help/cs/figures/main-window-empty.png and /dev/null differ
index 49a24b62934f239204cd8f956eadceb4b620fa13..1cca1dd147207ee356bed523955bc83c750c9881 100644 (file)
Binary files a/help/cs/figures/merge-ex1-1.png and b/help/cs/figures/merge-ex1-1.png differ
index 855a1c1fe6ded7c17031853f16f9414b3336380e..2a94e80e356b38a1d069cd743416d0c29a552a36 100644 (file)
Binary files a/help/cs/figures/merge-ex2-1.png and b/help/cs/figures/merge-ex2-1.png differ
index f09cd2b1d954c65a314e70ea4d3635f479e05cad..3ba9c32f8775716e9252e8935b17751665a44d34 100644 (file)
Binary files a/help/cs/figures/object-editor-sidebar.png and b/help/cs/figures/object-editor-sidebar.png differ
index 9befecede93ad33b98de51fb3a02bab41be45026..c47473710e5ae06089d8cb255adea84b33529835 100644 (file)
Binary files a/help/cs/figures/print-copies.png and b/help/cs/figures/print-copies.png differ
index 30f417aed970829bb7e5cba10707cc968c028870..9bfda964bd507e0d5eaac238b9ae6182702134db 100644 (file)
Binary files a/help/cs/figures/print-merge.png and b/help/cs/figures/print-merge.png differ
diff --git a/help/cs/figures/skip-fields-output.png b/help/cs/figures/skip-fields-output.png
new file mode 100644 (file)
index 0000000..48eb238
Binary files /dev/null and b/help/cs/figures/skip-fields-output.png differ
diff --git a/help/cs/figures/skip-fields-screenshot.png b/help/cs/figures/skip-fields-screenshot.png
new file mode 100644 (file)
index 0000000..95e944b
Binary files /dev/null and b/help/cs/figures/skip-fields-screenshot.png differ
diff --git a/help/cs/glabels.xml b/help/cs/glabels.xml
deleted file mode 100644 (file)
index 82202da..0000000
+++ /dev/null
@@ -1,1776 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
-<!ENTITY legal SYSTEM "legal.xml">
-<!ENTITY appversion "2.2.6">
-<!ENTITY manrevision "2.2.6">
-<!ENTITY date "December 2007">
-<!ENTITY app "<application>gLabels</application>">
-<!-- Information about the entities
-       The legal.xml file contains legal information, there is no need to edit the file. 
-       Use the appversion entity to specify the version of the application.
-       Use the manrevision entity to specify the revision number of this manual.
-       Use the date entity to specify the release date of this manual.
-       Use the app entity to specify the name of the application. -->]>
-<!-- 
-      (Do not remove this comment block.)
-  Maintained by the GNOME Documentation Project
-  http://developer.gnome.org/projects/gdp
-  Template version: 2.0 beta
-  Template last modified Apr 11, 2002
--->
-<!-- =============Document Header ============================= -->
-<article id="index" lang="cs">
-<!-- please do not change the id; for translations, change lang to -->
-<!-- appropriate code -->
-  <articleinfo> 
-    <title>Příručka V2.2.6 k aplikaci <application>gLabels</application></title>       
-       <abstract role="description">
-       <para>Uživatelská příručka k aplikaci <application>gLabels</application> na vytváření etiket a vizitek</para>
-    </abstract>
-    <copyright> 
-      <year>2003-2009</year> 
-      <holder>Jim Evins</holder> 
-    </copyright><copyright><year>2010</year><holder>Marek Černocký (marek@manet.cz)</holder></copyright>
-       <publisher> 
-               <publishername>Jim Evins</publishername> 
-       </publisher> 
-
-     <legalnotice id="legalnotice">
-       <para>Je povoleno kopírovat, šířit a/nebo upravovat tento dokument za podmínek GNU Free Documentation License, verze 1.1 nebo jakékoli další verze vydané nadací Free Software Foundation; bez neměnných oddílů, bez textů předních desek a bez textů zadních desek. Kopie této licence je zahrnuta v oddílu jménem <ulink type="help" url="ghelp:fdl">GNU Free Documentation License</ulink> nebo v souboru COPYING-DOCS dodávaném s touto příručkou.</para>
-         <para>Tato příručka je součástí kolekce příruček GNOME, distribuovaných pod licencí GNU FDL. Pokud chcete tento dokument šířit odděleně od kolekce, musíte přiložit kopii licence dle popisu v sekci 6 dané licence.</para>
-
-       <para>Mnoho užívaných jmen určených k zviditelnění produktů nebo služeb jsou ochranné známky. Na místech, kde jsou tato jména v dokumentaci užita a členové Dokumentačního projektu GNOME jsou si vědomi skutečnosti, že se jedná o ochrannou známku, je takové jméno psáno velkými písmeny celé nebo s velkým písmenem na začátku.</para>
-
-       <para>DOKUMENT A JEHO UPRAVENÉ VERZE JSOU ŠÍŘENY V SOULADU SE ZNĚNÍM LICENCE GNU FREE DOCUMENTATION LICENSE S NÁSLEDUJÍCÍM USTANOVENÍM: <orderedlist>
-               <listitem>
-                 <para>DOKUMENT JE POSKYTOVÁN V PODOBĚ „JAK JE“ BEZ ZÁRUKY V JAKÉKOLIV PODOBĚ, NEPOSKYTUJÍ SE ANI ODVOZENÉ ZÁRUKY, ZÁRUKY, ŽE DOKUMENT, NEBO JEHO UPRAVENÁ VERZE, JE BEZCHYBNÝ NEBO ZÁRUKY PRODEJNOSTI, VHODNOSTI PRO URČITÝ ÚČEL NEBO NEPORUŠENOSTI. RIZIKO NEKVALITY, NEPŘESNOSTI A ŠPATNÉHO PROVEDENÍ DOKUMENTU, NEBO JEHO UPRAVENÉ VERZE, LEŽÍ NA VÁS. POKUD KVŮLI TOMUTO DOKUMENTU, NEBO JEHO UPRAVENÉ VERZI, NASTANE PROBLÉM, VY (NIKOLIV PŮVODNÍ AUTOR NEBO JAKÝKOLIV PŘISPĚVATEL) PŘEBÍRÁTE JAKÉKOLIV NÁKLADY ZA NUTNÉ ÚPRAVY, OPRAVY ČI SLUŽBY. TOTO PROHLÁŠENÍ O ZÁRUCE PŘEDSTAVUJE ZÁKLADNÍ SOUČÁST TÉTO LICENCE. BEZ TOHOTO PROHLÁŠENÍ NENÍ, PODLE TÉTO DOHODY, POVOLENO UŽÍVÁNÍ ANI ÚPRAVY TOHOTO DOKUMENTU; DÁLE</para>
-               </listitem>
-               <listitem>
-                 <para>ZA ŽÁDNÝCH OKOLNOSTÍ A ŽÁDNÝCH PRÁVNÍCH PŘEDPOKLADŮ, AŤ SE JEDNÁ O PŘEČIN (VČETNĚ NEDBALOSTNÍCH), SMLOUVU NEBO JINÉ, NENÍ AUTOR, PŮVODNÍ PISATEL, KTERÝKOLIV PŘISPĚVATEL NEBO KTERÝKOLIV DISTRIBUTOR TOHOTO DOKUMENTU NEBO UPRAVENÉ VERZE DOKUMENTU NEBO KTERÝKOLIV DODAVATEL NĚKTERÉ Z TĚCHTO STRAN ODPOVĚDNÝ NĚJAKÉ OSOBĚ ZA PŘÍMÉ, NEPŘÍMÉ, SPECIÁLNÍ, NAHODILÉ NEBO NÁSLEDNÉ ŠKODY JAKÉHOKOLIV CHARAKTERU, VČETNĚ, ALE NEJEN, ZA POŠKOZENÍ ZE ZTRÁTY DOBRÉHO JMÉNA, PŘERUŠENÍ PRÁCE, PORUCHY NEBO NESPRÁVNÉ FUNKCE POČÍTAČE NEBO JINÉHO A VŠECH DALŠÍCH ŠKOD NEBO ZTRÁT VYVSTÁVAJÍCÍCH Z NEBO VZTAHUJÍCÍCH SE K POUŽÍVÁNÍ TOHOTO DOKUMENTU NEBO UPRAVENÝCH VERZÍ DOKUMENTU, I KDYŽ BY TAKOVÁTO STRANA BYLA INFORMOVANÁ O MOŽNOSTI TAKOVÉHOTO POŠKOZENÍ.</para>
-               </listitem>
-         </orderedlist></para>
-  </legalnotice>
-
-
-   <!-- This file  contains link to license for the documentation (GNU FDL), and 
-        other legal stuff such as "NO WARRANTY" statement. Please do not change 
-       any of this. -->
-
-    <authorgroup> 
-      <author role="maintainer"> 
-               <firstname>Jim</firstname> 
-               <surname>Evins</surname> 
-      </author> 
-      
-<!-- This is appropriate place for other contributors: translators,
-     maintainers,  etc. Commented out by default.
-     
-      <othercredit role="translator">
-               <firstname>Latin</firstname> 
-               <surname>Translator 1</surname> 
-               <affiliation> 
-                       <orgname>Latin Translation Team</orgname> 
-                       <address> <email>translator@gnome.org</email> </address> 
-               </affiliation>
-               <contrib>Latin translation</contrib>
-      </othercredit>
--->
-    </authorgroup>
-
-
-<!-- According to GNU FDL, revision history is mandatory if you are -->
-<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
-<!-- Remember to remove the &manrevision; entity from the revision entries other
--->
-<!-- than the current revision. -->
-<!-- The revision numbering system for GNOME manuals is as follows: -->
-<!-- * the revision number consists of two components -->
-<!-- * the first component of the revision number reflects the release version of the GNOME desktop. -->
-<!-- * the second component of the revision number is a decimal unit that is incremented with each revision of the manual. -->
-<!-- For example, if the GNOME desktop release is V2.x, the first version of the manual that -->
-<!-- is written in that desktop timeframe is V2.0, the second version of the manual is V2.1, etc. -->
-<!-- When the desktop release version changes to V3.x, the revision number of the manual changes -->
-<!-- to V3.0, and so on. -->  
-    <revhistory>
-      <revision> 
-               <revnumber>Příručka V2.2.6 k aplikaci gLabels</revnumber> 
-               <date>Říjen 2009</date> 
-               <revdescription> 
-                       <para role="author">Mario Blättermann <email>mariobl@gnome.org</email></para>
-                       <para role="publisher">Jim Evins</para>
-               </revdescription> 
-      </revision> 
-      <revision> 
-               <revnumber>Příručka V2.2 k aplikaci gLabels</revnumber> 
-               <date>Prosinec 2007</date> 
-               <revdescription> 
-                       <para role="author">Jim Evins <email>evins@snaught.com</email></para>
-                       <para role="publisher">Jim Evins</para>
-               </revdescription> 
-      </revision> 
-    </revhistory> 
-
-    <releaseinfo>Tato příručka popisuje aplikaci <application>gLabels</application> ve verzi 2.2.6.</releaseinfo> 
-    <legalnotice> 
-      <title>Ohlasy</title> 
-      <para>Pokud chcete oznámit chybu nebo navrhnout vylepšení vztahující se k aplikaci <application>gLabels</application> nebo této příručce, postupujte dle instrukcí na <ulink url="http://glabels.sourceforge.net/contact/" type="http">kontaktní stránce <application>gLabels</application></ulink>.</para>
-<!-- Translators may also add here feedback address for translations -->
-    </legalnotice> 
-  </articleinfo> 
-
-  <indexterm zone="index"> 
-    <primary>gLabels</primary> 
-  </indexterm> 
-  <indexterm zone="index"> 
-    <primary>glabels</primary> 
-  </indexterm>
-
-
-
-
-<!-- ============= Document Body ============================= -->
-<!-- ============= Introduction ============================== -->
-<!-- Use the Introduction section to give a brief overview of what
-     the application is and what it does. -->
-  <sect1 id="glabels-introduction"> 
-    <title>Úvod</title> 
-
-    <para>Aplikace <application>gLabels</application> je jednoduchý program na vytváření etiket a vizitek pro <systemitem>pracovní prostředí GNOME</systemitem>. Je navržená pro práci s různými samolepicími etiketami a vizitkami rozmístěnými na listech pro laserový/inkoustový tisk, které najdete v každém obchodě s kancelářskými potřebami.</para>
-
-  </sect1>
-
-
-
-
-<!-- =========== Getting Started ============================== -->
-<!-- Use the Getting Started section to describe the steps required
-     to start the application and to describe the user interface components
-     of the application. If there is other information that it is important
-     for readers to know before they start using the application, you should
-     also include this information here. 
-     If the information about how to get started is very short, you can 
-     include it in the Introduction and omit this section. -->
-
-  <sect1 id="glabels-getting-started"> 
-    <title>Začínáme</title> 
-
-    <sect2 id="glabels-start">
-    <title>Jak spustit aplikaci <application>gLabels</application></title>
-    <para>Aplikaci <application>gLabels</application> můžete spustit následujícími způsoby:</para> 
-    <variablelist>
-       <varlistentry>
-               <term>Nabídka <guimenu>Aplikace</guimenu></term>
-               <listitem>
-               <para>Zvolte <menuchoice><guisubmenu>Kancelář</guisubmenu><guimenuitem>Návrhář etiket gLabels</guimenuitem></menuchoice>.</para>
-               </listitem>
-       </varlistentry>
-       <varlistentry>
-               <term>Příkazový řádek</term>
-               <listitem>
-               <para>Napište příkaz <command>glabels</command> a zmáčkněte <keycap>Enter</keycap>:</para>
-               </listitem>
-       </varlistentry>
-    </variablelist>
-    </sect2>
-
-    <sect2 id="glabels-when-start">
-    <title>Když spustíte aplikaci <application>gLabels</application></title>
-    <para>Když spustíte aplikaci <application>gLabels</application>, zobrazí se následující okno.</para>
-
-    <!-- ==== Figure ==== -->
-      <figure id="mainwindow-fig"> 
-       <title>Okno <application>gLabels</application> po spuštění</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/main-window-empty.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-    <!-- ==== End of Figure ==== -->
-
-    <!-- Include any descriptions of the GUI immediately after the screenshot of the main UI, -->
-    <!-- for example, the items on the menubar and on the toolbar. This section is optional. -->
-
-    <para>Okno <application>gLabels</application> obsahuje následující části:</para>
-      <variablelist>
-       <varlistentry>
-       <term>Panel nabídek.</term>
-       <listitem>
-           <para>Nabídky v panelu nabídek obsahují všechny příkazy potřebné k vytváření a úpravám etiket a vizitek v aplikaci <application>gLabels</application>.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Hlavní panel nástrojů.</term>
-       <listitem>
-           <para>Hlavní panel nástrojů obsahuje podmnožinu běžných příkazů pro práci se soubory a k úpravám z těch, které jsou dostupné v panelu nabídek.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Panel kreslení.</term>
-       <listitem>
-           <para>Panel kreslení obsahuje podmnožinu běžných příkazů k úpravám aktuálního dokumentu <application>gLabels</application>.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Zobrazovací oblast</term>
-       <listitem>
-           <para>Zobrazovací oblast je hlavní rozhraní aplikace <application>gLabels</application> sloužící ke kreslení.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Postranní panel objektů.</term>
-       <listitem>
-           <para>Postranní panel objektů poskytuje rozhraní na prohlížení a úpravu všech vlastností jednotlivých objektů.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Panel vlastností.</term>
-       <listitem>
-           <para>Panel vlastností obsahuje sadu nástrojů na úpravu vlastností vybraných objektů a nastavení výchozích vlastností pro nové objekty.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Stavový panel.</term>
-       <listitem>
-           <para>Stavový panel zobrazuje informace o aktuální činnosti aplikace <application>gLabels</application> a kontextové informace o položkách nabídky.</para>
-       </listitem>
-       </varlistentry>
-       </variablelist>
-    </sect2>
-  </sect1>
-
-
-
-
-<!-- ================ Usage ================================ -->
-<!-- Use this section to describe how to use the application to perform the tasks for 
-  which the application is designed. -->
-  <sect1 id="glabels-usage"> 
-    <title>Použití</title> 
-
-<!-- ============= To create a new file ============================= -->
-    <sect2 id="glabels-open-new"> 
-      <title>Jak vytvořit novou etiketu nebo vizitku</title>
-
-      <para>Když chcete vytvořit novou etiketu nebo vizitku, zvolte <menuchoice><guimenu>Soubor</guimenu><guimenuitem>Nový</guimenuitem></menuchoice> a zobrazí se dialogové okno <guilabel>Nová etiketa či vizitka</guilabel>. Vyberte pro nový dokument typ média a orientaci a klikněte na <guibutton>OK</guibutton>. Nový dokument se zobrazí v zobrazovací oblasti okna <application>gLabels</application>.</para>
-
-      <para>V případě, že vaše konkrétní médium v tomto dialogovém okně schází, přečtěte si <xref linkend="glabels-create-template"/>.</para>
-
-    </sect2>
-
-<!-- ============= To Open a File ============================= -->
-    <sect2 id="glabels-open-file"> 
-      <title>Jak otevřít soubor</title>
-
-      <para>Soubor otevřete pomocí volby <menuchoice><guimenu>Soubor</guimenu><guimenuitem>Otevřít</guimenuitem></menuchoice>, která zobrazí dialogové okno <guilabel>Otevření souboru</guilabel>. Vyberte soubor, který chcete otevřít a klikněte na <guibutton>OK</guibutton>. Soubor se zobrazí v zobrazovací oblasti okna <application>gLabels</application>.</para>
-
-      <para>V aplikaci <application>gLabels</application> můžete otevřít i více souborů naráz. Aplikace pro každý otevřený soubor vytvoří zvláštní okno.</para>
-
-      <para>Pro soubory nedávno otevřené k úpravě si aplikace zaznamenává cesty a názvy a tyto soubory potom zobrazuje v nabídce <menuchoice><guimenu>Soubor</guimenu><guisubmenu>Otevřít nedávné soubory</guisubmenu></menuchoice>.</para>
-
-    </sect2>
-
-<!-- ============= To Open Multiple Files from the Command Line ========= -->
-    <sect2 id="glabels-run-from-cmd-line"> 
-      <title>Jak otevřít více souborů z příkazové řádky</title>
-
-      <para>Aplikaci <application>gLabels</application> můžete spustit z příkazového řádku a otevřít při tom jeden nebo více souborů. Pokud chcete otevřít z příkazového řádku více souborů, napište následující příkaz a zmáčkněte <keycap>Enter</keycap>:</para>
-
-      <para><command>glabels <replaceable>soubor1.glabels soubor2.glabels soubor3.glabels</replaceable></command></para>
-
-      <para>Po spuštění aplikace se každý ze zadaných souborů zobrazí ve zvláštním okně <application>gLabels</application>.</para>
-
-    </sect2>
-
-<!-- ============= To Save a File ========= -->
-    <sect2 id="glabels-save-file"> 
-      <title>Jak uložit soubor</title>
-
-      <para>Soubory můžete uložit následujícími způsoby:</para>
-
-      <itemizedlist> 
-       <listitem>
-
-         <para>Pro uložení změn do stávajícího souboru, zvolte <menuchoice><guimenu>Soubor</guimenu><guimenuitem>Uložit</guimenuitem></menuchoice>.</para>
-
-       </listitem>
-       <listitem>
-
-         <para>Pro uložení nového souboru nebo uložení stávajícího souboru pod novým názvem, zvolte <menuchoice><guimenu>Soubor</guimenu><guimenuitem>Uložit jako</guimenuitem></menuchoice>. V dialogovém okně <guilabel>Uložit jako</guilabel> zadejte pro soubor název a klikněte na <guibutton>OK</guibutton>.</para>
-
-       </listitem>
-      </itemizedlist>
-
-    </sect2>
-
-<!-- ============= To Change Label Properties ========= -->
-    <sect2 id="glabels-label-properties"> 
-      <title>Jak změnit vlastnosti etikety</title>
-
-      <para>Pokud chcete změnit typ média a/nebo orientaci etiket, zvolte <menuchoice><guimenu>Soubor</guimenu><guimenuitem>Vlastnosti</guimenuitem></menuchoice> a zobrazí se dialogové okno <guilabel>Vlastnosti etikety</guilabel>. Zvolte pro dokument nový typ média a orientaci a klikněte na <guibutton>OK</guibutton>.</para>
-
-    </sect2>
-
-<!-- ============= To create a custom template ======================= -->
-    <sect2 id="glabels-create-template"> 
-      <title>Jak vytvořit vlastní šablonu</title>
-
-      <para>Když chcete vytvořit novou vlastní šablonu, zvolte <menuchoice><guimenu>Soubor</guimenu><guimenuitem>Návrhář šablon…</guimenuitem></menuchoice> a zobrazí se dialogové okno <guilabel>Návrhář šablon gLabels</guilabel>. Toto dialogové okno vás provede vytvořením vlastní šablony pro většinu typů etiket nebo vizitek, se kterými se můžete setkat.</para>
-
-      <para>Pokud dáváte přednost ručnímu vytvoření šablon, přečtěte si <xref linkend="glabels-manual-create-template"/></para>
-
-    </sect2>
-
-<!-- ============= To Close a File ========= -->
-    <sect2 id="glabels-close-file"> 
-      <title>Jak zavřít soubor</title>
-
-      <para>Když chcete aktuální dokument zavřít, zvolte <menuchoice><guimenu>Soubor</guimenu><guimenuitem>Zavřít</guimenuitem></menuchoice> a zavřete tím aplikační okno. Pokud byl aktuální dokument změněn, zobrazí se potvrzovací dialogové okno, kde můžete dokument uložit nebo příkaz zrušit. Pokud je zavírané okno jediné otevřené, ukončí se celá aplikace <application>gLabels</application>.</para>
-
-    </sect2>
-
-<!-- ============= To Quit ========= -->
-    <sect2 id="glabels-quit"> 
-      <title>Jak ukončit <application>gLabels</application></title>
-
-      <para>Když chcete aplikaci <application>gLabels</application> ukončit, zvolte <menuchoice><guimenu>Soubor</guimenu><guimenuitem>Ukončit</guimenuitem></menuchoice>. Odpovídá to zavření všech otevřených oken. Viz <xref linkend="glabels-close-file"/>.</para>
-
-    </sect2>
-
-<!-- ============= To Print Labels and Cards ========= -->
-    <sect2 id="glabels-print-file"> 
-      <title>Jak vytisknout etikety nebo vizitky</title>
-
-      <para>Když chcete vytisknout etikety nebo vizitky, zvolte <menuchoice><guimenu>Soubor</guimenu><guimenuitem>Tisk</guimenuitem></menuchoice> a zobrazí se dialogové okno <guilabel>Tisk</guilabel>. Až nastavíte volby tisku, klikněte na <guilabel>Tisk</guilabel> a etikety nebo vizitky se vytisknou. Pokud se chcete jen podívat na náhled, klikněte místo toho na <guilabel>Náhled tisku</guilabel>.</para>
-
-      <para>V dialogovém okně <guilabel>Tisk</guilabel> můžete nastavit následující volby tisku:</para>
-               
-      <sect3 id="print-dialog-job">
-       <title>Karta Etikety v dialogovém okně Tisk</title>
-
-       <variablelist>
-
-         <varlistentry>
-            <term><guilabel>Ovládání tisku (jednoduchý)</guilabel></term>
-           <listitem> 
-
-             <para>Pro jednoduché etikety nebo vizitky (bez slučování dokumentů), obsahuje karta <guilabel>Etikety</guilabel> následující prvky.</para>
-
-             <!-- ==== Figure ==== -->
-             <figure id="print-copies-fig"> 
-               <title>Ovládací prvky tisku kopií</title> 
-               <screenshot> 
-                 <mediaobject> 
-                   <imageobject><imagedata fileref="figures/print-copies.png" format="PNG"/> 
-                   </imageobject>
-                 </mediaobject> 
-               </screenshot> 
-             </figure>
-             <!-- ==== End of Figure ==== -->
-
-             <para>Počet kopií etikety můžete vybrat zvolením počtu plných listů, které se mají vytisknout, a nebo vybrat jen část etiket na jednom listu.</para>
-
-             <para>Mini-náhled můžete také použít ke grafickému výběru části etiket tak, že kliknete na první etiketu v mini-náhledu a táhnete až na poslední etiketu.</para>
-
-           </listitem>
-         </varlistentry>
-
-         <varlistentry>
-            <term><guilabel>Ovládání tisku (slučování)</guilabel></term>
-           <listitem> 
-
-             <para>Pro etikety nebo vizitky používající slučování dokumentů (někdy také nazývané „hromadná korespondence“), obsahuje karta <guilabel>Etikety</guilabel> následující ovládací prvky slučování lišící se od ovládacích prvků jednoduchého tisku.</para>
-
-             <!-- ==== Figure ==== -->
-             <figure id="print-merge-fig"> 
-               <title>Ovládací prvky tisku slučovaných dokumentů</title> 
-               <screenshot> 
-                 <mediaobject> 
-                   <imageobject><imagedata fileref="figures/print-merge.png" format="PNG"/> 
-                   </imageobject>
-                 </mediaobject> 
-               </screenshot> 
-             </figure>
-             <!-- ==== End of Figure ==== -->
-
-             <para>Celkový počet etiket nebo vizitek je dán počtem záznamů ve zdroji slučování a počtem vybraných kopií. Jestliže je vybráno více kopií, mohou být také uspořádané (kopie ze stejného záznamu seskupené spolu) nebo neuspořádané (kopie jednotlivých záznamů za sebou).</para>
-
-             <para>Tisk může začínat na libovolné etiketě na prvním listu. Tu můžete vybrat pomocí číselníku <guilabel>Začít na etiketě</guilabel>.</para>
-
-             <para>Mini-náhled můžete také použít ke grafickému výběru první etikety tak, že na ni v mini-náhledu kliknete.</para>
-
-           </listitem>
-         </varlistentry>
-
-         <varlistentry> <term><guilabel>Volby</guilabel> </term> 
-           <listitem> 
-             <para>Můžete rovněž vybrat následující volby.</para>
-             <itemizedlist>
-               <listitem>
-                 <para><guilabel>tisk obrysů</guilabel></para>
-                 <para>Tisk obrysů etiket. Tato volba je použitelná k tisku nanečisto, k otestování lícování.</para>
-               </listitem>
-               <listitem>
-                 <para><guilabel>obrácený tisk</guilabel></para>
-                 <para>Tisknout etikety zrcadlově. Tato volba je použitelná pro tisk na čiré etikety, na které se bude dívat z druhé strany (např. na okně auta).</para>
-               </listitem>
-               <listitem>
-                 <para><guilabel>tisknout značky pro ořez</guilabel></para>
-                 <para>Tisknout ořezové značky podél hran listu. Tato volba je použitelná pro tisk na čisté listy, které se budou po tisku rozřezávat. Tato volba nepracuje úplně správně se všemi šablonami.</para>
-               </listitem>
-             </itemizedlist>
-           </listitem>
-         </varlistentry>
-       </variablelist>
-      </sect3>
-               
-    </sect2>
-
-<!-- ============= To Create New Objects ========= -->
-    <sect2 id="glabels-new-objects"> 
-      <title>Jak vytvořit nový objekt</title>
-
-      <para>Objekty se vytvářejí příslušným výběrem v podnabídce <menuchoice><guimenu>Objekty</guimenu><guimenuitem>Vytvořit</guimenuitem></menuchoice> nebo na <guilabel>Panelu kreslení</guilabel>. Zobrazovací oblast se přepne do režimu vytváření objektu, což je indikováno patřičným ukazatelem. Do výchozího režimu výběru objektů se můžete vrátit, aniž byste nějaký objekt vytvořili, volbou <menuchoice><guimenu>Objekty</guimenu><guimenuitem>Režim výběru</guimenuitem></menuchoice>. Ukazatel pro zobrazovací oblast se změní zpět na výchozí šipku.</para>
-
-      <para>Zde je popis režimu vytváření objektu pro jednotlivé typy objektů:</para>
-
-      <variablelist>
-
-       <varlistentry>
-         <term>Text</term>
-         <listitem>
-           <para>Klikněte na požadované umístění levého horního rohu objektu text. Nový textový objekt se vytvoří s počátečním řetězcem „Text“. Jak tento text nebo další vlastnosti změnit uvádí <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Obdélník</term>
-         <listitem>
-           <para>Klikněte na požadované umístění levého horního rohu objektu obdélník a táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše kliknete na jednom místě, vytvoří se čtverec. Jak změnit vlastnosti obdélníku uvádí <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Čára</term>
-         <listitem>
-           <para>Klikněte na požadované umístění levého horního konce objektu čára a táhněte k požadovanému umístění pravého dolního konce. Když jednoduše kliknete na jednom místě, vytvoří diagonální úsečka. Jak změnit vlastnosti čáry uvádí <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Elipsa</term>
-         <listitem>
-           <para>Klikněte na požadované umístění levého horního rohu objektu elipsa a táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše kliknete na jednom místě, vytvoří se kruh. Jak změnit vlastnosti elipsy uvádí <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Obrázek</term>
-         <listitem>
-           <para>Klikněte na požadované umístění levého horního rohu objektu obrázku a táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše kliknete na jednom místě, vytvoří se čtverec. Nový obrázkový objekt se vytvoří s jednoduchým počátečním obrázkem šachovnice. Jak změnit tento obrázek a další vlastnosti uvádí <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Čárový kód</term>
-         <listitem>
-           <para>Klikněte na požadované umístění levého horního rohu objektu čárového kódu. Nový objekt čárového kódu se vytvoří jako čárový kód POSTNET s ukázkovými daty. Jak tato data nebo další vlastnosti změnit uvádí <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-
-
-    </sect2>
-
-<!-- ============= To Select Objects ========= -->
-    <sect2 id="glabels-select-objects"> 
-      <title>Jak vybrat objekty</title>
-
-      <para>Předpokladem k provádění operací s objekty je výběr jednoho či skupiny více objektů. Aby bylo možné výběr provést, musí být zobrazovací oblast v režimu výběru objektů, což je indikováno kurzorem v podobě šipky. Režim výběru objektů se zvolí pomocí <menuchoice><guimenu>Objekty</guimenu><guimenuitem>Režim výběru</guimenuitem></menuchoice> nebo odpovídajícím příkazem na <guilabel>Panelu kreslení</guilabel>.</para>
-
-      <variablelist>
-
-       <varlistentry>
-         <term>Výběr jednoho objektu</term>
-         <listitem>
-           <para>Jeden objekt vyberete prostým kliknutím na něj v zobrazovací oblasti. Vybraný objekt bude zvýrazněný sadou úchopů sloužících ke změně velikosti</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Přidávání objektů do výběru</term>
-         <listitem>
-           <para>Více objektů můžete vybrat tak, že vyberete první dříve uvedeným způsobem a po té budete držet klávesu <keycap>Ctrl</keycap> a vybírat další objekty. Jednotlivé objekty lze přidat do stávajícího výběru kdykoliv držením klávesy <keycap>Ctrl</keycap> během vybírání požadovaných objektů. Všechny objekty můžete vybrat pomocí položky nabídky <menuchoice><guimenu>Upravit</guimenu><guimenuitem>Vybrat vše</guimenuitem></menuchoice>. Všechny objekty ve výběru jsou zvýrazněné.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Výběr oblasti</term>
-         <listitem>
-           <para>Více objektů lze rovněž vybrat zmáčknutím tlačítka myši na prázdném místě a tažením obdélníkové oblasti. Po uvolnění tlačítka se všechny objekty obsažené v takovéto oblasti naráz vyberou. Výběr pomocí oblasti lez použít k přidání ke stávajícímu výběru podržením klávesy <keycap>Ctrl</keycap> během provádění výběru.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Zrušení výběru objektů</term>
-         <listitem>
-           <para>Jednotlivé objekty lze z výběru odebrat podržením klávesy <keycap>Ctrl</keycap> a klikáním na označené objekty. Veškerý výběr můžete zrušit pomocí nabídky <menuchoice><guimenu>Upravit</guimenu><guimenuitem>Zrušit výběr</guimenuitem></menuchoice> nebo jednoduchým kliknutím na prázdné místo v zobrazovací oblasti. Jakmile je u objektu zrušen výběr, zmizí i jeho zvýraznění.</para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-
-    </sect2>
-
-<!-- ============= Clipboard Commands ========= -->
-    <sect2 id="glabels-clipboard"> 
-      <title>Příkazy pro práci se schránkou</title>
-
-      <para>S vybranými objekty lze manipulovat pomocí standardních operací se schránkou <guimenuitem>Vyjmout</guimenuitem>, <guimenuitem>Kopírovat</guimenuitem>, <guimenuitem>Vložit</guimenuitem> a <guimenuitem>Smazat</guimenuitem>.</para>
-
-      <variablelist>
-
-       <varlistentry>
-         <term>
-            <menuchoice>
-             <shortcut>
-               <keycombo><keycap>Ctrl</keycap><keycap>X</keycap></keycombo>
-             </shortcut>
-             <guimenuitem>Vyjmout</guimenuitem>
-           </menuchoice>
-          </term>
-         <listitem>
-           <para>Přesune vybrané objekty do schránky. Objekty jsou potom přístupné pro vkládání zpátky do aktuálního dokumentu nebo jiného dokumentu.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>
-            <menuchoice>
-             <shortcut>
-               <keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo>
-             </shortcut>
-             <guimenuitem>Kopírovat</guimenuitem>
-           </menuchoice>
-          </term>
-         <listitem>
-           <para>Zkopíruje vybrané objekty do schránky, aniž by byly vymazány. Objekty jsou potom přístupné pro vkládání zpátky do aktuálního dokumentu nebo jiného dokumentu.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>
-            <menuchoice>
-             <shortcut>
-               <keycombo><keycap>Ctrl</keycap><keycap>V</keycap></keycombo>
-             </shortcut>
-             <guimenuitem>Vložit</guimenuitem>
-           </menuchoice>
-          </term>
-         <listitem>
-           <para>Vloží objekty ze schránky do aktuálního dokumentu. Aplikace <application>gLabels</application> umí vkládat pouze objekty z jiného dokumentu <application>gLabels</application>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>
-            <menuchoice>
-             <shortcut>
-               <keycap>Smazat</keycap>
-             </shortcut>
-             <guimenuitem>Smazat</guimenuitem>
-           </menuchoice>
-          </term>
-         <listitem>
-           <para>Smaže vybrané objekty, aniž by byly umístěny do schránky.</para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-
-    </sect2>
-
-<!-- ============= To Edit object Properties ========= -->
-    <sect2 id="glabels-object-properties"> 
-      <title>Jak upravit vlastnosti objektu</title>
-
-      <para>Většinu vlastností objektů lze upravit přes editor objektů v postranním panelu, který je vyobrazený níže. Abyste mohli editor objektů používat, musíte nejdříve vybrat jeden objekt. Viz <xref linkend="glabels-select-objects"/>.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="object-editor-sidebar-fig"> 
-       <title>Editor objektů z postranního panelu</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/object-editor-sidebar.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Editor objektů bude obsahovat některé z následujících karet, které závisí na typu objektu:</para>
-
-      <sect3 id="object-editor-text">
-       <title>Karta Text (textové objekty)</title>
-
-       <para>Tato karta obsahuje malý editor na úpravu obsahu textového objektu. Rovněž obsahuje vyskakovací nabídku dostupných klíčů slučování dokumentů, které lze do textu vkládat.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-image">
-       <title>Karta Obrázek (obrázkové objekty)</title>
-
-       <para>Tato karta obsahuje pole na zadání souboru s obrázkem. Přes tlačítko procházení můžete soubor snadno najít. Druhou možností je použití klíče pro slučování dokumentů, který poskytne název souboru až během tisku.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-data">
-       <title>Karta Data (objekty čárových kódů)</title>
-
-       <para>Tato karta obsahuje textové pole na zadání dat pro čárový kód. Druhou možností je použití klíče pro slučování dokumentů, přes který jsou data poskytována až během tisku.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-style">
-       <title>Karta Styl (textové objekty)</title>
-
-       <para>Tato karta obsahuje ovládací prvky na výběr vlastností textu, včetně typu písma, velikosti písma, tloušťky písma, barvy a zarovnání textu.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-barcode">
-       <title>Karta Styl (objekty čárových kódů)</title>
-
-       <para>Tato karta obsahuje ovládací prvky na výběr vlastností čárového kódu, včetně stylu čárového kódu, barvy, zda tisknout text a zda vkládat číslo s kontrolním součtem.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-line">
-       <title>Karta Čára</title>
-
-       <para>Tato karta obsahuje ovládací prvky na výběr vlastností čar a obrysů. Tyto vlastnosti zahrnují tloušťku čáry a její barvu.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-fill">
-       <title>Karta Výplň</title>
-
-       <para>Tato karta obsahuje ovládací prvky na výběr vlastností výplně objektů obdélníků a elips. V současnosti obsahuje pouze barvu výplně.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-size">
-       <title>Karta Velikost (všechny objekty vyjma čar)</title>
-
-       <para>Tato karta obsahuje ovládací prvky na výběr šířky a výšky objektu. K dispozici je zaškrtávací pole, kterým můžete zamknout poměr stran během úprav šířky a výšky. U obrázků je k dispozici rovněž tlačítko, kterým můžete nastavit reálné rozměry obrázku (předpokládá se 72 DPI).</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-size-line">
-       <title>Karta Velikost (objekty čar)</title>
-
-       <para>Tato karta obsahuje ovládací prvky pro výběr délky a úhlu čáry.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-position">
-       <title>Karta Pozice</title>
-
-       <para>Tato karta obsahuje ovládací prvky pro změnu pozice objektu.</para>
-
-      </sect3>
-
-
-      <sect3 id="object-editor-shadow">
-       <title>Karta Stín (všechny objekty vyjma obrázků a čárových kódů)</title>
-
-       <para>Tato karta obsahuje ovládací prvky pro přidání stínu k objektu.</para>
-
-      </sect3>
-
-
-    </sect2>
-
-<!-- ============= Other Manipulations of Objects ========= -->
-    <sect2 id="glabels-object-manipulation"> 
-      <title>Ostatní manipulace s objekty</title>
-
-      <para>S objekty lze manipulovat ještě následujícími způsoby:</para>
-
-      <sect3 id="other-moving-resizing">
-       <title>Přesouvání a změna velikosti objektů</title>
-
-       <para>Objekty lze přesunout kliknutím na vybraný objekt a tažením objektu na nové místo. Pokud je objekt součástí skupiny označených objektů, budou se s objektem přesouvat všechny vybrané objekty, ale jejich vzájemná pozice zůstane zachovaná. Pokud není žádný objekt vybraný, kliknutí na objekt provede nový výběr tohoto objektu. Viz <xref linkend="glabels-select-objects"/>.</para>
-
-       <para>U vybraných objektů můžete měnit jejich velikost kliknutím na úchop pro změnu velikosti a jeho tažením tak, abyste dosáhli správné velikost.</para>
-
-      </sect3>
-
-      <sect3 id="other-stacking-order">
-       <title>Změna pořadí objektů</title>
-
-       <para>Pořadí objektů představuje jejich relativní polohu v ose z. Prakticky to určuje při překrývání objektů, který z nich bude nahoře a který vespod. Standardně se nové objekty vytvářejí nad staršími objekty. Když chcete toto pořadí změnit, jeden nebo více objektů vyberte a zvolte <menuchoice><guimenu>Objekty</guimenu><guimenuitem>Pořadí</guimenuitem><guimenuitem>Přenést dopředu</guimenuitem></menuchoice> pro vynesení výběru na nejvyšší pozici nebo <menuchoice><guimenu>Objekty</guimenu><guimenuitem>Pořadí</guimenuitem><guimenuitem>Přenést dozadu</guimenuitem></menuchoice> pro zatlačení výběru úplně dospod. Tyto položky nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací oblasti za předpokladu, že jsou vybrané nějaké objekty.</para>
-
-      </sect3>
-
-      <sect3 id="other-rotating-flipping">
-       <title>Otáčení a překlápění objektů</title>
-
-       <para>Objekty lze otáčet po 90stupňových krocích v obou směrech nebo je překlápět svisle nebo vodorovně a to volbou příslušné položky v podnabídce <menuchoice><guimenu>Objekty</guimenu><guimenuitem>Otočit/Překlopit</guimenuitem></menuchoice>. Tyto položky nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací oblasti za předpokladu, že jsou vybrané nějaké objekty.</para>
-
-      </sect3>
-
-      <sect3 id="other-alignment">
-       <title>Zarovnávání objektů</title>
-
-       <para>Objekty lze zarovnávat vodorovně nebo svisle, relativně vůči sobě nebo relativně ke středové čáře etikety, volbou příslušné položky z podnabídky <menuchoice><guimenu>Objekty</guimenu><guimenuitem>Zarovnat vodorovně</guimenuitem></menuchoice> nebo <menuchoice><guimenu>Objekty</guimenu><guimenuitem>Zarovnat svisle</guimenuitem></menuchoice>. Tyto položky nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací oblasti za předpokladu, že jsou vybrané nějaké objekty.</para>
-
-      </sect3>
-
-      <sect3 id="other-property-bar">
-       <title>Používání panelu vlastností</title>
-
-       <para>Panel vlastností lze použít ke změně některých běžných vlastností objektů jako celku. Tyto vlastnosti zahrnují typ písma, velikost písma, tloušťku písma, zarovnání textu, barvu textu, barvu výplně, barvu čáry nebo obrysu a tloušťku čáry. Přes panel vlastností může také zadat výchozí hodnoty těchto vlastností pro nově vytvářené objekty.</para>
-
-      </sect3>
-
-
-
-    </sect2>
-
-<!-- ============= Document Merge Features ========= -->
-    <sect2 id="glabels-merge"> 
-      <title>Provádění slučování dokumentů</title>
-
-      <para>Slučování dokumentů (někdy také nazývané „hromadná korespondence“) je mocná funkce, která umožňuje vytisknout na etikety nebo vizitky různé texty podle jednotlivých záznamů v externím zdroji dat.</para>
-
-      <para>Prvním krokem při slučování dokumentů je příprava zdrojového dokumentu, který má obsahovat slučovaná data. Tato data mohou být poštovní adresy nebo jakákoliv jiná data, pro která si přejete vytvořit jedinečné etikety nebo vizitky. V současnosti jsou zatím jako zdroje podporované pouze textové soubory a datový server Evolution, jiné jsou v plánu. Současně podporovaný formát textových souborů je velmi jednoduchý: co řádek, to záznam; pole jsou oddělená čárkami (CSV), tabulátory nebo dvojtečkami; řádky jsou zakončené pomocí znaku „\n“. Takovýto soubor jde vytvořit v libovolném textovém editoru nebo jiným programem nebo skriptem. Obvyklým způsobem vytváření souborů CSV je jejich export z tabulkového kalkulátoru.</para>
-
-      <para>Etiketa musí být nastavená tak, aby „ukazovala na“ takovýto datový soubor. Abyste nastavili vlastnosti slučování dokumentu, zvolte položku nabídky <menuchoice><guimenu>Objekty</guimenu><guimenuitem>Vlastnosti slučování</guimenuitem></menuchoice>, zobrazí se dialogové okno <guilabel>vlastnosti slučování</guilabel>. Toto dialogové okno slouží k výběru přesného formátu datového souboru a názvu (umístění) souboru se slučovanými daty.</para>
-
-      <para>Nakonec, až je etiketa nastavená pro datový soubor, je zapotřebí vložit klíče polí do textových objektů a použít klíče polí jako zdroje nebo data pro objekty čárových kódů a jako názvy souborů pro obrázkové objekty. Více informací o použití slučovaných dat pro tyto typy objektů viz <xref linkend="glabels-object-properties"/>.</para>
-
-      <para>Nyní, když máte svoji etiketu nastavenou, bude aplikace <application>gLabels</application> tisknout jednotlivé etikety odlišné pro každý záznam ve vašem zdrojovém dokumentu - do klíčů polí se ve všech textech budou dosazovat pole z jednotlivých záznamů.</para>
-
-      <para>Podrobný průvodce funkcí slučování dokumentů viz <xref linkend="glabels-merge-tutorial"/>.</para>
-
-
-    </sect2>
-
-
-  </sect1>
-
-
-
-
-  <!-- ============= Customization ============================= -->
-  <!-- Use this section to describe how to customize the application. -->
-  <sect1 id="glabels-prefs"> 
-    <title>Nastavení</title> 
-    <para>Když chcete v aplikaci <application>gLabels</application> změnit nastavení, zvolte <menuchoice><guimenu>Upravit</guimenu><guimenuitem>Předvolby</guimenuitem></menuchoice>. Dialogové okno <guilabel>Předvolby gLabels</guilabel> obsahuje následující karty:</para> 
-    <itemizedlist> 
-      <listitem> 
-       <para> 
-         <xref linkend="glabels-prefs-locale"/></para> 
-      </listitem> 
-      <listitem> 
-       <para> 
-         <xref linkend="glabels-prefs-object-defaults"/></para> 
-      </listitem> 
-    </itemizedlist>
-<!-- =============== Customization Subsection ================ -->
-<!-- Use a new section to describe different tabbed sections on the Settings or Preferences
-            dialog. -->
-    <sect2 id="glabels-prefs-locale"> 
-      <title>Národní prostředí</title> 
-      <variablelist> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Jednotky</guilabel> </term> 
-         <listitem> 
-           <para>Tento skupinový přepínač použijte k určení svých upřednostňovaných jednotek. Vyberte jednu z následujících možností:</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>Body</guilabel> </para> 
-               <para>Použít body (1 bod = 1/72 palce = 0,352778 mm).</para> 
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Palce</guilabel> </para> 
-               <para>Použít palce (1 palec = 25,4 mm).</para>
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Milimetry</guilabel> </para> 
-               <para>Použít milimetry.</para>
-             </listitem> 
-           </itemizedlist> 
-           <para>Výchozí : <guilabel>Palce</guilabel>.</para> 
-         </listitem> 
-       </varlistentry> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Výchozí velikost stránky</guilabel> </term> 
-         <listitem> 
-           <para>Tento skupinový přepínač použijte k určení své upřednostňované velikosti stránky. Urychlí vám to hledání typu média při vytváření nové etikety nebo vizitky.</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>US Letter</guilabel> </para> 
-               <para>Většina vašich médií má velikost stránky US Letter (8,5 × 11 palců).</para> 
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>ISO A4</guilabel> </para> 
-               <para>Většina vašich médií má velikost stránky ISO A4 (210 × 297 mm).</para>
-             </listitem> 
-           </itemizedlist> 
-           <para>Výchozí: <guilabel>US Letter</guilabel>.</para> 
-         </listitem> 
-       </varlistentry> 
-      </variablelist> 
-    </sect2>
-    <!-- ============= Customization Subsection ===================== -->
-    <!-- Another tabbed section on the Preferences dialog. -->
-    <sect2 id="glabels-prefs-object-defaults"> 
-      <title>Výchozí hodnoty objektu</title> 
-      <variablelist> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Text</guilabel> </term> 
-         <listitem> 
-           <para>Použijte tyto ovládací prvky k nastavení výchozích vlastností nových textových objektů. Tyto vlastnosti jsou:</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>Písmo</guilabel> </para> 
-               <para>Tyto ovládací prvky slouží k nastavení rodiny písma a velikosti písma a zda by mělo být písmo tučné nebo kurzívou.</para> 
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Barva</guilabel> </para> 
-               <para>Tímto ovládacím prvkem se vybírá výchozí barva textu.</para>
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Zarovnání</guilabel> </para> 
-               <para>Tyto ovládací prvky slouží k výběru výchozího zarovnání textu (vlevo, na střed nebo vpravo).</para>
-             </listitem> 
-           </itemizedlist> 
-         </listitem> 
-       </varlistentry> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Čára</guilabel> </term> 
-         <listitem> 
-           <para>Použijte tyto ovládací prvky k nastavení výchozích vlastností čar a obrysů nových objektů. Tyto vlastnosti jsou:</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>Šířka</guilabel> </para> 
-               <para>Tímto ovládacím prvkem se vybírá výchozí šířka čáry.</para>
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Barva</guilabel> </para> 
-               <para>Tímto ovládacím prvkem se vybírá výchozí barva čáry.</para>
-             </listitem> 
-           </itemizedlist> 
-         </listitem> 
-       </varlistentry> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Výplň</guilabel> </term> 
-         <listitem> 
-           <para>Použijte tyto ovládací prvky k nastavení výchozích vlastností výplně nových objektů. Tyto vlastnosti jsou:</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>Barva</guilabel> </para> 
-               <para>Tento ovládací prvek slouží k výběru výchozí barvy výplně.</para>
-             </listitem> 
-           </itemizedlist> 
-         </listitem> 
-       </varlistentry> 
-      </variablelist> 
-    </sect2> 
-  </sect1>
-
-
-
-
-<!-- ============= Document Merge Tutorial ================================== -->
-  <sect1 id="glabels-merge-tutorial"> 
-    <title>Průvodce slučováním dokumentů</title>
-
-    <para>Slučování dokumentů (někdy také nazývané „hromadná korespondence“) je mocná funkce, díky které můžete tisknout odlišné etikety nebo vizitky pro každý záznam v externím zdroji dat. Je však také ze všech funkcí aplikace <application>gLabels</application> nejnáročnější na pochopení. Následující příklady vás provedou dvojicí obvyklých úloh, které používají funkci slučování dokumentů.</para>
-
-    <sect2 id="merge-ex1">
-      <title>Příklad 1: Jmenovky s použitím souboru CSV</title>
-  
-      <para>V tomto příkladu pořádáme seznamovací párty pro nové členy osádky naší lodi. Máme seznam nováčků v osádce, který jsme vytvořili v aplikaci <application>gnumeric</application> a následně jej vyexportovali do souboru CSV. Mohli bychom jej vytvořit i v textovém editoru, ale žijeme přece v 21. století.</para>
-
-      <programlisting>
-jmeno,zarazeni,cislo
-"Jiří Kroupa",vedení,"SC937-0176 CEC"
-"prof. Hrbolek",vědec,S179-276SP
-"MUDr. Kroupová",lékař,unknown
-"Viktor Hujer",technik,SE-197-54T
-      </programlisting>
-
-      <para>V aplikaci <application>gLabels</application> máme vytvořený dokument vycházející ze šablony Avery 5395 „Etikety na jmenovky“. Nyní použijeme položku nabídky <menuchoice><guimenu>Objekty</guimenu><guimenuitem>Vlastnosti slučování</guimenuitem></menuchoice> a zobrazí se nám dialogové okno <guilabel>vlastnosti slučování</guilabel>. Toto dialogové okno použijeme k výběru typu zdroje (v našem případě CSV) a vlastního zdroje (souboru), jak můžete vidět níže.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex1-1-fig"> 
-       <title>Dialogové okno vlastností slučování</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex1-1.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Před použitím zdroje slučování zrušíme zaškrtnutí prvního záznamu, protože ten obsahuje pouze záhlaví sloupců z naší původní tabulky v <application>gnumeric</application> a akorát bychom tím zničili první etiketu. Stejným způsobem můžeme zrušit zaškrtnutí kteréhokoliv záznamu, který nechceme vytisknout.</para>
-
-      <para>U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně spokojení, klikneme na <guibutton>OK</guibutton> a změny se použijí.</para>
-
-      <para>Nyní můžeme začít s přidáváním objektů do svého dokumentu <application>gLabels</application>, jak je zobrazeno níže.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex1-2-fig"> 
-       <title>Přidávání objektů</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex1-2.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>V tomto příkladu máme přidané tři textové objekty a čárový kód. První textový objekt obsahuje pouze prostý text („Ahoj, jmenuji se“). Druhý textový objekt obsahuje jedno slučované pole („${1}“), které odpovídá prvnímu poli v záznamu (první sloupec v řádku) a které obsahuje celé jméno nového člena osádky. Třetí textové pole obsahuje jak text („Zařazení: “), tak za ním následuje jedno slučované pole („${2}“), které odpovídá druhému poli se zařazením člena posádky. Objekt s čárovým kódem je nastavený na použití pole (klíče) „3“, které obsahuje identifikační číslo člena posádky.</para>
-
-      <para>Nyní můžeme své jmenovky vytisknout pomocí položky nabídky <menuchoice><guimenu>Soubor</guimenu><guimenuitem>Tisk</guimenuitem></menuchoice>. Zobrazí se dialogové okno jako na následujícím obrázku.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex1-3-fig"> 
-       <title>Tisk jmenovek</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex1-3.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Nyní zkontrolujeme, zda vypadají etikety jak mají. Vybereme možnost <guilabel>Tisk obrysů</guilabel> a klikneme na <guibutton>Náhled tisku</guibutton>. Zobrazí se dialogové okno s náhledem tisku, stejně jako na následujícím obrázku.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex1-4-fig"> 
-       <title>Náhled jmenovek</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex1-4.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Vše vypadá v pořádku, takže můžeme do tiskárny vložit správný list s etiketami, vytisknout jmenovky a vzhůru na palubu nalodit naše hosty.</para>
-
-    </sect2>
-
-    <sect2 id="merge-ex2">
-      <title>Příklad 2: Adresní štítky s použitím souboru CSV</title>
-  
-      <para>V tomto příkladu se chystáme uspořádat večírek a potřebujeme vytisknout adresní štítky na své pozvánky. Máme seznam svých nejbližších přátel, který jsem vytvořili v aplikaci <application>gnumeric</application> a vyexportovali jej jako soubor CSV. Povšimněte si, že ne všichni mají přezdívku nebo dvouřádkovou adresu.</para>
-
-      <programlisting>
-PRIJMENI,JMENO,PREZDIVKA,ADR1,ADR2,MESTO,PSC
-,,,,,,,
-Pacovský,Tomáš,,"U dvou akordů","Křižíkova 506",Praha,"123 00"
-Pacovský,František,Ozzák,"Křižíkova 62",,"Praha - Vinohrady","110 00"
-Divićová,Marcela,,"Náměstí míru 1",,Praha,"150 00"
-Bůček,Alexandr,Lexa,"U Jezevce","Nitranská 7",Praha,"160 13"
-Bůčková,Alexandra,,"Korunní 18",,Praha,"100 24"
-      </programlisting>
-
-      <para>V aplikaci <application>gLabels</application> vytvoříme nový dokument ze šablony Avery L7162 „Poštovní etikety“. Následně použijeme položku nabídky <menuchoice><guimenu>Objekty</guimenu><guimenuitem>Vlastnosti slučování</guimenuitem></menuchoice> a zobrazí se nám dialogové okno <guilabel>vlastností slučování</guilabel>. V tomto dialogovém okně vybereme typ zdroje (v našem případě CSV) a konkrétní zdroj (název souboru) pro slučování, jak můžete vidět na následujícím obrázku.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex2-1-fig"> 
-       <title>Dialogové okno vlastností slučování</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex2-1.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Před tím, než zdroj pro slučován použijeme, zrušíme zaškrtnutí prvního záznamu, protože ten obsahuje pouze záhlaví sloupců z původní tabulky v <application>gnumeric</application> a akorát bychom tím znehodnotili první etiketu. Zrušíme zaškrtnutí i druhého záznamu, protože je prázdný (což je pozůstatek z tabulkového kalkulátoru). A stejným způsobem můžeme vyřadit kterýkoliv jiný záznam, který nechceme na etikety vytisknout.</para>
-
-      <para>U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně spokojení, klikneme na <guibutton>OK</guibutton> a změny se použijí.</para>
-
-      <para>Nyní můžeme začít s přidáváním objektů do svého dokumentu <application>gLabels</application>, jak je zobrazeno níže.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex2-2-fig"> 
-       <title>Přidávání objektů</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex2-2.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>V tomto příkladu máme jen jeden textový objekt. Tento textový objekt obsahuje všechna slučovaná pole uspořádaná v několika řádcích představujících poštovní adresu. Všimněte si, že pole ${4} a ${5} (ta odpovídají ADR1 a ADR2) jsou umístěná na samostatných řádcích bez jakéhokoliv dalšího textu. Pokud aplikace <application>gLabels</application> narazí na pole, které je jediným textem na řádku a toto pole je prázdné, řádek nebude ve výsledku zabírat žádné místo.</para>
-
-      <para>Nyní se můžeme pustit do tisku adresních etiket pomocí volby <menuchoice><guimenu>Soubor</guimenu><guimenuitem>Tisk</guimenuitem></menuchoice> v nabídce. Zobrazí se dialogové okno tisku jako na následujícím obrázku.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex2-3-fig"> 
-       <title>Tisk etiket s adresami</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex2-3.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Nyní zkontrolujeme, zda vypadají etikety jak mají. Vybereme možnost <guilabel>Tisk obrysů</guilabel> a klikneme na <guibutton>Náhled tisku</guibutton>. Zobrazí se dialogové okno s náhledem tisku, stejně jako na následujícím obrázku.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex2-4-fig"> 
-       <title>Náhled etiket s adresami</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex2-4.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Vše vypadá dobře a tak můžeme vložit do tiskárny správný list s etiketami, vytisknout adresní štítky a začít rozesílat pozvánky na večírek.</para>
-
-    </sect2>
-
-<sect2 id="merge-ex3">
-      <title>Příklad 3: Adresní štítky s použitím adresáře aplikace <application>Evolution</application></title>
-  
-      <para>Náš předchozí večírek měl velký úspěch a my nyní chceme vytisknout adresní štítky pro pozvánky na další takový. Abychom si to zjednodušili, můžeme použít adresář aplikace <application>Evolution</application>, protože adresy všech našich přátel máme uložené v něm.</para>
-
-      <note>
-       <para>V závislosti na tom, jak byl připravený váš balíček <application>gLabels</application>, nemusí být tato funkčnost dostupná. Podpora pro adresář <application>Evolution</application> je dostupná jen v případě, že byl při překladu aplikace <application>gLabels</application> k dispozici <application>evolution-data-server</application> a k němu vývojářské soubory. Mějte toto na paměti, pokud si aplikaci překládáte sami ze zdrojových kódů.</para>
-       
-       <para>Pokud balíček <application>gLabels</application> ve vaší distribuci tuto podporu postrádá, můžete zkusit kontaktovat správce balíčku nebo to zkusit nahlásit jako chybu.</para>
-      </note>
-
-      <para>V aplikaci <application>glabels</application> vytvoříme nový dokument ze šablony Avery L7162 „Poštovní etikety“. Potom v nabídce zvolíme <menuchoice><guimenu>Objekty</guimenu><guimenuitem>Vlastnosti slučování</guimenuitem></menuchoice>, aby se nám zobrazilo dialogové okno <guilabel>Vlastnosti slučování</guilabel>. V něm vybereme typ zdroje (v našem případě <guilabel>Data z výchozího adresáře Evolution</guilabel>), jak je ukázáno na obrázku.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex3-1-fig"> 
-       <title>Dialogové okno vlastností slučování</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex3-1.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Když máme jako zdroj slučování vybráno <guilabel>Data z výchozího adresáře Evolution</guilabel>, obdržíme úplný seznam jeho obsahu. Na začátku jsou zaškrtnuté všechny položky. Předpokládá se, že budeme pořádat opravdu velký večírek a tak bychom mohli ponechat výběr jak je (ale uvědomte si kolik to bude stát). Nyní některé záznamy kliknutím na příslušné zaškrtávací políčko vyřadíme nebo naopak vybereme, případně můžeme použít tlačítka <guibutton>Vybrat vše</guibutton> a <guibutton>Zrušit výběr</guibutton> pro aktivování nebo deaktivování všech záznamů v adresáři.</para>
-      <para>U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně spokojení, klikneme na <guibutton>OK</guibutton> a změny se použijí.</para>
-
-      <para>Nyní můžeme začít s přidáváním objektů do svého dokumentu glabels, jak bylo ukázáno dříve.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex3-2-fig"> 
-       <title>Přidávání objektů</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex3-2.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>V tomto příkladu máme opět jen jeden textový objekt. Ten obsahuje všechna slučovaná pole uspořádaná v několika řádcích, představujících poštovní adresy.</para>
-
-      <para>Nyní můžeme své etikety s adresami vytisknout volbou položky nabídky <menuchoice><guimenu>Soubor</guimenu><guimenuitem>Tisk</guimenuitem></menuchoice>. Zobrazí se dialogové okno tisku, jak jej můžete vidět níže.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex3-3-fig"> 
-       <title>Tisk etiket s adresami</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex2-3.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Nyní zkontrolujeme, zda vypadají etikety jak mají. Vybereme možnost <guilabel>Tisk obrysů</guilabel> a klikneme na <guibutton>Náhled tisku</guibutton>. Zobrazí se dialogové okno s náhledem tisku, stejně jako na následujícím obrázku.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex3-4-fig"> 
-       <title>Náhled etiket s adresami</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex2-4.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Vše vypadá dobře a tak můžeme vložit do tiskárny správný list s etiketami, vytisknout adresní štítky a začít rozesílat pozvánky na večírek.</para>
-
-    </sect2>
-
-  </sect1>
-
-
-
-
-<!-- ============= Creating templates ================================== -->
-  <sect1 id="glabels-manual-create-template"> 
-    <title>Ruční vytváření šablon</title> 
-
-    <para>Předdefinované šablony jsou definované soubory XML umístěnými v <filename>${prefix}/share/glabels/</filename>, kde <filename>${prefix}</filename> je obvykle <filename>/usr/local</filename> nebo <filename>/usr</filename>, v závislosti na volbě nastavení <filename>prefix</filename> při překladu programu. Aplikace <application>gLabels</application> použije všechny soubory s názvem v podobě <filename>*-templates.xml</filename> nebo <filename>*.template</filename>, které nalezne v <filename>${prefix}/share/glabels/</filename> a <filename>${HOME}/.glabels/</filename>. Další šablony si můžete přidat vytvořením dalších souborů <filename>*.template</filename> v jedné z těchto složek.</para>
-
-    <para>Formát těchto souborů je dán v DTD: <ulink url="http://glabels.sourceforge.net/doc/glabels-2.0.dtd.txt" type="http">glabels-2.2.dtd</ulink>. (Toto DTD popisuje i ostatní formáty XML používané v aplikaci <application>gLabels</application>.)</para>
-
-    <sect2 id="template-assumptions">
-      <title>Předpoklady/upozornění</title>
-      <itemizedlist>
-       <listitem>
-         <para>Stránka obsahuje etiketu nebo vizitku pouze jedné velikosti (pokud má stránka obsahovat více než jednu velikost položky, můžete ji rozdělit do více šablon a vytisknout na vícekrát)</para>
-       </listitem>
-       <listitem>
-         <para>Rozměry mohou být uváděny v jednotkách <emphasis>pt</emphasis>, <emphasis>in</emphasis>, <emphasis>mm</emphasis>, <emphasis>cm</emphasis> nebo <emphasis>pc</emphasis>. Například: „<literal>1.0in</literal>“ nebo „<literal>2.54cm</literal>“. Pokud není žádná jednotka uvedená, budou předpokládány body <emphasis>pt</emphasis>  (1 <emphasis>pt</emphasis> = 1/72 <emphasis>in</emphasis> = 0,352778 <emphasis>mm</emphasis>).</para>
-       </listitem>
-      </itemizedlist>
-    </sect2>
-
-    <sect2 id="template-file">
-      <title>Soubory šablon</title>
-
-      <programlisting>
-&lt;?xml version="1.0"?&gt;
-&lt;Glabels-templates&gt;
-
-   <replaceable>…šablony…</replaceable>
-
-&lt;/Glabels-templates&gt;
-      </programlisting>
-    </sect2>
-
-
-    <sect2 id="template-example">
-      <title>Příklad šablony</title>
-      <programlisting>
-  &lt;Template brand="Avery" part="8160" size="US-Letter" _description="Mailing Labels"&gt;
-    &lt;Label-rectangle id="0" width="189pt" height="72pt" round="5pt"&gt;
-      &lt;Markup-margin size="5pt"/&gt;
-      &lt;Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/&gt;
-    &lt;/Label-rectangle&gt;
-    &lt;Alias brand="Avery" part="5160"/&gt;
-    &lt;Alias brand="Avery" part="6233"/&gt;
-  &lt;/Template&gt;
-      </programlisting>
-    </sect2>
-
-    <sect2 id="template-template-node">
-      <title>Uzel Template</title>
-
-      <para>Uzel <emphasis>Template</emphasis> popisuje jeden pevně daný výrobek. Musí obsahovat jednu instanci libovolného uzlu Label (<emphasis>Label-rectangle</emphasis>, <emphasis>Label-round</emphasis> nebo <emphasis>Label-cd</emphasis>). Tento uzel může být následován žádným nebo více uzly <emphasis>Alias</emphasis>.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Vlastnost</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Popis</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>brand</para></entry>
-             <entry>
-                <para>Značka nebo výrobce pevně daného výrobku. Např. "S Label"</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>part</para></entry>
-             <entry>
-                <para>Produktové číslo nebo název pevně daného výrobku. Např. "8160"</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>size</para></entry>
-             <entry>
-                <para>Velikost stránky. Např. "A4", "US-Letter"</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>description</para></entry>
-             <entry>
-                <para>Popis pevně daného produktu. Např. "Mailing Labels."</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>_description</para></entry>
-             <entry>
-                <para>Popis pevně daného produktu s možností překladu. Např. "Mailing Labels." (Použitelné pouze pro předdefinované šablony)</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>width</para></entry>
-             <entry>
-                <para>Šířka stránky. Platné jen v případě, že size="Other"</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>height</para></entry>
-             <entry>
-                <para>Výška stránky. Platné jen v případě, že size="Other"</para>
-               </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-label-rectangle-node">
-      <title>Uzel Label-rectangle</title>
-
-      <para>Uzel <emphasis>Label-rectangle</emphasis> popisuje rozměry jedné etikety nebo vizitky, která má obdélníkový tvar (může mít zaoblené rohy).</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Vlastnost</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Popis</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>id</para></entry>
-             <entry>
-                <para>Rezervované pro pozdější použití. Vždy by mělo být nastavené  na 0.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>width</para></entry>
-             <entry><para>Šířka etikety/vizitky</para></entry>
-            </row>
-           <row valign="top">
-             <entry><para>height</para></entry>
-             <entry><para>Výška etikety/vizitky</para></entry>
-           </row>
-           <row valign="top">
-             <entry><para>round</para></entry>
-             <entry>
-                <para>Poloměr rohů. Pro položky s ostrými rohy (např. vizitky) by mělo být nastaveno na 0.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>x_waste</para></entry>
-             <entry>
-                <para>Velikost dovoleného vodorovného odsazení (umožňuje přetisk). To je užitečné kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, ale např. obrázkové.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y_waste</para></entry>
-             <entry>
-                <para>Velikost dovoleného svislého odsazení (umožňuje přetisk). To je užitečné kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, ale např. obrázkové.</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-      <!-- ==== Figure ==== -->
-      <figure id="template-label-fig"> 
-       <title>Parametry uzlu Label-rectangle</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/glabels-template-label.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-    </sect2>
-
-    <sect2 id="template-label-round-node">
-      <title>Uzel Label-round</title>
-
-      <para>Uzel <emphasis>Label-round</emphasis> popisuje rozměry jedné zaoblené etikety (ne CD).</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Vlastnost</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Popis</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>id</para></entry>
-             <entry>
-                <para>Rezervované pro pozdější použití. Vždy by mělo být nastavené  na 0.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>radius</para></entry>
-             <entry><para>Poloměr (½ průměru) etikety</para></entry>
-            </row>
-           <row valign="top">
-             <entry><para>waste</para></entry>
-             <entry>
-                <para>Velikost dovoleného odsazení (umožňuje přetisk). To je užitečné kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, ale např. obrázkové.</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-label-cd-node">
-      <title>Uzel Label-cd</title>
-
-      <para>Uzel <emphasis>Label-cd</emphasis> popisuje rozměry etiket na CD, DVD nebo vizitkové CD.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Vlastnost</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Popis</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>id</para></entry>
-             <entry>
-                <para>Rezervované pro pozdější použití. Vždy by mělo být nastavené  na 0.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>radius</para></entry>
-             <entry><para>Vnější poloměr etikety</para></entry>
-           </row>
-           <row valign="top">
-             <entry><para>hole</para></entry>
-             <entry><para>Poloměr středové díry</para></entry>
-           </row>
-           <row valign="top">
-             <entry><para>width</para></entry>
-             <entry>
-                <para>Pokud je zadáno, bude etiketa oříznuta na uvedenou šířku. (Vhodné pro „vizitková CD“).</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>height</para></entry>
-             <entry>
-                <para>Pokud je zadáno, bude etiketa oříznuta na uvedenou výšku. (Vhodné pro „vizitková CD“).</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>waste</para></entry>
-             <entry>
-                <para>Velikost dovoleného odsazení (umožňuje přetisk). To je užitečné kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, ale např. obrázkové.</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-      <!-- ==== Figure ==== -->
-      <figure id="template-label-cd-fig"> 
-       <title>Parametry etiket na CD</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/glabels-template-cd.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-    </sect2>
-
-    <sect2 id="template-markup-margin-node">
-      <title>Uzel Markup-margin</title>
-
-      <para>Uzel <emphasis>Markup-margin</emphasis> popisuje okraj podél všech hran etikety.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Vlastnost</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Popis</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>size</para></entry>
-             <entry>
-                <para>Velikost okraje. Např. vzdálenost hranice okraje od hrany etikety/vizitky.</para>
-              </entry>
-            </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-markup-line-node">
-      <title>Uzel Markup-line</title>
-
-      <para>Uzel <emphasis>Markup-line</emphasis> popisuje značku v podobě čáry.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Vlastnost</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Popis</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>x1</para></entry>
-             <entry>
-                <para>x-ová souřadnice počátku úsečky</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y1</para></entry>
-             <entry>
-                <para>y-ová souřadnice počátku úsečky</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>x2</para></entry>
-             <entry>
-                <para>x-ová souřadnice konce úsečky</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y2</para></entry>
-             <entry>
-                <para>y-ová souřadnice konce úsečky</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-markup-circle-node">
-      <title>Uzel Markup-circle</title>
-
-      <para>Uzel <emphasis>Markup-circle</emphasis> popisuje značku v podobě kruhu.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Vlastnost</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Popis</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>x0</para></entry>
-             <entry>
-                <para>x-ová souřadnice středu kruhu</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y0</para></entry>
-             <entry>
-                <para>y-ová souřadnice středu kruhu</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>radius</para></entry>
-             <entry><para>Poloměr kruhu.</para></entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-markup-rect-node">
-      <title>Uzel Markup-rect</title>
-
-      <para>Uzel <emphasis>Markup-rect</emphasis> popisuje značku v podobě obdélníku.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Vlastnost</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Popis</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>x1</para></entry>
-             <entry>
-                <para>x-ová souřadnice levého horního rohu obdélníku.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y1</para></entry>
-             <entry>
-                <para>y-ová souřadnice levého horního rohu obdélníku.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>w</para></entry>
-             <entry>
-                <para>Šířka obdélníku.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>h</para></entry>
-             <entry>
-                <para>Výška obdélníku.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>r</para></entry>
-             <entry><para>Poloměr zakulacených rohů obdélníku.</para></entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-layout-node">
-      <title>Uzel Layout</title>
-
-      <para>Uzel typu Label může obsahovat více potomků <emphasis>Layout</emphasis>. V případě, že jsou etikety rozmístěné do jednoduché pravidelné mřížky, postačuje jeden uzel Layout. Pokud ale jsou etikety rozmístěné ve více mřížkách, např. mají podobu cihlové zdi, musí se použít více značek <emphasis>layout</emphasis>. Poznámka: jedna etiketa může být vždy považována za mřížku s jednou buňkou.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Vlastnost</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Popis</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>nx</para></entry>
-             <entry>
-                <para>Počet etiket/vizitek v mřížce (vodorovně)</para>
-              </entry>
-            </row>
-           <row valign="top">
-             <entry><para>ny</para></entry>
-             <entry>
-                <para>Počet etiket/vizitek v mřížce (svisle)</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>x0</para></entry>
-             <entry>
-                <para>Vzdálenost od levé hrany stránky k levé hraně levého sloupce etiket/vizitek v rozvržení.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y0</para></entry>
-             <entry>
-                <para>Vzdálenost od horní hrany stránky k horní hraně horní řady etiket/vizitek v rozvržení.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>dx</para></entry>
-             <entry><para>Vodorovná rozteč mřížky.</para></entry>
-           </row>
-           <row valign="top">
-             <entry><para>dy</para></entry>
-             <entry><para>Svislá rozteč mřížky.</para></entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-      <!-- ==== Figure ==== -->
-      <figure id="template-layout-fig"> 
-       <title>Parametry uzlu Layout</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/glabels-template-layout.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-    </sect2>
-
-    <sect2 id="template-alias-node">
-      <title>Uzel Alias</title>
-
-      <para>Uzel <emphasis>Alias</emphasis> uvádí názvy výrobků se stejnými rozměry a rozvržením, jako má rodičovská šablona.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Vlastnost</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Popis</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>brand</para></entry>
-             <entry>
-                <para>Značka nebo výrobce odpovídajícího výrobku.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>part</para></entry>
-             <entry>
-                <para>Produktové číslo nebo název odpovídajícího výrobku.</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-      </sect2>
-
-  </sect1>
-
-
-
-
-<!-- ============= Bugs ================================== -->
-<!-- This section is optional and is commented out by default. 
-     You can use it to describe known bugs and limitations of the 
-         program if there are any - please be frank and list all
-     problems you know of. 
-  
-  <sect1 id="mayapp-bugs">
-  <title>Known Bugs and Limitations</title>
-  <para> </para>
- </sect1>
--->
-
-
-
-
-<!-- ============= About ================================== -->
-<!-- This section contains info about the program (not docs), such as
-      author's name(s), web page, license, feedback address. This
-      section is optional: primary place for this info is "About.." box of
-      the program. However, if you do wish to include this info in the
-      manual, this is the place to put it. Alternatively, you can put this information in the title page.-->
-  <sect1 id="glabels-about"> 
-    <title>O aplikaci <application>gLabels</application></title> 
-    <para>Aplikaci <application>gLabels</application> napsal Jim Evins (<email>evins@snaught.com</email>).  Pokud chcete o aplikaci <application>gLabels</application> najít více informací, navštivte prosím <ulink url="http://glabels.sourceforge.net" type="http">webovou stránku gLabels</ulink>.</para>
-    <para>Pokud chcete oznámit chybu nebo navrhnout vylepšení vztahující se k této aplikaci nebo této příručce, postupujte dle instrukcí na <ulink url="http://glabels.sourceforge.net/contact/" type="http">kontaktní stránce <application>gLabels</application></ulink>.</para>
-
-    <para>Tento program je šířen podle ustanovení GNU General Public License, vydávané Free Software Foundation; a to buď verze 2 této licence anebo (podle vlastního uvážení) kterékoliv pozdější verze. Kopii této licence naleznete pod tímto <ulink url="ghelp:gpl" type="help">odkazem</ulink> nebo v souboru COPYING přiloženém ke zdrojovým kódům tohoto programu. </para>
-
-  </sect1> 
-
-
-
-
-
-</article>
diff --git a/help/cs/index.page b/help/cs/index.page
new file mode 100644 (file)
index 0000000..e80a0b4
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="index" xml:lang="cs">
+
+  <info>
+    <title type="link">Návrhář etiket a vizitek gLabels</title>
+    <title type="text">Návrhář etiket a vizitek gLabels</title>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+  <title><media type="image" mime="image/png" src="figures/glabels-logo.png">logo gLabels</media> Příručka aplikace gLabels</title>
+
+  <p>Aplikace <application>gLabels</application> je jednoduchý program na vytváření etiket a vizitek pro pracovní prostředí GNOME. Je navržená pro práci s různými samolepicími etiketami a vizitkami rozmístěnými na listech pro laserový/inkoustový tisk, které najdete ve většině obchodů s kancelářskými potřebami.</p>
+  <p>Aplikaci <app>gLabels</app> můžete používat k návrhu adresních štítků, visaček, cenovek, obalů na CD/DVD nebo cokoliv jiného, co je uspořádáno na listu papíru v pravidelném vzoru. Etikety (nebo kartičky) mohou obsahovat text, obrázky, čáry, tvary a čárové kódy. Aplikace <app>gLabels</app> obsahuje také funkci slučování dokumentů, díky které můžete tisknout každou etiketu jinou, podle záznamů v externím zdroji dat, jako jsou soubory CSV nebo adresář kontaktů <app>Evolution</app>.</p>
+
+  <figure>
+    <title>Hlavní okno <app>gLabels</app></title>
+    <desc>Hlavní okno <app>gLabels</app></desc>
+    <media type="image" src="figures/introduction-glabels-main-window.png" mime="image/png" style="right">
+      <p>Hlavní okno <app>gLabels</app>.</p>
+    </media>
+  </figure>
+
+  <section id="usage" style="2column">
+    <title>Použití</title>
+  </section>
+
+  <section id="merging" style="2column">
+    <title>Slučováním dokumentů</title>
+  </section>
+
+  <section id="advanced" style="2column">
+    <title>Pokročilé používání</title>
+  </section>
+
+</page>
diff --git a/help/cs/labelprop.page b/help/cs/labelprop.page
new file mode 100644 (file)
index 0000000..f906e1d
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="labelprop" xml:lang="cs">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Jak změnit vlastnosti etikety nebo vizitky.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Změna vlastností etikety</title>
+
+      <p>Pokud chcete změnit typ média a/nebo orientaci etiket, zvolte <guiseq><gui>Soubor</gui><gui>Vlastnosti</gui></guiseq> a zobrazí se dialogové okno <gui>Vlastnosti etikety</gui>. Zvolte pro dokument nový typ média a orientaci a klikněte na <gui>OK</gui>.</p>
+
+</page>
diff --git a/help/cs/license.page b/help/cs/license.page
new file mode 100644 (file)
index 0000000..4e9962e
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" type="topic" id="license" xml:lang="cs">
+  
+  <info>
+    <link type="seealso" xref="index"/>
+    <revision pkgversion="2.30" version="0.1" date="2009-12-28" status="draft"/>
+    <desc>Právní informace.</desc>
+  </info>
+
+  <title>Licence</title>
+  <p>Tato práce je šířena pod licencí CreativeCommons Attribution-Share Alike 3.0 Unported Licence.</p>
+  <p>Můžete volně:</p>
+  <terms>
+    <item>
+      <title><em>Sdílet</em></title>
+      <p>Kopírovat, šířit a rozesílat dílo.</p>
+    </item>
+    <item>
+      <title><em>Měnit</em></title>
+      <p>Přizpůsobovat dílo.</p> 
+    </item>
+  </terms>
+  <p>Za následujících podmínek:</p>
+  <terms>
+    <item>
+      <title><em>Označení</em></title>
+      <p>Musíte dílo označit v souladu s požadavky autora nebo licence (ale ne žádným způsobem, který předpokládá, že schvalují vás nebo vaše použití díla).</p>
+    </item>
+    <item>
+      <title><em>Stejné sdílení</em></title>
+      <p>Pokud dílo změníte, převedete nebo na něm založíte jiné, můžete výsledek této práce šířit pouze pod stejnou, podobnou nebo kompatibilní licencí.</p>
+    </item>
+  </terms>
+  <p>Text licence v plném znění najdete na <link href="http://creativecommons.org/licenses/by-sa/3.0/legalcode">webových stránkách CreativeCommons</link> nebo si přečtěte <link href="http://creativecommons.org/licenses/by-sa/3.0/">výtah dokumentu pro neprávníky</link>.</p>
+</page>
diff --git a/help/cs/mancreate.page b/help/cs/mancreate.page
new file mode 100644 (file)
index 0000000..41b4356
--- /dev/null
@@ -0,0 +1,693 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" xmlns:its="http://www.w3.org/2005/11/its" type="guide" id="mancreate" xml:lang="cs">
+
+  <info>
+    <link type="guide" xref="index#advanced"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Vytvářejte své šablony ručně.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+  <title>Ruční vytváření nových šablon</title>
+
+
+
+  <!-- ****************** -->
+  <!-- BEGIN Introduction -->
+  <!-- ****************** -->
+  <p>Tato stránka je příručkou k ručnímu vytváření šablon <app>gLabels</app>. Šablony <app>gLabels</app> jsou definovány v jednoduchých souborech XML, které jsou popsány v DTD: <link href="http://glabels.org/xmlns/2.3/glabels-2.3.dtd.txt">glabels-2.3.dtd</link> (toto DTD popisuje i ostatní formáty XML používané v aplikaci <application>gLabels</application>).</p>
+
+  <p>Soubory s ručně vytvořenými šablonami by měly být umístěny ve složce <file>${HOME}/.glabels</file> a jejich název by měl mít příponu <file>.template</file>.</p>
+
+  <note style="advanced">
+    <p>Aplikace <app>gLabels</app> hledá šablony na několika další místech, konkrétně na těchto:</p>
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Umístění</p></td>
+        <td><p>Popis</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>
+        <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><file>${prefix}/share/libglabels-3.0/templates</file></p></td>
+        <td><p>Předdefinované šablony šířené s aplikací <app>gLabels</app>.</p>
+            <p><file>${prefix}</file> je obvykle <file>/usr</file> nebo <file>/usr/local</file> podle toho, kde je nainstalována vlastní aplikace <app>gLabels</app>.</p></td>
+      </tr>
+      <tr>
+        <td><p><file>${XDG_CONFIG_HOME}/libglabels/templates</file></p></td>
+        <td><p>Uživatelem definované šablony vytvořené pomocí <gui>Návrháře šablon</gui> <app>gLabels</app>. <em>Neumisťujte do této složky ručně vytvořené šablony.</em></p>
+            <p>Pokud není <file>${XDG_CONFIG_HOME}</file> definováno, použije se výchozí <file>${HOME}/.config</file>.</p></td>
+      </tr>
+      <tr>
+        <td><p><file>${HOME}/.glabels</file></p></td>
+        <td><p>Uživatelem definované šablony, které byly vytvořeny ručně, by měly být umístěny v této složce. Do této složky by ukládaly šablony také starší verze <gui>Návrháře šablon</gui> <app>gLabels</app> (před verzí 3.0).</p></td>
+      </tr>
+    </table>
+  </note>
+
+  <note><p>Soubory s hotovými šablonami můžete posílat do <link href="mailto:glabels-templates@lists.sourceforge.net">poštovní konference</link> o šablonách <app>gLabels</app> a možná budou zařazeny jako součást příští verze <app>gLabels</app>.</p>
+  </note>
+  <!-- ****************** -->
+  <!-- END Introduction   -->
+  <!-- ****************** -->
+
+
+  <!-- ***************** -->
+  <!-- BEGIN Assumptions -->
+  <!-- ***************** -->
+  <section id="template-assumptions">
+    <title>Předpoklady/upozornění</title>
+    <list>
+      <item>
+        <p>Stránka obsahuje etiketu nebo vizitku pouze jedné velikosti (pokud má stránka obsahovat více než jednu velikost položky, můžete ji rozdělit do více šablon a vytisknout na vícekrát)</p>
+      </item>
+      <item>
+        <p>Rozměry mohou být uváděny v jednotkách <code translate="no">pt</code>, <code translate="no">in</code>, <code translate="no">mm</code>, <code translate="no">cm</code> nebo <code translate="no">pc</code> a s tečkou jako desetinným oddělovačem. Například: „<code translate="no">1.0in</code>“ nebo „<code translate="no">2.54cm</code>“. Pokud není žádná jednotka uvedená, budou předpokládány body <code translate="no">pt</code>  (1 <em>pt</em> = 1/72 <em>in</em> = 0,352778 <em>mm</em>).</p>
+      </item>
+    </list>
+  </section>
+  <!-- ***************** -->
+  <!-- END Assumptions   -->
+  <!-- ***************** -->
+
+
+
+  <!-- ******************** -->
+  <!-- BEGIN Template Files -->
+  <!-- ******************** -->
+  <section id="template-file">
+    <title>Soubory šablon</title>
+
+    <p>Soubor se šablonou obsahuje jeden uzel nejvyšší úrovně <code translate="no">Glabels-templates</code>.</p>
+
+    <code mime="text/xml" translate="no">
+&lt;?xml version="1.0"?&gt;
+&lt;Glabels-templates&gt;
+
+   <replaceable>…šablony…</replaceable>
+
+&lt;/Glabels-templates&gt;</code>
+
+    <listing>
+      <title>Příklad šablony</title>
+      <desc>Příklad souboru se šablonou <app>gLabels</app> obsahujícího jeden uzel <code translate="no">Template</code>.</desc>
+      <code mime="text/xml" translate="no">
+&lt;?xml version="1.0"?&gt;
+&lt;Glabels-templates&gt;
+
+  &lt;Template brand="Avery" part="8160" size="US-Letter" description="Mailing Labels"&gt;
+    &lt;Meta category="label"/&gt;
+    &lt;Meta category="mail"/&gt;
+    &lt;Meta product_url="http://www.avery.com/avery/en_us/"/&gt;
+    &lt;Label-rectangle id="0" width="189pt" height="72pt" round="5pt"&gt;
+      &lt;Markup-margin size="5pt"/&gt;
+      &lt;Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/&gt;
+    &lt;/Label-rectangle&gt;
+  &lt;/Template&gt;
+
+&lt;/Glabels-templates&gt;</code>
+    </listing>
+
+  </section>
+  <!-- ******************** -->
+  <!-- END Template Files   -->
+  <!-- ******************** -->
+
+
+
+  <!-- ******************** -->
+  <!-- BEGIN Template Node  -->
+  <!-- ******************** -->
+  <section id="template-template-node">
+    <title>Uzel <span translate="no">Template</span></title>
+
+    <p>Uzel <code translate="no">Template</code> popisuje jeden pevně daný výrobek. Musí obsahovat jednu instanci libovolného uzlu Label (<code translate="no">Label-rectangle</code>, <code translate="no">Label-round</code> nebo <code translate="no">Label-cd</code>).</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Vlastnost</p></td>  <td><p>Popis</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">brand</code></p></td>  
+        <td><p>Značka nebo výrobce papírenského produktu. Např. "S&amp;K Label"</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">part</code></p></td>
+        <td><p>Produktové číslo nebo název papírenského produktu. Např. "8160"</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">size</code></p></td>
+        <td><p>Velikost stránky. Např. "<code translate="no">US-Letter</code>", "<code translate="no">A4</code>", …</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">description</code></p></td>
+        <td><p>Popis papírenského produktu. Např. "Mailing Labels."</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">_description</code></p></td>
+        <td><p>Popis papírenského produktu s možností překladu. Např. "Mailing Labels." (Použitelné pouze pro předdefinované šablony)</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">width</code></p></td>
+        <td><p>Šířka stránky. Platné jen v případě, že size="Other"</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">height</code></p></td>
+        <td><p>Výška stránky. Platné jen v případě, že size="Other"</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">equiv</code></p></td>
+        <td><p>Ekvivalentní produktové číslo. Pokud je tato vlastnost nastavena, je šablona klonem jiné šablony téže značky. Šablona pak dědí všechny vlastnosti z jiné šablony, vyjma značky a názvu. Tato vlastnost se musí odkazovat na šablonu definovanou dříve – aplikace <app>gLabels</app> v současnosti nepodporuje dopředné odkazy.</p></td>
+      </tr>
+    </table>
+
+  </section>
+  <!-- ******************** -->
+  <!-- END Template Node    -->
+  <!-- ******************** -->
+
+
+  <!-- ******************** -->
+  <!-- BEGIN Meta Node      -->
+  <!-- ******************** -->
+  <section id="meta-template-node">
+    <title>Uzel <span translate="no">Meta</span></title>
+
+    <p>Uzel <code translate="no">Meta</code> obsahuje některé doplňující informace o šabloně. Uzel <code translate="no">Template</code> může obsahovat žádný nebo více uzlů <code translate="no">Meta</code>.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Podřízený uzel</p></td>  <td><p>Popis</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">category</code></p></td>
+        <td><p>Kategorie pro šablonu. Šablona může patřit do více kategorií jednoduše tak, že přidáte více uzlů <code translate="no">Meta</code> do rodičovského uzlu <code translate="no">Template</code>. Kategorie šablony využívá aplikace <app>gLabels</app> v dialogovém okně <gui>Nová etiketa či vizitka</gui>, aby vám mohla vyfiltrovat nalezené šablony.</p>
+
+            <p>Hodnota kategorie musí odpovídat jednomu z předdefinovaných ID kategorie ze souboru <file>${prefix}/libglabels-3.0/templates/categories.xml</file>. Aktuálně jsou definovány tato ID kategorií:</p>
+            <list>
+              <item><p><code translate="no">label (etiketa)</code></p></item>
+              <item><p><code translate="no">round-label (etiketa se zaoblenými rohy)</code></p></item>
+              <item><p><code translate="no">elliptical-label (eliptická etiketa)</code></p></item>
+              <item><p><code translate="no">square-label (čtvercová etiketa)</code></p></item>
+              <item><p><code translate="no">rectangle-label (obdélníková etiketa)</code></p></item>
+              <item><p><code translate="no">card (karta)</code></p></item>
+              <item><p><code translate="no">business-card (vizitka)</code></p></item>
+              <item><p><code translate="no">media (médium)</code></p></item>
+              <item><p><code translate="no">mail (poštovní)</code></p></item>
+              <item><p><code translate="no">foldable (přání)</code></p></item>
+              <item><p><code translate="no">photo (fotka)</code></p></item>
+            </list>
+
+
+        </td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">product_url</code></p></td>
+        <td><p>Adresa URL odkazující na webovou stránku výrobce a to tu, pokud existuje, která se týká konkrétního výrobku.</p></td>
+      </tr>
+    </table>
+
+    <note><p>Doporučení na další kategorie můžete zasílat do vývojářské <link href="mailto:glabels-devel@lists.sourceforge.net">poštovní konference</link> aplikace <app>gLabels</app>.</p>
+          <p>Použití adresy URL výrobku může být omezené, protože adresa nemusí být trvalá.</p>
+    </note>
+
+  </section>
+  <!-- ******************** -->
+  <!-- END Meta Node        -->
+  <!-- ******************** -->
+
+
+  <!-- ************************** -->
+  <!-- BEGIN Label-rectangle Node -->
+  <!-- ************************** -->
+  <section id="template-label-rectangle-node">
+    <title>Uzel <span translate="no">Label-rectangle</span></title>
+
+    <p>Uzel <code translate="no">Label-rectangle</code> popisuje rozměry jedné etikety nebo vizitky, která má obdélníkový tvar (může mít zaoblené rohy).</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Vlastnost</p></td>  <td><p>Popis</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">id</code></p></td>
+        <td><p>Rezervované pro pozdější použití. Vždy by mělo být nastavené  na 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">width</code></p></td>
+        <td><p>Šířka etikety/vizitky</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">height</code></p></td>
+        <td><p>Výška etikety/vizitky</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">round</code></p></td>
+        <td><p>Poloměr rohů. Pro položky s ostrými rohy (např. vizitky) by mělo být nastaveno na 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">x_waste</code></p></td>
+        <td><p>Velikost dovoleného vodorovného odsazení (umožňuje přetisk). To je užitečné kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, ale např. obrázkové.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">y_waste</code></p></td>
+        <td><p>Velikost dovoleného svislého odsazení (umožňuje přetisk). To je užitečné kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, ale např. obrázkové.</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc>Parametry uzlu <span translate="no">Label-rectangle</span></desc>
+      <media type="image" src="figures/glabels-template-rect-label.png" mime="image/png" style="right">
+        <p>Parametry uzlu <span translate="no">Label-rectangle</span></p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ************************** -->
+  <!-- END Label-rectangle Node   -->
+  <!-- ************************** -->
+
+
+  <!-- ************************ -->
+  <!-- BEGIN Label-ellipse Node -->
+  <!-- ************************ -->
+  <section id="template-label-ellipse-node">
+    <title>Uzel <span translate="no">Label-ellipse</span></title>
+
+    <p>Uzel <code translate="no">Label-ellipse</code> popisuje rozměry jedné etikety nebo vizitky, která má eliptický tvar.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Vlastnost</p></td>  <td><p>Popis</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">id</code></p></td>
+        <td><p>Rezervované pro pozdější použití. Vždy by mělo být nastavené  na 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">width</code></p></td>
+        <td><p>Šířka elipsy</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">height</code></p></td>
+        <td><p>Výška elipsy</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">waste</code></p></td>
+        <td><p>Velikost dovoleného odsazení (umožňuje přetisk). To je užitečné kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, ale např. obrázkové.</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc>Parametry uzlu <span translate="no">Label-ellipse</span></desc>
+      <media type="image" src="figures/glabels-template-ellipse-label.png" mime="image/png" style="right">
+        <p>Parametry uzlu <span translate="no">Label-ellipse</span></p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ************************ -->
+  <!-- END Label-ellipse Node   -->
+  <!-- ************************ -->
+
+
+  <!-- ********************** -->
+  <!-- BEGIN Label-round Node -->
+  <!-- ********************** -->
+  <section id="template-label-round-node">
+    <title>Uzel <span translate="no">Label-round</span></title>
+
+    <p>Uzel <emphasis>Label-round</emphasis> popisuje rozměry jedné kulaté etikety (ale ne CD).</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Vlastnost</p></td>  <td><p>Popis</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">id</code></p></td>
+        <td><p>Rezervované pro pozdější použití. Vždy by mělo být nastavené  na 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">radius</code></p></td>
+        <td><p>Poloměr (½ průměru) etikety.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">waste</code></p></td>
+        <td><p>Velikost dovoleného odsazení (umožňuje přetisk). To je užitečné kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, ale např. obrázkové.</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc>Parametry uzlu <span translate="no">Label-ellipse</span></desc>
+      <media type="image" src="figures/glabels-template-circle-label.png" mime="image/png" style="right">
+        <p>Parametry uzlu <span translate="no">Label-ellipse</span></p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ********************** -->
+  <!-- END Label-round Node   -->
+  <!-- ********************** -->
+
+
+  <!-- ******************* -->
+  <!-- BEGIN Label-cd Node -->
+  <!-- ******************* -->
+  <section id="template-label-cd-node">
+    <title>Uzel <span translate="no">Label-cd</span></title>
+
+    <p>Uzel <code translate="no">Label-cd</code> popisuje rozměry etiket na CD, DVD nebo vizitkové CD.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Vlastnost</p></td>  <td><p>Popis</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">id</code></p></td>
+        <td><p>Rezervované pro pozdější použití. Vždy by mělo být nastavené  na 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">radius</code></p></td>
+        <td><p>Vnější poloměr etikety.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">hole</code></p></td>
+        <td><p>Poloměr středové díry.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">width</code></p></td>
+        <td><p>Pokud je zadáno, bude etiketa oříznuta na uvedenou šířku. (Vhodné pro „vizitková CD“).</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">height</code></p></td>
+        <td><p>Pokud je zadáno, bude etiketa oříznuta na uvedenou výšku. (Vhodné pro „vizitková CD“).</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">waste</code></p></td>
+        <td><p>Velikost dovoleného odsazení (umožňuje přetisk). To je užitečné kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, ale např. obrázkové.</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc>Parametry uzlu <span translate="no">Label-cd</span></desc>
+      <media type="image" src="figures/glabels-template-cd-label.png" mime="image/png" style="right">
+        <p>Parametry etiket na CD</p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ******************* -->
+  <!-- END Label-cd Node   -->
+  <!-- ******************* -->
+
+
+  <!-- ***************** -->
+  <!-- BEGIN Markup Node -->
+  <!-- ***************** -->
+  <section id="template-markup">
+    <title>Uzly <span translate="no">Markup</span></title>
+
+    <p>Šablona může volitelně obsahovat uzly se značkami. Tyto uzly se používají k popisu jednoduchých sad pomocných čar, které jsou viditelné na kreslící ploše aplikace <app>glabels</app>, ale netisknou se. Tyto čáry mohou představovat například okraje, přehyby, speciální oblasti a další pomůcky užitečné pro uživatele šablony.</p>
+
+
+    <!-- ======================== -->
+    <!-- BEGIN Markup-margin Node -->
+    <!-- ======================== -->
+    <section id="template-markup-margin-node">
+      <title><span translate="no">Markup-margin</span> Node</title>
+
+      <p>Uzel <code translate="no">Markup-margin</code> popisuje okraj podél všech hran etikety.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Vlastnost</p></td>  <td><p>Popis</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">size</code></p></td>
+          <td><p>Velikost okraje. Např. vzdálenost hranice okraje od hrany etikety/vizitky.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ======================== -->
+    <!-- END Markup-margin Node   -->
+    <!-- ======================== -->
+
+
+    <!-- ====================== -->
+    <!-- BEGIN Markup-line Node -->
+    <!-- ====================== -->
+    <section id="template-markup-line-node">
+      <title>Uzel <span translate="no">Markup-line</span></title>
+
+      <p>Uzel <code translate="no">Markup-line</code> popisuje značku v podobě čáry.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Vlastnost</p></td>  <td><p>Popis</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x1</code></p></td>
+          <td><p>x-ová souřadnice 1. koncového bodu úsečky.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y1</code></p></td>
+          <td><p>y-ová souřadnice 1. koncového bodu úsečky.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x2</code></p></td>
+          <td><p>x-ová souřadnice 2. koncového bodu úsečky.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y2</code></p></td>
+          <td><p>y-ová souřadnice 2. koncového bodu úsečky.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ====================== -->
+    <!-- END Markup-line Node   -->
+    <!-- ====================== -->
+
+
+    <!-- ======================== -->
+    <!-- BEGIN Markup-circle Node -->
+    <!-- ======================== -->
+    <section id="template-markup-circle-node">
+      <title>Uzel <span translate="no">Markup-circle</span></title>
+
+      <p>Uzel <code translate="no">Markup-circle</code> popisuje značku v podobě kruhu.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Vlastnost</p></td>  <td><p>Popis</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x0</code></p></td>
+          <td><p>x-ová souřadnice středu kruhu.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y0</code></p></td>
+          <td><p>y-ová souřadnice středu kruhu.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">radius</code></p></td>
+          <td><p>Poloměr kruhu.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ======================== -->
+    <!-- END Markup-circle Node   -->
+    <!-- ======================== -->
+
+
+    <!-- ====================== -->
+    <!-- BEGIN Markup-rect Node -->
+    <!-- ====================== -->
+    <section id="template-markup-rect-node">
+      <title>Uzel <span translate="no">Markup-rect</span></title>
+
+      <p>Uzel <code translate="no">Markup-rect</code> popisuje značku v podobě obdélníku.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Vlastnost</p></td>  <td><p>Popis</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x1</code></p></td>
+          <td><p>x-ová souřadnice levého horního rohu obdélníku.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y1</code></p></td>
+          <td><p>y-ová souřadnice levého horního rohu obdélníku.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">w</code></p></td>
+          <td><p>Šířka obdélníku.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">h</code></p></td>
+          <td><p>Výška obdélníku.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">r</code></p></td>
+          <td><p>Poloměr zakulacených rohů obdélníku.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ====================== -->
+    <!-- END Markup-rect Node   -->
+    <!-- ====================== -->
+
+
+    <!-- ========================= -->
+    <!-- BEGIN Markup-ellipse Node -->
+    <!-- ========================= -->
+    <section id="template-markup-ellipse-node">
+      <title>Uzel <span translate="no">Markup-ellipse</span></title>
+
+      <p>Uzel <code translate="no">Markup-ellipse</code> popisuje značku v podobě elipsy.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Vlastnost</p></td>  <td><p>Popis</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x1</code></p></td>
+          <td><p>x-ová souřadnice levého horního rohu elipsy.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y1</code></p></td>
+          <td><p>y-ová souřadnice levého horního rohu elipsy.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">w</code></p></td>
+          <td><p>Šířka elipsy.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">h</code></p></td>
+          <td><p>Výška elipsy.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ========================= -->
+    <!-- END Markup-ellipse Node   -->
+    <!-- ========================= -->
+
+  </section>
+  <!-- ***************** -->
+  <!-- END Markup Node   -->
+  <!-- ***************** -->
+
+
+  <!-- ***************** -->
+  <!-- BEGIN Layout Node -->
+  <!-- ***************** -->
+  <section id="template-layout-node">
+    <title>Uzel <span translate="no">Layout</span></title>
+
+    <p>Uzel typu Label může obsahovat více potomků <code translate="no">Layout</code>. V případě, že jsou etikety rozmístěné do jednoduché pravidelné mřížky, postačuje jeden uzel Layout. Pokud jsou ale etikety rozmístěné ve více mřížkách, např. mají podobu cihlové zdi, musí se použít více značek <code translate="no">Layout</code>.</p>
+       <note style="tip">
+       <p>Jedna etiketa může být vždy považována za mřížku s jednou buňkou.</p>
+      </note>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Vlastnost</p></td>  <td><p>Popis</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">nx</code></p></td>
+        <td><p>Počet etiket/vizitek v mřížce (vodorovně).</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">ny</code></p></td>
+        <td><p>Počet etiket/vizitek v mřížce (svisle).</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">x0</code></p></td>
+        <td><p>Vzdálenost od levé hrany stránky k levé hraně levého sloupce etiket/vizitek v rozvržení.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">y0</code></p></td>
+        <td><p>Vzdálenost od horní hrany stránky k horní hraně horní řady etiket/vizitek v rozvržení.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">dx</code></p></td>
+        <td><p>Vodorovná rozteč mřížky.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">dy</code></p></td>
+        <td><p>Svislá rozteč mřížky.</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc>Parametry uzlu <span translate="no">Layout</span></desc>
+      <media type="image" src="figures/glabels-template-layout.png" mime="image/png" style="right">
+        <p>Parametry uzlu <span translate="no">Layout</span></p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ***************** -->
+  <!-- END Layout Node   -->
+  <!-- ***************** -->
+
+
+</page>
diff --git a/help/cs/merge-ex1.page b/help/cs/merge-ex1.page
new file mode 100644 (file)
index 0000000..ccff005
--- /dev/null
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge-ex1" xml:lang="cs">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Vytvoření jmenovek ze souboru CSV.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Příklad 1: Jmenovky</title>
+
+      <p>V tomto příkladu pořádáme seznamovací párty pro nové členy osádky naší lodi. Máme seznam nováčků v osádce, který jsme vytvořili v aplikaci <app>gnumeric</app> a následně jej vyexportovali do souboru CSV. Mohli bychom jej vytvořit i v textovém editoru, ale žijeme přece v 21. století.</p>
+
+      <code>
+jmeno,zarazeni,cislo
+"Jiří Kroupa",vedení,"SC937-0176 CEC"
+"prof. Hrbolek",vědec,S179-276SP
+"MUDr. Kroupová",lékař,unknown
+"Viktor Hujer",technik,SE-197-54T
+      </code>
+
+      <p>V aplikaci <app>gLabels</app> máme vytvořený dokument vycházející ze šablony Avery 5395 „Etikety na jmenovky“. Nyní použijeme položku nabídky <guiseq><gui>Objekty</gui><gui>Vlastnosti slučování</gui></guiseq> a zobrazí se nám dialogové okno <gui>vlastnosti slučování</gui>. Toto dialogové okno použijeme k výběru typu zdroje (v našem případě CSV s klíči na 1. řádku) a vlastního zdroje (souboru), jak můžete vidět níže.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-1.png" mime="image/png" style="right">
+               <p>Dialogové okno vlastností slučování</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně spokojení, klikneme na <gui>OK</gui> a změny se použijí.</p>
+
+      <p>Nyní můžeme začít s přidáváním objektů do svého dokumentu <app>glabels</app>, jak je ukázáno níže.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-2.png" mime="image/png" style="right">
+               <p>Přidávání objektů</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>V tomto příkladu máme přidané tři textové objekty a čárový kód. První textový objekt obsahuje pouze prostý text („Ahoj, jmenuji se“). Druhý textový objekt obsahuje jedno slučované pole („${jmeno}“), které odpovídá prvnímu poli v záznamu (první sloupec v řádku) a které obsahuje celé jméno nového člena osádky. Třetí textové pole obsahuje jak text („Zařazení: “), tak za ním následuje jedno slučované pole („${zarazeni}“), které odpovídá druhému poli se zařazením člena posádky. Objekt s čárovým kódem je nastavený na použití pole (klíče) „cislo“, které obsahuje identifikační číslo člena posádky.</p>
+
+      <p>Nyní můžeme své jmenovky vytisknout pomocí položky nabídky <guiseq><gui>Soubor</gui><gui>Tisk</gui></guiseq>. Zobrazí se dialogové okno jako na následujícím obrázku.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-3.png" mime="image/png" style="right">
+               <p>Tisk jmenovek</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Nyní zkontrolujeme, zda vypadají etikety jak mají. Vybereme možnost <gui>Tisk obrysů</gui> a klikneme na <gui>Náhled tisku</gui>. Zobrazí se dialogové okno s náhledem tisku, stejně jako na následujícím obrázku.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-4.png" mime="image/png" style="right">
+               <p>Náhled jmenovek</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Vše vypadá v pořádku, takže můžeme do tiskárny vložit správný list s etiketami, vytisknout jmenovky a vzhůru na palubu nalodit naše hosty.</p>
+
+
+</page>
diff --git a/help/cs/merge-ex2.page b/help/cs/merge-ex2.page
new file mode 100644 (file)
index 0000000..93a7711
--- /dev/null
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge-ex2" xml:lang="cs">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Vytvoření adresních štítků ze souboru CSV.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Příklad 2: Adresní štítky</title>
+
+      <p>V tomto příkladu se chystáme uspořádat večírek a potřebujeme vytisknout adresní štítky na své pozvánky. Máme seznam svých nejbližších přátel, který jsem vytvořili v aplikaci <app>gnumeric</app> a vyexportovali jej jako soubor CSV. Povšimněte si, že ne všichni mají přezdívku nebo dvouřádkovou adresu.</p>
+
+      <code>
+PRIJMENI,JMENO,PREZDIVKA,ADR1,ADR2,MESTO,PSC
+,,,,,,,
+Pacovský,Tomáš,,"U dvou akordů","Křižíkova 506",Praha,"123 00"
+Pacovský,František,Ozzák,"Křižíkova 62",,"Praha - Vinohrady","110 00"
+Divičová,Marcela,,"Náměstí míru 1",,Praha,"150 00"
+Bůček,Alexandr,Lexa,"U Jezevce","Nitranská 7",Praha,"160 13"
+Bůčková,Alexandra,,"Korunní 18",,Praha,"100 24"
+      </code>
+
+      <p>V aplikaci <app>gLabels</app> vytvoříme nový dokument ze šablony Avery L7162 „Poštovní etikety“. Následně použijeme položku nabídky <guiseq><gui>Objekty</gui><gui>Vlastnosti slučování</gui></guiseq> a zobrazí se nám dialogové okno <gui>vlastností slučování</gui>. V tomto dialogovém okně vybereme typ zdroje (v našem případě CSV s klíči na 1. řádku) a konkrétní zdroj (název souboru) pro slučování, jak můžete vidět na následujícím obrázku.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-1.png" mime="image/png" style="right">
+               <p>Dialogové okno vlastností slučování</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Před použitím zdroje slučování zrušíme zaškrtnutí prvního záznamu, protože ten obsahuje pouze prázdná pole. To je pozůstatek z naší původní tabulky vytvořené v <app>gnumeric</app> a akorát bychom tím zničili první etiketu. Stejným způsobem můžeme zrušit zaškrtnutí kteréhokoliv záznamu, který nechceme vytisknout.</p>
+
+      <p>U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně spokojení, klikneme na <gui>OK</gui> a změny se použijí.</p>
+
+      <p>Nyní můžeme začít s přidáváním objektů do svého dokumentu <app>glabels</app>, jak je ukázáno níže.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-2.png" mime="image/png" style="right">
+               <p>Přidávání objektů</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>V tomto příkladu máme jen jeden textový objekt. Tento textový objekt obsahuje všechna slučovaná pole uspořádaná v několika řádcích představujících poštovní adresu. Všimněte si, že pole ${ADR1} a ${ADR2} jsou umístěná na samostatných řádcích bez jakéhokoliv dalšího textu. Pokud aplikace <app>gLabels</app> narazí na pole, které je jediným textem na řádku a toto pole je prázdné, řádek nebude ve výsledku zabírat žádné místo.</p>
+
+      <p>Nyní se můžeme pustit do tisku adresních štítků pomocí volby <guiseq><gui>Soubor</gui><gui>Tisk</gui></guiseq> v nabídce. Zobrazí se dialogové okno tisku jako na následujícím obrázku.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-3.png" mime="image/png" style="right">
+               <p>Tisk etiket s adresami</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Nyní zkontrolujeme, zda vypadají etikety jak mají. Vybereme možnost <gui>Tisk obrysů</gui> a klikneme na <gui>Náhled tisku</gui>. Zobrazí se dialogové okno s náhledem tisku, stejně jako na následujícím obrázku.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-4.png" mime="image/png" style="right">
+               <p>Náhled etiket s adresami</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Vše vypadá dobře a tak můžeme vložit do tiskárny správný list s etiketami, vytisknout adresní štítky a začít rozesílat pozvánky na večírek.</p>
+
+</page>
diff --git a/help/cs/merge-ex3.page b/help/cs/merge-ex3.page
new file mode 100644 (file)
index 0000000..8d1a229
--- /dev/null
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge-ex3" xml:lang="cs">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Vytvoření adresních štítků ze záznamů adresáře aplikace <app>Evolution</app>.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Příklad 3: Adresní štítky z adresáře aplikace <app>Evolution</app></title>
+
+      <p>Náš předchozí večírek měl velký úspěch a my nyní chceme vytisknout adresní štítky pro pozvánky na další takový. Abychom si to zjednodušili, můžeme použít adresář aplikace <app>Evolution</app>, protože adresy všech našich přátel máme uložené v něm.</p>
+
+      <note>
+       <p>V závislosti na tom, jak byl připravený váš balíček <app>gLabels</app>, nemusí být tato funkčnost dostupná. Podpora pro adresář <app>Evolution</app> je dostupná jen v případě, že byl při překladu aplikace <app>gLabels</app> k dispozici <app>evolution-data-server</app> a k němu vývojářské soubory. Mějte toto na paměti, pokud si aplikaci překládáte sami ze zdrojových kódů.</p>
+       
+       <p>Pokud balíček <app>gLabels</app> ve vaší distribuci tuto podporu postrádá, můžete zkusit kontaktovat správce balíčku nebo to zkusit nahlásit jako požadavek do systému pro hlášení chyb.</p>
+      </note>
+
+      <p>V aplikaci <app>glabels</app> vytvoříme nový dokument ze šablony Avery L7162 „Poštovní etikety“. Potom v nabídce zvolíme <guiseq><gui>Objekty</gui><gui>Vlastnosti slučování</gui></guiseq>, aby se nám zobrazilo dialogové okno <gui>Vlastnosti slučování</gui>. V něm vybereme typ zdroje (v našem případě <gui>Data z výchozího adresáře Evolution</gui>), jak je ukázáno na obrázku.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-1.png" mime="image/png" style="right">
+               <p>Dialogové okno vlastností slučování</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Když máme jako zdroj slučování vybráno <gui>Data z výchozího adresáře Evolution</gui>, obdržíme úplný seznam jeho obsahu. Na začátku jsou zaškrtnuté všechny položky. Předpokládá se, že budeme pořádat opravdu velký večírek a tak bychom mohli ponechat výběr jak je (ale uvědomte si kolik to bude stát). Nyní některé záznamy kliknutím na příslušné zaškrtávací políčko vyřadíme nebo naopak vybereme, případně můžeme použít tlačítka <gui>Vybrat vše</gui> a <gui>Zrušit výběr</gui> pro aktivování nebo deaktivování všech záznamů v adresáři.</p>
+      <p>U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně spokojení, klikneme na <gui>OK</gui> a změny se použijí.</p>
+
+      <p>Nyní můžeme začít s přidáváním objektů do svého dokumentu <app>glabels</app>, jak je ukázáno níže.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-2.png" mime="image/png" style="right">
+               <p>Přidávání objektů</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>V tomto příkladu máme opět jen jeden textový objekt. Ten obsahuje všechna slučovaná pole uspořádaná v několika řádcích, představujících poštovní adresy.</p>
+
+      <p>Nyní můžeme své etikety s adresami vytisknout volbou položky nabídky <guiseq><gui>Soubor</gui><gui>Tisk</gui></guiseq>. Zobrazí se dialogové okno tisku, jak jej můžete vidět níže.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-3.png" mime="image/png" style="right">
+               <p>Tisk etiket s adresami</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Nyní zkontrolujeme, zda vypadají etikety jak mají. Vybereme možnost <gui>Tisk obrysů</gui> a klikneme na <gui>Náhled tisku</gui>. Zobrazí se dialogové okno s náhledem tisku, stejně jako na následujícím obrázku.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-4.png" mime="image/png" style="right">
+               <p>Náhled etiket s adresami</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Vše vypadá dobře a tak můžeme vložit do tiskárny správný list s etiketami, vytisknout adresní štítky a začít rozesílat pozvánky na večírek.</p>
+
+
+</page>
diff --git a/help/cs/merge-ex4.page b/help/cs/merge-ex4.page
new file mode 100644 (file)
index 0000000..981ce00
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge-ex4" xml:lang="cs">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Vytvoření adresních štítků ze souboru VCard.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Příklad 4: Adresní štítky s použitím souboru VCard</title>
+
+
+</page>
diff --git a/help/cs/merge.page b/help/cs/merge.page
new file mode 100644 (file)
index 0000000..777c7fe
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge" xml:lang="cs">
+
+  <info>
+    <link type="guide" xref="index#merging"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Jak slučovat zdroje dat při vytváření více dokumentů.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Výuka slučování dokumentů</title>
+
+    <p>Slučování dokumentů (někdy také nazývané „hromadná korespondence“) je mocná funkce, díky které můžete tisknout odlišné etikety nebo vizitky pro každý záznam v externím zdroji dat. Je však také ze všech funkcí aplikace <app>gLabels</app> nejnáročnější na pochopení. Následující příklady vás provedou několika obvyklými úlohami, které používají funkci slučování dokumentů.</p>
+
+  <section id="merge-ex" style="2column">
+  </section>
+
+</page>
diff --git a/help/cs/mergefeatures.page b/help/cs/mergefeatures.page
new file mode 100644 (file)
index 0000000..c4f99f0
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="mergefeatures" xml:lang="cs">
+
+  <info>
+    <link type="guide" xref="index#merging"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Co můžete očekávat od slučování dokumentů.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Provádění slučování dokumentů</title>
+
+      <p>Slučování dokumentů (někdy také nazývané „hromadná korespondence“) je mocná funkce, která umožňuje vytisknout na etikety nebo vizitky různé texty podle jednotlivých záznamů v externím zdroji dat.</p>
+
+      <p>Prvním krokem při slučování dokumentů je příprava zdrojového dokumentu, který má obsahovat slučovaná data. Tato data mohou být poštovní adresy nebo jakákoliv jiná data, pro která si přejete vytvořit jedinečné etikety nebo vizitky. V současnosti jsou zatím jako zdroje podporované pouze textové soubory a datový server Evolution, jiné jsou v plánu. Současně podporovaný formát textových souborů je velmi jednoduchý: co řádek, to záznam; pole jsou oddělená čárkami (CSV), tabulátory nebo dvojtečkami; řádky jsou zakončené pomocí znaku „\n“. Takovýto soubor jde vytvořit v libovolném textovém editoru nebo jiným programem nebo skriptem. Obvyklým způsobem vytváření souborů CSV je jejich export z tabulkového kalkulátoru.</p>
+
+      <p>Etiketa musí být nastavená tak, aby „ukazovala na“ takovýto datový soubor. Abyste nastavili vlastnosti slučování dokumentu, zvolte položku nabídky <guiseq><gui>Objekty</gui><gui>Vlastnosti slučování</gui></guiseq> a zobrazí se dialogové okno <gui>vlastnosti slučování</gui>. Toto dialogové okno slouží k výběru přesného formátu datového souboru a názvu (umístění) souboru se slučovanými daty.</p>
+
+      <p>Nakonec, až je etiketa nastavená pro datový soubor, je zapotřebí vložit klíče polí do textových objektů a použít klíče polí jako zdroje nebo data pro objekty čárových kódů a jako názvy souborů pro obrázkové objekty. Více informací o použití slučovaných dat pro tyto typy objektů viz <link xref="editprop"/>.</p>
+
+      <p>Nyní, když máte svoji etiketu nastavenou, bude aplikace <app>gLabels</app> tisknout jednotlivé etikety odlišné pro každý záznam ve vašem zdrojovém dokumentu – do klíčů polí se ve všech textech budou dosazovat pole z jednotlivých záznamů.</p>
+
+      <p>Podrobný výklad funkcí slučování dokumentů viz <link xref="merge"/>.</p>
+
+</page>
diff --git a/help/cs/multifile.page b/help/cs/multifile.page
new file mode 100644 (file)
index 0000000..7c262d1
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="multifile" xml:lang="cs">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Jak otevřít více souborů naráz pomocí příkazového řádku.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Jak otevřít více souborů z příkazového řádku</title>
+
+      <p>Aplikaci <app>gLabels</app> můžete spustit z příkazového řádku a otevřít při tom jeden nebo více souborů. Pokud chcete otevřít z příkazového řádku více souborů, napište následující příkaz a zmáčkněte <key>Enter</key>:</p>
+
+      <p><cmd>glabels <var>soubor1.glabels soubor2.glabels soubor3.glabels</var></cmd></p>
+
+      <p>Po spuštění aplikace se každý ze zadaných souborů zobrazí v samostatném okně <application>gLabels</application>.</p>
+
+</page>
diff --git a/help/cs/newlabel.page b/help/cs/newlabel.page
new file mode 100644 (file)
index 0000000..c69f2a1
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="newlabel" xml:lang="cs">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Jak vytvořit novou etiketu nebo vizitku v aplikaci <app>gLabels</app>.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Vytváření nové etikety nebo vizitky</title>
+
+    <p>Když chcete vytvořit novou etiketu nebo vizitku, zvolte <guiseq><gui>Soubor</gui><gui>Nový</gui></guiseq> a zobrazí se dialogové okno <gui>Nová etiketa či vizitka</gui>. Vyberte pro nový dokument typ média a orientaci a klikněte na <gui>OK</gui>. Nový dokument se zobrazí v zobrazovací oblasti okna <app>gLabels</app>.</p>
+
+</page>
diff --git a/help/cs/printfile.page b/help/cs/printfile.page
new file mode 100644 (file)
index 0000000..19fa38c
--- /dev/null
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="printfile" xml:lang="cs">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Jak vytisknout etikety nebo vizitky.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Tisk etiket a vizitek</title>
+
+      <p>Když chcete vytisknout etikety nebo vizitky, zvolte <guiseq><gui>Soubor</gui><gui>Tisk</gui></guiseq> a zobrazí se dialogové okno <gui>Tisk</gui>. Až nastavíte volby tisku, klikněte na <gui>Tisk</gui> a etikety nebo vizitky se vytisknou. Pokud se chcete jen podívat na náhled, klikněte místo toho na <gui>Náhled tisku</gui>.</p>
+
+      <p>V dialogovém okně <gui>Tisk</gui> můžete nastavit následující volby tisku:</p>
+
+      <section>
+       <title>Karta Etikety v dialogovém okně Tisk</title>
+
+       <section>
+            <title>Ovládání tisku (jednoduchý)</title>
+
+             <p>Pro jednoduché etikety nebo vizitky (bez slučování dokumentů), obsahuje karta úlohy následující ovládací prvky pro nastavení kopie.</p>
+
+             <!-- ==== Figure ==== -->
+               <media type="image" src="figures/print-copies.png" mime="image/png" style="right">
+               <p>Ovládací prvky tisku kopií</p>
+               </media>
+             <!-- ==== End of Figure ==== -->
+
+             <p>Počet kopií etikety můžete vybrat zvolením počtu plných listů, které se mají vytisknout, a nebo vybrat jen část etiket na jednom listu.</p>
+
+             <p>Minináhled můžete také použít ke grafickému výběru části etiket tak, že kliknete na první etiketu v minináhledu a táhnete až na poslední etiketu.</p>
+
+         </section>
+
+         <section>
+            <title>Ovládání tisku (slučování)</title>
+
+             <p>Pro etikety nebo vizitky používající slučování dokumentů (někdy také nazývané „hromadná korespondence“), obsahuje karta úlohy následující ovládací prvky slučování, lišící se od ovládacích prvků jednoduchého tisku.</p>
+
+             <!-- ==== Figure ==== -->
+               <media type="image" src="figures/print-merge.png" mime="image/png" style="right">
+               <p>Ovládací prvky tisku slučovaných dokumentů</p>
+               </media>
+             <!-- ==== End of Figure ==== -->
+
+             <p>Celkový počet etiket nebo vizitek je dán počtem záznamů ve zdroji slučování a počtem vybraných kopií. Jestliže je vybráno více kopií, mohou být také uspořádané (kopie ze stejného záznamu seskupené spolu) nebo neuspořádané (kopie jednotlivých záznamů za sebou).</p>
+
+             <p>Tisk může začínat na libovolné etiketě na prvním listu. Tu můžete vybrat pomocí číselníku <gui>Začít na etiketě</gui>.</p>
+
+             <p>Minináhled můžete také použít ke grafickému výběru první etikety tak, že na ni v minináhledu kliknete.</p>
+
+         </section>
+
+         <section> 
+         <title>Volby</title>
+             <p>Můžete rovněž vybrat následující volby.</p>
+             <list>
+               <item>
+                 <p><gui>tisk obrysů</gui></p>
+                 <p>Tisk obrysů etiket. Tato volba je použitelná k tisku nanečisto, k otestování lícování.</p>
+               </item>
+               <item>
+                 <p><gui>obrácený tisk</gui></p>
+                 <p>Tisknout etikety zrcadlově. Tato volba je použitelná pro tisk na čiré etikety, na které se bude dívat z druhé strany (např. na okně auta).</p>
+               </item>
+               <item>
+                 <p><gui>tisknout značky pro ořez</gui></p>
+                 <p>Tisknout ořezové značky podél hran listu. Tato volba je použitelná pro tisk na čisté listy, které se budou po tisku rozřezávat. Tato volba nepracuje úplně správně se všemi šablonami.</p>
+               </item>
+             </list>
+       </section>
+       </section>
+
+</page>
diff --git a/help/cs/select.page b/help/cs/select.page
new file mode 100644 (file)
index 0000000..723f550
--- /dev/null
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="select" xml:lang="cs">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Jak vybrat objekty.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Výběr objektů</title>
+
+      <p>Předpokladem k provádění operací s objekty je výběr jednoho objektu či skupiny více objektů. Aby bylo možné výběr provést, musí být zobrazovací oblast v režimu výběru objektů, což je signalizováno kurzorem v podobě šipky. Režim výběru objektů se zvolí pomocí <guiseq><gui>Objekty</gui><gui>Režim výběru</gui></guiseq> nebo odpovídajícím příkazem na <gui>Liště kreslení</gui>.</p>
+
+      <section>
+         <title>Výběr jednoho objektu</title>
+           <p>Jeden objekt vyberete prostým kliknutím na něj v zobrazovací oblasti. Vybraný objekt bude zvýrazněný pomocí úchytů sloužících ke změně velikosti</p>
+       </section>
+
+       <section>
+         <title>Přidávání objektů do výběru</title>
+           <p>Více objektů můžete vybrat tak, že vyberete první dříve uvedeným způsobem a po té budete držet klávesu <key>Ctrl</key> a vybírat další objekty. Jednotlivé objekty lze přidat do stávajícího výběru kdykoliv držením klávesy <key>Ctrl</key> během vybírání požadovaných objektů. Všechny objekty můžete vybrat pomocí položky nabídky <guiseq><gui>Upravit</gui><gui>Vybrat vše</gui></guiseq>. Všechny objekty ve výběru jsou zvýrazněné.</p>
+       </section>
+
+       <section>
+         <title>Výběr oblasti</title>
+         
+           <p>Více objektů lze rovněž vybrat zmáčknutím tlačítka myši na prázdném místě a tažením obdélníkové oblasti. Po uvolnění tlačítka se všechny objekty obsažené v takovéto oblasti naráz vyberou. Výběr pomocí oblasti lez použít k přidání ke stávajícímu výběru podržením klávesy <key>Ctrl</key> během provádění výběru.</p>
+         
+       </section>
+
+       <section>
+         <title>Zrušení výběru objektů</title>
+         
+           <p>Jednotlivé objekty lze z výběru odebrat podržením klávesy <key>Ctrl</key> a klikáním na označené objekty. Veškerý výběr můžete zrušit pomocí nabídky <guiseq><gui>Upravit</gui><gui>Zrušit výběr</gui></guiseq> nebo jednoduchým kliknutím na prázdné místo v zobrazovací oblasti. Jakmile je u objektu zrušen výběr, zmizí i jeho zvýraznění.</p>
+         
+       </section>
+
+    <section id="clipboard"> 
+      <title>Příkazy pro práci se schránkou</title>
+
+      <p>S vybranými objekty lze manipulovat pomocí standardních operací se schránkou <gui>Vyjmout</gui>, <gui>Kopírovat</gui>, <gui>Vložit</gui> a <gui>Smazat</gui>.</p>
+
+       <section>
+         <title><gui>Vyjmout</gui> (<keyseq><key>Ctrl</key><key>X</key></keyseq>)</title>
+         
+           <p>Přesune vybrané objekty do schránky. Objekty jsou potom přístupné pro vkládání zpátky do aktuálního dokumentu nebo jiného dokumentu.</p>
+         
+       </section>
+
+       <section>
+         <title><gui>Kopírovat</gui> (<keyseq><key>Ctrl</key><key>C</key></keyseq>)</title>
+         
+           <p>Zkopíruje vybrané objekty do schránky, aniž by byly vymazány. Objekty jsou potom přístupné pro vkládání zpátky do aktuálního dokumentu nebo jiného dokumentu.</p>
+         
+       </section>
+
+       <section>
+         <title><gui>Vložit</gui> (<keyseq><key>Ctrl</key><key>V</key></keyseq>)</title>
+         
+           <p>Vloží objekty ze schránky do aktuálního dokumentu. Aplikace <app>gLabels</app> umí vkládat pouze objekty z jiného dokumentu <app>gLabels</app>.</p>
+         
+       </section>
+
+       <section>
+         <title><gui>Smazat</gui> (<key>Del</key>)</title>
+         
+           <p>Smaže vybrané objekty, aniž by byly umístěny do schránky.</p>
+         
+       </section>
+       </section>
+
+</page>
diff --git a/help/cs/skipfields.page b/help/cs/skipfields.page
new file mode 100644 (file)
index 0000000..8a34c60
--- /dev/null
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="mergeskipfields" xml:lang="cs">
+
+  <info>
+    <link type="guide" xref="index#merging"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Jak přeskakovat prázdné řádky v adresách při slučování dokumentu.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+  <title>Přeskakování prázdných řádků v adresách</title>
+
+  <p>Tuto funkci bude nejlepší popsat příkladem. V následujícím souboru CSV obsahuje sloupec 2 (OSOBA) konkrétní osobu v adrese do firmy pro každý záznam. Toto pole je v záznamech 1 a 2 prázdné, ale ve 3. záznamu ne. (Aby tato funkce pracovala, musí být pole úplně prázdné – jakýkoliv text, a to včetně mezer, překazí použití této funkce.)</p>
+
+  <code>
+  FIRMA,OSOBA,ADR,MESTO,PSC
+  "Stolařství Novák &amp; syn",,"Pod Lesem 4","Ústí nad Orlicí","562 03"
+  "Dřevolak s.r.o.",,"Barvírenská 78/436",Třešť,"589 01"
+  "Nábytek holding a.s.","Ing. Jiří Procházka","Vídeňská 95",Brno,"619 00"
+  </code>
+
+  <p>Na následujícím snímku obrazovky byl pro formátování těchto adres vytvořen textový objekt s více řádky. Všimněte si, že ${OSOBA} představující osobu v adres do firmy, je na svém vlastním řádku. (Jakýkoliv další text na stejném řádku, a to včetně mezer, by překazil tuto funkci.)</p>
+
+  <media type="image" src="figures/skip-fields-screenshot.png" mime="image/png" style="right">
+  <p>Adresa na víc řádků</p>
+  </media>
+
+  <p>Výsledky tisku můžete vidět na následujícím výstupu. Všimněte si, že řádek obsahující pole ${OSOBA} byl u prvních dvou záznamů zcela vynechán, nevytiskl se ani prázdný řádek.</p>
+
+  <media type="image" src="figures/skip-fields-output.png" mime="image/png" style="right">
+  <p>Výstup</p>
+  </media>
+
+</page>
diff --git a/help/de/about.page b/help/de/about.page
new file mode 100644 (file)
index 0000000..272ddf9
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="topic" id="about" xml:lang="de">
+
+  <info>
+    <link type="seealso" xref="index"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Informationen über <app>gLabels</app>.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Info zu <app>gLabels</app></title>
+
+    <p><app>gLabels</app> wurde von <link href="mailto:evins@snaught.com">Jim Evins</link> geschrieben. Weitere Informationen zu <app>gLabels</app> finden Sie auf der <link href="http://glabels.org" type="http"><app>gLabels</app>-Webseite</link>.</p>
+    <p>Um einen Fehler zu melden oder einen Vorschlag zur Anwendung <app>gLabels</app> oder zu diesem Handbuch zu machen, folgen Sie den Anweisungen auf der <link href="http://glabels.org/contact/" type="http"><app>gLabels</app>-Kontaktseite</link>.</p>
+
+    <p>Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 3 der Lizenz oder (nach Ihrer Option) jeder späteren Version. Eine Kopie der GNU General Public License finden Sie unter diesem <link href="ghelp:gpl" type="help">Link</link> oder in der Datei COPYING, die im Quellcode dieses Programms enthalten ist.</p>
+</page>
diff --git a/help/de/basicusage.page b/help/de/basicusage.page
new file mode 100644 (file)
index 0000000..193089a
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="basicusage" xml:lang="de">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Umgang mit Dateien und Beenden der Anwendung.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+   <title>Grundlegende Bedienung</title>
+    
+    <section>
+    <title>Öffnen einer Datei</title>
+
+      <p>Um eine Datei zu öffnen, wählen Sie <guiseq><gui>Datei</gui><gui>Öffnen</gui></guiseq>, um den Dialog <gui>Datei öffnen</gui> anzuzeigen. Wählen Sie die gewünschte Datei aus und klicken Sie dann auf <gui>Öffnen</gui>. Die Datei wird im Anzeigebereich des <app>gLabels</app>-Fensters geöffnet.</p>
+
+      <p>Sie können in <app>gLabels</app> auch mehrere Dateien öffnen. Die Anwendung erzeugt ein separates Fenster für jede geöffnete Datei.</p>
+
+      <p>Die Anwendung speichert die Pfade und Dateinamen der von Ihnen zuletzt bearbeiteten Dateien. Diese Dateien werden als Einträge im Menü <guiseq><gui>Datei</gui><guisubmenu>Zuletzt benutzt</guisubmenu></guiseq> angezeigt.</p>
+     </section>
+
+     <section id="closefile">
+    <title>Schließen einer Datei</title>
+
+      <p>Um das aktuelle Dokument zu schließen, wählen Sie <guiseq><gui>Datei</gui><gui>Schließen</gui></guiseq>, um das Anwendungsfenster zu schließen. Falls das aktuelle Dokument bearbeitet wurde, wird ein Bestätigungsdialog geöffnet, in welchem Sie das Dokument speichern oder den Vorgang abbrechen können. Falls das zu schließende Fenster das einzige offene Fenster ist, wird <app>gLabels</app> dadurch beendet.</p>
+     </section>
+     
+     <section>
+    <title>Speichern einer Datei</title>
+
+      <p>Sie können Dateien auf folgende Arten speichern:</p>
+
+      <list><item>
+
+         <p>Um die Änderungen in der bereits vorhandenen Datei zu speichern, wählen Sie <guiseq><gui>Datei</gui><gui>Speichern</gui></guiseq>.</p>
+
+       </item>
+        <item>
+
+         <p>Um eine neue Datei oder eine bestehende Datei unter einem neuen Dateinamen zu speichern, wählen Sie <guiseq><gui>Datei</gui><gui>Speichern unter</gui></guiseq>. Geben Sie einen Namen für die Datei im Dialogfeld <gui>Speichern unter</gui> ein und klicken Sie anschließend auf <gui>OK</gui>. </p>
+
+       </item>
+      </list>
+     </section>
+
+     <section>
+    <title><app>gLabels</app> beenden</title>
+
+      <p>Um <app>gLabels</app> zu beenden, wählen Sie <guiseq><gui>Datei</gui><gui>Beenden</gui></guiseq>. Dies entspricht dem Schließen aller geöffneten Fenster. Siehe <link xref="basicusage#closefile"/>.</p>
+     </section>
+</page>
diff --git a/help/de/createnew.page b/help/de/createnew.page
new file mode 100644 (file)
index 0000000..ca48852
--- /dev/null
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="createnew" xml:lang="de">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Erstellen neuer Objekte in Ihrem Dokument.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Erstellen neuer Objekte</title>
+
+      <p>Objekte können ausgewählt werden, indem Sie das entsprechende Objekt in <guiseq><gui>Objekte</gui><gui>Erzeugen</gui></guiseq> auswählen, oder über die <gui>Zeichenwerkzeugleiste</gui>. Dadurch wird der Anzeigebereich in den Objekterzeugungsmodus versetzt, was am Mauszeiger erkennbar ist. Um zum vorgegebenen Objektauswahlmodus zurückzukehren, ohne ein Objekt zu erzeugen, wählen Sie <guiseq><gui>Objekte</gui><gui>Auswahlmodus</gui></guiseq>. Dadurch wird der Mauszeiger im Anzeigebereich wieder in den vorgegebenen Auswahlzeiger geändert.</p>
+
+      <p>Nachfolgend wird der Modus zur Erstellung der Objekte für jeden Objekttyp beschrieben:</p>
+
+       <section>
+         <title>Text</title>
+           <p>Klicken Sie auf die gewünschte Stelle in der linken oberen Ecke des Textobjekts. Neue Textobjekte erhalten anfänglich den Inhalt »Text«. Wie Sie diesen Text oder andere Eigenschaften ändern können, finden Sie in <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Rechteck</title>
+           <p>Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des Rechteckobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie einfach auf eine Stelle klicken, wird ein quadratisches Objekt erzeugt. Wie Sie die Eigenschaften des Rechteckobjekts ändern können, finden Sie in <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Linie</title>
+           <p>Klicken Sie auf die gewünschte Stelle für das Ende des Linienobjekts und ziehen Sie zur gewünschten Stelle des anderen Endes. Wenn Sie einfach auf eine Stelle klicken, wird eine diagonale Linie erzeugt. Wie Sie die Eigenschaften des Linienobjekts ändern können, finden Sie in <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Ellipse</title>
+           <p>Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des Ellipsenobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie einfach auf eine Stelle klicken, wird ein Kreis erzeugt. Wie Sie die Eigenschaften des Ellipsenobjekts ändern können, finden Sie in <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Image</title>
+           <p>Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des Bildobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie einfach auf eine Stelle klicken, wird ein quadratisches Objekt erzeugt. Neue Bildobjekte erhalten anfänglich ein Schachbrettmuster. Wie Sie dies oder andere Eigenschaften des Bildobjekts ändern können, finden Sie in <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Strichcode</title>
+           <p>Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des Strichcodeobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Neue Objekte erhalten anfänglich einen POSTNET-Strichcode mit Beispieldaten. Wie Sie die Eigenschaften des Strichcodeobjekts ändern können, finden Sie in <link xref="editprop"/>.</p>
+       </section>
+
+</page>
diff --git a/help/de/customize.page b/help/de/customize.page
new file mode 100644 (file)
index 0000000..d2bf4e6
--- /dev/null
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="customize" xml:lang="de">
+
+  <info>
+    <link type="guide" xref="index#advanced"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Anpassen von <app>gLabels</app> an Ihre Bedürfnisse.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+    
+  <!-- ============= Customization ============================= -->
+  <!-- Use this section to describe how to customize the application. -->
+    <title>Einstellungen</title> 
+    <p>Um <app>gLabels</app> zu konfigurieren, wählen Sie <guiseq><gui>Einstellungen</gui><gui>Einstellungen</gui></guiseq>. Der Dialog <gui>Einstellungen</gui> enthält die folgenden Reiter:</p>
+
+  <section id="prefs-locale" style="2column">
+    <title>Lokale Einstellungen</title>
+       <section>
+       <title>Einheiten</title>
+       <p>Verwenden Sie diese Radioknöpfe, um Ihre bevorzugten Maßeinheiten festzulegen. Wählen Sie aus den folgenden Optionen:</p>
+          <list>
+               <item>
+               <p><gui>Punkte</gui></p>
+               <p>Punkte verwenden (1 Punkt = 1/72 Zoll = 0.352778 mm).</p>
+               </item>
+               <item>
+               <p><gui>Zoll</gui></p>
+               <p>Zoll verwenden.</p>
+               </item>
+               <item>
+               <p><gui>Millimeter</gui></p>
+               <p>Millimeter verwenden.</p>
+               </item>
+          </list>
+          <p>Standard: <gui>Zoll</gui>.</p>
+       </section>
+
+       <section>
+       <title>Vorgegebene Seitengröße</title>
+       <p>Verwenden Sie diese Radioknöpfe zur Auswahl Ihrer bevorzugten Papiergröße. Dadurch lassen sich beim Erstellen neuer Etiketten oder Visitenkarten die entsprechenden Papiertypen schneller finden.</p>
+          <list>
+               <item>
+               <p><gui>US-Letter</gui></p>
+               <p>Die meisten Ihrer Medien haben das US-Letter-Format (8.5 x 11 inches).</p>
+               </item>
+               <item>
+               <p><gui>ISO A4</gui></p>
+               <p>Die meisten Ihrer Medien haben das ISO-A4-Format (210 x 297 mm).</p>
+               </item>
+          </list>
+          <p>Standard: <gui>US-Letter</gui>.</p>               
+       </section>
+    </section>
+
+  <section id="prefs-defaults" style="2column">
+    <title>Objekt-Vorgaben</title>
+
+       <section>
+       <title>Text</title>
+       <p>Verwenden Sie diese Einstellmöglichkeiten, um die Standardeigenschaften neuer Textobjekte festzulegen. Diese Eigenschaften sind:</p>
+          <list>
+               <item>
+               <p><gui>Schrift</gui></p>
+               <p>Verwenden Sie diese Einstellmöglichkeiten, um die Schriftfamilie und -größe festzulegen, sowie um anzugeben, ob die Schrift fett oder kursiv dargestellt werden soll.</p>
+               </item>
+               <item>
+               <p><gui>Farbe</gui></p>
+               <p>Diese Einstellung wählt die Standard-Textfarbe aus.</p>
+               </item>
+               <item>
+               <p><gui>Ausrichtung</gui></p>
+               <p>Mit diesen Einstellungen wählen Sie die vorgegebene Textausrichtung (links, mittig oder rechts).</p>
+               </item>
+          </list>
+       </section>
+
+       <section>
+       <title>Linie</title>
+       <p>Verwenden sie diese Einstellmöglichkeiten, um die Standardeigenschaften von Linien und Begrenzungen neuer Objekte festzulegen. Diese Eigenschaften sind:</p>
+          <list>
+               <item>
+               <p><gui>Breite</gui></p>
+               <p>Diese Einstellung wählt die Standard-Linienbreite aus.</p>
+               </item>
+               <item>
+               <p><gui>Farbe</gui></p>
+               <p>Diese Einstellung wählt die Standard-Linienfarbe aus.</p>
+               </item>
+          </list>
+       </section>
+
+       <section>
+       <title>Füllen</title>
+       <p>Verwenden Sie diese Einstellmöglichkeiten zum Angeben der Füllungseigenschaften eines neuen Objekts. Diese Eigenschaften sind:</p>
+          <list>
+               <item>
+               <p><gui>Farbe</gui></p>
+               <p>Diese Einstellung wählt die Standard-Füllfarbe aus.</p>
+               </item>
+          </list>
+       </section>
+       </section>
+
+</page>
diff --git a/help/de/customtemplate.page b/help/de/customtemplate.page
new file mode 100644 (file)
index 0000000..f2c7b7b
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="customtemplate" xml:lang="de">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Erstellen Ihrer eigenen Vorlagen für Ihre Etiketten- und Visitenkartenbögen.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Erstellen einer benutzerdefinierten Vorlage</title>
+
+      <p>Um eine neue benutzerdefinierte Vorlage zu erstellen, wählen Sie <guiseq><gui>Datei</gui><gui>Vorlagen-Designer …</gui></guiseq>, um den <gui>Vorlagen-Designer</gui>-Dialog anzuzeigen. Dieser Dialog hilft Ihnen bei der Erstellung einer benutzerdefinierten Vorlage für die meisten Typen von Etiketten oder Visitenkarten, die Ihnen in Schreibwarengeschäften begegnen könnten.</p>
+
+      <p>Falls Sie dies bevorzugen, können Sie Ihre Vorlagen auch manuell erstellen. Weitere Informationen hierzu finden Sie in <link xref="mancreate"/></p>
+
+</page>
index 12f0f96c1ed4879b2c24934ed1702814bc198d2c..495efe4d137c3f71b1049ea562b99638d500b3cd 100644 (file)
@@ -1,11 +1,11 @@
-# German translation of the gLabels2 documentation.
-# Mario Blättermann <mariobl@gnome.org>, 2008, 2009.
+# German translation of the gLabels3 documentation.
+# Mario Blättermann <mariobl@gnome.org>, 2008-2010.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: glabels2\n"
-"POT-Creation-Date: 2010-01-09 14:14+0000\n"
-"PO-Revision-Date: 2010-01-16 19:18+0100\n"
+"Project-Id-Version: glabels master\n"
+"POT-Creation-Date: 2010-12-26 22:36+0000\n"
+"PO-Revision-Date: 2011-01-02 00:16+0100\n"
 "Last-Translator: Mario Blättermann <mariobl@gnome.org>\n"
 "Language-Team: German <gnome-de@gnome.org>\n"
 "MIME-Version: 1.0\n"
@@ -16,742 +16,377 @@ msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:195(None)
+#: C/skipfields.page:45(None)
 msgid ""
-"@@image: 'figures/main-window-empty.png'; md5=226b58f05f4171531066358a29cda1a7"
-msgstr "translated"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:447(None)
-msgid ""
-"@@image: 'figures/print-copies.png'; md5=ebb4d08810a67cc9cd7ec6ddd7b52fb0"
-msgstr "translated"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:479(None)
-msgid "@@image: 'figures/print-merge.png'; md5=ffe6027513a10f7ba940c350c1dc5717"
-msgstr "translated"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:790(None)
-msgid ""
-"@@image: 'figures/object-editor-sidebar.png'; "
-"md5=14eace177c1f5bfe36022acbbd6a9f0e"
-msgstr "translated"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1231(None)
-msgid "@@image: 'figures/merge-ex1-1.png'; md5=55a97963022047cdad6aa198b5ed698e"
-msgstr "translated"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1256(None)
-msgid "@@image: 'figures/merge-ex1-2.png'; md5=d03979f010e20e98532258edb20b1bc0"
-msgstr "translated"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1284(None)
-msgid "@@image: 'figures/merge-ex1-3.png'; md5=94e382ccdfbc2fe5d320010d2ef10c61"
-msgstr "translated"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1302(None)
-msgid "@@image: 'figures/merge-ex1-4.png'; md5=e72810bc3c191df6c8b2ad0cb1131021"
-msgstr "translated"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1348(None)
-msgid "@@image: 'figures/merge-ex2-1.png'; md5=4f062158be21bfadc4adfbdcf5d0206f"
-msgstr "translated"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1374(None)
-msgid "@@image: 'figures/merge-ex2-2.png'; md5=f69a7e0ae86f66b0d70d39a7757918fa"
-msgstr "translated"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1399(None) C/glabels.xml:1513(None)
-msgid "@@image: 'figures/merge-ex2-3.png'; md5=f5134b9e911ebdd17d4a5b36a5ba56d0"
-msgstr "translated"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1417(None) C/glabels.xml:1531(None)
-msgid "@@image: 'figures/merge-ex2-4.png'; md5=29a60e970cb026aecf75543203494b00"
-msgstr "translated"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1464(None)
-#| msgid ""
-#| "@@image: 'figures/merge-ex2-2.png'; md5=f69a7e0ae86f66b0d70d39a7757918fa"
-msgid "@@image: 'figures/merge-ex3-1.png'; md5=b0c387b5fcfd730b2ae75172895ff5b8"
-msgstr "translated"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1492(None)
-#| msgid ""
-#| "@@image: 'figures/merge-ex1-2.png'; md5=d03979f010e20e98532258edb20b1bc0"
-msgid "@@image: 'figures/merge-ex3-2.png'; md5=09f105e133657345e6e478a464e5b49f"
-msgstr "translated"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1767(None)
-msgid ""
-"@@image: 'figures/glabels-template-label.png'; "
-"md5=b7db4090373462b8d45feb22d4cd5646"
-msgstr "translated"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1888(None)
-msgid ""
-"@@image: 'figures/glabels-template-cd.png'; "
-"md5=145b49a5380de63ffa9451d2bbb81934"
-msgstr "translated"
+"@@image: 'figures/skip-fields-screenshot.png'; "
+"md5=eef4a81f48546bd7d3753656a3df9cb7"
+msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:2150(None)
-msgid ""
-"@@image: 'figures/glabels-template-layout.png'; "
-"md5=a8adcff0584be1f0275bc2a169a580df"
-msgstr "translated"
-
-#: C/glabels.xml:31(title)
-msgid "<application>gLabels</application> Manual V2.2.6"
-msgstr "<application>gLabels</application>-Handbuch V2.2.6"
-
-#: C/glabels.xml:33(para)
+#: C/skipfields.page:53(None)
 msgid ""
-"User manual for the <application>gLabels</application> label and business "
-"card creation program"
+"@@image: 'figures/skip-fields-output.png'; "
+"md5=b64d1a7fdf0d37e9a6d93f0bc2f9fa0d"
 msgstr ""
-"Benutzerhandbuch für <application>gLabels</application>, einem Programm zum "
-"Erstellen von Etiketten und Visitenkarten"
 
-#: C/glabels.xml:38(year)
-msgid "2003-2009"
-msgstr "2003-2009"
+#: C/skipfields.page:9(desc)
+msgid "How to skip blank address lines when doing a document merge."
+msgstr ""
+"Überspringen von leeren Adresszeilen bei der Ausführung einer "
+"Dokumentmischung."
 
-#: C/glabels.xml:39(holder) C/glabels.xml:42(publishername)
-#: C/glabels.xml:93(para) C/glabels.xml:103(para)
+#: C/skipfields.page:13(name) C/select.page:13(name) C/printfile.page:13(name)
+#: C/newlabel.page:13(name) C/multifile.page:13(name) C/merge.page:13(name)
+#: C/mergefeatures.page:13(name) C/merge-ex4.page:13(name)
+#: C/merge-ex3.page:13(name) C/merge-ex2.page:13(name)
+#: C/merge-ex1.page:13(name) C/mancreate.page:14(name)
+#: C/labelprop.page:13(name) C/index.page:11(name) C/editprop.page:13(name)
+#: C/customtemplate.page:13(name) C/customize.page:11(name)
+#: C/createnew.page:13(name) C/basicusage.page:13(name) C/about.page:13(name)
 msgid "Jim Evins"
 msgstr "Jim Evins"
 
-#: C/glabels.xml:2(para)
-msgid ""
-"Permission is granted to copy, distribute and/or modify this document under "
-"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any "
-"later version published by the Free Software Foundation with no Invariant "
-"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy "
-"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or in "
-"the file COPYING-DOCS distributed with this manual."
-msgstr ""
-"Das vorliegende Dokument kann gemäß den Bedingungen der GNU Free "
-"Documentation License (GFDL), Version 1.1 oder jeder späteren, von der Free "
-"Software Foundation veröffentlichten Version ohne unveränderbare Abschnitte "
-"sowie ohne Texte auf dem vorderen und hinteren Buchdeckel kopiert, verteilt "
-"und/oder modifiziert werden. Eine Kopie der GFDL finden Sie unter diesem "
-"<ulink type=\"help\" url=\"ghelp:fdl\">Link</ulink> oder in der mit diesem "
-"Handbuch gelieferten Datei COPYING-DOCS."
-
-#: C/glabels.xml:12(para)
-msgid ""
-"This manual is part of a collection of GNOME manuals distributed under the "
-"GFDL. If you want to distribute this manual separately from the collection, "
-"you can do so by adding a copy of the license to the manual, as described in "
-"section 6 of the license."
-msgstr ""
-"Dieses Handbuch ist Teil einer Sammlung von GNOME-Handbüchern, die unter der "
-"GFDL veröffentlicht werden. Wenn Sie dieses Handbuch getrennt von der "
-"Sammlung weiterverbreiten möchten, können Sie das tun, indem Sie eine Kopie "
-"der Lizenz zum Handbuch hinzufügen, wie es in Abschnitt 6 der Lizenz "
-"beschrieben ist."
-
-#: C/glabels.xml:19(para)
-msgid ""
-"Many of the names used by companies to distinguish their products and "
-"services are claimed as trademarks. Where those names appear in any GNOME "
-"documentation, and the members of the GNOME Documentation Project are made "
-"aware of those trademarks, then the names are in capital letters or initial "
-"capital letters."
-msgstr ""
-"Viele der Namen, die von Unternehmen verwendet werden, um ihre Produkte und "
-"Dienstleistungen von anderen zu unterscheiden, sind eingetragene "
-"Warenzeichen. An den Stellen, an denen diese Namen in einer GNOME-"
-"Dokumentation erscheinen, werden die Namen in Großbuchstaben oder mit einem "
-"großen Anfangsbuchstaben geschrieben, wenn das GNOME-Dokumentationsprojekt "
-"auf diese Warenzeichen hingewiesen wird."
-
-#: C/glabels.xml:35(para)
-msgid ""
-"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, "
-"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT "
-"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS "
-"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK "
-"AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR MODIFIED "
-"VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR MODIFIED VERSION "
-"PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY "
-"CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR "
-"CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS "
-"LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS "
-"AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND"
-msgstr ""
-"DIESES DOKUMENT WIRD »WIE VORLIEGEND« GELIEFERT, OHNE GARANTIEN IRGENDEINER "
-"ART, SOWOHL AUSDRÜCKLICH GENANNTE ALS AUCH ANGEDEUTETE. DIES BEZIEHT SICH "
-"AUCH OHNE EINSCHRÄNKUNG AUF GARANTIEN, DASS DIESES DOKUMENT ODER VERÄNDERTE "
-"FASSUNGEN DIESES DOKUMENTS FREI VON HANDELSDEFEKTEN, FÜR EINEN BESTIMMTEN "
-"ZWECK GEEIGNET IST ODER DASS ES KEINE RECHTE DRITTER VERLETZT. DAS VOLLE "
-"RISIKO WAS QUALITÄT, GENAUIGKEIT UND LEISTUNG DES DOKUMENTS ODER VERÄNDERTE "
-"FASSUNGEN DES DOKUMENTS LIEGT BEI IHNEN. SOLLTE EIN DOKUMENT ODER EINE "
-"VERÄNDERTE FASSUNG DAVON FEHLER IRGENDEINER ART BEINHALTEN, TRAGEN SIE (NICHT "
-"DER URSPRUNGSAUTOR, DER AUTOR ODER EIN MITWIRKENDER) DIE KOSTEN FÜR "
-"NOTWENDIGE DIENSTLEISTUNGEN, REPARATUREN ODER FEHLERKORREKTUREN. DIESER "
-"HAFTUNGSAUSSCHLUSS IST EIN ESSENZIELLER TEIL DIESER LIZENZ. DIE VERWENDUNG "
-"EINES DOKUMENTS ODER EINER VERÄNDERTEN VERSION DES DOKUMENTS IST NICHT "
-"GESTATTET AUßER UNTER BEACHTUNG DIESES HAFTUNGSAUSSCHLUSSES UND"
-
-#: C/glabels.xml:55(para)
-msgid ""
-"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING "
-"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY "
-"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE "
-"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR "
-"ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY "
-"CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK "
-"STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR "
-"LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED "
-"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE "
-"POSSIBILITY OF SUCH DAMAGES."
-msgstr ""
-"UNTER KEINEN UMSTÄNDEN UND AUF BASIS KEINER RECHTSGRUNDLAGE, EGAL OB DURCH "
-"UNERLAUBTEN HANDLUNGEN (EINSCHLIEßLICH FAHRLÄSSIGKEIT), VERTRAG ODER "
-"ANDERWEITIG KANN DER AUTOR, URSPRUNGSAUTOR, EIN MITWIRKENDER ODER EIN "
-"VERTRIEBSPARTNER DIESES DOKUMENTS ODER EINER VERÄNDERTEN FASSUNG DES "
-"DOKUMENTS ODER EIN ZULIEFERER EINER DIESER PARTEIEN, HAFTBAR GEMACHT WERDEN "
-"FÜR DIREKTE, INDIREKTE, SPEZIELLE, VERSEHENTLICHE ODER FOLGESCHÄDEN JEGLICHER "
-"ART, EINSCHLIEßLICH UND OHNE EINSCHRÄNKUNGEN SCHÄDEN DURCH VERLUST VON "
-"KULANZ, ARBEITSAUSFALL, COMPUTERVERSAGEN ODER COMPUTERFEHLFUNKTIONEN ODER "
-"ALLE ANDEREN SCHÄDEN ODER VERLUSTE, DIE SICH AUS ODER IN VERBINDUNG MIT DER "
-"VERWENDUNG DES DOKUMENTS UND VERÄNDERTER FASSUNGEN DES DOKUMENTS ERGEBEN, "
-"AUCH WENN DIE OBEN GENANNTEN PARTEIEN ÜBER DIE MÖGLICHKEIT SOLCHER SCHÄDEN "
-"INFORMIERT WAREN."
-
-#: C/glabels.xml:28(para)
-msgid ""
-"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS "
-"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: "
-"<placeholder-1/>"
-msgstr ""
-"DAS DOKUMENT UND VERÄNDERTE FASSUNGEN DES DOKUMENTS WERDEN UNTER DEN "
-"BEDINGUNGEN DER GNU FREE DOCUMENTATION LICENSE ZUR VERFÜGUNG GESTELLT MIT DEM "
-"WEITERGEHENDEN VERSTÄNDNIS, DASS: <placeholder-1/>"
-
-#: C/glabels.xml:52(firstname)
-msgid "Jim"
-msgstr "Jim"
-
-#: C/glabels.xml:53(surname)
-msgid "Evins"
-msgstr "Evins"
-
-#: C/glabels.xml:87(revnumber)
-msgid "gLabels Manual V2.2.6"
-msgstr "gLabels-Handbuch V2.2.6"
-
-#: C/glabels.xml:88(date)
-msgid "October 2009"
-msgstr "October 2009"
-
-#: C/glabels.xml:90(para)
-msgid "Mario Blättermann <email>mariobl@gnome.org</email>"
-msgstr "Mario Blättermann <email>mariobl@gnome.org</email>"
-
-#: C/glabels.xml:97(revnumber)
-msgid "gLabels Manual V2.2"
-msgstr "gLabels-Handbuch V2.2"
-
-#: C/glabels.xml:98(date)
-msgid "December 2007"
-msgstr "Dezember 2007"
-
-#: C/glabels.xml:100(para)
-msgid "Jim Evins <email>evins@snaught.com</email>"
-msgstr "Jim Evins <email>evins@snaught.com</email>"
-
-#: C/glabels.xml:108(releaseinfo)
-msgid ""
-"This manual describes version 2.2.6 of <application>gLabels</application>."
-msgstr ""
-"Dieses Handbuch beschreibt Version 2.2.6 von <application>gLabels</"
-"application>."
-
-#: C/glabels.xml:111(title)
-msgid "Feedback"
-msgstr "Rückmeldungen"
-
-#: C/glabels.xml:112(para)
-msgid ""
-"To report a bug or make a suggestion regarding the <application>gLabels</"
-"application> application or this manual, follow the directions in the <ulink "
-"url=\"http://glabels.sourceforge.net/contact/\" type=\"http"
-"\"><application>gLabels</application> Contact Page</ulink>."
-msgstr ""
-"Um einen Fehler zu melden oder einen Vorschlag zur Anwendung "
-"<application>gLabels</application> oder zu diesem Handbuch zu machen, folgen "
-"Sie den Anweisungen auf der <ulink url=\"http://glabels.sourceforge.net/"
-"contact/\" type=\"http\"><application>gLabels</application>-Kontaktseite</"
-"ulink>."
-
-#: C/glabels.xml:121(primary)
-msgid "gLabels"
-msgstr "gLabels"
-
-#: C/glabels.xml:124(primary)
-msgid "glabels"
-msgstr "glabels"
-
-#: C/glabels.xml:135(title)
-msgid "Introduction"
-msgstr "Einführung"
-
-#: C/glabels.xml:137(para)
-msgid ""
-"The <application>gLabels</application> application is a lightweight program "
-"for creating labels and business cards for the <systemitem>GNOME desktop</"
-"systemitem> environment. It is designed to work with various laser/ink-jet "
-"peel-off label and business card sheets that you'll find at most office "
-"supply stores."
-msgstr ""
-"Die Anwendung <application>gLabels</application> ist ein ressourcenschonendes "
-"Programm zum Erstellen von Etiketten und Visitenkarten für die "
-"<systemitem>GNOME</systemitem>-Arbeitsumgebung. Es wurde für die "
-"verschiedensten mit Laser- oder Tintenstrahldruckern bedruckbaren (auch "
-"selbstklebenden) Etiketten sowie Visitenkarten entworfen, so wie Sie sie in "
-"den meisten Schreibwarengeschäften finden."
-
-#: C/glabels.xml:158(title)
-msgid "Getting Started"
-msgstr "Erste Schritte"
-
-#: C/glabels.xml:161(title)
-msgid "To Start <application>gLabels</application>"
-msgstr "<application>gLabels</application> starten"
-
-#: C/glabels.xml:162(para)
-msgid "You can start <application>gLabels</application> in the following ways:"
-msgstr ""
-"Sie können <application>gLabels</application> auf folgende Arten starten:"
-
-#: C/glabels.xml:166(term)
-msgid "<guimenu>Applications</guimenu> menu"
-msgstr "Menü <guimenu>Anwendungen</guimenu>"
-
-#: C/glabels.xml:168(para)
-msgid ""
-"Choose <menuchoice><guisubmenu>Office</guisubmenu><guimenuitem>gLabels</"
-"guimenuitem></menuchoice>."
-msgstr ""
-"Wählen Sie <menuchoice><guisubmenu>Büroanwendungen</"
-"guisubmenu><guimenuitem>gLabels</guimenuitem></menuchoice>."
-
-#: C/glabels.xml:176(term)
-msgid "Command line"
-msgstr "Befehlszeile"
-
-#: C/glabels.xml:178(para)
-msgid "Type <command>glabels</command>, then press <keycap>Return</keycap>:"
-msgstr ""
-"Geben Sie <command>glabels</command> ein, und drücken Sie dann die "
-"<keycap>Eingabetaste</keycap>."
-
-#: C/glabels.xml:186(title)
-msgid "When You Start <application>gLabels</application>"
-msgstr "Beim Start von <application>gLabels</application>"
-
-#: C/glabels.xml:187(para)
-msgid ""
-"When you start <application>gLabels</application>, the following window is "
-"displayed."
-msgstr ""
-"Nach dem Start von <application>gLabels</application> erscheint folgendes "
-"Fenster:"
-
-#: C/glabels.xml:191(title)
-msgid "<application>gLabels</application> Start Up Window"
-msgstr "<application>gLabels</application>-Startfenster"
-
-#. for example, the items on the menubar and on the toolbar. This section is optional.
-#: C/glabels.xml:205(para)
-msgid ""
-"The <application>gLabels</application> window contains the following elements:"
-msgstr ""
-"Das <application>gLabels</application>-Fenster enthält folgende Elemente:"
-
-#: C/glabels.xml:209(term)
-msgid "Menubar."
-msgstr "Menüleiste."
-
-#: C/glabels.xml:211(para)
-msgid ""
-"The menus on the menubar contain all of the commands you need to create and "
-"edit labels and business cards in <application>gLabels</application>."
-msgstr ""
-"Die Menüs in der Menüleiste enthalten alle Befehle, die Sie zum Erstellen und "
-"Bearbeiten von Etiketten und Visitenkarten in <application>gLabels</"
-"application> benötigen."
-
-#: C/glabels.xml:217(term)
-msgid "Main toolbar."
-msgstr "Haupt-Werkzeugleiste."
-
-#: C/glabels.xml:219(para)
+#: C/skipfields.page:14(email) C/select.page:14(email)
+#: C/printfile.page:14(email) C/newlabel.page:14(email)
+#: C/multifile.page:14(email) C/merge.page:14(email)
+#: C/mergefeatures.page:14(email) C/merge-ex4.page:14(email)
+#: C/merge-ex3.page:14(email) C/merge-ex2.page:14(email)
+#: C/merge-ex1.page:14(email) C/mancreate.page:15(email)
+#: C/labelprop.page:14(email) C/index.page:12(email) C/editprop.page:14(email)
+#: C/customtemplate.page:14(email) C/customize.page:12(email)
+#: C/createnew.page:14(email) C/basicusage.page:14(email)
+#: C/about.page:14(email)
+msgid "evins@snaught.com"
+msgstr "evins@snaught.com"
+
+#: C/skipfields.page:17(name) C/select.page:17(name) C/printfile.page:17(name)
+#: C/newlabel.page:17(name) C/multifile.page:17(name) C/merge.page:17(name)
+#: C/mergefeatures.page:17(name) C/merge-ex4.page:17(name)
+#: C/merge-ex3.page:17(name) C/merge-ex2.page:17(name)
+#: C/merge-ex1.page:17(name) C/mancreate.page:18(name)
+#: C/labelprop.page:17(name) C/index.page:15(name) C/editprop.page:17(name)
+#: C/customtemplate.page:17(name) C/customize.page:15(name)
+#: C/createnew.page:17(name) C/basicusage.page:17(name) C/about.page:17(name)
+msgid "Mario Blättermann"
+msgstr "Mario Blättermann"
+
+#: C/skipfields.page:18(email) C/select.page:18(email)
+#: C/printfile.page:18(email) C/newlabel.page:18(email)
+#: C/multifile.page:18(email) C/merge.page:18(email)
+#: C/mergefeatures.page:18(email) C/merge-ex4.page:18(email)
+#: C/merge-ex3.page:18(email) C/merge-ex2.page:18(email)
+#: C/merge-ex1.page:18(email) C/mancreate.page:19(email)
+#: C/labelprop.page:18(email) C/index.page:16(email) C/editprop.page:18(email)
+#: C/customtemplate.page:18(email) C/customize.page:16(email)
+#: C/createnew.page:18(email) C/basicusage.page:18(email)
+#: C/about.page:18(email)
+msgid "mariobl@gnome.org"
+msgstr "mariobl@gnome.org"
+
+#: C/skipfields.page:21(p) C/select.page:21(p) C/printfile.page:21(p)
+#: C/newlabel.page:21(p) C/multifile.page:21(p) C/merge.page:21(p)
+#: C/mergefeatures.page:21(p) C/merge-ex4.page:21(p) C/merge-ex3.page:21(p)
+#: C/merge-ex2.page:21(p) C/merge-ex1.page:21(p) C/mancreate.page:22(p)
+#: C/labelprop.page:21(p) C/index.page:19(p) C/editprop.page:21(p)
+#: C/customtemplate.page:21(p) C/customize.page:19(p) C/createnew.page:21(p)
+#: C/basicusage.page:21(p) C/about.page:21(p)
+msgid "Creative Commons Share Alike 3.0"
+msgstr "Creative Commons Share Alike 3.0"
+
+#: C/skipfields.page:25(title)
+msgid "Skipping blank address lines"
+msgstr "Überspringen leerer Adresszeilen"
+
+#: C/skipfields.page:27(p)
+msgid ""
+"This feature can be best described by a simple example. In the following CSV "
+"file, column 5 (ADDR2) contains the second address line for each record. This "
+"field is empty in records 1 and 2, but not in record 3. (For this feature to "
+"work, the field must be completely empty -- any text, including spaces will "
+"defeat this feature.)"
+msgstr ""
+"Dieses Funktionsmerkmal lässt sich am besten anhand eines einfachen Beispiels "
+"beschreiben. In der folgenden CSV-Datei enthält die Spalte 5 (ADDR2) die "
+"zweite Adresszeile jedes Datensatzes. Dieses Feld ist in den Datensätzen 1 "
+"und 2 leer, nicht jedoch in Datensatz 3. Damit dies auch funktioniert, muss "
+"das Feld wirklich vollständig leer sein. Jeglicher Text, selbst wenn es auch "
+"nur Leerzeichen sein sollten, wird diese Funktion scheitern lassen."
+
+#: C/skipfields.page:33(code)
+#, no-wrap
 msgid ""
-"The main toolbar contains a subset of common File and Edit commands that you "
-"can access from the menubar."
+"\n"
+"  LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n"
+"  Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n"
+"  McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n"
+"  Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n"
+"  "
 msgstr ""
-"Die Haupt-Werkzeugleiste enthält eine Auswahl der Befehle, die Sie über die "
-"Menüleiste in den Menüs »Datei« und »Bearbeiten« erreichen."
-
-#: C/glabels.xml:224(term)
-msgid "Drawing toolbar."
-msgstr "Zeichenwerkzeugleiste."
+"\n"
+"  LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n"
+"  Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n"
+"  McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n"
+"  Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n"
+"  "
 
-#: C/glabels.xml:226(para)
+#: C/skipfields.page:40(p)
 msgid ""
-"The drawing toolbar contains a subset of commands for editing the current "
-"<application>gLabels</application> document."
+"In the following screenshot, a single multiline text object has been created "
+"to format these addresses. Notice that ${ADDR2} representing the second "
+"address line is on a line by itself. (Any additional text on this line, "
+"including spaces would defeat this feature.)"
 msgstr ""
-"Die Zeichenwerkzeugleiste enthält eine Auswahl von Befehlen zum Bearbeiten "
-"des aktuellen <application>gLabels</application>-Dokuments."
+"Im folgenden Bildschirmfoto wurde ein mehrzeiliges Textobjekt erzeugt, um "
+"diese Adressen zu formatieren. Beachten Sie, dass ${ADDR2}, welches die "
+"zweite Adresszeile darstellt, in einer eigenen Zeile steht. Jeder zusätzliche "
+"Text, auch Leerzeichen, lassen diese Funktion scheitern."
 
-#: C/glabels.xml:231(term)
-msgid "Display area."
-msgstr "Anzeigebereich."
+#: C/skipfields.page:46(p)
+msgid "Multi-line address"
+msgstr "Mehrzeilige Adressen"
 
-#: C/glabels.xml:233(para)
+#: C/skipfields.page:49(p)
 msgid ""
-"The display area is the main drawing interface to <application>gLabels</"
-"application>."
+"Printing this label results in the following output. Notice that the line "
+"containing the ${ADDR2} field is completely skipped for the first two "
+"records, without printing a blank line."
 msgstr ""
-"Der Anzeigebereich ist die Zeichenfläche für <application>gLabels</"
-"application>."
+"Durch Drucken der Etiketten erhalten Sie folgende Ausgabe. Beachten Sie, dass "
+"die Zeile, welche das Feld ${ADDR2} enthält, für die ersten zwei Datensätze "
+"komplett übersprungen wurde, ohne dass eine leere Zeile gedruckt wird."
 
-#: C/glabels.xml:238(term)
-msgid "Object sidebar."
-msgstr "Objekt-Seitenleiste."
+#: C/skipfields.page:54(p)
+msgid "Output"
+msgstr "Ausgabe"
 
-#: C/glabels.xml:240(para)
-msgid ""
-"The object sidebar provides an interface for viewing and editing all "
-"properties of an individual object."
-msgstr ""
-"Die Objekt-Seitenleiste stellt eine Schnittstelle zum Betrachten und "
-"Bearbeiten der Eigenschaften eines bestimmten Objekts zur Verfügung."
+#: C/select.page:9(desc)
+msgid "How to select objects."
+msgstr "Objekte auswählen."
 
-#: C/glabels.xml:245(term)
-msgid "Properties toolbar."
-msgstr "Eingenschaften-Werkzeugleiste."
+#: C/select.page:25(title)
+msgid "To select objects"
+msgstr "Auswählen von Objekten"
 
-#: C/glabels.xml:247(para)
+#: C/select.page:27(p)
 msgid ""
-"The properties toolbar contains a set of tools to manipulate the properties "
-"of selected objects and set default properties for new objects."
+"A prerequisite for performing operations on objects is the selection of "
+"individual objects or groups of objects. The display area must be in the "
+"object selection mode to create new selections, as indicated by an arrow "
+"cursor. The object selection mode is selected by the <guiseq><gui>Objects</"
+"gui><gui>Select Mode</gui></guiseq> menu item, or the corresponding command "
+"on the <gui>Drawing Toolbar</gui>."
 msgstr ""
-"Die Eigenschaften-Werkzeugleiste enthält eine Reihe von Werkzeugen zum "
-"Manipulieren der Eigenschaften ausgewählter Objekte sowie zum Setzen der "
-"Standardeigenschaften für neue Objekte."
+"Eine Voraussetzung zum Ausführen von Operationen auf Objekten ist die Auswahl "
+"individueller Objekte oder Gruppen von Objekten. Der Anzeigebereich muss sich "
+"im Objektauswahlmodus befinden, was durch einen pfeilförmigen Mauszeiger "
+"angezeigt wird. Der Objektauswahlmodus wird über den Menüeintrag "
+"<guiseq><gui>Objekte</gui><gui>Auswahlmodus</gui></guiseq> aktiviert oder "
+"über das entsprechende Objekt in der <gui>Zeichenwerkzeugleiste</gui>."
 
-#: C/glabels.xml:253(term)
-msgid "Statusbar."
-msgstr "Statusleiste."
+#: C/select.page:38(title)
+msgid "Selecting a single object"
+msgstr "Auswahl eines einzelnen Objekts"
 
-#: C/glabels.xml:255(para)
+#: C/select.page:39(p)
 msgid ""
-"The statusbar displays information about current <application>gLabels</"
-"application> activity and contextual information about the menu items."
+"A single object can be selected simply by clicking on the desired object in "
+"the display area. Once selected the object will be highlighted with a set of "
+"resizing handles."
 msgstr ""
-"In der Statusleiste werden Informationen über die aktuelle "
-"<application>gLabels</application>-Aktivität und Kontextinformationen über "
-"die Menüpunkte angezeigt."
-
-#: C/glabels.xml:271(title)
-msgid "Usage"
-msgstr "Benutzung"
-
-#: C/glabels.xml:275(title)
-msgid "To Create a New Label or Card"
-msgstr "Erstellen eines neuen Etiketts oder einer neuen Karte"
+"Ein einzelnes Objekt können Sie auswählen, indem Sie das gewünschte Objekt im "
+"Anzeigebereich anklicken. Nach dem Anklicken wird das Objekt durch "
+"Anfasspunkte zur Größenänderung hervorgehoben."
 
-#: C/glabels.xml:277(para)
-msgid ""
-"To create a new label or business card, choose <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>New</guimenuitem></menuchoice> to display the "
-"<guilabel>New Label or Card</guilabel> dialog. Select the media type and "
-"orientation for the new document, then click <guibutton>OK</guibutton>. A new "
-"document is displayed in the display area of the <application>gLabels</"
-"application> window."
-msgstr ""
-"Um ein neues Etikett oder eine neue Visitenkarte anzulegen, wählen Sie "
-"<menuchoice><guimenu>Datei</guimenu><guimenuitem>Neu</guimenuitem></"
-"menuchoice>, um den Dialog <guilabel>Neues Etikett oder neue Karte</guilabel> "
-"anzuzeigen. Wählen Sie den Medientyp und die Ausrichtung für das neue "
-"Dokument aus und klicken Sie anschließend auf <guibutton>OK</guibutton>. Ein "
-"neues Dokument erscheint im Anzeigebereich des <application>gLabels</"
-"application>-Fensters."
+#: C/select.page:46(title)
+msgid "Aggregate object selections"
+msgstr "Auswahl mehrerer Objekte"
 
-#: C/glabels.xml:286(para)
+#: C/select.page:47(p)
 msgid ""
-"If your particular media type is missing from this dialog, see <xref linkend="
-"\"glabels-create-template\"/>"
+"Multiple objects can be selected by first selecting the first object as above "
+"and then by holding the <key>Ctrl</key> key while selecting additional "
+"objects. Individual objects can be added to an existing selection at any time "
+"by holding the <key>Ctrl</key> key while selecting the desired objects. All "
+"objects can also be selected by using the <guiseq><gui>Edit</gui><gui>Select "
+"All</gui></guiseq> menu item. All objects in an aggregate object selection "
+"will be highlighted."
 msgstr ""
-"Falls Ihr spezieller Medientyp in diesem Dialog nicht angezeigt wird, siehe "
-"<xref linkend=\"glabels-create-template\"/>."
-
-#: C/glabels.xml:293(title)
-msgid "To Open a File"
-msgstr "Öffnen einer Datei"
+"Sie können mehrere Objekte auswählen, indem Sie zunächst das erste Objekt "
+"auswählen, wie oben beschrieben. Halten Sie dann bei der Auswahl weiterer "
+"Objekte die <key>Strg</key>-Taste gedrückt. Zusätzliche Objekte können Sie "
+"jederzeit zur Auswahl hinzufügen, wenn Sie wiederum die <key>Strg</key>-Taste "
+"gedrückt halten und die gewünschten Objekte auswählen. Alle Objekte lassen "
+"sich über den Menüeintrag <guiseq><gui>Bearbeiten</gui><gui>Alle auswählen</"
+"gui></guiseq> auswählen. Alle Objekte in einer zusammenhängenden "
+"Objektauswahl werden hervorgehoben dargestellt."
+
+#: C/select.page:60(title)
+msgid "Area selections"
+msgstr "Bereichsauswahl"
 
-#: C/glabels.xml:295(para)
+#: C/select.page:62(p)
 msgid ""
-"To open a file, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</"
-"guimenuitem></menuchoice> to display the <guilabel>Open File</guilabel> "
-"dialog. Select the file that you want to open, then click <guibutton>OK</"
-"guibutton>. The file is displayed in the display area of the "
-"<application>gLabels</application> window."
+"Multiple objects can also be selected by clicking an empty area and dragging "
+"to form a rectangular area. When released, all objects contained in the area "
+"will form an aggregate selection. An area selection can be used to add to an "
+"existing selection by holding the <key>Ctrl</key> key while performing the "
+"selection."
 msgstr ""
-"Um eine Datei zu öffnen, wählen Sie <menuchoice><guimenu>Datei</"
-"guimenu><guimenuitem>Öffnen</guimenuitem></menuchoice>, um den Dialog "
-"<guilabel>Datei öffnen</guilabel> anzuzeigen. Wählen Sie die gewünschte Datei "
-"aus und klicken Sie dann auf <guibutton>Öffnen</guibutton>. Die Datei wird im "
-"Anzeigebereich des <application>gLabels</application>-Fensters geöffnet."
+"Sie können auch mehrere Objekte auswählen, indem Sie in einen leeren Bereich "
+"klicken und mit der Maus die Form eines Rechtecks aufziehen. Daraufhin bilden "
+"alle Objekte in diesem Bereich eine zusammenhängende Auswahl. Eine "
+"Bereichsauswahl kann zum Hinzufügen einer vorhandenen Auswahl benutzt werden, "
+"wenn Sie bei der Auswahl die <key>Strg</key>-Taste gedrückt halten."
 
-#: C/glabels.xml:302(para)
-msgid ""
-"You can also open multiple files in <application>gLabels</application>. The "
-"application creates a separate application window for each open file."
-msgstr ""
-"Sie können in <application>gLabels</application> auch mehrere Dateien öffnen. "
-"Die Anwendung erzeugt ein separates Fenster für jede geöffnete Datei."
+#: C/select.page:72(title)
+msgid "Unselecting objects"
+msgstr "Auswahl von Objekten aufheben"
 
-#: C/glabels.xml:306(para)
+#: C/select.page:74(p)
 msgid ""
-"The application records the paths and filenames of the most recent files that "
-"you have edited and displays the files as menu items on the "
-"<menuchoice><guimenu>File</guimenu><guisubmenu>Recent Files</guisubmenu></"
-"menuchoice> menu."
+"Individual objects can be removed from an existing selection by holding the "
+"<key>Ctrl</key> key while clicking on a previously selected object. An entire "
+"selection can be dismissed by using the <guiseq><gui>Edit</gui><gui>Un-select "
+"All</gui></guiseq> menu item or by simply clicking any empty space in the "
+"display area. Once an object is unselected its highlight is removed."
 msgstr ""
-"Die Anwendung speichert die Pfade und Dateinamen der von Ihnen zuletzt "
-"bearbeiteten Dateien. Diese Dateien werden als Einträge im Menü "
-"<menuchoice><guimenu>Datei</guimenu><guisubmenu>Zuletzt benutzt</guisubmenu></"
-"menuchoice> angezeigt."
+"Sie können individuelle Objekte aus einer vorhandenen Auswahl entfernen, wenn "
+"Sie beim Klicken auf ein zuvor ausgewähltes Objekt die <key>Strg</key>-Taste "
+"gedrückt halten. Die gesamte Auswahl können Sie rückgängig machen, indem Sie "
+"im Menü <guiseq><gui>Bearbeiten</gui><gui>Alle Markierungen löschen</gui></"
+"guiseq> wählen. Sobald ein Objekt nicht mehr ausgewählt ist, wird es nicht "
+"mehr hervorgehoben dargestellt."
 
-#: C/glabels.xml:316(title)
-msgid "To Open Multiple Files from a Command Line"
-msgstr "Öffnen mehrerer Dateien aus einer Befehlszeile"
+#: C/select.page:86(title)
+msgid "Clipboard Commands"
+msgstr "Befehle für die Zwischenablage"
 
-#: C/glabels.xml:318(para)
+#: C/select.page:88(p)
 msgid ""
-"You can run <application>gLabels</application> from a command line and open a "
-"single file or multiple files. To open multiple files from a command line, "
-"type the following command, then press <keycap>Return</keycap>:"
+"Object selections can be manipulated using the standard clipboard operations "
+"<gui>Cut</gui>, <gui>Copy</gui>, <gui>Paste</gui>, and <gui>Delete</gui>."
 msgstr ""
-"Sie können <application>gLabels</application> aus einer Befehlszeile starten "
-"und eine Datei oder mehrere Dateien öffnen. Um mehrere Dateien aus einer "
-"Befehlszeile zu öffnen, geben Sie den folgenden Befehl ein und drücken dann "
-"die <keycap>Eingabetaste</keycap>:"
-
-#: C/glabels.xml:324(replaceable)
-msgid "file1.glabels file2.glabels file3.glabels"
-msgstr "Datei1.glabels Datei2.glabels Datei3.glabels"
+"Objektauswahlen können durch die Standardoperationen der Zwischenablage "
+"<gui>Ausschneiden</gui>, <gui>Kopieren</gui>, <gui>Einfügen</gui> und "
+"<gui>Löschen</gui> manipuliert werden."
 
-#: C/glabels.xml:323(command)
-msgid "glabels <placeholder-1/>"
-msgstr "glabels <placeholder-1/>"
+#: C/select.page:94(title)
+msgid "<gui>Cut</gui> (<keyseq><key>Ctrl</key><key>X</key></keyseq>)"
+msgstr "<gui>Ausschneiden</gui> (<keyseq><key>Strg</key><key>X</key></keyseq>)"
 
-#: C/glabels.xml:327(para)
+#: C/select.page:96(p)
 msgid ""
-"When the application starts, the files that you specify are displayed in "
-"separate <application>gLabels</application> windows."
+"Moves selected objects to the clipboard. The objects are then available for "
+"pasting back into the current document or another document."
 msgstr ""
-"Wenn die Anwendung startet, werden die von Ihnen angegebenen Dateien in "
-"separaten <application>gLabels</application>-Fenstern angezeigt."
-
-#: C/glabels.xml:334(title)
-msgid "To Save a File"
-msgstr "Speichern einer Datei"
-
-#: C/glabels.xml:336(para)
-msgid "You can save files in the following ways:"
-msgstr "Sie können Dateien auf folgende Arten speichern:"
+"Verschiebt die ausgewählten Objekte in die Zwischenablage. Diese Objekte sind "
+"dann verfügbar, um später in das aktuelle Dokument oder ein anderes Dokument "
+"eingefügt zu werden."
 
-#: C/glabels.xml:341(para)
-msgid ""
-"To save changes to an existing file, choose <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>Save</guimenuitem></menuchoice>."
-msgstr ""
-"Um die Änderungen in der bereits vorhandenen Datei zu speichern, wählen Sie "
-"<menuchoice><guimenu>Datei</guimenu><guimenuitem>Speichern</guimenuitem></"
-"menuchoice>."
+#: C/select.page:103(title)
+msgid "<gui>Copy</gui> (<keyseq><key>Ctrl</key><key>C</key></keyseq>)"
+msgstr "<gui>Kopieren</gui> (<keyseq><key>Strg</key><key>C</key></keyseq>)"
 
-#: C/glabels.xml:348(para)
+#: C/select.page:105(p)
 msgid ""
-"To save a new file or to save an existing file under a new filename, choose "
-"<menuchoice><guimenu>File</guimenu><guimenuitem>Save As</guimenuitem></"
-"menuchoice>. Enter a name for the file in the <guilabel>Save As</guilabel> "
-"dialog box, then click <guibutton>OK</guibutton>."
+"Copies selected objects to the clipboard without deleting them. The objects "
+"are then available for pasting back into the current document or another "
+"document."
 msgstr ""
-"Um eine neue Datei oder eine bestehende Datei unter einem neuen Dateinamen zu "
-"speichern, wählen Sie <menuchoice><guimenu>Datei</"
-"guimenu><guimenuitem>Speichern unter</guimenuitem></menuchoice>. Geben Sie "
-"einen Namen für die Datei im Dialogfeld <guilabel>Speichern unter</guilabel> "
-"ein und klicken Sie anschließend auf <guibutton>OK</guibutton>. "
+"Kopiert die ausgewählten Objekte in die Zwischenablage, ohne sie zu "
+"entfernen. Diese Objekte sind dann verfügbar, um später in das aktuelle "
+"Dokument oder ein anderes Dokument eingefügt zu werden."
 
-#: C/glabels.xml:361(title)
-msgid "To Change Label Properties"
-msgstr "Ändern der Eigenschaften eines Etiketts"
+#: C/select.page:112(title)
+msgid "<gui>Paste</gui> (<keyseq><key>Ctrl</key><key>V</key></keyseq>)"
+msgstr "<gui>Einfügen</gui> (<keyseq><key>Strg</key><key>V</key></keyseq>)"
 
-#: C/glabels.xml:363(para)
+#: C/select.page:114(p)
 msgid ""
-"To change the media type and/or orientation of a label, choose "
-"<menuchoice><guimenu>File</guimenu><guimenuitem>Properties</guimenuitem></"
-"menuchoice> to display the <guilabel>Label properties</guilabel> dialog. "
-"Select the new media type and orientation for the document, then click "
-"<guibutton>OK</guibutton>."
+"Pastes objects from the clipboard into the current document. <app>gLabels</"
+"app> can only paste objects from another <app>gLabels</app> document."
 msgstr ""
-"Um den Medientyp oder die Ausrichtung des Etiketts zu ändern, wählen Sie "
-"<menuchoice><guimenu>Datei</guimenu><guimenuitem>Eigenschaften</guimenuitem></"
-"menuchoice>, um den Dialog <guilabel>Etikett-Eigenschaften</guilabel> "
-"anzuzeigen. Wählen Sie den neuen Medientyp für das Dokument aus und klicken "
-"Sie anschließend auf <guibutton>OK</guibutton>."
-
-#: C/glabels.xml:374(title)
-msgid "To Create a Custom Template"
-msgstr "Erstellen einer benutzerdefinierten Vorlage"
+"Fügt Objekte aus der Zwischenablage in das aktuelle Dokument ein. "
+"<app>gLabels</app> kann nur Objekte aus anderen <app>gLabels</app>-Dokumenten "
+"einfügen."
 
-#: C/glabels.xml:376(para)
-msgid ""
-"To create a new custom template, choose <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>Template Designer ...</guimenuitem></menuchoice> to "
-"display the <guilabel>Template Designer</guilabel> dialog. This dialog will "
-"assist you in creating a custom template for most types of label or card "
-"stationery that you may encounter."
-msgstr ""
-"Um eine neue benutzerdefinierte Vorlage zu erstellen, wählen Sie "
-"<menuchoice><guimenu>Datei</guimenu><guimenuitem>Vorlagen-Designer …</"
-"guimenuitem></menuchoice>, um den <guilabel>Vorlagen-Designer</guilabel>-"
-"Dialog anzuzeigen. Dieser Dialog hilft Ihnen bei der Erstellung einer "
-"benutzerdefinierten Vorlage für die meisten Typen von Etiketten oder "
-"Visitenkarten, die Ihnen in Schreibwarengeschäften begegnen könnten."
+#: C/select.page:121(title)
+msgid "<gui>Delete</gui> (<key>Del</key>)"
+msgstr "<gui>Löschen</gui> (<key>Entf</key>)"
 
-#: C/glabels.xml:383(para)
-msgid ""
-"If you prefer, you can create your templates manually. For this option see "
-"<xref linkend=\"glabels-manual-create-template\"/>"
+#: C/select.page:123(p)
+msgid "Deletes selected objects without placing them on the clipboard."
 msgstr ""
-"Falls Sie dies bevorzugen, können Sie Ihre Vorlagen auch manuell erstellen. "
-"Weitere Informationen hierzu finden Sie in <xref linkend=\"glabels-manual-"
-"create-template\"/>."
-
-#: C/glabels.xml:391(title)
-msgid "To Close a File"
-msgstr "Schließen einer Datei"
+"Entfernt die ausgewählten Objekte, ohne sie in die Zwischenablage zu "
+"verschieben."
 
-#: C/glabels.xml:393(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/printfile.page:47(None)
+#, fuzzy
 msgid ""
-"To close the current document, choose <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>Close</guimenuitem></menuchoice> to close the "
-"application window. If the current document is modified, a confirmation "
-"dialog will be presented, allowing you to save the document or cancel the "
-"command. If the window being closed is the only open window, "
-"<application>gLabels</application> will exit."
-msgstr ""
-"Um das aktuelle Dokument zu schließen, wählen Sie <menuchoice><guimenu>Datei</"
-"guimenu><guimenuitem>Schließen</guimenuitem></menuchoice>, um das "
-"Anwendungsfenster zu schließen. Falls das aktuelle Dokument bearbeitet wurde, "
-"wird ein Bestätigungsdialog geöffnet, in welchem Sie das Dokument speichern "
-"oder den Vorgang abbrechen können. Falls das zu schließende Fenster das "
-"einzige offene Fenster ist, wird <application>gLabels</application> dadurch "
-"beendet."
+"@@image: 'figures/print-copies.png'; md5=1896f693ac50b47ea5abaafb59b5e8cc"
+msgstr "translated"
 
-#: C/glabels.xml:405(title)
-msgid "To Quit <application>gLabels</application>"
-msgstr "<application>gLabels</application> beenden"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/printfile.page:70(None)
+#, fuzzy
+msgid "@@image: 'figures/print-merge.png'; md5=65a719b5624f88fdb40e2322454819a6"
+msgstr "translated"
 
-#: C/glabels.xml:407(para)
-msgid ""
-"To quit <application>gLabels</application>, choose <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>Quit</guimenuitem></menuchoice>. This is equivalent to "
-"closing all open windows. See <xref linkend=\"glabels-close-file\"/>."
-msgstr ""
-"Um <application>gLabels</application> zu beenden, wählen Sie "
-"<menuchoice><guimenu>Datei</guimenu><guimenuitem>Beenden</guimenuitem></"
-"menuchoice>. Dadurch werden alle offenen Fenster geschlossen. Siehe <xref "
-"linkend=\"glabels-close-file\"/>."
+#: C/printfile.page:9(desc)
+msgid "How to print your labels and cards."
+msgstr "Ausdrucke von Ihren Etiketten oder Karten erstellen."
 
-#: C/glabels.xml:417(title)
-msgid "To Print Labels or Cards"
+#: C/printfile.page:25(title)
+msgid "To print labels and cards"
 msgstr "Drucken von Etiketten oder Karten"
 
-#: C/glabels.xml:419(para)
+#: C/printfile.page:27(p)
 msgid ""
-"To print labels or cards, choose <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>Print</guimenuitem></menuchoice> to display the "
-"<guilabel>Print</guilabel> dialog. Once print options have been selected, "
-"click <guilabel>Print</guilabel> to print the labels or cards. To simply "
-"preview the results, click <guilabel>Print Preview</guilabel> instead."
+"To print labels or cards, choose <guiseq><gui>File</gui><gui>Print</gui></"
+"guiseq> to display the <gui>Print</gui> dialog. Once print options have been "
+"selected, click <gui>Print</gui> to print the labels or cards. To simply "
+"preview the results, click <gui>Print Preview</gui> instead."
 msgstr ""
-"Um Etiketten oder Visitenkarten zu drucken, wählen Sie "
-"<menuchoice><guimenu>Datei</guimenu><guimenuitem>Drucken</guimenuitem></"
-"menuchoice>, um den <guilabel>Drucken</guilabel>-Dialog anzuzeigen. Nachdem "
-"Sie die Druckoptionen ausgewählt haben, klicken Sie auf <guilabel>Drucken</"
-"guilabel>, um die Etiketten oder Visitenkarten zu drucken. Um zunächst eine "
+"Um Etiketten oder Visitenkarten zu drucken, wählen Sie <guiseq><gui>Datei</"
+"gui><gui>Drucken</gui></guiseq>, um den <gui>Drucken</gui>-Dialog anzuzeigen. "
+"Nachdem Sie die Druckoptionen ausgewählt haben, klicken Sie auf <gui>Drucken</"
+"gui>, um die Etiketten oder Visitenkarten zu drucken. Um zunächst eine "
 "Vorschau auf die Druckergebnisse zu erhalten, klicken Sie auf "
-"<guilabel>Druckvorschau</guilabel>."
+"<gui>Druckvorschau</gui>."
 
-#: C/glabels.xml:426(para)
+#: C/printfile.page:34(p)
 msgid ""
-"The <guilabel>Print</guilabel> dialog allows you to specify the following "
-"print options:"
+"The <gui>Print</gui> dialog allows you to specify the following print options:"
 msgstr ""
-"Im Dialog <guilabel>Drucken</guilabel> können Sie die folgenden Optionen zum "
-"Drucken festlegen:"
+"Im Dialog <gui>Drucken</gui> können Sie die folgenden Optionen zum Drucken "
+"festlegen:"
 
-#: C/glabels.xml:430(title)
+#: C/printfile.page:38(title)
 msgid "The Labels Tab of the Print Dialog"
 msgstr "Der Reiter »Etiketten« des Druckdialogs"
 
-#: C/glabels.xml:435(guilabel)
+#: C/printfile.page:41(title)
 msgid "Print control (Simple)"
 msgstr "Drucksteuerung (einfach)"
 
-#: C/glabels.xml:438(para)
+#: C/printfile.page:43(p)
 msgid ""
-"For simple labels or cards (no document merge), the <guilabel>labels</"
-"guilabel> tabbed section contains the following copy controls."
+"For simple labels or cards (no document merge), the job tabbed section "
+"contains the following copy controls."
 msgstr ""
 "Für einfache Etiketten oder Karten (keine Dokumentmischung) enthält der "
 "Reiter »Labels« die folgenden Einstellmöglichkeiten."
 
-#: C/glabels.xml:443(title)
+#: C/printfile.page:48(p) C/editprop.page:36(p)
 msgid "Print Copy Controls"
 msgstr "Angeben der Kopien"
 
 #. ==== End of Figure ====
-#: C/glabels.xml:454(para)
+#: C/printfile.page:52(p)
 msgid ""
 "The number of copies of the label can be selected by choosing the number of "
 "full sheets to print, or a specific subset of labels on a single sheet."
@@ -760,7 +395,7 @@ msgstr ""
 "zu druckenden Seiten oder eine Teilmenge von Etiketten auf einer einzelnen "
 "Seite auswählen."
 
-#: C/glabels.xml:458(para)
+#: C/printfile.page:56(p)
 msgid ""
 "The mini-preview can also be used to graphically select the subset of labels "
 "by clicking the first label on the mini-preview and dragging to the last "
@@ -770,26 +405,26 @@ msgstr ""
 "Etiketten grafisch auszuwählen, indem Sie auf das erste Etikett klicken und "
 "es auf das letzte Etikett ziehen."
 
-#: C/glabels.xml:466(guilabel)
+#: C/printfile.page:63(title)
 msgid "Print control (Merge)"
 msgstr "Drucksteuerung (Mischen)"
 
-#: C/glabels.xml:469(para)
+#: C/printfile.page:65(p)
 msgid ""
 "For labels or cards using the document merge (also known as \"mail merge\") "
-"capability, the <guilabel>labels</guilabel> tabbed section contains the "
-"following merge controls instead of copy controls."
+"capability, the job tabbed section contains the following merge controls "
+"instead of copy controls."
 msgstr ""
 "Für Etiketten oder Karten unter Verwendung der Dokumentmischung enthält "
 "dieser Reiter die folgenden Einstellungen zur Mischung von Dokumenten "
 "anstelle der Festlegung der Kopien."
 
-#: C/glabels.xml:475(title)
+#: C/printfile.page:71(p)
 msgid "Print Document Merge Controls"
 msgstr "Steuerung der Einmischung von Dokumenten"
 
 #. ==== End of Figure ====
-#: C/glabels.xml:486(para)
+#: C/printfile.page:75(p)
 msgid ""
 "The total number of labels or cards printed is the product of the number of "
 "records in the merge source and the number of copies selected. If multiple "
@@ -804,16 +439,15 @@ msgstr ""
 "oder nicht zusammengefasst (eine Kopie jedes Datensatzes wird immer vor der "
 "nächsten Kopie gedruckt)."
 
-#: C/glabels.xml:493(para)
+#: C/printfile.page:82(p)
 msgid ""
 "Printing can begin on any label on the first sheet. This can be selected with "
-"the <guilabel>Start on label</guilabel> spinbutton."
+"the <gui>Start on label</gui> spinbutton."
 msgstr ""
 "Der Druck kann mit jedem beliebigen Etikett der ersten Seite begonnen werden. "
-"Dies können Sie im Einstellfeld <guilabel>Start bei Etikett</guilabel> "
-"auswählen."
+"Dies können Sie im Einstellfeld <gui>Start bei Etikett</gui> auswählen."
 
-#: C/glabels.xml:497(para)
+#: C/printfile.page:86(p)
 msgid ""
 "The mini-preview can also be used to graphically select this first label, by "
 "clicking on the desired label in the mini-preview."
@@ -821,19 +455,19 @@ msgstr ""
 "In der verkleinerten Vorschau können Sie das erste Etikett grafisch "
 "auswählen, indem Sie das gewünschte Etikett anklicken."
 
-#: C/glabels.xml:504(guilabel)
+#: C/printfile.page:93(title)
 msgid "Options"
 msgstr "Optionen"
 
-#: C/glabels.xml:506(para)
+#: C/printfile.page:94(p)
 msgid "The following options can also be selected."
 msgstr "Die folgenden Optionen können ebenfalls gewählt werden."
 
-#: C/glabels.xml:509(guilabel)
+#: C/printfile.page:97(gui)
 msgid "print outlines"
 msgstr "Begrenzungen drucken"
 
-#: C/glabels.xml:510(para)
+#: C/printfile.page:98(p)
 msgid ""
 "Print outlines of labels. This option is useful for dry-runs, to test printer "
 "alignment."
@@ -841,11 +475,11 @@ msgstr ""
 "Begrenzungen der Etiketten drucken. Diese Option ist nützlich, wenn Sie die "
 "Lage des Papiers im Drucker prüfen wollen."
 
-#: C/glabels.xml:514(guilabel)
+#: C/printfile.page:102(gui)
 msgid "print in reverse"
 msgstr "Spiegelbildlich drucken"
 
-#: C/glabels.xml:515(para)
+#: C/printfile.page:103(p)
 msgid ""
 "Prints the labels as mirror images. This option is useful for printing on "
 "clear labels that will be viewed from the reverse side (e.g. in a car window)."
@@ -854,11 +488,11 @@ msgstr ""
 "Drucken durchsichtiger Aufkleber, die von der Rückseite aus betrachtet werden "
 "(z.B. hinter Autoscheiben)."
 
-#: C/glabels.xml:520(guilabel)
+#: C/printfile.page:108(gui)
 msgid "print crop marks"
 msgstr "Schnitt"
 
-#: C/glabels.xml:521(para)
+#: C/printfile.page:109(p)
 msgid ""
 "Prints crop marks along the edge of the sheet. This option is useful for "
 "printing on blank stock, to be cut after printing. This option does not work "
@@ -868,1965 +502,2712 @@ msgstr ""
 "Drucken auf Papier, das erst nach dem Druck beschnitten werden soll. Diese "
 "Option funktioniert eventuell nicht mit allen Vorlagen."
 
-#: C/glabels.xml:536(title)
-msgid "To Create New Objects"
-msgstr "Erstellen neuer Objekte"
-
-#: C/glabels.xml:538(para)
-msgid ""
-"Objects are created by choosing the appropriate selection under the "
-"<menuchoice><guimenu>Objects</guimenu><guimenuitem>Create Object</"
-"guimenuitem></menuchoice> submenu or the <guilabel>Drawing Toolbar</"
-"guilabel>. This will place the display area into object creation mode as "
-"indicated by its cursor. To return to the default object selection mode "
-"without creating an object, choose <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Select Mode</guimenuitem></menuchoice>. This will return "
-"the display area's cursor to the default selection arrow."
-msgstr ""
-"Objekte können ausgewählt werden, indem Sie das entsprechende Objekt in "
-"<menuchoice><guimenu>Objekte</guimenu><guimenuitem>Erzeugen</guimenuitem></"
-"menuchoice> auswählen oder über die <guilabel>Zeichenwerkzeugleiste</"
-"guilabel>. Dadurch wird der Anzeigebereich in den Objekterzeugungsmodus "
-"versetzt, was am Mauszeiger erkennbar ist. Um zum vorgegebenen "
-"Objektauswahlmodus zurückzukehren, ohne ein Objekt zu erzeugen, wählen Sie "
-"<menuchoice><guimenu>Objekte</guimenu><guimenuitem>Auswahlmodus</"
-"guimenuitem></menuchoice>. Dadurch wird der Mauszeiger im Anzeigebereich "
-"wieder in den vorgegebenen Auswahlzeiger geändert."
-
-#: C/glabels.xml:548(para)
-msgid "The following describes the object creation mode for each object type:"
+#: C/newlabel.page:9(desc)
+msgid "Create a new label or card in <app>gLabels</app>."
 msgstr ""
-"Nachfolgend wird der Modus zur Erstellung der Objekte für jeden Objekttyp "
-"beschrieben:"
+"Erstellen einer neuen Karte oder eines neuen Etiketts in <app>gLabels</app>."
 
-#: C/glabels.xml:554(term) C/glabels.xml:1123(guilabel)
-msgid "Text"
-msgstr "Text"
+#: C/newlabel.page:25(title)
+msgid "To create a new label or card"
+msgstr "Erstellen eines neuen Etiketts oder einer neuen Karte"
 
-#: C/glabels.xml:556(para)
+#: C/newlabel.page:27(p)
 msgid ""
-"Click the desired location of the upper left corner of the text object. New "
-"text objects are initialized with the string \"Text.\" To change this text, "
-"or other properties, see <xref linkend=\"glabels-object-properties\"/>."
+"To create a new label or business card, choose <guiseq><gui>File</"
+"gui><gui>New</gui></guiseq> to display the <gui>New Label or Card</gui> "
+"dialog. Select the media type and orientation for the new document, then "
+"click <gui>OK</gui>. A new document is displayed in the display area of the "
+"<app>gLabels</app> window."
 msgstr ""
-"Klicken Sie auf die gewünschte Stelle in der linken oberen Ecke des "
-"Textobjekts. Neue Textobjekte erhalten anfänglich den Inhalt »Text«. Wie Sie "
-"diesen Text oder andere Eigenschaften ändern können, finden Sie in <xref "
-"linkend=\"glabels-object-properties\"/>."
-
-#: C/glabels.xml:564(term)
-msgid "Box"
-msgstr "Rechteck"
+"Um ein neues Etikett oder eine neue Visitenkarte anzulegen, wählen Sie "
+"<guiseq><gui>Datei</gui><gui>Neu</gui></guiseq>, um den Dialog <gui>Neues "
+"Etikett oder neue Karte</gui> anzuzeigen. Wählen Sie den Medientyp und die "
+"Ausrichtung für das neue Dokument aus und klicken Sie anschließend auf "
+"<gui>OK</gui>. Ein neues Dokument erscheint im Anzeigebereich des "
+"<app>gLabels</app>-Fensters."
+
+#: C/multifile.page:9(desc)
+msgid "How to open multiple files at once by using the command line."
+msgstr "Öffnen mehrerer Dateien aus einer Befehlszeile."
+
+#: C/multifile.page:25(title)
+msgid "To open multiple files from the command line"
+msgstr "Öffnen mehrerer Dateien aus einer Befehlszeile"
 
-#: C/glabels.xml:566(para)
+#: C/multifile.page:27(p)
 msgid ""
-"Click the desired location of the upper left corner of the box object and "
-"drag to the desired location of the lower right corner. If you simply click "
-"in a single location, a square box will be created. To change properties of "
-"the box object, see <xref linkend=\"glabels-object-properties\"/>."
+"You can run <app>gLabels</app> from a command line and open a single file or "
+"multiple files. To open multiple files from a command line, type the "
+"following command, then press <key>Return</key>:"
 msgstr ""
-"Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des "
-"Rechteckobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie "
-"einfach auf eine Stelle klicken, wird ein quadratisches Objekt erzeugt. Wie "
-"Sie die Eigenschaften des Rechteckobjekts ändern können, finden Sie in <xref "
-"linkend=\"glabels-object-properties\"/>."
+"Sie können <app>gLabels</app> aus einer Befehlszeile starten und eine Datei "
+"oder mehrere Dateien öffnen. Um mehrere Dateien aus einer Befehlszeile zu "
+"öffnen, geben Sie den folgenden Befehl ein und drücken dann die "
+"<key>Eingabetaste</key>:"
 
-#: C/glabels.xml:575(term) C/glabels.xml:1149(guilabel)
-msgid "Line"
-msgstr "Linie"
+#: C/multifile.page:33(var)
+msgid "file1.glabels file2.glabels file3.glabels"
+msgstr "Datei1.glabels Datei2.glabels Datei3.glabels"
+
+#: C/multifile.page:32(cmd)
+msgid "glabels <placeholder-1/>"
+msgstr "glabels <placeholder-1/>"
 
-#: C/glabels.xml:577(para)
+#: C/multifile.page:36(p)
 msgid ""
-"Click the desired location of one end of the line object and drag to the "
-"desired location of the other end. If you simply click in a single location, "
-"a diagonal line will be created. To change properties of the line object, see "
-"<xref linkend=\"glabels-object-properties\"/>."
+"When the application starts, the files that you specify are displayed in "
+"separate <app>gLabels</app> windows."
 msgstr ""
-"Klicken Sie auf die gewünschte Stelle für das Ende des Linienobjekts und "
-"ziehen Sie zur gewünschten Stelle des anderen Endes. Wenn Sie einfach auf "
-"eine Stelle klicken, wird eine diagonale Linie erzeugt. Wie Sie die "
-"Eigenschaften des Linienobjekts ändern können, finden Sie in <xref linkend="
-"\"glabels-object-properties\"/>."
-
-#: C/glabels.xml:586(term)
-msgid "Ellipse"
-msgstr "Ellipse"
+"Wenn die Anwendung startet, werden die von Ihnen angegebenen Dateien in "
+"separaten -<app>gLabels</app>-Fenstern angezeigt."
 
-#: C/glabels.xml:588(para)
-msgid ""
-"Click the desired location of the upper left corner of the ellipse object and "
-"drag to the desired location of the lower right corner. If you simply click "
-"in a single location, a circle will be created. To change properties of the "
-"ellipse object, see <xref linkend=\"glabels-object-properties\"/>."
-msgstr ""
-"Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des "
-"Ellipsenobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie "
-"einfach auf eine Stelle klicken, wird ein Kreis erzeugt. Wie Sie die "
-"Eigenschaften des Ellipsenobjekts ändern können, finden Sie in <xref linkend="
-"\"glabels-object-properties\"/>."
+#: C/merge.page:9(desc)
+msgid "Merge a data source to create multiple documents."
+msgstr "Einmischen einer Datenquelle zur Erstellung von Seriendokumenten."
 
-#: C/glabels.xml:597(term)
-msgid "Image"
-msgstr "Image"
+#: C/merge.page:25(title)
+msgid "Document merge tutorial"
+msgstr "Anleitung zur Dokumentmischung"
 
-#: C/glabels.xml:599(para)
+#: C/merge.page:27(p)
 msgid ""
-"Click the desired location of the upper left corner of the image object and "
-"drag to the desired location of the lower right corner. If you simply click "
-"in a single location, a square will be created. New image objects are "
-"initialized with a simple checkerboard image. To change this image, or other "
-"properties of the image object, see <xref linkend=\"glabels-object-properties"
-"\"/>."
+"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that "
+"allows a unique label or card to be printed for each record in an external "
+"data source. It is however, the most mis-understood feature of <app>glabels</"
+"app>. The following examples will step through a couple of common tasks using "
+"the document merge feature."
 msgstr ""
-"Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des "
-"Bildobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie "
-"einfach auf eine Stelle klicken, wird ein quadratisches Objekt erzeugt. Neue "
-"Bildobjekte erhalten anfänglich ein Schachbrettmuster. Wie Sie dies oder "
-"andere Eigenschaften des Bildobjekts ändern können, finden Sie in <xref "
-"linkend=\"glabels-object-properties\"/>."
-
-#: C/glabels.xml:610(term)
-msgid "Barcode"
-msgstr "Strichcode"
+"Dokumentmischung ist ein mächtiges Funktionsmerkmal, das es Ihnen ermöglicht, "
+"ein einzelnes Etikett oder eine einzelne Karte für jeden Datensatz aus einer "
+"externen Datenquelle zu erstellen. Es ist allerdings die am häufigsten "
+"missverstandene Funktion in <app>glabels</app>. Die folgenden Beispiele "
+"führen Sie schrittweise durch viele der Aufgaben, die Sie mit der "
+"Dokumentmischung ausführen können."
 
-#: C/glabels.xml:612(para)
-msgid ""
-"Click the desired location of the upper left corner of the barcode object. "
-"New barcode objects are initialized to a POSTNET barcode with representative "
-"data. To change data and properties of the barcode object, see <xref linkend="
-"\"glabels-object-properties\"/>."
-msgstr ""
-"Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des "
-"Strichcodeobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Neue "
-"Objekte erhalten anfänglich einen POSTNET-Strichcode mit Beispieldaten. Wie "
-"Sie die Eigenschaften des Strichcodeobjekts ändern können, finden Sie in "
-"<xref linkend=\"glabels-object-properties\"/>."
+#: C/mergefeatures.page:9(desc)
+msgid "What you may expect from a document merge."
+msgstr "Was Sie von einer Dokumentmischung erwarten können."
 
-#: C/glabels.xml:627(title)
-msgid "To Select Objects"
-msgstr "Auswählen von Objekten"
+#: C/mergefeatures.page:25(title)
+msgid "Performing a document merge"
+msgstr "Ausführung einer Dokumentmischung"
 
-#: C/glabels.xml:629(para)
+#: C/mergefeatures.page:27(p)
 msgid ""
-"A prerequisite for performing operations on objects is the selection of "
-"individual objects or groups of objects. The display area must be in the "
-"object selection mode to create new selections, as indicated by an arrow "
-"cursor. The object selection mode is selected by the "
-"<menuchoice><guimenu>Objects</guimenu><guimenuitem>Select Mode</guimenuitem></"
-"menuchoice> menu item, or the corresponding command on the <guilabel>Drawing "
-"Toolbar</guilabel>."
+"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that "
+"allows a unique label or card to be printed for each record in an external "
+"data source."
 msgstr ""
-"Eine Voraussetzung zum Ausführen von Operationen auf Objekten ist die Auswahl "
-"individueller Objekte oder Gruppen von Objekten. Der Anzeigebereich muss sich "
-"im Objektauswahlmodus befinden, was durch einen pfeilförmigen Mauszeiger "
-"angezeigt wird. Der Objektauswahlmodus wird über den Menüeintrag "
-"<menuchoice><guimenu>Objekte</guimenu><guimenuitem>Auswahlmodus</"
-"guimenuitem></menuchoice> aktiviert oder über das entsprechende Objekt in der "
-"<guilabel>Zeichenwerkzeugleiste</guilabel>."
-
-#: C/glabels.xml:642(term)
-msgid "Selecting a single object"
-msgstr "Auswahl eines einzelnen Objekts"
+"Dokumentmischung ist ein mächtiges Funktionsmerkmal, das es Ihnen ermöglicht, "
+"ein einzelnes Etikett oder eine einzelne Karte für jeden Datensatz aus einer "
+"externen Datenquelle zu erstellen."
 
-#: C/glabels.xml:644(para)
+#: C/mergefeatures.page:31(p)
 msgid ""
-"A single object can be selected simply by clicking on the desired object in "
-"the display area. Once selected the object will be highlighted with a set of "
-"resizing handles."
+"The first step to performing a document merge is to prepare a source document "
+"that contains your merge data. This data could be mailing addresses or any "
+"other data that you wish to create unique labels or cards for. Currently back-"
+"ends only exist for text files and the evolution data server -- others are "
+"planned. The currently supported text-file format is very simple: each line "
+"is a record; fields are delimited by commas (CSV), tabs, or colons; and "
+"newlines can be embedded into fields by using the \"\\n\" entity. This file "
+"could be created using any text editor or could be created by another program "
+"or script. A common way of creating CSV files is to export them from a "
+"spreadsheet program."
 msgstr ""
-"Ein einzelnes Objekt können Sie auswählen, indem Sie das gewünschte Objekt im "
-"Anzeigebereich anklicken. Nach dem Anklicken wird das Objekt durch "
-"Anfasspunkte zur Größenänderung hervorgehoben."
-
-#: C/glabels.xml:652(term)
-msgid "Aggregate object selections"
-msgstr "Auswahl mehrerer Objekte"
+"Der erste Schritt zur Ausführung einer Dokumentmischung ist die Vorbereitung "
+"eines Quelldokuments, welches die Daten zum Mischen enthält. Diese Daten "
+"können aus E-Mail-Adressen oder anderen Daten bestehen, aus denen Sie die "
+"einzelnen Etiketten oder Karten erstellen wollen. Gegenwärtig können als "
+"Datenquellen entweder Textdateien oder die Daten des Evolution-Adressbuchs "
+"verwendet werden, andere sind bereits in Planung. Das derzeit unterstützte "
+"Textformat ist recht einfach: Jede Zeile stellt einen Datensatz dar, wobei "
+"die einzelnen Felder durch Kommata (CSV), Tabulatoren oder Semikola getrennt "
+"werden. Neue Zeilen werden durch einen Zeilenumbruch »\\n« erzeugt. Diese "
+"Datei kann mit einem Texteditor, einem anderen Programm oder einem Skript "
+"erstellt werden. Ein üblicher Weg der Erstellung ist der Export einer CSV-"
+"Datei aus einer Tabellenkalkulation."
 
-#: C/glabels.xml:654(para)
+#: C/mergefeatures.page:43(p)
 msgid ""
-"Multiple objects can be selected by first selecting the first object as above "
-"and then by holding the <keycap>Ctrl</keycap> key while selecting additional "
-"objects. Individual objects can be added to an existing selection at any time "
-"by holding the <keycap>Ctrl</keycap> key while selecting the desired objects. "
-"All objects can also be selected by using the <menuchoice><guimenu>Edit</"
-"guimenu><guimenuitem>Select All</guimenuitem></menuchoice> menu item. All "
-"objects in an aggregate object selection will be highlighted."
+"A label must then be configured to \"point at\" this data file. To configure "
+"the merge properties of a document, choose <guiseq><gui>Objects</"
+"gui><gui>Merge Properties</gui></guiseq> menu item to display the <gui>merge "
+"properties</gui> dialog. This dialog is used to select the exact data file "
+"format and file name (location) of the merge data."
 msgstr ""
-"Sie können mehrere Objekte auswählen, indem Sie zunächst das erste Objekt "
-"auswählen, wie oben beschrieben. Halten Sie dann bei der Auswahl weiterer "
-"Objekte die <keycap>Strg</keycap>-Taste gedrückt. Zusätzliche Objekte können "
-"Sie jederzeit zur Auswahl hinzufügen, wenn Sie wiederum die <keycap>Strg</"
-"keycap>-Taste gedrückt halten und die gewünschten Objekte auswählen. Alle "
-"Objekte lassen sich über den Menüeintrag <menuchoice><guimenu>Bearbeiten</"
-"guimenu><guimenuitem>Alle auswählen</guimenuitem></menuchoice> auswählen. "
-"Alle Objekte in einer zusammenhängenden Objektauswahl werden hervorgehoben "
-"dargestellt."
-
-#: C/glabels.xml:668(term)
-msgid "Area selections"
-msgstr "Bereichsauswahl"
+"Ein Etikett muss erstellt werden, das auf diese Datenquelle »zeigt«. Um die "
+"Mischeigenschaften für ein Dokument festzulegen, wählen Sie "
+"<guiseq><gui>Objekte</gui><gui>Mischeinstellungen</gui></guiseq>. Der Dialog "
+"<gui>Mischeigenschaften</gui> wird geöffnet. In diesem Dialog wählen Sie das "
+"genaue Dateiformat und den Dateinamen (den Ort) der einzumischenden Daten aus."
 
-#: C/glabels.xml:670(para)
+#: C/mergefeatures.page:51(p)
 msgid ""
-"Multiple objects can also be selected by clicking an empty area and dragging "
-"to form a rectangular area. When released, all objects contained in the area "
-"will form an aggregate selection. An area selection can be used to add to an "
-"existing selection by holding the <keycap>Ctrl</keycap> key while performing "
-"the selection."
+"Finally, once the label has been configured for a data file, field keys can "
+"be inserted into text objects and used as source or data for barcode objects "
+"and image filenames for image objects. See <link xref=\"editprop\"/> for more "
+"information on using merge data for these object types."
 msgstr ""
-"Sie können auch mehrere Objekte auswählen, indem Sie in einen leeren Bereich "
-"klicken und mit der Maus die Form eines Rechtecks aufziehen. Daraufhin bilden "
-"alle Objekte in diesem Bereich eine zusammenhängende Auswahl. Eine "
-"Bereichsauswahl kann zum Hinzufügen einer vorhandenen Auswahl benutzt werden, "
-"wenn Sie bei der Auswahl die <keycap>Strg</keycap>-Taste gedrückt halten."
-
-#: C/glabels.xml:680(term)
-msgid "Unselecting objects"
-msgstr "Auswahl von Objekten aufheben"
+"Zum Schluss, sobald das Etikett für die Datenquelle eingerichtet wurde, "
+"können die Feldschlüssel in Textobjekte eingefügt werden, um sie als "
+"Datenquelle für Strichcodeobjekte oder Bilder für Bildobjekte zu verwenden. "
+"Weitere Informationen über die Verwendung der Mischdaten für diese "
+"Objekttypen finden Sie in <link xref=\"editprop\"/>."
 
-#: C/glabels.xml:682(para)
+#: C/mergefeatures.page:57(p)
 msgid ""
-"Individual objects can be removed from an existing selection by holding the "
-"<keycap>Ctrl</keycap> key while clicking on a previously selected object. An "
-"entire selection can be dismissed by using the <menuchoice><guimenu>Edit</"
-"guimenu><guimenuitem>Un-select All</guimenuitem></menuchoice> menu item or by "
-"simply clicking any empty space in the display area. Once an object is "
-"unselected its highlight is removed."
+"Now that your label is configured, <app>gLabels</app> will print a unique "
+"label for each record in your source document -- substituting fields from "
+"each record for field keys in the all text, barcode, and image objects."
 msgstr ""
-"Sie können individuelle Objekte aus einer vorhandenen Auswahl entfernen, wenn "
-"Sie beim Klicken auf ein zuvor ausgewähltes Objekt die <keycap>Strg</keycap>-"
-"Taste gedrückt halten. Die gesamte Auswahl können Sie rückgängig machen, "
-"indem Sie im Menü <menuchoice><guimenu>Bearbeiten</guimenu><guimenuitem>Alle "
-"Markierungen löschen</guimenuitem></menuchoice> wählen. Sobald ein Objekt "
-"nicht mehr ausgewählt ist, wird es nicht mehr hervorgehoben dargestellt."
-
-#: C/glabels.xml:699(title)
-msgid "Clipboard Commands"
-msgstr "Befehle für die Zwischenablage"
+"Da Ihr Etikett nun konfiguriert ist, druckt <app>gLabels</app> genau ein "
+"Etikett für jeden Datensatz des Quelldokuments, wobei alle Text-, Bild- und "
+"Strichcode-Objekte durch die Einträge der Felder jedes Datensatzes ersetzt "
+"werden."
 
-#: C/glabels.xml:701(para)
+#: C/mergefeatures.page:62(p)
 msgid ""
-"Object selections can be manipulated using the standard clipboard operations "
-"<guimenuitem>Cut</guimenuitem>, <guimenuitem>Copy</guimenuitem>, "
-"<guimenuitem>Paste</guimenuitem>, and <guimenuitem>Delete</guimenuitem>."
+"See <link xref=\"merge\"/> for a detailed tutorial on the document merge "
+"feature."
 msgstr ""
-"Objektauswahlen können durch die Standardoperationen der Zwischenablage "
-"<guimenuitem>Ausschneiden</guimenuitem>, <guimenuitem>Kopieren</guimenuitem>, "
-"<guimenuitem>Einfügen</guimenuitem> und <guimenuitem>Löschen</guimenuitem> "
-"manipuliert werden."
+"In <link xref=\"merge\"/> finden Sie eine ausführliche Anleitung für dieses "
+"Funktionsmerkmal."
 
-#: C/glabels.xml:712(keycap) C/glabels.xml:728(keycap)
-#: C/glabels.xml:744(keycap)
-msgid "Ctrl"
-msgstr "Strg"
+#: C/merge-ex4.page:9(desc)
+msgid "Create address labels from a vCard file."
+msgstr "Erstellen von Adressetiketten aus einer vCard-Datei."
 
-#: C/glabels.xml:712(keycap)
-msgid "X"
-msgstr "X"
+#: C/merge-ex4.page:25(title)
+msgid "Example 4: Address Labels Using a vCard file"
+msgstr "Beispiel 4: Adressetiketten unter Nutzung einer vCard-Datei"
 
-#: C/glabels.xml:714(guimenuitem)
-msgid "Cut"
-msgstr "Ausschneiden"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex3.page:53(None)
+#, fuzzy
+msgid "@@image: 'figures/merge-ex3-1.png'; md5=fb5bf719857fb0a49517ecb50124384d"
+msgstr "translated"
 
-#: C/glabels.xml:718(para)
-msgid ""
-"Moves selected objects to the clipboard. The objects are then available for "
-"pasting back into the current document or another document."
-msgstr ""
-"Verschiebt die ausgewählten Objekte in die Zwischenablage. Diese Objekte sind "
-"dann verfügbar, um später in das aktuelle Dokument oder ein anderes Dokument "
-"eingefügt zu werden."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex3.page:74(None)
+#, fuzzy
+msgid "@@image: 'figures/merge-ex3-2.png'; md5=28a15319cea58be75ff789c766dc0717"
+msgstr "translated"
 
-#: C/glabels.xml:728(keycap)
-msgid "C"
-msgstr "C"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex3.page:88(None)
+#, fuzzy
+msgid "@@image: 'figures/merge-ex3-3.png'; md5=443d59a44d8ddf5580087a772d4e3eec"
+msgstr "translated"
 
-#: C/glabels.xml:730(guimenuitem)
-msgid "Copy"
-msgstr "Kopieren"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex3.page:99(None)
+#, fuzzy
+msgid "@@image: 'figures/merge-ex3-4.png'; md5=1995114757cccebda45b686caeb37fa7"
+msgstr "translated"
 
-#: C/glabels.xml:734(para)
+#: C/merge-ex3.page:9(desc)
 msgid ""
-"Copies selected objects to the clipboard without deleting them. The objects "
-"are then available for pasting back into the current document or another "
-"document."
+"Create address labels from the <app>Evolution</app> address book entries."
 msgstr ""
-"Kopiert die ausgewählten Objekte in die Zwischenablage, ohne sie zu "
-"entfernen. Diese Objekte sind dann verfügbar, um später in das aktuelle "
-"Dokument oder ein anderes Dokument eingefügt zu werden."
-
-#: C/glabels.xml:744(keycap)
-msgid "V"
-msgstr "V"
+"Erstellung von Adressetiketten unter Nutzung des <app>Evolution</app>-"
+"Adressbuchs."
 
-#: C/glabels.xml:746(guimenuitem)
-msgid "Paste"
-msgstr "Einfügen"
+#: C/merge-ex3.page:25(title)
+msgid "Example 3: Address Labels Using the <app>Evolution</app> Addressbook"
+msgstr ""
+"Beispiel 3: Adressetiketten unter Nutzung des <app>Evolution</app>-Adressbuchs"
 
-#: C/glabels.xml:750(para)
+#: C/merge-ex3.page:27(p)
 msgid ""
-"Pastes objects from the clipboard into the current document. "
-"<application>gLabels</application> can only paste objects from another "
-"<application>gLabels</application> document."
+"Our last party was a great success, and now we need to print mailing address "
+"labels for the invitations to a new one. To simplify this, we can use the "
+"<app>Evolution</app> addressbook, because the address data of all our friends "
+"is stored there."
 msgstr ""
-"Fügt Objekte aus der Zwischenablage in das aktuelle Dokument ein. "
-"<application>gLabels</application> kann nur Objekte aus anderen "
-"<application>gLabels</application>-Dokumenten einfügen."
+"Ihre letzte Party war ein voller Erfolg. Nun benötigen Sie wieder "
+"Adressetiketten für die Einladungen zu einer neuen Party. Um dies zu "
+"vereinfachen, können Sie das <app>Evolution</app>-Adressbuch nutzen, denn die "
+"Adressdaten aller Ihrer Freunde sind dort gespeichert."
+
+#: C/merge-ex3.page:33(p)
+msgid ""
+"Depending on how your copy of <app>gLabels</app> was packaged, this option "
+"could be unavailable. Support for the <app>Evolution</app> addressbook will "
+"only be available if the <app>evolution-data-server</app> and its development "
+"files were present when <app>gLabels</app> was built. Please keep this in "
+"mind if you build <app>gLabels</app> directly from source."
+msgstr ""
+"Abhängig davon, wie Ihr <app>gLabels</app>-Paket erstellt wurde, könnte diese "
+"Option  nicht verfügbar sein. Die Unterstützung für das Adressbuch von "
+"<app>Evolution</app> ist nur dann vorhanden, wenn <app>evolution-data-server</"
+"app> und dessen Entwicklerdateien zum Zeitpunkt der Erstellung von "
+"<app>gLabels</app> verfügbar waren. Bitte denken Sie auch daran, wenn Sie "
+"<app>gLabels</app> direkt aus den Quellen erstellen."
+
+#: C/merge-ex3.page:39(p)
+msgid ""
+"If the <app>gLabels</app> package from your distribution lacks this support, "
+"you may wish to contact the package maintainer or file a bug against the "
+"package to request it."
+msgstr ""
+"Falls das <app>gLabels</app>-Paket Ihrer Distribution diese Unterstützung "
+"nicht bieten sollte, kontaktieren Sie bitte den Ersteller des Pakets oder "
+"senden Sie einen Fehlerbericht, um dies einzufordern."
+
+#: C/merge-ex3.page:44(p)
+msgid ""
+"In <app>glabels</app> we have created a new <app>gLabels</app> document using "
+"the Avery 5512 \"Address Labels\" template. Next we use the "
+"<guiseq><gui>Objects</gui><gui>Merge Properties</gui></guiseq> menu item to "
+"display the <gui>Merge properties</gui> dialog. We use this dialog to select "
+"the source type (in our case <gui>Data from default Evolution addressbook</"
+"gui>) as shown."
+msgstr ""
+"In <app>glabels</app> haben Sie ein neues Dokument unter Verwendung der "
+"Dokumentvorlage »Avery 5512 Adressetiketten« erzeugt. Zunächst öffnen Sie "
+"mittels <guiseq><gui>Objekte</gui><gui>Mischeinstellungen</gui></guiseq> den "
+"Dialog <gui>Mischeinstellungen</gui>. In diesem Dialog wählen Sie wie gezeigt "
+"die Datenquelle aus, in diesem Fall CSV, sowie die Mischquelle (Dateiname)."
+
+#: C/merge-ex3.page:54(p) C/merge-ex2.page:53(p) C/merge-ex1.page:51(p)
+msgid "Merge properties dialog"
+msgstr "Mischeinstellungen-Dialog"
 
-#: C/glabels.xml:760(keycap) C/glabels.xml:762(guimenuitem)
-msgid "Delete"
-msgstr "Löschen"
+#. ==== End of Figure ====
+#: C/merge-ex3.page:58(p)
+msgid ""
+"Once we have chosen <gui>Data from default Evolution addressbook </gui> as "
+"our merge source, we will get a full list of its content. Initially, all "
+"entries are checked. Assuming we were planning a really big party, we could "
+"leave this selection untouched (but let's keep our budget in mind). We will "
+"now select or unselect certain entries by clicking on the appropriate "
+"checkboxes, or we could use the <gui>Select all</gui> and <gui>Unselect all </"
+"gui> buttons to activate or deactivate all entries in the address book."
+msgstr ""
+"Sobald Sie <gui>Daten aus dem vorgegebenen Evolution-Adressbuch</gui> als "
+"Mischquelle gewählt haben, erhalten Sie eine vollständige Liste mit dessen "
+"Inhalt. Anfänglich sind alle Einträge ausgewählt. Angenommen, Sie planen eine "
+"wirklich große Party, können Sie die Auswahl unverändert belassen. Behalten "
+"Sie jedoch dabei Ihre finanziellen Möglichkeiten im Auge. Sie können "
+"bestimmte Einträge auswählen oder wieder abwählen, indem Sie die "
+"entsprechenden Ankreuzfelder anklicken. Alternativ können Sie durch Anklicken "
+"der Knöpfe <gui>Alle markieren</gui> oder <gui>Markierung aufheben</gui> alle "
+"Einträge des Adressbuchs aktivieren oder deaktivieren. "
 
-#: C/glabels.xml:766(para)
-msgid "Deletes selected objects without placing them on the clipboard."
+#: C/merge-ex3.page:66(p)
+msgid ""
+"We can also view each entry in more detail by clicking on the appropriate "
+"expander (the little triangles) as shown. Once we are satisfied with the "
+"selections in this dialog, we will click the <gui>OK</gui> button to accept "
+"the changes."
 msgstr ""
-"Entfernt die ausgewählten Objekte, ohne sie in die Zwischenablage zu "
-"verschieben."
-
-#: C/glabels.xml:777(title)
-msgid "To Edit Object Properties"
-msgstr "Bearbeiten der Objekteigenschaften"
+"Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen "
+"Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf "
+"<gui>OK</gui>, um die Änderungen anzuwenden."
 
-#: C/glabels.xml:779(para)
-msgid ""
-"Most object properties can be modified through the object editor sidebar, "
-"illustrated below. To use the object editor, a single object must first be "
-"selected. See <xref linkend=\"glabels-select-objects\"/>."
+#: C/merge-ex3.page:71(p) C/merge-ex2.page:67(p) C/merge-ex1.page:60(p)
+msgid "Now we start adding objects to our <app>glabels</app> document as shown."
 msgstr ""
-"Die meisten Objekteigenschaften können Sie über die Objekteditor-Seitenleiste "
-"verändern, wie unten illustriert. Um den Objekteditor zu verwenden, muss "
-"zunächst ein einzelnes Objekt ausgewählt werden. Siehe <xref linkend="
-"\"glabels-select-objects\"/>."
+"Nun beginnen wir mit dem Hinzufügen von Objekten zu unserem <app>gLabels</"
+"app>-Dokument, wie gezeigt."
 
-#: C/glabels.xml:786(title)
-msgid "Object Editor Sidebar"
-msgstr "Objekteditor-Seitenleiste"
+#: C/merge-ex3.page:75(p) C/merge-ex2.page:71(p) C/merge-ex1.page:64(p)
+msgid "Adding objects"
+msgstr "Hinzufügen von Objekten"
 
 #. ==== End of Figure ====
-#: C/glabels.xml:797(para)
+#: C/merge-ex3.page:79(p)
 msgid ""
-"The object editor will contain a subset of the following tabbed sections, "
-"depending on object type:"
+"In this example we have a single text object again. This text object contains "
+"all of our merge fields organized on multiple lines as a mailing address."
 msgstr ""
-"Der Objekteditor bietet eine Auswahl der folgenden Reiter, abhängig vom "
-"Objekttyp:"
-
-#: C/glabels.xml:801(title)
-msgid "Text Tabbed Section (Text objects)"
-msgstr "Text-Reiter (Textobjekte)"
+"In diesem Beispiel haben Sie ein einzelnes Textobjekt. Dieses Textobjekt "
+"enthält alle Einmischfelder, angeordnet in mehreren Zeilen wie eine "
+"Versandadresse."
 
-#: C/glabels.xml:803(para)
+#: C/merge-ex3.page:82(p)
 msgid ""
-"This section contains a small editor for changing the content of a text "
-"object. It also contains a dropdown menu of available document merge keys, "
-"that can be inserted into text."
+"Now we can print our address labels by selecting the <guiseq><gui>File</"
+"gui><gui>Print</gui></guiseq> menu item. This will display the print dialog "
+"as shown below."
 msgstr ""
-"Dieser Abschnitt bietet einen kleinen Editor zum Bearbeiten des Inhalts eines "
-"Textobjekts. Weiterhin ist ein Ausklappmenü mit den verfügbaren Schlüsseln "
-"zur Dokumentmischung enthalten, die in den Text eingefügt werden können."
+"Nun können Sie Ihre Adressetiketten drucken, indem Sie <guiseq><gui>Datei</"
+"gui><gui>Drucken</gui></guiseq> wählen. Der unten angezeigte Druckdialog wird "
+"geöffnet."
 
-#: C/glabels.xml:810(title)
-msgid "Image Tabbed Section (Image objecs)"
-msgstr "Bild-Reiter (Bild-Objekte)"
+#: C/merge-ex3.page:89(p) C/merge-ex2.page:89(p)
+msgid "Printing address labels"
+msgstr "Adressetiketten drucken"
 
-#: C/glabels.xml:812(para)
+#. ==== End of Figure ====
+#: C/merge-ex3.page:93(p) C/merge-ex2.page:93(p) C/merge-ex1.page:89(p)
 msgid ""
-"This section contains a file entry with preview to select image files. The "
-"browse button can be used to easily locate image files. Alternatively, a "
-"document merge key can be used instead to provide a filename at print time."
+"Just to make sure our labels are going to look okay, we select the <gui>Print "
+"outlines</gui> option and click <gui>Print Preview</gui>. This will display a "
+"print preview dialog as shown below."
 msgstr ""
-"Dieser Abschnitt enthält einen Dateiwähler mit Vorschau zur Auswahl von "
-"Bilddateien. Der »Durchsuchen«-Knopf kann zum Suchen von Bilddateien benutzt "
-"werden. Alternativ können Sie einen Schlüssel zur Dokumenteinmischung "
-"anstelle eines Dateinamens angeben, der bei der Ausgabe des Dokuments ersetzt "
-"wird."
+"Um sicher zu stellen, dass Ihre Etiketten gut aussehen, wählen Sie die Option "
+"<gui>Begrenzungen drucken</gui> und klicken auf <gui>Druckvorschau</gui>. Der "
+"Druckvorschaudialog wird geöffnet, wie unten angezeigt."
 
-#: C/glabels.xml:820(title)
-msgid "Data Tabbed Section (Barcode objecs)"
-msgstr "Daten-Reiter (Strichcode-Objekte)"
+#: C/merge-ex3.page:100(p)
+msgid "Addess labels preview"
+msgstr "Adressetiketten-Vorschau"
 
-#: C/glabels.xml:822(para)
+#. ==== End of Figure ====
+#: C/merge-ex3.page:104(p) C/merge-ex2.page:104(p)
 msgid ""
-"This section contains a text entry to enter literal barcode data. "
-"Alternatively, a document merge key can be used to provide this data at print "
-"time."
+"Everything looks good, so we can now load up our printer with the appropriate "
+"label stock, print our address labels and start mailing our party invitations."
 msgstr ""
-"Dieser Abschnitt enthält ein Textfeld zur Eingabe von Strichcode-Daten. "
-"Alternativ kann hier ein Schlüssel zur Dokumentmischung eingetragen werden, "
-"der beim Druck für die Bereitstellung der richtigen Daten sorgt."
+"Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden "
+"Etiketten bestücken, die Adressetiketten drucken und die Einladungen zur "
+"Party versenden."
 
-#: C/glabels.xml:829(title)
-msgid "Style Tabbed Section (Text objects)"
-msgstr "Stil-Reiter (Text-Objekte)"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex2.page:52(None)
+#, fuzzy
+msgid "@@image: 'figures/merge-ex2-1.png'; md5=c9db139c5b7188e101470dc74684a118"
+msgstr "translated"
 
-#: C/glabels.xml:831(para)
-msgid ""
-"This section contains controls to select text properties, including font "
-"family, font size, font weight, color, and text justification."
-msgstr ""
-"Dieser Abschnitt enthält Einstellmöglichkeiten für die Texteigenschaften, wie "
-"Schriftfamilie, Schriftgröße, Schriftstärke, Schriftfarbe und Ausrichtung des "
-"Texts."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex2.page:70(None)
+#, fuzzy
+msgid "@@image: 'figures/merge-ex2-2.png'; md5=240b4e4ebaa270e0e8bf84c5bfd7233e"
+msgstr "translated"
 
-#: C/glabels.xml:838(title)
-msgid "Style Tabbed Section (Barcode objecs)"
-msgstr "Stil-Reiter (Strichcode-Objekte)"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex2.page:88(None)
+#, fuzzy
+msgid "@@image: 'figures/merge-ex2-3.png'; md5=c347460091d8eef9f4ec89557fa9f1e2"
+msgstr "translated"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex2.page:99(None)
+#, fuzzy
+msgid "@@image: 'figures/merge-ex2-4.png'; md5=30d12e946a79e27211b835e38742671c"
+msgstr "translated"
 
-#: C/glabels.xml:840(para)
+#: C/merge-ex2.page:9(desc)
+msgid "Create address labels from a CSV file."
+msgstr "Erstellen von Adressetiketten aus den Daten einer CSV-Datei."
+
+#: C/merge-ex2.page:25(title)
+msgid "Example 2: Address labels"
+msgstr "Beispiel 2: Adressetiketten"
+
+#: C/merge-ex2.page:27(p)
 msgid ""
-"This section contains controls to select barcode properties, including "
-"barcode style, color, whether to print text, and whether to include a "
-"checksum digit."
+"In this example we are going to throw a party and need to print mailing "
+"address labels for our invitations. We have a list of our closest friends "
+"that we created in <app>gnumeric</app> and exported as the following CSV "
+"file. It should be noted that not everyone has a middle initial or a two line "
+"address."
 msgstr ""
-"Dieser Abschnitt enthält Einstellmöglichkeiten für die Eigenschaften des "
-"Strichcodes, wie Stil, Farbe, Drucken von Text oder Beinhalten einer "
-"Prüfsumme."
+"In diesem Beispiel planen Sie eine Party. Dafür benötigen Sie Adressetiketten "
+"für die Einladungen. Sie haben eine Liste Ihrer besten Freunde in "
+"<app>gnumeric</app> erstellt, die Sie in die folgende CSV-Datei exportiert "
+"haben. Es ist zu beachten, dass nicht jeder einen zweiten Vornamen oder eine "
+"zweizeilige Adresse hat."
 
-#: C/glabels.xml:847(title)
-msgid "Line Tabbed Section"
-msgstr "Linie-Reiter"
+#: C/merge-ex2.page:33(code)
+#, no-wrap
+msgid ""
+"\n"
+"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n"
+",,,,,,,\n"
+"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n"
+"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n"
+"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n"
+"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n"
+"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n"
+"      "
+msgstr ""
+"\n"
+"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n"
+",,,,,,,\n"
+"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n"
+"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n"
+"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n"
+"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n"
+"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n"
+"      "
 
-#: C/glabels.xml:849(para)
+#: C/merge-ex2.page:43(p)
 msgid ""
-"This section contains controls to select properties of lines and outlines. "
-"These properties include line width and color."
+"In <app>glabels</app> we have created a new <app>glabels</app> document using "
+"the Avery 5512 \"Address Labels\" template. Next we use the "
+"<guiseq><gui>Objects</gui><gui>Merge Properties</gui></guiseq> menu item to "
+"display the <gui>merge properties</gui> dialog. We use this dialog to select "
+"the source type (in our case CSV with keys on line 1) and the merge source "
+"(filename) as shown."
 msgstr ""
-"Dieser Abschnitt enthält Einstellmöglichkeiten für die Auswahl von "
-"Eigenschaften von Linien und Begrenzungen, wie Linienbreite und -farbe."
+"In <app>glabels</app> haben Sie ein neues Dokument unter Verwendung der "
+"Dokumentvorlage »Avery 5512 Adressetiketten« erzeugt. Zunächst öffnen Sie "
+"mittels <guiseq><gui>Objekte</gui><gui>Mischeinstellungen</gui></guiseq> den "
+"Dialog <gui>Mischeinstellungen</gui>. In diesem Dialog wählen Sie wie gezeigt "
+"die Datenquelle aus, in diesem Fall »CSV mit Schlüsseln in Zeile 1«, sowie "
+"die Mischquelle (Dateiname)."
 
-#: C/glabels.xml:855(title)
-msgid "Fill Tabbed Section"
-msgstr "Füllung-Reiter"
+#. ==== End of Figure ====
+#: C/merge-ex2.page:57(p)
+msgid ""
+"Before applying the merge source, we uncheck the first record since it only "
+"contains empty fields. It is an artifact of our original <app>gnumeric</app> "
+"spreadsheet and would simply waste our first label. We could also unselect "
+"any other records that we didn't want to print a label for."
+msgstr ""
+"Bevor Sie eine neue Einmischquelle anwenden, sollten Sie den ersten Datensatz "
+"deaktivieren, weil dieser nur Spaltenköpfe aus der originalen <app>gnumeric</"
+"app>-Tabelle enthält. Dadurch würde nur das erste Etikett verschwendet. "
+"Weiterhin können Sie alle anderen Datensätze entfernen, die Sie nicht für ein "
+"Etikett verwenden wollen."
 
-#: C/glabels.xml:857(para)
+#. ==== End of Figure ====
+#: C/merge-ex2.page:62(p) C/merge-ex1.page:55(p)
 msgid ""
-"This section contains controls to select fill properties of box and ellipse "
-"objects. Currently the only fill property is fill color."
+"We can also view each record in more detail by clicking on the appropriate "
+"expander (the little triangles) as shown. Once we are satisfied with the "
+"selections in this dialog we click <gui>OK</gui> to accept the changes."
 msgstr ""
-"Dieser Abschnitt enthält Einstellmöglichkeiten für die Auswahl der "
-"Füllungseigenschaften von Rechteck- und Ellipsenobjekten. Derzeit ist nur die "
-"Einstellung der Füllungsfarbe möglich."
+"Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen "
+"Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf "
+"<gui>OK</gui>, um die Änderungen anzuwenden."
 
-#: C/glabels.xml:864(title)
-msgid "Size Tabbed Section (All except line objects)"
-msgstr "Reiter »Größe« (alle außer Linienobjekte)"
+#. ==== End of Figure ====
+#: C/merge-ex2.page:75(p)
+msgid ""
+"In this example we have a single text object. This text object contains all "
+"of our merge fields organized on multiple lines as a mailing address. Notice "
+"that fields ${ADDR1} and ${ADDR2} are each located with no other text on "
+"their own lines. When <app>glabels</app> encounters a field as the only text "
+"on a line, it will not expand the line if the field is empty."
+msgstr ""
+"In diesem Beispiel haben Sie ein einzelnes Textobjekt. Dieses Textobjekt "
+"enthält alle Einmischfelder, angeordnet in mehreren Zeilen wie eine "
+"Versandadresse. Beachten Sie, dass die Felder ${ADDR1} und ${ADDR2} jeweils "
+"keinen weiteren Text in deren Zeilen enthalten. Wenn <app>glabels</app> ein "
+"solches Feld als »nur Text« in einer Zeile erkennt, wird die Zeile nicht "
+"expandiert, falls das Feld leer ist."
 
-#: C/glabels.xml:866(para)
+#: C/merge-ex2.page:82(p)
 msgid ""
-"This section contains controls to select the width and height of an object. A "
-"checkbox is provided, so that the current aspect ratio can be locked while "
-"manipulating the width and height controls. Image objects also provide a "
-"button to reset the size to the image's natural size (Assumes 72DPI)."
+"Now we can print our address labels by selecting the <guiseq><gui>File</"
+"gui><gui>Print</gui></guiseq> menu item. This will display print dialog as "
+"shown below."
 msgstr ""
-"Dieser Abschnitt enthält Einstellmöglichkeiten für die Höhe und die Breite "
-"eines Objekts. Mit einem Ankreuzfeld können Sie die Werte aneinander koppeln, "
-"so dass das Seitenverhältnis beim Ändern der Höhe oder Breite erhalten "
-"bleibt. Für Bildobjekte gibt es außerdem einen Knopf zum Zurücksetzen des "
-"Bildes auf Originalgröße, wobei eine Auflösung von 72 dpi angenommen wird."
+"Nun können Sie Ihre Adressetiketten drucken, indem Sie <guiseq><gui>Datei</"
+"gui><gui>Drucken</gui></guiseq> wählen. Der unten angezeigte Druckdialog wird "
+"geöffnet."
+
+#: C/merge-ex2.page:100(p)
+msgid "Address labels preview"
+msgstr "Adressetiketten-Vorschau"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex1.page:50(None)
+#, fuzzy
+msgid "@@image: 'figures/merge-ex1-1.png'; md5=6e1cda54b797f875f379b657370d87c8"
+msgstr "translated"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex1.page:63(None)
+#, fuzzy
+msgid "@@image: 'figures/merge-ex1-2.png'; md5=2ccad04ae5830f5f4a6a601d9fabed6a"
+msgstr "translated"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex1.page:84(None)
+#, fuzzy
+msgid "@@image: 'figures/merge-ex1-3.png'; md5=858855ab1a392db74b70cdb2bdb27ddd"
+msgstr "translated"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex1.page:95(None)
+#, fuzzy
+msgid "@@image: 'figures/merge-ex1-4.png'; md5=8648ff55dd2e531a1a82b797f0430279"
+msgstr "translated"
+
+#: C/merge-ex1.page:9(desc)
+msgid "Create name tags from a CSV file."
+msgstr "Namensschilder unter Nutzung einer CSV-Datei."
+
+#: C/merge-ex1.page:25(title)
+msgid "Example 1: Name Tags"
+msgstr "Beispiel 1: Namensschilder"
+
+#: C/merge-ex1.page:27(p)
+msgid ""
+"In this example we are organizing an orientation party for the new crew "
+"members of our ship. We have a list of freshman crew members that we created "
+"in <app>gnumeric</app> and exported as the following CSV file. We could have "
+"created this file by using a text editor, but heck it is the 23rd century."
+msgstr ""
+"In diesem Beispiel organisieren Sie eine Orientierungsparty für die neuen "
+"Mannschaftsmitglieder Ihres Schiffes. Eine Liste der neuen Mitglieder haben "
+"Sie in <app>gnumeric</app> erstellt und in die folgende CSV-Datei exportiert. "
+"Sie könnten diese Datei auch in einem Texteditor erstellen, aber schließlich "
+"leben wir im 23. Jahrhundert..."
+
+#: C/merge-ex1.page:33(code)
+#, no-wrap
+msgid ""
+"\n"
+"Name,Department,SN\n"
+"\"Jim Kirk\",Management,\"SC937-0176 CEC\"\n"
+"\"Mr. Spock\",Sciences,S179-276SP\n"
+"\"Leonard McCoy\",Medicine,unknown\n"
+"\"Montgomery Scott\",Engineering,SE-197-54T\n"
+"      "
+msgstr ""
+"\n"
+"Name,Department,SN\n"
+"\"Jim Kirk\",Management,\"SC937-0176 CEC\"\n"
+"\"Mr. Spock\",Sciences,S179-276SP\n"
+"\"Leonard McCoy\",Medicine,unknown\n"
+"\"Montgomery Scott\",Engineering,SE-197-54T\n"
+"      "
+
+#: C/merge-ex1.page:41(p)
+msgid ""
+"In <app>gLabels</app> we have created a new <app>glabels</app> document using "
+"the Avery 5395 \"Name Badge Labels\" template. Next we use the "
+"<guiseq><gui>Objects</gui><gui>Merge Properties</gui></guiseq> menu item to "
+"display the <gui>merge properties</gui> dialog. We use this dialog to select "
+"the source type (in our case CSV with keys on line 1) and the merge source "
+"(filename) as shown."
+msgstr ""
+"In <app>glabels</app> haben Sie ein neues Dokument unter Verwendung der "
+"Dokumentvorlage »Avery 5395 Namensschild-Etiketten« erzeugt. Zunächst öffnen "
+"Sie mittels <guiseq><gui>Objekte</gui><gui>Mischeinstellungen</gui></guiseq> "
+"den Dialog <gui>Mischeinstellungen</gui>. In diesem Dialog wählen Sie wie "
+"gezeigt die Datenquelle aus, in diesem Fall »CSV mit Schlüsseln in Zeile 1«, "
+"sowie die Mischquelle (Dateiname)."
+
+#. ==== End of Figure ====
+#: C/merge-ex1.page:68(p)
+msgid ""
+"In this example we have added three text objects and a barcode object. The "
+"first text object contains only simple literal text (\"Hello, my name is\"). "
+"The second text object contains a single merge field (\"${Name}\") "
+"corresponding to the first field of a record (first column of a line) which "
+"contains the new crew member's full name. The third text field contains both "
+"literal text (\"Department: \") followed by a single merge field "
+"(\"${Department}\") corresponding to the second field or the crew member's "
+"department. The barcode object is configured to use field (or key) \"SN\" "
+"which contains our crew member's starfleet serial number."
+msgstr ""
+"In diesem Beispiel haben Sie drei Textobjekte und ein Strichcodeobjekt "
+"hinzugefügt. Das erste Textobjekt enthält nur einfachen Text (»Hello, my name "
+"is«). Das zweite Textobjekt enthält ein einfaches Mischfeld (»${Name}«), "
+"welches zum ersten Feld eines Datensatzes (erste Spalte einer Zeile) "
+"korrespondiert, die den vollen Namen eines Mannschaftsmitglieds enthält. Das "
+"dritte Feld enthält sowohl einfachen Text (»Department:«) als auch ein "
+"einzelnes Mischfeld (»${Department:}«), welches zum zweiten Feld oder zum "
+"Arbeitsgebiet eines Mannschaftsmitglieds korrespondiert. Das Strichcodefeld "
+"ist so eingestellt, das Feld (oder den Schlüssel) »SN« zu verwenden, das die "
+"Sternenflotten-Seriennummer des Mannschaftsmitglieds enthält."
+
+#: C/merge-ex1.page:78(p)
+msgid ""
+"Now we can print our name tags by selecting the <guiseq><gui>File</"
+"gui><gui>Print</gui></guiseq> menu item. This will display print dialog as "
+"shown below."
+msgstr ""
+"Nun können Sie Ihre Namensschilder drucken, indem Sie <guiseq><gui>Datei</"
+"gui><gui>Drucken</gui></guiseq> wählen. Der unten angezeigte Druckdialog wird "
+"geöffnet."
+
+#: C/merge-ex1.page:85(p)
+msgid "Printing name tags"
+msgstr "Drucken der Namensschilder"
+
+#: C/merge-ex1.page:96(p)
+msgid "Name tags preview"
+msgstr "Vorschau der Namensschilder"
+
+#. ==== End of Figure ====
+#: C/merge-ex1.page:100(p)
+msgid ""
+"Everything looks good, so we can now load up our printer with the appropriate "
+"label stock, print our name tags and start beaming our guests aboard."
+msgstr ""
+"Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden "
+"Etiketten bestücken, die Namensschilder drucken und die Gäste an Bord beamen."
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:340(None)
+msgid ""
+"@@image: 'figures/glabels-template-rect-label.png'; "
+"md5=9c7ae1c1a888e1c9eefd19655d093971"
+msgstr "translated"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:392(None)
+msgid ""
+"@@image: 'figures/glabels-template-ellipse-label.png'; "
+"md5=ba612c86b5fb8fcd2b5384ecc1c331d2"
+msgstr "translated"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:439(None)
+msgid ""
+"@@image: 'figures/glabels-template-circle-label.png'; "
+"md5=841e36a1f92aeed01e8fbaacc67758f1"
+msgstr "translated"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:500(None)
+msgid ""
+"@@image: 'figures/glabels-template-cd-label.png'; "
+"md5=c7952ac1b26ecbfa53facfbbf6486841"
+msgstr "translated"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:762(None)
+msgid ""
+"@@image: 'figures/glabels-template-layout.png'; "
+"md5=fe1c9652d5448b2e0ece086777d3a287"
+msgstr "translated"
+
+#: C/mancreate.page:10(desc)
+msgid "Create your templates manually."
+msgstr "Erstellen Sie Ihre Vorlagen manuell."
+
+#: C/mancreate.page:26(title)
+msgid "Manually creating new templates"
+msgstr "Manuelles Erstellen neuer Vorlagen"
+
+#. ******************
+#: C/mancreate.page:33(p)
+msgid ""
+"This page is a reference guide to manually creating <app>gLabels</app> "
+"templates. <app>gLabels</app> templates are defined in simple XML files as "
+"described in the DTD: <link href=\"http://glabels.org/xmlns/2.3/glabels-2.3."
+"dtd.txt\">glabels-2.3.dtd</link> (this DTD also describes other XML files "
+"used by <app>gLabels</app>)."
+msgstr ""
+"Diese Seite ist eine Referenzanleitung für die manuelle Erstellung von "
+"<app>gLabels</app>-Vorlagen. <app>gLabels</app>-Vorlagen sind einfache XML-"
+"Dateien, deren Struktur in der folgenden DTD beschrieben ist: <link href="
+"\"http://glabels.org/xmlns/2.3/glabels-2.3.dtd.txt\">glabels-2.3.dtd</link>. "
+"Diese DTD beschreibt außerdem weitere von <app>gLabels</app> benutzte XML-"
+"Formate."
+
+#: C/mancreate.page:38(p)
+msgid ""
+"Manually created template files should be placed in the <file>${HOME}/."
+"glabels</file> and be named with a <file>.template</file> extension."
+msgstr ""
+"Manuell erstellte Vorlagen sollten in <file>${HOME}/.glabels</file> "
+"gespeichert und mit der Erweiterung <file>.template</file> versehen werden."
+
+#: C/mancreate.page:42(p)
+msgid ""
+"<app>gLabels</app> searches for templates in several other locations as "
+"defined here:"
+msgstr ""
+"<app>gLabels</app> sucht an verschiedenen anderen Orten nach Vorlagen, die "
+"folgendermaßen definiert werden:"
+
+#: C/mancreate.page:45(p)
+msgid "Location"
+msgstr "Ort"
+
+#: C/mancreate.page:46(p) C/mancreate.page:173(p) C/mancreate.page:237(p)
+#: C/mancreate.page:301(p) C/mancreate.page:364(p) C/mancreate.page:415(p)
+#: C/mancreate.page:462(p) C/mancreate.page:535(p) C/mancreate.page:562(p)
+#: C/mancreate.page:600(p) C/mancreate.page:634(p) C/mancreate.page:676(p)
+#: C/mancreate.page:726(p)
+msgid "Description"
+msgstr "Beschreibung"
+
+#: C/mancreate.page:53(file)
+msgid "${prefix}/share/libglabels-3.0/templates"
+msgstr "${prefix}/share/libglabels-3.0/templates"
+
+#: C/mancreate.page:54(p)
+msgid "Predefined templates distributed with <app>gLabels</app>."
+msgstr "In <app>gLabels</app> mitgelieferte vordefinierte Vorlagen."
+
+#: C/mancreate.page:55(p)
+msgid ""
+"<file>${prefix}</file> is usually <file>/usr</file> or <file>/usr/local</"
+"file>, depending on where <app>gLabels</app> was installed."
+msgstr ""
+"<file>${prefix}</file> ist üblicherweise <file>/usr</file> oder <file>/usr/"
+"local</file>, abhängig davon, wo <app>gLabels</app> installiert wurde."
+
+#: C/mancreate.page:59(file)
+msgid "${XDG_CONFIG_HOME}/libglabels/templates"
+msgstr "${XDG_CONFIG_HOME}/libglabels/templates"
+
+#: C/mancreate.page:60(p)
+msgid ""
+"User defined templates created with the <app>gLabels</app><gui>Template "
+"Designer</gui>. <em>Do not put manually created templates in this directory.</"
+"em>"
+msgstr ""
+"Mit dem <gui>Vorlagen-Designer</gui> von <app>gLabels</app> erstellte "
+"Vorlagen. <em>Legen Sie hier bitte keine manuell erstellten Vorlagen ab.</em>"
+
+#: C/mancreate.page:62(p)
+msgid ""
+"If <file>${XDG_CONFIG_HOME}</file> is not defined, it defaults to <file>"
+"${HOME}/.config</file>."
+msgstr ""
+"Falls <file>${XDG_CONFIG_HOME}</file> nicht definiert ist, wird als Vorgabe "
+"<file>${HOME}/.config</file> verwendet."
+
+#: C/mancreate.page:66(file)
+msgid "${HOME}/.glabels"
+msgstr "${HOME}/.glabels"
+
+#: C/mancreate.page:67(p)
+msgid ""
+"User defined templates that have been created manually should be placed in "
+"this directory. Older versions of the <app>gLabels</app><gui>Template "
+"Designer</gui> (prior to 3.0) would also put templates in this directory."
+msgstr ""
+"Manuell erstellte benutzerdefinierte Vorlagen sollten hier abgelegt werden. "
+"Ältere Versionen des <gui>Vorlagen-Designers</gui> von <app>gLabels</app> "
+"(vor 3.0) speichern hier ebenfalls ihre Vorlagen."
+
+#: C/mancreate.page:75(p)
+msgid ""
+"Completed template files can be sent to the <app>gLabels</app> template <link "
+"href=\"mailto:glabels-templates@lists.sourceforge.net\">mailing list</link> "
+"for possible inclusion in future versions of <app>gLabels</app>."
+msgstr ""
+"Vollständige Vorlagendateien können Sie an die <link href=\"mailto:glabels-"
+"templates@lists.sourceforge.net\">Vorlagen-Mailingliste</link> von "
+"<app>gLabels</app> senden, damit diese in zukünftigen Versionen von "
+"<app>gLabels</app> mitgeliefert werden können."
+
+#: C/mancreate.page:89(title)
+msgid "Assumptions/caveats"
+msgstr "Voraussetzungen"
+
+#: C/mancreate.page:92(p)
+msgid ""
+"A sheet contains only one size of label or card (if a sheet contains more "
+"than one size of item, it can be split into multiple templates for multiple "
+"pass printing)"
+msgstr ""
+"Eine Seite enthält nur eine Etiketten- oder Kartengröße. Falls eine Seite "
+"mehrere Größen enthält, kann sie für das Drucken in mehreren Durchläufen über "
+"mehrere Vorlagen verteilt werden."
+
+#: C/mancreate.page:97(p)
+msgid ""
+"Distances can be expressed in units of <code translate=\"no\">pt</code>, "
+"<code translate=\"no\">in</code>, <code translate=\"no\">mm</code>, <code "
+"translate=\"no\">cm</code>, or <code translate=\"no\">pc</code>. For example: "
+"\"<code translate=\"no\">1.0in</code>\" or \"<code translate=\"no\">2.54cm</"
+"code>\". If no units are specified, computer points (<code translate=\"no"
+"\">pt</code>) will be assumed (1 <em>pt</em> = 1/72 <em>in</em> = 0.352778 "
+"<em>mm</em>)."
+msgstr ""
+"Abstände können in den Einheiten <code translate=\"no\">pt</code>, <code "
+"translate=\"no\">in</code>, <code translate=\"no\">mm</code>, <code translate="
+"\"no\">cm</code> oder <code translate=\"no\">pc</code> ausgedrückt werden. "
+"Beispiel: »<code translate=\"no\">1.0in</code>« oder »<code translate=\"no"
+"\">2.54cm</code>«. Falls keine Einheiten angegeben werden, nimmt der Rechner "
+"Punkt an. Ein Punkt (<code translate=\"no\">pt</code>) entspricht = 1/72 "
+"<em>in</em> = 0.352778 <em>mm</em>."
+
+#: C/mancreate.page:118(title)
+msgid "Template Files"
+msgstr "Vorlagedateien"
+
+#: C/mancreate.page:120(p)
+msgid ""
+"A template file contains a single <code translate=\"no\">Glabels-templates</"
+"code> top-level node."
+msgstr ""
+"Eine Vorlagendatei enthält in der obersten Ebene einen einzelnen <code "
+"translate=\"no\">Glabels-templates</code>-Knoten."
+
+#: C/mancreate.page:123(code)
+#, no-wrap
+msgid ""
+"\n"
+"&lt;?xml version=\"1.0\"?&gt;\n"
+"&lt;Glabels-templates&gt;\n"
+"\n"
+"   <var its:translate=\"yes\">...templates...</var>\n"
+"\n"
+"&lt;/Glabels-templates&gt;"
+msgstr ""
+"\n"
+"&lt;?xml version=\"1.0\"?&gt;\n"
+"&lt;Glabels-templates&gt;\n"
+"\n"
+"   <var its:translate=\"yes\">...Vorlagen...</var>\n"
+"\n"
+"&lt;/Glabels-templates&gt;"
+
+#: C/mancreate.page:132(title)
+msgid "Example Template"
+msgstr "Beispielvorlage"
+
+#: C/mancreate.page:133(desc)
+msgid ""
+"Example <app>gLabels</app> template file containing a single <code translate="
+"\"no\">Template</code> node."
+msgstr ""
+"Beispiel-Vorlagendatei von <app>gLabels</app>, die einen einzelnen <code "
+"translate=\"no\">Template</code>-Knoten enthält."
+
+#: C/mancreate.page:135(code)
+#, no-wrap
+msgid ""
+"\n"
+"&lt;?xml version=\"1.0\"?&gt;\n"
+"&lt;Glabels-templates&gt;\n"
+"\n"
+"  &lt;Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\"&gt;\n"
+"    &lt;Meta category=\"label\"/&gt;\n"
+"    &lt;Meta category=\"mail\"/&gt;\n"
+"    &lt;Meta product_url=\"http://www.avery.com/avery/en_us/\"/&gt;\n"
+"    &lt;Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\"&gt;\n"
+"      &lt;Markup-margin size=\"5pt\"/&gt;\n"
+"      &lt;Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/&gt;\n"
+"    &lt;/Label-rectangle&gt;\n"
+"  &lt;/Template&gt;\n"
+"\n"
+"&lt;/Glabels-templates&gt;"
+msgstr ""
+"\n"
+"&lt;?xml version=\"1.0\"?&gt;\n"
+"&lt;Glabels-templates&gt;\n"
+"\n"
+"  &lt;Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\"&gt;\n"
+"    &lt;Meta category=\"label\"/&gt;\n"
+"    &lt;Meta category=\"mail\"/&gt;\n"
+"    &lt;Meta product_url=\"http://www.avery.com/avery/en_us/\"/&gt;\n"
+"    &lt;Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\"&gt;\n"
+"      &lt;Markup-margin size=\"5pt\"/&gt;\n"
+"      &lt;Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/&gt;\n"
+"    &lt;/Label-rectangle&gt;\n"
+"  &lt;/Template&gt;\n"
+"\n"
+"&lt;/Glabels-templates&gt;"
+
+#: C/mancreate.page:163(title)
+msgid "<span translate=\"no\">Template</span> Node"
+msgstr "<span translate=\"no\">Template</span>-Knoten"
+
+#: C/mancreate.page:165(p)
+msgid ""
+"A <code translate=\"no\">Template</code> node describes a single stationery "
+"product. It must contain one instance of any type of Label node (<code "
+"translate=\"no\">Label-rectangle</code>, <code translate=\"no\">Label-round</"
+"code>, or <code translate=\"no\">Label-cd</code>)."
+msgstr ""
+"Ein <em><span translate=\"no\">Template</span></em>-Knoten beschreibt ein "
+"einzelnes Produkt. Es muss eine Instanz eines der anderen Label-Knoten (<code "
+"translate=\"no\">Label-rectangle</code>, <code translate=\"no\">Label-round</"
+"code> oder <code translate=\"no\">Label-cd</code>) enthalten."
+
+#: C/mancreate.page:173(p) C/mancreate.page:301(p) C/mancreate.page:364(p)
+#: C/mancreate.page:415(p) C/mancreate.page:462(p) C/mancreate.page:535(p)
+#: C/mancreate.page:562(p) C/mancreate.page:600(p) C/mancreate.page:634(p)
+#: C/mancreate.page:676(p) C/mancreate.page:726(p)
+msgid "Property"
+msgstr "Eigenschaft"
+
+#: C/mancreate.page:179(code)
+#, no-wrap
+msgid "brand"
+msgstr "brand"
+
+#: C/mancreate.page:180(p)
+msgid "Brand or manufacturer of stationery product. E.g. \"Avery\""
+msgstr "Marke oder Hersteller des Produkts, z.B. »Avery«"
+
+#: C/mancreate.page:183(code)
+#, no-wrap
+msgid "part"
+msgstr "part"
+
+#: C/mancreate.page:184(p)
+msgid "Part number or name of stationery product. E.g. \"8160\""
+msgstr "Bestellnummer oder Name des Produkts, z.B. »8160«"
+
+#: C/mancreate.page:187(code) C/mancreate.page:541(code)
+#, no-wrap
+msgid "size"
+msgstr "size"
+
+#: C/mancreate.page:188(p)
+msgid ""
+"Size of sheet. E.g., \"<code translate=\"no\">US-Letter</code>\", \"<code "
+"translate=\"no\">A4</code>\", ..."
+msgstr ""
+"Größe des Papiers, z.B.  »<code translate=\"no\">US-Letter</code>«, »<code "
+"translate=\"no\">A4</code>«, …"
+
+#: C/mancreate.page:193(code)
+#, no-wrap
+msgid "description"
+msgstr "description"
+
+#: C/mancreate.page:194(p)
+msgid "Description of stationery product. E.g, \"Mailing Labels.\""
+msgstr "Beschreibung des Produkts, z.B. »Mailing Labels«."
+
+#: C/mancreate.page:197(code)
+#, no-wrap
+msgid "_description"
+msgstr "_description"
+
+#: C/mancreate.page:198(p)
+msgid ""
+"Translatable description of stationery product. E.g, \"Mailing Labels."
+"\" (Only useful for predefined templates)"
+msgstr ""
+"Übersetzbare Beschreibung des Produkts, z.B. »Mailing Labels« (nur sinnvoll "
+"für vordefinierte Vorlagen)"
+
+#: C/mancreate.page:202(code) C/mancreate.page:311(code)
+#: C/mancreate.page:374(code) C/mancreate.page:480(code)
+#, no-wrap
+msgid "width"
+msgstr "width"
+
+#: C/mancreate.page:203(p)
+msgid "Page width. Only valid if size=\"Other\""
+msgstr "Seitenbreite. Nur gültig, wenn als Größe »Other« festgelegt ist."
+
+#: C/mancreate.page:206(code) C/mancreate.page:315(code)
+#: C/mancreate.page:378(code) C/mancreate.page:485(code)
+#, no-wrap
+msgid "height"
+msgstr "height"
+
+#: C/mancreate.page:207(p)
+msgid "Page height. Only valid if size=\"Other\""
+msgstr "Seitenhöhe. Nur gültig, wenn als Größe »Other« festgelegt ist."
+
+#: C/mancreate.page:210(code)
+#, no-wrap
+msgid "equiv"
+msgstr "equiv"
+
+#: C/mancreate.page:211(p)
+msgid ""
+"Equivalent part number. If this property is present, the template is a clone "
+"of another template of the same brand. The template will inherit all "
+"properties, except brand and name from the other template. This equiv "
+"property must refer to a previously defined template - <app>gLabels</app> "
+"does not currently support forward references."
+msgstr ""
+"Äquivalente Bestellnummer. Falls diese Eigenschaft vorhanden ist, handelt es "
+"sich bei dieser Vorlage um eine Kopie einer anderen Vorlage der gleichen "
+"Marke. Die Vorlage erbt alle Eigenschaften der anderen Vorlage, ausgenommen "
+"die Marke und die Bezeichnung. Die »equiv«-Eigenschaft muss sich auf eine "
+"bereits definierte Vorlage beziehen, denn derzeit unterstützt libglabels "
+"keine Vorwärtsreferenzen."
+
+#: C/mancreate.page:229(title)
+msgid "<span translate=\"no\">Meta</span> Node"
+msgstr "<span translate=\"no\">Meta</span>-Knoten"
+
+#: C/mancreate.page:231(p)
+msgid ""
+"A <code translate=\"no\">Meta</code> node contains some additional "
+"information about the template. A <code translate=\"no\">Template</code> node "
+"may contain zero or more <code translate=\"no\">Meta</code> nodes."
+msgstr ""
+"Ein <code translate=\"no\">Meta</code>-Knoten enthält eine Reihe zusätzlicher "
+"Eigenschaften des jeweiligen Produkts. Ein <code translate=\"no\">Template</"
+"code>-Knoten kann keinen, einen oder auch mehrere <code translate=\"no"
+"\">Meta</code>-Knoten enthalten."
+
+#: C/mancreate.page:237(p)
+msgid "Subnode"
+msgstr "Unterknoten"
+
+#: C/mancreate.page:243(code)
+#, no-wrap
+msgid "category"
+msgstr "category"
+
+#: C/mancreate.page:244(p)
+msgid ""
+"A category for the template. A template can belong to multiple categories by "
+"simply adding multiple <code translate=\"no\">Meta</code> nodes to the parent "
+"<code translate=\"no\">Template</code> node. Template categories are used by "
+"the <app>gLabels</app><gui>New Label Dialog</gui> to filter the results of "
+"template searches."
+msgstr ""
+"Die Kategorie, der dieses Produkt zugeordnet ist. Eine Vorlage kann mehreren "
+"Kategorien zugeordnet werden, indem einfach mehrere <code translate=\"no"
+"\">Meta</code>-Knoten zum übergeordneten <code translate=\"no\">Template</"
+"code>-Knoten hinzugegügt werden. Die Werte dieser Kategorien werden von der "
+"<gui>Vorlagenauswahl</gui> in <app>gLabels</app> verwendet, um die Ansicht "
+"beispielsweise auf die Darstellung von Etiketten zu beschränken oder anders "
+"ausgedrückt, Etiketten allgemein anzuzeigen und die Anzeige anderer Produkte "
+"zu unterdrücken, an denen der Benutzer im jeweiligen Fall nicht interessiert "
+"ist."
+
+#: C/mancreate.page:251(p)
+msgid ""
+"The value of this category must match a predefined category ID defined in the "
+"file <file>${prefix}/libglabels-3.0/templates/categories.xml</file>. "
+"Currently defined category IDs include:"
+msgstr ""
+"Der Wert dieser Kategorie muss einem der in der Datei <file>${prefix}/"
+"libglabels-3.0/templates/categories.xml</file> vordefinierten Werte "
+"entsprechen. Derzeit stehen folgende Kategorien zur Verfügung:"
+
+#: C/mancreate.page:255(code)
+#, no-wrap
+msgid "label"
+msgstr "label"
+
+#: C/mancreate.page:256(code)
+#, no-wrap
+msgid "round-label"
+msgstr "round-label"
+
+#: C/mancreate.page:257(code)
+#, no-wrap
+msgid "elliptical-label"
+msgstr "elliptical-label"
+
+#: C/mancreate.page:258(code)
+#, no-wrap
+msgid "square-label"
+msgstr "square-label"
+
+#: C/mancreate.page:259(code)
+#, no-wrap
+msgid "rectangle-label"
+msgstr "rectangle-label"
+
+#: C/mancreate.page:260(code)
+#, no-wrap
+msgid "card"
+msgstr "card"
+
+#: C/mancreate.page:261(code)
+#, no-wrap
+msgid "business-card"
+msgstr "business-card"
+
+#: C/mancreate.page:262(code)
+#, no-wrap
+msgid "media"
+msgstr "media"
+
+#: C/mancreate.page:263(code)
+#, no-wrap
+msgid "mail"
+msgstr "mail"
+
+#: C/mancreate.page:264(code)
+#, no-wrap
+msgid "foldable"
+msgstr "foldable"
+
+#: C/mancreate.page:265(code)
+#, no-wrap
+msgid "photo"
+msgstr "photo"
+
+#: C/mancreate.page:272(code)
+#, no-wrap
+msgid "product_url"
+msgstr "product_url"
+
+#: C/mancreate.page:273(p)
+msgid ""
+"A URL pointing to the vendor's webpage for the specific product, if available."
+msgstr ""
+"Diese Adresse leitet auf die Webseite des Anbieters weiter. Idealerweise ist "
+"dies die Adresse genau dieses Produkts, falls diese verfügbar ist."
+
+#: C/mancreate.page:277(p)
+msgid ""
+"Suggestions for additional categories can be sent to the <app>gLabels</app> "
+"developer's <link href=\"mailto:glabels-devel@lists.sourceforge.net\">mailing "
+"list</link>."
+msgstr ""
+"Falls Sie Ideen für neue Kategorien haben, senden Sie Ihre Vorschläge bitte "
+"an die <link href=\"mailto:glabels-devel@lists.sourceforge.net"
+"\">Mailingliste</link> der <app>gLabels</app>-Entwickler."
+
+#: C/mancreate.page:280(p)
+msgid "Product URLs may be of limited use, because they may not be permanent."
+msgstr ""
+"Produktadressen sind oft nur begrenzt gültig, das sich diese auch ändern "
+"können."
+
+#: C/mancreate.page:293(title)
+msgid "<span translate=\"no\">Label-rectangle</span> Node"
+msgstr "<span translate=\"no\">Label-rectangle</span>-Knoten"
+
+#: C/mancreate.page:295(p)
+msgid ""
+"A <code translate=\"no\">Label-rectangle</code> node describes the dimensions "
+"of a single label or business card that is rectangular in shape (may have "
+"rounded edges)."
+msgstr ""
+"Ein <code translate=\"no\">Label-rectangle</code>-Knoten beschreibt die "
+"Abmessungen eines einzelnen Etiketts oder einer einzelnen Karte in "
+"rechteckiger Form, wobei abgerundete Ecken möglich sind."
+
+#: C/mancreate.page:307(code) C/mancreate.page:370(code)
+#: C/mancreate.page:421(code) C/mancreate.page:468(code)
+#, no-wrap
+msgid "id"
+msgstr "id"
+
+#: C/mancreate.page:308(p) C/mancreate.page:371(p) C/mancreate.page:422(p)
+#: C/mancreate.page:469(p)
+msgid "Reserved for future use. Should always be 0."
+msgstr "Für zukünftige Verwendung reserviert. Sollte immer 0 sein."
+
+#: C/mancreate.page:312(p)
+msgid "Width of label/card"
+msgstr "Breite des Etiketts oder der Karte"
+
+#: C/mancreate.page:316(p)
+msgid "Heigth of label/card"
+msgstr "Höhe des Etiketts oder der Karte"
+
+#: C/mancreate.page:319(code)
+#, no-wrap
+msgid "round"
+msgstr "round"
+
+#: C/mancreate.page:320(p)
+msgid ""
+"Radius of corners. For items with square edges (business cards), the radius "
+"should be 0."
+msgstr ""
+"Radius der Ecken. Für Objekte mit nicht abgerundeten Ecken (Visitenkarten) "
+"sollte der Radius 0 sein."
 
-#: C/glabels.xml:875(title)
-msgid "Size Tabbed Section (Line objects)"
-msgstr "Reiter »Größe« (Linienobjekte)"
+#: C/mancreate.page:324(code)
+#, no-wrap
+msgid "x_waste"
+msgstr "x_waste"
 
-#: C/glabels.xml:877(para)
+#: C/mancreate.page:325(p)
 msgid ""
-"This section contains controls to select the length and angle of a line "
-"object."
+"Amount of horizontal waste (over-print) to allow. This is useful for "
+"minimizing alignment problems when using non-white backgrounds (e.g. images)."
 msgstr ""
-"Dieser Abschnitt enthält Einstellmöglichkeiten für die Länge und den Winkel "
-"eines Linienobjekts."
+"Erlaubte Breite des horizontalen Überdruckens. Dies minimiert "
+"Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder)."
 
-#: C/glabels.xml:883(title)
-msgid "Position Tabbed Section"
-msgstr "Reiter »Position«"
+#: C/mancreate.page:330(code)
+#, no-wrap
+msgid "y_waste"
+msgstr "y_waste"
 
-#: C/glabels.xml:885(para)
-msgid "This section contains controls to change the position of an object."
+#: C/mancreate.page:331(p)
+msgid ""
+"Amount of vertical waste (over-print) to allow. This is useful for minimizing "
+"alignment problems when using non-white backgrounds (e.g. images)."
 msgstr ""
-"Dieser Abschnitt beschreibt die Möglichkeiten zur Positionierung eines "
-"Objekts."
+"Erlaubte Breite des vertikalen Überdruckens. Dies minimiert "
+"Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder)."
 
-#: C/glabels.xml:892(title)
-msgid "Shadow Tabbed Section (All except image and barcode objects)"
-msgstr "Reiter »Schattierung« (alle außer Bild- und Strichcodeobjekten)"
+#: C/mancreate.page:339(desc) C/mancreate.page:341(p)
+msgid "<span translate=\"no\">Label-rectangle</span> parameters"
+msgstr "Parameter zu <span translate=\"no\">Label-rectangle</span>"
 
-#: C/glabels.xml:894(para)
-msgid "This section contains controls to add a shadow to an object."
+#: C/mancreate.page:356(title)
+msgid "<span translate=\"no\">Label-ellipse</span> Node"
+msgstr "<span translate=\"no\">Label-ellipse</span>-Knoten"
+
+#: C/mancreate.page:358(p)
+msgid ""
+"A <code translate=\"no\">Label-ellipse</code> node describes the dimensions "
+"of a single label or business card that is elliptic in shape."
 msgstr ""
-"Dieser Abschnitt enthält Einstellmöglichkeiten für die Schattierung eines "
-"Objekts."
+"Ein <code translate=\"no\">Label-ellipse</code>-Knoten beschreibt die "
+"Abmessungen eines einzelnen Etiketts oder einer einzelnen Karte in "
+"elliptischer Form."
 
-#: C/glabels.xml:903(title)
-msgid "Other Manipulations of Objects"
-msgstr "Andere Manipulationen von Objekten"
+#: C/mancreate.page:375(p)
+msgid "Width of the ellipse"
+msgstr "Breite der Ellipse"
 
-#: C/glabels.xml:905(para)
-msgid "Objects can also be manipulated in the following ways."
-msgstr "Objekte können auf die folgenden Arten manipuliert werden."
+#: C/mancreate.page:379(p)
+msgid "Heigth of the ellipse"
+msgstr "Höhe der Ellipse"
 
-#: C/glabels.xml:908(title)
-msgid "Moving and Resizing Objects"
-msgstr "Verschieben und Größenänderung von Objekten"
+#: C/mancreate.page:382(code) C/mancreate.page:429(code)
+#: C/mancreate.page:490(code)
+#, no-wrap
+msgid "waste"
+msgstr "waste"
 
-#: C/glabels.xml:910(para)
+#: C/mancreate.page:383(p) C/mancreate.page:430(p) C/mancreate.page:491(p)
 msgid ""
-"Objects can be moved by simply clicking on a selected object and dragging the "
-"object to its new location. If the object is part of an aggregate selection, "
-"all objects in the selection will move with the object being dragged, "
-"maintaining their relative positions to one another. If no object is "
-"selected, clicking on an object will create a new selection containing that "
-"object. See <xref linkend=\"glabels-select-objects\"/>."
+"Amount of waste (over-print) to allow. This is useful for minimizing "
+"alignment problems when using non-white backgrounds (e.g. images)."
 msgstr ""
-"Objekte können Sie durch einfaches Anklicken und Ziehen des ausgewählten "
-"Objekts zur neuen Position verschieben. Falls dieses Objekt Teil einer "
-"Mehrfachauswahl ist, werden durch Ziehen dieses Objektes alle Objekte "
-"verschoben, wobei deren Abstände untereinander erhalten bleiben. Falls kein "
-"Objekt ausgewählt ist, wird durch Anklicken eines Objekts eine neue Auswahl "
-"erzeugt, die dieses Objekt enthält. Siehe <xref linkend=\"glabels-select-"
-"objects\"/>."
+"Erlaubte Breite des Überdruckens. Dies minimiert Ausrichtungsprobleme auf "
+"anderen als weißen Hintergründen (z.B. Bilder)."
 
-#: C/glabels.xml:918(para)
-msgid ""
-"A selected object can be resized by clicking one of its resize handle and "
-"dragging it to obtain the new size."
-msgstr ""
-"Die Größe eines ausgewählten Objekts kann geändert werden, indem Sie auf "
-"einen der Größenänderungs-Anfasspunkte klicken und diesen ziehen, um die "
-"gewünschte Größe zu erreichen."
+#: C/mancreate.page:391(desc) C/mancreate.page:393(p)
+#: C/mancreate.page:438(desc) C/mancreate.page:440(p)
+msgid "<span translate=\"no\">Label-ellipse</span> parameters"
+msgstr "Parameter zu <span translate=\"no\">Label-ellipse</span>"
 
-#: C/glabels.xml:924(title)
-msgid "Changing Stacking Order"
-msgstr "Ändern der Reihenfolge der Ebenen"
+#: C/mancreate.page:408(title)
+msgid "<span translate=\"no\">Label-round</span> Node"
+msgstr "<span translate=\"no\">Label-round</span>-Knoten"
 
-#: C/glabels.xml:926(para)
+#: C/mancreate.page:410(p)
 msgid ""
-"Stacking order refers to relative position in the z-axis of objects. That is "
-"when objects overlap, which object will appear on top of the other. By "
-"default, newer objects will appear above older objects. To change this order, "
-"select one or more objects and choose <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Order</guimenuitem><guimenuitem>Bring to Front</"
-"guimenuitem></menuchoice> to raise the selection to the top of the stacking "
-"order, or choose <menuchoice><guimenu>Objects</guimenu><guimenuitem>Order</"
-"guimenuitem><guimenuitem>Send to Back</guimenuitem></menuchoice> to lower the "
-"selection to the bottom of the stacking order. These menuitems are also "
-"available by right-clicking the display area when there is a non-empty "
-"selection."
+"A <code translate=\"no\">Label-round</code> node describes the dimensions of "
+"a simple round label (not a CD)."
 msgstr ""
-"Die Stapelreihenfolge bezieht sich auf die relative Position in der Z-Achse "
-"von Objekten. Das beschreibt beim Überlappen von Objekten, welches der "
-"Objekte über den anderen erscheint. Per Vorgabe werden neue Objekte immer "
-"oberhalb von bereits vorhandenen Objekten platziert. Um diese Anordnung zu "
-"ändern, wählen Sie <menuchoice><guimenu>Objekte</"
-"guimenu><guimenuitem>Anordnung</guimenuitem><guimenuitem>Ganz nach vorn</"
-"guimenuitem></menuchoice>, um die Auswahl im Stapel nach oben zu verschieben, "
-"oder <menuchoice><guimenu>Objekte</guimenu><guimenuitem>Anordnung</"
-"guimenuitem><guimenuitem>Ganz nach hinten</guimenuitem></menuchoice>, um die "
-"Auswahl im Stapel nach unten zu verschieben. Diese Menüeinträge sind auch "
-"durch einen Klick mit der rechten Maustaste auf den Ansichtsbereich "
-"verfügbar, falls sich dort eine nicht leere Auswahl befindet."
-
-#: C/glabels.xml:944(title)
-msgid "Rotating and Flipping Objects"
-msgstr "Drehen und Spiegeln von Objekten"
+"Ein <code translate=\"no\">Label-round</code>-Knoten beschreibt die "
+"Abmessungen eines einfachen Rundetiketts (nicht einer CD)."
 
-#: C/glabels.xml:946(para)
-msgid ""
-"Objects can be rotated 90 degrees in either direction, or flipped "
-"horizontally or vertically, by choosing the appropriate menuitem in the "
-"<menuchoice><guimenu>Objects</guimenu><guimenuitem>Rotate/Flip</guimenuitem></"
-"menuchoice> sub-menu. These menuitems are also available by right-clicking "
-"the display area when there is a non-empty selection."
-msgstr ""
-"Objekte können um 90 Grad in jeder Richtung gedreht oder horizontal oder "
-"vertikal gespiegelt werden. Wählen Sie hierzu den entsprechenden Eintrag im "
-"Menü <menuchoice><guimenu>Objekte</guimenu><guimenuitem>Drehen/Spiegeln</"
-"guimenuitem></menuchoice>. Diese Menüeinträge sind auch verfügbar, wenn Sie "
-"mit der rechten Maustaste in eine nicht leere Auswahl im Ansichtsbereich "
-"klicken."
+#: C/mancreate.page:425(code) C/mancreate.page:472(code)
+#: C/mancreate.page:614(code)
+#, no-wrap
+msgid "radius"
+msgstr "radius"
 
-#: C/glabels.xml:956(title)
-msgid "Aligning Objects"
-msgstr "Ausrichten von Objekten"
+#: C/mancreate.page:426(p)
+msgid "Radius (1/2 diameter) of label"
+msgstr "Radius (halber Durchmesser) des Etiketts"
+
+#: C/mancreate.page:455(title)
+msgid "<span translate=\"no\">Label-cd</span> Node"
+msgstr "<span translate=\"no\">Label-cd</span>-Knoten"
 
-#: C/glabels.xml:958(para)
+#: C/mancreate.page:457(p)
 msgid ""
-"Objects can be aligned horizontally or vertically, relative to one another, "
-"or relative to the center line of the label, by choosing the appropriate "
-"menuitem from the <menuchoice><guimenu>Objects</guimenu><guimenuitem>Align "
-"Horizontal</guimenuitem></menuchoice> or <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Align Horizontal</guimenuitem></menuchoice> sub-menus. "
-"These menuitems are also available by right-clicking the display area when "
-"there is a non-empty selection."
+"A <code translate=\"no\">Label-cd</code> node describes the dimensions of a "
+"CD, DVD, or business card CD."
 msgstr ""
-"Objekte können horizontal oder vertikal zu einem anderen Objekt oder relativ "
-"zu einer Mittellinie des Etiketts angeordnet werden, indem Sie "
-"<menuchoice><guimenu>Objekte</guimenu><guimenuitem>Horizontal</guimenuitem></"
-"menuchoice> oder <menuchoice><guimenu>Objekte</guimenu><guimenuitem>Vertikal</"
-"guimenuitem></menuchoice> wählen. Diese Menüeinträge sind auch verfügbar, "
-"wenn Sie mit der rechten Maustaste in eine nicht leere Auswahl im "
-"Ansichtsbereich klicken."
+"Ein <code translate=\"no\">Label-cd</code>-Knoten beschreibt die Abmessungen "
+"einer CD, DVD oder Visitenkarten-CD."
 
-#: C/glabels.xml:971(title)
-msgid "Using the Property Bar"
-msgstr "Verwendung der Eigenschaftsleiste"
+#: C/mancreate.page:473(p)
+msgid "Outer radius of label"
+msgstr "Äußerer Radius des Etiketts"
 
-#: C/glabels.xml:973(para)
-msgid ""
-"The property bar can be used to change some common properties of objects en-"
-"masse. These properties include font family, font size, font weight, text "
-"alignment, text color, fill color, line or outline color, and line width. The "
-"property bar also controls the defaults for these properties for any newly "
-"created objects."
-msgstr ""
-"Mit der Eigenschaftsleiste können Sie einige Eigenschaften von Objekten in "
-"einem Arbeitsgang ändern. Diese Eigenschaften umfassen Schriftfamilie, "
-"Schriftgröße, Schriftstärke, Textausrichtung, Textfarbe, Füllfarbe, Farbe von "
-"Linien oder Begrenzungen sowie Linienbreiten. Die Eigenschaftsleiste regelt "
-"auch die Vorgaben für diese Eigenschaften, wenn neue Objekte erzeugt werden."
+#: C/mancreate.page:476(code)
+#, no-wrap
+msgid "hole"
+msgstr "hole"
 
-#: C/glabels.xml:988(title)
-msgid "Performing a Document Merge"
-msgstr "Ausführung einer Dokumentmischung"
+#: C/mancreate.page:477(p)
+msgid "Radius of concentric hole"
+msgstr "Radius des Mittellochs"
 
-#: C/glabels.xml:990(para)
+#: C/mancreate.page:481(p)
 msgid ""
-"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that "
-"allows a unique label or card to be printed for each record in an external "
-"data source."
+"If present, the label is clipped to the given width. (Useful for \"business "
+"card CDs\")."
 msgstr ""
-"Dokumentmischung ist ein mächtiges Funktionsmerkmal, das es Ihnen ermöglicht, "
-"ein einzelnes Etikett oder eine einzelne Karte für jeden Datensatz aus einer "
-"externen Datenquelle zu erstellen."
+"Falls vorhanden, wird das Etikett auf die angegebene Größe begrenzt (nützlich "
+"für »Visitenkarten-CDs«)"
 
-#: C/glabels.xml:994(para)
+#: C/mancreate.page:486(p)
 msgid ""
-"The first step to performing a document merge is to prepare a source document "
-"that contains your merge data. This data could be mailing addresses or any "
-"other data that you wish to create unique labels or cards for. Currently back-"
-"ends only exist for text files and the evolution data server -- others are "
-"planned. The currently supported text-file format is very simple: each line "
-"is a record; fields are delimited by commas (CSV), tabs, or colons; and "
-"newlines can be embedded into fields by using the \"\\n\" entity. This file "
-"could be created using any text editor or could be created by another program "
-"or script. A common way of creating CSV files is to export them from a "
-"spreadsheet program."
+"If present, the label is clipped to the given height. (Useful for \"business "
+"card CDs\")."
 msgstr ""
-"Der erste Schritt zur Ausführung einer Dokumentmischung ist die Vorbereitung "
-"eines Quelldokuments, welches die Daten zum Mischen enthält. Diese Daten "
-"können aus E-Mail-Adressen oder anderen Daten bestehen, aus denen Sie die "
-"einzelnen Etiketten oder Karten erstellen wollen. Gegenwärtig können als "
-"Datenquellen entweder Textdateien oder die Daten des Evolution-Adressbuchs "
-"verwendet werden, andere sind bereits in Planung. Das derzeit unterstützte "
-"Textformat ist recht einfach: Jede Zeile stellt einen Datensatz dar, wobei "
-"die einzelnen Felder durch Kommata (CSV), Tabulatoren oder Semikola getrennt "
-"werden. Neue Zeilen werden durch einen Zeilenumbruch »\\n« erzeugt. Diese "
-"Datei kann mit einem Texteditor, einem anderen Programm oder einem Skript "
-"erstellt werden. Ein üblicher Weg der Erstellung ist der Export einer CSV-"
-"Datei aus einer Tabellenkalkulation."
+"Falls vorhanden, wird das Etikett auf die angegebene Höhe begrenzt (nützlich "
+"für »Visitenkarten-CDs«)"
 
-#: C/glabels.xml:1006(para)
-msgid ""
-"A label must then be configured to \"point at\" this data file. To configure "
-"the merge properties of a document, choose <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Merge Properties</guimenuitem></menuchoice> menu item to "
-"display the <guilabel>merge properties</guilabel> dialog. This dialog is used "
-"to select the exact data file format and file name (location) of the merge "
-"data."
-msgstr ""
-"Ein Etikett muss erstellt werden, das auf diese Datenquelle »zeigt«. Um die "
-"Mischeigenschaften für ein Dokument festzulegen, wählen Sie "
-"<menuchoice><guimenu>Objekte</guimenu><guimenuitem>Mischeinstellungen</"
-"guimenuitem></menuchoice>. Der Dialog <guilabel>Mischeinstellungen</guilabel> "
-"wird geöffnet. In diesem Dialog wählen Sie das genaue Dateiformat und den "
-"Dateinamen (den Ort) der einzumischenden Daten aus."
+#: C/mancreate.page:499(desc)
+msgid "<span translate=\"no\">Label-cd</span> parameters"
+msgstr "<span translate=\"no\">Label-cd</span>-Parameter"
+
+#: C/mancreate.page:501(p)
+msgid "CD label parameters"
+msgstr "CD-Label-Parameter"
+
+#: C/mancreate.page:516(title)
+msgid "<span translate=\"no\">Markup</span> Nodes"
+msgstr "<span translate=\"no\">Markup</span>-Knoten"
 
-#: C/glabels.xml:1014(para)
+#: C/mancreate.page:518(p)
 msgid ""
-"Finally, once the label has been configured for a data file, field keys can "
-"be inserted into text objects and used as source or data for barcode objects "
-"and image filenames for image objects. See <xref linkend=\"glabels-object-"
-"properties\"/> for more information on using merge data for these object "
-"types."
+"Templates may contain optional markup nodes. These nodes are used to describe "
+"a simple set of markup lines that are visible in the <app>glabels</app> "
+"drawing canvas, but not visible when printed. These lines can represent "
+"margins, fold lines, center lines, special areas, or other helpful hints to "
+"the user of a template."
 msgstr ""
-"Zum Schluss, sobald das Etikett für die Datenquelle eingerichtet wurde, "
-"können die Feldschlüssel in Textobjekte eingefügt werden, um sie als "
-"Datenquelle für Strichcodeobjekte oder Bilder für Bildobjekte zu verwenden. "
-"Weitere Informationen über die Verwendung der Mischdaten für diese "
-"Objekttypen finden Sie in <xref linkend=\"glabels-object-properties\"/>."
+"Vorlagen können optional auch Markierungs-Knoten enthalten. Diese Knoten "
+"beschreiben eine Reihe von Markierungslinien, die zwar im Zeichenbereich von "
+"<app>gLabels</app> angezeigt werden, jedoch im späteren Ausdruck nicht "
+"sichtbar sind. Diese Linien können Ränder, Falzlinien, Mittellinien oder "
+"spezielle Bereiche darstellen sowie dem Benutzer einer Vorlage weitere "
+"hilfreiche Hinweise geben."
 
-#: C/glabels.xml:1020(para)
+#: C/mancreate.page:528(title)
+msgid "<span translate=\"no\">Markup-margin</span> Node"
+msgstr "<span translate=\"no\">Markup-margin</span>-Knoten"
+
+#: C/mancreate.page:530(p)
 msgid ""
-"Now that your label is configured, <application>gLabels</application> will "
-"print a unique label for each record in your source document -- substituting "
-"fields from each record for field keys in the all text, barcode, and image "
-"objects."
+"A <code translate=\"no\">Markup-margin</code> describes a margin along all "
+"edges of a label."
 msgstr ""
-"Da Ihr Etikett nun konfiguriert ist, druckt <application>gLabels</"
-"application> genau ein Etikett für jeden Datensatz des Quelldokuments, wobei "
-"alle Text-, Bild- und Strichcode-Objekte durch die Einträge der Felder jedes "
-"Datensatzes ersetzt werden."
+"Ein <code translate=\"no\">Markup-margin</code>-Knoten beschreibt die Ränder "
+"entlang der Seiten eines Etiketts."
 
-#: C/glabels.xml:1025(para)
+#: C/mancreate.page:542(p)
 msgid ""
-"See <xref linkend=\"glabels-merge-tutorial\"/> for a detailed tutorial on the "
-"document merge feature."
+"Size of the margin. I.e. the distance of the margin line from the edge of the "
+"card/label."
 msgstr ""
-"In <xref linkend=\"glabels-merge-tutorial\"/> finden Sie eine ausführliche "
-"Anleitung für dieses Funktionsmerkmal."
+"Randbreite. Die Breite des Bereichs zwischen der Randlinie und dem Rand des "
+"Etiketts/der Karte."
 
-#: C/glabels.xml:1040(title)
-msgid "Settings"
-msgstr "Einstellungen"
+#: C/mancreate.page:556(title)
+msgid "<span translate=\"no\">Markup-line</span> Node"
+msgstr "<span translate=\"no\">Markup-line</span>-Knoten"
 
-#: C/glabels.xml:1041(para)
+#: C/mancreate.page:558(p)
 msgid ""
-"To configure <application>gLabels</application>, choose "
-"<menuchoice><guimenu>Settings</guimenu><guimenuitem>Preferences</"
-"guimenuitem></menuchoice>. The <guilabel>Preferences</guilabel> dialog "
-"contains the following tabbed sections:"
+"A <code translate=\"no\">Markup-line</code> node describes a markup line."
 msgstr ""
-"Um <application>gLabels</application> zu konfigurieren, wählen Sie "
-"<menuchoice><guimenu>Einstellungen</guimenu><guimenuitem>Einstellungen</"
-"guimenuitem></menuchoice>. Der Dialog <guilabel>Einstellungen</guilabel> "
-"enthält die folgenden Reiter:"
+"Ein <code translate=\"no\">Markup-line</code>-Knoten beschreibt eine "
+"Markierungslinie."
 
-#: C/glabels.xml:1062(title)
-msgid "Locale"
-msgstr "Lokale Einstellungen"
+#: C/mancreate.page:568(code) C/mancreate.page:640(code)
+#: C/mancreate.page:682(code)
+#, no-wrap
+msgid "x1"
+msgstr "x1"
 
-#: C/glabels.xml:1066(guilabel)
-msgid "Units"
-msgstr "Einheiten"
+#: C/mancreate.page:569(p)
+msgid "x coordinate of 1st endpoint of the line segment."
+msgstr "x-Koordinate des Anfangspunkts des Linienabschnitts."
 
-#: C/glabels.xml:1068(para)
-msgid ""
-"Use this radio button group to specify your preferred units. Select one of "
-"the following options:"
-msgstr ""
-"Verwenden Sie diese Radioknöpfe, um Ihre bevorzugten Maßeinheiten "
-"festzulegen. Wählen Sie aus den folgenden Optionen:"
+#: C/mancreate.page:572(code) C/mancreate.page:644(code)
+#: C/mancreate.page:686(code)
+#, no-wrap
+msgid "y1"
+msgstr "y1"
 
-#: C/glabels.xml:1073(guilabel)
-msgid "Points"
-msgstr "Punkte"
+#: C/mancreate.page:573(p)
+msgid "y coordinate of 1st endpoint of the line segment."
+msgstr "y-Koordinate des Anfangspunkts des Linienabschnitts."
 
-#: C/glabels.xml:1074(para)
-msgid "Use points (1 point = 1/72 in = 0.352778 mm)."
-msgstr "Punkte verwenden (1 Punkt = 1/72 Zoll = 0.352778 mm)."
+#: C/mancreate.page:576(code)
+#, no-wrap
+msgid "x2"
+msgstr "x2"
 
-#: C/glabels.xml:1078(guilabel)
-msgid "Inches"
-msgstr "Zoll"
+#: C/mancreate.page:577(p)
+msgid "x coordinate of 2st endpoint of the line segment."
+msgstr "x-Koordinate des zweiten Endpunkts des Linienabschnitts."
 
-#: C/glabels.xml:1079(para)
-msgid "Use inches."
-msgstr "Zoll verwenden."
+#: C/mancreate.page:580(code)
+#, no-wrap
+msgid "y2"
+msgstr "y2"
 
-#: C/glabels.xml:1083(guilabel)
-msgid "Millimeters"
-msgstr "Millimeter"
+#: C/mancreate.page:581(p)
+msgid "y coordinate of 2st endpoint of the line segment."
+msgstr "y-Koordinate des zweiten Endpunkts des Linienabschnitts."
 
-#: C/glabels.xml:1084(para)
-msgid "Use millimeters."
-msgstr "Millimeter verwenden."
+#: C/mancreate.page:594(title)
+msgid "<span translate=\"no\">Markup-circle</span> Node"
+msgstr "<span translate=\"no\">Markup-circle</span>-Knoten"
 
-#: C/glabels.xml:1087(para)
-msgid "Default: <guilabel>Inches</guilabel>."
-msgstr "Standard: <guilabel>Zoll</guilabel>."
+#: C/mancreate.page:596(p)
+msgid "A <code translate=\"no\">Markup-circle</code> describes a markup circle."
+msgstr ""
+"Ein <code translate=\"no\">Markup-circle</code>-Knoten beschreibt einen "
+"Markierungskreis."
 
-#: C/glabels.xml:1093(guilabel)
-msgid "Default page size"
-msgstr "Vorgegebene Seitengröße"
+#: C/mancreate.page:606(code) C/mancreate.page:740(code)
+#, no-wrap
+msgid "x0"
+msgstr "x0"
+
+#: C/mancreate.page:607(p)
+msgid "x coordinate of circle origin (center)."
+msgstr "x-Koordinate des Kreismittelpunkts."
+
+#: C/mancreate.page:610(code) C/mancreate.page:745(code)
+#, no-wrap
+msgid "y0"
+msgstr "y0"
+
+#: C/mancreate.page:611(p)
+msgid "y coordinate of circle origin (center)."
+msgstr "y-Koordinate des Kreismittelpunkts."
+
+#: C/mancreate.page:615(p)
+msgid "Radius of circle."
+msgstr "Radius des Kreises."
 
-#: C/glabels.xml:1095(para)
+#: C/mancreate.page:628(title)
+msgid "<span translate=\"no\">Markup-rect</span> Node"
+msgstr "<span translate=\"no\">Markup-rect</span>-Knoten"
+
+#: C/mancreate.page:630(p)
 msgid ""
-"Use this radio button group to specify your preferred page size. This will "
-"make it quicker for you to locate media types when creating a new label or "
-"card."
+"A <code translate=\"no\">Markup-rect</code> describes a markup rectangle."
 msgstr ""
-"Verwenden Sie diese Radioknöpfe zur Auswahl Ihrer bevorzugten Papiergröße. "
-"Dadurch lassen sich beim Erstellen neuer Etiketten oder Visitenkarten die "
-"entsprechenden Papiertypen schneller finden."
+"Ein <code translate=\"no\">Markup-rect</code>-Knoten beschreibt ein "
+"Markierungsrechteck."
 
-#: C/glabels.xml:1101(guilabel)
-msgid "US Letter"
-msgstr "US-Letter"
+#: C/mancreate.page:641(p)
+msgid "x coordinate of upper left corner of rectangle."
+msgstr "x-Koordinate der oberen linken Ecke des Rechtecks."
 
-#: C/glabels.xml:1102(para)
-msgid "Most of your media will be of the US Letter page size (8.5 x 11 inches)."
-msgstr "Die meisten Ihrer Medien haben das US-Letter-Format (8.5 x 11 inches)."
+#: C/mancreate.page:645(p)
+msgid "y coordinate of upper left corner of rectangle."
+msgstr "y-Koordinate der oberen linken Ecke des Rechtecks."
 
-#: C/glabels.xml:1106(guilabel)
-msgid "ISO A4"
-msgstr "ISO A4"
+#: C/mancreate.page:648(code) C/mancreate.page:690(code)
+#, no-wrap
+msgid "w"
+msgstr "w"
+
+#: C/mancreate.page:649(p)
+msgid "Width of rectangle."
+msgstr "Breite des Rechtecks."
+
+#: C/mancreate.page:652(code) C/mancreate.page:694(code)
+#, no-wrap
+msgid "h"
+msgstr "h"
+
+#: C/mancreate.page:653(p)
+msgid "Height of rectangle."
+msgstr "Höhe des Rechtecks."
 
-#: C/glabels.xml:1107(para)
-msgid "Most of your media will be of the ISO A4 page size (210 x 297 mm)."
-msgstr "Die meisten Ihrer Medien haben das ISO-A4-Format (210 x 297 mm)."
+#: C/mancreate.page:656(code)
+#, no-wrap
+msgid "r"
+msgstr "r"
 
-#: C/glabels.xml:1110(para)
-msgid "Default: <guilabel>US Letter</guilabel>."
-msgstr "Standard: <guilabel>US-Letter</guilabel>."
+#: C/mancreate.page:657(p)
+msgid "Radius of rounded corners of rectangle."
+msgstr "Radius der abgerundeten Ecken des Rechtecks."
 
-#: C/glabels.xml:1119(title)
-msgid "Object defaults"
-msgstr "Objekt-Voreinstellungen"
+#: C/mancreate.page:670(title)
+msgid "<span translate=\"no\">Markup-ellipse</span> Node"
+msgstr "<span translate=\"no\">Markup-ellipse</span>-Knoten"
 
-#: C/glabels.xml:1125(para)
+#: C/mancreate.page:672(p)
 msgid ""
-"Use these controls to set the default properties of new text objects. These "
-"properties are"
+"A <code translate=\"no\">Markup-ellipse</code> describes a markup ellipse."
 msgstr ""
-"Verwenden Sie diese Einstellmöglichkeiten, um die Standardeigenschaften neuer "
-"Textobjekte festzulegen. Diese Eigenschaften sind"
+"Ein <code translate=\"no\">Markup-ellipse</code>-Knoten beschreibt eine "
+"Markierungsellipse."
 
-#: C/glabels.xml:1130(guilabel)
-msgid "Font"
-msgstr "Schrift"
+#: C/mancreate.page:683(p)
+msgid "x coordinate of upper left corner of ellipse."
+msgstr ""
+"x-Koordinate der oberen linken Ecke des die Ellipse umschließenden Rechtecks."
 
-#: C/glabels.xml:1131(para)
-msgid ""
-"These controls are used to select font family and font size, and whether the "
-"font should bold or in italics."
+#: C/mancreate.page:687(p)
+msgid "y coordinate of upper left corner of ellipse."
 msgstr ""
-"Verwenden Sie diese Einstellmöglichkeiten, um die Schriftfamilie und -größe "
-"festzulegen, sowie um anzugeben, ob die Schrift fett oder kursiv dargestellt "
-"werden soll."
+"x-Koordinate der oberen linken Ecke des die Ellipse umschließenden Rechtecks."
 
-#: C/glabels.xml:1136(guilabel) C/glabels.xml:1161(guilabel)
-#: C/glabels.xml:1176(guilabel)
-msgid "Color"
-msgstr "Farbe"
+#: C/mancreate.page:691(p)
+msgid "Width of ellipse."
+msgstr "Die Breite der Ellipse."
 
-#: C/glabels.xml:1137(para)
-msgid "This control selects the default text color."
-msgstr "Diese Einstellung wählt die Standard-Textfarbe aus."
+#: C/mancreate.page:695(p)
+msgid "Height of ellipse."
+msgstr "Die Höhe der Ellipse."
 
-#: C/glabels.xml:1141(guilabel)
-msgid "Alignment"
-msgstr "Ausrichtung"
+#: C/mancreate.page:713(title)
+msgid "<span translate=\"no\">Layout</span> Node"
+msgstr "<span translate=\"no\">Layout</span>-Knoten"
 
-#: C/glabels.xml:1142(para)
+#: C/mancreate.page:715(p)
 msgid ""
-"These controls are used to select the default text alignment (left, center or "
-"right)."
+"A label node may contain multiple <code translate=\"no\">Layout</code> "
+"children. If labels are arranged in a simple grid pattern, only one layout is "
+"needed. However, if labels are arranged in multiple grids, such as a running "
+"bond pattern, multiple <code translate=\"no\">Layout</code> tags can be used."
 msgstr ""
-"Mit diesen Einstellungen wählen Sie die vorgegebene Textausrichtung (links, "
-"mittig oder rechts)."
+"Ein Label-Knoten kann mehrere <code translate=\"no\">Layout</code>-"
+"Unterknoten enthalten. Wenn die Etiketten in einem einfachen rechteckigen "
+"Raster angeordnet sind, dann wird nur ein Layout benötigt. Falls die "
+"Etiketten jedoch in komplizierteren Rasteranordnungen vorliegen, können "
+"mehrere <code translate=\"no\">Layout</span></code>-Unterknoten verwendet "
+"werden."
 
-#: C/glabels.xml:1151(para)
-msgid ""
-"Use these controls to set the default properties of lines and outlines of new "
-"objects. These properties are"
+#: C/mancreate.page:721(p)
+msgid "A single label can always be treated as a grid of one."
 msgstr ""
-"Verwenden sie diese Einstellmöglichkeiten, um die Standardeigenschaften von "
-"Begrenzungen und neuen Objekten festzulegen. Diese Eigenschaften sind"
+"Beachten Sie, dass ein einzelnes Etikett immer auch als ein Raster aus "
+"Etiketten betrachtet werden kann."
 
-#: C/glabels.xml:1156(guilabel)
-msgid "Width"
-msgstr "Breite"
+#: C/mancreate.page:732(code)
+#, no-wrap
+msgid "nx"
+msgstr "nx"
 
-#: C/glabels.xml:1157(para)
-msgid "This control selects the default line width."
-msgstr "Diese Einstellung wählt die Standard-Linienbreite aus."
+#: C/mancreate.page:733(p)
+msgid "Number of labels/cards across in the grid (horizontal)"
+msgstr "Anzahl der Etiketten/Karten im Raster in horizontaler Richtung"
 
-#: C/glabels.xml:1162(para)
-msgid "This control selects the default line color."
-msgstr "Diese Einstellung wählt die Standard-Linienfarbe aus."
+#: C/mancreate.page:736(code)
+#, no-wrap
+msgid "ny"
+msgstr "ny"
 
-#: C/glabels.xml:1169(guilabel)
-msgid "Fill"
-msgstr "Füllen"
+#: C/mancreate.page:737(p)
+msgid "Number of labels/cards across in the grid (vertical)"
+msgstr "Anzahl der Etiketten/Karten im Raster in vertikaler Richtung"
 
-#: C/glabels.xml:1171(para)
+#: C/mancreate.page:741(p)
 msgid ""
-"Use these controls to set the default fill properties of new objects. These "
-"properties are"
+"Distance from left edge of sheet to the left edge of the left column of cards/"
+"labels in the layout."
 msgstr ""
-"Verwenden Sie diese Einstellmöglichkeiten zum Angeben der "
-"Füllungseigenschaften eines neuen Objekts. Diese Eigenschaften sind"
-
-#: C/glabels.xml:1177(para)
-msgid "This control selects the default fill color."
-msgstr "Diese Einstellung wählt die Standard-Füllfarbe aus."
-
-#: C/glabels.xml:1191(title)
-msgid "Document Merge Tutorial"
-msgstr "Anleitung zur Dokumentmischung"
+"Abstand von linken Rand des Papiers zum linken Rand der linken Reihe der "
+"Karten/Etiketten im Layout."
 
-#: C/glabels.xml:1193(para)
+#: C/mancreate.page:746(p)
 msgid ""
-"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that "
-"allows a unique label or card to be printed for each record in an external "
-"data source. It is however, the most mis-understood feature of "
-"<application>gLabels</application>. The following examples will step through "
-"a couple of common tasks using the document merge feature."
+"Distance from the top edge of sheet to the top edge of the top row of labels/"
+"cards in the layout."
 msgstr ""
-"Dokumentmischung ist ein mächtiges Funktionsmerkmal, das es Ihnen ermöglicht, "
-"ein einzelnes Etikett oder eine einzelne Karte für jeden Datensatz aus einer "
-"externen Datenquelle zu erstellen. Es ist allerdings die am häufigsten "
-"missverstandene Funktion in <application>gLabels</application>. Die folgenden "
-"Beispiele führen Sie schrittweise durch viele der Aufgaben, die Sie mit der "
-"Dokumentmischung ausführen können."
+"Abstand von oberen Rand des Papiers zum oberen Rand der oberen Reihe der "
+"Karten/Etiketten im Layout."
 
-#: C/glabels.xml:1201(title)
-msgid "Example 1: Name Tags Using a CSV File"
-msgstr "Beispiel 1: Namensschilder unter Nutzung einer CSV-Datei"
+#: C/mancreate.page:750(code)
+#, no-wrap
+msgid "dx"
+msgstr "dx"
 
-#: C/glabels.xml:1203(para)
-msgid ""
-"In this example we are organizing an orientation party for the new crew "
-"members of our ship. We have a list of freshman crew members that we created "
-"in <application>gnumeric</application> and exported as the following CSV "
-"file. We could have created this file by using a text editor, but heck it is "
-"the 23rd century."
-msgstr ""
-"In diesem Beispiel organisieren Sie eine Orientierungsparty für die neuen "
-"Mannschaftsmitglieder Ihres Schiffes. Eine Liste der neuen Mitglieder haben "
-"Sie in <application>gnumeric</application> erstellt und in die folgende CSV-"
-"Datei exportiert. Sie könnten diese Datei auch in einem Texteditor erstellen, "
-"aber schließlich leben wir im 23. Jahrhundert..."
+#: C/mancreate.page:751(p)
+msgid "Horizontal pitch of grid."
+msgstr "Horizontaler Rasterabstand des Zeichengitters."
 
-#: C/glabels.xml:1209(programlisting)
+#: C/mancreate.page:754(code)
 #, no-wrap
-msgid ""
-"\n"
-"Name,Department,SN\n"
-"\"Jim Kirk\",Management,\"SC937-0176 CEC\"\n"
-"\"Mr. Spock\",Sciences,S179-276SP\n"
-"\"Leonard McCoy\",Medicine,unknown\n"
-"\"Montgomery Scott\",Engineering,SE-197-54T\n"
-"      "
-msgstr ""
-"\n"
-"Name,Department,SN\n"
-"\"Jim Kirk\",Management,\"SC937-0176 CEC\"\n"
-"\"Mr. Spock\",Sciences,S179-276SP\n"
-"\"Leonard McCoy\",Medicine,unknown\n"
-"\"Montgomery Scott\",Engineering,SE-197-54T\n"
-"      "
+msgid "dy"
+msgstr "dy"
 
-#: C/glabels.xml:1217(para)
-msgid ""
-"In <application>gLabels</application> we have created a new "
-"<application>gLabels</application> document using the Avery 5395 \"Name Badge "
-"Labels\" template. Next we use the <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Merge Properties</guimenuitem></menuchoice> menu item to "
-"display the <guilabel>merge properties</guilabel> dialog. We use this dialog "
-"to select the source type (in our case CSV) and the merge source (filename) "
-"as shown."
-msgstr ""
-"In <application>glabels</application> haben Sie ein neues Dokument unter "
-"Verwendung der Dokumentvorlage »Avery 5395 Namensschild-Etiketten« erzeugt. "
-"Zunächst öffnen Sie mittels <menuchoice><guimenu>Objekte</"
-"guimenu><guimenuitem>Mischeinstellungen</guimenuitem></menuchoice> den Dialog "
-"<guilabel>Mischeinstellungen</guilabel>. In diesem Dialog wählen Sie wie "
-"gezeigt die Datenquelle aus, in diesem Fall CSV, sowie die Mischquelle "
-"(Dateiname)."
-
-#: C/glabels.xml:1227(title) C/glabels.xml:1344(title)
-#: C/glabels.xml:1460(title)
-msgid "Merge properties dialog"
-msgstr "Mischeinstellungen-Dialog"
+#: C/mancreate.page:755(p)
+msgid "Vertical pitch of grid."
+msgstr "Vertikaler Rasterabstand des Zeichengitters."
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1238(para)
-msgid ""
-"Before applying the merge source, we uncheck the first record since it is "
-"only column headers from our original <application>gnumeric</application> "
-"spreadsheet and would simply waste our first label. We could also unselect "
-"any other records that we didn't want to print a label for."
-msgstr ""
-"Bevor Sie eine neue Einmischquelle anwenden, sollten Sie den ersten Datensatz "
-"deaktivieren, weil dieser nur Spaltenköpfe aus der originalen "
-"<application>gnumeric</application>-Tabelle enthält. Dadurch würde nur das "
-"erste Etikett verschwendet. Weiterhin können Sie alle anderen Datensätze "
-"entfernen, die Sie nicht für ein Etikett verwenden wollen."
+#: C/mancreate.page:761(desc)
+msgid "<span translate=\"no\">Layout</span> parameters"
+msgstr "<span translate=\"no\">Layout</span>-Parameter"
 
-#: C/glabels.xml:1243(para) C/glabels.xml:1361(para)
-msgid ""
-"We can also view each record in more detail by clicking on the appropriate "
-"expander (the little triangles) as shown. Once we are satisfied with the "
-"selections in this dialog we click <guibutton>OK</guibutton> to accept the "
-"changes."
-msgstr ""
-"Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen "
-"Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf "
-"<guibutton>OK</guibutton>, um die Änderungen anzuwenden."
+#: C/mancreate.page:763(p)
+msgid "<span translate=\"no\">Layout</span> Parameters"
+msgstr "<span translate=\"no\">Layout</span>-Parameter"
 
-#: C/glabels.xml:1248(para) C/glabels.xml:1366(para)
-msgid ""
-"Now we start adding objects to our <application>gLabels</application> "
-"document as shown."
-msgstr ""
-"Nun beginnen wir mit dem Hinzufügen von Objekten zu unserem "
-"<application>gLabels</application>-Dokument, wie gezeigt."
+#: C/license.page:8(desc)
+msgid "Legal information."
+msgstr "Rechtliche Hinweise."
 
-#: C/glabels.xml:1252(title) C/glabels.xml:1370(title)
-#: C/glabels.xml:1488(title)
-msgid "Adding objects"
-msgstr "Hinzufügen von Objekten"
+#: C/license.page:11(title)
+msgid "License"
+msgstr "Lizenz"
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1263(para)
+#: C/license.page:12(p)
 msgid ""
-"In this example we have added three text objects and a barcode object. The "
-"first text object contains only simple literal text (\"Hello, my name is\"). "
-"The second text object contains a single merge field (\"${1}\") corresponding "
-"to the first field of a record (first column of a line) which contains the "
-"new crew member's full name. The third text field contains both literal text "
-"(\"Department: \") followed by a single merge field (\"${2}\") corresponding "
-"to the second field or the crew member's department. The barcode object is "
-"configured to use field (or key) \"3\" which contains our crew member's "
-"starfleet serial number."
+"This work is distributed under a CreativeCommons Attribution-Share Alike 3.0 "
+"Unported license."
 msgstr ""
-"In diesem Beispiel haben Sie drei Textobjekte und ein Strichcodeobjekt "
-"hinzugefügt. Das erste Textobjekt enthält nur einfachen Text (»Hello, my name "
-"is«). Das zweite Textobjekt enthält ein einfaches Mischfeld (»${1}«), welches "
-"zum ersten Feld eines Datensatzes (erste Spalte einer Zeile) korrespondiert, "
-"die den vollen Namen eines Mannschaftsmitglieds enthält. Das dritte Feld "
-"enthält sowohl einfachen Text (»Department:«) als auch ein einzelnes Mischfeld "
-"(»${2}«), welches zum zweiten Feld oder zum Arbeitsgebiet eines "
-"Mannschaftsmitglieds korrespondiert. Das Strichcodefeld ist so eingestellt, "
-"das Feld (oder den Schlüssel) »3« zu verwenden, das die Sternenflotten-"
-"Seriennummer des Mannschaftsmitglieds enthält."
-
-#: C/glabels.xml:1273(para)
-msgid ""
-"Now we can print our name tags by selecting the <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>Print</guimenuitem></menuchoice> menu item. This will "
-"display print dialog as shown below."
-msgstr ""
-"Nun können Sie Ihre Namensschilder drucken, indem Sie "
-"<menuchoice><guimenu>Datei</guimenu><guimenuitem>Drucken</guimenuitem></"
-"menuchoice> wählen. Der unten angezeigte Druckdialog wird geöffnet."
-
-#: C/glabels.xml:1280(title)
-msgid "Printing name tags"
-msgstr "Drucken der Namensschilder"
+"Dieses Werk wird unter einer »CreativeCommons Attribution-Share Alike 3.0 "
+"Unported license« verbreitet."
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1291(para) C/glabels.xml:1406(para) C/glabels.xml:1520(para)
-msgid ""
-"Just to make sure our labels are going to look okay, we select the "
-"<guilabel>Print outlines</guilabel> option and click <guibutton>Print "
-"Preview</guibutton>. This will display a print preview dialog as shown below."
+#: C/license.page:20(p)
+msgid "You are free:"
+msgstr "Es ist Ihnen gestattet:"
+
+#: C/license.page:25(em)
+msgid "To share"
+msgstr "Freizugeben"
+
+#: C/license.page:26(p)
+msgid "To copy, distribute and transmit the work."
 msgstr ""
-"Um sicher zu stellen, dass Ihre Etiketten gut aussehen, wählen Sie die Option "
-"<guilabel>Begrenzungen drucken</guilabel> und klicken auf "
-"<guibutton>Druckvorschau</guibutton>. Der Druckvorschaudialog wird geöffnet, "
-"wie unten angezeigt."
+"Das Werk bzw. den Inhalt vervielfältigen, verbreiten und öffentlich "
+"zugänglich machen."
 
-#: C/glabels.xml:1298(title)
-msgid "Name tags preview"
-msgstr "Vorschau der Namensschilder"
+#: C/license.page:29(em)
+msgid "To remix"
+msgstr "Änderungen vorzunehmen"
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1309(para)
+#: C/license.page:30(p)
+msgid "To adapt the work."
+msgstr "Abwandlungen und Bearbeitungen des Werkes bzw. Inhaltes anzufertigen."
+
+#: C/license.page:33(p)
+msgid "Under the following conditions:"
+msgstr "Unter den folgenden Bedingungen:"
+
+#: C/license.page:38(em)
+msgid "Attribution"
+msgstr "Weitergabe"
+
+#: C/license.page:39(p)
 msgid ""
-"Everything looks good, so we can now load up our printer with the appropriate "
-"label stock, print our name tags and start beaming our guests aboard."
+"You must attribute the work in the manner specified by the author or licensor "
+"(but not in any way that suggests that they endorse you or your use of the "
+"work)."
 msgstr ""
-"Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden "
-"Etiketten bestücken, die Namensschilder drucken und die Gäste an Bord beamen."
+"Sie dürfen das Werk nur unter gleichen Bedingungen weitergeben, wie Sie vom "
+"Autor oder Lizenzgeber festgelegt wurden (aber nicht so, dass es wie Ihr Werk "
+"aussieht)."
 
-#: C/glabels.xml:1316(title)
-msgid "Example 2: Address Labels Using a CSV File"
-msgstr "Beispiel 2: Adressetiketten unter Nutzung einer CSV-Datei"
+#: C/license.page:46(em)
+msgid "Share Alike"
+msgstr "Share Alike"
 
-#: C/glabels.xml:1318(para)
+#: C/license.page:47(p)
 msgid ""
-"In this example we are going to throw a party and need to print mailing "
-"address labels for our invitations. We have a list of our closest friends "
-"that we created in <application>gnumeric</application> and exported as the "
-"following CSV file. It should be noted that not everyone has a middle initial "
-"or a two line address."
+"If you alter, transform, or build upon this work, you may distribute the "
+"resulting work only under the same, similar or a compatible license."
 msgstr ""
-"In diesem Beispiel planen Sie eine Party. Dafür benötigen Sie Adressetiketten "
-"für die Einladungen. Sie haben eine Liste Ihrer besten Freunde in "
-"<application>gnumeric</application> erstellt, die Sie in die folgende CSV-"
-"Datei exportiert haben. Es ist zu beachten, dass nicht jeder einen zweiten "
-"Vornamen oder eine zweizeilige Adresse hat."
+"Wenn Sie das lizenzierte Werk bzw. den lizenzierten Inhalt bearbeiten, "
+"abwandeln oder in anderer Weise erkennbar als Grundlage für eigenes Schaffen "
+"verwenden, dürfen Sie die daraufhin neu entstandenen Werke bzw. Inhalte nur "
+"unter Verwendung von Lizenzbedingungen weitergeben, die mit denen dieses "
+"Lizenzvertrages identisch, vergleichbar oder kompatibel sind."
 
-#: C/glabels.xml:1324(programlisting)
-#, no-wrap
+#: C/license.page:53(p)
 msgid ""
-"\n"
-"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n"
-",,,,,,,\n"
-"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n"
-"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n"
-"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n"
-"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n"
-"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n"
-"      "
+"For the full text of the license, see the <link href=\"http://creativecommons."
+"org/licenses/by-sa/3.0/legalcode\">CreativeCommons website</link>, or read "
+"the full <link href=\"http://creativecommons.org/licenses/by-sa/3.0/"
+"\">Commons Deed</link>."
 msgstr ""
-"\n"
-"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n"
-",,,,,,,\n"
-"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n"
-"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n"
-"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n"
-"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n"
-"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n"
-"      "
+"Den vollständigen Text der Lizenz finden sie auf der <link href=\"http://"
+"creativecommons.org/licenses/by-sa/3.0/legalcode\">CreativeCommons-Webseite</"
+"link>. Oder Sie können den vollständigen <link href=\"http://creativecommons."
+"org/licenses/by-sa/3.0/\">Commons Deed</link> lesen."
 
-#: C/glabels.xml:1334(para)
+#: C/labelprop.page:9(desc)
+msgid "How to change the properties of a label or business card."
+msgstr "Ändern der Eigenschaften eines Etiketts oder einer Visitenkarte."
+
+#: C/labelprop.page:25(title)
+msgid "To change label properties"
+msgstr "Ändern der Eigenschaften eines Etiketts"
+
+#: C/labelprop.page:27(p)
 msgid ""
-"In <application>gLabels</application> we have created a new "
-"<application>gLabels</application> document using the Avery 5512 \"Address "
-"Labels\" template. Next we use the <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Merge Properties</guimenuitem></menuchoice> menu item to "
-"display the <guilabel>merge properties</guilabel> dialog. We use this dialog "
-"to select the source type (in our case CSV) and the merge source (filename) "
-"as shown."
+"To change the media type and/or orientation of a label, choose "
+"<guiseq><gui>File</gui><gui>Properties</gui></guiseq> to display the "
+"<gui>Label properties</gui> dialog. Select the new media type and orientation "
+"for the document, then click <gui>OK</gui>."
 msgstr ""
-"In <application>glabels</application> haben Sie ein neues Dokument unter "
-"Verwendung der Dokumentvorlage »Avery 5512 Adressetiketten« erzeugt. Zunächst "
-"öffnen Sie mittels <menuchoice><guimenu>Objekte</"
-"guimenu><guimenuitem>Mischeinstellungen</guimenuitem></menuchoice> den Dialog "
-"<guilabel>Mischeinstellungen</guilabel>. In diesem Dialog wählen Sie wie "
-"gezeigt die Datenquelle aus, in diesem Fall CSV, sowie die Mischquelle "
-"(Dateiname)."
+"Um den Medientyp oder die Ausrichtung des Etiketts zu ändern, wählen Sie "
+"<guiseq><gui>Datei</gui><gui>Eigenschaften</gui></guiseq>, um den Dialog "
+"<gui>Etikett-Eigenschaften</gui> anzuzeigen. Wählen Sie den neuen Medientyp "
+"für das Dokument aus und klicken Sie anschließend auf <gui>OK</gui>."
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1355(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/index.page:24(None)
 msgid ""
-"Before applying the merge source, we uncheck the first record since it is "
-"only column headers from our original <application>gnumeric</application> "
-"spreadsheet and would simply waste our first label. We also unselect the "
-"second record which is empty (an artifact of our original spreadsheet). We "
-"could also unselect any other records that we didn't want to print a label "
-"for."
-msgstr ""
-"Bevor Sie eine neue Einmischquelle anwenden, sollten Sie den ersten Datensatz "
-"deaktivieren, weil dieser nur Spaltenköpfe aus der originalen "
-"<application>gnumeric</application>-Tabelle enthält. Dadurch würde nur das "
-"erste Etikett verschwendet. Weiterhin können Sie alle anderen Datensätze "
-"entfernen, die Sie nicht für ein Etikett verwenden wollen."
+"@@image: 'figures/glabels-logo.png'; md5=0c1e32afcbae0d2fc6976020c24a0a43"
+msgstr "translated"
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1381(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/index.page:47(None)
+#, fuzzy
 msgid ""
-"In this example we have a single text object. This text object contains all "
-"of our merge fields organized on multiple lines as a mailing address. Notice "
-"that fields ${4} and ${5} (corresponding to ADDR1 and ADDR2) are each located "
-"with no other text on their own lines. When <application>gLabels</"
-"application> encounters a field as the only text on a line, it will not "
-"expand the line if the field is empty."
-msgstr ""
-"In diesem Beispiel haben Sie ein einzelnes Textobjekt. Dieses Textobjekt "
-"enthält alle Einmischfelder, angeordnet in mehreren Zeilen wie eine "
-"Versandadresse. Beachten Sie, dass die Felder ${4} und ${5} (korrespondierend "
-"zu ADDR1 und ADDR2) jeweils keinen weiteren Text in deren Zeilen enthalten. "
-"Wenn <application>glabels</application> ein solches Feld als »nur Text« in "
-"einer Zeile erkennt, wird die Zeile nicht expandiert, falls das Feld leer ist."
+"@@image: 'figures/introduction-glabels-main-window.png'; "
+"md5=fceca242699bb062a5ac243a5f962f3b"
+msgstr "translated"
 
-#: C/glabels.xml:1388(para)
+#: C/index.page:7(title) C/index.page:8(title)
+msgid "gLabels label and business card designer"
+msgstr "gLabels Etiketten- und Visitenkarten-Designer"
+
+#: C/index.page:23(title)
+msgid ""
+"<media type=\"image\" mime=\"image/png\" src=\"figures/glabels-logo.png"
+"\">gLabels logo</media> gLabels Manual"
+msgstr ""
+"<media type=\"image\" mime=\"image/png\" src=\"figures/glabels-logo.png"
+"\">gLabels logo</media> gLabels-Handbuch"
+
+#: C/index.page:28(p)
+msgid ""
+"The <app>gLabels</app> application is a lightweight program for creating "
+"labels and business cards for the GNOME desktop environment. It is designed "
+"to work with various laser/ink-jet peel-off label and business card sheets "
+"that you'll find at most office supply stores."
+msgstr ""
+"Die Anwendung <app>gLabels</app> ist ein ressourcenschonendes Programm zum "
+"Erstellen von Etiketten und Visitenkarten für die GNOME-Arbeitsumgebung. Es "
+"wurde für die verschiedensten mit Laser- oder Tintenstrahldruckern "
+"bedruckbaren (auch selbstklebenden) Etiketten sowie Visitenkarten entworfen, "
+"so wie Sie sie in den meisten Schreibwarengeschäften finden."
+
+#: C/index.page:35(p)
+msgid ""
+"<app>gLabels</app> can be used to design address labels, name tags, price "
+"tags, cd/dvd labels, or just about anything else that is organized in a "
+"regular pattern on a sheet of paper. Labels (or cards) can contain text, "
+"images, lines, shapes, and barcodes. <app>gLabels</app> also includes a "
+"document-merge feature which lets you print a unique label for each record "
+"from an external data source, such as a CSV file or an <app>Evolution</app> "
+"address book."
+msgstr ""
+"<app>gLabels</app> kann zum Enwerfen von Adressaufklebern, Namens- und "
+"Preisschildern, Etiketten für CDs und DVDs oder für alles Andere verwendet "
+"werden, was mit dem Bedrucken von Papieren zu tun hat, die Etiketten oder "
+"Karten in einer regulären Anordnung enthalten. Die Etiketten oder Karten "
+"können Text, Bilder, Linien, Formen oder Strichcodes enthalten. <app>gLabels</"
+"app> verfügt auch über ein Funktionsmerkmal zur Dokumentmischung. Das "
+"bedeutet, dass Sie eine externe Datenquelle dazu verwenden können, ein "
+"Etikett für jeden Datensatz zu drucken. Als Datenquelle kann dabei "
+"beispielsweise eine CSV-Datei oder das Adressbuch von <app>Evolution</app> "
+"genutzt werden."
+
+#: C/index.page:45(title) C/index.page:46(desc)
+msgid "<app>gLabels</app> main window"
+msgstr "<app>gLabels</app>-Hauptfenster"
+
+#: C/index.page:48(p)
+msgid "<app>gLabels</app> main window."
+msgstr "<app>gLabels</app>-Hauptfenster"
+
+#: C/index.page:53(title)
+msgid "Usage"
+msgstr "Benutzung"
+
+#: C/index.page:57(title)
+msgid "Document Merging"
+msgstr "Dokumentmischung"
+
+#: C/index.page:61(title)
+msgid "Advanced usage"
+msgstr "Fortgeschrittene Verwendung"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/editprop.page:35(None)
+#, fuzzy
 msgid ""
-"Now we can print our address labels by selecting the "
-"<menuchoice><guimenu>File</guimenu><guimenuitem>Print</guimenuitem></"
-"menuchoice> menu item. This will display print dialog as shown below."
-msgstr ""
-"Nun können Sie Ihre Adressetiketten drucken, indem Sie "
-"<menuchoice><guimenu>Datei</guimenu><guimenuitem>Drucken</guimenuitem></"
-"menuchoice> wählen. Der unten angezeigte Druckdialog wird geöffnet."
+"@@image: 'figures/object-editor-sidebar.png'; "
+"md5=828ffc05f69e1914595cc1e3d7401e2f"
+msgstr "translated"
 
-#: C/glabels.xml:1395(title) C/glabels.xml:1509(title)
-msgid "Printing address labels"
-msgstr "Adressetiketten drucken"
+#: C/editprop.page:9(desc)
+msgid "Change the properties of objects."
+msgstr "Ändern der Eigenschaften von Objekten."
 
-#: C/glabels.xml:1413(title) C/glabels.xml:1527(title)
-msgid "Address labels preview"
-msgstr "Adressetiketten-Vorschau"
+#: C/editprop.page:25(title)
+msgid "To edit object properties"
+msgstr "Bearbeiten der Objekteigenschaften"
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1424(para) C/glabels.xml:1538(para)
+#: C/editprop.page:29(p)
 msgid ""
-"Everything looks good, so we can now load up our printer with the appropriate "
-"label stock, print our address labels and start mailing our party invitations."
+"Most object properties can be modified through the object editor sidebar, "
+"illustrated below. To use the object editor, a single object must first be "
+"selected. See <link xref=\"select\"/>."
 msgstr ""
-"Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden "
-"Etiketten bestücken, die Adressetiketten drucken und die Einladungen zur "
-"Party versenden."
+"Die meisten Objekteigenschaften können Sie über die Objekteditor-Seitenleiste "
+"verändern, wie unten illustriert. Um den Objekteditor zu verwenden, muss "
+"zunächst ein einzelnes Objekt ausgewählt werden. Siehe <link xref=\"select\"/"
+">."
 
-#: C/glabels.xml:1431(title)
+#. ==== End of Figure ====
+#: C/editprop.page:40(p)
 msgid ""
-"Example 3: Address Labels Using the <application>Evolution</application> "
-"Addressbook"
+"The object editor will contain a subset of the following tabbed sections, "
+"depending on object type:"
 msgstr ""
-"Beispiel 3: Adressetiketten unter Nutzung des <application>Evolution</"
-"application>-Adressbuchs"
+"Der Objekteditor bietet eine Auswahl der folgenden Reiter, abhängig vom "
+"Objekttyp:"
+
+#: C/editprop.page:44(title)
+msgid "Text Tabbed Section (Text objects)"
+msgstr "Text-Reiter (Textobjekte)"
 
-#: C/glabels.xml:1433(para)
+#: C/editprop.page:46(p)
 msgid ""
-"Our last party was a great success, and now we need to print mailing address "
-"labels for the invitations to a new one. To simplify this, we can use the "
-"<application>Evolution</application> addressbook, because the address data of "
-"all our friends is stored there."
+"This section contains a small editor for changing the content of a text "
+"object. It also contains a dropdown menu of available document merge keys, "
+"that can be inserted into text."
 msgstr ""
-"Ihre letzte Party war ein voller Erfolg. Nun benötigen Sie wieder "
-"Adressetiketten für die Einladung zu einer neuen Party. Um dies zu "
-"vereinfachen, können Sie das <application>Evolution</application>-Adressbuch "
-"nutzen, denn die Adressdaten aller Ihrer Freunde sind dort gespeichert."
-
-#: C/glabels.xml:1439(para)
-msgid ""
-"Depending on how your copy of <application>gLabels</application> was "
-"packaged, this option could be unavailable. Support for the "
-"<application>Evolution</application> addressbook will only be available if "
-"the <application>evolution-data-server</application> and its development "
-"files were present when <application>gLabels</application> was built. Please "
-"keep this in mind if you build <application>gLabels</application> directly "
-"from source."
-msgstr ""
-"Abhängig davon, wie das von Ihnen genutzte <application>gLabels</application>-"
-"Paket erstellt wurde, könnte diese Option nicht verfügbar sein. Die "
-"Unterstützung für das <application>Evolution</application>-Adressbuch ist nur "
-"vorhanden, wenn bei der Erstellung von <application>gLabels</application> das "
-"Paket <application>evolution-data-server</application> sowie dessen "
-"Entwicklerdateien verfügbar waren. Bitte berücksichtigen dies auch dann, wenn "
-"Sie <application>gLabels</application> direkt aus den Quellen erstellen."
-
-#: C/glabels.xml:1445(para)
-msgid ""
-"If the <application>gLabels</application> package from your distribution "
-"lacks this support, you may wish to contact the package maintainer or file a "
-"bug against the package to request it."
-msgstr ""
-"Falls das <application>gLabels</application>-Paket Ihrer Distribution diese "
-"Unterstützung nicht bieten sollte, kontaktieren Sie bitte den Ersteller des "
-"Pakets oder senden Sie einen Fehlerbericht, um dies einzufordern."
-
-#: C/glabels.xml:1450(para)
-msgid ""
-"In <application>glabels</application> we have created a new "
-"<application>gLabels</application> document using the Avery 5512 \"Address "
-"Labels\" template. Next we use the <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Merge Properties</guimenuitem></menuchoice> menu item to "
-"display the <guilabel>Merge properties</guilabel> dialog. We use this dialog "
-"to select the source type (in our case <guilabel>Data from default Evolution "
-"addressbook</guilabel>) as shown."
-msgstr ""
-"In <application>glabels</application> haben Sie ein neues Dokument unter "
-"Verwendung der Dokumentvorlage »Avery 5512 Adressetiketten« erzeugt. Zunächst "
-"öffnen Sie mittels <menuchoice><guimenu>Objekte</"
-"guimenu><guimenuitem>Mischeinstellungen</guimenuitem></menuchoice> den Dialog "
-"<guilabel>Mischeinstellungen</guilabel>. In diesem Dialog wählen Sie wie "
-"gezeigt die Datenquelle aus, in diesem Fall <guilabel>Daten aus dem "
-"vorgegebenen Evolution-Adressbuch</guilabel>, wie gezeigt."
+"Dieser Abschnitt bietet einen kleinen Editor zum Bearbeiten des Inhalts eines "
+"Textobjekts. Weiterhin ist ein Ausklappmenü mit den verfügbaren Schlüsseln "
+"zur Dokumentmischung enthalten, die in den Text eingefügt werden können."
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1471(para)
-msgid ""
-"Once we have chosen <guilabel>Data from default Evolution addressbook </"
-"guilabel> as our merge source, we will get a full list of its content. "
-"Initially, all entries are checked. Assuming we were planning a really big "
-"party, we could leave this selection untouched (but let's keep our budget in "
-"mind). We will now select or unselect certain entries by clicking on the "
-"appropriate checkboxes, or we could use the <guibutton>Select all</guibutton> "
-"and <guibutton>Unselect all </guibutton> buttons to activate or deactivate "
-"all entries in the address book."
-msgstr ""
-"Sobald  Sie <guilabel>Daten aus dem vorgegebenem Evolution-Adressbuch</"
-"guilabel> als Mischquelle gewählt haben, wird eine vollständige Liste des "
-"Inhalts angezeigt. Anfänglich sind alle Einträge ausgewählt. Angenommen, Sie "
-"planen eine wirklich große Party, können Sie die Auswahl unverändert "
-"belassen. Behalten Sie jedoch dabei Ihre finanziellen Möglichkeiten im Auge. "
-"Sie können bestimmte Einträge auswählen oder wieder abwählen, indem Sie die "
-"entsprechenden Ankreuzfelder anklicken. Alternativ können Sie durch Anklicken "
-"der Knöpfe <guibutton>Alle markieren</guibutton> oder <guibutton>Markierung "
-"aufheben</guibutton> alle Einträge des Adressbuchs aktivieren oder "
-"deaktivieren. "
+#: C/editprop.page:53(title)
+msgid "Image Tabbed Section (Image objects)"
+msgstr "Bild-Reiter (Bild-Objekte)"
 
-#: C/glabels.xml:1479(para)
+#: C/editprop.page:55(p)
 msgid ""
-"We can also view each entry in more detail by clicking on the appropriate "
-"expander (the little triangles) as shown. Once we are satisfied with the "
-"selections in this dialog, we will click the <guibutton>OK</guibutton> button "
-"to accept the changes."
+"This section contains a file entry with preview to select image files. The "
+"browse button can be used to easily locate image files. Alternatively, a "
+"document merge key can be used instead to provide a filename at print time."
 msgstr ""
-"Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen "
-"Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf "
-"<guibutton>OK</guibutton>, um die Änderungen anzuwenden."
+"Dieser Abschnitt enthält einen Dateiwähler mit Vorschau zur Auswahl von "
+"Bilddateien. Der »Durchsuchen«-Knopf kann zum Suchen von Bilddateien benutzt "
+"werden. Alternativ können Sie einen Schlüssel zur Dokumenteinmischung "
+"anstelle eines Dateinamens angeben, der bei der Ausgabe des Dokuments ersetzt "
+"wird."
 
-#: C/glabels.xml:1484(para)
-msgid "Now we start adding objects to our glabels document as shown."
-msgstr ""
-"Nun beginnen wir mit dem Hinzufügen von Objekten zu unserem "
-"<application>gLabels</application>-Dokument, wie gezeigt."
+#: C/editprop.page:63(title)
+msgid "Data Tabbed Section (Barcode objects)"
+msgstr "Daten-Reiter (Strichcode-Objekte)"
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1499(para)
+#: C/editprop.page:65(p)
 msgid ""
-"In this example we have a single text object again. This text object contains "
-"all of our merge fields organized on multiple lines as a mailing address."
+"This section contains a text entry to enter literal barcode data. "
+"Alternatively, a document merge key can be used to provide this data at print "
+"time."
 msgstr ""
-"In diesem Beispiel haben Sie ein einzelnes Textobjekt. Dieses Textobjekt "
-"enthält alle Einmischfelder, angeordnet in mehreren Zeilen wie eine "
-"Versandadresse."
+"Dieser Abschnitt enthält ein Textfeld zur Eingabe von Strichcode-Daten. "
+"Alternativ kann hier ein Schlüssel zur Dokumentmischung eingetragen werden, "
+"der beim Druck für die Bereitstellung der richtigen Daten sorgt."
+
+#: C/editprop.page:72(title)
+msgid "Style Tabbed Section (Text objects)"
+msgstr "Stil-Reiter (Text-Objekte)"
 
-#: C/glabels.xml:1502(para)
+#: C/editprop.page:74(p)
 msgid ""
-"Now we can print our address labels by selecting the "
-"<menuchoice><guimenu>File</guimenu><guimenuitem>Print</guimenuitem></"
-"menuchoice> menu item. This will display the print dialog as shown below."
+"This section contains controls to select text properties, including font "
+"family, font size, font weight, color, and text justification."
 msgstr ""
-"Nun können Sie Ihre Adressetiketten drucken, indem Sie "
-"<menuchoice><guimenu>Datei</guimenu><guimenuitem>Drucken</guimenuitem></"
-"menuchoice> wählen. Der unten angezeigte Druckdialog wird geöffnet."
-
-#: C/glabels.xml:1551(title)
-msgid "Manually Creating New Templates"
-msgstr "Manuelles Erstellen neuer Vorlagen"
-
-#: C/glabels.xml:1553(para)
-msgid ""
-"Predefined templates are defined by XML files located in <filename>${prefix}/"
-"share/glabels/</filename>, where <filename>${prefix}</filename> is usually "
-"something like <filename>/usr/local</filename> or <filename>/usr</filename> "
-"depending on the configuration option <filename>prefix</filename>. "
-"<application>gLabels</application> will use all files of the form <filename>*-"
-"templates.xml</filename> or <filename>*.template</filename>, that it finds in "
-"<filename>${prefix}/share/glabels/</filename> and <filename>${HOME}/.glabels/"
-"</filename>. Additional templates can be added by creating additional "
-"<filename>*.template</filename> files in either of these directories."
-msgstr ""
-"Vordefinierte Vorlagen sind als XML-Dateien verfügbar, die in <filename>"
-"${prefix}/share/glabels/</filename> gespeichert sind, wobei <filename>"
-"${prefix}</filename> üblicherweise <filename>/usr/local</filename> oder "
-"<filename>/usr</filename> ist, abhängig von der Konfigurationsoption "
-"<filename>prefix</filename>. <application>gLabels</application> verwendet "
-"alle Dateien der Form <filename>*-templates.xml</filename> oder <filename>*."
-"template</filename>, die es in <filename>${prefix}/share/glabels/</filename> "
-"und <filename>${HOME}/.glabels/</filename> findet. Zusätzliche Vorlagen "
-"können unter Verwendung der Dateiendung <filename>*.template</filename> in "
-"einem dieser Ordner gespeichert werden."
-
-#: C/glabels.xml:1566(para)
-msgid ""
-"The format for these files is defined in the DTD: <ulink url=\"http://glabels."
-"sourceforge.net/doc/glabels-2.0.dtd.txt\" type=\"http\">glabels-2.2.dtd</"
-"ulink>. (This DTD also describes other XML formats used by "
-"<application>gLabels</application>.)"
-msgstr ""
-"Das Format dieser Dateien ist in einer DTD definiert: <ulink url=\"http://"
-"glabels.sourceforge.net/doc/glabels-2.0.dtd.txt\" type=\"http\">glabels-2.2."
-"dtd</ulink>. Diese DTD beschreibt außerdem weitere von gLabels benutzte XML-"
-"Formate."
+"Dieser Abschnitt enthält Einstellmöglichkeiten für die Texteigenschaften, wie "
+"Schriftfamilie, Schriftgröße, Schriftstärke, Schriftfarbe und Ausrichtung des "
+"Texts."
 
-#: C/glabels.xml:1572(title)
-msgid "Assumptions/caveats"
-msgstr "Voraussetzungen"
+#: C/editprop.page:81(title)
+msgid "Style Tabbed Section (Barcode objects)"
+msgstr "Stil-Reiter (Strichcode-Objekte)"
 
-#: C/glabels.xml:1575(para)
+#: C/editprop.page:83(p)
 msgid ""
-"A sheet contains only one size of label or card (if a sheet contains more "
-"than one size of item, it can be split into multiple templates for multiple "
-"pass printing)"
+"This section contains controls to select barcode properties, including "
+"barcode style, color, whether to print text, and whether to include a "
+"checksum digit."
 msgstr ""
-"Eine Seite enthält nur eine Etiketten- oder Kartengröße. Falls eine Seite "
-"mehrere Größen enthält, kann sie für das Drucken in mehreren Durchläufen über "
-"mehrere Vorlagen verteilt werden."
+"Dieser Abschnitt enthält Einstellmöglichkeiten für die Eigenschaften des "
+"Strichcodes, wie Stil, Farbe, Drucken von Text oder Beinhalten einer "
+"Prüfsumme."
+
+#: C/editprop.page:90(title)
+msgid "Line Tabbed Section"
+msgstr "Linie-Reiter"
 
-#: C/glabels.xml:1580(para)
+#: C/editprop.page:92(p)
 msgid ""
-"Distances can be expressed in units of <emphasis>pt</emphasis>, <emphasis>in</"
-"emphasis>, <emphasis>mm</emphasis>, <emphasis>cm</emphasis>, or <emphasis>pc</"
-"emphasis>. For example: \"<literal>1.0in</literal>\" or \"<literal>2.54cm</"
-"literal>\". If no units are specified, computer points (<emphasis>pt</"
-"emphasis>) will be assumed (1 <emphasis>pt</emphasis> = 1/72 <emphasis>in</"
-"emphasis> = 0.352778 <emphasis>mm</emphasis>)."
+"This section contains controls to select properties of lines and outlines. "
+"These properties include line width and color."
 msgstr ""
-"Abstände können in den Einheiten <emphasis>pt</emphasis>, <emphasis>in</"
-"emphasis>, <emphasis>mm</emphasis>, <emphasis>cm</emphasis> oder "
-"<emphasis>pc</emphasis> ausgedrückt werden. Beispiel: »<literal>1.0in</"
-"literal>« oder »<literal>2.54cm</literal>«. Falls keine Einheiten angegeben "
-"werden, nimmt der Rechner Punkt an. ein Punkt (<emphasis>pt</emphasis>) "
-"entspricht = 1/72 <emphasis>in</emphasis> = 0.352778 <emphasis>mm</emphasis>."
+"Dieser Abschnitt enthält Einstellmöglichkeiten für die Auswahl von "
+"Eigenschaften von Linien und Begrenzungen, wie Linienbreite und -farbe."
 
-#: C/glabels.xml:1593(title)
-msgid "Template Files"
-msgstr "Vorlagedateien"
+#: C/editprop.page:98(title)
+msgid "Fill Tabbed Section"
+msgstr "Füllung-Reiter"
 
-#: C/glabels.xml:1595(programlisting)
-#, no-wrap
+#: C/editprop.page:100(p)
 msgid ""
-"\n"
-"&lt;?xml version=\"1.0\"?&gt;\n"
-"&lt;Glabels-templates&gt;\n"
-"\n"
-"   <replaceable>...templates...</replaceable>\n"
-"\n"
-"&lt;/Glabels-templates&gt;\n"
-"      "
+"This section contains controls to select fill properties of box and ellipse "
+"objects. Currently the only fill property is fill color."
 msgstr ""
-"\n"
-"&lt;?xml version=\"1.0\"?&gt;\n"
-"&lt;Glabels-templates&gt;\n"
-"\n"
-"   <replaceable>...Vorlagen...</replaceable>\n"
-"\n"
-"&lt;/Glabels-templates&gt;\n"
-"      "
+"Dieser Abschnitt enthält Einstellmöglichkeiten für die Auswahl der "
+"Füllungseigenschaften von Rechteck- und Ellipsenobjekten. Derzeit ist nur die "
+"Einstellung der Füllungsfarbe möglich."
 
-#: C/glabels.xml:1607(title)
-msgid "Example Template"
-msgstr "Beispielvorlage"
+#: C/editprop.page:107(title)
+msgid "Size Tabbed Section (All except line objects)"
+msgstr "Reiter »Größe« (alle außer Linienobjekte)"
 
-#: C/glabels.xml:1608(programlisting)
-#, no-wrap
+#: C/editprop.page:109(p)
 msgid ""
-"\n"
-"  &lt;Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\"&gt;\n"
-"    &lt;Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\"&gt;\n"
-"      &lt;Markup-margin size=\"5pt\"/&gt;\n"
-"      &lt;Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/&gt;\n"
-"    &lt;/Label-rectangle&gt;\n"
-"    &lt;Alias brand=\"Avery\" part=\"5160\"/&gt;\n"
-"    &lt;Alias brand=\"Avery\" part=\"6233\"/&gt;\n"
-"  &lt;/Template&gt;\n"
-"      "
+"This section contains controls to select the width and height of an object. A "
+"checkbox is provided, so that the current aspect ratio can be locked while "
+"manipulating the width and height controls. Image objects also provide a "
+"button to reset the size to the image's natural size (Assumes 72DPI)."
 msgstr ""
-"\n"
-"  &lt;Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\"&gt;\n"
-"    &lt;Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\"&gt;\n"
-"      &lt;Markup-margin size=\"5pt\"/&gt;\n"
-"      &lt;Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/&gt;\n"
-"    &lt;/Label-rectangle&gt;\n"
-"    &lt;Alias brand=\"Avery\" part=\"5160\"/&gt;\n"
-"    &lt;Alias brand=\"Avery\" part=\"6233\"/&gt;\n"
-"  &lt;/Template&gt;\n"
-"      "
+"Dieser Abschnitt enthält Einstellmöglichkeiten für die Höhe und die Breite "
+"eines Objekts. Mit einem Ankreuzfeld können Sie die Werte aneinander koppeln, "
+"so dass das Seitenverhältnis beim Ändern der Höhe oder Breite erhalten "
+"bleibt. Für Bildobjekte gibt es außerdem einen Knopf zum Zurücksetzen des "
+"Bildes auf Originalgröße, wobei eine Auflösung von 72 dpi angenommen wird."
 
-#: C/glabels.xml:1621(title)
-msgid "Template Node"
-msgstr "Knoten »Template«"
+#: C/editprop.page:118(title)
+msgid "Size Tabbed Section (Line objects)"
+msgstr "Reiter »Größe« (Linienobjekte)"
 
-#: C/glabels.xml:1623(para)
+#: C/editprop.page:120(p)
 msgid ""
-"A <emphasis>Template</emphasis> node describes a single stationary product. "
-"It must contain one instance of any type of Label node (<emphasis>Label-"
-"rectangle</emphasis>, <emphasis>Label-round</emphasis>, or <emphasis>Label-"
-"cd</emphasis>). This node can be followed by zero or more <emphasis>Alias</"
-"emphasis> nodes."
+"This section contains controls to select the length and angle of a line "
+"object."
 msgstr ""
-"Ein <emphasis>Template</emphasis>-Knoten beschreibt ein einzelnes Produkt. Es "
-"muss eine Instanz eines der anderen Label-Knoten (<emphasis>Label-rectangle</"
-"emphasis>, <emphasis>Label-round</emphasis>, or <emphasis>Label-cd</"
-"emphasis>) enthalten. Auf diesen Knoten können einer, mehrere oder kein "
-"<emphasis>Alias</emphasis>-Knoten folgen."
-
-#: C/glabels.xml:1637(para) C/glabels.xml:1712(para) C/glabels.xml:1789(para)
-#: C/glabels.xml:1834(para) C/glabels.xml:1910(para) C/glabels.xml:1943(para)
-#: C/glabels.xml:1994(para) C/glabels.xml:2037(para) C/glabels.xml:2096(para)
-#: C/glabels.xml:2173(para)
-msgid "Property"
-msgstr "Eigenschaft"
-
-#: C/glabels.xml:1640(para) C/glabels.xml:1715(para) C/glabels.xml:1792(para)
-#: C/glabels.xml:1837(para) C/glabels.xml:1913(para) C/glabels.xml:1946(para)
-#: C/glabels.xml:1997(para) C/glabels.xml:2040(para) C/glabels.xml:2099(para)
-#: C/glabels.xml:2176(para)
-msgid "Description"
-msgstr "Beschreibung"
-
-#: C/glabels.xml:1646(para) C/glabels.xml:2182(para)
-msgid "brand"
-msgstr "brand"
+"Dieser Abschnitt enthält Einstellmöglichkeiten für die Länge und den Winkel "
+"eines Linienobjekts."
 
-#: C/glabels.xml:1648(para)
-msgid "Brand or manufacturer of stationary product. E.g. \"Avery\""
-msgstr "Marke oder Hersteller des Produkts, z.B. »Avery«"
+#: C/editprop.page:126(title)
+msgid "Position Tabbed Section"
+msgstr "Reiter »Position«"
 
-#: C/glabels.xml:1653(para) C/glabels.xml:2188(para)
-msgid "part"
-msgstr "part"
+#: C/editprop.page:128(p)
+msgid "This section contains controls to change the position of an object."
+msgstr ""
+"Dieser Abschnitt beschreibt die Möglichkeiten zur Positionierung eines "
+"Objekts."
 
-#: C/glabels.xml:1655(para)
-msgid "Part number or name of stationary product. E.g. \"8160\""
-msgstr "Bestellnummer oder Name des Produkts, z.B. »8160«"
+#: C/editprop.page:135(title)
+msgid "Shadow Tabbed Section (All except barcode objects)"
+msgstr "Reiter »Schattierung« (alle außer Strichcodeobjekten)"
 
-#: C/glabels.xml:1660(para) C/glabels.xml:1919(para)
-msgid "size"
-msgstr "size"
+#: C/editprop.page:137(p)
+msgid "This section contains controls to add a shadow to an object."
+msgstr ""
+"Dieser Abschnitt enthält Einstellmöglichkeiten für die Schattierung eines "
+"Objekts."
 
-#: C/glabels.xml:1662(para)
-msgid "Size of sheet. E.g., \"US-Letter,\" \"A4\", ..."
-msgstr "Größe des Papiers, z.B.  »US-Letter«, »A4«, …"
+#: C/editprop.page:146(title)
+msgid "Other Manipulations of Objects"
+msgstr "Andere Manipulationen von Objekten"
 
-#: C/glabels.xml:1666(para)
-msgid "description"
-msgstr "description"
+#: C/editprop.page:148(p)
+msgid "Objects can also be manipulated in the following ways."
+msgstr "Objekte können auf die folgenden Arten manipuliert werden."
 
-#: C/glabels.xml:1668(para)
-msgid "Description of stationary product. E.g, \"Mailing Labels.\""
-msgstr "Beschreibung des Produkts, z.B. »Mailing Labels«."
+#: C/editprop.page:151(title)
+msgid "Moving and Resizing Objects"
+msgstr "Verschieben und Größenänderung von Objekten"
 
-#: C/glabels.xml:1673(para)
-msgid "_description"
-msgstr "_description"
+#: C/editprop.page:153(p)
+msgid ""
+"Objects can be moved by simply clicking on a selected object and dragging the "
+"object to its new location. If the object is part of an aggregate selection, "
+"all objects in the selection will move with the object being dragged, "
+"maintaining their relative positions to one another. If no object is "
+"selected, clicking on an object will create a new selection containing that "
+"object. See <link xref=\"select\"/>."
+msgstr ""
+"Objekte können Sie durch einfaches Anklicken und Ziehen des ausgewählten "
+"Objekts zur neuen Position verschieben. Falls dieses Objekt Teil einer "
+"Mehrfachauswahl ist, werden durch Ziehen dieses Objektes alle Objekte "
+"verschoben, wobei deren Abstände untereinander erhalten bleiben. Falls kein "
+"Objekt ausgewählt ist, wird durch Anklicken eines Objekts eine neue Auswahl "
+"erzeugt, die dieses Objekt enthält. Siehe <link xref=\"select\"/>."
 
-#: C/glabels.xml:1675(para)
+#: C/editprop.page:161(p)
 msgid ""
-"Translatable description of stationary product. E.g, \"Mailing Labels."
-"\" (Only useful for predefined templates)"
+"A selected object can be resized by clicking one of its resize handle and "
+"dragging it to obtain the new size."
 msgstr ""
-"Übersetzbare Beschreibung des Produkts, z.B. »Mailing Labels« (nur sinnvoll "
-"für vordefinierte Vorlagen)"
+"Die Größe eines ausgewählten Objekts kann geändert werden, indem Sie auf "
+"einen der Größenänderungs-Anfasspunkte klicken und diesen ziehen, um die "
+"gewünschte Größe zu erreichen."
 
-#: C/glabels.xml:1681(para) C/glabels.xml:1727(para) C/glabels.xml:1857(para)
-msgid "width"
-msgstr "width"
+#: C/editprop.page:167(title)
+msgid "Changing Stacking Order"
+msgstr "Ändern der Reihenfolge der Ebenen"
 
-#: C/glabels.xml:1683(para)
-msgid "Page width. Only valid if size=\"Other\""
-msgstr "Seitenbreite. Nur gültig, wenn als Größe »Other« festgelegt ist."
+#: C/editprop.page:169(p)
+msgid ""
+"Stacking order refers to relative position in the z-axis of objects. That is "
+"when objects overlap, which object will appear on top of the other. By "
+"default, newer objects will appear above older objects. To change this order, "
+"select one or more objects and choose <guiseq><gui>Objects</gui><gui>Order</"
+"gui><gui>Bring to Front</gui></guiseq> to raise the selection to the top of "
+"the stacking order, or choose <guiseq><gui>Objects</gui><gui>Order</"
+"gui><gui>Send to Back</gui></guiseq> to lower the selection to the bottom of "
+"the stacking order. These menuitems are also available by right-clicking the "
+"display area when there is a non-empty selection."
+msgstr ""
+"Die Stapelreihenfolge bezieht sich auf die relative Position in der Z-Achse "
+"von Objekten. Das beschreibt beim Überlappen von Objekten, welches der "
+"Objekte über den anderen erscheint. Per Vorgabe werden neue Objekte immer "
+"oberhalb von bereits vorhandenen Objekten platziert. Um diese Anordnung zu "
+"ändern, wählen Sie <guiseq><gui>Objekte</gui><gui>Anordnung</gui><gui>Ganz "
+"nach vorn</gui></guiseq>, um die Auswahl im Stapel nach oben zu verschieben, "
+"oder <guiseq><gui>Objekte</gui><gui>Anordnung</gui><gui>Ganz nach hinten</"
+"gui></guiseq>, um die Auswahl im Stapel nach unten zu verschieben. Diese "
+"Menüeinträge sind auch durch einen Klick mit der rechten Maustaste auf den "
+"Ansichtsbereich verfügbar, falls sich dort eine nicht leere Auswahl befindet."
+
+#: C/editprop.page:187(title)
+msgid "Rotating and Flipping Objects"
+msgstr "Drehen und Spiegeln von Objekten"
 
-#: C/glabels.xml:1687(para) C/glabels.xml:1731(para) C/glabels.xml:1864(para)
-msgid "height"
-msgstr "height"
+#: C/editprop.page:189(p)
+msgid ""
+"Objects can be rotated 90 degrees in either direction, or flipped "
+"horizontally or vertically, by choosing the appropriate menuitem in the "
+"<guiseq><gui>Objects</gui><gui>Rotate/Flip</gui></guiseq> sub-menu. These "
+"menuitems are also available by right-clicking the display area when there is "
+"a non-empty selection."
+msgstr ""
+"Objekte können um 90 Grad in jeder Richtung gedreht oder horizontal oder "
+"vertikal gespiegelt werden. Wählen Sie hierzu den entsprechenden Eintrag im "
+"Menü <guiseq><gui>Objekte</gui><gui>Drehen/Spiegeln</gui></guiseq>. Diese "
+"Menüeinträge sind auch verfügbar, wenn Sie mit der rechten Maustaste in eine "
+"nicht leere Auswahl im Ansichtsbereich klicken."
 
-#: C/glabels.xml:1689(para)
-msgid "Page height. Only valid if size=\"Other\""
-msgstr "Seitenhöhe. Nur gültig, wenn als Größe »Other« festgelegt ist."
+#: C/editprop.page:197(p)
+msgid ""
+"This feature could be useful when you are designing CD box inlays. For the "
+"spine caption, you need vertical aligned text. After you have created a basic "
+"text box, choose <guiseq><gui>Objects</gui><gui>Rotate/Flip</gui></guiseq> to "
+"rotate the text box according to your needs."
+msgstr ""
+"Dieses Funktionsmerkmal kann nützlich sein, wenn Sie Einleger für CD-Boxen "
+"entwerfen. Für die Beschriftung der Schmalseite benötigen sie vertikal "
+"laufenden Text. Nachdem Sie das Textobjekt erstellt haben, wählen Sie "
+"<guiseq><gui>Objekte</gui><gui>Drehen/Spiegeln</gui></guiseq>, um das "
+"Textobjekt Ihren Erfordernissen entsprechend auszurichten."
 
-#: C/glabels.xml:1699(title)
-msgid "Label-rectangle Node"
-msgstr "Knoten »Label-rectangle«"
+#: C/editprop.page:208(title)
+msgid "Aligning Objects"
+msgstr "Ausrichten von Objekten"
 
-#: C/glabels.xml:1701(para)
+#: C/editprop.page:210(p)
 msgid ""
-"A <emphasis>Label-rectangle</emphasis> node describes the dimensions of a "
-"single label or business card that is rectangular in shape (may have rounded "
-"edges)."
+"Objects can be aligned horizontally or vertically, relative to one another, "
+"or relative to the center line of the label, by choosing the appropriate "
+"menuitem from the <guiseq><gui>Objects</gui><gui>Align Horizontal</gui></"
+"guiseq> or <guiseq><gui>Objects</gui><gui>Align Vertical</gui></guiseq> sub-"
+"menus. These menuitems are also available by right-clicking the display area "
+"when there is a non-empty selection."
 msgstr ""
-"Ein <emphasis>Label-rectangle</emphasis>-Knoten beschreibt die Abmessungen "
-"eines einzelnen Etiketts oder einer einzelnen Karte in rechteckiger Form, "
-"wobei abgerundete Ecken möglich sind."
-
-#: C/glabels.xml:1721(para) C/glabels.xml:1798(para) C/glabels.xml:1843(para)
-msgid "id"
-msgstr "id"
+"Objekte können horizontal oder vertikal zu einem anderen Objekt oder relativ "
+"zu einer Mittellinie des Etiketts angeordnet werden, indem Sie "
+"<guiseq><gui>Objekte</gui><gui>Horizontal ausrichten</gui></guiseq> oder "
+"<guiseq><gui>Objekte</gui><gui>Vertikal ausrichten</gui></guiseq> wählen. "
+"Diese Menüeinträge sind auch verfügbar, wenn Sie mit der rechten Maustaste in "
+"eine nicht leere Auswahl im Ansichtsbereich klicken."
 
-#: C/glabels.xml:1723(para) C/glabels.xml:1800(para) C/glabels.xml:1845(para)
-msgid "Reserved for future use. Should always be 0."
-msgstr "Für zukünftige Verwendung reserviert. Sollte immer 0 sein."
+#: C/editprop.page:223(title)
+msgid "Using the Property Bar"
+msgstr "Verwendung der Eigenschaftsleiste"
 
-#: C/glabels.xml:1728(para)
-msgid "Width of label/card"
-msgstr "Breite des Etiketts oder der Karte"
+#: C/editprop.page:225(p)
+msgid ""
+"The property bar can be used to change some common properties of objects en-"
+"masse. These properties include font family, font size, font weight, text "
+"alignment, text color, fill color, line or outline color, and line width. The "
+"property bar also controls the defaults for these properties for any newly "
+"created objects."
+msgstr ""
+"Mit der Eigenschaftsleiste können Sie einige Eigenschaften von Objekten in "
+"einem Arbeitsgang ändern. Diese Eigenschaften umfassen Schriftfamilie, "
+"Schriftgröße, Schriftstärke, Textausrichtung, Textfarbe, Füllfarbe, Farbe von "
+"Linien oder Begrenzungen sowie Linienbreiten. Die Eigenschaftsleiste regelt "
+"auch die Vorgaben für diese Eigenschaften, wenn neue Objekte erzeugt werden."
 
-#: C/glabels.xml:1732(para)
-msgid "Height of label/card"
-msgstr "Höhe des Etiketts oder der Karte"
+#: C/customtemplate.page:9(desc)
+msgid "Create your own templates for stationery products."
+msgstr ""
+"Erstellen Ihrer eigenen Vorlagen für Ihre Etiketten- und Visitenkartenbögen."
 
-#: C/glabels.xml:1735(para)
-msgid "round"
-msgstr "round"
+#: C/customtemplate.page:25(title)
+msgid "To create a custom template"
+msgstr "Erstellen einer benutzerdefinierten Vorlage"
 
-#: C/glabels.xml:1737(para)
+#: C/customtemplate.page:27(p)
 msgid ""
-"Radius of corners. For items with square edges (business cards), the radius "
-"should be 0."
+"To create a new custom template, choose <guiseq><gui>File</gui><gui>Template "
+"Designer ...</gui></guiseq> to display the <gui>Template Designer</gui> "
+"dialog. This dialog will assist you in creating a custom template for most "
+"types of label or card stationery that you may encounter."
 msgstr ""
-"Radius der Ecken. Für Objekte mit nicht abgerundeten Ecken (Visitenkarten) "
-"sollte der Radius 0 sein."
-
-#: C/glabels.xml:1742(para)
-msgid "x_waste"
-msgstr "x_waste"
+"Um eine neue benutzerdefinierte Vorlage zu erstellen, wählen Sie "
+"<guiseq><gui>Datei</gui><gui>Vorlagen-Designer …</gui></guiseq>, um den "
+"<gui>Vorlagen-Designer</gui>-Dialog anzuzeigen. Dieser Dialog hilft Ihnen bei "
+"der Erstellung einer benutzerdefinierten Vorlage für die meisten Typen von "
+"Etiketten oder Visitenkarten, die Ihnen in Schreibwarengeschäften begegnen "
+"könnten."
 
-#: C/glabels.xml:1744(para)
+#: C/customtemplate.page:34(p)
 msgid ""
-"Amount of horizontal waste (over-print) to allow. This is useful for "
-"minimizing alignment problems when using non-white backgrounds (e.g. images)."
+"If you prefer, you can create your templates manually. For this option see "
+"<link xref=\"mancreate\"/>"
 msgstr ""
-"Erlaubte Breite des horizontalen Überdruckens. Dies minimiert "
-"Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder)."
+"Falls Sie dies bevorzugen, können Sie Ihre Vorlagen auch manuell erstellen. "
+"Weitere Informationen hierzu finden Sie in <link xref=\"mancreate\"/>"
 
-#: C/glabels.xml:1750(para)
-msgid "y_waste"
-msgstr "y_waste"
+#: C/customize.page:9(desc)
+msgid "Customize <app>gLabels</app> to match your needs."
+msgstr "Anpassen von <app>gLabels</app> an Ihre Bedürfnisse."
 
-#: C/glabels.xml:1752(para)
+#. Use this section to describe how to customize the application.
+#: C/customize.page:25(title)
+msgid "Settings"
+msgstr "Einstellungen"
+
+#: C/customize.page:26(p)
 msgid ""
-"Amount of vertical waste (over-print) to allow. This is useful for minimizing "
-"alignment problems when using non-white backgrounds (e.g. images)."
+"To configure <app>gLabels</app>, choose <guiseq><gui>Settings</"
+"gui><gui>Preferences</gui></guiseq>. The <gui>Preferences</gui> dialog "
+"contains the following tabbed sections:"
 msgstr ""
-"Erlaubte Breite des vertikalen Überdruckens. Dies minimiert "
-"Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder)."
+"Um <app>gLabels</app> zu konfigurieren, wählen Sie "
+"<guiseq><gui>Einstellungen</gui><gui>Einstellungen</gui></guiseq>. Der Dialog "
+"<gui>Einstellungen</gui> enthält die folgenden Reiter:"
 
-#: C/glabels.xml:1763(title)
-msgid "Label-rectangle Parameters"
-msgstr "Parameter zu Label-rectangle "
+#: C/customize.page:35(title)
+msgid "Locale"
+msgstr "Lokale Einstellungen"
 
-#: C/glabels.xml:1777(title)
-msgid "Label-round Node"
-msgstr "Knoten »Label-round«"
+#: C/customize.page:37(title)
+msgid "Units"
+msgstr "Einheiten"
 
-#: C/glabels.xml:1779(para)
+#: C/customize.page:38(p)
 msgid ""
-"A <emphasis>Label-round</emphasis> node describes the dimensions of a simple "
-"round label (not a CD)."
+"Use this radio button group to specify your preferred units. Select one of "
+"the following options:"
 msgstr ""
-"Ein <emphasis>Label-round</emphasis>-Knoten beschreibt die Abmessungen eines "
-"einfachen Rundetiketts (nicht einer CD)."
+"Verwenden Sie diese Radioknöpfe, um Ihre bevorzugten Maßeinheiten "
+"festzulegen. Wählen Sie aus den folgenden Optionen:"
 
-#: C/glabels.xml:1804(para) C/glabels.xml:1849(para) C/glabels.xml:2015(para)
-msgid "radius"
-msgstr "radius"
+#: C/customize.page:42(gui)
+msgid "Points"
+msgstr "Punkte"
+
+#: C/customize.page:43(p)
+msgid "Use points (1 point = 1/72 in = 0.352778 mm)."
+msgstr "Punkte verwenden (1 Punkt = 1/72 Zoll = 0.352778 mm)."
+
+#: C/customize.page:46(gui)
+msgid "Inches"
+msgstr "Zoll"
+
+#: C/customize.page:47(p)
+msgid "Use Inches."
+msgstr "Zoll verwenden."
+
+#: C/customize.page:50(gui)
+msgid "Millimeters"
+msgstr "Millimeter"
+
+#: C/customize.page:51(p)
+msgid "Use Millimeters."
+msgstr "Millimeter verwenden."
 
-#: C/glabels.xml:1805(para)
-msgid "Radius (1/2 diameter) of label"
-msgstr "Radius (halber Durchmesser) des Etiketts"
+#: C/customize.page:54(p)
+msgid "Default: <gui>Inches</gui>."
+msgstr "Standard: <gui>Zoll</gui>."
 
-#: C/glabels.xml:1808(para) C/glabels.xml:1871(para)
-msgid "waste"
-msgstr "waste"
+#: C/customize.page:58(title)
+msgid "Default page size"
+msgstr "Vorgegebene Seitengröße"
 
-#: C/glabels.xml:1810(para) C/glabels.xml:1873(para)
+#: C/customize.page:59(p)
 msgid ""
-"Amount of waste (over-print) to allow. This is useful for minimizing "
-"alignment problems when using non-white backgrounds (e.g. images)."
+"Use this radio button group to specify your prefered page size. This will "
+"make it quicker for you to locate media types when creating a new label or "
+"card."
 msgstr ""
-"Erlaubte Breite des Überdruckens. Dies minimiert Ausrichtungsprobleme auf "
-"anderen als weißen Hintergründen (z.B. Bilder)."
+"Verwenden Sie diese Radioknöpfe zur Auswahl Ihrer bevorzugten Papiergröße. "
+"Dadurch lassen sich beim Erstellen neuer Etiketten oder Visitenkarten die "
+"entsprechenden Papiertypen schneller finden."
 
-#: C/glabels.xml:1822(title)
-msgid "Label-cd Node"
-msgstr "Knoten »Label-cd«"
+#: C/customize.page:64(gui)
+msgid "US Letter"
+msgstr "US-Letter"
 
-#: C/glabels.xml:1824(para)
-msgid ""
-"A <emphasis>Label-cd</emphasis> node describes the dimensions of a CD, DVD, "
-"or business card CD."
-msgstr ""
-"Ein <emphasis>Label-cd</emphasis>-Knoten beschreibt die Abmessungen einer CD, "
-"DVD oder Visitenkarten-CD."
+#: C/customize.page:65(p)
+msgid "Most of your media will be of the US Letter page size (8.5 x 11 inches)."
+msgstr "Die meisten Ihrer Medien haben das US-Letter-Format (8.5 x 11 inches)."
 
-#: C/glabels.xml:1850(para)
-msgid "Outer radius of label"
-msgstr "Äußerer Radius des Etiketts"
+#: C/customize.page:68(gui)
+msgid "ISO A4"
+msgstr "ISO A4"
 
-#: C/glabels.xml:1853(para)
-msgid "hole"
-msgstr "hole"
+#: C/customize.page:69(p)
+msgid "Most of your media will be of the ISO A4 page size (210 x 297 mm)."
+msgstr "Die meisten Ihrer Medien haben das ISO-A4-Format (210 x 297 mm)."
 
-#: C/glabels.xml:1854(para)
-msgid "Radius of concentric hole"
-msgstr "Radius des Mittellochs"
+#: C/customize.page:72(p)
+msgid "Default: <gui>US Letter</gui>."
+msgstr "Standard: <gui>US-Letter</gui>."
 
-#: C/glabels.xml:1859(para)
+#: C/customize.page:77(title)
+msgid "Object Defaults"
+msgstr "Objekt-Vorgaben"
+
+#: C/customize.page:80(title) C/createnew.page:39(title)
+msgid "Text"
+msgstr "Text"
+
+#: C/customize.page:81(p)
 msgid ""
-"If present, the label is clipped to the given width. (Useful for \"business "
-"card CDs\")."
+"Use these controls to set the default properties of new text objects. These "
+"properties are:"
 msgstr ""
-"Falls vorhanden, wird das Etikett auf die angegebene Größe begrenzt (nützlich "
-"für »Visitenkarten-CDs«)"
+"Verwenden Sie diese Einstellmöglichkeiten, um die Standardeigenschaften neuer "
+"Textobjekte festzulegen. Diese Eigenschaften sind:"
+
+#: C/customize.page:85(gui)
+msgid "Font"
+msgstr "Schrift"
 
-#: C/glabels.xml:1866(para)
+#: C/customize.page:86(p)
 msgid ""
-"If present, the label is clipped to the given height. (Useful for \"business "
-"card CDs\")."
+"These controls are used to select font family and font size, and whether the "
+"font should bold or in italics."
 msgstr ""
-"Falls vorhanden, wird das Etikett auf die angegebene Höhe begrenzt (nützlich "
-"für »Visitenkarten-CDs«)"
+"Verwenden Sie diese Einstellmöglichkeiten, um die Schriftfamilie und -größe "
+"festzulegen, sowie um anzugeben, ob die Schrift fett oder kursiv dargestellt "
+"werden soll."
 
-#: C/glabels.xml:1884(title)
-msgid "CD Label Parameters"
-msgstr "CD-Label-Parameter"
+#: C/customize.page:90(gui) C/customize.page:110(gui) C/customize.page:122(gui)
+msgid "Color"
+msgstr "Farbe"
 
-#: C/glabels.xml:1898(title)
-msgid "Markup-margin Node"
-msgstr "Knoten »Markup-margin«"
+#: C/customize.page:91(p)
+msgid "This control selects the default text color."
+msgstr "Diese Einstellung wählt die Standard-Textfarbe aus."
 
-#: C/glabels.xml:1900(para)
-msgid ""
-"A <emphasis>Markup-margin</emphasis> describes a margin along all edges of a "
-"label."
-msgstr ""
-"Ein <emphasis>Markup-margin</emphasis>-Knoten beschreibt die Ränder entlang "
-"der Seiten eines Etiketts."
+#: C/customize.page:94(gui)
+msgid "Alignment"
+msgstr "Ausrichtung"
 
-#: C/glabels.xml:1921(para)
+#: C/customize.page:95(p)
 msgid ""
-"Size of the margin. I.e. the distance of the margin line from the edge of the "
-"card/label."
+"These controls are used to select the default text alignment (left, center or "
+"right)."
 msgstr ""
-"Randbreite. Die Breite des Bereichs zwischen der Randlinie und dem Rand des "
-"Etiketts/der Karte."
+"Mit diesen Einstellungen wählen Sie die vorgegebene Textausrichtung (links, "
+"mittig oder rechts)."
 
-#: C/glabels.xml:1932(title)
-msgid "Markup-line Node"
-msgstr "Knoten »Markup-line«"
+#: C/customize.page:101(title) C/createnew.page:56(title)
+msgid "Line"
+msgstr "Linie"
 
-#: C/glabels.xml:1934(para)
-msgid "A <emphasis>Markup-line</emphasis> describes a markup line."
+#: C/customize.page:102(p)
+msgid ""
+"Use these controls to set the default properties of lines and outlines of new "
+"objects. These properties are:"
 msgstr ""
-"Ein <emphasis>Markup-line</emphasis>-Knoten beschreibt eine Markierungslinie."
-
-#: C/glabels.xml:1952(para) C/glabels.xml:2046(para)
-msgid "x1"
-msgstr "x1"
+"Verwenden sie diese Einstellmöglichkeiten, um die Standardeigenschaften von "
+"Linien und Begrenzungen neuer Objekte festzulegen. Diese Eigenschaften sind:"
 
-#: C/glabels.xml:1954(para)
-msgid "x coordinate of 1st endpoint of the line segment."
-msgstr "x-Koordinate des Anfangspunkts des Linienabschnitts."
+#: C/customize.page:106(gui)
+msgid "Width"
+msgstr "Breite"
 
-#: C/glabels.xml:1958(para) C/glabels.xml:2052(para)
-msgid "y1"
-msgstr "y1"
+#: C/customize.page:107(p)
+msgid "This control selects the default line width."
+msgstr "Diese Einstellung wählt die Standard-Linienbreite aus."
 
-#: C/glabels.xml:1960(para)
-msgid "y coordinate of 1st endpoint of the line segment."
-msgstr "y-Koordinate des Anfangspunkts des Linienabschnitts."
+#: C/customize.page:111(p)
+msgid "This control selects the default line color."
+msgstr "Diese Einstellung wählt die Standard-Linienfarbe aus."
 
-#: C/glabels.xml:1964(para)
-msgid "x2"
-msgstr "x2"
+#: C/customize.page:117(title)
+msgid "Fill"
+msgstr "Füllen"
 
-#: C/glabels.xml:1966(para)
-msgid "x coordinate of 2nd endpoint of the line segment."
-msgstr "x-Koordinate des Endpunkts des Linienabschnitts."
+#: C/customize.page:118(p)
+msgid ""
+"Use this control to set the default fill property of new objects. This "
+"property is:"
+msgstr ""
+"Verwenden Sie diese Einstellmöglichkeiten zum Angeben der "
+"Füllungseigenschaften eines neuen Objekts. Diese Eigenschaften sind:"
 
-#: C/glabels.xml:1970(para)
-msgid "y2"
-msgstr "y2"
+#: C/customize.page:123(p)
+msgid "This control selects the default fill color."
+msgstr "Diese Einstellung wählt die Standard-Füllfarbe aus."
 
-#: C/glabels.xml:1972(para)
-msgid "y coordinate of 2nd endpoint of the line segment."
-msgstr "y-Koordinate des Endpunkts des Linienabschnitts."
+#: C/createnew.page:9(desc)
+msgid "Create new objects within your document."
+msgstr "Erstellen neuer Objekte in Ihrem Dokument."
 
-#: C/glabels.xml:1982(title)
-msgid "Markup-circle Node"
-msgstr "Knoten »Markup-circle«"
+#: C/createnew.page:25(title)
+msgid "To create new objects"
+msgstr "Erstellen neuer Objekte"
 
-#: C/glabels.xml:1984(para)
-msgid "A <emphasis>Markup-circle</emphasis> describes a markup circle."
+#: C/createnew.page:27(p)
+msgid ""
+"Objects are created by choosing the appropriate selection under the "
+"<guiseq><gui>Objects</gui><gui>Create Object</gui></guiseq> submenu or the "
+"<gui>Drawing Toolbar</gui>. This will place the display area into object "
+"creation mode as indicated by its cursor. To return to the default object "
+"selection mode without creating an object, choose <guiseq><gui>Objects</"
+"gui><gui>Select Mode</gui></guiseq>. This will return the display area's "
+"cursor to the default selection arrow."
 msgstr ""
-"Ein <emphasis>Markup-circle</emphasis>-Knoten beschreibt einen "
-"Markierungskreis."
-
-#: C/glabels.xml:2003(para) C/glabels.xml:2119(para)
-msgid "x0"
-msgstr "x0"
+"Objekte können ausgewählt werden, indem Sie das entsprechende Objekt in "
+"<guiseq><gui>Objekte</gui><gui>Erzeugen</gui></guiseq> auswählen, oder über "
+"die <gui>Zeichenwerkzeugleiste</gui>. Dadurch wird der Anzeigebereich in den "
+"Objekterzeugungsmodus versetzt, was am Mauszeiger erkennbar ist. Um zum "
+"vorgegebenen Objektauswahlmodus zurückzukehren, ohne ein Objekt zu erzeugen, "
+"wählen Sie <guiseq><gui>Objekte</gui><gui>Auswahlmodus</gui></guiseq>. "
+"Dadurch wird der Mauszeiger im Anzeigebereich wieder in den vorgegebenen "
+"Auswahlzeiger geändert."
+
+#: C/createnew.page:35(p)
+msgid "The following describes the object creation mode for each object type:"
+msgstr ""
+"Nachfolgend wird der Modus zur Erstellung der Objekte für jeden Objekttyp "
+"beschrieben:"
 
-#: C/glabels.xml:2005(para)
-msgid "x coordinate of circle origin (center)."
-msgstr "x-Koordinate des Kreismittelpunkts."
+#: C/createnew.page:40(p)
+msgid ""
+"Click the desired location of the upper left corner of the text object. New "
+"text objects are initialized with the string \"Text.\" To change this text, "
+"or other properties, see <link xref=\"editprop\"/>."
+msgstr ""
+"Klicken Sie auf die gewünschte Stelle in der linken oberen Ecke des "
+"Textobjekts. Neue Textobjekte erhalten anfänglich den Inhalt »Text«. Wie Sie "
+"diesen Text oder andere Eigenschaften ändern können, finden Sie in <link xref="
+"\"editprop\"/>."
 
-#: C/glabels.xml:2009(para) C/glabels.xml:2126(para)
-msgid "y0"
-msgstr "y0"
+#: C/createnew.page:47(title)
+msgid "Box"
+msgstr "Rechteck"
 
-#: C/glabels.xml:2011(para)
-msgid "y coordinate of circle origin (center)."
-msgstr "y-Koordinate des Kreismittelpunkts."
+#: C/createnew.page:48(p)
+msgid ""
+"Click the desired location of the upper left corner of the box object and "
+"drag to the desired location of the lower right corner. If you simply click "
+"in a single location, a square box will be created. To change properties of "
+"the box object, see <link xref=\"editprop\"/>."
+msgstr ""
+"Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des "
+"Rechteckobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie "
+"einfach auf eine Stelle klicken, wird ein quadratisches Objekt erzeugt. Wie "
+"Sie die Eigenschaften des Rechteckobjekts ändern können, finden Sie in <link "
+"xref=\"editprop\"/>."
 
-#: C/glabels.xml:2016(para)
-msgid "Radius of circle."
-msgstr "Radius des Kreises."
+#: C/createnew.page:57(p)
+msgid ""
+"Click the desired location of one end of the line object and drag to the "
+"desired location of the other end. If you simply click in a single location, "
+"a diagonal line will be created. To change properties of the line object, see "
+"<link xref=\"editprop\"/>."
+msgstr ""
+"Klicken Sie auf die gewünschte Stelle für das Ende des Linienobjekts und "
+"ziehen Sie zur gewünschten Stelle des anderen Endes. Wenn Sie einfach auf "
+"eine Stelle klicken, wird eine diagonale Linie erzeugt. Wie Sie die "
+"Eigenschaften des Linienobjekts ändern können, finden Sie in <link xref="
+"\"editprop\"/>."
 
-#: C/glabels.xml:2025(title)
-msgid "Markup-rect Node"
-msgstr "Knoten »Markup-rect«"
+#: C/createnew.page:65(title)
+msgid "Ellipse"
+msgstr "Ellipse"
 
-#: C/glabels.xml:2027(para)
-msgid "A <emphasis>Markup-rect</emphasis> describes a markup rectangle."
+#: C/createnew.page:66(p)
+msgid ""
+"Click the desired location of the upper left corner of the ellipse object and "
+"drag to the desired location of the lower right corner. If you simply click "
+"in a single location, a circle will be created. To change properties of the "
+"ellipse object, see <link xref=\"editprop\"/>."
 msgstr ""
-"Ein <emphasis>Markup-rect</emphasis>-Knoten beschreibt ein "
-"Markierungsrechteck."
+"Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des "
+"Ellipsenobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie "
+"einfach auf eine Stelle klicken, wird ein Kreis erzeugt. Wie Sie die "
+"Eigenschaften des Ellipsenobjekts ändern können, finden Sie in <link xref="
+"\"editprop\"/>."
 
-#: C/glabels.xml:2048(para)
-msgid "x coordinate of upper left corner of rectangle."
-msgstr "x-Koordinate der oberen linken Ecke des Rechtecks."
+#: C/createnew.page:74(title)
+msgid "Image"
+msgstr "Image"
 
-#: C/glabels.xml:2054(para)
-msgid "y coordinate of upper left corner of rectangle."
-msgstr "y-Koordinate der oberen linken Ecke des Rechtecks."
+#: C/createnew.page:75(p)
+msgid ""
+"Click the desired location of the upper left corner of the image object and "
+"drag to the desired location of the lower right corner. If you simply click "
+"in a single location, a square will be created. New image objects are "
+"initialized with a simple checkerboard image. To change this image, or other "
+"properties of the image object, see <link xref=\"editprop\"/>."
+msgstr ""
+"Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des "
+"Bildobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie "
+"einfach auf eine Stelle klicken, wird ein quadratisches Objekt erzeugt. Neue "
+"Bildobjekte erhalten anfänglich ein Schachbrettmuster. Wie Sie dies oder "
+"andere Eigenschaften des Bildobjekts ändern können, finden Sie in <link xref="
+"\"editprop\"/>."
 
-#: C/glabels.xml:2058(para)
-msgid "w"
-msgstr "w"
+#: C/createnew.page:85(title)
+msgid "Barcode"
+msgstr "Strichcode"
 
-#: C/glabels.xml:2060(para)
-msgid "Width of rectangle."
-msgstr "Breite des Rechtecks."
+#: C/createnew.page:86(p)
+msgid ""
+"Click the desired location of the upper left corner of the barcode object. "
+"New barcode objects are initialized to a POSTNET barcode with representative "
+"data. To change data and properties of the barcode object, see <link xref="
+"\"editprop\"/>."
+msgstr ""
+"Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des "
+"Strichcodeobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Neue "
+"Objekte erhalten anfänglich einen POSTNET-Strichcode mit Beispieldaten. Wie "
+"Sie die Eigenschaften des Strichcodeobjekts ändern können, finden Sie in "
+"<link xref=\"editprop\"/>."
 
-#: C/glabels.xml:2064(para)
-msgid "h"
-msgstr "h"
+#: C/basicusage.page:9(desc)
+msgid "Handling files and quit the application."
+msgstr "Umgang mit Dateien und Beenden der Anwendung."
 
-#: C/glabels.xml:2066(para)
-msgid "Height of rectangle."
-msgstr "Höhe des Rechtecks."
+#: C/basicusage.page:25(title)
+msgid "Basic usage"
+msgstr "Grundlegende Bedienung"
 
-#: C/glabels.xml:2070(para)
-msgid "r"
-msgstr "r"
+#: C/basicusage.page:28(title)
+msgid "To open a file"
+msgstr "Öffnen einer Datei"
 
-#: C/glabels.xml:2071(para)
-msgid "Radius of rounded corners of rectangle."
-msgstr "Radius der abgerundeten Ecken des Rechtecks."
+#: C/basicusage.page:30(p)
+msgid ""
+"To open a file, choose <guiseq><gui>File</gui><gui>Open</gui></guiseq> to "
+"display the <gui>Open File</gui> dialog. Select the file that you want to "
+"open, then click <gui>OK</gui>. The file is displayed in the display area of "
+"the <app>gLabels</app> window."
+msgstr ""
+"Um eine Datei zu öffnen, wählen Sie <guiseq><gui>Datei</gui><gui>Öffnen</"
+"gui></guiseq>, um den Dialog <gui>Datei öffnen</gui> anzuzeigen. Wählen Sie "
+"die gewünschte Datei aus und klicken Sie dann auf <gui>Öffnen</gui>. Die "
+"Datei wird im Anzeigebereich des <app>gLabels</app>-Fensters geöffnet."
 
-#: C/glabels.xml:2080(title)
-msgid "Layout Node"
-msgstr "Knoten »Layout«"
+#: C/basicusage.page:37(p)
+msgid ""
+"You can also open multiple files in <app>gLabels</app>. The application "
+"creates a separate application window for each open file."
+msgstr ""
+"Sie können in <app>gLabels</app> auch mehrere Dateien öffnen. Die Anwendung "
+"erzeugt ein separates Fenster für jede geöffnete Datei."
 
-#: C/glabels.xml:2082(para)
+#: C/basicusage.page:41(p)
 msgid ""
-"A label node may contain multiple <emphasis>Layout</emphasis> children. If "
-"labels are arranged in a simple grid pattern, only one layout is needed. "
-"However, if labels are arranged in multiple grids, such as a running bond "
-"pattern, multiple <emphasis>layout</emphasis> tags can be used. Note: a "
-"single label can always be treated as a grid of one."
+"The application records the paths and filenames of the most recent files that "
+"you have edited and displays the files as menu items on the "
+"<guiseq><gui>File</gui><gui>Recent Files</gui></guiseq> menu."
 msgstr ""
-"Ein Label-Knoten kann mehrere <emphasis>Layout</emphasis>-Unterknoten "
-"enthalten. Wenn die Etiketten in einem einfachen rechteckigen Raster "
-"angeordnet sind, dann wird nur ein Layout benötigt. Falls die Etiketten "
-"jedoch in komplizierteren Rasteranordnungen vorliegen, können mehrere "
-"<emphasis>Layout</emphasis>-Unterknoten verwendet werden. Beachten Sie, dass "
-"ein einzelnes Etikett immer auch als ein Raster aus Etiketten betrachtet "
-"werden kann."
+"Die Anwendung speichert die Pfade und Dateinamen der von Ihnen zuletzt "
+"bearbeiteten Dateien. Diese Dateien werden als Einträge im Menü "
+"<guiseq><gui>Datei</gui><guisubmenu>Zuletzt benutzt</guisubmenu></guiseq> "
+"angezeigt."
 
-#: C/glabels.xml:2105(para)
-msgid "nx"
-msgstr "nx"
+#: C/basicusage.page:48(title)
+msgid "To close a file"
+msgstr "Schließen einer Datei"
 
-#: C/glabels.xml:2107(para)
-msgid "Number of labels/cards across in the grid (horizontal)"
-msgstr "Anzahl der Etiketten/Karten im Raster in horizontaler Richtung"
+#: C/basicusage.page:50(p)
+msgid ""
+"To close the current document, choose <guiseq><gui>File</gui><gui>Close</"
+"gui></guiseq> to close the application window. If the current document is "
+"modified, a confirmation dialog will be presented, allowing you to save the "
+"document or cancel the command. If the window being closed is the only open "
+"window, <app>gLabels</app> will exit."
+msgstr ""
+"Um das aktuelle Dokument zu schließen, wählen Sie <guiseq><gui>Datei</"
+"gui><gui>Schließen</gui></guiseq>, um das Anwendungsfenster zu schließen. "
+"Falls das aktuelle Dokument bearbeitet wurde, wird ein Bestätigungsdialog "
+"geöffnet, in welchem Sie das Dokument speichern oder den Vorgang abbrechen "
+"können. Falls das zu schließende Fenster das einzige offene Fenster ist, wird "
+"<app>gLabels</app> dadurch beendet."
 
-#: C/glabels.xml:2112(para)
-msgid "ny"
-msgstr "ny"
+#: C/basicusage.page:60(title)
+msgid "To save a file"
+msgstr "Speichern einer Datei"
 
-#: C/glabels.xml:2114(para)
-msgid "Number of labels/cards up and down in the grid (vertical)"
-msgstr "Anzahl der Etiketten/Karten im Raster in vertikaler Richtung"
+#: C/basicusage.page:62(p)
+msgid "You can save files in the following ways:"
+msgstr "Sie können Dateien auf folgende Arten speichern:"
 
-#: C/glabels.xml:2121(para)
+#: C/basicusage.page:66(p)
 msgid ""
-"Distance from left edge of sheet to the left edge of the left column of cards/"
-"labels in the layout."
+"To save changes to an existing file, choose <guiseq><gui>File</gui><gui>Save</"
+"gui></guiseq>."
 msgstr ""
-"Abstand von linken Rand des Papiers zum linken Rand der linken Reihe der "
-"Karten/Etiketten im Layout."
+"Um die Änderungen in der bereits vorhandenen Datei zu speichern, wählen Sie "
+"<guiseq><gui>Datei</gui><gui>Speichern</gui></guiseq>."
 
-#: C/glabels.xml:2128(para)
+#: C/basicusage.page:73(p)
 msgid ""
-"Distance from the top edge of sheet to the top edge of the top row of labels/"
-"cards in the layout."
+"To save a new file or to save an existing file under a new filename, choose "
+"<guiseq><gui>File</gui><gui>Save As</gui></guiseq>. Enter a name for the file "
+"in the <gui>Save As</gui> dialog box, then click <gui>OK</gui>."
 msgstr ""
-"Abstand von oberen Rand des Papiers zum oberen Rand der oberen Reihe der "
-"Karten/Etiketten im Layout."
-
-#: C/glabels.xml:2133(para)
-msgid "dx"
-msgstr "dx"
-
-#: C/glabels.xml:2134(para)
-msgid "Horizontal pitch of grid."
-msgstr "Horizontaler Rasterabstand des Zeichengitters."
-
-#: C/glabels.xml:2137(para)
-msgid "dy"
-msgstr "dy"
-
-#: C/glabels.xml:2138(para)
-msgid "Vertical pitch of grid."
-msgstr "Vertikaler Rasterabstand des Zeichengitters."
-
-#: C/glabels.xml:2146(title)
-msgid "Layout Parameters"
-msgstr "Layout-Parameter"
+"Um eine neue Datei oder eine bestehende Datei unter einem neuen Dateinamen zu "
+"speichern, wählen Sie <guiseq><gui>Datei</gui><gui>Speichern unter</gui></"
+"guiseq>. Geben Sie einen Namen für die Datei im Dialogfeld <gui>Speichern "
+"unter</gui> ein und klicken Sie anschließend auf <gui>OK</gui>. "
 
-#: C/glabels.xml:2160(title)
-msgid "Alias Node"
-msgstr "Knoten »Alias«"
+#: C/basicusage.page:84(title)
+msgid "To quit <app>gLabels</app>"
+msgstr "<app>gLabels</app> beenden"
 
-#: C/glabels.xml:2162(para)
+#: C/basicusage.page:86(p)
 msgid ""
-"An <emphasis>Alias</emphasis> node provides the name of a product with the "
-"same size and layout characteristics as the parent template."
+"To quit <app>gLabels</app>, choose <guiseq><gui>File</gui><gui>Quit</gui></"
+"guiseq>. This is equivalent to closing all open windows. See <link xref="
+"\"basicusage#closefile\"/>."
 msgstr ""
-"Ein <emphasis>Alias</emphasis>-Knoten beschreibt den Namen eines Produkts mit "
-"der gleichen Größe und dem gleichen Layout einer anderen Vorlage."
-
-#: C/glabels.xml:2184(para)
-msgid "The brand or manufacturer of the equivalent product."
-msgstr "Die Marke oder der Hersteller des entsprechenden Produkts."
+"Um <app>gLabels</app> zu beenden, wählen Sie <guiseq><gui>Datei</"
+"gui><gui>Beenden</gui></guiseq>. Dies entspricht dem Schließen aller "
+"geöffneten Fenster. Siehe <link xref=\"basicusage#closefile\"/>."
 
-#: C/glabels.xml:2190(para)
-msgid "The part number or name of the equivalent product."
-msgstr "Die Bestellnummer oder der Name des entsprechenden Produkts."
+#: C/about.page:9(desc)
+msgid "Information about <app>gLabels</app>."
+msgstr "Informationen über <app>gLabels</app>."
 
-#: C/glabels.xml:2226(title)
-msgid "About <application>gLabels</application>"
-msgstr "Info zu <application>gLabels</application>"
+#: C/about.page:25(title)
+msgid "About <app>gLabels</app>"
+msgstr "Info zu <app>gLabels</app>"
 
-#: C/glabels.xml:2227(para)
+#: C/about.page:27(p)
 msgid ""
-"<application>gLabels</application> was written by Jim Evins "
-"(<email>evins@snaught.com</email>). To find more information about "
-"<application>gLabels</application>, please visit the <ulink url=\"http://"
-"glabels.sourceforge.net\" type=\"http\">gLabels Web page</ulink>."
+"<app>gLabels</app> was written by <link href=\"mailto:evins@snaught.com\">Jim "
+"Evins</link>. To find more information about <app>gLabels</app>, please visit "
+"the <link href=\"http://glabels.org\" type=\"http\"><app>gLabels</app> Web "
+"page</link>."
 msgstr ""
-"<application>gLabels</application> wurde von Jim Evins (<email>evins@snaught."
-"com</email>) geschrieben. Weitere Informationen zu <application>gLabels</"
-"application> finden Sie auf der <ulink url=\"http://glabels.sourceforge.net\" "
-"type=\"http\">gLabels-Webseite</ulink>."
+"<app>gLabels</app> wurde von <link href=\"mailto:evins@snaught.com\">Jim "
+"Evins</link> geschrieben. Weitere Informationen zu <app>gLabels</app> finden "
+"Sie auf der <link href=\"http://glabels.org\" type=\"http\"><app>gLabels</"
+"app>-Webseite</link>."
 
-#: C/glabels.xml:2232(para)
+#: C/about.page:31(p)
 msgid ""
 "To report a bug or make a suggestion regarding this application or this "
-"manual, follow the directions at the <ulink url=\"http://glabels.sourceforge."
-"net/contact/\" type=\"http\"><application>gLabels</application> Contact Page</"
-"ulink>."
+"manual, follow the directions at the <link href=\"http://glabels.org/contact/"
+"\" type=\"http\"><app>gLabels</app> Contact Page</link>."
 msgstr ""
-"Um einen Fehler zu melden oder einen Vorschlag zu dieser Anwendung oder zu "
-"diesem Handbuch zu machen, folgen Sie den Anweisungen auf der <ulink url="
-"\"http://glabels.sourceforge.net/contact/\" type=\"http"
-"\"><application>gLabels</application>-Kontaktseite</ulink>."
+"Um einen Fehler zu melden oder einen Vorschlag zur Anwendung <app>gLabels</"
+"app> oder zu diesem Handbuch zu machen, folgen Sie den Anweisungen auf der "
+"<link href=\"http://glabels.org/contact/\" type=\"http\"><app>gLabels</app>-"
+"Kontaktseite</link>."
 
-#: C/glabels.xml:2238(para)
+#: C/about.page:37(p)
 msgid ""
 "This program is distributed under the terms of the GNU General Public license "
-"as published by the Free Software Foundation; either version 2 of the "
+"as published by the Free Software Foundation; either version 3 of the "
 "License, or (at your option) any later version. A copy of this license can be "
-"found at this <ulink url=\"ghelp:gpl\" type=\"help\">link</ulink>, or in the "
+"found at this <link href=\"ghelp:gpl\" type=\"help\">link</link>, or in the "
 "file COPYING included with the source code of this program."
 msgstr ""
 "Dieses Programm ist freie Software. Sie können es unter den Bedingungen der "
-"<citetitle>GNU General Public License</citetitle>, wie von der Free Software "
-"Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß "
-"Version 2 der Lizenz oder (nach Ihrer Option) jeder späteren Version. Eine "
-"Kopie der <citetitle>GNU General Public License</citetitle> finden Sie unter "
-"diesem <ulink url=\"ghelp:gpl\" type=\"help\">Link</ulink>, oder in der Datei "
-"COPYING, die im Quellcode dieses Programms enthalten ist."
+"GNU General Public License, wie von der Free Software Foundation "
+"veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 3 "
+"der Lizenz oder (nach Ihrer Option) jeder späteren Version. Eine Kopie der "
+"GNU General Public License finden Sie unter diesem <link href=\"ghelp:gpl\" "
+"type=\"help\">Link</link> oder in der Datei COPYING, die im Quellcode dieses "
+"Programms enthalten ist."
 
 #. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2
-#: C/glabels.xml:0(None)
+#: C/index.page:0(None)
 msgid "translator-credits"
-msgstr "Mario Blättermann <mariobl@gnome.org>, 2008, 2009"
+msgstr "Mario Blättermann <mariobl@gnome.org>, 2008, 2009, 2010"
+
+#~ msgid "@@image: 'figures/merge-ex3-1.png'; md5=THIS FILE DOESN'T EXIST"
+#~ msgstr "a"
+
+#~ msgid "@@image: 'figures/merge-ex3-2.png'; md5=THIS FILE DOESN'T EXIST"
+#~ msgstr "a"
+
+#~ msgid "@@image: 'figures/merge-ex3-4.png'; md5=THIS FILE DOESN'T EXIST"
+#~ msgstr "a"
 
 #~ msgid ""
-#~ "@@image: 'figures/merge-ex3-1.png'; md5=32fa57781b819430f19cd3cac6807622"
+#~ "@@image: 'figures/merge-ex2-4.png'; md5=67391b05421901a36d276736c1f664dd"
 #~ msgstr "translated"
 
 #~ msgid ""
-#~ "@@image: 'figures/merge-ex3-2.png'; md5=1d49763e4006ea07792d7d1b805002ce"
-#~ msgstr "translated"
+#~ "Before applying the merge source, we uncheck the first record since it is "
+#~ "only column headers from our original <app>gnumeric</app> spreadsheet and "
+#~ "would simply waste our first label. We also unselect the second record "
+#~ "which is empty (an artifact of our original spreadsheet). We could also "
+#~ "unselect any other records that we didn't want to print a label for."
+#~ msgstr ""
+#~ "Bevor Sie eine neue Einmischquelle anwenden, sollten Sie den ersten "
+#~ "Datensatz deaktivieren, weil dieser nur Spaltenköpfe aus der originalen "
+#~ "<app>gnumeric</app>-Tabelle enthält. Dadurch würde nur das erste Etikett "
+#~ "verschwendet. Weiterhin können Sie alle anderen Datensätze entfernen, die "
+#~ "Sie nicht für ein Etikett verwenden wollen."
 
 #~ msgid ""
-#~ "@@image: 'figures/merge-ex2-1.png'; md5=d48a99d65408584eae2603a0c07610da"
+#~ "@@image: 'figures/merge-ex1-1.png'; md5=731c7bcd2ff66d18300e87f1c3d9ec0e"
 #~ msgstr "translated"
 
 #~ msgid ""
-#~ "@@image: 'figures/merge-ex2-3.png'; md5=59a1dc5ff94656877a6220f73fe25b3c"
+#~ "@@image: 'figures/merge-ex1-2.png'; md5=27ed61afe77cda96c208fcda51990c89"
 #~ msgstr "translated"
 
 #~ msgid ""
-#~ "@@image: 'figures/merge-ex2-4.png'; md5=67391b05421901a36d276736c1f664dd"
+#~ "@@image: 'figures/merge-ex1-4.png'; md5=9cec0c679929cc904f81f435cd3bd060"
 #~ msgstr "translated"
+
+#~ msgid ""
+#~ "Predefined templates are defined by XML files located in either <file>/usr/"
+#~ "share/libglabels-3.0/templates/</file> or <file>/usr/local/share/"
+#~ "libglabels-3.0/templates/</file>, depending on where <app>glabels</app> "
+#~ "was installed. <app>Glabels</app> will also search for user defined "
+#~ "templates in the directory <file>${HOME}/.config/libglabels/templates/</"
+#~ "file>. User defined template files should be named with a <file>*."
+#~ "template</file> extension."
+#~ msgstr ""
+#~ "Vordefinierte Vorlagen stehen in Form von XML-Dateien entweder in <file>/"
+#~ "usr/share/libglabels-3.0/templates/</file> oder <file>/usr/local/share/"
+#~ "libglabels-3.0/templates/</file> bereit. Der genaue Ort ist davon "
+#~ "abhängig, wo <app>gLabels</app> installiert wurde. Außerdem sucht "
+#~ "<app>gLabels</app> im Ordner <file>${HOME}/.config/libglabels/templates/</"
+#~ "file> nach eigenen Vorlagen. Solche Vorlagendateien sollten die Endung "
+#~ "<file>*.template</file> haben."
+
+#~ msgid ""
+#~ "A <em><span translate=\"no\">Meta</span></em> node contains some "
+#~ "additional properties of that product. This node may appear more than "
+#~ "once, with a subnode each."
+#~ msgstr ""
+#~ "Ein <em><span translate=\"no\">Meta</span></em>-Knoten enthält eine Reihe "
+#~ "zusätzlicher Eigenschaften des jeweiligen Produkts. Dieser Knoten kann "
+#~ "mehrfach erscheinen, jeweils mit einem Unterknoten."
+
+#~ msgid ""
+#~ "The category which this product is assigned to. The value of this category "
+#~ "is used by the <app>gLabels'</app> template chooser to filter the view to "
+#~ "display only mailing labels, or labels in common and suppress any other "
+#~ "products which the user don't want to find."
+#~ msgstr ""
+#~ "Die Kategorie, der dieses Produkt zugeordnet ist. Der Wert dieser "
+#~ "Kategorie wird von der Vorlagenauswahl in <app>gLabels</app> verwendet, um "
+#~ "die Ansicht beispielsweise auf die Darstellung von Etiketten zu "
+#~ "beschränken oder anders ausgedrückt, Etiketten allgemein anzuzeigen und "
+#~ "die Anzeige anderer Produkte zu unterdrücken, an denen der Benutzer im "
+#~ "jeweiligen Fall nicht interessiert ist."
+
+#~ msgid ""
+#~ "One product can be assigned to several categories. You may choose from the "
+#~ "following categories:"
+#~ msgstr ""
+#~ " Dabei kann ein Produkt mehreren Kategorien angehören. Sie können aus "
+#~ "folgenden Kategorien wählen:"
diff --git a/help/de/editprop.page b/help/de/editprop.page
new file mode 100644 (file)
index 0000000..5e5e978
--- /dev/null
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="editprop" xml:lang="de">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Ändern der Eigenschaften von Objekten.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Bearbeiten der Objekteigenschaften</title>
+
+    <section id="glabels-object-properties">
+
+      <p>Die meisten Objekteigenschaften können Sie über die Objekteditor-Seitenleiste verändern, wie unten illustriert. Um den Objekteditor zu verwenden, muss zunächst ein einzelnes Objekt ausgewählt werden. Siehe <link xref="select"/>.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/object-editor-sidebar.png" mime="image/png" style="right">
+               <p>Angeben der Kopien</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Der Objekteditor bietet eine Auswahl der folgenden Reiter, abhängig vom Objekttyp:</p>
+
+      <section id="object-editor-text">
+       <title>Text-Reiter (Textobjekte)</title>
+
+       <p>Dieser Abschnitt bietet einen kleinen Editor zum Bearbeiten des Inhalts eines Textobjekts. Weiterhin ist ein Ausklappmenü mit den verfügbaren Schlüsseln zur Dokumentmischung enthalten, die in den Text eingefügt werden können.</p>
+
+      </section>
+
+      <section id="object-editor-image">
+       <title>Bild-Reiter (Bild-Objekte)</title>
+
+       <p>Dieser Abschnitt enthält einen Dateiwähler mit Vorschau zur Auswahl von Bilddateien. Der »Durchsuchen«-Knopf kann zum Suchen von Bilddateien benutzt werden. Alternativ können Sie einen Schlüssel zur Dokumenteinmischung anstelle eines Dateinamens angeben, der bei der Ausgabe des Dokuments ersetzt wird.</p>
+
+      </section>
+
+      <section id="object-editor-data">
+       <title>Daten-Reiter (Strichcode-Objekte)</title>
+
+       <p>Dieser Abschnitt enthält ein Textfeld zur Eingabe von Strichcode-Daten. Alternativ kann hier ein Schlüssel zur Dokumentmischung eingetragen werden, der beim Druck für die Bereitstellung der richtigen Daten sorgt.</p>
+
+      </section>
+
+      <section id="object-editor-style">
+       <title>Stil-Reiter (Text-Objekte)</title>
+
+       <p>Dieser Abschnitt enthält Einstellmöglichkeiten für die Texteigenschaften, wie Schriftfamilie, Schriftgröße, Schriftstärke, Schriftfarbe und Ausrichtung des Texts.</p>
+
+      </section>
+
+      <section id="object-editor-barcode">
+       <title>Stil-Reiter (Strichcode-Objekte)</title>
+
+       <p>Dieser Abschnitt enthält Einstellmöglichkeiten für die Eigenschaften des Strichcodes, wie Stil, Farbe, Drucken von Text oder Beinhalten einer Prüfsumme.</p>
+
+      </section>
+
+      <section id="object-editor-line">
+       <title>Linie-Reiter</title>
+
+       <p>Dieser Abschnitt enthält Einstellmöglichkeiten für die Auswahl von Eigenschaften von Linien und Begrenzungen, wie Linienbreite und -farbe.</p>
+
+      </section>
+
+      <section id="object-editor-fill">
+       <title>Füllung-Reiter</title>
+
+       <p>Dieser Abschnitt enthält Einstellmöglichkeiten für die Auswahl der Füllungseigenschaften von Rechteck- und Ellipsenobjekten. Derzeit ist nur die Einstellung der Füllungsfarbe möglich.</p>
+
+      </section>
+
+      <section id="object-editor-size">
+       <title>Reiter »Größe« (alle außer Linienobjekte)</title>
+
+       <p>Dieser Abschnitt enthält Einstellmöglichkeiten für die Höhe und die Breite eines Objekts. Mit einem Ankreuzfeld können Sie die Werte aneinander koppeln, so dass das Seitenverhältnis beim Ändern der Höhe oder Breite erhalten bleibt. Für Bildobjekte gibt es außerdem einen Knopf zum Zurücksetzen des Bildes auf Originalgröße, wobei eine Auflösung von 72 dpi angenommen wird.</p>
+
+      </section>
+
+      <section id="object-editor-size-line">
+       <title>Reiter »Größe« (Linienobjekte)</title>
+
+       <p>Dieser Abschnitt enthält Einstellmöglichkeiten für die Länge und den Winkel eines Linienobjekts.</p>
+
+      </section>
+
+      <section id="object-editor-position">
+       <title>Reiter »Position«</title>
+
+       <p>Dieser Abschnitt beschreibt die Möglichkeiten zur Positionierung eines Objekts.</p>
+
+      </section>
+
+
+      <section id="object-editor-shadow">
+       <title>Reiter »Schattierung« (alle außer Strichcodeobjekten)</title>
+
+       <p>Dieser Abschnitt enthält Einstellmöglichkeiten für die Schattierung eines Objekts.</p>
+
+      </section>
+
+
+    </section>
+
+<!-- ============= Other Manipulations of Objects ========= -->
+    <section id="glabels-object-manipulation"> 
+      <title>Andere Manipulationen von Objekten</title>
+
+      <p>Objekte können auf die folgenden Arten manipuliert werden.</p>
+
+      <section id="other-moving-resizing">
+       <title>Verschieben und Größenänderung von Objekten</title>
+
+       <p>Objekte können Sie durch einfaches Anklicken und Ziehen des ausgewählten Objekts zur neuen Position verschieben. Falls dieses Objekt Teil einer Mehrfachauswahl ist, werden durch Ziehen dieses Objektes alle Objekte verschoben, wobei deren Abstände untereinander erhalten bleiben. Falls kein Objekt ausgewählt ist, wird durch Anklicken eines Objekts eine neue Auswahl erzeugt, die dieses Objekt enthält. Siehe <link xref="select"/>.</p>
+
+       <p>Die Größe eines ausgewählten Objekts kann geändert werden, indem Sie auf einen der Größenänderungs-Anfasspunkte klicken und diesen ziehen, um die gewünschte Größe zu erreichen.</p>
+
+      </section>
+
+      <section id="other-stacking-order">
+       <title>Ändern der Reihenfolge der Ebenen</title>
+
+       <p>Die Stapelreihenfolge bezieht sich auf die relative Position in der Z-Achse von Objekten. Das beschreibt beim Überlappen von Objekten, welches der Objekte über den anderen erscheint. Per Vorgabe werden neue Objekte immer oberhalb von bereits vorhandenen Objekten platziert. Um diese Anordnung zu ändern, wählen Sie <guiseq><gui>Objekte</gui><gui>Anordnung</gui><gui>Ganz nach vorn</gui></guiseq>, um die Auswahl im Stapel nach oben zu verschieben, oder <guiseq><gui>Objekte</gui><gui>Anordnung</gui><gui>Ganz nach hinten</gui></guiseq>, um die Auswahl im Stapel nach unten zu verschieben. Diese Menüeinträge sind auch durch einen Klick mit der rechten Maustaste auf den Ansichtsbereich verfügbar, falls sich dort eine nicht leere Auswahl befindet.</p>
+
+      </section>
+
+      <section id="other-rotating-flipping">
+       <title>Drehen und Spiegeln von Objekten</title>
+
+       <p>Objekte können um 90 Grad in jeder Richtung gedreht oder horizontal oder vertikal gespiegelt werden. Wählen Sie hierzu den entsprechenden Eintrag im Menü <guiseq><gui>Objekte</gui><gui>Drehen/Spiegeln</gui></guiseq>. Diese Menüeinträge sind auch verfügbar, wenn Sie mit der rechten Maustaste in eine nicht leere Auswahl im Ansichtsbereich klicken.</p>
+
+         <note>
+         <p>Dieses Funktionsmerkmal kann nützlich sein, wenn Sie Einleger für CD-Boxen entwerfen. Für die Beschriftung der Schmalseite benötigen sie vertikal laufenden Text. Nachdem Sie das Textobjekt erstellt haben, wählen Sie <guiseq><gui>Objekte</gui><gui>Drehen/Spiegeln</gui></guiseq>, um das Textobjekt Ihren Erfordernissen entsprechend auszurichten.</p>
+         </note>
+
+      </section>
+
+      <section id="other-alignment">
+       <title>Ausrichten von Objekten</title>
+
+       <p>Objekte können horizontal oder vertikal zu einem anderen Objekt oder relativ zu einer Mittellinie des Etiketts angeordnet werden, indem Sie <guiseq><gui>Objekte</gui><gui>Horizontal ausrichten</gui></guiseq> oder <guiseq><gui>Objekte</gui><gui>Vertikal ausrichten</gui></guiseq> wählen. Diese Menüeinträge sind auch verfügbar, wenn Sie mit der rechten Maustaste in eine nicht leere Auswahl im Ansichtsbereich klicken.</p>
+
+      </section>
+
+      <section id="other-property-bar">
+       <title>Verwendung der Eigenschaftsleiste</title>
+
+       <p>Mit der Eigenschaftsleiste können Sie einige Eigenschaften von Objekten in einem Arbeitsgang ändern. Diese Eigenschaften umfassen Schriftfamilie, Schriftgröße, Schriftstärke, Textausrichtung, Textfarbe, Füllfarbe, Farbe von Linien oder Begrenzungen sowie Linienbreiten. Die Eigenschaftsleiste regelt auch die Vorgaben für diese Eigenschaften, wenn neue Objekte erzeugt werden.</p>
+
+      </section>
+
+
+
+    </section>
+
+</page>
diff --git a/help/de/figures/merge-ex3-1.png b/help/de/figures/merge-ex3-1.png
deleted file mode 100644 (file)
index c391048..0000000
Binary files a/help/de/figures/merge-ex3-1.png and /dev/null differ
diff --git a/help/de/figures/merge-ex3-2.png b/help/de/figures/merge-ex3-2.png
deleted file mode 100644 (file)
index a539cff..0000000
Binary files a/help/de/figures/merge-ex3-2.png and /dev/null differ
diff --git a/help/de/glabels.xml b/help/de/glabels.xml
deleted file mode 100644 (file)
index b38c3dd..0000000
+++ /dev/null
@@ -1,1776 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
-<!ENTITY legal SYSTEM "legal.xml">
-<!ENTITY appversion "2.2.6">
-<!ENTITY manrevision "2.2.6">
-<!ENTITY date "December 2007">
-<!ENTITY app "<application>gLabels</application>">
-<!-- Information about the entities
-       The legal.xml file contains legal information, there is no need to edit the file. 
-       Use the appversion entity to specify the version of the application.
-       Use the manrevision entity to specify the revision number of this manual.
-       Use the date entity to specify the release date of this manual.
-       Use the app entity to specify the name of the application. -->]>
-<!-- 
-      (Do not remove this comment block.)
-  Maintained by the GNOME Documentation Project
-  http://developer.gnome.org/projects/gdp
-  Template version: 2.0 beta
-  Template last modified Apr 11, 2002
--->
-<!-- =============Document Header ============================= -->
-<article id="index" lang="de">
-<!-- please do not change the id; for translations, change lang to -->
-<!-- appropriate code -->
-  <articleinfo> 
-    <title><application>gLabels</application>-Handbuch V2.2.6</title>       
-       <abstract role="description">
-       <para>Benutzerhandbuch für <application>gLabels</application>, einem Programm zum Erstellen von Etiketten und Visitenkarten</para>
-    </abstract>
-    <copyright> 
-      <year>2003-2009</year> 
-      <holder>Jim Evins</holder> 
-    </copyright><copyright><year>2008, 2009</year><holder>Mario Blättermann (mariobl@gnome.org)</holder></copyright>
-       <publisher> 
-               <publishername>Jim Evins</publishername> 
-       </publisher> 
-
-     <legalnotice id="legalnotice">
-       <para>Das vorliegende Dokument kann gemäß den Bedingungen der GNU Free Documentation License (GFDL), Version 1.1 oder jeder späteren, von der Free Software Foundation veröffentlichten Version ohne unveränderbare Abschnitte sowie ohne Texte auf dem vorderen und hinteren Buchdeckel kopiert, verteilt und/oder modifiziert werden. Eine Kopie der GFDL finden Sie unter diesem <ulink type="help" url="ghelp:fdl">Link</ulink> oder in der mit diesem Handbuch gelieferten Datei COPYING-DOCS.</para>
-         <para>Dieses Handbuch ist Teil einer Sammlung von GNOME-Handbüchern, die unter der GFDL veröffentlicht werden. Wenn Sie dieses Handbuch getrennt von der Sammlung weiterverbreiten möchten, können Sie das tun, indem Sie eine Kopie der Lizenz zum Handbuch hinzufügen, wie es in Abschnitt 6 der Lizenz beschrieben ist.</para>
-
-       <para>Viele der Namen, die von Unternehmen verwendet werden, um ihre Produkte und Dienstleistungen von anderen zu unterscheiden, sind eingetragene Warenzeichen. An den Stellen, an denen diese Namen in einer GNOME-Dokumentation erscheinen, werden die Namen in Großbuchstaben oder mit einem großen Anfangsbuchstaben geschrieben, wenn das GNOME-Dokumentationsprojekt auf diese Warenzeichen hingewiesen wird.</para>
-
-       <para>DAS DOKUMENT UND VERÄNDERTE FASSUNGEN DES DOKUMENTS WERDEN UNTER DEN BEDINGUNGEN DER GNU FREE DOCUMENTATION LICENSE ZUR VERFÜGUNG GESTELLT MIT DEM WEITERGEHENDEN VERSTÄNDNIS, DASS: <orderedlist>
-               <listitem>
-                 <para>DIESES DOKUMENT WIRD »WIE VORLIEGEND« GELIEFERT, OHNE GARANTIEN IRGENDEINER ART, SOWOHL AUSDRÜCKLICH GENANNTE ALS AUCH ANGEDEUTETE. DIES BEZIEHT SICH AUCH OHNE EINSCHRÄNKUNG AUF GARANTIEN, DASS DIESES DOKUMENT ODER VERÄNDERTE FASSUNGEN DIESES DOKUMENTS FREI VON HANDELSDEFEKTEN, FÜR EINEN BESTIMMTEN ZWECK GEEIGNET IST ODER DASS ES KEINE RECHTE DRITTER VERLETZT. DAS VOLLE RISIKO WAS QUALITÄT, GENAUIGKEIT UND LEISTUNG DES DOKUMENTS ODER VERÄNDERTE FASSUNGEN DES DOKUMENTS LIEGT BEI IHNEN. SOLLTE EIN DOKUMENT ODER EINE VERÄNDERTE FASSUNG DAVON FEHLER IRGENDEINER ART BEINHALTEN, TRAGEN SIE (NICHT DER URSPRUNGSAUTOR, DER AUTOR ODER EIN MITWIRKENDER) DIE KOSTEN FÜR NOTWENDIGE DIENSTLEISTUNGEN, REPARATUREN ODER FEHLERKORREKTUREN. DIESER HAFTUNGSAUSSCHLUSS IST EIN ESSENZIELLER TEIL DIESER LIZENZ. DIE VERWENDUNG EINES DOKUMENTS ODER EINER VERÄNDERTEN VERSION DES DOKUMENTS IST NICHT GESTATTET AUßER UNTER BEACHTUNG DIESES HAFTUNGSAUSSCHLUSSES UND</para>
-               </listitem>
-               <listitem>
-                 <para>UNTER KEINEN UMSTÄNDEN UND AUF BASIS KEINER RECHTSGRUNDLAGE, EGAL OB DURCH UNERLAUBTEN HANDLUNGEN (EINSCHLIEßLICH FAHRLÄSSIGKEIT), VERTRAG ODER ANDERWEITIG KANN DER AUTOR, URSPRUNGSAUTOR, EIN MITWIRKENDER ODER EIN VERTRIEBSPARTNER DIESES DOKUMENTS ODER EINER VERÄNDERTEN FASSUNG DES DOKUMENTS ODER EIN ZULIEFERER EINER DIESER PARTEIEN, HAFTBAR GEMACHT WERDEN FÜR DIREKTE, INDIREKTE, SPEZIELLE, VERSEHENTLICHE ODER FOLGESCHÄDEN JEGLICHER ART, EINSCHLIEßLICH UND OHNE EINSCHRÄNKUNGEN SCHÄDEN DURCH VERLUST VON KULANZ, ARBEITSAUSFALL, COMPUTERVERSAGEN ODER COMPUTERFEHLFUNKTIONEN ODER ALLE ANDEREN SCHÄDEN ODER VERLUSTE, DIE SICH AUS ODER IN VERBINDUNG MIT DER VERWENDUNG DES DOKUMENTS UND VERÄNDERTER FASSUNGEN DES DOKUMENTS ERGEBEN, AUCH WENN DIE OBEN GENANNTEN PARTEIEN ÜBER DIE MÖGLICHKEIT SOLCHER SCHÄDEN INFORMIERT WAREN.</para>
-               </listitem>
-         </orderedlist></para>
-  </legalnotice>
-
-
-   <!-- This file  contains link to license for the documentation (GNU FDL), and 
-        other legal stuff such as "NO WARRANTY" statement. Please do not change 
-       any of this. -->
-
-    <authorgroup> 
-      <author role="maintainer"> 
-               <firstname>Jim</firstname> 
-               <surname>Evins</surname> 
-      </author> 
-      
-<!-- This is appropriate place for other contributors: translators,
-     maintainers,  etc. Commented out by default.
-     
-      <othercredit role="translator">
-               <firstname>Latin</firstname> 
-               <surname>Translator 1</surname> 
-               <affiliation> 
-                       <orgname>Latin Translation Team</orgname> 
-                       <address> <email>translator@gnome.org</email> </address> 
-               </affiliation>
-               <contrib>Latin translation</contrib>
-      </othercredit>
--->
-    </authorgroup>
-
-
-<!-- According to GNU FDL, revision history is mandatory if you are -->
-<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
-<!-- Remember to remove the &manrevision; entity from the revision entries other
--->
-<!-- than the current revision. -->
-<!-- The revision numbering system for GNOME manuals is as follows: -->
-<!-- * the revision number consists of two components -->
-<!-- * the first component of the revision number reflects the release version of the GNOME desktop. -->
-<!-- * the second component of the revision number is a decimal unit that is incremented with each revision of the manual. -->
-<!-- For example, if the GNOME desktop release is V2.x, the first version of the manual that -->
-<!-- is written in that desktop timeframe is V2.0, the second version of the manual is V2.1, etc. -->
-<!-- When the desktop release version changes to V3.x, the revision number of the manual changes -->
-<!-- to V3.0, and so on. -->  
-    <revhistory>
-      <revision> 
-               <revnumber>gLabels-Handbuch V2.2.6</revnumber> 
-               <date>October 2009</date> 
-               <revdescription> 
-                       <para role="author">Mario Blättermann <email>mariobl@gnome.org</email></para>
-                       <para role="publisher">Jim Evins</para>
-               </revdescription> 
-      </revision> 
-      <revision> 
-               <revnumber>gLabels-Handbuch V2.2</revnumber> 
-               <date>Dezember 2007</date> 
-               <revdescription> 
-                       <para role="author">Jim Evins <email>evins@snaught.com</email></para>
-                       <para role="publisher">Jim Evins</para>
-               </revdescription> 
-      </revision> 
-    </revhistory> 
-
-    <releaseinfo>Dieses Handbuch beschreibt Version 2.2.6 von <application>gLabels</application>.</releaseinfo> 
-    <legalnotice> 
-      <title>Rückmeldungen</title> 
-      <para>Um einen Fehler zu melden oder einen Vorschlag zur Anwendung <application>gLabels</application> oder zu diesem Handbuch zu machen, folgen Sie den Anweisungen auf der <ulink url="http://glabels.sourceforge.net/contact/" type="http"><application>gLabels</application>-Kontaktseite</ulink>.</para>
-<!-- Translators may also add here feedback address for translations -->
-    </legalnotice> 
-  </articleinfo> 
-
-  <indexterm zone="index"> 
-    <primary>gLabels</primary> 
-  </indexterm> 
-  <indexterm zone="index"> 
-    <primary>glabels</primary> 
-  </indexterm>
-
-
-
-
-<!-- ============= Document Body ============================= -->
-<!-- ============= Introduction ============================== -->
-<!-- Use the Introduction section to give a brief overview of what
-     the application is and what it does. -->
-  <sect1 id="glabels-introduction"> 
-    <title>Einführung</title> 
-
-    <para>Die Anwendung <application>gLabels</application> ist ein ressourcenschonendes Programm zum Erstellen von Etiketten und Visitenkarten für die <systemitem>GNOME</systemitem>-Arbeitsumgebung. Es wurde für die verschiedensten mit Laser- oder Tintenstrahldruckern bedruckbaren (auch selbstklebenden) Etiketten sowie Visitenkarten entworfen, so wie Sie sie in den meisten Schreibwarengeschäften finden.</para>
-
-  </sect1>
-
-
-
-
-<!-- =========== Getting Started ============================== -->
-<!-- Use the Getting Started section to describe the steps required
-     to start the application and to describe the user interface components
-     of the application. If there is other information that it is important
-     for readers to know before they start using the application, you should
-     also include this information here. 
-     If the information about how to get started is very short, you can 
-     include it in the Introduction and omit this section. -->
-
-  <sect1 id="glabels-getting-started"> 
-    <title>Erste Schritte</title> 
-
-    <sect2 id="glabels-start">
-    <title><application>gLabels</application> starten</title>
-    <para>Sie können <application>gLabels</application> auf folgende Arten starten:</para> 
-    <variablelist>
-       <varlistentry>
-               <term>Menü <guimenu>Anwendungen</guimenu></term>
-               <listitem>
-               <para>Wählen Sie <menuchoice><guisubmenu>Büroanwendungen</guisubmenu><guimenuitem>gLabels</guimenuitem></menuchoice>.</para>
-               </listitem>
-       </varlistentry>
-       <varlistentry>
-               <term>Befehlszeile</term>
-               <listitem>
-               <para>Geben Sie <command>glabels</command> ein, und drücken Sie dann die <keycap>Eingabetaste</keycap>.</para>
-               </listitem>
-       </varlistentry>
-    </variablelist>
-    </sect2>
-
-    <sect2 id="glabels-when-start">
-    <title>Beim Start von <application>gLabels</application></title>
-    <para>Nach dem Start von <application>gLabels</application> erscheint folgendes Fenster:</para>
-
-    <!-- ==== Figure ==== -->
-      <figure id="mainwindow-fig"> 
-       <title><application>gLabels</application>-Startfenster</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/main-window-empty.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-    <!-- ==== End of Figure ==== -->
-
-    <!-- Include any descriptions of the GUI immediately after the screenshot of the main UI, -->
-    <!-- for example, the items on the menubar and on the toolbar. This section is optional. -->
-
-    <para>Das <application>gLabels</application>-Fenster enthält folgende Elemente:</para>
-      <variablelist>
-       <varlistentry>
-       <term>Menüleiste.</term>
-       <listitem>
-           <para>Die Menüs in der Menüleiste enthalten alle Befehle, die Sie zum Erstellen und Bearbeiten von Etiketten und Visitenkarten in <application>gLabels</application> benötigen.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Haupt-Werkzeugleiste.</term>
-       <listitem>
-           <para>Die Haupt-Werkzeugleiste enthält eine Auswahl der Befehle, die Sie über die Menüleiste in den Menüs »Datei« und »Bearbeiten« erreichen.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Zeichenwerkzeugleiste.</term>
-       <listitem>
-           <para>Die Zeichenwerkzeugleiste enthält eine Auswahl von Befehlen zum Bearbeiten des aktuellen <application>gLabels</application>-Dokuments.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Anzeigebereich.</term>
-       <listitem>
-           <para>Der Anzeigebereich ist die Zeichenfläche für <application>gLabels</application>.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Objekt-Seitenleiste.</term>
-       <listitem>
-           <para>Die Objekt-Seitenleiste stellt eine Schnittstelle zum Betrachten und Bearbeiten der Eigenschaften eines bestimmten Objekts zur Verfügung.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Eingenschaften-Werkzeugleiste.</term>
-       <listitem>
-           <para>Die Eigenschaften-Werkzeugleiste enthält eine Reihe von Werkzeugen zum Manipulieren der Eigenschaften ausgewählter Objekte sowie zum Setzen der Standardeigenschaften für neue Objekte.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Statusleiste.</term>
-       <listitem>
-           <para>In der Statusleiste werden Informationen über die aktuelle <application>gLabels</application>-Aktivität und Kontextinformationen über die Menüpunkte angezeigt.</para>
-       </listitem>
-       </varlistentry>
-       </variablelist>
-    </sect2>
-  </sect1>
-
-
-
-
-<!-- ================ Usage ================================ -->
-<!-- Use this section to describe how to use the application to perform the tasks for 
-  which the application is designed. -->
-  <sect1 id="glabels-usage"> 
-    <title>Benutzung</title> 
-
-<!-- ============= To create a new file ============================= -->
-    <sect2 id="glabels-open-new"> 
-      <title>Erstellen eines neuen Etiketts oder einer neuen Karte</title>
-
-      <para>Um ein neues Etikett oder eine neue Visitenkarte anzulegen, wählen Sie <menuchoice><guimenu>Datei</guimenu><guimenuitem>Neu</guimenuitem></menuchoice>, um den Dialog <guilabel>Neues Etikett oder neue Karte</guilabel> anzuzeigen. Wählen Sie den Medientyp und die Ausrichtung für das neue Dokument aus und klicken Sie anschließend auf <guibutton>OK</guibutton>. Ein neues Dokument erscheint im Anzeigebereich des <application>gLabels</application>-Fensters.</para>
-
-      <para>Falls Ihr spezieller Medientyp in diesem Dialog nicht angezeigt wird, siehe <xref linkend="glabels-create-template"/>.</para>
-
-    </sect2>
-
-<!-- ============= To Open a File ============================= -->
-    <sect2 id="glabels-open-file"> 
-      <title>Öffnen einer Datei</title>
-
-      <para>Um eine Datei zu öffnen, wählen Sie <menuchoice><guimenu>Datei</guimenu><guimenuitem>Öffnen</guimenuitem></menuchoice>, um den Dialog <guilabel>Datei öffnen</guilabel> anzuzeigen. Wählen Sie die gewünschte Datei aus und klicken Sie dann auf <guibutton>Öffnen</guibutton>. Die Datei wird im Anzeigebereich des <application>gLabels</application>-Fensters geöffnet.</para>
-
-      <para>Sie können in <application>gLabels</application> auch mehrere Dateien öffnen. Die Anwendung erzeugt ein separates Fenster für jede geöffnete Datei.</para>
-
-      <para>Die Anwendung speichert die Pfade und Dateinamen der von Ihnen zuletzt bearbeiteten Dateien. Diese Dateien werden als Einträge im Menü <menuchoice><guimenu>Datei</guimenu><guisubmenu>Zuletzt benutzt</guisubmenu></menuchoice> angezeigt.</para>
-
-    </sect2>
-
-<!-- ============= To Open Multiple Files from the Command Line ========= -->
-    <sect2 id="glabels-run-from-cmd-line"> 
-      <title>Öffnen mehrerer Dateien aus einer Befehlszeile</title>
-
-      <para>Sie können <application>gLabels</application> aus einer Befehlszeile starten und eine Datei oder mehrere Dateien öffnen. Um mehrere Dateien aus einer Befehlszeile zu öffnen, geben Sie den folgenden Befehl ein und drücken dann die <keycap>Eingabetaste</keycap>:</para>
-
-      <para><command>glabels <replaceable>Datei1.glabels Datei2.glabels Datei3.glabels</replaceable></command></para>
-
-      <para>Wenn die Anwendung startet, werden die von Ihnen angegebenen Dateien in separaten <application>gLabels</application>-Fenstern angezeigt.</para>
-
-    </sect2>
-
-<!-- ============= To Save a File ========= -->
-    <sect2 id="glabels-save-file"> 
-      <title>Speichern einer Datei</title>
-
-      <para>Sie können Dateien auf folgende Arten speichern:</para>
-
-      <itemizedlist> 
-       <listitem>
-
-         <para>Um die Änderungen in der bereits vorhandenen Datei zu speichern, wählen Sie <menuchoice><guimenu>Datei</guimenu><guimenuitem>Speichern</guimenuitem></menuchoice>.</para>
-
-       </listitem>
-       <listitem>
-
-         <para>Um eine neue Datei oder eine bestehende Datei unter einem neuen Dateinamen zu speichern, wählen Sie <menuchoice><guimenu>Datei</guimenu><guimenuitem>Speichern unter</guimenuitem></menuchoice>. Geben Sie einen Namen für die Datei im Dialogfeld <guilabel>Speichern unter</guilabel> ein und klicken Sie anschließend auf <guibutton>OK</guibutton>. </para>
-
-       </listitem>
-      </itemizedlist>
-
-    </sect2>
-
-<!-- ============= To Change Label Properties ========= -->
-    <sect2 id="glabels-label-properties"> 
-      <title>Ändern der Eigenschaften eines Etiketts</title>
-
-      <para>Um den Medientyp oder die Ausrichtung des Etiketts zu ändern, wählen Sie <menuchoice><guimenu>Datei</guimenu><guimenuitem>Eigenschaften</guimenuitem></menuchoice>, um den Dialog <guilabel>Etikett-Eigenschaften</guilabel> anzuzeigen. Wählen Sie den neuen Medientyp für das Dokument aus und klicken Sie anschließend auf <guibutton>OK</guibutton>.</para>
-
-    </sect2>
-
-<!-- ============= To create a custom template ======================= -->
-    <sect2 id="glabels-create-template"> 
-      <title>Erstellen einer benutzerdefinierten Vorlage</title>
-
-      <para>Um eine neue benutzerdefinierte Vorlage zu erstellen, wählen Sie <menuchoice><guimenu>Datei</guimenu><guimenuitem>Vorlagen-Designer …</guimenuitem></menuchoice>, um den <guilabel>Vorlagen-Designer</guilabel>-Dialog anzuzeigen. Dieser Dialog hilft Ihnen bei der Erstellung einer benutzerdefinierten Vorlage für die meisten Typen von Etiketten oder Visitenkarten, die Ihnen in Schreibwarengeschäften begegnen könnten.</para>
-
-      <para>Falls Sie dies bevorzugen, können Sie Ihre Vorlagen auch manuell erstellen. Weitere Informationen hierzu finden Sie in <xref linkend="glabels-manual-create-template"/>.</para>
-
-    </sect2>
-
-<!-- ============= To Close a File ========= -->
-    <sect2 id="glabels-close-file"> 
-      <title>Schließen einer Datei</title>
-
-      <para>Um das aktuelle Dokument zu schließen, wählen Sie <menuchoice><guimenu>Datei</guimenu><guimenuitem>Schließen</guimenuitem></menuchoice>, um das Anwendungsfenster zu schließen. Falls das aktuelle Dokument bearbeitet wurde, wird ein Bestätigungsdialog geöffnet, in welchem Sie das Dokument speichern oder den Vorgang abbrechen können. Falls das zu schließende Fenster das einzige offene Fenster ist, wird <application>gLabels</application> dadurch beendet.</para>
-
-    </sect2>
-
-<!-- ============= To Quit ========= -->
-    <sect2 id="glabels-quit"> 
-      <title><application>gLabels</application> beenden</title>
-
-      <para>Um <application>gLabels</application> zu beenden, wählen Sie <menuchoice><guimenu>Datei</guimenu><guimenuitem>Beenden</guimenuitem></menuchoice>. Dadurch werden alle offenen Fenster geschlossen. Siehe <xref linkend="glabels-close-file"/>.</para>
-
-    </sect2>
-
-<!-- ============= To Print Labels and Cards ========= -->
-    <sect2 id="glabels-print-file"> 
-      <title>Drucken von Etiketten oder Karten</title>
-
-      <para>Um Etiketten oder Visitenkarten zu drucken, wählen Sie <menuchoice><guimenu>Datei</guimenu><guimenuitem>Drucken</guimenuitem></menuchoice>, um den <guilabel>Drucken</guilabel>-Dialog anzuzeigen. Nachdem Sie die Druckoptionen ausgewählt haben, klicken Sie auf <guilabel>Drucken</guilabel>, um die Etiketten oder Visitenkarten zu drucken. Um zunächst eine Vorschau auf die Druckergebnisse zu erhalten, klicken Sie auf <guilabel>Druckvorschau</guilabel>.</para>
-
-      <para>Im Dialog <guilabel>Drucken</guilabel> können Sie die folgenden Optionen zum Drucken festlegen:</para>
-               
-      <sect3 id="print-dialog-job">
-       <title>Der Reiter »Etiketten« des Druckdialogs</title>
-
-       <variablelist>
-
-         <varlistentry>
-            <term><guilabel>Drucksteuerung (einfach)</guilabel></term>
-           <listitem> 
-
-             <para>Für einfache Etiketten oder Karten (keine Dokumentmischung) enthält der Reiter »Labels« die folgenden Einstellmöglichkeiten.</para>
-
-             <!-- ==== Figure ==== -->
-             <figure id="print-copies-fig"> 
-               <title>Angeben der Kopien</title> 
-               <screenshot> 
-                 <mediaobject> 
-                   <imageobject><imagedata fileref="figures/print-copies.png" format="PNG"/> 
-                   </imageobject>
-                 </mediaobject> 
-               </screenshot> 
-             </figure>
-             <!-- ==== End of Figure ==== -->
-
-             <para>Die Anzahl der Kopien können Sie wählen, indem Sie die Anzahl der vollständig zu druckenden Seiten oder eine Teilmenge von Etiketten auf einer einzelnen Seite auswählen.</para>
-
-             <para>Die verkleinerte Vorschau können Sie auch dazu verwenden, einen Teil der Etiketten grafisch auszuwählen, indem Sie auf das erste Etikett klicken und es auf das letzte Etikett ziehen.</para>
-
-           </listitem>
-         </varlistentry>
-
-         <varlistentry>
-            <term><guilabel>Drucksteuerung (Mischen)</guilabel></term>
-           <listitem> 
-
-             <para>Für Etiketten oder Karten unter Verwendung der Dokumentmischung enthält dieser Reiter die folgenden Einstellungen zur Mischung von Dokumenten anstelle der Festlegung der Kopien.</para>
-
-             <!-- ==== Figure ==== -->
-             <figure id="print-merge-fig"> 
-               <title>Steuerung der Einmischung von Dokumenten</title> 
-               <screenshot> 
-                 <mediaobject> 
-                   <imageobject><imagedata fileref="figures/print-merge.png" format="PNG"/> 
-                   </imageobject>
-                 </mediaobject> 
-               </screenshot> 
-             </figure>
-             <!-- ==== End of Figure ==== -->
-
-             <para>Die Gesamtzahl der gedruckten Etiketten oder Karten ergibt sich als Produkt aus der Anzahl der Datensätze in der Einmischquelle und der Anzahl der gewählten Kopien. Falls mehrere Kopien gewählt wurden, können diese entweder zusammengefasst werden (durch Gruppieren der Kopien des gleichen Datensatzes) oder nicht zusammengefasst (eine Kopie jedes Datensatzes wird immer vor der nächsten Kopie gedruckt).</para>
-
-             <para>Der Druck kann mit jedem beliebigen Etikett der ersten Seite begonnen werden. Dies können Sie im Einstellfeld <guilabel>Start bei Etikett</guilabel> auswählen.</para>
-
-             <para>In der verkleinerten Vorschau können Sie das erste Etikett grafisch auswählen, indem Sie das gewünschte Etikett anklicken.</para>
-
-           </listitem>
-         </varlistentry>
-
-         <varlistentry> <term><guilabel>Optionen</guilabel> </term> 
-           <listitem> 
-             <para>Die folgenden Optionen können ebenfalls gewählt werden.</para>
-             <itemizedlist>
-               <listitem>
-                 <para><guilabel>Begrenzungen drucken</guilabel></para>
-                 <para>Begrenzungen der Etiketten drucken. Diese Option ist nützlich, wenn Sie die Lage des Papiers im Drucker prüfen wollen.</para>
-               </listitem>
-               <listitem>
-                 <para><guilabel>Spiegelbildlich drucken</guilabel></para>
-                 <para>Druckt die Etiketten spiegelbildlich. Diese Option ist nützlich für das Drucken durchsichtiger Aufkleber, die von der Rückseite aus betrachtet werden (z.B. hinter Autoscheiben).</para>
-               </listitem>
-               <listitem>
-                 <para><guilabel>Schnitt</guilabel></para>
-                 <para>Druckt Schnittmarken entlang der Papierränder. Diese Option ist nützlich zum Drucken auf Papier, das erst nach dem Druck beschnitten werden soll. Diese Option funktioniert eventuell nicht mit allen Vorlagen.</para>
-               </listitem>
-             </itemizedlist>
-           </listitem>
-         </varlistentry>
-       </variablelist>
-      </sect3>
-               
-    </sect2>
-
-<!-- ============= To Create New Objects ========= -->
-    <sect2 id="glabels-new-objects"> 
-      <title>Erstellen neuer Objekte</title>
-
-      <para>Objekte können ausgewählt werden, indem Sie das entsprechende Objekt in <menuchoice><guimenu>Objekte</guimenu><guimenuitem>Erzeugen</guimenuitem></menuchoice> auswählen oder über die <guilabel>Zeichenwerkzeugleiste</guilabel>. Dadurch wird der Anzeigebereich in den Objekterzeugungsmodus versetzt, was am Mauszeiger erkennbar ist. Um zum vorgegebenen Objektauswahlmodus zurückzukehren, ohne ein Objekt zu erzeugen, wählen Sie <menuchoice><guimenu>Objekte</guimenu><guimenuitem>Auswahlmodus</guimenuitem></menuchoice>. Dadurch wird der Mauszeiger im Anzeigebereich wieder in den vorgegebenen Auswahlzeiger geändert.</para>
-
-      <para>Nachfolgend wird der Modus zur Erstellung der Objekte für jeden Objekttyp beschrieben:</para>
-
-      <variablelist>
-
-       <varlistentry>
-         <term>Text</term>
-         <listitem>
-           <para>Klicken Sie auf die gewünschte Stelle in der linken oberen Ecke des Textobjekts. Neue Textobjekte erhalten anfänglich den Inhalt »Text«. Wie Sie diesen Text oder andere Eigenschaften ändern können, finden Sie in <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Rechteck</term>
-         <listitem>
-           <para>Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des Rechteckobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie einfach auf eine Stelle klicken, wird ein quadratisches Objekt erzeugt. Wie Sie die Eigenschaften des Rechteckobjekts ändern können, finden Sie in <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Linie</term>
-         <listitem>
-           <para>Klicken Sie auf die gewünschte Stelle für das Ende des Linienobjekts und ziehen Sie zur gewünschten Stelle des anderen Endes. Wenn Sie einfach auf eine Stelle klicken, wird eine diagonale Linie erzeugt. Wie Sie die Eigenschaften des Linienobjekts ändern können, finden Sie in <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Ellipse</term>
-         <listitem>
-           <para>Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des Ellipsenobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie einfach auf eine Stelle klicken, wird ein Kreis erzeugt. Wie Sie die Eigenschaften des Ellipsenobjekts ändern können, finden Sie in <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Image</term>
-         <listitem>
-           <para>Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des Bildobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie einfach auf eine Stelle klicken, wird ein quadratisches Objekt erzeugt. Neue Bildobjekte erhalten anfänglich ein Schachbrettmuster. Wie Sie dies oder andere Eigenschaften des Bildobjekts ändern können, finden Sie in <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Strichcode</term>
-         <listitem>
-           <para>Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des Strichcodeobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Neue Objekte erhalten anfänglich einen POSTNET-Strichcode mit Beispieldaten. Wie Sie die Eigenschaften des Strichcodeobjekts ändern können, finden Sie in <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-
-
-    </sect2>
-
-<!-- ============= To Select Objects ========= -->
-    <sect2 id="glabels-select-objects"> 
-      <title>Auswählen von Objekten</title>
-
-      <para>Eine Voraussetzung zum Ausführen von Operationen auf Objekten ist die Auswahl individueller Objekte oder Gruppen von Objekten. Der Anzeigebereich muss sich im Objektauswahlmodus befinden, was durch einen pfeilförmigen Mauszeiger angezeigt wird. Der Objektauswahlmodus wird über den Menüeintrag <menuchoice><guimenu>Objekte</guimenu><guimenuitem>Auswahlmodus</guimenuitem></menuchoice> aktiviert oder über das entsprechende Objekt in der <guilabel>Zeichenwerkzeugleiste</guilabel>.</para>
-
-      <variablelist>
-
-       <varlistentry>
-         <term>Auswahl eines einzelnen Objekts</term>
-         <listitem>
-           <para>Ein einzelnes Objekt können Sie auswählen, indem Sie das gewünschte Objekt im Anzeigebereich anklicken. Nach dem Anklicken wird das Objekt durch Anfasspunkte zur Größenänderung hervorgehoben.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Auswahl mehrerer Objekte</term>
-         <listitem>
-           <para>Sie können mehrere Objekte auswählen, indem Sie zunächst das erste Objekt auswählen, wie oben beschrieben. Halten Sie dann bei der Auswahl weiterer Objekte die <keycap>Strg</keycap>-Taste gedrückt. Zusätzliche Objekte können Sie jederzeit zur Auswahl hinzufügen, wenn Sie wiederum die <keycap>Strg</keycap>-Taste gedrückt halten und die gewünschten Objekte auswählen. Alle Objekte lassen sich über den Menüeintrag <menuchoice><guimenu>Bearbeiten</guimenu><guimenuitem>Alle auswählen</guimenuitem></menuchoice> auswählen. Alle Objekte in einer zusammenhängenden Objektauswahl werden hervorgehoben dargestellt.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Bereichsauswahl</term>
-         <listitem>
-           <para>Sie können auch mehrere Objekte auswählen, indem Sie in einen leeren Bereich klicken und mit der Maus die Form eines Rechtecks aufziehen. Daraufhin bilden alle Objekte in diesem Bereich eine zusammenhängende Auswahl. Eine Bereichsauswahl kann zum Hinzufügen einer vorhandenen Auswahl benutzt werden, wenn Sie bei der Auswahl die <keycap>Strg</keycap>-Taste gedrückt halten.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Auswahl von Objekten aufheben</term>
-         <listitem>
-           <para>Sie können individuelle Objekte aus einer vorhandenen Auswahl entfernen, wenn Sie beim Klicken auf ein zuvor ausgewähltes Objekt die <keycap>Strg</keycap>-Taste gedrückt halten. Die gesamte Auswahl können Sie rückgängig machen, indem Sie im Menü <menuchoice><guimenu>Bearbeiten</guimenu><guimenuitem>Alle Markierungen löschen</guimenuitem></menuchoice> wählen. Sobald ein Objekt nicht mehr ausgewählt ist, wird es nicht mehr hervorgehoben dargestellt.</para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-
-    </sect2>
-
-<!-- ============= Clipboard Commands ========= -->
-    <sect2 id="glabels-clipboard"> 
-      <title>Befehle für die Zwischenablage</title>
-
-      <para>Objektauswahlen können durch die Standardoperationen der Zwischenablage <guimenuitem>Ausschneiden</guimenuitem>, <guimenuitem>Kopieren</guimenuitem>, <guimenuitem>Einfügen</guimenuitem> und <guimenuitem>Löschen</guimenuitem> manipuliert werden.</para>
-
-      <variablelist>
-
-       <varlistentry>
-         <term>
-            <menuchoice>
-             <shortcut>
-               <keycombo><keycap>Strg</keycap><keycap>X</keycap></keycombo>
-             </shortcut>
-             <guimenuitem>Ausschneiden</guimenuitem>
-           </menuchoice>
-          </term>
-         <listitem>
-           <para>Verschiebt die ausgewählten Objekte in die Zwischenablage. Diese Objekte sind dann verfügbar, um später in das aktuelle Dokument oder ein anderes Dokument eingefügt zu werden.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>
-            <menuchoice>
-             <shortcut>
-               <keycombo><keycap>Strg</keycap><keycap>C</keycap></keycombo>
-             </shortcut>
-             <guimenuitem>Kopieren</guimenuitem>
-           </menuchoice>
-          </term>
-         <listitem>
-           <para>Kopiert die ausgewählten Objekte in die Zwischenablage, ohne sie zu entfernen. Diese Objekte sind dann verfügbar, um später in das aktuelle Dokument oder ein anderes Dokument eingefügt zu werden.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>
-            <menuchoice>
-             <shortcut>
-               <keycombo><keycap>Strg</keycap><keycap>V</keycap></keycombo>
-             </shortcut>
-             <guimenuitem>Einfügen</guimenuitem>
-           </menuchoice>
-          </term>
-         <listitem>
-           <para>Fügt Objekte aus der Zwischenablage in das aktuelle Dokument ein. <application>gLabels</application> kann nur Objekte aus anderen <application>gLabels</application>-Dokumenten einfügen.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>
-            <menuchoice>
-             <shortcut>
-               <keycap>Löschen</keycap>
-             </shortcut>
-             <guimenuitem>Löschen</guimenuitem>
-           </menuchoice>
-          </term>
-         <listitem>
-           <para>Entfernt die ausgewählten Objekte, ohne sie in die Zwischenablage zu verschieben.</para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-
-    </sect2>
-
-<!-- ============= To Edit object Properties ========= -->
-    <sect2 id="glabels-object-properties"> 
-      <title>Bearbeiten der Objekteigenschaften</title>
-
-      <para>Die meisten Objekteigenschaften können Sie über die Objekteditor-Seitenleiste verändern, wie unten illustriert. Um den Objekteditor zu verwenden, muss zunächst ein einzelnes Objekt ausgewählt werden. Siehe <xref linkend="glabels-select-objects"/>.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="object-editor-sidebar-fig"> 
-       <title>Objekteditor-Seitenleiste</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/object-editor-sidebar.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Der Objekteditor bietet eine Auswahl der folgenden Reiter, abhängig vom Objekttyp:</para>
-
-      <sect3 id="object-editor-text">
-       <title>Text-Reiter (Textobjekte)</title>
-
-       <para>Dieser Abschnitt bietet einen kleinen Editor zum Bearbeiten des Inhalts eines Textobjekts. Weiterhin ist ein Ausklappmenü mit den verfügbaren Schlüsseln zur Dokumentmischung enthalten, die in den Text eingefügt werden können.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-image">
-       <title>Bild-Reiter (Bild-Objekte)</title>
-
-       <para>Dieser Abschnitt enthält einen Dateiwähler mit Vorschau zur Auswahl von Bilddateien. Der »Durchsuchen«-Knopf kann zum Suchen von Bilddateien benutzt werden. Alternativ können Sie einen Schlüssel zur Dokumenteinmischung anstelle eines Dateinamens angeben, der bei der Ausgabe des Dokuments ersetzt wird.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-data">
-       <title>Daten-Reiter (Strichcode-Objekte)</title>
-
-       <para>Dieser Abschnitt enthält ein Textfeld zur Eingabe von Strichcode-Daten. Alternativ kann hier ein Schlüssel zur Dokumentmischung eingetragen werden, der beim Druck für die Bereitstellung der richtigen Daten sorgt.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-style">
-       <title>Stil-Reiter (Text-Objekte)</title>
-
-       <para>Dieser Abschnitt enthält Einstellmöglichkeiten für die Texteigenschaften, wie Schriftfamilie, Schriftgröße, Schriftstärke, Schriftfarbe und Ausrichtung des Texts.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-barcode">
-       <title>Stil-Reiter (Strichcode-Objekte)</title>
-
-       <para>Dieser Abschnitt enthält Einstellmöglichkeiten für die Eigenschaften des Strichcodes, wie Stil, Farbe, Drucken von Text oder Beinhalten einer Prüfsumme.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-line">
-       <title>Linie-Reiter</title>
-
-       <para>Dieser Abschnitt enthält Einstellmöglichkeiten für die Auswahl von Eigenschaften von Linien und Begrenzungen, wie Linienbreite und -farbe.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-fill">
-       <title>Füllung-Reiter</title>
-
-       <para>Dieser Abschnitt enthält Einstellmöglichkeiten für die Auswahl der Füllungseigenschaften von Rechteck- und Ellipsenobjekten. Derzeit ist nur die Einstellung der Füllungsfarbe möglich.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-size">
-       <title>Reiter »Größe« (alle außer Linienobjekte)</title>
-
-       <para>Dieser Abschnitt enthält Einstellmöglichkeiten für die Höhe und die Breite eines Objekts. Mit einem Ankreuzfeld können Sie die Werte aneinander koppeln, so dass das Seitenverhältnis beim Ändern der Höhe oder Breite erhalten bleibt. Für Bildobjekte gibt es außerdem einen Knopf zum Zurücksetzen des Bildes auf Originalgröße, wobei eine Auflösung von 72 dpi angenommen wird.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-size-line">
-       <title>Reiter »Größe« (Linienobjekte)</title>
-
-       <para>Dieser Abschnitt enthält Einstellmöglichkeiten für die Länge und den Winkel eines Linienobjekts.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-position">
-       <title>Reiter »Position«</title>
-
-       <para>Dieser Abschnitt beschreibt die Möglichkeiten zur Positionierung eines Objekts.</para>
-
-      </sect3>
-
-
-      <sect3 id="object-editor-shadow">
-       <title>Reiter »Schattierung« (alle außer Bild- und Strichcodeobjekten)</title>
-
-       <para>Dieser Abschnitt enthält Einstellmöglichkeiten für die Schattierung eines Objekts.</para>
-
-      </sect3>
-
-
-    </sect2>
-
-<!-- ============= Other Manipulations of Objects ========= -->
-    <sect2 id="glabels-object-manipulation"> 
-      <title>Andere Manipulationen von Objekten</title>
-
-      <para>Objekte können auf die folgenden Arten manipuliert werden.</para>
-
-      <sect3 id="other-moving-resizing">
-       <title>Verschieben und Größenänderung von Objekten</title>
-
-       <para>Objekte können Sie durch einfaches Anklicken und Ziehen des ausgewählten Objekts zur neuen Position verschieben. Falls dieses Objekt Teil einer Mehrfachauswahl ist, werden durch Ziehen dieses Objektes alle Objekte verschoben, wobei deren Abstände untereinander erhalten bleiben. Falls kein Objekt ausgewählt ist, wird durch Anklicken eines Objekts eine neue Auswahl erzeugt, die dieses Objekt enthält. Siehe <xref linkend="glabels-select-objects"/>.</para>
-
-       <para>Die Größe eines ausgewählten Objekts kann geändert werden, indem Sie auf einen der Größenänderungs-Anfasspunkte klicken und diesen ziehen, um die gewünschte Größe zu erreichen.</para>
-
-      </sect3>
-
-      <sect3 id="other-stacking-order">
-       <title>Ändern der Reihenfolge der Ebenen</title>
-
-       <para>Die Stapelreihenfolge bezieht sich auf die relative Position in der Z-Achse von Objekten. Das beschreibt beim Überlappen von Objekten, welches der Objekte über den anderen erscheint. Per Vorgabe werden neue Objekte immer oberhalb von bereits vorhandenen Objekten platziert. Um diese Anordnung zu ändern, wählen Sie <menuchoice><guimenu>Objekte</guimenu><guimenuitem>Anordnung</guimenuitem><guimenuitem>Ganz nach vorn</guimenuitem></menuchoice>, um die Auswahl im Stapel nach oben zu verschieben, oder <menuchoice><guimenu>Objekte</guimenu><guimenuitem>Anordnung</guimenuitem><guimenuitem>Ganz nach hinten</guimenuitem></menuchoice>, um die Auswahl im Stapel nach unten zu verschieben. Diese Menüeinträge sind auch durch einen Klick mit der rechten Maustaste auf den Ansichtsbereich verfügbar, falls sich dort eine nicht leere Auswahl befindet.</para>
-
-      </sect3>
-
-      <sect3 id="other-rotating-flipping">
-       <title>Drehen und Spiegeln von Objekten</title>
-
-       <para>Objekte können um 90 Grad in jeder Richtung gedreht oder horizontal oder vertikal gespiegelt werden. Wählen Sie hierzu den entsprechenden Eintrag im Menü <menuchoice><guimenu>Objekte</guimenu><guimenuitem>Drehen/Spiegeln</guimenuitem></menuchoice>. Diese Menüeinträge sind auch verfügbar, wenn Sie mit der rechten Maustaste in eine nicht leere Auswahl im Ansichtsbereich klicken.</para>
-
-      </sect3>
-
-      <sect3 id="other-alignment">
-       <title>Ausrichten von Objekten</title>
-
-       <para>Objekte können horizontal oder vertikal zu einem anderen Objekt oder relativ zu einer Mittellinie des Etiketts angeordnet werden, indem Sie <menuchoice><guimenu>Objekte</guimenu><guimenuitem>Horizontal</guimenuitem></menuchoice> oder <menuchoice><guimenu>Objekte</guimenu><guimenuitem>Vertikal</guimenuitem></menuchoice> wählen. Diese Menüeinträge sind auch verfügbar, wenn Sie mit der rechten Maustaste in eine nicht leere Auswahl im Ansichtsbereich klicken.</para>
-
-      </sect3>
-
-      <sect3 id="other-property-bar">
-       <title>Verwendung der Eigenschaftsleiste</title>
-
-       <para>Mit der Eigenschaftsleiste können Sie einige Eigenschaften von Objekten in einem Arbeitsgang ändern. Diese Eigenschaften umfassen Schriftfamilie, Schriftgröße, Schriftstärke, Textausrichtung, Textfarbe, Füllfarbe, Farbe von Linien oder Begrenzungen sowie Linienbreiten. Die Eigenschaftsleiste regelt auch die Vorgaben für diese Eigenschaften, wenn neue Objekte erzeugt werden.</para>
-
-      </sect3>
-
-
-
-    </sect2>
-
-<!-- ============= Document Merge Features ========= -->
-    <sect2 id="glabels-merge"> 
-      <title>Ausführung einer Dokumentmischung</title>
-
-      <para>Dokumentmischung ist ein mächtiges Funktionsmerkmal, das es Ihnen ermöglicht, ein einzelnes Etikett oder eine einzelne Karte für jeden Datensatz aus einer externen Datenquelle zu erstellen.</para>
-
-      <para>Der erste Schritt zur Ausführung einer Dokumentmischung ist die Vorbereitung eines Quelldokuments, welches die Daten zum Mischen enthält. Diese Daten können aus E-Mail-Adressen oder anderen Daten bestehen, aus denen Sie die einzelnen Etiketten oder Karten erstellen wollen. Gegenwärtig können als Datenquellen entweder Textdateien oder die Daten des Evolution-Adressbuchs verwendet werden, andere sind bereits in Planung. Das derzeit unterstützte Textformat ist recht einfach: Jede Zeile stellt einen Datensatz dar, wobei die einzelnen Felder durch Kommata (CSV), Tabulatoren oder Semikola getrennt werden. Neue Zeilen werden durch einen Zeilenumbruch »\n« erzeugt. Diese Datei kann mit einem Texteditor, einem anderen Programm oder einem Skript erstellt werden. Ein üblicher Weg der Erstellung ist der Export einer CSV-Datei aus einer Tabellenkalkulation.</para>
-
-      <para>Ein Etikett muss erstellt werden, das auf diese Datenquelle »zeigt«. Um die Mischeigenschaften für ein Dokument festzulegen, wählen Sie <menuchoice><guimenu>Objekte</guimenu><guimenuitem>Mischeinstellungen</guimenuitem></menuchoice>. Der Dialog <guilabel>Mischeinstellungen</guilabel> wird geöffnet. In diesem Dialog wählen Sie das genaue Dateiformat und den Dateinamen (den Ort) der einzumischenden Daten aus.</para>
-
-      <para>Zum Schluss, sobald das Etikett für die Datenquelle eingerichtet wurde, können die Feldschlüssel in Textobjekte eingefügt werden, um sie als Datenquelle für Strichcodeobjekte oder Bilder für Bildobjekte zu verwenden. Weitere Informationen über die Verwendung der Mischdaten für diese Objekttypen finden Sie in <xref linkend="glabels-object-properties"/>.</para>
-
-      <para>Da Ihr Etikett nun konfiguriert ist, druckt <application>gLabels</application> genau ein Etikett für jeden Datensatz des Quelldokuments, wobei alle Text-, Bild- und Strichcode-Objekte durch die Einträge der Felder jedes Datensatzes ersetzt werden.</para>
-
-      <para>In <xref linkend="glabels-merge-tutorial"/> finden Sie eine ausführliche Anleitung für dieses Funktionsmerkmal.</para>
-
-
-    </sect2>
-
-
-  </sect1>
-
-
-
-
-  <!-- ============= Customization ============================= -->
-  <!-- Use this section to describe how to customize the application. -->
-  <sect1 id="glabels-prefs"> 
-    <title>Einstellungen</title> 
-    <para>Um <application>gLabels</application> zu konfigurieren, wählen Sie <menuchoice><guimenu>Einstellungen</guimenu><guimenuitem>Einstellungen</guimenuitem></menuchoice>. Der Dialog <guilabel>Einstellungen</guilabel> enthält die folgenden Reiter:</para> 
-    <itemizedlist> 
-      <listitem> 
-       <para> 
-         <xref linkend="glabels-prefs-locale"/></para> 
-      </listitem> 
-      <listitem> 
-       <para> 
-         <xref linkend="glabels-prefs-object-defaults"/></para> 
-      </listitem> 
-    </itemizedlist>
-<!-- =============== Customization Subsection ================ -->
-<!-- Use a new section to describe different tabbed sections on the Settings or Preferences
-            dialog. -->
-    <sect2 id="glabels-prefs-locale"> 
-      <title>Lokale Einstellungen</title> 
-      <variablelist> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Einheiten</guilabel> </term> 
-         <listitem> 
-           <para>Verwenden Sie diese Radioknöpfe, um Ihre bevorzugten Maßeinheiten festzulegen. Wählen Sie aus den folgenden Optionen:</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>Punkte</guilabel> </para> 
-               <para>Punkte verwenden (1 Punkt = 1/72 Zoll = 0.352778 mm).</para> 
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Zoll</guilabel> </para> 
-               <para>Zoll verwenden.</para>
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Millimeter</guilabel> </para> 
-               <para>Millimeter verwenden.</para>
-             </listitem> 
-           </itemizedlist> 
-           <para>Standard: <guilabel>Zoll</guilabel>.</para> 
-         </listitem> 
-       </varlistentry> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Vorgegebene Seitengröße</guilabel> </term> 
-         <listitem> 
-           <para>Verwenden Sie diese Radioknöpfe zur Auswahl Ihrer bevorzugten Papiergröße. Dadurch lassen sich beim Erstellen neuer Etiketten oder Visitenkarten die entsprechenden Papiertypen schneller finden.</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>US-Letter</guilabel> </para> 
-               <para>Die meisten Ihrer Medien haben das US-Letter-Format (8.5 x 11 inches).</para> 
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>ISO A4</guilabel> </para> 
-               <para>Die meisten Ihrer Medien haben das ISO-A4-Format (210 x 297 mm).</para>
-             </listitem> 
-           </itemizedlist> 
-           <para>Standard: <guilabel>US-Letter</guilabel>.</para> 
-         </listitem> 
-       </varlistentry> 
-      </variablelist> 
-    </sect2>
-    <!-- ============= Customization Subsection ===================== -->
-    <!-- Another tabbed section on the Preferences dialog. -->
-    <sect2 id="glabels-prefs-object-defaults"> 
-      <title>Objekt-Voreinstellungen</title> 
-      <variablelist> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Text</guilabel> </term> 
-         <listitem> 
-           <para>Verwenden Sie diese Einstellmöglichkeiten, um die Standardeigenschaften neuer Textobjekte festzulegen. Diese Eigenschaften sind</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>Schrift</guilabel> </para> 
-               <para>Verwenden Sie diese Einstellmöglichkeiten, um die Schriftfamilie und -größe festzulegen, sowie um anzugeben, ob die Schrift fett oder kursiv dargestellt werden soll.</para> 
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Farbe</guilabel> </para> 
-               <para>Diese Einstellung wählt die Standard-Textfarbe aus.</para>
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Ausrichtung</guilabel> </para> 
-               <para>Mit diesen Einstellungen wählen Sie die vorgegebene Textausrichtung (links, mittig oder rechts).</para>
-             </listitem> 
-           </itemizedlist> 
-         </listitem> 
-       </varlistentry> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Linie</guilabel> </term> 
-         <listitem> 
-           <para>Verwenden sie diese Einstellmöglichkeiten, um die Standardeigenschaften von Begrenzungen und neuen Objekten festzulegen. Diese Eigenschaften sind</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>Breite</guilabel> </para> 
-               <para>Diese Einstellung wählt die Standard-Linienbreite aus.</para>
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Farbe</guilabel> </para> 
-               <para>Diese Einstellung wählt die Standard-Linienfarbe aus.</para>
-             </listitem> 
-           </itemizedlist> 
-         </listitem> 
-       </varlistentry> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Füllen</guilabel> </term> 
-         <listitem> 
-           <para>Verwenden Sie diese Einstellmöglichkeiten zum Angeben der Füllungseigenschaften eines neuen Objekts. Diese Eigenschaften sind</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>Farbe</guilabel> </para> 
-               <para>Diese Einstellung wählt die Standard-Füllfarbe aus.</para>
-             </listitem> 
-           </itemizedlist> 
-         </listitem> 
-       </varlistentry> 
-      </variablelist> 
-    </sect2> 
-  </sect1>
-
-
-
-
-<!-- ============= Document Merge Tutorial ================================== -->
-  <sect1 id="glabels-merge-tutorial"> 
-    <title>Anleitung zur Dokumentmischung</title>
-
-    <para>Dokumentmischung ist ein mächtiges Funktionsmerkmal, das es Ihnen ermöglicht, ein einzelnes Etikett oder eine einzelne Karte für jeden Datensatz aus einer externen Datenquelle zu erstellen. Es ist allerdings die am häufigsten missverstandene Funktion in <application>gLabels</application>. Die folgenden Beispiele führen Sie schrittweise durch viele der Aufgaben, die Sie mit der Dokumentmischung ausführen können.</para>
-
-    <sect2 id="merge-ex1">
-      <title>Beispiel 1: Namensschilder unter Nutzung einer CSV-Datei</title>
-  
-      <para>In diesem Beispiel organisieren Sie eine Orientierungsparty für die neuen Mannschaftsmitglieder Ihres Schiffes. Eine Liste der neuen Mitglieder haben Sie in <application>gnumeric</application> erstellt und in die folgende CSV-Datei exportiert. Sie könnten diese Datei auch in einem Texteditor erstellen, aber schließlich leben wir im 23. Jahrhundert...</para>
-
-      <programlisting>
-Name,Department,SN
-"Jim Kirk",Management,"SC937-0176 CEC"
-"Mr. Spock",Sciences,S179-276SP
-"Leonard McCoy",Medicine,unknown
-"Montgomery Scott",Engineering,SE-197-54T
-      </programlisting>
-
-      <para>In <application>glabels</application> haben Sie ein neues Dokument unter Verwendung der Dokumentvorlage »Avery 5395 Namensschild-Etiketten« erzeugt. Zunächst öffnen Sie mittels <menuchoice><guimenu>Objekte</guimenu><guimenuitem>Mischeinstellungen</guimenuitem></menuchoice> den Dialog <guilabel>Mischeinstellungen</guilabel>. In diesem Dialog wählen Sie wie gezeigt die Datenquelle aus, in diesem Fall CSV, sowie die Mischquelle (Dateiname).</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex1-1-fig"> 
-       <title>Mischeinstellungen-Dialog</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex1-1.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Bevor Sie eine neue Einmischquelle anwenden, sollten Sie den ersten Datensatz deaktivieren, weil dieser nur Spaltenköpfe aus der originalen <application>gnumeric</application>-Tabelle enthält. Dadurch würde nur das erste Etikett verschwendet. Weiterhin können Sie alle anderen Datensätze entfernen, die Sie nicht für ein Etikett verwenden wollen.</para>
-
-      <para>Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf <guibutton>OK</guibutton>, um die Änderungen anzuwenden.</para>
-
-      <para>Nun beginnen wir mit dem Hinzufügen von Objekten zu unserem <application>gLabels</application>-Dokument, wie gezeigt.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex1-2-fig"> 
-       <title>Hinzufügen von Objekten</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex1-2.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>In diesem Beispiel haben Sie drei Textobjekte und ein Strichcodeobjekt hinzugefügt. Das erste Textobjekt enthält nur einfachen Text (»Hello, my name is«). Das zweite Textobjekt enthält ein einfaches Mischfeld (»${1}«), welches zum ersten Feld eines Datensatzes (erste Spalte einer Zeile) korrespondiert, die den vollen Namen eines Mannschaftsmitglieds enthält. Das dritte Feld enthält sowohl einfachen Text (»Department:«) als auch ein einzelnes Mischfeld (»${2}«), welches zum zweiten Feld oder zum Arbeitsgebiet eines Mannschaftsmitglieds korrespondiert. Das Strichcodefeld ist so eingestellt, das Feld (oder den Schlüssel) »3« zu verwenden, das die Sternenflotten-Seriennummer des Mannschaftsmitglieds enthält.</para>
-
-      <para>Nun können Sie Ihre Namensschilder drucken, indem Sie <menuchoice><guimenu>Datei</guimenu><guimenuitem>Drucken</guimenuitem></menuchoice> wählen. Der unten angezeigte Druckdialog wird geöffnet.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex1-3-fig"> 
-       <title>Drucken der Namensschilder</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex1-3.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Um sicher zu stellen, dass Ihre Etiketten gut aussehen, wählen Sie die Option <guilabel>Begrenzungen drucken</guilabel> und klicken auf <guibutton>Druckvorschau</guibutton>. Der Druckvorschaudialog wird geöffnet, wie unten angezeigt.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex1-4-fig"> 
-       <title>Vorschau der Namensschilder</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex1-4.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden Etiketten bestücken, die Namensschilder drucken und die Gäste an Bord beamen.</para>
-
-    </sect2>
-
-    <sect2 id="merge-ex2">
-      <title>Beispiel 2: Adressetiketten unter Nutzung einer CSV-Datei</title>
-  
-      <para>In diesem Beispiel planen Sie eine Party. Dafür benötigen Sie Adressetiketten für die Einladungen. Sie haben eine Liste Ihrer besten Freunde in <application>gnumeric</application> erstellt, die Sie in die folgende CSV-Datei exportiert haben. Es ist zu beachten, dass nicht jeder einen zweiten Vornamen oder eine zweizeilige Adresse hat.</para>
-
-      <programlisting>
-LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP
-,,,,,,,
-Critter,Ess,S,"123 Faux St.",,Alexandria,VA,22310
-Doe,John,,"Apt 1X","451 Mystery St.",Trenton,NJ,08601
-Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037
-McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813
-Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207
-      </programlisting>
-
-      <para>In <application>glabels</application> haben Sie ein neues Dokument unter Verwendung der Dokumentvorlage »Avery 5512 Adressetiketten« erzeugt. Zunächst öffnen Sie mittels <menuchoice><guimenu>Objekte</guimenu><guimenuitem>Mischeinstellungen</guimenuitem></menuchoice> den Dialog <guilabel>Mischeinstellungen</guilabel>. In diesem Dialog wählen Sie wie gezeigt die Datenquelle aus, in diesem Fall CSV, sowie die Mischquelle (Dateiname).</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex2-1-fig"> 
-       <title>Mischeinstellungen-Dialog</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex2-1.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Bevor Sie eine neue Einmischquelle anwenden, sollten Sie den ersten Datensatz deaktivieren, weil dieser nur Spaltenköpfe aus der originalen <application>gnumeric</application>-Tabelle enthält. Dadurch würde nur das erste Etikett verschwendet. Weiterhin können Sie alle anderen Datensätze entfernen, die Sie nicht für ein Etikett verwenden wollen.</para>
-
-      <para>Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf <guibutton>OK</guibutton>, um die Änderungen anzuwenden.</para>
-
-      <para>Nun beginnen wir mit dem Hinzufügen von Objekten zu unserem <application>gLabels</application>-Dokument, wie gezeigt.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex2-2-fig"> 
-       <title>Hinzufügen von Objekten</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex2-2.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>In diesem Beispiel haben Sie ein einzelnes Textobjekt. Dieses Textobjekt enthält alle Einmischfelder, angeordnet in mehreren Zeilen wie eine Versandadresse. Beachten Sie, dass die Felder ${4} und ${5} (korrespondierend zu ADDR1 und ADDR2) jeweils keinen weiteren Text in deren Zeilen enthalten. Wenn <application>glabels</application> ein solches Feld als »nur Text« in einer Zeile erkennt, wird die Zeile nicht expandiert, falls das Feld leer ist.</para>
-
-      <para>Nun können Sie Ihre Adressetiketten drucken, indem Sie <menuchoice><guimenu>Datei</guimenu><guimenuitem>Drucken</guimenuitem></menuchoice> wählen. Der unten angezeigte Druckdialog wird geöffnet.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex2-3-fig"> 
-       <title>Adressetiketten drucken</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex2-3.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Um sicher zu stellen, dass Ihre Etiketten gut aussehen, wählen Sie die Option <guilabel>Begrenzungen drucken</guilabel> und klicken auf <guibutton>Druckvorschau</guibutton>. Der Druckvorschaudialog wird geöffnet, wie unten angezeigt.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex2-4-fig"> 
-       <title>Adressetiketten-Vorschau</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex2-4.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden Etiketten bestücken, die Adressetiketten drucken und die Einladungen zur Party versenden.</para>
-
-    </sect2>
-
-<sect2 id="merge-ex3">
-      <title>Beispiel 3: Adressetiketten unter Nutzung des <application>Evolution</application>-Adressbuchs</title>
-  
-      <para>Ihre letzte Party war ein voller Erfolg. Nun benötigen Sie wieder Adressetiketten für die Einladung zu einer neuen Party. Um dies zu vereinfachen, können Sie das <application>Evolution</application>-Adressbuch nutzen, denn die Adressdaten aller Ihrer Freunde sind dort gespeichert.</para>
-
-      <note>
-       <para>Abhängig davon, wie das von Ihnen genutzte <application>gLabels</application>-Paket erstellt wurde, könnte diese Option nicht verfügbar sein. Die Unterstützung für das <application>Evolution</application>-Adressbuch ist nur vorhanden, wenn bei der Erstellung von <application>gLabels</application> das Paket <application>evolution-data-server</application> sowie dessen Entwicklerdateien verfügbar waren. Bitte berücksichtigen dies auch dann, wenn Sie <application>gLabels</application> direkt aus den Quellen erstellen.</para>
-       
-       <para>Falls das <application>gLabels</application>-Paket Ihrer Distribution diese Unterstützung nicht bieten sollte, kontaktieren Sie bitte den Ersteller des Pakets oder senden Sie einen Fehlerbericht, um dies einzufordern.</para>
-      </note>
-
-      <para>In <application>glabels</application> haben Sie ein neues Dokument unter Verwendung der Dokumentvorlage »Avery 5512 Adressetiketten« erzeugt. Zunächst öffnen Sie mittels <menuchoice><guimenu>Objekte</guimenu><guimenuitem>Mischeinstellungen</guimenuitem></menuchoice> den Dialog <guilabel>Mischeinstellungen</guilabel>. In diesem Dialog wählen Sie wie gezeigt die Datenquelle aus, in diesem Fall <guilabel>Daten aus dem vorgegebenen Evolution-Adressbuch</guilabel>, wie gezeigt.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex3-1-fig"> 
-       <title>Mischeinstellungen-Dialog</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex3-1.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Sobald  Sie <guilabel>Daten aus dem vorgegebenem Evolution-Adressbuch</guilabel> als Mischquelle gewählt haben, wird eine vollständige Liste des Inhalts angezeigt. Anfänglich sind alle Einträge ausgewählt. Angenommen, Sie planen eine wirklich große Party, können Sie die Auswahl unverändert belassen. Behalten Sie jedoch dabei Ihre finanziellen Möglichkeiten im Auge. Sie können bestimmte Einträge auswählen oder wieder abwählen, indem Sie die entsprechenden Ankreuzfelder anklicken. Alternativ können Sie durch Anklicken der Knöpfe <guibutton>Alle markieren</guibutton> oder <guibutton>Markierung aufheben</guibutton> alle Einträge des Adressbuchs aktivieren oder deaktivieren. </para>
-      <para>Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf <guibutton>OK</guibutton>, um die Änderungen anzuwenden.</para>
-
-      <para>Nun beginnen wir mit dem Hinzufügen von Objekten zu unserem <application>gLabels</application>-Dokument, wie gezeigt.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex3-2-fig"> 
-       <title>Hinzufügen von Objekten</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex3-2.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>In diesem Beispiel haben Sie ein einzelnes Textobjekt. Dieses Textobjekt enthält alle Einmischfelder, angeordnet in mehreren Zeilen wie eine Versandadresse.</para>
-
-      <para>Nun können Sie Ihre Adressetiketten drucken, indem Sie <menuchoice><guimenu>Datei</guimenu><guimenuitem>Drucken</guimenuitem></menuchoice> wählen. Der unten angezeigte Druckdialog wird geöffnet.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex3-3-fig"> 
-       <title>Adressetiketten drucken</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex2-3.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Um sicher zu stellen, dass Ihre Etiketten gut aussehen, wählen Sie die Option <guilabel>Begrenzungen drucken</guilabel> und klicken auf <guibutton>Druckvorschau</guibutton>. Der Druckvorschaudialog wird geöffnet, wie unten angezeigt.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex3-4-fig"> 
-       <title>Adressetiketten-Vorschau</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex2-4.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden Etiketten bestücken, die Adressetiketten drucken und die Einladungen zur Party versenden.</para>
-
-    </sect2>
-
-  </sect1>
-
-
-
-
-<!-- ============= Creating templates ================================== -->
-  <sect1 id="glabels-manual-create-template"> 
-    <title>Manuelles Erstellen neuer Vorlagen</title> 
-
-    <para>Vordefinierte Vorlagen sind als XML-Dateien verfügbar, die in <filename>${prefix}/share/glabels/</filename> gespeichert sind, wobei <filename>${prefix}</filename> üblicherweise <filename>/usr/local</filename> oder <filename>/usr</filename> ist, abhängig von der Konfigurationsoption <filename>prefix</filename>. <application>gLabels</application> verwendet alle Dateien der Form <filename>*-templates.xml</filename> oder <filename>*.template</filename>, die es in <filename>${prefix}/share/glabels/</filename> und <filename>${HOME}/.glabels/</filename> findet. Zusätzliche Vorlagen können unter Verwendung der Dateiendung <filename>*.template</filename> in einem dieser Ordner gespeichert werden.</para>
-
-    <para>Das Format dieser Dateien ist in einer DTD definiert: <ulink url="http://glabels.sourceforge.net/doc/glabels-2.0.dtd.txt" type="http">glabels-2.2.dtd</ulink>. Diese DTD beschreibt außerdem weitere von gLabels benutzte XML-Formate.</para>
-
-    <sect2 id="template-assumptions">
-      <title>Voraussetzungen</title>
-      <itemizedlist>
-       <listitem>
-         <para>Eine Seite enthält nur eine Etiketten- oder Kartengröße. Falls eine Seite mehrere Größen enthält, kann sie für das Drucken in mehreren Durchläufen über mehrere Vorlagen verteilt werden.</para>
-       </listitem>
-       <listitem>
-         <para>Abstände können in den Einheiten <emphasis>pt</emphasis>, <emphasis>in</emphasis>, <emphasis>mm</emphasis>, <emphasis>cm</emphasis> oder <emphasis>pc</emphasis> ausgedrückt werden. Beispiel: »<literal>1.0in</literal>« oder »<literal>2.54cm</literal>«. Falls keine Einheiten angegeben werden, nimmt der Rechner Punkt an. ein Punkt (<emphasis>pt</emphasis>) entspricht = 1/72 <emphasis>in</emphasis> = 0.352778 <emphasis>mm</emphasis>.</para>
-       </listitem>
-      </itemizedlist>
-    </sect2>
-
-    <sect2 id="template-file">
-      <title>Vorlagedateien</title>
-
-      <programlisting>
-&lt;?xml version="1.0"?&gt;
-&lt;Glabels-templates&gt;
-
-   <replaceable>...Vorlagen...</replaceable>
-
-&lt;/Glabels-templates&gt;
-      </programlisting>
-    </sect2>
-
-
-    <sect2 id="template-example">
-      <title>Beispielvorlage</title>
-      <programlisting>
-  &lt;Template brand="Avery" part="8160" size="US-Letter" description="Mailing Labels"&gt;
-    &lt;Label-rectangle id="0" width="189pt" height="72pt" round="5pt"&gt;
-      &lt;Markup-margin size="5pt"/&gt;
-      &lt;Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/&gt;
-    &lt;/Label-rectangle&gt;
-    &lt;Alias brand="Avery" part="5160"/&gt;
-    &lt;Alias brand="Avery" part="6233"/&gt;
-  &lt;/Template&gt;
-      </programlisting>
-    </sect2>
-
-    <sect2 id="template-template-node">
-      <title>Knoten »Template«</title>
-
-      <para>Ein <emphasis>Template</emphasis>-Knoten beschreibt ein einzelnes Produkt. Es muss eine Instanz eines der anderen Label-Knoten (<emphasis>Label-rectangle</emphasis>, <emphasis>Label-round</emphasis>, or <emphasis>Label-cd</emphasis>) enthalten. Auf diesen Knoten können einer, mehrere oder kein <emphasis>Alias</emphasis>-Knoten folgen.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Eigenschaft</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Beschreibung</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>brand</para></entry>
-             <entry>
-                <para>Marke oder Hersteller des Produkts, z.B. »Avery«</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>part</para></entry>
-             <entry>
-                <para>Bestellnummer oder Name des Produkts, z.B. »8160«</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>size</para></entry>
-             <entry>
-                <para>Größe des Papiers, z.B.  »US-Letter«, »A4«, …</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>description</para></entry>
-             <entry>
-                <para>Beschreibung des Produkts, z.B. »Mailing Labels«.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>_description</para></entry>
-             <entry>
-                <para>Übersetzbare Beschreibung des Produkts, z.B. »Mailing Labels« (nur sinnvoll für vordefinierte Vorlagen)</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>width</para></entry>
-             <entry>
-                <para>Seitenbreite. Nur gültig, wenn als Größe »Other« festgelegt ist.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>height</para></entry>
-             <entry>
-                <para>Seitenhöhe. Nur gültig, wenn als Größe »Other« festgelegt ist.</para>
-               </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-label-rectangle-node">
-      <title>Knoten »Label-rectangle«</title>
-
-      <para>Ein <emphasis>Label-rectangle</emphasis>-Knoten beschreibt die Abmessungen eines einzelnen Etiketts oder einer einzelnen Karte in rechteckiger Form, wobei abgerundete Ecken möglich sind.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Eigenschaft</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Beschreibung</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>id</para></entry>
-             <entry>
-                <para>Für zukünftige Verwendung reserviert. Sollte immer 0 sein.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>width</para></entry>
-             <entry><para>Breite des Etiketts oder der Karte</para></entry>
-            </row>
-           <row valign="top">
-             <entry><para>height</para></entry>
-             <entry><para>Höhe des Etiketts oder der Karte</para></entry>
-           </row>
-           <row valign="top">
-             <entry><para>round</para></entry>
-             <entry>
-                <para>Radius der Ecken. Für Objekte mit nicht abgerundeten Ecken (Visitenkarten) sollte der Radius 0 sein.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>x_waste</para></entry>
-             <entry>
-                <para>Erlaubte Breite des horizontalen Überdruckens. Dies minimiert Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder).</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y_waste</para></entry>
-             <entry>
-                <para>Erlaubte Breite des vertikalen Überdruckens. Dies minimiert Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder).</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-      <!-- ==== Figure ==== -->
-      <figure id="template-label-fig"> 
-       <title>Parameter zu Label-rectangle </title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/glabels-template-label.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-    </sect2>
-
-    <sect2 id="template-label-round-node">
-      <title>Knoten »Label-round«</title>
-
-      <para>Ein <emphasis>Label-round</emphasis>-Knoten beschreibt die Abmessungen eines einfachen Rundetiketts (nicht einer CD).</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Eigenschaft</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Beschreibung</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>id</para></entry>
-             <entry>
-                <para>Für zukünftige Verwendung reserviert. Sollte immer 0 sein.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>radius</para></entry>
-             <entry><para>Radius (halber Durchmesser) des Etiketts</para></entry>
-            </row>
-           <row valign="top">
-             <entry><para>waste</para></entry>
-             <entry>
-                <para>Erlaubte Breite des Überdruckens. Dies minimiert Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder).</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-label-cd-node">
-      <title>Knoten »Label-cd«</title>
-
-      <para>Ein <emphasis>Label-cd</emphasis>-Knoten beschreibt die Abmessungen einer CD, DVD oder Visitenkarten-CD.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Eigenschaft</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Beschreibung</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>id</para></entry>
-             <entry>
-                <para>Für zukünftige Verwendung reserviert. Sollte immer 0 sein.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>radius</para></entry>
-             <entry><para>Äußerer Radius des Etiketts</para></entry>
-           </row>
-           <row valign="top">
-             <entry><para>hole</para></entry>
-             <entry><para>Radius des Mittellochs</para></entry>
-           </row>
-           <row valign="top">
-             <entry><para>width</para></entry>
-             <entry>
-                <para>Falls vorhanden, wird das Etikett auf die angegebene Größe begrenzt (nützlich für »Visitenkarten-CDs«)</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>height</para></entry>
-             <entry>
-                <para>Falls vorhanden, wird das Etikett auf die angegebene Höhe begrenzt (nützlich für »Visitenkarten-CDs«)</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>waste</para></entry>
-             <entry>
-                <para>Erlaubte Breite des Überdruckens. Dies minimiert Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder).</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-      <!-- ==== Figure ==== -->
-      <figure id="template-label-cd-fig"> 
-       <title>CD-Label-Parameter</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/glabels-template-cd.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-    </sect2>
-
-    <sect2 id="template-markup-margin-node">
-      <title>Knoten »Markup-margin«</title>
-
-      <para>Ein <emphasis>Markup-margin</emphasis>-Knoten beschreibt die Ränder entlang der Seiten eines Etiketts.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Eigenschaft</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Beschreibung</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>size</para></entry>
-             <entry>
-                <para>Randbreite. Die Breite des Bereichs zwischen der Randlinie und dem Rand des Etiketts/der Karte.</para>
-              </entry>
-            </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-markup-line-node">
-      <title>Knoten »Markup-line«</title>
-
-      <para>Ein <emphasis>Markup-line</emphasis>-Knoten beschreibt eine Markierungslinie.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Eigenschaft</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Beschreibung</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>x1</para></entry>
-             <entry>
-                <para>x-Koordinate des Anfangspunkts des Linienabschnitts.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y1</para></entry>
-             <entry>
-                <para>y-Koordinate des Anfangspunkts des Linienabschnitts.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>x2</para></entry>
-             <entry>
-                <para>x-Koordinate des Endpunkts des Linienabschnitts.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y2</para></entry>
-             <entry>
-                <para>y-Koordinate des Endpunkts des Linienabschnitts.</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-markup-circle-node">
-      <title>Knoten »Markup-circle«</title>
-
-      <para>Ein <emphasis>Markup-circle</emphasis>-Knoten beschreibt einen Markierungskreis.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Eigenschaft</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Beschreibung</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>x0</para></entry>
-             <entry>
-                <para>x-Koordinate des Kreismittelpunkts.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y0</para></entry>
-             <entry>
-                <para>y-Koordinate des Kreismittelpunkts.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>radius</para></entry>
-             <entry><para>Radius des Kreises.</para></entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-markup-rect-node">
-      <title>Knoten »Markup-rect«</title>
-
-      <para>Ein <emphasis>Markup-rect</emphasis>-Knoten beschreibt ein Markierungsrechteck.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Eigenschaft</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Beschreibung</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>x1</para></entry>
-             <entry>
-                <para>x-Koordinate der oberen linken Ecke des Rechtecks.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y1</para></entry>
-             <entry>
-                <para>y-Koordinate der oberen linken Ecke des Rechtecks.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>w</para></entry>
-             <entry>
-                <para>Breite des Rechtecks.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>h</para></entry>
-             <entry>
-                <para>Höhe des Rechtecks.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>r</para></entry>
-             <entry><para>Radius der abgerundeten Ecken des Rechtecks.</para></entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-layout-node">
-      <title>Knoten »Layout«</title>
-
-      <para>Ein Label-Knoten kann mehrere <emphasis>Layout</emphasis>-Unterknoten enthalten. Wenn die Etiketten in einem einfachen rechteckigen Raster angeordnet sind, dann wird nur ein Layout benötigt. Falls die Etiketten jedoch in komplizierteren Rasteranordnungen vorliegen, können mehrere <emphasis>Layout</emphasis>-Unterknoten verwendet werden. Beachten Sie, dass ein einzelnes Etikett immer auch als ein Raster aus Etiketten betrachtet werden kann.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Eigenschaft</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Beschreibung</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>nx</para></entry>
-             <entry>
-                <para>Anzahl der Etiketten/Karten im Raster in horizontaler Richtung</para>
-              </entry>
-            </row>
-           <row valign="top">
-             <entry><para>ny</para></entry>
-             <entry>
-                <para>Anzahl der Etiketten/Karten im Raster in vertikaler Richtung</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>x0</para></entry>
-             <entry>
-                <para>Abstand von linken Rand des Papiers zum linken Rand der linken Reihe der Karten/Etiketten im Layout.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y0</para></entry>
-             <entry>
-                <para>Abstand von oberen Rand des Papiers zum oberen Rand der oberen Reihe der Karten/Etiketten im Layout.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>dx</para></entry>
-             <entry><para>Horizontaler Rasterabstand des Zeichengitters.</para></entry>
-           </row>
-           <row valign="top">
-             <entry><para>dy</para></entry>
-             <entry><para>Vertikaler Rasterabstand des Zeichengitters.</para></entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-      <!-- ==== Figure ==== -->
-      <figure id="template-layout-fig"> 
-       <title>Layout-Parameter</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/glabels-template-layout.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-    </sect2>
-
-    <sect2 id="template-alias-node">
-      <title>Knoten »Alias«</title>
-
-      <para>Ein <emphasis>Alias</emphasis>-Knoten beschreibt den Namen eines Produkts mit der gleichen Größe und dem gleichen Layout einer anderen Vorlage.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Eigenschaft</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Beschreibung</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>brand</para></entry>
-             <entry>
-                <para>Die Marke oder der Hersteller des entsprechenden Produkts.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>part</para></entry>
-             <entry>
-                <para>Die Bestellnummer oder der Name des entsprechenden Produkts.</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-      </sect2>
-
-  </sect1>
-
-
-
-
-<!-- ============= Bugs ================================== -->
-<!-- This section is optional and is commented out by default. 
-     You can use it to describe known bugs and limitations of the 
-         program if there are any - please be frank and list all
-     problems you know of. 
-  
-  <sect1 id="mayapp-bugs">
-  <title>Known Bugs and Limitations</title>
-  <para> </para>
- </sect1>
--->
-
-
-
-
-<!-- ============= About ================================== -->
-<!-- This section contains info about the program (not docs), such as
-      author's name(s), web page, license, feedback address. This
-      section is optional: primary place for this info is "About.." box of
-      the program. However, if you do wish to include this info in the
-      manual, this is the place to put it. Alternatively, you can put this information in the title page.-->
-  <sect1 id="glabels-about"> 
-    <title>Info zu <application>gLabels</application></title> 
-    <para><application>gLabels</application> wurde von Jim Evins (<email>evins@snaught.com</email>) geschrieben. Weitere Informationen zu <application>gLabels</application> finden Sie auf der <ulink url="http://glabels.sourceforge.net" type="http">gLabels-Webseite</ulink>.</para>
-    <para>Um einen Fehler zu melden oder einen Vorschlag zu dieser Anwendung oder zu diesem Handbuch zu machen, folgen Sie den Anweisungen auf der <ulink url="http://glabels.sourceforge.net/contact/" type="http"><application>gLabels</application>-Kontaktseite</ulink>.</para>
-
-    <para>Dieses Programm ist freie Software. Sie können es unter den Bedingungen der <citetitle>GNU General Public License</citetitle>, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 2 der Lizenz oder (nach Ihrer Option) jeder späteren Version. Eine Kopie der <citetitle>GNU General Public License</citetitle> finden Sie unter diesem <ulink url="ghelp:gpl" type="help">Link</ulink>, oder in der Datei COPYING, die im Quellcode dieses Programms enthalten ist.</para>
-
-  </sect1> 
-
-
-
-
-
-</article>
diff --git a/help/de/index.page b/help/de/index.page
new file mode 100644 (file)
index 0000000..53aaa97
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="index" xml:lang="de">
+
+  <info>
+    <title type="link">gLabels Etiketten- und Visitenkarten-Designer</title>
+    <title type="text">gLabels Etiketten- und Visitenkarten-Designer</title>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+  <title><media type="image" mime="image/png" src="figures/glabels-logo.png">gLabels logo</media> gLabels-Handbuch</title>
+
+  <p>Die Anwendung <app>gLabels</app> ist ein ressourcenschonendes Programm zum Erstellen von Etiketten und Visitenkarten für die GNOME-Arbeitsumgebung. Es wurde für die verschiedensten mit Laser- oder Tintenstrahldruckern bedruckbaren (auch selbstklebenden) Etiketten sowie Visitenkarten entworfen, so wie Sie sie in den meisten Schreibwarengeschäften finden.</p>
+  <p><app>gLabels</app> kann zum Enwerfen von Adressaufklebern, Namens- und Preisschildern, Etiketten für CDs und DVDs oder für alles Andere verwendet werden, was mit dem Bedrucken von Papieren zu tun hat, die Etiketten oder Karten in einer regulären Anordnung enthalten. Die Etiketten oder Karten können Text, Bilder, Linien, Formen oder Strichcodes enthalten. <app>gLabels</app> verfügt auch über ein Funktionsmerkmal zur Dokumentmischung. Das bedeutet, dass Sie eine externe Datenquelle dazu verwenden können, ein Etikett für jeden Datensatz zu drucken. Als Datenquelle kann dabei beispielsweise eine CSV-Datei oder das Adressbuch von <app>Evolution</app> genutzt werden.</p>
+
+  <figure>
+    <title><app>gLabels</app>-Hauptfenster</title>
+    <desc><app>gLabels</app>-Hauptfenster</desc>
+    <media type="image" src="figures/introduction-glabels-main-window.png" mime="image/png" style="right">
+      <p><app>gLabels</app>-Hauptfenster</p>
+    </media>
+  </figure>
+
+  <section id="usage" style="2column">
+    <title>Benutzung</title>
+  </section>
+
+  <section id="merging" style="2column">
+    <title>Dokumentmischung</title>
+  </section>
+
+  <section id="advanced" style="2column">
+    <title>Fortgeschrittene Verwendung</title>
+  </section>
+
+</page>
diff --git a/help/de/labelprop.page b/help/de/labelprop.page
new file mode 100644 (file)
index 0000000..5ea4949
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="labelprop" xml:lang="de">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Ändern der Eigenschaften eines Etiketts oder einer Visitenkarte.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Ändern der Eigenschaften eines Etiketts</title>
+
+      <p>Um den Medientyp oder die Ausrichtung des Etiketts zu ändern, wählen Sie <guiseq><gui>Datei</gui><gui>Eigenschaften</gui></guiseq>, um den Dialog <gui>Etikett-Eigenschaften</gui> anzuzeigen. Wählen Sie den neuen Medientyp für das Dokument aus und klicken Sie anschließend auf <gui>OK</gui>.</p>
+
+</page>
diff --git a/help/de/license.page b/help/de/license.page
new file mode 100644 (file)
index 0000000..513d604
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" type="topic" id="license" xml:lang="de">
+  
+  <info>
+    <link type="seealso" xref="index"/>
+    <revision pkgversion="2.30" version="0.1" date="2009-12-28" status="draft"/>
+    <desc>Rechtliche Hinweise.</desc>
+  </info>
+
+  <title>Lizenz</title>
+  <p>Dieses Werk wird unter einer »CreativeCommons Attribution-Share Alike 3.0 Unported license« verbreitet.</p>
+  <p>Es ist Ihnen gestattet:</p>
+  <terms>
+    <item>
+      <title><em>Freizugeben</em></title>
+      <p>Das Werk bzw. den Inhalt vervielfältigen, verbreiten und öffentlich zugänglich machen.</p>
+    </item>
+    <item>
+      <title><em>Änderungen vorzunehmen</em></title>
+      <p>Abwandlungen und Bearbeitungen des Werkes bzw. Inhaltes anzufertigen.</p> 
+    </item>
+  </terms>
+  <p>Unter den folgenden Bedingungen:</p>
+  <terms>
+    <item>
+      <title><em>Weitergabe</em></title>
+      <p>Sie dürfen das Werk nur unter gleichen Bedingungen weitergeben, wie Sie vom Autor oder Lizenzgeber festgelegt wurden (aber nicht so, dass es wie Ihr Werk aussieht).</p>
+    </item>
+    <item>
+      <title><em>Share Alike</em></title>
+      <p>Wenn Sie das lizenzierte Werk bzw. den lizenzierten Inhalt bearbeiten, abwandeln oder in anderer Weise erkennbar als Grundlage für eigenes Schaffen verwenden, dürfen Sie die daraufhin neu entstandenen Werke bzw. Inhalte nur unter Verwendung von Lizenzbedingungen weitergeben, die mit denen dieses Lizenzvertrages identisch, vergleichbar oder kompatibel sind.</p>
+    </item>
+  </terms>
+  <p>Den vollständigen Text der Lizenz finden sie auf der <link href="http://creativecommons.org/licenses/by-sa/3.0/legalcode">CreativeCommons-Webseite</link>. Oder Sie können den vollständigen <link href="http://creativecommons.org/licenses/by-sa/3.0/">Commons Deed</link> lesen.</p>
+</page>
diff --git a/help/de/mancreate.page b/help/de/mancreate.page
new file mode 100644 (file)
index 0000000..e556de4
--- /dev/null
@@ -0,0 +1,693 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" xmlns:its="http://www.w3.org/2005/11/its" type="guide" id="mancreate" xml:lang="de">
+
+  <info>
+    <link type="guide" xref="index#advanced"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Erstellen Sie Ihre Vorlagen manuell.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+  <title>Manuelles Erstellen neuer Vorlagen</title>
+
+
+
+  <!-- ****************** -->
+  <!-- BEGIN Introduction -->
+  <!-- ****************** -->
+  <p>Diese Seite ist eine Referenzanleitung für die manuelle Erstellung von <app>gLabels</app>-Vorlagen. <app>gLabels</app>-Vorlagen sind einfache XML-Dateien, deren Struktur in der folgenden DTD beschrieben ist: <link href="http://glabels.org/xmlns/2.3/glabels-2.3.dtd.txt">glabels-2.3.dtd</link>. Diese DTD beschreibt außerdem weitere von <app>gLabels</app> benutzte XML-Formate.</p>
+
+  <p>Manuell erstellte Vorlagen sollten in <file>${HOME}/.glabels</file> gespeichert und mit der Erweiterung <file>.template</file> versehen werden.</p>
+
+  <note style="advanced">
+    <p><app>gLabels</app> sucht an verschiedenen anderen Orten nach Vorlagen, die folgendermaßen definiert werden:</p>
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Ort</p></td>
+        <td><p>Beschreibung</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>
+        <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><file>${prefix}/share/libglabels-3.0/templates</file></p></td>
+        <td><p>In <app>gLabels</app> mitgelieferte vordefinierte Vorlagen.</p>
+            <p><file>${prefix}</file> ist üblicherweise <file>/usr</file> oder <file>/usr/local</file>, abhängig davon, wo <app>gLabels</app> installiert wurde.</p></td>
+      </tr>
+      <tr>
+        <td><p><file>${XDG_CONFIG_HOME}/libglabels/templates</file></p></td>
+        <td><p>Mit dem <gui>Vorlagen-Designer</gui> von <app>gLabels</app> erstellte Vorlagen. <em>Legen Sie hier bitte keine manuell erstellten Vorlagen ab.</em></p>
+            <p>Falls <file>${XDG_CONFIG_HOME}</file> nicht definiert ist, wird als Vorgabe <file>${HOME}/.config</file> verwendet.</p></td>
+      </tr>
+      <tr>
+        <td><p><file>${HOME}/.glabels</file></p></td>
+        <td><p>Manuell erstellte benutzerdefinierte Vorlagen sollten hier abgelegt werden. Ältere Versionen des <gui>Vorlagen-Designers</gui> von <app>gLabels</app> (vor 3.0) speichern hier ebenfalls ihre Vorlagen.</p></td>
+      </tr>
+    </table>
+  </note>
+
+  <note><p>Vollständige Vorlagendateien können Sie an die <link href="mailto:glabels-templates@lists.sourceforge.net">Vorlagen-Mailingliste</link> von <app>gLabels</app> senden, damit diese in zukünftigen Versionen von <app>gLabels</app> mitgeliefert werden können.</p>
+  </note>
+  <!-- ****************** -->
+  <!-- END Introduction   -->
+  <!-- ****************** -->
+
+
+  <!-- ***************** -->
+  <!-- BEGIN Assumptions -->
+  <!-- ***************** -->
+  <section id="template-assumptions">
+    <title>Voraussetzungen</title>
+    <list>
+      <item>
+        <p>Eine Seite enthält nur eine Etiketten- oder Kartengröße. Falls eine Seite mehrere Größen enthält, kann sie für das Drucken in mehreren Durchläufen über mehrere Vorlagen verteilt werden.</p>
+      </item>
+      <item>
+        <p>Abstände können in den Einheiten <code translate="no">pt</code>, <code translate="no">in</code>, <code translate="no">mm</code>, <code translate="no">cm</code> oder <code translate="no">pc</code> ausgedrückt werden. Beispiel: »<code translate="no">1.0in</code>« oder »<code translate="no">2.54cm</code>«. Falls keine Einheiten angegeben werden, nimmt der Rechner Punkt an. Ein Punkt (<code translate="no">pt</code>) entspricht = 1/72 <em>in</em> = 0.352778 <em>mm</em>.</p>
+      </item>
+    </list>
+  </section>
+  <!-- ***************** -->
+  <!-- END Assumptions   -->
+  <!-- ***************** -->
+
+
+
+  <!-- ******************** -->
+  <!-- BEGIN Template Files -->
+  <!-- ******************** -->
+  <section id="template-file">
+    <title>Vorlagedateien</title>
+
+    <p>Eine Vorlagendatei enthält in der obersten Ebene einen einzelnen <code translate="no">Glabels-templates</code>-Knoten.</p>
+
+    <code mime="text/xml" translate="no">
+&lt;?xml version="1.0"?&gt;
+&lt;Glabels-templates&gt;
+
+   <var translate="yes">...Vorlagen...</var>
+
+&lt;/Glabels-templates&gt;</code>
+
+    <listing>
+      <title>Beispielvorlage</title>
+      <desc>Beispiel-Vorlagendatei von <app>gLabels</app>, die einen einzelnen <code translate="no">Template</code>-Knoten enthält.</desc>
+      <code mime="text/xml" translate="no">
+&lt;?xml version="1.0"?&gt;
+&lt;Glabels-templates&gt;
+
+  &lt;Template brand="Avery" part="8160" size="US-Letter" description="Mailing Labels"&gt;
+    &lt;Meta category="label"/&gt;
+    &lt;Meta category="mail"/&gt;
+    &lt;Meta product_url="http://www.avery.com/avery/en_us/"/&gt;
+    &lt;Label-rectangle id="0" width="189pt" height="72pt" round="5pt"&gt;
+      &lt;Markup-margin size="5pt"/&gt;
+      &lt;Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/&gt;
+    &lt;/Label-rectangle&gt;
+  &lt;/Template&gt;
+
+&lt;/Glabels-templates&gt;</code>
+    </listing>
+
+  </section>
+  <!-- ******************** -->
+  <!-- END Template Files   -->
+  <!-- ******************** -->
+
+
+
+  <!-- ******************** -->
+  <!-- BEGIN Template Node  -->
+  <!-- ******************** -->
+  <section id="template-template-node">
+    <title><span translate="no">Template</span>-Knoten</title>
+
+    <p>Ein <em><span translate="no">Template</span></em>-Knoten beschreibt ein einzelnes Produkt. Es muss eine Instanz eines der anderen Label-Knoten (<code translate="no">Label-rectangle</code>, <code translate="no">Label-round</code> oder <code translate="no">Label-cd</code>) enthalten.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Eigenschaft</p></td>  <td><p>Beschreibung</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">brand</code></p></td>  
+        <td><p>Marke oder Hersteller des Produkts, z.B. »Avery«</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">part</code></p></td>
+        <td><p>Bestellnummer oder Name des Produkts, z.B. »8160«</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">size</code></p></td>
+        <td><p>Größe des Papiers, z.B.  »<code translate="no">US-Letter</code>«, »<code translate="no">A4</code>«, …</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">description</code></p></td>
+        <td><p>Beschreibung des Produkts, z.B. »Mailing Labels«.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">_description</code></p></td>
+        <td><p>Übersetzbare Beschreibung des Produkts, z.B. »Mailing Labels« (nur sinnvoll für vordefinierte Vorlagen)</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">width</code></p></td>
+        <td><p>Seitenbreite. Nur gültig, wenn als Größe »Other« festgelegt ist.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">height</code></p></td>
+        <td><p>Seitenhöhe. Nur gültig, wenn als Größe »Other« festgelegt ist.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">equiv</code></p></td>
+        <td><p>Äquivalente Bestellnummer. Falls diese Eigenschaft vorhanden ist, handelt es sich bei dieser Vorlage um eine Kopie einer anderen Vorlage der gleichen Marke. Die Vorlage erbt alle Eigenschaften der anderen Vorlage, ausgenommen die Marke und die Bezeichnung. Die »equiv«-Eigenschaft muss sich auf eine bereits definierte Vorlage beziehen, denn derzeit unterstützt libglabels keine Vorwärtsreferenzen.</p></td>
+      </tr>
+    </table>
+
+  </section>
+  <!-- ******************** -->
+  <!-- END Template Node    -->
+  <!-- ******************** -->
+
+
+  <!-- ******************** -->
+  <!-- BEGIN Meta Node      -->
+  <!-- ******************** -->
+  <section id="meta-template-node">
+    <title><span translate="no">Meta</span>-Knoten</title>
+
+    <p>Ein <code translate="no">Meta</code>-Knoten enthält eine Reihe zusätzlicher Eigenschaften des jeweiligen Produkts. Ein <code translate="no">Template</code>-Knoten kann keinen, einen oder auch mehrere <code translate="no">Meta</code>-Knoten enthalten.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Unterknoten</p></td>  <td><p>Beschreibung</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">category</code></p></td>
+        <td><p>Die Kategorie, der dieses Produkt zugeordnet ist. Eine Vorlage kann mehreren Kategorien zugeordnet werden, indem einfach mehrere <code translate="no">Meta</code>-Knoten zum übergeordneten <code translate="no">Template</code>-Knoten hinzugegügt werden. Die Werte dieser Kategorien werden von der <gui>Vorlagenauswahl</gui> in <app>gLabels</app> verwendet, um die Ansicht beispielsweise auf die Darstellung von Etiketten zu beschränken oder anders ausgedrückt, Etiketten allgemein anzuzeigen und die Anzeige anderer Produkte zu unterdrücken, an denen der Benutzer im jeweiligen Fall nicht interessiert ist.</p>
+
+            <p>Der Wert dieser Kategorie muss einem der in der Datei <file>${prefix}/libglabels-3.0/templates/categories.xml</file> vordefinierten Werte entsprechen. Derzeit stehen folgende Kategorien zur Verfügung:</p>
+            <list>
+              <item><p><code translate="no">label</code></p></item>
+              <item><p><code translate="no">round-label</code></p></item>
+              <item><p><code translate="no">elliptical-label</code></p></item>
+              <item><p><code translate="no">square-label</code></p></item>
+              <item><p><code translate="no">rectangle-label</code></p></item>
+              <item><p><code translate="no">card</code></p></item>
+              <item><p><code translate="no">business-card</code></p></item>
+              <item><p><code translate="no">media</code></p></item>
+              <item><p><code translate="no">mail</code></p></item>
+              <item><p><code translate="no">foldable</code></p></item>
+              <item><p><code translate="no">photo</code></p></item>
+            </list>
+
+
+        </td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">product_url</code></p></td>
+        <td><p>Diese Adresse leitet auf die Webseite des Anbieters weiter. Idealerweise ist dies die Adresse genau dieses Produkts, falls diese verfügbar ist.</p></td>
+      </tr>
+    </table>
+
+    <note><p>Falls Sie Ideen für neue Kategorien haben, senden Sie Ihre Vorschläge bitte an die <link href="mailto:glabels-devel@lists.sourceforge.net">Mailingliste</link> der <app>gLabels</app>-Entwickler.</p>
+          <p>Produktadressen sind oft nur begrenzt gültig, das sich diese auch ändern können.</p>
+    </note>
+
+  </section>
+  <!-- ******************** -->
+  <!-- END Meta Node        -->
+  <!-- ******************** -->
+
+
+  <!-- ************************** -->
+  <!-- BEGIN Label-rectangle Node -->
+  <!-- ************************** -->
+  <section id="template-label-rectangle-node">
+    <title><span translate="no">Label-rectangle</span>-Knoten</title>
+
+    <p>Ein <code translate="no">Label-rectangle</code>-Knoten beschreibt die Abmessungen eines einzelnen Etiketts oder einer einzelnen Karte in rechteckiger Form, wobei abgerundete Ecken möglich sind.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Eigenschaft</p></td>  <td><p>Beschreibung</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">id</code></p></td>
+        <td><p>Für zukünftige Verwendung reserviert. Sollte immer 0 sein.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">width</code></p></td>
+        <td><p>Breite des Etiketts oder der Karte</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">height</code></p></td>
+        <td><p>Höhe des Etiketts oder der Karte</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">round</code></p></td>
+        <td><p>Radius der Ecken. Für Objekte mit nicht abgerundeten Ecken (Visitenkarten) sollte der Radius 0 sein.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">x_waste</code></p></td>
+        <td><p>Erlaubte Breite des horizontalen Überdruckens. Dies minimiert Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder).</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">y_waste</code></p></td>
+        <td><p>Erlaubte Breite des vertikalen Überdruckens. Dies minimiert Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder).</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc>Parameter zu <span translate="no">Label-rectangle</span></desc>
+      <media type="image" src="figures/glabels-template-rect-label.png" mime="image/png" style="right">
+        <p>Parameter zu <span translate="no">Label-rectangle</span></p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ************************** -->
+  <!-- END Label-rectangle Node   -->
+  <!-- ************************** -->
+
+
+  <!-- ************************ -->
+  <!-- BEGIN Label-ellipse Node -->
+  <!-- ************************ -->
+  <section id="template-label-ellipse-node">
+    <title><span translate="no">Label-ellipse</span>-Knoten</title>
+
+    <p>Ein <code translate="no">Label-ellipse</code>-Knoten beschreibt die Abmessungen eines einzelnen Etiketts oder einer einzelnen Karte in elliptischer Form.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Eigenschaft</p></td>  <td><p>Beschreibung</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">id</code></p></td>
+        <td><p>Für zukünftige Verwendung reserviert. Sollte immer 0 sein.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">width</code></p></td>
+        <td><p>Breite der Ellipse</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">height</code></p></td>
+        <td><p>Höhe der Ellipse</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">waste</code></p></td>
+        <td><p>Erlaubte Breite des Überdruckens. Dies minimiert Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder).</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc>Parameter zu <span translate="no">Label-ellipse</span></desc>
+      <media type="image" src="figures/glabels-template-ellipse-label.png" mime="image/png" style="right">
+        <p>Parameter zu <span translate="no">Label-ellipse</span></p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ************************ -->
+  <!-- END Label-ellipse Node   -->
+  <!-- ************************ -->
+
+
+  <!-- ********************** -->
+  <!-- BEGIN Label-round Node -->
+  <!-- ********************** -->
+  <section id="template-label-round-node">
+    <title><span translate="no">Label-round</span>-Knoten</title>
+
+    <p>Ein <code translate="no">Label-round</code>-Knoten beschreibt die Abmessungen eines einfachen Rundetiketts (nicht einer CD).</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Eigenschaft</p></td>  <td><p>Beschreibung</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">id</code></p></td>
+        <td><p>Für zukünftige Verwendung reserviert. Sollte immer 0 sein.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">radius</code></p></td>
+        <td><p>Radius (halber Durchmesser) des Etiketts</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">waste</code></p></td>
+        <td><p>Erlaubte Breite des Überdruckens. Dies minimiert Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder).</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc>Parameter zu <span translate="no">Label-ellipse</span></desc>
+      <media type="image" src="figures/glabels-template-circle-label.png" mime="image/png" style="right">
+        <p>Parameter zu <span translate="no">Label-ellipse</span></p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ********************** -->
+  <!-- END Label-round Node   -->
+  <!-- ********************** -->
+
+
+  <!-- ******************* -->
+  <!-- BEGIN Label-cd Node -->
+  <!-- ******************* -->
+  <section id="template-label-cd-node">
+    <title><span translate="no">Label-cd</span>-Knoten</title>
+
+    <p>Ein <code translate="no">Label-cd</code>-Knoten beschreibt die Abmessungen einer CD, DVD oder Visitenkarten-CD.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Eigenschaft</p></td>  <td><p>Beschreibung</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">id</code></p></td>
+        <td><p>Für zukünftige Verwendung reserviert. Sollte immer 0 sein.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">radius</code></p></td>
+        <td><p>Äußerer Radius des Etiketts</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">hole</code></p></td>
+        <td><p>Radius des Mittellochs</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">width</code></p></td>
+        <td><p>Falls vorhanden, wird das Etikett auf die angegebene Größe begrenzt (nützlich für »Visitenkarten-CDs«)</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">height</code></p></td>
+        <td><p>Falls vorhanden, wird das Etikett auf die angegebene Höhe begrenzt (nützlich für »Visitenkarten-CDs«)</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">waste</code></p></td>
+        <td><p>Erlaubte Breite des Überdruckens. Dies minimiert Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder).</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc><span translate="no">Label-cd</span>-Parameter</desc>
+      <media type="image" src="figures/glabels-template-cd-label.png" mime="image/png" style="right">
+        <p>CD-Label-Parameter</p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ******************* -->
+  <!-- END Label-cd Node   -->
+  <!-- ******************* -->
+
+
+  <!-- ***************** -->
+  <!-- BEGIN Markup Node -->
+  <!-- ***************** -->
+  <section id="template-markup">
+    <title><span translate="no">Markup</span>-Knoten</title>
+
+    <p>Vorlagen können optional auch Markierungs-Knoten enthalten. Diese Knoten beschreiben eine Reihe von Markierungslinien, die zwar im Zeichenbereich von <app>gLabels</app> angezeigt werden, jedoch im späteren Ausdruck nicht sichtbar sind. Diese Linien können Ränder, Falzlinien, Mittellinien oder spezielle Bereiche darstellen sowie dem Benutzer einer Vorlage weitere hilfreiche Hinweise geben.</p>
+
+
+    <!-- ======================== -->
+    <!-- BEGIN Markup-margin Node -->
+    <!-- ======================== -->
+    <section id="template-markup-margin-node">
+      <title><span translate="no">Markup-margin</span>-Knoten</title>
+
+      <p>Ein <code translate="no">Markup-margin</code>-Knoten beschreibt die Ränder entlang der Seiten eines Etiketts.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Eigenschaft</p></td>  <td><p>Beschreibung</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">size</code></p></td>
+          <td><p>Randbreite. Die Breite des Bereichs zwischen der Randlinie und dem Rand des Etiketts/der Karte.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ======================== -->
+    <!-- END Markup-margin Node   -->
+    <!-- ======================== -->
+
+
+    <!-- ====================== -->
+    <!-- BEGIN Markup-line Node -->
+    <!-- ====================== -->
+    <section id="template-markup-line-node">
+      <title><span translate="no">Markup-line</span>-Knoten</title>
+
+      <p>Ein <code translate="no">Markup-line</code>-Knoten beschreibt eine Markierungslinie.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Eigenschaft</p></td>  <td><p>Beschreibung</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x1</code></p></td>
+          <td><p>x-Koordinate des Anfangspunkts des Linienabschnitts.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y1</code></p></td>
+          <td><p>y-Koordinate des Anfangspunkts des Linienabschnitts.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x2</code></p></td>
+          <td><p>x-Koordinate des zweiten Endpunkts des Linienabschnitts.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y2</code></p></td>
+          <td><p>y-Koordinate des zweiten Endpunkts des Linienabschnitts.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ====================== -->
+    <!-- END Markup-line Node   -->
+    <!-- ====================== -->
+
+
+    <!-- ======================== -->
+    <!-- BEGIN Markup-circle Node -->
+    <!-- ======================== -->
+    <section id="template-markup-circle-node">
+      <title><span translate="no">Markup-circle</span>-Knoten</title>
+
+      <p>Ein <code translate="no">Markup-circle</code>-Knoten beschreibt einen Markierungskreis.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Eigenschaft</p></td>  <td><p>Beschreibung</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x0</code></p></td>
+          <td><p>x-Koordinate des Kreismittelpunkts.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y0</code></p></td>
+          <td><p>y-Koordinate des Kreismittelpunkts.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">radius</code></p></td>
+          <td><p>Radius des Kreises.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ======================== -->
+    <!-- END Markup-circle Node   -->
+    <!-- ======================== -->
+
+
+    <!-- ====================== -->
+    <!-- BEGIN Markup-rect Node -->
+    <!-- ====================== -->
+    <section id="template-markup-rect-node">
+      <title><span translate="no">Markup-rect</span>-Knoten</title>
+
+      <p>Ein <code translate="no">Markup-rect</code>-Knoten beschreibt ein Markierungsrechteck.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Eigenschaft</p></td>  <td><p>Beschreibung</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x1</code></p></td>
+          <td><p>x-Koordinate der oberen linken Ecke des Rechtecks.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y1</code></p></td>
+          <td><p>y-Koordinate der oberen linken Ecke des Rechtecks.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">w</code></p></td>
+          <td><p>Breite des Rechtecks.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">h</code></p></td>
+          <td><p>Höhe des Rechtecks.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">r</code></p></td>
+          <td><p>Radius der abgerundeten Ecken des Rechtecks.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ====================== -->
+    <!-- END Markup-rect Node   -->
+    <!-- ====================== -->
+
+
+    <!-- ========================= -->
+    <!-- BEGIN Markup-ellipse Node -->
+    <!-- ========================= -->
+    <section id="template-markup-ellipse-node">
+      <title><span translate="no">Markup-ellipse</span>-Knoten</title>
+
+      <p>Ein <code translate="no">Markup-ellipse</code>-Knoten beschreibt eine Markierungsellipse.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Eigenschaft</p></td>  <td><p>Beschreibung</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x1</code></p></td>
+          <td><p>x-Koordinate der oberen linken Ecke des die Ellipse umschließenden Rechtecks.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y1</code></p></td>
+          <td><p>x-Koordinate der oberen linken Ecke des die Ellipse umschließenden Rechtecks.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">w</code></p></td>
+          <td><p>Die Breite der Ellipse.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">h</code></p></td>
+          <td><p>Die Höhe der Ellipse.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ========================= -->
+    <!-- END Markup-ellipse Node   -->
+    <!-- ========================= -->
+
+  </section>
+  <!-- ***************** -->
+  <!-- END Markup Node   -->
+  <!-- ***************** -->
+
+
+  <!-- ***************** -->
+  <!-- BEGIN Layout Node -->
+  <!-- ***************** -->
+  <section id="template-layout-node">
+    <title><span translate="no">Layout</span>-Knoten</title>
+
+    <p>Ein Label-Knoten kann mehrere <code translate="no">Layout</code>-Unterknoten enthalten. Wenn die Etiketten in einem einfachen rechteckigen Raster angeordnet sind, dann wird nur ein Layout benötigt. Falls die Etiketten jedoch in komplizierteren Rasteranordnungen vorliegen, können mehrere <code translate="no">Layout</code></p>
+       <note style="tip">
+       <p>Beachten Sie, dass ein einzelnes Etikett immer auch als ein Raster aus Etiketten betrachtet werden kann.</p>
+      </note>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Eigenschaft</p></td>  <td><p>Beschreibung</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">nx</code></p></td>
+        <td><p>Anzahl der Etiketten/Karten im Raster in horizontaler Richtung</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">ny</code></p></td>
+        <td><p>Anzahl der Etiketten/Karten im Raster in vertikaler Richtung</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">x0</code></p></td>
+        <td><p>Abstand von linken Rand des Papiers zum linken Rand der linken Reihe der Karten/Etiketten im Layout.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">y0</code></p></td>
+        <td><p>Abstand von oberen Rand des Papiers zum oberen Rand der oberen Reihe der Karten/Etiketten im Layout.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">dx</code></p></td>
+        <td><p>Horizontaler Rasterabstand des Zeichengitters.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">dy</code></p></td>
+        <td><p>Vertikaler Rasterabstand des Zeichengitters.</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc><span translate="no">Layout</span>-Parameter</desc>
+      <media type="image" src="figures/glabels-template-layout.png" mime="image/png" style="right">
+        <p><span translate="no">Layout</span>-Parameter</p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ***************** -->
+  <!-- END Layout Node   -->
+  <!-- ***************** -->
+
+
+</page>
diff --git a/help/de/merge-ex1.page b/help/de/merge-ex1.page
new file mode 100644 (file)
index 0000000..3070c3c
--- /dev/null
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge-ex1" xml:lang="de">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Namensschilder unter Nutzung einer CSV-Datei.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Beispiel 1: Namensschilder</title>
+
+      <p>In diesem Beispiel organisieren Sie eine Orientierungsparty für die neuen Mannschaftsmitglieder Ihres Schiffes. Eine Liste der neuen Mitglieder haben Sie in <app>gnumeric</app> erstellt und in die folgende CSV-Datei exportiert. Sie könnten diese Datei auch in einem Texteditor erstellen, aber schließlich leben wir im 23. Jahrhundert...</p>
+
+      <code>
+Name,Department,SN
+"Jim Kirk",Management,"SC937-0176 CEC"
+"Mr. Spock",Sciences,S179-276SP
+"Leonard McCoy",Medicine,unknown
+"Montgomery Scott",Engineering,SE-197-54T
+      </code>
+
+      <p>In <app>glabels</app> haben Sie ein neues Dokument unter Verwendung der Dokumentvorlage »Avery 5395 Namensschild-Etiketten« erzeugt. Zunächst öffnen Sie mittels <guiseq><gui>Objekte</gui><gui>Mischeinstellungen</gui></guiseq> den Dialog <gui>Mischeinstellungen</gui>. In diesem Dialog wählen Sie wie gezeigt die Datenquelle aus, in diesem Fall »CSV mit Schlüsseln in Zeile 1«, sowie die Mischquelle (Dateiname).</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-1.png" mime="image/png" style="right">
+               <p>Mischeinstellungen-Dialog</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf <gui>OK</gui>, um die Änderungen anzuwenden.</p>
+
+      <p>Nun beginnen wir mit dem Hinzufügen von Objekten zu unserem <app>gLabels</app>-Dokument, wie gezeigt.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-2.png" mime="image/png" style="right">
+               <p>Hinzufügen von Objekten</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>In diesem Beispiel haben Sie drei Textobjekte und ein Strichcodeobjekt hinzugefügt. Das erste Textobjekt enthält nur einfachen Text (»Hello, my name is«). Das zweite Textobjekt enthält ein einfaches Mischfeld (»${Name}«), welches zum ersten Feld eines Datensatzes (erste Spalte einer Zeile) korrespondiert, die den vollen Namen eines Mannschaftsmitglieds enthält. Das dritte Feld enthält sowohl einfachen Text (»Department:«) als auch ein einzelnes Mischfeld (»${Department:}«), welches zum zweiten Feld oder zum Arbeitsgebiet eines Mannschaftsmitglieds korrespondiert. Das Strichcodefeld ist so eingestellt, das Feld (oder den Schlüssel) »SN« zu verwenden, das die Sternenflotten-Seriennummer des Mannschaftsmitglieds enthält.</p>
+
+      <p>Nun können Sie Ihre Namensschilder drucken, indem Sie <guiseq><gui>Datei</gui><gui>Drucken</gui></guiseq> wählen. Der unten angezeigte Druckdialog wird geöffnet.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-3.png" mime="image/png" style="right">
+               <p>Drucken der Namensschilder</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Um sicher zu stellen, dass Ihre Etiketten gut aussehen, wählen Sie die Option <gui>Begrenzungen drucken</gui> und klicken auf <gui>Druckvorschau</gui>. Der Druckvorschaudialog wird geöffnet, wie unten angezeigt.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-4.png" mime="image/png" style="right">
+               <p>Vorschau der Namensschilder</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden Etiketten bestücken, die Namensschilder drucken und die Gäste an Bord beamen.</p>
+
+
+</page>
diff --git a/help/de/merge-ex2.page b/help/de/merge-ex2.page
new file mode 100644 (file)
index 0000000..f0001c9
--- /dev/null
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge-ex2" xml:lang="de">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Erstellen von Adressetiketten aus den Daten einer CSV-Datei.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Beispiel 2: Adressetiketten</title>
+
+      <p>In diesem Beispiel planen Sie eine Party. Dafür benötigen Sie Adressetiketten für die Einladungen. Sie haben eine Liste Ihrer besten Freunde in <app>gnumeric</app> erstellt, die Sie in die folgende CSV-Datei exportiert haben. Es ist zu beachten, dass nicht jeder einen zweiten Vornamen oder eine zweizeilige Adresse hat.</p>
+
+      <code>
+LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP
+,,,,,,,
+Critter,Ess,S,"123 Faux St.",,Alexandria,VA,22310
+Doe,John,,"Apt 1X","451 Mystery St.",Trenton,NJ,08601
+Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037
+McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813
+Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207
+      </code>
+
+      <p>In <app>glabels</app> haben Sie ein neues Dokument unter Verwendung der Dokumentvorlage »Avery 5512 Adressetiketten« erzeugt. Zunächst öffnen Sie mittels <guiseq><gui>Objekte</gui><gui>Mischeinstellungen</gui></guiseq> den Dialog <gui>Mischeinstellungen</gui>. In diesem Dialog wählen Sie wie gezeigt die Datenquelle aus, in diesem Fall »CSV mit Schlüsseln in Zeile 1«, sowie die Mischquelle (Dateiname).</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-1.png" mime="image/png" style="right">
+               <p>Mischeinstellungen-Dialog</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Bevor Sie eine neue Einmischquelle anwenden, sollten Sie den ersten Datensatz deaktivieren, weil dieser nur Spaltenköpfe aus der originalen <app>gnumeric</app>-Tabelle enthält. Dadurch würde nur das erste Etikett verschwendet. Weiterhin können Sie alle anderen Datensätze entfernen, die Sie nicht für ein Etikett verwenden wollen.</p>
+
+      <p>Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf <gui>OK</gui>, um die Änderungen anzuwenden.</p>
+
+      <p>Nun beginnen wir mit dem Hinzufügen von Objekten zu unserem <app>gLabels</app>-Dokument, wie gezeigt.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-2.png" mime="image/png" style="right">
+               <p>Hinzufügen von Objekten</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>In diesem Beispiel haben Sie ein einzelnes Textobjekt. Dieses Textobjekt enthält alle Einmischfelder, angeordnet in mehreren Zeilen wie eine Versandadresse. Beachten Sie, dass die Felder ${ADDR1} und ${ADDR2} jeweils keinen weiteren Text in deren Zeilen enthalten. Wenn <app>glabels</app> ein solches Feld als »nur Text« in einer Zeile erkennt, wird die Zeile nicht expandiert, falls das Feld leer ist.</p>
+
+      <p>Nun können Sie Ihre Adressetiketten drucken, indem Sie <guiseq><gui>Datei</gui><gui>Drucken</gui></guiseq> wählen. Der unten angezeigte Druckdialog wird geöffnet.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-3.png" mime="image/png" style="right">
+               <p>Adressetiketten drucken</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Um sicher zu stellen, dass Ihre Etiketten gut aussehen, wählen Sie die Option <gui>Begrenzungen drucken</gui> und klicken auf <gui>Druckvorschau</gui>. Der Druckvorschaudialog wird geöffnet, wie unten angezeigt.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-4.png" mime="image/png" style="right">
+               <p>Adressetiketten-Vorschau</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden Etiketten bestücken, die Adressetiketten drucken und die Einladungen zur Party versenden.</p>
+
+</page>
diff --git a/help/de/merge-ex3.page b/help/de/merge-ex3.page
new file mode 100644 (file)
index 0000000..833a60a
--- /dev/null
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge-ex3" xml:lang="de">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Erstellung von Adressetiketten unter Nutzung des <app>Evolution</app>-Adressbuchs.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Beispiel 3: Adressetiketten unter Nutzung des <app>Evolution</app>-Adressbuchs</title>
+
+      <p>Ihre letzte Party war ein voller Erfolg. Nun benötigen Sie wieder Adressetiketten für die Einladungen zu einer neuen Party. Um dies zu vereinfachen, können Sie das <app>Evolution</app>-Adressbuch nutzen, denn die Adressdaten aller Ihrer Freunde sind dort gespeichert.</p>
+
+      <note>
+       <p>Abhängig davon, wie Ihr <app>gLabels</app>-Paket erstellt wurde, könnte diese Option  nicht verfügbar sein. Die Unterstützung für das Adressbuch von <app>Evolution</app> ist nur dann vorhanden, wenn <app>evolution-data-server</app> und dessen Entwicklerdateien zum Zeitpunkt der Erstellung von <app>gLabels</app> verfügbar waren. Bitte denken Sie auch daran, wenn Sie <app>gLabels</app> direkt aus den Quellen erstellen.</p>
+       
+       <p>Falls das <app>gLabels</app>-Paket Ihrer Distribution diese Unterstützung nicht bieten sollte, kontaktieren Sie bitte den Ersteller des Pakets oder senden Sie einen Fehlerbericht, um dies einzufordern.</p>
+      </note>
+
+      <p>In <app>glabels</app> haben Sie ein neues Dokument unter Verwendung der Dokumentvorlage »Avery 5512 Adressetiketten« erzeugt. Zunächst öffnen Sie mittels <guiseq><gui>Objekte</gui><gui>Mischeinstellungen</gui></guiseq> den Dialog <gui>Mischeinstellungen</gui>. In diesem Dialog wählen Sie wie gezeigt die Datenquelle aus, in diesem Fall CSV, sowie die Mischquelle (Dateiname).</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-1.png" mime="image/png" style="right">
+               <p>Mischeinstellungen-Dialog</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Sobald Sie <gui>Daten aus dem vorgegebenen Evolution-Adressbuch</gui> als Mischquelle gewählt haben, erhalten Sie eine vollständige Liste mit dessen Inhalt. Anfänglich sind alle Einträge ausgewählt. Angenommen, Sie planen eine wirklich große Party, können Sie die Auswahl unverändert belassen. Behalten Sie jedoch dabei Ihre finanziellen Möglichkeiten im Auge. Sie können bestimmte Einträge auswählen oder wieder abwählen, indem Sie die entsprechenden Ankreuzfelder anklicken. Alternativ können Sie durch Anklicken der Knöpfe <gui>Alle markieren</gui> oder <gui>Markierung aufheben</gui> alle Einträge des Adressbuchs aktivieren oder deaktivieren. </p>
+      <p>Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf <gui>OK</gui>, um die Änderungen anzuwenden.</p>
+
+      <p>Nun beginnen wir mit dem Hinzufügen von Objekten zu unserem <app>gLabels</app>-Dokument, wie gezeigt.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-2.png" mime="image/png" style="right">
+               <p>Hinzufügen von Objekten</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>In diesem Beispiel haben Sie ein einzelnes Textobjekt. Dieses Textobjekt enthält alle Einmischfelder, angeordnet in mehreren Zeilen wie eine Versandadresse.</p>
+
+      <p>Nun können Sie Ihre Adressetiketten drucken, indem Sie <guiseq><gui>Datei</gui><gui>Drucken</gui></guiseq> wählen. Der unten angezeigte Druckdialog wird geöffnet.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-3.png" mime="image/png" style="right">
+               <p>Adressetiketten drucken</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Um sicher zu stellen, dass Ihre Etiketten gut aussehen, wählen Sie die Option <gui>Begrenzungen drucken</gui> und klicken auf <gui>Druckvorschau</gui>. Der Druckvorschaudialog wird geöffnet, wie unten angezeigt.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-4.png" mime="image/png" style="right">
+               <p>Adressetiketten-Vorschau</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden Etiketten bestücken, die Adressetiketten drucken und die Einladungen zur Party versenden.</p>
+
+
+</page>
diff --git a/help/de/merge-ex4.page b/help/de/merge-ex4.page
new file mode 100644 (file)
index 0000000..8d30687
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge-ex4" xml:lang="de">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Erstellen von Adressetiketten aus einer vCard-Datei.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Beispiel 4: Adressetiketten unter Nutzung einer vCard-Datei</title>
+
+
+</page>
diff --git a/help/de/merge.page b/help/de/merge.page
new file mode 100644 (file)
index 0000000..356347f
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge" xml:lang="de">
+
+  <info>
+    <link type="guide" xref="index#merging"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Einmischen einer Datenquelle zur Erstellung von Seriendokumenten.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Anleitung zur Dokumentmischung</title>
+
+    <p>Dokumentmischung ist ein mächtiges Funktionsmerkmal, das es Ihnen ermöglicht, ein einzelnes Etikett oder eine einzelne Karte für jeden Datensatz aus einer externen Datenquelle zu erstellen. Es ist allerdings die am häufigsten missverstandene Funktion in <app>glabels</app>. Die folgenden Beispiele führen Sie schrittweise durch viele der Aufgaben, die Sie mit der Dokumentmischung ausführen können.</p>
+
+  <section id="merge-ex" style="2column">
+  </section>
+
+</page>
diff --git a/help/de/mergefeatures.page b/help/de/mergefeatures.page
new file mode 100644 (file)
index 0000000..2278003
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="mergefeatures" xml:lang="de">
+
+  <info>
+    <link type="guide" xref="index#merging"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Was Sie von einer Dokumentmischung erwarten können.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Ausführung einer Dokumentmischung</title>
+
+      <p>Dokumentmischung ist ein mächtiges Funktionsmerkmal, das es Ihnen ermöglicht, ein einzelnes Etikett oder eine einzelne Karte für jeden Datensatz aus einer externen Datenquelle zu erstellen.</p>
+
+      <p>Der erste Schritt zur Ausführung einer Dokumentmischung ist die Vorbereitung eines Quelldokuments, welches die Daten zum Mischen enthält. Diese Daten können aus E-Mail-Adressen oder anderen Daten bestehen, aus denen Sie die einzelnen Etiketten oder Karten erstellen wollen. Gegenwärtig können als Datenquellen entweder Textdateien oder die Daten des Evolution-Adressbuchs verwendet werden, andere sind bereits in Planung. Das derzeit unterstützte Textformat ist recht einfach: Jede Zeile stellt einen Datensatz dar, wobei die einzelnen Felder durch Kommata (CSV), Tabulatoren oder Semikola getrennt werden. Neue Zeilen werden durch einen Zeilenumbruch »\n« erzeugt. Diese Datei kann mit einem Texteditor, einem anderen Programm oder einem Skript erstellt werden. Ein üblicher Weg der Erstellung ist der Export einer CSV-Datei aus einer Tabellenkalkulation.</p>
+
+      <p>Ein Etikett muss erstellt werden, das auf diese Datenquelle »zeigt«. Um die Mischeigenschaften für ein Dokument festzulegen, wählen Sie <guiseq><gui>Objekte</gui><gui>Mischeinstellungen</gui></guiseq>. Der Dialog <gui>Mischeigenschaften</gui> wird geöffnet. In diesem Dialog wählen Sie das genaue Dateiformat und den Dateinamen (den Ort) der einzumischenden Daten aus.</p>
+
+      <p>Zum Schluss, sobald das Etikett für die Datenquelle eingerichtet wurde, können die Feldschlüssel in Textobjekte eingefügt werden, um sie als Datenquelle für Strichcodeobjekte oder Bilder für Bildobjekte zu verwenden. Weitere Informationen über die Verwendung der Mischdaten für diese Objekttypen finden Sie in <link xref="editprop"/>.</p>
+
+      <p>Da Ihr Etikett nun konfiguriert ist, druckt <app>gLabels</app> genau ein Etikett für jeden Datensatz des Quelldokuments, wobei alle Text-, Bild- und Strichcode-Objekte durch die Einträge der Felder jedes Datensatzes ersetzt werden.</p>
+
+      <p>In <link xref="merge"/> finden Sie eine ausführliche Anleitung für dieses Funktionsmerkmal.</p>
+
+</page>
diff --git a/help/de/multifile.page b/help/de/multifile.page
new file mode 100644 (file)
index 0000000..cd04dc8
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="multifile" xml:lang="de">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Öffnen mehrerer Dateien aus einer Befehlszeile.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Öffnen mehrerer Dateien aus einer Befehlszeile</title>
+
+      <p>Sie können <app>gLabels</app> aus einer Befehlszeile starten und eine Datei oder mehrere Dateien öffnen. Um mehrere Dateien aus einer Befehlszeile zu öffnen, geben Sie den folgenden Befehl ein und drücken dann die <key>Eingabetaste</key>:</p>
+
+      <p><cmd>glabels <var>Datei1.glabels Datei2.glabels Datei3.glabels</var></cmd></p>
+
+      <p>Wenn die Anwendung startet, werden die von Ihnen angegebenen Dateien in separaten -<app>gLabels</app>-Fenstern angezeigt.</p>
+
+</page>
diff --git a/help/de/newlabel.page b/help/de/newlabel.page
new file mode 100644 (file)
index 0000000..4680c3b
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="newlabel" xml:lang="de">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Erstellen einer neuen Karte oder eines neuen Etiketts in <app>gLabels</app>.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Erstellen eines neuen Etiketts oder einer neuen Karte</title>
+
+    <p>Um ein neues Etikett oder eine neue Visitenkarte anzulegen, wählen Sie <guiseq><gui>Datei</gui><gui>Neu</gui></guiseq>, um den Dialog <gui>Neues Etikett oder neue Karte</gui> anzuzeigen. Wählen Sie den Medientyp und die Ausrichtung für das neue Dokument aus und klicken Sie anschließend auf <gui>OK</gui>. Ein neues Dokument erscheint im Anzeigebereich des <app>gLabels</app>-Fensters.</p>
+
+</page>
diff --git a/help/de/printfile.page b/help/de/printfile.page
new file mode 100644 (file)
index 0000000..1744006
--- /dev/null
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="printfile" xml:lang="de">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Ausdrucke von Ihren Etiketten oder Karten erstellen.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Drucken von Etiketten oder Karten</title>
+
+      <p>Um Etiketten oder Visitenkarten zu drucken, wählen Sie <guiseq><gui>Datei</gui><gui>Drucken</gui></guiseq>, um den <gui>Drucken</gui>-Dialog anzuzeigen. Nachdem Sie die Druckoptionen ausgewählt haben, klicken Sie auf <gui>Drucken</gui>, um die Etiketten oder Visitenkarten zu drucken. Um zunächst eine Vorschau auf die Druckergebnisse zu erhalten, klicken Sie auf <gui>Druckvorschau</gui>.</p>
+
+      <p>Im Dialog <gui>Drucken</gui> können Sie die folgenden Optionen zum Drucken festlegen:</p>
+
+      <section>
+       <title>Der Reiter »Etiketten« des Druckdialogs</title>
+
+       <section>
+            <title>Drucksteuerung (einfach)</title>
+
+             <p>Für einfache Etiketten oder Karten (keine Dokumentmischung) enthält der Reiter »Labels« die folgenden Einstellmöglichkeiten.</p>
+
+             <!-- ==== Figure ==== -->
+               <media type="image" src="figures/print-copies.png" mime="image/png" style="right">
+               <p>Angeben der Kopien</p>
+               </media>
+             <!-- ==== End of Figure ==== -->
+
+             <p>Die Anzahl der Kopien können Sie wählen, indem Sie die Anzahl der vollständig zu druckenden Seiten oder eine Teilmenge von Etiketten auf einer einzelnen Seite auswählen.</p>
+
+             <p>Die verkleinerte Vorschau können Sie auch dazu verwenden, einen Teil der Etiketten grafisch auszuwählen, indem Sie auf das erste Etikett klicken und es auf das letzte Etikett ziehen.</p>
+
+         </section>
+
+         <section>
+            <title>Drucksteuerung (Mischen)</title>
+
+             <p>Für Etiketten oder Karten unter Verwendung der Dokumentmischung enthält dieser Reiter die folgenden Einstellungen zur Mischung von Dokumenten anstelle der Festlegung der Kopien.</p>
+
+             <!-- ==== Figure ==== -->
+               <media type="image" src="figures/print-merge.png" mime="image/png" style="right">
+               <p>Steuerung der Einmischung von Dokumenten</p>
+               </media>
+             <!-- ==== End of Figure ==== -->
+
+             <p>Die Gesamtzahl der gedruckten Etiketten oder Karten ergibt sich als Produkt aus der Anzahl der Datensätze in der Einmischquelle und der Anzahl der gewählten Kopien. Falls mehrere Kopien gewählt wurden, können diese entweder zusammengefasst werden (durch Gruppieren der Kopien des gleichen Datensatzes) oder nicht zusammengefasst (eine Kopie jedes Datensatzes wird immer vor der nächsten Kopie gedruckt).</p>
+
+             <p>Der Druck kann mit jedem beliebigen Etikett der ersten Seite begonnen werden. Dies können Sie im Einstellfeld <gui>Start bei Etikett</gui> auswählen.</p>
+
+             <p>In der verkleinerten Vorschau können Sie das erste Etikett grafisch auswählen, indem Sie das gewünschte Etikett anklicken.</p>
+
+         </section>
+
+         <section> 
+         <title>Optionen</title>
+             <p>Die folgenden Optionen können ebenfalls gewählt werden.</p>
+             <list>
+               <item>
+                 <p><gui>Begrenzungen drucken</gui></p>
+                 <p>Begrenzungen der Etiketten drucken. Diese Option ist nützlich, wenn Sie die Lage des Papiers im Drucker prüfen wollen.</p>
+               </item>
+               <item>
+                 <p><gui>Spiegelbildlich drucken</gui></p>
+                 <p>Druckt die Etiketten spiegelbildlich. Diese Option ist nützlich für das Drucken durchsichtiger Aufkleber, die von der Rückseite aus betrachtet werden (z.B. hinter Autoscheiben).</p>
+               </item>
+               <item>
+                 <p><gui>Schnitt</gui></p>
+                 <p>Druckt Schnittmarken entlang der Papierränder. Diese Option ist nützlich zum Drucken auf Papier, das erst nach dem Druck beschnitten werden soll. Diese Option funktioniert eventuell nicht mit allen Vorlagen.</p>
+               </item>
+             </list>
+       </section>
+       </section>
+
+</page>
diff --git a/help/de/select.page b/help/de/select.page
new file mode 100644 (file)
index 0000000..1e1c943
--- /dev/null
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="select" xml:lang="de">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Objekte auswählen.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Auswählen von Objekten</title>
+
+      <p>Eine Voraussetzung zum Ausführen von Operationen auf Objekten ist die Auswahl individueller Objekte oder Gruppen von Objekten. Der Anzeigebereich muss sich im Objektauswahlmodus befinden, was durch einen pfeilförmigen Mauszeiger angezeigt wird. Der Objektauswahlmodus wird über den Menüeintrag <guiseq><gui>Objekte</gui><gui>Auswahlmodus</gui></guiseq> aktiviert oder über das entsprechende Objekt in der <gui>Zeichenwerkzeugleiste</gui>.</p>
+
+      <section>
+         <title>Auswahl eines einzelnen Objekts</title>
+           <p>Ein einzelnes Objekt können Sie auswählen, indem Sie das gewünschte Objekt im Anzeigebereich anklicken. Nach dem Anklicken wird das Objekt durch Anfasspunkte zur Größenänderung hervorgehoben.</p>
+       </section>
+
+       <section>
+         <title>Auswahl mehrerer Objekte</title>
+           <p>Sie können mehrere Objekte auswählen, indem Sie zunächst das erste Objekt auswählen, wie oben beschrieben. Halten Sie dann bei der Auswahl weiterer Objekte die <key>Strg</key>-Taste gedrückt. Zusätzliche Objekte können Sie jederzeit zur Auswahl hinzufügen, wenn Sie wiederum die <key>Strg</key>-Taste gedrückt halten und die gewünschten Objekte auswählen. Alle Objekte lassen sich über den Menüeintrag <guiseq><gui>Bearbeiten</gui><gui>Alle auswählen</gui></guiseq> auswählen. Alle Objekte in einer zusammenhängenden Objektauswahl werden hervorgehoben dargestellt.</p>
+       </section>
+
+       <section>
+         <title>Bereichsauswahl</title>
+         
+           <p>Sie können auch mehrere Objekte auswählen, indem Sie in einen leeren Bereich klicken und mit der Maus die Form eines Rechtecks aufziehen. Daraufhin bilden alle Objekte in diesem Bereich eine zusammenhängende Auswahl. Eine Bereichsauswahl kann zum Hinzufügen einer vorhandenen Auswahl benutzt werden, wenn Sie bei der Auswahl die <key>Strg</key>-Taste gedrückt halten.</p>
+         
+       </section>
+
+       <section>
+         <title>Auswahl von Objekten aufheben</title>
+         
+           <p>Sie können individuelle Objekte aus einer vorhandenen Auswahl entfernen, wenn Sie beim Klicken auf ein zuvor ausgewähltes Objekt die <key>Strg</key>-Taste gedrückt halten. Die gesamte Auswahl können Sie rückgängig machen, indem Sie im Menü <guiseq><gui>Bearbeiten</gui><gui>Alle Markierungen löschen</gui></guiseq> wählen. Sobald ein Objekt nicht mehr ausgewählt ist, wird es nicht mehr hervorgehoben dargestellt.</p>
+         
+       </section>
+
+    <section id="clipboard"> 
+      <title>Befehle für die Zwischenablage</title>
+
+      <p>Objektauswahlen können durch die Standardoperationen der Zwischenablage <gui>Ausschneiden</gui>, <gui>Kopieren</gui>, <gui>Einfügen</gui> und <gui>Löschen</gui> manipuliert werden.</p>
+
+       <section>
+         <title><gui>Ausschneiden</gui> (<keyseq><key>Strg</key><key>X</key></keyseq>)</title>
+         
+           <p>Verschiebt die ausgewählten Objekte in die Zwischenablage. Diese Objekte sind dann verfügbar, um später in das aktuelle Dokument oder ein anderes Dokument eingefügt zu werden.</p>
+         
+       </section>
+
+       <section>
+         <title><gui>Kopieren</gui> (<keyseq><key>Strg</key><key>C</key></keyseq>)</title>
+         
+           <p>Kopiert die ausgewählten Objekte in die Zwischenablage, ohne sie zu entfernen. Diese Objekte sind dann verfügbar, um später in das aktuelle Dokument oder ein anderes Dokument eingefügt zu werden.</p>
+         
+       </section>
+
+       <section>
+         <title><gui>Einfügen</gui> (<keyseq><key>Strg</key><key>V</key></keyseq>)</title>
+         
+           <p>Fügt Objekte aus der Zwischenablage in das aktuelle Dokument ein. <app>gLabels</app> kann nur Objekte aus anderen <app>gLabels</app>-Dokumenten einfügen.</p>
+         
+       </section>
+
+       <section>
+         <title><gui>Löschen</gui> (<key>Entf</key>)</title>
+         
+           <p>Entfernt die ausgewählten Objekte, ohne sie in die Zwischenablage zu verschieben.</p>
+         
+       </section>
+       </section>
+
+</page>
diff --git a/help/de/skipfields.page b/help/de/skipfields.page
new file mode 100644 (file)
index 0000000..f3f05d3
--- /dev/null
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="mergeskipfields" xml:lang="de">
+
+  <info>
+    <link type="guide" xref="index#merging"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Überspringen von leeren Adresszeilen bei der Ausführung einer Dokumentmischung.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+  <title>Überspringen leerer Adresszeilen</title>
+
+  <p>Dieses Funktionsmerkmal lässt sich am besten anhand eines einfachen Beispiels beschreiben. In der folgenden CSV-Datei enthält die Spalte 5 (ADDR2) die zweite Adresszeile jedes Datensatzes. Dieses Feld ist in den Datensätzen 1 und 2 leer, nicht jedoch in Datensatz 3. Damit dies auch funktioniert, muss das Feld wirklich vollständig leer sein. Jeglicher Text, selbst wenn es auch nur Leerzeichen sein sollten, wird diese Funktion scheitern lassen.</p>
+
+  <code>
+  LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP
+  Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037
+  McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813
+  Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207
+  </code>
+
+  <p>Im folgenden Bildschirmfoto wurde ein mehrzeiliges Textobjekt erzeugt, um diese Adressen zu formatieren. Beachten Sie, dass ${ADDR2}, welches die zweite Adresszeile darstellt, in einer eigenen Zeile steht. Jeder zusätzliche Text, auch Leerzeichen, lassen diese Funktion scheitern.</p>
+
+  <media type="image" src="figures/skip-fields-screenshot.png" mime="image/png" style="right">
+  <p>Mehrzeilige Adressen</p>
+  </media>
+
+  <p>Durch Drucken der Etiketten erhalten Sie folgende Ausgabe. Beachten Sie, dass die Zeile, welche das Feld ${ADDR2} enthält, für die ersten zwei Datensätze komplett übersprungen wurde, ohne dass eine leere Zeile gedruckt wird.</p>
+
+  <media type="image" src="figures/skip-fields-output.png" mime="image/png" style="right">
+  <p>Ausgabe</p>
+  </media>
+
+</page>
diff --git a/help/es/about.page b/help/es/about.page
new file mode 100644 (file)
index 0000000..4e5f5f6
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="topic" id="about" xml:lang="es">
+
+  <info>
+    <link type="seealso" xref="index"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Información acerca de <app>gLabels</app>.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Compartir Igual 3.0</p>
+    </license>    
+  </info>
+
+    <title>Acerca de <app>gLabels</app></title>
+
+    <p><link href="mailto:evins@snaught.com">Jim Evins</link> escribió <app>gLabels</app>. Para obtener más información acerca de <app>gLabels</app>, visite la <link href="http://glabels.org" type="http">página web de<app>gLabels</app></link>.</p>
+    <p>Para informar de un error o hacer una sugerencia acerca de esta aplicación o este manual, siga las indicaciones en la <link href="http://glabels.org/contact/" type="http">página de contacto de <app>gLabels</app></link>.</p>
+
+    <p>Este programa se distribuye bajo los términos de la Licencia Pública General GNU tal como la publica la Free Software Foundation; tanto en la versión 3 de la Licencia, o (a su elección) cualquier otra versión posterior. Puede encontrarse una copia de esta licencia en este <link href="ghelp:gpl" type="help">enlace</link>, o en el archivo COPYING incluido con el código fuente de este programa.</p>
+</page>
diff --git a/help/es/basicusage.page b/help/es/basicusage.page
new file mode 100644 (file)
index 0000000..151203d
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="basicusage" xml:lang="es">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Manejar archivos y salir de la aplicación.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Compartir Igual 3.0</p>
+    </license>    
+  </info>
+
+   <title>Uso básico</title>
+    
+    <section>
+    <title>Abrir un archivo</title>
+
+      <p>Para abrir un archivo, elija  <guiseq><gui>Archivo</gui><gui>Abrir</gui></guiseq> para mostrar el diálogo de <gui>Abrir archivo</gui>. Seleccione el archivo que quiere abrir y pulse <gui>Aceptar</gui>. El archivo se muestra en el área de visualización de la ventana de <app>gLabels</app>.</p>
+
+      <p>Puede abrir múltiples archivos en <app>gLabels</app>. La aplicación crea una ventana de aplicación separada para cada archivo abierto.</p>
+
+      <p>La aplicación guarda las rutas y los nombres de archivo de los archivos más recientes que haya editado, y muestra los archivos como elementos del menú <guiseq><gui>Archivo</gui><gui>Archivos recientes</gui></guiseq>.</p>
+     </section>
+
+     <section id="closefile">
+    <title>Cerrar un archivo</title>
+
+      <p>Para cerrar el documento actual, elija <guiseq><gui>Archivo</gui><gui>Cerrar</gui></guiseq> para cerrar la ventana de la aplicación. Si el documento actual se ha modificado, se mostrará un diálogo de confirmación, permitiéndole guardar el documento o cancelar el comando. Si la ventana que va a cerrar es la única que está abierta, <app>gLabels</app> se cerrará.</p>
+     </section>
+     
+     <section>
+    <title>Guardar un archivo</title>
+
+      <p>Puede guardar archivos de cualquiera de estas maneras:</p>
+
+      <list><item>
+
+         <p>Para guardar los cambios a un archivo existente, elija <guiseq><gui>Archivo</gui><gui>Guardar</gui></guiseq>.</p>
+
+       </item>
+        <item>
+
+         <p>Para guardar un archivo nuevo o para guardar un archivo existente con un nombre de archivo nuevo, elija <guiseq><gui>Archivo</gui><gui>Guardar como</gui></guiseq>. Introduzca un nombre para el archivo en el cuadro de diálogo <gui>Guardar como</gui> y pulse <gui>Aceptar</gui>.</p>
+
+       </item>
+      </list>
+     </section>
+
+     <section>
+    <title>Salir de <application>gLabels</application></title>
+
+      <p>Para salir de <app>gLabels</app>, elija <guiseq><gui>Archivo</gui><gui>Quitar</gui></guiseq>. Esto es equivalente a cerrar todas las ventanas abiertas. Consulte la <link xref="basicusage#closefile"/>.</p>
+     </section>
+</page>
diff --git a/help/es/createnew.page b/help/es/createnew.page
new file mode 100644 (file)
index 0000000..87f05b9
--- /dev/null
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="createnew" xml:lang="es">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Crear objetos nuevos dentro de su documento.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Compartir Igual 3.0</p>
+    </license>    
+  </info>
+
+    <title>Crear objetos nuevos</title>
+
+      <p>Los objetos se crean eligiendo la selección adecuada en el submenú <guiseq><gui>Objetos</gui><gui>Crear Objeto</gui></guiseq> o la <gui>Barra de dibujo</gui>. Esto situará el área de visualización en el modo de creación de objetos como indica su cursor. Para volver al modo de selección de objetos predeterminado sin crear un objeto, seleccione<guiseq><gui>Objetos</gui><gui>Seleccionar modo</gui></guiseq>. Esto devolverá el cursor del área de visualización a la flecha de selección predeterminada.</p>
+
+      <p>A continuación se describe el modo de creación de un objeto para cada tipo de objeto:</p>
+
+       <section>
+         <title>Texto</title>
+           <p>Pulse en la ubicación que quiera en la esquina superior izquierda del objeto de texto y arrástrelo. Los objetos de texto nuevos se inicializan con la cadena «Texto». Para cambiar este texto u otras propiedades, consulte la <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Caja</title>
+           <p>Pulse en la ubicación que quiera en la esquina superior izquierda del objeto de caja y arrástrelo a la ubicación que quiere en la esquina inferior derecha. Si simplemente pulsa en una única ubicación, se creará una caja cuadrada. Para cambiar las propiedades del objeto de caja, consulte la <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Línea</title>
+           <p>Pulse en la ubicación que quiera en uno de los extremos del objeto de línea y arrástrelo a la ubicación que quiere en el otro extremo. Si simplemente pulsa en una única ubicación, se creará una línea. Para cambiar las propiedades del objeto de línea, consulte la <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Elipse</title>
+           <p>Pulse en la ubicación que quiera en la esquina superior izquierda del objeto de elipse y arrástrelo a la ubicación que quiere en la esquina inferior derecha. Si simplemente pulsa en una única ubicación, se creará un círculo. Para cambiar las propiedades del objeto de elipse, consulte la <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Imagen</title>
+           <p>Pulse en la ubicación que quiera en la esquina superior izquierda del objeto de imagen y arrástrelo a la ubicación que quiere en la esquina inferior derecha. Si simplemente pulsa en una única ubicación, se creará un cuadrado. Los objetos de imagen nuevos se inicializan con una imagen cuadriculada. Para cambiar esta imagen, u otras propiedades del objeto de imagen, consulte la <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Código de barras</title>
+           <p>Pulse en la ubicación que quiera en la esquina superior izquierda del objeto de código de barras. Los objetos de código de barras nuevos se inicializan con un código de barras POSTNET con datos representativos. Para cambiar los datos y las propiedades del objeto de código de barras, consulte la <link xref="editprop"/>.</p>
+       </section>
+
+</page>
diff --git a/help/es/customize.page b/help/es/customize.page
new file mode 100644 (file)
index 0000000..0bdc861
--- /dev/null
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="customize" xml:lang="es">
+
+  <info>
+    <link type="guide" xref="index#advanced"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Personalizar <app>gLabels</app> para ajustarlo a sus necesidades.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Compartir Igual 3.0</p>
+    </license>    
+  </info>
+    
+  <!-- ============= Customization ============================= -->
+  <!-- Use this section to describe how to customize the application. -->
+    <title>Configuración</title> 
+    <p>Para configurar <app>gLabels</app>, elija <guiseq><gui>Configuración</gui><gui>Preferencias</gui></guiseq>. El diálogo <gui>Preferencias</gui> contiene las siguientes secciones en pestañas:</p>
+
+  <section id="prefs-locale" style="2column">
+    <title>Región</title>
+       <section>
+       <title>Unidades</title>
+       <p>Use este grupo de botones de radio para especificar sus unidades favoritas. Seleccione una de las siguientes opciones:</p>
+          <list>
+               <item>
+               <p><gui>Puntos</gui></p>
+               <p>Usar puntos (1 punto = 1/72 pulgadas = 0.352778 mm).</p>
+               </item>
+               <item>
+               <p><gui>Pulgadas</gui></p>
+               <p>Usar pulgadas.</p>
+               </item>
+               <item>
+               <p><gui>Milímetros</gui></p>
+               <p>Usar milímetros.</p>
+               </item>
+          </list>
+          <p>Predeterminado: <gui>pulgadas</gui>.</p>
+       </section>
+
+       <section>
+       <title>Tamaño de página predeterminado</title>
+       <p>Use este grupo de botones de radio para especificar su tamaño de página favorito. Esto hará que localice más rápidamente los tipos de medios cuando crea una etiqueta o una tarjeta nuevas.</p>
+          <list>
+               <item>
+               <p><gui>Carta</gui></p>
+               <p>La mayoría de sus medios serán tendrán un tamaño de página «Carta» (8.5 x 11 pulgadas).</p>
+               </item>
+               <item>
+               <p><gui>ISO A4</gui></p>
+               <p>La mayoría de sus medios serán del tamaño de página ISO A4 (210 x 297 mm).</p>
+               </item>
+          </list>
+          <p>Predeterminado: <gui>Carta</gui>.</p>             
+       </section>
+    </section>
+
+  <section id="prefs-defaults" style="2column">
+    <title>Opciones predeterminadas para el objeto</title>
+
+       <section>
+       <title>Texto</title>
+       <p>Use estos controles para configurar las propiedades predeterminadas de los objetos de texto nuevos. Estas propiedades son:</p>
+          <list>
+               <item>
+               <p><gui>Tipografía</gui></p>
+               <p>Estos controles se usan para seleccionar la familia tipográfica y su tamaño, y si la tipografía debe ser negrita o cursiva.</p>
+               </item>
+               <item>
+               <p><gui>Color</gui></p>
+               <p>Este control selecciona el color predeterminado del texto.</p>
+               </item>
+               <item>
+               <p><gui>Alineación</gui></p>
+               <p>Estos controles se usan para seleccionar la alineación predeterminada del texto (izquierda, centrado o derecha).</p>
+               </item>
+          </list>
+       </section>
+
+       <section>
+       <title>Línea</title>
+       <p>Use estos controles para establecer las propiedades predeterminadas de las líneas y los márgenes de los objetos nuevos. Estas propiedades son:</p>
+          <list>
+               <item>
+               <p><gui>Anchura</gui></p>
+               <p>Este control selecciona la anchura predeterminada de la línea.</p>
+               </item>
+               <item>
+               <p><gui>Color</gui></p>
+               <p>Este control selecciona el color predeterminado de la línea.</p>
+               </item>
+          </list>
+       </section>
+
+       <section>
+       <title>Relleno</title>
+       <p>Use este control para establecer la propiedad predeterminada de relleno de los objetos nuevos. Esta propiedad es:</p>
+          <list>
+               <item>
+               <p><gui>Color</gui></p>
+               <p>Este control selecciona el color predeterminado de relleno.</p>
+               </item>
+          </list>
+       </section>
+       </section>
+
+</page>
diff --git a/help/es/customtemplate.page b/help/es/customtemplate.page
new file mode 100644 (file)
index 0000000..14ab81f
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="customtemplate" xml:lang="es">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Crear sus propias plantillas para productos de papelería.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Compartir Igual 3.0</p>
+    </license>    
+  </info>
+
+    <title>Crear una plantilla personalizada</title>
+
+      <p>Para crear una plantilla nueva personalizada, elija <guiseq><gui>Archivo</gui><gui>Diseñador de plantillas...</gui></guiseq> para mostrar el diálogo <gui>Diseñador de plantillas</gui>. Este diálogo le asistirá en la creación de una plantilla personalizada para la mayoría de tipos de etiquetas o tarjetas de papelería que pueda encontrar.</p>
+
+      <p>Si lo prefiere, puede crear sus plantillas manualmente. Para esta opción consulte la <link xref="mancreate"/></p>
+
+</page>
diff --git a/help/es/editprop.page b/help/es/editprop.page
new file mode 100644 (file)
index 0000000..a82d7c5
--- /dev/null
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="editprop" xml:lang="es">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Cambiar las propiedades de objetos.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Compartir Igual 3.0</p>
+    </license>    
+  </info>
+
+    <title>Editar las propiedades del objeto</title>
+
+    <section id="glabels-object-properties">
+
+      <p>La mayoría de las propiedades de un objeto se pueden modificar a través de la barra lateral del editor de objetos. Para usar el editor de objetos, se debe seleccionar primero un objeto. Consulte la <link xref="select"/>.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/object-editor-sidebar.png" mime="image/png" style="right">
+               <p>Controles de impresión de copia</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>El editor de objetos contendrá un subconjunto de las siguientes secciones en pestañas, dependiendo del tipo de objeto:</p>
+
+      <section id="object-editor-text">
+       <title>Sección de texto en pestañas (objetos de texto)</title>
+
+       <p>Esta sección contiene un pequeño editor para cambiar el contenido de un objeto de texto. También contiene un menú desplegable con las claves combinadas del documento disponibles, que se pueden insertar en el texto.</p>
+
+      </section>
+
+      <section id="object-editor-image">
+       <title>Sección de imagen en pestañas (objetos de imagen)</title>
+
+       <p>Esta sección contiene una entrada de archivo con vista previa para seleccionar los archivos de imagen. El botón de exploración se puede usar fácilmente para encontrar archivos de imágenes. Alternativamente, se puede usar la clave de combinación de un documento para proporcionar un nombre de archivo a la hora de imprimir.</p>
+
+      </section>
+
+      <section id="object-editor-data">
+       <title>Sección de datos en pestañas (objetos de código de barras)</title>
+
+       <p>Esta sección contiene una entrada de texto para introducir datos de un código de barras literalmente. Alternativamente, se puede usar la clave de combinación de un documento para proporcionar este dato a la hora de imprimir.</p>
+
+      </section>
+
+      <section id="object-editor-style">
+       <title>Sección de estilo en pestañas (objetos de texto)</title>
+
+       <p>Esta sección contiene controles para seleccionar las propiedades del texto, incluyendo la familia tipográfica, tamaño, peso, color y justificación del texto.</p>
+
+      </section>
+
+      <section id="object-editor-barcode">
+       <title>Sección de estilo en pestañas (objetos de código de barras)</title>
+
+       <p>Esta sección contiene controles para seleccionar las propiedades del código de barras, incluyendo su estilo, color, si se debe imprimir texto y si se debe incluir un dígito de control.</p>
+
+      </section>
+
+      <section id="object-editor-line">
+       <title>Sección de línea en pestañas</title>
+
+       <p>Esta sección contiene controles para seleccionar las propiedades de las líneas y de los márgenes. Estas propiedades incluyen el ancho de línea y el color.</p>
+
+      </section>
+
+      <section id="object-editor-fill">
+       <title>Sección de relleno en pestañas</title>
+
+       <p>Esta sección contiene controles para seleccionar las propiedades de relleno de objetos de caja y de elipse. Actualmente, la única propiedad del relleno es el color.</p>
+
+      </section>
+
+      <section id="object-editor-size">
+       <title>Sección de tamaño en pestañas (todos excepto los objetos de línea)</title>
+
+       <p>Esta sección contiene controles para seleccionar la anchura y la altura de un objeto. Se proporciona una casilla, por lo que la relación de aspecto actual se puede bloquear mientras se manipulan los controles de anchura y altura. Los objetos de imagen también proporcionan un botón para reiniciar el tamaño al original de la imagen (se asumen 72DPI)</p>
+
+      </section>
+
+      <section id="object-editor-size-line">
+       <title>Sección de tamaño en pestañas (objetos de línea)</title>
+
+       <p>Esta sección contiene controles para seleccionar la longitud y el ángulo de un objeto de línea.</p>
+
+      </section>
+
+      <section id="object-editor-position">
+       <title>Sección de posición en pestañas</title>
+
+       <p>Esta sección contiene controles para cambiar la posición de un objeto.</p>
+
+      </section>
+
+
+      <section id="object-editor-shadow">
+       <title>Sección de sombra en pestañas (todos excepto los objetos de código de barras)</title>
+
+       <p>Esta sección contiene controles para añadir sombre a un objeto.</p>
+
+      </section>
+
+
+    </section>
+
+<!-- ============= Other Manipulations of Objects ========= -->
+    <section id="glabels-object-manipulation"> 
+      <title>Otras manipulaciones de objetos</title>
+
+      <p>Los objetos se pueden manipular de las siguientes maneras.</p>
+
+      <section id="other-moving-resizing">
+       <title>Mover y redimensionar objetos</title>
+
+       <p>Los objetos se pueden mover simplemente pulsando en un objeto seleccionado y arrastrando el objeto a su nueva ubicación. Si el objeto es parte de una selección agregada, todos los objetos en la selección se moverán junto al objeto que se arrastra, manteniendo su posición relativa respecto a los otros. Si no se selecciona ningún objeto, al pulsar sobre un objeto se creará una selección nueva que contenga a ese objeto. Consulte la <link xref="select"/>.</p>
+
+       <p>Un objeto seleccionado se puede redimensionar pulsando una vez sobre su controlador de tamaño y arrastrándolo para obtener el nuevo tamaño.</p>
+
+      </section>
+
+      <section id="other-stacking-order">
+       <title>Cambiar el orden de apilamiento</title>
+
+       <p>El orden de apilamiento se refiere a la posición relativa en el eje z de los objetos. Esto es cuando los objetos se solapan, qué objeto aparecerá encima de otro. De manera predeterminada, los objetos nuevos aparecerán encima de los objetos más antiguos. Para cambiar este orden, seleccione uno o más objetos y elija <guiseq><gui>Objetos</gui><gui>Orden</gui><gui>Traer al frente</gui></guiseq> para subir la selección hasta la parte superior del orden de apilamiento, o elija <guiseq><gui>Objetos</gui><gui>Orden</gui><gui>Enviar al fondo</gui></guiseq> para bajar la selección hasta la parte inferior del orden de apilamiento. Estos elementos de menú también están disponibles pulsando con el botón derecho en el área de visualización cuando no hay una selección vacía.</p>
+
+      </section>
+
+      <section id="other-rotating-flipping">
+       <title>Rotar y voltear objetos</title>
+
+       <p>Los objetos se pueden rotar 90 grados en cualquier dirección o voltearse horizontal o verticalmente eligiendo el elemento de menú adecuado en el submenú <guiseq><gui>Objetos</gui><gui>Rotar/Voltear</gui></guiseq>. Estos elementos de menú también están disponibles pulsando con el botón derecho en el área de visualización cuando no hay una selección vacía.</p>
+
+         <note>
+         <p>Esta característica puede ser útil cuando diseñe carátulas interiores de CD. Para el texto circular necesita texto alineado verticalmente. Después de que haya creado la caja de texto básica, elija <guiseq><gui>Objetos</gui><gui>Rotar/Voltear</gui></guiseq> para rotar la caja de texto de acuerdo a sus necesidades.</p>
+         </note>
+
+      </section>
+
+      <section id="other-alignment">
+       <title>Alinear objetos</title>
+
+       <p>Los objetos se pueden alinear horizontal o verticalmente, relativo a otro o relativo a la línea central de la etiqueta, eligiendo el elemento de menú apropiado de los submenús <guiseq><gui>Objetos</gui><gui>Alineación horizontal</gui></guiseq> o <guiseq><gui>Objetos</gui><gui>Alineación vertical</gui></guiseq>. Estos elementos de menú también están disponibles pulsando con el botón derecho en el área de visualización cuando no hay una selección vacía.</p>
+
+      </section>
+
+      <section id="other-property-bar">
+       <title>Usar la barra de propiedades</title>
+
+       <p>La barra de propiedades se puede usar para cambiar en masa algunas propiedades de los archivos. Estas propiedades incluyen la familia tipográfica, el tamaño de la tipografía, su peso, la alineación del texto, el color de relleno, de la línea o del contorno y el ancho de la línea. La barra de propiedades también controla los valores predeterminados de estas propiedades para cualquier objeto nuevo creado.</p>
+
+      </section>
+
+
+
+    </section>
+
+</page>
index 5b32a8bf3a080a3f2c977a2b84e3114aeeb5b5bf..5fdaf60976504ad736542411cf8a802512fa1236 100644 (file)
 # Spanish translation for glabels.
 # Copyright (C) 2010 glabels's COPYRIGHT HOLDER
 # This file is distributed under the same license as the glabels package.
-# Jorge González <jorgegonz@svn.gnome.org>, 2010.
+# Jorge González <jorgegonz@svn.gnome.org>, 2010, 2011.
+# Daniel Mustieles <daniel.mustieles@gmail.com>, 2010, 2011.
+#
 msgid ""
 msgstr ""
 "Project-Id-Version: glabels.help.glabels_2_2\n"
-"POT-Creation-Date: 2010-02-18 17:31+0000\n"
-"PO-Revision-Date: 2010-02-19 12:52+0100\n"
-"Last-Translator: Jorge González <jorgegonz@svn.gnome.org>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-02-27 13:42+0000\n"
+"PO-Revision-Date: 2011-04-03 16:37+0200\n"
+"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
 "Language-Team: Español <gnome-es-list@gnome.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
+"Language: \n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: KBabel 1.11.4\n"
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:195(None)
+#: C/skipfields.page:45(None)
 msgid ""
-"@@image: 'figures/main-window-empty.png'; "
-"md5=226b58f05f4171531066358a29cda1a7"
+"@@image: 'figures/skip-fields-screenshot.png'; "
+"md5=eef4a81f48546bd7d3753656a3df9cb7"
 msgstr ""
-"@@image: 'figures/main-window-empty.png'; "
-"md5=226b58f05f4171531066358a29cda1a7"
+"@@image: 'figures/skip-fields-screenshot.png'; "
+"md5=eef4a81f48546bd7d3753656a3df9cb7"
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:447(None)
-msgid ""
-"@@image: 'figures/print-copies.png'; md5=ebb4d08810a67cc9cd7ec6ddd7b52fb0"
-msgstr ""
-"@@image: 'figures/print-copies.png'; md5=ebb4d08810a67cc9cd7ec6ddd7b52fb0"
+#: C/skipfields.page:53(None)
+msgid ""
+"@@image: 'figures/skip-fields-output.png'; "
+"md5=b64d1a7fdf0d37e9a6d93f0bc2f9fa0d"
+msgstr ""
+"@@image: 'figures/skip-fields-output.png'; "
+"md5=b64d1a7fdf0d37e9a6d93f0bc2f9fa0d"
+
+#: C/skipfields.page:9(desc)
+msgid "How to skip blank address lines when doing a document merge."
+msgstr "Cómo omitir líneas de dirección en blanco al fusionar un documento."
+
+#: C/skipfields.page:13(name) C/select.page:13(name) C/printfile.page:13(name)
+#: C/newlabel.page:13(name) C/multifile.page:13(name) C/merge.page:13(name)
+#: C/mergefeatures.page:13(name) C/merge-ex4.page:13(name)
+#: C/merge-ex3.page:13(name) C/merge-ex2.page:13(name)
+#: C/merge-ex1.page:13(name) C/mancreate.page:14(name)
+#: C/labelprop.page:13(name) C/index.page:11(name) C/editprop.page:13(name)
+#: C/customtemplate.page:13(name) C/customize.page:11(name)
+#: C/createnew.page:13(name) C/basicusage.page:13(name) C/about.page:13(name)
+msgid "Jim Evins"
+msgstr "Jim Evins"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:479(None)
+#: C/skipfields.page:14(email) C/select.page:14(email)
+#: C/printfile.page:14(email) C/newlabel.page:14(email)
+#: C/multifile.page:14(email) C/merge.page:14(email)
+#: C/mergefeatures.page:14(email) C/merge-ex4.page:14(email)
+#: C/merge-ex3.page:14(email) C/merge-ex2.page:14(email)
+#: C/merge-ex1.page:14(email) C/mancreate.page:15(email)
+#: C/labelprop.page:14(email) C/index.page:12(email) C/editprop.page:14(email)
+#: C/customtemplate.page:14(email) C/customize.page:12(email)
+#: C/createnew.page:14(email) C/basicusage.page:14(email)
+#: C/about.page:14(email)
+msgid "evins@snaught.com"
+msgstr "evins@snaught.com"
+
+#: C/skipfields.page:17(name) C/select.page:17(name) C/printfile.page:17(name)
+#: C/newlabel.page:17(name) C/multifile.page:17(name) C/merge.page:17(name)
+#: C/mergefeatures.page:17(name) C/merge-ex4.page:17(name)
+#: C/merge-ex3.page:17(name) C/merge-ex2.page:17(name)
+#: C/merge-ex1.page:17(name) C/mancreate.page:18(name)
+#: C/labelprop.page:17(name) C/index.page:15(name) C/editprop.page:17(name)
+#: C/customtemplate.page:17(name) C/customize.page:15(name)
+#: C/createnew.page:17(name) C/basicusage.page:17(name) C/about.page:17(name)
+msgid "Mario Blättermann"
+msgstr "Mario Blättermann"
+
+#: C/skipfields.page:18(email) C/select.page:18(email)
+#: C/printfile.page:18(email) C/newlabel.page:18(email)
+#: C/multifile.page:18(email) C/merge.page:18(email)
+#: C/mergefeatures.page:18(email) C/merge-ex4.page:18(email)
+#: C/merge-ex3.page:18(email) C/merge-ex2.page:18(email)
+#: C/merge-ex1.page:18(email) C/mancreate.page:19(email)
+#: C/labelprop.page:18(email) C/index.page:16(email) C/editprop.page:18(email)
+#: C/customtemplate.page:18(email) C/customize.page:16(email)
+#: C/createnew.page:18(email) C/basicusage.page:18(email)
+#: C/about.page:18(email)
+msgid "mariobl@gnome.org"
+msgstr "mariobl@gnome.org"
+
+#: C/skipfields.page:21(p) C/select.page:21(p) C/printfile.page:21(p)
+#: C/newlabel.page:21(p) C/multifile.page:21(p) C/merge.page:21(p)
+#: C/mergefeatures.page:21(p) C/merge-ex4.page:21(p) C/merge-ex3.page:21(p)
+#: C/merge-ex2.page:21(p) C/merge-ex1.page:21(p) C/mancreate.page:22(p)
+#: C/labelprop.page:21(p) C/index.page:19(p) C/editprop.page:21(p)
+#: C/customtemplate.page:21(p) C/customize.page:19(p) C/createnew.page:21(p)
+#: C/basicusage.page:21(p) C/about.page:21(p)
+msgid "Creative Commons Share Alike 3.0"
+msgstr "Creative Commons Compartir Igual 3.0"
+
+#: C/skipfields.page:25(title)
+msgid "Skipping blank address lines"
+msgstr "Omitir líneas de dirección vacías"
+
+#: C/skipfields.page:27(p)
+msgid ""
+"This feature can be best described by a simple example. In the following CSV "
+"file, column 5 (ADDR2) contains the second address line for each record. "
+"This field is empty in records 1 and 2, but not in record 3. (For this "
+"feature to work, the field must be completely empty -- any text, including "
+"spaces will defeat this feature.)"
+msgstr ""
+"Esta característica se describe mejor con un ejemplo. En el siguiente "
+"archivo CSV, la columna 5 (ADDR2) contiene la segunda línea de dirección "
+"para cada registro. Este campo está vacío en los registros 1 y 2, pero no en "
+"el 3. (Para que esta característica funcione, el campo no debe contener "
+"ningún texto, ni siquiera espacios.)"
+
+#: C/skipfields.page:33(code)
+#, no-wrap
 msgid ""
-"@@image: 'figures/print-merge.png'; md5=ffe6027513a10f7ba940c350c1dc5717"
+"\n"
+"  LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n"
+"  Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n"
+"  McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n"
+"  Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n"
+"  "
 msgstr ""
-"@@image: 'figures/print-merge.png'; md5=ffe6027513a10f7ba940c350c1dc5717"
+"\n"
+"  LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n"
+"  Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n"
+"  McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n"
+"  Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n"
+"  "
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:790(None)
+#: C/skipfields.page:40(p)
 msgid ""
-"@@image: 'figures/object-editor-sidebar.png'; "
-"md5=14eace177c1f5bfe36022acbbd6a9f0e"
+"In the following screenshot, a single multiline text object has been created "
+"to format these addresses. Notice that ${ADDR2} representing the second "
+"address line is on a line by itself. (Any additional text on this line, "
+"including spaces would defeat this feature.)"
 msgstr ""
-"@@image: 'figures/object-editor-sidebar.png'; "
-"md5=14eace177c1f5bfe36022acbbd6a9f0e"
+"En la siguiente captura de pantalla, se ha creado un único objeto de texto "
+"multilínea para formatear estas direcciones. Tenga en cuenta que ${ADDR2} "
+"representa por sí misma la segunda línea de la dirección. (Cualquier texto "
+"adicional en esta línea, incluyendo los espacios, anularía esta "
+"característica.)"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1231(None)
-msgid ""
-"@@image: 'figures/merge-ex1-1.png'; md5=55a97963022047cdad6aa198b5ed698e"
-msgstr ""
-"@@image: 'figures/merge-ex1-1.png'; md5=55a97963022047cdad6aa198b5ed698e"
+#: C/skipfields.page:46(p)
+msgid "Multi-line address"
+msgstr "Dirección multilínea"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1256(None)
+#: C/skipfields.page:49(p)
 msgid ""
-"@@image: 'figures/merge-ex1-2.png'; md5=d03979f010e20e98532258edb20b1bc0"
+"Printing this label results in the following output. Notice that the line "
+"containing the ${ADDR2} field is completely skipped for the first two "
+"records, without printing a blank line."
 msgstr ""
-"@@image: 'figures/merge-ex1-2.png'; md5=d03979f010e20e98532258edb20b1bc0"
+"Al imprimir esta etiqueta se obtiene el siguiente resultado. Tenga en cuenta "
+"que la línea que contiene el campo  ${ADDR2} se omite completamente para los "
+"dos primeros registros, sin imprimir una línea en blanco."
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1284(None)
-msgid ""
-"@@image: 'figures/merge-ex1-3.png'; md5=94e382ccdfbc2fe5d320010d2ef10c61"
-msgstr ""
-"@@image: 'figures/merge-ex1-3.png'; md5=94e382ccdfbc2fe5d320010d2ef10c61"
+#: C/skipfields.page:54(p)
+msgid "Output"
+msgstr "Salida"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1302(None)
-msgid ""
-"@@image: 'figures/merge-ex1-4.png'; md5=e72810bc3c191df6c8b2ad0cb1131021"
-msgstr ""
-"@@image: 'figures/merge-ex1-4.png'; md5=e72810bc3c191df6c8b2ad0cb1131021"
+#: C/select.page:9(desc)
+msgid "How to select objects."
+msgstr "Cómo seleccionar objetos."
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1348(None)
-msgid ""
-"@@image: 'figures/merge-ex2-1.png'; md5=4f062158be21bfadc4adfbdcf5d0206f"
-msgstr ""
-"@@image: 'figures/merge-ex2-1.png'; md5=4f062158be21bfadc4adfbdcf5d0206f"
+#: C/select.page:25(title)
+msgid "To select objects"
+msgstr "Seleccionar objetos"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1374(None)
+#: C/select.page:27(p)
 msgid ""
-"@@image: 'figures/merge-ex2-2.png'; md5=f69a7e0ae86f66b0d70d39a7757918fa"
-msgstr ""
-"@@image: 'figures/merge-ex2-2.png'; md5=f69a7e0ae86f66b0d70d39a7757918fa"
+"A prerequisite for performing operations on objects is the selection of "
+"individual objects or groups of objects. The display area must be in the "
+"object selection mode to create new selections, as indicated by an arrow "
+"cursor. The object selection mode is selected by the <guiseq><gui>Objects</"
+"gui><gui>Select Mode</gui></guiseq> menu item, or the corresponding command "
+"on the <gui>Drawing Toolbar</gui>."
+msgstr ""
+"Un requisito previo para realizar operaciones en objetos es la selección "
+"individual o en grupo de objetos. El área de visualización debe estar en el "
+"modo de selección de objetos para crear selecciones nuevas, indicado por el "
+"cursor de flecha. El modo de selección de objetos se elije con el elemento "
+"de menú <guiseq><gui>Objetos</gui><gui>Seleccionar modo</gui></guiseq>, o "
+"con el comando correspondiente de la <gui>Barra de dibujo</gui>."
+
+#: C/select.page:38(title)
+msgid "Selecting a single object"
+msgstr "Seleccionar un sólo objeto"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1399(None) C/glabels.xml:1513(None)
+#: C/select.page:39(p)
 msgid ""
-"@@image: 'figures/merge-ex2-3.png'; md5=f5134b9e911ebdd17d4a5b36a5ba56d0"
+"A single object can be selected simply by clicking on the desired object in "
+"the display area. Once selected the object will be highlighted with a set of "
+"resizing handles."
 msgstr ""
-"@@image: 'figures/merge-ex2-3.png'; md5=f5134b9e911ebdd17d4a5b36a5ba56d0"
+"Se puede seleccionar un único objeto de texto simplemente pulsando sobre el "
+"objeto que quiere en el área de visualización. Una vez seleccionado, el "
+"objeto se resaltará con un conjunto de manejadores para redimensionarlo."
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1417(None) C/glabels.xml:1531(None)
-msgid ""
-"@@image: 'figures/merge-ex2-4.png'; md5=29a60e970cb026aecf75543203494b00"
-msgstr ""
-"@@image: 'figures/merge-ex2-4.png'; md5=29a60e970cb026aecf75543203494b00"
+#: C/select.page:46(title)
+msgid "Aggregate object selections"
+msgstr "Agregar selecciones de objetos"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1464(None)
+#: C/select.page:47(p)
 msgid ""
-"@@image: 'figures/merge-ex3-1.png'; md5=b0c387b5fcfd730b2ae75172895ff5b8"
-msgstr ""
-"@@image: 'figures/merge-ex3-1.png'; md5=b0c387b5fcfd730b2ae75172895ff5b8"
+"Multiple objects can be selected by first selecting the first object as "
+"above and then by holding the <key>Ctrl</key> key while selecting additional "
+"objects. Individual objects can be added to an existing selection at any "
+"time by holding the <key>Ctrl</key> key while selecting the desired objects. "
+"All objects can also be selected by using the <guiseq><gui>Edit</"
+"gui><gui>Select All</gui></guiseq> menu item. All objects in an aggregate "
+"object selection will be highlighted."
+msgstr ""
+"Se pueden seleccionar varios objetos seleccionando el primero de ellos y "
+"manteniendo pulsada la tecla <key>Ctrl</key> mientras selecciona los objetos "
+"adicionales. Se puede añadir objetos individuales a la selección existente "
+"en cualquier momento manteniendo pulsada la tecla <key>Ctrl</key> mientras "
+"selecciona los objetos que quiere. También puede seleccionar todos los "
+"objetos usando el elemento de menú <guiseq><gui>Editar</gui><gui>Seleccionar "
+"todo</gui></guiseq>. Todos los objetos de una selección agregada de objetos "
+"se resaltarán."
+
+#: C/select.page:60(title)
+msgid "Area selections"
+msgstr "Selecciones de área"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1492(None)
+#: C/select.page:62(p)
 msgid ""
-"@@image: 'figures/merge-ex3-2.png'; md5=09f105e133657345e6e478a464e5b49f"
+"Multiple objects can also be selected by clicking an empty area and dragging "
+"to form a rectangular area. When released, all objects contained in the area "
+"will form an aggregate selection. An area selection can be used to add to an "
+"existing selection by holding the <key>Ctrl</key> key while performing the "
+"selection."
 msgstr ""
-"@@image: 'figures/merge-ex3-2.png'; md5=09f105e133657345e6e478a464e5b49f"
+"Se puede seleccionar varios objetos pulsando en un área vacía y arrastrando "
+"hasta formar un área rectangular. Cuando se suelta, todos los objetos "
+"contenidos en el área formarán una selección agregada. Una selección de área "
+"se puede usar para añadirla a una selección existente manteniendo pulsada la "
+"tecla <key>Ctrl</key> mientras se hace la selección."
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1767(None)
-msgid ""
-"@@image: 'figures/glabels-template-label.png'; "
-"md5=b7db4090373462b8d45feb22d4cd5646"
-msgstr ""
-"@@image: 'figures/glabels-template-label.png'; "
-"md5=b7db4090373462b8d45feb22d4cd5646"
+#: C/select.page:72(title)
+msgid "Unselecting objects"
+msgstr "Deseleccionar objetos"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1888(None)
+#: C/select.page:74(p)
 msgid ""
-"@@image: 'figures/glabels-template-cd.png'; "
-"md5=145b49a5380de63ffa9451d2bbb81934"
-msgstr ""
-"@@image: 'figures/glabels-template-cd.png'; "
-"md5=145b49a5380de63ffa9451d2bbb81934"
+"Individual objects can be removed from an existing selection by holding the "
+"<key>Ctrl</key> key while clicking on a previously selected object. An "
+"entire selection can be dismissed by using the <guiseq><gui>Edit</"
+"gui><gui>Un-select All</gui></guiseq> menu item or by simply clicking any "
+"empty space in the display area. Once an object is unselected its highlight "
+"is removed."
+msgstr ""
+"Se puede quitar objetos individuales de una selección manteniendo pulsada la "
+"tecla <key>Ctrl</key> mientras se pulsa sobre un objeto seleccionado "
+"anteriormente. Se puede descartar una selección entera usando el elemento de "
+"menú <guiseq><gui>Editar</gui><gui>Deseleccionar todo</gui></guiseq>, o "
+"simplemente pulsando en un espacio vacío en el área de visualización. Una "
+"vez que un objeto no está seleccionado, se quita el resaltado."
+
+#: C/select.page:86(title)
+msgid "Clipboard Commands"
+msgstr "Comandos del portapapeles"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:2150(None)
+#: C/select.page:88(p)
 msgid ""
-"@@image: 'figures/glabels-template-layout.png'; "
-"md5=a8adcff0584be1f0275bc2a169a580df"
+"Object selections can be manipulated using the standard clipboard operations "
+"<gui>Cut</gui>, <gui>Copy</gui>, <gui>Paste</gui>, and <gui>Delete</gui>."
 msgstr ""
-"@@image: 'figures/glabels-template-layout.png'; "
-"md5=a8adcff0584be1f0275bc2a169a580df"
+"Los objetos se pueden manipular usando las operaciones estándar del "
+"portapapeles <gui>Cortar</gui>, <gui>Copiar</gui>, <gui>Pegar</gui>, y "
+"<gui>Eliminar</gui>."
 
-#: C/glabels.xml:31(title)
-msgid "<application>gLabels</application> Manual V2.2.6"
-msgstr "Manual de <application>gLabels</application> V2.2.6"
+#: C/select.page:94(title)
+msgid "<gui>Cut</gui> (<keyseq><key>Ctrl</key><key>X</key></keyseq>)"
+msgstr "<gui>Cortar</gui> (<keyseq><key>Ctrl</key><key>X</key></keyseq>)"
 
-#: C/glabels.xml:33(para)
+#: C/select.page:96(p)
 msgid ""
-"User manual for the <application>gLabels</application> label and business "
-"card creation program"
+"Moves selected objects to the clipboard. The objects are then available for "
+"pasting back into the current document or another document."
 msgstr ""
-"Manual de usuario para el programa de creación de etiquetas y tarjetas de "
-"visita <application>gLabels</application>"
-
-#: C/glabels.xml:38(year)
-msgid "2003-2009"
-msgstr "2003-2009"
-
-#: C/glabels.xml:39(holder) C/glabels.xml:42(publishername)
-#: C/glabels.xml:93(para) C/glabels.xml:103(para)
-msgid "Jim Evins"
-msgstr "Jim Evins"
+"Mueve objetos al portapapeles. Los objetos están disponibles para pegarlos "
+"de nuevo en el documento actual o en otro documento."
 
-#: C/glabels.xml:2(para)
-msgid ""
-"Permission is granted to copy, distribute and/or modify this document under "
-"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any "
-"later version published by the Free Software Foundation with no Invariant "
-"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy "
-"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or "
-"in the file COPYING-DOCS distributed with this manual."
-msgstr ""
-"Se otorga permiso para copiar, distribuir y/o modificar este documento bajo "
-"los términos de la Licencia de Documentación Libre de GNU, Versión 1.1 o "
-"cualquier otra versión posterior publicada por la Free Software Foundation; "
-"sin Secciones Invariantes ni Textos de Cubierta Delantera ni Textos de "
-"Cubierta Trasera. Puede encontrar una copia de la licencia GFDL en este "
-"<ulink type=\"help\" url=\"ghelp:fdl\">enlace</ulink> o en el archivo "
-"COPYING-DOCS distribuido con este manual."
-
-#: C/glabels.xml:12(para)
-msgid ""
-"This manual is part of a collection of GNOME manuals distributed under the "
-"GFDL. If you want to distribute this manual separately from the collection, "
-"you can do so by adding a copy of the license to the manual, as described in "
-"section 6 of the license."
-msgstr ""
-"Este manual es parte de una colección de manuales de GNOME distribuido bajo "
-"la GFDL. Si quiere distribuir este manual por separado de la colección, "
-"puede hacerlo añadiendo una copia de la licencia al manual, tal como se "
-"describe en la sección 6 de la licencia."
-
-#: C/glabels.xml:19(para)
-msgid ""
-"Many of the names used by companies to distinguish their products and "
-"services are claimed as trademarks. Where those names appear in any GNOME "
-"documentation, and the members of the GNOME Documentation Project are made "
-"aware of those trademarks, then the names are in capital letters or initial "
-"capital letters."
-msgstr ""
-"Muchos de los nombres utilizados por las empresas para distinguir sus "
-"productos y servicios se consideran marcas comerciales. Cuando estos nombres "
-"aparezcan en la documentación de GNOME, y siempre que se haya informado a "
-"los miembros del Proyecto de documentación de GNOME de dichas marcas "
-"comerciales, los nombres aparecerán en mayúsculas o con las iniciales en "
-"mayúsculas."
-
-#: C/glabels.xml:35(para)
-msgid ""
-"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, "
-"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT "
-"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS "
-"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE "
-"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR "
-"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR "
-"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL "
-"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY "
-"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN "
-"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION "
-"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND"
-msgstr ""
-"EL DOCUMENTO SE OFRECE «TAL CUAL», SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O "
-"IMPLÍCITA, INCLUYENDO, PERO SIN LIMITARSE A ELLA, LA GARANTÍA DE QUE EL "
-"DOCUMENTO O LA VERSIÓN MODIFICADA DEL MISMO ESTÉ LIBRE DE DEFECTOS, GARANTÍA "
-"DE COMERCIALIZACIÓN, APTITUD PARA UN USO EN PARTICULAR O INCUMPLIMIENTO. "
-"TODOS LOS RIESGOS RELATIVOS A LA CALIDAD, EXACTITUD O RENDIMIENTO DEL "
-"DOCUMENTO O LA VERSIÓN MODIFICADA DEL MISMO SON ASUMIDOS POR VD. EN CASO DE "
-"QUE EL DOCUMENTO O LA VERSIÓN MODIFICADA SEAN DEFECTUOSOS, VD. (NO EL "
-"ESCRITOR ORIGINAL NI EL AUTOR NI NINGUNO DE LOS COLABORADORES) ASUMIRÁ EL "
-"COSTE DE CUALQUIER MANTENIMIENTO, REPARACIÓN O CORRECCIÓN QUE SEAN "
-"NECESARIOS. ESTA RENUNCIA DE GARANTÍA CONSTITUYE UNA PARTE ESENCIAL DE ESTA "
-"LICENCIA NO SE AUTORIZA EL USO DE NINGÚN DOCUMENTO NI VERSIÓN MODIFICADA DEL "
-"MISMO, SALVO EN LAS CONDICIONES ESPECIFICADAS EN ESTA RENUNCIA; Y "
-
-#: C/glabels.xml:55(para)
-msgid ""
-"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING "
-"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY "
-"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE "
-"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON "
-"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF "
-"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, "
-"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES "
-"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED "
-"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE "
-"POSSIBILITY OF SUCH DAMAGES."
-msgstr ""
-"EN NINGUNA CIRCUNSTANCIA NI SEGÚN NINGÚN ARGUMENTO LEGAL, SEA POR MOTIVOS "
-"CULPOSOS (INCLUIDA LA NEGLIGENCIA), CONTRACTUALES O DE OTRO TIPO, NI EL "
-"AUTOR, NI EL REDACTOR INICIAL, NI CUALQUIER COLABORADOR, NI CUALQUIER "
-"DISTRIBUIDOR DEL DOCUMENTO O VERSIÓN MODIFICADA DEL MISMO, NI CUALQUIER "
-"PROVEEDOR DE CUALQUIERA DE DICHAS PARTES, SERÁN RESPONSABLES, ANTE NINGÚN "
-"TERCERO, DE NINGÚN DAÑO O PERJUICIO DIRECTO, INDIRECTO, ESPECIAL, INCIDENTAL "
-"O CONSIGUIENTE DE NINGÚN TIPO, INCLUIDOS, SIN LIMITACIÓN, LOS DAÑOS POR "
-"PÉRDIDA DE FONDO DE COMERCIO, INTERRUPCIÓN DEL TRABAJO, FALLO O MAL "
-"FUNCIONAMIENTO INFORMÁTICO, NI CUALQUIER OTRO DAÑO O PÉRDIDA DERIVADOS DEL "
-"USO DEL DOCUMENTO Y LAS VERSIONES MODIFICADAS DEL MISMO, O RELACIONADO CON "
-"ELLO, INCLUSO SI SE HABÍA COMUNICADO A AQUELLA PARTE LA POSIBILIDAD DE TALES "
-"DAÑOS."
-
-#: C/glabels.xml:28(para)
-msgid ""
-"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS "
-"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: "
-"<placeholder-1/>"
-msgstr ""
-"ESTE DOCUMENTO Y LAS VERSIONES MODIFICADAS DEL MISMO SE PROPORCIONAN SEGÚN "
-"LAS CONDICIONES ESTABLECIDAS EN LA LICENCIA DE DOCUMENTACIÓN LIBRE DE GNU "
-"(GFDL) Y TENIENDO EN CUENTA QUE: <placeholder-1/>"
-
-#: C/glabels.xml:52(firstname)
-msgid "Jim"
-msgstr "Jim"
-
-#: C/glabels.xml:53(surname)
-msgid "Evins"
-msgstr "Evins"
+#: C/select.page:103(title)
+msgid "<gui>Copy</gui> (<keyseq><key>Ctrl</key><key>C</key></keyseq>)"
+msgstr "<gui>Copiar</gui> (<keyseq><key>Ctrl</key><key>C</key></keyseq>)"
 
-#: C/glabels.xml:87(revnumber)
-msgid "gLabels Manual V2.2.6"
-msgstr "Manual de gLabels V2.2.6"
-
-#: C/glabels.xml:88(date)
-msgid "October 2009"
-msgstr "Octubre de 2009"
-
-#: C/glabels.xml:90(para)
-msgid "Mario Blättermann <email>mariobl@gnome.org</email>"
-msgstr "Mario Blättermann <email>mariobl@gnome.org</email>"
-
-#: C/glabels.xml:97(revnumber)
-msgid "gLabels Manual V2.2"
-msgstr "Manual de gLabels V2.2"
-
-#: C/glabels.xml:98(date)
-msgid "December 2007"
-msgstr "Diciembre de 2007"
-
-#: C/glabels.xml:100(para)
-msgid "Jim Evins <email>evins@snaught.com</email>"
-msgstr "Jim Evins <email>evins@snaught.com</email>"
-
-#: C/glabels.xml:108(releaseinfo)
+#: C/select.page:105(p)
 msgid ""
-"This manual describes version 2.2.6 of <application>gLabels</application>."
+"Copies selected objects to the clipboard without deleting them. The objects "
+"are then available for pasting back into the current document or another "
+"document."
 msgstr ""
-"Este manual describe la versión 2.2.6 de <application>gLabels</application>."
+"Copia los objetos seleccionados al portapapeles sin borrarlos. Los objetos "
+"están disponibles para pegarlos en el documento actual o en otro documento."
 
-#: C/glabels.xml:111(title)
-msgid "Feedback"
-msgstr "Comentarios"
+#: C/select.page:112(title)
+msgid "<gui>Paste</gui> (<keyseq><key>Ctrl</key><key>V</key></keyseq>)"
+msgstr "<gui>Pegar</gui> (<keyseq><key>Ctrl</key><key>V</key></keyseq>)"
 
-#: C/glabels.xml:112(para)
+#: C/select.page:114(p)
 msgid ""
-"To report a bug or make a suggestion regarding the <application>gLabels</"
-"application> application or this manual, follow the directions in the <ulink "
-"url=\"http://glabels.sourceforge.net/contact/\" type=\"http"
-"\"><application>gLabels</application> Contact Page</ulink>."
+"Pastes objects from the clipboard into the current document. <app>gLabels</"
+"app> can only paste objects from another <app>gLabels</app> document."
 msgstr ""
+"Pega objetos del portapapeles en el documento actual. <app>gLabels</app> "
+"sólo puede pegar objetos de otro documento de <app>gLabels</app>."
 
-#: C/glabels.xml:121(primary)
-msgid "gLabels"
-msgstr "gLabels"
-
-#: C/glabels.xml:124(primary)
-msgid "glabels"
-msgstr "glabels"
+#: C/select.page:121(title)
+msgid "<gui>Delete</gui> (<key>Del</key>)"
+msgstr "<gui>Eliminar</gui> (<key>Supr</key>)"
 
-#: C/glabels.xml:135(title)
-msgid "Introduction"
-msgstr "Introducción"
+#: C/select.page:123(p)
+msgid "Deletes selected objects without placing them on the clipboard."
+msgstr "Elimina los objetos seleccionados sin ponerlos en el portapapeles."
 
-#: C/glabels.xml:137(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/printfile.page:47(None)
 msgid ""
-"The <application>gLabels</application> application is a lightweight program "
-"for creating labels and business cards for the <systemitem>GNOME desktop</"
-"systemitem> environment. It is designed to work with various laser/ink-jet "
-"peel-off label and business card sheets that you'll find at most office "
-"supply stores."
-msgstr ""
-
-#: C/glabels.xml:158(title)
-msgid "Getting Started"
-msgstr "Inicio"
-
-#: C/glabels.xml:161(title)
-msgid "To Start <application>gLabels</application>"
-msgstr "Para iniciar <application>gLabels</application>"
-
-#: C/glabels.xml:162(para)
-msgid "You can start <application>gLabels</application> in the following ways:"
+"@@image: 'figures/print-copies.png'; md5=1896f693ac50b47ea5abaafb59b5e8cc"
 msgstr ""
+"@@image: 'figures/print-copies.png'; md5=1896f693ac50b47ea5abaafb59b5e8cc"
 
-#: C/glabels.xml:166(term)
-msgid "<guimenu>Applications</guimenu> menu"
-msgstr "Menú <guimenu>Aplicaciones</guimenu>"
-
-#: C/glabels.xml:168(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/printfile.page:70(None)
 msgid ""
-"Choose <menuchoice><guisubmenu>Office</guisubmenu><guimenuitem>gLabels</"
-"guimenuitem></menuchoice>."
+"@@image: 'figures/print-merge.png'; md5=65a719b5624f88fdb40e2322454819a6"
 msgstr ""
+"@@image: 'figures/print-merge.png'; md5=65a719b5624f88fdb40e2322454819a6"
 
-#: C/glabels.xml:176(term)
-msgid "Command line"
-msgstr "Línea de comandos"
+#: C/printfile.page:9(desc)
+msgid "How to print your labels and cards."
+msgstr "Cómo imprimir sus etiquetas y sus tarjetas."
 
-#: C/glabels.xml:178(para)
-msgid "Type <command>glabels</command>, then press <keycap>Return</keycap>:"
-msgstr ""
+#: C/printfile.page:25(title)
+msgid "To print labels and cards"
+msgstr "Imprimir etiquetas y tarjetas"
 
-#: C/glabels.xml:186(title)
-msgid "When You Start <application>gLabels</application>"
+#: C/printfile.page:27(p)
+msgid ""
+"To print labels or cards, choose <guiseq><gui>File</gui><gui>Print</gui></"
+"guiseq> to display the <gui>Print</gui> dialog. Once print options have been "
+"selected, click <gui>Print</gui> to print the labels or cards. To simply "
+"preview the results, click <gui>Print Preview</gui> instead."
 msgstr ""
+"Para imprimir etiquetas o tarjetas, elija <guiseq><gui>Archivo</"
+"gui><gui>Imprimir</gui></guiseq> para mostrar el diálogo <gui>Imprimir</"
+"gui>. Una vez que haya seleccionado las opciones de impresión, pulse en "
+"<gui>Imprimir</gui> para imprimir las etiquetas o las tarjetas. Para sólo "
+"previsualizar el resultado, pulse en <gui>Previsualizar la impresión</gui> "
+"en su lugar."
 
-#: C/glabels.xml:187(para)
+#: C/printfile.page:34(p)
 msgid ""
-"When you start <application>gLabels</application>, the following window is "
-"displayed."
+"The <gui>Print</gui> dialog allows you to specify the following print "
+"options:"
 msgstr ""
+"El diálogo <gui>Imprimir</gui> le permite especificar las siguientes "
+"opciones de impresión:"
+
+#: C/printfile.page:38(title)
+msgid "The Labels Tab of the Print Dialog"
+msgstr "La pestaña «etiquetas» del diálogo de impresión"
 
-#: C/glabels.xml:191(title)
-msgid "<application>gLabels</application> Start Up Window"
-msgstr "Ventana de inicio de <application>gLabels</application>"
+#: C/printfile.page:41(title)
+msgid "Print control (Simple)"
+msgstr "Control de impresión (simple)"
 
-#. for example, the items on the menubar and on the toolbar. This section is optional.
-#: C/glabels.xml:205(para)
+#: C/printfile.page:43(p)
 msgid ""
-"The <application>gLabels</application> window contains the following "
-"elements:"
+"For simple labels or cards (no document merge), the job tabbed section "
+"contains the following copy controls."
 msgstr ""
+"Para etiquetas o tarjetas simples (no para documentos combinados) la sección "
+"de trabajos en pestañas contiene los siguientes controles de copia."
 
-#: C/glabels.xml:209(term)
-msgid "Menubar."
-msgstr "Barra de menú."
+#: C/printfile.page:48(p) C/editprop.page:36(p)
+msgid "Print Copy Controls"
+msgstr "Controles de impresión de copia"
 
-#: C/glabels.xml:211(para)
+#. ==== End of Figure ====
+#: C/printfile.page:52(p)
 msgid ""
-"The menus on the menubar contain all of the commands you need to create and "
-"edit labels and business cards in <application>gLabels</application>."
+"The number of copies of the label can be selected by choosing the number of "
+"full sheets to print, or a specific subset of labels on a single sheet."
 msgstr ""
+"El número de copias de la etiqueta se puede seleccionar eligiendo el número "
+"de hojas completas que imprimir, o un subconjunto específico de etiquetas de "
+"una sola hoja."
 
-#: C/glabels.xml:217(term)
-msgid "Main toolbar."
-msgstr "Barra de herramientas principal."
-
-#: C/glabels.xml:219(para)
+#: C/printfile.page:56(p)
 msgid ""
-"The main toolbar contains a subset of common File and Edit commands that you "
-"can access from the menubar."
+"The mini-preview can also be used to graphically select the subset of labels "
+"by clicking the first label on the mini-preview and dragging to the last "
+"label."
 msgstr ""
+"La mini vista previa también se puede usar para seleccionar gráficamente el "
+"subconjunto de etiquetas, pulsando en la primera etiqueta de la mini vista "
+"previa y arrastrando hasta la última etiqueta."
 
-#: C/glabels.xml:224(term)
-msgid "Drawing toolbar."
-msgstr ""
+#: C/printfile.page:63(title)
+msgid "Print control (Merge)"
+msgstr "Control de impresión (fusión)"
 
-#: C/glabels.xml:226(para)
+#: C/printfile.page:65(p)
 msgid ""
-"The drawing toolbar contains a subset of commands for editing the current "
-"<application>gLabels</application> document."
+"For labels or cards using the document merge (also known as \"mail merge\") "
+"capability, the job tabbed section contains the following merge controls "
+"instead of copy controls."
 msgstr ""
+"Para etiquetas o tarjetas que usan la capacidad de combinación de documentos "
+"(también llamada «combinación de correo»), la sección de trabajos en "
+"pestañas contiene los siguientes controles de combinación en vez de los "
+"controles de copia."
 
-#: C/glabels.xml:231(term)
-msgid "Display area."
-msgstr "Área de visualización."
+#: C/printfile.page:71(p)
+msgid "Print Document Merge Controls"
+msgstr "Controles de impresión de fusión de documentos"
 
-#: C/glabels.xml:233(para)
+#. ==== End of Figure ====
+#: C/printfile.page:75(p)
 msgid ""
-"The display area is the main drawing interface to <application>gLabels</"
-"application>."
+"The total number of labels or cards printed is the product of the number of "
+"records in the merge source and the number of copies selected. If multiple "
+"copies are selected, these can be either collated (copies of the same record "
+"grouped together) or un-collated (one copy each record is printed before "
+"next copy)."
 msgstr ""
+"El número total de etiquetas o tarjetas imprimidas es el producto del número "
+"de registros en el origen de la combinación y del número de copias "
+"seleccionadas. Si se seleccionan varias copias, éstas pueden ser cotejadas "
+"(copias de un mismo registro agrupados) o sin cotejar (una copia de cada "
+"registro se imprime antes del siguiente copia)."
 
-#: C/glabels.xml:238(term)
-msgid "Object sidebar."
+#: C/printfile.page:82(p)
+msgid ""
+"Printing can begin on any label on the first sheet. This can be selected "
+"with the <gui>Start on label</gui> spinbutton."
 msgstr ""
+"La impresión puede empezar en cualquier etiqueta de la primera hoja. Ésta se "
+"puede seleccionar con el botón incremental <gui>Comenzar con la etiqueta</"
+"gui>."
 
-#: C/glabels.xml:240(para)
+#: C/printfile.page:86(p)
 msgid ""
-"The object sidebar provides an interface for viewing and editing all "
-"properties of an individual object."
+"The mini-preview can also be used to graphically select this first label, by "
+"clicking on the desired label in the mini-preview."
 msgstr ""
+"La mini vista previa también se puede usar para seleccionar gráficamente la "
+"primera etiqueta, pulsando en la etiqueta que quiere en la mini vista previa."
 
-#: C/glabels.xml:245(term)
-msgid "Properties toolbar."
-msgstr "Barra de herramientas de propiedades."
+#: C/printfile.page:93(title)
+msgid "Options"
+msgstr "Opciones"
 
-#: C/glabels.xml:247(para)
-msgid ""
-"The properties toolbar contains a set of tools to manipulate the properties "
-"of selected objects and set default properties for new objects."
-msgstr ""
+#: C/printfile.page:94(p)
+msgid "The following options can also be selected."
+msgstr "Se pueden seleccionar las siguientes opciones."
 
-#: C/glabels.xml:253(term)
-msgid "Statusbar."
-msgstr "Barra de estado."
+#: C/printfile.page:97(gui)
+msgid "print outlines"
+msgstr "imprimir márgenes"
 
-#: C/glabels.xml:255(para)
+#: C/printfile.page:98(p)
 msgid ""
-"The statusbar displays information about current <application>gLabels</"
-"application> activity and contextual information about the menu items."
+"Print outlines of labels. This option is useful for dry-runs, to test "
+"printer alignment."
 msgstr ""
+"Imprimir los contornos de las etiquetas. Esta opción es útil para "
+"ejecuciones en seco, para verificar la alineación de la impresora."
 
-#: C/glabels.xml:271(title)
-msgid "Usage"
-msgstr "Uso"
-
-#: C/glabels.xml:275(title)
-msgid "To Create a New Label or Card"
-msgstr ""
+#: C/printfile.page:102(gui)
+msgid "print in reverse"
+msgstr "imprimir en el reverso"
 
-#: C/glabels.xml:277(para)
+#: C/printfile.page:103(p)
 msgid ""
-"To create a new label or business card, choose <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>New</guimenuitem></menuchoice> to display the "
-"<guilabel>New Label or Card</guilabel> dialog. Select the media type and "
-"orientation for the new document, then click <guibutton>OK</guibutton>. A "
-"new document is displayed in the display area of the <application>gLabels</"
-"application> window."
+"Prints the labels as mirror images. This option is useful for printing on "
+"clear labels that will be viewed from the reverse side (e.g. in a car "
+"window)."
 msgstr ""
+"Imprime las etiquetas como imágenes espejo. Esta opción es útil para "
+"imprimir en etiquetas que se verán por el reverso (ej. en la ventanilla de "
+"un coche)."
+
+#: C/printfile.page:108(gui)
+msgid "print crop marks"
+msgstr "imprimir marcas de corte"
 
-#: C/glabels.xml:286(para)
+#: C/printfile.page:109(p)
 msgid ""
-"If your particular media type is missing from this dialog, see <xref linkend="
-"\"glabels-create-template\"/>"
+"Prints crop marks along the edge of the sheet. This option is useful for "
+"printing on blank stock, to be cut after printing. This option does not work "
+"well with all templates."
 msgstr ""
+"Imprime marcas de corte a lo largo del borde de la hoja. Esta opción es útil "
+"para imprimir en páginas en blanco, y recortarlas después de imprimir. Esta "
+"opción no funciona bien con todas las plantillas."
 
-#: C/glabels.xml:293(title)
-msgid "To Open a File"
-msgstr "Abrir un archivo"
+#: C/newlabel.page:9(desc)
+msgid "Create a new label or card in <app>gLabels</app>."
+msgstr "Crear una etiqueta o tarjeta nuevas en <app>gLabels</app>."
 
-#: C/glabels.xml:295(para)
-msgid ""
-"To open a file, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</"
-"guimenuitem></menuchoice> to display the <guilabel>Open File</guilabel> "
-"dialog. Select the file that you want to open, then click <guibutton>OK</"
-"guibutton>. The file is displayed in the display area of the "
-"<application>gLabels</application> window."
-msgstr ""
+#: C/newlabel.page:25(title)
+msgid "To create a new label or card"
+msgstr "Crear una etiqueta nueva o una tarjeta"
 
-#: C/glabels.xml:302(para)
+#: C/newlabel.page:27(p)
 msgid ""
-"You can also open multiple files in <application>gLabels</application>. The "
-"application creates a separate application window for each open file."
+"To create a new label or business card, choose <guiseq><gui>File</"
+"gui><gui>New</gui></guiseq> to display the <gui>New Label or Card</gui> "
+"dialog. Select the media type and orientation for the new document, then "
+"click <gui>OK</gui>. A new document is displayed in the display area of the "
+"<app>gLabels</app> window."
 msgstr ""
+"Para crear una etiqueta nueva o una tarjeta de visita, "
+"elija<guiseq><gui>Archivo</gui><gui>Nuevo</gui></guiseq> para mostrar el "
+"diálogo <gui>Nueva etiqueta o tarjeta</gui>. Seleccione el tipo de medio y "
+"la orientación para el documento nuevo y pulse <gui>Aceptar</gui>. Se "
+"mostrará un documento nuevo en el área de visualización de la ventana "
+"ventana de <app>gLabels</app>."
 
-#: C/glabels.xml:306(para)
-msgid ""
-"The application records the paths and filenames of the most recent files "
-"that you have edited and displays the files as menu items on the "
-"<menuchoice><guimenu>File</guimenu><guisubmenu>Recent Files</guisubmenu></"
-"menuchoice> menu."
-msgstr ""
+#: C/multifile.page:9(desc)
+msgid "How to open multiple files at once by using the command line."
+msgstr "Cómo abrir varios archivos a la vez usando la línea de comandos."
 
-#: C/glabels.xml:316(title)
-msgid "To Open Multiple Files from a Command Line"
-msgstr ""
+#: C/multifile.page:25(title)
+msgid "To open multiple files from the command line"
+msgstr "Abrir varios archivos desde la línea de comandos"
 
-#: C/glabels.xml:318(para)
+#: C/multifile.page:27(p)
 msgid ""
-"You can run <application>gLabels</application> from a command line and open "
-"a single file or multiple files. To open multiple files from a command line, "
-"type the following command, then press <keycap>Return</keycap>:"
+"You can run <app>gLabels</app> from a command line and open a single file or "
+"multiple files. To open multiple files from a command line, type the "
+"following command, then press <key>Return</key>:"
 msgstr ""
+"Puede ejecutar <app>gLabels</app> desde una línea de comandos y abrir uno o "
+"varios archivos. Para abrir varios archivos desde una línea de comandos, "
+"escriba el siguiente comando y pulse <key>Intro</key>:"
 
-#: C/glabels.xml:324(replaceable)
+#: C/multifile.page:33(var)
 msgid "file1.glabels file2.glabels file3.glabels"
-msgstr ""
+msgstr "archivo1.glabels archivo2.glabels archivo3.glabels"
 
-#: C/glabels.xml:323(command)
+#: C/multifile.page:32(cmd)
 msgid "glabels <placeholder-1/>"
-msgstr ""
+msgstr "glabels <placeholder-1/>"
 
-#: C/glabels.xml:327(para)
+#: C/multifile.page:36(p)
 msgid ""
 "When the application starts, the files that you specify are displayed in "
-"separate <application>gLabels</application> windows."
+"separate <app>gLabels</app> windows."
 msgstr ""
+"Cuando se inicia la aplicación, se muestran los archivos que especifique en "
+"ventanas de <app>gLabels</app> separadas."
 
-#: C/glabels.xml:334(title)
-msgid "To Save a File"
-msgstr "Guardar un archivo"
+#: C/merge.page:9(desc)
+msgid "Merge a data source to create multiple documents."
+msgstr "Combinar un origen de datos para crear múltiples documentos."
 
-#: C/glabels.xml:336(para)
-msgid "You can save files in the following ways:"
-msgstr "Puede guardar archivos de cualquiera de estas maneras:"
+#: C/merge.page:25(title)
+msgid "Document merge tutorial"
+msgstr "Tutorial para fusionar documentos"
 
-#: C/glabels.xml:341(para)
+#: C/merge.page:27(p)
 msgid ""
-"To save changes to an existing file, choose <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>Save</guimenuitem></menuchoice>."
+"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that "
+"allows a unique label or card to be printed for each record in an external "
+"data source. It is however, the most mis-understood feature of <app>glabels</"
+"app>. The following examples will step through a couple of common tasks "
+"using the document merge feature."
 msgstr ""
-"Para guardar los cambios a un archivo existente, elija "
-"<menuchoice><guimenu>Archivo</guimenu><guimenuitem>Guardar</guimenuitem></"
-"menuchoice>."
+"La combinación de documentos (llamada algunas veces «combinación de correo») "
+"es una potente característica que permite que una única tarjeta o etiqueta "
+"se impriman por cada registro de una fuente de datos externa. Esto es, sin "
+"embargo, la característica menos comprendida de <app>glabels</app>. Los "
+"siguientes ejemplos le guiarán paso a paso a través de un par de de tareas "
+"comunes usando la característica de combinación de documentos."
 
-#: C/glabels.xml:348(para)
-msgid ""
-"To save a new file or to save an existing file under a new filename, choose "
-"<menuchoice><guimenu>File</guimenu><guimenuitem>Save As</guimenuitem></"
-"menuchoice>. Enter a name for the file in the <guilabel>Save As</guilabel> "
-"dialog box, then click <guibutton>OK</guibutton>."
-msgstr ""
+#: C/mergefeatures.page:9(desc)
+msgid "What you may expect from a document merge."
+msgstr "Que puede esperar de la fusión de un documento."
 
-#: C/glabels.xml:361(title)
-msgid "To Change Label Properties"
-msgstr "Cambiar las propiedades de una etiqueta"
+#: C/mergefeatures.page:25(title)
+msgid "Performing a document merge"
+msgstr "Fusionar un documento"
 
-#: C/glabels.xml:363(para)
+#: C/mergefeatures.page:27(p)
 msgid ""
-"To change the media type and/or orientation of a label, choose "
-"<menuchoice><guimenu>File</guimenu><guimenuitem>Properties</guimenuitem></"
-"menuchoice> to display the <guilabel>Label properties</guilabel> dialog. "
-"Select the new media type and orientation for the document, then click "
-"<guibutton>OK</guibutton>."
+"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that "
+"allows a unique label or card to be printed for each record in an external "
+"data source."
 msgstr ""
+"La combinación de documentos (llamada algunas veces «combinación de correo») "
+"es una potente característica que permite que una única tarjeta o etiqueta "
+"se impriman por cada registro de una fuente de datos externa."
 
-#: C/glabels.xml:374(title)
-msgid "To Create a Custom Template"
+#: C/mergefeatures.page:31(p)
+msgid ""
+"The first step to performing a document merge is to prepare a source "
+"document that contains your merge data. This data could be mailing addresses "
+"or any other data that you wish to create unique labels or cards for. "
+"Currently back-ends only exist for text files and the evolution data server "
+"-- others are planned. The currently supported text-file format is very "
+"simple: each line is a record; fields are delimited by commas (CSV), tabs, "
+"or colons; and newlines can be embedded into fields by using the \"\\n\" "
+"entity. This file could be created using any text editor or could be created "
+"by another program or script. A common way of creating CSV files is to "
+"export them from a spreadsheet program."
 msgstr ""
+"El primer paso para combinar un documento es preparar un documento fuente "
+"que contenga su datos combinados. Estos datos pueden ser direcciones de "
+"correo o cualquier otro dato que quiera para crear etiquetas o tarjetas "
+"únicas. Los «back-end» actuales sólo existen para archivos de texto y el "
+"servidor de datos de Evolution (hay otros planificados). El formato de texto "
+"soportado actualmente es muy sencillo: cada línea es un registro; lo campos "
+"se delimitan por comas (CSV), tabuladores o dos puntos; y las líneas nuevas "
+"se pueden incrustar usando la entidad «\\n». Este archivo se puede crear "
+"usando cualquier editor de texto u otro programa o script. Una manera "
+"habitual de crear archivos CSV es exportarlos desde un programa de hojas de "
+"cálculo."
 
-#: C/glabels.xml:376(para)
+#: C/mergefeatures.page:43(p)
 msgid ""
-"To create a new custom template, choose <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>Template Designer ...</guimenuitem></menuchoice> to "
-"display the <guilabel>Template Designer</guilabel> dialog. This dialog will "
-"assist you in creating a custom template for most types of label or card "
-"stationery that you may encounter."
+"A label must then be configured to \"point at\" this data file. To configure "
+"the merge properties of a document, choose <guiseq><gui>Objects</"
+"gui><gui>Merge Properties</gui></guiseq> menu item to display the <gui>merge "
+"properties</gui> dialog. This dialog is used to select the exact data file "
+"format and file name (location) of the merge data."
 msgstr ""
+"Una etiqueta debe estar configurada para «apuntar a» este archivo de datos. "
+"Para configurar las propiedades de combinación de un documento, elija el "
+"elemento de menú <guiseq><gui>Objetos</gui><gui>Mezclar propiedades</gui></"
+"guiseq> para mostrar el diálogo <gui>Propiedades de combinación de datos</"
+"gui>. Este diálogo se utiliza para seleccionar el formato de datos exacto "
+"del archivo y nombre de archivo (ubicación) de la combinación de datos."
 
-#: C/glabels.xml:383(para)
+#: C/mergefeatures.page:51(p)
 msgid ""
-"If you prefer, you can create your templates manually. For this option see "
-"<xref linkend=\"glabels-manual-create-template\"/>"
+"Finally, once the label has been configured for a data file, field keys can "
+"be inserted into text objects and used as source or data for barcode objects "
+"and image filenames for image objects. See <link xref=\"editprop\"/> for "
+"more information on using merge data for these object types."
 msgstr ""
+"Finalmente, una vez que se ha configurado la etiqueta para un archivo de "
+"datos, se pueden insertar los campos clave en objetos de texto y usarlos "
+"como fuentes o datos para códigos de barras y nombres de archivos de "
+"imágenes para objetos de imagen. Consulte la <link xref=\"editprop\"/> para "
+"obtener más información sobre cómo combinar datos para este tipo de objetos."
 
-#: C/glabels.xml:391(title)
-msgid "To Close a File"
-msgstr "Cerrar un archivo"
-
-#: C/glabels.xml:393(para)
+#: C/mergefeatures.page:57(p)
 msgid ""
-"To close the current document, choose <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>Close</guimenuitem></menuchoice> to close the "
-"application window. If the current document is modified, a confirmation "
-"dialog will be presented, allowing you to save the document or cancel the "
-"command. If the window being closed is the only open window, "
-"<application>gLabels</application> will exit."
+"Now that your label is configured, <app>gLabels</app> will print a unique "
+"label for each record in your source document -- substituting fields from "
+"each record for field keys in the all text, barcode, and image objects."
 msgstr ""
+"Ahora que su etiqueta está configurada, <app>gLabels</app> imprimirá una "
+"única etiqueta por cada registro de su documento fuente, sustituyendo los "
+"campos de cada registro por los campos clave en todo el texto, código de "
+"barras y objetos de imagen."
 
-#: C/glabels.xml:405(title)
-msgid "To Quit <application>gLabels</application>"
+#: C/mergefeatures.page:62(p)
+msgid ""
+"See <link xref=\"merge\"/> for a detailed tutorial on the document merge "
+"feature."
 msgstr ""
+"Consulte en <link xref=\"merge\"/> un tutorial detallado sobre la "
+"característica de fusión de documentos."
 
-#: C/glabels.xml:407(para)
+#: C/merge-ex4.page:9(desc)
+msgid "Create address labels from a vCard file."
+msgstr "Crear etiquetas de dirección desde un archivo vCard."
+
+#: C/merge-ex4.page:25(title)
+msgid "Example 4: Address Labels Using a vCard file"
+msgstr "Ejemplo 4: etiquetas de dirección usando un archivo vCard"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex3.page:53(None)
 msgid ""
-"To quit <application>gLabels</application>, choose "
-"<menuchoice><guimenu>File</guimenu><guimenuitem>Quit</guimenuitem></"
-"menuchoice>. This is equivalent to closing all open windows. See <xref "
-"linkend=\"glabels-close-file\"/>."
+"@@image: 'figures/merge-ex3-1.png'; md5=fb5bf719857fb0a49517ecb50124384d"
 msgstr ""
+"@@image: 'figures/merge-ex3-1.png'; md5=fb5bf719857fb0a49517ecb50124384d"
 
-#: C/glabels.xml:417(title)
-msgid "To Print Labels or Cards"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex3.page:74(None)
+msgid ""
+"@@image: 'figures/merge-ex3-2.png'; md5=28a15319cea58be75ff789c766dc0717"
 msgstr ""
+"@@image: 'figures/merge-ex3-2.png'; md5=28a15319cea58be75ff789c766dc0717"
 
-#: C/glabels.xml:419(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex3.page:88(None)
 msgid ""
-"To print labels or cards, choose <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>Print</guimenuitem></menuchoice> to display the "
-"<guilabel>Print</guilabel> dialog. Once print options have been selected, "
-"click <guilabel>Print</guilabel> to print the labels or cards. To simply "
-"preview the results, click <guilabel>Print Preview</guilabel> instead."
+"@@image: 'figures/merge-ex3-3.png'; md5=443d59a44d8ddf5580087a772d4e3eec"
 msgstr ""
+"@@image: 'figures/merge-ex3-3.png'; md5=443d59a44d8ddf5580087a772d4e3eec"
 
-#: C/glabels.xml:426(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex3.page:99(None)
 msgid ""
-"The <guilabel>Print</guilabel> dialog allows you to specify the following "
-"print options:"
+"@@image: 'figures/merge-ex3-4.png'; md5=1995114757cccebda45b686caeb37fa7"
 msgstr ""
+"@@image: 'figures/merge-ex3-4.png'; md5=1995114757cccebda45b686caeb37fa7"
 
-#: C/glabels.xml:430(title)
-msgid "The Labels Tab of the Print Dialog"
+#: C/merge-ex3.page:9(desc)
+msgid ""
+"Create address labels from the <app>Evolution</app> address book entries."
 msgstr ""
+"Crear etiquetas de direcciones desde las entradas de la libreta de "
+"direcciones de <app>Evolution</app>."
 
-#: C/glabels.xml:435(guilabel)
-msgid "Print control (Simple)"
+#: C/merge-ex3.page:25(title)
+msgid "Example 3: Address Labels Using the <app>Evolution</app> Addressbook"
 msgstr ""
+"Ejemplo 3: Etiquetas de dirección usando la libreta de direcciones de "
+"<app>Evolution</app>"
+
+#: C/merge-ex3.page:27(p)
+msgid ""
+"Our last party was a great success, and now we need to print mailing address "
+"labels for the invitations to a new one. To simplify this, we can use the "
+"<app>Evolution</app> addressbook, because the address data of all our "
+"friends is stored there."
+msgstr ""
+"La última fiesta fue un éxito, y se necesitan imprimir etiquetas de "
+"dirección para las invitaciones a una nueva fiesta. Para simplificarlo, se "
+"puede usar la libreta de direcciones de <app>Evolution</app>, ya que las "
+"direcciones de sus amigos están guardadas ahí."
+
+#: C/merge-ex3.page:33(p)
+msgid ""
+"Depending on how your copy of <app>gLabels</app> was packaged, this option "
+"could be unavailable. Support for the <app>Evolution</app> addressbook will "
+"only be available if the <app>evolution-data-server</app> and its "
+"development files were present when <app>gLabels</app> was built. Please "
+"keep this in mind if you build <app>gLabels</app> directly from source."
+msgstr ""
+"Dependiendo de cómo se haya empaquetado su copia de <app>gLabels</app>, "
+"puede que esta opción no esté disponible. El soporte para la libreta de "
+"direcciones de <app>Evolution</app> sólo está disponible si <app>evolution-"
+"data-server</app> y sus archivos de desarrollo estaban presentes cuando se "
+"compiló <app>gLabels</app>. Tenga esto en cuenta si construye <app>gLabels</"
+"app> directamente desde las fuentes."
+
+#: C/merge-ex3.page:39(p)
+msgid ""
+"If the <app>gLabels</app> package from your distribution lacks this support, "
+"you may wish to contact the package maintainer or file a bug against the "
+"package to request it."
+msgstr ""
+"Si el paquete <app>gLabels</app> de su distribución carece de este soporte, "
+"puede contactar con el mantenedor del paquete o informar de un error en este "
+"paquete para solicitarlo."
+
+#: C/merge-ex3.page:44(p)
+msgid ""
+"In <app>glabels</app> we have created a new <app>gLabels</app> document "
+"using the Avery 5512 \"Address Labels\" template. Next we use the "
+"<guiseq><gui>Objects</gui><gui>Merge Properties</gui></guiseq> menu item to "
+"display the <gui>Merge properties</gui> dialog. We use this dialog to select "
+"the source type (in our case <gui>Data from default Evolution addressbook</"
+"gui>) as shown."
+msgstr ""
+"Se ha creado en <app>glabels</app> un documento de <app>gLabels</app> nuevo "
+"usando la plantilla Avery 5512 «Etiquetas de dirección». Ahora se usa el "
+"elemento de menú <guiseq><gui>Objetos</gui><gui>Mezclar propiedades</gui></"
+"guiseq> para mostrar el diálogo <gui>Mezclar propiedades</gui>. Use este "
+"diálogo para seleccionar el tipo de origen (en este caso, <gui>Datos de la "
+"libreta de direcciones predeterminada de Evolution</gui>) como se muestra."
+
+#: C/merge-ex3.page:54(p) C/merge-ex2.page:53(p) C/merge-ex1.page:51(p)
+msgid "Merge properties dialog"
+msgstr "Diálogo de propiedades de fusión"
 
-#: C/glabels.xml:438(para)
+#. ==== End of Figure ====
+#: C/merge-ex3.page:58(p)
+msgid ""
+"Once we have chosen <gui>Data from default Evolution addressbook </gui> as "
+"our merge source, we will get a full list of its content. Initially, all "
+"entries are checked. Assuming we were planning a really big party, we could "
+"leave this selection untouched (but let's keep our budget in mind). We will "
+"now select or unselect certain entries by clicking on the appropriate "
+"checkboxes, or we could use the <gui>Select all</gui> and <gui>Unselect all "
+"</gui> buttons to activate or deactivate all entries in the address book."
+msgstr ""
+"Una vez que se han elegido <gui>Datos de la libreta predeterminada de "
+"Evolution</gui> como origen de la mezcla, obtendrá una lista completa de su "
+"contenido. Inicialmente, se comprueban todas las entradas. Asumiendo que se "
+"está planificando una gran fiesta, se puede dejar esta selección sin tocar "
+"(pero se va a mantener en mente el presupuesto). Ahora se seleccionan o "
+"deseleccionan ciertas entradas pulsando en las casillas adecuadas, o se "
+"pueden usar los botones <gui>Seleccionar todo</gui> y <gui>Deseleccionar "
+"todo</gui> para activar o desactivar todas las entradas en la libreta de "
+"direcciones."
+
+#: C/merge-ex3.page:66(p)
 msgid ""
-"For simple labels or cards (no document merge), the <guilabel>labels</"
-"guilabel> tabbed section contains the following copy controls."
+"We can also view each entry in more detail by clicking on the appropriate "
+"expander (the little triangles) as shown. Once we are satisfied with the "
+"selections in this dialog, we will click the <gui>OK</gui> button to accept "
+"the changes."
 msgstr ""
+"También se puede ver cada entrada con más detalle pulsando en el desplegable "
+"adecuado (los triángulos pequeños), como se muestra. Una vez satisfechos con "
+"las selecciones en este diálogo, pulse el botón <gui>Aceptar</gui> para "
+"aceptar los cambios."
 
-#: C/glabels.xml:443(title)
-msgid "Print Copy Controls"
+#: C/merge-ex3.page:71(p) C/merge-ex2.page:67(p) C/merge-ex1.page:60(p)
+msgid ""
+"Now we start adding objects to our <app>glabels</app> document as shown."
 msgstr ""
+"Ahora puede añadir a añadir objetos al documento de<application>gLabels</"
+"application> como se muestra."
+
+#: C/merge-ex3.page:75(p) C/merge-ex2.page:71(p) C/merge-ex1.page:64(p)
+msgid "Adding objects"
+msgstr "Añadir objetos"
 
 #. ==== End of Figure ====
-#: C/glabels.xml:454(para)
+#: C/merge-ex3.page:79(p)
 msgid ""
-"The number of copies of the label can be selected by choosing the number of "
-"full sheets to print, or a specific subset of labels on a single sheet."
+"In this example we have a single text object again. This text object "
+"contains all of our merge fields organized on multiple lines as a mailing "
+"address."
 msgstr ""
+"En este ejemplo existe un único objeto de texto otra vez. Este objeto de "
+"texto contiene todos los campos mezclados organizados en varias líneas como "
+"direcciones de correo."
 
-#: C/glabels.xml:458(para)
+#: C/merge-ex3.page:82(p)
 msgid ""
-"The mini-preview can also be used to graphically select the subset of labels "
-"by clicking the first label on the mini-preview and dragging to the last "
-"label."
+"Now we can print our address labels by selecting the <guiseq><gui>File</"
+"gui><gui>Print</gui></guiseq> menu item. This will display the print dialog "
+"as shown below."
 msgstr ""
+"Ahora se pueden imprimir las etiquetas de dirección seleccionando el "
+"elemento de menú <guiseq><gui>Archivo</gui><gui>Imprimir</gui></guiseq>. "
+"Esto mostrará el diálogo de impresión como se muestra a continuación."
 
-#: C/glabels.xml:466(guilabel)
-msgid "Print control (Merge)"
-msgstr ""
+#: C/merge-ex3.page:89(p) C/merge-ex2.page:89(p)
+msgid "Printing address labels"
+msgstr "Imprimir etiquetas de dirección"
 
-#: C/glabels.xml:469(para)
+#. ==== End of Figure ====
+#: C/merge-ex3.page:93(p) C/merge-ex2.page:93(p) C/merge-ex1.page:89(p)
 msgid ""
-"For labels or cards using the document merge (also known as \"mail merge\") "
-"capability, the <guilabel>labels</guilabel> tabbed section contains the "
-"following merge controls instead of copy controls."
+"Just to make sure our labels are going to look okay, we select the "
+"<gui>Print outlines</gui> option and click <gui>Print Preview</gui>. This "
+"will display a print preview dialog as shown below."
 msgstr ""
+"Sólo para asegurarse de que las etiquetas se van a ver bien, seleccione la "
+"opción <gui>Imprimir contornos</gui> y pulse en <gui>Previsualizar la "
+"impresión</gui>. Esto mostrará un diálogo de vista previa, como se muestra a "
+"continuación."
 
-#: C/glabels.xml:475(title)
-msgid "Print Document Merge Controls"
-msgstr ""
+#: C/merge-ex3.page:100(p)
+msgid "Addess labels preview"
+msgstr "Vista previa de las etiquetas de dirección"
 
 #. ==== End of Figure ====
-#: C/glabels.xml:486(para)
+#: C/merge-ex3.page:104(p) C/merge-ex2.page:104(p)
 msgid ""
-"The total number of labels or cards printed is the product of the number of "
-"records in the merge source and the number of copies selected. If multiple "
-"copies are selected, these can be either collated (copies of the same record "
-"grouped together) or un-collated (one copy each record is printed before "
-"next copy)."
+"Everything looks good, so we can now load up our printer with the "
+"appropriate label stock, print our address labels and start mailing our "
+"party invitations."
 msgstr ""
+"Todo parece correcto, así que ahora podemos cargar nuestra impresora con las "
+"etiquetas apropiadas, imprimir nuestras etiquetas de dirección y enviar por "
+"correo nuestras invitaciones a la fiesta."
 
-#: C/glabels.xml:493(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex2.page:52(None)
 msgid ""
-"Printing can begin on any label on the first sheet. This can be selected "
-"with the <guilabel>Start on label</guilabel> spinbutton."
+"@@image: 'figures/merge-ex2-1.png'; md5=c9db139c5b7188e101470dc74684a118"
 msgstr ""
+"@@image: 'figures/merge-ex2-1.png'; md5=c9db139c5b7188e101470dc74684a118"
 
-#: C/glabels.xml:497(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex2.page:70(None)
 msgid ""
-"The mini-preview can also be used to graphically select this first label, by "
-"clicking on the desired label in the mini-preview."
+"@@image: 'figures/merge-ex2-2.png'; md5=240b4e4ebaa270e0e8bf84c5bfd7233e"
 msgstr ""
+"@@image: 'figures/merge-ex2-2.png'; md5=240b4e4ebaa270e0e8bf84c5bfd7233e"
 
-#: C/glabels.xml:504(guilabel)
-msgid "Options"
-msgstr "Opciones"
-
-#: C/glabels.xml:506(para)
-msgid "The following options can also be selected."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex2.page:88(None)
+msgid ""
+"@@image: 'figures/merge-ex2-3.png'; md5=c347460091d8eef9f4ec89557fa9f1e2"
 msgstr ""
+"@@image: 'figures/merge-ex2-3.png'; md5=c347460091d8eef9f4ec89557fa9f1e2"
 
-#: C/glabels.xml:509(guilabel)
-msgid "print outlines"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex2.page:99(None)
+msgid ""
+"@@image: 'figures/merge-ex2-4.png'; md5=30d12e946a79e27211b835e38742671c"
 msgstr ""
+"@@image: 'figures/merge-ex2-4.png'; md5=30d12e946a79e27211b835e38742671c"
 
-#: C/glabels.xml:510(para)
-msgid ""
-"Print outlines of labels. This option is useful for dry-runs, to test "
-"printer alignment."
-msgstr ""
+#: C/merge-ex2.page:9(desc)
+msgid "Create address labels from a CSV file."
+msgstr "Crear etiquetas de dirección desde un archivo CSV."
 
-#: C/glabels.xml:514(guilabel)
-msgid "print in reverse"
-msgstr ""
+#: C/merge-ex2.page:25(title)
+msgid "Example 2: Address labels"
+msgstr "Ejemplo 2: etiquetas de dirección"
 
-#: C/glabels.xml:515(para)
+#: C/merge-ex2.page:27(p)
 msgid ""
-"Prints the labels as mirror images. This option is useful for printing on "
-"clear labels that will be viewed from the reverse side (e.g. in a car "
-"window)."
+"In this example we are going to throw a party and need to print mailing "
+"address labels for our invitations. We have a list of our closest friends "
+"that we created in <app>gnumeric</app> and exported as the following CSV "
+"file. It should be noted that not everyone has a middle initial or a two "
+"line address."
 msgstr ""
+"En este ejemplo se va a celebrar una fiesta y se necesitan imprimir "
+"etiquetas de dirección para nuestras invitaciones. Existe una lista con los "
+"amigos más cercamos que se ha creado en <app>gnumeric</app> y la se ha "
+"exportado como el siguiente archivo CSV. Debe tener en cuenta que no todo el "
+"mundo tiene una inicial intermedia o una dirección de dos líneas."
 
-#: C/glabels.xml:520(guilabel)
-msgid "print crop marks"
+#: C/merge-ex2.page:33(code)
+#, no-wrap
+msgid ""
+"\n"
+"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n"
+",,,,,,,\n"
+"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n"
+"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n"
+"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n"
+"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n"
+"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n"
+"      "
 msgstr ""
+"\n"
+"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n"
+",,,,,,,\n"
+"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n"
+"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n"
+"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n"
+"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n"
+"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n"
+"      "
 
-#: C/glabels.xml:521(para)
+#: C/merge-ex2.page:43(p)
 msgid ""
-"Prints crop marks along the edge of the sheet. This option is useful for "
-"printing on blank stock, to be cut after printing. This option does not work "
-"well with all templates."
+"In <app>glabels</app> we have created a new <app>glabels</app> document "
+"using the Avery 5512 \"Address Labels\" template. Next we use the "
+"<guiseq><gui>Objects</gui><gui>Merge Properties</gui></guiseq> menu item to "
+"display the <gui>merge properties</gui> dialog. We use this dialog to select "
+"the source type (in our case CSV with keys on line 1) and the merge source "
+"(filename) as shown."
 msgstr ""
+"En <app>glabels</app> se ha creado un documento de <app>glabels</app> nuevo "
+"usando la plantilla «Etiquetas de dirección» Avery 5512.Ahora se usa el "
+"elemento de menú <guiseq><gui>Objetos</gui><gui>Mezclar propiedades</gui></"
+"guiseq> para mostrar el diálogo <gui>propiedades de combinación de datos</"
+"gui>. Se usa este diálogo para seleccionar el tipo de fuente (en este caso, "
+"CSV con claves en la línea 1) y la fuente de combinación (nombre de archivo) "
+"como se muestra."
 
-#: C/glabels.xml:536(title)
-msgid "To Create New Objects"
+#. ==== End of Figure ====
+#: C/merge-ex2.page:57(p)
+msgid ""
+"Before applying the merge source, we uncheck the first record since it only "
+"contains empty fields. It is an artifact of our original <app>gnumeric</app> "
+"spreadsheet and would simply waste our first label. We could also unselect "
+"any other records that we didn't want to print a label for."
 msgstr ""
+"Antes de aplicar la combinación de fuentes se ha desmarcado el primer "
+"registro , ya que sólo contiene campos vacíos. Esto es un artefacto de la "
+"hoja de cálculo de <app>gnumeric</app> original, y sólo desperdiciaríamos "
+"nuestra primera etiqueta. También se pueden deseleccionar cualquier otro "
+"registro para el que no se quiera imprimir una etiqueta."
 
-#: C/glabels.xml:538(para)
+#. ==== End of Figure ====
+#: C/merge-ex2.page:62(p) C/merge-ex1.page:55(p)
 msgid ""
-"Objects are created by choosing the appropriate selection under the "
-"<menuchoice><guimenu>Objects</guimenu><guimenuitem>Create Object</"
-"guimenuitem></menuchoice> submenu or the <guilabel>Drawing Toolbar</"
-"guilabel>. This will place the display area into object creation mode as "
-"indicated by its cursor. To return to the default object selection mode "
-"without creating an object, choose <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Select Mode</guimenuitem></menuchoice>. This will "
-"return the display area's cursor to the default selection arrow."
+"We can also view each record in more detail by clicking on the appropriate "
+"expander (the little triangles) as shown. Once we are satisfied with the "
+"selections in this dialog we click <gui>OK</gui> to accept the changes."
 msgstr ""
+"También se puede ver cada registro con más detalle pulsando en el expansor "
+"adecuado (los triángulos pequeños), como se muestra. Una vez satisfecho con "
+"las selecciones, pulse <gui>Aceptar</gui> en este diálogo para aceptar los "
+"cambios."
 
-#: C/glabels.xml:548(para)
-msgid "The following describes the object creation mode for each object type:"
+#. ==== End of Figure ====
+#: C/merge-ex2.page:75(p)
+msgid ""
+"In this example we have a single text object. This text object contains all "
+"of our merge fields organized on multiple lines as a mailing address. Notice "
+"that fields ${ADDR1} and ${ADDR2} are each located with no other text on "
+"their own lines. When <app>glabels</app> encounters a field as the only text "
+"on a line, it will not expand the line if the field is empty."
 msgstr ""
+"En este ejemplo se tiene un único objeto de texto. El objeto de texto "
+"contiene todo sobre los campos combinados en múltiples línea como "
+"direcciones de correo. Tenga en cuenta que los campos ${ADDR1} y ${ADDR2} no "
+"están situados en otro texto en sus propias líneas. Cuando <app>glabels</"
+"app> encuentra un campo como el único texto de una línea, no expandirá la "
+"línea si el campo está vacío."
 
-#: C/glabels.xml:554(term) C/glabels.xml:1123(guilabel)
-msgid "Text"
-msgstr "Texto"
-
-#: C/glabels.xml:556(para)
+#: C/merge-ex2.page:82(p)
 msgid ""
-"Click the desired location of the upper left corner of the text object. New "
-"text objects are initialized with the string \"Text.\" To change this text, "
-"or other properties, see <xref linkend=\"glabels-object-properties\"/>."
+"Now we can print our address labels by selecting the <guiseq><gui>File</"
+"gui><gui>Print</gui></guiseq> menu item. This will display print dialog as "
+"shown below."
 msgstr ""
+"Ahora se pueden imprimir las etiquetas de dirección seleccionando el "
+"elemento de menú <guiseq><gui>Archivo</gui><gui>Imprimir</gui></guiseq>. "
+"Esto mostrará el diálogo de impresión como se muestra a continuación."
 
-#: C/glabels.xml:564(term)
-msgid "Box"
-msgstr "Caja"
+#: C/merge-ex2.page:100(p)
+msgid "Address labels preview"
+msgstr "Vista previa de las etiquetas de dirección"
 
-#: C/glabels.xml:566(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex1.page:50(None)
 msgid ""
-"Click the desired location of the upper left corner of the box object and "
-"drag to the desired location of the lower right corner. If you simply click "
-"in a single location, a square box will be created. To change properties of "
-"the box object, see <xref linkend=\"glabels-object-properties\"/>."
+"@@image: 'figures/merge-ex1-1.png'; md5=6e1cda54b797f875f379b657370d87c8"
 msgstr ""
+"@@image: 'figures/merge-ex1-1.png'; md5=6e1cda54b797f875f379b657370d87c8"
 
-#: C/glabels.xml:575(term) C/glabels.xml:1149(guilabel)
-msgid "Line"
-msgstr "Línea"
-
-#: C/glabels.xml:577(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex1.page:63(None)
 msgid ""
-"Click the desired location of one end of the line object and drag to the "
-"desired location of the other end. If you simply click in a single location, "
-"a diagonal line will be created. To change properties of the line object, "
-"see <xref linkend=\"glabels-object-properties\"/>."
+"@@image: 'figures/merge-ex1-2.png'; md5=2ccad04ae5830f5f4a6a601d9fabed6a"
 msgstr ""
+"@@image: 'figures/merge-ex1-2.png'; md5=2ccad04ae5830f5f4a6a601d9fabed6a"
 
-#: C/glabels.xml:586(term)
-msgid "Ellipse"
-msgstr "Elipse"
-
-#: C/glabels.xml:588(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex1.page:84(None)
 msgid ""
-"Click the desired location of the upper left corner of the ellipse object "
-"and drag to the desired location of the lower right corner. If you simply "
-"click in a single location, a circle will be created. To change properties "
-"of the ellipse object, see <xref linkend=\"glabels-object-properties\"/>."
+"@@image: 'figures/merge-ex1-3.png'; md5=858855ab1a392db74b70cdb2bdb27ddd"
 msgstr ""
+"@@image: 'figures/merge-ex1-3.png'; md5=858855ab1a392db74b70cdb2bdb27ddd"
 
-#: C/glabels.xml:597(term)
-msgid "Image"
-msgstr "Imagen"
-
-#: C/glabels.xml:599(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex1.page:95(None)
 msgid ""
-"Click the desired location of the upper left corner of the image object and "
-"drag to the desired location of the lower right corner. If you simply click "
-"in a single location, a square will be created. New image objects are "
-"initialized with a simple checkerboard image. To change this image, or other "
-"properties of the image object, see <xref linkend=\"glabels-object-properties"
-"\"/>."
+"@@image: 'figures/merge-ex1-4.png'; md5=8648ff55dd2e531a1a82b797f0430279"
 msgstr ""
+"@@image: 'figures/merge-ex1-4.png'; md5=8648ff55dd2e531a1a82b797f0430279"
 
-#: C/glabels.xml:610(term)
-msgid "Barcode"
-msgstr ""
+#: C/merge-ex1.page:9(desc)
+msgid "Create name tags from a CSV file."
+msgstr "Crear etiquetas de nombre desde un archivo CSV."
 
-#: C/glabels.xml:612(para)
+#: C/merge-ex1.page:25(title)
+msgid "Example 1: Name Tags"
+msgstr "Ejemplo 1: etiquetas de nombre"
+
+#: C/merge-ex1.page:27(p)
 msgid ""
-"Click the desired location of the upper left corner of the barcode object. "
-"New barcode objects are initialized to a POSTNET barcode with representative "
-"data. To change data and properties of the barcode object, see <xref linkend="
-"\"glabels-object-properties\"/>."
+"In this example we are organizing an orientation party for the new crew "
+"members of our ship. We have a list of freshman crew members that we created "
+"in <app>gnumeric</app> and exported as the following CSV file. We could have "
+"created this file by using a text editor, but heck it is the 23rd century."
 msgstr ""
+"En este ejemplo se está organizando una fiesta de orientación para los "
+"nuevos miembros de la tripulación. Existe una lista de los miembros novatos "
+"de la tripulación que se ha creado en <app>gnumeric</app> y exportado en el "
+"siguiente archivo CSV. Se podría haber creado este archivo utilizando un "
+"editor de texto, pero diablos, es el siglo XXIII."
 
-#: C/glabels.xml:627(title)
-msgid "To Select Objects"
+#: C/merge-ex1.page:33(code)
+#, no-wrap
+msgid ""
+"\n"
+"Name,Department,SN\n"
+"\"Jim Kirk\",Management,\"SC937-0176 CEC\"\n"
+"\"Mr. Spock\",Sciences,S179-276SP\n"
+"\"Leonard McCoy\",Medicine,unknown\n"
+"\"Montgomery Scott\",Engineering,SE-197-54T\n"
+"      "
 msgstr ""
+"\n"
+"Name,Department,SN\n"
+"\"Jim Kirk\",Management,\"SC937-0176 CEC\"\n"
+"\"Mr. Spock\",Sciences,S179-276SP\n"
+"\"Leonard McCoy\",Medicine,unknown\n"
+"\"Montgomery Scott\",Engineering,SE-197-54T\n"
+"      "
 
-#: C/glabels.xml:629(para)
+#: C/merge-ex1.page:41(p)
 msgid ""
-"A prerequisite for performing operations on objects is the selection of "
-"individual objects or groups of objects. The display area must be in the "
-"object selection mode to create new selections, as indicated by an arrow "
-"cursor. The object selection mode is selected by the "
-"<menuchoice><guimenu>Objects</guimenu><guimenuitem>Select Mode</"
-"guimenuitem></menuchoice> menu item, or the corresponding command on the "
-"<guilabel>Drawing Toolbar</guilabel>."
+"In <app>gLabels</app> we have created a new <app>glabels</app> document "
+"using the Avery 5395 \"Name Badge Labels\" template. Next we use the "
+"<guiseq><gui>Objects</gui><gui>Merge Properties</gui></guiseq> menu item to "
+"display the <gui>merge properties</gui> dialog. We use this dialog to select "
+"the source type (in our case CSV with keys on line 1) and the merge source "
+"(filename) as shown."
 msgstr ""
+"En <app>glabels</app> se ha creado un documento de <app>glabels</app> nuevo "
+"usando la plantilla «Etiquetas de nombre de placa» Avery 5395. Ahora se usa "
+"el elemento de menú <guiseq><gui>Objetos</gui><gui>Mezclar propiedades</"
+"gui></guiseq> para mostrar el diálogo <gui>propiedades de combinación de "
+"datos</gui>. Use este diálogo para seleccionar el tipo de fuente (en este "
+"caso, CSV con claves en la línea 1) y la fuente de combinación (nombre de "
+"archivo) como se muestra."
 
-#: C/glabels.xml:642(term)
-msgid "Selecting a single object"
-msgstr ""
+#. ==== End of Figure ====
+#: C/merge-ex1.page:68(p)
+msgid ""
+"In this example we have added three text objects and a barcode object. The "
+"first text object contains only simple literal text (\"Hello, my name is\"). "
+"The second text object contains a single merge field (\"${Name}\") "
+"corresponding to the first field of a record (first column of a line) which "
+"contains the new crew member's full name. The third text field contains both "
+"literal text (\"Department: \") followed by a single merge field "
+"(\"${Department}\") corresponding to the second field or the crew member's "
+"department. The barcode object is configured to use field (or key) \"SN\" "
+"which contains our crew member's starfleet serial number."
+msgstr ""
+"En este ejemplo se han añadido tres objetos de texto y un objeto de código "
+"de barras. El primer objeto de texto contiene sólo un texto literal («Hola, "
+"mi nombre es»). El segundo objeto de texto contiene un único campo combinado "
+"(\"${Nombre}\") correspondiente al primer campo de un registro (primera "
+"columna de una línea) que contiene el nombre completo de los nuevos miembros "
+"de la tripulación. El tercer campo de texto contiene un texto literal "
+"(«Departamento») seguido de un único campo combinado (\"${Departmento}\") "
+"correspondiente al segundo campo del departamento de los nuevos miembros de "
+"la tripulación. El objeto de código de barras está configurado para usar el "
+"campo (o la clave) «SN», que contiene los números de serie de la flota "
+"estelar de los miembros de la tripulación."
+
+#: C/merge-ex1.page:78(p)
+msgid ""
+"Now we can print our name tags by selecting the <guiseq><gui>File</"
+"gui><gui>Print</gui></guiseq> menu item. This will display print dialog as "
+"shown below."
+msgstr ""
+"Ahora se pueden imprimir las etiquetas de nombre seleccionando el elemento "
+"de menú <guiseq><gui>Archivo</gui><gui>Imprimir</gui></guiseq>. Esto "
+"mostrará el diálogo de impresión como se muestra a continuación."
+
+#: C/merge-ex1.page:85(p)
+msgid "Printing name tags"
+msgstr "Imprimir etiquetas de nombre"
 
-#: C/glabels.xml:644(para)
+#: C/merge-ex1.page:96(p)
+msgid "Name tags preview"
+msgstr "Vista previa de las etiquetas de nombre"
+
+#. ==== End of Figure ====
+#: C/merge-ex1.page:100(p)
 msgid ""
-"A single object can be selected simply by clicking on the desired object in "
-"the display area. Once selected the object will be highlighted with a set of "
-"resizing handles."
+"Everything looks good, so we can now load up our printer with the "
+"appropriate label stock, print our name tags and start beaming our guests "
+"aboard."
 msgstr ""
+"Todo parece correcto, así que ahora puede cargar su impresora con las "
+"etiquetas apropiadas, imprimir sus etiquetas de nombre e invitar a sus "
+"invitados a bordo."
 
-#: C/glabels.xml:652(term)
-msgid "Aggregate object selections"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:340(None)
+msgid ""
+"@@image: 'figures/glabels-template-rect-label.png'; "
+"md5=9c7ae1c1a888e1c9eefd19655d093971"
 msgstr ""
+"@@image: 'figures/glabels-template-rect-label.png'; "
+"md5=9c7ae1c1a888e1c9eefd19655d093971"
 
-#: C/glabels.xml:654(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:392(None)
 msgid ""
-"Multiple objects can be selected by first selecting the first object as "
-"above and then by holding the <keycap>Ctrl</keycap> key while selecting "
-"additional objects. Individual objects can be added to an existing selection "
-"at any time by holding the <keycap>Ctrl</keycap> key while selecting the "
-"desired objects. All objects can also be selected by using the "
-"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Select All</guimenuitem></"
-"menuchoice> menu item. All objects in an aggregate object selection will be "
-"highlighted."
+"@@image: 'figures/glabels-template-ellipse-label.png'; "
+"md5=ba612c86b5fb8fcd2b5384ecc1c331d2"
 msgstr ""
+"@@image: 'figures/glabels-template-ellipse-label.png'; "
+"md5=ba612c86b5fb8fcd2b5384ecc1c331d2"
 
-#: C/glabels.xml:668(term)
-msgid "Area selections"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:439(None)
+msgid ""
+"@@image: 'figures/glabels-template-circle-label.png'; "
+"md5=841e36a1f92aeed01e8fbaacc67758f1"
 msgstr ""
+"@@image: 'figures/glabels-template-circle-label.png'; "
+"md5=841e36a1f92aeed01e8fbaacc67758f1"
 
-#: C/glabels.xml:670(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:500(None)
 msgid ""
-"Multiple objects can also be selected by clicking an empty area and dragging "
-"to form a rectangular area. When released, all objects contained in the area "
-"will form an aggregate selection. An area selection can be used to add to an "
-"existing selection by holding the <keycap>Ctrl</keycap> key while performing "
-"the selection."
+"@@image: 'figures/glabels-template-cd-label.png'; "
+"md5=c7952ac1b26ecbfa53facfbbf6486841"
 msgstr ""
+"@@image: 'figures/glabels-template-cd-label.png'; "
+"md5=c7952ac1b26ecbfa53facfbbf6486841"
 
-#: C/glabels.xml:680(term)
-msgid "Unselecting objects"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:762(None)
+msgid ""
+"@@image: 'figures/glabels-template-layout.png'; "
+"md5=fe1c9652d5448b2e0ece086777d3a287"
 msgstr ""
+"@@image: 'figures/glabels-template-layout.png'; "
+"md5=fe1c9652d5448b2e0ece086777d3a287"
 
-#: C/glabels.xml:682(para)
+#: C/mancreate.page:10(desc)
+msgid "Create your templates manually."
+msgstr "Crear sus plantillas manualmente."
+
+#: C/mancreate.page:26(title)
+msgid "Manually creating new templates"
+msgstr "Crear plantillas nuevas manualmente"
+
+#. ******************
+#: C/mancreate.page:33(p)
 msgid ""
-"Individual objects can be removed from an existing selection by holding the "
-"<keycap>Ctrl</keycap> key while clicking on a previously selected object. An "
-"entire selection can be dismissed by using the <menuchoice><guimenu>Edit</"
-"guimenu><guimenuitem>Un-select All</guimenuitem></menuchoice> menu item or "
-"by simply clicking any empty space in the display area. Once an object is "
-"unselected its highlight is removed."
+"This page is a reference guide to manually creating <app>gLabels</app> "
+"templates. <app>gLabels</app> templates are defined in simple XML files as "
+"described in the DTD: <link href=\"http://glabels.org/xmlns/2.3/glabels-2.3."
+"dtd.txt\">glabels-2.3.dtd</link> (this DTD also describes other XML files "
+"used by <app>gLabels</app>)."
 msgstr ""
+"Esta página es una guía de referencia para la creación manual de plantillas "
+"de <app>gLabels</app>. Las plantillas de <app>gLabels</app> se definen en un "
+"archivo XML, tal como se describe en la DTD: <link href=\"http://glabels.org/"
+"xmlns/2.3/glabels-2.3.dtd.txt\">glabels-2.3.dtd</link> (Este DTD también "
+"describe otros formatos XML usados por <app>glabels</app>)."
 
-#: C/glabels.xml:699(title)
-msgid "Clipboard Commands"
+#: C/mancreate.page:38(p)
+msgid ""
+"Manually created template files should be placed in the <file>${HOME}/."
+"glabels</file> and be named with a <file>.template</file> extension."
 msgstr ""
+"Las plantillas creadas manualmente se guardarán en <file>${HOME}/.glabels</"
+"file> y se nombrarán con extensión <file>.template</file>."
 
-#: C/glabels.xml:701(para)
+#: C/mancreate.page:42(p)
 msgid ""
-"Object selections can be manipulated using the standard clipboard operations "
-"<guimenuitem>Cut</guimenuitem>, <guimenuitem>Copy</guimenuitem>, "
-"<guimenuitem>Paste</guimenuitem>, and <guimenuitem>Delete</guimenuitem>."
+"<app>gLabels</app> searches for templates in several other locations as "
+"defined here:"
 msgstr ""
+"<app>gLabels</app> busca plantillas en varias ubicaciones, como se define "
+"aquí:"
 
-#: C/glabels.xml:712(keycap) C/glabels.xml:728(keycap)
-#: C/glabels.xml:744(keycap)
-msgid "Ctrl"
-msgstr "Ctrl"
+#: C/mancreate.page:45(p)
+msgid "Location"
+msgstr "Ubicación"
+
+#: C/mancreate.page:46(p) C/mancreate.page:173(p) C/mancreate.page:237(p)
+#: C/mancreate.page:301(p) C/mancreate.page:364(p) C/mancreate.page:415(p)
+#: C/mancreate.page:462(p) C/mancreate.page:535(p) C/mancreate.page:562(p)
+#: C/mancreate.page:600(p) C/mancreate.page:634(p) C/mancreate.page:676(p)
+#: C/mancreate.page:726(p)
+msgid "Description"
+msgstr "Descripción"
 
-#: C/glabels.xml:712(keycap)
-msgid "X"
-msgstr "X"
+#: C/mancreate.page:53(file)
+msgid "${prefix}/share/libglabels-3.0/templates"
+msgstr "${prefix}/share/libglabels-3.0/templates"
 
-#: C/glabels.xml:714(guimenuitem)
-msgid "Cut"
-msgstr "Cortar"
+#: C/mancreate.page:54(p)
+msgid "Predefined templates distributed with <app>gLabels</app>."
+msgstr "Plantillas predefinidas distribuidas con <app>gLabels</app>."
 
-#: C/glabels.xml:718(para)
+#: C/mancreate.page:55(p)
 msgid ""
-"Moves selected objects to the clipboard. The objects are then available for "
-"pasting back into the current document or another document."
+"<file>${prefix}</file> is usually <file>/usr</file> or <file>/usr/local</"
+"file>, depending on where <app>gLabels</app> was installed."
 msgstr ""
+"<file>${prefix}</file> normalmente es <file>/usr</file> o <file>/usr/local</"
+"file>, dependiendo de dónde se haya instalado <app>gLabels</app>."
 
-#: C/glabels.xml:728(keycap)
-msgid "C"
-msgstr "C"
-
-#: C/glabels.xml:730(guimenuitem)
-msgid "Copy"
-msgstr "Copiar"
+#: C/mancreate.page:59(file)
+msgid "${XDG_CONFIG_HOME}/libglabels/templates"
+msgstr "${XDG_CONFIG_HOME}/libglabels/templates"
 
-#: C/glabels.xml:734(para)
+#: C/mancreate.page:60(p)
 msgid ""
-"Copies selected objects to the clipboard without deleting them. The objects "
-"are then available for pasting back into the current document or another "
-"document."
+"User defined templates created with the <app>gLabels</app><gui>Template "
+"Designer</gui>. <em>Do not put manually created templates in this directory."
+"</em>"
 msgstr ""
+"Plantillas definidas por el usuario creadas con el <gui>Diseñador de "
+"plantillas</gui> de <app>gLabels</app>. <em>No ponga plantillas creadas "
+"manualmente en esta carpeta</em>."
 
-#: C/glabels.xml:744(keycap)
-msgid "V"
-msgstr "V"
-
-#: C/glabels.xml:746(guimenuitem)
-msgid "Paste"
-msgstr "Pegar"
-
-#: C/glabels.xml:750(para)
+#: C/mancreate.page:62(p)
 msgid ""
-"Pastes objects from the clipboard into the current document. "
-"<application>gLabels</application> can only paste objects from another "
-"<application>gLabels</application> document."
+"If <file>${XDG_CONFIG_HOME}</file> is not defined, it defaults to <file>"
+"${HOME}/.config</file>."
 msgstr ""
+"Si <file>${XDG_CONFIG_HOME}</file> no está definido, su valor predeterminado "
+"es <file>${HOME}/.config</file>."
 
-#: C/glabels.xml:760(keycap) C/glabels.xml:762(guimenuitem)
-msgid "Delete"
-msgstr "Borrar"
-
-#: C/glabels.xml:766(para)
-msgid "Deletes selected objects without placing them on the clipboard."
-msgstr ""
+#: C/mancreate.page:66(file)
+msgid "${HOME}/.glabels"
+msgstr "${HOME}/.glabels"
 
-#: C/glabels.xml:777(title)
-msgid "To Edit Object Properties"
+#: C/mancreate.page:67(p)
+msgid ""
+"User defined templates that have been created manually should be placed in "
+"this directory. Older versions of the <app>gLabels</app><gui>Template "
+"Designer</gui> (prior to 3.0) would also put templates in this directory."
 msgstr ""
+"Las plantillas definidas por el usuario creadas manualmente se deben poner "
+"en esta carpeta. Las versiones del <gui>Diseñador de plantillas</gui> de "
+"<app>gLabels</app> (anteriores a 3.0) también pondrían plantillas en esta "
+"carpeta."
 
-#: C/glabels.xml:779(para)
+#: C/mancreate.page:75(p)
 msgid ""
-"Most object properties can be modified through the object editor sidebar, "
-"illustrated below. To use the object editor, a single object must first be "
-"selected. See <xref linkend=\"glabels-select-objects\"/>."
+"Completed template files can be sent to the <app>gLabels</app> template "
+"<link href=\"mailto:glabels-templates@lists.sourceforge.net\">mailing list</"
+"link> for possible inclusion in future versions of <app>gLabels</app>."
 msgstr ""
+"Los archivos de plantillas completadas se pueden enviar a la <link href="
+"\"mailto:glabels-templates@lists.sourceforge.net\">lista de correo</link> de "
+"plantillas de <app>gLabels</app>, para incluirlas posiblemente en versiones "
+"futuras de <app>gLabels</app>."
 
-#: C/glabels.xml:786(title)
-msgid "Object Editor Sidebar"
-msgstr ""
+#: C/mancreate.page:89(title)
+msgid "Assumptions/caveats"
+msgstr "Supuestos/advertencias"
 
-#. ==== End of Figure ====
-#: C/glabels.xml:797(para)
+#: C/mancreate.page:92(p)
 msgid ""
-"The object editor will contain a subset of the following tabbed sections, "
-"depending on object type:"
+"A sheet contains only one size of label or card (if a sheet contains more "
+"than one size of item, it can be split into multiple templates for multiple "
+"pass printing)"
 msgstr ""
+"Una hoja contiene etiquetas o tarjetas de un sólo tamaño (si una hoja "
+"contiene más de un tamaño por elemento, se puede dividir el varias "
+"plantillas para imprimir en múltiples pasadas)"
+
+#: C/mancreate.page:97(p)
+msgid ""
+"Distances can be expressed in units of <code translate=\"no\">pt</code>, "
+"<code translate=\"no\">in</code>, <code translate=\"no\">mm</code>, <code "
+"translate=\"no\">cm</code>, or <code translate=\"no\">pc</code>. For "
+"example: \"<code translate=\"no\">1.0in</code>\" or \"<code translate=\"no"
+"\">2.54cm</code>\". If no units are specified, computer points (<code "
+"translate=\"no\">pt</code>) will be assumed (1 <em>pt</em> = 1/72 <em>in</"
+"em> = 0.352778 <em>mm</em>)."
+msgstr ""
+"Las distancias se pueden expresar en las unidades <code translate=\"no\">pt</"
+"code>, <code translate=\"no\">in</code>, <code translate=\"no\">mm</code>, "
+"<code translate=\"no\">cm</code>, o <code translate=\"no\">pc</code>. Por "
+"ejemplo: «<code translate=\"no\">1.0in</code>» o «<code translate=\"no"
+"\">2.54cm</code>». Si no se especifican la unidade, se asumirá que es puntos "
+"informáticos (<code translate=\"no\">pt</code>), donde 1 <em>pt</em> = 1/72 "
+"<em>in</em> = 0.352778 <em>mm</em>."
+
+#: C/mancreate.page:118(title)
+msgid "Template Files"
+msgstr "Archivos de plantillas"
 
-#: C/glabels.xml:801(title)
-msgid "Text Tabbed Section (Text objects)"
+#: C/mancreate.page:120(p)
+msgid ""
+"A template file contains a single <code translate=\"no\">Glabels-templates</"
+"code> top-level node."
 msgstr ""
+"Un archivo de plantilla contiene un único nodo <code translate=\"no"
+"\">Glabels-templates</code> de nivel superior."
 
-#: C/glabels.xml:803(para)
+#: C/mancreate.page:123(code)
+#, no-wrap
 msgid ""
-"This section contains a small editor for changing the content of a text "
-"object. It also contains a dropdown menu of available document merge keys, "
-"that can be inserted into text."
+"\n"
+"&lt;?xml version=\"1.0\"?&gt;\n"
+"&lt;Glabels-templates&gt;\n"
+"\n"
+"   <var its:translate=\"yes\">...templates...</var>\n"
+"\n"
+"&lt;/Glabels-templates&gt;"
 msgstr ""
+"\n"
+"&lt;?xml version=\"1.0\"?&gt;\n"
+"&lt;Glabels-templates&gt;\n"
+"\n"
+"   <var its:translate=\"yes\">...plantillas...</var>\n"
+"\n"
+"&lt;/Glabels-templates&gt;"
 
-#: C/glabels.xml:810(title)
-msgid "Image Tabbed Section (Image objecs)"
-msgstr ""
+#: C/mancreate.page:132(title)
+msgid "Example Template"
+msgstr "Plantilla de ejemplo"
 
-#: C/glabels.xml:812(para)
+#: C/mancreate.page:133(desc)
 msgid ""
-"This section contains a file entry with preview to select image files. The "
-"browse button can be used to easily locate image files. Alternatively, a "
-"document merge key can be used instead to provide a filename at print time."
-msgstr ""
-
-#: C/glabels.xml:820(title)
-msgid "Data Tabbed Section (Barcode objecs)"
+"Example <app>gLabels</app> template file containing a single <code translate="
+"\"no\">Template</code> node."
 msgstr ""
+"Ejemplo de archivo de plantilla de <app>gLabels</app> con un nodo <code "
+"translate=\"no\">Template</code>."
 
-#: C/glabels.xml:822(para)
+#: C/mancreate.page:135(code)
+#, no-wrap
 msgid ""
-"This section contains a text entry to enter literal barcode data. "
-"Alternatively, a document merge key can be used to provide this data at "
-"print time."
+"\n"
+"&lt;?xml version=\"1.0\"?&gt;\n"
+"&lt;Glabels-templates&gt;\n"
+"\n"
+"  &lt;Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\"&gt;\n"
+"    &lt;Meta category=\"label\"/&gt;\n"
+"    &lt;Meta category=\"mail\"/&gt;\n"
+"    &lt;Meta product_url=\"http://www.avery.com/avery/en_us/\"/&gt;\n"
+"    &lt;Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\"&gt;\n"
+"      &lt;Markup-margin size=\"5pt\"/&gt;\n"
+"      &lt;Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/&gt;\n"
+"    &lt;/Label-rectangle&gt;\n"
+"  &lt;/Template&gt;\n"
+"\n"
+"&lt;/Glabels-templates&gt;"
 msgstr ""
+"\n"
+"&lt;?xml version=\"1.0\"?&gt;\n"
+"&lt;Glabels-templates&gt;\n"
+"\n"
+"  &lt;Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\"&gt;\n"
+"    &lt;Meta category=\"label\"/&gt;\n"
+"    &lt;Meta category=\"mail\"/&gt;\n"
+"    &lt;Meta product_url=\"http://www.avery.com/avery/en_us/\"/&gt;\n"
+"    &lt;Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\"&gt;\n"
+"      &lt;Markup-margin size=\"5pt\"/&gt;\n"
+"      &lt;Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/&gt;\n"
+"    &lt;/Label-rectangle&gt;\n"
+"  &lt;/Template&gt;\n"
+"\n"
+"&lt;/Glabels-templates&gt;"
 
-#: C/glabels.xml:829(title)
-msgid "Style Tabbed Section (Text objects)"
-msgstr ""
+#: C/mancreate.page:163(title)
+msgid "<span translate=\"no\">Template</span> Node"
+msgstr "Nodo <span translate=\"no\">Template</span>"
 
-#: C/glabels.xml:831(para)
+#: C/mancreate.page:165(p)
 msgid ""
-"This section contains controls to select text properties, including font "
-"family, font size, font weight, color, and text justification."
+"A <code translate=\"no\">Template</code> node describes a single stationery "
+"product. It must contain one instance of any type of Label node (<code "
+"translate=\"no\">Label-rectangle</code>, <code translate=\"no\">Label-round</"
+"code>, or <code translate=\"no\">Label-cd</code>)."
 msgstr ""
+"Un nodo <code translate=\"no\">Template</code> describe un único producto de "
+"papelería. Debe contener una instancia de cada tipo de nodo "
+"«Etiqueta» (<code translate=\"no\">Label-rectangle</code>, <code translate="
+"\"no\">Label-round</code>, o <code translate=\"no\">Label-cd</code>)."
 
-#: C/glabels.xml:838(title)
-msgid "Style Tabbed Section (Barcode objecs)"
-msgstr ""
+#: C/mancreate.page:173(p) C/mancreate.page:301(p) C/mancreate.page:364(p)
+#: C/mancreate.page:415(p) C/mancreate.page:462(p) C/mancreate.page:535(p)
+#: C/mancreate.page:562(p) C/mancreate.page:600(p) C/mancreate.page:634(p)
+#: C/mancreate.page:676(p) C/mancreate.page:726(p)
+msgid "Property"
+msgstr "Propiedad"
+
+#: C/mancreate.page:179(code)
+#, no-wrap
+msgid "brand"
+msgstr "brand"
+
+#: C/mancreate.page:180(p)
+msgid "Brand or manufacturer of stationery product. E.g. \"Avery\""
+msgstr "Marca o fabricante de productos de papelería. Por ejemplo «Avery»."
+
+#: C/mancreate.page:183(code)
+#, no-wrap
+msgid "part"
+msgstr "part"
+
+#: C/mancreate.page:184(p)
+msgid "Part number or name of stationery product. E.g. \"8160\""
+msgstr "Número de pieza o nombre de un producto de papelería. Ej «8160»"
 
-#: C/glabels.xml:840(para)
+#: C/mancreate.page:187(code) C/mancreate.page:541(code)
+#, no-wrap
+msgid "size"
+msgstr "size"
+
+#: C/mancreate.page:188(p)
 msgid ""
-"This section contains controls to select barcode properties, including "
-"barcode style, color, whether to print text, and whether to include a "
-"checksum digit."
+"Size of sheet. E.g., \"<code translate=\"no\">US-Letter</code>\", \"<code "
+"translate=\"no\">A4</code>\", ..."
 msgstr ""
+"Tamaño de la hoja. Ej. \"<code translate=\"no\">Carta</code>\", \"<code "
+"translate=\"no\">A4</code>\", ...."
 
-#: C/glabels.xml:847(title)
-msgid "Line Tabbed Section"
+#: C/mancreate.page:193(code)
+#, no-wrap
+msgid "description"
+msgstr "description"
+
+#: C/mancreate.page:194(p)
+msgid "Description of stationery product. E.g, \"Mailing Labels.\""
 msgstr ""
+"Descripción de un producto de papelería. Por ejemplo, «Etiquetas de "
+"dirección»."
+
+#: C/mancreate.page:197(code)
+#, no-wrap
+msgid "_description"
+msgstr "_description"
 
-#: C/glabels.xml:849(para)
+#: C/mancreate.page:198(p)
 msgid ""
-"This section contains controls to select properties of lines and outlines. "
-"These properties include line width and color."
+"Translatable description of stationery product. E.g, \"Mailing Labels."
+"\" (Only useful for predefined templates)"
 msgstr ""
+"Descripción traducible para un producto de papelería. Por ejemplo, "
+"«Etiquetas de correo». (Útil sólo para plantillas predefinidas.)"
 
-#: C/glabels.xml:855(title)
-msgid "Fill Tabbed Section"
-msgstr ""
+#: C/mancreate.page:202(code) C/mancreate.page:311(code)
+#: C/mancreate.page:374(code) C/mancreate.page:480(code)
+#, no-wrap
+msgid "width"
+msgstr "width"
+
+#: C/mancreate.page:203(p)
+msgid "Page width. Only valid if size=\"Other\""
+msgstr "Ancho de la página. Sólo es válido si tamaño=«Otro»"
+
+#: C/mancreate.page:206(code) C/mancreate.page:315(code)
+#: C/mancreate.page:378(code) C/mancreate.page:485(code)
+#, no-wrap
+msgid "height"
+msgstr "height"
+
+#: C/mancreate.page:207(p)
+msgid "Page height. Only valid if size=\"Other\""
+msgstr "Altura de la página. Sólo es válido si tamaño=«Otro»"
+
+#: C/mancreate.page:210(code)
+#, no-wrap
+msgid "equiv"
+msgstr "equiv"
 
-#: C/glabels.xml:857(para)
+#: C/mancreate.page:211(p)
 msgid ""
-"This section contains controls to select fill properties of box and ellipse "
-"objects. Currently the only fill property is fill color."
+"Equivalent part number. If this property is present, the template is a clone "
+"of another template of the same brand. The template will inherit all "
+"properties, except brand and name from the other template. This equiv "
+"property must refer to a previously defined template - <app>gLabels</app> "
+"does not currently support forward references."
 msgstr ""
+"Parte numérica equivalente. Si esta propiedad está presente, la plantilla es "
+"un clon de otra plantilla de la misma marca. La plantilla heredará todas las "
+"propiedades, excepto la marca y el nombre de la otra plantilla. Esta "
+"propiedad debe referirse a una plantilla definida anteriormente: actualmente "
+"<app>gLabels</app> no soporta hacia adelante."
 
-#: C/glabels.xml:864(title)
-msgid "Size Tabbed Section (All except line objects)"
-msgstr ""
+#: C/mancreate.page:229(title)
+msgid "<span translate=\"no\">Meta</span> Node"
+msgstr "Nodo <span translate=\"no\">Meta</span>"
 
-#: C/glabels.xml:866(para)
+#: C/mancreate.page:231(p)
 msgid ""
-"This section contains controls to select the width and height of an object. "
-"A checkbox is provided, so that the current aspect ratio can be locked while "
-"manipulating the width and height controls. Image objects also provide a "
-"button to reset the size to the image's natural size (Assumes 72DPI)."
+"A <code translate=\"no\">Meta</code> node contains some additional "
+"information about the template. A <code translate=\"no\">Template</code> "
+"node may contain zero or more <code translate=\"no\">Meta</code> nodes."
 msgstr ""
+"un nodo <code translate=\"no\">Meta</code> contiene información adicional "
+"sobre la plantilla. Un nodo <code translate=\"no\">Template</code> puede "
+"contener cero o más nodos <code translate=\"no\">Meta</code>."
 
-#: C/glabels.xml:875(title)
-msgid "Size Tabbed Section (Line objects)"
-msgstr ""
+#: C/mancreate.page:237(p)
+msgid "Subnode"
+msgstr "Subnodo"
+
+#: C/mancreate.page:243(code)
+#, no-wrap
+msgid "category"
+msgstr "category"
 
-#: C/glabels.xml:877(para)
+#: C/mancreate.page:244(p)
 msgid ""
-"This section contains controls to select the length and angle of a line "
-"object."
+"A category for the template. A template can belong to multiple categories by "
+"simply adding multiple <code translate=\"no\">Meta</code> nodes to the "
+"parent <code translate=\"no\">Template</code> node. Template categories are "
+"used by the <app>gLabels</app><gui>New Label Dialog</gui> to filter the "
+"results of template searches."
 msgstr ""
+"Una categoría para la plantilla. Una plantilla puede pertenecer a varias "
+"categorías simplemente añadiendo múltiples nodos <code translate=\"no"
+"\">Meta</code> al nodo <code translate=\"no\">Template</code> padre. El "
+"<gui>Diálogo de tarjeta nueva</gui> de <app>gLabels</app> usa las categorías "
+"de las plantillas para filtrar los resultados de búsquedas de plantillas."
 
-#: C/glabels.xml:883(title)
-msgid "Position Tabbed Section"
+#: C/mancreate.page:251(p)
+msgid ""
+"The value of this category must match a predefined category ID defined in "
+"the file <file>${prefix}/libglabels-3.0/templates/categories.xml</file>. "
+"Currently defined category IDs include:"
 msgstr ""
+"El valor de esta categoría debe coincidir con un ID de categoría predefinido "
+"en el archivo <file>${prefix}/libglabels-3.0/templates/categories.xml</"
+"file>. Los ID de categoría definidos actualmente incluyen:"
 
-#: C/glabels.xml:885(para)
-msgid "This section contains controls to change the position of an object."
-msgstr ""
+#: C/mancreate.page:255(code)
+#, no-wrap
+msgid "label"
+msgstr "label"
 
-#: C/glabels.xml:892(title)
-msgid "Shadow Tabbed Section (All except image and barcode objects)"
-msgstr ""
+#: C/mancreate.page:256(code)
+#, no-wrap
+msgid "round-label"
+msgstr "round-label"
 
-#: C/glabels.xml:894(para)
-msgid "This section contains controls to add a shadow to an object."
-msgstr ""
+#: C/mancreate.page:257(code)
+#, no-wrap
+msgid "elliptical-label"
+msgstr "elliptical-label"
 
-#: C/glabels.xml:903(title)
-msgid "Other Manipulations of Objects"
-msgstr ""
+#: C/mancreate.page:258(code)
+#, no-wrap
+msgid "square-label"
+msgstr "square-label"
 
-#: C/glabels.xml:905(para)
-msgid "Objects can also be manipulated in the following ways."
-msgstr ""
+#: C/mancreate.page:259(code)
+#, no-wrap
+msgid "rectangle-label"
+msgstr "rectangle-label"
 
-#: C/glabels.xml:908(title)
-msgid "Moving and Resizing Objects"
-msgstr ""
+#: C/mancreate.page:260(code)
+#, no-wrap
+msgid "card"
+msgstr "card"
+
+#: C/mancreate.page:261(code)
+#, no-wrap
+msgid "business-card"
+msgstr "business-card"
+
+#: C/mancreate.page:262(code)
+#, no-wrap
+msgid "media"
+msgstr "media"
+
+#: C/mancreate.page:263(code)
+#, no-wrap
+msgid "mail"
+msgstr "mail"
+
+#: C/mancreate.page:264(code)
+#, no-wrap
+msgid "foldable"
+msgstr "foldable"
+
+#: C/mancreate.page:265(code)
+#, no-wrap
+msgid "photo"
+msgstr "photo"
+
+#: C/mancreate.page:272(code)
+#, no-wrap
+msgid "product_url"
+msgstr "product_url"
 
-#: C/glabels.xml:910(para)
+#: C/mancreate.page:273(p)
 msgid ""
-"Objects can be moved by simply clicking on a selected object and dragging "
-"the object to its new location. If the object is part of an aggregate "
-"selection, all objects in the selection will move with the object being "
-"dragged, maintaining their relative positions to one another. If no object "
-"is selected, clicking on an object will create a new selection containing "
-"that object. See <xref linkend=\"glabels-select-objects\"/>."
+"A URL pointing to the vendor's webpage for the specific product, if "
+"available."
 msgstr ""
+"Un URL que apunta a la página web del fabricante para un producto "
+"determinado, si está disponible."
 
-#: C/glabels.xml:918(para)
+#: C/mancreate.page:277(p)
 msgid ""
-"A selected object can be resized by clicking one of its resize handle and "
-"dragging it to obtain the new size."
+"Suggestions for additional categories can be sent to the <app>gLabels</app> "
+"developer's <link href=\"mailto:glabels-devel@lists.sourceforge.net"
+"\">mailing list</link>."
 msgstr ""
+"La sugerencias sobre categorías adicionales se pueden enviar a la <link href="
+"\"mailto:glabels-devel@lists.sourceforge.net\">lista de correo</link> de los "
+"desarrolladores de <app>gLabels</app>."
 
-#: C/glabels.xml:924(title)
-msgid "Changing Stacking Order"
+#: C/mancreate.page:280(p)
+msgid "Product URLs may be of limited use, because they may not be permanent."
 msgstr ""
+"Los URL de productos deben ser de uso limitado, ya que pueden no ser "
+"permanentes."
+
+#: C/mancreate.page:293(title)
+msgid "<span translate=\"no\">Label-rectangle</span> Node"
+msgstr "Nodo <span translate=\"no\">Label-rectangle</span>"
 
-#: C/glabels.xml:926(para)
+#: C/mancreate.page:295(p)
 msgid ""
-"Stacking order refers to relative position in the z-axis of objects. That is "
-"when objects overlap, which object will appear on top of the other. By "
-"default, newer objects will appear above older objects. To change this "
-"order, select one or more objects and choose <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Order</guimenuitem><guimenuitem>Bring to Front</"
-"guimenuitem></menuchoice> to raise the selection to the top of the stacking "
-"order, or choose <menuchoice><guimenu>Objects</guimenu><guimenuitem>Order</"
-"guimenuitem><guimenuitem>Send to Back</guimenuitem></menuchoice> to lower "
-"the selection to the bottom of the stacking order. These menuitems are also "
-"available by right-clicking the display area when there is a non-empty "
-"selection."
+"A <code translate=\"no\">Label-rectangle</code> node describes the "
+"dimensions of a single label or business card that is rectangular in shape "
+"(may have rounded edges)."
 msgstr ""
+"Un nodo<code translate=\"no\">Label-rectangle</code> describe las "
+"dimensiones de una única etiqueta o tarjeta de visita de forma rectangular "
+"(Puede tener los bordes redondeados."
 
-#: C/glabels.xml:944(title)
-msgid "Rotating and Flipping Objects"
-msgstr ""
+#: C/mancreate.page:307(code) C/mancreate.page:370(code)
+#: C/mancreate.page:421(code) C/mancreate.page:468(code)
+#, no-wrap
+msgid "id"
+msgstr "id"
+
+#: C/mancreate.page:308(p) C/mancreate.page:371(p) C/mancreate.page:422(p)
+#: C/mancreate.page:469(p)
+msgid "Reserved for future use. Should always be 0."
+msgstr "Reservado para el futuro. Debería ser siempre 0."
 
-#: C/glabels.xml:946(para)
+#: C/mancreate.page:312(p)
+msgid "Width of label/card"
+msgstr "Ancho de la etiqueta/tarjeta"
+
+#: C/mancreate.page:316(p)
+msgid "Heigth of label/card"
+msgstr "Altura de la etiqueta/tarjeta"
+
+#: C/mancreate.page:319(code)
+#, no-wrap
+msgid "round"
+msgstr "round"
+
+#: C/mancreate.page:320(p)
 msgid ""
-"Objects can be rotated 90 degrees in either direction, or flipped "
-"horizontally or vertically, by choosing the appropriate menuitem in the "
-"<menuchoice><guimenu>Objects</guimenu><guimenuitem>Rotate/Flip</"
-"guimenuitem></menuchoice> sub-menu. These menuitems are also available by "
-"right-clicking the display area when there is a non-empty selection."
+"Radius of corners. For items with square edges (business cards), the radius "
+"should be 0."
 msgstr ""
+"Radio de la esquina. Para elementos con bordes cuadrados (tarjetas de "
+"visita), el radio debe ser 0."
 
-#: C/glabels.xml:956(title)
-msgid "Aligning Objects"
-msgstr ""
+#: C/mancreate.page:324(code)
+#, no-wrap
+msgid "x_waste"
+msgstr "x_waste"
 
-#: C/glabels.xml:958(para)
+#: C/mancreate.page:325(p)
 msgid ""
-"Objects can be aligned horizontally or vertically, relative to one another, "
-"or relative to the center line of the label, by choosing the appropriate "
-"menuitem from the <menuchoice><guimenu>Objects</guimenu><guimenuitem>Align "
-"Horizontal</guimenuitem></menuchoice> or <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Align Horizontal</guimenuitem></menuchoice> sub-menus. "
-"These menuitems are also available by right-clicking the display area when "
-"there is a non-empty selection."
+"Amount of horizontal waste (over-print) to allow. This is useful for "
+"minimizing alignment problems when using non-white backgrounds (e.g. images)."
 msgstr ""
+"Cantidad de residuos horizontales (sobreimpresión) que permitir. Esto es "
+"útil para minimizar problemas de alineación al usar fondos no blancos (ej. "
+"imágenes)."
 
-#: C/glabels.xml:971(title)
-msgid "Using the Property Bar"
-msgstr ""
+#: C/mancreate.page:330(code)
+#, no-wrap
+msgid "y_waste"
+msgstr "y_waste"
 
-#: C/glabels.xml:973(para)
+#: C/mancreate.page:331(p)
 msgid ""
-"The property bar can be used to change some common properties of objects en-"
-"masse. These properties include font family, font size, font weight, text "
-"alignment, text color, fill color, line or outline color, and line width. "
-"The property bar also controls the defaults for these properties for any "
-"newly created objects."
+"Amount of vertical waste (over-print) to allow. This is useful for "
+"minimizing alignment problems when using non-white backgrounds (e.g. images)."
 msgstr ""
+"Cantidad de residuos verticales (sobreimpresión) que permitir. Esto es útil "
+"para minimizar problemas de alineación al usar fondos no blancos (ej. "
+"imágenes)."
 
-#: C/glabels.xml:988(title)
-msgid "Performing a Document Merge"
-msgstr ""
+#: C/mancreate.page:339(desc) C/mancreate.page:341(p)
+msgid "<span translate=\"no\">Label-rectangle</span> parameters"
+msgstr "Parámetros de <span translate=\"no\">Label-rectangle</span>"
+
+#: C/mancreate.page:356(title)
+msgid "<span translate=\"no\">Label-ellipse</span> Node"
+msgstr "Nodo <span translate=\"no\">Label-ellipse</span>"
 
-#: C/glabels.xml:990(para)
+#: C/mancreate.page:358(p)
 msgid ""
-"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that "
-"allows a unique label or card to be printed for each record in an external "
-"data source."
+"A <code translate=\"no\">Label-ellipse</code> node describes the dimensions "
+"of a single label or business card that is elliptic in shape."
 msgstr ""
+"Un nodo <code translate=\"no\">Label-ellipse</code> describe las dimensiones "
+"de una única etiqueta o tarjeta de visita de forma elíptica."
+
+#: C/mancreate.page:375(p)
+msgid "Width of the ellipse"
+msgstr "Anchura de la elipse"
+
+#: C/mancreate.page:379(p)
+msgid "Heigth of the ellipse"
+msgstr "Altura de la elipse"
+
+#: C/mancreate.page:382(code) C/mancreate.page:429(code)
+#: C/mancreate.page:490(code)
+#, no-wrap
+msgid "waste"
+msgstr "waste"
 
-#: C/glabels.xml:994(para)
+#: C/mancreate.page:383(p) C/mancreate.page:430(p) C/mancreate.page:491(p)
 msgid ""
-"The first step to performing a document merge is to prepare a source "
-"document that contains your merge data. This data could be mailing addresses "
-"or any other data that you wish to create unique labels or cards for. "
-"Currently back-ends only exist for text files and the evolution data server "
-"-- others are planned. The currently supported text-file format is very "
-"simple: each line is a record; fields are delimited by commas (CSV), tabs, "
-"or colons; and newlines can be embedded into fields by using the \"\\n\" "
-"entity. This file could be created using any text editor or could be created "
-"by another program or script. A common way of creating CSV files is to "
-"export them from a spreadsheet program."
+"Amount of waste (over-print) to allow. This is useful for minimizing "
+"alignment problems when using non-white backgrounds (e.g. images)."
 msgstr ""
+"Cantidad de residuos (sobreimpresión) que permitir. Esto es útil para "
+"minimizar problemas de alineación al usar fondos no blancos (ej. imágenes)."
 
-#: C/glabels.xml:1006(para)
+#: C/mancreate.page:391(desc) C/mancreate.page:393(p)
+#: C/mancreate.page:438(desc) C/mancreate.page:440(p)
+msgid "<span translate=\"no\">Label-ellipse</span> parameters"
+msgstr "Parámetros de <span translate=\"no\">Label-ellipse</span>"
+
+#: C/mancreate.page:408(title)
+msgid "<span translate=\"no\">Label-round</span> Node"
+msgstr "Nodo <span translate=\"no\">Label-round</span>"
+
+#: C/mancreate.page:410(p)
 msgid ""
-"A label must then be configured to \"point at\" this data file. To configure "
-"the merge properties of a document, choose <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Merge Properties</guimenuitem></menuchoice> menu item "
-"to display the <guilabel>merge properties</guilabel> dialog. This dialog is "
-"used to select the exact data file format and file name (location) of the "
-"merge data."
+"A <code translate=\"no\">Label-round</code> node describes the dimensions of "
+"a simple round label (not a CD)."
 msgstr ""
+"Un nodo <code translate=\"no\">Label-round</code> describe las dimensiones "
+"de una sola etiqueta circular (no un CD)."
+
+#: C/mancreate.page:425(code) C/mancreate.page:472(code)
+#: C/mancreate.page:614(code)
+#, no-wrap
+msgid "radius"
+msgstr "radius"
+
+#: C/mancreate.page:426(p)
+msgid "Radius (1/2 diameter) of label"
+msgstr "Radio (1/2 del diámetro) de la etiqueta"
 
-#: C/glabels.xml:1014(para)
+#: C/mancreate.page:455(title)
+msgid "<span translate=\"no\">Label-cd</span> Node"
+msgstr "Nodo <span translate=\"no\">Label-cd</span>"
+
+#: C/mancreate.page:457(p)
 msgid ""
-"Finally, once the label has been configured for a data file, field keys can "
-"be inserted into text objects and used as source or data for barcode objects "
-"and image filenames for image objects. See <xref linkend=\"glabels-object-"
-"properties\"/> for more information on using merge data for these object "
-"types."
+"A <code translate=\"no\">Label-cd</code> node describes the dimensions of a "
+"CD, DVD, or business card CD."
 msgstr ""
+"Un nodo <code translate=\"no\">Label-cd</code> describe las dimensiones de "
+"un CD, DVD o un CD de tarjeta de visita."
 
-#: C/glabels.xml:1020(para)
+#: C/mancreate.page:473(p)
+msgid "Outer radius of label"
+msgstr "Radio exterior de la etiqueta"
+
+#: C/mancreate.page:476(code)
+#, no-wrap
+msgid "hole"
+msgstr "hole"
+
+#: C/mancreate.page:477(p)
+msgid "Radius of concentric hole"
+msgstr "Radio del agujero concéntrico"
+
+#: C/mancreate.page:481(p)
 msgid ""
-"Now that your label is configured, <application>gLabels</application> will "
-"print a unique label for each record in your source document -- substituting "
-"fields from each record for field keys in the all text, barcode, and image "
-"objects."
+"If present, the label is clipped to the given width. (Useful for \"business "
+"card CDs\")."
 msgstr ""
+"Si está presente, la etiqueta se recorta a la anchura dada. (Útil para "
+"«tarjetas de visita en CD»)."
 
-#: C/glabels.xml:1025(para)
+#: C/mancreate.page:486(p)
 msgid ""
-"See <xref linkend=\"glabels-merge-tutorial\"/> for a detailed tutorial on "
-"the document merge feature."
+"If present, the label is clipped to the given height. (Useful for \"business "
+"card CDs\")."
 msgstr ""
+"Si está presente, la etiqueta se recorta a la altura dada. (Útil para "
+"«tarjetas de visita en CD»)."
 
-#: C/glabels.xml:1040(title)
-msgid "Settings"
-msgstr "Configuración"
+#: C/mancreate.page:499(desc)
+msgid "<span translate=\"no\">Label-cd</span> parameters"
+msgstr "Parámetros de <span translate=\"no\">Label-cd</span>"
 
-#: C/glabels.xml:1041(para)
+#: C/mancreate.page:501(p)
+msgid "CD label parameters"
+msgstr "Parámetros de etiqueta de CD"
+
+#: C/mancreate.page:516(title)
+msgid "<span translate=\"no\">Markup</span> Nodes"
+msgstr "Nodos <span translate=\"no\">Markup</span>"
+
+#: C/mancreate.page:518(p)
 msgid ""
-"To configure <application>gLabels</application>, choose "
-"<menuchoice><guimenu>Settings</guimenu><guimenuitem>Preferences</"
-"guimenuitem></menuchoice>. The <guilabel>Preferences</guilabel> dialog "
-"contains the following tabbed sections:"
+"Templates may contain optional markup nodes. These nodes are used to "
+"describe a simple set of markup lines that are visible in the <app>glabels</"
+"app> drawing canvas, but not visible when printed. These lines can represent "
+"margins, fold lines, center lines, special areas, or other helpful hints to "
+"the user of a template."
 msgstr ""
+"Las plantillas pueden contener nodos de marcado opcionales. Estos nodos se "
+"usan para describir un conjunto de líneas de marcado que son visibles en la "
+"ventana de dibujo de <app>glabels</app>, pero no son visibles cuando se "
+"imprime. Estas líneas pueden representar márgenes, líneas de plegado o de "
+"centrado, áreas especiales u otros indicios útiles para el usuario de una "
+"plantilla."
 
-#: C/glabels.xml:1062(title)
-msgid "Locale"
-msgstr "Región"
+#: C/mancreate.page:528(title)
+msgid "<span translate=\"no\">Markup-margin</span> Node"
+msgstr "Nodo <span translate=\"no\">Markup-margin</span>"
 
-#: C/glabels.xml:1066(guilabel)
-msgid "Units"
-msgstr "Unidades"
+#: C/mancreate.page:530(p)
+msgid ""
+"A <code translate=\"no\">Markup-margin</code> describes a margin along all "
+"edges of a label."
+msgstr ""
+"Un <code translate=\"no\">Markup-margin</code> describe un margen a lo largo "
+"de los bordes de una etiqueta."
 
-#: C/glabels.xml:1068(para)
+#: C/mancreate.page:542(p)
 msgid ""
-"Use this radio button group to specify your preferred units. Select one of "
-"the following options:"
+"Size of the margin. I.e. the distance of the margin line from the edge of "
+"the card/label."
 msgstr ""
+"Tamaño del margen. Ej. la distancia de la línea del margen desde el borde de "
+"la tarjeta/etiqueta."
 
-#: C/glabels.xml:1073(guilabel)
-msgid "Points"
-msgstr "Puntos"
+#: C/mancreate.page:556(title)
+msgid "<span translate=\"no\">Markup-line</span> Node"
+msgstr "Nodo <span translate=\"no\">Markup-line</span>"
 
-#: C/glabels.xml:1074(para)
-msgid "Use points (1 point = 1/72 in = 0.352778 mm)."
+#: C/mancreate.page:558(p)
+msgid ""
+"A <code translate=\"no\">Markup-line</code> node describes a markup line."
 msgstr ""
+"Un nodo <code translate=\"no\">Markup-line</code> describe una línea de "
+"marcado."
 
-#: C/glabels.xml:1078(guilabel)
-msgid "Inches"
-msgstr "Pulgadas"
+#: C/mancreate.page:568(code) C/mancreate.page:640(code)
+#: C/mancreate.page:682(code)
+#, no-wrap
+msgid "x1"
+msgstr "x1"
 
-#: C/glabels.xml:1079(para)
-msgid "Use inches."
-msgstr ""
+#: C/mancreate.page:569(p)
+msgid "x coordinate of 1st endpoint of the line segment."
+msgstr "coordenada X del primero punto final del segmento de línea."
 
-#: C/glabels.xml:1083(guilabel)
-msgid "Millimeters"
-msgstr "Milímetros"
+#: C/mancreate.page:572(code) C/mancreate.page:644(code)
+#: C/mancreate.page:686(code)
+#, no-wrap
+msgid "y1"
+msgstr "y1"
 
-#: C/glabels.xml:1084(para)
-msgid "Use millimeters."
-msgstr ""
+#: C/mancreate.page:573(p)
+msgid "y coordinate of 1st endpoint of the line segment."
+msgstr "coordenada Y del primero punto final del segmento de línea."
 
-#: C/glabels.xml:1087(para)
-msgid "Default: <guilabel>Inches</guilabel>."
-msgstr ""
+#: C/mancreate.page:576(code)
+#, no-wrap
+msgid "x2"
+msgstr "x2"
 
-#: C/glabels.xml:1093(guilabel)
-msgid "Default page size"
-msgstr ""
+#: C/mancreate.page:577(p)
+msgid "x coordinate of 2st endpoint of the line segment."
+msgstr "coordenada X del segundo punto final del segmento de línea."
 
-#: C/glabels.xml:1095(para)
-msgid ""
-"Use this radio button group to specify your preferred page size. This will "
-"make it quicker for you to locate media types when creating a new label or "
-"card."
-msgstr ""
+#: C/mancreate.page:580(code)
+#, no-wrap
+msgid "y2"
+msgstr "y2"
 
-#: C/glabels.xml:1101(guilabel)
-msgid "US Letter"
-msgstr "US Letter"
+#: C/mancreate.page:581(p)
+msgid "y coordinate of 2st endpoint of the line segment."
+msgstr "coordenada Y del segundo punto final del segmento de línea."
+
+#: C/mancreate.page:594(title)
+msgid "<span translate=\"no\">Markup-circle</span> Node"
+msgstr "Nodo <span translate=\"no\">Markup-circle</span>"
 
-#: C/glabels.xml:1102(para)
+#: C/mancreate.page:596(p)
 msgid ""
-"Most of your media will be of the US Letter page size (8.5 x 11 inches)."
+"A <code translate=\"no\">Markup-circle</code> describes a markup circle."
 msgstr ""
+"Un <code translate=\"no\">Markup-circle</code> describe un círculo de "
+"marcado."
 
-#: C/glabels.xml:1106(guilabel)
-msgid "ISO A4"
-msgstr ""
+#: C/mancreate.page:606(code) C/mancreate.page:740(code)
+#, no-wrap
+msgid "x0"
+msgstr "x0"
 
-#: C/glabels.xml:1107(para)
-msgid "Most of your media will be of the ISO A4 page size (210 x 297 mm)."
-msgstr ""
+#: C/mancreate.page:607(p)
+msgid "x coordinate of circle origin (center)."
+msgstr "coordenada X del círculo origen (centro)."
 
-#: C/glabels.xml:1110(para)
-msgid "Default: <guilabel>US Letter</guilabel>."
-msgstr ""
+#: C/mancreate.page:610(code) C/mancreate.page:745(code)
+#, no-wrap
+msgid "y0"
+msgstr "y0"
 
-#: C/glabels.xml:1119(title)
-msgid "Object defaults"
-msgstr "Opciones predeterminadas para el objeto"
+#: C/mancreate.page:611(p)
+msgid "y coordinate of circle origin (center)."
+msgstr "coordenada Y del círculo origen (centro)."
 
-#: C/glabels.xml:1125(para)
-msgid ""
-"Use these controls to set the default properties of new text objects. These "
-"properties are"
-msgstr ""
+#: C/mancreate.page:615(p)
+msgid "Radius of circle."
+msgstr "Radio del círculo."
 
-#: C/glabels.xml:1130(guilabel)
-msgid "Font"
-msgstr "Tipografía"
+#: C/mancreate.page:628(title)
+msgid "<span translate=\"no\">Markup-rect</span> Node"
+msgstr "Nodo <span translate=\"no\">Markup-rect</span>"
 
-#: C/glabels.xml:1131(para)
+#: C/mancreate.page:630(p)
 msgid ""
-"These controls are used to select font family and font size, and whether the "
-"font should bold or in italics."
+"A <code translate=\"no\">Markup-rect</code> describes a markup rectangle."
 msgstr ""
+"Un <code translate=\"no\">Markup-rect</code> describe un rectángulo de "
+"marcado."
+
+#: C/mancreate.page:641(p)
+msgid "x coordinate of upper left corner of rectangle."
+msgstr "coordenada X de la esquina superior izquierda del rectángulo"
+
+#: C/mancreate.page:645(p)
+msgid "y coordinate of upper left corner of rectangle."
+msgstr "coordenada Y de la esquina superior izquierda del rectángulo"
+
+#: C/mancreate.page:648(code) C/mancreate.page:690(code)
+#, no-wrap
+msgid "w"
+msgstr "w"
+
+#: C/mancreate.page:649(p)
+msgid "Width of rectangle."
+msgstr "Anchura del rectángulo."
+
+#: C/mancreate.page:652(code) C/mancreate.page:694(code)
+#, no-wrap
+msgid "h"
+msgstr "h"
 
-#: C/glabels.xml:1136(guilabel) C/glabels.xml:1161(guilabel)
-#: C/glabels.xml:1176(guilabel)
-msgid "Color"
-msgstr "Color"
+#: C/mancreate.page:653(p)
+msgid "Height of rectangle."
+msgstr "Altura del rectángulo."
 
-#: C/glabels.xml:1137(para)
-msgid "This control selects the default text color."
-msgstr ""
+#: C/mancreate.page:656(code)
+#, no-wrap
+msgid "r"
+msgstr "r"
 
-#: C/glabels.xml:1141(guilabel)
-msgid "Alignment"
-msgstr "Alineación"
+#: C/mancreate.page:657(p)
+msgid "Radius of rounded corners of rectangle."
+msgstr "Radio de las esquinas redondeadas del rectángulo."
 
-#: C/glabels.xml:1142(para)
-msgid ""
-"These controls are used to select the default text alignment (left, center "
-"or right)."
-msgstr ""
+#: C/mancreate.page:670(title)
+msgid "<span translate=\"no\">Markup-ellipse</span> Node"
+msgstr "Nodo <span translate=\"no\">Markup-ellipse</span>"
 
-#: C/glabels.xml:1151(para)
+#: C/mancreate.page:672(p)
 msgid ""
-"Use these controls to set the default properties of lines and outlines of "
-"new objects. These properties are"
+"A <code translate=\"no\">Markup-ellipse</code> describes a markup ellipse."
 msgstr ""
+"Un <code translate=\"no\">Markup-ellipse</code> describe una elipse de "
+"marcado."
 
-#: C/glabels.xml:1156(guilabel)
-msgid "Width"
-msgstr "Anchura"
+#: C/mancreate.page:683(p)
+msgid "x coordinate of upper left corner of ellipse."
+msgstr "coordenada «x» de la esquina superior izquierda de la elipse."
 
-#: C/glabels.xml:1157(para)
-msgid "This control selects the default line width."
-msgstr ""
+#: C/mancreate.page:687(p)
+msgid "y coordinate of upper left corner of ellipse."
+msgstr "coordenada «y» de la esquina superior izquierda de la elipse."
 
-#: C/glabels.xml:1162(para)
-msgid "This control selects the default line color."
-msgstr ""
+#: C/mancreate.page:691(p)
+msgid "Width of ellipse."
+msgstr "Anchura de la elipse."
 
-#: C/glabels.xml:1169(guilabel)
-msgid "Fill"
-msgstr "Relleno"
+#: C/mancreate.page:695(p)
+msgid "Height of ellipse."
+msgstr "Altura de la elipse."
+
+#: C/mancreate.page:713(title)
+msgid "<span translate=\"no\">Layout</span> Node"
+msgstr "Nodo <span translate=\"no\">Layout</span>"
 
-#: C/glabels.xml:1171(para)
+#: C/mancreate.page:715(p)
 msgid ""
-"Use these controls to set the default fill properties of new objects. These "
-"properties are"
+"A label node may contain multiple <code translate=\"no\">Layout</code> "
+"children. If labels are arranged in a simple grid pattern, only one layout "
+"is needed. However, if labels are arranged in multiple grids, such as a "
+"running bond pattern, multiple <code translate=\"no\">Layout</code> tags can "
+"be used."
 msgstr ""
+"Un nodo de etiqueta puede contener varios hijos <code translate=\"no"
+"\">Layout</code>. Si las etiquetas se colocan en un patrón de rejilla, sólo "
+"se necesita un diseño. sin embargo, si las etiquetas se colocan en varias "
+"rejillas, como un patrón de unión, se pueden usar múltiples etiquetas <code "
+"translate=\"no\">Layout</code>."
 
-#: C/glabels.xml:1177(para)
-msgid "This control selects the default fill color."
-msgstr ""
+#: C/mancreate.page:721(p)
+msgid "A single label can always be treated as a grid of one."
+msgstr "Una única etiqueta se puede tratar con una rejilla de una."
 
-#: C/glabels.xml:1191(title)
-msgid "Document Merge Tutorial"
-msgstr ""
+#: C/mancreate.page:732(code)
+#, no-wrap
+msgid "nx"
+msgstr "nx"
 
-#: C/glabels.xml:1193(para)
-msgid ""
-"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that "
-"allows a unique label or card to be printed for each record in an external "
-"data source. It is however, the most mis-understood feature of "
-"<application>gLabels</application>. The following examples will step through "
-"a couple of common tasks using the document merge feature."
-msgstr ""
+#: C/mancreate.page:733(p)
+msgid "Number of labels/cards across in the grid (horizontal)"
+msgstr "Número de etiquetas/tarjetas en la rejilla (horizontal)"
 
-#: C/glabels.xml:1201(title)
-msgid "Example 1: Name Tags Using a CSV File"
-msgstr ""
+#: C/mancreate.page:736(code)
+#, no-wrap
+msgid "ny"
+msgstr "ny"
 
-#: C/glabels.xml:1203(para)
-msgid ""
-"In this example we are organizing an orientation party for the new crew "
-"members of our ship. We have a list of freshman crew members that we created "
-"in <application>gnumeric</application> and exported as the following CSV "
-"file. We could have created this file by using a text editor, but heck it is "
-"the 23rd century."
-msgstr ""
+#: C/mancreate.page:737(p)
+msgid "Number of labels/cards across in the grid (vertical)"
+msgstr "Número de etiquetas/tarjetas en la rejilla (vertical)"
 
-#: C/glabels.xml:1209(programlisting)
-#, no-wrap
+#: C/mancreate.page:741(p)
 msgid ""
-"\n"
-"Name,Department,SN\n"
-"\"Jim Kirk\",Management,\"SC937-0176 CEC\"\n"
-"\"Mr. Spock\",Sciences,S179-276SP\n"
-"\"Leonard McCoy\",Medicine,unknown\n"
-"\"Montgomery Scott\",Engineering,SE-197-54T\n"
-"      "
+"Distance from left edge of sheet to the left edge of the left column of "
+"cards/labels in the layout."
 msgstr ""
+"Distancia desde el borde izquierdo de la hoja hasta el borde izquierdo de la "
+"columna de la izquierda de las tarjetas/etiquetas en la disposición."
 
-#: C/glabels.xml:1217(para)
+#: C/mancreate.page:746(p)
 msgid ""
-"In <application>gLabels</application> we have created a new "
-"<application>gLabels</application> document using the Avery 5395 \"Name "
-"Badge Labels\" template. Next we use the <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Merge Properties</guimenuitem></menuchoice> menu item "
-"to display the <guilabel>merge properties</guilabel> dialog. We use this "
-"dialog to select the source type (in our case CSV) and the merge source "
-"(filename) as shown."
+"Distance from the top edge of sheet to the top edge of the top row of labels/"
+"cards in the layout."
 msgstr ""
+"Distancia desde el borde superior de la hoja hasta el borde superior de la "
+"fila de arriba de las tarjetas/etiquetas en la disposición."
 
-#: C/glabels.xml:1227(title) C/glabels.xml:1344(title)
-#: C/glabels.xml:1460(title)
-msgid "Merge properties dialog"
-msgstr ""
+#: C/mancreate.page:750(code)
+#, no-wrap
+msgid "dx"
+msgstr "dx"
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1238(para)
-msgid ""
-"Before applying the merge source, we uncheck the first record since it is "
-"only column headers from our original <application>gnumeric</application> "
-"spreadsheet and would simply waste our first label. We could also unselect "
-"any other records that we didn't want to print a label for."
-msgstr ""
+#: C/mancreate.page:751(p)
+msgid "Horizontal pitch of grid."
+msgstr "Inclinación horizontal de la rejilla."
 
-#: C/glabels.xml:1243(para) C/glabels.xml:1361(para)
-msgid ""
-"We can also view each record in more detail by clicking on the appropriate "
-"expander (the little triangles) as shown. Once we are satisfied with the "
-"selections in this dialog we click <guibutton>OK</guibutton> to accept the "
-"changes."
-msgstr ""
+#: C/mancreate.page:754(code)
+#, no-wrap
+msgid "dy"
+msgstr "dy"
 
-#: C/glabels.xml:1248(para) C/glabels.xml:1366(para)
-msgid ""
-"Now we start adding objects to our <application>gLabels</application> "
-"document as shown."
-msgstr ""
+#: C/mancreate.page:755(p)
+msgid "Vertical pitch of grid."
+msgstr "Inclinación vertical de la rejilla."
 
-#: C/glabels.xml:1252(title) C/glabels.xml:1370(title)
-#: C/glabels.xml:1488(title)
-msgid "Adding objects"
-msgstr ""
+#: C/mancreate.page:761(desc)
+msgid "<span translate=\"no\">Layout</span> parameters"
+msgstr "Parámetros de <span translate=\"no\">Layout</span>"
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1263(para)
-msgid ""
-"In this example we have added three text objects and a barcode object. The "
-"first text object contains only simple literal text (\"Hello, my name is\"). "
-"The second text object contains a single merge field (\"${1}\") "
-"corresponding to the first field of a record (first column of a line) which "
-"contains the new crew member's full name. The third text field contains both "
-"literal text (\"Department: \") followed by a single merge field (\"${2}\") "
-"corresponding to the second field or the crew member's department. The "
-"barcode object is configured to use field (or key) \"3\" which contains our "
-"crew member's starfleet serial number."
-msgstr ""
+#: C/mancreate.page:763(p)
+msgid "<span translate=\"no\">Layout</span> Parameters"
+msgstr "Parámetros de <span translate=\"no\">Layout</span>"
 
-#: C/glabels.xml:1273(para)
-msgid ""
-"Now we can print our name tags by selecting the <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>Print</guimenuitem></menuchoice> menu item. This will "
-"display print dialog as shown below."
-msgstr ""
+#: C/license.page:8(desc)
+msgid "Legal information."
+msgstr "Información legal."
 
-#: C/glabels.xml:1280(title)
-msgid "Printing name tags"
-msgstr ""
+#: C/license.page:11(title)
+msgid "License"
+msgstr "Licencia"
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1291(para) C/glabels.xml:1406(para) C/glabels.xml:1520(para)
+#: C/license.page:12(p)
 msgid ""
-"Just to make sure our labels are going to look okay, we select the "
-"<guilabel>Print outlines</guilabel> option and click <guibutton>Print "
-"Preview</guibutton>. This will display a print preview dialog as shown below."
+"This work is distributed under a CreativeCommons Attribution-Share Alike 3.0 "
+"Unported license."
 msgstr ""
+"Este trabajo está distribuido bajo una licencia sin soporte CreativeCommons "
+"Compartir-Igual 3.0."
 
-#: C/glabels.xml:1298(title)
-msgid "Name tags preview"
-msgstr ""
+#: C/license.page:20(p)
+msgid "You are free:"
+msgstr "Es libre de:"
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1309(para)
-msgid ""
-"Everything looks good, so we can now load up our printer with the "
-"appropriate label stock, print our name tags and start beaming our guests "
-"aboard."
-msgstr ""
+#: C/license.page:25(em)
+msgid "To share"
+msgstr "Compartir"
 
-#: C/glabels.xml:1316(title)
-msgid "Example 2: Address Labels Using a CSV File"
-msgstr ""
+#: C/license.page:26(p)
+msgid "To copy, distribute and transmit the work."
+msgstr "Copiar, distribuir y transmitir el trabajo."
 
-#: C/glabels.xml:1318(para)
-msgid ""
-"In this example we are going to throw a party and need to print mailing "
-"address labels for our invitations. We have a list of our closest friends "
-"that we created in <application>gnumeric</application> and exported as the "
-"following CSV file. It should be noted that not everyone has a middle "
-"initial or a two line address."
-msgstr ""
+#: C/license.page:29(em)
+msgid "To remix"
+msgstr "Hacer obras derivadas"
 
-#: C/glabels.xml:1324(programlisting)
-#, no-wrap
-msgid ""
-"\n"
-"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n"
-",,,,,,,\n"
-"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n"
-"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n"
-"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n"
-"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n"
-"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n"
-"      "
-msgstr ""
+#: C/license.page:30(p)
+msgid "To adapt the work."
+msgstr "Adaptar el trabajo."
 
-#: C/glabels.xml:1334(para)
-msgid ""
-"In <application>gLabels</application> we have created a new "
-"<application>gLabels</application> document using the Avery 5512 \"Address "
-"Labels\" template. Next we use the <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Merge Properties</guimenuitem></menuchoice> menu item "
-"to display the <guilabel>merge properties</guilabel> dialog. We use this "
-"dialog to select the source type (in our case CSV) and the merge source "
-"(filename) as shown."
-msgstr ""
+#: C/license.page:33(p)
+msgid "Under the following conditions:"
+msgstr "Bajo las siguientes condiciones:"
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1355(para)
+#: C/license.page:38(em)
+msgid "Attribution"
+msgstr "Atribución"
+
+#: C/license.page:39(p)
 msgid ""
-"Before applying the merge source, we uncheck the first record since it is "
-"only column headers from our original <application>gnumeric</application> "
-"spreadsheet and would simply waste our first label. We also unselect the "
-"second record which is empty (an artifact of our original spreadsheet). We "
-"could also unselect any other records that we didn't want to print a label "
-"for."
+"You must attribute the work in the manner specified by the author or "
+"licensor (but not in any way that suggests that they endorse you or your use "
+"of the work)."
 msgstr ""
+"Debe reconocer los créditos de la obra de la manera especificada por el "
+"autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo "
+"o apoyan el uso que hace de su obra)."
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1381(para)
+#: C/license.page:46(em)
+msgid "Share Alike"
+msgstr "Compartir igual"
+
+#: C/license.page:47(p)
 msgid ""
-"In this example we have a single text object. This text object contains all "
-"of our merge fields organized on multiple lines as a mailing address. Notice "
-"that fields ${4} and ${5} (corresponding to ADDR1 and ADDR2) are each "
-"located with no other text on their own lines. When <application>gLabels</"
-"application> encounters a field as the only text on a line, it will not "
-"expand the line if the field is empty."
+"If you alter, transform, or build upon this work, you may distribute the "
+"resulting work only under the same, similar or a compatible license."
 msgstr ""
+"Si altera, transforma o amplía esta obra para crear una obra derivada, sólo "
+"puede distribuir la obra resultante bajo la misma licencia, una similar o "
+"una compatible."
 
-#: C/glabels.xml:1388(para)
+#: C/license.page:53(p)
 msgid ""
-"Now we can print our address labels by selecting the "
-"<menuchoice><guimenu>File</guimenu><guimenuitem>Print</guimenuitem></"
-"menuchoice> menu item. This will display print dialog as shown below."
+"For the full text of the license, see the <link href=\"http://"
+"creativecommons.org/licenses/by-sa/3.0/legalcode\">CreativeCommons website</"
+"link>, or read the full <link href=\"http://creativecommons.org/licenses/by-"
+"sa/3.0/\">Commons Deed</link>."
 msgstr ""
+"Para ver el texto completo de la licencia consulte la <link href=\"http://"
+"creativecommons.org/licenses/by-sa/3.0/legalcode/\">página web de Creative "
+"Commons</link> o lea el<link href=\"http://creativecommons.org/licenses/by-"
+"sa/3.0/\">Escrito de Commons</link>."
 
-#: C/glabels.xml:1395(title) C/glabels.xml:1509(title)
-msgid "Printing address labels"
+#: C/labelprop.page:9(desc)
+msgid "How to change the properties of a label or business card."
 msgstr ""
+"Cómo cambiar las propiedades de una etiqueta o de una tarjeta de visita."
 
-#: C/glabels.xml:1413(title) C/glabels.xml:1527(title)
-msgid "Address labels preview"
-msgstr ""
+#: C/labelprop.page:25(title)
+msgid "To change label properties"
+msgstr "Cambiar las propiedades de la etiqueta"
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1424(para) C/glabels.xml:1538(para)
+#: C/labelprop.page:27(p)
 msgid ""
-"Everything looks good, so we can now load up our printer with the "
-"appropriate label stock, print our address labels and start mailing our "
-"party invitations."
+"To change the media type and/or orientation of a label, choose "
+"<guiseq><gui>File</gui><gui>Properties</gui></guiseq> to display the "
+"<gui>Label properties</gui> dialog. Select the new media type and "
+"orientation for the document, then click <gui>OK</gui>."
 msgstr ""
+"Para cambiar el tipo de medio y/o la orientación de una etiqueta, seleccione "
+"<guiseq><gui>Archivo</gui><gui>Propiedades</gui></guiseq> para mostrar el "
+"diálogo <gui>Propiedades de la etiqueta</gui>. Seleccione el tipo de medio y "
+"la orientación nuevas y pulse <gui>Aceptar</gui>."
 
-#: C/glabels.xml:1431(title)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/index.page:24(None)
 msgid ""
-"Example 3: Address Labels Using the <application>Evolution</application> "
-"Addressbook"
+"@@image: 'figures/glabels-logo.png'; md5=0c1e32afcbae0d2fc6976020c24a0a43"
 msgstr ""
+"@@image: 'figures/glabels-logo.png'; md5=0c1e32afcbae0d2fc6976020c24a0a43"
 
-#: C/glabels.xml:1433(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/index.page:47(None)
 msgid ""
-"Our last party was a great success, and now we need to print mailing address "
-"labels for the invitations to a new one. To simplify this, we can use the "
-"<application>Evolution</application> addressbook, because the address data "
-"of all our friends is stored there."
+"@@image: 'figures/introduction-glabels-main-window.png'; "
+"md5=fceca242699bb062a5ac243a5f962f3b"
 msgstr ""
+"@@image: 'figures/introduction-glabels-main-window.png'; "
+"md5=fceca242699bb062a5ac243a5f962f3b"
 
-#: C/glabels.xml:1439(para)
-msgid ""
-"Depending on how your copy of <application>gLabels</application> was "
-"packaged, this option could be unavailable. Support for the "
-"<application>Evolution</application> addressbook will only be available if "
-"the <application>evolution-data-server</application> and its development "
-"files were present when <application>gLabels</application> was built. Please "
-"keep this in mind if you build <application>gLabels</application> directly "
-"from source."
-msgstr ""
+#: C/index.page:7(title) C/index.page:8(title)
+msgid "gLabels label and business card designer"
+msgstr "Diseñador de etiquetas y de tarjetas de visita gLabels."
 
-#: C/glabels.xml:1445(para)
+#: C/index.page:23(title)
 msgid ""
-"If the <application>gLabels</application> package from your distribution "
-"lacks this support, you may wish to contact the package maintainer or file a "
-"bug against the package to request it."
+"<media type=\"image\" mime=\"image/png\" src=\"figures/glabels-logo.png"
+"\">gLabels logo</media> gLabels Manual"
 msgstr ""
+"<media type=\"image\" mime=\"image/png\" src=\"figures/glabels-logo.png"
+"\">logo de gLabels</media> Manual de gLabels"
 
-#: C/glabels.xml:1450(para)
+#: C/index.page:28(p)
 msgid ""
-"In <application>glabels</application> we have created a new "
-"<application>gLabels</application> document using the Avery 5512 \"Address "
-"Labels\" template. Next we use the <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Merge Properties</guimenuitem></menuchoice> menu item "
-"to display the <guilabel>Merge properties</guilabel> dialog. We use this "
-"dialog to select the source type (in our case <guilabel>Data from default "
-"Evolution addressbook</guilabel>) as shown."
+"The <app>gLabels</app> application is a lightweight program for creating "
+"labels and business cards for the GNOME desktop environment. It is designed "
+"to work with various laser/ink-jet peel-off label and business card sheets "
+"that you'll find at most office supply stores."
 msgstr ""
+"La aplicación <app>gLabels</app> es un programa ligero para crear etiquetas "
+"y tarjetas de visita para el entorno de escritorio GNOME. Está diseñado para "
+"trabajar con varias hojas de etiquetas láser/chorro de tinta que encontrará "
+"en la mayoría de las tiendas de suministros de oficina."
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1471(para)
+#: C/index.page:35(p)
 msgid ""
-"Once we have chosen <guilabel>Data from default Evolution addressbook </"
-"guilabel> as our merge source, we will get a full list of its content. "
-"Initially, all entries are checked. Assuming we were planning a really big "
-"party, we could leave this selection untouched (but let's keep our budget in "
-"mind). We will now select or unselect certain entries by clicking on the "
-"appropriate checkboxes, or we could use the <guibutton>Select all</"
-"guibutton> and <guibutton>Unselect all </guibutton> buttons to activate or "
-"deactivate all entries in the address book."
+"<app>gLabels</app> can be used to design address labels, name tags, price "
+"tags, cd/dvd labels, or just about anything else that is organized in a "
+"regular pattern on a sheet of paper. Labels (or cards) can contain text, "
+"images, lines, shapes, and barcodes. <app>gLabels</app> also includes a "
+"document-merge feature which lets you print a unique label for each record "
+"from an external data source, such as a CSV file or an <app>Evolution</app> "
+"address book."
 msgstr ""
+"<app>gLabels</app> se puede usar para diseñar etiquetas de dirección, de "
+"nombre, de precio, de CD/DVD o para cualquier otra cosa organizada según un "
+"patrón regular en una hoja de papel. Las etiquetas (o las tarjetas) pueden "
+"contener texto, imágenes, líneas, formas y códigos de barras. <app>gLabels</"
+"app> también incluye la característica de combinar documentos, que le "
+"permite imprimir una etiqueta única por cada registro de una fuente de datos "
+"externa, tal como un archivo CSV o una libreta de direcciones de "
+"<app>Evolution</app>."
 
-#: C/glabels.xml:1479(para)
-msgid ""
-"We can also view each entry in more detail by clicking on the appropriate "
-"expander (the little triangles) as shown. Once we are satisfied with the "
-"selections in this dialog, we will click the <guibutton>OK</guibutton> "
-"button to accept the changes."
-msgstr ""
+#: C/index.page:45(title) C/index.page:46(desc)
+msgid "<app>gLabels</app> main window"
+msgstr "Ventana principal de <app>gLabels</app>"
 
-#: C/glabels.xml:1484(para)
-msgid "Now we start adding objects to our glabels document as shown."
-msgstr ""
+#: C/index.page:48(p)
+msgid "<app>gLabels</app> main window."
+msgstr "Ventana principal de <app>gLabels</app>."
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1499(para)
-msgid ""
-"In this example we have a single text object again. This text object "
-"contains all of our merge fields organized on multiple lines as a mailing "
-"address."
-msgstr ""
+#: C/index.page:53(title)
+msgid "Usage"
+msgstr "Uso"
 
-#: C/glabels.xml:1502(para)
-msgid ""
-"Now we can print our address labels by selecting the "
-"<menuchoice><guimenu>File</guimenu><guimenuitem>Print</guimenuitem></"
-"menuchoice> menu item. This will display the print dialog as shown below."
-msgstr ""
+#: C/index.page:57(title)
+msgid "Document Merging"
+msgstr "Fusión de documentos"
 
-#: C/glabels.xml:1551(title)
-msgid "Manually Creating New Templates"
-msgstr ""
+#: C/index.page:61(title)
+msgid "Advanced usage"
+msgstr "Uso avanzado"
 
-#: C/glabels.xml:1553(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/editprop.page:35(None)
 msgid ""
-"Predefined templates are defined by XML files located in <filename>${prefix}/"
-"share/glabels/</filename>, where <filename>${prefix}</filename> is usually "
-"something like <filename>/usr/local</filename> or <filename>/usr</filename> "
-"depending on the configuration option <filename>prefix</filename>. "
-"<application>gLabels</application> will use all files of the form "
-"<filename>*-templates.xml</filename> or <filename>*.template</filename>, "
-"that it finds in <filename>${prefix}/share/glabels/</filename> and <filename>"
-"${HOME}/.glabels/</filename>. Additional templates can be added by creating "
-"additional <filename>*.template</filename> files in either of these "
-"directories."
+"@@image: 'figures/object-editor-sidebar.png'; "
+"md5=828ffc05f69e1914595cc1e3d7401e2f"
 msgstr ""
+"@@image: 'figures/object-editor-sidebar.png'; "
+"md5=828ffc05f69e1914595cc1e3d7401e2f"
 
-#: C/glabels.xml:1566(para)
-msgid ""
-"The format for these files is defined in the DTD: <ulink url=\"http://"
-"glabels.sourceforge.net/doc/glabels-2.0.dtd.txt\" type=\"http\">glabels-2.2."
-"dtd</ulink>. (This DTD also describes other XML formats used by "
-"<application>gLabels</application>.)"
-msgstr ""
+#: C/editprop.page:9(desc)
+msgid "Change the properties of objects."
+msgstr "Cambiar las propiedades de objetos."
 
-#: C/glabels.xml:1572(title)
-msgid "Assumptions/caveats"
-msgstr ""
+#: C/editprop.page:25(title)
+msgid "To edit object properties"
+msgstr "Editar las propiedades del objeto"
 
-#: C/glabels.xml:1575(para)
+#: C/editprop.page:29(p)
 msgid ""
-"A sheet contains only one size of label or card (if a sheet contains more "
-"than one size of item, it can be split into multiple templates for multiple "
-"pass printing)"
+"Most object properties can be modified through the object editor sidebar, "
+"illustrated below. To use the object editor, a single object must first be "
+"selected. See <link xref=\"select\"/>."
 msgstr ""
+"La mayoría de las propiedades de un objeto se pueden modificar a través de "
+"la barra lateral del editor de objetos. Para usar el editor de objetos, se "
+"debe seleccionar primero un objeto. Consulte la <link xref=\"select\"/>."
 
-#: C/glabels.xml:1580(para)
+#. ==== End of Figure ====
+#: C/editprop.page:40(p)
 msgid ""
-"Distances can be expressed in units of <emphasis>pt</emphasis>, "
-"<emphasis>in</emphasis>, <emphasis>mm</emphasis>, <emphasis>cm</emphasis>, "
-"or <emphasis>pc</emphasis>. For example: \"<literal>1.0in</literal>\" or "
-"\"<literal>2.54cm</literal>\". If no units are specified, computer points "
-"(<emphasis>pt</emphasis>) will be assumed (1 <emphasis>pt</emphasis> = 1/72 "
-"<emphasis>in</emphasis> = 0.352778 <emphasis>mm</emphasis>)."
+"The object editor will contain a subset of the following tabbed sections, "
+"depending on object type:"
 msgstr ""
+"El editor de objetos contendrá un subconjunto de las siguientes secciones en "
+"pestañas, dependiendo del tipo de objeto:"
 
-#: C/glabels.xml:1593(title)
-msgid "Template Files"
-msgstr ""
+#: C/editprop.page:44(title)
+msgid "Text Tabbed Section (Text objects)"
+msgstr "Sección de texto en pestañas (objetos de texto)"
 
-#: C/glabels.xml:1595(programlisting)
-#, no-wrap
+#: C/editprop.page:46(p)
 msgid ""
-"\n"
-"&lt;?xml version=\"1.0\"?&gt;\n"
-"&lt;Glabels-templates&gt;\n"
-"\n"
-"   <replaceable>...templates...</replaceable>\n"
-"\n"
-"&lt;/Glabels-templates&gt;\n"
-"      "
+"This section contains a small editor for changing the content of a text "
+"object. It also contains a dropdown menu of available document merge keys, "
+"that can be inserted into text."
 msgstr ""
+"Esta sección contiene un pequeño editor para cambiar el contenido de un "
+"objeto de texto. También contiene un menú desplegable con las claves "
+"combinadas del documento disponibles, que se pueden insertar en el texto."
 
-#: C/glabels.xml:1607(title)
-msgid "Example Template"
-msgstr ""
+#: C/editprop.page:53(title)
+msgid "Image Tabbed Section (Image objects)"
+msgstr "Sección de imagen en pestañas (objetos de imagen)"
 
-#: C/glabels.xml:1608(programlisting)
-#, no-wrap
+#: C/editprop.page:55(p)
 msgid ""
-"\n"
-"  &lt;Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\"&gt;\n"
-"    &lt;Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\"&gt;\n"
-"      &lt;Markup-margin size=\"5pt\"/&gt;\n"
-"      &lt;Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/&gt;\n"
-"    &lt;/Label-rectangle&gt;\n"
-"    &lt;Alias brand=\"Avery\" part=\"5160\"/&gt;\n"
-"    &lt;Alias brand=\"Avery\" part=\"6233\"/&gt;\n"
-"  &lt;/Template&gt;\n"
-"      "
+"This section contains a file entry with preview to select image files. The "
+"browse button can be used to easily locate image files. Alternatively, a "
+"document merge key can be used instead to provide a filename at print time."
 msgstr ""
+"Esta sección contiene una entrada de archivo con vista previa para "
+"seleccionar los archivos de imagen. El botón de exploración se puede usar "
+"fácilmente para encontrar archivos de imágenes. Alternativamente, se puede "
+"usar la clave de combinación de un documento para proporcionar un nombre de "
+"archivo a la hora de imprimir."
 
-#: C/glabels.xml:1621(title)
-msgid "Template Node"
-msgstr ""
+#: C/editprop.page:63(title)
+msgid "Data Tabbed Section (Barcode objects)"
+msgstr "Sección de datos en pestañas (objetos de código de barras)"
 
-#: C/glabels.xml:1623(para)
+#: C/editprop.page:65(p)
 msgid ""
-"A <emphasis>Template</emphasis> node describes a single stationary product. "
-"It must contain one instance of any type of Label node (<emphasis>Label-"
-"rectangle</emphasis>, <emphasis>Label-round</emphasis>, or <emphasis>Label-"
-"cd</emphasis>). This node can be followed by zero or more <emphasis>Alias</"
-"emphasis> nodes."
-msgstr ""
-
-#: C/glabels.xml:1637(para) C/glabels.xml:1712(para) C/glabels.xml:1789(para)
-#: C/glabels.xml:1834(para) C/glabels.xml:1910(para) C/glabels.xml:1943(para)
-#: C/glabels.xml:1994(para) C/glabels.xml:2037(para) C/glabels.xml:2096(para)
-#: C/glabels.xml:2173(para)
-msgid "Property"
-msgstr "Propiedad"
-
-#: C/glabels.xml:1640(para) C/glabels.xml:1715(para) C/glabels.xml:1792(para)
-#: C/glabels.xml:1837(para) C/glabels.xml:1913(para) C/glabels.xml:1946(para)
-#: C/glabels.xml:1997(para) C/glabels.xml:2040(para) C/glabels.xml:2099(para)
-#: C/glabels.xml:2176(para)
-msgid "Description"
-msgstr "Descripción"
-
-#: C/glabels.xml:1646(para) C/glabels.xml:2182(para)
-msgid "brand"
-msgstr ""
-
-#: C/glabels.xml:1648(para)
-msgid "Brand or manufacturer of stationary product. E.g. \"Avery\""
-msgstr ""
-
-#: C/glabels.xml:1653(para) C/glabels.xml:2188(para)
-msgid "part"
-msgstr "part"
-
-#: C/glabels.xml:1655(para)
-msgid "Part number or name of stationary product. E.g. \"8160\""
+"This section contains a text entry to enter literal barcode data. "
+"Alternatively, a document merge key can be used to provide this data at "
+"print time."
 msgstr ""
+"Esta sección contiene una entrada de texto para introducir datos de un "
+"código de barras literalmente. Alternativamente, se puede usar la clave de "
+"combinación de un documento para proporcionar este dato a la hora de "
+"imprimir."
 
-#: C/glabels.xml:1660(para) C/glabels.xml:1919(para)
-msgid "size"
-msgstr "tamaño"
+#: C/editprop.page:72(title)
+msgid "Style Tabbed Section (Text objects)"
+msgstr "Sección de estilo en pestañas (objetos de texto)"
 
-#: C/glabels.xml:1662(para)
-msgid "Size of sheet. E.g., \"US-Letter,\" \"A4\", ..."
+#: C/editprop.page:74(p)
+msgid ""
+"This section contains controls to select text properties, including font "
+"family, font size, font weight, color, and text justification."
 msgstr ""
+"Esta sección contiene controles para seleccionar las propiedades del texto, "
+"incluyendo la familia tipográfica, tamaño, peso, color y justificación del "
+"texto."
 
-#: C/glabels.xml:1666(para)
-msgid "description"
-msgstr "descripción"
+#: C/editprop.page:81(title)
+msgid "Style Tabbed Section (Barcode objects)"
+msgstr "Sección de estilo en pestañas (objetos de código de barras)"
 
-#: C/glabels.xml:1668(para)
-msgid "Description of stationary product. E.g, \"Mailing Labels.\""
+#: C/editprop.page:83(p)
+msgid ""
+"This section contains controls to select barcode properties, including "
+"barcode style, color, whether to print text, and whether to include a "
+"checksum digit."
 msgstr ""
+"Esta sección contiene controles para seleccionar las propiedades del código "
+"de barras, incluyendo su estilo, color, si se debe imprimir texto y si se "
+"debe incluir un dígito de control."
 
-#: C/glabels.xml:1673(para)
-msgid "_description"
-msgstr ""
+#: C/editprop.page:90(title)
+msgid "Line Tabbed Section"
+msgstr "Sección de línea en pestañas"
 
-#: C/glabels.xml:1675(para)
+#: C/editprop.page:92(p)
 msgid ""
-"Translatable description of stationary product. E.g, \"Mailing Labels."
-"\" (Only useful for predefined templates)"
+"This section contains controls to select properties of lines and outlines. "
+"These properties include line width and color."
 msgstr ""
+"Esta sección contiene controles para seleccionar las propiedades de las "
+"líneas y de los márgenes. Estas propiedades incluyen el ancho de línea y el "
+"color."
 
-#: C/glabels.xml:1681(para) C/glabels.xml:1727(para) C/glabels.xml:1857(para)
-msgid "width"
-msgstr "anchura"
+#: C/editprop.page:98(title)
+msgid "Fill Tabbed Section"
+msgstr "Sección de relleno en pestañas"
 
-#: C/glabels.xml:1683(para)
-msgid "Page width. Only valid if size=\"Other\""
+#: C/editprop.page:100(p)
+msgid ""
+"This section contains controls to select fill properties of box and ellipse "
+"objects. Currently the only fill property is fill color."
 msgstr ""
+"Esta sección contiene controles para seleccionar las propiedades de relleno "
+"de objetos de caja y de elipse. Actualmente, la única propiedad del relleno "
+"es el color."
 
-#: C/glabels.xml:1687(para) C/glabels.xml:1731(para) C/glabels.xml:1864(para)
-msgid "height"
-msgstr "altura"
+#: C/editprop.page:107(title)
+msgid "Size Tabbed Section (All except line objects)"
+msgstr "Sección de tamaño en pestañas (todos excepto los objetos de línea)"
 
-#: C/glabels.xml:1689(para)
-msgid "Page height. Only valid if size=\"Other\""
+#: C/editprop.page:109(p)
+msgid ""
+"This section contains controls to select the width and height of an object. "
+"A checkbox is provided, so that the current aspect ratio can be locked while "
+"manipulating the width and height controls. Image objects also provide a "
+"button to reset the size to the image's natural size (Assumes 72DPI)."
 msgstr ""
+"Esta sección contiene controles para seleccionar la anchura y la altura de "
+"un objeto. Se proporciona una casilla, por lo que la relación de aspecto "
+"actual se puede bloquear mientras se manipulan los controles de anchura y "
+"altura. Los objetos de imagen también proporcionan un botón para reiniciar "
+"el tamaño al original de la imagen (se asumen 72DPI)"
 
-#: C/glabels.xml:1699(title)
-msgid "Label-rectangle Node"
-msgstr ""
+#: C/editprop.page:118(title)
+msgid "Size Tabbed Section (Line objects)"
+msgstr "Sección de tamaño en pestañas (objetos de línea)"
 
-#: C/glabels.xml:1701(para)
+#: C/editprop.page:120(p)
 msgid ""
-"A <emphasis>Label-rectangle</emphasis> node describes the dimensions of a "
-"single label or business card that is rectangular in shape (may have rounded "
-"edges)."
+"This section contains controls to select the length and angle of a line "
+"object."
 msgstr ""
+"Esta sección contiene controles para seleccionar la longitud y el ángulo de "
+"un objeto de línea."
+
+#: C/editprop.page:126(title)
+msgid "Position Tabbed Section"
+msgstr "Sección de posición en pestañas"
 
-#: C/glabels.xml:1721(para) C/glabels.xml:1798(para) C/glabels.xml:1843(para)
-msgid "id"
-msgstr "id"
+#: C/editprop.page:128(p)
+msgid "This section contains controls to change the position of an object."
+msgstr "Esta sección contiene controles para cambiar la posición de un objeto."
 
-#: C/glabels.xml:1723(para) C/glabels.xml:1800(para) C/glabels.xml:1845(para)
-msgid "Reserved for future use. Should always be 0."
+#: C/editprop.page:135(title)
+msgid "Shadow Tabbed Section (All except barcode objects)"
 msgstr ""
+"Sección de sombra en pestañas (todos excepto los objetos de código de barras)"
 
-#: C/glabels.xml:1728(para)
-msgid "Width of label/card"
-msgstr ""
+#: C/editprop.page:137(p)
+msgid "This section contains controls to add a shadow to an object."
+msgstr "Esta sección contiene controles para añadir sombre a un objeto."
 
-#: C/glabels.xml:1732(para)
-msgid "Height of label/card"
-msgstr ""
+#: C/editprop.page:146(title)
+msgid "Other Manipulations of Objects"
+msgstr "Otras manipulaciones de objetos"
 
-#: C/glabels.xml:1735(para)
-msgid "round"
-msgstr "redondo"
+#: C/editprop.page:148(p)
+msgid "Objects can also be manipulated in the following ways."
+msgstr "Los objetos se pueden manipular de las siguientes maneras."
+
+#: C/editprop.page:151(title)
+msgid "Moving and Resizing Objects"
+msgstr "Mover y redimensionar objetos"
 
-#: C/glabels.xml:1737(para)
+#: C/editprop.page:153(p)
 msgid ""
-"Radius of corners. For items with square edges (business cards), the radius "
-"should be 0."
+"Objects can be moved by simply clicking on a selected object and dragging "
+"the object to its new location. If the object is part of an aggregate "
+"selection, all objects in the selection will move with the object being "
+"dragged, maintaining their relative positions to one another. If no object "
+"is selected, clicking on an object will create a new selection containing "
+"that object. See <link xref=\"select\"/>."
 msgstr ""
+"Los objetos se pueden mover simplemente pulsando en un objeto seleccionado y "
+"arrastrando el objeto a su nueva ubicación. Si el objeto es parte de una "
+"selección agregada, todos los objetos en la selección se moverán junto al "
+"objeto que se arrastra, manteniendo su posición relativa respecto a los "
+"otros. Si no se selecciona ningún objeto, al pulsar sobre un objeto se "
+"creará una selección nueva que contenga a ese objeto. Consulte la <link xref="
+"\"select\"/>."
 
-#: C/glabels.xml:1742(para)
-msgid "x_waste"
+#: C/editprop.page:161(p)
+msgid ""
+"A selected object can be resized by clicking one of its resize handle and "
+"dragging it to obtain the new size."
 msgstr ""
+"Un objeto seleccionado se puede redimensionar pulsando una vez sobre su "
+"controlador de tamaño y arrastrándolo para obtener el nuevo tamaño."
 
-#: C/glabels.xml:1744(para)
+#: C/editprop.page:167(title)
+msgid "Changing Stacking Order"
+msgstr "Cambiar el orden de apilamiento"
+
+#: C/editprop.page:169(p)
 msgid ""
-"Amount of horizontal waste (over-print) to allow. This is useful for "
-"minimizing alignment problems when using non-white backgrounds (e.g. images)."
+"Stacking order refers to relative position in the z-axis of objects. That is "
+"when objects overlap, which object will appear on top of the other. By "
+"default, newer objects will appear above older objects. To change this "
+"order, select one or more objects and choose <guiseq><gui>Objects</"
+"gui><gui>Order</gui><gui>Bring to Front</gui></guiseq> to raise the "
+"selection to the top of the stacking order, or choose <guiseq><gui>Objects</"
+"gui><gui>Order</gui><gui>Send to Back</gui></guiseq> to lower the selection "
+"to the bottom of the stacking order. These menuitems are also available by "
+"right-clicking the display area when there is a non-empty selection."
 msgstr ""
+"El orden de apilamiento se refiere a la posición relativa en el eje z de los "
+"objetos. Esto es cuando los objetos se solapan, qué objeto aparecerá encima "
+"de otro. De manera predeterminada, los objetos nuevos aparecerán encima de "
+"los objetos más antiguos. Para cambiar este orden, seleccione uno o más "
+"objetos y elija <guiseq><gui>Objetos</gui><gui>Orden</gui><gui>Traer al "
+"frente</gui></guiseq> para subir la selección hasta la parte superior del "
+"orden de apilamiento, o elija <guiseq><gui>Objetos</gui><gui>Orden</"
+"gui><gui>Enviar al fondo</gui></guiseq> para bajar la selección hasta la "
+"parte inferior del orden de apilamiento. Estos elementos de menú también "
+"están disponibles pulsando con el botón derecho en el área de visualización "
+"cuando no hay una selección vacía."
+
+#: C/editprop.page:187(title)
+msgid "Rotating and Flipping Objects"
+msgstr "Rotar y voltear objetos"
 
-#: C/glabels.xml:1750(para)
-msgid "y_waste"
-msgstr ""
+#: C/editprop.page:189(p)
+msgid ""
+"Objects can be rotated 90 degrees in either direction, or flipped "
+"horizontally or vertically, by choosing the appropriate menuitem in the "
+"<guiseq><gui>Objects</gui><gui>Rotate/Flip</gui></guiseq> sub-menu. These "
+"menuitems are also available by right-clicking the display area when there "
+"is a non-empty selection."
+msgstr ""
+"Los objetos se pueden rotar 90 grados en cualquier dirección o voltearse "
+"horizontal o verticalmente eligiendo el elemento de menú adecuado en el "
+"submenú <guiseq><gui>Objetos</gui><gui>Rotar/Voltear</gui></guiseq>. Estos "
+"elementos de menú también están disponibles pulsando con el botón derecho en "
+"el área de visualización cuando no hay una selección vacía."
+
+#: C/editprop.page:197(p)
+msgid ""
+"This feature could be useful when you are designing CD box inlays. For the "
+"spine caption, you need vertical aligned text. After you have created a "
+"basic text box, choose <guiseq><gui>Objects</gui><gui>Rotate/Flip</gui></"
+"guiseq> to rotate the text box according to your needs."
+msgstr ""
+"Esta característica puede ser útil cuando diseñe carátulas interiores de CD. "
+"Para el texto circular necesita texto alineado verticalmente. Después de que "
+"haya creado la caja de texto básica, elija <guiseq><gui>Objetos</"
+"gui><gui>Rotar/Voltear</gui></guiseq> para rotar la caja de texto de acuerdo "
+"a sus necesidades."
+
+#: C/editprop.page:208(title)
+msgid "Aligning Objects"
+msgstr "Alinear objetos"
 
-#: C/glabels.xml:1752(para)
+#: C/editprop.page:210(p)
 msgid ""
-"Amount of vertical waste (over-print) to allow. This is useful for "
-"minimizing alignment problems when using non-white backgrounds (e.g. images)."
-msgstr ""
+"Objects can be aligned horizontally or vertically, relative to one another, "
+"or relative to the center line of the label, by choosing the appropriate "
+"menuitem from the <guiseq><gui>Objects</gui><gui>Align Horizontal</gui></"
+"guiseq> or <guiseq><gui>Objects</gui><gui>Align Vertical</gui></guiseq> sub-"
+"menus. These menuitems are also available by right-clicking the display area "
+"when there is a non-empty selection."
+msgstr ""
+"Los objetos se pueden alinear horizontal o verticalmente, relativo a otro o "
+"relativo a la línea central de la etiqueta, eligiendo el elemento de menú "
+"apropiado de los submenús <guiseq><gui>Objetos</gui><gui>Alineación "
+"horizontal</gui></guiseq> o <guiseq><gui>Objetos</gui><gui>Alineación "
+"vertical</gui></guiseq>. Estos elementos de menú también están disponibles "
+"pulsando con el botón derecho en el área de visualización cuando no hay una "
+"selección vacía."
+
+#: C/editprop.page:223(title)
+msgid "Using the Property Bar"
+msgstr "Usar la barra de propiedades"
 
-#: C/glabels.xml:1763(title)
-msgid "Label-rectangle Parameters"
+#: C/editprop.page:225(p)
+msgid ""
+"The property bar can be used to change some common properties of objects en-"
+"masse. These properties include font family, font size, font weight, text "
+"alignment, text color, fill color, line or outline color, and line width. "
+"The property bar also controls the defaults for these properties for any "
+"newly created objects."
 msgstr ""
+"La barra de propiedades se puede usar para cambiar en masa algunas "
+"propiedades de los archivos. Estas propiedades incluyen la familia "
+"tipográfica, el tamaño de la tipografía, su peso, la alineación del texto, "
+"el color de relleno, de la línea o del contorno y el ancho de la línea. La "
+"barra de propiedades también controla los valores predeterminados de estas "
+"propiedades para cualquier objeto nuevo creado."
 
-#: C/glabels.xml:1777(title)
-msgid "Label-round Node"
-msgstr ""
+#: C/customtemplate.page:9(desc)
+msgid "Create your own templates for stationery products."
+msgstr "Crear sus propias plantillas para productos de papelería."
 
-#: C/glabels.xml:1779(para)
+#: C/customtemplate.page:25(title)
+msgid "To create a custom template"
+msgstr "Crear una plantilla personalizada"
+
+#: C/customtemplate.page:27(p)
 msgid ""
-"A <emphasis>Label-round</emphasis> node describes the dimensions of a simple "
-"round label (not a CD)."
+"To create a new custom template, choose <guiseq><gui>File</gui><gui>Template "
+"Designer ...</gui></guiseq> to display the <gui>Template Designer</gui> "
+"dialog. This dialog will assist you in creating a custom template for most "
+"types of label or card stationery that you may encounter."
 msgstr ""
+"Para crear una plantilla nueva personalizada, elija <guiseq><gui>Archivo</"
+"gui><gui>Diseñador de plantillas...</gui></guiseq> para mostrar el diálogo "
+"<gui>Diseñador de plantillas</gui>. Este diálogo le asistirá en la creación "
+"de una plantilla personalizada para la mayoría de tipos de etiquetas o "
+"tarjetas de papelería que pueda encontrar."
 
-#: C/glabels.xml:1804(para) C/glabels.xml:1849(para) C/glabels.xml:2015(para)
-msgid "radius"
+#: C/customtemplate.page:34(p)
+msgid ""
+"If you prefer, you can create your templates manually. For this option see "
+"<link xref=\"mancreate\"/>"
 msgstr ""
+"Si lo prefiere, puede crear sus plantillas manualmente. Para esta opción "
+"consulte la <link xref=\"mancreate\"/>"
 
-#: C/glabels.xml:1805(para)
-msgid "Radius (1/2 diameter) of label"
-msgstr ""
+#: C/customize.page:9(desc)
+msgid "Customize <app>gLabels</app> to match your needs."
+msgstr "Personalizar <app>gLabels</app> para ajustarlo a sus necesidades."
 
-#: C/glabels.xml:1808(para) C/glabels.xml:1871(para)
-msgid "waste"
-msgstr "basura"
+#. Use this section to describe how to customize the application.
+#: C/customize.page:25(title)
+msgid "Settings"
+msgstr "Configuración"
 
-#: C/glabels.xml:1810(para) C/glabels.xml:1873(para)
+#: C/customize.page:26(p)
 msgid ""
-"Amount of waste (over-print) to allow. This is useful for minimizing "
-"alignment problems when using non-white backgrounds (e.g. images)."
+"To configure <app>gLabels</app>, choose <guiseq><gui>Settings</"
+"gui><gui>Preferences</gui></guiseq>. The <gui>Preferences</gui> dialog "
+"contains the following tabbed sections:"
 msgstr ""
+"Para configurar <app>gLabels</app>, elija <guiseq><gui>Configuración</"
+"gui><gui>Preferencias</gui></guiseq>. El diálogo <gui>Preferencias</gui> "
+"contiene las siguientes secciones en pestañas:"
 
-#: C/glabels.xml:1822(title)
-msgid "Label-cd Node"
-msgstr ""
+#: C/customize.page:35(title)
+msgid "Locale"
+msgstr "Región"
+
+#: C/customize.page:37(title)
+msgid "Units"
+msgstr "Unidades"
 
-#: C/glabels.xml:1824(para)
+#: C/customize.page:38(p)
 msgid ""
-"A <emphasis>Label-cd</emphasis> node describes the dimensions of a CD, DVD, "
-"or business card CD."
+"Use this radio button group to specify your preferred units. Select one of "
+"the following options:"
 msgstr ""
+"Use este grupo de botones de radio para especificar sus unidades favoritas. "
+"Seleccione una de las siguientes opciones:"
 
-#: C/glabels.xml:1850(para)
-msgid "Outer radius of label"
-msgstr ""
+#: C/customize.page:42(gui)
+msgid "Points"
+msgstr "Puntos"
 
-#: C/glabels.xml:1853(para)
-msgid "hole"
-msgstr ""
+#: C/customize.page:43(p)
+msgid "Use points (1 point = 1/72 in = 0.352778 mm)."
+msgstr "Usar puntos (1 punto = 1/72 pulgadas = 0.352778 mm)."
 
-#: C/glabels.xml:1854(para)
-msgid "Radius of concentric hole"
-msgstr ""
+#: C/customize.page:46(gui)
+msgid "Inches"
+msgstr "Pulgadas"
 
-#: C/glabels.xml:1859(para)
-msgid ""
-"If present, the label is clipped to the given width. (Useful for \"business "
-"card CDs\")."
-msgstr ""
+#: C/customize.page:47(p)
+msgid "Use Inches."
+msgstr "Usar pulgadas."
 
-#: C/glabels.xml:1866(para)
-msgid ""
-"If present, the label is clipped to the given height. (Useful for \"business "
-"card CDs\")."
-msgstr ""
+#: C/customize.page:50(gui)
+msgid "Millimeters"
+msgstr "Milímetros"
 
-#: C/glabels.xml:1884(title)
-msgid "CD Label Parameters"
-msgstr ""
+#: C/customize.page:51(p)
+msgid "Use Millimeters."
+msgstr "Usar milímetros."
 
-#: C/glabels.xml:1898(title)
-msgid "Markup-margin Node"
-msgstr ""
+#: C/customize.page:54(p)
+msgid "Default: <gui>Inches</gui>."
+msgstr "Predeterminado: <gui>pulgadas</gui>."
+
+#: C/customize.page:58(title)
+msgid "Default page size"
+msgstr "Tamaño de página predeterminado"
 
-#: C/glabels.xml:1900(para)
+#: C/customize.page:59(p)
 msgid ""
-"A <emphasis>Markup-margin</emphasis> describes a margin along all edges of a "
-"label."
+"Use this radio button group to specify your prefered page size. This will "
+"make it quicker for you to locate media types when creating a new label or "
+"card."
 msgstr ""
+"Use este grupo de botones de radio para especificar su tamaño de página "
+"favorito. Esto hará que localice más rápidamente los tipos de medios cuando "
+"crea una etiqueta o una tarjeta nuevas."
 
-#: C/glabels.xml:1921(para)
+#: C/customize.page:64(gui)
+msgid "US Letter"
+msgstr "Carta"
+
+#: C/customize.page:65(p)
 msgid ""
-"Size of the margin. I.e. the distance of the margin line from the edge of "
-"the card/label."
+"Most of your media will be of the US Letter page size (8.5 x 11 inches)."
 msgstr ""
+"La mayoría de sus medios serán tendrán un tamaño de página «Carta» (8.5 x 11 "
+"pulgadas)."
 
-#: C/glabels.xml:1932(title)
-msgid "Markup-line Node"
-msgstr ""
+#: C/customize.page:68(gui)
+msgid "ISO A4"
+msgstr "ISO A4"
 
-#: C/glabels.xml:1934(para)
-msgid "A <emphasis>Markup-line</emphasis> describes a markup line."
+#: C/customize.page:69(p)
+msgid "Most of your media will be of the ISO A4 page size (210 x 297 mm)."
 msgstr ""
+"La mayoría de sus medios serán del tamaño de página ISO A4 (210 x 297 mm)."
 
-#: C/glabels.xml:1952(para) C/glabels.xml:2046(para)
-msgid "x1"
-msgstr "x1"
+#: C/customize.page:72(p)
+msgid "Default: <gui>US Letter</gui>."
+msgstr "Predeterminado: <gui>Carta</gui>."
 
-#: C/glabels.xml:1954(para)
-msgid "x coordinate of 1st endpoint of the line segment."
-msgstr ""
+#: C/customize.page:77(title)
+msgid "Object Defaults"
+msgstr "Opciones predeterminadas para el objeto"
 
-#: C/glabels.xml:1958(para) C/glabels.xml:2052(para)
-msgid "y1"
-msgstr "y1"
+#: C/customize.page:80(title) C/createnew.page:39(title)
+msgid "Text"
+msgstr "Texto"
 
-#: C/glabels.xml:1960(para)
-msgid "y coordinate of 1st endpoint of the line segment."
+#: C/customize.page:81(p)
+msgid ""
+"Use these controls to set the default properties of new text objects. These "
+"properties are:"
 msgstr ""
+"Use estos controles para configurar las propiedades predeterminadas de los "
+"objetos de texto nuevos. Estas propiedades son:"
 
-#: C/glabels.xml:1964(para)
-msgid "x2"
-msgstr "x2"
+#: C/customize.page:85(gui)
+msgid "Font"
+msgstr "Tipografía"
 
-#: C/glabels.xml:1966(para)
-msgid "x coordinate of 2nd endpoint of the line segment."
+#: C/customize.page:86(p)
+msgid ""
+"These controls are used to select font family and font size, and whether the "
+"font should bold or in italics."
 msgstr ""
+"Estos controles se usan para seleccionar la familia tipográfica y su tamaño, "
+"y si la tipografía debe ser negrita o cursiva."
 
-#: C/glabels.xml:1970(para)
-msgid "y2"
-msgstr ""
+#: C/customize.page:90(gui) C/customize.page:110(gui)
+#: C/customize.page:122(gui)
+msgid "Color"
+msgstr "Color"
 
-#: C/glabels.xml:1972(para)
-msgid "y coordinate of 2nd endpoint of the line segment."
-msgstr ""
+#: C/customize.page:91(p)
+msgid "This control selects the default text color."
+msgstr "Este control selecciona el color predeterminado del texto."
 
-#: C/glabels.xml:1982(title)
-msgid "Markup-circle Node"
-msgstr ""
+#: C/customize.page:94(gui)
+msgid "Alignment"
+msgstr "Alineación"
 
-#: C/glabels.xml:1984(para)
-msgid "A <emphasis>Markup-circle</emphasis> describes a markup circle."
+#: C/customize.page:95(p)
+msgid ""
+"These controls are used to select the default text alignment (left, center "
+"or right)."
 msgstr ""
+"Estos controles se usan para seleccionar la alineación predeterminada del "
+"texto (izquierda, centrado o derecha)."
 
-#: C/glabels.xml:2003(para) C/glabels.xml:2119(para)
-msgid "x0"
-msgstr "x0"
+#: C/customize.page:101(title) C/createnew.page:56(title)
+msgid "Line"
+msgstr "Línea"
 
-#: C/glabels.xml:2005(para)
-msgid "x coordinate of circle origin (center)."
+#: C/customize.page:102(p)
+msgid ""
+"Use these controls to set the default properties of lines and outlines of "
+"new objects. These properties are:"
 msgstr ""
+"Use estos controles para establecer las propiedades predeterminadas de las "
+"líneas y los márgenes de los objetos nuevos. Estas propiedades son:"
 
-#: C/glabels.xml:2009(para) C/glabels.xml:2126(para)
-msgid "y0"
-msgstr "y0"
+#: C/customize.page:106(gui)
+msgid "Width"
+msgstr "Anchura"
 
-#: C/glabels.xml:2011(para)
-msgid "y coordinate of circle origin (center)."
-msgstr ""
+#: C/customize.page:107(p)
+msgid "This control selects the default line width."
+msgstr "Este control selecciona la anchura predeterminada de la línea."
 
-#: C/glabels.xml:2016(para)
-msgid "Radius of circle."
-msgstr ""
+#: C/customize.page:111(p)
+msgid "This control selects the default line color."
+msgstr "Este control selecciona el color predeterminado de la línea."
 
-#: C/glabels.xml:2025(title)
-msgid "Markup-rect Node"
-msgstr ""
+#: C/customize.page:117(title)
+msgid "Fill"
+msgstr "Relleno"
 
-#: C/glabels.xml:2027(para)
-msgid "A <emphasis>Markup-rect</emphasis> describes a markup rectangle."
+#: C/customize.page:118(p)
+msgid ""
+"Use this control to set the default fill property of new objects. This "
+"property is:"
 msgstr ""
+"Use este control para establecer la propiedad predeterminada de relleno de "
+"los objetos nuevos. Esta propiedad es:"
 
-#: C/glabels.xml:2048(para)
-msgid "x coordinate of upper left corner of rectangle."
-msgstr ""
+#: C/customize.page:123(p)
+msgid "This control selects the default fill color."
+msgstr "Este control selecciona el color predeterminado de relleno."
 
-#: C/glabels.xml:2054(para)
-msgid "y coordinate of upper left corner of rectangle."
-msgstr ""
+#: C/createnew.page:9(desc)
+msgid "Create new objects within your document."
+msgstr "Crear objetos nuevos dentro de su documento."
 
-#: C/glabels.xml:2058(para)
-msgid "w"
-msgstr "w"
+#: C/createnew.page:25(title)
+msgid "To create new objects"
+msgstr "Crear objetos nuevos"
 
-#: C/glabels.xml:2060(para)
-msgid "Width of rectangle."
+#: C/createnew.page:27(p)
+msgid ""
+"Objects are created by choosing the appropriate selection under the "
+"<guiseq><gui>Objects</gui><gui>Create Object</gui></guiseq> submenu or the "
+"<gui>Drawing Toolbar</gui>. This will place the display area into object "
+"creation mode as indicated by its cursor. To return to the default object "
+"selection mode without creating an object, choose <guiseq><gui>Objects</"
+"gui><gui>Select Mode</gui></guiseq>. This will return the display area's "
+"cursor to the default selection arrow."
+msgstr ""
+"Los objetos se crean eligiendo la selección adecuada en el submenú "
+"<guiseq><gui>Objetos</gui><gui>Crear Objeto</gui></guiseq> o la <gui>Barra "
+"de dibujo</gui>. Esto situará el área de visualización en el modo de "
+"creación de objetos como indica su cursor. Para volver al modo de selección "
+"de objetos predeterminado sin crear un objeto, "
+"seleccione<guiseq><gui>Objetos</gui><gui>Seleccionar modo</gui></guiseq>. "
+"Esto devolverá el cursor del área de visualización a la flecha de selección "
+"predeterminada."
+
+#: C/createnew.page:35(p)
+msgid "The following describes the object creation mode for each object type:"
 msgstr ""
+"A continuación se describe el modo de creación de un objeto para cada tipo "
+"de objeto:"
 
-#: C/glabels.xml:2064(para)
-msgid "h"
-msgstr "h"
-
-#: C/glabels.xml:2066(para)
-msgid "Height of rectangle."
+#: C/createnew.page:40(p)
+msgid ""
+"Click the desired location of the upper left corner of the text object. New "
+"text objects are initialized with the string \"Text.\" To change this text, "
+"or other properties, see <link xref=\"editprop\"/>."
 msgstr ""
+"Pulse en la ubicación que quiera en la esquina superior izquierda del objeto "
+"de texto y arrástrelo. Los objetos de texto nuevos se inicializan con la "
+"cadena «Texto». Para cambiar este texto u otras propiedades, consulte la "
+"<link xref=\"editprop\"/>."
 
-#: C/glabels.xml:2070(para)
-msgid "r"
-msgstr "r"
+#: C/createnew.page:47(title)
+msgid "Box"
+msgstr "Caja"
 
-#: C/glabels.xml:2071(para)
-msgid "Radius of rounded corners of rectangle."
+#: C/createnew.page:48(p)
+msgid ""
+"Click the desired location of the upper left corner of the box object and "
+"drag to the desired location of the lower right corner. If you simply click "
+"in a single location, a square box will be created. To change properties of "
+"the box object, see <link xref=\"editprop\"/>."
 msgstr ""
+"Pulse en la ubicación que quiera en la esquina superior izquierda del objeto "
+"de caja y arrástrelo a la ubicación que quiere en la esquina inferior "
+"derecha. Si simplemente pulsa en una única ubicación, se creará una caja "
+"cuadrada. Para cambiar las propiedades del objeto de caja, consulte la <link "
+"xref=\"editprop\"/>."
 
-#: C/glabels.xml:2080(title)
-msgid "Layout Node"
+#: C/createnew.page:57(p)
+msgid ""
+"Click the desired location of one end of the line object and drag to the "
+"desired location of the other end. If you simply click in a single location, "
+"a diagonal line will be created. To change properties of the line object, "
+"see <link xref=\"editprop\"/>."
 msgstr ""
+"Pulse en la ubicación que quiera en uno de los extremos del objeto de línea "
+"y arrástrelo a la ubicación que quiere en el otro extremo. Si simplemente "
+"pulsa en una única ubicación, se creará una línea. Para cambiar las "
+"propiedades del objeto de línea, consulte la <link xref=\"editprop\"/>."
+
+#: C/createnew.page:65(title)
+msgid "Ellipse"
+msgstr "Elipse"
 
-#: C/glabels.xml:2082(para)
+#: C/createnew.page:66(p)
 msgid ""
-"A label node may contain multiple <emphasis>Layout</emphasis> children. If "
-"labels are arranged in a simple grid pattern, only one layout is needed. "
-"However, if labels are arranged in multiple grids, such as a running bond "
-"pattern, multiple <emphasis>layout</emphasis> tags can be used. Note: a "
-"single label can always be treated as a grid of one."
+"Click the desired location of the upper left corner of the ellipse object "
+"and drag to the desired location of the lower right corner. If you simply "
+"click in a single location, a circle will be created. To change properties "
+"of the ellipse object, see <link xref=\"editprop\"/>."
 msgstr ""
+"Pulse en la ubicación que quiera en la esquina superior izquierda del objeto "
+"de elipse y arrástrelo a la ubicación que quiere en la esquina inferior "
+"derecha. Si simplemente pulsa en una única ubicación, se creará un círculo. "
+"Para cambiar las propiedades del objeto de elipse, consulte la <link xref="
+"\"editprop\"/>."
 
-#: C/glabels.xml:2105(para)
-msgid "nx"
-msgstr ""
+#: C/createnew.page:74(title)
+msgid "Image"
+msgstr "Imagen"
 
-#: C/glabels.xml:2107(para)
-msgid "Number of labels/cards across in the grid (horizontal)"
+#: C/createnew.page:75(p)
+msgid ""
+"Click the desired location of the upper left corner of the image object and "
+"drag to the desired location of the lower right corner. If you simply click "
+"in a single location, a square will be created. New image objects are "
+"initialized with a simple checkerboard image. To change this image, or other "
+"properties of the image object, see <link xref=\"editprop\"/>."
 msgstr ""
+"Pulse en la ubicación que quiera en la esquina superior izquierda del objeto "
+"de imagen y arrástrelo a la ubicación que quiere en la esquina inferior "
+"derecha. Si simplemente pulsa en una única ubicación, se creará un cuadrado. "
+"Los objetos de imagen nuevos se inicializan con una imagen cuadriculada. "
+"Para cambiar esta imagen, u otras propiedades del objeto de imagen, consulte "
+"la <link xref=\"editprop\"/>."
 
-#: C/glabels.xml:2112(para)
-msgid "ny"
-msgstr ""
+#: C/createnew.page:85(title)
+msgid "Barcode"
+msgstr "Código de barras"
 
-#: C/glabels.xml:2114(para)
-msgid "Number of labels/cards up and down in the grid (vertical)"
+#: C/createnew.page:86(p)
+msgid ""
+"Click the desired location of the upper left corner of the barcode object. "
+"New barcode objects are initialized to a POSTNET barcode with representative "
+"data. To change data and properties of the barcode object, see <link xref="
+"\"editprop\"/>."
 msgstr ""
+"Pulse en la ubicación que quiera en la esquina superior izquierda del objeto "
+"de código de barras. Los objetos de código de barras nuevos se inicializan "
+"con un código de barras POSTNET con datos representativos. Para cambiar los "
+"datos y las propiedades del objeto de código de barras, consulte la <link "
+"xref=\"editprop\"/>."
+
+#: C/basicusage.page:9(desc)
+msgid "Handling files and quit the application."
+msgstr "Manejar archivos y salir de la aplicación."
+
+#: C/basicusage.page:25(title)
+msgid "Basic usage"
+msgstr "Uso básico"
+
+#: C/basicusage.page:28(title)
+msgid "To open a file"
+msgstr "Abrir un archivo"
 
-#: C/glabels.xml:2121(para)
+#: C/basicusage.page:30(p)
 msgid ""
-"Distance from left edge of sheet to the left edge of the left column of "
-"cards/labels in the layout."
+"To open a file, choose <guiseq><gui>File</gui><gui>Open</gui></guiseq> to "
+"display the <gui>Open File</gui> dialog. Select the file that you want to "
+"open, then click <gui>OK</gui>. The file is displayed in the display area of "
+"the <app>gLabels</app> window."
 msgstr ""
+"Para abrir un archivo, elija  <guiseq><gui>Archivo</gui><gui>Abrir</gui></"
+"guiseq> para mostrar el diálogo de <gui>Abrir archivo</gui>. Seleccione el "
+"archivo que quiere abrir y pulse <gui>Aceptar</gui>. El archivo se muestra "
+"en el área de visualización de la ventana de <app>gLabels</app>."
 
-#: C/glabels.xml:2128(para)
+#: C/basicusage.page:37(p)
 msgid ""
-"Distance from the top edge of sheet to the top edge of the top row of labels/"
-"cards in the layout."
+"You can also open multiple files in <app>gLabels</app>. The application "
+"creates a separate application window for each open file."
 msgstr ""
+"Puede abrir múltiples archivos en <app>gLabels</app>. La aplicación crea una "
+"ventana de aplicación separada para cada archivo abierto."
 
-#: C/glabels.xml:2133(para)
-msgid "dx"
+#: C/basicusage.page:41(p)
+msgid ""
+"The application records the paths and filenames of the most recent files "
+"that you have edited and displays the files as menu items on the "
+"<guiseq><gui>File</gui><gui>Recent Files</gui></guiseq> menu."
 msgstr ""
+"La aplicación guarda las rutas y los nombres de archivo de los archivos más "
+"recientes que haya editado, y muestra los archivos como elementos del menú "
+"<guiseq><gui>Archivo</gui><gui>Archivos recientes</gui></guiseq>."
 
-#: C/glabels.xml:2134(para)
-msgid "Horizontal pitch of grid."
-msgstr ""
+#: C/basicusage.page:48(title)
+msgid "To close a file"
+msgstr "Cerrar un archivo"
 
-#: C/glabels.xml:2137(para)
-msgid "dy"
+#: C/basicusage.page:50(p)
+msgid ""
+"To close the current document, choose <guiseq><gui>File</gui><gui>Close</"
+"gui></guiseq> to close the application window. If the current document is "
+"modified, a confirmation dialog will be presented, allowing you to save the "
+"document or cancel the command. If the window being closed is the only open "
+"window, <app>gLabels</app> will exit."
 msgstr ""
+"Para cerrar el documento actual, elija <guiseq><gui>Archivo</"
+"gui><gui>Cerrar</gui></guiseq> para cerrar la ventana de la aplicación. Si "
+"el documento actual se ha modificado, se mostrará un diálogo de "
+"confirmación, permitiéndole guardar el documento o cancelar el comando. Si "
+"la ventana que va a cerrar es la única que está abierta, <app>gLabels</app> "
+"se cerrará."
 
-#: C/glabels.xml:2138(para)
-msgid "Vertical pitch of grid."
-msgstr ""
+#: C/basicusage.page:60(title)
+msgid "To save a file"
+msgstr "Guardar un archivo"
 
-#: C/glabels.xml:2146(title)
-msgid "Layout Parameters"
-msgstr ""
+#: C/basicusage.page:62(p)
+msgid "You can save files in the following ways:"
+msgstr "Puede guardar archivos de cualquiera de estas maneras:"
 
-#: C/glabels.xml:2160(title)
-msgid "Alias Node"
+#: C/basicusage.page:66(p)
+msgid ""
+"To save changes to an existing file, choose <guiseq><gui>File</"
+"gui><gui>Save</gui></guiseq>."
 msgstr ""
+"Para guardar los cambios a un archivo existente, elija <guiseq><gui>Archivo</"
+"gui><gui>Guardar</gui></guiseq>."
 
-#: C/glabels.xml:2162(para)
+#: C/basicusage.page:73(p)
 msgid ""
-"An <emphasis>Alias</emphasis> node provides the name of a product with the "
-"same size and layout characteristics as the parent template."
+"To save a new file or to save an existing file under a new filename, choose "
+"<guiseq><gui>File</gui><gui>Save As</gui></guiseq>. Enter a name for the "
+"file in the <gui>Save As</gui> dialog box, then click <gui>OK</gui>."
 msgstr ""
+"Para guardar un archivo nuevo o para guardar un archivo existente con un "
+"nombre de archivo nuevo, elija <guiseq><gui>Archivo</gui><gui>Guardar como</"
+"gui></guiseq>. Introduzca un nombre para el archivo en el cuadro de diálogo "
+"<gui>Guardar como</gui> y pulse <gui>Aceptar</gui>."
 
-#: C/glabels.xml:2184(para)
-msgid "The brand or manufacturer of the equivalent product."
-msgstr ""
+#: C/basicusage.page:84(title)
+msgid "To quit <app>gLabels</app>"
+msgstr "Salir de <application>gLabels</application>"
 
-#: C/glabels.xml:2190(para)
-msgid "The part number or name of the equivalent product."
+#: C/basicusage.page:86(p)
+msgid ""
+"To quit <app>gLabels</app>, choose <guiseq><gui>File</gui><gui>Quit</gui></"
+"guiseq>. This is equivalent to closing all open windows. See <link xref="
+"\"basicusage#closefile\"/>."
 msgstr ""
+"Para salir de <app>gLabels</app>, elija <guiseq><gui>Archivo</"
+"gui><gui>Quitar</gui></guiseq>. Esto es equivalente a cerrar todas las "
+"ventanas abiertas. Consulte la <link xref=\"basicusage#closefile\"/>."
 
-#: C/glabels.xml:2226(title)
-msgid "About <application>gLabels</application>"
-msgstr ""
+#: C/about.page:9(desc)
+msgid "Information about <app>gLabels</app>."
+msgstr "Información acerca de <app>gLabels</app>."
+
+#: C/about.page:25(title)
+msgid "About <app>gLabels</app>"
+msgstr "Acerca de <app>gLabels</app>"
 
-#: C/glabels.xml:2227(para)
+#: C/about.page:27(p)
 msgid ""
-"<application>gLabels</application> was written by Jim Evins "
-"(<email>evins@snaught.com</email>). To find more information about "
-"<application>gLabels</application>, please visit the <ulink url=\"http://"
-"glabels.sourceforge.net\" type=\"http\">gLabels Web page</ulink>."
+"<app>gLabels</app> was written by <link href=\"mailto:evins@snaught.com"
+"\">Jim Evins</link>. To find more information about <app>gLabels</app>, "
+"please visit the <link href=\"http://glabels.org\" type=\"http"
+"\"><app>gLabels</app> Web page</link>."
 msgstr ""
+"<link href=\"mailto:evins@snaught.com\">Jim Evins</link> escribió "
+"<app>gLabels</app>. Para obtener más información acerca de <app>gLabels</"
+"app>, visite la <link href=\"http://glabels.org\" type=\"http\">página web "
+"de<app>gLabels</app></link>."
 
-#: C/glabels.xml:2232(para)
+#: C/about.page:31(p)
 msgid ""
 "To report a bug or make a suggestion regarding this application or this "
-"manual, follow the directions at the <ulink url=\"http://glabels.sourceforge."
-"net/contact/\" type=\"http\"><application>gLabels</application> Contact "
-"Page</ulink>."
+"manual, follow the directions at the <link href=\"http://glabels.org/contact/"
+"\" type=\"http\"><app>gLabels</app> Contact Page</link>."
 msgstr ""
+"Para informar de un error o hacer una sugerencia acerca de esta aplicación o "
+"este manual, siga las indicaciones en la <link href=\"http://glabels.org/"
+"contact/\" type=\"http\">página de contacto de <app>gLabels</app></link>."
 
-#: C/glabels.xml:2238(para)
+#: C/about.page:37(p)
 msgid ""
 "This program is distributed under the terms of the GNU General Public "
-"license as published by the Free Software Foundation; either version 2 of "
+"license as published by the Free Software Foundation; either version 3 of "
 "the License, or (at your option) any later version. A copy of this license "
-"can be found at this <ulink url=\"ghelp:gpl\" type=\"help\">link</ulink>, or "
+"can be found at this <link href=\"ghelp:gpl\" type=\"help\">link</link>, or "
 "in the file COPYING included with the source code of this program."
 msgstr ""
-"Este programa se distribuye bajo los términos de la Licencia Pública General "
-"GNU tal como la publica la Free Software Foundation; en cualquiera de las "
-"versiones 2 de la Licencia o (a su elección) cualquier versión posterior. "
-"Puede encontrar una copia de esta licencia en este <ulink url=\"ghelp:gpl\" "
-"type=\"help\">enlace</ulink>, o en el archivo COPYING incluido con el código "
+"Este programa se distribuye bajo los términos de la Licencia Pública General "
+"GNU tal como la publica la Free Software Foundation; tanto en la versión 3 "
+"de la Licencia, o (a su elección) cualquier otra versión posterior. Puede "
+"encontrarse una copia de esta licencia en este <link href=\"ghelp:gpl\" type="
+"\"help\">enlace</link>, o en el archivo COPYING incluido con el código "
 "fuente de este programa."
 
 #. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2
-#: C/glabels.xml:0(None)
+#: C/index.page:0(None)
 msgid "translator-credits"
-msgstr "Jorge González <jorgegonz@svn.gnome.org>, 2010"
+msgstr ""
+"Daniel Mustieles <daniel.mustieles@gmail.com>, 2010\n"
+"Jorge González <jorgegonz@svn.gnome.org>, 2010"
+
+#~ msgid "@@image: 'figures/merge-ex3-1.png'; md5=THIS FILE DOESN'T EXIST"
+#~ msgstr "@@image: 'figures/merge-ex3-1.png'; md5=THIS FILE DOESN'T EXIST"
+
+#~ msgid "@@image: 'figures/merge-ex3-2.png'; md5=THIS FILE DOESN'T EXIST"
+#~ msgstr "@@image: 'figures/merge-ex3-2.png'; md5=THIS FILE DOESN'T EXIST"
+
+#~ msgid "@@image: 'figures/merge-ex3-4.png'; md5=THIS FILE DOESN'T EXIST"
+#~ msgstr "@@image: 'figures/merge-ex3-4.png'; md5=THIS FILE DOESN'T EXIST"
+
+#~ msgid ""
+#~ "@@image: 'figures/merge-ex2-4.png'; md5=67391b05421901a36d276736c1f664dd"
+#~ msgstr ""
+#~ "@@image: 'figures/merge-ex2-4.png'; md5=67391b05421901a36d276736c1f664dd"
+
+#~ msgid ""
+#~ "@@image: 'figures/merge-ex1-1.png'; md5=731c7bcd2ff66d18300e87f1c3d9ec0e"
+#~ msgstr ""
+#~ "@@image: 'figures/merge-ex1-1.png'; md5=731c7bcd2ff66d18300e87f1c3d9ec0e"
+
+#~ msgid ""
+#~ "@@image: 'figures/merge-ex1-2.png'; md5=27ed61afe77cda96c208fcda51990c89"
+#~ msgstr ""
+#~ "@@image: 'figures/merge-ex1-2.png'; md5=27ed61afe77cda96c208fcda51990c89"
+
+#~ msgid ""
+#~ "@@image: 'figures/merge-ex1-4.png'; md5=9cec0c679929cc904f81f435cd3bd060"
+#~ msgstr ""
+#~ "@@image: 'figures/merge-ex1-4.png'; md5=9cec0c679929cc904f81f435cd3bd060"
+
+#~ msgid "Template Node"
+#~ msgstr "Nodo plantilla"
+
+#~ msgid "Meta Node"
+#~ msgstr "Metanodo"
+
+#~ msgid "Layout parameters"
+#~ msgstr "Parámetros de la apariencia"
+
+#~ msgid "Layout Parameters"
+#~ msgstr "Parámetros de la apariencia"
+
+#~ msgid "heigth"
+#~ msgstr "altura"
+
+#~ msgid "These controls are selects the default fill color."
+#~ msgstr "Estos controles seleccionan el color de relleno predeterminado."
diff --git a/help/es/glabels.xml b/help/es/glabels.xml
deleted file mode 100644 (file)
index 50b0c28..0000000
+++ /dev/null
@@ -1,2227 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
-<!ENTITY legal SYSTEM "legal.xml">
-<!ENTITY appversion "2.2.6">
-<!ENTITY manrevision "2.2.6">
-<!ENTITY date "December 2007">
-<!ENTITY app "<application>gLabels</application>">
-<!-- Information about the entities
-       The legal.xml file contains legal information, there is no need to edit the file. 
-       Use the appversion entity to specify the version of the application.
-       Use the manrevision entity to specify the revision number of this manual.
-       Use the date entity to specify the release date of this manual.
-       Use the app entity to specify the name of the application. -->]>
-<!-- 
-      (Do not remove this comment block.)
-  Maintained by the GNOME Documentation Project
-  http://developer.gnome.org/projects/gdp
-  Template version: 2.0 beta
-  Template last modified Apr 11, 2002
--->
-<!-- =============Document Header ============================= -->
-<article id="index" lang="es">
-<!-- please do not change the id; for translations, change lang to -->
-<!-- appropriate code -->
-  <articleinfo> 
-    <title>Manual de <application>gLabels</application> V2.2.6</title>       
-       <abstract role="description">
-       <para>Manual de usuario para el programa de creación de etiquetas y tarjetas de visita <application>gLabels</application></para>
-    </abstract>
-    <copyright> 
-      <year>2003-2009</year> 
-      <holder>Jim Evins</holder> 
-    </copyright><copyright><year>2010</year><holder>Jorge González (jorgegonz@svn.gnome.org)</holder></copyright>
-       <publisher> 
-               <publishername>Jim Evins</publishername> 
-       </publisher> 
-
-     <legalnotice id="legalnotice">
-       <para>Se otorga permiso para copiar, distribuir y/o modificar este documento bajo los términos de la Licencia de Documentación Libre de GNU, Versión 1.1 o cualquier otra versión posterior publicada por la Free Software Foundation; sin Secciones Invariantes ni Textos de Cubierta Delantera ni Textos de Cubierta Trasera. Puede encontrar una copia de la licencia GFDL en este <ulink type="help" url="ghelp:fdl">enlace</ulink> o en el archivo COPYING-DOCS distribuido con este manual.</para>
-         <para>Este manual es parte de una colección de manuales de GNOME distribuido bajo la GFDL. Si quiere distribuir este manual por separado de la colección, puede hacerlo añadiendo una copia de la licencia al manual, tal como se describe en la sección 6 de la licencia.</para>
-
-       <para>Muchos de los nombres utilizados por las empresas para distinguir sus productos y servicios se consideran marcas comerciales. Cuando estos nombres aparezcan en la documentación de GNOME, y siempre que se haya informado a los miembros del Proyecto de documentación de GNOME de dichas marcas comerciales, los nombres aparecerán en mayúsculas o con las iniciales en mayúsculas.</para>
-
-       <para>ESTE DOCUMENTO Y LAS VERSIONES MODIFICADAS DEL MISMO SE PROPORCIONAN SEGÚN LAS CONDICIONES ESTABLECIDAS EN LA LICENCIA DE DOCUMENTACIÓN LIBRE DE GNU (GFDL) Y TENIENDO EN CUENTA QUE: <orderedlist>
-               <listitem>
-                 <para>EL DOCUMENTO SE OFRECE «TAL CUAL», SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO, PERO SIN LIMITARSE A ELLA, LA GARANTÍA DE QUE EL DOCUMENTO O LA VERSIÓN MODIFICADA DEL MISMO ESTÉ LIBRE DE DEFECTOS, GARANTÍA DE COMERCIALIZACIÓN, APTITUD PARA UN USO EN PARTICULAR O INCUMPLIMIENTO. TODOS LOS RIESGOS RELATIVOS A LA CALIDAD, EXACTITUD O RENDIMIENTO DEL DOCUMENTO O LA VERSIÓN MODIFICADA DEL MISMO SON ASUMIDOS POR VD. EN CASO DE QUE EL DOCUMENTO O LA VERSIÓN MODIFICADA SEAN DEFECTUOSOS, VD. (NO EL ESCRITOR ORIGINAL NI EL AUTOR NI NINGUNO DE LOS COLABORADORES) ASUMIRÁ EL COSTE DE CUALQUIER MANTENIMIENTO, REPARACIÓN O CORRECCIÓN QUE SEAN NECESARIOS. ESTA RENUNCIA DE GARANTÍA CONSTITUYE UNA PARTE ESENCIAL DE ESTA LICENCIA NO SE AUTORIZA EL USO DE NINGÚN DOCUMENTO NI VERSIÓN MODIFICADA DEL MISMO, SALVO EN LAS CONDICIONES ESPECIFICADAS EN ESTA RENUNCIA; Y </para>
-               </listitem>
-               <listitem>
-                 <para>EN NINGUNA CIRCUNSTANCIA NI SEGÚN NINGÚN ARGUMENTO LEGAL, SEA POR MOTIVOS CULPOSOS (INCLUIDA LA NEGLIGENCIA), CONTRACTUALES O DE OTRO TIPO, NI EL AUTOR, NI EL REDACTOR INICIAL, NI CUALQUIER COLABORADOR, NI CUALQUIER DISTRIBUIDOR DEL DOCUMENTO O VERSIÓN MODIFICADA DEL MISMO, NI CUALQUIER PROVEEDOR DE CUALQUIERA DE DICHAS PARTES, SERÁN RESPONSABLES, ANTE NINGÚN TERCERO, DE NINGÚN DAÑO O PERJUICIO DIRECTO, INDIRECTO, ESPECIAL, INCIDENTAL O CONSIGUIENTE DE NINGÚN TIPO, INCLUIDOS, SIN LIMITACIÓN, LOS DAÑOS POR PÉRDIDA DE FONDO DE COMERCIO, INTERRUPCIÓN DEL TRABAJO, FALLO O MAL FUNCIONAMIENTO INFORMÁTICO, NI CUALQUIER OTRO DAÑO O PÉRDIDA DERIVADOS DEL USO DEL DOCUMENTO Y LAS VERSIONES MODIFICADAS DEL MISMO, O RELACIONADO CON ELLO, INCLUSO SI SE HABÍA COMUNICADO A AQUELLA PARTE LA POSIBILIDAD DE TALES DAÑOS.</para>
-               </listitem>
-         </orderedlist></para>
-  </legalnotice>
-
-
-   <!-- This file  contains link to license for the documentation (GNU FDL), and 
-        other legal stuff such as "NO WARRANTY" statement. Please do not change 
-       any of this. -->
-
-    <authorgroup> 
-      <author role="maintainer"> 
-               <firstname>Jim</firstname> 
-               <surname>Evins</surname> 
-      </author> 
-      
-<!-- This is appropriate place for other contributors: translators,
-     maintainers,  etc. Commented out by default.
-     
-      <othercredit role="translator">
-               <firstname>Latin</firstname> 
-               <surname>Translator 1</surname> 
-               <affiliation> 
-                       <orgname>Latin Translation Team</orgname> 
-                       <address> <email>translator@gnome.org</email> </address> 
-               </affiliation>
-               <contrib>Latin translation</contrib>
-      </othercredit>
--->
-    </authorgroup>
-
-
-<!-- According to GNU FDL, revision history is mandatory if you are -->
-<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
-<!-- Remember to remove the &manrevision; entity from the revision entries other
--->
-<!-- than the current revision. -->
-<!-- The revision numbering system for GNOME manuals is as follows: -->
-<!-- * the revision number consists of two components -->
-<!-- * the first component of the revision number reflects the release version of the GNOME desktop. -->
-<!-- * the second component of the revision number is a decimal unit that is incremented with each revision of the manual. -->
-<!-- For example, if the GNOME desktop release is V2.x, the first version of the manual that -->
-<!-- is written in that desktop timeframe is V2.0, the second version of the manual is V2.1, etc. -->
-<!-- When the desktop release version changes to V3.x, the revision number of the manual changes -->
-<!-- to V3.0, and so on. -->  
-    <revhistory>
-      <revision> 
-               <revnumber>Manual de gLabels V2.2.6</revnumber> 
-               <date>Octubre de 2009</date> 
-               <revdescription> 
-                       <para role="author">Mario Blättermann <email>mariobl@gnome.org</email></para>
-                       <para role="publisher">Jim Evins</para>
-               </revdescription> 
-      </revision> 
-      <revision> 
-               <revnumber>Manual de gLabels V2.2</revnumber> 
-               <date>Diciembre de 2007</date> 
-               <revdescription> 
-                       <para role="author">Jim Evins <email>evins@snaught.com</email></para>
-                       <para role="publisher">Jim Evins</para>
-               </revdescription> 
-      </revision> 
-    </revhistory> 
-
-    <releaseinfo>Este manual describe la versión 2.2.6 de <application>gLabels</application>.</releaseinfo> 
-    <legalnotice> 
-      <title>Comentarios</title> 
-      <para>To report a bug or make a suggestion regarding the <application>gLabels</application> application or
-      this manual, follow the directions in the <ulink url="http://glabels.sourceforge.net/contact/" type="http"><application>gLabels</application> Contact Page</ulink>. 
-      </para>
-<!-- Translators may also add here feedback address for translations -->
-    </legalnotice> 
-  </articleinfo> 
-
-  <indexterm zone="index"> 
-    <primary>gLabels</primary> 
-  </indexterm> 
-  <indexterm zone="index"> 
-    <primary>glabels</primary> 
-  </indexterm>
-
-
-
-
-<!-- ============= Document Body ============================= -->
-<!-- ============= Introduction ============================== -->
-<!-- Use the Introduction section to give a brief overview of what
-     the application is and what it does. -->
-  <sect1 id="glabels-introduction"> 
-    <title>Introducción</title> 
-
-    <para>The <application>gLabels</application> application is a lightweight program for creating labels
-      and business cards for the <systemitem>GNOME desktop</systemitem>
-      environment.  It is designed to work with various laser/ink-jet
-      peel-off label and business card sheets that you'll find at most
-      office supply stores.</para>
-
-  </sect1>
-
-
-
-
-<!-- =========== Getting Started ============================== -->
-<!-- Use the Getting Started section to describe the steps required
-     to start the application and to describe the user interface components
-     of the application. If there is other information that it is important
-     for readers to know before they start using the application, you should
-     also include this information here. 
-     If the information about how to get started is very short, you can 
-     include it in the Introduction and omit this section. -->
-
-  <sect1 id="glabels-getting-started"> 
-    <title>Inicio</title> 
-
-    <sect2 id="glabels-start">
-    <title>Para iniciar <application>gLabels</application></title>
-    <para>You can start <application>gLabels</application> in the following ways:
-    </para> 
-    <variablelist>
-       <varlistentry>
-               <term>Menú <guimenu>Aplicaciones</guimenu></term>
-               <listitem>
-               <para>Choose 
-               <menuchoice>
-               <guisubmenu>Office</guisubmenu>
-               <guimenuitem>gLabels</guimenuitem>
-               </menuchoice>. </para>
-               </listitem>
-       </varlistentry>
-       <varlistentry>
-               <term>Línea de comandos</term>
-               <listitem>
-               <para>Type <command>glabels</command>,
-                then press <keycap>Return</keycap>:</para>
-               </listitem>
-       </varlistentry>
-    </variablelist>
-    </sect2>
-
-    <sect2 id="glabels-when-start">
-    <title>When You Start <application>gLabels</application></title>
-    <para>When you start <application>gLabels</application>, the following window is displayed.</para>
-
-    <!-- ==== Figure ==== -->
-      <figure id="mainwindow-fig"> 
-       <title>Ventana de inicio de <application>gLabels</application></title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/main-window-empty.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-    <!-- ==== End of Figure ==== -->
-
-    <!-- Include any descriptions of the GUI immediately after the screenshot of the main UI, -->
-    <!-- for example, the items on the menubar and on the toolbar. This section is optional. -->
-
-    <para>The <application>gLabels</application> window contains the following elements:
-    </para>
-      <variablelist>
-       <varlistentry>
-       <term>Barra de menú.</term>
-       <listitem>
-           <para>The menus on the menubar contain all of the commands you
-              need to create and edit labels and business cards in 
-             <application>gLabels</application>.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Barra de herramientas principal.</term>
-       <listitem>
-           <para>The main toolbar contains a subset of common File and Edit
-              commands that you can access from the menubar.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Drawing toolbar.</term>
-       <listitem>
-           <para>The drawing toolbar contains a subset of commands for
-              editing the current <application>gLabels</application> document.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Área de visualización.</term>
-       <listitem>
-           <para>The display area is the main drawing interface to
-              <application>gLabels</application>.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Object sidebar.</term>
-       <listitem>
-           <para>The object sidebar provides an interface for viewing and
-              editing all properties of an individual object. </para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Barra de herramientas de propiedades.</term>
-       <listitem>
-           <para>The properties toolbar contains a set of tools to
-              manipulate the properties of selected objects and set default
-              properties for new objects.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Barra de estado.</term>
-       <listitem>
-           <para>The statusbar displays information about current
-              <application>gLabels</application> activity and contextual
-              information about the menu items. </para>
-       </listitem>
-       </varlistentry>
-       </variablelist>
-    </sect2>
-  </sect1>
-
-
-
-
-<!-- ================ Usage ================================ -->
-<!-- Use this section to describe how to use the application to perform the tasks for 
-  which the application is designed. -->
-  <sect1 id="glabels-usage"> 
-    <title>Uso</title> 
-
-<!-- ============= To create a new file ============================= -->
-    <sect2 id="glabels-open-new"> 
-      <title>To Create a New Label or Card</title>
-
-      <para>To create a new label or business card, choose 
-        <menuchoice> <guimenu>File</guimenu> <guimenuitem>New</guimenuitem>
-       </menuchoice>
-       to display the <guilabel>New Label or Card</guilabel> dialog. Select
-        the media type and orientation for the new document,
-       then click <guibutton>OK</guibutton>. A new document is
-       displayed in the display area of the <application>gLabels</application>
-        window. </para>
-
-      <para>If your particular media type is missing from this dialog,
-        see <xref linkend="glabels-create-template"/></para>
-
-    </sect2>
-
-<!-- ============= To Open a File ============================= -->
-    <sect2 id="glabels-open-file"> 
-      <title>Abrir un archivo</title>
-
-      <para>To open a file, choose 
-        <menuchoice> <guimenu>File</guimenu> <guimenuitem>Open</guimenuitem>
-       </menuchoice> to display the <guilabel>Open File</guilabel> dialog.
-        Select the file that you want to open, then click
-        <guibutton>OK</guibutton>. The file is displayed in the display area
-        of the <application>gLabels</application> window. </para>
-
-      <para>You can also open multiple files in
-        <application>gLabels</application>. The application creates a separate
-        application window for each open file.</para>
-
-      <para>The application records the paths and filenames of the
-        most recent files that you have edited and displays the files as menu
-        items on the <menuchoice>
-        <guimenu>File</guimenu><guisubmenu>Recent Files</guisubmenu>
-        </menuchoice> menu.</para>
-
-    </sect2>
-
-<!-- ============= To Open Multiple Files from the Command Line ========= -->
-    <sect2 id="glabels-run-from-cmd-line"> 
-      <title>To Open Multiple Files from a Command Line</title>
-
-      <para>You can run <application>gLabels</application> from a command line
-       and open a single file or multiple files. To open multiple files from
-        a command line, type the following command, then press
-        <keycap>Return</keycap>:</para>
-
-      <para><command>glabels
-      <replaceable>file1.glabels file2.glabels file3.glabels</replaceable>
-      </command></para>
-
-      <para>When the application starts, the files that you specify are
-       displayed in separate <application>gLabels</application> windows.</para>
-
-    </sect2>
-
-<!-- ============= To Save a File ========= -->
-    <sect2 id="glabels-save-file"> 
-      <title>Guardar un archivo</title>
-
-      <para>Puede guardar archivos de cualquiera de estas maneras:</para>
-
-      <itemizedlist> 
-       <listitem>
-
-         <para>Para guardar los cambios a un archivo existente, elija <menuchoice><guimenu>Archivo</guimenu><guimenuitem>Guardar</guimenuitem></menuchoice>.</para>
-
-       </listitem>
-       <listitem>
-
-         <para>To save a new file or to save an existing file under a new
-            filename, choose <menuchoice> <guimenu>File</guimenu>
-            <guimenuitem>Save As</guimenuitem> </menuchoice>. Enter a name
-            for the file in the <guilabel>Save As</guilabel> dialog box,
-            then click <guibutton>OK</guibutton>.</para>
-
-       </listitem>
-      </itemizedlist>
-
-    </sect2>
-
-<!-- ============= To Change Label Properties ========= -->
-    <sect2 id="glabels-label-properties"> 
-      <title>Cambiar las propiedades de una etiqueta</title>
-
-      <para>To change the media type and/or orientation of a label, choose
-        <menuchoice> <guimenu>File</guimenu>
-        <guimenuitem>Properties</guimenuitem> </menuchoice> to display the
-        <guilabel>Label properties</guilabel> dialog.  Select the
-        new media type and orientation for the document, then click
-        <guibutton>OK</guibutton>.</para>
-
-    </sect2>
-
-<!-- ============= To create a custom template ======================= -->
-    <sect2 id="glabels-create-template"> 
-      <title>To Create a Custom Template</title>
-
-      <para>To create a new custom template, choose 
-        <menuchoice> <guimenu>File</guimenu>
-       <guimenuitem>Template Designer ...</guimenuitem> </menuchoice>
-       to display the <guilabel>Template Designer</guilabel> dialog.
-        This dialog will assist you in creating a custom template for
-        most types of label or card stationery that you may encounter.</para>
-
-      <para>If you prefer, you can create your templates manually.
-        For this option see <xref linkend="glabels-manual-create-template"/>
-      </para>
-
-    </sect2>
-
-<!-- ============= To Close a File ========= -->
-    <sect2 id="glabels-close-file"> 
-      <title>Cerrar un archivo</title>
-
-      <para>To close the current document, choose
-        <menuchoice> <guimenu>File</guimenu>
-        <guimenuitem>Close</guimenuitem> </menuchoice> to close the application
-        window.  If the current document is modified, a confirmation dialog
-        will be presented, allowing you to save the document or cancel
-        the command.  If the window being closed is the only open window,
-        <application>gLabels</application> will exit.</para>
-
-    </sect2>
-
-<!-- ============= To Quit ========= -->
-    <sect2 id="glabels-quit"> 
-      <title>To Quit <application>gLabels</application></title>
-
-      <para>To quit <application>gLabels</application>, choose
-        <menuchoice> <guimenu>File</guimenu>
-        <guimenuitem>Quit</guimenuitem> </menuchoice>. This is equivalent
-        to closing all open windows.  See
-        <xref linkend="glabels-close-file"/>.</para>
-
-    </sect2>
-
-<!-- ============= To Print Labels and Cards ========= -->
-    <sect2 id="glabels-print-file"> 
-      <title>To Print Labels or Cards</title>
-
-      <para>To print labels or cards, choose
-        <menuchoice> <guimenu>File</guimenu> <guimenuitem>Print</guimenuitem>
-       </menuchoice> to display the <guilabel>Print</guilabel> dialog.
-        Once print options have been selected, click <guilabel>Print</guilabel>
-        to print the labels or cards.  To simply preview the results,
-        click <guilabel>Print Preview</guilabel> instead.</para>
-
-      <para>The <guilabel>Print</guilabel> dialog allows you to specify the
-        following print options:</para>
-               
-      <sect3 id="print-dialog-job">
-       <title>The Labels Tab of the Print Dialog</title>
-
-       <variablelist>
-
-         <varlistentry>
-            <term><guilabel>Print control (Simple)</guilabel></term>
-           <listitem> 
-
-             <para>For simple labels or cards (no document merge), the <guilabel>labels</guilabel>
-                tabbed section contains the following copy controls.</para>
-
-             <!-- ==== Figure ==== -->
-             <figure id="print-copies-fig"> 
-               <title>Print Copy Controls</title> 
-               <screenshot> 
-                 <mediaobject> 
-                   <imageobject><imagedata fileref="figures/print-copies.png" format="PNG"/> 
-                   </imageobject>
-                 </mediaobject> 
-               </screenshot> 
-             </figure>
-             <!-- ==== End of Figure ==== -->
-
-             <para>The number of copies of the label can be selected by
-                choosing the number of full sheets to print, or a specific
-                subset of labels on a single sheet.</para>
-
-             <para>The mini-preview can also be used to graphically select
-                the subset of labels by clicking the first label on the
-                mini-preview and dragging to the last label.</para>
-
-           </listitem>
-         </varlistentry>
-
-         <varlistentry>
-            <term><guilabel>Print control (Merge)</guilabel></term>
-           <listitem> 
-
-             <para>For labels or cards using the document merge (also known
-                as "mail merge") capability, the <guilabel>labels</guilabel> tabbed section contains
-                the following merge controls instead of copy controls.</para>
-
-             <!-- ==== Figure ==== -->
-             <figure id="print-merge-fig"> 
-               <title>Print Document Merge Controls</title> 
-               <screenshot> 
-                 <mediaobject> 
-                   <imageobject><imagedata fileref="figures/print-merge.png" format="PNG"/> 
-                   </imageobject>
-                 </mediaobject> 
-               </screenshot> 
-             </figure>
-             <!-- ==== End of Figure ==== -->
-
-             <para>The total number of labels or cards printed is the
-                product of the number of records in the merge source and
-                the number of copies selected.  If multiple copies are
-                selected, these can be either collated (copies of the
-                same record grouped together) or un-collated (one copy
-                each record is printed before next copy).</para>
-
-             <para>Printing can begin on any label on the first sheet.
-                This can be selected with the <guilabel>Start on
-                label</guilabel> spinbutton.</para>
-
-             <para>The mini-preview can also be used to graphically select
-                this first label, by clicking on the desired label in the
-                mini-preview.</para>
-
-           </listitem>
-         </varlistentry>
-
-         <varlistentry> <term><guilabel>Opciones</guilabel> </term> 
-           <listitem> 
-             <para>The following options can also be selected.</para>
-             <itemizedlist>
-               <listitem>
-                 <para><guilabel>print outlines</guilabel></para>
-                 <para>Print outlines of labels.  This option is useful for
-                    dry-runs, to test printer alignment.</para>
-               </listitem>
-               <listitem>
-                 <para><guilabel>print in reverse</guilabel></para>
-                 <para>Prints the labels as mirror images.  This option is
-                    useful for printing on clear labels that will be viewed
-                    from the reverse side (e.g. in a car window).</para>
-               </listitem>
-               <listitem>
-                 <para><guilabel>print crop marks</guilabel></para>
-                 <para>Prints crop marks along the edge of the sheet.
-                    This option is useful for printing on blank stock, to
-                    be cut after printing.  This option does not work well
-                    with all templates.</para>
-               </listitem>
-             </itemizedlist>
-           </listitem>
-         </varlistentry>
-       </variablelist>
-      </sect3>
-               
-    </sect2>
-
-<!-- ============= To Create New Objects ========= -->
-    <sect2 id="glabels-new-objects"> 
-      <title>To Create New Objects</title>
-
-      <para>Objects are created by choosing the appropriate selection under
-        the <menuchoice> <guimenu>Objects</guimenu>
-        <guimenuitem>Create Object</guimenuitem> </menuchoice> submenu or
-        the <guilabel>Drawing Toolbar</guilabel>.  This will place the
-        display area into object creation mode as indicated by its cursor.
-        To return to the default object selection mode without creating
-        an object, choose <menuchoice> <guimenu>Objects</guimenu>
-        <guimenuitem>Select Mode</guimenuitem> </menuchoice>.  This will
-        return the display area's cursor to the default selection arrow.</para>
-
-      <para>The following describes the object creation mode for each object
-        type:</para>
-
-      <variablelist>
-
-       <varlistentry>
-         <term>Texto</term>
-         <listitem>
-           <para>Click the desired location of the upper left corner of the
-              text object.  New text objects are initialized with the
-              string "Text."  To change this text, or other properties, see
-              <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Caja</term>
-         <listitem>
-           <para>Click the desired location of the upper left corner of the
-              box object and drag to the desired location of the lower right
-              corner.  If you simply click in a single location, a square
-              box will be created. To change properties of the box object, see
-              <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Línea</term>
-         <listitem>
-           <para>Click the desired location of one end of the
-              line object and drag to the desired location of the other end.
-              If you simply click in a single location, a diagonal line
-              will be created. To change properties of the line object, see
-              <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Elipse</term>
-         <listitem>
-           <para>Click the desired location of the upper left corner of the
-              ellipse object and drag to the desired location of the lower
-              right corner.  If you simply click in a single location, a circle
-              will be created. To change properties of the ellipse object, see
-              <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Imagen</term>
-         <listitem>
-           <para>Click the desired location of the upper left corner of the
-              image object and drag to the desired location of the lower
-              right corner.  If you simply click in a single location, a square
-              will be created.  New image objects are initialized with a
-              simple checkerboard image.  To change this image, or other
-              properties of the image object, see
-              <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Barcode</term>
-         <listitem>
-           <para>Click the desired location of the upper left corner of the
-              barcode object.  New barcode objects are initialized to a
-              POSTNET barcode with representative data.  To change data
-              and properties of the barcode object, see
-              <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-
-
-    </sect2>
-
-<!-- ============= To Select Objects ========= -->
-    <sect2 id="glabels-select-objects"> 
-      <title>To Select Objects</title>
-
-      <para>A prerequisite for performing operations on objects is the
-        selection of individual objects or groups of objects.  The
-        display area must be in the object selection mode to create new
-        selections, as indicated by an arrow cursor.  The object
-        selection mode is selected by the
-        <menuchoice> <guimenu>Objects</guimenu>
-        <guimenuitem>Select Mode</guimenuitem> </menuchoice> menu item,
-        or the corresponding command on the <guilabel>Drawing
-        Toolbar</guilabel>.</para>
-
-      <variablelist>
-
-       <varlistentry>
-         <term>Selecting a single object</term>
-         <listitem>
-           <para>A single object can be selected simply by clicking
-             on the desired object in the display area.
-             Once selected the object will be highlighted with a set of
-             resizing handles.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Aggregate object selections</term>
-         <listitem>
-           <para>Multiple objects can be selected by first selecting the first
-              object as above and then by holding the <keycap>Ctrl</keycap>
-              key while selecting additional objects.
-              Individual objects can be added to an existing selection
-              at any time by holding the <keycap>Ctrl</keycap> key while
-              selecting the desired objects.  All objects can also be
-              selected by using the <menuchoice> <guimenu>Edit</guimenu>
-              <guimenuitem>Select All</guimenuitem> </menuchoice>
-              menu item.  All objects in an aggregate object selection will be
-              highlighted.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Area selections</term>
-         <listitem>
-           <para>Multiple objects can also be selected by clicking an empty
-              area and dragging to form a rectangular area.  When released,
-              all objects contained in the area will form an aggregate
-              selection.  An area selection can be used to add to an existing
-              selection by holding the <keycap>Ctrl</keycap> key while
-              performing the selection.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Unselecting objects</term>
-         <listitem>
-           <para>Individual objects can be removed from an existing
-              selection by holding the <keycap>Ctrl</keycap> key while
-              clicking on a previously selected object.  An entire selection
-              can be dismissed by using the <menuchoice>
-             <guimenu>Edit</guimenu> <guimenuitem>Un-select All</guimenuitem>
-              </menuchoice> menu item
-              or by simply clicking any empty space in the display area.
-              Once an object is unselected its highlight is removed.</para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-
-    </sect2>
-
-<!-- ============= Clipboard Commands ========= -->
-    <sect2 id="glabels-clipboard"> 
-      <title>Clipboard Commands</title>
-
-      <para>Object selections can be manipulated using the standard clipboard
-        operations <guimenuitem>Cut</guimenuitem>,
-        <guimenuitem>Copy</guimenuitem>, <guimenuitem>Paste</guimenuitem>,
-        and <guimenuitem>Delete</guimenuitem>.</para>
-
-      <variablelist>
-
-       <varlistentry>
-         <term>
-            <menuchoice>
-             <shortcut>
-               <keycombo><keycap>Ctrl</keycap><keycap>X</keycap></keycombo>
-             </shortcut>
-             <guimenuitem>Cortar</guimenuitem>
-           </menuchoice>
-          </term>
-         <listitem>
-           <para>Moves selected objects to the clipboard.  The objects are
-              then available for pasting back into the current document or
-              another document.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>
-            <menuchoice>
-             <shortcut>
-               <keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo>
-             </shortcut>
-             <guimenuitem>Copiar</guimenuitem>
-           </menuchoice>
-          </term>
-         <listitem>
-           <para>Copies selected objects to the clipboard without deleting
-              them.  The objects are then available for pasting back into
-              the current document or another document.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>
-            <menuchoice>
-             <shortcut>
-               <keycombo><keycap>Ctrl</keycap><keycap>V</keycap></keycombo>
-             </shortcut>
-             <guimenuitem>Pegar</guimenuitem>
-           </menuchoice>
-          </term>
-         <listitem>
-           <para>Pastes objects from the clipboard into the current document.
-              <application>gLabels</application> can only paste objects from
-              another <application>gLabels</application> document.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>
-            <menuchoice>
-             <shortcut>
-               <keycap>Borrar</keycap>
-             </shortcut>
-             <guimenuitem>Borrar</guimenuitem>
-           </menuchoice>
-          </term>
-         <listitem>
-           <para>Deletes selected objects without placing them on the
-              clipboard.</para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-
-    </sect2>
-
-<!-- ============= To Edit object Properties ========= -->
-    <sect2 id="glabels-object-properties"> 
-      <title>To Edit Object Properties</title>
-
-      <para>Most object properties can be modified through the object
-        editor sidebar, illustrated below.  To use the object editor,
-        a single object must first be selected.  See
-        <xref linkend="glabels-select-objects"/>.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="object-editor-sidebar-fig"> 
-       <title>Object Editor Sidebar</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/object-editor-sidebar.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>The object editor will contain a subset of the following
-        tabbed sections, depending on object type:</para>
-
-      <sect3 id="object-editor-text">
-       <title>Text Tabbed Section (Text objects)</title>
-
-       <para>This section contains a small editor for changing the content
-          of a text object.  It also contains a dropdown menu of available
-          document merge keys, that can be inserted into text.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-image">
-       <title>Image Tabbed Section (Image objecs)</title>
-
-       <para>This section contains a file entry with preview to select
-          image files.  The browse button can be used to easily locate
-          image files.  Alternatively, a document merge key can be used
-          instead to provide a filename at print time.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-data">
-       <title>Data Tabbed Section (Barcode objecs)</title>
-
-       <para>This section contains a text entry to enter literal barcode
-          data. Alternatively, a document merge key can be used to
-          provide this data at print time.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-style">
-       <title>Style Tabbed Section (Text objects)</title>
-
-       <para>This section contains controls to select text properties,
-          including font family, font size, font weight, color, and
-          text justification.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-barcode">
-       <title>Style Tabbed Section (Barcode objecs)</title>
-
-       <para>This section contains controls to select barcode properties,
-          including barcode style, color, whether to print text, and whether
-          to include a checksum digit.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-line">
-       <title>Line Tabbed Section</title>
-
-       <para>This section contains controls to select properties of lines
-          and outlines.  These properties include line width and color.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-fill">
-       <title>Fill Tabbed Section</title>
-
-       <para>This section contains controls to select fill properties of box
-          and ellipse objects.  Currently the only fill property is fill
-          color.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-size">
-       <title>Size Tabbed Section (All except line objects)</title>
-
-       <para>This section contains controls to select the width and height
-          of an object.  A checkbox is provided, so that the current aspect
-          ratio can be locked while manipulating the width and height controls.
-          Image objects also provide a button to reset the size to the
-          image's natural size (Assumes 72DPI).</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-size-line">
-       <title>Size Tabbed Section (Line objects)</title>
-
-       <para>This section contains controls to select the length and angle
-          of a line object.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-position">
-       <title>Position Tabbed Section</title>
-
-       <para>This section contains controls to change the position of an
-          object.</para>
-
-      </sect3>
-
-
-      <sect3 id="object-editor-shadow">
-       <title>Shadow Tabbed Section (All except image and barcode objects)</title>
-
-       <para>This section contains controls to add a shadow to an object.</para>
-
-      </sect3>
-
-
-    </sect2>
-
-<!-- ============= Other Manipulations of Objects ========= -->
-    <sect2 id="glabels-object-manipulation"> 
-      <title>Other Manipulations of Objects</title>
-
-      <para>Objects can also be manipulated in the following ways.</para>
-
-      <sect3 id="other-moving-resizing">
-       <title>Moving and Resizing Objects</title>
-
-       <para>Objects can be moved by simply clicking on a selected
-          object and dragging the object to its new location.  If the object
-          is part of an aggregate selection, all objects in the selection
-          will move with the object being dragged, maintaining their relative
-          positions to one another.  If no object is selected, clicking on
-          an object will create a new selection containing that object.
-          See <xref linkend="glabels-select-objects"/>.</para>
-
-       <para>A selected object can be resized by clicking one of its resize
-          handle and dragging it to obtain the new size.</para>
-
-      </sect3>
-
-      <sect3 id="other-stacking-order">
-       <title>Changing Stacking Order</title>
-
-       <para>Stacking order refers to relative position in the z-axis of
-          objects.  That is when objects overlap, which object will appear
-          on top of the other.  By default, newer objects will appear above
-          older objects.  To change this order, select one or more objects
-          and choose <menuchoice> <guimenu>Objects</guimenu>
-          <guimenuitem>Order</guimenuitem>
-          <guimenuitem>Bring to Front</guimenuitem> </menuchoice>
-          to raise the selection to the top of the stacking
-          order, or choose <menuchoice> <guimenu>Objects</guimenu>
-          <guimenuitem>Order</guimenuitem>
-          <guimenuitem>Send to Back</guimenuitem> </menuchoice>
-          to lower the selection to the bottom of the
-          stacking order.  These menuitems are also available by right-clicking
-          the display area when there is a non-empty selection.</para>
-
-      </sect3>
-
-      <sect3 id="other-rotating-flipping">
-       <title>Rotating and Flipping Objects</title>
-
-       <para>Objects can be rotated 90 degrees in either direction, or flipped
-          horizontally or vertically, by choosing the appropriate menuitem
-          in the  <menuchoice> <guimenu>Objects</guimenu>
-          <guimenuitem>Rotate/Flip</guimenuitem> </menuchoice> sub-menu.  These
-          menuitems are also available by right-clicking
-          the display area when there is a non-empty selection.</para>
-
-      </sect3>
-
-      <sect3 id="other-alignment">
-       <title>Aligning Objects</title>
-
-       <para>Objects can be aligned horizontally or vertically, relative to
-          one another, or relative to the center line of the label, by
-          choosing the appropriate menuitem from the  <menuchoice>
-          <guimenu>Objects</guimenu>
-          <guimenuitem>Align Horizontal</guimenuitem>
-          </menuchoice> or  <menuchoice> <guimenu>Objects</guimenu>
-          <guimenuitem>Align Horizontal</guimenuitem> </menuchoice> sub-menus.
-          These menuitems are also available by right-clicking
-          the display area when there is a non-empty selection.</para>
-
-      </sect3>
-
-      <sect3 id="other-property-bar">
-       <title>Using the Property Bar</title>
-
-       <para>The property bar can be used to change some common properties
-          of objects en-masse.  These properties include font family, font
-          size, font weight, text alignment, text color, fill color, line
-          or outline color, and line width.  The property bar also controls
-          the defaults for these properties for any newly created objects.
-          </para>
-
-      </sect3>
-
-
-
-    </sect2>
-
-<!-- ============= Document Merge Features ========= -->
-    <sect2 id="glabels-merge"> 
-      <title>Performing a Document Merge</title>
-
-      <para>Document Merge (sometimes called "Mail Merge") is a powerful
-        feature that allows a unique label or card to be printed for each
-        record in an external data source.</para>
-
-      <para>The first step to performing a document merge is to prepare
-        a source document that contains your merge data.  This data could
-        be mailing addresses or any other data that you wish to create
-        unique labels or cards for.  Currently back-ends only exist for
-        text files and the evolution data server -- others are planned.  The currently
-        supported text-file format is very simple:  each line is a record;
-        fields are delimited by commas (CSV), tabs, or colons; and newlines
-        can be embedded into fields by using the "\n" entity.  This file
-        could be created using any text editor or could be created by
-        another program or script.  A common way of creating CSV files is
-       to export them from a spreadsheet program.</para>
-
-      <para>A label must then be configured to "point at" this data file.
-        To configure the merge properties of a document, choose
-        <menuchoice> <guimenu>Objects</guimenu>
-        <guimenuitem>Merge Properties</guimenuitem> </menuchoice> menu item
-        to display the <guilabel>merge properties</guilabel> dialog.  This
-        dialog is used to select the exact data file format and file
-        name (location) of the merge data.</para>
-
-      <para>Finally, once the label has been configured for a data file,
-        field keys can be inserted into text objects and used as source
-        or data for barcode objects and image filenames for image objects.
-        See <xref linkend="glabels-object-properties"/> for more information
-        on using merge data for these object types.</para>
-
-      <para>Now that your label is configured, <application>gLabels</application> will print a unique
-        label for each record in your source document -- substituting fields
-        from each record for field keys in the all text, barcode, and
-        image objects.</para>
-
-      <para>See <xref linkend="glabels-merge-tutorial"/> for a detailed
-        tutorial on the document merge feature.</para>
-
-
-    </sect2>
-
-
-  </sect1>
-
-
-
-
-  <!-- ============= Customization ============================= -->
-  <!-- Use this section to describe how to customize the application. -->
-  <sect1 id="glabels-prefs"> 
-    <title>Configuración</title> 
-    <para>To configure <application>gLabels</application>, choose 
-      <menuchoice> 
-       <guimenu>Settings</guimenu> 
-       <guimenuitem>Preferences</guimenuitem> 
-      </menuchoice>. The 
-      <guilabel>Preferences</guilabel> dialog contains the following tabbed
-      sections:</para> 
-    <itemizedlist> 
-      <listitem> 
-       <para> 
-         <xref linkend="glabels-prefs-locale"/></para> 
-      </listitem> 
-      <listitem> 
-       <para> 
-         <xref linkend="glabels-prefs-object-defaults"/></para> 
-      </listitem> 
-    </itemizedlist>
-<!-- =============== Customization Subsection ================ -->
-<!-- Use a new section to describe different tabbed sections on the Settings or Preferences
-            dialog. -->
-    <sect2 id="glabels-prefs-locale"> 
-      <title>Región</title> 
-      <variablelist> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Unidades</guilabel> </term> 
-         <listitem> 
-           <para>Use this radio button group to specify your preferred units.
-              Select one of the following options:</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>Puntos</guilabel> </para> 
-               <para>Use points (1 point = 1/72 in = 0.352778 mm).</para> 
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Pulgadas</guilabel> </para> 
-               <para>Use inches.</para>
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Milímetros</guilabel> </para> 
-               <para>Use millimeters.</para>
-             </listitem> 
-           </itemizedlist> 
-           <para>Default: 
-             <guilabel>Inches</guilabel>.</para> 
-         </listitem> 
-       </varlistentry> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Default page size</guilabel> </term> 
-         <listitem> 
-           <para>Use this radio button group to specify your preferred page size.
-              This will make it quicker for you to locate media types when creating a new
-              label or card.</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>US Letter</guilabel> </para> 
-               <para>Most of your media will be of the US Letter page size (8.5 x 11 inches).</para> 
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>ISO A4</guilabel> </para> 
-               <para>Most of your media will be of the ISO A4 page size (210 x 297 mm).</para>
-             </listitem> 
-           </itemizedlist> 
-           <para>Default: 
-             <guilabel>US Letter</guilabel>.</para> 
-         </listitem> 
-       </varlistentry> 
-      </variablelist> 
-    </sect2>
-    <!-- ============= Customization Subsection ===================== -->
-    <!-- Another tabbed section on the Preferences dialog. -->
-    <sect2 id="glabels-prefs-object-defaults"> 
-      <title>Opciones predeterminadas para el objeto</title> 
-      <variablelist> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Texto</guilabel> </term> 
-         <listitem> 
-           <para>Use these controls to set the default properties of new text objects.
-              These properties are</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>Tipografía</guilabel> </para> 
-               <para>These controls are used to select font family and font size, and
-                  whether the font should bold or in italics.</para> 
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Color</guilabel> </para> 
-               <para>This control selects the default text color.</para>
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Alineación</guilabel> </para> 
-               <para>These controls are used to select the default text alignment (left, center or right).</para>
-             </listitem> 
-           </itemizedlist> 
-         </listitem> 
-       </varlistentry> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Línea</guilabel> </term> 
-         <listitem> 
-           <para>Use these controls to set the default properties of lines and outlines of
-              new objects.  These properties are</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>Anchura</guilabel> </para> 
-               <para>This control selects the default line width.</para>
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Color</guilabel> </para> 
-               <para>This control selects the default line color.</para>
-             </listitem> 
-           </itemizedlist> 
-         </listitem> 
-       </varlistentry> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Relleno</guilabel> </term> 
-         <listitem> 
-           <para>Use these controls to set the default fill properties of
-              new objects.  These properties are</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>Color</guilabel> </para> 
-               <para>This control selects the default fill color.</para>
-             </listitem> 
-           </itemizedlist> 
-         </listitem> 
-       </varlistentry> 
-      </variablelist> 
-    </sect2> 
-  </sect1>
-
-
-
-
-<!-- ============= Document Merge Tutorial ================================== -->
-  <sect1 id="glabels-merge-tutorial"> 
-    <title>Document Merge Tutorial</title>
-
-    <para>Document Merge (sometimes called "Mail Merge") is a powerful
-      feature that allows a unique label or card to be printed for each
-      record in an external data source.  It is however, the most mis-understood
-      feature of <application>gLabels</application>.  The following examples
-      will step through a couple of common tasks using the document merge
-      feature.</para>
-
-    <sect2 id="merge-ex1">
-      <title>Example 1: Name Tags Using a CSV File</title>
-  
-      <para>In this example we are organizing an orientation party for the new
-        crew members of our ship.  We have a list of freshman crew members that we
-        created in <application>gnumeric</application> and exported as the following
-        CSV file.  We could have created this file by using a text editor, but heck it
-        is the 23rd century.</para>
-
-      <programlisting>
-Name,Department,SN
-"Jim Kirk",Management,"SC937-0176 CEC"
-"Mr. Spock",Sciences,S179-276SP
-"Leonard McCoy",Medicine,unknown
-"Montgomery Scott",Engineering,SE-197-54T
-      </programlisting>
-
-      <para>In <application>gLabels</application> we have created a new <application>gLabels</application>
-        document using the Avery 5395 "Name Badge Labels" template.  Next we use the
-        <menuchoice> <guimenu>Objects</guimenu>
-        <guimenuitem>Merge Properties</guimenuitem> </menuchoice> menu item to display
-        the <guilabel>merge properties</guilabel> dialog.  We use this dialog to
-        select the source type (in our case CSV) and the merge source (filename) as
-        shown.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex1-1-fig"> 
-       <title>Merge properties dialog</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex1-1.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Before applying the merge source, we uncheck the first record since it is only
-        column headers from our original <application>gnumeric</application> spreadsheet
-        and would simply waste our first label.  We could also unselect any other records
-        that we didn't want to print a label for.</para>
-
-      <para>We can also view each record in more detail by clicking on the appropriate
-        expander (the little triangles) as shown.  Once we are satisfied with the
-        selections in this dialog we click <guibutton>OK</guibutton> to accept the
-        changes.</para>
-
-      <para>Now we start adding objects to our <application>gLabels</application> document as shown.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex1-2-fig"> 
-       <title>Adding objects</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex1-2.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>In this example we have added three text objects and a barcode object.  The
-        first text object contains only simple literal text ("Hello, my name is").  The
-        second text object contains a single merge field ("${1}") corresponding to the
-        first field of a record (first column of a line) which contains the new crew
-        member's full name.  The third text field contains both literal text
-        ("Department: ") followed by a single merge field ("${2}") corresponding to
-        the second field or the crew member's department.  The barcode object is
-        configured to use field (or key) "3" which contains our crew member's
-        starfleet serial number.</para>
-
-      <para>Now we can print our name tags by selecting the
-        <menuchoice> <guimenu>File</guimenu>
-        <guimenuitem>Print</guimenuitem> </menuchoice> menu item.  This will display
-        print dialog as shown below.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex1-3-fig"> 
-       <title>Printing name tags</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex1-3.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Just to make sure our labels are going to look okay, we select the
-        <guilabel>Print outlines</guilabel> option and click
-        <guibutton>Print Preview</guibutton>.  This will display a print preview dialog
-        as shown below.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex1-4-fig"> 
-       <title>Name tags preview</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex1-4.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Everything looks good, so we can now load up our printer with
-        the appropriate label stock, print our name tags and start beaming our guests
-        aboard.</para>
-
-    </sect2>
-
-    <sect2 id="merge-ex2">
-      <title>Example 2: Address Labels Using a CSV File</title>
-  
-      <para>In this example we are going to throw a party and need to print mailing
-        address labels for our invitations.  We have a list of our closest friends
-        that we created in <application>gnumeric</application> and exported as the
-        following CSV file.  It should be noted that not everyone has a middle initial or
-        a two line address.</para>
-
-      <programlisting>
-LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP
-,,,,,,,
-Critter,Ess,S,"123 Faux St.",,Alexandria,VA,22310
-Doe,John,,"Apt 1X","451 Mystery St.",Trenton,NJ,08601
-Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037
-McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813
-Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207
-      </programlisting>
-
-      <para>In <application>gLabels</application> we have created a new <application>gLabels</application>
-        document using the Avery 5512 "Address Labels" template.  Next we use the
-        <menuchoice> <guimenu>Objects</guimenu>
-        <guimenuitem>Merge Properties</guimenuitem> </menuchoice> menu item to display
-        the <guilabel>merge properties</guilabel> dialog.  We use this dialog to
-        select the source type (in our case CSV) and the merge source (filename) as
-        shown.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex2-1-fig"> 
-       <title>Merge properties dialog</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex2-1.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Before applying the merge source, we uncheck the first record since it is only
-        column headers from our original <application>gnumeric</application> spreadsheet
-        and would simply waste our first label.  We also unselect the second record
-        which is empty (an artifact of our original spreadsheet).  We could also unselect
-        any other records that we didn't want to print a label for.</para>
-
-      <para>We can also view each record in more detail by clicking on the appropriate
-        expander (the little triangles) as shown.  Once we are satisfied with the
-        selections in this dialog we click <guibutton>OK</guibutton> to accept the
-        changes.</para>
-
-      <para>Now we start adding objects to our <application>gLabels</application> document as shown.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex2-2-fig"> 
-       <title>Adding objects</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex2-2.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>In this example we have a single text object.  This text object contains
-        all of our merge fields organized on multiple lines as a mailing address.
-        Notice that fields ${4} and ${5} (corresponding to ADDR1 and ADDR2) are each
-        located with no other text on their own lines.  When
-        <application>gLabels</application> encounters a field as the only text on
-        a line, it will not expand the line if the field is empty.</para>
-
-      <para>Now we can print our address labels by selecting the
-        <menuchoice> <guimenu>File</guimenu>
-        <guimenuitem>Print</guimenuitem> </menuchoice> menu item.  This will display
-        print dialog as shown below.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex2-3-fig"> 
-       <title>Printing address labels</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex2-3.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Just to make sure our labels are going to look okay, we select the
-        <guilabel>Print outlines</guilabel> option and click
-        <guibutton>Print Preview</guibutton>.  This will display a print preview dialog
-        as shown below.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex2-4-fig"> 
-       <title>Address labels preview</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex2-4.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Everything looks good, so we can now load up our printer with
-        the appropriate label stock, print our address labels and start mailing
-        our party invitations.</para>
-
-    </sect2>
-
-<sect2 id="merge-ex3">
-      <title>Example 3: Address Labels Using the <application>Evolution</application> Addressbook</title>
-  
-      <para>Our last party was a great success, and now we need to print mailing
-        address labels for the invitations to a new one. To simplify this, we can use
-       the <application>Evolution</application> addressbook, because the address
-       data of all our friends is stored there.</para>
-
-      <note>
-       <para>Depending on how your copy of <application>gLabels</application> was packaged, this option could be unavailable.
-         Support for the <application>Evolution</application> addressbook will only be available
-         if the <application>evolution-data-server</application> and its development files
-         were present when <application>gLabels</application> was built. Please keep this in mind if you build <application>gLabels</application>
-         directly from source.</para>
-       
-       <para>If the <application>gLabels</application> package from your distribution lacks this support,
-         you may wish to contact the package maintainer or file a bug against the package
-         to request it.</para>
-      </note>
-
-      <para>In <application>glabels</application> we have created a new <application>gLabels</application>
-        document using the Avery 5512 "Address Labels" template. Next we use the
-        <menuchoice> <guimenu>Objects</guimenu>
-        <guimenuitem>Merge Properties</guimenuitem></menuchoice> menu item to display
-        the <guilabel>Merge properties</guilabel> dialog. We use this dialog to
-        select the source type (in our case <guilabel>Data from default Evolution
-       addressbook</guilabel>) as shown.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex3-1-fig"> 
-       <title>Merge properties dialog</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex3-1.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Once we have chosen <guilabel>Data from default Evolution addressbook
-       </guilabel> as our merge source, we will get a full list of its content. Initially,
-       all entries are checked. Assuming we were planning a really big party, we could
-       leave this selection untouched (but let's keep our budget in mind). We will now select or
-       unselect certain entries by clicking on the appropriate checkboxes, or we could use
-       the <guibutton>Select all</guibutton> and <guibutton>Unselect all
-       </guibutton> buttons to activate or deactivate all entries in the address book.</para>
-      <para>We can also view each entry in more detail by clicking on the appropriate
-        expander (the little triangles) as shown. Once we are satisfied with the
-        selections in this dialog, we will click the <guibutton>OK</guibutton> button to
-       accept the changes.</para>
-
-      <para>Now we start adding objects to our glabels document as shown.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex3-2-fig"> 
-       <title>Adding objects</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex3-2.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>In this example we have a single text object again. This text object contains
-        all of our merge fields organized on multiple lines as a mailing address.</para>
-
-      <para>Now we can print our address labels by selecting the
-        <menuchoice> <guimenu>File</guimenu>
-        <guimenuitem>Print</guimenuitem> </menuchoice> menu item. This will display
-        the print dialog as shown below.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex3-3-fig"> 
-       <title>Printing address labels</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex2-3.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Just to make sure our labels are going to look okay, we select the
-        <guilabel>Print outlines</guilabel> option and click
-        <guibutton>Print Preview</guibutton>. This will display a print preview dialog
-        as shown below.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex3-4-fig"> 
-       <title>Address labels preview</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex2-4.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Everything looks good, so we can now load up our printer with
-        the appropriate label stock, print our address labels and start mailing
-        our party invitations.</para>
-
-    </sect2>
-
-  </sect1>
-
-
-
-
-<!-- ============= Creating templates ================================== -->
-  <sect1 id="glabels-manual-create-template"> 
-    <title>Manually Creating New Templates</title> 
-
-    <para>Predefined templates are defined by XML files located in
-      <filename>${prefix}/share/glabels/</filename>,
-      where <filename>${prefix}</filename> is usually something like
-      <filename>/usr/local</filename> or <filename>/usr</filename> depending
-      on the configuration option <filename>prefix</filename>.  <application>gLabels</application> will
-      use all files of the form <filename>*-templates.xml</filename>
-      or <filename>*.template</filename>, that it finds in
-      <filename>${prefix}/share/glabels/</filename> and
-      <filename>${HOME}/.glabels/</filename>.
-      Additional templates can be added by creating additional
-      <filename>*.template</filename> files in either of these directories.
-      </para>
-
-    <para>The format for these files is defined in the DTD:
-      <ulink url="http://glabels.sourceforge.net/doc/glabels-2.0.dtd.txt" type="http">glabels-2.2.dtd</ulink>. (This DTD also describes other
-       XML formats used by <application>gLabels</application>.)</para>
-
-    <sect2 id="template-assumptions">
-      <title>Assumptions/caveats</title>
-      <itemizedlist>
-       <listitem>
-         <para>A sheet contains only one size of label or card (if a sheet
-            contains more than one size of item, it can be split into
-             multiple templates for multiple pass printing)</para>
-       </listitem>
-       <listitem>
-         <para>Distances can be expressed in units of <emphasis>pt</emphasis>,
-            <emphasis>in</emphasis>, <emphasis>mm</emphasis>,
-            <emphasis>cm</emphasis>, or <emphasis>pc</emphasis>.  For example:
-            "<literal>1.0in</literal>" or "<literal>2.54cm</literal>".  If no
-            units are specified, computer points (<emphasis>pt</emphasis>) will
-            be assumed (1 <emphasis>pt</emphasis> =
-            1/72 <emphasis>in</emphasis> = 0.352778 <emphasis>mm</emphasis>).
-            </para>
-       </listitem>
-      </itemizedlist>
-    </sect2>
-
-    <sect2 id="template-file">
-      <title>Template Files</title>
-
-      <programlisting>
-&lt;?xml version="1.0"?&gt;
-&lt;Glabels-templates&gt;
-
-   <replaceable>...templates...</replaceable>
-
-&lt;/Glabels-templates&gt;
-      </programlisting>
-    </sect2>
-
-
-    <sect2 id="template-example">
-      <title>Example Template</title>
-      <programlisting>
-  &lt;Template brand="Avery" part="8160" size="US-Letter" description="Mailing Labels"&gt;
-    &lt;Label-rectangle id="0" width="189pt" height="72pt" round="5pt"&gt;
-      &lt;Markup-margin size="5pt"/&gt;
-      &lt;Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/&gt;
-    &lt;/Label-rectangle&gt;
-    &lt;Alias brand="Avery" part="5160"/&gt;
-    &lt;Alias brand="Avery" part="6233"/&gt;
-  &lt;/Template&gt;
-      </programlisting>
-    </sect2>
-
-    <sect2 id="template-template-node">
-      <title>Template Node</title>
-
-      <para>A <emphasis>Template</emphasis> node describes a single stationary
-        product.  It must contain one instance of any type of Label node
-        (<emphasis>Label-rectangle</emphasis>,
-        <emphasis>Label-round</emphasis>, or <emphasis>Label-cd</emphasis>).
-        This node can be followed by zero or more 
-        <emphasis>Alias</emphasis> nodes.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Propiedad</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Descripción</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>brand</para></entry>
-             <entry>
-                <para>Brand or manufacturer of stationary product.
-                  E.g. "Avery"</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>part</para></entry>
-             <entry>
-                <para>Part number or name of stationary product.
-                  E.g. "8160"</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>tamaño</para></entry>
-             <entry>
-                <para>Size of sheet.  E.g., "US-Letter," "A4", ...</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>descripción</para></entry>
-             <entry>
-                <para>Description of stationary product.  E.g,
-                   "Mailing Labels."</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>_description</para></entry>
-             <entry>
-                <para>Translatable description of stationary product.
-                  E.g, "Mailing Labels." (Only useful for predefined
-                  templates)</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>anchura</para></entry>
-             <entry>
-                <para>Page width.  Only valid if size="Other"</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>altura</para></entry>
-             <entry>
-                <para>Page height.  Only valid if size="Other"</para>
-               </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-label-rectangle-node">
-      <title>Label-rectangle Node</title>
-
-      <para>A <emphasis>Label-rectangle</emphasis> node describes the
-        dimensions of a single label or business card that is rectangular
-        in shape (may have rounded edges).</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Propiedad</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Descripción</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>id</para></entry>
-             <entry>
-                <para>Reserved for future use.  Should always be 0.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>anchura</para></entry>
-             <entry><para>Width of label/card</para></entry>
-            </row>
-           <row valign="top">
-             <entry><para>altura</para></entry>
-             <entry><para>Height of label/card</para></entry>
-           </row>
-           <row valign="top">
-             <entry><para>redondo</para></entry>
-             <entry>
-                <para>Radius of corners.  For items with square edges
-                  (business cards), the radius should be 0.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>x_waste</para></entry>
-             <entry>
-                <para>Amount of horizontal waste (over-print) to allow.  This is useful
-                  for minimizing alignment problems when using non-white
-                  backgrounds (e.g. images).</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y_waste</para></entry>
-             <entry>
-                <para>Amount of vertical waste (over-print) to allow.  This is useful
-                  for minimizing alignment problems when using non-white
-                  backgrounds (e.g. images).</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-      <!-- ==== Figure ==== -->
-      <figure id="template-label-fig"> 
-       <title>Label-rectangle Parameters</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/glabels-template-label.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-    </sect2>
-
-    <sect2 id="template-label-round-node">
-      <title>Label-round Node</title>
-
-      <para>A <emphasis>Label-round</emphasis> node describes the dimensions
-        of a simple round label (not a CD).</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Propiedad</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Descripción</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>id</para></entry>
-             <entry>
-                <para>Reserved for future use.  Should always be 0.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>radius</para></entry>
-             <entry><para>Radius (1/2 diameter) of label</para></entry>
-            </row>
-           <row valign="top">
-             <entry><para>basura</para></entry>
-             <entry>
-                <para>Amount of waste (over-print) to allow.  This is useful
-                  for minimizing alignment problems when using non-white
-                  backgrounds (e.g. images).</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-label-cd-node">
-      <title>Label-cd Node</title>
-
-      <para>A <emphasis>Label-cd</emphasis> node describes the dimensions
-        of a CD, DVD, or business card CD.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Propiedad</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Descripción</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>id</para></entry>
-             <entry>
-                <para>Reserved for future use.  Should always be 0.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>radius</para></entry>
-             <entry><para>Outer radius of label</para></entry>
-           </row>
-           <row valign="top">
-             <entry><para>hole</para></entry>
-             <entry><para>Radius of concentric hole</para></entry>
-           </row>
-           <row valign="top">
-             <entry><para>anchura</para></entry>
-             <entry>
-                <para>If present, the label is clipped to the given width.
-                  (Useful for "business card CDs").</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>altura</para></entry>
-             <entry>
-                <para>If present, the label is clipped to the given height.
-                  (Useful for "business card CDs").</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>basura</para></entry>
-             <entry>
-                <para>Amount of waste (over-print) to allow.  This is useful
-                  for minimizing alignment problems when using non-white
-                  backgrounds (e.g. images).</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-      <!-- ==== Figure ==== -->
-      <figure id="template-label-cd-fig"> 
-       <title>CD Label Parameters</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/glabels-template-cd.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-    </sect2>
-
-    <sect2 id="template-markup-margin-node">
-      <title>Markup-margin Node</title>
-
-      <para>A <emphasis>Markup-margin</emphasis> describes a margin along
-        all edges of a label.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Propiedad</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Descripción</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>tamaño</para></entry>
-             <entry>
-                <para>Size of the margin.  I.e. the distance of the margin
-                  line from the edge of the card/label.</para>
-              </entry>
-            </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-markup-line-node">
-      <title>Markup-line Node</title>
-
-      <para>A <emphasis>Markup-line</emphasis> describes a markup line.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Propiedad</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Descripción</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>x1</para></entry>
-             <entry>
-                <para>x coordinate of 1st endpoint of the line segment.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y1</para></entry>
-             <entry>
-                <para>y coordinate of 1st endpoint of the line segment.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>x2</para></entry>
-             <entry>
-                <para>x coordinate of 2nd endpoint of the line segment.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y2</para></entry>
-             <entry>
-                <para>y coordinate of 2nd endpoint of the line segment.</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-markup-circle-node">
-      <title>Markup-circle Node</title>
-
-      <para>A <emphasis>Markup-circle</emphasis> describes a markup circle.
-        </para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Propiedad</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Descripción</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>x0</para></entry>
-             <entry>
-                <para>x coordinate of circle origin (center).</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y0</para></entry>
-             <entry>
-                <para>y coordinate of circle origin (center).</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>radius</para></entry>
-             <entry><para>Radius of circle.</para></entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-markup-rect-node">
-      <title>Markup-rect Node</title>
-
-      <para>A <emphasis>Markup-rect</emphasis> describes a markup rectangle.
-        </para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Propiedad</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Descripción</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>x1</para></entry>
-             <entry>
-                <para>x coordinate of upper left corner of rectangle.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y1</para></entry>
-             <entry>
-                <para>y coordinate of upper left corner of rectangle.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>w</para></entry>
-             <entry>
-                <para>Width of rectangle.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>h</para></entry>
-             <entry>
-                <para>Height of rectangle.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>r</para></entry>
-             <entry><para>Radius of rounded corners of rectangle.</para></entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-layout-node">
-      <title>Layout Node</title>
-
-      <para>A label node may contain multiple <emphasis>Layout</emphasis>
-        children.  If labels are arranged in a simple grid pattern, only
-        one layout is needed.  However, if labels are arranged in multiple
-        grids, such as a running bond pattern, multiple
-        <emphasis>layout</emphasis> tags can be used.  Note: a single label
-        can always be treated as a grid of one.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Propiedad</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Descripción</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>nx</para></entry>
-             <entry>
-                <para>Number of labels/cards across in the grid
-                  (horizontal)</para>
-              </entry>
-            </row>
-           <row valign="top">
-             <entry><para>ny</para></entry>
-             <entry>
-                <para>Number of labels/cards up and down in the grid
-                  (vertical)</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>x0</para></entry>
-             <entry>
-                <para>Distance from left edge of sheet to the left edge of
-                  the left column of cards/labels in the layout.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y0</para></entry>
-             <entry>
-                <para>Distance from the top edge of sheet to the top edge of
-                  the top row of labels/cards in the layout.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>dx</para></entry>
-             <entry><para>Horizontal pitch of grid.</para></entry>
-           </row>
-           <row valign="top">
-             <entry><para>dy</para></entry>
-             <entry><para>Vertical pitch of grid.</para></entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-      <!-- ==== Figure ==== -->
-      <figure id="template-layout-fig"> 
-       <title>Layout Parameters</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/glabels-template-layout.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-    </sect2>
-
-    <sect2 id="template-alias-node">
-      <title>Alias Node</title>
-
-      <para>An <emphasis>Alias</emphasis> node provides the name of a
-        product with the same size and layout characteristics as the
-        parent template.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Propiedad</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Descripción</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>brand</para></entry>
-             <entry>
-                <para>The brand or manufacturer of the equivalent product.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>part</para></entry>
-             <entry>
-                <para>The part number or name of the equivalent product.</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-      </sect2>
-
-  </sect1>
-
-
-
-
-<!-- ============= Bugs ================================== -->
-<!-- This section is optional and is commented out by default. 
-     You can use it to describe known bugs and limitations of the 
-         program if there are any - please be frank and list all
-     problems you know of. 
-  
-  <sect1 id="mayapp-bugs">
-  <title>Known Bugs and Limitations</title>
-  <para> </para>
- </sect1>
--->
-
-
-
-
-<!-- ============= About ================================== -->
-<!-- This section contains info about the program (not docs), such as
-      author's name(s), web page, license, feedback address. This
-      section is optional: primary place for this info is "About.." box of
-      the program. However, if you do wish to include this info in the
-      manual, this is the place to put it. Alternatively, you can put this information in the title page.-->
-  <sect1 id="glabels-about"> 
-    <title>About <application>gLabels</application></title> 
-    <para> <application>gLabels</application> was written by Jim Evins
-      (<email>evins@snaught.com</email>). To find more information about
-      <application>gLabels</application>, please visit the 
-      <ulink url="http://glabels.sourceforge.net" type="http">gLabels Web
-       page</ulink>. </para>
-    <para>
-      To report a bug or make a suggestion regarding this application or
-      this manual, follow the directions at the
-      <ulink url="http://glabels.sourceforge.net/contact/" type="http"><application>gLabels</application> Contact Page</ulink>.
-    </para>
-
-    <para>Este programa se distribuye bajo los términos de la Licencia Pública General GNU tal como la publica la Free Software Foundation; en cualquiera de las versiones 2 de la Licencia o (a su elección) cualquier versión posterior. Puede encontrar una copia de esta licencia en este <ulink url="ghelp:gpl" type="help">enlace</ulink>, o en el archivo COPYING incluido con el código fuente de este programa.</para>
-
-  </sect1> 
-
-
-
-
-
-</article>
diff --git a/help/es/index.page b/help/es/index.page
new file mode 100644 (file)
index 0000000..2a5313f
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="index" xml:lang="es">
+
+  <info>
+    <title type="link">Diseñador de etiquetas y de tarjetas de visita gLabels.</title>
+    <title type="text">Diseñador de etiquetas y de tarjetas de visita gLabels.</title>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Compartir Igual 3.0</p>
+    </license>    
+  </info>
+
+  <title><media type="image" mime="image/png" src="figures/glabels-logo.png">logo de gLabels</media> Manual de gLabels</title>
+
+  <p>La aplicación <app>gLabels</app> es un programa ligero para crear etiquetas y tarjetas de visita para el entorno de escritorio GNOME. Está diseñado para trabajar con varias hojas de etiquetas láser/chorro de tinta que encontrará en la mayoría de las tiendas de suministros de oficina.</p>
+  <p><app>gLabels</app> se puede usar para diseñar etiquetas de dirección, de nombre, de precio, de CD/DVD o para cualquier otra cosa organizada según un patrón regular en una hoja de papel. Las etiquetas (o las tarjetas) pueden contener texto, imágenes, líneas, formas y códigos de barras. <app>gLabels</app> también incluye la característica de combinar documentos, que le permite imprimir una etiqueta única por cada registro de una fuente de datos externa, tal como un archivo CSV o una libreta de direcciones de <app>Evolution</app>.</p>
+
+  <figure>
+    <title>Ventana principal de <app>gLabels</app></title>
+    <desc>Ventana principal de <app>gLabels</app></desc>
+    <media type="image" src="figures/introduction-glabels-main-window.png" mime="image/png" style="right">
+      <p>Ventana principal de <app>gLabels</app>.</p>
+    </media>
+  </figure>
+
+  <section id="usage" style="2column">
+    <title>Uso</title>
+  </section>
+
+  <section id="merging" style="2column">
+    <title>Fusión de documentos</title>
+  </section>
+
+  <section id="advanced" style="2column">
+    <title>Uso avanzado</title>
+  </section>
+
+</page>
diff --git a/help/es/labelprop.page b/help/es/labelprop.page
new file mode 100644 (file)
index 0000000..45a7e84
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="labelprop" xml:lang="es">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Cómo cambiar las propiedades de una etiqueta o de una tarjeta de visita.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Compartir Igual 3.0</p>
+    </license>    
+  </info>
+
+    <title>Cambiar las propiedades de la etiqueta</title>
+
+      <p>Para cambiar el tipo de medio y/o la orientación de una etiqueta, seleccione <guiseq><gui>Archivo</gui><gui>Propiedades</gui></guiseq> para mostrar el diálogo <gui>Propiedades de la etiqueta</gui>. Seleccione el tipo de medio y la orientación nuevas y pulse <gui>Aceptar</gui>.</p>
+
+</page>
diff --git a/help/es/license.page b/help/es/license.page
new file mode 100644 (file)
index 0000000..fa230df
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" type="topic" id="license" xml:lang="es">
+  
+  <info>
+    <link type="seealso" xref="index"/>
+    <revision pkgversion="2.30" version="0.1" date="2009-12-28" status="draft"/>
+    <desc>Información legal.</desc>
+  </info>
+
+  <title>Licencia</title>
+  <p>Este trabajo está distribuido bajo una licencia sin soporte CreativeCommons Compartir-Igual 3.0.</p>
+  <p>Es libre de:</p>
+  <terms>
+    <item>
+      <title><em>Compartir</em></title>
+      <p>Copiar, distribuir y transmitir el trabajo.</p>
+    </item>
+    <item>
+      <title><em>Hacer obras derivadas</em></title>
+      <p>Adaptar el trabajo.</p> 
+    </item>
+  </terms>
+  <p>Bajo las siguientes condiciones:</p>
+  <terms>
+    <item>
+      <title><em>Atribución</em></title>
+      <p>Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra).</p>
+    </item>
+    <item>
+      <title><em>Compartir igual</em></title>
+      <p>Si altera, transforma o amplía esta obra para crear una obra derivada, sólo puede distribuir la obra resultante bajo la misma licencia, una similar o una compatible.</p>
+    </item>
+  </terms>
+  <p>Para ver el texto completo de la licencia consulte la <link href="http://creativecommons.org/licenses/by-sa/3.0/legalcode/">página web de Creative Commons</link> o lea el<link href="http://creativecommons.org/licenses/by-sa/3.0/">Escrito de Commons</link>.</p>
+</page>
diff --git a/help/es/mancreate.page b/help/es/mancreate.page
new file mode 100644 (file)
index 0000000..5c8c178
--- /dev/null
@@ -0,0 +1,693 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" xmlns:its="http://www.w3.org/2005/11/its" type="guide" id="mancreate" xml:lang="es">
+
+  <info>
+    <link type="guide" xref="index#advanced"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Crear sus plantillas manualmente.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Compartir Igual 3.0</p>
+    </license>    
+  </info>
+
+  <title>Crear plantillas nuevas manualmente</title>
+
+
+
+  <!-- ****************** -->
+  <!-- BEGIN Introduction -->
+  <!-- ****************** -->
+  <p>Esta página es una guía de referencia para la creación manual de plantillas de <app>gLabels</app>. Las plantillas de <app>gLabels</app> se definen en un archivo XML, tal como se describe en la DTD: <link href="http://glabels.org/xmlns/2.3/glabels-2.3.dtd.txt">glabels-2.3.dtd</link> (Este DTD también describe otros formatos XML usados por <app>glabels</app>).</p>
+
+  <p>Las plantillas creadas manualmente se guardarán en <file>${HOME}/.glabels</file> y se nombrarán con extensión <file>.template</file>.</p>
+
+  <note style="advanced">
+    <p><app>gLabels</app> busca plantillas en varias ubicaciones, como se define aquí:</p>
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Ubicación</p></td>
+        <td><p>Descripción</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>
+        <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><file>${prefix}/share/libglabels-3.0/templates</file></p></td>
+        <td><p>Plantillas predefinidas distribuidas con <app>gLabels</app>.</p>
+            <p><file>${prefix}</file> normalmente es <file>/usr</file> o <file>/usr/local</file>, dependiendo de dónde se haya instalado <app>gLabels</app>.</p></td>
+      </tr>
+      <tr>
+        <td><p><file>${XDG_CONFIG_HOME}/libglabels/templates</file></p></td>
+        <td><p>Plantillas definidas por el usuario creadas con el <gui>Diseñador de plantillas</gui> de <app>gLabels</app>. <em>No ponga plantillas creadas manualmente en esta carpeta</em>.</p>
+            <p>Si <file>${XDG_CONFIG_HOME}</file> no está definido, su valor predeterminado es <file>${HOME}/.config</file>.</p></td>
+      </tr>
+      <tr>
+        <td><p><file>${HOME}/.glabels</file></p></td>
+        <td><p>Las plantillas definidas por el usuario creadas manualmente se deben poner en esta carpeta. Las versiones del <gui>Diseñador de plantillas</gui> de <app>gLabels</app> (anteriores a 3.0) también pondrían plantillas en esta carpeta.</p></td>
+      </tr>
+    </table>
+  </note>
+
+  <note><p>Los archivos de plantillas completadas se pueden enviar a la <link href="mailto:glabels-templates@lists.sourceforge.net">lista de correo</link> de plantillas de <app>gLabels</app>, para incluirlas posiblemente en versiones futuras de <app>gLabels</app>.</p>
+  </note>
+  <!-- ****************** -->
+  <!-- END Introduction   -->
+  <!-- ****************** -->
+
+
+  <!-- ***************** -->
+  <!-- BEGIN Assumptions -->
+  <!-- ***************** -->
+  <section id="template-assumptions">
+    <title>Supuestos/advertencias</title>
+    <list>
+      <item>
+        <p>Una hoja contiene etiquetas o tarjetas de un sólo tamaño (si una hoja contiene más de un tamaño por elemento, se puede dividir el varias plantillas para imprimir en múltiples pasadas)</p>
+      </item>
+      <item>
+        <p>Las distancias se pueden expresar en las unidades <code translate="no">pt</code>, <code translate="no">in</code>, <code translate="no">mm</code>, <code translate="no">cm</code>, o <code translate="no">pc</code>. Por ejemplo: «<code translate="no">1.0in</code>» o «<code translate="no">2.54cm</code>». Si no se especifican la unidade, se asumirá que es puntos informáticos (<code translate="no">pt</code>), donde 1 <em>pt</em> = 1/72 <em>in</em> = 0.352778 <em>mm</em>.</p>
+      </item>
+    </list>
+  </section>
+  <!-- ***************** -->
+  <!-- END Assumptions   -->
+  <!-- ***************** -->
+
+
+
+  <!-- ******************** -->
+  <!-- BEGIN Template Files -->
+  <!-- ******************** -->
+  <section id="template-file">
+    <title>Archivos de plantillas</title>
+
+    <p>Un archivo de plantilla contiene un único nodo <code translate="no">Glabels-templates</code> de nivel superior.</p>
+
+    <code mime="text/xml" translate="no">
+&lt;?xml version="1.0"?&gt;
+&lt;Glabels-templates&gt;
+
+   <var translate="yes">...plantillas...</var>
+
+&lt;/Glabels-templates&gt;</code>
+
+    <listing>
+      <title>Plantilla de ejemplo</title>
+      <desc>Ejemplo de archivo de plantilla de <app>gLabels</app> con un nodo <code translate="no">Template</code>.</desc>
+      <code mime="text/xml" translate="no">
+&lt;?xml version="1.0"?&gt;
+&lt;Glabels-templates&gt;
+
+  &lt;Template brand="Avery" part="8160" size="US-Letter" description="Mailing Labels"&gt;
+    &lt;Meta category="label"/&gt;
+    &lt;Meta category="mail"/&gt;
+    &lt;Meta product_url="http://www.avery.com/avery/en_us/"/&gt;
+    &lt;Label-rectangle id="0" width="189pt" height="72pt" round="5pt"&gt;
+      &lt;Markup-margin size="5pt"/&gt;
+      &lt;Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/&gt;
+    &lt;/Label-rectangle&gt;
+  &lt;/Template&gt;
+
+&lt;/Glabels-templates&gt;</code>
+    </listing>
+
+  </section>
+  <!-- ******************** -->
+  <!-- END Template Files   -->
+  <!-- ******************** -->
+
+
+
+  <!-- ******************** -->
+  <!-- BEGIN Template Node  -->
+  <!-- ******************** -->
+  <section id="template-template-node">
+    <title>Nodo <span translate="no">Template</span></title>
+
+    <p>Un nodo <code translate="no">Template</code> describe un único producto de papelería. Debe contener una instancia de cada tipo de nodo «Etiqueta» (<code translate="no">Label-rectangle</code>, <code translate="no">Label-round</code>, o <code translate="no">Label-cd</code>).</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Propiedad</p></td>  <td><p>Descripción</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">brand</code></p></td>  
+        <td><p>Marca o fabricante de productos de papelería. Por ejemplo «Avery».</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">part</code></p></td>
+        <td><p>Número de pieza o nombre de un producto de papelería. Ej «8160»</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">size</code></p></td>
+        <td><p>Tamaño de la hoja. Ej. "<code translate="no">Carta</code>", "<code translate="no">A4</code>", ....</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">description</code></p></td>
+        <td><p>Descripción de un producto de papelería. Por ejemplo, «Etiquetas de dirección».</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">_description</code></p></td>
+        <td><p>Descripción traducible para un producto de papelería. Por ejemplo, «Etiquetas de correo». (Útil sólo para plantillas predefinidas.)</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">width</code></p></td>
+        <td><p>Ancho de la página. Sólo es válido si tamaño=«Otro»</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">height</code></p></td>
+        <td><p>Altura de la página. Sólo es válido si tamaño=«Otro»</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">equiv</code></p></td>
+        <td><p>Parte numérica equivalente. Si esta propiedad está presente, la plantilla es un clon de otra plantilla de la misma marca. La plantilla heredará todas las propiedades, excepto la marca y el nombre de la otra plantilla. Esta propiedad debe referirse a una plantilla definida anteriormente: actualmente <app>gLabels</app> no soporta hacia adelante.</p></td>
+      </tr>
+    </table>
+
+  </section>
+  <!-- ******************** -->
+  <!-- END Template Node    -->
+  <!-- ******************** -->
+
+
+  <!-- ******************** -->
+  <!-- BEGIN Meta Node      -->
+  <!-- ******************** -->
+  <section id="meta-template-node">
+    <title>Nodo <span translate="no">Meta</span></title>
+
+    <p>un nodo <code translate="no">Meta</code> contiene información adicional sobre la plantilla. Un nodo <code translate="no">Template</code> puede contener cero o más nodos <code translate="no">Meta</code>.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Subnodo</p></td>  <td><p>Descripción</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">category</code></p></td>
+        <td><p>Una categoría para la plantilla. Una plantilla puede pertenecer a varias categorías simplemente añadiendo múltiples nodos <code translate="no">Meta</code> al nodo <code translate="no">Template</code> padre. El <gui>Diálogo de tarjeta nueva</gui> de <app>gLabels</app> usa las categorías de las plantillas para filtrar los resultados de búsquedas de plantillas.</p>
+
+            <p>El valor de esta categoría debe coincidir con un ID de categoría predefinido en el archivo <file>${prefix}/libglabels-3.0/templates/categories.xml</file>. Los ID de categoría definidos actualmente incluyen:</p>
+            <list>
+              <item><p><code translate="no">label</code></p></item>
+              <item><p><code translate="no">round-label</code></p></item>
+              <item><p><code translate="no">elliptical-label</code></p></item>
+              <item><p><code translate="no">square-label</code></p></item>
+              <item><p><code translate="no">rectangle-label</code></p></item>
+              <item><p><code translate="no">card</code></p></item>
+              <item><p><code translate="no">business-card</code></p></item>
+              <item><p><code translate="no">media</code></p></item>
+              <item><p><code translate="no">mail</code></p></item>
+              <item><p><code translate="no">foldable</code></p></item>
+              <item><p><code translate="no">photo</code></p></item>
+            </list>
+
+
+        </td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">product_url</code></p></td>
+        <td><p>Un URL que apunta a la página web del fabricante para un producto determinado, si está disponible.</p></td>
+      </tr>
+    </table>
+
+    <note><p>La sugerencias sobre categorías adicionales se pueden enviar a la <link href="mailto:glabels-devel@lists.sourceforge.net">lista de correo</link> de los desarrolladores de <app>gLabels</app>.</p>
+          <p>Los URL de productos deben ser de uso limitado, ya que pueden no ser permanentes.</p>
+    </note>
+
+  </section>
+  <!-- ******************** -->
+  <!-- END Meta Node        -->
+  <!-- ******************** -->
+
+
+  <!-- ************************** -->
+  <!-- BEGIN Label-rectangle Node -->
+  <!-- ************************** -->
+  <section id="template-label-rectangle-node">
+    <title>Nodo <span translate="no">Label-rectangle</span></title>
+
+    <p>Un nodo<code translate="no">Label-rectangle</code> describe las dimensiones de una única etiqueta o tarjeta de visita de forma rectangular (Puede tener los bordes redondeados.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Propiedad</p></td>  <td><p>Descripción</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">id</code></p></td>
+        <td><p>Reservado para el futuro. Debería ser siempre 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">width</code></p></td>
+        <td><p>Ancho de la etiqueta/tarjeta</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">height</code></p></td>
+        <td><p>Altura de la etiqueta/tarjeta</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">round</code></p></td>
+        <td><p>Radio de la esquina. Para elementos con bordes cuadrados (tarjetas de visita), el radio debe ser 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">x_waste</code></p></td>
+        <td><p>Cantidad de residuos horizontales (sobreimpresión) que permitir. Esto es útil para minimizar problemas de alineación al usar fondos no blancos (ej. imágenes).</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">y_waste</code></p></td>
+        <td><p>Cantidad de residuos verticales (sobreimpresión) que permitir. Esto es útil para minimizar problemas de alineación al usar fondos no blancos (ej. imágenes).</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc>Parámetros de <span translate="no">Label-rectangle</span></desc>
+      <media type="image" src="figures/glabels-template-rect-label.png" mime="image/png" style="right">
+        <p>Parámetros de <span translate="no">Label-rectangle</span></p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ************************** -->
+  <!-- END Label-rectangle Node   -->
+  <!-- ************************** -->
+
+
+  <!-- ************************ -->
+  <!-- BEGIN Label-ellipse Node -->
+  <!-- ************************ -->
+  <section id="template-label-ellipse-node">
+    <title>Nodo <span translate="no">Label-ellipse</span></title>
+
+    <p>Un nodo <code translate="no">Label-ellipse</code> describe las dimensiones de una única etiqueta o tarjeta de visita de forma elíptica.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Propiedad</p></td>  <td><p>Descripción</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">id</code></p></td>
+        <td><p>Reservado para el futuro. Debería ser siempre 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">width</code></p></td>
+        <td><p>Anchura de la elipse</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">height</code></p></td>
+        <td><p>Altura de la elipse</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">waste</code></p></td>
+        <td><p>Cantidad de residuos (sobreimpresión) que permitir. Esto es útil para minimizar problemas de alineación al usar fondos no blancos (ej. imágenes).</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc>Parámetros de <span translate="no">Label-ellipse</span></desc>
+      <media type="image" src="figures/glabels-template-ellipse-label.png" mime="image/png" style="right">
+        <p>Parámetros de <span translate="no">Label-ellipse</span></p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ************************ -->
+  <!-- END Label-ellipse Node   -->
+  <!-- ************************ -->
+
+
+  <!-- ********************** -->
+  <!-- BEGIN Label-round Node -->
+  <!-- ********************** -->
+  <section id="template-label-round-node">
+    <title>Nodo <span translate="no">Label-round</span></title>
+
+    <p>Un nodo <code translate="no">Label-round</code> describe las dimensiones de una sola etiqueta circular (no un CD).</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Propiedad</p></td>  <td><p>Descripción</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">id</code></p></td>
+        <td><p>Reservado para el futuro. Debería ser siempre 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">radius</code></p></td>
+        <td><p>Radio (1/2 del diámetro) de la etiqueta</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">waste</code></p></td>
+        <td><p>Cantidad de residuos (sobreimpresión) que permitir. Esto es útil para minimizar problemas de alineación al usar fondos no blancos (ej. imágenes).</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc>Parámetros de <span translate="no">Label-ellipse</span></desc>
+      <media type="image" src="figures/glabels-template-circle-label.png" mime="image/png" style="right">
+        <p>Parámetros de <span translate="no">Label-ellipse</span></p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ********************** -->
+  <!-- END Label-round Node   -->
+  <!-- ********************** -->
+
+
+  <!-- ******************* -->
+  <!-- BEGIN Label-cd Node -->
+  <!-- ******************* -->
+  <section id="template-label-cd-node">
+    <title>Nodo <span translate="no">Label-cd</span></title>
+
+    <p>Un nodo <code translate="no">Label-cd</code> describe las dimensiones de un CD, DVD o un CD de tarjeta de visita.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Propiedad</p></td>  <td><p>Descripción</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">id</code></p></td>
+        <td><p>Reservado para el futuro. Debería ser siempre 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">radius</code></p></td>
+        <td><p>Radio exterior de la etiqueta</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">hole</code></p></td>
+        <td><p>Radio del agujero concéntrico</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">width</code></p></td>
+        <td><p>Si está presente, la etiqueta se recorta a la anchura dada. (Útil para «tarjetas de visita en CD»).</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">height</code></p></td>
+        <td><p>Si está presente, la etiqueta se recorta a la altura dada. (Útil para «tarjetas de visita en CD»).</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">waste</code></p></td>
+        <td><p>Cantidad de residuos (sobreimpresión) que permitir. Esto es útil para minimizar problemas de alineación al usar fondos no blancos (ej. imágenes).</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc>Parámetros de <span translate="no">Label-cd</span></desc>
+      <media type="image" src="figures/glabels-template-cd-label.png" mime="image/png" style="right">
+        <p>Parámetros de etiqueta de CD</p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ******************* -->
+  <!-- END Label-cd Node   -->
+  <!-- ******************* -->
+
+
+  <!-- ***************** -->
+  <!-- BEGIN Markup Node -->
+  <!-- ***************** -->
+  <section id="template-markup">
+    <title>Nodos <span translate="no">Markup</span></title>
+
+    <p>Las plantillas pueden contener nodos de marcado opcionales. Estos nodos se usan para describir un conjunto de líneas de marcado que son visibles en la ventana de dibujo de <app>glabels</app>, pero no son visibles cuando se imprime. Estas líneas pueden representar márgenes, líneas de plegado o de centrado, áreas especiales u otros indicios útiles para el usuario de una plantilla.</p>
+
+
+    <!-- ======================== -->
+    <!-- BEGIN Markup-margin Node -->
+    <!-- ======================== -->
+    <section id="template-markup-margin-node">
+      <title>Nodo <span translate="no">Markup-margin</span></title>
+
+      <p>Un <code translate="no">Markup-margin</code> describe un margen a lo largo de los bordes de una etiqueta.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Propiedad</p></td>  <td><p>Descripción</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">size</code></p></td>
+          <td><p>Tamaño del margen. Ej. la distancia de la línea del margen desde el borde de la tarjeta/etiqueta.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ======================== -->
+    <!-- END Markup-margin Node   -->
+    <!-- ======================== -->
+
+
+    <!-- ====================== -->
+    <!-- BEGIN Markup-line Node -->
+    <!-- ====================== -->
+    <section id="template-markup-line-node">
+      <title>Nodo <span translate="no">Markup-line</span></title>
+
+      <p>Un nodo <code translate="no">Markup-line</code> describe una línea de marcado.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Propiedad</p></td>  <td><p>Descripción</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x1</code></p></td>
+          <td><p>coordenada X del primero punto final del segmento de línea.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y1</code></p></td>
+          <td><p>coordenada Y del primero punto final del segmento de línea.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x2</code></p></td>
+          <td><p>coordenada X del segundo punto final del segmento de línea.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y2</code></p></td>
+          <td><p>coordenada Y del segundo punto final del segmento de línea.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ====================== -->
+    <!-- END Markup-line Node   -->
+    <!-- ====================== -->
+
+
+    <!-- ======================== -->
+    <!-- BEGIN Markup-circle Node -->
+    <!-- ======================== -->
+    <section id="template-markup-circle-node">
+      <title>Nodo <span translate="no">Markup-circle</span></title>
+
+      <p>Un <code translate="no">Markup-circle</code> describe un círculo de marcado.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Propiedad</p></td>  <td><p>Descripción</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x0</code></p></td>
+          <td><p>coordenada X del círculo origen (centro).</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y0</code></p></td>
+          <td><p>coordenada Y del círculo origen (centro).</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">radius</code></p></td>
+          <td><p>Radio del círculo.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ======================== -->
+    <!-- END Markup-circle Node   -->
+    <!-- ======================== -->
+
+
+    <!-- ====================== -->
+    <!-- BEGIN Markup-rect Node -->
+    <!-- ====================== -->
+    <section id="template-markup-rect-node">
+      <title>Nodo <span translate="no">Markup-rect</span></title>
+
+      <p>Un <code translate="no">Markup-rect</code> describe un rectángulo de marcado.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Propiedad</p></td>  <td><p>Descripción</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x1</code></p></td>
+          <td><p>coordenada X de la esquina superior izquierda del rectángulo</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y1</code></p></td>
+          <td><p>coordenada Y de la esquina superior izquierda del rectángulo</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">w</code></p></td>
+          <td><p>Anchura del rectángulo.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">h</code></p></td>
+          <td><p>Altura del rectángulo.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">r</code></p></td>
+          <td><p>Radio de las esquinas redondeadas del rectángulo.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ====================== -->
+    <!-- END Markup-rect Node   -->
+    <!-- ====================== -->
+
+
+    <!-- ========================= -->
+    <!-- BEGIN Markup-ellipse Node -->
+    <!-- ========================= -->
+    <section id="template-markup-ellipse-node">
+      <title>Nodo <span translate="no">Markup-ellipse</span></title>
+
+      <p>Un <code translate="no">Markup-ellipse</code> describe una elipse de marcado.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Propiedad</p></td>  <td><p>Descripción</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x1</code></p></td>
+          <td><p>coordenada «x» de la esquina superior izquierda de la elipse.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y1</code></p></td>
+          <td><p>coordenada «y» de la esquina superior izquierda de la elipse.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">w</code></p></td>
+          <td><p>Anchura de la elipse.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">h</code></p></td>
+          <td><p>Altura de la elipse.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ========================= -->
+    <!-- END Markup-ellipse Node   -->
+    <!-- ========================= -->
+
+  </section>
+  <!-- ***************** -->
+  <!-- END Markup Node   -->
+  <!-- ***************** -->
+
+
+  <!-- ***************** -->
+  <!-- BEGIN Layout Node -->
+  <!-- ***************** -->
+  <section id="template-layout-node">
+    <title>Nodo <span translate="no">Layout</span></title>
+
+    <p>Un nodo de etiqueta puede contener varios hijos <code translate="no">Layout</code>. Si las etiquetas se colocan en un patrón de rejilla, sólo se necesita un diseño. sin embargo, si las etiquetas se colocan en varias rejillas, como un patrón de unión, se pueden usar múltiples etiquetas <code translate="no">Layout</code>.</p>
+       <note style="tip">
+       <p>Una única etiqueta se puede tratar con una rejilla de una.</p>
+      </note>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Propiedad</p></td>  <td><p>Descripción</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">nx</code></p></td>
+        <td><p>Número de etiquetas/tarjetas en la rejilla (horizontal)</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">ny</code></p></td>
+        <td><p>Número de etiquetas/tarjetas en la rejilla (vertical)</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">x0</code></p></td>
+        <td><p>Distancia desde el borde izquierdo de la hoja hasta el borde izquierdo de la columna de la izquierda de las tarjetas/etiquetas en la disposición.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">y0</code></p></td>
+        <td><p>Distancia desde el borde superior de la hoja hasta el borde superior de la fila de arriba de las tarjetas/etiquetas en la disposición.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">dx</code></p></td>
+        <td><p>Inclinación horizontal de la rejilla.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">dy</code></p></td>
+        <td><p>Inclinación vertical de la rejilla.</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc>Parámetros de <span translate="no">Layout</span></desc>
+      <media type="image" src="figures/glabels-template-layout.png" mime="image/png" style="right">
+        <p>Parámetros de <span translate="no">Layout</span></p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ***************** -->
+  <!-- END Layout Node   -->
+  <!-- ***************** -->
+
+
+</page>
diff --git a/help/es/merge-ex1.page b/help/es/merge-ex1.page
new file mode 100644 (file)
index 0000000..3064d5b
--- /dev/null
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge-ex1" xml:lang="es">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Crear etiquetas de nombre desde un archivo CSV.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Compartir Igual 3.0</p>
+    </license>    
+  </info>
+
+    <title>Ejemplo 1: etiquetas de nombre</title>
+
+      <p>En este ejemplo se está organizando una fiesta de orientación para los nuevos miembros de la tripulación. Existe una lista de los miembros novatos de la tripulación que se ha creado en <app>gnumeric</app> y exportado en el siguiente archivo CSV. Se podría haber creado este archivo utilizando un editor de texto, pero diablos, es el siglo XXIII.</p>
+
+      <code>
+Name,Department,SN
+"Jim Kirk",Management,"SC937-0176 CEC"
+"Mr. Spock",Sciences,S179-276SP
+"Leonard McCoy",Medicine,unknown
+"Montgomery Scott",Engineering,SE-197-54T
+      </code>
+
+      <p>En <app>glabels</app> se ha creado un documento de <app>glabels</app> nuevo usando la plantilla «Etiquetas de nombre de placa» Avery 5395. Ahora se usa el elemento de menú <guiseq><gui>Objetos</gui><gui>Mezclar propiedades</gui></guiseq> para mostrar el diálogo <gui>propiedades de combinación de datos</gui>. Use este diálogo para seleccionar el tipo de fuente (en este caso, CSV con claves en la línea 1) y la fuente de combinación (nombre de archivo) como se muestra.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-1.png" mime="image/png" style="right">
+               <p>Diálogo de propiedades de fusión</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>También se puede ver cada registro con más detalle pulsando en el expansor adecuado (los triángulos pequeños), como se muestra. Una vez satisfecho con las selecciones, pulse <gui>Aceptar</gui> en este diálogo para aceptar los cambios.</p>
+
+      <p>Ahora puede añadir a añadir objetos al documento de<application>gLabels</application> como se muestra.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-2.png" mime="image/png" style="right">
+               <p>Añadir objetos</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>En este ejemplo se han añadido tres objetos de texto y un objeto de código de barras. El primer objeto de texto contiene sólo un texto literal («Hola, mi nombre es»). El segundo objeto de texto contiene un único campo combinado ("${Nombre}") correspondiente al primer campo de un registro (primera columna de una línea) que contiene el nombre completo de los nuevos miembros de la tripulación. El tercer campo de texto contiene un texto literal («Departamento») seguido de un único campo combinado ("${Departmento}") correspondiente al segundo campo del departamento de los nuevos miembros de la tripulación. El objeto de código de barras está configurado para usar el campo (o la clave) «SN», que contiene los números de serie de la flota estelar de los miembros de la tripulación.</p>
+
+      <p>Ahora se pueden imprimir las etiquetas de nombre seleccionando el elemento de menú <guiseq><gui>Archivo</gui><gui>Imprimir</gui></guiseq>. Esto mostrará el diálogo de impresión como se muestra a continuación.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-3.png" mime="image/png" style="right">
+               <p>Imprimir etiquetas de nombre</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Sólo para asegurarse de que las etiquetas se van a ver bien, seleccione la opción <gui>Imprimir contornos</gui> y pulse en <gui>Previsualizar la impresión</gui>. Esto mostrará un diálogo de vista previa, como se muestra a continuación.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-4.png" mime="image/png" style="right">
+               <p>Vista previa de las etiquetas de nombre</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Todo parece correcto, así que ahora puede cargar su impresora con las etiquetas apropiadas, imprimir sus etiquetas de nombre e invitar a sus invitados a bordo.</p>
+
+
+</page>
diff --git a/help/es/merge-ex2.page b/help/es/merge-ex2.page
new file mode 100644 (file)
index 0000000..1b7fbd5
--- /dev/null
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge-ex2" xml:lang="es">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Crear etiquetas de dirección desde un archivo CSV.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Compartir Igual 3.0</p>
+    </license>    
+  </info>
+
+    <title>Ejemplo 2: etiquetas de dirección</title>
+
+      <p>En este ejemplo se va a celebrar una fiesta y se necesitan imprimir etiquetas de dirección para nuestras invitaciones. Existe una lista con los amigos más cercamos que se ha creado en <app>gnumeric</app> y la se ha exportado como el siguiente archivo CSV. Debe tener en cuenta que no todo el mundo tiene una inicial intermedia o una dirección de dos líneas.</p>
+
+      <code>
+LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP
+,,,,,,,
+Critter,Ess,S,"123 Faux St.",,Alexandria,VA,22310
+Doe,John,,"Apt 1X","451 Mystery St.",Trenton,NJ,08601
+Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037
+McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813
+Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207
+      </code>
+
+      <p>En <app>glabels</app> se ha creado un documento de <app>glabels</app> nuevo usando la plantilla «Etiquetas de dirección» Avery 5512.Ahora se usa el elemento de menú <guiseq><gui>Objetos</gui><gui>Mezclar propiedades</gui></guiseq> para mostrar el diálogo <gui>propiedades de combinación de datos</gui>. Se usa este diálogo para seleccionar el tipo de fuente (en este caso, CSV con claves en la línea 1) y la fuente de combinación (nombre de archivo) como se muestra.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-1.png" mime="image/png" style="right">
+               <p>Diálogo de propiedades de fusión</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Antes de aplicar la combinación de fuentes se ha desmarcado el primer registro , ya que sólo contiene campos vacíos. Esto es un artefacto de la hoja de cálculo de <app>gnumeric</app> original, y sólo desperdiciaríamos nuestra primera etiqueta. También se pueden deseleccionar cualquier otro registro para el que no se quiera imprimir una etiqueta.</p>
+
+      <p>También se puede ver cada registro con más detalle pulsando en el expansor adecuado (los triángulos pequeños), como se muestra. Una vez satisfecho con las selecciones, pulse <gui>Aceptar</gui> en este diálogo para aceptar los cambios.</p>
+
+      <p>Ahora puede añadir a añadir objetos al documento de<application>gLabels</application> como se muestra.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-2.png" mime="image/png" style="right">
+               <p>Añadir objetos</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>En este ejemplo se tiene un único objeto de texto. El objeto de texto contiene todo sobre los campos combinados en múltiples línea como direcciones de correo. Tenga en cuenta que los campos ${ADDR1} y ${ADDR2} no están situados en otro texto en sus propias líneas. Cuando <app>glabels</app> encuentra un campo como el único texto de una línea, no expandirá la línea si el campo está vacío.</p>
+
+      <p>Ahora se pueden imprimir las etiquetas de dirección seleccionando el elemento de menú <guiseq><gui>Archivo</gui><gui>Imprimir</gui></guiseq>. Esto mostrará el diálogo de impresión como se muestra a continuación.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-3.png" mime="image/png" style="right">
+               <p>Imprimir etiquetas de dirección</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Sólo para asegurarse de que las etiquetas se van a ver bien, seleccione la opción <gui>Imprimir contornos</gui> y pulse en <gui>Previsualizar la impresión</gui>. Esto mostrará un diálogo de vista previa, como se muestra a continuación.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-4.png" mime="image/png" style="right">
+               <p>Vista previa de las etiquetas de dirección</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Todo parece correcto, así que ahora podemos cargar nuestra impresora con las etiquetas apropiadas, imprimir nuestras etiquetas de dirección y enviar por correo nuestras invitaciones a la fiesta.</p>
+
+</page>
diff --git a/help/es/merge-ex3.page b/help/es/merge-ex3.page
new file mode 100644 (file)
index 0000000..d37418c
--- /dev/null
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge-ex3" xml:lang="es">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Crear etiquetas de direcciones desde las entradas de la libreta de direcciones de <app>Evolution</app>.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Compartir Igual 3.0</p>
+    </license>    
+  </info>
+
+    <title>Ejemplo 3: Etiquetas de dirección usando la libreta de direcciones de <app>Evolution</app></title>
+
+      <p>La última fiesta fue un éxito, y se necesitan imprimir etiquetas de dirección para las invitaciones a una nueva fiesta. Para simplificarlo, se puede usar la libreta de direcciones de <app>Evolution</app>, ya que las direcciones de sus amigos están guardadas ahí.</p>
+
+      <note>
+       <p>Dependiendo de cómo se haya empaquetado su copia de <app>gLabels</app>, puede que esta opción no esté disponible. El soporte para la libreta de direcciones de <app>Evolution</app> sólo está disponible si <app>evolution-data-server</app> y sus archivos de desarrollo estaban presentes cuando se compiló <app>gLabels</app>. Tenga esto en cuenta si construye <app>gLabels</app> directamente desde las fuentes.</p>
+       
+       <p>Si el paquete <app>gLabels</app> de su distribución carece de este soporte, puede contactar con el mantenedor del paquete o informar de un error en este paquete para solicitarlo.</p>
+      </note>
+
+      <p>Se ha creado en <app>glabels</app> un documento de <app>gLabels</app> nuevo usando la plantilla Avery 5512 «Etiquetas de dirección». Ahora se usa el elemento de menú <guiseq><gui>Objetos</gui><gui>Mezclar propiedades</gui></guiseq> para mostrar el diálogo <gui>Mezclar propiedades</gui>. Use este diálogo para seleccionar el tipo de origen (en este caso, <gui>Datos de la libreta de direcciones predeterminada de Evolution</gui>) como se muestra.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-1.png" mime="image/png" style="right">
+               <p>Diálogo de propiedades de fusión</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Una vez que se han elegido <gui>Datos de la libreta predeterminada de Evolution</gui> como origen de la mezcla, obtendrá una lista completa de su contenido. Inicialmente, se comprueban todas las entradas. Asumiendo que se está planificando una gran fiesta, se puede dejar esta selección sin tocar (pero se va a mantener en mente el presupuesto). Ahora se seleccionan o deseleccionan ciertas entradas pulsando en las casillas adecuadas, o se pueden usar los botones <gui>Seleccionar todo</gui> y <gui>Deseleccionar todo</gui> para activar o desactivar todas las entradas en la libreta de direcciones.</p>
+      <p>También se puede ver cada entrada con más detalle pulsando en el desplegable adecuado (los triángulos pequeños), como se muestra. Una vez satisfechos con las selecciones en este diálogo, pulse el botón <gui>Aceptar</gui> para aceptar los cambios.</p>
+
+      <p>Ahora puede añadir a añadir objetos al documento de<application>gLabels</application> como se muestra.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-2.png" mime="image/png" style="right">
+               <p>Añadir objetos</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>En este ejemplo existe un único objeto de texto otra vez. Este objeto de texto contiene todos los campos mezclados organizados en varias líneas como direcciones de correo.</p>
+
+      <p>Ahora se pueden imprimir las etiquetas de dirección seleccionando el elemento de menú <guiseq><gui>Archivo</gui><gui>Imprimir</gui></guiseq>. Esto mostrará el diálogo de impresión como se muestra a continuación.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-3.png" mime="image/png" style="right">
+               <p>Imprimir etiquetas de dirección</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Sólo para asegurarse de que las etiquetas se van a ver bien, seleccione la opción <gui>Imprimir contornos</gui> y pulse en <gui>Previsualizar la impresión</gui>. Esto mostrará un diálogo de vista previa, como se muestra a continuación.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-4.png" mime="image/png" style="right">
+               <p>Vista previa de las etiquetas de dirección</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Todo parece correcto, así que ahora podemos cargar nuestra impresora con las etiquetas apropiadas, imprimir nuestras etiquetas de dirección y enviar por correo nuestras invitaciones a la fiesta.</p>
+
+
+</page>
diff --git a/help/es/merge-ex4.page b/help/es/merge-ex4.page
new file mode 100644 (file)
index 0000000..e27660e
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge-ex4" xml:lang="es">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Crear etiquetas de dirección desde un archivo vCard.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Compartir Igual 3.0</p>
+    </license>    
+  </info>
+
+    <title>Ejemplo 4: etiquetas de dirección usando un archivo vCard</title>
+
+
+</page>
diff --git a/help/es/merge.page b/help/es/merge.page
new file mode 100644 (file)
index 0000000..acd6615
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge" xml:lang="es">
+
+  <info>
+    <link type="guide" xref="index#merging"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Combinar un origen de datos para crear múltiples documentos.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Compartir Igual 3.0</p>
+    </license>    
+  </info>
+
+    <title>Tutorial para fusionar documentos</title>
+
+    <p>La combinación de documentos (llamada algunas veces «combinación de correo») es una potente característica que permite que una única tarjeta o etiqueta se impriman por cada registro de una fuente de datos externa. Esto es, sin embargo, la característica menos comprendida de <app>glabels</app>. Los siguientes ejemplos le guiarán paso a paso a través de un par de de tareas comunes usando la característica de combinación de documentos.</p>
+
+  <section id="merge-ex" style="2column">
+  </section>
+
+</page>
diff --git a/help/es/mergefeatures.page b/help/es/mergefeatures.page
new file mode 100644 (file)
index 0000000..d0df363
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="mergefeatures" xml:lang="es">
+
+  <info>
+    <link type="guide" xref="index#merging"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Que puede esperar de la fusión de un documento.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Compartir Igual 3.0</p>
+    </license>    
+  </info>
+
+    <title>Fusionar un documento</title>
+
+      <p>La combinación de documentos (llamada algunas veces «combinación de correo») es una potente característica que permite que una única tarjeta o etiqueta se impriman por cada registro de una fuente de datos externa.</p>
+
+      <p>El primer paso para combinar un documento es preparar un documento fuente que contenga su datos combinados. Estos datos pueden ser direcciones de correo o cualquier otro dato que quiera para crear etiquetas o tarjetas únicas. Los «back-end» actuales sólo existen para archivos de texto y el servidor de datos de Evolution (hay otros planificados). El formato de texto soportado actualmente es muy sencillo: cada línea es un registro; lo campos se delimitan por comas (CSV), tabuladores o dos puntos; y las líneas nuevas se pueden incrustar usando la entidad «\n». Este archivo se puede crear usando cualquier editor de texto u otro programa o script. Una manera habitual de crear archivos CSV es exportarlos desde un programa de hojas de cálculo.</p>
+
+      <p>Una etiqueta debe estar configurada para «apuntar a» este archivo de datos. Para configurar las propiedades de combinación de un documento, elija el elemento de menú <guiseq><gui>Objetos</gui><gui>Mezclar propiedades</gui></guiseq> para mostrar el diálogo <gui>Propiedades de combinación de datos</gui>. Este diálogo se utiliza para seleccionar el formato de datos exacto del archivo y nombre de archivo (ubicación) de la combinación de datos.</p>
+
+      <p>Finalmente, una vez que se ha configurado la etiqueta para un archivo de datos, se pueden insertar los campos clave en objetos de texto y usarlos como fuentes o datos para códigos de barras y nombres de archivos de imágenes para objetos de imagen. Consulte la <link xref="editprop"/> para obtener más información sobre cómo combinar datos para este tipo de objetos.</p>
+
+      <p>Ahora que su etiqueta está configurada, <app>gLabels</app> imprimirá una única etiqueta por cada registro de su documento fuente, sustituyendo los campos de cada registro por los campos clave en todo el texto, código de barras y objetos de imagen.</p>
+
+      <p>Consulte en <link xref="merge"/> un tutorial detallado sobre la característica de fusión de documentos.</p>
+
+</page>
diff --git a/help/es/multifile.page b/help/es/multifile.page
new file mode 100644 (file)
index 0000000..ce8528f
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="multifile" xml:lang="es">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Cómo abrir varios archivos a la vez usando la línea de comandos.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Compartir Igual 3.0</p>
+    </license>    
+  </info>
+
+    <title>Abrir varios archivos desde la línea de comandos</title>
+
+      <p>Puede ejecutar <app>gLabels</app> desde una línea de comandos y abrir uno o varios archivos. Para abrir varios archivos desde una línea de comandos, escriba el siguiente comando y pulse <key>Intro</key>:</p>
+
+      <p><cmd>glabels <var>archivo1.glabels archivo2.glabels archivo3.glabels</var></cmd></p>
+
+      <p>Cuando se inicia la aplicación, se muestran los archivos que especifique en ventanas de <app>gLabels</app> separadas.</p>
+
+</page>
diff --git a/help/es/newlabel.page b/help/es/newlabel.page
new file mode 100644 (file)
index 0000000..c5bdb23
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="newlabel" xml:lang="es">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Crear una etiqueta o tarjeta nuevas en <app>gLabels</app>.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Compartir Igual 3.0</p>
+    </license>    
+  </info>
+
+    <title>Crear una etiqueta nueva o una tarjeta</title>
+
+    <p>Para crear una etiqueta nueva o una tarjeta de visita, elija<guiseq><gui>Archivo</gui><gui>Nuevo</gui></guiseq> para mostrar el diálogo <gui>Nueva etiqueta o tarjeta</gui>. Seleccione el tipo de medio y la orientación para el documento nuevo y pulse <gui>Aceptar</gui>. Se mostrará un documento nuevo en el área de visualización de la ventana ventana de <app>gLabels</app>.</p>
+
+</page>
diff --git a/help/es/printfile.page b/help/es/printfile.page
new file mode 100644 (file)
index 0000000..dc693d4
--- /dev/null
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="printfile" xml:lang="es">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Cómo imprimir sus etiquetas y sus tarjetas.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Compartir Igual 3.0</p>
+    </license>    
+  </info>
+
+    <title>Imprimir etiquetas y tarjetas</title>
+
+      <p>Para imprimir etiquetas o tarjetas, elija <guiseq><gui>Archivo</gui><gui>Imprimir</gui></guiseq> para mostrar el diálogo <gui>Imprimir</gui>. Una vez que haya seleccionado las opciones de impresión, pulse en <gui>Imprimir</gui> para imprimir las etiquetas o las tarjetas. Para sólo previsualizar el resultado, pulse en <gui>Previsualizar la impresión</gui> en su lugar.</p>
+
+      <p>El diálogo <gui>Imprimir</gui> le permite especificar las siguientes opciones de impresión:</p>
+
+      <section>
+       <title>La pestaña «etiquetas» del diálogo de impresión</title>
+
+       <section>
+            <title>Control de impresión (simple)</title>
+
+             <p>Para etiquetas o tarjetas simples (no para documentos combinados) la sección de trabajos en pestañas contiene los siguientes controles de copia.</p>
+
+             <!-- ==== Figure ==== -->
+               <media type="image" src="figures/print-copies.png" mime="image/png" style="right">
+               <p>Controles de impresión de copia</p>
+               </media>
+             <!-- ==== End of Figure ==== -->
+
+             <p>El número de copias de la etiqueta se puede seleccionar eligiendo el número de hojas completas que imprimir, o un subconjunto específico de etiquetas de una sola hoja.</p>
+
+             <p>La mini vista previa también se puede usar para seleccionar gráficamente el subconjunto de etiquetas, pulsando en la primera etiqueta de la mini vista previa y arrastrando hasta la última etiqueta.</p>
+
+         </section>
+
+         <section>
+            <title>Control de impresión (fusión)</title>
+
+             <p>Para etiquetas o tarjetas que usan la capacidad de combinación de documentos (también llamada «combinación de correo»), la sección de trabajos en pestañas contiene los siguientes controles de combinación en vez de los controles de copia.</p>
+
+             <!-- ==== Figure ==== -->
+               <media type="image" src="figures/print-merge.png" mime="image/png" style="right">
+               <p>Controles de impresión de fusión de documentos</p>
+               </media>
+             <!-- ==== End of Figure ==== -->
+
+             <p>El número total de etiquetas o tarjetas imprimidas es el producto del número de registros en el origen de la combinación y del número de copias seleccionadas. Si se seleccionan varias copias, éstas pueden ser cotejadas (copias de un mismo registro agrupados) o sin cotejar (una copia de cada registro se imprime antes del siguiente copia).</p>
+
+             <p>La impresión puede empezar en cualquier etiqueta de la primera hoja. Ésta se puede seleccionar con el botón incremental <gui>Comenzar con la etiqueta</gui>.</p>
+
+             <p>La mini vista previa también se puede usar para seleccionar gráficamente la primera etiqueta, pulsando en la etiqueta que quiere en la mini vista previa.</p>
+
+         </section>
+
+         <section> 
+         <title>Opciones</title>
+             <p>Se pueden seleccionar las siguientes opciones.</p>
+             <list>
+               <item>
+                 <p><gui>imprimir márgenes</gui></p>
+                 <p>Imprimir los contornos de las etiquetas. Esta opción es útil para ejecuciones en seco, para verificar la alineación de la impresora.</p>
+               </item>
+               <item>
+                 <p><gui>imprimir en el reverso</gui></p>
+                 <p>Imprime las etiquetas como imágenes espejo. Esta opción es útil para imprimir en etiquetas que se verán por el reverso (ej. en la ventanilla de un coche).</p>
+               </item>
+               <item>
+                 <p><gui>imprimir marcas de corte</gui></p>
+                 <p>Imprime marcas de corte a lo largo del borde de la hoja. Esta opción es útil para imprimir en páginas en blanco, y recortarlas después de imprimir. Esta opción no funciona bien con todas las plantillas.</p>
+               </item>
+             </list>
+       </section>
+       </section>
+
+</page>
diff --git a/help/es/select.page b/help/es/select.page
new file mode 100644 (file)
index 0000000..5a2a05d
--- /dev/null
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="select" xml:lang="es">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Cómo seleccionar objetos.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Compartir Igual 3.0</p>
+    </license>    
+  </info>
+
+    <title>Seleccionar objetos</title>
+
+      <p>Un requisito previo para realizar operaciones en objetos es la selección individual o en grupo de objetos. El área de visualización debe estar en el modo de selección de objetos para crear selecciones nuevas, indicado por el cursor de flecha. El modo de selección de objetos se elije con el elemento de menú <guiseq><gui>Objetos</gui><gui>Seleccionar modo</gui></guiseq>, o con el comando correspondiente de la <gui>Barra de dibujo</gui>.</p>
+
+      <section>
+         <title>Seleccionar un sólo objeto</title>
+           <p>Se puede seleccionar un único objeto de texto simplemente pulsando sobre el objeto que quiere en el área de visualización. Una vez seleccionado, el objeto se resaltará con un conjunto de manejadores para redimensionarlo.</p>
+       </section>
+
+       <section>
+         <title>Agregar selecciones de objetos</title>
+           <p>Se pueden seleccionar varios objetos seleccionando el primero de ellos y manteniendo pulsada la tecla <key>Ctrl</key> mientras selecciona los objetos adicionales. Se puede añadir objetos individuales a la selección existente en cualquier momento manteniendo pulsada la tecla <key>Ctrl</key> mientras selecciona los objetos que quiere. También puede seleccionar todos los objetos usando el elemento de menú <guiseq><gui>Editar</gui><gui>Seleccionar todo</gui></guiseq>. Todos los objetos de una selección agregada de objetos se resaltarán.</p>
+       </section>
+
+       <section>
+         <title>Selecciones de área</title>
+         
+           <p>Se puede seleccionar varios objetos pulsando en un área vacía y arrastrando hasta formar un área rectangular. Cuando se suelta, todos los objetos contenidos en el área formarán una selección agregada. Una selección de área se puede usar para añadirla a una selección existente manteniendo pulsada la tecla <key>Ctrl</key> mientras se hace la selección.</p>
+         
+       </section>
+
+       <section>
+         <title>Deseleccionar objetos</title>
+         
+           <p>Se puede quitar objetos individuales de una selección manteniendo pulsada la tecla <key>Ctrl</key> mientras se pulsa sobre un objeto seleccionado anteriormente. Se puede descartar una selección entera usando el elemento de menú <guiseq><gui>Editar</gui><gui>Deseleccionar todo</gui></guiseq>, o simplemente pulsando en un espacio vacío en el área de visualización. Una vez que un objeto no está seleccionado, se quita el resaltado.</p>
+         
+       </section>
+
+    <section id="clipboard"> 
+      <title>Comandos del portapapeles</title>
+
+      <p>Los objetos se pueden manipular usando las operaciones estándar del portapapeles <gui>Cortar</gui>, <gui>Copiar</gui>, <gui>Pegar</gui>, y <gui>Eliminar</gui>.</p>
+
+       <section>
+         <title><gui>Cortar</gui> (<keyseq><key>Ctrl</key><key>X</key></keyseq>)</title>
+         
+           <p>Mueve objetos al portapapeles. Los objetos están disponibles para pegarlos de nuevo en el documento actual o en otro documento.</p>
+         
+       </section>
+
+       <section>
+         <title><gui>Copiar</gui> (<keyseq><key>Ctrl</key><key>C</key></keyseq>)</title>
+         
+           <p>Copia los objetos seleccionados al portapapeles sin borrarlos. Los objetos están disponibles para pegarlos en el documento actual o en otro documento.</p>
+         
+       </section>
+
+       <section>
+         <title><gui>Pegar</gui> (<keyseq><key>Ctrl</key><key>V</key></keyseq>)</title>
+         
+           <p>Pega objetos del portapapeles en el documento actual. <app>gLabels</app> sólo puede pegar objetos de otro documento de <app>gLabels</app>.</p>
+         
+       </section>
+
+       <section>
+         <title><gui>Eliminar</gui> (<key>Supr</key>)</title>
+         
+           <p>Elimina los objetos seleccionados sin ponerlos en el portapapeles.</p>
+         
+       </section>
+       </section>
+
+</page>
diff --git a/help/es/skipfields.page b/help/es/skipfields.page
new file mode 100644 (file)
index 0000000..934da4f
--- /dev/null
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="mergeskipfields" xml:lang="es">
+
+  <info>
+    <link type="guide" xref="index#merging"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Cómo omitir líneas de dirección en blanco al fusionar un documento.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Compartir Igual 3.0</p>
+    </license>    
+  </info>
+
+  <title>Omitir líneas de dirección vacías</title>
+
+  <p>Esta característica se describe mejor con un ejemplo. En el siguiente archivo CSV, la columna 5 (ADDR2) contiene la segunda línea de dirección para cada registro. Este campo está vacío en los registros 1 y 2, pero no en el 3. (Para que esta característica funcione, el campo no debe contener ningún texto, ni siquiera espacios.)</p>
+
+  <code>
+  LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP
+  Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037
+  McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813
+  Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207
+  </code>
+
+  <p>En la siguiente captura de pantalla, se ha creado un único objeto de texto multilínea para formatear estas direcciones. Tenga en cuenta que ${ADDR2} representa por sí misma la segunda línea de la dirección. (Cualquier texto adicional en esta línea, incluyendo los espacios, anularía esta característica.)</p>
+
+  <media type="image" src="figures/skip-fields-screenshot.png" mime="image/png" style="right">
+  <p>Dirección multilínea</p>
+  </media>
+
+  <p>Al imprimir esta etiqueta se obtiene el siguiente resultado. Tenga en cuenta que la línea que contiene el campo  ${ADDR2} se omite completamente para los dos primeros registros, sin imprimir una línea en blanco.</p>
+
+  <media type="image" src="figures/skip-fields-output.png" mime="image/png" style="right">
+  <p>Salida</p>
+  </media>
+
+</page>
diff --git a/help/fr/about.page b/help/fr/about.page
new file mode 100644 (file)
index 0000000..8c937fa
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="topic" id="about" xml:lang="fr">
+
+  <info>
+    <link type="seealso" xref="index"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Informations à propos de <app>gLabels</app>.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0</p>
+    </license>    
+  </info>
+
+    <title>À propos de <app>gLabels</app></title>
+
+    <p><app>gLabels</app> a été écrit par <link href="mailto:evins@snaught.com">Jim Evins</link>. Pour obtenir de plus amples informations à propos de <app>gLabels</app>, visitez le <link href="http://glabels.org" type="http">site Web de <app>gLabels</app></link>.</p>
+    <p>Pour signaler une anomalie ou émettre une suggestion à propos de cette application ou ce manuel, consultez les indications de la <link href="http://glabels.org/contact/" type="http">page de contact de <app>gLabels</app></link>.</p>
+
+    <p>Ce logiciel est distribué selon les termes de la Licence Publique Générale GNU telle que publiée par la Free Software Foundation ; soit la version 3 de cette licence, soit (à votre convenance) une quelconque version ultérieure. Une copie de cette licence est disponible en suivant <link href="ghelp:gpl" type="help">ce lien</link> ou dans le fichier COPYING inclus dans le code source de ce logiciel.</p>
+</page>
diff --git a/help/fr/basicusage.page b/help/fr/basicusage.page
new file mode 100644 (file)
index 0000000..b157327
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="basicusage" xml:lang="fr">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Comment gérer les fichiers et quitter l'application.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0</p>
+    </license>    
+  </info>
+
+   <title>Utilisation élémentaire</title>
+    
+    <section>
+    <title>Ouverture d'un fichier</title>
+
+      <p>Pour ouvrir un fichier, choisissez <guiseq><gui>Fichier</gui><gui>Ouvrir</gui></guiseq> pour afficher la boîte de dialogue <gui>Ouvrir un fichier</gui>. Choisissez le fichier à ouvrir, puis cliquez sur <gui>Valider</gui>. Le fichier apparaît dans la zone d'affichage de la fenêtre de <app>gLabels</app>.</p>
+
+      <p>Vous pouvez aussi ouvrir plusieurs fichiers avec <app>gLabels</app>. L'application crée une fenêtre séparée pour chaque fichier ouvert.</p>
+
+      <p>L'application enregistre les chemins et les noms des fichiers récemment modifiés et les affiche en tant qu'éléments de menu dans <guiseq><gui>Fichier</gui><gui>Fichiers récents</gui></guiseq>.</p>
+     </section>
+
+     <section id="closefile">
+    <title>Fermeture d'un fichier</title>
+
+      <p>Pour fermer le document en cours, choisissez <guiseq><gui>Fichier</gui><gui>Fermer</gui></guiseq>. Si le document a été modifié, vous devez confirmer dans une boîte de dialogue si vous souhaitez enregistrer les modifications avant de quitter ou si vous souhaitez annuler la commande. S'il n'y a qu'une seule fenêtre active, <app>gLabels</app> se ferme.</p>
+     </section>
+     
+     <section>
+    <title>Enregistrement d'un fichier</title>
+
+      <p>Vous pouvez enregistrer vos fichiers de différentes façons :</p>
+
+      <list><item>
+
+         <p>Pour enregistrer les modifications d'un fichier existant, choisissez <guiseq><gui>Fichier</gui><gui>Enregistrer</gui></guiseq>.</p>
+
+       </item>
+        <item>
+
+         <p>Pour enregistrer un nouveau fichier ou changer le nom d'un fichier existant, choisissez <guiseq><gui>Fichier</gui><gui>Enregistrer sous...</gui></guiseq>. Saisissez un nom de fichier dans la boîte de dialogue <gui>Enregistrer sous</gui> et cliquez sur <gui>Valider</gui>.</p>
+
+       </item>
+      </list>
+     </section>
+
+     <section>
+    <title>Arrêt de <app>gLabels</app></title>
+
+      <p>Pour quitter <app>gLabels</app>, choisissez <guiseq><gui>Fichier</gui><gui>Quitter</gui></guiseq>. Cette commande équivaut à fermer toutes les fenêtres ouvertes. Consultez la section <link xref="basicusage#closefile"/>.</p>
+     </section>
+</page>
diff --git a/help/fr/createnew.page b/help/fr/createnew.page
new file mode 100644 (file)
index 0000000..63ca814
--- /dev/null
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="createnew" xml:lang="fr">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Comment créer de nouveaux objets dans un document.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0</p>
+    </license>    
+  </info>
+
+    <title>Création de nouveaux objets</title>
+
+      <p>Vous pouvez créer des objets en choisissant la fonction appropriée dans le sous-menu <guiseq><gui>Objets</gui><gui>Créer un objet</gui></guiseq> ou en cliquant sur l'icône correspondante de la barre d'outils <gui>Dessin</gui>. La zone d'affichage est alors mise en mode « création d'objet », mode indiqué par le changement d'aspect du pointeur de souris. Pour revenir au mode « sélection » par défaut sans création d'objet, choisissez <guiseq><gui>Objets</gui><gui>Mode sélection</gui></guiseq>. Le pointeur de souris reprend alors sa forme standard (flèche de sélection) dans la fenêtre active.</p>
+
+      <p>Voici la description du mode création d'objet pour chaque type d'objet :</p>
+
+       <section>
+         <title>Texte</title>
+           <p>Cliquez à l'emplacement souhaité pour le coin supérieur gauche de l'objet texte. Les nouveaux objets texte sont initialisés avec la chaîne « Texte ». Pour modifier cet intitulé ou ses autres propriétés, consultez la section <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Boîte</title>
+           <p>Cliquez à l'emplacement souhaité pour le coin supérieur gauche de l'objet boîte, et faites glisser le pointeur jusqu'à l'emplacement désiré pour le coin inférieur droit. Un simple clic quelque part fait apparaître une boîte carrée. Pour modifier les propriétés d'un objet boîte, consultez la section <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Ligne</title>
+           <p>Cliquez à l'emplacement souhaité pour l'origine de la ligne et faites glisser le pointeur jusqu'à l'emplacement souhaité pour l'extrémité. Un simple clic quelque part génère une ligne diagonale. Pour modifier les propriétés d'une ligne, consultez la section <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Ellipse</title>
+           <p>Cliquez à l'emplacement souhaité pour le coin supérieur gauche du rectangle exinscrit de l'objet ellipse et faites glisser le pointeur de souris jusqu'à l'emplacement désiré pour le coin inférieur droit. Un simple clic quelque part génère un cercle. Pour modifier les propriétés d'une ellipse, consultez la section <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Image</title>
+           <p>Cliquez à l'emplacement souhaité pour le coin supérieur gauche de l'objet image et faites glisser le pointeur jusqu'à l'emplacement désiré pour le coin inférieur droit. Un simple clic quelque part génère un emplacement carré. Les nouveaux objets image sont initialisés d'une simple image de damier. Pour modifier cette image ou ses propriétés, consultez la section <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Code-barre</title>
+           <p>Cliquez à l'emplacement souhaité pour le coin supérieur gauche de l'objet code-barre. Les nouveaux objets code-barre sont initialisés avec des données valides de style POSTNET. Pour modifier ces données et leurs propriétés, consultez la section <link xref="editprop"/>.</p>
+       </section>
+
+</page>
diff --git a/help/fr/customize.page b/help/fr/customize.page
new file mode 100644 (file)
index 0000000..0f86730
--- /dev/null
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="customize" xml:lang="fr">
+
+  <info>
+    <link type="guide" xref="index#advanced"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Comment personnaliser <app>gLabels</app> pour l'adapter à vos besoins.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0</p>
+    </license>    
+  </info>
+    
+  <!-- ============= Customization ============================= -->
+  <!-- Use this section to describe how to customize the application. -->
+    <title>Paramétrage</title> 
+    <p>Pour configurer <app>gLabels</app>, allez dans le menu <guiseq><gui>Édition</gui><gui>Préférences</gui></guiseq>. La boîte de dialogue <gui>Préférences</gui> contient les onglets suivants :</p>
+
+  <section id="prefs-locale" style="2column">
+    <title>Localisation</title>
+       <section>
+       <title>Unités</title>
+       <p>Ce groupe de boutons radio permet d'indiquer les unités de mesure que vous préférez. Cochez l'une des options suivantes :</p>
+          <list>
+               <item>
+               <p><gui>Points</gui></p>
+               <p>Utilisation du point (1 point = 1/72e de pouce = 0,352778 mm).</p>
+               </item>
+               <item>
+               <p><gui>Pouces</gui></p>
+               <p>Utilisation du pouce.</p>
+               </item>
+               <item>
+               <p><gui>Millimètres</gui></p>
+               <p>Utilisation du millimètre.</p>
+               </item>
+          </list>
+          <p>Unité par défaut : le <gui>pouce</gui>.</p>
+       </section>
+
+       <section>
+       <title>Taille de page par défaut</title>
+       <p>Ce groupe de boutons radio permet d'indiquer le format de page que vous préférez. Ceci vous aide à trouver plus rapidement des types de support lors de la création d'une nouvelle étiquette ou carte.</p>
+          <list>
+               <item>
+               <p><gui>Lettre US</gui></p>
+               <p>Si la plupart de vos supports sont au format de lettre US (8.5 x 11 pouces).</p>
+               </item>
+               <item>
+               <p><gui>ISO A4</gui></p>
+               <p>Si la plupart de vos supports sont au format ISO A4 (210 x 297 mm).</p>
+               </item>
+          </list>
+          <p>Support par défaut : <gui>Lettre US</gui>.</p>          
+       </section>
+    </section>
+
+  <section id="prefs-defaults" style="2column">
+    <title>Paramètres par défaut pour les objets</title>
+
+       <section>
+       <title>Texte</title>
+       <p>Utilisez ces contrôles pour définir les paramètres par défaut des nouveaux objets texte. Ces propriétés sont :</p>
+          <list>
+               <item>
+               <p><gui>Police</gui></p>
+               <p>Permet de sélectionner la famille de police et sa taille, et si elle doit être en gras ou en italique.</p>
+               </item>
+               <item>
+               <p><gui>Couleur</gui></p>
+               <p>Définit la couleur par défaut du texte.</p>
+               </item>
+               <item>
+               <p><gui>Alignement</gui></p>
+               <p>Définit l'alignement par défaut du texte : à gauche, centré ou à droite.</p>
+               </item>
+          </list>
+       </section>
+
+       <section>
+       <title>Ligne</title>
+       <p>Utilisez ces contrôles pour définir les propriétés par défaut des lignes et bordures de nouveaux objets. Ces propriétés sont :</p>
+          <list>
+               <item>
+               <p><gui>Épaisseur</gui></p>
+               <p>Définit l'épaisseur par défaut des lignes.</p>
+               </item>
+               <item>
+               <p><gui>Couleur</gui></p>
+               <p>Définit la couleur par défaut des lignes.</p>
+               </item>
+          </list>
+       </section>
+
+       <section>
+       <title>Remplissage</title>
+       <p>Utilisez ce contrôle pour définir la couleur de remplissage par défaut des nouveaux objets. Cette propriété est :</p>
+          <list>
+               <item>
+               <p><gui>Couleur</gui></p>
+               <p>Définit la couleur par défaut des remplissages.</p>
+               </item>
+          </list>
+       </section>
+       </section>
+
+</page>
diff --git a/help/fr/customtemplate.page b/help/fr/customtemplate.page
new file mode 100644 (file)
index 0000000..5c1ab80
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="customtemplate" xml:lang="fr">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Comment créer vos propres modèles à partir de produits industrialisés.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0</p>
+    </license>    
+  </info>
+
+    <title>Création de modèles personnalisés.</title>
+
+      <p>Pour créer un nouveau modèle personnalisé, choisissez <guiseq><gui>Fichier</gui><gui>Créateur de modèles...</gui></guiseq> pour afficher l'assistant <gui>Créateur de modèles</gui>. Il vous aide à créer un modèle personnalisé compatible avec la plupart des modèles de support du commerce.</p>
+
+      <p>Si vous préférez créer votre propre modèle manuellement, reportez-vous à la section <link xref="mancreate"/></p>
+
+</page>
diff --git a/help/fr/editprop.page b/help/fr/editprop.page
new file mode 100644 (file)
index 0000000..0f79b68
--- /dev/null
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="editprop" xml:lang="fr">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Comment modifier les propriétés des objets.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0</p>
+    </license>    
+  </info>
+
+    <title>Modification des propriétés d'un objet</title>
+
+    <section id="glabels-object-properties">
+
+      <p>Les propriétés de la plupart des objets peuvent être modifiées avec l'éditeur d'objet présent dans le panneau latéral comme illustré ci-dessous. Pour que l'éditeur d'objet soit actif, il faut d'abord sélectionner un objet. Consultez la section <link xref="select"/>.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/object-editor-sidebar.png" mime="image/png" style="right">
+               <p>Contrôles d'impression</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>L'éditeur d'objet propose, selon leur type, le jeu d'onglets suivants :</p>
+
+      <section id="object-editor-text">
+       <title>Onglet Texte (objets Texte)</title>
+
+       <p>Cet onglet contient un petit éditeur permettant de modifier le contenu d'un objet texte. Il contient aussi un menu déroulant indiquant les champs de fusion disponibles pouvant être insérés dans le texte.</p>
+
+      </section>
+
+      <section id="object-editor-image">
+       <title>Onglet Image (objets Image)</title>
+
+       <p>Cette partie contient une zone de sélection de fichier avec aperçu permettant de choisir des fichiers image. Le bouton de navigation s'utilise pour explorer aisément les fichiers image. On peut aussi indiquer un champ de fusion utilisable à la place du nom de fichier au moment de l'impression.</p>
+
+      </section>
+
+      <section id="object-editor-data">
+       <title>Onglet Code-barre (objets Code-barre)</title>
+
+       <p>Cet onglet contient une zone de saisie de texte pour saisir la chaîne alphanumérique d'un code-barre. On peut aussi indiquer un champ de fusion qui fournit l'information au moment de l'impression.</p>
+
+      </section>
+
+      <section id="object-editor-style">
+       <title>Onglet Style (objets Texte)</title>
+
+       <p>Cet onglet contient des éléments à renseigner pour choisir les propriétés du texte : famille, taille et style de la police, couleur, alignement et espacement.</p>
+
+      </section>
+
+      <section id="object-editor-barcode">
+       <title>Onglet Style (objets Code-barre)</title>
+
+       <p>Cet onglet contient des éléments à renseigner pour choisir les propriétés du code-barre : le style, la couleur, et s'il faut y inclure ou non une somme de contrôle.</p>
+
+      </section>
+
+      <section id="object-editor-line">
+       <title>Onglet Ligne</title>
+
+       <p>Cet onglet contient deux éléments permettant de choisir les propriétés des lignes et des bordures : épaisseur et couleur.</p>
+
+      </section>
+
+      <section id="object-editor-fill">
+       <title>Onglet Remplissage</title>
+
+       <p>Cet onglet contient des éléments pour renseigner les propriétés de remplissage des objets boîte et ellipse. Pour l'instant, la couleur est la seule option de remplissage disponible.</p>
+
+      </section>
+
+      <section id="object-editor-size">
+       <title>Onglet Taille (tous objets, sauf Ligne)</title>
+
+       <p>Cet onglet contient deux éléments pour choisir la largeur et la hauteur d'un objet. Il y a aussi une case à cocher pour figer le rapport largeur/hauteur pendant le redimensionnement de l'objet. Pour les objets Image, il y a en plus un bouton permettant de revenir aux dimensions d'origine (en supposant une résolution de 72 ppp).</p>
+
+      </section>
+
+      <section id="object-editor-size-line">
+       <title>Onglet Taille (objets Ligne)</title>
+
+       <p>Cet onglet contient deux éléments pour choisir la longueur et l'angle d'inclinaison d'un objet ligne.</p>
+
+      </section>
+
+      <section id="object-editor-position">
+       <title>Onglet Position</title>
+
+       <p>Cet onglet contient des éléments permettant de modifier la position d'un objet.</p>
+
+      </section>
+
+
+      <section id="object-editor-shadow">
+       <title>Onglet Ombrage (tous objets, sauf code-barre)</title>
+
+       <p>Cet onglet contient les paramètres pour ajouter une ombre à un objet.</p>
+
+      </section>
+
+
+    </section>
+
+<!-- ============= Other Manipulations of Objects ========= -->
+    <section id="glabels-object-manipulation"> 
+      <title>Autres possibilités de manipulation d'objets</title>
+
+      <p>Les objets peuvent aussi être manipulés des façons suivantes.</p>
+
+      <section id="other-moving-resizing">
+       <title>Déplacement et redimensionnement des objets</title>
+
+       <p>Un objet peut être déplacé en cliquant dessus et en le faisant glisser à sa nouvelle place. Si cet objet fait partie d'une sélection groupée, tous les objets sélectionnés sont déplacés en même temps tout en gardant leurs positions relatives les uns par rapport aux autres. Si aucun objet n'est sélectionné, un clic sur un objet crée une nouvelle sélection contenant cet objet. Consultez la section <link xref="select"/>.</p>
+
+       <p>Un objet sélectionné peut être redimensionné en cliquant sur une de ses poignées et en la faisant glisser jusqu'à obtenir les dimensions souhaitées.</p>
+
+      </section>
+
+      <section id="other-stacking-order">
+       <title>Modification de l'ordre d'empilage</title>
+
+       <p>L'ordre d'empilage se rapporte à la position relative des objets sur l'axe Z. Lorsque des objets se recouvrent, il indique quel objet apparaît au-dessus de l'autre. Par défaut, les plus récents sont affichés par-dessus les plus anciens. Pour modifier cet ordre, sélectionnez un ou plusieurs objets à déplacer et choisissez <guiseq><gui>Objets</gui><gui>Ordre</gui><gui>Avancer au premier plan </gui></guiseq> pour placer la sélection au-dessus de la pile, ou <guiseq><gui>Objets</gui><gui>Ordre</gui><gui>Reculer à l'arrière-plan</gui></guiseq> pour placer la sélection au bas de la pile. Ces commandes sont aussi accessibles par le menu contextuel (clic droit dans la zone d'affichage lorsqu'un élément au moins est sélectionné).</p>
+
+      </section>
+
+      <section id="other-rotating-flipping">
+       <title>Rotation ou retournement des objets</title>
+
+       <p>L'élément de menu <guiseq><gui>Objets</gui><gui>Rotation/Retournement</gui></guiseq> donne accès à un sous-menu permettant de faire pivoter un objet de 90° dans n'importe quel sens ou de le retourner horizontalement ou verticalement. Ces commandes sont aussi accessibles avec le menu contextuel (clic droit dans la zone d'affichage lorsqu'un élément au moins est sélectionné).</p>
+
+         <note>
+         <p>Cette fonctionnalité peut se révéler utile quand vous concevez des pochettes pour des boitiers CD. Pour le titre sur la tranche, vous aurez besoin de faire pivoter le texte verticalement. Après avoir créé une boîte texte normale, sélectionnez <guiseq><gui>Objets</gui><gui>Rotation/Retournement</gui></guiseq> pour faire tourner la boîte texte selon vos besoins.</p>
+         </note>
+
+      </section>
+
+      <section id="other-alignment">
+       <title>Alignement d'objets</title>
+
+       <p>Des objets peuvent être alignés horizontalement ou verticalement les uns par rapport aux autres ou centrés sur les médianes de l'étiquette. Pour cela, choisissez l'option adéquate dans les sous-menus de <guiseq><gui>Objets</gui><gui>Aligner horizontalement</gui></guiseq> ou <guiseq><gui>Objets</gui><gui>Aligner verticalement</gui></guiseq>. Ces commandes sont aussi accessibles par le menu contextuel (clic droit dans la zone d'affichage lorsqu'un élément au moins est sélectionné).</p>
+
+      </section>
+
+      <section id="other-property-bar">
+       <title>Utilisation de la barre des propriétés</title>
+
+       <p>La barre des propriétés sert à modifier certaines options communes à un ensemble d'objets : famille, taille, gras ou italique de la police, alignement ou couleur du texte, couleur de remplissage, couleur de ligne ou de bordure et épaisseur de ligne. La barre des propriétés est aussi utilisée pour définir les options appliquées par défaut à tout nouvel objet créé.</p>
+
+      </section>
+
+
+
+    </section>
+
+</page>
diff --git a/help/fr/figures/main-window-empty.png b/help/fr/figures/main-window-empty.png
deleted file mode 100644 (file)
index 7b97362..0000000
Binary files a/help/fr/figures/main-window-empty.png and /dev/null differ
diff --git a/help/fr/figures/merge-ex1-1.png b/help/fr/figures/merge-ex1-1.png
deleted file mode 100644 (file)
index 0eb7db8..0000000
Binary files a/help/fr/figures/merge-ex1-1.png and /dev/null differ
diff --git a/help/fr/figures/merge-ex1-2.png b/help/fr/figures/merge-ex1-2.png
deleted file mode 100644 (file)
index 42145f6..0000000
Binary files a/help/fr/figures/merge-ex1-2.png and /dev/null differ
diff --git a/help/fr/figures/merge-ex1-3.png b/help/fr/figures/merge-ex1-3.png
deleted file mode 100644 (file)
index 84918ea..0000000
Binary files a/help/fr/figures/merge-ex1-3.png and /dev/null differ
diff --git a/help/fr/figures/merge-ex1-4.png b/help/fr/figures/merge-ex1-4.png
deleted file mode 100644 (file)
index 49a0aae..0000000
Binary files a/help/fr/figures/merge-ex1-4.png and /dev/null differ
diff --git a/help/fr/figures/merge-ex2-1.png b/help/fr/figures/merge-ex2-1.png
deleted file mode 100644 (file)
index 06225c7..0000000
Binary files a/help/fr/figures/merge-ex2-1.png and /dev/null differ
diff --git a/help/fr/figures/merge-ex2-2.png b/help/fr/figures/merge-ex2-2.png
deleted file mode 100644 (file)
index 699168d..0000000
Binary files a/help/fr/figures/merge-ex2-2.png and /dev/null differ
diff --git a/help/fr/figures/merge-ex2-3.png b/help/fr/figures/merge-ex2-3.png
deleted file mode 100644 (file)
index 960777d..0000000
Binary files a/help/fr/figures/merge-ex2-3.png and /dev/null differ
diff --git a/help/fr/figures/merge-ex2-4.png b/help/fr/figures/merge-ex2-4.png
deleted file mode 100644 (file)
index dee26f3..0000000
Binary files a/help/fr/figures/merge-ex2-4.png and /dev/null differ
diff --git a/help/fr/figures/object-editor-sidebar.png b/help/fr/figures/object-editor-sidebar.png
deleted file mode 100644 (file)
index e9a6a4a..0000000
Binary files a/help/fr/figures/object-editor-sidebar.png and /dev/null differ
diff --git a/help/fr/figures/print-copies.png b/help/fr/figures/print-copies.png
deleted file mode 100644 (file)
index 4ecdcca..0000000
Binary files a/help/fr/figures/print-copies.png and /dev/null differ
diff --git a/help/fr/figures/print-merge.png b/help/fr/figures/print-merge.png
deleted file mode 100644 (file)
index aaaf534..0000000
Binary files a/help/fr/figures/print-merge.png and /dev/null differ
index c86103ddb2753c94315063e031d6196f97199bb3..06d8383a57d279e97f380a57ff200b84708c44f8 100644 (file)
 #
 # Alain Lojewski <allomervan@gmail.com>, 2009.
 # Claude Paroz <claude@2xlibre.net>, 2009.
+# Gérard Baylard <Geodebay@gmail.com>, 2010.
+# Bruno Brouard <annoa.b@gmail.com>, 2011.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: glabels glabels_2_2\n"
-"POT-Creation-Date: 2009-12-14 19:24+0000\n"
-"PO-Revision-Date: 2010-01-09 15:05+0100\n"
-"Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
+"POT-Creation-Date: 2011-02-02 15:10+0000\n"
+"PO-Revision-Date: 2010-11-20 22:18+0100\n"
+"Last-Translator: Gérard Baylard <Geodebay@gmail.com>\n"
 "Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Content-Transfer-Encoding: 8 bits\n"
+"Plural-Forms: nplurals=2; plural=n>1;\n"
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:195(None)
+#: C/skipfields.page:45(None)
+#, fuzzy
 msgid ""
-"@@image: 'figures/main-window-empty.png'; "
-"md5=226b58f05f4171531066358a29cda1a7"
+"@@image: 'figures/skip-fields-screenshot.png'; "
+"md5=eef4a81f48546bd7d3753656a3df9cb7"
 msgstr ""
-"@@image: 'figures/main-window-empty.png'; "
-"md5=226b58f05f4171531066358a29cda1a7"
+"@@image: 'figures/skip-fields-screenshot.png'; "
+"md5=eef4a81f48546bd7d3753656a3df9cb7"
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:447(None)
+#: C/skipfields.page:53(None)
+#, fuzzy
 msgid ""
-"@@image: 'figures/print-copies.png'; md5=ebb4d08810a67cc9cd7ec6ddd7b52fb0"
+"@@image: 'figures/skip-fields-output.png'; "
+"md5=b64d1a7fdf0d37e9a6d93f0bc2f9fa0d"
 msgstr ""
-"@@image: 'figures/print-copies.png'; md5=ebb4d08810a67cc9cd7ec6ddd7b52fb0"
+"@@image: 'figures/skip-fields-output.png'; "
+"md5=b64d1a7fdf0d37e9a6d93f0bc2f9fa0d"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:479(None)
-msgid ""
-"@@image: 'figures/print-merge.png'; md5=ffe6027513a10f7ba940c350c1dc5717"
-msgstr ""
-"@@image: 'figures/print-merge.png'; md5=ffe6027513a10f7ba940c350c1dc5717"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:790(None)
-msgid ""
-"@@image: 'figures/object-editor-sidebar.png'; "
-"md5=14eace177c1f5bfe36022acbbd6a9f0e"
-msgstr ""
-"@@image: 'figures/object-editor-sidebar.png'; "
-"md5=14eace177c1f5bfe36022acbbd6a9f0e"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1231(None)
-msgid ""
-"@@image: 'figures/merge-ex1-1.png'; md5=55a97963022047cdad6aa198b5ed698e"
-msgstr ""
-"@@image: 'figures/merge-ex1-1.png'; md5=55a97963022047cdad6aa198b5ed698e"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1256(None)
-msgid ""
-"@@image: 'figures/merge-ex1-2.png'; md5=d03979f010e20e98532258edb20b1bc0"
-msgstr ""
-"@@image: 'figures/merge-ex1-2.png'; md5=d03979f010e20e98532258edb20b1bc0"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1284(None)
-msgid ""
-"@@image: 'figures/merge-ex1-3.png'; md5=94e382ccdfbc2fe5d320010d2ef10c61"
-msgstr ""
-"@@image: 'figures/merge-ex1-3.png'; md5=94e382ccdfbc2fe5d320010d2ef10c61"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1302(None)
-msgid ""
-"@@image: 'figures/merge-ex1-4.png'; md5=e72810bc3c191df6c8b2ad0cb1131021"
-msgstr ""
-"@@image: 'figures/merge-ex1-4.png'; md5=e72810bc3c191df6c8b2ad0cb1131021"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1348(None)
-msgid ""
-"@@image: 'figures/merge-ex2-1.png'; md5=4f062158be21bfadc4adfbdcf5d0206f"
-msgstr ""
-"@@image: 'figures/merge-ex2-1.png'; md5=4f062158be21bfadc4adfbdcf5d0206f"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1374(None)
-msgid ""
-"@@image: 'figures/merge-ex2-2.png'; md5=f69a7e0ae86f66b0d70d39a7757918fa"
-msgstr ""
-"@@image: 'figures/merge-ex2-2.png'; md5=f69a7e0ae86f66b0d70d39a7757918fa"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1399(None) C/glabels.xml:1513(None)
-msgid ""
-"@@image: 'figures/merge-ex2-3.png'; md5=f5134b9e911ebdd17d4a5b36a5ba56d0"
-msgstr ""
-"@@image: 'figures/merge-ex2-3.png'; md5=f5134b9e911ebdd17d4a5b36a5ba56d0"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1417(None) C/glabels.xml:1531(None)
-msgid ""
-"@@image: 'figures/merge-ex2-4.png'; md5=29a60e970cb026aecf75543203494b00"
-msgstr ""
-"@@image: 'figures/merge-ex2-4.png'; md5=29a60e970cb026aecf75543203494b00"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1464(None)
-msgid ""
-"@@image: 'figures/merge-ex3-1.png'; md5=b0c387b5fcfd730b2ae75172895ff5b8"
-msgstr ""
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1492(None)
-msgid ""
-"@@image: 'figures/merge-ex3-2.png'; md5=09f105e133657345e6e478a464e5b49f"
-msgstr ""
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1767(None)
-msgid ""
-"@@image: 'figures/glabels-template-label.png'; "
-"md5=b7db4090373462b8d45feb22d4cd5646"
-msgstr ""
-"@@image: 'figures/glabels-template-label.png'; "
-"md5=b7db4090373462b8d45feb22d4cd5646"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:1888(None)
-msgid ""
-"@@image: 'figures/glabels-template-cd.png'; "
-"md5=145b49a5380de63ffa9451d2bbb81934"
-msgstr ""
-"@@image: 'figures/glabels-template-cd.png'; "
-"md5=145b49a5380de63ffa9451d2bbb81934"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/glabels.xml:2150(None)
-msgid ""
-"@@image: 'figures/glabels-template-layout.png'; "
-"md5=a8adcff0584be1f0275bc2a169a580df"
-msgstr ""
-"@@image: 'figures/glabels-template-layout.png'; "
-"md5=a8adcff0584be1f0275bc2a169a580df"
-
-#: C/glabels.xml:31(title)
-msgid "<application>gLabels</application> Manual V2.2.6"
-msgstr "Manuel <application>gLabels</application> v2.2.6"
-
-#: C/glabels.xml:33(para)
-msgid ""
-"User manual for the <application>gLabels</application> label and business "
-"card creation program"
+#: C/skipfields.page:9(desc)
+msgid "How to skip blank address lines when doing a document merge."
 msgstr ""
-"Manuel d'utilisation de <application>gLabels</application>, utilitaire de "
-"création d'étiquettes et de cartes de visite"
-
-#: C/glabels.xml:38(year)
-msgid "2003-2009"
-msgstr "2003-2009"
+"Comment éviter des lignes blanches dans les adresses lors de la fusion de "
+"documents."
 
-#: C/glabels.xml:39(holder) C/glabels.xml:42(publishername)
-#: C/glabels.xml:93(para) C/glabels.xml:103(para)
+#: C/skipfields.page:13(name) C/select.page:13(name) C/printfile.page:13(name)
+#: C/newlabel.page:13(name) C/multifile.page:13(name) C/merge.page:13(name)
+#: C/mergefeatures.page:13(name) C/merge-ex4.page:13(name)
+#: C/merge-ex3.page:13(name) C/merge-ex2.page:13(name)
+#: C/merge-ex1.page:13(name) C/mancreate.page:14(name)
+#: C/labelprop.page:13(name) C/index.page:11(name) C/editprop.page:13(name)
+#: C/customtemplate.page:13(name) C/customize.page:11(name)
+#: C/createnew.page:13(name) C/basicusage.page:13(name) C/about.page:13(name)
 msgid "Jim Evins"
 msgstr "Jim Evins"
 
-#: C/glabels.xml:2(para)
-msgid ""
-"Permission is granted to copy, distribute and/or modify this document under "
-"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any "
-"later version published by the Free Software Foundation with no Invariant "
-"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy "
-"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or "
-"in the file COPYING-DOCS distributed with this manual."
-msgstr ""
-"Permission vous est donnée de copier, distribuer et/ou modifier ce document "
-"selon les termes de la licence de documentation libre GNU, Version 1.1 ou "
-"ultérieure publiée par la Free Software Foundation sans section inaltérable, "
-"sans texte de première page de couverture ni texte de dernière page de "
-"couverture. Vous trouverez un exemplaire de cette licence en suivant ce "
-"<ulink type=\"help\" url=\"ghelp:fdl\">lien</ulink> ou dans le fichier "
-"COPYING-DOCS fourni avec le présent manuel."
-
-#: C/glabels.xml:12(para)
-msgid ""
-"This manual is part of a collection of GNOME manuals distributed under the "
-"GFDL. If you want to distribute this manual separately from the collection, "
-"you can do so by adding a copy of the license to the manual, as described in "
-"section 6 of the license."
-msgstr ""
-"Ce manuel fait partie de la collection de manuels GNOME distribués selon les "
-"termes de la licence de documentation libre GNU. Si vous souhaitez "
-"distribuer ce manuel indépendamment de la collection, vous devez joindre un "
-"exemplaire de la licence au document, comme indiqué dans la section 6 de "
-"celle-ci."
-
-#: C/glabels.xml:19(para)
-msgid ""
-"Many of the names used by companies to distinguish their products and "
-"services are claimed as trademarks. Where those names appear in any GNOME "
-"documentation, and the members of the GNOME Documentation Project are made "
-"aware of those trademarks, then the names are in capital letters or initial "
-"capital letters."
-msgstr ""
-"La plupart des noms utilisés par les entreprises pour distinguer leurs "
-"produits et services sont des marques déposées. Lorsque ces noms "
-"apparaissent dans la documentation GNOME et que les membres du projet de "
-"Documentation GNOME sont informés de l'existence de ces marques déposées, "
-"soit ces noms entiers, soit leur première lettre est en majuscule."
-
-#: C/glabels.xml:35(para)
-msgid ""
-"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, "
-"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT "
-"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS "
-"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE "
-"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR "
-"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR "
-"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL "
-"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY "
-"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN "
-"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION "
-"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND"
-msgstr ""
-"LE PRÉSENT DOCUMENT EST FOURNI « TEL QUEL », SANS AUCUNE GARANTIE, EXPRESSE "
-"OU IMPLICITE, Y COMPRIS, ET SANS LIMITATION, LES GARANTIES DE "
-"MARCHANDABILITÉ, D'ADÉQUATION À UN OBJECTIF PARTICULIER OU DE NON INFRACTION "
-"DU DOCUMENT OU DE SA VERSION MODIFIÉE. L'UTILISATEUR ASSUME TOUT RISQUE "
-"RELATIF À LA QUALITÉ, À LA PERTINENCE ET À LA PERFORMANCE DU DOCUMENT OU DE "
-"SA VERSION DE MISE À JOUR. SI LE DOCUMENT OU SA VERSION MODIFIÉE S'AVÉRAIT "
-"DÉFECTUEUSE, L'UTILISATEUR (ET NON LE RÉDACTEUR INITIAL, L'AUTEUR, NI TOUT "
-"AUTRE PARTICIPANT) ENDOSSERA LES COÛTS DE TOUTE INTERVENTION, RÉPARATION OU "
-"CORRECTION NÉCESSAIRE. CETTE DÉNÉGATION DE RESPONSABILITÉ CONSTITUE UNE "
-"PARTIE ESSENTIELLE DE CETTE LICENCE. AUCUNE UTILISATION DE CE DOCUMENT OU DE "
-"SA VERSION MODIFIÉE N'EST AUTORISÉE AUX TERMES DU PRÉSENT ACCORD, EXCEPTÉ "
-"SOUS CETTE DÉNÉGATION DE RESPONSABILITÉ ; "
-
-#: C/glabels.xml:55(para)
-msgid ""
-"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING "
-"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY "
-"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE "
-"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON "
-"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF "
-"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, "
-"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES "
-"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED "
-"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE "
-"POSSIBILITY OF SUCH DAMAGES."
-msgstr ""
-"EN AUCUNE CIRCONSTANCE ET SOUS AUCUNE INTERPRÉTATION DE LA LOI, QU'IL "
-"S'AGISSE D'UN DÉLIT CIVIL (Y COMPRIS LA NÉGLIGENCE), CONTRACTUEL OU AUTRE, "
-"L'AUTEUR, LE RÉDACTEUR INITIAL, TOUT PARTICIPANT OU TOUT DISTRIBUTEUR DE CE "
-"DOCUMENT OU DE SA VERSION MODIFIÉE, OU TOUT FOURNISSEUR DE L'UNE DE CES "
-"PARTIES NE POURRA ÊTRE TENU RESPONSABLE À L'ÉGARD DE QUICONQUE POUR TOUT "
-"DOMMAGE DIRECT, INDIRECT, PARTICULIER, OU ACCIDENTEL DE TOUT TYPE Y COMPRIS, "
-"SANS LIMITATION, LES DOMMAGES LIÉS À LA PERTE DE CLIENTÈLE, À UN ARRÊT DE "
-"TRAVAIL, À UNE DÉFAILLANCE OU UN MAUVAIS FONCTIONNEMENT INFORMATIQUE, OU À "
-"TOUT AUTRE DOMMAGE OU PERTE LIÉE À L'UTILISATION DU DOCUMENT ET DE SES "
-"VERSIONS MODIFIÉES, MÊME SI LADITE PARTIE A ÉTÉ INFORMÉE DE L'ÉVENTUALITÉ DE "
-"TELS DOMMAGES."
-
-#: C/glabels.xml:28(para)
-msgid ""
-"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS "
-"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: "
-"<placeholder-1/>"
-msgstr ""
-"LE PRÉSENT DOCUMENT ET SES VERSIONS MODIFIÉES SONT FOURNIS SELON LES TERMES "
-"DE LA LICENCE DE DOCUMENTATION LIBRE GNU SACHANT QUE : <placeholder-1/>"
-
-#: C/glabels.xml:52(firstname)
-msgid "Jim"
-msgstr "Jim"
-
-#: C/glabels.xml:53(surname)
-msgid "Evins"
-msgstr "Evins"
-
-#: C/glabels.xml:87(revnumber)
-msgid "gLabels Manual V2.2.6"
-msgstr "Manuel glabels v2.2.6"
-
-#: C/glabels.xml:88(date)
-msgid "October 2009"
-msgstr "Octobre 2009"
-
-#: C/glabels.xml:90(para)
-msgid "Mario Blättermann <email>mariobl@gnome.org</email>"
-msgstr "Mario Blättermann <email>mariobl@gnome.org</email>"
-
-#: C/glabels.xml:97(revnumber)
-msgid "gLabels Manual V2.2"
-msgstr "Manuel glabels v2.2"
-
-#: C/glabels.xml:98(date)
-msgid "December 2007"
-msgstr "Décembre 2007"
-
-#: C/glabels.xml:100(para)
-msgid "Jim Evins <email>evins@snaught.com</email>"
-msgstr "Jim Evins <email>evins@snaught.com</email>"
-
-#: C/glabels.xml:108(releaseinfo)
-msgid ""
-"This manual describes version 2.2.6 of <application>gLabels</application>."
-msgstr ""
-"Ce manuel documente la version 2.2.6 de <application>gLabels</application>."
-
-#: C/glabels.xml:111(title)
-msgid "Feedback"
-msgstr "Votre avis"
-
-#: C/glabels.xml:112(para)
-msgid ""
-"To report a bug or make a suggestion regarding the <application>gLabels</"
-"application> application or this manual, follow the directions in the <ulink "
-"url=\"http://glabels.sourceforge.net/contact/\" type=\"http"
-"\"><application>gLabels</application> Contact Page</ulink>."
-msgstr ""
-"Pour signaler une anomalie ou émettre une suggestion concernant l'application "
-"<application>gLabels</application> ou ce manuel, procédez comme indiqué sur "
-"la <ulink url=\"http://glabels.sourceforge.net/contact/\" type=\"http\">Page "
-"de contact de <application>gLabels</application></ulink>."
-
-#: C/glabels.xml:121(primary)
-msgid "gLabels"
-msgstr "glabels"
-
-#: C/glabels.xml:124(primary)
-msgid "glabels"
-msgstr "glabels"
-
-#: C/glabels.xml:135(title)
-msgid "Introduction"
-msgstr "Introduction"
-
-#: C/glabels.xml:137(para)
-msgid ""
-"The <application>gLabels</application> application is a lightweight program "
-"for creating labels and business cards for the <systemitem>GNOME desktop</"
-"systemitem> environment. It is designed to work with various laser/ink-jet "
-"peel-off label and business card sheets that you'll find at most office "
-"supply stores."
-msgstr ""
-"L'application <application>gLabels</application> est un petit utilitaire "
-"capable de créer des étiquettes et des cartes de visite sous l'environnement "
-"de bureau GNOME. Avec une simple imprimante laser ou à jet d'encre, il peut "
-"gérer une multitude de matrices standards que vous trouverez dans la plupart "
-"des magasins spécialisés."
-
-#: C/glabels.xml:158(title)
-msgid "Getting Started"
-msgstr "Premiers pas"
-
-#: C/glabels.xml:161(title)
-msgid "To Start <application>gLabels</application>"
-msgstr "Démarrage de <application>gLabels</application>"
-
-#: C/glabels.xml:162(para)
-msgid "You can start <application>gLabels</application> in the following ways:"
-msgstr "Vous pouvez lancer <application>gLabels</application> de deux façons :"
-
-#: C/glabels.xml:166(term)
-msgid "<guimenu>Applications</guimenu> menu"
-msgstr "Menu <guimenu>Applications</guimenu>"
-
-#: C/glabels.xml:168(para)
-msgid ""
-"Choose <menuchoice><guisubmenu>Office</guisubmenu><guimenuitem>gLabels</"
-"guimenuitem></menuchoice>."
-msgstr ""
-"Choisissez <menuchoice><guisubmenu>Bureautique</guisubmenu><guimenuitem>gLabels</"
-"guimenuitem></menuchoice>."
-
-#: C/glabels.xml:176(term)
-msgid "Command line"
-msgstr "En ligne de commande"
-
-#: C/glabels.xml:178(para)
-msgid "Type <command>glabels</command>, then press <keycap>Return</keycap>:"
-msgstr ""
-"Saisissez <command>glabels</command>, puis appuyez sur <keycap>Entrée</keycap> :"
-
-#: C/glabels.xml:186(title)
-msgid "When You Start <application>gLabels</application>"
-msgstr "Au démarrage de <application>gLabels</application>"
-
-#: C/glabels.xml:187(para)
+#: C/skipfields.page:14(email) C/select.page:14(email)
+#: C/printfile.page:14(email) C/newlabel.page:14(email)
+#: C/multifile.page:14(email) C/merge.page:14(email)
+#: C/mergefeatures.page:14(email) C/merge-ex4.page:14(email)
+#: C/merge-ex3.page:14(email) C/merge-ex2.page:14(email)
+#: C/merge-ex1.page:14(email) C/mancreate.page:15(email)
+#: C/labelprop.page:14(email) C/index.page:12(email) C/editprop.page:14(email)
+#: C/customtemplate.page:14(email) C/customize.page:12(email)
+#: C/createnew.page:14(email) C/basicusage.page:14(email)
+#: C/about.page:14(email)
+msgid "evins@snaught.com"
+msgstr "evins@snaught.com"
+
+#: C/skipfields.page:17(name) C/select.page:17(name) C/printfile.page:17(name)
+#: C/newlabel.page:17(name) C/multifile.page:17(name) C/merge.page:17(name)
+#: C/mergefeatures.page:17(name) C/merge-ex4.page:17(name)
+#: C/merge-ex3.page:17(name) C/merge-ex2.page:17(name)
+#: C/merge-ex1.page:17(name) C/mancreate.page:18(name)
+#: C/labelprop.page:17(name) C/index.page:15(name) C/editprop.page:17(name)
+#: C/customtemplate.page:17(name) C/customize.page:15(name)
+#: C/createnew.page:17(name) C/basicusage.page:17(name) C/about.page:17(name)
+msgid "Mario Blättermann"
+msgstr "Mario Blättermann"
+
+#: C/skipfields.page:18(email) C/select.page:18(email)
+#: C/printfile.page:18(email) C/newlabel.page:18(email)
+#: C/multifile.page:18(email) C/merge.page:18(email)
+#: C/mergefeatures.page:18(email) C/merge-ex4.page:18(email)
+#: C/merge-ex3.page:18(email) C/merge-ex2.page:18(email)
+#: C/merge-ex1.page:18(email) C/mancreate.page:19(email)
+#: C/labelprop.page:18(email) C/index.page:16(email) C/editprop.page:18(email)
+#: C/customtemplate.page:18(email) C/customize.page:16(email)
+#: C/createnew.page:18(email) C/basicusage.page:18(email)
+#: C/about.page:18(email)
+msgid "mariobl@gnome.org"
+msgstr "mariobl@gnome.org"
+
+#: C/skipfields.page:21(p) C/select.page:21(p) C/printfile.page:21(p)
+#: C/newlabel.page:21(p) C/multifile.page:21(p) C/merge.page:21(p)
+#: C/mergefeatures.page:21(p) C/merge-ex4.page:21(p) C/merge-ex3.page:21(p)
+#: C/merge-ex2.page:21(p) C/merge-ex1.page:21(p) C/mancreate.page:22(p)
+#: C/labelprop.page:21(p) C/index.page:19(p) C/editprop.page:21(p)
+#: C/customtemplate.page:21(p) C/customize.page:19(p) C/createnew.page:21(p)
+#: C/basicusage.page:21(p) C/about.page:21(p)
+msgid "Creative Commons Share Alike 3.0"
+msgstr ""
+"Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0"
+
+#: C/skipfields.page:25(title)
+msgid "Skipping blank address lines"
+msgstr "Élision des lignes blanches dans les adresses"
+
+#: C/skipfields.page:27(p)
+msgid ""
+"This feature can be best described by a simple example. In the following CSV "
+"file, column 5 (ADDR2) contains the second address line for each record. "
+"This field is empty in records 1 and 2, but not in record 3. (For this "
+"feature to work, the field must be completely empty -- any text, including "
+"spaces will defeat this feature.)"
+msgstr ""
+"Cette fonctionnalité est mieux décrite avec un simple exemple. Dans le "
+"fichier CVS suivant, la colonne 5 (ADR2) contient la deuxième ligne "
+"d'adresse pour chaque enregistrement. Ce champ est vide dans les "
+"enregistrements 1 et 2, mais pas dans le 3 (pour que cette fonctionnalité "
+"fonctionne, le champ doit être totalement vide — tout texte, y compris des "
+"espaces, la met en défaut)."
+
+#: C/skipfields.page:33(code)
+#, no-wrap
 msgid ""
-"When you start <application>gLabels</application>, the following window is "
-"displayed."
+"\n"
+"  LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n"
+"  Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n"
+"  McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n"
+"  Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n"
+"  "
 msgstr ""
-"Lorsque vous lancez <application>gLabels</application>, la fenêtre ci-dessous "
-"apparaît."
-
-#: C/glabels.xml:191(title)
-msgid "<application>gLabels</application> Start Up Window"
-msgstr "Fenêtre de démarrage de <application>gLabels</application>"
-
-#. for example, the items on the menubar and on the toolbar. This section is optional.
-#: C/glabels.xml:205(para)
-msgid ""
-"The <application>gLabels</application> window contains the following "
-"elements:"
-msgstr "Contenu de la fenêtre <application>gLabels</application> :"
-
-#: C/glabels.xml:209(term)
-msgid "Menubar."
-msgstr "La barre des menus"
+"\n"
+"  NOM,PRENOM,INI,ADR1,ADR2,VILLE,REGION,CP\n"
+"  Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n"
+"  McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n"
+"  Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n"
+"  "
 
-#: C/glabels.xml:211(para)
+#: C/skipfields.page:40(p)
 msgid ""
-"The menus on the menubar contain all of the commands you need to create and "
-"edit labels and business cards in <application>gLabels</application>."
+"In the following screenshot, a single multiline text object has been created "
+"to format these addresses. Notice that ${ADDR2} representing the second "
+"address line is on a line by itself. (Any additional text on this line, "
+"including spaces would defeat this feature.)"
 msgstr ""
-"Les options de cette barre de menus montrent toutes les commandes à votre "
-"disposition pour créer et éditer des étiquettes et cartes de visite avec "
-"<application>gLabels</application>."
+"Dans la capture d'écran suivante, pour formater ces adresses, nous avons "
+"créé un seul objet texte avec plusieurs lignes. Vous noterez que ${ADDR2}, "
+"qui représente la deuxième ligne d'adresse, occupe bien une ligne à lui seul "
+"(n'importe quel texte ajouté sur cette ligne, y compris des espaces, met en "
+"défaut cette fonctionnalité)."
 
-#: C/glabels.xml:217(term)
-msgid "Main toolbar."
-msgstr "Barre d'outils principale"
+#: C/skipfields.page:46(p)
+msgid "Multi-line address"
+msgstr "Adresse sur plusieurs lignes"
 
-#: C/glabels.xml:219(para)
+#: C/skipfields.page:49(p)
 msgid ""
-"The main toolbar contains a subset of common File and Edit commands that you "
-"can access from the menubar."
+"Printing this label results in the following output. Notice that the line "
+"containing the ${ADDR2} field is completely skipped for the first two "
+"records, without printing a blank line."
 msgstr ""
-"La barre d'outils principale contient un sous-ensemble des commandes les plus "
-"utilisées des menus Fichier et Édition de la barre de menus."
+"L'impression de cette étiquette donne la sortie suivante. Vous noterez que "
+"la ligne contenant le champ ${ADR2} est totalement omise pour les deux "
+"premiers enregistrements, sans imprimer de ligne blanche."
 
-#: C/glabels.xml:224(term)
-msgid "Drawing toolbar."
-msgstr "Barre d'outils Dessin"
+#: C/skipfields.page:54(p)
+msgid "Output"
+msgstr "Sortie"
 
-#: C/glabels.xml:226(para)
-msgid ""
-"The drawing toolbar contains a subset of commands for editing the current "
-"<application>gLabels</application> document."
-msgstr ""
-"La barre d'outils Dessin contient un choix de commandes pour la modification "
-"du document <application>gLabels</application> actif."
+#: C/select.page:9(desc)
+msgid "How to select objects."
+msgstr "Comment sélectionner les objets."
 
-#: C/glabels.xml:231(term)
-msgid "Display area."
-msgstr "Zone d'affichage"
+#: C/select.page:25(title)
+msgid "To select objects"
+msgstr "Sélection d'objets"
 
-#: C/glabels.xml:233(para)
+#: C/select.page:27(p)
 msgid ""
-"The display area is the main drawing interface to <application>gLabels</"
-"application>."
-msgstr ""
-"La zone d'affichage est la principale interface de conception de "
-"<application>gLabels</application>."
-
-#: C/glabels.xml:238(term)
-msgid "Object sidebar."
-msgstr "Barre latérale Objet"
+"A prerequisite for performing operations on objects is the selection of "
+"individual objects or groups of objects. The display area must be in the "
+"object selection mode to create new selections, as indicated by an arrow "
+"cursor. The object selection mode is selected by the <guiseq><gui>Objects</"
+"gui><gui>Select Mode</gui></guiseq> menu item, or the corresponding command "
+"on the <gui>Drawing Toolbar</gui>."
+msgstr ""
+"Un prérequis pour réaliser des opérations sur des objets est la sélection "
+"d'un objet isolé ou d'un groupe d'objets. Pour effectuer de nouvelles "
+"sélections, la zone d'affichage doit être dans le mode sélection ; ce mode "
+"est indiqué par un pointeur en forme de flèche. Vous basculez en mode "
+"sélection d'objet en cliquant sur l'élément de menu <guiseq><gui>Objets</"
+"gui><gui>Mode sélection</gui></guiseq> ou sur le bouton correspondant de la "
+"<gui>Barre d'outils dessin</gui>."
+
+#: C/select.page:38(title)
+msgid "Selecting a single object"
+msgstr "Sélection d'un objet isolé"
 
-#: C/glabels.xml:240(para)
+#: C/select.page:39(p)
 msgid ""
-"The object sidebar provides an interface for viewing and editing all "
-"properties of an individual object."
+"A single object can be selected simply by clicking on the desired object in "
+"the display area. Once selected the object will be highlighted with a set of "
+"resizing handles."
 msgstr ""
-"La barre latérale Objet fournit une interface pour afficher et modifier "
-"toutes les propriétés d'un objet."
+"Un objet isolé est sélectionné par un simple clic dessus dans la zone "
+"d'affichage. Il apparaît alors en surbrillance avec un jeu de poignées de "
+"redimensionnement."
 
-#: C/glabels.xml:245(term)
-msgid "Properties toolbar."
-msgstr "Barre d'outils Propriétés"
+#: C/select.page:46(title)
+msgid "Aggregate object selections"
+msgstr "Sélection d'un groupe d'objets"
 
-#: C/glabels.xml:247(para)
+#: C/select.page:47(p)
 msgid ""
-"The properties toolbar contains a set of tools to manipulate the properties "
-"of selected objects and set default properties for new objects."
-msgstr ""
-"La barre d'outils Propriétés met à disposition un choix d'outils pour modifier "
-"les propriétés de l'objet sélectionné, et pour définir les propriétés par défaut "
-"pour de nouveaux objets."
-
-#: C/glabels.xml:253(term)
-msgid "Statusbar."
-msgstr "Barre d'état"
+"Multiple objects can be selected by first selecting the first object as "
+"above and then by holding the <key>Ctrl</key> key while selecting additional "
+"objects. Individual objects can be added to an existing selection at any "
+"time by holding the <key>Ctrl</key> key while selecting the desired objects. "
+"All objects can also be selected by using the <guiseq><gui>Edit</"
+"gui><gui>Select All</gui></guiseq> menu item. All objects in an aggregate "
+"object selection will be highlighted."
+msgstr ""
+"Pour sélectionner plusieurs objets, commencez par cliquer sur l'un d'entre "
+"eux ; puis, tout en maintenant la touche <key>Ctrl</key> enfoncée, cliquez "
+"sur les autres. À tout moment, d'autres objets peuvent être ajoutés à une "
+"sélection existante suivant le même processus. Il est aussi possible de "
+"sélectionner tous les objets en même temps en cliquant sur l'élément de menu "
+"<guiseq><gui>Édition</gui><gui>Tout sélectionner</gui></guiseq>. Tous les "
+"objets d'une sélection groupée apparaissent en surbrillance."
+
+#: C/select.page:60(title)
+msgid "Area selections"
+msgstr "Sélection par zone"
 
-#: C/glabels.xml:255(para)
+#: C/select.page:62(p)
 msgid ""
-"The statusbar displays information about current <application>gLabels</"
-"application> activity and contextual information about the menu items."
+"Multiple objects can also be selected by clicking an empty area and dragging "
+"to form a rectangular area. When released, all objects contained in the area "
+"will form an aggregate selection. An area selection can be used to add to an "
+"existing selection by holding the <key>Ctrl</key> key while performing the "
+"selection."
 msgstr ""
-"La barre d'état affiche des informations sur l'activité actuelle de "
-"<application>gLabels</application>, ainsi que des informations contextuelles "
-"au sujet des éléments du menu."
-
-#: C/glabels.xml:271(title)
-msgid "Usage"
-msgstr "Utilisation"
+"Plusieurs objets peuvent aussi être sélectionnés à l'aide de la souris en "
+"cliquant sur une zone libre et en faisant glisser le pointeur pour délimiter "
+"une surface rectangulaire. Au relâchement du bouton de souris, tous les "
+"objets englobés dans le rectangle font partie de la sélection groupée. La "
+"sélection de zone peut être utilisée pour ajouter des objets à une sélection "
+"existante en maintenant la touche <key>Ctrl</key> enfoncée pendant "
+"l'opération."
 
-#: C/glabels.xml:275(title)
-msgid "To Create a New Label or Card"
-msgstr "Création d'une nouvelle étiquette ou d'une nouvelle carte de visite"
-
-#: C/glabels.xml:277(para)
-msgid ""
-"To create a new label or business card, choose <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>New</guimenuitem></menuchoice> to display the "
-"<guilabel>New Label or Card</guilabel> dialog. Select the media type and "
-"orientation for the new document, then click <guibutton>OK</guibutton>. A "
-"new document is displayed in the display area of the <application>gLabels</"
-"application> window."
-msgstr ""
-"Pour créer une nouvelle étiquette ou une nouvelle carte de visite, choisissez "
-"<menuchoice><guimenu>Fichier</guimenu><guimenuitem>Nouveau</guimenuitem></"
-"menuchoice> pour afficher la boîte de dialogue <guilabel>Nouvelle étiquette/"
-"carte</guilabel>. Sélectionnez le type de support et l'orientation, puis "
-"cliquez sur <guibutton>Valider</guibutton>. Un nouveau document apparaît dans la "
-"zone d'affichage de <application>gLabels</application>."
+#: C/select.page:72(title)
+msgid "Unselecting objects"
+msgstr "Désélection d'objets"
 
-#: C/glabels.xml:286(para)
+#: C/select.page:74(p)
 msgid ""
-"If your particular media type is missing from this dialog, see <xref linkend="
-"\"glabels-create-template\"/>"
-msgstr ""
-"Si le type de votre support n'apparaît pas dans la liste, consultez <xref linkend="
-"\"glabels-create-template\"/>"
-
-#: C/glabels.xml:293(title)
-msgid "To Open a File"
-msgstr "Ouverture d'un fichier"
+"Individual objects can be removed from an existing selection by holding the "
+"<key>Ctrl</key> key while clicking on a previously selected object. An "
+"entire selection can be dismissed by using the <guiseq><gui>Edit</"
+"gui><gui>Un-select All</gui></guiseq> menu item or by simply clicking any "
+"empty space in the display area. Once an object is unselected its highlight "
+"is removed."
+msgstr ""
+"Tout objet isolé peut être retiré d'une sélection existante en cliquant "
+"dessus tout en maintenant la touche <key>Ctrl</key> enfoncée. La totalité "
+"d'une sélection peut être libérée en sélectionnant l'élément de menu "
+"<guiseq><gui>Édition</gui><gui>Désélectionner tout</gui></guiseq> ou plus "
+"simplement en cliquant dans une partie libre de la zone d'affichage. Dès "
+"qu'un objet n'est plus sélectionné, il n'apparaît plus en surbrillance."
+
+#: C/select.page:86(title)
+msgid "Clipboard Commands"
+msgstr "Les commandes du presse-papier"
 
-#: C/glabels.xml:295(para)
+#: C/select.page:88(p)
 msgid ""
-"To open a file, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</"
-"guimenuitem></menuchoice> to display the <guilabel>Open File</guilabel> "
-"dialog. Select the file that you want to open, then click <guibutton>OK</"
-"guibutton>. The file is displayed in the display area of the "
-"<application>gLabels</application> window."
+"Object selections can be manipulated using the standard clipboard operations "
+"<gui>Cut</gui>, <gui>Copy</gui>, <gui>Paste</gui>, and <gui>Delete</gui>."
 msgstr ""
-"Pour ouvrir un fichier, choisissez <menuchoice><guimenu>Fichier</"
-"guimenu><guimenuitem>Ouvrir</guimenuitem></menuchoice> pour afficher la "
-"boîte de dialogue <guilabel>Ouvrir un fichier</guilabel>. Choisissez le "
-"fichier à ouvrir, puis cliquez sur <guibutton>Valider</guibutton>. Le fichier "
-"apparaît dans la zone d'affichage de la fenêtre de <application>gLabels</application>."
+"Des sélections d'objets peuvent être manipulées avec les fonctions "
+"classiques du presse-papier : <gui>Couper</gui>, <gui>Copier</gui>, "
+"<gui>Coller</gui> et <gui>Supprimer</gui>."
 
-#: C/glabels.xml:302(para)
-msgid ""
-"You can also open multiple files in <application>gLabels</application>. The "
-"application creates a separate application window for each open file."
-msgstr ""
-"Vous pouvez aussi ouvrir plusieurs fichiers dans <application>gLabels</"
-"application>. L'application crée une fenêtre séparée pour chaque "
-"fichier ouvert."
+#: C/select.page:94(title)
+msgid "<gui>Cut</gui> (<keyseq><key>Ctrl</key><key>X</key></keyseq>)"
+msgstr "<gui>Couper</gui> (<keyseq><key>Ctrl</key><key>X</key></keyseq>)"
 
-#: C/glabels.xml:306(para)
+#: C/select.page:96(p)
 msgid ""
-"The application records the paths and filenames of the most recent files "
-"that you have edited and displays the files as menu items on the "
-"<menuchoice><guimenu>File</guimenu><guisubmenu>Recent Files</guisubmenu></"
-"menuchoice> menu."
+"Moves selected objects to the clipboard. The objects are then available for "
+"pasting back into the current document or another document."
 msgstr ""
-"Cet utilitaire enregistre les chemins et les noms des fichiers les plus "
-"récents, et les affiche dans le menu <menuchoice><guimenu>Fichier</"
-"guimenu><guisubmenu>Fichiers récents</guisubmenu></menuchoice>."
+"Déplace les objets sélectionnés dans le presse-papier. Ils sont alors "
+"disponibles pour être collés à nouveau dans le même document ou dans un "
+"autre."
 
-#: C/glabels.xml:316(title)
-msgid "To Open Multiple Files from a Command Line"
-msgstr "Ouverture de plusieurs fichiers en ligne de commande"
+#: C/select.page:103(title)
+msgid "<gui>Copy</gui> (<keyseq><key>Ctrl</key><key>C</key></keyseq>)"
+msgstr "<gui>Copier</gui> (<keyseq><key>Ctrl</key><key>C</key></keyseq>)"
 
-#: C/glabels.xml:318(para)
+#: C/select.page:105(p)
 msgid ""
-"You can run <application>gLabels</application> from a command line and open "
-"a single file or multiple files. To open multiple files from a command line, "
-"type the following command, then press <keycap>Return</keycap>:"
+"Copies selected objects to the clipboard without deleting them. The objects "
+"are then available for pasting back into the current document or another "
+"document."
 msgstr ""
-"Vous pouvez ouvrir un ou plusieurs fichiers dans <application>gLabels</"
-"application> à partir d'un terminal. Pour ouvrir plusieurs fichiers, saisissez "
-"la commande suivante et appuyez sur <keycap>Entrée</keycap> :"
-
-#: C/glabels.xml:324(replaceable)
-msgid "file1.glabels file2.glabels file3.glabels"
-msgstr "fichier1.glabels fichier2.glabels fichier3.glabels"
+"Place une copie des objets sélectionnés dans le presse-papier sans effacer "
+"les originaux. Ils sont alors disponibles pour être collés à nouveau dans le "
+"même document ou dans un autre."
 
-#: C/glabels.xml:323(command)
-msgid "glabels <placeholder-1/>"
-msgstr "glabels <placeholder-1/>"
+#: C/select.page:112(title)
+msgid "<gui>Paste</gui> (<keyseq><key>Ctrl</key><key>V</key></keyseq>)"
+msgstr "<gui>Coller</gui> (<keyseq><key>Ctrl</key><key>V</key></keyseq>)"
 
-#: C/glabels.xml:327(para)
+#: C/select.page:114(p)
 msgid ""
-"When the application starts, the files that you specify are displayed in "
-"separate <application>gLabels</application> windows."
+"Pastes objects from the clipboard into the current document. <app>gLabels</"
+"app> can only paste objects from another <app>gLabels</app> document."
 msgstr ""
-"Au démarrage de l'application, les fichiers que vous avez choisis s'ouvrent "
-"dans des fenêtres séparées."
+"Colle les objets du presse-papier dans le document actif. <app>gLabels</app> "
+"ne peut coller que des objets provenant d'un autre document <app>gLabels</"
+"app>."
 
-#: C/glabels.xml:334(title)
-msgid "To Save a File"
-msgstr "Enregistrement d'un fichier"
-
-#: C/glabels.xml:336(para)
-msgid "You can save files in the following ways:"
-msgstr "Vous pouvez enregistrer des fichiers de différentes façons :"
+#: C/select.page:121(title)
+msgid "<gui>Delete</gui> (<key>Del</key>)"
+msgstr "<gui>Supprimer</gui> (<key>Suppr</key>)"
 
-#: C/glabels.xml:341(para)
-msgid ""
-"To save changes to an existing file, choose <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>Save</guimenuitem></menuchoice>."
+#: C/select.page:123(p)
+msgid "Deletes selected objects without placing them on the clipboard."
 msgstr ""
-"Pour enregistrer les modifications d'un fichier existant, choisissez "
-"<menuchoice><guimenu>Fichier</guimenu><guimenuitem>Enregistrer</"
-"guimenuitem></menuchoice>."
-
-#: C/glabels.xml:348(para)
-msgid ""
-"To save a new file or to save an existing file under a new filename, choose "
-"<menuchoice><guimenu>File</guimenu><guimenuitem>Save As</guimenuitem></"
-"menuchoice>. Enter a name for the file in the <guilabel>Save As</guilabel> "
-"dialog box, then click <guibutton>OK</guibutton>."
-msgstr ""
-"Pour enregistrer un nouveau fichier ou changer le nom d'un fichier "
-"existant, choisissez <menuchoice><guimenu>Fichier</"
-"guimenu><guimenuitem>Enregistrer sous</guimenuitem></menuchoice>. Saisissez un "
-"nom de fichier dans la boîte de dialogue <guilabel>Enregistrer sous</"
-"guilabel> et cliquez sur <guibutton>Valider</guibutton>."
-
-#: C/glabels.xml:361(title)
-msgid "To Change Label Properties"
-msgstr "Modification des propriétés d'une étiquette"
+"Supprime les objets sélectionnés sans les placer dans le presse-papier."
 
-#: C/glabels.xml:363(para)
-msgid ""
-"To change the media type and/or orientation of a label, choose "
-"<menuchoice><guimenu>File</guimenu><guimenuitem>Properties</guimenuitem></"
-"menuchoice> to display the <guilabel>Label properties</guilabel> dialog. "
-"Select the new media type and orientation for the document, then click "
-"<guibutton>OK</guibutton>."
-msgstr ""
-"Pour changer le type de support ou l'orientation d'une étiquette, choisissez "
-"<menuchoice><guimenu>Fichier</guimenu><guimenuitem>Propriétés</guimenuitem></"
-"menuchoice> pour afficher la boîte de dialogue <guilabel>Propriétés de l'étiquette</"
-"guilabel>. Sélectionnez un type de support et l'orientation du document, puis "
-"cliquez sur <guibutton>Valider</guibutton>."
-
-#: C/glabels.xml:374(title)
-msgid "To Create a Custom Template"
-msgstr "Création d'un patron personnalisé"
-
-#: C/glabels.xml:376(para)
-msgid ""
-"To create a new custom template, choose <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>Template Designer ...</guimenuitem></menuchoice> to "
-"display the <guilabel>Template Designer</guilabel> dialog. This dialog will "
-"assist you in creating a custom template for most types of label or card "
-"stationery that you may encounter."
-msgstr ""
-"Pour créer un nouveau patron personnalisé, choisissez "
-"<menuchoice><guimenu>Fichier</guimenu><guimenuitem>Créateur de patrons..."
-"</guimenuitem></menuchoice> pour afficher la boîte de dialogue "
-"<guilabel>Créateur de patrons</guilabel>. L'assistant vous aidera à "
-"créer un patron compatible avec la plupart des modèles de supports du "
-"commerce."
-
-#: C/glabels.xml:383(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/printfile.page:47(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'figures/print-copies.png'; md5=45f2eae7cd262a36ed6b20a254b94447"
 msgid ""
-"If you prefer, you can create your templates manually. For this option see "
-"<xref linkend=\"glabels-manual-create-template\"/>"
+"@@image: 'figures/print-copies.png'; md5=1896f693ac50b47ea5abaafb59b5e8cc"
 msgstr ""
-"Si vous préférez créer votre propre patron manuellement, reportez-vous à la "
-"section <xref linkend=\"glabels-manual-create-template\"/>"
-
-#: C/glabels.xml:391(title)
-msgid "To Close a File"
-msgstr "Fermeture d'un fichier"
+"@@image: 'figures/print-copies.png'; md5=45f2eae7cd262a36ed6b20a254b94447"
 
-#: C/glabels.xml:393(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/printfile.page:70(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'figures/print-merge.png'; md5=df81b305a7e76484df98034c1c035604"
 msgid ""
-"To close the current document, choose <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>Close</guimenuitem></menuchoice> to close the "
-"application window. If the current document is modified, a confirmation "
-"dialog will be presented, allowing you to save the document or cancel the "
-"command. If the window being closed is the only open window, "
-"<application>gLabels</application> will exit."
+"@@image: 'figures/print-merge.png'; md5=65a719b5624f88fdb40e2322454819a6"
 msgstr ""
-"Pour fermer le document en cours, choisissez <menuchoice><guimenu>Fichier</"
-"guimenu><guimenuitem>Fermer</guimenuitem></menuchoice>. Cela ferme la "
-"fenêtre active. Si le document a été modifié, vous devrez confirmer dans une "
-"boîte de dialogue si vous souhaitez enregistrer les modifications avant de quitter, "
-"ou si vous souhaitez annuler la commande. S'il n'y avait qu'une seule "
-"fenêtre active, <application>gLabels</application> se fermera."
-
-#: C/glabels.xml:405(title)
-msgid "To Quit <application>gLabels</application>"
-msgstr "Fermeture de <application>gLabels</application>"
+"@@image: 'figures/print-merge.png'; md5=df81b305a7e76484df98034c1c035604"
 
-#: C/glabels.xml:407(para)
-msgid ""
-"To quit <application>gLabels</application>, choose "
-"<menuchoice><guimenu>File</guimenu><guimenuitem>Quit</guimenuitem></"
-"menuchoice>. This is equivalent to closing all open windows. See <xref "
-"linkend=\"glabels-close-file\"/>."
-msgstr ""
-"Pour quitter <application>gLabels</application>, choisissez "
-"<menuchoice><guimenu>Fichier</guimenu><guimenuitem>Quitter</guimenuitem></"
-"menuchoice>. Cette commande équivaut à fermer toutes les fenêtres ouvertes. "
-"Voir <xref linkend=\"glabels-close-file\"/>."
+#: C/printfile.page:9(desc)
+msgid "How to print your labels and cards."
+msgstr "Comment imprimer étiquettes et cartes."
 
-#: C/glabels.xml:417(title)
-msgid "To Print Labels or Cards"
-msgstr "Impression d'étiquettes ou de cartes"
+#: C/printfile.page:25(title)
+msgid "To print labels and cards"
+msgstr "Impression d'étiquettes ou cartes"
 
-#: C/glabels.xml:419(para)
+#: C/printfile.page:27(p)
 msgid ""
-"To print labels or cards, choose <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>Print</guimenuitem></menuchoice> to display the "
-"<guilabel>Print</guilabel> dialog. Once print options have been selected, "
-"click <guilabel>Print</guilabel> to print the labels or cards. To simply "
-"preview the results, click <guilabel>Print Preview</guilabel> instead."
+"To print labels or cards, choose <guiseq><gui>File</gui><gui>Print</gui></"
+"guiseq> to display the <gui>Print</gui> dialog. Once print options have been "
+"selected, click <gui>Print</gui> to print the labels or cards. To simply "
+"preview the results, click <gui>Print Preview</gui> instead."
 msgstr ""
-"Pour imprimer des étiquettes ou des cartes, "
-"choisissez <menuchoice><guimenu>Fichier</guimenu><guimenuitem>Imprimer</"
-"guimenuitem></menuchoice> pour afficher la boîte de dialogue "
-"<guilabel>Imprimer</guilabel>. Choisissez les options d'impression et cliquez sur "
-"<guilabel>Imprimer</guilabel> pour démarrer l'impression. Si vous souhaitez "
-"simplement avoir un aperçu de ce qui sera imprimé, cliquez sur <guilabel>Aperçu avant impression</guilabel>."
+"Pour imprimer des étiquettes ou des cartes, choisissez <guiseq><gui>Fichier</"
+"gui><gui>Imprimer</gui></guiseq> pour afficher la boîte de dialogue "
+"<gui>Imprimer</gui>. Sélectionnez les options et cliquez sur <gui>Imprimer</"
+"gui> pour lancer l'impression. Pour simplement avoir un aperçu du résultat, "
+"cliquez sur <gui>Aperçu avant impression</gui>."
 
-#: C/glabels.xml:426(para)
+#: C/printfile.page:34(p)
 msgid ""
-"The <guilabel>Print</guilabel> dialog allows you to specify the following "
-"print options:"
+"The <gui>Print</gui> dialog allows you to specify the following print "
+"options:"
 msgstr ""
-"La boîte de dialogue <guilabel>Imprimer</guilabel> vous permet de choisir "
-"les options d'impression suivantes :"
+"La boîte de dialogue <gui>Imprimer</gui> vous permet de définir les options "
+"d'impression suivantes :"
 
-#: C/glabels.xml:430(title)
+#: C/printfile.page:38(title)
 msgid "The Labels Tab of the Print Dialog"
-msgstr "Onglet Étiquettes de la boîte de dialogue Imprimer"
+msgstr "Onglet « Étiquettes » de la boîte de dialogue « Imprimer »"
 
-#: C/glabels.xml:435(guilabel)
+#: C/printfile.page:41(title)
 msgid "Print control (Simple)"
 msgstr "Contrôle d'impression (simple)"
 
-#: C/glabels.xml:438(para)
+#: C/printfile.page:43(p)
 msgid ""
-"For simple labels or cards (no document merge), the <guilabel>labels</"
-"guilabel> tabbed section contains the following copy controls."
+"For simple labels or cards (no document merge), the job tabbed section "
+"contains the following copy controls."
 msgstr ""
-"Pour des formats simples d'étiquettes ou de cartes (pas de fusion), la "
-"section <guilabel>étiquettes</guilabel> dispose des contrôles suivants."
+"Pour des étiquettes ou des cartes simples (sans fusion), l'onglet "
+"<guilabel>Étiquettes</guilabel> dispose des contrôles suivants."
 
-#: C/glabels.xml:443(title)
+#: C/printfile.page:48(p) C/editprop.page:36(p)
 msgid "Print Copy Controls"
 msgstr "Contrôles d'impression"
 
 #. ==== End of Figure ====
-#: C/glabels.xml:454(para)
+#: C/printfile.page:52(p)
 msgid ""
 "The number of copies of the label can be selected by choosing the number of "
 "full sheets to print, or a specific subset of labels on a single sheet."
 msgstr ""
-"Le nombre de copies peut être indiqué en choisissant le nombre de pages "
-"pleines à imprimer ou un choix d'étiquettes spécifiques sur une seule page."
+"Le nombre d'exemplaires d'étiquettes est indiqué en choisissant, soit le "
+"nombre de pages complètes à imprimer, soit un sous-ensemble donné "
+"d'étiquettes sur une seule page."
 
-#: C/glabels.xml:458(para)
+#: C/printfile.page:56(p)
 msgid ""
 "The mini-preview can also be used to graphically select the subset of labels "
 "by clicking the first label on the mini-preview and dragging to the last "
 "label."
 msgstr ""
-"La prévisualisation en miniatures peut également être utilisée "
-"pour sélectionner graphiquement un assortiment d'étiquettes en cliquant sur "
-"la première étiquette et en faisant glisser la souris jusque sur la dernière."
+"La prévisualisation en miniatures peut aussi être utilisé pour sélectionner "
+"graphiquement le sous-ensemble d'étiquettes à imprimer ; cliquez sur la "
+"miniature de la première étiquette et faites glisser le pointeur jusque sur "
+"la dernière."
 
-#: C/glabels.xml:466(guilabel)
+#: C/printfile.page:63(title)
 msgid "Print control (Merge)"
 msgstr "Contrôle d'impression (fusion)"
 
-#: C/glabels.xml:469(para)
+#: C/printfile.page:65(p)
 msgid ""
 "For labels or cards using the document merge (also known as \"mail merge\") "
-"capability, the <guilabel>labels</guilabel> tabbed section contains the "
-"following merge controls instead of copy controls."
+"capability, the job tabbed section contains the following merge controls "
+"instead of copy controls."
 msgstr ""
-"Pour des étiquettes ou des cartes utilisant les possibilités de fusion "
-"(aussi connue sous le nom de « publipostage »), l'onglet <guilabel>Étiquettes"
-"</guilabel> propose les éléments de fusion suivants, à la place des contrôles "
-"de copie."
+"Pour des étiquettes ou des cartes utilisant la fusion de documents (aussi "
+"connue sous le nom de « publipostage »), l'onglet <guilabel>Étiquettes</"
+"guilabel> propose les contrôles de fusion suivants à la place de ceux pour "
+"une simple impression."
 
-#: C/glabels.xml:475(title)
+#: C/printfile.page:71(p)
 msgid "Print Document Merge Controls"
 msgstr "Contrôles de fusion pour l'impression d'un document"
 
 #. ==== End of Figure ====
-#: C/glabels.xml:486(para)
+#: C/printfile.page:75(p)
 msgid ""
 "The total number of labels or cards printed is the product of the number of "
 "records in the merge source and the number of copies selected. If multiple "
@@ -817,41 +458,41 @@ msgid ""
 msgstr ""
 "Le nombre total d'étiquettes ou de cartes imprimées est le produit du nombre "
 "d'enregistrements dans la source de fusion par le nombre de copies "
-"sélectionnées. Lors de l'impression de plusieurs copies, celles-ci "
-"peuvent être groupées (toutes les copies d'un même enregistrement sont "
-"groupées) ou séparées (une copie de chaque enregistrement est "
-"imprimée avant la suivante)."
+"sélectionnées. Si vous voulez imprimer plusieurs exemplaires, vous pouvez "
+"choisir de les grouper (toutes les copies d'un même enregistrement sont "
+"regroupées) ou de les disjoindre (une étiquette pour chaque enregistrement "
+"est imprimée avant la copie suivante)."
 
-#: C/glabels.xml:493(para)
+#: C/printfile.page:82(p)
 msgid ""
 "Printing can begin on any label on the first sheet. This can be selected "
-"with the <guilabel>Start on label</guilabel> spinbutton."
+"with the <gui>Start on label</gui> spinbutton."
 msgstr ""
-"L'impression peut commencer par n'importe quelle étiquette sur la première "
-"page. Cette option peut être choisie au moyen de la zone numérique <guilabel>"
-"Commencer par l'étiquette</guilabel>."
+"Sur la première page, vous pouvez débuter l'impression par n'importe quelle "
+"étiquette. Son numéro est choisi à l'aide du compteur <gui>Commencer par "
+"l'étiquette</gui>."
 
-#: C/glabels.xml:497(para)
+#: C/printfile.page:86(p)
 msgid ""
 "The mini-preview can also be used to graphically select this first label, by "
 "clicking on the desired label in the mini-preview."
 msgstr ""
 "De même, vous pouvez sélectionner cette première étiquette graphiquement en "
-"cliquant sur l'aperçu en miniature."
+"cliquant sur la miniature de l'aperçu."
 
-#: C/glabels.xml:504(guilabel)
+#: C/printfile.page:93(title)
 msgid "Options"
 msgstr "Options"
 
-#: C/glabels.xml:506(para)
+#: C/printfile.page:94(p)
 msgid "The following options can also be selected."
-msgstr "Vous pouvez aussi définir les options suivantes."
+msgstr "Vous pouvez aussi préciser les options suivantes :"
 
-#: C/glabels.xml:509(guilabel)
+#: C/printfile.page:97(gui)
 msgid "print outlines"
-msgstr "Imprimer des bordures"
+msgstr "imprimer des bordures"
 
-#: C/glabels.xml:510(para)
+#: C/printfile.page:98(p)
 msgid ""
 "Print outlines of labels. This option is useful for dry-runs, to test "
 "printer alignment."
@@ -859,943 +500,659 @@ msgstr ""
 "Imprime le cadre des étiquettes. Cette option est utile pour des essais à "
 "blanc, pour tester l'alignement de l'imprimante."
 
-#: C/glabels.xml:514(guilabel)
+#: C/printfile.page:102(gui)
 msgid "print in reverse"
-msgstr "Imprimer à l'envers"
+msgstr "imprimer à l'envers"
 
-#: C/glabels.xml:515(para)
+#: C/printfile.page:103(p)
 msgid ""
 "Prints the labels as mirror images. This option is useful for printing on "
 "clear labels that will be viewed from the reverse side (e.g. in a car "
 "window)."
 msgstr ""
 "Imprime les étiquettes en miroir. Cette option est utile pour imprimer sur "
-"des supports transparents qui seront vus de l'extérieur (par ex. sur une vitre "
-"de voiture)."
+"des supports transparents destinés à être vus de l'extérieur (par ex. sur "
+"une vitre de voiture)."
 
-#: C/glabels.xml:520(guilabel)
+#: C/printfile.page:108(gui)
 msgid "print crop marks"
-msgstr "Imprimer les guides de coupe"
+msgstr "imprimer les guides de coupe"
 
-#: C/glabels.xml:521(para)
+#: C/printfile.page:109(p)
 msgid ""
 "Prints crop marks along the edge of the sheet. This option is useful for "
 "printing on blank stock, to be cut after printing. This option does not work "
 "well with all templates."
 msgstr ""
-"Cette option imprime des repères tout autour d'une feuille blanche et qui "
-"serviront à la découpe après impression. Elle ne fonctionne pas bien avec tous "
-"les patrons."
+"Imprime les repères de massicot sur les bords de la feuille. Cette option "
+"est utile pour une impression sur feuilles blanches destinées à être "
+"découpées après impression. Elle ne fonctionne pas bien avec tous les "
+"modèles d'étiquette."
 
-#: C/glabels.xml:536(title)
-msgid "To Create New Objects"
-msgstr "Création de nouveaux objets"
+#: C/newlabel.page:9(desc)
+msgid "Create a new label or card in <app>gLabels</app>."
+msgstr "Comment créer une nouvelle étiquette ou carte avec <app>gLabels</app>."
+
+#: C/newlabel.page:25(title)
+msgid "To create a new label or card"
+msgstr "Création d'une nouvelle étiquette ou carte"
 
-#: C/glabels.xml:538(para)
+#: C/newlabel.page:27(p)
 msgid ""
-"Objects are created by choosing the appropriate selection under the "
-"<menuchoice><guimenu>Objects</guimenu><guimenuitem>Create Object</"
-"guimenuitem></menuchoice> submenu or the <guilabel>Drawing Toolbar</"
-"guilabel>. This will place the display area into object creation mode as "
-"indicated by its cursor. To return to the default object selection mode "
-"without creating an object, choose <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Select Mode</guimenuitem></menuchoice>. This will "
-"return the display area's cursor to the default selection arrow."
-msgstr ""
-"Vous pouvez créer des objets en choisissant la fonction appropriée dans le "
-"sous-menu <menuchoice><guimenu>Objets</guimenu><guimenuitem>Créer un objet</"
-"guimenuitem></menuchoice>, ou dans la barre d'outils <guilabel>Dessin</"
-"guilabel>. Ceci mettra la zone d'affichage en mode création d'objet comme "
-"indiqué par son curseur. Pour revenir au mode par défaut sans création "
-"d'objet, choisissez <menuchoice><guimenu>Objets</"
-"guimenu><guimenuitem>Mode sélection</guimenuitem></menuchoice>. Ceci "
-"remettra le curseur standard (flèche de sélection) dans la fenêtre active."
-
-#: C/glabels.xml:548(para)
-msgid "The following describes the object creation mode for each object type:"
+"To create a new label or business card, choose <guiseq><gui>File</"
+"gui><gui>New</gui></guiseq> to display the <gui>New Label or Card</gui> "
+"dialog. Select the media type and orientation for the new document, then "
+"click <gui>OK</gui>. A new document is displayed in the display area of the "
+"<app>gLabels</app> window."
 msgstr ""
-"Voici la description du mode création d'objet pour chaque type d'objet :"
+"Pour créer une nouvelle étiquette ou une nouvelle carte de visite, "
+"choisissez <guiseq><gui>Fichier</gui><gui>Nouveau</gui></guiseq> pour "
+"afficher la boîte de dialogue <gui>Nouvelle étiquette ou carte</gui>. "
+"Sélectionnez le type de support et l'orientation du nouveau document, puis "
+"cliquez sur <gui>Valider</gui>. Le nouveau document apparaît dans la zone "
+"d'affichage de la fenêtre de <app>gLabels</app>."
 
-#: C/glabels.xml:554(term) C/glabels.xml:1123(guilabel)
-msgid "Text"
-msgstr "Texte"
+#: C/multifile.page:9(desc)
+msgid "How to open multiple files at once by using the command line."
+msgstr "Comment ouvrir plusieurs fichiers à la fois avec la ligne de commande."
+
+#: C/multifile.page:25(title)
+msgid "To open multiple files from the command line"
+msgstr "Ouverture de plusieurs fichiers à partir de la ligne de commande"
 
-#: C/glabels.xml:556(para)
+#: C/multifile.page:27(p)
 msgid ""
-"Click the desired location of the upper left corner of the text object. New "
-"text objects are initialized with the string \"Text.\" To change this text, "
-"or other properties, see <xref linkend=\"glabels-object-properties\"/>."
+"You can run <app>gLabels</app> from a command line and open a single file or "
+"multiple files. To open multiple files from a command line, type the "
+"following command, then press <key>Return</key>:"
 msgstr ""
-"Cliquez sur l'endroit désiré pour faire apparaître le coin supérieur gauche "
-"de l'objet texte. Les nouveaux objets texte contiennent initialement la "
-"chaîne « Texte ». Pour modifier ce texte ou ses autres propriétés, consultez <xref "
-"linkend=\"glabels-object-properties\"/>."
+"Vous pouvez lancer <app>gLabels</app> à partir de la ligne de commande tout "
+"en ouvrant un ou plusieurs fichiers. Pour ouvrir plusieurs fichiers, "
+"saisissez la commande suivante et pressez <key>Entrée</key> :"
 
-#: C/glabels.xml:564(term)
-msgid "Box"
-msgstr "Boîte"
+#: C/multifile.page:33(var)
+msgid "file1.glabels file2.glabels file3.glabels"
+msgstr "fichier1.glabels fichier2.glabels fichier3.glabels"
+
+#: C/multifile.page:32(cmd)
+msgid "glabels <placeholder-1/>"
+msgstr "glabels <placeholder-1/>"
 
-#: C/glabels.xml:566(para)
+#: C/multifile.page:36(p)
 msgid ""
-"Click the desired location of the upper left corner of the box object and "
-"drag to the desired location of the lower right corner. If you simply click "
-"in a single location, a square box will be created. To change properties of "
-"the box object, see <xref linkend=\"glabels-object-properties\"/>."
+"When the application starts, the files that you specify are displayed in "
+"separate <app>gLabels</app> windows."
 msgstr ""
-"Cliquez sur l'endroit choisi pour le coin supérieur gauche de l'objet boîte, "
-"et faites glisser jusqu'à l'emplacement désiré du coin inférieur droit. Un "
-"simple clic quelque part fait apparaître une boîte carrée. Pour modifier les "
-"propriétés de l'objet boîte, consultez <xref linkend=\"glabels-object-properties"
-"\"/>."
+"Au démarrage de l'application, les fichiers que vous avez indiqués, "
+"s'ouvrent dans des fenêtres <app>gLabels</app> distinctes."
 
-#: C/glabels.xml:575(term) C/glabels.xml:1149(guilabel)
-msgid "Line"
-msgstr "Ligne"
+#: C/merge.page:9(desc)
+msgid "Merge a data source to create multiple documents."
+msgstr ""
+"Comment fusionner une source de données pour créer plusieurs documents."
 
-#: C/glabels.xml:577(para)
+#: C/merge.page:25(title)
+msgid "Document merge tutorial"
+msgstr "Guide pour la fusion de documents"
+
+#: C/merge.page:27(p)
 msgid ""
-"Click the desired location of one end of the line object and drag to the "
-"desired location of the other end. If you simply click in a single location, "
-"a diagonal line will be created. To change properties of the line object, "
-"see <xref linkend=\"glabels-object-properties\"/>."
+"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that "
+"allows a unique label or card to be printed for each record in an external "
+"data source. It is however, the most mis-understood feature of <app>glabels</"
+"app>. The following examples will step through a couple of common tasks "
+"using the document merge feature."
 msgstr ""
-"Cliquez sur l'endroit désiré pour l'une des deux extrémités de la ligne et "
-"faites glisser jusqu'à l'autre extrémité voulue. Un simple clic quelque part "
-"génère une ligne diagonale. Pour modifier les propriétés de la ligne, consultez "
-"<xref linkend=\"glabels-object-properties\"/>."
+"La fusion de documents (quelquefois appelée « publipostage ») est une "
+"fonction puissante permettant d'imprimer une étiquette ou une carte pour "
+"chaque enregistrement d'une source de données extérieure. Elle est toutefois "
+"la fonction la moins bien connue de <app>gLabels</app>. Les exemples ci-"
+"après vont détailler les étapes à suivre pour quelques tâches courantes "
+"faisant appel à la fonctionnalité de fusion."
 
-#: C/glabels.xml:586(term)
-msgid "Ellipse"
-msgstr "Ellipse"
+#: C/mergefeatures.page:9(desc)
+msgid "What you may expect from a document merge."
+msgstr "Qu'attendre d'une fusion de documents."
 
-#: C/glabels.xml:588(para)
+#: C/mergefeatures.page:25(title)
+msgid "Performing a document merge"
+msgstr "Réalisation d'une fusion de documents"
+
+#: C/mergefeatures.page:27(p)
 msgid ""
-"Click the desired location of the upper left corner of the ellipse object "
-"and drag to the desired location of the lower right corner. If you simply "
-"click in a single location, a circle will be created. To change properties "
-"of the ellipse object, see <xref linkend=\"glabels-object-properties\"/>."
+"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that "
+"allows a unique label or card to be printed for each record in an external "
+"data source."
 msgstr ""
-"Cliquez sur l'endroit choisi pour le coin supérieur gauche de l'objet "
-"ellipse et faites glisser jusqu'à l'emplacement désiré du coin inférieur "
-"droit. Un simple clic quelque part génère un cercle. Pour modifier les "
-"propriétés de l'ellipse, consultez <xref linkend=\"glabels-object-properties\"/>."
+"La fusion de documents (aussi appelée « Publipostage ») est un outil "
+"performant capable d'imprimer une étiquette ou une carte pour chaque "
+"enregistrement d'une source de données externe."
 
-#: C/glabels.xml:597(term)
-msgid "Image"
-msgstr "Image"
+#: C/mergefeatures.page:31(p)
+msgid ""
+"The first step to performing a document merge is to prepare a source "
+"document that contains your merge data. This data could be mailing addresses "
+"or any other data that you wish to create unique labels or cards for. "
+"Currently back-ends only exist for text files and the evolution data server "
+"-- others are planned. The currently supported text-file format is very "
+"simple: each line is a record; fields are delimited by commas (CSV), tabs, "
+"or colons; and newlines can be embedded into fields by using the \"\\n\" "
+"entity. This file could be created using any text editor or could be created "
+"by another program or script. A common way of creating CSV files is to "
+"export them from a spreadsheet program."
+msgstr ""
+"La première étape pour effectuer une fusion de document est de préparer le "
+"document source où figurent les données de cette fusion. Ce sont des "
+"adresses postales ou autres données pour lesquelles vous souhaitez créer une "
+"étiquette ou carte particulière. Pour l'instant, les seules sources "
+"possibles sont des fichiers texte ou le carnet d'adresses d'Evolution "
+"— d'autres sont prévues. Le format texte actuellement géré est très simple : "
+"chaque ligne est un enregistrement ; les champs sont séparés par des "
+"virgules (CSV), des tabulations ou le signe deux-points ; des sauts de "
+"lignes peuvent être placés à l'intérieur d'un champ en utilisant "
+"l'expression « \\n ». Ce fichier peut être créé à l'aide de n'importe quel "
+"éditeur de texte ou généré par un autre programme ou script. Une méthode "
+"courante pour créer des fichiers CSV consiste à les exporter à partir d'un "
+"tableur."
 
-#: C/glabels.xml:599(para)
+#: C/mergefeatures.page:43(p)
 msgid ""
-"Click the desired location of the upper left corner of the image object and "
-"drag to the desired location of the lower right corner. If you simply click "
-"in a single location, a square will be created. New image objects are "
-"initialized with a simple checkerboard image. To change this image, or other "
-"properties of the image object, see <xref linkend=\"glabels-object-properties"
-"\"/>."
+"A label must then be configured to \"point at\" this data file. To configure "
+"the merge properties of a document, choose <guiseq><gui>Objects</"
+"gui><gui>Merge Properties</gui></guiseq> menu item to display the <gui>merge "
+"properties</gui> dialog. This dialog is used to select the exact data file "
+"format and file name (location) of the merge data."
 msgstr ""
-"Cliquez sur l'endroit choisi pour le coin supérieur gauche de l'objet image "
-"et faites glisser jusqu'à l'emplacement désiré du coin inférieur droit. Un "
-"simple clic quelque part génère un carré. Les nouveaux objets image contiennent "
-"initialement une simple image de damier. Pour modifier cette image ou "
-"ses propriétés, consultez <xref linkend=\"glabels-object-properties\"/>."
+"Une étiquette doit ensuite être configurée pour « pointer » vers ce fichier "
+"de données. Pour configurer les propriétés de fusion d'un document, "
+"choisissez <guiseq><gui>Objets</gui><gui>Propriétés de fusion</gui></guiseq> "
+"pour afficher la boîte de dialogue <gui>Propriétés de fusion</gui>. Cette "
+"boîte de dialogue sert à définir exactement le format du fichier de données "
+"pour la fusion, ainsi que son nom et son emplacement."
 
-#: C/glabels.xml:610(term)
-msgid "Barcode"
-msgstr "Code-barre"
+#: C/mergefeatures.page:51(p)
+msgid ""
+"Finally, once the label has been configured for a data file, field keys can "
+"be inserted into text objects and used as source or data for barcode objects "
+"and image filenames for image objects. See <link xref=\"editprop\"/> for "
+"more information on using merge data for these object types."
+msgstr ""
+"Pour terminer, une fois l'étiquette associée au fichier de données, les "
+"champs clés peuvent être insérés dans des objets texte et utilisés comme "
+"source ou données pour des objets code-barre ou bien encore comme noms de "
+"fichiers image dans les objets image. Consultez <link xref=\"editprop\"/> "
+"pour de plus amples informations sur l'utilisation des données de fusion "
+"pour ces types d'objets."
 
-#: C/glabels.xml:612(para)
+#: C/mergefeatures.page:57(p)
 msgid ""
-"Click the desired location of the upper left corner of the barcode object. "
-"New barcode objects are initialized to a POSTNET barcode with representative "
-"data. To change data and properties of the barcode object, see <xref linkend="
-"\"glabels-object-properties\"/>."
+"Now that your label is configured, <app>gLabels</app> will print a unique "
+"label for each record in your source document -- substituting fields from "
+"each record for field keys in the all text, barcode, and image objects."
 msgstr ""
-"Cliquez sur l'endroit choisi pour le coin supérieur gauche de l'objet code-"
-"barre. Les nouveaux objets code-barre sont initialisés avec des données "
-"valides de style POSTNET. Pour modifier ces données et leurs propriétés, consultez "
-"<xref linkend=\"glabels-object-properties\"/>."
-
-#: C/glabels.xml:627(title)
-msgid "To Select Objects"
-msgstr "Sélection d'objets"
+"Après que l'étiquette est configurée, <application>gLabels</application> en "
+"imprime une pour chaque enregistrement du document source — remplaçant les "
+"valeurs des champs de chaque enregistrement par les champs clés "
+"correspondants de chaque objet texte, code-barre et image."
 
-#: C/glabels.xml:629(para)
+#: C/mergefeatures.page:62(p)
 msgid ""
-"A prerequisite for performing operations on objects is the selection of "
-"individual objects or groups of objects. The display area must be in the "
-"object selection mode to create new selections, as indicated by an arrow "
-"cursor. The object selection mode is selected by the "
-"<menuchoice><guimenu>Objects</guimenu><guimenuitem>Select Mode</"
-"guimenuitem></menuchoice> menu item, or the corresponding command on the "
-"<guilabel>Drawing Toolbar</guilabel>."
-msgstr ""
-"Une condition pour effectuer des opérations sur des objets est la sélection "
-"d'objets individuels ou de groupe d'objets. La zone d'affichage doit être en "
-"mode sélection pour générer de nouvelles sélections, comme l'indique le "
-"curseur en forme de flèche. On passe en mode sélection d'objet par le menu "
-"<menuchoice><guimenu>Objets</guimenu><guimenuitem>Mode sélection</"
-"guimenuitem></menuchoice> ou par le bouton correspondant de la barre "
-"d'outils <guilabel>Dessin</guilabel>."
-
-#: C/glabels.xml:642(term)
-msgid "Selecting a single object"
-msgstr "Sélection d'un seul objet"
-
-#: C/glabels.xml:644(para)
-msgid ""
-"A single object can be selected simply by clicking on the desired object in "
-"the display area. Once selected the object will be highlighted with a set of "
-"resizing handles."
+"See <link xref=\"merge\"/> for a detailed tutorial on the document merge "
+"feature."
 msgstr ""
-"Un seul objet peut être sélectionné en cliquant dessus dans la zone "
-"d'affichage. Il apparaît alors en surbrillance avec des poignées de "
-"redimensionnement."
+"Consultez le <link xref=\"merge\"/> pour des indications détaillées sur "
+"cette fonctionnalité."
 
-#: C/glabels.xml:652(term)
-msgid "Aggregate object selections"
-msgstr "Sélection d'objets groupés"
+#: C/merge-ex4.page:9(desc)
+msgid "Create address labels from a vCard file."
+msgstr "Créer des étiquettes d'adresses à partir d'un fichier vCard."
 
-#: C/glabels.xml:654(para)
-msgid ""
-"Multiple objects can be selected by first selecting the first object as "
-"above and then by holding the <keycap>Ctrl</keycap> key while selecting "
-"additional objects. Individual objects can be added to an existing selection "
-"at any time by holding the <keycap>Ctrl</keycap> key while selecting the "
-"desired objects. All objects can also be selected by using the "
-"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Select All</guimenuitem></"
-"menuchoice> menu item. All objects in an aggregate object selection will be "
-"highlighted."
-msgstr ""
-"Pour sélectionner plusieurs objets, commencez par cliquer sur l'un d'eux ; "
-"puis, en maintenant la touche <keycap>Ctrl</keycap> enfoncée, "
-"cliquez sur les autres. À tout moment, d'autres objets peuvent être rajoutés "
-"à la sélection de la même façon. Il est aussi possible de sélectionner tous "
-"les objets en même temps en choisissant <menuchoice><guimenu>Édition</"
-"guimenu><guimenuitem>Tout sélectionner</guimenuitem></menuchoice> dans le "
-"menu. Tous les objets groupés dans une même sélection apparaissent en "
-"surbrillance."
-
-#: C/glabels.xml:668(term)
-msgid "Area selections"
-msgstr "Sélection par zone"
+#: C/merge-ex4.page:25(title)
+msgid "Example 4: Address Labels Using a vCard file"
+msgstr "Exemple 4 : étiquettes d'adresses avec un fichier vCard"
 
-#: C/glabels.xml:670(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex3.page:53(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'figures/merge-ex1-3.png'; md5=8f686530b1196b04595be50a9f8d4728"
 msgid ""
-"Multiple objects can also be selected by clicking an empty area and dragging "
-"to form a rectangular area. When released, all objects contained in the area "
-"will form an aggregate selection. An area selection can be used to add to an "
-"existing selection by holding the <keycap>Ctrl</keycap> key while performing "
-"the selection."
+"@@image: 'figures/merge-ex3-1.png'; md5=fb5bf719857fb0a49517ecb50124384d"
 msgstr ""
-"Plusieurs objets peuvent aussi être sélectionnés avec la souris. Il suffit "
-"de cliquer sur un endroit vide et de faire glisser la souris en entourant les objets "
-"choisis. En relâchant, tous les objets présents dans ce rectangle font "
-"partie de la sélection. Une sélection par zone peut servir à ajouter des "
-"objets à une sélection existante en maintenant la touche <keycap>Ctrl</"
-"keycap> enfoncée pendant l'opération."
-
-#: C/glabels.xml:680(term)
-msgid "Unselecting objects"
-msgstr "Désélection d'objets"
-
-#: C/glabels.xml:682(para)
-msgid ""
-"Individual objects can be removed from an existing selection by holding the "
-"<keycap>Ctrl</keycap> key while clicking on a previously selected object. An "
-"entire selection can be dismissed by using the <menuchoice><guimenu>Edit</"
-"guimenu><guimenuitem>Un-select All</guimenuitem></menuchoice> menu item or "
-"by simply clicking any empty space in the display area. Once an object is "
-"unselected its highlight is removed."
-msgstr ""
-"Chaque objet peut être retiré d'une sélection existante en cliquant dessus "
-"tout en maintenant la touche <keycap>Ctrl</keycap> enfoncée. Une sélection "
-"entière peut être désactivée en choisissant <menuchoice><guimenu>Édition</"
-"guimenu><guimenuitem>Désélectionner tout</guimenuitem></menuchoice> dans le "
-"menu, ou plus simplement en cliquant dans un endroit vide de la zone "
-"d'affichage. Dès qu'un objet est désélectionné, il n'est plus en surbrillance."
-
-#: C/glabels.xml:699(title)
-msgid "Clipboard Commands"
-msgstr "Les commandes du presse-papiers"
+"@@image: 'figures/merge-ex1-3.png'; md5=8f686530b1196b04595be50a9f8d4728"
 
-#: C/glabels.xml:701(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex3.page:74(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'figures/merge-ex2-2.png'; md5=2912c145fd9caac56ad7cf8c4437636b"
 msgid ""
-"Object selections can be manipulated using the standard clipboard operations "
-"<guimenuitem>Cut</guimenuitem>, <guimenuitem>Copy</guimenuitem>, "
-"<guimenuitem>Paste</guimenuitem>, and <guimenuitem>Delete</guimenuitem>."
+"@@image: 'figures/merge-ex3-2.png'; md5=28a15319cea58be75ff789c766dc0717"
 msgstr ""
-"Des sélections d'objets peuvent être manipulées avec les fonctions standards "
-"du presse-papiers : <guimenuitem>Couper</guimenuitem>, <guimenuitem>Copier</"
-"guimenuitem>, <guimenuitem>Coller</guimenuitem> et <guimenuitem>Supprimer</"
-"guimenuitem>."
-
-#: C/glabels.xml:712(keycap) C/glabels.xml:728(keycap)
-#: C/glabels.xml:744(keycap)
-msgid "Ctrl"
-msgstr "Ctrl"
-
-#: C/glabels.xml:712(keycap)
-msgid "X"
-msgstr "X"
-
-#: C/glabels.xml:714(guimenuitem)
-msgid "Cut"
-msgstr "Couper"
+"@@image: 'figures/merge-ex2-2.png'; md5=2912c145fd9caac56ad7cf8c4437636b"
 
-#: C/glabels.xml:718(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex3.page:88(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'figures/merge-ex2-3.png'; md5=59a1dc5ff94656877a6220f73fe25b3c"
 msgid ""
-"Moves selected objects to the clipboard. The objects are then available for "
-"pasting back into the current document or another document."
+"@@image: 'figures/merge-ex3-3.png'; md5=443d59a44d8ddf5580087a772d4e3eec"
 msgstr ""
-"Déplace les objets sélectionnés dans le presse-papiers. Ils sont alors "
-"disponibles pour être recollés dans le même document ou dans un autre."
+"@@image: 'figures/merge-ex2-3.png'; md5=59a1dc5ff94656877a6220f73fe25b3c"
 
-#: C/glabels.xml:728(keycap)
-msgid "C"
-msgstr "C"
-
-#: C/glabels.xml:730(guimenuitem)
-msgid "Copy"
-msgstr "Copier"
-
-#: C/glabels.xml:734(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex3.page:99(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'figures/merge-ex2-2.png'; md5=2912c145fd9caac56ad7cf8c4437636b"
 msgid ""
-"Copies selected objects to the clipboard without deleting them. The objects "
-"are then available for pasting back into the current document or another "
-"document."
+"@@image: 'figures/merge-ex3-4.png'; md5=1995114757cccebda45b686caeb37fa7"
 msgstr ""
-"Crée une copie des objets sélectionnés dans le presse-papiers sans effacer "
-"les originaux. Ils sont alors disponibles pour être recollés dans le même "
-"document ou dans un autre."
-
-#: C/glabels.xml:744(keycap)
-msgid "V"
-msgstr "V"
+"@@image: 'figures/merge-ex2-2.png'; md5=2912c145fd9caac56ad7cf8c4437636b"
 
-#: C/glabels.xml:746(guimenuitem)
-msgid "Paste"
-msgstr "Coller"
-
-#: C/glabels.xml:750(para)
+#: C/merge-ex3.page:9(desc)
 msgid ""
-"Pastes objects from the clipboard into the current document. "
-"<application>gLabels</application> can only paste objects from another "
-"<application>gLabels</application> document."
+"Create address labels from the <app>Evolution</app> address book entries."
 msgstr ""
-"Colle des objets du presse-papiers dans le document actif. "
-"<application>gLabels</application> ne peut coller que des objets d'un autre "
-"document <application>gLabels</application>."
-
-#: C/glabels.xml:760(keycap) C/glabels.xml:762(guimenuitem)
-msgid "Delete"
-msgstr "Supprimer"
+"Créer des étiquettes adresses à partir des enregistrements du carnet "
+"d'adresses d'<app>Evolution</app>."
 
-#: C/glabels.xml:766(para)
-msgid "Deletes selected objects without placing them on the clipboard."
+#: C/merge-ex3.page:25(title)
+msgid "Example 3: Address Labels Using the <app>Evolution</app> Addressbook"
 msgstr ""
-"Supprime les objets sélectionnés sans les garder dans le presse-papiers."
-
-#: C/glabels.xml:777(title)
-msgid "To Edit Object Properties"
-msgstr "Édition des propriétés d'un objet"
+"Exemple 3 : étiquettes d'adresses avec la liste des contacts "
+"d'<app>Evolution</app> "
 
-#: C/glabels.xml:779(para)
+#: C/merge-ex3.page:27(p)
 msgid ""
-"Most object properties can be modified through the object editor sidebar, "
-"illustrated below. To use the object editor, a single object must first be "
-"selected. See <xref linkend=\"glabels-select-objects\"/>."
-msgstr ""
-"La plupart des propriétés d'un objet peuvent être modifiées avec l'éditeur "
-"d'objet présent dans le panneau latéral comme illustré ci-dessous. Pour que "
-"l'éditeur d'objet soit actif, il faut d'abord sélectionner un objet. Voir "
-"<xref linkend=\"glabels-select-objects\"/>."
-
-#: C/glabels.xml:786(title)
-msgid "Object Editor Sidebar"
-msgstr "Panneau latéral : éditeur d'objet"
+"Our last party was a great success, and now we need to print mailing address "
+"labels for the invitations to a new one. To simplify this, we can use the "
+"<app>Evolution</app> addressbook, because the address data of all our "
+"friends is stored there."
+msgstr ""
+"Notre précédente soirée a été un grand succès et nous voulons maintenant "
+"imprimer des étiquettes d'adresses pour lancer des invitations pour en "
+"organiser une autre. Pour simplifier l'opération, nous allons utiliser le "
+"carnet d'adresses d'<app>Evolution</app>, car les coordonnées de tous nos "
+"amis y figurent."
+
+#: C/merge-ex3.page:33(p)
+msgid ""
+"Depending on how your copy of <app>gLabels</app> was packaged, this option "
+"could be unavailable. Support for the <app>Evolution</app> addressbook will "
+"only be available if the <app>evolution-data-server</app> and its "
+"development files were present when <app>gLabels</app> was built. Please "
+"keep this in mind if you build <app>gLabels</app> directly from source."
+msgstr ""
+"Selon la manière dont la copie de <app>gLabels</app> a été empaquetée, cette "
+"fonctionnalité peut ne pas être disponible. La prise en charge du carnet "
+"d'adresses d'<app>Evolution</app> n'est disponible que si <app>evolution-"
+"data-server</app> et ses fichiers de développement étaient présents lors de "
+"la compilation de <application>gLabels</application>. N'oubliez pas cela si "
+"vous construisez <application>gLabels</application> directement à partir des "
+"sources."
+
+#: C/merge-ex3.page:39(p)
+msgid ""
+"If the <app>gLabels</app> package from your distribution lacks this support, "
+"you may wish to contact the package maintainer or file a bug against the "
+"package to request it."
+msgstr ""
+"Si le paquet <app>gLabels</app> de votre distribution ne comporte pas cette "
+"prise en charge, vous pouvez essayer de contacter le responsable du paquet "
+"ou envoyer un rapport d'anomalie pour demander l'ajout de cette "
+"fonctionnalité."
+
+#: C/merge-ex3.page:44(p)
+msgid ""
+"In <app>glabels</app> we have created a new <app>gLabels</app> document "
+"using the Avery 5512 \"Address Labels\" template. Next we use the "
+"<guiseq><gui>Objects</gui><gui>Merge Properties</gui></guiseq> menu item to "
+"display the <gui>Merge properties</gui> dialog. We use this dialog to select "
+"the source type (in our case <gui>Data from default Evolution addressbook</"
+"gui>) as shown."
+msgstr ""
+"Dans <app>gLabels</app>, nous créons un nouveau document fondé sur le modèle "
+"des « Étiquettes adresses » AVERY 5512. Puis, avec l'élément de menu "
+"<guiseq><gui>Objets</gui><gui>Propriétés de fusion</gui></guiseq> nous "
+"affichons la boîte de dialogue <gui>Propriétés de fusion</gui> avec laquelle "
+"nous sélectionnons le type de source (ici <gui>Données du carnet d'adresses "
+"Evolution par défaut</gui>) comme illustré ci-après."
+
+#: C/merge-ex3.page:54(p) C/merge-ex2.page:53(p) C/merge-ex1.page:51(p)
+msgid "Merge properties dialog"
+msgstr "Boîte de dialogue « Propriétés de fusion »"
 
 #. ==== End of Figure ====
-#: C/glabels.xml:797(para)
+#: C/merge-ex3.page:58(p)
+msgid ""
+"Once we have chosen <gui>Data from default Evolution addressbook </gui> as "
+"our merge source, we will get a full list of its content. Initially, all "
+"entries are checked. Assuming we were planning a really big party, we could "
+"leave this selection untouched (but let's keep our budget in mind). We will "
+"now select or unselect certain entries by clicking on the appropriate "
+"checkboxes, or we could use the <gui>Select all</gui> and <gui>Unselect all "
+"</gui> buttons to activate or deactivate all entries in the address book."
+msgstr ""
+"Après avoir choisi <gui>Données du carnet d'adresses Evolution par défaut</"
+"gui> comme source de fusion, nous obtenons la liste complète de son contenu. "
+"Par défaut, tous les enregistrements sont cochées. Nous pourrions organiser "
+"une soirée géante en laissant cette sélection telle que. Mais ne perdons pas "
+"de vue le budget. Nous allons donc retenir ou éliminer des participations en "
+"ajustant la coche des enregistrements d'un clic dans la case correspondante. "
+"Nous pouvons nous servir des boutons <gui>Sélectionner tout</gui> ou "
+"<gui>Désélectionner tout</gui> pour activer ou désactiver d'un coup toutes "
+"les entrées du carnet."
+
+#: C/merge-ex3.page:66(p)
 msgid ""
-"The object editor will contain a subset of the following tabbed sections, "
-"depending on object type:"
+"We can also view each entry in more detail by clicking on the appropriate "
+"expander (the little triangles) as shown. Once we are satisfied with the "
+"selections in this dialog, we will click the <gui>OK</gui> button to accept "
+"the changes."
 msgstr ""
-"L'éditeur d'objet propose un sous-ensemble des onglets suivants, selon le "
-"type d'objet :"
-
-#: C/glabels.xml:801(title)
-msgid "Text Tabbed Section (Text objects)"
-msgstr "Onglet Texte (pour objets Texte)"
+"Nous pouvons aussi développer le contenu de chaque enregistrement en "
+"cliquant sur l'icône d'extension correspondante (le petit triangle) comme "
+"illustré. Une fois les choix arrêtés dans cette boîte de dialogue, cliquez "
+"<gui>Valider</gui> pour confirmer les modifications."
 
-#: C/glabels.xml:803(para)
+#: C/merge-ex3.page:71(p) C/merge-ex2.page:67(p) C/merge-ex1.page:60(p)
 msgid ""
-"This section contains a small editor for changing the content of a text "
-"object. It also contains a dropdown menu of available document merge keys, "
-"that can be inserted into text."
+"Now we start adding objects to our <app>glabels</app> document as shown."
 msgstr ""
-"Cet onglet contient un petit éditeur permettant de modifier le contenu d'un "
-"objet texte. Il contient aussi un menu déroulant indiquant les champs de "
-"fusion disponibles pouvant être insérés dans le texte."
+"Nous allons maintenant ajouter des objets au document <app>gLabels</app> "
+"comme indiqué ci-dessous."
 
-#: C/glabels.xml:810(title)
-msgid "Image Tabbed Section (Image objecs)"
-msgstr "Onglet Image (pour objets Image)"
+#: C/merge-ex3.page:75(p) C/merge-ex2.page:71(p) C/merge-ex1.page:64(p)
+msgid "Adding objects"
+msgstr "Ajout d'objets"
 
-#: C/glabels.xml:812(para)
+#. ==== End of Figure ====
+#: C/merge-ex3.page:79(p)
 msgid ""
-"This section contains a file entry with preview to select image files. The "
-"browse button can be used to easily locate image files. Alternatively, a "
-"document merge key can be used instead to provide a filename at print time."
+"In this example we have a single text object again. This text object "
+"contains all of our merge fields organized on multiple lines as a mailing "
+"address."
 msgstr ""
-"Cet onglet contient une zone de sélection de fichier avec aperçu permettant "
-"de choisir des fichiers image. Le bouton peut être utilisé pour "
-"naviguer aisément parmi les fichiers image. On peut aussi indiquer un champ "
-"de fusion utilisable à la place du nom de fichier au moment de l'impression."
-
-#: C/glabels.xml:820(title)
-msgid "Data Tabbed Section (Barcode objecs)"
-msgstr "Onglet Code-barre (objets Code-barre)"
+"Dans cet exemple, nous avons à nouveau un seul objet texte contenant tous "
+"les champs de fusion disposés sur plusieurs lignes comme sur une adresse "
+"postale."
 
-#: C/glabels.xml:822(para)
+#: C/merge-ex3.page:82(p)
 msgid ""
-"This section contains a text entry to enter literal barcode data. "
-"Alternatively, a document merge key can be used to provide this data at "
-"print time."
+"Now we can print our address labels by selecting the <guiseq><gui>File</"
+"gui><gui>Print</gui></guiseq> menu item. This will display the print dialog "
+"as shown below."
 msgstr ""
-"Cet onglet contient une zone de saisie de texte pour entrer la chaîne "
-"alphanumérique d'un code-barre. On peut aussi indiquer un "
-"champ de fusion qui fournira l'information au moment de l'impression."
+"Nous pouvons maintenant imprimer les étiquettes d'adresses en cliquant sur "
+"l'élément de menu <guiseq><gui>Fichier</gui><gui>Imprimer</gui></guiseq>. La "
+"boîte de dialogue « Imprimer » s'affiche comme indiqué ci-dessous."
 
-#: C/glabels.xml:829(title)
-msgid "Style Tabbed Section (Text objects)"
-msgstr "Onglet Style (objets Texte)"
+#: C/merge-ex3.page:89(p) C/merge-ex2.page:89(p)
+msgid "Printing address labels"
+msgstr "Impression des étiquettes d'adresses"
 
-#: C/glabels.xml:831(para)
+#. ==== End of Figure ====
+#: C/merge-ex3.page:93(p) C/merge-ex2.page:93(p) C/merge-ex1.page:89(p)
 msgid ""
-"This section contains controls to select text properties, including font "
-"family, font size, font weight, color, and text justification."
+"Just to make sure our labels are going to look okay, we select the "
+"<gui>Print outlines</gui> option and click <gui>Print Preview</gui>. This "
+"will display a print preview dialog as shown below."
 msgstr ""
-"Cet onglet contient des éléments à renseigner pour choisir les propriétés du "
-"texte : famille, taille, style, couleur, alignement et espacement."
+"Pour s'assurer que les étiquettes auront bel aspect, nous activons l'option "
+"<gui>Imprimer des bordures</gui> et cliquons sur <gui>Aperçu avant "
+"impression</gui>. Cela déclenche l'affichage d'une fenêtre d'aperçu comme ci-"
+"dessous."
 
-#: C/glabels.xml:838(title)
-msgid "Style Tabbed Section (Barcode objecs)"
-msgstr "Onglet Style (objets Code-barre)"
+#: C/merge-ex3.page:100(p)
+msgid "Addess labels preview"
+msgstr "Aperçu des étiquettes d'adresses"
 
-#: C/glabels.xml:840(para)
+#. ==== End of Figure ====
+#: C/merge-ex3.page:104(p) C/merge-ex2.page:104(p)
 msgid ""
-"This section contains controls to select barcode properties, including "
-"barcode style, color, whether to print text, and whether to include a "
-"checksum digit."
+"Everything looks good, so we can now load up our printer with the "
+"appropriate label stock, print our address labels and start mailing our "
+"party invitations."
 msgstr ""
-"Cet onglet contient des éléments à renseigner pour choisir les propriétés du "
-"code-barre : le style, la couleur, et s'il faut y inclure ou non une "
-"somme de contrôle."
-
-#: C/glabels.xml:847(title)
-msgid "Line Tabbed Section"
-msgstr "Onglet Ligne"
+"Tout paraît correct, nous pouvons donc maintenant charger le paquet "
+"d'étiquettes adéquates dans l'imprimante, imprimer les adresses et commencer "
+"à envoyer les invitations à la soirée."
 
-#: C/glabels.xml:849(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex2.page:52(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'figures/merge-ex2-1.png'; md5=d48a99d65408584eae2603a0c07610da"
 msgid ""
-"This section contains controls to select properties of lines and outlines. "
-"These properties include line width and color."
+"@@image: 'figures/merge-ex2-1.png'; md5=c9db139c5b7188e101470dc74684a118"
 msgstr ""
-"Cet onglet contient deux éléments permettant de choisir les propriétés des "
-"lignes et des bordures : largeur et couleur."
-
-#: C/glabels.xml:855(title)
-msgid "Fill Tabbed Section"
-msgstr "Onglet Remplissage"
+"@@image: 'figures/merge-ex2-1.png'; md5=d48a99d65408584eae2603a0c07610da"
 
-#: C/glabels.xml:857(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex2.page:70(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'figures/merge-ex2-2.png'; md5=2912c145fd9caac56ad7cf8c4437636b"
 msgid ""
-"This section contains controls to select fill properties of box and ellipse "
-"objects. Currently the only fill property is fill color."
+"@@image: 'figures/merge-ex2-2.png'; md5=240b4e4ebaa270e0e8bf84c5bfd7233e"
 msgstr ""
-"Cet onglet contient des éléments pour renseigner les propriétés de remplissage "
-"des objets boîte et ellipse. Pour l'instant, la couleur est la seule option "
-"de remplissage disponible."
-
-#: C/glabels.xml:864(title)
-msgid "Size Tabbed Section (All except line objects)"
-msgstr "Onglet Taille (tous objets, sauf Ligne)"
+"@@image: 'figures/merge-ex2-2.png'; md5=2912c145fd9caac56ad7cf8c4437636b"
 
-#: C/glabels.xml:866(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex2.page:88(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'figures/merge-ex2-3.png'; md5=59a1dc5ff94656877a6220f73fe25b3c"
 msgid ""
-"This section contains controls to select the width and height of an object. "
-"A checkbox is provided, so that the current aspect ratio can be locked while "
-"manipulating the width and height controls. Image objects also provide a "
-"button to reset the size to the image's natural size (Assumes 72DPI)."
+"@@image: 'figures/merge-ex2-3.png'; md5=c347460091d8eef9f4ec89557fa9f1e2"
 msgstr ""
-"Cet onglet contient deux éléments pour définir la largeur et la hauteur d'un "
-"objet. Il y a aussi une case à cocher pour figer le rapport largeur/"
-"hauteur pendant le redimensionnement de l'objet. Pour les objets Image, il y "
-"a en plus un bouton permettant de revenir aux dimensions d'origine (72 ppp "
-"par défaut)."
-
-#: C/glabels.xml:875(title)
-msgid "Size Tabbed Section (Line objects)"
-msgstr "Onglet Taille (objets ligne)"
+"@@image: 'figures/merge-ex2-3.png'; md5=59a1dc5ff94656877a6220f73fe25b3c"
 
-#: C/glabels.xml:877(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex2.page:99(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'figures/merge-ex2-1.png'; md5=d48a99d65408584eae2603a0c07610da"
 msgid ""
-"This section contains controls to select the length and angle of a line "
-"object."
-msgstr ""
-"Cet onglet contient deux éléments pour renseigner la longueur et l'angle "
-"d'inclinaison d'un objet ligne."
-
-#: C/glabels.xml:883(title)
-msgid "Position Tabbed Section"
-msgstr "Onglet Position"
-
-#: C/glabels.xml:885(para)
-msgid "This section contains controls to change the position of an object."
+"@@image: 'figures/merge-ex2-4.png'; md5=30d12e946a79e27211b835e38742671c"
 msgstr ""
-"Cet onglet contient des éléments permettant de modifier la position d'un objet."
-
-#: C/glabels.xml:892(title)
-msgid "Shadow Tabbed Section (All except image and barcode objects)"
-msgstr "Onglet Ombrage (tous objets, sauf Image et Code-barre)"
-
-#: C/glabels.xml:894(para)
-msgid "This section contains controls to add a shadow to an object."
-msgstr "Cet onglet contient les paramètres pour ajouter une ombre à un objet."
+"@@image: 'figures/merge-ex2-1.png'; md5=d48a99d65408584eae2603a0c07610da"
 
-#: C/glabels.xml:903(title)
-msgid "Other Manipulations of Objects"
-msgstr "Autres possibilités de manipulation d'un objet"
-
-#: C/glabels.xml:905(para)
-msgid "Objects can also be manipulated in the following ways."
-msgstr "Les objets peuvent aussi être manipulés des façons suivantes."
+#: C/merge-ex2.page:9(desc)
+msgid "Create address labels from a CSV file."
+msgstr "Créer des étiquettes d'adresses à partir d'un fichier CSV."
 
-#: C/glabels.xml:908(title)
-msgid "Moving and Resizing Objects"
-msgstr "Déplacement et redimensionnement des objets"
+#: C/merge-ex2.page:25(title)
+msgid "Example 2: Address labels"
+msgstr "Exemple 2 : étiquettes d'adresses"
 
-#: C/glabels.xml:910(para)
+#: C/merge-ex2.page:27(p)
 msgid ""
-"Objects can be moved by simply clicking on a selected object and dragging "
-"the object to its new location. If the object is part of an aggregate "
-"selection, all objects in the selection will move with the object being "
-"dragged, maintaining their relative positions to one another. If no object "
-"is selected, clicking on an object will create a new selection containing "
-"that object. See <xref linkend=\"glabels-select-objects\"/>."
+"In this example we are going to throw a party and need to print mailing "
+"address labels for our invitations. We have a list of our closest friends "
+"that we created in <app>gnumeric</app> and exported as the following CSV "
+"file. It should be noted that not everyone has a middle initial or a two "
+"line address."
 msgstr ""
-"Un objet peut être déplacé en cliquant dessus et en le faisant glisser à sa "
-"nouvelle place. Si cet objet fait partie d'une sélection groupée, "
-"tous les objets sélectionnés sont déplacés en même temps tout en gardant "
-"leurs positions relatives les uns par rapport aux autres. Si aucun objet "
-"n'est sélectionné, un clic sur un objet crée une nouvelle sélection "
-"contenant cet objet. Voir <xref linkend=\"glabels-select-objects\"/>."
+"Pour illustrer cet exemple, disons que nous projetons d'organiser une soirée "
+"et nous avons besoin d'imprimer des étiquettes pour lancer les invitations. "
+"Nous avons une liste d'amis proches, liste créée à l'aide de <app>gnumeric</"
+"app> et exportée sous forme du fichier CSV ci-après. Il faut noter que tout "
+"le monde n'a pas d'initiale intermédiaire, ni d'adresse sur deux lignes."
 
-#: C/glabels.xml:918(para)
+#: C/merge-ex2.page:33(code)
+#, no-wrap
 msgid ""
-"A selected object can be resized by clicking one of its resize handle and "
-"dragging it to obtain the new size."
+"\n"
+"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n"
+",,,,,,,\n"
+"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n"
+"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n"
+"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n"
+"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n"
+"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n"
+"      "
 msgstr ""
-"Un objet sélectionné peut être redimensionné en cliquant sur une de ses "
-"poignées et en la faisant glisser jusqu'à obtenir les dimensions souhaitées."
-
-#: C/glabels.xml:924(title)
-msgid "Changing Stacking Order"
-msgstr "Modification de l'ordre d'empilage"
+"\n"
+"NOM,PRÉNOM,INITIALE,ADRESSE1,ADRESSE2,VILLE,ÉTAT,CODE POSTAL\n"
+",,,,,,,\n"
+"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n"
+"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n"
+"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n"
+"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n"
+"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n"
+"      "
 
-#: C/glabels.xml:926(para)
+#: C/merge-ex2.page:43(p)
 msgid ""
-"Stacking order refers to relative position in the z-axis of objects. That is "
-"when objects overlap, which object will appear on top of the other. By "
-"default, newer objects will appear above older objects. To change this "
-"order, select one or more objects and choose <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Order</guimenuitem><guimenuitem>Bring to Front</"
-"guimenuitem></menuchoice> to raise the selection to the top of the stacking "
-"order, or choose <menuchoice><guimenu>Objects</guimenu><guimenuitem>Order</"
-"guimenuitem><guimenuitem>Send to Back</guimenuitem></menuchoice> to lower "
-"the selection to the bottom of the stacking order. These menuitems are also "
-"available by right-clicking the display area when there is a non-empty "
-"selection."
+"In <app>glabels</app> we have created a new <app>glabels</app> document "
+"using the Avery 5512 \"Address Labels\" template. Next we use the "
+"<guiseq><gui>Objects</gui><gui>Merge Properties</gui></guiseq> menu item to "
+"display the <gui>merge properties</gui> dialog. We use this dialog to select "
+"the source type (in our case CSV with keys on line 1) and the merge source "
+"(filename) as shown."
 msgstr ""
-"L'ordre d'empilage se réfère à la position relative d'un objet par rapport à "
-"l'axe Z, c'est-à-dire lorsque des objets se recouvrent, lequel apparaît au-"
-"dessus de l'autre. Par défaut, les plus récents sont affichés par-dessus les plus "
-"anciens. Pour modifier cet ordre, sélectionnez un ou plusieurs objets à "
-"déplacer et choisissez <menuchoice><guimenu>Objets</"
-"guimenu><guimenuitem>Ordre</guimenuitem><guimenuitem>Avancer au premier plan "
-"</guimenuitem></menuchoice> pour placer la sélection au-dessus de la pile, "
-"ou <menuchoice><guimenu>Objets</guimenu><guimenuitem>Ordre</"
-"guimenuitem><guimenuitem>Reculer à l'arrière-plan</guimenuitem></menuchoice> "
-"pour placer la sélection sous la pile. Ces commandes sont aussi accessibles "
-"par le menu contextuel (clic droit dans la zone d'affichage lorsqu'un élément "
-"au moins est sélectionné)."
-
-#: C/glabels.xml:944(title)
-msgid "Rotating and Flipping Objects"
-msgstr "Rotation et renversement des objets"
+"Dans <app>gLabels</app>, nous créons un nouveau document sur le modèle des "
+"« Étiquettes adresses » AVERY 5512. Puis, avec l'élément de menu "
+"<guiseq><gui>Objets</gui><gui>Propriétés de fusion</gui></guiseq>, nous "
+"affichons la boîte de dialogue <gui>Propriétés de fusion</gui> ; nous "
+"sélectionnons le type de source (dans notre cas CVS avec en-têtes en "
+"première ligne) et son emplacement (nom de fichier) comme sur l'illustration "
+"ci-dessous."
 
-#: C/glabels.xml:946(para)
+#. ==== End of Figure ====
+#: C/merge-ex2.page:57(p)
 msgid ""
-"Objects can be rotated 90 degrees in either direction, or flipped "
-"horizontally or vertically, by choosing the appropriate menuitem in the "
-"<menuchoice><guimenu>Objects</guimenu><guimenuitem>Rotate/Flip</"
-"guimenuitem></menuchoice> sub-menu. These menuitems are also available by "
-"right-clicking the display area when there is a non-empty selection."
+"Before applying the merge source, we uncheck the first record since it only "
+"contains empty fields. It is an artifact of our original <app>gnumeric</app> "
+"spreadsheet and would simply waste our first label. We could also unselect "
+"any other records that we didn't want to print a label for."
 msgstr ""
-"À partir du menu <menuchoice><guimenu>Objets</guimenu><guimenuitem>Rotation/"
-"Renversement</guimenuitem>, on accède à un sous-menu permettant de faire pivoter un "
-"objet de 90° dans n'importe quelle direction, ou de le renverser "
-"horizontalement ou verticalement. Ces commandes sont aussi accessibles par "
-"le menu contextuel (clic droit dans la zone d'affichage lorsqu'un élément "
-"au moins est sélectionné)."
+"Avant d'effectuer la fusion, nous allons enlever la coche sur la première "
+"ligne car elle ne contient que des champs vides. C'est un artefact de notre "
+"document <app>gnumeric</app> d'origine et l'imprimer ne ferait que gâcher la "
+"première étiquette. Nous pouvons de la même façon ôter la sélection de tout "
+"autre enregistrement pour lequel nous ne voulons pas imprimer de badge."
 
-#: C/glabels.xml:956(title)
-msgid "Aligning Objects"
-msgstr "Alignement des objets"
-
-#: C/glabels.xml:958(para)
+#. ==== End of Figure ====
+#: C/merge-ex2.page:62(p) C/merge-ex1.page:55(p)
 msgid ""
-"Objects can be aligned horizontally or vertically, relative to one another, "
-"or relative to the center line of the label, by choosing the appropriate "
-"menuitem from the <menuchoice><guimenu>Objects</guimenu><guimenuitem>Align "
-"Horizontal</guimenuitem></menuchoice> or <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Align Horizontal</guimenuitem></menuchoice> sub-menus. "
-"These menuitems are also available by right-clicking the display area when "
-"there is a non-empty selection."
+"We can also view each record in more detail by clicking on the appropriate "
+"expander (the little triangles) as shown. Once we are satisfied with the "
+"selections in this dialog we click <gui>OK</gui> to accept the changes."
 msgstr ""
-"Des objets peuvent être alignés horizontalement ou verticalement les uns par "
-"rapport aux autres, ou par rapport à la ligne médiane de l'étiquette. Pour cela, "
-"choisissez l'option adéquate dans le menu <menuchoice><guimenu>Objets</"
-"guimenu><guimenuitem>Aligner horizontalement</guimenuitem></menuchoice> ou </"
-"guimenu><guimenuitem>Aligner verticalement</guimenuitem></menuchoice>. Ces "
-"commandes sont aussi accessibles par le menu contextuel (clic droit dans la "
-"zone d'affichage lorsqu'un élément au moins est sélectionné)."
-
-#: C/glabels.xml:971(title)
-msgid "Using the Property Bar"
-msgstr "Utilisation de la barre des propriétés"
+"Il est aussi possible de voir le détail du contenu de chaque enregistrement "
+"en cliquant sur l'icône d'extension correspondante (le petit triangle) comme "
+"indiqué. Une fois les choix arrêtés dans cette boîte de dialogue, nous "
+"cliquons sur <guibutton>Valider</guibutton> pour confirmer les modifications."
 
-#: C/glabels.xml:973(para)
+#. ==== End of Figure ====
+#: C/merge-ex2.page:75(p)
 msgid ""
-"The property bar can be used to change some common properties of objects en-"
-"masse. These properties include font family, font size, font weight, text "
-"alignment, text color, fill color, line or outline color, and line width. "
-"The property bar also controls the defaults for these properties for any "
-"newly created objects."
-msgstr ""
-"La barre des propriétés sert à modifier certaines options communes à un ensemble "
-"d'objets : famille de police, taille, gras, italique, alignement, couleur du "
-"texte, couleur de remplissage, couleur de ligne ou de bordure et épaisseur de "
-"ligne. La barre des propriétés est aussi utilisée pour définir les options "
-"appliquées par défaut à tout nouvel objet créé."
+"In this example we have a single text object. This text object contains all "
+"of our merge fields organized on multiple lines as a mailing address. Notice "
+"that fields ${ADDR1} and ${ADDR2} are each located with no other text on "
+"their own lines. When <app>glabels</app> encounters a field as the only text "
+"on a line, it will not expand the line if the field is empty."
+msgstr ""
+"Dans cet exemple, nous avons un seul objet texte. Celui-ci contient tous nos "
+"champs de fusion agencés sur plusieurs lignes comme le sont les adresses "
+"postales. Notez que les champs ${ADR1} et ${ADR2} ont été disposés sans "
+"aucune autre mention sur leur ligne. Lorsque <app>gLabels</app> rencontre un "
+"champ occupant à lui seul toute une ligne, il ne génère pas de ligne si le "
+"champ est vide."
+
+#: C/merge-ex2.page:82(p)
+msgid ""
+"Now we can print our address labels by selecting the <guiseq><gui>File</"
+"gui><gui>Print</gui></guiseq> menu item. This will display print dialog as "
+"shown below."
+msgstr ""
+"Nous pouvons maintenant imprimer les étiquettes d'adresses en cliquant "
+"l'élément de menu <guiseq><gui>Fichier</gui><gui>Imprimer</gui></guiseq>. "
+"Cette commande ouvre la boîte de dialogue « Imprimer » comme illustré ci-"
+"dessous."
 
-#: C/glabels.xml:988(title)
-msgid "Performing a Document Merge"
-msgstr "Fusion de documents"
+#: C/merge-ex2.page:100(p)
+msgid "Address labels preview"
+msgstr "Aperçu des étiquettes d'adresses"
 
-#: C/glabels.xml:990(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex1.page:50(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'figures/merge-ex2-3.png'; md5=59a1dc5ff94656877a6220f73fe25b3c"
 msgid ""
-"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that "
-"allows a unique label or card to be printed for each record in an external "
-"data source."
+"@@image: 'figures/merge-ex1-1.png'; md5=6e1cda54b797f875f379b657370d87c8"
 msgstr ""
-"La fusion de documents (aussi appelée « Publipostage ») est un outil "
-"performant qui, à partir d'une seule carte ou étiquette, est capable d'imprimer "
-"autant d'éléments que d'enregistrements présents dans un document source externe."
+"@@image: 'figures/merge-ex2-3.png'; md5=59a1dc5ff94656877a6220f73fe25b3c"
 
-#: C/glabels.xml:994(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex1.page:63(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'figures/merge-ex2-1.png'; md5=d48a99d65408584eae2603a0c07610da"
 msgid ""
-"The first step to performing a document merge is to prepare a source "
-"document that contains your merge data. This data could be mailing addresses "
-"or any other data that you wish to create unique labels or cards for. "
-"Currently back-ends only exist for text files and the evolution data server "
-"-- others are planned. The currently supported text-file format is very "
-"simple: each line is a record; fields are delimited by commas (CSV), tabs, "
-"or colons; and newlines can be embedded into fields by using the \"\\n\" "
-"entity. This file could be created using any text editor or could be created "
-"by another program or script. A common way of creating CSV files is to "
-"export them from a spreadsheet program."
+"@@image: 'figures/merge-ex1-2.png'; md5=2ccad04ae5830f5f4a6a601d9fabed6a"
 msgstr ""
-"La première étape pour effectuer une fusion de documents est de créer un "
-"document source dans lequel figurent les informations de fusion. Celles-ci peuvent "
-"être des adresses postales (ou autres) pour lesquelles vous souhaitez "
-"imprimer une seule étiquette ou carte. Pour l'instant, les seules sources "
-"possibles sont des fichiers texte ou le carnet d'adresses d'Evolution "
-"(d'autres sont planifiées). Le format texte géré actuellement est très simple : chaque "
-"ligne est un enregistrement ; les champs sont séparés par des virgules "
-"(CSV), par des deux-points ou par des tabulations ; des sauts de lignes peuvent "
-"être contenus dans les champs en utilisant l'expression « \\n ». Ce fichier peut être créé avec "
-"n'importe quel éditeur de texte ou peut être généré par un autre programme "
-"ou script. L'usage, pour créer des fichiers CSV, est de les exporter depuis "
-"un tableur."
+"@@image: 'figures/merge-ex2-1.png'; md5=d48a99d65408584eae2603a0c07610da"
 
-#: C/glabels.xml:1006(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex1.page:84(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'figures/merge-ex1-3.png'; md5=8f686530b1196b04595be50a9f8d4728"
 msgid ""
-"A label must then be configured to \"point at\" this data file. To configure "
-"the merge properties of a document, choose <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Merge Properties</guimenuitem></menuchoice> menu item "
-"to display the <guilabel>merge properties</guilabel> dialog. This dialog is "
-"used to select the exact data file format and file name (location) of the "
-"merge data."
+"@@image: 'figures/merge-ex1-3.png'; md5=858855ab1a392db74b70cdb2bdb27ddd"
 msgstr ""
-"Une étiquette doit ensuite être configurée pour « pointer » vers ce fichier "
-"source. Pour configurer les propriétés de fusion d'un document, choisissez "
-"<menuchoice><guimenu>Objets</guimenu><guimenuitem>Propriétés de "
-"fusion</guimenuitem></menuchoice> pour afficher la boîte de dialogue "
-"<guilabel>Propriétés de fusion</guilabel>. Cette boîte sert à définir "
-"exactement le format du fichier de données, ainsi que le nom et "
-"l'emplacement du fichier de données pour la fusion."
-
-#: C/glabels.xml:1014(para)
-msgid ""
-"Finally, once the label has been configured for a data file, field keys can "
-"be inserted into text objects and used as source or data for barcode objects "
-"and image filenames for image objects. See <xref linkend=\"glabels-object-"
-"properties\"/> for more information on using merge data for these object "
-"types."
-msgstr ""
-"Pour finir, lorsque l'étiquette a été configurée pour un fichier de données, "
-"des champs peuvent être insérés dans les objets texte et utilisés comme "
-"source de données pour les objets code-barre, et dans les noms de fichiers "
-"image pour les objets image. Consultez <xref linkend=\"glabels-object-properties\"/"
-"> pour de plus amples informations sur l'utilisation des données fusionnées "
-"pour ces types d'objets."
+"@@image: 'figures/merge-ex1-3.png'; md5=8f686530b1196b04595be50a9f8d4728"
 
-#: C/glabels.xml:1020(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex1.page:95(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'figures/merge-ex1-3.png'; md5=8f686530b1196b04595be50a9f8d4728"
 msgid ""
-"Now that your label is configured, <application>gLabels</application> will "
-"print a unique label for each record in your source document -- substituting "
-"fields from each record for field keys in the all text, barcode, and image "
-"objects."
+"@@image: 'figures/merge-ex1-4.png'; md5=8648ff55dd2e531a1a82b797f0430279"
 msgstr ""
-"Lorsque l'étiquette est configurée, <application>gLabels</application> en "
-"imprime une pour chaque enregistrement (ligne) des données du document source, "
-"en remplaçant les champs définis dans les différents objets texte, code-barre "
-"et image par les champs de chaque enregistrement."
+"@@image: 'figures/merge-ex1-3.png'; md5=8f686530b1196b04595be50a9f8d4728"
 
-#: C/glabels.xml:1025(para)
-msgid ""
-"See <xref linkend=\"glabels-merge-tutorial\"/> for a detailed tutorial on "
-"the document merge feature."
-msgstr ""
-"Consultez <xref linkend=\"glabels-merge-tutorial\"/> pour un guide détaillé sur "
-"les possibilités du publipostage."
+#: C/merge-ex1.page:9(desc)
+msgid "Create name tags from a CSV file."
+msgstr "Créer des badges à partir d'un fichier CSV."
 
-#: C/glabels.xml:1040(title)
-msgid "Settings"
-msgstr "Paramètres"
+#: C/merge-ex1.page:25(title)
+msgid "Example 1: Name Tags"
+msgstr "Exemple 1 : création de badges"
 
-#: C/glabels.xml:1041(para)
-msgid ""
-"To configure <application>gLabels</application>, choose "
-"<menuchoice><guimenu>Settings</guimenu><guimenuitem>Preferences</"
-"guimenuitem></menuchoice>. The <guilabel>Preferences</guilabel> dialog "
-"contains the following tabbed sections:"
-msgstr ""
-"Pour configurer <application>gLabels</application>, allez dans le menu "
-"<menuchoice><guimenu>Édition</guimenu><guimenuitem>Préférences</"
-"guimenuitem></menuchoice>. La boîte de dialogue <guilabel>Préférences</"
-"guilabel> contient les onglets suivants :"
-
-#: C/glabels.xml:1062(title)
-msgid "Locale"
-msgstr "Localisation"
-
-#: C/glabels.xml:1066(guilabel)
-msgid "Units"
-msgstr "Unités"
-
-#: C/glabels.xml:1068(para)
-msgid ""
-"Use this radio button group to specify your preferred units. Select one of "
-"the following options:"
-msgstr ""
-"Ce groupe de boutons radio permet d'indiquer vos unités de mesure préférées. "
-"Cochez l'une des options suivantes :"
-
-#: C/glabels.xml:1073(guilabel)
-msgid "Points"
-msgstr "Points"
-
-#: C/glabels.xml:1074(para)
-msgid "Use points (1 point = 1/72 in = 0.352778 mm)."
-msgstr "Utilise le point (1 point = 1/72ème de pouce = 0,352778 mm)."
-
-#: C/glabels.xml:1078(guilabel)
-msgid "Inches"
-msgstr "Pouces"
-
-#: C/glabels.xml:1079(para)
-msgid "Use inches."
-msgstr "Utilise les pouces."
-
-#: C/glabels.xml:1083(guilabel)
-msgid "Millimeters"
-msgstr "Millimètres"
-
-#: C/glabels.xml:1084(para)
-msgid "Use millimeters."
-msgstr "Utilise les millimètres."
-
-#: C/glabels.xml:1087(para)
-msgid "Default: <guilabel>Inches</guilabel>."
-msgstr "Unité par défaut : <guilabel>Pouces</guilabel>."
-
-#: C/glabels.xml:1093(guilabel)
-msgid "Default page size"
-msgstr "Taille de page par défaut"
-
-#: C/glabels.xml:1095(para)
-msgid ""
-"Use this radio button group to specify your preferred page size. This will "
-"make it quicker for you to locate media types when creating a new label or "
-"card."
-msgstr ""
-"Ce groupe de boutons radio permet d'indiquer votre format de page préféré. "
-"Ceci vous aide à trouver plus rapidement un type de support lors de la création "
-"d'une nouvelle étiquette ou carte."
-
-#: C/glabels.xml:1101(guilabel)
-msgid "US Letter"
-msgstr "Letter US"
-
-#: C/glabels.xml:1102(para)
-msgid ""
-"Most of your media will be of the US Letter page size (8.5 x 11 inches)."
-msgstr ""
-"La plupart de vos supports seront au format Letter US (8.5 x 11 pouces)."
-
-#: C/glabels.xml:1106(guilabel)
-msgid "ISO A4"
-msgstr "ISO A4"
-
-#: C/glabels.xml:1107(para)
-msgid "Most of your media will be of the ISO A4 page size (210 x 297 mm)."
-msgstr "La plupart de vos supports seront au format ISO A4 (210 x 297 mm)."
-
-#: C/glabels.xml:1110(para)
-msgid "Default: <guilabel>US Letter</guilabel>."
-msgstr "Support par défaut : <guilabel>Letter US</guilabel>."
-
-#: C/glabels.xml:1119(title)
-msgid "Object defaults"
-msgstr "Paramètres par défaut pour les objets"
-
-#: C/glabels.xml:1125(para)
-msgid ""
-"Use these controls to set the default properties of new text objects. These "
-"properties are"
-msgstr ""
-"Utilisez ces différents contrôles pour définir les paramètres par défaut des "
-"nouveaux objets texte :"
-
-#: C/glabels.xml:1130(guilabel)
-msgid "Font"
-msgstr "Police"
-
-#: C/glabels.xml:1131(para)
-msgid ""
-"These controls are used to select font family and font size, and whether the "
-"font should bold or in italics."
-msgstr ""
-"Permet de sélectionner la famille de police et sa taille, et si elle doit être en gras "
-"ou en italique."
-
-#: C/glabels.xml:1136(guilabel) C/glabels.xml:1161(guilabel)
-#: C/glabels.xml:1176(guilabel)
-msgid "Color"
-msgstr "Couleur"
-
-#: C/glabels.xml:1137(para)
-msgid "This control selects the default text color."
-msgstr "Définit la couleur par défaut du texte."
-
-#: C/glabels.xml:1141(guilabel)
-msgid "Alignment"
-msgstr "Alignement"
-
-#: C/glabels.xml:1142(para)
-msgid ""
-"These controls are used to select the default text alignment (left, center "
-"or right)."
-msgstr ""
-"Définit l'alignement par défaut du texte : à gauche, centré ou à droite."
-
-#: C/glabels.xml:1151(para)
-msgid ""
-"Use these controls to set the default properties of lines and outlines of "
-"new objects. These properties are"
-msgstr ""
-"Définit les propriétés par défaut des lignes et bordures des nouveaux objets. "
-"Ces propriétés sont :"
-
-#: C/glabels.xml:1156(guilabel)
-msgid "Width"
-msgstr "Largeur"
-
-#: C/glabels.xml:1157(para)
-msgid "This control selects the default line width."
-msgstr "Définit l'épaisseur par défaut des lignes."
-
-#: C/glabels.xml:1162(para)
-msgid "This control selects the default line color."
-msgstr "Définit la couleur par défaut des lignes."
-
-#: C/glabels.xml:1169(guilabel)
-msgid "Fill"
-msgstr "Remplissage"
-
-#: C/glabels.xml:1171(para)
-msgid ""
-"Use these controls to set the default fill properties of new objects. These "
-"properties are"
-msgstr ""
-"Définit la couleur de remplissage par défaut des nouveaux objets. Ces "
-"propriétés sont :"
-
-#: C/glabels.xml:1177(para)
-msgid "This control selects the default fill color."
-msgstr "Définit la couleur de remplissage par défaut."
-
-#: C/glabels.xml:1191(title)
-msgid "Document Merge Tutorial"
-msgstr "Guide du publipostage"
-
-#: C/glabels.xml:1193(para)
-msgid ""
-"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that "
-"allows a unique label or card to be printed for each record in an external "
-"data source. It is however, the most mis-understood feature of "
-"<application>gLabels</application>. The following examples will step through "
-"a couple of common tasks using the document merge feature."
-msgstr ""
-"La fusion de documents (aussi appelée « Publipostage ») est une fonction "
-"puissante permettant d'imprimer une étiquette ou carte pour chaque "
-"enregistrement d'une source extérieure. Elle est cependant la fonction la "
-"plus méconnue de <application>gLabels</application>. Les exemples suivants "
-"vont détailler quelques tâches usuelles utilisant la fonction de "
-"publipostage."
-
-#: C/glabels.xml:1201(title)
-msgid "Example 1: Name Tags Using a CSV File"
-msgstr ""
-"Exemple 1 : création de badges en utilisant un fichier CSV"
-
-#: C/glabels.xml:1203(para)
+#: C/merge-ex1.page:27(p)
 msgid ""
 "In this example we are organizing an orientation party for the new crew "
 "members of our ship. We have a list of freshman crew members that we created "
-"in <application>gnumeric</application> and exported as the following CSV "
-"file. We could have created this file by using a text editor, but heck it is "
-"the 23rd century."
+"in <app>gnumeric</app> and exported as the following CSV file. We could have "
+"created this file by using a text editor, but heck it is the 23rd century."
 msgstr ""
-"Dans cet exemple, nous organisons une session d'orientation pour les "
-"nouveaux membres d'équipage de notre navire. Nous disposons d'une liste de "
-"nouvelles recrues créée avec <application>gnumeric</application> et exportée "
-"sous la forme du fichier CSV ci-après. Nous aurions pu créer ce fichier avec "
-"n'importe quel éditeur de texte, mais bon, nous sommes au 23ème siècle."
+"Dans cet exemple, disons que nous organisons une session de formation pour "
+"les nouveaux membres d'équipage d'un navire. Nous disposons de la liste des "
+"nouvelles recrues créée avec <app>gnumeric</app> et exportée sous forme d'un "
+"fichier CSV. Nous aurions pu créer ce fichier avec n'importe quel éditeur de "
+"texte, mais diable ! nous sommes au XXIIIe siècle."
 
-#: C/glabels.xml:1209(programlisting)
+#: C/merge-ex1.page:33(code)
 #, no-wrap
 msgid ""
 "\n"
@@ -1814,1018 +1171,2073 @@ msgstr ""
 "\"Montgomery Scott\",Ingénierie,SE-197-54T\n"
 "      "
 
-#: C/glabels.xml:1217(para)
+#: C/merge-ex1.page:41(p)
 msgid ""
-"In <application>gLabels</application> we have created a new "
-"<application>gLabels</application> document using the Avery 5395 \"Name "
-"Badge Labels\" template. Next we use the <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Merge Properties</guimenuitem></menuchoice> menu item "
-"to display the <guilabel>merge properties</guilabel> dialog. We use this "
-"dialog to select the source type (in our case CSV) and the merge source "
+"In <app>gLabels</app> we have created a new <app>glabels</app> document "
+"using the Avery 5395 \"Name Badge Labels\" template. Next we use the "
+"<guiseq><gui>Objects</gui><gui>Merge Properties</gui></guiseq> menu item to "
+"display the <gui>merge properties</gui> dialog. We use this dialog to select "
+"the source type (in our case CSV with keys on line 1) and the merge source "
 "(filename) as shown."
 msgstr ""
-"Dans <application>gLabels</application>, nous avons créé un nouveau document "
-"<application>gLabels</application> utilisant le patron AVERY 5395 « Étiquettes "
-"pour badges ». Ensuite, nous ouvrons la boîte de dialogue "
-"<guilabel>Propriétés de fusion</guilabel> du menu "
-"<menuchoice><guimenu>Objets</guimenu></menuchoice> pour afficher les options "
-"de fusion. Ceci nous permet de choisir le type de source (dans "
-"notre cas, « Texte séparé par des virgules ») et son emplacement (nom de "
-"fichier) comme sur la figure suivante :"
-
-#: C/glabels.xml:1227(title) C/glabels.xml:1344(title)
-#: C/glabels.xml:1460(title)
-msgid "Merge properties dialog"
-msgstr "Boîte de dialogue Propriétés de fusion"
-
-#. ==== End of Figure ====
-#: C/glabels.xml:1238(para)
-msgid ""
-"Before applying the merge source, we uncheck the first record since it is "
-"only column headers from our original <application>gnumeric</application> "
-"spreadsheet and would simply waste our first label. We could also unselect "
-"any other records that we didn't want to print a label for."
-msgstr ""
-"Avant d'effectuer la fusion, nous allons décocher la première ligne, car "
-"c'est l'en-tête de notre document <application>gnumeric</application> "
-"original, et l'imprimer ne ferait que gaspiller notre première étiquette. On "
-"pourrait de la même façon désélectionner d'autres enregistrements non "
-"désirés."
-
-#: C/glabels.xml:1243(para) C/glabels.xml:1361(para)
-msgid ""
-"We can also view each record in more detail by clicking on the appropriate "
-"expander (the little triangles) as shown. Once we are satisfied with the "
-"selections in this dialog we click <guibutton>OK</guibutton> to accept the "
-"changes."
-msgstr ""
-"On peut aussi agrandir chaque enregistrement en cliquant sur le petit "
-"triangle correspondant (voir figure). Une fois satisfait des choix effectués "
-"dans cette boîte de dialogue, cliquez sur <guibutton>Valider</guibutton> pour "
-"valider les modifications."
-
-#: C/glabels.xml:1248(para) C/glabels.xml:1366(para)
-msgid ""
-"Now we start adding objects to our <application>gLabels</application> "
-"document as shown."
-msgstr ""
-"Nous allons maintenant ajouter des objets à notre document "
-"<application>gLabels</application> comme ceci :"
-
-#: C/glabels.xml:1252(title) C/glabels.xml:1370(title)
-#: C/glabels.xml:1488(title)
-msgid "Adding objects"
-msgstr "Ajout d'objets"
+"Dans <app>gLabels</app>, nous créons un nouveau document sur le modèle Avery "
+"5395 « Étiquettes pour badges ». Puis, nous ouvrons la boîte de dialogue "
+"<gui>Propriétés de fusion</gui> en cliquant sur l'élément de menu "
+"<guiseq><gui>Objets</gui><gui>Propriétés de fusion</gui></guiseq> pour "
+"afficher les options de fusion. Ceci nous permet de choisir le type de "
+"source (dans notre cas CVS avec en-têtes en première ligne) et son "
+"emplacement (nom de fichier) comme illustré sur la figure ci-après."
 
 #. ==== End of Figure ====
-#: C/glabels.xml:1263(para)
+#: C/merge-ex1.page:68(p)
 msgid ""
 "In this example we have added three text objects and a barcode object. The "
 "first text object contains only simple literal text (\"Hello, my name is\"). "
-"The second text object contains a single merge field (\"${1}\") "
+"The second text object contains a single merge field (\"${Name}\") "
 "corresponding to the first field of a record (first column of a line) which "
 "contains the new crew member's full name. The third text field contains both "
-"literal text (\"Department: \") followed by a single merge field (\"${2}\") "
-"corresponding to the second field or the crew member's department. The "
-"barcode object is configured to use field (or key) \"3\" which contains our "
-"crew member's starfleet serial number."
-msgstr ""
-"Dans cet exemple, nous avons ajouté trois objets Texte, et un objet Code-"
-"barre. Le premier objet Texte ne contient que du texte (« Bonjour, je "
-"m'appelle ». Le second objet Texte contient un seul champ de fusion (« ${1} ») "
-"correspondant au premier champ d'un enregistrement (première colonne d'une "
-"ligne) donnant ici le nom complet du membre d'équipage. Le troisième contient "
-"du texte (« Département ») suivi d'un seul champ de fusion (« ${2} ») "
-"correspondant au département d'appartenance du membre d'équipage. L'objet "
-"Code-barre est configuré pour recevoir le champ (ou clé) « 3 » contenant le "
-"numéro matricule du membre d'équipage."
-
-#: C/glabels.xml:1273(para)
-msgid ""
-"Now we can print our name tags by selecting the <menuchoice><guimenu>File</"
-"guimenu><guimenuitem>Print</guimenuitem></menuchoice> menu item. This will "
-"display print dialog as shown below."
-msgstr ""
-"On peut maintenant lancer l'impression de nos badges en choisissant "
-"<menuchoice><guimenu>Fichier</guimenu><guimenuitem>Imprimer</guimenuitem></"
-"menuchoice> à partir du menu. La boîte de dialogue ci-dessous apparaît."
-
-#: C/glabels.xml:1280(title)
+"literal text (\"Department: \") followed by a single merge field "
+"(\"${Department}\") corresponding to the second field or the crew member's "
+"department. The barcode object is configured to use field (or key) \"SN\" "
+"which contains our crew member's starfleet serial number."
+msgstr ""
+"Dans cet exemple, nous plaçons trois objets texte et un objet code-barre. Le "
+"premier objet texte contient une simple phrase (« Bonjour, je m'appelle »). "
+"Le second objet texte contient un seul champ de fusion (« ${Nom} ») "
+"correspondant au premier champ de l'enregistrement (première colonne d'une "
+"ligne) contenant ici le nom complet du membre d'équipage. Le troisième "
+"contient le texte (« Département : ») suivi du champ de fusion "
+"(« ${Département} ») isolé correspondant au département auquel appartient le "
+"membre d'équipage. L'objet code-barre est configuré pour recevoir le champ "
+"(ou clé) « Matricule » contenant le numéro de matricule du membre d'équipage."
+
+#: C/merge-ex1.page:78(p)
+msgid ""
+"Now we can print our name tags by selecting the <guiseq><gui>File</"
+"gui><gui>Print</gui></guiseq> menu item. This will display print dialog as "
+"shown below."
+msgstr ""
+"Maintenant nous pouvons lancer l'impression des badges en cliquant l'élément "
+"de menu <guiseq><gui>Fichier</gui><gui>Imprimer</gui></guiseq>. La boîte de "
+"dialogue « Imprimer » telle qu'affichée ci-dessous apparaît."
+
+#: C/merge-ex1.page:85(p)
 msgid "Printing name tags"
 msgstr "Impression de badges nominatifs"
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1291(para) C/glabels.xml:1406(para) C/glabels.xml:1520(para)
-msgid ""
-"Just to make sure our labels are going to look okay, we select the "
-"<guilabel>Print outlines</guilabel> option and click <guibutton>Print "
-"Preview</guibutton>. This will display a print preview dialog as shown below."
-msgstr ""
-"Afin de s'assurer que nos badges ressembleront à ce que nous voulons, nous "
-"activons l'option <guilabel>Imprimer des bordures</guilabel> et nous cliquons "
-"sur <guibutton>Aperçu avant impression</guibutton>. Une fenêtre d'aperçu "
-"apparaît, comme ci-dessous."
-
-#: C/glabels.xml:1298(title)
+#: C/merge-ex1.page:96(p)
 msgid "Name tags preview"
 msgstr "Aperçu des badges nominatifs"
 
 #. ==== End of Figure ====
-#: C/glabels.xml:1309(para)
+#: C/merge-ex1.page:100(p)
 msgid ""
 "Everything looks good, so we can now load up our printer with the "
 "appropriate label stock, print our name tags and start beaming our guests "
 "aboard."
 msgstr ""
-"Tout semble parfait, nous pouvons maintenant charger le "
-"stock d'étiquettes adéquates dans l'imprimante, imprimer nos badges et commencer à faire "
-"monter nos invités à bord."
+"Tout paraît correct, nous pouvons maintenant charger la ramette d'étiquettes "
+"adéquates dans l'imprimante, imprimer nos badges et commencer à accueillir "
+"d'un large sourire nos invités à bord."
 
-#: C/glabels.xml:1316(title)
-msgid "Example 2: Address Labels Using a CSV File"
-msgstr "Exemple 2 : étiquettes adresses à partir d'un fichier CSV"
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:340(None)
+msgid ""
+"@@image: 'figures/glabels-template-rect-label.png'; "
+"md5=9c7ae1c1a888e1c9eefd19655d093971"
+msgstr ""
 
-#: C/glabels.xml:1318(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:392(None)
 msgid ""
-"In this example we are going to throw a party and need to print mailing "
-"address labels for our invitations. We have a list of our closest friends "
-"that we created in <application>gnumeric</application> and exported as the "
-"following CSV file. It should be noted that not everyone has a middle "
-"initial or a two line address."
-msgstr ""
-"Dans cet exemple, nous allons organiser une soirée et nous avons besoin "
-"d'imprimer des étiquettes pour lancer nos invitations. Nous avons une liste "
-"de nos amis les plus proches, créée à partir de <application>gnumeric</"
-"application> et exportée dans le fichier CSV ci-après. Il faut tenir compte "
-"du fait que tout le monde n'a pas une initiale centrale, ni une adresse à "
-"deux lignes."
-
-#: C/glabels.xml:1324(programlisting)
-#, no-wrap
+"@@image: 'figures/glabels-template-ellipse-label.png'; "
+"md5=ba612c86b5fb8fcd2b5384ecc1c331d2"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:439(None)
 msgid ""
-"\n"
-"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n"
-",,,,,,,\n"
-"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n"
-"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n"
-"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n"
-"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n"
-"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n"
-"      "
+"@@image: 'figures/glabels-template-circle-label.png'; "
+"md5=841e36a1f92aeed01e8fbaacc67758f1"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:500(None)
+msgid ""
+"@@image: 'figures/glabels-template-cd-label.png'; "
+"md5=c7952ac1b26ecbfa53facfbbf6486841"
 msgstr ""
-"\n"
-"NOM,PRÉNOM,INITIALE,ADRESSE1,ADRESSE2,VILLE,ÉTAT,CODE POSTAL\n"
-",,,,,,,\n"
-"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n"
-"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n"
-"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n"
-"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n"
-"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n"
-"      "
 
-#: C/glabels.xml:1334(para)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:762(None)
 msgid ""
-"In <application>gLabels</application> we have created a new "
-"<application>gLabels</application> document using the Avery 5512 \"Address "
-"Labels\" template. Next we use the <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Merge Properties</guimenuitem></menuchoice> menu item "
-"to display the <guilabel>merge properties</guilabel> dialog. We use this "
-"dialog to select the source type (in our case CSV) and the merge source "
-"(filename) as shown."
+"@@image: 'figures/glabels-template-layout.png'; "
+"md5=fe1c9652d5448b2e0ece086777d3a287"
 msgstr ""
-"Dans <application>gLabels</application>, nous avons créé un nouveau document "
-"<application>gLabels</application> utilisant le patron « Étiquettes "
-"adresses » AVERY 5512. Puis, à partir du menu <menuchoice><guimenu>Objets</"
-"guimenu><guimenuitem>Propriétés de fusion</guimenuitem></menuchoice> pour "
-"afficher la boîte <guilabel>Propriétés de fusion</guilabel>, nous "
-"sélectionnons le type de source (ici CSV), ainsi que son emplacement (nom de "
-"fichier) comme sur la figure ci-dessous."
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1355(para)
-msgid ""
-"Before applying the merge source, we uncheck the first record since it is "
-"only column headers from our original <application>gnumeric</application> "
-"spreadsheet and would simply waste our first label. We also unselect the "
-"second record which is empty (an artifact of our original spreadsheet). We "
-"could also unselect any other records that we didn't want to print a label "
-"for."
-msgstr ""
-"Avant d'effectuer la fusion, nous allons décocher la première ligne, car "
-"c'est l'en-tête de notre document <application>gnumeric</application> "
-"original, et l'imprimer ne ferait que gaspiller notre première étiquette."
-"Nous désélectionnons aussi le deuxième enregistrement qui est vide (un "
-"artifice de notre fichier original). On pourrait de la même façon "
-"désélectionner d'autres enregistrements non désirés."
+#: C/mancreate.page:10(desc)
+msgid "Create your templates manually."
+msgstr "Comment créer vos propres modèles à la main."
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1381(para)
+#: C/mancreate.page:26(title)
+msgid "Manually creating new templates"
+msgstr "Création manuelle de nouveaux modèles"
+
+#. ******************
+#: C/mancreate.page:33(p)
 msgid ""
-"In this example we have a single text object. This text object contains all "
-"of our merge fields organized on multiple lines as a mailing address. Notice "
-"that fields ${4} and ${5} (corresponding to ADDR1 and ADDR2) are each "
-"located with no other text on their own lines. When <application>gLabels</"
-"application> encounters a field as the only text on a line, it will not "
-"expand the line if the field is empty."
-msgstr ""
-"Dans cet exemple, nous avons un seul objet Texte. Celui-ci contient tous nos "
-"champs fusionnés et présents sous forme de plusieurs lignes représentant des "
-"adresses postales. Veuillez noter que les champs ${4} et ${5} "
-"(correspondants à ADRESSE1 et ADRESSE2) sont respectivement listés sans "
-"aucune autre mention sur leur ligne. Lorsque <application>gLabels</"
-"application> rencontre ce type de champ, il ne génère pas la ligne si "
-"celle-ci est vide."
-
-#: C/glabels.xml:1388(para)
-msgid ""
-"Now we can print our address labels by selecting the "
-"<menuchoice><guimenu>File</guimenu><guimenuitem>Print</guimenuitem></"
-"menuchoice> menu item. This will display print dialog as shown below."
-msgstr ""
-"Nous pouvons maintenant imprimer nos étiquettes d'adresses avec le menu "
-"<menuchoice><guimenu>Fichier</guimenu><guimenuitem>Imprimer</guimenuitem></"
-"menuchoice>. Cette commande ouvre la boîte de dialogue ci-dessous."
-
-#: C/glabels.xml:1395(title) C/glabels.xml:1509(title)
-msgid "Printing address labels"
-msgstr "Impression des étiquettes d'adresses"
+"This page is a reference guide to manually creating <app>gLabels</app> "
+"templates. <app>gLabels</app> templates are defined in simple XML files as "
+"described in the DTD: <link href=\"http://glabels.org/xmlns/2.3/glabels-2.3."
+"dtd.txt\">glabels-2.3.dtd</link> (this DTD also describes other XML files "
+"used by <app>gLabels</app>)."
+msgstr ""
+"Cette page est un guide de référence pour créer manuellement des modèles "
+"<app>gLabels</app>. Les modèles <app>gLabels</app> sont définis par de "
+"simples fichiers XML comme décrit dans la DTD (Définition de Type de "
+"Document) : <link href=\"http://glabels.org/xmlns/2.3/glabels-2.3.dtd.txt"
+"\">glabels-2.3.dtd</link> (cette DTD décrit aussi d'autres formats XML "
+"utilisés par <app>gLabels</app>)."
 
-#: C/glabels.xml:1413(title) C/glabels.xml:1527(title)
-msgid "Address labels preview"
-msgstr "Aperçu des étiquettes d'adresses"
+#: C/mancreate.page:38(p)
+msgid ""
+"Manually created template files should be placed in the <file>${HOME}/."
+"glabels</file> and be named with a <file>.template</file> extension."
+msgstr ""
+"Les fichiers de modèle créés manuellement doivent être placés dans <file>"
+"${HOME}/.glabels</file> et posséder une extension <file>.template</file>."
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1424(para) C/glabels.xml:1538(para)
+#: C/mancreate.page:42(p)
 msgid ""
-"Everything looks good, so we can now load up our printer with the "
-"appropriate label stock, print our address labels and start mailing our "
-"party invitations."
+"<app>gLabels</app> searches for templates in several other locations as "
+"defined here:"
 msgstr ""
-"Tout semble parfait, nous pouvons maintenant charger le stock d'étiquettes "
-"adéquates dans l'imprimante, imprimer les adresses et envoyer les "
-"invitations pour notre soirée."
+"<app>gLabels</app> recherche les modèles dans plusieurs autres emplacements "
+"tels que définis ici :"
 
-#: C/glabels.xml:1431(title)
+#: C/mancreate.page:45(p)
+msgid "Location"
+msgstr "Emplacement"
+
+#: C/mancreate.page:46(p) C/mancreate.page:173(p) C/mancreate.page:237(p)
+#: C/mancreate.page:301(p) C/mancreate.page:364(p) C/mancreate.page:415(p)
+#: C/mancreate.page:462(p) C/mancreate.page:535(p) C/mancreate.page:562(p)
+#: C/mancreate.page:600(p) C/mancreate.page:634(p) C/mancreate.page:676(p)
+#: C/mancreate.page:726(p)
+msgid "Description"
+msgstr "Description"
+
+#: C/mancreate.page:53(file)
+msgid "${prefix}/share/libglabels-3.0/templates"
+msgstr "${prefix}/share/libglabels-3.0/templates"
+
+#: C/mancreate.page:54(p)
+msgid "Predefined templates distributed with <app>gLabels</app>."
+msgstr "Modèles prédéfinis distribués avec <app>gLabels</app>."
+
+#: C/mancreate.page:55(p)
 msgid ""
-"Example 3: Address Labels Using the <application>Evolution</application> "
-"Addressbook"
+"<file>${prefix}</file> is usually <file>/usr</file> or <file>/usr/local</"
+"file>, depending on where <app>gLabels</app> was installed."
 msgstr ""
-"Exemple 3 : étiquettes adresses à partir du carnet d'adresses d'"
-"<application>Evolution</application> "
+"<file>${prefix}</file> est habituellement <file>/usr</file> ou <file>/usr/"
+"local</file> en fonction de l'endroit où a été installé <app>gLabels</app>."
 
-#: C/glabels.xml:1433(para)
+#: C/mancreate.page:59(file)
+msgid "${XDG_CONFIG_HOME}/libglabels/templates"
+msgstr "${XDG_CONFIG_HOME}/libglabels/templates"
+
+#: C/mancreate.page:60(p)
 msgid ""
-"Our last party was a great success, and now we need to print mailing address "
-"labels for the invitations to a new one. To simplify this, we can use the "
-"<application>Evolution</application> addressbook, because the address data "
-"of all our friends is stored there."
-msgstr ""
-"Notre précédente soirée fut un grand succès, et nous voulons maintenant "
-"imprimer d'autres adresses pour en organiser une autre. Pour simplifier "
-"l'opération, nous allons utiliser le carnet d'adresses d'"
-"<application>Evolution</application>, car les coordonnées de tous nos amis y "
-"figurent."
-
-#: C/glabels.xml:1439(para)
-msgid ""
-"Depending on how your copy of <application>gLabels</application> was "
-"packaged, this option could be unavailable. Support for the "
-"<application>Evolution</application> addressbook will only be available if "
-"the <application>evolution-data-server</application> and its development "
-"files were present when <application>gLabels</application> was built. Please "
-"keep this in mind if you build <application>gLabels</application> directly "
-"from source."
-msgstr ""
-"Selon la distribution que vous utilisez, votre copie de "
-"<application>gLabels</application> peut ne pas inclure cette option. "
-"L'utilisation du carnet d'adresses d'<application>Evolution</application> "
-"n'est disponible que si le composant <application>evolution-data-server</"
-"application> et ses fichiers de développement étaient présents lors de la "
-"compilation de <application>gLabels</application>. Veuillez garder cela à "
-"l'esprit si vous compilez <application>gLabels</application> directement "
-"à partir des sources du programme."
-
-#: C/glabels.xml:1445(para)
-msgid ""
-"If the <application>gLabels</application> package from your distribution "
-"lacks this support, you may wish to contact the package maintainer or file a "
-"bug against the package to request it."
-msgstr ""
-"Si le paquet <application>gLabels</application> de votre distribution ne "
-"comporte pas cette option, vous pouvez essayer de contacter le responsable du "
-"paquet ou envoyer un rapport d'anomalie pour demander l'ajout de cette fonctionnalité."
-
-#: C/glabels.xml:1450(para)
-msgid ""
-"In <application>glabels</application> we have created a new "
-"<application>gLabels</application> document using the Avery 5512 \"Address "
-"Labels\" template. Next we use the <menuchoice><guimenu>Objects</"
-"guimenu><guimenuitem>Merge Properties</guimenuitem></menuchoice> menu item "
-"to display the <guilabel>Merge properties</guilabel> dialog. We use this "
-"dialog to select the source type (in our case <guilabel>Data from default "
-"Evolution addressbook</guilabel>) as shown."
-msgstr ""
-"Dans <application>gLabels</application>, nous avons créé un nouveau document "
-"avec le patron « Étiquettes adresses » AVERY 5512. Puis, à partir du menu "
-"<menuchoice><guimenu>Objets</guimenu><guimenuitem>Propriétés de fusion</"
-"guimenuitem></menuchoice> pour afficher la boîte de dialogue "
-"<guilabel>Propriétés de fusion</guilabel>, nous sélectionnons le type de "
-"source (ici <guilabel>Données du carnet d'adresses Evolution par défaut</"
-"guilabel>) comme ci-dessous."
+"User defined templates created with the <app>gLabels</app><gui>Template "
+"Designer</gui>. <em>Do not put manually created templates in this directory."
+"</em>"
+msgstr ""
+"Modèles définis par l'utilisateur, créés avec le <gui>créateur de modèles</"
+"gui> de <app>gLabels</app>. <em>Ne pas placer de modèles créés manuellement "
+"dans ce répertoire.</em>"
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1471(para)
-msgid ""
-"Once we have chosen <guilabel>Data from default Evolution addressbook </"
-"guilabel> as our merge source, we will get a full list of its content. "
-"Initially, all entries are checked. Assuming we were planning a really big "
-"party, we could leave this selection untouched (but let's keep our budget in "
-"mind). We will now select or unselect certain entries by clicking on the "
-"appropriate checkboxes, or we could use the <guibutton>Select all</"
-"guibutton> and <guibutton>Unselect all </guibutton> buttons to activate or "
-"deactivate all entries in the address book."
-msgstr ""
-"Après avoir choisi <guilabel>Données du carnet d'adresses Evolution par défaut"
-"</guilabel> comme source à fusionner, nous obtenons une liste complète de "
-"son contenu. Par défaut, toutes les adresses sont cochées. Nous pourrions "
-"organiser une soirée géante en laissant cette sélection telle quelle. Mais "
-"il vaut mieux tenir compte de notre budget. Nous allons donc choisir en "
-"décochant certaines adresses par un clic dans les cases correspondantes ou "
-"en utilisant le bouton <guibutton>Sélectionner tout</guibutton> ou "
-"<guibutton>Désélectionner tout</guibutton> pour activer ou désactiver "
-"toutes les adresses du carnet."
-
-#: C/glabels.xml:1479(para)
+#: C/mancreate.page:62(p)
 msgid ""
-"We can also view each entry in more detail by clicking on the appropriate "
-"expander (the little triangles) as shown. Once we are satisfied with the "
-"selections in this dialog, we will click the <guibutton>OK</guibutton> "
-"button to accept the changes."
+"If <file>${XDG_CONFIG_HOME}</file> is not defined, it defaults to <file>"
+"${HOME}/.config</file>."
 msgstr ""
-"On peut aussi agrandir chaque enregistrement en cliquant sur le petit "
-"triangle correspondant (voir figure). Une fois satisfait des choix effectués "
-"dans cette boîte de dialogue, cliquez sur <guibutton>Valider</guibutton> pour "
-"valider les modifications."
+"Si la variable <file>${XDG_CONFIG_HOME}</file> n'est pas définie, sa valeur "
+"par défaut est <file>${HOME}/.config</file>."
+
+#: C/mancreate.page:66(file)
+msgid "${HOME}/.glabels"
+msgstr "${HOME}/.glabels"
 
-#: C/glabels.xml:1484(para)
-msgid "Now we start adding objects to our glabels document as shown."
+#: C/mancreate.page:67(p)
+msgid ""
+"User defined templates that have been created manually should be placed in "
+"this directory. Older versions of the <app>gLabels</app><gui>Template "
+"Designer</gui> (prior to 3.0) would also put templates in this directory."
 msgstr ""
-"Nous allons maintenant ajouter des objets à notre document gLabels comme ci-"
-"dessous."
+"Les modèles définis par l'utilisateur et qui ont été créés manuellement, "
+"doivent être placés dans ce répertoire. Les versions plus anciennes du "
+"<gui>créateur de modèles</gui> de <app>gLabels</app> (antérieures à 3.0) "
+"placent également leurs modèles dans ce répertoire."
 
-#. ==== End of Figure ====
-#: C/glabels.xml:1499(para)
+#: C/mancreate.page:75(p)
 msgid ""
-"In this example we have a single text object again. This text object "
-"contains all of our merge fields organized on multiple lines as a mailing "
-"address."
+"Completed template files can be sent to the <app>gLabels</app> template "
+"<link href=\"mailto:glabels-templates@lists.sourceforge.net\">mailing list</"
+"link> for possible inclusion in future versions of <app>gLabels</app>."
 msgstr ""
-"Dans cet exemple, nous avons à nouveau un seul objet texte contenant tous "
-"nos champs fusionnés et disposés sur plusieurs lignes sous forme d'adresses "
-"postales."
-
-#: C/glabels.xml:1502(para)
-msgid ""
-"Now we can print our address labels by selecting the "
-"<menuchoice><guimenu>File</guimenu><guimenuitem>Print</guimenuitem></"
-"menuchoice> menu item. This will display the print dialog as shown below."
-msgstr ""
-"Nous pouvons maintenant imprimer les adresses à partir du menu "
-"<menuchoice><guimenu>Fichier</guimenu><guimenuitem>Imprimer</guimenuitem> et "
-"de la boîte de dialogue ci-dessous."
-
-#: C/glabels.xml:1551(title)
-msgid "Manually Creating New Templates"
-msgstr "Création manuelle de nouveaux patrons"
-
-#: C/glabels.xml:1553(para)
-msgid ""
-"Predefined templates are defined by XML files located in <filename>${prefix}/"
-"share/glabels/</filename>, where <filename>${prefix}</filename> is usually "
-"something like <filename>/usr/local</filename> or <filename>/usr</filename> "
-"depending on the configuration option <filename>prefix</filename>. "
-"<application>gLabels</application> will use all files of the form "
-"<filename>*-templates.xml</filename> or <filename>*.template</filename>, "
-"that it finds in <filename>${prefix}/share/glabels/</filename> and <filename>"
-"${HOME}/.glabels/</filename>. Additional templates can be added by creating "
-"additional <filename>*.template</filename> files in either of these "
-"directories."
-msgstr ""
-"Des modèles de patrons sont présents sous la forme de fichiers XML dans "
-"<filename>${préfixe}/share/glabels/</filename>, où <filename>${préfixe}</"
-"filename> correspond généralement à <filename>/usr/local</filename> ou à "
-"<filename>/usr</filename> selon l'option de configuration de "
-"<filename>prefix</filename>. <application>gLabels</application> "
-"utilise tout fichier de la forme <filename>*-templates.xml</filename> ou "
-"<filename>*.template</filename> qu'il trouve dans <filename>${préfixe}/"
-"share/glabels/</filename> et <filename>${HOME}/.glabels/</filename>. "
-"D'autres patrons peuvent être ajoutés en créant des fichiers <filename>*."
-"template</filename> dans l'un ou l'autre de ces répertoires."
-
-#: C/glabels.xml:1566(para)
-msgid ""
-"The format for these files is defined in the DTD: <ulink url=\"http://"
-"glabels.sourceforge.net/doc/glabels-2.0.dtd.txt\" type=\"http\">glabels-2.2."
-"dtd</ulink>. (This DTD also describes other XML formats used by "
-"<application>gLabels</application>.)"
-msgstr ""
-"Le format de ces fichiers est décrit dans le document DTD suivant : <ulink "
-"url=\"http://glabels.sourceforge.net/doc/glabels-2.0.dtd.txt\" type=\"http"
-"\">glabels-2.2.dtd</ulink> (ce document DTD décrit aussi d'autres "
-"formats XML utilisés par <application>gLabels</application>)."
-
-#: C/glabels.xml:1572(title)
+"Des fichiers modèles finalisés peuvent être envoyés à la <link href=\"mailto:"
+"glabels-templates@lists.sourceforge.net\">liste de diffusion</link> sur les "
+"modèles de <app>gLabels</app> pour qu'ils soient éventuellement inclus dans "
+"les futures versions de <app>gLabels</app>."
+
+#: C/mancreate.page:89(title)
 msgid "Assumptions/caveats"
-msgstr "Règles générales"
+msgstr "Hypothèses/précautions"
 
-#: C/glabels.xml:1575(para)
+#: C/mancreate.page:92(p)
 msgid ""
 "A sheet contains only one size of label or card (if a sheet contains more "
 "than one size of item, it can be split into multiple templates for multiple "
 "pass printing)"
 msgstr ""
 "Une page ne contient qu'un seul format d'étiquette ou de carte (s'il y en a "
-"plusieurs, il faut la diviser en plusieurs patrons et faire autant de passes "
+"plusieurs, il faut la diviser en plusieurs modèles et faire autant de passes "
 "d'impression)."
 
-#: C/glabels.xml:1580(para)
+#: C/mancreate.page:97(p)
+msgid ""
+"Distances can be expressed in units of <code translate=\"no\">pt</code>, "
+"<code translate=\"no\">in</code>, <code translate=\"no\">mm</code>, <code "
+"translate=\"no\">cm</code>, or <code translate=\"no\">pc</code>. For "
+"example: \"<code translate=\"no\">1.0in</code>\" or \"<code translate=\"no"
+"\">2.54cm</code>\". If no units are specified, computer points (<code "
+"translate=\"no\">pt</code>) will be assumed (1 <em>pt</em> = 1/72 <em>in</"
+"em> = 0.352778 <em>mm</em>)."
+msgstr ""
+"Les dimensions peuvent être exprimées en <code translate=\"no\">pt</code>, "
+"<code translate=\"no\">in</code>, <code translate=\"no\">mm</code>, <code "
+"translate=\"no\">cm</code> ou <code translate=\"no\">pc</code>. Par "
+"exemple : \"<code translate=\"no\">1.0in</code>\" ou \"<code translate=\"no"
+"\">2.54cm</code>\". Si aucune unité n'est indiquée, c'est le point (<code "
+"translate=\"no\">pt</code>) qui est utilisé par défaut : 1 <em>pt</"
+"em> = 1/72e<em> de pouce</em>= 0,352778<em> mm</em>."
+
+#: C/mancreate.page:118(title)
+msgid "Template Files"
+msgstr "Fichier modèle"
+
+#: C/mancreate.page:120(p)
 msgid ""
-"Distances can be expressed in units of <emphasis>pt</emphasis>, "
-"<emphasis>in</emphasis>, <emphasis>mm</emphasis>, <emphasis>cm</emphasis>, "
-"or <emphasis>pc</emphasis>. For example: \"<literal>1.0in</literal>\" or "
-"\"<literal>2.54cm</literal>\". If no units are specified, computer points "
-"(<emphasis>pt</emphasis>) will be assumed (1 <emphasis>pt</emphasis> = 1/72 "
-"<emphasis>in</emphasis> = 0.352778 <emphasis>mm</emphasis>)."
+"A template file contains a single <code translate=\"no\">Glabels-templates</"
+"code> top-level node."
 msgstr ""
-"Les mesures de distance peuvent être exprimées en <emphasis>pt</emphasis>, "
-"<emphasis>in</emphasis>, <emphasis>mm</emphasis>, <emphasis>cm</emphasis> "
-"ou <emphasis>pc</emphasis>. Par exemple : « <literal>1.0in</literal> » ou "
-"« <literal>2.54cm</literal> ». Si aucune unité n'est indiquée, c'est le "
-"point (<emphasis>pt</emphasis>) qui est utilisé par défaut : 1 <emphasis>pt</"
-"emphasis> = 1/72ème <emphasis>de pouce</emphasis> = 0,352778 <emphasis>mm</"
-"emphasis>."
+"Un fichier modèle contient un seul nœud de haut-niveau <code translate=\"no"
+"\">Glabels-templates</code>."
 
-#: C/glabels.xml:1593(title)
-msgid "Template Files"
-msgstr "Fichiers patron"
-
-#: C/glabels.xml:1595(programlisting)
+#: C/mancreate.page:123(code)
 #, no-wrap
 msgid ""
 "\n"
 "&lt;?xml version=\"1.0\"?&gt;\n"
 "&lt;Glabels-templates&gt;\n"
 "\n"
-"   <replaceable>...templates...</replaceable>\n"
+"   <var its:translate=\"yes\">...templates...</var>\n"
 "\n"
-"&lt;/Glabels-templates&gt;\n"
-"      "
+"&lt;/Glabels-templates&gt;"
 msgstr ""
 "\n"
 "&lt;?xml version=\"1.0\"?&gt;\n"
 "&lt;Glabels-templates&gt;\n"
 "\n"
-"   <replaceable>...patrons...</replaceable>\n"
+"   <var its:translate=\"yes\">...modèles...</var>\n"
 "\n"
 "&lt;/Glabels-templates&gt;\n"
 "      "
 
-#: C/glabels.xml:1607(title)
+#: C/mancreate.page:132(title)
 msgid "Example Template"
-msgstr "Exemple de patron"
+msgstr "Exemple de modèle d'étiquette"
 
-#: C/glabels.xml:1608(programlisting)
+#: C/mancreate.page:133(desc)
+msgid ""
+"Example <app>gLabels</app> template file containing a single <code translate="
+"\"no\">Template</code> node."
+msgstr ""
+"Exemple de fichier modèle de <app>gLabels</app> contenant un seul nœud <code "
+"translate=\"no\">Template</code>."
+
+#: C/mancreate.page:135(code)
 #, no-wrap
 msgid ""
 "\n"
+"&lt;?xml version=\"1.0\"?&gt;\n"
+"&lt;Glabels-templates&gt;\n"
+"\n"
 "  &lt;Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\"&gt;\n"
+"    &lt;Meta category=\"label\"/&gt;\n"
+"    &lt;Meta category=\"mail\"/&gt;\n"
+"    &lt;Meta product_url=\"http://www.avery.com/avery/en_us/\"/&gt;\n"
 "    &lt;Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\"&gt;\n"
 "      &lt;Markup-margin size=\"5pt\"/&gt;\n"
 "      &lt;Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/&gt;\n"
 "    &lt;/Label-rectangle&gt;\n"
-"    &lt;Alias brand=\"Avery\" part=\"5160\"/&gt;\n"
-"    &lt;Alias brand=\"Avery\" part=\"6233\"/&gt;\n"
 "  &lt;/Template&gt;\n"
-"      "
+"\n"
+"&lt;/Glabels-templates&gt;"
 msgstr ""
 "\n"
-"  &lt;Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Étiquettes de publipostage\"&gt;\n"
+"&lt;?xml version=\"1.0\"?&gt;\n"
+"&lt;Glabels-templates&gt;\n"
+"\n"
+"  &lt;Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Étiquettes postales\"&gt;\n"
+"    &lt;Meta category=\"label\"/&gt;\n"
+"    &lt;Meta category=\"mail\"/&gt;\n"
+"    &lt;Meta product_url=\"http://www.avery.com/avery/en_us/\"/&gt;\n"
 "    &lt;Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\"&gt;\n"
 "      &lt;Markup-margin size=\"5pt\"/&gt;\n"
 "      &lt;Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/&gt;\n"
 "    &lt;/Label-rectangle&gt;\n"
-"    &lt;Alias brand=\"Avery\" part=\"5160\"/&gt;\n"
-"    &lt;Alias brand=\"Avery\" part=\"6233\"/&gt;\n"
 "  &lt;/Template&gt;\n"
-"      "
+"\n"
+"&lt;/Glabels-templates&gt;"
+
+#: C/mancreate.page:163(title)
+msgid "<span translate=\"no\">Template</span> Node"
+msgstr "Nœud <span translate=\"no\">Template</span>"
+
+#: C/mancreate.page:165(p)
+msgid ""
+"A <code translate=\"no\">Template</code> node describes a single stationery "
+"product. It must contain one instance of any type of Label node (<code "
+"translate=\"no\">Label-rectangle</code>, <code translate=\"no\">Label-round</"
+"code>, or <code translate=\"no\">Label-cd</code>)."
+msgstr ""
+"Un nœud <code translate=\"no\">Template</code> décrit les caractéristiques "
+"d'un seul produit. Il doit contenir une instance de l'un des types de nœud "
+"« Label-... » suivants : <code translate=\"no\">Label-rectangle</code>, <code "
+"translate=\"no\">Label-round</code> ou <code translate=\"no\">Label-cd</"
+"code>."
+
+#: C/mancreate.page:173(p) C/mancreate.page:301(p) C/mancreate.page:364(p)
+#: C/mancreate.page:415(p) C/mancreate.page:462(p) C/mancreate.page:535(p)
+#: C/mancreate.page:562(p) C/mancreate.page:600(p) C/mancreate.page:634(p)
+#: C/mancreate.page:676(p) C/mancreate.page:726(p)
+msgid "Property"
+msgstr "Propriétés"
+
+#: C/mancreate.page:179(code)
+#, no-wrap
+msgid "brand"
+msgstr "brand"
+
+#: C/mancreate.page:180(p)
+msgid "Brand or manufacturer of stationery product. E.g. \"Avery\""
+msgstr "Marque ou fabricant de la fourniture de bureau, par ex. « Avery »"
+
+#: C/mancreate.page:183(code)
+#, no-wrap
+msgid "part"
+msgstr "part"
+
+#: C/mancreate.page:184(p)
+msgid "Part number or name of stationery product. E.g. \"8160\""
+msgstr "Numéro de série ou nom de la fourniture de bureau, par ex. « 8160 »"
+
+#: C/mancreate.page:187(code) C/mancreate.page:541(code)
+#, no-wrap
+msgid "size"
+msgstr "size"
+
+#: C/mancreate.page:188(p)
+msgid ""
+"Size of sheet. E.g., \"<code translate=\"no\">US-Letter</code>\", \"<code "
+"translate=\"no\">A4</code>\", ..."
+msgstr ""
+"Format de page, par ex. « <code translate=\"no\">US-Letter</code> », « <code "
+"translate=\"no\">A4</code> », ..."
+
+#: C/mancreate.page:193(code)
+#, no-wrap
+msgid "description"
+msgstr "description"
+
+#: C/mancreate.page:194(p)
+msgid "Description of stationery product. E.g, \"Mailing Labels.\""
+msgstr ""
+"Description de la fourniture de bureau, par ex. « Étiquettes postales »."
+
+#: C/mancreate.page:197(code)
+#, no-wrap
+msgid "_description"
+msgstr "_description"
+
+#: C/mancreate.page:198(p)
+msgid ""
+"Translatable description of stationery product. E.g, \"Mailing Labels."
+"\" (Only useful for predefined templates)"
+msgstr ""
+"Description traduisible de la fourniture de bureau, par ex. « Étiquettes "
+"postales » (utile seulement pour les formats de modèles prédéfinis)."
+
+#: C/mancreate.page:202(code) C/mancreate.page:311(code)
+#: C/mancreate.page:374(code) C/mancreate.page:480(code)
+#, no-wrap
+msgid "width"
+msgstr "width"
+
+#: C/mancreate.page:203(p)
+msgid "Page width. Only valid if size=\"Other\""
+msgstr ""
+"Largeur de la page. Valide seulement si la propriété « size » contient "
+"« Other » (autre)."
+
+#: C/mancreate.page:206(code) C/mancreate.page:315(code)
+#: C/mancreate.page:378(code) C/mancreate.page:485(code)
+#, no-wrap
+msgid "height"
+msgstr "height"
+
+#: C/mancreate.page:207(p)
+msgid "Page height. Only valid if size=\"Other\""
+msgstr ""
+"Hauteur de la page. Valide seulement si la propriété « size » contient "
+"« Other » (autre)."
+
+#: C/mancreate.page:210(code)
+#, no-wrap
+msgid "equiv"
+msgstr "equiv"
+
+#: C/mancreate.page:211(p)
+msgid ""
+"Equivalent part number. If this property is present, the template is a clone "
+"of another template of the same brand. The template will inherit all "
+"properties, except brand and name from the other template. This equiv "
+"property must refer to a previously defined template - <app>gLabels</app> "
+"does not currently support forward references."
+msgstr ""
+"Numéro de la partie équivalente. Si cette propriété est présente, le modèle "
+"est un clone d'un autre modèle de la même marque. Le modèle hérite de toutes "
+"les propriétés sauf de la marque et du nom de l'autre modèle. Cette "
+"propriété equiv doit se rapporter à un modèle défini "
+"antérieurement - Actuellement, <app>gLabels</app> ne prend pas en charge les "
+"références anticipées."
+
+#: C/mancreate.page:229(title)
+msgid "<span translate=\"no\">Meta</span> Node"
+msgstr "Nœud <span translate=\"no\">Meta</span>"
+
+#: C/mancreate.page:231(p)
+msgid ""
+"A <code translate=\"no\">Meta</code> node contains some additional "
+"information about the template. A <code translate=\"no\">Template</code> "
+"node may contain zero or more <code translate=\"no\">Meta</code> nodes."
+msgstr ""
+"Un nœud <code translate=\"no\">Meta</code> contient des informations "
+"supplémentaires à propos du modèle. Un nœud <code translate=\"no\">Template</"
+"code> peut contenir zéro nœud <code translate=\"no\">Meta</code> ou plus."
+
+#: C/mancreate.page:237(p)
+msgid "Subnode"
+msgstr "Sous-nœuds"
+
+#: C/mancreate.page:243(code)
+#, no-wrap
+msgid "category"
+msgstr "category"
+
+#: C/mancreate.page:244(p)
+msgid ""
+"A category for the template. A template can belong to multiple categories by "
+"simply adding multiple <code translate=\"no\">Meta</code> nodes to the "
+"parent <code translate=\"no\">Template</code> node. Template categories are "
+"used by the <app>gLabels</app><gui>New Label Dialog</gui> to filter the "
+"results of template searches."
+msgstr ""
+"Une catégorie pour le modèle. Un modèle peut appartenir à plusieurs "
+"catégories en ajoutant simplement plusieurs nœuds <code translate=\"no"
+"\">Meta</code> au nœud <code translate=\"no\">Template</code> parent. Les "
+"catégories de modèle sont utilisés dans la <gui>boîte de dialogue Nouvelle "
+"étiquette</gui> de <app>gLabels</app> pour filtrer les résultats des "
+"recherches de modèle."
+
+#: C/mancreate.page:251(p)
+msgid ""
+"The value of this category must match a predefined category ID defined in "
+"the file <file>${prefix}/libglabels-3.0/templates/categories.xml</file>. "
+"Currently defined category IDs include:"
+msgstr ""
+"La valeur de cette catégorie doit correspondre à un identifiant de catégorie "
+"prédéfini dans le fichier <file>${prefix}/libglabels-3.0/templates/"
+"categories.xml</file>. Les identifiants de catégorie actuellement définis "
+"comprennent :"
+
+#: C/mancreate.page:255(code)
+#, no-wrap
+msgid "label"
+msgstr "label"
+
+#: C/mancreate.page:256(code)
+#, no-wrap
+msgid "round-label"
+msgstr "round-label"
+
+#: C/mancreate.page:257(code)
+#, no-wrap
+msgid "elliptical-label"
+msgstr "elliptical-label"
+
+#: C/mancreate.page:258(code)
+#, no-wrap
+msgid "square-label"
+msgstr "square-label"
+
+#: C/mancreate.page:259(code)
+#, no-wrap
+msgid "rectangle-label"
+msgstr "rectangle-label"
+
+#: C/mancreate.page:260(code)
+#, no-wrap
+msgid "card"
+msgstr "card"
+
+#: C/mancreate.page:261(code)
+#, no-wrap
+msgid "business-card"
+msgstr "business-card"
+
+#: C/mancreate.page:262(code)
+#, no-wrap
+msgid "media"
+msgstr "media"
+
+#: C/mancreate.page:263(code)
+#, no-wrap
+msgid "mail"
+msgstr "mail"
+
+#: C/mancreate.page:264(code)
+#, no-wrap
+msgid "foldable"
+msgstr "foldable"
+
+#: C/mancreate.page:265(code)
+#, no-wrap
+msgid "photo"
+msgstr "photo"
+
+#: C/mancreate.page:272(code)
+#, no-wrap
+msgid "product_url"
+msgstr "product_url"
+
+#: C/mancreate.page:273(p)
+msgid ""
+"A URL pointing to the vendor's webpage for the specific product, if "
+"available."
+msgstr ""
+"Un URL pointant sur la page Web du fournisseur du produit spécifié, si elle "
+"existe."
+
+#: C/mancreate.page:277(p)
+msgid ""
+"Suggestions for additional categories can be sent to the <app>gLabels</app> "
+"developer's <link href=\"mailto:glabels-devel@lists.sourceforge.net"
+"\">mailing list</link>."
+msgstr ""
+"Des suggestions pour des catégories supplémentaires peuvent être envoyées à "
+"la <link href=\"mailto:glabels-devel@lists.sourceforge.net\">liste de "
+"diffusion</link> des développeurs de <app>gLabels</app>."
+
+#: C/mancreate.page:280(p)
+msgid "Product URLs may be of limited use, because they may not be permanent."
+msgstr ""
+"Les URL des produits peuvent être d'un intérêt limité car il se peut qu'ils "
+"ne soient pas permanents."
+
+#: C/mancreate.page:293(title)
+msgid "<span translate=\"no\">Label-rectangle</span> Node"
+msgstr "Nœud <span translate=\"no\">Label-rectangle</span>"
+
+#: C/mancreate.page:295(p)
+msgid ""
+"A <code translate=\"no\">Label-rectangle</code> node describes the "
+"dimensions of a single label or business card that is rectangular in shape "
+"(may have rounded edges)."
+msgstr ""
+"Un nœud <code translate=\"no\">Label-rectangle</code> décrit les dimensions "
+"d'une étiquette ou d'une carte de visite de forme rectangulaire (elle peut "
+"aussi avoir des angles arrondis)."
+
+#: C/mancreate.page:307(code) C/mancreate.page:370(code)
+#: C/mancreate.page:421(code) C/mancreate.page:468(code)
+#, no-wrap
+msgid "id"
+msgstr "id"
+
+#: C/mancreate.page:308(p) C/mancreate.page:371(p) C/mancreate.page:422(p)
+#: C/mancreate.page:469(p)
+msgid "Reserved for future use. Should always be 0."
+msgstr "Réservé pour une utilisation future. Doit toujours être 0."
+
+#: C/mancreate.page:312(p)
+msgid "Width of label/card"
+msgstr "Largeur de l'étiquette/carte"
+
+#: C/mancreate.page:316(p)
+msgid "Heigth of label/card"
+msgstr "Hauteur de l'étiquette/carte"
+
+#: C/mancreate.page:319(code)
+#, no-wrap
+msgid "round"
+msgstr "round"
+
+#: C/mancreate.page:320(p)
+msgid ""
+"Radius of corners. For items with square edges (business cards), the radius "
+"should be 0."
+msgstr ""
+"Rayon de l'arrondi du coin. Pour les étiquettes ou cartes à angles droits "
+"(cartes de visite), la valeur du rayon doit être 0."
+
+#: C/mancreate.page:324(code)
+#, no-wrap
+msgid "x_waste"
+msgstr "x_waste"
+
+#: C/mancreate.page:325(p)
+msgid ""
+"Amount of horizontal waste (over-print) to allow. This is useful for "
+"minimizing alignment problems when using non-white backgrounds (e.g. images)."
+msgstr ""
+"Quantité d'espace horizontal perdu acceptable (surimpression). C'est utile "
+"pour réduire les problèmes d'alignement, notamment avec l'utilisation de "
+"fonds colorés (par ex. des images)."
+
+#: C/mancreate.page:330(code)
+#, no-wrap
+msgid "y_waste"
+msgstr "y_waste"
+
+#: C/mancreate.page:331(p)
+msgid ""
+"Amount of vertical waste (over-print) to allow. This is useful for "
+"minimizing alignment problems when using non-white backgrounds (e.g. images)."
+msgstr ""
+"Quantité d'espace vertical perdu acceptable (surimpression). C'est utile "
+"pour réduire les problèmes d'alignement, notamment avec l'utilisation de "
+"fonds colorés (par ex. des images)."
+
+#: C/mancreate.page:339(desc) C/mancreate.page:341(p)
+msgid "<span translate=\"no\">Label-rectangle</span> parameters"
+msgstr "Paramètres de <span translate=\"no\">Label-rectangle</span>"
+
+#: C/mancreate.page:356(title)
+msgid "<span translate=\"no\">Label-ellipse</span> Node"
+msgstr "Nœud <span translate=\"no\">Label-ellipse</span>"
+
+#: C/mancreate.page:358(p)
+msgid ""
+"A <code translate=\"no\">Label-ellipse</code> node describes the dimensions "
+"of a single label or business card that is elliptic in shape."
+msgstr ""
+"Un nœud <code translate=\"no\">Label-ellipse</code> décrit les dimensions "
+"d'une étiquette ou carte de visite de forme elliptique."
+
+#: C/mancreate.page:375(p)
+msgid "Width of the ellipse"
+msgstr "Largeur de l'ellipse"
+
+#: C/mancreate.page:379(p)
+msgid "Heigth of the ellipse"
+msgstr "Hauteur de l'ellipse"
+
+#: C/mancreate.page:382(code) C/mancreate.page:429(code)
+#: C/mancreate.page:490(code)
+#, no-wrap
+msgid "waste"
+msgstr "waste"
+
+#: C/mancreate.page:383(p) C/mancreate.page:430(p) C/mancreate.page:491(p)
+msgid ""
+"Amount of waste (over-print) to allow. This is useful for minimizing "
+"alignment problems when using non-white backgrounds (e.g. images)."
+msgstr ""
+"Quantité d'espace perdu acceptable (surimpression). C'est utile pour réduire "
+"les problèmes d'alignement, notamment avec l'utilisation de fonds colorés "
+"(par ex. des images)."
+
+#: C/mancreate.page:391(desc) C/mancreate.page:393(p)
+#: C/mancreate.page:438(desc) C/mancreate.page:440(p)
+msgid "<span translate=\"no\">Label-ellipse</span> parameters"
+msgstr "Paramètres de <span translate=\"no\">Label-ellipse</span>"
+
+#: C/mancreate.page:408(title)
+msgid "<span translate=\"no\">Label-round</span> Node"
+msgstr "Nœud <span translate=\"no\">Label-round</span>"
+
+#: C/mancreate.page:410(p)
+msgid ""
+"A <code translate=\"no\">Label-round</code> node describes the dimensions of "
+"a simple round label (not a CD)."
+msgstr ""
+"Un nœud <code translate=\"no\">Label-round</code> décrit les dimensions "
+"d'une étiquette ronde pleine (pas pour un CD)."
+
+#: C/mancreate.page:425(code) C/mancreate.page:472(code)
+#: C/mancreate.page:614(code)
+#, no-wrap
+msgid "radius"
+msgstr "radius"
+
+#: C/mancreate.page:426(p)
+msgid "Radius (1/2 diameter) of label"
+msgstr "Rayon (la moitié du diamètre) d'une étiquette ronde"
+
+#: C/mancreate.page:455(title)
+msgid "<span translate=\"no\">Label-cd</span> Node"
+msgstr "Nœud <span translate=\"no\">Label-cd</span>"
+
+# voir http://en.wikipedia.org/wiki/Business_card_CD
+#: C/mancreate.page:457(p)
+msgid ""
+"A <code translate=\"no\">Label-cd</code> node describes the dimensions of a "
+"CD, DVD, or business card CD."
+msgstr ""
+"Un nœud <code translate=\"no\">Label-cd</code> décrit les dimensions d'une "
+"étiquette de CD, de DVD ou de mini CD."
+
+#: C/mancreate.page:473(p)
+msgid "Outer radius of label"
+msgstr "Rayon extérieur de l'étiquette"
+
+#: C/mancreate.page:476(code)
+#, no-wrap
+msgid "hole"
+msgstr "hole"
+
+#: C/mancreate.page:477(p)
+msgid "Radius of concentric hole"
+msgstr "Rayon du trou central"
+
+#: C/mancreate.page:481(p)
+msgid ""
+"If present, the label is clipped to the given width. (Useful for \"business "
+"card CDs\")."
+msgstr ""
+"Si présent, l'étiquette est découpée à la largeur indiquée (utile pour les "
+"« mini CD »)."
+
+#: C/mancreate.page:486(p)
+msgid ""
+"If present, the label is clipped to the given height. (Useful for \"business "
+"card CDs\")."
+msgstr ""
+"Si présent, l'étiquette est découpée à la hauteur donnée (utile pour les "
+"« mini CD »)."
+
+#: C/mancreate.page:499(desc)
+msgid "<span translate=\"no\">Label-cd</span> parameters"
+msgstr "Paramètres de <span translate=\"no\">Label-cd</span>"
+
+#: C/mancreate.page:501(p)
+msgid "CD label parameters"
+msgstr "Paramètres pour étiquette de CD"
+
+#: C/mancreate.page:516(title)
+msgid "<span translate=\"no\">Markup</span> Nodes"
+msgstr "Nœuds <span translate=\"no\">Markup</span>"
+
+#: C/mancreate.page:518(p)
+msgid ""
+"Templates may contain optional markup nodes. These nodes are used to "
+"describe a simple set of markup lines that are visible in the <app>glabels</"
+"app> drawing canvas, but not visible when printed. These lines can represent "
+"margins, fold lines, center lines, special areas, or other helpful hints to "
+"the user of a template."
+msgstr ""
+"Le modèle peut comporter des nœuds « markup » optionnels. Ces nœuds "
+"s'utilisent pour décrire un simple ensemble de lignes de marquage visibles "
+"sur le canevas de tracé de <app>glabels</app>, mais invisibles à "
+"l'impression. Ces lignes peuvent représenter des marges, des lignes de "
+"pliage, des lignes de centrage, des zones spécialisées ou d'autres "
+"indications pour aider l'utilisateur d'un modèle."
+
+#: C/mancreate.page:528(title)
+msgid "<span translate=\"no\">Markup-margin</span> Node"
+msgstr "Nœud <span translate=\"no\">Markup-margin</span>"
+
+#: C/mancreate.page:530(p)
+msgid ""
+"A <code translate=\"no\">Markup-margin</code> describes a margin along all "
+"edges of a label."
+msgstr ""
+"Un nœud <code translate=\"no\">Markup-margin</code> délimite la marge autour "
+"d'une étiquette."
+
+#: C/mancreate.page:542(p)
+msgid ""
+"Size of the margin. I.e. the distance of the margin line from the edge of "
+"the card/label."
+msgstr ""
+"Taille de la marge, c'est-à-dire la distance de la ligne de marge jusqu'au "
+"bord de l'étiquette ou de la carte."
+
+#: C/mancreate.page:556(title)
+msgid "<span translate=\"no\">Markup-line</span> Node"
+msgstr "Nœud <span translate=\"no\">Markup-line</span>"
+
+#: C/mancreate.page:558(p)
+msgid ""
+"A <code translate=\"no\">Markup-line</code> node describes a markup line."
+msgstr ""
+"Un nœud <code translate=\"no\">Markup-line</code> décrit le tracé d'une "
+"droite de marquage."
+
+#: C/mancreate.page:568(code) C/mancreate.page:640(code)
+#: C/mancreate.page:682(code)
+#, no-wrap
+msgid "x1"
+msgstr "x1"
+
+#: C/mancreate.page:569(p)
+msgid "x coordinate of 1st endpoint of the line segment."
+msgstr "Abscisse x de l'origine du segment de droite."
+
+#: C/mancreate.page:572(code) C/mancreate.page:644(code)
+#: C/mancreate.page:686(code)
+#, no-wrap
+msgid "y1"
+msgstr "y1"
+
+#: C/mancreate.page:573(p)
+msgid "y coordinate of 1st endpoint of the line segment."
+msgstr "Ordonnée y de l'origine du segment de droite."
+
+#: C/mancreate.page:576(code)
+#, no-wrap
+msgid "x2"
+msgstr "x2"
+
+#: C/mancreate.page:577(p)
+msgid "x coordinate of 2st endpoint of the line segment."
+msgstr "Abscisse x de l'extrémité du segment de droite."
+
+#: C/mancreate.page:580(code)
+#, no-wrap
+msgid "y2"
+msgstr "y2"
+
+#: C/mancreate.page:581(p)
+msgid "y coordinate of 2st endpoint of the line segment."
+msgstr "Ordonnée y de l'extrémité du segment de droite."
+
+#: C/mancreate.page:594(title)
+msgid "<span translate=\"no\">Markup-circle</span> Node"
+msgstr "Nœud <span translate=\"no\">Markup-circle</span>"
+
+#: C/mancreate.page:596(p)
+msgid ""
+"A <code translate=\"no\">Markup-circle</code> describes a markup circle."
+msgstr ""
+"Un nœud <code translate=\"no\">Markup-circle</code> décrit le tracé d'un "
+"cercle de marquage."
+
+#: C/mancreate.page:606(code) C/mancreate.page:740(code)
+#, no-wrap
+msgid "x0"
+msgstr "x0"
+
+#: C/mancreate.page:607(p)
+msgid "x coordinate of circle origin (center)."
+msgstr "Abscisse x du centre du cercle."
+
+#: C/mancreate.page:610(code) C/mancreate.page:745(code)
+#, no-wrap
+msgid "y0"
+msgstr "y0"
+
+#: C/mancreate.page:611(p)
+msgid "y coordinate of circle origin (center)."
+msgstr "Ordonnée y du centre du cercle."
+
+#: C/mancreate.page:615(p)
+msgid "Radius of circle."
+msgstr "Rayon du cercle."
+
+#: C/mancreate.page:628(title)
+msgid "<span translate=\"no\">Markup-rect</span> Node"
+msgstr "Nœud <span translate=\"no\">Markup-rect</span>"
+
+#: C/mancreate.page:630(p)
+msgid ""
+"A <code translate=\"no\">Markup-rect</code> describes a markup rectangle."
+msgstr ""
+"Un nœud <code translate=\"no\">Markup-rect</code> décrit le tracé d'un "
+"rectangle de marquage."
+
+#: C/mancreate.page:641(p)
+msgid "x coordinate of upper left corner of rectangle."
+msgstr "Abscisse x du coin supérieur gauche du rectangle."
+
+#: C/mancreate.page:645(p)
+msgid "y coordinate of upper left corner of rectangle."
+msgstr "Ordonnée y du coin supérieur gauche du rectangle."
+
+#: C/mancreate.page:648(code) C/mancreate.page:690(code)
+#, no-wrap
+msgid "w"
+msgstr "w"
+
+#: C/mancreate.page:649(p)
+msgid "Width of rectangle."
+msgstr "Largeur du rectangle."
+
+#: C/mancreate.page:652(code) C/mancreate.page:694(code)
+#, no-wrap
+msgid "h"
+msgstr "h"
+
+#: C/mancreate.page:653(p)
+msgid "Height of rectangle."
+msgstr "Hauteur du rectangle."
+
+#: C/mancreate.page:656(code)
+#, no-wrap
+msgid "r"
+msgstr "r"
+
+#: C/mancreate.page:657(p)
+msgid "Radius of rounded corners of rectangle."
+msgstr "Rayon de l'arrondi des coins du rectangle."
+
+#: C/mancreate.page:670(title)
+msgid "<span translate=\"no\">Markup-ellipse</span> Node"
+msgstr "Nœud <span translate=\"no\">Markup-ellipse</span>"
+
+#: C/mancreate.page:672(p)
+msgid ""
+"A <code translate=\"no\">Markup-ellipse</code> describes a markup ellipse."
+msgstr ""
+"Un nœud <code translate=\"no\">Markup-ellipse</code> décrit le tracé d'une "
+"ellipse de marquage."
+
+#: C/mancreate.page:683(p)
+msgid "x coordinate of upper left corner of ellipse."
+msgstr ""
+"Abscisse x du coin supérieur gauche du rectangle exinscrit dans l'ellipse."
+
+#: C/mancreate.page:687(p)
+msgid "y coordinate of upper left corner of ellipse."
+msgstr ""
+"Ordonnée y du coin supérieur gauche du rectangle exinscrit dans l'ellipse."
+
+#: C/mancreate.page:691(p)
+msgid "Width of ellipse."
+msgstr "Largeur de l'ellipse."
+
+#: C/mancreate.page:695(p)
+msgid "Height of ellipse."
+msgstr "Hauteur de l'ellipse."
+
+#: C/mancreate.page:713(title)
+msgid "<span translate=\"no\">Layout</span> Node"
+msgstr "Nœud <span translate=\"no\">Layout</span>"
+
+# voir http://en.wikipedia.org/wiki/Running_bond#Stretcher_bond
+#: C/mancreate.page:715(p)
+msgid ""
+"A label node may contain multiple <code translate=\"no\">Layout</code> "
+"children. If labels are arranged in a simple grid pattern, only one layout "
+"is needed. However, if labels are arranged in multiple grids, such as a "
+"running bond pattern, multiple <code translate=\"no\">Layout</code> tags can "
+"be used."
+msgstr ""
+"Un nœud <span translate=\"no\">Label</span> peut contenir plusieurs nœuds "
+"<code translate=\"no\">Layout</code> enfants. Si les étiquettes sont placées "
+"dans une trame de grille simple, un seul nœud suffit. Si les étiquettes sont "
+"disposées dans plusieurs grilles, comme pour le motif décalé d'un mur de "
+"briques, plusieurs nœuds <code translate=\"no\">Layout</code> seront "
+"nécessaires."
+
+#: C/mancreate.page:721(p)
+msgid "A single label can always be treated as a grid of one."
+msgstr ""
+"Une étiquette unique peut toujours être considérée comme une grille à un "
+"seul élément."
+
+#: C/mancreate.page:732(code)
+#, no-wrap
+msgid "nx"
+msgstr "nx"
+
+#: C/mancreate.page:733(p)
+msgid "Number of labels/cards across in the grid (horizontal)"
+msgstr "Nombre d'étiquettes/cartes dans la grille (horizontalement)."
+
+#: C/mancreate.page:736(code)
+#, no-wrap
+msgid "ny"
+msgstr "ny"
+
+#: C/mancreate.page:737(p)
+msgid "Number of labels/cards across in the grid (vertical)"
+msgstr "Nombre d'étiquettes/cartes dans la grille (verticalement)."
+
+#: C/mancreate.page:741(p)
+msgid ""
+"Distance from left edge of sheet to the left edge of the left column of "
+"cards/labels in the layout."
+msgstr ""
+"Distance entre le bord gauche de la page et le bord gauche de la première "
+"colonne d'étiquettes/cartes dans la disposition."
+
+#: C/mancreate.page:746(p)
+msgid ""
+"Distance from the top edge of sheet to the top edge of the top row of labels/"
+"cards in the layout."
+msgstr ""
+"Distance entre le bord supérieur de la page et le bord supérieur de la "
+"première rangée d'étiquettes/cartes dans la disposition."
+
+#: C/mancreate.page:750(code)
+#, no-wrap
+msgid "dx"
+msgstr "dx"
+
+#: C/mancreate.page:751(p)
+msgid "Horizontal pitch of grid."
+msgstr "Pas horizontal de la grille."
+
+#: C/mancreate.page:754(code)
+#, no-wrap
+msgid "dy"
+msgstr "dy"
+
+#: C/mancreate.page:755(p)
+msgid "Vertical pitch of grid."
+msgstr "Pas vertical de la grille."
+
+#: C/mancreate.page:761(desc)
+msgid "<span translate=\"no\">Layout</span> parameters"
+msgstr "Paramètres de <span translate=\"no\">Layout</span>"
+
+#: C/mancreate.page:763(p)
+msgid "<span translate=\"no\">Layout</span> Parameters"
+msgstr "Paramètres de <span translate=\"no\">Layout</span>"
+
+#: C/license.page:8(desc)
+msgid "Legal information."
+msgstr "Informations légales."
+
+#: C/license.page:11(title)
+msgid "License"
+msgstr "Licence"
+
+#: C/license.page:12(p)
+msgid ""
+"This work is distributed under a CreativeCommons Attribution-Share Alike 3.0 "
+"Unported license."
+msgstr ""
+"Cette œuvre est distribuée sous licence Creative Commons Paternité-Partage "
+"des Conditions Initiales à l'Identique 3.0 Unported."
+
+#: C/license.page:20(p)
+msgid "You are free:"
+msgstr "Vous êtes libre :"
+
+#: C/license.page:25(em)
+msgid "To share"
+msgstr "de partager"
+
+#: C/license.page:26(p)
+msgid "To copy, distribute and transmit the work."
+msgstr "de reproduire, distribuer et communiquer cette création."
+
+#: C/license.page:29(em)
+msgid "To remix"
+msgstr "de modifier"
+
+#: C/license.page:30(p)
+msgid "To adapt the work."
+msgstr "d'adapter cette création,"
+
+#: C/license.page:33(p)
+msgid "Under the following conditions:"
+msgstr "selon les conditions suivantes :"
+
+#: C/license.page:38(em)
+msgid "Attribution"
+msgstr "Paternité"
+
+#: C/license.page:39(p)
+msgid ""
+"You must attribute the work in the manner specified by the author or "
+"licensor (but not in any way that suggests that they endorse you or your use "
+"of the work)."
+msgstr ""
+"Vous devez citer le nom de l'auteur original de la manière indiquée par "
+"l'auteur de l'œuvre ou le titulaire des droits qui vous confère cette "
+"autorisation (mais pas d'une manière qui suggérerait qu'ils vous soutiennent "
+"ou approuvent votre utilisation de l'œuvre)."
+
+#: C/license.page:46(em)
+msgid "Share Alike"
+msgstr "Partage des conditions initiales à l'identique"
+
+#: C/license.page:47(p)
+msgid ""
+"If you alter, transform, or build upon this work, you may distribute the "
+"resulting work only under the same, similar or a compatible license."
+msgstr ""
+"Si vous modifiez, transformez ou adaptez cette création, vous n'avez le "
+"droit de distribuer la création qui en résulte que sous un contrat identique "
+"à celui-ci."
+
+#: C/license.page:53(p)
+msgid ""
+"For the full text of the license, see the <link href=\"http://"
+"creativecommons.org/licenses/by-sa/3.0/legalcode\">CreativeCommons website</"
+"link>, or read the full <link href=\"http://creativecommons.org/licenses/by-"
+"sa/3.0/\">Commons Deed</link>."
+msgstr ""
+"Pour prendre connaissance du texte complet de la licence, consultez le <link "
+"href=\"http://creativecommons.org/licenses/by-sa/3.0/legalcode\">site Web "
+"CreativeCommons</link> ou lisez in extenso le <link href=\"http://"
+"creativecommons.org/licenses/by-sa/3.0/\">contrat Commons</link>."
+
+#: C/labelprop.page:9(desc)
+msgid "How to change the properties of a label or business card."
+msgstr ""
+"Comment modifier les propriétés d'une étiquette ou d'une carte de visite."
+
+#: C/labelprop.page:25(title)
+msgid "To change label properties"
+msgstr "Modification des propriétés d'une étiquette"
+
+#: C/labelprop.page:27(p)
+msgid ""
+"To change the media type and/or orientation of a label, choose "
+"<guiseq><gui>File</gui><gui>Properties</gui></guiseq> to display the "
+"<gui>Label properties</gui> dialog. Select the new media type and "
+"orientation for the document, then click <gui>OK</gui>."
+msgstr ""
+"Pour modifier le type de support ou l'orientation d'une étiquette, "
+"choisissez <guiseq><gui>Fichier</gui><gui>Propriétés</gui></guiseq> pour "
+"afficher la boîte de dialogue <gui>Propriétés de l'étiquette</gui>. "
+"Sélectionnez un type de support et l'orientation du document, puis cliquez "
+"sur <gui>Valider</gui>."
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/index.page:24(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'figures/glabels-logo.png'; md5=80b9ac843f534bc98b45a2445119494e"
+msgid ""
+"@@image: 'figures/glabels-logo.png'; md5=0c1e32afcbae0d2fc6976020c24a0a43"
+msgstr ""
+"@@image: 'figures/glabels-logo.png'; md5=80b9ac843f534bc98b45a2445119494e"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/index.page:47(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'figures/introduction-glabels-main-window.png'; "
+#| "md5=2309c89ac6b5556daaf04adb72c39ffb"
+msgid ""
+"@@image: 'figures/introduction-glabels-main-window.png'; "
+"md5=fceca242699bb062a5ac243a5f962f3b"
+msgstr ""
+"@@image: 'figures/introduction-glabels-main-window.png'; "
+"md5=2309c89ac6b5556daaf04adb72c39ffb"
+
+#: C/index.page:7(title) C/index.page:8(title)
+msgid "gLabels label and business card designer"
+msgstr "Concepteur d'étiquettes et de cartes de visite <app>gLabels</app>"
+
+#: C/index.page:23(title)
+msgid ""
+"<media type=\"image\" mime=\"image/png\" src=\"figures/glabels-logo.png"
+"\">gLabels logo</media> gLabels Manual"
+msgstr ""
+"<media type=\"image\" mime=\"image/png\" src=\"figures/glabels-logo.png"
+"\">logo gLabels</media> Manuel de <app>gLabels</app>"
+
+#: C/index.page:28(p)
+msgid ""
+"The <app>gLabels</app> application is a lightweight program for creating "
+"labels and business cards for the GNOME desktop environment. It is designed "
+"to work with various laser/ink-jet peel-off label and business card sheets "
+"that you'll find at most office supply stores."
+msgstr ""
+"L'application <app>gLabels</app> est un utilitaire léger pour créer des "
+"étiquettes et des cartes de visite dans l'environnement de bureau GNOME. Il "
+"est conçu pour fonctionner avec des feuilles d'étiquettes auto-collantes "
+"pour imprimantes laser ou jet d'encre ou avec des feuilles de cartes, "
+"feuilles que vous trouverez dans la plupart des magasins spécialisés en "
+"fournitures de bureau."
+
+#: C/index.page:35(p)
+msgid ""
+"<app>gLabels</app> can be used to design address labels, name tags, price "
+"tags, cd/dvd labels, or just about anything else that is organized in a "
+"regular pattern on a sheet of paper. Labels (or cards) can contain text, "
+"images, lines, shapes, and barcodes. <app>gLabels</app> also includes a "
+"document-merge feature which lets you print a unique label for each record "
+"from an external data source, such as a CSV file or an <app>Evolution</app> "
+"address book."
+msgstr ""
+"<app>gLabels</app> peut être utilisé pour concevoir des étiquettes de "
+"publipostage, des badges nominatifs, des étiquettes de prix, des étiquettes "
+"de CD/DVD ou encore plus simplement tout ce qui est disposé avec un tramage "
+"régulier sur une feuille de papier. Les étiquettes (ou les cartes) peuvent "
+"comporter du texte, des images, des lignes, des formes et des codes-barres. "
+"<app>gLabels</app> comprend également une fonctionnalité de fusion de "
+"documents qui vous permet d'imprimer une étiquette propre à chaque "
+"enregistrement d'une source de données externe, comme un fichier CVS ou le "
+"carnet d'adresses d'<app>Evolution</app>."
+
+#: C/index.page:45(title) C/index.page:46(desc)
+msgid "<app>gLabels</app> main window"
+msgstr "Fenêtre principale de <app>gLabels</app>"
+
+#: C/index.page:48(p)
+msgid "<app>gLabels</app> main window."
+msgstr "Fenêtre principale de <app>gLabels</app>."
+
+#: C/index.page:53(title)
+msgid "Usage"
+msgstr "Utilisation"
+
+#: C/index.page:57(title)
+msgid "Document Merging"
+msgstr "Fusion de documents"
+
+#: C/index.page:61(title)
+msgid "Advanced usage"
+msgstr "Utilisation avancée"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/editprop.page:35(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'figures/object-editor-sidebar.png'; "
+#| "md5=08e152bad535a2b3d1ff7ed73de5b483"
+msgid ""
+"@@image: 'figures/object-editor-sidebar.png'; "
+"md5=828ffc05f69e1914595cc1e3d7401e2f"
+msgstr ""
+"@@image: 'figures/object-editor-sidebar.png'; "
+"md5=08e152bad535a2b3d1ff7ed73de5b483"
+
+#: C/editprop.page:9(desc)
+msgid "Change the properties of objects."
+msgstr "Comment modifier les propriétés des objets."
+
+#: C/editprop.page:25(title)
+msgid "To edit object properties"
+msgstr "Modification des propriétés d'un objet"
+
+#: C/editprop.page:29(p)
+msgid ""
+"Most object properties can be modified through the object editor sidebar, "
+"illustrated below. To use the object editor, a single object must first be "
+"selected. See <link xref=\"select\"/>."
+msgstr ""
+"Les propriétés de la plupart des objets peuvent être modifiées avec "
+"l'éditeur d'objet présent dans le panneau latéral comme illustré ci-dessous. "
+"Pour que l'éditeur d'objet soit actif, il faut d'abord sélectionner un "
+"objet. Consultez la section <link xref=\"select\"/>."
+
+#. ==== End of Figure ====
+#: C/editprop.page:40(p)
+msgid ""
+"The object editor will contain a subset of the following tabbed sections, "
+"depending on object type:"
+msgstr ""
+"L'éditeur d'objet propose, selon leur type, le jeu d'onglets suivants :"
+
+#: C/editprop.page:44(title)
+msgid "Text Tabbed Section (Text objects)"
+msgstr "Onglet Texte (objets Texte)"
+
+#: C/editprop.page:46(p)
+msgid ""
+"This section contains a small editor for changing the content of a text "
+"object. It also contains a dropdown menu of available document merge keys, "
+"that can be inserted into text."
+msgstr ""
+"Cet onglet contient un petit éditeur permettant de modifier le contenu d'un "
+"objet texte. Il contient aussi un menu déroulant indiquant les champs de "
+"fusion disponibles pouvant être insérés dans le texte."
+
+#: C/editprop.page:53(title)
+msgid "Image Tabbed Section (Image objects)"
+msgstr "Onglet Image (objets Image)"
+
+#: C/editprop.page:55(p)
+msgid ""
+"This section contains a file entry with preview to select image files. The "
+"browse button can be used to easily locate image files. Alternatively, a "
+"document merge key can be used instead to provide a filename at print time."
+msgstr ""
+"Cette partie contient une zone de sélection de fichier avec aperçu "
+"permettant de choisir des fichiers image. Le bouton de navigation s'utilise "
+"pour explorer aisément les fichiers image. On peut aussi indiquer un champ "
+"de fusion utilisable à la place du nom de fichier au moment de l'impression."
+
+#: C/editprop.page:63(title)
+msgid "Data Tabbed Section (Barcode objects)"
+msgstr "Onglet Code-barre (objets Code-barre)"
+
+#: C/editprop.page:65(p)
+msgid ""
+"This section contains a text entry to enter literal barcode data. "
+"Alternatively, a document merge key can be used to provide this data at "
+"print time."
+msgstr ""
+"Cet onglet contient une zone de saisie de texte pour saisir la chaîne "
+"alphanumérique d'un code-barre. On peut aussi indiquer un champ de fusion "
+"qui fournit l'information au moment de l'impression."
+
+#: C/editprop.page:72(title)
+msgid "Style Tabbed Section (Text objects)"
+msgstr "Onglet Style (objets Texte)"
+
+#: C/editprop.page:74(p)
+msgid ""
+"This section contains controls to select text properties, including font "
+"family, font size, font weight, color, and text justification."
+msgstr ""
+"Cet onglet contient des éléments à renseigner pour choisir les propriétés du "
+"texte : famille, taille et style de la police, couleur, alignement et "
+"espacement."
+
+#: C/editprop.page:81(title)
+msgid "Style Tabbed Section (Barcode objects)"
+msgstr "Onglet Style (objets Code-barre)"
+
+#: C/editprop.page:83(p)
+msgid ""
+"This section contains controls to select barcode properties, including "
+"barcode style, color, whether to print text, and whether to include a "
+"checksum digit."
+msgstr ""
+"Cet onglet contient des éléments à renseigner pour choisir les propriétés du "
+"code-barre : le style, la couleur, et s'il faut y inclure ou non une somme "
+"de contrôle."
+
+#: C/editprop.page:90(title)
+msgid "Line Tabbed Section"
+msgstr "Onglet Ligne"
+
+#: C/editprop.page:92(p)
+msgid ""
+"This section contains controls to select properties of lines and outlines. "
+"These properties include line width and color."
+msgstr ""
+"Cet onglet contient deux éléments permettant de choisir les propriétés des "
+"lignes et des bordures : épaisseur et couleur."
+
+#: C/editprop.page:98(title)
+msgid "Fill Tabbed Section"
+msgstr "Onglet Remplissage"
+
+#: C/editprop.page:100(p)
+msgid ""
+"This section contains controls to select fill properties of box and ellipse "
+"objects. Currently the only fill property is fill color."
+msgstr ""
+"Cet onglet contient des éléments pour renseigner les propriétés de "
+"remplissage des objets boîte et ellipse. Pour l'instant, la couleur est la "
+"seule option de remplissage disponible."
+
+#: C/editprop.page:107(title)
+msgid "Size Tabbed Section (All except line objects)"
+msgstr "Onglet Taille (tous objets, sauf Ligne)"
+
+#: C/editprop.page:109(p)
+msgid ""
+"This section contains controls to select the width and height of an object. "
+"A checkbox is provided, so that the current aspect ratio can be locked while "
+"manipulating the width and height controls. Image objects also provide a "
+"button to reset the size to the image's natural size (Assumes 72DPI)."
+msgstr ""
+"Cet onglet contient deux éléments pour choisir la largeur et la hauteur d'un "
+"objet. Il y a aussi une case à cocher pour figer le rapport largeur/hauteur "
+"pendant le redimensionnement de l'objet. Pour les objets Image, il y a en "
+"plus un bouton permettant de revenir aux dimensions d'origine (en supposant "
+"une résolution de 72 ppp)."
+
+#: C/editprop.page:118(title)
+msgid "Size Tabbed Section (Line objects)"
+msgstr "Onglet Taille (objets Ligne)"
+
+#: C/editprop.page:120(p)
+msgid ""
+"This section contains controls to select the length and angle of a line "
+"object."
+msgstr ""
+"Cet onglet contient deux éléments pour choisir la longueur et l'angle "
+"d'inclinaison d'un objet ligne."
+
+#: C/editprop.page:126(title)
+msgid "Position Tabbed Section"
+msgstr "Onglet Position"
+
+#: C/editprop.page:128(p)
+msgid "This section contains controls to change the position of an object."
+msgstr ""
+"Cet onglet contient des éléments permettant de modifier la position d'un "
+"objet."
+
+#: C/editprop.page:135(title)
+msgid "Shadow Tabbed Section (All except barcode objects)"
+msgstr "Onglet Ombrage (tous objets, sauf code-barre)"
+
+#: C/editprop.page:137(p)
+msgid "This section contains controls to add a shadow to an object."
+msgstr "Cet onglet contient les paramètres pour ajouter une ombre à un objet."
+
+#: C/editprop.page:146(title)
+msgid "Other Manipulations of Objects"
+msgstr "Autres possibilités de manipulation d'objets"
+
+#: C/editprop.page:148(p)
+msgid "Objects can also be manipulated in the following ways."
+msgstr "Les objets peuvent aussi être manipulés des façons suivantes."
+
+#: C/editprop.page:151(title)
+msgid "Moving and Resizing Objects"
+msgstr "Déplacement et redimensionnement des objets"
+
+#: C/editprop.page:153(p)
+msgid ""
+"Objects can be moved by simply clicking on a selected object and dragging "
+"the object to its new location. If the object is part of an aggregate "
+"selection, all objects in the selection will move with the object being "
+"dragged, maintaining their relative positions to one another. If no object "
+"is selected, clicking on an object will create a new selection containing "
+"that object. See <link xref=\"select\"/>."
+msgstr ""
+"Un objet peut être déplacé en cliquant dessus et en le faisant glisser à sa "
+"nouvelle place. Si cet objet fait partie d'une sélection groupée, tous les "
+"objets sélectionnés sont déplacés en même temps tout en gardant leurs "
+"positions relatives les uns par rapport aux autres. Si aucun objet n'est "
+"sélectionné, un clic sur un objet crée une nouvelle sélection contenant cet "
+"objet. Consultez la section <link xref=\"select\"/>."
+
+#: C/editprop.page:161(p)
+msgid ""
+"A selected object can be resized by clicking one of its resize handle and "
+"dragging it to obtain the new size."
+msgstr ""
+"Un objet sélectionné peut être redimensionné en cliquant sur une de ses "
+"poignées et en la faisant glisser jusqu'à obtenir les dimensions souhaitées."
+
+#: C/editprop.page:167(title)
+msgid "Changing Stacking Order"
+msgstr "Modification de l'ordre d'empilage"
+
+#: C/editprop.page:169(p)
+msgid ""
+"Stacking order refers to relative position in the z-axis of objects. That is "
+"when objects overlap, which object will appear on top of the other. By "
+"default, newer objects will appear above older objects. To change this "
+"order, select one or more objects and choose <guiseq><gui>Objects</"
+"gui><gui>Order</gui><gui>Bring to Front</gui></guiseq> to raise the "
+"selection to the top of the stacking order, or choose <guiseq><gui>Objects</"
+"gui><gui>Order</gui><gui>Send to Back</gui></guiseq> to lower the selection "
+"to the bottom of the stacking order. These menuitems are also available by "
+"right-clicking the display area when there is a non-empty selection."
+msgstr ""
+"L'ordre d'empilage se rapporte à la position relative des objets sur l'axe "
+"Z. Lorsque des objets se recouvrent, il indique quel objet apparaît au-"
+"dessus de l'autre. Par défaut, les plus récents sont affichés par-dessus les "
+"plus anciens. Pour modifier cet ordre, sélectionnez un ou plusieurs objets à "
+"déplacer et choisissez <guiseq><gui>Objets</gui><gui>Ordre</gui><gui>Avancer "
+"au premier plan </gui></guiseq> pour placer la sélection au-dessus de la "
+"pile, ou <guiseq><gui>Objets</gui><gui>Ordre</gui><gui>Reculer à l'arrière-"
+"plan</gui></guiseq> pour placer la sélection au bas de la pile. Ces "
+"commandes sont aussi accessibles par le menu contextuel (clic droit dans la "
+"zone d'affichage lorsqu'un élément au moins est sélectionné)."
+
+#: C/editprop.page:187(title)
+msgid "Rotating and Flipping Objects"
+msgstr "Rotation ou retournement des objets"
+
+#: C/editprop.page:189(p)
+msgid ""
+"Objects can be rotated 90 degrees in either direction, or flipped "
+"horizontally or vertically, by choosing the appropriate menuitem in the "
+"<guiseq><gui>Objects</gui><gui>Rotate/Flip</gui></guiseq> sub-menu. These "
+"menuitems are also available by right-clicking the display area when there "
+"is a non-empty selection."
+msgstr ""
+"L'élément de menu <guiseq><gui>Objets</gui><gui>Rotation/Retournement</gui></"
+"guiseq> donne accès à un sous-menu permettant de faire pivoter un objet de "
+"90° dans n'importe quel sens ou de le retourner horizontalement ou "
+"verticalement. Ces commandes sont aussi accessibles avec le menu contextuel "
+"(clic droit dans la zone d'affichage lorsqu'un élément au moins est "
+"sélectionné)."
+
+#: C/editprop.page:197(p)
+msgid ""
+"This feature could be useful when you are designing CD box inlays. For the "
+"spine caption, you need vertical aligned text. After you have created a "
+"basic text box, choose <guiseq><gui>Objects</gui><gui>Rotate/Flip</gui></"
+"guiseq> to rotate the text box according to your needs."
+msgstr ""
+"Cette fonctionnalité peut se révéler utile quand vous concevez des pochettes "
+"pour des boitiers CD. Pour le titre sur la tranche, vous aurez besoin de "
+"faire pivoter le texte verticalement. Après avoir créé une boîte texte "
+"normale, sélectionnez <guiseq><gui>Objets</gui><gui>Rotation/Retournement</"
+"gui></guiseq> pour faire tourner la boîte texte selon vos besoins."
+
+#: C/editprop.page:208(title)
+msgid "Aligning Objects"
+msgstr "Alignement d'objets"
+
+#: C/editprop.page:210(p)
+msgid ""
+"Objects can be aligned horizontally or vertically, relative to one another, "
+"or relative to the center line of the label, by choosing the appropriate "
+"menuitem from the <guiseq><gui>Objects</gui><gui>Align Horizontal</gui></"
+"guiseq> or <guiseq><gui>Objects</gui><gui>Align Vertical</gui></guiseq> sub-"
+"menus. These menuitems are also available by right-clicking the display area "
+"when there is a non-empty selection."
+msgstr ""
+"Des objets peuvent être alignés horizontalement ou verticalement les uns par "
+"rapport aux autres ou centrés sur les médianes de l'étiquette. Pour cela, "
+"choisissez l'option adéquate dans les sous-menus de <guiseq><gui>Objets</"
+"gui><gui>Aligner horizontalement</gui></guiseq> ou <guiseq><gui>Objets</"
+"gui><gui>Aligner verticalement</gui></guiseq>. Ces commandes sont aussi "
+"accessibles par le menu contextuel (clic droit dans la zone d'affichage "
+"lorsqu'un élément au moins est sélectionné)."
+
+#: C/editprop.page:223(title)
+msgid "Using the Property Bar"
+msgstr "Utilisation de la barre des propriétés"
+
+#: C/editprop.page:225(p)
+msgid ""
+"The property bar can be used to change some common properties of objects en-"
+"masse. These properties include font family, font size, font weight, text "
+"alignment, text color, fill color, line or outline color, and line width. "
+"The property bar also controls the defaults for these properties for any "
+"newly created objects."
+msgstr ""
+"La barre des propriétés sert à modifier certaines options communes à un "
+"ensemble d'objets : famille, taille, gras ou italique de la police, "
+"alignement ou couleur du texte, couleur de remplissage, couleur de ligne ou "
+"de bordure et épaisseur de ligne. La barre des propriétés est aussi utilisée "
+"pour définir les options appliquées par défaut à tout nouvel objet créé."
+
+#: C/customtemplate.page:9(desc)
+msgid "Create your own templates for stationery products."
+msgstr "Comment créer vos propres modèles à partir de produits industrialisés."
 
-#: C/glabels.xml:1621(title)
-msgid "Template Node"
-msgstr "Nœud Template"
+#: C/customtemplate.page:25(title)
+msgid "To create a custom template"
+msgstr "Création de modèles personnalisés."
 
-#: C/glabels.xml:1623(para)
+#: C/customtemplate.page:27(p)
 msgid ""
-"A <emphasis>Template</emphasis> node describes a single stationary product. "
-"It must contain one instance of any type of Label node (<emphasis>Label-"
-"rectangle</emphasis>, <emphasis>Label-round</emphasis>, or <emphasis>Label-"
-"cd</emphasis>). This node can be followed by zero or more <emphasis>Alias</"
-"emphasis> nodes."
+"To create a new custom template, choose <guiseq><gui>File</gui><gui>Template "
+"Designer ...</gui></guiseq> to display the <gui>Template Designer</gui> "
+"dialog. This dialog will assist you in creating a custom template for most "
+"types of label or card stationery that you may encounter."
 msgstr ""
-"Un nœud <emphasis>Template</emphasis> décrit les caractéristiques d'un seul "
-"produit. Il doit contenir une occurrence de l'un des types d'étiquettes suivants : "
-"<emphasis>Label-rectangle</emphasis>, <emphasis>Label-round</emphasis> ou "
-"<emphasis>Label-CD</emphasis>. Ce nœud peut être suivi par zéro ou plus de "
-"nœuds <emphasis>Alias</emphasis>."
+"Pour créer un nouveau modèle personnalisé, choisissez <guiseq><gui>Fichier</"
+"gui><gui>Créateur de modèles...</gui></guiseq> pour afficher l'assistant "
+"<gui>Créateur de modèles</gui>. Il vous aide à créer un modèle personnalisé "
+"compatible avec la plupart des modèles de support du commerce."
 
-#: C/glabels.xml:1637(para) C/glabels.xml:1712(para) C/glabels.xml:1789(para)
-#: C/glabels.xml:1834(para) C/glabels.xml:1910(para) C/glabels.xml:1943(para)
-#: C/glabels.xml:1994(para) C/glabels.xml:2037(para) C/glabels.xml:2096(para)
-#: C/glabels.xml:2173(para)
-msgid "Property"
-msgstr "Propriété"
+#: C/customtemplate.page:34(p)
+msgid ""
+"If you prefer, you can create your templates manually. For this option see "
+"<link xref=\"mancreate\"/>"
+msgstr ""
+"Si vous préférez créer votre propre modèle manuellement, reportez-vous à la "
+"section <link xref=\"mancreate\"/>"
 
-#: C/glabels.xml:1640(para) C/glabels.xml:1715(para) C/glabels.xml:1792(para)
-#: C/glabels.xml:1837(para) C/glabels.xml:1913(para) C/glabels.xml:1946(para)
-#: C/glabels.xml:1997(para) C/glabels.xml:2040(para) C/glabels.xml:2099(para)
-#: C/glabels.xml:2176(para)
-msgid "Description"
-msgstr "Description"
+#: C/customize.page:9(desc)
+msgid "Customize <app>gLabels</app> to match your needs."
+msgstr "Comment personnaliser <app>gLabels</app> pour l'adapter à vos besoins."
 
-#: C/glabels.xml:1646(para) C/glabels.xml:2182(para)
-msgid "brand"
-msgstr "brand"
+#. Use this section to describe how to customize the application.
+#: C/customize.page:25(title)
+msgid "Settings"
+msgstr "Paramétrage"
 
-#: C/glabels.xml:1648(para)
-msgid "Brand or manufacturer of stationary product. E.g. \"Avery\""
-msgstr "Marque ou fabricant du produit, par ex. « Avery »"
+#: C/customize.page:26(p)
+msgid ""
+"To configure <app>gLabels</app>, choose <guiseq><gui>Settings</"
+"gui><gui>Preferences</gui></guiseq>. The <gui>Preferences</gui> dialog "
+"contains the following tabbed sections:"
+msgstr ""
+"Pour configurer <app>gLabels</app>, allez dans le menu <guiseq><gui>Édition</"
+"gui><gui>Préférences</gui></guiseq>. La boîte de dialogue <gui>Préférences</"
+"gui> contient les onglets suivants :"
 
-#: C/glabels.xml:1653(para) C/glabels.xml:2188(para)
-msgid "part"
-msgstr "part"
+#: C/customize.page:35(title)
+msgid "Locale"
+msgstr "Localisation"
 
-#: C/glabels.xml:1655(para)
-msgid "Part number or name of stationary product. E.g. \"8160\""
-msgstr "Numéro de série ou nom du produit, par ex. « 8160 »"
+#: C/customize.page:37(title)
+msgid "Units"
+msgstr "Unités"
 
-#: C/glabels.xml:1660(para) C/glabels.xml:1919(para)
-msgid "size"
-msgstr "size"
+#: C/customize.page:38(p)
+msgid ""
+"Use this radio button group to specify your preferred units. Select one of "
+"the following options:"
+msgstr ""
+"Ce groupe de boutons radio permet d'indiquer les unités de mesure que vous "
+"préférez. Cochez l'une des options suivantes :"
 
-#: C/glabels.xml:1662(para)
-msgid "Size of sheet. E.g., \"US-Letter,\" \"A4\", ..."
-msgstr "Format de page, par ex. « US-Letter », « A4 », ..."
+#: C/customize.page:42(gui)
+msgid "Points"
+msgstr "Points"
 
-#: C/glabels.xml:1666(para)
-msgid "description"
-msgstr "description"
+#: C/customize.page:43(p)
+msgid "Use points (1 point = 1/72 in = 0.352778 mm)."
+msgstr "Utilisation du point (1 point = 1/72e de pouce = 0,352778 mm)."
 
-#: C/glabels.xml:1668(para)
-msgid "Description of stationary product. E.g, \"Mailing Labels.\""
-msgstr "Description du produit, par ex. « Étiquettes postales. »."
+#: C/customize.page:46(gui)
+msgid "Inches"
+msgstr "Pouces"
 
-#: C/glabels.xml:1673(para)
-msgid "_description"
-msgstr "_description"
+#: C/customize.page:47(p)
+msgid "Use Inches."
+msgstr "Utilisation du pouce."
 
-#: C/glabels.xml:1675(para)
-msgid ""
-"Translatable description of stationary product. E.g, \"Mailing Labels."
-"\" (Only useful for predefined templates)"
-msgstr ""
-"Description traduisible du produit, par ex. « Étiquettes "
-"postales » (seulement utile pour des formats de patrons prédéfinis)."
+#: C/customize.page:50(gui)
+msgid "Millimeters"
+msgstr "Millimètres"
 
-#: C/glabels.xml:1681(para) C/glabels.xml:1727(para) C/glabels.xml:1857(para)
-msgid "width"
-msgstr "width"
+#: C/customize.page:51(p)
+msgid "Use Millimeters."
+msgstr "Utilisation du millimètre."
 
-#: C/glabels.xml:1683(para)
-msgid "Page width. Only valid if size=\"Other\""
-msgstr "Largeur de la page. Seulement valide si la propriété size contient « Other » (autre)."
+#: C/customize.page:54(p)
+msgid "Default: <gui>Inches</gui>."
+msgstr "Unité par défaut : le <gui>pouce</gui>."
 
-#: C/glabels.xml:1687(para) C/glabels.xml:1731(para) C/glabels.xml:1864(para)
-msgid "height"
-msgstr "height"
+#: C/customize.page:58(title)
+msgid "Default page size"
+msgstr "Taille de page par défaut"
 
-#: C/glabels.xml:1689(para)
-msgid "Page height. Only valid if size=\"Other\""
-msgstr "Hauteur de la page. Seulement valide si la propriété size contient « Other » (autre)."
+#: C/customize.page:59(p)
+msgid ""
+"Use this radio button group to specify your prefered page size. This will "
+"make it quicker for you to locate media types when creating a new label or "
+"card."
+msgstr ""
+"Ce groupe de boutons radio permet d'indiquer le format de page que vous "
+"préférez. Ceci vous aide à trouver plus rapidement des types de support lors "
+"de la création d'une nouvelle étiquette ou carte."
 
-#: C/glabels.xml:1699(title)
-msgid "Label-rectangle Node"
-msgstr "Nœud Label-rectangle"
+#: C/customize.page:64(gui)
+msgid "US Letter"
+msgstr "Lettre US"
 
-#: C/glabels.xml:1701(para)
+#: C/customize.page:65(p)
 msgid ""
-"A <emphasis>Label-rectangle</emphasis> node describes the dimensions of a "
-"single label or business card that is rectangular in shape (may have rounded "
-"edges)."
+"Most of your media will be of the US Letter page size (8.5 x 11 inches)."
 msgstr ""
-"Un nœud <emphasis>Label-rectangle</emphasis> décrit les dimensions d'une "
-"étiquette ou carte de visite rectangulaire (elle peut aussi avoir les "
-"angles arrondis)."
+"Si la plupart de vos supports sont au format de lettre US (8.5 x 11 pouces)."
 
-#: C/glabels.xml:1721(para) C/glabels.xml:1798(para) C/glabels.xml:1843(para)
-msgid "id"
-msgstr "id"
+#: C/customize.page:68(gui)
+msgid "ISO A4"
+msgstr "ISO A4"
 
-#: C/glabels.xml:1723(para) C/glabels.xml:1800(para) C/glabels.xml:1845(para)
-msgid "Reserved for future use. Should always be 0."
-msgstr "Réservé pour une utilisation future. Doit toujours être 0."
+#: C/customize.page:69(p)
+msgid "Most of your media will be of the ISO A4 page size (210 x 297 mm)."
+msgstr "Si la plupart de vos supports sont au format ISO A4 (210 x 297 mm)."
 
-#: C/glabels.xml:1728(para)
-msgid "Width of label/card"
-msgstr "Largeur de l'étiquette/carte"
+#: C/customize.page:72(p)
+msgid "Default: <gui>US Letter</gui>."
+msgstr "Support par défaut : <gui>Lettre US</gui>."
 
-#: C/glabels.xml:1732(para)
-msgid "Height of label/card"
-msgstr "Hauteur de l'étiquette/carte"
+#: C/customize.page:77(title)
+msgid "Object Defaults"
+msgstr "Paramètres par défaut pour les objets"
 
-#: C/glabels.xml:1735(para)
-msgid "round"
-msgstr "round"
+#: C/customize.page:80(title) C/createnew.page:39(title)
+msgid "Text"
+msgstr "Texte"
 
-#: C/glabels.xml:1737(para)
+#: C/customize.page:81(p)
 msgid ""
-"Radius of corners. For items with square edges (business cards), the radius "
-"should be 0."
+"Use these controls to set the default properties of new text objects. These "
+"properties are:"
 msgstr ""
-"Rayon des angles arrondis. Pour les étiquettes ou cartes à angles droits (cartes de "
-"visite), la valeur du rayon doit être 0."
+"Utilisez ces contrôles pour définir les paramètres par défaut des nouveaux "
+"objets texte. Ces propriétés sont :"
 
-#: C/glabels.xml:1742(para)
-msgid "x_waste"
-msgstr "x_waste"
+#: C/customize.page:85(gui)
+msgid "Font"
+msgstr "Police"
 
-#: C/glabels.xml:1744(para)
+#: C/customize.page:86(p)
 msgid ""
-"Amount of horizontal waste (over-print) to allow. This is useful for "
-"minimizing alignment problems when using non-white backgrounds (e.g. images)."
+"These controls are used to select font family and font size, and whether the "
+"font should bold or in italics."
 msgstr ""
-"Quantité d'espace horizontal perdu acceptable (sur-impression). "
-"C'est utile pour réduire les problèmes d'alignement, notamment avec "
-"l'utilisation de fonds colorés (par ex. des images)."
+"Permet de sélectionner la famille de police et sa taille, et si elle doit "
+"être en gras ou en italique."
 
-#: C/glabels.xml:1750(para)
-msgid "y_waste"
-msgstr "y_waste"
+#: C/customize.page:90(gui) C/customize.page:110(gui)
+#: C/customize.page:122(gui)
+msgid "Color"
+msgstr "Couleur"
+
+#: C/customize.page:91(p)
+msgid "This control selects the default text color."
+msgstr "Définit la couleur par défaut du texte."
+
+#: C/customize.page:94(gui)
+msgid "Alignment"
+msgstr "Alignement"
 
-#: C/glabels.xml:1752(para)
+#: C/customize.page:95(p)
 msgid ""
-"Amount of vertical waste (over-print) to allow. This is useful for "
-"minimizing alignment problems when using non-white backgrounds (e.g. images)."
+"These controls are used to select the default text alignment (left, center "
+"or right)."
 msgstr ""
-"Quantité d'espace vertical perdu acceptable (sur-impression). "
-"C'est utile pour réduire les problèmes d'alignement, notamment avec "
-"l'utilisation de fonds colorés (par ex. des images)."
-
-#: C/glabels.xml:1763(title)
-msgid "Label-rectangle Parameters"
-msgstr "Paramètres de l'étiquette rectangle"
+"Définit l'alignement par défaut du texte : à gauche, centré ou à droite."
 
-#: C/glabels.xml:1777(title)
-msgid "Label-round Node"
-msgstr "Nœud Label-round"
+#: C/customize.page:101(title) C/createnew.page:56(title)
+msgid "Line"
+msgstr "Ligne"
 
-#: C/glabels.xml:1779(para)
+#: C/customize.page:102(p)
 msgid ""
-"A <emphasis>Label-round</emphasis> node describes the dimensions of a simple "
-"round label (not a CD)."
+"Use these controls to set the default properties of lines and outlines of "
+"new objects. These properties are:"
 msgstr ""
-"Un nœud <emphasis>Label-round</emphasis> décrit les dimensions d'une "
-"étiquette ronde pleine (pas pour CD)."
-
-#: C/glabels.xml:1804(para) C/glabels.xml:1849(para) C/glabels.xml:2015(para)
-msgid "radius"
-msgstr "radius"
+"Utilisez ces contrôles pour définir les propriétés par défaut des lignes et "
+"bordures de nouveaux objets. Ces propriétés sont :"
 
-#: C/glabels.xml:1805(para)
-msgid "Radius (1/2 diameter) of label"
-msgstr "Rayon (la moitié du diamètre) d'une étiquette ronde"
+#: C/customize.page:106(gui)
+msgid "Width"
+msgstr "Épaisseur"
 
-#: C/glabels.xml:1808(para) C/glabels.xml:1871(para)
-msgid "waste"
-msgstr "waste"
+#: C/customize.page:107(p)
+msgid "This control selects the default line width."
+msgstr "Définit l'épaisseur par défaut des lignes."
 
-#: C/glabels.xml:1810(para) C/glabels.xml:1873(para)
-msgid ""
-"Amount of waste (over-print) to allow. This is useful for minimizing "
-"alignment problems when using non-white backgrounds (e.g. images)."
-msgstr ""
-"Quantité d'espace perdu acceptable (sur-impression). C'est "
-"utile pour réduire les problèmes d'alignement, notamment avec l'utilisation "
-"de fonds colorés (par ex. des images)."
+#: C/customize.page:111(p)
+msgid "This control selects the default line color."
+msgstr "Définit la couleur par défaut des lignes."
 
-#: C/glabels.xml:1822(title)
-msgid "Label-cd Node"
-msgstr "Nœud Label-cd"
+#: C/customize.page:117(title)
+msgid "Fill"
+msgstr "Remplissage"
 
-#: C/glabels.xml:1824(para)
+#: C/customize.page:118(p)
 msgid ""
-"A <emphasis>Label-cd</emphasis> node describes the dimensions of a CD, DVD, "
-"or business card CD."
+"Use this control to set the default fill property of new objects. This "
+"property is:"
 msgstr ""
-"Un nœud <emphasis>Label-cd</emphasis> décrit les dimensions d'une étiquette "
-"de CD, de DVD ou d'une carte de visite dans ce format."
+"Utilisez ce contrôle pour définir la couleur de remplissage par défaut des "
+"nouveaux objets. Cette propriété est :"
 
-#: C/glabels.xml:1850(para)
-msgid "Outer radius of label"
-msgstr "Rayon extérieur de l'étiquette"
+#: C/customize.page:123(p)
+msgid "This control selects the default fill color."
+msgstr "Définit la couleur par défaut des remplissages."
 
-#: C/glabels.xml:1853(para)
-msgid "hole"
-msgstr "hole"
+#: C/createnew.page:9(desc)
+msgid "Create new objects within your document."
+msgstr "Comment créer de nouveaux objets dans un document."
 
-#: C/glabels.xml:1854(para)
-msgid "Radius of concentric hole"
-msgstr "Rayon du trou central"
+#: C/createnew.page:25(title)
+msgid "To create new objects"
+msgstr "Création de nouveaux objets"
 
-#: C/glabels.xml:1859(para)
+#: C/createnew.page:27(p)
 msgid ""
-"If present, the label is clipped to the given width. (Useful for \"business "
-"card CDs\")."
+"Objects are created by choosing the appropriate selection under the "
+"<guiseq><gui>Objects</gui><gui>Create Object</gui></guiseq> submenu or the "
+"<gui>Drawing Toolbar</gui>. This will place the display area into object "
+"creation mode as indicated by its cursor. To return to the default object "
+"selection mode without creating an object, choose <guiseq><gui>Objects</"
+"gui><gui>Select Mode</gui></guiseq>. This will return the display area's "
+"cursor to the default selection arrow."
 msgstr ""
-"Si disponible, l'étiquette est bloquée à la largeur donnée (utile pour des "
-"cartes de visite au format CD)."
+"Vous pouvez créer des objets en choisissant la fonction appropriée dans le "
+"sous-menu <guiseq><gui>Objets</gui><gui>Créer un objet</gui></guiseq> ou en "
+"cliquant sur l'icône correspondante de la barre d'outils <gui>Dessin</gui>. "
+"La zone d'affichage est alors mise en mode « création d'objet », mode indiqué "
+"par le changement d'aspect du pointeur de souris. Pour revenir au mode "
+"« sélection » par défaut sans création d'objet, choisissez "
+"<guiseq><gui>Objets</gui><gui>Mode sélection</gui></guiseq>. Le pointeur de "
+"souris reprend alors sa forme standard (flèche de sélection) dans la fenêtre "
+"active."
+
+#: C/createnew.page:35(p)
+msgid "The following describes the object creation mode for each object type:"
+msgstr ""
+"Voici la description du mode création d'objet pour chaque type d'objet :"
 
-#: C/glabels.xml:1866(para)
+#: C/createnew.page:40(p)
 msgid ""
-"If present, the label is clipped to the given height. (Useful for \"business "
-"card CDs\")."
+"Click the desired location of the upper left corner of the text object. New "
+"text objects are initialized with the string \"Text.\" To change this text, "
+"or other properties, see <link xref=\"editprop\"/>."
 msgstr ""
-"Si disponible, l'étiquette est bloquée à la hauteur donnée (utile pour des "
-"cartes de visite au format CD)."
+"Cliquez à l'emplacement souhaité pour le coin supérieur gauche de l'objet "
+"texte. Les nouveaux objets texte sont initialisés avec la chaîne « Texte ». "
+"Pour modifier cet intitulé ou ses autres propriétés, consultez la section "
+"<link xref=\"editprop\"/>."
 
-#: C/glabels.xml:1884(title)
-msgid "CD Label Parameters"
-msgstr "Paramètres de l'étiquette CD"
-
-#: C/glabels.xml:1898(title)
-msgid "Markup-margin Node"
-msgstr "Nœud Markup-margin"
+#: C/createnew.page:47(title)
+msgid "Box"
+msgstr "Boîte"
 
-#: C/glabels.xml:1900(para)
+#: C/createnew.page:48(p)
 msgid ""
-"A <emphasis>Markup-margin</emphasis> describes a margin along all edges of a "
-"label."
+"Click the desired location of the upper left corner of the box object and "
+"drag to the desired location of the lower right corner. If you simply click "
+"in a single location, a square box will be created. To change properties of "
+"the box object, see <link xref=\"editprop\"/>."
 msgstr ""
-"Un nœud <emphasis>Markup-margin</emphasis> détermine une marge tout autour "
-"d'une étiquette."
+"Cliquez à l'emplacement souhaité pour le coin supérieur gauche de l'objet "
+"boîte, et faites glisser le pointeur jusqu'à l'emplacement désiré pour le "
+"coin inférieur droit. Un simple clic quelque part fait apparaître une boîte "
+"carrée. Pour modifier les propriétés d'un objet boîte, consultez la section "
+"<link xref=\"editprop\"/>."
 
-#: C/glabels.xml:1921(para)
+#: C/createnew.page:57(p)
 msgid ""
-"Size of the margin. I.e. the distance of the margin line from the edge of "
-"the card/label."
+"Click the desired location of one end of the line object and drag to the "
+"desired location of the other end. If you simply click in a single location, "
+"a diagonal line will be created. To change properties of the line object, "
+"see <link xref=\"editprop\"/>."
 msgstr ""
-"Taille de la marge, c'est-à-dire la distance de la ligne de marge jusqu'au bord de "
-"l'étiquette/carte."
-
-#: C/glabels.xml:1932(title)
-msgid "Markup-line Node"
-msgstr "Nœud Markup-line"
-
-#: C/glabels.xml:1934(para)
-msgid "A <emphasis>Markup-line</emphasis> describes a markup line."
-msgstr "Un nœud<emphasis>Markup-line</emphasis> décrit un traçage de ligne."
-
-#: C/glabels.xml:1952(para) C/glabels.xml:2046(para)
-msgid "x1"
-msgstr "x1"
-
-#: C/glabels.xml:1954(para)
-msgid "x coordinate of 1st endpoint of the line segment."
-msgstr "Coordonnée x de la 1ère extrémité du segment de ligne."
-
-#: C/glabels.xml:1958(para) C/glabels.xml:2052(para)
-msgid "y1"
-msgstr "y1"
-
-#: C/glabels.xml:1960(para)
-msgid "y coordinate of 1st endpoint of the line segment."
-msgstr "Coordonnée y de la 1ère extrémité du segment de ligne."
-
-#: C/glabels.xml:1964(para)
-msgid "x2"
-msgstr "x2"
-
-#: C/glabels.xml:1966(para)
-msgid "x coordinate of 2nd endpoint of the line segment."
-msgstr "Coordonnée x de la 2ème extrémité du segment de ligne."
-
-#: C/glabels.xml:1970(para)
-msgid "y2"
-msgstr "y2"
-
-#: C/glabels.xml:1972(para)
-msgid "y coordinate of 2nd endpoint of the line segment."
-msgstr "Coordonnée y de la 2ème extrémité du segment de ligne."
-
-#: C/glabels.xml:1982(title)
-msgid "Markup-circle Node"
-msgstr "Nœud Markup-circle"
-
-#: C/glabels.xml:1984(para)
-msgid "A <emphasis>Markup-circle</emphasis> describes a markup circle."
-msgstr "Un nœud <emphasis>Markup-circle</emphasis> décrit un traçage de cercle."
-
-#: C/glabels.xml:2003(para) C/glabels.xml:2119(para)
-msgid "x0"
-msgstr "x0"
-
-#: C/glabels.xml:2005(para)
-msgid "x coordinate of circle origin (center)."
-msgstr "Coordonnée x de l'origine du cercle (son centre)."
+"Cliquez à l'emplacement souhaité pour l'origine de la ligne et faites "
+"glisser le pointeur jusqu'à l'emplacement souhaité pour l'extrémité. Un "
+"simple clic quelque part génère une ligne diagonale. Pour modifier les "
+"propriétés d'une ligne, consultez la section <link xref=\"editprop\"/>."
 
-#: C/glabels.xml:2009(para) C/glabels.xml:2126(para)
-msgid "y0"
-msgstr "y0"
-
-#: C/glabels.xml:2011(para)
-msgid "y coordinate of circle origin (center)."
-msgstr "Coordonnée y de l'origine du cercle (son centre)."
-
-#: C/glabels.xml:2016(para)
-msgid "Radius of circle."
-msgstr "Rayon du cercle."
-
-#: C/glabels.xml:2025(title)
-msgid "Markup-rect Node"
-msgstr "Nœud Markup-rect"
+#: C/createnew.page:65(title)
+msgid "Ellipse"
+msgstr "Ellipse"
 
-#: C/glabels.xml:2027(para)
-msgid "A <emphasis>Markup-rect</emphasis> describes a markup rectangle."
+#: C/createnew.page:66(p)
+msgid ""
+"Click the desired location of the upper left corner of the ellipse object "
+"and drag to the desired location of the lower right corner. If you simply "
+"click in a single location, a circle will be created. To change properties "
+"of the ellipse object, see <link xref=\"editprop\"/>."
 msgstr ""
-"Un nœud <emphasis>Markup-rect</emphasis> décrit un traçage de rectangle."
+"Cliquez à l'emplacement souhaité pour le coin supérieur gauche du rectangle "
+"exinscrit de l'objet ellipse et faites glisser le pointeur de souris jusqu'à "
+"l'emplacement désiré pour le coin inférieur droit. Un simple clic quelque "
+"part génère un cercle. Pour modifier les propriétés d'une ellipse, consultez "
+"la section <link xref=\"editprop\"/>."
 
-#: C/glabels.xml:2048(para)
-msgid "x coordinate of upper left corner of rectangle."
-msgstr "Coordonnée x du coin supérieur gauche du rectangle."
+#: C/createnew.page:74(title)
+msgid "Image"
+msgstr "Image"
 
-#: C/glabels.xml:2054(para)
-msgid "y coordinate of upper left corner of rectangle."
-msgstr "Coordonnée y du coin supérieur gauche du rectangle."
+#: C/createnew.page:75(p)
+msgid ""
+"Click the desired location of the upper left corner of the image object and "
+"drag to the desired location of the lower right corner. If you simply click "
+"in a single location, a square will be created. New image objects are "
+"initialized with a simple checkerboard image. To change this image, or other "
+"properties of the image object, see <link xref=\"editprop\"/>."
+msgstr ""
+"Cliquez à l'emplacement souhaité pour le coin supérieur gauche de l'objet "
+"image et faites glisser le pointeur jusqu'à l'emplacement désiré pour le "
+"coin inférieur droit. Un simple clic quelque part génère un emplacement "
+"carré. Les nouveaux objets image sont initialisés d'une simple image de "
+"damier. Pour modifier cette image ou ses propriétés, consultez la section "
+"<link xref=\"editprop\"/>."
 
-#: C/glabels.xml:2058(para)
-msgid "w"
-msgstr "w"
+#: C/createnew.page:85(title)
+msgid "Barcode"
+msgstr "Code-barre"
 
-#: C/glabels.xml:2060(para)
-msgid "Width of rectangle."
-msgstr "Largeur du rectangle."
+#: C/createnew.page:86(p)
+msgid ""
+"Click the desired location of the upper left corner of the barcode object. "
+"New barcode objects are initialized to a POSTNET barcode with representative "
+"data. To change data and properties of the barcode object, see <link xref="
+"\"editprop\"/>."
+msgstr ""
+"Cliquez à l'emplacement souhaité pour le coin supérieur gauche de l'objet "
+"code-barre. Les nouveaux objets code-barre sont initialisés avec des données "
+"valides de style POSTNET. Pour modifier ces données et leurs propriétés, "
+"consultez la section <link xref=\"editprop\"/>."
 
-#: C/glabels.xml:2064(para)
-msgid "h"
-msgstr "h"
+#: C/basicusage.page:9(desc)
+msgid "Handling files and quit the application."
+msgstr "Comment gérer les fichiers et quitter l'application."
 
-#: C/glabels.xml:2066(para)
-msgid "Height of rectangle."
-msgstr "Hauteur du rectangle."
+#: C/basicusage.page:25(title)
+msgid "Basic usage"
+msgstr "Utilisation élémentaire"
 
-#: C/glabels.xml:2070(para)
-msgid "r"
-msgstr "r"
+#: C/basicusage.page:28(title)
+msgid "To open a file"
+msgstr "Ouverture d'un fichier"
 
-#: C/glabels.xml:2071(para)
-msgid "Radius of rounded corners of rectangle."
-msgstr "Rayon des coins arrondis du rectangle."
+#: C/basicusage.page:30(p)
+msgid ""
+"To open a file, choose <guiseq><gui>File</gui><gui>Open</gui></guiseq> to "
+"display the <gui>Open File</gui> dialog. Select the file that you want to "
+"open, then click <gui>OK</gui>. The file is displayed in the display area of "
+"the <app>gLabels</app> window."
+msgstr ""
+"Pour ouvrir un fichier, choisissez <guiseq><gui>Fichier</gui><gui>Ouvrir</"
+"gui></guiseq> pour afficher la boîte de dialogue <gui>Ouvrir un fichier</"
+"gui>. Choisissez le fichier à ouvrir, puis cliquez sur <gui>Valider</gui>. "
+"Le fichier apparaît dans la zone d'affichage de la fenêtre de <app>gLabels</"
+"app>."
 
-#: C/glabels.xml:2080(title)
-msgid "Layout Node"
-msgstr "Nœud Layout"
+#: C/basicusage.page:37(p)
+msgid ""
+"You can also open multiple files in <app>gLabels</app>. The application "
+"creates a separate application window for each open file."
+msgstr ""
+"Vous pouvez aussi ouvrir plusieurs fichiers avec <app>gLabels</app>. "
+"L'application crée une fenêtre séparée pour chaque fichier ouvert."
 
-#: C/glabels.xml:2082(para)
+#: C/basicusage.page:41(p)
 msgid ""
-"A label node may contain multiple <emphasis>Layout</emphasis> children. If "
-"labels are arranged in a simple grid pattern, only one layout is needed. "
-"However, if labels are arranged in multiple grids, such as a running bond "
-"pattern, multiple <emphasis>layout</emphasis> tags can be used. Note: a "
-"single label can always be treated as a grid of one."
+"The application records the paths and filenames of the most recent files "
+"that you have edited and displays the files as menu items on the "
+"<guiseq><gui>File</gui><gui>Recent Files</gui></guiseq> menu."
 msgstr ""
-"Un nœud étiquette (Label-...) peut contenir plusieurs nœuds enfants "
-"<emphasis>Layout</emphasis> (disposition). Si les étiquettes sont placées "
-"dans une grille simple, une seule disposition suffit. Si les étiquettes sont placées dans plusieurs "
-"grilles différentes, comme pour imprimer des échantillons par exemple, "
-"plusieurs dispositions seront nécessaires. Note : une étiquette unique peut "
-"toujours être considérée comme une grille à un seul élément."
+"L'application enregistre les chemins et les noms des fichiers récemment "
+"modifiés et les affiche en tant qu'éléments de menu dans "
+"<guiseq><gui>Fichier</gui><gui>Fichiers récents</gui></guiseq>."
 
-#: C/glabels.xml:2105(para)
-msgid "nx"
-msgstr "nx"
+#: C/basicusage.page:48(title)
+msgid "To close a file"
+msgstr "Fermeture d'un fichier"
 
-#: C/glabels.xml:2107(para)
-msgid "Number of labels/cards across in the grid (horizontal)"
-msgstr "Nombre d'étiquettes/cartes dans la grille (sur le plan horizontal)."
+#: C/basicusage.page:50(p)
+msgid ""
+"To close the current document, choose <guiseq><gui>File</gui><gui>Close</"
+"gui></guiseq> to close the application window. If the current document is "
+"modified, a confirmation dialog will be presented, allowing you to save the "
+"document or cancel the command. If the window being closed is the only open "
+"window, <app>gLabels</app> will exit."
+msgstr ""
+"Pour fermer le document en cours, choisissez <guiseq><gui>Fichier</"
+"gui><gui>Fermer</gui></guiseq>. Si le document a été modifié, vous devez "
+"confirmer dans une boîte de dialogue si vous souhaitez enregistrer les "
+"modifications avant de quitter ou si vous souhaitez annuler la commande. "
+"S'il n'y a qu'une seule fenêtre active, <app>gLabels</app> se ferme."
 
-#: C/glabels.xml:2112(para)
-msgid "ny"
-msgstr "ny"
+#: C/basicusage.page:60(title)
+msgid "To save a file"
+msgstr "Enregistrement d'un fichier"
 
-#: C/glabels.xml:2114(para)
-msgid "Number of labels/cards up and down in the grid (vertical)"
-msgstr "Nombre d'étiquettes/cartes dans la grille (sur le plan vertical)."
+#: C/basicusage.page:62(p)
+msgid "You can save files in the following ways:"
+msgstr "Vous pouvez enregistrer vos fichiers de différentes façons :"
 
-#: C/glabels.xml:2121(para)
+#: C/basicusage.page:66(p)
 msgid ""
-"Distance from left edge of sheet to the left edge of the left column of "
-"cards/labels in the layout."
+"To save changes to an existing file, choose <guiseq><gui>File</"
+"gui><gui>Save</gui></guiseq>."
 msgstr ""
-"Distance entre le bord gauche de la page et le bord gauche de la première colonne "
-"d'étiquettes/cartes dans la disposition."
+"Pour enregistrer les modifications d'un fichier existant, choisissez "
+"<guiseq><gui>Fichier</gui><gui>Enregistrer</gui></guiseq>."
 
-#: C/glabels.xml:2128(para)
+#: C/basicusage.page:73(p)
 msgid ""
-"Distance from the top edge of sheet to the top edge of the top row of labels/"
-"cards in the layout."
+"To save a new file or to save an existing file under a new filename, choose "
+"<guiseq><gui>File</gui><gui>Save As</gui></guiseq>. Enter a name for the "
+"file in the <gui>Save As</gui> dialog box, then click <gui>OK</gui>."
 msgstr ""
-"Distance entre le bord supérieur de la page et le bord supérieur de la "
-"première rangée d'étiquettes/cartes dans la disposition."
-
-#: C/glabels.xml:2133(para)
-msgid "dx"
-msgstr "dx"
-
-#: C/glabels.xml:2134(para)
-msgid "Horizontal pitch of grid."
-msgstr "Pas horizontal de la grille."
+"Pour enregistrer un nouveau fichier ou changer le nom d'un fichier existant, "
+"choisissez <guiseq><gui>Fichier</gui><gui>Enregistrer sous...</gui></"
+"guiseq>. Saisissez un nom de fichier dans la boîte de dialogue "
+"<gui>Enregistrer sous</gui> et cliquez sur <gui>Valider</gui>."
 
-#: C/glabels.xml:2137(para)
-msgid "dy"
-msgstr "dy"
-
-#: C/glabels.xml:2138(para)
-msgid "Vertical pitch of grid."
-msgstr "Pas vertical de la grille."
-
-#: C/glabels.xml:2146(title)
-msgid "Layout Parameters"
-msgstr "Paramètres de disposition"
+#: C/basicusage.page:84(title)
+msgid "To quit <app>gLabels</app>"
+msgstr "Arrêt de <app>gLabels</app>"
 
-#: C/glabels.xml:2160(title)
-msgid "Alias Node"
-msgstr "Nœud Alias"
-
-#: C/glabels.xml:2162(para)
+#: C/basicusage.page:86(p)
 msgid ""
-"An <emphasis>Alias</emphasis> node provides the name of a product with the "
-"same size and layout characteristics as the parent template."
+"To quit <app>gLabels</app>, choose <guiseq><gui>File</gui><gui>Quit</gui></"
+"guiseq>. This is equivalent to closing all open windows. See <link xref="
+"\"basicusage#closefile\"/>."
 msgstr ""
-"Un nœud <emphasis>Alias</emphasis> donne le nom d'un produit ayant les mêmes "
-"caractéristiques de taille et de disposition que le patron parent."
-
-#: C/glabels.xml:2184(para)
-msgid "The brand or manufacturer of the equivalent product."
-msgstr "La marque ou le fabricant du produit équivalent."
+"Pour quitter <app>gLabels</app>, choisissez <guiseq><gui>Fichier</"
+"gui><gui>Quitter</gui></guiseq>. Cette commande équivaut à fermer toutes les "
+"fenêtres ouvertes. Consultez la section <link xref=\"basicusage#closefile\"/"
+">."
 
-#: C/glabels.xml:2190(para)
-msgid "The part number or name of the equivalent product."
-msgstr "Le numéro de série ou le nom du produit équivalent."
+#: C/about.page:9(desc)
+msgid "Information about <app>gLabels</app>."
+msgstr "Informations à propos de <app>gLabels</app>."
 
-#: C/glabels.xml:2226(title)
-msgid "About <application>gLabels</application>"
-msgstr "À propos de <application>gLabels</application>"
+#: C/about.page:25(title)
+msgid "About <app>gLabels</app>"
+msgstr "À propos de <app>gLabels</app>"
 
-#: C/glabels.xml:2227(para)
+#: C/about.page:27(p)
 msgid ""
-"<application>gLabels</application> was written by Jim Evins "
-"(<email>evins@snaught.com</email>). To find more information about "
-"<application>gLabels</application>, please visit the <ulink url=\"http://"
-"glabels.sourceforge.net\" type=\"http\">gLabels Web page</ulink>."
+"<app>gLabels</app> was written by <link href=\"mailto:evins@snaught.com"
+"\">Jim Evins</link>. To find more information about <app>gLabels</app>, "
+"please visit the <link href=\"http://glabels.org\" type=\"http"
+"\"><app>gLabels</app> Web page</link>."
 msgstr ""
-"<application>gLabels</application> a été écrit par Jim Evins "
-"(<email>evins@snaught.com</email>). Pour obtenir de plus amples informations "
-"à propos de <application>gLabels</application>, visitez le <ulink "
-"url=\"http://glabels.sourceforge.net\" type=\"http\">site Web de gLabels</"
-"ulink>."
+"<app>gLabels</app> a été écrit par <link href=\"mailto:evins@snaught.com"
+"\">Jim Evins</link>. Pour obtenir de plus amples informations à propos de "
+"<app>gLabels</app>, visitez le <link href=\"http://glabels.org\" type=\"http"
+"\">site Web de <app>gLabels</app></link>."
 
-#: C/glabels.xml:2232(para)
+#: C/about.page:31(p)
 msgid ""
 "To report a bug or make a suggestion regarding this application or this "
-"manual, follow the directions at the <ulink url=\"http://glabels.sourceforge."
-"net/contact/\" type=\"http\"><application>gLabels</application> Contact "
-"Page</ulink>."
+"manual, follow the directions at the <link href=\"http://glabels.org/contact/"
+"\" type=\"http\"><app>gLabels</app> Contact Page</link>."
 msgstr ""
 "Pour signaler une anomalie ou émettre une suggestion à propos de cette "
-"application ou ce manuel, consultez les indications de la <ulink url=\"http://glabels.sourceforge."
-"net/contact/\" type=\"http\">page de contact de <application>gLabels</application></ulink>."
+"application ou ce manuel, consultez les indications de la <link href="
+"\"http://glabels.org/contact/\" type=\"http\">page de contact de "
+"<app>gLabels</app></link>."
 
-#: C/glabels.xml:2238(para)
+#: C/about.page:37(p)
 msgid ""
 "This program is distributed under the terms of the GNU General Public "
-"license as published by the Free Software Foundation; either version 2 of "
+"license as published by the Free Software Foundation; either version 3 of "
 "the License, or (at your option) any later version. A copy of this license "
-"can be found at this <ulink url=\"ghelp:gpl\" type=\"help\">link</ulink>, or "
+"can be found at this <link href=\"ghelp:gpl\" type=\"help\">link</link>, or "
 "in the file COPYING included with the source code of this program."
 msgstr ""
-"Ce logiciel est distribué selon les termes de la Licence "
-"Publique Générale GNU telle que publiée par la Free Software Foundation ; soit la "
-"version 2 de cette licence, soit (à votre convenance) une quelconque version "
-"ultérieure. Une copie de cette licence est disponible à <ulink url=\"ghelp:"
-"gpl\" type=\"help\">ce lien</ulink> ou dans le fichier COPYING inclus dans "
-"le code source de ce logiciel."
+"Ce logiciel est distribué selon les termes de la Licence Publique Générale "
+"GNU telle que publiée par la Free Software Foundation ; soit la version 3 de "
+"cette licence, soit (à votre convenance) une quelconque version ultérieure. "
+"Une copie de cette licence est disponible en suivant <link href=\"ghelp:gpl"
+"\" type=\"help\">ce lien</link> ou dans le fichier COPYING inclus dans le "
+"code source de ce logiciel."
 
 #. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2
-#: C/glabels.xml:0(None)
+#: C/index.page:0(None)
 msgid "translator-credits"
 msgstr ""
 "Alain Lojewski <allomervans@gmail.com>, 2009\n"
-"Claude Paroz <claude@2xlibre.net>, 2009"
+"Claude Paroz <claude@2xlibre.net>, 2009\n"
+"Géode <Geodebay@gmail.com>, 2010\n"
+"Bruno Brouard <annoa.b@gmail.com>, 2011."
diff --git a/help/fr/glabels.xml b/help/fr/glabels.xml
deleted file mode 100644 (file)
index 65b4989..0000000
+++ /dev/null
@@ -1,1776 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
-<!ENTITY legal SYSTEM "legal.xml">
-<!ENTITY appversion "2.2.6">
-<!ENTITY manrevision "2.2.6">
-<!ENTITY date "December 2007">
-<!ENTITY app "<application>gLabels</application>">
-<!-- Information about the entities
-       The legal.xml file contains legal information, there is no need to edit the file. 
-       Use the appversion entity to specify the version of the application.
-       Use the manrevision entity to specify the revision number of this manual.
-       Use the date entity to specify the release date of this manual.
-       Use the app entity to specify the name of the application. -->]>
-<!-- 
-      (Do not remove this comment block.)
-  Maintained by the GNOME Documentation Project
-  http://developer.gnome.org/projects/gdp
-  Template version: 2.0 beta
-  Template last modified Apr 11, 2002
--->
-<!-- =============Document Header ============================= -->
-<article id="index" lang="fr">
-<!-- please do not change the id; for translations, change lang to -->
-<!-- appropriate code -->
-  <articleinfo> 
-    <title>Manuel <application>gLabels</application> v2.2.6</title>       
-       <abstract role="description">
-       <para>Manuel d'utilisation de <application>gLabels</application>, utilitaire de création d'étiquettes et de cartes de visite</para>
-    </abstract>
-    <copyright> 
-      <year>2003-2009</year> 
-      <holder>Jim Evins</holder> 
-    </copyright><copyright><year>2009</year><holder>Alain Lojewski (allomervans@gmail.com)</holder></copyright><copyright><year>2009</year><holder>Claude Paroz (claude@2xlibre.net)</holder></copyright>
-       <publisher> 
-               <publishername>Jim Evins</publishername> 
-       </publisher> 
-
-     <legalnotice id="legalnotice">
-       <para>Permission vous est donnée de copier, distribuer et/ou modifier ce document selon les termes de la licence de documentation libre GNU, Version 1.1 ou ultérieure publiée par la Free Software Foundation sans section inaltérable, sans texte de première page de couverture ni texte de dernière page de couverture. Vous trouverez un exemplaire de cette licence en suivant ce <ulink type="help" url="ghelp:fdl">lien</ulink> ou dans le fichier COPYING-DOCS fourni avec le présent manuel.</para>
-         <para>Ce manuel fait partie de la collection de manuels GNOME distribués selon les termes de la licence de documentation libre GNU. Si vous souhaitez distribuer ce manuel indépendamment de la collection, vous devez joindre un exemplaire de la licence au document, comme indiqué dans la section 6 de celle-ci.</para>
-
-       <para>La plupart des noms utilisés par les entreprises pour distinguer leurs produits et services sont des marques déposées. Lorsque ces noms apparaissent dans la documentation GNOME et que les membres du projet de Documentation GNOME sont informés de l'existence de ces marques déposées, soit ces noms entiers, soit leur première lettre est en majuscule.</para>
-
-       <para>LE PRÉSENT DOCUMENT ET SES VERSIONS MODIFIÉES SONT FOURNIS SELON LES TERMES DE LA LICENCE DE DOCUMENTATION LIBRE GNU SACHANT QUE : <orderedlist>
-               <listitem>
-                 <para>LE PRÉSENT DOCUMENT EST FOURNI « TEL QUEL », SANS AUCUNE GARANTIE, EXPRESSE OU IMPLICITE, Y COMPRIS, ET SANS LIMITATION, LES GARANTIES DE MARCHANDABILITÉ, D'ADÉQUATION À UN OBJECTIF PARTICULIER OU DE NON INFRACTION DU DOCUMENT OU DE SA VERSION MODIFIÉE. L'UTILISATEUR ASSUME TOUT RISQUE RELATIF À LA QUALITÉ, À LA PERTINENCE ET À LA PERFORMANCE DU DOCUMENT OU DE SA VERSION DE MISE À JOUR. SI LE DOCUMENT OU SA VERSION MODIFIÉE S'AVÉRAIT DÉFECTUEUSE, L'UTILISATEUR (ET NON LE RÉDACTEUR INITIAL, L'AUTEUR, NI TOUT AUTRE PARTICIPANT) ENDOSSERA LES COÛTS DE TOUTE INTERVENTION, RÉPARATION OU CORRECTION NÉCESSAIRE. CETTE DÉNÉGATION DE RESPONSABILITÉ CONSTITUE UNE PARTIE ESSENTIELLE DE CETTE LICENCE. AUCUNE UTILISATION DE CE DOCUMENT OU DE SA VERSION MODIFIÉE N'EST AUTORISÉE AUX TERMES DU PRÉSENT ACCORD, EXCEPTÉ SOUS CETTE DÉNÉGATION DE RESPONSABILITÉ ; </para>
-               </listitem>
-               <listitem>
-                 <para>EN AUCUNE CIRCONSTANCE ET SOUS AUCUNE INTERPRÉTATION DE LA LOI, QU'IL S'AGISSE D'UN DÉLIT CIVIL (Y COMPRIS LA NÉGLIGENCE), CONTRACTUEL OU AUTRE, L'AUTEUR, LE RÉDACTEUR INITIAL, TOUT PARTICIPANT OU TOUT DISTRIBUTEUR DE CE DOCUMENT OU DE SA VERSION MODIFIÉE, OU TOUT FOURNISSEUR DE L'UNE DE CES PARTIES NE POURRA ÊTRE TENU RESPONSABLE À L'ÉGARD DE QUICONQUE POUR TOUT DOMMAGE DIRECT, INDIRECT, PARTICULIER, OU ACCIDENTEL DE TOUT TYPE Y COMPRIS, SANS LIMITATION, LES DOMMAGES LIÉS À LA PERTE DE CLIENTÈLE, À UN ARRÊT DE TRAVAIL, À UNE DÉFAILLANCE OU UN MAUVAIS FONCTIONNEMENT INFORMATIQUE, OU À TOUT AUTRE DOMMAGE OU PERTE LIÉE À L'UTILISATION DU DOCUMENT ET DE SES VERSIONS MODIFIÉES, MÊME SI LADITE PARTIE A ÉTÉ INFORMÉE DE L'ÉVENTUALITÉ DE TELS DOMMAGES.</para>
-               </listitem>
-         </orderedlist></para>
-  </legalnotice>
-
-
-   <!-- This file  contains link to license for the documentation (GNU FDL), and 
-        other legal stuff such as "NO WARRANTY" statement. Please do not change 
-       any of this. -->
-
-    <authorgroup> 
-      <author role="maintainer"> 
-               <firstname>Jim</firstname> 
-               <surname>Evins</surname> 
-      </author> 
-      
-<!-- This is appropriate place for other contributors: translators,
-     maintainers,  etc. Commented out by default.
-     
-      <othercredit role="translator">
-               <firstname>Latin</firstname> 
-               <surname>Translator 1</surname> 
-               <affiliation> 
-                       <orgname>Latin Translation Team</orgname> 
-                       <address> <email>translator@gnome.org</email> </address> 
-               </affiliation>
-               <contrib>Latin translation</contrib>
-      </othercredit>
--->
-    </authorgroup>
-
-
-<!-- According to GNU FDL, revision history is mandatory if you are -->
-<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
-<!-- Remember to remove the &manrevision; entity from the revision entries other
--->
-<!-- than the current revision. -->
-<!-- The revision numbering system for GNOME manuals is as follows: -->
-<!-- * the revision number consists of two components -->
-<!-- * the first component of the revision number reflects the release version of the GNOME desktop. -->
-<!-- * the second component of the revision number is a decimal unit that is incremented with each revision of the manual. -->
-<!-- For example, if the GNOME desktop release is V2.x, the first version of the manual that -->
-<!-- is written in that desktop timeframe is V2.0, the second version of the manual is V2.1, etc. -->
-<!-- When the desktop release version changes to V3.x, the revision number of the manual changes -->
-<!-- to V3.0, and so on. -->  
-    <revhistory>
-      <revision> 
-               <revnumber>Manuel glabels v2.2.6</revnumber> 
-               <date>Octobre 2009</date> 
-               <revdescription> 
-                       <para role="author">Mario Blättermann <email>mariobl@gnome.org</email></para>
-                       <para role="publisher">Jim Evins</para>
-               </revdescription> 
-      </revision> 
-      <revision> 
-               <revnumber>Manuel glabels v2.2</revnumber> 
-               <date>Décembre 2007</date> 
-               <revdescription> 
-                       <para role="author">Jim Evins <email>evins@snaught.com</email></para>
-                       <para role="publisher">Jim Evins</para>
-               </revdescription> 
-      </revision> 
-    </revhistory> 
-
-    <releaseinfo>Ce manuel documente la version 2.2.6 de <application>gLabels</application>.</releaseinfo> 
-    <legalnotice> 
-      <title>Votre avis</title> 
-      <para>Pour signaler une anomalie ou émettre une suggestion concernant l'application <application>gLabels</application> ou ce manuel, procédez comme indiqué sur la <ulink url="http://glabels.sourceforge.net/contact/" type="http">Page de contact de <application>gLabels</application></ulink>.</para>
-<!-- Translators may also add here feedback address for translations -->
-    </legalnotice> 
-  </articleinfo> 
-
-  <indexterm zone="index"> 
-    <primary>glabels</primary> 
-  </indexterm> 
-  <indexterm zone="index"> 
-    <primary>glabels</primary> 
-  </indexterm>
-
-
-
-
-<!-- ============= Document Body ============================= -->
-<!-- ============= Introduction ============================== -->
-<!-- Use the Introduction section to give a brief overview of what
-     the application is and what it does. -->
-  <sect1 id="glabels-introduction"> 
-    <title>Introduction</title> 
-
-    <para>L'application <application>gLabels</application> est un petit utilitaire capable de créer des étiquettes et des cartes de visite sous l'environnement de bureau GNOME. Avec une simple imprimante laser ou à jet d'encre, il peut gérer une multitude de matrices standards que vous trouverez dans la plupart des magasins spécialisés.</para>
-
-  </sect1>
-
-
-
-
-<!-- =========== Getting Started ============================== -->
-<!-- Use the Getting Started section to describe the steps required
-     to start the application and to describe the user interface components
-     of the application. If there is other information that it is important
-     for readers to know before they start using the application, you should
-     also include this information here. 
-     If the information about how to get started is very short, you can 
-     include it in the Introduction and omit this section. -->
-
-  <sect1 id="glabels-getting-started"> 
-    <title>Premiers pas</title> 
-
-    <sect2 id="glabels-start">
-    <title>Démarrage de <application>gLabels</application></title>
-    <para>Vous pouvez lancer <application>gLabels</application> de deux façons :</para> 
-    <variablelist>
-       <varlistentry>
-               <term>Menu <guimenu>Applications</guimenu></term>
-               <listitem>
-               <para>Choisissez <menuchoice><guisubmenu>Bureautique</guisubmenu><guimenuitem>gLabels</guimenuitem></menuchoice>.</para>
-               </listitem>
-       </varlistentry>
-       <varlistentry>
-               <term>En ligne de commande</term>
-               <listitem>
-               <para>Saisissez <command>glabels</command>, puis appuyez sur <keycap>Entrée</keycap> :</para>
-               </listitem>
-       </varlistentry>
-    </variablelist>
-    </sect2>
-
-    <sect2 id="glabels-when-start">
-    <title>Au démarrage de <application>gLabels</application></title>
-    <para>Lorsque vous lancez <application>gLabels</application>, la fenêtre ci-dessous apparaît.</para>
-
-    <!-- ==== Figure ==== -->
-      <figure id="mainwindow-fig"> 
-       <title>Fenêtre de démarrage de <application>gLabels</application></title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/main-window-empty.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-    <!-- ==== End of Figure ==== -->
-
-    <!-- Include any descriptions of the GUI immediately after the screenshot of the main UI, -->
-    <!-- for example, the items on the menubar and on the toolbar. This section is optional. -->
-
-    <para>Contenu de la fenêtre <application>gLabels</application> :</para>
-      <variablelist>
-       <varlistentry>
-       <term>La barre des menus</term>
-       <listitem>
-           <para>Les options de cette barre de menus montrent toutes les commandes à votre disposition pour créer et éditer des étiquettes et cartes de visite avec <application>gLabels</application>.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Barre d'outils principale</term>
-       <listitem>
-           <para>La barre d'outils principale contient un sous-ensemble des commandes les plus utilisées des menus Fichier et Édition de la barre de menus.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Barre d'outils Dessin</term>
-       <listitem>
-           <para>La barre d'outils Dessin contient un choix de commandes pour la modification du document <application>gLabels</application> actif.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Zone d'affichage</term>
-       <listitem>
-           <para>La zone d'affichage est la principale interface de conception de <application>gLabels</application>.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Barre latérale Objet</term>
-       <listitem>
-           <para>La barre latérale Objet fournit une interface pour afficher et modifier toutes les propriétés d'un objet.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Barre d'outils Propriétés</term>
-       <listitem>
-           <para>La barre d'outils Propriétés met à disposition un choix d'outils pour modifier les propriétés de l'objet sélectionné, et pour définir les propriétés par défaut pour de nouveaux objets.</para>
-       </listitem>
-       </varlistentry>
-       <varlistentry>
-       <term>Barre d'état</term>
-       <listitem>
-           <para>La barre d'état affiche des informations sur l'activité actuelle de <application>gLabels</application>, ainsi que des informations contextuelles au sujet des éléments du menu.</para>
-       </listitem>
-       </varlistentry>
-       </variablelist>
-    </sect2>
-  </sect1>
-
-
-
-
-<!-- ================ Usage ================================ -->
-<!-- Use this section to describe how to use the application to perform the tasks for 
-  which the application is designed. -->
-  <sect1 id="glabels-usage"> 
-    <title>Utilisation</title> 
-
-<!-- ============= To create a new file ============================= -->
-    <sect2 id="glabels-open-new"> 
-      <title>Création d'une nouvelle étiquette ou d'une nouvelle carte de visite</title>
-
-      <para>Pour créer une nouvelle étiquette ou une nouvelle carte de visite, choisissez <menuchoice><guimenu>Fichier</guimenu><guimenuitem>Nouveau</guimenuitem></menuchoice> pour afficher la boîte de dialogue <guilabel>Nouvelle étiquette/carte</guilabel>. Sélectionnez le type de support et l'orientation, puis cliquez sur <guibutton>Valider</guibutton>. Un nouveau document apparaît dans la zone d'affichage de <application>gLabels</application>.</para>
-
-      <para>Si le type de votre support n'apparaît pas dans la liste, consultez <xref linkend="glabels-create-template"/></para>
-
-    </sect2>
-
-<!-- ============= To Open a File ============================= -->
-    <sect2 id="glabels-open-file"> 
-      <title>Ouverture d'un fichier</title>
-
-      <para>Pour ouvrir un fichier, choisissez <menuchoice><guimenu>Fichier</guimenu><guimenuitem>Ouvrir</guimenuitem></menuchoice> pour afficher la boîte de dialogue <guilabel>Ouvrir un fichier</guilabel>. Choisissez le fichier à ouvrir, puis cliquez sur <guibutton>Valider</guibutton>. Le fichier apparaît dans la zone d'affichage de la fenêtre de <application>gLabels</application>.</para>
-
-      <para>Vous pouvez aussi ouvrir plusieurs fichiers dans <application>gLabels</application>. L'application crée une fenêtre séparée pour chaque fichier ouvert.</para>
-
-      <para>Cet utilitaire enregistre les chemins et les noms des fichiers les plus récents, et les affiche dans le menu <menuchoice><guimenu>Fichier</guimenu><guisubmenu>Fichiers récents</guisubmenu></menuchoice>.</para>
-
-    </sect2>
-
-<!-- ============= To Open Multiple Files from the Command Line ========= -->
-    <sect2 id="glabels-run-from-cmd-line"> 
-      <title>Ouverture de plusieurs fichiers en ligne de commande</title>
-
-      <para>Vous pouvez ouvrir un ou plusieurs fichiers dans <application>gLabels</application> à partir d'un terminal. Pour ouvrir plusieurs fichiers, saisissez la commande suivante et appuyez sur <keycap>Entrée</keycap> :</para>
-
-      <para><command>glabels <replaceable>fichier1.glabels fichier2.glabels fichier3.glabels</replaceable></command></para>
-
-      <para>Au démarrage de l'application, les fichiers que vous avez choisis s'ouvrent dans des fenêtres séparées.</para>
-
-    </sect2>
-
-<!-- ============= To Save a File ========= -->
-    <sect2 id="glabels-save-file"> 
-      <title>Enregistrement d'un fichier</title>
-
-      <para>Vous pouvez enregistrer des fichiers de différentes façons :</para>
-
-      <itemizedlist> 
-       <listitem>
-
-         <para>Pour enregistrer les modifications d'un fichier existant, choisissez <menuchoice><guimenu>Fichier</guimenu><guimenuitem>Enregistrer</guimenuitem></menuchoice>.</para>
-
-       </listitem>
-       <listitem>
-
-         <para>Pour enregistrer un nouveau fichier ou changer le nom d'un fichier existant, choisissez <menuchoice><guimenu>Fichier</guimenu><guimenuitem>Enregistrer sous</guimenuitem></menuchoice>. Saisissez un nom de fichier dans la boîte de dialogue <guilabel>Enregistrer sous</guilabel> et cliquez sur <guibutton>Valider</guibutton>.</para>
-
-       </listitem>
-      </itemizedlist>
-
-    </sect2>
-
-<!-- ============= To Change Label Properties ========= -->
-    <sect2 id="glabels-label-properties"> 
-      <title>Modification des propriétés d'une étiquette</title>
-
-      <para>Pour changer le type de support ou l'orientation d'une étiquette, choisissez <menuchoice><guimenu>Fichier</guimenu><guimenuitem>Propriétés</guimenuitem></menuchoice> pour afficher la boîte de dialogue <guilabel>Propriétés de l'étiquette</guilabel>. Sélectionnez un type de support et l'orientation du document, puis cliquez sur <guibutton>Valider</guibutton>.</para>
-
-    </sect2>
-
-<!-- ============= To create a custom template ======================= -->
-    <sect2 id="glabels-create-template"> 
-      <title>Création d'un patron personnalisé</title>
-
-      <para>Pour créer un nouveau patron personnalisé, choisissez <menuchoice><guimenu>Fichier</guimenu><guimenuitem>Créateur de patrons...</guimenuitem></menuchoice> pour afficher la boîte de dialogue <guilabel>Créateur de patrons</guilabel>. L'assistant vous aidera à créer un patron compatible avec la plupart des modèles de supports du commerce.</para>
-
-      <para>Si vous préférez créer votre propre patron manuellement, reportez-vous à la section <xref linkend="glabels-manual-create-template"/></para>
-
-    </sect2>
-
-<!-- ============= To Close a File ========= -->
-    <sect2 id="glabels-close-file"> 
-      <title>Fermeture d'un fichier</title>
-
-      <para>Pour fermer le document en cours, choisissez <menuchoice><guimenu>Fichier</guimenu><guimenuitem>Fermer</guimenuitem></menuchoice>. Cela ferme la fenêtre active. Si le document a été modifié, vous devrez confirmer dans une boîte de dialogue si vous souhaitez enregistrer les modifications avant de quitter, ou si vous souhaitez annuler la commande. S'il n'y avait qu'une seule fenêtre active, <application>gLabels</application> se fermera.</para>
-
-    </sect2>
-
-<!-- ============= To Quit ========= -->
-    <sect2 id="glabels-quit"> 
-      <title>Fermeture de <application>gLabels</application></title>
-
-      <para>Pour quitter <application>gLabels</application>, choisissez <menuchoice><guimenu>Fichier</guimenu><guimenuitem>Quitter</guimenuitem></menuchoice>. Cette commande équivaut à fermer toutes les fenêtres ouvertes. Voir <xref linkend="glabels-close-file"/>.</para>
-
-    </sect2>
-
-<!-- ============= To Print Labels and Cards ========= -->
-    <sect2 id="glabels-print-file"> 
-      <title>Impression d'étiquettes ou de cartes</title>
-
-      <para>Pour imprimer des étiquettes ou des cartes, choisissez <menuchoice><guimenu>Fichier</guimenu><guimenuitem>Imprimer</guimenuitem></menuchoice> pour afficher la boîte de dialogue <guilabel>Imprimer</guilabel>. Choisissez les options d'impression et cliquez sur <guilabel>Imprimer</guilabel> pour démarrer l'impression. Si vous souhaitez simplement avoir un aperçu de ce qui sera imprimé, cliquez sur <guilabel>Aperçu avant impression</guilabel>.</para>
-
-      <para>La boîte de dialogue <guilabel>Imprimer</guilabel> vous permet de choisir les options d'impression suivantes :</para>
-               
-      <sect3 id="print-dialog-job">
-       <title>Onglet Étiquettes de la boîte de dialogue Imprimer</title>
-
-       <variablelist>
-
-         <varlistentry>
-            <term><guilabel>Contrôle d'impression (simple)</guilabel></term>
-           <listitem> 
-
-             <para>Pour des formats simples d'étiquettes ou de cartes (pas de fusion), la section <guilabel>étiquettes</guilabel> dispose des contrôles suivants.</para>
-
-             <!-- ==== Figure ==== -->
-             <figure id="print-copies-fig"> 
-               <title>Contrôles d'impression</title> 
-               <screenshot> 
-                 <mediaobject> 
-                   <imageobject><imagedata fileref="figures/print-copies.png" format="PNG"/> 
-                   </imageobject>
-                 </mediaobject> 
-               </screenshot> 
-             </figure>
-             <!-- ==== End of Figure ==== -->
-
-             <para>Le nombre de copies peut être indiqué en choisissant le nombre de pages pleines à imprimer ou un choix d'étiquettes spécifiques sur une seule page.</para>
-
-             <para>La prévisualisation en miniatures peut également être utilisée pour sélectionner graphiquement un assortiment d'étiquettes en cliquant sur la première étiquette et en faisant glisser la souris jusque sur la dernière.</para>
-
-           </listitem>
-         </varlistentry>
-
-         <varlistentry>
-            <term><guilabel>Contrôle d'impression (fusion)</guilabel></term>
-           <listitem> 
-
-             <para>Pour des étiquettes ou des cartes utilisant les possibilités de fusion (aussi connue sous le nom de « publipostage »), l'onglet <guilabel>Étiquettes</guilabel> propose les éléments de fusion suivants, à la place des contrôles de copie.</para>
-
-             <!-- ==== Figure ==== -->
-             <figure id="print-merge-fig"> 
-               <title>Contrôles de fusion pour l'impression d'un document</title> 
-               <screenshot> 
-                 <mediaobject> 
-                   <imageobject><imagedata fileref="figures/print-merge.png" format="PNG"/> 
-                   </imageobject>
-                 </mediaobject> 
-               </screenshot> 
-             </figure>
-             <!-- ==== End of Figure ==== -->
-
-             <para>Le nombre total d'étiquettes ou de cartes imprimées est le produit du nombre d'enregistrements dans la source de fusion par le nombre de copies sélectionnées. Lors de l'impression de plusieurs copies, celles-ci peuvent être groupées (toutes les copies d'un même enregistrement sont groupées) ou séparées (une copie de chaque enregistrement est imprimée avant la suivante).</para>
-
-             <para>L'impression peut commencer par n'importe quelle étiquette sur la première page. Cette option peut être choisie au moyen de la zone numérique <guilabel>Commencer par l'étiquette</guilabel>.</para>
-
-             <para>De même, vous pouvez sélectionner cette première étiquette graphiquement en cliquant sur l'aperçu en miniature.</para>
-
-           </listitem>
-         </varlistentry>
-
-         <varlistentry> <term><guilabel>Options</guilabel> </term> 
-           <listitem> 
-             <para>Vous pouvez aussi définir les options suivantes.</para>
-             <itemizedlist>
-               <listitem>
-                 <para><guilabel>Imprimer des bordures</guilabel></para>
-                 <para>Imprime le cadre des étiquettes. Cette option est utile pour des essais à blanc, pour tester l'alignement de l'imprimante.</para>
-               </listitem>
-               <listitem>
-                 <para><guilabel>Imprimer à l'envers</guilabel></para>
-                 <para>Imprime les étiquettes en miroir. Cette option est utile pour imprimer sur des supports transparents qui seront vus de l'extérieur (par ex. sur une vitre de voiture).</para>
-               </listitem>
-               <listitem>
-                 <para><guilabel>Imprimer les guides de coupe</guilabel></para>
-                 <para>Cette option imprime des repères tout autour d'une feuille blanche et qui serviront à la découpe après impression. Elle ne fonctionne pas bien avec tous les patrons.</para>
-               </listitem>
-             </itemizedlist>
-           </listitem>
-         </varlistentry>
-       </variablelist>
-      </sect3>
-               
-    </sect2>
-
-<!-- ============= To Create New Objects ========= -->
-    <sect2 id="glabels-new-objects"> 
-      <title>Création de nouveaux objets</title>
-
-      <para>Vous pouvez créer des objets en choisissant la fonction appropriée dans le sous-menu <menuchoice><guimenu>Objets</guimenu><guimenuitem>Créer un objet</guimenuitem></menuchoice>, ou dans la barre d'outils <guilabel>Dessin</guilabel>. Ceci mettra la zone d'affichage en mode création d'objet comme indiqué par son curseur. Pour revenir au mode par défaut sans création d'objet, choisissez <menuchoice><guimenu>Objets</guimenu><guimenuitem>Mode sélection</guimenuitem></menuchoice>. Ceci remettra le curseur standard (flèche de sélection) dans la fenêtre active.</para>
-
-      <para>Voici la description du mode création d'objet pour chaque type d'objet :</para>
-
-      <variablelist>
-
-       <varlistentry>
-         <term>Texte</term>
-         <listitem>
-           <para>Cliquez sur l'endroit désiré pour faire apparaître le coin supérieur gauche de l'objet texte. Les nouveaux objets texte contiennent initialement la chaîne « Texte ». Pour modifier ce texte ou ses autres propriétés, consultez <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Boîte</term>
-         <listitem>
-           <para>Cliquez sur l'endroit choisi pour le coin supérieur gauche de l'objet boîte, et faites glisser jusqu'à l'emplacement désiré du coin inférieur droit. Un simple clic quelque part fait apparaître une boîte carrée. Pour modifier les propriétés de l'objet boîte, consultez <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Ligne</term>
-         <listitem>
-           <para>Cliquez sur l'endroit désiré pour l'une des deux extrémités de la ligne et faites glisser jusqu'à l'autre extrémité voulue. Un simple clic quelque part génère une ligne diagonale. Pour modifier les propriétés de la ligne, consultez <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Ellipse</term>
-         <listitem>
-           <para>Cliquez sur l'endroit choisi pour le coin supérieur gauche de l'objet ellipse et faites glisser jusqu'à l'emplacement désiré du coin inférieur droit. Un simple clic quelque part génère un cercle. Pour modifier les propriétés de l'ellipse, consultez <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Image</term>
-         <listitem>
-           <para>Cliquez sur l'endroit choisi pour le coin supérieur gauche de l'objet image et faites glisser jusqu'à l'emplacement désiré du coin inférieur droit. Un simple clic quelque part génère un carré. Les nouveaux objets image contiennent initialement une simple image de damier. Pour modifier cette image ou ses propriétés, consultez <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Code-barre</term>
-         <listitem>
-           <para>Cliquez sur l'endroit choisi pour le coin supérieur gauche de l'objet code-barre. Les nouveaux objets code-barre sont initialisés avec des données valides de style POSTNET. Pour modifier ces données et leurs propriétés, consultez <xref linkend="glabels-object-properties"/>.</para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-
-
-    </sect2>
-
-<!-- ============= To Select Objects ========= -->
-    <sect2 id="glabels-select-objects"> 
-      <title>Sélection d'objets</title>
-
-      <para>Une condition pour effectuer des opérations sur des objets est la sélection d'objets individuels ou de groupe d'objets. La zone d'affichage doit être en mode sélection pour générer de nouvelles sélections, comme l'indique le curseur en forme de flèche. On passe en mode sélection d'objet par le menu <menuchoice><guimenu>Objets</guimenu><guimenuitem>Mode sélection</guimenuitem></menuchoice> ou par le bouton correspondant de la barre d'outils <guilabel>Dessin</guilabel>.</para>
-
-      <variablelist>
-
-       <varlistentry>
-         <term>Sélection d'un seul objet</term>
-         <listitem>
-           <para>Un seul objet peut être sélectionné en cliquant dessus dans la zone d'affichage. Il apparaît alors en surbrillance avec des poignées de redimensionnement.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Sélection d'objets groupés</term>
-         <listitem>
-           <para>Pour sélectionner plusieurs objets, commencez par cliquer sur l'un d'eux ; puis, en maintenant la touche <keycap>Ctrl</keycap> enfoncée, cliquez sur les autres. À tout moment, d'autres objets peuvent être rajoutés à la sélection de la même façon. Il est aussi possible de sélectionner tous les objets en même temps en choisissant <menuchoice><guimenu>Édition</guimenu><guimenuitem>Tout sélectionner</guimenuitem></menuchoice> dans le menu. Tous les objets groupés dans une même sélection apparaissent en surbrillance.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Sélection par zone</term>
-         <listitem>
-           <para>Plusieurs objets peuvent aussi être sélectionnés avec la souris. Il suffit de cliquer sur un endroit vide et de faire glisser la souris en entourant les objets choisis. En relâchant, tous les objets présents dans ce rectangle font partie de la sélection. Une sélection par zone peut servir à ajouter des objets à une sélection existante en maintenant la touche <keycap>Ctrl</keycap> enfoncée pendant l'opération.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>Désélection d'objets</term>
-         <listitem>
-           <para>Chaque objet peut être retiré d'une sélection existante en cliquant dessus tout en maintenant la touche <keycap>Ctrl</keycap> enfoncée. Une sélection entière peut être désactivée en choisissant <menuchoice><guimenu>Édition</guimenu><guimenuitem>Désélectionner tout</guimenuitem></menuchoice> dans le menu, ou plus simplement en cliquant dans un endroit vide de la zone d'affichage. Dès qu'un objet est désélectionné, il n'est plus en surbrillance.</para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-
-    </sect2>
-
-<!-- ============= Clipboard Commands ========= -->
-    <sect2 id="glabels-clipboard"> 
-      <title>Les commandes du presse-papiers</title>
-
-      <para>Des sélections d'objets peuvent être manipulées avec les fonctions standards du presse-papiers : <guimenuitem>Couper</guimenuitem>, <guimenuitem>Copier</guimenuitem>, <guimenuitem>Coller</guimenuitem> et <guimenuitem>Supprimer</guimenuitem>.</para>
-
-      <variablelist>
-
-       <varlistentry>
-         <term>
-            <menuchoice>
-             <shortcut>
-               <keycombo><keycap>Ctrl</keycap><keycap>X</keycap></keycombo>
-             </shortcut>
-             <guimenuitem>Couper</guimenuitem>
-           </menuchoice>
-          </term>
-         <listitem>
-           <para>Déplace les objets sélectionnés dans le presse-papiers. Ils sont alors disponibles pour être recollés dans le même document ou dans un autre.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>
-            <menuchoice>
-             <shortcut>
-               <keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo>
-             </shortcut>
-             <guimenuitem>Copier</guimenuitem>
-           </menuchoice>
-          </term>
-         <listitem>
-           <para>Crée une copie des objets sélectionnés dans le presse-papiers sans effacer les originaux. Ils sont alors disponibles pour être recollés dans le même document ou dans un autre.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>
-            <menuchoice>
-             <shortcut>
-               <keycombo><keycap>Ctrl</keycap><keycap>V</keycap></keycombo>
-             </shortcut>
-             <guimenuitem>Coller</guimenuitem>
-           </menuchoice>
-          </term>
-         <listitem>
-           <para>Colle des objets du presse-papiers dans le document actif. <application>gLabels</application> ne peut coller que des objets d'un autre document <application>gLabels</application>.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>
-            <menuchoice>
-             <shortcut>
-               <keycap>Supprimer</keycap>
-             </shortcut>
-             <guimenuitem>Supprimer</guimenuitem>
-           </menuchoice>
-          </term>
-         <listitem>
-           <para>Supprime les objets sélectionnés sans les garder dans le presse-papiers.</para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-
-    </sect2>
-
-<!-- ============= To Edit object Properties ========= -->
-    <sect2 id="glabels-object-properties"> 
-      <title>Édition des propriétés d'un objet</title>
-
-      <para>La plupart des propriétés d'un objet peuvent être modifiées avec l'éditeur d'objet présent dans le panneau latéral comme illustré ci-dessous. Pour que l'éditeur d'objet soit actif, il faut d'abord sélectionner un objet. Voir <xref linkend="glabels-select-objects"/>.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="object-editor-sidebar-fig"> 
-       <title>Panneau latéral : éditeur d'objet</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/object-editor-sidebar.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>L'éditeur d'objet propose un sous-ensemble des onglets suivants, selon le type d'objet :</para>
-
-      <sect3 id="object-editor-text">
-       <title>Onglet Texte (pour objets Texte)</title>
-
-       <para>Cet onglet contient un petit éditeur permettant de modifier le contenu d'un objet texte. Il contient aussi un menu déroulant indiquant les champs de fusion disponibles pouvant être insérés dans le texte.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-image">
-       <title>Onglet Image (pour objets Image)</title>
-
-       <para>Cet onglet contient une zone de sélection de fichier avec aperçu permettant de choisir des fichiers image. Le bouton peut être utilisé pour naviguer aisément parmi les fichiers image. On peut aussi indiquer un champ de fusion utilisable à la place du nom de fichier au moment de l'impression.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-data">
-       <title>Onglet Code-barre (objets Code-barre)</title>
-
-       <para>Cet onglet contient une zone de saisie de texte pour entrer la chaîne alphanumérique d'un code-barre. On peut aussi indiquer un champ de fusion qui fournira l'information au moment de l'impression.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-style">
-       <title>Onglet Style (objets Texte)</title>
-
-       <para>Cet onglet contient des éléments à renseigner pour choisir les propriétés du texte : famille, taille, style, couleur, alignement et espacement.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-barcode">
-       <title>Onglet Style (objets Code-barre)</title>
-
-       <para>Cet onglet contient des éléments à renseigner pour choisir les propriétés du code-barre : le style, la couleur, et s'il faut y inclure ou non une somme de contrôle.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-line">
-       <title>Onglet Ligne</title>
-
-       <para>Cet onglet contient deux éléments permettant de choisir les propriétés des lignes et des bordures : largeur et couleur.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-fill">
-       <title>Onglet Remplissage</title>
-
-       <para>Cet onglet contient des éléments pour renseigner les propriétés de remplissage des objets boîte et ellipse. Pour l'instant, la couleur est la seule option de remplissage disponible.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-size">
-       <title>Onglet Taille (tous objets, sauf Ligne)</title>
-
-       <para>Cet onglet contient deux éléments pour définir la largeur et la hauteur d'un objet. Il y a aussi une case à cocher pour figer le rapport largeur/hauteur pendant le redimensionnement de l'objet. Pour les objets Image, il y a en plus un bouton permettant de revenir aux dimensions d'origine (72 ppp par défaut).</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-size-line">
-       <title>Onglet Taille (objets ligne)</title>
-
-       <para>Cet onglet contient deux éléments pour renseigner la longueur et l'angle d'inclinaison d'un objet ligne.</para>
-
-      </sect3>
-
-      <sect3 id="object-editor-position">
-       <title>Onglet Position</title>
-
-       <para>Cet onglet contient des éléments permettant de modifier la position d'un objet.</para>
-
-      </sect3>
-
-
-      <sect3 id="object-editor-shadow">
-       <title>Onglet Ombrage (tous objets, sauf Image et Code-barre)</title>
-
-       <para>Cet onglet contient les paramètres pour ajouter une ombre à un objet.</para>
-
-      </sect3>
-
-
-    </sect2>
-
-<!-- ============= Other Manipulations of Objects ========= -->
-    <sect2 id="glabels-object-manipulation"> 
-      <title>Autres possibilités de manipulation d'un objet</title>
-
-      <para>Les objets peuvent aussi être manipulés des façons suivantes.</para>
-
-      <sect3 id="other-moving-resizing">
-       <title>Déplacement et redimensionnement des objets</title>
-
-       <para>Un objet peut être déplacé en cliquant dessus et en le faisant glisser à sa nouvelle place. Si cet objet fait partie d'une sélection groupée, tous les objets sélectionnés sont déplacés en même temps tout en gardant leurs positions relatives les uns par rapport aux autres. Si aucun objet n'est sélectionné, un clic sur un objet crée une nouvelle sélection contenant cet objet. Voir <xref linkend="glabels-select-objects"/>.</para>
-
-       <para>Un objet sélectionné peut être redimensionné en cliquant sur une de ses poignées et en la faisant glisser jusqu'à obtenir les dimensions souhaitées.</para>
-
-      </sect3>
-
-      <sect3 id="other-stacking-order">
-       <title>Modification de l'ordre d'empilage</title>
-
-       <para>L'ordre d'empilage se réfère à la position relative d'un objet par rapport à l'axe Z, c'est-à-dire lorsque des objets se recouvrent, lequel apparaît au-dessus de l'autre. Par défaut, les plus récents sont affichés par-dessus les plus anciens. Pour modifier cet ordre, sélectionnez un ou plusieurs objets à déplacer et choisissez <menuchoice><guimenu>Objets</guimenu><guimenuitem>Ordre</guimenuitem><guimenuitem>Avancer au premier plan </guimenuitem></menuchoice> pour placer la sélection au-dessus de la pile, ou <menuchoice><guimenu>Objets</guimenu><guimenuitem>Ordre</guimenuitem><guimenuitem>Reculer à l'arrière-plan</guimenuitem></menuchoice> pour placer la sélection sous la pile. Ces commandes sont aussi accessibles par le menu contextuel (clic droit dans la zone d'affichage lorsqu'un élément au moins est sélectionné).</para>
-
-      </sect3>
-
-      <sect3 id="other-rotating-flipping">
-       <title>Rotation et renversement des objets</title>
-
-       <para>À partir du menu <menuchoice><guimenu>Objets</guimenu><guimenuitem>Rotation/Renversement</guimenuitem>, on accède à un sous-menu permettant de faire pivoter un objet de 90° dans n'importe quelle direction, ou de le renverser horizontalement ou verticalement. Ces commandes sont aussi accessibles par le menu contextuel (clic droit dans la zone d'affichage lorsqu'un élément au moins est sélectionné).</menuchoice></para>
-
-      </sect3>
-
-      <sect3 id="other-alignment">
-       <title>Alignement des objets</title>
-
-       <para>Des objets peuvent être alignés horizontalement ou verticalement les uns par rapport aux autres, ou par rapport à la ligne médiane de l'étiquette. Pour cela, choisissez l'option adéquate dans le menu <menuchoice><guimenu>Objets</guimenu><guimenuitem>Aligner horizontalement</guimenuitem></menuchoice> ou </para>
-
-      </sect3>
-
-      <sect3 id="other-property-bar">
-       <title>Utilisation de la barre des propriétés</title>
-
-       <para>La barre des propriétés sert à modifier certaines options communes à un ensemble d'objets : famille de police, taille, gras, italique, alignement, couleur du texte, couleur de remplissage, couleur de ligne ou de bordure et épaisseur de ligne. La barre des propriétés est aussi utilisée pour définir les options appliquées par défaut à tout nouvel objet créé.</para>
-
-      </sect3>
-
-
-
-    </sect2>
-
-<!-- ============= Document Merge Features ========= -->
-    <sect2 id="glabels-merge"> 
-      <title>Fusion de documents</title>
-
-      <para>La fusion de documents (aussi appelée « Publipostage ») est un outil performant qui, à partir d'une seule carte ou étiquette, est capable d'imprimer autant d'éléments que d'enregistrements présents dans un document source externe.</para>
-
-      <para>La première étape pour effectuer une fusion de documents est de créer un document source dans lequel figurent les informations de fusion. Celles-ci peuvent être des adresses postales (ou autres) pour lesquelles vous souhaitez imprimer une seule étiquette ou carte. Pour l'instant, les seules sources possibles sont des fichiers texte ou le carnet d'adresses d'Evolution (d'autres sont planifiées). Le format texte géré actuellement est très simple : chaque ligne est un enregistrement ; les champs sont séparés par des virgules (CSV), par des deux-points ou par des tabulations ; des sauts de lignes peuvent être contenus dans les champs en utilisant l'expression « \n ». Ce fichier peut être créé avec n'importe quel éditeur de texte ou peut être généré par un autre programme ou script. L'usage, pour créer des fichiers CSV, est de les exporter depuis un tableur.</para>
-
-      <para>Une étiquette doit ensuite être configurée pour « pointer » vers ce fichier source. Pour configurer les propriétés de fusion d'un document, choisissez <menuchoice><guimenu>Objets</guimenu><guimenuitem>Propriétés de fusion</guimenuitem></menuchoice> pour afficher la boîte de dialogue <guilabel>Propriétés de fusion</guilabel>. Cette boîte sert à définir exactement le format du fichier de données, ainsi que le nom et l'emplacement du fichier de données pour la fusion.</para>
-
-      <para>Pour finir, lorsque l'étiquette a été configurée pour un fichier de données, des champs peuvent être insérés dans les objets texte et utilisés comme source de données pour les objets code-barre, et dans les noms de fichiers image pour les objets image. Consultez <xref linkend="glabels-object-properties"/> pour de plus amples informations sur l'utilisation des données fusionnées pour ces types d'objets.</para>
-
-      <para>Lorsque l'étiquette est configurée, <application>gLabels</application> en imprime une pour chaque enregistrement (ligne) des données du document source, en remplaçant les champs définis dans les différents objets texte, code-barre et image par les champs de chaque enregistrement.</para>
-
-      <para>Consultez <xref linkend="glabels-merge-tutorial"/> pour un guide détaillé sur les possibilités du publipostage.</para>
-
-
-    </sect2>
-
-
-  </sect1>
-
-
-
-
-  <!-- ============= Customization ============================= -->
-  <!-- Use this section to describe how to customize the application. -->
-  <sect1 id="glabels-prefs"> 
-    <title>Paramètres</title> 
-    <para>Pour configurer <application>gLabels</application>, allez dans le menu <menuchoice><guimenu>Édition</guimenu><guimenuitem>Préférences</guimenuitem></menuchoice>. La boîte de dialogue <guilabel>Préférences</guilabel> contient les onglets suivants :</para> 
-    <itemizedlist> 
-      <listitem> 
-       <para> 
-         <xref linkend="glabels-prefs-locale"/></para> 
-      </listitem> 
-      <listitem> 
-       <para> 
-         <xref linkend="glabels-prefs-object-defaults"/></para> 
-      </listitem> 
-    </itemizedlist>
-<!-- =============== Customization Subsection ================ -->
-<!-- Use a new section to describe different tabbed sections on the Settings or Preferences
-            dialog. -->
-    <sect2 id="glabels-prefs-locale"> 
-      <title>Localisation</title> 
-      <variablelist> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Unités</guilabel> </term> 
-         <listitem> 
-           <para>Ce groupe de boutons radio permet d'indiquer vos unités de mesure préférées. Cochez l'une des options suivantes :</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>Points</guilabel> </para> 
-               <para>Utilise le point (1 point = 1/72ème de pouce = 0,352778 mm).</para> 
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Pouces</guilabel> </para> 
-               <para>Utilise les pouces.</para>
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Millimètres</guilabel> </para> 
-               <para>Utilise les millimètres.</para>
-             </listitem> 
-           </itemizedlist> 
-           <para>Unité par défaut : <guilabel>Pouces</guilabel>.</para> 
-         </listitem> 
-       </varlistentry> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Taille de page par défaut</guilabel> </term> 
-         <listitem> 
-           <para>Ce groupe de boutons radio permet d'indiquer votre format de page préféré. Ceci vous aide à trouver plus rapidement un type de support lors de la création d'une nouvelle étiquette ou carte.</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>Letter US</guilabel> </para> 
-               <para>La plupart de vos supports seront au format Letter US (8.5 x 11 pouces).</para> 
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>ISO A4</guilabel> </para> 
-               <para>La plupart de vos supports seront au format ISO A4 (210 x 297 mm).</para>
-             </listitem> 
-           </itemizedlist> 
-           <para>Support par défaut : <guilabel>Letter US</guilabel>.</para> 
-         </listitem> 
-       </varlistentry> 
-      </variablelist> 
-    </sect2>
-    <!-- ============= Customization Subsection ===================== -->
-    <!-- Another tabbed section on the Preferences dialog. -->
-    <sect2 id="glabels-prefs-object-defaults"> 
-      <title>Paramètres par défaut pour les objets</title> 
-      <variablelist> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Texte</guilabel> </term> 
-         <listitem> 
-           <para>Utilisez ces différents contrôles pour définir les paramètres par défaut des nouveaux objets texte :</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>Police</guilabel> </para> 
-               <para>Permet de sélectionner la famille de police et sa taille, et si elle doit être en gras ou en italique.</para> 
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Couleur</guilabel> </para> 
-               <para>Définit la couleur par défaut du texte.</para>
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Alignement</guilabel> </para> 
-               <para>Définit l'alignement par défaut du texte : à gauche, centré ou à droite.</para>
-             </listitem> 
-           </itemizedlist> 
-         </listitem> 
-       </varlistentry> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Ligne</guilabel> </term> 
-         <listitem> 
-           <para>Définit les propriétés par défaut des lignes et bordures des nouveaux objets. Ces propriétés sont :</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>Largeur</guilabel> </para> 
-               <para>Définit l'épaisseur par défaut des lignes.</para>
-             </listitem> 
-             <listitem> 
-               <para> 
-                 <guilabel>Couleur</guilabel> </para> 
-               <para>Définit la couleur par défaut des lignes.</para>
-             </listitem> 
-           </itemizedlist> 
-         </listitem> 
-       </varlistentry> 
-       <varlistentry> 
-         <term> 
-           <guilabel>Remplissage</guilabel> </term> 
-         <listitem> 
-           <para>Définit la couleur de remplissage par défaut des nouveaux objets. Ces propriétés sont :</para>
-           <itemizedlist> 
-             <listitem> 
-               <para> 
-                 <guilabel>Couleur</guilabel> </para> 
-               <para>Définit la couleur de remplissage par défaut.</para>
-             </listitem> 
-           </itemizedlist> 
-         </listitem> 
-       </varlistentry> 
-      </variablelist> 
-    </sect2> 
-  </sect1>
-
-
-
-
-<!-- ============= Document Merge Tutorial ================================== -->
-  <sect1 id="glabels-merge-tutorial"> 
-    <title>Guide du publipostage</title>
-
-    <para>La fusion de documents (aussi appelée « Publipostage ») est une fonction puissante permettant d'imprimer une étiquette ou carte pour chaque enregistrement d'une source extérieure. Elle est cependant la fonction la plus méconnue de <application>gLabels</application>. Les exemples suivants vont détailler quelques tâches usuelles utilisant la fonction de publipostage.</para>
-
-    <sect2 id="merge-ex1">
-      <title>Exemple 1 : création de badges en utilisant un fichier CSV</title>
-  
-      <para>Dans cet exemple, nous organisons une session d'orientation pour les nouveaux membres d'équipage de notre navire. Nous disposons d'une liste de nouvelles recrues créée avec <application>gnumeric</application> et exportée sous la forme du fichier CSV ci-après. Nous aurions pu créer ce fichier avec n'importe quel éditeur de texte, mais bon, nous sommes au 23ème siècle.</para>
-
-      <programlisting>
-Nom,Département,Matricule
-"Jim Kirk",Direction,"SC937-0176 CEC"
-"Mr. Spock",Sciences,S179-276SP
-"Léonard McCoy",Médecine,Inconnu
-"Montgomery Scott",Ingénierie,SE-197-54T
-      </programlisting>
-
-      <para>Dans <application>gLabels</application>, nous avons créé un nouveau document <application>gLabels</application> utilisant le patron AVERY 5395 « Étiquettes pour badges ». Ensuite, nous ouvrons la boîte de dialogue <guilabel>Propriétés de fusion</guilabel> du menu <menuchoice><guimenu>Objets</guimenu></menuchoice> pour afficher les options de fusion. Ceci nous permet de choisir le type de source (dans notre cas, « Texte séparé par des virgules ») et son emplacement (nom de fichier) comme sur la figure suivante :</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex1-1-fig"> 
-       <title>Boîte de dialogue Propriétés de fusion</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex1-1.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Avant d'effectuer la fusion, nous allons décocher la première ligne, car c'est l'en-tête de notre document <application>gnumeric</application> original, et l'imprimer ne ferait que gaspiller notre première étiquette. On pourrait de la même façon désélectionner d'autres enregistrements non désirés.</para>
-
-      <para>On peut aussi agrandir chaque enregistrement en cliquant sur le petit triangle correspondant (voir figure). Une fois satisfait des choix effectués dans cette boîte de dialogue, cliquez sur <guibutton>Valider</guibutton> pour valider les modifications.</para>
-
-      <para>Nous allons maintenant ajouter des objets à notre document <application>gLabels</application> comme ceci :</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex1-2-fig"> 
-       <title>Ajout d'objets</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex1-2.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Dans cet exemple, nous avons ajouté trois objets Texte, et un objet Code-barre. Le premier objet Texte ne contient que du texte (« Bonjour, je m'appelle ». Le second objet Texte contient un seul champ de fusion (« ${1} ») correspondant au premier champ d'un enregistrement (première colonne d'une ligne) donnant ici le nom complet du membre d'équipage. Le troisième contient du texte (« Département ») suivi d'un seul champ de fusion (« ${2} ») correspondant au département d'appartenance du membre d'équipage. L'objet Code-barre est configuré pour recevoir le champ (ou clé) « 3 » contenant le numéro matricule du membre d'équipage.</para>
-
-      <para>On peut maintenant lancer l'impression de nos badges en choisissant <menuchoice><guimenu>Fichier</guimenu><guimenuitem>Imprimer</guimenuitem></menuchoice> à partir du menu. La boîte de dialogue ci-dessous apparaît.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex1-3-fig"> 
-       <title>Impression de badges nominatifs</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex1-3.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Afin de s'assurer que nos badges ressembleront à ce que nous voulons, nous activons l'option <guilabel>Imprimer des bordures</guilabel> et nous cliquons sur <guibutton>Aperçu avant impression</guibutton>. Une fenêtre d'aperçu apparaît, comme ci-dessous.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex1-4-fig"> 
-       <title>Aperçu des badges nominatifs</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex1-4.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Tout semble parfait, nous pouvons maintenant charger le stock d'étiquettes adéquates dans l'imprimante, imprimer nos badges et commencer à faire monter nos invités à bord.</para>
-
-    </sect2>
-
-    <sect2 id="merge-ex2">
-      <title>Exemple 2 : étiquettes adresses à partir d'un fichier CSV</title>
-  
-      <para>Dans cet exemple, nous allons organiser une soirée et nous avons besoin d'imprimer des étiquettes pour lancer nos invitations. Nous avons une liste de nos amis les plus proches, créée à partir de <application>gnumeric</application> et exportée dans le fichier CSV ci-après. Il faut tenir compte du fait que tout le monde n'a pas une initiale centrale, ni une adresse à deux lignes.</para>
-
-      <programlisting>
-NOM,PRÉNOM,INITIALE,ADRESSE1,ADRESSE2,VILLE,ÉTAT,CODE POSTAL
-,,,,,,,
-Critter,Ess,S,"123 Faux St.",,Alexandria,VA,22310
-Doe,John,,"Apt 1X","451 Mystery St.",Trenton,NJ,08601
-Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037
-McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813
-Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207
-      </programlisting>
-
-      <para>Dans <application>gLabels</application>, nous avons créé un nouveau document <application>gLabels</application> utilisant le patron « Étiquettes adresses » AVERY 5512. Puis, à partir du menu <menuchoice><guimenu>Objets</guimenu><guimenuitem>Propriétés de fusion</guimenuitem></menuchoice> pour afficher la boîte <guilabel>Propriétés de fusion</guilabel>, nous sélectionnons le type de source (ici CSV), ainsi que son emplacement (nom de fichier) comme sur la figure ci-dessous.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex2-1-fig"> 
-       <title>Boîte de dialogue Propriétés de fusion</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex2-1.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Avant d'effectuer la fusion, nous allons décocher la première ligne, car c'est l'en-tête de notre document <application>gnumeric</application> original, et l'imprimer ne ferait que gaspiller notre première étiquette.Nous désélectionnons aussi le deuxième enregistrement qui est vide (un artifice de notre fichier original). On pourrait de la même façon désélectionner d'autres enregistrements non désirés.</para>
-
-      <para>On peut aussi agrandir chaque enregistrement en cliquant sur le petit triangle correspondant (voir figure). Une fois satisfait des choix effectués dans cette boîte de dialogue, cliquez sur <guibutton>Valider</guibutton> pour valider les modifications.</para>
-
-      <para>Nous allons maintenant ajouter des objets à notre document <application>gLabels</application> comme ceci :</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex2-2-fig"> 
-       <title>Ajout d'objets</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex2-2.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Dans cet exemple, nous avons un seul objet Texte. Celui-ci contient tous nos champs fusionnés et présents sous forme de plusieurs lignes représentant des adresses postales. Veuillez noter que les champs ${4} et ${5} (correspondants à ADRESSE1 et ADRESSE2) sont respectivement listés sans aucune autre mention sur leur ligne. Lorsque <application>gLabels</application> rencontre ce type de champ, il ne génère pas la ligne si celle-ci est vide.</para>
-
-      <para>Nous pouvons maintenant imprimer nos étiquettes d'adresses avec le menu <menuchoice><guimenu>Fichier</guimenu><guimenuitem>Imprimer</guimenuitem></menuchoice>. Cette commande ouvre la boîte de dialogue ci-dessous.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex2-3-fig"> 
-       <title>Impression des étiquettes d'adresses</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex2-3.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Afin de s'assurer que nos badges ressembleront à ce que nous voulons, nous activons l'option <guilabel>Imprimer des bordures</guilabel> et nous cliquons sur <guibutton>Aperçu avant impression</guibutton>. Une fenêtre d'aperçu apparaît, comme ci-dessous.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex2-4-fig"> 
-       <title>Aperçu des étiquettes d'adresses</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex2-4.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Tout semble parfait, nous pouvons maintenant charger le stock d'étiquettes adéquates dans l'imprimante, imprimer les adresses et envoyer les invitations pour notre soirée.</para>
-
-    </sect2>
-
-<sect2 id="merge-ex3">
-      <title>Exemple 3 : étiquettes adresses à partir du carnet d'adresses d'<application>Evolution</application> </title>
-  
-      <para>Notre précédente soirée fut un grand succès, et nous voulons maintenant imprimer d'autres adresses pour en organiser une autre. Pour simplifier l'opération, nous allons utiliser le carnet d'adresses d'<application>Evolution</application>, car les coordonnées de tous nos amis y figurent.</para>
-
-      <note>
-       <para>Selon la distribution que vous utilisez, votre copie de <application>gLabels</application> peut ne pas inclure cette option. L'utilisation du carnet d'adresses d'<application>Evolution</application> n'est disponible que si le composant <application>evolution-data-server</application> et ses fichiers de développement étaient présents lors de la compilation de <application>gLabels</application>. Veuillez garder cela à l'esprit si vous compilez <application>gLabels</application> directement à partir des sources du programme.</para>
-       
-       <para>Si le paquet <application>gLabels</application> de votre distribution ne comporte pas cette option, vous pouvez essayer de contacter le responsable du paquet ou envoyer un rapport d'anomalie pour demander l'ajout de cette fonctionnalité.</para>
-      </note>
-
-      <para>Dans <application>gLabels</application>, nous avons créé un nouveau document avec le patron « Étiquettes adresses » AVERY 5512. Puis, à partir du menu <menuchoice><guimenu>Objets</guimenu><guimenuitem>Propriétés de fusion</guimenuitem></menuchoice> pour afficher la boîte de dialogue <guilabel>Propriétés de fusion</guilabel>, nous sélectionnons le type de source (ici <guilabel>Données du carnet d'adresses Evolution par défaut</guilabel>) comme ci-dessous.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex3-1-fig"> 
-       <title>Boîte de dialogue Propriétés de fusion</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex3-1.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Après avoir choisi <guilabel>Données du carnet d'adresses Evolution par défaut</guilabel> comme source à fusionner, nous obtenons une liste complète de son contenu. Par défaut, toutes les adresses sont cochées. Nous pourrions organiser une soirée géante en laissant cette sélection telle quelle. Mais il vaut mieux tenir compte de notre budget. Nous allons donc choisir en décochant certaines adresses par un clic dans les cases correspondantes ou en utilisant le bouton <guibutton>Sélectionner tout</guibutton> ou <guibutton>Désélectionner tout</guibutton> pour activer ou désactiver toutes les adresses du carnet.</para>
-      <para>On peut aussi agrandir chaque enregistrement en cliquant sur le petit triangle correspondant (voir figure). Une fois satisfait des choix effectués dans cette boîte de dialogue, cliquez sur <guibutton>Valider</guibutton> pour valider les modifications.</para>
-
-      <para>Nous allons maintenant ajouter des objets à notre document gLabels comme ci-dessous.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex3-2-fig"> 
-       <title>Ajout d'objets</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex3-2.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Dans cet exemple, nous avons à nouveau un seul objet texte contenant tous nos champs fusionnés et disposés sur plusieurs lignes sous forme d'adresses postales.</para>
-
-      <para>Nous pouvons maintenant imprimer les adresses à partir du menu <menuchoice><guimenu>Fichier</guimenu><guimenuitem>Imprimer</guimenuitem> et de la boîte de dialogue ci-dessous.</menuchoice></para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex3-3-fig"> 
-       <title>Impression des étiquettes d'adresses</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex2-3.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Afin de s'assurer que nos badges ressembleront à ce que nous voulons, nous activons l'option <guilabel>Imprimer des bordures</guilabel> et nous cliquons sur <guibutton>Aperçu avant impression</guibutton>. Une fenêtre d'aperçu apparaît, comme ci-dessous.</para>
-
-      <!-- ==== Figure ==== -->
-      <figure id="merge-ex3-4-fig"> 
-       <title>Aperçu des étiquettes d'adresses</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/merge-ex2-4.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-      <para>Tout semble parfait, nous pouvons maintenant charger le stock d'étiquettes adéquates dans l'imprimante, imprimer les adresses et envoyer les invitations pour notre soirée.</para>
-
-    </sect2>
-
-  </sect1>
-
-
-
-
-<!-- ============= Creating templates ================================== -->
-  <sect1 id="glabels-manual-create-template"> 
-    <title>Création manuelle de nouveaux patrons</title> 
-
-    <para>Des modèles de patrons sont présents sous la forme de fichiers XML dans <filename>${préfixe}/share/glabels/</filename>, où <filename>${préfixe}</filename> correspond généralement à <filename>/usr/local</filename> ou à <filename>/usr</filename> selon l'option de configuration de <filename>prefix</filename>. <application>gLabels</application> utilise tout fichier de la forme <filename>*-templates.xml</filename> ou <filename>*.template</filename> qu'il trouve dans <filename>${préfixe}/share/glabels/</filename> et <filename>${HOME}/.glabels/</filename>. D'autres patrons peuvent être ajoutés en créant des fichiers <filename>*.template</filename> dans l'un ou l'autre de ces répertoires.</para>
-
-    <para>Le format de ces fichiers est décrit dans le document DTD suivant : <ulink url="http://glabels.sourceforge.net/doc/glabels-2.0.dtd.txt" type="http">glabels-2.2.dtd</ulink> (ce document DTD décrit aussi d'autres formats XML utilisés par <application>gLabels</application>).</para>
-
-    <sect2 id="template-assumptions">
-      <title>Règles générales</title>
-      <itemizedlist>
-       <listitem>
-         <para>Une page ne contient qu'un seul format d'étiquette ou de carte (s'il y en a plusieurs, il faut la diviser en plusieurs patrons et faire autant de passes d'impression).</para>
-       </listitem>
-       <listitem>
-         <para>Les mesures de distance peuvent être exprimées en <emphasis>pt</emphasis>, <emphasis>in</emphasis>, <emphasis>mm</emphasis>, <emphasis>cm</emphasis> ou <emphasis>pc</emphasis>. Par exemple : « <literal>1.0in</literal> » ou « <literal>2.54cm</literal> ». Si aucune unité n'est indiquée, c'est le point (<emphasis>pt</emphasis>) qui est utilisé par défaut : 1 <emphasis>pt</emphasis> = 1/72ème <emphasis>de pouce</emphasis> = 0,352778 <emphasis>mm</emphasis>.</para>
-       </listitem>
-      </itemizedlist>
-    </sect2>
-
-    <sect2 id="template-file">
-      <title>Fichiers patron</title>
-
-      <programlisting>
-&lt;?xml version="1.0"?&gt;
-&lt;Glabels-templates&gt;
-
-   <replaceable>...patrons...</replaceable>
-
-&lt;/Glabels-templates&gt;
-      </programlisting>
-    </sect2>
-
-
-    <sect2 id="template-example">
-      <title>Exemple de patron</title>
-      <programlisting>
-  &lt;Template brand="Avery" part="8160" size="US-Letter" description="Étiquettes de publipostage"&gt;
-    &lt;Label-rectangle id="0" width="189pt" height="72pt" round="5pt"&gt;
-      &lt;Markup-margin size="5pt"/&gt;
-      &lt;Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/&gt;
-    &lt;/Label-rectangle&gt;
-    &lt;Alias brand="Avery" part="5160"/&gt;
-    &lt;Alias brand="Avery" part="6233"/&gt;
-  &lt;/Template&gt;
-      </programlisting>
-    </sect2>
-
-    <sect2 id="template-template-node">
-      <title>Nœud Template</title>
-
-      <para>Un nœud <emphasis>Template</emphasis> décrit les caractéristiques d'un seul produit. Il doit contenir une occurrence de l'un des types d'étiquettes suivants : <emphasis>Label-rectangle</emphasis>, <emphasis>Label-round</emphasis> ou <emphasis>Label-CD</emphasis>. Ce nœud peut être suivi par zéro ou plus de nœuds <emphasis>Alias</emphasis>.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Propriété</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Description</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>brand</para></entry>
-             <entry>
-                <para>Marque ou fabricant du produit, par ex. « Avery »</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>part</para></entry>
-             <entry>
-                <para>Numéro de série ou nom du produit, par ex. « 8160 »</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>size</para></entry>
-             <entry>
-                <para>Format de page, par ex. « US-Letter », « A4 », ...</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>description</para></entry>
-             <entry>
-                <para>Description du produit, par ex. « Étiquettes postales. ».</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>_description</para></entry>
-             <entry>
-                <para>Description traduisible du produit, par ex. « Étiquettes postales » (seulement utile pour des formats de patrons prédéfinis).</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>width</para></entry>
-             <entry>
-                <para>Largeur de la page. Seulement valide si la propriété size contient « Other » (autre).</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>height</para></entry>
-             <entry>
-                <para>Hauteur de la page. Seulement valide si la propriété size contient « Other » (autre).</para>
-               </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-label-rectangle-node">
-      <title>Nœud Label-rectangle</title>
-
-      <para>Un nœud <emphasis>Label-rectangle</emphasis> décrit les dimensions d'une étiquette ou carte de visite rectangulaire (elle peut aussi avoir les angles arrondis).</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Propriété</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Description</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>id</para></entry>
-             <entry>
-                <para>Réservé pour une utilisation future. Doit toujours être 0.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>width</para></entry>
-             <entry><para>Largeur de l'étiquette/carte</para></entry>
-            </row>
-           <row valign="top">
-             <entry><para>height</para></entry>
-             <entry><para>Hauteur de l'étiquette/carte</para></entry>
-           </row>
-           <row valign="top">
-             <entry><para>round</para></entry>
-             <entry>
-                <para>Rayon des angles arrondis. Pour les étiquettes ou cartes à angles droits (cartes de visite), la valeur du rayon doit être 0.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>x_waste</para></entry>
-             <entry>
-                <para>Quantité d'espace horizontal perdu acceptable (sur-impression). C'est utile pour réduire les problèmes d'alignement, notamment avec l'utilisation de fonds colorés (par ex. des images).</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y_waste</para></entry>
-             <entry>
-                <para>Quantité d'espace vertical perdu acceptable (sur-impression). C'est utile pour réduire les problèmes d'alignement, notamment avec l'utilisation de fonds colorés (par ex. des images).</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-      <!-- ==== Figure ==== -->
-      <figure id="template-label-fig"> 
-       <title>Paramètres de l'étiquette rectangle</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/glabels-template-label.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-    </sect2>
-
-    <sect2 id="template-label-round-node">
-      <title>Nœud Label-round</title>
-
-      <para>Un nœud <emphasis>Label-round</emphasis> décrit les dimensions d'une étiquette ronde pleine (pas pour CD).</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Propriété</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Description</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>id</para></entry>
-             <entry>
-                <para>Réservé pour une utilisation future. Doit toujours être 0.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>radius</para></entry>
-             <entry><para>Rayon (la moitié du diamètre) d'une étiquette ronde</para></entry>
-            </row>
-           <row valign="top">
-             <entry><para>waste</para></entry>
-             <entry>
-                <para>Quantité d'espace perdu acceptable (sur-impression). C'est utile pour réduire les problèmes d'alignement, notamment avec l'utilisation de fonds colorés (par ex. des images).</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-label-cd-node">
-      <title>Nœud Label-cd</title>
-
-      <para>Un nœud <emphasis>Label-cd</emphasis> décrit les dimensions d'une étiquette de CD, de DVD ou d'une carte de visite dans ce format.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Propriété</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Description</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>id</para></entry>
-             <entry>
-                <para>Réservé pour une utilisation future. Doit toujours être 0.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>radius</para></entry>
-             <entry><para>Rayon extérieur de l'étiquette</para></entry>
-           </row>
-           <row valign="top">
-             <entry><para>hole</para></entry>
-             <entry><para>Rayon du trou central</para></entry>
-           </row>
-           <row valign="top">
-             <entry><para>width</para></entry>
-             <entry>
-                <para>Si disponible, l'étiquette est bloquée à la largeur donnée (utile pour des cartes de visite au format CD).</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>height</para></entry>
-             <entry>
-                <para>Si disponible, l'étiquette est bloquée à la hauteur donnée (utile pour des cartes de visite au format CD).</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>waste</para></entry>
-             <entry>
-                <para>Quantité d'espace perdu acceptable (sur-impression). C'est utile pour réduire les problèmes d'alignement, notamment avec l'utilisation de fonds colorés (par ex. des images).</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-      <!-- ==== Figure ==== -->
-      <figure id="template-label-cd-fig"> 
-       <title>Paramètres de l'étiquette CD</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/glabels-template-cd.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-    </sect2>
-
-    <sect2 id="template-markup-margin-node">
-      <title>Nœud Markup-margin</title>
-
-      <para>Un nœud <emphasis>Markup-margin</emphasis> détermine une marge tout autour d'une étiquette.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Propriété</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Description</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>size</para></entry>
-             <entry>
-                <para>Taille de la marge, c'est-à-dire la distance de la ligne de marge jusqu'au bord de l'étiquette/carte.</para>
-              </entry>
-            </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-markup-line-node">
-      <title>Nœud Markup-line</title>
-
-      <para>Un nœud<emphasis>Markup-line</emphasis> décrit un traçage de ligne.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Propriété</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Description</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>x1</para></entry>
-             <entry>
-                <para>Coordonnée x de la 1ère extrémité du segment de ligne.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y1</para></entry>
-             <entry>
-                <para>Coordonnée y de la 1ère extrémité du segment de ligne.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>x2</para></entry>
-             <entry>
-                <para>Coordonnée x de la 2ème extrémité du segment de ligne.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y2</para></entry>
-             <entry>
-                <para>Coordonnée y de la 2ème extrémité du segment de ligne.</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-markup-circle-node">
-      <title>Nœud Markup-circle</title>
-
-      <para>Un nœud <emphasis>Markup-circle</emphasis> décrit un traçage de cercle.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Propriété</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Description</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>x0</para></entry>
-             <entry>
-                <para>Coordonnée x de l'origine du cercle (son centre).</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y0</para></entry>
-             <entry>
-                <para>Coordonnée y de l'origine du cercle (son centre).</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>radius</para></entry>
-             <entry><para>Rayon du cercle.</para></entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-markup-rect-node">
-      <title>Nœud Markup-rect</title>
-
-      <para>Un nœud <emphasis>Markup-rect</emphasis> décrit un traçage de rectangle.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Propriété</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Description</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>x1</para></entry>
-             <entry>
-                <para>Coordonnée x du coin supérieur gauche du rectangle.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y1</para></entry>
-             <entry>
-                <para>Coordonnée y du coin supérieur gauche du rectangle.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>w</para></entry>
-             <entry>
-                <para>Largeur du rectangle.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>h</para></entry>
-             <entry>
-                <para>Hauteur du rectangle.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>r</para></entry>
-             <entry><para>Rayon des coins arrondis du rectangle.</para></entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-    </sect2>
-
-    <sect2 id="template-layout-node">
-      <title>Nœud Layout</title>
-
-      <para>Un nœud étiquette (Label-...) peut contenir plusieurs nœuds enfants <emphasis>Layout</emphasis> (disposition). Si les étiquettes sont placées dans une grille simple, une seule disposition suffit. Si les étiquettes sont placées dans plusieurs grilles différentes, comme pour imprimer des échantillons par exemple, plusieurs dispositions seront nécessaires. Note : une étiquette unique peut toujours être considérée comme une grille à un seul élément.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Propriété</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Description</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>nx</para></entry>
-             <entry>
-                <para>Nombre d'étiquettes/cartes dans la grille (sur le plan horizontal).</para>
-              </entry>
-            </row>
-           <row valign="top">
-             <entry><para>ny</para></entry>
-             <entry>
-                <para>Nombre d'étiquettes/cartes dans la grille (sur le plan vertical).</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>x0</para></entry>
-             <entry>
-                <para>Distance entre le bord gauche de la page et le bord gauche de la première colonne d'étiquettes/cartes dans la disposition.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>y0</para></entry>
-             <entry>
-                <para>Distance entre le bord supérieur de la page et le bord supérieur de la première rangée d'étiquettes/cartes dans la disposition.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>dx</para></entry>
-             <entry><para>Pas horizontal de la grille.</para></entry>
-           </row>
-           <row valign="top">
-             <entry><para>dy</para></entry>
-             <entry><para>Pas vertical de la grille.</para></entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-      <!-- ==== Figure ==== -->
-      <figure id="template-layout-fig"> 
-       <title>Paramètres de disposition</title> 
-       <screenshot> 
-         <mediaobject> 
-           <imageobject><imagedata fileref="figures/glabels-template-layout.png" format="PNG"/> 
-           </imageobject>
-         </mediaobject> 
-       </screenshot> 
-      </figure>
-      <!-- ==== End of Figure ==== -->
-
-    </sect2>
-
-    <sect2 id="template-alias-node">
-      <title>Nœud Alias</title>
-
-      <para>Un nœud <emphasis>Alias</emphasis> donne le nom d'un produit ayant les mêmes caractéristiques de taille et de disposition que le patron parent.</para>
-
-      <informaltable frame="topbot">
-       <tgroup cols="2">
-         <colspec colname="col1"/>
-         <colspec colname="col2"/>
-         <thead>
-           <row valign="top">
-             <entry colname="col1" colsep="0" valign="top">
-                <para>Propriété</para>
-              </entry>
-             <entry colname="col2" valign="top">
-                <para>Description</para>
-              </entry>
-           </row>
-         </thead>
-         <tbody>
-           <row valign="top">
-             <entry><para>brand</para></entry>
-             <entry>
-                <para>La marque ou le fabricant du produit équivalent.</para>
-              </entry>
-           </row>
-           <row valign="top">
-             <entry><para>part</para></entry>
-             <entry>
-                <para>Le numéro de série ou le nom du produit équivalent.</para>
-              </entry>
-           </row>
-         </tbody>
-       </tgroup>
-      </informaltable>
-
-      </sect2>
-
-  </sect1>
-
-
-
-
-<!-- ============= Bugs ================================== -->
-<!-- This section is optional and is commented out by default. 
-     You can use it to describe known bugs and limitations of the 
-         program if there are any - please be frank and list all
-     problems you know of. 
-  
-  <sect1 id="mayapp-bugs">
-  <title>Known Bugs and Limitations</title>
-  <para> </para>
- </sect1>
--->
-
-
-
-
-<!-- ============= About ================================== -->
-<!-- This section contains info about the program (not docs), such as
-      author's name(s), web page, license, feedback address. This
-      section is optional: primary place for this info is "About.." box of
-      the program. However, if you do wish to include this info in the
-      manual, this is the place to put it. Alternatively, you can put this information in the title page.-->
-  <sect1 id="glabels-about"> 
-    <title>À propos de <application>gLabels</application></title> 
-    <para><application>gLabels</application> a été écrit par Jim Evins (<email>evins@snaught.com</email>). Pour obtenir de plus amples informations à propos de <application>gLabels</application>, visitez le <ulink url="http://glabels.sourceforge.net" type="http">site Web de gLabels</ulink>.</para>
-    <para>Pour signaler une anomalie ou émettre une suggestion à propos de cette application ou ce manuel, consultez les indications de la <ulink url="http://glabels.sourceforge.net/contact/" type="http">page de contact de <application>gLabels</application></ulink>.</para>
-
-    <para>Ce logiciel est distribué selon les termes de la Licence Publique Générale GNU telle que publiée par la Free Software Foundation ; soit la version 2 de cette licence, soit (à votre convenance) une quelconque version ultérieure. Une copie de cette licence est disponible à <ulink url="ghelp:gpl" type="help">ce lien</ulink> ou dans le fichier COPYING inclus dans le code source de ce logiciel.</para>
-
-  </sect1> 
-
-
-
-
-
-</article>
diff --git a/help/fr/index.page b/help/fr/index.page
new file mode 100644 (file)
index 0000000..62941d5
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="index" xml:lang="fr">
+
+  <info>
+    <title type="link">Concepteur d'étiquettes et de cartes de visite <app>gLabels</app></title>
+    <title type="text">Concepteur d'étiquettes et de cartes de visite <app>gLabels</app></title>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0</p>
+    </license>    
+  </info>
+
+  <title><media type="image" mime="image/png" src="figures/glabels-logo.png">logo gLabels</media> Manuel de <app>gLabels</app></title>
+
+  <p>L'application <app>gLabels</app> est un utilitaire léger pour créer des étiquettes et des cartes de visite dans l'environnement de bureau GNOME. Il est conçu pour fonctionner avec des feuilles d'étiquettes auto-collantes pour imprimantes laser ou jet d'encre ou avec des feuilles de cartes, feuilles que vous trouverez dans la plupart des magasins spécialisés en fournitures de bureau.</p>
+  <p><app>gLabels</app> peut être utilisé pour concevoir des étiquettes de publipostage, des badges nominatifs, des étiquettes de prix, des étiquettes de CD/DVD ou encore plus simplement tout ce qui est disposé avec un tramage régulier sur une feuille de papier. Les étiquettes (ou les cartes) peuvent comporter du texte, des images, des lignes, des formes et des codes-barres. <app>gLabels</app> comprend également une fonctionnalité de fusion de documents qui vous permet d'imprimer une étiquette propre à chaque enregistrement d'une source de données externe, comme un fichier CVS ou le carnet d'adresses d'<app>Evolution</app>.</p>
+
+  <figure>
+    <title>Fenêtre principale de <app>gLabels</app></title>
+    <desc>Fenêtre principale de <app>gLabels</app></desc>
+    <media type="image" src="figures/introduction-glabels-main-window.png" mime="image/png" style="right">
+      <p>Fenêtre principale de <app>gLabels</app>.</p>
+    </media>
+  </figure>
+
+  <section id="usage" style="2column">
+    <title>Utilisation</title>
+  </section>
+
+  <section id="merging" style="2column">
+    <title>Fusion de documents</title>
+  </section>
+
+  <section id="advanced" style="2column">
+    <title>Utilisation avancée</title>
+  </section>
+
+</page>
diff --git a/help/fr/labelprop.page b/help/fr/labelprop.page
new file mode 100644 (file)
index 0000000..20b9590
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="labelprop" xml:lang="fr">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Comment modifier les propriétés d'une étiquette ou d'une carte de visite.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0</p>
+    </license>    
+  </info>
+
+    <title>Modification des propriétés d'une étiquette</title>
+
+      <p>Pour modifier le type de support ou l'orientation d'une étiquette, choisissez <guiseq><gui>Fichier</gui><gui>Propriétés</gui></guiseq> pour afficher la boîte de dialogue <gui>Propriétés de l'étiquette</gui>. Sélectionnez un type de support et l'orientation du document, puis cliquez sur <gui>Valider</gui>.</p>
+
+</page>
diff --git a/help/fr/license.page b/help/fr/license.page
new file mode 100644 (file)
index 0000000..a99bbc6
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" type="topic" id="license" xml:lang="fr">
+  
+  <info>
+    <link type="seealso" xref="index"/>
+    <revision pkgversion="2.30" version="0.1" date="2009-12-28" status="draft"/>
+    <desc>Informations légales.</desc>
+  </info>
+
+  <title>Licence</title>
+  <p>Cette œuvre est distribuée sous licence Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0 Unported.</p>
+  <p>Vous êtes libre :</p>
+  <terms>
+    <item>
+      <title><em>de partager</em></title>
+      <p>de reproduire, distribuer et communiquer cette création.</p>
+    </item>
+    <item>
+      <title><em>de modifier</em></title>
+      <p>d'adapter cette création,</p> 
+    </item>
+  </terms>
+  <p>selon les conditions suivantes :</p>
+  <terms>
+    <item>
+      <title><em>Paternité</em></title>
+      <p>Vous devez citer le nom de l'auteur original de la manière indiquée par l'auteur de l'œuvre ou le titulaire des droits qui vous confère cette autorisation (mais pas d'une manière qui suggérerait qu'ils vous soutiennent ou approuvent votre utilisation de l'œuvre).</p>
+    </item>
+    <item>
+      <title><em>Partage des conditions initiales à l'identique</em></title>
+      <p>Si vous modifiez, transformez ou adaptez cette création, vous n'avez le droit de distribuer la création qui en résulte que sous un contrat identique à celui-ci.</p>
+    </item>
+  </terms>
+  <p>Pour prendre connaissance du texte complet de la licence, consultez le <link href="http://creativecommons.org/licenses/by-sa/3.0/legalcode">site Web CreativeCommons</link> ou lisez in extenso le <link href="http://creativecommons.org/licenses/by-sa/3.0/">contrat Commons</link>.</p>
+</page>
diff --git a/help/fr/mancreate.page b/help/fr/mancreate.page
new file mode 100644 (file)
index 0000000..4e74aa7
--- /dev/null
@@ -0,0 +1,694 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" xmlns:its="http://www.w3.org/2005/11/its" type="guide" id="mancreate" xml:lang="fr">
+
+  <info>
+    <link type="guide" xref="index#advanced"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Comment créer vos propres modèles à la main.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0</p>
+    </license>    
+  </info>
+
+  <title>Création manuelle de nouveaux modèles</title>
+
+
+
+  <!-- ****************** -->
+  <!-- BEGIN Introduction -->
+  <!-- ****************** -->
+  <p>Cette page est un guide de référence pour créer manuellement des modèles <app>gLabels</app>. Les modèles <app>gLabels</app> sont définis par de simples fichiers XML comme décrit dans la DTD (Définition de Type de Document) : <link href="http://glabels.org/xmlns/2.3/glabels-2.3.dtd.txt">glabels-2.3.dtd</link> (cette DTD décrit aussi d'autres formats XML utilisés par <app>gLabels</app>).</p>
+
+  <p>Les fichiers de modèle créés manuellement doivent être placés dans <file>${HOME}/.glabels</file> et posséder une extension <file>.template</file>.</p>
+
+  <note style="advanced">
+    <p><app>gLabels</app> recherche les modèles dans plusieurs autres emplacements tels que définis ici :</p>
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Emplacement</p></td>
+        <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>
+        <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><file>${prefix}/share/libglabels-3.0/templates</file></p></td>
+        <td><p>Modèles prédéfinis distribués avec <app>gLabels</app>.</p>
+            <p><file>${prefix}</file> est habituellement <file>/usr</file> ou <file>/usr/local</file> en fonction de l'endroit où a été installé <app>gLabels</app>.</p></td>
+      </tr>
+      <tr>
+        <td><p><file>${XDG_CONFIG_HOME}/libglabels/templates</file></p></td>
+        <td><p>Modèles définis par l'utilisateur, créés avec le <gui>créateur de modèles</gui> de <app>gLabels</app>. <em>Ne pas placer de modèles créés manuellement dans ce répertoire.</em></p>
+            <p>Si la variable <file>${XDG_CONFIG_HOME}</file> n'est pas définie, sa valeur par défaut est <file>${HOME}/.config</file>.</p></td>
+      </tr>
+      <tr>
+        <td><p><file>${HOME}/.glabels</file></p></td>
+        <td><p>Les modèles définis par l'utilisateur et qui ont été créés manuellement, doivent être placés dans ce répertoire. Les versions plus anciennes du <gui>créateur de modèles</gui> de <app>gLabels</app> (antérieures à 3.0) placent également leurs modèles dans ce répertoire.</p></td>
+      </tr>
+    </table>
+  </note>
+
+  <note><p>Des fichiers modèles finalisés peuvent être envoyés à la <link href="mailto:glabels-templates@lists.sourceforge.net">liste de diffusion</link> sur les modèles de <app>gLabels</app> pour qu'ils soient éventuellement inclus dans les futures versions de <app>gLabels</app>.</p>
+  </note>
+  <!-- ****************** -->
+  <!-- END Introduction   -->
+  <!-- ****************** -->
+
+
+  <!-- ***************** -->
+  <!-- BEGIN Assumptions -->
+  <!-- ***************** -->
+  <section id="template-assumptions">
+    <title>Hypothèses/précautions</title>
+    <list>
+      <item>
+        <p>Une page ne contient qu'un seul format d'étiquette ou de carte (s'il y en a plusieurs, il faut la diviser en plusieurs modèles et faire autant de passes d'impression).</p>
+      </item>
+      <item>
+        <p>Les dimensions peuvent être exprimées en <code translate="no">pt</code>, <code translate="no">in</code>, <code translate="no">mm</code>, <code translate="no">cm</code> ou <code translate="no">pc</code>. Par exemple : "<code translate="no">1.0in</code>" ou "<code translate="no">2.54cm</code>". Si aucune unité n'est indiquée, c'est le point (<code translate="no">pt</code>) qui est utilisé par défaut : 1 <em>pt</em> = 1/72e<em> de pouce</em>= 0,352778<em> mm</em>.</p>
+      </item>
+    </list>
+  </section>
+  <!-- ***************** -->
+  <!-- END Assumptions   -->
+  <!-- ***************** -->
+
+
+
+  <!-- ******************** -->
+  <!-- BEGIN Template Files -->
+  <!-- ******************** -->
+  <section id="template-file">
+    <title>Fichier modèle</title>
+
+    <p>Un fichier modèle contient un seul nœud de haut-niveau <code translate="no">Glabels-templates</code>.</p>
+
+    <code mime="text/xml" translate="no">
+&lt;?xml version="1.0"?&gt;
+&lt;Glabels-templates&gt;
+
+   <var translate="yes">...modèles...</var>
+
+&lt;/Glabels-templates&gt;
+      </code>
+
+    <listing>
+      <title>Exemple de modèle d'étiquette</title>
+      <desc>Exemple de fichier modèle de <app>gLabels</app> contenant un seul nœud <code translate="no">Template</code>.</desc>
+      <code mime="text/xml" translate="no">
+&lt;?xml version="1.0"?&gt;
+&lt;Glabels-templates&gt;
+
+  &lt;Template brand="Avery" part="8160" size="US-Letter" description="Étiquettes postales"&gt;
+    &lt;Meta category="label"/&gt;
+    &lt;Meta category="mail"/&gt;
+    &lt;Meta product_url="http://www.avery.com/avery/en_us/"/&gt;
+    &lt;Label-rectangle id="0" width="189pt" height="72pt" round="5pt"&gt;
+      &lt;Markup-margin size="5pt"/&gt;
+      &lt;Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/&gt;
+    &lt;/Label-rectangle&gt;
+  &lt;/Template&gt;
+
+&lt;/Glabels-templates&gt;</code>
+    </listing>
+
+  </section>
+  <!-- ******************** -->
+  <!-- END Template Files   -->
+  <!-- ******************** -->
+
+
+
+  <!-- ******************** -->
+  <!-- BEGIN Template Node  -->
+  <!-- ******************** -->
+  <section id="template-template-node">
+    <title>Nœud <span translate="no">Template</span></title>
+
+    <p>Un nœud <code translate="no">Template</code> décrit les caractéristiques d'un seul produit. Il doit contenir une instance de l'un des types de nœud « Label-... » suivants : <code translate="no">Label-rectangle</code>, <code translate="no">Label-round</code> ou <code translate="no">Label-cd</code>.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Propriétés</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">brand</code></p></td>  
+        <td><p>Marque ou fabricant de la fourniture de bureau, par ex. « Avery »</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">part</code></p></td>
+        <td><p>Numéro de série ou nom de la fourniture de bureau, par ex. « 8160 »</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">size</code></p></td>
+        <td><p>Format de page, par ex. « <code translate="no">US-Letter</code> », « <code translate="no">A4</code> », ...</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">description</code></p></td>
+        <td><p>Description de la fourniture de bureau, par ex. « Étiquettes postales ».</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">_description</code></p></td>
+        <td><p>Description traduisible de la fourniture de bureau, par ex. « Étiquettes postales » (utile seulement pour les formats de modèles prédéfinis).</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">width</code></p></td>
+        <td><p>Largeur de la page. Valide seulement si la propriété « size » contient « Other » (autre).</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">height</code></p></td>
+        <td><p>Hauteur de la page. Valide seulement si la propriété « size » contient « Other » (autre).</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">equiv</code></p></td>
+        <td><p>Numéro de la partie équivalente. Si cette propriété est présente, le modèle est un clone d'un autre modèle de la même marque. Le modèle hérite de toutes les propriétés sauf de la marque et du nom de l'autre modèle. Cette propriété equiv doit se rapporter à un modèle défini antérieurement - Actuellement, <app>gLabels</app> ne prend pas en charge les références anticipées.</p></td>
+      </tr>
+    </table>
+
+  </section>
+  <!-- ******************** -->
+  <!-- END Template Node    -->
+  <!-- ******************** -->
+
+
+  <!-- ******************** -->
+  <!-- BEGIN Meta Node      -->
+  <!-- ******************** -->
+  <section id="meta-template-node">
+    <title>Nœud <span translate="no">Meta</span></title>
+
+    <p>Un nœud <code translate="no">Meta</code> contient des informations supplémentaires à propos du modèle. Un nœud <code translate="no">Template</code> peut contenir zéro nœud <code translate="no">Meta</code> ou plus.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Sous-nœuds</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">category</code></p></td>
+        <td><p>Une catégorie pour le modèle. Un modèle peut appartenir à plusieurs catégories en ajoutant simplement plusieurs nœuds <code translate="no">Meta</code> au nœud <code translate="no">Template</code> parent. Les catégories de modèle sont utilisés dans la <gui>boîte de dialogue Nouvelle étiquette</gui> de <app>gLabels</app> pour filtrer les résultats des recherches de modèle.</p>
+
+            <p>La valeur de cette catégorie doit correspondre à un identifiant de catégorie prédéfini dans le fichier <file>${prefix}/libglabels-3.0/templates/categories.xml</file>. Les identifiants de catégorie actuellement définis comprennent :</p>
+            <list>
+              <item><p><code translate="no">label</code></p></item>
+              <item><p><code translate="no">round-label</code></p></item>
+              <item><p><code translate="no">elliptical-label</code></p></item>
+              <item><p><code translate="no">square-label</code></p></item>
+              <item><p><code translate="no">rectangle-label</code></p></item>
+              <item><p><code translate="no">card</code></p></item>
+              <item><p><code translate="no">business-card</code></p></item>
+              <item><p><code translate="no">media</code></p></item>
+              <item><p><code translate="no">mail</code></p></item>
+              <item><p><code translate="no">foldable</code></p></item>
+              <item><p><code translate="no">photo</code></p></item>
+            </list>
+
+
+        </td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">product_url</code></p></td>
+        <td><p>Un URL pointant sur la page Web du fournisseur du produit spécifié, si elle existe.</p></td>
+      </tr>
+    </table>
+
+    <note><p>Des suggestions pour des catégories supplémentaires peuvent être envoyées à la <link href="mailto:glabels-devel@lists.sourceforge.net">liste de diffusion</link> des développeurs de <app>gLabels</app>.</p>
+          <p>Les URL des produits peuvent être d'un intérêt limité car il se peut qu'ils ne soient pas permanents.</p>
+    </note>
+
+  </section>
+  <!-- ******************** -->
+  <!-- END Meta Node        -->
+  <!-- ******************** -->
+
+
+  <!-- ************************** -->
+  <!-- BEGIN Label-rectangle Node -->
+  <!-- ************************** -->
+  <section id="template-label-rectangle-node">
+    <title>Nœud <span translate="no">Label-rectangle</span></title>
+
+    <p>Un nœud <code translate="no">Label-rectangle</code> décrit les dimensions d'une étiquette ou d'une carte de visite de forme rectangulaire (elle peut aussi avoir des angles arrondis).</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Propriétés</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">id</code></p></td>
+        <td><p>Réservé pour une utilisation future. Doit toujours être 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">width</code></p></td>
+        <td><p>Largeur de l'étiquette/carte</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">height</code></p></td>
+        <td><p>Hauteur de l'étiquette/carte</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">round</code></p></td>
+        <td><p>Rayon de l'arrondi du coin. Pour les étiquettes ou cartes à angles droits (cartes de visite), la valeur du rayon doit être 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">x_waste</code></p></td>
+        <td><p>Quantité d'espace horizontal perdu acceptable (surimpression). C'est utile pour réduire les problèmes d'alignement, notamment avec l'utilisation de fonds colorés (par ex. des images).</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">y_waste</code></p></td>
+        <td><p>Quantité d'espace vertical perdu acceptable (surimpression). C'est utile pour réduire les problèmes d'alignement, notamment avec l'utilisation de fonds colorés (par ex. des images).</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc>Paramètres de <span translate="no">Label-rectangle</span></desc>
+      <media type="image" src="figures/glabels-template-rect-label.png" mime="image/png" style="right">
+        <p>Paramètres de <span translate="no">Label-rectangle</span></p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ************************** -->
+  <!-- END Label-rectangle Node   -->
+  <!-- ************************** -->
+
+
+  <!-- ************************ -->
+  <!-- BEGIN Label-ellipse Node -->
+  <!-- ************************ -->
+  <section id="template-label-ellipse-node">
+    <title>Nœud <span translate="no">Label-ellipse</span></title>
+
+    <p>Un nœud <code translate="no">Label-ellipse</code> décrit les dimensions d'une étiquette ou carte de visite de forme elliptique.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Propriétés</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">id</code></p></td>
+        <td><p>Réservé pour une utilisation future. Doit toujours être 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">width</code></p></td>
+        <td><p>Largeur de l'ellipse</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">height</code></p></td>
+        <td><p>Hauteur de l'ellipse</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">waste</code></p></td>
+        <td><p>Quantité d'espace perdu acceptable (surimpression). C'est utile pour réduire les problèmes d'alignement, notamment avec l'utilisation de fonds colorés (par ex. des images).</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc>Paramètres de <span translate="no">Label-ellipse</span></desc>
+      <media type="image" src="figures/glabels-template-ellipse-label.png" mime="image/png" style="right">
+        <p>Paramètres de <span translate="no">Label-ellipse</span></p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ************************ -->
+  <!-- END Label-ellipse Node   -->
+  <!-- ************************ -->
+
+
+  <!-- ********************** -->
+  <!-- BEGIN Label-round Node -->
+  <!-- ********************** -->
+  <section id="template-label-round-node">
+    <title>Nœud <span translate="no">Label-round</span></title>
+
+    <p>Un nœud <code translate="no">Label-round</code> décrit les dimensions d'une étiquette ronde pleine (pas pour un CD).</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Propriétés</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">id</code></p></td>
+        <td><p>Réservé pour une utilisation future. Doit toujours être 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">radius</code></p></td>
+        <td><p>Rayon (la moitié du diamètre) d'une étiquette ronde</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">waste</code></p></td>
+        <td><p>Quantité d'espace perdu acceptable (surimpression). C'est utile pour réduire les problèmes d'alignement, notamment avec l'utilisation de fonds colorés (par ex. des images).</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc>Paramètres de <span translate="no">Label-ellipse</span></desc>
+      <media type="image" src="figures/glabels-template-circle-label.png" mime="image/png" style="right">
+        <p>Paramètres de <span translate="no">Label-ellipse</span></p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ********************** -->
+  <!-- END Label-round Node   -->
+  <!-- ********************** -->
+
+
+  <!-- ******************* -->
+  <!-- BEGIN Label-cd Node -->
+  <!-- ******************* -->
+  <section id="template-label-cd-node">
+    <title>Nœud <span translate="no">Label-cd</span></title>
+
+    <p>Un nœud <code translate="no">Label-cd</code> décrit les dimensions d'une étiquette de CD, de DVD ou de mini CD.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Propriétés</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">id</code></p></td>
+        <td><p>Réservé pour une utilisation future. Doit toujours être 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">radius</code></p></td>
+        <td><p>Rayon extérieur de l'étiquette</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">hole</code></p></td>
+        <td><p>Rayon du trou central</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">width</code></p></td>
+        <td><p>Si présent, l'étiquette est découpée à la largeur indiquée (utile pour les « mini CD »).</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">height</code></p></td>
+        <td><p>Si présent, l'étiquette est découpée à la hauteur donnée (utile pour les « mini CD »).</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">waste</code></p></td>
+        <td><p>Quantité d'espace perdu acceptable (surimpression). C'est utile pour réduire les problèmes d'alignement, notamment avec l'utilisation de fonds colorés (par ex. des images).</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc>Paramètres de <span translate="no">Label-cd</span></desc>
+      <media type="image" src="figures/glabels-template-cd-label.png" mime="image/png" style="right">
+        <p>Paramètres pour étiquette de CD</p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ******************* -->
+  <!-- END Label-cd Node   -->
+  <!-- ******************* -->
+
+
+  <!-- ***************** -->
+  <!-- BEGIN Markup Node -->
+  <!-- ***************** -->
+  <section id="template-markup">
+    <title>Nœuds <span translate="no">Markup</span></title>
+
+    <p>Le modèle peut comporter des nœuds « markup » optionnels. Ces nœuds s'utilisent pour décrire un simple ensemble de lignes de marquage visibles sur le canevas de tracé de <app>glabels</app>, mais invisibles à l'impression. Ces lignes peuvent représenter des marges, des lignes de pliage, des lignes de centrage, des zones spécialisées ou d'autres indications pour aider l'utilisateur d'un modèle.</p>
+
+
+    <!-- ======================== -->
+    <!-- BEGIN Markup-margin Node -->
+    <!-- ======================== -->
+    <section id="template-markup-margin-node">
+      <title>Nœud <span translate="no">Markup-margin</span></title>
+
+      <p>Un nœud <code translate="no">Markup-margin</code> délimite la marge autour d'une étiquette.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Propriétés</p></td>  <td><p>Description</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">size</code></p></td>
+          <td><p>Taille de la marge, c'est-à-dire la distance de la ligne de marge jusqu'au bord de l'étiquette ou de la carte.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ======================== -->
+    <!-- END Markup-margin Node   -->
+    <!-- ======================== -->
+
+
+    <!-- ====================== -->
+    <!-- BEGIN Markup-line Node -->
+    <!-- ====================== -->
+    <section id="template-markup-line-node">
+      <title>Nœud <span translate="no">Markup-line</span></title>
+
+      <p>Un nœud <code translate="no">Markup-line</code> décrit le tracé d'une droite de marquage.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Propriétés</p></td>  <td><p>Description</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x1</code></p></td>
+          <td><p>Abscisse x de l'origine du segment de droite.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y1</code></p></td>
+          <td><p>Ordonnée y de l'origine du segment de droite.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x2</code></p></td>
+          <td><p>Abscisse x de l'extrémité du segment de droite.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y2</code></p></td>
+          <td><p>Ordonnée y de l'extrémité du segment de droite.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ====================== -->
+    <!-- END Markup-line Node   -->
+    <!-- ====================== -->
+
+
+    <!-- ======================== -->
+    <!-- BEGIN Markup-circle Node -->
+    <!-- ======================== -->
+    <section id="template-markup-circle-node">
+      <title>Nœud <span translate="no">Markup-circle</span></title>
+
+      <p>Un nœud <code translate="no">Markup-circle</code> décrit le tracé d'un cercle de marquage.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Propriétés</p></td>  <td><p>Description</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x0</code></p></td>
+          <td><p>Abscisse x du centre du cercle.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y0</code></p></td>
+          <td><p>Ordonnée y du centre du cercle.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">radius</code></p></td>
+          <td><p>Rayon du cercle.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ======================== -->
+    <!-- END Markup-circle Node   -->
+    <!-- ======================== -->
+
+
+    <!-- ====================== -->
+    <!-- BEGIN Markup-rect Node -->
+    <!-- ====================== -->
+    <section id="template-markup-rect-node">
+      <title>Nœud <span translate="no">Markup-rect</span></title>
+
+      <p>Un nœud <code translate="no">Markup-rect</code> décrit le tracé d'un rectangle de marquage.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Propriétés</p></td>  <td><p>Description</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x1</code></p></td>
+          <td><p>Abscisse x du coin supérieur gauche du rectangle.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y1</code></p></td>
+          <td><p>Ordonnée y du coin supérieur gauche du rectangle.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">w</code></p></td>
+          <td><p>Largeur du rectangle.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">h</code></p></td>
+          <td><p>Hauteur du rectangle.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">r</code></p></td>
+          <td><p>Rayon de l'arrondi des coins du rectangle.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ====================== -->
+    <!-- END Markup-rect Node   -->
+    <!-- ====================== -->
+
+
+    <!-- ========================= -->
+    <!-- BEGIN Markup-ellipse Node -->
+    <!-- ========================= -->
+    <section id="template-markup-ellipse-node">
+      <title>Nœud <span translate="no">Markup-ellipse</span></title>
+
+      <p>Un nœud <code translate="no">Markup-ellipse</code> décrit le tracé d'une ellipse de marquage.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Propriétés</p></td>  <td><p>Description</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x1</code></p></td>
+          <td><p>Abscisse x du coin supérieur gauche du rectangle exinscrit dans l'ellipse.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y1</code></p></td>
+          <td><p>Ordonnée y du coin supérieur gauche du rectangle exinscrit dans l'ellipse.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">w</code></p></td>
+          <td><p>Largeur de l'ellipse.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">h</code></p></td>
+          <td><p>Hauteur de l'ellipse.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ========================= -->
+    <!-- END Markup-ellipse Node   -->
+    <!-- ========================= -->
+
+  </section>
+  <!-- ***************** -->
+  <!-- END Markup Node   -->
+  <!-- ***************** -->
+
+
+  <!-- ***************** -->
+  <!-- BEGIN Layout Node -->
+  <!-- ***************** -->
+  <section id="template-layout-node">
+    <title>Nœud <span translate="no">Layout</span></title>
+
+    <p>Un nœud <span translate="no">Label</span> peut contenir plusieurs nœuds <code translate="no">Layout</code> enfants. Si les étiquettes sont placées dans une trame de grille simple, un seul nœud suffit. Si les étiquettes sont disposées dans plusieurs grilles, comme pour le motif décalé d'un mur de briques, plusieurs nœuds <code translate="no">Layout</code> seront nécessaires.</p>
+       <note style="tip">
+       <p>Une étiquette unique peut toujours être considérée comme une grille à un seul élément.</p>
+      </note>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Propriétés</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">nx</code></p></td>
+        <td><p>Nombre d'étiquettes/cartes dans la grille (horizontalement).</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">ny</code></p></td>
+        <td><p>Nombre d'étiquettes/cartes dans la grille (verticalement).</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">x0</code></p></td>
+        <td><p>Distance entre le bord gauche de la page et le bord gauche de la première colonne d'étiquettes/cartes dans la disposition.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">y0</code></p></td>
+        <td><p>Distance entre le bord supérieur de la page et le bord supérieur de la première rangée d'étiquettes/cartes dans la disposition.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">dx</code></p></td>
+        <td><p>Pas horizontal de la grille.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">dy</code></p></td>
+        <td><p>Pas vertical de la grille.</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc>Paramètres de <span translate="no">Layout</span></desc>
+      <media type="image" src="figures/glabels-template-layout.png" mime="image/png" style="right">
+        <p>Paramètres de <span translate="no">Layout</span></p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ***************** -->
+  <!-- END Layout Node   -->
+  <!-- ***************** -->
+
+
+</page>
diff --git a/help/fr/merge-ex1.page b/help/fr/merge-ex1.page
new file mode 100644 (file)
index 0000000..28893f4
--- /dev/null
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge-ex1" xml:lang="fr">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Créer des badges à partir d'un fichier CSV.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0</p>
+    </license>    
+  </info>
+
+    <title>Exemple 1 : création de badges</title>
+
+      <p>Dans cet exemple, disons que nous organisons une session de formation pour les nouveaux membres d'équipage d'un navire. Nous disposons de la liste des nouvelles recrues créée avec <app>gnumeric</app> et exportée sous forme d'un fichier CSV. Nous aurions pu créer ce fichier avec n'importe quel éditeur de texte, mais diable ! nous sommes au XXIIIe siècle.</p>
+
+      <code>
+Nom,Département,Matricule
+"Jim Kirk",Direction,"SC937-0176 CEC"
+"Mr. Spock",Sciences,S179-276SP
+"Léonard McCoy",Médecine,Inconnu
+"Montgomery Scott",Ingénierie,SE-197-54T
+      </code>
+
+      <p>Dans <app>gLabels</app>, nous créons un nouveau document sur le modèle Avery 5395 « Étiquettes pour badges ». Puis, nous ouvrons la boîte de dialogue <gui>Propriétés de fusion</gui> en cliquant sur l'élément de menu <guiseq><gui>Objets</gui><gui>Propriétés de fusion</gui></guiseq> pour afficher les options de fusion. Ceci nous permet de choisir le type de source (dans notre cas CVS avec en-têtes en première ligne) et son emplacement (nom de fichier) comme illustré sur la figure ci-après.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-1.png" mime="image/png" style="right">
+               <p>Boîte de dialogue « Propriétés de fusion »</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Il est aussi possible de voir le détail du contenu de chaque enregistrement en cliquant sur l'icône d'extension correspondante (le petit triangle) comme indiqué. Une fois les choix arrêtés dans cette boîte de dialogue, nous cliquons sur <guibutton>Valider</guibutton> pour confirmer les modifications.</p>
+
+      <p>Nous allons maintenant ajouter des objets au document <app>gLabels</app> comme indiqué ci-dessous.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-2.png" mime="image/png" style="right">
+               <p>Ajout d'objets</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Dans cet exemple, nous plaçons trois objets texte et un objet code-barre. Le premier objet texte contient une simple phrase (« Bonjour, je m'appelle »). Le second objet texte contient un seul champ de fusion (« ${Nom} ») correspondant au premier champ de l'enregistrement (première colonne d'une ligne) contenant ici le nom complet du membre d'équipage. Le troisième contient le texte (« Département : ») suivi du champ de fusion (« ${Département} ») isolé correspondant au département auquel appartient le membre d'équipage. L'objet code-barre est configuré pour recevoir le champ (ou clé) « Matricule » contenant le numéro de matricule du membre d'équipage.</p>
+
+      <p>Maintenant nous pouvons lancer l'impression des badges en cliquant l'élément de menu <guiseq><gui>Fichier</gui><gui>Imprimer</gui></guiseq>. La boîte de dialogue « Imprimer » telle qu'affichée ci-dessous apparaît.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-3.png" mime="image/png" style="right">
+               <p>Impression de badges nominatifs</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Pour s'assurer que les étiquettes auront bel aspect, nous activons l'option <gui>Imprimer des bordures</gui> et cliquons sur <gui>Aperçu avant impression</gui>. Cela déclenche l'affichage d'une fenêtre d'aperçu comme ci-dessous.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-4.png" mime="image/png" style="right">
+               <p>Aperçu des badges nominatifs</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Tout paraît correct, nous pouvons maintenant charger la ramette d'étiquettes adéquates dans l'imprimante, imprimer nos badges et commencer à accueillir d'un large sourire nos invités à bord.</p>
+
+
+</page>
diff --git a/help/fr/merge-ex2.page b/help/fr/merge-ex2.page
new file mode 100644 (file)
index 0000000..4e0b18e
--- /dev/null
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge-ex2" xml:lang="fr">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Créer des étiquettes d'adresses à partir d'un fichier CSV.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0</p>
+    </license>    
+  </info>
+
+    <title>Exemple 2 : étiquettes d'adresses</title>
+
+      <p>Pour illustrer cet exemple, disons que nous projetons d'organiser une soirée et nous avons besoin d'imprimer des étiquettes pour lancer les invitations. Nous avons une liste d'amis proches, liste créée à l'aide de <app>gnumeric</app> et exportée sous forme du fichier CSV ci-après. Il faut noter que tout le monde n'a pas d'initiale intermédiaire, ni d'adresse sur deux lignes.</p>
+
+      <code>
+NOM,PRÉNOM,INITIALE,ADRESSE1,ADRESSE2,VILLE,ÉTAT,CODE POSTAL
+,,,,,,,
+Critter,Ess,S,"123 Faux St.",,Alexandria,VA,22310
+Doe,John,,"Apt 1X","451 Mystery St.",Trenton,NJ,08601
+Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037
+McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813
+Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207
+      </code>
+
+      <p>Dans <app>gLabels</app>, nous créons un nouveau document sur le modèle des « Étiquettes adresses » AVERY 5512. Puis, avec l'élément de menu <guiseq><gui>Objets</gui><gui>Propriétés de fusion</gui></guiseq>, nous affichons la boîte de dialogue <gui>Propriétés de fusion</gui> ; nous sélectionnons le type de source (dans notre cas CVS avec en-têtes en première ligne) et son emplacement (nom de fichier) comme sur l'illustration ci-dessous.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-1.png" mime="image/png" style="right">
+               <p>Boîte de dialogue « Propriétés de fusion »</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Avant d'effectuer la fusion, nous allons enlever la coche sur la première ligne car elle ne contient que des champs vides. C'est un artefact de notre document <app>gnumeric</app> d'origine et l'imprimer ne ferait que gâcher la première étiquette. Nous pouvons de la même façon ôter la sélection de tout autre enregistrement pour lequel nous ne voulons pas imprimer de badge.</p>
+
+      <p>Il est aussi possible de voir le détail du contenu de chaque enregistrement en cliquant sur l'icône d'extension correspondante (le petit triangle) comme indiqué. Une fois les choix arrêtés dans cette boîte de dialogue, nous cliquons sur <guibutton>Valider</guibutton> pour confirmer les modifications.</p>
+
+      <p>Nous allons maintenant ajouter des objets au document <app>gLabels</app> comme indiqué ci-dessous.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-2.png" mime="image/png" style="right">
+               <p>Ajout d'objets</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Dans cet exemple, nous avons un seul objet texte. Celui-ci contient tous nos champs de fusion agencés sur plusieurs lignes comme le sont les adresses postales. Notez que les champs ${ADR1} et ${ADR2} ont été disposés sans aucune autre mention sur leur ligne. Lorsque <app>gLabels</app> rencontre un champ occupant à lui seul toute une ligne, il ne génère pas de ligne si le champ est vide.</p>
+
+      <p>Nous pouvons maintenant imprimer les étiquettes d'adresses en cliquant l'élément de menu <guiseq><gui>Fichier</gui><gui>Imprimer</gui></guiseq>. Cette commande ouvre la boîte de dialogue « Imprimer » comme illustré ci-dessous.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-3.png" mime="image/png" style="right">
+               <p>Impression des étiquettes d'adresses</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Pour s'assurer que les étiquettes auront bel aspect, nous activons l'option <gui>Imprimer des bordures</gui> et cliquons sur <gui>Aperçu avant impression</gui>. Cela déclenche l'affichage d'une fenêtre d'aperçu comme ci-dessous.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-4.png" mime="image/png" style="right">
+               <p>Aperçu des étiquettes d'adresses</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Tout paraît correct, nous pouvons donc maintenant charger le paquet d'étiquettes adéquates dans l'imprimante, imprimer les adresses et commencer à envoyer les invitations à la soirée.</p>
+
+</page>
diff --git a/help/fr/merge-ex3.page b/help/fr/merge-ex3.page
new file mode 100644 (file)
index 0000000..cdbb4fe
--- /dev/null
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge-ex3" xml:lang="fr">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Créer des étiquettes adresses à partir des enregistrements du carnet d'adresses d'<app>Evolution</app>.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0</p>
+    </license>    
+  </info>
+
+    <title>Exemple 3 : étiquettes d'adresses avec la liste des contacts d'<app>Evolution</app> </title>
+
+      <p>Notre précédente soirée a été un grand succès et nous voulons maintenant imprimer des étiquettes d'adresses pour lancer des invitations pour en organiser une autre. Pour simplifier l'opération, nous allons utiliser le carnet d'adresses d'<app>Evolution</app>, car les coordonnées de tous nos amis y figurent.</p>
+
+      <note>
+       <p>Selon la manière dont la copie de <app>gLabels</app> a été empaquetée, cette fonctionnalité peut ne pas être disponible. La prise en charge du carnet d'adresses d'<app>Evolution</app> n'est disponible que si <app>evolution-data-server</app> et ses fichiers de développement étaient présents lors de la compilation de <application>gLabels</application>. N'oubliez pas cela si vous construisez <application>gLabels</application> directement à partir des sources.</p>
+       
+       <p>Si le paquet <app>gLabels</app> de votre distribution ne comporte pas cette prise en charge, vous pouvez essayer de contacter le responsable du paquet ou envoyer un rapport d'anomalie pour demander l'ajout de cette fonctionnalité.</p>
+      </note>
+
+      <p>Dans <app>gLabels</app>, nous créons un nouveau document fondé sur le modèle des « Étiquettes adresses » AVERY 5512. Puis, avec l'élément de menu <guiseq><gui>Objets</gui><gui>Propriétés de fusion</gui></guiseq> nous affichons la boîte de dialogue <gui>Propriétés de fusion</gui> avec laquelle nous sélectionnons le type de source (ici <gui>Données du carnet d'adresses Evolution par défaut</gui>) comme illustré ci-après.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-1.png" mime="image/png" style="right">
+               <p>Boîte de dialogue « Propriétés de fusion »</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Après avoir choisi <gui>Données du carnet d'adresses Evolution par défaut</gui> comme source de fusion, nous obtenons la liste complète de son contenu. Par défaut, tous les enregistrements sont cochées. Nous pourrions organiser une soirée géante en laissant cette sélection telle que. Mais ne perdons pas de vue le budget. Nous allons donc retenir ou éliminer des participations en ajustant la coche des enregistrements d'un clic dans la case correspondante. Nous pouvons nous servir des boutons <gui>Sélectionner tout</gui> ou <gui>Désélectionner tout</gui> pour activer ou désactiver d'un coup toutes les entrées du carnet.</p>
+      <p>Nous pouvons aussi développer le contenu de chaque enregistrement en cliquant sur l'icône d'extension correspondante (le petit triangle) comme illustré. Une fois les choix arrêtés dans cette boîte de dialogue, cliquez <gui>Valider</gui> pour confirmer les modifications.</p>
+
+      <p>Nous allons maintenant ajouter des objets au document <app>gLabels</app> comme indiqué ci-dessous.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-2.png" mime="image/png" style="right">
+               <p>Ajout d'objets</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Dans cet exemple, nous avons à nouveau un seul objet texte contenant tous les champs de fusion disposés sur plusieurs lignes comme sur une adresse postale.</p>
+
+      <p>Nous pouvons maintenant imprimer les étiquettes d'adresses en cliquant sur l'élément de menu <guiseq><gui>Fichier</gui><gui>Imprimer</gui></guiseq>. La boîte de dialogue « Imprimer » s'affiche comme indiqué ci-dessous.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-3.png" mime="image/png" style="right">
+               <p>Impression des étiquettes d'adresses</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Pour s'assurer que les étiquettes auront bel aspect, nous activons l'option <gui>Imprimer des bordures</gui> et cliquons sur <gui>Aperçu avant impression</gui>. Cela déclenche l'affichage d'une fenêtre d'aperçu comme ci-dessous.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-4.png" mime="image/png" style="right">
+               <p>Aperçu des étiquettes d'adresses</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Tout paraît correct, nous pouvons donc maintenant charger le paquet d'étiquettes adéquates dans l'imprimante, imprimer les adresses et commencer à envoyer les invitations à la soirée.</p>
+
+
+</page>
diff --git a/help/fr/merge-ex4.page b/help/fr/merge-ex4.page
new file mode 100644 (file)
index 0000000..f5f7cb4
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge-ex4" xml:lang="fr">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Créer des étiquettes d'adresses à partir d'un fichier vCard.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0</p>
+    </license>    
+  </info>
+
+    <title>Exemple 4 : étiquettes d'adresses avec un fichier vCard</title>
+
+
+</page>
diff --git a/help/fr/merge.page b/help/fr/merge.page
new file mode 100644 (file)
index 0000000..7bbb43e
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge" xml:lang="fr">
+
+  <info>
+    <link type="guide" xref="index#merging"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Comment fusionner une source de données pour créer plusieurs documents.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0</p>
+    </license>    
+  </info>
+
+    <title>Guide pour la fusion de documents</title>
+
+    <p>La fusion de documents (quelquefois appelée « publipostage ») est une fonction puissante permettant d'imprimer une étiquette ou une carte pour chaque enregistrement d'une source de données extérieure. Elle est toutefois la fonction la moins bien connue de <app>gLabels</app>. Les exemples ci-après vont détailler les étapes à suivre pour quelques tâches courantes faisant appel à la fonctionnalité de fusion.</p>
+
+  <section id="merge-ex" style="2column">
+  </section>
+
+</page>
diff --git a/help/fr/mergefeatures.page b/help/fr/mergefeatures.page
new file mode 100644 (file)
index 0000000..2d9c9e6
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="mergefeatures" xml:lang="fr">
+
+  <info>
+    <link type="guide" xref="index#merging"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Qu'attendre d'une fusion de documents.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0</p>
+    </license>    
+  </info>
+
+    <title>Réalisation d'une fusion de documents</title>
+
+      <p>La fusion de documents (aussi appelée « Publipostage ») est un outil performant capable d'imprimer une étiquette ou une carte pour chaque enregistrement d'une source de données externe.</p>
+
+      <p>La première étape pour effectuer une fusion de document est de préparer le document source où figurent les données de cette fusion. Ce sont des adresses postales ou autres données pour lesquelles vous souhaitez créer une étiquette ou carte particulière. Pour l'instant, les seules sources possibles sont des fichiers texte ou le carnet d'adresses d'Evolution — d'autres sont prévues. Le format texte actuellement géré est très simple : chaque ligne est un enregistrement ; les champs sont séparés par des virgules (CSV), des tabulations ou le signe deux-points ; des sauts de lignes peuvent être placés à l'intérieur d'un champ en utilisant l'expression « \n ». Ce fichier peut être créé à l'aide de n'importe quel éditeur de texte ou généré par un autre programme ou script. Une méthode courante pour créer des fichiers CSV consiste à les exporter à partir d'un tableur.</p>
+
+      <p>Une étiquette doit ensuite être configurée pour « pointer » vers ce fichier de données. Pour configurer les propriétés de fusion d'un document, choisissez <guiseq><gui>Objets</gui><gui>Propriétés de fusion</gui></guiseq> pour afficher la boîte de dialogue <gui>Propriétés de fusion</gui>. Cette boîte de dialogue sert à définir exactement le format du fichier de données pour la fusion, ainsi que son nom et son emplacement.</p>
+
+      <p>Pour terminer, une fois l'étiquette associée au fichier de données, les champs clés peuvent être insérés dans des objets texte et utilisés comme source ou données pour des objets code-barre ou bien encore comme noms de fichiers image dans les objets image. Consultez <link xref="editprop"/> pour de plus amples informations sur l'utilisation des données de fusion pour ces types d'objets.</p>
+
+      <p>Après que l'étiquette est configurée, <application>gLabels</application> en imprime une pour chaque enregistrement du document source — remplaçant les valeurs des champs de chaque enregistrement par les champs clés correspondants de chaque objet texte, code-barre et image.</p>
+
+      <p>Consultez le <link xref="merge"/> pour des indications détaillées sur cette fonctionnalité.</p>
+
+</page>
diff --git a/help/fr/multifile.page b/help/fr/multifile.page
new file mode 100644 (file)
index 0000000..fcbe723
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="multifile" xml:lang="fr">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Comment ouvrir plusieurs fichiers à la fois avec la ligne de commande.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0</p>
+    </license>    
+  </info>
+
+    <title>Ouverture de plusieurs fichiers à partir de la ligne de commande</title>
+
+      <p>Vous pouvez lancer <app>gLabels</app> à partir de la ligne de commande tout en ouvrant un ou plusieurs fichiers. Pour ouvrir plusieurs fichiers, saisissez la commande suivante et pressez <key>Entrée</key> :</p>
+
+      <p><cmd>glabels <var>fichier1.glabels fichier2.glabels fichier3.glabels</var></cmd></p>
+
+      <p>Au démarrage de l'application, les fichiers que vous avez indiqués, s'ouvrent dans des fenêtres <app>gLabels</app> distinctes.</p>
+
+</page>
diff --git a/help/fr/newlabel.page b/help/fr/newlabel.page
new file mode 100644 (file)
index 0000000..59ec69f
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="newlabel" xml:lang="fr">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Comment créer une nouvelle étiquette ou carte avec <app>gLabels</app>.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0</p>
+    </license>    
+  </info>
+
+    <title>Création d'une nouvelle étiquette ou carte</title>
+
+    <p>Pour créer une nouvelle étiquette ou une nouvelle carte de visite, choisissez <guiseq><gui>Fichier</gui><gui>Nouveau</gui></guiseq> pour afficher la boîte de dialogue <gui>Nouvelle étiquette ou carte</gui>. Sélectionnez le type de support et l'orientation du nouveau document, puis cliquez sur <gui>Valider</gui>. Le nouveau document apparaît dans la zone d'affichage de la fenêtre de <app>gLabels</app>.</p>
+
+</page>
diff --git a/help/fr/printfile.page b/help/fr/printfile.page
new file mode 100644 (file)
index 0000000..a78fcf8
--- /dev/null
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="printfile" xml:lang="fr">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Comment imprimer étiquettes et cartes.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0</p>
+    </license>    
+  </info>
+
+    <title>Impression d'étiquettes ou cartes</title>
+
+      <p>Pour imprimer des étiquettes ou des cartes, choisissez <guiseq><gui>Fichier</gui><gui>Imprimer</gui></guiseq> pour afficher la boîte de dialogue <gui>Imprimer</gui>. Sélectionnez les options et cliquez sur <gui>Imprimer</gui> pour lancer l'impression. Pour simplement avoir un aperçu du résultat, cliquez sur <gui>Aperçu avant impression</gui>.</p>
+
+      <p>La boîte de dialogue <gui>Imprimer</gui> vous permet de définir les options d'impression suivantes :</p>
+
+      <section>
+       <title>Onglet « Étiquettes » de la boîte de dialogue « Imprimer »</title>
+
+       <section>
+            <title>Contrôle d'impression (simple)</title>
+
+             <p>Pour des étiquettes ou des cartes simples (sans fusion), l'onglet <guilabel>Étiquettes</guilabel> dispose des contrôles suivants.</p>
+
+             <!-- ==== Figure ==== -->
+               <media type="image" src="figures/print-copies.png" mime="image/png" style="right">
+               <p>Contrôles d'impression</p>
+               </media>
+             <!-- ==== End of Figure ==== -->
+
+             <p>Le nombre d'exemplaires d'étiquettes est indiqué en choisissant, soit le nombre de pages complètes à imprimer, soit un sous-ensemble donné d'étiquettes sur une seule page.</p>
+
+             <p>La prévisualisation en miniatures peut aussi être utilisé pour sélectionner graphiquement le sous-ensemble d'étiquettes à imprimer ; cliquez sur la miniature de la première étiquette et faites glisser le pointeur jusque sur la dernière.</p>
+
+         </section>
+
+         <section>
+            <title>Contrôle d'impression (fusion)</title>
+
+             <p>Pour des étiquettes ou des cartes utilisant la fusion de documents (aussi connue sous le nom de « publipostage »), l'onglet <guilabel>Étiquettes</guilabel> propose les contrôles de fusion suivants à la place de ceux pour une simple impression.</p>
+
+             <!-- ==== Figure ==== -->
+               <media type="image" src="figures/print-merge.png" mime="image/png" style="right">
+               <p>Contrôles de fusion pour l'impression d'un document</p>
+               </media>
+             <!-- ==== End of Figure ==== -->
+
+             <p>Le nombre total d'étiquettes ou de cartes imprimées est le produit du nombre d'enregistrements dans la source de fusion par le nombre de copies sélectionnées. Si vous voulez imprimer plusieurs exemplaires, vous pouvez choisir de les grouper (toutes les copies d'un même enregistrement sont regroupées) ou de les disjoindre (une étiquette pour chaque enregistrement est imprimée avant la copie suivante).</p>
+
+             <p>Sur la première page, vous pouvez débuter l'impression par n'importe quelle étiquette. Son numéro est choisi à l'aide du compteur <gui>Commencer par l'étiquette</gui>.</p>
+
+             <p>De même, vous pouvez sélectionner cette première étiquette graphiquement en cliquant sur la miniature de l'aperçu.</p>
+
+         </section>
+
+         <section> 
+         <title>Options</title>
+             <p>Vous pouvez aussi préciser les options suivantes :</p>
+             <list>
+               <item>
+                 <p><gui>imprimer des bordures</gui></p>
+                 <p>Imprime le cadre des étiquettes. Cette option est utile pour des essais à blanc, pour tester l'alignement de l'imprimante.</p>
+               </item>
+               <item>
+                 <p><gui>imprimer à l'envers</gui></p>
+                 <p>Imprime les étiquettes en miroir. Cette option est utile pour imprimer sur des supports transparents destinés à être vus de l'extérieur (par ex. sur une vitre de voiture).</p>
+               </item>
+               <item>
+                 <p><gui>imprimer les guides de coupe</gui></p>
+                 <p>Imprime les repères de massicot sur les bords de la feuille. Cette option est utile pour une impression sur feuilles blanches destinées à être découpées après impression. Elle ne fonctionne pas bien avec tous les modèles d'étiquette.</p>
+               </item>
+             </list>
+       </section>
+       </section>
+
+</page>
diff --git a/help/fr/select.page b/help/fr/select.page
new file mode 100644 (file)
index 0000000..a28d065
--- /dev/null
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="select" xml:lang="fr">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Comment sélectionner les objets.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0</p>
+    </license>    
+  </info>
+
+    <title>Sélection d'objets</title>
+
+      <p>Un prérequis pour réaliser des opérations sur des objets est la sélection d'un objet isolé ou d'un groupe d'objets. Pour effectuer de nouvelles sélections, la zone d'affichage doit être dans le mode sélection ; ce mode est indiqué par un pointeur en forme de flèche. Vous basculez en mode sélection d'objet en cliquant sur l'élément de menu <guiseq><gui>Objets</gui><gui>Mode sélection</gui></guiseq> ou sur le bouton correspondant de la <gui>Barre d'outils dessin</gui>.</p>
+
+      <section>
+         <title>Sélection d'un objet isolé</title>
+           <p>Un objet isolé est sélectionné par un simple clic dessus dans la zone d'affichage. Il apparaît alors en surbrillance avec un jeu de poignées de redimensionnement.</p>
+       </section>
+
+       <section>
+         <title>Sélection d'un groupe d'objets</title>
+           <p>Pour sélectionner plusieurs objets, commencez par cliquer sur l'un d'entre eux ; puis, tout en maintenant la touche <key>Ctrl</key> enfoncée, cliquez sur les autres. À tout moment, d'autres objets peuvent être ajoutés à une sélection existante suivant le même processus. Il est aussi possible de sélectionner tous les objets en même temps en cliquant sur l'élément de menu <guiseq><gui>Édition</gui><gui>Tout sélectionner</gui></guiseq>. Tous les objets d'une sélection groupée apparaissent en surbrillance.</p>
+       </section>
+
+       <section>
+         <title>Sélection par zone</title>
+         
+           <p>Plusieurs objets peuvent aussi être sélectionnés à l'aide de la souris en cliquant sur une zone libre et en faisant glisser le pointeur pour délimiter une surface rectangulaire. Au relâchement du bouton de souris, tous les objets englobés dans le rectangle font partie de la sélection groupée. La sélection de zone peut être utilisée pour ajouter des objets à une sélection existante en maintenant la touche <key>Ctrl</key> enfoncée pendant l'opération.</p>
+         
+       </section>
+
+       <section>
+         <title>Désélection d'objets</title>
+         
+           <p>Tout objet isolé peut être retiré d'une sélection existante en cliquant dessus tout en maintenant la touche <key>Ctrl</key> enfoncée. La totalité d'une sélection peut être libérée en sélectionnant l'élément de menu <guiseq><gui>Édition</gui><gui>Désélectionner tout</gui></guiseq> ou plus simplement en cliquant dans une partie libre de la zone d'affichage. Dès qu'un objet n'est plus sélectionné, il n'apparaît plus en surbrillance.</p>
+         
+       </section>
+
+    <section id="clipboard"> 
+      <title>Les commandes du presse-papier</title>
+
+      <p>Des sélections d'objets peuvent être manipulées avec les fonctions classiques du presse-papier : <gui>Couper</gui>, <gui>Copier</gui>, <gui>Coller</gui> et <gui>Supprimer</gui>.</p>
+
+       <section>
+         <title><gui>Couper</gui> (<keyseq><key>Ctrl</key><key>X</key></keyseq>)</title>
+         
+           <p>Déplace les objets sélectionnés dans le presse-papier. Ils sont alors disponibles pour être collés à nouveau dans le même document ou dans un autre.</p>
+         
+       </section>
+
+       <section>
+         <title><gui>Copier</gui> (<keyseq><key>Ctrl</key><key>C</key></keyseq>)</title>
+         
+           <p>Place une copie des objets sélectionnés dans le presse-papier sans effacer les originaux. Ils sont alors disponibles pour être collés à nouveau dans le même document ou dans un autre.</p>
+         
+       </section>
+
+       <section>
+         <title><gui>Coller</gui> (<keyseq><key>Ctrl</key><key>V</key></keyseq>)</title>
+         
+           <p>Colle les objets du presse-papier dans le document actif. <app>gLabels</app> ne peut coller que des objets provenant d'un autre document <app>gLabels</app>.</p>
+         
+       </section>
+
+       <section>
+         <title><gui>Supprimer</gui> (<key>Suppr</key>)</title>
+         
+           <p>Supprime les objets sélectionnés sans les placer dans le presse-papier.</p>
+         
+       </section>
+       </section>
+
+</page>
diff --git a/help/fr/skipfields.page b/help/fr/skipfields.page
new file mode 100644 (file)
index 0000000..1c10b64
--- /dev/null
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="mergeskipfields" xml:lang="fr">
+
+  <info>
+    <link type="guide" xref="index#merging"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Comment éviter des lignes blanches dans les adresses lors de la fusion de documents.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0</p>
+    </license>    
+  </info>
+
+  <title>Élision des lignes blanches dans les adresses</title>
+
+  <p>Cette fonctionnalité est mieux décrite avec un simple exemple. Dans le fichier CVS suivant, la colonne 5 (ADR2) contient la deuxième ligne d'adresse pour chaque enregistrement. Ce champ est vide dans les enregistrements 1 et 2, mais pas dans le 3 (pour que cette fonctionnalité fonctionne, le champ doit être totalement vide — tout texte, y compris des espaces, la met en défaut).</p>
+
+  <code>
+  NOM,PRENOM,INI,ADR1,ADR2,VILLE,REGION,CP
+  Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037
+  McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813
+  Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207
+  </code>
+
+  <p>Dans la capture d'écran suivante, pour formater ces adresses, nous avons créé un seul objet texte avec plusieurs lignes. Vous noterez que ${ADDR2}, qui représente la deuxième ligne d'adresse, occupe bien une ligne à lui seul (n'importe quel texte ajouté sur cette ligne, y compris des espaces, met en défaut cette fonctionnalité).</p>
+
+  <media type="image" src="figures/skip-fields-screenshot.png" mime="image/png" style="right">
+  <p>Adresse sur plusieurs lignes</p>
+  </media>
+
+  <p>L'impression de cette étiquette donne la sortie suivante. Vous noterez que la ligne contenant le champ ${ADR2} est totalement omise pour les deux premiers enregistrements, sans imprimer de ligne blanche.</p>
+
+  <media type="image" src="figures/skip-fields-output.png" mime="image/png" style="right">
+  <p>Sortie</p>
+  </media>
+
+</page>
diff --git a/help/glabels.omf.in b/help/glabels.omf.in
deleted file mode 100644 (file)
index b79de5c..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<omf>
-  <resource>
-    <subject category="Applications|Office"/>
-    <type>
-       manual
-    </type>
-       <relation seriesid="283ccb74-3d5c-11de-8d40-e8b06f874863"/>
-       <rights type="GNU FDL" license.version="1.1"
-      license="http://www.gnu.org/licenses/fdl.html" holder="Jim Evins"/>
-  </resource>
-</omf>
diff --git a/help/nl/about.page b/help/nl/about.page
new file mode 100644 (file)
index 0000000..11a06dc
--- /dev/null
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="topic" id="about" xml:lang="nl">
+
+  <info>
+    <link type="seealso" xref="index"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      Information about <app>gLabels</app>.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>About <app>gLabels</app></title>
+
+    <p> <app>gLabels</app> was written by <link href="mailto:evins@snaught.com">Jim Evins</link>.
+      To find more information about <app>gLabels</app>, please visit the 
+      <link href="http://glabels.org" type="http"><app>gLabels</app> Web
+       page</link>. </p>
+    <p>
+      To report a bug or make a suggestion regarding this application or
+      this manual, follow the directions at the
+      <link href="http://glabels.org/contact/" type="http"><app>gLabels</app> Contact Page</link>.
+    </p>
+
+    <p> This program is distributed under the terms of the GNU
+      General Public license as published by the Free Software
+      Foundation; either version 3 of the License, or (at your option)
+      any later version. A copy of this license can be found at this
+      <link href="ghelp:gpl" type="help">link</link>, or in the file
+      COPYING included with the source code of this program. </p>
+</page>
diff --git a/help/nl/basicusage.page b/help/nl/basicusage.page
new file mode 100644 (file)
index 0000000..de8726d
--- /dev/null
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="basicusage" xml:lang="nl">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      Handling files and quit the application.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+   <title>Basic usage</title>
+    
+    <section>
+    <title>To open a file</title>
+
+      <p>To open a file, choose 
+        <guiseq><gui>File</gui><gui>Open</gui>
+       </guiseq> to display the <gui>Open File</gui> dialog.
+        Select the file that you want to open, then click
+        <gui>OK</gui>. The file is displayed in the display area
+        of the <app>gLabels</app> window. </p>
+
+      <p>You can also open multiple files in
+        <app>gLabels</app>. The application creates a separate
+        application window for each open file.</p>
+
+      <p>The application records the paths and filenames of the
+        most recent files that you have edited and displays the files as menu
+        items on the <guiseq><gui>File</gui><gui>Recent Files</gui>
+        </guiseq> menu.</p>
+     </section>
+
+     <section id="closefile">
+    <title>To close a file</title>
+
+      <p>To close the current document, choose
+        <guiseq><gui>File</gui>
+        <gui>Close</gui></guiseq> to close the application
+        window.  If the current document is modified, a confirmation dialog
+        will be presented, allowing you to save the document or cancel
+        the command.  If the window being closed is the only open window,
+        <app>gLabels</app> will exit.</p>
+     </section>
+     
+     <section>
+    <title>To save a file</title>
+
+      <p>You can save files in the following ways:</p>
+
+      <list><item>
+
+         <p>To save changes to an existing file, choose 
+            <guiseq><gui>File</gui>
+            <gui>Save</gui></guiseq>. </p>
+
+       </item>
+        <item>
+
+         <p>To save a new file or to save an existing file under a new
+            filename, choose <guiseq><gui>File</gui>
+            <gui>Save As</gui></guiseq>. Enter a name
+            for the file in the <gui>Save As</gui> dialog box,
+            then click <gui>OK</gui>.</p>
+
+       </item>
+      </list>
+     </section>
+
+     <section>
+    <title>To quit <app>gLabels</app></title>
+
+      <p>To quit <app>gLabels</app>, choose <guiseq><gui>File</gui>
+        <gui>Quit</gui></guiseq>. This is equivalent to closing all open windows. 
+        See <link xref="basicusage#closefile"/>.</p>
+     </section>
+</page>
diff --git a/help/nl/createnew.page b/help/nl/createnew.page
new file mode 100644 (file)
index 0000000..de33fba
--- /dev/null
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="createnew" xml:lang="nl">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      Create new objects within your document.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>To create new objects</title>
+
+      <p>Objects are created by choosing the appropriate selection under
+        the <guiseq><gui>Objects</gui><gui>Create Object</gui></guiseq> submenu
+        or the <gui>Drawing Toolbar</gui>.  This will place the display area into
+        object creation mode as indicated by its cursor.  To return to the default
+        object selection mode without creating an object, choose
+        <guiseq><gui>Objects</gui><gui>Select Mode</gui></guiseq>.  This will
+        return the display area's cursor to the default selection arrow.</p>
+
+      <p>The following describes the object creation mode for each object
+        type:</p>
+
+       <section>
+         <title>Text</title>
+           <p>Click the desired location of the upper left corner of the
+              text object.  New text objects are initialized with the
+              string "Text."  To change this text, or other properties, see
+              <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Box</title>
+           <p>Click the desired location of the upper left corner of the
+              box object and drag to the desired location of the lower right
+              corner.  If you simply click in a single location, a square
+              box will be created. To change properties of the box object, see
+              <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Line</title>
+           <p>Click the desired location of one end of the
+              line object and drag to the desired location of the other end.
+              If you simply click in a single location, a diagonal line
+              will be created. To change properties of the line object, see
+              <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Ellipse</title>
+           <p>Click the desired location of the upper left corner of the
+              ellipse object and drag to the desired location of the lower
+              right corner.  If you simply click in a single location, a circle
+              will be created. To change properties of the ellipse object, see
+              <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Image</title>
+           <p>Click the desired location of the upper left corner of the
+              image object and drag to the desired location of the lower
+              right corner.  If you simply click in a single location, a square
+              will be created.  New image objects are initialized with a
+              simple checkerboard image.  To change this image, or other
+              properties of the image object, see
+              <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Barcode</title>
+           <p>Click the desired location of the upper left corner of the
+              barcode object.  New barcode objects are initialized to a
+              POSTNET barcode with representative data.  To change data
+              and properties of the barcode object, see
+              <link xref="editprop"/>.</p>
+       </section>
+
+</page>
diff --git a/help/nl/customize.page b/help/nl/customize.page
new file mode 100644 (file)
index 0000000..71feda6
--- /dev/null
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="customize" xml:lang="nl">
+
+  <info>
+    <link type="guide" xref="index#advanced"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Customize <app>gLabels</app> to match your needs.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+    
+  <!-- ============= Customization ============================= -->
+  <!-- Use this section to describe how to customize the application. -->
+    <title>Settings</title> 
+    <p>To configure <app>gLabels</app>, choose 
+      <guiseq> 
+       <gui>Settings</gui> 
+       <gui>Preferences</gui> 
+      </guiseq>. The 
+      <gui>Preferences</gui> dialog contains the following tabbed
+      sections:</p>
+
+  <section id="prefs-locale" style="2column">
+    <title>Locale</title>
+       <section>
+       <title>Units</title>
+       <p>Use this radio button group to specify your preferred units.
+              Select one of the following options:</p>
+          <list>
+               <item>
+               <p><gui>Points</gui></p>
+               <p>Use points (1 point = 1/72 in = 0.352778 mm).</p>
+               </item>
+               <item>
+               <p><gui>Inches</gui></p>
+               <p>Use Inches.</p>
+               </item>
+               <item>
+               <p><gui>Millimeters</gui></p>
+               <p>Use Millimeters.</p>
+               </item>
+          </list>
+          <p>Default: <gui>Inches</gui>.</p>
+       </section>
+
+       <section>
+       <title>Default page size</title>
+       <p>Use this radio button group to specify your prefered page size.
+              This will make it quicker for you to locate media types when creating a new
+              label or card.</p>
+          <list>
+               <item>
+               <p><gui>US Letter</gui></p>
+               <p>Most of your media will be of the US Letter page size (8.5 x 11 inches).</p>
+               </item>
+               <item>
+               <p><gui>ISO A4</gui></p>
+               <p>Most of your media will be of the ISO A4 page size (210 x 297 mm).</p>
+               </item>
+          </list>
+          <p>Default: <gui>US Letter</gui>.</p>                
+       </section>
+    </section>
+
+  <section id="prefs-defaults" style="2column">
+    <title>Object Defaults</title>
+
+       <section>
+       <title>Text</title>
+       <p>Use these controls to set the default properties of new text objects.
+              These properties are:</p>
+          <list>
+               <item>
+               <p><gui>Font</gui></p>
+               <p>These controls are used to select font family and font size, and
+                  whether the font should bold or in italics.</p>
+               </item>
+               <item>
+               <p><gui>Color</gui></p>
+               <p>This control selects the default text color.</p>
+               </item>
+               <item>
+               <p><gui>Alignment</gui></p>
+               <p>These controls are used to select the default text alignment (left, center or right).</p>
+               </item>
+          </list>
+       </section>
+
+       <section>
+       <title>Line</title>
+       <p>Use these controls to set the default properties of lines and outlines of
+              new objects.  These properties are:</p>
+          <list>
+               <item>
+               <p><gui>Width</gui></p>
+               <p>This control selects the default line width.</p>
+               </item>
+               <item>
+               <p><gui>Color</gui></p>
+               <p>This control selects the default line color.</p>
+               </item>
+          </list>
+       </section>
+
+       <section>
+       <title>Fill</title>
+       <p>Use this control to set the default fill property of
+              new objects.  This property is:</p>
+          <list>
+               <item>
+               <p><gui>Color</gui></p>
+               <p>This control selects the default fill color.</p>
+               </item>
+          </list>
+       </section>
+       </section>
+
+</page>
diff --git a/help/nl/customtemplate.page b/help/nl/customtemplate.page
new file mode 100644 (file)
index 0000000..1642a54
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="customtemplate" xml:lang="nl">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      Create your own templates for stationery products.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>To create a custom template</title>
+
+      <p>To create a new custom template, choose 
+        <guiseq><gui>File</gui>
+       <gui>Template Designer ...</gui></guiseq>
+       to display the <gui>Template Designer</gui> dialog.
+        This dialog will assist you in creating a custom template for
+        most types of label or card stationery that you may encounter.</p>
+
+      <p>If you prefer, you can create your templates manually.
+        For this option see <link xref="mancreate"/>
+      </p>
+
+</page>
diff --git a/help/nl/editprop.page b/help/nl/editprop.page
new file mode 100644 (file)
index 0000000..901a0fe
--- /dev/null
@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="editprop" xml:lang="nl">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      Change the properties of objects.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>To edit object properties</title>
+
+    <section id="glabels-object-properties">
+
+      <p>Most object properties can be modified through the object
+        editor sidebar, illustrated below.  To use the object editor,
+        a single object must first be selected.  See
+        <link xref="select"/>.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/object-editor-sidebar.png" mime="image/png" style="right">
+               <p>Print Copy Controls</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>The object editor will contain a subset of the following
+        tabbed sections, depending on object type:</p>
+
+      <section id="object-editor-text">
+       <title>Text Tabbed Section (Text objects)</title>
+
+       <p>This section contains a small editor for changing the content
+          of a text object.  It also contains a dropdown menu of available
+          document merge keys, that can be inserted into text.</p>
+
+      </section>
+
+      <section id="object-editor-image">
+       <title>Image Tabbed Section (Image objects)</title>
+
+       <p>This section contains a file entry with preview to select
+          image files.  The browse button can be used to easily locate
+          image files.  Alternatively, a document merge key can be used
+          instead to provide a filename at print time.</p>
+
+      </section>
+
+      <section id="object-editor-data">
+       <title>Data Tabbed Section (Barcode objects)</title>
+
+       <p>This section contains a text entry to enter literal barcode
+          data.  Alternatively, a document merge key can be used to
+          provide this data at print time.</p>
+
+      </section>
+
+      <section id="object-editor-style">
+       <title>Style Tabbed Section (Text objects)</title>
+
+       <p>This section contains controls to select text properties,
+          including font family, font size, font weight, color, and
+          text justification.</p>
+
+      </section>
+
+      <section id="object-editor-barcode">
+       <title>Style Tabbed Section (Barcode objects)</title>
+
+       <p>This section contains controls to select barcode properties,
+          including barcode style, color, whether to print text, and whether
+          to include a checksum digit.</p>
+
+      </section>
+
+      <section id="object-editor-line">
+       <title>Line Tabbed Section</title>
+
+       <p>This section contains controls to select properties of lines
+          and outlines.  These properties include line width and color.</p>
+
+      </section>
+
+      <section id="object-editor-fill">
+       <title>Fill Tabbed Section</title>
+
+       <p>This section contains controls to select fill properties of box
+          and ellipse objects.  Currently the only fill property is fill
+          color.</p>
+
+      </section>
+
+      <section id="object-editor-size">
+       <title>Size Tabbed Section (All except line objects)</title>
+
+       <p>This section contains controls to select the width and height
+          of an object.  A checkbox is provided, so that the current aspect
+          ratio can be locked while manipulating the width and height controls.
+          Image objects also provide a button to reset the size to the
+          image's natural size (Assumes 72DPI).</p>
+
+      </section>
+
+      <section id="object-editor-size-line">
+       <title>Size Tabbed Section (Line objects)</title>
+
+       <p>This section contains controls to select the length and angle
+          of a line object.</p>
+
+      </section>
+
+      <section id="object-editor-position">
+       <title>Position Tabbed Section</title>
+
+       <p>This section contains controls to change the position of an
+          object.</p>
+
+      </section>
+
+
+      <section id="object-editor-shadow">
+       <title>Shadow Tabbed Section (All except barcode objects)</title>
+
+       <p>This section contains controls to add a shadow to an object.</p>
+
+      </section>
+
+
+    </section>
+
+<!-- ============= Other Manipulations of Objects ========= -->
+    <section id="glabels-object-manipulation"> 
+      <title>Other Manipulations of Objects</title>
+
+      <p>Objects can also be manipulated in the following ways.</p>
+
+      <section id="other-moving-resizing">
+       <title>Moving and Resizing Objects</title>
+
+       <p>Objects can be moved by simply clicking on a selected
+          object and dragging the object to its new location.  If the object
+          is part of an aggregate selection, all objects in the selection
+          will move with the object being dragged, maintaining their relative
+          positions to one another.  If no object is selected, clicking on
+          an object will create a new selection containing that object.
+          See <link xref="select"/>.</p>
+
+       <p>A selected object can be resized by clicking one of its resize
+          handle and dragging it to obtain the new size.</p>
+
+      </section>
+
+      <section id="other-stacking-order">
+       <title>Changing Stacking Order</title>
+
+       <p>Stacking order refers to relative position in the z-axis of
+          objects.  That is when objects overlap, which object will appear
+          on top of the other.  By default, newer objects will appear above
+          older objects.  To change this order, select one or more objects
+          and choose <guiseq> <gui>Objects</gui>
+          <gui>Order</gui>
+          <gui>Bring to Front</gui> </guiseq>
+          to raise the selection to the top of the stacking
+          order, or choose <guiseq> <gui>Objects</gui>
+          <gui>Order</gui>
+          <gui>Send to Back</gui> </guiseq>
+          to lower the selection to the bottom of the
+          stacking order.  These menuitems are also available by right-clicking
+          the display area when there is a non-empty selection.</p>
+
+      </section>
+
+      <section id="other-rotating-flipping">
+       <title>Rotating and Flipping Objects</title>
+
+       <p>Objects can be rotated 90 degrees in either direction, or flipped
+          horizontally or vertically, by choosing the appropriate menuitem
+          in the  <guiseq> <gui>Objects</gui>
+          <gui>Rotate/Flip</gui> </guiseq> sub-menu.  These
+          menuitems are also available by right-clicking
+          the display area when there is a non-empty selection.</p>
+
+         <note>
+         <p>
+         This feature could be useful when you are designing CD box inlays. For 
+          the spine caption, you need vertical aligned text. After you have created
+          a basic text box, choose <guiseq> <gui>Objects</gui><gui>Rotate/Flip</gui> </guiseq>
+          to rotate the text box according to your needs.
+         </p>
+         </note>
+
+      </section>
+
+      <section id="other-alignment">
+       <title>Aligning Objects</title>
+
+       <p>Objects can be aligned horizontally or vertically, relative to
+          one another, or relative to the center line of the label, by
+          choosing the appropriate menuitem from the  <guiseq>
+          <gui>Objects</gui>
+          <gui>Align Horizontal</gui>
+          </guiseq> or  <guiseq> <gui>Objects</gui>
+          <gui>Align Vertical</gui> </guiseq> sub-menus.
+          These menuitems are also available by right-clicking
+          the display area when there is a non-empty selection.</p>
+
+      </section>
+
+      <section id="other-property-bar">
+       <title>Using the Property Bar</title>
+
+       <p>The property bar can be used to change some common properties
+          of objects en-masse.  These properties include font family, font
+          size, font weight, text alignment, text color, fill color, line
+          or outline color, and line width.  The property bar also controls
+          the defaults for these properties for any newly created objects.
+          </p>
+
+      </section>
+
+
+
+    </section>
+
+</page>
diff --git a/help/nl/index.page b/help/nl/index.page
new file mode 100644 (file)
index 0000000..1c51b39
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="index" xml:lang="nl">
+
+  <info>
+    <title type="link">gLabels label and business card designer</title>
+    <title type="text">gLabels label and business card designer</title>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+  <title>
+    <media type="image" mime="image/png" src="figures/glabels-logo.png">gLabels logo</media>
+    gLabels Manual
+  </title>
+
+  <p>
+    The <app>gLabels</app> application is a lightweight program for creating labels and 
+    business cards for the GNOME desktop environment. It is designed to work with 
+    various laser/ink-jet peel-off label and business card sheets that you'll find 
+    at most office supply stores.
+  </p>
+  <p>
+    <app>gLabels</app> can be used to design address labels, name tags, price tags,
+    cd/dvd labels, or just about anything else that is organized in a regular
+    pattern on a sheet of paper.  Labels (or cards) can contain text, images, lines,
+    shapes, and barcodes.  <app>gLabels</app> also includes a document-merge
+    feature which lets you print a unique label for each record from an external
+    data source, such as a CSV file or an <app>Evolution</app> address book.
+  </p>
+
+  <figure>
+    <title><app>gLabels</app> main window</title>
+    <desc><app>gLabels</app> main window</desc>
+    <media type="image" src="figures/introduction-glabels-main-window.png" mime="image/png" style="right">
+      <p><app>gLabels</app> main window.</p>
+    </media>
+  </figure>
+
+  <section id="usage" style="2column">
+    <title>Usage</title>
+  </section>
+
+  <section id="merging" style="2column">
+    <title>Document Merging</title>
+  </section>
+
+  <section id="advanced" style="2column">
+    <title>Advanced usage</title>
+  </section>
+
+</page>
diff --git a/help/nl/labelprop.page b/help/nl/labelprop.page
new file mode 100644 (file)
index 0000000..859584e
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="labelprop" xml:lang="nl">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      How to change the properties of a label or business card.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>To change label properties</title>
+
+      <p>To change the media type and/or orientation of a label, choose
+        <guiseq><gui>File</gui>
+        <gui>Properties</gui></guiseq> to display the
+        <gui>Label properties</gui> dialog.  Select the
+        new media type and orientation for the document, then click
+        <gui>OK</gui>.</p>
+
+</page>
diff --git a/help/nl/license.page b/help/nl/license.page
new file mode 100644 (file)
index 0000000..344f171
--- /dev/null
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" type="topic" id="license" xml:lang="nl">
+  
+  <info>
+    <link type="seealso" xref="index"/>
+    <revision pkgversion="2.30" version="0.1" date="2009-12-28" status="draft"/>
+    <desc>Legal information.</desc>
+  </info>
+
+  <title>License</title>
+  <p>
+    
+    This work is distributed under a CreativeCommons Attribution-Share Alike
+    3.0 Unported license.
+  </p>
+  <p>
+    You are free:
+  </p>
+  <terms>
+    <item>
+      <title><em>To share</em></title>
+      <p>To copy, distribute and transmit the work.</p>
+    </item>
+    <item>
+      <title><em>To remix</em></title>
+      <p>To adapt the work.</p> 
+    </item>
+  </terms>
+  <p>
+    Under the following conditions:
+  </p>
+  <terms>
+    <item>
+      <title><em>Attribution</em></title>
+      <p>
+        You must attribute the work in the manner specified by the author or 
+        licensor (but not in any way that suggests that they endorse you or 
+        your use of the work).  
+      </p>
+    </item>
+    <item>
+      <title><em>Share Alike</em></title>
+      <p>
+        If you alter, transform, or build upon this work, you may distribute the 
+        resulting work only under the same, similar or a compatible license.  
+      </p>
+    </item>
+  </terms>
+  <p>
+    
+    For the full text of the license, see the 
+    <link href="http://creativecommons.org/licenses/by-sa/3.0/legalcode">CreativeCommons website</link>, 
+    or read the full <link href="http://creativecommons.org/licenses/by-sa/3.0/">Commons Deed</link>. 
+  </p>
+</page>
diff --git a/help/nl/mancreate.page b/help/nl/mancreate.page
new file mode 100644 (file)
index 0000000..ca3b5cb
--- /dev/null
@@ -0,0 +1,770 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" xmlns:its="http://www.w3.org/2005/11/its" type="guide" id="mancreate" xml:lang="nl">
+
+  <info>
+    <link type="guide" xref="index#advanced"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      Create your templates manually.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+  <title>Manually creating new templates</title>
+
+
+
+  <!-- ****************** -->
+  <!-- BEGIN Introduction -->
+  <!-- ****************** -->
+  <p>This page is a reference guide to manually creating <app>gLabels</app> templates.
+  <app>gLabels</app> templates are defined in simple XML files as described in the DTD:
+  <link href="http://glabels.org/xmlns/2.3/glabels-2.3.dtd.txt">glabels-2.3.dtd</link>
+  (this DTD also describes other XML files used by <app>gLabels</app>).</p>
+
+  <p>Manually created template files should be placed in the <file>${HOME}/.glabels</file>
+  and be named with a <file>.template</file> extension.</p>
+
+  <note style="advanced">
+    <p><app>gLabels</app> searches for templates in several other locations as defined here:</p>
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Location</p></td>
+        <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>
+        <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><file>${prefix}/share/libglabels-3.0/templates</file></p></td>
+        <td><p>Predefined templates distributed with <app>gLabels</app>.</p>
+            <p><file>${prefix}</file> is usually <file>/usr</file> or <file>/usr/local</file>,
+            depending on where <app>gLabels</app> was installed.</p></td>
+      </tr>
+      <tr>
+        <td><p><file>${XDG_CONFIG_HOME}/libglabels/templates</file></p></td>
+        <td><p>User defined templates created with the <app>gLabels</app> <gui>Template Designer</gui>.
+            <em>Do not put manually created templates in this directory.</em></p>
+            <p>If <file>${XDG_CONFIG_HOME}</file> is not defined, it defaults to <file>${HOME}/.config</file>.</p></td>
+      </tr>
+      <tr>
+        <td><p><file>${HOME}/.glabels</file></p></td>
+        <td><p>User defined templates that have been created manually should be placed in this
+            directory.
+            Older versions of the <app>gLabels</app> <gui>Template Designer</gui> (prior to 3.0)
+            would also put templates in this directory.</p></td>
+      </tr>
+    </table>
+  </note>
+
+  <note><p>Completed template files can be sent to the
+        <app>gLabels</app> template
+        <link href="mailto:glabels-templates@lists.sourceforge.net">mailing list</link>
+        for possible inclusion in future versions of <app>gLabels</app>.</p>
+  </note>
+  <!-- ****************** -->
+  <!-- END Introduction   -->
+  <!-- ****************** -->
+
+
+  <!-- ***************** -->
+  <!-- BEGIN Assumptions -->
+  <!-- ***************** -->
+  <section id="template-assumptions">
+    <title>Assumptions/caveats</title>
+    <list>
+      <item>
+        <p>A sheet contains only one size of label or card (if a sheet
+          contains more than one size of item, it can be split into
+           multiple templates for multiple pass printing)</p>
+      </item>
+      <item>
+        <p>Distances can be expressed in units of <code translate="no">pt</code>,
+          <code translate="no">in</code>, <code translate="no">mm</code>,
+          <code translate="no">cm</code>, or <code translate="no">pc</code>.  For example:
+          "<code translate="no">1.0in</code>" or "<code translate="no">2.54cm</code>".  If no
+          units are specified, computer points (<code translate="no">pt</code>) will
+          be assumed (1 <em>pt</em> =
+          1/72 <em>in</em> = 0.352778 <em>mm</em>).
+          </p>
+      </item>
+    </list>
+  </section>
+  <!-- ***************** -->
+  <!-- END Assumptions   -->
+  <!-- ***************** -->
+
+
+
+  <!-- ******************** -->
+  <!-- BEGIN Template Files -->
+  <!-- ******************** -->
+  <section id="template-file">
+    <title>Template Files</title>
+
+    <p>A template file contains a single <code translate="no">Glabels-templates</code> top-level
+    node.</p>
+
+    <code mime="text/xml" translate="no">
+&lt;?xml version="1.0"?&gt;
+&lt;Glabels-templates&gt;
+
+   <var translate="yes">...templates...</var>
+
+&lt;/Glabels-templates&gt;</code>
+
+    <listing>
+      <title>Example Template</title>
+      <desc>Example <app>gLabels</app> template file containing a single
+            <code translate="no">Template</code> node.</desc>
+      <code mime="text/xml" translate="no">
+&lt;?xml version="1.0"?&gt;
+&lt;Glabels-templates&gt;
+
+  &lt;Template brand="Avery" part="8160" size="US-Letter" description="Mailing Labels"&gt;
+    &lt;Meta category="label"/&gt;
+    &lt;Meta category="mail"/&gt;
+    &lt;Meta product_url="http://www.avery.com/avery/en_us/"/&gt;
+    &lt;Label-rectangle id="0" width="189pt" height="72pt" round="5pt"&gt;
+      &lt;Markup-margin size="5pt"/&gt;
+      &lt;Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/&gt;
+    &lt;/Label-rectangle&gt;
+  &lt;/Template&gt;
+
+&lt;/Glabels-templates&gt;</code>
+    </listing>
+
+  </section>
+  <!-- ******************** -->
+  <!-- END Template Files   -->
+  <!-- ******************** -->
+
+
+
+  <!-- ******************** -->
+  <!-- BEGIN Template Node  -->
+  <!-- ******************** -->
+  <section id="template-template-node">
+    <title><span translate="no">Template</span> Node</title>
+
+    <p>A <code translate="no">Template</code> node describes a single
+      stationery product.  It must contain one instance of any type of Label node
+      (<code translate="no">Label-rectangle</code>,
+      <code translate="no">Label-round</code>, or
+      <code translate="no">Label-cd</code>).</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Property</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">brand</code></p></td>  
+        <td><p>Brand or manufacturer of stationery product. E.g. "Avery"</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">part</code></p></td>
+        <td><p>Part number or name of stationery product. E.g. "8160"</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">size</code></p></td>
+        <td><p>Size of sheet.
+               E.g., "<code translate="no">US-Letter</code>", "<code translate="no">A4</code>", ...
+            </p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">description</code></p></td>
+        <td><p>Description of stationery product.  E.g, "Mailing Labels."</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">_description</code></p></td>
+        <td><p>Translatable description of stationery product. E.g, "Mailing Labels."
+            (Only useful for predefined templates)</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">width</code></p></td>
+        <td><p>Page width.  Only valid if size="Other"</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">height</code></p></td>
+        <td><p>Page height.  Only valid if size="Other"</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">equiv</code></p></td>
+        <td><p>Equivalent part number.  If this property is present, the template
+            is a clone of another template of the same brand.  The template will
+            inherit all properties, except brand and name from the other template.
+            This equiv property must refer to a previously defined template - 
+            <app>gLabels</app> does not currently support forward references.</p></td>
+      </tr>
+    </table>
+
+  </section>
+  <!-- ******************** -->
+  <!-- END Template Node    -->
+  <!-- ******************** -->
+
+
+  <!-- ******************** -->
+  <!-- BEGIN Meta Node      -->
+  <!-- ******************** -->
+  <section id="meta-template-node">
+    <title><span translate="no">Meta</span> Node</title>
+
+    <p>A <code translate="no">Meta</code> node contains some additional
+         information about the template. A <code translate="no">Template</code>
+         node may contain zero or more <code translate="no">Meta</code> nodes.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Subnode</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">category</code></p></td>
+        <td><p>A category for the template.
+            A template can belong to multiple categories by simply adding multiple
+            <code translate="no">Meta</code> nodes to the parent
+            <code translate="no">Template</code> node.
+            Template categories are used by the <app>gLabels</app> <gui>New Label
+            Dialog</gui> to filter the results of template searches.</p>
+
+            <p>The value of this category must match a predefined category ID defined in
+            the file <file>${prefix}/libglabels-3.0/templates/categories.xml</file>.
+             Currently defined category IDs include:</p>
+            <list>
+              <item><p><code translate="no">label</code></p></item>
+              <item><p><code translate="no">round-label</code></p></item>
+              <item><p><code translate="no">elliptical-label</code></p></item>
+              <item><p><code translate="no">square-label</code></p></item>
+              <item><p><code translate="no">rectangle-label</code></p></item>
+              <item><p><code translate="no">card</code></p></item>
+              <item><p><code translate="no">business-card</code></p></item>
+              <item><p><code translate="no">media</code></p></item>
+              <item><p><code translate="no">mail</code></p></item>
+              <item><p><code translate="no">foldable</code></p></item>
+              <item><p><code translate="no">photo</code></p></item>
+            </list>
+
+
+        </td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">product_url</code></p></td>
+        <td><p>A URL pointing to the vendor's webpage for the specific product, if available.</p></td>
+      </tr>
+    </table>
+
+    <note><p>Suggestions for additional categories can be sent to the 
+          <app>gLabels</app> developer's
+          <link href="mailto:glabels-devel@lists.sourceforge.net">mailing list</link>.</p>
+          <p>Product URLs may be of limited use, because they may not be permanent.</p>
+    </note>
+
+  </section>
+  <!-- ******************** -->
+  <!-- END Meta Node        -->
+  <!-- ******************** -->
+
+
+  <!-- ************************** -->
+  <!-- BEGIN Label-rectangle Node -->
+  <!-- ************************** -->
+  <section id="template-label-rectangle-node">
+    <title><span translate="no">Label-rectangle</span> Node</title>
+
+    <p>A <code translate="no">Label-rectangle</code> node describes the
+      dimensions of a single label or business card that is rectangular
+      in shape (may have rounded edges).</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Property</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">id</code></p></td>
+        <td><p>Reserved for future use.  Should always be 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">width</code></p></td>
+        <td><p>Width of label/card</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">height</code></p></td>
+        <td><p>Heigth of label/card</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">round</code></p></td>
+        <td><p>Radius of corners.  For items with square edges (business cards),
+               the radius should be 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">x_waste</code></p></td>
+        <td><p>Amount of horizontal waste (over-print) to allow.  This is useful
+                      for minimizing alignment problems when using non-white
+                      backgrounds (e.g. images).</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">y_waste</code></p></td>
+        <td><p>Amount of vertical waste (over-print) to allow.  This is useful
+                      for minimizing alignment problems when using non-white
+                      backgrounds (e.g. images).</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc><span translate="no">Label-rectangle</span> parameters</desc>
+      <media type="image" src="figures/glabels-template-rect-label.png" mime="image/png" style="right">
+        <p><span translate="no">Label-rectangle</span> parameters</p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ************************** -->
+  <!-- END Label-rectangle Node   -->
+  <!-- ************************** -->
+
+
+  <!-- ************************ -->
+  <!-- BEGIN Label-ellipse Node -->
+  <!-- ************************ -->
+  <section id="template-label-ellipse-node">
+    <title><span translate="no">Label-ellipse</span> Node</title>
+
+    <p>A <code translate="no">Label-ellipse</code> node describes the
+      dimensions of a single label or business card that is elliptic
+      in shape.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Property</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">id</code></p></td>
+        <td><p>Reserved for future use.  Should always be 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">width</code></p></td>
+        <td><p>Width of the ellipse</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">height</code></p></td>
+        <td><p>Heigth of the ellipse</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">waste</code></p></td>
+        <td><p>Amount of waste (over-print) to allow.  This is useful
+            for minimizing alignment problems when using non-white
+            backgrounds (e.g. images).</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc><span translate="no">Label-ellipse</span> parameters</desc>
+      <media type="image" src="figures/glabels-template-ellipse-label.png" mime="image/png" style="right">
+        <p><span translate="no">Label-ellipse</span> parameters</p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ************************ -->
+  <!-- END Label-ellipse Node   -->
+  <!-- ************************ -->
+
+
+  <!-- ********************** -->
+  <!-- BEGIN Label-round Node -->
+  <!-- ********************** -->
+  <section id="template-label-round-node">
+    <title><span translate="no">Label-round</span> Node</title>
+
+    <p>A <code translate="no">Label-round</code> node describes the dimensions
+      of a simple round label (not a CD).</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Property</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">id</code></p></td>
+        <td><p>Reserved for future use.  Should always be 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">radius</code></p></td>
+        <td><p>Radius (1/2 diameter) of label</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">waste</code></p></td>
+        <td><p>Amount of waste (over-print) to allow.  This is useful
+                for minimizing alignment problems when using non-white
+                backgrounds (e.g. images).</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc><span translate="no">Label-ellipse</span> parameters</desc>
+      <media type="image" src="figures/glabels-template-circle-label.png" mime="image/png" style="right">
+        <p><span translate="no">Label-ellipse</span> parameters</p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ********************** -->
+  <!-- END Label-round Node   -->
+  <!-- ********************** -->
+
+
+  <!-- ******************* -->
+  <!-- BEGIN Label-cd Node -->
+  <!-- ******************* -->
+  <section id="template-label-cd-node">
+    <title><span translate="no">Label-cd</span> Node</title>
+
+    <p>A <code translate="no">Label-cd</code> node describes the dimensions
+      of a CD, DVD, or business card CD.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Property</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">id</code></p></td>
+        <td><p>Reserved for future use.  Should always be 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">radius</code></p></td>
+        <td><p>Outer radius of label</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">hole</code></p></td>
+        <td><p>Radius of concentric hole</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">width</code></p></td>
+        <td><p>If present, the label is clipped to the given width.
+                      (Useful for "business card CDs").</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">height</code></p></td>
+        <td><p>If present, the label is clipped to the given height.
+                      (Useful for "business card CDs").</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">waste</code></p></td>
+        <td><p>Amount of waste (over-print) to allow.  This is useful
+                      for minimizing alignment problems when using non-white
+                      backgrounds (e.g. images).</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc><span translate="no">Label-cd</span> parameters</desc>
+      <media type="image" src="figures/glabels-template-cd-label.png" mime="image/png" style="right">
+        <p>CD label parameters</p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ******************* -->
+  <!-- END Label-cd Node   -->
+  <!-- ******************* -->
+
+
+  <!-- ***************** -->
+  <!-- BEGIN Markup Node -->
+  <!-- ***************** -->
+  <section id="template-markup">
+    <title><span translate="no">Markup</span> Nodes</title>
+
+    <p>Templates may contain optional markup nodes.  These nodes are used to describe
+    a simple set of markup lines that are visible in the <app>glabels</app> drawing canvas, but
+    not visible when printed.  These lines can represent margins, fold lines, center lines,
+    special areas, or other helpful hints to the user of a template.</p>
+
+
+    <!-- ======================== -->
+    <!-- BEGIN Markup-margin Node -->
+    <!-- ======================== -->
+    <section id="template-markup-margin-node">
+      <title><span translate="no">Markup-margin</span> Node</title>
+
+      <p>A <code translate="no">Markup-margin</code> describes a margin along
+      all edges of a label.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Property</p></td>  <td><p>Description</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">size</code></p></td>
+          <td><p>Size of the margin.  I.e. the distance of the margin
+                        line from the edge of the card/label.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ======================== -->
+    <!-- END Markup-margin Node   -->
+    <!-- ======================== -->
+
+
+    <!-- ====================== -->
+    <!-- BEGIN Markup-line Node -->
+    <!-- ====================== -->
+    <section id="template-markup-line-node">
+      <title><span translate="no">Markup-line</span> Node</title>
+
+      <p>A <code translate="no">Markup-line</code> node describes a markup line.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Property</p></td>  <td><p>Description</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x1</code></p></td>
+          <td><p>x coordinate of 1st endpoint of the line segment.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y1</code></p></td>
+          <td><p>y coordinate of 1st endpoint of the line segment.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x2</code></p></td>
+          <td><p>x coordinate of 2st endpoint of the line segment.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y2</code></p></td>
+          <td><p>y coordinate of 2st endpoint of the line segment.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ====================== -->
+    <!-- END Markup-line Node   -->
+    <!-- ====================== -->
+
+
+    <!-- ======================== -->
+    <!-- BEGIN Markup-circle Node -->
+    <!-- ======================== -->
+    <section id="template-markup-circle-node">
+      <title><span translate="no">Markup-circle</span> Node</title>
+
+      <p>A <code translate="no">Markup-circle</code> describes a markup circle.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Property</p></td>  <td><p>Description</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x0</code></p></td>
+          <td><p>x coordinate of circle origin (center).</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y0</code></p></td>
+          <td><p>y coordinate of circle origin (center).</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">radius</code></p></td>
+          <td><p>Radius of circle.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ======================== -->
+    <!-- END Markup-circle Node   -->
+    <!-- ======================== -->
+
+
+    <!-- ====================== -->
+    <!-- BEGIN Markup-rect Node -->
+    <!-- ====================== -->
+    <section id="template-markup-rect-node">
+      <title><span translate="no">Markup-rect</span> Node</title>
+
+      <p>A <code translate="no">Markup-rect</code> describes a markup rectangle.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Property</p></td>  <td><p>Description</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x1</code></p></td>
+          <td><p>x coordinate of upper left corner of rectangle.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y1</code></p></td>
+          <td><p>y coordinate of upper left corner of rectangle.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">w</code></p></td>
+          <td><p>Width of rectangle.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">h</code></p></td>
+          <td><p>Height of rectangle.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">r</code></p></td>
+          <td><p>Radius of rounded corners of rectangle.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ====================== -->
+    <!-- END Markup-rect Node   -->
+    <!-- ====================== -->
+
+
+    <!-- ========================= -->
+    <!-- BEGIN Markup-ellipse Node -->
+    <!-- ========================= -->
+    <section id="template-markup-ellipse-node">
+      <title><span translate="no">Markup-ellipse</span> Node</title>
+
+      <p>A <code translate="no">Markup-ellipse</code> describes a markup ellipse.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Property</p></td>  <td><p>Description</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x1</code></p></td>
+          <td><p>x coordinate of upper left corner of ellipse.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y1</code></p></td>
+          <td><p>y coordinate of upper left corner of ellipse.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">w</code></p></td>
+          <td><p>Width of ellipse.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">h</code></p></td>
+          <td><p>Height of ellipse.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ========================= -->
+    <!-- END Markup-ellipse Node   -->
+    <!-- ========================= -->
+
+  </section>
+  <!-- ***************** -->
+  <!-- END Markup Node   -->
+  <!-- ***************** -->
+
+
+  <!-- ***************** -->
+  <!-- BEGIN Layout Node -->
+  <!-- ***************** -->
+  <section id="template-layout-node">
+    <title><span translate="no">Layout</span> Node</title>
+
+    <p>A label node may contain multiple <code translate="no">Layout</code>
+      children.  If labels are arranged in a simple grid pattern, only
+      one layout is needed.  However, if labels are arranged in multiple
+      grids, such as a running bond pattern, multiple
+      <code translate="no">Layout</code> tags can be used. </p>
+       <note style="tip">
+       <p>A single label can always be treated as a grid of one.</p>
+      </note>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Property</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">nx</code></p></td>
+        <td><p>Number of labels/cards across in the grid (horizontal)</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">ny</code></p></td>
+        <td><p>Number of labels/cards across in the grid (vertical)</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">x0</code></p></td>
+        <td><p>Distance from left edge of sheet to the left edge of
+            the left column of cards/labels in the layout.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">y0</code></p></td>
+        <td><p>Distance from the top edge of sheet to the top edge of
+             the top row of labels/cards in the layout.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">dx</code></p></td>
+        <td><p>Horizontal pitch of grid.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">dy</code></p></td>
+        <td><p>Vertical pitch of grid.</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc><span translate="no">Layout</span> parameters</desc>
+      <media type="image" src="figures/glabels-template-layout.png" mime="image/png" style="right">
+        <p><span translate="no">Layout</span> Parameters</p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ***************** -->
+  <!-- END Layout Node   -->
+  <!-- ***************** -->
+
+
+</page>
diff --git a/help/nl/merge-ex1.page b/help/nl/merge-ex1.page
new file mode 100644 (file)
index 0000000..13a97fa
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge-ex1" xml:lang="nl">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+       Create name tags from a CSV file.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Example 1: Name Tags</title>
+
+      <p>In this example we are organizing an orientation party for the new
+        crew members of our ship.  We have a list of freshman crew members that we
+        created in <app>gnumeric</app> and exported as the following
+        CSV file.  We could have created this file by using a text editor, but heck it
+        is the 23rd century.</p>
+
+      <code>
+Name,Department,SN
+"Jim Kirk",Management,"SC937-0176 CEC"
+"Mr. Spock",Sciences,S179-276SP
+"Leonard McCoy",Medicine,unknown
+"Montgomery Scott",Engineering,SE-197-54T
+      </code>
+
+      <p>In <app>gLabels</app> we have created a new <app>glabels</app>
+        document using the Avery 5395 "Name Badge Labels" template.  Next we use the
+        <guiseq> <gui>Objects</gui>
+        <gui>Merge Properties</gui> </guiseq> menu item to display
+        the <gui>merge properties</gui> dialog.  We use this dialog to
+        select the source type (in our case CSV with keys on line 1) and the merge
+       source (filename) as shown.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-1.png" mime="image/png" style="right">
+               <p>Merge properties dialog</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>We can also view each record in more detail by clicking on the appropriate
+        expander (the little triangles) as shown.  Once we are satisfied with the
+        selections in this dialog we click <gui>OK</gui> to accept the
+        changes.</p>
+
+      <p>Now we start adding objects to our <app>glabels</app> document as shown.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-2.png" mime="image/png" style="right">
+               <p>Adding objects</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>In this example we have added three text objects and a barcode object.  The
+        first text object contains only simple literal text ("Hello, my name is").  The
+        second text object contains a single merge field ("${Name}") corresponding to the
+        first field of a record (first column of a line) which contains the new crew
+        member's full name.  The third text field contains both literal text
+        ("Department: ") followed by a single merge field ("${Department}") corresponding to
+        the second field or the crew member's department.  The barcode object is
+        configured to use field (or key) "SN" which contains our crew member's
+        starfleet serial number.</p>
+
+      <p>Now we can print our name tags by selecting the
+        <guiseq> <gui>File</gui>
+        <gui>Print</gui> </guiseq> menu item.  This will display
+        print dialog as shown below.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-3.png" mime="image/png" style="right">
+               <p>Printing name tags</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Just to make sure our labels are going to look okay, we select the
+        <gui>Print outlines</gui> option and click
+        <gui>Print Preview</gui>.  This will display a print preview dialog
+        as shown below.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-4.png" mime="image/png" style="right">
+               <p>Name tags preview</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Everything looks good, so we can now load up our printer with
+        the appropriate label stock, print our name tags and start beaming our guests
+        aboard.</p>
+
+
+</page>
diff --git a/help/nl/merge-ex2.page b/help/nl/merge-ex2.page
new file mode 100644 (file)
index 0000000..5284a94
--- /dev/null
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge-ex2" xml:lang="nl">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+       Create address labels from a CSV file.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Example 2: Address labels</title>
+
+      <p>In this example we are going to throw a party and need to print mailing
+        address labels for our invitations.  We have a list of our closest friends
+        that we created in <app>gnumeric</app> and exported as the
+        following CSV file.  It should be noted that not everyone has a middle initial or
+        a two line address.</p>
+
+      <code>
+LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP
+,,,,,,,
+Critter,Ess,S,"123 Faux St.",,Alexandria,VA,22310
+Doe,John,,"Apt 1X","451 Mystery St.",Trenton,NJ,08601
+Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037
+McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813
+Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207
+      </code>
+
+      <p>In <app>glabels</app> we have created a new <app>glabels</app>
+        document using the Avery 5512 "Address Labels" template.  Next we use the
+        <guiseq> <gui>Objects</gui>
+        <gui>Merge Properties</gui> </guiseq> menu item to display
+        the <gui>merge properties</gui> dialog.  We use this dialog to
+        select the source type (in our case CSV with keys on line 1) and the merge
+       source (filename) as shown.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-1.png" mime="image/png" style="right">
+               <p>Merge properties dialog</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Before applying the merge source, we uncheck the first record since it only
+        contains empty fields.  It is an artifact of our original <app>gnumeric</app> spreadsheet
+        and would simply waste our first label.  We could also unselect
+        any other records that we didn't want to print a label for.</p>
+
+      <p>We can also view each record in more detail by clicking on the appropriate
+        expander (the little triangles) as shown.  Once we are satisfied with the
+        selections in this dialog we click <gui>OK</gui> to accept the
+        changes.</p>
+
+      <p>Now we start adding objects to our <app>glabels</app> document as shown.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-2.png" mime="image/png" style="right">
+               <p>Adding objects</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>In this example we have a single text object.  This text object contains
+        all of our merge fields organized on multiple lines as a mailing address.
+        Notice that fields ${ADDR1} and ${ADDR2} are each
+        located with no other text on their own lines.  When
+        <app>glabels</app> encounters a field as the only text on
+        a line, it will not expand the line if the field is empty.</p>
+
+      <p>Now we can print our address labels by selecting the
+        <guiseq> <gui>File</gui>
+        <gui>Print</gui> </guiseq> menu item.  This will display
+        print dialog as shown below.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-3.png" mime="image/png" style="right">
+               <p>Printing address labels</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Just to make sure our labels are going to look okay, we select the
+        <gui>Print outlines</gui> option and click
+        <gui>Print Preview</gui>.  This will display a print preview dialog
+        as shown below.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-4.png" mime="image/png" style="right">
+               <p>Address labels preview</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Everything looks good, so we can now load up our printer with
+        the appropriate label stock, print our address labels and start mailing
+        our party invitations.</p>
+
+</page>
diff --git a/help/nl/merge-ex3.page b/help/nl/merge-ex3.page
new file mode 100644 (file)
index 0000000..e076a11
--- /dev/null
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge-ex3" xml:lang="nl">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+       Create address labels from the <app>Evolution</app> address book entries.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Example 3: Address Labels Using the <app>Evolution</app> Addressbook</title>
+
+      <p>Our last party was a great success, and now we need to print mailing
+        address labels for the invitations to a new one. To simplify this, we can use
+       the <app>Evolution</app> addressbook, because the address
+       data of all our friends is stored there.</p>
+
+      <note>
+       <p>Depending on how your copy of <app>gLabels</app> was packaged, this option could be unavailable.
+         Support for the <app>Evolution</app> addressbook will only be available
+         if the <app>evolution-data-server</app> and its development files
+         were present when <app>gLabels</app> was built. Please keep this in mind if you build <app>gLabels</app>
+         directly from source.</p>
+       
+       <p>If the <app>gLabels</app> package from your distribution lacks this support,
+         you may wish to contact the package maintainer or file a bug against the package
+         to request it.</p>
+      </note>
+
+      <p>In <app>glabels</app> we have created a new <app>gLabels</app>
+        document using the Avery 5512 "Address Labels" template. Next we use the
+        <guiseq> <gui>Objects</gui>
+        <gui>Merge Properties</gui></guiseq> menu item to display
+        the <gui>Merge properties</gui> dialog. We use this dialog to
+        select the source type (in our case <gui>Data from default Evolution
+       addressbook</gui>) as shown.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-1.png" mime="image/png" style="right">
+               <p>Merge properties dialog</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Once we have chosen <gui>Data from default Evolution addressbook
+       </gui> as our merge source, we will get a full list of its content. Initially,
+       all entries are checked. Assuming we were planning a really big party, we could
+       leave this selection untouched (but let's keep our budget in mind). We will now select or
+       unselect certain entries by clicking on the appropriate checkboxes, or we could use
+       the <gui>Select all</gui> and <gui>Unselect all
+       </gui> buttons to activate or deactivate all entries in the address book.</p>
+      <p>We can also view each entry in more detail by clicking on the appropriate
+        expander (the little triangles) as shown. Once we are satisfied with the
+        selections in this dialog, we will click the <gui>OK</gui> button to
+       accept the changes.</p>
+
+      <p>Now we start adding objects to our <app>glabels</app> document as shown.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-2.png" mime="image/png" style="right">
+               <p>Adding objects</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>In this example we have a single text object again. This text object contains
+        all of our merge fields organized on multiple lines as a mailing address.</p>
+
+      <p>Now we can print our address labels by selecting the
+        <guiseq> <gui>File</gui>
+        <gui>Print</gui> </guiseq> menu item. This will display
+        the print dialog as shown below.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-3.png" mime="image/png" style="right">
+               <p>Printing address labels</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Just to make sure our labels are going to look okay, we select the
+        <gui>Print outlines</gui> option and click
+        <gui>Print Preview</gui>. This will display a print preview dialog
+        as shown below.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-4.png" mime="image/png" style="right">
+               <p>Addess labels preview</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Everything looks good, so we can now load up our printer with
+        the appropriate label stock, print our address labels and start mailing
+        our party invitations.</p>
+
+
+</page>
diff --git a/help/nl/merge-ex4.page b/help/nl/merge-ex4.page
new file mode 100644 (file)
index 0000000..1f49d9a
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge-ex4" xml:lang="nl">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+       Create address labels from a vCard file.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Example 4: Address Labels Using a vCard file</title>
+
+
+</page>
diff --git a/help/nl/merge.page b/help/nl/merge.page
new file mode 100644 (file)
index 0000000..3e2a55d
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge" xml:lang="nl">
+
+  <info>
+    <link type="guide" xref="index#merging"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+       Merge a data source to create multiple documents.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Document merge tutorial</title>
+
+    <p>Document Merge (sometimes called "Mail Merge") is a powerful
+      feature that allows a unique label or card to be printed for each
+      record in an external data source.  It is however, the most mis-understood
+      feature of <app>glabels</app>.  The following examples
+      will step through a couple of common tasks using the document merge
+      feature.</p>
+
+  <section id="merge-ex" style="2column">
+  </section>
+
+</page>
diff --git a/help/nl/mergefeatures.page b/help/nl/mergefeatures.page
new file mode 100644 (file)
index 0000000..0bd24e3
--- /dev/null
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="mergefeatures" xml:lang="nl">
+
+  <info>
+    <link type="guide" xref="index#merging"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+       What you may expect from a document merge.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Performing a document merge</title>
+
+      <p>Document Merge (sometimes called "Mail Merge") is a powerful
+        feature that allows a unique label or card to be printed for each
+        record in an external data source.</p>
+
+      <p>The first step to performing a document merge is to prepare
+        a source document that contains your merge data.  This data could
+        be mailing addresses or any other data that you wish to create
+        unique labels or cards for.  Currently back-ends only exist for
+        text files and the evolution data server -- others are planned.  The currently
+        supported text-file format is very simple:  each line is a record;
+        fields are delimited by commas (CSV), tabs, or colons; and newlines
+        can be embedded into fields by using the "\n" entity.  This file
+        could be created using any text editor or could be created by
+        another program or script.  A common way of creating CSV files is
+       to export them from a spreadsheet program.</p>
+
+      <p>A label must then be configured to "point at" this data file.
+        To configure the merge properties of a document, choose
+        <guiseq><gui>Objects</gui>
+        <gui>Merge Properties</gui></guiseq> menu item
+        to display the <gui>merge properties</gui> dialog.  This
+        dialog is used to select the exact data file format and file
+        name (location) of the merge data.</p>
+
+      <p>Finally, once the label has been configured for a data file,
+        field keys can be inserted into text objects and used as source
+        or data for barcode objects and image filenames for image objects.
+        See <link xref="editprop"/> for more information
+        on using merge data for these object types.</p>
+
+      <p>Now that your label is configured, <app>gLabels</app> will print a unique
+        label for each record in your source document -- substituting fields
+        from each record for field keys in the all text, barcode, and
+        image objects.</p>
+
+      <p>See <link xref="merge"/> for a detailed
+        tutorial on the document merge feature.</p>
+
+</page>
diff --git a/help/nl/multifile.page b/help/nl/multifile.page
new file mode 100644 (file)
index 0000000..e821185
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="multifile" xml:lang="nl">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      How to open multiple files at once by using the command line.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>To open multiple files from the command line</title>
+
+      <p>You can run <app>gLabels</app> from a command line
+       and open a single file or multiple files. To open multiple files from
+        a command line, type the following command, then press
+        <key>Return</key>:</p>
+
+      <p><cmd>glabels <var>file1.glabels file2.glabels file3.glabels</var></cmd></p>
+
+      <p>When the application starts, the files that you specify are
+       displayed in separate <app>gLabels</app> windows.</p>
+
+</page>
diff --git a/help/nl/newlabel.page b/help/nl/newlabel.page
new file mode 100644 (file)
index 0000000..a0336e2
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="newlabel" xml:lang="nl">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      Create a new label or card in <app>gLabels</app>.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>To create a new label or card</title>
+
+    <p>To create a new label or business card, choose 
+        <guiseq><gui>File</gui><gui>New</gui></guiseq>
+       to display the <gui>New Label or Card</gui> dialog. Select
+        the media type and orientation for the new document,
+       then click <gui>OK</gui>. A new document is
+       displayed in the display area of the <app>gLabels</app>
+        window. </p>
+
+</page>
diff --git a/help/nl/nl.po b/help/nl/nl.po
new file mode 100644 (file)
index 0000000..491b7ae
--- /dev/null
@@ -0,0 +1,2476 @@
+# Dutch translation for glabels.
+# Copyright (C) 2011 glabels's COPYRIGHT HOLDER
+# This file is distributed under the same license as the glabels package.
+# Mario Blättermann <mariobl@gnome.org>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: glabels help master\n"
+"POT-Creation-Date: 2011-02-03 13:12+0000\n"
+"PO-Revision-Date: 2011-02-03 14:18+0100\n"
+"Last-Translator: Mario Blättermann <mariobl@gnome.org>\n"
+"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Dutch\n"
+"X-Poedit-Country: NETHERLANDS\n"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/skipfields.page:45(None)
+msgid ""
+"@@image: 'figures/skip-fields-screenshot.png'; "
+"md5=eef4a81f48546bd7d3753656a3df9cb7"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/skipfields.page:53(None)
+msgid ""
+"@@image: 'figures/skip-fields-output.png'; "
+"md5=b64d1a7fdf0d37e9a6d93f0bc2f9fa0d"
+msgstr ""
+
+#: C/skipfields.page:9(desc)
+msgid "How to skip blank address lines when doing a document merge."
+msgstr ""
+
+#: C/skipfields.page:13(name) C/select.page:13(name) C/printfile.page:13(name)
+#: C/newlabel.page:13(name) C/multifile.page:13(name) C/merge.page:13(name)
+#: C/mergefeatures.page:13(name) C/merge-ex4.page:13(name)
+#: C/merge-ex3.page:13(name) C/merge-ex2.page:13(name)
+#: C/merge-ex1.page:13(name) C/mancreate.page:14(name)
+#: C/labelprop.page:13(name) C/index.page:11(name) C/editprop.page:13(name)
+#: C/customtemplate.page:13(name) C/customize.page:11(name)
+#: C/createnew.page:13(name) C/basicusage.page:13(name) C/about.page:13(name)
+msgid "Jim Evins"
+msgstr "Jim Evins"
+
+#: C/skipfields.page:14(email) C/select.page:14(email)
+#: C/printfile.page:14(email) C/newlabel.page:14(email)
+#: C/multifile.page:14(email) C/merge.page:14(email)
+#: C/mergefeatures.page:14(email) C/merge-ex4.page:14(email)
+#: C/merge-ex3.page:14(email) C/merge-ex2.page:14(email)
+#: C/merge-ex1.page:14(email) C/mancreate.page:15(email)
+#: C/labelprop.page:14(email) C/index.page:12(email) C/editprop.page:14(email)
+#: C/customtemplate.page:14(email) C/customize.page:12(email)
+#: C/createnew.page:14(email) C/basicusage.page:14(email)
+#: C/about.page:14(email)
+msgid "evins@snaught.com"
+msgstr "evins@snaught.com"
+
+#: C/skipfields.page:17(name) C/select.page:17(name) C/printfile.page:17(name)
+#: C/newlabel.page:17(name) C/multifile.page:17(name) C/merge.page:17(name)
+#: C/mergefeatures.page:17(name) C/merge-ex4.page:17(name)
+#: C/merge-ex3.page:17(name) C/merge-ex2.page:17(name)
+#: C/merge-ex1.page:17(name) C/mancreate.page:18(name)
+#: C/labelprop.page:17(name) C/index.page:15(name) C/editprop.page:17(name)
+#: C/customtemplate.page:17(name) C/customize.page:15(name)
+#: C/createnew.page:17(name) C/basicusage.page:17(name) C/about.page:17(name)
+msgid "Mario Blättermann"
+msgstr "Mario Blättermann"
+
+#: C/skipfields.page:18(email) C/select.page:18(email)
+#: C/printfile.page:18(email) C/newlabel.page:18(email)
+#: C/multifile.page:18(email) C/merge.page:18(email)
+#: C/mergefeatures.page:18(email) C/merge-ex4.page:18(email)
+#: C/merge-ex3.page:18(email) C/merge-ex2.page:18(email)
+#: C/merge-ex1.page:18(email) C/mancreate.page:19(email)
+#: C/labelprop.page:18(email) C/index.page:16(email) C/editprop.page:18(email)
+#: C/customtemplate.page:18(email) C/customize.page:16(email)
+#: C/createnew.page:18(email) C/basicusage.page:18(email)
+#: C/about.page:18(email)
+msgid "mariobl@gnome.org"
+msgstr "mariobl@gnome.org"
+
+#: C/skipfields.page:21(p) C/select.page:21(p) C/printfile.page:21(p)
+#: C/newlabel.page:21(p) C/multifile.page:21(p) C/merge.page:21(p)
+#: C/mergefeatures.page:21(p) C/merge-ex4.page:21(p) C/merge-ex3.page:21(p)
+#: C/merge-ex2.page:21(p) C/merge-ex1.page:21(p) C/mancreate.page:22(p)
+#: C/labelprop.page:21(p) C/index.page:19(p) C/editprop.page:21(p)
+#: C/customtemplate.page:21(p) C/customize.page:19(p) C/createnew.page:21(p)
+#: C/basicusage.page:21(p) C/about.page:21(p)
+msgid "Creative Commons Share Alike 3.0"
+msgstr "Creative Commons Share Alike 3.0"
+
+#: C/skipfields.page:25(title)
+msgid "Skipping blank address lines"
+msgstr ""
+
+#: C/skipfields.page:27(p)
+msgid ""
+"This feature can be best described by a simple example. In the following CSV "
+"file, column 5 (ADDR2) contains the second address line for each record. This "
+"field is empty in records 1 and 2, but not in record 3. (For this feature to "
+"work, the field must be completely empty -- any text, including spaces will "
+"defeat this feature.)"
+msgstr ""
+
+#: C/skipfields.page:33(code)
+#, no-wrap
+msgid ""
+"\n"
+"  LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n"
+"  Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n"
+"  McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n"
+"  Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n"
+"  "
+msgstr ""
+
+#: C/skipfields.page:40(p)
+msgid ""
+"In the following screenshot, a single multiline text object has been created "
+"to format these addresses. Notice that ${ADDR2} representing the second "
+"address line is on a line by itself. (Any additional text on this line, "
+"including spaces would defeat this feature.)"
+msgstr ""
+
+#: C/skipfields.page:46(p)
+msgid "Multi-line address"
+msgstr ""
+
+#: C/skipfields.page:49(p)
+msgid ""
+"Printing this label results in the following output. Notice that the line "
+"containing the ${ADDR2} field is completely skipped for the first two "
+"records, without printing a blank line."
+msgstr ""
+
+#: C/skipfields.page:54(p)
+msgid "Output"
+msgstr ""
+
+#: C/select.page:9(desc)
+msgid "How to select objects."
+msgstr ""
+
+#: C/select.page:25(title)
+msgid "To select objects"
+msgstr ""
+
+#: C/select.page:27(p)
+msgid ""
+"A prerequisite for performing operations on objects is the selection of "
+"individual objects or groups of objects. The display area must be in the "
+"object selection mode to create new selections, as indicated by an arrow "
+"cursor. The object selection mode is selected by the <guiseq><gui>Objects</"
+"gui><gui>Select Mode</gui></guiseq> menu item, or the corresponding command "
+"on the <gui>Drawing Toolbar</gui>."
+msgstr ""
+
+#: C/select.page:38(title)
+msgid "Selecting a single object"
+msgstr ""
+
+#: C/select.page:39(p)
+msgid ""
+"A single object can be selected simply by clicking on the desired object in "
+"the display area. Once selected the object will be highlighted with a set of "
+"resizing handles."
+msgstr ""
+
+#: C/select.page:46(title)
+msgid "Aggregate object selections"
+msgstr ""
+
+#: C/select.page:47(p)
+msgid ""
+"Multiple objects can be selected by first selecting the first object as above "
+"and then by holding the <key>Ctrl</key> key while selecting additional "
+"objects. Individual objects can be added to an existing selection at any time "
+"by holding the <key>Ctrl</key> key while selecting the desired objects. All "
+"objects can also be selected by using the <guiseq><gui>Edit</gui><gui>Select "
+"All</gui></guiseq> menu item. All objects in an aggregate object selection "
+"will be highlighted."
+msgstr ""
+
+#: C/select.page:60(title)
+msgid "Area selections"
+msgstr ""
+
+#: C/select.page:62(p)
+msgid ""
+"Multiple objects can also be selected by clicking an empty area and dragging "
+"to form a rectangular area. When released, all objects contained in the area "
+"will form an aggregate selection. An area selection can be used to add to an "
+"existing selection by holding the <key>Ctrl</key> key while performing the "
+"selection."
+msgstr ""
+
+#: C/select.page:72(title)
+msgid "Unselecting objects"
+msgstr ""
+
+#: C/select.page:74(p)
+msgid ""
+"Individual objects can be removed from an existing selection by holding the "
+"<key>Ctrl</key> key while clicking on a previously selected object. An entire "
+"selection can be dismissed by using the <guiseq><gui>Edit</gui><gui>Un-select "
+"All</gui></guiseq> menu item or by simply clicking any empty space in the "
+"display area. Once an object is unselected its highlight is removed."
+msgstr ""
+
+#: C/select.page:86(title)
+msgid "Clipboard Commands"
+msgstr ""
+
+#: C/select.page:88(p)
+msgid ""
+"Object selections can be manipulated using the standard clipboard operations "
+"<gui>Cut</gui>, <gui>Copy</gui>, <gui>Paste</gui>, and <gui>Delete</gui>."
+msgstr ""
+
+#: C/select.page:94(title)
+msgid "<gui>Cut</gui> (<keyseq><key>Ctrl</key><key>X</key></keyseq>)"
+msgstr ""
+
+#: C/select.page:96(p)
+msgid ""
+"Moves selected objects to the clipboard. The objects are then available for "
+"pasting back into the current document or another document."
+msgstr ""
+
+#: C/select.page:103(title)
+msgid "<gui>Copy</gui> (<keyseq><key>Ctrl</key><key>C</key></keyseq>)"
+msgstr ""
+
+#: C/select.page:105(p)
+msgid ""
+"Copies selected objects to the clipboard without deleting them. The objects "
+"are then available for pasting back into the current document or another "
+"document."
+msgstr ""
+
+#: C/select.page:112(title)
+msgid "<gui>Paste</gui> (<keyseq><key>Ctrl</key><key>V</key></keyseq>)"
+msgstr ""
+
+#: C/select.page:114(p)
+msgid ""
+"Pastes objects from the clipboard into the current document. <app>gLabels</"
+"app> can only paste objects from another <app>gLabels</app> document."
+msgstr ""
+
+#: C/select.page:121(title)
+msgid "<gui>Delete</gui> (<key>Del</key>)"
+msgstr ""
+
+#: C/select.page:123(p)
+msgid "Deletes selected objects without placing them on the clipboard."
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/printfile.page:47(None)
+msgid ""
+"@@image: 'figures/print-copies.png'; md5=1896f693ac50b47ea5abaafb59b5e8cc"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/printfile.page:70(None)
+msgid "@@image: 'figures/print-merge.png'; md5=65a719b5624f88fdb40e2322454819a6"
+msgstr ""
+
+#: C/printfile.page:9(desc)
+msgid "How to print your labels and cards."
+msgstr ""
+
+#: C/printfile.page:25(title)
+msgid "To print labels and cards"
+msgstr ""
+
+#: C/printfile.page:27(p)
+msgid ""
+"To print labels or cards, choose <guiseq><gui>File</gui><gui>Print</gui></"
+"guiseq> to display the <gui>Print</gui> dialog. Once print options have been "
+"selected, click <gui>Print</gui> to print the labels or cards. To simply "
+"preview the results, click <gui>Print Preview</gui> instead."
+msgstr ""
+
+#: C/printfile.page:34(p)
+msgid ""
+"The <gui>Print</gui> dialog allows you to specify the following print options:"
+msgstr ""
+
+#: C/printfile.page:38(title)
+msgid "The Labels Tab of the Print Dialog"
+msgstr ""
+
+#: C/printfile.page:41(title)
+msgid "Print control (Simple)"
+msgstr ""
+
+#: C/printfile.page:43(p)
+msgid ""
+"For simple labels or cards (no document merge), the job tabbed section "
+"contains the following copy controls."
+msgstr ""
+
+#: C/printfile.page:48(p) C/editprop.page:36(p)
+msgid "Print Copy Controls"
+msgstr ""
+
+#. ==== End of Figure ====
+#: C/printfile.page:52(p)
+msgid ""
+"The number of copies of the label can be selected by choosing the number of "
+"full sheets to print, or a specific subset of labels on a single sheet."
+msgstr ""
+
+#: C/printfile.page:56(p)
+msgid ""
+"The mini-preview can also be used to graphically select the subset of labels "
+"by clicking the first label on the mini-preview and dragging to the last "
+"label."
+msgstr ""
+
+#: C/printfile.page:63(title)
+msgid "Print control (Merge)"
+msgstr ""
+
+#: C/printfile.page:65(p)
+msgid ""
+"For labels or cards using the document merge (also known as \"mail merge\") "
+"capability, the job tabbed section contains the following merge controls "
+"instead of copy controls."
+msgstr ""
+
+#: C/printfile.page:71(p)
+msgid "Print Document Merge Controls"
+msgstr ""
+
+#. ==== End of Figure ====
+#: C/printfile.page:75(p)
+msgid ""
+"The total number of labels or cards printed is the product of the number of "
+"records in the merge source and the number of copies selected. If multiple "
+"copies are selected, these can be either collated (copies of the same record "
+"grouped together) or un-collated (one copy each record is printed before next "
+"copy)."
+msgstr ""
+
+#: C/printfile.page:82(p)
+msgid ""
+"Printing can begin on any label on the first sheet. This can be selected with "
+"the <gui>Start on label</gui> spinbutton."
+msgstr ""
+
+#: C/printfile.page:86(p)
+msgid ""
+"The mini-preview can also be used to graphically select this first label, by "
+"clicking on the desired label in the mini-preview."
+msgstr ""
+
+#: C/printfile.page:93(title)
+msgid "Options"
+msgstr ""
+
+#: C/printfile.page:94(p)
+msgid "The following options can also be selected."
+msgstr ""
+
+#: C/printfile.page:97(gui)
+msgid "print outlines"
+msgstr ""
+
+#: C/printfile.page:98(p)
+msgid ""
+"Print outlines of labels. This option is useful for dry-runs, to test printer "
+"alignment."
+msgstr ""
+
+#: C/printfile.page:102(gui)
+msgid "print in reverse"
+msgstr ""
+
+#: C/printfile.page:103(p)
+msgid ""
+"Prints the labels as mirror images. This option is useful for printing on "
+"clear labels that will be viewed from the reverse side (e.g. in a car window)."
+msgstr ""
+
+#: C/printfile.page:108(gui)
+msgid "print crop marks"
+msgstr ""
+
+#: C/printfile.page:109(p)
+msgid ""
+"Prints crop marks along the edge of the sheet. This option is useful for "
+"printing on blank stock, to be cut after printing. This option does not work "
+"well with all templates."
+msgstr ""
+
+#: C/newlabel.page:9(desc)
+msgid "Create a new label or card in <app>gLabels</app>."
+msgstr ""
+
+#: C/newlabel.page:25(title)
+msgid "To create a new label or card"
+msgstr ""
+
+#: C/newlabel.page:27(p)
+msgid ""
+"To create a new label or business card, choose <guiseq><gui>File</"
+"gui><gui>New</gui></guiseq> to display the <gui>New Label or Card</gui> "
+"dialog. Select the media type and orientation for the new document, then "
+"click <gui>OK</gui>. A new document is displayed in the display area of the "
+"<app>gLabels</app> window."
+msgstr ""
+
+#: C/multifile.page:9(desc)
+msgid "How to open multiple files at once by using the command line."
+msgstr ""
+
+#: C/multifile.page:25(title)
+msgid "To open multiple files from the command line"
+msgstr ""
+
+#: C/multifile.page:27(p)
+msgid ""
+"You can run <app>gLabels</app> from a command line and open a single file or "
+"multiple files. To open multiple files from a command line, type the "
+"following command, then press <key>Return</key>:"
+msgstr ""
+
+#: C/multifile.page:33(var)
+msgid "file1.glabels file2.glabels file3.glabels"
+msgstr ""
+
+#: C/multifile.page:32(cmd)
+msgid "glabels <placeholder-1/>"
+msgstr "glabels <placeholder-1/>"
+
+#: C/multifile.page:36(p)
+msgid ""
+"When the application starts, the files that you specify are displayed in "
+"separate <app>gLabels</app> windows."
+msgstr ""
+
+#: C/merge.page:9(desc)
+msgid "Merge a data source to create multiple documents."
+msgstr ""
+
+#: C/merge.page:25(title)
+msgid "Document merge tutorial"
+msgstr ""
+
+#: C/merge.page:27(p)
+msgid ""
+"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that "
+"allows a unique label or card to be printed for each record in an external "
+"data source. It is however, the most mis-understood feature of <app>glabels</"
+"app>. The following examples will step through a couple of common tasks using "
+"the document merge feature."
+msgstr ""
+
+#: C/mergefeatures.page:9(desc)
+msgid "What you may expect from a document merge."
+msgstr ""
+
+#: C/mergefeatures.page:25(title)
+msgid "Performing a document merge"
+msgstr ""
+
+#: C/mergefeatures.page:27(p)
+msgid ""
+"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that "
+"allows a unique label or card to be printed for each record in an external "
+"data source."
+msgstr ""
+
+#: C/mergefeatures.page:31(p)
+msgid ""
+"The first step to performing a document merge is to prepare a source document "
+"that contains your merge data. This data could be mailing addresses or any "
+"other data that you wish to create unique labels or cards for. Currently back-"
+"ends only exist for text files and the evolution data server -- others are "
+"planned. The currently supported text-file format is very simple: each line "
+"is a record; fields are delimited by commas (CSV), tabs, or colons; and "
+"newlines can be embedded into fields by using the \"\\n\" entity. This file "
+"could be created using any text editor or could be created by another program "
+"or script. A common way of creating CSV files is to export them from a "
+"spreadsheet program."
+msgstr ""
+
+#: C/mergefeatures.page:43(p)
+msgid ""
+"A label must then be configured to \"point at\" this data file. To configure "
+"the merge properties of a document, choose <guiseq><gui>Objects</"
+"gui><gui>Merge Properties</gui></guiseq> menu item to display the <gui>merge "
+"properties</gui> dialog. This dialog is used to select the exact data file "
+"format and file name (location) of the merge data."
+msgstr ""
+
+#: C/mergefeatures.page:51(p)
+msgid ""
+"Finally, once the label has been configured for a data file, field keys can "
+"be inserted into text objects and used as source or data for barcode objects "
+"and image filenames for image objects. See <link xref=\"editprop\"/> for more "
+"information on using merge data for these object types."
+msgstr ""
+
+#: C/mergefeatures.page:57(p)
+msgid ""
+"Now that your label is configured, <app>gLabels</app> will print a unique "
+"label for each record in your source document -- substituting fields from "
+"each record for field keys in the all text, barcode, and image objects."
+msgstr ""
+
+#: C/mergefeatures.page:62(p)
+msgid ""
+"See <link xref=\"merge\"/> for a detailed tutorial on the document merge "
+"feature."
+msgstr ""
+
+#: C/merge-ex4.page:9(desc)
+msgid "Create address labels from a vCard file."
+msgstr ""
+
+#: C/merge-ex4.page:25(title)
+msgid "Example 4: Address Labels Using a vCard file"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex3.page:53(None)
+msgid "@@image: 'figures/merge-ex3-1.png'; md5=fb5bf719857fb0a49517ecb50124384d"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex3.page:74(None)
+msgid "@@image: 'figures/merge-ex3-2.png'; md5=28a15319cea58be75ff789c766dc0717"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex3.page:88(None)
+msgid "@@image: 'figures/merge-ex3-3.png'; md5=443d59a44d8ddf5580087a772d4e3eec"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex3.page:99(None)
+msgid "@@image: 'figures/merge-ex3-4.png'; md5=1995114757cccebda45b686caeb37fa7"
+msgstr ""
+
+#: C/merge-ex3.page:9(desc)
+msgid ""
+"Create address labels from the <app>Evolution</app> address book entries."
+msgstr ""
+
+#: C/merge-ex3.page:25(title)
+msgid "Example 3: Address Labels Using the <app>Evolution</app> Addressbook"
+msgstr ""
+
+#: C/merge-ex3.page:27(p)
+msgid ""
+"Our last party was a great success, and now we need to print mailing address "
+"labels for the invitations to a new one. To simplify this, we can use the "
+"<app>Evolution</app> addressbook, because the address data of all our friends "
+"is stored there."
+msgstr ""
+
+#: C/merge-ex3.page:33(p)
+msgid ""
+"Depending on how your copy of <app>gLabels</app> was packaged, this option "
+"could be unavailable. Support for the <app>Evolution</app> addressbook will "
+"only be available if the <app>evolution-data-server</app> and its development "
+"files were present when <app>gLabels</app> was built. Please keep this in "
+"mind if you build <app>gLabels</app> directly from source."
+msgstr ""
+
+#: C/merge-ex3.page:39(p)
+msgid ""
+"If the <app>gLabels</app> package from your distribution lacks this support, "
+"you may wish to contact the package maintainer or file a bug against the "
+"package to request it."
+msgstr ""
+
+#: C/merge-ex3.page:44(p)
+msgid ""
+"In <app>glabels</app> we have created a new <app>gLabels</app> document using "
+"the Avery 5512 \"Address Labels\" template. Next we use the "
+"<guiseq><gui>Objects</gui><gui>Merge Properties</gui></guiseq> menu item to "
+"display the <gui>Merge properties</gui> dialog. We use this dialog to select "
+"the source type (in our case <gui>Data from default Evolution addressbook</"
+"gui>) as shown."
+msgstr ""
+
+#: C/merge-ex3.page:54(p) C/merge-ex2.page:53(p) C/merge-ex1.page:51(p)
+msgid "Merge properties dialog"
+msgstr ""
+
+#. ==== End of Figure ====
+#: C/merge-ex3.page:58(p)
+msgid ""
+"Once we have chosen <gui>Data from default Evolution addressbook </gui> as "
+"our merge source, we will get a full list of its content. Initially, all "
+"entries are checked. Assuming we were planning a really big party, we could "
+"leave this selection untouched (but let's keep our budget in mind). We will "
+"now select or unselect certain entries by clicking on the appropriate "
+"checkboxes, or we could use the <gui>Select all</gui> and <gui>Unselect all </"
+"gui> buttons to activate or deactivate all entries in the address book."
+msgstr ""
+
+#: C/merge-ex3.page:66(p)
+msgid ""
+"We can also view each entry in more detail by clicking on the appropriate "
+"expander (the little triangles) as shown. Once we are satisfied with the "
+"selections in this dialog, we will click the <gui>OK</gui> button to accept "
+"the changes."
+msgstr ""
+
+#: C/merge-ex3.page:71(p) C/merge-ex2.page:67(p) C/merge-ex1.page:60(p)
+msgid "Now we start adding objects to our <app>glabels</app> document as shown."
+msgstr ""
+
+#: C/merge-ex3.page:75(p) C/merge-ex2.page:71(p) C/merge-ex1.page:64(p)
+msgid "Adding objects"
+msgstr ""
+
+#. ==== End of Figure ====
+#: C/merge-ex3.page:79(p)
+msgid ""
+"In this example we have a single text object again. This text object contains "
+"all of our merge fields organized on multiple lines as a mailing address."
+msgstr ""
+
+#: C/merge-ex3.page:82(p)
+msgid ""
+"Now we can print our address labels by selecting the <guiseq><gui>File</"
+"gui><gui>Print</gui></guiseq> menu item. This will display the print dialog "
+"as shown below."
+msgstr ""
+
+#: C/merge-ex3.page:89(p) C/merge-ex2.page:89(p)
+msgid "Printing address labels"
+msgstr ""
+
+#. ==== End of Figure ====
+#: C/merge-ex3.page:93(p) C/merge-ex2.page:93(p) C/merge-ex1.page:89(p)
+msgid ""
+"Just to make sure our labels are going to look okay, we select the <gui>Print "
+"outlines</gui> option and click <gui>Print Preview</gui>. This will display a "
+"print preview dialog as shown below."
+msgstr ""
+
+#: C/merge-ex3.page:100(p)
+msgid "Addess labels preview"
+msgstr ""
+
+#. ==== End of Figure ====
+#: C/merge-ex3.page:104(p) C/merge-ex2.page:104(p)
+msgid ""
+"Everything looks good, so we can now load up our printer with the appropriate "
+"label stock, print our address labels and start mailing our party invitations."
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex2.page:52(None)
+msgid "@@image: 'figures/merge-ex2-1.png'; md5=c9db139c5b7188e101470dc74684a118"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex2.page:70(None)
+msgid "@@image: 'figures/merge-ex2-2.png'; md5=240b4e4ebaa270e0e8bf84c5bfd7233e"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex2.page:88(None)
+msgid "@@image: 'figures/merge-ex2-3.png'; md5=c347460091d8eef9f4ec89557fa9f1e2"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex2.page:99(None)
+msgid "@@image: 'figures/merge-ex2-4.png'; md5=30d12e946a79e27211b835e38742671c"
+msgstr ""
+
+#: C/merge-ex2.page:9(desc)
+msgid "Create address labels from a CSV file."
+msgstr ""
+
+#: C/merge-ex2.page:25(title)
+msgid "Example 2: Address labels"
+msgstr ""
+
+#: C/merge-ex2.page:27(p)
+msgid ""
+"In this example we are going to throw a party and need to print mailing "
+"address labels for our invitations. We have a list of our closest friends "
+"that we created in <app>gnumeric</app> and exported as the following CSV "
+"file. It should be noted that not everyone has a middle initial or a two line "
+"address."
+msgstr ""
+
+#: C/merge-ex2.page:33(code)
+#, no-wrap
+msgid ""
+"\n"
+"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n"
+",,,,,,,\n"
+"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n"
+"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n"
+"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n"
+"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n"
+"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n"
+"      "
+msgstr ""
+
+#: C/merge-ex2.page:43(p)
+msgid ""
+"In <app>glabels</app> we have created a new <app>glabels</app> document using "
+"the Avery 5512 \"Address Labels\" template. Next we use the "
+"<guiseq><gui>Objects</gui><gui>Merge Properties</gui></guiseq> menu item to "
+"display the <gui>merge properties</gui> dialog. We use this dialog to select "
+"the source type (in our case CSV with keys on line 1) and the merge source "
+"(filename) as shown."
+msgstr ""
+
+#. ==== End of Figure ====
+#: C/merge-ex2.page:57(p)
+msgid ""
+"Before applying the merge source, we uncheck the first record since it only "
+"contains empty fields. It is an artifact of our original <app>gnumeric</app> "
+"spreadsheet and would simply waste our first label. We could also unselect "
+"any other records that we didn't want to print a label for."
+msgstr ""
+
+#. ==== End of Figure ====
+#: C/merge-ex2.page:62(p) C/merge-ex1.page:55(p)
+msgid ""
+"We can also view each record in more detail by clicking on the appropriate "
+"expander (the little triangles) as shown. Once we are satisfied with the "
+"selections in this dialog we click <gui>OK</gui> to accept the changes."
+msgstr ""
+
+#. ==== End of Figure ====
+#: C/merge-ex2.page:75(p)
+msgid ""
+"In this example we have a single text object. This text object contains all "
+"of our merge fields organized on multiple lines as a mailing address. Notice "
+"that fields ${ADDR1} and ${ADDR2} are each located with no other text on "
+"their own lines. When <app>glabels</app> encounters a field as the only text "
+"on a line, it will not expand the line if the field is empty."
+msgstr ""
+
+#: C/merge-ex2.page:82(p)
+msgid ""
+"Now we can print our address labels by selecting the <guiseq><gui>File</"
+"gui><gui>Print</gui></guiseq> menu item. This will display print dialog as "
+"shown below."
+msgstr ""
+
+#: C/merge-ex2.page:100(p)
+msgid "Address labels preview"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex1.page:50(None)
+msgid "@@image: 'figures/merge-ex1-1.png'; md5=6e1cda54b797f875f379b657370d87c8"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex1.page:63(None)
+msgid "@@image: 'figures/merge-ex1-2.png'; md5=2ccad04ae5830f5f4a6a601d9fabed6a"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex1.page:84(None)
+msgid "@@image: 'figures/merge-ex1-3.png'; md5=858855ab1a392db74b70cdb2bdb27ddd"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/merge-ex1.page:95(None)
+msgid "@@image: 'figures/merge-ex1-4.png'; md5=8648ff55dd2e531a1a82b797f0430279"
+msgstr ""
+
+#: C/merge-ex1.page:9(desc)
+msgid "Create name tags from a CSV file."
+msgstr ""
+
+#: C/merge-ex1.page:25(title)
+msgid "Example 1: Name Tags"
+msgstr ""
+
+#: C/merge-ex1.page:27(p)
+msgid ""
+"In this example we are organizing an orientation party for the new crew "
+"members of our ship. We have a list of freshman crew members that we created "
+"in <app>gnumeric</app> and exported as the following CSV file. We could have "
+"created this file by using a text editor, but heck it is the 23rd century."
+msgstr ""
+
+#: C/merge-ex1.page:33(code)
+#, no-wrap
+msgid ""
+"\n"
+"Name,Department,SN\n"
+"\"Jim Kirk\",Management,\"SC937-0176 CEC\"\n"
+"\"Mr. Spock\",Sciences,S179-276SP\n"
+"\"Leonard McCoy\",Medicine,unknown\n"
+"\"Montgomery Scott\",Engineering,SE-197-54T\n"
+"      "
+msgstr ""
+
+#: C/merge-ex1.page:41(p)
+msgid ""
+"In <app>gLabels</app> we have created a new <app>glabels</app> document using "
+"the Avery 5395 \"Name Badge Labels\" template. Next we use the "
+"<guiseq><gui>Objects</gui><gui>Merge Properties</gui></guiseq> menu item to "
+"display the <gui>merge properties</gui> dialog. We use this dialog to select "
+"the source type (in our case CSV with keys on line 1) and the merge source "
+"(filename) as shown."
+msgstr ""
+
+#. ==== End of Figure ====
+#: C/merge-ex1.page:68(p)
+msgid ""
+"In this example we have added three text objects and a barcode object. The "
+"first text object contains only simple literal text (\"Hello, my name is\"). "
+"The second text object contains a single merge field (\"${Name}\") "
+"corresponding to the first field of a record (first column of a line) which "
+"contains the new crew member's full name. The third text field contains both "
+"literal text (\"Department: \") followed by a single merge field "
+"(\"${Department}\") corresponding to the second field or the crew member's "
+"department. The barcode object is configured to use field (or key) \"SN\" "
+"which contains our crew member's starfleet serial number."
+msgstr ""
+
+#: C/merge-ex1.page:78(p)
+msgid ""
+"Now we can print our name tags by selecting the <guiseq><gui>File</"
+"gui><gui>Print</gui></guiseq> menu item. This will display print dialog as "
+"shown below."
+msgstr ""
+
+#: C/merge-ex1.page:85(p)
+msgid "Printing name tags"
+msgstr ""
+
+#: C/merge-ex1.page:96(p)
+msgid "Name tags preview"
+msgstr ""
+
+#. ==== End of Figure ====
+#: C/merge-ex1.page:100(p)
+msgid ""
+"Everything looks good, so we can now load up our printer with the appropriate "
+"label stock, print our name tags and start beaming our guests aboard."
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:340(None)
+msgid ""
+"@@image: 'figures/glabels-template-rect-label.png'; "
+"md5=9c7ae1c1a888e1c9eefd19655d093971"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:392(None)
+msgid ""
+"@@image: 'figures/glabels-template-ellipse-label.png'; "
+"md5=ba612c86b5fb8fcd2b5384ecc1c331d2"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:439(None)
+msgid ""
+"@@image: 'figures/glabels-template-circle-label.png'; "
+"md5=841e36a1f92aeed01e8fbaacc67758f1"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:500(None)
+msgid ""
+"@@image: 'figures/glabels-template-cd-label.png'; "
+"md5=c7952ac1b26ecbfa53facfbbf6486841"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/mancreate.page:762(None)
+msgid ""
+"@@image: 'figures/glabels-template-layout.png'; "
+"md5=fe1c9652d5448b2e0ece086777d3a287"
+msgstr ""
+
+#: C/mancreate.page:10(desc)
+msgid "Create your templates manually."
+msgstr ""
+
+#: C/mancreate.page:26(title)
+msgid "Manually creating new templates"
+msgstr ""
+
+#. ******************
+#: C/mancreate.page:33(p)
+msgid ""
+"This page is a reference guide to manually creating <app>gLabels</app> "
+"templates. <app>gLabels</app> templates are defined in simple XML files as "
+"described in the DTD: <link href=\"http://glabels.org/xmlns/2.3/glabels-2.3."
+"dtd.txt\">glabels-2.3.dtd</link> (this DTD also describes other XML files "
+"used by <app>gLabels</app>)."
+msgstr ""
+
+#: C/mancreate.page:38(p)
+msgid ""
+"Manually created template files should be placed in the <file>${HOME}/."
+"glabels</file> and be named with a <file>.template</file> extension."
+msgstr ""
+
+#: C/mancreate.page:42(p)
+msgid ""
+"<app>gLabels</app> searches for templates in several other locations as "
+"defined here:"
+msgstr ""
+
+#: C/mancreate.page:45(p)
+msgid "Location"
+msgstr ""
+
+#: C/mancreate.page:46(p) C/mancreate.page:173(p) C/mancreate.page:237(p)
+#: C/mancreate.page:301(p) C/mancreate.page:364(p) C/mancreate.page:415(p)
+#: C/mancreate.page:462(p) C/mancreate.page:535(p) C/mancreate.page:562(p)
+#: C/mancreate.page:600(p) C/mancreate.page:634(p) C/mancreate.page:676(p)
+#: C/mancreate.page:726(p)
+msgid "Description"
+msgstr ""
+
+#: C/mancreate.page:53(file)
+msgid "${prefix}/share/libglabels-3.0/templates"
+msgstr "${prefix}/share/libglabels-3.0/templates"
+
+#: C/mancreate.page:54(p)
+msgid "Predefined templates distributed with <app>gLabels</app>."
+msgstr ""
+
+#: C/mancreate.page:55(p)
+msgid ""
+"<file>${prefix}</file> is usually <file>/usr</file> or <file>/usr/local</"
+"file>, depending on where <app>gLabels</app> was installed."
+msgstr ""
+
+#: C/mancreate.page:59(file)
+msgid "${XDG_CONFIG_HOME}/libglabels/templates"
+msgstr "${XDG_CONFIG_HOME}/libglabels/templates"
+
+#: C/mancreate.page:60(p)
+msgid ""
+"User defined templates created with the <app>gLabels</app><gui>Template "
+"Designer</gui>. <em>Do not put manually created templates in this directory.</"
+"em>"
+msgstr ""
+
+#: C/mancreate.page:62(p)
+msgid ""
+"If <file>${XDG_CONFIG_HOME}</file> is not defined, it defaults to <file>"
+"${HOME}/.config</file>."
+msgstr ""
+"If <file>${XDG_CONFIG_HOME}</file> is not defined, it defaults to <file>"
+"${HOME}/.config</file>."
+
+#: C/mancreate.page:66(file)
+msgid "${HOME}/.glabels"
+msgstr "${HOME}/.glabels"
+
+#: C/mancreate.page:67(p)
+msgid ""
+"User defined templates that have been created manually should be placed in "
+"this directory. Older versions of the <app>gLabels</app><gui>Template "
+"Designer</gui> (prior to 3.0) would also put templates in this directory."
+msgstr ""
+
+#: C/mancreate.page:75(p)
+msgid ""
+"Completed template files can be sent to the <app>gLabels</app> template <link "
+"href=\"mailto:glabels-templates@lists.sourceforge.net\">mailing list</link> "
+"for possible inclusion in future versions of <app>gLabels</app>."
+msgstr ""
+
+#: C/mancreate.page:89(title)
+msgid "Assumptions/caveats"
+msgstr ""
+
+#: C/mancreate.page:92(p)
+msgid ""
+"A sheet contains only one size of label or card (if a sheet contains more "
+"than one size of item, it can be split into multiple templates for multiple "
+"pass printing)"
+msgstr ""
+
+#: C/mancreate.page:97(p)
+msgid ""
+"Distances can be expressed in units of <code translate=\"no\">pt</code>, "
+"<code translate=\"no\">in</code>, <code translate=\"no\">mm</code>, <code "
+"translate=\"no\">cm</code>, or <code translate=\"no\">pc</code>. For example: "
+"\"<code translate=\"no\">1.0in</code>\" or \"<code translate=\"no\">2.54cm</"
+"code>\". If no units are specified, computer points (<code translate=\"no"
+"\">pt</code>) will be assumed (1 <em>pt</em> = 1/72 <em>in</em> = 0.352778 "
+"<em>mm</em>)."
+msgstr ""
+
+#: C/mancreate.page:118(title)
+msgid "Template Files"
+msgstr ""
+
+#: C/mancreate.page:120(p)
+msgid ""
+"A template file contains a single <code translate=\"no\">Glabels-templates</"
+"code> top-level node."
+msgstr ""
+
+#: C/mancreate.page:123(code)
+#, no-wrap
+msgid ""
+"\n"
+"&lt;?xml version=\"1.0\"?&gt;\n"
+"&lt;Glabels-templates&gt;\n"
+"\n"
+"   <var its:translate=\"yes\">...templates...</var>\n"
+"\n"
+"&lt;/Glabels-templates&gt;"
+msgstr ""
+
+#: C/mancreate.page:132(title)
+msgid "Example Template"
+msgstr ""
+
+#: C/mancreate.page:133(desc)
+msgid ""
+"Example <app>gLabels</app> template file containing a single <code translate="
+"\"no\">Template</code> node."
+msgstr ""
+
+#: C/mancreate.page:135(code)
+#, no-wrap
+msgid ""
+"\n"
+"&lt;?xml version=\"1.0\"?&gt;\n"
+"&lt;Glabels-templates&gt;\n"
+"\n"
+"  &lt;Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\"&gt;\n"
+"    &lt;Meta category=\"label\"/&gt;\n"
+"    &lt;Meta category=\"mail\"/&gt;\n"
+"    &lt;Meta product_url=\"http://www.avery.com/avery/en_us/\"/&gt;\n"
+"    &lt;Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\"&gt;\n"
+"      &lt;Markup-margin size=\"5pt\"/&gt;\n"
+"      &lt;Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/&gt;\n"
+"    &lt;/Label-rectangle&gt;\n"
+"  &lt;/Template&gt;\n"
+"\n"
+"&lt;/Glabels-templates&gt;"
+msgstr ""
+
+#: C/mancreate.page:163(title)
+msgid "<span translate=\"no\">Template</span> Node"
+msgstr ""
+
+#: C/mancreate.page:165(p)
+msgid ""
+"A <code translate=\"no\">Template</code> node describes a single stationery "
+"product. It must contain one instance of any type of Label node (<code "
+"translate=\"no\">Label-rectangle</code>, <code translate=\"no\">Label-round</"
+"code>, or <code translate=\"no\">Label-cd</code>)."
+msgstr ""
+
+#: C/mancreate.page:173(p) C/mancreate.page:301(p) C/mancreate.page:364(p)
+#: C/mancreate.page:415(p) C/mancreate.page:462(p) C/mancreate.page:535(p)
+#: C/mancreate.page:562(p) C/mancreate.page:600(p) C/mancreate.page:634(p)
+#: C/mancreate.page:676(p) C/mancreate.page:726(p)
+msgid "Property"
+msgstr ""
+
+#: C/mancreate.page:179(code)
+#, no-wrap
+msgid "brand"
+msgstr "brand"
+
+#: C/mancreate.page:180(p)
+msgid "Brand or manufacturer of stationery product. E.g. \"Avery\""
+msgstr ""
+
+#: C/mancreate.page:183(code)
+#, no-wrap
+msgid "part"
+msgstr "part"
+
+#: C/mancreate.page:184(p)
+msgid "Part number or name of stationery product. E.g. \"8160\""
+msgstr ""
+
+#: C/mancreate.page:187(code) C/mancreate.page:541(code)
+#, no-wrap
+msgid "size"
+msgstr "size"
+
+#: C/mancreate.page:188(p)
+msgid ""
+"Size of sheet. E.g., \"<code translate=\"no\">US-Letter</code>\", \"<code "
+"translate=\"no\">A4</code>\", ..."
+msgstr ""
+
+#: C/mancreate.page:193(code)
+#, no-wrap
+msgid "description"
+msgstr "description"
+
+#: C/mancreate.page:194(p)
+msgid "Description of stationery product. E.g, \"Mailing Labels.\""
+msgstr ""
+
+#: C/mancreate.page:197(code)
+#, no-wrap
+msgid "_description"
+msgstr "_description"
+
+#: C/mancreate.page:198(p)
+msgid ""
+"Translatable description of stationery product. E.g, \"Mailing Labels."
+"\" (Only useful for predefined templates)"
+msgstr ""
+
+#: C/mancreate.page:202(code) C/mancreate.page:311(code)
+#: C/mancreate.page:374(code) C/mancreate.page:480(code)
+#, no-wrap
+msgid "width"
+msgstr "width"
+
+#: C/mancreate.page:203(p)
+msgid "Page width. Only valid if size=\"Other\""
+msgstr ""
+
+#: C/mancreate.page:206(code) C/mancreate.page:315(code)
+#: C/mancreate.page:378(code) C/mancreate.page:485(code)
+#, no-wrap
+msgid "height"
+msgstr "height"
+
+#: C/mancreate.page:207(p)
+msgid "Page height. Only valid if size=\"Other\""
+msgstr ""
+
+#: C/mancreate.page:210(code)
+#, no-wrap
+msgid "equiv"
+msgstr "equiv"
+
+#: C/mancreate.page:211(p)
+msgid ""
+"Equivalent part number. If this property is present, the template is a clone "
+"of another template of the same brand. The template will inherit all "
+"properties, except brand and name from the other template. This equiv "
+"property must refer to a previously defined template - <app>gLabels</app> "
+"does not currently support forward references."
+msgstr ""
+
+#: C/mancreate.page:229(title)
+msgid "<span translate=\"no\">Meta</span> Node"
+msgstr ""
+
+#: C/mancreate.page:231(p)
+msgid ""
+"A <code translate=\"no\">Meta</code> node contains some additional "
+"information about the template. A <code translate=\"no\">Template</code> node "
+"may contain zero or more <code translate=\"no\">Meta</code> nodes."
+msgstr ""
+
+#: C/mancreate.page:237(p)
+msgid "Subnode"
+msgstr ""
+
+#: C/mancreate.page:243(code)
+#, no-wrap
+msgid "category"
+msgstr "category"
+
+#: C/mancreate.page:244(p)
+msgid ""
+"A category for the template. A template can belong to multiple categories by "
+"simply adding multiple <code translate=\"no\">Meta</code> nodes to the parent "
+"<code translate=\"no\">Template</code> node. Template categories are used by "
+"the <app>gLabels</app><gui>New Label Dialog</gui> to filter the results of "
+"template searches."
+msgstr ""
+
+#: C/mancreate.page:251(p)
+msgid ""
+"The value of this category must match a predefined category ID defined in the "
+"file <file>${prefix}/libglabels-3.0/templates/categories.xml</file>. "
+"Currently defined category IDs include:"
+msgstr ""
+
+#: C/mancreate.page:255(code)
+#, no-wrap
+msgid "label"
+msgstr "label"
+
+#: C/mancreate.page:256(code)
+#, no-wrap
+msgid "round-label"
+msgstr "round-label"
+
+#: C/mancreate.page:257(code)
+#, no-wrap
+msgid "elliptical-label"
+msgstr "elliptical-label"
+
+#: C/mancreate.page:258(code)
+#, no-wrap
+msgid "square-label"
+msgstr "square-label"
+
+#: C/mancreate.page:259(code)
+#, no-wrap
+msgid "rectangle-label"
+msgstr "rectangle-label"
+
+#: C/mancreate.page:260(code)
+#, no-wrap
+msgid "card"
+msgstr "card"
+
+#: C/mancreate.page:261(code)
+#, no-wrap
+msgid "business-card"
+msgstr "business-card"
+
+#: C/mancreate.page:262(code)
+#, no-wrap
+msgid "media"
+msgstr "media"
+
+#: C/mancreate.page:263(code)
+#, no-wrap
+msgid "mail"
+msgstr "mail"
+
+#: C/mancreate.page:264(code)
+#, no-wrap
+msgid "foldable"
+msgstr "foldable"
+
+#: C/mancreate.page:265(code)
+#, no-wrap
+msgid "photo"
+msgstr "photo"
+
+#: C/mancreate.page:272(code)
+#, no-wrap
+msgid "product_url"
+msgstr "product_url"
+
+#: C/mancreate.page:273(p)
+msgid ""
+"A URL pointing to the vendor's webpage for the specific product, if available."
+msgstr ""
+
+#: C/mancreate.page:277(p)
+msgid ""
+"Suggestions for additional categories can be sent to the <app>gLabels</app> "
+"developer's <link href=\"mailto:glabels-devel@lists.sourceforge.net\">mailing "
+"list</link>."
+msgstr ""
+
+#: C/mancreate.page:280(p)
+msgid "Product URLs may be of limited use, because they may not be permanent."
+msgstr ""
+
+#: C/mancreate.page:293(title)
+msgid "<span translate=\"no\">Label-rectangle</span> Node"
+msgstr ""
+
+#: C/mancreate.page:295(p)
+msgid ""
+"A <code translate=\"no\">Label-rectangle</code> node describes the dimensions "
+"of a single label or business card that is rectangular in shape (may have "
+"rounded edges)."
+msgstr ""
+
+#: C/mancreate.page:307(code) C/mancreate.page:370(code)
+#: C/mancreate.page:421(code) C/mancreate.page:468(code)
+#, no-wrap
+msgid "id"
+msgstr "id"
+
+#: C/mancreate.page:308(p) C/mancreate.page:371(p) C/mancreate.page:422(p)
+#: C/mancreate.page:469(p)
+msgid "Reserved for future use. Should always be 0."
+msgstr ""
+
+#: C/mancreate.page:312(p)
+msgid "Width of label/card"
+msgstr ""
+
+#: C/mancreate.page:316(p)
+msgid "Heigth of label/card"
+msgstr ""
+
+#: C/mancreate.page:319(code)
+#, no-wrap
+msgid "round"
+msgstr "round"
+
+#: C/mancreate.page:320(p)
+msgid ""
+"Radius of corners. For items with square edges (business cards), the radius "
+"should be 0."
+msgstr ""
+
+#: C/mancreate.page:324(code)
+#, no-wrap
+msgid "x_waste"
+msgstr "x_waste"
+
+#: C/mancreate.page:325(p)
+msgid ""
+"Amount of horizontal waste (over-print) to allow. This is useful for "
+"minimizing alignment problems when using non-white backgrounds (e.g. images)."
+msgstr ""
+
+#: C/mancreate.page:330(code)
+#, no-wrap
+msgid "y_waste"
+msgstr "y_waste"
+
+#: C/mancreate.page:331(p)
+msgid ""
+"Amount of vertical waste (over-print) to allow. This is useful for minimizing "
+"alignment problems when using non-white backgrounds (e.g. images)."
+msgstr ""
+
+#: C/mancreate.page:339(desc) C/mancreate.page:341(p)
+msgid "<span translate=\"no\">Label-rectangle</span> parameters"
+msgstr ""
+
+#: C/mancreate.page:356(title)
+msgid "<span translate=\"no\">Label-ellipse</span> Node"
+msgstr ""
+
+#: C/mancreate.page:358(p)
+msgid ""
+"A <code translate=\"no\">Label-ellipse</code> node describes the dimensions "
+"of a single label or business card that is elliptic in shape."
+msgstr ""
+
+#: C/mancreate.page:375(p)
+msgid "Width of the ellipse"
+msgstr ""
+
+#: C/mancreate.page:379(p)
+msgid "Heigth of the ellipse"
+msgstr ""
+
+#: C/mancreate.page:382(code) C/mancreate.page:429(code)
+#: C/mancreate.page:490(code)
+#, no-wrap
+msgid "waste"
+msgstr "waste"
+
+#: C/mancreate.page:383(p) C/mancreate.page:430(p) C/mancreate.page:491(p)
+msgid ""
+"Amount of waste (over-print) to allow. This is useful for minimizing "
+"alignment problems when using non-white backgrounds (e.g. images)."
+msgstr ""
+
+#: C/mancreate.page:391(desc) C/mancreate.page:393(p)
+#: C/mancreate.page:438(desc) C/mancreate.page:440(p)
+msgid "<span translate=\"no\">Label-ellipse</span> parameters"
+msgstr ""
+
+#: C/mancreate.page:408(title)
+msgid "<span translate=\"no\">Label-round</span> Node"
+msgstr ""
+
+#: C/mancreate.page:410(p)
+msgid ""
+"A <code translate=\"no\">Label-round</code> node describes the dimensions of "
+"a simple round label (not a CD)."
+msgstr ""
+
+#: C/mancreate.page:425(code) C/mancreate.page:472(code)
+#: C/mancreate.page:614(code)
+#, no-wrap
+msgid "radius"
+msgstr "radius"
+
+#: C/mancreate.page:426(p)
+msgid "Radius (1/2 diameter) of label"
+msgstr ""
+
+#: C/mancreate.page:455(title)
+msgid "<span translate=\"no\">Label-cd</span> Node"
+msgstr ""
+
+#: C/mancreate.page:457(p)
+msgid ""
+"A <code translate=\"no\">Label-cd</code> node describes the dimensions of a "
+"CD, DVD, or business card CD."
+msgstr ""
+
+#: C/mancreate.page:473(p)
+msgid "Outer radius of label"
+msgstr ""
+
+#: C/mancreate.page:476(code)
+#, no-wrap
+msgid "hole"
+msgstr "hole"
+
+#: C/mancreate.page:477(p)
+msgid "Radius of concentric hole"
+msgstr ""
+
+#: C/mancreate.page:481(p)
+msgid ""
+"If present, the label is clipped to the given width. (Useful for \"business "
+"card CDs\")."
+msgstr ""
+
+#: C/mancreate.page:486(p)
+msgid ""
+"If present, the label is clipped to the given height. (Useful for \"business "
+"card CDs\")."
+msgstr ""
+
+#: C/mancreate.page:499(desc)
+msgid "<span translate=\"no\">Label-cd</span> parameters"
+msgstr ""
+
+#: C/mancreate.page:501(p)
+msgid "CD label parameters"
+msgstr ""
+
+#: C/mancreate.page:516(title)
+msgid "<span translate=\"no\">Markup</span> Nodes"
+msgstr ""
+
+#: C/mancreate.page:518(p)
+msgid ""
+"Templates may contain optional markup nodes. These nodes are used to describe "
+"a simple set of markup lines that are visible in the <app>glabels</app> "
+"drawing canvas, but not visible when printed. These lines can represent "
+"margins, fold lines, center lines, special areas, or other helpful hints to "
+"the user of a template."
+msgstr ""
+
+#: C/mancreate.page:528(title)
+msgid "<span translate=\"no\">Markup-margin</span> Node"
+msgstr ""
+
+#: C/mancreate.page:530(p)
+msgid ""
+"A <code translate=\"no\">Markup-margin</code> describes a margin along all "
+"edges of a label."
+msgstr ""
+
+#: C/mancreate.page:542(p)
+msgid ""
+"Size of the margin. I.e. the distance of the margin line from the edge of the "
+"card/label."
+msgstr ""
+
+#: C/mancreate.page:556(title)
+msgid "<span translate=\"no\">Markup-line</span> Node"
+msgstr ""
+
+#: C/mancreate.page:558(p)
+msgid ""
+"A <code translate=\"no\">Markup-line</code> node describes a markup line."
+msgstr ""
+
+#: C/mancreate.page:568(code) C/mancreate.page:640(code)
+#: C/mancreate.page:682(code)
+#, no-wrap
+msgid "x1"
+msgstr "x1"
+
+#: C/mancreate.page:569(p)
+msgid "x coordinate of 1st endpoint of the line segment."
+msgstr ""
+
+#: C/mancreate.page:572(code) C/mancreate.page:644(code)
+#: C/mancreate.page:686(code)
+#, no-wrap
+msgid "y1"
+msgstr "y1"
+
+#: C/mancreate.page:573(p)
+msgid "y coordinate of 1st endpoint of the line segment."
+msgstr ""
+
+#: C/mancreate.page:576(code)
+#, no-wrap
+msgid "x2"
+msgstr "x2"
+
+#: C/mancreate.page:577(p)
+msgid "x coordinate of 2st endpoint of the line segment."
+msgstr ""
+
+#: C/mancreate.page:580(code)
+#, no-wrap
+msgid "y2"
+msgstr "y2"
+
+#: C/mancreate.page:581(p)
+msgid "y coordinate of 2st endpoint of the line segment."
+msgstr ""
+
+#: C/mancreate.page:594(title)
+msgid "<span translate=\"no\">Markup-circle</span> Node"
+msgstr ""
+
+#: C/mancreate.page:596(p)
+msgid "A <code translate=\"no\">Markup-circle</code> describes a markup circle."
+msgstr ""
+
+#: C/mancreate.page:606(code) C/mancreate.page:740(code)
+#, no-wrap
+msgid "x0"
+msgstr "x0"
+
+#: C/mancreate.page:607(p)
+msgid "x coordinate of circle origin (center)."
+msgstr ""
+
+#: C/mancreate.page:610(code) C/mancreate.page:745(code)
+#, no-wrap
+msgid "y0"
+msgstr "y0"
+
+#: C/mancreate.page:611(p)
+msgid "y coordinate of circle origin (center)."
+msgstr ""
+
+#: C/mancreate.page:615(p)
+msgid "Radius of circle."
+msgstr ""
+
+#: C/mancreate.page:628(title)
+msgid "<span translate=\"no\">Markup-rect</span> Node"
+msgstr ""
+
+#: C/mancreate.page:630(p)
+msgid ""
+"A <code translate=\"no\">Markup-rect</code> describes a markup rectangle."
+msgstr ""
+
+#: C/mancreate.page:641(p)
+msgid "x coordinate of upper left corner of rectangle."
+msgstr ""
+
+#: C/mancreate.page:645(p)
+msgid "y coordinate of upper left corner of rectangle."
+msgstr ""
+
+#: C/mancreate.page:648(code) C/mancreate.page:690(code)
+#, no-wrap
+msgid "w"
+msgstr "w"
+
+#: C/mancreate.page:649(p)
+msgid "Width of rectangle."
+msgstr ""
+
+#: C/mancreate.page:652(code) C/mancreate.page:694(code)
+#, no-wrap
+msgid "h"
+msgstr "h"
+
+#: C/mancreate.page:653(p)
+msgid "Height of rectangle."
+msgstr ""
+
+#: C/mancreate.page:656(code)
+#, no-wrap
+msgid "r"
+msgstr "r"
+
+#: C/mancreate.page:657(p)
+msgid "Radius of rounded corners of rectangle."
+msgstr ""
+
+#: C/mancreate.page:670(title)
+msgid "<span translate=\"no\">Markup-ellipse</span> Node"
+msgstr ""
+
+#: C/mancreate.page:672(p)
+msgid ""
+"A <code translate=\"no\">Markup-ellipse</code> describes a markup ellipse."
+msgstr ""
+
+#: C/mancreate.page:683(p)
+msgid "x coordinate of upper left corner of ellipse."
+msgstr ""
+
+#: C/mancreate.page:687(p)
+msgid "y coordinate of upper left corner of ellipse."
+msgstr ""
+
+#: C/mancreate.page:691(p)
+msgid "Width of ellipse."
+msgstr ""
+
+#: C/mancreate.page:695(p)
+msgid "Height of ellipse."
+msgstr ""
+
+#: C/mancreate.page:713(title)
+msgid "<span translate=\"no\">Layout</span> Node"
+msgstr ""
+
+#: C/mancreate.page:715(p)
+msgid ""
+"A label node may contain multiple <code translate=\"no\">Layout</code> "
+"children. If labels are arranged in a simple grid pattern, only one layout is "
+"needed. However, if labels are arranged in multiple grids, such as a running "
+"bond pattern, multiple <code translate=\"no\">Layout</code> tags can be used."
+msgstr ""
+
+#: C/mancreate.page:721(p)
+msgid "A single label can always be treated as a grid of one."
+msgstr ""
+
+#: C/mancreate.page:732(code)
+#, no-wrap
+msgid "nx"
+msgstr "nx"
+
+#: C/mancreate.page:733(p)
+msgid "Number of labels/cards across in the grid (horizontal)"
+msgstr ""
+
+#: C/mancreate.page:736(code)
+#, no-wrap
+msgid "ny"
+msgstr "ny"
+
+#: C/mancreate.page:737(p)
+msgid "Number of labels/cards across in the grid (vertical)"
+msgstr ""
+
+#: C/mancreate.page:741(p)
+msgid ""
+"Distance from left edge of sheet to the left edge of the left column of cards/"
+"labels in the layout."
+msgstr ""
+
+#: C/mancreate.page:746(p)
+msgid ""
+"Distance from the top edge of sheet to the top edge of the top row of labels/"
+"cards in the layout."
+msgstr ""
+
+#: C/mancreate.page:750(code)
+#, no-wrap
+msgid "dx"
+msgstr "dx"
+
+#: C/mancreate.page:751(p)
+msgid "Horizontal pitch of grid."
+msgstr ""
+
+#: C/mancreate.page:754(code)
+#, no-wrap
+msgid "dy"
+msgstr "dy"
+
+#: C/mancreate.page:755(p)
+msgid "Vertical pitch of grid."
+msgstr ""
+
+#: C/mancreate.page:761(desc)
+msgid "<span translate=\"no\">Layout</span> parameters"
+msgstr ""
+
+#: C/mancreate.page:763(p)
+msgid "<span translate=\"no\">Layout</span> Parameters"
+msgstr ""
+
+#: C/license.page:8(desc)
+msgid "Legal information."
+msgstr ""
+
+#: C/license.page:11(title)
+msgid "License"
+msgstr ""
+
+#: C/license.page:12(p)
+msgid ""
+"This work is distributed under a CreativeCommons Attribution-Share Alike 3.0 "
+"Unported license."
+msgstr ""
+
+#: C/license.page:20(p)
+msgid "You are free:"
+msgstr ""
+
+#: C/license.page:25(em)
+msgid "To share"
+msgstr ""
+
+#: C/license.page:26(p)
+msgid "To copy, distribute and transmit the work."
+msgstr ""
+
+#: C/license.page:29(em)
+msgid "To remix"
+msgstr ""
+
+#: C/license.page:30(p)
+msgid "To adapt the work."
+msgstr ""
+
+#: C/license.page:33(p)
+msgid "Under the following conditions:"
+msgstr ""
+
+#: C/license.page:38(em)
+msgid "Attribution"
+msgstr ""
+
+#: C/license.page:39(p)
+msgid ""
+"You must attribute the work in the manner specified by the author or licensor "
+"(but not in any way that suggests that they endorse you or your use of the "
+"work)."
+msgstr ""
+
+#: C/license.page:46(em)
+msgid "Share Alike"
+msgstr ""
+
+#: C/license.page:47(p)
+msgid ""
+"If you alter, transform, or build upon this work, you may distribute the "
+"resulting work only under the same, similar or a compatible license."
+msgstr ""
+
+#: C/license.page:53(p)
+msgid ""
+"For the full text of the license, see the <link href=\"http://creativecommons."
+"org/licenses/by-sa/3.0/legalcode\">CreativeCommons website</link>, or read "
+"the full <link href=\"http://creativecommons.org/licenses/by-sa/3.0/"
+"\">Commons Deed</link>."
+msgstr ""
+
+#: C/labelprop.page:9(desc)
+msgid "How to change the properties of a label or business card."
+msgstr ""
+
+#: C/labelprop.page:25(title)
+msgid "To change label properties"
+msgstr ""
+
+#: C/labelprop.page:27(p)
+msgid ""
+"To change the media type and/or orientation of a label, choose "
+"<guiseq><gui>File</gui><gui>Properties</gui></guiseq> to display the "
+"<gui>Label properties</gui> dialog. Select the new media type and orientation "
+"for the document, then click <gui>OK</gui>."
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/index.page:24(None)
+msgid ""
+"@@image: 'figures/glabels-logo.png'; md5=0c1e32afcbae0d2fc6976020c24a0a43"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/index.page:47(None)
+msgid ""
+"@@image: 'figures/introduction-glabels-main-window.png'; "
+"md5=fceca242699bb062a5ac243a5f962f3b"
+msgstr ""
+
+#: C/index.page:7(title) C/index.page:8(title)
+msgid "gLabels label and business card designer"
+msgstr ""
+
+#: C/index.page:23(title)
+msgid ""
+"<media type=\"image\" mime=\"image/png\" src=\"figures/glabels-logo.png"
+"\">gLabels logo</media> gLabels Manual"
+msgstr ""
+
+#: C/index.page:28(p)
+msgid ""
+"The <app>gLabels</app> application is a lightweight program for creating "
+"labels and business cards for the GNOME desktop environment. It is designed "
+"to work with various laser/ink-jet peel-off label and business card sheets "
+"that you'll find at most office supply stores."
+msgstr ""
+
+#: C/index.page:35(p)
+msgid ""
+"<app>gLabels</app> can be used to design address labels, name tags, price "
+"tags, cd/dvd labels, or just about anything else that is organized in a "
+"regular pattern on a sheet of paper. Labels (or cards) can contain text, "
+"images, lines, shapes, and barcodes. <app>gLabels</app> also includes a "
+"document-merge feature which lets you print a unique label for each record "
+"from an external data source, such as a CSV file or an <app>Evolution</app> "
+"address book."
+msgstr ""
+
+#: C/index.page:45(title) C/index.page:46(desc)
+msgid "<app>gLabels</app> main window"
+msgstr ""
+
+#: C/index.page:48(p)
+msgid "<app>gLabels</app> main window."
+msgstr ""
+
+#: C/index.page:53(title)
+msgid "Usage"
+msgstr ""
+
+#: C/index.page:57(title)
+msgid "Document Merging"
+msgstr ""
+
+#: C/index.page:61(title)
+msgid "Advanced usage"
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/editprop.page:35(None)
+msgid ""
+"@@image: 'figures/object-editor-sidebar.png'; "
+"md5=828ffc05f69e1914595cc1e3d7401e2f"
+msgstr ""
+
+#: C/editprop.page:9(desc)
+msgid "Change the properties of objects."
+msgstr ""
+
+#: C/editprop.page:25(title)
+msgid "To edit object properties"
+msgstr ""
+
+#: C/editprop.page:29(p)
+msgid ""
+"Most object properties can be modified through the object editor sidebar, "
+"illustrated below. To use the object editor, a single object must first be "
+"selected. See <link xref=\"select\"/>."
+msgstr ""
+
+#. ==== End of Figure ====
+#: C/editprop.page:40(p)
+msgid ""
+"The object editor will contain a subset of the following tabbed sections, "
+"depending on object type:"
+msgstr ""
+
+#: C/editprop.page:44(title)
+msgid "Text Tabbed Section (Text objects)"
+msgstr ""
+
+#: C/editprop.page:46(p)
+msgid ""
+"This section contains a small editor for changing the content of a text "
+"object. It also contains a dropdown menu of available document merge keys, "
+"that can be inserted into text."
+msgstr ""
+
+#: C/editprop.page:53(title)
+msgid "Image Tabbed Section (Image objects)"
+msgstr ""
+
+#: C/editprop.page:55(p)
+msgid ""
+"This section contains a file entry with preview to select image files. The "
+"browse button can be used to easily locate image files. Alternatively, a "
+"document merge key can be used instead to provide a filename at print time."
+msgstr ""
+
+#: C/editprop.page:63(title)
+msgid "Data Tabbed Section (Barcode objects)"
+msgstr ""
+
+#: C/editprop.page:65(p)
+msgid ""
+"This section contains a text entry to enter literal barcode data. "
+"Alternatively, a document merge key can be used to provide this data at print "
+"time."
+msgstr ""
+
+#: C/editprop.page:72(title)
+msgid "Style Tabbed Section (Text objects)"
+msgstr ""
+
+#: C/editprop.page:74(p)
+msgid ""
+"This section contains controls to select text properties, including font "
+"family, font size, font weight, color, and text justification."
+msgstr ""
+
+#: C/editprop.page:81(title)
+msgid "Style Tabbed Section (Barcode objects)"
+msgstr ""
+
+#: C/editprop.page:83(p)
+msgid ""
+"This section contains controls to select barcode properties, including "
+"barcode style, color, whether to print text, and whether to include a "
+"checksum digit."
+msgstr ""
+
+#: C/editprop.page:90(title)
+msgid "Line Tabbed Section"
+msgstr ""
+
+#: C/editprop.page:92(p)
+msgid ""
+"This section contains controls to select properties of lines and outlines. "
+"These properties include line width and color."
+msgstr ""
+
+#: C/editprop.page:98(title)
+msgid "Fill Tabbed Section"
+msgstr ""
+
+#: C/editprop.page:100(p)
+msgid ""
+"This section contains controls to select fill properties of box and ellipse "
+"objects. Currently the only fill property is fill color."
+msgstr ""
+
+#: C/editprop.page:107(title)
+msgid "Size Tabbed Section (All except line objects)"
+msgstr ""
+
+#: C/editprop.page:109(p)
+msgid ""
+"This section contains controls to select the width and height of an object. A "
+"checkbox is provided, so that the current aspect ratio can be locked while "
+"manipulating the width and height controls. Image objects also provide a "
+"button to reset the size to the image's natural size (Assumes 72DPI)."
+msgstr ""
+
+#: C/editprop.page:118(title)
+msgid "Size Tabbed Section (Line objects)"
+msgstr ""
+
+#: C/editprop.page:120(p)
+msgid ""
+"This section contains controls to select the length and angle of a line "
+"object."
+msgstr ""
+
+#: C/editprop.page:126(title)
+msgid "Position Tabbed Section"
+msgstr ""
+
+#: C/editprop.page:128(p)
+msgid "This section contains controls to change the position of an object."
+msgstr ""
+
+#: C/editprop.page:135(title)
+msgid "Shadow Tabbed Section (All except barcode objects)"
+msgstr ""
+
+#: C/editprop.page:137(p)
+msgid "This section contains controls to add a shadow to an object."
+msgstr ""
+
+#: C/editprop.page:146(title)
+msgid "Other Manipulations of Objects"
+msgstr ""
+
+#: C/editprop.page:148(p)
+msgid "Objects can also be manipulated in the following ways."
+msgstr ""
+
+#: C/editprop.page:151(title)
+msgid "Moving and Resizing Objects"
+msgstr ""
+
+#: C/editprop.page:153(p)
+msgid ""
+"Objects can be moved by simply clicking on a selected object and dragging the "
+"object to its new location. If the object is part of an aggregate selection, "
+"all objects in the selection will move with the object being dragged, "
+"maintaining their relative positions to one another. If no object is "
+"selected, clicking on an object will create a new selection containing that "
+"object. See <link xref=\"select\"/>."
+msgstr ""
+
+#: C/editprop.page:161(p)
+msgid ""
+"A selected object can be resized by clicking one of its resize handle and "
+"dragging it to obtain the new size."
+msgstr ""
+
+#: C/editprop.page:167(title)
+msgid "Changing Stacking Order"
+msgstr ""
+
+#: C/editprop.page:169(p)
+msgid ""
+"Stacking order refers to relative position in the z-axis of objects. That is "
+"when objects overlap, which object will appear on top of the other. By "
+"default, newer objects will appear above older objects. To change this order, "
+"select one or more objects and choose <guiseq><gui>Objects</gui><gui>Order</"
+"gui><gui>Bring to Front</gui></guiseq> to raise the selection to the top of "
+"the stacking order, or choose <guiseq><gui>Objects</gui><gui>Order</"
+"gui><gui>Send to Back</gui></guiseq> to lower the selection to the bottom of "
+"the stacking order. These menuitems are also available by right-clicking the "
+"display area when there is a non-empty selection."
+msgstr ""
+
+#: C/editprop.page:187(title)
+msgid "Rotating and Flipping Objects"
+msgstr ""
+
+#: C/editprop.page:189(p)
+msgid ""
+"Objects can be rotated 90 degrees in either direction, or flipped "
+"horizontally or vertically, by choosing the appropriate menuitem in the "
+"<guiseq><gui>Objects</gui><gui>Rotate/Flip</gui></guiseq> sub-menu. These "
+"menuitems are also available by right-clicking the display area when there is "
+"a non-empty selection."
+msgstr ""
+
+#: C/editprop.page:197(p)
+msgid ""
+"This feature could be useful when you are designing CD box inlays. For the "
+"spine caption, you need vertical aligned text. After you have created a basic "
+"text box, choose <guiseq><gui>Objects</gui><gui>Rotate/Flip</gui></guiseq> to "
+"rotate the text box according to your needs."
+msgstr ""
+
+#: C/editprop.page:208(title)
+msgid "Aligning Objects"
+msgstr ""
+
+#: C/editprop.page:210(p)
+msgid ""
+"Objects can be aligned horizontally or vertically, relative to one another, "
+"or relative to the center line of the label, by choosing the appropriate "
+"menuitem from the <guiseq><gui>Objects</gui><gui>Align Horizontal</gui></"
+"guiseq> or <guiseq><gui>Objects</gui><gui>Align Vertical</gui></guiseq> sub-"
+"menus. These menuitems are also available by right-clicking the display area "
+"when there is a non-empty selection."
+msgstr ""
+
+#: C/editprop.page:223(title)
+msgid "Using the Property Bar"
+msgstr ""
+
+#: C/editprop.page:225(p)
+msgid ""
+"The property bar can be used to change some common properties of objects en-"
+"masse. These properties include font family, font size, font weight, text "
+"alignment, text color, fill color, line or outline color, and line width. The "
+"property bar also controls the defaults for these properties for any newly "
+"created objects."
+msgstr ""
+
+#: C/customtemplate.page:9(desc)
+msgid "Create your own templates for stationery products."
+msgstr ""
+
+#: C/customtemplate.page:25(title)
+msgid "To create a custom template"
+msgstr ""
+
+#: C/customtemplate.page:27(p)
+msgid ""
+"To create a new custom template, choose <guiseq><gui>File</gui><gui>Template "
+"Designer ...</gui></guiseq> to display the <gui>Template Designer</gui> "
+"dialog. This dialog will assist you in creating a custom template for most "
+"types of label or card stationery that you may encounter."
+msgstr ""
+
+#: C/customtemplate.page:34(p)
+msgid ""
+"If you prefer, you can create your templates manually. For this option see "
+"<link xref=\"mancreate\"/>"
+msgstr ""
+
+#: C/customize.page:9(desc)
+msgid "Customize <app>gLabels</app> to match your needs."
+msgstr ""
+
+#. Use this section to describe how to customize the application.
+#: C/customize.page:25(title)
+msgid "Settings"
+msgstr ""
+
+#: C/customize.page:26(p)
+msgid ""
+"To configure <app>gLabels</app>, choose <guiseq><gui>Settings</"
+"gui><gui>Preferences</gui></guiseq>. The <gui>Preferences</gui> dialog "
+"contains the following tabbed sections:"
+msgstr ""
+
+#: C/customize.page:35(title)
+msgid "Locale"
+msgstr ""
+
+#: C/customize.page:37(title)
+msgid "Units"
+msgstr ""
+
+#: C/customize.page:38(p)
+msgid ""
+"Use this radio button group to specify your preferred units. Select one of "
+"the following options:"
+msgstr ""
+
+#: C/customize.page:42(gui)
+msgid "Points"
+msgstr ""
+
+#: C/customize.page:43(p)
+msgid "Use points (1 point = 1/72 in = 0.352778 mm)."
+msgstr ""
+
+#: C/customize.page:46(gui)
+msgid "Inches"
+msgstr ""
+
+#: C/customize.page:47(p)
+msgid "Use Inches."
+msgstr ""
+
+#: C/customize.page:50(gui)
+msgid "Millimeters"
+msgstr ""
+
+#: C/customize.page:51(p)
+msgid "Use Millimeters."
+msgstr ""
+
+#: C/customize.page:54(p)
+msgid "Default: <gui>Inches</gui>."
+msgstr ""
+
+#: C/customize.page:58(title)
+msgid "Default page size"
+msgstr ""
+
+#: C/customize.page:59(p)
+msgid ""
+"Use this radio button group to specify your prefered page size. This will "
+"make it quicker for you to locate media types when creating a new label or "
+"card."
+msgstr ""
+
+#: C/customize.page:64(gui)
+msgid "US Letter"
+msgstr ""
+
+#: C/customize.page:65(p)
+msgid "Most of your media will be of the US Letter page size (8.5 x 11 inches)."
+msgstr ""
+
+#: C/customize.page:68(gui)
+msgid "ISO A4"
+msgstr ""
+
+#: C/customize.page:69(p)
+msgid "Most of your media will be of the ISO A4 page size (210 x 297 mm)."
+msgstr ""
+
+#: C/customize.page:72(p)
+msgid "Default: <gui>US Letter</gui>."
+msgstr ""
+
+#: C/customize.page:77(title)
+msgid "Object Defaults"
+msgstr ""
+
+#: C/customize.page:80(title) C/createnew.page:39(title)
+msgid "Text"
+msgstr ""
+
+#: C/customize.page:81(p)
+msgid ""
+"Use these controls to set the default properties of new text objects. These "
+"properties are:"
+msgstr ""
+
+#: C/customize.page:85(gui)
+msgid "Font"
+msgstr ""
+
+#: C/customize.page:86(p)
+msgid ""
+"These controls are used to select font family and font size, and whether the "
+"font should bold or in italics."
+msgstr ""
+
+#: C/customize.page:90(gui) C/customize.page:110(gui) C/customize.page:122(gui)
+msgid "Color"
+msgstr ""
+
+#: C/customize.page:91(p)
+msgid "This control selects the default text color."
+msgstr ""
+
+#: C/customize.page:94(gui)
+msgid "Alignment"
+msgstr ""
+
+#: C/customize.page:95(p)
+msgid ""
+"These controls are used to select the default text alignment (left, center or "
+"right)."
+msgstr ""
+
+#: C/customize.page:101(title) C/createnew.page:56(title)
+msgid "Line"
+msgstr ""
+
+#: C/customize.page:102(p)
+msgid ""
+"Use these controls to set the default properties of lines and outlines of new "
+"objects. These properties are:"
+msgstr ""
+
+#: C/customize.page:106(gui)
+msgid "Width"
+msgstr ""
+
+#: C/customize.page:107(p)
+msgid "This control selects the default line width."
+msgstr ""
+
+#: C/customize.page:111(p)
+msgid "This control selects the default line color."
+msgstr ""
+
+#: C/customize.page:117(title)
+msgid "Fill"
+msgstr ""
+
+#: C/customize.page:118(p)
+msgid ""
+"Use this control to set the default fill property of new objects. This "
+"property is:"
+msgstr ""
+
+#: C/customize.page:123(p)
+msgid "This control selects the default fill color."
+msgstr ""
+
+#: C/createnew.page:9(desc)
+msgid "Create new objects within your document."
+msgstr ""
+
+#: C/createnew.page:25(title)
+msgid "To create new objects"
+msgstr ""
+
+#: C/createnew.page:27(p)
+msgid ""
+"Objects are created by choosing the appropriate selection under the "
+"<guiseq><gui>Objects</gui><gui>Create Object</gui></guiseq> submenu or the "
+"<gui>Drawing Toolbar</gui>. This will place the display area into object "
+"creation mode as indicated by its cursor. To return to the default object "
+"selection mode without creating an object, choose <guiseq><gui>Objects</"
+"gui><gui>Select Mode</gui></guiseq>. This will return the display area's "
+"cursor to the default selection arrow."
+msgstr ""
+
+#: C/createnew.page:35(p)
+msgid "The following describes the object creation mode for each object type:"
+msgstr ""
+
+#: C/createnew.page:40(p)
+msgid ""
+"Click the desired location of the upper left corner of the text object. New "
+"text objects are initialized with the string \"Text.\" To change this text, "
+"or other properties, see <link xref=\"editprop\"/>."
+msgstr ""
+
+#: C/createnew.page:47(title)
+msgid "Box"
+msgstr ""
+
+#: C/createnew.page:48(p)
+msgid ""
+"Click the desired location of the upper left corner of the box object and "
+"drag to the desired location of the lower right corner. If you simply click "
+"in a single location, a square box will be created. To change properties of "
+"the box object, see <link xref=\"editprop\"/>."
+msgstr ""
+
+#: C/createnew.page:57(p)
+msgid ""
+"Click the desired location of one end of the line object and drag to the "
+"desired location of the other end. If you simply click in a single location, "
+"a diagonal line will be created. To change properties of the line object, see "
+"<link xref=\"editprop\"/>."
+msgstr ""
+
+#: C/createnew.page:65(title)
+msgid "Ellipse"
+msgstr ""
+
+#: C/createnew.page:66(p)
+msgid ""
+"Click the desired location of the upper left corner of the ellipse object and "
+"drag to the desired location of the lower right corner. If you simply click "
+"in a single location, a circle will be created. To change properties of the "
+"ellipse object, see <link xref=\"editprop\"/>."
+msgstr ""
+
+#: C/createnew.page:74(title)
+msgid "Image"
+msgstr ""
+
+#: C/createnew.page:75(p)
+msgid ""
+"Click the desired location of the upper left corner of the image object and "
+"drag to the desired location of the lower right corner. If you simply click "
+"in a single location, a square will be created. New image objects are "
+"initialized with a simple checkerboard image. To change this image, or other "
+"properties of the image object, see <link xref=\"editprop\"/>."
+msgstr ""
+
+#: C/createnew.page:85(title)
+msgid "Barcode"
+msgstr ""
+
+#: C/createnew.page:86(p)
+msgid ""
+"Click the desired location of the upper left corner of the barcode object. "
+"New barcode objects are initialized to a POSTNET barcode with representative "
+"data. To change data and properties of the barcode object, see <link xref="
+"\"editprop\"/>."
+msgstr ""
+
+#: C/basicusage.page:9(desc)
+msgid "Handling files and quit the application."
+msgstr ""
+
+#: C/basicusage.page:25(title)
+msgid "Basic usage"
+msgstr ""
+
+#: C/basicusage.page:28(title)
+msgid "To open a file"
+msgstr ""
+
+#: C/basicusage.page:30(p)
+msgid ""
+"To open a file, choose <guiseq><gui>File</gui><gui>Open</gui></guiseq> to "
+"display the <gui>Open File</gui> dialog. Select the file that you want to "
+"open, then click <gui>OK</gui>. The file is displayed in the display area of "
+"the <app>gLabels</app> window."
+msgstr ""
+
+#: C/basicusage.page:37(p)
+msgid ""
+"You can also open multiple files in <app>gLabels</app>. The application "
+"creates a separate application window for each open file."
+msgstr ""
+
+#: C/basicusage.page:41(p)
+msgid ""
+"The application records the paths and filenames of the most recent files that "
+"you have edited and displays the files as menu items on the "
+"<guiseq><gui>File</gui><gui>Recent Files</gui></guiseq> menu."
+msgstr ""
+
+#: C/basicusage.page:48(title)
+msgid "To close a file"
+msgstr ""
+
+#: C/basicusage.page:50(p)
+msgid ""
+"To close the current document, choose <guiseq><gui>File</gui><gui>Close</"
+"gui></guiseq> to close the application window. If the current document is "
+"modified, a confirmation dialog will be presented, allowing you to save the "
+"document or cancel the command. If the window being closed is the only open "
+"window, <app>gLabels</app> will exit."
+msgstr ""
+
+#: C/basicusage.page:60(title)
+msgid "To save a file"
+msgstr ""
+
+#: C/basicusage.page:62(p)
+msgid "You can save files in the following ways:"
+msgstr ""
+
+#: C/basicusage.page:66(p)
+msgid ""
+"To save changes to an existing file, choose <guiseq><gui>File</gui><gui>Save</"
+"gui></guiseq>."
+msgstr ""
+
+#: C/basicusage.page:73(p)
+msgid ""
+"To save a new file or to save an existing file under a new filename, choose "
+"<guiseq><gui>File</gui><gui>Save As</gui></guiseq>. Enter a name for the file "
+"in the <gui>Save As</gui> dialog box, then click <gui>OK</gui>."
+msgstr ""
+
+#: C/basicusage.page:84(title)
+msgid "To quit <app>gLabels</app>"
+msgstr ""
+
+#: C/basicusage.page:86(p)
+msgid ""
+"To quit <app>gLabels</app>, choose <guiseq><gui>File</gui><gui>Quit</gui></"
+"guiseq>. This is equivalent to closing all open windows. See <link xref="
+"\"basicusage#closefile\"/>."
+msgstr ""
+
+#: C/about.page:9(desc)
+msgid "Information about <app>gLabels</app>."
+msgstr ""
+
+#: C/about.page:25(title)
+msgid "About <app>gLabels</app>"
+msgstr ""
+
+#: C/about.page:27(p)
+msgid ""
+"<app>gLabels</app> was written by <link href=\"mailto:evins@snaught.com\">Jim "
+"Evins</link>. To find more information about <app>gLabels</app>, please visit "
+"the <link href=\"http://glabels.org\" type=\"http\"><app>gLabels</app> Web "
+"page</link>."
+msgstr ""
+
+#: C/about.page:31(p)
+msgid ""
+"To report a bug or make a suggestion regarding this application or this "
+"manual, follow the directions at the <link href=\"http://glabels.org/contact/"
+"\" type=\"http\"><app>gLabels</app> Contact Page</link>."
+msgstr ""
+
+#: C/about.page:37(p)
+msgid ""
+"This program is distributed under the terms of the GNU General Public license "
+"as published by the Free Software Foundation; either version 3 of the "
+"License, or (at your option) any later version. A copy of this license can be "
+"found at this <link href=\"ghelp:gpl\" type=\"help\">link</link>, or in the "
+"file COPYING included with the source code of this program."
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2
+#: C/index.page:0(None)
+msgid "translator-credits"
+msgstr "Mario Blättermann <mariobl@gnome.org>, 2011"
diff --git a/help/nl/printfile.page b/help/nl/printfile.page
new file mode 100644 (file)
index 0000000..0142db0
--- /dev/null
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="printfile" xml:lang="nl">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      How to print your labels and cards.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>To print labels and cards</title>
+
+      <p>To print labels or cards, choose
+        <guiseq><gui>File</gui><gui>Print</gui>
+       </guiseq> to display the <gui>Print</gui> dialog.
+        Once print options have been selected, click <gui>Print</gui>
+        to print the labels or cards.  To simply preview the results,
+        click <gui>Print Preview</gui> instead.</p>
+
+      <p>The <gui>Print</gui> dialog allows you to specify the
+        following print options:</p>
+
+      <section>
+       <title>The Labels Tab of the Print Dialog</title>
+
+       <section>
+            <title>Print control (Simple)</title>
+
+             <p>For simple labels or cards (no document merge), the job
+                tabbed section contains the following copy controls.</p>
+
+             <!-- ==== Figure ==== -->
+               <media type="image" src="figures/print-copies.png" mime="image/png" style="right">
+               <p>Print Copy Controls</p>
+               </media>
+             <!-- ==== End of Figure ==== -->
+
+             <p>The number of copies of the label can be selected by
+                choosing the number of full sheets to print, or a specific
+                subset of labels on a single sheet.</p>
+
+             <p>The mini-preview can also be used to graphically select
+                the subset of labels by clicking the first label on the
+                mini-preview and dragging to the last label.</p>
+
+         </section>
+
+         <section>
+            <title>Print control (Merge)</title>
+
+             <p>For labels or cards using the document merge (also known
+                as "mail merge") capability, the job tabbed section contains
+                the following merge controls instead of copy controls.</p>
+
+             <!-- ==== Figure ==== -->
+               <media type="image" src="figures/print-merge.png" mime="image/png" style="right">
+               <p>Print Document Merge Controls</p>
+               </media>
+             <!-- ==== End of Figure ==== -->
+
+             <p>The total number of labels or cards printed is the
+                product of the number of records in the merge source and
+                the number of copies selected.  If multiple copies are
+                selected, these can be either collated (copies of the
+                same record grouped together) or un-collated (one copy
+                each record is printed before next copy).</p>
+
+             <p>Printing can begin on any label on the first sheet.
+                This can be selected with the <gui>Start on
+                label</gui> spinbutton.</p>
+
+             <p>The mini-preview can also be used to graphically select
+                this first label, by clicking on the desired label in the
+                mini-preview.</p>
+
+         </section>
+
+         <section> 
+         <title>Options</title>
+             <p>The following options can also be selected.</p>
+             <list>
+               <item>
+                 <p><gui>print outlines</gui></p>
+                 <p>Print outlines of labels.  This option is useful for
+                    dry-runs, to test printer alignment.</p>
+               </item>
+               <item>
+                 <p><gui>print in reverse</gui></p>
+                 <p>Prints the labels as mirror images.  This option is
+                    useful for printing on clear labels that will be viewed
+                    from the reverse side (e.g. in a car window).</p>
+               </item>
+               <item>
+                 <p><gui>print crop marks</gui></p>
+                 <p>Prints crop marks along the edge of the sheet.
+                    This option is useful for printing on blank stock, to
+                    be cut after printing.  This option does not work well
+                    with all templates.</p>
+               </item>
+             </list>
+       </section>
+       </section>
+
+</page>
diff --git a/help/nl/select.page b/help/nl/select.page
new file mode 100644 (file)
index 0000000..3ac4a47
--- /dev/null
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="select" xml:lang="nl">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      How to select objects.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>To select objects</title>
+
+      <p>A prerequisite for performing operations on objects is the
+        selection of individual objects or groups of objects.  The
+        display area must be in the object selection mode to create new
+        selections, as indicated by an arrow cursor.  The object
+        selection mode is selected by the
+        <guiseq><gui>Objects</gui>
+        <gui>Select Mode</gui></guiseq> menu item,
+        or the corresponding command on the <gui>Drawing
+        Toolbar</gui>.</p>
+
+      <section>
+         <title>Selecting a single object</title>
+           <p>A single object can be selected simply by clicking
+             on the desired object in the display area.
+             Once selected the object will be highlighted with a set of
+             resizing handles.</p>
+       </section>
+
+       <section>
+         <title>Aggregate object selections</title>
+           <p>Multiple objects can be selected by first selecting the first
+              object as above and then by holding the <key>Ctrl</key>
+              key while selecting additional objects.
+              Individual objects can be added to an existing selection
+              at any time by holding the <key>Ctrl</key> key while
+              selecting the desired objects.  All objects can also be
+              selected by using the <guiseq><gui>Edit</gui>
+              <gui>Select All</gui></guiseq>
+              menu item.  All objects in an aggregate object selection will be
+              highlighted.</p>
+       </section>
+
+       <section>
+         <title>Area selections</title>
+         
+           <p>Multiple objects can also be selected by clicking an empty
+              area and dragging to form a rectangular area.  When released,
+              all objects contained in the area will form an aggregate
+              selection.  An area selection can be used to add to an existing
+              selection by holding the <key>Ctrl</key> key while
+              performing the selection.</p>
+         
+       </section>
+
+       <section>
+         <title>Unselecting objects</title>
+         
+           <p>Individual objects can be removed from an existing
+              selection by holding the <key>Ctrl</key> key while
+              clicking on a previously selected object.  An entire selection
+              can be dismissed by using the <guiseq>
+             <gui>Edit</gui> <gui>Un-select All</gui>
+              </guiseq> menu item
+              or by simply clicking any empty space in the display area.
+              Once an object is unselected its highlight is removed.</p>
+         
+       </section>
+
+    <section id="clipboard"> 
+      <title>Clipboard Commands</title>
+
+      <p>Object selections can be manipulated using the standard clipboard
+        operations <gui>Cut</gui>,
+        <gui>Copy</gui>, <gui>Paste</gui>,
+        and <gui>Delete</gui>.</p>
+
+       <section>
+         <title><gui>Cut</gui> (<keyseq><key>Ctrl</key><key>X</key></keyseq>)</title>
+         
+           <p>Moves selected objects to the clipboard.  The objects are
+              then available for pasting back into the current document or
+              another document.</p>
+         
+       </section>
+
+       <section>
+         <title><gui>Copy</gui> (<keyseq><key>Ctrl</key><key>C</key></keyseq>)</title>
+         
+           <p>Copies selected objects to the clipboard without deleting
+              them.  The objects are then available for pasting back into
+              the current document or another document.</p>
+         
+       </section>
+
+       <section>
+         <title><gui>Paste</gui> (<keyseq><key>Ctrl</key><key>V</key></keyseq>)</title>
+         
+           <p>Pastes objects from the clipboard into the current document.
+              <app>gLabels</app> can only paste objects from
+              another <app>gLabels</app> document.</p>
+         
+       </section>
+
+       <section>
+         <title><gui>Delete</gui> (<key>Del</key>)</title>
+         
+           <p>Deletes selected objects without placing them on the
+              clipboard.</p>
+         
+       </section>
+       </section>
+
+</page>
diff --git a/help/nl/skipfields.page b/help/nl/skipfields.page
new file mode 100644 (file)
index 0000000..e749ef9
--- /dev/null
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="mergeskipfields" xml:lang="nl">
+
+  <info>
+    <link type="guide" xref="index#merging"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+       How to skip blank address lines when doing a document merge.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+  <title>Skipping blank address lines</title>
+
+  <p>This feature can be best described by a simple example.  In the
+  following CSV file, column 5 (ADDR2) contains the second address line
+  for each record.  This field is empty in records 1 and 2, but not in
+  record 3. (For this feature to work, the field must be completely
+  empty -- any text, including spaces will defeat this feature.)</p>
+
+  <code>
+  LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP
+  Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037
+  McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813
+  Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207
+  </code>
+
+  <p>In the following screenshot, a single multiline text object has been
+  created to format these addresses.  Notice that ${ADDR2} representing
+  the second address line is on a line by itself.  (Any additional text
+  on this line, including spaces would defeat this feature.)</p>
+
+  <media type="image" src="figures/skip-fields-screenshot.png" mime="image/png" style="right">
+  <p>Multi-line address</p>
+  </media>
+
+  <p>Printing this label results in the following output.  Notice that the
+  line containing the ${ADDR2} field is completely skipped for the first
+  two records, without printing a blank line.</p>
+
+  <media type="image" src="figures/skip-fields-output.png" mime="image/png" style="right">
+  <p>Output</p>
+  </media>
+
+</page>
diff --git a/help/sl/about.page b/help/sl/about.page
new file mode 100644 (file)
index 0000000..3f451fe
--- /dev/null
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="topic" id="about" xml:lang="sl">
+
+  <info>
+    <link type="seealso" xref="index"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      Information about <app>gLabels</app>.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>About <app>gLabels</app></title>
+
+    <p> <app>gLabels</app> was written by <link href="mailto:evins@snaught.com">Jim Evins</link>.
+      To find more information about <app>gLabels</app>, please visit the 
+      <link href="http://glabels.org" type="http"><app>gLabels</app> Web
+       page</link>. </p>
+    <p>
+      To report a bug or make a suggestion regarding this application or
+      this manual, follow the directions at the
+      <link href="http://glabels.org/contact/" type="http"><app>gLabels</app> Contact Page</link>.
+    </p>
+
+    <p> This program is distributed under the terms of the GNU
+      General Public license as published by the Free Software
+      Foundation; either version 3 of the License, or (at your option)
+      any later version. A copy of this license can be found at this
+      <link href="ghelp:gpl" type="help">link</link>, or in the file
+      COPYING included with the source code of this program. </p>
+</page>
diff --git a/help/sl/basicusage.page b/help/sl/basicusage.page
new file mode 100644 (file)
index 0000000..9276c69
--- /dev/null
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="basicusage" xml:lang="sl">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      Handling files and quit the application.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+   <title>Basic usage</title>
+    
+    <section>
+    <title>To open a file</title>
+
+      <p>To open a file, choose 
+        <guiseq><gui>File</gui><gui>Open</gui>
+       </guiseq> to display the <gui>Open File</gui> dialog.
+        Select the file that you want to open, then click
+        <gui>OK</gui>. The file is displayed in the display area
+        of the <app>gLabels</app> window. </p>
+
+      <p>You can also open multiple files in
+        <app>gLabels</app>. The application creates a separate
+        application window for each open file.</p>
+
+      <p>The application records the paths and filenames of the
+        most recent files that you have edited and displays the files as menu
+        items on the <guiseq><gui>File</gui><gui>Recent Files</gui>
+        </guiseq> menu.</p>
+     </section>
+
+     <section id="closefile">
+    <title>To close a file</title>
+
+      <p>To close the current document, choose
+        <guiseq><gui>File</gui>
+        <gui>Close</gui></guiseq> to close the application
+        window.  If the current document is modified, a confirmation dialog
+        will be presented, allowing you to save the document or cancel
+        the command.  If the window being closed is the only open window,
+        <app>gLabels</app> will exit.</p>
+     </section>
+     
+     <section>
+    <title>To save a file</title>
+
+      <p>You can save files in the following ways:</p>
+
+      <list><item>
+
+         <p>To save changes to an existing file, choose 
+            <guiseq><gui>File</gui>
+            <gui>Save</gui></guiseq>. </p>
+
+       </item>
+        <item>
+
+         <p>To save a new file or to save an existing file under a new
+            filename, choose <guiseq><gui>File</gui>
+            <gui>Save As</gui></guiseq>. Enter a name
+            for the file in the <gui>Save As</gui> dialog box,
+            then click <gui>OK</gui>.</p>
+
+       </item>
+      </list>
+     </section>
+
+     <section>
+    <title>To quit <app>gLabels</app></title>
+
+      <p>To quit <app>gLabels</app>, choose <guiseq><gui>File</gui>
+        <gui>Quit</gui></guiseq>. This is equivalent to closing all open windows. 
+        See <link xref="basicusage#closefile"/>.</p>
+     </section>
+</page>
diff --git a/help/sl/createnew.page b/help/sl/createnew.page
new file mode 100644 (file)
index 0000000..3f8825c
--- /dev/null
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="createnew" xml:lang="sl">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      Create new objects within your document.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>To create new objects</title>
+
+      <p>Objects are created by choosing the appropriate selection under
+        the <guiseq><gui>Objects</gui><gui>Create Object</gui></guiseq> submenu
+        or the <gui>Drawing Toolbar</gui>.  This will place the display area into
+        object creation mode as indicated by its cursor.  To return to the default
+        object selection mode without creating an object, choose
+        <guiseq><gui>Objects</gui><gui>Select Mode</gui></guiseq>.  This will
+        return the display area's cursor to the default selection arrow.</p>
+
+      <p>The following describes the object creation mode for each object
+        type:</p>
+
+       <section>
+         <title>Text</title>
+           <p>Click the desired location of the upper left corner of the
+              text object.  New text objects are initialized with the
+              string "Text."  To change this text, or other properties, see
+              <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Box</title>
+           <p>Click the desired location of the upper left corner of the
+              box object and drag to the desired location of the lower right
+              corner.  If you simply click in a single location, a square
+              box will be created. To change properties of the box object, see
+              <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Line</title>
+           <p>Click the desired location of one end of the
+              line object and drag to the desired location of the other end.
+              If you simply click in a single location, a diagonal line
+              will be created. To change properties of the line object, see
+              <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Ellipse</title>
+           <p>Click the desired location of the upper left corner of the
+              ellipse object and drag to the desired location of the lower
+              right corner.  If you simply click in a single location, a circle
+              will be created. To change properties of the ellipse object, see
+              <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Image</title>
+           <p>Click the desired location of the upper left corner of the
+              image object and drag to the desired location of the lower
+              right corner.  If you simply click in a single location, a square
+              will be created.  New image objects are initialized with a
+              simple checkerboard image.  To change this image, or other
+              properties of the image object, see
+              <link xref="editprop"/>.</p>
+       </section>
+
+       <section>
+         <title>Barcode</title>
+           <p>Click the desired location of the upper left corner of the
+              barcode object.  New barcode objects are initialized to a
+              POSTNET barcode with representative data.  To change data
+              and properties of the barcode object, see
+              <link xref="editprop"/>.</p>
+       </section>
+
+</page>
diff --git a/help/sl/customize.page b/help/sl/customize.page
new file mode 100644 (file)
index 0000000..dab3232
--- /dev/null
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="customize" xml:lang="sl">
+
+  <info>
+    <link type="guide" xref="index#advanced"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>Customize <app>gLabels</app> to match your needs.</desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+    
+  <!-- ============= Customization ============================= -->
+  <!-- Use this section to describe how to customize the application. -->
+    <title>Settings</title> 
+    <p>To configure <app>gLabels</app>, choose 
+      <guiseq> 
+       <gui>Settings</gui> 
+       <gui>Preferences</gui> 
+      </guiseq>. The 
+      <gui>Preferences</gui> dialog contains the following tabbed
+      sections:</p>
+
+  <section id="prefs-locale" style="2column">
+    <title>Locale</title>
+       <section>
+       <title>Units</title>
+       <p>Use this radio button group to specify your preferred units.
+              Select one of the following options:</p>
+          <list>
+               <item>
+               <p><gui>Points</gui></p>
+               <p>Use points (1 point = 1/72 in = 0.352778 mm).</p>
+               </item>
+               <item>
+               <p><gui>Inches</gui></p>
+               <p>Use Inches.</p>
+               </item>
+               <item>
+               <p><gui>Millimeters</gui></p>
+               <p>Use Millimeters.</p>
+               </item>
+          </list>
+          <p>Default: <gui>Inches</gui>.</p>
+       </section>
+
+       <section>
+       <title>Default page size</title>
+       <p>Use this radio button group to specify your prefered page size.
+              This will make it quicker for you to locate media types when creating a new
+              label or card.</p>
+          <list>
+               <item>
+               <p><gui>US Letter</gui></p>
+               <p>Most of your media will be of the US Letter page size (8.5 x 11 inches).</p>
+               </item>
+               <item>
+               <p><gui>ISO A4</gui></p>
+               <p>Most of your media will be of the ISO A4 page size (210 x 297 mm).</p>
+               </item>
+          </list>
+          <p>Default: <gui>US Letter</gui>.</p>                
+       </section>
+    </section>
+
+  <section id="prefs-defaults" style="2column">
+    <title>Object Defaults</title>
+
+       <section>
+       <title>Text</title>
+       <p>Use these controls to set the default properties of new text objects.
+              These properties are:</p>
+          <list>
+               <item>
+               <p><gui>Font</gui></p>
+               <p>These controls are used to select font family and font size, and
+                  whether the font should bold or in italics.</p>
+               </item>
+               <item>
+               <p><gui>Color</gui></p>
+               <p>This control selects the default text color.</p>
+               </item>
+               <item>
+               <p><gui>Alignment</gui></p>
+               <p>These controls are used to select the default text alignment (left, center or right).</p>
+               </item>
+          </list>
+       </section>
+
+       <section>
+       <title>Line</title>
+       <p>Use these controls to set the default properties of lines and outlines of
+              new objects.  These properties are:</p>
+          <list>
+               <item>
+               <p><gui>Width</gui></p>
+               <p>This control selects the default line width.</p>
+               </item>
+               <item>
+               <p><gui>Color</gui></p>
+               <p>This control selects the default line color.</p>
+               </item>
+          </list>
+       </section>
+
+       <section>
+       <title>Fill</title>
+       <p>Use this control to set the default fill property of
+              new objects.  This property is:</p>
+          <list>
+               <item>
+               <p><gui>Color</gui></p>
+               <p>This control selects the default fill color.</p>
+               </item>
+          </list>
+       </section>
+       </section>
+
+</page>
diff --git a/help/sl/customtemplate.page b/help/sl/customtemplate.page
new file mode 100644 (file)
index 0000000..e186a9f
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="customtemplate" xml:lang="sl">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      Create your own templates for stationery products.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>To create a custom template</title>
+
+      <p>To create a new custom template, choose 
+        <guiseq><gui>File</gui>
+       <gui>Template Designer ...</gui></guiseq>
+       to display the <gui>Template Designer</gui> dialog.
+        This dialog will assist you in creating a custom template for
+        most types of label or card stationery that you may encounter.</p>
+
+      <p>If you prefer, you can create your templates manually.
+        For this option see <link xref="mancreate"/>
+      </p>
+
+</page>
diff --git a/help/sl/editprop.page b/help/sl/editprop.page
new file mode 100644 (file)
index 0000000..2135873
--- /dev/null
@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="editprop" xml:lang="sl">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      Change the properties of objects.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>To edit object properties</title>
+
+    <section id="glabels-object-properties">
+
+      <p>Most object properties can be modified through the object
+        editor sidebar, illustrated below.  To use the object editor,
+        a single object must first be selected.  See
+        <link xref="select"/>.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/object-editor-sidebar.png" mime="image/png" style="right">
+               <p>Print Copy Controls</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>The object editor will contain a subset of the following
+        tabbed sections, depending on object type:</p>
+
+      <section id="object-editor-text">
+       <title>Text Tabbed Section (Text objects)</title>
+
+       <p>This section contains a small editor for changing the content
+          of a text object.  It also contains a dropdown menu of available
+          document merge keys, that can be inserted into text.</p>
+
+      </section>
+
+      <section id="object-editor-image">
+       <title>Image Tabbed Section (Image objects)</title>
+
+       <p>This section contains a file entry with preview to select
+          image files.  The browse button can be used to easily locate
+          image files.  Alternatively, a document merge key can be used
+          instead to provide a filename at print time.</p>
+
+      </section>
+
+      <section id="object-editor-data">
+       <title>Data Tabbed Section (Barcode objects)</title>
+
+       <p>This section contains a text entry to enter literal barcode
+          data.  Alternatively, a document merge key can be used to
+          provide this data at print time.</p>
+
+      </section>
+
+      <section id="object-editor-style">
+       <title>Style Tabbed Section (Text objects)</title>
+
+       <p>This section contains controls to select text properties,
+          including font family, font size, font weight, color, and
+          text justification.</p>
+
+      </section>
+
+      <section id="object-editor-barcode">
+       <title>Style Tabbed Section (Barcode objects)</title>
+
+       <p>This section contains controls to select barcode properties,
+          including barcode style, color, whether to print text, and whether
+          to include a checksum digit.</p>
+
+      </section>
+
+      <section id="object-editor-line">
+       <title>Line Tabbed Section</title>
+
+       <p>This section contains controls to select properties of lines
+          and outlines.  These properties include line width and color.</p>
+
+      </section>
+
+      <section id="object-editor-fill">
+       <title>Fill Tabbed Section</title>
+
+       <p>This section contains controls to select fill properties of box
+          and ellipse objects.  Currently the only fill property is fill
+          color.</p>
+
+      </section>
+
+      <section id="object-editor-size">
+       <title>Size Tabbed Section (All except line objects)</title>
+
+       <p>This section contains controls to select the width and height
+          of an object.  A checkbox is provided, so that the current aspect
+          ratio can be locked while manipulating the width and height controls.
+          Image objects also provide a button to reset the size to the
+          image's natural size (Assumes 72DPI).</p>
+
+      </section>
+
+      <section id="object-editor-size-line">
+       <title>Size Tabbed Section (Line objects)</title>
+
+       <p>This section contains controls to select the length and angle
+          of a line object.</p>
+
+      </section>
+
+      <section id="object-editor-position">
+       <title>Position Tabbed Section</title>
+
+       <p>This section contains controls to change the position of an
+          object.</p>
+
+      </section>
+
+
+      <section id="object-editor-shadow">
+       <title>Shadow Tabbed Section (All except barcode objects)</title>
+
+       <p>This section contains controls to add a shadow to an object.</p>
+
+      </section>
+
+
+    </section>
+
+<!-- ============= Other Manipulations of Objects ========= -->
+    <section id="glabels-object-manipulation"> 
+      <title>Other Manipulations of Objects</title>
+
+      <p>Objects can also be manipulated in the following ways.</p>
+
+      <section id="other-moving-resizing">
+       <title>Moving and Resizing Objects</title>
+
+       <p>Objects can be moved by simply clicking on a selected
+          object and dragging the object to its new location.  If the object
+          is part of an aggregate selection, all objects in the selection
+          will move with the object being dragged, maintaining their relative
+          positions to one another.  If no object is selected, clicking on
+          an object will create a new selection containing that object.
+          See <link xref="select"/>.</p>
+
+       <p>A selected object can be resized by clicking one of its resize
+          handle and dragging it to obtain the new size.</p>
+
+      </section>
+
+      <section id="other-stacking-order">
+       <title>Changing Stacking Order</title>
+
+       <p>Stacking order refers to relative position in the z-axis of
+          objects.  That is when objects overlap, which object will appear
+          on top of the other.  By default, newer objects will appear above
+          older objects.  To change this order, select one or more objects
+          and choose <guiseq> <gui>Objects</gui>
+          <gui>Order</gui>
+          <gui>Bring to Front</gui> </guiseq>
+          to raise the selection to the top of the stacking
+          order, or choose <guiseq> <gui>Objects</gui>
+          <gui>Order</gui>
+          <gui>Send to Back</gui> </guiseq>
+          to lower the selection to the bottom of the
+          stacking order.  These menuitems are also available by right-clicking
+          the display area when there is a non-empty selection.</p>
+
+      </section>
+
+      <section id="other-rotating-flipping">
+       <title>Rotating and Flipping Objects</title>
+
+       <p>Objects can be rotated 90 degrees in either direction, or flipped
+          horizontally or vertically, by choosing the appropriate menuitem
+          in the  <guiseq> <gui>Objects</gui>
+          <gui>Rotate/Flip</gui> </guiseq> sub-menu.  These
+          menuitems are also available by right-clicking
+          the display area when there is a non-empty selection.</p>
+
+         <note>
+         <p>
+         This feature could be useful when you are designing CD box inlays. For 
+          the spine caption, you need vertical aligned text. After you have created
+          a basic text box, choose <guiseq> <gui>Objects</gui><gui>Rotate/Flip</gui> </guiseq>
+          to rotate the text box according to your needs.
+         </p>
+         </note>
+
+      </section>
+
+      <section id="other-alignment">
+       <title>Aligning Objects</title>
+
+       <p>Objects can be aligned horizontally or vertically, relative to
+          one another, or relative to the center line of the label, by
+          choosing the appropriate menuitem from the  <guiseq>
+          <gui>Objects</gui>
+          <gui>Align Horizontal</gui>
+          </guiseq> or  <guiseq> <gui>Objects</gui>
+          <gui>Align Vertical</gui> </guiseq> sub-menus.
+          These menuitems are also available by right-clicking
+          the display area when there is a non-empty selection.</p>
+
+      </section>
+
+      <section id="other-property-bar">
+       <title>Using the Property Bar</title>
+
+       <p>The property bar can be used to change some common properties
+          of objects en-masse.  These properties include font family, font
+          size, font weight, text alignment, text color, fill color, line
+          or outline color, and line width.  The property bar also controls
+          the defaults for these properties for any newly created objects.
+          </p>
+
+      </section>
+
+
+
+    </section>
+
+</page>
diff --git a/help/sl/index.page b/help/sl/index.page
new file mode 100644 (file)
index 0000000..cdb743c
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="index" xml:lang="sl">
+
+  <info>
+    <title type="link">gLabels label and business card designer</title>
+    <title type="text">gLabels label and business card designer</title>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+  <title>
+    <media type="image" mime="image/png" src="figures/glabels-logo.png">gLabels logo</media>
+    gLabels Manual
+  </title>
+
+  <p>
+    The <app>gLabels</app> application is a lightweight program for creating labels and 
+    business cards for the GNOME desktop environment. It is designed to work with 
+    various laser/ink-jet peel-off label and business card sheets that you'll find 
+    at most office supply stores.
+  </p>
+  <p>
+    <app>gLabels</app> can be used to design address labels, name tags, price tags,
+    cd/dvd labels, or just about anything else that is organized in a regular
+    pattern on a sheet of paper.  Labels (or cards) can contain text, images, lines,
+    shapes, and barcodes.  <app>gLabels</app> also includes a document-merge
+    feature which lets you print a unique label for each record from an external
+    data source, such as a CSV file or an <app>Evolution</app> address book.
+  </p>
+
+  <figure>
+    <title><app>gLabels</app> main window</title>
+    <desc><app>gLabels</app> main window</desc>
+    <media type="image" src="figures/introduction-glabels-main-window.png" mime="image/png" style="right">
+      <p><app>gLabels</app> main window.</p>
+    </media>
+  </figure>
+
+  <section id="usage" style="2column">
+    <title>Usage</title>
+  </section>
+
+  <section id="merging" style="2column">
+    <title>Document Merging</title>
+  </section>
+
+  <section id="advanced" style="2column">
+    <title>Advanced usage</title>
+  </section>
+
+</page>
diff --git a/help/sl/labelprop.page b/help/sl/labelprop.page
new file mode 100644 (file)
index 0000000..e35598b
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="labelprop" xml:lang="sl">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      How to change the properties of a label or business card.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>To change label properties</title>
+
+      <p>To change the media type and/or orientation of a label, choose
+        <guiseq><gui>File</gui>
+        <gui>Properties</gui></guiseq> to display the
+        <gui>Label properties</gui> dialog.  Select the
+        new media type and orientation for the document, then click
+        <gui>OK</gui>.</p>
+
+</page>
diff --git a/help/sl/license.page b/help/sl/license.page
new file mode 100644 (file)
index 0000000..66fc3c2
--- /dev/null
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" type="topic" id="license" xml:lang="sl">
+  
+  <info>
+    <link type="seealso" xref="index"/>
+    <revision pkgversion="2.30" version="0.1" date="2009-12-28" status="draft"/>
+    <desc>Legal information.</desc>
+  </info>
+
+  <title>License</title>
+  <p>
+    
+    This work is distributed under a CreativeCommons Attribution-Share Alike
+    3.0 Unported license.
+  </p>
+  <p>
+    You are free:
+  </p>
+  <terms>
+    <item>
+      <title><em>To share</em></title>
+      <p>To copy, distribute and transmit the work.</p>
+    </item>
+    <item>
+      <title><em>To remix</em></title>
+      <p>To adapt the work.</p> 
+    </item>
+  </terms>
+  <p>
+    Under the following conditions:
+  </p>
+  <terms>
+    <item>
+      <title><em>Attribution</em></title>
+      <p>
+        You must attribute the work in the manner specified by the author or 
+        licensor (but not in any way that suggests that they endorse you or 
+        your use of the work).  
+      </p>
+    </item>
+    <item>
+      <title><em>Share Alike</em></title>
+      <p>
+        If you alter, transform, or build upon this work, you may distribute the 
+        resulting work only under the same, similar or a compatible license.  
+      </p>
+    </item>
+  </terms>
+  <p>
+    
+    For the full text of the license, see the 
+    <link href="http://creativecommons.org/licenses/by-sa/3.0/legalcode">CreativeCommons website</link>, 
+    or read the full <link href="http://creativecommons.org/licenses/by-sa/3.0/">Commons Deed</link>. 
+  </p>
+</page>
diff --git a/help/sl/mancreate.page b/help/sl/mancreate.page
new file mode 100644 (file)
index 0000000..9509a48
--- /dev/null
@@ -0,0 +1,771 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" xmlns:its="http://www.w3.org/2005/11/its" type="guide" id="mancreate" xml:lang="sl">
+
+  <info>
+    <link type="guide" xref="index#advanced"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      Create your templates manually.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+  <title>Manually creating new templates</title>
+
+
+
+  <!-- ****************** -->
+  <!-- BEGIN Introduction -->
+  <!-- ****************** -->
+  <p>This page is a reference guide to manually creating <app>gLabels</app> templates.
+  <app>gLabels</app> templates are defined in simple XML files as described in the DTD:
+  <link href="http://glabels.org/xmlns/2.3/glabels-2.3.dtd.txt">glabels-2.3.dtd</link>
+  (this DTD also describes other XML files used by <app>gLabels</app>).</p>
+
+  <p>Manually created template files should be placed in the <file>${HOME}/.glabels</file>
+  and be named with a <file>.template</file> extension.</p>
+
+  <note style="advanced">
+    <p><app>gLabels</app> searches for templates in several other locations as defined here:</p>
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Location</p></td>
+        <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>
+        <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><file>${prefix}/share/libglabels-3.0/templates</file></p></td>
+        <td><p>Predefined templates distributed with <app>gLabels</app>.</p>
+            <p><file>${prefix}</file> is usually <file>/usr</file> or <file>/usr/local</file>,
+            depending on where <app>gLabels</app> was installed.</p></td>
+      </tr>
+      <tr>
+        <td><p><file>${XDG_CONFIG_HOME}/libglabels/templates</file></p></td>
+        <td><p>User defined templates created with the <app>gLabels</app> <gui>Template Designer</gui>.
+            <em>Do not put manually created templates in this directory.</em></p>
+            <p>If <file>${XDG_CONFIG_HOME}</file> is not defined, it defaults to
+            <file>${HOME}/.config</file>.</p></td>
+      </tr>
+      <tr>
+        <td><p><file>${HOME}/.glabels</file></p></td>
+        <td><p>User defined templates that have been created manually should be placed in this
+            directory.
+            Older versions of the <app>gLabels</app> <gui>Template Designer</gui> (prior to 3.0)
+            would also put templates in this directory.</p></td>
+      </tr>
+    </table>
+  </note>
+
+  <note><p>Completed template files can be sent to the
+        <app>gLabels</app> template
+        <link href="mailto:glabels-templates@lists.sourceforge.net">mailing list</link>
+        for possible inclusion in future versions of <app>gLabels</app>.</p>
+  </note>
+  <!-- ****************** -->
+  <!-- END Introduction   -->
+  <!-- ****************** -->
+
+
+  <!-- ***************** -->
+  <!-- BEGIN Assumptions -->
+  <!-- ***************** -->
+  <section id="template-assumptions">
+    <title>Assumptions/caveats</title>
+    <list>
+      <item>
+        <p>A sheet contains only one size of label or card (if a sheet
+          contains more than one size of item, it can be split into
+           multiple templates for multiple pass printing)</p>
+      </item>
+      <item>
+        <p>Distances can be expressed in units of <code translate="no">pt</code>,
+          <code translate="no">in</code>, <code translate="no">mm</code>,
+          <code translate="no">cm</code>, or <code translate="no">pc</code>.  For example:
+          "<code translate="no">1.0in</code>" or "<code translate="no">2.54cm</code>".  If no
+          units are specified, computer points (<code translate="no">pt</code>) will
+          be assumed (1 <em>pt</em> =
+          1/72 <em>in</em> = 0.352778 <em>mm</em>).
+          </p>
+      </item>
+    </list>
+  </section>
+  <!-- ***************** -->
+  <!-- END Assumptions   -->
+  <!-- ***************** -->
+
+
+
+  <!-- ******************** -->
+  <!-- BEGIN Template Files -->
+  <!-- ******************** -->
+  <section id="template-file">
+    <title>Template Files</title>
+
+    <p>A template file contains a single <code translate="no">Glabels-templates</code> top-level
+    node.</p>
+
+    <code mime="text/xml" translate="no">
+&lt;?xml version="1.0"?&gt;
+&lt;Glabels-templates&gt;
+
+   <var translate="yes">...templates...</var>
+
+&lt;/Glabels-templates&gt;</code>
+
+    <listing>
+      <title>Example Template</title>
+      <desc>Example <app>gLabels</app> template file containing a single
+            <code translate="no">Template</code> node.</desc>
+      <code mime="text/xml" translate="no">
+&lt;?xml version="1.0"?&gt;
+&lt;Glabels-templates&gt;
+
+  &lt;Template brand="Avery" part="8160" size="US-Letter" description="Mailing Labels"&gt;
+    &lt;Meta category="label"/&gt;
+    &lt;Meta category="mail"/&gt;
+    &lt;Meta product_url="http://www.avery.com/avery/en_us/"/&gt;
+    &lt;Label-rectangle id="0" width="189pt" height="72pt" round="5pt"&gt;
+      &lt;Markup-margin size="5pt"/&gt;
+      &lt;Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/&gt;
+    &lt;/Label-rectangle&gt;
+  &lt;/Template&gt;
+
+&lt;/Glabels-templates&gt;</code>
+    </listing>
+
+  </section>
+  <!-- ******************** -->
+  <!-- END Template Files   -->
+  <!-- ******************** -->
+
+
+
+  <!-- ******************** -->
+  <!-- BEGIN Template Node  -->
+  <!-- ******************** -->
+  <section id="template-template-node">
+    <title><span translate="no">Template</span> Node</title>
+
+    <p>A <code translate="no">Template</code> node describes a single
+      stationery product.  It must contain one instance of any type of Label node
+      (<code translate="no">Label-rectangle</code>,
+      <code translate="no">Label-round</code>, or
+      <code translate="no">Label-cd</code>).</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Property</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">brand</code></p></td>  
+        <td><p>Brand or manufacturer of stationery product. E.g. "Avery"</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">part</code></p></td>
+        <td><p>Part number or name of stationery product. E.g. "8160"</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">size</code></p></td>
+        <td><p>Size of sheet.
+               E.g., "<code translate="no">US-Letter</code>", "<code translate="no">A4</code>", ...
+            </p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">description</code></p></td>
+        <td><p>Description of stationery product.  E.g, "Mailing Labels."</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">_description</code></p></td>
+        <td><p>Translatable description of stationery product. E.g, "Mailing Labels."
+            (Only useful for predefined templates)</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">width</code></p></td>
+        <td><p>Page width.  Only valid if size="Other"</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">height</code></p></td>
+        <td><p>Page height.  Only valid if size="Other"</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">equiv</code></p></td>
+        <td><p>Equivalent part number.  If this property is present, the template
+            is a clone of another template of the same brand.  The template will
+            inherit all properties, except brand and name from the other template.
+            This equiv property must refer to a previously defined template - 
+            <app>gLabels</app> does not currently support forward references.</p></td>
+      </tr>
+    </table>
+
+  </section>
+  <!-- ******************** -->
+  <!-- END Template Node    -->
+  <!-- ******************** -->
+
+
+  <!-- ******************** -->
+  <!-- BEGIN Meta Node      -->
+  <!-- ******************** -->
+  <section id="meta-template-node">
+    <title><span translate="no">Meta</span> Node</title>
+
+    <p>A <code translate="no">Meta</code> node contains some additional
+         information about the template. A <code translate="no">Template</code>
+         node may contain zero or more <code translate="no">Meta</code> nodes.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Subnode</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">category</code></p></td>
+        <td><p>A category for the template.
+            A template can belong to multiple categories by simply adding multiple
+            <code translate="no">Meta</code> nodes to the parent
+            <code translate="no">Template</code> node.
+            Template categories are used by the <app>gLabels</app> <gui>New Label
+            Dialog</gui> to filter the results of template searches.</p>
+
+            <p>The value of this category must match a predefined category ID defined in
+            the file <file>${prefix}/libglabels-3.0/templates/categories.xml</file>.
+             Currently defined category IDs include:</p>
+            <list>
+              <item><p><code translate="no">label</code></p></item>
+              <item><p><code translate="no">round-label</code></p></item>
+              <item><p><code translate="no">elliptical-label</code></p></item>
+              <item><p><code translate="no">square-label</code></p></item>
+              <item><p><code translate="no">rectangle-label</code></p></item>
+              <item><p><code translate="no">card</code></p></item>
+              <item><p><code translate="no">business-card</code></p></item>
+              <item><p><code translate="no">media</code></p></item>
+              <item><p><code translate="no">mail</code></p></item>
+              <item><p><code translate="no">foldable</code></p></item>
+              <item><p><code translate="no">photo</code></p></item>
+            </list>
+
+
+        </td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">product_url</code></p></td>
+        <td><p>A URL pointing to the vendor's webpage for the specific product, if available.</p></td>
+      </tr>
+    </table>
+
+    <note><p>Suggestions for additional categories can be sent to the 
+          <app>gLabels</app> developer's
+          <link href="mailto:glabels-devel@lists.sourceforge.net">mailing list</link>.</p>
+          <p>Product URLs may be of limited use, because they may not be permanent.</p>
+    </note>
+
+  </section>
+  <!-- ******************** -->
+  <!-- END Meta Node        -->
+  <!-- ******************** -->
+
+
+  <!-- ************************** -->
+  <!-- BEGIN Label-rectangle Node -->
+  <!-- ************************** -->
+  <section id="template-label-rectangle-node">
+    <title><span translate="no">Label-rectangle</span> Node</title>
+
+    <p>A <code translate="no">Label-rectangle</code> node describes the
+      dimensions of a single label or business card that is rectangular
+      in shape (may have rounded edges).</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Property</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">id</code></p></td>
+        <td><p>Reserved for future use.  Should always be 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">width</code></p></td>
+        <td><p>Width of label/card</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">height</code></p></td>
+        <td><p>Heigth of label/card</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">round</code></p></td>
+        <td><p>Radius of corners.  For items with square edges (business cards),
+               the radius should be 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">x_waste</code></p></td>
+        <td><p>Amount of horizontal waste (over-print) to allow.  This is useful
+                      for minimizing alignment problems when using non-white
+                      backgrounds (e.g. images).</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">y_waste</code></p></td>
+        <td><p>Amount of vertical waste (over-print) to allow.  This is useful
+                      for minimizing alignment problems when using non-white
+                      backgrounds (e.g. images).</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc><span translate="no">Label-rectangle</span> parameters</desc>
+      <media type="image" src="figures/glabels-template-rect-label.png" mime="image/png" style="right">
+        <p><span translate="no">Label-rectangle</span> parameters</p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ************************** -->
+  <!-- END Label-rectangle Node   -->
+  <!-- ************************** -->
+
+
+  <!-- ************************ -->
+  <!-- BEGIN Label-ellipse Node -->
+  <!-- ************************ -->
+  <section id="template-label-ellipse-node">
+    <title><span translate="no">Label-ellipse</span> Node</title>
+
+    <p>A <code translate="no">Label-ellipse</code> node describes the
+      dimensions of a single label or business card that is elliptic
+      in shape.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Property</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">id</code></p></td>
+        <td><p>Reserved for future use.  Should always be 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">width</code></p></td>
+        <td><p>Width of the ellipse</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">height</code></p></td>
+        <td><p>Heigth of the ellipse</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">waste</code></p></td>
+        <td><p>Amount of waste (over-print) to allow.  This is useful
+            for minimizing alignment problems when using non-white
+            backgrounds (e.g. images).</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc><span translate="no">Label-ellipse</span> parameters</desc>
+      <media type="image" src="figures/glabels-template-ellipse-label.png" mime="image/png" style="right">
+        <p><span translate="no">Label-ellipse</span> parameters</p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ************************ -->
+  <!-- END Label-ellipse Node   -->
+  <!-- ************************ -->
+
+
+  <!-- ********************** -->
+  <!-- BEGIN Label-round Node -->
+  <!-- ********************** -->
+  <section id="template-label-round-node">
+    <title><span translate="no">Label-round</span> Node</title>
+
+    <p>A <code translate="no">Label-round</code> node describes the dimensions
+      of a simple round label (not a CD).</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Property</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">id</code></p></td>
+        <td><p>Reserved for future use.  Should always be 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">radius</code></p></td>
+        <td><p>Radius (1/2 diameter) of label</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">waste</code></p></td>
+        <td><p>Amount of waste (over-print) to allow.  This is useful
+                for minimizing alignment problems when using non-white
+                backgrounds (e.g. images).</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc><span translate="no">Label-ellipse</span> parameters</desc>
+      <media type="image" src="figures/glabels-template-circle-label.png" mime="image/png" style="right">
+        <p><span translate="no">Label-ellipse</span> parameters</p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ********************** -->
+  <!-- END Label-round Node   -->
+  <!-- ********************** -->
+
+
+  <!-- ******************* -->
+  <!-- BEGIN Label-cd Node -->
+  <!-- ******************* -->
+  <section id="template-label-cd-node">
+    <title><span translate="no">Label-cd</span> Node</title>
+
+    <p>A <code translate="no">Label-cd</code> node describes the dimensions
+      of a CD, DVD, or business card CD.</p>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Property</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">id</code></p></td>
+        <td><p>Reserved for future use.  Should always be 0.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">radius</code></p></td>
+        <td><p>Outer radius of label</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">hole</code></p></td>
+        <td><p>Radius of concentric hole</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">width</code></p></td>
+        <td><p>If present, the label is clipped to the given width.
+                      (Useful for "business card CDs").</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">height</code></p></td>
+        <td><p>If present, the label is clipped to the given height.
+                      (Useful for "business card CDs").</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">waste</code></p></td>
+        <td><p>Amount of waste (over-print) to allow.  This is useful
+                      for minimizing alignment problems when using non-white
+                      backgrounds (e.g. images).</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc><span translate="no">Label-cd</span> parameters</desc>
+      <media type="image" src="figures/glabels-template-cd-label.png" mime="image/png" style="right">
+        <p>CD label parameters</p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ******************* -->
+  <!-- END Label-cd Node   -->
+  <!-- ******************* -->
+
+
+  <!-- ***************** -->
+  <!-- BEGIN Markup Node -->
+  <!-- ***************** -->
+  <section id="template-markup">
+    <title><span translate="no">Markup</span> Nodes</title>
+
+    <p>Templates may contain optional markup nodes.  These nodes are used to describe
+    a simple set of markup lines that are visible in the <app>glabels</app> drawing canvas, but
+    not visible when printed.  These lines can represent margins, fold lines, center lines,
+    special areas, or other helpful hints to the user of a template.</p>
+
+
+    <!-- ======================== -->
+    <!-- BEGIN Markup-margin Node -->
+    <!-- ======================== -->
+    <section id="template-markup-margin-node">
+      <title><span translate="no">Markup-margin</span> Node</title>
+
+      <p>A <code translate="no">Markup-margin</code> describes a margin along
+      all edges of a label.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Property</p></td>  <td><p>Description</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">size</code></p></td>
+          <td><p>Size of the margin.  I.e. the distance of the margin
+                        line from the edge of the card/label.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ======================== -->
+    <!-- END Markup-margin Node   -->
+    <!-- ======================== -->
+
+
+    <!-- ====================== -->
+    <!-- BEGIN Markup-line Node -->
+    <!-- ====================== -->
+    <section id="template-markup-line-node">
+      <title><span translate="no">Markup-line</span> Node</title>
+
+      <p>A <code translate="no">Markup-line</code> node describes a markup line.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Property</p></td>  <td><p>Description</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x1</code></p></td>
+          <td><p>x coordinate of 1st endpoint of the line segment.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y1</code></p></td>
+          <td><p>y coordinate of 1st endpoint of the line segment.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x2</code></p></td>
+          <td><p>x coordinate of 2st endpoint of the line segment.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y2</code></p></td>
+          <td><p>y coordinate of 2st endpoint of the line segment.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ====================== -->
+    <!-- END Markup-line Node   -->
+    <!-- ====================== -->
+
+
+    <!-- ======================== -->
+    <!-- BEGIN Markup-circle Node -->
+    <!-- ======================== -->
+    <section id="template-markup-circle-node">
+      <title><span translate="no">Markup-circle</span> Node</title>
+
+      <p>A <code translate="no">Markup-circle</code> describes a markup circle.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Property</p></td>  <td><p>Description</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x0</code></p></td>
+          <td><p>x coordinate of circle origin (center).</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y0</code></p></td>
+          <td><p>y coordinate of circle origin (center).</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">radius</code></p></td>
+          <td><p>Radius of circle.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ======================== -->
+    <!-- END Markup-circle Node   -->
+    <!-- ======================== -->
+
+
+    <!-- ====================== -->
+    <!-- BEGIN Markup-rect Node -->
+    <!-- ====================== -->
+    <section id="template-markup-rect-node">
+      <title><span translate="no">Markup-rect</span> Node</title>
+
+      <p>A <code translate="no">Markup-rect</code> describes a markup rectangle.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Property</p></td>  <td><p>Description</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x1</code></p></td>
+          <td><p>x coordinate of upper left corner of rectangle.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y1</code></p></td>
+          <td><p>y coordinate of upper left corner of rectangle.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">w</code></p></td>
+          <td><p>Width of rectangle.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">h</code></p></td>
+          <td><p>Height of rectangle.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">r</code></p></td>
+          <td><p>Radius of rounded corners of rectangle.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ====================== -->
+    <!-- END Markup-rect Node   -->
+    <!-- ====================== -->
+
+
+    <!-- ========================= -->
+    <!-- BEGIN Markup-ellipse Node -->
+    <!-- ========================= -->
+    <section id="template-markup-ellipse-node">
+      <title><span translate="no">Markup-ellipse</span> Node</title>
+
+      <p>A <code translate="no">Markup-ellipse</code> describes a markup ellipse.</p>
+
+      <table frame="all" rules="rows">
+        <tr>
+          <td><p>Property</p></td>  <td><p>Description</p></td>
+        </tr>
+        <tr>
+          <td><p/></td>  <td><p/></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">x1</code></p></td>
+          <td><p>x coordinate of upper left corner of ellipse.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">y1</code></p></td>
+          <td><p>y coordinate of upper left corner of ellipse.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">w</code></p></td>
+          <td><p>Width of ellipse.</p></td>
+        </tr>
+        <tr>
+          <td><p><code translate="no">h</code></p></td>
+          <td><p>Height of ellipse.</p></td>
+        </tr>
+      </table>
+    </section>
+    <!-- ========================= -->
+    <!-- END Markup-ellipse Node   -->
+    <!-- ========================= -->
+
+  </section>
+  <!-- ***************** -->
+  <!-- END Markup Node   -->
+  <!-- ***************** -->
+
+
+  <!-- ***************** -->
+  <!-- BEGIN Layout Node -->
+  <!-- ***************** -->
+  <section id="template-layout-node">
+    <title><span translate="no">Layout</span> Node</title>
+
+    <p>A label node may contain multiple <code translate="no">Layout</code>
+      children.  If labels are arranged in a simple grid pattern, only
+      one layout is needed.  However, if labels are arranged in multiple
+      grids, such as a running bond pattern, multiple
+      <code translate="no">Layout</code> tags can be used. </p>
+       <note style="tip">
+       <p>A single label can always be treated as a grid of one.</p>
+      </note>
+
+    <table frame="all" rules="rows">
+      <tr>
+        <td><p>Property</p></td>  <td><p>Description</p></td>
+      </tr>
+      <tr>
+        <td><p/></td>  <td><p/></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">nx</code></p></td>
+        <td><p>Number of labels/cards across in the grid (horizontal)</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">ny</code></p></td>
+        <td><p>Number of labels/cards across in the grid (vertical)</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">x0</code></p></td>
+        <td><p>Distance from left edge of sheet to the left edge of
+            the left column of cards/labels in the layout.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">y0</code></p></td>
+        <td><p>Distance from the top edge of sheet to the top edge of
+             the top row of labels/cards in the layout.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">dx</code></p></td>
+        <td><p>Horizontal pitch of grid.</p></td>
+      </tr>
+      <tr>
+        <td><p><code translate="no">dy</code></p></td>
+        <td><p>Vertical pitch of grid.</p></td>
+      </tr>
+    </table>
+
+    <!-- ==== Figure ==== -->
+    <figure>
+      <desc><span translate="no">Layout</span> parameters</desc>
+      <media type="image" src="figures/glabels-template-layout.png" mime="image/png" style="right">
+        <p><span translate="no">Layout</span> Parameters</p>
+      </media>
+    </figure>
+    <!-- ==== End of Figure ==== -->
+
+  </section>
+  <!-- ***************** -->
+  <!-- END Layout Node   -->
+  <!-- ***************** -->
+
+
+</page>
diff --git a/help/sl/merge-ex1.page b/help/sl/merge-ex1.page
new file mode 100644 (file)
index 0000000..d97127d
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge-ex1" xml:lang="sl">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+       Create name tags from a CSV file.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Example 1: Name Tags</title>
+
+      <p>In this example we are organizing an orientation party for the new
+        crew members of our ship.  We have a list of freshman crew members that we
+        created in <app>gnumeric</app> and exported as the following
+        CSV file.  We could have created this file by using a text editor, but heck it
+        is the 23rd century.</p>
+
+      <code>
+Name,Department,SN
+"Jim Kirk",Management,"SC937-0176 CEC"
+"Mr. Spock",Sciences,S179-276SP
+"Leonard McCoy",Medicine,unknown
+"Montgomery Scott",Engineering,SE-197-54T
+      </code>
+
+      <p>In <app>gLabels</app> we have created a new <app>glabels</app>
+        document using the Avery 5395 "Name Badge Labels" template.  Next we use the
+        <guiseq> <gui>Objects</gui>
+        <gui>Merge Properties</gui> </guiseq> menu item to display
+        the <gui>merge properties</gui> dialog.  We use this dialog to
+        select the source type (in our case CSV with keys on line 1) and the merge
+       source (filename) as shown.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-1.png" mime="image/png" style="right">
+               <p>Merge properties dialog</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>We can also view each record in more detail by clicking on the appropriate
+        expander (the little triangles) as shown.  Once we are satisfied with the
+        selections in this dialog we click <gui>OK</gui> to accept the
+        changes.</p>
+
+      <p>Now we start adding objects to our <app>glabels</app> document as shown.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-2.png" mime="image/png" style="right">
+               <p>Adding objects</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>In this example we have added three text objects and a barcode object.  The
+        first text object contains only simple literal text ("Hello, my name is").  The
+        second text object contains a single merge field ("${Name}") corresponding to the
+        first field of a record (first column of a line) which contains the new crew
+        member's full name.  The third text field contains both literal text
+        ("Department: ") followed by a single merge field ("${Department}") corresponding to
+        the second field or the crew member's department.  The barcode object is
+        configured to use field (or key) "SN" which contains our crew member's
+        starfleet serial number.</p>
+
+      <p>Now we can print our name tags by selecting the
+        <guiseq> <gui>File</gui>
+        <gui>Print</gui> </guiseq> menu item.  This will display
+        print dialog as shown below.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-3.png" mime="image/png" style="right">
+               <p>Printing name tags</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Just to make sure our labels are going to look okay, we select the
+        <gui>Print outlines</gui> option and click
+        <gui>Print Preview</gui>.  This will display a print preview dialog
+        as shown below.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex1-4.png" mime="image/png" style="right">
+               <p>Name tags preview</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Everything looks good, so we can now load up our printer with
+        the appropriate label stock, print our name tags and start beaming our guests
+        aboard.</p>
+
+
+</page>
diff --git a/help/sl/merge-ex2.page b/help/sl/merge-ex2.page
new file mode 100644 (file)
index 0000000..0cd0cac
--- /dev/null
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge-ex2" xml:lang="sl">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+       Create address labels from a CSV file.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Example 2: Address labels</title>
+
+      <p>In this example we are going to throw a party and need to print mailing
+        address labels for our invitations.  We have a list of our closest friends
+        that we created in <app>gnumeric</app> and exported as the
+        following CSV file.  It should be noted that not everyone has a middle initial or
+        a two line address.</p>
+
+      <code>
+LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP
+,,,,,,,
+Critter,Ess,S,"123 Faux St.",,Alexandria,VA,22310
+Doe,John,,"Apt 1X","451 Mystery St.",Trenton,NJ,08601
+Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037
+McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813
+Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207
+      </code>
+
+      <p>In <app>glabels</app> we have created a new <app>glabels</app>
+        document using the Avery 5512 "Address Labels" template.  Next we use the
+        <guiseq> <gui>Objects</gui>
+        <gui>Merge Properties</gui> </guiseq> menu item to display
+        the <gui>merge properties</gui> dialog.  We use this dialog to
+        select the source type (in our case CSV with keys on line 1) and the merge
+       source (filename) as shown.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-1.png" mime="image/png" style="right">
+               <p>Merge properties dialog</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Before applying the merge source, we uncheck the first record since it only
+        contains empty fields.  It is an artifact of our original <app>gnumeric</app> spreadsheet
+        and would simply waste our first label.  We could also unselect
+        any other records that we didn't want to print a label for.</p>
+
+      <p>We can also view each record in more detail by clicking on the appropriate
+        expander (the little triangles) as shown.  Once we are satisfied with the
+        selections in this dialog we click <gui>OK</gui> to accept the
+        changes.</p>
+
+      <p>Now we start adding objects to our <app>glabels</app> document as shown.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-2.png" mime="image/png" style="right">
+               <p>Adding objects</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>In this example we have a single text object.  This text object contains
+        all of our merge fields organized on multiple lines as a mailing address.
+        Notice that fields ${ADDR1} and ${ADDR2} are each
+        located with no other text on their own lines.  When
+        <app>glabels</app> encounters a field as the only text on
+        a line, it will not expand the line if the field is empty.</p>
+
+      <p>Now we can print our address labels by selecting the
+        <guiseq> <gui>File</gui>
+        <gui>Print</gui> </guiseq> menu item.  This will display
+        print dialog as shown below.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-3.png" mime="image/png" style="right">
+               <p>Printing address labels</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Just to make sure our labels are going to look okay, we select the
+        <gui>Print outlines</gui> option and click
+        <gui>Print Preview</gui>.  This will display a print preview dialog
+        as shown below.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex2-4.png" mime="image/png" style="right">
+               <p>Address labels preview</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Everything looks good, so we can now load up our printer with
+        the appropriate label stock, print our address labels and start mailing
+        our party invitations.</p>
+
+</page>
diff --git a/help/sl/merge-ex3.page b/help/sl/merge-ex3.page
new file mode 100644 (file)
index 0000000..2cd2ae1
--- /dev/null
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge-ex3" xml:lang="sl">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+       Create address labels from the <app>Evolution</app> address book entries.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Example 3: Address Labels Using the <app>Evolution</app> Addressbook</title>
+
+      <p>Our last party was a great success, and now we need to print mailing
+        address labels for the invitations to a new one. To simplify this, we can use
+       the <app>Evolution</app> addressbook, because the address
+       data of all our friends is stored there.</p>
+
+      <note>
+       <p>Depending on how your copy of <app>gLabels</app> was packaged, this option could be unavailable.
+         Support for the <app>Evolution</app> addressbook will only be available
+         if the <app>evolution-data-server</app> and its development files
+         were present when <app>gLabels</app> was built. Please keep this in mind if you build <app>gLabels</app>
+         directly from source.</p>
+       
+       <p>If the <app>gLabels</app> package from your distribution lacks this support,
+         you may wish to contact the package maintainer or file a bug against the package
+         to request it.</p>
+      </note>
+
+      <p>In <app>glabels</app> we have created a new <app>gLabels</app>
+        document using the Avery 5512 "Address Labels" template. Next we use the
+        <guiseq> <gui>Objects</gui>
+        <gui>Merge Properties</gui></guiseq> menu item to display
+        the <gui>Merge properties</gui> dialog. We use this dialog to
+        select the source type (in our case <gui>Data from default Evolution
+       addressbook</gui>) as shown.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-1.png" mime="image/png" style="right">
+               <p>Merge properties dialog</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Once we have chosen <gui>Data from default Evolution addressbook
+       </gui> as our merge source, we will get a full list of its content. Initially,
+       all entries are checked. Assuming we were planning a really big party, we could
+       leave this selection untouched (but let's keep our budget in mind). We will now select or
+       unselect certain entries by clicking on the appropriate checkboxes, or we could use
+       the <gui>Select all</gui> and <gui>Unselect all
+       </gui> buttons to activate or deactivate all entries in the address book.</p>
+      <p>We can also view each entry in more detail by clicking on the appropriate
+        expander (the little triangles) as shown. Once we are satisfied with the
+        selections in this dialog, we will click the <gui>OK</gui> button to
+       accept the changes.</p>
+
+      <p>Now we start adding objects to our <app>glabels</app> document as shown.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-2.png" mime="image/png" style="right">
+               <p>Adding objects</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>In this example we have a single text object again. This text object contains
+        all of our merge fields organized on multiple lines as a mailing address.</p>
+
+      <p>Now we can print our address labels by selecting the
+        <guiseq> <gui>File</gui>
+        <gui>Print</gui> </guiseq> menu item. This will display
+        the print dialog as shown below.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-3.png" mime="image/png" style="right">
+               <p>Printing address labels</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Just to make sure our labels are going to look okay, we select the
+        <gui>Print outlines</gui> option and click
+        <gui>Print Preview</gui>. This will display a print preview dialog
+        as shown below.</p>
+
+      <!-- ==== Figure ==== -->
+               <media type="image" src="figures/merge-ex3-4.png" mime="image/png" style="right">
+               <p>Addess labels preview</p>
+               </media>
+      <!-- ==== End of Figure ==== -->
+
+      <p>Everything looks good, so we can now load up our printer with
+        the appropriate label stock, print our address labels and start mailing
+        our party invitations.</p>
+
+
+</page>
diff --git a/help/sl/merge-ex4.page b/help/sl/merge-ex4.page
new file mode 100644 (file)
index 0000000..cfd5746
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge-ex4" xml:lang="sl">
+
+  <info>
+    <link type="guide" xref="merge#merge-ex"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+       Create address labels from a vCard file.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Example 4: Address Labels Using a vCard file</title>
+
+
+</page>
diff --git a/help/sl/merge.page b/help/sl/merge.page
new file mode 100644 (file)
index 0000000..6649010
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="merge" xml:lang="sl">
+
+  <info>
+    <link type="guide" xref="index#merging"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+       Merge a data source to create multiple documents.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Document merge tutorial</title>
+
+    <p>Document Merge (sometimes called "Mail Merge") is a powerful
+      feature that allows a unique label or card to be printed for each
+      record in an external data source.  It is however, the most mis-understood
+      feature of <app>glabels</app>.  The following examples
+      will step through a couple of common tasks using the document merge
+      feature.</p>
+
+  <section id="merge-ex" style="2column">
+  </section>
+
+</page>
diff --git a/help/sl/mergefeatures.page b/help/sl/mergefeatures.page
new file mode 100644 (file)
index 0000000..e57a682
--- /dev/null
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="mergefeatures" xml:lang="sl">
+
+  <info>
+    <link type="guide" xref="index#merging"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+       What you may expect from a document merge.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>Performing a document merge</title>
+
+      <p>Document Merge (sometimes called "Mail Merge") is a powerful
+        feature that allows a unique label or card to be printed for each
+        record in an external data source.</p>
+
+      <p>The first step to performing a document merge is to prepare
+        a source document that contains your merge data.  This data could
+        be mailing addresses or any other data that you wish to create
+        unique labels or cards for.  Currently back-ends only exist for
+        text files and the evolution data server -- others are planned.  The currently
+        supported text-file format is very simple:  each line is a record;
+        fields are delimited by commas (CSV), tabs, or colons; and newlines
+        can be embedded into fields by using the "\n" entity.  This file
+        could be created using any text editor or could be created by
+        another program or script.  A common way of creating CSV files is
+       to export them from a spreadsheet program.</p>
+
+      <p>A label must then be configured to "point at" this data file.
+        To configure the merge properties of a document, choose
+        <guiseq><gui>Objects</gui>
+        <gui>Merge Properties</gui></guiseq> menu item
+        to display the <gui>merge properties</gui> dialog.  This
+        dialog is used to select the exact data file format and file
+        name (location) of the merge data.</p>
+
+      <p>Finally, once the label has been configured for a data file,
+        field keys can be inserted into text objects and used as source
+        or data for barcode objects and image filenames for image objects.
+        See <link xref="editprop"/> for more information
+        on using merge data for these object types.</p>
+
+      <p>Now that your label is configured, <app>gLabels</app> will print a unique
+        label for each record in your source document -- substituting fields
+        from each record for field keys in the all text, barcode, and
+        image objects.</p>
+
+      <p>See <link xref="merge"/> for a detailed
+        tutorial on the document merge feature.</p>
+
+</page>
diff --git a/help/sl/multifile.page b/help/sl/multifile.page
new file mode 100644 (file)
index 0000000..5119ca4
--- /dev/null
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="multifile" xml:lang="sl">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      How to open multiple files at once by using the command line.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>To open multiple files from the command line</title>
+
+      <p>You can run <app>gLabels</app> from a command line
+       and open a single file or multiple files. To open multiple files from
+        a command line, type the following command, then press
+        <key>Return</key>:</p>
+
+      <p><cmd>glabels
+      <var>file1.glabels file2.glabels file3.glabels</var>
+      </cmd></p>
+
+      <p>When the application starts, the files that you specify are
+       displayed in separate <app>gLabels</app> windows.</p>
+
+</page>
diff --git a/help/sl/newlabel.page b/help/sl/newlabel.page
new file mode 100644 (file)
index 0000000..6221226
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="newlabel" xml:lang="sl">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      Create a new label or card in <app>gLabels</app>.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>To create a new label or card</title>
+
+    <p>To create a new label or business card, choose 
+        <guiseq><gui>File</gui><gui>New</gui></guiseq>
+       to display the <gui>New Label or Card</gui> dialog. Select
+        the media type and orientation for the new document,
+       then click <gui>OK</gui>. A new document is
+       displayed in the display area of the <app>gLabels</app>
+        window. </p>
+
+</page>
diff --git a/help/sl/printfile.page b/help/sl/printfile.page
new file mode 100644 (file)
index 0000000..edba91a
--- /dev/null
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="printfile" xml:lang="sl">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      How to print your labels and cards.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>To print labels and cards</title>
+
+      <p>To print labels or cards, choose
+        <guiseq><gui>File</gui><gui>Print</gui>
+       </guiseq> to display the <gui>Print</gui> dialog.
+        Once print options have been selected, click <gui>Print</gui>
+        to print the labels or cards.  To simply preview the results,
+        click <gui>Print Preview</gui> instead.</p>
+
+      <p>The <gui>Print</gui> dialog allows you to specify the
+        following print options:</p>
+
+      <section>
+       <title>The Labels Tab of the Print Dialog</title>
+
+       <section>
+            <title>Print control (Simple)</title>
+
+             <p>For simple labels or cards (no document merge), the job
+                tabbed section contains the following copy controls.</p>
+
+             <!-- ==== Figure ==== -->
+               <media type="image" src="figures/print-copies.png" mime="image/png" style="right">
+               <p>Print Copy Controls</p>
+               </media>
+             <!-- ==== End of Figure ==== -->
+
+             <p>The number of copies of the label can be selected by
+                choosing the number of full sheets to print, or a specific
+                subset of labels on a single sheet.</p>
+
+             <p>The mini-preview can also be used to graphically select
+                the subset of labels by clicking the first label on the
+                mini-preview and dragging to the last label.</p>
+
+         </section>
+
+         <section>
+            <title>Print control (Merge)</title>
+
+             <p>For labels or cards using the document merge (also known
+                as "mail merge") capability, the job tabbed section contains
+                the following merge controls instead of copy controls.</p>
+
+             <!-- ==== Figure ==== -->
+               <media type="image" src="figures/print-merge.png" mime="image/png" style="right">
+               <p>Print Document Merge Controls</p>
+               </media>
+             <!-- ==== End of Figure ==== -->
+
+             <p>The total number of labels or cards printed is the
+                product of the number of records in the merge source and
+                the number of copies selected.  If multiple copies are
+                selected, these can be either collated (copies of the
+                same record grouped together) or un-collated (one copy
+                each record is printed before next copy).</p>
+
+             <p>Printing can begin on any label on the first sheet.
+                This can be selected with the <gui>Start on
+                label</gui> spinbutton.</p>
+
+             <p>The mini-preview can also be used to graphically select
+                this first label, by clicking on the desired label in the
+                mini-preview.</p>
+
+         </section>
+
+         <section> 
+         <title>Options</title>
+             <p>The following options can also be selected.</p>
+             <list>
+               <item>
+                 <p><gui>print outlines</gui></p>
+                 <p>Print outlines of labels.  This option is useful for
+                    dry-runs, to test printer alignment.</p>
+               </item>
+               <item>
+                 <p><gui>print in reverse</gui></p>
+                 <p>Prints the labels as mirror images.  This option is
+                    useful for printing on clear labels that will be viewed
+                    from the reverse side (e.g. in a car window).</p>
+               </item>
+               <item>
+                 <p><gui>print crop marks</gui></p>
+                 <p>Prints crop marks along the edge of the sheet.
+                    This option is useful for printing on blank stock, to
+                    be cut after printing.  This option does not work well
+                    with all templates.</p>
+               </item>
+             </list>
+       </section>
+       </section>
+
+</page>
diff --git a/help/sl/select.page b/help/sl/select.page
new file mode 100644 (file)
index 0000000..3bd70cf
--- /dev/null
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="select" xml:lang="sl">
+
+  <info>
+    <link type="guide" xref="index#usage"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+      How to select objects.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+    <title>To select objects</title>
+
+      <p>A prerequisite for performing operations on objects is the
+        selection of individual objects or groups of objects.  The
+        display area must be in the object selection mode to create new
+        selections, as indicated by an arrow cursor.  The object
+        selection mode is selected by the
+        <guiseq><gui>Objects</gui>
+        <gui>Select Mode</gui></guiseq> menu item,
+        or the corresponding command on the <gui>Drawing
+        Toolbar</gui>.</p>
+
+      <section>
+         <title>Selecting a single object</title>
+           <p>A single object can be selected simply by clicking
+             on the desired object in the display area.
+             Once selected the object will be highlighted with a set of
+             resizing handles.</p>
+       </section>
+
+       <section>
+         <title>Aggregate object selections</title>
+           <p>Multiple objects can be selected by first selecting the first
+              object as above and then by holding the <key>Ctrl</key>
+              key while selecting additional objects.
+              Individual objects can be added to an existing selection
+              at any time by holding the <key>Ctrl</key> key while
+              selecting the desired objects.  All objects can also be
+              selected by using the <guiseq><gui>Edit</gui>
+              <gui>Select All</gui></guiseq>
+              menu item.  All objects in an aggregate object selection will be
+              highlighted.</p>
+       </section>
+
+       <section>
+         <title>Area selections</title>
+         
+           <p>Multiple objects can also be selected by clicking an empty
+              area and dragging to form a rectangular area.  When released,
+              all objects contained in the area will form an aggregate
+              selection.  An area selection can be used to add to an existing
+              selection by holding the <key>Ctrl</key> key while
+              performing the selection.</p>
+         
+       </section>
+
+       <section>
+         <title>Unselecting objects</title>
+         
+           <p>Individual objects can be removed from an existing
+              selection by holding the <key>Ctrl</key> key while
+              clicking on a previously selected object.  An entire selection
+              can be dismissed by using the <guiseq>
+             <gui>Edit</gui> <gui>Un-select All</gui>
+              </guiseq> menu item
+              or by simply clicking any empty space in the display area.
+              Once an object is unselected its highlight is removed.</p>
+         
+       </section>
+
+    <section id="clipboard"> 
+      <title>Clipboard Commands</title>
+
+      <p>Object selections can be manipulated using the standard clipboard
+        operations <gui>Cut</gui>,
+        <gui>Copy</gui>, <gui>Paste</gui>,
+        and <gui>Delete</gui>.</p>
+
+       <section>
+         <title><gui>Cut</gui> (<keyseq><key>Ctrl</key><key>X</key></keyseq>)</title>
+         
+           <p>Moves selected objects to the clipboard.  The objects are
+              then available for pasting back into the current document or
+              another document.</p>
+         
+       </section>
+
+       <section>
+         <title><gui>Copy</gui> (<keyseq><key>Ctrl</key><key>C</key></keyseq>)</title>
+         
+           <p>Copies selected objects to the clipboard without deleting
+              them.  The objects are then available for pasting back into
+              the current document or another document.</p>
+         
+       </section>
+
+       <section>
+         <title><gui>Paste</gui> (<keyseq><key>Ctrl</key><key>V</key></keyseq>)</title>
+         
+           <p>Pastes objects from the clipboard into the current document.
+              <app>gLabels</app> can only paste objects from
+              another <app>gLabels</app> document.</p>
+         
+       </section>
+
+       <section>
+         <title><gui>Delete</gui> (<key>Del</key>)</title>
+         
+           <p>Deletes selected objects without placing them on the
+              clipboard.</p>
+         
+       </section>
+       </section>
+
+</page>
diff --git a/help/sl/skipfields.page b/help/sl/skipfields.page
new file mode 100644 (file)
index 0000000..ca8ae6c
--- /dev/null
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" xmlns:e="http://projectmallard.org/experimental/" type="guide" id="mergeskipfields" xml:lang="sl">
+
+  <info>
+    <link type="guide" xref="index#merging"/>
+    <revision pkgversion="3.0" version="0.1" date="2010-05-04" status="incomplete"/>
+    <desc>
+       How to skip blank address lines when doing a document merge.
+    </desc>
+    <credit type="author">
+      <name>Jim Evins</name>
+      <email>evins@snaught.com</email>
+    </credit>
+    <credit type="author">
+      <name>Mario Blättermann</name>
+      <email>mariobl@gnome.org</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>    
+  </info>
+
+  <title>Skipping blank address lines</title>
+
+  <p>This feature can be best described by a simple example.  In the
+  following CSV file, column 5 (ADDR2) contains the second address line
+  for each record.  This field is empty in records 1 and 2, but not in
+  record 3. (For this feature to work, the field must be completely
+  empty -- any text, including spaces will defeat this feature.)</p>
+
+  <code>
+  LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP
+  Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037
+  McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813
+  Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207
+  </code>
+
+  <p>In the following screenshot, a single multiline text object has been
+  created to format these addresses.  Notice that ${ADDR2} representing
+  the second address line is on a line by itself.  (Any additional text
+  on this line, including spaces would defeat this feature.)</p>
+
+  <media type="image" src="figures/skip-fields-screenshot.png" mime="image/png" style="right">
+  <p>Multi-line address</p>
+  </media>
+
+  <p>Printing this label results in the following output.  Notice that the
+  line containing the ${ADDR2} field is completely skipped for the first
+  two records, without printing a blank line.</p>
+
+  <media type="image" src="figures/skip-fields-output.png" mime="image/png" style="right">
+  <p>Output</p>
+  </media>
+
+</page>
diff --git a/help/sl/sl.po b/help/sl/sl.po
new file mode 100644 (file)
index 0000000..60d3f15
--- /dev/null
@@ -0,0 +1,1610 @@
+# Slovenian translation for glabels help.
+# Copyright (C) 2010 glabels's COPYRIGHT HOLDER
+# This file is distributed under the same license as the glabels package.
+#
+# Ime Priimek <email>, leto
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: glabels help master\n"
+"POT-Creation-Date: 2010-02-27 03:49+0000\n"
+"PO-Revision-Date: 2010-10-22 08:09+0100\n"
+"Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n"
+"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n"
+"X-Poedit-Country: SLOVENIA\n"
+"X-Poedit-Language: Slovenian\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/glabels.xml:185(None)
+msgid "@@image: 'figures/main-window-empty.png'; md5=0ca03656fde7f33222bb6f016fdf79c4"
+msgstr "@@image: 'figures/main-window-empty.png'; md5=0ca03656fde7f33222bb6f016fdf79c4"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/glabels.xml:437(None)
+msgid "@@image: 'figures/print-copies.png'; md5=45f2eae7cd262a36ed6b20a254b94447"
+msgstr "@@image: 'figures/print-copies.png'; md5=45f2eae7cd262a36ed6b20a254b94447"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/glabels.xml:469(None)
+msgid "@@image: 'figures/print-merge.png'; md5=df81b305a7e76484df98034c1c035604"
+msgstr "@@image: 'figures/print-merge.png'; md5=df81b305a7e76484df98034c1c035604"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/glabels.xml:780(None)
+msgid "@@image: 'figures/object-editor-sidebar.png'; md5=08e152bad535a2b3d1ff7ed73de5b483"
+msgstr "@@image: 'figures/object-editor-sidebar.png'; md5=08e152bad535a2b3d1ff7ed73de5b483"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/glabels.xml:1221(None)
+msgid "@@image: 'figures/merge-ex1-1.png'; md5=731c7bcd2ff66d18300e87f1c3d9ec0e"
+msgstr "@@image: 'figures/merge-ex1-1.png'; md5=731c7bcd2ff66d18300e87f1c3d9ec0e"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/glabels.xml:1246(None)
+msgid "@@image: 'figures/merge-ex1-2.png'; md5=27ed61afe77cda96c208fcda51990c89"
+msgstr "@@image: 'figures/merge-ex1-2.png'; md5=27ed61afe77cda96c208fcda51990c89"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/glabels.xml:1274(None)
+msgid "@@image: 'figures/merge-ex1-3.png'; md5=8f686530b1196b04595be50a9f8d4728"
+msgstr "@@image: 'figures/merge-ex1-3.png'; md5=8f686530b1196b04595be50a9f8d4728"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/glabels.xml:1292(None)
+msgid "@@image: 'figures/merge-ex1-4.png'; md5=9cec0c679929cc904f81f435cd3bd060"
+msgstr "@@image: 'figures/merge-ex1-4.png'; md5=9cec0c679929cc904f81f435cd3bd060"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/glabels.xml:1338(None)
+msgid "@@image: 'figures/merge-ex2-1.png'; md5=d48a99d65408584eae2603a0c07610da"
+msgstr "@@image: 'figures/merge-ex2-1.png'; md5=d48a99d65408584eae2603a0c07610da"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/glabels.xml:1364(None)
+msgid "@@image: 'figures/merge-ex2-2.png'; md5=2912c145fd9caac56ad7cf8c4437636b"
+msgstr "@@image: 'figures/merge-ex2-2.png'; md5=2912c145fd9caac56ad7cf8c4437636b"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/glabels.xml:1389(None)
+msgid "@@image: 'figures/merge-ex2-3.png'; md5=59a1dc5ff94656877a6220f73fe25b3c"
+msgstr "@@image: 'figures/merge-ex2-3.png'; md5=59a1dc5ff94656877a6220f73fe25b3c"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/glabels.xml:1407(None)
+msgid "@@image: 'figures/merge-ex2-4.png'; md5=67391b05421901a36d276736c1f664dd"
+msgstr "@@image: 'figures/merge-ex2-4.png'; md5=67391b05421901a36d276736c1f664dd"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/glabels.xml:1643(None)
+msgid "@@image: 'figures/glabels-template-label.png'; md5=b7db4090373462b8d45feb22d4cd5646"
+msgstr "@@image: 'figures/glabels-template-label.png'; md5=b7db4090373462b8d45feb22d4cd5646"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/glabels.xml:1764(None)
+msgid "@@image: 'figures/glabels-template-cd.png'; md5=145b49a5380de63ffa9451d2bbb81934"
+msgstr "@@image: 'figures/glabels-template-cd.png'; md5=145b49a5380de63ffa9451d2bbb81934"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/glabels.xml:2026(None)
+msgid "@@image: 'figures/glabels-template-layout.png'; md5=a8adcff0584be1f0275bc2a169a580df"
+msgstr "@@image: 'figures/glabels-template-layout.png'; md5=a8adcff0584be1f0275bc2a169a580df"
+
+#: C/glabels.xml:31(title)
+msgid "<application>gLabels</application> Manual V2.2"
+msgstr ""
+
+#: C/glabels.xml:33(para)
+msgid "User manual for the gLabels label and business card creation program"
+msgstr ""
+
+#: C/glabels.xml:38(year)
+msgid "2003-2007"
+msgstr "2003-2007"
+
+#: C/glabels.xml:39(holder)
+#: C/glabels.xml:42(publishername)
+#: C/glabels.xml:93(para)
+msgid "Jim Evins"
+msgstr "Jim Evins"
+
+#: C/glabels.xml:2(para)
+msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or in the file COPYING-DOCS distributed with this manual."
+msgstr ""
+
+#: C/glabels.xml:12(para)
+msgid "This manual is part of a collection of GNOME manuals distributed under the GFDL. If you want to distribute this manual separately from the collection, you can do so by adding a copy of the license to the manual, as described in section 6 of the license."
+msgstr ""
+
+#: C/glabels.xml:19(para)
+msgid "Many of the names used by companies to distinguish their products and services are claimed as trademarks. Where those names appear in any GNOME documentation, and the members of the GNOME Documentation Project are made aware of those trademarks, then the names are in capital letters or initial capital letters."
+msgstr ""
+
+#: C/glabels.xml:35(para)
+msgid "DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND"
+msgstr ""
+
+#: C/glabels.xml:55(para)
+msgid "UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES."
+msgstr ""
+
+#: C/glabels.xml:28(para)
+msgid "DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: <placeholder-1/>"
+msgstr ""
+
+#: C/glabels.xml:52(firstname)
+msgid "Jim"
+msgstr "Jim"
+
+#: C/glabels.xml:53(surname)
+msgid "Evins"
+msgstr "Evins"
+
+#: C/glabels.xml:87(revnumber)
+msgid "gLabels Manual V2.2"
+msgstr ""
+
+#: C/glabels.xml:88(date)
+msgid "December 2007"
+msgstr ""
+
+#: C/glabels.xml:90(para)
+msgid "Jim Evins <email>evins@snaught.com</email>"
+msgstr ""
+
+#: C/glabels.xml:98(releaseinfo)
+msgid "This manual describes version 2.2 of gLabels."
+msgstr ""
+
+#: C/glabels.xml:101(title)
+msgid "Feedback"
+msgstr "Odziv"
+
+#: C/glabels.xml:102(para)
+msgid "To report a bug or make a suggestion regarding the <application>gLabels</application> application or this manual, follow the directions in the <ulink url=\"http://glabels.sourceforge.net/contact/\" type=\"http\">gLabels Contact Page</ulink>."
+msgstr ""
+
+#: C/glabels.xml:111(primary)
+msgid "gLabels"
+msgstr "gLabels"
+
+#: C/glabels.xml:114(primary)
+msgid "glabels"
+msgstr "glabels"
+
+#: C/glabels.xml:125(title)
+msgid "Introduction"
+msgstr "Uvod"
+
+#: C/glabels.xml:127(para)
+msgid "The <application>gLabels</application> application is a lightweight program for creating labels and business cards for the <systemitem>GNOME desktop</systemitem> environment. It is designed to work with various laser/ink-jet peel-off label and business card sheets that you'll find at most office supply stores."
+msgstr ""
+
+#: C/glabels.xml:148(title)
+msgid "Getting Started"
+msgstr ""
+
+#: C/glabels.xml:151(title)
+msgid "To Start <application>gLabels</application>"
+msgstr ""
+
+#: C/glabels.xml:152(para)
+msgid "You can start <application><application>gLabels</application></application> in the following ways:"
+msgstr ""
+
+#: C/glabels.xml:156(term)
+msgid "<guimenu>Applications</guimenu> menu"
+msgstr ""
+
+#: C/glabels.xml:158(para)
+msgid "Choose <menuchoice><guisubmenu>Office</guisubmenu><guimenuitem>gLabels</guimenuitem></menuchoice>."
+msgstr ""
+
+#: C/glabels.xml:166(term)
+msgid "Command line"
+msgstr ""
+
+#: C/glabels.xml:168(para)
+msgid "Type <command>glabels</command>, then press <keycap>Return</keycap>:"
+msgstr ""
+
+#: C/glabels.xml:176(title)
+msgid "When You Start <application>gLabels</application>"
+msgstr ""
+
+#: C/glabels.xml:177(para)
+msgid "When you start <application><application>gLabels</application></application>, the following window is displayed."
+msgstr ""
+
+#: C/glabels.xml:181(title)
+msgid "<application>gLabels</application> Start Up Window"
+msgstr ""
+
+#. for example, the items on the menubar and on the toolbar. This section is optional.
+#: C/glabels.xml:195(para)
+msgid "The <application>gLabels</application> window contains the following elements:"
+msgstr ""
+
+#: C/glabels.xml:199(term)
+msgid "Menubar."
+msgstr "Menijska vrstica"
+
+#: C/glabels.xml:201(para)
+msgid "The menus on the menubar contain all of the commands you need to create and edit labels and business cards in <application><application>gLabels</application></application>."
+msgstr ""
+
+#: C/glabels.xml:207(term)
+msgid "Main toolbar."
+msgstr ""
+
+#: C/glabels.xml:209(para)
+msgid "The main toolbar contains a subset of common File and Edit commands that you can access from the menubar."
+msgstr ""
+
+#: C/glabels.xml:214(term)
+msgid "Drawing toolbar."
+msgstr ""
+
+#: C/glabels.xml:216(para)
+msgid "The drawing toolbar contains a subset of commands for editing the current glabels document."
+msgstr ""
+
+#: C/glabels.xml:221(term)
+msgid "Display area."
+msgstr ""
+
+#: C/glabels.xml:223(para)
+msgid "The display area is the main drawing interface to <application><application>gLabels</application></application>."
+msgstr ""
+
+#: C/glabels.xml:228(term)
+msgid "Object sidebar."
+msgstr ""
+
+#: C/glabels.xml:230(para)
+msgid "The object sidebar provides an interface for viewing and editing all properties of an individual object."
+msgstr ""
+
+#: C/glabels.xml:235(term)
+msgid "Properties toolbar."
+msgstr ""
+
+#: C/glabels.xml:237(para)
+msgid "The properties toolbar contains a set of tools to manipulate the properties of selected objects and set default properties for new objects."
+msgstr ""
+
+#: C/glabels.xml:243(term)
+msgid "Statusbar."
+msgstr ""
+
+#: C/glabels.xml:245(para)
+msgid "The statusbar displays information about current <application><application>gLabels</application></application> activity and contextual information about the menu items."
+msgstr ""
+
+#: C/glabels.xml:261(title)
+msgid "Usage"
+msgstr ""
+
+#: C/glabels.xml:265(title)
+msgid "To Create a New Label or Card"
+msgstr ""
+
+#: C/glabels.xml:267(para)
+msgid "To create a new label or business card, choose <menuchoice><guimenu>File</guimenu><guimenuitem>New</guimenuitem></menuchoice> to display the <guilabel>New Label or Card</guilabel> dialog. Select the media type and orientation for the new document, then click <guibutton>OK</guibutton>. A new document is displayed in the display area of the <application><application>gLabels</application></application> window."
+msgstr ""
+
+#: C/glabels.xml:276(para)
+msgid "If your particular media type is missing from this dialog, see <xref linkend=\"glabels-create-template\"/>"
+msgstr ""
+
+#: C/glabels.xml:283(title)
+msgid "To Open a File"
+msgstr ""
+
+#: C/glabels.xml:285(para)
+msgid "To open a file, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice> to display the <guilabel>Open File</guilabel> dialog. Select the file that you want to open, then click <guibutton>OK</guibutton>. The file is displayed in the display area of the <application><application>gLabels</application></application> window."
+msgstr ""
+
+#: C/glabels.xml:292(para)
+msgid "You can also open multiple files in <application><application>gLabels</application></application>. The application creates a separate application window for each open file."
+msgstr ""
+
+#: C/glabels.xml:296(para)
+msgid "The application records the paths and filenames of the most recent files that you have edited and displays the files as menu items on the <menuchoice><guimenu>File</guimenu><guisubmenu>Recent Files</guisubmenu></menuchoice> menu."
+msgstr ""
+
+#: C/glabels.xml:306(title)
+msgid "To Open Multiple Files from a Command Line"
+msgstr ""
+
+#: C/glabels.xml:308(para)
+msgid "You can run <application><application>gLabels</application></application> from a command line and open a single file or multiple files. To open multiple files from a command line, type the following command, then press <keycap>Return</keycap>:"
+msgstr ""
+
+#: C/glabels.xml:314(replaceable)
+msgid "file1.glabels file2.glabels file3.glabels"
+msgstr ""
+
+#: C/glabels.xml:313(command)
+msgid "glabels <placeholder-1/>"
+msgstr ""
+
+#: C/glabels.xml:317(para)
+msgid "When the application starts, the files that you specify are displayed in separate <application><application>gLabels</application></application> windows."
+msgstr ""
+
+#: C/glabels.xml:324(title)
+msgid "To Save a File"
+msgstr ""
+
+#: C/glabels.xml:326(para)
+msgid "You can save files in the following ways:"
+msgstr ""
+
+#: C/glabels.xml:331(para)
+msgid "To save changes to an existing file, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save</guimenuitem></menuchoice>."
+msgstr ""
+
+#: C/glabels.xml:338(para)
+msgid "To save a new file or to save an existing file under a new filename, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save As</guimenuitem></menuchoice>. Enter a name for the file in the <guilabel>Save As</guilabel> dialog box, then click <guibutton>OK</guibutton>."
+msgstr ""
+
+#: C/glabels.xml:351(title)
+msgid "To Change Label Properties"
+msgstr ""
+
+#: C/glabels.xml:353(para)
+msgid "To change the media type and/or orientation of a label, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Properties</guimenuitem></menuchoice> to display the <guilabel>Label properties</guilabel> dialog. Select the new media type and orientation for the document, then click <guibutton>OK</guibutton>."
+msgstr ""
+
+#: C/glabels.xml:364(title)
+msgid "To Create a Custom Template"
+msgstr ""
+
+#: C/glabels.xml:366(para)
+msgid "To create a new custom template, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Template Designer ...</guimenuitem></menuchoice> to display the <guilabel>Template Designer</guilabel> dialog. This dialog will assist you in creating a custom template for most types of label or card stationery that you may encounter."
+msgstr ""
+
+#: C/glabels.xml:373(para)
+msgid "If you prefer, you can create your templates manually. For this option see <xref linkend=\"glabels-manual-create-template\"/>"
+msgstr ""
+
+#: C/glabels.xml:381(title)
+msgid "To Close a File"
+msgstr ""
+
+#: C/glabels.xml:383(para)
+msgid "To close the current document, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Close</guimenuitem></menuchoice> to close the application window. If the current document is modified, a confirmation dialog will be presented, allowing you to save the document or cancel the command. If the window being closed is the only open window, <application><application>gLabels</application></application> will exit."
+msgstr ""
+
+#: C/glabels.xml:395(title)
+msgid "To Quit <application><application>gLabels</application></application>"
+msgstr ""
+
+#: C/glabels.xml:397(para)
+msgid "To quit <application><application>gLabels</application></application>, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Quit</guimenuitem></menuchoice>. This is equivalent to closing all open windows. See <xref linkend=\"glabels-close-file\"/>."
+msgstr ""
+
+#: C/glabels.xml:407(title)
+msgid "To Print Labels or Cards"
+msgstr ""
+
+#: C/glabels.xml:409(para)
+msgid "To print labels or cards, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Print</guimenuitem></menuchoice> to display the <guilabel>Print</guilabel> dialog. Once print options have been selected, click <guilabel>Print</guilabel> to print the labels or cards. To simply preview the results, click <guilabel>Print Preview</guilabel> instead."
+msgstr ""
+
+#: C/glabels.xml:416(para)
+msgid "The <guilabel>Print</guilabel> dialog allows you to specify the following print options:"
+msgstr ""
+
+#: C/glabels.xml:420(title)
+msgid "The Labels Tab of the Print Dialog"
+msgstr ""
+
+#: C/glabels.xml:425(guilabel)
+msgid "Print control (Simple)"
+msgstr ""
+
+#: C/glabels.xml:428(para)
+msgid "For simple labels or cards (no document merge), the job tabbed section contains the following copy controls."
+msgstr ""
+
+#: C/glabels.xml:433(title)
+msgid "Print Copy Controls"
+msgstr ""
+
+#. ==== End of Figure ====
+#: C/glabels.xml:444(para)
+msgid "The number of copies of the label can be selected by choosing the number of full sheets to print, or a specific subset of labels on a single sheet."
+msgstr ""
+
+#: C/glabels.xml:448(para)
+msgid "The mini-preview can also be used to graphically select the subset of labels by clicking the first label on the mini-preview and dragging to the last label."
+msgstr ""
+
+#: C/glabels.xml:456(guilabel)
+msgid "Print control (Merge)"
+msgstr ""
+
+#: C/glabels.xml:459(para)
+msgid "For labels or cards using the document merge (also known as \"mail merge\") capability, the job tabbed section contains the following merge controls instead of copy controls."
+msgstr ""
+
+#: C/glabels.xml:465(title)
+msgid "Print Document Merge Controls"
+msgstr ""
+
+#. ==== End of Figure ====
+#: C/glabels.xml:476(para)
+msgid "The total number of labels or cards printed is the product of the number of records in the merge source and the number of copies selected. If multiple copies are selected, these can be either collated (copies of the same record grouped together) or un-collated (one copy each record is printed before next copy)."
+msgstr ""
+
+#: C/glabels.xml:483(para)
+msgid "Printing can begin on any label on the first sheet. This can be selected with the <guilabel>Start on label</guilabel> spinbutton."
+msgstr ""
+
+#: C/glabels.xml:487(para)
+msgid "The mini-preview can also be used to graphically select this first label, by clicking on the desired label in the mini-preview."
+msgstr ""
+
+#: C/glabels.xml:494(guilabel)
+msgid "Options"
+msgstr ""
+
+#: C/glabels.xml:496(para)
+msgid "The following options can also be selected."
+msgstr ""
+
+#: C/glabels.xml:499(guilabel)
+msgid "print outlines"
+msgstr ""
+
+#: C/glabels.xml:500(para)
+msgid "Print outlines of labels. This option is useful for dry-runs, to test printer alignment."
+msgstr ""
+
+#: C/glabels.xml:504(guilabel)
+msgid "print in reverse"
+msgstr ""
+
+#: C/glabels.xml:505(para)
+msgid "Prints the labels as mirror images. This option is useful for printing on clear labels that will be viewed from the reverse side (e.g. in a car window)."
+msgstr ""
+
+#: C/glabels.xml:510(guilabel)
+msgid "print crop marks"
+msgstr ""
+
+#: C/glabels.xml:511(para)
+msgid "Prints crop marks along the edge of the sheet. This option is useful for printing on blank stock, to be cut after printing. This option does not work well with all templates."
+msgstr ""
+
+#: C/glabels.xml:526(title)
+msgid "To Create New Objects"
+msgstr ""
+
+#: C/glabels.xml:528(para)
+msgid "Objects are created by choosing the appropriate selection under the <menuchoice><guimenu>Objects</guimenu><guimenuitem>Create Object</guimenuitem></menuchoice> submenu or the <guilabel>Drawing Toolbar</guilabel>. This will place the display area into object creation mode as indicated by its cursor. To return to the default object selection mode without creating an object, choose <menuchoice><guimenu>Objects</guimenu><guimenuitem>Select Mode</guimenuitem></menuchoice>. This will return the display area's cursor to the default selection arrow."
+msgstr ""
+
+#: C/glabels.xml:538(para)
+msgid "The following describes the object creation mode for each object type:"
+msgstr ""
+
+#: C/glabels.xml:544(term)
+#: C/glabels.xml:1113(guilabel)
+msgid "Text"
+msgstr ""
+
+#: C/glabels.xml:546(para)
+msgid "Click the desired location of the upper left corner of the text object. New text objects are initialized with the string \"Text.\" To change this text, or other properties, see <xref linkend=\"glabels-object-properties\"/>."
+msgstr ""
+
+#: C/glabels.xml:554(term)
+msgid "Box"
+msgstr ""
+
+#: C/glabels.xml:556(para)
+msgid "Click the desired location of the upper left corner of the box object and drag to the desired location of the lower right corner. If you simply click in a single location, a square box will be created. To change properties of the box object, see <xref linkend=\"glabels-object-properties\"/>."
+msgstr ""
+
+#: C/glabels.xml:565(term)
+#: C/glabels.xml:1139(guilabel)
+msgid "Line"
+msgstr ""
+
+#: C/glabels.xml:567(para)
+msgid "Click the desired location of one end of the line object and drag to the desired location of the other end. If you simply click in a single location, a diagonal line will be created. To change properties of the line object, see <xref linkend=\"glabels-object-properties\"/>."
+msgstr ""
+
+#: C/glabels.xml:576(term)
+msgid "Ellipse"
+msgstr ""
+
+#: C/glabels.xml:578(para)
+msgid "Click the desired location of the upper left corner of the ellipse object and drag to the desired location of the lower right corner. If you simply click in a single location, a circle will be created. To change properties of the ellipse object, see <xref linkend=\"glabels-object-properties\"/>."
+msgstr ""
+
+#: C/glabels.xml:587(term)
+msgid "Image"
+msgstr ""
+
+#: C/glabels.xml:589(para)
+msgid "Click the desired location of the upper left corner of the image object and drag to the desired location of the lower right corner. If you simply click in a single location, a square will be created. New image objects are initialized with a simple checkerboard image. To change this image, or other properties of the image object, see <xref linkend=\"glabels-object-properties\"/>."
+msgstr ""
+
+#: C/glabels.xml:600(term)
+msgid "Barcode"
+msgstr ""
+
+#: C/glabels.xml:602(para)
+msgid "Click the desired location of the upper left corner of the barcode object. New barcode objects are initialized to a POSTNET barcode with representative data. To change data and properties of the barcode object, see <xref linkend=\"glabels-object-properties\"/>."
+msgstr ""
+
+#: C/glabels.xml:617(title)
+msgid "To Select Objects"
+msgstr ""
+
+#: C/glabels.xml:619(para)
+msgid "A prerequisite for performing operations on objects is the selection of individual objects or groups of objects. The display area must be in the object selection mode to create new selections, as indicated by an arrow cursor. The object selection mode is selected by the <menuchoice><guimenu>Objects</guimenu><guimenuitem>Select Mode</guimenuitem></menuchoice> menu item, or the corresponding command on the <guilabel>Drawing Toolbar</guilabel>."
+msgstr ""
+
+#: C/glabels.xml:632(term)
+msgid "Selecting a single object"
+msgstr ""
+
+#: C/glabels.xml:634(para)
+msgid "A single object can be selected simply by clicking on the desired object in the display area. Once selected the object will be highlighted with a set of resizing handles."
+msgstr ""
+
+#: C/glabels.xml:642(term)
+msgid "Aggregate object selections"
+msgstr ""
+
+#: C/glabels.xml:644(para)
+msgid "Multiple objects can be selected by first selecting the first object as above and then by holding the <keycap>Ctrl</keycap> key while selecting additional objects. Individual objects can be added to an existing selection at any time by holding the <keycap>Ctrl</keycap> key while selecting the desired objects. All objects can also be selected by using the <menuchoice><guimenu>Edit</guimenu><guimenuitem>Select All</guimenuitem></menuchoice> menu item. All objects in an aggregate object selection will be highlighted."
+msgstr ""
+
+#: C/glabels.xml:658(term)
+msgid "Area selections"
+msgstr ""
+
+#: C/glabels.xml:660(para)
+msgid "Multiple objects can also be selected by clicking an empty area and dragging to form a rectangular area. When released, all objects contained in the area will form an aggregate selection. An area selection can be used to add to an existing selection by holding the <keycap>Ctrl</keycap> key while performing the selection."
+msgstr ""
+
+#: C/glabels.xml:670(term)
+msgid "Unselecting objects"
+msgstr ""
+
+#: C/glabels.xml:672(para)
+msgid "Individual objects can be removed from an existing selection by holding the <keycap>Ctrl</keycap> key while clicking on a previously selected object. An entire selection can be dismissed by using the <menuchoice><guimenu>Edit</guimenu><guimenuitem>Un-select All</guimenuitem></menuchoice> menu item or by simply clicking any empty space in the display area. Once an object is unselected its highlight is removed."
+msgstr ""
+
+#: C/glabels.xml:689(title)
+msgid "Clipboard Commands"
+msgstr ""
+
+#: C/glabels.xml:691(para)
+msgid "Object selections can be manipulated using the standard clipboard operations <guimenuitem>Cut</guimenuitem>, <guimenuitem>Copy</guimenuitem>, <guimenuitem>Paste</guimenuitem>, and <guimenuitem>Delete</guimenuitem>."
+msgstr ""
+
+#: C/glabels.xml:702(keycap)
+#: C/glabels.xml:718(keycap)
+#: C/glabels.xml:734(keycap)
+msgid "Ctrl"
+msgstr ""
+
+#: C/glabels.xml:702(keycap)
+msgid "X"
+msgstr ""
+
+#: C/glabels.xml:704(guimenuitem)
+msgid "Cut"
+msgstr ""
+
+#: C/glabels.xml:708(para)
+msgid "Moves selected objects to the clipboard. The objects are then available for pasting back into the current document or another document."
+msgstr ""
+
+#: C/glabels.xml:718(keycap)
+msgid "C"
+msgstr ""
+
+#: C/glabels.xml:720(guimenuitem)
+msgid "Copy"
+msgstr ""
+
+#: C/glabels.xml:724(para)
+msgid "Copies selected objects to the clipboard without deleting them. The objects are then available for pasting back into the current document or another document."
+msgstr ""
+
+#: C/glabels.xml:734(keycap)
+msgid "V"
+msgstr ""
+
+#: C/glabels.xml:736(guimenuitem)
+msgid "Paste"
+msgstr ""
+
+#: C/glabels.xml:740(para)
+msgid "Pastes objects from the clipboard into the current document. <application><application>gLabels</application></application> can only paste objects from another <application><application>gLabels</application></application> document."
+msgstr ""
+
+#: C/glabels.xml:750(keycap)
+#: C/glabels.xml:752(guimenuitem)
+msgid "Delete"
+msgstr ""
+
+#: C/glabels.xml:756(para)
+msgid "Deletes selected objects without placing them on the clipboard."
+msgstr ""
+
+#: C/glabels.xml:767(title)
+msgid "To Edit Object Properties"
+msgstr ""
+
+#: C/glabels.xml:769(para)
+msgid "Most object properties can be modified through the object editor sidebar, illustrated below. To use the object editor, a single object must first be selected. See <xref linkend=\"glabels-select-objects\"/>."
+msgstr ""
+
+#: C/glabels.xml:776(title)
+msgid "Object Editor Sidebar"
+msgstr ""
+
+#. ==== End of Figure ====
+#: C/glabels.xml:787(para)
+msgid "The object editor will contain a subset of the following tabbed sections, depending on object type:"
+msgstr ""
+
+#: C/glabels.xml:791(title)
+msgid "Text Tabbed Section (Text objects)"
+msgstr ""
+
+#: C/glabels.xml:793(para)
+msgid "This section contains a small editor for changing the content of a text object. It also contains a dropdown menu of available document merge keys, that can be inserted into text."
+msgstr ""
+
+#: C/glabels.xml:800(title)
+msgid "Image Tabbed Section (Image objecs)"
+msgstr ""
+
+#: C/glabels.xml:802(para)
+msgid "This section contains a file entry with preview to select image files. The browse button can be used to easily locate image files. Alternatively, a document merge key can be used instead to provide a filename at print time."
+msgstr ""
+
+#: C/glabels.xml:810(title)
+msgid "Data Tabbed Section (Barcode objecs)"
+msgstr ""
+
+#: C/glabels.xml:812(para)
+msgid "This section contains a text entry to enter literal barcode data. Alternatively, a document merge key can be used to provide this data at print time."
+msgstr ""
+
+#: C/glabels.xml:819(title)
+msgid "Style Tabbed Section (Text objects)"
+msgstr ""
+
+#: C/glabels.xml:821(para)
+msgid "This section contains controls to select text properties, including font family, font size, font weight, color, and text justification."
+msgstr ""
+
+#: C/glabels.xml:828(title)
+msgid "Style Tabbed Section (Barcode objecs)"
+msgstr ""
+
+#: C/glabels.xml:830(para)
+msgid "This section contains controls to select barcode properties, including barcode style, color, whether to print text, and whether to include a checksum digit."
+msgstr ""
+
+#: C/glabels.xml:837(title)
+msgid "Line Tabbed Section"
+msgstr ""
+
+#: C/glabels.xml:839(para)
+msgid "This section contains controls to select properties of lines and outlines. These properties include line width and color."
+msgstr ""
+
+#: C/glabels.xml:845(title)
+msgid "Fill Tabbed Section"
+msgstr ""
+
+#: C/glabels.xml:847(para)
+msgid "This section contains controls to select fill properties of box and ellipse objects. Currently the only fill property is fill color."
+msgstr ""
+
+#: C/glabels.xml:854(title)
+msgid "Size Tabbed Section (All except line objects)"
+msgstr ""
+
+#: C/glabels.xml:856(para)
+msgid "This section contains controls to select the width and height of an object. A checkbox is provided, so that the current aspect ratio can be locked while manipulating the width and height controls. Image objects also provide a button to reset the size to the image's natural size (Assumes 72DPI)."
+msgstr ""
+
+#: C/glabels.xml:865(title)
+msgid "Size Tabbed Section (Line objects)"
+msgstr ""
+
+#: C/glabels.xml:867(para)
+msgid "This section contains controls to select the length and angle of a line object."
+msgstr ""
+
+#: C/glabels.xml:873(title)
+msgid "Position Tabbed Section"
+msgstr ""
+
+#: C/glabels.xml:875(para)
+msgid "This section contains controls to change the position of an object."
+msgstr ""
+
+#: C/glabels.xml:882(title)
+msgid "Shadow Tabbed Section (All except image and barcode objects)"
+msgstr ""
+
+#: C/glabels.xml:884(para)
+msgid "This section contains controls to add a shadow to an object."
+msgstr ""
+
+#: C/glabels.xml:893(title)
+msgid "Other Manipulations of Objects"
+msgstr ""
+
+#: C/glabels.xml:895(para)
+msgid "Objects can also be manipulated in the following ways."
+msgstr ""
+
+#: C/glabels.xml:898(title)
+msgid "Moving and Resizing Objects"
+msgstr ""
+
+#: C/glabels.xml:900(para)
+msgid "Objects can be moved by simply clicking on a selected object and dragging the object to its new location. If the object is part of an aggregate selection, all objects in the selection will move with the object being dragged, maintaining their relative positions to one another. If no object is selected, clicking on an object will create a new selection containing that object. See <xref linkend=\"glabels-select-objects\"/>."
+msgstr ""
+
+#: C/glabels.xml:908(para)
+msgid "A selected object can be resized by clicking one of its resize handle and dragging it to obtain the new size."
+msgstr ""
+
+#: C/glabels.xml:914(title)
+msgid "Changing Stacking Order"
+msgstr ""
+
+#: C/glabels.xml:916(para)
+msgid "Stacking order refers to relative position in the z-axis of objects. That is when objects overlap, which object will appear on top of the other. By default, newer objects will appear above older objects. To change this order, select one or more objects and choose <menuchoice><guimenu>Objects</guimenu><guimenuitem>Order</guimenuitem><guimenuitem>Bring to Front</guimenuitem></menuchoice> to raise the selection to the top of the stacking order, or choose <menuchoice><guimenu>Objects</guimenu><guimenuitem>Order</guimenuitem><guimenuitem>Send to Back</guimenuitem></menuchoice> to lower the selection to the bottom of the stacking order. These menuitems are also available by right-clicking the display area when there is a non-empty selection."
+msgstr ""
+
+#: C/glabels.xml:934(title)
+msgid "Rotating and Flipping Objects"
+msgstr ""
+
+#: C/glabels.xml:936(para)
+msgid "Objects can be rotated 90 degrees in either direction, or flipped horizontally or vertically, by choosing the appropriate menuitem in the <menuchoice><guimenu>Objects</guimenu><guimenuitem>Rotate/Flip</guimenuitem></menuchoice> sub-menu. These menuitems are also available by right-clicking the display area when there is a non-empty selection."
+msgstr ""
+
+#: C/glabels.xml:946(title)
+msgid "Aligning Objects"
+msgstr ""
+
+#: C/glabels.xml:948(para)
+msgid "Objects can be aligned horizontally or vertically, relative to one another, or relative to the center line of the label, by choosing the appropriate menuitem from the <menuchoice><guimenu>Objects</guimenu><guimenuitem>Align Horizontal</guimenuitem></menuchoice> or <menuchoice><guimenu>Objects</guimenu><guimenuitem>Align Horizontal</guimenuitem></menuchoice> sub-menus. These menuitems are also available by right-clicking the display area when there is a non-empty selection."
+msgstr ""
+
+#: C/glabels.xml:961(title)
+msgid "Using the Property Bar"
+msgstr ""
+
+#: C/glabels.xml:963(para)
+msgid "The property bar can be used to change some common properties of objects en-masse. These properties include font family, font size, font weight, text alignment, text color, fill color, line or outline color, and line width. The property bar also controls the defaults for these properties for any newly created objects."
+msgstr ""
+
+#: C/glabels.xml:978(title)
+msgid "Performing a Document Merge"
+msgstr ""
+
+#: C/glabels.xml:980(para)
+msgid "Document Merge (sometimes called \"Mail Merge\") is a powerful feature that allows a unique label or card to be printed for each record in an external data source."
+msgstr ""
+
+#: C/glabels.xml:984(para)
+msgid ""
+"The first step to performing a document merge is to prepare a source document that contains your merge data. This data could be mailing addresses or any other data that you wish to create unique labels or cards for. Currently back-ends only exist for text files and the evolution data server -- others are planned. The currently supported text-file format is very simple: each line is a record; fields are delimited by commas (CSV), tabs, or colons; and newlines can be embedded into fields by using the \"\\n"
+"\" entity. This file could be created using any text editor or could be created by another program or script. A common way of creating CSV files is to export them from a spreadsheet program."
+msgstr ""
+
+#: C/glabels.xml:996(para)
+msgid "A label must then be configured to \"point at\" this data file. To configure the merge properties of a document, choose <menuchoice><guimenu>Objects</guimenu><guimenuitem>Merge Properties</guimenuitem></menuchoice> menu item to display the <guilabel>merge properties</guilabel> dialog. This dialog is used to select the exact data file format and file name (location) of the merge data."
+msgstr ""
+
+#: C/glabels.xml:1004(para)
+msgid "Finally, once the label has been configured for a data file, field keys can be inserted into text objects and used as source or data for barcode objects and image filenames for image objects. See <xref linkend=\"glabels-object-properties\"/> for more information on using merge data for these object types."
+msgstr ""
+
+#: C/glabels.xml:1010(para)
+msgid "Now that your label is configured, gLabels will print a unique label for each record in your source document -- substituting fields from each record for field keys in the all text, barcode, and image objects."
+msgstr ""
+
+#: C/glabels.xml:1015(para)
+msgid "See <xref linkend=\"glabels-merge-tutorial\"/> for a detailed tutorial on the document merge feature."
+msgstr ""
+
+#: C/glabels.xml:1030(title)
+msgid "Settings"
+msgstr ""
+
+#: C/glabels.xml:1031(para)
+msgid "To configure <application>gLabels</application>, choose <menuchoice><guimenu>Settings</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice>. The <guilabel>Preferences</guilabel> dialog contains the following tabbed sections:"
+msgstr ""
+
+#: C/glabels.xml:1052(title)
+msgid "Locale"
+msgstr ""
+
+#: C/glabels.xml:1056(guilabel)
+msgid "Units"
+msgstr ""
+
+#: C/glabels.xml:1058(para)
+msgid "Use this radio button group to specify your prefered units. Select one of the following options:"
+msgstr ""
+
+#: C/glabels.xml:1063(guilabel)
+msgid "Points"
+msgstr ""
+
+#: C/glabels.xml:1064(para)
+msgid "Use points (1 point = 1/72 in = 0.352778 mm)."
+msgstr ""
+
+#: C/glabels.xml:1068(guilabel)
+msgid "Inches"
+msgstr ""
+
+#: C/glabels.xml:1069(para)
+msgid "Use inches."
+msgstr ""
+
+#: C/glabels.xml:1073(guilabel)
+msgid "Millimeters"
+msgstr ""
+
+#: C/glabels.xml:1074(para)
+msgid "Use millimeters."
+msgstr ""
+
+#: C/glabels.xml:1077(para)
+msgid "Default: <guilabel>Inches</guilabel>."
+msgstr ""
+
+#: C/glabels.xml:1083(guilabel)
+msgid "Default page size"
+msgstr ""
+
+#: C/glabels.xml:1085(para)
+msgid "Use this radio button group to specify your prefered page size. This will make it quicker for you to locate media types when creating a new label or card."
+msgstr ""
+
+#: C/glabels.xml:1091(guilabel)
+msgid "US Letter"
+msgstr ""
+
+#: C/glabels.xml:1092(para)
+msgid "Most of your media will be of the US Letter page size (8.5 x 11 inches)."
+msgstr ""
+
+#: C/glabels.xml:1096(guilabel)
+msgid "ISO A4"
+msgstr ""
+
+#: C/glabels.xml:1097(para)
+msgid "Most of your media will be of the ISO A4 page size (210 x 297 mm)."
+msgstr ""
+
+#: C/glabels.xml:1100(para)
+msgid "Default: <guilabel>US Letter</guilabel>."
+msgstr ""
+
+#: C/glabels.xml:1109(title)
+msgid "Object defaults"
+msgstr ""
+
+#: C/glabels.xml:1115(para)
+msgid "Use these controls to set the default properties of new text objects. These properties are"
+msgstr ""
+
+#: C/glabels.xml:1120(guilabel)
+msgid "Font"
+msgstr ""
+
+#: C/glabels.xml:1121(para)
+msgid "These controls are used to select font family and font size, and whether the font should bold or in italics."
+msgstr ""
+
+#: C/glabels.xml:1126(guilabel)
+#: C/glabels.xml:1151(guilabel)
+#: C/glabels.xml:1166(guilabel)
+msgid "Color"
+msgstr ""
+
+#: C/glabels.xml:1127(para)
+msgid "This control selects the default text color."
+msgstr ""
+
+#: C/glabels.xml:1131(guilabel)
+msgid "Alignment"
+msgstr ""
+
+#: C/glabels.xml:1132(para)
+msgid "These controls are used to select the default text alignment (left, center or right)."
+msgstr ""
+
+#: C/glabels.xml:1141(para)
+msgid "Use these controls to set the default properties of lines and outlines of new objects. These properties are"
+msgstr ""
+
+#: C/glabels.xml:1146(guilabel)
+msgid "Width"
+msgstr ""
+
+#: C/glabels.xml:1147(para)
+msgid "This control selects the default line width."
+msgstr ""
+
+#: C/glabels.xml:1152(para)
+msgid "This control selects the default line color."
+msgstr ""
+
+#: C/glabels.xml:1159(guilabel)
+msgid "Fill"
+msgstr ""
+
+#: C/glabels.xml:1161(para)
+msgid "Use these controls to set the default fill properties of new objects. These properties are"
+msgstr ""
+
+#: C/glabels.xml:1167(para)
+msgid "This control selects the default fill color."
+msgstr ""
+
+#: C/glabels.xml:1181(title)
+msgid "Document Merge Tutorial"
+msgstr ""
+
+#: C/glabels.xml:1183(para)
+msgid "Document Merge (sometimes called \"Mail Merge\") is a powerful feature that allows a unique label or card to be printed for each record in an external data source. It is however, the most mis-understood feature of <application>glabels</application>. The following examples will step through a couple of common tasks using the document merge feature."
+msgstr ""
+
+#: C/glabels.xml:1191(title)
+msgid "Example 1: Name Tags"
+msgstr ""
+
+#: C/glabels.xml:1193(para)
+msgid "In this example we are organizing an orientation party for the new crew members of our ship. We have a list of freshman crew members that we created in <application>gnumeric</application> and exported as the following CSV file. We could have created this file by using a text editor, but heck it is the 23rd century."
+msgstr ""
+
+#: C/glabels.xml:1199(programlisting)
+#, no-wrap
+msgid ""
+"\n"
+"Name,Department,SN\n"
+"\"Jim Kirk\",Management,\"SC937-0176 CEC\"\n"
+"\"Mr. Spock\",Sciences,S179-276SP\n"
+"\"Leonard McCoy\",Medicine,unknown\n"
+"\"Montgomery Scott\",Engineering,SE-197-54T\n"
+"      "
+msgstr ""
+
+#: C/glabels.xml:1207(para)
+msgid "In <application>glabels</application> we have created a new glabels document using the Avery 5395 \"Name Badge Labels\" template. Next we use the <menuchoice><guimenu>Objects</guimenu><guimenuitem>Merge Properties</guimenuitem></menuchoice> menu item to display the <guilabel>merge properties</guilabel> dialog. We use this dialog to select the source type (in our case CSV) and the merge source (filename) as shown."
+msgstr ""
+
+#: C/glabels.xml:1217(title)
+#: C/glabels.xml:1334(title)
+msgid "Merge properties dialog"
+msgstr ""
+
+#. ==== End of Figure ====
+#: C/glabels.xml:1228(para)
+msgid "Before applying the merge source, we uncheck the first record since it is only column headers from our original <application>gnumeric</application> spreadsheet and would simply waste our first label. We could also unselect any other records that we didn't want to print a label for."
+msgstr ""
+
+#: C/glabels.xml:1233(para)
+#: C/glabels.xml:1351(para)
+msgid "We can also view each record in more detail by clicking on the appropriate expander (the little triangles) as shown. Once we are satisfied with the selections in this dialog we click <guibutton>OK</guibutton> to accept the changes."
+msgstr ""
+
+#: C/glabels.xml:1238(para)
+#: C/glabels.xml:1356(para)
+msgid "Now we start adding objects to our glabels document as shown."
+msgstr ""
+
+#: C/glabels.xml:1242(title)
+#: C/glabels.xml:1360(title)
+msgid "Adding objects"
+msgstr ""
+
+#. ==== End of Figure ====
+#: C/glabels.xml:1253(para)
+msgid "In this example we have added three text objects and a barcode object. The first text object contains only simple literal text (\"Hello, my name is\"). The second text object contains a single merge field (\"${1}\") corresponding to the first field of a record (first column of a line) which contains the new crew member's full name. The third text field contains both literal text (\"Department: \") followed by a single merge field (\"${2}\") corresponding to the second field or the crew member's department. The barcode object is configured to use field (or key) \"3\" which contains our crew member's starfleet serial number."
+msgstr ""
+
+#: C/glabels.xml:1263(para)
+msgid "Now we can print our name tags by selecting the <menuchoice><guimenu>File</guimenu><guimenuitem>Print</guimenuitem></menuchoice> menu item. This will display print dialog as shown below."
+msgstr ""
+
+#: C/glabels.xml:1270(title)
+msgid "Printing name tags"
+msgstr ""
+
+#. ==== End of Figure ====
+#: C/glabels.xml:1281(para)
+#: C/glabels.xml:1396(para)
+msgid "Just to make sure our labels are going to look okay, we select the <guilabel>Print outlines</guilabel> option and click <guibutton>Print Preview</guibutton>. This will display a print preview dialog as shown below."
+msgstr ""
+
+#: C/glabels.xml:1288(title)
+msgid "Name tags preview"
+msgstr ""
+
+#. ==== End of Figure ====
+#: C/glabels.xml:1299(para)
+msgid "Everything looks good, so we can now load up our printer with the appropriate label stock, print our name tags and start beaming our guests aboard."
+msgstr ""
+
+#: C/glabels.xml:1306(title)
+msgid "Example 2: Address Labels"
+msgstr ""
+
+#: C/glabels.xml:1308(para)
+msgid "In this example we are going to throw a party and need to print mailing address labels for our invitations. We have a list of our closest friends that we created in <application>gnumeric</application> and exported as the following CSV file. It should be noted that not everyone has a middle initial or a two line address."
+msgstr ""
+
+#: C/glabels.xml:1314(programlisting)
+#, no-wrap
+msgid ""
+"\n"
+"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n"
+",,,,,,,\n"
+"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n"
+"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n"
+"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n"
+"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n"
+"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n"
+"      "
+msgstr ""
+
+#: C/glabels.xml:1324(para)
+msgid "In <application>glabels</application> we have created a new glabels document using the Avery 5512 \"Address Labels\" template. Next we use the <menuchoice><guimenu>Objects</guimenu><guimenuitem>Merge Properties</guimenuitem></menuchoice> menu item to display the <guilabel>merge properties</guilabel> dialog. We use this dialog to select the source type (in our case CSV) and the merge source (filename) as shown."
+msgstr ""
+
+#. ==== End of Figure ====
+#: C/glabels.xml:1345(para)
+msgid "Before applying the merge source, we uncheck the first record since it is only column headers from our original <application>gnumeric</application> spreadsheet and would simply waste our first label. We also unselect the second record which is empty (an artifact of our original spreadsheet). We could also unselect any other records that we didn't want to print a label for."
+msgstr ""
+
+#. ==== End of Figure ====
+#: C/glabels.xml:1371(para)
+msgid "In this example we have a single text object. This text object contains all of our merge fields organized on multiple lines as a mailing address. Notice that fields ${4} and ${5} (corresponding to ADDR1 and ADDR2) are each located with no other text on their own lines. When <application>glabels</application> encounters a field as the only text on a line, it will not expand the line if the field is empty."
+msgstr ""
+
+#: C/glabels.xml:1378(para)
+msgid "Now we can print our address labels by selecting the <menuchoice><guimenu>File</guimenu><guimenuitem>Print</guimenuitem></menuchoice> menu item. This will display print dialog as shown below."
+msgstr ""
+
+#: C/glabels.xml:1385(title)
+msgid "Printing address labels"
+msgstr ""
+
+#: C/glabels.xml:1403(title)
+msgid "Address labels preview"
+msgstr ""
+
+#. ==== End of Figure ====
+#: C/glabels.xml:1414(para)
+msgid "Everything looks good, so we can now load up our printer with the appropriate label stock, print our address labels and start mailing our party invitations."
+msgstr ""
+
+#: C/glabels.xml:1427(title)
+msgid "Manually Creating New Templates"
+msgstr ""
+
+#: C/glabels.xml:1429(para)
+msgid "Predefined templates are defined by XML files located in <filename>${prefix}/share/glabels/</filename>, where <filename>${prefix}</filename> is usually something like <filename>/usr/local</filename> or <filename>/usr</filename> depending on the configuration option <filename>prefix</filename>. gLabels will use all files of the form <filename>*-templates.xml</filename> or <filename>*.template</filename>, that it finds in <filename>${prefix}/share/glabels/</filename> and <filename>${HOME}/.glabels/</filename>. Additional templates can be added by creating additional <filename>*.template</filename> files in either of these directories."
+msgstr ""
+
+#: C/glabels.xml:1442(para)
+msgid "The format for these files is defined in the DTD: <ulink url=\"http://glabels.sourceforge.net/doc/glabels-2.0.dtd.txt\" type=\"http\">glabels-2.2.dtd</ulink>. (This DTD also describes other XML formats used by glabels.)"
+msgstr ""
+
+#: C/glabels.xml:1448(title)
+msgid "Assumptions/caveats"
+msgstr ""
+
+#: C/glabels.xml:1451(para)
+msgid "A sheet contains only one size of label or card (if a sheet contains more than one size of item, it can be split into multiple templates for multiple pass printing)"
+msgstr ""
+
+#: C/glabels.xml:1456(para)
+msgid "Distances can be expressed in units of <emphasis>pt</emphasis>, <emphasis>in</emphasis>, <emphasis>mm</emphasis>, <emphasis>cm</emphasis>, or <emphasis>pc</emphasis>. For example: \"<literal>1.0in</literal>\" or \"<literal>2.54cm</literal>\". If no units are specified, computer points (<emphasis>pt</emphasis>) will be assumed (1 <emphasis>pt</emphasis> = 1/72 <emphasis>in</emphasis> = 0.352778 <emphasis>mm</emphasis>)."
+msgstr ""
+
+#: C/glabels.xml:1469(title)
+msgid "Template Files"
+msgstr ""
+
+#: C/glabels.xml:1471(programlisting)
+#, no-wrap
+msgid ""
+"\n"
+"&lt;?xml version=\"1.0\"?&gt;\n"
+"&lt;Glabels-templates&gt;\n"
+"\n"
+"   <replaceable>...templates...</replaceable>\n"
+"\n"
+"&lt;/Glabels-templates&gt;\n"
+"      "
+msgstr ""
+
+#: C/glabels.xml:1483(title)
+msgid "Example Template"
+msgstr ""
+
+#: C/glabels.xml:1484(programlisting)
+#, no-wrap
+msgid ""
+"\n"
+"  &lt;Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\"&gt;\n"
+"    &lt;Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\"&gt;\n"
+"      &lt;Markup-margin size=\"5pt\"/&gt;\n"
+"      &lt;Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/&gt;\n"
+"    &lt;/Label-rectangle&gt;\n"
+"    &lt;Alias brand=\"Avery\" part=\"5160\"/&gt;\n"
+"    &lt;Alias brand=\"Avery\" part=\"6233\"/&gt;\n"
+"  &lt;/Template&gt;\n"
+"      "
+msgstr ""
+
+#: C/glabels.xml:1497(title)
+msgid "Template Node"
+msgstr ""
+
+#: C/glabels.xml:1499(para)
+msgid "A <emphasis>Template</emphasis> node describes a single stationary product. It must contain one instance of any type of Label node (<emphasis>Label-rectangle</emphasis>, <emphasis>Label-round</emphasis>, or <emphasis>Label-cd</emphasis>). This node can be followed by zero or more <emphasis>Alias</emphasis> nodes."
+msgstr ""
+
+#: C/glabels.xml:1513(para)
+#: C/glabels.xml:1588(para)
+#: C/glabels.xml:1665(para)
+#: C/glabels.xml:1710(para)
+#: C/glabels.xml:1786(para)
+#: C/glabels.xml:1819(para)
+#: C/glabels.xml:1870(para)
+#: C/glabels.xml:1913(para)
+#: C/glabels.xml:1972(para)
+#: C/glabels.xml:2049(para)
+msgid "Property"
+msgstr ""
+
+#: C/glabels.xml:1516(para)
+#: C/glabels.xml:1591(para)
+#: C/glabels.xml:1668(para)
+#: C/glabels.xml:1713(para)
+#: C/glabels.xml:1789(para)
+#: C/glabels.xml:1822(para)
+#: C/glabels.xml:1873(para)
+#: C/glabels.xml:1916(para)
+#: C/glabels.xml:1975(para)
+#: C/glabels.xml:2052(para)
+msgid "Description"
+msgstr ""
+
+#: C/glabels.xml:1522(para)
+#: C/glabels.xml:2058(para)
+msgid "brand"
+msgstr ""
+
+#: C/glabels.xml:1524(para)
+msgid "Brand or manufacturer of stationary product. E.g. \"Avery\""
+msgstr ""
+
+#: C/glabels.xml:1529(para)
+#: C/glabels.xml:2064(para)
+msgid "part"
+msgstr ""
+
+#: C/glabels.xml:1531(para)
+msgid "Part number or name of stationary product. E.g. \"8160\""
+msgstr ""
+
+#: C/glabels.xml:1536(para)
+#: C/glabels.xml:1795(para)
+msgid "size"
+msgstr ""
+
+#: C/glabels.xml:1538(para)
+msgid "Size of sheet. E.g., \"US-Letter,\" \"A4\", ..."
+msgstr ""
+
+#: C/glabels.xml:1542(para)
+msgid "description"
+msgstr ""
+
+#: C/glabels.xml:1544(para)
+msgid "Description of stationary product. E.g, \"Mailing Labels.\""
+msgstr ""
+
+#: C/glabels.xml:1549(para)
+msgid "_description"
+msgstr ""
+
+#: C/glabels.xml:1551(para)
+msgid "Translatable description of stationary product. E.g, \"Mailing Labels.\" (Only useful for predefined templates)"
+msgstr ""
+
+#: C/glabels.xml:1557(para)
+#: C/glabels.xml:1603(para)
+#: C/glabels.xml:1733(para)
+msgid "width"
+msgstr ""
+
+#: C/glabels.xml:1559(para)
+msgid "Page width. Only valid if size=\"Other\""
+msgstr ""
+
+#: C/glabels.xml:1563(para)
+#: C/glabels.xml:1607(para)
+#: C/glabels.xml:1740(para)
+msgid "height"
+msgstr ""
+
+#: C/glabels.xml:1565(para)
+msgid "Page height. Only valid if size=\"Other\""
+msgstr ""
+
+#: C/glabels.xml:1575(title)
+msgid "Label-rectangle Node"
+msgstr ""
+
+#: C/glabels.xml:1577(para)
+msgid "A <emphasis>Label-rectangle</emphasis> node describes the dimensions of a single label or business card that is rectangular in shape (may have rounded edges)."
+msgstr ""
+
+#: C/glabels.xml:1597(para)
+#: C/glabels.xml:1674(para)
+#: C/glabels.xml:1719(para)
+msgid "id"
+msgstr ""
+
+#: C/glabels.xml:1599(para)
+#: C/glabels.xml:1676(para)
+#: C/glabels.xml:1721(para)
+msgid "Reserved for future use. Should always be 0."
+msgstr ""
+
+#: C/glabels.xml:1604(para)
+msgid "Width of label/card"
+msgstr ""
+
+#: C/glabels.xml:1608(para)
+msgid "Height of label/card"
+msgstr ""
+
+#: C/glabels.xml:1611(para)
+msgid "round"
+msgstr ""
+
+#: C/glabels.xml:1613(para)
+msgid "Radius of corners. For items with square edges (business cards), the radius should be 0."
+msgstr ""
+
+#: C/glabels.xml:1618(para)
+msgid "x_waste"
+msgstr ""
+
+#: C/glabels.xml:1620(para)
+msgid "Amount of horizontal waste (over-print) to allow. This is useful for minimizing alignment problems when using non-white backgrounds (e.g. images)."
+msgstr ""
+
+#: C/glabels.xml:1626(para)
+msgid "y_waste"
+msgstr ""
+
+#: C/glabels.xml:1628(para)
+msgid "Amount of vertical waste (over-print) to allow. This is useful for minimizing alignment problems when using non-white backgrounds (e.g. images)."
+msgstr ""
+
+#: C/glabels.xml:1639(title)
+msgid "Label-rectangle Parameters"
+msgstr ""
+
+#: C/glabels.xml:1653(title)
+msgid "Label-round Node"
+msgstr ""
+
+#: C/glabels.xml:1655(para)
+msgid "A <emphasis>Label-round</emphasis> node describes the dimensions of a simple round label (not a CD)."
+msgstr ""
+
+#: C/glabels.xml:1680(para)
+#: C/glabels.xml:1725(para)
+#: C/glabels.xml:1891(para)
+msgid "radius"
+msgstr ""
+
+#: C/glabels.xml:1681(para)
+msgid "Radius (1/2 diameter) of label"
+msgstr ""
+
+#: C/glabels.xml:1684(para)
+#: C/glabels.xml:1747(para)
+msgid "waste"
+msgstr ""
+
+#: C/glabels.xml:1686(para)
+#: C/glabels.xml:1749(para)
+msgid "Amount of waste (over-print) to allow. This is useful for minimizing alignment problems when using non-white backgrounds (e.g. images)."
+msgstr ""
+
+#: C/glabels.xml:1698(title)
+msgid "Label-cd Node"
+msgstr ""
+
+#: C/glabels.xml:1700(para)
+msgid "A <emphasis>Label-cd</emphasis> node describes the dimensions of a CD, DVD, or business card CD."
+msgstr ""
+
+#: C/glabels.xml:1726(para)
+msgid "Outer radius of label"
+msgstr ""
+
+#: C/glabels.xml:1729(para)
+msgid "hole"
+msgstr ""
+
+#: C/glabels.xml:1730(para)
+msgid "Radius of concentric hole"
+msgstr ""
+
+#: C/glabels.xml:1735(para)
+msgid "If present, the label is clipped to the given width. (Useful for \"business card CDs\")."
+msgstr ""
+
+#: C/glabels.xml:1742(para)
+msgid "If present, the label is clipped to the given height. (Useful for \"business card CDs\")."
+msgstr ""
+
+#: C/glabels.xml:1760(title)
+msgid "CD Label Parameters"
+msgstr ""
+
+#: C/glabels.xml:1774(title)
+msgid "Markup-margin Node"
+msgstr ""
+
+#: C/glabels.xml:1776(para)
+msgid "A <emphasis>Markup-margin</emphasis> describes a margin along all edges of a label."
+msgstr ""
+
+#: C/glabels.xml:1797(para)
+msgid "Size of the margin. I.e. the distance of the margin line from the edge of the card/label."
+msgstr ""
+
+#: C/glabels.xml:1808(title)
+msgid "Markup-line Node"
+msgstr ""
+
+#: C/glabels.xml:1810(para)
+msgid "A <emphasis>Markup-line</emphasis> describes a markup line."
+msgstr ""
+
+#: C/glabels.xml:1828(para)
+#: C/glabels.xml:1922(para)
+msgid "x1"
+msgstr ""
+
+#: C/glabels.xml:1830(para)
+msgid "x coordinate of 1st endpoint of the line segment."
+msgstr ""
+
+#: C/glabels.xml:1834(para)
+#: C/glabels.xml:1928(para)
+msgid "y1"
+msgstr ""
+
+#: C/glabels.xml:1836(para)
+msgid "y coordinate of 1st endpoint of the line segment."
+msgstr ""
+
+#: C/glabels.xml:1840(para)
+msgid "x2"
+msgstr ""
+
+#: C/glabels.xml:1842(para)
+msgid "x coordinate of 2nd endpoint of the line segment."
+msgstr ""
+
+#: C/glabels.xml:1846(para)
+msgid "y2"
+msgstr ""
+
+#: C/glabels.xml:1848(para)
+msgid "y coordinate of 2nd endpoint of the line segment."
+msgstr ""
+
+#: C/glabels.xml:1858(title)
+msgid "Markup-circle Node"
+msgstr ""
+
+#: C/glabels.xml:1860(para)
+msgid "A <emphasis>Markup-circle</emphasis> describes a markup circle."
+msgstr ""
+
+#: C/glabels.xml:1879(para)
+#: C/glabels.xml:1995(para)
+msgid "x0"
+msgstr ""
+
+#: C/glabels.xml:1881(para)
+msgid "x coordinate of circle origin (center)."
+msgstr ""
+
+#: C/glabels.xml:1885(para)
+#: C/glabels.xml:2002(para)
+msgid "y0"
+msgstr ""
+
+#: C/glabels.xml:1887(para)
+msgid "y coordinate of circle origin (center)."
+msgstr ""
+
+#: C/glabels.xml:1892(para)
+msgid "Radius of circle."
+msgstr ""
+
+#: C/glabels.xml:1901(title)
+msgid "Markup-rect Node"
+msgstr ""
+
+#: C/glabels.xml:1903(para)
+msgid "A <emphasis>Markup-rect</emphasis> describes a markup rectangle."
+msgstr ""
+
+#: C/glabels.xml:1924(para)
+msgid "x coordinate of upper left corner of rectangle."
+msgstr ""
+
+#: C/glabels.xml:1930(para)
+msgid "y coordinate of upper left corner of rectangle."
+msgstr ""
+
+#: C/glabels.xml:1934(para)
+msgid "w"
+msgstr ""
+
+#: C/glabels.xml:1936(para)
+msgid "Width of rectangle."
+msgstr ""
+
+#: C/glabels.xml:1940(para)
+msgid "h"
+msgstr ""
+
+#: C/glabels.xml:1942(para)
+msgid "Height of rectangle."
+msgstr ""
+
+#: C/glabels.xml:1946(para)
+msgid "r"
+msgstr ""
+
+#: C/glabels.xml:1947(para)
+msgid "Radius of rounded corners of rectangle."
+msgstr ""
+
+#: C/glabels.xml:1956(title)
+msgid "Layout Node"
+msgstr ""
+
+#: C/glabels.xml:1958(para)
+msgid "A label node may contain multiple <emphasis>Layout</emphasis> children. If labels are arranged in a simple grid pattern, only one layout is needed. However, if labels are arranged in multiple grids, such as a running bond pattern, multiple <emphasis>layout</emphasis> tags can be used. Note: a single label can always be treated as a grid of one."
+msgstr ""
+
+#: C/glabels.xml:1981(para)
+msgid "nx"
+msgstr ""
+
+#: C/glabels.xml:1983(para)
+msgid "Number of labels/cards across in the grid (horizontal)"
+msgstr ""
+
+#: C/glabels.xml:1988(para)
+msgid "ny"
+msgstr ""
+
+#: C/glabels.xml:1990(para)
+msgid "Number of labels/cards up and down in the grid (vertical)"
+msgstr ""
+
+#: C/glabels.xml:1997(para)
+msgid "Distance from left edge of sheet to the left edge of the left column of cards/labels in the layout."
+msgstr ""
+
+#: C/glabels.xml:2004(para)
+msgid "Distance from the top edge of sheet to the top edge of the top row of labels/cards in the layout."
+msgstr ""
+
+#: C/glabels.xml:2009(para)
+msgid "dx"
+msgstr ""
+
+#: C/glabels.xml:2010(para)
+msgid "Horizontal pitch of grid."
+msgstr ""
+
+#: C/glabels.xml:2013(para)
+msgid "dy"
+msgstr ""
+
+#: C/glabels.xml:2014(para)
+msgid "Vertical pitch of grid."
+msgstr ""
+
+#: C/glabels.xml:2022(title)
+msgid "Layout Parameters"
+msgstr ""
+
+#: C/glabels.xml:2036(title)
+msgid "Alias Node"
+msgstr ""
+
+#: C/glabels.xml:2038(para)
+msgid "An <emphasis>Alias</emphasis> node provides the name of a product with the same size and layout characteristics as the parent template."
+msgstr ""
+
+#: C/glabels.xml:2060(para)
+msgid "The brand or manufacturer of the equivalent product."
+msgstr ""
+
+#: C/glabels.xml:2066(para)
+msgid "The part number or name of the equivalent product."
+msgstr ""
+
+#: C/glabels.xml:2102(title)
+msgid "About <application>gLabels</application>"
+msgstr ""
+
+#: C/glabels.xml:2103(para)
+msgid "<application>gLabels</application> was written by Jim Evins (<email>evins@snaught.com</email>). To find more information about <application>gLabels</application>, please visit the <ulink url=\"http://glabels.sourceforge.net\" type=\"http\">gLabels Web page</ulink>."
+msgstr ""
+
+#: C/glabels.xml:2108(para)
+msgid "To report a bug or make a suggestion regarding this application or this manual, follow the directions at the <ulink url=\"http://glabels.sourceforge.net/contact/\" type=\"http\">gLabels Contact Page</ulink>."
+msgstr ""
+
+#: C/glabels.xml:2114(para)
+msgid "This program is distributed under the terms of the GNU General Public license as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. A copy of this license can be found at this <ulink url=\"ghelp:gpl\" type=\"help\">link</ulink>, or in the file COPYING included with the source code of this program."
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2
+#: C/glabels.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
diff --git a/iec16022-0.2.1/BUGS b/iec16022-0.2.1/BUGS
deleted file mode 100644 (file)
index 9de2b17..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-iec16022 -f i -c aaaaabbbbbccccc
-Barcode too long for 32x8
-No barcode produced
-
-We should find a suit barcode and not error here.
-
diff --git a/iec16022-0.2.1/CHANGELOG b/iec16022-0.2.1/CHANGELOG
deleted file mode 100644 (file)
index 7c02bce..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-0.2.1
-       - Fix 'Barcode too long' bug. Thanks to Alessandro Zummo.
-       - Use Lindent to start cleaning up the code mess.
-       
-2006-11-11  Stefan Schmidt <stefan@datenfreihafen.org>
-
-0.2
-       - Rewrite Makefile.
-       - Documentation update.
-       - Exclude double include of header files.
-       - Layout cahnges. Place return value in front of function name.
-       - 80 character per line.
-       - Print version number before usage.
-       - Tests
-       
-2006-02-06  Stefan Schmidt <stefan@datenfreihafen.org>
-
-
-0.1
-       - Initial release.
-       - INSTALL, README, TODO, CREDITS, Makefile, LICENSE and CHANGELOG files
-         added.
-       - Fix some include issues.
-       - Fix some signed/unsigned issues.
-
-2006-01-08  Stefan Schmidt <stefan@datenfreihafen.org>
diff --git a/iec16022-0.2.1/CREDITS b/iec16022-0.2.1/CREDITS
deleted file mode 100644 (file)
index 37e2bcc..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-Adrian Kennard, Andrews & Arnold Ltd for the original source code. You can 
-find it at http://aa.gg/free/
-
-Cliff Hones for the RS coding.
-
-Jan Luebbe <jluebbe@lasnet.de> for writing the manual page and maintaining 
-the debian package.
-
-Daniel Willman <alphaone@totalueberwachung.de> for maintaining the gentoo
-ebuild.
diff --git a/iec16022-0.2.1/INSTALL b/iec16022-0.2.1/INSTALL
deleted file mode 100644 (file)
index 102a61e..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-To install this software you need the following libraries installed:
-- libpopt
-- zlib
-
-Installing iec16022 is really simple. Just do a 'make' and 'make install'.
-
-In standard configuration the binary will be installed in /usr/local/bin. You
-can change the prefix and DESTDIR in the Makefile.
diff --git a/iec16022-0.2.1/LICENSE b/iec16022-0.2.1/LICENSE
deleted file mode 100644 (file)
index 3912109..0000000
+++ /dev/null
@@ -1,340 +0,0 @@
-                   GNU GENERAL PUBLIC LICENSE
-                      Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-                       51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-                           Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-\f
-                   GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-\f
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-\f
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-\f
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-                           NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-                    END OF TERMS AND CONDITIONS
-\f
-           How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/iec16022-0.2.1/Makefile.am b/iec16022-0.2.1/Makefile.am
deleted file mode 100644 (file)
index 566bdc0..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-INCLUDES = \
-       -DLIB \
-       $(GLABELS_CFLAGS)
-
-
-IEC_FILES =                    \
-       iec16022ecc200.c        \
-       reedsol.c
-
-noinst_LTLIBRARIES = libiec16022.la
-
-libiec16022_la_SOURCES = $(IEC_FILES)
-
-EXTRA_DIST =                   \
-       BUGS                    \
-       CHANGELOG               \
-       CREDITS                 \
-       iec16022.1              \
-       iec16022.c              \
-       iec16022ecc200.h        \
-       image.c                 \
-       image.h                 \
-       INSTALL                 \
-       LICENSE                 \
-       Makefile.dist           \
-       README                  \
-       README.glabels          \
-       reedsol.h               \
-       TODO                    \
-       test/testsuite-example.bin      \
-       test/testsuite-example.eps      \
-       test/testsuite-example.hex      \
-       test/testsuite-example.png      \
-       test/testsuite-example.text     \
-       test/testsuite.sh
diff --git a/iec16022-0.2.1/Makefile.dist b/iec16022-0.2.1/Makefile.dist
deleted file mode 100644 (file)
index 4929afd..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-CC=/usr/bin/cc
-INSTALL=/usr/bin/install
-GZIP=/bin/gzip
-
-prefix=/usr/local
-bindir=$(prefix)/bin
-mandir=$(prefix)/share/man
-
-CFLAGS=-Wall
-
-.PHONY: test clean
-
-all: iec16022 manpage
-
-iec16022: iec16022ecc200.o image.o iec16022.c
-       $(CC) -c iec16022.c
-       $(CC) -o iec16022 $(CFLAGS) reedsol.o iec16022.o image.o iec16022ecc200.o -lz -lpopt
-
-manpage: iec16022.1
-       $(GZIP) -f --best < iec16022.1 > iec16022.1.gz
-
-install: all
-       $(INSTALL) -d -m 755 $(DESTDIR)$(bindir) $(DESTDIR)$(mandir)/man1
-       $(INSTALL) -m 755 iec16022 $(DESTDIR)$(bindir)
-       $(INSTALL) -m 644 iec16022.1.gz $(DESTDIR)$(mandir)/man1
-
-test: iec16022
-       cd test; ./testsuite.sh
-
-iec16022ecc200.o: iec16022ecc200.c iec16022ecc200.h reedsol.o
-       $(CC) -c iec16022ecc200.c
-
-image.o: image.c image.h
-       $(CC) -c image.c
-
-reedsol.o: reedsol.c reedsol.h
-       $(CC)  -DLIB -c reedsol.c
-
-clean:
-       rm -f iec16022 iec16022.1.gz *.o
diff --git a/iec16022-0.2.1/Makefile.in b/iec16022-0.2.1/Makefile.in
deleted file mode 100644 (file)
index 01f31d7..0000000
+++ /dev/null
@@ -1,551 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = iec16022-0.2.1
-DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-       INSTALL TODO
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-       $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-libiec16022_la_LIBADD =
-am__objects_1 = iec16022ecc200.lo reedsol.lo
-am_libiec16022_la_OBJECTS = $(am__objects_1)
-libiec16022_la_OBJECTS = $(am_libiec16022_la_OBJECTS)
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-       --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-       $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-       --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-       $(LDFLAGS) -o $@
-SOURCES = $(libiec16022_la_SOURCES)
-DIST_SOURCES = $(libiec16022_la_SOURCES)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ALL_LINGUAS = @ALL_LINGUAS@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CATALOGS = @CATALOGS@
-CATOBJEXT = @CATOBJEXT@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIRNAME = @DATADIRNAME@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
-DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
-DOC_USER_FORMATS = @DOC_USER_FORMATS@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
-GLABELS_CFLAGS = @GLABELS_CFLAGS@
-GLABELS_LIBS = @GLABELS_LIBS@
-GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
-GLIB_REQUIRED = @GLIB_REQUIRED@
-GMOFILES = @GMOFILES@
-GMSGFMT = @GMSGFMT@
-GREP = @GREP@
-GTKDOC_CHECK = @GTKDOC_CHECK@
-GTK_REQUIRED = @GTK_REQUIRED@
-HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@
-HELP_DIR = @HELP_DIR@
-HTML_DIR = @HTML_DIR@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INSTOBJEXT = @INSTOBJEXT@
-INTLLIBS = @INTLLIBS@
-INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
-INTLTOOL_MERGE = @INTLTOOL_MERGE@
-INTLTOOL_PERL = @INTLTOOL_PERL@
-INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
-LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
-LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
-LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
-LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
-LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@
-LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@
-LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@
-LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIBXML_REQUIRED = @LIBXML_REQUIRED@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-MSGFMT = @MSGFMT@
-MSGFMT_OPTS = @MSGFMT_OPTS@
-MSGMERGE = @MSGMERGE@
-MYGAL_CFLAGS = @MYGAL_CFLAGS@
-MYGAL_LIBS = @MYGAL_LIBS@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OMF_DIR = @OMF_DIR@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-POFILES = @POFILES@
-POSUB = @POSUB@
-PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
-PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@
-UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
-USE_NLS = @USE_NLS@
-VERSION = @VERSION@
-WARN_CFLAGS = @WARN_CFLAGS@
-XGETTEXT = @XGETTEXT@
-XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@
-XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-INCLUDES = \
-       -DLIB \
-       $(GLABELS_CFLAGS)
-
-IEC_FILES = \
-       iec16022ecc200.c        \
-       reedsol.c
-
-noinst_LTLIBRARIES = libiec16022.la
-libiec16022_la_SOURCES = $(IEC_FILES)
-EXTRA_DIST = \
-       BUGS                    \
-       CHANGELOG               \
-       CREDITS                 \
-       iec16022.1              \
-       iec16022.c              \
-       iec16022ecc200.h        \
-       image.c                 \
-       image.h                 \
-       INSTALL                 \
-       LICENSE                 \
-       Makefile.dist           \
-       README                  \
-       README.glabels          \
-       reedsol.h               \
-       TODO                    \
-       test/testsuite-example.bin      \
-       test/testsuite-example.eps      \
-       test/testsuite-example.hex      \
-       test/testsuite-example.png      \
-       test/testsuite-example.text     \
-       test/testsuite.sh
-
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-       @for dep in $?; do \
-         case '$(am__configure_deps)' in \
-           *$$dep*) \
-             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-               && { if test -f $@; then exit 0; else break; fi; }; \
-             exit 1;; \
-         esac; \
-       done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu iec16022-0.2.1/Makefile'; \
-       $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu iec16022-0.2.1/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-       @case '$?' in \
-         *config.status*) \
-           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-         *) \
-           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-       esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-noinstLTLIBRARIES:
-       -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
-       @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
-         dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-         test "$$dir" != "$$p" || dir=.; \
-         echo "rm -f \"$${dir}/so_locations\""; \
-         rm -f "$${dir}/so_locations"; \
-       done
-libiec16022.la: $(libiec16022_la_OBJECTS) $(libiec16022_la_DEPENDENCIES) 
-       $(LINK)  $(libiec16022_la_OBJECTS) $(libiec16022_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
-       -rm -f *.$(OBJEXT)
-
-distclean-compile:
-       -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iec16022ecc200.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reedsol.Plo@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
-
-.c.obj:
-@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@   $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
-       -rm -f *.lo
-
-clean-libtool:
-       -rm -rf .libs _libs
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
-       mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
-       set x; \
-       here=`pwd`; \
-       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
-       shift; \
-       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-         test -n "$$unique" || unique=$$empty_fix; \
-         if test $$# -gt 0; then \
-           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-             "$$@" $$unique; \
-         else \
-           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-             $$unique; \
-         fi; \
-       fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
-       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
-       test -z "$(CTAGS_ARGS)$$unique" \
-         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-            $$unique
-
-GTAGS:
-       here=`$(am__cd) $(top_builddir) && pwd` \
-         && $(am__cd) $(top_srcdir) \
-         && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
-       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-       list='$(DISTFILES)'; \
-         dist_files=`for file in $$list; do echo $$file; done | \
-         sed -e "s|^$$srcdirstrip/||;t" \
-             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-       case $$dist_files in \
-         */*) $(MKDIR_P) `echo "$$dist_files" | \
-                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-                          sort -u` ;; \
-       esac; \
-       for file in $$dist_files; do \
-         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         if test -d $$d/$$file; then \
-           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-           if test -d "$(distdir)/$$file"; then \
-             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-           fi; \
-           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-           fi; \
-           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-         else \
-           test -f "$(distdir)/$$file" \
-           || cp -p $$d/$$file "$(distdir)/$$file" \
-           || exit 1; \
-         fi; \
-       done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES)
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-       @echo "This command is intended for maintainers to use"
-       @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
-       mostlyclean-am
-
-distclean: distclean-am
-       -rm -rf ./$(DEPDIR)
-       -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-       distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-       -rm -rf ./$(DEPDIR)
-       -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-       mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-       clean-libtool clean-noinstLTLIBRARIES ctags distclean \
-       distclean-compile distclean-generic distclean-libtool \
-       distclean-tags distdir dvi dvi-am html html-am info info-am \
-       install install-am install-data install-data-am install-dvi \
-       install-dvi-am install-exec install-exec-am install-html \
-       install-html-am install-info install-info-am install-man \
-       install-pdf install-pdf-am install-ps install-ps-am \
-       install-strip installcheck installcheck-am installdirs \
-       maintainer-clean maintainer-clean-generic mostlyclean \
-       mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-       pdf pdf-am ps ps-am tags uninstall uninstall-am
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/iec16022-0.2.1/README b/iec16022-0.2.1/README
deleted file mode 100644 (file)
index 072c0ae..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-With iec16022 you can produce 2d barcodes. Also known as Data Matrix. These
-barcodes are defined in ISO/IEC 16022.
-
-The code was originally written by Andrews & Arnold Ltd. You can download this
-code from http://aa.gg/free/.
-The current maintainer of the code is Stefan Schmidt.
-
-Website:               http://www.datenfreihafen.org/projects/iec16022.html
-Maillinglist:  https://sirius.lasnet.de/mailman/listinfo/iec16022
-SVN repository:        https://svn.datenfreihafen.org/iec16022/
-
-
-Stefan Schmidt <stefan@datenfreihafen.org>
diff --git a/iec16022-0.2.1/README.glabels b/iec16022-0.2.1/README.glabels
deleted file mode 100644 (file)
index ad1dced..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-The following changes have been made to the stock iec16022 0.2.1 distribution
-to facilitate compilation with glabels:
-
-       Makefile renamed to Makefile.dist
-       added Makefile.am, which is configured from ../configure.in
-
diff --git a/iec16022-0.2.1/TODO b/iec16022-0.2.1/TODO
deleted file mode 100644 (file)
index 6c0a97b..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-- Fix compiler warnings.
-- Test on 64bit, powerpc, arm, etc. Anyone?
-- Test stamp feature. Anyone?
-- Use autotools
-
-Some things to think about:
----------------------------
-- Use libpng?
-- Merge iec16022 in barcode?
diff --git a/iec16022-0.2.1/iec16022.1 b/iec16022-0.2.1/iec16022.1
deleted file mode 100644 (file)
index 681c3a7..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-.TH iec16022 1 2006-01-14 "iec16022 0.1"
-.SH NAME
-iec16022 \- program to generate 2d barcodes
-.SH SYNOPSIS
-.B iec16022
-.RI [ options ]
-.SH DESCRIPTION
-This manual page documents briefly the
-.B iec16022
-command.
-.PP
-.B iec16022
-generates 2d barcodes conforming to the ISO/IEC 16022 standard (which is
-also known as Data Matrix and Semacode).
-.SH OPTIONS
-These programs follow the usual GNU command line syntax, with long
-options starting with two dashes (`-').
-A summary of options is included below.
-.TP
-.B \-s, \-\-size WxH
-Sets the size of the generated barcode.
-.TP
-.B \-c, \-\-barcode text
-Specifies the text to be encoded.
-.TP
-.B \-\-ecc 000|050|080|100|140|200
-Sets the type of ecc to be used.
-.TP
-.B \-i, \-\-infile filename
-Read input data from file.
-.TP
-.B \-o, \-\-outfile filenmae
-Save output to file (instead of standard output).
-.TP
-.B \-f, \-\-format Text|EPS|Bin|Hex|Stamp|PNG
-Set the output type.
-.TP
-.B \-?, \-\-help
-Show summary of options.
-.TP
-.B \-\-usage
-Show short overview of options.
-.SH EXAMPLE
-To produce a datamatrix barcode for foobar in PNG format you need the following
-arguments:
-.TP
-.B iec16022 -f PNG -c foobar -o foobar.png
-.SH AUTHOR
-iec16022 was written by Adrian Kennard, Andrews & Arnold Ltd.
-.PP
-This manual page was written by Jan Luebbe <jluebbe@lasnet.de>,
-for the Debian project (but may be used by others).
diff --git a/iec16022-0.2.1/iec16022.c b/iec16022-0.2.1/iec16022.c
deleted file mode 100644 (file)
index 6fb7c30..0000000
+++ /dev/null
@@ -1,462 +0,0 @@
-/** 
- *
- * IEC16022 bar code generation
- * Adrian Kennard, Andrews & Arnold Ltd
- * with help from Cliff Hones on the RS coding
- *
- * (c) 2004 Adrian Kennard, Andrews & Arnold Ltd
- * (c) 2006 Stefan Schmidt <stefan@datenfreihafen.org>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- *
- */
-
-#define IEC16022_VERSION "0.2"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-#include <time.h>
-#include <popt.h>
-#include <malloc.h>
-#include "image.h"
-#include "iec16022ecc200.h"
-
- // simple checked response malloc
-void *safemalloc(int n)
-{
-       void *p = malloc(n);
-       if (!p) {
-               fprintf(stderr, "Malloc(%d) failed\n", n);
-               exit(1);
-       }
-       return p;
-}
-
-// hex dump - bottom left pixel first
-void dumphex(unsigned char *grid, int W, int H, unsigned char p)
-{
-       int c = 0, y;
-       for (y = 0; y < H; y++) {
-               int v = 0, x, b = 128;
-               for (x = 0; x < W; x++) {
-                       if (grid[y * W + x])
-                               v |= b;
-                       b >>= 1;
-                       if (!b) {
-                               printf("%02X", v ^ p);
-                               v = 0;
-                               b = 128;
-                               c++;
-                       }
-               }
-               if (b != 128) {
-                       printf("%02X", v ^ p);
-                       c++;
-               }
-               printf(" ");
-               c++;
-               if (c >= 80) {
-                       printf("\n");
-                       c = 0;
-               }
-       }
-       if (c)
-               printf("\n");
-}
-
-int main(int argc, const char *argv[])
-{
-       char c;
-       int W = 0, H = 0;
-       int ecc = 0;
-       int barcodelen = 0;
-       char *encoding = 0;
-       char *outfile = 0;
-       char *infile = 0;
-       char *barcode = 0;
-       char *format = "Text";
-       char *size = 0;
-       char *eccstr = 0;
-       int len = 0, maxlen = 0, ecclen = 0;
-       unsigned char *grid = 0;
-       poptContext optCon;     // context for parsing command-line options
-       const struct poptOption optionsTable[] = {
-               {
-                "size", 's', POPT_ARG_STRING, &size, 0, "Size", "WxH"},
-               {
-                "barcode", 'c', POPT_ARG_STRING, &barcode, 0, "Barcode",
-                "text"},
-               {
-                "ecc", 0, POPT_ARG_STRING, &eccstr, 0, "ECC",
-                "000/050/080/100/140/200"},
-               {
-                "infile", 'i', POPT_ARG_STRING, &infile, 0, "Barcode file",
-                "filename"},
-               {
-                "outfile", 'o', POPT_ARG_STRING, &outfile, 0,
-                "Output filename",
-                "filename"},
-               {
-                "encoding", 'e', POPT_ARG_STRING, &encoding, 0,
-                "Encoding template",
-                "[CTXEAB]* for ecc200 or 11/27/41/37/128/256"},
-               {
-                "format", 'f', POPT_ARGFLAG_SHOW_DEFAULT | POPT_ARG_STRING,
-                &format, 0,
-                "Output format", "Text/EPS/PNG/Bin/Hex/Stamp"},
-               POPT_AUTOHELP {
-                              NULL, 0, 0, NULL, 0}
-       };
-       optCon = poptGetContext(NULL, argc, argv, optionsTable, 0);
-       poptSetOtherOptionHelp(optCon, "[barcode]");
-       if ((c = poptGetNextOpt(optCon)) < -1) {
-               /* an error occurred during option processing */
-               fprintf(stderr, "%s: %s\n", poptBadOption(optCon,
-                                                         POPT_BADOPTION_NOALIAS),
-                       poptStrerror(c));
-               return 1;
-       }
-
-       if (poptPeekArg(optCon) && !barcode && !infile)
-               barcode = (char *)poptGetArg(optCon);
-       if (poptPeekArg(optCon) || !barcode && !infile || barcode && infile) {
-               fprintf(stderr, "Version: %s\n", IEC16022_VERSION);
-               poptPrintUsage(optCon, stderr, 0);
-               return -1;
-       }
-       if (outfile && !freopen(outfile, "w", stdout)) {
-               perror(outfile);
-               return 1;
-       }
-
-       if (infile) {           // read from file
-               FILE *f = fopen(infile, "rb");
-               barcode = safemalloc(4001);
-               if (!f) {
-                       perror(infile);
-                       return 1;
-               }
-               barcodelen = fread(barcode, 1, 4000, f);
-               if (barcodelen < 0) {
-                       perror(infile);
-                       return 1;
-               }
-               barcode[barcodelen] = 0;        // null terminate anyway
-               close(f);
-       } else
-               barcodelen = strlen(barcode);
-       // check parameters
-       if (size) {
-               char *x = strchr(size, 'x');
-               W = atoi(size);
-               if (x)
-                       H = atoi(x + 1);
-               if (!H)
-                       W = H;
-       }
-       if (eccstr)
-               ecc = atoi(eccstr);
-       if (W & 1) {            // odd size
-               if (W != H || W < 9 || W > 49) {
-                       fprintf(stderr, "Invalid size %dx%d\n", W, H);
-                       return 1;
-               }
-               if (!eccstr) {
-                       if (W >= 17)
-                               ecc = 140;
-                       else if (W >= 13)
-                               ecc = 100;
-                       else if (W >= 11)
-                               ecc = 80;
-                       else
-                               ecc = 0;
-               }
-               if (ecc && ecc != 50 && ecc != 80 && ecc != 100 && ecc != 140 ||
-                   ecc == 50 && W < 11 || ecc == 80 && W < 13 || ecc == 100
-                   && W < 13 || ecc == 140 && W < 17) {
-                       fprintf(stderr, "ECC%03d invalid for %dx%d\n", ecc, W,
-                               H);
-                       return 1;
-               }
-
-       } else if (W) {         // even size
-               if (W < H) {
-                       int t = W;
-                       W = H;
-                       H = t;
-               }
-               if (!eccstr)
-                       ecc = 200;
-               if (ecc != 200) {
-                       fprintf(stderr, "ECC%03d invalid for %dx%d\n", ecc, W,
-                               H);
-                       return 1;
-               }
-       }
-
-       else {                  // auto size
-               if (!eccstr)
-                       // default is even sizes only unless explicit ecc set to force odd
-                       // sizes
-                       ecc = 200;
-       }
-
-       if (tolower(*format) == 's') {  // special stamp format checks & defaults
-               if (!W)
-                       W = H = 32;
-               if (ecc != 200 || W != 32 || H != 32)
-                       fprintf(stderr, "Stamps must be 32x32\n");
-               if (encoding)
-                       fprintf(stderr, "Stamps should use auto encoding\n");
-               else {
-                       int n;
-                       for (n = 0; n < barcodelen && (barcode[n] == ' ' ||
-                                                      isdigit(barcode[n])
-                                                      || isupper(barcode[n]));
-                            n++) ;
-                       if (n < barcodelen)
-                               fprintf(stderr,
-                                       "Has invalid characters for a stamp\n");
-                       else {
-                               // Generate simplistic encoding rules as used by the windows app
-                               // TBA - does not always match the windows app...
-                               n = 0;
-                               encoding = safemalloc(barcodelen + 1);
-                               while (n < barcodelen) {
-                                       // ASCII
-                                       while (1) {
-                                               if (n == barcodelen
-                                                   || n + 3 <= barcodelen
-                                                   && (!isdigit(barcode[n])
-                                                       ||
-                                                       !isdigit(barcode
-                                                                [n + 1])))
-                                                       break;
-                                               encoding[n++] = 'A';
-                                               if (n < barcodelen
-                                                   && isdigit(barcode[n - 1])
-                                                   && isdigit(barcode[n]))
-                                                       encoding[n++] = 'A';
-                                       }
-                                       // C40
-                                       while (1) {
-                                               int r = 0;
-                                               while (n + r < barcodelen
-                                                      &&
-                                                      isdigit(barcode[n + r]))
-                                                       r++;
-                                               if (n + 3 > barcodelen
-                                                   || r >= 6)
-                                                       break;
-                                               encoding[n++] = 'C';
-                                               encoding[n++] = 'C';
-                                               encoding[n++] = 'C';
-                                       }
-                               }
-                               encoding[n] = 0;
-                               //fprintf (stderr, "%s\n%s\n", barcode, encoding);
-                       }
-               }
-       }
-       // processing stamps
-       if ((W & 1) || ecc < 200) {     // odd sizes
-               fprintf(stderr, "Not done odd sizes yet, sorry\n");
-       } else {                // even sizes
-               grid =
-                   iec16022ecc200(&W, &H, &encoding, barcodelen, barcode, &len,
-                                  &maxlen, &ecclen);
-       }
-
-       // output
-       if (!grid || !W) {
-               fprintf(stderr, "No barcode produced\n");
-               return 1;
-       }
-       switch (tolower(*format)) {
-       case 'i':               // info
-               printf("Size    : %dx%d\n", W, H);
-               printf("Encoded : %d of %d bytes with %d bytes of ecc\n", len,
-                      maxlen, ecclen);
-               printf("Barcode : %s\n", barcode);
-               printf("Encoding: %s\n", encoding);
-               break;
-       case 'h':               // hex
-               dumphex(grid, W, H, 0);
-               break;
-       case 'b':               // bin
-               {
-                       int y;
-                       for (y = 0; y < H; y++) {
-                               int v = 0, x, b = 128;
-                               for (x = 0; x < W; x++) {
-                                       if (grid[y * W + x])
-                                               v |= b;
-                                       b >>= 1;
-                                       if (!b) {
-                                               putchar(v);
-                                               v = 0;
-                                               b = 128;
-                                       }
-                               }
-                               if (b != 128)
-                                       putchar(v);
-                       }
-               }
-               break;
-       case 't':               // text
-               {
-                       int y;
-                       for (y = H - 1; y >= 0; y--) {
-                               int x;
-                               for (x = 0; x < W; x++)
-                                       printf("%c",
-                                              grid[W * y + x] ? '*' : ' ');
-                               printf("\n");
-                       }
-               }
-               break;
-       case 'e':               // EPS
-               printf("%%!PS-Adobe-3.0 EPSF-3.0\n"
-                      "%%%%Creator: IEC16022 barcode/stamp generator\n"
-                      "%%%%BarcodeData: %s\n" "%%%%BarcodeSize: %dx%d\n"
-                      "%%%%BarcodeFormat: ECC200\n"
-                      "%%%%DocumentData: Clean7Bit\n" "%%%%LanguageLevel: 1\n"
-                      "%%%%Pages: 1\n" "%%%%BoundingBox: 0 0 %d %d\n"
-                      "%%%%EndComments\n" "%%%%Page: 1 1\n"
-                      "%d %d 1[1 0 0 1 -1 -1]{<\n", barcode, W, H, W + 2,
-                      H + 2, W, H);
-               dumphex(grid, W, H, 0xFF);
-               printf(">}image\n");
-               break;
-       case 's':               // Stamp
-               {
-                       char temp[74], c;
-                       time_t now;
-                       struct tm t = {
-                               0
-                       };
-                       int v;
-                       if (barcodelen < 74) {
-                               fprintf(stderr,
-                                       "Does not look like a stamp barcode\n");
-                               return 1;
-                       }
-                       memcpy(temp, barcode, 74);
-                       c = temp[5];
-                       temp[56] = 0;
-                       t.tm_year = atoi(temp + 54) + 100;
-                       t.tm_mday = 1;
-                       now = mktime(&t);
-                       temp[54] = 0;
-                       now += 86400 * (atoi(temp + 51) - 1);
-                       t = *gmtime(&now);
-                       temp[46] = 0;
-                       v = atoi(temp + 36);
-                       printf("%%!PS-Adobe-3.0 EPSF-3.0\n"
-                              "%%%%Creator: IEC16022 barcode/stamp generator\n"
-                              "%%%%BarcodeData: %s\n" "%%%%BarcodeSize: %dx%d\n" "%%%%DocumentData: Clean7Bit\n" "%%%%LanguageLevel: 1\n" "%%%%Pages: 1\n" "%%%%BoundingBox: 0 0 190 80\n" "%%%%EndComments\n" "%%%%Page: 1 1\n" "10 dict begin/f{findfont exch scalefont \
-                                setfont}bind def/rm/rmoveto load def/m/moveto load \
-                                def/rl/rlineto load def\n" "/l/lineto load def/cp/closepath load def/c{dup stringwidth \
-                                pop -2 div 0 rmoveto show}bind def\n" "gsave 72 25.4 div dup scale 0 0 m 67 0 rl 0 28 rl -67 0 rl \
-                                cp clip 1 setgray fill 0 setgray 0.5 0 translate 0.3 \
-                                setlinewidth\n" "32 32 1[2 0 0 2 0 -11]{<\n", barcode, W, H);
-                       dumphex(grid, W, H, 0xFF);
-                       printf(">}image\n"
-                              "3.25/Helvetica-Bold f 8 25.3 m(\\243%d.%02d)c\n"
-                              "2.6/Helvetica f 8 22.3 m(%.4s %.4s)c\n"
-                              "1.5/Helvetica f 8 3.3 m(POST BY)c\n"
-                              "3.3/Helvetica f 8 0.25 m(%02d.%02d.%02d)c\n",
-                              v / 100, v % 100, temp + 6, temp + 10, t.tm_mday,
-                              t.tm_mon + 1, t.tm_year % 100);
-                       if (c == '1' || c == '2' || c == 'A' || c == 'S') {
-                               if (c == '2')
-                                       printf
-                                           ("42 0 m 10 0 rl 0 28 rl -10 0 rl cp 57 0 m 5 0 rl 0 \
-                                          28 rl -5 0 rl cp");
-                               else
-                                       printf
-                                           ("42 0 m 5 0 rl 0 28 rl -5 0 rl cp 52 0 m 10 0 rl 0 \
-                                          28 rl -10 0 rl cp");
-                               printf
-                                   (" 21 0 m 16 0 rl 0 28 rl -16 0 rl cp fill\n"
-                                    "21.3 0.3 m 15.4 0 rl 0 13 rl -15.4 0 rl cp 1 setgray \
-                                       fill gsave 21.3 0.3 15.4 27.4 rectclip newpath\n");
-                               switch (c) {
-                               case '1':
-                                       printf
-                                           ("27/Helvetica-Bold f 27 8.7 m(1)show grestore 0 setgray \
-                                  1.5/Helvetica-Bold f 22 3.3 m(POSTAGE PAID GB)show \
-                                  1.7/Helvetica f 29 1.5 m(DumbStamp.co.uk)c\n");
-                                       break;
-                               case '2':
-                                       printf
-                                           ("21/Helvetica-Bold f 23.5 13 m(2)1.25 1 scale show grestore \
-                                  0 setgray 1.5/Helvetica-Bold f 22 3.3 \
-                                  m(POSTAGE PAID GB)show 1.7/Helvetica f 29 1.5 \
-                                  m(DumbStamp.co.uk)c\n");
-                                       break;
-                               case 'A':
-                                       printf
-                                           ("16/Helvetica-Bold f 29 14.75 m 1.1 1 scale(A)c grestore 0 \
-                                  setgray 1.5/Helvetica-Bold f 22 3.3 m(POSTAGE PAID GB)show \
-                                  1.7/Helvetica f 22 1.5 m(Par Avion)show\n");
-                                       break;
-                               case 'S':
-                                       printf
-                                           ("10/Helvetica-Bold f 29 17 m(SU)c grestore 0 setgray \
-                                          1.5/Helvetica-Bold f 22 1.5 m(POSTAGE PAID GB)show\n");
-                                       break;
-                               }
-                               printf
-                                   ("2.3/Helvetica-Bold f 29 10 m(LOYAL MAIL)c\n");
-                       } else if (c == 'P') {  // Standard Parcels
-                               printf("21 0 m 41 0 rl 0 28 rl -41 0 rl cp fill\n" "37.7 0.3 m 24 0 rl 0 27.4 rl -24 0 rl cp 1 setgray fill \
-                                       gsave 21.3 0.3 16.4 27.4 rectclip newpath\n" "22.5/Helvetica-Bold f 37.75 -1.25 m 90 rotate(SP)show \
-                                       grestore 0 setgray\n"
-                                      "3.5/Helvetica-Bold f 49.7 21.5 m(LOYAL MAIL)c\n" "2.3/Helvetica-Bold f 49.7 7 m(POSTAGE PAID GB)c\n" "2.6/Helveica f 49.7 4.25 m(DumbStamp.co.uk)c\n");
-                       } else if (c == '3')
-                               printf("21.15 0.15 40.7 27.7 rectstroke\n"
-                                      "21 0 m 41 0 rl 0 5 rl -41 0 rl cp fill\n"
-                                      "0 1 2{0 1 18{dup 1.525 mul 22.9 add 24 3 index 1.525 mul \
-                                       add 3 -1 roll 9 add 29 div 0 360 arc fill}for pop}for\n" "50.5 23.07 m 11.5 0 rl 0 5 rl -11.5 0 rl cp fill\n"
-                                      "5.85/Helvetica f 23.7 15.6 m(Loyal Mail)show\n" "4.75/Helvetica-Bold f 24 11 m(special)show 4.9/Helvetica \
-                                       f(delivery)show\n" "gsave 1 setgray 3.2/Helvetica-Bold f 24 1.6 \
-                                       m(next day)show 26 10.15 m 2 0 rl stroke grestore\n" "21.15 9.9 m 53.8 9.9 l stroke 53.8 9.9 0.4 0 360 \
-                                       arc fill\n");
-                       printf("end grestore\n");
-               }
-               break;
-       case 'p':               // png
-               {
-                       int x, y;
-                       Image *i = ImageNew(W + 2, H + 2, 2);
-                       i->Colour[0] = 0xFFFFFF;
-                       i->Colour[1] = 0;
-                       for (y = 0; y < H; y++)
-                               for (x = 0; x < W; x++)
-                                       if (grid[y * W + x])
-                                               ImagePixel(i, x + 1, H - y) = 1;
-                       ImageWritePNG(i, fileno(stdout), 0, -1, barcode);
-                       ImageFree(i);
-               }
-               break;
-       default:
-               fprintf(stderr, "Unknown output format %s\n", format);
-               break;
-       }
-       return 0;
-}
diff --git a/iec16022-0.2.1/iec16022ecc200.c b/iec16022-0.2.1/iec16022ecc200.c
deleted file mode 100644 (file)
index 0b28db7..0000000
+++ /dev/null
@@ -1,963 +0,0 @@
-/** 
- *
- * IEC16022 bar code generation
- * Adrian Kennard, Andrews & Arnold Ltd
- * with help from Cliff Hones on the RS coding
- * 
- * (c) 2004 Adrian Kennard, Andrews & Arnold Ltd
- * (c) 2006 Stefan Schmidt <stefan@datenfreihafen.org>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-#include <time.h>
-#include <popt.h>
-#include <malloc.h>
-#include "reedsol.h"
-#include "iec16022ecc200.h"
-
-static struct ecc200matrix_s {
-       int H, W;
-       int FH, FW;
-       int bytes;
-       int datablock, rsblock;
-} ecc200matrix[] = {
-       10, 10, 10, 10, 3, 3, 5,        //
-           12, 12, 12, 12, 5, 5, 7,    //
-           8, 18, 8, 18, 5, 5, 7,      //
-           14, 14, 14, 14, 8, 8, 10,   //
-           8, 32, 8, 16, 10, 10, 11,   //
-           16, 16, 16, 16, 12, 12, 12, //
-           12, 26, 12, 26, 16, 16, 14, //
-           18, 18, 18, 18, 18, 18, 14, //
-           20, 20, 20, 20, 22, 22, 18, //
-           12, 36, 12, 18, 22, 22, 18, //
-           22, 22, 22, 22, 30, 30, 20, //
-           16, 36, 16, 18, 32, 32, 24, //
-           24, 24, 24, 24, 36, 36, 24, //
-           26, 26, 26, 26, 44, 44, 28, //
-           16, 48, 16, 24, 49, 49, 28, //
-           32, 32, 16, 16, 62, 62, 36, //
-           36, 36, 18, 18, 86, 86, 42, //
-           40, 40, 20, 20, 114, 114, 48,       //
-           44, 44, 22, 22, 144, 144, 56,       //
-           48, 48, 24, 24, 174, 174, 68,       //
-           52, 52, 26, 26, 204, 102, 42,       //
-           64, 64, 16, 16, 280, 140, 56,       //
-           72, 72, 18, 18, 368, 92, 36,        //
-           80, 80, 20, 20, 456, 114, 48,       //
-           88, 88, 22, 22, 576, 144, 56,       //
-           96, 96, 24, 24, 696, 174, 68,       //
-           104, 104, 26, 26, 816, 136, 56,     //
-           120, 120, 20, 20, 1050, 175, 68,    //
-           132, 132, 22, 22, 1304, 163, 62,    //
-           144, 144, 24, 24, 1558, 156, 62,    // 156*4+155*2
-           0                   // terminate
-};
-
- // simple checked response malloc
-static void *safemalloc(int n)
-{
-       void *p = malloc(n);
-       if (!p) {
-               fprintf(stderr, "Malloc(%d) failed\n", n);
-               exit(1);
-       }
-       return p;
-}
-
-// Annex M placement alorithm low level
-static void ecc200placementbit(int *array, int NR, int NC, int r, int c,
-                              int p, char b)
-{
-       if (r < 0) {
-               r += NR;
-               c += 4 - ((NR + 4) % 8);
-       }
-       if (c < 0) {
-               c += NC;
-               r += 4 - ((NC + 4) % 8);
-       }
-       array[r * NC + c] = (p << 3) + b;
-}
-
-static void ecc200placementblock(int *array, int NR, int NC, int r,
-                                int c, int p)
-{
-       ecc200placementbit(array, NR, NC, r - 2, c - 2, p, 7);
-       ecc200placementbit(array, NR, NC, r - 2, c - 1, p, 6);
-       ecc200placementbit(array, NR, NC, r - 1, c - 2, p, 5);
-       ecc200placementbit(array, NR, NC, r - 1, c - 1, p, 4);
-       ecc200placementbit(array, NR, NC, r - 1, c - 0, p, 3);
-       ecc200placementbit(array, NR, NC, r - 0, c - 2, p, 2);
-       ecc200placementbit(array, NR, NC, r - 0, c - 1, p, 1);
-       ecc200placementbit(array, NR, NC, r - 0, c - 0, p, 0);
-}
-
-static void ecc200placementcornerA(int *array, int NR, int NC, int p)
-{
-       ecc200placementbit(array, NR, NC, NR - 1, 0, p, 7);
-       ecc200placementbit(array, NR, NC, NR - 1, 1, p, 6);
-       ecc200placementbit(array, NR, NC, NR - 1, 2, p, 5);
-       ecc200placementbit(array, NR, NC, 0, NC - 2, p, 4);
-       ecc200placementbit(array, NR, NC, 0, NC - 1, p, 3);
-       ecc200placementbit(array, NR, NC, 1, NC - 1, p, 2);
-       ecc200placementbit(array, NR, NC, 2, NC - 1, p, 1);
-       ecc200placementbit(array, NR, NC, 3, NC - 1, p, 0);
-}
-
-static void ecc200placementcornerB(int *array, int NR, int NC, int p)
-{
-       ecc200placementbit(array, NR, NC, NR - 3, 0, p, 7);
-       ecc200placementbit(array, NR, NC, NR - 2, 0, p, 6);
-       ecc200placementbit(array, NR, NC, NR - 1, 0, p, 5);
-       ecc200placementbit(array, NR, NC, 0, NC - 4, p, 4);
-       ecc200placementbit(array, NR, NC, 0, NC - 3, p, 3);
-       ecc200placementbit(array, NR, NC, 0, NC - 2, p, 2);
-       ecc200placementbit(array, NR, NC, 0, NC - 1, p, 1);
-       ecc200placementbit(array, NR, NC, 1, NC - 1, p, 0);
-}
-
-static void ecc200placementcornerC(int *array, int NR, int NC, int p)
-{
-       ecc200placementbit(array, NR, NC, NR - 3, 0, p, 7);
-       ecc200placementbit(array, NR, NC, NR - 2, 0, p, 6);
-       ecc200placementbit(array, NR, NC, NR - 1, 0, p, 5);
-       ecc200placementbit(array, NR, NC, 0, NC - 2, p, 4);
-       ecc200placementbit(array, NR, NC, 0, NC - 1, p, 3);
-       ecc200placementbit(array, NR, NC, 1, NC - 1, p, 2);
-       ecc200placementbit(array, NR, NC, 2, NC - 1, p, 1);
-       ecc200placementbit(array, NR, NC, 3, NC - 1, p, 0);
-}
-
-static void ecc200placementcornerD(int *array, int NR, int NC, int p)
-{
-       ecc200placementbit(array, NR, NC, NR - 1, 0, p, 7);
-       ecc200placementbit(array, NR, NC, NR - 1, NC - 1, p, 6);
-       ecc200placementbit(array, NR, NC, 0, NC - 3, p, 5);
-       ecc200placementbit(array, NR, NC, 0, NC - 2, p, 4);
-       ecc200placementbit(array, NR, NC, 0, NC - 1, p, 3);
-       ecc200placementbit(array, NR, NC, 1, NC - 3, p, 2);
-       ecc200placementbit(array, NR, NC, 1, NC - 2, p, 1);
-       ecc200placementbit(array, NR, NC, 1, NC - 1, p, 0);
-}
-
-// Annex M placement alorithm main function
-static void ecc200placement(int *array, int NR, int NC)
-{
-       int r, c, p;
-       // invalidate
-       for (r = 0; r < NR; r++)
-               for (c = 0; c < NC; c++)
-                       array[r * NC + c] = 0;
-       // start
-       p = 1;
-       r = 4;
-       c = 0;
-       do {
-               // check corner
-               if (r == NR && !c)
-                       ecc200placementcornerA(array, NR, NC, p++);
-               if (r == NR - 2 && !c && NC % 4)
-                       ecc200placementcornerB(array, NR, NC, p++);
-               if (r == NR - 2 && !c && (NC % 8) == 4)
-                       ecc200placementcornerC(array, NR, NC, p++);
-               if (r == NR + 4 && c == 2 && !(NC % 8))
-                       ecc200placementcornerD(array, NR, NC, p++);
-               // up/right
-               do {
-                       if (r < NR && c >= 0 && !array[r * NC + c])
-                               ecc200placementblock(array, NR, NC, r, c, p++);
-                       r -= 2;
-                       c += 2;
-               }
-               while (r >= 0 && c < NC);
-               r++;
-               c += 3;
-               // down/left
-               do {
-                       if (r >= 0 && c < NC && !array[r * NC + c])
-                               ecc200placementblock(array, NR, NC, r, c, p++);
-                       r += 2;
-                       c -= 2;
-               }
-               while (r < NR && c >= 0);
-               r += 3;
-               c++;
-       }
-       while (r < NR || c < NC);
-       // unfilled corner
-       if (!array[NR * NC - 1])
-               array[NR * NC - 1] = array[NR * NC - NC - 2] = 1;
-}
-
-// calculate and append ecc code, and if necessary interleave
-static void ecc200(unsigned char *binary, int bytes, int datablock, int rsblock)
-{
-       int blocks = (bytes + 2) / datablock, b;
-       rs_init_gf(0x12d);
-       rs_init_code(rsblock, 1);
-       for (b = 0; b < blocks; b++) {
-               unsigned char buf[256], ecc[256];
-               int n, p = 0;
-               for (n = b; n < bytes; n += blocks)
-                       buf[p++] = binary[n];
-               rs_encode(p, buf, ecc);
-               p = rsblock - 1;        // comes back reversed
-               for (n = b; n < rsblock * blocks; n += blocks)
-                       binary[bytes + n] = ecc[p--];
-       }
-}
-
-/*
- * perform encoding for ecc200, source s len sl, to target t len tl, using 
- * optional encoding control string e return 1 if OK, 0 if failed. Does all 
- * necessary padding to tl
- */
-
-char ecc200encode(unsigned char *t, int tl, unsigned char *s, int sl,
-                 char *encoding, int *lenp)
-{
-       char enc = 'a';         // start in ASCII encoding mode
-       int tp = 0, sp = 0;
-       if (strlen(encoding) < sl) {
-               fprintf(stderr, "Encoding string too short\n");
-               return 0;
-       }
-       // do the encoding
-       while (sp < sl && tp < tl) {
-               char newenc = enc;      // suggest new encoding
-               if (tl - tp <= 1 && (enc == 'c' || enc == 't') || tl - tp <= 2
-                   && enc == 'x')
-                       enc = 'a';      // auto revert to ASCII
-               newenc = tolower(encoding[sp]);
-               switch (newenc) {       // encode character
-               case 'c':       // C40
-               case 't':       // Text
-               case 'x':       // X12
-                       {
-                               char out[6], p = 0;
-                               const char *e,
-                                   *s2 = "!\"#$%&'()*+,-./:;<=>?@[\\]_",
-                                   *s3 = 0;
-                               if (newenc == 'c') {
-                                       e = " 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
-                                       s3 = "`abcdefghijklmnopqrstuvwxyz{|}~\177";
-                               }
-                               if (newenc == 't') {
-                                       e = " 0123456789abcdefghijklmnopqrstuvwxyz";
-                                       s3 = "`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~\177";
-                               }
-                               if (newenc == 'x')
-                                       e = " 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\r*>";
-                               do {
-                                       unsigned char c = s[sp++];
-                                       char *w;
-                                       if (c & 0x80) {
-                                               if (newenc == 'x') {
-                                                       fprintf(stderr,
-                                                               "Cannot encode char 0x%02X in X12\n",
-                                                               c);
-                                                       return 0;
-                                               }
-                                               c &= 0x7f;
-                                               out[p++] = 1;
-                                               out[p++] = 30;
-                                       }
-                                       w = strchr(e, c);
-                                       if (w)
-                                               out[p++] = ((w - e) + 3) % 40;
-                                       else {
-                                               if (newenc == 'x') {
-                                                       fprintf(stderr,
-                                                               "Cannot encode char 0x%02X in X12\n",
-                                                               c);
-                                                       return 0;
-                                               }
-                                               if (c < 32) {   // shift 1
-                                                       out[p++] = 0;
-                                                       out[p++] = c;
-                                               } else {
-                                                       w = strchr(s2, c);
-                                                       if (w) {        // shift 2
-                                                               out[p++] = 1;
-                                                               out[p++] =
-                                                                   (w - s2);
-                                                       } else {
-                                                               w = strchr(s3,
-                                                                          c);
-                                                               if (w) {
-                                                                       out[p++]
-                                                                           = 2;
-                                                                       out[p++]
-                                                                           =
-                                                                           (w -
-                                                                            s3);
-                                                               } else {
-                                                                       fprintf
-                                                                           (stderr,
-                                                                            "Could not encode 0x%02X, should \
-                                                                       not happen\n", c);
-                                                                       return
-                                                                           0;
-                                                               }
-                                                       }
-                                               }
-                                       }
-                                       if (p == 2 && tp + 2 == tl && sp == sl)
-                                               out[p++] = 0;   // shift 1 pad at end
-                                       while (p >= 3) {
-                                               int v =
-                                                   out[0] * 1600 +
-                                                   out[1] * 40 + out[2] + 1;
-                                               if (enc != newenc) {
-                                                       if (enc == 'c'
-                                                           || enc == 't'
-                                                           || enc == 'x')
-                                                               t[tp++] = 254;  // escape C40/text/X12
-                                                       else if (enc == 'x')
-                                                               t[tp++] = 0x7C; // escape EDIFACT
-                                                       if (newenc == 'c')
-                                                               t[tp++] = 230;
-                                                       if (newenc == 't')
-                                                               t[tp++] = 239;
-                                                       if (newenc == 'x')
-                                                               t[tp++] = 238;
-                                                       enc = newenc;
-                                               }
-                                               t[tp++] = (v >> 8);
-                                               t[tp++] = (v & 0xFF);
-                                               p -= 3;
-                                               out[0] = out[3];
-                                               out[1] = out[4];
-                                               out[2] = out[5];
-                                       }
-                               }
-                               while (p && sp < sl);
-                       }
-                       break;
-               case 'e':       // EDIFACT
-                       {
-                               unsigned char out[4], p = 0;
-                               if (enc != newenc) {    // can only be from C40/Text/X12
-                                       t[tp++] = 254;
-                                       enc = 'a';
-                               }
-                               while (sp < sl && tolower(encoding[sp]) == 'e'
-                                      && p < 4)
-                                       out[p++] = s[sp++];
-                               if (p < 4) {
-                                       out[p++] = 0x1F;
-                                       enc = 'a';
-                               }       // termination
-                               t[tp] = ((s[0] & 0x3F) << 2);
-                               t[tp++] |= ((s[1] & 0x30) >> 4);
-                               t[tp] = ((s[1] & 0x0F) << 4);
-                               if (p == 2)
-                                       tp++;
-                               else {
-                                       t[tp++] |= ((s[2] & 0x3C) >> 2);
-                                       t[tp] = ((s[2] & 0x03) << 6);
-                                       t[tp++] |= (s[3] & 0x3F);
-                               }
-                       }
-                       break;
-               case 'a':       // ASCII
-                       if (enc != newenc) {
-                               if (enc == 'c' || enc == 't' || enc == 'x')
-                                       t[tp++] = 254;  // escape C40/text/X12
-                               else
-                                       t[tp++] = 0x7C; // escape EDIFACT
-                       }
-                       enc = 'a';
-                       if (sl - sp >= 2 && isdigit(s[sp])
-                           && isdigit(s[sp + 1])) {
-                               t[tp++] =
-                                   (s[sp] - '0') * 10 + s[sp + 1] - '0' + 130;
-                               sp += 2;
-                       } else if (s[sp] > 127) {
-                               t[tp++] = 235;
-                               t[tp++] = s[sp++] - 127;
-                       } else
-                               t[tp++] = s[sp++] + 1;
-                       break;
-               case 'b':       // Binary
-                       {
-                               int l = 0;      // how much to encode
-                               if (encoding) {
-                                       int p;
-                                       for (p = sp;
-                                            p < sl
-                                            && tolower(encoding[p]) == 'b';
-                                            p++)
-                                               l++;
-                               }
-                               t[tp++] = 231;  // base256
-                               if (l < 250)
-                                       t[tp++] = l;
-                               else {
-                                       t[tp++] = 249 + (l / 250);
-                                       t[tp++] = (l % 250);
-                               }
-                               while (l-- && tp < tl) {
-                                       t[tp] = s[sp++] + (((tp + 1) * 149) % 255) + 1; // see annex H
-                                       tp++;
-                               }
-                               enc = 'a';      // reverse to ASCII at end
-                       }
-                       break;
-               default:
-                       fprintf(stderr, "Unknown encoding %c\n", newenc);
-                       return 0;       // failed
-               }
-       }
-       if (lenp)
-               *lenp = tp;
-       if (tp < tl && enc != 'a') {
-               if (enc == 'c' || enc == 'x' || enc == 't')
-                       t[tp++] = 254;  // escape X12/C40/Text
-               else
-                       t[tp++] = 0x7C; // escape EDIFACT
-       }
-       if (tp < tl)
-               t[tp++] = 129;  // pad
-       while (tp < tl) {       // more padding
-               int v = 129 + (((tp + 1) * 149) % 253) + 1;     // see Annex H
-               if (v > 254)
-                       v -= 254;
-               t[tp++] = v;
-       }
-       if (tp > tl || sp < sl)
-               return 0;       // did not fit
-       /*
-        * for (tp = 0; tp < tl; tp++) fprintf (stderr, "%02X ", t[tp]); \
-        * fprintf (stderr, "\n");
-        */
-       return 1;               // OK 
-}
-
-// Auto encoding format functions
-static char encchr[] = "ACTXEB";
-
-enum {
-       E_ASCII,
-       E_C40,
-       E_TEXT,
-       E_X12,
-       E_EDIFACT,
-       E_BINARY,
-       E_MAX
-};
-
-unsigned char switchcost[E_MAX][E_MAX] = {
-       0, 1, 1, 1, 1, 2,       // From E_ASCII
-       1, 0, 2, 2, 2, 3,       // From E_C40
-       1, 2, 0, 2, 2, 3,       // From E_TEXT
-       1, 2, 2, 0, 2, 3,       // From E_X12
-       1, 2, 2, 2, 0, 3,       // From E_EDIFACT
-       0, 1, 1, 1, 1, 0,       // From E_BINARY
-};
-
-/*
- * Creates a encoding list (malloc)
- * returns encoding string
- * if lenp not null, target len stored
- * if error, null returned
- * if exact specified, then assumes shortcuts applicable for exact fit 
- * in target
- * 1. No unlatch to return to ASCII for last encoded byte after C40 or 
- * Text or X12
- * 2. No unlatch to return to ASCII for last 1 or 2 encoded bytes after 
- * EDIFACT
- * 3. Final C40 or text encoding exactly in last 2 bytes can have a shift 
- * 0 to pad to make a tripple
- * Only use the encoding from an exact request if the len matches the target, 
- * otherwise free the result and try again with exact=0
- */
-
-static char *encmake(int l, unsigned char *s, int *lenp, char exact)
-{
-       char *encoding = 0;
-       int p = l;
-       char e;
-       struct {
-               // number of bytes of source that can be encoded in a row at this point
-               // using this encoding mode
-               short s;
-               // number of bytes of target generated encoding from this point to end if
-               // already in this encoding mode
-               short t;
-       } enc[MAXBARCODE][E_MAX];
-       memset(&enc, 0, sizeof(enc));
-       if (!l)
-               return "";      // no length
-       if (l > MAXBARCODE)
-               return 0;       // not valid
-       while (p--) {
-               char b = 0, sub;
-               int sl, tl, bl, t;
-               // consider each encoding from this point
-               // ASCII
-               sl = tl = 1;
-               if (isdigit(s[p]) && p + 1 < l && isdigit(s[p + 1]))
-                       sl = 2; // double digit
-               else if (s[p] & 0x80)
-                       tl = 2; // high shifted
-               bl = 0;
-               if (p + sl < l)
-                       for (e = 0; e < E_MAX; e++)
-                               if (enc[p + sl][e].t && ((t = enc[p + sl][e].t +
-                                                         switchcost[E_ASCII]
-                                                         [e]) < bl || !bl)) {
-                                       bl = t;
-                                       b = e;
-                               }
-               enc[p][E_ASCII].t = tl + bl;
-               enc[p][E_ASCII].s = sl;
-               if (bl && b == E_ASCII)
-                       enc[p][b].s += enc[p + sl][b].s;
-               // C40
-               sub = tl = sl = 0;
-               do {
-                       unsigned char c = s[p + sl++];
-                       if (c & 0x80) { // shift + upper
-                               sub += 2;
-                               c &= 0x7F;
-                       }
-                       if (c != ' ' && !isdigit(c) && !isupper(c))
-                               sub++;  // shift
-                       sub++;
-                       while (sub >= 3) {
-                               sub -= 3;
-                               tl += 2;
-                       }
-               } while (sub && p + sl < l);
-               if (exact && sub == 2 && p + sl == l) {
-                       // special case, can encode last block with shift 0 at end (Is this 
-                       // valid when not end of target buffer?)
-                       sub = 0;
-                       tl += 2;
-               }
-               if (!sub) {     // can encode C40
-                       bl = 0;
-                       if (p + sl < l)
-                               for (e = 0; e < E_MAX; e++)
-                                       if (enc[p + sl][e].t
-                                           &&
-                                           ((t =
-                                             enc[p + sl][e].t +
-                                             switchcost[E_C40][e]) < bl
-                                            || !bl)) {
-                                               bl = t;
-                                               b = e;
-                                       }
-                       if (exact && enc[p + sl][E_ASCII].t == 1 && 1 < bl) {
-                               // special case, switch to ASCII for last bytes
-                               bl = 1;
-                               b = E_ASCII;
-                       }
-                       enc[p][E_C40].t = tl + bl;
-                       enc[p][E_C40].s = sl;
-                       if (bl && b == E_C40)
-                               enc[p][b].s += enc[p + sl][b].s;
-               }
-               // Text
-               sub = tl = sl = 0;
-               do {
-                       unsigned char c = s[p + sl++];
-                       if (c & 0x80) { // shift + upper
-                               sub += 2;
-                               c &= 0x7F;
-                       }
-                       if (c != ' ' && !isdigit(c) && !islower(c))
-                               sub++;  // shift
-                       sub++;
-                       while (sub >= 3) {
-                               sub -= 3;
-                               tl += 2;
-                       }
-               } while (sub && p + sl < l);
-               if (exact && sub == 2 && p + sl == l) {
-                       // special case, can encode last block with shift 0 at end (Is this 
-                       // valid when not end of target buffer?)
-                       sub = 0;
-                       tl += 2;
-               }
-               if (!sub && sl) {       // can encode Text
-                       bl = 0;
-                       if (p + sl < l)
-                               for (e = 0; e < E_MAX; e++)
-                                       if (enc[p + sl][e].t
-                                           &&
-                                           ((t =
-                                             enc[p + sl][e].t +
-                                             switchcost[E_TEXT][e]) < bl
-                                            || !bl)) {
-                                               bl = t;
-                                               b = e;
-                                       }
-                       if (exact && enc[p + sl][E_ASCII].t == 1 && 1 < bl) {   // special case, switch to ASCII for last bytes
-                               bl = 1;
-                               b = E_ASCII;
-                       }
-                       enc[p][E_TEXT].t = tl + bl;
-                       enc[p][E_TEXT].s = sl;
-                       if (bl && b == E_TEXT)
-                               enc[p][b].s += enc[p + sl][b].s;
-               }
-               // X12
-               sub = tl = sl = 0;
-               do {
-                       unsigned char c = s[p + sl++];
-                       if (c != 13 && c != '*' && c != '>' && c != ' '
-                           && !isdigit(c) && !isupper(c)) {
-                               sl = 0;
-                               break;
-                       }
-                       sub++;
-                       while (sub >= 3) {
-                               sub -= 3;
-                               tl += 2;
-                       }
-               } while (sub && p + sl < l);
-               if (!sub && sl) {       // can encode X12
-                       bl = 0;
-                       if (p + sl < l)
-                               for (e = 0; e < E_MAX; e++)
-                                       if (enc[p + sl][e].t
-                                           &&
-                                           ((t =
-                                             enc[p + sl][e].t +
-                                             switchcost[E_X12][e]) < bl
-                                            || !bl)) {
-                                               bl = t;
-                                               b = e;
-                                       }
-                       if (exact && enc[p + sl][E_ASCII].t == 1 && 1 < bl) {
-                               // special case, switch to ASCII for last bytes
-                               bl = 1;
-                               b = E_ASCII;
-                       }
-                       enc[p][E_X12].t = tl + bl;
-                       enc[p][E_X12].s = sl;
-                       if (bl && b == E_X12)
-                               enc[p][b].s += enc[p + sl][b].s;
-               }
-               // EDIFACT
-               sl = bl = 0;
-               if (s[p + 0] >= 32 && s[p + 0] <= 94) { // can encode 1
-                       char bs = 0;
-                       if (p + 1 == l && (!bl || bl < 2)) {
-                               bl = 2;
-                               bs = 1;
-                       } else
-                               for (e = 0; e < E_MAX; e++)
-                                       if (e != E_EDIFACT && enc[p + 1][e].t
-                                           &&
-                                           ((t =
-                                             2 + enc[p + 1][e].t +
-                                             switchcost[E_ASCII][e])
-                                            < bl || !bl))      // E_ASCII as allowed for unlatch
-                                       {
-                                               bs = 1;
-                                               bl = t;
-                                               b = e;
-                                       }
-                       if (p + 1 < l && s[p + 1] >= 32 && s[p + 1] <= 94) {    // can encode 2
-                               if (p + 2 == l && (!bl || bl < 2)) {
-                                       bl = 3;
-                                       bs = 2;
-                               } else
-                                       for (e = 0; e < E_MAX; e++)
-                                               if (e != E_EDIFACT
-                                                   && enc[p + 2][e].t
-                                                   &&
-                                                   ((t =
-                                                     3 + enc[p + 2][e].t +
-                                                     switchcost[E_ASCII][e])
-                                                    < bl || !bl))      // E_ASCII as allowed for unlatch
-                                               {
-                                                       bs = 2;
-                                                       bl = t;
-                                                       b = e;
-                                               }
-                               if (p + 2 < l && s[p + 2] >= 32 && s[p + 2] <= 94) {    // can encode 3
-                                       if (p + 3 == l && (!bl || bl < 3)) {
-                                               bl = 3;
-                                               bs = 3;
-                                       } else
-                                               for (e = 0; e < E_MAX; e++)
-                                                       if (e != E_EDIFACT
-                                                           && enc[p + 3][e].t
-                                                           &&
-                                                           ((t =
-                                                             3 + enc[p +
-                                                                     3][e].t +
-                                                             switchcost
-                                                             [E_ASCII][e])
-                                                            < bl || !bl))      // E_ASCII as allowed for unlatch
-                                                       {
-                                                               bs = 3;
-                                                               bl = t;
-                                                               b = e;
-                                                       }
-                                       if (p + 4 < l && s[p + 3] >= 32 && s[p + 3] <= 94) {    // can encode 4
-                                               if (p + 4 == l
-                                                   && (!bl || bl < 3)) {
-                                                       bl = 3;
-                                                       bs = 4;
-                                               } else {
-                                                       for (e = 0; e < E_MAX;
-                                                            e++)
-                                                               if (enc[p + 4]
-                                                                   [e].t
-                                                                   &&
-                                                                   ((t =
-                                                                     3 +
-                                                                     enc[p +
-                                                                         4][e].
-                                                                     t +
-                                                                     switchcost
-                                                                     [E_EDIFACT]
-                                                                     [e]) < bl
-                                                                    || !bl)) {
-                                                                       bs = 4;
-                                                                       bl = t;
-                                                                       b = e;
-                                                               }
-                                                       if (exact
-                                                           && enc[p +
-                                                                  4][E_ASCII].t
-                                                           && enc[p +
-                                                                  4][E_ASCII].
-                                                           t <= 2
-                                                           && (t =
-                                                               3 + enc[p +
-                                                                       4]
-                                                               [E_ASCII].t) <
-                                                           bl) {
-                                                               // special case, switch to ASCII for last 1 ot two bytes
-                                                               bs = 4;
-                                                               bl = t;
-                                                               b = E_ASCII;
-                                                       }
-                                               }
-                                       }
-                               }
-                       }
-                       enc[p][E_EDIFACT].t = bl;
-                       enc[p][E_EDIFACT].s = bs;
-                       if (bl && b == E_EDIFACT)
-                               enc[p][b].s += enc[p + bs][b].s;
-               }
-               // Binary
-               bl = 0;
-               for (e = 0; e < E_MAX; e++)
-                       if (enc[p + 1][e].t
-                           &&
-                           ((t =
-                             enc[p + 1][e].t + switchcost[E_BINARY][e] +
-                             ((e == E_BINARY
-                               && enc[p + 1][e].t == 249) ? 1 : 0))
-                            < bl || !bl)) {
-                               bl = t;
-                               b = e;
-                       }
-               enc[p][E_BINARY].t = 1 + bl;
-               enc[p][E_BINARY].s = 1;
-               if (bl && b == E_BINARY)
-                       enc[p][b].s += enc[p + 1][b].s;
-               /*
-                * fprintf (stderr, "%d:", p); for (e = 0; e < E_MAX; e++) fprintf \
-                * (stderr, " %c*%d/%d", encchr[e], enc[p][e].s, enc[p][e].t); \
-                * fprintf (stderr, "\n");
-                */
-       }
-       encoding = safemalloc(l + 1);
-       p = 0;
-       {
-               char cur = E_ASCII;     // starts ASCII
-               while (p < l) {
-                       int t, m = 0;
-                       char b = 0;
-                       for (e = 0; e < E_MAX; e++)
-                               if (enc[p][e].t
-                                   && ((t = enc[p][e].t + switchcost[cur][e]) <
-                                       m || t == m && e == cur || !m)) {
-                                       b = e;
-                                       m = t;
-                               }
-                       cur = b;
-                       m = enc[p][b].s;
-                       if (!p && lenp)
-                               *lenp = enc[p][b].t;
-                       while (p < l && m--)
-                               encoding[p++] = encchr[b];
-               }
-       }
-       encoding[p] = 0;
-       return encoding;
-}
-
-/*
- * Main encoding function
- * Returns the grid (malloced) containing the matrix. L corner at 0,0.
- * Takes suggested size in *Wptr, *Hptr, or 0,0. Fills in actual size.
- * Takes barcodelen and barcode to be encoded
- * Note, if *encodingptr is null, then fills with auto picked (malloced) 
- * encoding
- * If lenp not null, then the length of encoded data before any final 
- * unlatch or pad is stored
- * If maxp not null, then the max storage of this size code is stored
- * If eccp not null, then the number of ecc bytes used in this size is 
- * stored
- * Returns 0 on error (writes to stderr with details).
- */
-
-unsigned char *iec16022ecc200(int *Wptr, int *Hptr, char **encodingptr,
-                             int barcodelen, unsigned char *barcode,
-                             int *lenp, int *maxp, int *eccp)
-{
-       unsigned char binary[3000];     // encoded raw data and ecc to place in barcode
-       int W = 0, H = 0;
-       char *encoding = 0;
-       unsigned char *grid = 0;
-       struct ecc200matrix_s *matrix;
-       memset(binary, 0, sizeof(binary));
-       if (encodingptr)
-               encoding = *encodingptr;
-       if (Wptr)
-               W = *Wptr;
-       if (Hptr)
-               H = *Hptr;
-
-       // encoding
-       if (W) {                // known size
-               for (matrix = ecc200matrix; matrix->W && (matrix->W != W ||
-                                                         matrix->H != H);
-                    matrix++) ;
-               if (!matrix->W) {
-                       fprintf(stderr, "Invalid size %dx%d\n", W, H);
-                       return 0;
-               }
-               if (!encoding) {
-                       int len;
-                       char *e = encmake(barcodelen, barcode, &len, 1);
-                       if (e && len != matrix->bytes) {        // try not an exact fit
-                               free(e);
-                               e = encmake(barcodelen, barcode, &len, 0);
-                               if (len > matrix->bytes) {
-                                       fprintf(stderr,
-                                               "Cannot make barcode fit %dx%d\n",
-                                               W, H);
-                                       return 0;
-                               }
-                       }
-                       encoding = e;
-               }
-       } else {
-               // find a suitable encoding
-               if (encoding == NULL)
-                       encoding = encmake(barcodelen, barcode, NULL, 1);
-
-               if (encoding) { // find one that fits chosen encoding
-                       for (matrix = ecc200matrix; matrix->W; matrix++)
-                               if (ecc200encode
-                                   (binary, matrix->bytes, barcode, barcodelen,
-                                    encoding, 0))
-                                       break;
-               } else {
-                       int len;
-                       char *e;
-                       e = encmake(barcodelen, barcode, &len, 1);
-                       for (matrix = ecc200matrix;
-                            matrix->W && matrix->bytes != len; matrix++) ;
-                       if (e && !matrix->W) {  // try for non exact fit
-                               free(e);
-                               e = encmake(barcodelen, barcode, &len, 0);
-                               for (matrix = ecc200matrix;
-                                    matrix->W && matrix->bytes < len;
-                                    matrix++) ;
-                       }
-                       encoding = e;
-               }
-               if (!matrix->W) {
-                       fprintf(stderr,
-                               "Cannot find suitable size, barcode too long\n");
-                       return 0;
-               }
-               W = matrix->W;
-               H = matrix->H;
-       }
-       if (!ecc200encode(binary, matrix->bytes, barcode, barcodelen,
-                         encoding, lenp)) {
-               fprintf(stderr, "Barcode too long for %dx%d\n", W, H);
-               return 0;
-       }
-       // ecc code
-       ecc200(binary, matrix->bytes, matrix->datablock, matrix->rsblock);
-       {                       // placement
-               int x, y, NC, NR, *places;
-               NC = W - 2 * (W / matrix->FW);
-               NR = H - 2 * (H / matrix->FH);
-               places = safemalloc(NC * NR * sizeof(int));
-               ecc200placement(places, NR, NC);
-               grid = safemalloc(W * H);
-               memset(grid, 0, W * H);
-               for (y = 0; y < H; y += matrix->FH) {
-                       for (x = 0; x < W; x++)
-                               grid[y * W + x] = 1;
-                       for (x = 0; x < W; x += 2)
-                               grid[(y + matrix->FH - 1) * W + x] = 1;
-               }
-               for (x = 0; x < W; x += matrix->FW) {
-                       for (y = 0; y < H; y++)
-                               grid[y * W + x] = 1;
-                       for (y = 0; y < H; y += 2)
-                               grid[y * W + x + matrix->FW - 1] = 1;
-               }
-               for (y = 0; y < NR; y++) {
-                       for (x = 0; x < NC; x++) {
-                               int v = places[(NR - y - 1) * NC + x];
-                               //fprintf (stderr, "%4d", v);
-                               if (v == 1 || v > 7
-                                   && (binary[(v >> 3) - 1] & (1 << (v & 7))))
-                                       grid[(1 + y +
-                                             2 * (y / (matrix->FH - 2))) * W +
-                                            1 + x +
-                                            2 * (x / (matrix->FW - 2))] = 1;
-                       }
-                       //fprintf (stderr, "\n");
-               }
-               free(places);
-       }
-       if (Wptr)
-               *Wptr = W;
-       if (Hptr)
-               *Hptr = H;
-       if (encodingptr)
-               *encodingptr = encoding;
-       if (maxp)
-               *maxp = matrix->bytes;
-       if (eccp)
-               *eccp =
-                   (matrix->bytes + 2) / matrix->datablock * matrix->rsblock;
-       return grid;
-}
diff --git a/iec16022-0.2.1/iec16022ecc200.h b/iec16022-0.2.1/iec16022ecc200.h
deleted file mode 100644 (file)
index 08678f0..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/** 
- *
- * IEC16022 bar code generation
- * Adrian Kennard, Andrews & Arnold Ltd
- * with help from Cliff Hones on the RS coding
- *
- * (c) 2004 Adrian Kennard, Andrews & Arnold Ltd
- * (c) 2006 Stefan Schmidt <stefan@datenfreihafen.org>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- *
- *
- * Main encoding function
- * Returns the grid (malloced) containing the matrix. L corner at 0,0.
- * Takes suggested size in *Wptr, *Hptr, or 0,0. Fills in actual size.
- * Takes barcodelen and barcode to be encoded
- * Note, if *encodingptr is null, then fills with auto picked (malloced) 
- * encoding.
- * If lenp not null, then the length of encoded data before any final unlatch 
- * or pad is stored.
- * If maxp not null, then the max storage of this size code is stored
- * If eccp not null, then the number of ecc bytes used in this size is stored
- * Returns 0 on error (writes to stderr with details).
- *
- */
-
-#ifndef __IEC16022ECC200_H
-#define __IEC16022ECC200_H
-
-unsigned char *iec16022ecc200(int *Wptr, int *Hptr, char **encodingptr,
-                             int barcodelen, unsigned char *barcode,
-                             int *lenp, int *maxp, int *eccp);
-#define MAXBARCODE 3116
-
-#endif                         /* __IEC16022ECC200_H */
diff --git a/iec16022-0.2.1/image.c b/iec16022-0.2.1/image.c
deleted file mode 100644 (file)
index f7dc305..0000000
+++ /dev/null
@@ -1,668 +0,0 @@
-/** 
- *
- * Image handling tools, (c) AJK 2001-2005
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- *
- */
-
-#include <stdio.h>
-#include <malloc.h>
-#include <string.h>
-#include <ctype.h>
-#include "image.h"
-
-#define        INTERLACE
-#define CLEAR
-#define USEZLIB
-
-#ifdef USEZLIB
-#include <zlib.h>
-#endif
-
-unsigned char const bbc[] = {
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //  
-       0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x00, // !
-       0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, // "
-       0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36, 0x00, // #
-       0x0C, 0x3F, 0x68, 0x3E, 0x0B, 0x7E, 0x18, 0x00, // $
-       0x60, 0x66, 0x0C, 0x18, 0x30, 0x66, 0x06, 0x00, // %
-       0x38, 0x6C, 0x6C, 0x38, 0x6D, 0x66, 0x3B, 0x00, // &
-       0x0C, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, // '
-       0x0C, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0C, 0x00, // (
-       0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x18, 0x30, 0x00, // )
-       0x00, 0x18, 0x7E, 0x3C, 0x7E, 0x18, 0x00, 0x00, // *
-       0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, // +
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, // ,
-       0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, // -
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, // .
-       0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x00, 0x00, // /
-       0x18, 0x24, 0x66, 0x66, 0x66, 0x24, 0x18, 0x00, // 0 (non crossed)
-       0x18, 0x38, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00, // 1
-       0x3C, 0x66, 0x06, 0x0C, 0x18, 0x30, 0x7E, 0x00, // 2
-       0x3C, 0x66, 0x06, 0x1C, 0x06, 0x66, 0x3C, 0x00, // 3
-       0x0C, 0x1C, 0x3C, 0x6C, 0x7E, 0x0C, 0x0C, 0x00, // 4
-       0x7E, 0x60, 0x7C, 0x06, 0x06, 0x66, 0x3C, 0x00, // 5
-       0x1C, 0x30, 0x60, 0x7C, 0x66, 0x66, 0x3C, 0x00, // 6
-       0x7E, 0x06, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x00, // 7
-       0x3C, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x3C, 0x00, // 8
-       0x3C, 0x66, 0x66, 0x3E, 0x06, 0x0C, 0x38, 0x00, // 9
-       0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, // :
-       0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x30, // ;
-       0x0C, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0C, 0x00, // <
-       0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00, // =
-       0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x00, // >
-       0x3C, 0x66, 0x0C, 0x18, 0x18, 0x00, 0x18, 0x00, // ?
-       0x3C, 0x66, 0x6E, 0x6A, 0x6E, 0x60, 0x3C, 0x00, // @
-       0x3C, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00, // A
-       0x7C, 0x66, 0x66, 0x7C, 0x66, 0x66, 0x7C, 0x00, // B
-       0x3C, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3C, 0x00, // C
-       0x78, 0x6C, 0x66, 0x66, 0x66, 0x6C, 0x78, 0x00, // D
-       0x7E, 0x60, 0x60, 0x7C, 0x60, 0x60, 0x7E, 0x00, // E
-       0x7E, 0x60, 0x60, 0x7C, 0x60, 0x60, 0x60, 0x00, // F
-       0x3C, 0x66, 0x60, 0x6E, 0x66, 0x66, 0x3C, 0x00, // G
-       0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00, // H
-       0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00, // I
-       0x3E, 0x0C, 0x0C, 0x0C, 0x0C, 0x6C, 0x38, 0x00, // J
-       0x66, 0x6C, 0x78, 0x70, 0x78, 0x6C, 0x66, 0x00, // K
-       0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x00, // L
-       0x63, 0x77, 0x7F, 0x6B, 0x6B, 0x63, 0x63, 0x00, // M
-       0x66, 0x66, 0x76, 0x7E, 0x6E, 0x66, 0x66, 0x00, // N
-       0x3C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00, // O
-       0x7C, 0x66, 0x66, 0x7C, 0x60, 0x60, 0x60, 0x00, // P
-       0x3C, 0x66, 0x66, 0x66, 0x6A, 0x6C, 0x36, 0x00, // Q
-       0x7C, 0x66, 0x66, 0x7C, 0x6C, 0x66, 0x66, 0x00, // R
-       0x3C, 0x66, 0x60, 0x3C, 0x06, 0x66, 0x3C, 0x00, // S
-       0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, // T
-       0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00, // U
-       0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00, // V
-       0x63, 0x63, 0x6B, 0x6B, 0x7F, 0x77, 0x63, 0x00, // W
-       0x66, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x66, 0x00, // X
-       0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x00, // Y
-       0x7E, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x7E, 0x00, // Z
-       0x7C, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7C, 0x00, // [
-       0x00, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x00, 0x00, // 
-       0x3E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x3E, 0x00, // ]
-       0x18, 0x3C, 0x66, 0x42, 0x00, 0x00, 0x00, 0x00, // ^
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, // _
-       0x1C, 0x36, 0x30, 0x7C, 0x30, 0x30, 0x7E, 0x00, // `
-       0x00, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00, // a
-       0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x7C, 0x00, // b
-       0x00, 0x00, 0x3C, 0x66, 0x60, 0x66, 0x3C, 0x00, // c
-       0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x3E, 0x00, // d
-       0x00, 0x00, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00, // e
-       0x1C, 0x30, 0x30, 0x7C, 0x30, 0x30, 0x30, 0x00, // f
-       0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x3C, // g
-       0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x00, // h
-       0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x3C, 0x00, // i
-       0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x70, // j
-       0x60, 0x60, 0x66, 0x6C, 0x78, 0x6C, 0x66, 0x00, // k
-       0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, // l
-       0x00, 0x00, 0x36, 0x7F, 0x6B, 0x6B, 0x63, 0x00, // m
-       0x00, 0x00, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x00, // n
-       0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00, // o
-       0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x60, // p
-       0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x07, // q
-       0x00, 0x00, 0x6C, 0x76, 0x60, 0x60, 0x60, 0x00, // r
-       0x00, 0x00, 0x3E, 0x60, 0x3C, 0x06, 0x7C, 0x00, // s
-       0x30, 0x30, 0x7C, 0x30, 0x30, 0x30, 0x1C, 0x00, // t
-       0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00, // u
-       0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00, // v
-       0x00, 0x00, 0x63, 0x6B, 0x6B, 0x7F, 0x36, 0x00, // w
-       0x00, 0x00, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x00, // x
-       0x00, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x06, 0x3C, // y
-       0x00, 0x00, 0x7E, 0x0C, 0x18, 0x30, 0x7E, 0x00, // z
-       0x0C, 0x18, 0x18, 0x70, 0x18, 0x18, 0x0C, 0x00, // {
-       0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00, // |
-       0x30, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x30, 0x00, // }
-       0x31, 0x6B, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, // ~
-       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, //
-};
-
-const char smallc[] = " 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-+&()/[];%";
-unsigned char const small[] = {
-       0x00, 0x00, 0x00,       //
-       0x1F, 0x11, 0x1F,       //0
-       0x11, 0x1F, 0x10,       //1
-       0x1D, 0x15, 0x17,       //2
-       0x11, 0x15, 0x1F,       //3
-       0x07, 0x04, 0x1F,       //4
-       0x17, 0x15, 0x1D,       //5
-       0x1F, 0x15, 0x1D,       //6
-       0x01, 0x01, 0x1F,       //7
-       0x1F, 0x15, 0x1F,       //8
-       0x17, 0x15, 0x1F,       //9
-       0x1E, 0x05, 0x1E,       //A
-       0x1F, 0x15, 0x0A,       //B
-       0x0E, 0x11, 0x11,       //C
-       0x1F, 0x11, 0x0E,       //D
-       0x1F, 0x15, 0x11,       //E
-       0x1F, 0x05, 0x01,       //F
-       0x0E, 0x11, 0x19,       //G
-       0x1F, 0x04, 0x1F,       //H
-       0x11, 0x1F, 0x11,       //I
-       0x11, 0x0F, 0x01,       //J
-       0x1F, 0x04, 0x1B,       //K
-       0x1F, 0x10, 0x10,       //L
-       0x1F, 0x03, 0x1F,       //M
-       0x1F, 0x01, 0x1F,       //N
-       0x0E, 0x11, 0x0E,       //O
-       0x1F, 0x05, 0x02,       //P
-       0x0E, 0x19, 0x1E,       //Q
-       0x1F, 0x05, 0x1A,       //R
-       0x12, 0x15, 0x09,       //S
-       0x01, 0x1F, 0x01,       //T
-       0x1F, 0x10, 0x1F,       //U
-       0x0F, 0x10, 0x0F,       //V
-       0x1F, 0x18, 0x1F,       //W
-       0x1B, 0x04, 0x1B,       //X
-       0x03, 0x1C, 0x03,       //Y
-       0x19, 0x15, 0x13,       //Z
-       0x04, 0x04, 0x04,       //-
-       0x04, 0x0E, 0x04,       //+
-       0x04, 0x0E, 0x04,       //& (+)
-       0x00, 0x0E, 0x11,       //(
-       0x11, 0x0E, 0x00,       //)
-       0x08, 0x04, 0x02,       ///
-       0x00, 0x1F, 0x11,       //[
-       0x11, 0x1F, 0x00,       //]
-       0x10, 0x0A, 0x00,       //;
-       0x09, 0x04, 0x12,       //%
-};
-
-Image *ImageNew(int w, int h, int c)
-{                              // create a new blank image
-       Image *i;
-       if (!w || !h)
-               return 0;
-       i = malloc(sizeof(*i));
-       if (!i)
-               return 0;
-       memset(i, 0, sizeof(*i));
-       i->W = w;
-       i->L = w + 1;
-       i->H = h;
-       i->C = c;
-       i->Image = malloc((w + 1) * h);
-       if (!i->Image) {
-               free(i);
-               return 0;
-       }
-       memset(i->Image, 0, (w + 1) * h);
-       if (c) {
-               i->Colour = malloc(sizeof(Colour) * c);
-               if (!i->Colour) {
-                       free(i->Image);
-                       free(i);
-                       return 0;
-               }
-               memset(i->Colour, 0, sizeof(Colour) * c);
-       }
-       return i;
-}
-
-void ImageFree(Image * i)
-{                              // free an image
-       if (i) {
-               if (i->Image)
-                       free(i->Image);
-               if (i->Colour)
-                       free(i->Colour);
-               free(i);
-       }
-}
-
-#define        MAXLZW  4096
-typedef short LZW[256];
-typedef LZW LZWTree[MAXLZW];
-typedef struct strPrivate {
-       int cols;               // number of colours, power of 2
-       unsigned char colbits;  // number of bits for colours
-       int fh;                 // file handle
-       int lzwnext;            // next code
-       int lzwlast;            // last code in current bit size
-       int lzwbits;            // current bit size
-       LZWTree lzw;            // encode tree
-       unsigned char block[256];       // block so far, with count at start
-       int blockv;             // pending value
-       int blockb;             // bits used in pending value
-       short lzwcode;          // which code we are on now
-} Private;
-
-static LZWFlush(Private * p)
-{                              // flush this block
-       write(p->fh, p->block, *p->block + 1);
-       *p->block = 0;
-}
-
-static LZWOut(Private * p, short v)
-{                              // output a value
-       p->blockv |= (v << p->blockb);
-       p->blockb += p->lzwbits;
-       while (p->blockb >= 8) {
-               p->block[++*p->block] = p->blockv;      // last partial byte
-               p->blockv >>= 8;
-               p->blockb -= 8;
-               if (*p->block == 255)
-                       LZWFlush(p);
-       }
-}
-
-static LZWClear(Private * p)
-{
-       int c;
-       p->lzwbits = p->colbits + 1;
-       p->lzwnext = p->cols + 2;
-       p->lzwlast = (1 << p->lzwbits) - 1;
-       p->lzwcode = p->cols;   // starting point
-       for (c = 0; c < p->cols; c++) {
-               p->lzw[p->cols][c] = c; // links to literal entries
-               // links from literals, dead ends initially
-               memset(&p->lzw[c], -1, p->cols * 2);
-       }
-}
-
-static ImageStart(Private * p)
-{
-       unsigned char b = p->colbits;
-       write(p->fh, &b, 1);
-       *p->block = 0;
-       p->blockb = 0;
-       p->blockv = 0;
-       LZWClear(p);
-       LZWOut(p, p->cols);     // clear code
-}
-
-static ImageEnd(Private * p)
-{
-       LZWOut(p, p->lzwcode);  // last prefix
-       LZWOut(p, p->cols + 1); // end code
-       if (p->blockb)
-               p->block[++*p->block] = p->blockv;      // last partial byte
-       LZWFlush(p);
-}
-
-static ImageOut(Private * p, unsigned char c)
-{
-       short next = p->lzw[p->lzwcode][c];
-       if (next == -1) {       // dead end
-               LZWOut(p, p->lzwcode);  // prefix
-#ifdef CLEAR
-               if (p->lzwnext + 1 == MAXLZW) {
-                       LZWOut(p, p->cols);     // clear code
-                       LZWClear(p);
-               } else
-#endif
-               if (p->lzwnext < MAXLZW) {
-                       memset(p->lzw[p->lzwnext], -1, p->cols * 2);    // init dead ends
-                       p->lzw[p->lzwcode][c] = p->lzwnext;
-                       if (p->lzwnext > p->lzwlast) {  // bigger code
-                               p->lzwbits++;
-                               p->lzwlast = (1 << p->lzwbits) - 1;
-                       }
-                       p->lzwnext++;
-               }
-               p->lzwcode = c;
-       } else
-               p->lzwcode = next;      // not a dead end
-}
-
-// write GIF image
-void ImageWriteGif(Image * i, int fh, int back, int trans, char *comment)
-{
-       struct strPrivate p;
-       p.fh = fh;
-       // count colours, min 4
-       for (p.colbits = 2, p.cols = 4; p.cols < i->C;
-            p.cols *= 2, p.colbits++) ;
-       {                       // headers
-               char buf[1500];
-               int n = 0;
-               strcpy(buf, "GIF87a");
-#ifndef INTERLACE
-               if (comment || trans >= 0)
-#endif
-                       buf[4] = '9';   // needs gif89 format
-               n = 6;
-               buf[n++] = (i->W & 255);
-               buf[n++] = (i->W >> 8);
-               buf[n++] = (i->H & 255);
-               buf[n++] = (i->H >> 8);
-               buf[n++] = (i->Colour ? 0x80 : 0) + 0x70 + (p.colbits - 1);
-               buf[n++] = back;        // background
-               buf[n++] = 0;   // aspect
-               if (i->Colour) {
-                       int c;
-                       for (c = 0; c < p.cols; c++) {
-                               if (c < i->C) {
-                                       buf[n++] = (i->Colour[c] >> 16 & 255);
-                                       buf[n++] = (i->Colour[c] >> 8 & 255);
-                                       buf[n++] = (i->Colour[c] & 255);
-                               } else {        // extra, unused, colour
-                                       buf[n++] = 0;
-                                       buf[n++] = 0;
-                                       buf[n++] = 0;
-                               }
-                       }
-               }
-               // comment
-               if (comment && strlen(comment) < 256) { // comment
-                       buf[n++] = 0x21;        //extension
-                       buf[n++] = 0xFE;        //comment
-                       buf[n++] = strlen(comment);
-                       strcpy(buf + n, comment);
-                       n += buf[n - 1];
-                       buf[n++] = 0;   // end of block
-               }
-               if (trans >= 0) {       // transparrent
-                       buf[n++] = 0x21;        // extension
-                       buf[n++] = 0xF9;        // graphic control
-                       buf[n++] = 4;   // len
-                       buf[n++] = 1;   // transparrent
-                       buf[n++] = 0;   // delay
-                       buf[n++] = 0;
-                       buf[n++] = trans;
-                       buf[n++] = 0;   // terminator
-               }
-               // image
-               buf[n++] = 0x2C;
-               buf[n++] = 0;   // offset X
-               buf[n++] = 0;
-               buf[n++] = 0;   // offset Y
-               buf[n++] = 0;
-               buf[n++] = (i->W & 255);
-               buf[n++] = (i->W >> 8);
-               buf[n++] = (i->H & 255);
-               buf[n++] = (i->H >> 8);
-#ifdef INTERLACE
-               buf[n++] = 0x40;        // interlaced, no local colour table
-#else
-               buf[n++] = 0x00;        // non interlaced, no local colour table
-#endif
-               write(fh, buf, n);
-       }
-       // image data
-       {
-               unsigned char *b;
-               int x, y;
-               ImageStart(&p);
-#ifdef INTERLACE
-               for (y = 0; y < i->H; y += 8)
-                       for (b = &ImagePixel(i, 0, y), x = 0; x < i->W; x++)
-                               ImageOut(&p, *b++);
-               for (y = 4; y < i->H; y += 8)
-                       for (b = &ImagePixel(i, 0, y), x = 0; x < i->W; x++)
-                               ImageOut(&p, *b++);
-               for (y = 2; y < i->H; y += 4)
-                       for (b = &ImagePixel(i, 0, y), x = 0; x < i->W; x++)
-                               ImageOut(&p, *b++);
-               for (y = 1; y < i->H; y += 2)
-                       for (b = &ImagePixel(i, 0, y), x = 0; x < i->W; x++)
-                               ImageOut(&p, *b++);
-#else
-               for (y = 0; y < i->H; y++)
-                       for (b = &ImagePixel(i, 0, y), x = 0; x < i->W; x++)
-                               ImageOut(&p, *b++);
-#endif
-               ImageEnd(&p);
-       }
-       write(fh, "\0", 1);     // end of image data
-       write(fh, "\x3B", 1);   // trailer
-}
-
-void ImageText(Image * i, int x, int y, int col, char *text)
-{                              // writes 8x8 text
-       if (i && text)
-               while (*text) {
-                       if (*text >= ' ' && *text) {
-                               int r;
-                               unsigned const char *b =
-                                   bbc + (*text - ' ') * 8;
-                               for (r = 0; r < 8; r++) {
-                                       unsigned char v = *b++;
-                                       unsigned char *p =
-                                           &ImagePixel(i, x, y + r);
-                                       unsigned char m;
-                                       for (m = 0x80; m; m >>= 1, p++)
-                                               if (v & m)
-                                                       *p = col;
-                               }
-                       }
-                       x += 8;
-                       text++;
-               }
-}
-
-void ImageSmall(Image * i, int x, int y, int col, char *text)
-{                              // writes 4x6 digits
-       if (i && text)
-               while (*text) {
-                       char *p = strchr(smallc, toupper(*text));
-                       if (p) {
-                               int r;
-                               char m = 1;
-                               unsigned const char *b =
-                                   small + (p - smallc) * 3;
-                               for (r = 0; r < 5; r++) {
-                                       int c;
-                                       for (c = 0; c < 3; c++)
-                                               if (b[c] & m)
-                                                       ImagePixel(i, x + c,
-                                                                  y + r) = col;
-                                       m <<= 1;
-                               }
-                               x += 4;
-                       } else if (*text == '.') {
-                               ImagePixel(i, x, y + 4) = col;
-                               x += 2;
-                       } else if (*text == ':') {
-                               ImagePixel(i, x, y + 1) = col;
-                               ImagePixel(i, x, y + 3) = col;
-                               x += 2;
-                       }
-                       text++;
-               }
-}
-
-void ImageRect(Image * i, int x, int y, int w, int h, int c)
-{                              // fill a box
-       if (i && w && h) {
-               while (h--) {
-                       unsigned char *p = &ImagePixel(i, x, y);
-                       int n = w;
-                       while (n--)
-                               *p++ = c;
-                       y++;
-               }
-       }
-}
-
-// PNG code
-
-      /* Table of CRCs of all 8-bit messages. */
-static unsigned int crc_table[256];
-
-      /* Make the table for a fast CRC. */
-void make_crc_table(void)
-{
-       unsigned int c;
-       int n, k;
-       for (n = 0; n < 256; n++) {
-               c = (unsigned int)n;
-               for (k = 0; k < 8; k++) {
-                       if (c & 1)
-                               c = 0xedb88320L ^ (c >> 1);
-                       else
-                               c = c >> 1;
-               }
-               crc_table[n] = c;
-       }
-}
-
-      /* Update a running CRC with the bytes buf[0..len-1]--the CRC
-         should be initialized to all 1's, and the transmitted value
-         is the 1's complement of the final running CRC (see the
-         crc() routine below)). */
-
-unsigned int update_crc(unsigned int crc, unsigned char *buf, int len)
-{
-       unsigned int c = crc;
-       int n;
-
-       for (n = 0; n < len; n++)
-               c = crc_table[(c ^ buf[n]) & 0xff] ^ (c >> 8);
-
-       return c;
-}
-
-      /* Return the CRC of the bytes buf[0..len-1]. */
-unsigned int crc(unsigned char *buf, int len)
-{
-       return update_crc(0xffffffffL, buf, len) ^ 0xffffffffL;
-}
-
-unsigned int writecrc(int fh, char *ptr, int len, unsigned int c)
-{
-       write(fh, ptr, len);
-       while (len--)
-               c = crc_table[(c ^ *ptr++) & 0xff] ^ (c >> 8);
-       return c;
-}
-
-void writechunk(int fh, char *typ, void *ptr, int len)
-{
-       unsigned int v = htonl(len), crc;
-       write(fh, &v, 4);
-       crc = writecrc(fh, typ, 4, ~0);
-       if (len)
-               crc = writecrc(fh, ptr, len, crc);
-       v = htonl(~crc);
-       write(fh, &v, 4);
-}
-
-#ifndef USEZLIB
-unsigned int adlersum(unsigned char *p, int l, unsigned int adler)
-{
-       unsigned int s1 = (adler & 65535), s2 = (adler >> 16);
-       while (l--) {
-               s1 += *p++;
-               s2 += s1;
-       }
-       s1 %= 65521;            // can be delayed due to sensible "l" values...
-       s2 %= 65521;
-       return (s2 << 16) + s1;
-}
-#endif
-
-// write PNG image
-void ImageWritePNG(Image * i, int fh, int back, int trans, char *comment)
-{
-       make_crc_table();
-       write(fh, "\211PNG\r\n\032\n", 8);      // PNG header
-       {                       // IHDR
-               struct {
-                       unsigned int width;
-                       unsigned int height;
-                       unsigned char depth;
-                       unsigned char colour;
-                       unsigned char compress;
-                       unsigned char filter;
-                       unsigned char interlace;
-               } ihdr = {
-               0, 0, 8, 3, 0, 0};
-               ihdr.width = htonl(i->W);
-               ihdr.height = htonl(i->H);
-               writechunk(fh, "IHDR", &ihdr, 13);
-       }
-       {                       // PLTE
-               unsigned int v = htonl(i->C * 3), crc, n;
-               write(fh, &v, 4);
-               crc = writecrc(fh, "PLTE", 4, ~0);
-               for (n = 0; n < i->C; n++) {
-                       v = htonl(i->Colour[n] << 8);
-                       crc = writecrc(fh, (void *)&v, 3, crc);
-               }
-               v = htonl(~crc);
-               write(fh, &v, 4);
-       }
-       if (back >= 0) {        // bKGD
-               unsigned char b = back;
-               writechunk(fh, "bKGD", &b, 1);
-       }
-       if (*comment) {         // tEXt
-               char c[] = "Comment";
-               unsigned int v = htonl(strlen(c) + strlen(comment) + 1), crc;
-               write(fh, &v, 4);
-               crc = writecrc(fh, "tEXt", 4, ~0);
-               crc = writecrc(fh, c, strlen(c) + 1, crc);
-               crc = writecrc(fh, comment, strlen(comment), crc);
-               v = htonl(~crc);
-               write(fh, &v, 4);
-       }
-       {                       // tRNS
-               unsigned char alpha[256];
-               int n;
-               for (n = 0; n < i->C; n++)
-                       // 4th palette byte treated as 0=opaque, 255-transparren
-                       alpha[n] = 255 - (i->Colour[n] >> 24);
-               if (trans >= 0 && trans < i->C)
-                       // manual set of specific transparrent colour
-                       alpha[trans] = 0;
-               writechunk(fh, "tRNS", alpha, i->C);
-       }
-#ifndef USEZLIB
-       {                       // IDAT
-               unsigned int v = htonl(i->H * (i->L + 5) + 6),
-                   crc, adler = 1, n;
-               unsigned char *p = i->Image;
-               write(fh, &v, 4);
-               crc = writecrc(fh, "IDAT", 4, ~0);
-               crc = writecrc(fh, "\170\001", 2, crc); // zlib header for deflate
-               n = i->H;
-               while (n--) {
-                       unsigned char h[5];
-                       h[0] = (n ? 0 : 1);     // last chunk in deflate, un compressed
-                       h[1] = (i->L & 255);    // Len, LSB first as per deflate spec
-                       h[2] = (i->L / 256);
-                       h[3] = ~(i->L & 255);   // Inverse of Len
-                       h[4] = ~(i->L / 256);
-                       *p = 0; // filter 0 (NONE)
-                       crc = writecrc(fh, h, 5, crc);
-                       crc = writecrc(fh, p, i->L, crc);
-                       adler = adlersum(p, i->L, adler);
-                       p += i->L;
-               }
-               v = htonl(adler);
-               crc = writecrc(fh, (void *)&v, 4, crc);
-               v = htonl(~crc);
-               write(fh, &v, 4);
-       }
-#else
-       {                       // IDAT
-               unsigned char *temp;
-               unsigned long n;
-               for (n = 0; n < i->H; n++)
-                       i->Image[n * i->L] = 0; // filter 0
-               n = i->H * i->L * 1001 / 1000 + 12;
-               temp = malloc(n);
-               if (compress2(temp, &n, i->Image, i->L * i->H, 9) != Z_OK)
-                       fprintf(stderr, "Deflate error\n");
-               else
-                       writechunk(fh, "IDAT", temp, n);
-               free(temp);
-       }
-#endif
-       writechunk(fh, "IEND", 0, 0);   // IEND
-}
diff --git a/iec16022-0.2.1/image.h b/iec16022-0.2.1/image.h
deleted file mode 100644 (file)
index 92d6d06..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/** 
- *
- * Image handling tools, (c) AJK 2001-2005
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- *
- */
-
-#ifndef __IMAGE_H
-#define __IMAGE_H
-
-typedef unsigned int Colour;   // RGB value
-
-// Image object
-typedef struct {
-       int W,                  // width
-        L,                     // Line length in Image (W+1)
-        H;                     // height
-       unsigned char *Image;   // image array, one byte per pixel
-       int C;                  // colours (can be non power of 2, max 256)
-       Colour *Colour;         // colour map (must have entry for each colour)
-} Image;
-
-// macros and functions
-
-#define ImagePixel(i,x,y)      ((i)->Image[1+(i)->L*(y)+(x)])
-
-Image *ImageNew(int w, int h, int c);  // create a new blank image
-void ImageFree(Image * i);     // free an image
-void ImageWriteGif(Image * i, int fh, int back, int trans, char *comment);
-void ImageWritePNG(Image * i, int fh, int back, int trans, char *comment);
-void ImageText(Image * i, int x, int y, int c, char *text);    // write 8x8 text
-void ImageSmall(Image * i, int x, int y, int c, char *text);   // write 4x6 text
-void ImageRect(Image * i, int x, int y, int w, int h, int c);  // fill a box
-#define ImageWrite ImageWritePNG       // default
-
-#endif                         /* __IMAGE_H */
diff --git a/iec16022-0.2.1/reedsol.c b/iec16022-0.2.1/reedsol.c
deleted file mode 100644 (file)
index a950241..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-/** 
- *
- * This is a simple Reed-Solomon encoder
- * (C) Cliff Hones 2004
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- *
- */
-
-// It is not written with high efficiency in mind, so is probably
-// not suitable for real-time encoding.  The aim was to keep it
-// simple, general and clear.
-//
-// <Some notes on the theory and implementation need to be added here>
-
-// Usage:
-// First call rs_init_gf(poly) to set up the Galois Field parameters.
-// Then  call rs_init_code(size, index) to set the encoding size
-// Then  call rs_encode(datasize, data, out) to encode the data.
-//
-// These can be called repeatedly as required - but note that
-// rs_init_code must be called following any rs_init_gf call.
-//
-// If the parameters are fixed, some of the statics below can be
-// replaced with constants in the obvious way, and additionally
-// malloc/free can be avoided by using static arrays of a suitable
-// size.
-
-#include <stdio.h>             // only needed for debug (main)
-#include <stdlib.h>            // only needed for malloc/free
-
-static int gfpoly;
-static int symsize;            // in bits
-static int logmod;             // 2**symsize - 1
-static int rlen;
-
-static int *log = NULL, *alog = NULL, *rspoly = NULL;
-
-// rs_init_gf(poly) initialises the parameters for the Galois Field.
-// The symbol size is determined from the highest bit set in poly
-// This implementation will support sizes up to 30 bits (though that
-// will result in very large log/antilog tables) - bit sizes of
-// 8 or 4 are typical
-//
-// The poly is the bit pattern representing the GF characteristic
-// polynomial.  e.g. for ECC200 (8-bit symbols) the polynomial is
-// a**8 + a**5 + a**3 + a**2 + 1, which translates to 0x12d.
-
-void rs_init_gf(int poly)
-{
-       int m, b, p, v;
-
-       // Return storage from previous setup
-       if (log) {
-               free(log);
-               free(alog);
-               free(rspoly);
-               rspoly = NULL;
-       }
-       // Find the top bit, and hence the symbol size
-       for (b = 1, m = 0; b <= poly; b <<= 1)
-               m++;
-       b >>= 1;
-       m--;
-       gfpoly = poly;
-       symsize = m;
-
-       // Calculate the log/alog tables
-       logmod = (1 << m) - 1;
-       log = (int *)malloc(sizeof(int) * (logmod + 1));
-       alog = (int *)malloc(sizeof(int) * logmod);
-
-       for (p = 1, v = 0; v < logmod; v++) {
-               alog[v] = p;
-               log[p] = v;
-               p <<= 1;
-               if (p & b)
-                       p ^= poly;
-       }
-}
-
-// rs_init_code(nsym, index) initialises the Reed-Solomon encoder
-// nsym is the number of symbols to be generated (to be appended
-// to the input data).  index is usually 1 - it is the index of
-// the constant in the first term (i) of the RS generator polynomial:
-// (x + 2**i)*(x + 2**(i+1))*...   [nsym terms]
-// For ECC200, index is 1.
-
-void rs_init_code(int nsym, int index)
-{
-       int i, k;
-
-       if (rspoly)
-               free(rspoly);
-       rspoly = (int *)malloc(sizeof(int) * (nsym + 1));
-
-       rlen = nsym;
-
-       rspoly[0] = 1;
-       for (i = 1; i <= nsym; i++) {
-               rspoly[i] = 1;
-               for (k = i - 1; k > 0; k--) {
-                       if (rspoly[k])
-                               rspoly[k] =
-                                   alog[(log[rspoly[k]] + index) % logmod];
-                       rspoly[k] ^= rspoly[k - 1];
-               }
-               rspoly[0] = alog[(log[rspoly[0]] + index) % logmod];
-               index++;
-       }
-}
-
-// Note that the following uses byte arrays, so is only suitable for
-// symbol sizes up to 8 bits.  Just change the data type of data and res
-// to unsigned int * for larger symbols.
-
-void rs_encode(int len, unsigned char *data, unsigned char *res)
-{
-       int i, k, m;
-       for (i = 0; i < rlen; i++)
-               res[i] = 0;
-       for (i = 0; i < len; i++) {
-               m = res[rlen - 1] ^ data[i];
-               for (k = rlen - 1; k > 0; k--) {
-                       if (m && rspoly[k])
-                               res[k] =
-                                   res[k -
-                                       1] ^ alog[(log[m] +
-                                                  log[rspoly[k]]) % logmod];
-                       else
-                               res[k] = res[k - 1];
-               }
-               if (m && rspoly[0])
-                       res[0] = alog[(log[m] + log[rspoly[0]]) % logmod];
-               else
-                       res[0] = 0;
-       }
-}
-
-#ifndef LIB
-// The following tests the routines with the ISO/IEC 16022 Annexe R data
-int main(void)
-{
-       register int i;
-
-       unsigned char data[9] = { 142, 164, 186 };
-       unsigned char out[5];
-
-       rs_init_gf(0x12d);
-       rs_init_code(5, 1);
-
-       rs_encode(3, data, out);
-
-       printf("Result of Annexe R encoding:\n");
-       for (i = 4; i >= 0; i--)
-               printf("  %d\n", out[i]);
-
-       return 0;
-}
-#endif
diff --git a/iec16022-0.2.1/reedsol.h b/iec16022-0.2.1/reedsol.h
deleted file mode 100644 (file)
index 0181a8d..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/** 
- *
- * This is a simple Reed-Solomon encoder
- * (C) Cliff Hones 2004
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- *
- */
-
-#ifndef __REEDSOL_H
-#define __REEDSOL_H
-
-void rs_init_gf(int poly);
-void rs_init_code(int nsym, int index);
-void rs_encode(int len, unsigned char *data, unsigned char *res);
-
-#endif                         /* __REEDSOL_H */
diff --git a/iec16022-0.2.1/test/testsuite-example.bin b/iec16022-0.2.1/test/testsuite-example.bin
deleted file mode 100644 (file)
index 02a4436..0000000
+++ /dev/null
@@ -1 +0,0 @@
-ÿÿÿÿ¿`ï\1aÁ϶mÜ>ý\ 6Ü\1fÏÃð\8a¼N¯·«9\9a\82±¤Ë»¾\83Ð@¨ÄÌEÙù£,Æ<°\17Ü-öb°:Çw×ɪªªªÿÿÿÿ\9fÀ\8eöÊÕï\ f\97¦\91\ 4¸%\8fkûh\8eÔ«-¨\eÛ\12£0ËQ³kâ\1aÛ\1e\80Éôå£ÂÍ~\84\19ögëTåà½\83絪ªªª
\ No newline at end of file
diff --git a/iec16022-0.2.1/test/testsuite-example.eps b/iec16022-0.2.1/test/testsuite-example.eps
deleted file mode 100644 (file)
index 9f97c22..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: IEC16022 barcode/stamp generator
-%%BarcodeData: Aolash3l dee6Ieke OhBohm1C MengaR9m zaHaoQu2 huW3Uer8 ieg7chaJ haiKua1o
-%%BarcodeSize: 32x32
-%%BarcodeFormat: ECC200
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 1
-%%Pages: 1
-%%BoundingBox: 0 0 34 34
-%%EndComments
-%%Page: 1 1
-32 32 1[1 0 0 1 -1 -1]{<
-00000000 409F10E5 3E304992 23C102F9 23E0303C 0F7543B1 504854C6 657D4E5B 3444417C 2FBF573B 33BA2606 5CD339C3 4FE823D2 099D4FC5 38882836 55555555 
-00000000 603F7109 352A10F0 68596EFB 47DA7094 0497712B 54D257E4 24ED5CCF 34AE4C94 1DE524E1 7F360B1A 5C3D3281 7BE60998 14AB1A1F 427C184A 55555555 
->}image
diff --git a/iec16022-0.2.1/test/testsuite-example.hex b/iec16022-0.2.1/test/testsuite-example.hex
deleted file mode 100644 (file)
index 874101c..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-FFFFFFFF BF60EF1A C1CFB66D DC3EFD06 DC1FCFC3 F08ABC4E AFB7AB39 9A82B1A4 CBBBBE83 D040A8C4 CC45D9F9 A32CC63C B017DC2D F662B03A C777D7C9 AAAAAAAA 
-FFFFFFFF 9FC08EF6 CAD5EF0F 97A69104 B8258F6B FB688ED4 AB2DA81B DB12A330 CB51B36B E21ADB1E 80C9F4E5 A3C2CD7E 8419F667 EB54E5E0 BD83E7B5 AAAAAAAA 
diff --git a/iec16022-0.2.1/test/testsuite-example.png b/iec16022-0.2.1/test/testsuite-example.png
deleted file mode 100644 (file)
index 050d1f0..0000000
Binary files a/iec16022-0.2.1/test/testsuite-example.png and /dev/null differ
diff --git a/iec16022-0.2.1/test/testsuite-example.text b/iec16022-0.2.1/test/testsuite-example.text
deleted file mode 100644 (file)
index 097a7d1..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-* * * * * * * * * * * * * * * * 
-* **** **     *****  **** ** * *
-*** * ** * * *  ***  * ****     
-*    *     **  ***** **  **  ***
-* *   ****    * **  ** * ****** 
-*       **  *  ***** *  ***  * *
-***   *    ** * ** ** **   **** 
-**  * ** * *   ** **  ** ** * **
-** ** **   *  * * *   **  **    
-* * * **  * ** ** * *      ** **
-***** ** ** *   *   *** ** * *  
-* ***     *  * **   **** ** * **
-*  * **** *  ** *  *   *     *  
-**  * * ** * * **** ****    ****
-*  *******      *   *** **** ** 
-********************************
-* * * * * * * * * * * * * * * * 
-**   *** *** ***** * *****  *  *
-**** **  **   * * **      *** * 
-* **       * ***** ***    * ** *
-* *   **  * **  **   **   ****  
-**  **   *   * *** **  ******  *
-** *     *      * * *   **   *  
-**  * *** *** *** ***** *     **
-*  ** * *     * * **   ** *  *  
-* * ***** ** **** * * **  ***  *
-****    *   * * * ****   *  *** 
-** ***     *******  ******    **
-** ***    ***** ****** *     ** 
-**     ***  ***** ** **  ** ** *
-* ****** **     *** ****   ** * 
-********************************
diff --git a/iec16022-0.2.1/test/testsuite.sh b/iec16022-0.2.1/test/testsuite.sh
deleted file mode 100755 (executable)
index 82a100a..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-
-FAILED=0
-
-../iec16022 -o testsuite-test.text -f Text -c "Aolash3l dee6Ieke OhBohm1C MengaR9m zaHaoQu2 huW3Uer8 ieg7chaJ haiKua1o"
-../iec16022 -o testsuite-test.eps -f EPS -c "Aolash3l dee6Ieke OhBohm1C MengaR9m zaHaoQu2 huW3Uer8 ieg7chaJ haiKua1o"
-../iec16022 -o testsuite-test.png -f PNG -c "Aolash3l dee6Ieke OhBohm1C MengaR9m zaHaoQu2 huW3Uer8 ieg7chaJ haiKua1o"
-../iec16022 -o testsuite-test.bin -f Bin -c "Aolash3l dee6Ieke OhBohm1C MengaR9m zaHaoQu2 huW3Uer8 ieg7chaJ haiKua1o"
-../iec16022 -o testsuite-test.hex -f Hex -c "Aolash3l dee6Ieke OhBohm1C MengaR9m zaHaoQu2 huW3Uer8 ieg7chaJ haiKua1o"
-
-diff -b testsuite-test.text testsuite-example.text && echo "Text test passed" || echo "Text test FAILED" || FAILED=1
-diff -b testsuite-test.eps testsuite-example.eps && echo "EPS test passed" || echo "EPS test FAILED" || FAILED=1
-diff -b testsuite-test.png testsuite-example.png && echo "PNG test passed" || echo "PNG test FAILED" || FAILED=1
-diff -b testsuite-test.bin testsuite-example.bin && echo "Bin test passed" || echo "Bin test FAILED" || FAILED=1
-diff -b testsuite-test.hex testsuite-example.hex && echo "Hex test passed" || echo "Hex test FAILED" || FAILED=1
-
-rm testsuite-test.*
-
-exit $FAILED
index 2d1228ab9119a6905d46ed11710744c7de999512..f9013460da0d913f7038e26dcfd598433ebf6edf 100644 (file)
@@ -1,58 +1,66 @@
-templatesdir = $(datadir)/glabels/templates
+configdir = $(datadir)/$(LIBGLABELS_BRANCH)
 
 INCLUDES = \
        $(LIBGLABELS_CFLAGS)                            \
-       -DDATADIR=\""$(datadir)"\"                      \
-       -DLIBGLABELS_TEMPLATE_DIR=\""$(templatesdir)"\" \
+       -DLIBGLABELS_CONFIG_DIR=\""$(configdir)"\" \
        $(DISABLE_DEPRECATED_CFLAGS)
 
-libglabels_la_LDFLAGS=\
-        -version-info $(LIBGLABELS_VERSION_INFO) \
+libglabels_3_0_la_LDFLAGS=\
+        -version-info $(LIBGLABELS_API_VERSION) \
         $(LIBGLABELS_LIBS) \
         -no-undefined 
 
-lib_LTLIBRARIES = libglabels.la
+lib_LTLIBRARIES = libglabels-3.0.la
 
-libglabelsincludedir=$(includedir)/libglabels
-
-libglabels_la_SOURCES =                \
+libglabels_3_0_la_SOURCES =    \
        libglabels-private.h    \
-       db.h                    \
-       db.c                    \
-       enums.h                 \
-       paper.h                 \
-       paper.c                 \
-       category.h              \
-       category.c              \
-       template.h              \
-       template.c              \
-       xml-paper.h             \
-       xml-paper.c             \
-       xml-category.h          \
-       xml-category.c          \
-       xml-template.h          \
-       xml-template.c          \
-       xml.h                   \
-       xml.c                   \
-       str.h                   \
-       str.c
-
-libglabelsinclude_HEADERS =    \
-       libglabels.h            \
-       db.h                    \
-       enums.h                 \
-       paper.h                 \
-       category.h              \
-       template.h              \
-       xml-paper.h             \
-       xml-category.h          \
-       xml-template.h          \
-       xml.h                   \
-       str.h                   
+       lgl-db.h                \
+       lgl-db.c                \
+       lgl-units.h             \
+       lgl-units.c             \
+       lgl-paper.h             \
+       lgl-paper.c             \
+       lgl-category.h          \
+       lgl-category.c          \
+       lgl-vendor.h            \
+       lgl-vendor.c            \
+       lgl-template.h          \
+       lgl-template.c          \
+       lgl-xml-paper.h         \
+       lgl-xml-paper.c         \
+       lgl-xml-category.h      \
+       lgl-xml-category.c      \
+       lgl-xml-vendor.h        \
+       lgl-xml-vendor.c        \
+       lgl-xml-template.h      \
+       lgl-xml-template.c      \
+       lgl-xml.h               \
+       lgl-xml.c               \
+       lgl-str.h               \
+       lgl-str.c
+
+libglabels_3_0includedir=$(includedir)/$(LIBGLABELS_BRANCH)
+
+libglabels_3_0include_HEADERS =        \
+       libglabels.h
+
+libglabels_3_0subincludedir=$(includedir)/$(LIBGLABELS_BRANCH)/libglabels
+
+libglabels_3_0subinclude_HEADERS =  \
+       lgl-db.h                \
+       lgl-units.h             \
+       lgl-paper.h             \
+       lgl-category.h          \
+       lgl-template.h          \
+       lgl-xml-paper.h         \
+       lgl-xml-category.h      \
+       lgl-xml-template.h      \
+       lgl-xml.h               \
+       lgl-str.h                       
 
 EXTRA_DIST =                   \
-       libglabels.pc.in
+       $(LIBGLABELS_BRANCH).pc.in
 
 pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = libglabels.pc
+pkgconfig_DATA = $(LIBGLABELS_BRANCH).pc
 
index 9d289c7f9f2f42b0936100be3000715c8ffb1690..9057afd769540f9638c5e385433a94f880af0613 100644 (file)
@@ -37,15 +37,17 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = libglabels
-DIST_COMMON = $(libglabelsinclude_HEADERS) $(srcdir)/Makefile.am \
-       $(srcdir)/Makefile.in $(srcdir)/libglabels.pc.in
+DIST_COMMON = $(libglabels_3_0include_HEADERS) \
+       $(libglabels_3_0subinclude_HEADERS) \
+       $(srcdir)/${LIBGLABELS_BRANCH}.pc.in $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES = libglabels.pc
+CONFIG_CLEAN_FILES = ${LIBGLABELS_BRANCH}.pc
 CONFIG_CLEAN_VPATH_FILES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
@@ -69,43 +71,66 @@ am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" \
-       "$(DESTDIR)$(libglabelsincludedir)"
+       "$(DESTDIR)$(libglabels_3_0includedir)" \
+       "$(DESTDIR)$(libglabels_3_0subincludedir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
-libglabels_la_LIBADD =
-am_libglabels_la_OBJECTS = db.lo paper.lo category.lo template.lo \
-       xml-paper.lo xml-category.lo xml-template.lo xml.lo str.lo
-libglabels_la_OBJECTS = $(am_libglabels_la_OBJECTS)
-libglabels_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-       $(libglabels_la_LDFLAGS) $(LDFLAGS) -o $@
+libglabels_3_0_la_LIBADD =
+am_libglabels_3_0_la_OBJECTS = lgl-db.lo lgl-units.lo lgl-paper.lo \
+       lgl-category.lo lgl-vendor.lo lgl-template.lo lgl-xml-paper.lo \
+       lgl-xml-category.lo lgl-xml-vendor.lo lgl-xml-template.lo \
+       lgl-xml.lo lgl-str.lo
+libglabels_3_0_la_OBJECTS = $(am_libglabels_3_0_la_OBJECTS)
+AM_V_lt = $(am__v_lt_$(V))
+am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+am__v_lt_0 = --silent
+libglabels_3_0_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+       $(AM_CFLAGS) $(CFLAGS) $(libglabels_3_0_la_LDFLAGS) $(LDFLAGS) \
+       -o $@
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-       --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-       $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+       $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_$(V))
+am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+am__v_CC_0 = @echo "  CC    " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
 CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-       --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-       $(LDFLAGS) -o $@
-SOURCES = $(libglabels_la_SOURCES)
-DIST_SOURCES = $(libglabels_la_SOURCES)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_$(V))
+am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CCLD_0 = @echo "  CCLD  " $@;
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+SOURCES = $(libglabels_3_0_la_SOURCES)
+DIST_SOURCES = $(libglabels_3_0_la_SOURCES)
 DATA = $(pkgconfig_DATA)
-HEADERS = $(libglabelsinclude_HEADERS)
+HEADERS = $(libglabels_3_0include_HEADERS) \
+       $(libglabels_3_0subinclude_HEADERS)
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALL_LINGUAS = @ALL_LINGUAS@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
+CAIRO_REQUIRED = @CAIRO_REQUIRED@
 CATALOGS = @CATALOGS@
 CATOBJEXT = @CATOBJEXT@
 CC = @CC@
@@ -119,6 +144,7 @@ DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
 DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DLLTOOL = @DLLTOOL@
 DOC_USER_FORMATS = @DOC_USER_FORMATS@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
@@ -128,17 +154,23 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
+GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLABELS_BRANCH = @GLABELS_BRANCH@
 GLABELS_CFLAGS = @GLABELS_CFLAGS@
 GLABELS_LIBS = @GLABELS_LIBS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GLIB_REQUIRED = @GLIB_REQUIRED@
 GMOFILES = @GMOFILES@
 GMSGFMT = @GMSGFMT@
 GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
 GTK_REQUIRED = @GTK_REQUIRED@
-HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@
+GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@
 HELP_DIR = @HELP_DIR@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -154,31 +186,45 @@ INTLTOOL_PERL = @INTLTOOL_PERL@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
+LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@
+LIBBARCODE_LIBS = @LIBBARCODE_LIBS@
+LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@
 LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
 LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
 LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
+LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@
+LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@
 LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
 LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
-LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@
-LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@
-LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@
-LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@
+LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@
+LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@
+LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@
+LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@
+LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@
+LIBIEC16022_LIBS = @LIBIEC16022_LIBS@
+LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@
 LIBOBJS = @LIBOBJS@
+LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@
+LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@
+LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@
+LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBXML_REQUIRED = @LIBXML_REQUIRED@
+LIBZINT_CFLAGS = @LIBZINT_CFLAGS@
+LIBZINT_LIBS = @LIBZINT_LIBS@
+LIBZINT_REQUIRED = @LIBZINT_REQUIRED@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MKINSTALLDIRS = @MKINSTALLDIRS@
 MSGFMT = @MSGFMT@
 MSGFMT_OPTS = @MSGFMT_OPTS@
 MSGMERGE = @MSGMERGE@
-MYGAL_CFLAGS = @MYGAL_CFLAGS@
-MYGAL_LIBS = @MYGAL_LIBS@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -191,9 +237,13 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_REQUIRED = @PANGO_REQUIRED@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 POFILES = @POFILES@
 POSUB = @POSUB@
 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -203,18 +253,15 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
-UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@
-UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
 WARN_CFLAGS = @WARN_CFLAGS@
 XGETTEXT = @XGETTEXT@
-XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@
-XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 am__include = @am__include@
@@ -234,6 +281,7 @@ datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
 exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
 host = @host@
 host_alias = @host_alias@
 host_cpu = @host_cpu@
@@ -247,7 +295,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -263,60 +310,67 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-templatesdir = $(datadir)/glabels/templates
+configdir = $(datadir)/$(LIBGLABELS_BRANCH)
 INCLUDES = \
        $(LIBGLABELS_CFLAGS)                            \
-       -DDATADIR=\""$(datadir)"\"                      \
-       -DLIBGLABELS_TEMPLATE_DIR=\""$(templatesdir)"\" \
+       -DLIBGLABELS_CONFIG_DIR=\""$(configdir)"\" \
        $(DISABLE_DEPRECATED_CFLAGS)
 
-libglabels_la_LDFLAGS = \
-        -version-info $(LIBGLABELS_VERSION_INFO) \
+libglabels_3_0_la_LDFLAGS = \
+        -version-info $(LIBGLABELS_API_VERSION) \
         $(LIBGLABELS_LIBS) \
         -no-undefined 
 
-lib_LTLIBRARIES = libglabels.la
-libglabelsincludedir = $(includedir)/libglabels
-libglabels_la_SOURCES = \
+lib_LTLIBRARIES = libglabels-3.0.la
+libglabels_3_0_la_SOURCES = \
        libglabels-private.h    \
-       db.h                    \
-       db.c                    \
-       enums.h                 \
-       paper.h                 \
-       paper.c                 \
-       category.h              \
-       category.c              \
-       template.h              \
-       template.c              \
-       xml-paper.h             \
-       xml-paper.c             \
-       xml-category.h          \
-       xml-category.c          \
-       xml-template.h          \
-       xml-template.c          \
-       xml.h                   \
-       xml.c                   \
-       str.h                   \
-       str.c
-
-libglabelsinclude_HEADERS = \
-       libglabels.h            \
-       db.h                    \
-       enums.h                 \
-       paper.h                 \
-       category.h              \
-       template.h              \
-       xml-paper.h             \
-       xml-category.h          \
-       xml-template.h          \
-       xml.h                   \
-       str.h                   
+       lgl-db.h                \
+       lgl-db.c                \
+       lgl-units.h             \
+       lgl-units.c             \
+       lgl-paper.h             \
+       lgl-paper.c             \
+       lgl-category.h          \
+       lgl-category.c          \
+       lgl-vendor.h            \
+       lgl-vendor.c            \
+       lgl-template.h          \
+       lgl-template.c          \
+       lgl-xml-paper.h         \
+       lgl-xml-paper.c         \
+       lgl-xml-category.h      \
+       lgl-xml-category.c      \
+       lgl-xml-vendor.h        \
+       lgl-xml-vendor.c        \
+       lgl-xml-template.h      \
+       lgl-xml-template.c      \
+       lgl-xml.h               \
+       lgl-xml.c               \
+       lgl-str.h               \
+       lgl-str.c
+
+libglabels_3_0includedir = $(includedir)/$(LIBGLABELS_BRANCH)
+libglabels_3_0include_HEADERS = \
+       libglabels.h
+
+libglabels_3_0subincludedir = $(includedir)/$(LIBGLABELS_BRANCH)/libglabels
+libglabels_3_0subinclude_HEADERS = \
+       lgl-db.h                \
+       lgl-units.h             \
+       lgl-paper.h             \
+       lgl-category.h          \
+       lgl-template.h          \
+       lgl-xml-paper.h         \
+       lgl-xml-category.h      \
+       lgl-xml-template.h      \
+       lgl-xml.h               \
+       lgl-str.h                       
 
 EXTRA_DIST = \
-       libglabels.pc.in
+       $(LIBGLABELS_BRANCH).pc.in
 
 pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = libglabels.pc
+pkgconfig_DATA = $(LIBGLABELS_BRANCH).pc
 all: all-am
 
 .SUFFIXES:
@@ -351,7 +405,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
-libglabels.pc: $(top_builddir)/config.status $(srcdir)/libglabels.pc.in
+${LIBGLABELS_BRANCH}.pc: $(top_builddir)/config.status $(srcdir)/${LIBGLABELS_BRANCH}.pc.in
        cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
        @$(NORMAL_INSTALL)
@@ -384,8 +438,8 @@ clean-libLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libglabels.la: $(libglabels_la_OBJECTS) $(libglabels_la_DEPENDENCIES) 
-       $(libglabels_la_LINK) -rpath $(libdir) $(libglabels_la_OBJECTS) $(libglabels_la_LIBADD) $(LIBS)
+libglabels-3.0.la: $(libglabels_3_0_la_OBJECTS) $(libglabels_3_0_la_DEPENDENCIES) 
+       $(AM_V_CCLD)$(libglabels_3_0_la_LINK) -rpath $(libdir) $(libglabels_3_0_la_OBJECTS) $(libglabels_3_0_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -393,33 +447,39 @@ mostlyclean-compile:
 distclean-compile:
        -rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/category.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/db.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/paper.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/str.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/template.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml-category.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml-paper.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml-template.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgl-category.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgl-db.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgl-paper.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgl-str.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgl-template.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgl-units.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgl-vendor.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgl-xml-category.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgl-xml-paper.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgl-xml-template.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgl-xml-vendor.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgl-xml.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c $<
 
 .c.obj:
-@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@   $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
@@ -449,26 +509,46 @@ uninstall-pkgconfigDATA:
        test -n "$$files" || exit 0; \
        echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \
        cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files
-install-libglabelsincludeHEADERS: $(libglabelsinclude_HEADERS)
+install-libglabels_3_0includeHEADERS: $(libglabels_3_0include_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(libglabels_3_0includedir)" || $(MKDIR_P) "$(DESTDIR)$(libglabels_3_0includedir)"
+       @list='$(libglabels_3_0include_HEADERS)'; test -n "$(libglabels_3_0includedir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libglabels_3_0includedir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(libglabels_3_0includedir)" || exit $$?; \
+       done
+
+uninstall-libglabels_3_0includeHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(libglabels_3_0include_HEADERS)'; test -n "$(libglabels_3_0includedir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libglabels_3_0includedir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libglabels_3_0includedir)" && rm -f $$files
+install-libglabels_3_0subincludeHEADERS: $(libglabels_3_0subinclude_HEADERS)
        @$(NORMAL_INSTALL)
-       test -z "$(libglabelsincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libglabelsincludedir)"
-       @list='$(libglabelsinclude_HEADERS)'; test -n "$(libglabelsincludedir)" || list=; \
+       test -z "$(libglabels_3_0subincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libglabels_3_0subincludedir)"
+       @list='$(libglabels_3_0subinclude_HEADERS)'; test -n "$(libglabels_3_0subincludedir)" || list=; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
        done | $(am__base_list) | \
        while read files; do \
-         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libglabelsincludedir)'"; \
-         $(INSTALL_HEADER) $$files "$(DESTDIR)$(libglabelsincludedir)" || exit $$?; \
+         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libglabels_3_0subincludedir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(libglabels_3_0subincludedir)" || exit $$?; \
        done
 
-uninstall-libglabelsincludeHEADERS:
+uninstall-libglabels_3_0subincludeHEADERS:
        @$(NORMAL_UNINSTALL)
-       @list='$(libglabelsinclude_HEADERS)'; test -n "$(libglabelsincludedir)" || list=; \
+       @list='$(libglabels_3_0subinclude_HEADERS)'; test -n "$(libglabels_3_0subincludedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
        test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(libglabelsincludedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(libglabelsincludedir)" && rm -f $$files
+       echo " ( cd '$(DESTDIR)$(libglabels_3_0subincludedir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libglabels_3_0subincludedir)" && rm -f $$files
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -556,7 +636,7 @@ check-am: all-am
 check: check-am
 all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
 installdirs:
-       for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(libglabelsincludedir)"; do \
+       for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(libglabels_3_0includedir)" "$(DESTDIR)$(libglabels_3_0subincludedir)"; do \
          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
@@ -607,8 +687,8 @@ info: info-am
 
 info-am:
 
-install-data-am: install-libglabelsincludeHEADERS \
-       install-pkgconfigDATA
+install-data-am: install-libglabels_3_0includeHEADERS \
+       install-libglabels_3_0subincludeHEADERS install-pkgconfigDATA
 
 install-dvi: install-dvi-am
 
@@ -655,7 +735,9 @@ ps: ps-am
 ps-am:
 
 uninstall-am: uninstall-libLTLIBRARIES \
-       uninstall-libglabelsincludeHEADERS uninstall-pkgconfigDATA
+       uninstall-libglabels_3_0includeHEADERS \
+       uninstall-libglabels_3_0subincludeHEADERS \
+       uninstall-pkgconfigDATA
 
 .MAKE: install-am install-strip
 
@@ -666,14 +748,17 @@ uninstall-am: uninstall-libLTLIBRARIES \
        install install-am install-data install-data-am install-dvi \
        install-dvi-am install-exec install-exec-am install-html \
        install-html-am install-info install-info-am \
-       install-libLTLIBRARIES install-libglabelsincludeHEADERS \
-       install-man install-pdf install-pdf-am install-pkgconfigDATA \
-       install-ps install-ps-am install-strip installcheck \
-       installcheck-am installdirs maintainer-clean \
-       maintainer-clean-generic mostlyclean mostlyclean-compile \
-       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-       tags uninstall uninstall-am uninstall-libLTLIBRARIES \
-       uninstall-libglabelsincludeHEADERS uninstall-pkgconfigDATA
+       install-libLTLIBRARIES install-libglabels_3_0includeHEADERS \
+       install-libglabels_3_0subincludeHEADERS install-man \
+       install-pdf install-pdf-am install-pkgconfigDATA install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+       uninstall-am uninstall-libLTLIBRARIES \
+       uninstall-libglabels_3_0includeHEADERS \
+       uninstall-libglabels_3_0subincludeHEADERS \
+       uninstall-pkgconfigDATA
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/libglabels/category.c b/libglabels/category.c
deleted file mode 100644 (file)
index e82e084..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (LIBGLABELS) Template library for GLABELS
- *
- *  category.c:  template category module
- *
- *  Copyright (C) 2001-2006  Jim Evins <evins@snaught.com>.
- *
- *  This file is part of the LIBGLABELS library.
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License as published by the Free Software Foundation; either
- *  version 2 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public
- *  License along with this library; if not, write to the Free
- *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- *  MA 02111-1307, USA
- */
-#include <config.h>
-
-#include "category.h"
-
-#include <glib/gi18n.h>
-#include <glib/gmem.h>
-#include <glib/gstrfuncs.h>
-#include <glib/gmessages.h>
-#include <string.h>
-
-#include "libglabels-private.h"
-
-/*===========================================*/
-/* Private types                             */
-/*===========================================*/
-
-
-/*===========================================*/
-/* Private globals                           */
-/*===========================================*/
-
-
-/*===========================================*/
-/* Local function prototypes                 */
-/*===========================================*/
-
-
-/*===========================================*/
-/* Functions.                                */
-/*===========================================*/
-/**
- * lgl_category_new:
- * @id:     Id of category definition. (E.g. label, card, etc.)  Should be
- *          unique.
- * @name:   Localized name of category.
- *
- * Allocates and constructs a new #lglCategory structure.
- *
- * Returns: a pointer to a newly allocated #lglCategory structure.
- *
- */
-lglCategory *
-lgl_category_new (gchar             *id,
-                  gchar             *name)
-{
-       lglCategory *category;
-
-       category         = g_new0 (lglCategory,1);
-       category->id     = g_strdup (id);
-       category->name   = g_strdup (name);
-
-       return category;
-}
-
-
-/**
- * lgl_category_dup:
- * @orig:  #lglCategory structure to be duplicated.
- *
- * Duplicates an existing #lglCategory structure.
- *
- * Returns: a pointer to a newly allocated #lglCategory structure.
- *
- */
-lglCategory *lgl_category_dup (const lglCategory *orig)
-{
-       lglCategory       *category;
-
-       g_return_val_if_fail (orig, NULL);
-
-       category = g_new0 (lglCategory,1);
-
-       category->id     = g_strdup (orig->id);
-       category->name   = g_strdup (orig->name);
-
-       return category;
-}
-
-
-/**
- * lgl_category_free:
- * @category:  pointer to #lglCategory structure to be freed.
- *
- * Free all memory associated with an existing #lglCategory structure.
- *
- */
-void lgl_category_free (lglCategory *category)
-{
-
-       if ( category != NULL ) {
-
-               g_free (category->id);
-               category->id = NULL;
-
-               g_free (category->name);
-               category->name = NULL;
-
-               g_free (category);
-       }
-
-}
-
-
diff --git a/libglabels/category.h b/libglabels/category.h
deleted file mode 100644 (file)
index 3727d47..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (LIBGLABELS) Template library for GLABELS
- *
- *  category.h:  template category module header file
- *
- *  Copyright (C) 2006  Jim Evins <evins@snaught.com>.
- *
- *  This file is part of the LIBGLABELS library.
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License as published by the Free Software Foundation; either
- *  version 2 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public
- *  License along with this library; if not, write to the Free
- *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- *  MA 02111-1307, USA
- */
-
-#ifndef __CATEGORY_H__
-#define __CATEGORY_H__
-
-#include <glib/gtypes.h>
-#include <glib/glist.h>
-
-G_BEGIN_DECLS
-
-/*
- *   Template class
- */
-typedef struct _lglCategory lglCategory;
-
-struct _lglCategory {
-       gchar               *id;     /* Unique ID of category */
-       gchar               *name;   /* Localized name of category */
-};
-
-
-/*
- * Category construction
- */
-lglCategory      *lgl_category_new                 (gchar            *id,
-                                                    gchar            *name);
-
-lglCategory      *lgl_category_dup                 (const lglCategory *orig);
-void              lgl_category_free                (lglCategory       *category);
-
-
-G_END_DECLS
-
-#endif
diff --git a/libglabels/db.c b/libglabels/db.c
deleted file mode 100644 (file)
index a727904..0000000
+++ /dev/null
@@ -1,1615 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (LIBGLABELS) Template library for GLABELS
- *
- *  db.c:  template db module
- *
- *  Copyright (C) 2003-2007  Jim Evins <evins@snaught.com>.
- *
- *  This file is part of the LIBGLABELS library.
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License as published by the Free Software Foundation; either
- *  version 2 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public
- *  License along with this library; if not, write to the Free
- *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- *  MA 02111-1307, USA
- */
-#include <config.h>
-
-#include "db.h"
-
-#include <glib/gi18n.h>
-#include <glib/gmem.h>
-#include <glib/gstrfuncs.h>
-#include <glib/gdir.h>
-#include <glib/gmessages.h>
-#include <glib/ghash.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-
-#include "libglabels-private.h"
-
-#include "xml-paper.h"
-#include "xml-category.h"
-#include "xml-template.h"
-
-
-/*===========================================*/
-/* Private types                             */
-/*===========================================*/
-
-/*===========================================*/
-/* Private globals                           */
-/*===========================================*/
-
-static GList *papers     = NULL;
-static GList *categories = NULL;
-static GList *templates  = NULL;
-
-static GHashTable *template_cache = NULL;
-
-/*===========================================*/
-/* Local function prototypes                 */
-/*===========================================*/
-
-static void   init_template_cache          (void);
-static void   add_to_template_cache        (lglTemplate *template);
-
-static GList *read_papers                  (void);
-static GList *read_paper_files_from_dir    (GList       *papers,
-                                           const gchar *dirname);
-
-static GList *read_categories              (void);
-static GList *read_category_files_from_dir (GList       *categories,
-                                            const gchar *dirname);
-
-static GList *read_templates               (void);
-static GList *read_template_files_from_dir (GList       *templates,
-                                            const gchar *dirname);
-
-static lglTemplate *template_full_page     (const gchar *page_size);
-
-
-
-/*===========================================*/
-/* Module initialization                     */
-/*===========================================*/
-
-/**
- * lgl_db_init:
- *
- * Initialize all libglabels subsystems.  It is not necessary for an application to call
- * lgl_db_init(), because libglabels will initialize on demand.  An application programmer may
- * choose to call lgl_db_init() at startup to minimize the impact of the first libglabels call
- * on GUI response time.
- *
- * This function initializes its paper definitions, category definitions, and its template
- * database.. It will search both system and user template directories to locate
- * this data.
- */
-void
-lgl_db_init (void)
-{
-       lglPaper    *paper_other;
-        lglCategory *category_user_defined;
-        GList       *page_sizes;
-        GList       *p;
-
-        /*
-         * Paper definitions
-         */
-       if (!papers)
-        {
-
-                papers = read_papers ();
-
-                /* Create and append an "Other" entry. */
-                paper_other = lgl_paper_new ("Other", _("Other"), 0.0, 0.0, NULL);
-                papers = g_list_append (papers, paper_other);
-
-       }
-
-        /*
-         * Categories
-         */
-       if (!categories)
-        {
-                categories = read_categories ();
-
-                /* Create and append a "User defined" entry. */
-                category_user_defined = lgl_category_new ("user-defined", _("User defined"));
-                categories = g_list_append (categories, category_user_defined);
-       }
-
-        /*
-         * Templates
-         */
-       if (!templates)
-        {
-
-                templates = read_templates ();
-
-                /* Create and append generic full page templates. */
-                page_sizes = lgl_db_get_paper_id_list ();
-                for ( p=page_sizes; p != NULL; p=p->next )
-                {
-                        if ( !lgl_db_is_paper_id_other (p->data) )
-                        {
-                                templates = g_list_append (templates,
-                                                           template_full_page (p->data));
-                        }
-                }
-                lgl_db_free_paper_id_list (page_sizes);
-
-                init_template_cache ();
-       }
-}
-
-
-
-/*===========================================*/
-/* Paper db functions.                       */
-/*===========================================*/
-
-/**
- * lgl_db_get_paper_id_list:
- *
- * Get a list of all paper ids known to libglabels.
- *
- * Returns: a list of paper ids.
- *
- */
-GList *
-lgl_db_get_paper_id_list (void)
-{
-       GList           *ids = NULL;
-       GList           *p;
-       lglPaper        *paper;
-
-       if (!papers)
-        {
-               lgl_db_init ();
-       }
-
-       for ( p=papers; p != NULL; p=p->next )
-        {
-               paper = (lglPaper *)p->data;
-               ids = g_list_append (ids, g_strdup (paper->id));
-       }
-
-       return ids;
-}
-
-
-/**
- * lgl_db_free_paper_id_list:
- * @ids: List of id strings to be freed.
- *
- * Free up all storage associated with an id list obtained with
- * lgl_db_get_paper_id_list().
- *
- */
-void
-lgl_db_free_paper_id_list (GList *ids)
-{
-       GList *p;
-
-       for (p = ids; p != NULL; p = p->next)
-        {
-               g_free (p->data);
-               p->data = NULL;
-       }
-
-       g_list_free (ids);
-}
-
-
-/**
- * lgl_db_get_paper_name_list:
- *
- * Get a list of all localized paper names known to libglabels.
- *
- * Returns: a list of localized paper names.
- *
- */
-GList *
-lgl_db_get_paper_name_list (void)
-{
-       GList           *names = NULL;
-       GList           *p;
-       lglPaper        *paper;
-
-       if (!papers)
-        {
-               lgl_db_init ();
-       }
-
-       for ( p=papers; p != NULL; p=p->next )
-        {
-               paper = (lglPaper *)p->data;
-               names = g_list_append (names, g_strdup (paper->name));
-       }
-
-       return names;
-}
-
-
-/**
- * lgl_db_free_paper_name_list:
- * @names: List of localized paper name strings to be freed.
- *
- * Free up all storage associated with a name list obtained with
- * lgl_db_get_paper_name_list().
- *
- */
-void
-lgl_db_free_paper_name_list (GList *names)
-{
-       GList *p;
-
-       for (p = names; p != NULL; p = p->next)
-        {
-               g_free (p->data);
-               p->data = NULL;
-       }
-
-       g_list_free (names);
-}
-
-
-/**
- * lgl_db_lookup_paper_from_name:
- * @name: localized paper name string
- *
- * Lookup paper definition from localized paper name string.
- *
- * Returns: pointer to a newly allocated #lglPaper structure.
- *
- */
-lglPaper *
-lgl_db_lookup_paper_from_name (const gchar *name)
-{
-       GList       *p;
-       lglPaper    *paper;
-
-       if (!papers)
-        {
-               lgl_db_init ();
-       }
-
-       if (name == NULL)
-        {
-               /* If no name, return first paper as a default */
-               return lgl_paper_dup ((lglPaper *) papers->data);
-       }
-
-       for (p = papers; p != NULL; p = p->next)
-        {
-               paper = (lglPaper *) p->data;
-               if (UTF8_EQUAL (paper->name, name))
-                {
-                       return lgl_paper_dup (paper);
-               }
-       }
-
-       return NULL;
-}
-
-
-/**
- * lgl_db_lookup_paper_from_id:
- * @id: paper id string
- *
- * Lookup paper definition from id string.
- *
- * Returns: pointer to a newly allocated #lglPaper structure.
- *
- */
-lglPaper *
-lgl_db_lookup_paper_from_id (const gchar *id)
-{
-       GList       *p;
-       lglPaper    *paper;
-
-       if (!papers)
-        {
-               lgl_db_init ();
-       }
-
-       if (id == NULL)
-        {
-               /* If no id, return first paper as a default */
-               return lgl_paper_dup ((lglPaper *) papers->data);
-       }
-
-       for (p = papers; p != NULL; p = p->next)
-        {
-               paper = (lglPaper *) p->data;
-               if (ASCII_EQUAL (paper->id, id))
-                {
-                       return lgl_paper_dup (paper);
-               }
-       }
-
-       return NULL;
-}
-
-
-/**
- * lgl_db_lookup_paper_id_from_name:
- * @name: localized paper name stringp
- *
- * Lookup paper name string from localized paper name string.
- *
- * Returns: pointer to a newly allocated id string.
- *
- */
-gchar *
-lgl_db_lookup_paper_id_from_name (const gchar *name)
-{
-       lglPaper *paper = NULL;
-       gchar    *id = NULL;
-
-       if (name != NULL)
-       {
-               paper = lgl_db_lookup_paper_from_name (name);
-               if ( paper != NULL )
-               {
-                       id = g_strdup (paper->id);
-                       lgl_paper_free (paper);
-                       paper = NULL;
-               }
-       }
-
-       return id;
-}
-
-
-/**
- * lgl_db_lookup_paper_name_from_id:
- * @id: paper id string
- *
- * Lookup localized paper name string from paper id string.
- *
- * Returns: pointer to a newly allocated localized paper name string.
- *
- */
-gchar *
-lgl_db_lookup_paper_name_from_id (const gchar         *id)
-{
-       lglPaper *paper = NULL;
-       gchar    *name = NULL;
-
-       if (id != NULL)
-       {
-               paper = lgl_db_lookup_paper_from_id (id);
-               if ( paper != NULL )
-               {
-                       name = g_strdup (paper->name);
-                       lgl_paper_free (paper);
-                       paper = NULL;
-               }
-       }
-
-       return name;
-}
-
-
-/**
- * lgl_db_is_paper_id_known:
- * @id: paper id to test
- *
- * Determine if given paper id is known to libglabels.
- *
- * Returns: TRUE if id is known, otherwise FALSE.
- *
- */
-gboolean
-lgl_db_is_paper_id_known (const gchar *id)
-{
-       GList       *p;
-       lglPaper    *paper;
-
-       if (!papers)
-        {
-               lgl_db_init ();
-       }
-
-       if (id == NULL)
-        {
-               return FALSE;
-       }
-
-       for (p = papers; p != NULL; p = p->next)
-        {
-               paper = (lglPaper *) p->data;
-               if (ASCII_EQUAL (paper->id, id))
-                {
-                       return TRUE;
-               }
-       }
-
-       return FALSE;
-}
-
-/**
- * lgl_db_is_paper_id_other:
- * @id: paper id to test
- *
- * Determine if given paper id is the special id "Other."
- *
- * Returns: TRUE if id is "Other", otherwise FALSE.
- *
- */
-gboolean
-lgl_db_is_paper_id_other (const gchar *id)
-{
-       if (id == NULL)
-        {
-               return FALSE;
-       }
-
-       return (ASCII_EQUAL (id, "Other"));
-}
-
-
-static GList *
-read_papers (void)
-{
-       gchar *data_dir;
-       GList *papers = NULL;
-
-       data_dir = LGL_SYSTEM_DATA_DIR;
-       papers = read_paper_files_from_dir (papers, data_dir);
-       g_free (data_dir);
-
-       data_dir = LGL_USER_DATA_DIR;
-       papers = read_paper_files_from_dir (papers, data_dir);
-       g_free (data_dir);
-
-       if (papers == NULL) {
-               g_critical (_("Unable to locate paper size definitions.  Libglabels may not be installed correctly!"));
-       }
-
-       return papers;
-}
-
-
-static GList *
-read_paper_files_from_dir (GList       *papers,
-                          const gchar *dirname)
-{
-       GDir        *dp;
-       const gchar *filename, *extension;
-       gchar       *full_filename = NULL;
-       GError      *gerror = NULL;
-       GList       *new_papers = NULL;
-
-       if (dirname == NULL) {
-               return papers;
-       }
-
-       if (!g_file_test (dirname, G_FILE_TEST_EXISTS)) {
-               return papers;
-       }
-
-       dp = g_dir_open (dirname, 0, &gerror);
-       if (gerror != NULL) {
-               g_message ("cannot open data directory: %s", gerror->message );
-               return papers;
-       }
-
-       while ((filename = g_dir_read_name (dp)) != NULL) {
-
-               extension = strrchr (filename, '.');
-
-               if (extension != NULL) {
-
-                       if ( ASCII_EQUAL (extension, ".paper") ||
-                            ASCII_EQUAL (filename, "paper-sizes.xml") )
-                        {
-
-                               full_filename =
-                                   g_build_filename (dirname, filename, NULL);
-                               new_papers =
-                                   lgl_xml_paper_read_papers_from_file (full_filename);
-                               g_free (full_filename);
-
-                               papers = g_list_concat (papers, new_papers);
-                               new_papers = NULL;
-
-                       }
-
-               }
-
-       }
-
-       g_dir_close (dp);
-
-       return papers;
-}
-
-
-/**
- * lgl_db_print_known_papers:
- *
- * For debugging purposes: print a list of all paper definitions known to
- * libglabels.
- *
- */
-void
-lgl_db_print_known_papers (void)
-{
-       GList       *p;
-       lglPaper    *paper;
-
-       if (!papers) {
-               lgl_db_init ();
-       }
-
-       g_print ("%s():\n", __FUNCTION__);
-       for (p = papers; p != NULL; p = p->next) {
-               paper = (lglPaper *) p->data;
-
-               g_print ("PAPER id=\"%s\", name=\"%s\", width=%gpts, height=%gpts\n",
-                        paper->id, paper->name, paper->width, paper->height);
-
-       }
-       g_print ("\n");
-
-}
-
-
-/*===========================================*/
-/* Category db functions.                    */
-/*===========================================*/
-
-/**
- * lgl_db_get_category_id_list:
- *
- * Get a list of all category ids known to libglabels.
- *
- * Returns: a list of category ids.
- *
- */
-GList *
-lgl_db_get_category_id_list (void)
-{
-       GList           *ids = NULL;
-       GList           *p;
-       lglCategory     *category;
-
-       if (!categories)
-        {
-               lgl_db_init ();
-       }
-
-       for ( p=categories; p != NULL; p=p->next )
-        {
-               category = (lglCategory *)p->data;
-               ids = g_list_append (ids, g_strdup (category->id));
-       }
-
-       return ids;
-}
-
-
-/**
- * lgl_db_free_category_id_list:
- * @ids: List of id strings to be freed.
- *
- * Free up all storage associated with an id list obtained with
- * lgl_db_get_category_id_list().
- *
- */
-void
-lgl_db_free_category_id_list (GList *ids)
-{
-       GList *p;
-
-       for (p = ids; p != NULL; p = p->next)
-        {
-               g_free (p->data);
-               p->data = NULL;
-       }
-
-       g_list_free (ids);
-}
-
-
-/**
- * lgl_db_get_category_name_list:
- *
- * Get a list of all localized category names known to libglabels.
- *
- * Returns: a list of localized category names.
- *
- */
-GList *
-lgl_db_get_category_name_list (void)
-{
-       GList           *names = NULL;
-       GList           *p;
-       lglCategory     *category;
-
-       if (!categories)
-        {
-               lgl_db_init ();
-       }
-
-       for ( p=categories; p != NULL; p=p->next )
-        {
-               category = (lglCategory *)p->data;
-               names = g_list_append (names, g_strdup (category->name));
-       }
-
-       return names;
-}
-
-
-/**
- * lgl_db_free_category_name_list:
- * @names: List of localized category name strings to be freed.
- *
- * Free up all storage associated with a name list obtained with
- * lgl_db_get_category_name_list().
- *
- */
-void
-lgl_db_free_category_name_list (GList *names)
-{
-       GList *p;
-
-       for (p = names; p != NULL; p = p->next)
-        {
-               g_free (p->data);
-               p->data = NULL;
-       }
-
-       g_list_free (names);
-}
-
-
-/**
- * lgl_db_lookup_category_from_name:
- * @name: localized category name string
- *
- * Lookup category definition from localized category name string.
- *
- * Returns: pointer to a newly allocated #lglCategory structure.
- *
- */
-lglCategory *
-lgl_db_lookup_category_from_name (const gchar *name)
-{
-       GList       *p;
-       lglCategory *category;
-
-       if (!categories)
-        {
-               lgl_db_init ();
-       }
-
-       if (name == NULL)
-        {
-               /* If no name, return first category as a default */
-               return lgl_category_dup ((lglCategory *) categories->data);
-       }
-
-       for (p = categories; p != NULL; p = p->next)
-        {
-               category = (lglCategory *) p->data;
-               if (UTF8_EQUAL (category->name, name))
-                {
-                       return lgl_category_dup (category);
-               }
-       }
-
-       return NULL;
-}
-
-
-/**
- * lgl_db_lookup_category_from_id:
- * @id: category id string
- *
- * Lookup category definition from id string.
- *
- * Returns: pointer to a newly allocated #lglCategory structure.
- *
- */
-lglCategory *
-lgl_db_lookup_category_from_id (const gchar *id)
-{
-       GList       *p;
-       lglCategory *category;
-
-       if (!categories)
-        {
-               lgl_db_init ();
-       }
-
-       if (id == NULL)
-        {
-               /* If no id, return first category as a default */
-               return lgl_category_dup ((lglCategory *) categories->data);
-       }
-
-       for (p = categories; p != NULL; p = p->next)
-        {
-               category = (lglCategory *) p->data;
-               if (ASCII_EQUAL (category->id, id))
-                {
-                       return lgl_category_dup (category);
-               }
-       }
-
-       return NULL;
-}
-
-
-/**
- * lgl_db_lookup_category_id_from_name:
- * @name: localized category name stringp
- *
- * Lookup category name string from localized category name string.
- *
- * Returns: pointer to a newly allocated id string.
- *
- */
-gchar *
-lgl_db_lookup_category_id_from_name (const gchar *name)
-{
-       lglCategory *category = NULL;
-       gchar       *id = NULL;
-
-       if (name != NULL)
-       {
-               category = lgl_db_lookup_category_from_name (name);
-               if ( category != NULL )
-               {
-                       id = g_strdup (category->id);
-                       lgl_category_free (category);
-                       category = NULL;
-               }
-       }
-
-       return id;
-}
-
-
-/**
- * lgl_db_lookup_category_name_from_id:
- * @id: category id string
- *
- * Lookup localized category name string from category id string.
- *
- * Returns: pointer to a newly allocated localized category name string.
- *
- */
-gchar *
-lgl_db_lookup_category_name_from_id (const gchar         *id)
-{
-       lglCategory *category = NULL;
-       gchar       *name = NULL;
-
-       if (id != NULL)
-       {
-               category = lgl_db_lookup_category_from_id (id);
-               if ( category != NULL )
-               {
-                       name = g_strdup (category->name);
-                       lgl_category_free (category);
-                       category = NULL;
-               }
-       }
-
-       return name;
-}
-
-
-/**
- * lgl_db_is_category_id_known:
- * @id: category id to test
- *
- * Determine if given category id is known to libglabels.
- *
- * Returns: TRUE if id is known, otherwise FALSE.
- *
- */
-gboolean
-lgl_db_is_category_id_known (const gchar *id)
-{
-       GList       *p;
-       lglCategory *category;
-
-       if (!categories)
-        {
-               lgl_db_init ();
-       }
-
-       if (id == NULL)
-        {
-               return FALSE;
-       }
-
-       for (p = categories; p != NULL; p = p->next)
-        {
-               category = (lglCategory *) p->data;
-               if (ASCII_EQUAL (category->id, id))
-                {
-                       return TRUE;
-               }
-       }
-
-       return FALSE;
-}
-
-
-static GList *
-read_categories (void)
-{
-       gchar *data_dir;
-       GList *categories = NULL;
-
-       data_dir = LGL_SYSTEM_DATA_DIR;
-       categories = read_category_files_from_dir (categories, data_dir);
-       g_free (data_dir);
-
-       data_dir = LGL_USER_DATA_DIR;
-       categories = read_category_files_from_dir (categories, data_dir);
-       g_free (data_dir);
-
-       if (categories == NULL) {
-               g_critical (_("Unable to locate category definitions.  Libglabels may not be installed correctly!"));
-       }
-
-       return categories;
-}
-
-
-static GList *
-read_category_files_from_dir (GList       *categories,
-                              const gchar *dirname)
-{
-       GDir        *dp;
-       const gchar *filename, *extension;
-       gchar       *full_filename = NULL;
-       GError      *gerror = NULL;
-       GList       *new_categories = NULL;
-
-       if (dirname == NULL) {
-               return categories;
-       }
-
-       if (!g_file_test (dirname, G_FILE_TEST_EXISTS)) {
-               return categories;
-       }
-
-       dp = g_dir_open (dirname, 0, &gerror);
-       if (gerror != NULL) {
-               g_message ("cannot open data directory: %s", gerror->message );
-               return categories;
-       }
-
-       while ((filename = g_dir_read_name (dp)) != NULL) {
-
-               extension = strrchr (filename, '.');
-
-               if (extension != NULL) {
-
-                       if ( ASCII_EQUAL (extension, ".category") ||
-                            ASCII_EQUAL (filename, "categories.xml") )
-                        {
-
-                               full_filename =
-                                   g_build_filename (dirname, filename, NULL);
-                               new_categories =
-                                   lgl_xml_category_read_categories_from_file (full_filename);
-                               g_free (full_filename);
-
-                               categories = g_list_concat (categories, new_categories);
-                               new_categories = NULL;
-
-                       }
-
-               }
-
-       }
-
-       g_dir_close (dp);
-
-       return categories;
-}
-
-
-/**
- * lgl_db_print_known_categories:
- *
- * For debugging purposes: print a list of all category definitions known to
- * libglabels.
- *
- */
-void
-lgl_db_print_known_categories (void)
-{
-       GList       *p;
-       lglCategory *category;
-
-       if (!categories) {
-               lgl_db_init ();
-       }
-
-       g_print ("%s():\n", __FUNCTION__);
-       for (p = categories; p != NULL; p = p->next) {
-               category = (lglCategory *) p->data;
-
-               g_print ("CATEGORY id=\"%s\", name=\"%s\"\n", category->id, category->name);
-
-       }
-       g_print ("\n");
-
-}
-
-
-
-/*===========================================*/
-/* Brand db functions.                       */
-/*===========================================*/
-
-/**
- * lgl_db_get_brand_list:
- * @paper_id: If non NULL, limit results to given page size.
- * @category_id: If non NULL, limit results to given template category.
- *
- * Get a list of all valid brands of templates in the template database.
- * Results can be filtered by page size and/or template category.  A list of valid page
- * sizes can be obtained using lgl_db_get_paper_id_list().  A list of valid template
- * categories can be obtained using lgl_db_get_category_id_list().
- *
- * Returns: a list of brands
- */
-GList *
-lgl_db_get_brand_list (const gchar *paper_id,
-                       const gchar *category_id)
-{
-       GList            *p_tmplt, *p_alias;
-       lglTemplate      *template;
-       lglTemplateAlias *alias;
-       GList            *brands = NULL;
-
-       if (!templates)
-        {
-               lgl_db_init ();
-       }
-
-       for (p_tmplt = templates; p_tmplt != NULL; p_tmplt = p_tmplt->next)
-        {
-               template = (lglTemplate *) p_tmplt->data;
-               if (lgl_template_does_page_size_match (template, paper_id) &&
-                    lgl_template_does_category_match (template, category_id))
-                {
-                       for (p_alias = template->aliases; p_alias != NULL;
-                            p_alias = p_alias->next)
-                        {
-                                alias = (lglTemplateAlias *)p_alias->data;
-
-                                if ( !g_list_find_custom (brands, alias->brand,
-                                                          (GCompareFunc)lgl_str_utf8_casecmp) )
-                                {
-                                        brands = g_list_insert_sorted (brands,
-                                                                       g_strdup (alias->brand),
-                                                                       (GCompareFunc)lgl_str_utf8_casecmp);
-                                }
-                       }
-               }
-       }
-
-       return brands;
-}
-
-
-/**
- * lgl_db_free_brand_list:
- * @brands: List of template brand strings to be freed.
- *
- * Free up all storage associated with a list of template names obtained with
- * lgl_db_get_brand_list().
- *
- */
-void
-lgl_db_free_brand_list (GList *brands)
-{
-       GList *p_brand;
-
-       for (p_brand = brands; p_brand != NULL; p_brand = p_brand->next)
-        {
-               g_free (p_brand->data);
-               p_brand->data = NULL;
-       }
-
-       g_list_free (brands);
-}
-
-
-
-/*===========================================*/
-/* Template db functions.                    */
-/*===========================================*/
-
-/**
- * lgl_db_register_template:
- * @template:  Pointer to a template structure to add to database.
- *
- * Register a template.  This function adds a template to the template database.
- * The template will be stored in an individual XML file in the user template directory.
- *
- * Returns: Status of registration attempt (#lglDbRegStatus)
- */
-lglDbRegStatus
-lgl_db_register_template (const lglTemplate *template)
-{
-        lglTemplate *template_copy;
-        gchar       *dir, *filename, *abs_filename;
-        gint         bytes_written;
-
-       if (!templates)
-        {
-               lgl_db_init ();
-       }
-
-        if (lgl_db_does_template_exist (template->brand, template->part))
-        {
-                return LGL_DB_REG_BRAND_PART_EXISTS;
-        }
-
-       if (lgl_db_is_paper_id_known (template->paper_id))
-        {
-               dir = LGL_USER_DATA_DIR;
-               mkdir (dir, 0775); /* Try to make sure directory exists. */
-               filename = g_strdup_printf ("%s_%s.template", template->brand, template->part);
-               abs_filename = g_build_filename (dir, filename, NULL);
-               bytes_written = lgl_xml_template_write_template_to_file (template, abs_filename);
-               g_free (dir);
-               g_free (filename);
-               g_free (abs_filename);
-
-                if (bytes_written > 0)
-                {
-                        template_copy = lgl_template_dup (template);
-                        lgl_template_add_category (template_copy, "user-defined");
-                        templates = g_list_append (templates, template_copy);
-                        add_to_template_cache (template_copy);
-                        return LGL_DB_REG_OK;
-                }
-                else
-                {
-                        return LGL_DB_REG_FILE_WRITE_ERROR;
-                }
-       }
-        else
-        {
-               g_message ("Cannot register new template with unknown page size.");
-                return LGL_DB_REG_BAD_PAPER_ID;
-       }
-
-}
-
-
-/**
- * lgl_db_does_template_exist:
- * @brand: Brand name.
- * @part:  Part name/number.
- *
- * This function tests whether a template with the given brand and part name/number exists.
- *
- * Returns:  TRUE if such a template exists in the database.
- */
-gboolean
-lgl_db_does_template_exist (const gchar *brand,
-                            const gchar *part)
-{
-       GList            *p_tmplt, *p_alias;
-       lglTemplate      *template;
-        lglTemplateAlias *alias;
-
-       if (!templates)
-        {
-               lgl_db_init ();
-       }
-
-       if ((brand == NULL) || (part == NULL))
-        {
-               return FALSE;
-       }
-
-       for (p_tmplt = templates; p_tmplt != NULL; p_tmplt = p_tmplt->next)
-        {
-               template = (lglTemplate *) p_tmplt->data;
-               for (p_alias = template->aliases; p_alias != NULL; p_alias = p_alias->next)
-                {
-                        alias = (lglTemplateAlias *)p_alias->data;
-
-                       if ( UTF8_EQUAL (brand, alias->brand) &&
-                             UTF8_EQUAL (part, alias->part) )
-                        {
-                               return TRUE;
-                       }
-               }
-       }
-
-       return FALSE;
-}
-
-
-/**
- * lgl_db_does_template_name_exist:
- * @name: name string
- *
- * This function test whether a template with the given name exists.
- *
- * Returns: TRUE if such a template exists in the database.
- *
- */
-gboolean
-lgl_db_does_template_name_exist (const gchar *name)
-{
-       GList            *p_tmplt, *p_alias;
-        lglTemplate      *template;
-        lglTemplateAlias *alias;
-        gchar            *candidate_name;
-
-       if (!templates)
-        {
-               lgl_db_init ();
-       }
-
-       if (name == NULL)
-        {
-               return FALSE;
-       }
-
-       for (p_tmplt = templates; p_tmplt != NULL; p_tmplt = p_tmplt->next)
-        {
-               template = (lglTemplate *) p_tmplt->data;
-               for (p_alias = template->aliases; p_alias != NULL; p_alias = p_alias->next)
-                {
-                        alias = (lglTemplateAlias *)p_alias->data;
-                        candidate_name = g_strdup_printf ("%s %s", alias->brand, alias->part);
-
-                       if ( UTF8_EQUAL (candidate_name, name) ) {
-                                g_free (candidate_name);
-                                return TRUE;
-                       }
-                        g_free (candidate_name);
-               }
-       }
-
-       return FALSE;
-}
-
-
-/**
- * lgl_db_get_template_name_list_unique:
- * @brand:     If non NULL, limit results to given brand
- * @paper_id: If non NULL, limit results to given page size.
- * @category_id: If non NULL, limit results to given template category.
- *
- * Get a list of valid names of unique templates in the template database.  Results
- * can be filtered by page size and/or template category.  A list of valid page sizes
- * can be obtained using lgl_db_get_paper_id_list().  A list of valid template categories
- * can be obtained using lgl_db_get_category_id_list().
- *
- * This function differs from lgl_db_get_template_name_list_all(), because it does not
- * return multiple names for the same template.
- *
- * Returns: a list of template names.
- */
-GList *
-lgl_db_get_template_name_list_unique (const gchar *brand,
-                                      const gchar *paper_id,
-                                      const gchar *category_id)
-{
-       GList       *p_tmplt;
-       lglTemplate *template;
-        gchar       *name;
-       GList       *names = NULL;
-
-       if (!templates)
-        {
-               lgl_db_init ();
-       }
-
-       for (p_tmplt = templates; p_tmplt != NULL; p_tmplt = p_tmplt->next)
-        {
-               template = (lglTemplate *) p_tmplt->data;
-
-                if (lgl_template_does_brand_match (template, brand) &&
-                    lgl_template_does_page_size_match (template, paper_id) &&
-                    lgl_template_does_category_match (template, category_id))
-                {
-                        name = g_strdup_printf ("%s %s", template->brand, template->part);
-                        names = g_list_insert_sorted (names, name,
-                                                      (GCompareFunc)g_utf8_collate);
-                }
-       }
-
-       return names;
-}
-
-
-/**
- * lgl_db_get_template_name_list_all:
- * @brand:     If non NULL, limit results to given brand
- * @paper_id: If non NULL, limit results to given page size.
- * @category_id: If non NULL, limit results to given template category.
- *
- * Get a list of all valid names and aliases of templates in the template database.
- * Results can be filtered by page size and/or template category.  A list of valid page
- * sizes can be obtained using lgl_db_get_paper_id_list().  A list of valid template
- * categories can be obtained using lgl_db_get_category_id_list().
- *
- * This function differs from lgl_db_get_template_name_list_unique(), because it will
- * return multiple names for the same template.
- *
- * Returns: a list of template names and aliases.
- */
-GList *
-lgl_db_get_template_name_list_all (const gchar *brand,
-                                   const gchar *paper_id,
-                                   const gchar *category_id)
-{
-       GList            *p_tmplt, *p_alias;
-       lglTemplate      *template;
-       lglTemplateAlias *alias;
-        gchar            *name;
-       GList            *names = NULL;
-
-       if (!templates)
-        {
-               lgl_db_init ();
-       }
-
-       for (p_tmplt = templates; p_tmplt != NULL; p_tmplt = p_tmplt->next)
-        {
-               template = (lglTemplate *) p_tmplt->data;
-               if (lgl_template_does_page_size_match (template, paper_id) &&
-                    lgl_template_does_category_match (template, category_id))
-                {
-                       for (p_alias = template->aliases; p_alias != NULL;
-                            p_alias = p_alias->next)
-                        {
-                                alias = (lglTemplateAlias *)p_alias->data;
-
-                                if ( !brand || UTF8_EQUAL( alias->brand, brand) )
-                                {
-                                        name = g_strdup_printf ("%s %s", alias->brand, alias->part);
-                                        names = g_list_insert_sorted (names, name,
-                                                                      (GCompareFunc)g_utf8_collate);
-                                }
-                       }
-               }
-       }
-
-       return names;
-}
-
-
-/**
- * lgl_db_free_template_name_list:
- * @names: List of template name strings to be freed.
- *
- * Free up all storage associated with a list of template names obtained with
- * lgl_db_get_template_name_list_all() or lgl_db_get_template_name_list_unique().
- *
- */
-void
-lgl_db_free_template_name_list (GList *names)
-{
-       GList *p_name;
-
-       for (p_name = names; p_name != NULL; p_name = p_name->next)
-        {
-               g_free (p_name->data);
-               p_name->data = NULL;
-       }
-
-       g_list_free (names);
-}
-
-
-/**
- * lgl_db_lookup_template_from_name:
- * @name: name string
- *
- * Lookup template in template database from name string.
- *
- * Returns: pointer to a newly allocated #lglTemplate structure.
- *
- */
-lglTemplate *
-lgl_db_lookup_template_from_name (const gchar *name)
-{
-       GList            *p_alias;
-       lglTemplate      *template;
-        lglTemplateAlias *alias;
-        gchar            *candidate_name;
-       lglTemplate      *new_template;
-
-       if (!templates)
-        {
-               lgl_db_init ();
-       }
-
-       if (name == NULL)
-        {
-               /* If no name, return first template as a default */
-               return lgl_template_dup ((lglTemplate *) templates->data);
-       }
-
-        template = g_hash_table_lookup (template_cache, name);
-
-        if (template)
-        {
-                for (p_alias = template->aliases; p_alias != NULL; p_alias = p_alias->next)
-                {
-                        alias = (lglTemplateAlias *)p_alias->data;
-                        candidate_name = g_strdup_printf ("%s %s", alias->brand, alias->part);
-
-                        if ( UTF8_EQUAL (candidate_name, name) )
-                        {
-                                g_free (candidate_name);
-                                new_template = lgl_template_dup (template);
-                                g_free (new_template->brand);
-                                new_template->brand = g_strdup (alias->brand);
-                                g_free (new_template->part);
-                                new_template->part = g_strdup (alias->part);
-                                return new_template;
-                        }
-
-                        g_free (candidate_name);
-                }
-        }
-
-       /* No matching template has been found so return the first template */
-       return lgl_template_dup ((lglTemplate *) templates->data);
-}
-
-
-static void
-init_template_cache (void)
-{
-       GList            *p_tmplt, *p_alias;
-       lglTemplate      *template;
-        lglTemplateAlias *alias;
-        gchar            *name;
-
-        template_cache = g_hash_table_new (g_str_hash, g_str_equal);
-
-        for ( p_tmplt=templates; p_tmplt != NULL; p_tmplt=p_tmplt->next )
-        {
-               template = (lglTemplate *) p_tmplt->data;
-
-                for ( p_alias=template->aliases; p_alias != NULL; p_alias=p_alias->next )
-                {
-                        alias = (lglTemplateAlias *)p_alias->data;
-                        name = g_strdup_printf ("%s %s", alias->brand, alias->part);
-
-                        g_hash_table_insert (template_cache, name, template);
-                }
-        }
-}
-
-
-static void
-add_to_template_cache (lglTemplate *template)
-{
-       GList            *p_alias;
-        lglTemplateAlias *alias;
-        gchar            *name;
-
-        for ( p_alias=template->aliases; p_alias != NULL; p_alias=p_alias->next )
-        {
-                alias = (lglTemplateAlias *)p_alias->data;
-                name = g_strdup_printf ("%s %s", alias->brand, alias->part);
-
-                g_hash_table_insert (template_cache, name, template);
-        }
-}
-
-
-static GList *
-read_templates (void)
-{
-       gchar       *data_dir;
-       GList       *templates = NULL;
-        GList       *p;
-        lglTemplate *template;
-
-        /*
-         * User defined templates.  Add to user-defined category.
-         */
-       data_dir = LGL_USER_DATA_DIR;
-       templates = read_template_files_from_dir (templates, data_dir);
-       g_free (data_dir);
-        for ( p=templates; p != NULL; p=p->next )
-        {
-                template = (lglTemplate *)p->data;
-                lgl_template_add_category (template, "user-defined");
-        }
-
-        /*
-         * System templates.
-         */
-       data_dir = LGL_SYSTEM_DATA_DIR;
-       templates = read_template_files_from_dir (templates, data_dir);
-       g_free (data_dir);
-
-       if (templates == NULL)
-        {
-               g_critical (_("Unable to locate any template files.  Libglabels may not be installed correctly!"));
-       }
-
-       return templates;
-}
-
-
-static GList *
-read_template_files_from_dir (GList       *templates,
-                             const gchar *dirname)
-{
-       GDir        *dp;
-       const gchar *filename, *extension, *extension2;
-       gchar       *full_filename = NULL;
-       GError      *gerror = NULL;
-       GList       *new_templates = NULL;
-
-       if (dirname == NULL)
-               return templates;
-
-       if (!g_file_test (dirname, G_FILE_TEST_EXISTS))
-        {
-               return templates;
-       }
-
-       dp = g_dir_open (dirname, 0, &gerror);
-       if (gerror != NULL)
-        {
-               g_message ("cannot open data directory: %s", gerror->message );
-               return templates;
-       }
-
-       while ((filename = g_dir_read_name (dp)) != NULL)
-        {
-
-               extension = strrchr (filename, '.');
-               extension2 = strrchr (filename, '-');
-
-               if ( (extension && ASCII_EQUAL (extension, ".template")) ||
-                    (extension2 && ASCII_EQUAL (extension2, "-templates.xml")) )
-                {
-
-                       full_filename = g_build_filename (dirname, filename, NULL);
-                       new_templates =
-                               lgl_xml_template_read_templates_from_file (full_filename);
-                       g_free (full_filename);
-
-                       templates = g_list_concat (templates, new_templates);
-                       new_templates = NULL;
-               }
-
-       }
-
-       g_dir_close (dp);
-
-       return templates;
-}
-
-
-static lglTemplate *
-template_full_page (const gchar *paper_id)
-{
-       lglPaper              *paper = NULL;
-       lglTemplate           *template = NULL;
-       lglTemplateFrame      *frame = NULL;
-        gchar                 *part;
-        gchar                 *desc;
-
-       g_return_val_if_fail (paper_id, NULL);
-
-       paper = lgl_db_lookup_paper_from_id (paper_id);
-       if ( paper == NULL )
-        {
-               return NULL;
-       }
-
-       part = g_strdup_printf ("%s-Full-Page", paper->id);
-       desc = g_strdup_printf (_("Generic %s full page template"), paper->name);
-
-       template = lgl_template_new ("Generic", part, desc,
-                                     paper_id, paper->width, paper->height);
-
-
-       frame = lgl_template_frame_rect_new ("0",
-                                             paper->width,
-                                             paper->height,
-                                             0.0,
-                                             0.0,
-                                             0.0);
-       lgl_template_add_frame (template, frame);
-
-       lgl_template_frame_add_layout (frame, lgl_template_layout_new (1, 1, 0., 0., 0., 0.));
-
-       lgl_template_frame_add_markup (frame, lgl_template_markup_margin_new (9.0));
-
-       g_free (desc);
-       desc = NULL;
-       lgl_paper_free (paper);
-       paper = NULL;
-
-       return template;
-}
-
-
-/**
- * lgl_db_print_known_templates:
- *
- * Print all known templates (for debugging purposes).
- *
- */
-void
-lgl_db_print_known_templates (void)
-{
-       GList       *p;
-       lglTemplate *template;
-
-       g_print ("%s():\n", __FUNCTION__);
-       for (p=templates; p!=NULL; p=p->next)
-        {
-               template = (lglTemplate *)p->data;
-
-               g_print("TEMPLATE brand=\"%s\", part=\"%s\", description=\"%s\"\n",
-                       template->brand, template->part, template->description);
-
-       }
-       g_print ("\n");
-
-}
-
-/**
- * lgl_db_print_aliases:
- *   @template: template
- *
- * Print all aliases of a template (for debugging purposes).
- *
- */
-void
-lgl_db_print_aliases (const lglTemplate *template)
-{
-       GList            *p;
-        lglTemplateAlias *alias;
-
-       g_print ("%s():\n", __FUNCTION__);
-       for (p=template->aliases; p!=NULL; p=p->next)
-        {
-                alias = (lglTemplateAlias *)p->data;
-               
-               g_print("Alias: brand=\"%s\", part=\"%s\"\n", alias->brand, alias->part);
-
-       }
-       g_print ("\n");
-
-}
-
-
diff --git a/libglabels/db.h b/libglabels/db.h
deleted file mode 100644 (file)
index c6b6f7e..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (LIBGLABELS) Template library for GLABELS
- *
- *  db.h:  template db module header file
- *
- *  Copyright (C) 2006-2007  Jim Evins <evins@snaught.com>.
- *
- *  This file is part of the LIBGLABELS library.
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License as published by the Free Software Foundation; either
- *  version 2 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public
- *  License along with this library; if not, write to the Free
- *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- *  MA 02111-1307, USA
- */
-
-#ifndef __DB_H__
-#define __DB_H__
-
-#include <glib/gtypes.h>
-#include <glib/glist.h>
-
-#include "paper.h"
-#include "category.h"
-#include "template.h"
-
-G_BEGIN_DECLS
-
-typedef enum
-{
-        LGL_DB_REG_OK                =  0,
-        LGL_DB_REG_BAD_PAPER_ID      = -1,
-        LGL_DB_REG_BRAND_PART_EXISTS = -2,
-        LGL_DB_REG_FILE_WRITE_ERROR  = -3
-} lglDbRegStatus;
-
-/*
- * Module initialization
- */
-void           lgl_db_init                           (void);
-
-
-/*
- * Paper
- */
-GList         *lgl_db_get_paper_id_list              (void);
-
-void           lgl_db_free_paper_id_list             (GList               *ids);
-
-GList         *lgl_db_get_paper_name_list            (void);
-
-void           lgl_db_free_paper_name_list           (GList               *names);
-
-lglPaper      *lgl_db_lookup_paper_from_name         (const gchar         *name);
-
-lglPaper      *lgl_db_lookup_paper_from_id           (const gchar         *id);
-
-gchar         *lgl_db_lookup_paper_id_from_name      (const gchar         *name);
-
-gchar         *lgl_db_lookup_paper_name_from_id      (const gchar         *id);
-
-gboolean       lgl_db_is_paper_id_known              (const gchar         *id);
-
-gboolean       lgl_db_is_paper_id_other              (const gchar         *id);
-
-
-
-/*
- * Template categories
- */
-GList         *lgl_db_get_category_id_list           (void);
-
-void           lgl_db_free_category_id_list          (GList              *ids);
-
-GList         *lgl_db_get_category_name_list         (void);
-
-void           lgl_db_free_category_name_list        (GList               *names);
-
-lglCategory   *lgl_db_lookup_category_from_name      (const gchar         *name);
-
-lglCategory   *lgl_db_lookup_category_from_id        (const gchar         *id);
-
-gchar         *lgl_db_lookup_category_id_from_name   (const gchar         *name);
-
-gchar         *lgl_db_lookup_category_name_from_id   (const gchar         *id);
-
-gboolean       lgl_db_is_category_id_known           (const gchar         *id);
-
-
-/*
- * Template brands
- */
-GList         *lgl_db_get_brand_list                 (const gchar         *paper_id,
-                                                      const gchar         *category_id);
-
-void           lgl_db_free_brand_list                (GList               *brands);
-
-
-/*
- * Templates
- */
-lglDbRegStatus lgl_db_register_template              (const lglTemplate   *template);
-
-gboolean       lgl_db_does_template_exist            (const gchar         *brand,
-                                                      const gchar         *part);
-
-gboolean       lgl_db_does_template_name_exist       (const gchar         *name);
-
-GList         *lgl_db_get_template_name_list_unique  (const gchar         *brand,
-                                                      const gchar         *paper_id,
-                                                      const gchar         *category_id);
-
-GList         *lgl_db_get_template_name_list_all     (const gchar         *brand,
-                                                      const gchar         *paper_id,
-                                                      const gchar         *category_id);
-
-void           lgl_db_free_template_name_list        (GList               *names);
-
-lglTemplate   *lgl_db_lookup_template_from_name      (const gchar         *name);
-
-
-/*
- * Debugging functions
- */
-void           lgl_db_print_known_papers             (void);
-
-void           lgl_db_print_known_categories         (void);
-
-void           lgl_db_print_known_templates          (void);
-
-void           lgl_db_print_aliases                  (const lglTemplate    *template);
-
-
-
-G_END_DECLS
-
-#endif
diff --git a/libglabels/enums.h b/libglabels/enums.h
deleted file mode 100644 (file)
index d139dc2..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- *  (LIBGLABELS) Template library for GLABELS
- *
- *  enums.h:  common libGLabels enumerations header file
- *
- *  Copyright (C) 2003, 2004  Jim Evins <evins@snaught.com>.
- *
- *  This file is part of the LIBGLABELS library.
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License as published by the Free Software Foundation; either
- *  version 2 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public
- *  License along with this library; if not, write to the Free
- *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- *  MA 02111-1307, USA
- */
-
-#ifndef __ENUMS_H__
-#define __ENUMS_H__
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-/* Units of distance */
-typedef enum {
-       LGL_UNITS_POINT, /* encoded as "pt" */
-       LGL_UNITS_INCH,  /* encoded as "in" */
-       LGL_UNITS_MM,    /* encoded as "mm" */
-       LGL_UNITS_CM,    /* encoded as "cm" */
-       LGL_UNITS_PICA,  /* encoded as "pc" */
-
-       LGL_UNITS_FIRST = LGL_UNITS_POINT,
-       LGL_UNITS_LAST  = LGL_UNITS_PICA,
-} lglUnitsType;
-
-
-G_END_DECLS
-
-
-#endif /* __ENUMS_H__ */
diff --git a/libglabels/lgl-category.c b/libglabels/lgl-category.c
new file mode 100644 (file)
index 0000000..45945d6
--- /dev/null
@@ -0,0 +1,132 @@
+/*
+ *  lgl-category.c
+ *  Copyright (C) 2006-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglabels.
+ *
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "lgl-category.h"
+
+#include <glib/gi18n.h>
+#include <glib.h>
+#include <string.h>
+
+#include "libglabels-private.h"
+
+
+/*===========================================*/
+/* Private types                             */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Functions.                                */
+/*===========================================*/
+
+/**
+ * lgl_category_new:
+ * @id:     Id of category definition. (E.g. label, card, etc.)  Should be
+ *          unique.
+ * @name:   Localized name of category.
+ *
+ * Allocates and constructs a new #lglCategory structure.
+ *
+ * Returns: a pointer to a newly allocated #lglCategory structure.
+ *
+ */
+lglCategory *
+lgl_category_new (gchar             *id,
+                  gchar             *name)
+{
+        lglCategory *category;
+
+        category         = g_new0 (lglCategory,1);
+        category->id     = g_strdup (id);
+        category->name   = g_strdup (name);
+
+        return category;
+}
+
+
+/**
+ * lgl_category_dup:
+ * @orig:  #lglCategory structure to be duplicated.
+ *
+ * Duplicates an existing #lglCategory structure.
+ *
+ * Returns: a pointer to a newly allocated #lglCategory structure.
+ *
+ */
+lglCategory *lgl_category_dup (const lglCategory *orig)
+{
+        lglCategory       *category;
+
+        g_return_val_if_fail (orig, NULL);
+
+        category = g_new0 (lglCategory,1);
+
+        category->id     = g_strdup (orig->id);
+        category->name   = g_strdup (orig->name);
+
+        return category;
+}
+
+
+/**
+ * lgl_category_free:
+ * @category:  pointer to #lglCategory structure to be freed.
+ *
+ * Free all memory associated with an existing #lglCategory structure.
+ *
+ */
+void lgl_category_free (lglCategory *category)
+{
+
+        if ( category != NULL )
+        {
+                g_free (category->id);
+                category->id = NULL;
+
+                g_free (category->name);
+                category->name = NULL;
+
+                g_free (category);
+        }
+
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/lgl-category.h b/libglabels/lgl-category.h
new file mode 100644 (file)
index 0000000..02853d4
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ *  lgl-category.h
+ *  Copyright (C) 2006-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglabels.
+ *
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __LGL_CATEGORY_H__
+#define __LGL_CATEGORY_H__
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+/*
+ *   Template class
+ */
+typedef struct _lglCategory lglCategory;
+
+struct _lglCategory {
+        gchar               *id;     /* Unique ID of category */
+        gchar               *name;   /* Localized name of category */
+};
+
+
+/*
+ * Category construction
+ */
+lglCategory      *lgl_category_new                 (gchar             *id,
+                                                    gchar             *name);
+
+lglCategory      *lgl_category_dup                 (const lglCategory *orig);
+void              lgl_category_free                (lglCategory       *category);
+
+
+G_END_DECLS
+
+#endif /* __LGL_CATEGORY_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/lgl-db.c b/libglabels/lgl-db.c
new file mode 100644 (file)
index 0000000..0225a98
--- /dev/null
@@ -0,0 +1,2123 @@
+/*
+ *  lgl-db.c
+ *  Copyright (C) 2003-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglabels.
+ *
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "lgl-db.h"
+
+#include <glib/gi18n.h>
+#include <glib.h>
+#include <glib/gstdio.h>
+#include <glib-object.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include "libglabels-private.h"
+
+#include "lgl-xml-paper.h"
+#include "lgl-xml-category.h"
+#include "lgl-xml-vendor.h"
+#include "lgl-xml-template.h"
+
+/*===========================================*/
+/* Private macros and constants.             */
+/*===========================================*/
+
+/* Data system and user data directories.  (must free w/ g_free()) */
+#define SYSTEM_CONFIG_DIR     g_build_filename (LIBGLABELS_CONFIG_DIR, "templates", NULL)
+#define USER_CONFIG_DIR       g_build_filename (g_get_user_config_dir (), "libglabels", "templates" , NULL)
+#define ALT_USER_CONFIG_DIR   g_build_filename (g_get_home_dir (), ".glabels", NULL)
+
+
+/*===========================================*/
+/* Private types                             */
+/*===========================================*/
+
+#define TYPE_LGL_DB_MODEL              (lgl_db_model_get_type ())
+#define LGL_DB_MODEL(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LGL_DB_MODEL, lglDbModel))
+#define LGL_DB_MODEL_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LGL_DB_MODEL, lglDbModelClass))
+#define IS_LGL_DB_MODEL(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LGL_DB_MODEL))
+#define IS_LGL_DB_MODEL_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LGL_DB_MODEL))
+#define LGL_DB_MODEL_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), TYPE_LGL_DB_MODEL, lglDbModelClass))
+
+
+typedef struct _lglDbModel          lglDbModel;
+typedef struct _lglDbModelClass     lglDbModelClass;
+
+
+struct _lglDbModel {
+        GObject     parent;
+
+        GList      *papers;
+        GList      *categories;
+        GList      *vendors;
+        GList      *templates;
+
+        GHashTable *template_cache;
+};
+
+
+struct _lglDbModelClass {
+        GObjectClass  parent_class;
+
+        /*
+         * Signals
+         */
+        void (*changed)     (lglDbModel *this,
+                             gpointer    user_data);
+
+};
+
+
+enum {
+        CHANGED,
+        LAST_SIGNAL
+};
+
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+static guint signals[LAST_SIGNAL] = {0};
+
+static lglDbModel *model = NULL;
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+static void   lgl_db_model_finalize        (GObject     *object);
+
+static void   add_to_template_cache        (lglTemplate *template);
+
+static GList *read_papers                  (void);
+static GList *read_paper_files_from_dir    (GList       *papers,
+                                            const gchar *dirname);
+
+static GList *read_categories              (void);
+static GList *read_category_files_from_dir (GList       *categories,
+                                            const gchar *dirname);
+
+static GList *read_vendors                 (void);
+static GList *read_vendor_files_from_dir   (GList       *vendors,
+                                            const gchar *dirname);
+
+static void   read_templates               (void);
+static void   read_template_files_from_dir (const gchar *dirname);
+
+static lglTemplate *template_full_page     (const gchar *page_size);
+
+
+/*****************************************************************************/
+/* Object infrastructure.                                                    */
+/*****************************************************************************/
+G_DEFINE_TYPE (lglDbModel, lgl_db_model, G_TYPE_OBJECT);
+
+
+/*****************************************************************************/
+/* Class Init Function.                                                      */
+/*****************************************************************************/
+static void
+lgl_db_model_class_init (lglDbModelClass *class)
+{
+        GObjectClass  *gobject_class = (GObjectClass *) class;
+
+        lgl_db_model_parent_class = g_type_class_peek_parent (class);
+
+        gobject_class->finalize = lgl_db_model_finalize;
+
+        signals[CHANGED] =
+                g_signal_new ("changed",
+                              G_OBJECT_CLASS_TYPE (gobject_class),
+                              G_SIGNAL_RUN_LAST,
+                              G_STRUCT_OFFSET (lglDbModelClass, changed),
+                              NULL, NULL,
+                              g_cclosure_marshal_VOID__VOID,
+                              G_TYPE_NONE,
+                              0);
+}
+
+
+/*****************************************************************************/
+/* Object Instance Init Function.                                            */
+/*****************************************************************************/
+static void
+lgl_db_model_init (lglDbModel *this)
+{
+        this->template_cache = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify)lgl_template_free);
+}
+
+
+/*****************************************************************************/
+/* Finalize Method.                                                          */
+/*****************************************************************************/
+static void
+lgl_db_model_finalize (GObject *object)
+{
+        lglDbModel    *this;
+        GList         *p;
+
+        g_return_if_fail (object && IS_LGL_DB_MODEL (object));
+        this = LGL_DB_MODEL (object);
+
+        g_hash_table_unref (this->template_cache);
+
+        for (p = this->papers; p != NULL; p = p->next)
+        {
+                g_free (p->data);
+                p->data = NULL;
+        }
+        g_list_free (this->papers);
+
+        for (p = this->categories; p != NULL; p = p->next)
+        {
+                g_free (p->data);
+                p->data = NULL;
+        }
+        g_list_free (this->categories);
+
+        for (p = this->vendors; p != NULL; p = p->next)
+        {
+                g_free (p->data);
+                p->data = NULL;
+        }
+        g_list_free (this->vendors);
+
+        for (p = this->templates; p != NULL; p = p->next)
+        {
+                lgl_template_free ((lglTemplate *)p->data);
+                p->data = NULL;
+        }
+        g_list_free (this->templates);
+
+        G_OBJECT_CLASS (lgl_db_model_parent_class)->finalize (object);
+}
+
+
+/*****************************************************************************/
+/** New Object Generator.                                                    */
+/*****************************************************************************/
+lglDbModel *
+lgl_db_model_new (void)
+{
+        lglDbModel *this;
+
+        this = g_object_new (TYPE_LGL_DB_MODEL, NULL);
+
+        return this;
+}
+
+
+/*===========================================*/
+/* Module initialization                     */
+/*===========================================*/
+
+/**
+ * lgl_db_init:
+ *
+ * Initialize all libglabels subsystems.  It is not necessary for an application to call
+ * lgl_db_init(), because libglabels will initialize on demand.  An application programmer may
+ * choose to call lgl_db_init() at startup to minimize the impact of the first libglabels call
+ * on GUI response time.
+ *
+ * This function initializes its paper definitions, category definitions, vendor definitions,
+ * and its template database. It will search both system and user template directories to locate
+ * this data.
+ */
+void
+lgl_db_init (void)
+{
+        lglPaper    *paper_other;
+        lglCategory *category_user_defined;
+        lglTemplate *template;
+        GList       *page_sizes;
+        GList       *p;
+
+        model = lgl_db_model_new ();
+
+        /*
+         * Paper definitions
+         */
+        model->papers = read_papers ();
+
+        /* Create and append an "Other" entry. */
+        /* Translators: "Other" here means other page size.  Meaning a page size
+         * other than the standard ones that libglabels knows about such as
+         * "letter", "A4", etc. */
+        paper_other = lgl_paper_new ("Other", _("Other"), 0.0, 0.0, NULL);
+        model->papers = g_list_append (model->papers, paper_other);
+
+        /*
+         * Categories
+         */
+        model->categories = read_categories ();
+
+        /* Create and append a "User defined" entry. */
+        category_user_defined = lgl_category_new ("user-defined", _("User defined"));
+        model->categories = g_list_append (model->categories, category_user_defined);
+
+        /*
+         * Vendors
+         */
+        model->vendors = read_vendors ();
+
+        /*
+         * Templates
+         */
+        read_templates ();
+
+        /* Create and append generic full page templates. */
+        page_sizes = lgl_db_get_paper_id_list ();
+        for ( p=page_sizes; p != NULL; p=p->next )
+        {
+                if ( !lgl_db_is_paper_id_other (p->data) )
+                {
+                        template = template_full_page (p->data);
+                        _lgl_db_register_template_internal (template);
+                        lgl_template_free (template);
+                }
+        }
+        lgl_db_free_paper_id_list (page_sizes);
+
+}
+
+
+/**
+ * lgl_db_notify_add:
+ * @func: Callback function to be called when database changes.
+ * @user_data: Passback user data to supply to callback function.
+ *
+ * Register a notification callback function to be called when the database changes.
+ *
+ * Returns: an ID for this notification registration.
+ */
+gulong
+lgl_db_notify_add (lglDbNotifyFunc func,
+                   gpointer        user_data)
+{
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        return g_signal_connect_swapped (G_OBJECT (model), "changed", G_CALLBACK (func), user_data);
+}
+
+
+/**
+ * lgl_db_notify_remove:
+ * @id: ID of notification registration to cancel (see lgl_db_notify_add()).
+ *
+ * Cancel a previous registration a notification callback function.
+ */
+void
+lgl_db_notify_remove  (gulong id)
+{
+        g_signal_handler_disconnect (G_OBJECT (model), id);
+}
+
+
+/*===========================================*/
+/* Paper db functions.                       */
+/*===========================================*/
+
+/**
+ * lgl_db_get_paper_id_list:
+ *
+ * Get a list of all paper ids known to libglabels.
+ *
+ * Returns: a list of paper ids.
+ *
+ */
+GList *
+lgl_db_get_paper_id_list (void)
+{
+        GList           *ids = NULL;
+        GList           *p;
+        lglPaper        *paper;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        for ( p=model->papers; p != NULL; p=p->next )
+        {
+                paper = (lglPaper *)p->data;
+                ids = g_list_append (ids, g_strdup (paper->id));
+        }
+
+        return ids;
+}
+
+
+/**
+ * lgl_db_free_paper_id_list:
+ * @ids: List of id strings to be freed.
+ *
+ * Free up all storage associated with an id list obtained with
+ * lgl_db_get_paper_id_list().
+ *
+ */
+void
+lgl_db_free_paper_id_list (GList *ids)
+{
+        GList *p;
+
+        for (p = ids; p != NULL; p = p->next)
+        {
+                g_free (p->data);
+                p->data = NULL;
+        }
+
+        g_list_free (ids);
+}
+
+
+/**
+ * lgl_db_get_paper_name_list:
+ *
+ * Get a list of all localized paper names known to libglabels.
+ *
+ * Returns: a list of localized paper names.
+ *
+ */
+GList *
+lgl_db_get_paper_name_list (void)
+{
+        GList           *names = NULL;
+        GList           *p;
+        lglPaper        *paper;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        for ( p=model->papers; p != NULL; p=p->next )
+        {
+                paper = (lglPaper *)p->data;
+                names = g_list_append (names, g_strdup (paper->name));
+        }
+
+        return names;
+}
+
+
+/**
+ * lgl_db_free_paper_name_list:
+ * @names: List of localized paper name strings to be freed.
+ *
+ * Free up all storage associated with a name list obtained with
+ * lgl_db_get_paper_name_list().
+ *
+ */
+void
+lgl_db_free_paper_name_list (GList *names)
+{
+        GList *p;
+
+        for (p = names; p != NULL; p = p->next)
+        {
+                g_free (p->data);
+                p->data = NULL;
+        }
+
+        g_list_free (names);
+}
+
+
+/**
+ * lgl_db_lookup_paper_from_name:
+ * @name: localized paper name string
+ *
+ * Lookup paper definition from localized paper name string.
+ *
+ * Returns: pointer to a newly allocated #lglPaper structure.
+ *
+ */
+lglPaper *
+lgl_db_lookup_paper_from_name (const gchar *name)
+{
+        GList       *p;
+        lglPaper    *paper;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        if (name == NULL)
+        {
+                /* If no name, return first paper as a default */
+                return lgl_paper_dup ((lglPaper *) model->papers->data);
+        }
+
+        for (p = model->papers; p != NULL; p = p->next)
+        {
+                paper = (lglPaper *) p->data;
+                if (UTF8_EQUAL (paper->name, name))
+                {
+                        return lgl_paper_dup (paper);
+                }
+        }
+
+        return NULL;
+}
+
+
+/**
+ * lgl_db_lookup_paper_from_id:
+ * @id: paper id string
+ *
+ * Lookup paper definition from id string.
+ *
+ * Returns: pointer to a newly allocated #lglPaper structure.
+ *
+ */
+lglPaper *
+lgl_db_lookup_paper_from_id (const gchar *id)
+{
+        GList       *p;
+        lglPaper    *paper;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        if (id == NULL)
+        {
+                /* If no id, return first paper as a default */
+                return lgl_paper_dup ((lglPaper *) model->papers->data);
+        }
+
+        for (p = model->papers; p != NULL; p = p->next)
+        {
+                paper = (lglPaper *) p->data;
+                if (ASCII_EQUAL (paper->id, id))
+                {
+                        return lgl_paper_dup (paper);
+                }
+        }
+
+        return NULL;
+}
+
+
+/**
+ * lgl_db_lookup_paper_id_from_name:
+ * @name: localized paper name stringp
+ *
+ * Lookup paper name string from localized paper name string.
+ *
+ * Returns: pointer to a newly allocated id string.
+ *
+ */
+gchar *
+lgl_db_lookup_paper_id_from_name (const gchar *name)
+{
+        lglPaper *paper = NULL;
+        gchar    *id = NULL;
+
+        if (name != NULL)
+        {
+                paper = lgl_db_lookup_paper_from_name (name);
+                if ( paper != NULL )
+                {
+                        id = g_strdup (paper->id);
+                        lgl_paper_free (paper);
+                        paper = NULL;
+                }
+        }
+
+        return id;
+}
+
+
+/**
+ * lgl_db_lookup_paper_name_from_id:
+ * @id: paper id string
+ *
+ * Lookup localized paper name string from paper id string.
+ *
+ * Returns: pointer to a newly allocated localized paper name string.
+ *
+ */
+gchar *
+lgl_db_lookup_paper_name_from_id (const gchar         *id)
+{
+        lglPaper *paper = NULL;
+        gchar    *name = NULL;
+
+        if (id != NULL)
+        {
+                paper = lgl_db_lookup_paper_from_id (id);
+                if ( paper != NULL )
+                {
+                        name = g_strdup (paper->name);
+                        lgl_paper_free (paper);
+                        paper = NULL;
+                }
+        }
+
+        return name;
+}
+
+
+/**
+ * lgl_db_is_paper_id_known:
+ * @id: paper id to test
+ *
+ * Determine if given paper id is known to libglabels.
+ *
+ * Returns: TRUE if id is known, otherwise FALSE.
+ *
+ */
+gboolean
+lgl_db_is_paper_id_known (const gchar *id)
+{
+        GList       *p;
+        lglPaper    *paper;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        if (id == NULL)
+        {
+                return FALSE;
+        }
+
+        for (p = model->papers; p != NULL; p = p->next)
+        {
+                paper = (lglPaper *) p->data;
+                if (ASCII_EQUAL (paper->id, id))
+                {
+                        return TRUE;
+                }
+        }
+
+        return FALSE;
+}
+
+
+/**
+ * lgl_db_is_paper_id_other:
+ * @id: paper id to test
+ *
+ * Determine if given paper id is the special id "Other."
+ *
+ * Returns: TRUE if id is "Other", otherwise FALSE.
+ *
+ */
+gboolean
+lgl_db_is_paper_id_other (const gchar *id)
+{
+        if (id == NULL)
+        {
+                return FALSE;
+        }
+
+        return (ASCII_EQUAL (id, "Other"));
+}
+
+
+static GList *
+read_papers (void)
+{
+        gchar *data_dir;
+        GList *papers = NULL;
+
+        data_dir = SYSTEM_CONFIG_DIR;
+        papers = read_paper_files_from_dir (papers, data_dir);
+        g_free (data_dir);
+
+        data_dir = USER_CONFIG_DIR;
+        papers = read_paper_files_from_dir (papers, data_dir);
+        g_free (data_dir);
+
+        if (papers == NULL)
+        {
+                g_critical (_("Unable to locate paper size definitions.  Libglabels may not be installed correctly!"));
+        }
+
+        return papers;
+}
+
+
+static GList *
+read_paper_files_from_dir (GList       *papers,
+                           const gchar *dirname)
+{
+        GDir        *dp;
+        const gchar *filename, *extension;
+        gchar       *full_filename = NULL;
+        GError      *gerror = NULL;
+        GList       *new_papers = NULL;
+
+        if (dirname == NULL)
+        {
+                return papers;
+        }
+
+        if (!g_file_test (dirname, G_FILE_TEST_EXISTS))
+        {
+                return papers;
+        }
+
+        dp = g_dir_open (dirname, 0, &gerror);
+        if (gerror != NULL)
+        {
+                g_message ("cannot open data directory: %s", gerror->message );
+                return papers;
+        }
+
+        while ((filename = g_dir_read_name (dp)) != NULL)
+        {
+
+                extension = strrchr (filename, '.');
+
+                if (extension != NULL)
+                {
+
+                        if ( ASCII_EQUAL (filename, "paper-sizes.xml") )
+                        {
+
+                                full_filename =
+                                    g_build_filename (dirname, filename, NULL);
+                                new_papers =
+                                    lgl_xml_paper_read_papers_from_file (full_filename);
+                                g_free (full_filename);
+
+                                papers = g_list_concat (papers, new_papers);
+                                new_papers = NULL;
+
+                        }
+
+                }
+
+        }
+
+        g_dir_close (dp);
+
+        return papers;
+}
+
+
+/**
+ * lgl_db_print_known_papers:
+ *
+ * For debugging purposes: print a list of all paper definitions known to
+ * libglabels.
+ *
+ */
+void
+lgl_db_print_known_papers (void)
+{
+        GList       *p;
+        lglPaper    *paper;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        g_print ("%s():\n", __FUNCTION__);
+        for (p = model->papers; p != NULL; p = p->next)
+        {
+                paper = (lglPaper *) p->data;
+
+                g_print ("PAPER id=\"%s\", name=\"%s\", width=%gpts, height=%gpts\n",
+                         paper->id, paper->name, paper->width, paper->height);
+        }
+        g_print ("\n");
+
+}
+
+
+/*===========================================*/
+/* Category db functions.                    */
+/*===========================================*/
+
+/**
+ * lgl_db_get_category_id_list:
+ *
+ * Get a list of all category ids known to libglabels.
+ *
+ * Returns: a list of category ids.
+ *
+ */
+GList *
+lgl_db_get_category_id_list (void)
+{
+        GList           *ids = NULL;
+        GList           *p;
+        lglCategory     *category;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        for ( p=model->categories; p != NULL; p=p->next )
+        {
+                category = (lglCategory *)p->data;
+                ids = g_list_append (ids, g_strdup (category->id));
+        }
+
+        return ids;
+}
+
+
+/**
+ * lgl_db_free_category_id_list:
+ * @ids: List of id strings to be freed.
+ *
+ * Free up all storage associated with an id list obtained with
+ * lgl_db_get_category_id_list().
+ *
+ */
+void
+lgl_db_free_category_id_list (GList *ids)
+{
+        GList *p;
+
+        for (p = ids; p != NULL; p = p->next)
+        {
+                g_free (p->data);
+                p->data = NULL;
+        }
+
+        g_list_free (ids);
+}
+
+
+/**
+ * lgl_db_get_category_name_list:
+ *
+ * Get a list of all localized category names known to libglabels.
+ *
+ * Returns: a list of localized category names.
+ *
+ */
+GList *
+lgl_db_get_category_name_list (void)
+{
+        GList           *names = NULL;
+        GList           *p;
+        lglCategory     *category;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        for ( p=model->categories; p != NULL; p=p->next )
+        {
+                category = (lglCategory *)p->data;
+                names = g_list_append (names, g_strdup (category->name));
+        }
+
+        return names;
+}
+
+
+/**
+ * lgl_db_free_category_name_list:
+ * @names: List of localized category name strings to be freed.
+ *
+ * Free up all storage associated with a name list obtained with
+ * lgl_db_get_category_name_list().
+ *
+ */
+void
+lgl_db_free_category_name_list (GList *names)
+{
+        GList *p;
+
+        for (p = names; p != NULL; p = p->next)
+        {
+                g_free (p->data);
+                p->data = NULL;
+        }
+
+        g_list_free (names);
+}
+
+
+/**
+ * lgl_db_lookup_category_from_name:
+ * @name: localized category name string
+ *
+ * Lookup category definition from localized category name string.
+ *
+ * Returns: pointer to a newly allocated #lglCategory structure.
+ *
+ */
+lglCategory *
+lgl_db_lookup_category_from_name (const gchar *name)
+{
+        GList       *p;
+        lglCategory *category;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        if (name == NULL)
+        {
+                /* If no name, return first category as a default */
+                return lgl_category_dup ((lglCategory *) model->categories->data);
+        }
+
+        for (p = model->categories; p != NULL; p = p->next)
+        {
+                category = (lglCategory *) p->data;
+                if (UTF8_EQUAL (category->name, name))
+                {
+                        return lgl_category_dup (category);
+                }
+        }
+
+        return NULL;
+}
+
+
+/**
+ * lgl_db_lookup_category_from_id:
+ * @id: category id string
+ *
+ * Lookup category definition from id string.
+ *
+ * Returns: pointer to a newly allocated #lglCategory structure.
+ *
+ */
+lglCategory *
+lgl_db_lookup_category_from_id (const gchar *id)
+{
+        GList       *p;
+        lglCategory *category;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        if (id == NULL)
+        {
+                /* If no id, return first category as a default */
+                return lgl_category_dup ((lglCategory *) model->categories->data);
+        }
+
+        for (p = model->categories; p != NULL; p = p->next)
+        {
+                category = (lglCategory *) p->data;
+                if (ASCII_EQUAL (category->id, id))
+                {
+                        return lgl_category_dup (category);
+                }
+        }
+
+        return NULL;
+}
+
+
+/**
+ * lgl_db_lookup_category_id_from_name:
+ * @name: localized category name stringp
+ *
+ * Lookup category name string from localized category name string.
+ *
+ * Returns: pointer to a newly allocated id string.
+ *
+ */
+gchar *
+lgl_db_lookup_category_id_from_name (const gchar *name)
+{
+        lglCategory *category = NULL;
+        gchar       *id = NULL;
+
+        if (name != NULL)
+        {
+                category = lgl_db_lookup_category_from_name (name);
+                if ( category != NULL )
+                {
+                        id = g_strdup (category->id);
+                        lgl_category_free (category);
+                        category = NULL;
+                }
+        }
+
+        return id;
+}
+
+
+/**
+ * lgl_db_lookup_category_name_from_id:
+ * @id: category id string
+ *
+ * Lookup localized category name string from category id string.
+ *
+ * Returns: pointer to a newly allocated localized category name string.
+ *
+ */
+gchar *
+lgl_db_lookup_category_name_from_id (const gchar         *id)
+{
+        lglCategory *category = NULL;
+        gchar       *name = NULL;
+
+        if (id != NULL)
+        {
+                category = lgl_db_lookup_category_from_id (id);
+                if ( category != NULL )
+                {
+                        name = g_strdup (category->name);
+                        lgl_category_free (category);
+                        category = NULL;
+                }
+        }
+
+        return name;
+}
+
+
+/**
+ * lgl_db_is_category_id_known:
+ * @id: category id to test
+ *
+ * Determine if given category id is known to libglabels.
+ *
+ * Returns: TRUE if id is known, otherwise FALSE.
+ *
+ */
+gboolean
+lgl_db_is_category_id_known (const gchar *id)
+{
+        GList       *p;
+        lglCategory *category;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        if (id == NULL)
+        {
+                return FALSE;
+        }
+
+        for (p = model->categories; p != NULL; p = p->next)
+        {
+                category = (lglCategory *) p->data;
+                if (ASCII_EQUAL (category->id, id))
+                {
+                        return TRUE;
+                }
+        }
+
+        return FALSE;
+}
+
+
+static GList *
+read_categories (void)
+{
+        gchar *data_dir;
+        GList *categories = NULL;
+
+        data_dir = SYSTEM_CONFIG_DIR;
+        categories = read_category_files_from_dir (categories, data_dir);
+        g_free (data_dir);
+
+        data_dir = USER_CONFIG_DIR;
+        categories = read_category_files_from_dir (categories, data_dir);
+        g_free (data_dir);
+
+        if (categories == NULL)
+        {
+                g_critical (_("Unable to locate category definitions.  Libglabels may not be installed correctly!"));
+        }
+
+        return categories;
+}
+
+
+static GList *
+read_category_files_from_dir (GList       *categories,
+                              const gchar *dirname)
+{
+        GDir        *dp;
+        const gchar *filename, *extension;
+        gchar       *full_filename = NULL;
+        GError      *gerror = NULL;
+        GList       *new_categories = NULL;
+
+        if (dirname == NULL)
+        {
+                return categories;
+        }
+
+        if (!g_file_test (dirname, G_FILE_TEST_EXISTS))
+        {
+                return categories;
+        }
+
+        dp = g_dir_open (dirname, 0, &gerror);
+        if (gerror != NULL)
+        {
+                g_message ("cannot open data directory: %s", gerror->message );
+                return categories;
+        }
+
+        while ((filename = g_dir_read_name (dp)) != NULL)
+        {
+
+                extension = strrchr (filename, '.');
+
+                if (extension != NULL)
+                {
+
+                        if ( ASCII_EQUAL (filename, "categories.xml") )
+                        {
+
+                                full_filename =
+                                    g_build_filename (dirname, filename, NULL);
+                                new_categories =
+                                    lgl_xml_category_read_categories_from_file (full_filename);
+                                g_free (full_filename);
+
+                                categories = g_list_concat (categories, new_categories);
+                                new_categories = NULL;
+
+                        }
+
+                }
+
+        }
+
+        g_dir_close (dp);
+
+        return categories;
+}
+
+
+/**
+ * lgl_db_print_known_categories:
+ *
+ * For debugging purposes: print a list of all category definitions known to
+ * libglabels.
+ *
+ */
+void
+lgl_db_print_known_categories (void)
+{
+        GList       *p;
+        lglCategory *category;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        g_print ("%s():\n", __FUNCTION__);
+        for (p = model->categories; p != NULL; p = p->next)
+        {
+                category = (lglCategory *) p->data;
+
+                g_print ("CATEGORY id=\"%s\", name=\"%s\"\n", category->id, category->name);
+        }
+        g_print ("\n");
+
+}
+
+
+/*===========================================*/
+/* Vendor db functions.                       */
+/*===========================================*/
+
+/**
+ * lgl_db_get_vendor_name_list:
+ *
+ * Get a list of all localized vendor names known to libglabels.
+ *
+ * Returns: a list of localized vendor names.
+ *
+ */
+GList *
+lgl_db_get_vendor_name_list (void)
+{
+        GList           *names = NULL;
+        GList           *p;
+        lglVendor       *vendor;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        for ( p=model->vendors; p != NULL; p=p->next )
+        {
+                vendor = (lglVendor *)p->data;
+                names = g_list_append (names, g_strdup (vendor->name));
+        }
+
+        return names;
+}
+
+
+/**
+ * lgl_db_free_vendor_name_list:
+ * @names: List of localized vendor name strings to be freed.
+ *
+ * Free up all storage associated with a name list obtained with
+ * lgl_db_get_vendor_name_list().
+ *
+ */
+void
+lgl_db_free_vendor_name_list (GList *names)
+{
+        GList *p;
+
+        for (p = names; p != NULL; p = p->next)
+        {
+                g_free (p->data);
+                p->data = NULL;
+        }
+
+        g_list_free (names);
+}
+
+
+/**
+ * lgl_db_lookup_vendor_from_name:
+ * @name: localized vendor name string
+ *
+ * Lookup vendor definition from localized vendor name string.
+ *
+ * Returns: pointer to a newly allocated #lglVendor structure.
+ *
+ */
+lglVendor *
+lgl_db_lookup_vendor_from_name (const gchar *name)
+{
+        GList       *p;
+        lglVendor   *vendor;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        if (name == NULL)
+        {
+                /* If no name, return first vendor as a default */
+                return lgl_vendor_dup ((lglVendor *) model->vendors->data);
+        }
+
+        for (p = model->vendors; p != NULL; p = p->next)
+        {
+                vendor = (lglVendor *) p->data;
+                if (UTF8_EQUAL (vendor->name, name))
+                {
+                        return lgl_vendor_dup (vendor);
+                }
+        }
+
+        return NULL;
+}
+
+
+/**
+ * lgl_db_is_vendor_name_known:
+ * @name: vendor name to test
+ *
+ * Determine if given vendor id is known to libglabels.
+ *
+ * Returns: TRUE if id is known, otherwise FALSE.
+ *
+ */
+gboolean
+lgl_db_is_vendor_name_known (const gchar *name)
+{
+        GList       *p;
+        lglVendor   *vendor;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        if (name == NULL)
+        {
+                return FALSE;
+        }
+
+        for (p = model->vendors; p != NULL; p = p->next)
+        {
+                vendor = (lglVendor *) p->data;
+                if (UTF8_EQUAL (vendor->name, name))
+                {
+                        return TRUE;
+                }
+        }
+
+        return FALSE;
+}
+
+
+static GList *
+read_vendors (void)
+{
+        gchar *data_dir;
+        GList *vendors = NULL;
+
+        data_dir = SYSTEM_CONFIG_DIR;
+        vendors = read_vendor_files_from_dir (vendors, data_dir);
+        g_free (data_dir);
+
+        data_dir = USER_CONFIG_DIR;
+        vendors = read_vendor_files_from_dir (vendors, data_dir);
+        g_free (data_dir);
+
+        return vendors;
+}
+
+
+static GList *
+read_vendor_files_from_dir (GList      *vendors,
+                           const gchar *dirname)
+{
+        GDir        *dp;
+        const gchar *filename, *extension;
+        gchar       *full_filename = NULL;
+        GError      *gerror = NULL;
+        GList       *new_vendors = NULL;
+
+        if (dirname == NULL)
+        {
+                return vendors;
+        }
+
+        if (!g_file_test (dirname, G_FILE_TEST_EXISTS))
+        {
+                return vendors;
+        }
+
+        dp = g_dir_open (dirname, 0, &gerror);
+        if (gerror != NULL)
+        {
+                g_message ("cannot open data directory: %s", gerror->message );
+                return vendors;
+        }
+
+        while ((filename = g_dir_read_name (dp)) != NULL)
+        {
+
+                extension = strrchr (filename, '.');
+
+                if (extension != NULL)
+                {
+
+                        if ( ASCII_EQUAL (filename, "vendors.xml") )
+                        {
+
+                                full_filename =
+                                    g_build_filename (dirname, filename, NULL);
+                                new_vendors =
+                                    lgl_xml_vendor_read_vendors_from_file (full_filename);
+                                g_free (full_filename);
+
+                                vendors = g_list_concat (vendors, new_vendors);
+                                new_vendors = NULL;
+
+                        }
+
+                }
+
+        }
+
+        g_dir_close (dp);
+
+        return vendors;
+}
+
+
+/**
+ * lgl_db_print_known_vendors:
+ *
+ * For debugging purposes: print a list of all vendor definitions known to
+ * libglabels.
+ *
+ */
+void
+lgl_db_print_known_vendors (void)
+{
+        GList       *p;
+        lglVendor   *vendor;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        g_print ("%s():\n", __FUNCTION__);
+        for (p = model->vendors; p != NULL; p = p->next)
+        {
+                vendor = (lglVendor *) p->data;
+
+                g_print ("VENDOR name=\"%s\", url=\"%s\"\n",
+                         vendor->name, vendor->url);
+        }
+        g_print ("\n");
+
+}
+
+
+/*===========================================*/
+/* Brand db functions.                       */
+/*===========================================*/
+
+/**
+ * lgl_db_get_brand_list:
+ * @paper_id: If non NULL, limit results to given page size.
+ * @category_id: If non NULL, limit results to given template category.
+ *
+ * Get a list of all valid brands of templates in the template database.
+ * Results can be filtered by page size and/or template category.  A list of valid page
+ * sizes can be obtained using lgl_db_get_paper_id_list().  A list of valid template
+ * categories can be obtained using lgl_db_get_category_id_list().
+ *
+ * Returns: a list of brands
+ */
+GList *
+lgl_db_get_brand_list (const gchar *paper_id,
+                       const gchar *category_id)
+{
+        GList            *p_tmplt;
+        lglTemplate      *template;
+        GList            *brands = NULL;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        for (p_tmplt = model->templates; p_tmplt != NULL; p_tmplt = p_tmplt->next)
+        {
+                template = (lglTemplate *) p_tmplt->data;
+                if (lgl_template_does_page_size_match (template, paper_id) &&
+                    lgl_template_does_category_match (template, category_id))
+                {
+
+                        if ( !g_list_find_custom (brands, template->brand,
+                                                  (GCompareFunc)lgl_str_utf8_casecmp) )
+                        {
+                                brands = g_list_insert_sorted (brands,
+                                                               g_strdup (template->brand),
+                                                               (GCompareFunc)lgl_str_utf8_casecmp);
+                        }
+                }
+        }
+
+        return brands;
+}
+
+
+/**
+ * lgl_db_free_brand_list:
+ * @brands: List of template brand strings to be freed.
+ *
+ * Free up all storage associated with a list of template names obtained with
+ * lgl_db_get_brand_list().
+ *
+ */
+void
+lgl_db_free_brand_list (GList *brands)
+{
+        GList *p_brand;
+
+        for (p_brand = brands; p_brand != NULL; p_brand = p_brand->next)
+        {
+                g_free (p_brand->data);
+                p_brand->data = NULL;
+        }
+
+        g_list_free (brands);
+}
+
+
+/*===========================================*/
+/* Template db functions.                    */
+/*===========================================*/
+
+void
+_lgl_db_register_template_internal (const lglTemplate   *template)
+{
+        lglTemplate *template_copy;
+
+        if (!lgl_db_does_template_exist (template->brand, template->part))
+        {
+                template_copy = lgl_template_dup (template);
+                model->templates = g_list_append (model->templates, template_copy);
+                add_to_template_cache (template_copy);
+        }
+        else
+        {
+                g_message ("Duplicate template: %s %s.", template->brand, template->part);
+        }
+}
+
+
+/**
+ * lgl_db_register_template:
+ * @template:  Pointer to a template structure to add to database.
+ *
+ * Register a template.  This function adds a template to the template database.
+ * The template will be stored in an individual XML file in the user template directory.
+ *
+ * Returns: Status of registration attempt (#lglDbRegStatus)
+ */
+lglDbRegStatus
+lgl_db_register_template (const lglTemplate *template)
+{
+        lglTemplate *template_copy;
+        gchar       *dir, *filename, *abs_filename;
+        gint         bytes_written;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        if (lgl_db_does_template_exist (template->brand, template->part))
+        {
+                return LGL_DB_REG_BRAND_PART_EXISTS;
+        }
+
+        if (lgl_db_is_paper_id_known (template->paper_id))
+        {
+                dir = USER_CONFIG_DIR;
+                g_mkdir_with_parents (dir, 0775); /* Try to make sure directory exists. */
+                filename = g_strdup_printf ("%s_%s.template", template->brand, template->part);
+                abs_filename = g_build_filename (dir, filename, NULL);
+                bytes_written = lgl_xml_template_write_template_to_file (template, abs_filename);
+                g_free (dir);
+                g_free (filename);
+                g_free (abs_filename);
+
+                if (bytes_written > 0)
+                {
+                        template_copy = lgl_template_dup (template);
+                        lgl_template_add_category (template_copy, "user-defined");
+                        model->templates = g_list_append (model->templates, template_copy);
+                        add_to_template_cache (template_copy);
+                        g_signal_emit (G_OBJECT (model), signals[CHANGED], 0);
+                        return LGL_DB_REG_OK;
+                }
+                else
+                {
+                        return LGL_DB_REG_FILE_WRITE_ERROR;
+                }
+        }
+        else
+        {
+                g_message ("Cannot register new template with unknown page size.");
+                return LGL_DB_REG_BAD_PAPER_ID;
+        }
+
+}
+
+
+/**
+ * lgl_db_delete_template_by_name:
+ * @name:  Name of template to be deleted.
+ *
+ * Delete a user defined template.  This function deletes a template from
+ * the template database. The individual XML file in the user template
+ * directory will also be removed.
+ *
+ * Returns: Status of registration attempt (#lglDbDeleteStatus)
+ */
+lglDbDeleteStatus
+lgl_db_delete_template_by_name (const gchar *name)
+{
+        lglTemplate *template, *template1;
+        gchar       *dir, *filename, *abs_filename;
+        GList       *p;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        if (!lgl_db_does_template_name_exist (name))
+        {
+                return LGL_DB_DELETE_DOES_NOT_EXIST;
+        }
+
+        template = lgl_db_lookup_template_from_name (name);
+        if ( lgl_template_does_category_match (template, "user-defined") )
+        {
+                dir = USER_CONFIG_DIR;
+                filename = g_strdup_printf ("%s_%s.template", template->brand, template->part);
+                abs_filename = g_build_filename (dir, filename, NULL);
+
+                if (!g_file_test (abs_filename, G_FILE_TEST_EXISTS))
+                {
+                        g_message ("File \"%s\" does not exist.  Cannot delete template.", abs_filename);
+                        return LGL_DB_DELETE_DOES_NOT_EXIST;
+                }
+
+                g_unlink (abs_filename);
+
+                g_free (dir);
+                g_free (filename);
+                g_free (abs_filename);
+
+                for ( p=model->templates; p != NULL; p=p->next )
+                {
+                        template1 = (lglTemplate *)p->data;
+
+                        if ( lgl_template_do_templates_match (template, template1) )
+                        {
+                                model->templates = g_list_delete_link (model->templates, p);
+                                g_hash_table_remove (model->template_cache, name);
+                                break;
+                        }
+                }
+
+                lgl_template_free (template);
+
+                g_signal_emit (G_OBJECT (model), signals[CHANGED], 0);
+                return LGL_DB_DELETE_OK;
+        }
+        else
+        {
+                return LGL_DB_DELETE_NOT_USER_DEFINED;
+        }
+
+}
+
+
+/**
+ * lgl_db_delete_template_by_brand_part:
+ * @brand:  Brand name or vendor of template to be deleted.
+ * @part:   Part name or number of template to be deleted.
+ *
+ * Delete a user defined template.  This function deletes a template from
+ * the template database. The individual XML file in the user template
+ * directory will also be removed.
+ *
+ * Returns: Status of registration attempt (#lglDbDeleteStatus)
+ */
+lglDbDeleteStatus
+lgl_db_delete_template_by_brand_part (const gchar  *brand,
+                                      const gchar  *part)
+{
+        gchar             *name;
+        lglDbDeleteStatus  status;
+
+        name = g_strdup_printf ("%s %s", brand, part);
+
+        status = lgl_db_delete_template_by_name (name);
+
+        g_free (name);
+
+        return status;
+}
+
+
+/**
+ * lgl_db_does_template_exist:
+ * @brand: Brand name.
+ * @part:  Part name/number.
+ *
+ * This function tests whether a template with the given brand and part name/number exists.
+ *
+ * Returns:  TRUE if such a template exists in the database.
+ */
+gboolean
+lgl_db_does_template_exist (const gchar *brand,
+                            const gchar *part)
+{
+        GList            *p_tmplt;
+        lglTemplate      *template;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        if ((brand == NULL) || (part == NULL))
+        {
+                return FALSE;
+        }
+
+        for (p_tmplt = model->templates; p_tmplt != NULL; p_tmplt = p_tmplt->next)
+        {
+                template = (lglTemplate *) p_tmplt->data;
+
+                if ( UTF8_EQUAL (brand, template->brand) &&
+                     UTF8_EQUAL (part, template->part) )
+                {
+                        return TRUE;
+                }
+        }
+
+        return FALSE;
+}
+
+
+/**
+ * lgl_db_does_template_name_exist:
+ * @name: name string
+ *
+ * This function test whether a template with the given name exists.
+ *
+ * Returns: TRUE if such a template exists in the database.
+ *
+ */
+gboolean
+lgl_db_does_template_name_exist (const gchar *name)
+{
+        GList            *p_tmplt;
+        lglTemplate      *template;
+        gchar            *candidate_name;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        if (name == NULL)
+        {
+                return FALSE;
+        }
+
+        for (p_tmplt = model->templates; p_tmplt != NULL; p_tmplt = p_tmplt->next)
+        {
+                template = (lglTemplate *) p_tmplt->data;
+                candidate_name = g_strdup_printf ("%s %s", template->brand, template->part);
+
+                if ( UTF8_EQUAL (candidate_name, name) )
+                {
+                        g_free (candidate_name);
+                        return TRUE;
+                }
+                g_free (candidate_name);
+        }
+
+        return FALSE;
+}
+
+
+/**
+ * lgl_db_get_template_name_list_all:
+ * @brand:     If non NULL, limit results to given brand
+ * @paper_id: If non NULL, limit results to given page size.
+ * @category_id: If non NULL, limit results to given template category.
+ *
+ * Get a list of all valid names of templates in the template database.
+ * Results can be filtered by page size and/or template category.  A list of valid page
+ * sizes can be obtained using lgl_db_get_paper_id_list().  A list of valid template
+ * categories can be obtained using lgl_db_get_category_id_list().
+ *
+ * Returns: a list of template names.
+ */
+GList *
+lgl_db_get_template_name_list_all (const gchar *brand,
+                                   const gchar *paper_id,
+                                   const gchar *category_id)
+{
+        GList            *p_tmplt;
+        lglTemplate      *template;
+        gchar            *name;
+        GList            *names = NULL;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        for (p_tmplt = model->templates; p_tmplt != NULL; p_tmplt = p_tmplt->next)
+        {
+                template = (lglTemplate *) p_tmplt->data;
+                if (lgl_template_does_brand_match (template, brand) &&
+                    lgl_template_does_page_size_match (template, paper_id) &&
+                    lgl_template_does_category_match (template, category_id))
+                {
+                        name = g_strdup_printf ("%s %s", template->brand, template->part);
+                        names = g_list_insert_sorted (names, name, (GCompareFunc)lgl_str_part_name_cmp);
+                }
+        }
+
+        return names;
+}
+
+
+/**
+ * lgl_db_get_similar_template_name_list:
+ * @name:     Name of template under test.
+ *
+ * Get a list of all valid names of templates in the template database that
+ * have the same size and layout characteristics as the given template.
+ *
+ * Returns: a list of template names.
+ */
+GList *
+lgl_db_get_similar_template_name_list (const gchar  *name)
+{
+        GList            *p_tmplt;
+        lglTemplate      *template1;
+        lglTemplate      *template2;
+        gchar            *name2;
+        GList            *names = NULL;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        if ( !name )
+        {
+                return NULL;
+        }
+
+        template1 = lgl_db_lookup_template_from_name (name);
+        if ( !template1 )
+        {
+                return NULL;
+        }
+
+        for (p_tmplt = model->templates; p_tmplt != NULL; p_tmplt = p_tmplt->next)
+        {
+                template2 = (lglTemplate *) p_tmplt->data;
+
+                if ( lgl_template_are_templates_identical (template1, template2) )
+                {
+
+                        name2 = g_strdup_printf ("%s %s", template2->brand, template2->part);
+                        if ( !UTF8_EQUAL (name2, name) )
+                        {
+                                names = g_list_insert_sorted (names, name2,
+                                                              (GCompareFunc)lgl_str_part_name_cmp);
+                        }
+
+                }
+        }
+
+        return names;
+}
+
+
+/**
+ * lgl_db_free_template_name_list:
+ * @names: List of template name strings to be freed.
+ *
+ * Free up all storage associated with a list of template names obtained with
+ * lgl_db_get_template_name_list_all().
+ *
+ */
+void
+lgl_db_free_template_name_list (GList *names)
+{
+        GList *p_name;
+
+        for (p_name = names; p_name != NULL; p_name = p_name->next)
+        {
+                g_free (p_name->data);
+                p_name->data = NULL;
+        }
+
+        g_list_free (names);
+}
+
+
+/**
+ * lgl_db_lookup_template_from_name:
+ * @name: name string
+ *
+ * Lookup template in template database from name string.
+ *
+ * Returns: pointer to a newly allocated #lglTemplate structure.
+ *
+ */
+lglTemplate *
+lgl_db_lookup_template_from_name (const gchar *name)
+{
+        lglTemplate      *template;
+        lglTemplate      *new_template;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        if (name == NULL)
+        {
+                /* If no name, return first template as a default */
+                return lgl_template_dup ((lglTemplate *) model->templates->data);
+        }
+
+        template = g_hash_table_lookup (model->template_cache, name);
+
+        if (template)
+        {
+                new_template = lgl_template_dup (template);
+                return new_template;
+        }
+
+        /* No matching template has been found so return the first template */
+        return lgl_template_dup ((lglTemplate *) model->templates->data);
+}
+
+
+/**
+ * lgl_db_lookup_template_from_brand_part:
+ * @brand: brand name string
+ * @part:  part name string
+ *
+ * Lookup template in template database from brand and part strings.
+ *
+ * Returns: pointer to a newly allocated #lglTemplate structure.
+ *
+ */
+lglTemplate *
+lgl_db_lookup_template_from_brand_part(const gchar *brand,
+                                       const gchar *part)
+{
+        gchar            *name;
+        lglTemplate      *template;
+        lglTemplate      *new_template;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        if ((brand == NULL) || (part == NULL))
+        {
+                /* If no name, return first template as a default */
+                return lgl_template_dup ((lglTemplate *) model->templates->data);
+        }
+
+        name = g_strdup_printf ("%s %s", brand, part);
+        template = g_hash_table_lookup (model->template_cache, name);
+
+        if (template)
+        {
+                new_template = lgl_template_dup (template);
+                return new_template;
+        }
+
+        /* No matching template has been found so return the first template */
+        g_free (name);
+        return lgl_template_dup ((lglTemplate *) model->templates->data);
+}
+
+
+static void
+add_to_template_cache (lglTemplate *template)
+{
+        gchar            *name;
+
+        name = g_strdup_printf ("%s %s", template->brand, template->part);
+
+        g_hash_table_insert (model->template_cache, name, template);
+}
+
+
+void
+read_templates (void)
+{
+        gchar       *data_dir;
+        GList       *p;
+        lglTemplate *template;
+
+        /*
+         * User defined templates.  Add to user-defined category.
+         */
+        data_dir = USER_CONFIG_DIR;
+        read_template_files_from_dir (data_dir);
+        g_free (data_dir);
+        for ( p=model->templates; p != NULL; p=p->next )
+        {
+                template = (lglTemplate *)p->data;
+                lgl_template_add_category (template, "user-defined");
+        }
+
+        /*
+         * Alternate user defined templates.  (Used for manually created templates).
+         */
+        data_dir = ALT_USER_CONFIG_DIR;
+        read_template_files_from_dir (data_dir);
+        g_free (data_dir);
+
+        /*
+         * System templates.
+         */
+        data_dir = SYSTEM_CONFIG_DIR;
+        read_template_files_from_dir (data_dir);
+        g_free (data_dir);
+
+        if (model->templates == NULL)
+        {
+                g_critical (_("Unable to locate any template files.  Libglabels may not be installed correctly!"));
+        }
+}
+
+
+void
+read_template_files_from_dir (const gchar *dirname)
+{
+        GDir        *dp;
+        const gchar *filename, *extension, *extension2;
+        gchar       *full_filename = NULL;
+        GError      *gerror = NULL;
+
+        if (dirname == NULL)
+                return;
+
+        if (!g_file_test (dirname, G_FILE_TEST_EXISTS))
+        {
+                return;
+        }
+
+        dp = g_dir_open (dirname, 0, &gerror);
+        if (gerror != NULL)
+        {
+                g_message ("cannot open data directory: %s", gerror->message );
+                return;
+        }
+
+        while ((filename = g_dir_read_name (dp)) != NULL)
+        {
+
+                extension = strrchr (filename, '.');
+                extension2 = strrchr (filename, '-');
+
+                if ( (extension && ASCII_EQUAL (extension, ".template")) ||
+                     (extension2 && ASCII_EQUAL (extension2, "-templates.xml")) )
+                {
+
+                        full_filename = g_build_filename (dirname, filename, NULL);
+                        lgl_xml_template_read_templates_from_file (full_filename);
+                        g_free (full_filename);
+                }
+
+        }
+
+        g_dir_close (dp);
+}
+
+
+static lglTemplate *
+template_full_page (const gchar *paper_id)
+{
+        lglPaper              *paper = NULL;
+        lglTemplate           *template = NULL;
+        lglTemplateFrame      *frame = NULL;
+        gchar                 *part;
+        gchar                 *desc;
+
+        g_return_val_if_fail (paper_id, NULL);
+
+        paper = lgl_db_lookup_paper_from_id (paper_id);
+        if ( paper == NULL )
+        {
+                return NULL;
+        }
+
+        part = g_strdup_printf ("%s-Full-Page", paper->id);
+        desc = g_strdup_printf (_("%s full page label"), paper->name);
+
+        template = lgl_template_new ("Generic", part, desc,
+                                     paper_id, paper->width, paper->height);
+
+
+        frame = lgl_template_frame_rect_new ("0",
+                                             paper->width,
+                                             paper->height,
+                                             0.0,
+                                             0.0,
+                                             0.0);
+        lgl_template_add_frame (template, frame);
+
+        lgl_template_frame_add_layout (frame, lgl_template_layout_new (1, 1, 0., 0., 0., 0.));
+
+        lgl_template_frame_add_markup (frame, lgl_template_markup_margin_new (9.0));
+
+        g_free (desc);
+        desc = NULL;
+        lgl_paper_free (paper);
+        paper = NULL;
+
+        return template;
+}
+
+
+/**
+ * lgl_db_print_known_templates:
+ *
+ * Print all known templates (for debugging purposes).
+ *
+ */
+void
+lgl_db_print_known_templates (void)
+{
+        GList       *p;
+        lglTemplate *template;
+
+        if (!model)
+        {
+                lgl_db_init ();
+        }
+
+        g_print ("%s():\n", __FUNCTION__);
+        for (p=model->templates; p!=NULL; p=p->next)
+        {
+                template = (lglTemplate *)p->data;
+
+                g_print("TEMPLATE brand=\"%s\", part=\"%s\", description=\"%s\"\n",
+                        template->brand, template->part, template->description);
+
+        }
+        g_print ("\n");
+
+}
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/lgl-db.h b/libglabels/lgl-db.h
new file mode 100644 (file)
index 0000000..a505e62
--- /dev/null
@@ -0,0 +1,197 @@
+/*
+ *  lgl-db.h
+ *  Copyright (C) 2006-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglabels.
+ *
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __LGL_DB_H__
+#define __LGL_DB_H__
+
+#include <glib.h>
+
+#include "lgl-paper.h"
+#include "lgl-category.h"
+#include "lgl-vendor.h"
+#include "lgl-template.h"
+
+G_BEGIN_DECLS
+
+typedef enum
+{
+        LGL_DB_REG_OK                =  0,
+        LGL_DB_REG_BAD_PAPER_ID      = -1,
+        LGL_DB_REG_BRAND_PART_EXISTS = -2,
+        LGL_DB_REG_FILE_WRITE_ERROR  = -3
+} lglDbRegStatus;
+
+typedef enum
+{
+        LGL_DB_DELETE_OK                =  0,
+        LGL_DB_DELETE_DOES_NOT_EXIST    = -1,
+        LGL_DB_DELETE_NOT_USER_DEFINED  = -2,
+        LGL_DB_DELETE_FILE_ERROR        = -3
+} lglDbDeleteStatus;
+
+
+typedef void  (*lglDbNotifyFunc) (gpointer user_data);
+
+
+
+
+/*
+ * Module initialization
+ */
+void           lgl_db_init                           (void);
+
+
+
+/*
+ * Notification
+ */
+gulong         lgl_db_notify_add                     (lglDbNotifyFunc      func,
+                                                      gpointer             user_data);
+
+void           lgl_db_notify_remove                  (gulong               id);
+
+
+
+/*
+ * Paper
+ */
+GList         *lgl_db_get_paper_id_list              (void);
+
+void           lgl_db_free_paper_id_list             (GList               *ids);
+
+GList         *lgl_db_get_paper_name_list            (void);
+
+void           lgl_db_free_paper_name_list           (GList               *names);
+
+lglPaper      *lgl_db_lookup_paper_from_name         (const gchar         *name);
+
+lglPaper      *lgl_db_lookup_paper_from_id           (const gchar         *id);
+
+gchar         *lgl_db_lookup_paper_id_from_name      (const gchar         *name);
+
+gchar         *lgl_db_lookup_paper_name_from_id      (const gchar         *id);
+
+gboolean       lgl_db_is_paper_id_known              (const gchar         *id);
+
+gboolean       lgl_db_is_paper_id_other              (const gchar         *id);
+
+
+
+/*
+ * Template categories
+ */
+GList         *lgl_db_get_category_id_list           (void);
+
+void           lgl_db_free_category_id_list          (GList              *ids);
+
+GList         *lgl_db_get_category_name_list         (void);
+
+void           lgl_db_free_category_name_list        (GList               *names);
+
+lglCategory   *lgl_db_lookup_category_from_name      (const gchar         *name);
+
+lglCategory   *lgl_db_lookup_category_from_id        (const gchar         *id);
+
+gchar         *lgl_db_lookup_category_id_from_name   (const gchar         *name);
+
+gchar         *lgl_db_lookup_category_name_from_id   (const gchar         *id);
+
+gboolean       lgl_db_is_category_id_known           (const gchar         *id);
+
+
+/*
+ * Vendor
+ */
+GList         *lgl_db_get_vendor_name_list           (void);
+
+void           lgl_db_free_vendor_name_list          (GList               *names);
+
+lglVendor     *lgl_db_lookup_vendor_from_name        (const gchar         *name);
+
+gboolean       lgl_db_is_vendor_name_known           (const gchar         *name);
+
+
+/*
+ * Template brands
+ */
+GList         *lgl_db_get_brand_list                 (const gchar         *paper_id,
+                                                      const gchar         *category_id);
+
+void           lgl_db_free_brand_list                (GList               *brands);
+
+
+/*
+ * Templates
+ */
+lglDbRegStatus lgl_db_register_template              (const lglTemplate   *template);
+
+lglDbDeleteStatus lgl_db_delete_template_by_name        (const gchar         *name);
+
+lglDbDeleteStatus lgl_db_delete_template_by_brand_part  (const gchar         *brand,
+                                                         const gchar         *part);
+
+gboolean       lgl_db_does_template_exist            (const gchar         *brand,
+                                                      const gchar         *part);
+
+gboolean       lgl_db_does_template_name_exist       (const gchar         *name);
+
+GList         *lgl_db_get_template_name_list_all     (const gchar         *brand,
+                                                      const gchar         *paper_id,
+                                                      const gchar         *category_id);
+
+GList         *lgl_db_get_similar_template_name_list (const gchar         *name);
+
+void           lgl_db_free_template_name_list        (GList               *names);
+
+lglTemplate   *lgl_db_lookup_template_from_name      (const gchar         *name);
+
+lglTemplate   *lgl_db_lookup_template_from_brand_part(const gchar         *brand,
+                                                      const gchar         *part);
+
+
+/*
+ * Debugging functions
+ */
+void           lgl_db_print_known_papers             (void);
+
+void           lgl_db_print_known_categories         (void);
+
+void           lgl_db_print_known_templates          (void);
+
+void           lgl_db_print_aliases                  (const lglTemplate    *template);
+
+void           lgl_db_print_known_vendors            (void);
+
+
+
+G_END_DECLS
+
+#endif /* __LGL_DB_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/lgl-paper.c b/libglabels/lgl-paper.c
new file mode 100644 (file)
index 0000000..0a8405d
--- /dev/null
@@ -0,0 +1,147 @@
+/*
+ *  lgl-paper.c
+ *  Copyright (C) 2003-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglabels.
+ *
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "lgl-paper.h"
+
+#include <glib/gi18n.h>
+#include <glib.h>
+#include <string.h>
+
+#include "libglabels-private.h"
+
+/*===========================================*/
+/* Private types                             */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Functions.                                */
+/*===========================================*/
+
+/**
+ * lgl_paper_new:
+ * @id:       Id of paper definition. (E.g. US-Letter, A4, etc.)  Should be
+ *            unique.
+ * @name:     Localized name of paper.
+ * @width:    Width of paper in points.
+ * @height:   Height of paper in points.
+ * @pwg_size: PWG 5101.1-2002 size name.
+ *
+ * Allocates and constructs a new #lglPaper structure.
+ *
+ * Returns: a pointer to a newly allocated #lglPaper structure.
+ *
+ */
+lglPaper *
+lgl_paper_new (gchar             *id,
+               gchar             *name,
+               gdouble            width,
+               gdouble            height,
+               gchar             *pwg_size)
+{
+        lglPaper *paper;
+
+        paper           = g_new0 (lglPaper,1);
+
+        paper->id       = g_strdup (id);
+        paper->name     = g_strdup (name);
+        paper->width    = width;
+        paper->height   = height;
+        paper->pwg_size = g_strdup (pwg_size);
+
+        return paper;
+}
+
+
+/**
+ * lgl_paper_dup:
+ * @orig:  #lglPaper structure to be duplicated.
+ *
+ * Duplicates an existing #lglPaper structure.
+ *
+ * Returns: a pointer to a newly allocated #lglPaper structure.
+ *
+ */
+lglPaper *lgl_paper_dup (const lglPaper *orig)
+{
+        lglPaper       *paper;
+
+        g_return_val_if_fail (orig, NULL);
+
+        paper = g_new0 (lglPaper,1);
+
+        paper->id       = g_strdup (orig->id);
+        paper->name     = g_strdup (orig->name);
+        paper->width    = orig->width;
+        paper->height   = orig->height;
+        paper->pwg_size = g_strdup (orig->pwg_size);
+
+        return paper;
+}
+
+
+/**
+ * lgl_paper_free:
+ * @paper:  pointer to #lglPaper structure to be freed.
+ *
+ * Free all memory associated with an existing #lglPaper structure.
+ *
+ */
+void lgl_paper_free (lglPaper *paper)
+{
+
+        if ( paper != NULL )
+        {
+                g_free (paper->id);
+                paper->id = NULL;
+
+                g_free (paper->name);
+                paper->name = NULL;
+
+                g_free (paper->pwg_size);
+                paper->pwg_size = NULL;
+
+                g_free (paper);
+        }
+
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/lgl-paper.h b/libglabels/lgl-paper.h
new file mode 100644 (file)
index 0000000..05c1e85
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ *  lgl-paper.h
+ *  Copyright (C) 2003-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglabels.
+ *
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __LGL_PAPER_H__
+#define __LGL_PAPER_H__
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+
+/*
+ *   lglPaper structure
+ */
+typedef struct _lglPaper lglPaper;
+
+struct _lglPaper {
+        gchar               *id;       /* Unique ID of paper definition */
+        gchar               *name;     /* Localized name of paper */
+        gdouble              width;    /* Width (in points) */
+        gdouble              height;   /* Height (in points) */
+        gchar               *pwg_size; /* PWG 5101.1-2002 size name */
+};
+
+
+/*
+ * Paper construction
+ */
+lglPaper            *lgl_paper_new                 (gchar           *id,
+                                                    gchar           *name,
+                                                    gdouble          width,
+                                                    gdouble          height,
+                                                    gchar           *pwg_size);
+
+lglPaper             *lgl_paper_dup                (const lglPaper   *orig);
+
+void                 lgl_paper_free                (lglPaper         *paper);
+
+
+G_END_DECLS
+
+#endif /* __LGL_PAPER_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/lgl-str.c b/libglabels/lgl-str.c
new file mode 100644 (file)
index 0000000..1a25c31
--- /dev/null
@@ -0,0 +1,284 @@
+/*
+ *  lgl-str.c
+ *  Copyright (C) 2007-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglabels.
+ *
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "lgl-str.h"
+
+#include <string.h>
+#include <math.h>
+
+#define FRAC_EPSILON 0.00005
+
+
+/*===========================================*/
+/* Private types                             */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+static gchar *span_digits (gchar **p);
+static gchar *span_non_digits (gchar **p);
+
+/*===========================================*/
+/* Functions.                                */
+/*===========================================*/
+
+/**
+ * lgl_str_utf8_casecmp:
+ * @s1: string to compare with s2.
+ * @s2: string to compare with s1.
+ *
+ * Compare two UTF-8 strings, ignoring the case of characters.
+ *
+ * This function should be used only on strings that are known to be encoded
+ * in UTF-8 or a compatible UTF-8 subset.
+ *
+ * Returns: 0 if the strings match, a negative value if s1 < s2,
+ *          or a positive value if s1 > s2.
+ *
+ */
+gint
+lgl_str_utf8_casecmp (const gchar *s1,
+                      const gchar *s2)
+{
+        gchar *folded_s1;
+        gchar *folded_s2;
+        gint   result;
+
+        folded_s1 = g_utf8_casefold (s1, -1);
+        folded_s2 = g_utf8_casefold (s2, -1);
+
+        result = g_utf8_collate (folded_s1, folded_s2);
+
+        g_free (folded_s1);
+        g_free (folded_s2);
+
+        return result;
+}
+
+
+/**
+ * lgl_str_part_name_cmp:
+ * @s1: string to compare with s2.
+ * @s2: string to compare with s1.
+ *
+ * Compare two UTF-8 strings representing part names or numbers.  This function
+ * uses a natural sort order:
+ *
+ *  - Ignores case.
+ *
+ *  - Strings are divided into chunks (numeric and non-numeric)
+ *
+ *  - Non-numeric chunks are compared character by character
+ *
+ *  - Numerical chunks are compared numerically, so that "20" precedes "100".
+ *
+ *  - Comparison of chunks is performed left to right until the first difference
+ *    is encountered or all chunks evaluate as equal.
+ *
+ * This function should be used only on strings that are known to be encoded
+ * in UTF-8 or a compatible UTF-8 subset.
+ *
+ * Numeric chunks are converted to 64 bit unsigned integers for comparison,
+ * so the behaviour may be unpredictable for numeric chunks that exceed
+ * 18446744073709551615.
+ *
+ * Returns: 0 if the strings match, a negative value if s1 < s2,
+ *          or a positive value if s1 > s2.
+ *
+ */
+gint
+lgl_str_part_name_cmp (const gchar *s1,
+                       const gchar *s2)
+{
+        gchar *folded_s1, *p1, *chunk1;
+        gchar *folded_s2, *p2, *chunk2;
+        gboolean isnum1, isnum2;
+        guint64 n1, n2;
+        gboolean done;
+        gint   result;
+
+        if ( s1 == s2 ) return 0;
+        if (s1 == NULL) return -1;
+        if (s2 == NULL) return 1;
+
+        folded_s1 = g_utf8_casefold (s1, -1);
+        folded_s2 = g_utf8_casefold (s2, -1);
+
+        result = 0;
+        done = FALSE;
+        p1 = folded_s1;
+        p2 = folded_s2;
+        while ( (result == 0) && !done )
+        {
+
+                if ( g_ascii_isdigit (*p1) )
+                {
+                        chunk1 = span_digits (&p1);
+                        isnum1 = TRUE;
+                }
+                else
+                {
+                        chunk1 = span_non_digits (&p1);
+                        isnum1 = FALSE;
+                }
+                
+                if ( g_ascii_isdigit (*p2) )
+                {
+                        chunk2 = span_digits (&p2);
+                        isnum2 = TRUE;
+                }
+                else
+                {
+                        chunk2 = span_non_digits (&p2);
+                        isnum2 = FALSE;
+                }
+
+                if ( (*chunk1 == '\0') && (*chunk2 == '\0') )
+                {
+                        /* Case 1: Both are empty. */
+                        done = TRUE;
+                }
+                else if ( isnum1 && isnum2 )
+                {
+                        /* Case 2: They both contain numbers */
+                        n1 = g_ascii_strtoull (chunk1, NULL, 10);
+                        n2 = g_ascii_strtoull (chunk2, NULL, 10);
+
+                        if ( n1 < n2 ) result = -1;
+                        if ( n1 > n2 ) result =  1;
+                }
+                else
+                {
+                        /* Case 3: One or both do not contain numbers */
+                        result = g_utf8_collate (chunk1, chunk2);
+                }
+
+                g_free (chunk1);
+                g_free (chunk2);
+        }
+
+        g_free (folded_s1);
+        g_free (folded_s2);
+
+        return result;
+}
+
+
+static gchar *
+span_digits (gchar **p)
+{
+        gchar *chunk = g_new0 (gchar, strlen (*p) + 1);
+        gint i;
+
+        for ( i = 0; **p && g_ascii_isdigit (**p); i++, *p = g_utf8_next_char(*p) )
+        {
+                chunk[i] = **p;
+        }
+
+        return chunk;
+}
+
+
+static gchar *
+span_non_digits (gchar **p)
+{
+        gchar *chunk = g_new0 (gchar, strlen (*p) + 1);
+        gint i;
+
+        for ( i = 0; **p && !g_ascii_isdigit (**p); i++, *p = g_utf8_next_char(*p) )
+        {
+                chunk[i] = **p;
+        }
+
+        return chunk;
+}
+
+
+/**
+ * lgl_str_format_fraction:
+ * @x: Floating point number to convert to fractional notation
+ *
+ * Create fractional representation of number, if possible.  Uses UTF-8 superscripts and
+ * subscripts for numerator and denominator values respecively.
+ *
+ * Returns: UTF-8 string containing fractional representation of x.
+ */
+gchar *
+lgl_str_format_fraction (gdouble x)
+{
+        static gdouble denom[]        = {  1.,  2., 3.,  4.,  8.,  16.,  32.,  0. };
+        static gchar  *denom_string[] = { "1", "₂", "₃", "₄", "₈", "₁₆", "₃₂", NULL };
+        static gchar  *num_string[]   = {  "⁰",  "¹",  "²",  "³",  "⁴",  "⁵",  "⁶",  "⁷",  "⁸",  "⁹",
+                                          "¹⁰", "¹¹", "¹²", "¹³", "¹⁴", "¹⁵", "¹⁶", "¹⁷", "¹⁸", "¹⁹",
+                                          "²⁰", "²¹", "²²", "²³", "²⁴", "²⁵", "²⁶", "²⁷", "²⁸", "²⁹",
+                                          "³⁰", "³¹" };
+        gint i;
+        gdouble product, remainder;
+        gint n, d;
+
+        for ( i=0; denom[i] != 0.0; i++ )
+        {
+                product = x * denom[i];
+                remainder = fabs(product - ((gint)(product+0.5)));
+                if ( remainder < FRAC_EPSILON ) break;
+        }
+
+        if ( denom[i] == 0.0 )
+        {
+                /* None of our denominators work. */
+                return g_strdup_printf ("%.5g", x);
+        }
+        if ( denom[i] == 1.0 )
+        {
+                /* Simple integer. */
+                return g_strdup_printf ("%.0f", x);
+        }
+        n = (gint)( x * denom[i] + 0.5 );
+        d = (gint)denom[i];
+        if ( n > d )
+        {
+                return g_strdup_printf ("%d%s/%s", (n/d), num_string[n%d], denom_string[i]);
+        }
+        else
+        {
+                return g_strdup_printf ("%s/%s", num_string[n%d], denom_string[i]);
+        }
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/lgl-str.h b/libglabels/lgl-str.h
new file mode 100644 (file)
index 0000000..3c096b0
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ *  lgl-str.h
+ *  Copyright (C) 2007-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglabels.
+ *
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __LGL_STR_H__
+#define __LGL_STR_H__
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+gint   lgl_str_utf8_casecmp    (const gchar *s1,
+                                const gchar *s2);
+
+gint   lgl_str_part_name_cmp   (const gchar *s1,
+                                const gchar *s2);
+
+gchar *lgl_str_format_fraction (gdouble      x);
+
+G_END_DECLS
+
+
+#endif /* __LGL_STR_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/lgl-template.c b/libglabels/lgl-template.c
new file mode 100644 (file)
index 0000000..bcaef5b
--- /dev/null
@@ -0,0 +1,1438 @@
+/*
+ *  lgl-template.c
+ *  Copyright (C) 2001-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglabels.
+ *
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "lgl-template.h"
+
+#include <glib/gi18n.h>
+#include <glib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <math.h>
+
+#include "libglabels-private.h"
+
+#include "lgl-db.h"
+#include "lgl-paper.h"
+
+/*===========================================*/
+/* Private macros and constants.             */
+/*===========================================*/
+
+/* Allowed error when comparing dimensions. (0.5pts ~= .007in ~= .2mm) */
+#define EPSILON 0.5
+
+/*===========================================*/
+/* Private types                             */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+static gint         compare_origins              (gconstpointer           a,
+                                                  gconstpointer           b,
+                                                  gpointer                user_data);
+
+/*===========================================*/
+/* Functions.                                */
+/*===========================================*/
+
+/**
+ * lgl_template_new:
+ *   @brand:        Template brand
+ *   @part:         Template part name/number
+ *   @description:  Template descriptions
+ *   @paper_id:     Page size id
+ *   @page_width:   Page width in points, set to zero unless paper_id="Other"
+ *   @page_height:  Page height in points, set to zero unless paper_id="Other"
+ *
+ * Create a new template structure, with the given top-level attributes.  The
+ * created template will have no initial categories, or frames associated with
+ * it.  See lgl_template_add_category() and lgl_template_add_frame() to add
+ * these.
+ *
+ * Returns: pointer to a newly allocated #lglTemplate structure.
+ *
+ */
+lglTemplate *
+lgl_template_new (const gchar         *brand,
+                  const gchar         *part,
+                  const gchar         *description,
+                  const gchar         *paper_id,
+                  gdouble              page_width,
+                  gdouble              page_height)
+{
+        lglTemplate      *template;
+
+        template = g_new0 (lglTemplate,1);
+
+        template->brand       = g_strdup (brand);
+        template->part        = g_strdup (part);
+        template->description = g_strdup (description);
+        template->paper_id    = g_strdup (paper_id);
+        template->page_width  = page_width;
+        template->page_height = page_height;
+
+        return template;
+}
+
+
+/**
+ * lgl_template_new_from_equiv:
+ *   @brand:        Template brand
+ *   @part:         Template part name/number
+ *   @equiv_part:   Name of equivalent part to base template on
+ *
+ * Create a new template structure based on an existing template.  The
+ * created template will be a duplicate of the original template, except with
+ * the new part name/number.
+ *
+ * Returns: pointer to a newly allocated #lglTemplate structure.
+ *
+ */
+lglTemplate *
+lgl_template_new_from_equiv (const gchar          *brand,
+                             const gchar          *part,
+                             const gchar          *equiv_part)
+{
+        lglTemplate      *template = NULL;
+
+        if ( lgl_db_does_template_exist (brand, equiv_part) )
+        {
+                template = lgl_db_lookup_template_from_brand_part (brand, equiv_part);
+
+                g_free (template->part);
+                g_free (template->equiv_part);
+
+                template->part       = g_strdup (part);
+                template->equiv_part = g_strdup (equiv_part);
+        }
+        else
+        {
+                g_message ("Equivalent part (\"%s\") for \"%s\", not previously defined.",
+                           equiv_part, part);
+        }
+
+        return template;
+}
+
+
+/**
+ * lgl_template_get_name:
+ *   @template:  Pointer to template structure to test
+ *
+ * This function returns the name of the given template.  The name is the concetenation
+ * of the brand and part name/number.
+ *
+ * Returns:  A pointer to a newly allocated name string.  Should be freed with g_free().
+ *
+ */
+gchar *
+lgl_template_get_name (const lglTemplate  *template)
+{
+        g_return_val_if_fail (template, NULL);
+
+        return g_strdup_printf ("%s %s", template->brand, template->part);
+}
+
+
+/**
+ * lgl_template_do_templates_match:
+ *   @template1:  Pointer to 1st template structure to test
+ *   @template2:  Pointer to 2nd template structure to test
+ *
+ * This function tests if the given templates match.  This is a simple test that only tests
+ * the brand and part name/number. It does not test if they are actually identical.
+ *
+ * Returns:  TRUE if the two templates match.
+ *
+ */
+gboolean
+lgl_template_do_templates_match (const lglTemplate  *template1,
+                                 const lglTemplate  *template2)
+{
+        g_return_val_if_fail (template1, FALSE);
+        g_return_val_if_fail (template2, FALSE);
+
+        return (UTF8_EQUAL (template1->brand, template2->brand) &&
+                UTF8_EQUAL (template1->part, template2->part));
+}
+
+
+/**
+ * lgl_template_does_brand_match:
+ *   @template:  Pointer to template structure to test
+ *   @brand:     Brand string
+ *
+ * This function tests if the brand of the template matches the given brand.
+ *
+ * Returns:  TRUE if the template matches the given brand.
+ *
+ */
+gboolean
+lgl_template_does_brand_match (const lglTemplate  *template,
+                               const gchar        *brand)
+{
+        g_return_val_if_fail (template, FALSE);
+
+        /* NULL matches everything. */
+        if (brand == NULL)
+        {
+                return TRUE;
+        }
+
+        return UTF8_EQUAL (template->brand, brand);
+}
+
+
+/**
+ * lgl_template_does_page_size_match:
+ *   @template:  Pointer to template structure to test
+ *   @paper_id:  Page size ID string
+ *
+ * This function tests if the page size of the template matches the given ID.
+ *
+ * Returns:  TRUE if the template matches the given page size ID.
+ *
+ */
+gboolean
+lgl_template_does_page_size_match (const lglTemplate  *template,
+                                   const gchar        *paper_id)
+{
+        g_return_val_if_fail (template, FALSE);
+
+        /* NULL matches everything. */
+        if (paper_id == NULL)
+        {
+                return TRUE;
+        }
+
+        return ASCII_EQUAL(paper_id, template->paper_id);
+}
+
+
+/**
+ * lgl_template_does_category_match:
+ *   @template:     Pointer to template structure to test
+ *   @category_id:  Category ID string
+ *
+ * This function tests if the given template belongs to the given category ID.
+ *
+ * Returns:  TRUE if the template matches the given category ID.
+ *
+ */
+gboolean
+lgl_template_does_category_match  (const lglTemplate  *template,
+                                   const gchar        *category_id)
+{
+        GList *p;
+
+        g_return_val_if_fail (template, FALSE);
+
+        /* NULL matches everything. */
+        if (category_id == NULL)
+        {
+                return TRUE;
+        }
+
+        for ( p=template->category_ids; p != NULL; p=p->next )
+        {
+                if (ASCII_EQUAL(category_id, p->data))
+                {
+                        return TRUE;
+                }
+        }
+
+        return FALSE;
+}
+
+
+/**
+ * lgl_template_are_templates_identical:
+ *   @template1:  Pointer to 1st template structure to test
+ *   @template2:  Pointer to 2nd template structure to test
+ *
+ * This function tests if the given templates have identical size and layout properties.
+ *
+ * Returns:  TRUE if the two templates are identical.
+ *
+ */
+gboolean
+lgl_template_are_templates_identical (const lglTemplate   *template1,
+                                      const lglTemplate   *template2)
+{
+        lglTemplateFrame  *frame1;
+        lglTemplateFrame  *frame2;
+        GList             *p1;
+        GList             *p2;
+        lglTemplateLayout *layout1;
+        lglTemplateLayout *layout2;
+        gboolean           match_found;
+
+
+        if (!UTF8_EQUAL (template1->paper_id, template2->paper_id) ||
+            (template1->page_width  != template2->page_width)      ||
+            (template1->page_height != template2->page_height))
+        {
+                return FALSE;
+        }
+
+        frame1 = (lglTemplateFrame *)template1->frames->data;
+        frame2 = (lglTemplateFrame *)template2->frames->data;
+
+        if ( frame1->shape != frame2->shape )
+        {
+                return FALSE;
+        }
+
+        switch ( frame1->shape )
+        {
+
+        case LGL_TEMPLATE_FRAME_SHAPE_RECT:
+                if ( (fabs(frame1->rect.w - frame2->rect.w) > EPSILON) ||
+                     (fabs(frame1->rect.h - frame2->rect.h) > EPSILON) )
+                {
+                        return FALSE;
+                }
+                break;
+
+        case LGL_TEMPLATE_FRAME_SHAPE_ELLIPSE:
+                if ( (fabs(frame1->ellipse.w - frame2->ellipse.w) > EPSILON) ||
+                     (fabs(frame1->ellipse.h - frame2->ellipse.h) > EPSILON) )
+                {
+                        return FALSE;
+                }
+                break;
+
+        case LGL_TEMPLATE_FRAME_SHAPE_ROUND:
+                if ( fabs(frame1->round.r - frame2->round.r) > EPSILON )
+                {
+                        return FALSE;
+                }
+                break;
+
+        case LGL_TEMPLATE_FRAME_SHAPE_CD:
+                if ( (fabs(frame1->cd.r1 - frame2->cd.r1) > EPSILON) ||
+                     (fabs(frame1->cd.r2 - frame2->cd.r2) > EPSILON) )
+                {
+                        return FALSE;
+                }
+        }
+
+        for ( p1 = frame1->all.layouts; p1; p1 = p1->next )
+        {
+                layout1 = (lglTemplateLayout *)p1->data;
+
+                match_found = FALSE;
+                for ( p2 = frame2->all.layouts; p2 && !match_found; p2 = p2->next )
+                {
+                        layout2 = (lglTemplateLayout *)p2->data;
+
+                        if ( (layout1->nx == layout2->nx) &&
+                             (layout1->ny == layout2->ny) &&
+                             (fabs(layout1->x0 - layout2->x0) < EPSILON) &&
+                             (fabs(layout1->y0 - layout2->y0) < EPSILON) &&
+                             (fabs(layout1->dx - layout2->dx) < EPSILON) &&
+                             (fabs(layout1->dy - layout2->dy) < EPSILON) )
+                        {
+                                match_found = TRUE;
+                        }
+
+                }
+                if ( !match_found )
+                {
+                        return FALSE;
+                }
+        }
+
+        return TRUE;
+}
+
+
+/**
+ * lgl_template_add_frame:
+ *   @template:  Pointer to template structure
+ *   @frame:     Pointer to frame structure
+ *
+ * This function adds the given frame structure to the template.  Once added,
+ * the frame structure belongs to the given template; do not attempt to free
+ * it.
+ *
+ * Note: Currently glabels only supports a single frame per template.
+ *
+ */
+void
+lgl_template_add_frame (lglTemplate      *template,
+                        lglTemplateFrame *frame)
+{
+        g_return_if_fail (template);
+        g_return_if_fail (frame);
+
+        template->frames = g_list_append (template->frames, frame);
+}
+
+/**
+ * lgl_template_add_category:
+ *   @template:     Pointer to template structure
+ *   @category_id:  Category ID string
+ *
+ * This function adds the given category ID to a templates category list.
+ *
+ */
+void
+lgl_template_add_category (lglTemplate         *template,
+                           const gchar         *category_id)
+{
+        g_return_if_fail (template);
+        g_return_if_fail (category_id);
+
+        template->category_ids = g_list_append (template->category_ids,
+                                                g_strdup (category_id));
+}
+
+/**
+ * lgl_template_frame_rect_new:
+ *   @id:      ID of frame.  (This should currently always be "0").
+ *   @w:       width of frame in points.
+ *   @h:       height of frame in points.
+ *   @r:       radius of rounded corners in points.  (Should be 0 for square corners.)
+ *   @x_waste: Amount of overprint to allow in the horizontal direction.
+ *   @y_waste: Amount of overprint to allow in the vertical direction.
+ *
+ * This function creates a new template frame for a rectangular label or card.
+ *
+ * Returns: Pointer to newly allocated #lglTemplateFrame structure.
+ *
+ */
+lglTemplateFrame *
+lgl_template_frame_rect_new  (const gchar         *id,
+                              gdouble              w,
+                              gdouble              h,
+                              gdouble              r,
+                              gdouble              x_waste,
+                              gdouble              y_waste)
+{
+        lglTemplateFrame *frame;
+
+        frame = g_new0 (lglTemplateFrame, 1);
+
+        frame->shape = LGL_TEMPLATE_FRAME_SHAPE_RECT;
+        frame->rect.id = g_strdup (id);
+
+        frame->rect.w = w;
+        frame->rect.h = h;
+        frame->rect.r = r;
+        frame->rect.x_waste = x_waste;
+        frame->rect.y_waste = y_waste;
+
+        return frame;
+}
+
+
+/**
+ * lgl_template_frame_ellipse_new:
+ *   @id:      ID of frame.  (This should currently always be "0").
+ *   @w:       width of frame in points.
+ *   @h:       height of frame in points.
+ *   @waste:   Amount of overprint to allow in points.
+ *
+ * This function creates a new template frame for an elliptical label or card.
+ *
+ * Returns: Pointer to newly allocated #lglTemplateFrame structure.
+ *
+ */
+lglTemplateFrame *
+lgl_template_frame_ellipse_new  (const gchar         *id,
+                                 gdouble              w,
+                                 gdouble              h,
+                                 gdouble              waste)
+{
+        lglTemplateFrame *frame;
+
+        frame = g_new0 (lglTemplateFrame, 1);
+
+        frame->shape = LGL_TEMPLATE_FRAME_SHAPE_ELLIPSE;
+        frame->ellipse.id = g_strdup (id);
+
+        frame->ellipse.w = w;
+        frame->ellipse.h = h;
+        frame->ellipse.waste = waste;
+
+        return frame;
+}
+
+
+/**
+ * lgl_template_frame_round_new:
+ *   @id:      ID of frame.  (This should currently always be "0").
+ *   @r:       radius of label in points.
+ *   @waste:   Amount of overprint to allow.
+ *
+ * This function creates a new template frame for a round label.
+ *
+ * Returns: Pointer to newly allocated #lglTemplateFrame structure.
+ *
+ */
+lglTemplateFrame *
+lgl_template_frame_round_new (const gchar         *id,
+                              gdouble              r,
+                              gdouble              waste)
+{
+        lglTemplateFrame *frame;
+
+        frame = g_new0 (lglTemplateFrame, 1);
+
+        frame->shape = LGL_TEMPLATE_FRAME_SHAPE_ROUND;
+        frame->round.id = g_strdup (id);
+
+        frame->round.r = r;
+        frame->round.waste = waste;
+
+        return frame;
+}
+
+                                                                               
+/**
+ * lgl_template_frame_cd_new:
+ *   @id:      ID of frame.  (This should currently always be "0").
+ *   @r1:      outer radius of label in points.
+ *   @r2:      radius of center hole in points.
+ *   @w:       clip width of frame in points for business card CDs.  Should be 0 for no clipping.
+ *   @h:       clip height of frame in points for business card CDs.  Should be 0 for no clipping.
+ *   @waste:   Amount of overprint to allow.
+ *
+ * This function creates a new template frame for a CD/DVD label.
+ *
+ * Returns: Pointer to newly allocated #lglTemplateFrame structure.
+ *
+ */
+lglTemplateFrame *
+lgl_template_frame_cd_new (const gchar         *id,
+                           gdouble              r1,
+                           gdouble              r2,
+                           gdouble              w,
+                           gdouble              h,
+                           gdouble              waste)
+{
+        lglTemplateFrame *frame;
+
+        frame = g_new0 (lglTemplateFrame, 1);
+
+        frame->shape = LGL_TEMPLATE_FRAME_SHAPE_CD;
+        frame->cd.id = g_strdup (id);
+
+        frame->cd.r1 = r1;
+        frame->cd.r2 = r2;
+        frame->cd.w  = w;
+        frame->cd.h  = h;
+        frame->cd.waste = waste;
+
+        return frame;
+}
+
+
+/**
+ * lgl_template_frame_get_size:
+ * @frame: #lglTemplateFrame structure to query
+ * @w: pointer to location to receive width of frame
+ * @h: pointer to location to receive height of frame
+ *
+ * Get size (width and height) of given #lglTemplateFrame in points.
+ *
+ */
+void
+lgl_template_frame_get_size (const lglTemplateFrame *frame,
+                             gdouble                *w,
+                             gdouble                *h)
+{
+        g_return_if_fail (frame);
+
+        switch (frame->shape)
+        {
+        case LGL_TEMPLATE_FRAME_SHAPE_RECT:
+                *w = frame->rect.w;
+                *h = frame->rect.h;
+                break;
+        case LGL_TEMPLATE_FRAME_SHAPE_ELLIPSE:
+                *w = frame->ellipse.w;
+                *h = frame->ellipse.h;
+                break;
+        case LGL_TEMPLATE_FRAME_SHAPE_ROUND:
+                *w = 2.0 * frame->round.r;
+                *h = 2.0 * frame->round.r;
+                break;
+        case LGL_TEMPLATE_FRAME_SHAPE_CD:
+                if (frame->cd.w == 0.0)
+                {
+                        *w = 2.0 * frame->cd.r1;
+                }
+                else
+                {
+                        *w = frame->cd.w;
+                }
+                if (frame->cd.h == 0.0)
+                {
+                        *h = 2.0 * frame->cd.r1;
+                }
+                else
+                {
+                        *h = frame->cd.h;
+                }
+                break;
+        default:
+                *w = 0.0;
+                *h = 0.0;
+                break;
+        }
+}
+
+
+/**
+ * lgl_template_frame_get_n_labels:
+ * @frame: #lglTemplateFrame structure to query
+ *
+ * Get total number of labels per sheet corresponding to the given frame.
+ *
+ * Returns: number of labels per sheet.
+ *
+ */
+gint
+lgl_template_frame_get_n_labels (const lglTemplateFrame *frame)
+{
+        gint               n_labels = 0;
+        GList             *p;
+        lglTemplateLayout *layout;
+
+        g_return_val_if_fail (frame, 0);
+
+        for ( p=frame->all.layouts; p != NULL; p=p->next )
+        {
+                layout = (lglTemplateLayout *)p->data;
+
+                n_labels += layout->nx * layout->ny;
+        }
+
+        return n_labels;
+}
+
+
+/**
+ * lgl_template_frame_get_layout_description
+ * @frame: #lglTemplateFrame structure to query
+ *
+ * Get a description of the label layout including number of labels per sheet.
+ *
+ * Returns: a newly allocation description string.
+ *
+ */
+gchar *
+lgl_template_frame_get_layout_description (const lglTemplateFrame *frame)
+{
+        gint                    n_labels;
+        gchar                  *string;
+        lglTemplateLayout      *layout;
+
+        n_labels = lgl_template_frame_get_n_labels (frame);
+
+        if ( frame->all.layouts && (frame->all.layouts->next == NULL) )
+        {
+                layout = (lglTemplateLayout *)frame->all.layouts->data;
+                /*
+                 * Translators: 1st %d = number of labels across a page,
+                 *              2nd %d = number of labels down a page,
+                 *              3rd %d = total number of labels on a page (sheet).
+                 */
+                string = g_strdup_printf (_("%d × %d (%d per sheet)"), layout->nx, layout->ny, n_labels);
+        }
+        else
+        {
+                /* Translators: %d is the total number of labels on a page (sheet). */
+                string = g_strdup_printf (_("%d per sheet"), n_labels);
+        }
+
+        return string;
+}
+
+
+/**
+ * lgl_template_frame_get_size_description
+ * @frame: #lglTemplateFrame structure to query
+ * @units: #lglUnits
+ *
+ * Get a description of the label size.
+ *
+ * Returns: a newly allocation description string.
+ *
+ */
+gchar *
+lgl_template_frame_get_size_description (const lglTemplateFrame *frame,
+                                         lglUnits                units)
+{
+        const gchar               *units_string;
+        gdouble                    units_per_point;
+        gchar                     *string = NULL;
+
+        units_string    = lgl_units_get_name (units);
+        units_per_point = lgl_units_get_units_per_point (units);
+
+        switch (frame->shape)
+        {
+
+        case LGL_TEMPLATE_FRAME_SHAPE_RECT:
+                if ( units == LGL_UNITS_INCH )
+                {
+                        gchar *xstr, *ystr;
+
+                        xstr = lgl_str_format_fraction (frame->rect.w*units_per_point);
+                        ystr = lgl_str_format_fraction (frame->rect.h*units_per_point);
+                        string = g_strdup_printf ("%s × %s %s",
+                                                  xstr, ystr, units_string);
+                        g_free (xstr);
+                        g_free (ystr);
+                }
+                else
+                {
+                        string = g_strdup_printf ("%.5g × %.5g %s",
+                                                  frame->rect.w*units_per_point,
+                                                  frame->rect.h*units_per_point,
+                                                  units_string);
+                }
+                break;
+
+        case LGL_TEMPLATE_FRAME_SHAPE_ELLIPSE:
+                if ( units == LGL_UNITS_INCH )
+                {
+                        gchar *xstr, *ystr;
+
+                        xstr = lgl_str_format_fraction (frame->ellipse.w*units_per_point);
+                        ystr = lgl_str_format_fraction (frame->ellipse.h*units_per_point);
+                        string = g_strdup_printf ("%s × %s %s",
+                                                  xstr, ystr, units_string);
+                        g_free (xstr);
+                        g_free (ystr);
+                }
+                else
+                {
+                        string = g_strdup_printf ("%.5g × %.5g %s",
+                                                  frame->ellipse.w*units_per_point,
+                                                  frame->ellipse.h*units_per_point,
+                                                  units_string);
+                }
+                break;
+
+        case LGL_TEMPLATE_FRAME_SHAPE_ROUND:
+                if ( units == LGL_UNITS_INCH )
+                {
+                        gchar *dstr;
+
+                        dstr = lgl_str_format_fraction (2.0*frame->round.r*units_per_point);
+                        string = g_strdup_printf ("%s %s %s",
+                                                  dstr, units_string,
+                                                  _("diameter"));
+                        g_free (dstr);
+                }
+                else
+                {
+                        string = g_strdup_printf ("%.5g %s %s",
+                                                  2.0*frame->round.r*units_per_point,
+                                                  units_string,
+                                                  _("diameter"));
+                }
+                break;
+
+        case LGL_TEMPLATE_FRAME_SHAPE_CD:
+                if ( units == LGL_UNITS_INCH )
+                {
+                        gchar *dstr;
+
+                        dstr = lgl_str_format_fraction (2.0*frame->cd.r1*units_per_point);
+                        string = g_strdup_printf ("%s %s %s",
+                                                  dstr, units_string,
+                                                  _("diameter"));
+                        g_free (dstr);
+                }
+                else
+                {
+                        string = g_strdup_printf ("%.5g %s %s",
+                                                  2.0*frame->cd.r1*units_per_point,
+                                                  units_string,
+                                                  _("diameter"));
+                }
+                break;
+
+        default:
+                break;
+
+        }
+
+        return string;
+}
+
+
+/**
+ * lgl_template_frame_get_origins:
+ * @frame: #lglTemplateFrame structure to query
+ *
+ * Get an array of label origins for the given frame.  These origins represent the
+ * upper left hand corner of each label on a page corresponding to the given frame.
+ * The origins will be ordered geometrically left to right and then top to bottom.
+ * The array should be freed using g_free().
+ *
+ * Returns: A newly allocated array of #lglTemplateOrigin structures.
+ *
+ */
+lglTemplateOrigin *
+lgl_template_frame_get_origins (const lglTemplateFrame *frame)
+{
+        gint               i_label, n_labels, ix, iy;
+        lglTemplateOrigin *origins;
+        GList             *p;
+        lglTemplateLayout *layout;
+
+        g_return_val_if_fail (frame, NULL);
+
+        n_labels = lgl_template_frame_get_n_labels (frame);
+        origins = g_new0 (lglTemplateOrigin, n_labels);
+
+        i_label = 0;
+        for ( p=frame->all.layouts; p != NULL; p=p->next )
+        {
+                layout = (lglTemplateLayout *)p->data;
+
+                for (iy = 0; iy < layout->ny; iy++)
+                {
+                        for (ix = 0; ix < layout->nx; ix++, i_label++)
+                        {
+                                origins[i_label].x = ix*layout->dx + layout->x0;
+                                origins[i_label].y = iy*layout->dy + layout->y0;
+                        }
+                }
+        }
+
+        g_qsort_with_data (origins, n_labels, sizeof(lglTemplateOrigin),
+                           compare_origins, NULL);
+
+        return origins;
+}
+
+
+/**
+ * lgl_template_frame_add_layout:
+ *   @frame:  Pointer to template frame to add layout to.
+ *   @layout: Pointer to layout structure to add to frame.
+ *
+ * This function adds a layout structure to the given template frame.
+ *
+ */
+void
+lgl_template_frame_add_layout (lglTemplateFrame   *frame,
+                               lglTemplateLayout  *layout)
+{
+        g_return_if_fail (frame);
+        g_return_if_fail (layout);
+
+        frame->all.layouts = g_list_append (frame->all.layouts, layout);
+}
+
+/**
+ * lgl_template_frame_add_markup:
+ *   @frame:  Pointer to template frame to add markup to.
+ *   @markup: Pointer to markup structure to add to frame.
+ *
+ * This function adds a markup structure to the given template frame.
+ *
+ */
+void
+lgl_template_frame_add_markup (lglTemplateFrame   *frame,
+                               lglTemplateMarkup  *markup)
+{
+        g_return_if_fail (frame);
+        g_return_if_fail (markup);
+
+        frame->all.markups = g_list_append (frame->all.markups, markup);
+}
+
+/**
+ * lgl_template_layout_new:
+ *   @nx:  Number of labels across.
+ *   @ny:  Number of labels down.
+ *   @x0:  X coordinate of the top-left corner of the top-left label in the layout in points.
+ *   @y0:  Y coordinate of the top-left corner of the top-left label in the layout in points.
+ *   @dx:  Horizontal pitch in points.  This is the distance from left-edge to left-edge.
+ *   @dy:  Vertical pitch in points.  This is the distance from top-edge to top-edge.
+ *
+ * This function creates a new layout structure with the given parameters.
+ *
+ * Returns: a newly allocated #lglTemplateLayout structure.
+ *
+ */
+lglTemplateLayout *
+lgl_template_layout_new (gint    nx,
+                         gint    ny,
+                         gdouble x0,
+                         gdouble y0,
+                         gdouble dx,
+                         gdouble dy)
+{
+        lglTemplateLayout *layout;
+
+        layout = g_new0 (lglTemplateLayout, 1);
+
+        layout->nx = nx;
+        layout->ny = ny;
+        layout->x0 = x0;
+        layout->y0 = y0;
+        layout->dx = dx;
+        layout->dy = dy;
+
+        return layout;
+}
+
+
+/**
+ * lgl_template_markup_margin_new:
+ *   @size: margin size in points.
+ *
+ * This function creates a new margin markup structure.
+ *
+ * Returns: a newly allocated #lglTemplateMarkup structure.
+ *
+ */
+lglTemplateMarkup *
+lgl_template_markup_margin_new (gdouble size)
+{
+        lglTemplateMarkup *markup;
+
+        markup = g_new0 (lglTemplateMarkup, 1);
+
+        markup->type        = LGL_TEMPLATE_MARKUP_MARGIN;
+        markup->margin.size = size;
+
+        return markup;
+}
+
+
+/**
+ * lgl_template_markup_line_new:
+ *   @x1: x coordinate of first endpoint.
+ *   @y1: y coordinate of first endpoint.
+ *   @x2: x coordinate of second endpoint.
+ *   @y2: y coordinate of second endpoint.
+ *
+ * This function creates a new line markup structure.
+ *
+ * Returns: a newly allocated #lglTemplateMarkup structure.
+ *
+ */
+lglTemplateMarkup *
+lgl_template_markup_line_new (gdouble x1,
+                              gdouble y1,
+                              gdouble x2,
+                              gdouble y2)
+{
+        lglTemplateMarkup *markup;
+
+        markup = g_new0 (lglTemplateMarkup, 1);
+
+        markup->type        = LGL_TEMPLATE_MARKUP_LINE;
+        markup->line.x1     = x1;
+        markup->line.y1     = y1;
+        markup->line.x2     = x2;
+        markup->line.y2     = y2;
+
+        return markup;
+}
+
+
+/**
+ * lgl_template_markup_circle_new:
+ *   @x0: x coordinate of center of circle.
+ *   @y0: y coordinate of center of circle.
+ *   @r:  radius of circle.
+ *
+ * This function creates a new circle markup structure.
+ *
+ * Returns: a newly allocated #lglTemplateMarkup structure.
+ *
+ */
+lglTemplateMarkup *
+lgl_template_markup_circle_new (gdouble x0,
+                                gdouble y0,
+                                gdouble r)
+{
+        lglTemplateMarkup *markup;
+
+        markup = g_new0 (lglTemplateMarkup, 1);
+
+        markup->type        = LGL_TEMPLATE_MARKUP_CIRCLE;
+        markup->circle.x0   = x0;
+        markup->circle.y0   = y0;
+        markup->circle.r    = r;
+
+        return markup;
+}
+
+
+/**
+ * lgl_template_markup_rect_new:
+ *   @x1: x coordinate of top-left corner of rectangle.
+ *   @y1: y coordinate of top-left corner of rectangle.
+ *   @w:  width of rectangle.
+ *   @h:  height of rectangle.
+ *   @r:  radius of rounded corner.
+ *
+ * This function creates a new rectangle markup structure.
+ *
+ * Returns: a newly allocated #lglTemplateMarkup structure.
+ *
+ */
+lglTemplateMarkup *
+lgl_template_markup_rect_new (gdouble x1,
+                              gdouble y1,
+                              gdouble w,
+                              gdouble h,
+                              gdouble r)
+{
+        lglTemplateMarkup *markup;
+
+        markup = g_new0 (lglTemplateMarkup, 1);
+
+        markup->type        = LGL_TEMPLATE_MARKUP_RECT;
+        markup->rect.x1     = x1;
+        markup->rect.y1     = y1;
+        markup->rect.w      = w;
+        markup->rect.h      = h;
+        markup->rect.r      = r;
+
+        return markup;
+}
+
+
+/**
+ * lgl_template_markup_ellipse_new:
+ *   @x1: x coordinate of top-left corner of ellipse.
+ *   @y1: y coordinate of top-left corner of ellipse.
+ *   @w:  width of ellipse.
+ *   @h:  height of ellipse.
+ *
+ * This function creates a new ellipse markup structure.
+ *
+ * Returns: a newly allocated #lglTemplateMarkup structure.
+ *
+ */
+lglTemplateMarkup *
+lgl_template_markup_ellipse_new (gdouble x1,
+                                 gdouble y1,
+                                 gdouble w,
+                                 gdouble h)
+{
+        lglTemplateMarkup *markup;
+
+        markup = g_new0 (lglTemplateMarkup, 1);
+
+        markup->type        = LGL_TEMPLATE_MARKUP_ELLIPSE;
+        markup->ellipse.x1     = x1;
+        markup->ellipse.y1     = y1;
+        markup->ellipse.w      = w;
+        markup->ellipse.h      = h;
+
+        return markup;
+}
+
+
+/**
+ * lgl_template_dup:
+ *   @orig_template: Template to duplicate.
+ *
+ * This function duplicates a template structure.
+ *
+ * Returns:  a newly allocated #lglTemplate structure.
+ *
+ */
+lglTemplate *
+lgl_template_dup (const lglTemplate *orig_template)
+{
+        lglTemplate         *template;
+        GList               *p;
+        lglTemplateFrame    *frame;
+
+        g_return_val_if_fail (orig_template, NULL);
+
+        template = lgl_template_new (orig_template->brand,
+                                     orig_template->part,
+                                     orig_template->description,
+                                     orig_template->paper_id,
+                                     orig_template->page_width,
+                                     orig_template->page_height);
+
+        template->equiv_part  = g_strdup (orig_template->equiv_part);
+        template->product_url = g_strdup (orig_template->product_url);
+
+
+        for ( p=orig_template->category_ids; p != NULL; p=p->next )
+        {
+                lgl_template_add_category (template, p->data);
+        }
+
+        for ( p=orig_template->frames; p != NULL; p=p->next )
+        {
+                frame = (lglTemplateFrame *)p->data;
+
+                lgl_template_add_frame (template, lgl_template_frame_dup (frame));
+        }
+
+        return template;
+}
+
+
+/**
+ * lgl_template_free:
+ *   @template: Template to free.
+ *
+ * This function frees all memory associated with given template structure.
+ *
+ */
+void
+lgl_template_free (lglTemplate *template)
+{
+        GList            *p;
+        lglTemplateFrame *frame;
+
+        if ( template != NULL )
+        {
+                g_free (template->brand);
+                template->brand = NULL;
+
+                g_free (template->part);
+                template->part = NULL;
+
+                g_free (template->description);
+                template->description = NULL;
+
+                g_free (template->paper_id);
+                template->paper_id = NULL;
+
+                for ( p=template->category_ids; p != NULL; p=p->next )
+                {
+                        g_free (p->data);
+                        p->data = NULL;
+                }
+                g_list_free (template->category_ids);
+                template->category_ids = NULL;
+
+                for ( p=template->frames; p != NULL; p=p->next )
+                {
+                        frame = (lglTemplateFrame *)p->data;
+
+                        lgl_template_frame_free (frame);
+                        p->data = NULL;
+                }
+                g_list_free (template->frames);
+                template->frames = NULL;
+
+                g_free (template);
+
+        }
+
+}
+
+
+/**
+ * lgl_template_frame_dup:
+ *   @orig_frame: Frame to duplicate.
+ *
+ * This function duplicates a template frame structure.
+ *
+ * Returns:  a newly allocated #lglTemplateFrame structure.
+ *
+ */
+lglTemplateFrame *
+lgl_template_frame_dup (const lglTemplateFrame *orig_frame)
+{
+        lglTemplateFrame    *frame;
+        GList               *p;
+        lglTemplateLayout   *layout;
+        lglTemplateMarkup   *markup;
+
+        g_return_val_if_fail (orig_frame, NULL);
+
+        switch (orig_frame->shape)
+        {
+
+        case LGL_TEMPLATE_FRAME_SHAPE_RECT:
+                frame =
+                        lgl_template_frame_rect_new (orig_frame->all.id,
+                                                     orig_frame->rect.w,
+                                                     orig_frame->rect.h,
+                                                     orig_frame->rect.r,
+                                                     orig_frame->rect.x_waste,
+                                                     orig_frame->rect.y_waste);
+                break;
+
+        case LGL_TEMPLATE_FRAME_SHAPE_ELLIPSE:
+                frame =
+                        lgl_template_frame_ellipse_new (orig_frame->all.id,
+                                                        orig_frame->ellipse.w,
+                                                        orig_frame->ellipse.h,
+                                                        orig_frame->ellipse.waste);
+                break;
+
+        case LGL_TEMPLATE_FRAME_SHAPE_ROUND:
+                frame =
+                        lgl_template_frame_round_new (orig_frame->all.id,
+                                                      orig_frame->round.r,
+                                                      orig_frame->round.waste);
+                break;
+
+        case LGL_TEMPLATE_FRAME_SHAPE_CD:
+                frame =
+                        lgl_template_frame_cd_new (orig_frame->all.id,
+                                                   orig_frame->cd.r1,
+                                                   orig_frame->cd.r2,
+                                                   orig_frame->cd.w,
+                                                   orig_frame->cd.h,
+                                                   orig_frame->cd.waste);
+                break;
+
+        default:
+                return NULL;
+                break;
+        }
+
+        for ( p=orig_frame->all.layouts; p != NULL; p=p->next )
+        {
+                layout = (lglTemplateLayout *)p->data;
+
+                lgl_template_frame_add_layout (frame, lgl_template_layout_dup (layout));
+        }
+
+        for ( p=orig_frame->all.markups; p != NULL; p=p->next )
+        {
+                markup = (lglTemplateMarkup *)p->data;
+
+                lgl_template_frame_add_markup (frame, lgl_template_markup_dup (markup));
+        }
+
+        return frame;
+}
+
+
+/**
+ * lgl_template_frame_free:
+ *   @frame: Frame to free.
+ *
+ * This function frees all memory associated with given template frame structure.
+ *
+ */
+void
+lgl_template_frame_free (lglTemplateFrame *frame)
+{
+        GList                *p;
+        lglTemplateLayout    *layout;
+        lglTemplateMarkup    *markup;
+
+        if ( frame != NULL )
+        {
+
+                g_free (frame->all.id);
+                frame->all.id = NULL;
+
+                for ( p=frame->all.layouts; p != NULL; p=p->next )
+                {
+                        layout = (lglTemplateLayout *)p->data;
+
+                        lgl_template_layout_free (layout);
+                        p->data = NULL;
+                }
+                g_list_free (frame->all.layouts);
+                frame->all.layouts = NULL;
+
+                for ( p=frame->all.markups; p != NULL; p=p->next )
+                {
+                        markup = (lglTemplateMarkup *)p->data;
+
+                        lgl_template_markup_free (markup);
+                        p->data = NULL;
+                }
+                g_list_free (frame->all.markups);
+                frame->all.markups = NULL;
+
+                g_free (frame);
+
+        }
+
+}
+
+
+/**
+ * lgl_template_layout_dup:
+ *   @orig_layout: Layout to duplicate.
+ *
+ * This function duplicates a template layout structure.
+ *
+ * Returns:  a newly allocated #lglTemplateLayout structure.
+ *
+ */
+lglTemplateLayout *
+lgl_template_layout_dup (const lglTemplateLayout *orig_layout)
+{
+        lglTemplateLayout *layout;
+
+        g_return_val_if_fail (orig_layout, NULL);
+
+        layout = g_new0 (lglTemplateLayout, 1);
+
+        /* copy contents */
+        *layout = *orig_layout;
+
+        return layout;
+}
+
+
+/**
+ * lgl_template_layout_free:
+ *   @layout: Layout to free.
+ *
+ * This function frees all memory associated with given template layout structure.
+ *
+ */
+void
+lgl_template_layout_free (lglTemplateLayout *layout)
+{
+        g_free (layout);
+}
+
+
+/**
+ * lgl_template_markup_dup:
+ *   @orig_markup: Markup to duplicate.
+ *
+ * This function duplicates a template markup structure.
+ *
+ * Returns:  a newly allocated #lglTemplateMarkup structure.
+ *
+ */
+lglTemplateMarkup *
+lgl_template_markup_dup (const lglTemplateMarkup *orig_markup)
+{
+        lglTemplateMarkup *markup;
+
+        g_return_val_if_fail (orig_markup, NULL);
+
+        markup = g_new0 (lglTemplateMarkup, 1);
+
+        *markup = *orig_markup;
+
+        return markup;
+}
+
+
+/**
+ * lgl_template_markup_free:
+ *   @markup: Markup to free.
+ *
+ * This function frees all memory associated with given template markup structure.
+ *
+ */
+void
+lgl_template_markup_free (lglTemplateMarkup *markup)
+{
+        g_free (markup);
+}
+
+
+static gint
+compare_origins (gconstpointer a,
+                 gconstpointer b,
+                 gpointer      user_data)
+{
+        const lglTemplateOrigin *a_origin = a, *b_origin = b;
+
+        if ( a_origin->y < b_origin->y )
+        {
+                return -1;
+        }
+        else if ( a_origin->y > b_origin->y )
+        {
+                return +1;
+        }
+        else
+        {
+                if ( a_origin->x < b_origin->x )
+                {
+                        return -1;
+                }
+                else if ( a_origin->x > b_origin->x )
+                {
+                        return +1;
+                }
+                else
+                {
+                        return 0; /* hopefully 2 labels won't have the same origin */
+                }
+        }
+}
+
+
+/**
+ * lgl_template_print:
+ *   @template: template
+ *
+ * Print template details (for debugging purposes).
+ *
+ */
+void
+lgl_template_print (const lglTemplate *template)
+{
+        g_print ("---- %s( TEMPLATE=%p ) ----\n", __FUNCTION__, template);
+
+        g_print("brand=\"%s\", part=\"%s\", description=\"%s\"\n",
+                template->brand, template->part, template->description);
+
+        g_print("paper_id=\"%s\", page_width=%g, page_height=%g\n",
+                template->paper_id, template->page_width, template->page_height);
+
+        g_print ("\n");
+
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/lgl-template.h b/libglabels/lgl-template.h
new file mode 100644 (file)
index 0000000..b475f2b
--- /dev/null
@@ -0,0 +1,424 @@
+/*
+ *  lgl-template.h
+ *  Copyright (C) 2001-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglabels.
+ *
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __LGL_TEMPLATE_H__
+#define __LGL_TEMPLATE_H__
+
+#include <glib.h>
+#include "lgl-units.h"
+
+G_BEGIN_DECLS
+
+typedef struct _lglTemplate                lglTemplate;
+
+typedef union  _lglTemplateFrame           lglTemplateFrame;
+typedef struct _lglTemplateFrameAll        lglTemplateFrameAll;
+typedef struct _lglTemplateFrameRect       lglTemplateFrameRect;
+typedef struct _lglTemplateFrameEllipse    lglTemplateFrameEllipse;
+typedef struct _lglTemplateFrameRound      lglTemplateFrameRound;
+typedef struct _lglTemplateFrameCD         lglTemplateFrameCD;
+
+typedef struct _lglTemplateLayout          lglTemplateLayout;
+
+typedef union  _lglTemplateMarkup          lglTemplateMarkup;
+typedef struct _lglTemplateMarkupMargin    lglTemplateMarkupMargin;
+typedef struct _lglTemplateMarkupLine      lglTemplateMarkupLine;
+typedef struct _lglTemplateMarkupCircle    lglTemplateMarkupCircle;
+typedef struct _lglTemplateMarkupRect      lglTemplateMarkupRect;
+typedef struct _lglTemplateMarkupEllipse   lglTemplateMarkupEllipse;
+
+typedef struct _lglTemplateOrigin          lglTemplateOrigin;
+
+/*
+ *   Top-level Template Structure
+ */
+struct _lglTemplate {
+
+        gchar               *brand;
+        gchar               *part;
+        gchar               *equiv_part;
+
+        gchar               *description;
+        gchar               *paper_id;
+        gdouble              page_width;
+        gdouble              page_height;
+
+        /* Meta information. */
+        gchar               *product_url;   /* URL to manufacturer's product website. */
+        GList               *category_ids;  /* List of (gchar *) category ids. */
+
+        /* List of (lglTemplateFrame *) label frame structures.
+         * Currently glabels only supports a single label frame per
+         * template. */
+        GList               *frames;
+
+};
+
+
+/*
+ *   Possible Frame Shapes
+ */
+typedef enum {
+        LGL_TEMPLATE_FRAME_SHAPE_RECT,
+        LGL_TEMPLATE_FRAME_SHAPE_ELLIPSE,
+        LGL_TEMPLATE_FRAME_SHAPE_ROUND,
+        LGL_TEMPLATE_FRAME_SHAPE_CD
+} lglTemplateFrameShape;
+
+
+/*
+ *   Frame Structure
+ */
+struct _lglTemplateFrameAll {
+
+        /* Begin Common Fields */
+        lglTemplateFrameShape shape;
+
+        gchar                *id;       /* Id, currently always "0" */
+        GList                *layouts;  /* List of lglTemplateLayouts */
+        GList                *markups;  /* List of lglTemplateMarkups */
+        /* End Common Fields */
+};
+
+struct _lglTemplateFrameRect {
+
+        /* Begin Common Fields */
+        lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_RECT. */
+
+        gchar                *id;       /* Id, currently always "0" */
+        GList                *layouts;  /* List of lglTemplateLayouts */
+        GList                *markups;  /* List of lglTemplateMarkups */
+        /* End Common Fields */
+
+        gdouble               w;        /* Width */
+        gdouble               h;        /* Height */
+        gdouble               r;        /* Corner radius */
+        gdouble               x_waste;  /* Amount of horiz overprint allowed. */
+        gdouble               y_waste;  /* Amount of vert overprint allowed. */
+};
+
+struct _lglTemplateFrameEllipse {
+
+        /* Begin Common Fields */
+        lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_ELLIPSE. */
+
+        gchar                *id;       /* Id, currently always "0" */
+        GList                *layouts;  /* List of lglTemplateLayouts */
+        GList                *markups;  /* List of lglTemplateMarkups */
+        /* End Common Fields */
+
+        gdouble               w;        /* Width */
+        gdouble               h;        /* Height */
+        gdouble               waste;    /* Amount of overprint allowed. */
+};
+
+struct _lglTemplateFrameRound {
+
+        /* Begin Common Fields */
+        lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_ROUND. */
+
+        gchar                *id;       /* Id, currently always "0" */
+        GList                *layouts;  /* List of lglTemplateLayouts */
+        GList                *markups;  /* List of lglTemplateMarkups */
+        /* End Common Fields */
+
+        gdouble               r;      /* Radius */
+        gdouble               waste;  /* Amount of overprint allowed. */
+};
+
+struct _lglTemplateFrameCD {
+
+        /* Begin Common Fields */
+        lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_CD. */
+
+        gchar                *id;       /* Id, currently always "0" */
+        GList                *layouts;  /* List of lglTemplateLayouts */
+        GList                *markups;  /* List of lglTemplateMarkups */
+        /* End Common Fields */
+
+        gdouble               r1;     /* Outer radius */
+        gdouble               r2;     /* Inner radius (hole) */
+        gdouble               w;      /* Clip width, business card CDs */
+        gdouble               h;      /* Clip height, business card CDs */
+        gdouble               waste;  /* Amount of overprint allowed. */
+};
+
+union _lglTemplateFrame{
+
+        lglTemplateFrameShape   shape;
+
+        lglTemplateFrameAll     all;
+        lglTemplateFrameRect    rect;
+        lglTemplateFrameEllipse ellipse;
+        lglTemplateFrameRound   round;
+        lglTemplateFrameCD      cd;
+};
+
+
+/*
+ *   Label Layout Structure
+ */
+struct _lglTemplateLayout {
+
+        gint                  nx;  /* Number of labels across */
+        gint                  ny;  /* Number of labels up and down */
+
+        gdouble               x0;  /* Left of grid from left edge of paper */
+        gdouble               y0;  /* Top of grid from top edge of paper */
+
+        gdouble               dx;  /* Horizontal pitch of grid */
+        gdouble               dy;  /* Vertical pitch of grid */
+
+};
+
+
+/*
+ * Possible Markup Types
+ */
+typedef enum {
+        LGL_TEMPLATE_MARKUP_MARGIN,
+        LGL_TEMPLATE_MARKUP_LINE,
+        LGL_TEMPLATE_MARKUP_CIRCLE,
+        LGL_TEMPLATE_MARKUP_RECT,
+        LGL_TEMPLATE_MARKUP_ELLIPSE
+} lglTemplateMarkupType;
+
+
+/*
+ *   Label Markup Structure (Helpful lines drawn in glabels to help locate objects)
+ */
+struct _lglTemplateMarkupMargin {
+
+        lglTemplateMarkupType  type;  /* Always LGL_TEMPLATE_MARKUP_MARGIN */
+
+        gdouble                size;  /* Margin size */
+};
+
+struct _lglTemplateMarkupLine {
+
+        lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_LINE */
+
+        gdouble                x1, y1; /* 1st endpoint */
+        gdouble                x2, y2; /* 2nd endpoint */
+};
+
+struct _lglTemplateMarkupCircle {
+
+        lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_CIRCLE */
+
+        gdouble                x0, y0; /* Center of circle */
+        gdouble                r;      /* Radius of circle */
+};
+
+struct _lglTemplateMarkupRect {
+
+        lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_RECT */
+
+        gdouble                x1, y1; /* Upper left corner */
+        gdouble                w, h;   /* Width and height. */
+        gdouble                r;      /* Radius of corners. */
+};
+
+struct _lglTemplateMarkupEllipse {
+
+        lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_ELLIPSE */
+
+        gdouble                x1, y1; /* Upper left corner */
+        gdouble                w, h;   /* Width and height. */
+};
+
+union _lglTemplateMarkup {
+
+        lglTemplateMarkupType    type;
+
+        lglTemplateMarkupMargin  margin;
+        lglTemplateMarkupLine    line;
+        lglTemplateMarkupCircle  circle;
+        lglTemplateMarkupRect    rect;
+        lglTemplateMarkupEllipse ellipse;
+};
+
+
+/*
+ *  Origin coordinates
+ */
+struct _lglTemplateOrigin {
+
+        gdouble               x, y; /* Label origin relative to upper 
+                                     * upper left hand corner of paper */
+
+};
+
+
+
+/* 
+ * Template query functions
+ */
+gchar                     *lgl_template_get_name                (const lglTemplate   *template);
+
+gboolean                   lgl_template_do_templates_match      (const lglTemplate   *template1,
+                                                                 const lglTemplate   *template2);
+
+gboolean                   lgl_template_does_brand_match        (const lglTemplate   *template,
+                                                                 const gchar         *brand);
+
+gboolean                   lgl_template_does_page_size_match    (const lglTemplate   *template,
+                                                                 const gchar         *paper_id);
+
+gboolean                   lgl_template_does_category_match     (const lglTemplate   *template,
+                                                                 const gchar         *category_id);
+
+gboolean                   lgl_template_are_templates_identical (const lglTemplate   *template1,
+                                                                 const lglTemplate   *template2);
+
+
+
+
+/*
+ * Frame query functions
+ */
+void                 lgl_template_frame_get_size       (const lglTemplateFrame    *frame,
+                                                        gdouble                   *w,
+                                                        gdouble                   *h);
+
+gint                 lgl_template_frame_get_n_labels   (const lglTemplateFrame    *frame);
+
+lglTemplateOrigin   *lgl_template_frame_get_origins    (const lglTemplateFrame    *frame);
+
+gchar               *lgl_template_frame_get_layout_description (const lglTemplateFrame *frame);
+
+gchar               *lgl_template_frame_get_size_description   (const lglTemplateFrame *frame,
+                                                                lglUnits                units);
+
+
+
+
+/*
+ * Template Construction
+ */
+lglTemplate         *lgl_template_new                  (const gchar          *brand,
+                                                        const gchar          *part,
+                                                        const gchar          *description,
+                                                        const gchar          *paper_id,
+                                                        gdouble               page_width,
+                                                        gdouble               page_height);
+
+lglTemplate         *lgl_template_new_from_equiv       (const gchar          *brand,
+                                                        const gchar          *part,
+                                                        const gchar          *equiv_part);
+
+void                 lgl_template_add_category         (lglTemplate          *template,
+                                                        const gchar          *category_id);
+
+void                 lgl_template_add_frame            (lglTemplate          *template,
+                                                        lglTemplateFrame     *frame);
+
+lglTemplateFrame    *lgl_template_frame_rect_new       (const gchar          *id,
+                                                        gdouble               w,
+                                                        gdouble               h,
+                                                        gdouble               r,
+                                                        gdouble               x_waste,
+                                                        gdouble               y_waste);
+
+lglTemplateFrame    *lgl_template_frame_ellipse_new    (const gchar          *id,
+                                                        gdouble               w,
+                                                        gdouble               h,
+                                                        gdouble               waste);
+
+lglTemplateFrame    *lgl_template_frame_round_new      (const gchar          *id,
+                                                        gdouble               r,
+                                                        gdouble               waste);
+
+lglTemplateFrame    *lgl_template_frame_cd_new         (const gchar          *id,
+                                                        gdouble               r1,
+                                                        gdouble               r2,
+                                                        gdouble               w,
+                                                        gdouble               h,
+                                                        gdouble               waste);
+
+void                 lgl_template_frame_add_layout     (lglTemplateFrame     *frame,
+                                                        lglTemplateLayout    *layout);
+
+void                 lgl_template_frame_add_markup     (lglTemplateFrame     *frame,
+                                                        lglTemplateMarkup    *markup);
+
+lglTemplateLayout   *lgl_template_layout_new           (gint                  nx,
+                                                        gint                  ny,
+                                                        gdouble               x0,
+                                                        gdouble               y0,
+                                                        gdouble               dx,
+                                                        gdouble               dy);
+
+lglTemplateMarkup   *lgl_template_markup_margin_new    (gdouble               size);
+
+lglTemplateMarkup   *lgl_template_markup_line_new      (gdouble               x1,
+                                                        gdouble               y1,
+                                                        gdouble               x2,
+                                                        gdouble               y2);
+
+lglTemplateMarkup   *lgl_template_markup_circle_new    (gdouble               x0,
+                                                        gdouble               y0,
+                                                        gdouble               r);
+
+lglTemplateMarkup   *lgl_template_markup_rect_new      (gdouble               x1,
+                                                        gdouble               y1,
+                                                        gdouble               w,
+                                                        gdouble               h,
+                                                        gdouble               r);
+
+lglTemplateMarkup   *lgl_template_markup_ellipse_new   (gdouble               x1,
+                                                        gdouble               y1,
+                                                        gdouble               w,
+                                                        gdouble               h);
+
+lglTemplate         *lgl_template_dup                  (const lglTemplate    *orig_template);
+
+void                 lgl_template_free                 (lglTemplate          *template);
+
+lglTemplateFrame    *lgl_template_frame_dup            (const lglTemplateFrame     *orig_frame);
+void                 lgl_template_frame_free           (lglTemplateFrame           *frame);
+
+lglTemplateLayout   *lgl_template_layout_dup           (const lglTemplateLayout    *orig_layout);
+void                 lgl_template_layout_free          (lglTemplateLayout          *layout);
+
+lglTemplateMarkup   *lgl_template_markup_dup           (const lglTemplateMarkup    *orig_markup);
+void                 lgl_template_markup_free          (lglTemplateMarkup          *markup);
+
+
+/*
+ * Debugging functions.
+ */
+void                 lgl_template_print                (const lglTemplate          *template);
+
+
+G_END_DECLS
+
+#endif /* __LGL_TEMPLATE_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/lgl-units.c b/libglabels/lgl-units.c
new file mode 100644 (file)
index 0000000..4c7c402
--- /dev/null
@@ -0,0 +1,261 @@
+/*
+ *  lgl-units.c
+ *  Copyright (C) 2003-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglabels.
+ *
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "lgl-units.h"
+
+#include <glib/gi18n.h>
+#include <glib.h>
+#include <string.h>
+
+#include "libglabels-private.h"
+
+
+/*========================================================*/
+/* Private macros and constants.                          */
+/*========================================================*/
+
+#define POINTS_PER_POINT    1.0 /* internal units are points. */
+#define POINTS_PER_INCH    72.0
+#define POINTS_PER_MM       2.83464566929
+#define POINTS_PER_CM       (10.0*POINTS_PER_MM)
+#define POINTS_PER_PICA     (1.0/12.0)
+
+
+/*========================================================*/
+/* Private types.                                         */
+/*========================================================*/
+
+typedef struct {
+        gchar       *id;
+        gchar       *name;
+        gdouble      points_per_unit;
+} UnitTableEntry;
+
+
+/*========================================================*/
+/* Private globals.                                       */
+/*========================================================*/
+
+static UnitTableEntry unit_table[] = {
+
+        /* The ids are identical to the absolute length units supported in
+           the CSS2 Specification (Section 4.3.2) */
+
+        /* This table must be sorted exactly as the enumerations in lglUnits */
+
+        /* [LGL_UNITS_POINT] */   {"pt", N_("points"), POINTS_PER_POINT},
+        /* [LGL_UNITS_INCH]  */   {"in", N_("inches"), POINTS_PER_INCH},
+        /* [LGL_UNITS_MM]    */   {"mm", N_("mm"),     POINTS_PER_MM},
+        /* [LGL_UNITS_CM]    */   {"cm", N_("cm"),     POINTS_PER_CM},
+        /* [LGL_UNITS_PICA]  */   {"pc", N_("picas"),  POINTS_PER_PICA},
+
+};
+
+
+
+/**
+ * lgl_units_get_id:
+ * @units:       Units (#lglUnits)
+ *
+ * Return a unique ID string for the given units.  This ID is how units
+ * are encoded in libglabels XML files and will remain constant across
+ * all locales.  IDs are identical to the absolute length units supported
+ * in the CSS2 Specification (Section 4.3.2). 
+ *
+ * Returns: ID string.
+ *
+ */
+const gchar *
+lgl_units_get_id (lglUnits     units)
+{
+        if ( (units >= LGL_UNITS_FIRST) && (units <= LGL_UNITS_LAST) )
+        {
+                return unit_table[units].id;
+        }
+        else
+        {
+                /* Default to "pt", if invalid. */
+                return unit_table[LGL_UNITS_POINT].id;
+        }
+}
+
+
+/**
+ * lgl_units_from_id:
+ * @id:       ID string
+ *
+ * Return the unique #lglUnits for the given ID string.
+ * This ID is how units are encoded in libglabels XML files and will remain
+ * constant across all locales.  IDs are identical to the absolute length
+ * units supported in the CSS2 Specification (Section 4.3.2). 
+ *
+ * Returns: units (#lglUnits).
+ *
+ */
+lglUnits
+lgl_units_from_id (const gchar *id)
+{
+        lglUnits units;
+
+        /* An empty or missing id defaults to points. */
+        if ( (id == NULL) || (*id == '\0') )
+        {
+                return LGL_UNITS_POINT;
+        }
+
+        for ( units = LGL_UNITS_FIRST; units <= LGL_UNITS_LAST; units++)
+        {
+                if (g_ascii_strcasecmp (id, unit_table[units].id) == 0)
+                {
+                        return units;
+                }
+        }
+
+        /* Try name as a fallback. (Will catch some legacy preferences.) */
+        for ( units = LGL_UNITS_FIRST; units <= LGL_UNITS_LAST; units++)
+        {
+                if (g_ascii_strcasecmp (id, unit_table[units].name) == 0)
+                {
+                        return units;
+                }
+        }
+
+        /* For compatibility with old preferences. */
+        if (g_ascii_strcasecmp (id, "Millimeters") == 0)
+        {
+                return LGL_UNITS_MM;
+        }
+
+        return LGL_UNITS_INVALID;
+}
+
+
+/**
+ * lgl_units_get_name:
+ * @units:       Units (#lglUnits)
+ *
+ * Return a unique name string for the given units.  This name is human
+ * readable and will be translated to the current locale.
+ *
+ * Returns: name string.
+ *
+ */
+const gchar *
+lgl_units_get_name (lglUnits     units)
+{
+        if ( (units >= LGL_UNITS_FIRST) && (units <= LGL_UNITS_LAST) )
+        {
+                return gettext ((char *)unit_table[units].name);
+        }
+        else
+        {
+                /* Default to "points", if invalid. */
+                return gettext ((char *)unit_table[LGL_UNITS_POINT].name);
+        }
+}
+
+
+/**
+ * lgl_units_from_name:
+ * @name:       NAME string
+ *
+ * Return the unique #lglUnits for the given name string.  This name is
+ * human readable and is expected to be translated to the current locale.
+ *
+ * Returns: units (#lglUnits).
+ *
+ */
+lglUnits
+lgl_units_from_name (const gchar *name)
+{
+        lglUnits units;
+
+        for ( units = LGL_UNITS_FIRST; units <= LGL_UNITS_LAST; units++)
+        {
+                if (g_ascii_strcasecmp (name, gettext ((char *)unit_table[units].name) ) == 0)
+                {
+                        return units;
+                }
+        }
+
+        return LGL_UNITS_INVALID;
+}
+
+
+/**
+ * lgl_units_get_points_per_unit:
+ * @units:       Units (#lglUnits)
+ *
+ * Return a scale factor for the given units in points/unit.
+ *
+ * Returns: scale factor.
+ *
+ */
+gdouble
+lgl_units_get_points_per_unit (lglUnits     units)
+{
+        if ( (units >= LGL_UNITS_FIRST) && (units <= LGL_UNITS_LAST) )
+        {
+                return unit_table[units].points_per_unit;
+        }
+        else
+        {
+                /* Default to "points", if invalid. */
+                return 1.0;
+        }
+}
+
+
+/**
+ * lgl_units_get_units_per_point:
+ * @units:       Units (#lglUnits)
+ *
+ * Return a scale factor for the given units in units/point.
+ *
+ * Returns: scale factor.
+ *
+ */
+gdouble
+lgl_units_get_units_per_point (lglUnits     units)
+{
+        if ( (units >= LGL_UNITS_FIRST) && (units <= LGL_UNITS_LAST) )
+        {
+                return 1.0 / unit_table[units].points_per_unit;
+        }
+        else
+        {
+                /* Default to "points", if invalid. */
+                return 1.0;
+        }
+}
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/lgl-units.h b/libglabels/lgl-units.h
new file mode 100644 (file)
index 0000000..e3b2beb
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ *  lgl-units.h
+ *  Copyright (C) 2003-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglabels.
+ *
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __LGL_UNITS_H__
+#define __LGL_UNITS_H__
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+
+/*
+ * Units of distance
+ */
+typedef enum {
+        LGL_UNITS_POINT, /* encoded as "pt" */
+        LGL_UNITS_INCH,  /* encoded as "in" */
+        LGL_UNITS_MM,    /* encoded as "mm" */
+        LGL_UNITS_CM,    /* encoded as "cm" */
+        LGL_UNITS_PICA,  /* encoded as "pc" */
+
+        LGL_UNITS_FIRST = LGL_UNITS_POINT,
+        LGL_UNITS_LAST  = LGL_UNITS_PICA,
+
+        LGL_UNITS_INVALID = -1
+} lglUnits;
+
+
+const gchar *lgl_units_get_id               (lglUnits     units);
+lglUnits     lgl_units_from_id              (const gchar *id);
+
+const gchar *lgl_units_get_name             (lglUnits     units);
+lglUnits     lgl_units_from_name            (const gchar *name);
+
+gdouble      lgl_units_get_points_per_unit  (lglUnits     units);
+gdouble      lgl_units_get_units_per_point  (lglUnits     units);
+
+
+G_END_DECLS
+
+
+#endif /* __LGL_UNITS_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/lgl-vendor.c b/libglabels/lgl-vendor.c
new file mode 100644 (file)
index 0000000..dc4c6f2
--- /dev/null
@@ -0,0 +1,128 @@
+/*
+ *  lgl-vendor.c
+ *  Copyright (C) 2003-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglabels.
+ *
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "lgl-vendor.h"
+
+#include <glib/gi18n.h>
+#include <glib.h>
+#include <string.h>
+
+#include "libglabels-private.h"
+
+/*===========================================*/
+/* Private types                             */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Functions.                                */
+/*===========================================*/
+
+/**
+ * lgl_vendor_new:
+ * @name:     Localized name of vendor.
+ *
+ * Allocates and constructs a new #lglVendor structure.
+ *
+ * Returns: a pointer to a newly allocated #lglVendor structure.
+ *
+ */
+lglVendor *
+lgl_vendor_new (gchar             *name)
+{
+        lglVendor *vendor;
+
+        vendor           = g_new0 (lglVendor,1);
+
+        vendor->name     = g_strdup (name);
+
+        return vendor;
+}
+
+
+/**
+ * lgl_vendor_dup:
+ * @orig:  #lglVendor structure to be duplicated.
+ *
+ * Duplicates an existing #lglVendor structure.
+ *
+ * Returns: a pointer to a newly allocated #lglVendor structure.
+ *
+ */
+lglVendor *lgl_vendor_dup (const lglVendor *orig)
+{
+        lglVendor       *vendor;
+
+        g_return_val_if_fail (orig, NULL);
+
+        vendor = g_new0 (lglVendor,1);
+
+        vendor->name  = g_strdup (orig->name);
+        vendor->url   = g_strdup (orig->url);
+
+        return vendor;
+}
+
+
+/**
+ * lgl_vendor_free:
+ * @vendor:  pointer to #lglVendor structure to be freed.
+ *
+ * Free all memory associated with an existing #lglVendor structure.
+ *
+ */
+void lgl_vendor_free (lglVendor *vendor)
+{
+
+        if ( vendor != NULL )
+        {
+                g_free (vendor->name);
+                vendor->name = NULL;
+
+                g_free (vendor->url);
+                vendor->url = NULL;
+
+                g_free (vendor);
+        }
+
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/lgl-vendor.h b/libglabels/lgl-vendor.h
new file mode 100644 (file)
index 0000000..e25df76
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ *  lgl-vendor.h
+ *  Copyright (C) 2003-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglabels.
+ *
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __LGL_VENDOR_H__
+#define __LGL_VENDOR_H__
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+
+/*
+ *   lglVendor structure
+ */
+typedef struct _lglVendor lglVendor;
+
+struct _lglVendor {
+        gchar               *name;           /* Vendor name */
+        gchar               *url;            /* Vendor URL */
+};
+
+
+/*
+ * Vendor construction
+ */
+lglVendor           *lgl_vendor_new                (gchar           *name);
+
+lglVendor           *lgl_vendor_dup                (const lglVendor *orig);
+
+void                 lgl_vendor_free               (lglVendor       *vendor);
+
+
+G_END_DECLS
+
+#endif /* __LGL_VENDOR_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/lgl-xml-category.c b/libglabels/lgl-xml-category.c
new file mode 100644 (file)
index 0000000..5010615
--- /dev/null
@@ -0,0 +1,185 @@
+/*
+ *  lgl-xml-category.c
+ *  Copyright (C) 2006-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglabels.
+ *
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "lgl-xml-category.h"
+
+#include <glib/gi18n.h>
+#include <glib.h>
+#include <string.h>
+#include <libintl.h>
+
+#include "libglabels-private.h"
+
+#include "lgl-xml.h"
+
+/*===========================================*/
+/* Private types                             */
+/*===========================================*/
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+
+/**
+ * lgl_xml_category_read_categories_from_file:
+ * @utf8_filename:       Filename of categories file (name encoded as UTF-8)
+ *
+ * Read category definitions from a file.
+ *
+ * Returns: a list of #lglCategory structures.
+ *
+ */
+GList *
+lgl_xml_category_read_categories_from_file (gchar *utf8_filename)
+{
+        gchar      *filename;
+        GList      *categories;
+        xmlDocPtr   categories_doc;
+
+        LIBXML_TEST_VERSION;
+
+        filename = g_filename_from_utf8 (utf8_filename, -1, NULL, NULL, NULL);
+        if (!filename)
+        {
+                g_message ("Utf8 filename conversion error");
+                return NULL;
+        }
+
+        categories_doc = xmlParseFile (filename);
+        if (!categories_doc)
+        {
+                g_message ("\"%s\" is not a glabels category file (not XML)",
+                           filename);
+                return NULL;
+        }
+
+        categories = lgl_xml_category_parse_categories_doc (categories_doc);
+
+        g_free (filename);
+        xmlFreeDoc (categories_doc);
+
+        return categories;
+}
+
+
+/**
+ * lgl_xml_category_parse_categories_doc:
+ * @categories_doc:  libxml #xmlDocPtr tree, representing a categories
+ * definition file.
+ *
+ * Read category definitions from a libxml #xmlDocPtr tree.
+ *
+ * Returns: a list of #lglCategory structures.
+ *
+ */
+GList *
+lgl_xml_category_parse_categories_doc (xmlDocPtr  categories_doc)
+{
+        GList       *categories = NULL;
+        xmlNodePtr   root, node;
+        lglCategory *category;
+
+        LIBXML_TEST_VERSION;
+
+        root = xmlDocGetRootElement (categories_doc);
+        if (!root || !root->name)
+        {
+                g_message ("\"%s\" is not a glabels category file (no root node)",
+                           categories_doc->name);
+                xmlFreeDoc (categories_doc);
+                return categories;
+        }
+        if (!lgl_xml_is_node (root, "Glabels-categories"))
+        {
+                g_message ("\"%s\" is not a glabels category file (wrong root node)",
+                           categories_doc->name);
+                xmlFreeDoc (categories_doc);
+                return categories;
+        }
+
+        for (node = root->xmlChildrenNode; node != NULL; node = node->next)
+        {
+
+                if (lgl_xml_is_node (node, "Category"))
+                {
+                        category = lgl_xml_category_parse_category_node (node);
+                        categories = g_list_append (categories, category);
+                }
+                else
+                {
+                        if ( !xmlNodeIsText(node) )
+                        {
+                                if (!lgl_xml_is_node (node, "comment"))
+                                {
+                                        g_message ("bad node =  \"%s\"",node->name);
+                                }
+                        }
+                }
+        }
+
+        return categories;
+}
+
+
+/**
+ * lgl_xml_category_parse_category_node:
+ * @category_node:  libxml #xmlNodePtr category node from a #xmlDocPtr tree.
+ *
+ * Read a single category definition from a libxml #xmlNodePtr node.
+ *
+ * Returns: a pointer to a newly created #lglCategory structure.
+ *
+ */
+lglCategory *
+lgl_xml_category_parse_category_node (xmlNodePtr category_node)
+{
+        lglCategory           *category;
+        gchar                 *id, *name;
+
+        LIBXML_TEST_VERSION;
+
+        id   = lgl_xml_get_prop_string (category_node, "id", NULL);
+        name = lgl_xml_get_prop_i18n_string (category_node, "name", NULL);
+
+        category = lgl_category_new (id, name);
+
+        g_free (id);
+        g_free (name);
+
+        return category;
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/lgl-xml-category.h b/libglabels/lgl-xml-category.h
new file mode 100644 (file)
index 0000000..1f535e9
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ *  lgl-xml-category.h
+ *  Copyright (C) 2006-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglabels.
+ *
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __LGL_XML_CATEGORY_H__
+#define __LGL_XML_CATEGORY_H__
+
+#include <glib.h>
+#include <libxml/tree.h>
+
+#include "lgl-category.h"
+
+G_BEGIN_DECLS
+
+GList       *lgl_xml_category_read_categories_from_file (gchar        *utf8_filename);
+
+GList       *lgl_xml_category_parse_categories_doc      (xmlDocPtr     categories_doc);
+
+lglCategory *lgl_xml_category_parse_category_node       (xmlNodePtr    category_node);
+
+
+G_END_DECLS
+
+#endif /* __LGL_XML_CATEGORY_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/lgl-xml-paper.c b/libglabels/lgl-xml-paper.c
new file mode 100644 (file)
index 0000000..40690de
--- /dev/null
@@ -0,0 +1,192 @@
+/*
+ *  lgl-xml-paper.c
+ *  Copyright (C) 2003-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglabels.
+ *
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "lgl-xml-paper.h"
+
+#include <glib/gi18n.h>
+#include <glib.h>
+#include <string.h>
+#include <libintl.h>
+
+#include "libglabels-private.h"
+
+#include "lgl-xml.h"
+
+/*===========================================*/
+/* Private types                             */
+/*===========================================*/
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+
+/**
+ * lgl_xml_paper_read_papers_from_file:
+ * @utf8_filename:       Filename of papers file (name encoded as UTF-8)
+ *
+ * Read paper definitions from a file.
+ *
+ * Returns: a list of #lglPaper structures.
+ *
+ */
+GList *
+lgl_xml_paper_read_papers_from_file (gchar *utf8_filename)
+{
+        gchar      *filename;
+        GList      *papers;
+        xmlDocPtr   papers_doc;
+
+        LIBXML_TEST_VERSION;
+
+        filename = g_filename_from_utf8 (utf8_filename, -1, NULL, NULL, NULL);
+        if (!filename)
+        {
+                g_message ("Utf8 filename conversion error");
+                return NULL;
+        }
+
+        papers_doc = xmlParseFile (filename);
+        if (!papers_doc)
+        {
+                g_message ("\"%s\" is not a glabels paper file (not XML)",
+                           filename);
+                return NULL;
+        }
+
+        papers = lgl_xml_paper_parse_papers_doc (papers_doc);
+
+        g_free (filename);
+        xmlFreeDoc (papers_doc);
+
+        return papers;
+}
+
+
+/**
+ * lgl_xml_paper_parse_papers_doc:
+ * @papers_doc:  libxml #xmlDocPtr tree, representing a papers definition file.
+ *
+ * Read paper definitions from a libxml #xmlDocPtr tree.
+ *
+ * Returns: a list of #lglPaper structures.
+ *
+ */
+GList *
+lgl_xml_paper_parse_papers_doc (xmlDocPtr  papers_doc)
+{
+        GList      *papers = NULL;
+        xmlNodePtr  root, node;
+        lglPaper   *paper;
+
+        LIBXML_TEST_VERSION;
+
+        root = xmlDocGetRootElement (papers_doc);
+        if (!root || !root->name)
+        {
+                g_message ("\"%s\" is not a glabels paper file (no root node)",
+                           papers_doc->name);
+                xmlFreeDoc (papers_doc);
+                return papers;
+        }
+        if (!lgl_xml_is_node (root, "Glabels-paper-sizes"))
+        {
+                g_message ("\"%s\" is not a glabels paper file (wrong root node)",
+                           papers_doc->name);
+                xmlFreeDoc (papers_doc);
+                return papers;
+        }
+
+        for (node = root->xmlChildrenNode; node != NULL; node = node->next)
+        {
+
+                if (lgl_xml_is_node (node, "Paper-size"))
+                {
+                        paper = lgl_xml_paper_parse_paper_node (node);
+                        papers = g_list_append (papers, paper);
+                }
+                else
+                {
+                        if ( !xmlNodeIsText(node) )
+                        {
+                                if (!lgl_xml_is_node (node, "comment"))
+                                {
+                                        g_message ("bad node =  \"%s\"",node->name);
+                                }
+                        }
+                }
+        }
+
+        return papers;
+}
+
+
+/**
+ * lgl_xml_paper_parse_paper_node:
+ * @paper_node:  libxml #xmlNodePtr paper node from a #xmlDocPtr tree.
+ *
+ * Read a single paper definition from a libxml #xmlNodePtr node.
+ *
+ * Returns: a pointer to a newly created #lglPaper structure.
+ *
+ */
+lglPaper *
+lgl_xml_paper_parse_paper_node (xmlNodePtr paper_node)
+{
+        lglPaper              *paper;
+        gchar                 *id, *name, *pwg_size;
+        gdouble                width, height;
+
+        LIBXML_TEST_VERSION;
+
+        id   = lgl_xml_get_prop_string (paper_node, "id", NULL);
+
+        name = lgl_xml_get_prop_i18n_string (paper_node, "name", NULL);
+
+        width  = lgl_xml_get_prop_length (paper_node, "width", 0);
+        height = lgl_xml_get_prop_length (paper_node, "height", 0);
+
+        pwg_size = lgl_xml_get_prop_string (paper_node, "pwg_size", NULL);
+
+        paper = lgl_paper_new (id, name, width, height, pwg_size);
+
+        g_free (id);
+        g_free (name);
+        g_free (pwg_size);
+
+        return paper;
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/lgl-xml-paper.h b/libglabels/lgl-xml-paper.h
new file mode 100644 (file)
index 0000000..e4704c6
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ *  lgl-xml-paper.h
+ *  Copyright (C) 2003-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglabels.
+ *
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __LGL_XML_PAPER_H__
+#define __LGL_XML_PAPER_H__
+
+#include <glib.h>
+#include <libxml/tree.h>
+
+#include "lgl-paper.h"
+
+G_BEGIN_DECLS
+
+GList       *lgl_xml_paper_read_papers_from_file (gchar        *utf8_filename);
+
+GList       *lgl_xml_paper_parse_papers_doc      (xmlDocPtr     papers_doc);
+
+lglPaper    *lgl_xml_paper_parse_paper_node      (xmlNodePtr    paper_node);
+
+
+G_END_DECLS
+
+#endif /* __LGL_XML_PAPER_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/lgl-xml-template.c b/libglabels/lgl-xml-template.c
new file mode 100644 (file)
index 0000000..883c6be
--- /dev/null
@@ -0,0 +1,1207 @@
+/*
+ *  lgl-xml-template.c
+ *  Copyright (C) 2001-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglabels.
+ *
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "lgl-xml-template.h"
+
+#include <glib/gi18n.h>
+#include <glib.h>
+#include <string.h>
+#include <libintl.h>
+
+#include "libglabels-private.h"
+
+#include "lgl-db.h"
+#include "lgl-xml.h"
+
+/*===========================================*/
+/* Private types                             */
+/*===========================================*/
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+static void  xml_parse_meta_node            (xmlNodePtr              label_node,
+                                             lglTemplate            *template);
+static void  xml_parse_label_rectangle_node (xmlNodePtr              label_node,
+                                             lglTemplate            *template);
+static void  xml_parse_label_ellipse_node   (xmlNodePtr              label_node,
+                                             lglTemplate            *template);
+static void  xml_parse_label_round_node     (xmlNodePtr              label_node,
+                                             lglTemplate            *template);
+static void  xml_parse_label_cd_node        (xmlNodePtr              label_node,
+                                             lglTemplate            *template);
+static void  xml_parse_layout_node          (xmlNodePtr              layout_node,
+                                             lglTemplateFrame       *frame);
+static void  xml_parse_markup_margin_node   (xmlNodePtr              markup_node,
+                                             lglTemplateFrame       *frame);
+static void  xml_parse_markup_line_node     (xmlNodePtr              markup_node,
+                                             lglTemplateFrame       *frame);
+static void  xml_parse_markup_circle_node   (xmlNodePtr              markup_node,
+                                             lglTemplateFrame       *frame);
+static void  xml_parse_markup_rect_node     (xmlNodePtr              markup_node,
+                                             lglTemplateFrame       *frame);
+static void  xml_parse_markup_ellipse_node  (xmlNodePtr              markup_node,
+                                             lglTemplateFrame       *frame);
+static void  xml_parse_alias_node           (xmlNodePtr              alias_node,
+                                             lglTemplate            *template);
+
+static void  xml_create_meta_node           (const gchar                  *attr,
+                                             const gchar                  *value,
+                                             xmlNodePtr                    root,
+                                             const xmlNsPtr                ns);
+static void  xml_create_label_node          (const lglTemplateFrame       *frame,
+                                             xmlNodePtr                    root,
+                                             const xmlNsPtr                ns);
+static void  xml_create_layout_node         (const lglTemplateLayout      *layout,
+                                             xmlNodePtr                    root,
+                                             const xmlNsPtr                ns);
+static void  xml_create_markup_margin_node  (const lglTemplateMarkup      *margin,
+                                             xmlNodePtr                    root,
+                                             const xmlNsPtr                ns);
+static void  xml_create_markup_line_node    (const lglTemplateMarkup      *line,
+                                             xmlNodePtr                    root,
+                                             const xmlNsPtr                ns);
+static void  xml_create_markup_circle_node  (const lglTemplateMarkup      *circle,
+                                             xmlNodePtr                    root,
+                                             const xmlNsPtr                ns);
+static void  xml_create_markup_rect_node    (const lglTemplateMarkup      *circle,
+                                             xmlNodePtr                    root,
+                                             const xmlNsPtr                ns);
+static void  xml_create_markup_ellipse_node (const lglTemplateMarkup      *circle,
+                                             xmlNodePtr                    root,
+                                             const xmlNsPtr                ns);
+
+
+/**
+ * lgl_xml_template_read_templates_from_file:
+ * @utf8_filename:       Filename of papers file (name encoded as UTF-8)
+ *
+ * Read glabels templates from template file.
+ *
+ */
+void
+lgl_xml_template_read_templates_from_file (const gchar *utf8_filename)
+{
+        gchar      *filename;
+        xmlDocPtr   templates_doc;
+
+        LIBXML_TEST_VERSION;
+
+        filename = g_filename_from_utf8 (utf8_filename, -1, NULL, NULL, NULL);
+        if (!filename)
+        {
+                g_message ("Utf8 filename conversion error");
+                return;
+        }
+
+        templates_doc = xmlParseFile (filename);
+        if (!templates_doc)
+        {
+                g_message ("\"%s\" is not a glabels template file (not XML)",
+                      filename);
+                return;
+        }
+
+        lgl_xml_template_parse_templates_doc (templates_doc);
+
+        g_free (filename);
+        xmlFreeDoc (templates_doc);
+}
+
+
+/**
+ * lgl_xml_template_parse_templates_doc:
+ * @templates_doc:  libxml #xmlDocPtr tree, representing template file.
+ *
+ * Read glabels templates from a libxml #xmlDocPtr tree.
+ *
+ */
+void
+lgl_xml_template_parse_templates_doc (const xmlDocPtr templates_doc)
+{
+        
+        xmlNodePtr   root, node;
+        lglTemplate *template;
+
+        LIBXML_TEST_VERSION;
+
+        root = xmlDocGetRootElement (templates_doc);
+        if (!root || !root->name)
+        {
+                g_message ("\"%s\" is not a glabels template file (no root node)",
+                           templates_doc->URL);
+                return;
+        }
+        if (!lgl_xml_is_node (root, "Glabels-templates"))
+        {
+                g_message ("\"%s\" is not a glabels template file (wrong root node)",
+                      templates_doc->URL);
+                return;
+        }
+
+        for (node = root->xmlChildrenNode; node != NULL; node = node->next)
+        {
+
+                if (lgl_xml_is_node (node, "Template"))
+                {
+                        template = lgl_xml_template_parse_template_node (node);
+                        if (template)
+                        {
+                                _lgl_db_register_template_internal (template);
+                                lgl_template_free (template);
+                        }
+                }
+                else
+                {
+                        if ( !xmlNodeIsText(node) )
+                        {
+                                if (!lgl_xml_is_node (node,"comment"))
+                                {
+                                        g_message ("bad node =  \"%s\"",node->name);
+                                }
+                        }
+                }
+        }
+}
+
+
+/**
+ * lgl_xml_template_parse_template_node:
+ * @template_node:  libxml #xmlNodePtr template node from a #xmlDocPtr tree.
+ *
+ * Read a single glabels template from a libxml #xmlNodePtr node.
+ *
+ * Returns: a pointer to a newly created #lglTemplate structure.
+ *
+ */
+lglTemplate *
+lgl_xml_template_parse_template_node (const xmlNodePtr template_node)
+{
+        gchar                 *brand;
+        gchar                 *part;
+        gchar                 *name;
+        gchar                 *equiv_part;
+        gchar                 *description;
+        gchar                 *paper_id;
+        gdouble                page_width, page_height;
+        lglPaper              *paper = NULL;
+        lglTemplate           *template;
+        xmlNodePtr             node;
+        gchar                **v;
+        lglTemplateFrame      *frame;
+
+
+        brand = lgl_xml_get_prop_string (template_node, "brand", NULL);
+        part  = lgl_xml_get_prop_string (template_node, "part", NULL);
+        if (!brand || !part)
+        {
+                name = lgl_xml_get_prop_string (template_node, "name", NULL);
+                if (name)
+                {
+                        v = g_strsplit (name, " ", 2);
+                        brand = g_strdup (v[0]);
+                        part  = g_strchug (g_strdup (v[1]));
+                        g_free (name);
+                        g_strfreev (v);
+                        
+                }
+                else
+                {
+                        g_message ("Missing name or brand/part attributes.");
+                }
+        }
+
+
+        equiv_part = lgl_xml_get_prop_string (template_node, "equiv", NULL);
+
+
+        description = lgl_xml_get_prop_i18n_string (template_node, "description", NULL);
+        paper_id = lgl_xml_get_prop_string (template_node, "size", NULL);
+
+        if (lgl_db_is_paper_id_other (paper_id))
+        {
+
+                page_width = lgl_xml_get_prop_length (template_node, "width", 0);
+                page_height = lgl_xml_get_prop_length (template_node, "height", 0);
+
+        }
+        else
+        {
+                paper = lgl_db_lookup_paper_from_id (paper_id);
+                if (paper == NULL)
+                {
+                        /* This should always be an id, but just in case a name
+                           slips by! */
+                        g_message ("Unknown page size id \"%s\", trying as name",
+                                   paper_id);
+                        paper = lgl_db_lookup_paper_from_name (paper_id);
+                        g_free (paper_id);
+                        paper_id = g_strdup (paper->id);
+                }
+                if (paper != NULL)
+                {
+                        page_width  = paper->width;
+                        page_height = paper->height;
+                }
+                else
+                {
+                        page_width  = 612;
+                        page_height = 792;
+                        g_message ("Unknown page size id or name \"%s\"",
+                                   paper_id);
+                }
+                lgl_paper_free (paper);
+                paper = NULL;
+        }
+
+
+        if (!equiv_part)
+        {
+                template = lgl_template_new (brand, part, description,
+                                             paper_id, page_width, page_height);
+        }
+        else
+        {
+                template = lgl_template_new_from_equiv (brand, part, equiv_part);
+
+                if (!template)
+                {
+                        g_message ("Forward references not supported.");
+                        return NULL;
+                }
+        }
+
+
+        for (node = template_node->xmlChildrenNode; node != NULL; node = node->next)
+        {
+                if (lgl_xml_is_node (node, "Meta"))
+                {
+                        xml_parse_meta_node (node, template);
+                }
+                else if (lgl_xml_is_node (node, "Label-rectangle"))
+                {
+                        xml_parse_label_rectangle_node (node, template);
+                }
+                else if (lgl_xml_is_node (node, "Label-ellipse"))
+                {
+                        xml_parse_label_ellipse_node (node, template);
+                }
+                else if (lgl_xml_is_node (node, "Label-round"))
+                {
+                        xml_parse_label_round_node (node, template);
+                }
+                else if (lgl_xml_is_node (node, "Label-cd"))
+                {
+                        xml_parse_label_cd_node (node, template);
+                }
+                else if (lgl_xml_is_node (node, "Alias"))
+                {
+                        xml_parse_alias_node (node, template);
+                }
+                else
+                {
+                        if (!xmlNodeIsText (node))
+                        {
+                                if (!lgl_xml_is_node (node,"comment"))
+                                {
+                                        g_message ("bad node =  \"%s\"",node->name);
+                                }
+                        }
+                }
+        }
+
+        g_free (brand);
+        g_free (part);
+        g_free (equiv_part);
+        g_free (description);
+        g_free (paper_id);
+
+        /*
+         * Create a default full-page frame, if a known frame type was not found.
+         */
+        if ( template->frames == NULL )
+        {
+                g_message ("%s %s: missing valid frame node", template->brand, template->part);
+                frame = lgl_template_frame_rect_new ("0", page_width, page_height, 0, 0, 0);
+                lgl_template_frame_add_layout (frame, lgl_template_layout_new (1, 1, 0, 0, 0, 0));
+                lgl_template_add_frame (template, frame);
+        }
+
+        /*
+         * Create a default 1x1 layout, if layout is missing.
+         */
+        frame = (lglTemplateFrame *)template->frames->data;
+        if ( frame->all.layouts == NULL )
+        {
+                g_message ("%s %s: missing layout node", template->brand, template->part);
+                lgl_template_frame_add_layout (frame, lgl_template_layout_new (1, 1, 0, 0, 0, 0));
+        }
+
+        return template;
+}
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Parse XML Template->Meta Node.                                 */
+/*--------------------------------------------------------------------------*/
+static void
+xml_parse_meta_node (xmlNodePtr   meta_node,
+                     lglTemplate *template)
+{
+        gchar               *product_url;
+        gchar               *category;
+
+        product_url = lgl_xml_get_prop_string (meta_node, "product_url", NULL);
+        if ( product_url != NULL )
+        {
+                g_free (template->product_url);
+                template->product_url = product_url;
+        }
+
+        category = lgl_xml_get_prop_string (meta_node, "category", NULL);
+        if ( category != NULL )
+        {
+                lgl_template_add_category (template, category);
+                g_free (category);
+        }
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Parse XML Template->Label-rectangle Node.                      */
+/*--------------------------------------------------------------------------*/
+static void
+xml_parse_label_rectangle_node (xmlNodePtr   label_node,
+                                lglTemplate *template)
+{
+        gchar               *id;
+        gchar               *tmp;
+        gdouble              x_waste, y_waste;
+        gdouble              w, h, r;
+        lglTemplateFrame    *frame;
+        xmlNodePtr           node;
+
+        id      = lgl_xml_get_prop_string (label_node, "id", NULL);
+
+        if ((tmp = lgl_xml_get_prop_string (label_node, "waste", NULL)))
+        {
+                /* Handle single "waste" property. */
+                x_waste = y_waste = lgl_xml_get_prop_length (label_node, "waste", 0);
+                g_free (tmp);
+        }
+        else
+        {
+                x_waste = lgl_xml_get_prop_length (label_node, "x_waste", 0);
+                y_waste = lgl_xml_get_prop_length (label_node, "y_waste", 0);
+        }
+
+        w       = lgl_xml_get_prop_length (label_node, "width", 0);
+        h       = lgl_xml_get_prop_length (label_node, "height", 0);
+        r       = lgl_xml_get_prop_length (label_node, "round", 0);
+
+        frame = lgl_template_frame_rect_new ((gchar *)id, w, h, r, x_waste, y_waste);
+        lgl_template_add_frame (template, frame);
+
+        for (node = label_node->xmlChildrenNode; node != NULL; node = node->next)
+        {
+                if (lgl_xml_is_node (node, "Layout"))
+                {
+                        xml_parse_layout_node (node, frame);
+                }
+                else if (lgl_xml_is_node (node, "Markup-margin"))
+                {
+                        xml_parse_markup_margin_node (node, frame);
+                }
+                else if (lgl_xml_is_node (node, "Markup-line"))
+                {
+                        xml_parse_markup_line_node (node, frame);
+                }
+                else if (lgl_xml_is_node (node, "Markup-circle"))
+                {
+                        xml_parse_markup_circle_node (node, frame);
+                }
+                else if (lgl_xml_is_node (node, "Markup-rect"))
+                {
+                        xml_parse_markup_rect_node (node, frame);
+                }
+                else if (lgl_xml_is_node (node, "Markup-ellipse"))
+                {
+                        xml_parse_markup_ellipse_node (node, frame);
+                }
+                else if (!xmlNodeIsText (node))
+                {
+                        if (!lgl_xml_is_node (node, "comment"))
+                        {
+                                g_message ("bad node =  \"%s\"",node->name);
+                        }
+                }
+        }
+
+        g_free (id);
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Parse XML Template->Label-ellipse Node.                        */
+/*--------------------------------------------------------------------------*/
+static void
+xml_parse_label_ellipse_node (xmlNodePtr   label_node,
+                              lglTemplate *template)
+{
+        gchar               *id;
+        gdouble              waste;
+        gdouble              w, h;
+        lglTemplateFrame    *frame;
+        xmlNodePtr           node;
+
+        id      = lgl_xml_get_prop_string (label_node, "id", NULL);
+
+        w       = lgl_xml_get_prop_length (label_node, "width", 0);
+        h       = lgl_xml_get_prop_length (label_node, "height", 0);
+        waste   = lgl_xml_get_prop_length (label_node, "waste", 0);
+
+        frame = lgl_template_frame_ellipse_new ((gchar *)id, w, h, waste);
+        lgl_template_add_frame (template, frame);
+
+        for (node = label_node->xmlChildrenNode; node != NULL; node = node->next)
+        {
+                if (lgl_xml_is_node (node, "Layout"))
+                {
+                        xml_parse_layout_node (node, frame);
+                }
+                else if (lgl_xml_is_node (node, "Markup-margin"))
+                {
+                        xml_parse_markup_margin_node (node, frame);
+                }
+                else if (lgl_xml_is_node (node, "Markup-line"))
+                {
+                        xml_parse_markup_line_node (node, frame);
+                }
+                else if (lgl_xml_is_node (node, "Markup-circle"))
+                {
+                        xml_parse_markup_circle_node (node, frame);
+                }
+                else if (lgl_xml_is_node (node, "Markup-rect"))
+                {
+                        xml_parse_markup_rect_node (node, frame);
+                }
+                else if (lgl_xml_is_node (node, "Markup-ellipse"))
+                {
+                        xml_parse_markup_ellipse_node (node, frame);
+                }
+                else if (!xmlNodeIsText (node))
+                {
+                        if (!lgl_xml_is_node (node, "comment"))
+                        {
+                                g_message ("bad node =  \"%s\"",node->name);
+                        }
+                }
+        }
+
+        g_free (id);
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Parse XML Template->Label-round Node.                          */
+/*--------------------------------------------------------------------------*/
+static void
+xml_parse_label_round_node (xmlNodePtr   label_node,
+                            lglTemplate *template)
+{
+        gchar               *id;
+        gdouble              waste;
+        gdouble              r;
+        lglTemplateFrame    *frame;
+        xmlNodePtr           node;
+
+        id    = lgl_xml_get_prop_string (label_node, "id", NULL);
+        waste = lgl_xml_get_prop_length (label_node, "waste", 0);
+        r     = lgl_xml_get_prop_length (label_node, "radius", 0);
+
+        frame = lgl_template_frame_round_new ((gchar *)id, r, waste);
+        lgl_template_add_frame (template, frame);
+
+        for (node = label_node->xmlChildrenNode; node != NULL; node = node->next)
+        {
+                if (lgl_xml_is_node (node, "Layout"))
+                {
+                        xml_parse_layout_node (node, frame);
+                }
+                else if (lgl_xml_is_node (node, "Markup-margin"))
+                {
+                        xml_parse_markup_margin_node (node, frame);
+                }
+                else if (lgl_xml_is_node (node, "Markup-line"))
+                {
+                        xml_parse_markup_line_node (node, frame);
+                }
+                else if (lgl_xml_is_node (node, "Markup-circle"))
+                {
+                        xml_parse_markup_circle_node (node, frame);
+                }
+                else if (lgl_xml_is_node (node, "Markup-rect"))
+                {
+                        xml_parse_markup_rect_node (node, frame);
+                }
+                else if (lgl_xml_is_node (node, "Markup-ellipse"))
+                {
+                        xml_parse_markup_ellipse_node (node, frame);
+                }
+                else if (!xmlNodeIsText (node))
+                {
+                        if (!lgl_xml_is_node (node, "comment"))
+                        {
+                                g_message ("bad node =  \"%s\"",node->name);
+                        }
+                }
+        }
+
+        g_free (id);
+}
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Parse XML Template->Label-cd Node.                             */
+/*--------------------------------------------------------------------------*/
+static void
+xml_parse_label_cd_node (xmlNodePtr   label_node,
+                         lglTemplate *template)
+{
+        gchar               *id;
+        gdouble              waste;
+        gdouble              r1, r2, w, h;
+        lglTemplateFrame    *frame;
+        xmlNodePtr           node;
+
+        id    = lgl_xml_get_prop_string (label_node, "id", NULL);
+        waste = lgl_xml_get_prop_length (label_node, "waste", 0);
+        r1    = lgl_xml_get_prop_length (label_node, "radius", 0);
+        r2    = lgl_xml_get_prop_length (label_node, "hole", 0);
+        w     = lgl_xml_get_prop_length (label_node, "width", 0);
+        h     = lgl_xml_get_prop_length (label_node, "height", 0);
+
+        frame = lgl_template_frame_cd_new ((gchar *)id, r1, r2, w, h, waste);
+        lgl_template_add_frame (template, frame);
+
+        for (node = label_node->xmlChildrenNode; node != NULL; node = node->next)
+        {
+                if (lgl_xml_is_node (node, "Layout"))
+                {
+                        xml_parse_layout_node (node, frame);
+                }
+                else if (lgl_xml_is_node (node, "Markup-margin"))
+                {
+                        xml_parse_markup_margin_node (node, frame);
+                }
+                else if (lgl_xml_is_node (node, "Markup-line"))
+                {
+                        xml_parse_markup_line_node (node, frame);
+                }
+                else if (lgl_xml_is_node (node, "Markup-circle"))
+                {
+                        xml_parse_markup_circle_node (node, frame);
+                }
+                else if (lgl_xml_is_node (node, "Markup-rect"))
+                {
+                        xml_parse_markup_rect_node (node, frame);
+                }
+                else if (lgl_xml_is_node (node, "Markup-ellipse"))
+                {
+                        xml_parse_markup_ellipse_node (node, frame);
+                }
+                else if (!xmlNodeIsText (node))
+                {
+                        if (!lgl_xml_is_node (node, "comment"))
+                        {
+                                g_message ("bad node =  \"%s\"",node->name);
+                        }
+                }
+        }
+
+        g_free (id);
+}
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Parse XML Template->Label->Layout Node.                        */
+/*--------------------------------------------------------------------------*/
+static void
+xml_parse_layout_node (xmlNodePtr          layout_node,
+                       lglTemplateFrame   *frame)
+{
+        gint        nx, ny;
+        gdouble     x0, y0, dx, dy;
+        xmlNodePtr  node;
+
+        nx = lgl_xml_get_prop_int (layout_node, "nx", 1);
+        ny = lgl_xml_get_prop_int (layout_node, "ny", 1);
+
+        x0 = lgl_xml_get_prop_length (layout_node, "x0", 0);
+        y0 = lgl_xml_get_prop_length (layout_node, "y0", 0);
+
+        dx = lgl_xml_get_prop_length (layout_node, "dx", 0);
+        dy = lgl_xml_get_prop_length (layout_node, "dy", 0);
+
+        lgl_template_frame_add_layout (frame, lgl_template_layout_new (nx, ny, x0, y0, dx, dy));
+
+        for (node = layout_node->xmlChildrenNode; node != NULL; node = node->next)
+        {
+                if (!xmlNodeIsText (node))
+                {
+                        if (!lgl_xml_is_node (node, "comment"))
+                        {
+                                g_message ("bad node =  \"%s\"",node->name);
+                        }
+                }
+        }
+
+}
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Parse XML Template->Label->Markup-margin Node.                 */
+/*--------------------------------------------------------------------------*/
+static void
+xml_parse_markup_margin_node (xmlNodePtr          markup_node,
+                              lglTemplateFrame   *frame)
+{
+        gdouble     size;
+        xmlNodePtr  node;
+
+        size = lgl_xml_get_prop_length (markup_node, "size", 0);
+
+        lgl_template_frame_add_markup (frame, lgl_template_markup_margin_new (size));
+
+        for (node = markup_node->xmlChildrenNode; node != NULL; node = node->next)
+        {
+                if (!xmlNodeIsText (node))
+                {
+                        if (!lgl_xml_is_node (node, "comment"))
+                        {
+                                g_message ("bad node =  \"%s\"",node->name);
+                        }
+                }
+        }
+
+}
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Parse XML Template->Label->Markup-line Node.                   */
+/*--------------------------------------------------------------------------*/
+static void
+xml_parse_markup_line_node (xmlNodePtr          markup_node,
+                            lglTemplateFrame   *frame)
+{
+        gdouble     x1, y1, x2, y2;
+        xmlNodePtr  node;
+
+        x1 = lgl_xml_get_prop_length (markup_node, "x1", 0);
+        y1 = lgl_xml_get_prop_length (markup_node, "y1", 0);
+        x2 = lgl_xml_get_prop_length (markup_node, "x2", 0);
+        y2 = lgl_xml_get_prop_length (markup_node, "y2", 0);
+
+        lgl_template_frame_add_markup (frame, lgl_template_markup_line_new (x1, y1, x2, y2));
+
+        for (node = markup_node->xmlChildrenNode; node != NULL; node = node->next)
+        {
+                if (!xmlNodeIsText (node))
+                {
+                        if (!lgl_xml_is_node (node, "comment"))
+                        {
+                                g_message ("bad node =  \"%s\"",node->name);
+                        }
+                }
+        }
+
+}
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Parse XML Template->Label->Markup-circle Node.                 */
+/*--------------------------------------------------------------------------*/
+static void
+xml_parse_markup_circle_node (xmlNodePtr          markup_node,
+                              lglTemplateFrame   *frame)
+{
+        gdouble     x0, y0, r;
+        xmlNodePtr  node;
+
+        x0 = lgl_xml_get_prop_length (markup_node, "x0", 0);
+        y0 = lgl_xml_get_prop_length (markup_node, "y0", 0);
+        r  = lgl_xml_get_prop_length (markup_node, "radius", 0);
+
+        lgl_template_frame_add_markup (frame, lgl_template_markup_circle_new (x0, y0, r));
+
+        for (node = markup_node->xmlChildrenNode; node != NULL; node = node->next)
+        {
+                if (!xmlNodeIsText (node))
+                {
+                        if (!lgl_xml_is_node (node, "comment"))
+                        {
+                                g_message ("bad node =  \"%s\"",node->name);
+                        }
+                }
+        }
+
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Parse XML Template->Label->Markup-rect Node.                   */
+/*--------------------------------------------------------------------------*/
+static void
+xml_parse_markup_rect_node (xmlNodePtr          markup_node,
+                            lglTemplateFrame   *frame)
+{
+        gdouble     x1, y1, w, h, r;
+        xmlNodePtr  node;
+
+        x1 = lgl_xml_get_prop_length (markup_node, "x1", 0);
+        y1 = lgl_xml_get_prop_length (markup_node, "y1", 0);
+        w  = lgl_xml_get_prop_length (markup_node, "w", 0);
+        h  = lgl_xml_get_prop_length (markup_node, "h", 0);
+        r  = lgl_xml_get_prop_length (markup_node, "r", 0);
+
+        lgl_template_frame_add_markup (frame, lgl_template_markup_rect_new (x1, y1, w, h, r));
+
+        for (node = markup_node->xmlChildrenNode; node != NULL; node = node->next)
+        {
+                if (!xmlNodeIsText (node))
+                {
+                        if (!lgl_xml_is_node (node, "comment"))
+                        {
+                                g_message ("bad node =  \"%s\"",node->name);
+                        }
+                }
+        }
+
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Parse XML Template->Label->Markup-ellipse Node.                */
+/*--------------------------------------------------------------------------*/
+static void
+xml_parse_markup_ellipse_node (xmlNodePtr          markup_node,
+                               lglTemplateFrame   *frame)
+{
+        gdouble     x1, y1, w, h;
+        xmlNodePtr  node;
+
+        x1 = lgl_xml_get_prop_length (markup_node, "x1", 0);
+        y1 = lgl_xml_get_prop_length (markup_node, "y1", 0);
+        w  = lgl_xml_get_prop_length (markup_node, "w", 0);
+        h  = lgl_xml_get_prop_length (markup_node, "h", 0);
+
+        lgl_template_frame_add_markup (frame, lgl_template_markup_ellipse_new (x1, y1, w, h));
+
+        for (node = markup_node->xmlChildrenNode; node != NULL; node = node->next)
+        {
+                if (!xmlNodeIsText (node))
+                {
+                        if (!lgl_xml_is_node (node, "comment"))
+                        {
+                                g_message ("bad node =  \"%s\"",node->name);
+                        }
+                }
+        }
+
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Parse deprecated XML Template->Alias Node.                     */
+/*--------------------------------------------------------------------------*/
+static void
+xml_parse_alias_node (xmlNodePtr   alias_node,
+                      lglTemplate *template)
+{
+        g_message ("Skipping deprecated \"Alias\" node.");
+}
+
+
+/**
+ * lgl_xml_template_write_templates_to_file:
+ * @templates:      List of #lglTemplate structures
+ * @utf8_filename:  Filename of templates file (name encoded as UTF-8)
+ *
+ * Write a list of #lglTemplate structures to a glabels XML template file.
+ *
+ * Returns: the number of bytes written or -1 in case of failure
+ *
+ */
+gint
+lgl_xml_template_write_templates_to_file (GList       *templates,
+                                          const gchar *utf8_filename)
+{
+        xmlDocPtr    doc;
+        xmlNsPtr     ns;
+        gint         bytes_written;
+        GList       *p;
+        lglTemplate *template;
+        gchar       *filename;
+
+        doc = xmlNewDoc ((xmlChar *)"1.0");
+        doc->xmlRootNode = xmlNewDocNode (doc, NULL, (xmlChar *)"Glabels-templates", NULL);
+
+        ns = xmlNewNs (doc->xmlRootNode, (xmlChar *)LGL_XML_NAME_SPACE, NULL);
+        xmlSetNs (doc->xmlRootNode, ns);
+
+        for (p=templates; p!=NULL; p=p->next)
+        {
+                template = (lglTemplate *)p->data;
+                lgl_xml_template_create_template_node (template, doc->xmlRootNode, ns);
+        }
+
+        filename = g_filename_from_utf8 (utf8_filename, -1, NULL, NULL, NULL);
+        if (!filename)
+        {
+                g_message ("Utf8 conversion error.");
+                return -1;
+        }
+        else
+        {
+                xmlSetDocCompressMode (doc, 0);
+                bytes_written = xmlSaveFormatFile (filename, doc, TRUE);
+                xmlFreeDoc (doc);
+                g_free (filename);
+                return bytes_written;
+        }
+
+}
+
+
+/**
+ * lgl_xml_template_write_template_to_file:
+ * @template:       #lglTemplate structure to be written
+ * @utf8_filename:  Filename of templates file (name encoded as UTF-8)
+ *
+ * Write a single #lglTemplate structures to a glabels XML template file.
+ *
+ * Returns: the number of bytes written or -1 in case of failure
+ *
+ */
+gint
+lgl_xml_template_write_template_to_file (const lglTemplate  *template,
+                                         const gchar        *utf8_filename)
+{
+        GList     *templates = NULL;
+        gint       bytes_written;
+
+        templates = g_list_append (templates, (gpointer)template);
+
+        bytes_written = lgl_xml_template_write_templates_to_file (templates, utf8_filename);
+
+        g_list_free (templates);
+
+        return bytes_written;
+}
+
+
+/**
+ * lgl_xml_template_create_template_node:
+ * @template:       #lglTemplate structure to be written
+ * @root:           parent node to receive new child node
+ * @ns:             a libxml #xmlNsPtr
+ *
+ * Add a single #lglTemplate child node to given #xmlNodePtr.
+ *
+ */
+void
+lgl_xml_template_create_template_node (const lglTemplate *template,
+                                       xmlNodePtr         root,
+                                       const xmlNsPtr     ns)
+{
+        xmlNodePtr          node;
+        GList              *p;
+        lglTemplateFrame   *frame;
+
+        node = xmlNewChild (root, ns, (xmlChar *)"Template", NULL);
+
+        lgl_xml_set_prop_string (node, "brand", template->brand);
+        lgl_xml_set_prop_string (node, "part", template->part);
+
+        lgl_xml_set_prop_string (node, "size", template->paper_id);
+        if (xmlStrEqual ((xmlChar *)template->paper_id, (xmlChar *)"Other"))
+        {
+
+                lgl_xml_set_prop_length (node, "width", template->page_width);
+                lgl_xml_set_prop_length (node, "height", template->page_height);
+
+        }
+
+        lgl_xml_set_prop_string (node, "description", template->description);
+
+        xml_create_meta_node ("product_url", template->product_url, node, ns );
+        for ( p=template->category_ids; p != NULL; p=p->next )
+        {
+                xml_create_meta_node ( "category", p->data, node, ns );
+        }
+        for ( p=template->frames; p != NULL; p=p->next )
+        {
+                frame = (lglTemplateFrame *)p->data;
+                xml_create_label_node (frame, node, ns);
+        }
+
+}
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Add XML Template->Meta Node with category.                     */
+/*--------------------------------------------------------------------------*/
+static void
+xml_create_meta_node (const gchar      *attr,
+                      const gchar      *value,
+                      xmlNodePtr        root,
+                      const xmlNsPtr    ns)
+{
+        xmlNodePtr node;
+
+        if ( value != NULL )
+        {
+                node = xmlNewChild (root, ns, (xmlChar *)"Meta", NULL);
+                lgl_xml_set_prop_string (node, attr, value);
+        }
+
+}
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Add XML Template->Label Node.                                  */
+/*--------------------------------------------------------------------------*/
+static void
+xml_create_label_node (const lglTemplateFrame  *frame,
+                       xmlNodePtr               root,
+                       const xmlNsPtr           ns)
+{
+        xmlNodePtr        node;
+        GList            *p;
+        lglTemplateMarkup *markup;
+        lglTemplateLayout *layout;
+
+        switch (frame->shape)
+        {
+
+        case LGL_TEMPLATE_FRAME_SHAPE_RECT:
+                node = xmlNewChild(root, ns, (xmlChar *)"Label-rectangle", NULL);
+                lgl_xml_set_prop_string (node, "id",      frame->all.id);
+                lgl_xml_set_prop_length (node, "width",   frame->rect.w);
+                lgl_xml_set_prop_length (node, "height",  frame->rect.h);
+                lgl_xml_set_prop_length (node, "round",   frame->rect.r);
+                lgl_xml_set_prop_length (node, "x_waste", frame->rect.x_waste);
+                lgl_xml_set_prop_length (node, "y_waste", frame->rect.y_waste);
+                break;
+
+        case LGL_TEMPLATE_FRAME_SHAPE_ELLIPSE:
+                node = xmlNewChild(root, ns, (xmlChar *)"Label-ellipse", NULL);
+                lgl_xml_set_prop_string (node, "id",     frame->all.id);
+                lgl_xml_set_prop_length (node, "width",  frame->ellipse.w);
+                lgl_xml_set_prop_length (node, "height", frame->ellipse.h);
+                lgl_xml_set_prop_length (node, "waste",  frame->ellipse.waste);
+                break;
+
+        case LGL_TEMPLATE_FRAME_SHAPE_ROUND:
+                node = xmlNewChild(root, ns, (xmlChar *)"Label-round", NULL);
+                lgl_xml_set_prop_string (node, "id",      frame->all.id);
+                lgl_xml_set_prop_length (node, "radius",  frame->round.r);
+                lgl_xml_set_prop_length (node, "waste",   frame->round.waste);
+                break;
+
+        case LGL_TEMPLATE_FRAME_SHAPE_CD:
+                node = xmlNewChild(root, ns, (xmlChar *)"Label-cd", NULL);
+                lgl_xml_set_prop_string (node, "id",     frame->all.id);
+                lgl_xml_set_prop_length (node, "radius", frame->cd.r1);
+                lgl_xml_set_prop_length (node, "hole",   frame->cd.r2);
+                if (frame->cd.w != 0.0)
+                {
+                        lgl_xml_set_prop_length (node, "width",  frame->cd.w);
+                }
+                if (frame->cd.h != 0.0)
+                {
+                        lgl_xml_set_prop_length (node, "height", frame->cd.h);
+                }
+                lgl_xml_set_prop_length (node, "waste",  frame->cd.waste);
+                break;
+
+        default:
+                g_message ("Unknown label style");
+                return;
+                break;
+
+        }
+
+        for ( p=frame->all.markups; p != NULL; p=p->next )
+        {
+                markup = (lglTemplateMarkup *)p->data;
+                switch (markup->type)
+                {
+                case LGL_TEMPLATE_MARKUP_MARGIN:
+                        xml_create_markup_margin_node (markup, node, ns);
+                        break;
+                case LGL_TEMPLATE_MARKUP_LINE:
+                        xml_create_markup_line_node (markup, node, ns);
+                        break;
+                case LGL_TEMPLATE_MARKUP_CIRCLE:
+                        xml_create_markup_circle_node (markup, node, ns);
+                        break;
+                case LGL_TEMPLATE_MARKUP_RECT:
+                        xml_create_markup_rect_node (markup, node, ns);
+                        break;
+                case LGL_TEMPLATE_MARKUP_ELLIPSE:
+                        xml_create_markup_ellipse_node (markup, node, ns);
+                        break;
+                default:
+                        g_message ("Unknown markup type");
+                        break;
+                }
+        }
+
+        for ( p=frame->all.layouts; p != NULL; p=p->next )
+        {
+                layout = (lglTemplateLayout *)p->data;
+                xml_create_layout_node (layout, node, ns);
+        }
+
+}
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Add XML Template->Label->Layout Node.                          */
+/*--------------------------------------------------------------------------*/
+static void
+xml_create_layout_node (const lglTemplateLayout *layout,
+                        xmlNodePtr               root,
+                        const xmlNsPtr           ns)
+{
+        xmlNodePtr  node;
+
+        node = xmlNewChild(root, ns, (xmlChar *)"Layout", NULL);
+        lgl_xml_set_prop_int (node, "nx", layout->nx);
+        lgl_xml_set_prop_int (node, "ny", layout->ny);
+        lgl_xml_set_prop_length (node, "x0", layout->x0);
+        lgl_xml_set_prop_length (node, "y0", layout->y0);
+        lgl_xml_set_prop_length (node, "dx", layout->dx);
+        lgl_xml_set_prop_length (node, "dy", layout->dy);
+
+}
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Add XML Template->Label->Markup-margin Node.                   */
+/*--------------------------------------------------------------------------*/
+static void
+xml_create_markup_margin_node (const lglTemplateMarkup  *markup,
+                               xmlNodePtr                root,
+                               const xmlNsPtr            ns)
+{
+        xmlNodePtr  node;
+
+        node = xmlNewChild(root, ns, (xmlChar *)"Markup-margin", NULL);
+
+        lgl_xml_set_prop_length (node, "size", markup->margin.size);
+
+}
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Add XML Template->Label->Markup-line Node.                     */
+/*--------------------------------------------------------------------------*/
+static void
+xml_create_markup_line_node (const lglTemplateMarkup *markup,
+                             xmlNodePtr               root,
+                             const xmlNsPtr           ns)
+{
+        xmlNodePtr  node;
+
+        node = xmlNewChild(root, ns, (xmlChar *)"Markup-line", NULL);
+
+        lgl_xml_set_prop_length (node, "x1", markup->line.x1);
+        lgl_xml_set_prop_length (node, "y1", markup->line.y1);
+        lgl_xml_set_prop_length (node, "x2", markup->line.x2);
+        lgl_xml_set_prop_length (node, "y2", markup->line.y2);
+
+}
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Add XML Template->Label->Markup-circle Node.                   */
+/*--------------------------------------------------------------------------*/
+static void
+xml_create_markup_circle_node (const lglTemplateMarkup *markup,
+                               xmlNodePtr               root,
+                               const xmlNsPtr           ns)
+{
+        xmlNodePtr  node;
+
+        node = xmlNewChild(root, ns, (xmlChar *)"Markup-circle", NULL);
+
+        lgl_xml_set_prop_length (node, "x0",     markup->circle.x0);
+        lgl_xml_set_prop_length (node, "y0",     markup->circle.y0);
+        lgl_xml_set_prop_length (node, "radius", markup->circle.r);
+
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Add XML Template->Label->Markup-rect Node.                     */
+/*--------------------------------------------------------------------------*/
+static void
+xml_create_markup_rect_node (const lglTemplateMarkup *markup,
+                             xmlNodePtr               root,
+                             const xmlNsPtr           ns)
+{
+        xmlNodePtr  node;
+
+        node = xmlNewChild(root, ns, (xmlChar *)"Markup-rect", NULL);
+
+        lgl_xml_set_prop_length (node, "x1", markup->rect.x1);
+        lgl_xml_set_prop_length (node, "y1", markup->rect.y1);
+        lgl_xml_set_prop_length (node, "w",  markup->rect.w);
+        lgl_xml_set_prop_length (node, "h",  markup->rect.h);
+        lgl_xml_set_prop_length (node, "r",  markup->rect.r);
+
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Add XML Template->Label->Markup-ellipse Node.                  */
+/*--------------------------------------------------------------------------*/
+static void
+xml_create_markup_ellipse_node (const lglTemplateMarkup *markup,
+                                xmlNodePtr               root,
+                                const xmlNsPtr           ns)
+{
+        xmlNodePtr  node;
+
+        node = xmlNewChild(root, ns, (xmlChar *)"Markup-ellipse", NULL);
+
+        lgl_xml_set_prop_length (node, "x1", markup->ellipse.x1);
+        lgl_xml_set_prop_length (node, "y1", markup->ellipse.y1);
+        lgl_xml_set_prop_length (node, "w",  markup->ellipse.w);
+        lgl_xml_set_prop_length (node, "h",  markup->ellipse.h);
+
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/lgl-xml-template.h b/libglabels/lgl-xml-template.h
new file mode 100644 (file)
index 0000000..8dd1438
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ *  lgl-xml-template.h
+ *  Copyright (C) 2001-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglabels.
+ *
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __LGL_XML_TEMPLATE_H__
+#define __LGL_XML_TEMPLATE_H__
+
+#include <glib.h>
+#include <libxml/tree.h>
+
+#include "lgl-template.h"
+
+G_BEGIN_DECLS
+
+void         lgl_xml_template_read_templates_from_file (const gchar       *utf8_filename);
+
+void         lgl_xml_template_parse_templates_doc      (const xmlDocPtr    templates_doc);
+
+lglTemplate *lgl_xml_template_parse_template_node      (const xmlNodePtr   template_node);
+
+
+gint         lgl_xml_template_write_templates_to_file  (GList             *templates,
+                                                        const gchar       *utf8_filename);
+
+gint         lgl_xml_template_write_template_to_file   (const lglTemplate *template,
+                                                        const gchar       *utf8_filename);
+
+void         lgl_xml_template_create_template_node     (const lglTemplate *template,
+                                                        xmlNodePtr         root,
+                                                        const xmlNsPtr     ns);
+
+G_END_DECLS
+
+#endif /* __LGL_XML_TEMPLATE_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/lgl-xml-vendor.c b/libglabels/lgl-xml-vendor.c
new file mode 100644 (file)
index 0000000..0e329b2
--- /dev/null
@@ -0,0 +1,183 @@
+/*
+ *  lgl-xml-vendor.c
+ *  Copyright (C) 2003-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglabels.
+ *
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "lgl-xml-vendor.h"
+
+#include <glib/gi18n.h>
+#include <glib.h>
+#include <string.h>
+#include <libintl.h>
+
+#include "libglabels-private.h"
+
+#include "lgl-xml.h"
+
+/*===========================================*/
+/* Private types                             */
+/*===========================================*/
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+
+/**
+ * lgl_xml_vendor_read_vendors_from_file:
+ * @utf8_filename:       Filename of vendors file (name encoded as UTF-8)
+ *
+ * Read vendor definitions from a file.
+ *
+ * Returns: a list of #lglVendor structures.
+ *
+ */
+GList *
+lgl_xml_vendor_read_vendors_from_file (gchar *utf8_filename)
+{
+        gchar      *filename;
+        GList      *vendors;
+        xmlDocPtr   vendors_doc;
+
+        LIBXML_TEST_VERSION;
+
+        filename = g_filename_from_utf8 (utf8_filename, -1, NULL, NULL, NULL);
+        if (!filename)
+        {
+                g_message ("Utf8 filename conversion error");
+                return NULL;
+        }
+
+        vendors_doc = xmlParseFile (filename);
+        if (!vendors_doc)
+        {
+                g_message ("\"%s\" is not a glabels vendor file (not XML)",
+                           filename);
+                return NULL;
+        }
+
+        vendors = lgl_xml_vendor_parse_vendors_doc (vendors_doc);
+
+        g_free (filename);
+        xmlFreeDoc (vendors_doc);
+
+        return vendors;
+}
+
+
+/**
+ * lgl_xml_vendor_parse_vendors_doc:
+ * @vendors_doc:  libxml #xmlDocPtr tree, representing a vendors definition file.
+ *
+ * Read vendor definitions from a libxml #xmlDocPtr tree.
+ *
+ * Returns: a list of #lglVendor structures.
+ *
+ */
+GList *
+lgl_xml_vendor_parse_vendors_doc (xmlDocPtr  vendors_doc)
+{
+        GList       *vendors = NULL;
+        xmlNodePtr   root, node;
+        lglVendor   *vendor;
+
+        LIBXML_TEST_VERSION;
+
+        root = xmlDocGetRootElement (vendors_doc);
+        if (!root || !root->name)
+        {
+                g_message ("\"%s\" is not a glabels vendor file (no root node)",
+                           vendors_doc->name);
+                xmlFreeDoc (vendors_doc);
+                return vendors;
+        }
+        if (!lgl_xml_is_node (root, "Glabels-vendors"))
+        {
+                g_message ("\"%s\" is not a glabels vendor file (wrong root node)",
+                           vendors_doc->name);
+                xmlFreeDoc (vendors_doc);
+                return vendors;
+        }
+
+        for (node = root->xmlChildrenNode; node != NULL; node = node->next)
+        {
+                if (lgl_xml_is_node (node, "Vendor"))
+                {
+                        vendor = lgl_xml_vendor_parse_vendor_node (node);
+                        vendors = g_list_append (vendors, vendor);
+                }
+                else
+                {
+                        if ( !xmlNodeIsText(node) )
+                        {
+                                if (!lgl_xml_is_node (node, "comment"))
+                                {
+                                        g_message ("bad node =  \"%s\"",node->name);
+                                }
+                        }
+                }
+        }
+
+        return vendors;
+}
+
+
+/**
+ * lgl_xml_vendor_parse_vendor_node:
+ * @vendor_node:  libxml #xmlNodePtr vendor node from a #xmlDocPtr tree.
+ *
+ * Read a single vendor definition from a libxml #xmlNodePtr node.
+ *
+ * Returns: a pointer to a newly created #lglVendor structure.
+ *
+ */
+lglVendor *
+lgl_xml_vendor_parse_vendor_node (xmlNodePtr vendor_node)
+{
+        lglVendor             *vendor;
+        gchar                 *name;
+
+        LIBXML_TEST_VERSION;
+
+        name = lgl_xml_get_prop_i18n_string (vendor_node, "name", NULL);
+
+        vendor = lgl_vendor_new (name);
+
+        vendor->url = lgl_xml_get_prop_i18n_string (vendor_node, "url", NULL);
+
+        g_free (name);
+
+        return vendor;
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/lgl-xml-vendor.h b/libglabels/lgl-xml-vendor.h
new file mode 100644 (file)
index 0000000..0aac3b7
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ *  lgl-xml-vendor.h
+ *  Copyright (C) 2003-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglabels.
+ *
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __LGL_XML_VENDOR_H__
+#define __LGL_XML_VENDOR_H__
+
+#include <glib.h>
+#include <libxml/tree.h>
+
+#include "lgl-vendor.h"
+
+G_BEGIN_DECLS
+
+GList       *lgl_xml_vendor_read_vendors_from_file (gchar        *utf8_filename);
+
+GList       *lgl_xml_vendor_parse_vendors_doc      (xmlDocPtr     vendors_doc);
+
+lglVendor   *lgl_xml_vendor_parse_vendor_node      (xmlNodePtr    vendor_node);
+
+
+G_END_DECLS
+
+#endif /* __LGL_XML_VENDOR_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/lgl-xml.c b/libglabels/lgl-xml.c
new file mode 100644 (file)
index 0000000..e353271
--- /dev/null
@@ -0,0 +1,524 @@
+/*
+ *  lgl-xml.c
+ *  Copyright (C) 2003-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglabels.
+ *
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "lgl-xml.h"
+
+#include <glib/gi18n.h>
+#include <glib.h>
+#include <string.h>
+
+#include "libglabels-private.h"
+
+
+/*========================================================*/
+/* Private macros and constants.                          */
+/*========================================================*/
+
+/*========================================================*/
+/* Private types.                                         */
+/*========================================================*/
+
+/*========================================================*/
+/* Private globals.                                       */
+/*========================================================*/
+
+static lglUnits  default_units        = LGL_UNITS_POINT;
+
+
+/****************************************************************************/
+
+/**
+ * lgl_xml_get_prop_string:
+ * @node:        the libxml2 #xmlNodePtr of the node
+ * @property:    the property name
+ * @default_val: a default value to return if property not found
+ *
+ * Return value of property as a string.
+ *
+ * Returns: the property as a pointer to a gchar string.  This string should
+ *          be freed with g_free().
+ *
+ */
+gchar *
+lgl_xml_get_prop_string (xmlNodePtr   node,
+                         const gchar *property,
+                         const gchar *default_val)
+{
+        gchar   *val;
+        xmlChar *string;
+
+        string = xmlGetProp (node, (xmlChar *)property);
+        if ( string != NULL )
+        {
+                val = g_strdup ((gchar *)string);
+                xmlFree (string);
+                return val;
+        }
+
+        if (default_val)
+        {
+                return g_strdup (default_val);
+        }
+
+        return NULL;
+}
+
+
+/**
+ * lgl_xml_get_prop_i18n_string:
+ * @node:        the libxml2 #xmlNodePtr of the node
+ * @property:    the property name
+ * @default_val: a default value to return if property not found
+ *
+ * Return value of a translatable property as a string.
+ *
+ * Returns: the property as a pointer to a gchar string.  This string should
+ *          be freed with g_free().
+ *
+ */
+gchar *
+lgl_xml_get_prop_i18n_string (xmlNodePtr   node,
+                              const gchar *property,
+                              const gchar *default_val)
+{
+        gchar   *_property;
+        gchar   *val;
+        xmlChar *string;
+
+        _property = g_strdup_printf ("_%s", property);
+        string = xmlGetProp (node, (xmlChar *)_property);
+        g_free (_property);
+
+        if ( string != NULL )
+        {
+                val = g_strdup (gettext ((char *)string));
+                xmlFree (string);
+                return val;
+        }
+
+        string = xmlGetProp (node, (xmlChar *)property);
+        if ( string != NULL )
+        {
+                val = g_strdup ((gchar *)string);
+                xmlFree (string);
+                return val;
+        }
+
+        if (default_val)
+        {
+                return g_strdup (default_val);
+        }
+
+        return NULL;
+}
+
+
+/**
+ * lgl_xml_get_prop_double:
+ * @node:        the libxml2 #xmlNodePtr of the node
+ * @property:    the property name
+ * @default_val: a default value to return if property not found
+ *
+ * Return value of property as a double.
+ *
+ * Returns: the property as a double.
+ *
+ */
+gdouble
+lgl_xml_get_prop_double (xmlNodePtr   node,
+                         const gchar *property,
+                         gdouble      default_val)
+{
+        gdouble  val;
+        xmlChar *string;
+
+        string = xmlGetProp (node, (xmlChar *)property);
+        if ( string != NULL )
+        {
+                val = g_strtod ((gchar *)string, NULL);
+                xmlFree (string);
+                return val;
+        }
+
+        return default_val;
+}
+
+
+/**
+ * lgl_xml_get_prop_boolean:
+ * @node:        the libxml2 #xmlNodePtr of the node
+ * @property:    the property name
+ * @default_val: a default value to return if property not found
+ *
+ * Return value of property as a boolean.
+ *
+ * Returns: the property as a boolean.
+ *
+ */
+gboolean
+lgl_xml_get_prop_boolean (xmlNodePtr   node,
+                         const gchar *property,
+                         gboolean     default_val)
+{
+        gboolean  val;
+        xmlChar  *string;
+
+        string = xmlGetProp (node, (xmlChar *)property);
+        if ( string != NULL )
+        {
+                val = !((xmlStrcasecmp (string, (xmlChar *)"false") == 0) ||
+                        xmlStrEqual (string, (xmlChar *)"0"));;
+                xmlFree (string);
+                return val;
+        }
+
+        return default_val;
+}
+
+
+/**
+ * lgl_xml_get_prop_int:
+ * @node:        the libxml2 #xmlNodePtr of the node
+ * @property:    the property name
+ * @default_val: a default value to return if property not found
+ *
+ * Return value of property as an integer.
+ *
+ * Returns: the property as an integer.
+ *
+ */
+gint
+lgl_xml_get_prop_int (xmlNodePtr   node,
+                      const gchar *property,
+                      gint         default_val)
+{
+        gint     val;
+        xmlChar *string;
+
+        string = xmlGetProp (node, (xmlChar *)property);
+        if ( string != NULL )
+        {
+                val = strtol ((char *)string, NULL, 0);
+                xmlFree (string);
+                return val;
+        }
+
+        return default_val;
+}
+
+
+/**
+ * lgl_xml_get_prop_uint:
+ * @node:        the libxml2 #xmlNodePtr of the node
+ * @property:    the property name
+ * @default_val: a default value to return if property not found
+ *
+ * Return value of property (usually formatted in hex) as an unsigned integer.
+ *
+ * Returns: the property as an unsigned integer.
+ *
+ */
+guint
+lgl_xml_get_prop_uint (xmlNodePtr   node,
+                       const gchar *property,
+                       guint        default_val)
+{
+        guint    val;
+        xmlChar *string;
+
+        string = xmlGetProp (node, (xmlChar *)property);
+        if ( string != NULL )
+        {
+                val = strtoul ((char *)string, NULL, 0);
+                xmlFree (string);
+                return val;
+        }
+
+        return default_val;
+}
+
+
+/**
+ * lgl_xml_get_prop_length:
+ * @node:        the libxml2 #xmlNodePtr of the node
+ * @property:    the property name
+ * @default_val: a default value to return if property not found
+ *
+ * Return value of a length property as a double, converting to internal
+ * units (points).  The property is expected to be formatted as a number
+ * followed by a units string.  If there is no units string, the length
+ * is assumed to be in points.  Valid units strings are "pt" for points,
+ * "in" for inches, "mm" for millimeters, "cm" for centimeters, and
+ * "pc" for picas.
+ *
+ * Returns: the length in points.
+ *
+ */
+gdouble
+lgl_xml_get_prop_length (xmlNodePtr   node,
+                         const gchar *property,
+                         gdouble      default_val)
+{
+        gdouble  val;
+        xmlChar *string;
+        xmlChar *unit_id;
+        lglUnits units;
+
+        string = xmlGetProp (node, (xmlChar *)property);
+        if ( string != NULL )
+        {
+
+                val = g_strtod ((gchar *)string, (gchar **)&unit_id);
+
+                if (unit_id != string)
+                {
+                        unit_id = (xmlChar *)g_strchug ((gchar *)unit_id);
+                        units = lgl_units_from_id ((gchar *)unit_id);
+                        if (units != LGL_UNITS_INVALID)
+                        {
+                                val *= lgl_units_get_points_per_unit (units);
+                        }
+                        else
+                        {
+                                g_message ("Line %ld, Node \"%s\", Property \"%s\": Unknown unit \"%s\", assuming points",
+                                           xmlGetLineNo (node), node->name, property, unit_id);
+                        }
+                }
+                else
+                {
+                        val = 0.0;
+                }
+
+                xmlFree (string);
+                return val;
+        }
+
+        return default_val;
+}
+
+
+/**
+ * lgl_xml_set_prop_string:
+ * @node:        the libxml2 #xmlNodePtr of the node
+ * @property:    the property name
+ * @val:         the value to set
+ *
+ * Set a property from a string.
+ *
+ */
+void
+lgl_xml_set_prop_string (xmlNodePtr    node,
+                         const gchar  *property,
+                         const gchar  *val)
+{
+        if (val != NULL)
+        {
+                xmlSetProp (node, (xmlChar *)property, (xmlChar *)val);
+        }
+}
+
+
+/**
+ * lgl_xml_set_prop_double:
+ * @node:        the libxml2 #xmlNodePtr of the node
+ * @property:    the property name
+ * @val:         the value to set
+ *
+ * Set a property from a double.
+ *
+ */
+void
+lgl_xml_set_prop_double (xmlNodePtr    node,
+                         const gchar  *property,
+                         gdouble       val)
+{
+        gchar  *string, buffer[G_ASCII_DTOSTR_BUF_SIZE];
+
+        /* Guarantee "C" locale by use of g_ascii_formatd */
+        string = g_ascii_formatd (buffer, G_ASCII_DTOSTR_BUF_SIZE, "%g", val);
+
+        xmlSetProp (node, (xmlChar *)property, (xmlChar *)string);
+}
+
+
+/**
+ * lgl_xml_set_prop_boolean:
+ * @node:        the libxml2 #xmlNodePtr of the node
+ * @property:    the property name
+ * @val:         the value to set
+ *
+ * Set a property from a boolean.
+ *
+ */
+void
+lgl_xml_set_prop_boolean (xmlNodePtr    node,
+                          const gchar  *property,
+                          gboolean      val)
+{
+        xmlSetProp (node, (xmlChar *)property, (xmlChar *)(val ? "True" : "False"));
+}
+
+/**
+ * lgl_xml_set_prop_int:
+ * @node:        the libxml2 #xmlNodePtr of the node
+ * @property:    the property name
+ * @val:         the value to set
+ *
+ * Set a property from an integer.
+ *
+ */
+void
+lgl_xml_set_prop_int (xmlNodePtr    node,
+                      const gchar  *property,
+                      gint          val)
+{
+        gchar  *string;
+
+        string = g_strdup_printf ("%d", val);
+        xmlSetProp (node, (xmlChar *)property, (xmlChar *)string);
+        g_free (string);
+}
+
+/**
+ * lgl_xml_set_prop_uint_hex:
+ * @node:        the libxml2 #xmlNodePtr of the node
+ * @property:    the property name
+ * @val:         the value to set
+ *
+ * Set a property from an unsigned integer and format in hex.
+ *
+ */
+void
+lgl_xml_set_prop_uint_hex (xmlNodePtr    node,
+                           const gchar  *property,
+                           guint         val)
+{
+        gchar  *string;
+
+        string = g_strdup_printf ("0x%08x", val);
+        xmlSetProp (node, (xmlChar *)property, (xmlChar *)string);
+        g_free (string);
+}
+
+/**
+ * lgl_xml_set_prop_length:
+ * @node:        the libxml2 #xmlNodePtr of the node
+ * @property:    the property name
+ * @val:         the length to set in internal units (points)
+ *
+ * Set a property from a length, performing any necessary conversion.
+ * Length properties are formatted as a number followed by a units string.
+ * The units of the formatted property is determined by the most recent call to
+ * lgl_xml_set_default_units().
+ *
+ */
+void
+lgl_xml_set_prop_length (xmlNodePtr    node,
+                         const gchar  *property,
+                         gdouble       val)
+{
+        gchar  *string, buffer[G_ASCII_DTOSTR_BUF_SIZE];
+        gchar  *string_unit;
+
+        /* Convert to default units */
+        val *= lgl_units_get_units_per_point (default_units);
+
+        /* Guarantee "C" locale by use of g_ascii_formatd */
+        string = g_ascii_formatd (buffer, G_ASCII_DTOSTR_BUF_SIZE, "%g", val);
+
+        string_unit = g_strdup_printf ("%s%s", string, lgl_units_get_id (default_units));
+        xmlSetProp (node, (xmlChar *)property, (xmlChar *)string_unit);
+        g_free (string_unit);
+}
+
+/**
+ * lgl_xml_is_node
+ * @node:        the libxml2 #xmlNodePtr of the node
+ * @name    :    the node name
+ *
+ * Test if a node name matches given name.
+ *
+ * Returns: TRUE if the name of the node matches.  Otherwise FALSE.
+ *
+ */
+gboolean
+lgl_xml_is_node (xmlNodePtr   node,
+                 const gchar *name)
+{
+        return xmlStrEqual (node->name, (xmlChar *)name);
+}
+
+
+/**
+ * lgl_xml_get_node_content
+ * @node:        the libxml2 #xmlNodePtr of the node
+ *
+ * Get the content of a node.
+ *
+ * Returns: the property as a pointer to a gchar string.  This string should
+ *          be freed with g_free().
+ */
+gchar *
+lgl_xml_get_node_content (xmlNodePtr   node)
+{
+        xmlChar *xml_content;
+        gchar   *g_content;
+
+        xml_content = xmlNodeGetContent (node);
+
+        if (xml_content != NULL)
+        {
+                g_content = g_strdup ((gchar *)xml_content);
+                xmlFree (xml_content);
+                return g_content;
+        }
+
+        return NULL;
+}
+
+
+/**
+ * lgl_xml_set_default_units:
+ * @units:       default units selection (#lglUnits)
+ *
+ * Set the default units when formatting lengths.  See
+ * lgl_xml_set_prop_length().
+ *
+ */
+void
+lgl_xml_set_default_units (lglUnits   units)
+{
+        g_return_if_fail ((units >= LGL_UNITS_FIRST) && (units <= LGL_UNITS_LAST));
+
+        default_units = units;
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/lgl-xml.h b/libglabels/lgl-xml.h
new file mode 100644 (file)
index 0000000..9e7f1dd
--- /dev/null
@@ -0,0 +1,119 @@
+/*
+ *  lgl-xml.h
+ *  Copyright (C) 2003-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglabels.
+ *
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __LGL_XML_H__
+#define __LGL_XML_H__
+
+#include <glib.h>
+#include <libxml/tree.h>
+
+#include "lgl-units.h"
+
+#define LGL_XML_NAME_SPACE "http://glabels.org/xmlns/3.0/"
+
+G_BEGIN_DECLS
+
+/*
+ * Get property functions
+ */
+gchar *  lgl_xml_get_prop_string   (xmlNodePtr    node,
+                                    const gchar  *property,
+                                    const gchar  *default_val);
+
+gchar *  lgl_xml_get_prop_i18n_string (xmlNodePtr    node,
+                                       const gchar  *property,
+                                       const gchar  *default_val);
+
+gdouble  lgl_xml_get_prop_double   (xmlNodePtr    node,
+                                    const gchar  *property,
+                                    gdouble       default_val);
+
+gboolean lgl_xml_get_prop_boolean  (xmlNodePtr    node,
+                                    const gchar  *property,
+                                    gboolean      default_val);
+
+gint     lgl_xml_get_prop_int      (xmlNodePtr    node,
+                                    const gchar  *property,
+                                    gint          default_val);
+
+guint    lgl_xml_get_prop_uint     (xmlNodePtr    node,
+                                    const gchar  *property,
+                                    guint         default_val);
+
+gdouble  lgl_xml_get_prop_length   (xmlNodePtr    node,
+                                    const gchar  *property,
+                                    gdouble       default_val);
+
+
+/*
+ * Set property functions
+ */
+void     lgl_xml_set_prop_string   (xmlNodePtr    node,
+                                    const gchar  *property,
+                                    const gchar  *val);
+
+void     lgl_xml_set_prop_double   (xmlNodePtr    node,
+                                    const gchar  *property,
+                                    gdouble       val);
+
+void     lgl_xml_set_prop_boolean  (xmlNodePtr    node,
+                                    const gchar  *property,
+                                    gboolean      val);
+
+void     lgl_xml_set_prop_int      (xmlNodePtr    node,
+                                    const gchar  *property,
+                                    gint          val);
+
+void     lgl_xml_set_prop_uint_hex (xmlNodePtr    node,
+                                    const gchar  *property,
+                                    guint         val);
+
+void     lgl_xml_set_prop_length   (xmlNodePtr    node,
+                                    const gchar  *property,
+                                    gdouble       val);
+
+/*
+ * Other node functions
+ */
+gboolean lgl_xml_is_node           (xmlNodePtr    node,
+                                    const gchar  *name);
+
+gchar *  lgl_xml_get_node_content  (xmlNodePtr    node);
+
+/*
+ * Misc functions
+ */
+void     lgl_xml_set_default_units (lglUnits      units);
+
+G_END_DECLS
+
+
+#endif /* __LGL_XML_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/libglabels-3.0.pc.in b/libglabels/libglabels-3.0.pc.in
new file mode 100644 (file)
index 0000000..bb07823
--- /dev/null
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: LIBGLABELS
+Description: GLabels Template Library
+Requires: glib-2.0 libxml-2.0
+Version: @VERSION@
+Libs: -L${libdir} -lglabels-3.0
+Cflags: -I${includedir}/@LIBGLABELS_BRANCH@
+
index dd8bda8320cfbfbd2e48e14b4c922aa72c0854f4..43ea4cd4443232223a1a135b27ced17e3367e07a 100644 (file)
@@ -1,40 +1,30 @@
 /*
- *  (LIBGLABELS) Template library for GLABELS
+ *  libglabels-private.h
+ *  Copyright (C) 2004-2009  Jim Evins <evins@snaught.com>.
  *
- *  libglabels-private.h:  libglabels private header file
+ *  This file is part of libglabels.
  *
- *  Copyright (C) 2004  Jim Evins <evins@snaught.com>.
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
  *
- *  This file is part of the LIBGLABELS library.
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License as published by the Free Software Foundation; either
- *  version 2 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
+ *  libglabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
  *
- *  You should have received a copy of the GNU Library General Public
- *  License along with this library; if not, write to the Free
- *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- *  MA 02111-1307, USA
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __LIBGLABELS_PRIVATE_H__
 #define __LIBGLABELS_PRIVATE_H__
 
-#include <glib/gutils.h>
-#include <glib/gfileutils.h>
-#include <glib/gunicode.h>
-
-#include "str.h"
+#include <glib.h>
 
-/* Data system and user data directories.  (must free w/ g_free()) */
-#define LGL_SYSTEM_DATA_DIR g_build_filename (LIBGLABELS_TEMPLATE_DIR, NULL)
-#define LGL_USER_DATA_DIR   g_build_filename (g_get_home_dir (), ".glabels", NULL)
+#include "lgl-str.h"
+#include "lgl-template.h"
 
 #undef  G_LOG_DOMAIN
 #define G_LOG_DOMAIN "LibGlabels"
 #define UTF8_EQUAL(s1,s2) (!lgl_str_utf8_casecmp (s1, s2))
 #define ASCII_EQUAL(s1,s2) (!g_ascii_strcasecmp (s1, s2))
 
+void _lgl_db_register_template_internal (const lglTemplate   *template);
+
 
 #endif /* __LIBGLABELS_PRIVATE_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index c74fbe01a2d6053f92fe93bdf636efa30b3a74e9..222670ca8a8c1d277fe88289318ce4f7b0b5c7ca 100644 (file)
@@ -1,40 +1,46 @@
 /*
- *  (LIBGLABELS) Template library for GLABELS
+ *  libglabels.h
+ *  Copyright (C) 2003-2009  Jim Evins <evins@snaught.com>.
  *
- *  libglabels.h:  libglabels master header file
+ *  This file is part of libglabels.
  *
- *  Copyright (C) 2004  Jim Evins <evins@snaught.com>.
+ *  libglabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
  *
- *  This file is part of the LIBGLABELS library.
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License as published by the Free Software Foundation; either
- *  version 2 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
+ *  libglabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
  *
- *  You should have received a copy of the GNU Library General Public
- *  License along with this library; if not, write to the Free
- *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- *  MA 02111-1307, USA
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __LIBGLABELS_H__
 #define __LIBGLABELS_H__
 
-#include <libglabels/db.h>
-#include <libglabels/paper.h>
-#include <libglabels/category.h>
-#include <libglabels/template.h>
-#include <libglabels/enums.h>
-#include <libglabels/str.h>
-#include <libglabels/xml-paper.h>
-#include <libglabels/xml-category.h>
-#include <libglabels/xml-template.h>
-#include <libglabels/xml.h>
+#include <libglabels/lgl-db.h>
+#include <libglabels/lgl-paper.h>
+#include <libglabels/lgl-category.h>
+#include <libglabels/lgl-template.h>
+#include <libglabels/lgl-units.h>
+#include <libglabels/lgl-str.h>
+#include <libglabels/lgl-xml-paper.h>
+#include <libglabels/lgl-xml-category.h>
+#include <libglabels/lgl-xml-template.h>
+#include <libglabels/lgl-xml.h>
 
 #endif /* __LIBGLABELS_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglabels/libglabels.pc.in b/libglabels/libglabels.pc.in
deleted file mode 100644 (file)
index c16e8f4..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: libglabels
-Description: GLabels Template Library
-Requires: glib-2.0 libxml-2.0
-Version: @VERSION@
-Libs: -L${libdir} -lglabels
-Cflags: -I${includedir}
-
diff --git a/libglabels/paper.c b/libglabels/paper.c
deleted file mode 100644 (file)
index 98826c9..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- *  (LIBGLABELS) Template library for GLABELS
- *
- *  paper.c:  paper module
- *
- *  Copyright (C) 2003, 2004  Jim Evins <evins@snaught.com>.
- *
- *  This file is part of the LIBGLABELS library.
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License as published by the Free Software Foundation; either
- *  version 2 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public
- *  License along with this library; if not, write to the Free
- *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- *  MA 02111-1307, USA
- */
-#include <config.h>
-
-#include "paper.h"
-
-#include <glib/gi18n.h>
-#include <glib/gmem.h>
-#include <glib/gstrfuncs.h>
-#include <glib/gmessages.h>
-#include <string.h>
-
-#include "libglabels-private.h"
-
-/*===========================================*/
-/* Private types                             */
-/*===========================================*/
-
-
-/*===========================================*/
-/* Private globals                           */
-/*===========================================*/
-
-
-/*===========================================*/
-/* Local function prototypes                 */
-/*===========================================*/
-
-
-/*===========================================*/
-/* Functions.                                */
-/*===========================================*/
-
-/**
- * lgl_paper_new:
- * @id:       Id of paper definition. (E.g. US-Letter, A4, etc.)  Should be
- *            unique.
- * @name:     Localized name of paper.
- * @width:    Width of paper in points.
- * @height:   Height of paper in points.
- * @pwg_size: PWG 5101.1-2002 size name.
- *
- * Allocates and constructs a new #lglPaper structure.
- *
- * Returns: a pointer to a newly allocated #lglPaper structure.
- *
- */
-lglPaper *
-lgl_paper_new (gchar             *id,
-              gchar             *name,
-              gdouble            width,
-              gdouble            height,
-              gchar             *pwg_size)
-{
-       lglPaper *paper;
-
-       paper           = g_new0 (lglPaper,1);
-
-       paper->id       = g_strdup (id);
-       paper->name     = g_strdup (name);
-       paper->width    = width;
-       paper->height   = height;
-       paper->pwg_size = g_strdup (pwg_size);
-
-       return paper;
-}
-
-
-/**
- * lgl_paper_dup:
- * @orig:  #lglPaper structure to be duplicated.
- *
- * Duplicates an existing #lglPaper structure.
- *
- * Returns: a pointer to a newly allocated #lglPaper structure.
- *
- */
-lglPaper *lgl_paper_dup (const lglPaper *orig)
-{
-       lglPaper       *paper;
-
-       g_return_val_if_fail (orig, NULL);
-
-       paper = g_new0 (lglPaper,1);
-
-       paper->id       = g_strdup (orig->id);
-       paper->name     = g_strdup (orig->name);
-       paper->width    = orig->width;
-       paper->height   = orig->height;
-       paper->pwg_size = g_strdup (orig->pwg_size);
-
-       return paper;
-}
-
-
-/**
- * lgl_paper_free:
- * @paper:  pointer to #lglPaper structure to be freed.
- *
- * Free all memory associated with an existing #lglPaper structure.
- *
- */
-void lgl_paper_free (lglPaper *paper)
-{
-
-       if ( paper != NULL ) {
-
-               g_free (paper->id);
-               paper->id = NULL;
-
-               g_free (paper->name);
-               paper->name = NULL;
-
-               g_free (paper->pwg_size);
-               paper->pwg_size = NULL;
-
-               g_free (paper);
-       }
-
-}
-
-
diff --git a/libglabels/paper.h b/libglabels/paper.h
deleted file mode 100644 (file)
index 0fb4238..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- *  (LIBGLABELS) Template library for GLABELS
- *
- *  paper.h:  paper module header file
- *
- *  Copyright (C) 2003, 2004  Jim Evins <evins@snaught.com>.
- *
- *  This file is part of the LIBGLABELS library.
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License as published by the Free Software Foundation; either
- *  version 2 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public
- *  License along with this library; if not, write to the Free
- *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- *  MA 02111-1307, USA
- */
-
-#ifndef __PAPER_H__
-#define __PAPER_H__
-
-#include <glib/gtypes.h>
-#include <glib/glist.h>
-
-G_BEGIN_DECLS
-
-
-/*
- *   lglPaper structure
- */
-typedef struct _lglPaper lglPaper;
-
-struct _lglPaper {
-       gchar               *id;       /* Unique ID of paper definition */
-       gchar               *name;     /* Localized name of paper */
-       gdouble              width;    /* Width (in points) */
-       gdouble              height;   /* Height (in points) */
-       gchar               *pwg_size; /* PWG 5101.1-2002 size name */
-};
-
-
-/*
- * Paper construction
- */
-lglPaper            *lgl_paper_new                 (gchar           *id,
-                                                   gchar           *name,
-                                                   gdouble          width,
-                                                   gdouble          height,
-                                                   gchar           *pwg_size);
-
-lglPaper             *lgl_paper_dup                (const lglPaper   *orig);
-
-void                 lgl_paper_free                (lglPaper         *paper);
-
-
-G_END_DECLS
-
-#endif
diff --git a/libglabels/str.c b/libglabels/str.c
deleted file mode 100644 (file)
index 7c1f59a..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (LIBGLABELS) Template library for GLABELS
- *
- *  str.c:  libGLabels string utilities
- *
- *  Copyright (C) 2007  Jim Evins <evins@snaught.com>.
- *
- *  This file is part of the LIBGLABELS library.
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License as published by the Free Software Foundation; either
- *  version 2 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public
- *  License along with this library; if not, write to the Free
- *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- *  MA 02111-1307, USA
- */
-#include <config.h>
-
-#include "str.h"
-
-
-/*===========================================*/
-/* Private types                             */
-/*===========================================*/
-
-
-/*===========================================*/
-/* Private globals                           */
-/*===========================================*/
-
-
-/*===========================================*/
-/* Local function prototypes                 */
-/*===========================================*/
-
-
-/*===========================================*/
-/* Functions.                                */
-/*===========================================*/
-
-/**
- * lgl_str_utf8_casecmp:
- * @s1: string to compare with s2.
- * @s2: string to compare with s1.
- *
- * Compare two UTF-8 strings, ignoring the case of characters.
- *
- * This function should be used only on strings that are known to be encoded
- * in UTF-8 or a compatible UTF-8 subset.
- *
- * Returns: 0 if the strings match, a negative value if s1 < s2,
- *          or a positive value if s1 > s2.
- *
- */
-gint
-lgl_str_utf8_casecmp (const gchar *s1,
-                      const gchar *s2)
-{
-        gchar *folded_s1;
-        gchar *folded_s2;
-        gint   result;
-
-        folded_s1 = g_utf8_casefold (s1, -1);
-        folded_s2 = g_utf8_casefold (s2, -1);
-
-        result = g_utf8_collate (folded_s1, folded_s2);
-
-        g_free (folded_s1);
-        g_free (folded_s2);
-
-        return result;
-}
-
-
diff --git a/libglabels/str.h b/libglabels/str.h
deleted file mode 100644 (file)
index bc6312f..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (LIBGLABELS) Template library for GLABELS
- *
- *  str.h:  libGLabels string utilities header file
- *
- *  Copyright (C) 2007  Jim Evins <evins@snaught.com>.
- *
- *  This file is part of the LIBGLABELS library.
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License as published by the Free Software Foundation; either
- *  version 2 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public
- *  License along with this library; if not, write to the Free
- *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- *  MA 02111-1307, USA
- */
-
-#ifndef __STR_H__
-#define __STR_H__
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-gint  lgl_str_utf8_casecmp (const gchar *s1,
-                           const gchar *s2);
-
-G_END_DECLS
-
-
-#endif /* __STR_H__ */
diff --git a/libglabels/template.c b/libglabels/template.c
deleted file mode 100644 (file)
index f6d6d21..0000000
+++ /dev/null
@@ -1,1121 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (LIBGLABELS) Template library for GLABELS
- *
- *  template.c:  template module
- *
- *  Copyright (C) 2001-2006  Jim Evins <evins@snaught.com>.
- *
- *  This file is part of the LIBGLABELS library.
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License as published by the Free Software Foundation; either
- *  version 2 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public
- *  License along with this library; if not, write to the Free
- *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- *  MA 02111-1307, USA
- */
-#include <config.h>
-
-#include "template.h"
-
-#include <glib/gi18n.h>
-#include <glib/gmem.h>
-#include <glib/gstrfuncs.h>
-#include <glib/gqsort.h>
-#include <glib/gmessages.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-
-#include "libglabels-private.h"
-
-#include "paper.h"
-
-/*===========================================*/
-/* Private types                             */
-/*===========================================*/
-
-
-/*===========================================*/
-/* Private globals                           */
-/*===========================================*/
-
-
-/*===========================================*/
-/* Local function prototypes                 */
-/*===========================================*/
-
-static gint         compare_origins              (gconstpointer           a,
-                                                  gconstpointer           b,
-                                                  gpointer                user_data);
-
-/*===========================================*/
-/* Functions.                                */
-/*===========================================*/
-
-/**
- * lgl_template_new:
- *   @brand:        Template brand
- *   @part:         Template part name/number
- *   @description:  Template descriptions
- *   @paper_id:     Page size id
- *   @page_width:   Page width in points, set to zero unless paper_id="Other"
- *   @page_height:  Page height in points, set to zero unless paper_id="Other"
- *
- * Create a new template structure, with the given top-level attributes.  The
- * created template will have no initial aliases, categories, or frames
- * associated with it.  See lgl_template_add_alias(), lgl_template_add_category(),
- * and lgl_template_add_frame() to add these.
- *
- * Returns: pointer to a newly allocated #lglTemplate structure.
- *
- */
-lglTemplate *
-lgl_template_new (const gchar         *brand,
-                  const gchar         *part,
-                  const gchar         *description,
-                  const gchar         *paper_id,
-                  gdouble              page_width,
-                  gdouble              page_height)
-{
-       lglTemplate      *template;
-       lglTemplateAlias *alias;
-
-       template = g_new0 (lglTemplate,1);
-
-       template->brand       = g_strdup (brand);
-       template->part        = g_strdup (part);
-       template->description = g_strdup (description);
-       template->paper_id    = g_strdup (paper_id);
-       template->page_width  = page_width;
-       template->page_height = page_height;
-
-       /* Always include primary name in alias list. */
-       template->aliases = NULL;
-        alias = lgl_template_alias_new (brand, part);
-        lgl_template_add_alias (template, alias);
-
-       return template;
-}
-
-
-/**
- * lgl_template_get_name:
- *   @template:  Pointer to template structure to test
- *
- * This function returns the name of the given template.  The name is the concetenation
- * of the brand and part name/number.
- *
- * Returns:  A pointer to a newly allocated name string.  Should be freed with g_free().
- *
- */
-gchar *
-lgl_template_get_name (const lglTemplate  *template)
-{
-       g_return_val_if_fail (template, NULL);
-
-        return g_strdup_printf ("%s %s", template->brand, template->part);
-}
-
-
-/**
- * lgl_template_do_templates_match:
- *   @template1:  Pointer to 1st template structure to test
- *   @template2:  Pointer to 2nd template structure to test
- *
- * This function tests if the given templates match.  This is a simple test that only tests
- * the brand and part name/number. It does not test if they are actually identical.
- *
- * Returns:  TRUE if the two template matche.
- *
- */
-gboolean
-lgl_template_do_templates_match (const lglTemplate  *template1,
-                                 const lglTemplate  *template2)
-{
-       g_return_val_if_fail (template1, FALSE);
-       g_return_val_if_fail (template2, FALSE);
-
-        return (UTF8_EQUAL (template1->brand, template2->brand) &&
-                UTF8_EQUAL (template1->part, template2->part));
-}
-
-
-/**
- * lgl_template_does_brand_match:
- *   @template:  Pointer to template structure to test
- *   @brand:     Brand string
- *
- * This function tests if the brand of the template matches the given brand.
- *
- * Returns:  TRUE if the template matches the given brand.
- *
- */
-gboolean
-lgl_template_does_brand_match (const lglTemplate  *template,
-                               const gchar        *brand)
-{
-       g_return_val_if_fail (template, FALSE);
-
-        /* NULL matches everything. */
-        if (brand == NULL)
-        {
-                return TRUE;
-        }
-
-        return UTF8_EQUAL (template->brand, brand);
-}
-
-
-/**
- * lgl_template_does_page_size_match:
- *   @template:  Pointer to template structure to test
- *   @paper_id:  Page size ID string
- *
- * This function tests if the page size of the template matches the given ID.
- *
- * Returns:  TRUE if the template matches the given page size ID.
- *
- */
-gboolean
-lgl_template_does_page_size_match (const lglTemplate  *template,
-                                   const gchar        *paper_id)
-{
-       g_return_val_if_fail (template, FALSE);
-
-        /* NULL matches everything. */
-        if (paper_id == NULL)
-        {
-                return TRUE;
-        }
-
-        return ASCII_EQUAL(paper_id, template->paper_id);
-}
-
-
-/**
- * lgl_template_does_category_match:
- *   @template:     Pointer to template structure to test
- *   @category_id:  Category ID string
- *
- * This function tests if the given template belongs to the given category ID.
- *
- * Returns:  TRUE if the template matches the given category ID.
- *
- */
-gboolean
-lgl_template_does_category_match  (const lglTemplate  *template,
-                                   const gchar        *category_id)
-{
-        GList *p;
-
-       g_return_val_if_fail (template, FALSE);
-
-        /* NULL matches everything. */
-        if (category_id == NULL)
-        {
-                return TRUE;
-        }
-
-        for ( p=template->category_ids; p != NULL; p=p->next )
-        {
-                if (ASCII_EQUAL(category_id, p->data))
-                {
-                        return TRUE;
-                }
-        }
-
-        return FALSE;
-}
-
-
-/**
- * lgl_template_alias_new:
- *   @brand:        Alias brand
- *   @part:         Alias part name/number
- *
- * Create a new template alias structure, with the given brand and part number.
- *
- * Returns: pointer to a newly allocated #lglTemplateAlias structure.
- *
- */
-lglTemplateAlias *
-lgl_template_alias_new (const gchar         *brand,
-                        const gchar         *part)
-{
-       lglTemplateAlias *alias;
-
-       alias = g_new0 (lglTemplateAlias,1);
-
-       alias->brand       = g_strdup (brand);
-       alias->part        = g_strdup (part);
-
-       return alias;
-}
-
-
-/**
- * lgl_template_add_alias:
- *   @template:  Pointer to template structure
- *   @alias:     Alias string
- *
- * This function adds the given alias to a templates list of aliases.
- *
- */
-void
-lgl_template_add_alias (lglTemplate         *template,
-                        lglTemplateAlias    *alias)
-{
-       g_return_if_fail (template);
-       g_return_if_fail (alias);
-
-       template->aliases = g_list_append (template->aliases, alias);
-}
-
-/**
- * lgl_template_add_frame:
- *   @template:  Pointer to template structure
- *   @frame:     Pointer to frame structure
- *
- * This function adds the given frame structure to the template.  Once added,
- * the frame structure belongs to the given template; do not attempt to free
- * it.
- *
- * Note: Currently glabels only supports a single frame per template.
- *
- */
-void
-lgl_template_add_frame (lglTemplate      *template,
-                        lglTemplateFrame *frame)
-{
-       g_return_if_fail (template);
-       g_return_if_fail (frame);
-
-       template->frames = g_list_append (template->frames, frame);
-}
-
-/**
- * lgl_template_add_category:
- *   @template:     Pointer to template structure
- *   @category_id:  Category ID string
- *
- * This function adds the given category ID to a templates category list.
- *
- */
-void
-lgl_template_add_category (lglTemplate         *template,
-                           const gchar         *category_id)
-{
-       g_return_if_fail (template);
-       g_return_if_fail (category_id);
-
-       template->category_ids = g_list_append (template->category_ids,
-                                                g_strdup (category_id));
-}
-
-/**
- * lgl_template_frame_rect_new:
- *   @id:      ID of frame.  (This should currently always be "0").
- *   @w:       width of frame in points.
- *   @h:       height of frame in points.
- *   @r:       radius of rounded corners in points.  (Should be 0 for square corners.)
- *   @x_waste: Amount of overprint to allow in the horizontal direction.
- *   @y_waste: Amount of overprint to allow in the vertical direction.
- *
- * This function creates a new template frame for a rectangular label or card.
- *
- * Returns: Pointer to newly allocated #lglTemplateFrame structure.
- *
- */
-lglTemplateFrame *
-lgl_template_frame_rect_new  (const gchar         *id,
-                              gdouble              w,
-                              gdouble              h,
-                              gdouble              r,
-                              gdouble              x_waste,
-                              gdouble              y_waste)
-{
-       lglTemplateFrame *frame;
-
-       frame = g_new0 (lglTemplateFrame, 1);
-
-       frame->shape = LGL_TEMPLATE_FRAME_SHAPE_RECT;
-       frame->rect.id = g_strdup (id);
-
-       frame->rect.w = w;
-       frame->rect.h = h;
-       frame->rect.r = r;
-       frame->rect.x_waste = x_waste;
-       frame->rect.y_waste = y_waste;
-
-       return frame;
-}
-
-
-/**
- * lgl_template_frame_round_new:
- *   @id:      ID of frame.  (This should currently always be "0").
- *   @r:       radius of label in points.
- *   @waste:   Amount of overprint to allow.
- *
- * This function creates a new template frame for a round label.
- *
- * Returns: Pointer to newly allocated #lglTemplateFrame structure.
- *
- */
-lglTemplateFrame *
-lgl_template_frame_round_new (const gchar         *id,
-                              gdouble              r,
-                              gdouble              waste)
-{
-       lglTemplateFrame *frame;
-
-       frame = g_new0 (lglTemplateFrame, 1);
-
-       frame->shape = LGL_TEMPLATE_FRAME_SHAPE_ROUND;
-       frame->round.id = g_strdup (id);
-
-       frame->round.r = r;
-       frame->round.waste = waste;
-
-       return frame;
-}
-
-                                                                               
-/**
- * lgl_template_frame_cd_new:
- *   @id:      ID of frame.  (This should currently always be "0").
- *   @r1:      outer radius of label in points.
- *   @r2:      radius of center hole in points.
- *   @w:       clip width of frame in points for business card CDs.  Should be 0 for no clipping.
- *   @h:       clip height of frame in points for business card CDs.  Should be 0 for no clipping.
- *   @waste:   Amount of overprint to allow.
- *
- * This function creates a new template frame for a CD/DVD label.
- *
- * Returns: Pointer to newly allocated #lglTemplateFrame structure.
- *
- */
-lglTemplateFrame *
-lgl_template_frame_cd_new (const gchar         *id,
-                           gdouble              r1,
-                           gdouble              r2,
-                           gdouble              w,
-                           gdouble              h,
-                           gdouble              waste)
-{
-       lglTemplateFrame *frame;
-
-       frame = g_new0 (lglTemplateFrame, 1);
-
-       frame->shape = LGL_TEMPLATE_FRAME_SHAPE_CD;
-       frame->cd.id = g_strdup (id);
-
-       frame->cd.r1 = r1;
-       frame->cd.r2 = r2;
-       frame->cd.w  = w;
-       frame->cd.h  = h;
-       frame->cd.waste = waste;
-
-       return frame;
-}
-
-
-/**
- * lgl_template_frame_get_size:
- * @frame: #lglTemplateFrame structure to query
- * @w: pointer to location to receive width of frame
- * @h: pointer to location to receive height of frame
- *
- * Get size (width and height) of given #lglTemplateFrame in points.
- *
- */
-void
-lgl_template_frame_get_size (const lglTemplateFrame *frame,
-                             gdouble                *w,
-                             gdouble                *h)
-{
-       g_return_if_fail (frame);
-
-       switch (frame->shape) {
-       case LGL_TEMPLATE_FRAME_SHAPE_RECT:
-               *w = frame->rect.w;
-               *h = frame->rect.h;
-               break;
-       case LGL_TEMPLATE_FRAME_SHAPE_ROUND:
-               *w = 2.0 * frame->round.r;
-               *h = 2.0 * frame->round.r;
-               break;
-       case LGL_TEMPLATE_FRAME_SHAPE_CD:
-               if (frame->cd.w == 0.0) {
-                       *w = 2.0 * frame->cd.r1;
-               } else {
-                       *w = frame->cd.w;
-               }
-               if (frame->cd.h == 0.0) {
-                       *h = 2.0 * frame->cd.r1;
-               } else {
-                       *h = frame->cd.h;
-               }
-               break;
-       default:
-               *w = 0.0;
-               *h = 0.0;
-               break;
-       }
-}
-
-
-/**
- * lgl_template_frame_get_n_labels:
- * @frame: #lglTemplateFrame structure to query
- *
- * Get total number of labels per sheet corresponding to the given frame.
- *
- * Returns: number of labels per sheet.
- *
- */
-gint
-lgl_template_frame_get_n_labels (const lglTemplateFrame *frame)
-{
-       gint               n_labels = 0;
-       GList             *p;
-       lglTemplateLayout *layout;
-
-       g_return_val_if_fail (frame, 0);
-
-       for ( p=frame->all.layouts; p != NULL; p=p->next ) {
-               layout = (lglTemplateLayout *)p->data;
-
-               n_labels += layout->nx * layout->ny;
-       }
-
-       return n_labels;
-}
-
-
-/**
- * lgl_template_frame_get_origins:
- * @frame: #lglTemplateFrame structure to query
- *
- * Get an array of label origins for the given frame.  These origins represent the
- * upper left hand corner of each label on a page corresponding to the given frame.
- * The origins will be ordered geometrically left to right and then top to bottom.
- * The array should be freed using g_free().
- *
- * Returns: A newly allocated array of #lglTemplateOrigin structures.
- *
- */
-lglTemplateOrigin *
-lgl_template_frame_get_origins (const lglTemplateFrame *frame)
-{
-       gint               i_label, n_labels, ix, iy;
-       lglTemplateOrigin *origins;
-       GList             *p;
-       lglTemplateLayout *layout;
-
-       g_return_val_if_fail (frame, NULL);
-
-       n_labels = lgl_template_frame_get_n_labels (frame);
-       origins = g_new0 (lglTemplateOrigin, n_labels);
-
-       i_label = 0;
-       for ( p=frame->all.layouts; p != NULL; p=p->next ) {
-               layout = (lglTemplateLayout *)p->data;
-
-               for (iy = 0; iy < layout->ny; iy++) {
-                       for (ix = 0; ix < layout->nx; ix++, i_label++) {
-                               origins[i_label].x = ix*layout->dx + layout->x0;
-                               origins[i_label].y = iy*layout->dy + layout->y0;
-                       }
-               }
-       }
-
-       g_qsort_with_data (origins, n_labels, sizeof(lglTemplateOrigin),
-                          compare_origins, NULL);
-
-       return origins;
-}
-
-
-/**
- * lgl_template_frame_add_layout:
- *   @frame:  Pointer to template frame to add layout to.
- *   @layout: Pointer to layout structure to add to frame.
- *
- * This function adds a layout structure to the given template frame.
- *
- */
-void
-lgl_template_frame_add_layout (lglTemplateFrame   *frame,
-                               lglTemplateLayout  *layout)
-{
-       g_return_if_fail (frame);
-       g_return_if_fail (layout);
-
-       frame->all.layouts = g_list_append (frame->all.layouts, layout);
-}
-
-/**
- * lgl_template_frame_add_markup:
- *   @frame:  Pointer to template frame to add markup to.
- *   @markup: Pointer to markup structure to add to frame.
- *
- * This function adds a markup structure to the given template frame.
- *
- */
-void
-lgl_template_frame_add_markup (lglTemplateFrame   *frame,
-                               lglTemplateMarkup  *markup)
-{
-       g_return_if_fail (frame);
-       g_return_if_fail (markup);
-
-       frame->all.markups = g_list_append (frame->all.markups, markup);
-}
-
-/**
- * lgl_template_layout_new:
- *   @nx:  Number of labels across.
- *   @ny:  Number of labels down.
- *   @x0:  X coordinate of the top-left corner of the top-left label in the layout in points.
- *   @y0:  Y coordinate of the top-left corner of the top-left label in the layout in points.
- *   @dx:  Horizontal pitch in points.  This is the distance from left-edge to left-edge.
- *   @dy:  Vertical pitch in points.  This is the distance from top-edge to top-edge.
- *
- * This function creates a new layout structure with the given parameters.
- *
- * Returns: a newly allocated #lglTemplateLayout structure.
- *
- */
-lglTemplateLayout *
-lgl_template_layout_new (gint    nx,
-                         gint    ny,
-                         gdouble x0,
-                         gdouble y0,
-                         gdouble dx,
-                         gdouble dy)
-{
-       lglTemplateLayout *layout;
-
-       layout = g_new0 (lglTemplateLayout, 1);
-
-       layout->nx = nx;
-       layout->ny = ny;
-       layout->x0 = x0;
-       layout->y0 = y0;
-       layout->dx = dx;
-       layout->dy = dy;
-
-       return layout;
-}
-
-
-/**
- * lgl_template_markup_margin_new:
- *   @size: margin size in points.
- *
- * This function creates a new margin markup structure.
- *
- * Returns: a newly allocated #lglTemplateMarkup structure.
- *
- */
-lglTemplateMarkup *
-lgl_template_markup_margin_new (gdouble size)
-{
-       lglTemplateMarkup *markup;
-
-       markup = g_new0 (lglTemplateMarkup, 1);
-
-       markup->type        = LGL_TEMPLATE_MARKUP_MARGIN;
-       markup->margin.size = size;
-
-       return markup;
-}
-
-
-/**
- * lgl_template_markup_line_new:
- *   @x1: x coordinate of first endpoint.
- *   @y1: y coordinate of first endpoint.
- *   @x2: x coordinate of second endpoint.
- *   @y2: y coordinate of second endpoint.
- *
- * This function creates a new line markup structure.
- *
- * Returns: a newly allocated #lglTemplateMarkup structure.
- *
- */
-lglTemplateMarkup *
-lgl_template_markup_line_new (gdouble x1,
-                              gdouble y1,
-                              gdouble x2,
-                              gdouble y2)
-{
-       lglTemplateMarkup *markup;
-
-       markup = g_new0 (lglTemplateMarkup, 1);
-
-       markup->type        = LGL_TEMPLATE_MARKUP_LINE;
-       markup->line.x1     = x1;
-       markup->line.y1     = y1;
-       markup->line.x2     = x2;
-       markup->line.y2     = y2;
-
-       return markup;
-}
-
-
-/**
- * lgl_template_markup_circle_new:
- *   @x0: x coordinate of center of circle.
- *   @y0: y coordinate of center of circle.
- *   @r:  radius of circle.
- *
- * This function creates a new circle markup structure.
- *
- * Returns: a newly allocated #lglTemplateMarkup structure.
- *
- */
-lglTemplateMarkup *
-lgl_template_markup_circle_new (gdouble x0,
-                                gdouble y0,
-                                gdouble r)
-{
-       lglTemplateMarkup *markup;
-
-       markup = g_new0 (lglTemplateMarkup, 1);
-
-       markup->type        = LGL_TEMPLATE_MARKUP_CIRCLE;
-       markup->circle.x0   = x0;
-       markup->circle.y0   = y0;
-       markup->circle.r    = r;
-
-       return markup;
-}
-
-
-/**
- * lgl_template_markup_rect_new:
- *   @x1: x coordinate of top-left corner of rectangle.
- *   @y1: y coordinate of top-left corner of rectangle.
- *   @w:  width of rectangle.
- *   @h:  height of rectangle.
- *   @r:  radius of rounded corner.
- *
- * This function creates a new rectangle markup structure.
- *
- * Returns: a newly allocated #lglTemplateMarkup structure.
- *
- */
-lglTemplateMarkup *
-lgl_template_markup_rect_new (gdouble x1,
-                              gdouble y1,
-                              gdouble w,
-                              gdouble h,
-                              gdouble r)
-{
-       lglTemplateMarkup *markup;
-
-       markup = g_new0 (lglTemplateMarkup, 1);
-
-       markup->type        = LGL_TEMPLATE_MARKUP_RECT;
-       markup->rect.x1     = x1;
-       markup->rect.y1     = y1;
-       markup->rect.w      = w;
-       markup->rect.h      = h;
-       markup->rect.r      = r;
-
-       return markup;
-}
-
-
-/**
- * lgl_template_dup:
- *   @orig_template: Template to duplicate.
- *
- * This function duplicates a template structure.
- *
- * Returns:  a newly allocated #lglTemplate structure.
- *
- */
-lglTemplate *
-lgl_template_dup (const lglTemplate *orig_template)
-{
-       lglTemplate         *template;
-       lglTemplateAlias    *alias;
-       GList               *p;
-       lglTemplateFrame    *frame;
-
-       g_return_val_if_fail (orig_template, NULL);
-
-       template = lgl_template_new (orig_template->brand,
-                                     orig_template->part,
-                                     orig_template->description,
-                                     orig_template->paper_id,
-                                     orig_template->page_width,
-                                     orig_template->page_height);
-
-       for ( p=orig_template->aliases; p != NULL; p=p->next )
-        {
-                alias = (lglTemplateAlias *)p->data;
-
-               if ( !(UTF8_EQUAL (template->brand, alias->brand) &&
-                       UTF8_EQUAL (template->part, alias->part)) )
-                {
-                       lgl_template_add_alias (template, lgl_template_alias_dup (alias));
-               }
-
-       }
-
-       for ( p=orig_template->category_ids; p != NULL; p=p->next )
-        {
-                lgl_template_add_category (template, p->data);
-       }
-
-       for ( p=orig_template->frames; p != NULL; p=p->next )
-        {
-               frame = (lglTemplateFrame *)p->data;
-
-               lgl_template_add_frame (template, lgl_template_frame_dup (frame));
-       }
-
-       return template;
-}
-
-
-/**
- * lgl_template_free:
- *   @template: Template to free.
- *
- * This function frees all memory associated with given template structure.
- *
- */
-void
-lgl_template_free (lglTemplate *template)
-{
-       GList            *p;
-       lglTemplateFrame *frame;
-
-       if ( template != NULL ) {
-
-               g_free (template->brand);
-               template->brand = NULL;
-
-               g_free (template->part);
-               template->part = NULL;
-
-               g_free (template->description);
-               template->description = NULL;
-
-               g_free (template->paper_id);
-               template->paper_id = NULL;
-
-               for ( p=template->aliases; p != NULL; p=p->next ) {
-
-                       lgl_template_alias_free (p->data);
-                       p->data = NULL;
-
-               }
-               g_list_free (template->aliases);
-               template->aliases = NULL;
-
-               for ( p=template->category_ids; p != NULL; p=p->next ) {
-
-                       g_free (p->data);
-                       p->data = NULL;
-
-               }
-               g_list_free (template->category_ids);
-               template->category_ids = NULL;
-
-               for ( p=template->frames; p != NULL; p=p->next ) {
-
-                       frame = (lglTemplateFrame *)p->data;
-
-                       lgl_template_frame_free (frame);
-                       p->data = NULL;
-               }
-               g_list_free (template->frames);
-               template->frames = NULL;
-
-               g_free (template);
-
-       }
-
-}
-
-
-/**
- * lgl_template_alias_dup:
- *   @orig_alias: Alias to duplicate.
- *
- * This function duplicates a template alias structure.
- *
- * Returns:  a newly allocated #lglTemplateAlias structure.
- *
- */
-lglTemplateAlias *
-lgl_template_alias_dup (const lglTemplateAlias *orig_alias)
-{
-       g_return_val_if_fail (orig_alias, NULL);
-
-       return lgl_template_alias_new (orig_alias->brand, orig_alias->part);
-}
-
-
-/**
- * lgl_template_alias_free:
- *   @alias: Alias to free.
- *
- * This function frees all memory associated with given template alias structure.
- *
- */
-void
-lgl_template_alias_free (lglTemplateAlias *alias)
-{
-
-       if ( alias != NULL )
-        {
-               g_free (alias->brand);
-               alias->brand = NULL;
-
-               g_free (alias->part);
-               alias->part = NULL;
-
-               g_free (alias);
-       }
-}
-
-
-/**
- * lgl_template_frame_dup:
- *   @orig_frame: Frame to duplicate.
- *
- * This function duplicates a template frame structure.
- *
- * Returns:  a newly allocated #lglTemplateFrame structure.
- *
- */
-lglTemplateFrame *
-lgl_template_frame_dup (const lglTemplateFrame *orig_frame)
-{
-       lglTemplateFrame    *frame;
-       GList               *p;
-       lglTemplateLayout   *layout;
-       lglTemplateMarkup   *markup;
-
-       g_return_val_if_fail (orig_frame, NULL);
-
-       switch (orig_frame->shape) {
-
-       case LGL_TEMPLATE_FRAME_SHAPE_RECT:
-               frame =
-                       lgl_template_frame_rect_new (orig_frame->all.id,
-                                                     orig_frame->rect.w,
-                                                     orig_frame->rect.h,
-                                                     orig_frame->rect.r,
-                                                     orig_frame->rect.x_waste,
-                                                     orig_frame->rect.y_waste);
-               break;
-
-       case LGL_TEMPLATE_FRAME_SHAPE_ROUND:
-               frame =
-                       lgl_template_frame_round_new (orig_frame->all.id,
-                                                      orig_frame->round.r,
-                                                      orig_frame->round.waste);
-               break;
-
-       case LGL_TEMPLATE_FRAME_SHAPE_CD:
-               frame =
-                       lgl_template_frame_cd_new (orig_frame->all.id,
-                                                   orig_frame->cd.r1,
-                                                   orig_frame->cd.r2,
-                                                   orig_frame->cd.w,
-                                                   orig_frame->cd.h,
-                                                   orig_frame->cd.waste);
-               break;
-
-       default:
-               return NULL;
-               break;
-       }
-
-       for ( p=orig_frame->all.layouts; p != NULL; p=p->next ) {
-
-               layout = (lglTemplateLayout *)p->data;
-
-               lgl_template_frame_add_layout (frame, lgl_template_layout_dup (layout));
-       }
-
-       for ( p=orig_frame->all.markups; p != NULL; p=p->next ) {
-
-               markup = (lglTemplateMarkup *)p->data;
-
-               lgl_template_frame_add_markup (frame, lgl_template_markup_dup (markup));
-       }
-
-       return frame;
-}
-
-
-/**
- * lgl_template_frame_free:
- *   @frame: Frame to free.
- *
- * This function frees all memory associated with given template frame structure.
- *
- */
-void
-lgl_template_frame_free (lglTemplateFrame *frame)
-{
-       GList                *p;
-       lglTemplateLayout    *layout;
-       lglTemplateMarkup    *markup;
-
-       if ( frame != NULL ) {
-
-               g_free (frame->all.id);
-               frame->all.id = NULL;
-
-               for ( p=frame->all.layouts; p != NULL; p=p->next ) {
-
-                       layout = (lglTemplateLayout *)p->data;
-
-                       lgl_template_layout_free (layout);
-                       p->data = NULL;
-               }
-               g_list_free (frame->all.layouts);
-               frame->all.layouts = NULL;
-
-               for ( p=frame->all.markups; p != NULL; p=p->next ) {
-
-                       markup = (lglTemplateMarkup *)p->data;
-
-                       lgl_template_markup_free (markup);
-                       p->data = NULL;
-               }
-               g_list_free (frame->all.markups);
-               frame->all.markups = NULL;
-
-               g_free (frame);
-
-       }
-
-}
-
-
-/**
- * lgl_template_layout_dup:
- *   @orig_layout: Layout to duplicate.
- *
- * This function duplicates a template layout structure.
- *
- * Returns:  a newly allocated #lglTemplateLayout structure.
- *
- */
-lglTemplateLayout *
-lgl_template_layout_dup (const lglTemplateLayout *orig_layout)
-{
-       lglTemplateLayout *layout;
-
-       g_return_val_if_fail (orig_layout, NULL);
-
-       layout = g_new0 (lglTemplateLayout, 1);
-
-       /* copy contents */
-       *layout = *orig_layout;
-
-       return layout;
-}
-
-
-/**
- * lgl_template_layout_free:
- *   @layout: Layout to free.
- *
- * This function frees all memory associated with given template layout structure.
- *
- */
-void
-lgl_template_layout_free (lglTemplateLayout *layout)
-{
-       g_free (layout);
-}
-
-
-/**
- * lgl_template_markup_dup:
- *   @orig_markup: Markup to duplicate.
- *
- * This function duplicates a template markup structure.
- *
- * Returns:  a newly allocated #lglTemplateMarkup structure.
- *
- */
-lglTemplateMarkup *
-lgl_template_markup_dup (const lglTemplateMarkup *orig_markup)
-{
-       lglTemplateMarkup *markup;
-
-       g_return_val_if_fail (orig_markup, NULL);
-
-       markup = g_new0 (lglTemplateMarkup, 1);
-
-       *markup = *orig_markup;
-
-       return markup;
-}
-
-
-/**
- * lgl_template_markup_free:
- *   @markup: Markup to free.
- *
- * This function frees all memory associated with given template markup structure.
- *
- */
-void
-lgl_template_markup_free (lglTemplateMarkup *markup)
-{
-       g_free (markup);
-}
-
-
-static gint
-compare_origins (gconstpointer a,
-                gconstpointer b,
-                gpointer      user_data)
-{
-       const lglTemplateOrigin *a_origin = a, *b_origin = b;
-
-       if ( a_origin->y < b_origin->y ) {
-               return -1;
-       } else if ( a_origin->y > b_origin->y ) {
-               return +1;
-       } else {
-               if ( a_origin->x < b_origin->x ) {
-                       return -1;
-               } else if ( a_origin->x > b_origin->x ) {
-                       return +1;
-               } else {
-                       return 0; /* hopefully 2 labels won't have the same origin */
-               }
-       }
-}
-
diff --git a/libglabels/template.h b/libglabels/template.h
deleted file mode 100644 (file)
index cbcbccf..0000000
+++ /dev/null
@@ -1,380 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (LIBGLABELS) Template library for GLABELS
- *
- *  template.h:  template module header file
- *
- *  Copyright (C) 2001-2006  Jim Evins <evins@snaught.com>.
- *
- *  This file is part of the LIBGLABELS library.
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License as published by the Free Software Foundation; either
- *  version 2 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public
- *  License along with this library; if not, write to the Free
- *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- *  MA 02111-1307, USA
- */
-
-#ifndef __TEMPLATE_H__
-#define __TEMPLATE_H__
-
-#include <glib/gtypes.h>
-#include <glib/glist.h>
-
-G_BEGIN_DECLS
-
-typedef struct _lglTemplate                lglTemplate;
-
-typedef struct _lglTemplateAlias           lglTemplateAlias;
-
-typedef union  _lglTemplateFrame           lglTemplateFrame;
-typedef struct _lglTemplateFrameAll        lglTemplateFrameAll;
-typedef struct _lglTemplateFrameRect       lglTemplateFrameRect;
-typedef struct _lglTemplateFrameRound      lglTemplateFrameRound;
-typedef struct _lglTemplateFrameCD         lglTemplateFrameCD;
-
-typedef struct _lglTemplateLayout          lglTemplateLayout;
-
-typedef union  _lglTemplateMarkup          lglTemplateMarkup;
-typedef struct _lglTemplateMarkupMargin    lglTemplateMarkupMargin;
-typedef struct _lglTemplateMarkupLine      lglTemplateMarkupLine;
-typedef struct _lglTemplateMarkupCircle    lglTemplateMarkupCircle;
-typedef struct _lglTemplateMarkupRect      lglTemplateMarkupRect;
-
-typedef struct _lglTemplateOrigin          lglTemplateOrigin;
-
-/*
- *   Top-level Template Structure
- */
-struct _lglTemplate {
-
-       gchar               *brand;
-        gchar               *part;
-       gchar               *description;
-       gchar               *paper_id;
-       gdouble              page_width;
-       gdouble              page_height;
-
-       /* List of (lglTemplateAlias *) aliase structures. */
-       GList               *aliases;
-
-        /* List of (gchar *) category ids. */
-       GList               *category_ids;
-
-       /* List of (lglTemplateFrame *) label frame structures.
-        * Currently glabels only supports a single label frame per
-        * template. */
-       GList               *frames;
-
-};
-
-
-/*
- *   Top-level Template Structure
- */
-struct _lglTemplateAlias {
-
-       gchar               *brand;
-        gchar               *part;
-
-};
-
-/*
- *   Possible Frame Shapes
- */
-typedef enum {
-       LGL_TEMPLATE_FRAME_SHAPE_RECT,
-       LGL_TEMPLATE_FRAME_SHAPE_ROUND,
-       LGL_TEMPLATE_FRAME_SHAPE_CD,
-} lglTemplateFrameShape;
-
-
-/*
- *   Frame Structure
- */
-struct _lglTemplateFrameAll {
-
-        /* Begin Common Fields */
-       lglTemplateFrameShape shape;
-
-       gchar                *id;       /* Id, currently always "0" */
-       GList                *layouts;  /* List of lglTemplateLayouts */
-       GList                *markups;  /* List of lglTemplateMarkups */
-        /* End Common Fields */
-};
-
-struct _lglTemplateFrameRect {
-
-        /* Begin Common Fields */
-       lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_RECT. */
-
-       gchar                *id;       /* Id, currently always "0" */
-       GList                *layouts;  /* List of lglTemplateLayouts */
-       GList                *markups;  /* List of lglTemplateMarkups */
-        /* End Common Fields */
-
-        gdouble               w;        /* Width */
-        gdouble               h;        /* Height */
-        gdouble               r;        /* Corner radius */
-        gdouble               x_waste;  /* Amount of horiz overprint allowed. */
-        gdouble               y_waste;  /* Amount of vert overprint allowed. */
-};
-
-struct _lglTemplateFrameRound {
-
-        /* Begin Common Fields */
-       lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_ROUND. */
-
-       gchar                *id;       /* Id, currently always "0" */
-       GList                *layouts;  /* List of lglTemplateLayouts */
-       GList                *markups;  /* List of lglTemplateMarkups */
-        /* End Common Fields */
-
-        gdouble               r;      /* Radius */
-        gdouble               waste;  /* Amount of overprint allowed. */
-};
-
-struct _lglTemplateFrameCD {
-
-        /* Begin Common Fields */
-       lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_CD. */
-
-       gchar                *id;       /* Id, currently always "0" */
-       GList                *layouts;  /* List of lglTemplateLayouts */
-       GList                *markups;  /* List of lglTemplateMarkups */
-        /* End Common Fields */
-
-        gdouble               r1;     /* Outer radius */
-        gdouble               r2;     /* Inner radius (hole) */
-        gdouble               w;      /* Clip width, business card CDs */
-        gdouble               h;      /* Clip height, business card CDs */
-        gdouble               waste;  /* Amount of overprint allowed. */
-};
-
-union _lglTemplateFrame{
-
-       lglTemplateFrameShape shape;
-
-       lglTemplateFrameAll   all;
-       lglTemplateFrameRect  rect;
-       lglTemplateFrameRound round;
-       lglTemplateFrameCD    cd;
-};
-
-
-/*
- *   Label Layout Structure
- */
-struct _lglTemplateLayout {
-
-       gint                  nx;  /* Number of labels across */
-       gint                  ny;  /* Number of labels up and down */
-
-       gdouble               x0;  /* Left of grid from left edge of paper */
-       gdouble               y0;  /* Top of grid from top edge of paper */
-
-       gdouble               dx;  /* Horizontal pitch of grid */
-       gdouble               dy;  /* Vertical pitch of grid */
-
-};
-
-
-/*
- * Possible Markup Types
- */
-typedef enum {
-       LGL_TEMPLATE_MARKUP_MARGIN,
-       LGL_TEMPLATE_MARKUP_LINE,
-       LGL_TEMPLATE_MARKUP_CIRCLE,
-       LGL_TEMPLATE_MARKUP_RECT,
-} lglTemplateMarkupType;
-
-
-/*
- *   Label Markup Structure (Helpful lines drawn in glabels to help locate objects)
- */
-struct _lglTemplateMarkupMargin {
-
-       lglTemplateMarkupType  type;  /* Always LGL_TEMPLATE_MARKUP_MARGIN */
-
-        gdouble                size;  /* Margin size */
-};
-
-struct _lglTemplateMarkupLine {
-
-       lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_LINE */
-
-        gdouble                x1, y1; /* 1st endpoint */
-        gdouble                x2, y2; /* 2nd endpoint */
-};
-
-struct _lglTemplateMarkupCircle {
-
-       lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_CIRCLE */
-
-        gdouble                x0, y0; /* Center of circle */
-        gdouble                r;      /* Radius of circle */
-};
-
-struct _lglTemplateMarkupRect {
-
-       lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_RECT */
-
-        gdouble                x1, y1; /* Upper left corner */
-        gdouble                w, h;   /* Width and height. */
-        gdouble                r;      /* Radius of corners. */
-};
-
-union _lglTemplateMarkup {
-
-       lglTemplateMarkupType   type;
-
-       lglTemplateMarkupMargin margin;
-       lglTemplateMarkupLine   line;
-       lglTemplateMarkupCircle circle;
-       lglTemplateMarkupRect   rect;
-};
-
-
-/*
- *  Origin coordinates
- */
-struct _lglTemplateOrigin {
-
-       gdouble               x, y; /* Label origin relative to upper 
-                                    * upper left hand corner of paper */
-
-};
-
-
-
-/* 
- * Template query functions
- */
-gchar                     *lgl_template_get_name             (const lglTemplate   *template);
-
-gboolean                   lgl_template_do_templates_match   (const lglTemplate   *template1,
-                                                              const lglTemplate   *template2);
-
-gboolean                   lgl_template_does_brand_match     (const lglTemplate   *template,
-                                                              const gchar         *brand);
-
-gboolean                   lgl_template_does_page_size_match (const lglTemplate   *template,
-                                                              const gchar         *paper_id);
-
-gboolean                   lgl_template_does_category_match  (const lglTemplate   *template,
-                                                              const gchar         *category_id);
-
-
-/*
- * Frame query functions
- */
-void                 lgl_template_frame_get_size       (const lglTemplateFrame    *frame,
-                                                        gdouble                   *w,
-                                                        gdouble                   *h);
-
-gint                 lgl_template_frame_get_n_labels   (const lglTemplateFrame    *frame);
-
-lglTemplateOrigin   *lgl_template_frame_get_origins    (const lglTemplateFrame    *frame);
-
-
-/*
- * Template Construction
- */
-lglTemplate         *lgl_template_new                  (const gchar          *brand,
-                                                        const gchar          *part,
-                                                        const gchar          *description,
-                                                        const gchar          *paper_id,
-                                                        gdouble               page_width,
-                                                        gdouble               page_height);
-
-void                 lgl_template_add_alias            (lglTemplate          *template,
-                                                        lglTemplateAlias     *alias);
-
-void                 lgl_template_add_category         (lglTemplate          *template,
-                                                        const gchar          *category_id);
-
-void                 lgl_template_add_frame            (lglTemplate          *template,
-                                                        lglTemplateFrame     *frame);
-
-lglTemplateFrame    *lgl_template_frame_rect_new       (const gchar          *id,
-                                                        gdouble               w,
-                                                        gdouble               h,
-                                                        gdouble               r,
-                                                        gdouble               x_waste,
-                                                        gdouble               y_waste);
-
-lglTemplateAlias    *lgl_template_alias_new            (const gchar          *brand,
-                                                        const gchar          *part);
-
-lglTemplateFrame    *lgl_template_frame_round_new      (const gchar          *id,
-                                                        gdouble               r,
-                                                        gdouble               waste);
-
-lglTemplateFrame    *lgl_template_frame_cd_new         (const gchar          *id,
-                                                        gdouble               r1,
-                                                        gdouble               r2,
-                                                        gdouble               w,
-                                                        gdouble               h,
-                                                        gdouble               waste);
-
-void                 lgl_template_frame_add_layout     (lglTemplateFrame     *frame,
-                                                        lglTemplateLayout    *layout);
-
-void                 lgl_template_frame_add_markup     (lglTemplateFrame     *frame,
-                                                        lglTemplateMarkup    *markup);
-
-lglTemplateLayout   *lgl_template_layout_new           (gint                  nx,
-                                                        gint                  ny,
-                                                        gdouble               x0,
-                                                        gdouble               y0,
-                                                        gdouble               dx,
-                                                        gdouble               dy);
-
-lglTemplateMarkup   *lgl_template_markup_margin_new    (gdouble               size);
-
-lglTemplateMarkup   *lgl_template_markup_line_new      (gdouble               x1,
-                                                        gdouble               y1,
-                                                        gdouble               x2,
-                                                        gdouble               y2);
-
-lglTemplateMarkup   *lgl_template_markup_circle_new    (gdouble               x0,
-                                                        gdouble               y0,
-                                                        gdouble               r);
-
-lglTemplateMarkup   *lgl_template_markup_rect_new      (gdouble               x1,
-                                                        gdouble               y1,
-                                                        gdouble               w,
-                                                        gdouble               h,
-                                                        gdouble               r);
-
-lglTemplate         *lgl_template_dup                  (const lglTemplate    *orig_template);
-
-void                 lgl_template_free                 (lglTemplate          *template);
-
-lglTemplateAlias    *lgl_template_alias_dup            (const lglTemplateAlias     *orig_alias);
-void                 lgl_template_alias_free           (lglTemplateAlias           *alias);
-
-lglTemplateFrame    *lgl_template_frame_dup            (const lglTemplateFrame     *orig_frame);
-void                 lgl_template_frame_free           (lglTemplateFrame           *frame);
-
-lglTemplateLayout   *lgl_template_layout_dup           (const lglTemplateLayout    *orig_layout);
-void                 lgl_template_layout_free          (lglTemplateLayout          *layout);
-
-lglTemplateMarkup   *lgl_template_markup_dup           (const lglTemplateMarkup    *orig_markup);
-void                 lgl_template_markup_free          (lglTemplateMarkup          *markup);
-
-
-G_END_DECLS
-
-#endif
diff --git a/libglabels/xml-category.c b/libglabels/xml-category.c
deleted file mode 100644 (file)
index 0e759c9..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- *  (LIBGLABELS) Template library for GLABELS
- *
- *  xml-category.c:  category xml module
- *
- *  Copyright (C) 2006  Jim Evins <evins@snaught.com>.
- *
- *  This file is part of the LIBGLABELS library.
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License as published by the Free Software Foundation; either
- *  version 2 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public
- *  License along with this library; if not, write to the Free
- *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- *  MA 02111-1307, USA
- */
-#include <config.h>
-
-#include "xml-category.h"
-
-#include <glib/gi18n.h>
-#include <glib/gmessages.h>
-#include <string.h>
-#include <libintl.h>
-
-#include "libglabels-private.h"
-
-#include "xml.h"
-
-/*===========================================*/
-/* Private types                             */
-/*===========================================*/
-
-/*===========================================*/
-/* Private globals                           */
-/*===========================================*/
-
-/*===========================================*/
-/* Local function prototypes                 */
-/*===========================================*/
-
-
-/**
- * lgl_xml_category_read_categories_from_file:
- * @utf8_filename:       Filename of categories file (name encoded as UTF-8)
- *
- * Read category definitions from a file.
- *
- * Returns: a list of #lglCategory structures.
- *
- */
-GList *
-lgl_xml_category_read_categories_from_file (gchar *utf8_filename)
-{
-       gchar      *filename;
-       GList      *categories;
-       xmlDocPtr   categories_doc;
-
-       LIBXML_TEST_VERSION;
-
-       filename = g_filename_from_utf8 (utf8_filename, -1, NULL, NULL, NULL);
-       if (!filename) {
-               g_message ("Utf8 filename conversion error");
-               return NULL;
-       }
-
-       categories_doc = xmlParseFile (filename);
-       if (!categories_doc) {
-               g_message ("\"%s\" is not a glabels category file (not XML)",
-                          filename);
-               return NULL;
-       }
-
-       categories = lgl_xml_category_parse_categories_doc (categories_doc);
-
-       g_free (filename);
-       xmlFreeDoc (categories_doc);
-
-       return categories;
-}
-
-
-/**
- * lgl_xml_category_parse_categories_doc:
- * @categories_doc:  libxml #xmlDocPtr tree, representing a categories
- * definition file.
- *
- * Read category definitions from a libxml #xmlDocPtr tree.
- *
- * Returns: a list of #lglCategory structures.
- *
- */
-GList *
-lgl_xml_category_parse_categories_doc (xmlDocPtr  categories_doc)
-{
-       GList       *categories = NULL;
-       xmlNodePtr   root, node;
-       lglCategory *category;
-
-       LIBXML_TEST_VERSION;
-
-       root = xmlDocGetRootElement (categories_doc);
-       if (!root || !root->name) {
-               g_message ("\"%s\" is not a glabels category file (no root node)",
-                          categories_doc->name);
-               xmlFreeDoc (categories_doc);
-               return categories;
-       }
-       if (!lgl_xml_is_node (root, "Glabels-categories")) {
-               g_message ("\"%s\" is not a glabels category file (wrong root node)",
-                          categories_doc->name);
-               xmlFreeDoc (categories_doc);
-               return categories;
-       }
-
-       for (node = root->xmlChildrenNode; node != NULL; node = node->next) {
-
-               if (lgl_xml_is_node (node, "Category")) {
-                       category = lgl_xml_category_parse_category_node (node);
-                       categories = g_list_append (categories, category);
-               } else {
-                       if ( !xmlNodeIsText(node) ) {
-                               if (!lgl_xml_is_node (node, "comment")) {
-                                       g_message ("bad node =  \"%s\"",node->name);
-                               }
-                       }
-               }
-       }
-
-       return categories;
-}
-
-
-/**
- * lgl_xml_category_parse_category_node:
- * @category_node:  libxml #xmlNodePtr category node from a #xmlDocPtr tree.
- *
- * Read a single category definition from a libxml #xmlNodePtr node.
- *
- * Returns: a pointer to a newly created #lglCategory structure.
- *
- */
-lglCategory *
-lgl_xml_category_parse_category_node (xmlNodePtr category_node)
-{
-       lglCategory           *category;
-       gchar                 *id, *name;
-
-       LIBXML_TEST_VERSION;
-
-       id   = lgl_xml_get_prop_string (category_node, "id", NULL);
-       name = lgl_xml_get_prop_i18n_string (category_node, "name", NULL);
-
-       category = lgl_category_new (id, name);
-
-       g_free (id);
-       g_free (name);
-
-       return category;
-}
-
diff --git a/libglabels/xml-category.h b/libglabels/xml-category.h
deleted file mode 100644 (file)
index ef01d9f..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- *  (LIBGLABELS) Template library for GLABELS
- *
- *  xml-category.h:  category xml module header file
- *
- *  Copyright (C) 2006  Jim Evins <evins@snaught.com>.
- *
- *  This file is part of the LIBGLABELS library.
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License as published by the Free Software Foundation; either
- *  version 2 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public
- *  License along with this library; if not, write to the Free
- *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- *  MA 02111-1307, USA
- */
-
-#ifndef __XML_CATEGORY_H__
-#define __XML_CATEGORY_H__
-
-#include <glib/gtypes.h>
-#include <glib/glist.h>
-#include <libxml/tree.h>
-
-#include "category.h"
-
-G_BEGIN_DECLS
-
-GList       *lgl_xml_category_read_categories_from_file (gchar        *utf8_filename);
-
-GList       *lgl_xml_category_parse_categories_doc      (xmlDocPtr     categories_doc);
-
-lglCategory *lgl_xml_category_parse_category_node       (xmlNodePtr    category_node);
-
-
-G_END_DECLS
-
-#endif /* __XML_CATEGORY_H__ */
diff --git a/libglabels/xml-paper.c b/libglabels/xml-paper.c
deleted file mode 100644 (file)
index fc6f07f..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- *  (LIBGLABELS) Template library for GLABELS
- *
- *  xml-paper.c:  paper xml module
- *
- *  Copyright (C) 2003, 2004  Jim Evins <evins@snaught.com>.
- *
- *  This file is part of the LIBGLABELS library.
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License as published by the Free Software Foundation; either
- *  version 2 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public
- *  License along with this library; if not, write to the Free
- *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- *  MA 02111-1307, USA
- */
-#include <config.h>
-
-#include "xml-paper.h"
-
-#include <glib/gi18n.h>
-#include <glib/gmessages.h>
-#include <string.h>
-#include <libintl.h>
-
-#include "libglabels-private.h"
-
-#include "xml.h"
-
-/*===========================================*/
-/* Private types                             */
-/*===========================================*/
-
-/*===========================================*/
-/* Private globals                           */
-/*===========================================*/
-
-/*===========================================*/
-/* Local function prototypes                 */
-/*===========================================*/
-
-
-/**
- * lgl_xml_paper_read_papers_from_file:
- * @utf8_filename:       Filename of papers file (name encoded as UTF-8)
- *
- * Read paper definitions from a file.
- *
- * Returns: a list of #lglPaper structures.
- *
- */
-GList *
-lgl_xml_paper_read_papers_from_file (gchar *utf8_filename)
-{
-       gchar      *filename;
-       GList      *papers;
-       xmlDocPtr   papers_doc;
-
-       LIBXML_TEST_VERSION;
-
-       filename = g_filename_from_utf8 (utf8_filename, -1, NULL, NULL, NULL);
-       if (!filename) {
-               g_message ("Utf8 filename conversion error");
-               return NULL;
-       }
-
-       papers_doc = xmlParseFile (filename);
-       if (!papers_doc) {
-               g_message ("\"%s\" is not a glabels paper file (not XML)",
-                          filename);
-               return NULL;
-       }
-
-       papers = lgl_xml_paper_parse_papers_doc (papers_doc);
-
-       g_free (filename);
-       xmlFreeDoc (papers_doc);
-
-       return papers;
-}
-
-
-/**
- * lgl_xml_paper_parse_papers_doc:
- * @papers_doc:  libxml #xmlDocPtr tree, representing a papers definition file.
- *
- * Read paper definitions from a libxml #xmlDocPtr tree.
- *
- * Returns: a list of #lglPaper structures.
- *
- */
-GList *
-lgl_xml_paper_parse_papers_doc (xmlDocPtr  papers_doc)
-{
-       GList      *papers = NULL;
-       xmlNodePtr  root, node;
-       lglPaper   *paper;
-
-       LIBXML_TEST_VERSION;
-
-       root = xmlDocGetRootElement (papers_doc);
-       if (!root || !root->name) {
-               g_message ("\"%s\" is not a glabels paper file (no root node)",
-                          papers_doc->name);
-               xmlFreeDoc (papers_doc);
-               return papers;
-       }
-       if (!lgl_xml_is_node (root, "Glabels-paper-sizes")) {
-               g_message ("\"%s\" is not a glabels paper file (wrong root node)",
-                          papers_doc->name);
-               xmlFreeDoc (papers_doc);
-               return papers;
-       }
-
-       for (node = root->xmlChildrenNode; node != NULL; node = node->next) {
-
-               if (lgl_xml_is_node (node, "Paper-size")) {
-                       paper = lgl_xml_paper_parse_paper_node (node);
-                       papers = g_list_append (papers, paper);
-               } else {
-                       if ( !xmlNodeIsText(node) ) {
-                               if (!lgl_xml_is_node (node, "comment")) {
-                                       g_message ("bad node =  \"%s\"",node->name);
-                               }
-                       }
-               }
-       }
-
-       return papers;
-}
-
-
-/**
- * lgl_xml_paper_parse_paper_node:
- * @paper_node:  libxml #xmlNodePtr paper node from a #xmlDocPtr tree.
- *
- * Read a single paper definition from a libxml #xmlNodePtr node.
- *
- * Returns: a pointer to a newly created #lglPaper structure.
- *
- */
-lglPaper *
-lgl_xml_paper_parse_paper_node (xmlNodePtr paper_node)
-{
-       lglPaper              *paper;
-       gchar                 *id, *name, *pwg_size;
-       gdouble                width, height;
-
-       LIBXML_TEST_VERSION;
-
-       id   = lgl_xml_get_prop_string (paper_node, "id", NULL);
-
-       name = lgl_xml_get_prop_i18n_string (paper_node, "name", NULL);
-
-       width  = lgl_xml_get_prop_length (paper_node, "width", 0);
-       height = lgl_xml_get_prop_length (paper_node, "height", 0);
-
-       pwg_size = lgl_xml_get_prop_string (paper_node, "pwg_size", NULL);
-
-       paper = lgl_paper_new (id, name, width, height, pwg_size);
-
-       g_free (id);
-       g_free (name);
-       g_free (pwg_size);
-
-       return paper;
-}
-
diff --git a/libglabels/xml-paper.h b/libglabels/xml-paper.h
deleted file mode 100644 (file)
index df90bcf..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- *  (LIBGLABELS) Template library for GLABELS
- *
- *  xml-paper.h:  paper xml module header file
- *
- *  Copyright (C) 2003, 2004  Jim Evins <evins@snaught.com>.
- *
- *  This file is part of the LIBGLABELS library.
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License as published by the Free Software Foundation; either
- *  version 2 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public
- *  License along with this library; if not, write to the Free
- *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- *  MA 02111-1307, USA
- */
-
-#ifndef __XML_PAPER_H__
-#define __XML_PAPER_H__
-
-#include <glib/gtypes.h>
-#include <glib/glist.h>
-#include <libxml/tree.h>
-
-#include "paper.h"
-
-G_BEGIN_DECLS
-
-GList       *lgl_xml_paper_read_papers_from_file (gchar        *utf8_filename);
-
-GList       *lgl_xml_paper_parse_papers_doc      (xmlDocPtr     papers_doc);
-
-lglPaper    *lgl_xml_paper_parse_paper_node      (xmlNodePtr    paper_node);
-
-
-G_END_DECLS
-
-#endif /* __XML_PAPER_H__ */
diff --git a/libglabels/xml-template.c b/libglabels/xml-template.c
deleted file mode 100644 (file)
index 9ed25cd..0000000
+++ /dev/null
@@ -1,984 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (LIBGLABELS) Template library for GLABELS
- *
- *  xml-template.c:  template xml module
- *
- *  Copyright (C) 2001-2006  Jim Evins <evins@snaught.com>.
- *
- *  This file is part of the LIBGLABELS library.
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License as published by the Free Software Foundation; either
- *  version 2 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public
- *  License along with this library; if not, write to the Free
- *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- *  MA 02111-1307, USA
- */
-#include <config.h>
-
-#include "xml-template.h"
-
-#include <glib/gi18n.h>
-#include <glib/gmessages.h>
-#include <string.h>
-#include <libintl.h>
-
-#include "libglabels-private.h"
-
-#include "db.h"
-#include "xml.h"
-
-/*===========================================*/
-/* Private types                             */
-/*===========================================*/
-
-/*===========================================*/
-/* Private globals                           */
-/*===========================================*/
-
-/*===========================================*/
-/* Local function prototypes                 */
-/*===========================================*/
-static void  xml_parse_meta_node            (xmlNodePtr              label_node,
-                                            lglTemplate            *template);
-static void  xml_parse_label_rectangle_node (xmlNodePtr              label_node,
-                                            lglTemplate            *template);
-static void  xml_parse_label_round_node     (xmlNodePtr              label_node,
-                                            lglTemplate            *template);
-static void  xml_parse_label_cd_node        (xmlNodePtr              label_node,
-                                            lglTemplate            *template);
-static void  xml_parse_layout_node          (xmlNodePtr              layout_node,
-                                            lglTemplateFrame       *frame);
-static void  xml_parse_markup_margin_node   (xmlNodePtr              markup_node,
-                                            lglTemplateFrame       *frame);
-static void  xml_parse_markup_line_node     (xmlNodePtr              markup_node,
-                                            lglTemplateFrame       *frame);
-static void  xml_parse_markup_circle_node   (xmlNodePtr              markup_node,
-                                            lglTemplateFrame       *frame);
-static void  xml_parse_markup_rect_node     (xmlNodePtr              markup_node,
-                                            lglTemplateFrame       *frame);
-static void  xml_parse_alias_node           (xmlNodePtr              alias_node,
-                                            lglTemplate            *template);
-
-static void  xml_create_meta_node           (const gchar                  *category,
-                                            xmlNodePtr                    root,
-                                            const xmlNsPtr                ns);
-static void  xml_create_label_node          (const lglTemplateFrame       *frame,
-                                            xmlNodePtr                    root,
-                                            const xmlNsPtr                ns);
-static void  xml_create_layout_node         (const lglTemplateLayout      *layout,
-                                            xmlNodePtr                    root,
-                                            const xmlNsPtr                ns);
-static void  xml_create_markup_margin_node  (const lglTemplateMarkup      *margin,
-                                            xmlNodePtr                    root,
-                                            const xmlNsPtr                ns);
-static void  xml_create_markup_line_node    (const lglTemplateMarkup      *line,
-                                            xmlNodePtr                    root,
-                                            const xmlNsPtr                ns);
-static void  xml_create_markup_circle_node  (const lglTemplateMarkup      *circle,
-                                            xmlNodePtr                    root,
-                                            const xmlNsPtr                ns);
-static void  xml_create_markup_rect_node    (const lglTemplateMarkup      *circle,
-                                            xmlNodePtr                    root,
-                                            const xmlNsPtr                ns);
-static void  xml_create_alias_node          (const lglTemplateAlias       *alias,
-                                            xmlNodePtr                    root,
-                                            const xmlNsPtr                ns);
-
-
-/**
- * lgl_xml_template_read_templates_from_file:
- * @utf8_filename:       Filename of papers file (name encoded as UTF-8)
- *
- * Read glabels templates from template file.
- *
- * Returns: a list of #lglTemplate structures.
- *
- */
-GList *
-lgl_xml_template_read_templates_from_file (const gchar *utf8_filename)
-{
-       gchar      *filename;
-       xmlDocPtr   templates_doc;
-       GList      *templates = NULL;
-
-       LIBXML_TEST_VERSION;
-
-       filename = g_filename_from_utf8 (utf8_filename, -1, NULL, NULL, NULL);
-       if (!filename) {
-               g_message ("Utf8 filename conversion error");
-               return NULL;
-       }
-
-       templates_doc = xmlParseFile (filename);
-       if (!templates_doc) {
-               g_message ("\"%s\" is not a glabels template file (not XML)",
-                     filename);
-               return templates;
-       }
-
-       templates = lgl_xml_template_parse_templates_doc (templates_doc);
-
-       g_free (filename);
-       xmlFreeDoc (templates_doc);
-
-       return templates;
-}
-
-
-/**
- * lgl_xml_template_parse_templates_doc:
- * @templates_doc:  libxml #xmlDocPtr tree, representing template file.
- *
- * Read glabels templates from a libxml #xmlDocPtr tree.
- *
- * Returns: a list of #lglTemplate structures.
- *
- */
-GList *
-lgl_xml_template_parse_templates_doc (const xmlDocPtr templates_doc)
-{
-       
-       GList       *templates = NULL;
-       xmlNodePtr   root, node;
-       lglTemplate *template;
-
-       LIBXML_TEST_VERSION;
-
-       root = xmlDocGetRootElement (templates_doc);
-       if (!root || !root->name) {
-               g_message ("\"%s\" is not a glabels template file (no root node)",
-                          templates_doc->URL);
-               return templates;
-       }
-       if (!lgl_xml_is_node (root, "Glabels-templates")) {
-               g_message ("\"%s\" is not a glabels template file (wrong root node)",
-                     templates_doc->URL);
-               return templates;
-       }
-
-       for (node = root->xmlChildrenNode; node != NULL; node = node->next) {
-
-               if (lgl_xml_is_node (node, "Template")) {
-                       template = lgl_xml_template_parse_template_node (node);
-                       templates = g_list_append (templates, template);
-               } else {
-                       if ( !xmlNodeIsText(node) ) {
-                               if (!lgl_xml_is_node (node,"comment")) {
-                                       g_message ("bad node =  \"%s\"",node->name);
-                               }
-                       }
-               }
-       }
-
-       return templates;
-}
-
-
-/**
- * lgl_xml_template_parse_template_node:
- * @template_node:  libxml #xmlNodePtr template node from a #xmlDocPtr tree.
- *
- * Read a single glabels template from a libxml #xmlNodePtr node.
- *
- * Returns: a pointer to a newly created #lglTemplate structure.
- *
- */
-lglTemplate *
-lgl_xml_template_parse_template_node (const xmlNodePtr template_node)
-{
-       gchar                 *brand;
-        gchar                 *part;
-       gchar                 *name;
-       gchar                 *description;
-       gchar                 *paper_id;
-       gdouble                page_width, page_height;
-       lglPaper               *paper = NULL;
-       lglTemplate           *template;
-       xmlNodePtr             node;
-        gchar                **v;
-
-       brand = lgl_xml_get_prop_string (template_node, "brand", NULL);
-       part  = lgl_xml_get_prop_string (template_node, "part", NULL);
-        if (!brand || !part)
-        {
-                name = lgl_xml_get_prop_string (template_node, "name", NULL);
-                if (name)
-                {
-                        v = g_strsplit (name, " ", 2);
-                        brand = g_strdup (v[0]);
-                        part  = g_strchug (g_strdup (v[1]));
-                        g_free (name);
-                        g_strfreev (v);
-                        
-                }
-                else
-                {
-                       g_message (_("Missing name or brand/part attributes."));
-                }
-        }
-
-       description = lgl_xml_get_prop_i18n_string (template_node, "description", NULL);
-       paper_id = lgl_xml_get_prop_string (template_node, "size", NULL);
-
-       if (lgl_db_is_paper_id_other (paper_id)) {
-
-               page_width = lgl_xml_get_prop_length (template_node, "width", 0);
-               page_height = lgl_xml_get_prop_length (template_node, "height", 0);
-
-       } else {
-               paper = lgl_db_lookup_paper_from_id (paper_id);
-               if (paper == NULL) {
-                       /* This should always be an id, but just in case a name
-                          slips by! */
-                       g_message (_("Unknown page size id \"%s\", trying as name"),
-                                  paper_id);
-                       paper = lgl_db_lookup_paper_from_name (paper_id);
-                       g_free (paper_id);
-                       paper_id = g_strdup (paper->id);
-               }
-               if (paper != NULL) {
-                       page_width  = paper->width;
-                       page_height = paper->height;
-               } else {
-                       page_width  = 612;
-                       page_height = 792;
-                       g_message (_("Unknown page size id or name \"%s\""),
-                                  paper_id);
-               }
-               lgl_paper_free (paper);
-               paper = NULL;
-       }
-
-       template = lgl_template_new (brand, part, description,
-                                     paper_id, page_width, page_height);
-
-       for (node = template_node->xmlChildrenNode; node != NULL;
-            node = node->next) {
-               if (lgl_xml_is_node (node, "Meta")) {
-                       xml_parse_meta_node (node, template);
-               } else if (lgl_xml_is_node (node, "Label-rectangle")) {
-                       xml_parse_label_rectangle_node (node, template);
-               } else if (lgl_xml_is_node (node, "Label-round")) {
-                       xml_parse_label_round_node (node, template);
-               } else if (lgl_xml_is_node (node, "Label-cd")) {
-                       xml_parse_label_cd_node (node, template);
-               } else if (lgl_xml_is_node (node, "Alias")) {
-                       xml_parse_alias_node (node, template);
-               } else {
-                       if (!xmlNodeIsText (node)) {
-                               if (!lgl_xml_is_node (node,"comment")) {
-                                       g_message ("bad node =  \"%s\"",node->name);
-                               }
-                       }
-               }
-       }
-
-       g_free (brand);
-       g_free (part);
-       g_free (description);
-       g_free (paper_id);
-
-        /*
-         * Create a default full-page frame, if a known frame type was not found.
-         */
-        if ( template->frames == NULL )
-        {
-                lglTemplateFrame    *frame;
-
-                frame = lgl_template_frame_rect_new ("0", page_width, page_height, 0, 0, 0);
-                lgl_template_frame_add_layout (frame, lgl_template_layout_new (1, 1, 0, 0, 0, 0));
-                lgl_template_add_frame (template, frame);
-        }
-
-       return template;
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Parse XML Template->Meta Node.                                 */
-/*--------------------------------------------------------------------------*/
-static void
-xml_parse_meta_node (xmlNodePtr   meta_node,
-                    lglTemplate *template)
-{
-       gchar               *category;
-
-       category = lgl_xml_get_prop_string (meta_node, "category", NULL);
-
-       if (category != NULL)
-       {
-               lgl_template_add_category (template, category);
-               g_free (category);
-       }
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Parse XML Template->Label-rectangle Node.                      */
-/*--------------------------------------------------------------------------*/
-static void
-xml_parse_label_rectangle_node (xmlNodePtr   label_node,
-                               lglTemplate *template)
-{
-       gchar               *id;
-       gchar               *tmp;
-       gdouble              x_waste, y_waste;
-       gdouble              w, h, r;
-       lglTemplateFrame    *frame;
-       xmlNodePtr           node;
-
-       id      = lgl_xml_get_prop_string (label_node, "id", NULL);
-
-       if ((tmp = lgl_xml_get_prop_string (label_node, "waste", NULL))) {
-               /* Handle single "waste" property. */
-               x_waste = y_waste = lgl_xml_get_prop_length (label_node, "waste", 0);
-               g_free (tmp);
-       } else {
-               x_waste = lgl_xml_get_prop_length (label_node, "x_waste", 0);
-               y_waste = lgl_xml_get_prop_length (label_node, "y_waste", 0);
-       }
-
-       w       = lgl_xml_get_prop_length (label_node, "width", 0);
-       h       = lgl_xml_get_prop_length (label_node, "height", 0);
-       r       = lgl_xml_get_prop_length (label_node, "round", 0);
-
-       frame = lgl_template_frame_rect_new ((gchar *)id, w, h, r, x_waste, y_waste);
-       lgl_template_add_frame (template, frame);
-
-       for (node = label_node->xmlChildrenNode; node != NULL;
-            node = node->next) {
-               if (lgl_xml_is_node (node, "Layout")) {
-                       xml_parse_layout_node (node, frame);
-               } else if (lgl_xml_is_node (node, "Markup-margin")) {
-                       xml_parse_markup_margin_node (node, frame);
-               } else if (lgl_xml_is_node (node, "Markup-line")) {
-                       xml_parse_markup_line_node (node, frame);
-               } else if (lgl_xml_is_node (node, "Markup-circle")) {
-                       xml_parse_markup_circle_node (node, frame);
-               } else if (lgl_xml_is_node (node, "Markup-rect")) {
-                       xml_parse_markup_rect_node (node, frame);
-               } else if (!xmlNodeIsText (node)) {
-                       if (!lgl_xml_is_node (node, "comment")) {
-                               g_message ("bad node =  \"%s\"",node->name);
-                       }
-               }
-       }
-
-       g_free (id);
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Parse XML Template->Label-round Node.                          */
-/*--------------------------------------------------------------------------*/
-static void
-xml_parse_label_round_node (xmlNodePtr   label_node,
-                           lglTemplate *template)
-{
-       gchar               *id;
-       gdouble              waste;
-       gdouble              r;
-       lglTemplateFrame    *frame;
-       xmlNodePtr           node;
-
-       id    = lgl_xml_get_prop_string (label_node, "id", NULL);
-       waste = lgl_xml_get_prop_length (label_node, "waste", 0);
-       r     = lgl_xml_get_prop_length (label_node, "radius", 0);
-
-       frame = lgl_template_frame_round_new ((gchar *)id, r, waste);
-       lgl_template_add_frame (template, frame);
-
-       for (node = label_node->xmlChildrenNode; node != NULL;
-            node = node->next) {
-               if (lgl_xml_is_node (node, "Layout")) {
-                       xml_parse_layout_node (node, frame);
-               } else if (lgl_xml_is_node (node, "Markup-margin")) {
-                       xml_parse_markup_margin_node (node, frame);
-               } else if (lgl_xml_is_node (node, "Markup-line")) {
-                       xml_parse_markup_line_node (node, frame);
-               } else if (lgl_xml_is_node (node, "Markup-circle")) {
-                       xml_parse_markup_circle_node (node, frame);
-               } else if (lgl_xml_is_node (node, "Markup-rect")) {
-                       xml_parse_markup_rect_node (node, frame);
-               } else if (!xmlNodeIsText (node)) {
-                       if (!lgl_xml_is_node (node, "comment")) {
-                               g_message ("bad node =  \"%s\"",node->name);
-                       }
-               }
-       }
-
-       g_free (id);
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Parse XML Template->Label-cd Node.                             */
-/*--------------------------------------------------------------------------*/
-static void
-xml_parse_label_cd_node (xmlNodePtr   label_node,
-                        lglTemplate *template)
-{
-       gchar               *id;
-       gdouble              waste;
-       gdouble              r1, r2, w, h;
-       lglTemplateFrame    *frame;
-       xmlNodePtr           node;
-
-       id    = lgl_xml_get_prop_string (label_node, "id", NULL);
-       waste = lgl_xml_get_prop_length (label_node, "waste", 0);
-       r1    = lgl_xml_get_prop_length (label_node, "radius", 0);
-       r2    = lgl_xml_get_prop_length (label_node, "hole", 0);
-       w     = lgl_xml_get_prop_length (label_node, "width", 0);
-       h     = lgl_xml_get_prop_length (label_node, "height", 0);
-
-       frame = lgl_template_frame_cd_new ((gchar *)id, r1, r2, w, h, waste);
-       lgl_template_add_frame (template, frame);
-
-       for (node = label_node->xmlChildrenNode; node != NULL;
-            node = node->next) {
-               if (lgl_xml_is_node (node, "Layout")) {
-                       xml_parse_layout_node (node, frame);
-               } else if (lgl_xml_is_node (node, "Markup-margin")) {
-                       xml_parse_markup_margin_node (node, frame);
-               } else if (lgl_xml_is_node (node, "Markup-line")) {
-                       xml_parse_markup_line_node (node, frame);
-               } else if (lgl_xml_is_node (node, "Markup-circle")) {
-                       xml_parse_markup_circle_node (node, frame);
-               } else if (lgl_xml_is_node (node, "Markup-rect")) {
-                       xml_parse_markup_rect_node (node, frame);
-               } else if (!xmlNodeIsText (node)) {
-                       if (!lgl_xml_is_node (node, "comment")) {
-                               g_message ("bad node =  \"%s\"",node->name);
-                       }
-               }
-       }
-
-       g_free (id);
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Parse XML Template->Label->Layout Node.                        */
-/*--------------------------------------------------------------------------*/
-static void
-xml_parse_layout_node (xmlNodePtr          layout_node,
-                      lglTemplateFrame   *frame)
-{
-       gint        nx, ny;
-       gdouble     x0, y0, dx, dy;
-       xmlNodePtr  node;
-
-       nx = lgl_xml_get_prop_int (layout_node, "nx", 1);
-       ny = lgl_xml_get_prop_int (layout_node, "ny", 1);
-
-       x0 = lgl_xml_get_prop_length (layout_node, "x0", 0);
-       y0 = lgl_xml_get_prop_length (layout_node, "y0", 0);
-
-       dx = lgl_xml_get_prop_length (layout_node, "dx", 0);
-       dy = lgl_xml_get_prop_length (layout_node, "dy", 0);
-
-       lgl_template_frame_add_layout (frame, lgl_template_layout_new (nx, ny, x0, y0, dx, dy));
-
-       for (node = layout_node->xmlChildrenNode; node != NULL;
-            node = node->next) {
-               if (!xmlNodeIsText (node)) {
-                       if (!lgl_xml_is_node (node, "comment")) {
-                               g_message ("bad node =  \"%s\"",node->name);
-                       }
-               }
-       }
-
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Parse XML Template->Label->Markup-margin Node.                 */
-/*--------------------------------------------------------------------------*/
-static void
-xml_parse_markup_margin_node (xmlNodePtr          markup_node,
-                             lglTemplateFrame   *frame)
-{
-       gdouble     size;
-       xmlNodePtr  node;
-
-       size = lgl_xml_get_prop_length (markup_node, "size", 0);
-
-       lgl_template_frame_add_markup (frame, lgl_template_markup_margin_new (size));
-
-       for (node = markup_node->xmlChildrenNode; node != NULL;
-            node = node->next) {
-               if (!xmlNodeIsText (node)) {
-                       if (!lgl_xml_is_node (node, "comment")) {
-                               g_message ("bad node =  \"%s\"",node->name);
-                       }
-               }
-       }
-
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Parse XML Template->Label->Markup-line Node.                   */
-/*--------------------------------------------------------------------------*/
-static void
-xml_parse_markup_line_node (xmlNodePtr          markup_node,
-                           lglTemplateFrame   *frame)
-{
-       gdouble     x1, y1, x2, y2;
-       xmlNodePtr  node;
-
-       x1 = lgl_xml_get_prop_length (markup_node, "x1", 0);
-       y1 = lgl_xml_get_prop_length (markup_node, "y1", 0);
-       x2 = lgl_xml_get_prop_length (markup_node, "x2", 0);
-       y2 = lgl_xml_get_prop_length (markup_node, "y2", 0);
-
-       lgl_template_frame_add_markup (frame, lgl_template_markup_line_new (x1, y1, x2, y2));
-
-       for (node = markup_node->xmlChildrenNode; node != NULL;
-            node = node->next) {
-               if (!xmlNodeIsText (node)) {
-                       if (!lgl_xml_is_node (node, "comment")) {
-                               g_message ("bad node =  \"%s\"",node->name);
-                       }
-               }
-       }
-
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Parse XML Template->Label->Markup-circle Node.                 */
-/*--------------------------------------------------------------------------*/
-static void
-xml_parse_markup_circle_node (xmlNodePtr          markup_node,
-                             lglTemplateFrame   *frame)
-{
-       gdouble     x0, y0, r;
-       xmlNodePtr  node;
-
-       x0 = lgl_xml_get_prop_length (markup_node, "x0", 0);
-       y0 = lgl_xml_get_prop_length (markup_node, "y0", 0);
-       r  = lgl_xml_get_prop_length (markup_node, "radius", 0);
-
-       lgl_template_frame_add_markup (frame, lgl_template_markup_circle_new (x0, y0, r));
-
-       for (node = markup_node->xmlChildrenNode; node != NULL;
-            node = node->next) {
-               if (!xmlNodeIsText (node)) {
-                       if (!lgl_xml_is_node (node, "comment")) {
-                               g_message ("bad node =  \"%s\"",node->name);
-                       }
-               }
-       }
-
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Parse XML Template->Label->Markup-rect Node.                   */
-/*--------------------------------------------------------------------------*/
-static void
-xml_parse_markup_rect_node (xmlNodePtr          markup_node,
-                           lglTemplateFrame   *frame)
-{
-       gdouble     x1, y1, w, h, r;
-       xmlNodePtr  node;
-
-       x1 = lgl_xml_get_prop_length (markup_node, "x1", 0);
-       y1 = lgl_xml_get_prop_length (markup_node, "y1", 0);
-       w  = lgl_xml_get_prop_length (markup_node, "w", 0);
-       h  = lgl_xml_get_prop_length (markup_node, "h", 0);
-       r  = lgl_xml_get_prop_length (markup_node, "r", 0);
-
-       lgl_template_frame_add_markup (frame, lgl_template_markup_rect_new (x1, y1, w, h, r));
-
-       for (node = markup_node->xmlChildrenNode; node != NULL;
-            node = node->next) {
-               if (!xmlNodeIsText (node)) {
-                       if (!lgl_xml_is_node (node, "comment")) {
-                               g_message ("bad node =  \"%s\"",node->name);
-                       }
-               }
-       }
-
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Parse XML Template->Alias Node.                                */
-/*--------------------------------------------------------------------------*/
-static void
-xml_parse_alias_node (xmlNodePtr   alias_node,
-                     lglTemplate *template)
-{
-       gchar             *brand;
-       gchar             *part;
-       gchar             *name;
-        gchar            **v;
-
-       brand = lgl_xml_get_prop_string (alias_node, "brand", NULL);
-       part  = lgl_xml_get_prop_string (alias_node, "part", NULL);
-        if (!brand || !part)
-        {
-                name = lgl_xml_get_prop_string (alias_node, "name", NULL);
-                if (name)
-                {
-                       g_message (_("Missing required \"brand\" or \"part\" attribute, trying deprecated name."));
-                        v = g_strsplit (name, " ", 2);
-                        brand = g_strdup (v[0]);
-                        part  = g_strdup (v[1]);
-                        g_free (name);
-                        g_strfreev (v);
-                        
-                }
-                else
-                {
-                       g_message (_("Name attribute also missing."));
-                }
-        }
-
-       lgl_template_add_alias (template, lgl_template_alias_new (brand, part));
-
-       g_free (brand);
-       g_free (part);
-}
-
-/**
- * lgl_xml_template_write_templates_to_file:
- * @templates:      List of #lglTemplate structures
- * @utf8_filename:  Filename of templates file (name encoded as UTF-8)
- *
- * Write a list of #lglTemplate structures to a glabels XML template file.
- *
- * Returns: the number of bytes written or -1 in case of failure
- *
- */
-gint
-lgl_xml_template_write_templates_to_file (GList       *templates,
-                                          const gchar *utf8_filename)
-{
-       xmlDocPtr    doc;
-       xmlNsPtr     ns;
-       gint         bytes_written;
-       GList       *p;
-       lglTemplate *template;
-       gchar       *filename;
-
-       doc = xmlNewDoc ((xmlChar *)"1.0");
-       doc->xmlRootNode = xmlNewDocNode (doc, NULL, (xmlChar *)"Glabels-templates", NULL);
-
-       ns = xmlNewNs (doc->xmlRootNode, (xmlChar *)LGL_XML_NAME_SPACE, NULL);
-       xmlSetNs (doc->xmlRootNode, ns);
-
-       for (p=templates; p!=NULL; p=p->next) {
-               template = (lglTemplate *)p->data;
-               lgl_xml_template_create_template_node (template, doc->xmlRootNode, ns);
-       }
-
-       filename = g_filename_from_utf8 (utf8_filename, -1, NULL, NULL, NULL);
-       if (!filename)
-        {
-               g_message (_("Utf8 conversion error."));
-                return -1;
-        }
-       else
-        {
-               xmlSetDocCompressMode (doc, 0);
-               bytes_written = xmlSaveFormatFile (filename, doc, TRUE);
-               xmlFreeDoc (doc);
-               g_free (filename);
-                return bytes_written;
-       }
-
-}
-
-
-/**
- * lgl_xml_template_write_template_to_file:
- * @template:       #lglTemplate structure to be written
- * @utf8_filename:  Filename of templates file (name encoded as UTF-8)
- *
- * Write a single #lglTemplate structures to a glabels XML template file.
- *
- * Returns: the number of bytes written or -1 in case of failure
- *
- */
-gint
-lgl_xml_template_write_template_to_file (const lglTemplate  *template,
-                                         const gchar        *utf8_filename)
-{
-       GList     *templates = NULL;
-       gint       bytes_written;
-
-       templates = g_list_append (templates, (gpointer)template);
-
-       bytes_written = lgl_xml_template_write_templates_to_file (templates, utf8_filename);
-
-       g_list_free (templates);
-
-        return bytes_written;
-}
-
-
-/**
- * lgl_xml_template_create_template_node:
- * @template:       #lglTemplate structure to be written
- * @root:           parent node to receive new child node
- * @ns:             a libxml #xmlNsPtr
- *
- * Add a single #lglTemplate child node to given #xmlNodePtr.
- *
- */
-void
-lgl_xml_template_create_template_node (const lglTemplate *template,
-                                       xmlNodePtr         root,
-                                       const xmlNsPtr     ns)
-{
-       xmlNodePtr          node;
-       GList              *p;
-       lglTemplateAlias   *alias;
-       lglTemplateFrame   *frame;
-
-       node = xmlNewChild (root, ns, (xmlChar *)"Template", NULL);
-
-       lgl_xml_set_prop_string (node, "brand", template->brand);
-       lgl_xml_set_prop_string (node, "part", template->part);
-
-       lgl_xml_set_prop_string (node, "size", template->paper_id);
-       if (xmlStrEqual ((xmlChar *)template->paper_id, (xmlChar *)"Other"))
-        {
-
-               lgl_xml_set_prop_length (node, "width", template->page_width);
-               lgl_xml_set_prop_length (node, "height", template->page_height);
-
-       }
-
-       lgl_xml_set_prop_string (node, "description", template->description);
-
-       for ( p=template->aliases; p != NULL; p=p->next ) {
-                alias = (lglTemplateAlias *)p->data;
-               if ( !(xmlStrEqual ((xmlChar *)template->brand, (xmlChar *)alias->brand) &&
-                       xmlStrEqual ((xmlChar *)template->part, (xmlChar *)alias->part)) )
-                {
-                       xml_create_alias_node ( alias, node, ns );
-               }
-       }
-       for ( p=template->category_ids; p != NULL; p=p->next )
-        {
-                xml_create_meta_node ( p->data, node, ns );
-       }
-       for ( p=template->frames; p != NULL; p=p->next )
-        {
-               frame = (lglTemplateFrame *)p->data;
-               xml_create_label_node (frame, node, ns);
-       }
-
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Add XML Template->Meta Node.                                   */
-/*--------------------------------------------------------------------------*/
-static void
-xml_create_meta_node (const gchar      *category,
-                     xmlNodePtr        root,
-                     const xmlNsPtr    ns)
-{
-       xmlNodePtr node;
-
-       node = xmlNewChild (root, ns, (xmlChar *)"Meta", NULL);
-       lgl_xml_set_prop_string (node, "category", category);
-
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Add XML Template->Label Node.                                  */
-/*--------------------------------------------------------------------------*/
-static void
-xml_create_label_node (const lglTemplateFrame  *frame,
-                      xmlNodePtr               root,
-                      const xmlNsPtr           ns)
-{
-       xmlNodePtr        node;
-       GList            *p;
-       lglTemplateMarkup *markup;
-       lglTemplateLayout *layout;
-
-       switch (frame->shape) {
-
-       case LGL_TEMPLATE_FRAME_SHAPE_RECT:
-               node = xmlNewChild(root, ns, (xmlChar *)"Label-rectangle", NULL);
-               lgl_xml_set_prop_string (node, "id",      frame->all.id);
-               lgl_xml_set_prop_length (node, "width",   frame->rect.w);
-               lgl_xml_set_prop_length (node, "height",  frame->rect.h);
-               lgl_xml_set_prop_length (node, "round",   frame->rect.r);
-               lgl_xml_set_prop_length (node, "x_waste", frame->rect.x_waste);
-               lgl_xml_set_prop_length (node, "y_waste", frame->rect.y_waste);
-               break;
-
-       case LGL_TEMPLATE_FRAME_SHAPE_ROUND:
-               node = xmlNewChild(root, ns, (xmlChar *)"Label-round", NULL);
-               lgl_xml_set_prop_string (node, "id",      frame->all.id);
-               lgl_xml_set_prop_length (node, "radius",  frame->round.r);
-               lgl_xml_set_prop_length (node, "waste",   frame->round.waste);
-               break;
-
-       case LGL_TEMPLATE_FRAME_SHAPE_CD:
-               node = xmlNewChild(root, ns, (xmlChar *)"Label-cd", NULL);
-               lgl_xml_set_prop_string (node, "id",     frame->all.id);
-               lgl_xml_set_prop_length (node, "radius", frame->cd.r1);
-               lgl_xml_set_prop_length (node, "hole",   frame->cd.r2);
-               if (frame->cd.w != 0.0) {
-                       lgl_xml_set_prop_length (node, "width",  frame->cd.w);
-               }
-               if (frame->cd.h != 0.0) {
-                       lgl_xml_set_prop_length (node, "height", frame->cd.h);
-               }
-               lgl_xml_set_prop_length (node, "waste",  frame->cd.waste);
-               break;
-
-       default:
-               g_message ("Unknown label style");
-               return;
-               break;
-
-       }
-
-       for ( p=frame->all.markups; p != NULL; p=p->next ) {
-               markup = (lglTemplateMarkup *)p->data;
-               switch (markup->type) {
-               case LGL_TEMPLATE_MARKUP_MARGIN:
-                       xml_create_markup_margin_node (markup, node, ns);
-                       break;
-               case LGL_TEMPLATE_MARKUP_LINE:
-                       xml_create_markup_line_node (markup, node, ns);
-                       break;
-               case LGL_TEMPLATE_MARKUP_CIRCLE:
-                       xml_create_markup_circle_node (markup, node, ns);
-                       break;
-               case LGL_TEMPLATE_MARKUP_RECT:
-                       xml_create_markup_rect_node (markup, node, ns);
-                       break;
-               default:
-                       g_message ("Unknown markup type");
-                       break;
-               }
-       }
-
-       for ( p=frame->all.layouts; p != NULL; p=p->next ) {
-               layout = (lglTemplateLayout *)p->data;
-               xml_create_layout_node (layout, node, ns);
-       }
-
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Add XML Template->Label->Layout Node.                          */
-/*--------------------------------------------------------------------------*/
-static void
-xml_create_layout_node (const lglTemplateLayout *layout,
-                       xmlNodePtr               root,
-                       const xmlNsPtr           ns)
-{
-       xmlNodePtr  node;
-
-       node = xmlNewChild(root, ns, (xmlChar *)"Layout", NULL);
-       lgl_xml_set_prop_int (node, "nx", layout->nx);
-       lgl_xml_set_prop_int (node, "ny", layout->ny);
-       lgl_xml_set_prop_length (node, "x0", layout->x0);
-       lgl_xml_set_prop_length (node, "y0", layout->y0);
-       lgl_xml_set_prop_length (node, "dx", layout->dx);
-       lgl_xml_set_prop_length (node, "dy", layout->dy);
-
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Add XML Template->Label->Markup-margin Node.                   */
-/*--------------------------------------------------------------------------*/
-static void
-xml_create_markup_margin_node (const lglTemplateMarkup  *markup,
-                              xmlNodePtr                root,
-                              const xmlNsPtr            ns)
-{
-       xmlNodePtr  node;
-
-       node = xmlNewChild(root, ns, (xmlChar *)"Markup-margin", NULL);
-
-       lgl_xml_set_prop_length (node, "size", markup->margin.size);
-
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Add XML Template->Label->Markup-line Node.                     */
-/*--------------------------------------------------------------------------*/
-static void
-xml_create_markup_line_node (const lglTemplateMarkup *markup,
-                            xmlNodePtr               root,
-                            const xmlNsPtr           ns)
-{
-       xmlNodePtr  node;
-
-       node = xmlNewChild(root, ns, (xmlChar *)"Markup-line", NULL);
-
-       lgl_xml_set_prop_length (node, "x1", markup->line.x1);
-       lgl_xml_set_prop_length (node, "y1", markup->line.y1);
-       lgl_xml_set_prop_length (node, "x2", markup->line.x2);
-       lgl_xml_set_prop_length (node, "y2", markup->line.y2);
-
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Add XML Template->Label->Markup-circle Node.                   */
-/*--------------------------------------------------------------------------*/
-static void
-xml_create_markup_circle_node (const lglTemplateMarkup *markup,
-                              xmlNodePtr               root,
-                              const xmlNsPtr           ns)
-{
-       xmlNodePtr  node;
-
-       node = xmlNewChild(root, ns, (xmlChar *)"Markup-circle", NULL);
-
-       lgl_xml_set_prop_length (node, "x0",     markup->circle.x0);
-       lgl_xml_set_prop_length (node, "y0",     markup->circle.y0);
-       lgl_xml_set_prop_length (node, "radius", markup->circle.r);
-
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Add XML Template->Label->Markup-rect Node.                     */
-/*--------------------------------------------------------------------------*/
-static void
-xml_create_markup_rect_node (const lglTemplateMarkup *markup,
-                            xmlNodePtr               root,
-                            const xmlNsPtr           ns)
-{
-       xmlNodePtr  node;
-
-       node = xmlNewChild(root, ns, (xmlChar *)"Markup-rect", NULL);
-
-       lgl_xml_set_prop_length (node, "x1", markup->rect.x1);
-       lgl_xml_set_prop_length (node, "y1", markup->rect.y1);
-       lgl_xml_set_prop_length (node, "w",  markup->rect.w);
-       lgl_xml_set_prop_length (node, "h",  markup->rect.h);
-       lgl_xml_set_prop_length (node, "r",  markup->rect.r);
-
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Add XML Template->Alias Node.                                  */
-/*--------------------------------------------------------------------------*/
-static void
-xml_create_alias_node (const lglTemplateAlias *alias,
-                      xmlNodePtr              root,
-                      const xmlNsPtr          ns)
-{
-       xmlNodePtr node;
-
-       node = xmlNewChild (root, ns, (xmlChar *)"Alias", NULL);
-
-       lgl_xml_set_prop_string (node, "brand", alias->brand);
-       lgl_xml_set_prop_string (node, "part",  alias->part);
-
-}
-
diff --git a/libglabels/xml-template.h b/libglabels/xml-template.h
deleted file mode 100644 (file)
index b940db3..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- *  (LIBGLABELS) Template library for GLABELS
- *
- *  xml-template.h:  template xml module header file
- *
- *  Copyright (C) 2001-2004  Jim Evins <evins@snaught.com>.
- *
- *  This file is part of the LIBGLABELS library.
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License as published by the Free Software Foundation; either
- *  version 2 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public
- *  License along with this library; if not, write to the Free
- *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- *  MA 02111-1307, USA
- */
-
-#ifndef __XML_TEMPLATE_H__
-#define __XML_TEMPLATE_H__
-
-#include <glib.h>
-#include <libxml/tree.h>
-
-#include "template.h"
-
-G_BEGIN_DECLS
-
-GList       *lgl_xml_template_read_templates_from_file (const gchar       *utf8_filename);
-
-GList       *lgl_xml_template_parse_templates_doc      (const xmlDocPtr    templates_doc);
-
-lglTemplate *lgl_xml_template_parse_template_node      (const xmlNodePtr   template_node);
-
-
-gint         lgl_xml_template_write_templates_to_file  (GList             *templates,
-                                                       const gchar       *utf8_filename);
-
-gint         lgl_xml_template_write_template_to_file   (const lglTemplate *template,
-                                                       const gchar       *utf8_filename);
-
-void         lgl_xml_template_create_template_node     (const lglTemplate *template,
-                                                       xmlNodePtr         root,
-                                                       const xmlNsPtr     ns);
-
-G_END_DECLS
-
-#endif /* __XML_TEMPLATE_H__ */
diff --git a/libglabels/xml.c b/libglabels/xml.c
deleted file mode 100644 (file)
index 0943d90..0000000
+++ /dev/null
@@ -1,539 +0,0 @@
-/*
- *  (LIBGLABELS) Template library for GLABELS
- *
- *  xml.c:  GLabels xml utilities module
- *
- *  Copyright (C) 2003, 2004  Jim Evins <evins@snaught.com>.
- *
- *  This file is part of the LIBGLABELS library.
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License as published by the Free Software Foundation; either
- *  version 2 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public
- *  License along with this library; if not, write to the Free
- *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- *  MA 02111-1307, USA
- */
-#include <config.h>
-
-#include "xml.h"
-
-#include <glib/gi18n.h>
-#include <glib/gstrfuncs.h>
-#include <glib/gmessages.h>
-#include <string.h>
-
-#include "libglabels-private.h"
-
-
-/*========================================================*/
-/* Private macros and constants.                          */
-/*========================================================*/
-
-#define POINTS_PER_POINT    1.0 /* internal units are points. */
-#define POINTS_PER_INCH    72.0
-#define POINTS_PER_MM       2.83464566929
-#define POINTS_PER_CM       (10.0*POINTS_PER_MM)
-#define POINTS_PER_PICA     (1.0/12.0)
-
-/*========================================================*/
-/* Private types.                                         */
-/*========================================================*/
-
-typedef struct {
-       xmlChar     *name;
-       gdouble      points_per_unit;
-} UnitTableEntry;
-
-/*========================================================*/
-/* Private globals.                                       */
-/*========================================================*/
-
-static UnitTableEntry unit_table[] = {
-
-       /* These names are identical to the absolute length units supported in
-          the CSS2 Specification (Section 4.3.2) */
-
-       /* This table must be sorted exactly as the enumerations in lglUnitsType */
-
-       /* [LGL_UNITS_POINT] */   {(xmlChar *)"pt",      POINTS_PER_POINT},
-       /* [LGL_UNITS_INCH]  */   {(xmlChar *)"in",      POINTS_PER_INCH},
-       /* [LGL_UNITS_MM]    */   {(xmlChar *)"mm",      POINTS_PER_MM},
-       /* [LGL_UNITS_CM]    */   {(xmlChar *)"cm",      POINTS_PER_CM},
-       /* [LGL_UNITS_PICA]  */   {(xmlChar *)"pc",      POINTS_PER_PICA},
-
-};
-
-static lglUnitsType  default_units        = LGL_UNITS_POINT;
-
-
-/****************************************************************************/
-
-/**
- * lgl_xml_get_prop_string:
- * @node:        the libxml2 #xmlNodePtr of the node
- * @property:    the property name
- * @default_val: a default value to return if property not found
- *
- * Return value of property as a string.
- *
- * Returns: the property as a pointer to a gchar string.  This string should
- *          be freed with g_free().
- *
- */
-gchar *
-lgl_xml_get_prop_string (xmlNodePtr   node,
-                        const gchar *property,
-                        const gchar *default_val)
-{
-       gchar   *val;
-       xmlChar *string;
-
-       string = xmlGetProp (node, (xmlChar *)property);
-       if ( string != NULL ) {
-               val = g_strdup ((gchar *)string);
-               xmlFree (string);
-               return val;
-       }
-
-       if (default_val) {
-               return g_strdup (default_val);
-       }
-
-       return NULL;
-}
-
-
-/**
- * lgl_xml_get_prop_i18n_string:
- * @node:        the libxml2 #xmlNodePtr of the node
- * @property:    the property name
- * @default_val: a default value to return if property not found
- *
- * Return value of a translatable property as a string.
- *
- * Returns: the property as a pointer to a gchar string.  This string should
- *          be freed with g_free().
- *
- */
-gchar *
-lgl_xml_get_prop_i18n_string (xmlNodePtr   node,
-                             const gchar *property,
-                             const gchar *default_val)
-{
-       gchar   *_property;
-       gchar   *val;
-       xmlChar *string;
-
-       _property = g_strdup_printf ("_%s", property);
-       string = xmlGetProp (node, (xmlChar *)_property);
-       g_free (_property);
-
-       if ( string != NULL ) {
-
-               val = g_strdup (gettext ((char *)string));
-               xmlFree (string);
-               return val;
-
-       }
-
-       string = xmlGetProp (node, (xmlChar *)property);
-       if ( string != NULL ) {
-               val = g_strdup ((gchar *)string);
-               xmlFree (string);
-               return val;
-       }
-
-       if (default_val) {
-               return g_strdup (default_val);
-       }
-
-       return NULL;
-}
-
-
-/**
- * lgl_xml_get_prop_double:
- * @node:        the libxml2 #xmlNodePtr of the node
- * @property:    the property name
- * @default_val: a default value to return if property not found
- *
- * Return value of property as a double.
- *
- * Returns: the property as a double.
- *
- */
-gdouble
-lgl_xml_get_prop_double (xmlNodePtr   node,
-                        const gchar *property,
-                        gdouble      default_val)
-{
-       gdouble  val;
-       xmlChar *string;
-
-       string = xmlGetProp (node, (xmlChar *)property);
-       if ( string != NULL ) {
-               val = g_strtod ((gchar *)string, NULL);
-               xmlFree (string);
-               return val;
-       }
-
-       return default_val;
-}
-
-
-/**
- * lgl_xml_get_prop_boolean:
- * @node:        the libxml2 #xmlNodePtr of the node
- * @property:    the property name
- * @default_val: a default value to return if property not found
- *
- * Return value of property as a boolean.
- *
- * Returns: the property as a boolean.
- *
- */
-gboolean
-lgl_xml_get_prop_boolean (xmlNodePtr   node,
-                        const gchar *property,
-                        gboolean     default_val)
-{
-       gboolean  val;
-       xmlChar  *string;
-
-       string = xmlGetProp (node, (xmlChar *)property);
-       if ( string != NULL ) {
-               val = !((xmlStrcasecmp (string, (xmlChar *)"false") == 0) ||
-                       xmlStrEqual (string, (xmlChar *)"0"));;
-               xmlFree (string);
-               return val;
-       }
-
-       return default_val;
-}
-
-
-/**
- * lgl_xml_get_prop_int:
- * @node:        the libxml2 #xmlNodePtr of the node
- * @property:    the property name
- * @default_val: a default value to return if property not found
- *
- * Return value of property as an integer.
- *
- * Returns: the property as an integer.
- *
- */
-gint
-lgl_xml_get_prop_int (xmlNodePtr   node,
-                     const gchar *property,
-                     gint         default_val)
-{
-       gint     val;
-       xmlChar *string;
-
-       string = xmlGetProp (node, (xmlChar *)property);
-       if ( string != NULL ) {
-               val = strtol ((char *)string, NULL, 0);
-               xmlFree (string);
-               return val;
-       }
-
-       return default_val;
-}
-
-
-/**
- * lgl_xml_get_prop_uint:
- * @node:        the libxml2 #xmlNodePtr of the node
- * @property:    the property name
- * @default_val: a default value to return if property not found
- *
- * Return value of property (usually formatted in hex) as an unsigned integer.
- *
- * Returns: the property as an unsigned integer.
- *
- */
-guint
-lgl_xml_get_prop_uint (xmlNodePtr   node,
-                      const gchar *property,
-                      guint        default_val)
-{
-       guint    val;
-       xmlChar *string;
-
-       string = xmlGetProp (node, (xmlChar *)property);
-       if ( string != NULL ) {
-               val = strtoul ((char *)string, NULL, 0);
-               xmlFree (string);
-               return val;
-       }
-
-       return default_val;
-}
-
-
-/**
- * lgl_xml_get_prop_length:
- * @node:        the libxml2 #xmlNodePtr of the node
- * @property:    the property name
- * @default_val: a default value to return if property not found
- *
- * Return value of a length property as a double, converting to internal
- * units (points).  The property is expected to be formatted as a number
- * followed by a units string.  If there is no units string, the length
- * is assumed to be in points.  Valid units strings are "pt" for points,
- * "in" for inches, "mm" for millimeters, "cm" for centimeters, and
- * "pc" for picas.
- *
- * Returns: the length in points.
- *
- */
-gdouble
-lgl_xml_get_prop_length (xmlNodePtr   node,
-                        const gchar *property,
-                        gdouble      default_val)
-{
-       gdouble  val;
-       xmlChar *string;
-       xmlChar *unit;
-       gint     i;
-
-       string = xmlGetProp (node, (xmlChar *)property);
-       if ( string != NULL ) {
-
-               val = g_strtod ((gchar *)string, (gchar **)&unit);
-
-               if (unit != string) {
-                       unit = (xmlChar *)g_strchug ((gchar *)unit);
-                       if (strlen ((char *)unit) > 0 ) {
-                               for (i=LGL_UNITS_FIRST; i<=LGL_UNITS_LAST; i++) {
-                                       if (xmlStrcasecmp (unit, unit_table[i].name) == 0) {
-                                               val *= unit_table[i].points_per_unit;
-                                               break;
-                                       }
-                               }
-                               if (i>LGL_UNITS_LAST) {
-                                       g_message ("Line %ld, Node \"%s\", Property \"%s\": Unknown unit \"%s\", assuming points",
-                                                  xmlGetLineNo (node), node->name, property,
-                                                  unit);
-                               }
-                       }
-               }
-               else {
-                       val = 0.0;
-               }
-
-               xmlFree (string);
-               return val;
-       }
-
-       return default_val;
-}
-
-
-/**
- * lgl_xml_set_prop_string:
- * @node:        the libxml2 #xmlNodePtr of the node
- * @property:    the property name
- * @val:         the value to set
- *
- * Set a property from a string.
- *
- */
-void
-lgl_xml_set_prop_string (xmlNodePtr    node,
-                        const gchar  *property,
-                        const gchar  *val)
-{
-       if (val != NULL) {
-               xmlSetProp (node, (xmlChar *)property, (xmlChar *)val);
-       }
-}
-
-
-/**
- * lgl_xml_set_prop_double:
- * @node:        the libxml2 #xmlNodePtr of the node
- * @property:    the property name
- * @val:         the value to set
- *
- * Set a property from a double.
- *
- */
-void
-lgl_xml_set_prop_double (xmlNodePtr    node,
-                        const gchar  *property,
-                        gdouble       val)
-{
-       gchar  *string, buffer[G_ASCII_DTOSTR_BUF_SIZE];
-
-       /* Guarantee "C" locale by use of g_ascii_formatd */
-       string = g_ascii_formatd (buffer, G_ASCII_DTOSTR_BUF_SIZE, "%g", val);
-
-       xmlSetProp (node, (xmlChar *)property, (xmlChar *)string);
-}
-
-
-/**
- * lgl_xml_set_prop_boolean:
- * @node:        the libxml2 #xmlNodePtr of the node
- * @property:    the property name
- * @val:         the value to set
- *
- * Set a property from a boolean.
- *
- */
-void
-lgl_xml_set_prop_boolean (xmlNodePtr    node,
-                         const gchar  *property,
-                         gboolean      val)
-{
-       xmlSetProp (node, (xmlChar *)property, (xmlChar *)(val ? "True" : "False"));
-}
-
-/**
- * lgl_xml_set_prop_int:
- * @node:        the libxml2 #xmlNodePtr of the node
- * @property:    the property name
- * @val:         the value to set
- *
- * Set a property from an integer.
- *
- */
-void
-lgl_xml_set_prop_int (xmlNodePtr    node,
-                     const gchar  *property,
-                     gint          val)
-{
-       gchar  *string;
-
-       string = g_strdup_printf ("%d", val);
-       xmlSetProp (node, (xmlChar *)property, (xmlChar *)string);
-       g_free (string);
-}
-
-/**
- * lgl_xml_set_prop_uint_hex:
- * @node:        the libxml2 #xmlNodePtr of the node
- * @property:    the property name
- * @val:         the value to set
- *
- * Set a property from an unsigned integer and format in hex.
- *
- */
-void
-lgl_xml_set_prop_uint_hex (xmlNodePtr    node,
-                          const gchar  *property,
-                          guint         val)
-{
-       gchar  *string;
-
-       string = g_strdup_printf ("0x%08x", val);
-       xmlSetProp (node, (xmlChar *)property, (xmlChar *)string);
-       g_free (string);
-}
-
-/**
- * lgl_xml_set_prop_length:
- * @node:        the libxml2 #xmlNodePtr of the node
- * @property:    the property name
- * @val:         the length to set in internal units (points)
- *
- * Set a property from a length, performing any necessary conversion.
- * Length properties are formatted as a number followed by a units string.
- * The units of the formatted property is determined by the most recent call to
- * lgl_xml_set_default_units().
- *
- */
-void
-lgl_xml_set_prop_length (xmlNodePtr    node,
-                        const gchar  *property,
-                        gdouble       val)
-{
-       gchar  *string, buffer[G_ASCII_DTOSTR_BUF_SIZE];
-       gchar  *string_unit;
-
-       /* Convert to default units */
-       val /= unit_table[default_units].points_per_unit;
-
-       /* Guarantee "C" locale by use of g_ascii_formatd */
-       string = g_ascii_formatd (buffer, G_ASCII_DTOSTR_BUF_SIZE, "%g", val);
-
-       string_unit = g_strdup_printf ("%s%s", string, unit_table[default_units].name);
-       xmlSetProp (node, (xmlChar *)property, (xmlChar *)string_unit);
-        g_free (string_unit);
-}
-
-/**
- * lgl_xml_is_node
- * @node:        the libxml2 #xmlNodePtr of the node
- * @name    :    the node name
- *
- * Test if a node name matches given name.
- *
- * Returns: TRUE if the name of the node matches.  Otherwise FALSE.
- *
- */
-gboolean
-lgl_xml_is_node (xmlNodePtr   node,
-                const gchar *name)
-{
-       return xmlStrEqual (node->name, (xmlChar *)name);
-}
-
-
-/**
- * lgl_xml_get_node_content
- * @node:        the libxml2 #xmlNodePtr of the node
- *
- * Get the content of a node.
- *
- * Returns: the property as a pointer to a gchar string.  This string should
- *          be freed with g_free().
- */
-gchar *
-lgl_xml_get_node_content (xmlNodePtr   node)
-{
-       xmlChar *xml_content;
-       gchar   *g_content;
-
-       xml_content = xmlNodeGetContent (node);
-
-       if (xml_content != NULL) {
-
-               g_content = g_strdup ((gchar *)xml_content);
-               xmlFree (xml_content);
-               return g_content;
-
-       }
-
-       return NULL;
-}
-
-
-/**
- * lgl_xml_set_default_units:
- * @units:       default units selection (#lglUnitsType)
- *
- * Set the default units when formatting lengths.  See
- * lgl_xml_set_prop_length().
- *
- */
-void
-lgl_xml_set_default_units (lglUnitsType   units)
-{
-       g_return_if_fail ((units >= LGL_UNITS_FIRST) && (units <= LGL_UNITS_LAST));
-
-       default_units = units;
-}
-
-
diff --git a/libglabels/xml.h b/libglabels/xml.h
deleted file mode 100644 (file)
index 3ef2e49..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *  (LIBGLABELS) Template library for GLABELS
- *
- *  xml.h:  GLabels xml utilities header file
- *
- *  Copyright (C) 2003, 2004  Jim Evins <evins@snaught.com>.
- *
- *  This file is part of the LIBGLABELS library.
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License as published by the Free Software Foundation; either
- *  version 2 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public
- *  License along with this library; if not, write to the Free
- *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- *  MA 02111-1307, USA
- */
-
-#ifndef __XML_H__
-#define __XML_H__
-
-#include <glib/gtypes.h>
-#include <libxml/tree.h>
-
-#include "enums.h"
-
-#define LGL_XML_NAME_SPACE "http://snaught.com/glabels/2.2/"
-
-G_BEGIN_DECLS
-
-/*
- * Get property functions
- */
-gchar *  lgl_xml_get_prop_string   (xmlNodePtr    node,
-                                   const gchar  *property,
-                                   const gchar  *default_val);
-
-gchar *  lgl_xml_get_prop_i18n_string (xmlNodePtr    node,
-                                      const gchar  *property,
-                                      const gchar  *default_val);
-
-gdouble  lgl_xml_get_prop_double   (xmlNodePtr    node,
-                                   const gchar  *property,
-                                   gdouble       default_val);
-
-gboolean lgl_xml_get_prop_boolean  (xmlNodePtr    node,
-                                   const gchar  *property,
-                                   gboolean      default_val);
-
-gint     lgl_xml_get_prop_int      (xmlNodePtr    node,
-                                   const gchar  *property,
-                                   gint          default_val);
-
-guint    lgl_xml_get_prop_uint     (xmlNodePtr    node,
-                                   const gchar  *property,
-                                   guint         default_val);
-
-gdouble  lgl_xml_get_prop_length   (xmlNodePtr    node,
-                                   const gchar  *property,
-                                   gdouble       default_val);
-
-
-/*
- * Set property functions
- */
-void     lgl_xml_set_prop_string   (xmlNodePtr    node,
-                                   const gchar  *property,
-                                   const gchar  *val);
-
-void     lgl_xml_set_prop_double   (xmlNodePtr    node,
-                                   const gchar  *property,
-                                   gdouble       val);
-
-void     lgl_xml_set_prop_boolean  (xmlNodePtr    node,
-                                   const gchar  *property,
-                                   gboolean      val);
-
-void     lgl_xml_set_prop_int      (xmlNodePtr    node,
-                                   const gchar  *property,
-                                   gint          val);
-
-void     lgl_xml_set_prop_uint_hex (xmlNodePtr    node,
-                                   const gchar  *property,
-                                   guint         val);
-
-void     lgl_xml_set_prop_length   (xmlNodePtr    node,
-                                   const gchar  *property,
-                                   gdouble       val);
-
-/*
- * Other node functions
- */
-gboolean lgl_xml_is_node           (xmlNodePtr    node,
-                                   const gchar  *name);
-
-gchar *  lgl_xml_get_node_content  (xmlNodePtr    node);
-
-/*
- * Misc functions
- */
-void     lgl_xml_set_default_units (lglUnitsType   units);
-
-G_END_DECLS
-
-
-#endif /* __XML_H__ */
diff --git a/libglbarcode/Makefile.am b/libglbarcode/Makefile.am
new file mode 100644 (file)
index 0000000..7a884df
--- /dev/null
@@ -0,0 +1,51 @@
+configdir = $(datadir)/$(LIBGLBARCODE_BRANCH)
+
+INCLUDES = \
+       $(LIBGLBARCODE_CFLAGS)                          \
+       -DLIBGLBARCODE_CONFIG_DIR=\""$(configdir)"\" \
+       $(DISABLE_DEPRECATED_CFLAGS)
+
+libglbarcode_3_0_la_LDFLAGS=\
+        -version-info $(LIBGLBARCODE_API_VERSION) \
+        $(LIBGLBARCODE_LIBS) \
+        -no-undefined 
+
+lib_LTLIBRARIES = libglbarcode-3.0.la
+
+libglbarcode_3_0_la_SOURCES =          \
+       lgl-barcode.c                   \
+       lgl-barcode.h                   \
+       lgl-barcode-create.c            \
+       lgl-barcode-create.h            \
+       lgl-barcode-render-to-cairo.c   \
+       lgl-barcode-render-to-cairo.h   \
+       lgl-barcode-type.h              \
+       lgl-barcode-onecode.c           \
+       lgl-barcode-onecode.h           \
+       lgl-barcode-postnet.c           \
+       lgl-barcode-postnet.h           \
+       lgl-barcode-code39.c            \
+       lgl-barcode-code39.h
+
+libglbarcode_3_0includedir=$(includedir)/$(LIBGLBARCODE_BRANCH)
+
+libglbarcode_3_0include_HEADERS =      \
+       libglbarcode.h
+
+libglbarcode_3_0subincludedir=$(includedir)/$(LIBGLBARCODE_BRANCH)/libglbarcode
+
+libglbarcode_3_0subinclude_HEADERS =   \
+       lgl-barcode.h                   \
+       lgl-barcode-create.h            \
+       lgl-barcode-render-to-cairo.h   \
+       lgl-barcode-type.h              \
+       lgl-barcode-onecode.h           \
+       lgl-barcode-postnet.h           \
+       lgl-barcode-code39.h
+
+EXTRA_DIST =                   \
+       $(LIBGLBARCODE_BRANCH).pc.in
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = $(LIBGLBARCODE_BRANCH).pc
+
diff --git a/libglbarcode/Makefile.in b/libglbarcode/Makefile.in
new file mode 100644 (file)
index 0000000..c31d5d8
--- /dev/null
@@ -0,0 +1,745 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = libglbarcode
+DIST_COMMON = $(libglbarcode_3_0include_HEADERS) \
+       $(libglbarcode_3_0subinclude_HEADERS) \
+       $(srcdir)/${LIBGLBARCODE_BRANCH}.pc.in $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES = ${LIBGLBARCODE_BRANCH}.pc
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" \
+       "$(DESTDIR)$(libglbarcode_3_0includedir)" \
+       "$(DESTDIR)$(libglbarcode_3_0subincludedir)"
+LTLIBRARIES = $(lib_LTLIBRARIES)
+libglbarcode_3_0_la_LIBADD =
+am_libglbarcode_3_0_la_OBJECTS = lgl-barcode.lo lgl-barcode-create.lo \
+       lgl-barcode-render-to-cairo.lo lgl-barcode-onecode.lo \
+       lgl-barcode-postnet.lo lgl-barcode-code39.lo
+libglbarcode_3_0_la_OBJECTS = $(am_libglbarcode_3_0_la_OBJECTS)
+AM_V_lt = $(am__v_lt_$(V))
+am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+am__v_lt_0 = --silent
+libglbarcode_3_0_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+       $(AM_CFLAGS) $(CFLAGS) $(libglbarcode_3_0_la_LDFLAGS) \
+       $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+       $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_$(V))
+am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+am__v_CC_0 = @echo "  CC    " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_$(V))
+am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CCLD_0 = @echo "  CCLD  " $@;
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+SOURCES = $(libglbarcode_3_0_la_SOURCES)
+DIST_SOURCES = $(libglbarcode_3_0_la_SOURCES)
+DATA = $(pkgconfig_DATA)
+HEADERS = $(libglbarcode_3_0include_HEADERS) \
+       $(libglbarcode_3_0subinclude_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CAIRO_REQUIRED = @CAIRO_REQUIRED@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DLLTOOL = @DLLTOOL@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLABELS_BRANCH = @GLABELS_BRANCH@
+GLABELS_CFLAGS = @GLABELS_CFLAGS@
+GLABELS_LIBS = @GLABELS_LIBS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_REQUIRED = @GLIB_REQUIRED@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GTK_REQUIRED = @GTK_REQUIRED@
+GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@
+HELP_DIR = @HELP_DIR@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@
+LIBBARCODE_LIBS = @LIBBARCODE_LIBS@
+LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@
+LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
+LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
+LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
+LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@
+LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@
+LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
+LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
+LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@
+LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@
+LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@
+LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@
+LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@
+LIBIEC16022_LIBS = @LIBIEC16022_LIBS@
+LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@
+LIBOBJS = @LIBOBJS@
+LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@
+LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@
+LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@
+LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_REQUIRED = @LIBXML_REQUIRED@
+LIBZINT_CFLAGS = @LIBZINT_CFLAGS@
+LIBZINT_LIBS = @LIBZINT_LIBS@
+LIBZINT_REQUIRED = @LIBZINT_REQUIRED@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_REQUIRED = @PANGO_REQUIRED@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+configdir = $(datadir)/$(LIBGLBARCODE_BRANCH)
+INCLUDES = \
+       $(LIBGLBARCODE_CFLAGS)                          \
+       -DLIBGLBARCODE_CONFIG_DIR=\""$(configdir)"\" \
+       $(DISABLE_DEPRECATED_CFLAGS)
+
+libglbarcode_3_0_la_LDFLAGS = \
+        -version-info $(LIBGLBARCODE_API_VERSION) \
+        $(LIBGLBARCODE_LIBS) \
+        -no-undefined 
+
+lib_LTLIBRARIES = libglbarcode-3.0.la
+libglbarcode_3_0_la_SOURCES = \
+       lgl-barcode.c                   \
+       lgl-barcode.h                   \
+       lgl-barcode-create.c            \
+       lgl-barcode-create.h            \
+       lgl-barcode-render-to-cairo.c   \
+       lgl-barcode-render-to-cairo.h   \
+       lgl-barcode-type.h              \
+       lgl-barcode-onecode.c           \
+       lgl-barcode-onecode.h           \
+       lgl-barcode-postnet.c           \
+       lgl-barcode-postnet.h           \
+       lgl-barcode-code39.c            \
+       lgl-barcode-code39.h
+
+libglbarcode_3_0includedir = $(includedir)/$(LIBGLBARCODE_BRANCH)
+libglbarcode_3_0include_HEADERS = \
+       libglbarcode.h
+
+libglbarcode_3_0subincludedir = $(includedir)/$(LIBGLBARCODE_BRANCH)/libglbarcode
+libglbarcode_3_0subinclude_HEADERS = \
+       lgl-barcode.h                   \
+       lgl-barcode-create.h            \
+       lgl-barcode-render-to-cairo.h   \
+       lgl-barcode-type.h              \
+       lgl-barcode-onecode.h           \
+       lgl-barcode-postnet.h           \
+       lgl-barcode-code39.h
+
+EXTRA_DIST = \
+       $(LIBGLBARCODE_BRANCH).pc.in
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = $(LIBGLBARCODE_BRANCH).pc
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu libglbarcode/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu libglbarcode/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+${LIBGLBARCODE_BRANCH}.pc: $(top_builddir)/config.status $(srcdir)/${LIBGLBARCODE_BRANCH}.pc.in
+       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+       @$(NORMAL_INSTALL)
+       test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
+       @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+       list2=; for p in $$list; do \
+         if test -f $$p; then \
+           list2="$$list2 $$p"; \
+         else :; fi; \
+       done; \
+       test -z "$$list2" || { \
+         echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
+         $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
+       }
+
+uninstall-libLTLIBRARIES:
+       @$(NORMAL_UNINSTALL)
+       @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+       for p in $$list; do \
+         $(am__strip_dir) \
+         echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
+         $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
+       done
+
+clean-libLTLIBRARIES:
+       -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+       @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+         dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+         test "$$dir" != "$$p" || dir=.; \
+         echo "rm -f \"$${dir}/so_locations\""; \
+         rm -f "$${dir}/so_locations"; \
+       done
+libglbarcode-3.0.la: $(libglbarcode_3_0_la_OBJECTS) $(libglbarcode_3_0_la_DEPENDENCIES) 
+       $(AM_V_CCLD)$(libglbarcode_3_0_la_LINK) -rpath $(libdir) $(libglbarcode_3_0_la_OBJECTS) $(libglbarcode_3_0_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgl-barcode-code39.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgl-barcode-create.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgl-barcode-onecode.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgl-barcode-postnet.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgl-barcode-render-to-cairo.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgl-barcode.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-pkgconfigDATA: $(pkgconfig_DATA)
+       @$(NORMAL_INSTALL)
+       test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
+       @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
+       done
+
+uninstall-pkgconfigDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files
+install-libglbarcode_3_0includeHEADERS: $(libglbarcode_3_0include_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(libglbarcode_3_0includedir)" || $(MKDIR_P) "$(DESTDIR)$(libglbarcode_3_0includedir)"
+       @list='$(libglbarcode_3_0include_HEADERS)'; test -n "$(libglbarcode_3_0includedir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libglbarcode_3_0includedir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(libglbarcode_3_0includedir)" || exit $$?; \
+       done
+
+uninstall-libglbarcode_3_0includeHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(libglbarcode_3_0include_HEADERS)'; test -n "$(libglbarcode_3_0includedir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libglbarcode_3_0includedir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libglbarcode_3_0includedir)" && rm -f $$files
+install-libglbarcode_3_0subincludeHEADERS: $(libglbarcode_3_0subinclude_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(libglbarcode_3_0subincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libglbarcode_3_0subincludedir)"
+       @list='$(libglbarcode_3_0subinclude_HEADERS)'; test -n "$(libglbarcode_3_0subincludedir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libglbarcode_3_0subincludedir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(libglbarcode_3_0subincludedir)" || exit $$?; \
+       done
+
+uninstall-libglbarcode_3_0subincludeHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(libglbarcode_3_0subinclude_HEADERS)'; test -n "$(libglbarcode_3_0subincludedir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libglbarcode_3_0subincludedir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libglbarcode_3_0subincludedir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       set x; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
+installdirs:
+       for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(libglbarcode_3_0includedir)" "$(DESTDIR)$(libglbarcode_3_0subincludedir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
+       mostlyclean-am
+
+distclean: distclean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+       distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-libglbarcode_3_0includeHEADERS \
+       install-libglbarcode_3_0subincludeHEADERS \
+       install-pkgconfigDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-libLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libLTLIBRARIES \
+       uninstall-libglbarcode_3_0includeHEADERS \
+       uninstall-libglbarcode_3_0subincludeHEADERS \
+       uninstall-pkgconfigDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+       clean-libLTLIBRARIES clean-libtool ctags distclean \
+       distclean-compile distclean-generic distclean-libtool \
+       distclean-tags distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am \
+       install-libLTLIBRARIES install-libglbarcode_3_0includeHEADERS \
+       install-libglbarcode_3_0subincludeHEADERS install-man \
+       install-pdf install-pdf-am install-pkgconfigDATA install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+       uninstall-am uninstall-libLTLIBRARIES \
+       uninstall-libglbarcode_3_0includeHEADERS \
+       uninstall-libglbarcode_3_0subincludeHEADERS \
+       uninstall-pkgconfigDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/libglbarcode/lgl-barcode-code39.c b/libglbarcode/lgl-barcode-code39.c
new file mode 100644 (file)
index 0000000..31e7f2a
--- /dev/null
@@ -0,0 +1,456 @@
+/*
+ *  lgl-barcode-code39.c
+ *  Copyright (C) 2001-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglbarcode.
+ *
+ *  libglbarcode is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglbarcode is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglbarcode.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "lgl-barcode-code39.h"
+
+#include <glib.h>
+#include <ctype.h>
+#include <string.h>
+
+
+/*========================================================*/
+/* Private macros and constants.                          */
+/*========================================================*/
+
+#define PTS_PER_INCH 72.0
+
+#define MIN_X        ( 0.01 *  PTS_PER_INCH )
+#define N            2.5
+#define MIN_I        MIN_X
+#define MIN_HEIGHT   ( 0.25 *  PTS_PER_INCH )
+#define MIN_QUIET    ( 0.10 *  PTS_PER_INCH )
+
+#define INK_BLEED    ( 0.00325 * PTS_PER_INCH )
+
+#define TEXT_AREA_HEIGHT 14.0
+#define TEXT_SIZE        10.0
+
+
+/*========================================================*/
+/* Private types.                                         */
+/*========================================================*/
+
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+/* Code 39 alphabet. Position indicates value. */
+static gchar *alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%";
+
+/* Code 39 symbols. Position must match position in alphabet. */
+static gchar* symbols[43] = {
+        /*        BsBsBsBsB */
+        /* 0 */  "NnNwWnWnN",
+        /* 1 */  "WnNwNnNnW",
+        /* 2 */  "NnWwNnNnW",
+        /* 3 */  "WnWwNnNnN",
+        /* 4 */  "NnNwWnNnW",
+        /* 5 */  "WnNwWnNnN",
+        /* 6 */  "NnWwWnNnN",
+        /* 7 */  "NnNwNnWnW",
+        /* 8 */  "WnNwNnWnN",
+        /* 9 */  "NnWwNnWnN",
+        /* A */  "WnNnNwNnW",
+        /* B */  "NnWnNwNnW",
+        /* C */  "WnWnNwNnN",
+        /* D */  "NnNnWwNnW",
+        /* E */  "WnNnWwNnN",
+        /* F */  "NnWnWwNnN",
+        /* G */  "NnNnNwWnW",
+        /* H */  "WnNnNwWnN",
+        /* I */  "NnWnNwWnN",
+        /* J */  "NnNnWwWnN",
+        /* K */  "WnNnNnNwW",
+        /* L */  "NnWnNnNwW",
+        /* M */  "WnWnNnNwN",
+        /* N */  "NnNnWnNwW",
+        /* O */  "WnNnWnNwN",
+        /* P */  "NnWnWnNwN",
+        /* Q */  "NnNnNnWwW",
+        /* R */  "WnNnNnWwN",
+        /* S */  "NnWnNnWwN",
+        /* T */  "NnNnWnWwN",
+        /* U */  "WwNnNnNnW",
+        /* V */  "NwWnNnNnW",
+        /* W */  "WwWnNnNnN",
+        /* X */  "NwNnWnNnW",
+        /* Y */  "WwNnWnNnN",
+        /* Z */  "NwWnWnNnN",
+        /* - */  "NwNnNnWnW",
+        /* . */  "WwNnNnWnN",
+        /*   */  "NwWnNnWnN",
+        /* $ */  "NwNwNwNnN",
+        /* / */  "NwNwNnNwN",
+        /* + */  "NwNnNwNwN",
+        /* % */  "NnNwNwNwN",
+};
+
+static gchar *frame_symbol = "NwNnWnWnN";
+
+static gchar *ascii_map[128] =
+{
+        /* NUL */ "%U",   /* SOH */ "$A",   /* STX */ "$B",   /* ETX */ "$C",
+        /* EOT */ "$D",   /* ENQ */ "$E",   /* ACK */ "$F",   /* BEL */ "$G",
+        /* BS  */ "$H",   /* HT  */ "$I",   /* LF  */ "$J",   /* VT  */ "$K",
+        /* FF  */ "$L",   /* CR  */ "$M",   /* SO  */ "$N",   /* SI  */ "$O",
+        /* DLE */ "$P",   /* DC1 */ "$Q",   /* DC2 */ "$R",   /* DC3 */ "$S",
+        /* DC4 */ "$T",   /* NAK */ "$U",   /* SYN */ "$V",   /* ETB */ "$W",
+        /* CAN */ "$X",   /* EM  */ "$Y",   /* SUB */ "$Z",   /* ESC */ "%A",
+        /* FS  */ "%B",   /* GS  */ "%C",   /* RS  */ "%D",   /* US  */ "%E",
+        /* " " */ " ",    /* !   */ "/A",   /* "   */ "/B",   /* #   */ "/C",
+        /* $   */ "/D",   /* %   */ "/E",   /* &   */ "/F",   /* '   */ "/G",
+        /* (   */ "/H",   /* )   */ "/I",   /* *   */ "/J",   /* +   */ "/K",
+        /* ,   */ "/L",   /* -   */ "-",    /* .   */ ".",    /* /   */ "/O",
+        /* 0   */ "0",    /* 1   */ "1",    /* 2   */ "2",    /* 3   */ "3",
+        /* 4   */ "4",    /* 5   */ "5",    /* 6   */ "6",    /* 7   */ "7",
+        /* 8   */ "8",    /* 9   */ "9",    /* :   */ "/Z",   /* ;   */ "%F",
+        /* <   */ "%G",   /* =   */ "%H",   /* >   */ "%I",   /* ?   */ "%J",
+        /* @   */ "%V",   /* A   */ "A",    /* B   */ "B",    /* C   */ "C",
+        /* D   */ "D",    /* E   */ "E",    /* F   */ "F",    /* G   */ "G",
+        /* H   */ "H",    /* I   */ "I",    /* J   */ "J",    /* K   */ "K",
+        /* L   */ "L",    /* M   */ "M",    /* N   */ "N",    /* O   */ "O",
+        /* P   */ "P",    /* Q   */ "Q",    /* R   */ "R",    /* S   */ "S",
+        /* T   */ "T",    /* U   */ "U",    /* V   */ "V",    /* W   */ "W",
+        /* X   */ "X",    /* Y   */ "Y",    /* Z   */ "Z",    /* [   */ "%K",
+        /* \   */ "%L",   /* ]   */ "%M",   /* ^   */ "%N",   /* _   */ "%O",
+        /* `   */ "%W",   /* a   */ "+A",   /* b   */ "+B",   /* c   */ "+C",
+        /* d   */ "+D",   /* e   */ "+E",   /* f   */ "+F",   /* g   */ "+G",
+        /* h   */ "+H",   /* i   */ "+I",   /* j   */ "+J",   /* k   */ "+K",
+        /* l   */ "+L",   /* m   */ "+M",   /* n   */ "+N",   /* o   */ "+O",
+        /* p   */ "+P",   /* q   */ "+Q",   /* r   */ "+R",   /* s   */ "+S",
+        /* t   */ "+T",   /* u   */ "+U",   /* v   */ "+V",   /* w   */ "+W",
+        /* x   */ "+X",   /* y   */ "+Y",   /* z   */ "+Z",   /* {   */ "%P",
+        /* |   */ "%Q",   /* }   */ "%R",   /* ~   */ "%S",   /* DEL */ "%T" 
+};
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+static gboolean    code39_is_data_valid     (const gchar *data);
+static gboolean    code39_ext_is_data_valid (const gchar *data);
+
+static gchar      *code39_encode            (const gchar *data,
+                                             gboolean     checksum_flag);
+
+static lglBarcode *code39_vectorize         (const gchar *code,
+                                             gdouble      w,
+                                             gdouble      h,
+                                             gboolean     text_flag,
+                                             gboolean     checksum_flag,
+                                             const gchar *data,
+                                             const gchar *string);
+
+
+/****************************************************************************/
+/* Generate new Code 39 barcode structure from data.                        */
+/****************************************************************************/
+lglBarcode *
+lgl_barcode_code39_new (lglBarcodeType  type,
+                        gboolean        text_flag,
+                        gboolean        checksum_flag,
+                        gdouble         w,
+                        gdouble         h,
+                        const gchar    *data)
+{
+        gchar         *canon_data;
+        gchar         *display_data;
+        gchar         *code, *p;
+        lglBarcode    *bc;
+
+        if ( (type != LGL_BARCODE_TYPE_CODE39) &&
+             (type != LGL_BARCODE_TYPE_CODE39_EXT) )
+        {
+                g_message ("Invalid barcode type for CODE39 backend.");
+                return NULL;
+        }
+
+
+        /* Validate data. */
+        if (type == LGL_BARCODE_TYPE_CODE39)
+        {
+                if ( !code39_is_data_valid (data) )
+                {
+                        return NULL;
+                }
+                canon_data = g_ascii_strup (data, -1);
+                display_data = g_strdup (canon_data);
+        }
+        else
+        {
+                GString *canon_data_str;
+
+                if ( !code39_ext_is_data_valid (data) )
+                {
+                        return NULL;
+                }
+
+                canon_data_str = g_string_new ("");
+                for ( p = (gchar *)data; *p != '\0'; p++ )
+                {
+                        canon_data_str = g_string_append (canon_data_str, ascii_map[(int)*p]);
+                }
+                canon_data   = g_string_free (canon_data_str, FALSE);
+
+                display_data = g_strdup (data);
+        }
+
+        /* First get code string */
+        code = code39_encode (canon_data, checksum_flag);
+        if (code == NULL)
+        {
+                g_free (canon_data);
+                g_free (display_data);
+                return NULL;
+        }
+
+        /* Now vectorize code string */
+        bc = code39_vectorize (code, w, h, text_flag, checksum_flag, canon_data, display_data);
+
+        g_free (canon_data);
+        g_free (display_data);
+        g_free (code);
+
+        return bc;
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Validate data for Code 39.                                     */
+/*--------------------------------------------------------------------------*/
+static gboolean
+code39_is_data_valid (const gchar *data)
+{
+        gchar *p;
+        gchar  c;
+
+        if (!data || (*data == '\0'))
+        {
+                return FALSE;
+        }
+
+        for ( p = (gchar *)data; *p != 0; p++ )
+        {
+                c = g_ascii_toupper (*p);
+
+                if ( strchr(alphabet, c) == NULL )
+                {
+                        return FALSE;
+                }
+        }
+
+        return TRUE;
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Validate data for Extended Code 39.                            */
+/*--------------------------------------------------------------------------*/
+static gboolean
+code39_ext_is_data_valid (const gchar *data)
+{
+        gchar *p;
+
+        if (!data || (*data == '\0'))
+        {
+                return FALSE;
+        }
+
+        for ( p = (gchar *)data; *p != 0; p++ )
+        {
+                if ( (*p < 0) || (*p > 0x7f)  )
+                {
+                        return FALSE;
+                }
+        }
+
+        return TRUE;
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Generate string of symbols, representing barcode.              */
+/*--------------------------------------------------------------------------*/
+static gchar *
+code39_encode (const gchar *data,
+               gboolean     checksum_flag)
+{
+        gchar         *p, c;
+        gint           c_value, sum;
+        GString       *code;
+
+
+        /* Left frame symbol */
+        code = g_string_new( frame_symbol );
+        code = g_string_append( code, "i" );
+
+        sum = 0;
+        for ( p=(gchar *)data; *p != 0; p++ )
+        {
+                c = g_ascii_toupper( *p );
+                c_value = strchr(alphabet, c) - alphabet;
+                code = g_string_append (code, symbols[c_value]);
+                code = g_string_append (code, "i");
+
+                sum += c_value;
+        }
+
+        if ( checksum_flag )
+        {
+                code = g_string_append (code, symbols[sum % 43]);
+                code = g_string_append (code, "i");
+        }
+
+        /* Right frame bar */
+        code = g_string_append (code, frame_symbol);
+
+        return g_string_free (code, FALSE);
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Vectorize encoded barcode.                                     */
+/*--------------------------------------------------------------------------*/
+static lglBarcode *
+code39_vectorize (const gchar   *code,
+                  gdouble        w,
+                  gdouble        h,
+                  gboolean       text_flag,
+                  gboolean       checksum_flag,
+                  const gchar   *data,
+                  const gchar   *string)
+{
+        gint         n_chars;
+        gdouble      min_l;
+        gdouble      scale;
+        gdouble      width, height;
+        gdouble      x_quiet;
+        lglBarcode  *bc;
+        gchar       *p;
+        gdouble      x1;
+        gchar       *string_plus_stars;
+
+        /* determine width and establish horizontal scale */
+        n_chars = strlen (data);
+        if (!checksum_flag)
+        {
+                min_l = (n_chars + 2)*(3*N + 6)*MIN_X + (n_chars + 1)*MIN_I;
+        }
+        else
+        {
+                min_l = (n_chars + 3)*(3*N + 6)*MIN_X + (n_chars + 2)*MIN_I;
+        }
+        
+        if ( w == 0 )
+        {
+                scale = 1.0;
+        }
+        else
+        {
+                scale = w / (min_l + 2*MIN_QUIET);
+
+                if ( scale < 1.0 )
+                {
+                        scale = 1.0;
+                }
+        }
+        width = min_l * scale;
+
+        /* determine height of barcode */
+        height = text_flag ? h - TEXT_AREA_HEIGHT : h;
+        height = MAX (height, MAX(0.15*width, MIN_HEIGHT));
+
+        /* determine horizontal quiet zone */
+        x_quiet = MAX ((10 * scale * MIN_X), MIN_QUIET);
+
+
+        bc = lgl_barcode_new ();
+
+        /* Now traverse the code string and create a list of rectangles */
+        x1 = x_quiet;
+        for ( p = (gchar *)code; *p != 0; p++ )
+        {
+
+                switch ( *p )
+                {
+
+                case 'i':
+                        /* Inter-character gap */
+                        x1 += scale * MIN_I;
+                        break;
+
+                case 'N':
+                        /* Narrow bar */
+                        lgl_barcode_add_box (bc, x1, 0.0, (scale * MIN_X - INK_BLEED), height);
+                        x1 += scale * MIN_X;
+                        break;
+
+                case 'W':
+                        /* Wide bar */
+                        lgl_barcode_add_box (bc, x1, 0.0, (scale * N * MIN_X - INK_BLEED), height);
+                        x1 += scale * N * MIN_X;
+                        break;
+
+                case 'n':
+                        /* Narrow space */
+                        x1 += scale * MIN_X;
+                        break;
+
+                case 'w':
+                        /* Wide space */
+                        x1 += scale * N * MIN_X;
+                        break;
+
+                default:
+                        g_message( "Invalid Code39 symbol, should not happen" );
+                        break;
+                }
+        }
+
+        if ( text_flag )
+        {
+                string_plus_stars = g_strdup_printf ("*%s*", string);
+                lgl_barcode_add_string (bc,
+                                        x_quiet + width/2, height + (TEXT_AREA_HEIGHT-TEXT_SIZE)/2,
+                                        TEXT_SIZE, string_plus_stars, strlen (string_plus_stars));
+                g_free (string_plus_stars);
+        }
+
+        bc->width  = width + 2*x_quiet;
+        bc->height = text_flag ? height + TEXT_AREA_HEIGHT : height;
+
+        return bc;
+}
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglbarcode/lgl-barcode-code39.h b/libglbarcode/lgl-barcode-code39.h
new file mode 100644 (file)
index 0000000..d8cbb09
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ *  lgl-barcode-code39.h
+ *  Copyright (C) 2001-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglbarcode.
+ *
+ *  libglbarcode is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglbarcode is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglbarcode.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __LGL_BARCODE_CODE39_H__
+#define __LGL_BARCODE_CODE39_H__
+
+#include "lgl-barcode.h"
+#include "lgl-barcode-type.h"
+
+G_BEGIN_DECLS
+
+lglBarcode *lgl_barcode_code39_new (lglBarcodeType  type,
+                                    gboolean        text_flag,
+                                    gboolean        checksum_flag,
+                                    gdouble         w,
+                                    gdouble         h,
+                                    const gchar    *data);
+
+G_END_DECLS
+
+#endif /* __LGL_BARCODE_CODE39_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglbarcode/lgl-barcode-create.c b/libglbarcode/lgl-barcode-create.c
new file mode 100644 (file)
index 0000000..1aec23b
--- /dev/null
@@ -0,0 +1,119 @@
+/*
+ *  lgl-barcode-create.c
+ *  Copyright (C) 2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglbarcode.
+ *
+ *  libglbarcode is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglbarcode is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglbarcode.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "lgl-barcode-create.h"
+
+#include "lgl-barcode-postnet.h"
+#include "lgl-barcode-onecode.h"
+#include "lgl-barcode-code39.h"
+
+
+/*===========================================*/
+/* Private macros and constants.             */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Private types                             */
+/*===========================================*/
+
+typedef lglBarcode *(*BarcodeNewFunc) (lglBarcodeType  type,
+                                       gboolean        text_flag,
+                                       gboolean        checksum_flag,
+                                       gdouble         w,
+                                       gdouble         h,
+                                       const gchar    *data);
+
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+BarcodeNewFunc create_func[LGL_BARCODE_N_TYPES] = {
+
+        /* LGL_BARCODE_TYPE_POSTNET    */ lgl_barcode_postnet_new,
+        /* LGL_BARCODE_TYPE_POSTNET_5  */ lgl_barcode_postnet_new,
+        /* LGL_BARCODE_TYPE_POSTNET_9  */ lgl_barcode_postnet_new,
+        /* LGL_BARCODE_TYPE_POSTNET_11 */ lgl_barcode_postnet_new,
+        /* LGL_BARCODE_TYPE_CEPNET     */ lgl_barcode_postnet_new,
+
+        /* LGL_BARCODE_TYPE_ONECODE    */ lgl_barcode_onecode_new,
+
+        /* LGL_BARCODE_TYPE_CODE39     */ lgl_barcode_code39_new,
+        /* LGL_BARCODE_TYPE_CODE39_EXT */ lgl_barcode_code39_new,
+};
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+
+/****************************************************************************/
+/**
+ * lgl_barcode_create:
+ * @type:           Barcode type selection (#lglBarcodeType)
+ * @text_flag:      %TRUE to show text, if supported by barcode type
+ * @checksum_flag:  %TRUE to include checksum, if supported or optional for barcode type
+ * @w:              Suggested width of barcode
+ * @h:              Suggested height of barcode
+ * @data:           Data to encode into barcode
+ *
+ * Create a new barcode structure, encoding @data with selected barcode type and
+ * characteristics.
+ *
+ * Barcode dimensions (@w and @h) are in points ( 1 point = 1/72 inch ).
+ * If either @w or @h are zero, the barcode will be rendered in a nominal size
+ * appropriate for the barcode type and data.  The actual size of the resulting
+ * barcode may also be limited by required tolerances of line sizes and spacing
+ * for the given barcode type. 
+ *
+ *
+ * Returns: A newly allocated #lglBarcode structure.  Use lgl_barcode_free() to
+ *          free it.
+ */
+lglBarcode *
+lgl_barcode_create (lglBarcodeType     type,
+                    gboolean           text_flag,
+                    gboolean           checksum_flag,
+                    gdouble            w,
+                    gdouble            h,
+                    const gchar       *data)
+{
+        if ( (type < 0) || (type >= LGL_BARCODE_N_TYPES) )
+        {
+                g_message ("Invalid barcode type.");
+                return NULL;
+        }
+
+        return create_func[type] (type, text_flag, checksum_flag, w, h, data);
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglbarcode/lgl-barcode-create.h b/libglbarcode/lgl-barcode-create.h
new file mode 100644 (file)
index 0000000..0ccebbc
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ *  lgl-barcode-create.h
+ *  Copyright (C) 2001-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglbarcode.
+ *
+ *  libglbarcode is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglbarcode is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglbarcode.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __LGL_BARCODE_CREATE_H__
+#define __LGL_BARCODE_CREATE_H__
+
+#include <glib.h>
+
+#include "lgl-barcode.h"
+#include "lgl-barcode-type.h"
+
+G_BEGIN_DECLS
+
+
+lglBarcode  *lgl_barcode_create (lglBarcodeType     type,
+                                 gboolean           text_flag,
+                                 gboolean           checksum_flag,
+                                 gdouble            w,
+                                 gdouble            h,
+                                 const gchar       *data);
+
+G_END_DECLS
+
+#endif /* __LGL_BARCODE_CREATE_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglbarcode/lgl-barcode-onecode.c b/libglbarcode/lgl-barcode-onecode.c
new file mode 100644 (file)
index 0000000..ab744f6
--- /dev/null
@@ -0,0 +1,747 @@
+/*
+ *  lgl-barcode-onecode.c
+ *  Copyright (C) 2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglbarcode.
+ *
+ *  libglbarcode is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglbarcode is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglbarcode.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * This module implements the Intelligent Mail (OneCode) barcode
+ * specified in the USPS specification USPS-B-3200E, 07/08/05.
+ */
+
+#include <config.h>
+
+#include "lgl-barcode-onecode.h"
+
+#include <glib.h>
+#include <ctype.h>
+#include <string.h>
+
+/*========================================================*/
+/* Private macros and constants.                          */
+/*========================================================*/
+
+#define CHAR_A 0
+#define CHAR_B 1
+#define CHAR_C 2
+#define CHAR_D 3
+#define CHAR_E 4
+#define CHAR_F 5
+#define CHAR_G 6
+#define CHAR_H 7
+#define CHAR_I 8
+#define CHAR_J 9
+
+#define PTS_PER_INCH 72.0
+
+#define ONECODE_BAR_WIDTH        ( 0.02   * PTS_PER_INCH )
+#define ONECODE_FULL_HEIGHT      ( 0.145  * PTS_PER_INCH )
+#define ONECODE_ASCENDER_HEIGHT  ( 0.0965 * PTS_PER_INCH )
+#define ONECODE_DESCENDER_HEIGHT ( 0.0965 * PTS_PER_INCH )
+#define ONECODE_TRACKER_HEIGHT   ( 0.048  * PTS_PER_INCH )
+#define ONECODE_FULL_OFFSET      0
+#define ONECODE_ASCENDER_OFFSET  0
+#define ONECODE_DESCENDER_OFFSET ( 0.0485 * PTS_PER_INCH )
+#define ONECODE_TRACKER_OFFSET   ( 0.0485 * PTS_PER_INCH )
+#define ONECODE_BAR_PITCH        ( 0.0458 * PTS_PER_INCH )
+#define ONECODE_HORIZ_MARGIN     ( 0.125  * PTS_PER_INCH )
+#define ONECODE_VERT_MARGIN      ( 0.028  * PTS_PER_INCH )
+
+
+/*========================================================*/
+/* Private types.                                         */
+/*========================================================*/
+
+typedef struct {
+        guchar byte[13];
+} Int104;
+
+typedef struct {
+        struct { gint i; gint mask; } descender;
+        struct { gint i; gint mask; } ascender;
+} BarMapEntry;
+
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+static BarMapEntry bar_map[] = {
+        /*  1 */ { { CHAR_H, 1<<2  }, { CHAR_E, 1<<3  } },
+        /*  2 */ { { CHAR_B, 1<<10 }, { CHAR_A, 1<<0  } },
+        /*  3 */ { { CHAR_J, 1<<12 }, { CHAR_C, 1<<8  } },
+        /*  4 */ { { CHAR_F, 1<<5  }, { CHAR_G, 1<<11 } },
+        /*  5 */ { { CHAR_I, 1<<9  }, { CHAR_D, 1<<1  } },
+        /*  6 */ { { CHAR_A, 1<<1  }, { CHAR_F, 1<<12 } },
+        /*  7 */ { { CHAR_C, 1<<5  }, { CHAR_B, 1<<8  } },
+        /*  8 */ { { CHAR_E, 1<<4  }, { CHAR_J, 1<<11 } },
+        /*  9 */ { { CHAR_G, 1<<3  }, { CHAR_I, 1<<10 } },
+        /* 10 */ { { CHAR_D, 1<<9  }, { CHAR_H, 1<<6  } },
+        /* 11 */ { { CHAR_F, 1<<11 }, { CHAR_B, 1<<4  } },
+        /* 12 */ { { CHAR_I, 1<<5  }, { CHAR_C, 1<<12 } },
+        /* 13 */ { { CHAR_J, 1<<10 }, { CHAR_A, 1<<2  } },
+        /* 14 */ { { CHAR_H, 1<<1  }, { CHAR_G, 1<<7  } },
+        /* 15 */ { { CHAR_D, 1<<6  }, { CHAR_E, 1<<9  } },
+        /* 16 */ { { CHAR_A, 1<<3  }, { CHAR_I, 1<<6  } },
+        /* 17 */ { { CHAR_G, 1<<4  }, { CHAR_C, 1<<7  } },
+        /* 18 */ { { CHAR_B, 1<<1  }, { CHAR_J, 1<<9  } },
+        /* 19 */ { { CHAR_H, 1<<10 }, { CHAR_F, 1<<2  } },
+        /* 20 */ { { CHAR_E, 1<<0  }, { CHAR_D, 1<<8  } },
+        /* 21 */ { { CHAR_G, 1<<2  }, { CHAR_A, 1<<4  } },
+        /* 22 */ { { CHAR_I, 1<<11 }, { CHAR_B, 1<<0  } },
+        /* 23 */ { { CHAR_J, 1<<8  }, { CHAR_D, 1<<12 } },
+        /* 24 */ { { CHAR_C, 1<<6  }, { CHAR_H, 1<<7  } },
+        /* 25 */ { { CHAR_F, 1<<1  }, { CHAR_E, 1<<10 } },
+        /* 26 */ { { CHAR_B, 1<<12 }, { CHAR_G, 1<<9  } },
+        /* 27 */ { { CHAR_H, 1<<3  }, { CHAR_I, 1<<0  } },
+        /* 28 */ { { CHAR_F, 1<<8  }, { CHAR_J, 1<<7  } },
+        /* 29 */ { { CHAR_E, 1<<6  }, { CHAR_C, 1<<10 } },
+        /* 30 */ { { CHAR_D, 1<<4  }, { CHAR_A, 1<<5  } },
+        /* 31 */ { { CHAR_I, 1<<4  }, { CHAR_F, 1<<7  } },
+        /* 32 */ { { CHAR_H, 1<<11 }, { CHAR_B, 1<<9  } },
+        /* 33 */ { { CHAR_G, 1<<0  }, { CHAR_J, 1<<6  } },
+        /* 34 */ { { CHAR_A, 1<<6  }, { CHAR_E, 1<<8  } },
+        /* 35 */ { { CHAR_C, 1<<1  }, { CHAR_D, 1<<2  } },
+        /* 36 */ { { CHAR_F, 1<<9  }, { CHAR_I, 1<<12 } },
+        /* 37 */ { { CHAR_E, 1<<11 }, { CHAR_G, 1<<1  } },
+        /* 38 */ { { CHAR_J, 1<<5  }, { CHAR_H, 1<<4  } },
+        /* 39 */ { { CHAR_D, 1<<3  }, { CHAR_B, 1<<2  } },
+        /* 40 */ { { CHAR_A, 1<<7  }, { CHAR_C, 1<<0  } },
+        /* 41 */ { { CHAR_B, 1<<3  }, { CHAR_E, 1<<1  } },
+        /* 42 */ { { CHAR_G, 1<<10 }, { CHAR_D, 1<<5  } },
+        /* 43 */ { { CHAR_I, 1<<7  }, { CHAR_J, 1<<4  } },
+        /* 44 */ { { CHAR_C, 1<<11 }, { CHAR_F, 1<<6  } },
+        /* 45 */ { { CHAR_A, 1<<8  }, { CHAR_H, 1<<12 } },
+        /* 46 */ { { CHAR_E, 1<<2  }, { CHAR_I, 1<<1  } },
+        /* 47 */ { { CHAR_F, 1<<10 }, { CHAR_D, 1<<0  } },
+        /* 48 */ { { CHAR_J, 1<<3  }, { CHAR_A, 1<<9  } },
+        /* 49 */ { { CHAR_G, 1<<5  }, { CHAR_C, 1<<4  } },
+        /* 50 */ { { CHAR_H, 1<<8  }, { CHAR_B, 1<<7  } },
+        /* 51 */ { { CHAR_F, 1<<0  }, { CHAR_E, 1<<5  } },
+        /* 52 */ { { CHAR_C, 1<<3  }, { CHAR_A, 1<<10 } },
+        /* 53 */ { { CHAR_G, 1<<12 }, { CHAR_J, 1<<2  } },
+        /* 54 */ { { CHAR_D, 1<<11 }, { CHAR_B, 1<<6  } },
+        /* 55 */ { { CHAR_I, 1<<8  }, { CHAR_H, 1<<9  } },
+        /* 56 */ { { CHAR_F, 1<<4  }, { CHAR_A, 1<<11 } },
+        /* 57 */ { { CHAR_B, 1<<5  }, { CHAR_C, 1<<2  } },
+        /* 58 */ { { CHAR_J, 1<<1  }, { CHAR_E, 1<<12 } },
+        /* 59 */ { { CHAR_I, 1<<3  }, { CHAR_G, 1<<6  } },
+        /* 60 */ { { CHAR_H, 1<<0  }, { CHAR_D, 1<<7  } },
+        /* 61 */ { { CHAR_E, 1<<7  }, { CHAR_H, 1<<5  } },
+        /* 62 */ { { CHAR_A, 1<<12 }, { CHAR_B, 1<<11 } },
+        /* 63 */ { { CHAR_C, 1<<9  }, { CHAR_J, 1<<0  } },
+        /* 64 */ { { CHAR_G, 1<<8  }, { CHAR_F, 1<<3  } },
+        /* 65 */ { { CHAR_D, 1<<10 }, { CHAR_I, 1<<2  } }
+};
+
+static gchar * tdaf_table[4] = { "T", "D", "A", "F" };
+
+static guint character_table[] = {
+        /* Table I 5 of 13. */
+          31, 7936,   47, 7808,   55, 7552,   59, 7040,   61, 6016,
+          62, 3968,   79, 7744,   87, 7488,   91, 6976,   93, 5952,
+          94, 3904,  103, 7360,  107, 6848,  109, 5824,  110, 3776,
+         115, 6592,  117, 5568,  118, 3520,  121, 5056,  122, 3008,
+         124, 1984,  143, 7712,  151, 7456,  155, 6944,  157, 5920,
+         158, 3872,  167, 7328,  171, 6816,  173, 5792,  174, 3744,
+         179, 6560,  181, 5536,  182, 3488,  185, 5024,  186, 2976,
+         188, 1952,  199, 7264,  203, 6752,  205, 5728,  206, 3680,
+         211, 6496,  213, 5472,  214, 3424,  217, 4960,  218, 2912,
+         220, 1888,  227, 6368,  229, 5344,  230, 3296,  233, 4832,
+         234, 2784,  236, 1760,  241, 4576,  242, 2528,  244, 1504,
+         248,  992,  271, 7696,  279, 7440,  283, 6928,  285, 5904,
+         286, 3856,  295, 7312,  299, 6800,  301, 5776,  302, 3728,
+         307, 6544,  309, 5520,  310, 3472,  313, 5008,  314, 2960,
+         316, 1936,  327, 7248,  331, 6736,  333, 5712,  334, 3664,
+         339, 6480,  341, 5456,  342, 3408,  345, 4944,  346, 2896,
+         348, 1872,  355, 6352,  357, 5328,  358, 3280,  361, 4816,
+         362, 2768,  364, 1744,  369, 4560,  370, 2512,  372, 1488,
+         376,  976,  391, 7216,  395, 6704,  397, 5680,  398, 3632,
+         403, 6448,  405, 5424,  406, 3376,  409, 4912,  410, 2864,
+         412, 1840,  419, 6320,  421, 5296,  422, 3248,  425, 4784,
+         426, 2736,  428, 1712,  433, 4528,  434, 2480,  436, 1456,
+         440,  944,  451, 6256,  453, 5232,  454, 3184,  457, 4720,
+         458, 2672,  460, 1648,  465, 4464,  466, 2416,  468, 1392,
+         472,  880,  481, 4336,  482, 2288,  484, 1264,  488,  752,
+         527, 7688,  535, 7432,  539, 6920,  541, 5896,  542, 3848,
+         551, 7304,  555, 6792,  557, 5768,  558, 3720,  563, 6536,
+         565, 5512,  566, 3464,  569, 5000,  570, 2952,  572, 1928,
+         583, 7240,  587, 6728,  589, 5704,  590, 3656,  595, 6472,
+         597, 5448,  598, 3400,  601, 4936,  602, 2888,  604, 1864,
+         611, 6344,  613, 5320,  614, 3272,  617, 4808,  618, 2760,
+         620, 1736,  625, 4552,  626, 2504,  628, 1480,  632,  968,
+         647, 7208,  651, 6696,  653, 5672,  654, 3624,  659, 6440,
+         661, 5416,  662, 3368,  665, 4904,  666, 2856,  668, 1832,
+         675, 6312,  677, 5288,  678, 3240,  681, 4776,  682, 2728,
+         684, 1704,  689, 4520,  690, 2472,  692, 1448,  696,  936,
+         707, 6248,  709, 5224,  710, 3176,  713, 4712,  714, 2664,
+         716, 1640,  721, 4456,  722, 2408,  724, 1384,  728,  872,
+         737, 4328,  738, 2280,  740, 1256,  775, 7192,  779, 6680,
+         781, 5656,  782, 3608,  787, 6424,  789, 5400,  790, 3352,
+         793, 4888,  794, 2840,  796, 1816,  803, 6296,  805, 5272,
+         806, 3224,  809, 4760,  810, 2712,  812, 1688,  817, 4504,
+         818, 2456,  820, 1432,  824,  920,  835, 6232,  837, 5208,
+         838, 3160,  841, 4696,  842, 2648,  844, 1624,  849, 4440,
+         850, 2392,  852, 1368,  865, 4312,  866, 2264,  868, 1240,
+         899, 6200,  901, 5176,  902, 3128,  905, 4664,  906, 2616,
+         908, 1592,  913, 4408,  914, 2360,  916, 1336,  929, 4280,
+         930, 2232,  932, 1208,  961, 4216,  962, 2168,  964, 1144,
+        1039, 7684, 1047, 7428, 1051, 6916, 1053, 5892, 1054, 3844,
+        1063, 7300, 1067, 6788, 1069, 5764, 1070, 3716, 1075, 6532,
+        1077, 5508, 1078, 3460, 1081, 4996, 1082, 2948, 1084, 1924,
+        1095, 7236, 1099, 6724, 1101, 5700, 1102, 3652, 1107, 6468,
+        1109, 5444, 1110, 3396, 1113, 4932, 1114, 2884, 1116, 1860,
+        1123, 6340, 1125, 5316, 1126, 3268, 1129, 4804, 1130, 2756,
+        1132, 1732, 1137, 4548, 1138, 2500, 1140, 1476, 1159, 7204,
+        1163, 6692, 1165, 5668, 1166, 3620, 1171, 6436, 1173, 5412,
+        1174, 3364, 1177, 4900, 1178, 2852, 1180, 1828, 1187, 6308,
+        1189, 5284, 1190, 3236, 1193, 4772, 1194, 2724, 1196, 1700,
+        1201, 4516, 1202, 2468, 1204, 1444, 1219, 6244, 1221, 5220,
+        1222, 3172, 1225, 4708, 1226, 2660, 1228, 1636, 1233, 4452,
+        1234, 2404, 1236, 1380, 1249, 4324, 1250, 2276, 1287, 7188,
+        1291, 6676, 1293, 5652, 1294, 3604, 1299, 6420, 1301, 5396,
+        1302, 3348, 1305, 4884, 1306, 2836, 1308, 1812, 1315, 6292,
+        1317, 5268, 1318, 3220, 1321, 4756, 1322, 2708, 1324, 1684,
+        1329, 4500, 1330, 2452, 1332, 1428, 1347, 6228, 1349, 5204,
+        1350, 3156, 1353, 4692, 1354, 2644, 1356, 1620, 1361, 4436,
+        1362, 2388, 1377, 4308, 1378, 2260, 1411, 6196, 1413, 5172,
+        1414, 3124, 1417, 4660, 1418, 2612, 1420, 1588, 1425, 4404,
+        1426, 2356, 1441, 4276, 1442, 2228, 1473, 4212, 1474, 2164,
+        1543, 7180, 1547, 6668, 1549, 5644, 1550, 3596, 1555, 6412,
+        1557, 5388, 1558, 3340, 1561, 4876, 1562, 2828, 1564, 1804,
+        1571, 6284, 1573, 5260, 1574, 3212, 1577, 4748, 1578, 2700,
+        1580, 1676, 1585, 4492, 1586, 2444, 1603, 6220, 1605, 5196,
+        1606, 3148, 1609, 4684, 1610, 2636, 1617, 4428, 1618, 2380,
+        1633, 4300, 1634, 2252, 1667, 6188, 1669, 5164, 1670, 3116,
+        1673, 4652, 1674, 2604, 1681, 4396, 1682, 2348, 1697, 4268,
+        1698, 2220, 1729, 4204, 1730, 2156, 1795, 6172, 1797, 5148,
+        1798, 3100, 1801, 4636, 1802, 2588, 1809, 4380, 1810, 2332,
+        1825, 4252, 1826, 2204, 1857, 4188, 1858, 2140, 1921, 4156,
+        1922, 2108, 2063, 7682, 2071, 7426, 2075, 6914, 2077, 5890,
+        2078, 3842, 2087, 7298, 2091, 6786, 2093, 5762, 2094, 3714,
+        2099, 6530, 2101, 5506, 2102, 3458, 2105, 4994, 2106, 2946,
+        2119, 7234, 2123, 6722, 2125, 5698, 2126, 3650, 2131, 6466,
+        2133, 5442, 2134, 3394, 2137, 4930, 2138, 2882, 2147, 6338,
+        2149, 5314, 2150, 3266, 2153, 4802, 2154, 2754, 2161, 4546,
+        2162, 2498, 2183, 7202, 2187, 6690, 2189, 5666, 2190, 3618,
+        2195, 6434, 2197, 5410, 2198, 3362, 2201, 4898, 2202, 2850,
+        2211, 6306, 2213, 5282, 2214, 3234, 2217, 4770, 2218, 2722,
+        2225, 4514, 2226, 2466, 2243, 6242, 2245, 5218, 2246, 3170,
+        2249, 4706, 2250, 2658, 2257, 4450, 2258, 2402, 2273, 4322,
+        2311, 7186, 2315, 6674, 2317, 5650, 2318, 3602, 2323, 6418,
+        2325, 5394, 2326, 3346, 2329, 4882, 2330, 2834, 2339, 6290,
+        2341, 5266, 2342, 3218, 2345, 4754, 2346, 2706, 2353, 4498,
+        2354, 2450, 2371, 6226, 2373, 5202, 2374, 3154, 2377, 4690,
+        2378, 2642, 2385, 4434, 2401, 4306, 2435, 6194, 2437, 5170,
+        2438, 3122, 2441, 4658, 2442, 2610, 2449, 4402, 2465, 4274,
+        2497, 4210, 2567, 7178, 2571, 6666, 2573, 5642, 2574, 3594,
+        2579, 6410, 2581, 5386, 2582, 3338, 2585, 4874, 2586, 2826,
+        2595, 6282, 2597, 5258, 2598, 3210, 2601, 4746, 2602, 2698,
+        2609, 4490, 2627, 6218, 2629, 5194, 2630, 3146, 2633, 4682,
+        2641, 4426, 2657, 4298, 2691, 6186, 2693, 5162, 2694, 3114,
+        2697, 4650, 2705, 4394, 2721, 4266, 2753, 4202, 2819, 6170,
+        2821, 5146, 2822, 3098, 2825, 4634, 2833, 4378, 2849, 4250,
+        2881, 4186, 2945, 4154, 3079, 7174, 3083, 6662, 3085, 5638,
+        3086, 3590, 3091, 6406, 3093, 5382, 3094, 3334, 3097, 4870,
+        3107, 6278, 3109, 5254, 3110, 3206, 3113, 4742, 3121, 4486,
+        3139, 6214, 3141, 5190, 3145, 4678, 3153, 4422, 3169, 4294,
+        3203, 6182, 3205, 5158, 3209, 4646, 3217, 4390, 3233, 4262,
+        3265, 4198, 3331, 6166, 3333, 5142, 3337, 4630, 3345, 4374,
+        3361, 4246, 3393, 4182, 3457, 4150, 3587, 6158, 3589, 5134,
+        3593, 4622, 3601, 4366, 3617, 4238, 3649, 4174, 3713, 4142,
+        3841, 4126, 4111, 7681, 4119, 7425, 4123, 6913, 4125, 5889,
+        4135, 7297, 4139, 6785, 4141, 5761, 4147, 6529, 4149, 5505,
+        4153, 4993, 4167, 7233, 4171, 6721, 4173, 5697, 4179, 6465,
+        4181, 5441, 4185, 4929, 4195, 6337, 4197, 5313, 4201, 4801,
+        4209, 4545, 4231, 7201, 4235, 6689, 4237, 5665, 4243, 6433,
+        4245, 5409, 4249, 4897, 4259, 6305, 4261, 5281, 4265, 4769,
+        4273, 4513, 4291, 6241, 4293, 5217, 4297, 4705, 4305, 4449,
+        4359, 7185, 4363, 6673, 4365, 5649, 4371, 6417, 4373, 5393,
+        4377, 4881, 4387, 6289, 4389, 5265, 4393, 4753, 4401, 4497,
+        4419, 6225, 4421, 5201, 4425, 4689, 4483, 6193, 4485, 5169,
+        4489, 4657, 4615, 7177, 4619, 6665, 4621, 5641, 4627, 6409,
+        4629, 5385, 4633, 4873, 4643, 6281, 4645, 5257, 4649, 4745,
+        4675, 6217, 4677, 5193, 4739, 6185, 4741, 5161, 4867, 6169,
+        4869, 5145, 5127, 7173, 5131, 6661, 5133, 5637, 5139, 6405,
+        5141, 5381, 5155, 6277, 5157, 5253, 5187, 6213, 5251, 6181,
+        5379, 6165, 5635, 6157, 6151, 7171, 6155, 6659, 6163, 6403,
+        6179, 6275, 6211, 5189, 4681, 4433, 4321, 3142, 2634, 2386,
+        2274, 1612, 1364, 1252,  856,  744,  496,
+        /* Table II 2 of 13. */
+           3, 6144,    5, 5120,    6, 3072,    9, 4608,   10, 2560,
+          12, 1536,   17, 4352,   18, 2304,   20, 1280,   24,  768,
+          33, 4224,   34, 2176,   36, 1152,   40,  640,   48,  384,
+          65, 4160,   66, 2112,   68, 1088,   72,  576,   80,  320,
+          96,  192,  129, 4128,  130, 2080,  132, 1056,  136,  544,
+         144,  288,  257, 4112,  258, 2064,  260, 1040,  264,  528,
+         513, 4104,  514, 2056,  516, 1032, 1025, 4100, 1026, 2052,
+        2049, 4098, 4097, 2050, 1028,  520,  272,  160
+};
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+static gboolean     onecode_is_data_valid (const gchar      *data);
+
+static gchar       *onecode_encode        (const gchar      *data);
+
+static lglBarcode  *onecode_vectorize     (const gchar      *code);
+
+static void         int104_mult_uint      (Int104           *x,
+                                           guint             y);
+static void         int104_add_uint       (Int104           *x,
+                                           guint             y);
+static void         int104_add_uint64     (Int104           *x,
+                                           guint64           y);
+static guint        int104_div_uint       (Int104           *x,
+                                           guint             y);
+#ifdef DEBUG
+static void         int104_print          (Int104           *x);
+#endif
+
+static unsigned short   USPS_MSB_Math_CRC11GenerateFrameCheckSequence( unsigned char *ByteArrayPtr );
+
+
+/****************************************************************************/
+/* Generate new One Code barcode structure from data.                       */
+/****************************************************************************/
+lglBarcode *
+lgl_barcode_onecode_new (lglBarcodeType  type,
+                         gboolean        text_flag,
+                         gboolean        checksum_flag,
+                         gdouble         w,
+                         gdouble         h,
+                         const gchar    *data)
+{
+        gchar              *code;
+        lglBarcode         *bc;
+
+        if ( type != LGL_BARCODE_TYPE_ONECODE )
+        {
+                g_message ("Invalid barcode type for ONECODE backend.");
+                return NULL;
+        }
+
+
+        /* Validate data */
+        if ( !onecode_is_data_valid (data) )
+        {
+                return NULL;
+        }
+
+        /* Now get code string */
+        code = onecode_encode (data);
+        if (code == NULL) {
+                return NULL;
+        }
+
+        /* Now vectorize encoded data. */
+        bc = onecode_vectorize (code);
+
+        g_free (code);
+
+        return bc;
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Validate if string is of proper length & contains only valid characters. */
+/*--------------------------------------------------------------------------*/
+static gboolean
+onecode_is_data_valid (const gchar *data)
+{
+        gchar *p;
+        gint   str_length;
+
+        if (!data)
+        {
+                return FALSE;
+        }
+
+        str_length = strlen (data);
+        if ( (str_length != 20) &&
+             (str_length != 25) &&
+             (str_length != 29) &&
+             (str_length != 31) )
+        {
+                return FALSE;
+        }
+
+        for ( p = (gchar *)data; *p != 0; p++ )
+        {
+                if (!g_ascii_isdigit (*p))
+                {
+                        return FALSE;
+                }
+        }
+
+        if (data[1] > '4')
+        {
+                return FALSE; /* Invalid Barcode Identifier. */
+        }
+
+        return TRUE;
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Generate string of symbols, representing barcode.              */
+/*--------------------------------------------------------------------------*/
+static gchar *
+onecode_encode (const gchar *data)
+{
+        Int104   value = {{0}};
+        gint     i;
+        guint    crc11;
+        guint    codeword[10];
+        guint    character[10];
+        gint     d, a;
+        GString *code;
+
+        /*-----------------------------------------------------------*/
+        /* Step 1 -- Conversion of Data Fields into Binary Data      */
+        /*-----------------------------------------------------------*/
+
+        /* Step 1.a -- Routing Code */
+        for ( i = 20; data[i] != 0; i++ )
+        {
+                int104_mult_uint (&value, 10);
+                int104_add_uint  (&value, data[i] - '0');
+        }
+        switch ( i-20 )
+        {
+        case 0:
+                break;
+        case 5:
+                int104_add_uint  (&value, 1);
+                break;
+        case 9:
+                int104_add_uint  (&value, 1);
+                int104_add_uint  (&value, 100000);
+                break;
+        case 11:
+                int104_add_uint   (&value, 1);
+                int104_add_uint   (&value, 100000);
+                int104_add_uint64 (&value, 1000000000);
+                break;
+        default:
+                return NULL; /* Should not happen if length tests passed. */
+                break;
+        }
+
+        /* Step 1.b -- Tracking Code */
+        int104_mult_uint (&value, 10);
+        int104_add_uint  (&value, data[0] - '0');
+        int104_mult_uint (&value, 5);
+        int104_add_uint  (&value, data[1] - '0');
+
+        for ( i = 2; i < 20; i++ )
+        {
+                int104_mult_uint (&value, 10);
+                int104_add_uint  (&value, data[i] - '0');
+        }
+
+
+        /*-----------------------------------------------------------*/
+        /* Step 2 -- Generation of 11-Bit CRC on Binary Data         */
+        /*-----------------------------------------------------------*/
+
+        crc11 = USPS_MSB_Math_CRC11GenerateFrameCheckSequence( value.byte );
+
+
+        /*-----------------------------------------------------------*/
+        /* Step 3 -- Conversion of Binary Data to Codewords          */
+        /*-----------------------------------------------------------*/
+
+        codeword[9] = int104_div_uint (&value, 636);
+        for ( i = 8; i >= 1; i-- )
+        {
+                codeword[i] = int104_div_uint (&value, 1365);
+        }
+        codeword[0] = int104_div_uint (&value, 659);
+
+
+        /*-----------------------------------------------------------*/
+        /* Step 4 -- Inserting Additional Information into Codewords */
+        /*-----------------------------------------------------------*/
+
+        codeword[9] *= 2;
+        codeword[0] += (crc11 & 0x400) ? 659 : 0;
+
+
+        /*-----------------------------------------------------------*/
+        /* Step 5 -- Conversion from Codewords to Characters         */
+        /*-----------------------------------------------------------*/
+
+        for ( i = 0; i < 10; i++ )
+        {
+                character[i] = character_table[ codeword[i] ];
+
+                if ( crc11 & (1<<i) )
+                {
+                        character[i] = ~character[i] & 0x1FFF;
+                }
+        }
+
+
+        /*-----------------------------------------------------------*/
+        /* Step 6 -- Conversion from Characters to IMail Barcode     */
+        /*-----------------------------------------------------------*/
+
+        code = g_string_new ("");
+        for ( i = 0; i < 65; i++ )
+        {
+                d = (character[ bar_map[i].descender.i ] & bar_map[i].descender.mask) != 0;
+                a = (character[ bar_map[i].ascender.i ]  & bar_map[i].ascender.mask)  != 0;
+
+                code = g_string_append (code, tdaf_table[ (a<<1) + d ]);
+        }
+
+
+        return g_string_free (code, FALSE);
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Vectorize encoded data.                                                  */
+/*--------------------------------------------------------------------------*/
+static lglBarcode *
+onecode_vectorize (const gchar  *code)
+{
+        lglBarcode         *bc;
+        gchar              *p;
+        gdouble             x, y, length, width;
+
+        bc = lgl_barcode_new ();
+
+        /* Now traverse the code string and create a list of lines */
+        x = ONECODE_HORIZ_MARGIN;
+        for (p = (gchar *)code; *p != 0; p++)
+        {
+                y = ONECODE_VERT_MARGIN;
+                switch ( *p )
+                {
+                case 'T':
+                        y      += ONECODE_TRACKER_OFFSET;
+                        length  = ONECODE_TRACKER_HEIGHT;
+                        break;
+                case 'D':
+                        y      += ONECODE_DESCENDER_OFFSET;
+                        length  = ONECODE_DESCENDER_HEIGHT;
+                        break;
+                case 'A':
+                        y      += ONECODE_ASCENDER_OFFSET;
+                        length  = ONECODE_ASCENDER_HEIGHT;
+                        break;
+                case 'F':
+                        y      += ONECODE_FULL_OFFSET;
+                        length  = ONECODE_FULL_HEIGHT;
+                        break;
+                default:
+                        break;
+                }
+                width = ONECODE_BAR_WIDTH;
+
+                lgl_barcode_add_box (bc, x, y, width, length);
+
+                x += ONECODE_BAR_PITCH;
+        }
+
+        bc->width = x + ONECODE_HORIZ_MARGIN;
+        bc->height = ONECODE_FULL_HEIGHT + 2 * ONECODE_VERT_MARGIN;
+
+        return bc;
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Multiply 104 bit integer by unsigned int.                                */
+/*--------------------------------------------------------------------------*/
+static void
+int104_mult_uint (Int104  *x,
+                  guint    y)
+{
+        gint    i;
+        guint64 temp, carry;
+
+        carry = 0;
+        for ( i = 12; i >= 0; i-- )
+        {
+                temp = x->byte[i] * y  +  carry;
+
+                x->byte[i] = temp & 0xFF;
+                carry      = temp >> 8;
+        }
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Add unsigned int to 104 bit integer.                                     */
+/*--------------------------------------------------------------------------*/
+static void
+int104_add_uint (Int104  *x,
+                 guint     y)
+{
+        gint    i;
+        guint   temp, carry;
+
+        carry = 0;
+        for ( i = 12; i >= 0; i-- )
+        {
+                temp = x->byte[i] + (y & 0xFF) + carry;
+
+                x->byte[i]  = temp & 0xFF;
+                carry       = temp >> 8;
+                y           = y >> 8;
+        }
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Add unsigned 64 bit integer to 104 bit integer.                          */
+/*--------------------------------------------------------------------------*/
+static void
+int104_add_uint64 (Int104  *x,
+                   guint64   y)
+{
+        gint    i;
+        guint64 temp, carry;
+
+        carry = 0;
+        for ( i = 12; i >= 0; i-- )
+        {
+                temp = x->byte[i] + (y & 0xFF) + carry;
+
+                x->byte[i]  = temp & 0xFF;
+                carry       = temp >> 8;
+                y           = y >> 8;
+        }
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Divide 104 bit integer by unsigned int.                                  */
+/*--------------------------------------------------------------------------*/
+static guint
+int104_div_uint (Int104 *x,
+                 guint   y)
+{
+        guint carry, tmp, i;
+
+        carry = 0;
+        for ( i = 0; i < 13; i++ )
+        {
+                tmp        = x->byte[i] + (carry<<8);
+                x->byte[i] = tmp / y;
+                carry      = tmp % y;
+        }
+
+        return carry;
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Print hex representation of 104 bit integer.  (For debugging)            */
+/*--------------------------------------------------------------------------*/
+#ifdef DEBUG
+static void
+int104_print (Int104  *x)
+{
+        gint i;
+
+        for ( i = 0; i < 13; i++ )
+        {
+                g_print ("%02x ", x->byte[i] & 0xFF);
+        }
+        g_print ("\n");
+}
+#endif
+
+
+/***************************************************************************
+ ** USPS_MSB_Math_CRC11GenerateFrameCheckSequence
+ **
+ ** Inputs:
+ **   ByteAttayPtr is the address of a 13 byte array holding 102 bytes which
+ **   are right justified - ie: the leftmost 2 bits of the first byte do not
+ **   hold data and must be set to zero.
+ **
+ ** Outputs:
+ **   return unsigned short - 11 bit Frame Check Sequence (right justified)
+ **
+ ** From Appendix C of USPS publication USPS-B-3200E, 07/08/05.
+ ***************************************************************************/
+unsigned short
+USPS_MSB_Math_CRC11GenerateFrameCheckSequence( unsigned char *ByteArrayPtr )
+{
+        unsigned short  GeneratorPolynomial = 0x0F35;
+        unsigned short  FrameCheckSequence  = 0x07FF;
+        unsigned short  Data;
+        int             ByteIndex, Bit;
+
+        /* Do most significant byte skipping the 2 most significant bits */
+        Data = *ByteArrayPtr << 5;
+        ByteArrayPtr++;
+        for ( Bit = 2; Bit < 8; Bit++ )
+        {
+                if ( (FrameCheckSequence ^ Data) & 0x400 )
+                {
+                        FrameCheckSequence = (FrameCheckSequence << 1) ^ GeneratorPolynomial;
+                }
+                else
+                {
+                        FrameCheckSequence = (FrameCheckSequence << 1);
+                }
+                FrameCheckSequence &= 0x7FF;
+                Data <<= 1;
+        }
+
+        /* Do rest of the bytes */
+        for ( ByteIndex = 1; ByteIndex < 13; ByteIndex++ )
+        {
+                Data = *ByteArrayPtr << 3;
+                ByteArrayPtr++;
+                for ( Bit = 0; Bit < 8; Bit++ )
+                {
+                        if ( (FrameCheckSequence ^ Data) & 0x0400 )
+                        {
+                                FrameCheckSequence = (FrameCheckSequence << 1) ^ GeneratorPolynomial;
+                        }
+                        else
+                        {
+                                FrameCheckSequence = (FrameCheckSequence << 1);
+                        }
+                        FrameCheckSequence &= 0x7FF;
+                        Data <<= 1;
+                }
+        }
+
+        return FrameCheckSequence;
+}
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglbarcode/lgl-barcode-onecode.h b/libglbarcode/lgl-barcode-onecode.h
new file mode 100644 (file)
index 0000000..d1e53fb
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ *  lgl-barcode-onecode.h
+ *  Copyright (C) 2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglbarcode.
+ *
+ *  libglbarcode is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglbarcode is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglbarcode.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __LGL_BARCODE_ONECODE_H__
+#define __LGL_BARCODE_ONECODE_H__
+
+#include "lgl-barcode.h"
+#include "lgl-barcode-type.h"
+
+G_BEGIN_DECLS
+
+lglBarcode *lgl_barcode_onecode_new (lglBarcodeType  type,
+                                     gboolean        text_flag,
+                                     gboolean        checksum_flag,
+                                     gdouble         w,
+                                     gdouble         h,
+                                     const gchar    *data);
+
+G_END_DECLS
+
+#endif /* __LGL_BARCODE_ONECODE_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglbarcode/lgl-barcode-postnet.c b/libglbarcode/lgl-barcode-postnet.c
new file mode 100644 (file)
index 0000000..6308483
--- /dev/null
@@ -0,0 +1,277 @@
+/*
+ *  lgl-barcode-postnet.c
+ *  Copyright (C) 2001-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglbarcode.
+ *
+ *  libglbarcode is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglbarcode is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglbarcode.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * This module implements the POSTNET barcode specified in the USPS
+ * publication 25, Mar 2001.
+ */
+
+#include <config.h>
+
+#include "lgl-barcode-postnet.h"
+
+#include <glib.h>
+#include <ctype.h>
+
+
+/*========================================================*/
+/* Private macros and constants.                          */
+/*========================================================*/
+
+#define PTS_PER_INCH 72.0
+
+#define POSTNET_BAR_WIDTH      ( 0.02    * PTS_PER_INCH )
+#define POSTNET_FULLBAR_HEIGHT ( 0.125   * PTS_PER_INCH )
+#define POSTNET_HALFBAR_HEIGHT ( 0.05    * PTS_PER_INCH )
+#define POSTNET_BAR_PITCH      ( 0.04545 * PTS_PER_INCH )
+#define POSTNET_HORIZ_MARGIN   ( 0.125   * PTS_PER_INCH )
+#define POSTNET_VERT_MARGIN    ( 0.04    * PTS_PER_INCH )
+
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+static gchar *symbols[] = {
+        /* 0 */ "11000",
+        /* 1 */ "00011",
+        /* 2 */ "00101",
+        /* 3 */ "00110",
+        /* 4 */ "01001",
+        /* 5 */ "01010",
+        /* 6 */ "01100",
+        /* 7 */ "10001",
+        /* 8 */ "10010",
+        /* 9 */ "10100",
+};
+
+static gchar *frame_symbol = "1";
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+static gint         postnet_validate_data (const gchar *data);
+
+static gchar       *postnet_encode        (const gchar *digits);
+
+static lglBarcode  *postnet_vectorize     (const gchar *code);
+
+
+
+/****************************************************************************/
+/* Generate new Postnet barcode structure from data.                        */
+/****************************************************************************/
+lglBarcode *
+lgl_barcode_postnet_new (lglBarcodeType  type,
+                         gboolean        text_flag,
+                         gboolean        checksum_flag,
+                         gdouble         w,
+                         gdouble         h,
+                         const gchar    *data)
+{
+        gint                n_digits;
+        gchar              *code;
+        lglBarcode         *bc;
+
+        /* Validate data and length for all subtypes. */
+        n_digits = postnet_validate_data (data);
+        switch (type)
+        {
+
+        case LGL_BARCODE_TYPE_POSTNET:
+                if ( (n_digits !=  5) &&
+                     (n_digits !=  9) &&
+                     (n_digits != 11) )
+                {
+                        return NULL;
+                }
+                break;
+
+        case LGL_BARCODE_TYPE_POSTNET_5:
+                if ( n_digits != 5 )
+                {
+                        return NULL;
+                }
+                break;
+
+        case LGL_BARCODE_TYPE_POSTNET_9:
+                if ( n_digits != 9 )
+                {
+                        return NULL;
+                }
+                break;
+
+        case LGL_BARCODE_TYPE_POSTNET_11:
+                if ( n_digits != 11 )
+                {
+                        return NULL;
+                }
+                break;
+
+        case LGL_BARCODE_TYPE_CEPNET:
+                if ( n_digits !=  8 )
+                {
+                        return NULL;
+                }
+                break;
+
+        default:
+                g_message ("Invalid barcode type for POSTNET backend.");
+                return NULL;
+
+        }
+
+        /* First get code string */
+        code = postnet_encode (data);
+        if (code == NULL)
+        {
+                return NULL;
+        }
+
+        /* Now vectorize encoded data */
+        bc = postnet_vectorize (code);
+
+        g_free (code);
+
+        return bc;
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Validate data, returning number of digits if valid.            */
+/*--------------------------------------------------------------------------*/
+static gint
+postnet_validate_data (const gchar *data)
+{
+        gchar *p;
+        gint   i;
+
+        if (!data)
+        {
+                return 0;
+        }
+
+        for ( p = (gchar *)data, i=0; *p != 0; p++ )
+        {
+                if (g_ascii_isdigit (*p))
+                {
+                        i++;
+                }
+                else if ( (*p != '-') && (*p != ' ') )
+                {
+                        /* Only allow digits, dashes, and spaces. */
+                        return 0;
+                }
+        }
+
+        return i;
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Generate string of symbols, representing barcode.              */
+/*--------------------------------------------------------------------------*/
+static gchar *
+postnet_encode (const gchar *data)
+{
+        gchar   *p;
+        gint     len;
+        gint     d, sum;
+        GString *code;
+
+        /* Left frame bar */
+        code = g_string_new (frame_symbol);
+
+        sum = 0;
+        for ( p = (gchar *)data, len = 0; (*p != 0) && (len < 11); p++ )
+        {
+                if (g_ascii_isdigit (*p))
+                {
+                        /* Only translate the digits (0-9) */
+                        d = (*p) - '0';
+                        sum += d;
+                        code = g_string_append (code, symbols[d]);
+                        len++;
+                }
+        }
+
+        /* Create correction character */
+        d = (10 - (sum % 10)) % 10;
+        code = g_string_append (code, symbols[d]);
+
+        /* Right frame bar */
+        code = g_string_append (code, frame_symbol);
+
+        return g_string_free (code, FALSE);
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Vectorize encoded barcode.                                     */
+/*--------------------------------------------------------------------------*/
+static lglBarcode *
+postnet_vectorize (const gchar *code)
+{
+        lglBarcode         *bc;
+        gchar              *p;
+        gdouble             x, y, length, width;
+
+        bc = lgl_barcode_new ();
+
+        /* Now traverse the code string and create a list of lines */
+        x = POSTNET_HORIZ_MARGIN;
+        for ( p = (gchar *)code; *p != 0; p++ )
+        {
+                y = POSTNET_VERT_MARGIN;
+                switch (*p)
+                {
+                case '0':
+                        y += POSTNET_FULLBAR_HEIGHT - POSTNET_HALFBAR_HEIGHT;
+                        length = POSTNET_HALFBAR_HEIGHT;
+                        break;
+                case '1':
+                        length = POSTNET_FULLBAR_HEIGHT;
+                        break;
+                default:
+                        break;
+                }
+                width = POSTNET_BAR_WIDTH;
+
+                lgl_barcode_add_box (bc, x, y, width, length);
+
+                x += POSTNET_BAR_PITCH;
+        }
+
+        bc->width = x + POSTNET_HORIZ_MARGIN;
+        bc->height = POSTNET_FULLBAR_HEIGHT + 2 * POSTNET_VERT_MARGIN;
+
+        return bc;
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglbarcode/lgl-barcode-postnet.h b/libglbarcode/lgl-barcode-postnet.h
new file mode 100644 (file)
index 0000000..1ef5192
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ *  lgl-barcode-postnet.h
+ *  Copyright (C) 2001-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglbarcode.
+ *
+ *  libglbarcode is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglbarcode is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglbarcode.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __LGL_BARCODE_POSTNET_H__
+#define __LGL_BARCODE_POSTNET_H__
+
+#include "lgl-barcode.h"
+#include "lgl-barcode-type.h"
+
+G_BEGIN_DECLS
+
+lglBarcode *lgl_barcode_postnet_new (lglBarcodeType  type,
+                                     gboolean        text_flag,
+                                     gboolean        checksum_flag,
+                                     gdouble         w,
+                                     gdouble         h,
+                                     const gchar    *data);
+
+G_END_DECLS
+
+#endif /* __LGL_BARCODE_POSTNET_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglbarcode/lgl-barcode-render-to-cairo.c b/libglbarcode/lgl-barcode-render-to-cairo.c
new file mode 100644 (file)
index 0000000..e83175d
--- /dev/null
@@ -0,0 +1,346 @@
+/*
+ *  lgl-barcode-render-to-cairo.c
+ *  Copyright (C) 2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglbarcode.
+ *
+ *  libglbarcode is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglbarcode is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglbarcode.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "lgl-barcode-render-to-cairo.h"
+
+#include <pango/pangocairo.h>
+#include <math.h>
+
+
+/*===========================================*/
+/* Private macros and constants.             */
+/*===========================================*/
+
+#define FONT_SCALE (72.0/96.0)
+#define BARCODE_FONT_FAMILY      "Sans"
+#define BARCODE_FONT_WEIGHT      PANGO_WEIGHT_NORMAL
+
+
+/*===========================================*/
+/* Private types                             */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+
+/****************************************************************************/
+/**
+ * lgl_barcode_render_to_cairo:
+ * @bc:     An #lglBarcode structure
+ * @cr:     A #cairo_t context
+ *
+ * Render barcode to cairo context.  Context should be prepared with desired
+ * translation and appropriate scale.  Context should be translated such that
+ * the origin is at the desired location of the upper left hand corner of the
+ * barcode bounding box.  Context should be scaled such that all dimensions
+ * are in points ( 1 point = 1/72 inch ) and that positive y coordinates
+ * go down the surface.
+ */
+void
+lgl_barcode_render_to_cairo (const lglBarcode  *bc,
+                             cairo_t           *cr)
+{
+        GList                  *p;
+
+        lglBarcodeShape        *shape;
+        lglBarcodeShapeLine    *line;
+        lglBarcodeShapeBox     *box;
+        lglBarcodeShapeChar    *bchar;
+        lglBarcodeShapeString  *bstring;
+        lglBarcodeShapeRing    *ring;
+        lglBarcodeShapeHexagon *hexagon;
+
+        PangoLayout            *layout;
+        PangoFontDescription   *desc;
+        gchar                  *cstring;
+        gdouble                 x_offset, y_offset;
+        gint                    iw, ih;
+        gdouble                 layout_width;
+
+
+        for (p = bc->shapes; p != NULL; p = p->next) {
+
+                shape = (lglBarcodeShape *)p->data;
+
+                switch (shape->type)
+                {
+
+                case LGL_BARCODE_SHAPE_LINE:
+                        line = (lglBarcodeShapeLine *) shape;
+
+                        cairo_move_to (cr, line->x, line->y);
+                        cairo_line_to (cr, line->x, line->y + line->length);
+                        cairo_set_line_width (cr, line->width);
+                        cairo_stroke (cr);
+
+                        break;
+
+                case LGL_BARCODE_SHAPE_BOX:
+                        box = (lglBarcodeShapeBox *) shape;
+
+                        cairo_rectangle (cr, box->x, box->y, box->width, box->height);
+                        cairo_fill (cr);
+
+                        break;
+
+                case LGL_BARCODE_SHAPE_CHAR:
+                        bchar = (lglBarcodeShapeChar *) shape;
+
+                        layout = pango_cairo_create_layout (cr);
+
+                        desc = pango_font_description_new ();
+                        pango_font_description_set_family (desc, BARCODE_FONT_FAMILY);
+                        pango_font_description_set_size   (desc, bchar->fsize * PANGO_SCALE * FONT_SCALE);
+                        pango_layout_set_font_description (layout, desc);
+                        pango_font_description_free       (desc);
+
+                        cstring = g_strdup_printf ("%c", bchar->c);
+                        pango_layout_set_text (layout, cstring, -1);
+                        g_free (cstring);
+
+                        y_offset = 0.2 * bchar->fsize;
+
+                        cairo_move_to (cr, bchar->x, bchar->y-y_offset);
+                        pango_cairo_show_layout (cr, layout);
+
+                        g_object_unref (layout);
+
+                        break;
+
+                case LGL_BARCODE_SHAPE_STRING:
+                        bstring = (lglBarcodeShapeString *) shape;
+
+                        layout = pango_cairo_create_layout (cr);
+
+                        desc = pango_font_description_new ();
+                        pango_font_description_set_family (desc, BARCODE_FONT_FAMILY);
+                        pango_font_description_set_size   (desc, bstring->fsize * PANGO_SCALE * FONT_SCALE);
+                        pango_layout_set_font_description (layout, desc);
+                        pango_font_description_free       (desc);
+
+                        pango_layout_set_text (layout, bstring->string, -1);
+
+                        pango_layout_get_size (layout, &iw, &ih);
+                        layout_width = (gdouble)iw / (gdouble)PANGO_SCALE;
+
+                        x_offset = layout_width / 2.0;
+                        y_offset = 0.2 * bstring->fsize;
+
+                        cairo_move_to (cr, (bstring->x - x_offset), (bstring->y - y_offset));
+                        pango_cairo_show_layout (cr, layout);
+
+                        g_object_unref (layout);
+
+                        break;
+
+                case LGL_BARCODE_SHAPE_RING:
+                        ring = (lglBarcodeShapeRing *) shape;
+
+                        cairo_arc (cr, ring->x, ring->y, ring->radius, 0.0, 2 * G_PI);
+                        cairo_set_line_width (cr, ring->line_width);
+                        cairo_stroke (cr);
+
+                        break;
+
+                case LGL_BARCODE_SHAPE_HEXAGON:
+                        hexagon = (lglBarcodeShapeHexagon *) shape;
+
+                        cairo_move_to (cr, hexagon->x, hexagon->y);
+                        cairo_line_to (cr, hexagon->x + 0.433*hexagon->height, hexagon->y + 0.25*hexagon->height);
+                        cairo_line_to (cr, hexagon->x + 0.433*hexagon->height, hexagon->y + 0.75*hexagon->height);
+                        cairo_line_to (cr, hexagon->x,                         hexagon->y +      hexagon->height);
+                        cairo_line_to (cr, hexagon->x - 0.433*hexagon->height, hexagon->y + 0.75*hexagon->height);
+                        cairo_line_to (cr, hexagon->x - 0.433*hexagon->height, hexagon->y + 0.25*hexagon->height);
+                        cairo_close_path (cr);
+                        cairo_fill (cr);
+
+                        break;
+
+                default:
+                        g_assert_not_reached ();
+                        break;
+
+                }
+
+        }
+
+}
+
+
+/****************************************************************************/
+/**
+ * lgl_barcode_render_to_cairo_path:
+ * @bc:     An #lglBarcode structure
+ * @cr:     A #cairo_t context
+ *
+ * Render barcode to cairo context, but only create a path to be filled or
+ * tested against.  Context should be prepared with desired
+ * translation and appropriate scale.  Context should be translated such that
+ * the origin is at the desired location of the upper left hand corner of the
+ * barcode bounding box.  Context should be scaled such that all dimensions
+ * are in points ( 1 point = 1/72 inch ) and that positive y coordinates
+ * go down the surface.
+ */
+void
+lgl_barcode_render_to_cairo_path (const lglBarcode  *bc,
+                                  cairo_t           *cr)
+{
+        GList                  *p;
+
+        lglBarcodeShape        *shape;
+        lglBarcodeShapeLine    *line;
+        lglBarcodeShapeBox     *box;
+        lglBarcodeShapeChar    *bchar;
+        lglBarcodeShapeString  *bstring;
+        lglBarcodeShapeRing    *ring;
+        lglBarcodeShapeHexagon *hexagon;
+
+        PangoLayout            *layout;
+        PangoFontDescription   *desc;
+        gchar                  *cstring;
+        gdouble                 x_offset, y_offset;
+        gint                    iw, ih;
+        gdouble                 layout_width;
+
+
+        for (p = bc->shapes; p != NULL; p = p->next) {
+
+                shape = (lglBarcodeShape *)p->data;
+
+                switch (shape->type)
+                {
+
+                case LGL_BARCODE_SHAPE_LINE:
+                        line = (lglBarcodeShapeLine *) shape;
+
+                        cairo_rectangle (cr, line->x - line->width/2, line->y, line->width, line->length);
+
+                        break;
+
+                case LGL_BARCODE_SHAPE_BOX:
+                        box = (lglBarcodeShapeBox *) shape;
+
+                        cairo_rectangle (cr, box->x, box->y, box->width, box->height);
+
+                        break;
+
+                case LGL_BARCODE_SHAPE_CHAR:
+                        bchar = (lglBarcodeShapeChar *) shape;
+
+                        layout = pango_cairo_create_layout (cr);
+
+                        desc = pango_font_description_new ();
+                        pango_font_description_set_family (desc, BARCODE_FONT_FAMILY);
+                        pango_font_description_set_size   (desc, bchar->fsize * PANGO_SCALE * FONT_SCALE);
+                        pango_layout_set_font_description (layout, desc);
+                        pango_font_description_free       (desc);
+
+                        cstring = g_strdup_printf ("%c", bchar->c);
+                        pango_layout_set_text (layout, cstring, -1);
+                        g_free (cstring);
+
+                        y_offset = 0.2 * bchar->fsize;
+
+                        cairo_move_to (cr, bchar->x, bchar->y-y_offset);
+                        pango_cairo_layout_path (cr, layout);
+
+                        g_object_unref (layout);
+
+                        break;
+
+                case LGL_BARCODE_SHAPE_STRING:
+                        bstring = (lglBarcodeShapeString *) shape;
+
+                        layout = pango_cairo_create_layout (cr);
+
+                        desc = pango_font_description_new ();
+                        pango_font_description_set_family (desc, BARCODE_FONT_FAMILY);
+                        pango_font_description_set_size   (desc, bstring->fsize * PANGO_SCALE * FONT_SCALE);
+                        pango_layout_set_font_description (layout, desc);
+                        pango_font_description_free       (desc);
+
+                        pango_layout_set_text (layout, bstring->string, -1);
+
+                        pango_layout_get_size (layout, &iw, &ih);
+                        layout_width = (gdouble)iw / (gdouble)PANGO_SCALE;
+
+                        x_offset = layout_width / 2.0;
+                        y_offset = 0.2 * bstring->fsize;
+
+                        cairo_move_to (cr, (bstring->x - x_offset), (bstring->y - y_offset));
+                        pango_cairo_layout_path (cr, layout);
+
+                        g_object_unref (layout);
+
+                        break;
+
+                case LGL_BARCODE_SHAPE_RING:
+                        ring = (lglBarcodeShapeRing *) shape;
+
+                        cairo_new_sub_path (cr);
+                        cairo_arc (cr, ring->x, ring->y, ring->radius + ring->line_width/2, 0.0, 2 * G_PI);
+                        cairo_close_path (cr);
+                        cairo_new_sub_path (cr);
+                        cairo_arc (cr, ring->x, ring->y, ring->radius - ring->line_width/2, 0.0, 2 * G_PI);
+                        cairo_close_path (cr);
+                        break;
+
+                case LGL_BARCODE_SHAPE_HEXAGON:
+                        hexagon = (lglBarcodeShapeHexagon *) shape;
+
+                        cairo_move_to (cr, hexagon->x, hexagon->y);
+                        cairo_line_to (cr, hexagon->x + 0.433*hexagon->height, hexagon->y + 0.25*hexagon->height);
+                        cairo_line_to (cr, hexagon->x + 0.433*hexagon->height, hexagon->y + 0.75*hexagon->height);
+                        cairo_line_to (cr, hexagon->x,                         hexagon->y +      hexagon->height);
+                        cairo_line_to (cr, hexagon->x - 0.433*hexagon->height, hexagon->y + 0.75*hexagon->height);
+                        cairo_line_to (cr, hexagon->x - 0.433*hexagon->height, hexagon->y + 0.25*hexagon->height);
+                        cairo_close_path (cr);
+                        break;
+
+                default:
+                        g_assert_not_reached ();
+                        break;
+
+                }
+
+        }
+
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglbarcode/lgl-barcode-render-to-cairo.h b/libglbarcode/lgl-barcode-render-to-cairo.h
new file mode 100644 (file)
index 0000000..b9dd755
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ *  lgl-barcode-render-to-cairo.h
+ *  Copyright (C) 2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglbarcode.
+ *
+ *  libglbarcode is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglbarcode is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglbarcode.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __LGL_RENDER_TO_CAIRO_H__
+#define __LGL_RENDER_TO_CAIRO_H__
+
+#include "lgl-barcode.h"
+#include <cairo.h>
+
+G_BEGIN_DECLS
+
+void  lgl_barcode_render_to_cairo      (const lglBarcode *bc,
+                                        cairo_t          *cr);
+
+void  lgl_barcode_render_to_cairo_path (const lglBarcode *bc,
+                                        cairo_t          *cr);
+
+G_END_DECLS
+
+#endif /* __LGL_RENDER_TO_CAIRO_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglbarcode/lgl-barcode-type.h b/libglbarcode/lgl-barcode-type.h
new file mode 100644 (file)
index 0000000..661ae66
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ *  lgl-barcode-type.h
+ *  Copyright (C) 2001-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglbarcode.
+ *
+ *  libglbarcode is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglbarcode is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglbarcode.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __LGL_BARCODE_TYPE_H__
+#define __LGL_BARCODE_TYPE_H__
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+
+typedef enum {
+
+        LGL_BARCODE_TYPE_POSTNET,        /* USPS Postnet Barcode (5, 9, or 11 digits) */
+        LGL_BARCODE_TYPE_POSTNET_5,      /* USPS Postnet Barcode (5 digits) */
+        LGL_BARCODE_TYPE_POSTNET_9,      /* USPS Postnet Barcode (9 digits) */
+        LGL_BARCODE_TYPE_POSTNET_11,     /* USPS Postnet Barcode (11 digits) */
+        LGL_BARCODE_TYPE_CEPNET,         /* Brazilian Postal Code */
+
+        LGL_BARCODE_TYPE_ONECODE,        /* USPS Intelligent Mail Barcode */
+
+        LGL_BARCODE_TYPE_CODE39,         /* Code 39 */
+        LGL_BARCODE_TYPE_CODE39_EXT,     /* Extended Code 39 (Supports full ASCII character set) */
+
+        /*< private >*/
+        LGL_BARCODE_N_TYPES
+
+} lglBarcodeType;
+
+
+G_END_DECLS
+
+#endif /* __LGL_BARCODE_TYPE_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglbarcode/lgl-barcode.c b/libglbarcode/lgl-barcode.c
new file mode 100644 (file)
index 0000000..b7757ff
--- /dev/null
@@ -0,0 +1,362 @@
+/*
+ *  lgl-barcode.c
+ *  Copyright (C) 2001-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglbarcode.
+ *
+ *  libglbarcode is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglbarcode is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglbarcode.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "lgl-barcode.h"
+
+
+/*========================================================*/
+/* Private macros and constants.                          */
+/*========================================================*/
+
+
+/*========================================================*/
+/* Private types.                                         */
+/*========================================================*/
+
+
+/*========================================================*/
+/* Private globals.                                       */
+/*========================================================*/
+
+
+/*========================================================*/
+/* Private function prototypes.                           */
+/*========================================================*/
+
+static void lgl_barcode_add_shape        (lglBarcode      *bc,
+                                          lglBarcodeShape *shape);
+
+static void lgl_barcode_shape_free       (lglBarcodeShape *shape);
+
+
+/*****************************************************************************/
+/**
+ * lgl_barcode_new:
+ *
+ * Allocate a new #lglBarcode structure.
+ *
+ * This function allocates a new #lglBarcode structure.
+ * 
+ * <note><para>
+ *       This function is intended to be used internally by barcode implementations.
+ *       Typically an end-user would use lgl_barcode_create() instead.
+ * </para></note>
+ * 
+ *
+ * Returns: A newly allocated #lglBarcode structure.  Use lgl_barcode_free() to
+ *          free it.
+ *
+ */
+lglBarcode *
+lgl_barcode_new (void)
+{
+        return g_new0 (lglBarcode, 1);
+}
+
+
+/*****************************************************************************/
+/**
+ * lgl_barcode_free:
+ * @bc: The #lglBarcode structure to free
+ *
+ * Free a previously allocated #lglBarcode structure.
+ *
+ */
+void
+lgl_barcode_free (lglBarcode *bc)
+{
+        GList *p;
+
+        if (bc != NULL)
+        {
+
+                for (p = bc->shapes; p != NULL; p = p->next)
+                {
+                        lgl_barcode_shape_free ((lglBarcodeShape *)p->data);
+                }
+                g_list_free (bc->shapes);
+
+                g_free (bc);
+
+        }
+}
+
+
+/*****************************************************************************/
+/**
+ * lgl_barcode_add_line:
+ * @bc:     An #lglBarcode structure
+ * @x:      x coordinate of top of line
+ * @y:      y coordinate of top of line
+ * @length: Length of line
+ * @width:  Width of line
+ *
+ * Add a vertical line to barcode.  Coordinates are relative to top left corner
+ * of barcode.  All units are in points ( 1 point = 1/72 inch ).
+ *
+ * <note><para>
+ *        This function is intended to be used internally by barcode implementations.
+ * </para></note>
+ *
+ */
+void
+lgl_barcode_add_line (lglBarcode      *bc,
+                      gdouble          x,
+                      gdouble          y,
+                      gdouble          length,
+                      gdouble          width)
+{
+        lglBarcodeShapeLine *line_shape = g_new0 (lglBarcodeShapeLine, 1);
+        line_shape->type = LGL_BARCODE_SHAPE_LINE;
+
+        line_shape->x      = x;
+        line_shape->y      = y;
+        line_shape->length = length;
+        line_shape->width  = width;
+
+        lgl_barcode_add_shape (bc, (lglBarcodeShape *)line_shape);
+}
+
+
+/*****************************************************************************/
+/**
+ * lgl_barcode_add_box:
+ * @bc:     An #lglBarcode structure
+ * @x:      x coordinate of top left corner of box
+ * @y:      y coordinate of top left corner of box
+ * @width:  Width of box
+ * @height: Height of box
+ *
+ * Add a box to barcode.  Coordinates are relative to top left corner
+ * of barcode.  All units are in points ( 1 point = 1/72 inch ).
+ *
+ * <note><para>
+ *        This function is intended to be used internally by barcode implementations.
+ * </para></note>
+ *
+ */
+void
+lgl_barcode_add_box (lglBarcode      *bc,
+                     gdouble          x,
+                     gdouble          y,
+                     gdouble          width,
+                     gdouble          height)
+{
+        lglBarcodeShapeBox *box_shape = g_new0 (lglBarcodeShapeBox, 1);
+        box_shape->type = LGL_BARCODE_SHAPE_BOX;
+
+        box_shape->x      = x;
+        box_shape->y      = y;
+        box_shape->width  = width;
+        box_shape->height = height;
+
+        lgl_barcode_add_shape (bc, (lglBarcodeShape *)box_shape);
+}
+
+
+/*****************************************************************************/
+/**
+ * lgl_barcode_add_char:
+ * @bc:     An #lglBarcode structure
+ * @x:      x coordinate of left baseline of character
+ * @y:      y coordinate of left baseline of character
+ * @fsize:  Font size
+ * @c:      Character to add
+ *
+ * Add an ASCII character to barcode.  Coordinates are relative to top left corner
+ * of barcode.  All units are in points ( 1 point = 1/72 inch ).
+ *
+ * <note><para>
+ *        This function is intended to be used internally by barcode implementations.
+ * </para></note>
+ *
+ */
+void
+lgl_barcode_add_char (lglBarcode      *bc,
+                      gdouble          x,
+                      gdouble          y,
+                      gdouble          fsize,
+                      gchar            c)
+{
+        lglBarcodeShapeChar *char_shape = g_new0 (lglBarcodeShapeChar, 1);
+        char_shape->type = LGL_BARCODE_SHAPE_CHAR;
+
+        char_shape->x      = x;
+        char_shape->y      = y;
+        char_shape->fsize  = fsize;
+        char_shape->c      = c;
+
+        lgl_barcode_add_shape (bc, (lglBarcodeShape *)char_shape);
+}
+
+
+/*****************************************************************************/
+/**
+ * lgl_barcode_add_string:
+ * @bc:     An #lglBarcode structure
+ * @x:      x coordinate of horizontal center of baseline of string
+ * @y:      y coordinate of horizontal center of baseline of string
+ * @fsize:  Font size
+ * @string: String to add
+ * @length: Number of bytes in string
+ *
+ * Add a character string to barcode.  Coordinates are relative to top left corner
+ * of barcode.  All units are in points ( 1 point = 1/72 inch ).
+ *
+ * <note><para>
+ *        This function is intended to be used internally by barcode implementations.
+ * </para></note>
+ *
+ */
+void
+lgl_barcode_add_string (lglBarcode      *bc,
+                        gdouble          x,
+                        gdouble          y,
+                        gdouble          fsize,
+                        gchar           *string,
+                        gsize            length)
+{
+        lglBarcodeShapeString *string_shape = g_new0 (lglBarcodeShapeString, 1);
+        string_shape->type = LGL_BARCODE_SHAPE_STRING;
+
+        string_shape->x      = x;
+        string_shape->y      = y;
+        string_shape->fsize  = fsize;
+        string_shape->string = g_strndup(string, length);
+
+        lgl_barcode_add_shape (bc, (lglBarcodeShape *)string_shape);
+}
+
+/*****************************************************************************/
+/**
+ * lgl_barcode_add_ring:
+ * @bc:         An #lglBarcode structure
+ * @x:          x coordinate of center of circle
+ * @y:          y coordinate of center of circle
+ * @radius:     Radius of ring (center of line)
+ * @line_width: Width of line
+ *
+ * Add a ring to barcode.  Coordinates are relative to top left corner
+ * of barcode.  All units are in points ( 1 point = 1/72 inch ).
+ *
+ * <note><para>
+ *        This function is intended to be used internally by barcode implementations.
+ * </para></note>
+ *
+ */
+void
+lgl_barcode_add_ring (lglBarcode      *bc,
+                      gdouble          x,
+                      gdouble          y,
+                      gdouble          radius,
+                      gdouble          line_width)
+{
+        lglBarcodeShapeRing *ring_shape = g_new0 (lglBarcodeShapeRing, 1);
+        ring_shape->type = LGL_BARCODE_SHAPE_RING;
+
+        ring_shape->x          = x;
+        ring_shape->y          = y;
+        ring_shape->radius     = radius;
+        ring_shape->line_width = line_width;
+
+        lgl_barcode_add_shape (bc, (lglBarcodeShape *)ring_shape);
+}
+
+/*****************************************************************************/
+/**
+ * lgl_barcode_add_hexagon:
+ * @bc:         An #lglBarcode structure
+ * @x:          x coordinate of top point of hexagon
+ * @y:          y coordinate of top point of hexagon
+ * @height:     Height of hexagon
+ *
+ * Add a regular hexagon (oriented with vertexes at top and bottom) to barcode.
+ * Coordinates are relative to top left corner of barcode.  All units are in
+ * points ( 1 point = 1/72 inch ).
+ *
+ * <note><para>
+ *        This function is intended to be used internally by barcode implementations.
+ * </para></note>
+ *
+ */
+void
+lgl_barcode_add_hexagon (lglBarcode      *bc,
+                         gdouble          x,
+                         gdouble          y,
+                         gdouble          height)
+{
+        lglBarcodeShapeHexagon *hexagon_shape = g_new0 (lglBarcodeShapeHexagon, 1);
+        hexagon_shape->type = LGL_BARCODE_SHAPE_HEXAGON;
+
+        hexagon_shape->x      = x;
+        hexagon_shape->y      = y;
+        hexagon_shape->height = height;
+
+        lgl_barcode_add_shape (bc, (lglBarcodeShape *)hexagon_shape);
+}
+
+
+/*****************************************************************************/
+/* Add shape to barcode.                                                     */
+/*****************************************************************************/
+static void
+lgl_barcode_add_shape (lglBarcode      *bc,
+                       lglBarcodeShape *shape)
+{
+        g_return_if_fail (bc);
+        g_return_if_fail (shape);
+
+        bc->shapes = g_list_prepend (bc->shapes, shape);
+}
+
+
+/*****************************************************************************/
+/* Free a shape primitive.                                                   */
+/*****************************************************************************/
+static void
+lgl_barcode_shape_free (lglBarcodeShape *shape)
+{
+        switch (shape->type)
+        {
+
+        case LGL_BARCODE_SHAPE_STRING:
+                g_free (shape->string.string);
+                break;
+
+        default:
+                break;
+        }
+
+        g_free (shape);
+}
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglbarcode/lgl-barcode.h b/libglbarcode/lgl-barcode.h
new file mode 100644 (file)
index 0000000..f94b265
--- /dev/null
@@ -0,0 +1,415 @@
+/*
+ *  lgl-barcode.h
+ *  Copyright (C) 2001-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of libglbarcode.
+ *
+ *  libglbarcode is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libglbarcode is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with libglbarcode.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __LGL_BARCODE_H__
+#define __LGL_BARCODE_H__
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+
+/********************************/
+/* Barcode Intermediate Format. */
+/********************************/
+
+/**
+ * lglBarcode:
+ *  @width:    Width of barcode bounding box (points)
+ *  @height:   Height of barcode bounding box (points)
+ *  @shapes:   List of #lglBarcodeShape drawing primitives
+ *
+ * This structure contains the libglbarcode intermediate barcode format.  This
+ * structure contains a simple vectorized representation of the barcode.  This
+ * vectorized representation is easy to interpret by a rendering backend for
+ * either vector or raster formats.  A simple API is provided for constructing
+ * barcodes in this format.
+ *
+ */
+typedef struct {
+
+        gdouble  width;
+        gdouble  height;
+
+        GList   *shapes;    /* List of lglBarcodeShape drawing primitives */
+
+} lglBarcode;
+
+
+/********************************/
+/* Barcode Construction.        */
+/********************************/
+
+lglBarcode      *lgl_barcode_new              (void);
+
+void             lgl_barcode_free             (lglBarcode     *bc);
+
+void             lgl_barcode_add_line         (lglBarcode     *bc,
+                                               gdouble         x,
+                                               gdouble         y,
+                                               gdouble         length,
+                                               gdouble         width);
+
+void             lgl_barcode_add_box          (lglBarcode     *bc,
+                                               gdouble         x,
+                                               gdouble         y,
+                                               gdouble         width,
+                                               gdouble         height);
+
+void             lgl_barcode_add_char         (lglBarcode     *bc,
+                                               gdouble         x,
+                                               gdouble         y,
+                                               gdouble         fsize,
+                                               gchar           c);
+
+void             lgl_barcode_add_string       (lglBarcode     *bc,
+                                               gdouble         x,
+                                               gdouble         y,
+                                               gdouble         fsize,
+                                               gchar          *string,
+                                               gsize           length);
+
+void             lgl_barcode_add_ring         (lglBarcode     *bc,
+                                               gdouble         x,
+                                               gdouble         y,
+                                               gdouble         radius,
+                                               gdouble         line_width);
+
+void             lgl_barcode_add_hexagon      (lglBarcode     *bc,
+                                               gdouble         x,
+                                               gdouble         y,
+                                               gdouble         height);
+
+/*******************************/
+/* Barcode Drawing Primitives. */
+/*******************************/
+
+typedef enum {
+        LGL_BARCODE_SHAPE_LINE,
+        LGL_BARCODE_SHAPE_BOX,
+        LGL_BARCODE_SHAPE_CHAR,
+        LGL_BARCODE_SHAPE_STRING,
+        LGL_BARCODE_SHAPE_RING,
+        LGL_BARCODE_SHAPE_HEXAGON
+} lglBarcodeShapeType;
+
+
+typedef struct {
+
+        /* Begin Common Fields */
+        lglBarcodeShapeType  type;
+        gdouble              x;
+        gdouble              y;
+        /* End Common Fields */
+
+} lglBarcodeShapeAny;
+
+
+/**
+ * lglBarcodeShapeLine:
+ * @type:   Always %LGL_BARCODE_SHAPE_LINE
+ * @x:      x coordinate of top of line
+ * @y:      y coordinate of top of line
+ * @length: Length of line
+ * @width:  Width of line
+ *
+ * A vertical line drawing primitive.
+ *
+ *<programlisting>
+ *
+ * @ =  origin (x,y) from top left corner of barcode
+ *
+ *              +--@--+
+ *              |     |
+ *              |     |
+ *              |     |
+ *              |     | length
+ *              |     |
+ *              |     |
+ *              |     |
+ *              +-----+
+ *               width
+ *
+ *</programlisting>
+ *
+ * All units are in points ( 1 point = 1/72 inch ).
+ */
+typedef struct {
+
+        /* Begin Common Fields */
+        lglBarcodeShapeType  type; /* Always LGL_BARCODE_SHAPE_LINE. */
+        gdouble              x;
+        gdouble              y;
+        /* End Common Fields */
+
+        gdouble              length;
+        gdouble              width;
+
+} lglBarcodeShapeLine;
+
+
+/**
+ * lglBarcodeShapeBox:
+ * @type:   Always %LGL_BARCODE_SHAPE_BOX
+ * @x:      x coordinate of top left corner of box
+ * @y:      y coordinate of top left corner of box
+ * @width:  Width of box
+ * @height: Height of box
+ *
+ * A solid box drawing primitive.
+ *
+ *<programlisting>
+ *
+ * @ =  origin (x,y) from top left corner of barcode
+ *
+ *              @---------+
+ *              |         |
+ *              |         |
+ *              |         |
+ *              |         | height
+ *              |         |
+ *              |         |
+ *              |         |
+ *              +---------+
+ *                 width
+ *
+ *</programlisting>
+ *
+ * All units are in points ( 1 point = 1/72 inch ).
+ */
+typedef struct {
+
+        /* Begin Common Fields */
+        lglBarcodeShapeType  type; /* Always LGL_BARCODE_SHAPE_BOX. */
+        gdouble              x;
+        gdouble              y;
+        /* End Common Fields */
+
+        gdouble              width;
+        gdouble              height;
+
+} lglBarcodeShapeBox;
+
+
+/**
+ * lglBarcodeShapeChar:
+ * @type:   Always %LGL_BARCODE_SHAPE_CHAR
+ * @x:      x coordinate of left baseline of character
+ * @y:      y coordinate of left baseline of character
+ * @fsize:  Font size
+ * @c:      Character to add
+ *
+ * An single byte character drawing primitive.
+ *
+ *<programlisting>
+ *
+ * @ =  origin (x,y) from top left corner of barcode
+ *
+ *              ____ ------------
+ *             /    \           ^
+ *            /  /\  \          |
+ *           /  /__\  \         |
+ *          /  ______  \        | ~fsize
+ *         /  /      \  \       |
+ *        /__/        \__\      |
+ *                              v
+ *       @ ----------------------
+ *
+ *</programlisting>
+ *
+ * All units are in points ( 1 point = 1/72 inch ).
+ */
+typedef struct {
+
+        /* Begin Common Fields */
+        lglBarcodeShapeType  type; /* Always LGL_BARCODE_SHAPE_CHAR. */
+        gdouble              x;
+        gdouble              y;
+        /* End Common Fields */
+
+        gdouble              fsize;
+        gchar                c;
+
+} lglBarcodeShapeChar;
+
+
+/**
+ * lglBarcodeShapeString:
+ * @type:   Always %LGL_BARCODE_SHAPE_STRING
+ * @x:      x coordinate of horizontal center of baseline of string
+ * @y:      y coordinate of horizontal center of baseline of string
+ * @fsize:  Font size
+ * @string: String to add
+ * @length: Number of bytes in string
+ *
+ * A character string drawing primitive.
+ *
+ *<programlisting>
+ *
+ * @ =  origin (x,y) from top left corner of barcode
+ *
+ *              ____        _  ------------------
+ *             /    \      | |                  ^
+ *            /  /\  \     | |                  |
+ *           /  /__\  \    | |___     ____      |
+ *          /  ______  \   | ._  \   /  __|     | ~fsize
+ *         /  /      \  \  | |_)  | |  (__      |
+ *        /__/        \__\ |_.___/   \____|     |
+ *                                              v
+ *                           @ ------------------
+ *                           x = horizontal center
+ *
+ *</programlisting>
+ *
+ * All units are in points ( 1 point = 1/72 inch ).
+ */
+typedef struct {
+
+        /* Begin Common Fields */
+        lglBarcodeShapeType  type; /* Always LGL_BARCODE_SHAPE_STRING. */
+        gdouble              x;
+        gdouble              y;
+        /* End Common Fields */
+
+        gdouble              fsize;
+        gchar               *string;
+
+} lglBarcodeShapeString;
+
+
+/**
+ * lglBarcodeShapeRing:
+ * @type:       Always %LGL_BARCODE_SHAPE_RING
+ * @x:          x coordinate of center of circle
+ * @y:          y coordinate of center of circle
+ * @radius:     Radius of ring (center of line)
+ * @line_width: Width of line
+ *
+ * A ring (an open circle) drawing primitive.
+ *
+ *<programlisting>
+ *
+ * @ = origin (x,y) is centre of circle
+ *
+ *                v  line_width
+ *           _.-""""-._
+ *         .'   ____   `.
+ *        /   .'  ^ `.   \
+ *       |   /        \   |
+ *       |   |    @---|---|------
+ *       |   \        /   |     ^
+ *        \   `.____.'   /      | radius
+ *         `._    ...._.'.......|
+ *            `-....-'
+ *
+ *</programlisting>
+ *
+ * All units are in points ( 1 point = 1/72 inch ).
+ */
+
+typedef struct {
+
+        /* Begin Common Fields */
+        lglBarcodeShapeType  type; /* Always LGL_BARCODE_SHAPE_RING. */
+        gdouble              x;
+        gdouble              y;
+        /* End Common Fields */
+
+        gdouble              radius;
+        gdouble              line_width;
+
+} lglBarcodeShapeRing;
+
+
+/**
+ * lglBarcodeShapeHexagon:
+ * @type:   Always %LGL_BARCODE_SHAPE_HEXAGON
+ * @x:      x coordinate of top point of hexagon
+ * @y:      y coordinate of top point of hexagon
+ * @height: Height of hexagon
+ *
+ * A solid regular hexagon (oriented with vertexes at top and bottom) drawing primitive.
+ *
+ *<programlisting>
+ *
+ * @ = origin (x,y) is top of hexagon
+ *
+ *                  @ ------------------
+ *              _-"   "-_              ^
+ *          _-"           "-_          |
+ *       +"                   "+       |
+ *       |                     |       |
+ *       |                     |       |
+ *       |                     |       | height
+ *       |                     |       |
+ *       |                     |       |
+ *       +_                   _+       |
+ *         "-_             _-"         |
+ *            "-_       _-"            |
+ *               "-_ _-"               v
+ *                  " ------------------
+ *
+ *</programlisting>
+ *
+ * All units are in points ( 1 point = 1/72 inch ).
+ */
+
+typedef struct {
+
+        /* Begin Common Fields */
+        lglBarcodeShapeType  type; /* Always LGL_BARCODE_SHAPE_HEXAGON. */
+        gdouble              x;
+        gdouble              y;
+        /* End Common Fields */
+
+        gdouble              height;
+
+} lglBarcodeShapeHexagon;
+
+
+typedef union {
+
+        lglBarcodeShapeType    type;
+        lglBarcodeShapeAny     any;
+
+        lglBarcodeShapeLine    line;
+        lglBarcodeShapeBox     box;
+        lglBarcodeShapeChar    bchar;
+        lglBarcodeShapeString  string;
+        lglBarcodeShapeRing    ring;
+        lglBarcodeShapeHexagon hexagon;
+
+} lglBarcodeShape;
+
+
+G_END_DECLS
+
+#endif /* __LGL_BARCODE_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/libglbarcode/libglbarcode-3.0.pc.in b/libglbarcode/libglbarcode-3.0.pc.in
new file mode 100644 (file)
index 0000000..325eff2
--- /dev/null
@@ -0,0 +1,13 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: LIBGLBARCODE
+Description: GLabels Built-In Barcode Library
+Requires: glib-2.0 cairo pango
+Version: @VERSION@
+Libs: -L${libdir} -lglbarcode-3.0
+Libs.private: -lm
+Cflags: -I${includedir}/@LIBGLBARCODE_BRANCH@
+
diff --git a/libglbarcode/libglbarcode.h b/libglbarcode/libglbarcode.h
new file mode 100644 (file)
index 0000000..e0ee61f
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ *  libglbarcode.h
+ *  Copyright (C) 2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __LIBGLBARCODE_H__
+#define __LIBGLBARCODE_H__
+
+
+#include <libglbarcode/lgl-barcode.h>
+#include <libglbarcode/lgl-barcode-type.h>
+#include <libglbarcode/lgl-barcode-create.h>
+
+#include <libglbarcode/lgl-barcode-render-to-cairo.h>
+
+#include <libglbarcode/lgl-barcode-code39.h>
+#include <libglbarcode/lgl-barcode-onecode.h>
+#include <libglbarcode/lgl-barcode-postnet.h>
+
+
+#endif /* __LIBGLBARCODE_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index a72f2fd78bfc86bb35a404d1954c4ca9bb923c06..aa5624c816121f8623e9a64511fa7a18356bce99 100755 (executable)
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -1,9 +1,9 @@
-# Generated from ltmain.m4sh.
 
-# ltmain.sh (GNU libtool) 2.2.6b
+# libtool (GNU libtool) 2.4
 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
+# 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 # This is free software; see the source for copying conditions.  There is NO
 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 #
 # Provide generalized library-building support services.
 #
-#     --config             show all configuration variables
-#     --debug              enable verbose shell tracing
-# -n, --dry-run            display commands without modifying any files
-#     --features           display basic configuration information and exit
-#     --mode=MODE          use operation mode MODE
-#     --preserve-dup-deps  don't remove duplicate dependency libraries
-#     --quiet, --silent    don't print informational messages
-#     --tag=TAG            use configuration variables from tag TAG
-# -v, --verbose            print informational messages (default)
-#     --version            print version information
-# -h, --help               print short or long help message
+#       --config             show all configuration variables
+#       --debug              enable verbose shell tracing
+#   -n, --dry-run            display commands without modifying any files
+#       --features           display basic configuration information and exit
+#       --mode=MODE          use operation mode MODE
+#       --preserve-dup-deps  don't remove duplicate dependency libraries
+#       --quiet, --silent    don't print informational messages
+#       --no-quiet, --no-silent
+#                            print informational messages (default)
+#       --tag=TAG            use configuration variables from tag TAG
+#   -v, --verbose            print more informational messages than default
+#       --no-verbose         don't print the extra informational messages
+#       --version            print version information
+#   -h, --help, --help-all   print short, long, or detailed help message
 #
 # MODE must be one of the following:
 #
-#       clean              remove files from the build directory
-#       compile            compile a source file into a libtool object
-#       execute            automatically set library path, then run a program
-#       finish             complete the installation of libtool libraries
-#       install            install libraries or executables
-#       link               create a library or an executable
-#       uninstall          remove libraries from an installed directory
+#         clean              remove files from the build directory
+#         compile            compile a source file into a libtool object
+#         execute            automatically set library path, then run a program
+#         finish             complete the installation of libtool libraries
+#         install            install libraries or executables
+#         link               create a library or an executable
+#         uninstall          remove libraries from an installed directory
 #
-# MODE-ARGS vary depending on the MODE.
+# MODE-ARGS vary depending on the MODE.  When passed as first option,
+# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
 # Try `$progname --help --mode=MODE' for a more detailed description of MODE.
 #
 # When reporting a bug, please describe a test case to reproduce it and
 # include the following information:
 #
-#       host-triplet:  $host
-#       shell:         $SHELL
-#       compiler:              $LTCC
-#       compiler flags:                $LTCFLAGS
-#       linker:                $LD (gnu? $with_gnu_ld)
-#       $progname:             (GNU libtool) 2.2.6b
-#       automake:              $automake_version
-#       autoconf:              $autoconf_version
+#         host-triplet:        $host
+#         shell:               $SHELL
+#         compiler:            $LTCC
+#         compiler flags:              $LTCFLAGS
+#         linker:              $LD (gnu? $with_gnu_ld)
+#         $progname:   (GNU libtool) 2.4
+#         automake:    $automake_version
+#         autoconf:    $autoconf_version
 #
 # Report bugs to <bug-libtool@gnu.org>.
+# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
+# General help using GNU software: <http://www.gnu.org/gethelp/>.
 
-PROGRAM=ltmain.sh
+PROGRAM=libtool
 PACKAGE=libtool
-VERSION=2.2.6b
+VERSION=2.4
 TIMESTAMP=""
-package_revision=1.3017
+package_revision=1.3293
 
 # Be Bourne compatible
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
@@ -91,10 +97,15 @@ fi
 BIN_SH=xpg4; export BIN_SH # for Tru64
 DUALCASE=1; export DUALCASE # for MKS sh
 
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+
 # NLS nuisances: We save the old values to restore during execute mode.
-# Only set LANG and LC_ALL to C if already set.
-# These must not be set unconditionally because not all systems understand
-# e.g. LANG=C (notably SCO).
 lt_user_locale=
 lt_safe_locale=
 for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
@@ -107,15 +118,24 @@ do
          lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
        fi"
 done
+LC_ALL=C
+LANGUAGE=C
+export LANGUAGE LC_ALL
 
 $lt_unset CDPATH
 
 
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
 
 
 
 : ${CP="cp -f"}
-: ${ECHO="echo"}
+test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
 : ${EGREP="/bin/grep -E"}
 : ${FGREP="/bin/grep -F"}
 : ${GREP="/bin/grep"}
@@ -144,6 +164,27 @@ IFS="      $lt_nl"
 dirname="s,/[^/]*$,,"
 basename="s,^.*/,,"
 
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+    func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
+    if test "X$func_dirname_result" = "X${1}"; then
+      func_dirname_result="${3}"
+    else
+      func_dirname_result="$func_dirname_result${2}"
+    fi
+} # func_dirname may be replaced by extended shell implementation
+
+
+# func_basename file
+func_basename ()
+{
+    func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+} # func_basename may be replaced by extended shell implementation
+
+
 # func_dirname_and_basename file append nondir_replacement
 # perform func_basename and func_dirname in a single function
 # call:
@@ -158,33 +199,183 @@ basename="s,^.*/,,"
 # those functions but instead duplicate the functionality here.
 func_dirname_and_basename ()
 {
-  # Extract subdirectory from the argument.
-  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
-  if test "X$func_dirname_result" = "X${1}"; then
-    func_dirname_result="${3}"
-  else
-    func_dirname_result="$func_dirname_result${2}"
-  fi
-  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
+    # Extract subdirectory from the argument.
+    func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
+    if test "X$func_dirname_result" = "X${1}"; then
+      func_dirname_result="${3}"
+    else
+      func_dirname_result="$func_dirname_result${2}"
+    fi
+    func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
+} # func_dirname_and_basename may be replaced by extended shell implementation
+
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+# func_strip_suffix prefix name
+func_stripname ()
+{
+    case ${2} in
+      .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+      *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+    esac
+} # func_stripname may be replaced by extended shell implementation
+
+
+# These SED scripts presuppose an absolute path with a trailing slash.
+pathcar='s,^/\([^/]*\).*$,\1,'
+pathcdr='s,^/[^/]*,,'
+removedotparts=':dotsl
+               s@/\./@/@g
+               t dotsl
+               s,/\.$,/,'
+collapseslashes='s@/\{1,\}@/@g'
+finalslash='s,/*$,/,'
+
+# func_normal_abspath PATH
+# Remove doubled-up and trailing slashes, "." path components,
+# and cancel out any ".." path components in PATH after making
+# it an absolute path.
+#             value returned in "$func_normal_abspath_result"
+func_normal_abspath ()
+{
+  # Start from root dir and reassemble the path.
+  func_normal_abspath_result=
+  func_normal_abspath_tpath=$1
+  func_normal_abspath_altnamespace=
+  case $func_normal_abspath_tpath in
+    "")
+      # Empty path, that just means $cwd.
+      func_stripname '' '/' "`pwd`"
+      func_normal_abspath_result=$func_stripname_result
+      return
+    ;;
+    # The next three entries are used to spot a run of precisely
+    # two leading slashes without using negated character classes;
+    # we take advantage of case's first-match behaviour.
+    ///*)
+      # Unusual form of absolute path, do nothing.
+    ;;
+    //*)
+      # Not necessarily an ordinary path; POSIX reserves leading '//'
+      # and for example Cygwin uses it to access remote file shares
+      # over CIFS/SMB, so we conserve a leading double slash if found.
+      func_normal_abspath_altnamespace=/
+    ;;
+    /*)
+      # Absolute path, do nothing.
+    ;;
+    *)
+      # Relative path, prepend $cwd.
+      func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
+    ;;
+  esac
+  # Cancel out all the simple stuff to save iterations.  We also want
+  # the path to end with a slash for ease of parsing, so make sure
+  # there is one (and only one) here.
+  func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+        -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
+  while :; do
+    # Processed it all yet?
+    if test "$func_normal_abspath_tpath" = / ; then
+      # If we ascended to the root using ".." the result may be empty now.
+      if test -z "$func_normal_abspath_result" ; then
+        func_normal_abspath_result=/
+      fi
+      break
+    fi
+    func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
+        -e "$pathcar"`
+    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+        -e "$pathcdr"`
+    # Figure out what to do with it
+    case $func_normal_abspath_tcomponent in
+      "")
+        # Trailing empty path component, ignore it.
+      ;;
+      ..)
+        # Parent dir; strip last assembled component from result.
+        func_dirname "$func_normal_abspath_result"
+        func_normal_abspath_result=$func_dirname_result
+      ;;
+      *)
+        # Actual path component, append it.
+        func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
+      ;;
+    esac
+  done
+  # Restore leading double-slash if one was found on entry.
+  func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
 }
 
-# Generated shell functions inserted here.
+# func_relative_path SRCDIR DSTDIR
+# generates a relative path from SRCDIR to DSTDIR, with a trailing
+# slash if non-empty, suitable for immediately appending a filename
+# without needing to append a separator.
+#             value returned in "$func_relative_path_result"
+func_relative_path ()
+{
+  func_relative_path_result=
+  func_normal_abspath "$1"
+  func_relative_path_tlibdir=$func_normal_abspath_result
+  func_normal_abspath "$2"
+  func_relative_path_tbindir=$func_normal_abspath_result
+
+  # Ascend the tree starting from libdir
+  while :; do
+    # check if we have found a prefix of bindir
+    case $func_relative_path_tbindir in
+      $func_relative_path_tlibdir)
+        # found an exact match
+        func_relative_path_tcancelled=
+        break
+        ;;
+      $func_relative_path_tlibdir*)
+        # found a matching prefix
+        func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
+        func_relative_path_tcancelled=$func_stripname_result
+        if test -z "$func_relative_path_result"; then
+          func_relative_path_result=.
+        fi
+        break
+        ;;
+      *)
+        func_dirname $func_relative_path_tlibdir
+        func_relative_path_tlibdir=${func_dirname_result}
+        if test "x$func_relative_path_tlibdir" = x ; then
+          # Have to descend all the way to the root!
+          func_relative_path_result=../$func_relative_path_result
+          func_relative_path_tcancelled=$func_relative_path_tbindir
+          break
+        fi
+        func_relative_path_result=../$func_relative_path_result
+        ;;
+    esac
+  done
 
-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
-# is ksh but when the shell is invoked as "sh" and the current value of
-# the _XPG environment variable is not equal to 1 (one), the special
-# positional parameter $0, within a function call, is the name of the
-# function.
-progpath="$0"
+  # Now calculate path; take care to avoid doubling-up slashes.
+  func_stripname '' '/' "$func_relative_path_result"
+  func_relative_path_result=$func_stripname_result
+  func_stripname '/' '/' "$func_relative_path_tcancelled"
+  if test "x$func_stripname_result" != x ; then
+    func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
+  fi
+
+  # Normalisation. If bindir is libdir, return empty string,
+  # else relative path ending with a slash; either way, target
+  # file name can be directly appended.
+  if test ! -z "$func_relative_path_result"; then
+    func_stripname './' '' "$func_relative_path_result/"
+    func_relative_path_result=$func_stripname_result
+  fi
+}
 
 # The name of this program:
-# In the unlikely event $progname began with a '-', it would play havoc with
-# func_echo (imagine progname=-n), so we prepend ./ in that case:
 func_dirname_and_basename "$progpath"
 progname=$func_basename_result
-case $progname in
-  -*) progname=./$progname ;;
-esac
 
 # Make sure we have an absolute path for reexecution:
 case $progpath in
@@ -215,6 +406,15 @@ sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
 # Same as above, but do not quote variable references.
 double_quote_subst='s/\(["`\\]\)/\\\1/g'
 
+# Sed substitution that turns a string into a regex matching for the
+# string literally.
+sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
+
+# Sed substitution that converts a w32 file name or path
+# which contains forward slashes, into one that contains
+# (escaped) backslashes.  A very naive implementation.
+lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+
 # Re-`\' parameter expansions in output of double_quote_subst that were
 # `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
 # in input to double_quote_subst, that '$' was protected from expansion.
@@ -243,7 +443,7 @@ opt_warning=:
 # name if it has been set yet.
 func_echo ()
 {
-    $ECHO "$progname${mode+: }$mode: $*"
+    $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
 }
 
 # func_verbose arg...
@@ -258,18 +458,25 @@ func_verbose ()
     :
 }
 
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO "$*"
+}
+
 # func_error arg...
 # Echo program name prefixed message to standard error.
 func_error ()
 {
-    $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
+    $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
 }
 
 # func_warning arg...
 # Echo program name prefixed warning message to standard error.
 func_warning ()
 {
-    $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
+    $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
 
     # bash bug again:
     :
@@ -326,9 +533,9 @@ func_mkdir_p ()
         case $my_directory_path in */*) ;; *) break ;; esac
 
         # ...otherwise throw away the child directory and loop
-        my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
+        my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
       done
-      my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
+      my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
 
       save_mkdir_p_IFS="$IFS"; IFS=':'
       for my_dir in $my_dir_list; do
@@ -378,7 +585,7 @@ func_mktempdir ()
         func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
     fi
 
-    $ECHO "X$my_tmpdir" | $Xsed
+    $ECHO "$my_tmpdir"
 }
 
 
@@ -392,7 +599,7 @@ func_quote_for_eval ()
 {
     case $1 in
       *[\\\`\"\$]*)
-       func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
+       func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
       *)
         func_quote_for_eval_unquoted_result="$1" ;;
     esac
@@ -419,7 +626,7 @@ func_quote_for_expand ()
 {
     case $1 in
       *[\\\`\"]*)
-       my_arg=`$ECHO "X$1" | $Xsed \
+       my_arg=`$ECHO "$1" | $SED \
            -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
       *)
         my_arg="$1" ;;
@@ -488,15 +695,39 @@ func_show_eval_locale ()
     fi
 }
 
-
-
+# func_tr_sh
+# Turn $1 into a string suitable for a shell variable name.
+# Result is stored in $func_tr_sh_result.  All characters
+# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
+# if $1 begins with a digit, a '_' is prepended as well.
+func_tr_sh ()
+{
+  case $1 in
+  [0-9]* | *[!a-zA-Z0-9_]*)
+    func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
+    ;;
+  * )
+    func_tr_sh_result=$1
+    ;;
+  esac
+}
 
 
 # func_version
 # Echo version message to standard output and exit.
 func_version ()
 {
-    $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
+    $opt_debug
+
+    $SED -n '/(C)/!b go
+       :more
+       /\./!{
+         N
+         s/\n# / /
+         b more
+       }
+       :go
+       /^# '$PROGRAM' (GNU /,/# warranty; / {
         s/^# //
        s/^# *$//
         s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
@@ -509,22 +740,28 @@ func_version ()
 # Echo short help message to standard output and exit.
 func_usage ()
 {
-    $SED -n '/^# Usage:/,/# -h/ {
+    $opt_debug
+
+    $SED -n '/^# Usage:/,/^#  *.*--help/ {
         s/^# //
        s/^# *$//
        s/\$progname/'$progname'/
        p
     }' < "$progpath"
-    $ECHO
+    echo
     $ECHO "run \`$progname --help | more' for full usage"
     exit $?
 }
 
-# func_help
-# Echo long help message to standard output and exit.
+# func_help [NOEXIT]
+# Echo long help message to standard output and exit,
+# unless 'noexit' is passed as argument.
 func_help ()
 {
+    $opt_debug
+
     $SED -n '/^# Usage:/,/# Report bugs to/ {
+       :print
         s/^# //
        s/^# *$//
        s*\$progname*'$progname'*
@@ -537,8 +774,15 @@ func_help ()
        s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
        s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
        p
-     }' < "$progpath"
-    exit $?
+       d
+     }
+     /^# .* home page:/b print
+     /^# General help using/b print
+     ' < "$progpath"
+    ret=$?
+    if test -z "$1"; then
+      exit $ret
+    fi
 }
 
 # func_missing_arg argname
@@ -546,63 +790,106 @@ func_help ()
 # exit_cmd.
 func_missing_arg ()
 {
-    func_error "missing argument for $1"
+    $opt_debug
+
+    func_error "missing argument for $1."
     exit_cmd=exit
 }
 
-exit_cmd=:
 
+# func_split_short_opt shortopt
+# Set func_split_short_opt_name and func_split_short_opt_arg shell
+# variables after splitting SHORTOPT after the 2nd character.
+func_split_short_opt ()
+{
+    my_sed_short_opt='1s/^\(..\).*$/\1/;q'
+    my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
 
+    func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
+    func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
+} # func_split_short_opt may be replaced by extended shell implementation
+
+
+# func_split_long_opt longopt
+# Set func_split_long_opt_name and func_split_long_opt_arg shell
+# variables after splitting LONGOPT at the `=' sign.
+func_split_long_opt ()
+{
+    my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
+    my_sed_long_arg='1s/^--[^=]*=//'
+
+    func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
+    func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
+} # func_split_long_opt may be replaced by extended shell implementation
+
+exit_cmd=:
 
 
 
-# Check that we have a working $ECHO.
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
-  # Yippee, $ECHO works!
-  :
-else
-  # Restart under the correct shell, and then maybe $ECHO will work.
-  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
-fi
 
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-$*
-EOF
-  exit $EXIT_SUCCESS
-fi
 
 magic="%%%MAGIC variable%%%"
 magic_exe="%%%MAGIC EXE variable%%%"
 
 # Global variables.
-# $mode is unset
 nonopt=
-execute_dlfiles=
 preserve_args=
 lo2o="s/\\.lo\$/.${objext}/"
 o2lo="s/\\.${objext}\$/.lo/"
 extracted_archives=
 extracted_serial=0
 
-opt_dry_run=false
-opt_duplicate_deps=false
-opt_silent=false
-opt_debug=:
-
 # If this variable is set in any of the actions, the command in it
 # will be execed at the end.  This prevents here-documents from being
 # left over by shells.
 exec_cmd=
 
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+    eval "${1}=\$${1}\${2}"
+} # func_append may be replaced by extended shell implementation
+
+# func_append_quoted var value
+# Quote VALUE and append to the end of shell variable VAR, separated
+# by a space.
+func_append_quoted ()
+{
+    func_quote_for_eval "${2}"
+    eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
+} # func_append_quoted may be replaced by extended shell implementation
+
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+    func_arith_result=`expr "${@}"`
+} # func_arith may be replaced by extended shell implementation
+
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+    func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
+} # func_len may be replaced by extended shell implementation
+
+
+# func_lo2o object
+func_lo2o ()
+{
+    func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
+} # func_lo2o may be replaced by extended shell implementation
+
+
+# func_xform libobj-or-source
+func_xform ()
+{
+    func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
+} # func_xform may be replaced by extended shell implementation
+
+
 # func_fatal_configuration arg...
 # Echo program name prefixed message to standard error, followed by
 # a configuration failure hint, and exit.
@@ -636,16 +923,16 @@ func_config ()
 # Display the features supported by this script.
 func_features ()
 {
-    $ECHO "host: $host"
+    echo "host: $host"
     if test "$build_libtool_libs" = yes; then
-      $ECHO "enable shared libraries"
+      echo "enable shared libraries"
     else
-      $ECHO "disable shared libraries"
+      echo "disable shared libraries"
     fi
     if test "$build_old_libs" = yes; then
-      $ECHO "enable static libraries"
+      echo "enable static libraries"
     else
-      $ECHO "disable static libraries"
+      echo "disable static libraries"
     fi
 
     exit $?
@@ -692,117 +979,204 @@ func_enable_tag ()
   esac
 }
 
-# Parse options once, thoroughly.  This comes as soon as possible in
-# the script to make things like `libtool --version' happen quickly.
+# func_check_version_match
+# Ensure that we are using m4 macros, and libtool script from the same
+# release of libtool.
+func_check_version_match ()
 {
+  if test "$package_revision" != "$macro_revision"; then
+    if test "$VERSION" != "$macro_version"; then
+      if test -z "$macro_version"; then
+        cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from an older release.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+      else
+        cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+      fi
+    else
+      cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
+$progname: but the definition of this LT_INIT comes from revision $macro_revision.
+$progname: You should recreate aclocal.m4 with macros from revision $package_revision
+$progname: of $PACKAGE $VERSION and run autoconf again.
+_LT_EOF
+    fi
 
-  # Shorthand for --mode=foo, only valid as the first argument
-  case $1 in
-  clean|clea|cle|cl)
-    shift; set dummy --mode clean ${1+"$@"}; shift
-    ;;
-  compile|compil|compi|comp|com|co|c)
-    shift; set dummy --mode compile ${1+"$@"}; shift
-    ;;
-  execute|execut|execu|exec|exe|ex|e)
-    shift; set dummy --mode execute ${1+"$@"}; shift
-    ;;
-  finish|finis|fini|fin|fi|f)
-    shift; set dummy --mode finish ${1+"$@"}; shift
-    ;;
-  install|instal|insta|inst|ins|in|i)
-    shift; set dummy --mode install ${1+"$@"}; shift
-    ;;
-  link|lin|li|l)
-    shift; set dummy --mode link ${1+"$@"}; shift
-    ;;
-  uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
-    shift; set dummy --mode uninstall ${1+"$@"}; shift
-    ;;
-  esac
+    exit $EXIT_MISMATCH
+  fi
+}
+
+
+# Shorthand for --mode=foo, only valid as the first argument
+case $1 in
+clean|clea|cle|cl)
+  shift; set dummy --mode clean ${1+"$@"}; shift
+  ;;
+compile|compil|compi|comp|com|co|c)
+  shift; set dummy --mode compile ${1+"$@"}; shift
+  ;;
+execute|execut|execu|exec|exe|ex|e)
+  shift; set dummy --mode execute ${1+"$@"}; shift
+  ;;
+finish|finis|fini|fin|fi|f)
+  shift; set dummy --mode finish ${1+"$@"}; shift
+  ;;
+install|instal|insta|inst|ins|in|i)
+  shift; set dummy --mode install ${1+"$@"}; shift
+  ;;
+link|lin|li|l)
+  shift; set dummy --mode link ${1+"$@"}; shift
+  ;;
+uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
+  shift; set dummy --mode uninstall ${1+"$@"}; shift
+  ;;
+esac
+
+
+
+# Option defaults:
+opt_debug=:
+opt_dry_run=false
+opt_config=false
+opt_preserve_dup_deps=false
+opt_features=false
+opt_finish=false
+opt_help=false
+opt_help_all=false
+opt_silent=:
+opt_verbose=:
+opt_silent=false
+opt_verbose=false
 
-  # Parse non-mode specific arguments:
-  while test "$#" -gt 0; do
+
+# Parse options once, thoroughly.  This comes as soon as possible in the
+# script to make things like `--version' happen as quickly as we can.
+{
+  # this just eases exit handling
+  while test $# -gt 0; do
     opt="$1"
     shift
-
     case $opt in
-      --config)                func_config                                     ;;
-
-      --debug)         preserve_args="$preserve_args $opt"
+      --debug|-x)      opt_debug='set -x'
                        func_echo "enabling shell trace mode"
-                       opt_debug='set -x'
                        $opt_debug
                        ;;
-
-      -dlopen)         test "$#" -eq 0 && func_missing_arg "$opt" && break
-                       execute_dlfiles="$execute_dlfiles $1"
-                       shift
+      --dry-run|--dryrun|-n)
+                       opt_dry_run=:
                        ;;
-
-      --dry-run | -n)  opt_dry_run=:                                   ;;
-      --features)       func_features                                  ;;
-      --finish)                mode="finish"                                   ;;
-
-      --mode)          test "$#" -eq 0 && func_missing_arg "$opt" && break
-                       case $1 in
-                         # Valid mode arguments:
-                         clean)        ;;
-                         compile)      ;;
-                         execute)      ;;
-                         finish)       ;;
-                         install)      ;;
-                         link)         ;;
-                         relink)       ;;
-                         uninstall)    ;;
-
-                         # Catch anything else as an error
-                         *) func_error "invalid argument for $opt"
-                            exit_cmd=exit
-                            break
-                            ;;
-                       esac
-
-                       mode="$1"
+      --config)
+                       opt_config=:
+func_config
+                       ;;
+      --dlopen|-dlopen)
+                       optarg="$1"
+                       opt_dlopen="${opt_dlopen+$opt_dlopen
+}$optarg"
                        shift
                        ;;
-
       --preserve-dup-deps)
-                       opt_duplicate_deps=:                            ;;
-
-      --quiet|--silent)        preserve_args="$preserve_args $opt"
-                       opt_silent=:
+                       opt_preserve_dup_deps=:
                        ;;
-
-      --verbose| -v)   preserve_args="$preserve_args $opt"
+      --features)
+                       opt_features=:
+func_features
+                       ;;
+      --finish)
+                       opt_finish=:
+set dummy --mode finish ${1+"$@"}; shift
+                       ;;
+      --help)
+                       opt_help=:
+                       ;;
+      --help-all)
+                       opt_help_all=:
+opt_help=': help-all'
+                       ;;
+      --mode)
+                       test $# = 0 && func_missing_arg $opt && break
+                       optarg="$1"
+                       opt_mode="$optarg"
+case $optarg in
+  # Valid mode arguments:
+  clean|compile|execute|finish|install|link|relink|uninstall) ;;
+
+  # Catch anything else as an error
+  *) func_error "invalid argument for $opt"
+     exit_cmd=exit
+     break
+     ;;
+esac
+                       shift
+                       ;;
+      --no-silent|--no-quiet)
                        opt_silent=false
+func_append preserve_args " $opt"
                        ;;
-
-      --tag)           test "$#" -eq 0 && func_missing_arg "$opt" && break
-                       preserve_args="$preserve_args $opt $1"
-                       func_enable_tag "$1"    # tagname is set here
+      --no-verbose)
+                       opt_verbose=false
+func_append preserve_args " $opt"
+                       ;;
+      --silent|--quiet)
+                       opt_silent=:
+func_append preserve_args " $opt"
+        opt_verbose=false
+                       ;;
+      --verbose|-v)
+                       opt_verbose=:
+func_append preserve_args " $opt"
+opt_silent=false
+                       ;;
+      --tag)
+                       test $# = 0 && func_missing_arg $opt && break
+                       optarg="$1"
+                       opt_tag="$optarg"
+func_append preserve_args " $opt $optarg"
+func_enable_tag "$optarg"
                        shift
                        ;;
 
+      -\?|-h)          func_usage                              ;;
+      --help)          func_help                               ;;
+      --version)       func_version                            ;;
+
       # Separate optargs to long options:
-      -dlopen=*|--mode=*|--tag=*)
-                       func_opt_split "$opt"
-                       set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
+      --*=*)
+                       func_split_long_opt "$opt"
+                       set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
                        shift
                        ;;
 
-      -\?|-h)          func_usage                                      ;;
-      --help)          opt_help=:                                      ;;
-      --version)       func_version                                    ;;
-
-      -*)              func_fatal_help "unrecognized option \`$opt'"   ;;
-
-      *)               nonopt="$opt"
-                       break
+      # Separate non-argument short options:
+      -\?*|-h*|-n*|-v*)
+                       func_split_short_opt "$opt"
+                       set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
+                       shift
                        ;;
+
+      --)              break                                   ;;
+      -*)              func_fatal_help "unrecognized option \`$opt'" ;;
+      *)               set dummy "$opt" ${1+"$@"};     shift; break  ;;
     esac
   done
 
+  # Validate options:
+
+  # save first non-option argument
+  if test "$#" -gt 0; then
+    nonopt="$opt"
+    shift
+  fi
+
+  # preserve --debug
+  test "$opt_debug" = : || func_append preserve_args " --debug"
 
   case $host in
     *cygwin* | *mingw* | *pw32* | *cegcc*)
@@ -810,82 +1184,44 @@ func_enable_tag ()
       opt_duplicate_compiler_generated_deps=:
       ;;
     *)
-      opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
+      opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
       ;;
   esac
 
-  # Having warned about all mis-specified options, bail out if
-  # anything was wrong.
-  $exit_cmd $EXIT_FAILURE
-}
+  $opt_help || {
+    # Sanity checks first:
+    func_check_version_match
 
-# func_check_version_match
-# Ensure that we are using m4 macros, and libtool script from the same
-# release of libtool.
-func_check_version_match ()
-{
-  if test "$package_revision" != "$macro_revision"; then
-    if test "$VERSION" != "$macro_version"; then
-      if test -z "$macro_version"; then
-        cat >&2 <<_LT_EOF
-$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from an older release.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
-      else
-        cat >&2 <<_LT_EOF
-$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
-      fi
-    else
-      cat >&2 <<_LT_EOF
-$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
-$progname: but the definition of this LT_INIT comes from revision $macro_revision.
-$progname: You should recreate aclocal.m4 with macros from revision $package_revision
-$progname: of $PACKAGE $VERSION and run autoconf again.
-_LT_EOF
+    if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+      func_fatal_configuration "not configured to build any kind of library"
     fi
 
-    exit $EXIT_MISMATCH
-  fi
-}
-
-
-## ----------- ##
-##    Main.    ##
-## ----------- ##
-
-$opt_help || {
-  # Sanity checks first:
-  func_check_version_match
+    # Darwin sucks
+    eval std_shrext=\"$shrext_cmds\"
 
-  if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-    func_fatal_configuration "not configured to build any kind of library"
-  fi
+    # Only execute mode is allowed to have -dlopen flags.
+    if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
+      func_error "unrecognized option \`-dlopen'"
+      $ECHO "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
 
-  test -z "$mode" && func_fatal_error "error: you must specify a MODE."
+    # Change the help message to a mode-specific one.
+    generic_help="$help"
+    help="Try \`$progname --help --mode=$opt_mode' for more information."
+  }
 
 
-  # Darwin sucks
-  eval std_shrext=\"$shrext_cmds\"
+  # Bail if the options were screwed
+  $exit_cmd $EXIT_FAILURE
+}
 
 
-  # Only execute mode is allowed to have -dlopen flags.
-  if test -n "$execute_dlfiles" && test "$mode" != execute; then
-    func_error "unrecognized option \`-dlopen'"
-    $ECHO "$help" 1>&2
-    exit $EXIT_FAILURE
-  fi
 
-  # Change the help message to a mode-specific one.
-  generic_help="$help"
-  help="Try \`$progname --help --mode=$mode' for more information."
-}
 
+## ----------- ##
+##    Main.    ##
+## ----------- ##
 
 # func_lalib_p file
 # True iff FILE is a libtool `.la' library or `.lo' object file.
@@ -950,12 +1286,9 @@ func_ltwrapper_executable_p ()
 # temporary ltwrapper_script.
 func_ltwrapper_scriptname ()
 {
-    func_ltwrapper_scriptname_result=""
-    if func_ltwrapper_executable_p "$1"; then
-       func_dirname_and_basename "$1" "" "."
-       func_stripname '' '.exe' "$func_basename_result"
-       func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
-    fi
+    func_dirname_and_basename "$1" "" "."
+    func_stripname '' '.exe' "$func_basename_result"
+    func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
 }
 
 # func_ltwrapper_p file
@@ -1001,6 +1334,37 @@ func_source ()
 }
 
 
+# func_resolve_sysroot PATH
+# Replace a leading = in PATH with a sysroot.  Store the result into
+# func_resolve_sysroot_result
+func_resolve_sysroot ()
+{
+  func_resolve_sysroot_result=$1
+  case $func_resolve_sysroot_result in
+  =*)
+    func_stripname '=' '' "$func_resolve_sysroot_result"
+    func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
+    ;;
+  esac
+}
+
+# func_replace_sysroot PATH
+# If PATH begins with the sysroot, replace it with = and
+# store the result into func_replace_sysroot_result.
+func_replace_sysroot ()
+{
+  case "$lt_sysroot:$1" in
+  ?*:"$lt_sysroot"*)
+    func_stripname "$lt_sysroot" '' "$1"
+    func_replace_sysroot_result="=$func_stripname_result"
+    ;;
+  *)
+    # Including no sysroot.
+    func_replace_sysroot_result=$1
+    ;;
+  esac
+}
+
 # func_infer_tag arg
 # Infer tagged configuration to use if any are available and
 # if one wasn't chosen via the "--tag" command line option.
@@ -1013,13 +1377,15 @@ func_infer_tag ()
     if test -n "$available_tags" && test -z "$tagname"; then
       CC_quoted=
       for arg in $CC; do
-        func_quote_for_eval "$arg"
-       CC_quoted="$CC_quoted $func_quote_for_eval_result"
+       func_append_quoted CC_quoted "$arg"
       done
+      CC_expanded=`func_echo_all $CC`
+      CC_quoted_expanded=`func_echo_all $CC_quoted`
       case $@ in
       # Blanks in the command may have been stripped by the calling shell,
       # but not from the CC environment variable when configure was run.
-      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
+      " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
+      " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
       # Blanks at the start of $base_compile will cause this to fail
       # if we don't check for them as well.
       *)
@@ -1030,11 +1396,13 @@ func_infer_tag ()
            CC_quoted=
            for arg in $CC; do
              # Double-quote args containing other shell metacharacters.
-             func_quote_for_eval "$arg"
-             CC_quoted="$CC_quoted $func_quote_for_eval_result"
+             func_append_quoted CC_quoted "$arg"
            done
+           CC_expanded=`func_echo_all $CC`
+           CC_quoted_expanded=`func_echo_all $CC_quoted`
            case "$@ " in
-             " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
+           " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
+           " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
              # The compiler in the base compile command matches
              # the one in the tagged configuration.
              # Assume this is the tagged configuration we want.
@@ -1097,6 +1465,486 @@ EOF
     }
 }
 
+
+##################################################
+# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
+##################################################
+
+# func_convert_core_file_wine_to_w32 ARG
+# Helper function used by file name conversion functions when $build is *nix,
+# and $host is mingw, cygwin, or some other w32 environment. Relies on a
+# correctly configured wine environment available, with the winepath program
+# in $build's $PATH.
+#
+# ARG is the $build file name to be converted to w32 format.
+# Result is available in $func_convert_core_file_wine_to_w32_result, and will
+# be empty on error (or when ARG is empty)
+func_convert_core_file_wine_to_w32 ()
+{
+  $opt_debug
+  func_convert_core_file_wine_to_w32_result="$1"
+  if test -n "$1"; then
+    # Unfortunately, winepath does not exit with a non-zero error code, so we
+    # are forced to check the contents of stdout. On the other hand, if the
+    # command is not found, the shell will set an exit code of 127 and print
+    # *an error message* to stdout. So we must check for both error code of
+    # zero AND non-empty stdout, which explains the odd construction:
+    func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
+    if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
+      func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
+        $SED -e "$lt_sed_naive_backslashify"`
+    else
+      func_convert_core_file_wine_to_w32_result=
+    fi
+  fi
+}
+# end: func_convert_core_file_wine_to_w32
+
+
+# func_convert_core_path_wine_to_w32 ARG
+# Helper function used by path conversion functions when $build is *nix, and
+# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
+# configured wine environment available, with the winepath program in $build's
+# $PATH. Assumes ARG has no leading or trailing path separator characters.
+#
+# ARG is path to be converted from $build format to win32.
+# Result is available in $func_convert_core_path_wine_to_w32_result.
+# Unconvertible file (directory) names in ARG are skipped; if no directory names
+# are convertible, then the result may be empty.
+func_convert_core_path_wine_to_w32 ()
+{
+  $opt_debug
+  # unfortunately, winepath doesn't convert paths, only file names
+  func_convert_core_path_wine_to_w32_result=""
+  if test -n "$1"; then
+    oldIFS=$IFS
+    IFS=:
+    for func_convert_core_path_wine_to_w32_f in $1; do
+      IFS=$oldIFS
+      func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
+      if test -n "$func_convert_core_file_wine_to_w32_result" ; then
+        if test -z "$func_convert_core_path_wine_to_w32_result"; then
+          func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
+        else
+          func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
+        fi
+      fi
+    done
+    IFS=$oldIFS
+  fi
+}
+# end: func_convert_core_path_wine_to_w32
+
+
+# func_cygpath ARGS...
+# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
+# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
+# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
+# (2), returns the Cygwin file name or path in func_cygpath_result (input
+# file name or path is assumed to be in w32 format, as previously converted
+# from $build's *nix or MSYS format). In case (3), returns the w32 file name
+# or path in func_cygpath_result (input file name or path is assumed to be in
+# Cygwin format). Returns an empty string on error.
+#
+# ARGS are passed to cygpath, with the last one being the file name or path to
+# be converted.
+#
+# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
+# environment variable; do not put it in $PATH.
+func_cygpath ()
+{
+  $opt_debug
+  if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
+    func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
+    if test "$?" -ne 0; then
+      # on failure, ensure result is empty
+      func_cygpath_result=
+    fi
+  else
+    func_cygpath_result=
+    func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
+  fi
+}
+#end: func_cygpath
+
+
+# func_convert_core_msys_to_w32 ARG
+# Convert file name or path ARG from MSYS format to w32 format.  Return
+# result in func_convert_core_msys_to_w32_result.
+func_convert_core_msys_to_w32 ()
+{
+  $opt_debug
+  # awkward: cmd appends spaces to result
+  func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
+    $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
+}
+#end: func_convert_core_msys_to_w32
+
+
+# func_convert_file_check ARG1 ARG2
+# Verify that ARG1 (a file name in $build format) was converted to $host
+# format in ARG2. Otherwise, emit an error message, but continue (resetting
+# func_to_host_file_result to ARG1).
+func_convert_file_check ()
+{
+  $opt_debug
+  if test -z "$2" && test -n "$1" ; then
+    func_error "Could not determine host file name corresponding to"
+    func_error "  \`$1'"
+    func_error "Continuing, but uninstalled executables may not work."
+    # Fallback:
+    func_to_host_file_result="$1"
+  fi
+}
+# end func_convert_file_check
+
+
+# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
+# Verify that FROM_PATH (a path in $build format) was converted to $host
+# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
+# func_to_host_file_result to a simplistic fallback value (see below).
+func_convert_path_check ()
+{
+  $opt_debug
+  if test -z "$4" && test -n "$3"; then
+    func_error "Could not determine the host path corresponding to"
+    func_error "  \`$3'"
+    func_error "Continuing, but uninstalled executables may not work."
+    # Fallback.  This is a deliberately simplistic "conversion" and
+    # should not be "improved".  See libtool.info.
+    if test "x$1" != "x$2"; then
+      lt_replace_pathsep_chars="s|$1|$2|g"
+      func_to_host_path_result=`echo "$3" |
+        $SED -e "$lt_replace_pathsep_chars"`
+    else
+      func_to_host_path_result="$3"
+    fi
+  fi
+}
+# end func_convert_path_check
+
+
+# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
+# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
+# and appending REPL if ORIG matches BACKPAT.
+func_convert_path_front_back_pathsep ()
+{
+  $opt_debug
+  case $4 in
+  $1 ) func_to_host_path_result="$3$func_to_host_path_result"
+    ;;
+  esac
+  case $4 in
+  $2 ) func_append func_to_host_path_result "$3"
+    ;;
+  esac
+}
+# end func_convert_path_front_back_pathsep
+
+
+##################################################
+# $build to $host FILE NAME CONVERSION FUNCTIONS #
+##################################################
+# invoked via `$to_host_file_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# Result will be available in $func_to_host_file_result.
+
+
+# func_to_host_file ARG
+# Converts the file name ARG from $build format to $host format. Return result
+# in func_to_host_file_result.
+func_to_host_file ()
+{
+  $opt_debug
+  $to_host_file_cmd "$1"
+}
+# end func_to_host_file
+
+
+# func_to_tool_file ARG LAZY
+# converts the file name ARG from $build format to toolchain format. Return
+# result in func_to_tool_file_result.  If the conversion in use is listed
+# in (the comma separated) LAZY, no conversion takes place.
+func_to_tool_file ()
+{
+  $opt_debug
+  case ,$2, in
+    *,"$to_tool_file_cmd",*)
+      func_to_tool_file_result=$1
+      ;;
+    *)
+      $to_tool_file_cmd "$1"
+      func_to_tool_file_result=$func_to_host_file_result
+      ;;
+  esac
+}
+# end func_to_tool_file
+
+
+# func_convert_file_noop ARG
+# Copy ARG to func_to_host_file_result.
+func_convert_file_noop ()
+{
+  func_to_host_file_result="$1"
+}
+# end func_convert_file_noop
+
+
+# func_convert_file_msys_to_w32 ARG
+# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper.  Returns result in
+# func_to_host_file_result.
+func_convert_file_msys_to_w32 ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    func_convert_core_msys_to_w32 "$1"
+    func_to_host_file_result="$func_convert_core_msys_to_w32_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_w32
+
+
+# func_convert_file_cygwin_to_w32 ARG
+# Convert file name ARG from Cygwin to w32 format.  Returns result in
+# func_to_host_file_result.
+func_convert_file_cygwin_to_w32 ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
+    # LT_CYGPATH in this case.
+    func_to_host_file_result=`cygpath -m "$1"`
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_cygwin_to_w32
+
+
+# func_convert_file_nix_to_w32 ARG
+# Convert file name ARG from *nix to w32 format.  Requires a wine environment
+# and a working winepath. Returns result in func_to_host_file_result.
+func_convert_file_nix_to_w32 ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    func_convert_core_file_wine_to_w32 "$1"
+    func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_w32
+
+
+# func_convert_file_msys_to_cygwin ARG
+# Convert file name ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_file_msys_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    func_convert_core_msys_to_w32 "$1"
+    func_cygpath -u "$func_convert_core_msys_to_w32_result"
+    func_to_host_file_result="$func_cygpath_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_cygwin
+
+
+# func_convert_file_nix_to_cygwin ARG
+# Convert file name ARG from *nix to Cygwin format.  Requires Cygwin installed
+# in a wine environment, working winepath, and LT_CYGPATH set.  Returns result
+# in func_to_host_file_result.
+func_convert_file_nix_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
+    func_convert_core_file_wine_to_w32 "$1"
+    func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
+    func_to_host_file_result="$func_cygpath_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_cygwin
+
+
+#############################################
+# $build to $host PATH CONVERSION FUNCTIONS #
+#############################################
+# invoked via `$to_host_path_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# The result will be available in $func_to_host_path_result.
+#
+# Path separators are also converted from $build format to $host format.  If
+# ARG begins or ends with a path separator character, it is preserved (but
+# converted to $host format) on output.
+#
+# All path conversion functions are named using the following convention:
+#   file name conversion function    : func_convert_file_X_to_Y ()
+#   path conversion function         : func_convert_path_X_to_Y ()
+# where, for any given $build/$host combination the 'X_to_Y' value is the
+# same.  If conversion functions are added for new $build/$host combinations,
+# the two new functions must follow this pattern, or func_init_to_host_path_cmd
+# will break.
+
+
+# func_init_to_host_path_cmd
+# Ensures that function "pointer" variable $to_host_path_cmd is set to the
+# appropriate value, based on the value of $to_host_file_cmd.
+to_host_path_cmd=
+func_init_to_host_path_cmd ()
+{
+  $opt_debug
+  if test -z "$to_host_path_cmd"; then
+    func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
+    to_host_path_cmd="func_convert_path_${func_stripname_result}"
+  fi
+}
+
+
+# func_to_host_path ARG
+# Converts the path ARG from $build format to $host format. Return result
+# in func_to_host_path_result.
+func_to_host_path ()
+{
+  $opt_debug
+  func_init_to_host_path_cmd
+  $to_host_path_cmd "$1"
+}
+# end func_to_host_path
+
+
+# func_convert_path_noop ARG
+# Copy ARG to func_to_host_path_result.
+func_convert_path_noop ()
+{
+  func_to_host_path_result="$1"
+}
+# end func_convert_path_noop
+
+
+# func_convert_path_msys_to_w32 ARG
+# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper.  Returns result in
+# func_to_host_path_result.
+func_convert_path_msys_to_w32 ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # Remove leading and trailing path separator characters from ARG.  MSYS
+    # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
+    # and winepath ignores them completely.
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+    func_to_host_path_result="$func_convert_core_msys_to_w32_result"
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_msys_to_w32
+
+
+# func_convert_path_cygwin_to_w32 ARG
+# Convert path ARG from Cygwin to w32 format.  Returns result in
+# func_to_host_file_result.
+func_convert_path_cygwin_to_w32 ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_cygwin_to_w32
+
+
+# func_convert_path_nix_to_w32 ARG
+# Convert path ARG from *nix to w32 format.  Requires a wine environment and
+# a working winepath.  Returns result in func_to_host_file_result.
+func_convert_path_nix_to_w32 ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+    func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_nix_to_w32
+
+
+# func_convert_path_msys_to_cygwin ARG
+# Convert path ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_path_msys_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+    func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
+    func_to_host_path_result="$func_cygpath_result"
+    func_convert_path_check : : \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+  fi
+}
+# end func_convert_path_msys_to_cygwin
+
+
+# func_convert_path_nix_to_cygwin ARG
+# Convert path ARG from *nix to Cygwin format.  Requires Cygwin installed in a
+# a wine environment, working winepath, and LT_CYGPATH set.  Returns result in
+# func_to_host_file_result.
+func_convert_path_nix_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # Remove leading and trailing path separator characters from
+    # ARG. msys behavior is inconsistent here, cygpath turns them
+    # into '.;' and ';.', and winepath ignores them completely.
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+    func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
+    func_to_host_path_result="$func_cygpath_result"
+    func_convert_path_check : : \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+  fi
+}
+# end func_convert_path_nix_to_cygwin
+
+
 # func_mode_compile arg...
 func_mode_compile ()
 {
@@ -1137,12 +1985,12 @@ func_mode_compile ()
          ;;
 
        -pie | -fpie | -fPIE)
-          pie_flag="$pie_flag $arg"
+          func_append pie_flag " $arg"
          continue
          ;;
 
        -shared | -static | -prefer-pic | -prefer-non-pic)
-         later="$later $arg"
+         func_append later " $arg"
          continue
          ;;
 
@@ -1163,15 +2011,14 @@ func_mode_compile ()
          save_ifs="$IFS"; IFS=','
          for arg in $args; do
            IFS="$save_ifs"
-           func_quote_for_eval "$arg"
-           lastarg="$lastarg $func_quote_for_eval_result"
+           func_append_quoted lastarg "$arg"
          done
          IFS="$save_ifs"
          func_stripname ' ' '' "$lastarg"
          lastarg=$func_stripname_result
 
          # Add the arguments to base_compile.
-         base_compile="$base_compile $lastarg"
+         func_append base_compile " $lastarg"
          continue
          ;;
 
@@ -1187,8 +2034,7 @@ func_mode_compile ()
       esac    #  case $arg_mode
 
       # Aesthetically quote the previous argument.
-      func_quote_for_eval "$lastarg"
-      base_compile="$base_compile $func_quote_for_eval_result"
+      func_append_quoted base_compile "$lastarg"
     done # for arg
 
     case $arg_mode in
@@ -1213,7 +2059,7 @@ func_mode_compile ()
     *.[cCFSifmso] | \
     *.ada | *.adb | *.ads | *.asm | \
     *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
-    *.[fF][09]? | *.for | *.java | *.obj | *.sx)
+    *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup)
       func_xform "$libobj"
       libobj=$func_xform_result
       ;;
@@ -1288,7 +2134,7 @@ func_mode_compile ()
     # Calculate the filename of the output object if compiler does
     # not support -o with -c
     if test "$compiler_c_o" = no; then
-      output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
+      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
       lockfile="$output_obj.lock"
     else
       output_obj=
@@ -1319,17 +2165,16 @@ compiler."
        $opt_dry_run || $RM $removelist
        exit $EXIT_FAILURE
       fi
-      removelist="$removelist $output_obj"
+      func_append removelist " $output_obj"
       $ECHO "$srcfile" > "$lockfile"
     fi
 
     $opt_dry_run || $RM $removelist
-    removelist="$removelist $lockfile"
+    func_append removelist " $lockfile"
     trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
 
-    if test -n "$fix_srcfile_path"; then
-      eval srcfile=\"$fix_srcfile_path\"
-    fi
+    func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
+    srcfile=$func_to_tool_file_result
     func_quote_for_eval "$srcfile"
     qsrcfile=$func_quote_for_eval_result
 
@@ -1349,7 +2194,7 @@ compiler."
 
       if test -z "$output_obj"; then
        # Place PIC objects in $objdir
-       command="$command -o $lobj"
+       func_append command " -o $lobj"
       fi
 
       func_show_eval_locale "$command" \
@@ -1396,11 +2241,11 @@ compiler."
        command="$base_compile $qsrcfile $pic_flag"
       fi
       if test "$compiler_c_o" = yes; then
-       command="$command -o $obj"
+       func_append command " -o $obj"
       fi
 
       # Suppress compiler output if we already did a PIC compilation.
-      command="$command$suppress_output"
+      func_append command "$suppress_output"
       func_show_eval_locale "$command" \
         '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
 
@@ -1445,13 +2290,13 @@ compiler."
 }
 
 $opt_help || {
-test "$mode" = compile && func_mode_compile ${1+"$@"}
+  test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
 }
 
 func_mode_help ()
 {
     # We need to display help for each of the modes.
-    case $mode in
+    case $opt_mode in
       "")
         # Generic help is extracted from the usage comments
         # at the start of this file.
@@ -1482,10 +2327,11 @@ This mode accepts the following additional options:
 
   -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
   -no-suppress      do not suppress compiler output for multiple passes
-  -prefer-pic       try to building PIC objects only
-  -prefer-non-pic   try to building non-PIC objects only
+  -prefer-pic       try to build PIC objects only
+  -prefer-non-pic   try to build non-PIC objects only
   -shared           do not build a \`.o' file suitable for static linking
   -static           only build a \`.o' file suitable for static linking
+  -Wc,FLAG          pass FLAG directly to the compiler
 
 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
 from the given SOURCEFILE.
@@ -1538,7 +2384,7 @@ either the \`install' or \`cp' program.
 
 The following components of INSTALL-COMMAND are treated specially:
 
-  -inst-prefix PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
+  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
 
 The rest of the components are interpreted as arguments to that command (only
 BSD-compatible install options are recognized)."
@@ -1558,6 +2404,8 @@ The following components of LINK-COMMAND are treated specially:
 
   -all-static       do not do any dynamic linking at all
   -avoid-version    do not add a version suffix if possible
+  -bindir BINDIR    specify path to binaries directory (for systems where
+                    libraries must be found in the PATH setting at runtime)
   -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
   -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
   -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
@@ -1586,6 +2434,11 @@ The following components of LINK-COMMAND are treated specially:
   -version-info CURRENT[:REVISION[:AGE]]
                     specify library version info [each variable defaults to 0]
   -weak LIBNAME     declare that the target provides the LIBNAME interface
+  -Wc,FLAG
+  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler
+  -Wl,FLAG
+  -Xlinker FLAG     pass linker-specific FLAG directly to the linker
+  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
 
 All other options (arguments beginning with \`-') are ignored.
 
@@ -1619,18 +2472,44 @@ Otherwise, only FILE itself is deleted using RM."
         ;;
 
       *)
-        func_fatal_help "invalid operation mode \`$mode'"
+        func_fatal_help "invalid operation mode \`$opt_mode'"
         ;;
     esac
 
-    $ECHO
+    echo
     $ECHO "Try \`$progname --help' for more information about other modes."
-
-    exit $?
 }
 
-  # Now that we've collected a possible --mode arg, show help if necessary
-  $opt_help && func_mode_help
+# Now that we've collected a possible --mode arg, show help if necessary
+if $opt_help; then
+  if test "$opt_help" = :; then
+    func_mode_help
+  else
+    {
+      func_help noexit
+      for opt_mode in compile link execute install finish uninstall clean; do
+       func_mode_help
+      done
+    } | sed -n '1p; 2,$s/^Usage:/  or: /p'
+    {
+      func_help noexit
+      for opt_mode in compile link execute install finish uninstall clean; do
+       echo
+       func_mode_help
+      done
+    } |
+    sed '1d
+      /^When reporting/,/^Report/{
+       H
+       d
+      }
+      $x
+      /information about other modes/d
+      /more detailed .*MODE/d
+      s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
+  fi
+  exit $?
+fi
 
 
 # func_mode_execute arg...
@@ -1643,13 +2522,16 @@ func_mode_execute ()
       func_fatal_help "you must specify a COMMAND"
 
     # Handle -dlopen flags immediately.
-    for file in $execute_dlfiles; do
+    for file in $opt_dlopen; do
       test -f "$file" \
        || func_fatal_help "\`$file' is not a file"
 
       dir=
       case $file in
       *.la)
+       func_resolve_sysroot "$file"
+       file=$func_resolve_sysroot_result
+
        # Check to see that this really is a libtool archive.
        func_lalib_unsafe_p "$file" \
          || func_fatal_help "\`$lib' is not a valid libtool archive"
@@ -1671,7 +2553,7 @@ func_mode_execute ()
        dir="$func_dirname_result"
 
        if test -f "$dir/$objdir/$dlname"; then
-         dir="$dir/$objdir"
+         func_append dir "/$objdir"
        else
          if test ! -f "$dir/$dlname"; then
            func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
@@ -1712,7 +2594,7 @@ func_mode_execute ()
     for file
     do
       case $file in
-      -*) ;;
+      -* | *.la | *.lo ) ;;
       *)
        # Do a test to see if this is really a libtool program.
        if func_ltwrapper_script_p "$file"; then
@@ -1728,8 +2610,7 @@ func_mode_execute ()
        ;;
       esac
       # Quote arguments (to preserve shell metacharacters).
-      func_quote_for_eval "$file"
-      args="$args $func_quote_for_eval_result"
+      func_append_quoted args "$file"
     done
 
     if test "X$opt_dry_run" = Xfalse; then
@@ -1754,29 +2635,66 @@ func_mode_execute ()
       # Display what would be done.
       if test -n "$shlibpath_var"; then
        eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
-       $ECHO "export $shlibpath_var"
+       echo "export $shlibpath_var"
       fi
       $ECHO "$cmd$args"
       exit $EXIT_SUCCESS
     fi
 }
 
-test "$mode" = execute && func_mode_execute ${1+"$@"}
+test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
+
+
+# func_mode_finish arg...
+func_mode_finish ()
+{
+    $opt_debug
+    libs=
+    libdirs=
+    admincmds=
+
+    for opt in "$nonopt" ${1+"$@"}
+    do
+      if test -d "$opt"; then
+       func_append libdirs " $opt"
+
+      elif test -f "$opt"; then
+       if func_lalib_unsafe_p "$opt"; then
+         func_append libs " $opt"
+       else
+         func_warning "\`$opt' is not a valid libtool archive"
+       fi
+
+      else
+       func_fatal_error "invalid argument \`$opt'"
+      fi
+    done
 
+    if test -n "$libs"; then
+      if test -n "$lt_sysroot"; then
+        sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
+        sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
+      else
+        sysroot_cmd=
+      fi
 
-# func_mode_finish arg...
-func_mode_finish ()
-{
-    $opt_debug
-    libdirs="$nonopt"
-    admincmds=
+      # Remove sysroot references
+      if $opt_dry_run; then
+        for lib in $libs; do
+          echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
+        done
+      else
+        tmpdir=`func_mktempdir`
+        for lib in $libs; do
+         sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
+           > $tmpdir/tmp-la
+         mv -f $tmpdir/tmp-la $lib
+       done
+        ${RM}r "$tmpdir"
+      fi
+    fi
 
     if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-      for dir
-      do
-       libdirs="$libdirs $dir"
-      done
-
       for libdir in $libdirs; do
        if test -n "$finish_cmds"; then
          # Do each command in the finish commands.
@@ -1786,7 +2704,7 @@ func_mode_finish ()
        if test -n "$finish_eval"; then
          # Do the single finish_eval.
          eval cmds=\"$finish_eval\"
-         $opt_dry_run || eval "$cmds" || admincmds="$admincmds
+         $opt_dry_run || eval "$cmds" || func_append admincmds "
        $cmds"
        fi
       done
@@ -1795,53 +2713,55 @@ func_mode_finish ()
     # Exit here if they wanted silent mode.
     $opt_silent && exit $EXIT_SUCCESS
 
-    $ECHO "X----------------------------------------------------------------------" | $Xsed
-    $ECHO "Libraries have been installed in:"
-    for libdir in $libdirs; do
-      $ECHO "   $libdir"
-    done
-    $ECHO
-    $ECHO "If you ever happen to want to link against installed libraries"
-    $ECHO "in a given directory, LIBDIR, you must either use libtool, and"
-    $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'"
-    $ECHO "flag during linking and do at least one of the following:"
-    if test -n "$shlibpath_var"; then
-      $ECHO "   - add LIBDIR to the \`$shlibpath_var' environment variable"
-      $ECHO "     during execution"
-    fi
-    if test -n "$runpath_var"; then
-      $ECHO "   - add LIBDIR to the \`$runpath_var' environment variable"
-      $ECHO "     during linking"
-    fi
-    if test -n "$hardcode_libdir_flag_spec"; then
-      libdir=LIBDIR
-      eval flag=\"$hardcode_libdir_flag_spec\"
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+      echo "----------------------------------------------------------------------"
+      echo "Libraries have been installed in:"
+      for libdir in $libdirs; do
+       $ECHO "   $libdir"
+      done
+      echo
+      echo "If you ever happen to want to link against installed libraries"
+      echo "in a given directory, LIBDIR, you must either use libtool, and"
+      echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+      echo "flag during linking and do at least one of the following:"
+      if test -n "$shlibpath_var"; then
+       echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
+       echo "     during execution"
+      fi
+      if test -n "$runpath_var"; then
+       echo "   - add LIBDIR to the \`$runpath_var' environment variable"
+       echo "     during linking"
+      fi
+      if test -n "$hardcode_libdir_flag_spec"; then
+       libdir=LIBDIR
+       eval flag=\"$hardcode_libdir_flag_spec\"
 
-      $ECHO "   - use the \`$flag' linker flag"
-    fi
-    if test -n "$admincmds"; then
-      $ECHO "   - have your system administrator run these commands:$admincmds"
-    fi
-    if test -f /etc/ld.so.conf; then
-      $ECHO "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
-    fi
-    $ECHO
+       $ECHO "   - use the \`$flag' linker flag"
+      fi
+      if test -n "$admincmds"; then
+       $ECHO "   - have your system administrator run these commands:$admincmds"
+      fi
+      if test -f /etc/ld.so.conf; then
+       echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+      fi
+      echo
 
-    $ECHO "See any operating system documentation about shared libraries for"
-    case $host in
-      solaris2.[6789]|solaris2.1[0-9])
-        $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"
-       $ECHO "pages."
-       ;;
-      *)
-        $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."
-        ;;
-    esac
-    $ECHO "X----------------------------------------------------------------------" | $Xsed
+      echo "See any operating system documentation about shared libraries for"
+      case $host in
+       solaris2.[6789]|solaris2.1[0-9])
+         echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
+         echo "pages."
+         ;;
+       *)
+         echo "more information, such as the ld(1) and ld.so(8) manual pages."
+         ;;
+      esac
+      echo "----------------------------------------------------------------------"
+    fi
     exit $EXIT_SUCCESS
 }
 
-test "$mode" = finish && func_mode_finish ${1+"$@"}
+test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
 
 
 # func_mode_install arg...
@@ -1852,7 +2772,7 @@ func_mode_install ()
     # install_prog (especially on Windows NT).
     if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
        # Allow the use of GNU shtool's install command.
-       $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
+       case $nonopt in *shtool*) :;; *) false;; esac; then
       # Aesthetically quote it.
       func_quote_for_eval "$nonopt"
       install_prog="$func_quote_for_eval_result "
@@ -1866,7 +2786,12 @@ func_mode_install ()
     # The real first argument should be the name of the installation program.
     # Aesthetically quote it.
     func_quote_for_eval "$arg"
-    install_prog="$install_prog$func_quote_for_eval_result"
+    func_append install_prog "$func_quote_for_eval_result"
+    install_shared_prog=$install_prog
+    case " $install_prog " in
+      *[\\\ /]cp\ *) install_cp=: ;;
+      *) install_cp=false ;;
+    esac
 
     # We need to accept at least all the BSD install flags.
     dest=
@@ -1876,10 +2801,12 @@ func_mode_install ()
     install_type=
     isdir=no
     stripme=
+    no_mode=:
     for arg
     do
+      arg2=
       if test -n "$dest"; then
-       files="$files $dest"
+       func_append files " $dest"
        dest=$arg
        continue
       fi
@@ -1887,10 +2814,9 @@ func_mode_install ()
       case $arg in
       -d) isdir=yes ;;
       -f)
-       case " $install_prog " in
-       *[\\\ /]cp\ *) ;;
-       *) prev=$arg ;;
-       esac
+       if $install_cp; then :; else
+         prev=$arg
+       fi
        ;;
       -g | -m | -o)
        prev=$arg
@@ -1904,6 +2830,10 @@ func_mode_install ()
       *)
        # If the previous option needed an argument, then skip it.
        if test -n "$prev"; then
+         if test "x$prev" = x-m && test -n "$install_override_mode"; then
+           arg2=$install_override_mode
+           no_mode=false
+         fi
          prev=
        else
          dest=$arg
@@ -1914,7 +2844,11 @@ func_mode_install ()
 
       # Aesthetically quote the argument.
       func_quote_for_eval "$arg"
-      install_prog="$install_prog $func_quote_for_eval_result"
+      func_append install_prog " $func_quote_for_eval_result"
+      if test -n "$arg2"; then
+       func_quote_for_eval "$arg2"
+      fi
+      func_append install_shared_prog " $func_quote_for_eval_result"
     done
 
     test -z "$install_prog" && \
@@ -1923,6 +2857,13 @@ func_mode_install ()
     test -n "$prev" && \
       func_fatal_help "the \`$prev' option requires an argument"
 
+    if test -n "$install_override_mode" && $no_mode; then
+      if $install_cp; then :; else
+       func_quote_for_eval "$install_override_mode"
+       func_append install_shared_prog " -m $func_quote_for_eval_result"
+      fi
+    fi
+
     if test -z "$files"; then
       if test -z "$dest"; then
        func_fatal_help "no file or destination specified"
@@ -1977,10 +2918,13 @@ func_mode_install ()
       case $file in
       *.$libext)
        # Do the static libraries later.
-       staticlibs="$staticlibs $file"
+       func_append staticlibs " $file"
        ;;
 
       *.la)
+       func_resolve_sysroot "$file"
+       file=$func_resolve_sysroot_result
+
        # Check to see that this really is a libtool archive.
        func_lalib_unsafe_p "$file" \
          || func_fatal_help "\`$file' is not a valid libtool archive"
@@ -1994,23 +2938,23 @@ func_mode_install ()
        if test "X$destdir" = "X$libdir"; then
          case "$current_libdirs " in
          *" $libdir "*) ;;
-         *) current_libdirs="$current_libdirs $libdir" ;;
+         *) func_append current_libdirs " $libdir" ;;
          esac
        else
          # Note the libdir as a future libdir.
          case "$future_libdirs " in
          *" $libdir "*) ;;
-         *) future_libdirs="$future_libdirs $libdir" ;;
+         *) func_append future_libdirs " $libdir" ;;
          esac
        fi
 
        func_dirname "$file" "/" ""
        dir="$func_dirname_result"
-       dir="$dir$objdir"
+       func_append dir "$objdir"
 
        if test -n "$relink_command"; then
          # Determine the prefix the user has applied to our future dir.
-         inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
+         inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
 
          # Don't allow the user to place us outside of our expected
          # location b/c this prevents finding dependent libraries that
@@ -2023,9 +2967,9 @@ func_mode_install ()
 
          if test -n "$inst_prefix_dir"; then
            # Stick the inst_prefix_dir data into the link command.
-           relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+           relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
          else
-           relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
+           relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
          fi
 
          func_warning "relinking \`$file'"
@@ -2043,7 +2987,7 @@ func_mode_install ()
          test -n "$relink_command" && srcname="$realname"T
 
          # Install the shared library and build the symlinks.
-         func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \
+         func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
              'exit $?'
          tstripme="$stripme"
          case $host_os in
@@ -2083,7 +3027,7 @@ func_mode_install ()
        func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
 
        # Maybe install the static library, too.
-       test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
+       test -n "$old_library" && func_append staticlibs " $dir/$old_library"
        ;;
 
       *.lo)
@@ -2183,7 +3127,7 @@ func_mode_install ()
            if test -f "$lib"; then
              func_source "$lib"
            fi
-           libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
+           libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
            if test -n "$libdir" && test ! -f "$libfile"; then
              func_warning "\`$lib' has not been installed in \`$libdir'"
              finalize=no
@@ -2202,7 +3146,7 @@ func_mode_install ()
                file="$func_basename_result"
                outputname="$tmpdir/$file"
                # Replace the output file specification.
-               relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
+               relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
 
                $opt_silent || {
                  func_quote_for_expand "$relink_command"
@@ -2221,7 +3165,7 @@ func_mode_install ()
            }
          else
            # Install the binary that we compiled earlier.
-           file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
+           file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
          fi
        fi
 
@@ -2280,7 +3224,7 @@ func_mode_install ()
     fi
 }
 
-test "$mode" = install && func_mode_install ${1+"$@"}
+test "$opt_mode" = install && func_mode_install ${1+"$@"}
 
 
 # func_generate_dlsyms outputname originator pic_p
@@ -2323,6 +3267,22 @@ func_generate_dlsyms ()
 extern \"C\" {
 #endif
 
+#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
+#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
+#endif
+
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data.  */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
 /* External symbol declarations for the compiler. */\
 "
 
@@ -2332,10 +3292,11 @@ extern \"C\" {
          $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
 
          # Add our own program objects to the symbol list.
-         progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+         progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
          for progfile in $progfiles; do
-           func_verbose "extracting global C symbols from \`$progfile'"
-           $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
+           func_to_tool_file "$progfile" func_convert_file_msys_to_w32
+           func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
+           $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
          done
 
          if test -n "$exclude_expsyms"; then
@@ -2371,7 +3332,7 @@ extern \"C\" {
              eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
              eval '$MV "$nlist"T "$nlist"'
              case $host in
-               *cygwin | *mingw* | *cegcc* )
+               *cygwin* | *mingw* | *cegcc* )
                  eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
                  eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
                  ;;
@@ -2384,10 +3345,52 @@ extern \"C\" {
          func_verbose "extracting global C symbols from \`$dlprefile'"
          func_basename "$dlprefile"
          name="$func_basename_result"
-         $opt_dry_run || {
-           eval '$ECHO ": $name " >> "$nlist"'
-           eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
-         }
+          case $host in
+           *cygwin* | *mingw* | *cegcc* )
+             # if an import library, we need to obtain dlname
+             if func_win32_import_lib_p "$dlprefile"; then
+               func_tr_sh "$dlprefile"
+               eval "curr_lafile=\$libfile_$func_tr_sh_result"
+               dlprefile_dlbasename=""
+               if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
+                 # Use subshell, to avoid clobbering current variable values
+                 dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
+                 if test -n "$dlprefile_dlname" ; then
+                   func_basename "$dlprefile_dlname"
+                   dlprefile_dlbasename="$func_basename_result"
+                 else
+                   # no lafile. user explicitly requested -dlpreopen <import library>.
+                   $sharedlib_from_linklib_cmd "$dlprefile"
+                   dlprefile_dlbasename=$sharedlib_from_linklib_result
+                 fi
+               fi
+               $opt_dry_run || {
+                 if test -n "$dlprefile_dlbasename" ; then
+                   eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
+                 else
+                   func_warning "Could not compute DLL name from $name"
+                   eval '$ECHO ": $name " >> "$nlist"'
+                 fi
+                 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+                 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
+                   $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
+               }
+             else # not an import lib
+               $opt_dry_run || {
+                 eval '$ECHO ": $name " >> "$nlist"'
+                 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+                 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+               }
+             fi
+           ;;
+           *)
+             $opt_dry_run || {
+               eval '$ECHO ": $name " >> "$nlist"'
+               func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+               eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+             }
+           ;;
+          esac
        done
 
        $opt_dry_run || {
@@ -2415,36 +3418,19 @@ extern \"C\" {
          if test -f "$nlist"S; then
            eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
          else
-           $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
+           echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
          fi
 
-         $ECHO >> "$output_objdir/$my_dlsyms" "\
+         echo >> "$output_objdir/$my_dlsyms" "\
 
 /* The mapping between symbol names and symbols.  */
 typedef struct {
   const char *name;
   void *address;
 } lt_dlsymlist;
-"
-         case $host in
-         *cygwin* | *mingw* | *cegcc* )
-           $ECHO >> "$output_objdir/$my_dlsyms" "\
-/* DATA imports from DLLs on WIN32 con't be const, because
-   runtime relocations are performed -- see ld's documentation
-   on pseudo-relocs.  */"
-           lt_dlsym_const= ;;
-         *osf5*)
-           echo >> "$output_objdir/$my_dlsyms" "\
-/* This system does not cope well with relocations in const data */"
-           lt_dlsym_const= ;;
-         *)
-           lt_dlsym_const=const ;;
-         esac
-
-         $ECHO >> "$output_objdir/$my_dlsyms" "\
-extern $lt_dlsym_const lt_dlsymlist
+extern LT_DLSYM_CONST lt_dlsymlist
 lt_${my_prefix}_LTX_preloaded_symbols[];
-$lt_dlsym_const lt_dlsymlist
+LT_DLSYM_CONST lt_dlsymlist
 lt_${my_prefix}_LTX_preloaded_symbols[] =
 {\
   { \"$my_originator\", (void *) 0 },"
@@ -2457,7 +3443,7 @@ lt_${my_prefix}_LTX_preloaded_symbols[] =
            eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
            ;;
          esac
-         $ECHO >> "$output_objdir/$my_dlsyms" "\
+         echo >> "$output_objdir/$my_dlsyms" "\
   {0, (void *) 0}
 };
 
@@ -2500,7 +3486,7 @@ static const void *lt_preloaded_setup() {
        for arg in $LTCFLAGS; do
          case $arg in
          -pie | -fpie | -fPIE) ;;
-         *) symtab_cflags="$symtab_cflags $arg" ;;
+         *) func_append symtab_cflags " $arg" ;;
          esac
        done
 
@@ -2515,16 +3501,16 @@ static const void *lt_preloaded_setup() {
        case $host in
        *cygwin* | *mingw* | *cegcc* )
          if test -f "$output_objdir/$my_outputname.def"; then
-           compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
-           finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+           compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+           finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
          else
-           compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
-           finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+           compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+           finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
          fi
          ;;
        *)
-         compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
-         finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+         compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+         finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
          ;;
        esac
        ;;
@@ -2538,8 +3524,8 @@ static const void *lt_preloaded_setup() {
       # really was required.
 
       # Nullify the symbol file.
-      compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
-      finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+      compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
+      finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
     fi
 }
 
@@ -2549,6 +3535,7 @@ static const void *lt_preloaded_setup() {
 # Need a lot of goo to handle *both* DLLs and import libs
 # Has to be a shell function in order to 'eat' the argument
 # that is supplied when $file_magic_command is called.
+# Despite the name, also deal with 64 bit binaries.
 func_win32_libid ()
 {
   $opt_debug
@@ -2559,9 +3546,11 @@ func_win32_libid ()
     win32_libid_type="x86 archive import"
     ;;
   *ar\ archive*) # could be an import, or static
+    # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
     if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
-       $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
-      win32_nmres=`eval $NM -f posix -A $1 |
+       $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
+      func_to_tool_file "$1" func_convert_file_msys_to_w32
+      win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
        $SED -n -e '
            1,100{
                / I /{
@@ -2590,6 +3579,131 @@ func_win32_libid ()
   $ECHO "$win32_libid_type"
 }
 
+# func_cygming_dll_for_implib ARG
+#
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+# Invoked by eval'ing the libtool variable
+#    $sharedlib_from_linklib_cmd
+# Result is available in the variable
+#    $sharedlib_from_linklib_result
+func_cygming_dll_for_implib ()
+{
+  $opt_debug
+  sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
+}
+
+# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
+#
+# The is the core of a fallback implementation of a
+# platform-specific function to extract the name of the
+# DLL associated with the specified import library LIBNAME.
+#
+# SECTION_NAME is either .idata$6 or .idata$7, depending
+# on the platform and compiler that created the implib.
+#
+# Echos the name of the DLL associated with the
+# specified import library.
+func_cygming_dll_for_implib_fallback_core ()
+{
+  $opt_debug
+  match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
+  $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
+    $SED '/^Contents of section '"$match_literal"':/{
+      # Place marker at beginning of archive member dllname section
+      s/.*/====MARK====/
+      p
+      d
+    }
+    # These lines can sometimes be longer than 43 characters, but
+    # are always uninteresting
+    /:[         ]*file format pe[i]\{,1\}-/d
+    /^In archive [^:]*:/d
+    # Ensure marker is printed
+    /^====MARK====/p
+    # Remove all lines with less than 43 characters
+    /^.\{43\}/!d
+    # From remaining lines, remove first 43 characters
+    s/^.\{43\}//' |
+    $SED -n '
+      # Join marker and all lines until next marker into a single line
+      /^====MARK====/ b para
+      H
+      $ b para
+      b
+      :para
+      x
+      s/\n//g
+      # Remove the marker
+      s/^====MARK====//
+      # Remove trailing dots and whitespace
+      s/[\. \t]*$//
+      # Print
+      /./p' |
+    # we now have a list, one entry per line, of the stringified
+    # contents of the appropriate section of all members of the
+    # archive which possess that section. Heuristic: eliminate
+    # all those which have a first or second character that is
+    # a '.' (that is, objdump's representation of an unprintable
+    # character.) This should work for all archives with less than
+    # 0x302f exports -- but will fail for DLLs whose name actually
+    # begins with a literal '.' or a single character followed by
+    # a '.'.
+    #
+    # Of those that remain, print the first one.
+    $SED -e '/^\./d;/^.\./d;q'
+}
+
+# func_cygming_gnu_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is a GNU/binutils-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_gnu_implib_p ()
+{
+  $opt_debug
+  func_to_tool_file "$1" func_convert_file_msys_to_w32
+  func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
+  test -n "$func_cygming_gnu_implib_tmp"
+}
+
+# func_cygming_ms_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is an MS-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_ms_implib_p ()
+{
+  $opt_debug
+  func_to_tool_file "$1" func_convert_file_msys_to_w32
+  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
+  test -n "$func_cygming_ms_implib_tmp"
+}
+
+# func_cygming_dll_for_implib_fallback ARG
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+#
+# This fallback implementation is for use when $DLLTOOL
+# does not support the --identify-strict option.
+# Invoked by eval'ing the libtool variable
+#    $sharedlib_from_linklib_cmd
+# Result is available in the variable
+#    $sharedlib_from_linklib_result
+func_cygming_dll_for_implib_fallback ()
+{
+  $opt_debug
+  if func_cygming_gnu_implib_p "$1" ; then
+    # binutils import library
+    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
+  elif func_cygming_ms_implib_p "$1" ; then
+    # ms-generated import library
+    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
+  else
+    # unknown
+    sharedlib_from_linklib_result=""
+  fi
+}
 
 
 # func_extract_an_archive dir oldlib
@@ -2598,7 +3712,18 @@ func_extract_an_archive ()
     $opt_debug
     f_ex_an_ar_dir="$1"; shift
     f_ex_an_ar_oldlib="$1"
-    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?'
+    if test "$lock_old_archive_extraction" = yes; then
+      lockfile=$f_ex_an_ar_oldlib.lock
+      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+       func_echo "Waiting for $lockfile to be removed"
+       sleep 2
+      done
+    fi
+    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
+                  'stat=$?; rm -f "$lockfile"; exit $stat'
+    if test "$lock_old_archive_extraction" = yes; then
+      $opt_dry_run || rm -f "$lockfile"
+    fi
     if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
      :
     else
@@ -2669,7 +3794,7 @@ func_extract_archives ()
            darwin_file=
            darwin_files=
            for darwin_file in $darwin_filelist; do
-             darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
+             darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
              $LIPO -create -output "$darwin_file" $darwin_files
            done # $darwin_filelist
            $RM -rf unfat-$$
@@ -2684,25 +3809,30 @@ func_extract_archives ()
         func_extract_an_archive "$my_xdir" "$my_xabs"
        ;;
       esac
-      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
     done
 
     func_extract_archives_result="$my_oldobjs"
 }
 
 
-
-# func_emit_wrapper_part1 [arg=no]
+# func_emit_wrapper [arg=no]
+#
+# Emit a libtool wrapper script on stdout.
+# Don't directly open a file because we may want to
+# incorporate the script contents within a cygwin/mingw
+# wrapper executable.  Must ONLY be called from within
+# func_mode_link because it depends on a number of variables
+# set therein.
 #
-# Emit the first part of a libtool wrapper script on stdout.
-# For more information, see the description associated with
-# func_emit_wrapper(), below.
-func_emit_wrapper_part1 ()
+# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
+# variable will take.  If 'yes', then the emitted script
+# will assume that the directory in which it is stored is
+# the $objdir directory.  This is a cygwin/mingw-specific
+# behavior.
+func_emit_wrapper ()
 {
-       func_emit_wrapper_part1_arg1=no
-       if test -n "$1" ; then
-         func_emit_wrapper_part1_arg1=$1
-       fi
+       func_emit_wrapper_arg1=${1-no}
 
        $ECHO "\
 #! $SHELL
@@ -2718,7 +3848,6 @@ func_emit_wrapper_part1 ()
 
 # Sed substitution that helps us do robust quoting.  It backslashifies
 # metacharacters that are still active within double-quoted strings.
-Xsed='${SED} -e 1s/^X//'
 sed_quote_subst='$sed_quote_subst'
 
 # Be Bourne compatible
@@ -2749,31 +3878,132 @@ if test \"\$libtool_install_magic\" = \"$magic\"; then
 else
   # When we are sourced in execute mode, \$file and \$ECHO are already set.
   if test \"\$libtool_execute_magic\" != \"$magic\"; then
-    ECHO=\"$qecho\"
-    file=\"\$0\"
-    # Make sure echo works.
-    if test \"X\$1\" = X--no-reexec; then
-      # Discard the --no-reexec flag, and continue.
-      shift
-    elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
-      # Yippee, \$ECHO works!
-      :
-    else
-      # Restart under the correct shell, and then maybe \$ECHO will work.
-      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
-    fi
-  fi\
+    file=\"\$0\""
+
+    qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
+    $ECHO "\
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+    ECHO=\"$qECHO\"
+  fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /script/ and the wrapper /executable/ which is used only on
+# windows platforms, and (c) all begin with the string "--lt-"
+# (application programs are unlikely to have options which match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's $0 value, followed by "$@".
+lt_option_debug=
+func_parse_lt_options ()
+{
+  lt_script_arg0=\$0
+  shift
+  for lt_opt
+  do
+    case \"\$lt_opt\" in
+    --lt-debug) lt_option_debug=1 ;;
+    --lt-dump-script)
+        lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
+        test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
+        lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
+        cat \"\$lt_dump_D/\$lt_dump_F\"
+        exit 0
+      ;;
+    --lt-*)
+        \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
+        exit 1
+      ;;
+    esac
+  done
+
+  # Print the debug banner immediately:
+  if test -n \"\$lt_option_debug\"; then
+    echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
+  fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+  lt_dump_args_N=1;
+  for lt_arg
+  do
+    \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
+    lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
+  done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
 "
-       $ECHO "\
+  case $host in
+  # Backslashes separate directories on plain windows
+  *-*-mingw | *-*-os2* | *-cegcc*)
+    $ECHO "\
+      if test -n \"\$lt_option_debug\"; then
+        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
+        func_lt_dump_args \${1+\"\$@\"} 1>&2
+      fi
+      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+"
+    ;;
+
+  *)
+    $ECHO "\
+      if test -n \"\$lt_option_debug\"; then
+        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
+        func_lt_dump_args \${1+\"\$@\"} 1>&2
+      fi
+      exec \"\$progdir/\$program\" \${1+\"\$@\"}
+"
+    ;;
+  esac
+  $ECHO "\
+      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
+      exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from \$@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+  for lt_wr_arg
+  do
+    case \$lt_wr_arg in
+    --lt-*) ;;
+    *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
+    esac
+    shift
+  done
+  func_exec_program_core \${1+\"\$@\"}
+}
+
+  # Parse options
+  func_parse_lt_options \"\$0\" \${1+\"\$@\"}
 
   # Find the directory that this script lives in.
-  thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
+  thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
   test \"x\$thisdir\" = \"x\$file\" && thisdir=.
 
   # Follow symbolic links until we get to the real thisdir.
-  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
+  file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
   while test -n \"\$file\"; do
-    destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
+    destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
 
     # If there was a directory component, then change thisdir.
     if test \"x\$destdir\" != \"x\$file\"; then
@@ -2783,30 +4013,13 @@ else
       esac
     fi
 
-    file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
-    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
+    file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
+    file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
   done
-"
-}
-# end: func_emit_wrapper_part1
-
-# func_emit_wrapper_part2 [arg=no]
-#
-# Emit the second part of a libtool wrapper script on stdout.
-# For more information, see the description associated with
-# func_emit_wrapper(), below.
-func_emit_wrapper_part2 ()
-{
-       func_emit_wrapper_part2_arg1=no
-       if test -n "$1" ; then
-         func_emit_wrapper_part2_arg1=$1
-       fi
-
-       $ECHO "\
 
   # Usually 'no', except on cygwin/mingw when embedded into
   # the cwrapper.
-  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
   if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
     # special case for '.'
     if test \"\$thisdir\" = \".\"; then
@@ -2814,7 +4027,7 @@ func_emit_wrapper_part2 ()
     fi
     # remove .libs from thisdir
     case \"\$thisdir\" in
-    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;;
+    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
     $objdir )   thisdir=. ;;
     esac
   fi
@@ -2869,6 +4082,18 @@ func_emit_wrapper_part2 ()
 
   if test -f \"\$progdir/\$program\"; then"
 
+       # fixup the dll searchpath if we need to.
+       #
+       # Fix the DLL searchpath if we need to.  Do this before prepending
+       # to shlibpath, because on Windows, both are PATH and uninstalled
+       # libraries must come first.
+       if test -n "$dllsearchpath"; then
+         $ECHO "\
+    # Add the dll search path components to the executable PATH
+    PATH=$dllsearchpath:\$PATH
+"
+       fi
+
        # Export our shlibpath_var if we have one.
        if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
          $ECHO "\
@@ -2877,253 +4102,28 @@ func_emit_wrapper_part2 ()
 
     # Some systems cannot cope with colon-terminated $shlibpath_var
     # The second colon is a workaround for a bug in BeOS R4 sed
-    $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
+    $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
 
     export $shlibpath_var
 "
        fi
 
-       # fixup the dll searchpath if we need to.
-       if test -n "$dllsearchpath"; then
-         $ECHO "\
-    # Add the dll search path components to the executable PATH
-    PATH=$dllsearchpath:\$PATH
-"
-       fi
-
        $ECHO "\
     if test \"\$libtool_execute_magic\" != \"$magic\"; then
       # Run the actual program with our arguments.
-"
-       case $host in
-       # Backslashes separate directories on plain windows
-       *-*-mingw | *-*-os2* | *-cegcc*)
-         $ECHO "\
-      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
-"
-         ;;
-
-       *)
-         $ECHO "\
-      exec \"\$progdir/\$program\" \${1+\"\$@\"}
-"
-         ;;
-       esac
-       $ECHO "\
-      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
-      exit 1
+      func_exec_program \${1+\"\$@\"}
     fi
   else
     # The program doesn't exist.
     \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
     \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
-    $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
+    \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
     exit 1
   fi
 fi\
 "
 }
-# end: func_emit_wrapper_part2
-
-
-# func_emit_wrapper [arg=no]
-#
-# Emit a libtool wrapper script on stdout.
-# Don't directly open a file because we may want to
-# incorporate the script contents within a cygwin/mingw
-# wrapper executable.  Must ONLY be called from within
-# func_mode_link because it depends on a number of variables
-# set therein.
-#
-# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
-# variable will take.  If 'yes', then the emitted script
-# will assume that the directory in which it is stored is
-# the $objdir directory.  This is a cygwin/mingw-specific
-# behavior.
-func_emit_wrapper ()
-{
-       func_emit_wrapper_arg1=no
-       if test -n "$1" ; then
-         func_emit_wrapper_arg1=$1
-       fi
-
-       # split this up so that func_emit_cwrapperexe_src
-       # can call each part independently.
-       func_emit_wrapper_part1 "${func_emit_wrapper_arg1}"
-       func_emit_wrapper_part2 "${func_emit_wrapper_arg1}"
-}
-
-
-# func_to_host_path arg
-#
-# Convert paths to host format when used with build tools.
-# Intended for use with "native" mingw (where libtool itself
-# is running under the msys shell), or in the following cross-
-# build environments:
-#    $build          $host
-#    mingw (msys)    mingw  [e.g. native]
-#    cygwin          mingw
-#    *nix + wine     mingw
-# where wine is equipped with the `winepath' executable.
-# In the native mingw case, the (msys) shell automatically
-# converts paths for any non-msys applications it launches,
-# but that facility isn't available from inside the cwrapper.
-# Similar accommodations are necessary for $host mingw and
-# $build cygwin.  Calling this function does no harm for other
-# $host/$build combinations not listed above.
-#
-# ARG is the path (on $build) that should be converted to
-# the proper representation for $host. The result is stored
-# in $func_to_host_path_result.
-func_to_host_path ()
-{
-  func_to_host_path_result="$1"
-  if test -n "$1" ; then
-    case $host in
-      *mingw* )
-        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-        case $build in
-          *mingw* ) # actually, msys
-            # awkward: cmd appends spaces to result
-            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
-            func_to_host_path_tmp1=`( cmd //c echo "$1" |\
-              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
-            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
-              $SED -e "$lt_sed_naive_backslashify"`
-            ;;
-          *cygwin* )
-            func_to_host_path_tmp1=`cygpath -w "$1"`
-            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
-              $SED -e "$lt_sed_naive_backslashify"`
-            ;;
-          * )
-            # Unfortunately, winepath does not exit with a non-zero
-            # error code, so we are forced to check the contents of
-            # stdout. On the other hand, if the command is not
-            # found, the shell will set an exit code of 127 and print
-            # *an error message* to stdout. So we must check for both
-            # error code of zero AND non-empty stdout, which explains
-            # the odd construction:
-            func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
-            if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
-              func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
-                $SED -e "$lt_sed_naive_backslashify"`
-            else
-              # Allow warning below.
-              func_to_host_path_result=""
-            fi
-            ;;
-        esac
-        if test -z "$func_to_host_path_result" ; then
-          func_error "Could not determine host path corresponding to"
-          func_error "  '$1'"
-          func_error "Continuing, but uninstalled executables may not work."
-          # Fallback:
-          func_to_host_path_result="$1"
-        fi
-        ;;
-    esac
-  fi
-}
-# end: func_to_host_path
 
-# func_to_host_pathlist arg
-#
-# Convert pathlists to host format when used with build tools.
-# See func_to_host_path(), above. This function supports the
-# following $build/$host combinations (but does no harm for
-# combinations not listed here):
-#    $build          $host
-#    mingw (msys)    mingw  [e.g. native]
-#    cygwin          mingw
-#    *nix + wine     mingw
-#
-# Path separators are also converted from $build format to
-# $host format. If ARG begins or ends with a path separator
-# character, it is preserved (but converted to $host format)
-# on output.
-#
-# ARG is a pathlist (on $build) that should be converted to
-# the proper representation on $host. The result is stored
-# in $func_to_host_pathlist_result.
-func_to_host_pathlist ()
-{
-  func_to_host_pathlist_result="$1"
-  if test -n "$1" ; then
-    case $host in
-      *mingw* )
-        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-        # Remove leading and trailing path separator characters from
-        # ARG. msys behavior is inconsistent here, cygpath turns them
-        # into '.;' and ';.', and winepath ignores them completely.
-        func_to_host_pathlist_tmp2="$1"
-        # Once set for this call, this variable should not be
-        # reassigned. It is used in tha fallback case.
-        func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\
-          $SED -e 's|^:*||' -e 's|:*$||'`
-        case $build in
-          *mingw* ) # Actually, msys.
-            # Awkward: cmd appends spaces to result.
-            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
-            func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\
-              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
-            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
-              $SED -e "$lt_sed_naive_backslashify"`
-            ;;
-          *cygwin* )
-            func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
-            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
-              $SED -e "$lt_sed_naive_backslashify"`
-            ;;
-          * )
-            # unfortunately, winepath doesn't convert pathlists
-            func_to_host_pathlist_result=""
-            func_to_host_pathlist_oldIFS=$IFS
-            IFS=:
-            for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
-              IFS=$func_to_host_pathlist_oldIFS
-              if test -n "$func_to_host_pathlist_f" ; then
-                func_to_host_path "$func_to_host_pathlist_f"
-                if test -n "$func_to_host_path_result" ; then
-                  if test -z "$func_to_host_pathlist_result" ; then
-                    func_to_host_pathlist_result="$func_to_host_path_result"
-                  else
-                    func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result"
-                  fi
-                fi
-              fi
-              IFS=:
-            done
-            IFS=$func_to_host_pathlist_oldIFS
-            ;;
-        esac
-        if test -z "$func_to_host_pathlist_result" ; then
-          func_error "Could not determine the host path(s) corresponding to"
-          func_error "  '$1'"
-          func_error "Continuing, but uninstalled executables may not work."
-          # Fallback. This may break if $1 contains DOS-style drive
-          # specifications. The fix is not to complicate the expression
-          # below, but for the user to provide a working wine installation
-          # with winepath so that path translation in the cross-to-mingw
-          # case works properly.
-          lt_replace_pathsep_nix_to_dos="s|:|;|g"
-          func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\
-            $SED -e "$lt_replace_pathsep_nix_to_dos"`
-        fi
-        # Now, add the leading and trailing path separators back
-        case "$1" in
-          :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"
-            ;;
-        esac
-        case "$1" in
-          *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;"
-            ;;
-        esac
-        ;;
-    esac
-  fi
-}
-# end: func_to_host_pathlist
 
 # func_emit_cwrapperexe_src
 # emit the source code for a wrapper executable on stdout
@@ -3141,31 +4141,23 @@ func_emit_cwrapperexe_src ()
 
    This wrapper executable should never be moved out of the build directory.
    If it is, it will not operate correctly.
-
-   Currently, it simply execs the wrapper *script* "$SHELL $output",
-   but could eventually absorb all of the scripts functionality and
-   exec $objdir/$outputname directly.
 */
 EOF
            cat <<"EOF"
+#ifdef _MSC_VER
+# define _CRT_SECURE_NO_DEPRECATE 1
+#endif
 #include <stdio.h>
 #include <stdlib.h>
 #ifdef _MSC_VER
 # include <direct.h>
 # include <process.h>
 # include <io.h>
-# define setmode _setmode
 #else
 # include <unistd.h>
 # include <stdint.h>
 # ifdef __CYGWIN__
 #  include <io.h>
-#  define HAVE_SETENV
-#  ifdef __STRICT_ANSI__
-char *realpath (const char *, char *);
-int putenv (char *);
-int setenv (const char *, const char *, int);
-#  endif
 # endif
 #endif
 #include <malloc.h>
@@ -3177,6 +4169,44 @@ int setenv (const char *, const char *, int);
 #include <fcntl.h>
 #include <sys/stat.h>
 
+/* declarations of non-ANSI functions */
+#if defined(__MINGW32__)
+# ifdef __STRICT_ANSI__
+int _putenv (const char *);
+# endif
+#elif defined(__CYGWIN__)
+# ifdef __STRICT_ANSI__
+char *realpath (const char *, char *);
+int putenv (char *);
+int setenv (const char *, const char *, int);
+# endif
+/* #elif defined (other platforms) ... */
+#endif
+
+/* portability defines, excluding path handling macros */
+#if defined(_MSC_VER)
+# define setmode _setmode
+# define stat    _stat
+# define chmod   _chmod
+# define getcwd  _getcwd
+# define putenv  _putenv
+# define S_IXUSR _S_IEXEC
+# ifndef _INTPTR_T_DEFINED
+#  define _INTPTR_T_DEFINED
+#  define intptr_t int
+# endif
+#elif defined(__MINGW32__)
+# define setmode _setmode
+# define stat    _stat
+# define chmod   _chmod
+# define getcwd  _getcwd
+# define putenv  _putenv
+#elif defined(__CYGWIN__)
+# define HAVE_SETENV
+# define FOPEN_WB "wb"
+/* #elif defined (other platforms) ... */
+#endif
+
 #if defined(PATH_MAX)
 # define LT_PATHMAX PATH_MAX
 #elif defined(MAXPATHLEN)
@@ -3192,14 +4222,7 @@ int setenv (const char *, const char *, int);
 # define S_IXGRP 0
 #endif
 
-#ifdef _MSC_VER
-# define S_IXUSR _S_IEXEC
-# define stat _stat
-# ifndef _INTPTR_T_DEFINED
-#  define intptr_t int
-# endif
-#endif
-
+/* path handling portability macros */
 #ifndef DIR_SEPARATOR
 # define DIR_SEPARATOR '/'
 # define PATH_SEPARATOR ':'
@@ -3230,10 +4253,6 @@ int setenv (const char *, const char *, int);
 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
 #endif /* PATH_SEPARATOR_2 */
 
-#ifdef __CYGWIN__
-# define FOPEN_WB "wb"
-#endif
-
 #ifndef FOPEN_WB
 # define FOPEN_WB "w"
 #endif
@@ -3246,22 +4265,13 @@ int setenv (const char *, const char *, int);
   if (stale) { free ((void *) stale); stale = 0; } \
 } while (0)
 
-#undef LTWRAPPER_DEBUGPRINTF
-#if defined DEBUGWRAPPER
-# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
-static void
-ltwrapper_debugprintf (const char *fmt, ...)
-{
-    va_list args;
-    va_start (args, fmt);
-    (void) vfprintf (stderr, fmt, args);
-    va_end (args);
-}
+#if defined(LT_DEBUGWRAPPER)
+static int lt_debug = 1;
 #else
-# define LTWRAPPER_DEBUGPRINTF(args)
+static int lt_debug = 0;
 #endif
 
-const char *program_name = NULL;
+const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
 
 void *xmalloc (size_t num);
 char *xstrdup (const char *string);
@@ -3271,41 +4281,27 @@ char *chase_symlinks (const char *pathspec);
 int make_executable (const char *path);
 int check_executable (const char *path);
 char *strendzap (char *str, const char *pat);
-void lt_fatal (const char *message, ...);
+void lt_debugprintf (const char *file, int line, const char *fmt, ...);
+void lt_fatal (const char *file, int line, const char *message, ...);
+static const char *nonnull (const char *s);
+static const char *nonempty (const char *s);
 void lt_setenv (const char *name, const char *value);
 char *lt_extend_str (const char *orig_value, const char *add, int to_end);
-void lt_opt_process_env_set (const char *arg);
-void lt_opt_process_env_prepend (const char *arg);
-void lt_opt_process_env_append (const char *arg);
-int lt_split_name_value (const char *arg, char** name, char** value);
 void lt_update_exe_path (const char *name, const char *value);
 void lt_update_lib_path (const char *name, const char *value);
-
-static const char *script_text_part1 =
-EOF
-
-           func_emit_wrapper_part1 yes |
-               $SED -e 's/\([\\"]\)/\\\1/g' \
-                    -e 's/^/  "/' -e 's/$/\\n"/'
-           echo ";"
-           cat <<EOF
-
-static const char *script_text_part2 =
+char **prepare_spawn (char **argv);
+void lt_dump_script (FILE *f);
 EOF
-           func_emit_wrapper_part2 yes |
-               $SED -e 's/\([\\"]\)/\\\1/g' \
-                    -e 's/^/  "/' -e 's/$/\\n"/'
-           echo ";"
 
            cat <<EOF
-const char * MAGIC_EXE = "$magic_exe";
+volatile const char * MAGIC_EXE = "$magic_exe";
 const char * LIB_PATH_VARNAME = "$shlibpath_var";
 EOF
 
            if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-              func_to_host_pathlist "$temp_rpath"
+              func_to_host_path "$temp_rpath"
              cat <<EOF
-const char * LIB_PATH_VALUE   = "$func_to_host_pathlist_result";
+const char * LIB_PATH_VALUE   = "$func_to_host_path_result";
 EOF
            else
              cat <<"EOF"
@@ -3314,10 +4310,10 @@ EOF
            fi
 
            if test -n "$dllsearchpath"; then
-              func_to_host_pathlist "$dllsearchpath:"
+              func_to_host_path "$dllsearchpath:"
              cat <<EOF
 const char * EXE_PATH_VARNAME = "PATH";
-const char * EXE_PATH_VALUE   = "$func_to_host_pathlist_result";
+const char * EXE_PATH_VALUE   = "$func_to_host_path_result";
 EOF
            else
              cat <<"EOF"
@@ -3340,24 +4336,10 @@ EOF
            cat <<"EOF"
 
 #define LTWRAPPER_OPTION_PREFIX         "--lt-"
-#define LTWRAPPER_OPTION_PREFIX_LENGTH  5
 
-static const size_t opt_prefix_len         = LTWRAPPER_OPTION_PREFIX_LENGTH;
 static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
-
 static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
-
-static const size_t env_set_opt_len     = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;
-static const char *env_set_opt          = LTWRAPPER_OPTION_PREFIX "env-set";
-  /* argument is putenv-style "foo=bar", value of foo is set to bar */
-
-static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;
-static const char *env_prepend_opt      = LTWRAPPER_OPTION_PREFIX "env-prepend";
-  /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */
-
-static const size_t env_append_opt_len  = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;
-static const char *env_append_opt       = LTWRAPPER_OPTION_PREFIX "env-append";
-  /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */
+static const char *debug_opt            = LTWRAPPER_OPTION_PREFIX "debug";
 
 int
 main (int argc, char *argv[])
@@ -3374,10 +4356,13 @@ main (int argc, char *argv[])
   int i;
 
   program_name = (char *) xstrdup (base_name (argv[0]));
-  LTWRAPPER_DEBUGPRINTF (("(main) argv[0]      : %s\n", argv[0]));
-  LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
+  newargz = XMALLOC (char *, argc + 1);
 
-  /* very simple arg parsing; don't want to rely on getopt */
+  /* very simple arg parsing; don't want to rely on getopt
+   * also, copy all non cwrapper options to newargz, except
+   * argz[0], which is handled differently
+   */
+  newargc=0;
   for (i = 1; i < argc; i++)
     {
       if (strcmp (argv[i], dumpscript_opt) == 0)
@@ -3391,25 +4376,57 @@ EOF
              esac
 
            cat <<"EOF"
-         printf ("%s", script_text_part1);
-         printf ("%s", script_text_part2);
+         lt_dump_script (stdout);
          return 0;
        }
+      if (strcmp (argv[i], debug_opt) == 0)
+       {
+          lt_debug = 1;
+          continue;
+       }
+      if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
+        {
+          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
+             namespace, but it is not one of the ones we know about and
+             have already dealt with, above (inluding dump-script), then
+             report an error. Otherwise, targets might begin to believe
+             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
+             namespace. The first time any user complains about this, we'll
+             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
+             or a configure.ac-settable value.
+           */
+          lt_fatal (__FILE__, __LINE__,
+                   "unrecognized %s option: '%s'",
+                    ltwrapper_option_prefix, argv[i]);
+        }
+      /* otherwise ... */
+      newargz[++newargc] = xstrdup (argv[i]);
     }
+  newargz[++newargc] = NULL;
+
+EOF
+           cat <<EOF
+  /* The GNU banner must be the first non-error debug message */
+  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
+EOF
+           cat <<"EOF"
+  lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
+  lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
 
-  newargz = XMALLOC (char *, argc + 1);
   tmp_pathspec = find_executable (argv[0]);
   if (tmp_pathspec == NULL)
-    lt_fatal ("Couldn't find %s", argv[0]);
-  LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
-                         tmp_pathspec));
+    lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
+  lt_debugprintf (__FILE__, __LINE__,
+                  "(main) found exe (before symlink chase) at: %s\n",
+                 tmp_pathspec);
 
   actual_cwrapper_path = chase_symlinks (tmp_pathspec);
-  LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
-                         actual_cwrapper_path));
+  lt_debugprintf (__FILE__, __LINE__,
+                  "(main) found exe (after symlink chase) at: %s\n",
+                 actual_cwrapper_path);
   XFREE (tmp_pathspec);
 
-  actual_cwrapper_name = xstrdupbase_name (actual_cwrapper_path));
+  actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
   strendzap (actual_cwrapper_path, actual_cwrapper_name);
 
   /* wrapper name transforms */
@@ -3427,8 +4444,9 @@ EOF
   target_name = tmp_pathspec;
   tmp_pathspec = 0;
 
-  LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
-                         target_name));
+  lt_debugprintf (__FILE__, __LINE__,
+                 "(main) libtool target name: %s\n",
+                 target_name);
 EOF
 
            cat <<EOF
@@ -3478,80 +4496,19 @@ EOF
 
   lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
   lt_setenv ("DUALCASE", "1");  /* for MSK sh */
-  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
+  /* Update the DLL searchpath.  EXE_PATH_VALUE ($dllsearchpath) must
+     be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
+     because on Windows, both *_VARNAMEs are PATH but uninstalled
+     libraries must come first. */
   lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
+  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
 
-  newargc=0;
-  for (i = 1; i < argc; i++)
-    {
-      if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0)
-        {
-          if (argv[i][env_set_opt_len] == '=')
-            {
-              const char *p = argv[i] + env_set_opt_len + 1;
-              lt_opt_process_env_set (p);
-            }
-          else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc)
-            {
-              lt_opt_process_env_set (argv[++i]); /* don't copy */
-            }
-          else
-            lt_fatal ("%s missing required argument", env_set_opt);
-          continue;
-        }
-      if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0)
-        {
-          if (argv[i][env_prepend_opt_len] == '=')
-            {
-              const char *p = argv[i] + env_prepend_opt_len + 1;
-              lt_opt_process_env_prepend (p);
-            }
-          else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc)
-            {
-              lt_opt_process_env_prepend (argv[++i]); /* don't copy */
-            }
-          else
-            lt_fatal ("%s missing required argument", env_prepend_opt);
-          continue;
-        }
-      if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0)
-        {
-          if (argv[i][env_append_opt_len] == '=')
-            {
-              const char *p = argv[i] + env_append_opt_len + 1;
-              lt_opt_process_env_append (p);
-            }
-          else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc)
-            {
-              lt_opt_process_env_append (argv[++i]); /* don't copy */
-            }
-          else
-            lt_fatal ("%s missing required argument", env_append_opt);
-          continue;
-        }
-      if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
-        {
-          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
-             namespace, but it is not one of the ones we know about and
-             have already dealt with, above (inluding dump-script), then
-             report an error. Otherwise, targets might begin to believe
-             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
-             namespace. The first time any user complains about this, we'll
-             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
-             or a configure.ac-settable value.
-           */
-          lt_fatal ("Unrecognized option in %s namespace: '%s'",
-                    ltwrapper_option_prefix, argv[i]);
-        }
-      /* otherwise ... */
-      newargz[++newargc] = xstrdup (argv[i]);
-    }
-  newargz[++newargc] = NULL;
-
-  LTWRAPPER_DEBUGPRINTF     (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));
+  lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
+                 nonnull (lt_argv_zero));
   for (i = 0; i < newargc; i++)
     {
-      LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d]   : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));
+      lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
+                     i, nonnull (newargz[i]));
     }
 
 EOF
@@ -3560,11 +4517,14 @@ EOF
              mingw*)
                cat <<"EOF"
   /* execv doesn't actually work on mingw as expected on unix */
+  newargz = prepare_spawn (newargz);
   rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
   if (rval == -1)
     {
       /* failed to start process */
-      LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));
+      lt_debugprintf (__FILE__, __LINE__,
+                     "(main) failed to launch target \"%s\": %s\n",
+                     lt_argv_zero, nonnull (strerror (errno)));
       return 127;
     }
   return rval;
@@ -3586,7 +4546,7 @@ xmalloc (size_t num)
 {
   void *p = (void *) malloc (num);
   if (!p)
-    lt_fatal ("Memory exhausted");
+    lt_fatal (__FILE__, __LINE__, "memory exhausted");
 
   return p;
 }
@@ -3620,8 +4580,8 @@ check_executable (const char *path)
 {
   struct stat st;
 
-  LTWRAPPER_DEBUGPRINTF (("(check_executable)  : %s\n",
-                         path ? (*path ? path : "EMPTY!") : "NULL!"));
+  lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
+                  nonempty (path));
   if ((!path) || (!*path))
     return 0;
 
@@ -3638,8 +4598,8 @@ make_executable (const char *path)
   int rval = 0;
   struct stat st;
 
-  LTWRAPPER_DEBUGPRINTF (("(make_executable)   : %s\n",
-                         path ? (*path ? path : "EMPTY!") : "NULL!"));
+  lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
+                  nonempty (path));
   if ((!path) || (!*path))
     return 0;
 
@@ -3665,8 +4625,8 @@ find_executable (const char *wrapper)
   int tmp_len;
   char *concat_name;
 
-  LTWRAPPER_DEBUGPRINTF (("(find_executable)   : %s\n",
-                         wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));
+  lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
+                  nonempty (wrapper));
 
   if ((wrapper == NULL) || (*wrapper == '\0'))
     return NULL;
@@ -3719,7 +4679,8 @@ find_executable (const char *wrapper)
                {
                  /* empty path: current directory */
                  if (getcwd (tmp, LT_PATHMAX) == NULL)
-                   lt_fatal ("getcwd failed");
+                   lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+                              nonnull (strerror (errno)));
                  tmp_len = strlen (tmp);
                  concat_name =
                    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
@@ -3744,7 +4705,8 @@ find_executable (const char *wrapper)
     }
   /* Relative path | not found in path: prepend cwd */
   if (getcwd (tmp, LT_PATHMAX) == NULL)
-    lt_fatal ("getcwd failed");
+    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+              nonnull (strerror (errno)));
   tmp_len = strlen (tmp);
   concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
   memcpy (concat_name, tmp, tmp_len);
@@ -3770,8 +4732,9 @@ chase_symlinks (const char *pathspec)
   int has_symlinks = 0;
   while (strlen (tmp_pathspec) && !has_symlinks)
     {
-      LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",
-                             tmp_pathspec));
+      lt_debugprintf (__FILE__, __LINE__,
+                     "checking path component for symlinks: %s\n",
+                     tmp_pathspec);
       if (lstat (tmp_pathspec, &s) == 0)
        {
          if (S_ISLNK (s.st_mode) != 0)
@@ -3793,8 +4756,9 @@ chase_symlinks (const char *pathspec)
        }
       else
        {
-         char *errstr = strerror (errno);
-         lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);
+         lt_fatal (__FILE__, __LINE__,
+                   "error accessing file \"%s\": %s",
+                   tmp_pathspec, nonnull (strerror (errno)));
        }
     }
   XFREE (tmp_pathspec);
@@ -3807,7 +4771,8 @@ chase_symlinks (const char *pathspec)
   tmp_pathspec = realpath (pathspec, buf);
   if (tmp_pathspec == 0)
     {
-      lt_fatal ("Could not follow symlinks for %s", pathspec);
+      lt_fatal (__FILE__, __LINE__,
+               "could not follow symlinks for %s", pathspec);
     }
   return xstrdup (tmp_pathspec);
 #endif
@@ -3833,11 +4798,25 @@ strendzap (char *str, const char *pat)
   return str;
 }
 
+void
+lt_debugprintf (const char *file, int line, const char *fmt, ...)
+{
+  va_list args;
+  if (lt_debug)
+    {
+      (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
+      va_start (args, fmt);
+      (void) vfprintf (stderr, fmt, args);
+      va_end (args);
+    }
+}
+
 static void
-lt_error_core (int exit_status, const char *mode,
+lt_error_core (int exit_status, const char *file,
+              int line, const char *mode,
               const char *message, va_list ap)
 {
-  fprintf (stderr, "%s: %s: ", program_name, mode);
+  fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
   vfprintf (stderr, message, ap);
   fprintf (stderr, ".\n");
 
@@ -3846,20 +4825,32 @@ lt_error_core (int exit_status, const char *mode,
 }
 
 void
-lt_fatal (const char *message, ...)
+lt_fatal (const char *file, int line, const char *message, ...)
 {
   va_list ap;
   va_start (ap, message);
-  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
+  lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
   va_end (ap);
 }
 
+static const char *
+nonnull (const char *s)
+{
+  return s ? s : "(null)";
+}
+
+static const char *
+nonempty (const char *s)
+{
+  return (s && !*s) ? "(empty)" : nonnull (s);
+}
+
 void
 lt_setenv (const char *name, const char *value)
 {
-  LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",
-                          (name ? name : "<NULL>"),
-                          (value ? value : "<NULL>")));
+  lt_debugprintf (__FILE__, __LINE__,
+                 "(lt_setenv) setting '%s' to '%s'\n",
+                  nonnull (name), nonnull (value));
   {
 #ifdef HAVE_SETENV
     /* always make a copy, for consistency with !HAVE_SETENV */
@@ -3904,95 +4895,12 @@ lt_extend_str (const char *orig_value, const char *add, int to_end)
   return new_value;
 }
 
-int
-lt_split_name_value (const char *arg, char** name, char** value)
-{
-  const char *p;
-  int len;
-  if (!arg || !*arg)
-    return 1;
-
-  p = strchr (arg, (int)'=');
-
-  if (!p)
-    return 1;
-
-  *value = xstrdup (++p);
-
-  len = strlen (arg) - strlen (*value);
-  *name = XMALLOC (char, len);
-  strncpy (*name, arg, len-1);
-  (*name)[len - 1] = '\0';
-
-  return 0;
-}
-
-void
-lt_opt_process_env_set (const char *arg)
-{
-  char *name = NULL;
-  char *value = NULL;
-
-  if (lt_split_name_value (arg, &name, &value) != 0)
-    {
-      XFREE (name);
-      XFREE (value);
-      lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg);
-    }
-
-  lt_setenv (name, value);
-  XFREE (name);
-  XFREE (value);
-}
-
-void
-lt_opt_process_env_prepend (const char *arg)
-{
-  char *name = NULL;
-  char *value = NULL;
-  char *new_value = NULL;
-
-  if (lt_split_name_value (arg, &name, &value) != 0)
-    {
-      XFREE (name);
-      XFREE (value);
-      lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg);
-    }
-
-  new_value = lt_extend_str (getenv (name), value, 0);
-  lt_setenv (name, new_value);
-  XFREE (new_value);
-  XFREE (name);
-  XFREE (value);
-}
-
-void
-lt_opt_process_env_append (const char *arg)
-{
-  char *name = NULL;
-  char *value = NULL;
-  char *new_value = NULL;
-
-  if (lt_split_name_value (arg, &name, &value) != 0)
-    {
-      XFREE (name);
-      XFREE (value);
-      lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg);
-    }
-
-  new_value = lt_extend_str (getenv (name), value, 1);
-  lt_setenv (name, new_value);
-  XFREE (new_value);
-  XFREE (name);
-  XFREE (value);
-}
-
 void
 lt_update_exe_path (const char *name, const char *value)
 {
-  LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
-                          (name ? name : "<NULL>"),
-                          (value ? value : "<NULL>")));
+  lt_debugprintf (__FILE__, __LINE__,
+                 "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
+                  nonnull (name), nonnull (value));
 
   if (name && *name && value && *value)
     {
@@ -4011,9 +4919,9 @@ lt_update_exe_path (const char *name, const char *value)
 void
 lt_update_lib_path (const char *name, const char *value)
 {
-  LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
-                          (name ? name : "<NULL>"),
-                          (value ? value : "<NULL>")));
+  lt_debugprintf (__FILE__, __LINE__,
+                 "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
+                  nonnull (name), nonnull (value));
 
   if (name && *name && value && *value)
     {
@@ -4023,11 +4931,152 @@ lt_update_lib_path (const char *name, const char *value)
     }
 }
 
+EOF
+           case $host_os in
+             mingw*)
+               cat <<"EOF"
+
+/* Prepares an argument vector before calling spawn().
+   Note that spawn() does not by itself call the command interpreter
+     (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
+      ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+         GetVersionEx(&v);
+         v.dwPlatformId == VER_PLATFORM_WIN32_NT;
+      }) ? "cmd.exe" : "command.com").
+   Instead it simply concatenates the arguments, separated by ' ', and calls
+   CreateProcess().  We must quote the arguments since Win32 CreateProcess()
+   interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
+   special way:
+   - Space and tab are interpreted as delimiters. They are not treated as
+     delimiters if they are surrounded by double quotes: "...".
+   - Unescaped double quotes are removed from the input. Their only effect is
+     that within double quotes, space and tab are treated like normal
+     characters.
+   - Backslashes not followed by double quotes are not special.
+   - But 2*n+1 backslashes followed by a double quote become
+     n backslashes followed by a double quote (n >= 0):
+       \" -> "
+       \\\" -> \"
+       \\\\\" -> \\"
+ */
+#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
+#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
+char **
+prepare_spawn (char **argv)
+{
+  size_t argc;
+  char **new_argv;
+  size_t i;
+
+  /* Count number of arguments.  */
+  for (argc = 0; argv[argc] != NULL; argc++)
+    ;
+
+  /* Allocate new argument vector.  */
+  new_argv = XMALLOC (char *, argc + 1);
+
+  /* Put quoted arguments into the new argument vector.  */
+  for (i = 0; i < argc; i++)
+    {
+      const char *string = argv[i];
+
+      if (string[0] == '\0')
+       new_argv[i] = xstrdup ("\"\"");
+      else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
+       {
+         int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
+         size_t length;
+         unsigned int backslashes;
+         const char *s;
+         char *quoted_string;
+         char *p;
+
+         length = 0;
+         backslashes = 0;
+         if (quote_around)
+           length++;
+         for (s = string; *s != '\0'; s++)
+           {
+             char c = *s;
+             if (c == '"')
+               length += backslashes + 1;
+             length++;
+             if (c == '\\')
+               backslashes++;
+             else
+               backslashes = 0;
+           }
+         if (quote_around)
+           length += backslashes + 1;
+
+         quoted_string = XMALLOC (char, length + 1);
+
+         p = quoted_string;
+         backslashes = 0;
+         if (quote_around)
+           *p++ = '"';
+         for (s = string; *s != '\0'; s++)
+           {
+             char c = *s;
+             if (c == '"')
+               {
+                 unsigned int j;
+                 for (j = backslashes + 1; j > 0; j--)
+                   *p++ = '\\';
+               }
+             *p++ = c;
+             if (c == '\\')
+               backslashes++;
+             else
+               backslashes = 0;
+           }
+         if (quote_around)
+           {
+             unsigned int j;
+             for (j = backslashes; j > 0; j--)
+               *p++ = '\\';
+             *p++ = '"';
+           }
+         *p = '\0';
+
+         new_argv[i] = quoted_string;
+       }
+      else
+       new_argv[i] = (char *) string;
+    }
+  new_argv[argc] = NULL;
+
+  return new_argv;
+}
+EOF
+               ;;
+           esac
+
+            cat <<"EOF"
+void lt_dump_script (FILE* f)
+{
+EOF
+           func_emit_wrapper yes |
+              $SED -e 's/\([\\"]\)/\\\1/g' \
+                  -e 's/^/  fputs ("/' -e 's/$/\\n", f);/'
 
+            cat <<"EOF"
+}
 EOF
 }
 # end: func_emit_cwrapperexe_src
 
+# func_win32_import_lib_p ARG
+# True if ARG is an import lib, as indicated by $file_magic_cmd
+func_win32_import_lib_p ()
+{
+    $opt_debug
+    case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
+    *import*) : ;;
+    *) false ;;
+    esac
+}
+
 # func_mode_link arg...
 func_mode_link ()
 {
@@ -4072,6 +5121,7 @@ func_mode_link ()
     new_inherited_linker_flags=
 
     avoid_version=no
+    bindir=
     dlfiles=
     dlprefiles=
     dlself=no
@@ -4164,6 +5214,11 @@ func_mode_link ()
        esac
 
        case $prev in
+       bindir)
+         bindir="$arg"
+         prev=
+         continue
+         ;;
        dlfiles|dlprefiles)
          if test "$preload" = no; then
            # Add the symbol object into the linking commands.
@@ -4195,9 +5250,9 @@ func_mode_link ()
            ;;
          *)
            if test "$prev" = dlfiles; then
-             dlfiles="$dlfiles $arg"
+             func_append dlfiles " $arg"
            else
-             dlprefiles="$dlprefiles $arg"
+             func_append dlprefiles " $arg"
            fi
            prev=
            continue
@@ -4221,7 +5276,7 @@ func_mode_link ()
            *-*-darwin*)
              case "$deplibs " in
                *" $qarg.ltframework "*) ;;
-               *) deplibs="$deplibs $qarg.ltframework" # this is fixed later
+               *) func_append deplibs " $qarg.ltframework" # this is fixed later
                   ;;
              esac
              ;;
@@ -4240,7 +5295,7 @@ func_mode_link ()
            moreargs=
            for fil in `cat "$save_arg"`
            do
-#            moreargs="$moreargs $fil"
+#            func_append moreargs " $fil"
              arg=$fil
              # A libtool-controlled object.
 
@@ -4269,7 +5324,7 @@ func_mode_link ()
 
                  if test "$prev" = dlfiles; then
                    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-                     dlfiles="$dlfiles $pic_object"
+                     func_append dlfiles " $pic_object"
                      prev=
                      continue
                    else
@@ -4281,7 +5336,7 @@ func_mode_link ()
                  # CHECK ME:  I think I busted this.  -Ossama
                  if test "$prev" = dlprefiles; then
                    # Preload the old-style object.
-                   dlprefiles="$dlprefiles $pic_object"
+                   func_append dlprefiles " $pic_object"
                    prev=
                  fi
 
@@ -4351,12 +5406,12 @@ func_mode_link ()
          if test "$prev" = rpath; then
            case "$rpath " in
            *" $arg "*) ;;
-           *) rpath="$rpath $arg" ;;
+           *) func_append rpath " $arg" ;;
            esac
          else
            case "$xrpath " in
            *" $arg "*) ;;
-           *) xrpath="$xrpath $arg" ;;
+           *) func_append xrpath " $arg" ;;
            esac
          fi
          prev=
@@ -4368,28 +5423,28 @@ func_mode_link ()
          continue
          ;;
        weak)
-         weak_libs="$weak_libs $arg"
+         func_append weak_libs " $arg"
          prev=
          continue
          ;;
        xcclinker)
-         linker_flags="$linker_flags $qarg"
-         compiler_flags="$compiler_flags $qarg"
+         func_append linker_flags " $qarg"
+         func_append compiler_flags " $qarg"
          prev=
          func_append compile_command " $qarg"
          func_append finalize_command " $qarg"
          continue
          ;;
        xcompiler)
-         compiler_flags="$compiler_flags $qarg"
+         func_append compiler_flags " $qarg"
          prev=
          func_append compile_command " $qarg"
          func_append finalize_command " $qarg"
          continue
          ;;
        xlinker)
-         linker_flags="$linker_flags $qarg"
-         compiler_flags="$compiler_flags $wl$qarg"
+         func_append linker_flags " $qarg"
+         func_append compiler_flags " $wl$qarg"
          prev=
          func_append compile_command " $wl$qarg"
          func_append finalize_command " $wl$qarg"
@@ -4425,6 +5480,11 @@ func_mode_link ()
        continue
        ;;
 
+      -bindir)
+       prev=bindir
+       continue
+       ;;
+
       -dlopen)
        prev=dlfiles
        continue
@@ -4475,15 +5535,16 @@ func_mode_link ()
        ;;
 
       -L*)
-       func_stripname '-L' '' "$arg"
-       dir=$func_stripname_result
-       if test -z "$dir"; then
+       func_stripname "-L" '' "$arg"
+       if test -z "$func_stripname_result"; then
          if test "$#" -gt 0; then
            func_fatal_error "require no space between \`-L' and \`$1'"
          else
            func_fatal_error "need path for \`-L' option"
          fi
        fi
+       func_resolve_sysroot "$func_stripname_result"
+       dir=$func_resolve_sysroot_result
        # We need an absolute path.
        case $dir in
        [\\/]* | [A-Za-z]:[\\/]*) ;;
@@ -4495,24 +5556,30 @@ func_mode_link ()
          ;;
        esac
        case "$deplibs " in
-       *" -L$dir "*) ;;
+       *" -L$dir "* | *" $arg "*)
+         # Will only happen for absolute or sysroot arguments
+         ;;
        *)
-         deplibs="$deplibs -L$dir"
-         lib_search_path="$lib_search_path $dir"
+         # Preserve sysroot, but never include relative directories
+         case $dir in
+           [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
+           *) func_append deplibs " -L$dir" ;;
+         esac
+         func_append lib_search_path " $dir"
          ;;
        esac
        case $host in
        *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
-         testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
+         testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
          case :$dllsearchpath: in
          *":$dir:"*) ;;
          ::) dllsearchpath=$dir;;
-         *) dllsearchpath="$dllsearchpath:$dir";;
+         *) func_append dllsearchpath ":$dir";;
          esac
          case :$dllsearchpath: in
          *":$testbindir:"*) ;;
          ::) dllsearchpath=$testbindir;;
-         *) dllsearchpath="$dllsearchpath:$testbindir";;
+         *) func_append dllsearchpath ":$testbindir";;
          esac
          ;;
        esac
@@ -4522,7 +5589,7 @@ func_mode_link ()
       -l*)
        if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
          case $host in
-         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*)
+         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
            # These systems don't actually have a C or math library (as such)
            continue
            ;;
@@ -4536,7 +5603,7 @@ func_mode_link ()
            ;;
          *-*-rhapsody* | *-*-darwin1.[012])
            # Rhapsody C and math libraries are in the System framework
-           deplibs="$deplibs System.ltframework"
+           func_append deplibs " System.ltframework"
            continue
            ;;
          *-*-sco3.2v5* | *-*-sco5v6*)
@@ -4556,7 +5623,7 @@ func_mode_link ()
           ;;
         esac
        fi
-       deplibs="$deplibs $arg"
+       func_append deplibs " $arg"
        continue
        ;;
 
@@ -4568,8 +5635,8 @@ func_mode_link ()
       # Tru64 UNIX uses -model [arg] to determine the layout of C++
       # classes, name mangling, and exception handling.
       # Darwin uses the -arch flag to determine output architecture.
-      -model|-arch|-isysroot)
-       compiler_flags="$compiler_flags $arg"
+      -model|-arch|-isysroot|--sysroot)
+       func_append compiler_flags " $arg"
        func_append compile_command " $arg"
        func_append finalize_command " $arg"
        prev=xcompiler
@@ -4577,12 +5644,12 @@ func_mode_link ()
        ;;
 
       -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
-       compiler_flags="$compiler_flags $arg"
+       func_append compiler_flags " $arg"
        func_append compile_command " $arg"
        func_append finalize_command " $arg"
        case "$new_inherited_linker_flags " in
            *" $arg "*) ;;
-           * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
+           * ) func_append new_inherited_linker_flags " $arg" ;;
        esac
        continue
        ;;
@@ -4649,13 +5716,17 @@ func_mode_link ()
        # We need an absolute path.
        case $dir in
        [\\/]* | [A-Za-z]:[\\/]*) ;;
+       =*)
+         func_stripname '=' '' "$dir"
+         dir=$lt_sysroot$func_stripname_result
+         ;;
        *)
          func_fatal_error "only absolute run-paths are allowed"
          ;;
        esac
        case "$xrpath " in
        *" $dir "*) ;;
-       *) xrpath="$xrpath $dir" ;;
+       *) func_append xrpath " $dir" ;;
        esac
        continue
        ;;
@@ -4708,8 +5779,8 @@ func_mode_link ()
        for flag in $args; do
          IFS="$save_ifs"
           func_quote_for_eval "$flag"
-         arg="$arg $wl$func_quote_for_eval_result"
-         compiler_flags="$compiler_flags $func_quote_for_eval_result"
+         func_append arg " $func_quote_for_eval_result"
+         func_append compiler_flags " $func_quote_for_eval_result"
        done
        IFS="$save_ifs"
        func_stripname ' ' '' "$arg"
@@ -4724,9 +5795,9 @@ func_mode_link ()
        for flag in $args; do
          IFS="$save_ifs"
           func_quote_for_eval "$flag"
-         arg="$arg $wl$func_quote_for_eval_result"
-         compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
-         linker_flags="$linker_flags $func_quote_for_eval_result"
+         func_append arg " $wl$func_quote_for_eval_result"
+         func_append compiler_flags " $wl$func_quote_for_eval_result"
+         func_append linker_flags " $func_quote_for_eval_result"
        done
        IFS="$save_ifs"
        func_stripname ' ' '' "$arg"
@@ -4754,23 +5825,27 @@ func_mode_link ()
        arg="$func_quote_for_eval_result"
        ;;
 
-      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
-      # -r[0-9][0-9]* specifies the processor on the SGI compiler
-      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
-      # +DA*, +DD* enable 64-bit mode on the HP compiler
-      # -q* pass through compiler args for the IBM compiler
-      # -m*, -t[45]*, -txscale* pass through architecture-specific
-      # compiler args for GCC
-      # -F/path gives path to uninstalled frameworks, gcc on darwin
-      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
-      # @file GCC response files
+      # Flags to be passed through unchanged, with rationale:
+      # -64, -mips[0-9]      enable 64-bit mode for the SGI compiler
+      # -r[0-9][0-9]*        specify processor for the SGI compiler
+      # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
+      # +DA*, +DD*           enable 64-bit mode for the HP compiler
+      # -q*                  compiler args for the IBM compiler
+      # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
+      # -F/path              path to uninstalled frameworks, gcc on darwin
+      # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
+      # @file                GCC response files
+      # -tp=*                Portland pgcc target processor selection
+      # --sysroot=*          for sysroot support
+      # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
       -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
+      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
+      -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
         func_quote_for_eval "$arg"
        arg="$func_quote_for_eval_result"
         func_append compile_command " $arg"
         func_append finalize_command " $arg"
-        compiler_flags="$compiler_flags $arg"
+        func_append compiler_flags " $arg"
         continue
         ;;
 
@@ -4782,7 +5857,7 @@ func_mode_link ()
 
       *.$objext)
        # A standard object.
-       objs="$objs $arg"
+       func_append objs " $arg"
        ;;
 
       *.lo)
@@ -4813,7 +5888,7 @@ func_mode_link ()
 
            if test "$prev" = dlfiles; then
              if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-               dlfiles="$dlfiles $pic_object"
+               func_append dlfiles " $pic_object"
                prev=
                continue
              else
@@ -4825,7 +5900,7 @@ func_mode_link ()
            # CHECK ME:  I think I busted this.  -Ossama
            if test "$prev" = dlprefiles; then
              # Preload the old-style object.
-             dlprefiles="$dlprefiles $pic_object"
+             func_append dlprefiles " $pic_object"
              prev=
            fi
 
@@ -4870,24 +5945,25 @@ func_mode_link ()
 
       *.$libext)
        # An archive.
-       deplibs="$deplibs $arg"
-       old_deplibs="$old_deplibs $arg"
+       func_append deplibs " $arg"
+       func_append old_deplibs " $arg"
        continue
        ;;
 
       *.la)
        # A libtool-controlled library.
 
+       func_resolve_sysroot "$arg"
        if test "$prev" = dlfiles; then
          # This library was specified with -dlopen.
-         dlfiles="$dlfiles $arg"
+         func_append dlfiles " $func_resolve_sysroot_result"
          prev=
        elif test "$prev" = dlprefiles; then
          # The library was specified with -dlpreopen.
-         dlprefiles="$dlprefiles $arg"
+         func_append dlprefiles " $func_resolve_sysroot_result"
          prev=
        else
-         deplibs="$deplibs $arg"
+         func_append deplibs " $func_resolve_sysroot_result"
        fi
        continue
        ;;
@@ -4925,7 +6001,7 @@ func_mode_link ()
 
     if test -n "$shlibpath_var"; then
       # get the directories listed in $shlibpath_var
-      eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+      eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
     else
       shlib_search_path=
     fi
@@ -4934,6 +6010,8 @@ func_mode_link ()
 
     func_dirname "$output" "/" ""
     output_objdir="$func_dirname_result$objdir"
+    func_to_tool_file "$output_objdir/"
+    tool_output_objdir=$func_to_tool_file_result
     # Create the object directory.
     func_mkdir_p "$output_objdir"
 
@@ -4954,12 +6032,12 @@ func_mode_link ()
     # Find all interdependent deplibs by searching for libraries
     # that are linked more than once (e.g. -la -lb -la)
     for deplib in $deplibs; do
-      if $opt_duplicate_deps ; then
+      if $opt_preserve_dup_deps ; then
        case "$libs " in
-       *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+       *" $deplib "*) func_append specialdeplibs " $deplib" ;;
        esac
       fi
-      libs="$libs $deplib"
+      func_append libs " $deplib"
     done
 
     if test "$linkmode" = lib; then
@@ -4972,9 +6050,9 @@ func_mode_link ()
       if $opt_duplicate_compiler_generated_deps; then
        for pre_post_dep in $predeps $postdeps; do
          case "$pre_post_deps " in
-         *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
+         *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
          esac
-         pre_post_deps="$pre_post_deps $pre_post_dep"
+         func_append pre_post_deps " $pre_post_dep"
        done
       fi
       pre_post_deps=
@@ -5041,17 +6119,19 @@ func_mode_link ()
        for lib in $dlprefiles; do
          # Ignore non-libtool-libs
          dependency_libs=
+         func_resolve_sysroot "$lib"
          case $lib in
-         *.la) func_source "$lib" ;;
+         *.la) func_source "$func_resolve_sysroot_result" ;;
          esac
 
          # Collect preopened libtool deplibs, except any this library
          # has declared as weak libs
          for deplib in $dependency_libs; do
-            deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
+           func_basename "$deplib"
+            deplib_base=$func_basename_result
            case " $weak_libs " in
            *" $deplib_base "*) ;;
-           *) deplibs="$deplibs $deplib" ;;
+           *) func_append deplibs " $deplib" ;;
            esac
          done
        done
@@ -5072,11 +6152,11 @@ func_mode_link ()
            compile_deplibs="$deplib $compile_deplibs"
            finalize_deplibs="$deplib $finalize_deplibs"
          else
-           compiler_flags="$compiler_flags $deplib"
+           func_append compiler_flags " $deplib"
            if test "$linkmode" = lib ; then
                case "$new_inherited_linker_flags " in
                    *" $deplib "*) ;;
-                   * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
+                   * ) func_append new_inherited_linker_flags " $deplib" ;;
                esac
            fi
          fi
@@ -5161,7 +6241,7 @@ func_mode_link ()
            if test "$linkmode" = lib ; then
                case "$new_inherited_linker_flags " in
                    *" $deplib "*) ;;
-                   * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
+                   * ) func_append new_inherited_linker_flags " $deplib" ;;
                esac
            fi
          fi
@@ -5174,7 +6254,8 @@ func_mode_link ()
            test "$pass" = conv && continue
            newdependency_libs="$deplib $newdependency_libs"
            func_stripname '-L' '' "$deplib"
-           newlib_search_path="$newlib_search_path $func_stripname_result"
+           func_resolve_sysroot "$func_stripname_result"
+           func_append newlib_search_path " $func_resolve_sysroot_result"
            ;;
          prog)
            if test "$pass" = conv; then
@@ -5188,7 +6269,8 @@ func_mode_link ()
              finalize_deplibs="$deplib $finalize_deplibs"
            fi
            func_stripname '-L' '' "$deplib"
-           newlib_search_path="$newlib_search_path $func_stripname_result"
+           func_resolve_sysroot "$func_stripname_result"
+           func_append newlib_search_path " $func_resolve_sysroot_result"
            ;;
          *)
            func_warning "\`-L' is ignored for archives/objects"
@@ -5199,17 +6281,21 @@ func_mode_link ()
        -R*)
          if test "$pass" = link; then
            func_stripname '-R' '' "$deplib"
-           dir=$func_stripname_result
+           func_resolve_sysroot "$func_stripname_result"
+           dir=$func_resolve_sysroot_result
            # Make sure the xrpath contains only unique directories.
            case "$xrpath " in
            *" $dir "*) ;;
-           *) xrpath="$xrpath $dir" ;;
+           *) func_append xrpath " $dir" ;;
            esac
          fi
          deplibs="$deplib $deplibs"
          continue
          ;;
-       *.la) lib="$deplib" ;;
+       *.la)
+         func_resolve_sysroot "$deplib"
+         lib=$func_resolve_sysroot_result
+         ;;
        *.$libext)
          if test "$pass" = conv; then
            deplibs="$deplib $deplibs"
@@ -5227,7 +6313,7 @@ func_mode_link ()
                match_pattern*)
                  set dummy $deplibs_check_method; shift
                  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
-                 if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
+                 if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
                    | $EGREP "$match_pattern_regex" > /dev/null; then
                    valid_a_lib=yes
                  fi
@@ -5237,15 +6323,15 @@ func_mode_link ()
                ;;
              esac
              if test "$valid_a_lib" != yes; then
-               $ECHO
+               echo
                $ECHO "*** Warning: Trying to link with static lib archive $deplib."
-               $ECHO "*** I have the capability to make that library automatically link in when"
-               $ECHO "*** you link to this library.  But I can only do this if you have a"
-               $ECHO "*** shared version of the library, which you do not appear to have"
-               $ECHO "*** because the file extensions .$libext of this argument makes me believe"
-               $ECHO "*** that it is just a static archive that I should not use here."
+               echo "*** I have the capability to make that library automatically link in when"
+               echo "*** you link to this library.  But I can only do this if you have a"
+               echo "*** shared version of the library, which you do not appear to have"
+               echo "*** because the file extensions .$libext of this argument makes me believe"
+               echo "*** that it is just a static archive that I should not use here."
              else
-               $ECHO
+               echo
                $ECHO "*** Warning: Linking the shared library $output against the"
                $ECHO "*** static library $deplib is not portable!"
                deplibs="$deplib $deplibs"
@@ -5272,11 +6358,11 @@ func_mode_link ()
            if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
              # If there is no dlopen support or we're linking statically,
              # we need to preload.
-             newdlprefiles="$newdlprefiles $deplib"
+             func_append newdlprefiles " $deplib"
              compile_deplibs="$deplib $compile_deplibs"
              finalize_deplibs="$deplib $finalize_deplibs"
            else
-             newdlfiles="$newdlfiles $deplib"
+             func_append newdlfiles " $deplib"
            fi
          fi
          continue
@@ -5318,20 +6404,20 @@ func_mode_link ()
 
        # Convert "-framework foo" to "foo.ltframework"
        if test -n "$inherited_linker_flags"; then
-         tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
+         tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
          for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
            case " $new_inherited_linker_flags " in
              *" $tmp_inherited_linker_flag "*) ;;
-             *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
+             *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
            esac
          done
        fi
-       dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+       dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
        if test "$linkmode,$pass" = "lib,link" ||
           test "$linkmode,$pass" = "prog,scan" ||
           { test "$linkmode" != prog && test "$linkmode" != lib; }; then
-         test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
-         test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+         test -n "$dlopen" && func_append dlfiles " $dlopen"
+         test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
        fi
 
        if test "$pass" = conv; then
@@ -5342,20 +6428,20 @@ func_mode_link ()
              func_fatal_error "cannot find name of link library for \`$lib'"
            fi
            # It is a libtool convenience library, so add in its objects.
-           convenience="$convenience $ladir/$objdir/$old_library"
-           old_convenience="$old_convenience $ladir/$objdir/$old_library"
+           func_append convenience " $ladir/$objdir/$old_library"
+           func_append old_convenience " $ladir/$objdir/$old_library"
          elif test "$linkmode" != prog && test "$linkmode" != lib; then
            func_fatal_error "\`$lib' is not a convenience library"
          fi
          tmp_libs=
          for deplib in $dependency_libs; do
            deplibs="$deplib $deplibs"
-           if $opt_duplicate_deps ; then
+           if $opt_preserve_dup_deps ; then
              case "$tmp_libs " in
-             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+             *" $deplib "*) func_append specialdeplibs " $deplib" ;;
              esac
            fi
-           tmp_libs="$tmp_libs $deplib"
+           func_append tmp_libs " $deplib"
          done
          continue
        fi # $pass = conv
@@ -5363,9 +6449,15 @@ func_mode_link ()
 
        # Get the name of the library we link against.
        linklib=
-       for l in $old_library $library_names; do
-         linklib="$l"
-       done
+       if test -n "$old_library" &&
+          { test "$prefer_static_libs" = yes ||
+            test "$prefer_static_libs,$installed" = "built,no"; }; then
+         linklib=$old_library
+       else
+         for l in $old_library $library_names; do
+           linklib="$l"
+         done
+       fi
        if test -z "$linklib"; then
          func_fatal_error "cannot find name of link library for \`$lib'"
        fi
@@ -5382,9 +6474,9 @@ func_mode_link ()
            # statically, we need to preload.  We also need to preload any
            # dependent libraries so libltdl's deplib preloader doesn't
            # bomb out in the load deplibs phase.
-           dlprefiles="$dlprefiles $lib $dependency_libs"
+           func_append dlprefiles " $lib $dependency_libs"
          else
-           newdlfiles="$newdlfiles $lib"
+           func_append newdlfiles " $lib"
          fi
          continue
        fi # $pass = dlopen
@@ -5406,14 +6498,14 @@ func_mode_link ()
 
        # Find the relevant object directory and library name.
        if test "X$installed" = Xyes; then
-         if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+         if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
            func_warning "library \`$lib' was moved."
            dir="$ladir"
            absdir="$abs_ladir"
            libdir="$abs_ladir"
          else
-           dir="$libdir"
-           absdir="$libdir"
+           dir="$lt_sysroot$libdir"
+           absdir="$lt_sysroot$libdir"
          fi
          test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
        else
@@ -5421,12 +6513,12 @@ func_mode_link ()
            dir="$ladir"
            absdir="$abs_ladir"
            # Remove this search path later
-           notinst_path="$notinst_path $abs_ladir"
+           func_append notinst_path " $abs_ladir"
          else
            dir="$ladir/$objdir"
            absdir="$abs_ladir/$objdir"
            # Remove this search path later
-           notinst_path="$notinst_path $abs_ladir"
+           func_append notinst_path " $abs_ladir"
          fi
        fi # $installed = yes
        func_stripname 'lib' '.la' "$laname"
@@ -5437,20 +6529,46 @@ func_mode_link ()
          if test -z "$libdir" && test "$linkmode" = prog; then
            func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
          fi
-         # Prefer using a static library (so that no silly _DYNAMIC symbols
-         # are required to link).
-         if test -n "$old_library"; then
-           newdlprefiles="$newdlprefiles $dir/$old_library"
-           # Keep a list of preopened convenience libraries to check
-           # that they are being used correctly in the link pass.
-           test -z "$libdir" && \
-               dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
-         # Otherwise, use the dlname, so that lt_dlopen finds it.
-         elif test -n "$dlname"; then
-           newdlprefiles="$newdlprefiles $dir/$dlname"
-         else
-           newdlprefiles="$newdlprefiles $dir/$linklib"
-         fi
+         case "$host" in
+           # special handling for platforms with PE-DLLs.
+           *cygwin* | *mingw* | *cegcc* )
+             # Linker will automatically link against shared library if both
+             # static and shared are present.  Therefore, ensure we extract
+             # symbols from the import library if a shared library is present
+             # (otherwise, the dlopen module name will be incorrect).  We do
+             # this by putting the import library name into $newdlprefiles.
+             # We recover the dlopen module name by 'saving' the la file
+             # name in a special purpose variable, and (later) extracting the
+             # dlname from the la file.
+             if test -n "$dlname"; then
+               func_tr_sh "$dir/$linklib"
+               eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
+               func_append newdlprefiles " $dir/$linklib"
+             else
+               func_append newdlprefiles " $dir/$old_library"
+               # Keep a list of preopened convenience libraries to check
+               # that they are being used correctly in the link pass.
+               test -z "$libdir" && \
+                 func_append dlpreconveniencelibs " $dir/$old_library"
+             fi
+           ;;
+           * )
+             # Prefer using a static library (so that no silly _DYNAMIC symbols
+             # are required to link).
+             if test -n "$old_library"; then
+               func_append newdlprefiles " $dir/$old_library"
+               # Keep a list of preopened convenience libraries to check
+               # that they are being used correctly in the link pass.
+               test -z "$libdir" && \
+                 func_append dlpreconveniencelibs " $dir/$old_library"
+             # Otherwise, use the dlname, so that lt_dlopen finds it.
+             elif test -n "$dlname"; then
+               func_append newdlprefiles " $dir/$dlname"
+             else
+               func_append newdlprefiles " $dir/$linklib"
+             fi
+           ;;
+         esac
        fi # $pass = dlpreopen
 
        if test -z "$libdir"; then
@@ -5468,7 +6586,7 @@ func_mode_link ()
 
 
        if test "$linkmode" = prog && test "$pass" != link; then
-         newlib_search_path="$newlib_search_path $ladir"
+         func_append newlib_search_path " $ladir"
          deplibs="$lib $deplibs"
 
          linkalldeplibs=no
@@ -5481,7 +6599,8 @@ func_mode_link ()
          for deplib in $dependency_libs; do
            case $deplib in
            -L*) func_stripname '-L' '' "$deplib"
-                newlib_search_path="$newlib_search_path $func_stripname_result"
+                func_resolve_sysroot "$func_stripname_result"
+                func_append newlib_search_path " $func_resolve_sysroot_result"
                 ;;
            esac
            # Need to link against all dependency_libs?
@@ -5492,12 +6611,12 @@ func_mode_link ()
              # or/and link against static libraries
              newdependency_libs="$deplib $newdependency_libs"
            fi
-           if $opt_duplicate_deps ; then
+           if $opt_preserve_dup_deps ; then
              case "$tmp_libs " in
-             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+             *" $deplib "*) func_append specialdeplibs " $deplib" ;;
              esac
            fi
-           tmp_libs="$tmp_libs $deplib"
+           func_append tmp_libs " $deplib"
          done # for deplib
          continue
        fi # $linkmode = prog...
@@ -5512,7 +6631,7 @@ func_mode_link ()
              # Make sure the rpath contains only unique directories.
              case "$temp_rpath:" in
              *"$absdir:"*) ;;
-             *) temp_rpath="$temp_rpath$absdir:" ;;
+             *) func_append temp_rpath "$absdir:" ;;
              esac
            fi
 
@@ -5524,7 +6643,7 @@ func_mode_link ()
            *)
              case "$compile_rpath " in
              *" $absdir "*) ;;
-             *) compile_rpath="$compile_rpath $absdir"
+             *) func_append compile_rpath " $absdir" ;;
              esac
              ;;
            esac
@@ -5533,7 +6652,7 @@ func_mode_link ()
            *)
              case "$finalize_rpath " in
              *" $libdir "*) ;;
-             *) finalize_rpath="$finalize_rpath $libdir"
+             *) func_append finalize_rpath " $libdir" ;;
              esac
              ;;
            esac
@@ -5558,12 +6677,12 @@ func_mode_link ()
          case $host in
          *cygwin* | *mingw* | *cegcc*)
              # No point in relinking DLLs because paths are not encoded
-             notinst_deplibs="$notinst_deplibs $lib"
+             func_append notinst_deplibs " $lib"
              need_relink=no
            ;;
          *)
            if test "$installed" = no; then
-             notinst_deplibs="$notinst_deplibs $lib"
+             func_append notinst_deplibs " $lib"
              need_relink=yes
            fi
            ;;
@@ -5580,7 +6699,7 @@ func_mode_link ()
            fi
          done
          if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
-           $ECHO
+           echo
            if test "$linkmode" = prog; then
              $ECHO "*** Warning: Linking the executable $output against the loadable module"
            else
@@ -5598,7 +6717,7 @@ func_mode_link ()
            *)
              case "$compile_rpath " in
              *" $absdir "*) ;;
-             *) compile_rpath="$compile_rpath $absdir"
+             *) func_append compile_rpath " $absdir" ;;
              esac
              ;;
            esac
@@ -5607,7 +6726,7 @@ func_mode_link ()
            *)
              case "$finalize_rpath " in
              *" $libdir "*) ;;
-             *) finalize_rpath="$finalize_rpath $libdir"
+             *) func_append finalize_rpath " $libdir" ;;
              esac
              ;;
            esac
@@ -5661,7 +6780,7 @@ func_mode_link ()
            linklib=$newlib
          fi # test -n "$old_archive_from_expsyms_cmds"
 
-         if test "$linkmode" = prog || test "$mode" != relink; then
+         if test "$linkmode" = prog || test "$opt_mode" != relink; then
            add_shlibpath=
            add_dir=
            add=
@@ -5683,9 +6802,9 @@ func_mode_link ()
                      if test "X$dlopenmodule" != "X$lib"; then
                        $ECHO "*** Warning: lib $linklib is a module, not a shared library"
                        if test -z "$old_library" ; then
-                         $ECHO
-                         $ECHO "*** And there doesn't seem to be a static archive available"
-                         $ECHO "*** The link will probably fail, sorry"
+                         echo
+                         echo "*** And there doesn't seem to be a static archive available"
+                         echo "*** The link will probably fail, sorry"
                        else
                          add="$dir/$old_library"
                        fi
@@ -5717,7 +6836,7 @@ func_mode_link ()
                if test -n "$inst_prefix_dir"; then
                  case $libdir in
                    [\\/]*)
-                     add_dir="$add_dir -L$inst_prefix_dir$libdir"
+                     func_append add_dir " -L$inst_prefix_dir$libdir"
                      ;;
                  esac
                fi
@@ -5739,7 +6858,7 @@ func_mode_link ()
            if test -n "$add_shlibpath"; then
              case :$compile_shlibpath: in
              *":$add_shlibpath:"*) ;;
-             *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+             *) func_append compile_shlibpath "$add_shlibpath:" ;;
              esac
            fi
            if test "$linkmode" = prog; then
@@ -5753,13 +6872,13 @@ func_mode_link ()
                 test "$hardcode_shlibpath_var" = yes; then
                case :$finalize_shlibpath: in
                *":$libdir:"*) ;;
-               *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+               *) func_append finalize_shlibpath "$libdir:" ;;
                esac
              fi
            fi
          fi
 
-         if test "$linkmode" = prog || test "$mode" = relink; then
+         if test "$linkmode" = prog || test "$opt_mode" = relink; then
            add_shlibpath=
            add_dir=
            add=
@@ -5773,7 +6892,7 @@ func_mode_link ()
            elif test "$hardcode_shlibpath_var" = yes; then
              case :$finalize_shlibpath: in
              *":$libdir:"*) ;;
-             *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+             *) func_append finalize_shlibpath "$libdir:" ;;
              esac
              add="-l$name"
            elif test "$hardcode_automatic" = yes; then
@@ -5790,7 +6909,7 @@ func_mode_link ()
              if test -n "$inst_prefix_dir"; then
                case $libdir in
                  [\\/]*)
-                   add_dir="$add_dir -L$inst_prefix_dir$libdir"
+                   func_append add_dir " -L$inst_prefix_dir$libdir"
                    ;;
                esac
              fi
@@ -5825,21 +6944,21 @@ func_mode_link ()
 
            # Just print a warning and add the library to dependency_libs so
            # that the program can be linked against the static library.
-           $ECHO
+           echo
            $ECHO "*** Warning: This system can not link to static lib archive $lib."
-           $ECHO "*** I have the capability to make that library automatically link in when"
-           $ECHO "*** you link to this library.  But I can only do this if you have a"
-           $ECHO "*** shared version of the library, which you do not appear to have."
+           echo "*** I have the capability to make that library automatically link in when"
+           echo "*** you link to this library.  But I can only do this if you have a"
+           echo "*** shared version of the library, which you do not appear to have."
            if test "$module" = yes; then
-             $ECHO "*** But as you try to build a module library, libtool will still create "
-             $ECHO "*** a static module, that should work as long as the dlopening application"
-             $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
+             echo "*** But as you try to build a module library, libtool will still create "
+             echo "*** a static module, that should work as long as the dlopening application"
+             echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
              if test -z "$global_symbol_pipe"; then
-               $ECHO
-               $ECHO "*** However, this would only work if libtool was able to extract symbol"
-               $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
-               $ECHO "*** not find such a program.  So, this module is probably useless."
-               $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
+               echo
+               echo "*** However, this would only work if libtool was able to extract symbol"
+               echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+               echo "*** not find such a program.  So, this module is probably useless."
+               echo "*** \`nm' from GNU binutils and a full rebuild may help."
              fi
              if test "$build_old_libs" = no; then
                build_libtool_libs=module
@@ -5867,37 +6986,46 @@ func_mode_link ()
                   temp_xrpath=$func_stripname_result
                   case " $xrpath " in
                   *" $temp_xrpath "*) ;;
-                  *) xrpath="$xrpath $temp_xrpath";;
+                  *) func_append xrpath " $temp_xrpath";;
                   esac;;
-             *) temp_deplibs="$temp_deplibs $libdir";;
+             *) func_append temp_deplibs " $libdir";;
              esac
            done
            dependency_libs="$temp_deplibs"
          fi
 
-         newlib_search_path="$newlib_search_path $absdir"
+         func_append newlib_search_path " $absdir"
          # Link against this library
          test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
          # ... and its dependency_libs
          tmp_libs=
          for deplib in $dependency_libs; do
            newdependency_libs="$deplib $newdependency_libs"
-           if $opt_duplicate_deps ; then
+           case $deplib in
+              -L*) func_stripname '-L' '' "$deplib"
+                   func_resolve_sysroot "$func_stripname_result";;
+              *) func_resolve_sysroot "$deplib" ;;
+            esac
+           if $opt_preserve_dup_deps ; then
              case "$tmp_libs " in
-             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+             *" $func_resolve_sysroot_result "*)
+                func_append specialdeplibs " $func_resolve_sysroot_result" ;;
              esac
            fi
-           tmp_libs="$tmp_libs $deplib"
+           func_append tmp_libs " $func_resolve_sysroot_result"
          done
 
          if test "$link_all_deplibs" != no; then
            # Add the search paths of all dependency libraries
            for deplib in $dependency_libs; do
+             path=
              case $deplib in
              -L*) path="$deplib" ;;
              *.la)
+               func_resolve_sysroot "$deplib"
+               deplib=$func_resolve_sysroot_result
                func_dirname "$deplib" "" "."
-               dir="$func_dirname_result"
+               dir=$func_dirname_result
                # We need an absolute path.
                case $dir in
                [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
@@ -5924,8 +7052,8 @@ func_mode_link ()
                       if test -z "$darwin_install_name"; then
                           darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
                       fi
-                     compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
-                     linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
+                     func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
+                     func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
                      path=
                    fi
                  fi
@@ -5958,7 +7086,7 @@ func_mode_link ()
          compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
          finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
        else
-         compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+         compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
        fi
       fi
       dependency_libs="$newdependency_libs"
@@ -5975,7 +7103,7 @@ func_mode_link ()
          for dir in $newlib_search_path; do
            case "$lib_search_path " in
            *" $dir "*) ;;
-           *) lib_search_path="$lib_search_path $dir" ;;
+           *) func_append lib_search_path " $dir" ;;
            esac
          done
          newlib_search_path=
@@ -6033,10 +7161,10 @@ func_mode_link ()
            -L*)
              case " $tmp_libs " in
              *" $deplib "*) ;;
-             *) tmp_libs="$tmp_libs $deplib" ;;
+             *) func_append tmp_libs " $deplib" ;;
              esac
              ;;
-           *) tmp_libs="$tmp_libs $deplib" ;;
+           *) func_append tmp_libs " $deplib" ;;
            esac
          done
          eval $var=\"$tmp_libs\"
@@ -6052,7 +7180,7 @@ func_mode_link ()
          ;;
        esac
        if test -n "$i" ; then
-         tmp_libs="$tmp_libs $i"
+         func_append tmp_libs " $i"
        fi
       done
       dependency_libs=$tmp_libs
@@ -6093,7 +7221,7 @@ func_mode_link ()
       # Now set the variables for building old libraries.
       build_libtool_libs=no
       oldlibs="$output"
-      objs="$objs$old_deplibs"
+      func_append objs "$old_deplibs"
       ;;
 
     lib)
@@ -6126,10 +7254,10 @@ func_mode_link ()
        if test "$deplibs_check_method" != pass_all; then
          func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
        else
-         $ECHO
+         echo
          $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
          $ECHO "*** objects $objs is not portable!"
-         libobjs="$libobjs $objs"
+         func_append libobjs " $objs"
        fi
       fi
 
@@ -6194,7 +7322,7 @@ func_mode_link ()
            age="$number_minor"
            revision="$number_revision"
            ;;
-         freebsd-aout|freebsd-elf|sunos)
+         freebsd-aout|freebsd-elf|qnx|sunos)
            current="$number_major"
            revision="$number_minor"
            age="0"
@@ -6327,7 +7455,7 @@ func_mode_link ()
          done
 
          # Make executables depend on our current version.
-         verstring="$verstring:${current}.0"
+         func_append verstring ":${current}.0"
          ;;
 
        qnx)
@@ -6395,10 +7523,10 @@ func_mode_link ()
       fi
 
       func_generate_dlsyms "$libname" "$libname" "yes"
-      libobjs="$libobjs $symfileobj"
+      func_append libobjs " $symfileobj"
       test "X$libobjs" = "X " && libobjs=
 
-      if test "$mode" != relink; then
+      if test "$opt_mode" != relink; then
        # Remove our outputs, but don't remove object files since they
        # may have been created when compiling PIC objects.
        removelist=
@@ -6414,7 +7542,7 @@ func_mode_link ()
                   continue
                 fi
               fi
-              removelist="$removelist $p"
+              func_append removelist " $p"
               ;;
            *) ;;
          esac
@@ -6425,27 +7553,28 @@ func_mode_link ()
 
       # Now set the variables for building old libraries.
       if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
-       oldlibs="$oldlibs $output_objdir/$libname.$libext"
+       func_append oldlibs " $output_objdir/$libname.$libext"
 
        # Transform .lo files to .o files.
-       oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
+       oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
       fi
 
       # Eliminate all temporary directories.
       #for path in $notinst_path; do
-      #        lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
-      #        deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
-      #        dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
+      #        lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
+      #        deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
+      #        dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
       #done
 
       if test -n "$xrpath"; then
        # If the user specified any rpath flags, then add them.
        temp_xrpath=
        for libdir in $xrpath; do
-         temp_xrpath="$temp_xrpath -R$libdir"
+         func_replace_sysroot "$libdir"
+         func_append temp_xrpath " -R$func_replace_sysroot_result"
          case "$finalize_rpath " in
          *" $libdir "*) ;;
-         *) finalize_rpath="$finalize_rpath $libdir" ;;
+         *) func_append finalize_rpath " $libdir" ;;
          esac
        done
        if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
@@ -6459,7 +7588,7 @@ func_mode_link ()
       for lib in $old_dlfiles; do
        case " $dlprefiles $dlfiles " in
        *" $lib "*) ;;
-       *) dlfiles="$dlfiles $lib" ;;
+       *) func_append dlfiles " $lib" ;;
        esac
       done
 
@@ -6469,19 +7598,19 @@ func_mode_link ()
       for lib in $old_dlprefiles; do
        case "$dlprefiles " in
        *" $lib "*) ;;
-       *) dlprefiles="$dlprefiles $lib" ;;
+       *) func_append dlprefiles " $lib" ;;
        esac
       done
 
       if test "$build_libtool_libs" = yes; then
        if test -n "$rpath"; then
          case $host in
-         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*)
+         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
            # these systems don't actually have a c library (as such)!
            ;;
          *-*-rhapsody* | *-*-darwin1.[012])
            # Rhapsody C library is in the System framework
-           deplibs="$deplibs System.ltframework"
+           func_append deplibs " System.ltframework"
            ;;
          *-*-netbsd*)
            # Don't link with libc until the a.out ld.so is fixed.
@@ -6498,7 +7627,7 @@ func_mode_link ()
          *)
            # Add libc to deplibs on all other systems if necessary.
            if test "$build_libtool_need_lc" = "yes"; then
-             deplibs="$deplibs -lc"
+             func_append deplibs " -lc"
            fi
            ;;
          esac
@@ -6547,7 +7676,7 @@ EOF
                if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
                  case " $predeps $postdeps " in
                  *" $i "*)
-                   newdeplibs="$newdeplibs $i"
+                   func_append newdeplibs " $i"
                    i=""
                    ;;
                  esac
@@ -6558,21 +7687,21 @@ EOF
                  set dummy $deplib_matches; shift
                  deplib_match=$1
                  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-                   newdeplibs="$newdeplibs $i"
+                   func_append newdeplibs " $i"
                  else
                    droppeddeps=yes
-                   $ECHO
+                   echo
                    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
-                   $ECHO "*** I have the capability to make that library automatically link in when"
-                   $ECHO "*** you link to this library.  But I can only do this if you have a"
-                   $ECHO "*** shared version of the library, which I believe you do not have"
-                   $ECHO "*** because a test_compile did reveal that the linker did not use it for"
-                   $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
+                   echo "*** I have the capability to make that library automatically link in when"
+                   echo "*** you link to this library.  But I can only do this if you have a"
+                   echo "*** shared version of the library, which I believe you do not have"
+                   echo "*** because a test_compile did reveal that the linker did not use it for"
+                   echo "*** its dynamic dependency list that programs get resolved with at runtime."
                  fi
                fi
                ;;
              *)
-               newdeplibs="$newdeplibs $i"
+               func_append newdeplibs " $i"
                ;;
              esac
            done
@@ -6590,7 +7719,7 @@ EOF
                  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
                    case " $predeps $postdeps " in
                    *" $i "*)
-                     newdeplibs="$newdeplibs $i"
+                     func_append newdeplibs " $i"
                      i=""
                      ;;
                    esac
@@ -6601,29 +7730,29 @@ EOF
                    set dummy $deplib_matches; shift
                    deplib_match=$1
                    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-                     newdeplibs="$newdeplibs $i"
+                     func_append newdeplibs " $i"
                    else
                      droppeddeps=yes
-                     $ECHO
+                     echo
                      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
-                     $ECHO "*** I have the capability to make that library automatically link in when"
-                     $ECHO "*** you link to this library.  But I can only do this if you have a"
-                     $ECHO "*** shared version of the library, which you do not appear to have"
-                     $ECHO "*** because a test_compile did reveal that the linker did not use this one"
-                     $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
+                     echo "*** I have the capability to make that library automatically link in when"
+                     echo "*** you link to this library.  But I can only do this if you have a"
+                     echo "*** shared version of the library, which you do not appear to have"
+                     echo "*** because a test_compile did reveal that the linker did not use this one"
+                     echo "*** as a dynamic dependency that programs can get resolved with at runtime."
                    fi
                  fi
                else
                  droppeddeps=yes
-                 $ECHO
+                 echo
                  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
-                 $ECHO "*** make it link in!  You will probably need to install it or some"
-                 $ECHO "*** library that it depends on before this library will be fully"
-                 $ECHO "*** functional.  Installing it before continuing would be even better."
+                 echo "*** make it link in!  You will probably need to install it or some"
+                 echo "*** library that it depends on before this library will be fully"
+                 echo "*** functional.  Installing it before continuing would be even better."
                fi
                ;;
              *)
-               newdeplibs="$newdeplibs $i"
+               func_append newdeplibs " $i"
                ;;
              esac
            done
@@ -6640,15 +7769,27 @@ EOF
              if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
                case " $predeps $postdeps " in
                *" $a_deplib "*)
-                 newdeplibs="$newdeplibs $a_deplib"
+                 func_append newdeplibs " $a_deplib"
                  a_deplib=""
                  ;;
                esac
              fi
              if test -n "$a_deplib" ; then
                libname=`eval "\\$ECHO \"$libname_spec\""`
+               if test -n "$file_magic_glob"; then
+                 libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
+               else
+                 libnameglob=$libname
+               fi
+               test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
                for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-                 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+                 if test "$want_nocaseglob" = yes; then
+                   shopt -s nocaseglob
+                   potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+                   $nocaseglob
+                 else
+                   potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+                 fi
                  for potent_lib in $potential_libs; do
                      # Follow soft links.
                      if ls -lLd "$potent_lib" 2>/dev/null |
@@ -6665,13 +7806,13 @@ EOF
                        potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
                        case $potliblink in
                        [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
-                       *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+                       *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
                        esac
                      done
                      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
                         $SED -e 10q |
                         $EGREP "$file_magic_regex" > /dev/null; then
-                       newdeplibs="$newdeplibs $a_deplib"
+                       func_append newdeplibs " $a_deplib"
                        a_deplib=""
                        break 2
                      fi
@@ -6680,12 +7821,12 @@ EOF
              fi
              if test -n "$a_deplib" ; then
                droppeddeps=yes
-               $ECHO
+               echo
                $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
-               $ECHO "*** I have the capability to make that library automatically link in when"
-               $ECHO "*** you link to this library.  But I can only do this if you have a"
-               $ECHO "*** shared version of the library, which you do not appear to have"
-               $ECHO "*** because I did check the linker path looking for a file starting"
+               echo "*** I have the capability to make that library automatically link in when"
+               echo "*** you link to this library.  But I can only do this if you have a"
+               echo "*** shared version of the library, which you do not appear to have"
+               echo "*** because I did check the linker path looking for a file starting"
                if test -z "$potlib" ; then
                  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
                else
@@ -6696,7 +7837,7 @@ EOF
              ;;
            *)
              # Add a -L argument.
-             newdeplibs="$newdeplibs $a_deplib"
+             func_append newdeplibs " $a_deplib"
              ;;
            esac
          done # Gone through all deplibs.
@@ -6712,7 +7853,7 @@ EOF
              if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
                case " $predeps $postdeps " in
                *" $a_deplib "*)
-                 newdeplibs="$newdeplibs $a_deplib"
+                 func_append newdeplibs " $a_deplib"
                  a_deplib=""
                  ;;
                esac
@@ -6723,9 +7864,9 @@ EOF
                  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
                  for potent_lib in $potential_libs; do
                    potlib="$potent_lib" # see symlink-check above in file_magic test
-                   if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
+                   if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
                       $EGREP "$match_pattern_regex" > /dev/null; then
-                     newdeplibs="$newdeplibs $a_deplib"
+                     func_append newdeplibs " $a_deplib"
                      a_deplib=""
                      break 2
                    fi
@@ -6734,12 +7875,12 @@ EOF
              fi
              if test -n "$a_deplib" ; then
                droppeddeps=yes
-               $ECHO
+               echo
                $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
-               $ECHO "*** I have the capability to make that library automatically link in when"
-               $ECHO "*** you link to this library.  But I can only do this if you have a"
-               $ECHO "*** shared version of the library, which you do not appear to have"
-               $ECHO "*** because I did check the linker path looking for a file starting"
+               echo "*** I have the capability to make that library automatically link in when"
+               echo "*** you link to this library.  But I can only do this if you have a"
+               echo "*** shared version of the library, which you do not appear to have"
+               echo "*** because I did check the linker path looking for a file starting"
                if test -z "$potlib" ; then
                  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
                else
@@ -6750,32 +7891,32 @@ EOF
              ;;
            *)
              # Add a -L argument.
-             newdeplibs="$newdeplibs $a_deplib"
+             func_append newdeplibs " $a_deplib"
              ;;
            esac
          done # Gone through all deplibs.
          ;;
        none | unknown | *)
          newdeplibs=""
-         tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
-             -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
+         tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
          if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
            for i in $predeps $postdeps ; do
              # can't use Xsed below, because $i might contain '/'
-             tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
+             tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
            done
          fi
-         if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[      ]//g' |
-            $GREP . >/dev/null; then
-           $ECHO
+         case $tmp_deplibs in
+         *[!\  \ ]*)
+           echo
            if test "X$deplibs_check_method" = "Xnone"; then
-             $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
+             echo "*** Warning: inter-library dependencies are not supported in this platform."
            else
-             $ECHO "*** Warning: inter-library dependencies are not known to be supported."
+             echo "*** Warning: inter-library dependencies are not known to be supported."
            fi
-           $ECHO "*** All declared inter-library dependencies are being dropped."
+           echo "*** All declared inter-library dependencies are being dropped."
            droppeddeps=yes
-         fi
+           ;;
+         esac
          ;;
        esac
        versuffix=$versuffix_save
@@ -6787,23 +7928,23 @@ EOF
        case $host in
        *-*-rhapsody* | *-*-darwin1.[012])
          # On Rhapsody replace the C library with the System framework
-         newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+         newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
          ;;
        esac
 
        if test "$droppeddeps" = yes; then
          if test "$module" = yes; then
-           $ECHO
-           $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
+           echo
+           echo "*** Warning: libtool could not satisfy all declared inter-library"
            $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
-           $ECHO "*** a static module, that should work as long as the dlopening"
-           $ECHO "*** application is linked with the -dlopen flag."
+           echo "*** a static module, that should work as long as the dlopening"
+           echo "*** application is linked with the -dlopen flag."
            if test -z "$global_symbol_pipe"; then
-             $ECHO
-             $ECHO "*** However, this would only work if libtool was able to extract symbol"
-             $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
-             $ECHO "*** not find such a program.  So, this module is probably useless."
-             $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
+             echo
+             echo "*** However, this would only work if libtool was able to extract symbol"
+             echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+             echo "*** not find such a program.  So, this module is probably useless."
+             echo "*** \`nm' from GNU binutils and a full rebuild may help."
            fi
            if test "$build_old_libs" = no; then
              oldlibs="$output_objdir/$libname.$libext"
@@ -6813,16 +7954,16 @@ EOF
              build_libtool_libs=no
            fi
          else
-           $ECHO "*** The inter-library dependencies that have been dropped here will be"
-           $ECHO "*** automatically added whenever a program is linked with this library"
-           $ECHO "*** or is declared to -dlopen it."
+           echo "*** The inter-library dependencies that have been dropped here will be"
+           echo "*** automatically added whenever a program is linked with this library"
+           echo "*** or is declared to -dlopen it."
 
            if test "$allow_undefined" = no; then
-             $ECHO
-             $ECHO "*** Since this library must not contain undefined symbols,"
-             $ECHO "*** because either the platform does not support them or"
-             $ECHO "*** it was explicitly requested with -no-undefined,"
-             $ECHO "*** libtool will only create a static version of it."
+             echo
+             echo "*** Since this library must not contain undefined symbols,"
+             echo "*** because either the platform does not support them or"
+             echo "*** it was explicitly requested with -no-undefined,"
+             echo "*** libtool will only create a static version of it."
              if test "$build_old_libs" = no; then
                oldlibs="$output_objdir/$libname.$libext"
                build_libtool_libs=module
@@ -6839,9 +7980,9 @@ EOF
       # Time to change all our "foo.ltframework" stuff back to "-framework foo"
       case $host in
        *-*-darwin*)
-         newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
-         new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
-         deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+         newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+         new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+         deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
          ;;
       esac
 
@@ -6854,7 +7995,7 @@ EOF
        *)
          case " $deplibs " in
          *" -L$path/$objdir "*)
-           new_libs="$new_libs -L$path/$objdir" ;;
+           func_append new_libs " -L$path/$objdir" ;;
          esac
          ;;
        esac
@@ -6864,10 +8005,10 @@ EOF
        -L*)
          case " $new_libs " in
          *" $deplib "*) ;;
-         *) new_libs="$new_libs $deplib" ;;
+         *) func_append new_libs " $deplib" ;;
          esac
          ;;
-       *) new_libs="$new_libs $deplib" ;;
+       *) func_append new_libs " $deplib" ;;
        esac
       done
       deplibs="$new_libs"
@@ -6884,10 +8025,12 @@ EOF
          hardcode_libdirs=
          dep_rpath=
          rpath="$finalize_rpath"
-         test "$mode" != relink && rpath="$compile_rpath$rpath"
+         test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
          for libdir in $rpath; do
            if test -n "$hardcode_libdir_flag_spec"; then
              if test -n "$hardcode_libdir_separator"; then
+               func_replace_sysroot "$libdir"
+               libdir=$func_replace_sysroot_result
                if test -z "$hardcode_libdirs"; then
                  hardcode_libdirs="$libdir"
                else
@@ -6896,18 +8039,18 @@ EOF
                  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
                    ;;
                  *)
-                   hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+                   func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
                    ;;
                  esac
                fi
              else
                eval flag=\"$hardcode_libdir_flag_spec\"
-               dep_rpath="$dep_rpath $flag"
+               func_append dep_rpath " $flag"
              fi
            elif test -n "$runpath_var"; then
              case "$perm_rpath " in
              *" $libdir "*) ;;
-             *) perm_rpath="$perm_rpath $libdir" ;;
+             *) func_apped perm_rpath " $libdir" ;;
              esac
            fi
          done
@@ -6925,7 +8068,7 @@ EOF
            # We should set the runpath_var.
            rpath=
            for dir in $perm_rpath; do
-             rpath="$rpath$dir:"
+             func_append rpath "$dir:"
            done
            eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
          fi
@@ -6933,7 +8076,7 @@ EOF
        fi
 
        shlibpath="$finalize_shlibpath"
-       test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+       test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
        if test -n "$shlibpath"; then
          eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
        fi
@@ -6959,18 +8102,18 @@ EOF
        linknames=
        for link
        do
-         linknames="$linknames $link"
+         func_append linknames " $link"
        done
 
        # Use standard objects if they are pic
-       test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+       test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
        test "X$libobjs" = "X " && libobjs=
 
        delfiles=
        if test -n "$export_symbols" && test -n "$include_expsyms"; then
          $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
          export_symbols="$output_objdir/$libname.uexp"
-         delfiles="$delfiles $export_symbols"
+         func_append delfiles " $export_symbols"
        fi
 
        orig_export_symbols=
@@ -7001,13 +8144,45 @@ EOF
            $opt_dry_run || $RM $export_symbols
            cmds=$export_symbols_cmds
            save_ifs="$IFS"; IFS='~'
-           for cmd in $cmds; do
+           for cmd1 in $cmds; do
              IFS="$save_ifs"
-             eval cmd=\"$cmd\"
-             func_len " $cmd"
-             len=$func_len_result
-             if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+             # Take the normal branch if the nm_file_list_spec branch
+             # doesn't work or if tool conversion is not needed.
+             case $nm_file_list_spec~$to_tool_file_cmd in
+               *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
+                 try_normal_branch=yes
+                 eval cmd=\"$cmd1\"
+                 func_len " $cmd"
+                 len=$func_len_result
+                 ;;
+               *)
+                 try_normal_branch=no
+                 ;;
+             esac
+             if test "$try_normal_branch" = yes \
+                && { test "$len" -lt "$max_cmd_len" \
+                     || test "$max_cmd_len" -le -1; }
+             then
+               func_show_eval "$cmd" 'exit $?'
+               skipped_export=false
+             elif test -n "$nm_file_list_spec"; then
+               func_basename "$output"
+               output_la=$func_basename_result
+               save_libobjs=$libobjs
+               save_output=$output
+               output=${output_objdir}/${output_la}.nm
+               func_to_tool_file "$output"
+               libobjs=$nm_file_list_spec$func_to_tool_file_result
+               func_append delfiles " $output"
+               func_verbose "creating $NM input file list: $output"
+               for obj in $save_libobjs; do
+                 func_to_tool_file "$obj"
+                 $ECHO "$func_to_tool_file_result"
+               done > "$output"
+               eval cmd=\"$cmd1\"
                func_show_eval "$cmd" 'exit $?'
+               output=$save_output
+               libobjs=$save_libobjs
                skipped_export=false
              else
                # The command line is too long to execute in one step.
@@ -7029,7 +8204,7 @@ EOF
        if test -n "$export_symbols" && test -n "$include_expsyms"; then
          tmp_export_symbols="$export_symbols"
          test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
-         $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
+         $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
        fi
 
        if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
@@ -7041,7 +8216,7 @@ EOF
          # global variables. join(1) would be nice here, but unfortunately
          # isn't a blessed tool.
          $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
-         delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+         func_append delfiles " $export_symbols $output_objdir/$libname.filter"
          export_symbols=$output_objdir/$libname.def
          $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
        fi
@@ -7051,7 +8226,7 @@ EOF
          case " $convenience " in
          *" $test_deplib "*) ;;
          *)
-           tmp_deplibs="$tmp_deplibs $test_deplib"
+           func_append tmp_deplibs " $test_deplib"
            ;;
          esac
        done
@@ -7071,21 +8246,21 @@ EOF
            test "X$libobjs" = "X " && libobjs=
          else
            gentop="$output_objdir/${outputname}x"
-           generated="$generated $gentop"
+           func_append generated " $gentop"
 
            func_extract_archives $gentop $convenience
-           libobjs="$libobjs $func_extract_archives_result"
+           func_append libobjs " $func_extract_archives_result"
            test "X$libobjs" = "X " && libobjs=
          fi
        fi
 
        if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
          eval flag=\"$thread_safe_flag_spec\"
-         linker_flags="$linker_flags $flag"
+         func_append linker_flags " $flag"
        fi
 
        # Make a backup of the uninstalled library when relinking
-       if test "$mode" = relink; then
+       if test "$opt_mode" = relink; then
          $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
        fi
 
@@ -7130,7 +8305,8 @@ EOF
            save_libobjs=$libobjs
          fi
          save_output=$output
-         output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
+         func_basename "$output"
+         output_la=$func_basename_result
 
          # Clear the reloadable object creation command queue and
          # initialize k to one.
@@ -7143,13 +8319,16 @@ EOF
          if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
            output=${output_objdir}/${output_la}.lnkscript
            func_verbose "creating GNU ld script: $output"
-           $ECHO 'INPUT (' > $output
+           echo 'INPUT (' > $output
            for obj in $save_libobjs
            do
-             $ECHO "$obj" >> $output
+             func_to_tool_file "$obj"
+             $ECHO "$func_to_tool_file_result" >> $output
            done
-           $ECHO ')' >> $output
-           delfiles="$delfiles $output"
+           echo ')' >> $output
+           func_append delfiles " $output"
+           func_to_tool_file "$output"
+           output=$func_to_tool_file_result
          elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
            output=${output_objdir}/${output_la}.lnk
            func_verbose "creating linker input file list: $output"
@@ -7163,10 +8342,12 @@ EOF
            fi
            for obj
            do
-             $ECHO "$obj" >> $output
+             func_to_tool_file "$obj"
+             $ECHO "$func_to_tool_file_result" >> $output
            done
-           delfiles="$delfiles $output"
-           output=$firstobj\"$file_list_spec$output\"
+           func_append delfiles " $output"
+           func_to_tool_file "$output"
+           output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
          else
            if test -n "$save_libobjs"; then
              func_verbose "creating reloadable object files..."
@@ -7190,17 +8371,19 @@ EOF
                  # command to the queue.
                  if test "$k" -eq 1 ; then
                    # The first file doesn't have a previous command to add.
-                   eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
+                   reload_objs=$objlist
+                   eval concat_cmds=\"$reload_cmds\"
                  else
                    # All subsequent reloadable object files will link in
                    # the last one created.
-                   eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\"
+                   reload_objs="$objlist $last_robj"
+                   eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
                  fi
                  last_robj=$output_objdir/$output_la-${k}.$objext
                  func_arith $k + 1
                  k=$func_arith_result
                  output=$output_objdir/$output_la-${k}.$objext
-                 objlist=$obj
+                 objlist=" $obj"
                  func_len " $last_robj"
                  func_arith $len0 + $func_len_result
                  len=$func_arith_result
@@ -7210,11 +8393,12 @@ EOF
              # reloadable object file.  All subsequent reloadable object
              # files will link in the last one created.
              test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-             eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
+             reload_objs="$objlist $last_robj"
+             eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
              if test -n "$last_robj"; then
                eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
              fi
-             delfiles="$delfiles $output"
+             func_append delfiles " $output"
 
            else
              output=
@@ -7248,7 +8432,7 @@ EOF
                lt_exit=$?
 
                # Restore the uninstalled library and exit
-               if test "$mode" = relink; then
+               if test "$opt_mode" = relink; then
                  ( cd "$output_objdir" && \
                    $RM "${realname}T" && \
                    $MV "${realname}U" "$realname" )
@@ -7269,7 +8453,7 @@ EOF
            if test -n "$export_symbols" && test -n "$include_expsyms"; then
              tmp_export_symbols="$export_symbols"
              test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
-             $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
+             $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
            fi
 
            if test -n "$orig_export_symbols"; then
@@ -7281,7 +8465,7 @@ EOF
              # global variables. join(1) would be nice here, but unfortunately
              # isn't a blessed tool.
              $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
-             delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+             func_append delfiles " $export_symbols $output_objdir/$libname.filter"
              export_symbols=$output_objdir/$libname.def
              $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
            fi
@@ -7322,10 +8506,10 @@ EOF
        # Add any objects from preloaded convenience libraries
        if test -n "$dlprefiles"; then
          gentop="$output_objdir/${outputname}x"
-         generated="$generated $gentop"
+         func_append generated " $gentop"
 
          func_extract_archives $gentop $dlprefiles
-         libobjs="$libobjs $func_extract_archives_result"
+         func_append libobjs " $func_extract_archives_result"
          test "X$libobjs" = "X " && libobjs=
        fi
 
@@ -7341,7 +8525,7 @@ EOF
            lt_exit=$?
 
            # Restore the uninstalled library and exit
-           if test "$mode" = relink; then
+           if test "$opt_mode" = relink; then
              ( cd "$output_objdir" && \
                $RM "${realname}T" && \
                $MV "${realname}U" "$realname" )
@@ -7353,7 +8537,7 @@ EOF
        IFS="$save_ifs"
 
        # Restore the uninstalled library and exit
-       if test "$mode" = relink; then
+       if test "$opt_mode" = relink; then
          $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
 
          if test -n "$convenience"; then
@@ -7434,18 +8618,21 @@ EOF
       if test -n "$convenience"; then
        if test -n "$whole_archive_flag_spec"; then
          eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
-         reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
+         reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
        else
          gentop="$output_objdir/${obj}x"
-         generated="$generated $gentop"
+         func_append generated " $gentop"
 
          func_extract_archives $gentop $convenience
          reload_conv_objs="$reload_objs $func_extract_archives_result"
        fi
       fi
 
+      # If we're not building shared, we need to use non_pic_objs
+      test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
+
       # Create the old-style object.
-      reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+      reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
 
       output="$obj"
       func_execute_cmds "$reload_cmds" 'exit $?'
@@ -7505,8 +8692,8 @@ EOF
       case $host in
       *-*-rhapsody* | *-*-darwin1.[012])
        # On Rhapsody replace the C library is the System framework
-       compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
-       finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+       compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
+       finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
        ;;
       esac
 
@@ -7517,14 +8704,14 @@ EOF
        if test "$tagname" = CXX ; then
          case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
            10.[0123])
-             compile_command="$compile_command ${wl}-bind_at_load"
-             finalize_command="$finalize_command ${wl}-bind_at_load"
+             func_append compile_command " ${wl}-bind_at_load"
+             func_append finalize_command " ${wl}-bind_at_load"
            ;;
          esac
        fi
        # Time to change all our "foo.ltframework" stuff back to "-framework foo"
-       compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
-       finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+       compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+       finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
        ;;
       esac
 
@@ -7538,7 +8725,7 @@ EOF
        *)
          case " $compile_deplibs " in
          *" -L$path/$objdir "*)
-           new_libs="$new_libs -L$path/$objdir" ;;
+           func_append new_libs " -L$path/$objdir" ;;
          esac
          ;;
        esac
@@ -7548,17 +8735,17 @@ EOF
        -L*)
          case " $new_libs " in
          *" $deplib "*) ;;
-         *) new_libs="$new_libs $deplib" ;;
+         *) func_append new_libs " $deplib" ;;
          esac
          ;;
-       *) new_libs="$new_libs $deplib" ;;
+       *) func_append new_libs " $deplib" ;;
        esac
       done
       compile_deplibs="$new_libs"
 
 
-      compile_command="$compile_command $compile_deplibs"
-      finalize_command="$finalize_command $finalize_deplibs"
+      func_append compile_command " $compile_deplibs"
+      func_append finalize_command " $finalize_deplibs"
 
       if test -n "$rpath$xrpath"; then
        # If the user specified any rpath flags, then add them.
@@ -7566,7 +8753,7 @@ EOF
          # This is the magic to use -rpath.
          case "$finalize_rpath " in
          *" $libdir "*) ;;
-         *) finalize_rpath="$finalize_rpath $libdir" ;;
+         *) func_append finalize_rpath " $libdir" ;;
          esac
        done
       fi
@@ -7585,18 +8772,18 @@ EOF
              *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
                ;;
              *)
-               hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+               func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
                ;;
              esac
            fi
          else
            eval flag=\"$hardcode_libdir_flag_spec\"
-           rpath="$rpath $flag"
+           func_append rpath " $flag"
          fi
        elif test -n "$runpath_var"; then
          case "$perm_rpath " in
          *" $libdir "*) ;;
-         *) perm_rpath="$perm_rpath $libdir" ;;
+         *) func_append perm_rpath " $libdir" ;;
          esac
        fi
        case $host in
@@ -7605,12 +8792,12 @@ EOF
          case :$dllsearchpath: in
          *":$libdir:"*) ;;
          ::) dllsearchpath=$libdir;;
-         *) dllsearchpath="$dllsearchpath:$libdir";;
+         *) func_append dllsearchpath ":$libdir";;
          esac
          case :$dllsearchpath: in
          *":$testbindir:"*) ;;
          ::) dllsearchpath=$testbindir;;
-         *) dllsearchpath="$dllsearchpath:$testbindir";;
+         *) func_append dllsearchpath ":$testbindir";;
          esac
          ;;
        esac
@@ -7636,18 +8823,18 @@ EOF
              *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
                ;;
              *)
-               hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+               func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
                ;;
              esac
            fi
          else
            eval flag=\"$hardcode_libdir_flag_spec\"
-           rpath="$rpath $flag"
+           func_append rpath " $flag"
          fi
        elif test -n "$runpath_var"; then
          case "$finalize_perm_rpath " in
          *" $libdir "*) ;;
-         *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
+         *) func_append finalize_perm_rpath " $libdir" ;;
          esac
        fi
       done
@@ -7661,8 +8848,8 @@ EOF
 
       if test -n "$libobjs" && test "$build_old_libs" = yes; then
        # Transform all the library objects into standard objects.
-       compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-       finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+       compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
+       finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
       fi
 
       func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
@@ -7674,15 +8861,15 @@ EOF
 
       wrappers_required=yes
       case $host in
+      *cegcc* | *mingw32ce*)
+        # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
+        wrappers_required=no
+        ;;
       *cygwin* | *mingw* )
         if test "$build_libtool_libs" != yes; then
           wrappers_required=no
         fi
         ;;
-      *cegcc)
-        # Disable wrappers for cegcc, we are cross compiling anyway.
-        wrappers_required=no
-        ;;
       *)
         if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
           wrappers_required=no
@@ -7691,13 +8878,19 @@ EOF
       esac
       if test "$wrappers_required" = no; then
        # Replace the output file specification.
-       compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+       compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
        link_command="$compile_command$compile_rpath"
 
        # We have no uninstalled library dependencies, so finalize right now.
        exit_status=0
        func_show_eval "$link_command" 'exit_status=$?'
 
+       if test -n "$postlink_cmds"; then
+         func_to_tool_file "$output"
+         postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+         func_execute_cmds "$postlink_cmds" 'exit $?'
+       fi
+
        # Delete the generated files.
        if test -f "$output_objdir/${outputname}S.${objext}"; then
          func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
@@ -7720,7 +8913,7 @@ EOF
          # We should set the runpath_var.
          rpath=
          for dir in $perm_rpath; do
-           rpath="$rpath$dir:"
+           func_append rpath "$dir:"
          done
          compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
        fi
@@ -7728,7 +8921,7 @@ EOF
          # We should set the runpath_var.
          rpath=
          for dir in $finalize_perm_rpath; do
-           rpath="$rpath$dir:"
+           func_append rpath "$dir:"
          done
          finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
        fi
@@ -7738,11 +8931,18 @@ EOF
        # We don't need to create a wrapper script.
        link_command="$compile_var$compile_command$compile_rpath"
        # Replace the output file specification.
-       link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+       link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
        # Delete the old output file.
        $opt_dry_run || $RM $output
        # Link the executable and exit
        func_show_eval "$link_command" 'exit $?'
+
+       if test -n "$postlink_cmds"; then
+         func_to_tool_file "$output"
+         postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+         func_execute_cmds "$postlink_cmds" 'exit $?'
+       fi
+
        exit $EXIT_SUCCESS
       fi
 
@@ -7757,7 +8957,7 @@ EOF
        if test "$fast_install" != no; then
          link_command="$finalize_var$compile_command$finalize_rpath"
          if test "$fast_install" = yes; then
-           relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
+           relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
          else
            # fast_install is set to needless
            relink_command=
@@ -7769,13 +8969,19 @@ EOF
       fi
 
       # Replace the output file specification.
-      link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+      link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
 
       # Delete the old output files.
       $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
 
       func_show_eval "$link_command" 'exit $?'
 
+      if test -n "$postlink_cmds"; then
+       func_to_tool_file "$output_objdir/$outputname"
+       postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+       func_execute_cmds "$postlink_cmds" 'exit $?'
+      fi
+
       # Now create the wrapper script.
       func_verbose "creating $output"
 
@@ -7793,18 +8999,7 @@ EOF
          fi
        done
        relink_command="(cd `pwd`; $relink_command)"
-       relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
-      fi
-
-      # Quote $ECHO for shipping.
-      if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
-       case $progpath in
-       [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
-       *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
-       esac
-       qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
-      else
-       qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
+       relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
       fi
 
       # Only actually do things if not in dry run mode.
@@ -7884,7 +9079,7 @@ EOF
        else
          oldobjs="$old_deplibs $non_pic_objects"
          if test "$preload" = yes && test -f "$symfileobj"; then
-           oldobjs="$oldobjs $symfileobj"
+           func_append oldobjs " $symfileobj"
          fi
        fi
        addlibs="$old_convenience"
@@ -7892,10 +9087,10 @@ EOF
 
       if test -n "$addlibs"; then
        gentop="$output_objdir/${outputname}x"
-       generated="$generated $gentop"
+       func_append generated " $gentop"
 
        func_extract_archives $gentop $addlibs
-       oldobjs="$oldobjs $func_extract_archives_result"
+       func_append oldobjs " $func_extract_archives_result"
       fi
 
       # Do each command in the archive commands.
@@ -7906,10 +9101,10 @@ EOF
        # Add any objects from preloaded convenience libraries
        if test -n "$dlprefiles"; then
          gentop="$output_objdir/${outputname}x"
-         generated="$generated $gentop"
+         func_append generated " $gentop"
 
          func_extract_archives $gentop $dlprefiles
-         oldobjs="$oldobjs $func_extract_archives_result"
+         func_append oldobjs " $func_extract_archives_result"
        fi
 
        # POSIX demands no paths to be encoded in archives.  We have
@@ -7925,9 +9120,9 @@ EOF
            done | sort | sort -uc >/dev/null 2>&1); then
          :
        else
-         $ECHO "copying selected object files to avoid basename conflicts..."
+         echo "copying selected object files to avoid basename conflicts..."
          gentop="$output_objdir/${outputname}x"
-         generated="$generated $gentop"
+         func_append generated " $gentop"
          func_mkdir_p "$gentop"
          save_oldobjs=$oldobjs
          oldobjs=
@@ -7951,9 +9146,9 @@ EOF
                esac
              done
              func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
-             oldobjs="$oldobjs $gentop/$newobj"
+             func_append oldobjs " $gentop/$newobj"
              ;;
-           *) oldobjs="$oldobjs $obj" ;;
+           *) func_append oldobjs " $obj" ;;
            esac
          done
        fi
@@ -7963,6 +9158,16 @@ EOF
        len=$func_len_result
        if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
          cmds=$old_archive_cmds
+       elif test -n "$archiver_list_spec"; then
+         func_verbose "using command file archive linking..."
+         for obj in $oldobjs
+         do
+           func_to_tool_file "$obj"
+           $ECHO "$func_to_tool_file_result"
+         done > $output_objdir/$libname.libcmd
+         func_to_tool_file "$output_objdir/$libname.libcmd"
+         oldobjs=" $archiver_list_spec$func_to_tool_file_result"
+         cmds=$old_archive_cmds
        else
          # the command line is too long to link in one step, link in parts
          func_verbose "using piecewise archive linking..."
@@ -8036,7 +9241,7 @@ EOF
       done
       # Quote the link command for shipping.
       relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
-      relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
       if test "$hardcode_automatic" = yes ; then
        relink_command=
       fi
@@ -8059,9 +9264,19 @@ EOF
                eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
                test -z "$libdir" && \
                  func_fatal_error "\`$deplib' is not a valid libtool archive"
-               newdependency_libs="$newdependency_libs $libdir/$name"
+               func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
+               ;;
+             -L*)
+               func_stripname -L '' "$deplib"
+               func_replace_sysroot "$func_stripname_result"
+               func_append newdependency_libs " -L$func_replace_sysroot_result"
                ;;
-             *) newdependency_libs="$newdependency_libs $deplib" ;;
+             -R*)
+               func_stripname -R '' "$deplib"
+               func_replace_sysroot "$func_stripname_result"
+               func_append newdependency_libs " -R$func_replace_sysroot_result"
+               ;;
+             *) func_append newdependency_libs " $deplib" ;;
              esac
            done
            dependency_libs="$newdependency_libs"
@@ -8075,9 +9290,9 @@ EOF
                eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
                test -z "$libdir" && \
                  func_fatal_error "\`$lib' is not a valid libtool archive"
-               newdlfiles="$newdlfiles $libdir/$name"
+               func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
                ;;
-             *) newdlfiles="$newdlfiles $lib" ;;
+             *) func_append newdlfiles " $lib" ;;
              esac
            done
            dlfiles="$newdlfiles"
@@ -8094,7 +9309,7 @@ EOF
                eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
                test -z "$libdir" && \
                  func_fatal_error "\`$lib' is not a valid libtool archive"
-               newdlprefiles="$newdlprefiles $libdir/$name"
+               func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
                ;;
              esac
            done
@@ -8106,7 +9321,7 @@ EOF
                [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
                *) abs=`pwd`"/$lib" ;;
              esac
-             newdlfiles="$newdlfiles $abs"
+             func_append newdlfiles " $abs"
            done
            dlfiles="$newdlfiles"
            newdlprefiles=
@@ -8115,15 +9330,33 @@ EOF
                [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
                *) abs=`pwd`"/$lib" ;;
              esac
-             newdlprefiles="$newdlprefiles $abs"
+             func_append newdlprefiles " $abs"
            done
            dlprefiles="$newdlprefiles"
          fi
          $RM $output
          # place dlname in correct position for cygwin
+         # In fact, it would be nice if we could use this code for all target
+         # systems that can't hard-code library paths into their executables
+         # and that have no shared library path variable independent of PATH,
+         # but it turns out we can't easily determine that from inspecting
+         # libtool variables, so we have to hard-code the OSs to which it
+         # applies here; at the moment, that means platforms that use the PE
+         # object format with DLL files.  See the long comment at the top of
+         # tests/bindir.at for full details.
          tdlname=$dlname
          case $host,$output,$installed,$module,$dlname in
-           *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+           *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
+             # If a -bindir argument was supplied, place the dll there.
+             if test "x$bindir" != x ;
+             then
+               func_relative_path "$install_libdir" "$bindir"
+               tdlname=$func_relative_path_result$dlname
+             else
+               # Otherwise fall back on heuristic.
+               tdlname=../bin/$dlname
+             fi
+             ;;
          esac
          $ECHO > $output "\
 # $outputname - a libtool library file
@@ -8182,7 +9415,7 @@ relink_command=\"$relink_command\""
     exit $EXIT_SUCCESS
 }
 
-{ test "$mode" = link || test "$mode" = relink; } &&
+{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
     func_mode_link ${1+"$@"}
 
 
@@ -8202,9 +9435,9 @@ func_mode_uninstall ()
     for arg
     do
       case $arg in
-      -f) RM="$RM $arg"; rmforce=yes ;;
-      -*) RM="$RM $arg" ;;
-      *) files="$files $arg" ;;
+      -f) func_append RM " $arg"; rmforce=yes ;;
+      -*) func_append RM " $arg" ;;
+      *) func_append files " $arg" ;;
       esac
     done
 
@@ -8213,24 +9446,23 @@ func_mode_uninstall ()
 
     rmdirs=
 
-    origobjdir="$objdir"
     for file in $files; do
       func_dirname "$file" "" "."
       dir="$func_dirname_result"
       if test "X$dir" = X.; then
-       objdir="$origobjdir"
+       odir="$objdir"
       else
-       objdir="$dir/$origobjdir"
+       odir="$dir/$objdir"
       fi
       func_basename "$file"
       name="$func_basename_result"
-      test "$mode" = uninstall && objdir="$dir"
+      test "$opt_mode" = uninstall && odir="$dir"
 
-      # Remember objdir for removal later, being careful to avoid duplicates
-      if test "$mode" = clean; then
+      # Remember odir for removal later, being careful to avoid duplicates
+      if test "$opt_mode" = clean; then
        case " $rmdirs " in
-         *" $objdir "*) ;;
-         *) rmdirs="$rmdirs $objdir" ;;
+         *" $odir "*) ;;
+         *) func_append rmdirs " $odir" ;;
        esac
       fi
 
@@ -8256,18 +9488,17 @@ func_mode_uninstall ()
 
          # Delete the libtool libraries and symlinks.
          for n in $library_names; do
-           rmfiles="$rmfiles $objdir/$n"
+           func_append rmfiles " $odir/$n"
          done
-         test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
+         test -n "$old_library" && func_append rmfiles " $odir/$old_library"
 
-         case "$mode" in
+         case "$opt_mode" in
          clean)
-           case "  $library_names " in
-           # "  " in the beginning catches empty $dlname
+           case " $library_names " in
            *" $dlname "*) ;;
-           *) rmfiles="$rmfiles $objdir/$dlname" ;;
+           *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
            esac
-           test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
+           test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
            ;;
          uninstall)
            if test -n "$library_names"; then
@@ -8295,19 +9526,19 @@ func_mode_uninstall ()
          # Add PIC object to the list of files to remove.
          if test -n "$pic_object" &&
             test "$pic_object" != none; then
-           rmfiles="$rmfiles $dir/$pic_object"
+           func_append rmfiles " $dir/$pic_object"
          fi
 
          # Add non-PIC object to the list of files to remove.
          if test -n "$non_pic_object" &&
             test "$non_pic_object" != none; then
-           rmfiles="$rmfiles $dir/$non_pic_object"
+           func_append rmfiles " $dir/$non_pic_object"
          fi
        fi
        ;;
 
       *)
-       if test "$mode" = clean ; then
+       if test "$opt_mode" = clean ; then
          noexename=$name
          case $file in
          *.exe)
@@ -8317,7 +9548,7 @@ func_mode_uninstall ()
            noexename=$func_stripname_result
            # $file with .exe has already been added to rmfiles,
            # add $file without .exe
-           rmfiles="$rmfiles $file"
+           func_append rmfiles " $file"
            ;;
          esac
          # Do a test to see if this is a libtool program.
@@ -8326,7 +9557,7 @@ func_mode_uninstall ()
              func_ltwrapper_scriptname "$file"
              relink_command=
              func_source $func_ltwrapper_scriptname_result
-             rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
+             func_append rmfiles " $func_ltwrapper_scriptname_result"
            else
              relink_command=
              func_source $dir/$noexename
@@ -8334,12 +9565,12 @@ func_mode_uninstall ()
 
            # note $name still contains .exe if it was in $file originally
            # as does the version of $file that was added into $rmfiles
-           rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
+           func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
            if test "$fast_install" = yes && test -n "$relink_command"; then
-             rmfiles="$rmfiles $objdir/lt-$name"
+             func_append rmfiles " $odir/lt-$name"
            fi
            if test "X$noexename" != "X$name" ; then
-             rmfiles="$rmfiles $objdir/lt-${noexename}.c"
+             func_append rmfiles " $odir/lt-${noexename}.c"
            fi
          fi
        fi
@@ -8347,7 +9578,6 @@ func_mode_uninstall ()
       esac
       func_show_eval "$RM $rmfiles" 'exit_status=1'
     done
-    objdir="$origobjdir"
 
     # Try to remove the ${objdir}s in the directories where we deleted files
     for dir in $rmdirs; do
@@ -8359,16 +9589,16 @@ func_mode_uninstall ()
     exit $exit_status
 }
 
-{ test "$mode" = uninstall || test "$mode" = clean; } &&
+{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
     func_mode_uninstall ${1+"$@"}
 
-test -z "$mode" && {
+test -z "$opt_mode" && {
   help="$generic_help"
   func_fatal_help "you must specify a MODE"
 }
 
 test -z "$exec_cmd" && \
-  func_fatal_help "invalid operation mode \`$mode'"
+  func_fatal_help "invalid operation mode \`$opt_mode'"
 
 if test -n "$exec_cmd"; then
   eval exec "$exec_cmd"
index 3e3d59e7652cb706c147d7212cb98f61b7140a28..2099668376b463c907d7a60edc23c6a95a7ffad2 100644 (file)
@@ -3,6 +3,7 @@
 # please keep this list sorted alphabetically
 #
 ca
+ca@valencia
 cs
 da
 de
@@ -13,6 +14,7 @@ it
 ja
 ko
 nb
+nl
 pl
 pt
 pt_BR
index 65db50a5ea47a1b92816e7daddf0412539d270a7..773cabb1582787bc99ce031d09ad80154f7125f4 100644 (file)
 # List of source files containing translatable strings.
 
-src/glabels.c
-src/glabels-batch.c
-src/window.c
-src/window.h
-src/stock.c
-src/stock.h
-src/ui.h
-src/ui.c
-src/ui-property-bar.h
-src/ui-property-bar.c
-src/ui-sidebar.h
-src/ui-sidebar.c
-src/ui-util.h
-src/ui-util.c
-src/ui-commands.h
-src/ui-commands.c
-src/file.h
+src/bc-backends.c
+src/bc-backends.h
+src/bc-builtin.c
+src/bc-builtin.h
+src/bc-gnubarcode.c
+src/bc-gnubarcode.h
+src/bc-iec16022.c
+src/bc-iec16022.h
+src/bc-iec18004.c
+src/bc-iec18004.h
+src/bc-zint.c
+src/bc-zint.h
+src/builder-util.c
+src/builder-util.h
+src/cairo-ellipse-path.c
+src/cairo-ellipse-path.h
+src/cairo-label-path.c
+src/cairo-label-path.h
+src/cairo-markup-path.c
+src/cairo-markup-path.h
+src/color.c
+src/color.h
+src/color-combo-button.c
+src/color-combo-button.h
+src/color-combo.c
+src/color-combo-color-menu-item.c
+src/color-combo-color-menu-item.h
+src/color-combo.h
+src/color-combo-menu.c
+src/color-combo-menu.h
+src/color-history-model.c
+src/color-history-model.h
+src/color-swatch.c
+src/color-swatch.h
+src/combo-util.c
+src/combo-util.h
+src/critical-error-handler.c
+src/critical-error-handler.h
+src/debug.c
+src/debug.h
+src/field-button.c
+src/field-button.h
+src/field-button-menu.c
+src/field-button-menu.h
 src/file.c
-src/recent.h
-src/recent.c
-src/prefs.c
-src/prefs.h
-src/prefs-model.c
-src/prefs-model.h
-src/prefs-dialog.c
-src/prefs-dialog.h
-src/hig.h
-src/view.c
-src/view.h
-src/view-object.c
-src/view-object.h
-src/view-box.c
-src/view-box.h
-src/view-ellipse.c
-src/view-ellipse.h
-src/view-line.c
-src/view-line.h
-src/view-image.c
-src/view-image.h
-src/view-text.c
-src/view-text.h
-src/view-barcode.c
-src/view-barcode.h
-src/object-editor.c
-src/object-editor.h
-src/object-editor-private.h
+src/file.h
+src/file-util.c
+src/file-util.h
+src/font-combo.c
+src/font-combo.h
+src/font-combo-menu.c
+src/font-combo-menu.h
+src/font-combo-menu-item.c
+src/font-combo-menu-item.h
+src/font-history.c
+src/font-history.h
+src/font-history-model.c
+src/font-history-model.h
+src/font-sample.c
+src/font-sample.h
+src/font-util.c
+src/font-util.h
+src/glabels-batch.c
+src/glabels.c
+src/label-barcode.c
+src/label-barcode.h
+src/label-box.c
+src/label-box.h
+src/label.c
+src/label-ellipse.c
+src/label-ellipse.h
+src/label.h
+src/label-image.c
+src/label-image.h
+src/label-line.c
+src/label-line.h
+src/label-object.c
+src/label-object.h
+src/label-text.c
+src/label-text.h
+src/media-select.c
+src/media-select.h
+src/merge.c
+src/merge.h
+src/merge-evolution.c
+src/merge-evolution.h
+src/merge-init.c
+src/merge-init.h
+src/merge-properties-dialog.c
+src/merge-properties-dialog.h
+src/merge-text.c
+src/merge-text.h
+src/merge-vcard.c
+src/merge-vcard.h
+src/mini-label-preview.c
+src/mini-label-preview.h
+src/mini-preview.c
+src/mini-preview.h
+src/mini-preview-pixbuf.c
+src/mini-preview-pixbuf-cache.c
+src/mini-preview-pixbuf-cache.h
+src/mini-preview-pixbuf.h
+src/new-label-dialog.c
+src/new-label-dialog.h
 src/object-editor-bc-page.c
+src/object-editor.c
 src/object-editor-data-page.c
 src/object-editor-edit-page.c
 src/object-editor-fill-page.c
+src/object-editor.h
 src/object-editor-image-page.c
 src/object-editor-line-page.c
 src/object-editor-lsize-page.c
 src/object-editor-position-page.c
+src/object-editor-private.h
+src/object-editor-shadow-page.c
 src/object-editor-size-page.c
 src/object-editor-text-page.c
-src/merge-properties-dialog.c
-src/merge-properties-dialog.h
+src/pixbuf-cache.c
+src/pixbuf-cache.h
+src/prefs.c
+src/prefs.h
+src/prefs-dialog.c
+src/prefs-dialog.h
+src/prefs-model.c
+src/prefs-model.h
 src/print.c
 src/print.h
 src/print-op.c
+src/print-op-dialog.c
+src/print-op-dialog.h
+src/print-op.h
+src/message-bar.c
+src/message-bar.h
+src/recent.c
+src/recent.h
+src/str-util.c
+src/str-util.h
+src/svg-cache.c
+src/svg-cache.h
 src/template-designer.c
 src/template-designer.h
-src/bc.c
-src/bc.h
-src/bc-gnubarcode.c
-src/bc-gnubarcode.h
-src/bc-postnet.c
-src/bc-postnet.h
-src/label.c
-src/label.h
-src/label-object.c
-src/label-object.h
-src/label-text.c
-src/label-text.h
-src/label-box.c
-src/label-box.h
-src/label-line.c
-src/label-line.h
-src/label-ellipse.c
-src/label-ellipse.h
-src/label-image.c
-src/label-image.h
-src/label-barcode.c
-src/label-barcode.h
-src/xml-label.c
-src/xml-label.h
-src/xml-label-04.c
-src/xml-label-04.h
-src/pixbuf-cache.c
-src/pixbuf-cache.h
-src/base64.c
-src/base64.h
-src/merge.c
-src/merge.h
-src/merge-init.c
-src/merge-init.h
-src/merge-text.c
-src/merge-text.h
-src/merge-evolution.c
+src/template-history.c
+src/template-history.h
+src/template-history-model.c
+src/template-history-model.h
 src/text-node.c
 src/text-node.h
-src/wdgt-print-copies.c
-src/wdgt-print-copies.h
-src/wdgt-print-merge.c
-src/wdgt-print-merge.h
-src/wdgt-media-select.c
-src/wdgt-media-select.h
-src/wdgt-mini-preview.c
-src/wdgt-mini-preview.h
-src/wdgt-rotate-label.c
-src/wdgt-rotate-label.h
+src/ui.c
+src/ui.h
+src/ui-commands.c
+src/ui-commands.h
+src/ui-property-bar.c
+src/ui-property-bar.h
+src/ui-sidebar.c
+src/ui-sidebar.h
+src/ui-util.c
+src/ui-util.h
+src/units-util.c
+src/units-util.h
+src/view.c
+src/view.h
+src/view-barcode.c
+src/view-barcode.h
+src/view-box.c
+src/view-box.h
+src/view-ellipse.c
+src/view-ellipse.h
+src/view-image.c
+src/view-image.h
+src/view-line.c
+src/view-line.h
+src/view-text.c
+src/view-text.h
+src/warning-handler.c
+src/warning-handler.h
 src/wdgt-chain-button.c
 src/wdgt-chain-button.h
-src/util.c
-src/util.h
-src/color.c
-src/color.h
-src/debug.c
-src/debug.h
-src/mygal/color-group.c
-src/mygal/color-group.h
-src/mygal/color-palette.c
-src/mygal/color-palette.h
-src/mygal/e-colors.c
-src/mygal/e-colors.h
-src/mygal/e-util.h
-src/mygal/mygal-combo-box.c
-src/mygal/mygal-combo-box.h
-src/mygal/widget-color-combo.c
-src/mygal/widget-color-combo.h
-src/critical-error-handler.c
-src/warning-handler.c
+src/window.c
+src/window.h
+src/xml-label-04.c
+src/xml-label-04.h
+src/xml-label.c
+src/xml-label.h
 
-libglabels/category.c
-libglabels/category.h
-libglabels/db.c
-libglabels/db.h
-libglabels/enums.h
-libglabels/libglabels.h
+libglabels/lgl-category.c
+libglabels/lgl-category.h
+libglabels/lgl-db.c
+libglabels/lgl-db.h
+libglabels/lgl-paper.c
+libglabels/lgl-paper.h
+libglabels/lgl-str.c
+libglabels/lgl-str.h
+libglabels/lgl-template.c
+libglabels/lgl-template.h
+libglabels/lgl-units.c
+libglabels/lgl-units.h
+libglabels/lgl-xml.c
+libglabels/lgl-xml.h
+libglabels/lgl-xml-category.c
+libglabels/lgl-xml-category.h
+libglabels/lgl-xml-paper.c
+libglabels/lgl-xml-paper.h
+libglabels/lgl-xml-template.c
+libglabels/lgl-xml-template.h
 libglabels/libglabels-private.h
-libglabels/paper.c
-libglabels/paper.h
-libglabels/str.c
-libglabels/str.h
-libglabels/template.c
-libglabels/template.h
-libglabels/xml.c
-libglabels/xml.h
-libglabels/xml-category.c
-libglabels/xml-category.h
-libglabels/xml-paper.c
-libglabels/xml-paper.h
-libglabels/xml-template.c
-libglabels/xml-template.h
 
-data/glade/merge-properties-dialog.glade
-data/glade/new-label-dialog.glade
-data/glade/object-editor.glade
-data/glade/prefs-dialog.glade
-data/glade/print-custom-widget.glade
-data/glade/property-bar.glade
-data/glade/template-designer.glade
-data/glade/wdgt-media-select.glade
-data/glade/wdgt-rotate-label.glade
+[type: gettext/glade]data/ui/merge-properties-dialog.ui
+[type: gettext/glade]data/ui/media-select.ui
+[type: gettext/glade]data/ui/new-label-dialog.ui
+[type: gettext/glade]data/ui/object-editor.ui
+[type: gettext/glade]data/ui/prefs-dialog.ui
+[type: gettext/glade]data/ui/property-bar.ui
+[type: gettext/glade]data/ui/template-designer.ui
+[type: gettext/glade]data/ui/print-op-dialog-custom-widget.ui
 
-data/templates/paper-sizes.xml
-data/templates/categories.xml
-data/templates/avery-iso-templates.xml
-data/templates/avery-other-templates.xml
-data/templates/avery-us-templates.xml
-data/templates/brother-other-templates.xml
-data/templates/dymo-other-templates.xml
-data/templates/misc-iso-templates.xml
-data/templates/misc-other-templates.xml
-data/templates/misc-us-templates.xml
-data/templates/zweckform-iso-templates.xml
+data/schemas/org.gnome.glabels-3.gschema.xml.in.in
 
-data/desktop/glabels.desktop.in
+[type: gettext/ini]data/desktop/glabels-3.0.desktop.in
 
-data/mime/glabels.keys.in
-data/mime/glabels.xml.in
+[type: gettext/xml]data/mime/glabels-3.0.xml.in
 
-barcode-0.98/compat/getopt.c
+[type: gettext/xml]templates/paper-sizes.xml
+[type: gettext/xml]templates/categories.xml
+[type: gettext/xml]templates/ascom-iso-templates.xml
+[type: gettext/xml]templates/avery-us-templates.xml
+[type: gettext/xml]templates/avery-iso-templates.xml
+[type: gettext/xml]templates/avery-other-templates.xml
+[type: gettext/xml]templates/brother-other-templates.xml
+[type: gettext/xml]templates/databecker-iso-templates.xml
+[type: gettext/xml]templates/dataline-iso-templates.xml
+[type: gettext/xml]templates/decadry-iso-templates.xml
+[type: gettext/xml]templates/dymo-other-templates.xml
+[type: gettext/xml]templates/geha-iso-templates.xml
+[type: gettext/xml]templates/hama-iso-templates.xml
+[type: gettext/xml]templates/herma-iso-templates.xml
+[type: gettext/xml]templates/jac-iso-templates.xml
+[type: gettext/xml]templates/maco-us-templates.xml
+[type: gettext/xml]templates/meritline-us-templates.xml
+[type: gettext/xml]templates/misc-us-templates.xml
+[type: gettext/xml]templates/misc-iso-templates.xml
+[type: gettext/xml]templates/misc-other-templates.xml
+[type: gettext/xml]templates/pearl-iso-templates.xml
+[type: gettext/xml]templates/uline-us-templates.xml
+[type: gettext/xml]templates/worldlabel-us-templates.xml
+[type: gettext/xml]templates/zweckform-iso-templates.xml
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
new file mode 100644 (file)
index 0000000..bdb5b80
--- /dev/null
@@ -0,0 +1,3 @@
+# List of source files containing translatable strings that should be ignored.
+
+data/schemas/org.gnome.glabels-3.gschema.xml.in
index 5812736cb8d8a35555c389631b3803af704e344d..1fbf4bec55bdc6a399d2aaf9e57b5c5abec342c7 100644 (file)
--- a/po/ca.po
+++ b/po/ca.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: glabels 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-02-08 11:57+0100\n"
+"POT-Creation-Date: 2010-07-10 00:37-0400\n"
 "PO-Revision-Date: 2009-02-08 22:00+0100\n"
 "Last-Translator: David Planella <david.planella@gmail.com>\n"
 "Language-Team: Catalan <tradgnome@softcatala.org>\n"
@@ -16,1442 +16,1856 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../src/glabels.c:75 ../src/glabels-batch.c:70
-msgid "[FILE...]"
-msgstr "[FITXER...]"
+#: ../src/bc.c:66
+msgid "POSTNET (any)"
+msgstr "POSTNET (qualsevol)"
 
-#: ../src/glabels.c:91
-msgid "- gLabels label designer"
-msgstr "- dissenyador d'etiquetes gLabels"
+#: ../src/bc.c:69
+msgid "POSTNET-5 (ZIP only)"
+msgstr "POSTNET-5 (només codi postal ZIP)"
 
-#: ../src/glabels-batch.c:54
-msgid "set output filename (default=\"output.pdf\")"
-msgstr ""
-"estableix el nom del fitxer de sortida (valor predeterminat = «output.pdf»)"
+#: ../src/bc.c:72
+msgid "POSTNET-9 (ZIP+4)"
+msgstr "POSTNET-9 (codi postal ZIP+4)"
 
-#: ../src/glabels-batch.c:54 ../src/glabels-batch.c:68
-msgid "filename"
-msgstr "nom de fitxer"
+#: ../src/bc.c:75
+msgid "POSTNET-11 (DPBC)"
+msgstr "POSTNET-11 (DPBC)"
 
-#: ../src/glabels-batch.c:56
-msgid "number of sheets (default=1)"
-msgstr "nombre de fulls (valor predeterminat = 1"
+#: ../src/bc.c:80
+msgid "CEPNET"
+msgstr "CEPNET"
 
-#: ../src/glabels-batch.c:56
-msgid "sheets"
-msgstr "fulls"
+#: ../src/bc.c:83
+msgid "EAN (any)"
+msgstr "EAN (qualsevol)"
 
-#: ../src/glabels-batch.c:58
-msgid "number of copies (default=1)"
-msgstr "nombre de còpies (valor predeterminat = 1"
+#: ../src/bc.c:86
+msgid "EAN-8"
+msgstr "EAN-8"
 
-#: ../src/glabels-batch.c:58
-msgid "copies"
-msgstr "còpies"
+#: ../src/bc.c:89
+msgid "EAN-8 +2"
+msgstr "EAN-8 +2"
 
-#: ../src/glabels-batch.c:60
-msgid "first label on first sheet (default=1)"
-msgstr "la primera etiqueta al primer full"
+#: ../src/bc.c:92
+msgid "EAN-8 +5"
+msgstr "EAN-8 +5"
 
-#: ../src/glabels-batch.c:60
-msgid "first"
-msgstr "primer"
+#: ../src/bc.c:95
+msgid "EAN-13"
+msgstr "EAN-13"
 
-#: ../src/glabels-batch.c:62 ../data/builder/print-custom-widget.glade.h:6
-msgid "print outlines (to test printer alignment)"
-msgstr "imprimeix els contorns (per a comprovar l'alineació de la impressora)"
+#: ../src/bc.c:98
+msgid "EAN-13 +2"
+msgstr "EAN-13 +2"
 
-#: ../src/glabels-batch.c:64 ../data/builder/print-custom-widget.glade.h:5
-msgid "print in reverse (i.e. a mirror image)"
-msgstr "imprimeix invertit (és a dir, com una imatge reflectida en un mirall)"
+#: ../src/bc.c:101
+msgid "EAN-13 +5"
+msgstr "EAN-13 +5"
 
-#: ../src/glabels-batch.c:66 ../data/builder/print-custom-widget.glade.h:4
-msgid "print crop marks"
-msgstr "imprimeix les marques de tall"
+#: ../src/bc.c:104
+msgid "UPC (UPC-A or UPC-E)"
+msgstr "UPC (UPC-A o UPC-E)"
 
-#: ../src/glabels-batch.c:68
-msgid "input file for merging"
-msgstr "fitxer d'entrada per a fusionar"
+#: ../src/bc.c:107 ../src/bc.c:348
+msgid "UPC-A"
+msgstr "UPC-A"
 
-#: ../src/glabels-batch.c:96
-msgid "- batch process gLabels label files"
-msgstr "- processa en lot fitxers d'etiqueta del gLabels"
+#: ../src/bc.c:110
+msgid "UPC-A +2"
+msgstr "UPC-A +2"
 
-#: ../src/glabels-batch.c:142
-#, c-format
-msgid "cannot perform document merge with glabels file %s\n"
-msgstr "no es realitzar la fusió del document amb el fitxer %s del gLabels\n"
+#: ../src/bc.c:113
+msgid "UPC-A +5"
+msgstr "UPC-A +5"
 
-#: ../src/glabels-batch.c:164
-#, c-format
-msgid "cannot open glabels file %s\n"
-msgstr "no es pot obrir el fitxer del gLabels %s\n"
+#: ../src/bc.c:116 ../src/bc.c:351
+msgid "UPC-E"
+msgstr "UPC-E"
 
-#: ../src/window.c:259
-msgid "(none) - gLabels"
-msgstr "(cap) - gLabels"
+#: ../src/bc.c:119
+msgid "UPC-E +2"
+msgstr "UPC-E +2"
 
-#: ../src/window.c:432
-msgid "(modified)"
-msgstr "(modificat)"
+#: ../src/bc.c:122
+msgid "UPC-E +5"
+msgstr "UPC-E +5"
 
-#: ../src/stock.c:72
-msgid "_Select Mode"
-msgstr "Mode de _selecció"
+#: ../src/bc.c:125 ../src/bc.c:288
+msgid "ISBN"
+msgstr "ISBN"
 
-#: ../src/stock.c:73
-msgid "_Text"
-msgstr "_Text"
+#: ../src/bc.c:128
+msgid "ISBN +5"
+msgstr "ISBN +5"
 
-#: ../src/stock.c:74
-msgid "_Line"
-msgstr "_Línia"
+#: ../src/bc.c:131 ../src/bc.c:204
+msgid "Code 39"
+msgstr "Codi 39"
 
-#: ../src/stock.c:75
-msgid "_Box"
-msgstr "_Quadre"
+#: ../src/bc.c:134 ../src/bc.c:216
+msgid "Code 128"
+msgstr "Codi 128"
 
-#: ../src/stock.c:76
-msgid "_Ellipse"
-msgstr "_El·lipse"
+#: ../src/bc.c:137
+msgid "Code 128C"
+msgstr "Codi 128C"
 
-#: ../src/stock.c:77
-msgid "_Image"
-msgstr "_Imatge"
+#: ../src/bc.c:140
+msgid "Code 128B"
+msgstr "Codi 128B"
 
-#: ../src/stock.c:78
-msgid "Bar_code"
-msgstr "_Codi de barres"
+#: ../src/bc.c:143 ../src/bc.c:285
+msgid "Interleaved 2 of 5"
+msgstr "Interfoliat 2 de 5"
 
-#: ../src/stock.c:79
-msgid "_Merge Properties"
-msgstr "Propietats de la _fusió"
+#: ../src/bc.c:146 ../src/bc.c:180
+msgid "Codabar"
+msgstr "Codabar"
 
-#: ../src/stock.c:80
-msgid "Object _Properties"
-msgstr "_Propietats de l'objecte"
+#: ../src/bc.c:149
+msgid "MSI"
+msgstr "MSI"
 
-#: ../src/stock.c:81
-msgid "Bring to _Front"
-msgstr "Porta al p_rimer pla"
+#: ../src/bc.c:152
+msgid "Plessey"
+msgstr "Plessey"
 
-#: ../src/stock.c:82
-msgid "Send to _Back"
-msgstr "Envia al _fons"
+#: ../src/bc.c:155 ../src/bc.c:213
+#, fuzzy
+msgid "Code 93"
+msgstr "Codi 39"
 
-#: ../src/stock.c:83
-msgid "Rotate _Left"
-msgstr "Gira a l'_esquerra"
+#: ../src/bc.c:162
+msgid "Australia Post Standard"
+msgstr ""
 
-#: ../src/stock.c:84
-msgid "Rotate _Right"
-msgstr "Gira a la _dreta"
+#: ../src/bc.c:165
+msgid "Australia Post Reply Paid"
+msgstr ""
 
-#: ../src/stock.c:85
-msgid "Flip _Horizontally"
-msgstr "Capgira _horitzontalment"
+#: ../src/bc.c:168
+msgid "Australia Post Route Code"
+msgstr ""
 
-#: ../src/stock.c:86
-msgid "Flip _Vertically"
-msgstr "Capgira _verticalment"
+#: ../src/bc.c:171
+msgid "Australia Post Redirect"
+msgstr ""
 
-#: ../src/stock.c:87
-msgid "_Lefts"
-msgstr "_Esquerres"
+#: ../src/bc.c:174
+msgid "Aztec Code"
+msgstr ""
 
-#: ../src/stock.c:88
-msgid "_Rights"
-msgstr "_Dretes"
+#: ../src/bc.c:177
+msgid "Aztec Rune"
+msgstr ""
 
-#: ../src/stock.c:89
-msgid "_Centers"
-msgstr "_Centres"
+#: ../src/bc.c:183
+#, fuzzy
+msgid "Code One"
+msgstr "Codi 39"
 
-#: ../src/stock.c:90
-msgid "_Tops"
-msgstr "Parts _superiors"
+#: ../src/bc.c:186
+#, fuzzy
+msgid "Code 11"
+msgstr "Codi 128"
 
-#: ../src/stock.c:91
-msgid "Bottoms"
-msgstr "Parts inferiors"
+#: ../src/bc.c:189
+#, fuzzy
+msgid "Code 16K"
+msgstr "Codi 128"
 
-#: ../src/stock.c:92
-msgid "Centers"
-msgstr "Centres"
+#: ../src/bc.c:192
+msgid "Code 2 of 5 Matrix"
+msgstr ""
 
-#: ../src/stock.c:93 ../src/stock.c:94
-msgid "Label Ce_nter"
-msgstr "Ce_ntre de l'etiqueta"
+#: ../src/bc.c:195
+msgid "Code 2 of 5 IATA"
+msgstr ""
 
-#: ../src/stock.c:95 ../data/builder/property-bar.glade.h:3
-msgid "Fill color"
-msgstr "Color de l'emplenat"
+#: ../src/bc.c:198
+msgid "Code 2 of 5 Data Logic"
+msgstr ""
 
-#: ../src/stock.c:96 ../data/builder/property-bar.glade.h:8
-msgid "Line color"
-msgstr "Color de la línia"
+#: ../src/bc.c:201
+msgid "Code 32 (Italian Pharmacode)"
+msgstr ""
 
-#: ../src/stock.c:97 ../src/stock.c:99
-msgid "Linked"
-msgstr "Enllaçat"
+#: ../src/bc.c:207
+#, fuzzy
+msgid "Code 39 Extended"
+msgstr "Codi 39"
 
-#: ../src/stock.c:98 ../src/stock.c:100
-msgid "Not Linked"
-msgstr "Sense enllaçar"
+#: ../src/bc.c:210
+#, fuzzy
+msgid "Code 49"
+msgstr "Codi 39"
 
-#. Menu entries.
-#: ../src/ui.c:93
-msgid "_File"
-msgstr "_Fitxer"
+#: ../src/bc.c:219
+msgid "Code 128 (Mode C supression)"
+msgstr ""
 
-#: ../src/ui.c:94
-msgid "Open Recent _Files"
-msgstr "Obre els fitxers _recents"
+#: ../src/bc.c:222
+msgid "DAFT Code"
+msgstr ""
 
-#: ../src/ui.c:95
-msgid "_Edit"
-msgstr "_Edita"
+#: ../src/bc.c:225
+#, fuzzy
+msgid "Data Matrix"
+msgstr "IEC16022 (DataMatrix)"
 
-#: ../src/ui.c:96
-msgid "_View"
-msgstr "_Visualitza"
+#: ../src/bc.c:228
+msgid "Deutsche Post Leitcode"
+msgstr ""
 
-#: ../src/ui.c:97
-msgid "Customize Main Toolbar"
-msgstr "Personalitza la barra d'eines principal"
+#: ../src/bc.c:231
+msgid "Deutsche Post Identcode"
+msgstr ""
 
-#: ../src/ui.c:98
-msgid "Customize Drawing Toolbar"
-msgstr "Personalitza la barra d'eines de dibuix"
+#: ../src/bc.c:234
+msgid "Dutch Post KIX Code"
+msgstr ""
 
-#: ../src/ui.c:99
-msgid "Customize Properties Toolbar"
-msgstr "Personalitza la barra d'eines de les propietats"
+#: ../src/bc.c:237
+msgid "European Article Number (EAN)"
+msgstr ""
 
-#: ../src/ui.c:100
-msgid "_Objects"
-msgstr "_Objectes"
+#: ../src/bc.c:240
+msgid "Grid Matrix"
+msgstr ""
 
-#: ../src/ui.c:101
-msgid "_Create"
-msgstr "_Crea"
+#: ../src/bc.c:243
+msgid "GS1-128"
+msgstr ""
 
-#: ../src/ui.c:102
-msgid "_Order"
-msgstr "_Ordena"
+#: ../src/bc.c:246
+msgid "GS1 DataBar-14"
+msgstr ""
 
-#: ../src/ui.c:103
-msgid "_Rotate/Flip"
-msgstr "_Gira/Capgira"
+#: ../src/bc.c:255
+msgid "GS1 DataBar-14 Stacked"
+msgstr ""
 
-#: ../src/ui.c:104
-msgid "Align _Horizontal"
-msgstr "Alinea _horitzontalment"
+#: ../src/bc.c:258
+msgid "GS1 DataBar-14 Stacked Omni."
+msgstr ""
 
-#: ../src/ui.c:105
-msgid "Align _Vertical"
-msgstr "Alinea _verticalment"
+#: ../src/bc.c:261
+msgid "GS1 DataBar Extended Stacked"
+msgstr ""
 
-#: ../src/ui.c:106
-msgid "_Help"
-msgstr "A_juda"
+#: ../src/bc.c:264
+#, fuzzy
+msgid "HIBC Code 128"
+msgstr "Codi 128"
 
-#. Popup entries.
-#: ../src/ui.c:109 ../src/ui.c:110
-msgid "Context Menu"
-msgstr "Menú contextual"
+#: ../src/bc.c:267
+#, fuzzy
+msgid "HIBC Code 39"
+msgstr "Codi 39"
 
-#: ../src/ui.c:115
-msgid "_New"
-msgstr "_Nou"
+#: ../src/bc.c:270
+#, fuzzy
+msgid "HIBC Data Matrix"
+msgstr "IEC16022 (DataMatrix)"
 
-#: ../src/ui.c:117
-msgid "Create a new file"
-msgstr "Crea un fitxer nou"
+#: ../src/bc.c:273
+msgid "HIBC QR Code"
+msgstr ""
 
-#: ../src/ui.c:122
-msgid "_Open..."
-msgstr "_Obre..."
+#: ../src/bc.c:276
+msgid "HIBC PDF417"
+msgstr ""
 
-#: ../src/ui.c:124
-msgid "Open a file"
-msgstr "Obre un fitxer"
-
-#: ../src/ui.c:129
-msgid "_Save"
-msgstr "_Desa"
-
-#: ../src/ui.c:131
-msgid "Save current file"
-msgstr "Desa el fitxer actual"
+#: ../src/bc.c:279
+msgid "HIBC Micro PDF417"
+msgstr ""
 
-#: ../src/ui.c:136
-msgid "Save _As..."
-msgstr "_Anomena i desa..."
+#: ../src/bc.c:282
+msgid "HIBC Aztec Code"
+msgstr ""
 
-#: ../src/ui.c:138
-msgid "Save the current file to a different name"
-msgstr "Desa el fitxer actual amb un nom diferent"
+#: ../src/bc.c:291
+msgid "ITF-14"
+msgstr ""
 
-#: ../src/ui.c:143
-msgid "_Print..."
-msgstr "_Imprimeix..."
+#: ../src/bc.c:294
+msgid "Japanese Postal"
+msgstr ""
 
-#: ../src/ui.c:145
-msgid "Print the current file"
-msgstr "Imprimeix el fitxer actual"
+#: ../src/bc.c:297
+msgid "Korean Postal"
+msgstr ""
 
-#: ../src/ui.c:150
-msgid "Properties..."
-msgstr "Propietats..."
+#: ../src/bc.c:300
+msgid "LOGMARS"
+msgstr ""
 
-#: ../src/ui.c:152
-msgid "Modify document properties"
-msgstr "Modifica les propietats del document"
+#: ../src/bc.c:303
+msgid "Micro PDF417"
+msgstr ""
 
-#: ../src/ui.c:157
-msgid "Template _Designer..."
-msgstr "Dissen_yador de plantilles..."
+#: ../src/bc.c:306
+msgid "Micro QR Code"
+msgstr ""
 
-#: ../src/ui.c:159
-msgid "Create a custom template"
-msgstr "Crea una plantilla personalitzada"
+#: ../src/bc.c:309
+#, fuzzy
+msgid "MSI Plessey"
+msgstr "Plessey"
 
-#: ../src/ui.c:164
-msgid "_Close"
-msgstr "_Tanca"
+#: ../src/bc.c:312
+msgid "NVE-18"
+msgstr ""
 
-#: ../src/ui.c:166
-msgid "Close the current file"
-msgstr "Tanca el fitxer actual"
+#: ../src/bc.c:315
+msgid "PDF417"
+msgstr ""
 
-#: ../src/ui.c:171
-msgid "_Quit"
-msgstr "_Surt"
+#: ../src/bc.c:318
+msgid "PDF417 Truncated"
+msgstr ""
 
-#: ../src/ui.c:173
-msgid "Quit the program"
-msgstr "Surt del programa"
+#: ../src/bc.c:321
+#, fuzzy
+msgid "PLANET"
+msgstr "CEPNET"
 
-#: ../src/ui.c:180
-msgid "Cut"
-msgstr "Retalla"
+#: ../src/bc.c:324
+#, fuzzy
+msgid "PostNet"
+msgstr "Enganxa"
 
-#: ../src/ui.c:182
-msgid "Cut the selection"
-msgstr "Retalla la selecció"
+#: ../src/bc.c:327
+#, fuzzy
+msgid "Pharmacode"
+msgstr "Codi de barres"
 
-#: ../src/ui.c:187
-msgid "Copy"
-msgstr "Copia"
+#: ../src/bc.c:330
+msgid "Pharmacode 2-track"
+msgstr ""
 
-#: ../src/ui.c:189
-msgid "Copy the selection"
-msgstr "Copia la selecció"
+#: ../src/bc.c:333
+msgid "Pharmazentral Nummer (PZN)"
+msgstr ""
 
-#: ../src/ui.c:194
-msgid "Paste"
-msgstr "Enganxa"
+#: ../src/bc.c:336
+msgid "QR Code"
+msgstr ""
 
-#: ../src/ui.c:196
-msgid "Paste the clipboard"
-msgstr "Enganxa el contingut del porta-retalls"
+#: ../src/bc.c:339
+msgid "Royal Mail 4-State"
+msgstr ""
 
-#: ../src/ui.c:201
-msgid "Delete"
+#: ../src/bc.c:342
+#, fuzzy
+msgid "Telepen"
 msgstr "Suprimeix"
 
-#: ../src/ui.c:203
-msgid "Delete the selected objects"
-msgstr "Suprimeix els objectes seleccionats"
+#: ../src/bc.c:345
+msgid "Telepen Numeric"
+msgstr ""
 
-#: ../src/ui.c:208
-msgid "Select All"
-msgstr "Selecciona-ho tot"
+#: ../src/bc.c:354
+msgid "USPS One Code"
+msgstr ""
 
-#: ../src/ui.c:210
-msgid "Select all objects"
-msgstr "Selecciona tots els objectes"
+#: ../src/bc.c:357
+#, fuzzy
+msgid "UK Plessey"
+msgstr "Plessey"
 
-#: ../src/ui.c:215
-msgid "Un-select All"
-msgstr "No seleccionis res"
+#: ../src/bc.c:364
+msgid "IEC16022 (DataMatrix)"
+msgstr "IEC16022 (DataMatrix)"
 
-#: ../src/ui.c:217
-msgid "Remove all selections"
-msgstr "Desfés totes les seleccions"
+#: ../src/bc.c:371
+msgid "IEC18004 (QRCode)"
+msgstr ""
 
-#: ../src/ui.c:222
-msgid "Preferences"
-msgstr "Preferències"
+#: ../src/color-combo-button.c:198 ../src/color-combo.c:178
+msgid "Default Color"
+msgstr "Color predeterminat"
 
-#: ../src/ui.c:224
-msgid "Configure the application"
-msgstr "Configura l'aplicació"
+#: ../src/color-combo-menu.c:83
+msgid "Dark Red"
+msgstr "Vermell fosc"
 
-#: ../src/ui.c:231
-msgid "Zoom in"
-msgstr "Amplia"
+#: ../src/color-combo-menu.c:84
+msgid "Brown"
+msgstr "Marró"
 
-#: ../src/ui.c:233
-msgid "Increase magnification"
-msgstr "Incrementa l'ampliació"
+#: ../src/color-combo-menu.c:85
+msgid "Dark Goldenrod"
+msgstr "Vara d'or (goldenrod) fosc"
 
-#: ../src/ui.c:238
-msgid "Zoom out"
-msgstr "Redueix"
+#: ../src/color-combo-menu.c:86
+msgid "Dark Green"
+msgstr "Verd fosc"
 
-#: ../src/ui.c:240
-msgid "Decrease magnification"
-msgstr "Redueix l'ampliació"
+#: ../src/color-combo-menu.c:87
+msgid "Dark Cyan"
+msgstr "Cyan fosc"
 
-#: ../src/ui.c:245
-msgid "Zoom 1 to 1"
-msgstr "Amplia a 1:1"
+#: ../src/color-combo-menu.c:88
+msgid "Navy Blue"
+msgstr "Blau ultramarí"
 
-#: ../src/ui.c:247
-msgid "Restore scale to 100%"
-msgstr "Refés l'escala a 100 %"
+#: ../src/color-combo-menu.c:89
+msgid "Dark Violet"
+msgstr "Violeta fosc"
 
-#: ../src/ui.c:252
-msgid "Zoom to fit"
-msgstr "Millor ajust"
+#: ../src/color-combo-menu.c:91
+msgid "Red"
+msgstr "Vermell"
 
-#: ../src/ui.c:254
-msgid "Set scale to fit window"
-msgstr "Estableix l'escala per a encabir-ho a la finestra"
+#: ../src/color-combo-menu.c:92
+msgid "Orange"
+msgstr "Taronja"
 
-#: ../src/ui.c:261
-msgid "Select Mode"
-msgstr "Mode de selecció"
+#: ../src/color-combo-menu.c:93
+msgid "Dark Yellow"
+msgstr "Groc fosc"
 
-#: ../src/ui.c:263
-msgid "Select, move and modify objects"
-msgstr "Seleccioneu, moveu i modifiqueu objectes"
+#: ../src/color-combo-menu.c:94
+msgid "Medium green"
+msgstr "Verd mitjà"
 
-#: ../src/ui.c:268 ../src/view-text.c:494
-#: ../data/builder/object-editor.glade.h:32
-msgid "Text"
-msgstr "Text"
+#: ../src/color-combo-menu.c:95
+msgid "Turquoise"
+msgstr "Turquesa"
 
-#: ../src/ui.c:270
-msgid "Create text object"
-msgstr "Crea un objecte de text"
+#: ../src/color-combo-menu.c:96
+msgid "Blue"
+msgstr "Blau"
 
-#: ../src/ui.c:275
-msgid "Box"
-msgstr "Quadre"
+#: ../src/color-combo-menu.c:97
+msgid "Purple"
+msgstr "Porpra"
 
-#: ../src/ui.c:277
-msgid "Create box/rectangle object"
-msgstr "Crea un objecte quadre/rectangle"
+#: ../src/color-combo-menu.c:99
+msgid "Salmon"
+msgstr "Salmó"
 
-#: ../src/ui.c:282 ../data/builder/object-editor.glade.h:20
-msgid "Line"
-msgstr "Línia"
+#: ../src/color-combo-menu.c:100
+msgid "Gold"
+msgstr "Daurat"
 
-#: ../src/ui.c:284
-msgid "Create line object"
-msgstr "Crea un objecte línia"
+#: ../src/color-combo-menu.c:101
+msgid "Yellow"
+msgstr "Groc"
 
-#: ../src/ui.c:289
-msgid "Ellipse"
-msgstr "El·lipse"
+#: ../src/color-combo-menu.c:102
+msgid "Green"
+msgstr "Verd"
 
-#: ../src/ui.c:291
-msgid "Create ellipse/circle object"
-msgstr "Crea un objecte el·lipse/cercle"
+#: ../src/color-combo-menu.c:103
+msgid "Cyan"
+msgstr "Cyan"
 
-#: ../src/ui.c:296 ../data/builder/object-editor.glade.h:16
-msgid "Image"
-msgstr "Imatge"
+#: ../src/color-combo-menu.c:104
+msgid "SkyBlue"
+msgstr "Blau cel"
 
-#: ../src/ui.c:298
-msgid "Create image object"
-msgstr "Crea un objecte d'imatge"
+#: ../src/color-combo-menu.c:105
+msgid "Violet"
+msgstr "Violeta"
 
-#: ../src/ui.c:303
-msgid "Barcode"
-msgstr "Codi de barres"
+#: ../src/color-combo-menu.c:107
+msgid "Pink"
+msgstr "Rosa"
 
-#: ../src/ui.c:305
-msgid "Create barcode object"
-msgstr "Crea un objecte de codi de barres"
+#: ../src/color-combo-menu.c:108
+msgid "Khaki"
+msgstr "Caqui"
 
-#: ../src/ui.c:310
-msgid "Bring to front"
-msgstr "Porta al primer pla"
+#: ../src/color-combo-menu.c:109
+msgid "Light Yellow"
+msgstr "Groc clar"
 
-#: ../src/ui.c:312
-msgid "Raise object to top"
-msgstr "Alça l'objecte fins al primer pla"
+#: ../src/color-combo-menu.c:110
+msgid "Light Green"
+msgstr "Verd clar"
 
-#: ../src/ui.c:317
-msgid "Send to back"
-msgstr "Porta al fons"
+#: ../src/color-combo-menu.c:111
+msgid "Light Cyan"
+msgstr "Cyan clar"
 
-#: ../src/ui.c:319
-msgid "Lower object to bottom"
-msgstr "Baixa l'objecte fins al fons"
+#: ../src/color-combo-menu.c:112
+msgid "Slate Gray"
+msgstr "Gris de pissarra"
 
-#: ../src/ui.c:324
-msgid "Rotate left"
-msgstr "Gira a l'esquerra"
+#: ../src/color-combo-menu.c:113
+msgid "Thistle"
+msgstr "Calcida"
 
-#: ../src/ui.c:326
-msgid "Rotate object 90 degrees counter-clockwise"
-msgstr ""
-"Gira l'objecte 90 graus en el sentit contrari a les agulles del rellotge"
-
-#: ../src/ui.c:331
-msgid "Rotate right"
-msgstr "Gira a la dreta"
-
-#: ../src/ui.c:333
-msgid "Rotate object 90 degrees clockwise"
-msgstr "Gira l'objecte 90 graus en el sentit de les agulles del rellotge"
-
-#: ../src/ui.c:338
-msgid "Flip horizontally"
-msgstr "Capgira horitzontalment"
-
-#: ../src/ui.c:340
-msgid "Flip object horizontally"
-msgstr "Capgira l'objecte horitzontalment"
-
-#: ../src/ui.c:345
-msgid "Flip vertically"
-msgstr "Capgira verticalment"
-
-#: ../src/ui.c:347
-msgid "Flip object vertically"
-msgstr "Capgira l'objecte verticalment"
-
-#: ../src/ui.c:352
-msgid "Align left"
-msgstr "Alinea a l'esquerra"
-
-#: ../src/ui.c:354
-msgid "Align objects to left edges"
-msgstr "Alinea els objectes a les vores esquerres"
-
-#: ../src/ui.c:359
-msgid "Align right"
-msgstr "Alinea a la dreta"
-
-#: ../src/ui.c:361
-msgid "Align objects to right edges"
-msgstr "Alinea els objectes a les vores dretes"
-
-#: ../src/ui.c:366
-msgid "Align horizontal center"
-msgstr "Alinea als centre horitzontals"
-
-#: ../src/ui.c:368
-msgid "Align objects to horizontal centers"
-msgstr "Alinea els objectes als centres horitzontals"
-
-#: ../src/ui.c:373
-msgid "Align tops"
-msgstr "Alinea a les vores superiors"
-
-#: ../src/ui.c:375
-msgid "Align objects to top edges"
-msgstr "Alinea els objectes a les vores superiors"
-
-#: ../src/ui.c:380
-msgid "Align bottoms"
-msgstr "Alinea a les vores inferiors"
-
-#: ../src/ui.c:382
-msgid "Align objects to bottom edges"
-msgstr "Alinea els objectes a les vores inferiors"
-
-#: ../src/ui.c:387
-msgid "Align vertical center"
-msgstr "Alinea als centre verticals"
-
-#: ../src/ui.c:389
-msgid "Align objects to vertical centers"
-msgstr "Alinea els objectes als centres verticals"
-
-#: ../src/ui.c:394
-msgid "Center horizontally"
-msgstr "Centra horitzontalment"
-
-#: ../src/ui.c:396
-msgid "Center objects to horizontal label center"
-msgstr "Centra els objectes al centre horitzontal de l'etiqueta"
-
-#: ../src/ui.c:401
-msgid "Center vertically"
-msgstr "Centra verticalment"
-
-#: ../src/ui.c:403
-msgid "Center objects to vertical label center"
-msgstr "Centra els objectes al centre vertical de l'etiqueta"
-
-#: ../src/ui.c:408
-msgid "Merge properties"
-msgstr "Propietats de fusió"
-
-#: ../src/ui.c:410
-msgid "Edit merge properties"
-msgstr "Edita les propietats de fusió"
-
-#: ../src/ui.c:417
-msgid "Contents"
-msgstr "Contingut"
-
-#: ../src/ui.c:419
-msgid "Open glabels manual"
-msgstr "Obre el manual del gLabels"
-
-#: ../src/ui.c:424
-msgid "About..."
-msgstr "Quant a..."
-
-#: ../src/ui.c:426
-msgid "About glabels"
-msgstr "Quant al gLabels"
-
-#: ../src/ui.c:436
-msgid "Property toolbar"
-msgstr "Barra d'eines de les propietats"
-
-#: ../src/ui.c:438
-msgid "Change the visibility of the property toolbar in the current window"
-msgstr ""
-"Canvia la visibilitat de la barra d'eines de les propietats a la finestra "
-"actual"
-
-#: ../src/ui.c:444 ../src/ui.c:489 ../src/ui.c:497
-msgid "Show tooltips"
-msgstr "Mostra els indicadors de funció"
-
-#: ../src/ui.c:446
-msgid "Show tooltips for property toolbar"
-msgstr "Mostra els indicadors de funció a la barra de les propietats"
-
-#: ../src/ui.c:452
-msgid "Grid"
-msgstr "Graella"
-
-#: ../src/ui.c:454
-msgid "Change the visibility of the grid in the current window"
-msgstr "Canvia la visibilitat de la graella a la finestra actual"
-
-#: ../src/ui.c:460
-msgid "Markup"
-msgstr "Marques"
-
-#: ../src/ui.c:462
-msgid "Change the visibility of markup lines in the current window"
-msgstr "Canvia la visibilitat de les línies de marca a la finestra actual"
-
-#: ../src/ui.c:473
-msgid "Main toolbar"
-msgstr "Barra d'eines principal"
-
-#: ../src/ui.c:475
-msgid "Change the visibility of the main toolbar in the current window"
-msgstr ""
-"Canvia la visibilitat de la barra d'eines principal a la finestra actual"
-
-#: ../src/ui.c:481
-msgid "Drawing toolbar"
-msgstr "Barra d'eines de dibuix"
-
-#: ../src/ui.c:483
-msgid "Change the visibility of the drawing toolbar in the current window"
-msgstr ""
-"Canvia la visibilitat de la barra d'eines de dibuix a la finestra actual"
-
-#: ../src/ui.c:491
-msgid "Show tooltips for main toolbar"
-msgstr "Mostra els indicadors de funció a la barra principal"
-
-#: ../src/ui.c:499
-msgid "Show tooltips for drawing toolbar"
-msgstr "Mostra els indicadors de funció a la barra de dibuix"
-
-#: ../src/ui-property-bar.c:280 ../src/prefs-dialog.c:328
-#: ../src/object-editor-bc-page.c:93 ../src/object-editor-text-page.c:93
-#: ../src/object-editor-shadow-page.c:93
-msgid "Default"
-msgstr "Predeterminat"
-
-#: ../src/ui-property-bar.c:292 ../src/prefs-dialog.c:334
-#: ../src/object-editor-fill-page.c:79
-msgid "No Fill"
-msgstr "Sense emplenament"
+#: ../src/color-combo-menu.c:115
+msgid "White"
+msgstr "Blanc"
 
-#: ../src/ui-property-bar.c:304 ../src/prefs-dialog.c:331
-#: ../src/object-editor-line-page.c:81
-msgid "No Line"
-msgstr "Sense línia"
+#: ../src/color-combo-menu.c:117
+#, no-c-format
+msgid "10% Gray"
+msgstr "10% Gris"
 
-#: ../src/ui-sidebar.c:152
-msgid "Object properties"
-msgstr "Propietats de l'objecte"
+#: ../src/color-combo-menu.c:119
+#, no-c-format
+msgid "25% Gray"
+msgstr "25% Gris"
 
-#: ../src/ui-commands.c:1084
-msgid "Glabels includes contributions from:"
-msgstr "El gLabels inclou col·laboracions de:"
+#: ../src/color-combo-menu.c:121
+#, no-c-format
+msgid "40% Gray"
+msgstr "40% Gris"
 
-#: ../src/ui-commands.c:1090
-msgid "See the file AUTHORS for additional credits,"
-msgstr "Consulteu el fitxer AUTHORS per a veure els crèdits addicionals"
+#: ../src/color-combo-menu.c:123
+#, no-c-format
+msgid "50% Gray"
+msgstr "50% Gris"
 
-#: ../src/ui-commands.c:1091
-msgid "or visit http://glabels.sourceforge.net/"
-msgstr "o aneu a http://glabels.sourceforge.net/"
+#: ../src/color-combo-menu.c:125
+#, no-c-format
+msgid "60% Gray"
+msgstr "60% Gris"
 
-#: ../src/ui-commands.c:1103
-msgid "A label and business card creation program.\n"
-msgstr "Un programa de creació d'etiquetes i de targetes de visita.\n"
+#: ../src/color-combo-menu.c:126
+msgid "Black"
+msgstr "Negre"
 
-#: ../src/ui-commands.c:1107
-msgid "translator-credits"
-msgstr "David Planella <david.planella@gmail.com>"
+#: ../src/color-combo-menu.c:254 ../src/color-combo-menu.c:373
+msgid "Custom Color"
+msgstr "Color personalitzat"
 
-#: ../src/ui-commands.c:1110
-msgid ""
-"Glabels is free software; you can redistribute it and/or modify it\n"
-"under the terms of the GNU General Public License as published by\n"
-"the Free Software Foundation; either version 2 of the License, or\n"
-"(at your option) any later version.\n"
-"\n"
-"This program is distributed in the hope that it will be useful, but\n"
-"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See\n"
-"the GNU General Public License for more details.\n"
-msgstr ""
-"El gLabels és programari lliure; podeu redistribuir-lo i/o modificar-lo \n"
-"sota els termes de la Llicència Pública General GNU tal i com ha estat \n"
-"publicada per la Free Software Foundation; ja sigui la versió 2 de la \n"
-"Llicència o (si ho preferiu) qualsevol versió posterior.\n"
-"\n"
-"El gLabels es distribueix amb l'expectativa que serà útil, però SENSE \n"
-"CAP GARANTIA; fins i tot sense la garantia implícita de COMERCIABILITAT o \n"
-"ADEQUACIÓ PER A UN PROPÒSIT PARTICULAR.  Vegeu la Llicència Pública "
-"General \n"
-"GNU per a obtenir-ne més detalls.\n"
+#: ../src/color-combo-menu.c:319
+#, c-format
+msgid "Custom Color #%u"
+msgstr "Color personalitzat núm. %u"
 
-#: ../src/ui-commands.c:1136
-msgid "glabels"
-msgstr "gLabels"
+#: ../src/critical-error-handler.c:70
+msgid "gLabels Fatal Error!"
+msgstr "S'ha produït un error fatal del gLabels"
 
-#: ../src/file.c:91
+#: ../src/file.c:84
 msgid "New Label or Card"
 msgstr "Etiqueta o targeta nova"
 
-#: ../src/file.c:191
+#: ../src/file.c:175 ../src/label.c:587 ../src/label.c:631
 msgid "Label properties"
 msgstr "Propietats de l'etiqueta"
 
-#: ../src/file.c:292 ../src/file.c:578
+#: ../src/file.c:267 ../src/file.c:557
 msgid "All files"
 msgstr "Tots els fitxers"
 
-#: ../src/file.c:297 ../src/file.c:583
+#: ../src/file.c:272 ../src/file.c:562
 msgid "gLabels documents"
 msgstr "Documents del gLabel"
 
-#: ../src/file.c:343 ../src/file.c:640
+#: ../src/file.c:319 ../src/file.c:620
 msgid "Empty file name selection"
 msgstr "Selecció d'un nom de fitxer buit"
 
-#: ../src/file.c:346 ../src/file.c:362
+#: ../src/file.c:322 ../src/file.c:338
 msgid "Please select a file or supply a valid file name"
 msgstr "Seleccioneu un fitxer o introduïu un nom de fitxer vàlid"
 
-#: ../src/file.c:359
+#: ../src/file.c:335
 msgid "File does not exist"
 msgstr "El fitxer no existeix"
 
-#: ../src/file.c:433
+#: ../src/file.c:410
 #, c-format
 msgid "Could not open file \"%s\""
 msgstr "No s'ha pogut obrir el fitxer «%s»"
 
-#: ../src/file.c:436
+#: ../src/file.c:413
 msgid "Not a supported file format"
 msgstr "No és un format de fitxer admès"
 
-#: ../src/file.c:513 ../src/file.c:690
+#: ../src/file.c:491 ../src/file.c:670
 #, c-format
 msgid "Could not save file \"%s\""
 msgstr "No s'ha pogut desar el fitxer «%s»"
 
-#: ../src/file.c:517 ../src/file.c:694
+#: ../src/file.c:495 ../src/file.c:674
 msgid "Error encountered during save.  The file is still not saved."
 msgstr "S'ha produït un error en desar. El fitxer no s'ha desat encara."
 
-#: ../src/file.c:556
+#: ../src/file.c:535
 #, c-format
 msgid "Save \"%s\" as"
 msgstr "Desa «%s» com a"
 
-#: ../src/file.c:643
+#: ../src/file.c:623
 msgid "Please supply a valid file name"
 msgstr "Introduïu un nom de fitxer vàlid"
 
-#: ../src/file.c:664
+#: ../src/file.c:644
 #, c-format
 msgid "Overwrite file \"%s\"?"
 msgstr "Voleu sobreescriure el fitxer «%s»?"
 
-#: ../src/file.c:668
+#: ../src/file.c:648
 msgid "File already exists."
 msgstr "El fitxer ja existeix."
 
-#: ../src/file.c:764
+#: ../src/file.c:744
 #, c-format
 msgid "Save changes to document \"%s\" before closing?"
 msgstr "Voleu desar els canvis al document «%s» abans de tancar-lo?"
 
-#: ../src/file.c:768
+#: ../src/file.c:748
 msgid "Your changes will be lost if you don't save them."
 msgstr "Es perdran els vostres canvis si no els deseu."
 
-#: ../src/file.c:771
+#: ../src/file.c:751
 msgid "Close without saving"
 msgstr "Tanca sense desar"
 
-#. Should not happen
-#: ../src/prefs.c:159 ../src/prefs.c:166
-#: ../data/builder/object-editor.glade.h:43
-#: ../data/builder/prefs-dialog.glade.h:22
-msgid "points"
-msgstr "punts"
+#: ../src/font-combo-menu.c:137
+#, fuzzy
+msgid "Recent fonts"
+msgstr "Plantilles recents"
 
-#: ../src/prefs.c:161 ../data/builder/object-editor.glade.h:42
-#: ../data/builder/template-designer.glade.h:64
-msgid "inches"
-msgstr "polzades"
+#: ../src/font-combo-menu.c:152
+msgid "Proportional fonts"
+msgstr ""
 
-#: ../src/prefs.c:163
-msgid "mm"
-msgstr "mm"
+#: ../src/font-combo-menu.c:160
+msgid "Fixed-width fonts"
+msgstr ""
 
-#: ../src/prefs-dialog.c:167 ../data/builder/prefs-dialog.glade.h:21
-msgid "gLabels Preferences"
-msgstr "Preferències del gLabels"
+#: ../src/font-combo-menu.c:168
+#, fuzzy
+msgid "All fonts"
+msgstr "Tots els fitxers"
 
-#. Build editor.
-#: ../src/view-box.c:175
-msgid "Box object properties"
-msgstr "Propietats de l'objecte quadre"
+#.
+#. * Allow text samples to be localized.
+#. *
+#. * FIXME: if we could extract enough meta information from the fonts
+#. * themselves, perhaps rather than setting these globally for the
+#. * current locale, they could be unique to each font family.
+#.
+#: ../src/font-combo-menu-item.c:132
+msgctxt "Short sample text"
+msgid "Aa"
+msgstr ""
 
-#. Build editor.
-#: ../src/view-ellipse.c:175
-msgid "Ellipse object properties"
-msgstr "Propietats de l'objecte el·lipse"
+#: ../src/font-combo-menu-item.c:134
+msgctxt "Lower case sample text"
+msgid "abcdefghijklmnopqrstuvwxyz"
+msgstr ""
 
-#. Build editor.
-#: ../src/view-line.c:174
-msgid "Line object properties"
-msgstr "Propietats de l'objecte línia"
+#: ../src/font-combo-menu-item.c:136
+msgctxt "Upper case sample text"
+msgid "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr ""
 
-#. Build editor.
-#: ../src/view-image.c:174
-msgid "Image object properties"
-msgstr "Propietats de l'objecte imatge"
+#: ../src/font-combo-menu-item.c:138
+msgctxt "Numbers and special characters sample text"
+msgid "0123456789 .:,;(*!?)"
+msgstr ""
 
-#. Build editor.
-#: ../src/view-text.c:178
-msgid "Text object properties"
-msgstr "Propietats de l'objecte text"
+#: ../src/font-combo-menu-item.c:157
+msgid "Sample text"
+msgstr ""
 
-#. Build editor.
-#: ../src/view-barcode.c:174
-msgid "Barcode object properties"
-msgstr "Propietats de l'objecte codi de barres"
+#: ../src/glabels-batch.c:53
+msgid "set output filename (default=\"output.pdf\")"
+msgstr ""
+"estableix el nom del fitxer de sortida (valor predeterminat = «output.pdf»)"
 
-#: ../src/object-editor-image-page.c:267
-msgid "All Files"
-msgstr "Tots els fitxers"
+#: ../src/glabels-batch.c:53 ../src/glabels-batch.c:67
+msgid "filename"
+msgstr "nom de fitxer"
 
-#: ../src/object-editor-image-page.c:272
-msgid "All Images"
-msgstr "Totes les imatges"
+#: ../src/glabels-batch.c:55
+msgid "number of sheets (default=1)"
+msgstr "nombre de fulls (valor predeterminat = 1"
 
-#: ../src/object-editor-image-page.c:287
-#, c-format
-msgid "%s (*.%s)"
-msgstr "%s (*.%s)"
+#: ../src/glabels-batch.c:55
+msgid "sheets"
+msgstr "fulls"
 
-#: ../src/merge-properties-dialog.c:271
-msgid "Merge Properties"
-msgstr "Propietats de la fusió"
+#: ../src/glabels-batch.c:57
+msgid "number of copies (default=1)"
+msgstr "nombre de còpies (valor predeterminat = 1"
 
-#: ../src/merge-properties-dialog.c:297 ../src/merge-properties-dialog.c:405
-msgid "Select merge-database source"
-msgstr "Seleccioneu la font de la base de dades de la fusió"
+#: ../src/glabels-batch.c:57
+msgid "copies"
+msgstr "còpies"
 
-#: ../src/merge-properties-dialog.c:306 ../src/merge-properties-dialog.c:425
-msgid "N/A"
-msgstr "No disponible"
+#: ../src/glabels-batch.c:59
+msgid "first label on first sheet (default=1)"
+msgstr "la primera etiqueta al primer full"
 
-#: ../src/merge-properties-dialog.c:332
-msgid "Select"
-msgstr "Seleccionat"
+#: ../src/glabels-batch.c:59
+msgid "first"
+msgstr "primer"
 
-#: ../src/merge-properties-dialog.c:340
-msgid "Record/Field"
-msgstr "Registre/camp"
+#: ../src/glabels-batch.c:61 ../data/ui/print-op-dialog-custom-widget.ui.h:13
+msgid "print outlines (to test printer alignment)"
+msgstr "imprimeix els contorns (per a comprovar l'alineació de la impressora)"
 
-#: ../src/merge-properties-dialog.c:348
-#: ../data/builder/object-editor.glade.h:10
-msgid "Data"
-msgstr "Dades"
+#: ../src/glabels-batch.c:63 ../data/ui/print-op-dialog-custom-widget.ui.h:12
+msgid "print in reverse (i.e. a mirror image)"
+msgstr "imprimeix invertit (és a dir, com una imatge reflectida en un mirall)"
 
-#: ../src/merge-properties-dialog.c:418
-msgid "Fixed"
-msgstr "Fixe"
+#: ../src/glabels-batch.c:65 ../data/ui/print-op-dialog-custom-widget.ui.h:11
+msgid "print crop marks"
+msgstr "imprimeix les marques de tall"
 
-#. ===================================================================
-#: ../src/print-op.c:242 ../src/wdgt-print-copies.c:171
-#: ../data/templates/misc-iso-templates.xml.h:34
-msgid "Labels"
-msgstr "Etiquetes"
+#: ../src/glabels-batch.c:67
+msgid "input file for merging"
+msgstr "fitxer d'entrada per a fusionar"
 
-#: ../src/template-designer.c:411
-msgid "gLabels Template Designer"
-msgstr "Dissenyador de plantilles del gLabels"
+#: ../src/glabels-batch.c:69 ../src/glabels.c:64
+msgid "[FILE...]"
+msgstr "[FITXER...]"
 
-#: ../src/template-designer.c:481
-msgid "Welcome"
-msgstr "Us donem la benvinguda"
+#: ../src/glabels-batch.c:99
+msgid "Print files created with gLabels."
+msgstr ""
 
-#: ../src/template-designer.c:534
-msgid "Name and Description"
-msgstr "Nom i descripció"
+#: ../src/glabels-batch.c:107 ../src/glabels.c:89
+#, c-format
+msgid ""
+"%s\n"
+"Run '%s --help' to see a full list of available command line options.\n"
+msgstr ""
 
-#: ../src/template-designer.c:595
-msgid "Page Size"
-msgstr "Mida de la pàgina"
+#: ../src/glabels-batch.c:151
+#, c-format
+msgid "cannot perform document merge with glabels file %s\n"
+msgstr "no es realitzar la fusió del document amb el fitxer %s del gLabels\n"
 
-#: ../src/template-designer.c:675
-msgid "Label or Card Shape"
-msgstr "Forma de l'etiqueta o targeta"
+#: ../src/glabels-batch.c:186
+#, c-format
+msgid "cannot open glabels file %s\n"
+msgstr "no es pot obrir el fitxer del gLabels %s\n"
 
-#: ../src/template-designer.c:735
-msgid "Label or Card Size"
-msgstr "Mida de l'etiqueta o targeta"
+#: ../src/glabels.c:81
+#, fuzzy
+msgid "Launch gLabels label and business card designer."
+msgstr "Un programa de creació d'etiquetes i de targetes de visita.\n"
 
-#: ../src/template-designer.c:844
-msgid "Label Size (round)"
-msgstr "Mida de 'etiqueta (circular)"
+#: ../src/label-barcode.c:154 ../src/ui.c:319
+msgid "Create barcode object"
+msgstr "Crea un objecte de codi de barres"
 
-#: ../src/template-designer.c:935
-msgid "Label Size (CD/DVD)"
-msgstr "Mida de 'etiqueta (CD/DVD)"
+#: ../src/label-barcode.c:227 ../src/label-barcode.c:389
+#, fuzzy
+msgid "Barcode data"
+msgstr "Les dades del codi de barres estan buides"
 
-#: ../src/template-designer.c:1036
-msgid "Number of Layouts"
-msgstr "Nombre de disposicions"
+#: ../src/label-barcode.c:263
+#, fuzzy
+msgid "Barcode property"
+msgstr "Propietats de l'objecte codi de barres"
 
-#: ../src/template-designer.c:1110
-msgid "Layout(s)"
-msgstr "Disposicions"
+#: ../src/label-barcode.c:485
+msgid "Barcode data empty"
+msgstr "Les dades del codi de barres estan buides"
 
-#: ../src/template-designer.c:1229
-msgid "Design Completed"
-msgstr "S'ha completat el disseny"
+#: ../src/label-barcode.c:489
+msgid "Invalid barcode data"
+msgstr "Les dades del codi de barres no són vàlides"
 
-#: ../src/template-designer.c:1396
-msgid ""
-"<span foreground='red' weight='bold'>Brand and part# match an existing "
-"template!</span>"
-msgstr ""
-"<span foreground='red' weight='bold'>La marca i el número de model "
-"coincideixen amb un a plantilla existent</span>"
+#: ../src/label-box.c:156
+#, fuzzy
+msgid "Create box object"
+msgstr "Crea un objecte de text"
 
-#: ../src/bc.c:67
-msgid "POSTNET (any)"
-msgstr "POSTNET (qualsevol)"
+#: ../src/label-box.c:230 ../src/label-ellipse.c:232 ../src/stock.c:93
+#: ../data/ui/property-bar.ui.h:3
+msgid "Fill color"
+msgstr "Color de l'emplenat"
 
-#: ../src/bc.c:70
-msgid "POSTNET-5 (ZIP only)"
-msgstr "POSTNET-5 (només codi postal ZIP)"
+#: ../src/label-box.c:261 ../src/label-ellipse.c:261 ../src/label-line.c:212
+#: ../src/stock.c:94 ../data/ui/property-bar.ui.h:8
+msgid "Line color"
+msgstr "Color de la línia"
 
-#: ../src/bc.c:73
-msgid "POSTNET-9 (ZIP+4)"
-msgstr "POSTNET-9 (codi postal ZIP+4)"
+#: ../src/label-box.c:289 ../src/label-ellipse.c:290 ../src/label-line.c:241
+#: ../data/ui/property-bar.ui.h:9
+msgid "Line width"
+msgstr "Amplada de la línia"
 
-#: ../src/bc.c:76
-msgid "POSTNET-11 (DPBC)"
-msgstr "POSTNET-11 (DPBC)"
+#: ../src/label.c:402
+msgid "Untitled"
+msgstr "Sense títol"
 
-#: ../src/bc.c:79
-msgid "CEPNET"
-msgstr "CEPNET"
+#: ../src/label.c:705 ../src/ui.c:422
+msgid "Merge properties"
+msgstr "Propietats de fusió"
 
-#: ../src/bc.c:82
-msgid "EAN (any)"
-msgstr "EAN (qualsevol)"
+#: ../src/label.c:1197 ../src/ui.c:215
+msgid "Delete"
+msgstr "Suprimeix"
 
-#: ../src/bc.c:85
-msgid "EAN-8"
-msgstr "EAN-8"
+#: ../src/label.c:1230 ../src/ui.c:324
+msgid "Bring to front"
+msgstr "Porta al primer pla"
 
-#: ../src/bc.c:88
-msgid "EAN-8 +2"
-msgstr "EAN-8 +2"
+#: ../src/label.c:1266 ../src/ui.c:331
+msgid "Send to back"
+msgstr "Porta al fons"
 
-#: ../src/bc.c:91
-msgid "EAN-8 +5"
-msgstr "EAN-8 +5"
+#: ../src/label.c:1307
+#, fuzzy
+msgid "Rotate"
+msgstr "Girat"
 
-#: ../src/bc.c:94
-msgid "EAN-13"
-msgstr "EAN-13"
+#: ../src/label.c:1342 ../src/ui.c:338
+msgid "Rotate left"
+msgstr "Gira a l'esquerra"
 
-#: ../src/bc.c:97
-msgid "EAN-13 +2"
-msgstr "EAN-13 +2"
+#: ../src/label.c:1375 ../src/ui.c:345
+msgid "Rotate right"
+msgstr "Gira a la dreta"
 
-#: ../src/bc.c:100
-msgid "EAN-13 +5"
-msgstr "EAN-13 +5"
+#: ../src/label.c:1410 ../src/ui.c:352
+msgid "Flip horizontally"
+msgstr "Capgira horitzontalment"
 
-#: ../src/bc.c:103
-msgid "UPC (UPC-A or UPC-E)"
-msgstr "UPC (UPC-A o UPC-E)"
+#: ../src/label.c:1445 ../src/ui.c:359
+msgid "Flip vertically"
+msgstr "Capgira verticalment"
 
-#: ../src/bc.c:106
-msgid "UPC-A"
-msgstr "UPC-A"
+#: ../src/label.c:1485 ../src/ui.c:366
+msgid "Align left"
+msgstr "Alinea a l'esquerra"
 
-#: ../src/bc.c:109
-msgid "UPC-A +2"
-msgstr "UPC-A +2"
+#: ../src/label.c:1542 ../src/ui.c:373
+msgid "Align right"
+msgstr "Alinea a la dreta"
 
-#: ../src/bc.c:112
-msgid "UPC-A +5"
-msgstr "UPC-A +5"
+#: ../src/label.c:1603 ../src/ui.c:380
+msgid "Align horizontal center"
+msgstr "Alinea als centre horitzontals"
 
-#: ../src/bc.c:115
-msgid "UPC-E"
-msgstr "UPC-E"
+#: ../src/label.c:1679 ../src/ui.c:387
+msgid "Align tops"
+msgstr "Alinea a les vores superiors"
 
-#: ../src/bc.c:118
-msgid "UPC-E +2"
-msgstr "UPC-E +2"
+#: ../src/label.c:1736 ../src/ui.c:394
+msgid "Align bottoms"
+msgstr "Alinea a les vores inferiors"
 
-#: ../src/bc.c:121
-msgid "UPC-E +5"
-msgstr "UPC-E +5"
+#: ../src/label.c:1797 ../src/ui.c:401
+msgid "Align vertical center"
+msgstr "Alinea als centre verticals"
 
-#: ../src/bc.c:124
-msgid "ISBN"
-msgstr "ISBN"
+#: ../src/label.c:1875 ../src/ui.c:408
+msgid "Center horizontally"
+msgstr "Centra horitzontalment"
 
-#: ../src/bc.c:127
-msgid "ISBN +5"
-msgstr "ISBN +5"
+#: ../src/label.c:1922 ../src/ui.c:415
+msgid "Center vertically"
+msgstr "Centra verticalment"
 
-#: ../src/bc.c:130
-msgid "Code 39"
-msgstr "Codi 39"
+#: ../src/label.c:2610 ../src/label.c:2652 ../src/label.c:2678 ../src/ui.c:208
+msgid "Paste"
+msgstr "Enganxa"
 
-#: ../src/bc.c:133
-msgid "Code 128"
-msgstr "Codi 128"
+#: ../src/label-ellipse.c:160
+#, fuzzy
+msgid "Create ellipse object"
+msgstr "Crea un objecte línia"
 
-#: ../src/bc.c:136
-msgid "Code 128C"
-msgstr "Codi 128C"
+#: ../src/label-image.c:200 ../src/ui.c:312
+msgid "Create image object"
+msgstr "Crea un objecte d'imatge"
 
-#: ../src/bc.c:139
-msgid "Code 128B"
-msgstr "Codi 128B"
+#: ../src/label-image.c:333 ../src/label-image.c:474
+#, fuzzy
+msgid "Set image"
+msgstr "Reinicialitza la mida de la imatge"
 
-#: ../src/bc.c:142
-msgid "Interleaved 2 of 5"
-msgstr "Interfoliat 2 de 5"
+#: ../src/label-line.c:147 ../src/ui.c:298
+msgid "Create line object"
+msgstr "Crea un objecte línia"
 
-#: ../src/bc.c:145
-msgid "Codabar"
-msgstr "Codabar"
+#: ../src/label-object.c:383 ../src/label-object.c:416
+msgid "Move"
+msgstr ""
 
-#: ../src/bc.c:148
-msgid "MSI"
-msgstr "MSI"
+#: ../src/label-object.c:467
+#, fuzzy
+msgid "Resize"
+msgstr "Mida de la pàgina:"
 
-#: ../src/bc.c:151
-msgid "Plessey"
-msgstr "Plessey"
+#: ../src/label-object.c:1185
+#, fuzzy
+msgid "Shadow state"
+msgstr "Ombra"
 
-#: ../src/bc.c:154
-msgid "IEC16022 (DataMatrix)"
-msgstr "IEC16022 (DataMatrix)"
+#: ../src/label-object.c:1228
+#, fuzzy
+msgid "Shadow offset"
+msgstr "Ombra"
 
-#: ../src/label.c:531
-msgid "Untitled"
-msgstr "Sense títol"
+#: ../src/label-object.c:1276
+#, fuzzy
+msgid "Shadow color"
+msgstr "Ombra"
 
-#: ../src/label-barcode.c:426
-msgid "Barcode data empty"
-msgstr "Les dades del codi de barres estan buides"
+#: ../src/label-object.c:1319
+#, fuzzy
+msgid "Shadow opacity"
+msgstr "Ombra"
 
-#: ../src/label-barcode.c:430
-msgid "Invalid barcode data"
-msgstr "Les dades del codi de barres no són vàlides"
+#: ../src/label-text.c:279 ../src/ui.c:284
+msgid "Create text object"
+msgstr "Crea un objecte de text"
 
-#: ../src/xml-label.c:189 ../src/xml-label.c:226
-msgid "xmlParseFile error"
-msgstr "Error de la funció xmlParseFile"
+#: ../src/label-text.c:451
+msgid "Typing"
+msgstr ""
 
-#: ../src/xml-label.c:262
-msgid "No document root"
-msgstr "No hi ha cap arrel del document"
+#: ../src/label-text.c:584 ../data/ui/property-bar.ui.h:4
+msgid "Font family"
+msgstr "Família del tipus de lletra"
 
-#: ../src/xml-label.c:270
-msgid "Importing from glabels 0.1 format"
-msgstr "S'està important del format del gLabels 0.1"
+#: ../src/label-text.c:622 ../data/ui/property-bar.ui.h:5
+msgid "Font size"
+msgstr "Mida del tipus de lletra"
 
-#: ../src/xml-label.c:279
-msgid "Importing from glabels 0.4 format"
-msgstr "S'està important del format del gLabels 0.4"
+#: ../src/label-text.c:655
+#, fuzzy
+msgid "Font weight"
+msgstr "Gira a la dreta"
 
-#: ../src/xml-label.c:288
-#, c-format
-msgid "Unknown glabels Namespace -- Using %s"
-msgstr "Espai de noms del gLabels desconegut -- s'utilitzarà el %s"
+#: ../src/label-text.c:688 ../data/ui/property-bar.ui.h:6
+msgid "Italic"
+msgstr "Cursiva"
 
-#: ../src/xml-label.c:319 ../src/xml-label-04.c:79
-#, c-format
-msgid "Bad root node = \"%s\""
-msgstr "Node arrel incorrecte = «%s»"
+#: ../src/label-text.c:721
+#, fuzzy
+msgid "Align text"
+msgstr "Alinea a l'esquerra"
 
-#: ../src/xml-label.c:356
-#, c-format
-msgid "bad node in Document node =  \"%s\""
-msgstr "node incorrecte en el node Document = «%s»"
+#: ../src/label-text.c:754
+#, fuzzy
+msgid "Line spacing"
+msgstr "Espaiat de línia:"
 
-#: ../src/xml-label.c:401 ../src/xml-label-04.c:127
-#, c-format
-msgid "bad node =  \"%s\""
-msgstr "node incorrecte = «%s»"
+#: ../src/label-text.c:787 ../data/ui/property-bar.ui.h:11
+#, fuzzy
+msgid "Text color"
+msgstr "Color del text"
 
-#: ../src/xml-label.c:840
-#, c-format
-msgid "bad node in Data node =  \"%s\""
-msgstr "node incorrecte en el node Data (dades) = «%s»"
+#: ../src/label-text.c:931
+msgid "Auto shrink"
+msgstr ""
 
-#: ../src/xml-label.c:1077 ../libglabels/xml-template.c:670
-msgid "Utf8 conversion error."
-msgstr "Error de conversió a l'UTF-8"
+#: ../src/media-select.c:349 ../src/media-select.c:353
+#: ../src/media-select.c:502 ../src/media-select.c:701
+#, fuzzy
+msgctxt "Brand"
+msgid "Any"
+msgstr "Qualsevol"
 
-#: ../src/xml-label.c:1084
-msgid "Problem saving xml file."
-msgstr "S'ha produït un problema en desar el fitxer"
+#: ../src/media-select.c:358 ../src/media-select.c:871
+#, fuzzy
+msgctxt "Page size"
+msgid "Any"
+msgstr "Qualsevol"
 
-#: ../src/merge.c:170 ../src/merge.c:211 ../src/merge.c:375 ../src/merge.c:378
-msgid "None"
-msgstr "Cap"
+#: ../src/media-select.c:367 ../src/media-select.c:370
+#: ../src/media-select.c:880
+#, fuzzy
+msgctxt "Category"
+msgid "Any"
+msgstr "Qualsevol"
 
-#: ../src/merge-init.c:59
-msgid "Text file with comma delimeters (CSV)"
-msgstr "Fitxer de text amb comes delimitadores (CSV)"
+#: ../src/media-select.c:968
+msgid "No recent templates found."
+msgstr "No s'ha trobat cap plantilla recent."
 
-#: ../src/merge-init.c:66
-msgid "Text file with colon delimeters"
-msgstr "Fitxer de text amb dos punts delimitadors"
+#: ../src/media-select.c:970
+#, fuzzy
+msgid "Try selecting a template in the \"Search all\" tab."
+msgstr ""
+"Proveu de seleccionar una plantilla de la pàgina «Cerca totes les plantilles»"
 
-#: ../src/merge-init.c:73
-msgid "Text file with tab delimeters"
-msgstr "Fitxer de text amb tabulacions delimitadores"
+#. Translators: "No match" means that for the given template search criteria, there
+#. * were no matches found.
+#: ../src/media-select.c:1061
+msgid "No match."
+msgstr "No hi ha cap coincidència."
 
-#: ../src/merge-init.c:82
-msgid "Data from default Evolution Addressbook"
-msgstr "Dades de la llibreta d'adreces predeterminada de l'Evolution"
+#: ../src/media-select.c:1063
+msgid "Try selecting a different brand, page size or category."
+msgstr "Proveu de seleccionar una marca, mida de pàgina o categoria diferents."
+
+#: ../src/media-select.c:1157
+#, fuzzy
+msgid "No custom templates found."
+msgstr "No s'ha trobat cap plantilla recent."
 
-#: ../src/merge-init.c:88
-msgid "Data from a file containing VCards"
-msgstr "Dades d'un fitxer que conté VCards"
+#: ../src/media-select.c:1159
+msgid ""
+"You may create new templates or try searching for pre-defined templates in "
+"the \"Search all\" tab."
+msgstr ""
+
+#. Translators: "None" here means that no document-merge source or
+#. * method has been selected.
+#: ../src/merge.c:171 ../src/merge.c:212 ../src/merge.c:376 ../src/merge.c:379
+msgid "None"
+msgstr "Cap"
 
-#: ../src/merge-evolution.c:309
+#: ../src/merge-evolution.c:316
 msgid "Couldn't construct query"
 msgstr "No s'ha pogut crear la sol·licitud"
 
-#: ../src/merge-evolution.c:315 ../src/merge-evolution.c:326
+#: ../src/merge-evolution.c:322 ../src/merge-evolution.c:333
 msgid "Couldn't open addressbook."
 msgstr "No s'ha pogut obrir la llibreta d'adreces"
 
-#: ../src/merge-evolution.c:341
+#: ../src/merge-evolution.c:348
 msgid "Couldn't list available fields."
 msgstr "No s'ha pogut mostrar la llista dels camps disponibles."
 
-#: ../src/merge-evolution.c:377
+#: ../src/merge-evolution.c:384
 msgid "Couldn't get contacts."
 msgstr "No s'han pogut obtenir els contactes."
 
-#: ../src/color-combo.c:210
-msgid "Default Color"
-msgstr "Color predeterminat"
+#: ../src/merge-init.c:57
+msgid "Text: Comma Separated Values (CSV)"
+msgstr ""
 
-#: ../src/color-combo-menu.c:86
-msgid "Dark Red"
-msgstr "Vermell fosc"
+#: ../src/merge-init.c:64
+msgid "Text: Comma Separated Values (CSV) with keys on line 1"
+msgstr ""
 
-#: ../src/color-combo-menu.c:87
-msgid "Brown"
-msgstr "Marró"
+#: ../src/merge-init.c:72
+msgid "Text: Tab Separated Values (TSV)"
+msgstr ""
 
-#: ../src/color-combo-menu.c:88
-msgid "Dark Goldenrod"
-msgstr "Vara d'or (goldenrod) fosc"
+#: ../src/merge-init.c:79
+msgid "Text: Tab Separated Values (TSV) with keys on line 1"
+msgstr ""
 
-#: ../src/color-combo-menu.c:89
-msgid "Dark Green"
-msgstr "Verd fosc"
+#: ../src/merge-init.c:87
+msgid "Text: Colon separated values"
+msgstr ""
 
-#: ../src/color-combo-menu.c:90
-msgid "Dark Cyan"
-msgstr "Cyan fosc"
+#: ../src/merge-init.c:94
+msgid "Text: Colon separated values with keys on line 1"
+msgstr ""
 
-#: ../src/color-combo-menu.c:91
-msgid "Navy Blue"
-msgstr "Blau ultramarí"
+#: ../src/merge-init.c:102
+msgid "Text: Semicolon separated values"
+msgstr ""
 
-#: ../src/color-combo-menu.c:92
-msgid "Dark Violet"
-msgstr "Violeta fosc"
+#: ../src/merge-init.c:109
+msgid "Text: Semicolon separated values with keys on line 1"
+msgstr ""
 
-#: ../src/color-combo-menu.c:94
-msgid "Red"
-msgstr "Vermell"
+#: ../src/merge-init.c:119
+#, fuzzy
+msgid "Evolution Addressbook"
+msgstr "Dades de la llibreta d'adreces predeterminada de l'Evolution"
 
-#: ../src/color-combo-menu.c:95
-msgid "Orange"
-msgstr "Taronja"
+#: ../src/merge-init.c:125
+#, fuzzy
+msgid "VCards"
+msgstr "Targetes doblegades"
 
-#: ../src/color-combo-menu.c:96
-msgid "Dark Yellow"
-msgstr "Groc fosc"
+#: ../src/merge-properties-dialog.c:282
+msgid "Merge Properties"
+msgstr "Propietats de la fusió"
 
-#: ../src/color-combo-menu.c:97
-msgid "Medium green"
-msgstr "Verd mitjà"
+#: ../src/merge-properties-dialog.c:308 ../src/merge-properties-dialog.c:424
+msgid "Select merge-database source"
+msgstr "Seleccioneu la font de la base de dades de la fusió"
 
-#: ../src/color-combo-menu.c:98
-msgid "Turquoise"
-msgstr "Turquesa"
+#: ../src/merge-properties-dialog.c:319 ../src/merge-properties-dialog.c:450
+msgid "N/A"
+msgstr "No disponible"
 
-#: ../src/color-combo-menu.c:99
-msgid "Blue"
-msgstr "Blau"
+#: ../src/merge-properties-dialog.c:345
+msgid "Select"
+msgstr "Seleccionat"
 
-#: ../src/color-combo-menu.c:100
-msgid "Purple"
-msgstr "Porpra"
+#: ../src/merge-properties-dialog.c:352
+msgid "Record/Field"
+msgstr "Registre/camp"
 
-#: ../src/color-combo-menu.c:102
-msgid "Salmon"
-msgstr "Salmó"
+#: ../src/merge-properties-dialog.c:360 ../data/ui/object-editor.ui.h:8
+msgid "Data"
+msgstr "Dades"
 
-#: ../src/color-combo-menu.c:103
-msgid "Gold"
-msgstr "Daurat"
+#. Translators: "Fixed" here means that for the given document-merge method, there are
+#. * no further choices to further define the source of data.  E.g. if you select the
+#. * evolution-data-server, there are no further choices -- the source is "Fixed."
+#.
+#: ../src/merge-properties-dialog.c:443
+msgid "Fixed"
+msgstr "Fixe"
 
-#: ../src/color-combo-menu.c:104
-msgid "Yellow"
-msgstr "Groc"
+#. Translators: "Up" refers to the direction towards the top of a label.
+#: ../src/mini-preview.c:1074
+msgid "Up"
+msgstr ""
 
-#: ../src/color-combo-menu.c:105
-msgid "Green"
-msgstr "Verd"
+#: ../src/new-label-dialog.c:203
+#, fuzzy
+msgid "Select Product"
+msgstr "Mode de selecció"
 
-#: ../src/color-combo-menu.c:106
-msgid "Cyan"
-msgstr "Cyan"
+#: ../src/new-label-dialog.c:215
+msgid "Choose Orientation"
+msgstr ""
 
-#: ../src/color-combo-menu.c:107
-msgid "SkyBlue"
-msgstr "Blau cel"
+#: ../src/new-label-dialog.c:229
+msgid "Review"
+msgstr ""
+
+#: ../src/object-editor-bc-page.c:93 ../src/object-editor-shadow-page.c:93
+#: ../src/object-editor-text-page.c:97 ../src/prefs-dialog.c:339
+#: ../src/ui-property-bar.c:280
+msgid "Default"
+msgstr "Predeterminat"
+
+#: ../src/object-editor.c:159 ../src/object-editor.c:460
+msgid "Object properties"
+msgstr "Propietats de l'objecte"
+
+#: ../src/object-editor.c:309
+msgid "Box object properties"
+msgstr "Propietats de l'objecte quadre"
+
+#: ../src/object-editor.c:328
+msgid "Ellipse object properties"
+msgstr "Propietats de l'objecte el·lipse"
+
+#: ../src/object-editor.c:347
+msgid "Line object properties"
+msgstr "Propietats de l'objecte línia"
+
+#: ../src/object-editor.c:364
+msgid "Image object properties"
+msgstr "Propietats de l'objecte imatge"
+
+#: ../src/object-editor.c:381
+msgid "Text object properties"
+msgstr "Propietats de l'objecte text"
+
+#: ../src/object-editor.c:403
+msgid "Barcode object properties"
+msgstr "Propietats de l'objecte codi de barres"
+
+#: ../src/object-editor-edit-page.c:76
+msgid "Insert merge field"
+msgstr "Inseriu el camp de fusió"
+
+#: ../src/object-editor-fill-page.c:79 ../src/prefs-dialog.c:345
+#: ../src/ui-property-bar.c:292
+msgid "No Fill"
+msgstr "Sense emplenament"
+
+#: ../src/object-editor-image-page.c:278
+msgid "All Files"
+msgstr "Tots els fitxers"
+
+#: ../src/object-editor-image-page.c:283
+msgid "All Images"
+msgstr "Totes les imatges"
+
+#: ../src/object-editor-image-page.c:298
+#, c-format
+msgid "%s (*.%s)"
+msgstr "%s (*.%s)"
+
+#: ../src/object-editor-line-page.c:79 ../src/prefs-dialog.c:342
+#: ../src/ui-property-bar.c:304
+msgid "No Line"
+msgstr "Sense línia"
+
+#: ../src/prefs-dialog.c:172 ../data/ui/prefs-dialog.ui.h:21
+msgid "gLabels Preferences"
+msgstr "Preferències del gLabels"
+
+#. ===================================================================
+#: ../src/print-op.c:205 ../src/print-op-dialog.c:217
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:4
+#: ../templates/misc-iso-templates.xml.h:34
+msgid "Labels"
+msgstr "Etiquetes"
+
+#: ../src/stock.c:70
+msgid "_Select Mode"
+msgstr "Mode de _selecció"
+
+#: ../src/stock.c:71
+msgid "_Text"
+msgstr "_Text"
+
+#: ../src/stock.c:72
+msgid "_Line"
+msgstr "_Línia"
+
+#: ../src/stock.c:73
+msgid "_Box"
+msgstr "_Quadre"
+
+#: ../src/stock.c:74
+msgid "_Ellipse"
+msgstr "_El·lipse"
+
+#: ../src/stock.c:75
+msgid "_Image"
+msgstr "_Imatge"
+
+#: ../src/stock.c:76
+msgid "Bar_code"
+msgstr "_Codi de barres"
+
+#: ../src/stock.c:77
+msgid "_Merge Properties"
+msgstr "Propietats de la _fusió"
+
+#: ../src/stock.c:78
+msgid "Object _Properties"
+msgstr "_Propietats de l'objecte"
+
+#: ../src/stock.c:79
+msgid "Bring to _Front"
+msgstr "Porta al p_rimer pla"
+
+#: ../src/stock.c:80
+msgid "Send to _Back"
+msgstr "Envia al _fons"
+
+#: ../src/stock.c:81
+msgid "Rotate _Left"
+msgstr "Gira a l'_esquerra"
+
+#: ../src/stock.c:82
+msgid "Rotate _Right"
+msgstr "Gira a la _dreta"
+
+#: ../src/stock.c:83
+msgid "Flip _Horizontally"
+msgstr "Capgira _horitzontalment"
+
+#: ../src/stock.c:84
+msgid "Flip _Vertically"
+msgstr "Capgira _verticalment"
+
+#: ../src/stock.c:85
+msgid "_Lefts"
+msgstr "_Esquerres"
+
+#: ../src/stock.c:86
+msgid "_Rights"
+msgstr "_Dretes"
+
+#: ../src/stock.c:87
+msgid "_Centers"
+msgstr "_Centres"
+
+#: ../src/stock.c:88
+msgid "_Tops"
+msgstr "Parts _superiors"
+
+#: ../src/stock.c:89
+msgid "Bottoms"
+msgstr "Parts inferiors"
+
+#: ../src/stock.c:90
+msgid "Centers"
+msgstr "Centres"
+
+#: ../src/stock.c:91 ../src/stock.c:92
+msgid "Label Ce_nter"
+msgstr "Ce_ntre de l'etiqueta"
+
+#: ../src/stock.c:95 ../src/stock.c:97
+msgid "Linked"
+msgstr "Enllaçat"
+
+#: ../src/stock.c:96 ../src/stock.c:98
+msgid "Not Linked"
+msgstr "Sense enllaçar"
+
+#: ../src/template-designer.c:404
+#, fuzzy
+msgid "New gLabels Template"
+msgstr "Dissenyador de plantilles del gLabels"
+
+#: ../src/template-designer.c:461
+msgid "Welcome"
+msgstr "Us donem la benvinguda"
+
+#: ../src/template-designer.c:500
+msgid "Name and Description"
+msgstr "Nom i descripció"
+
+#: ../src/template-designer.c:548
+msgid "Page Size"
+msgstr "Mida de la pàgina"
+
+#: ../src/template-designer.c:614
+msgid "Label or Card Shape"
+msgstr "Forma de l'etiqueta o targeta"
+
+#: ../src/template-designer.c:661
+msgid "Label or Card Size"
+msgstr "Mida de l'etiqueta o targeta"
+
+#: ../src/template-designer.c:760
+msgid "Label Size (round)"
+msgstr "Mida de 'etiqueta (circular)"
+
+#: ../src/template-designer.c:841
+msgid "Label Size (CD/DVD)"
+msgstr "Mida de 'etiqueta (CD/DVD)"
+
+#: ../src/template-designer.c:932
+msgid "Number of Layouts"
+msgstr "Nombre de disposicions"
+
+#: ../src/template-designer.c:1000
+msgid "Layout(s)"
+msgstr "Disposicions"
+
+#: ../src/template-designer.c:1105
+msgid "Design Completed"
+msgstr "S'ha completat el disseny"
+
+#: ../src/template-designer.c:1133
+#, fuzzy
+msgid "Edit gLabels Template"
+msgstr "Dissenyador de plantilles del gLabels"
+
+#: ../src/template-designer.c:1423
+#, fuzzy
+msgid "Brand and part# match an existing template!"
+msgstr ""
+"<span foreground='red' weight='bold'>La marca i el número de model "
+"coincideixen amb un a plantilla existent</span>"
+
+#. Menu entries.
+#: ../src/ui.c:93
+msgid "_File"
+msgstr "_Fitxer"
+
+#: ../src/ui.c:94
+msgid "Open Recent _Files"
+msgstr "Obre els fitxers _recents"
+
+#: ../src/ui.c:95
+msgid "_Edit"
+msgstr "_Edita"
+
+#: ../src/ui.c:96
+msgid "_View"
+msgstr "_Visualitza"
+
+#: ../src/ui.c:97
+msgid "Customize Main Toolbar"
+msgstr "Personalitza la barra d'eines principal"
+
+#: ../src/ui.c:98
+msgid "Customize Drawing Toolbar"
+msgstr "Personalitza la barra d'eines de dibuix"
+
+#: ../src/ui.c:99
+msgid "Customize Properties Toolbar"
+msgstr "Personalitza la barra d'eines de les propietats"
+
+#: ../src/ui.c:100
+msgid "_Objects"
+msgstr "_Objectes"
+
+#: ../src/ui.c:101
+msgid "_Create"
+msgstr "_Crea"
+
+#: ../src/ui.c:102
+msgid "_Order"
+msgstr "_Ordena"
+
+#: ../src/ui.c:103
+msgid "_Rotate/Flip"
+msgstr "_Gira/Capgira"
+
+#: ../src/ui.c:104
+msgid "Align _Horizontal"
+msgstr "Alinea _horitzontalment"
+
+#: ../src/ui.c:105
+msgid "Align _Vertical"
+msgstr "Alinea _verticalment"
+
+#: ../src/ui.c:106
+msgid "_Help"
+msgstr "A_juda"
+
+#. Popup entries.
+#: ../src/ui.c:109 ../src/ui.c:110
+msgid "Context Menu"
+msgstr "Menú contextual"
+
+#: ../src/ui.c:115
+msgid "_New"
+msgstr "_Nou"
+
+#: ../src/ui.c:117
+msgid "Create a new file"
+msgstr "Crea un fitxer nou"
+
+#: ../src/ui.c:122
+msgid "_Open..."
+msgstr "_Obre..."
+
+#: ../src/ui.c:124
+msgid "Open a file"
+msgstr "Obre un fitxer"
+
+#: ../src/ui.c:129
+msgid "_Save"
+msgstr "_Desa"
+
+#: ../src/ui.c:131
+msgid "Save current file"
+msgstr "Desa el fitxer actual"
+
+#: ../src/ui.c:136
+msgid "Save _As..."
+msgstr "_Anomena i desa..."
+
+#: ../src/ui.c:138
+msgid "Save the current file to a different name"
+msgstr "Desa el fitxer actual amb un nom diferent"
+
+#: ../src/ui.c:143
+msgid "_Print..."
+msgstr "_Imprimeix..."
+
+#: ../src/ui.c:145
+msgid "Print the current file"
+msgstr "Imprimeix el fitxer actual"
+
+#: ../src/ui.c:150
+msgid "Properties..."
+msgstr "Propietats..."
+
+#: ../src/ui.c:152
+msgid "Modify document properties"
+msgstr "Modifica les propietats del document"
+
+#: ../src/ui.c:157
+msgid "Template _Designer..."
+msgstr "Dissen_yador de plantilles..."
+
+#: ../src/ui.c:159
+msgid "Create a custom template"
+msgstr "Crea una plantilla personalitzada"
+
+#: ../src/ui.c:164
+msgid "_Close"
+msgstr "_Tanca"
+
+#: ../src/ui.c:166
+msgid "Close the current file"
+msgstr "Tanca el fitxer actual"
+
+#: ../src/ui.c:171
+msgid "_Quit"
+msgstr "_Surt"
+
+#: ../src/ui.c:173
+msgid "Quit the program"
+msgstr "Surt del programa"
+
+#: ../src/ui.c:180 ../src/ui.c:182 ../src/ui.c:967
+msgid "Undo"
+msgstr ""
+
+#: ../src/ui.c:187 ../src/ui.c:189 ../src/ui.c:974
+#, fuzzy
+msgid "Redo"
+msgstr "Vermell"
+
+#: ../src/ui.c:194
+msgid "Cut"
+msgstr "Retalla"
+
+#: ../src/ui.c:196
+msgid "Cut the selection"
+msgstr "Retalla la selecció"
+
+#: ../src/ui.c:201
+msgid "Copy"
+msgstr "Copia"
+
+#: ../src/ui.c:203
+msgid "Copy the selection"
+msgstr "Copia la selecció"
+
+#: ../src/ui.c:210
+msgid "Paste the clipboard"
+msgstr "Enganxa el contingut del porta-retalls"
+
+#: ../src/ui.c:217
+msgid "Delete the selected objects"
+msgstr "Suprimeix els objectes seleccionats"
+
+#: ../src/ui.c:222
+msgid "Select All"
+msgstr "Selecciona-ho tot"
+
+#: ../src/ui.c:224
+msgid "Select all objects"
+msgstr "Selecciona tots els objectes"
+
+#: ../src/ui.c:229
+msgid "Un-select All"
+msgstr "No seleccionis res"
+
+#: ../src/ui.c:231
+msgid "Remove all selections"
+msgstr "Desfés totes les seleccions"
+
+#: ../src/ui.c:236
+msgid "Preferences"
+msgstr "Preferències"
+
+#: ../src/ui.c:238
+msgid "Configure the application"
+msgstr "Configura l'aplicació"
+
+#: ../src/ui.c:245
+msgid "Zoom in"
+msgstr "Amplia"
+
+#: ../src/ui.c:247
+msgid "Increase magnification"
+msgstr "Incrementa l'ampliació"
+
+#: ../src/ui.c:252
+msgid "Zoom out"
+msgstr "Redueix"
+
+#: ../src/ui.c:254
+msgid "Decrease magnification"
+msgstr "Redueix l'ampliació"
+
+#: ../src/ui.c:259
+msgid "Zoom 1 to 1"
+msgstr "Amplia a 1:1"
+
+#: ../src/ui.c:261
+msgid "Restore scale to 100%"
+msgstr "Refés l'escala a 100 %"
+
+#: ../src/ui.c:266
+msgid "Zoom to fit"
+msgstr "Millor ajust"
+
+#: ../src/ui.c:268
+msgid "Set scale to fit window"
+msgstr "Estableix l'escala per a encabir-ho a la finestra"
+
+#: ../src/ui.c:275
+msgid "Select Mode"
+msgstr "Mode de selecció"
+
+#: ../src/ui.c:277
+msgid "Select, move and modify objects"
+msgstr "Seleccioneu, moveu i modifiqueu objectes"
+
+#: ../src/ui.c:282 ../src/view-text.c:102 ../data/ui/object-editor.ui.h:28
+#: ../data/ui/prefs-dialog.ui.h:17
+msgid "Text"
+msgstr "Text"
+
+#: ../src/ui.c:289
+msgid "Box"
+msgstr "Quadre"
+
+#: ../src/ui.c:291
+msgid "Create box/rectangle object"
+msgstr "Crea un objecte quadre/rectangle"
+
+#: ../src/ui.c:296 ../data/ui/object-editor.ui.h:17
+#: ../data/ui/prefs-dialog.ui.h:9
+msgid "Line"
+msgstr "Línia"
+
+#: ../src/ui.c:303
+msgid "Ellipse"
+msgstr "El·lipse"
+
+#: ../src/ui.c:305
+msgid "Create ellipse/circle object"
+msgstr "Crea un objecte el·lipse/cercle"
+
+#: ../src/ui.c:310 ../data/ui/object-editor.ui.h:14
+msgid "Image"
+msgstr "Imatge"
+
+#: ../src/ui.c:317
+msgid "Barcode"
+msgstr "Codi de barres"
+
+#: ../src/ui.c:326
+msgid "Raise object to top"
+msgstr "Alça l'objecte fins al primer pla"
+
+#: ../src/ui.c:333
+msgid "Lower object to bottom"
+msgstr "Baixa l'objecte fins al fons"
+
+#: ../src/ui.c:340
+msgid "Rotate object 90 degrees counter-clockwise"
+msgstr ""
+"Gira l'objecte 90 graus en el sentit contrari a les agulles del rellotge"
+
+#: ../src/ui.c:347
+msgid "Rotate object 90 degrees clockwise"
+msgstr "Gira l'objecte 90 graus en el sentit de les agulles del rellotge"
+
+#: ../src/ui.c:354
+msgid "Flip object horizontally"
+msgstr "Capgira l'objecte horitzontalment"
+
+#: ../src/ui.c:361
+msgid "Flip object vertically"
+msgstr "Capgira l'objecte verticalment"
+
+#: ../src/ui.c:368
+msgid "Align objects to left edges"
+msgstr "Alinea els objectes a les vores esquerres"
+
+#: ../src/ui.c:375
+msgid "Align objects to right edges"
+msgstr "Alinea els objectes a les vores dretes"
+
+#: ../src/ui.c:382
+msgid "Align objects to horizontal centers"
+msgstr "Alinea els objectes als centres horitzontals"
+
+#: ../src/ui.c:389
+msgid "Align objects to top edges"
+msgstr "Alinea els objectes a les vores superiors"
+
+#: ../src/ui.c:396
+msgid "Align objects to bottom edges"
+msgstr "Alinea els objectes a les vores inferiors"
+
+#: ../src/ui.c:403
+msgid "Align objects to vertical centers"
+msgstr "Alinea els objectes als centres verticals"
+
+#: ../src/ui.c:410
+msgid "Center objects to horizontal label center"
+msgstr "Centra els objectes al centre horitzontal de l'etiqueta"
 
-#: ../src/color-combo-menu.c:108
-msgid "Violet"
-msgstr "Violeta"
+#: ../src/ui.c:417
+msgid "Center objects to vertical label center"
+msgstr "Centra els objectes al centre vertical de l'etiqueta"
 
-#: ../src/color-combo-menu.c:110
-msgid "Pink"
-msgstr "Rosa"
+#: ../src/ui.c:424
+msgid "Edit merge properties"
+msgstr "Edita les propietats de fusió"
 
-#: ../src/color-combo-menu.c:111
-msgid "Khaki"
-msgstr "Caqui"
+#: ../src/ui.c:431
+msgid "Contents"
+msgstr "Contingut"
 
-#: ../src/color-combo-menu.c:112
-msgid "Light Yellow"
-msgstr "Groc clar"
+#: ../src/ui.c:433
+msgid "Open glabels manual"
+msgstr "Obre el manual del gLabels"
 
-#: ../src/color-combo-menu.c:113
-msgid "Light Green"
-msgstr "Verd clar"
+#: ../src/ui.c:438
+msgid "About..."
+msgstr "Quant a..."
 
-#: ../src/color-combo-menu.c:114
-msgid "Light Cyan"
-msgstr "Cyan clar"
+#: ../src/ui.c:440
+msgid "About glabels"
+msgstr "Quant al gLabels"
 
-#: ../src/color-combo-menu.c:115
-msgid "Slate Gray"
-msgstr "Gris de pissarra"
+#: ../src/ui.c:450
+msgid "Property toolbar"
+msgstr "Barra d'eines de les propietats"
 
-#: ../src/color-combo-menu.c:116
-msgid "Thistle"
-msgstr "Calcida"
+#: ../src/ui.c:452
+msgid "Change the visibility of the property toolbar in the current window"
+msgstr ""
+"Canvia la visibilitat de la barra d'eines de les propietats a la finestra "
+"actual"
 
-#: ../src/color-combo-menu.c:118
-msgid "White"
-msgstr "Blanc"
+#: ../src/ui.c:458
+msgid "Grid"
+msgstr "Graella"
 
-#: ../src/color-combo-menu.c:119
-#, c-format
-msgid "10% Gray"
-msgstr "10% Gris"
+#: ../src/ui.c:460
+msgid "Change the visibility of the grid in the current window"
+msgstr "Canvia la visibilitat de la graella a la finestra actual"
 
-#: ../src/color-combo-menu.c:120
-#, c-format
-msgid "25% Gray"
-msgstr "25% Gris"
+#: ../src/ui.c:466
+msgid "Markup"
+msgstr "Marques"
 
-#: ../src/color-combo-menu.c:121
-#, c-format
-msgid "40% Gray"
-msgstr "40% Gris"
+#: ../src/ui.c:468
+msgid "Change the visibility of markup lines in the current window"
+msgstr "Canvia la visibilitat de les línies de marca a la finestra actual"
 
-#: ../src/color-combo-menu.c:122
-#, c-format
-msgid "50% Gray"
-msgstr "50% Gris"
+#: ../src/ui.c:479
+msgid "Main toolbar"
+msgstr "Barra d'eines principal"
 
-#: ../src/color-combo-menu.c:123
-#, c-format
-msgid "60% Gray"
-msgstr "60% Gris"
+#: ../src/ui.c:481
+msgid "Change the visibility of the main toolbar in the current window"
+msgstr ""
+"Canvia la visibilitat de la barra d'eines principal a la finestra actual"
 
-#: ../src/color-combo-menu.c:124
-msgid "Black"
-msgstr "Negre"
+#: ../src/ui.c:487
+msgid "Drawing toolbar"
+msgstr "Barra d'eines de dibuix"
 
-#: ../src/color-combo-menu.c:252 ../src/color-combo-menu.c:369
-msgid "Custom Color"
-msgstr "Color personalitzat"
+#: ../src/ui.c:489
+msgid "Change the visibility of the drawing toolbar in the current window"
+msgstr ""
+"Canvia la visibilitat de la barra d'eines de dibuix a la finestra actual"
 
-#: ../src/color-combo-menu.c:317
-#, c-format
-msgid "Custom Color #%u"
-msgstr "Color personalitzat núm. %u"
+#: ../src/ui-commands.c:1135
+msgid "Glabels includes contributions from:"
+msgstr "El gLabels inclou col·laboracions de:"
 
-#: ../src/wdgt-print-copies.c:153
-msgid "Sheets:"
-msgstr "Fulls:"
+#: ../src/ui-commands.c:1141
+msgid "See the file AUTHORS for additional credits,"
+msgstr "Consulteu el fitxer AUTHORS per a veure els crèdits addicionals"
 
-#: ../src/wdgt-print-copies.c:173
-msgid "from:"
-msgstr "de:"
+#: ../src/ui-commands.c:1142
+#, fuzzy
+msgid "or visit http://glabels.org/"
+msgstr "o aneu a http://glabels.sourceforge.net/"
 
-#: ../src/wdgt-print-copies.c:179
-msgid "to:"
-msgstr "a:"
+#: ../src/ui-commands.c:1154
+msgid "A label and business card creation program.\n"
+msgstr "Un programa de creació d'etiquetes i de targetes de visita.\n"
 
-#: ../src/wdgt-print-merge.c:154
-msgid "Start on label"
-msgstr "Comença a l'etiqueta"
+#: ../src/ui-commands.c:1158
+msgid "translator-credits"
+msgstr "David Planella <david.planella@gmail.com>"
 
-#: ../src/wdgt-print-merge.c:162
-msgid "on 1st sheet"
-msgstr "al primer full"
+#: ../src/ui-commands.c:1161
+#, fuzzy
+msgid ""
+"gLabels is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"gLabels is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"El gLabels és programari lliure; podeu redistribuir-lo i/o modificar-lo \n"
+"sota els termes de la Llicència Pública General GNU tal i com ha estat \n"
+"publicada per la Free Software Foundation; ja sigui la versió 2 de la \n"
+"Llicència o (si ho preferiu) qualsevol versió posterior.\n"
+"\n"
+"El gLabels es distribueix amb l'expectativa que serà útil, però SENSE \n"
+"CAP GARANTIA; fins i tot sense la garantia implícita de COMERCIABILITAT o \n"
+"ADEQUACIÓ PER A UN PROPÒSIT PARTICULAR.  Vegeu la Llicència Pública "
+"General \n"
+"GNU per a obtenir-ne més detalls.\n"
 
-#: ../src/wdgt-print-merge.c:171
-msgid "Copies:"
-msgstr "Còpies"
+#: ../src/ui-commands.c:1190
+msgid "glabels"
+msgstr "gLabels"
 
-#: ../src/wdgt-print-merge.c:177
-msgid "Collate"
-msgstr "Compagina"
+#: ../src/warning-handler.c:69
+msgid "gLabels Error!"
+msgstr "S'ha produït un error del gLabels"
 
-#: ../src/wdgt-media-select.c:290 ../src/wdgt-media-select.c:294
-#: ../src/wdgt-media-select.c:299 ../src/wdgt-media-select.c:308
-#: ../src/wdgt-media-select.c:311 ../src/wdgt-media-select.c:404
-#: ../src/wdgt-media-select.c:611 ../src/wdgt-media-select.c:620
-msgid "Any"
-msgstr "Qualsevol"
+#: ../src/window.c:284
+msgid "(none) - gLabels"
+msgstr "(cap) - gLabels"
 
-#: ../src/wdgt-media-select.c:645
-#, c-format
-msgid "%d per sheet"
-msgstr "%d per full"
+#: ../src/window.c:485
+msgid "(modified)"
+msgstr "(modificat)"
 
-#: ../src/wdgt-media-select.c:675
+#: ../src/xml-label-04.c:75 ../src/xml-label.c:333
 #, c-format
-msgid "%s x %s %s"
-msgstr "%s x %s %s"
+msgid "Bad root node = \"%s\""
+msgstr "Node arrel incorrecte = «%s»"
 
-#: ../src/wdgt-media-select.c:680
+#: ../src/xml-label-04.c:123 ../src/xml-label.c:416
 #, c-format
-msgid "%.5g x %.5g %s"
-msgstr "%.5g x %.5g %s"
+msgid "bad node =  \"%s\""
+msgstr "node incorrecte = «%s»"
 
-#: ../src/wdgt-media-select.c:691 ../src/wdgt-media-select.c:705
-#, c-format
-msgid "%s %s diameter"
-msgstr "%s %s de diàmetre"
+#: ../src/xml-label.c:199 ../src/xml-label.c:237
+msgid "xmlParseFile error"
+msgstr "Error de la funció xmlParseFile"
 
-#: ../src/wdgt-media-select.c:695 ../src/wdgt-media-select.c:709
-#, c-format
-msgid "%.5g %s diameter"
-msgstr "%.5g %s de diàmetre"
+#: ../src/xml-label.c:274
+msgid "No document root"
+msgstr "No hi ha cap arrel del document"
 
-#: ../src/wdgt-media-select.c:783
-msgid "No recent templates found."
-msgstr "No s'ha trobat cap plantilla recent."
+#: ../src/xml-label.c:282
+msgid "Importing from glabels 0.1 format"
+msgstr "S'està important del format del gLabels 0.1"
 
-#: ../src/wdgt-media-select.c:784
-msgid "Try selecting a template from the \"Search all templates\" page."
-msgstr ""
-"Proveu de seleccionar una plantilla de la pàgina «Cerca totes les plantilles»"
+#: ../src/xml-label.c:291
+msgid "Importing from glabels 0.4 format"
+msgstr "S'està important del format del gLabels 0.4"
 
-#: ../src/wdgt-media-select.c:863
-msgid "No match."
-msgstr "No hi ha cap coincidència."
+#: ../src/xml-label.c:301
+#, c-format
+msgid "Unknown glabels Namespace -- Using %s"
+msgstr "Espai de noms del gLabels desconegut -- s'utilitzarà el %s"
 
-#: ../src/wdgt-media-select.c:864
-msgid "Try selecting a different brand, page size or category."
-msgstr "Proveu de seleccionar una marca, mida de pàgina o categoria diferents."
+#: ../src/xml-label.c:370
+#, c-format
+msgid "bad node in Document node =  \"%s\""
+msgstr "node incorrecte en el node Document = «%s»"
 
-#: ../src/wdgt-rotate-label.c:129
-msgid "Normal"
-msgstr "Normal"
+#: ../src/xml-label.c:868
+#, c-format
+msgid "bad node in Data node =  \"%s\""
+msgstr "node incorrecte en el node Data (dades) = «%s»"
 
-#: ../src/wdgt-rotate-label.c:130
-msgid "Rotated"
-msgstr "Girat"
+#: ../src/xml-label.c:944
+#, fuzzy, c-format
+msgid "Unknown embedded file format: \"%s\""
+msgstr "Es desconeix l'identificador de mida de pàgina o nom «%s»"
 
-#: ../src/critical-error-handler.c:73
-msgid "gLabels Fatal Error!"
-msgstr "S'ha produït un error fatal del gLabels"
+#: ../src/xml-label.c:1150 ../libglabels/xml-template.c:802
+msgid "Utf8 conversion error."
+msgstr "Error de conversió a l'UTF-8"
 
-#: ../src/warning-handler.c:73
-msgid "gLabels Error!"
-msgstr "S'ha produït un error del gLabels"
+#: ../src/xml-label.c:1157
+msgid "Problem saving xml file."
+msgstr "S'ha produït un problema en desar el fitxer"
 
 #. Create and append an "Other" entry.
-#: ../libglabels/db.c:118
+#. Translators: "Other" here means other page size.  Meaning a page size
+#. * other than the standard ones that libglabels knows about such as
+#. * "letter", "A4", etc.
+#: ../libglabels/db.c:270
 msgid "Other"
 msgstr "Una altra"
 
 #. Create and append a "User defined" entry.
-#: ../libglabels/db.c:131
+#: ../libglabels/db.c:279
 msgid "User defined"
 msgstr "Definit per l'usuari"
 
-#: ../libglabels/db.c:482
+#: ../libglabels/db.c:665
 msgid ""
 "Unable to locate paper size definitions.  Libglabels may not be installed "
 "correctly!"
@@ -1459,7 +1873,7 @@ msgstr ""
 "No s'han trobat les definicions de les mides de paper. Pot ser que la "
 "libglables no s'hagi instal·lat correctametn"
 
-#: ../libglabels/db.c:875
+#: ../libglabels/db.c:1057
 msgid ""
 "Unable to locate category definitions.  Libglabels may not be installed "
 "correctly!"
@@ -1467,7 +1881,7 @@ msgstr ""
 "No s'han trobat les definicions de les categories. Pot ser que la libglables "
 "no s'hagi instal·lat correctametn"
 
-#: ../libglabels/db.c:1461
+#: ../libglabels/db.c:2097
 msgid ""
 "Unable to locate any template files.  Libglabels may not be installed "
 "correctly!"
@@ -1475,12 +1889,69 @@ msgstr ""
 "No s'ha trobat cap plantilla. Pot ser que la libglables no s'hagi instal·lat "
 "correctametn"
 
-#: ../libglabels/db.c:1538
-#, c-format
-msgid "Generic %s full page template"
+#: ../libglabels/db.c:2164
+#, fuzzy, c-format
+msgid "%s full page label"
 msgstr "Plantilla de pàgina completa %s genèrica"
 
-#: ../libglabels/xml-template.c:227
+#: ../libglabels/template.c:156
+#, c-format
+msgid "Equivalent part (\"%s\") for \"%s\", not previously defined."
+msgstr ""
+
+#.
+#. * Translators: 1st %d = number of labels across a page,
+#. *              2nd %d = number of labels down a page,
+#. *              3rd %d = total number of labels on a page (sheet).
+#.
+#: ../libglabels/template.c:727
+#, fuzzy, c-format
+msgid "%d × %d (%d per sheet)"
+msgstr "%d per full"
+
+#. Translators: %d is the total number of labels on a page (sheet).
+#: ../libglabels/template.c:732
+#, c-format
+msgid "%d per sheet"
+msgstr "%d per full"
+
+#: ../libglabels/template.c:802 ../libglabels/template.c:808
+#: ../libglabels/template.c:818 ../libglabels/template.c:824
+#, fuzzy
+msgid "diameter"
+msgstr "%s %s de diàmetre"
+
+#. The ids are identical to the absolute length units supported in
+#. the CSS2 Specification (Section 4.3.2)
+#. This table must be sorted exactly as the enumerations in lglUnits
+#. [LGL_UNITS_POINT]
+#: ../libglabels/units.c:65 ../data/ui/object-editor.ui.h:39
+#: ../data/ui/prefs-dialog.ui.h:22
+msgid "points"
+msgstr "punts"
+
+#. [LGL_UNITS_INCH]
+#: ../libglabels/units.c:66 ../data/ui/object-editor.ui.h:38
+#: ../data/ui/template-designer.ui.h:62
+msgid "inches"
+msgstr "polzades"
+
+#. [LGL_UNITS_MM]
+#: ../libglabels/units.c:67
+msgid "mm"
+msgstr "mm"
+
+#. [LGL_UNITS_CM]
+#: ../libglabels/units.c:68
+msgid "cm"
+msgstr ""
+
+#. [LGL_UNITS_PICA]
+#: ../libglabels/units.c:69
+msgid "picas"
+msgstr ""
+
+#: ../libglabels/xml-template.c:223
 msgid "Missing name or brand/part attributes."
 msgstr "Manca el nom o bé els atributs de marca/model"
 
@@ -1497,393 +1968,407 @@ msgstr ""
 msgid "Unknown page size id or name \"%s\""
 msgstr "Es desconeix l'identificador de mida de pàgina o nom «%s»"
 
-#: ../libglabels/xml-template.c:615
+#: ../libglabels/xml-template.c:275
+msgid "Forward references not supported."
+msgstr ""
+
+#: ../libglabels/xml-template.c:747
+msgid ""
+"Missing required \"brand\" or \"part\" attribute, trying deprecated name."
+msgstr ""
+"Manca l'atribut requerit «brand» (marca) o «part» (model), s'intentarà amb el "
+"nom desaconsellat."
+
+#: ../libglabels/xml-template.c:757
+msgid "Name attribute also missing."
+msgstr "També manca l'atribut del nom."
+
+#.
+#. * Local Variables:       -- emacs
+#. * mode: C                -- emacs
+#. * c-basic-offset: 8      -- emacs
+#. * tab-width: 8           -- emacs
+#. * indent-tabs-mode: nil  -- emacs
+#. * End:                   -- emacs
+#.
+#: ../data/ui/merge-properties-dialog.ui.h:1
+msgid "Format:"
+msgstr "Format:"
+
+#: ../data/ui/merge-properties-dialog.ui.h:2
+msgid "Location:"
+msgstr "Ubicació:"
+
+#: ../data/ui/merge-properties-dialog.ui.h:3
+#, fuzzy
+msgid "Record selection/preview"
+msgstr "<b>Selecció de registres/previsualització</b>"
+
+#: ../data/ui/merge-properties-dialog.ui.h:4
+msgid "Select all"
+msgstr "Selecciona-ho tot"
+
+#: ../data/ui/merge-properties-dialog.ui.h:5
+#, fuzzy
+msgid "Source"
+msgstr "<b>Font</b>"
+
+#: ../data/ui/merge-properties-dialog.ui.h:6
+msgid "Unselect all"
+msgstr "No seleccionis res"
+
+#: ../data/ui/media-select.ui.h:1
+msgid "Brand:"
+msgstr "Marca:"
+
+#: ../data/ui/media-select.ui.h:2
+msgid "Category:"
+msgstr "Categoria:"
+
+#: ../data/ui/media-select.ui.h:3
+#, fuzzy
+msgid "Custom"
+msgstr "Retalla"
+
+#: ../data/ui/media-select.ui.h:4 ../data/ui/new-label-dialog.ui.h:6
+#: ../data/ui/template-designer.ui.h:42
+msgid "Page size:"
+msgstr "Mida de la pàgina:"
+
+#: ../data/ui/media-select.ui.h:5
+msgid "Recent"
+msgstr ""
+
+#: ../data/ui/media-select.ui.h:6
+#, fuzzy
+msgid "Search all"
+msgstr "Selecciona-ho tot"
+
+#: ../data/ui/new-label-dialog.ui.h:1
 msgid ""
-"Missing required \"brand\" or \"part\" attribute, trying deprecated name."
+"Choose label or card product from hundreds of predefined templates or define "
+"your own."
 msgstr ""
-"Manca l'atribut requerit «brand» (marca) o «part» (model), s'intentarà amb el "
-"nom desaconsellat."
 
-#: ../libglabels/xml-template.c:625
-msgid "Name attribute also missing."
-msgstr "També manca l'atribut del nom."
+#: ../data/ui/new-label-dialog.ui.h:2 ../data/ui/template-designer.ui.h:27
+msgid "Description:"
+msgstr "Descripció:"
 
-#: ../data/builder/merge-properties-dialog.glade.h:1
-msgid "<b>Record selection/preview</b>"
-msgstr "<b>Selecció de registres/previsualització</b>"
+#: ../data/ui/new-label-dialog.ui.h:3
+#, fuzzy
+msgid "Label size:"
+msgstr "Mida de la pàgina:"
 
-#: ../data/builder/merge-properties-dialog.glade.h:2
-msgid "<b>Source</b>"
-msgstr "<b>Font</b>"
+#: ../data/ui/new-label-dialog.ui.h:4
+#, fuzzy
+msgid "Layout:"
+msgstr "Disposicions"
 
-#: ../data/builder/merge-properties-dialog.glade.h:3
-msgid "Format:"
-msgstr "Format:"
+#: ../data/ui/new-label-dialog.ui.h:5
+msgid "Normal"
+msgstr "Normal"
 
-#: ../data/builder/merge-properties-dialog.glade.h:4
-msgid "Location:"
-msgstr "Ubicació:"
+#: ../data/ui/new-label-dialog.ui.h:7 ../data/ui/template-designer.ui.h:43
+msgid "Part #:"
+msgstr "Núm. de model:"
 
-#: ../data/builder/merge-properties-dialog.glade.h:5
-msgid "Select all"
-msgstr "Selecciona-ho tot"
+#: ../data/ui/new-label-dialog.ui.h:8
+msgid "Please review and confirm your selection."
+msgstr ""
 
-#: ../data/builder/merge-properties-dialog.glade.h:6
-msgid "Unselect all"
-msgstr "No seleccionis res"
+#: ../data/ui/new-label-dialog.ui.h:9
+msgid "Rotated"
+msgstr "Girat"
 
-#: ../data/builder/merge-properties-dialog.glade.h:7
-#: ../data/builder/object-editor.glade.h:39
-msgid "dialog1"
-msgstr "dialog1"
+#: ../data/ui/new-label-dialog.ui.h:10
+msgid "Select orientation of label content."
+msgstr ""
 
-#: ../data/builder/new-label-dialog.glade.h:1
-msgid "<b>Label orientation</b>"
-msgstr "<b>Orientació de l'etiqueta</b>"
+#: ../data/ui/new-label-dialog.ui.h:11
+msgid "Similar products:"
+msgstr ""
 
-#: ../data/builder/new-label-dialog.glade.h:2
-msgid "<b>Media type</b>"
-msgstr "<b>Tipus de suport</b>"
+#: ../data/ui/new-label-dialog.ui.h:12
+msgid "Vendor:"
+msgstr ""
 
-#: ../data/builder/object-editor.glade.h:2
+#: ../data/ui/object-editor.ui.h:2
 #, no-c-format
 msgid "%"
 msgstr "%"
 
-#: ../data/builder/object-editor.glade.h:3
-msgid "00000000000 00000"
-msgstr "00000000000 00000"
-
-#: ../data/builder/object-editor.glade.h:4
-msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
-msgstr ""
-"<span weight=\"bold\" size=\"larger\">Propietats de l'objecte Xxx</span>"
-
-#: ../data/builder/object-editor.glade.h:5
-#: ../data/builder/prefs-dialog.glade.h:7
+#: ../data/ui/object-editor.ui.h:3 ../data/ui/prefs-dialog.ui.h:2
 msgid "Alignment:"
 msgstr "Alineació:"
 
-#: ../data/builder/object-editor.glade.h:6
+#: ../data/ui/object-editor.ui.h:4
 msgid "Allow merge to automatically shrink text"
 msgstr "Permet que la fusió encongeixi el text automàticament"
 
-#: ../data/builder/object-editor.glade.h:7
+#: ../data/ui/object-editor.ui.h:5
 msgid "Angle:"
 msgstr "Angle:"
 
-#: ../data/builder/object-editor.glade.h:8
+#: ../data/ui/object-editor.ui.h:6
 msgid "Checksum"
 msgstr "Suma de verificació"
 
-#: ../data/builder/object-editor.glade.h:9
-#: ../data/builder/prefs-dialog.glade.h:8
+#: ../data/ui/object-editor.ui.h:7 ../data/ui/prefs-dialog.ui.h:3
 msgid "Color:"
 msgstr "Color:"
 
-#: ../data/builder/object-editor.glade.h:11
+#: ../data/ui/object-editor.ui.h:9
 msgid "Enable shadow"
 msgstr "Habilita l'ombra"
 
-#: ../data/builder/object-editor.glade.h:12
+#: ../data/ui/object-editor.ui.h:10
 msgid "Family:"
 msgstr "Família:"
 
-#: ../data/builder/object-editor.glade.h:13
+#: ../data/ui/object-editor.ui.h:11
 msgid "File:"
 msgstr "Fitxer:"
 
-#: ../data/builder/object-editor.glade.h:14
+#: ../data/ui/object-editor.ui.h:12 ../data/ui/prefs-dialog.ui.h:5
 msgid "Fill"
 msgstr "Emplenat"
 
-#: ../data/builder/object-editor.glade.h:15
-#: ../data/builder/template-designer.glade.h:30
+#: ../data/ui/object-editor.ui.h:13 ../data/ui/template-designer.ui.h:30
 msgid "Height:"
 msgstr "Alçada:"
 
-#: ../data/builder/object-editor.glade.h:17
-msgid "Insert merge field"
-msgstr "Inseriu el camp de fusió"
-
-#: ../data/builder/object-editor.glade.h:18
+#: ../data/ui/object-editor.ui.h:15
 msgid "Key:"
 msgstr "Clau:"
 
-#: ../data/builder/object-editor.glade.h:19
+#: ../data/ui/object-editor.ui.h:16
 msgid "Length:"
 msgstr "Llargada:"
 
-#: ../data/builder/object-editor.glade.h:21
-#: ../data/builder/prefs-dialog.glade.h:12
+#: ../data/ui/object-editor.ui.h:18 ../data/ui/prefs-dialog.ui.h:10
 msgid "Line Spacing:"
 msgstr "Espaiat de línia:"
 
-#: ../data/builder/object-editor.glade.h:22
+#: ../data/ui/object-editor.ui.h:19
 msgid "Literal:"
 msgstr "Literal:"
 
-#: ../data/builder/object-editor.glade.h:23
+#: ../data/ui/object-editor.ui.h:20
 msgid "Opacity:"
 msgstr "Opacitat:"
 
-#: ../data/builder/object-editor.glade.h:24
+#: ../data/ui/object-editor.ui.h:21
 msgid "Position"
 msgstr "Posició"
 
-#: ../data/builder/object-editor.glade.h:25
+#: ../data/ui/object-editor.ui.h:22
 msgid "Reset image size"
 msgstr "Reinicialitza la mida de la imatge"
 
-#: ../data/builder/object-editor.glade.h:26
-msgid "Select A File"
-msgstr "Seleccioneu un fitxer"
-
-#: ../data/builder/object-editor.glade.h:27
+#: ../data/ui/object-editor.ui.h:23
 msgid "Shadow"
 msgstr "Ombra"
 
-#: ../data/builder/object-editor.glade.h:28
+#: ../data/ui/object-editor.ui.h:24
 msgid "Size"
 msgstr "Mida"
 
-#: ../data/builder/object-editor.glade.h:29
+#: ../data/ui/object-editor.ui.h:25
 msgid "Size:"
 msgstr "Mida:"
 
-#: ../data/builder/object-editor.glade.h:30
+#: ../data/ui/object-editor.ui.h:26
 msgid "Style"
 msgstr "Estil"
 
-#: ../data/builder/object-editor.glade.h:31
+#: ../data/ui/object-editor.ui.h:27
 msgid "Style:"
 msgstr "Estil:"
 
-#: ../data/builder/object-editor.glade.h:33
-#: ../data/builder/prefs-dialog.glade.h:20
-#: ../data/builder/template-designer.glade.h:61
+#: ../data/ui/object-editor.ui.h:29 ../data/ui/prefs-dialog.ui.h:20
+#: ../data/ui/template-designer.ui.h:61
 msgid "Width:"
 msgstr "Amplada:"
 
-#: ../data/builder/object-editor.glade.h:34
+#: ../data/ui/object-editor.ui.h:30
 msgid "X Offset:"
 msgstr "Desplaçament X:"
 
-#: ../data/builder/object-editor.glade.h:35
+#: ../data/ui/object-editor.ui.h:31
 msgid "X:"
 msgstr "X:"
 
-#: ../data/builder/object-editor.glade.h:36
+#: ../data/ui/object-editor.ui.h:32
 msgid "Y Offset:"
 msgstr "Desplaçament Y:"
 
-#: ../data/builder/object-editor.glade.h:37
+#: ../data/ui/object-editor.ui.h:33
 msgid "Y:"
 msgstr "Y:"
 
-#: ../data/builder/object-editor.glade.h:38
+#: ../data/ui/object-editor.ui.h:34
 msgid "degrees"
 msgstr "graus"
 
-#: ../data/builder/object-editor.glade.h:40
+#: ../data/ui/object-editor.ui.h:35
+msgid "dialog1"
+msgstr "dialog1"
+
+#: ../data/ui/object-editor.ui.h:36
 msgid "digits:"
 msgstr "dígits:"
 
-#: ../data/builder/object-editor.glade.h:41
+#: ../data/ui/object-editor.ui.h:37
 msgid "format:"
 msgstr "format:"
 
-#: ../data/builder/prefs-dialog.glade.h:1
+#: ../data/ui/prefs-dialog.ui.h:1
 msgid "   "
 msgstr "   "
 
-#: ../data/builder/prefs-dialog.glade.h:2
-msgid "<span weight=\"bold\">Default page size</span>"
-msgstr "<span weight=\"bold\">Mida de pàgina predeterminada</span>"
-
-#: ../data/builder/prefs-dialog.glade.h:3
-msgid "<span weight=\"bold\">Fill</span>"
-msgstr "<span weight=\"bold\">Emplenat</span>"
-
-#: ../data/builder/prefs-dialog.glade.h:4
-msgid "<span weight=\"bold\">Line</span>"
-msgstr "<span weight=\"bold\">Línia</span>"
-
-#: ../data/builder/prefs-dialog.glade.h:5
-msgid "<span weight=\"bold\">Text</span>"
-msgstr "<span weight=\"bold\">Text</span>"
-
-#: ../data/builder/prefs-dialog.glade.h:6
-msgid "<span weight=\"bold\">Units</span>"
-msgstr "<span weight=\"bold\">Unitats</span>"
+#: ../data/ui/prefs-dialog.ui.h:4
+#, fuzzy
+msgid "Default page size"
+msgstr "Reinicialitza la mida de la imatge"
 
-#: ../data/builder/prefs-dialog.glade.h:9
+#: ../data/ui/prefs-dialog.ui.h:6
 msgid "Font:"
 msgstr "Tipus de lletra"
 
-#: ../data/builder/prefs-dialog.glade.h:10
+#: ../data/ui/prefs-dialog.ui.h:7
 msgid "ISO A4"
 msgstr "A4 de l'ISO"
 
-#: ../data/builder/prefs-dialog.glade.h:11
+#: ../data/ui/prefs-dialog.ui.h:8
 msgid "Inches"
 msgstr "Polzades"
 
-#: ../data/builder/prefs-dialog.glade.h:13
+#: ../data/ui/prefs-dialog.ui.h:11
 msgid "Locale"
 msgstr "Localització"
 
-#: ../data/builder/prefs-dialog.glade.h:14
+#: ../data/ui/prefs-dialog.ui.h:12
 msgid "Millimeters"
 msgstr "Mil·límetres"
 
-#: ../data/builder/prefs-dialog.glade.h:15
+#: ../data/ui/prefs-dialog.ui.h:13
 msgid "Object defaults"
 msgstr "Valors predeterminats dels objectes"
 
-#: ../data/builder/prefs-dialog.glade.h:16
+#: ../data/ui/prefs-dialog.ui.h:14
 msgid "Points"
 msgstr "Punts"
 
-#: ../data/builder/prefs-dialog.glade.h:17
+#: ../data/ui/prefs-dialog.ui.h:15
 msgid "Select default properties for new objects."
 msgstr "Seleccioneu els valors predeterminats dels objectes nous"
 
-#: ../data/builder/prefs-dialog.glade.h:18
+#: ../data/ui/prefs-dialog.ui.h:16
 msgid "Select locale specific behavior."
 msgstr "Seleccioneu el comportament específic de la localització"
 
-#. Most popular (at top of list)
-#: ../data/builder/prefs-dialog.glade.h:19
-#: ../data/templates/paper-sizes.xml.h:29
+#: ../data/ui/prefs-dialog.ui.h:18 ../templates/paper-sizes.xml.h:35
 msgid "US Letter"
 msgstr "Carta EUA"
 
-#: ../data/builder/print-custom-widget.glade.h:1
-msgid "<b>Options</b>"
-msgstr "<b>Opcions</b>"
-
-#: ../data/builder/print-custom-widget.glade.h:2
-msgid "<b>Print control (Merge)</b>"
-msgstr "<b>Control d'impressió (fusió)</b>"
-
-#: ../data/builder/print-custom-widget.glade.h:3
-msgid "<b>Print control (Simple)</b>"
-msgstr "<b>Control d'impressió (simple)</b>"
+#: ../data/ui/prefs-dialog.ui.h:19
+#, fuzzy
+msgid "Units"
+msgstr "Sense títol"
 
-#: ../data/builder/property-bar.glade.h:1
+#: ../data/ui/property-bar.ui.h:1
 msgid "Bold"
 msgstr "Negreta"
 
-#: ../data/builder/property-bar.glade.h:2
+#: ../data/ui/property-bar.ui.h:2
 msgid "Center align"
 msgstr "Alineació al centre"
 
-#: ../data/builder/property-bar.glade.h:4
-msgid "Font family"
-msgstr "Família del tipus de lletra"
-
-#: ../data/builder/property-bar.glade.h:5
-msgid "Font size"
-msgstr "Mida del tipus de lletra"
-
-#: ../data/builder/property-bar.glade.h:6
-msgid "Italic"
-msgstr "Cursiva"
-
-#: ../data/builder/property-bar.glade.h:7
+#: ../data/ui/property-bar.ui.h:7
 msgid "Left align"
 msgstr "Alineació a l'esquerra"
 
-#: ../data/builder/property-bar.glade.h:9
-msgid "Line width"
-msgstr "Amplada de la línia"
-
-#: ../data/builder/property-bar.glade.h:10
+#: ../data/ui/property-bar.ui.h:10
 msgid "Right align"
 msgstr "Alineació a la dreta"
 
-#: ../data/builder/property-bar.glade.h:11
-msgid "Text Color"
-msgstr "Color del text"
-
-#: ../data/builder/template-designer.glade.h:1
+#: ../data/ui/template-designer.ui.h:1
 msgid "(e.g., \"Mailing Labels,\" \"Business Cards,\" ...)"
 msgstr "(p.ex. «Etiquetes de correu», «Targetes de visita», etc.)"
 
-#: ../data/builder/template-designer.glade.h:2
+#: ../data/ui/template-designer.ui.h:2
 msgid "(e.g., 8163A)"
 msgstr "(p.ex. 8163A)"
 
-#: ../data/builder/template-designer.glade.h:3
+#: ../data/ui/template-designer.ui.h:3
 msgid "(e.g., Avery, Acme, ...)"
 msgstr "(p.ex. Avery, Acme, ...)"
 
-#: ../data/builder/template-designer.glade.h:4
+#: ../data/ui/template-designer.ui.h:4
 msgid "1. Outer radius:"
 msgstr "1. Radi exterior:"
 
-#: ../data/builder/template-designer.glade.h:5
+#: ../data/ui/template-designer.ui.h:5
 msgid "1. Radius:"
 msgstr "1. Radi:"
 
-#: ../data/builder/template-designer.glade.h:6
+#: ../data/ui/template-designer.ui.h:6
 msgid "1. Width:"
 msgstr "1. Amplada:"
 
-#: ../data/builder/template-designer.glade.h:7
+#: ../data/ui/template-designer.ui.h:7
 msgid "2. Height:"
 msgstr "2. Alçada:"
 
-#: ../data/builder/template-designer.glade.h:8
+#: ../data/ui/template-designer.ui.h:8
 msgid "2. Inner radius:"
 msgstr "2. Radi interior:"
 
-#: ../data/builder/template-designer.glade.h:9
+#: ../data/ui/template-designer.ui.h:9
 msgid "2. Waste (overprint allowed):"
 msgstr "2. Residu (es pot imprimir fora dels límits):"
 
-#: ../data/builder/template-designer.glade.h:10
+#: ../data/ui/template-designer.ui.h:10
 msgid "3. Clipping width:"
 msgstr "3. Amplada de retallada:"
 
-#: ../data/builder/template-designer.glade.h:11
+#: ../data/ui/template-designer.ui.h:11
 msgid "3. Margin"
 msgstr "3. Marge"
 
-#: ../data/builder/template-designer.glade.h:12
+#: ../data/ui/template-designer.ui.h:12
 msgid "3. Round (radius of corner):"
 msgstr "3. Corba (radi de la cantonada):"
 
-#: ../data/builder/template-designer.glade.h:13
+#: ../data/ui/template-designer.ui.h:13
 msgid "4. Clipping height:"
 msgstr "4. Alçada de retallada"
 
-#: ../data/builder/template-designer.glade.h:14
+#: ../data/ui/template-designer.ui.h:14
 msgid "4. Horiz. waste (overprint allowed):"
 msgstr "2. Residu horitz. (es pot imprimir fora dels límits):"
 
-#: ../data/builder/template-designer.glade.h:15
+#: ../data/ui/template-designer.ui.h:15
 msgid "5. Vert. waste (overprint allowed):"
 msgstr "5. Residu vert. (es pot imprimir fora dels límits):"
 
-#: ../data/builder/template-designer.glade.h:16
+#: ../data/ui/template-designer.ui.h:16
 msgid "5. Waste (overprint allowed):"
 msgstr "2. Residu (es pot imprimir fora dels límits):"
 
-#: ../data/builder/template-designer.glade.h:17
+#: ../data/ui/template-designer.ui.h:17
 msgid "6. Margin"
 msgstr "6. Marge"
 
-#: ../data/builder/template-designer.glade.h:18
+#: ../data/ui/template-designer.ui.h:18
 msgid "Brand/Manufacturer:"
 msgstr "Marca/fabricant:"
 
-#: ../data/builder/template-designer.glade.h:19
+#: ../data/ui/template-designer.ui.h:19
 msgid "CD/DVD (including credit card CDs)"
 msgstr "CD/DVD (també s'hi inclouen els CD de mida de targeta de crèdit)"
 
-#: ../data/builder/template-designer.glade.h:20
+#: ../data/ui/template-designer.ui.h:20
 msgid ""
 "Congratulations!\n"
 "\n"
@@ -1901,23 +2386,19 @@ msgstr ""
 "En cas contrari, podeu fer clic a «Cancel·la» per a abandonar-lo \n"
 "o a «Enrere» per a continuar-lo editant."
 
-#: ../data/builder/template-designer.glade.h:27
-msgid "Description:"
-msgstr "Descripció:"
-
-#: ../data/builder/template-designer.glade.h:28
+#: ../data/ui/template-designer.ui.h:28
 msgid "Distance from left edge (x0):"
 msgstr "Distància des de la vora esquerra (x0):"
 
-#: ../data/builder/template-designer.glade.h:29
+#: ../data/ui/template-designer.ui.h:29
 msgid "Distance from top edge (y0):"
 msgstr "Distància des de la vora superior (y0):"
 
-#: ../data/builder/template-designer.glade.h:31
+#: ../data/ui/template-designer.ui.h:31
 msgid "Horizontal pitch (dx):"
 msgstr "Separació horitzontal (dx):"
 
-#: ../data/builder/template-designer.glade.h:32
+#: ../data/ui/template-designer.ui.h:32
 msgid ""
 "How many layouts will your template contain? \n"
 "\n"
@@ -1932,36 +2413,27 @@ msgstr ""
 "disposició, com podeu veure en el primer exemple.\n"
 "El segon exemple mostra en quins casos en calen dues."
 
-#: ../data/builder/template-designer.glade.h:37
+#: ../data/ui/template-designer.ui.h:37
 msgid "Layout #1"
 msgstr "Disposició n. 1"
 
-#: ../data/builder/template-designer.glade.h:38
+#: ../data/ui/template-designer.ui.h:38
 msgid "Layout #2"
 msgstr "Disposició n. 2"
 
-#: ../data/builder/template-designer.glade.h:39
+#: ../data/ui/template-designer.ui.h:39
 msgid "Number across (nx):"
 msgstr "Nombre per amplada (nx):"
 
-#: ../data/builder/template-designer.glade.h:40
+#: ../data/ui/template-designer.ui.h:40
 msgid "Number down (ny):"
 msgstr "Nombre per alçada (ny):"
 
-#: ../data/builder/template-designer.glade.h:41
+#: ../data/ui/template-designer.ui.h:41
 msgid "Number of layouts:"
 msgstr "Nombre de disposicions:"
 
-#: ../data/builder/template-designer.glade.h:42
-#: ../data/builder/wdgt-media-select.glade.h:3
-msgid "Page size:"
-msgstr "Mida de la pàgina:"
-
-#: ../data/builder/template-designer.glade.h:43
-msgid "Part #:"
-msgstr "Núm. de model:"
-
-#: ../data/builder/template-designer.glade.h:44
+#: ../data/ui/template-designer.ui.h:44
 msgid ""
 "Please enter the following identifying information about the template "
 "stationery."
@@ -1969,11 +2441,11 @@ msgstr ""
 "Introduïu la informació d'identificació següent sobre la papereria de la "
 "plantilla."
 
-#: ../data/builder/template-designer.glade.h:45
+#: ../data/ui/template-designer.ui.h:45
 msgid "Please enter the following layout information."
 msgstr "Introduïu la informació de disposició següent."
 
-#: ../data/builder/template-designer.glade.h:46
+#: ../data/ui/template-designer.ui.h:46
 msgid ""
 "Please enter the following size parameters of a single label in your "
 "template."
@@ -1981,7 +2453,7 @@ msgstr ""
 "Introduïu els paràmetres de mida següents d'una etiqueta única a la vostra "
 "plantilla."
 
-#: ../data/builder/template-designer.glade.h:47
+#: ../data/ui/template-designer.ui.h:47
 msgid ""
 "Please enter the following size parameters of a single label or card in your "
 "template."
@@ -1989,27 +2461,27 @@ msgstr ""
 "Introduïu els paràmetres de mida següents d'una etiqueta única o targeta a "
 "la vostra plantilla"
 
-#: ../data/builder/template-designer.glade.h:48
+#: ../data/ui/template-designer.ui.h:48
 msgid "Please select the basic shape of the labels or cards."
 msgstr "Seleccioneu la forma bàsica de les etiquetes o targetes."
 
-#: ../data/builder/template-designer.glade.h:49
+#: ../data/ui/template-designer.ui.h:49
 msgid "Please select the page size of the template stationery."
 msgstr "Seleccioneu la mida de la pàgina de la papereria de la plantilla."
 
-#: ../data/builder/template-designer.glade.h:50
+#: ../data/ui/template-designer.ui.h:50
 msgid "Print test sheet"
 msgstr "Imprimeix un full de mostra"
 
-#: ../data/builder/template-designer.glade.h:51
+#: ../data/ui/template-designer.ui.h:51
 msgid "Rectangular or square (can have rounded corners)"
 msgstr "Rectangular o quadrada (pot tenir cantonades arrodonides)"
 
-#: ../data/builder/template-designer.glade.h:52
+#: ../data/ui/template-designer.ui.h:52
 msgid "Round"
 msgstr "Circular"
 
-#: ../data/builder/template-designer.glade.h:53
+#: ../data/ui/template-designer.ui.h:53
 msgid ""
 "Templates needing\n"
 "two layouts."
@@ -2017,7 +2489,7 @@ msgstr ""
 "Plantilles que requereixen\n"
 "dues disposicions."
 
-#: ../data/builder/template-designer.glade.h:55
+#: ../data/ui/template-designer.ui.h:55
 msgid ""
 "Templates needing only\n"
 "one layout."
@@ -2025,11 +2497,11 @@ msgstr ""
 "Plantilles que requereixen\n"
 "una disposició."
 
-#: ../data/builder/template-designer.glade.h:57
+#: ../data/ui/template-designer.ui.h:57
 msgid "Vertical pitch (dy):"
 msgstr "Separació vertical (dy):"
 
-#: ../data/builder/template-designer.glade.h:58
+#: ../data/ui/template-designer.ui.h:58
 msgid ""
 "Welcome to the gLabels Template Designer.\n"
 "\n"
@@ -2040,199 +2512,227 @@ msgstr ""
 "Aquest diàleg us ajudarà a crear una plantilla personalitzada del \n"
 "gLabels."
 
-#: ../data/builder/template-designer.glade.h:62
-msgid "cd_size_page"
-msgstr "cd_size_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:1
+msgid "Collate"
+msgstr "Compagina"
 
-#: ../data/builder/template-designer.glade.h:63
-msgid "finish_page"
-msgstr "finish_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:2
+#, fuzzy
+msgid "Copies"
+msgstr "Còpies"
 
-#: ../data/builder/template-designer.glade.h:65
-msgid "layout_page"
-msgstr "layout_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:3
+msgid "Copies:"
+msgstr "Còpies"
 
-#: ../data/builder/template-designer.glade.h:66
-msgid "name_page"
-msgstr "name_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:5
+msgid "Merge Control"
+msgstr ""
 
-#: ../data/builder/template-designer.glade.h:67
-msgid "nlayouts_page"
-msgstr "nlayouts_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:6
+#, fuzzy
+msgid "Options"
+msgstr "<b>Opcions</b>"
 
-#: ../data/builder/template-designer.glade.h:68
-msgid "pg_size_page"
-msgstr "pg_size_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:7
+msgid "Sheets:"
+msgstr "Fulls:"
 
-#: ../data/builder/template-designer.glade.h:69
-msgid "rect_size_page"
-msgstr "rect_size_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:8
+msgid "Start on label"
+msgstr "Comença a l'etiqueta"
 
-#: ../data/builder/template-designer.glade.h:70
-msgid "round_size_page"
-msgstr "round_size_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:9
+msgid "from:"
+msgstr "de:"
 
-#: ../data/builder/template-designer.glade.h:71
-msgid "shape_page"
-msgstr "shape_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:10
+msgid "on 1st sheet"
+msgstr "al primer full"
 
-#: ../data/builder/template-designer.glade.h:72
-msgid "start_page"
-msgstr "start_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:14
+msgid "to:"
+msgstr "a:"
 
-#: ../data/builder/wdgt-media-select.glade.h:1
-msgid "Brand:"
-msgstr "Marca:"
+#: ../data/desktop/glabels-3.0.desktop.in.h:1
+msgid "Create labels, business cards and media covers"
+msgstr "Crea etiquetes, targetes de visita i caràtules de suports multimèdia"
 
-#: ../data/builder/wdgt-media-select.glade.h:2
-msgid "Category:"
-msgstr "Categoria:"
+#: ../data/desktop/glabels-3.0.desktop.in.h:2
+#, fuzzy
+msgid "gLabels Label Designer 3"
+msgstr "Dissenyador d'etiquetes gLabels"
 
-#: ../data/builder/wdgt-media-select.glade.h:4
-msgid "Recent templates"
-msgstr "Plantilles recents"
+#: ../data/mime/glabels-3.0.xml.in.h:1
+msgid "gLabels Project File"
+msgstr "Fitxer de projecte del gLabels"
 
-#: ../data/builder/wdgt-media-select.glade.h:5
-msgid "Search all templates"
-msgstr "Cerca totes les plantilles"
+#. Envelopes
+#: ../templates/paper-sizes.xml.h:2
+msgid "#10 Envelope"
+msgstr ""
 
 #. Other ISO A series sizes
-#: ../data/templates/paper-sizes.xml.h:2
+#: ../templates/paper-sizes.xml.h:4
 msgid "A0"
 msgstr "A0"
 
-#: ../data/templates/paper-sizes.xml.h:3
+#: ../templates/paper-sizes.xml.h:5
 msgid "A1"
 msgstr "A1"
 
-#: ../data/templates/paper-sizes.xml.h:4
+#: ../templates/paper-sizes.xml.h:6
 msgid "A10"
 msgstr "A10"
 
-#: ../data/templates/paper-sizes.xml.h:5
+#: ../templates/paper-sizes.xml.h:7
 msgid "A2"
 msgstr "A2"
 
-#: ../data/templates/paper-sizes.xml.h:6
+#: ../templates/paper-sizes.xml.h:8
 msgid "A3"
 msgstr "A3"
 
-#: ../data/templates/paper-sizes.xml.h:7
+#. Most popular (at top of list)
+#: ../templates/paper-sizes.xml.h:10
 msgid "A4"
 msgstr "A4"
 
-#: ../data/templates/paper-sizes.xml.h:8
+#: ../templates/paper-sizes.xml.h:11
 msgid "A5"
 msgstr "A5"
 
-#: ../data/templates/paper-sizes.xml.h:9
+#: ../templates/paper-sizes.xml.h:12
 msgid "A6"
 msgstr "A6"
 
-#: ../data/templates/paper-sizes.xml.h:10
+#: ../templates/paper-sizes.xml.h:13
 msgid "A7"
 msgstr "A7"
 
-#: ../data/templates/paper-sizes.xml.h:11
+#: ../templates/paper-sizes.xml.h:14
 msgid "A8"
 msgstr "A8"
 
-#: ../data/templates/paper-sizes.xml.h:12
+#: ../templates/paper-sizes.xml.h:15
 msgid "A9"
 msgstr "A9"
 
 #. ISO B series sizes
-#: ../data/templates/paper-sizes.xml.h:14
+#: ../templates/paper-sizes.xml.h:17
 msgid "B0"
 msgstr "B0"
 
-#: ../data/templates/paper-sizes.xml.h:15
+#: ../templates/paper-sizes.xml.h:18
 msgid "B1"
 msgstr "B1"
 
-#: ../data/templates/paper-sizes.xml.h:16
+#: ../templates/paper-sizes.xml.h:19
 msgid "B10"
 msgstr "B10 "
 
-#: ../data/templates/paper-sizes.xml.h:17
+#: ../templates/paper-sizes.xml.h:20
 msgid "B2"
 msgstr "B2"
 
-#: ../data/templates/paper-sizes.xml.h:18
+#: ../templates/paper-sizes.xml.h:21
 msgid "B3"
 msgstr "B3"
 
-#: ../data/templates/paper-sizes.xml.h:19
+#: ../templates/paper-sizes.xml.h:22
 msgid "B4"
 msgstr "B4"
 
-#: ../data/templates/paper-sizes.xml.h:20
+#: ../templates/paper-sizes.xml.h:23
 msgid "B5"
 msgstr "   "
 
-#: ../data/templates/paper-sizes.xml.h:21
+#: ../templates/paper-sizes.xml.h:24
 msgid "B6"
 msgstr "B6 "
 
-#: ../data/templates/paper-sizes.xml.h:22
+#: ../templates/paper-sizes.xml.h:25
 msgid "B7"
 msgstr "B7"
 
-#: ../data/templates/paper-sizes.xml.h:23
+#: ../templates/paper-sizes.xml.h:26
 msgid "B8"
 msgstr "B8"
 
-#: ../data/templates/paper-sizes.xml.h:24
+#: ../templates/paper-sizes.xml.h:27
 msgid "B9"
 msgstr "B9"
 
-#: ../data/templates/paper-sizes.xml.h:25
+#: ../templates/paper-sizes.xml.h:28
+msgid "C5"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:29
+msgid "C6"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:30
+msgid "DL"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:31
+msgid "Monarch Envelope"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:32
 msgid "US Executive"
 msgstr "Executiu EUA"
 
 #. Other US paper sizes
-#: ../data/templates/paper-sizes.xml.h:27
+#: ../templates/paper-sizes.xml.h:34
 msgid "US Legal"
 msgstr "Legal EUA"
 
-#: ../data/templates/categories.xml.h:1
+#: ../templates/categories.xml.h:1
 msgid "Any card"
 msgstr "Qualsevol targeta"
 
-#: ../data/templates/categories.xml.h:2
+#: ../templates/categories.xml.h:2
 msgid "Any label"
 msgstr "Qualsevol etiqueta"
 
-#: ../data/templates/categories.xml.h:3
+#. ===================================================================
+#: ../templates/categories.xml.h:3 ../templates/pearl-iso-templates.xml.h:8
 msgid "Business cards"
 msgstr "Targetes de visita"
 
-#: ../data/templates/categories.xml.h:4
+#: ../templates/categories.xml.h:4
 msgid "CD/DVD or other media"
 msgstr "CD/DVD o un altre suport"
 
-#: ../data/templates/categories.xml.h:5
+#: ../templates/categories.xml.h:5
 msgid "Mailing/shipping products"
 msgstr "Productes de correu/facturació"
 
-#: ../data/templates/categories.xml.h:6
+#: ../templates/categories.xml.h:6
 msgid "Rectangular labels"
 msgstr "Etiquetes rectangulars"
 
-#: ../data/templates/categories.xml.h:7
+#. ===================================================================
+#: ../templates/categories.xml.h:7 ../templates/pearl-iso-templates.xml.h:46
 msgid "Round labels"
 msgstr "Etiquetes arrodonides"
 
-#: ../data/templates/categories.xml.h:8
+#: ../templates/categories.xml.h:8
 msgid "Square labels"
 msgstr "Etiquetes quadrades"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:2
-#: ../data/templates/avery-iso-templates.xml.h:2
-#: ../data/templates/dymo-other-templates.xml.h:4
-#: ../data/templates/misc-iso-templates.xml.h:2
-#: ../data/templates/zweckform-iso-templates.xml.h:2
+#. ********************************************************************
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:2
+#: ../templates/dymo-other-templates.xml.h:4
+#: ../templates/maco-us-templates.xml.h:2
+#: ../templates/misc-iso-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:1
+#: ../templates/zweckform-iso-templates.xml.h:2
 msgid "Address Labels"
 msgstr "Etiquetes d'adreça"
 
@@ -2241,181 +2741,204 @@ msgstr "Etiquetes d'adreça"
 #. ===================================================================
 #. ********************************************************************
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:4
-#: ../data/templates/avery-iso-templates.xml.h:8
-#: ../data/templates/misc-us-templates.xml.h:4
-#: ../data/templates/misc-iso-templates.xml.h:12
-#: ../data/templates/zweckform-iso-templates.xml.h:6
+#: ../templates/avery-us-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:8
+#: ../templates/misc-us-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:6
 msgid "Business Cards"
 msgstr "Targetes de visita"
 
 #. ===================================================================
 #. ===============================================================
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:6
-#: ../data/templates/avery-iso-templates.xml.h:14
-#: ../data/templates/misc-us-templates.xml.h:8
-#: ../data/templates/misc-iso-templates.xml.h:16
-#: ../data/templates/zweckform-iso-templates.xml.h:8
+#: ../templates/avery-us-templates.xml.h:6
+#: ../templates/avery-iso-templates.xml.h:14
+#: ../templates/misc-us-templates.xml.h:8
+#: ../templates/misc-iso-templates.xml.h:16
+#: ../templates/pearl-iso-templates.xml.h:20
+#: ../templates/worldlabel-us-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:8
 msgid "CD/DVD Labels"
 msgstr "Etiquetes de CD/DVD"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:8
+#: ../templates/avery-us-templates.xml.h:8
 msgid "CD/DVD Labels (Disc Labels)"
 msgstr "Etiquetes de CD/DVD (etiquetes del disc)"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:10
+#: ../templates/avery-us-templates.xml.h:10
 msgid "CD/DVD Labels (Spine Labels)"
 msgstr "Etiquetes de CD/DVD (etiquetes del llom)"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:12
-#: ../data/templates/avery-iso-templates.xml.h:16
+#: ../templates/avery-us-templates.xml.h:12
+#: ../templates/avery-iso-templates.xml.h:16
+#: ../templates/worldlabel-us-templates.xml.h:3
 msgid "Diskette Labels"
 msgstr "Etiquetes de disquet"
 
 #. the LSK labels can be torn in half down the center
-#: ../data/templates/avery-us-templates.xml.h:14
+#: ../templates/avery-us-templates.xml.h:14
 msgid "Divider Labels"
 msgstr "Etiquetes divisòries"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:16
+#: ../templates/avery-us-templates.xml.h:16
+#: ../templates/avery-other-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:4
+msgid "File Folder Labels"
+msgstr "Etiquetes d'arxivador"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:5
 msgid "Filing Labels"
 msgstr "Etiquetes d'arxivador"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:18
+#: ../templates/avery-us-templates.xml.h:20
+#: ../templates/worldlabel-us-templates.xml.h:6
 msgid "Full Sheet Labels"
 msgstr "Etiquetes de full complet"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:20
+#: ../templates/avery-us-templates.xml.h:22
 msgid "ID Labels"
 msgstr "Etiquetes d'identificació"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:22
+#: ../templates/avery-us-templates.xml.h:24
 msgid "Index Cards"
 msgstr "Targetes d'índex"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:24
+#: ../templates/avery-us-templates.xml.h:26
 msgid "Large Round Labels"
 msgstr "Etiquetes rodones grans"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:26
+#: ../templates/avery-us-templates.xml.h:28
 msgid "Name Badge Labels"
 msgstr "Etiquetes d'acreditació"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:28
+#: ../templates/avery-us-templates.xml.h:30
 msgid "Post cards"
 msgstr "Postals"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:30
-#: ../data/templates/dymo-other-templates.xml.h:12
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:32
+#: ../templates/dymo-other-templates.xml.h:12
+#: ../templates/worldlabel-us-templates.xml.h:8
 msgid "Return Address Labels"
 msgstr "Etiquetes d'adreça de retorn"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:32
+#: ../templates/avery-us-templates.xml.h:34
+#: ../templates/maco-us-templates.xml.h:3
+#: ../templates/misc-us-templates.xml.h:30
+#: ../templates/worldlabel-us-templates.xml.h:9
 msgid "Round Labels"
 msgstr "Etiquetes arroronides"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:34
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:36
+#: ../templates/uline-us-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:10
 msgid "Shipping Labels"
 msgstr "Etiquetes de facturació"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:36
+#: ../templates/avery-us-templates.xml.h:38
 msgid "Small Round Labels"
 msgstr "Etiquetes rodones petites"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:38
+#: ../templates/avery-us-templates.xml.h:40
 msgid "Square Labels"
 msgstr "Etiquetes quadrades"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:40
+#: ../templates/avery-us-templates.xml.h:42
 msgid "Tent Cards"
 msgstr "Targetes doblegades"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:42
+#: ../templates/avery-us-templates.xml.h:44
+#: ../templates/worldlabel-us-templates.xml.h:11
 msgid "Video Tape Face Labels"
 msgstr "Etiquetes de caràtula de cinta de vídeo"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:44
+#: ../templates/avery-us-templates.xml.h:46
+#: ../templates/worldlabel-us-templates.xml.h:12
 msgid "Video Tape Spine Labels"
 msgstr "Etiquetes de llom de cinta de vídeo"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:4
 msgid "Address labels"
 msgstr "Etiquetes d'adreça"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:6
+#: ../templates/avery-iso-templates.xml.h:6
 msgid "Allround labels"
 msgstr "Etiquetes d'ús general"
 
 #. ===============================================================
-#: ../data/templates/avery-iso-templates.xml.h:10
+#: ../templates/avery-iso-templates.xml.h:10
 msgid "CD Booklet"
 msgstr "Llibret de CD"
 
 #. ===============================================================
-#: ../data/templates/avery-iso-templates.xml.h:12
+#: ../templates/avery-iso-templates.xml.h:12
 msgid "CD Inlet"
 msgstr "Coberta interior de CD"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:18
+#: ../templates/avery-iso-templates.xml.h:18
 msgid "Diskette labels"
 msgstr "Etiquetes de disquet"
 
 #. ===============================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:20
-#: ../data/templates/misc-us-templates.xml.h:18
-#: ../data/templates/misc-iso-templates.xml.h:36
-#: ../data/templates/zweckform-iso-templates.xml.h:16
+#: ../templates/avery-iso-templates.xml.h:20
+#: ../templates/misc-us-templates.xml.h:20
+#: ../templates/misc-iso-templates.xml.h:36
+#: ../templates/zweckform-iso-templates.xml.h:16
 msgid "Mailing Labels"
 msgstr "Etiquetes de correu"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:22
+#: ../templates/avery-iso-templates.xml.h:22
 msgid "Mailing labels"
 msgstr "Etiquetes de correu"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:24
+#: ../templates/avery-iso-templates.xml.h:24
 msgid "Mini Address Labels"
 msgstr "Etiquetes d'adreça miniatura"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:26
-msgid "Shipping labels"
-msgstr "Etiquetes de facturació"
+#: ../templates/avery-iso-templates.xml.h:26
+#, fuzzy
+msgid "Mini Labels"
+msgstr "Etiquetes de CD miniatura"
 
 #. ===================================================================
-#: ../data/templates/avery-other-templates.xml.h:2
-msgid "File Folder Labels"
-msgstr "Etiquetes d'arxivador"
+#: ../templates/avery-iso-templates.xml.h:28
+msgid "Shipping labels"
+msgstr "Etiquetes de facturació"
 
-#: ../data/templates/brother-other-templates.xml.h:1
+#: ../templates/brother-other-templates.xml.h:1
 msgid "Multi Purpose Labels 17mm x 54mm"
 msgstr "Etiquetes d'ús general 17 mm x 54 mm"
 
-#: ../data/templates/brother-other-templates.xml.h:2
+#: ../templates/brother-other-templates.xml.h:2
 msgid "Shipping Labels 62mm x 100mm"
 msgstr "Etiquetes de facturació 62 mm x 100 mm"
 
@@ -2436,279 +2959,497 @@ msgstr "Etiquetes de facturació 62 mm x 100 mm"
 #. *********************************************************************
 #. *********************************************************************
 #.
-#: ../data/templates/brother-other-templates.xml.h:20
+#: ../templates/brother-other-templates.xml.h:20
 msgid "Standard Address Labels 29mm x 90mm"
 msgstr "Etiquetes d'adreça estàndard 29 mm x 90 mm"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:2
+#: ../templates/dymo-other-templates.xml.h:2
 msgid "3.5in Diskette"
 msgstr "Disquet de 3.5\\\""
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:6
+#: ../templates/dymo-other-templates.xml.h:6
 msgid "File Folder"
 msgstr "Arxivador"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:8
+#: ../templates/dymo-other-templates.xml.h:8
 msgid "Hanging Folder"
 msgstr "Carpeta penjant d'arxiu"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:10
+#: ../templates/dymo-other-templates.xml.h:10
 msgid "Large Address Labels"
 msgstr "Etiquetes d'adreça grans"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:14
+#: ../templates/dymo-other-templates.xml.h:14
 msgid "Shipping Address Labels"
 msgstr "Etiquetes d'adreça de facturació"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:2
+#: ../templates/misc-us-templates.xml.h:2
 msgid "Business Card CD"
 msgstr "CD de targeta de visita"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:6
+#: ../templates/misc-us-templates.xml.h:6
 msgid "CD Template Rectangles"
 msgstr "Rectangles de plantilla de CD"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:10
+#: ../templates/misc-us-templates.xml.h:10
 msgid "CD/DVD Labels (Face Only)"
 msgstr "Etiquetes de CD/DVD (només la caràtula)"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:12
-#: ../data/templates/misc-iso-templates.xml.h:18
+#: ../templates/misc-us-templates.xml.h:12
+#: ../templates/misc-iso-templates.xml.h:18
 msgid "CD/DVD Labels (face only)"
 msgstr "Etiquetes de CD/DVD (només la caràtula)"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:14
+#: ../templates/misc-us-templates.xml.h:14
 msgid "Cassette Labels"
 msgstr "Etiquetes de casset"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:16
+#: ../templates/misc-us-templates.xml.h:16
 msgid "DLT Labels"
 msgstr "Etiquetes per a cintes DLT"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:20
+#: ../templates/misc-us-templates.xml.h:18
+#, fuzzy
+msgid "Jewel Case Booklet"
+msgstr "Llibret de CD"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:22
 msgid "Microtube labels"
 msgstr "Etiquetes de microtubs"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:22
+#: ../templates/misc-us-templates.xml.h:24
 msgid "Mini-CD Labels"
 msgstr "Etiquetes de CD miniatura"
 
-#: ../data/templates/misc-us-templates.xml.h:23
+#: ../templates/misc-us-templates.xml.h:25
 msgid "PRO CD Labels 2-up (CD spine only)"
 msgstr "Etiquetes PRO CD (2, només el llom)"
 
-#: ../data/templates/misc-us-templates.xml.h:24
+#: ../templates/misc-us-templates.xml.h:26
 msgid "PRO CD Labels 2-up (Face only)"
 msgstr "Etiquetes PRO CD (2, només la caràtula)"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:26
-#: ../data/templates/misc-iso-templates.xml.h:42
+#: ../templates/misc-us-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:42
 msgid "PRO CD Labels 2-up (face only)"
 msgstr "Etiquetes PRO CD (2, només la caràtula)"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:28
+#: ../templates/misc-us-templates.xml.h:32
 msgid "Slimline CD Case (rightside up)"
 msgstr "Capsa de CD prima (cara amunt)"
 
-#: ../data/templates/misc-us-templates.xml.h:29
+#: ../templates/misc-us-templates.xml.h:33
 msgid "Slimline CD Case (upside down)"
 msgstr "Capsa de CD prima (cara avall)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:4
-#: ../data/templates/zweckform-iso-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:4
+#: ../templates/zweckform-iso-templates.xml.h:4
 msgid "Allround Labels"
 msgstr "Etiquetes d'ús general"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:6
+#: ../templates/misc-iso-templates.xml.h:6
 msgid "Arch File Labels"
 msgstr "Etiquetes d'arxivador"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:8
+#: ../templates/misc-iso-templates.xml.h:8
 msgid "Arch File Labels (large)"
 msgstr "Etiquetes d'arxivador (grans)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:10
+#: ../templates/misc-iso-templates.xml.h:10
 msgid "Arch File Labels (small)"
 msgstr "Etiquetes d'arxivador (petites)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:14
+#: ../templates/misc-iso-templates.xml.h:14
 msgid "CD Labels"
 msgstr "Etiquetes de CD"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:20
+#: ../templates/misc-iso-templates.xml.h:20
 msgid "CD/DVD Labels Standard Format (face only)"
 msgstr "Etiquetes CD/DVD amb format estàndard (només la caràtula)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:22
+#: ../templates/misc-iso-templates.xml.h:22
 msgid "Diskette Labels (face only)"
 msgstr "Etiquetes de disquet (només la caràtula)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:24
+#: ../templates/misc-iso-templates.xml.h:24
 msgid "EPSON Photo Stickers 16"
 msgstr "Fotografies adhesives d'EPSON (16)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:26
+#: ../templates/misc-iso-templates.xml.h:26
 msgid "Etiketten"
 msgstr "Etiquetes"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:28
 msgid "Fridge Magnet Stickers"
 msgstr "Enganxines d'imant de frigorífic"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:30
+#: ../templates/misc-iso-templates.xml.h:30
 msgid "General Labels"
 msgstr "Etiquetes generals"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:32
+#: ../templates/misc-iso-templates.xml.h:32
 msgid "Inkjet/Laser Labels 70x37mm"
 msgstr "Etiquetes per a impressió a raig de tinta/làser 70 x 37 mm"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:38
+#: ../templates/misc-iso-templates.xml.h:38
 msgid "Mailing Labels-2 columns"
 msgstr "Etiquetes de correu - 2 columnes"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:40
+#: ../templates/misc-iso-templates.xml.h:40
 msgid "Mailing Labels-3 columns"
 msgstr "Etiquetes de correu - 3 columnes"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:44
-#: ../data/templates/zweckform-iso-templates.xml.h:24
+#: ../templates/misc-iso-templates.xml.h:44
+#: ../templates/zweckform-iso-templates.xml.h:24
 msgid "Rectangular Labels"
 msgstr "Etiquetes rectangulars"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:46
+#: ../templates/misc-iso-templates.xml.h:46
+#, fuzzy
+msgid "Universal Labels"
+msgstr "Etiquetes generals"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:48
 msgid "Video Labels (face only)"
 msgstr "Etiquetes de vídeo (només la caràtula)"
 
 #. ===================================================================
-#: ../data/templates/misc-other-templates.xml.h:2
+#: ../templates/misc-other-templates.xml.h:2
 msgid "Multi-Purpose Labels"
 msgstr "Etiquetes d'ús general"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:10
+#: ../templates/pearl-iso-templates.xml.h:4
+#, fuzzy
+msgid "Address Labels (STAMPIT)"
+msgstr "Etiquetes d'adreça"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:6
+#, fuzzy
+msgid "Bottle labels"
+msgstr "Etiquetes de disquet"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:10
+msgid "Business cards glossy, both sides printable"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:12
+#, fuzzy
+msgid "Business cards high glossy"
+msgstr "Targetes de visita"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:14
+#, fuzzy
+msgid "Business cards punched"
+msgstr "Targetes de visita"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:16
+#, fuzzy
+msgid "Business cards punched dull"
+msgstr "Targetes de visita"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:18
+#, fuzzy
+msgid "Business cards punched glossy"
+msgstr "Targetes de visita"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:22
+#, fuzzy
+msgid "Floppy disk labels"
+msgstr "Etiquetes d'ús general"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:24
+#, fuzzy
+msgid "Foldable business cards"
+msgstr "Targetes de visita"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:26
+msgid "Foldable business cards glossy/dull"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:28
+#, fuzzy
+msgid "Labels A4"
+msgstr "Etiquetes"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:30
+#, fuzzy
+msgid "Labels A5"
+msgstr "Etiquetes"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:32
+#, fuzzy
+msgid "Labels A6"
+msgstr "Etiquetes"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:34
+msgid "Membership cards"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:36
+msgid "Membership cards, both sides printable"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:38
+#, fuzzy
+msgid "Name plates"
+msgstr "name_page"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:40
+msgid "Passport photo labels glossy"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:42
+#, fuzzy
+msgid "Photo labels"
+msgstr "Quant al gLabels"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:44
+msgid "Photo labels semiglossy"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:48
+#, fuzzy
+msgid "SD card labels"
+msgstr "Etiquetes quadrades"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:50
+msgid "Self-adhesive film transparent"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:52
+msgid "Self-adhesive film weatherproof"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:54
+#, fuzzy
+msgid "Self-adhesive labels"
+msgstr "Etiquetes quadrades"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:56
+msgid "Self-adhesive window film"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:10
 msgid "Correction and Cover-up Labels"
 msgstr "Etiqueted de correcció i cobertura"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:12
 msgid "File Back Labels"
 msgstr "Etiquetes de llom d'arxivador"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:14
+#: ../templates/zweckform-iso-templates.xml.h:14
 msgid "Lever Arch File Labels"
 msgstr "Etiquetes d'arxivador"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:18
+#: ../templates/zweckform-iso-templates.xml.h:18
 msgid "Multi-purpose Stick+Lift Labels"
 msgstr "Etiquetes d'ús general reenganxables «Stick+Lift»"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:20
+#: ../templates/zweckform-iso-templates.xml.h:20
 msgid "QSL-Karten Etiketten 70mm x 50,8mm"
 msgstr "Etiquetes de targeta QSL 70 mm x 50,8 mm"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:22
+#: ../templates/zweckform-iso-templates.xml.h:22
 msgid "Rectangular Copier Labels"
 msgstr "Etiquetes de copiadora rectangulars"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:26
+#: ../templates/zweckform-iso-templates.xml.h:26
 msgid "Video Labels (back)"
 msgstr "Etiquetes de vídeo (part posterior)"
 
-#: ../data/desktop/glabels.desktop.in.h:1
-msgid "Create labels, business cards and media covers"
-msgstr "Crea etiquetes, targetes de visita i caràtules de suports multimèdia"
+#~ msgid "- gLabels label designer"
+#~ msgstr "- dissenyador d'etiquetes gLabels"
 
-#: ../data/desktop/glabels.desktop.in.h:2
-msgid "gLabels Label Designer"
-msgstr "Dissenyador d'etiquetes gLabels"
+#~ msgid "- batch process gLabels label files"
+#~ msgstr "- processa en lot fitxers d'etiqueta del gLabels"
 
-#: ../data/mime/glabels.keys.in.h:1 ../data/mime/glabels.xml.in.h:1
-msgid "gLabels Project File"
-msgstr "Fitxer de projecte del gLabels"
+#~ msgid "Show tooltips"
+#~ msgstr "Mostra els indicadors de funció"
 
-#: ../barcode-0.98/compat/getopt.c:583
-#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: l'opció «%s» és ambigua\n"
+#~ msgid "Show tooltips for property toolbar"
+#~ msgstr "Mostra els indicadors de funció a la barra de les propietats"
 
-#: ../barcode-0.98/compat/getopt.c:607
-#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: l'opció «--%s» no admet cap argument\n"
+#~ msgid "Show tooltips for main toolbar"
+#~ msgstr "Mostra els indicadors de funció a la barra principal"
 
-#: ../barcode-0.98/compat/getopt.c:612
-#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: l'opció «%c%s» no permet cap argument\n"
+#~ msgid "Show tooltips for drawing toolbar"
+#~ msgstr "Mostra els indicadors de funció a la barra de dibuix"
 
-#: ../barcode-0.98/compat/getopt.c:629
-#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s: l'opció «%s» requereix un argumetn\n"
+#~ msgid "Text file with comma delimeters (CSV)"
+#~ msgstr "Fitxer de text amb comes delimitadores (CSV)"
 
-#. --option
-#: ../barcode-0.98/compat/getopt.c:658
-#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: no es reconeix l'opció «--%s»\n"
+#~ msgid "Text file with colon delimeters"
+#~ msgstr "Fitxer de text amb dos punts delimitadors"
 
-#. +option or -option
-#: ../barcode-0.98/compat/getopt.c:662
-#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: no es reconeix l'opció «%c%s»\n"
+#~ msgid "Text file with tab delimeters"
+#~ msgstr "Fitxer de text amb tabulacions delimitadores"
 
-#. 1003.2 specifies the format of this message.
-#: ../barcode-0.98/compat/getopt.c:688
-#, c-format
-msgid "%s: illegal option -- %c\n"
-msgstr "%s: l'opció --%c no és vàlida\n"
+#~ msgid "Data from a file containing VCards"
+#~ msgstr "Dades d'un fitxer que conté VCards"
 
-#: ../barcode-0.98/compat/getopt.c:691
-#, c-format
-msgid "%s: invalid option -- %c\n"
-msgstr "%s: l'opció --%c no és vàlida\n"
+#~ msgid "%s x %s %s"
+#~ msgstr "%s x %s %s"
 
-#: ../barcode-0.98/compat/getopt.c:727
-#, c-format
-msgid "%s: option requires an argument -- %c\n"
-msgstr "%s: l'opció --%c requereix un argument\n"
+#~ msgid "%.5g x %.5g %s"
+#~ msgstr "%.5g x %.5g %s"
+
+#~ msgid "%.5g %s diameter"
+#~ msgstr "%.5g %s de diàmetre"
+
+#~ msgid "<b>Label orientation</b>"
+#~ msgstr "<b>Orientació de l'etiqueta</b>"
+
+#~ msgid "<b>Media type</b>"
+#~ msgstr "<b>Tipus de suport</b>"
+
+#~ msgid "00000000000 00000"
+#~ msgstr "00000000000 00000"
+
+#~ msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
+#~ msgstr ""
+#~ "<span weight=\"bold\" size=\"larger\">Propietats de l'objecte Xxx</span>"
+
+#~ msgid "Select A File"
+#~ msgstr "Seleccioneu un fitxer"
+
+#~ msgid "<span weight=\"bold\">Default page size</span>"
+#~ msgstr "<span weight=\"bold\">Mida de pàgina predeterminada</span>"
+
+#~ msgid "<span weight=\"bold\">Fill</span>"
+#~ msgstr "<span weight=\"bold\">Emplenat</span>"
+
+#~ msgid "<span weight=\"bold\">Line</span>"
+#~ msgstr "<span weight=\"bold\">Línia</span>"
+
+#~ msgid "<span weight=\"bold\">Text</span>"
+#~ msgstr "<span weight=\"bold\">Text</span>"
+
+#~ msgid "<span weight=\"bold\">Units</span>"
+#~ msgstr "<span weight=\"bold\">Unitats</span>"
+
+#~ msgid "<b>Print control (Merge)</b>"
+#~ msgstr "<b>Control d'impressió (fusió)</b>"
+
+#~ msgid "<b>Print control (Simple)</b>"
+#~ msgstr "<b>Control d'impressió (simple)</b>"
+
+#~ msgid "cd_size_page"
+#~ msgstr "cd_size_page"
+
+#~ msgid "finish_page"
+#~ msgstr "finish_page"
+
+#~ msgid "layout_page"
+#~ msgstr "layout_page"
+
+#~ msgid "nlayouts_page"
+#~ msgstr "nlayouts_page"
+
+#~ msgid "pg_size_page"
+#~ msgstr "pg_size_page"
+
+#~ msgid "rect_size_page"
+#~ msgstr "rect_size_page"
+
+#~ msgid "round_size_page"
+#~ msgstr "round_size_page"
+
+#~ msgid "shape_page"
+#~ msgstr "shape_page"
+
+#~ msgid "start_page"
+#~ msgstr "start_page"
+
+#~ msgid "Search all templates"
+#~ msgstr "Cerca totes les plantilles"
+
+#~ msgid "%s: option `%s' is ambiguous\n"
+#~ msgstr "%s: l'opció «%s» és ambigua\n"
+
+#~ msgid "%s: option `--%s' doesn't allow an argument\n"
+#~ msgstr "%s: l'opció «--%s» no admet cap argument\n"
+
+#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
+#~ msgstr "%s: l'opció «%c%s» no permet cap argument\n"
+
+#~ msgid "%s: option `%s' requires an argument\n"
+#~ msgstr "%s: l'opció «%s» requereix un argumetn\n"
+
+#~ msgid "%s: unrecognized option `--%s'\n"
+#~ msgstr "%s: no es reconeix l'opció «--%s»\n"
+
+#~ msgid "%s: unrecognized option `%c%s'\n"
+#~ msgstr "%s: no es reconeix l'opció «%c%s»\n"
+
+#~ msgid "%s: illegal option -- %c\n"
+#~ msgstr "%s: l'opció --%c no és vàlida\n"
+
+#~ msgid "%s: invalid option -- %c\n"
+#~ msgstr "%s: l'opció --%c no és vàlida\n"
 
-                
+#~ msgid "%s: option requires an argument -- %c\n"
+#~ msgstr "%s: l'opció --%c requereix un argument\n"
diff --git a/po/ca@valencia.po b/po/ca@valencia.po
new file mode 100644 (file)
index 0000000..94d1967
--- /dev/null
@@ -0,0 +1,3180 @@
+# Catalan translations for glabels package
+# Traduccions al català del paquet «glabels».
+# Copyright (C) 2009 THE glabels'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the glabels package.
+# David Planella <david.planella@gmail.com>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: glabels 2\n"
+"Report-Msgid-Bugs-To: http://sourceforge.net/tracker/?group_id=46122&ati\n"
+"POT-Creation-Date: 2010-10-30 16:16+0000\n"
+"PO-Revision-Date: 2009-02-08 22:00+0100\n"
+"Last-Translator: David Planella <david.planella@gmail.com>\n"
+"Language-Team: Catalan <tradgnome@softcatala.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../src/glabels.c:75 ../src/glabels-batch.c:71
+msgid "[FILE...]"
+msgstr "[FITXER...]"
+
+#: ../src/glabels.c:91
+msgid "- gLabels label designer"
+msgstr "- dissenyador d'etiquetes gLabels"
+
+#: ../src/glabels-batch.c:55
+msgid "set output filename (default=\"output.pdf\")"
+msgstr ""
+"estableix el nom del fitxer d'eixida (valor predeterminat = «output.pdf»)"
+
+#: ../src/glabels-batch.c:55 ../src/glabels-batch.c:69
+msgid "filename"
+msgstr "nom de fitxer"
+
+#: ../src/glabels-batch.c:57
+msgid "number of sheets (default=1)"
+msgstr "nombre de fulls (valor predeterminat = 1"
+
+#: ../src/glabels-batch.c:57
+msgid "sheets"
+msgstr "fulls"
+
+#: ../src/glabels-batch.c:59
+msgid "number of copies (default=1)"
+msgstr "nombre de còpies (valor predeterminat = 1"
+
+#: ../src/glabels-batch.c:59
+msgid "copies"
+msgstr "còpies"
+
+#: ../src/glabels-batch.c:61
+msgid "first label on first sheet (default=1)"
+msgstr "la primera etiqueta al primer full"
+
+#: ../src/glabels-batch.c:61
+msgid "first"
+msgstr "primer"
+
+#: ../src/glabels-batch.c:63 ../data/glade/print-custom-widget.glade.h:6
+msgid "print outlines (to test printer alignment)"
+msgstr "imprimeix els contorns (per a comprovar l'alineació de la impressora)"
+
+#: ../src/glabels-batch.c:65 ../data/glade/print-custom-widget.glade.h:5
+msgid "print in reverse (i.e. a mirror image)"
+msgstr "imprimeix invertit (és a dir, com una imatge reflectida en un mirall)"
+
+#: ../src/glabels-batch.c:67 ../data/glade/print-custom-widget.glade.h:4
+msgid "print crop marks"
+msgstr "imprimeix les marques de tall"
+
+#: ../src/glabels-batch.c:69
+msgid "input file for merging"
+msgstr "fitxer d'entrada per a fusionar"
+
+#: ../src/glabels-batch.c:99
+msgid "- batch process gLabels label files"
+msgstr "- processa en lot fitxers d'etiqueta del gLabels"
+
+#: ../src/glabels-batch.c:145
+#, c-format
+msgid "cannot perform document merge with glabels file %s\n"
+msgstr "no es realitzar la fusió del document amb el fitxer %s del gLabels\n"
+
+#: ../src/glabels-batch.c:167
+#, c-format
+msgid "cannot open glabels file %s\n"
+msgstr "no es pot obrir el fitxer del gLabels %s\n"
+
+#: ../src/window.c:259
+msgid "(none) - gLabels"
+msgstr "(cap) - gLabels"
+
+#: ../src/window.c:432
+msgid "(modified)"
+msgstr "(modificat)"
+
+#: ../src/stock.c:72
+msgid "_Select Mode"
+msgstr "Mode de _selecció"
+
+#: ../src/stock.c:73
+msgid "_Text"
+msgstr "_Text"
+
+#: ../src/stock.c:74
+msgid "_Line"
+msgstr "_Línia"
+
+#: ../src/stock.c:75
+msgid "_Box"
+msgstr "_Quadre"
+
+#: ../src/stock.c:76
+msgid "_Ellipse"
+msgstr "_El·lipse"
+
+#: ../src/stock.c:77
+msgid "_Image"
+msgstr "_Imatge"
+
+#: ../src/stock.c:78
+msgid "Bar_code"
+msgstr "_Codi de barres"
+
+#: ../src/stock.c:79
+msgid "_Merge Properties"
+msgstr "Propietats de la _fusió"
+
+#: ../src/stock.c:80
+msgid "Object _Properties"
+msgstr "_Propietats de l'objecte"
+
+#: ../src/stock.c:81
+msgid "Bring to _Front"
+msgstr "Porta al p_rimer pla"
+
+#: ../src/stock.c:82
+msgid "Send to _Back"
+msgstr "Envia al _fons"
+
+#: ../src/stock.c:83
+msgid "Rotate _Left"
+msgstr "Gira a l'_esquerra"
+
+#: ../src/stock.c:84
+msgid "Rotate _Right"
+msgstr "Gira a la _dreta"
+
+#: ../src/stock.c:85
+msgid "Flip _Horizontally"
+msgstr "Capgira _horitzontalment"
+
+#: ../src/stock.c:86
+msgid "Flip _Vertically"
+msgstr "Capgira _verticalment"
+
+#: ../src/stock.c:87
+msgid "_Lefts"
+msgstr "_Esquerres"
+
+#: ../src/stock.c:88
+msgid "_Rights"
+msgstr "_Dretes"
+
+#: ../src/stock.c:89
+msgid "_Centers"
+msgstr "_Centres"
+
+#: ../src/stock.c:90
+msgid "_Tops"
+msgstr "Parts _superiors"
+
+#: ../src/stock.c:91
+msgid "Bottoms"
+msgstr "Parts inferiors"
+
+#: ../src/stock.c:92
+msgid "Centers"
+msgstr "Centres"
+
+#: ../src/stock.c:93 ../src/stock.c:94
+msgid "Label Ce_nter"
+msgstr "Ce_ntre de l'etiqueta"
+
+#: ../src/stock.c:95 ../data/glade/property-bar.glade.h:3
+msgid "Fill color"
+msgstr "Color de l'emplenat"
+
+#: ../src/stock.c:96 ../data/glade/property-bar.glade.h:8
+msgid "Line color"
+msgstr "Color de la línia"
+
+#: ../src/stock.c:97 ../src/stock.c:99
+msgid "Linked"
+msgstr "Enllaçat"
+
+#: ../src/stock.c:98 ../src/stock.c:100
+msgid "Not Linked"
+msgstr "Sense enllaçar"
+
+#. Menu entries.
+#: ../src/ui.c:93
+msgid "_File"
+msgstr "_Fitxer"
+
+#: ../src/ui.c:94
+msgid "Open Recent _Files"
+msgstr "Obri els fitxers _recents"
+
+#: ../src/ui.c:95
+msgid "_Edit"
+msgstr "_Edita"
+
+#: ../src/ui.c:96
+msgid "_View"
+msgstr "_Visualitza"
+
+#: ../src/ui.c:97
+msgid "Customize Main Toolbar"
+msgstr "Personalitza la barra d'eines principal"
+
+#: ../src/ui.c:98
+msgid "Customize Drawing Toolbar"
+msgstr "Personalitza la barra d'eines de dibuix"
+
+#: ../src/ui.c:99
+msgid "Customize Properties Toolbar"
+msgstr "Personalitza la barra d'eines de les propietats"
+
+#: ../src/ui.c:100
+msgid "_Objects"
+msgstr "_Objectes"
+
+#: ../src/ui.c:101
+msgid "_Create"
+msgstr "_Crea"
+
+#: ../src/ui.c:102
+msgid "_Order"
+msgstr "_Ordena"
+
+#: ../src/ui.c:103
+msgid "_Rotate/Flip"
+msgstr "_Gira/Capgira"
+
+#: ../src/ui.c:104
+msgid "Align _Horizontal"
+msgstr "Alinea _horitzontalment"
+
+#: ../src/ui.c:105
+msgid "Align _Vertical"
+msgstr "Alinea _verticalment"
+
+#: ../src/ui.c:106
+msgid "_Help"
+msgstr "A_juda"
+
+#. Popup entries.
+#: ../src/ui.c:109 ../src/ui.c:110
+msgid "Context Menu"
+msgstr "Menú contextual"
+
+#: ../src/ui.c:115
+msgid "_New"
+msgstr "_Nou"
+
+#: ../src/ui.c:117
+msgid "Create a new file"
+msgstr "Crea un fitxer nou"
+
+#: ../src/ui.c:122
+msgid "_Open..."
+msgstr "_Obri..."
+
+#: ../src/ui.c:124
+msgid "Open a file"
+msgstr "Obri un fitxer"
+
+#: ../src/ui.c:129
+msgid "_Save"
+msgstr "Al_ça"
+
+#: ../src/ui.c:131
+msgid "Save current file"
+msgstr "Alça el fitxer actual"
+
+#: ../src/ui.c:136
+msgid "Save _As..."
+msgstr "_Anomena i alça..."
+
+#: ../src/ui.c:138
+msgid "Save the current file to a different name"
+msgstr "Alça el fitxer actual amb un nom diferent"
+
+#: ../src/ui.c:143
+msgid "_Print..."
+msgstr "_Imprimeix..."
+
+#: ../src/ui.c:145
+msgid "Print the current file"
+msgstr "Imprimeix el fitxer actual"
+
+#: ../src/ui.c:150
+msgid "Properties..."
+msgstr "Propietats..."
+
+#: ../src/ui.c:152
+msgid "Modify document properties"
+msgstr "Modifica les propietats del document"
+
+#: ../src/ui.c:157
+msgid "Template _Designer..."
+msgstr "Dissen_yador de plantilles..."
+
+#: ../src/ui.c:159
+msgid "Create a custom template"
+msgstr "Crea una plantilla personalitzada"
+
+#: ../src/ui.c:164
+msgid "_Close"
+msgstr "_Tanca"
+
+#: ../src/ui.c:166
+msgid "Close the current file"
+msgstr "Tanca el fitxer actual"
+
+#: ../src/ui.c:171
+msgid "_Quit"
+msgstr "I_x"
+
+#: ../src/ui.c:173
+msgid "Quit the program"
+msgstr "Ix del programa"
+
+#: ../src/ui.c:180
+msgid "Cut"
+msgstr "Retalla"
+
+#: ../src/ui.c:182
+msgid "Cut the selection"
+msgstr "Retalla la selecció"
+
+#: ../src/ui.c:187
+msgid "Copy"
+msgstr "Copia"
+
+#: ../src/ui.c:189
+msgid "Copy the selection"
+msgstr "Copia la selecció"
+
+#: ../src/ui.c:194
+msgid "Paste"
+msgstr "Enganxa"
+
+#: ../src/ui.c:196
+msgid "Paste the clipboard"
+msgstr "Enganxa el contingut del porta-retalls"
+
+#: ../src/ui.c:201
+msgid "Delete"
+msgstr "Suprimeix"
+
+#: ../src/ui.c:203
+msgid "Delete the selected objects"
+msgstr "Suprimeix els objectes seleccionats"
+
+#: ../src/ui.c:208
+msgid "Select All"
+msgstr "Selecciona-ho tot"
+
+#: ../src/ui.c:210
+msgid "Select all objects"
+msgstr "Selecciona tots els objectes"
+
+#: ../src/ui.c:215
+msgid "Un-select All"
+msgstr "No seleccionis res"
+
+#: ../src/ui.c:217
+msgid "Remove all selections"
+msgstr "Desfés totes les seleccions"
+
+#: ../src/ui.c:222
+msgid "Preferences"
+msgstr "Preferències"
+
+#: ../src/ui.c:224
+msgid "Configure the application"
+msgstr "Configura l'aplicació"
+
+#: ../src/ui.c:231
+msgid "Zoom in"
+msgstr "Amplia"
+
+#: ../src/ui.c:233
+msgid "Increase magnification"
+msgstr "Incrementa l'ampliació"
+
+#: ../src/ui.c:238
+msgid "Zoom out"
+msgstr "Redueix"
+
+#: ../src/ui.c:240
+msgid "Decrease magnification"
+msgstr "Redueix l'ampliació"
+
+#: ../src/ui.c:245
+msgid "Zoom 1 to 1"
+msgstr "Amplia a 1:1"
+
+#: ../src/ui.c:247
+msgid "Restore scale to 100%"
+msgstr "Refés l'escala a 100 %"
+
+#: ../src/ui.c:252
+msgid "Zoom to fit"
+msgstr "Millor ajust"
+
+#: ../src/ui.c:254
+msgid "Set scale to fit window"
+msgstr "Estableix l'escala per a encabir-ho a la finestra"
+
+#: ../src/ui.c:261
+msgid "Select Mode"
+msgstr "Mode de selecció"
+
+#: ../src/ui.c:263
+msgid "Select, move and modify objects"
+msgstr "Seleccioneu, moveu i modifiqueu objectes"
+
+#: ../src/ui.c:268 ../src/view-text.c:495
+#: ../data/glade/object-editor.glade.h:32
+msgid "Text"
+msgstr "Text"
+
+#: ../src/ui.c:270
+msgid "Create text object"
+msgstr "Crea un objecte de text"
+
+#: ../src/ui.c:275
+msgid "Box"
+msgstr "Quadre"
+
+#: ../src/ui.c:277
+msgid "Create box/rectangle object"
+msgstr "Crea un objecte quadre/rectangle"
+
+#: ../src/ui.c:282 ../data/glade/object-editor.glade.h:20
+msgid "Line"
+msgstr "Línia"
+
+#: ../src/ui.c:284
+msgid "Create line object"
+msgstr "Crea un objecte línia"
+
+#: ../src/ui.c:289
+msgid "Ellipse"
+msgstr "El·lipse"
+
+#: ../src/ui.c:291
+msgid "Create ellipse/circle object"
+msgstr "Crea un objecte el·lipse/cercle"
+
+#: ../src/ui.c:296 ../data/glade/object-editor.glade.h:16
+msgid "Image"
+msgstr "Imatge"
+
+#: ../src/ui.c:298
+msgid "Create image object"
+msgstr "Crea un objecte d'imatge"
+
+#: ../src/ui.c:303
+msgid "Barcode"
+msgstr "Codi de barres"
+
+#: ../src/ui.c:305
+msgid "Create barcode object"
+msgstr "Crea un objecte de codi de barres"
+
+#: ../src/ui.c:310
+msgid "Bring to front"
+msgstr "Porta al primer pla"
+
+#: ../src/ui.c:312
+msgid "Raise object to top"
+msgstr "Alça l'objecte fins al primer pla"
+
+#: ../src/ui.c:317
+msgid "Send to back"
+msgstr "Porta al fons"
+
+#: ../src/ui.c:319
+msgid "Lower object to bottom"
+msgstr "Baixa l'objecte fins al fons"
+
+#: ../src/ui.c:324
+msgid "Rotate left"
+msgstr "Gira a l'esquerra"
+
+#: ../src/ui.c:326
+msgid "Rotate object 90 degrees counter-clockwise"
+msgstr ""
+"Gira l'objecte 90 graus en el sentit contrari a les agulles del rellotge"
+
+#: ../src/ui.c:331
+msgid "Rotate right"
+msgstr "Gira a la dreta"
+
+#: ../src/ui.c:333
+msgid "Rotate object 90 degrees clockwise"
+msgstr "Gira l'objecte 90 graus en el sentit de les agulles del rellotge"
+
+#: ../src/ui.c:338
+msgid "Flip horizontally"
+msgstr "Capgira horitzontalment"
+
+#: ../src/ui.c:340
+msgid "Flip object horizontally"
+msgstr "Capgira l'objecte horitzontalment"
+
+#: ../src/ui.c:345
+msgid "Flip vertically"
+msgstr "Capgira verticalment"
+
+#: ../src/ui.c:347
+msgid "Flip object vertically"
+msgstr "Capgira l'objecte verticalment"
+
+#: ../src/ui.c:352
+msgid "Align left"
+msgstr "Alinea a l'esquerra"
+
+#: ../src/ui.c:354
+msgid "Align objects to left edges"
+msgstr "Alinea els objectes a les vores esquerres"
+
+#: ../src/ui.c:359
+msgid "Align right"
+msgstr "Alinea a la dreta"
+
+#: ../src/ui.c:361
+msgid "Align objects to right edges"
+msgstr "Alinea els objectes a les vores dretes"
+
+#: ../src/ui.c:366
+msgid "Align horizontal center"
+msgstr "Alinea als centre horitzontals"
+
+#: ../src/ui.c:368
+msgid "Align objects to horizontal centers"
+msgstr "Alinea els objectes als centres horitzontals"
+
+#: ../src/ui.c:373
+msgid "Align tops"
+msgstr "Alinea a les vores superiors"
+
+#: ../src/ui.c:375
+msgid "Align objects to top edges"
+msgstr "Alinea els objectes a les vores superiors"
+
+#: ../src/ui.c:380
+msgid "Align bottoms"
+msgstr "Alinea a les vores inferiors"
+
+#: ../src/ui.c:382
+msgid "Align objects to bottom edges"
+msgstr "Alinea els objectes a les vores inferiors"
+
+#: ../src/ui.c:387
+msgid "Align vertical center"
+msgstr "Alinea als centre verticals"
+
+#: ../src/ui.c:389
+msgid "Align objects to vertical centers"
+msgstr "Alinea els objectes als centres verticals"
+
+#: ../src/ui.c:394
+msgid "Center horizontally"
+msgstr "Centra horitzontalment"
+
+#: ../src/ui.c:396
+msgid "Center objects to horizontal label center"
+msgstr "Centra els objectes al centre horitzontal de l'etiqueta"
+
+#: ../src/ui.c:401
+msgid "Center vertically"
+msgstr "Centra verticalment"
+
+#: ../src/ui.c:403
+msgid "Center objects to vertical label center"
+msgstr "Centra els objectes al centre vertical de l'etiqueta"
+
+#: ../src/ui.c:408
+msgid "Merge properties"
+msgstr "Propietats de fusió"
+
+#: ../src/ui.c:410
+msgid "Edit merge properties"
+msgstr "Edita les propietats de fusió"
+
+#: ../src/ui.c:417
+msgid "Contents"
+msgstr "Contingut"
+
+#: ../src/ui.c:419
+msgid "Open glabels manual"
+msgstr "Obri el manual del gLabels"
+
+#: ../src/ui.c:424
+msgid "About..."
+msgstr "Quant a..."
+
+#: ../src/ui.c:426
+msgid "About glabels"
+msgstr "Quant al gLabels"
+
+#: ../src/ui.c:436
+msgid "Property toolbar"
+msgstr "Barra d'eines de les propietats"
+
+#: ../src/ui.c:438
+msgid "Change the visibility of the property toolbar in the current window"
+msgstr ""
+"Canvia la visibilitat de la barra d'eines de les propietats a la finestra "
+"actual"
+
+#: ../src/ui.c:444 ../src/ui.c:489 ../src/ui.c:497
+msgid "Show tooltips"
+msgstr "Mostra els indicadors de funció"
+
+#: ../src/ui.c:446
+msgid "Show tooltips for property toolbar"
+msgstr "Mostra els indicadors de funció a la barra de les propietats"
+
+#: ../src/ui.c:452
+msgid "Grid"
+msgstr "Graella"
+
+#: ../src/ui.c:454
+msgid "Change the visibility of the grid in the current window"
+msgstr "Canvia la visibilitat de la graella a la finestra actual"
+
+#: ../src/ui.c:460
+msgid "Markup"
+msgstr "Marques"
+
+#: ../src/ui.c:462
+msgid "Change the visibility of markup lines in the current window"
+msgstr "Canvia la visibilitat de les línies de marca a la finestra actual"
+
+#: ../src/ui.c:473
+msgid "Main toolbar"
+msgstr "Barra d'eines principal"
+
+#: ../src/ui.c:475
+msgid "Change the visibility of the main toolbar in the current window"
+msgstr ""
+"Canvia la visibilitat de la barra d'eines principal a la finestra actual"
+
+#: ../src/ui.c:481
+msgid "Drawing toolbar"
+msgstr "Barra d'eines de dibuix"
+
+#: ../src/ui.c:483
+msgid "Change the visibility of the drawing toolbar in the current window"
+msgstr ""
+"Canvia la visibilitat de la barra d'eines de dibuix a la finestra actual"
+
+#: ../src/ui.c:491
+msgid "Show tooltips for main toolbar"
+msgstr "Mostra els indicadors de funció a la barra principal"
+
+#: ../src/ui.c:499
+msgid "Show tooltips for drawing toolbar"
+msgstr "Mostra els indicadors de funció a la barra de dibuix"
+
+#: ../src/ui-property-bar.c:1232 ../src/object-editor.c:587
+#: ../src/object-editor.c:593
+msgid "Default"
+msgstr "Predeterminat"
+
+#: ../src/ui-property-bar.c:1239 ../src/object-editor.c:599
+#, fuzzy
+#| msgid "No Line"
+msgid "No line"
+msgstr "Sense línia"
+
+#: ../src/ui-property-bar.c:1247 ../src/object-editor.c:606
+#, fuzzy
+#| msgid "No Fill"
+msgid "No fill"
+msgstr "Sense emplenament"
+
+#: ../src/ui-sidebar.c:152
+msgid "Object properties"
+msgstr "Propietats de l'objecte"
+
+#: ../src/ui-commands.c:1084
+msgid "Glabels includes contributions from:"
+msgstr "El gLabels inclou col·laboracions de:"
+
+#: ../src/ui-commands.c:1090
+msgid "See the file AUTHORS for additional credits,"
+msgstr "Consulteu el fitxer AUTHORS per a veure els crèdits addicionals"
+
+#: ../src/ui-commands.c:1091
+#, fuzzy
+msgid "or visit http://glabels.sourceforge.net/"
+msgstr "o aneu a http://glabels.sourceforge.net/"
+
+#: ../src/ui-commands.c:1103
+msgid "A label and business card creation program.\n"
+msgstr "Un programa de creació d'etiquetes i de targetes de visita.\n"
+
+#: ../src/ui-commands.c:1107
+msgid "translator-credits"
+msgstr "David Planella <david.planella@gmail.com>"
+
+#: ../src/ui-commands.c:1110
+#, fuzzy
+msgid ""
+"Glabels is free software; you can redistribute it and/or modify it\n"
+"under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation; either version 2 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See\n"
+"the GNU General Public License for more details.\n"
+msgstr ""
+"El gLabels és programari lliure; podeu redistribuir-lo i/o modificar-lo \n"
+"sota els termes de la Llicència Pública General GNU tal i com ha estat \n"
+"publicada per la Free Software Foundation; ja siga la versió 2 de la \n"
+"Llicència o (si ho preferiu) qualsevol versió posterior.\n"
+"\n"
+"El gLabels es distribueix amb l'expectativa que serà útil, però SENSE \n"
+"CAP GARANTIA; fins i tot sense la garantia implícita de COMERCIABILITAT o \n"
+"ADEQUACIÓ PER A UN PROPÒSIT PARTICULAR.  Vegeu la Llicència Pública "
+"General \n"
+"GNU per a obtindre'n més detalls.\n"
+
+#: ../src/ui-commands.c:1136
+msgid "glabels"
+msgstr "gLabels"
+
+#: ../src/file.c:91
+msgid "New Label or Card"
+msgstr "Etiqueta o targeta nova"
+
+#: ../src/file.c:191
+msgid "Label properties"
+msgstr "Propietats de l'etiqueta"
+
+#: ../src/file.c:292 ../src/file.c:578
+msgid "All files"
+msgstr "Tots els fitxers"
+
+#: ../src/file.c:297 ../src/file.c:583
+msgid "gLabels documents"
+msgstr "Documents del gLabel"
+
+#: ../src/file.c:343 ../src/file.c:640
+msgid "Empty file name selection"
+msgstr "Selecció d'un nom de fitxer buit"
+
+#: ../src/file.c:346 ../src/file.c:362
+msgid "Please select a file or supply a valid file name"
+msgstr "Seleccioneu un fitxer o introduïu un nom de fitxer vàlid"
+
+#: ../src/file.c:359
+msgid "File does not exist"
+msgstr "El fitxer no existeix"
+
+#: ../src/file.c:433
+#, c-format
+msgid "Could not open file \"%s\""
+msgstr "No s'ha pogut obrir el fitxer «%s»"
+
+#: ../src/file.c:436
+msgid "Not a supported file format"
+msgstr "No és un format de fitxer admés"
+
+#: ../src/file.c:513 ../src/file.c:690
+#, c-format
+msgid "Could not save file \"%s\""
+msgstr "No s'ha pogut alçar el fitxer «%s»"
+
+#: ../src/file.c:517 ../src/file.c:694
+msgid "Error encountered during save.  The file is still not saved."
+msgstr "S'ha produït un error en alçar. El fitxer no s'ha alçat encara."
+
+#: ../src/file.c:556
+#, c-format
+msgid "Save \"%s\" as"
+msgstr "Alça «%s» com a"
+
+#: ../src/file.c:643
+msgid "Please supply a valid file name"
+msgstr "Introduïu un nom de fitxer vàlid"
+
+#: ../src/file.c:664
+#, c-format
+msgid "Overwrite file \"%s\"?"
+msgstr "Voleu sobreescriure el fitxer «%s»?"
+
+#: ../src/file.c:668
+msgid "File already exists."
+msgstr "El fitxer ja existeix."
+
+#: ../src/file.c:764
+#, c-format
+msgid "Save changes to document \"%s\" before closing?"
+msgstr "Voleu alçar els canvis al document «%s» abans de tancar-lo?"
+
+#: ../src/file.c:768
+msgid "Your changes will be lost if you don't save them."
+msgstr "Es perdran els vostres canvis si no els alceu."
+
+#: ../src/file.c:771
+msgid "Close without saving"
+msgstr "Tanca sense alçar"
+
+#. Should not happen
+#: ../src/prefs.c:159 ../src/prefs.c:166
+#: ../data/glade/object-editor.glade.h:43
+#: ../data/glade/prefs-dialog.glade.h:22
+msgid "points"
+msgstr "punts"
+
+#: ../src/prefs.c:161 ../data/glade/object-editor.glade.h:42
+#: ../data/glade/template-designer.glade.h:64
+msgid "inches"
+msgstr "polzades"
+
+#: ../src/prefs.c:163
+msgid "mm"
+msgstr "mm"
+
+#: ../src/prefs-dialog.c:162 ../data/glade/prefs-dialog.glade.h:21
+msgid "gLabels Preferences"
+msgstr "Preferències del gLabels"
+
+#. Build editor.
+#: ../src/view-box.c:176
+msgid "Box object properties"
+msgstr "Propietats de l'objecte quadre"
+
+#. Build editor.
+#: ../src/view-ellipse.c:176
+msgid "Ellipse object properties"
+msgstr "Propietats de l'objecte el·lipse"
+
+#. Build editor.
+#: ../src/view-line.c:175
+msgid "Line object properties"
+msgstr "Propietats de l'objecte línia"
+
+#. Build editor.
+#: ../src/view-image.c:175
+msgid "Image object properties"
+msgstr "Propietats de l'objecte imatge"
+
+#. Build editor.
+#: ../src/view-text.c:179
+msgid "Text object properties"
+msgstr "Propietats de l'objecte text"
+
+#. Build editor.
+#: ../src/view-barcode.c:175
+msgid "Barcode object properties"
+msgstr "Propietats de l'objecte codi de barres"
+
+#: ../src/object-editor-image-page.c:270
+msgid "All Files"
+msgstr "Tots els fitxers"
+
+#: ../src/object-editor-image-page.c:275
+msgid "All Images"
+msgstr "Totes les imatges"
+
+#: ../src/object-editor-image-page.c:290
+#, c-format
+msgid "%s (*.%s)"
+msgstr "%s (*.%s)"
+
+#: ../src/merge-properties-dialog.c:263
+msgid "Merge Properties"
+msgstr "Propietats de la fusió"
+
+#: ../src/merge-properties-dialog.c:289 ../src/merge-properties-dialog.c:397
+msgid "Select merge-database source"
+msgstr "Seleccioneu la font de la base de dades de la fusió"
+
+#: ../src/merge-properties-dialog.c:298 ../src/merge-properties-dialog.c:417
+msgid "N/A"
+msgstr "No disponible"
+
+#: ../src/merge-properties-dialog.c:324
+msgid "Select"
+msgstr "Seleccionat"
+
+#: ../src/merge-properties-dialog.c:332
+msgid "Record/Field"
+msgstr "Registre/camp"
+
+#: ../src/merge-properties-dialog.c:340 ../data/glade/object-editor.glade.h:10
+msgid "Data"
+msgstr "Dades"
+
+#: ../src/merge-properties-dialog.c:410
+msgid "Fixed"
+msgstr "Fixe"
+
+#. ===================================================================
+#: ../src/print-op.c:237 ../src/wdgt-print-copies.c:171
+#: ../data/templates/misc-iso-templates.xml.h:34
+msgid "Labels"
+msgstr "Etiquetes"
+
+#: ../src/template-designer.c:358
+#, fuzzy
+msgid "gLabels Template Designer"
+msgstr "Dissenyador d'etiquetes gLabels"
+
+#: ../src/template-designer.c:419
+msgid "Welcome"
+msgstr "Vos donem la benvinguda"
+
+#: ../src/template-designer.c:463
+msgid "Name and Description"
+msgstr "Nom i descripció"
+
+#: ../src/template-designer.c:516
+msgid "Page Size"
+msgstr "Mida de la pàgina"
+
+#: ../src/template-designer.c:587
+msgid "Label or Card Shape"
+msgstr "Forma de l'etiqueta o targeta"
+
+#: ../src/template-designer.c:637
+msgid "Label or Card Size"
+msgstr "Mida de l'etiqueta o targeta"
+
+#: ../src/template-designer.c:737
+msgid "Label Size (round)"
+msgstr "Mida de 'etiqueta (circular)"
+
+#: ../src/template-designer.c:820
+msgid "Label Size (CD/DVD)"
+msgstr "Mida de 'etiqueta (CD/DVD)"
+
+#: ../src/template-designer.c:913
+msgid "Number of Layouts"
+msgstr "Nombre de disposicions"
+
+#: ../src/template-designer.c:976
+msgid "Layout(s)"
+msgstr "Disposicions"
+
+#: ../src/template-designer.c:1087
+msgid "Design Completed"
+msgstr "S'ha completat el disseny"
+
+#: ../src/template-designer.c:1253
+#, fuzzy
+msgid ""
+"<span foreground='red' weight='bold'>Brand and part# match an existing "
+"template!</span>"
+msgstr ""
+"<span foreground='red' weight='bold'>La marca i el número de model "
+"coincideixen amb un a plantilla existent</span>"
+
+#: ../src/bc.c:67
+msgid "POSTNET (any)"
+msgstr "POSTNET (qualsevol)"
+
+#: ../src/bc.c:70
+msgid "POSTNET-5 (ZIP only)"
+msgstr "POSTNET-5 (només codi postal ZIP)"
+
+#: ../src/bc.c:73
+msgid "POSTNET-9 (ZIP+4)"
+msgstr "POSTNET-9 (codi postal ZIP+4)"
+
+#: ../src/bc.c:76
+msgid "POSTNET-11 (DPBC)"
+msgstr "POSTNET-11 (DPBC)"
+
+#: ../src/bc.c:79
+msgid "CEPNET"
+msgstr "CEPNET"
+
+#: ../src/bc.c:82
+msgid "EAN (any)"
+msgstr "EAN (qualsevol)"
+
+#: ../src/bc.c:85
+msgid "EAN-8"
+msgstr "EAN-8"
+
+#: ../src/bc.c:88
+msgid "EAN-8 +2"
+msgstr "EAN-8 +2"
+
+#: ../src/bc.c:91
+msgid "EAN-8 +5"
+msgstr "EAN-8 +5"
+
+#: ../src/bc.c:94
+msgid "EAN-13"
+msgstr "EAN-13"
+
+#: ../src/bc.c:97
+msgid "EAN-13 +2"
+msgstr "EAN-13 +2"
+
+#: ../src/bc.c:100
+msgid "EAN-13 +5"
+msgstr "EAN-13 +5"
+
+#: ../src/bc.c:103
+msgid "UPC (UPC-A or UPC-E)"
+msgstr "UPC (UPC-A o UPC-E)"
+
+#: ../src/bc.c:106
+msgid "UPC-A"
+msgstr "UPC-A"
+
+#: ../src/bc.c:109
+msgid "UPC-A +2"
+msgstr "UPC-A +2"
+
+#: ../src/bc.c:112
+msgid "UPC-A +5"
+msgstr "UPC-A +5"
+
+#: ../src/bc.c:115
+msgid "UPC-E"
+msgstr "UPC-E"
+
+#: ../src/bc.c:118
+msgid "UPC-E +2"
+msgstr "UPC-E +2"
+
+#: ../src/bc.c:121
+msgid "UPC-E +5"
+msgstr "UPC-E +5"
+
+#: ../src/bc.c:124
+msgid "ISBN"
+msgstr "ISBN"
+
+#: ../src/bc.c:127
+msgid "ISBN +5"
+msgstr "ISBN +5"
+
+#: ../src/bc.c:130
+msgid "Code 39"
+msgstr "Codi 39"
+
+#: ../src/bc.c:133
+msgid "Code 128"
+msgstr "Codi 128"
+
+#: ../src/bc.c:136
+msgid "Code 128C"
+msgstr "Codi 128C"
+
+#: ../src/bc.c:139
+msgid "Code 128B"
+msgstr "Codi 128B"
+
+#: ../src/bc.c:142
+msgid "Interleaved 2 of 5"
+msgstr "Interfoliat 2 de 5"
+
+#: ../src/bc.c:145
+msgid "Codabar"
+msgstr "Codabar"
+
+#: ../src/bc.c:148
+msgid "MSI"
+msgstr "MSI"
+
+#: ../src/bc.c:151
+msgid "Plessey"
+msgstr "Plessey"
+
+#: ../src/bc.c:154
+msgid "IEC16022 (DataMatrix)"
+msgstr "IEC16022 (DataMatrix)"
+
+#: ../src/label.c:531
+msgid "Untitled"
+msgstr "Sense títol"
+
+#: ../src/label-barcode.c:426
+msgid "Barcode data empty"
+msgstr "Les dades del codi de barres estan buides"
+
+#: ../src/label-barcode.c:430
+msgid "Invalid barcode data"
+msgstr "Les dades del codi de barres no són vàlides"
+
+#: ../src/xml-label.c:193
+msgid "xmlParseFile error"
+msgstr "Error de la funció xmlParseFile"
+
+#: ../src/xml-label.c:234
+#, fuzzy
+#| msgid "xmlParseFile error"
+msgid "xmlParseDoc error"
+msgstr "Error de la funció xmlParseFile"
+
+#: ../src/xml-label.c:270
+msgid "No document root"
+msgstr "No hi ha cap arrel del document"
+
+#: ../src/xml-label.c:278
+msgid "Importing from glabels 0.1 format"
+msgstr "S'està important del format del gLabels 0.1"
+
+#: ../src/xml-label.c:287
+msgid "Importing from glabels 0.4 format"
+msgstr "S'està important del format del gLabels 0.4"
+
+#: ../src/xml-label.c:296
+#, c-format
+msgid "Unknown glabels Namespace -- Using %s"
+msgstr "Espai de noms del gLabels desconegut -- s'utilitzarà el %s"
+
+#: ../src/xml-label.c:327 ../src/xml-label-04.c:79
+#, c-format
+msgid "Bad root node = \"%s\""
+msgstr "Node arrel incorrecte = «%s»"
+
+#: ../src/xml-label.c:364
+#, c-format
+msgid "bad node in Document node =  \"%s\""
+msgstr "node incorrecte en el node Document = «%s»"
+
+#: ../src/xml-label.c:409 ../src/xml-label-04.c:127
+#, c-format
+msgid "bad node =  \"%s\""
+msgstr "node incorrecte = «%s»"
+
+#: ../src/xml-label.c:851
+#, c-format
+msgid "bad node in Data node =  \"%s\""
+msgstr "node incorrecte en el node Data (dades) = «%s»"
+
+#: ../src/xml-label.c:1088 ../libglabels/xml-template.c:682
+msgid "Utf8 conversion error."
+msgstr "Error de conversió a l'UTF-8"
+
+#: ../src/xml-label.c:1095
+msgid "Problem saving xml file."
+msgstr "S'ha produït un problema en alçar el fitxer"
+
+#: ../src/merge.c:170 ../src/merge.c:211 ../src/merge.c:375 ../src/merge.c:378
+msgid "None"
+msgstr "Cap"
+
+#: ../src/merge-init.c:59
+msgid "Text file with comma delimeters (CSV)"
+msgstr "Fitxer de text amb comes delimitadores (CSV)"
+
+#: ../src/merge-init.c:66
+msgid "Text file with colon delimeters"
+msgstr "Fitxer de text amb dos punts delimitadors"
+
+#: ../src/merge-init.c:73
+msgid "Text file with tab delimeters"
+msgstr "Fitxer de text amb tabulacions delimitadores"
+
+#: ../src/merge-init.c:82
+#, fuzzy
+msgid "Data from default Evolution Addressbook"
+msgstr "Dades de la llibreta d'adreces predeterminada de l'Evolution"
+
+#: ../src/merge-init.c:88
+msgid "Data from a file containing VCards"
+msgstr "Dades d'un fitxer que conté VCards"
+
+#: ../src/merge-evolution.c:309
+msgid "Couldn't construct query"
+msgstr "No s'ha pogut crear la sol·licitud"
+
+#: ../src/merge-evolution.c:315 ../src/merge-evolution.c:326
+msgid "Couldn't open addressbook."
+msgstr "No s'ha pogut obrir la llibreta d'adreces"
+
+#: ../src/merge-evolution.c:341
+msgid "Couldn't list available fields."
+msgstr "No s'ha pogut mostrar la llista dels camps disponibles."
+
+#: ../src/merge-evolution.c:377
+msgid "Couldn't get contacts."
+msgstr "No s'han pogut obtindre els contactes."
+
+#: ../src/wdgt-print-copies.c:153
+msgid "Sheets:"
+msgstr "Fulls:"
+
+#: ../src/wdgt-print-copies.c:173
+msgid "from:"
+msgstr "de:"
+
+#: ../src/wdgt-print-copies.c:178
+msgid "to:"
+msgstr "a:"
+
+#: ../src/wdgt-print-merge.c:154
+msgid "Start on label"
+msgstr "Comença a l'etiqueta"
+
+#: ../src/wdgt-print-merge.c:159
+msgid "on 1st sheet"
+msgstr "al primer full"
+
+#: ../src/wdgt-print-merge.c:168
+msgid "Copies:"
+msgstr "Còpies"
+
+#: ../src/wdgt-print-merge.c:173
+msgid "Collate"
+msgstr "Compagina"
+
+#: ../src/wdgt-media-select.c:288 ../src/wdgt-media-select.c:292
+#: ../src/wdgt-media-select.c:297 ../src/wdgt-media-select.c:306
+#: ../src/wdgt-media-select.c:309 ../src/wdgt-media-select.c:402
+#: ../src/wdgt-media-select.c:609 ../src/wdgt-media-select.c:618
+#, fuzzy
+msgid "Any"
+msgstr "Qualsevol"
+
+#: ../src/wdgt-media-select.c:643
+#, c-format
+msgid "%d per sheet"
+msgstr "%d per full"
+
+#: ../src/wdgt-media-select.c:673
+#, c-format
+msgid "%s x %s %s"
+msgstr "%s x %s %s"
+
+#: ../src/wdgt-media-select.c:678
+#, c-format
+msgid "%.5g x %.5g %s"
+msgstr "%.5g x %.5g %s"
+
+#: ../src/wdgt-media-select.c:689 ../src/wdgt-media-select.c:703
+#, fuzzy, c-format
+#| msgid "%.5g %s diameter"
+msgid "%s %s diameter"
+msgstr "%.5g %s de diàmetre"
+
+#: ../src/wdgt-media-select.c:693 ../src/wdgt-media-select.c:707
+#, c-format
+msgid "%.5g %s diameter"
+msgstr "%.5g %s de diàmetre"
+
+#: ../src/wdgt-media-select.c:781
+msgid "No recent templates found."
+msgstr "No s'ha trobat cap plantilla recent."
+
+#: ../src/wdgt-media-select.c:782
+#, fuzzy
+msgid "Try selecting a template from the \"Search all templates\" page."
+msgstr ""
+"Proveu de seleccionar una plantilla de la pàgina «Cerca totes les plantilles»"
+
+#: ../src/wdgt-media-select.c:861
+msgid "No match."
+msgstr "No hi ha cap coincidència."
+
+#: ../src/wdgt-media-select.c:862
+msgid "Try selecting a different brand, page size or category."
+msgstr "Proveu de seleccionar una marca, mida de pàgina o categoria diferents."
+
+#. This is the default custom color
+#: ../src/mygal/color-palette.c:389
+#, fuzzy
+msgid "custom"
+msgstr "Retalla"
+
+#. "Custom" color - we'll pop up a GtkColorButton
+#: ../src/mygal/color-palette.c:431
+#, fuzzy
+#| msgid "Custom Color"
+msgid "Custom Color:"
+msgstr "Color personalitzat"
+
+#: ../src/mygal/color-palette.c:439
+#, fuzzy
+#| msgid "Custom Color"
+msgid "Choose Custom Color"
+msgstr "Color personalitzat"
+
+#: ../src/mygal/color-palette.c:572
+#, fuzzy
+#| msgid "Black"
+msgid "black"
+msgstr "Negre"
+
+#: ../src/mygal/color-palette.c:573
+#, fuzzy
+#| msgid "Light Green"
+msgid "light brown"
+msgstr "Verd clar"
+
+#: ../src/mygal/color-palette.c:574
+msgid "brown gold"
+msgstr ""
+
+#: ../src/mygal/color-palette.c:575
+#, fuzzy
+#| msgid "Dark Green"
+msgid "dark green #2"
+msgstr "Verd fosc"
+
+#: ../src/mygal/color-palette.c:576
+msgid "navy"
+msgstr ""
+
+#: ../src/mygal/color-palette.c:577 ../src/mygal/color-palette.c:633
+#, fuzzy
+#| msgid "Dark Violet"
+msgid "dark blue"
+msgstr "Violeta fosc"
+
+#: ../src/mygal/color-palette.c:578
+#, fuzzy
+#| msgid "Purple"
+msgid "purple #2"
+msgstr "Porpra"
+
+#: ../src/mygal/color-palette.c:579
+msgid "very dark gray"
+msgstr ""
+
+#: ../src/mygal/color-palette.c:582 ../src/mygal/color-palette.c:638
+#, fuzzy
+#| msgid "Dark Red"
+msgid "dark red"
+msgstr "Roig fosc"
+
+#: ../src/mygal/color-palette.c:583
+#, fuzzy
+#| msgid "Orange"
+msgid "red-orange"
+msgstr "Taronja"
+
+#: ../src/mygal/color-palette.c:584
+#, fuzzy
+#| msgid "Gold"
+msgid "gold"
+msgstr "Daurat"
+
+#: ../src/mygal/color-palette.c:585
+#, fuzzy
+#| msgid "Dark Green"
+msgid "dark green"
+msgstr "Verd fosc"
+
+#: ../src/mygal/color-palette.c:586 ../src/mygal/color-palette.c:639
+msgid "dull blue"
+msgstr ""
+
+#: ../src/mygal/color-palette.c:587 ../src/mygal/color-palette.c:640
+#, fuzzy
+#| msgid "Blue"
+msgid "blue"
+msgstr "Blau"
+
+#: ../src/mygal/color-palette.c:588
+msgid "dull purple"
+msgstr ""
+
+#: ../src/mygal/color-palette.c:589
+#, fuzzy
+#| msgid "Dark Green"
+msgid "dark grey"
+msgstr "Verd fosc"
+
+#: ../src/mygal/color-palette.c:592
+#, fuzzy
+#| msgid "Red"
+msgid "red"
+msgstr "Roig"
+
+#: ../src/mygal/color-palette.c:593
+#, fuzzy
+#| msgid "Orange"
+msgid "orange"
+msgstr "Taronja"
+
+#: ../src/mygal/color-palette.c:594
+msgid "lime"
+msgstr ""
+
+#: ../src/mygal/color-palette.c:595
+#, fuzzy
+#| msgid "Medium green"
+msgid "dull green"
+msgstr "Verd mitjà"
+
+#: ../src/mygal/color-palette.c:596
+msgid "dull blue #2"
+msgstr ""
+
+#: ../src/mygal/color-palette.c:597
+msgid "sky blue #2"
+msgstr ""
+
+#: ../src/mygal/color-palette.c:598 ../src/mygal/color-palette.c:637
+#, fuzzy
+#| msgid "Purple"
+msgid "purple"
+msgstr "Porpra"
+
+#: ../src/mygal/color-palette.c:599
+msgid "gray"
+msgstr ""
+
+#: ../src/mygal/color-palette.c:602 ../src/mygal/color-palette.c:634
+#, fuzzy
+#| msgid "Image"
+msgid "magenta"
+msgstr "Imatge"
+
+#: ../src/mygal/color-palette.c:603
+#, fuzzy
+#| msgid "Light Cyan"
+msgid "bright orange"
+msgstr "Cyan clar"
+
+#: ../src/mygal/color-palette.c:604 ../src/mygal/color-palette.c:635
+#, fuzzy
+#| msgid "Yellow"
+msgid "yellow"
+msgstr "Groc"
+
+#: ../src/mygal/color-palette.c:605
+#, fuzzy
+#| msgid "Green"
+msgid "green"
+msgstr "Verd"
+
+#: ../src/mygal/color-palette.c:606 ../src/mygal/color-palette.c:636
+#, fuzzy
+#| msgid "Cyan"
+msgid "cyan"
+msgstr "Cyan"
+
+#: ../src/mygal/color-palette.c:607
+msgid "bright blue"
+msgstr ""
+
+#: ../src/mygal/color-palette.c:608 ../src/mygal/color-palette.c:625
+#, fuzzy
+#| msgid "Purple"
+msgid "red purple"
+msgstr "Porpra"
+
+#: ../src/mygal/color-palette.c:609
+#, fuzzy
+#| msgid "Light Green"
+msgid "light grey"
+msgstr "Verd clar"
+
+#: ../src/mygal/color-palette.c:612 ../src/mygal/color-palette.c:629
+#, fuzzy
+#| msgid "Pink"
+msgid "pink"
+msgstr "Rosa"
+
+#: ../src/mygal/color-palette.c:613
+#, fuzzy
+#| msgid "Light Cyan"
+msgid "light orange"
+msgstr "Cyan clar"
+
+#: ../src/mygal/color-palette.c:614 ../src/mygal/color-palette.c:626
+#, fuzzy
+#| msgid "Light Yellow"
+msgid "light yellow"
+msgstr "Groc clar"
+
+#: ../src/mygal/color-palette.c:615
+#, fuzzy
+#| msgid "Light Green"
+msgid "light green"
+msgstr "Verd clar"
+
+#: ../src/mygal/color-palette.c:616
+#, fuzzy
+#| msgid "Light Cyan"
+msgid "light cyan"
+msgstr "Cyan clar"
+
+#: ../src/mygal/color-palette.c:617 ../src/mygal/color-palette.c:627
+#, fuzzy
+#| msgid "Align left"
+msgid "light blue"
+msgstr "Alinea a l'esquerra"
+
+#: ../src/mygal/color-palette.c:618 ../src/mygal/color-palette.c:631
+#, fuzzy
+#| msgid "Light Green"
+msgid "light purple"
+msgstr "Verd clar"
+
+#: ../src/mygal/color-palette.c:619
+#, fuzzy
+#| msgid "White"
+msgid "white"
+msgstr "Blanc"
+
+#: ../src/mygal/color-palette.c:624
+msgid "purplish blue"
+msgstr ""
+
+#: ../src/mygal/color-palette.c:628
+msgid "dark purple"
+msgstr ""
+
+#: ../src/mygal/color-palette.c:630
+#, fuzzy
+#| msgid "SkyBlue"
+msgid "sky blue"
+msgstr "Blau cel"
+
+#: ../src/critical-error-handler.c:73
+msgid "gLabels Fatal Error!"
+msgstr "S'ha produït un error fatal del gLabels"
+
+#: ../src/warning-handler.c:73
+msgid "gLabels Error!"
+msgstr "S'ha produït un error del gLabels"
+
+#. Create and append an "Other" entry.
+#: ../libglabels/db.c:118
+msgid "Other"
+msgstr "Una altra"
+
+#. Create and append a "User defined" entry.
+#: ../libglabels/db.c:131
+msgid "User defined"
+msgstr "Definit per l'usuari"
+
+#: ../libglabels/db.c:482
+msgid ""
+"Unable to locate paper size definitions.  Libglabels may not be installed "
+"correctly!"
+msgstr ""
+"No s'han trobat les definicions de les mides de paper. Pot ser que la "
+"libglables no s'haja instal·lat correctametn"
+
+#: ../libglabels/db.c:875
+msgid ""
+"Unable to locate category definitions.  Libglabels may not be installed "
+"correctly!"
+msgstr ""
+"No s'han trobat les definicions de les categories. Pot ser que la libglables "
+"no s'haja instal·lat correctametn"
+
+#: ../libglabels/db.c:1461
+msgid ""
+"Unable to locate any template files.  Libglabels may not be installed "
+"correctly!"
+msgstr ""
+"No s'ha trobat cap plantilla. Pot ser que la libglables no s'haja instal·lat "
+"correctametn"
+
+#: ../libglabels/db.c:1538
+#, fuzzy, c-format
+msgid "Generic %s full page template"
+msgstr "Plantilla de pàgina completa %s genèrica"
+
+#: ../libglabels/xml-template.c:227
+msgid "Missing name or brand/part attributes."
+msgstr "Manca el nom o bé els atributs de marca/model"
+
+#. This should always be an id, but just in case a name
+#. slips by!
+#: ../libglabels/xml-template.c:244
+#, c-format
+msgid "Unknown page size id \"%s\", trying as name"
+msgstr ""
+"Es desconeix l'identificador de mida de pàgina «%s»; s'intentarà com a nom"
+
+#: ../libglabels/xml-template.c:256
+#, c-format
+msgid "Unknown page size id or name \"%s\""
+msgstr "Es desconeix l'identificador de mida de pàgina o nom «%s»"
+
+#: ../libglabels/xml-template.c:627
+msgid ""
+"Missing required \"brand\" or \"part\" attribute, trying deprecated name."
+msgstr ""
+"Manca l'atribut requerit «brand» (marca) o «part» (model), s'intentarà amb el "
+"nom desaconsellat."
+
+#: ../libglabels/xml-template.c:637
+msgid "Name attribute also missing."
+msgstr "També manca l'atribut del nom."
+
+#: ../data/glade/merge-properties-dialog.glade.h:1
+#, fuzzy
+msgid "<b>Record selection/preview</b>"
+msgstr "<b>Selecció de registres/previsualització</b>"
+
+#: ../data/glade/merge-properties-dialog.glade.h:2
+#, fuzzy
+msgid "<b>Source</b>"
+msgstr "<b>Font</b>"
+
+#: ../data/glade/merge-properties-dialog.glade.h:3
+msgid "Format:"
+msgstr "Format:"
+
+#: ../data/glade/merge-properties-dialog.glade.h:4
+msgid "Location:"
+msgstr "Ubicació:"
+
+#: ../data/glade/merge-properties-dialog.glade.h:5
+msgid "Select all"
+msgstr "Selecciona-ho tot"
+
+#: ../data/glade/merge-properties-dialog.glade.h:6
+msgid "Unselect all"
+msgstr "No seleccionis res"
+
+#: ../data/glade/merge-properties-dialog.glade.h:7
+#: ../data/glade/object-editor.glade.h:39
+msgid "dialog1"
+msgstr "dialog1"
+
+#: ../data/glade/new-label-dialog.glade.h:1
+msgid "<b>Label orientation</b>"
+msgstr "<b>Orientació de l'etiqueta</b>"
+
+#: ../data/glade/new-label-dialog.glade.h:2
+msgid "<b>Media type</b>"
+msgstr "<b>Tipus de suport</b>"
+
+#: ../data/glade/object-editor.glade.h:2
+#, no-c-format
+msgid "%"
+msgstr "%"
+
+#: ../data/glade/object-editor.glade.h:3
+msgid "00000000000 00000"
+msgstr "00000000000 00000"
+
+#: ../data/glade/object-editor.glade.h:4
+msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
+msgstr ""
+"<span weight=\"bold\" size=\"larger\">Propietats de l'objecte Xxx</span>"
+
+#: ../data/glade/object-editor.glade.h:5 ../data/glade/prefs-dialog.glade.h:7
+msgid "Alignment:"
+msgstr "Alineació:"
+
+#: ../data/glade/object-editor.glade.h:6
+msgid "Allow merge to automatically shrink text"
+msgstr "Permet que la fusió encongisca el text automàticament"
+
+#: ../data/glade/object-editor.glade.h:7
+msgid "Angle:"
+msgstr "Angle:"
+
+#: ../data/glade/object-editor.glade.h:8
+msgid "Checksum"
+msgstr "Suma de verificació"
+
+#: ../data/glade/object-editor.glade.h:9 ../data/glade/prefs-dialog.glade.h:8
+msgid "Color:"
+msgstr "Color:"
+
+#: ../data/glade/object-editor.glade.h:11
+msgid "Enable shadow"
+msgstr "Habilita l'ombra"
+
+#: ../data/glade/object-editor.glade.h:12
+msgid "Family:"
+msgstr "Família:"
+
+#: ../data/glade/object-editor.glade.h:13
+msgid "File:"
+msgstr "Fitxer:"
+
+#: ../data/glade/object-editor.glade.h:14
+msgid "Fill"
+msgstr "Emplenat"
+
+#: ../data/glade/object-editor.glade.h:15
+#: ../data/glade/template-designer.glade.h:30
+msgid "Height:"
+msgstr "Alçada:"
+
+#: ../data/glade/object-editor.glade.h:17
+msgid "Insert merge field"
+msgstr "Inseriu el camp de fusió"
+
+#: ../data/glade/object-editor.glade.h:18
+msgid "Key:"
+msgstr "Clau:"
+
+#: ../data/glade/object-editor.glade.h:19
+msgid "Length:"
+msgstr "Llargada:"
+
+#: ../data/glade/object-editor.glade.h:21
+#: ../data/glade/prefs-dialog.glade.h:12
+msgid "Line Spacing:"
+msgstr "Espaiat de línia:"
+
+#: ../data/glade/object-editor.glade.h:22
+msgid "Literal:"
+msgstr "Literal:"
+
+#: ../data/glade/object-editor.glade.h:23
+msgid "Opacity:"
+msgstr "Opacitat:"
+
+#: ../data/glade/object-editor.glade.h:24
+msgid "Position"
+msgstr "Posició"
+
+#: ../data/glade/object-editor.glade.h:25
+msgid "Reset image size"
+msgstr "Reinicialitza la mida de la imatge"
+
+#: ../data/glade/object-editor.glade.h:26
+msgid "Select A File"
+msgstr "Seleccioneu un fitxer"
+
+#: ../data/glade/object-editor.glade.h:27
+msgid "Shadow"
+msgstr "Ombra"
+
+#: ../data/glade/object-editor.glade.h:28
+msgid "Size"
+msgstr "Mida"
+
+#: ../data/glade/object-editor.glade.h:29
+msgid "Size:"
+msgstr "Mida:"
+
+#: ../data/glade/object-editor.glade.h:30
+msgid "Style"
+msgstr "Estil"
+
+#: ../data/glade/object-editor.glade.h:31
+msgid "Style:"
+msgstr "Estil:"
+
+#: ../data/glade/object-editor.glade.h:33
+#: ../data/glade/prefs-dialog.glade.h:20
+#: ../data/glade/template-designer.glade.h:61
+msgid "Width:"
+msgstr "Amplada:"
+
+#: ../data/glade/object-editor.glade.h:34
+msgid "X Offset:"
+msgstr "Desplaçament X:"
+
+#: ../data/glade/object-editor.glade.h:35
+msgid "X:"
+msgstr "X:"
+
+#: ../data/glade/object-editor.glade.h:36
+msgid "Y Offset:"
+msgstr "Desplaçament Y:"
+
+#: ../data/glade/object-editor.glade.h:37
+msgid "Y:"
+msgstr "Y:"
+
+#: ../data/glade/object-editor.glade.h:38
+msgid "degrees"
+msgstr "graus"
+
+#: ../data/glade/object-editor.glade.h:40
+msgid "digits:"
+msgstr "dígits:"
+
+#: ../data/glade/object-editor.glade.h:41
+msgid "format:"
+msgstr "format:"
+
+#: ../data/glade/prefs-dialog.glade.h:1
+msgid "   "
+msgstr "   "
+
+#: ../data/glade/prefs-dialog.glade.h:2
+msgid "<span weight=\"bold\">Default page size</span>"
+msgstr "<span weight=\"bold\">Mida de pàgina predeterminada</span>"
+
+#: ../data/glade/prefs-dialog.glade.h:3
+msgid "<span weight=\"bold\">Fill</span>"
+msgstr "<span weight=\"bold\">Emplenat</span>"
+
+#: ../data/glade/prefs-dialog.glade.h:4
+msgid "<span weight=\"bold\">Line</span>"
+msgstr "<span weight=\"bold\">Línia</span>"
+
+#: ../data/glade/prefs-dialog.glade.h:5
+msgid "<span weight=\"bold\">Text</span>"
+msgstr "<span weight=\"bold\">Text</span>"
+
+#: ../data/glade/prefs-dialog.glade.h:6
+msgid "<span weight=\"bold\">Units</span>"
+msgstr "<span weight=\"bold\">Unitats</span>"
+
+#: ../data/glade/prefs-dialog.glade.h:9
+msgid "Font:"
+msgstr "Tipus de lletra"
+
+#: ../data/glade/prefs-dialog.glade.h:10
+msgid "ISO A4"
+msgstr "A4 de l'ISO"
+
+#: ../data/glade/prefs-dialog.glade.h:11
+msgid "Inches"
+msgstr "Polzades"
+
+#: ../data/glade/prefs-dialog.glade.h:13
+msgid "Locale"
+msgstr "Localització"
+
+#: ../data/glade/prefs-dialog.glade.h:14
+msgid "Millimeters"
+msgstr "Mil·límetres"
+
+#: ../data/glade/prefs-dialog.glade.h:15
+msgid "Object defaults"
+msgstr "Valors predeterminats dels objectes"
+
+#: ../data/glade/prefs-dialog.glade.h:16
+msgid "Points"
+msgstr "Punts"
+
+#: ../data/glade/prefs-dialog.glade.h:17
+msgid "Select default properties for new objects."
+msgstr "Seleccioneu els valors predeterminats dels objectes nous"
+
+#: ../data/glade/prefs-dialog.glade.h:18
+msgid "Select locale specific behavior."
+msgstr "Seleccioneu el comportament específic de la localització"
+
+#. Most popular (at top of list)
+#: ../data/glade/prefs-dialog.glade.h:19
+#: ../data/templates/paper-sizes.xml.h:29
+msgid "US Letter"
+msgstr "Carta EUA"
+
+#: ../data/glade/print-custom-widget.glade.h:1
+#, fuzzy
+msgid "<b>Options</b>"
+msgstr "<b>Opcions</b>"
+
+#: ../data/glade/print-custom-widget.glade.h:2
+msgid "<b>Print control (Merge)</b>"
+msgstr "<b>Control d'impressió (fusió)</b>"
+
+#: ../data/glade/print-custom-widget.glade.h:3
+msgid "<b>Print control (Simple)</b>"
+msgstr "<b>Control d'impressió (simple)</b>"
+
+#: ../data/glade/property-bar.glade.h:1
+msgid "Bold"
+msgstr "Negreta"
+
+#: ../data/glade/property-bar.glade.h:2
+msgid "Center align"
+msgstr "Alineació al centre"
+
+#: ../data/glade/property-bar.glade.h:4
+msgid "Font family"
+msgstr "Família del tipus de lletra"
+
+#: ../data/glade/property-bar.glade.h:5
+msgid "Font size"
+msgstr "Mida del tipus de lletra"
+
+#: ../data/glade/property-bar.glade.h:6
+msgid "Italic"
+msgstr "Cursiva"
+
+#: ../data/glade/property-bar.glade.h:7
+msgid "Left align"
+msgstr "Alineació a l'esquerra"
+
+#: ../data/glade/property-bar.glade.h:9
+msgid "Line width"
+msgstr "Amplada de la línia"
+
+#: ../data/glade/property-bar.glade.h:10
+msgid "Right align"
+msgstr "Alineació a la dreta"
+
+#: ../data/glade/property-bar.glade.h:11
+#, fuzzy
+msgid "Text Color"
+msgstr "Color del text"
+
+#: ../data/glade/property-bar.glade.h:12
+#, fuzzy
+msgid "Text color"
+msgstr "Color del text"
+
+#: ../data/glade/template-designer.glade.h:1
+msgid "(e.g., \"Mailing Labels,\" \"Business Cards,\" ...)"
+msgstr "(p.ex. «Etiquetes de correu», «Targetes de visita», etc.)"
+
+#: ../data/glade/template-designer.glade.h:2
+msgid "(e.g., 8163A)"
+msgstr "(p.ex. 8163A)"
+
+#: ../data/glade/template-designer.glade.h:3
+msgid "(e.g., Avery, Acme, ...)"
+msgstr "(p.ex. Avery, Acme, ...)"
+
+#: ../data/glade/template-designer.glade.h:4
+msgid "1. Outer radius:"
+msgstr "1. Radi exterior:"
+
+#: ../data/glade/template-designer.glade.h:5
+msgid "1. Radius:"
+msgstr "1. Radi:"
+
+#: ../data/glade/template-designer.glade.h:6
+msgid "1. Width:"
+msgstr "1. Amplada:"
+
+#: ../data/glade/template-designer.glade.h:7
+msgid "2. Height:"
+msgstr "2. Alçada:"
+
+#: ../data/glade/template-designer.glade.h:8
+msgid "2. Inner radius:"
+msgstr "2. Radi interior:"
+
+#: ../data/glade/template-designer.glade.h:9
+msgid "2. Waste (overprint allowed):"
+msgstr "2. Residu (es pot imprimir fora dels límits):"
+
+#: ../data/glade/template-designer.glade.h:10
+msgid "3. Clipping width:"
+msgstr "3. Amplada de retallada:"
+
+#: ../data/glade/template-designer.glade.h:11
+msgid "3. Margin"
+msgstr "3. Marge"
+
+#: ../data/glade/template-designer.glade.h:12
+msgid "3. Round (radius of corner):"
+msgstr "3. Corba (radi de la cantonada):"
+
+#: ../data/glade/template-designer.glade.h:13
+msgid "4. Clipping height:"
+msgstr "4. Alçada de retallada"
+
+#: ../data/glade/template-designer.glade.h:14
+msgid "4. Horiz. waste (overprint allowed):"
+msgstr "2. Residu horitz. (es pot imprimir fora dels límits):"
+
+#: ../data/glade/template-designer.glade.h:15
+msgid "5. Vert. waste (overprint allowed):"
+msgstr "5. Residu vert. (es pot imprimir fora dels límits):"
+
+#: ../data/glade/template-designer.glade.h:16
+msgid "5. Waste (overprint allowed):"
+msgstr "2. Residu (es pot imprimir fora dels límits):"
+
+#: ../data/glade/template-designer.glade.h:17
+msgid "6. Margin"
+msgstr "6. Marge"
+
+#: ../data/glade/template-designer.glade.h:18
+msgid "Brand/Manufacturer:"
+msgstr "Marca/fabricant:"
+
+#: ../data/glade/template-designer.glade.h:19
+msgid "CD/DVD (including credit card CDs)"
+msgstr "CD/DVD (també s'hi inclouen els CD de mida de targeta de crèdit)"
+
+#: ../data/glade/template-designer.glade.h:20
+msgid ""
+"Congratulations!\n"
+"\n"
+"You have completed the gLabels Template Designer.\n"
+"If you wish to accept and save your design, click \"Apply.\"\n"
+"\n"
+"Otherwise, you may click \"Cancel\" to abandon your design\n"
+"or \"Back\" to continue editing this design."
+msgstr ""
+"Enhorabona!\n"
+"\n"
+"Heu completat el dissenyador de plantilles del gLabels.\n"
+"Si voleu acceptar i alçar el vostre disseny, premeu «Aplica».\n"
+"\n"
+"En cas contrari, podeu fer clic a «Cancel·la» per a abandonar-lo \n"
+"o a «Arrere» per a continuar-lo editant."
+
+#: ../data/glade/template-designer.glade.h:27
+msgid "Description:"
+msgstr "Descripció:"
+
+#: ../data/glade/template-designer.glade.h:28
+msgid "Distance from left edge (x0):"
+msgstr "Distància des de la vora esquerra (x0):"
+
+#: ../data/glade/template-designer.glade.h:29
+msgid "Distance from top edge (y0):"
+msgstr "Distància des de la vora superior (y0):"
+
+#: ../data/glade/template-designer.glade.h:31
+msgid "Horizontal pitch (dx):"
+msgstr "Separació horitzontal (dx):"
+
+#: ../data/glade/template-designer.glade.h:32
+msgid ""
+"How many layouts will your template contain? \n"
+"\n"
+"A layout is a set of labels or cards that can be arranged in a simple grid.\n"
+"Most templates only need one layout, as in the first example.\n"
+"The second example illustrates when two layouts are needed."
+msgstr ""
+"Quantes disposicions contindrà la vostra plantilla?\n"
+"\n"
+"Una disposició és un conjunt d'etiquetes o targetes que es poden disposar \n"
+"en una graella simple. La majoria de les plantilles només necessiten una \n"
+"disposició, com podeu veure en el primer exemple.\n"
+"El segon exemple mostra en quins casos en calen dues."
+
+#: ../data/glade/template-designer.glade.h:37
+msgid "Layout #1"
+msgstr "Disposició n. 1"
+
+#: ../data/glade/template-designer.glade.h:38
+msgid "Layout #2"
+msgstr "Disposició n. 2"
+
+#: ../data/glade/template-designer.glade.h:39
+msgid "Number across (nx):"
+msgstr "Nombre per amplada (nx):"
+
+#: ../data/glade/template-designer.glade.h:40
+msgid "Number down (ny):"
+msgstr "Nombre per alçada (ny):"
+
+#: ../data/glade/template-designer.glade.h:41
+msgid "Number of layouts:"
+msgstr "Nombre de disposicions:"
+
+#: ../data/glade/template-designer.glade.h:42
+#: ../data/glade/wdgt-media-select.glade.h:3
+msgid "Page size:"
+msgstr "Mida de la pàgina:"
+
+#: ../data/glade/template-designer.glade.h:43
+msgid "Part #:"
+msgstr "Núm. de model:"
+
+#: ../data/glade/template-designer.glade.h:44
+msgid ""
+"Please enter the following identifying information about the template "
+"stationery."
+msgstr ""
+"Introduïu la informació d'identificació següent sobre la papereria de la "
+"plantilla."
+
+#: ../data/glade/template-designer.glade.h:45
+msgid "Please enter the following layout information."
+msgstr "Introduïu la informació de disposició següent."
+
+#: ../data/glade/template-designer.glade.h:46
+msgid ""
+"Please enter the following size parameters of a single label in your "
+"template."
+msgstr ""
+"Introduïu els paràmetres de mida següents d'una etiqueta única a la vostra "
+"plantilla."
+
+#: ../data/glade/template-designer.glade.h:47
+msgid ""
+"Please enter the following size parameters of a single label or card in your "
+"template."
+msgstr ""
+"Introduïu els paràmetres de mida següents d'una etiqueta única o targeta a "
+"la vostra plantilla"
+
+#: ../data/glade/template-designer.glade.h:48
+msgid "Please select the basic shape of the labels or cards."
+msgstr "Seleccioneu la forma bàsica de les etiquetes o targetes."
+
+#: ../data/glade/template-designer.glade.h:49
+msgid "Please select the page size of the template stationery."
+msgstr "Seleccioneu la mida de la pàgina de la papereria de la plantilla."
+
+#: ../data/glade/template-designer.glade.h:50
+msgid "Print test sheet"
+msgstr "Imprimeix un full de mostra"
+
+#: ../data/glade/template-designer.glade.h:51
+msgid "Rectangular or square (can have rounded corners)"
+msgstr "Rectangular o quadrada (pot tindre cantonades arrodonides)"
+
+#: ../data/glade/template-designer.glade.h:52
+msgid "Round"
+msgstr "Circular"
+
+#: ../data/glade/template-designer.glade.h:53
+msgid ""
+"Templates needing\n"
+"two layouts."
+msgstr ""
+"Plantilles que requereixen\n"
+"dues disposicions."
+
+#: ../data/glade/template-designer.glade.h:55
+msgid ""
+"Templates needing only\n"
+"one layout."
+msgstr ""
+"Plantilles que requereixen\n"
+"una disposició."
+
+#: ../data/glade/template-designer.glade.h:57
+msgid "Vertical pitch (dy):"
+msgstr "Separació vertical (dy):"
+
+#: ../data/glade/template-designer.glade.h:58
+msgid ""
+"Welcome to the gLabels Template Designer.\n"
+"\n"
+"This dialog will assist you in the creation of a custom gLabels template."
+msgstr ""
+"Vos donem la benvinguda al dissenyador de plantilles del gLabels.\n"
+"\n"
+"Este diàleg vos ajudarà a crear una plantilla personalitzada del \n"
+"gLabels."
+
+#: ../data/glade/template-designer.glade.h:62
+msgid "cd_size_page"
+msgstr "cd_size_page"
+
+#: ../data/glade/template-designer.glade.h:63
+msgid "finish_page"
+msgstr "finish_page"
+
+#: ../data/glade/template-designer.glade.h:65
+msgid "layout_page"
+msgstr "layout_page"
+
+#: ../data/glade/template-designer.glade.h:66
+#, fuzzy
+#| msgid "shape_page"
+msgid "name_page"
+msgstr "shape_page"
+
+#: ../data/glade/template-designer.glade.h:67
+msgid "nlayouts_page"
+msgstr "nlayouts_page"
+
+#: ../data/glade/template-designer.glade.h:68
+msgid "pg_size_page"
+msgstr "pg_size_page"
+
+#: ../data/glade/template-designer.glade.h:69
+msgid "rect_size_page"
+msgstr "rect_size_page"
+
+#: ../data/glade/template-designer.glade.h:70
+msgid "round_size_page"
+msgstr "round_size_page"
+
+#: ../data/glade/template-designer.glade.h:71
+msgid "shape_page"
+msgstr "shape_page"
+
+#: ../data/glade/template-designer.glade.h:72
+msgid "start_page"
+msgstr "start_page"
+
+#: ../data/glade/wdgt-media-select.glade.h:1
+msgid "Brand:"
+msgstr "Marca:"
+
+#: ../data/glade/wdgt-media-select.glade.h:2
+msgid "Category:"
+msgstr "Categoria:"
+
+#: ../data/glade/wdgt-media-select.glade.h:4
+#, fuzzy
+#| msgid "No recent templates found."
+msgid "Recent templates"
+msgstr "No s'ha trobat cap plantilla recent."
+
+#: ../data/glade/wdgt-media-select.glade.h:5
+msgid "Search all templates"
+msgstr "Cerca totes les plantilles"
+
+#: ../data/glade/wdgt-rotate-label.glade.h:1
+#, fuzzy
+msgid "Rotate"
+msgstr "Girat"
+
+#. Other ISO A series sizes
+#: ../data/templates/paper-sizes.xml.h:2
+msgid "A0"
+msgstr "A0"
+
+#: ../data/templates/paper-sizes.xml.h:3
+msgid "A1"
+msgstr "A1"
+
+#: ../data/templates/paper-sizes.xml.h:4
+msgid "A10"
+msgstr "A10"
+
+#: ../data/templates/paper-sizes.xml.h:5
+msgid "A2"
+msgstr "A2"
+
+#: ../data/templates/paper-sizes.xml.h:6
+msgid "A3"
+msgstr "A3"
+
+#: ../data/templates/paper-sizes.xml.h:7
+msgid "A4"
+msgstr "A4"
+
+#: ../data/templates/paper-sizes.xml.h:8
+msgid "A5"
+msgstr "A5"
+
+#: ../data/templates/paper-sizes.xml.h:9
+msgid "A6"
+msgstr "A6"
+
+#: ../data/templates/paper-sizes.xml.h:10
+msgid "A7"
+msgstr "A7"
+
+#: ../data/templates/paper-sizes.xml.h:11
+msgid "A8"
+msgstr "A8"
+
+#: ../data/templates/paper-sizes.xml.h:12
+msgid "A9"
+msgstr "A9"
+
+#. ISO B series sizes
+#: ../data/templates/paper-sizes.xml.h:14
+msgid "B0"
+msgstr "B0"
+
+#: ../data/templates/paper-sizes.xml.h:15
+msgid "B1"
+msgstr "B1"
+
+#: ../data/templates/paper-sizes.xml.h:16
+msgid "B10"
+msgstr "B10 "
+
+#: ../data/templates/paper-sizes.xml.h:17
+msgid "B2"
+msgstr "B2"
+
+#: ../data/templates/paper-sizes.xml.h:18
+msgid "B3"
+msgstr "B3"
+
+#: ../data/templates/paper-sizes.xml.h:19
+msgid "B4"
+msgstr "B4"
+
+#: ../data/templates/paper-sizes.xml.h:20
+msgid "B5"
+msgstr "   "
+
+#: ../data/templates/paper-sizes.xml.h:21
+msgid "B6"
+msgstr "B6 "
+
+#: ../data/templates/paper-sizes.xml.h:22
+msgid "B7"
+msgstr "B7"
+
+#: ../data/templates/paper-sizes.xml.h:23
+msgid "B8"
+msgstr "B8"
+
+#: ../data/templates/paper-sizes.xml.h:24
+msgid "B9"
+msgstr "B9"
+
+#: ../data/templates/paper-sizes.xml.h:25
+msgid "US Executive"
+msgstr "Executiu EUA"
+
+#. Other US paper sizes
+#: ../data/templates/paper-sizes.xml.h:27
+msgid "US Legal"
+msgstr "Legal EUA"
+
+#: ../data/templates/categories.xml.h:1
+msgid "Any card"
+msgstr "Qualsevol targeta"
+
+#: ../data/templates/categories.xml.h:2
+msgid "Any label"
+msgstr "Qualsevol etiqueta"
+
+#: ../data/templates/categories.xml.h:3
+msgid "Business cards"
+msgstr "Targetes de visita"
+
+#: ../data/templates/categories.xml.h:4
+msgid "CD/DVD or other media"
+msgstr "CD/DVD o un altre suport"
+
+#: ../data/templates/categories.xml.h:5
+msgid "Mailing/shipping products"
+msgstr "Productes de correu/facturació"
+
+#: ../data/templates/categories.xml.h:6
+msgid "Rectangular labels"
+msgstr "Etiquetes rectangulars"
+
+#: ../data/templates/categories.xml.h:7
+msgid "Round labels"
+msgstr "Etiquetes arrodonides"
+
+#: ../data/templates/categories.xml.h:8
+msgid "Square labels"
+msgstr "Etiquetes quadrades"
+
+#. ===================================================================
+#: ../data/templates/avery-iso-templates.xml.h:2
+#: ../data/templates/avery-us-templates.xml.h:2
+#: ../data/templates/dymo-other-templates.xml.h:4
+#: ../data/templates/misc-iso-templates.xml.h:2
+#: ../data/templates/zweckform-iso-templates.xml.h:2
+msgid "Address Labels"
+msgstr "Etiquetes d'adreça"
+
+#. ===================================================================
+#: ../data/templates/avery-iso-templates.xml.h:4
+msgid "Address labels"
+msgstr "Etiquetes d'adreça"
+
+#. ===================================================================
+#: ../data/templates/avery-iso-templates.xml.h:6
+msgid "Allround labels"
+msgstr "Etiquetes d'ús general"
+
+#. ============================================================
+#. ===================================================================
+#. ********************************************************************
+#. ===================================================================
+#: ../data/templates/avery-iso-templates.xml.h:8
+#: ../data/templates/avery-us-templates.xml.h:4
+#: ../data/templates/misc-iso-templates.xml.h:12
+#: ../data/templates/misc-us-templates.xml.h:4
+#: ../data/templates/zweckform-iso-templates.xml.h:6
+msgid "Business Cards"
+msgstr "Targetes de visita"
+
+#. ===============================================================
+#: ../data/templates/avery-iso-templates.xml.h:10
+msgid "CD Booklet"
+msgstr "Llibret de CD"
+
+#. ===============================================================
+#: ../data/templates/avery-iso-templates.xml.h:12
+msgid "CD Inlet"
+msgstr "Coberta interior de CD"
+
+#. ===============================================================
+#. ===================================================================
+#: ../data/templates/avery-iso-templates.xml.h:14
+#: ../data/templates/avery-us-templates.xml.h:6
+#: ../data/templates/misc-iso-templates.xml.h:16
+#: ../data/templates/misc-us-templates.xml.h:8
+#: ../data/templates/zweckform-iso-templates.xml.h:8
+msgid "CD/DVD Labels"
+msgstr "Etiquetes de CD/DVD"
+
+#. ===================================================================
+#: ../data/templates/avery-iso-templates.xml.h:16
+#: ../data/templates/avery-us-templates.xml.h:12
+msgid "Diskette Labels"
+msgstr "Etiquetes de disquet"
+
+#. ===================================================================
+#: ../data/templates/avery-iso-templates.xml.h:18
+msgid "Diskette labels"
+msgstr "Etiquetes de disquet"
+
+#. ===============================================================
+#. ===================================================================
+#: ../data/templates/avery-iso-templates.xml.h:20
+#: ../data/templates/misc-iso-templates.xml.h:36
+#: ../data/templates/misc-us-templates.xml.h:20
+#: ../data/templates/zweckform-iso-templates.xml.h:16
+msgid "Mailing Labels"
+msgstr "Etiquetes de correu"
+
+#. ===================================================================
+#: ../data/templates/avery-iso-templates.xml.h:22
+msgid "Mailing labels"
+msgstr "Etiquetes de correu"
+
+#. ===================================================================
+#: ../data/templates/avery-iso-templates.xml.h:24
+msgid "Mini Address Labels"
+msgstr "Etiquetes d'adreça miniatura"
+
+#. ===================================================================
+#: ../data/templates/avery-iso-templates.xml.h:26
+#, fuzzy
+msgid "Mini Labels"
+msgstr "Etiquetes de CD miniatura"
+
+#. ===================================================================
+#: ../data/templates/avery-iso-templates.xml.h:28
+msgid "Shipping labels"
+msgstr "Etiquetes de facturació"
+
+#. ===================================================================
+#: ../data/templates/avery-other-templates.xml.h:2
+msgid "File Folder Labels"
+msgstr "Etiquetes d'arxivador"
+
+#. ===================================================================
+#: ../data/templates/avery-us-templates.xml.h:8
+msgid "CD/DVD Labels (Disc Labels)"
+msgstr "Etiquetes de CD/DVD (etiquetes del disc)"
+
+#. ===================================================================
+#: ../data/templates/avery-us-templates.xml.h:10
+msgid "CD/DVD Labels (Spine Labels)"
+msgstr "Etiquetes de CD/DVD (etiquetes del llom)"
+
+#. the LSK labels can be torn in half down the center
+#: ../data/templates/avery-us-templates.xml.h:14
+msgid "Divider Labels"
+msgstr "Etiquetes divisòries"
+
+#. ===================================================================
+#: ../data/templates/avery-us-templates.xml.h:16
+msgid "Filing Labels"
+msgstr "Etiquetes d'arxivador"
+
+#. ===================================================================
+#: ../data/templates/avery-us-templates.xml.h:18
+msgid "Full Sheet Labels"
+msgstr "Etiquetes de full complet"
+
+#. ===================================================================
+#: ../data/templates/avery-us-templates.xml.h:20
+msgid "ID Labels"
+msgstr "Etiquetes d'identificació"
+
+#. ===================================================================
+#: ../data/templates/avery-us-templates.xml.h:22
+msgid "Index Cards"
+msgstr "Targetes d'índex"
+
+#. ===================================================================
+#: ../data/templates/avery-us-templates.xml.h:24
+msgid "Large Round Labels"
+msgstr "Etiquetes rodones grans"
+
+#. ===================================================================
+#: ../data/templates/avery-us-templates.xml.h:26
+msgid "Name Badge Labels"
+msgstr "Etiquetes d'acreditació"
+
+#. ===================================================================
+#: ../data/templates/avery-us-templates.xml.h:28
+msgid "Post cards"
+msgstr "Postals"
+
+#. ===================================================================
+#: ../data/templates/avery-us-templates.xml.h:30
+#: ../data/templates/dymo-other-templates.xml.h:12
+msgid "Return Address Labels"
+msgstr "Etiquetes d'adreça de retorn"
+
+#. ===================================================================
+#: ../data/templates/avery-us-templates.xml.h:32
+#: ../data/templates/misc-us-templates.xml.h:30
+msgid "Round Labels"
+msgstr "Etiquetes arroronides"
+
+#. ===================================================================
+#: ../data/templates/avery-us-templates.xml.h:34
+msgid "Shipping Labels"
+msgstr "Etiquetes de facturació"
+
+#. ===================================================================
+#: ../data/templates/avery-us-templates.xml.h:36
+msgid "Small Round Labels"
+msgstr "Etiquetes rodones petites"
+
+#. ===================================================================
+#: ../data/templates/avery-us-templates.xml.h:38
+msgid "Square Labels"
+msgstr "Etiquetes quadrades"
+
+#. ===================================================================
+#: ../data/templates/avery-us-templates.xml.h:40
+msgid "Tent Cards"
+msgstr "Targetes doblegades"
+
+#. ===================================================================
+#: ../data/templates/avery-us-templates.xml.h:42
+msgid "Video Tape Face Labels"
+msgstr "Etiquetes de caràtula de cinta de vídeo"
+
+#. ===================================================================
+#: ../data/templates/avery-us-templates.xml.h:44
+msgid "Video Tape Spine Labels"
+msgstr "Etiquetes de llom de cinta de vídeo"
+
+#: ../data/templates/brother-other-templates.xml.h:1
+msgid "Multi Purpose Labels 17mm x 54mm"
+msgstr "Etiquetes d'ús general 17 mm x 54 mm"
+
+#: ../data/templates/brother-other-templates.xml.h:2
+msgid "Shipping Labels 62mm x 100mm"
+msgstr "Etiquetes de facturació 62 mm x 100 mm"
+
+#.
+#. *********************************************************************
+#. *********************************************************************
+#. Labels for the Brother QL-500/550/650 PC Label Printers
+#.
+#. These templates work with the Brother Linux Printer CUPS Driver.  It
+#. is unknown if these work correctly with the foomatic print driver for
+#. these printers.
+#.
+#. One difference from typical templates is that the template size is
+#. not the actual media size - it is the size of the printable area,
+#. which is smaller than the media size.  This is because (at least with
+#. the Brother driver) coordinates are relative the corner of this area.
+#.
+#. *********************************************************************
+#. *********************************************************************
+#.
+#: ../data/templates/brother-other-templates.xml.h:20
+msgid "Standard Address Labels 29mm x 90mm"
+msgstr "Etiquetes d'adreça estàndard 29 mm x 90 mm"
+
+#. ===================================================================
+#: ../data/templates/dymo-other-templates.xml.h:2
+msgid "3.5in Diskette"
+msgstr "Disquet de 3.5\\\""
+
+#. ===================================================================
+#: ../data/templates/dymo-other-templates.xml.h:6
+msgid "File Folder"
+msgstr "Arxivador"
+
+#. ===================================================================
+#: ../data/templates/dymo-other-templates.xml.h:8
+msgid "Hanging Folder"
+msgstr "Carpeta penjant d'arxiu"
+
+#. ===================================================================
+#: ../data/templates/dymo-other-templates.xml.h:10
+msgid "Large Address Labels"
+msgstr "Etiquetes d'adreça grans"
+
+#. ===================================================================
+#: ../data/templates/dymo-other-templates.xml.h:14
+msgid "Shipping Address Labels"
+msgstr "Etiquetes d'adreça de facturació"
+
+#. ===================================================================
+#: ../data/templates/misc-iso-templates.xml.h:4
+#: ../data/templates/zweckform-iso-templates.xml.h:4
+msgid "Allround Labels"
+msgstr "Etiquetes d'ús general"
+
+#. ===================================================================
+#: ../data/templates/misc-iso-templates.xml.h:6
+msgid "Arch File Labels"
+msgstr "Etiquetes d'arxivador"
+
+#. ===================================================================
+#: ../data/templates/misc-iso-templates.xml.h:8
+msgid "Arch File Labels (large)"
+msgstr "Etiquetes d'arxivador (grans)"
+
+#. ===================================================================
+#: ../data/templates/misc-iso-templates.xml.h:10
+msgid "Arch File Labels (small)"
+msgstr "Etiquetes d'arxivador (petites)"
+
+#. ===================================================================
+#: ../data/templates/misc-iso-templates.xml.h:14
+msgid "CD Labels"
+msgstr "Etiquetes de CD"
+
+#. ===================================================================
+#: ../data/templates/misc-iso-templates.xml.h:18
+#: ../data/templates/misc-us-templates.xml.h:12
+msgid "CD/DVD Labels (face only)"
+msgstr "Etiquetes de CD/DVD (només la caràtula)"
+
+#. ===================================================================
+#: ../data/templates/misc-iso-templates.xml.h:20
+msgid "CD/DVD Labels Standard Format (face only)"
+msgstr "Etiquetes CD/DVD amb format estàndard (només la caràtula)"
+
+#. ===================================================================
+#: ../data/templates/misc-iso-templates.xml.h:22
+msgid "Diskette Labels (face only)"
+msgstr "Etiquetes de disquet (només la caràtula)"
+
+#. ===================================================================
+#: ../data/templates/misc-iso-templates.xml.h:24
+msgid "EPSON Photo Stickers 16"
+msgstr "Fotografies adhesives d'EPSON (16)"
+
+#. ===================================================================
+#: ../data/templates/misc-iso-templates.xml.h:26
+msgid "Etiketten"
+msgstr "Etiquetes"
+
+#. ===================================================================
+#: ../data/templates/misc-iso-templates.xml.h:28
+msgid "Fridge Magnet Stickers"
+msgstr "Enganxines d'imant de frigorífic"
+
+#. ===================================================================
+#: ../data/templates/misc-iso-templates.xml.h:30
+msgid "General Labels"
+msgstr "Etiquetes generals"
+
+#. ===================================================================
+#: ../data/templates/misc-iso-templates.xml.h:32
+msgid "Inkjet/Laser Labels 70x37mm"
+msgstr "Etiquetes per a impressió a raig de tinta/làser 70 x 37 mm"
+
+#. ===================================================================
+#: ../data/templates/misc-iso-templates.xml.h:38
+msgid "Mailing Labels-2 columns"
+msgstr "Etiquetes de correu - 2 columnes"
+
+#. ===================================================================
+#: ../data/templates/misc-iso-templates.xml.h:40
+msgid "Mailing Labels-3 columns"
+msgstr "Etiquetes de correu - 3 columnes"
+
+#. ===================================================================
+#: ../data/templates/misc-iso-templates.xml.h:42
+#: ../data/templates/misc-us-templates.xml.h:28
+msgid "PRO CD Labels 2-up (face only)"
+msgstr "Etiquetes PRO CD (2, només la caràtula)"
+
+#. ===================================================================
+#: ../data/templates/misc-iso-templates.xml.h:44
+#: ../data/templates/zweckform-iso-templates.xml.h:24
+msgid "Rectangular Labels"
+msgstr "Etiquetes rectangulars"
+
+#. ===================================================================
+#: ../data/templates/misc-iso-templates.xml.h:46
+#, fuzzy
+msgid "Universal Labels"
+msgstr "Etiquetes generals"
+
+#. ===================================================================
+#: ../data/templates/misc-iso-templates.xml.h:48
+msgid "Video Labels (face only)"
+msgstr "Etiquetes de vídeo (només la caràtula)"
+
+#. ===================================================================
+#: ../data/templates/misc-other-templates.xml.h:2
+msgid "Multi-Purpose Labels"
+msgstr "Etiquetes d'ús general"
+
+#. ===================================================================
+#: ../data/templates/misc-us-templates.xml.h:2
+msgid "Business Card CD"
+msgstr "CD de targeta de visita"
+
+#. ===================================================================
+#: ../data/templates/misc-us-templates.xml.h:6
+msgid "CD Template Rectangles"
+msgstr "Rectangles de plantilla de CD"
+
+#. ===================================================================
+#: ../data/templates/misc-us-templates.xml.h:10
+msgid "CD/DVD Labels (Face Only)"
+msgstr "Etiquetes de CD/DVD (només la caràtula)"
+
+#. ===================================================================
+#: ../data/templates/misc-us-templates.xml.h:14
+msgid "Cassette Labels"
+msgstr "Etiquetes de casset"
+
+#. ===================================================================
+#: ../data/templates/misc-us-templates.xml.h:16
+msgid "DLT Labels"
+msgstr "Etiquetes per a cintes DLT"
+
+#. ===================================================================
+#: ../data/templates/misc-us-templates.xml.h:18
+#, fuzzy
+msgid "Jewel Case Booklet"
+msgstr "Llibret de CD"
+
+#. ===================================================================
+#: ../data/templates/misc-us-templates.xml.h:22
+msgid "Microtube labels"
+msgstr "Etiquetes de microtubs"
+
+#. ===================================================================
+#: ../data/templates/misc-us-templates.xml.h:24
+msgid "Mini-CD Labels"
+msgstr "Etiquetes de CD miniatura"
+
+#: ../data/templates/misc-us-templates.xml.h:25
+msgid "PRO CD Labels 2-up (CD spine only)"
+msgstr "Etiquetes PRO CD (2, només el llom)"
+
+#: ../data/templates/misc-us-templates.xml.h:26
+msgid "PRO CD Labels 2-up (Face only)"
+msgstr "Etiquetes PRO CD (2, només la caràtula)"
+
+#. ===================================================================
+#: ../data/templates/misc-us-templates.xml.h:32
+msgid "Slimline CD Case (rightside up)"
+msgstr "Capsa de CD prima (cara amunt)"
+
+#: ../data/templates/misc-us-templates.xml.h:33
+msgid "Slimline CD Case (upside down)"
+msgstr "Capsa de CD prima (cara avall)"
+
+#. ===================================================================
+#: ../data/templates/zweckform-iso-templates.xml.h:10
+msgid "Correction and Cover-up Labels"
+msgstr "Etiqueted de correcció i cobertura"
+
+#. ===================================================================
+#: ../data/templates/zweckform-iso-templates.xml.h:12
+msgid "File Back Labels"
+msgstr "Etiquetes de llom d'arxivador"
+
+#. ===================================================================
+#: ../data/templates/zweckform-iso-templates.xml.h:14
+msgid "Lever Arch File Labels"
+msgstr "Etiquetes d'arxivador"
+
+#. ===================================================================
+#: ../data/templates/zweckform-iso-templates.xml.h:18
+msgid "Multi-purpose Stick+Lift Labels"
+msgstr "Etiquetes d'ús general reenganxables «Stick+Lift»"
+
+#. ===================================================================
+#: ../data/templates/zweckform-iso-templates.xml.h:20
+msgid "QSL-Karten Etiketten 70mm x 50,8mm"
+msgstr "Etiquetes de targeta QSL 70 mm x 50,8 mm"
+
+#. ===================================================================
+#: ../data/templates/zweckform-iso-templates.xml.h:22
+msgid "Rectangular Copier Labels"
+msgstr "Etiquetes de copiadora rectangulars"
+
+#. ===================================================================
+#: ../data/templates/zweckform-iso-templates.xml.h:26
+msgid "Video Labels (back)"
+msgstr "Etiquetes de vídeo (part posterior)"
+
+#: ../data/desktop/glabels.desktop.in.h:1
+msgid "Create labels, business cards and media covers"
+msgstr "Crea etiquetes, targetes de visita i caràtules de suports multimèdia"
+
+#: ../data/desktop/glabels.desktop.in.h:2
+#, fuzzy
+msgid "gLabels Label Designer"
+msgstr "Dissenyador d'etiquetes gLabels"
+
+#: ../data/mime/glabels.keys.in.h:1 ../data/mime/glabels.xml.in.h:1
+msgid "gLabels Project File"
+msgstr "Fitxer de projecte del gLabels"
+
+#: ../barcode-0.98/compat/getopt.c:583
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: l'opció «%s» és ambigua\n"
+
+#: ../barcode-0.98/compat/getopt.c:607
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: l'opció «--%s» no admet cap argument\n"
+
+#: ../barcode-0.98/compat/getopt.c:612
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: l'opció «%c%s» no permet cap argument\n"
+
+#: ../barcode-0.98/compat/getopt.c:629
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: l'opció «%s» requereix un argumetn\n"
+
+#. --option
+#: ../barcode-0.98/compat/getopt.c:658
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: no es reconeix l'opció «--%s»\n"
+
+#. +option or -option
+#: ../barcode-0.98/compat/getopt.c:662
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: no es reconeix l'opció «%c%s»\n"
+
+#. 1003.2 specifies the format of this message.
+#: ../barcode-0.98/compat/getopt.c:688
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: l'opció --%c no és vàlida\n"
+
+#: ../barcode-0.98/compat/getopt.c:691
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: l'opció --%c no és vàlida\n"
+
+#: ../barcode-0.98/compat/getopt.c:727
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: l'opció --%c requereix un argument\n"
+
+#, fuzzy
+#~ msgid "Code 93"
+#~ msgstr "Codi 39"
+
+#, fuzzy
+#~ msgid "Code One"
+#~ msgstr "Codi 39"
+
+#, fuzzy
+#~ msgid "Code 11"
+#~ msgstr "Codi 128"
+
+#, fuzzy
+#~ msgid "Code 16K"
+#~ msgstr "Codi 128"
+
+#, fuzzy
+#~ msgid "Code 39 Extended"
+#~ msgstr "Codi 39"
+
+#, fuzzy
+#~ msgid "Code 49"
+#~ msgstr "Codi 39"
+
+#, fuzzy
+#~ msgid "Data Matrix"
+#~ msgstr "IEC16022 (DataMatrix)"
+
+#, fuzzy
+#~| msgid "EAN-8"
+#~ msgid "EAN"
+#~ msgstr "EAN-8"
+
+#, fuzzy
+#~ msgid "HIBC Code 128"
+#~ msgstr "Codi 128"
+
+#, fuzzy
+#~ msgid "HIBC Code 39"
+#~ msgstr "Codi 39"
+
+#, fuzzy
+#~ msgid "HIBC Data Matrix"
+#~ msgstr "IEC16022 (DataMatrix)"
+
+#, fuzzy
+#~| msgid "Barcode"
+#~ msgid "Maxicode"
+#~ msgstr "Codi de barres"
+
+#, fuzzy
+#~ msgid "MSI Plessey"
+#~ msgstr "Plessey"
+
+#, fuzzy
+#~ msgid "PLANET"
+#~ msgstr "CEPNET"
+
+#, fuzzy
+#~ msgid "PostNet"
+#~ msgstr "Enganxa"
+
+#, fuzzy
+#~ msgid "Pharmacode"
+#~ msgstr "Codi de barres"
+
+#, fuzzy
+#~ msgid "Telepen"
+#~ msgstr "Suprimeix"
+
+#, fuzzy
+#~ msgid "UK Plessey"
+#~ msgstr "Plessey"
+
+#~ msgid "Default Color"
+#~ msgstr "Color predeterminat"
+
+#~ msgid "Brown"
+#~ msgstr "Marró"
+
+#~ msgid "Dark Goldenrod"
+#~ msgstr "Vara d'or (goldenrod) fosc"
+
+#~ msgid "Dark Cyan"
+#~ msgstr "Cyan fosc"
+
+#~ msgid "Navy Blue"
+#~ msgstr "Blau ultramarí"
+
+#~ msgid "Dark Yellow"
+#~ msgstr "Groc fosc"
+
+#~ msgid "Turquoise"
+#~ msgstr "Turquesa"
+
+#~ msgid "Salmon"
+#~ msgstr "Salmó"
+
+#~ msgid "Violet"
+#~ msgstr "Violeta"
+
+#~ msgid "Khaki"
+#~ msgstr "Caqui"
+
+#~ msgid "Slate Gray"
+#~ msgstr "Gris de pissarra"
+
+#~ msgid "Thistle"
+#~ msgstr "Calcida"
+
+#~ msgid "10% Gray"
+#~ msgstr "10% Gris"
+
+#~ msgid "25% Gray"
+#~ msgstr "25% Gris"
+
+#~ msgid "40% Gray"
+#~ msgstr "40% Gris"
+
+#~ msgid "50% Gray"
+#~ msgstr "50% Gris"
+
+#~ msgid "60% Gray"
+#~ msgstr "60% Gris"
+
+#~ msgid "Custom Color #%u"
+#~ msgstr "Color personalitzat núm. %u"
+
+#, fuzzy
+#~ msgid "Recent fonts"
+#~ msgstr "Plantilles recents"
+
+#, fuzzy
+#~ msgid "All fonts"
+#~ msgstr "Tots els fitxers"
+
+#, fuzzy
+#~ msgid "Launch gLabels label and business card designer."
+#~ msgstr "Un programa de creació d'etiquetes i de targetes de visita.\n"
+
+#, fuzzy
+#~ msgid "Barcode data"
+#~ msgstr "Les dades del codi de barres estan buides"
+
+#, fuzzy
+#~ msgid "Barcode property"
+#~ msgstr "Propietats de l'objecte codi de barres"
+
+#, fuzzy
+#~ msgid "Create box object"
+#~ msgstr "Crea un objecte de text"
+
+#, fuzzy
+#~ msgid "Create ellipse object"
+#~ msgstr "Crea un objecte línia"
+
+#, fuzzy
+#~ msgid "Set image"
+#~ msgstr "Reinicialitza la mida de la imatge"
+
+#, fuzzy
+#~ msgid "Resize"
+#~ msgstr "Mida de la pàgina:"
+
+#, fuzzy
+#~ msgid "Shadow state"
+#~ msgstr "Ombra"
+
+#, fuzzy
+#~ msgid "Shadow offset"
+#~ msgstr "Ombra"
+
+#, fuzzy
+#~ msgid "Shadow color"
+#~ msgstr "Ombra"
+
+#, fuzzy
+#~ msgid "Shadow opacity"
+#~ msgstr "Ombra"
+
+#, fuzzy
+#~ msgid "Font weight"
+#~ msgstr "Gira a la dreta"
+
+#, fuzzy
+#~ msgid "Align text"
+#~ msgstr "Alinea a l'esquerra"
+
+#, fuzzy
+#~ msgid "Line spacing"
+#~ msgstr "Espaiat de línia:"
+
+#, fuzzy
+#~ msgctxt "Page size"
+#~ msgid "Any"
+#~ msgstr "Qualsevol"
+
+#, fuzzy
+#~ msgctxt "Category"
+#~ msgid "Any"
+#~ msgstr "Qualsevol"
+
+#, fuzzy
+#~ msgid "No custom templates found."
+#~ msgstr "No s'ha trobat cap plantilla recent."
+
+#, fuzzy
+#~ msgid "VCards"
+#~ msgstr "Targetes doblegades"
+
+#, fuzzy
+#~ msgid "Select Product"
+#~ msgstr "Mode de selecció"
+
+#, fuzzy
+#~ msgid "New gLabels Template"
+#~ msgstr "Dissenyador de plantilles del gLabels"
+
+#, fuzzy
+#~ msgid "Edit gLabels Template"
+#~ msgstr "Dissenyador de plantilles del gLabels"
+
+#, fuzzy
+#~ msgid "Redo"
+#~ msgstr "Roig"
+
+#, fuzzy
+#~ msgid "Unknown embedded file format: \"%s\""
+#~ msgstr "Es desconeix l'identificador de mida de pàgina o nom «%s»"
+
+#, fuzzy
+#~ msgid "%d × %d (%d per sheet)"
+#~ msgstr "%d per full"
+
+#, fuzzy
+#~ msgid "diameter"
+#~ msgstr "%s %s de diàmetre"
+
+#, fuzzy
+#~ msgid "Search all"
+#~ msgstr "Selecciona-ho tot"
+
+#, fuzzy
+#~ msgid "Label size:"
+#~ msgstr "Mida de la pàgina:"
+
+#, fuzzy
+#~ msgid "Layout:"
+#~ msgstr "Disposicions"
+
+#~ msgid "Normal"
+#~ msgstr "Normal"
+
+#~ msgid "Rotated"
+#~ msgstr "Girat"
+
+#, fuzzy
+#~| msgid "Brand:"
+#~ msgid "Backend:"
+#~ msgstr "Marca:"
+
+#, fuzzy
+#~ msgid "Default page size"
+#~ msgstr "Reinicialitza la mida de la imatge"
+
+#, fuzzy
+#~ msgid "Units"
+#~ msgstr "Sense títol"
+
+#, fuzzy
+#~ msgid "Copies"
+#~ msgstr "Còpies"
+
+#, fuzzy
+#~ msgid "Address Labels (STAMPIT)"
+#~ msgstr "Etiquetes d'adreça"
+
+#, fuzzy
+#~ msgid "Bottle labels"
+#~ msgstr "Etiquetes de disquet"
+
+#, fuzzy
+#~ msgid "Business cards high glossy"
+#~ msgstr "Targetes de visita"
+
+#, fuzzy
+#~ msgid "Business cards punched"
+#~ msgstr "Targetes de visita"
+
+#, fuzzy
+#~ msgid "Business cards punched dull"
+#~ msgstr "Targetes de visita"
+
+#, fuzzy
+#~ msgid "Business cards punched glossy"
+#~ msgstr "Targetes de visita"
+
+#, fuzzy
+#~ msgid "Floppy disk labels"
+#~ msgstr "Etiquetes d'ús general"
+
+#, fuzzy
+#~ msgid "Foldable business cards"
+#~ msgstr "Targetes de visita"
+
+#, fuzzy
+#~ msgid "Labels A4"
+#~ msgstr "Etiquetes"
+
+#, fuzzy
+#~ msgid "Labels A5"
+#~ msgstr "Etiquetes"
+
+#, fuzzy
+#~ msgid "Labels A6"
+#~ msgstr "Etiquetes"
+
+#, fuzzy
+#~ msgid "Name plates"
+#~ msgstr "name_page"
+
+#, fuzzy
+#~ msgid "Photo labels"
+#~ msgstr "Quant al gLabels"
+
+#, fuzzy
+#~ msgid "SD card labels"
+#~ msgstr "Etiquetes quadrades"
+
+#, fuzzy
+#~ msgid "Self-adhesive labels"
+#~ msgstr "Etiquetes quadrades"
index 83678d19fc3ba64ec18192d1ba56c854a3aa295c..e4470204b62e4bb7ee6407daed64bb974de88234 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
-# cs translation of Glabels.
-# Copyright (C) 2005, 2009 THE Glabels'S COPYRIGHT HOLDER.
-# This file is distributed under the same license as the Glabels package.
+# Czech translation of Glabels.
+# Copyright (C) 2005, 2009, 2010 THE Glabels'S COPYRIGHT HOLDER.
+# This file is distributed under the same license as the glabels package.
+#
 # David Makovský (Yakeen) <yakeen@sannyas-on.net>, 2005.
 # Zbynek Mrkvicka <zbynek@oachot.cz>, 2005.
-# Marek Černocký <marek@manet.cz>, 2009, 2010.
+# Marek Černocký <marek@manet.cz>, 2009, 2010, 2011.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Glabels 2.0.2\n"
+"Project-Id-Version: glabels\n"
 "Report-Msgid-Bugs-To: http://sourceforge.net/tracker/?group_id=46122&ati\n"
-"POT-Creation-Date: 2010-03-21 17:13+0000\n"
-"PO-Revision-Date: 2010-03-20 11:12+0100\n"
+"POT-Creation-Date: 2011-04-17 04:00+0000\n"
+"PO-Revision-Date: 2011-04-17 10:26+0200\n"
 "Last-Translator: Marek Černocký <marek@manet.cz>\n"
 "Language-Team: Czech <gnome-cs-list@gnome.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: cs\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Poedit-Language: Czech\n"
-"X-Poedit-SourceCharset: utf-8\n"
 
-#: ../src/glabels.c:75 ../src/glabels-batch.c:70
-msgid "[FILE...]"
-msgstr "[SOUBOR…]"
+#: ../src/bc-backends.c:81
+msgid "Built-in"
+msgstr "Vestavěný"
 
-#: ../src/glabels.c:91
-msgid "- gLabels label designer"
-msgstr "- návrhář etiket gLabels"
+#: ../src/bc-backends.c:101
+msgid "POSTNET (any)"
+msgstr "POSTNET (jakýkoli)"
 
-#: ../src/glabels-batch.c:54
-msgid "set output filename (default=\"output.pdf\")"
-msgstr "nastavit název výstupního souboru  (výchozí=„output.ps“)"
+#: ../src/bc-backends.c:104
+msgid "POSTNET-5 (ZIP only)"
+msgstr "POSTNET-5 (pouze PSČ)"
 
-#: ../src/glabels-batch.c:54 ../src/glabels-batch.c:68
-msgid "filename"
-msgstr "název souboru"
+#: ../src/bc-backends.c:107
+msgid "POSTNET-9 (ZIP+4)"
+msgstr "POSTNET-9 (PSČ+4)"
 
-#: ../src/glabels-batch.c:56
-msgid "number of sheets (default=1)"
-msgstr "počet stran (výchozí=1)"
+#: ../src/bc-backends.c:110
+msgid "POSTNET-11 (DPBC)"
+msgstr "POSTNET-11 (DPBC)"
 
-#: ../src/glabels-batch.c:56
-msgid "sheets"
-msgstr "stran"
+#: ../src/bc-backends.c:113
+msgid "CEPNET"
+msgstr "CEPNET"
 
-#: ../src/glabels-batch.c:58
-msgid "number of copies (default=1)"
-msgstr "počet kopií (výchozí = 1)"
+#: ../src/bc-backends.c:116
+msgid "One Code"
+msgstr "One Code"
 
-#: ../src/glabels-batch.c:58
-msgid "copies"
-msgstr "kopií"
+#: ../src/bc-backends.c:119 ../src/bc-backends.c:175 ../src/bc-backends.c:248
+msgid "Code 39"
+msgstr "Code 39"
 
-#: ../src/glabels-batch.c:60
-msgid "first label on first sheet (default=1)"
-msgstr "první etiketa na prvním listu (výchozí=1)"
+#: ../src/bc-backends.c:122 ../src/bc-backends.c:251
+msgid "Code 39 Extended"
+msgstr "Code 39 rozšířený"
 
-#: ../src/glabels-batch.c:60
-msgid "first"
-msgstr "první"
+#: ../src/bc-backends.c:127
+msgid "EAN (any)"
+msgstr "EAN (jakýkoli)"
 
-#: ../src/glabels-batch.c:62 ../data/glade/print-custom-widget.glade.h:6
-msgid "print outlines (to test printer alignment)"
-msgstr "tisk obrysů (test zarovnávání tiskárny)"
+#: ../src/bc-backends.c:130
+msgid "EAN-8"
+msgstr "EAN-8"
 
-#: ../src/glabels-batch.c:64 ../data/glade/print-custom-widget.glade.h:5
-msgid "print in reverse (i.e. a mirror image)"
-msgstr "obrácený tisk (např. zrcadlený obrázek)"
+#: ../src/bc-backends.c:133
+msgid "EAN-8 +2"
+msgstr "EAN-8 +2"
 
-#: ../src/glabels-batch.c:66 ../data/glade/print-custom-widget.glade.h:4
-msgid "print crop marks"
-msgstr "tisknout značky pro ořez"
+#: ../src/bc-backends.c:136
+msgid "EAN-8 +5"
+msgstr "EAN-8 +5"
 
-#: ../src/glabels-batch.c:68
-msgid "input file for merging"
-msgstr "vstupní soubor pro slučování"
+#: ../src/bc-backends.c:139
+msgid "EAN-13"
+msgstr "EAN-13"
 
-#: ../src/glabels-batch.c:96
-msgid "- batch process gLabels label files"
-msgstr "- dávkové zpracování souborů s etiketami gLabels"
+#: ../src/bc-backends.c:142
+msgid "EAN-13 +2"
+msgstr "EAN-13 +2"
 
-#: ../src/glabels-batch.c:142
-#, c-format
-msgid "cannot perform document merge with glabels file %s\n"
-msgstr "nelze provést slučování dokumentu se souborem aplikace gLabels %s\n"
+#: ../src/bc-backends.c:145
+msgid "EAN-13 +5"
+msgstr "EAN-13 +5"
 
-#: ../src/glabels-batch.c:164
-#, c-format
-msgid "cannot open glabels file %s\n"
-msgstr "nelze otevřít soubor aplikace gLabels %s\n"
+#: ../src/bc-backends.c:148
+msgid "UPC (UPC-A or UPC-E)"
+msgstr "UPC (UPC-A nebo UPC-E)"
 
-#: ../src/window.c:259
-msgid "(none) - gLabels"
-msgstr "(žádné) - gLabels"
+#: ../src/bc-backends.c:151 ../src/bc-backends.c:395
+msgid "UPC-A"
+msgstr "UPC-A"
 
-#: ../src/window.c:432
-msgid "(modified)"
-msgstr "(změněno)"
+#: ../src/bc-backends.c:154
+msgid "UPC-A +2"
+msgstr "UPC-A +2"
 
-#: ../src/stock.c:72
-msgid "_Select Mode"
-msgstr "Režim _výběru"
+#: ../src/bc-backends.c:157
+msgid "UPC-A +5"
+msgstr "UPC-A +5"
 
-#: ../src/stock.c:73
-msgid "_Text"
-msgstr "_Text"
+#: ../src/bc-backends.c:160 ../src/bc-backends.c:398
+msgid "UPC-E"
+msgstr "UPC-E"
 
-#: ../src/stock.c:74
-msgid "_Line"
-msgstr "Čár_a"
+#: ../src/bc-backends.c:163
+msgid "UPC-E +2"
+msgstr "UPC-E +2"
 
-#: ../src/stock.c:75
-msgid "_Box"
-msgstr "O_bdélník"
+#: ../src/bc-backends.c:166
+msgid "UPC-E +5"
+msgstr "UPC-E +5"
 
-#: ../src/stock.c:76
-msgid "_Ellipse"
-msgstr "_Elipsa"
+#: ../src/bc-backends.c:169 ../src/bc-backends.c:332
+msgid "ISBN"
+msgstr "ISBN"
 
-#: ../src/stock.c:77
-msgid "_Image"
-msgstr "Obrá_zek"
+#: ../src/bc-backends.c:172
+msgid "ISBN +5"
+msgstr "ISBN +5"
 
-#: ../src/stock.c:78
-msgid "Bar_code"
-msgstr "Čárový _kód"
+#: ../src/bc-backends.c:178 ../src/bc-backends.c:260
+msgid "Code 128"
+msgstr "Code 128"
 
-#: ../src/stock.c:79
-msgid "_Merge Properties"
-msgstr "Vlastnosti _slučování"
+#: ../src/bc-backends.c:181
+msgid "Code 128C"
+msgstr "Code 128C"
 
-#: ../src/stock.c:80
-msgid "Object _Properties"
-msgstr "Vlastnosti _objektu"
+#: ../src/bc-backends.c:184
+msgid "Code 128B"
+msgstr "Code 128B"
 
-#: ../src/stock.c:81
-msgid "Bring to _Front"
-msgstr "Přenést do_předu"
+#: ../src/bc-backends.c:187 ../src/bc-backends.c:329
+msgid "Interleaved 2 of 5"
+msgstr "Prokládaný 2 z 5"
 
-#: ../src/stock.c:82
-msgid "Send to _Back"
-msgstr "Přenést do_zadu"
+#: ../src/bc-backends.c:190 ../src/bc-backends.c:224
+msgid "Codabar"
+msgstr "Codabar"
 
-#: ../src/stock.c:83
-msgid "Rotate _Left"
-msgstr "Otočit do_leva"
+#: ../src/bc-backends.c:193
+msgid "MSI"
+msgstr "MSI"
 
-#: ../src/stock.c:84
-msgid "Rotate _Right"
-msgstr "Otočit do_prava"
+#: ../src/bc-backends.c:196
+msgid "Plessey"
+msgstr "Plessey"
 
-#: ../src/stock.c:85
-msgid "Flip _Horizontally"
-msgstr "Překlopit _vodorovně"
+#: ../src/bc-backends.c:199 ../src/bc-backends.c:257
+msgid "Code 93"
+msgstr "Code 93"
 
-#: ../src/stock.c:86
-msgid "Flip _Vertically"
-msgstr "Překlopit _svisle"
+#: ../src/bc-backends.c:206
+msgid "Australia Post Standard"
+msgstr "Australský poštovní standard"
 
-#: ../src/stock.c:87
-msgid "_Lefts"
-msgstr "Do_leva"
+#: ../src/bc-backends.c:209
+msgid "Australia Post Reply Paid"
+msgstr "Australský poštovní odpovědní"
 
-#: ../src/stock.c:88
-msgid "_Rights"
-msgstr "Dop_rava"
+#: ../src/bc-backends.c:212
+msgid "Australia Post Route Code"
+msgstr "Australský poštovní směrový kód"
 
-#: ../src/stock.c:89
-msgid "_Centers"
-msgstr "Na_střed"
+#: ../src/bc-backends.c:215
+msgid "Australia Post Redirect"
+msgstr "Australský poštovní přesměrovávací"
 
-#: ../src/stock.c:90
-msgid "_Tops"
-msgstr "Na_horu"
+#: ../src/bc-backends.c:218
+msgid "Aztec Code"
+msgstr "Aztec Code"
 
-#: ../src/stock.c:91
-msgid "Bottoms"
-msgstr "_Dolů"
+#: ../src/bc-backends.c:221
+msgid "Aztec Rune"
+msgstr "Aztec Rune"
 
-#: ../src/stock.c:92
-msgid "Centers"
-msgstr "Nastřed"
+#: ../src/bc-backends.c:227
+msgid "Code One"
+msgstr "Code One"
 
-#: ../src/stock.c:93 ../src/stock.c:94
-msgid "Label Ce_nter"
-msgstr "Stře_d etikety"
+#: ../src/bc-backends.c:230
+msgid "Code 11"
+msgstr "Code 11"
 
-#: ../src/stock.c:95 ../data/glade/property-bar.glade.h:3
-msgid "Fill color"
-msgstr "Barva výplně"
+#: ../src/bc-backends.c:233
+msgid "Code 16K"
+msgstr "Code 16K"
 
-#: ../src/stock.c:96 ../data/glade/property-bar.glade.h:8
-msgid "Line color"
-msgstr "Barva obrysu"
+#: ../src/bc-backends.c:236
+msgid "Code 2 of 5 Matrix"
+msgstr "Kód 2 z 5 Matrix"
 
-#: ../src/stock.c:97 ../src/stock.c:99
-msgid "Linked"
-msgstr "Svázáno"
+#: ../src/bc-backends.c:239
+msgid "Code 2 of 5 IATA"
+msgstr "Kód 2 z 5 IATA"
 
-#: ../src/stock.c:98 ../src/stock.c:100
-msgid "Not Linked"
-msgstr "Nesvázáno"
+#: ../src/bc-backends.c:242
+msgid "Code 2 of 5 Data Logic"
+msgstr "Kód 2 z 5 Data Logic"
 
-#. Menu entries.
-#: ../src/ui.c:93
-msgid "_File"
-msgstr "_Soubor"
+#: ../src/bc-backends.c:245
+msgid "Code 32 (Italian Pharmacode)"
+msgstr "Code 32 (italský farmaceutický)"
 
-#: ../src/ui.c:94
-msgid "Open Recent _Files"
-msgstr "Otevřít nedávné _soubory"
+#: ../src/bc-backends.c:254
+msgid "Code 49"
+msgstr "Code 49"
 
-#: ../src/ui.c:95
-msgid "_Edit"
-msgstr "_Upravit"
+#: ../src/bc-backends.c:263
+msgid "Code 128 (Mode C supression)"
+msgstr "Code 128 (režim utajení C)"
 
-#: ../src/ui.c:96
-msgid "_View"
-msgstr "_Zobrazit"
+#: ../src/bc-backends.c:266
+msgid "DAFT Code"
+msgstr "DAFT Code"
 
-#: ../src/ui.c:97
-msgid "Customize Main Toolbar"
-msgstr "Přizpůsobit hlavní panel"
+#: ../src/bc-backends.c:269
+msgid "Data Matrix"
+msgstr "Data Matrix"
 
-#: ../src/ui.c:98
-msgid "Customize Drawing Toolbar"
-msgstr "Přizpůsobit panel kreslení"
+#: ../src/bc-backends.c:272
+msgid "Deutsche Post Leitcode"
+msgstr "Německý poštovní Leitcode"
 
-#: ../src/ui.c:99
-msgid "Customize Properties Toolbar"
-msgstr "Přizpůsobit panel vlastností"
+#: ../src/bc-backends.c:275
+msgid "Deutsche Post Identcode"
+msgstr "Německý poštovní Identcode"
 
-#: ../src/ui.c:100
-msgid "_Objects"
-msgstr "_Objekty"
+#: ../src/bc-backends.c:278
+msgid "Dutch Post KIX Code"
+msgstr "Nizozemský poštovní KIX Code"
 
-#: ../src/ui.c:101
-msgid "_Create"
-msgstr "_Vytvořit"
+#: ../src/bc-backends.c:281
+msgid "EAN"
+msgstr "EAN"
 
-#: ../src/ui.c:102
-msgid "_Order"
-msgstr "_Pořadí"
+#: ../src/bc-backends.c:284
+msgid "Grid Matrix"
+msgstr "Grid Matrix"
 
-#: ../src/ui.c:103
-msgid "_Rotate/Flip"
-msgstr "_Otočit/Překlopit"
+#: ../src/bc-backends.c:287
+msgid "GS1-128"
+msgstr "GS1-128"
 
-#: ../src/ui.c:104
-msgid "Align _Horizontal"
-msgstr "Zarovnat _vodorovně"
+#: ../src/bc-backends.c:290
+msgid "GS1 DataBar-14"
+msgstr "GS1 DataBar-14"
 
-#: ../src/ui.c:105
-msgid "Align _Vertical"
-msgstr "Zarovnat _svisle"
+#: ../src/bc-backends.c:299
+msgid "GS1 DataBar-14 Stacked"
+msgstr "GS1 DataBar-14 vrstvený"
 
-#: ../src/ui.c:106
-msgid "_Help"
-msgstr "_Nápověda"
+#: ../src/bc-backends.c:302
+msgid "GS1 DataBar-14 Stacked Omni."
+msgstr "GS1 DataBar-14 vrstvený nesměrový"
 
-#. Popup entries.
-#: ../src/ui.c:109 ../src/ui.c:110
-msgid "Context Menu"
-msgstr "Kontextová nabídka"
+#: ../src/bc-backends.c:305
+msgid "GS1 DataBar Extended Stacked"
+msgstr "GS1 DataBar rozšířený vrstvený"
 
-#: ../src/ui.c:115
-msgid "_New"
-msgstr "_Nový"
+#: ../src/bc-backends.c:308
+msgid "HIBC Code 128"
+msgstr "HIBC Code 128"
 
-#: ../src/ui.c:117
-msgid "Create a new file"
-msgstr "Vytvořit nový soubor"
+#: ../src/bc-backends.c:311
+msgid "HIBC Code 39"
+msgstr "HIBC Code 39"
 
-#: ../src/ui.c:122
-msgid "_Open..."
-msgstr "_Otevřít…"
+#: ../src/bc-backends.c:314
+msgid "HIBC Data Matrix"
+msgstr "HIBC Data Matrix"
 
-#: ../src/ui.c:124
-msgid "Open a file"
-msgstr "Otevřít soubor"
+#: ../src/bc-backends.c:317
+msgid "HIBC QR Code"
+msgstr "HIBC QR Code"
 
-#: ../src/ui.c:129
-msgid "_Save"
-msgstr "_Uložit"
+#: ../src/bc-backends.c:320
+msgid "HIBC PDF417"
+msgstr "HIBC PDF417"
 
-#: ../src/ui.c:131
-msgid "Save current file"
-msgstr "Uložit současný soubor"
+#: ../src/bc-backends.c:323
+msgid "HIBC Micro PDF417"
+msgstr "HIBC Micro PDF417"
 
-#: ../src/ui.c:136
-msgid "Save _As..."
-msgstr "Uložit _jako…"
+#: ../src/bc-backends.c:326
+msgid "HIBC Aztec Code"
+msgstr "HIBC Aztec Code"
 
-#: ../src/ui.c:138
-msgid "Save the current file to a different name"
-msgstr "Uložit současný soubor s jiným názvem"
+#: ../src/bc-backends.c:335
+msgid "ITF-14"
+msgstr "ITF-14"
 
-#: ../src/ui.c:143
-msgid "_Print..."
-msgstr "_Tisk…"
+#: ../src/bc-backends.c:338
+msgid "Japanese Postal"
+msgstr "Japonský poštovní"
 
-#: ../src/ui.c:145
-msgid "Print the current file"
-msgstr "Vytisknout současný soubor"
+#: ../src/bc-backends.c:341
+msgid "Korean Postal"
+msgstr "Korejský poštovní"
 
-#: ../src/ui.c:150
-msgid "Properties..."
-msgstr "Vlastnosti…"
+#: ../src/bc-backends.c:344
+msgid "LOGMARS"
+msgstr "LOGMARS"
 
-#: ../src/ui.c:152
-msgid "Modify document properties"
-msgstr "Upravit vlastnosti dokumentu"
+#: ../src/bc-backends.c:347
+msgid "Maxicode"
+msgstr "Maxicode"
 
-#: ../src/ui.c:157
-msgid "Template _Designer..."
-msgstr "Návrhář š_ablon…"
+#: ../src/bc-backends.c:350
+msgid "Micro PDF417"
+msgstr "Micro PDF417"
 
-#: ../src/ui.c:159
-msgid "Create a custom template"
-msgstr "Vytvořit vlastní šablonu"
+#: ../src/bc-backends.c:353
+msgid "Micro QR Code"
+msgstr "Micro QR Code"
 
-#: ../src/ui.c:164
-msgid "_Close"
-msgstr "_Zavřít"
+#: ../src/bc-backends.c:356
+msgid "MSI Plessey"
+msgstr "MSI Plessey"
 
-#: ../src/ui.c:166
-msgid "Close the current file"
-msgstr "Zavřít současný soubor"
+#: ../src/bc-backends.c:359
+msgid "NVE-18"
+msgstr "NVE-18"
 
-#: ../src/ui.c:171
-msgid "_Quit"
-msgstr "U_končit"
+#: ../src/bc-backends.c:362
+msgid "PDF417"
+msgstr "PDF417"
 
-#: ../src/ui.c:173
-msgid "Quit the program"
-msgstr "Ukončit aplikaci"
+#: ../src/bc-backends.c:365
+msgid "PDF417 Truncated"
+msgstr "PDF417 zkrácený"
 
-#: ../src/ui.c:180
-msgid "Cut"
-msgstr "Vyjmout"
+#: ../src/bc-backends.c:368
+msgid "PLANET"
+msgstr "PLANET"
 
-#: ../src/ui.c:182
-msgid "Cut the selection"
-msgstr "Vyjmout výběr"
+#: ../src/bc-backends.c:371
+msgid "PostNet"
+msgstr "PostNet"
 
-#: ../src/ui.c:187
-msgid "Copy"
-msgstr "Kopírovat"
+#: ../src/bc-backends.c:374
+msgid "Pharmacode"
+msgstr "Pharmacode"
 
-#: ../src/ui.c:189
-msgid "Copy the selection"
-msgstr "Kopírovat výběr"
+#: ../src/bc-backends.c:377
+msgid "Pharmacode 2-track"
+msgstr "Pharmacode binární"
 
-#: ../src/ui.c:194
-msgid "Paste"
-msgstr "Vložit"
+#: ../src/bc-backends.c:380
+msgid "Pharmazentral Nummer (PZN)"
+msgstr "Pharmazentral Nummer (PZN)"
 
-#: ../src/ui.c:196
-msgid "Paste the clipboard"
-msgstr "Vložit ze schránky"
+#: ../src/bc-backends.c:383
+msgid "QR Code"
+msgstr "QR Code"
 
-#: ../src/ui.c:201
-msgid "Delete"
-msgstr "Smazat"
+#: ../src/bc-backends.c:386
+msgid "Royal Mail 4-State"
+msgstr "Royal Mail 4stavový"
 
-#: ../src/ui.c:203
-msgid "Delete the selected objects"
-msgstr "Smazat vybrané objekty"
+#: ../src/bc-backends.c:389
+msgid "Telepen"
+msgstr "Telepen"
 
-#: ../src/ui.c:208
-msgid "Select All"
-msgstr "Vybrat vše"
+#: ../src/bc-backends.c:392
+msgid "Telepen Numeric"
+msgstr "Telepen číselný"
 
-#: ../src/ui.c:210
-msgid "Select all objects"
-msgstr "Vybrat všechny objekty"
+#: ../src/bc-backends.c:401
+msgid "USPS One Code"
+msgstr "USPS One Code"
 
-#: ../src/ui.c:215
-msgid "Un-select All"
-msgstr "Zrušit výběr"
+#: ../src/bc-backends.c:404
+msgid "UK Plessey"
+msgstr "UK Plessey"
 
-#: ../src/ui.c:217
-msgid "Remove all selections"
-msgstr "Zrušit výběr všecho"
+#: ../src/bc-backends.c:411
+msgid "IEC16022 (DataMatrix)"
+msgstr "IEC16022 (DataMatrix)"
 
-#: ../src/ui.c:222
-msgid "Preferences"
-msgstr "Předvolby"
+#: ../src/bc-backends.c:418
+msgid "IEC18004 (QRCode)"
+msgstr "IEC18004 (QRCode)"
 
-#: ../src/ui.c:224
-msgid "Configure the application"
-msgstr "Nastavit aplikaci"
+#: ../src/color-combo-button.c:198 ../src/color-combo.c:178
+msgid "Default Color"
+msgstr "Výchozí barva"
 
-#: ../src/ui.c:231
-msgid "Zoom in"
-msgstr "Přiblížit"
+#: ../src/color-combo-menu.c:83
+msgid "Dark Red"
+msgstr "Tmavě červená"
 
-#: ../src/ui.c:233
-msgid "Increase magnification"
-msgstr "Zvětšit přiblížení"
+#: ../src/color-combo-menu.c:84
+msgid "Brown"
+msgstr "Hnědá"
 
-#: ../src/ui.c:238
-msgid "Zoom out"
-msgstr "Oddálit"
+#: ../src/color-combo-menu.c:85
+msgid "Dark Goldenrod"
+msgstr "Tmavě zlatooranžová"
 
-#: ../src/ui.c:240
-msgid "Decrease magnification"
-msgstr "Zmenšit přiblížení"
+#: ../src/color-combo-menu.c:86
+msgid "Dark Green"
+msgstr "Tmavě zelená"
 
-#: ../src/ui.c:245
-msgid "Zoom 1 to 1"
-msgstr "Přiblížení 1:1"
+#: ../src/color-combo-menu.c:87
+msgid "Dark Cyan"
+msgstr "Tmavě azurová"
 
-#: ../src/ui.c:247
-msgid "Restore scale to 100%"
-msgstr "Obnovit měřítko na 100%"
+#: ../src/color-combo-menu.c:88
+msgid "Navy Blue"
+msgstr "Námořnická modř"
 
-#: ../src/ui.c:252
-msgid "Zoom to fit"
-msgstr "Přizpůsobit velikosti"
+#: ../src/color-combo-menu.c:89
+msgid "Dark Violet"
+msgstr "Tmavě fialová"
 
-#: ../src/ui.c:254
-msgid "Set scale to fit window"
-msgstr "Přizpůsobit měřítko velikosti okna"
+#: ../src/color-combo-menu.c:91
+msgid "Red"
+msgstr "Červená"
 
-#: ../src/ui.c:261
-msgid "Select Mode"
-msgstr "Režim výběru"
+#: ../src/color-combo-menu.c:92
+msgid "Orange"
+msgstr "Oranžová"
 
-#: ../src/ui.c:263
-msgid "Select, move and modify objects"
-msgstr "Výběr, přesun a úpravy objektů"
+#: ../src/color-combo-menu.c:93
+msgid "Dark Yellow"
+msgstr "Tmavě žlutá"
 
-#: ../src/ui.c:268 ../src/view-text.c:494
-#: ../data/glade/object-editor.glade.h:32
-msgid "Text"
-msgstr "Text"
+#: ../src/color-combo-menu.c:94
+msgid "Medium green"
+msgstr "Střední zelená"
 
-#: ../src/ui.c:270
-msgid "Create text object"
-msgstr "Vytvořit textový objekt"
+#: ../src/color-combo-menu.c:95
+msgid "Turquoise"
+msgstr "Tyrkysová"
 
-#: ../src/ui.c:275
-msgid "Box"
-msgstr "Obdélník"
+#: ../src/color-combo-menu.c:96
+msgid "Blue"
+msgstr "Modrá"
 
-#: ../src/ui.c:277
-msgid "Create box/rectangle object"
-msgstr "Vytvořit čtverec/obdélník"
+#: ../src/color-combo-menu.c:97
+msgid "Purple"
+msgstr "Purpurová"
 
-#: ../src/ui.c:282 ../data/glade/object-editor.glade.h:20
-msgid "Line"
-msgstr "Čára"
+#: ../src/color-combo-menu.c:99
+msgid "Salmon"
+msgstr "Lososová"
 
-#: ../src/ui.c:284
-msgid "Create line object"
-msgstr "Vytvořit čáru"
+#: ../src/color-combo-menu.c:100
+msgid "Gold"
+msgstr "Zlatá"
 
-#: ../src/ui.c:289
-msgid "Ellipse"
-msgstr "Elipsa"
-
-#: ../src/ui.c:291
-msgid "Create ellipse/circle object"
-msgstr "Vytvořit elipsu/kruh"
-
-#: ../src/ui.c:296 ../data/glade/object-editor.glade.h:16
-msgid "Image"
-msgstr "Obrázek"
-
-#: ../src/ui.c:298
-msgid "Create image object"
-msgstr "Vytvořit objekt s obrázkem"
-
-#: ../src/ui.c:303
-msgid "Barcode"
-msgstr "Čárový kód"
-
-#: ../src/ui.c:305
-msgid "Create barcode object"
-msgstr "Vytvořit objekt s čárovým kódem"
-
-#: ../src/ui.c:310
-msgid "Bring to front"
-msgstr "Přenést dopředu"
-
-#: ../src/ui.c:312
-msgid "Raise object to top"
-msgstr "Vyzvednout objekt nahoru"
-
-#: ../src/ui.c:317
-msgid "Send to back"
-msgstr "Přenést dozadu"
-
-#: ../src/ui.c:319
-msgid "Lower object to bottom"
-msgstr "Poslat objekt dozadu"
-
-#: ../src/ui.c:324
-msgid "Rotate left"
-msgstr "Otočit doleva"
-
-#: ../src/ui.c:326
-msgid "Rotate object 90 degrees counter-clockwise"
-msgstr "Otočit objekt o 90° proti směru hodinových ručiček"
-
-#: ../src/ui.c:331
-msgid "Rotate right"
-msgstr "Otočit doprava"
-
-#: ../src/ui.c:333
-msgid "Rotate object 90 degrees clockwise"
-msgstr "Otočit objekt o 90° po směru hodinových ručiček"
-
-#: ../src/ui.c:338
-msgid "Flip horizontally"
-msgstr "Překlopit vodorovně"
-
-#: ../src/ui.c:340
-msgid "Flip object horizontally"
-msgstr "Překlopit objekt vodorovně"
-
-#: ../src/ui.c:345
-msgid "Flip vertically"
-msgstr "Překlopit svisle"
-
-#: ../src/ui.c:347
-msgid "Flip object vertically"
-msgstr "Překlopit objekt svisle"
-
-#: ../src/ui.c:352
-msgid "Align left"
-msgstr "Zarovnat doleva"
-
-#: ../src/ui.c:354
-msgid "Align objects to left edges"
-msgstr "Zarovnat objekty levou hranou"
-
-#: ../src/ui.c:359
-msgid "Align right"
-msgstr "Zarovnat doprava"
-
-#: ../src/ui.c:361
-msgid "Align objects to right edges"
-msgstr "Zarovnat objekty pravou hranou"
-
-#: ../src/ui.c:366
-msgid "Align horizontal center"
-msgstr "Zarovnat vodorovně na střed"
-
-#: ../src/ui.c:368
-msgid "Align objects to horizontal centers"
-msgstr "Zarovnat objekty vodorovně na střed"
-
-#: ../src/ui.c:373
-msgid "Align tops"
-msgstr "Zarovnat nahoru"
-
-#: ../src/ui.c:375
-msgid "Align objects to top edges"
-msgstr "Zarovnat objekty horní hranou"
-
-#: ../src/ui.c:380
-msgid "Align bottoms"
-msgstr "Zarovnat dolů"
-
-#: ../src/ui.c:382
-msgid "Align objects to bottom edges"
-msgstr "Zarovnat objekty dolní hranou"
-
-#: ../src/ui.c:387
-msgid "Align vertical center"
-msgstr "Zarovnat svisle na střed"
-
-#: ../src/ui.c:389
-msgid "Align objects to vertical centers"
-msgstr "Zarovnat objekty svisle na střed"
-
-#: ../src/ui.c:394
-msgid "Center horizontally"
-msgstr "Vystředit vodorovně"
-
-#: ../src/ui.c:396
-msgid "Center objects to horizontal label center"
-msgstr "Vystředit objekty vodorovně na střed etikety"
-
-#: ../src/ui.c:401
-msgid "Center vertically"
-msgstr "Vystředit  svisle"
-
-#: ../src/ui.c:403
-msgid "Center objects to vertical label center"
-msgstr "Vystředit  objekty svisle na střed etikety"
-
-#: ../src/ui.c:408
-msgid "Merge properties"
-msgstr "Vlastnosti slučování"
-
-#: ../src/ui.c:410
-msgid "Edit merge properties"
-msgstr "Upravit vlastnosti slučování"
-
-#: ../src/ui.c:417
-msgid "Contents"
-msgstr "Obsah"
-
-#: ../src/ui.c:419
-msgid "Open glabels manual"
-msgstr "Otevřít příručku gLabels"
-
-#: ../src/ui.c:424
-msgid "About..."
-msgstr "O aplikaci…"
+#: ../src/color-combo-menu.c:101
+msgid "Yellow"
+msgstr "Žlutá"
 
-#: ../src/ui.c:426
-msgid "About glabels"
-msgstr "O aplikaci gLabels"
-
-#: ../src/ui.c:436
-msgid "Property toolbar"
-msgstr "Panel vlastností"
-
-#: ../src/ui.c:438
-msgid "Change the visibility of the property toolbar in the current window"
-msgstr "Změnit zobrazení panelu vlastností v současném okně"
-
-#: ../src/ui.c:444 ../src/ui.c:489 ../src/ui.c:497
-msgid "Show tooltips"
-msgstr "Zobrazovat tipy"
-
-#: ../src/ui.c:446
-msgid "Show tooltips for property toolbar"
-msgstr "Zobrazovat tipy v panelu vlastností"
-
-#: ../src/ui.c:452
-msgid "Grid"
-msgstr "Mřížka"
+#: ../src/color-combo-menu.c:102
+msgid "Green"
+msgstr "Zelená"
 
-#: ../src/ui.c:454
-msgid "Change the visibility of the grid in the current window"
-msgstr "Změnit zobrazení mřížky v současném okně"
+#: ../src/color-combo-menu.c:103
+msgid "Cyan"
+msgstr "Azurová"
 
-#: ../src/ui.c:460
-msgid "Markup"
-msgstr "Ohraničení"
+#: ../src/color-combo-menu.c:104
+msgid "SkyBlue"
+msgstr "Nebeská modř"
 
-#: ../src/ui.c:462
-msgid "Change the visibility of markup lines in the current window"
-msgstr "Změnit zobrazení hraničních čar v současném okně"
+#: ../src/color-combo-menu.c:105
+msgid "Violet"
+msgstr "Fialová"
 
-#: ../src/ui.c:473
-msgid "Main toolbar"
-msgstr "Hlavní panel"
+#: ../src/color-combo-menu.c:107
+msgid "Pink"
+msgstr "Růžová"
 
-#: ../src/ui.c:475
-msgid "Change the visibility of the main toolbar in the current window"
-msgstr "Změnit zobrazení hlavního panelu nástrojů v současném okně"
+#: ../src/color-combo-menu.c:108
+msgid "Khaki"
+msgstr "Khaki"
 
-#: ../src/ui.c:481
-msgid "Drawing toolbar"
-msgstr "Panel kreslení"
+#: ../src/color-combo-menu.c:109
+msgid "Light Yellow"
+msgstr "Světle žlutá"
 
-#: ../src/ui.c:483
-msgid "Change the visibility of the drawing toolbar in the current window"
-msgstr "Změnit zobrazení panelu kreslení v současném okně"
+#: ../src/color-combo-menu.c:110
+msgid "Light Green"
+msgstr "Světle zelená"
 
-#: ../src/ui.c:491
-msgid "Show tooltips for main toolbar"
-msgstr "Zobrazovat tipy v hlavním panelu"
+#: ../src/color-combo-menu.c:111
+msgid "Light Cyan"
+msgstr "Světle azurová"
 
-#: ../src/ui.c:499
-msgid "Show tooltips for drawing toolbar"
-msgstr "Zobrazovat tipy v panelu kreslení"
+#: ../src/color-combo-menu.c:112
+msgid "Slate Gray"
+msgstr "Břidlicová"
 
-#: ../src/ui-property-bar.c:1232 ../src/object-editor.c:587
-#: ../src/object-editor.c:593
-msgid "Default"
-msgstr "Výchozí"
+#: ../src/color-combo-menu.c:113
+msgid "Thistle"
+msgstr "Bledě fialová"
 
-#: ../src/ui-property-bar.c:1239 ../src/object-editor.c:599
-msgid "No line"
-msgstr "Bez obrysu"
+#: ../src/color-combo-menu.c:115
+msgid "White"
+msgstr "Bílá"
 
-#: ../src/ui-property-bar.c:1247 ../src/object-editor.c:606
-msgid "No fill"
-msgstr "Bez výplně"
+#: ../src/color-combo-menu.c:117
+#, no-c-format
+msgid "10% Gray"
+msgstr "10% šedá"
 
-#: ../src/ui-sidebar.c:152
-msgid "Object properties"
-msgstr "Vlastnosti objektu"
+#: ../src/color-combo-menu.c:119
+#, no-c-format
+msgid "25% Gray"
+msgstr "25% šedá"
 
-#: ../src/ui-commands.c:1084
-msgid "Glabels includes contributions from:"
-msgstr "Aplikace gLabels obsahuje příspěvky od:"
+#: ../src/color-combo-menu.c:121
+#, no-c-format
+msgid "40% Gray"
+msgstr "40% šedá"
 
-#: ../src/ui-commands.c:1090
-msgid "See the file AUTHORS for additional credits,"
-msgstr "Doplňující informace o zásluhách najdete v souboru AUTHORS,"
+#: ../src/color-combo-menu.c:123
+#, no-c-format
+msgid "50% Gray"
+msgstr "50% šedá"
 
-#: ../src/ui-commands.c:1091
-msgid "or visit http://glabels.sourceforge.net/"
-msgstr "nebo navštivte http://glabels.sourceforge.net/"
+#: ../src/color-combo-menu.c:125
+#, no-c-format
+msgid "60% Gray"
+msgstr "60% šedá"
 
-#: ../src/ui-commands.c:1103
-msgid "A label and business card creation program.\n"
-msgstr "Program na vytváření etiket a vizitek.\n"
+#: ../src/color-combo-menu.c:126
+msgid "Black"
+msgstr "Černá"
 
-#: ../src/ui-commands.c:1107
-msgid "translator-credits"
-msgstr ""
-"David Makovský <yakeen@sannyas-on.net>\n"
-"Zbyněk Mrkvička <zbynek@oachot.cz>\n"
-"Marek Černocký <marek@manet.cz>"
+#: ../src/color-combo-menu.c:254 ../src/color-combo-menu.c:373
+msgid "Custom Color"
+msgstr "Vlastní barva"
 
-#: ../src/ui-commands.c:1110
-msgid ""
-"Glabels is free software; you can redistribute it and/or modify it\n"
-"under the terms of the GNU General Public License as published by\n"
-"the Free Software Foundation; either version 2 of the License, or\n"
-"(at your option) any later version.\n"
-"\n"
-"This program is distributed in the hope that it will be useful, but\n"
-"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See\n"
-"the GNU General Public License for more details.\n"
-msgstr ""
-"Aplikace gLabels je svobodný software: Můžete jej dále šířit a/nebo "
-"upravovat za podmínek licence GNU General Public License v podobě, v jaké ji "
-"vydala Free Software Foundation, a to buď ve verzi 2 této licence nebo (dle "
-"vaší volby) v libovolné novější verzi.\n"
-"\n"
-"Tento program je šířen ve víře, že bude užitečný, ale BEZ JAKÝCHKOLIV ZÁRUK, "
-"a to i bez předpokládané záruky na PRODEJNOST nebo VHODNOST PRO KONKRÉTNÍ "
-"ÚČEL. Více podrobností najdete přímo v licenci GNU General Public License.\n"
+#: ../src/color-combo-menu.c:319
+#, c-format
+msgid "Custom Color #%u"
+msgstr "Vlastní barva č. %u"
 
-#: ../src/ui-commands.c:1136
-msgid "glabels"
-msgstr "glabels"
+#: ../src/critical-error-handler.c:70
+msgid "gLabels Fatal Error!"
+msgstr "Kritická chyba aplikace gLabels!"
 
-#: ../src/file.c:91
+#: ../src/file.c:84
 msgid "New Label or Card"
 msgstr "Nová etiketa či vizitka"
 
-#: ../src/file.c:191
+#: ../src/file.c:175 ../src/label.c:601 ../src/label.c:645
 msgid "Label properties"
 msgstr "Vlastnosti etikety"
 
-#: ../src/file.c:292 ../src/file.c:578
+#: ../src/file.c:267 ../src/file.c:557
 msgid "All files"
 msgstr "Všechny soubory"
 
-#: ../src/file.c:297 ../src/file.c:583
+#: ../src/file.c:272 ../src/file.c:562
 msgid "gLabels documents"
 msgstr "Dokumenty gLabels"
 
-#: ../src/file.c:343 ../src/file.c:640
+#: ../src/file.c:319 ../src/file.c:620
 msgid "Empty file name selection"
 msgstr "Prázdné pole s názvem souboru"
 
-#: ../src/file.c:346 ../src/file.c:362
+#: ../src/file.c:322 ../src/file.c:338
 msgid "Please select a file or supply a valid file name"
 msgstr "Vyberte, prosím, soubor, nebo zadejte platný název souboru"
 
-#: ../src/file.c:359
+#: ../src/file.c:335
 msgid "File does not exist"
 msgstr "Soubor neexistuje"
 
-#: ../src/file.c:433
+#: ../src/file.c:410
 #, c-format
 msgid "Could not open file \"%s\""
 msgstr "Nelze otevřít soubor „%s“"
 
-#: ../src/file.c:436
+#: ../src/file.c:413
 msgid "Not a supported file format"
 msgstr "Formát tohoto souboru není podporován"
 
-#: ../src/file.c:513 ../src/file.c:690
+#: ../src/file.c:491 ../src/file.c:670
 #, c-format
 msgid "Could not save file \"%s\""
 msgstr "Nelze uložit soubor „%s“"
 
-#: ../src/file.c:517 ../src/file.c:694
+#: ../src/file.c:495 ../src/file.c:674
 msgid "Error encountered during save.  The file is still not saved."
 msgstr "Při ukládání se vyskytla chyba. Soubor nebyl uložen."
 
-#: ../src/file.c:556
+#: ../src/file.c:535
 #, c-format
 msgid "Save \"%s\" as"
 msgstr "Uložit „%s“ jako"
 
-#: ../src/file.c:643
+#: ../src/file.c:623
 msgid "Please supply a valid file name"
 msgstr "Zadejte prosím platný název souboru"
 
-#: ../src/file.c:664
+#: ../src/file.c:644
 #, c-format
 msgid "Overwrite file \"%s\"?"
 msgstr "Přepsat soubor „%s“?"
 
-#: ../src/file.c:668
+#: ../src/file.c:648
 msgid "File already exists."
 msgstr "Soubor již existuje."
 
-#: ../src/file.c:764
+#: ../src/file.c:744
 #, c-format
 msgid "Save changes to document \"%s\" before closing?"
 msgstr "Uložit před zavřením změny v dokumentu „%s“?"
 
-#: ../src/file.c:768
+#: ../src/file.c:748
 msgid "Your changes will be lost if you don't save them."
 msgstr "Vaše změny budou ztraceny, pokud je neuložíte."
 
-#: ../src/file.c:771
+#: ../src/file.c:751
 msgid "Close without saving"
 msgstr "Zavřít bez uložení"
 
-#. Should not happen
-#: ../src/prefs.c:159 ../src/prefs.c:166
-#: ../data/glade/object-editor.glade.h:43
-#: ../data/glade/prefs-dialog.glade.h:22
-msgid "points"
-msgstr "body"
+#: ../src/font-combo-menu.c:137
+msgid "Recent fonts"
+msgstr "Nedávno použitá písma"
 
-#: ../src/prefs.c:161 ../data/glade/object-editor.glade.h:42
-#: ../data/glade/template-designer.glade.h:64
-msgid "inches"
-msgstr "palce"
+#: ../src/font-combo-menu.c:152
+msgid "Proportional fonts"
+msgstr "Proporcionální písmo"
 
-#: ../src/prefs.c:163
-msgid "mm"
-msgstr "mm"
+#: ../src/font-combo-menu.c:160
+msgid "Fixed-width fonts"
+msgstr "Písmo s pevnou šířkou"
 
-#: ../src/prefs-dialog.c:162 ../data/glade/prefs-dialog.glade.h:21
-msgid "gLabels Preferences"
-msgstr "Předvolby gLabels"
+#: ../src/font-combo-menu.c:168
+msgid "All fonts"
+msgstr "Všechna písma"
 
-#. Build editor.
-#: ../src/view-box.c:175
-msgid "Box object properties"
-msgstr "Vlastnosti obdélníku"
+#.
+#. * Allow text samples to be localized.
+#. *
+#. * FIXME: if we could extract enough meta information from the fonts
+#. * themselves, perhaps rather than setting these globally for the
+#. * current locale, they could be unique to each font family.
+#.
+#: ../src/font-combo-menu-item.c:132
+msgctxt "Short sample text"
+msgid "Aa"
+msgstr "Šš"
+
+#: ../src/font-combo-menu-item.c:134
+msgctxt "Lower case sample text"
+msgid "abcdefghijklmnopqrstuvwxyz"
+msgstr "aábcčdďeéěfghiíjklmnňoópqrřsštťuúůvwxyýzž"
+
+#: ../src/font-combo-menu-item.c:136
+msgctxt "Upper case sample text"
+msgid "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "AÁBCČDĎEÉĚFGHIÍJKLMNŇOÓPQRŘSŠTŤUÚŮVWXYÝZŽ"
+
+#: ../src/font-combo-menu-item.c:138
+msgctxt "Numbers and special characters sample text"
+msgid "0123456789 .:,;(*!?)"
+msgstr "0123456789 .:,;(*!?)"
+
+#: ../src/font-combo-menu-item.c:157
+msgid "Sample text"
+msgstr "Ukázkový text"
+
+#: ../src/glabels-batch.c:53
+msgid "set output filename (default=\"output.pdf\")"
+msgstr "nastavit název výstupního souboru  (výchozí=„output.ps“)"
 
-#. Build editor.
-#: ../src/view-ellipse.c:175
-msgid "Ellipse object properties"
-msgstr "Vlastnosti elipsy"
+#: ../src/glabels-batch.c:53 ../src/glabels-batch.c:67
+msgid "filename"
+msgstr "název souboru"
 
-#. Build editor.
-#: ../src/view-line.c:174
-msgid "Line object properties"
-msgstr "Vlastnosti čáry"
+#: ../src/glabels-batch.c:55
+msgid "number of sheets (default=1)"
+msgstr "počet stran (výchozí=1)"
 
-#. Build editor.
-#: ../src/view-image.c:174
-msgid "Image object properties"
-msgstr "Vlastnosti obrázku"
+#: ../src/glabels-batch.c:55
+msgid "sheets"
+msgstr "stran"
 
-#. Build editor.
-#: ../src/view-text.c:178
-msgid "Text object properties"
-msgstr "Vlastnosti textu"
+#: ../src/glabels-batch.c:57
+msgid "number of copies (default=1)"
+msgstr "počet kopií (výchozí = 1)"
 
-#. Build editor.
-#: ../src/view-barcode.c:174
-msgid "Barcode object properties"
-msgstr "Vlastnosti čárového kódu"
+#: ../src/glabels-batch.c:57
+msgid "copies"
+msgstr "kopií"
 
-#: ../src/object-editor-image-page.c:270
-msgid "All Files"
-msgstr "Všechny soubory"
+#: ../src/glabels-batch.c:59
+msgid "first label on first sheet (default=1)"
+msgstr "první etiketa na prvním listu (výchozí=1)"
 
-#: ../src/object-editor-image-page.c:275
-msgid "All Images"
-msgstr "Všechny obrázky"
+#: ../src/glabels-batch.c:59
+msgid "first"
+msgstr "první"
 
-#: ../src/object-editor-image-page.c:290
-#, c-format
-msgid "%s (*.%s)"
-msgstr "%s (*.%s)"
+#: ../src/glabels-batch.c:61 ../data/ui/print-op-dialog-custom-widget.ui.h:13
+msgid "print outlines (to test printer alignment)"
+msgstr "tisk obrysů (test zarovnávání tiskárny)"
 
-#: ../src/merge-properties-dialog.c:263
-msgid "Merge Properties"
-msgstr "Vlastnosti slučování"
+#: ../src/glabels-batch.c:63 ../data/ui/print-op-dialog-custom-widget.ui.h:12
+msgid "print in reverse (i.e. a mirror image)"
+msgstr "obrácený tisk (např. zrcadlený obrázek)"
 
-#: ../src/merge-properties-dialog.c:289 ../src/merge-properties-dialog.c:397
-msgid "Select merge-database source"
-msgstr "Výběr databázového zdroje pro slučování"
+#: ../src/glabels-batch.c:65 ../data/ui/print-op-dialog-custom-widget.ui.h:11
+msgid "print crop marks"
+msgstr "tisknout značky pro ořez"
 
-#: ../src/merge-properties-dialog.c:298 ../src/merge-properties-dialog.c:417
-msgid "N/A"
-msgstr "Neurčeno"
+#: ../src/glabels-batch.c:67
+msgid "input file for merging"
+msgstr "vstupní soubor pro slučování"
 
-#: ../src/merge-properties-dialog.c:324
-msgid "Select"
-msgstr "Výběr"
+#: ../src/glabels-batch.c:69 ../src/glabels.c:63
+msgid "[FILE...]"
+msgstr "[SOUBOR…]"
 
-#: ../src/merge-properties-dialog.c:332
-msgid "Record/Field"
-msgstr "Záznam/Pole"
+#: ../src/glabels-batch.c:99
+msgid "Print files created with gLabels."
+msgstr "Vytisknout soubory vytvořené pomocí gLabels."
 
-#: ../src/merge-properties-dialog.c:340 ../data/glade/object-editor.glade.h:10
-msgid "Data"
-msgstr "Data"
+#: ../src/glabels-batch.c:107 ../src/glabels.c:87
+#, c-format
+msgid ""
+"%s\n"
+"Run '%s --help' to see a full list of available command line options.\n"
+msgstr ""
+"%s\n"
+"Spuštěním „%s --help“ si zobrazíte seznam všech dostupných přepínačů "
+"příkazové řádky.\n"
 
-#: ../src/merge-properties-dialog.c:410
-msgid "Fixed"
-msgstr "Napevno"
-
-#. ===================================================================
-#: ../src/print-op.c:237 ../src/wdgt-print-copies.c:171
-#: ../data/templates/misc-iso-templates.xml.h:34
-msgid "Labels"
-msgstr "Etikety"
-
-#: ../src/template-designer.c:358
-msgid "gLabels Template Designer"
-msgstr "Návrhář šablon gLabels"
-
-#: ../src/template-designer.c:419
-msgid "Welcome"
-msgstr "Vítejte"
-
-#: ../src/template-designer.c:463
-msgid "Name and Description"
-msgstr "Název a popis"
-
-#: ../src/template-designer.c:516
-msgid "Page Size"
-msgstr "Velikost stránky"
-
-#: ../src/template-designer.c:587
-msgid "Label or Card Shape"
-msgstr "Tvar etikety či vizitky"
-
-#: ../src/template-designer.c:637
-msgid "Label or Card Size"
-msgstr "Velikost etikety či vizitky"
-
-#: ../src/template-designer.c:737
-msgid "Label Size (round)"
-msgstr "Velikost etikety (oválná)"
-
-#: ../src/template-designer.c:820
-msgid "Label Size (CD/DVD)"
-msgstr "Velikost etikety (CD/DVD)"
-
-#: ../src/template-designer.c:913
-msgid "Number of Layouts"
-msgstr "Počet rozvržení"
-
-#: ../src/template-designer.c:976
-msgid "Layout(s)"
-msgstr "Rozvržení"
-
-#: ../src/template-designer.c:1087
-msgid "Design Completed"
-msgstr "Návrh byl dokončen"
-
-#: ../src/template-designer.c:1253
-msgid ""
-"<span foreground='red' weight='bold'>Brand and part# match an existing "
-"template!</span>"
-msgstr ""
-"<span foreground='red' weight='bold'>Značka a produktové číslo odpovídají "
-"již existující šabloně!</span>"
-
-#: ../src/bc.c:67
-msgid "POSTNET (any)"
-msgstr "POSTNET (jakýkoli)"
-
-#: ../src/bc.c:70
-msgid "POSTNET-5 (ZIP only)"
-msgstr "POSTNET-5 (pouze PSČ)"
-
-#: ../src/bc.c:73
-msgid "POSTNET-9 (ZIP+4)"
-msgstr "POSTNET-9 (PSČ+4)"
-
-#: ../src/bc.c:76
-msgid "POSTNET-11 (DPBC)"
-msgstr "POSTNET-11 (DPBC)"
-
-#: ../src/bc.c:79
-msgid "CEPNET"
-msgstr "CEPNET"
-
-#: ../src/bc.c:82
-msgid "EAN (any)"
-msgstr "EAN (jakýkoli)"
-
-#: ../src/bc.c:85
-msgid "EAN-8"
-msgstr "EAN-8"
-
-#: ../src/bc.c:88
-msgid "EAN-8 +2"
-msgstr "EAN-8 +2"
-
-#: ../src/bc.c:91
-msgid "EAN-8 +5"
-msgstr "EAN-8 +5"
-
-#: ../src/bc.c:94
-msgid "EAN-13"
-msgstr "EAN-13"
-
-#: ../src/bc.c:97
-msgid "EAN-13 +2"
-msgstr "EAN-13 +2"
-
-#: ../src/bc.c:100
-msgid "EAN-13 +5"
-msgstr "EAN-13 +5"
+#: ../src/glabels-batch.c:151
+#, c-format
+msgid "cannot perform document merge with glabels file %s\n"
+msgstr "nelze provést slučování dokumentu se souborem aplikace gLabels %s\n"
 
-#: ../src/bc.c:103
-msgid "UPC (UPC-A or UPC-E)"
-msgstr "UPC (UPC-A nebo UPC-E)"
+#: ../src/glabels-batch.c:186
+#, c-format
+msgid "cannot open glabels file %s\n"
+msgstr "nelze otevřít soubor aplikace gLabels %s\n"
 
-#: ../src/bc.c:106
-msgid "UPC-A"
-msgstr "UPC-A"
+#: ../src/glabels.c:79
+msgid "Launch gLabels label and business card designer."
+msgstr "Spustit aplikaci pro návrh etiket a vizitek gLabels."
 
-#: ../src/bc.c:109
-msgid "UPC-A +2"
-msgstr "UPC-A +2"
+#: ../src/label-barcode.c:183 ../src/ui.c:317
+msgid "Create barcode object"
+msgstr "Vytvořit objekt s čárovým kódem"
 
-#: ../src/bc.c:112
-msgid "UPC-A +5"
-msgstr "UPC-A +5"
+#: ../src/label-barcode.c:259 ../src/label-barcode.c:461
+msgid "Barcode data"
+msgstr "Data pro čárový kód"
 
-#: ../src/bc.c:115
-msgid "UPC-E"
-msgstr "UPC-E"
+#: ../src/label-barcode.c:290
+msgid "Barcode property"
+msgstr "Vlastnosti čárového kódu"
 
-#: ../src/bc.c:118
-msgid "UPC-E +2"
-msgstr "UPC-E +2"
+#: ../src/label-barcode.c:684
+msgid "Barcode data empty"
+msgstr "Data pro čárový kód jsou prázdná"
 
-#: ../src/bc.c:121
-msgid "UPC-E +5"
-msgstr "UPC-E +5"
+#: ../src/label-barcode.c:688
+msgid "Invalid barcode data"
+msgstr "Data pro čárový kód jsou neplatná"
 
-#: ../src/bc.c:124
-msgid "ISBN"
-msgstr "ISBN"
+#: ../src/label-box.c:156
+msgid "Create box object"
+msgstr "Vytvořit obdelník"
 
-#: ../src/bc.c:127
-msgid "ISBN +5"
-msgstr "ISBN +5"
+#: ../src/label-box.c:230 ../src/label-ellipse.c:232
+#: ../data/ui/property-bar.ui.h:3
+msgid "Fill color"
+msgstr "Barva výplně"
 
-#: ../src/bc.c:130
-msgid "Code 39"
-msgstr "Code 39"
+#: ../src/label-box.c:261 ../src/label-ellipse.c:261 ../src/label-line.c:212
+#: ../data/ui/property-bar.ui.h:8
+msgid "Line color"
+msgstr "Barva obrysu"
 
-#: ../src/bc.c:133
-msgid "Code 128"
-msgstr "Code 128"
+#: ../src/label-box.c:289 ../src/label-ellipse.c:290 ../src/label-line.c:241
+#: ../data/ui/property-bar.ui.h:9
+msgid "Line width"
+msgstr "Tloušťka obrysu"
 
-#: ../src/bc.c:136
-msgid "Code 128C"
-msgstr "Code 128C"
+#: ../src/label.c:405
+msgid "Untitled"
+msgstr "Nepojmenovaný"
 
-#: ../src/bc.c:139
-msgid "Code 128B"
-msgstr "Code 128B"
+#: ../src/label.c:719 ../src/ui.c:420
+msgid "Merge properties"
+msgstr "Vlastnosti slučování"
 
-#: ../src/bc.c:142
-msgid "Interleaved 2 of 5"
-msgstr "Prokládaný 2 z 5"
+#: ../src/label.c:1215 ../src/ui.c:213
+msgid "Delete"
+msgstr "Smazat"
 
-#: ../src/bc.c:145
-msgid "Codabar"
-msgstr "Codabar"
+#: ../src/label.c:1248 ../src/ui.c:322
+msgid "Bring to front"
+msgstr "Přenést dopředu"
 
-#: ../src/bc.c:148
-msgid "MSI"
-msgstr "MSI"
+#: ../src/label.c:1284 ../src/ui.c:329
+msgid "Send to back"
+msgstr "Odsunout dozadu"
 
-#: ../src/bc.c:151
-msgid "Plessey"
-msgstr "Plessey"
+#: ../src/label.c:1325
+msgid "Rotate"
+msgstr "Otočit"
 
-#: ../src/bc.c:154
-msgid "IEC16022 (DataMatrix)"
-msgstr "IEC16022 (DataMatrix)"
+#: ../src/label.c:1360 ../src/ui.c:336
+msgid "Rotate left"
+msgstr "Otočit doleva"
 
-#: ../src/label.c:531
-msgid "Untitled"
-msgstr "Nepojmenovaný"
+#: ../src/label.c:1393 ../src/ui.c:343
+msgid "Rotate right"
+msgstr "Otočit doprava"
 
-#: ../src/label-barcode.c:426
-msgid "Barcode data empty"
-msgstr "Data pro čárový kód jsou prázdná"
+#: ../src/label.c:1428 ../src/ui.c:350
+msgid "Flip horizontally"
+msgstr "Překlopit vodorovně"
 
-#: ../src/label-barcode.c:430
-msgid "Invalid barcode data"
-msgstr "Data pro čárový kód jsou neplatná"
+#: ../src/label.c:1463 ../src/ui.c:357
+msgid "Flip vertically"
+msgstr "Překlopit svisle"
 
-#: ../src/xml-label.c:193
-msgid "xmlParseFile error"
-msgstr "chyba xmlParseFile"
+#: ../src/label.c:1503 ../src/ui.c:364
+msgid "Align left"
+msgstr "Zarovnat doleva"
 
-#: ../src/xml-label.c:234
-msgid "xmlParseDoc error"
-msgstr "chyba xmlParseDoc"
+#: ../src/label.c:1560 ../src/ui.c:378
+msgid "Align right"
+msgstr "Zarovnat doprava"
 
-#: ../src/xml-label.c:270
-msgid "No document root"
-msgstr "Schází kořen dokumentu"
+#: ../src/label.c:1621
+msgid "Align horizontal center"
+msgstr "Zarovnat vodorovně na střed"
 
-#: ../src/xml-label.c:278
-msgid "Importing from glabels 0.1 format"
-msgstr "Importuje se z formátu glabels verze 0.1"
+#: ../src/label.c:1697
+msgid "Align tops"
+msgstr "Zarovnat nahoru"
 
-#: ../src/xml-label.c:287
-msgid "Importing from glabels 0.4 format"
-msgstr "Importuje se z formátu glabels verze 0.4"
+#: ../src/label.c:1754
+msgid "Align bottoms"
+msgstr "Zarovnat dolů"
 
-#: ../src/xml-label.c:296
-#, c-format
-msgid "Unknown glabels Namespace -- Using %s"
-msgstr "Neznámý jmenný prostor pro gLabels -- použije se %s"
+#: ../src/label.c:1815
+msgid "Align vertical center"
+msgstr "Zarovnat svisle na střed"
 
-#: ../src/xml-label.c:327 ../src/xml-label-04.c:79
-#, c-format
-msgid "Bad root node = \"%s\""
-msgstr "Neplatný kořenový uzel = „%s“"
+#: ../src/label.c:1893 ../src/ui.c:406
+msgid "Center horizontally"
+msgstr "Vystředit vodorovně"
 
-#: ../src/xml-label.c:364
-#, c-format
-msgid "bad node in Document node =  \"%s\""
-msgstr "neplatný uzel v uzlu Document = „%s“"
+#: ../src/label.c:1940 ../src/ui.c:413
+msgid "Center vertically"
+msgstr "Vystředit  svisle"
 
-#: ../src/xml-label.c:409 ../src/xml-label-04.c:127
-#, c-format
-msgid "bad node =  \"%s\""
-msgstr "neplatný uzel = „%s“"
+#: ../src/label.c:2628 ../src/label.c:2670 ../src/label.c:2696 ../src/ui.c:206
+msgid "Paste"
+msgstr "Vložit"
 
-#: ../src/xml-label.c:851
-#, c-format
-msgid "bad node in Data node =  \"%s\""
-msgstr "neplatný uzel v uzlu Data = „%s“"
+#: ../src/label-ellipse.c:160
+msgid "Create ellipse object"
+msgstr "Vytvořit elipsu"
 
-#: ../src/xml-label.c:1088 ../libglabels/xml-template.c:682
-msgid "Utf8 conversion error."
-msgstr "Chyba při převodu UTF-8"
+#: ../src/label-image.c:200 ../src/ui.c:310
+msgid "Create image object"
+msgstr "Vytvořit objekt s obrázkem"
 
-#: ../src/xml-label.c:1095
-msgid "Problem saving xml file."
-msgstr "Problém při ukládání do souboru xml."
+#: ../src/label-image.c:333 ../src/label-image.c:474
+msgid "Set image"
+msgstr "Nastavit obrázek"
 
-#: ../src/merge.c:170 ../src/merge.c:211 ../src/merge.c:375 ../src/merge.c:378
-msgid "None"
-msgstr "Žádný"
+#: ../src/label-line.c:147 ../src/ui.c:296
+msgid "Create line object"
+msgstr "Vytvořit čáru"
 
-#: ../src/merge-init.c:59
-msgid "Text file with comma delimeters (CSV)"
-msgstr "Textový soubor se sloupci oddělenými čárkami (CSV)"
+#: ../src/label-object.c:394 ../src/label-object.c:428
+msgid "Move"
+msgstr "Přesunout"
 
-#: ../src/merge-init.c:66
-msgid "Text file with colon delimeters"
-msgstr "Textový soubor se sloupci oddělenými dvojtečkami"
+#: ../src/label-object.c:479
+msgid "Resize"
+msgstr "Změnit velikost"
 
-#: ../src/merge-init.c:73
-msgid "Text file with tab delimeters"
-msgstr "Textový soubor se sloupci oddělenými tabulátory"
+#: ../src/label-object.c:1217
+msgid "Shadow state"
+msgstr "Stav stínu"
 
-#: ../src/merge-init.c:82
-msgid "Data from default Evolution Addressbook"
-msgstr "Data z výchozího adresáře Evolution"
+#: ../src/label-object.c:1260
+msgid "Shadow offset"
+msgstr "Posun stínu"
 
-#: ../src/merge-init.c:88
-msgid "Data from a file containing VCards"
-msgstr "Data ze souboru obsahujícího kontakty ve formátu VCards"
+#: ../src/label-object.c:1308
+msgid "Shadow color"
+msgstr "Barva stínu"
 
-#: ../src/merge-evolution.c:309
-msgid "Couldn't construct query"
-msgstr "Nelze sestavit dotaz"
+#: ../src/label-object.c:1351
+msgid "Shadow opacity"
+msgstr "Krytí stínu"
 
-#: ../src/merge-evolution.c:315 ../src/merge-evolution.c:326
-msgid "Couldn't open addressbook."
-msgstr "Nelze otevřít adresář."
+#: ../src/label-text.c:281 ../src/ui.c:282
+msgid "Create text object"
+msgstr "Vytvořit textový objekt"
 
-#: ../src/merge-evolution.c:341
-msgid "Couldn't list available fields."
-msgstr "Nelze vytvořit seznam dostupných polí."
+#: ../src/label-text.c:453
+msgid "Typing"
+msgstr "Psaní"
 
-#: ../src/merge-evolution.c:377
-msgid "Couldn't get contacts."
-msgstr "Nelze získat kontakt."
+#: ../src/label-text.c:586 ../data/ui/property-bar.ui.h:4
+msgid "Font family"
+msgstr "Rodina písma"
 
-#: ../src/wdgt-print-copies.c:153
-msgid "Sheets:"
-msgstr "Stránky:"
+#: ../src/label-text.c:624 ../data/ui/property-bar.ui.h:5
+msgid "Font size"
+msgstr "Velikost písma"
 
-#: ../src/wdgt-print-copies.c:173
-msgid "from:"
-msgstr "od:"
+#: ../src/label-text.c:657
+msgid "Font weight"
+msgstr "Tloušťka písma"
 
-#: ../src/wdgt-print-copies.c:178
-msgid "to:"
-msgstr "do:"
+#: ../src/label-text.c:690 ../data/ui/property-bar.ui.h:6
+msgid "Italic"
+msgstr "Kurzíva"
 
-#: ../src/wdgt-print-merge.c:154
-msgid "Start on label"
-msgstr "Začít na etiketě"
+#: ../src/label-text.c:723
+msgid "Align text"
+msgstr "Zarovnat text"
 
-#: ../src/wdgt-print-merge.c:159
-msgid "on 1st sheet"
-msgstr "na první stránce"
+#: ../src/label-text.c:756
+msgid "Line spacing"
+msgstr "Řádkování"
 
-#: ../src/wdgt-print-merge.c:168
-msgid "Copies:"
-msgstr "Kopie:"
+#: ../src/label-text.c:789 ../data/ui/property-bar.ui.h:11
+msgid "Text color"
+msgstr "Barva textu"
 
-#: ../src/wdgt-print-merge.c:173
-msgid "Collate"
-msgstr "Seřadit"
+#: ../src/label-text.c:933
+msgid "Auto shrink"
+msgstr "Automatické zúžení"
 
-#: ../src/wdgt-media-select.c:288 ../src/wdgt-media-select.c:292
-#: ../src/wdgt-media-select.c:297 ../src/wdgt-media-select.c:306
-#: ../src/wdgt-media-select.c:309 ../src/wdgt-media-select.c:402
-#: ../src/wdgt-media-select.c:609 ../src/wdgt-media-select.c:618
+#: ../src/media-select.c:358 ../src/media-select.c:361
+#: ../src/media-select.c:506 ../src/media-select.c:723
+msgctxt "Brand"
 msgid "Any"
 msgstr "Libovolná"
 
-#: ../src/wdgt-media-select.c:643
-#, c-format
-msgid "%d per sheet"
-msgstr "%d na stránku"
-
-#: ../src/wdgt-media-select.c:673
-#, c-format
-msgid "%s x %s %s"
-msgstr "%s × %s %s"
+#: ../src/media-select.c:365 ../src/media-select.c:893
+msgctxt "Page size"
+msgid "Any"
+msgstr "Libovolná"
 
-#: ../src/wdgt-media-select.c:678
-#, c-format
-msgid "%.5g x %.5g %s"
-msgstr "%.5g × %.5g %s"
+#: ../src/media-select.c:372 ../src/media-select.c:375
+#: ../src/media-select.c:902
+msgctxt "Category"
+msgid "Any"
+msgstr "Libovolná"
 
-#: ../src/wdgt-media-select.c:689 ../src/wdgt-media-select.c:703
+#: ../src/media-select.c:648
 #, c-format
-msgid "%s %s diameter"
-msgstr "průměr %s %s"
+msgid "Delete template \"%s\"?"
+msgstr "Smazat šablonu „%s“?"
 
-#: ../src/wdgt-media-select.c:693 ../src/wdgt-media-select.c:707
-#, c-format
-msgid "%.5g %s diameter"
-msgstr "průměr %.5g %s"
+#: ../src/media-select.c:650
+msgid "This action will permanently delete this template."
+msgstr "Tato akce trvale vymaže tuto šablonu."
 
-#: ../src/wdgt-media-select.c:781
+#: ../src/media-select.c:990
 msgid "No recent templates found."
 msgstr "Nenalezeny žádné nedávno použité šablony."
 
-#: ../src/wdgt-media-select.c:782
-msgid "Try selecting a template from the \"Search all templates\" page."
-msgstr "Zkuste vybrat šablonu na kartě „Vyhledat ve všech šablonách“."
+#: ../src/media-select.c:992
+msgid "Try selecting a template in the \"Search all\" tab."
+msgstr "Zkuste vybrat šablonu na kartě „Prohledat všechny“."
 
-#: ../src/wdgt-media-select.c:861
+#. Translators: "No match" means that for the given template search criteria, there
+#. * were no matches found.
+#: ../src/media-select.c:1083
 msgid "No match."
 msgstr "Žádná neodpovídá."
 
-#: ../src/wdgt-media-select.c:862
+#: ../src/media-select.c:1085
 msgid "Try selecting a different brand, page size or category."
 msgstr "Zkuste vybrat jinou značku, velikost stránky nebo kategorii."
 
-#. This is the default custom color
-#: ../src/mygal/color-palette.c:389
-msgid "custom"
-msgstr "vlastní"
+#: ../src/media-select.c:1179
+msgid "No custom templates found."
+msgstr "Nenalezena žádná vlastní šablona."
 
-#. "Custom" color - we'll pop up a GtkColorButton
-#: ../src/mygal/color-palette.c:431
-msgid "Custom Color:"
-msgstr "Vlastní barva"
+#: ../src/media-select.c:1181
+msgid ""
+"You may create new templates or try searching for pre-defined templates in "
+"the \"Search all\" tab."
+msgstr ""
+"Můžete vytvořit nové šablony nebo zkusit vhodnou vyhledat v předdefinovaných "
+"šablonách na kartě „Prohledat vše“."
 
-#: ../src/mygal/color-palette.c:439
-msgid "Choose Custom Color"
-msgstr "Vyberte vlastní barvu"
+#. Translators: "None" here means that no document-merge source or
+#. * method has been selected.
+#: ../src/merge.c:171 ../src/merge.c:212 ../src/merge.c:376 ../src/merge.c:379
+msgid "None"
+msgstr "Žádný"
 
-#: ../src/mygal/color-palette.c:572
-msgid "black"
-msgstr "černá"
+#: ../src/merge-init.c:57
+msgid "Text: Comma Separated Values (CSV)"
+msgstr "Text: Čárkou oddělené hodnoty (CSV)"
 
-#: ../src/mygal/color-palette.c:573
-msgid "light brown"
-msgstr "světle hnědá"
+#: ../src/merge-init.c:64
+msgid "Text: Comma Separated Values (CSV) with keys on line 1"
+msgstr "Text: Čárkou oddělené hodnoty (CSV) s klíči na 1. řádku"
 
-#: ../src/mygal/color-palette.c:574
-msgid "brown gold"
-msgstr "zlatohnědá"
+#: ../src/merge-init.c:72
+msgid "Text: Tab Separated Values (TSV)"
+msgstr "Text: Tabulátorem oddělené hodnoty (TSV)"
 
-#: ../src/mygal/color-palette.c:575
-msgid "dark green #2"
-msgstr "tmavě zelená č. 2"
+#: ../src/merge-init.c:79
+msgid "Text: Tab Separated Values (TSV) with keys on line 1"
+msgstr "Text: Tabulátorem oddělené hodnoty (TSV) s klíčem na 1. řádku"
 
-#: ../src/mygal/color-palette.c:576
-msgid "navy"
-msgstr "námořnická modř"
+#: ../src/merge-init.c:87
+msgid "Text: Colon separated values"
+msgstr "Text: Dvojtečkou oddělené hodnoty"
 
-#: ../src/mygal/color-palette.c:577 ../src/mygal/color-palette.c:633
-msgid "dark blue"
-msgstr "tmavě modrá"
+#: ../src/merge-init.c:94
+msgid "Text: Colon separated values with keys on line 1"
+msgstr "Text: Dvojtečkou oddělené hodnoty s klíči na 1. řádku"
 
-#: ../src/mygal/color-palette.c:578
-msgid "purple #2"
-msgstr "purpurová č. 2"
+#: ../src/merge-init.c:102
+msgid "Text: Semicolon separated values"
+msgstr "Text: Středníkem oddělené hodnoty"
 
-#: ../src/mygal/color-palette.c:579
-msgid "very dark gray"
-msgstr "velmi tmavě šedá"
+#: ../src/merge-init.c:109
+msgid "Text: Semicolon separated values with keys on line 1"
+msgstr "Text: Středníkem oddělené hodnoty s klíči na 1. řádku"
 
-#: ../src/mygal/color-palette.c:582 ../src/mygal/color-palette.c:638
-msgid "dark red"
-msgstr "tmavě červená"
+#: ../src/merge-init.c:119
+msgid "Evolution Addressbook"
+msgstr "Adresář aplikace Evolution"
 
-#: ../src/mygal/color-palette.c:583
-msgid "red-orange"
-msgstr "červenooranžová"
+#: ../src/merge-init.c:125
+msgid "VCards"
+msgstr "Vizitky VCard"
 
-#: ../src/mygal/color-palette.c:584
-msgid "gold"
-msgstr "zlatá"
+#: ../src/merge-properties-dialog.c:280
+msgid "Merge Properties"
+msgstr "Vlastnosti slučování"
 
-#: ../src/mygal/color-palette.c:585
-msgid "dark green"
-msgstr "tmavě zelená"
+#: ../src/merge-properties-dialog.c:304 ../src/merge-properties-dialog.c:420
+msgid "Select merge-database source"
+msgstr "Výběr databázového zdroje pro slučování"
 
-#: ../src/mygal/color-palette.c:586 ../src/mygal/color-palette.c:639
-msgid "dull blue"
-msgstr "matná modrá"
+#: ../src/merge-properties-dialog.c:315 ../src/merge-properties-dialog.c:446
+msgid "N/A"
+msgstr "Neurčeno"
 
-#: ../src/mygal/color-palette.c:587 ../src/mygal/color-palette.c:640
-msgid "blue"
-msgstr "modrá"
+#: ../src/merge-properties-dialog.c:341
+msgid "Select"
+msgstr "Výběr"
 
-#: ../src/mygal/color-palette.c:588
-msgid "dull purple"
-msgstr "matná purpurová"
+#: ../src/merge-properties-dialog.c:348
+msgid "Record/Field"
+msgstr "Záznam/Pole"
 
-#: ../src/mygal/color-palette.c:589
-msgid "dark grey"
-msgstr "tmavě šedá"
+#: ../src/merge-properties-dialog.c:356 ../data/ui/object-editor.ui.h:10
+msgid "Data"
+msgstr "Data"
 
-#: ../src/mygal/color-palette.c:592
-msgid "red"
-msgstr "červená"
+#. Translators: "Fixed" here means that for the given document-merge method, there are
+#. * no further choices to further define the source of data.  E.g. if you select the
+#. * evolution-data-server, there are no further choices -- the source is "Fixed."
+#.
+#: ../src/merge-properties-dialog.c:439
+msgid "Fixed"
+msgstr "Napevno"
 
-#: ../src/mygal/color-palette.c:593
-msgid "orange"
-msgstr "oranžová"
+#. Translators: "Up" refers to the direction towards the top of a label.
+#: ../src/mini-preview.c:1054
+msgid "Up"
+msgstr "Nahoru"
 
-#: ../src/mygal/color-palette.c:594
-msgid "lime"
-msgstr "citrónová"
+#: ../src/new-label-dialog.c:203
+msgid "Select Product"
+msgstr "Výběr produktu"
 
-#: ../src/mygal/color-palette.c:595
-msgid "dull green"
-msgstr "matná zelená"
+#: ../src/new-label-dialog.c:215
+msgid "Choose Orientation"
+msgstr "Volba otočení"
 
-#: ../src/mygal/color-palette.c:596
-msgid "dull blue #2"
-msgstr "matná modrá č. 2"
+#: ../src/new-label-dialog.c:229
+msgid "Review"
+msgstr "Kontrola"
 
-#: ../src/mygal/color-palette.c:597
-msgid "sky blue #2"
-msgstr "nebeská modř č. 2"
+#: ../src/object-editor-bc-page.c:97 ../src/object-editor-shadow-page.c:93
+#: ../src/object-editor-text-page.c:97 ../src/prefs-dialog.c:335
+#: ../src/ui-property-bar.c:277
+msgid "Default"
+msgstr "Výchozí"
 
-#: ../src/mygal/color-palette.c:598 ../src/mygal/color-palette.c:637
-msgid "purple"
-msgstr "purpurová"
+#: ../src/object-editor.c:161 ../src/object-editor.c:470
+msgid "Object properties"
+msgstr "Vlastnosti objektu"
 
-#: ../src/mygal/color-palette.c:599
-msgid "gray"
-msgstr "šedá"
+#: ../src/object-editor.c:314
+msgid "Box object properties"
+msgstr "Vlastnosti obdélníku"
 
-#: ../src/mygal/color-palette.c:602 ../src/mygal/color-palette.c:634
-msgid "magenta"
-msgstr "fialová"
+#: ../src/object-editor.c:333
+msgid "Ellipse object properties"
+msgstr "Vlastnosti elipsy"
 
-#: ../src/mygal/color-palette.c:603
-msgid "bright orange"
-msgstr "jasně oranžová"
+#: ../src/object-editor.c:352
+msgid "Line object properties"
+msgstr "Vlastnosti čáry"
 
-#: ../src/mygal/color-palette.c:604 ../src/mygal/color-palette.c:635
-msgid "yellow"
-msgstr "žludá"
+#: ../src/object-editor.c:369
+msgid "Image object properties"
+msgstr "Vlastnosti obrázku"
 
-#: ../src/mygal/color-palette.c:605
-msgid "green"
-msgstr "zelená"
+#: ../src/object-editor.c:386
+msgid "Text object properties"
+msgstr "Vlastnosti textu"
 
-#: ../src/mygal/color-palette.c:606 ../src/mygal/color-palette.c:636
-msgid "cyan"
-msgstr "azurová"
+#: ../src/object-editor.c:408
+msgid "Barcode object properties"
+msgstr "Vlastnosti čárového kódu"
 
-#: ../src/mygal/color-palette.c:607
-msgid "bright blue"
-msgstr "jasně modrá"
+#: ../src/object-editor-edit-page.c:76
+msgid "Insert merge field"
+msgstr "Vložit pole pro slučování"
 
-#: ../src/mygal/color-palette.c:608 ../src/mygal/color-palette.c:625
-msgid "red purple"
-msgstr "červenofialová"
+#: ../src/object-editor-fill-page.c:79 ../src/prefs-dialog.c:341
+#: ../src/ui-property-bar.c:287
+msgid "No Fill"
+msgstr "Bez výplně"
+
+#: ../src/object-editor-image-page.c:302
+msgid "All Files"
+msgstr "Všechny soubory"
+
+#: ../src/object-editor-image-page.c:307
+msgid "All Images"
+msgstr "Všechny obrázky"
+
+#: ../src/object-editor-image-page.c:323
+#, c-format
+msgid "%s (*.%s)"
+msgstr "%s (*.%s)"
+
+#: ../src/object-editor-line-page.c:79 ../src/prefs-dialog.c:338
+#: ../src/ui-property-bar.c:297
+msgid "No Line"
+msgstr "Bez obrysu"
+
+#: ../src/object-editor-size-page.c:89
+msgid "Lock aspect ratio."
+msgstr "Uzamknout poměr stran."
+
+#: ../src/prefs-dialog.c:168 ../data/ui/prefs-dialog.ui.h:21
+msgid "gLabels Preferences"
+msgstr "Předvolby gLabels"
+
+#. TODO: Is this the actual part #?
+#: ../src/print-op.c:205 ../src/print-op-dialog.c:215
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:4
+#: ../templates/misc-iso-templates.xml.h:24
+msgid "Labels"
+msgstr "Etikety"
+
+#: ../src/template-designer.c:429
+msgid "New gLabels Template"
+msgstr "Nová šablona gLabels"
+
+#: ../src/template-designer.c:487
+msgid "Welcome"
+msgstr "Vítejte"
+
+#: ../src/template-designer.c:526
+msgid "Name and Description"
+msgstr "Název a popis"
+
+#: ../src/template-designer.c:575
+msgid "Page Size"
+msgstr "Velikost stránky"
+
+#: ../src/template-designer.c:642
+msgid "Label or Card Shape"
+msgstr "Tvar etikety či vizitky"
+
+#: ../src/template-designer.c:689 ../src/template-designer.c:790
+msgid "Label or Card Size"
+msgstr "Velikost etikety či vizitky"
+
+#: ../src/template-designer.c:873
+msgid "Label Size (round)"
+msgstr "Velikost etikety (kulatá)"
+
+#: ../src/template-designer.c:954
+msgid "Label Size (CD/DVD)"
+msgstr "Velikost etikety (CD/DVD)"
+
+#: ../src/template-designer.c:1045
+msgid "Number of Layouts"
+msgstr "Počet rozvržení"
+
+#: ../src/template-designer.c:1113
+msgid "Layout(s)"
+msgstr "Rozvržení"
+
+#: ../src/template-designer.c:1218
+msgid "Design Completed"
+msgstr "Návrh byl dokončen"
+
+#: ../src/template-designer.c:1246
+msgid "Edit gLabels Template"
+msgstr "Upravit šablonu gLabels"
+
+#: ../src/template-designer.c:1549
+msgid "Brand and part# match an existing template!"
+msgstr "Značka a produktové číslo odpovídají již existující šabloně!"
+
+#. Menu entries.
+#: ../src/ui.c:91
+msgid "_File"
+msgstr "_Soubor"
+
+#: ../src/ui.c:92
+msgid "Open Recent _Files"
+msgstr "Otevřít nedávné _soubory"
+
+#: ../src/ui.c:93
+msgid "_Edit"
+msgstr "_Upravit"
+
+#: ../src/ui.c:94
+msgid "_View"
+msgstr "_Zobrazit"
 
-#: ../src/mygal/color-palette.c:609
-msgid "light grey"
-msgstr "světle šedá"
+#: ../src/ui.c:95
+msgid "Customize Main Toolbar"
+msgstr "Přizpůsobit hlavní panel"
 
-#: ../src/mygal/color-palette.c:612 ../src/mygal/color-palette.c:629
-msgid "pink"
-msgstr "růžová"
+#: ../src/ui.c:96
+msgid "Customize Drawing Toolbar"
+msgstr "Přizpůsobit panel kreslení"
 
-#: ../src/mygal/color-palette.c:613
-msgid "light orange"
-msgstr "světle oranžová"
+#: ../src/ui.c:97
+msgid "Customize Properties Toolbar"
+msgstr "Přizpůsobit panel vlastností"
 
-#: ../src/mygal/color-palette.c:614 ../src/mygal/color-palette.c:626
-msgid "light yellow"
-msgstr "světle žlutá"
+#: ../src/ui.c:98
+msgid "_Objects"
+msgstr "_Objekty"
 
-#: ../src/mygal/color-palette.c:615
-msgid "light green"
-msgstr "světle zelená"
+#: ../src/ui.c:99
+msgid "_Create"
+msgstr "_Vytvořit"
 
-#: ../src/mygal/color-palette.c:616
-msgid "light cyan"
-msgstr "světle azurová"
+#: ../src/ui.c:100
+msgid "_Order"
+msgstr "_Pořadí"
 
-#: ../src/mygal/color-palette.c:617 ../src/mygal/color-palette.c:627
-msgid "light blue"
-msgstr "světle modrá"
+#: ../src/ui.c:101
+msgid "_Rotate/Flip"
+msgstr "_Otočit/Překlopit"
 
-#: ../src/mygal/color-palette.c:618 ../src/mygal/color-palette.c:631
-msgid "light purple"
-msgstr "světle purpurová"
+#: ../src/ui.c:102
+#| msgid "Alignment:"
+msgid "_Alignment"
+msgstr "Z_arovnání"
 
-#: ../src/mygal/color-palette.c:619
-msgid "white"
-msgstr "bílá"
+#: ../src/ui.c:103
+#| msgid "Centers"
+msgid "C_enter"
+msgstr "Na stř_ed"
 
-#: ../src/mygal/color-palette.c:624
-msgid "purplish blue"
-msgstr "fialovomodrá"
+#: ../src/ui.c:104
+msgid "_Help"
+msgstr "_Nápověda"
 
-#: ../src/mygal/color-palette.c:628
-msgid "dark purple"
-msgstr "tmavě purpurová"
+#. Popup entries.
+#: ../src/ui.c:107 ../src/ui.c:108
+msgid "Context Menu"
+msgstr "Kontextová nabídka"
 
-#: ../src/mygal/color-palette.c:630
-msgid "sky blue"
-msgstr "nebeská modř"
+#: ../src/ui.c:113
+msgid "_New"
+msgstr "_Nový"
+
+#: ../src/ui.c:115
+msgid "Create a new file"
+msgstr "Vytvořit nový soubor"
+
+#: ../src/ui.c:120
+msgid "_Open..."
+msgstr "_Otevřít…"
+
+#: ../src/ui.c:122
+msgid "Open a file"
+msgstr "Otevřít soubor"
+
+#: ../src/ui.c:127
+msgid "_Save"
+msgstr "_Uložit"
+
+#: ../src/ui.c:129
+msgid "Save current file"
+msgstr "Uložit současný soubor"
+
+#: ../src/ui.c:134
+msgid "Save _As..."
+msgstr "Uložit _jako…"
+
+#: ../src/ui.c:136
+msgid "Save the current file to a different name"
+msgstr "Uložit současný soubor s jiným názvem"
+
+#: ../src/ui.c:141
+msgid "_Print..."
+msgstr "_Tisk…"
+
+#: ../src/ui.c:143
+msgid "Print the current file"
+msgstr "Vytisknout současný soubor"
+
+#: ../src/ui.c:148
+msgid "Properties..."
+msgstr "Vlastnosti…"
+
+#: ../src/ui.c:150
+msgid "Modify document properties"
+msgstr "Upravit vlastnosti dokumentu"
+
+#: ../src/ui.c:155
+msgid "Template _Designer..."
+msgstr "Návrhář š_ablon…"
+
+#: ../src/ui.c:157
+msgid "Create a custom template"
+msgstr "Vytvořit vlastní šablonu"
+
+#: ../src/ui.c:162
+msgid "_Close"
+msgstr "_Zavřít"
+
+#: ../src/ui.c:164
+msgid "Close the current file"
+msgstr "Zavřít současný soubor"
+
+#: ../src/ui.c:169
+msgid "_Quit"
+msgstr "U_končit"
+
+#: ../src/ui.c:171
+msgid "Quit the program"
+msgstr "Ukončit aplikaci"
+
+#: ../src/ui.c:178 ../src/ui.c:180 ../src/ui.c:976
+msgid "Undo"
+msgstr "Zpět"
+
+#: ../src/ui.c:185 ../src/ui.c:187 ../src/ui.c:983
+msgid "Redo"
+msgstr "Znovu"
+
+#: ../src/ui.c:192
+msgid "Cut"
+msgstr "Vyjmout"
+
+#: ../src/ui.c:194
+msgid "Cut the selection"
+msgstr "Vyjmout výběr"
+
+#: ../src/ui.c:199
+msgid "Copy"
+msgstr "Kopírovat"
+
+#: ../src/ui.c:201
+msgid "Copy the selection"
+msgstr "Kopírovat výběr"
+
+#: ../src/ui.c:208
+msgid "Paste the clipboard"
+msgstr "Vložit ze schránky"
+
+#: ../src/ui.c:215
+msgid "Delete the selected objects"
+msgstr "Smazat vybrané objekty"
+
+#: ../src/ui.c:220
+msgid "Select All"
+msgstr "Vybrat vše"
+
+#: ../src/ui.c:222
+msgid "Select all objects"
+msgstr "Vybrat všechny objekty"
+
+#: ../src/ui.c:227
+msgid "Un-select All"
+msgstr "Zrušit výběr"
+
+#: ../src/ui.c:229
+msgid "Remove all selections"
+msgstr "Zrušit výběr všecho"
+
+#: ../src/ui.c:234
+msgid "Preferences"
+msgstr "Předvolby"
+
+#: ../src/ui.c:236
+msgid "Configure the application"
+msgstr "Nastavit aplikaci"
+
+#: ../src/ui.c:243
+msgid "Zoom in"
+msgstr "Přiblížit"
+
+#: ../src/ui.c:245
+msgid "Increase magnification"
+msgstr "Zvětšit přiblížení"
+
+#: ../src/ui.c:250
+msgid "Zoom out"
+msgstr "Oddálit"
+
+#: ../src/ui.c:252
+msgid "Decrease magnification"
+msgstr "Zmenšit přiblížení"
+
+#: ../src/ui.c:257
+msgid "Zoom 1 to 1"
+msgstr "Přiblížení 1:1"
+
+#: ../src/ui.c:259
+msgid "Restore scale to 100%"
+msgstr "Obnovit měřítko na 100%"
+
+#: ../src/ui.c:264
+msgid "Zoom to fit"
+msgstr "Přizpůsobit velikosti"
+
+#: ../src/ui.c:266
+msgid "Set scale to fit window"
+msgstr "Přizpůsobit měřítko velikosti okna"
+
+#: ../src/ui.c:273
+msgid "Select Mode"
+msgstr "Režim výběru"
+
+#: ../src/ui.c:275
+msgid "Select, move and modify objects"
+msgstr "Výběr, přesun a úpravy objektů"
+
+#: ../src/ui.c:280 ../src/view-text.c:94 ../data/ui/object-editor.ui.h:30
+#: ../data/ui/prefs-dialog.ui.h:17
+msgid "Text"
+msgstr "Text"
+
+#: ../src/ui.c:287
+msgid "Box"
+msgstr "Obdélník"
+
+#: ../src/ui.c:289
+msgid "Create box/rectangle object"
+msgstr "Vytvořit čtverec/obdélník"
+
+#: ../src/ui.c:294 ../data/ui/object-editor.ui.h:19
+#: ../data/ui/prefs-dialog.ui.h:9
+msgid "Line"
+msgstr "Čára"
+
+#: ../src/ui.c:301
+msgid "Ellipse"
+msgstr "Elipsa"
+
+#: ../src/ui.c:303
+msgid "Create ellipse/circle object"
+msgstr "Vytvořit elipsu/kruh"
+
+#: ../src/ui.c:308 ../data/ui/object-editor.ui.h:16
+msgid "Image"
+msgstr "Obrázek"
+
+#: ../src/ui.c:315
+msgid "Barcode"
+msgstr "Čárový kód"
+
+#: ../src/ui.c:324
+msgid "Raise object to top"
+msgstr "Vyzvednout objekt nahoru"
+
+#: ../src/ui.c:331
+msgid "Lower object to bottom"
+msgstr "Poslat objekt dozadu"
+
+#: ../src/ui.c:338
+msgid "Rotate object 90 degrees counter-clockwise"
+msgstr "Otočit objekt o 90° proti směru hodinových ručiček"
+
+#: ../src/ui.c:345
+msgid "Rotate object 90 degrees clockwise"
+msgstr "Otočit objekt o 90° po směru hodinových ručiček"
+
+#: ../src/ui.c:352
+msgid "Flip object horizontally"
+msgstr "Překlopit objekt vodorovně"
+
+#: ../src/ui.c:359
+msgid "Flip object vertically"
+msgstr "Překlopit objekt svisle"
+
+#: ../src/ui.c:366
+msgid "Align objects to left edges"
+msgstr "Zarovnat objekty levou hranou"
+
+#: ../src/ui.c:371
+#| msgid "Align left"
+msgid "Align center"
+msgstr "Zarovnat na střed"
+
+#: ../src/ui.c:373
+msgid "Align objects to horizontal centers"
+msgstr "Zarovnat objekty vodorovně na střed"
+
+#: ../src/ui.c:380
+msgid "Align objects to right edges"
+msgstr "Zarovnat objekty pravou hranou"
+
+#: ../src/ui.c:385
+#| msgid "Align tops"
+msgid "Align top"
+msgstr "Zarovnat nahoru"
+
+#: ../src/ui.c:387
+msgid "Align objects to top edges"
+msgstr "Zarovnat objekty horní hranou"
+
+#: ../src/ui.c:392
+#| msgid "Align left"
+msgid "Align middle"
+msgstr "Zarovnat doprostřed"
+
+#: ../src/ui.c:394
+msgid "Align objects to vertical centers"
+msgstr "Zarovnat objekty svisle na střed"
+
+#: ../src/ui.c:399
+#| msgid "Align bottoms"
+msgid "Align bottom"
+msgstr "Zarovnat dolů"
+
+#: ../src/ui.c:401
+msgid "Align objects to bottom edges"
+msgstr "Zarovnat objekty dolní hranou"
+
+#: ../src/ui.c:408
+msgid "Center objects to horizontal label center"
+msgstr "Vystředit objekty vodorovně na střed etikety"
+
+#: ../src/ui.c:415
+msgid "Center objects to vertical label center"
+msgstr "Vystředit  objekty svisle na střed etikety"
+
+#: ../src/ui.c:422
+msgid "Edit merge properties"
+msgstr "Upravit vlastnosti slučování"
+
+#: ../src/ui.c:429
+msgid "Contents"
+msgstr "Obsah"
+
+#: ../src/ui.c:431
+msgid "Open glabels manual"
+msgstr "Otevřít příručku gLabels"
+
+#: ../src/ui.c:436
+msgid "About..."
+msgstr "O aplikaci…"
+
+#: ../src/ui.c:438 ../src/ui-commands.c:1198
+msgid "About glabels"
+msgstr "O aplikaci gLabels"
+
+#: ../src/ui.c:448
+msgid "Property toolbar"
+msgstr "Panel vlastností"
+
+#: ../src/ui.c:450
+msgid "Change the visibility of the property toolbar in the current window"
+msgstr "Změnit zobrazení panelu vlastností v současném okně"
+
+#: ../src/ui.c:456
+msgid "Grid"
+msgstr "Mřížka"
+
+#: ../src/ui.c:458
+msgid "Change the visibility of the grid in the current window"
+msgstr "Změnit zobrazení mřížky v současném okně"
+
+#: ../src/ui.c:464
+msgid "Markup"
+msgstr "Ohraničení"
+
+#: ../src/ui.c:466
+msgid "Change the visibility of markup lines in the current window"
+msgstr "Změnit zobrazení hraničních čar v současném okně"
+
+#: ../src/ui.c:477
+msgid "Main toolbar"
+msgstr "Hlavní panel"
+
+#: ../src/ui.c:479
+msgid "Change the visibility of the main toolbar in the current window"
+msgstr "Změnit zobrazení hlavního panelu nástrojů v současném okně"
+
+#: ../src/ui.c:485
+msgid "Drawing toolbar"
+msgstr "Panel nástrojů kreslení"
+
+#: ../src/ui.c:487
+msgid "Change the visibility of the drawing toolbar in the current window"
+msgstr "Změnit zobrazení panelu nástrojů kreslení v současném okně"
+
+#: ../src/ui-commands.c:1135
+msgid "Glabels includes contributions from:"
+msgstr "Aplikace gLabels obsahuje příspěvky od:"
+
+#: ../src/ui-commands.c:1144
+msgid "See the file AUTHORS for additional credits,"
+msgstr "Doplňující informace o zásluhách najdete v souboru AUTHORS,"
+
+#: ../src/ui-commands.c:1145
+msgid "or visit http://glabels.org/"
+msgstr "nebo navštivte http://glabels.org/"
+
+#: ../src/ui-commands.c:1162
+msgid "A label and business card creation program.\n"
+msgstr "Program na vytváření etiket a vizitek.\n"
+
+#: ../src/ui-commands.c:1166
+msgid "translator-credits"
+msgstr ""
+"David Makovský <yakeen@sannyas-on.net>\n"
+"Zbyněk Mrkvička <zbynek@oachot.cz>\n"
+"Marek Černocký <marek@manet.cz>"
 
-#: ../src/critical-error-handler.c:73
-msgid "gLabels Fatal Error!"
-msgstr "Kritická chyba aplikace gLabels!"
+#: ../src/ui-commands.c:1169
+msgid ""
+"gLabels is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"gLabels is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Aplikace gLabels je svobodný software: Můžete jej dále šířit a/nebo\n"
+"upravovat za podmínek licence GNU General Public License v podobě,\n"
+"v jaké ji vydala Free Software Foundation, a to buď ve verzi 3 této\n"
+"licence nebo (dle vaší volby) v libovolné novější verzi.\n"
+"\n"
+"Tento program je šířen ve víře, že bude užitečný, ale BEZ JAKÝCHKOLIV\n"
+"ZÁRUK, a to i bez předpokládané záruky na PRODEJNOST nebo\n"
+"VHODNOST PRO KONKRÉTNÍ ÚČEL. Více podrobností najdete přímo\n"
+"v licenci GNU General Public License.\n"
 
-#: ../src/warning-handler.c:73
+#: ../src/warning-handler.c:69
 msgid "gLabels Error!"
 msgstr "Chyba aplikace gLabels!"
 
+#: ../src/window.c:281
+msgid "(none) - gLabels"
+msgstr "(žádné) - gLabels"
+
+#: ../src/window.c:482
+msgid "(modified)"
+msgstr "(změněno)"
+
 #. Create and append an "Other" entry.
-#: ../libglabels/db.c:118
+#. Translators: "Other" here means other page size.  Meaning a page size
+#. * other than the standard ones that libglabels knows about such as
+#. * "letter", "A4", etc.
+#: ../libglabels/lgl-db.c:267
 msgid "Other"
 msgstr "Jiné"
 
 #. Create and append a "User defined" entry.
-#: ../libglabels/db.c:131
+#: ../libglabels/lgl-db.c:276
 msgid "User defined"
 msgstr "Definované uživatelem"
 
-#: ../libglabels/db.c:482
+#: ../libglabels/lgl-db.c:663
 msgid ""
 "Unable to locate paper size definitions.  Libglabels may not be installed "
 "correctly!"
@@ -1477,7 +1704,7 @@ msgstr ""
 "Nelze najít definice velikostí papíru. Možná není správně nainstalovaná "
 "knihovna libglabels!"
 
-#: ../libglabels/db.c:875
+#: ../libglabels/lgl-db.c:1062
 msgid ""
 "Unable to locate category definitions.  Libglabels may not be installed "
 "correctly!"
@@ -1485,7 +1712,7 @@ msgstr ""
 "Nelze najít definice kategorií. Možná není správně nainstalovaná knihovna "
 "libglabels!"
 
-#: ../libglabels/db.c:1461
+#: ../libglabels/lgl-db.c:1989
 msgid ""
 "Unable to locate any template files.  Libglabels may not be installed "
 "correctly!"
@@ -1493,415 +1720,462 @@ msgstr ""
 "Nelze najít žádný soubor s šablonou. Možná není správně nainstalovaná "
 "knihovna libglabels!"
 
-#: ../libglabels/db.c:1538
+#: ../libglabels/lgl-db.c:2056
 #, c-format
-msgid "Generic %s full page template"
-msgstr "Obecná šablona na celou stranu %s"
-
-#: ../libglabels/xml-template.c:227
-msgid "Missing name or brand/part attributes."
-msgstr "Schází atributy název nebo značka/produkt."
+msgid "%s full page label"
+msgstr "Etiketa přes celou stranu %s"
 
-#. This should always be an id, but just in case a name
-#. slips by!
-#: ../libglabels/xml-template.c:244
+#.
+#. * Translators: 1st %d = number of labels across a page,
+#. *              2nd %d = number of labels down a page,
+#. *              3rd %d = total number of labels on a page (sheet).
+#.
+#: ../libglabels/lgl-template.c:673
 #, c-format
-msgid "Unknown page size id \"%s\", trying as name"
-msgstr "Neznámé ID velikosti papíru „%s“, zkusí se použít jako název"
+msgid "%d × %d (%d per sheet)"
+msgstr "%d × %d (%d na stránku)"
 
-#: ../libglabels/xml-template.c:256
+#. Translators: %d is the total number of labels on a page (sheet).
+#: ../libglabels/lgl-template.c:678
 #, c-format
-msgid "Unknown page size id or name \"%s\""
-msgstr "Neznámé ID nebo název velikosti stránky „%s“"
+msgid "%d per sheet"
+msgstr "%d na stránku"
 
-#: ../libglabels/xml-template.c:627
-msgid ""
-"Missing required \"brand\" or \"part\" attribute, trying deprecated name."
-msgstr ""
-"Schází vyžadované atributy „značka“ nebo „produkt“, zkouší se použít "
-"nepřípustný název."
+#: ../libglabels/lgl-template.c:759 ../libglabels/lgl-template.c:767
+#: ../libglabels/lgl-template.c:779 ../libglabels/lgl-template.c:787
+msgid "diameter"
+msgstr "průměr"
+
+#. The ids are identical to the absolute length units supported in
+#. the CSS2 Specification (Section 4.3.2)
+#. This table must be sorted exactly as the enumerations in lglUnits
+#. [LGL_UNITS_POINT]
+#: ../libglabels/lgl-units.c:65 ../data/ui/object-editor.ui.h:42
+#: ../data/ui/prefs-dialog.ui.h:22
+msgid "points"
+msgstr "body"
+
+#. [LGL_UNITS_INCH]
+#: ../libglabels/lgl-units.c:66 ../data/ui/object-editor.ui.h:40
+#: ../data/ui/template-designer.ui.h:66
+msgid "inches"
+msgstr "palce"
 
-#: ../libglabels/xml-template.c:637
-msgid "Name attribute also missing."
-msgstr "Schází také název atributu."
+#. [LGL_UNITS_MM]
+#: ../libglabels/lgl-units.c:67
+msgid "mm"
+msgstr "mm"
 
-#: ../data/glade/merge-properties-dialog.glade.h:1
-msgid "<b>Record selection/preview</b>"
-msgstr "<b>Výběr/náhled záznamu</b>"
+#. [LGL_UNITS_CM]
+#: ../libglabels/lgl-units.c:68
+msgid "cm"
+msgstr "cm"
 
-#: ../data/glade/merge-properties-dialog.glade.h:2
-msgid "<b>Source</b>"
-msgstr "<b>Zdroj</b>"
+#. [LGL_UNITS_PICA]
+#: ../libglabels/lgl-units.c:69
+msgid "picas"
+msgstr "pica"
 
-#: ../data/glade/merge-properties-dialog.glade.h:3
+#.
+#. * Local Variables:       -- emacs
+#. * mode: C                -- emacs
+#. * c-basic-offset: 8      -- emacs
+#. * tab-width: 8           -- emacs
+#. * indent-tabs-mode: nil  -- emacs
+#. * End:                   -- emacs
+#.
+#: ../data/ui/merge-properties-dialog.ui.h:1
 msgid "Format:"
 msgstr "Formát:"
 
-#: ../data/glade/merge-properties-dialog.glade.h:4
+#: ../data/ui/merge-properties-dialog.ui.h:2
 msgid "Location:"
 msgstr "Umístění:"
 
-#: ../data/glade/merge-properties-dialog.glade.h:5
+#: ../data/ui/merge-properties-dialog.ui.h:3
+msgid "Record selection/preview"
+msgstr "Výběr/náhled záznamu"
+
+#: ../data/ui/merge-properties-dialog.ui.h:4
 msgid "Select all"
 msgstr "Vybrat vše"
 
-#: ../data/glade/merge-properties-dialog.glade.h:6
+#: ../data/ui/merge-properties-dialog.ui.h:5
+msgid "Source"
+msgstr "Zdroj"
+
+#: ../data/ui/merge-properties-dialog.ui.h:6
 msgid "Unselect all"
 msgstr "Zrušit výběr"
 
-#: ../data/glade/merge-properties-dialog.glade.h:7
-#: ../data/glade/object-editor.glade.h:39
-msgid "dialog1"
-msgstr "dialog1"
+#: ../data/ui/media-select.ui.h:1
+msgid "Brand:"
+msgstr "Značka:"
+
+#: ../data/ui/media-select.ui.h:2
+msgid "Category:"
+msgstr "Kategorie:"
+
+#: ../data/ui/media-select.ui.h:3
+msgid "Custom"
+msgstr "Vlastní"
+
+#: ../data/ui/media-select.ui.h:4 ../data/ui/new-label-dialog.ui.h:6
+#: ../data/ui/template-designer.ui.h:46
+msgid "Page size:"
+msgstr "Velikost stránky:"
+
+#: ../data/ui/media-select.ui.h:5
+msgid "Recent"
+msgstr "Nedávné"
+
+#: ../data/ui/media-select.ui.h:6
+msgid "Search all"
+msgstr "Prohledat vše"
+
+#: ../data/ui/new-label-dialog.ui.h:1
+msgid ""
+"Choose label or card product from hundreds of predefined templates or define "
+"your own."
+msgstr ""
+"Zvolte produkt s etiketami nebo vizitkami ze stovek předdefinovaných šablon "
+"nebo si vytvořte vlastní."
+
+#: ../data/ui/new-label-dialog.ui.h:2 ../data/ui/template-designer.ui.h:29
+msgid "Description:"
+msgstr "Popis:"
+
+#: ../data/ui/new-label-dialog.ui.h:3
+msgid "Label size:"
+msgstr "Velikost etikety:"
+
+#: ../data/ui/new-label-dialog.ui.h:4
+msgid "Layout:"
+msgstr "Rozvržení:"
+
+#: ../data/ui/new-label-dialog.ui.h:5
+msgid "Normal"
+msgstr "Normálně"
+
+#: ../data/ui/new-label-dialog.ui.h:7 ../data/ui/template-designer.ui.h:47
+msgid "Part #:"
+msgstr "Produktové číslo:"
 
-#: ../data/glade/new-label-dialog.glade.h:1
-msgid "<b>Label orientation</b>"
-msgstr "<b>Orientace etikety</b>"
+#: ../data/ui/new-label-dialog.ui.h:8
+msgid "Please review and confirm your selection."
+msgstr "Zkontrolujte prosím a potvrďte svůj výběr."
 
-#: ../data/glade/new-label-dialog.glade.h:2
-msgid "<b>Media type</b>"
-msgstr "<b>Typ média</b>"
+#: ../data/ui/new-label-dialog.ui.h:9
+msgid "Rotated"
+msgstr "Otočené"
 
-#: ../data/glade/object-editor.glade.h:2
+#: ../data/ui/new-label-dialog.ui.h:10
+msgid "Select orientation of label content."
+msgstr "Vyberte otočení obsahu etikety."
+
+#: ../data/ui/new-label-dialog.ui.h:11
+msgid "Similar products:"
+msgstr "Podobné produkty:"
+
+#: ../data/ui/new-label-dialog.ui.h:12
+msgid "Vendor:"
+msgstr "Výrobce:"
+
+#: ../data/ui/object-editor.ui.h:1
+msgid " "
+msgstr " "
+
+#: ../data/ui/object-editor.ui.h:3
 #, no-c-format
 msgid "%"
 msgstr "%"
 
-#: ../data/glade/object-editor.glade.h:3
-msgid "00000000000 00000"
-msgstr "00000000000 00000"
-
-#: ../data/glade/object-editor.glade.h:4
-msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
-msgstr "<span weight=\"bold\" size=\"larger\">Vlastnosti objektu xxx</span>"
-
-#: ../data/glade/object-editor.glade.h:5 ../data/glade/prefs-dialog.glade.h:7
+#: ../data/ui/object-editor.ui.h:4 ../data/ui/prefs-dialog.ui.h:2
 msgid "Alignment:"
 msgstr "Zarovnání:"
 
-#: ../data/glade/object-editor.glade.h:6
+#: ../data/ui/object-editor.ui.h:5
 msgid "Allow merge to automatically shrink text"
 msgstr "Při slučování povolit automatické zúžení textu"
 
-#: ../data/glade/object-editor.glade.h:7
+#: ../data/ui/object-editor.ui.h:6
 msgid "Angle:"
 msgstr "Úhel:"
 
-#: ../data/glade/object-editor.glade.h:8
+#: ../data/ui/object-editor.ui.h:7
+msgid "Backend:"
+msgstr "Generátor:"
+
+#: ../data/ui/object-editor.ui.h:8
 msgid "Checksum"
 msgstr "Kontrolní součet"
 
-#: ../data/glade/object-editor.glade.h:9 ../data/glade/prefs-dialog.glade.h:8
+#: ../data/ui/object-editor.ui.h:9 ../data/ui/prefs-dialog.ui.h:3
 msgid "Color:"
 msgstr "Barva:"
 
-#: ../data/glade/object-editor.glade.h:11
+#: ../data/ui/object-editor.ui.h:11
 msgid "Enable shadow"
 msgstr "Zapnout stín"
 
-#: ../data/glade/object-editor.glade.h:12
+#: ../data/ui/object-editor.ui.h:12
 msgid "Family:"
 msgstr "Rodina:"
 
-#: ../data/glade/object-editor.glade.h:13
+#: ../data/ui/object-editor.ui.h:13
 msgid "File:"
 msgstr "Soubor:"
 
-#: ../data/glade/object-editor.glade.h:14
+#: ../data/ui/object-editor.ui.h:14 ../data/ui/prefs-dialog.ui.h:5
 msgid "Fill"
 msgstr "Výplň"
 
-#: ../data/glade/object-editor.glade.h:15
-#: ../data/glade/template-designer.glade.h:30
+#: ../data/ui/object-editor.ui.h:15 ../data/ui/template-designer.ui.h:33
 msgid "Height:"
 msgstr "Výška:"
 
-#: ../data/glade/object-editor.glade.h:17
-msgid "Insert merge field"
-msgstr "Vložit pole pro slučování"
-
-#: ../data/glade/object-editor.glade.h:18
+#: ../data/ui/object-editor.ui.h:17
 msgid "Key:"
 msgstr "Klíč:"
 
-#: ../data/glade/object-editor.glade.h:19
+#: ../data/ui/object-editor.ui.h:18
 msgid "Length:"
 msgstr "Délka:"
 
-#: ../data/glade/object-editor.glade.h:21
-#: ../data/glade/prefs-dialog.glade.h:12
+#: ../data/ui/object-editor.ui.h:20 ../data/ui/prefs-dialog.ui.h:10
 msgid "Line Spacing:"
 msgstr "Řádkování:"
 
-#: ../data/glade/object-editor.glade.h:22
+#: ../data/ui/object-editor.ui.h:21
 msgid "Literal:"
 msgstr "Znaky:"
 
-#: ../data/glade/object-editor.glade.h:23
+#: ../data/ui/object-editor.ui.h:22
 msgid "Opacity:"
 msgstr "Krytí:"
 
-#: ../data/glade/object-editor.glade.h:24
+#: ../data/ui/object-editor.ui.h:23
 msgid "Position"
 msgstr "Pozice"
 
-#: ../data/glade/object-editor.glade.h:25
+#: ../data/ui/object-editor.ui.h:24
 msgid "Reset image size"
 msgstr "Původní velikost obrázku"
 
-#: ../data/glade/object-editor.glade.h:26
-msgid "Select A File"
-msgstr "Výběr souboru"
-
-#: ../data/glade/object-editor.glade.h:27
+#: ../data/ui/object-editor.ui.h:25
 msgid "Shadow"
 msgstr "Stín"
 
-#: ../data/glade/object-editor.glade.h:28
+#: ../data/ui/object-editor.ui.h:26
 msgid "Size"
 msgstr "Velikost"
 
-#: ../data/glade/object-editor.glade.h:29
+#: ../data/ui/object-editor.ui.h:27
 msgid "Size:"
 msgstr "Velikost:"
 
-#: ../data/glade/object-editor.glade.h:30
+#: ../data/ui/object-editor.ui.h:28
 msgid "Style"
 msgstr "Styl"
 
-#: ../data/glade/object-editor.glade.h:31
+#: ../data/ui/object-editor.ui.h:29
 msgid "Style:"
 msgstr "Styl:"
 
-#: ../data/glade/object-editor.glade.h:33
-#: ../data/glade/prefs-dialog.glade.h:20
-#: ../data/glade/template-designer.glade.h:61
+#: ../data/ui/object-editor.ui.h:31 ../data/ui/prefs-dialog.ui.h:20
+#: ../data/ui/template-designer.ui.h:65
 msgid "Width:"
 msgstr "Šířka:"
 
-#: ../data/glade/object-editor.glade.h:34
+#: ../data/ui/object-editor.ui.h:32
 msgid "X Offset:"
 msgstr "Posun X:"
 
-#: ../data/glade/object-editor.glade.h:35
+#: ../data/ui/object-editor.ui.h:33
 msgid "X:"
 msgstr "X:"
 
-#: ../data/glade/object-editor.glade.h:36
+#: ../data/ui/object-editor.ui.h:34
 msgid "Y Offset:"
 msgstr "Posun Y:"
 
-#: ../data/glade/object-editor.glade.h:37
+#: ../data/ui/object-editor.ui.h:35
 msgid "Y:"
 msgstr "Y:"
 
-#: ../data/glade/object-editor.glade.h:38
+#: ../data/ui/object-editor.ui.h:36
 msgid "degrees"
 msgstr "stupně"
 
-#: ../data/glade/object-editor.glade.h:40
+#: ../data/ui/object-editor.ui.h:37
+msgid "dialog1"
+msgstr "dialog1"
+
+#: ../data/ui/object-editor.ui.h:38
 msgid "digits:"
 msgstr "číslic:"
 
-#: ../data/glade/object-editor.glade.h:41
+#: ../data/ui/object-editor.ui.h:39
 msgid "format:"
 msgstr "formát:"
 
-#: ../data/glade/prefs-dialog.glade.h:1
+#: ../data/ui/object-editor.ui.h:41
+msgid "key:"
+msgstr "Klíč:"
+
+#: ../data/ui/prefs-dialog.ui.h:1
 msgid "   "
 msgstr "   "
 
-#: ../data/glade/prefs-dialog.glade.h:2
-msgid "<span weight=\"bold\">Default page size</span>"
-msgstr "<span weight=\"bold\">Výchozí velikost stránky</span>"
+#: ../data/ui/prefs-dialog.ui.h:4
+msgid "Default page size"
+msgstr "Výchozí velikost stránky"
 
-#: ../data/glade/prefs-dialog.glade.h:3
-msgid "<span weight=\"bold\">Fill</span>"
-msgstr "<span weight=\"bold\">Výplň</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:4
-msgid "<span weight=\"bold\">Line</span>"
-msgstr "<span weight=\"bold\">Obrys</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:5
-msgid "<span weight=\"bold\">Text</span>"
-msgstr "<span weight=\"bold\">Text</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:6
-msgid "<span weight=\"bold\">Units</span>"
-msgstr "<span weight=\"bold\">Jednotky</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:9
+#: ../data/ui/prefs-dialog.ui.h:6
 msgid "Font:"
 msgstr "Písmo:"
 
-#: ../data/glade/prefs-dialog.glade.h:10
+#: ../data/ui/prefs-dialog.ui.h:7
 msgid "ISO A4"
 msgstr "ISO A4"
 
-#: ../data/glade/prefs-dialog.glade.h:11
+#: ../data/ui/prefs-dialog.ui.h:8
 msgid "Inches"
 msgstr "Palce"
 
-#: ../data/glade/prefs-dialog.glade.h:13
+#: ../data/ui/prefs-dialog.ui.h:11
 msgid "Locale"
 msgstr "Národní prostředí"
 
-#: ../data/glade/prefs-dialog.glade.h:14
+#: ../data/ui/prefs-dialog.ui.h:12
 msgid "Millimeters"
 msgstr "Milimetry"
 
-#: ../data/glade/prefs-dialog.glade.h:15
+#: ../data/ui/prefs-dialog.ui.h:13
 msgid "Object defaults"
 msgstr "Výchozí hodnoty objektu"
 
-#: ../data/glade/prefs-dialog.glade.h:16
+#: ../data/ui/prefs-dialog.ui.h:14
 msgid "Points"
 msgstr "Body"
 
-#: ../data/glade/prefs-dialog.glade.h:17
+#: ../data/ui/prefs-dialog.ui.h:15
 msgid "Select default properties for new objects."
 msgstr "Vyberte výchozí vlastnosti pro nové objekty."
 
-#: ../data/glade/prefs-dialog.glade.h:18
+#: ../data/ui/prefs-dialog.ui.h:16
 msgid "Select locale specific behavior."
 msgstr "Vyberte specifické chování pro národní prostředí."
 
-#. Most popular (at top of list)
-#: ../data/glade/prefs-dialog.glade.h:19
-#: ../data/templates/paper-sizes.xml.h:29
+#: ../data/ui/prefs-dialog.ui.h:18 ../templates/paper-sizes.xml.h:35
 msgid "US Letter"
 msgstr "US Letter"
 
-#: ../data/glade/print-custom-widget.glade.h:1
-msgid "<b>Options</b>"
-msgstr "<b>Volby</b>"
-
-#: ../data/glade/print-custom-widget.glade.h:2
-msgid "<b>Print control (Merge)</b>"
-msgstr "<b>Ovládání tisku (slučování)</b>"
+#: ../data/ui/prefs-dialog.ui.h:19
+msgid "Units"
+msgstr "Jednotky"
 
-#: ../data/glade/print-custom-widget.glade.h:3
-msgid "<b>Print control (Simple)</b>"
-msgstr "<b>Ovládání tisku (jednoduchý)</b>"
-
-#: ../data/glade/property-bar.glade.h:1
+#: ../data/ui/property-bar.ui.h:1
 msgid "Bold"
 msgstr "Tučně"
 
-#: ../data/glade/property-bar.glade.h:2
+#: ../data/ui/property-bar.ui.h:2
 msgid "Center align"
 msgstr "Na střed"
 
-#: ../data/glade/property-bar.glade.h:4
-msgid "Font family"
-msgstr "Rodina písma"
-
-#: ../data/glade/property-bar.glade.h:5
-msgid "Font size"
-msgstr "Velikost písma"
-
-#: ../data/glade/property-bar.glade.h:6
-msgid "Italic"
-msgstr "Kurzíva"
-
-#: ../data/glade/property-bar.glade.h:7
+#: ../data/ui/property-bar.ui.h:7
 msgid "Left align"
 msgstr "Zarovnání vlevo"
 
-#: ../data/glade/property-bar.glade.h:9
-msgid "Line width"
-msgstr "Tloušťka obrysu"
-
-#: ../data/glade/property-bar.glade.h:10
+#: ../data/ui/property-bar.ui.h:10
 msgid "Right align"
 msgstr "Zarovnání vpravo"
 
-#: ../data/glade/property-bar.glade.h:11
-msgid "Text Color"
-msgstr "Barva textu"
-
-#: ../data/glade/property-bar.glade.h:12
-msgid "Text color"
-msgstr "Barva textu"
-
-#: ../data/glade/template-designer.glade.h:1
+#: ../data/ui/template-designer.ui.h:1
 msgid "(e.g., \"Mailing Labels,\" \"Business Cards,\" ...)"
 msgstr "(např. „Adresní štítky“, „Vizitky“, …)"
 
-#: ../data/glade/template-designer.glade.h:2
+#: ../data/ui/template-designer.ui.h:2
 msgid "(e.g., 8163A)"
 msgstr "(např. 8163A)"
 
-#: ../data/glade/template-designer.glade.h:3
+#: ../data/ui/template-designer.ui.h:3
 msgid "(e.g., Avery, Acme, ...)"
 msgstr "(např. Avery, Acme, …)"
 
-#: ../data/glade/template-designer.glade.h:4
+#: ../data/ui/template-designer.ui.h:4
 msgid "1. Outer radius:"
 msgstr "1. Vnější poloměr:"
 
-#: ../data/glade/template-designer.glade.h:5
+#: ../data/ui/template-designer.ui.h:5
 msgid "1. Radius:"
 msgstr "1. Poloměr:"
 
-#: ../data/glade/template-designer.glade.h:6
+#: ../data/ui/template-designer.ui.h:6
 msgid "1. Width:"
 msgstr "1. Šířka:"
 
-#: ../data/glade/template-designer.glade.h:7
+#: ../data/ui/template-designer.ui.h:7
 msgid "2. Height:"
 msgstr "2. Výška:"
 
-#: ../data/glade/template-designer.glade.h:8
+#: ../data/ui/template-designer.ui.h:8
 msgid "2. Inner radius:"
 msgstr "2. Vnitřní poloměr:"
 
-#: ../data/glade/template-designer.glade.h:9
+#: ../data/ui/template-designer.ui.h:9
 msgid "2. Waste (overprint allowed):"
 msgstr "2. Odsazení (umožňuje přetisk):"
 
-#: ../data/glade/template-designer.glade.h:10
+#: ../data/ui/template-designer.ui.h:10
 msgid "3. Clipping width:"
 msgstr "3. Šířka oříznutí:"
 
-#: ../data/glade/template-designer.glade.h:11
+#: ../data/ui/template-designer.ui.h:11
 msgid "3. Margin"
 msgstr "3. Okraj"
 
-#: ../data/glade/template-designer.glade.h:12
+#: ../data/ui/template-designer.ui.h:12
 msgid "3. Round (radius of corner):"
 msgstr "3. Zaoblení (poloměr rohu):"
 
-#: ../data/glade/template-designer.glade.h:13
+#: ../data/ui/template-designer.ui.h:13
+msgid "3. Waste (overprint allowed):"
+msgstr "3. Odsazení (umožňuje přetisk):"
+
+#: ../data/ui/template-designer.ui.h:14
 msgid "4. Clipping height:"
 msgstr "4. Výška oříznutí:"
 
-#: ../data/glade/template-designer.glade.h:14
+#: ../data/ui/template-designer.ui.h:15
 msgid "4. Horiz. waste (overprint allowed):"
 msgstr "4. Vodorovné odsazení (umožňuje přetisk):"
 
-#: ../data/glade/template-designer.glade.h:15
+#: ../data/ui/template-designer.ui.h:16
+msgid "4. Margin"
+msgstr "4. Okraj"
+
+#: ../data/ui/template-designer.ui.h:17
 msgid "5. Vert. waste (overprint allowed):"
 msgstr "5. Svislé odsazení (umožňuje přetisk):"
 
-#: ../data/glade/template-designer.glade.h:16
+#: ../data/ui/template-designer.ui.h:18
 msgid "5. Waste (overprint allowed):"
 msgstr "5. Odsazení (umožňuje přetisk):"
 
-#: ../data/glade/template-designer.glade.h:17
+#: ../data/ui/template-designer.ui.h:19
 msgid "6. Margin"
 msgstr "6. Okraj"
 
-#: ../data/glade/template-designer.glade.h:18
+#: ../data/ui/template-designer.ui.h:20
 msgid "Brand/Manufacturer:"
 msgstr "Značka/Výrobce:"
 
-#: ../data/glade/template-designer.glade.h:19
+#: ../data/ui/template-designer.ui.h:21
 msgid "CD/DVD (including credit card CDs)"
 msgstr "CD/DVD (včetně vizitkových CD)"
 
-#: ../data/glade/template-designer.glade.h:20
+#: ../data/ui/template-designer.ui.h:22
 msgid ""
 "Congratulations!\n"
 "\n"
@@ -1919,23 +2193,23 @@ msgstr ""
 "V opačném případě klikněte na „Zrušit“ pro zahození návrhu\n"
 "nebo na „Zpět“ pro další úpravy tohoto návrhu."
 
-#: ../data/glade/template-designer.glade.h:27
-msgid "Description:"
-msgstr "Popis:"
-
-#: ../data/glade/template-designer.glade.h:28
+#: ../data/ui/template-designer.ui.h:30
 msgid "Distance from left edge (x0):"
 msgstr "Vzdálenost od levého okraje (x0):"
 
-#: ../data/glade/template-designer.glade.h:29
+#: ../data/ui/template-designer.ui.h:31
 msgid "Distance from top edge (y0):"
 msgstr "Vzdálenost od horního okraje (y0):"
 
-#: ../data/glade/template-designer.glade.h:31
+#: ../data/ui/template-designer.ui.h:32
+msgid "Elliptical"
+msgstr "Oválný"
+
+#: ../data/ui/template-designer.ui.h:34
 msgid "Horizontal pitch (dx):"
 msgstr "Vodorovná rozteč (dx):"
 
-#: ../data/glade/template-designer.glade.h:32
+#: ../data/ui/template-designer.ui.h:35
 msgid ""
 "How many layouts will your template contain? \n"
 "\n"
@@ -1949,47 +2223,46 @@ msgstr ""
 "jednoduché mřížce. Většina šablon potřebuje jedno rozvržení jako v\n"
 "prvním příkladu. Druhý příklad ilustruje dvě rozvržení."
 
-#: ../data/glade/template-designer.glade.h:37
+#: ../data/ui/template-designer.ui.h:40
 msgid "Layout #1"
 msgstr "Rozvržení č. 1"
 
-#: ../data/glade/template-designer.glade.h:38
+#: ../data/ui/template-designer.ui.h:41
 msgid "Layout #2"
 msgstr "Rozvržení č. 2"
 
-#: ../data/glade/template-designer.glade.h:39
+#: ../data/ui/template-designer.ui.h:42
+msgid ""
+"Note: if more than 2 layouts are required, the template must be edited "
+"manually."
+msgstr ""
+"Poznámka: pokud jsou požadována více jak 2 rozvržení, musí se šablona "
+"upravovat ručně."
+
+#: ../data/ui/template-designer.ui.h:43
 msgid "Number across (nx):"
 msgstr "Počet napříč (nx):"
 
-#: ../data/glade/template-designer.glade.h:40
+#: ../data/ui/template-designer.ui.h:44
 msgid "Number down (ny):"
 msgstr "Počet svisle (ny):"
 
-#: ../data/glade/template-designer.glade.h:41
+#: ../data/ui/template-designer.ui.h:45
 msgid "Number of layouts:"
 msgstr "Počet rozvržení:"
 
-#: ../data/glade/template-designer.glade.h:42
-#: ../data/glade/wdgt-media-select.glade.h:3
-msgid "Page size:"
-msgstr "Velikost stránky:"
-
-#: ../data/glade/template-designer.glade.h:43
-msgid "Part #:"
-msgstr "Produktové číslo:"
-
-#: ../data/glade/template-designer.glade.h:44
+#: ../data/ui/template-designer.ui.h:48
 msgid ""
 "Please enter the following identifying information about the template "
 "stationery."
 msgstr ""
 "Vyplňte, prosím, následující identifikační informace o papíru pro šablonu."
 
-#: ../data/glade/template-designer.glade.h:45
+#: ../data/ui/template-designer.ui.h:49
 msgid "Please enter the following layout information."
 msgstr "Vyplňte, prosím, následující informaci o rozvržení."
 
-#: ../data/glade/template-designer.glade.h:46
+#: ../data/ui/template-designer.ui.h:50
 msgid ""
 "Please enter the following size parameters of a single label in your "
 "template."
@@ -1997,7 +2270,7 @@ msgstr ""
 "Vyplňte, prosím, následující parametry velikosti jedné etikety ve vaší "
 "šabloně."
 
-#: ../data/glade/template-designer.glade.h:47
+#: ../data/ui/template-designer.ui.h:51
 msgid ""
 "Please enter the following size parameters of a single label or card in your "
 "template."
@@ -2005,27 +2278,27 @@ msgstr ""
 "Vyplňte, prosím, následující parametry velikosti jedné etikety nebo vizitky "
 "ve vaší šabloně."
 
-#: ../data/glade/template-designer.glade.h:48
+#: ../data/ui/template-designer.ui.h:52
 msgid "Please select the basic shape of the labels or cards."
 msgstr "Vyberte, prosím, základní tvar etiket nebo vizitek."
 
-#: ../data/glade/template-designer.glade.h:49
+#: ../data/ui/template-designer.ui.h:53
 msgid "Please select the page size of the template stationery."
 msgstr "Vyberte, prosím, velikost stránky papíru pro šablonu."
 
-#: ../data/glade/template-designer.glade.h:50
+#: ../data/ui/template-designer.ui.h:54
 msgid "Print test sheet"
 msgstr "Vytisknout testovací stránku"
 
-#: ../data/glade/template-designer.glade.h:51
+#: ../data/ui/template-designer.ui.h:55
 msgid "Rectangular or square (can have rounded corners)"
 msgstr "Obdélníkový nebo čtvercový (může mít zaoblené rohy)"
 
-#: ../data/glade/template-designer.glade.h:52
+#: ../data/ui/template-designer.ui.h:56
 msgid "Round"
-msgstr "Oválný"
+msgstr "Kulatý"
 
-#: ../data/glade/template-designer.glade.h:53
+#: ../data/ui/template-designer.ui.h:57
 msgid ""
 "Templates needing\n"
 "two layouts."
@@ -2033,7 +2306,7 @@ msgstr ""
 "Šablony, které potřebují\n"
 "dvě rozvržení."
 
-#: ../data/glade/template-designer.glade.h:55
+#: ../data/ui/template-designer.ui.h:59
 msgid ""
 "Templates needing only\n"
 "one layout."
@@ -2041,11 +2314,11 @@ msgstr ""
 "Šablony, které potřebují\n"
 "jedno rozvržení."
 
-#: ../data/glade/template-designer.glade.h:57
+#: ../data/ui/template-designer.ui.h:61
 msgid "Vertical pitch (dy):"
 msgstr "Svislá rozteč (dy):"
 
-#: ../data/glade/template-designer.glade.h:58
+#: ../data/ui/template-designer.ui.h:62
 msgid ""
 "Welcome to the gLabels Template Designer.\n"
 "\n"
@@ -2055,392 +2328,681 @@ msgstr ""
 "\n"
 "Tento dialog vám pomůže při vytváření vlastní šablony gLabels."
 
-#: ../data/glade/template-designer.glade.h:62
-msgid "cd_size_page"
-msgstr "karta_velikost_cd"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:1
+msgid "Collate"
+msgstr "Seřadit"
 
-#: ../data/glade/template-designer.glade.h:63
-msgid "finish_page"
-msgstr "karta_dokončení"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:2
+msgid "Copies"
+msgstr "Kopie"
 
-#: ../data/glade/template-designer.glade.h:65
-msgid "layout_page"
-msgstr "karta_rozvržení"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:3
+msgid "Copies:"
+msgstr "Kopie:"
 
-#: ../data/glade/template-designer.glade.h:66
-msgid "name_page"
-msgstr "karta_název"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:5
+msgid "Merge Control"
+msgstr "Řízení slučování"
 
-#: ../data/glade/template-designer.glade.h:67
-msgid "nlayouts_page"
-msgstr "karta_počet_rozvržení"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:6
+msgid "Options"
+msgstr "Volby"
 
-#: ../data/glade/template-designer.glade.h:68
-msgid "pg_size_page"
-msgstr "karta_velikost_strany"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:7
+msgid "Sheets:"
+msgstr "Stránky:"
 
-#: ../data/glade/template-designer.glade.h:69
-msgid "rect_size_page"
-msgstr "karta_velikost_obdélníku"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:8
+msgid "Start on label"
+msgstr "Začít na etiketě"
 
-#: ../data/glade/template-designer.glade.h:70
-msgid "round_size_page"
-msgstr "karta_velikost_ovalu"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:9
+msgid "from:"
+msgstr "od:"
 
-#: ../data/glade/template-designer.glade.h:71
-msgid "shape_page"
-msgstr "karta_tvar"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:10
+msgid "on 1st sheet"
+msgstr "na první stránce"
 
-#: ../data/glade/template-designer.glade.h:72
-msgid "start_page"
-msgstr "karta_úvod"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:14
+msgid "to:"
+msgstr "do:"
 
-#: ../data/glade/wdgt-media-select.glade.h:1
-msgid "Brand:"
-msgstr "Značka:"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:1
+msgid "Controls maximum number of recent files tracked."
+msgstr "Řídí maximální počet zaznamenaných nedávných souborů."
 
-#: ../data/glade/wdgt-media-select.glade.h:2
-msgid "Category:"
-msgstr "Kategorie:"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:2
+msgid "Controls visibility of drawing toolbar."
+msgstr "Řídí viditelnost panelu nástrojů kreslení."
 
-#: ../data/glade/wdgt-media-select.glade.h:4
-msgid "Recent templates"
-msgstr "Nedávno použité šablony"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:3
+msgid "Controls visibility of grid."
+msgstr "Řídí viditelnost mřížky."
 
-#: ../data/glade/wdgt-media-select.glade.h:5
-msgid "Search all templates"
-msgstr "Vyhledat ve všech šablonách"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:4
+msgid "Controls visibility of main toolbar."
+msgstr "Řídí viditelnost hlavního panelu nástrojů."
 
-#: ../data/glade/wdgt-rotate-label.glade.h:1
-msgid "Rotate"
-msgstr "Otočit"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:5
+msgid "Controls visibility of markup lines."
+msgstr "Řídí viditelnost hraničních čar."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:6
+msgid "Controls visibility of property toolbar."
+msgstr "Řídí viditelnost panelu vlastností."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:7
+msgid "Default fill color."
+msgstr "Výchozí barva výplně."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:8
+msgid "Default font family."
+msgstr "Výchozí rodina písma."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:9
+msgid "Default font italic flag."
+msgstr "Výchozí příznak kurzívy."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:10
+msgid "Default font size."
+msgstr "Výchozí velikost písma."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:11
+msgid "Default font weight."
+msgstr "Výchozí tloušťka písma."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:12
+msgid "Default line color."
+msgstr "Výchozí barva obrysu."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:13
+msgid "Default line width."
+msgstr "Výchozí tloušťka obrysu."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:14
+msgid "Default page size."
+msgstr "Výchozí velikost stránky."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:15
+msgid "Default text alignment."
+msgstr "Výchozí zarovnání textu."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:16
+msgid "Default text color."
+msgstr "Výchozí barva textu."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:17
+msgid "Default text line spacing."
+msgstr "Výchozí řádkování textu."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:18
+msgid "Maximum recent files."
+msgstr "Maximum nedávných souborů."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:19
+msgid "Recent colors."
+msgstr "Nedávné barvy."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:20
+msgid "Recent fonts."
+msgstr "Nedávná písma."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:21
+msgid "Recent templates."
+msgstr "Nedávné šablony."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:22
+msgid "Recently created custom colors."
+msgstr "Nedávno vytvořené vlastní barvy."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:23
+msgid "Recently used font families."
+msgstr "Nedávno použité rodiny písma."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:24
+msgid "Recently used templates."
+msgstr "Nedávno použité šablony."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:25
+msgid "Show/hide drawing toolbar."
+msgstr "Zobrazit/skrýt panel nástrojů kreslení."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:26
+msgid "Show/hide grid."
+msgstr "Zobrazit/skrýt mřížku."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:27
+msgid "Show/hide main toolbar."
+msgstr "Zobrazit/skrýt hlavní panel nástrojů."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:28
+msgid "Show/hide markup."
+msgstr "Zobrazit/skrýt ohraničení."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:29
+msgid "Show/hide property toolbar."
+msgstr "Zobrazit/skrýt panel vlastností."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:30
+msgid "The default color of text for new text objects (0xRRGGBBAA)."
+msgstr "Výchozí barva textu pro nové textové objekty (0xRRGGBBAA)."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:31
+msgid "The default fill color new objects (0xRRGGBBAA)."
+msgstr "Výchozí barva výplně pro nové objekty (0xRRGGBBAA)."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:32
+msgid "The default font family for new text objects."
+msgstr "Výchozí rodina písma pro nové textové objekty."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:33
+msgid "The default font italic state for new text objects."
+msgstr "Výchozí stav kurzívy pro nové textové objekty."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:34
+msgid "The default font size for new text objects."
+msgstr "Výchozí velikost písma pro nové textové objekty."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:35
+msgid "The default font weight for new text objects."
+msgstr "Výchozí tloušťka písma pro nové textové objekty."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:36
+msgid "The default line color new objects (0xRRGGBBAA)."
+msgstr "Výchozí barva obrysu pro nové objekty (0xRRGGBBAA)."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:37
+msgid "The default line spacing for new text objects."
+msgstr "Výchozí řádkování pro nové textové objekty."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:38
+msgid "The default line width for new objects."
+msgstr "Výchozí tloušťka obrysu pro nové objekty."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:39
+msgid "The default text alignment for new text objects."
+msgstr "Výchozí zarovnání textu pro nové textové objekty."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:40
+msgid "The default unit of measurement."
+msgstr "Výchozí měrná jednotka."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:41
+msgid "The preferred page size when searching templates."
+msgstr "Upřednostňovaná velikost stránky při hledání šablon."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:42
+msgid "Units."
+msgstr "Jednotky."
+
+#: ../data/desktop/glabels-3.0.desktop.in.h:1
+msgid "Create labels, business cards and media covers"
+msgstr "Vytvářejte etikety, vizitky a obaly médií"
+
+#: ../data/desktop/glabels-3.0.desktop.in.h:2
+msgid "gLabels Label Designer 3"
+msgstr "Návrhář etiket gLabels 3"
+
+#: ../data/mime/glabels-3.0.xml.in.h:1
+msgid "gLabels Project File"
+msgstr "Projektový soubor gLabels"
+
+#. Envelopes
+#: ../templates/paper-sizes.xml.h:2
+msgid "#10 Envelope"
+msgstr "Envelope č. 10"
 
 #. Other ISO A series sizes
-#: ../data/templates/paper-sizes.xml.h:2
+#: ../templates/paper-sizes.xml.h:4
 msgid "A0"
 msgstr "A0"
 
-#: ../data/templates/paper-sizes.xml.h:3
+#: ../templates/paper-sizes.xml.h:5
 msgid "A1"
 msgstr "A1"
 
-#: ../data/templates/paper-sizes.xml.h:4
+#: ../templates/paper-sizes.xml.h:6
 msgid "A10"
 msgstr "A10"
 
-#: ../data/templates/paper-sizes.xml.h:5
+#: ../templates/paper-sizes.xml.h:7
 msgid "A2"
 msgstr "A2"
 
-#: ../data/templates/paper-sizes.xml.h:6
+#: ../templates/paper-sizes.xml.h:8
 msgid "A3"
 msgstr "A3"
 
-#: ../data/templates/paper-sizes.xml.h:7
+#. Most popular (at top of list)
+#: ../templates/paper-sizes.xml.h:10
 msgid "A4"
 msgstr "A4"
 
-#: ../data/templates/paper-sizes.xml.h:8
+#: ../templates/paper-sizes.xml.h:11
 msgid "A5"
 msgstr "A5"
 
-#: ../data/templates/paper-sizes.xml.h:9
+#: ../templates/paper-sizes.xml.h:12
 msgid "A6"
 msgstr "A6"
 
-#: ../data/templates/paper-sizes.xml.h:10
+#: ../templates/paper-sizes.xml.h:13
 msgid "A7"
 msgstr "A7"
 
-#: ../data/templates/paper-sizes.xml.h:11
+#: ../templates/paper-sizes.xml.h:14
 msgid "A8"
 msgstr "A8"
 
-#: ../data/templates/paper-sizes.xml.h:12
+#: ../templates/paper-sizes.xml.h:15
 msgid "A9"
 msgstr "A9"
 
 #. ISO B series sizes
-#: ../data/templates/paper-sizes.xml.h:14
+#: ../templates/paper-sizes.xml.h:17
 msgid "B0"
 msgstr "B0"
 
-#: ../data/templates/paper-sizes.xml.h:15
+#: ../templates/paper-sizes.xml.h:18
 msgid "B1"
 msgstr "B1"
 
-#: ../data/templates/paper-sizes.xml.h:16
+#: ../templates/paper-sizes.xml.h:19
 msgid "B10"
 msgstr "B10"
 
-#: ../data/templates/paper-sizes.xml.h:17
+#: ../templates/paper-sizes.xml.h:20
 msgid "B2"
 msgstr "B2"
 
-#: ../data/templates/paper-sizes.xml.h:18
+#: ../templates/paper-sizes.xml.h:21
 msgid "B3"
 msgstr "B3"
 
-#: ../data/templates/paper-sizes.xml.h:19
+#: ../templates/paper-sizes.xml.h:22
 msgid "B4"
 msgstr "B4"
 
-#: ../data/templates/paper-sizes.xml.h:20
+#: ../templates/paper-sizes.xml.h:23
 msgid "B5"
 msgstr "B5"
 
-#: ../data/templates/paper-sizes.xml.h:21
+#: ../templates/paper-sizes.xml.h:24
 msgid "B6"
 msgstr "B6"
 
-#: ../data/templates/paper-sizes.xml.h:22
+#: ../templates/paper-sizes.xml.h:25
 msgid "B7"
 msgstr "B7"
 
-#: ../data/templates/paper-sizes.xml.h:23
+#: ../templates/paper-sizes.xml.h:26
 msgid "B8"
 msgstr "B8"
 
-#: ../data/templates/paper-sizes.xml.h:24
+#: ../templates/paper-sizes.xml.h:27
 msgid "B9"
 msgstr "B9"
 
-#: ../data/templates/paper-sizes.xml.h:25
+#: ../templates/paper-sizes.xml.h:28
+msgid "C5"
+msgstr "C5"
+
+#: ../templates/paper-sizes.xml.h:29
+msgid "C6"
+msgstr "C6"
+
+#: ../templates/paper-sizes.xml.h:30
+msgid "DL"
+msgstr "DL"
+
+#: ../templates/paper-sizes.xml.h:31
+msgid "Monarch Envelope"
+msgstr "Monarch Envelope"
+
+#: ../templates/paper-sizes.xml.h:32
 msgid "US Executive"
 msgstr "US Executive"
 
 #. Other US paper sizes
-#: ../data/templates/paper-sizes.xml.h:27
+#: ../templates/paper-sizes.xml.h:34
 msgid "US Legal"
 msgstr "US Legal"
 
-#: ../data/templates/categories.xml.h:1
+#: ../templates/categories.xml.h:1
 msgid "Any card"
 msgstr "Libovolná karta"
 
-#: ../data/templates/categories.xml.h:2
+#: ../templates/categories.xml.h:2
 msgid "Any label"
 msgstr "Libovolná etiketa"
 
-#: ../data/templates/categories.xml.h:3
+#. ===================================================================
+#. ====================================================================
+#. ===================================================================
+#: ../templates/categories.xml.h:3 ../templates/dataline-iso-templates.xml.h:4
+#: ../templates/geha-iso-templates.xml.h:8
+#: ../templates/hama-iso-templates.xml.h:6
+#: ../templates/pearl-iso-templates.xml.h:8
 msgid "Business cards"
 msgstr "Vizitky"
 
-#: ../data/templates/categories.xml.h:4
+#: ../templates/categories.xml.h:4
 msgid "CD/DVD or other media"
 msgstr "CD/DVD nebo jiná média"
 
-#: ../data/templates/categories.xml.h:5
+#. ===================================================================
+#: ../templates/categories.xml.h:5 ../templates/pearl-iso-templates.xml.h:28
+msgid "Elliptical labels"
+msgstr "Oválné etikety"
+
+#: ../templates/categories.xml.h:6
+msgid "Foldable cards"
+msgstr "Přání"
+
+#: ../templates/categories.xml.h:7
 msgid "Mailing/shipping products"
 msgstr "Poštovní/přepravní produkty"
 
-#: ../data/templates/categories.xml.h:6
+#: ../templates/categories.xml.h:8
+msgid "Photo products"
+msgstr "Fotografické produkty"
+
+#. ===================================================================
+#. ====================================================================
+#. ===================================================================
+#. ********************************************************************
+#: ../templates/categories.xml.h:9 ../templates/ascom-iso-templates.xml.h:6
+#: ../templates/hama-iso-templates.xml.h:29
+#: ../templates/herma-iso-templates.xml.h:18
+#: ../templates/jac-iso-templates.xml.h:8
 msgid "Rectangular labels"
 msgstr "Obdélníkové etikety"
 
-#: ../data/templates/categories.xml.h:7
+#. ====================================================================
+#. ===================================================================
+#: ../templates/categories.xml.h:10 ../templates/hama-iso-templates.xml.h:31
+#: ../templates/pearl-iso-templates.xml.h:54
 msgid "Round labels"
-msgstr "Oválné etikety"
+msgstr "Kulaté etikety"
 
-#: ../data/templates/categories.xml.h:8
+#. ====================================================================
+#: ../templates/categories.xml.h:11 ../templates/hama-iso-templates.xml.h:33
 msgid "Square labels"
 msgstr "Čtvercové etikety"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:2
-#: ../data/templates/avery-us-templates.xml.h:2
-#: ../data/templates/dymo-other-templates.xml.h:4
-#: ../data/templates/misc-iso-templates.xml.h:2
-#: ../data/templates/zweckform-iso-templates.xml.h:2
-msgid "Address Labels"
-msgstr "Adresní etikety"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:4
-msgid "Address labels"
-msgstr "Adresní etikety"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:6
-msgid "Allround labels"
-msgstr "Univerzální etikety"
+#. ===============================================================
+#: ../templates/ascom-iso-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:10
+msgid "CD Inlet"
+msgstr "Přebal CD"
 
+#. TODO: Is this the real part #?
 #. ============================================================
 #. ===================================================================
-#. ********************************************************************
+#. ====================================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:8
-#: ../data/templates/avery-us-templates.xml.h:4
-#: ../data/templates/misc-iso-templates.xml.h:12
-#: ../data/templates/misc-us-templates.xml.h:4
-#: ../data/templates/zweckform-iso-templates.xml.h:6
-msgid "Business Cards"
-msgstr "Vizitky"
-
-#. ===============================================================
-#: ../data/templates/avery-iso-templates.xml.h:10
-msgid "CD Booklet"
-msgstr "Přebal CD"
-
-#. ===============================================================
-#: ../data/templates/avery-iso-templates.xml.h:12
-msgid "CD Inlet"
-msgstr "Vsuvky do krabičky na CD"
-
-#. ===============================================================
+#. TODO: What is the actual part #?
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:14
-#: ../data/templates/avery-us-templates.xml.h:6
-#: ../data/templates/misc-iso-templates.xml.h:16
-#: ../data/templates/misc-us-templates.xml.h:8
-#: ../data/templates/zweckform-iso-templates.xml.h:8
-msgid "CD/DVD Labels"
-msgstr "Etikety na CD/DVD"
+#: ../templates/ascom-iso-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:30
+#: ../templates/databecker-iso-templates.xml.h:10
+#: ../templates/hama-iso-templates.xml.h:27
+#: ../templates/herma-iso-templates.xml.h:16
+#: ../templates/misc-iso-templates.xml.h:30
+#: ../templates/zweckform-iso-templates.xml.h:28
+msgid "Rectangular Labels"
+msgstr "Obdélníkové etikety"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:16
-#: ../data/templates/avery-us-templates.xml.h:12
-msgid "Diskette Labels"
-msgstr "Etikety na diskety"
+#: ../templates/ascom-iso-templates.xml.h:8
+#: ../templates/avery-us-templates.xml.h:46
+#: ../templates/geha-iso-templates.xml.h:29
+#: ../templates/meritline-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:12
+msgid "Video Tape Spine Labels"
+msgstr "Etikety na hřbet videokazet"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:18
-msgid "Diskette labels"
-msgstr "Etikety na diskety"
-
-#. ===============================================================
+#. ********************************************************************
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:20
-#: ../data/templates/misc-iso-templates.xml.h:36
-#: ../data/templates/misc-us-templates.xml.h:20
-#: ../data/templates/zweckform-iso-templates.xml.h:16
-msgid "Mailing Labels"
-msgstr "Poštovní etikety"
+#: ../templates/avery-us-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:2
+#: ../templates/databecker-iso-templates.xml.h:2
+#: ../templates/dymo-other-templates.xml.h:4
+#: ../templates/geha-iso-templates.xml.h:2
+#: ../templates/maco-us-templates.xml.h:2
+#: ../templates/meritline-us-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:1
+#: ../templates/zweckform-iso-templates.xml.h:2
+msgid "Address Labels"
+msgstr "Adresní etikety"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:22
-msgid "Mailing labels"
-msgstr "Poštovní etikety"
-
+#. ============================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:24
-msgid "Mini Address Labels"
-msgstr "Mini adresní etikety"
+#. TODO: Is this the actual part #?
+#. ============================================================
+#: ../templates/avery-us-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:8
+#: ../templates/databecker-iso-templates.xml.h:4
+#: ../templates/dataline-iso-templates.xml.h:2
+#: ../templates/decadry-iso-templates.xml.h:2
+#: ../templates/misc-us-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:6
+#: ../templates/zweckform-iso-templates.xml.h:6
+msgid "Business Cards"
+msgstr "Vizitky"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:26
-msgid "Mini Labels"
-msgstr "Mini etikety"
-
+#. ===============================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:28
-msgid "Shipping labels"
-msgstr "Přepravní etikety"
-
+#. ********************************************************************
 #. ===================================================================
-#: ../data/templates/avery-other-templates.xml.h:2
-msgid "File Folder Labels"
-msgstr "Etikety na složky"
+#: ../templates/avery-us-templates.xml.h:6
+#: ../templates/avery-iso-templates.xml.h:14
+#: ../templates/geha-iso-templates.xml.h:11
+#: ../templates/herma-iso-templates.xml.h:10
+#: ../templates/jac-iso-templates.xml.h:2
+#: ../templates/misc-us-templates.xml.h:8
+#: ../templates/misc-iso-templates.xml.h:10
+#: ../templates/misc-other-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:24
+#: ../templates/worldlabel-us-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:12
+msgid "CD/DVD Labels"
+msgstr "Etikety na CD/DVD"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:8
+#: ../templates/avery-us-templates.xml.h:8
 msgid "CD/DVD Labels (Disc Labels)"
 msgstr "Etikety na CD/DVD (diskové etikety)"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:10
+#: ../templates/avery-us-templates.xml.h:10
 msgid "CD/DVD Labels (Spine Labels)"
 msgstr "Etikety na CD/DVD (hřbetní etikety)"
 
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:12
+#: ../templates/avery-iso-templates.xml.h:16
+#: ../templates/meritline-us-templates.xml.h:4
+#: ../templates/worldlabel-us-templates.xml.h:3
+msgid "Diskette Labels"
+msgstr "Etikety na diskety"
+
 #. the LSK labels can be torn in half down the center
-#: ../data/templates/avery-us-templates.xml.h:14
+#: ../templates/avery-us-templates.xml.h:14
 msgid "Divider Labels"
 msgstr "Rozdělovací etikety na karty"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:16
+#: ../templates/avery-us-templates.xml.h:16
+#: ../templates/avery-other-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:4
+msgid "File Folder Labels"
+msgstr "Etikety na složky"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:5
 msgid "Filing Labels"
 msgstr "Etikety na kartotéky"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:18
+#: ../templates/avery-us-templates.xml.h:20
+#: ../templates/meritline-us-templates.xml.h:6
+#: ../templates/worldlabel-us-templates.xml.h:6
 msgid "Full Sheet Labels"
 msgstr "Celostránkové etikety"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:20
+#: ../templates/avery-us-templates.xml.h:22
 msgid "ID Labels"
 msgstr "Identifikační etikety"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:22
+#: ../templates/avery-us-templates.xml.h:24
 msgid "Index Cards"
 msgstr "Indexové karty"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:24
+#: ../templates/avery-us-templates.xml.h:26
 msgid "Large Round Labels"
-msgstr "Velké oválné etikety"
+msgstr "Velké kulaté etikety"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:26
+#: ../templates/avery-us-templates.xml.h:28
 msgid "Name Badge Labels"
 msgstr "Etikety na jmenovky"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:28
+#: ../templates/avery-us-templates.xml.h:30
 msgid "Post cards"
 msgstr "Pohlednice"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:30
-#: ../data/templates/dymo-other-templates.xml.h:12
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:32
+#: ../templates/dymo-other-templates.xml.h:12
+#: ../templates/meritline-us-templates.xml.h:10
+#: ../templates/worldlabel-us-templates.xml.h:8
 msgid "Return Address Labels"
 msgstr "Zpáteční adresa"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:32
-#: ../data/templates/misc-us-templates.xml.h:30
+#: ../templates/avery-us-templates.xml.h:34
+#: ../templates/maco-us-templates.xml.h:3
+#: ../templates/meritline-us-templates.xml.h:12
+#: ../templates/misc-us-templates.xml.h:30
+#: ../templates/worldlabel-us-templates.xml.h:9
 msgid "Round Labels"
-msgstr "Oválné etikety"
+msgstr "Kulaté etikety"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:34
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:36
+#: ../templates/dataline-iso-templates.xml.h:10
+#: ../templates/meritline-us-templates.xml.h:14
+#: ../templates/uline-us-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:10
 msgid "Shipping Labels"
 msgstr "Dopravní etikety"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:36
+#: ../templates/avery-us-templates.xml.h:38
 msgid "Small Round Labels"
-msgstr "Malé oválné etikety"
+msgstr "Malé kulaté etikety"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:38
+#: ../templates/avery-us-templates.xml.h:40
 msgid "Square Labels"
 msgstr "Čtvercové etikety"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:40
+#: ../templates/avery-us-templates.xml.h:42
 msgid "Tent Cards"
 msgstr "Přáníčka"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:42
+#: ../templates/avery-us-templates.xml.h:44
+#: ../templates/geha-iso-templates.xml.h:27
+#: ../templates/meritline-us-templates.xml.h:16
+#: ../templates/worldlabel-us-templates.xml.h:11
 msgid "Video Tape Face Labels"
 msgstr "Etikety na čelní stranu videokazety"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:44
-msgid "Video Tape Spine Labels"
-msgstr "Etikety na hřbet videokazet"
+#: ../templates/avery-iso-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:2
+msgid "Address labels"
+msgstr "Adresní etikety"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:6
+msgid "Allround labels"
+msgstr "Univerzální etikety"
+
+#. ===============================================================
+#: ../templates/avery-iso-templates.xml.h:10
+#: ../templates/zweckform-iso-templates.xml.h:8
+msgid "CD Booklet"
+msgstr "Brožurka do CD"
+
+#. ===================================================================
+#. ====================================================================
+#: ../templates/avery-iso-templates.xml.h:18
+#: ../templates/hama-iso-templates.xml.h:17
+msgid "Diskette labels"
+msgstr "Etikety na diskety"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:20
+msgid "Identification Labels"
+msgstr "Identifikační etikety"
+
+#. ===============================================================
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:22
+#: ../templates/decadry-iso-templates.xml.h:4
+#: ../templates/herma-iso-templates.xml.h:14
+#: ../templates/misc-us-templates.xml.h:20
+#: ../templates/misc-iso-templates.xml.h:26
+#: ../templates/zweckform-iso-templates.xml.h:20
+msgid "Mailing Labels"
+msgstr "Poštovní etikety"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:24
+#: ../templates/decadry-iso-templates.xml.h:6
+msgid "Mailing labels"
+msgstr "Poštovní etikety"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:26
+msgid "Mini Address Labels"
+msgstr "Mini adresní etikety"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:28
+msgid "Mini Labels"
+msgstr "Mini etikety"
 
-#: ../data/templates/brother-other-templates.xml.h:1
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:32
+msgid "Shipping labels"
+msgstr "Přepravní etikety"
+
+#: ../templates/brother-other-templates.xml.h:1
 msgid "Multi Purpose Labels 17mm x 54mm"
-msgstr "Víceúčelové etikety 17×54 mm"
+msgstr "Víceúčelové etikety 17 × 54 mm"
 
-#: ../data/templates/brother-other-templates.xml.h:2
+#: ../templates/brother-other-templates.xml.h:2
 msgid "Shipping Labels 62mm x 100mm"
-msgstr "Přepravní etikety 62×100 mm"
+msgstr "Přepravní etikety 62 × 100 mm"
 
 #.
 #. *********************************************************************
@@ -2459,288 +3021,616 @@ msgstr "Přepravní etikety 62×100 mm"
 #. *********************************************************************
 #. *********************************************************************
 #.
-#: ../data/templates/brother-other-templates.xml.h:20
+#: ../templates/brother-other-templates.xml.h:20
 msgid "Standard Address Labels 29mm x 90mm"
-msgstr "Standardní adresní etikety 29×90 mm"
+msgstr "Standardní adresní etikety 29 × 90 mm"
+
+#: ../templates/brother-other-templates.xml.h:21
+msgid "Standard Address Labels 38mm x 90mm"
+msgstr "Standardní adresní etikety 38 × 90 mm"
+
+#. ===================================================================
+#: ../templates/databecker-iso-templates.xml.h:6
+#: ../templates/misc-iso-templates.xml.h:8
+msgid "CD Labels"
+msgstr "Etikety na CD"
+
+#. ===================================================================
+#: ../templates/databecker-iso-templates.xml.h:8
+msgid "CD/DVD Labels Standard Format (face only)"
+msgstr "Etikety standardního formátu na CD/DVD (pouze předek)"
+
+#. ===================================================================
+#. ====================================================================
+#: ../templates/dataline-iso-templates.xml.h:6
+#: ../templates/hama-iso-templates.xml.h:13
+msgid "CD/DVD labels"
+msgstr "Etikety na CD/DVD"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:2
+#: ../templates/dataline-iso-templates.xml.h:8
+#: ../templates/pearl-iso-templates.xml.h:42
+msgid "Membership cards"
+msgstr "Členské karty"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:2
 msgid "3.5in Diskette"
 msgstr "3,5ʺ disketa"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:6
+#: ../templates/dymo-other-templates.xml.h:6
 msgid "File Folder"
 msgstr "Kancelářská složka"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:8
+#: ../templates/dymo-other-templates.xml.h:8
 msgid "Hanging Folder"
 msgstr "Závěsná složka"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:10
+#: ../templates/dymo-other-templates.xml.h:10
+#: ../templates/geha-iso-templates.xml.h:19
 msgid "Large Address Labels"
 msgstr "Velké adresní etikety"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:14
+#: ../templates/dymo-other-templates.xml.h:14
 msgid "Shipping Address Labels"
 msgstr "Přepravní adresní etikety"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:4
-#: ../data/templates/zweckform-iso-templates.xml.h:4
-msgid "Allround Labels"
-msgstr "Univerzální etikety"
-
+#. ====================================================================
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:6
+#: ../templates/geha-iso-templates.xml.h:4
+#: ../templates/hama-iso-templates.xml.h:2
+#: ../templates/herma-iso-templates.xml.h:4
 msgid "Arch File Labels"
 msgstr "Etikety na pořadače"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:8
-msgid "Arch File Labels (large)"
-msgstr "Etikety na pořadače (velké)"
+#: ../templates/geha-iso-templates.xml.h:6
+msgid "Arch File inserts"
+msgstr "Vkládací štítky na pořadače"
 
-#. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:10
-msgid "Arch File Labels (small)"
-msgstr "Etikety na pořadače (malé)"
+#: ../templates/geha-iso-templates.xml.h:9
+msgid "CD/DVD Inlet"
+msgstr "Přebal CD/DVD"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:14
-msgid "CD Labels"
-msgstr "Etikety na CD"
-
+#. ====================================================================
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:18
-#: ../data/templates/misc-us-templates.xml.h:12
-msgid "CD/DVD Labels (face only)"
-msgstr "Etikety na CD/DVD (pouze předek)"
+#: ../templates/geha-iso-templates.xml.h:13
+#: ../templates/hama-iso-templates.xml.h:15
+#: ../templates/pearl-iso-templates.xml.h:26
+msgid "DVD inlet"
+msgstr "Přebal DVD"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:20
-msgid "CD/DVD Labels Standard Format (face only)"
-msgstr "Etikety standardního formátu na CD/DVD (pouze předek)"
+#: ../templates/geha-iso-templates.xml.h:15
+msgid "Flyer paper"
+msgstr "Letákový papír"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:22
-msgid "Diskette Labels (face only)"
-msgstr "Etikety na diskety (pouze předek)"
+#. ====================================================================
+#: ../templates/geha-iso-templates.xml.h:17
+#: ../templates/hama-iso-templates.xml.h:19
+msgid "Greeting cards"
+msgstr "Pohlednice"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:24
-msgid "EPSON Photo Stickers 16"
-msgstr "Samolepky EPSON Photo Stickers 16"
+#: ../templates/geha-iso-templates.xml.h:21
+#: ../templates/misc-other-templates.xml.h:4
+msgid "Multi-Purpose Labels"
+msgstr "Víceúčelové etikety"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:26
-msgid "Etiketten"
-msgstr "Etikety"
+#: ../templates/geha-iso-templates.xml.h:23
+msgid "Passport photo labels"
+msgstr "Fotografické etikety na průkazy"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:28
-msgid "Fridge Magnet Stickers"
-msgstr "Reklamní magnetky na ledničku"
-
+#. ====================================================================
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:30
-msgid "General Labels"
-msgstr "Obecné etikety"
+#: ../templates/geha-iso-templates.xml.h:25
+#: ../templates/hama-iso-templates.xml.h:23
+#: ../templates/pearl-iso-templates.xml.h:50
+msgid "Photo labels"
+msgstr "Fotografické etikety"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:4
+msgid "Arch File labels"
+msgstr "Etikety na pořadače"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:8
+msgid "CD inlet"
+msgstr "Přebal CD"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:32
-msgid "Inkjet/Laser Labels 70x37mm"
-msgstr "Etikety na inkoustový/laserový tisk 70×37 mm"
+#: ../templates/hama-iso-templates.xml.h:9
+#: ../templates/pearl-iso-templates.xml.h:20
+msgid "CD inlet (back)"
+msgstr "Přebal CD (zadní)"
 
+#. ====================================================================
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:38
-msgid "Mailing Labels-2 columns"
-msgstr "Poštovní etikety - 2 sloupce"
+#: ../templates/hama-iso-templates.xml.h:11
+#: ../templates/pearl-iso-templates.xml.h:22
+msgid "CD inlet (front)"
+msgstr "Přebal CD (přední)"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:21
+msgid "Mini Disc labels"
+msgstr "Etikety na Mini disky"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:25
+msgid "Printable mousepad"
+msgstr "Potisknutelná podložka pod myš"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:35
+msgid "VHS inlet"
+msgstr "Přebal kazety VHS"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:37
+msgid "VHS-C inlet"
+msgstr "Přebal kazety VHS-C"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:39
+msgid "Video-8 inlet"
+msgstr "Přebal kazety Video-8"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:41
+msgid "Zip disc inlet"
+msgstr "Přebal diskety ZIP"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:43
+msgid "Zip disc labels"
+msgstr "Etikety na diskety ZIP"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:40
-msgid "Mailing Labels-3 columns"
-msgstr "Poštovní etikety - 3 sloupce"
+#: ../templates/herma-iso-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:4
+msgid "Allround Labels"
+msgstr "Univerzální etikety"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:42
-#: ../data/templates/misc-us-templates.xml.h:28
-msgid "PRO CD Labels 2-up (face only)"
-msgstr "PRO CD Labels 2-up (pouze povrch)"
+#: ../templates/herma-iso-templates.xml.h:6
+msgid "Arch File Labels (large)"
+msgstr "Etikety na pořadače (velké)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:44
-#: ../data/templates/zweckform-iso-templates.xml.h:24
-msgid "Rectangular Labels"
-msgstr "Obdélníkové etikety"
+#: ../templates/herma-iso-templates.xml.h:8
+msgid "Arch File Labels (small)"
+msgstr "Etikety na pořadače (malé)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:46
-msgid "Universal Labels"
-msgstr "Univerzální etikety"
+#: ../templates/herma-iso-templates.xml.h:12
+msgid "Diskette Labels (face only)"
+msgstr "Etikety na diskety (pouze předek)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:48
+#: ../templates/herma-iso-templates.xml.h:20
 msgid "Video Labels (face only)"
 msgstr "Etikety na videokazety (pouze předek)"
 
+#. *******************************************************************
 #. ===================================================================
-#: ../data/templates/misc-other-templates.xml.h:2
-msgid "Multi-Purpose Labels"
-msgstr "Víceúčelové etikety"
+#: ../templates/jac-iso-templates.xml.h:4
+#: ../templates/pearl-iso-templates.xml.h:36
+msgid "Labels A4"
+msgstr "Etikety A4"
+
+#. *******************************************************************
+#: ../templates/jac-iso-templates.xml.h:6
+msgid "PVC labels"
+msgstr "Etikety z PVC"
+
+#. ===================================================================
+#: ../templates/meritline-us-templates.xml.h:8
+msgid "Mini-CD Labels"
+msgstr "Etikety na Mini-CD"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:2
+#: ../templates/misc-us-templates.xml.h:2
 msgid "Business Card CD"
 msgstr "Vizitkové CD"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:6
+#: ../templates/misc-us-templates.xml.h:6
 msgid "CD Template Rectangles"
 msgstr "Obdélníkové šablony na CD"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:10
+#: ../templates/misc-us-templates.xml.h:10
 msgid "CD/DVD Labels (Face Only)"
 msgstr "Etikety na CD/DVD (pouze povrch)"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:14
+#. TODO: Is this the actual part #?
+#: ../templates/misc-us-templates.xml.h:12
+#: ../templates/misc-iso-templates.xml.h:12
+msgid "CD/DVD Labels (face only)"
+msgstr "Etikety na CD/DVD (pouze předek)"
+
+#. TODO: Is this the actual part #?
+#: ../templates/misc-us-templates.xml.h:14
 msgid "Cassette Labels"
 msgstr "Etikety na kazety"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:16
+#: ../templates/misc-us-templates.xml.h:16
 msgid "DLT Labels"
 msgstr "Etikety na pásky DLT"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:18
+#: ../templates/misc-us-templates.xml.h:18
 msgid "Jewel Case Booklet"
 msgstr "Přebal do krabičky na CD"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:22
+#: ../templates/misc-us-templates.xml.h:22
 msgid "Microtube labels"
 msgstr "Etikety na zkumavky"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:24
-msgid "Mini-CD Labels"
-msgstr "Etikety na Mini-CD"
-
-#: ../data/templates/misc-us-templates.xml.h:25
+#: ../templates/misc-us-templates.xml.h:24
 msgid "PRO CD Labels 2-up (CD spine only)"
 msgstr "PRO CD Labels 2-up (pouze hřbet)"
 
-#: ../data/templates/misc-us-templates.xml.h:26
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:26
 msgid "PRO CD Labels 2-up (Face only)"
 msgstr "PRO CD Labels 2-up (pouze povrch)"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:32
+#. TODO: Is this the actual part #?
+#: ../templates/misc-us-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:28
+msgid "PRO CD Labels 2-up (face only)"
+msgstr "PRO CD Labels 2-up (pouze povrch)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:32
 msgid "Slimline CD Case (rightside up)"
 msgstr "Tenká krabička na CD (pravá strana)"
 
-#: ../data/templates/misc-us-templates.xml.h:33
+#: ../templates/misc-us-templates.xml.h:33
 msgid "Slimline CD Case (upside down)"
 msgstr "Tenká krabička na CD (horní strana)"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:10
+#: ../templates/misc-iso-templates.xml.h:4
+#: ../templates/pearl-iso-templates.xml.h:6
+msgid "Bottle labels"
+msgstr "Etikety na lahve"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:14
+msgid "EPSON Photo Stickers 16"
+msgstr "Samolepky EPSON Photo Stickers 16"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:16
+msgid "Etiketten"
+msgstr "Etikety"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:18
+msgid "Fridge Magnet Stickers"
+msgstr "Reklamní magnetky na ledničku"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:20
+msgid "General Labels"
+msgstr "Obecné etikety"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:22
+msgid "Inkjet/Laser Labels 70x37mm"
+msgstr "Etikety na inkoustový/laserový tisk 70 × 37 mm"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:32
+#: ../templates/pearl-iso-templates.xml.h:62
+msgid "Self-adhesive labels"
+msgstr "Samolepicí etikety"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:34
+msgid "Universal Labels"
+msgstr "Univerzální etikety"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:4
+msgid "Address Labels (STAMPIT)"
+msgstr "Adresní etikety (STAMPIT)"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:10
+msgid "Business cards glossy, both sides printable"
+msgstr "Vizitky lesklé, oboustranně potisknutelné"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:12
+msgid "Business cards high glossy"
+msgstr "Vizitky s vysokým leskem"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:14
+msgid "Business cards punched"
+msgstr "Vizitky perforované"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:16
+msgid "Business cards punched dull"
+msgstr "Vizitky perforované matné"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:18
+msgid "Business cards punched glossy"
+msgstr "Vizitky perforované lesklé"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:30
+msgid "Floppy disk labels"
+msgstr "Etikety na diskety"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:32
+msgid "Foldable business cards"
+msgstr "Skládací vizitky"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:34
+msgid "Foldable business cards glossy/dull"
+msgstr "Skládací vizitky lesklé/matné"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:38
+msgid "Labels A5"
+msgstr "Etikety A5"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:40
+msgid "Labels A6"
+msgstr "Etikety A6"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:44
+msgid "Membership cards, both sides printable"
+msgstr "Členské karty, oboustranně potisknutelné"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:46
+msgid "Name plates"
+msgstr "Cedule"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:48
+msgid "Passport photo labels glossy"
+msgstr "Fotografické etikety na průkazy"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:52
+msgid "Photo labels semiglossy"
+msgstr "Fotografické etikety polomatné"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:56
+msgid "SD card labels"
+msgstr "Etikety na karty SD"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:58
+msgid "Self-adhesive film transparent"
+msgstr "Samolepicí průhledná fólie"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:60
+msgid "Self-adhesive film weatherproof"
+msgstr "Samolepicí vodě odolná fólie "
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:64
+msgid "Self-adhesive window film"
+msgstr "Samolepicí fólie na okno"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:14
 msgid "Correction and Cover-up Labels"
 msgstr "Opravné a přelepovací etikety"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:16
 msgid "File Back Labels"
 msgstr "Etikety do diáře"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:14
+#: ../templates/zweckform-iso-templates.xml.h:18
 msgid "Lever Arch File Labels"
 msgstr "Etikety na pákové pořadače"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:18
+#: ../templates/zweckform-iso-templates.xml.h:22
 msgid "Multi-purpose Stick+Lift Labels"
 msgstr "Víceúčelové odnímatelné etikety"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:20
+#: ../templates/zweckform-iso-templates.xml.h:24
 msgid "QSL-Karten Etiketten 70mm x 50,8mm"
 msgstr "Etikety na QSL karty 70mm × 50,8mm"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:22
+#: ../templates/zweckform-iso-templates.xml.h:26
 msgid "Rectangular Copier Labels"
 msgstr "Obdélníkové etikety do kopírky"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:26
+#: ../templates/zweckform-iso-templates.xml.h:30
 msgid "Video Labels (back)"
 msgstr "Video etikety (zadní strana)"
 
-#: ../data/desktop/glabels.desktop.in.h:1
-msgid "Create labels, business cards and media covers"
-msgstr "Vytvářejte etikety, vizitky a obaly médií"
+#~ msgid "Align _Horizontal"
+#~ msgstr "Zarovnat _vodorovně"
 
-#: ../data/desktop/glabels.desktop.in.h:2
-msgid "gLabels Label Designer"
-msgstr "Návrhář etiket gLabels"
+#~ msgid "Align _Vertical"
+#~ msgstr "Zarovnat _svisle"
 
-#: ../data/mime/glabels.keys.in.h:1 ../data/mime/glabels.xml.in.h:1
-msgid "gLabels Project File"
-msgstr "Projektový soubor gLabels"
+#~ msgid "Couldn't construct query"
+#~ msgstr "Nelze sestavit dotaz"
 
-#: ../barcode-0.98/compat/getopt.c:583
-#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: přepínač „%s“ je nejednoznačný\n"
+#~ msgid "Couldn't open addressbook."
+#~ msgstr "Nelze otevřít adresář."
 
-#: ../barcode-0.98/compat/getopt.c:607
-#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: přepínač „--%s“ neumožňuje argument\n"
+#~ msgid "Couldn't list available fields."
+#~ msgstr "Nelze vytvořit seznam dostupných polí."
 
-#: ../barcode-0.98/compat/getopt.c:612
-#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: přepínač „%c%s“ neumožňuje argument\n"
+#~ msgid "Couldn't get contacts."
+#~ msgstr "Nelze získat kontakt."
 
-#: ../barcode-0.98/compat/getopt.c:629
-#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s: přepínač „-%s“ vyžaduje argument\n"
+#~ msgid "Bad root node = \"%s\""
+#~ msgstr "Neplatný kořenový uzel = „%s“"
 
-#. --option
-#: ../barcode-0.98/compat/getopt.c:658
-#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: nerozpoznaný přepínač „--%s“\n"
+#~ msgid "bad node =  \"%s\""
+#~ msgstr "neplatný uzel = „%s“"
 
-#. +option or -option
-#: ../barcode-0.98/compat/getopt.c:662
-#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: nerozpoznaný přepínač „%c%s“\n"
+#~ msgid "xmlParseFile error"
+#~ msgstr "chyba xmlParseFile"
 
-#. 1003.2 specifies the format of this message.
-#: ../barcode-0.98/compat/getopt.c:688
-#, c-format
-msgid "%s: illegal option -- %c\n"
-msgstr "%s: nedovolený přepínač -- %c\n"
+#~ msgid "No document root"
+#~ msgstr "Schází kořen dokumentu"
 
-#: ../barcode-0.98/compat/getopt.c:691
-#, c-format
-msgid "%s: invalid option -- %c\n"
-msgstr "%s: neplatný přepínač -- %c\n"
+#~ msgid "Importing from glabels 0.1 format"
+#~ msgstr "Importuje se z formátu glabels verze 0.1"
 
-#: ../barcode-0.98/compat/getopt.c:727
-#, c-format
-msgid "%s: option requires an argument -- %c\n"
-msgstr "%s: přepínač vyžaduje argument -- %c\n"
+#~ msgid "Importing from glabels 0.4 format"
+#~ msgstr "Importuje se z formátu glabels verze 0.4"
+
+#~ msgid "Unknown glabels Namespace -- Using %s"
+#~ msgstr "Neznámý jmenný prostor pro gLabels -- použije se %s"
+
+#~ msgid "bad node in Document node =  \"%s\""
+#~ msgstr "neplatný uzel v uzlu Document = „%s“"
+
+#~ msgid "bad node in Data node =  \"%s\""
+#~ msgstr "neplatný uzel v uzlu Data = „%s“"
+
+#~ msgid "Unknown embedded file format: \"%s\""
+#~ msgstr "Neznámý formát vloženého souboru: „%s“"
+
+#~ msgid "Utf8 conversion error."
+#~ msgstr "Chyba při převodu UTF-8"
+
+#~ msgid "Problem saving xml file."
+#~ msgstr "Problém při ukládání do souboru xml."
+
+#~ msgid "Equivalent part (\"%s\") for \"%s\", not previously defined."
+#~ msgstr "Odpovídající část („%s“) pro „%s“ nebyla doposud definována."
+
+#~ msgid "Missing name or brand/part attributes."
+#~ msgstr "Schází atributy název nebo značka/produkt."
+
+#~ msgid "Unknown page size id \"%s\", trying as name"
+#~ msgstr "Neznámé ID velikosti papíru „%s“, zkusí se použít jako název"
+
+#~ msgid "Unknown page size id or name \"%s\""
+#~ msgstr "Neznámé ID nebo název velikosti stránky „%s“"
+
+#~ msgid "Forward references not supported."
+#~ msgstr "Dopředné odkazy nejsou podporovány."
+
+#~ msgid ""
+#~ "Missing required \"brand\" or \"part\" attribute, trying deprecated name."
+#~ msgstr ""
+#~ "Schází vyžadované atributy „značka“ nebo „produkt“, zkouší se použít "
+#~ "nepřípustný název."
+
+#~ msgid "Name attribute also missing."
+#~ msgstr "Schází také název atributu."
+
+#~ msgid "Mailing Labels-2 columns"
+#~ msgstr "Poštovní etikety - 2 sloupce"
+
+#~ msgid "Mailing Labels-3 columns"
+#~ msgstr "Poštovní etikety - 3 sloupce"
+
+#~ msgid "_Select Mode"
+#~ msgstr "Režim _výběru"
+
+#~ msgid "_Text"
+#~ msgstr "_Text"
+
+#~ msgid "_Line"
+#~ msgstr "Čár_a"
+
+#~ msgid "_Box"
+#~ msgstr "O_bdélník"
+
+#~ msgid "_Ellipse"
+#~ msgstr "_Elipsa"
+
+#~ msgid "_Image"
+#~ msgstr "Obrá_zek"
+
+#~ msgid "Bar_code"
+#~ msgstr "Čárový _kód"
+
+#~ msgid "_Merge Properties"
+#~ msgstr "Vlastnosti _slučování"
+
+#~ msgid "Object _Properties"
+#~ msgstr "Vlastnosti _objektu"
+
+#~ msgid "Bring to _Front"
+#~ msgstr "Přenést do_předu"
+
+#~ msgid "Send to _Back"
+#~ msgstr "Přenést do_zadu"
+
+#~ msgid "Rotate _Left"
+#~ msgstr "Otočit do_leva"
+
+#~ msgid "Rotate _Right"
+#~ msgstr "Otočit do_prava"
+
+#~ msgid "Flip _Horizontally"
+#~ msgstr "Překlopit _vodorovně"
+
+#~ msgid "Flip _Vertically"
+#~ msgstr "Překlopit _svisle"
+
+#~ msgid "_Lefts"
+#~ msgstr "Do_leva"
+
+#~ msgid "_Rights"
+#~ msgstr "Dop_rava"
+
+#~ msgid "_Centers"
+#~ msgstr "Na_střed"
+
+#~ msgid "_Tops"
+#~ msgstr "Na_horu"
+
+#~ msgid "Bottoms"
+#~ msgstr "_Dolů"
+
+#~ msgid "Label Ce_nter"
+#~ msgstr "Stře_d etikety"
+
+#~ msgid "Linked"
+#~ msgstr "Svázáno"
+
+#~ msgid "Not Linked"
+#~ msgstr "Nesvázáno"
 
+#~ msgid "glabels"
+#~ msgstr "glabels"
index bea2e2d7d3ec3ed0d20d65a0f9323b2cae6f949b..f97d12d64cea38f7bda83c6cbf513e3fec74537d 100644 (file)
--- a/po/da.po
+++ b/po/da.po
@@ -1,16 +1,23 @@
 # Danish translation for glabels.
-# Copyright (C) 2010 glabels's COPYRIGHT HOLDER.
+# Copyright (C) 2010 glabels og nedenstående oversættere.
 # This file is distributed under the same license as the glabels package.
 # Joe Hansen (joedalton2@yahoo.dk), 2010.
 #
 # https://sourceforge.net/tracker/?func=detail&aid=2955732&group_id=46122&atid=445116
+# ovenstående gav desværre ikke rigtig noget.
+#
+# dull -> mat
+# flyer (paper) -> folder
+# inserts -> indlæg
+# matrix -> matrice
+# name plate -> navneskilt
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: glabels glabels_2_2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-02-23 22:54+0100\n"
-"PO-Revision-Date: 2010-02-20 14:52+0000\n"
+"POT-Creation-Date: 2011-01-02 10:53+0100\n"
+"PO-Revision-Date: 2010-12-27 14:52+0000\n"
 "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
 "MIME-Version: 1.0\n"
@@ -18,1473 +25,1679 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/glabels.c:75 ../src/glabels-batch.c:70
-msgid "[FILE...]"
-msgstr "[FIL...]"
+#: ../src/bc-backends.c:81
+msgid "Built-in"
+msgstr "Indbygget"
 
-#: ../src/glabels.c:91
-msgid "- gLabels label designer"
-msgstr "- glabels etiketdesigner"
+#: ../src/bc-backends.c:101
+msgid "POSTNET (any)"
+msgstr "POSTNET (alle)"
 
-#: ../src/glabels-batch.c:54
-msgid "set output filename (default=\"output.pdf\")"
-msgstr "angiv filnavn for uddata (standard=output.pdf)"
+#: ../src/bc-backends.c:104
+msgid "POSTNET-5 (ZIP only)"
+msgstr "POSTNET-5 (kun ZIP)"
 
-#: ../src/glabels-batch.c:54 ../src/glabels-batch.c:68
-msgid "filename"
-msgstr "filnavn"
+#: ../src/bc-backends.c:107
+msgid "POSTNET-9 (ZIP+4)"
+msgstr "POSTNET-9 (ZIP+4)"
 
-#: ../src/glabels-batch.c:56
-msgid "number of sheets (default=1)"
-msgstr "antal ark (ark=1)"
+#: ../src/bc-backends.c:110
+msgid "POSTNET-11 (DPBC)"
+msgstr "POSTNET-11 (DPBC)"
 
-#: ../src/glabels-batch.c:56
-msgid "sheets"
-msgstr "ark"
+#: ../src/bc-backends.c:113
+msgid "CEPNET"
+msgstr "CEPNET"
 
-#: ../src/glabels-batch.c:58
-msgid "number of copies (default=1)"
-msgstr "antal kopier (standard=1)"
+#: ../src/bc-backends.c:116
+msgid "One Code"
+msgstr "1-kode"
 
-#: ../src/glabels-batch.c:58
-msgid "copies"
-msgstr "kopier"
+#: ../src/bc-backends.c:119 ../src/bc-backends.c:175 ../src/bc-backends.c:248
+msgid "Code 39"
+msgstr "Kode 39"
 
-#: ../src/glabels-batch.c:60
-msgid "first label on first sheet (default=1)"
-msgstr "første etiket på første ark (standard=1)"
+#: ../src/bc-backends.c:122 ../src/bc-backends.c:251
+msgid "Code 39 Extended"
+msgstr "Kode 39 udvidet"
 
-#: ../src/glabels-batch.c:60
-msgid "first"
-msgstr "første"
+#: ../src/bc-backends.c:127
+msgid "EAN (any)"
+msgstr "EAN (alle)"
 
-#: ../src/glabels-batch.c:62 ../data/glade/print-custom-widget.glade.h:6
-msgid "print outlines (to test printer alignment)"
-msgstr "udskriv omkreds (for at teste printeropsætning)"
+#: ../src/bc-backends.c:130
+msgid "EAN-8"
+msgstr "EAN-8"
 
-#: ../src/glabels-batch.c:64 ../data/glade/print-custom-widget.glade.h:5
-msgid "print in reverse (i.e. a mirror image)"
-msgstr "udskriv omvendt (det vil sige et spejlbillede)"
+#: ../src/bc-backends.c:133
+msgid "EAN-8 +2"
+msgstr "EAN-8 +2"
 
-# tilføjet af joe: crop marks: Marks that show where a publication page will be trimmed
-#: ../src/glabels-batch.c:66 ../data/glade/print-custom-widget.glade.h:4
-msgid "print crop marks"
-msgstr "udskriv beskæringsmærker"
+#: ../src/bc-backends.c:136
+msgid "EAN-8 +5"
+msgstr "EAN-8 +5"
 
-#: ../src/glabels-batch.c:68
-msgid "input file for merging"
-msgstr "inddatafil for sammenflet"
+#: ../src/bc-backends.c:139
+msgid "EAN-13"
+msgstr "EAN-13"
 
-#: ../src/glabels-batch.c:96
-msgid "- batch process gLabels label files"
-msgstr "- kør gLabels' etiketfiler i skriptproces"
+#: ../src/bc-backends.c:142
+msgid "EAN-13 +2"
+msgstr "EAN-13 +2"
 
-#: ../src/glabels-batch.c:142
-#, c-format
-msgid "cannot perform document merge with glabels file %s\n"
-msgstr "kan ikke udføre dokumentsammenfletning med glabelsfil %s\n"
+#: ../src/bc-backends.c:145
+msgid "EAN-13 +5"
+msgstr "EAN-13 +5"
 
-#: ../src/glabels-batch.c:164
-#, c-format
-msgid "cannot open glabels file %s\n"
-msgstr "kan ikke åbne glabelsfil %s\n"
+#: ../src/bc-backends.c:148
+msgid "UPC (UPC-A or UPC-E)"
+msgstr "UPC (UPC-A eller UPC-E)"
 
-#: ../src/window.c:259
-msgid "(none) - gLabels"
-msgstr "(ingen) - gLabels"
+#: ../src/bc-backends.c:151 ../src/bc-backends.c:395
+msgid "UPC-A"
+msgstr "UPC-A"
 
-#: ../src/window.c:432
-msgid "(modified)"
-msgstr "(ændret)"
+#: ../src/bc-backends.c:154
+msgid "UPC-A +2"
+msgstr "UPC-A +2"
 
-#: ../src/stock.c:72
-msgid "_Select Mode"
-msgstr "_Vælg tilstand"
+#: ../src/bc-backends.c:157
+msgid "UPC-A +5"
+msgstr "UPC-A +5"
 
-#: ../src/stock.c:73
-msgid "_Text"
-msgstr "_Tekst"
+#: ../src/bc-backends.c:160 ../src/bc-backends.c:398
+msgid "UPC-E"
+msgstr "UPC-E"
 
-#: ../src/stock.c:74
-msgid "_Line"
-msgstr "_Linje"
+#: ../src/bc-backends.c:163
+msgid "UPC-E +2"
+msgstr "UPC-E +2"
 
-#: ../src/stock.c:75
-msgid "_Box"
-msgstr "_Boks"
+#: ../src/bc-backends.c:166
+msgid "UPC-E +5"
+msgstr "UPC-E +5"
 
-#: ../src/stock.c:76
-msgid "_Ellipse"
-msgstr "_Ellipse"
+#: ../src/bc-backends.c:169 ../src/bc-backends.c:332
+msgid "ISBN"
+msgstr "ISBN"
 
-#: ../src/stock.c:77
-msgid "_Image"
-msgstr "_Billede"
+#: ../src/bc-backends.c:172
+msgid "ISBN +5"
+msgstr "ISBN +5"
 
-#: ../src/stock.c:78
-msgid "Bar_code"
-msgstr "Streg_kode"
+#: ../src/bc-backends.c:178 ../src/bc-backends.c:260
+msgid "Code 128"
+msgstr "Kode 128"
 
-# eller flet egenskaber
-#: ../src/stock.c:79
-msgid "_Merge Properties"
-msgstr "_Sammenføj egenskaber"
+#: ../src/bc-backends.c:181
+msgid "Code 128C"
+msgstr "Kode 128C"
 
-#: ../src/stock.c:80
-msgid "Object _Properties"
-msgstr "Objekt_egenskaber"
+#: ../src/bc-backends.c:184
+msgid "Code 128B"
+msgstr "Kode 128B"
 
-#: ../src/stock.c:81
-msgid "Bring to _Front"
-msgstr "Hent _frem"
+# joe kom.: to provide blank leaves in (a book) for notes or written comments.
+# kender ikke et dansk udtryk for det her. indflyttet, eller interfolierede
+#: ../src/bc-backends.c:187 ../src/bc-backends.c:329
+msgid "Interleaved 2 of 5"
+msgstr "Interfolierede 2 af 5"
 
-#: ../src/stock.c:82
-msgid "Send to _Back"
-msgstr "Send til_bage"
+# hvad er dette. Codabar is a linear barcode symbology developed in 1972 by Pitney Bowes Corp.
+#: ../src/bc-backends.c:190 ../src/bc-backends.c:224
+msgid "Codabar"
+msgstr "Codabar"
 
-#: ../src/stock.c:83
-msgid "Rotate _Left"
-msgstr "Roter til _venstre"
+#: ../src/bc-backends.c:193
+msgid "MSI"
+msgstr "MSI"
 
-#: ../src/stock.c:84
-msgid "Rotate _Right"
-msgstr "Roter til _højre"
+# navn? The Plessey Company plc was a British-based international electronics, defence and telecommunications company.
+#: ../src/bc-backends.c:196
+msgid "Plessey"
+msgstr "Plessey"
 
-#: ../src/stock.c:85
-msgid "Flip _Horizontally"
-msgstr "Vend _vandret"
+#: ../src/bc-backends.c:199 ../src/bc-backends.c:257
+msgid "Code 93"
+msgstr "Kode 93"
 
-#: ../src/stock.c:86
-msgid "Flip _Vertically"
-msgstr "Vend _lodret"
+#: ../src/bc-backends.c:206
+msgid "Australia Post Standard"
+msgstr "Australsk poststandard"
 
-# godt nok i tvivl her
-#: ../src/stock.c:87
-msgid "_Lefts"
-msgstr "_Venstredrejninger"
+#: ../src/bc-backends.c:209
+msgid "Australia Post Reply Paid"
+msgstr "Australsk post - svar betalt"
 
-# godt nok i tvivl her
-#: ../src/stock.c:88
-msgid "_Rights"
-msgstr "_Højredrejninger"
+#: ../src/bc-backends.c:212
+msgid "Australia Post Route Code"
+msgstr "Australsk post - rutekode"
 
-#: ../src/stock.c:89
-msgid "_Centers"
-msgstr "_Centrum"
+#: ../src/bc-backends.c:215
+msgid "Australia Post Redirect"
+msgstr "Australsk post - videresendelse"
 
-#: ../src/stock.c:90
-msgid "_Tops"
-msgstr "_Øverste"
+#: ../src/bc-backends.c:218
+msgid "Aztec Code"
+msgstr "Aztesk kode"
 
-#: ../src/stock.c:91
-msgid "Bottoms"
-msgstr "Nederste kanter"
+#: ../src/bc-backends.c:221
+msgid "Aztec Rune"
+msgstr "Aztesk rune"
 
-#: ../src/stock.c:92
-msgid "Centers"
-msgstr "Centrum"
+#: ../src/bc-backends.c:227
+msgid "Code One"
+msgstr "Kode en"
 
-#: ../src/stock.c:93 ../src/stock.c:94
-msgid "Label Ce_nter"
-msgstr "Etiketce_ntrum"
+#: ../src/bc-backends.c:230
+msgid "Code 11"
+msgstr "Kode 11"
 
-#: ../src/stock.c:95 ../data/glade/property-bar.glade.h:3
-msgid "Fill color"
-msgstr "Fyld farve"
+#: ../src/bc-backends.c:233
+msgid "Code 16K"
+msgstr "Kode 16K"
 
-#: ../src/stock.c:96 ../data/glade/property-bar.glade.h:8
-msgid "Line color"
-msgstr "Linjefarve"
+#: ../src/bc-backends.c:236
+msgid "Code 2 of 5 Matrix"
+msgstr "Kode 2 af 5 matrice"
 
-#: ../src/stock.c:97 ../src/stock.c:99
-msgid "Linked"
-msgstr "Forbundet"
+#: ../src/bc-backends.c:239
+msgid "Code 2 of 5 IATA"
+msgstr "Kode 2 af 5 IATA"
 
-#: ../src/stock.c:98 ../src/stock.c:100
-msgid "Not Linked"
-msgstr "Ikke forbundet"
+#: ../src/bc-backends.c:242
+msgid "Code 2 of 5 Data Logic"
+msgstr "Kode 2 af 5 datalogik"
 
-#. Menu entries.
-#: ../src/ui.c:93
-msgid "_File"
-msgstr "_Fil"
+#: ../src/bc-backends.c:245
+msgid "Code 32 (Italian Pharmacode)"
+msgstr "Kode 32 (Italiens pharmakode)"
 
-#: ../src/ui.c:94
-msgid "Open Recent _Files"
-msgstr "Åbn seneste _filer"
+#: ../src/bc-backends.c:254
+msgid "Code 49"
+msgstr "Kode 49"
 
-#: ../src/ui.c:95
-msgid "_Edit"
-msgstr "_Rediger"
+#: ../src/bc-backends.c:263
+msgid "Code 128 (Mode C supression)"
+msgstr "Kode 128 (tilstand c-undertrykkelse)"
 
-#: ../src/ui.c:96
-msgid "_View"
-msgstr "_Vis"
+#: ../src/bc-backends.c:266
+msgid "DAFT Code"
+msgstr "DAFT-kode"
 
-#: ../src/ui.c:97
-msgid "Customize Main Toolbar"
-msgstr "Tilpas hovedværktøjsbjælke"
+#: ../src/bc-backends.c:269
+msgid "Data Matrix"
+msgstr "Datamatrice"
 
-#: ../src/ui.c:98
-msgid "Customize Drawing Toolbar"
-msgstr "Tilpas tegneværktøjsbjælke"
+#: ../src/bc-backends.c:272
+msgid "Deutsche Post Leitcode"
+msgstr "Tysk post leitkode"
 
-#: ../src/ui.c:99
-msgid "Customize Properties Toolbar"
-msgstr "Tilpas værktøjsbjælke for egenskaber"
+#: ../src/bc-backends.c:275
+msgid "Deutsche Post Identcode"
+msgstr "Tysk post identkode"
 
-#: ../src/ui.c:100
-msgid "_Objects"
-msgstr "_Objekter"
+#: ../src/bc-backends.c:278
+msgid "Dutch Post KIX Code"
+msgstr "Hollandsk post KIX-kode"
 
-#: ../src/ui.c:101
-msgid "_Create"
-msgstr "_Opret"
+#: ../src/bc-backends.c:281
+msgid "EAN"
+msgstr "EAN"
 
-#: ../src/ui.c:102
-msgid "_Order"
-msgstr "_Orden"
+#: ../src/bc-backends.c:284
+msgid "Grid Matrix"
+msgstr "Gittermatrice"
 
-#: ../src/ui.c:103
-msgid "_Rotate/Flip"
-msgstr "_Roter/vend"
+#: ../src/bc-backends.c:287
+msgid "GS1-128"
+msgstr "GS1-128"
 
-#: ../src/ui.c:104
-msgid "Align _Horizontal"
-msgstr "Juster _vandret"
+#: ../src/bc-backends.c:290
+msgid "GS1 DataBar-14"
+msgstr "GS1 DataBar-14"
 
-#: ../src/ui.c:105
-msgid "Align _Vertical"
-msgstr "Juster _lodret"
+#: ../src/bc-backends.c:299
+msgid "GS1 DataBar-14 Stacked"
+msgstr "GS1 DataBar-14 stablet"
 
-#: ../src/ui.c:106
-msgid "_Help"
-msgstr "_Hjælp"
+#: ../src/bc-backends.c:302
+msgid "GS1 DataBar-14 Stacked Omni."
+msgstr "GS1 DataBar-14 stablet omni."
 
-#. Popup entries.
-#: ../src/ui.c:109 ../src/ui.c:110
-msgid "Context Menu"
-msgstr "Kontekstmenu"
+#: ../src/bc-backends.c:305
+msgid "GS1 DataBar Extended Stacked"
+msgstr "GS1 Databar udvidet stablet"
 
-#: ../src/ui.c:115
-msgid "_New"
-msgstr "_Ny"
+#: ../src/bc-backends.c:308
+msgid "HIBC Code 128"
+msgstr "HIBC kode 128"
 
-#: ../src/ui.c:117
-msgid "Create a new file"
-msgstr "Opret en ny fil"
+#: ../src/bc-backends.c:311
+msgid "HIBC Code 39"
+msgstr "HIBC kode 39"
 
-#: ../src/ui.c:122
-msgid "_Open..."
-msgstr "_Åbn..."
+#: ../src/bc-backends.c:314
+msgid "HIBC Data Matrix"
+msgstr "HIBC-datamatrice"
 
-#: ../src/ui.c:124
-msgid "Open a file"
-msgstr "Åbn en fil"
+#: ../src/bc-backends.c:317
+msgid "HIBC QR Code"
+msgstr "HIBC QR-kode"
 
-#: ../src/ui.c:129
-msgid "_Save"
-msgstr "_Gem"
+#: ../src/bc-backends.c:320
+msgid "HIBC PDF417"
+msgstr "HIBC PDF417"
 
-#: ../src/ui.c:131
-msgid "Save current file"
-msgstr "Gem aktuel fil"
+#: ../src/bc-backends.c:323
+msgid "HIBC Micro PDF417"
+msgstr "HIBC Micro PDF417"
 
-#: ../src/ui.c:136
-msgid "Save _As..."
-msgstr "Gem _som..."
+#: ../src/bc-backends.c:326
+msgid "HIBC Aztec Code"
+msgstr "HIBC aztesk kode"
 
-#: ../src/ui.c:138
-msgid "Save the current file to a different name"
-msgstr "Gem den aktuelle fil med et andet navn"
+#: ../src/bc-backends.c:335
+msgid "ITF-14"
+msgstr "ITF-14"
 
-#: ../src/ui.c:143
-msgid "_Print..."
-msgstr "_Udskriv..."
+#: ../src/bc-backends.c:338
+msgid "Japanese Postal"
+msgstr "Japansk post"
 
-#: ../src/ui.c:145
-msgid "Print the current file"
-msgstr "Udskriv den aktuelle fil"
+#: ../src/bc-backends.c:341
+msgid "Korean Postal"
+msgstr "Koreansk post"
 
-#: ../src/ui.c:150
-msgid "Properties..."
-msgstr "Egenskaber..."
+#: ../src/bc-backends.c:344
+msgid "LOGMARS"
+msgstr "LOGMARS"
 
-#: ../src/ui.c:152
-msgid "Modify document properties"
-msgstr "Ændre dokumentegenskaber"
+#: ../src/bc-backends.c:347
+msgid "Maxicode"
+msgstr "Maxikode"
 
-#: ../src/ui.c:157
-msgid "Template _Designer..."
-msgstr "Skabelon_designer..."
+#: ../src/bc-backends.c:350
+msgid "Micro PDF417"
+msgstr "Micro PDF417"
 
-#: ../src/ui.c:159
-msgid "Create a custom template"
-msgstr "Opret en tilpasset skabelon"
+#: ../src/bc-backends.c:353
+msgid "Micro QR Code"
+msgstr "Micro QR-kode"
 
-#: ../src/ui.c:164
-msgid "_Close"
-msgstr "_Luk"
+# navn? The Plessey Company plc was a British-based international electronics, defence and telecommunications company.
+#: ../src/bc-backends.c:356
+msgid "MSI Plessey"
+msgstr "MSI Plessey"
 
-#: ../src/ui.c:166
-msgid "Close the current file"
-msgstr "Luk den nuværende fil"
+#: ../src/bc-backends.c:359
+msgid "NVE-18"
+msgstr "NVE-18"
 
-#: ../src/ui.c:171
-msgid "_Quit"
-msgstr "_Afslut"
+#: ../src/bc-backends.c:362
+msgid "PDF417"
+msgstr "PDF417"
 
-#: ../src/ui.c:173
-msgid "Quit the program"
-msgstr "Afslut programmet"
+#: ../src/bc-backends.c:365
+msgid "PDF417 Truncated"
+msgstr "PDF417 afkortet"
 
-#: ../src/ui.c:180
-msgid "Cut"
-msgstr "Klip"
+#: ../src/bc-backends.c:368
+msgid "PLANET"
+msgstr "PLANET"
 
-#: ../src/ui.c:182
-msgid "Cut the selection"
-msgstr "Klip markeringen ud"
+#: ../src/bc-backends.c:371
+msgid "PostNet"
+msgstr "PostNet"
 
-#: ../src/ui.c:187
-msgid "Copy"
-msgstr "Kopier"
+#: ../src/bc-backends.c:374
+msgid "Pharmacode"
+msgstr "Pharmakode"
 
-#: ../src/ui.c:189
-msgid "Copy the selection"
-msgstr "Kopier markeringen"
+#: ../src/bc-backends.c:377
+msgid "Pharmacode 2-track"
+msgstr "Pharmakode 2-spor"
 
-#: ../src/ui.c:194
-msgid "Paste"
-msgstr "Indsæt"
+#: ../src/bc-backends.c:380
+msgid "Pharmazentral Nummer (PZN)"
+msgstr "Pharmazentral nummer (PZN)"
 
-#: ../src/ui.c:196
-msgid "Paste the clipboard"
-msgstr "Indsæt fra udklipsholderen"
+#: ../src/bc-backends.c:383
+msgid "QR Code"
+msgstr "QR-kode"
 
-#: ../src/ui.c:201
-msgid "Delete"
-msgstr "Slet"
+#: ../src/bc-backends.c:386
+msgid "Royal Mail 4-State"
+msgstr "Kongelig post 4-stat"
 
-#: ../src/ui.c:203
-msgid "Delete the selected objects"
-msgstr "Slet de valgte objekter"
+#: ../src/bc-backends.c:389
+msgid "Telepen"
+msgstr "Telepen"
 
-#: ../src/ui.c:208
-msgid "Select All"
-msgstr "Vælg alle"
+#: ../src/bc-backends.c:392
+msgid "Telepen Numeric"
+msgstr "Telepen numerisk"
 
-#: ../src/ui.c:210
-msgid "Select all objects"
-msgstr "Vælg alle objekter"
+#: ../src/bc-backends.c:401
+msgid "USPS One Code"
+msgstr "USPS 1-kode"
 
-#: ../src/ui.c:215
-msgid "Un-select All"
-msgstr "Fravælg alle"
+# navn? The Plessey Company plc was a British-based international electronics, defence and telecommunications company.
+#: ../src/bc-backends.c:404
+msgid "UK Plessey"
+msgstr "UK Plessey"
 
-#: ../src/ui.c:217
-msgid "Remove all selections"
-msgstr "Fjern alle markeringer"
+#: ../src/bc-backends.c:411
+msgid "IEC16022 (DataMatrix)"
+msgstr "IEC16022 (Datamatrice)"
 
-#: ../src/ui.c:222
-msgid "Preferences"
-msgstr "Indstillinger"
+#: ../src/bc-backends.c:418
+msgid "IEC18004 (QRCode)"
+msgstr "IEC18004 (QRCode)"
 
-#: ../src/ui.c:224
-msgid "Configure the application"
-msgstr "Konfigurere programmet"
+#: ../src/color-combo-button.c:198 ../src/color-combo.c:178
+msgid "Default Color"
+msgstr "Standardfarve"
 
-#: ../src/ui.c:231
-msgid "Zoom in"
-msgstr "Zoom ind"
+#: ../src/color-combo-menu.c:83
+msgid "Dark Red"
+msgstr "Mørkerød"
 
-#: ../src/ui.c:233
-msgid "Increase magnification"
-msgstr "Øg forstørrelse"
+#: ../src/color-combo-menu.c:84
+msgid "Brown"
+msgstr "Brun"
 
-#: ../src/ui.c:238
-msgid "Zoom out"
-msgstr "Zoom ud"
+#: ../src/color-combo-menu.c:85
+msgid "Dark Goldenrod"
+msgstr "Mørkegyldenris"
 
-#: ../src/ui.c:240
-msgid "Decrease magnification"
-msgstr "Formindsk forstørrelse"
+#: ../src/color-combo-menu.c:86
+msgid "Dark Green"
+msgstr "Mørkegrøn"
 
-#: ../src/ui.c:245
-msgid "Zoom 1 to 1"
-msgstr "Zoom 1 til 1"
+#: ../src/color-combo-menu.c:87
+msgid "Dark Cyan"
+msgstr "Mørkecyan"
 
-#: ../src/ui.c:247
-msgid "Restore scale to 100%"
-msgstr "Gendan skala til 100 %"
+#: ../src/color-combo-menu.c:88
+msgid "Navy Blue"
+msgstr "Marineblå"
 
-#: ../src/ui.c:252
-msgid "Zoom to fit"
-msgstr "Zoomtilpasning"
+#: ../src/color-combo-menu.c:89
+msgid "Dark Violet"
+msgstr "Mørkeviolet"
 
-#: ../src/ui.c:254
-msgid "Set scale to fit window"
-msgstr "Angiv skala der passer til vinduet"
+#: ../src/color-combo-menu.c:91
+msgid "Red"
+msgstr "Rød"
 
-#: ../src/ui.c:261
-msgid "Select Mode"
-msgstr "Vælg tilstand"
+#: ../src/color-combo-menu.c:92
+msgid "Orange"
+msgstr "Orange"
 
-#: ../src/ui.c:263
-msgid "Select, move and modify objects"
-msgstr "Vælg, flyt eller ændre objekter"
+#: ../src/color-combo-menu.c:93
+msgid "Dark Yellow"
+msgstr "Mørkegul"
 
-#: ../src/ui.c:268 ../src/view-text.c:494
-#: ../data/glade/object-editor.glade.h:32
-msgid "Text"
-msgstr "Tekst"
+#: ../src/color-combo-menu.c:94
+msgid "Medium green"
+msgstr "Mellemgrøn"
 
-#: ../src/ui.c:270
-msgid "Create text object"
-msgstr "Opret tekstobjekt"
-
-#: ../src/ui.c:275
-msgid "Box"
-msgstr "Boks"
-
-#: ../src/ui.c:277
-msgid "Create box/rectangle object"
-msgstr "Opret boks-/rektangelobjekt"
-
-#: ../src/ui.c:282 ../data/glade/object-editor.glade.h:20
-msgid "Line"
-msgstr "Linje"
-
-#: ../src/ui.c:284
-msgid "Create line object"
-msgstr "Opret linjeobjekt"
-
-#: ../src/ui.c:289
-msgid "Ellipse"
-msgstr "Ellipse"
-
-#: ../src/ui.c:291
-msgid "Create ellipse/circle object"
-msgstr "Opret ellipse-/cirkelobjekt"
-
-#: ../src/ui.c:296 ../data/glade/object-editor.glade.h:16
-msgid "Image"
-msgstr "Billede"
-
-#: ../src/ui.c:298
-msgid "Create image object"
-msgstr "Opret billedeobjekt"
-
-#: ../src/ui.c:303
-msgid "Barcode"
-msgstr "Stregkode"
-
-#: ../src/ui.c:305
-msgid "Create barcode object"
-msgstr "Opret stregkodeobjekt"
-
-#: ../src/ui.c:310
-msgid "Bring to front"
-msgstr "Hent frem"
-
-#: ../src/ui.c:312
-msgid "Raise object to top"
-msgstr "Hæv objekt til toppen"
-
-#: ../src/ui.c:317
-msgid "Send to back"
-msgstr "Send tilbage"
-
-#: ../src/ui.c:319
-msgid "Lower object to bottom"
-msgstr "Sænk objekt til bunden"
-
-#: ../src/ui.c:324
-msgid "Rotate left"
-msgstr "Roter mod venstre"
-
-#: ../src/ui.c:326
-msgid "Rotate object 90 degrees counter-clockwise"
-msgstr "Roter objekt 90 grader mod uret"
-
-#: ../src/ui.c:331
-msgid "Rotate right"
-msgstr "Roter til højre"
-
-#: ../src/ui.c:333
-msgid "Rotate object 90 degrees clockwise"
-msgstr "Roter objekt 90 grader med uret"
-
-#: ../src/ui.c:338
-msgid "Flip horizontally"
-msgstr "Vend vandret"
-
-#: ../src/ui.c:340
-msgid "Flip object horizontally"
-msgstr "Vend objekt vandret"
-
-#: ../src/ui.c:345
-msgid "Flip vertically"
-msgstr "Vend lodret"
-
-#: ../src/ui.c:347
-msgid "Flip object vertically"
-msgstr "Vend objekt lodret"
-
-#: ../src/ui.c:352
-msgid "Align left"
-msgstr "Juster venstre"
-
-#: ../src/ui.c:354
-msgid "Align objects to left edges"
-msgstr "Juster objekter til de venstre hjørner"
-
-#: ../src/ui.c:359
-msgid "Align right"
-msgstr "Juster højre"
-
-#: ../src/ui.c:361
-msgid "Align objects to right edges"
-msgstr "Juster objekter til højre hjørner"
-
-#: ../src/ui.c:366
-msgid "Align horizontal center"
-msgstr "Juster vandret centrum"
-
-#: ../src/ui.c:368
-msgid "Align objects to horizontal centers"
-msgstr "Juster objekter til vandrette centrum"
-
-#: ../src/ui.c:373
-msgid "Align tops"
-msgstr "Juster øverst"
-
-#: ../src/ui.c:375
-msgid "Align objects to top edges"
-msgstr "Juster objekter til øverste hjørner"
-
-#: ../src/ui.c:380
-msgid "Align bottoms"
-msgstr "Juster nederste kanter"
-
-#: ../src/ui.c:382
-msgid "Align objects to bottom edges"
-msgstr "Juster objekter til den nederste kants hjørner"
-
-# openoffice: juster lodret centreret
-#: ../src/ui.c:387
-msgid "Align vertical center"
-msgstr "Juster lodret centreret"
-
-#: ../src/ui.c:389
-msgid "Align objects to vertical centers"
-msgstr "Juster objekter til lodret centreret"
-
-#: ../src/ui.c:394
-msgid "Center horizontally"
-msgstr "Centrer vandret"
-
-#: ../src/ui.c:396
-msgid "Center objects to horizontal label center"
-msgstr "Centrer objekter til vandret etiketcentrum"
-
-#: ../src/ui.c:401
-msgid "Center vertically"
-msgstr "Centrer lodret"
+#: ../src/color-combo-menu.c:95
+msgid "Turquoise"
+msgstr "Turkis"
 
-#: ../src/ui.c:403
-msgid "Center objects to vertical label center"
-msgstr "Centrer objekter til lodret etiketcentrum"
-
-#: ../src/ui.c:408
-msgid "Merge properties"
-msgstr "Sammenføj egenskaber"
-
-#: ../src/ui.c:410
-msgid "Edit merge properties"
-msgstr "Rediger sammenføjningsegenskaber"
-
-#: ../src/ui.c:417
-msgid "Contents"
-msgstr "Indhold"
-
-#: ../src/ui.c:419
-msgid "Open glabels manual"
-msgstr "Åbn glabels' manual"
-
-#: ../src/ui.c:424
-msgid "About..."
-msgstr "Om..."
-
-#: ../src/ui.c:426
-msgid "About glabels"
-msgstr "Om glabels"
+#: ../src/color-combo-menu.c:96
+msgid "Blue"
+msgstr "Blå"
 
-#: ../src/ui.c:436
-msgid "Property toolbar"
-msgstr "Egenskabsværktøjsbjælke"
+#: ../src/color-combo-menu.c:97
+msgid "Purple"
+msgstr "Purple"
 
-#: ../src/ui.c:438
-msgid "Change the visibility of the property toolbar in the current window"
-msgstr "Ændr synligheden på egenskabsværktøjsbjælken i det nuværende vindue"
+#: ../src/color-combo-menu.c:99
+msgid "Salmon"
+msgstr "Laks"
 
-#: ../src/ui.c:444 ../src/ui.c:489 ../src/ui.c:497
-msgid "Show tooltips"
-msgstr "Vis værktøjsfif"
+#: ../src/color-combo-menu.c:100
+msgid "Gold"
+msgstr "Guld"
 
-#: ../src/ui.c:446
-msgid "Show tooltips for property toolbar"
-msgstr "Vis værktøjsfif for egenskabsværktøjsbjælke"
+#: ../src/color-combo-menu.c:101
+msgid "Yellow"
+msgstr "Gul"
 
-#: ../src/ui.c:452
-msgid "Grid"
-msgstr "Gitter"
+#: ../src/color-combo-menu.c:102
+msgid "Green"
+msgstr "Grøn"
 
-#: ../src/ui.c:454
-msgid "Change the visibility of the grid in the current window"
-msgstr "Ændr synligheden på gitteret i det nuværende vindue"
+#: ../src/color-combo-menu.c:103
+msgid "Cyan"
+msgstr "Cyan"
 
-#: ../src/ui.c:460
-msgid "Markup"
-msgstr "Opmærkning"
+#: ../src/color-combo-menu.c:104
+msgid "SkyBlue"
+msgstr "Himmelblå"
 
-#: ../src/ui.c:462
-msgid "Change the visibility of markup lines in the current window"
-msgstr "Ændr synligheden på opmærkningslinjerne i det nuværende vindue"
+#: ../src/color-combo-menu.c:105
+msgid "Violet"
+msgstr "Violet"
 
-#: ../src/ui.c:473
-msgid "Main toolbar"
-msgstr "Hovedværktøjsbjælke"
+#: ../src/color-combo-menu.c:107
+msgid "Pink"
+msgstr "Lilla"
 
-#: ../src/ui.c:475
-msgid "Change the visibility of the main toolbar in the current window"
-msgstr "Ændr synligheden på hovedværktøjsbjælken i det nuværende vindue"
+#: ../src/color-combo-menu.c:108
+msgid "Khaki"
+msgstr "Khaki"
 
-#: ../src/ui.c:481
-msgid "Drawing toolbar"
-msgstr "Tegneværktøjsbjælke"
+#: ../src/color-combo-menu.c:109
+msgid "Light Yellow"
+msgstr "Lysegul"
 
-#: ../src/ui.c:483
-msgid "Change the visibility of the drawing toolbar in the current window"
-msgstr "Ændr synligheden på tegneværktøjsbjælken i det nuværende vindue"
+#: ../src/color-combo-menu.c:110
+msgid "Light Green"
+msgstr "Lysegrøn"
 
-#: ../src/ui.c:491
-msgid "Show tooltips for main toolbar"
-msgstr "Vis værktøjsfif for hovedværktøjsbjælken"
+#: ../src/color-combo-menu.c:111
+msgid "Light Cyan"
+msgstr "Lys cyan"
 
-#: ../src/ui.c:499
-msgid "Show tooltips for drawing toolbar"
-msgstr "Vis værktøjsfif for tegneværktøjsbjælken"
+#: ../src/color-combo-menu.c:112
+msgid "Slate Gray"
+msgstr "Gråt med azurblå"
 
-#: ../src/ui-property-bar.c:1232 ../src/object-editor.c:587
-#: ../src/object-editor.c:593
-msgid "Default"
-msgstr "Standard"
+#: ../src/color-combo-menu.c:113
+msgid "Thistle"
+msgstr "Tidsel"
 
-#: ../src/ui-property-bar.c:1239 ../src/object-editor.c:599
-msgid "No line"
-msgstr "Ingen linje"
+#: ../src/color-combo-menu.c:115
+msgid "White"
+msgstr "Hvid"
 
-#: ../src/ui-property-bar.c:1247 ../src/object-editor.c:606
-msgid "No fill"
-msgstr "Ingen fyld"
+#: ../src/color-combo-menu.c:117
+#, no-c-format
+msgid "10% Gray"
+msgstr "10 % grå"
 
-#: ../src/ui-sidebar.c:152
-msgid "Object properties"
-msgstr "Objektegenskaber"
+#: ../src/color-combo-menu.c:119
+#, no-c-format
+msgid "25% Gray"
+msgstr "25 % grå"
 
-#: ../src/ui-commands.c:1084
-msgid "Glabels includes contributions from:"
-msgstr "Glabels har modtaget bidrag fra:"
+#: ../src/color-combo-menu.c:121
+#, no-c-format
+msgid "40% Gray"
+msgstr "40 % grå"
 
-#: ../src/ui-commands.c:1090
-msgid "See the file AUTHORS for additional credits,"
-msgstr "Se filen AUTHORS for yderligere oversigt over bidragydere,"
+#: ../src/color-combo-menu.c:123
+#, no-c-format
+msgid "50% Gray"
+msgstr "50 % grå"
 
-#: ../src/ui-commands.c:1091
-msgid "or visit http://glabels.sourceforge.net/"
-msgstr "eller besøg http://glabels.sourceforge.net/"
+#: ../src/color-combo-menu.c:125
+#, no-c-format
+msgid "60% Gray"
+msgstr "60 % grå"
 
-#: ../src/ui-commands.c:1103
-msgid "A label and business card creation program.\n"
-msgstr "Et program til oprettelse af etiketter og forretningskort.\n"
+#: ../src/color-combo-menu.c:126
+msgid "Black"
+msgstr "Sort"
 
-#: ../src/ui-commands.c:1107
-msgid "translator-credits"
-msgstr ""
-"Joe Hansen, 2010.\n"
-"\n"
-"Dansk-gruppen <dansk@dansk-gruppen.dk>\n"
-"Mere info: http://www.dansk-gruppen.dk"
+#: ../src/color-combo-menu.c:254 ../src/color-combo-menu.c:373
+msgid "Custom Color"
+msgstr "Tilpasset farve"
 
-#: ../src/ui-commands.c:1110
-msgid ""
-"Glabels is free software; you can redistribute it and/or modify it\n"
-"under the terms of the GNU General Public License as published by\n"
-"the Free Software Foundation; either version 2 of the License, or\n"
-"(at your option) any later version.\n"
-"\n"
-"This program is distributed in the hope that it will be useful, but\n"
-"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See\n"
-"the GNU General Public License for more details.\n"
-msgstr ""
-"Glabels er er fri software. Du kan redistribuere og/eller modificere\n"
-"det under de betingelser som er angivet i GNU General Public License,\n"
-"som er udgivet af Free Software Foundation. Enten version 2 af licensen\n"
-"eller (efter eget valg) enhver senere version.\n"
-"\n"
-"Dette program distribueres i håb om at det vil vise sig nyttigt, men\n"
-"UDEN NOGEN FORM FOR GARANTI, uden selv de underforståede garantier\n"
-"omkring SALGBARHED eller EGNETHED TIL ET BESTEMT FORMÅL. Yderligere\n"
-"detaljer kan læses i GNU General Public License.\n"
+#: ../src/color-combo-menu.c:319
+#, c-format
+msgid "Custom Color #%u"
+msgstr "Tilpasset farve #%u"
 
-#: ../src/ui-commands.c:1136
-msgid "glabels"
-msgstr "glabels"
+#: ../src/critical-error-handler.c:70
+msgid "gLabels Fatal Error!"
+msgstr "gLabels - fatal fejl!"
 
-#: ../src/file.c:91
+#: ../src/file.c:84
 msgid "New Label or Card"
 msgstr "Ny etiket eller kort"
 
-#: ../src/file.c:191
+#: ../src/file.c:175 ../src/label.c:601 ../src/label.c:645
 msgid "Label properties"
 msgstr "Etiketegenskaber"
 
-#: ../src/file.c:292 ../src/file.c:578
+#: ../src/file.c:267 ../src/file.c:557
 msgid "All files"
 msgstr "Alle filer"
 
-#: ../src/file.c:297 ../src/file.c:583
+#: ../src/file.c:272 ../src/file.c:562
 msgid "gLabels documents"
 msgstr "Dokumenter for gLabels"
 
-#: ../src/file.c:343 ../src/file.c:640
+#: ../src/file.c:319 ../src/file.c:620
 msgid "Empty file name selection"
 msgstr "Tøm filnavnsmarkering"
 
-#: ../src/file.c:346 ../src/file.c:362
+#: ../src/file.c:322 ../src/file.c:338
 msgid "Please select a file or supply a valid file name"
 msgstr "Vælg venligst en fil eller angiv et gyldigt filnavn"
 
-#: ../src/file.c:359
+#: ../src/file.c:335
 msgid "File does not exist"
 msgstr "Fil eksisterer ikke"
 
-#: ../src/file.c:433
+#: ../src/file.c:410
 #, c-format
 msgid "Could not open file \"%s\""
 msgstr "Kunne ikke åbne fil \"%s\""
 
-#: ../src/file.c:436
+#: ../src/file.c:413
 msgid "Not a supported file format"
 msgstr "Ikke et understøttet filformat"
 
-#: ../src/file.c:513 ../src/file.c:690
+#: ../src/file.c:491 ../src/file.c:670
 #, c-format
 msgid "Could not save file \"%s\""
 msgstr "Kunne ikke gemme fil \"%s\""
 
-#: ../src/file.c:517 ../src/file.c:694
+#: ../src/file.c:495 ../src/file.c:674
 msgid "Error encountered during save.  The file is still not saved."
 msgstr "Fejl opstod under gemmning. Filen er ikke gemt."
 
-#: ../src/file.c:556
+#: ../src/file.c:535
 #, c-format
 msgid "Save \"%s\" as"
 msgstr "Gem \"%s\" som"
 
-#: ../src/file.c:643
+#: ../src/file.c:623
 msgid "Please supply a valid file name"
 msgstr "Angiv venligst et gyldigt filnavn"
 
-#: ../src/file.c:664
+#: ../src/file.c:644
 #, c-format
 msgid "Overwrite file \"%s\"?"
 msgstr "Overskriv fil \"%s\"?"
 
-#: ../src/file.c:668
+#: ../src/file.c:648
 msgid "File already exists."
 msgstr "Filen eksisterer allerede."
 
-#: ../src/file.c:764
+#: ../src/file.c:744
 #, c-format
 msgid "Save changes to document \"%s\" before closing?"
 msgstr "Gem ændringer til dokument \"%s\" før lukning?"
 
-#: ../src/file.c:768
+#: ../src/file.c:748
 msgid "Your changes will be lost if you don't save them."
 msgstr "Dine ændringer vil gå tabt, hvis du ikke gemmer dem."
 
-#: ../src/file.c:771
+#: ../src/file.c:751
 msgid "Close without saving"
 msgstr "Luk uden at gemme"
 
-#. Should not happen
-#: ../src/prefs.c:159 ../src/prefs.c:166
-#: ../data/glade/object-editor.glade.h:43
-#: ../data/glade/prefs-dialog.glade.h:22
-msgid "points"
-msgstr "punkter"
+#: ../src/font-combo-menu.c:137
+msgid "Recent fonts"
+msgstr "Seneste skrifttyper"
 
-#: ../src/prefs.c:161 ../data/glade/object-editor.glade.h:42
-#: ../data/glade/template-designer.glade.h:64
-msgid "inches"
-msgstr "tommer"
+#: ../src/font-combo-menu.c:152
+msgid "Proportional fonts"
+msgstr "Proportionelle skrifttyper"
 
-#: ../src/prefs.c:163
-msgid "mm"
-msgstr "mm"
+#: ../src/font-combo-menu.c:160
+msgid "Fixed-width fonts"
+msgstr "Skrifttyper med fast bredde"
 
-#: ../src/prefs-dialog.c:162 ../data/glade/prefs-dialog.glade.h:21
-msgid "gLabels Preferences"
-msgstr "Indstillinger for gLabels"
+#: ../src/font-combo-menu.c:168
+msgid "All fonts"
+msgstr "Alle skrifttyper"
 
-#. Build editor.
-#: ../src/view-box.c:175
-msgid "Box object properties"
-msgstr "Boksobjekt - egenskaber"
+#.
+#. * Allow text samples to be localized.
+#. *
+#. * FIXME: if we could extract enough meta information from the fonts
+#. * themselves, perhaps rather than setting these globally for the
+#. * current locale, they could be unique to each font family.
+#.
+#: ../src/font-combo-menu-item.c:132
+msgctxt "Short sample text"
+msgid "Aa"
+msgstr "Aa"
+
+#: ../src/font-combo-menu-item.c:134
+msgctxt "Lower case sample text"
+msgid "abcdefghijklmnopqrstuvwxyz"
+msgstr "abcdefghijklmnopqrstuvwæøå"
+
+#: ../src/font-combo-menu-item.c:136
+msgctxt "Upper case sample text"
+msgid "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMOPQRSTUVWÆØÅ"
+
+#: ../src/font-combo-menu-item.c:138
+msgctxt "Numbers and special characters sample text"
+msgid "0123456789 .:,;(*!?)"
+msgstr "0123456789 .:,;(*!?)"
+
+#: ../src/font-combo-menu-item.c:157
+msgid "Sample text"
+msgstr "Prøvetekst"
+
+#: ../src/glabels-batch.c:53
+msgid "set output filename (default=\"output.pdf\")"
+msgstr "angiv filnavn for uddata (standard=output.pdf)"
 
-#. Build editor.
-#: ../src/view-ellipse.c:175
-msgid "Ellipse object properties"
-msgstr "Egenskaber for ellipseobjekt"
+#: ../src/glabels-batch.c:53 ../src/glabels-batch.c:67
+msgid "filename"
+msgstr "filnavn"
 
-#. Build editor.
-#: ../src/view-line.c:174
-msgid "Line object properties"
-msgstr "Linjeobjekt - egenskaber"
+#: ../src/glabels-batch.c:55
+msgid "number of sheets (default=1)"
+msgstr "antal ark (ark=1)"
 
-#. Build editor.
-#: ../src/view-image.c:174
-msgid "Image object properties"
-msgstr "Billedobjekt - egenskaber"
+#: ../src/glabels-batch.c:55
+msgid "sheets"
+msgstr "ark"
 
-#. Build editor.
-#: ../src/view-text.c:178
-msgid "Text object properties"
-msgstr "Tekstobjekt - egenskaber"
+#: ../src/glabels-batch.c:57
+msgid "number of copies (default=1)"
+msgstr "antal kopier (standard=1)"
 
-#. Build editor.
-#: ../src/view-barcode.c:174
-msgid "Barcode object properties"
-msgstr "Egenskaber for stregkodeobjekt"
+#: ../src/glabels-batch.c:57
+msgid "copies"
+msgstr "kopier"
 
-#: ../src/object-editor-image-page.c:270
-msgid "All Files"
-msgstr "Alle filer"
+#: ../src/glabels-batch.c:59
+msgid "first label on first sheet (default=1)"
+msgstr "første etiket på første ark (standard=1)"
 
-#: ../src/object-editor-image-page.c:275
-msgid "All Images"
-msgstr "Alle billeder"
+#: ../src/glabels-batch.c:59
+msgid "first"
+msgstr "første"
 
-#: ../src/object-editor-image-page.c:290
-#, c-format
-msgid "%s (*.%s)"
-msgstr "%s (*.%s)"
+#: ../src/glabels-batch.c:61 ../data/ui/print-op-dialog-custom-widget.ui.h:13
+msgid "print outlines (to test printer alignment)"
+msgstr "udskriv omkreds (for at teste printeropsætning)"
 
-#: ../src/merge-properties-dialog.c:263
-msgid "Merge Properties"
-msgstr "Sammenføj egenskaber"
-
-# den forstår jeg ikke helt.
-#: ../src/merge-properties-dialog.c:289 ../src/merge-properties-dialog.c:397
-msgid "Select merge-database source"
-msgstr "Vælg sammenføj-databasekilde"
-
-#: ../src/merge-properties-dialog.c:298 ../src/merge-properties-dialog.c:417
-msgid "N/A"
-msgstr "-"
-
-#: ../src/merge-properties-dialog.c:324
-msgid "Select"
-msgstr "Vælg"
-
-#: ../src/merge-properties-dialog.c:332
-msgid "Record/Field"
-msgstr "Optag/felt"
-
-#: ../src/merge-properties-dialog.c:340 ../data/glade/object-editor.glade.h:10
-msgid "Data"
-msgstr "Data"
-
-#: ../src/merge-properties-dialog.c:410
-msgid "Fixed"
-msgstr "Rettet"
-
-#. ===================================================================
-#: ../src/print-op.c:237 ../src/wdgt-print-copies.c:171
-#: ../data/templates/misc-iso-templates.xml.h:34
-msgid "Labels"
-msgstr "Etiketter"
-
-#: ../src/template-designer.c:358
-msgid "gLabels Template Designer"
-msgstr "gLabels - skabelondesigner"
-
-#: ../src/template-designer.c:419
-msgid "Welcome"
-msgstr "Velkommen"
-
-#: ../src/template-designer.c:463
-msgid "Name and Description"
-msgstr "Navn og beskrivelse"
-
-#: ../src/template-designer.c:516
-msgid "Page Size"
-msgstr "Sidestørrelse"
-
-#: ../src/template-designer.c:587
-msgid "Label or Card Shape"
-msgstr "Etiket- eller kortform"
-
-#: ../src/template-designer.c:637
-msgid "Label or Card Size"
-msgstr "Etiket- eller kortstørrelse"
-
-# rund eller afrundet!
-#: ../src/template-designer.c:737
-msgid "Label Size (round)"
-msgstr "Etiketstørrelse (rund)"
+#: ../src/glabels-batch.c:63 ../data/ui/print-op-dialog-custom-widget.ui.h:12
+msgid "print in reverse (i.e. a mirror image)"
+msgstr "udskriv omvendt (det vil sige et spejlbillede)"
 
-#: ../src/template-designer.c:820
-msgid "Label Size (CD/DVD)"
-msgstr "Etiketstørrelse (cd/dvd)"
+# tilføjet af joe: crop marks: Marks that show where a publication page will be trimmed
+#: ../src/glabels-batch.c:65 ../data/ui/print-op-dialog-custom-widget.ui.h:11
+msgid "print crop marks"
+msgstr "udskriv beskæringsmærker"
 
-#: ../src/template-designer.c:913
-msgid "Number of Layouts"
-msgstr "Antal layout"
+#: ../src/glabels-batch.c:67
+msgid "input file for merging"
+msgstr "inddatafil for sammenflet"
 
-#: ../src/template-designer.c:976
-msgid "Layout(s)"
-msgstr "Layout"
+#: ../src/glabels-batch.c:69 ../src/glabels.c:63
+msgid "[FILE...]"
+msgstr "[FIL...]"
 
-#: ../src/template-designer.c:1087
-msgid "Design Completed"
-msgstr "Design færdigt"
+#: ../src/glabels-batch.c:99
+msgid "Print files created with gLabels."
+msgstr "Udskriv filer oprettet med gLabels."
 
-#: ../src/template-designer.c:1253
+#: ../src/glabels-batch.c:107 ../src/glabels.c:87
+#, c-format
 msgid ""
-"<span foreground='red' weight='bold'>Brand and part# match an existing "
-"template!</span>"
+"%s\n"
+"Run '%s --help' to see a full list of available command line options.\n"
 msgstr ""
-"<span foreground='red' weight='bold'>Mærk og del#-match en eksisterende "
-"skabelon!</span>"
-
-#: ../src/bc.c:67
-msgid "POSTNET (any)"
-msgstr "POSTNET (alle)"
+"%s\n"
+"Kør '%s --help' for at se en fuldstændig liste over tilgængelige "
+"kommandolinjetilvalg.\n"
 
-#: ../src/bc.c:70
-msgid "POSTNET-5 (ZIP only)"
-msgstr "POSTNET-5 (kun ZIP)"
-
-#: ../src/bc.c:73
-msgid "POSTNET-9 (ZIP+4)"
-msgstr "POSTNET-9 (ZIP+4)"
-
-#: ../src/bc.c:76
-msgid "POSTNET-11 (DPBC)"
-msgstr "POSTNET-11 (DPBC)"
-
-#: ../src/bc.c:79
-msgid "CEPNET"
-msgstr "CEPNET"
-
-#: ../src/bc.c:82
-msgid "EAN (any)"
-msgstr "EAN (alle)"
-
-#: ../src/bc.c:85
-msgid "EAN-8"
-msgstr "EAN-8"
-
-#: ../src/bc.c:88
-msgid "EAN-8 +2"
-msgstr "EAN-8 +2"
-
-#: ../src/bc.c:91
-msgid "EAN-8 +5"
-msgstr "EAN-8 +5"
-
-#: ../src/bc.c:94
-msgid "EAN-13"
-msgstr "EAN-13"
-
-#: ../src/bc.c:97
-msgid "EAN-13 +2"
-msgstr "EAN-13 +2"
-
-#: ../src/bc.c:100
-msgid "EAN-13 +5"
-msgstr "EAN-13 +5"
+#: ../src/glabels-batch.c:151
+#, c-format
+msgid "cannot perform document merge with glabels file %s\n"
+msgstr "kan ikke udføre dokumentsammenfletning med glabelsfil %s\n"
 
-#: ../src/bc.c:103
-msgid "UPC (UPC-A or UPC-E)"
-msgstr "UPC (UPC-A eller UPC-E)"
+#: ../src/glabels-batch.c:186
+#, c-format
+msgid "cannot open glabels file %s\n"
+msgstr "kan ikke åbne glabelsfil %s\n"
 
-#: ../src/bc.c:106
-msgid "UPC-A"
-msgstr "UPC-A"
+#: ../src/glabels.c:79
+msgid "Launch gLabels label and business card designer."
+msgstr ""
+"Start gLabels - et program til oprettelse af etiketter og forretningskort."
 
-#: ../src/bc.c:109
-msgid "UPC-A +2"
-msgstr "UPC-A +2"
+#: ../src/label-barcode.c:183 ../src/ui.c:317
+msgid "Create barcode object"
+msgstr "Opret stregkodeobjekt"
 
-#: ../src/bc.c:112
-msgid "UPC-A +5"
-msgstr "UPC-A +5"
+#: ../src/label-barcode.c:259 ../src/label-barcode.c:461
+msgid "Barcode data"
+msgstr "Stregkodedata"
 
-#: ../src/bc.c:115
-msgid "UPC-E"
-msgstr "UPC-E"
+#: ../src/label-barcode.c:290
+msgid "Barcode property"
+msgstr "Egenskaber for stregkode"
 
-#: ../src/bc.c:118
-msgid "UPC-E +2"
-msgstr "UPC-E +2"
+#: ../src/label-barcode.c:684
+msgid "Barcode data empty"
+msgstr "Stregkodedata er tomme"
 
-#: ../src/bc.c:121
-msgid "UPC-E +5"
-msgstr "UPC-E +5"
+#: ../src/label-barcode.c:688
+msgid "Invalid barcode data"
+msgstr "Ugyldige stregkodedata"
 
-#: ../src/bc.c:124
-msgid "ISBN"
-msgstr "ISBN"
+#: ../src/label-box.c:156
+msgid "Create box object"
+msgstr "Opret boksobjekt"
 
-#: ../src/bc.c:127
-msgid "ISBN +5"
-msgstr "ISBN +5"
+#: ../src/label-box.c:230 ../src/label-ellipse.c:232
+#: ../data/ui/property-bar.ui.h:3
+msgid "Fill color"
+msgstr "Fyld farve"
 
-#: ../src/bc.c:130
-msgid "Code 39"
-msgstr "Kode 39"
+#: ../src/label-box.c:261 ../src/label-ellipse.c:261 ../src/label-line.c:212
+#: ../data/ui/property-bar.ui.h:8
+msgid "Line color"
+msgstr "Linjefarve"
 
-#: ../src/bc.c:133
-msgid "Code 128"
-msgstr "Kode 128"
+#: ../src/label-box.c:289 ../src/label-ellipse.c:290 ../src/label-line.c:241
+#: ../data/ui/property-bar.ui.h:9
+msgid "Line width"
+msgstr "Linjebredde"
 
-#: ../src/bc.c:136
-msgid "Code 128C"
-msgstr "Kode 128C"
+#: ../src/label.c:405
+msgid "Untitled"
+msgstr "Uden titel"
 
-#: ../src/bc.c:139
-msgid "Code 128B"
-msgstr "Kode 128B"
+#: ../src/label.c:719 ../src/ui.c:420
+msgid "Merge properties"
+msgstr "Sammenføj egenskaber"
 
-# joe kom.: to provide blank leaves in (a book) for notes or written comments.
-# kender ikke et dansk udtryk for det her. indflyttet, eller interfolierede
-#: ../src/bc.c:142
-msgid "Interleaved 2 of 5"
-msgstr "Interfolierede 2 af 5"
+#: ../src/label.c:1215 ../src/ui.c:213
+msgid "Delete"
+msgstr "Slet"
 
-# hvad er dettte. Codabar is a linear barcode symbology developed in 1972 by Pitney Bowes Corp.
-#: ../src/bc.c:145
-msgid "Codabar"
-msgstr "Codabar"
+#: ../src/label.c:1248 ../src/ui.c:322
+msgid "Bring to front"
+msgstr "Hent frem"
 
-#: ../src/bc.c:148
-msgid "MSI"
-msgstr "MSI"
+#: ../src/label.c:1284 ../src/ui.c:329
+msgid "Send to back"
+msgstr "Send tilbage"
 
-# navn? The Plessey Company plc was a British-based international electronics, defence and telecommunications company.
-#: ../src/bc.c:151
-msgid "Plessey"
-msgstr "Plessey"
+#: ../src/label.c:1325
+msgid "Rotate"
+msgstr "Roter"
 
-#: ../src/bc.c:154
-msgid "IEC16022 (DataMatrix)"
-msgstr "IEC16022 (DataMatrix)"
+#: ../src/label.c:1360 ../src/ui.c:336
+msgid "Rotate left"
+msgstr "Roter mod venstre"
 
-#: ../src/label.c:531
-msgid "Untitled"
-msgstr "Uden titel"
+#: ../src/label.c:1393 ../src/ui.c:343
+msgid "Rotate right"
+msgstr "Roter til højre"
 
-#: ../src/label-barcode.c:426
-msgid "Barcode data empty"
-msgstr "Stregkodedata er tomme"
+#: ../src/label.c:1428 ../src/ui.c:350
+msgid "Flip horizontally"
+msgstr "Vend vandret"
 
-#: ../src/label-barcode.c:430
-msgid "Invalid barcode data"
-msgstr "Ugyldige stregkodedata"
+#: ../src/label.c:1463 ../src/ui.c:357
+msgid "Flip vertically"
+msgstr "Vend lodret"
 
-#: ../src/xml-label.c:193
-msgid "xmlParseFile error"
-msgstr "xmlParseFile-fejl"
+#: ../src/label.c:1503 ../src/ui.c:364
+msgid "Align left"
+msgstr "Juster venstre"
 
-#: ../src/xml-label.c:234
-msgid "xmlParseDoc error"
-msgstr "xmlParseDoc-fejl"
+#: ../src/label.c:1560 ../src/ui.c:371
+msgid "Align right"
+msgstr "Juster højre"
 
-#: ../src/xml-label.c:270
-msgid "No document root"
-msgstr "Ingen dokumentrod"
+#: ../src/label.c:1621 ../src/ui.c:378
+msgid "Align horizontal center"
+msgstr "Juster vandret centrum"
 
-#: ../src/xml-label.c:278
-msgid "Importing from glabels 0.1 format"
-msgstr "Importerer fra glabels 0.1 format"
+#: ../src/label.c:1697 ../src/ui.c:385
+msgid "Align tops"
+msgstr "Juster øverst"
 
-#: ../src/xml-label.c:287
-msgid "Importing from glabels 0.4 format"
-msgstr "Importerer fra glabels 0.4 format"
+#: ../src/label.c:1754 ../src/ui.c:392
+msgid "Align bottoms"
+msgstr "Juster nederste kanter"
 
-#: ../src/xml-label.c:296
-#, c-format
-msgid "Unknown glabels Namespace -- Using %s"
-msgstr "Ukendt glabelsnavnerum -- bruger %s"
+# openoffice: juster lodret centreret
+#: ../src/label.c:1815 ../src/ui.c:399
+msgid "Align vertical center"
+msgstr "Juster lodret centreret"
 
-#: ../src/xml-label.c:327 ../src/xml-label-04.c:79
-#, c-format
-msgid "Bad root node = \"%s\""
-msgstr "Ugyldig rodknude = \"%s\""
+#: ../src/label.c:1893 ../src/ui.c:406
+msgid "Center horizontally"
+msgstr "Centrer vandret"
 
-#: ../src/xml-label.c:364
-#, c-format
-msgid "bad node in Document node =  \"%s\""
-msgstr "dårlig knude i dokumentknude =  \"%s\""
+#: ../src/label.c:1940 ../src/ui.c:413
+msgid "Center vertically"
+msgstr "Centrer lodret"
 
-#: ../src/xml-label.c:409 ../src/xml-label-04.c:127
-#, c-format
-msgid "bad node =  \"%s\""
-msgstr "dårlig knude =  \"%s\""
+#: ../src/label.c:2628 ../src/label.c:2670 ../src/label.c:2696 ../src/ui.c:206
+msgid "Paste"
+msgstr "Indsæt"
 
-#: ../src/xml-label.c:851
-#, c-format
-msgid "bad node in Data node =  \"%s\""
-msgstr "dårlig knude i dataknude =  \"%s\""
+#: ../src/label-ellipse.c:160
+msgid "Create ellipse object"
+msgstr "Opret ellipseobjekt"
 
-#: ../src/xml-label.c:1088 ../libglabels/xml-template.c:682
-msgid "Utf8 conversion error."
-msgstr "Utf8 - konverteringsfejl."
+#: ../src/label-image.c:200 ../src/ui.c:310
+msgid "Create image object"
+msgstr "Opret billedeobjekt"
 
-# Kunne ikke gemme xml-fil.
-#: ../src/xml-label.c:1095
-msgid "Problem saving xml file."
-msgstr "Problem under gemning af xml-fil."
+#: ../src/label-image.c:333 ../src/label-image.c:474
+msgid "Set image"
+msgstr "Angiv billede"
 
-#: ../src/merge.c:170 ../src/merge.c:211 ../src/merge.c:375 ../src/merge.c:378
-msgid "None"
-msgstr "Ingen"
+#: ../src/label-line.c:147 ../src/ui.c:296
+msgid "Create line object"
+msgstr "Opret linjeobjekt"
 
-#: ../src/merge-init.c:59
-msgid "Text file with comma delimeters (CSV)"
-msgstr "Tekstfil med kommaadskillelsestegn (CSV)"
+#: ../src/label-object.c:394 ../src/label-object.c:428
+msgid "Move"
+msgstr "Flyt"
 
-#: ../src/merge-init.c:66
-msgid "Text file with colon delimeters"
-msgstr "Tekstfil med kolonadskillelsestegn"
+# evt. Ændr størrelse
+#: ../src/label-object.c:479
+msgid "Resize"
+msgstr "Omdan"
 
-#: ../src/merge-init.c:73
-msgid "Text file with tab delimeters"
-msgstr "Tekstfil med indrykadskillelsestegn"
+#: ../src/label-object.c:1217
+msgid "Shadow state"
+msgstr "Skyggetilstand"
 
-#: ../src/merge-init.c:82
-msgid "Data from default Evolution Addressbook"
-msgstr "Data fra standardadressebog i Evolution"
+#: ../src/label-object.c:1260
+msgid "Shadow offset"
+msgstr "Skyggeforskydning"
 
-#: ../src/merge-init.c:88
-msgid "Data from a file containing VCards"
-msgstr "Data fra en fil indeholdende VKort (VCards)"
+#: ../src/label-object.c:1308
+msgid "Shadow color"
+msgstr "Skyggefarve"
 
-#: ../src/merge-evolution.c:309
-msgid "Couldn't construct query"
-msgstr "Kunne ikke konstruere forespørgsel"
+#: ../src/label-object.c:1351
+msgid "Shadow opacity"
+msgstr "Skyggeuigennemsigtighed"
 
-#: ../src/merge-evolution.c:315 ../src/merge-evolution.c:326
-msgid "Couldn't open addressbook."
-msgstr "Kunne ikke åbne adressebog."
+#: ../src/label-text.c:281 ../src/ui.c:282
+msgid "Create text object"
+msgstr "Opret tekstobjekt"
 
-#: ../src/merge-evolution.c:341
-msgid "Couldn't list available fields."
-msgstr "Kunne ikke vise tilgængelige felter."
+#: ../src/label-text.c:453
+msgid "Typing"
+msgstr "Indtastning"
 
-#: ../src/merge-evolution.c:377
-msgid "Couldn't get contacts."
-msgstr "Kunne ikke få kontakt."
+# skrifttypefamilie
+#: ../src/label-text.c:586 ../data/ui/property-bar.ui.h:4
+msgid "Font family"
+msgstr "Skriftfamilie"
 
-#: ../src/wdgt-print-copies.c:153
-msgid "Sheets:"
-msgstr "Ark:"
+# skrifttypestørrelse
+#: ../src/label-text.c:624 ../data/ui/property-bar.ui.h:5
+msgid "Font size"
+msgstr "Skriftstørrelse"
 
-#: ../src/wdgt-print-copies.c:173
-msgid "from:"
-msgstr "fra:"
+#: ../src/label-text.c:657
+msgid "Font weight"
+msgstr "Skrifttypevægt"
 
-#: ../src/wdgt-print-copies.c:178
-msgid "to:"
-msgstr "til:"
+#: ../src/label-text.c:690 ../data/ui/property-bar.ui.h:6
+msgid "Italic"
+msgstr "Kursiv"
 
-#: ../src/wdgt-print-merge.c:154
-msgid "Start on label"
-msgstr "Start på etiket"
+#: ../src/label-text.c:723
+msgid "Align text"
+msgstr "Juster tekst"
 
-#: ../src/wdgt-print-merge.c:159
-msgid "on 1st sheet"
-msgstr "på 1. ark"
+#: ../src/label-text.c:756
+msgid "Line spacing"
+msgstr "Linjemellemrum"
 
-#: ../src/wdgt-print-merge.c:168
-msgid "Copies:"
-msgstr "Kopier:"
+#: ../src/label-text.c:789 ../data/ui/property-bar.ui.h:11
+msgid "Text color"
+msgstr "Tekstfarve"
 
-# oversættelse hentet fra dia
-#: ../src/wdgt-print-merge.c:173
-msgid "Collate"
-msgstr "Saml ind"
+#: ../src/label-text.c:933
+msgid "Auto shrink"
+msgstr "Formindsk automatisk"
 
-#: ../src/wdgt-media-select.c:288 ../src/wdgt-media-select.c:292
-#: ../src/wdgt-media-select.c:297 ../src/wdgt-media-select.c:306
-#: ../src/wdgt-media-select.c:309 ../src/wdgt-media-select.c:402
-#: ../src/wdgt-media-select.c:609 ../src/wdgt-media-select.c:618
+#: ../src/media-select.c:358 ../src/media-select.c:361
+#: ../src/media-select.c:506 ../src/media-select.c:723
+msgctxt "Brand"
 msgid "Any"
 msgstr "Alle"
 
-#: ../src/wdgt-media-select.c:643
-#, c-format
-msgid "%d per sheet"
-msgstr "%d per ark"
-
-#: ../src/wdgt-media-select.c:673
-#, c-format
-msgid "%s x %s %s"
-msgstr "%s x %s %s"
+#: ../src/media-select.c:365 ../src/media-select.c:893
+msgctxt "Page size"
+msgid "Any"
+msgstr "Alle"
 
-#: ../src/wdgt-media-select.c:678
-#, c-format
-msgid "%.5g x %.5g %s"
-msgstr "%.5g x %.5g %s"
+#: ../src/media-select.c:372 ../src/media-select.c:375
+#: ../src/media-select.c:902
+msgctxt "Category"
+msgid "Any"
+msgstr "Alle"
 
-#: ../src/wdgt-media-select.c:689 ../src/wdgt-media-select.c:703
+#: ../src/media-select.c:648
 #, c-format
-msgid "%s %s diameter"
-msgstr "%s %s diameter"
+msgid "Delete template \"%s\"?"
+msgstr "Slet skabelon \"%s\"?"
 
-#: ../src/wdgt-media-select.c:693 ../src/wdgt-media-select.c:707
-#, c-format
-msgid "%.5g %s diameter"
-msgstr "%.5g %s diameter"
+#: ../src/media-select.c:650
+msgid "This action will permanently delete this template."
+msgstr "Denne handling vil permanent slette denne skabelon."
 
-#: ../src/wdgt-media-select.c:781
+#: ../src/media-select.c:990
 msgid "No recent templates found."
 msgstr "Ingen seneste skabeloner fundet."
 
-#: ../src/wdgt-media-select.c:782
-msgid "Try selecting a template from the \"Search all templates\" page."
-msgstr "Forsøg med at vælge en skabelon fra siden \"Søg i alle skabeloner\"."
+#: ../src/media-select.c:992
+msgid "Try selecting a template in the \"Search all\" tab."
+msgstr "Prøv at vælge en skabelon i fanebladet \"Søg i alle\"."
 
-#: ../src/wdgt-media-select.c:861
+#. Translators: "No match" means that for the given template search criteria, there
+#. * were no matches found.
+#: ../src/media-select.c:1083
 msgid "No match."
 msgstr "Intet resultat."
 
-#: ../src/wdgt-media-select.c:862
+#: ../src/media-select.c:1085
 msgid "Try selecting a different brand, page size or category."
 msgstr "Forsøg med at vælge et andet mærke, sidestørrrelse eller kategori."
 
-#. This is the default custom color
-#: ../src/mygal/color-palette.c:389
-msgid "custom"
-msgstr "tilpasset"
+#: ../src/media-select.c:1179
+msgid "No custom templates found."
+msgstr "Ingen tilpassede skabeloner fundet."
 
-#. "Custom" color - we'll pop up a GtkColorButton
-#: ../src/mygal/color-palette.c:431
-msgid "Custom Color:"
-msgstr "Tilpasset farve:"
-
-#: ../src/mygal/color-palette.c:439
-msgid "Choose Custom Color"
-msgstr "Vælg tilpasset farve"
-
-#: ../src/mygal/color-palette.c:572
-msgid "black"
-msgstr "sort"
+#: ../src/media-select.c:1181
+msgid ""
+"You may create new templates or try searching for pre-defined templates in "
+"the \"Search all\" tab."
+msgstr ""
+"Du kan oprette nye skabeloner eller forsøge at lede efter foruddefinerede "
+"skabeloner i fanebladet \"Søg i alle\"."
 
-#: ../src/mygal/color-palette.c:573
-msgid "light brown"
-msgstr "lysebrun"
+#. Translators: "None" here means that no document-merge source or
+#. * method has been selected.
+#: ../src/merge.c:171 ../src/merge.c:212 ../src/merge.c:376 ../src/merge.c:379
+msgid "None"
+msgstr "Ingen"
 
-#: ../src/mygal/color-palette.c:574
-msgid "brown gold"
-msgstr "guldbrun"
+#: ../src/merge-init.c:57
+msgid "Text: Comma Separated Values (CSV)"
+msgstr "Tekst: Kommaadskilte værdier (CSV)"
 
-#: ../src/mygal/color-palette.c:575
-msgid "dark green #2"
-msgstr "mørkegrøn #2"
+# nøgle som i en slags kodeord
+#: ../src/merge-init.c:64
+msgid "Text: Comma Separated Values (CSV) with keys on line 1"
+msgstr "Tekst: Kommaadskilte værdier (CSV) med nøgler på linje 1"
 
-#: ../src/mygal/color-palette.c:576
-msgid "navy"
-msgstr "navyblå"
+# (et 'indryk' kunne også være i mellemrum)
+#: ../src/merge-init.c:72
+msgid "Text: Tab Separated Values (TSV)"
+msgstr "Tekst: Tabulatoradskilte værdier (TSV)"
 
-#: ../src/mygal/color-palette.c:577 ../src/mygal/color-palette.c:633
-msgid "dark blue"
-msgstr "mørkeblå"
+#: ../src/merge-init.c:79
+msgid "Text: Tab Separated Values (TSV) with keys on line 1"
+msgstr "Tekst: Tabulatoradskilte værdier (TSV) med nøgler på linje 1"
 
-#: ../src/mygal/color-palette.c:578
-msgid "purple #2"
-msgstr "purple #2"
+#: ../src/merge-init.c:87
+msgid "Text: Colon separated values"
+msgstr "Tekst: Kolonadskilte værdier"
 
-#: ../src/mygal/color-palette.c:579
-msgid "very dark gray"
-msgstr "meget mørkegrå"
+#: ../src/merge-init.c:94
+msgid "Text: Colon separated values with keys on line 1"
+msgstr "Tekst: Kolonadskilte værdier med nøgler på linje 1"
 
-#: ../src/mygal/color-palette.c:582 ../src/mygal/color-palette.c:638
-msgid "dark red"
-msgstr "mørkerød"
+#: ../src/merge-init.c:102
+msgid "Text: Semicolon separated values"
+msgstr "Tekst: Semikolonadskilte værdier"
 
-#: ../src/mygal/color-palette.c:583
-msgid "red-orange"
-msgstr "rød/orange"
+#: ../src/merge-init.c:109
+msgid "Text: Semicolon separated values with keys on line 1"
+msgstr "Tekst: Semikolonadskilte værdier med nøgler på linje 1"
 
-#: ../src/mygal/color-palette.c:584
-msgid "gold"
-msgstr "guld"
+#: ../src/merge-init.c:119
+msgid "Evolution Addressbook"
+msgstr "Evolutionadressebog"
 
-#: ../src/mygal/color-palette.c:585
-msgid "dark green"
-msgstr "mørkegrøn"
+# bør nok være VCard (formatnavn ifølge wiki)
+#: ../src/merge-init.c:125
+msgid "VCards"
+msgstr "VCards"
 
-# hentet fra GNOME gtkhtml (har dog ikke selv hørt om sløv blå før)
-#: ../src/mygal/color-palette.c:586 ../src/mygal/color-palette.c:639
-msgid "dull blue"
-msgstr "sløv blå"
-
-#: ../src/mygal/color-palette.c:587 ../src/mygal/color-palette.c:640
-msgid "blue"
-msgstr "blå"
-
-#: ../src/mygal/color-palette.c:588
-msgid "dull purple"
-msgstr "sløv lilla"
-
-#: ../src/mygal/color-palette.c:589
-msgid "dark grey"
-msgstr "mørkegrå"
-
-#: ../src/mygal/color-palette.c:592
-msgid "red"
-msgstr "rød"
-
-#: ../src/mygal/color-palette.c:593
-msgid "orange"
-msgstr "orange"
-
-#: ../src/mygal/color-palette.c:594
-msgid "lime"
-msgstr "lime"
+#: ../src/merge-properties-dialog.c:280
+msgid "Merge Properties"
+msgstr "Sammenføj egenskaber"
 
-#: ../src/mygal/color-palette.c:595
-msgid "dull green"
-msgstr "sløv grøn"
+# den forstår jeg ikke helt.
+#: ../src/merge-properties-dialog.c:304 ../src/merge-properties-dialog.c:420
+msgid "Select merge-database source"
+msgstr "Vælg sammenføj-databasekilde"
 
-#: ../src/mygal/color-palette.c:596
-msgid "dull blue #2"
-msgstr "sløv blå #2"
+#: ../src/merge-properties-dialog.c:315 ../src/merge-properties-dialog.c:446
+msgid "N/A"
+msgstr "-"
 
-#: ../src/mygal/color-palette.c:597
-msgid "sky blue #2"
-msgstr "skyblå #2"
+#: ../src/merge-properties-dialog.c:341
+msgid "Select"
+msgstr "Vælg"
 
-#: ../src/mygal/color-palette.c:598 ../src/mygal/color-palette.c:637
-msgid "purple"
-msgstr "purple"
+#: ../src/merge-properties-dialog.c:348
+msgid "Record/Field"
+msgstr "Optag/felt"
 
-#: ../src/mygal/color-palette.c:599
-msgid "gray"
-msgstr "grå"
+#: ../src/merge-properties-dialog.c:356 ../data/ui/object-editor.ui.h:10
+msgid "Data"
+msgstr "Data"
 
-#: ../src/mygal/color-palette.c:602 ../src/mygal/color-palette.c:634
-msgid "magenta"
-msgstr "magenta"
+#. Translators: "Fixed" here means that for the given document-merge method, there are
+#. * no further choices to further define the source of data.  E.g. if you select the
+#. * evolution-data-server, there are no further choices -- the source is "Fixed."
+#.
+#: ../src/merge-properties-dialog.c:439
+msgid "Fixed"
+msgstr "Rettet"
 
-#: ../src/mygal/color-palette.c:603
-msgid "bright orange"
-msgstr "lys orange"
+#. Translators: "Up" refers to the direction towards the top of a label.
+#: ../src/mini-preview.c:1054
+msgid "Up"
+msgstr "Op"
 
-#: ../src/mygal/color-palette.c:604 ../src/mygal/color-palette.c:635
-msgid "yellow"
-msgstr "gul"
+#: ../src/new-label-dialog.c:203
+msgid "Select Product"
+msgstr "Vælg produkt"
 
-#: ../src/mygal/color-palette.c:605
-msgid "green"
-msgstr "grøn"
+#: ../src/new-label-dialog.c:215
+msgid "Choose Orientation"
+msgstr "Vælg retning"
 
-# turkis eller cyan
-#: ../src/mygal/color-palette.c:606 ../src/mygal/color-palette.c:636
-msgid "cyan"
-msgstr "turkis"
+#: ../src/new-label-dialog.c:229
+msgid "Review"
+msgstr "Gennemse"
 
-#: ../src/mygal/color-palette.c:607
-msgid "bright blue"
-msgstr "lyseblå"
+#: ../src/object-editor-bc-page.c:97 ../src/object-editor-shadow-page.c:93
+#: ../src/object-editor-text-page.c:97 ../src/prefs-dialog.c:335
+#: ../src/ui-property-bar.c:277
+msgid "Default"
+msgstr "Standard"
 
-#: ../src/mygal/color-palette.c:608 ../src/mygal/color-palette.c:625
-msgid "red purple"
-msgstr "rød purple"
+#: ../src/object-editor.c:161 ../src/object-editor.c:470
+msgid "Object properties"
+msgstr "Objektegenskaber"
 
-#: ../src/mygal/color-palette.c:609
-msgid "light grey"
-msgstr "lysegrå"
+#: ../src/object-editor.c:314
+msgid "Box object properties"
+msgstr "Boksobjekt - egenskaber"
 
-#: ../src/mygal/color-palette.c:612 ../src/mygal/color-palette.c:629
-msgid "pink"
-msgstr "lilla"
+#: ../src/object-editor.c:333
+msgid "Ellipse object properties"
+msgstr "Egenskaber for ellipseobjekt"
 
-#: ../src/mygal/color-palette.c:613
-msgid "light orange"
-msgstr "lys orange"
+#: ../src/object-editor.c:352
+msgid "Line object properties"
+msgstr "Linjeobjekt - egenskaber"
 
-#: ../src/mygal/color-palette.c:614 ../src/mygal/color-palette.c:626
-msgid "light yellow"
-msgstr "lysegul"
+#: ../src/object-editor.c:369
+msgid "Image object properties"
+msgstr "Billedobjekt - egenskaber"
 
-#: ../src/mygal/color-palette.c:615
-msgid "light green"
-msgstr "lysegrøn"
+#: ../src/object-editor.c:386
+msgid "Text object properties"
+msgstr "Tekstobjekt - egenskaber"
 
-#: ../src/mygal/color-palette.c:616
-msgid "light cyan"
-msgstr "lys turkis"
+#: ../src/object-editor.c:408
+msgid "Barcode object properties"
+msgstr "Egenskaber for stregkodeobjekt"
 
-#: ../src/mygal/color-palette.c:617 ../src/mygal/color-palette.c:627
-msgid "light blue"
-msgstr "lyseblå"
+#: ../src/object-editor-edit-page.c:76
+msgid "Insert merge field"
+msgstr "Indsæt sammenføjningsfelt"
 
-#: ../src/mygal/color-palette.c:618 ../src/mygal/color-palette.c:631
-msgid "light purple"
-msgstr "lys purple"
+#: ../src/object-editor-fill-page.c:79 ../src/prefs-dialog.c:341
+#: ../src/ui-property-bar.c:287
+msgid "No Fill"
+msgstr "Ingen fyld"
 
-#: ../src/mygal/color-palette.c:619
-msgid "white"
-msgstr "hvid"
+#: ../src/object-editor-image-page.c:302
+msgid "All Files"
+msgstr "Alle filer"
 
-#: ../src/mygal/color-palette.c:624
-msgid "purplish blue"
-msgstr "violet"
+#: ../src/object-editor-image-page.c:307
+msgid "All Images"
+msgstr "Alle billeder"
 
-#: ../src/mygal/color-palette.c:628
-msgid "dark purple"
-msgstr "mørk lilla"
+#: ../src/object-editor-image-page.c:323
+#, c-format
+msgid "%s (*.%s)"
+msgstr "%s (*.%s)"
 
-#: ../src/mygal/color-palette.c:630
-msgid "sky blue"
-msgstr "skyblå"
+#: ../src/object-editor-line-page.c:79 ../src/prefs-dialog.c:338
+#: ../src/ui-property-bar.c:297
+msgid "No Line"
+msgstr "Ingen linje"
 
-#: ../src/critical-error-handler.c:73
-msgid "gLabels Fatal Error!"
-msgstr "gLabels - fatal fejl!"
+#: ../src/object-editor-size-page.c:89
+msgid "Lock aspect ratio."
+msgstr "Lås størrelsesforhold."
+
+#: ../src/prefs-dialog.c:168 ../data/ui/prefs-dialog.ui.h:21
+msgid "gLabels Preferences"
+msgstr "Indstillinger for gLabels"
+
+#. TODO: Is this the actual part #?
+#: ../src/print-op.c:205 ../src/print-op-dialog.c:215
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:4
+#: ../templates/misc-iso-templates.xml.h:24
+msgid "Labels"
+msgstr "Etiketter"
+
+#: ../src/template-designer.c:429
+msgid "New gLabels Template"
+msgstr "Ny gLabels-skabelon"
+
+#: ../src/template-designer.c:487
+msgid "Welcome"
+msgstr "Velkommen"
+
+#: ../src/template-designer.c:526
+msgid "Name and Description"
+msgstr "Navn og beskrivelse"
+
+#: ../src/template-designer.c:575
+msgid "Page Size"
+msgstr "Sidestørrelse"
+
+#: ../src/template-designer.c:642
+msgid "Label or Card Shape"
+msgstr "Etiket- eller kortform"
+
+#: ../src/template-designer.c:689 ../src/template-designer.c:790
+msgid "Label or Card Size"
+msgstr "Etiket- eller kortstørrelse"
+
+# rund eller afrundet!
+#: ../src/template-designer.c:873
+msgid "Label Size (round)"
+msgstr "Etiketstørrelse (rund)"
+
+#: ../src/template-designer.c:954
+msgid "Label Size (CD/DVD)"
+msgstr "Etiketstørrelse (cd/dvd)"
+
+#: ../src/template-designer.c:1045
+msgid "Number of Layouts"
+msgstr "Antal layout"
+
+#: ../src/template-designer.c:1113
+msgid "Layout(s)"
+msgstr "Layout"
+
+#: ../src/template-designer.c:1218
+msgid "Design Completed"
+msgstr "Design færdigt"
+
+#: ../src/template-designer.c:1246
+msgid "Edit gLabels Template"
+msgstr "Rediger gLabels-skabelon"
+
+#: ../src/template-designer.c:1549
+msgid "Brand and part# match an existing template!"
+msgstr "Mærk og del#-match en eksisterende skabelon!"
+
+#. Menu entries.
+#: ../src/ui.c:91
+msgid "_File"
+msgstr "_Fil"
+
+#: ../src/ui.c:92
+msgid "Open Recent _Files"
+msgstr "Åbn seneste _filer"
+
+#: ../src/ui.c:93
+msgid "_Edit"
+msgstr "_Rediger"
+
+#: ../src/ui.c:94
+msgid "_View"
+msgstr "_Vis"
+
+#: ../src/ui.c:95
+msgid "Customize Main Toolbar"
+msgstr "Tilpas hovedværktøjsbjælke"
+
+#: ../src/ui.c:96
+msgid "Customize Drawing Toolbar"
+msgstr "Tilpas tegneværktøjsbjælke"
+
+#: ../src/ui.c:97
+msgid "Customize Properties Toolbar"
+msgstr "Tilpas værktøjsbjælke for egenskaber"
+
+#: ../src/ui.c:98
+msgid "_Objects"
+msgstr "_Objekter"
+
+#: ../src/ui.c:99
+msgid "_Create"
+msgstr "_Opret"
+
+#: ../src/ui.c:100
+msgid "_Order"
+msgstr "_Orden"
+
+#: ../src/ui.c:101
+msgid "_Rotate/Flip"
+msgstr "_Roter/vend"
+
+#: ../src/ui.c:102
+msgid "Align _Horizontal"
+msgstr "Juster _vandret"
+
+#: ../src/ui.c:103
+msgid "Align _Vertical"
+msgstr "Juster _lodret"
+
+#: ../src/ui.c:104
+msgid "_Help"
+msgstr "_Hjælp"
+
+#. Popup entries.
+#: ../src/ui.c:107 ../src/ui.c:108
+msgid "Context Menu"
+msgstr "Kontekstmenu"
+
+#: ../src/ui.c:113
+msgid "_New"
+msgstr "_Ny"
+
+#: ../src/ui.c:115
+msgid "Create a new file"
+msgstr "Opret en ny fil"
+
+#: ../src/ui.c:120
+msgid "_Open..."
+msgstr "_Åbn..."
+
+#: ../src/ui.c:122
+msgid "Open a file"
+msgstr "Åbn en fil"
+
+#: ../src/ui.c:127
+msgid "_Save"
+msgstr "_Gem"
+
+#: ../src/ui.c:129
+msgid "Save current file"
+msgstr "Gem aktuel fil"
+
+#: ../src/ui.c:134
+msgid "Save _As..."
+msgstr "Gem _som..."
+
+#: ../src/ui.c:136
+msgid "Save the current file to a different name"
+msgstr "Gem den aktuelle fil med et andet navn"
+
+#: ../src/ui.c:141
+msgid "_Print..."
+msgstr "_Udskriv..."
+
+#: ../src/ui.c:143
+msgid "Print the current file"
+msgstr "Udskriv den aktuelle fil"
+
+#: ../src/ui.c:148
+msgid "Properties..."
+msgstr "Egenskaber..."
+
+#: ../src/ui.c:150
+msgid "Modify document properties"
+msgstr "Ændre dokumentegenskaber"
+
+#: ../src/ui.c:155
+msgid "Template _Designer..."
+msgstr "Skabelon_designer..."
+
+#: ../src/ui.c:157
+msgid "Create a custom template"
+msgstr "Opret en tilpasset skabelon"
+
+#: ../src/ui.c:162
+msgid "_Close"
+msgstr "_Luk"
+
+#: ../src/ui.c:164
+msgid "Close the current file"
+msgstr "Luk den nuværende fil"
+
+#: ../src/ui.c:169
+msgid "_Quit"
+msgstr "_Afslut"
+
+#: ../src/ui.c:171
+msgid "Quit the program"
+msgstr "Afslut programmet"
+
+#: ../src/ui.c:178 ../src/ui.c:180 ../src/ui.c:965
+msgid "Undo"
+msgstr "Fortryd"
+
+#: ../src/ui.c:185 ../src/ui.c:187 ../src/ui.c:972
+msgid "Redo"
+msgstr "Gendan"
+
+#: ../src/ui.c:192
+msgid "Cut"
+msgstr "Klip"
+
+#: ../src/ui.c:194
+msgid "Cut the selection"
+msgstr "Klip markeringen ud"
+
+#: ../src/ui.c:199
+msgid "Copy"
+msgstr "Kopier"
+
+#: ../src/ui.c:201
+msgid "Copy the selection"
+msgstr "Kopier markeringen"
+
+#: ../src/ui.c:208
+msgid "Paste the clipboard"
+msgstr "Indsæt fra udklipsholderen"
+
+#: ../src/ui.c:215
+msgid "Delete the selected objects"
+msgstr "Slet de valgte objekter"
+
+#: ../src/ui.c:220
+msgid "Select All"
+msgstr "Vælg alle"
+
+#: ../src/ui.c:222
+msgid "Select all objects"
+msgstr "Vælg alle objekter"
+
+#: ../src/ui.c:227
+msgid "Un-select All"
+msgstr "Fravælg alle"
+
+#: ../src/ui.c:229
+msgid "Remove all selections"
+msgstr "Fjern alle markeringer"
+
+#: ../src/ui.c:234
+msgid "Preferences"
+msgstr "Indstillinger"
+
+#: ../src/ui.c:236
+msgid "Configure the application"
+msgstr "Konfigurere programmet"
+
+#: ../src/ui.c:243
+msgid "Zoom in"
+msgstr "Zoom ind"
+
+#: ../src/ui.c:245
+msgid "Increase magnification"
+msgstr "Øg forstørrelse"
+
+#: ../src/ui.c:250
+msgid "Zoom out"
+msgstr "Zoom ud"
+
+#: ../src/ui.c:252
+msgid "Decrease magnification"
+msgstr "Formindsk forstørrelse"
+
+#: ../src/ui.c:257
+msgid "Zoom 1 to 1"
+msgstr "Zoom 1 til 1"
+
+#: ../src/ui.c:259
+msgid "Restore scale to 100%"
+msgstr "Gendan skala til 100 %"
+
+#: ../src/ui.c:264
+msgid "Zoom to fit"
+msgstr "Zoomtilpasning"
+
+#: ../src/ui.c:266
+msgid "Set scale to fit window"
+msgstr "Angiv skala der passer til vinduet"
+
+#: ../src/ui.c:273
+msgid "Select Mode"
+msgstr "Vælg tilstand"
+
+#: ../src/ui.c:275
+msgid "Select, move and modify objects"
+msgstr "Vælg, flyt eller ændre objekter"
+
+#: ../src/ui.c:280 ../src/view-text.c:94 ../data/ui/object-editor.ui.h:30
+#: ../data/ui/prefs-dialog.ui.h:17
+msgid "Text"
+msgstr "Tekst"
+
+#: ../src/ui.c:287
+msgid "Box"
+msgstr "Boks"
+
+#: ../src/ui.c:289
+msgid "Create box/rectangle object"
+msgstr "Opret boks-/rektangelobjekt"
+
+#: ../src/ui.c:294 ../data/ui/object-editor.ui.h:19
+#: ../data/ui/prefs-dialog.ui.h:9
+msgid "Line"
+msgstr "Linje"
+
+#: ../src/ui.c:301
+msgid "Ellipse"
+msgstr "Ellipse"
+
+#: ../src/ui.c:303
+msgid "Create ellipse/circle object"
+msgstr "Opret ellipse-/cirkelobjekt"
+
+#: ../src/ui.c:308 ../data/ui/object-editor.ui.h:16
+msgid "Image"
+msgstr "Billede"
+
+#: ../src/ui.c:315
+msgid "Barcode"
+msgstr "Stregkode"
+
+#: ../src/ui.c:324
+msgid "Raise object to top"
+msgstr "Hæv objekt til toppen"
+
+#: ../src/ui.c:331
+msgid "Lower object to bottom"
+msgstr "Sænk objekt til bunden"
+
+#: ../src/ui.c:338
+msgid "Rotate object 90 degrees counter-clockwise"
+msgstr "Roter objekt 90 grader mod uret"
+
+#: ../src/ui.c:345
+msgid "Rotate object 90 degrees clockwise"
+msgstr "Roter objekt 90 grader med uret"
+
+#: ../src/ui.c:352
+msgid "Flip object horizontally"
+msgstr "Vend objekt vandret"
+
+#: ../src/ui.c:359
+msgid "Flip object vertically"
+msgstr "Vend objekt lodret"
+
+#: ../src/ui.c:366
+msgid "Align objects to left edges"
+msgstr "Juster objekter til de venstre hjørner"
+
+#: ../src/ui.c:373
+msgid "Align objects to right edges"
+msgstr "Juster objekter til højre hjørner"
+
+#: ../src/ui.c:380
+msgid "Align objects to horizontal centers"
+msgstr "Juster objekter til vandrette centrum"
+
+#: ../src/ui.c:387
+msgid "Align objects to top edges"
+msgstr "Juster objekter til øverste hjørner"
+
+#: ../src/ui.c:394
+msgid "Align objects to bottom edges"
+msgstr "Juster objekter til den nederste kants hjørner"
+
+#: ../src/ui.c:401
+msgid "Align objects to vertical centers"
+msgstr "Juster objekter til lodret centreret"
+
+#: ../src/ui.c:408
+msgid "Center objects to horizontal label center"
+msgstr "Centrer objekter til vandret etiketcentrum"
+
+#: ../src/ui.c:415
+msgid "Center objects to vertical label center"
+msgstr "Centrer objekter til lodret etiketcentrum"
+
+#: ../src/ui.c:422
+msgid "Edit merge properties"
+msgstr "Rediger sammenføjningsegenskaber"
+
+#: ../src/ui.c:429
+msgid "Contents"
+msgstr "Indhold"
+
+#: ../src/ui.c:431
+msgid "Open glabels manual"
+msgstr "Åbn glabels' manual"
+
+#: ../src/ui.c:436
+msgid "About..."
+msgstr "Om..."
+
+#: ../src/ui.c:438 ../src/ui-commands.c:1198
+msgid "About glabels"
+msgstr "Om glabels"
+
+#: ../src/ui.c:448
+msgid "Property toolbar"
+msgstr "Egenskabsværktøjsbjælke"
+
+#: ../src/ui.c:450
+msgid "Change the visibility of the property toolbar in the current window"
+msgstr "Ændr synligheden på egenskabsværktøjsbjælken i det nuværende vindue"
+
+#: ../src/ui.c:456
+msgid "Grid"
+msgstr "Gitter"
+
+#: ../src/ui.c:458
+msgid "Change the visibility of the grid in the current window"
+msgstr "Ændr synligheden på gitteret i det nuværende vindue"
+
+#: ../src/ui.c:464
+msgid "Markup"
+msgstr "Opmærkning"
+
+#: ../src/ui.c:466
+msgid "Change the visibility of markup lines in the current window"
+msgstr "Ændr synligheden på opmærkningslinjerne i det nuværende vindue"
+
+#: ../src/ui.c:477
+msgid "Main toolbar"
+msgstr "Hovedværktøjsbjælke"
 
-#: ../src/warning-handler.c:73
+#: ../src/ui.c:479
+msgid "Change the visibility of the main toolbar in the current window"
+msgstr "Ændr synligheden på hovedværktøjsbjælken i det nuværende vindue"
+
+#: ../src/ui.c:485
+msgid "Drawing toolbar"
+msgstr "Tegneværktøjsbjælke"
+
+#: ../src/ui.c:487
+msgid "Change the visibility of the drawing toolbar in the current window"
+msgstr "Ændr synligheden på tegneværktøjsbjælken i det nuværende vindue"
+
+#: ../src/ui-commands.c:1135
+msgid "Glabels includes contributions from:"
+msgstr "Glabels har modtaget bidrag fra:"
+
+#: ../src/ui-commands.c:1144
+msgid "See the file AUTHORS for additional credits,"
+msgstr "Se filen AUTHORS for yderligere oversigt over bidragydere,"
+
+#: ../src/ui-commands.c:1145
+msgid "or visit http://glabels.org/"
+msgstr "eller besøg http://glabels.org/"
+
+#: ../src/ui-commands.c:1162
+msgid "A label and business card creation program.\n"
+msgstr "Et program til oprettelse af etiketter og forretningskort.\n"
+
+#: ../src/ui-commands.c:1166
+msgid "translator-credits"
+msgstr ""
+"Joe Hansen, 2010.\n"
+"\n"
+"Dansk-gruppen <dansk@dansk-gruppen.dk>\n"
+"Mere info: http://www.dansk-gruppen.dk"
+
+#: ../src/ui-commands.c:1169
+msgid ""
+"gLabels is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"gLabels is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"gLabels er fri software. Du kan redistribuere og/eller modificere\n"
+"det under de betingelser som er angivet i GNU General Public License,\n"
+"som er udgivet af Free Software Foundation. Enten version 3 af licensen\n"
+"eller (efter eget valg) enhver senere version.\n"
+"\n"
+"Dette program distribueres i håb om at det vil vise sig nyttigt, men\n"
+"UDEN NOGEN FORM FOR GARANTI, uden selv de underforståede garantier\n"
+"omkring SALGBARHED eller EGNETHED TIL ET BESTEMT FORMÅL. Yderligere\n"
+"detaljer kan læses i GNU General Public License.\n"
+
+#: ../src/warning-handler.c:69
 msgid "gLabels Error!"
 msgstr "gLabels - fejl!"
 
+#: ../src/window.c:281
+msgid "(none) - gLabels"
+msgstr "(ingen) - gLabels"
+
+#: ../src/window.c:482
+msgid "(modified)"
+msgstr "(ændret)"
+
 #. Create and append an "Other" entry.
-#: ../libglabels/db.c:118
+#. Translators: "Other" here means other page size.  Meaning a page size
+#. * other than the standard ones that libglabels knows about such as
+#. * "letter", "A4", etc.
+#: ../libglabels/lgl-db.c:267
 msgid "Other"
 msgstr "Anden"
 
 #. Create and append a "User defined" entry.
-#: ../libglabels/db.c:131
+#: ../libglabels/lgl-db.c:276
 msgid "User defined"
 msgstr "Brugerdefineret"
 
-#: ../libglabels/db.c:482
+#: ../libglabels/lgl-db.c:663
 msgid ""
 "Unable to locate paper size definitions.  Libglabels may not be installed "
 "correctly!"
@@ -1492,7 +1705,7 @@ msgstr ""
 "Kunne ikke finde definitioner for papirstørrelse. Libglabels er måske ikke "
 "installeret korrekt!"
 
-#: ../libglabels/db.c:875
+#: ../libglabels/lgl-db.c:1062
 msgid ""
 "Unable to locate category definitions.  Libglabels may not be installed "
 "correctly!"
@@ -1500,424 +1713,472 @@ msgstr ""
 "Kunne ikke finde definitioner for kategorier. Libglabels er måske ikke "
 "installeret korrekt!"
 
-#: ../libglabels/db.c:1461
+#: ../libglabels/lgl-db.c:1989
 msgid ""
 "Unable to locate any template files.  Libglabels may not be installed "
 "correctly!"
 msgstr ""
 "Kunne ikke finde skabelonfiler. Libglabels er måske ikke installeret korrekt!"
 
-#: ../libglabels/db.c:1538
+#: ../libglabels/lgl-db.c:2056
 #, c-format
-msgid "Generic %s full page template"
-msgstr "Generisk %s hel sideskabelon"
-
-#: ../libglabels/xml-template.c:227
-msgid "Missing name or brand/part attributes."
-msgstr "Manglende navn eller mærke-/delattributter."
+msgid "%s full page label"
+msgstr "%s hel sideetiket"
 
-#. This should always be an id, but just in case a name
-#. slips by!
-#: ../libglabels/xml-template.c:244
+#.
+#. * Translators: 1st %d = number of labels across a page,
+#. *              2nd %d = number of labels down a page,
+#. *              3rd %d = total number of labels on a page (sheet).
+#.
+#: ../libglabels/lgl-template.c:673
 #, c-format
-msgid "Unknown page size id \"%s\", trying as name"
-msgstr "Ukendt sidestørrelse-id \"%s\", forsøger som navn"
+msgid "%d × %d (%d per sheet)"
+msgstr "%d × %d (%d per ark)"
 
-#: ../libglabels/xml-template.c:256
+#. Translators: %d is the total number of labels on a page (sheet).
+#: ../libglabels/lgl-template.c:678
 #, c-format
-msgid "Unknown page size id or name \"%s\""
-msgstr "Ukendt sidestørrelse-id eller navn \"%s\""
+msgid "%d per sheet"
+msgstr "%d per ark"
 
-#: ../libglabels/xml-template.c:627
-msgid ""
-"Missing required \"brand\" or \"part\" attribute, trying deprecated name."
-msgstr "Mangler krævet mærke- eller delattribut, forsøger forældet navn."
+#: ../libglabels/lgl-template.c:759 ../libglabels/lgl-template.c:767
+#: ../libglabels/lgl-template.c:779 ../libglabels/lgl-template.c:787
+msgid "diameter"
+msgstr "diameter"
+
+#. The ids are identical to the absolute length units supported in
+#. the CSS2 Specification (Section 4.3.2)
+#. This table must be sorted exactly as the enumerations in lglUnits
+#. [LGL_UNITS_POINT]
+#: ../libglabels/lgl-units.c:65 ../data/ui/object-editor.ui.h:42
+#: ../data/ui/prefs-dialog.ui.h:22
+msgid "points"
+msgstr "punkter"
+
+#. [LGL_UNITS_INCH]
+#: ../libglabels/lgl-units.c:66 ../data/ui/object-editor.ui.h:40
+#: ../data/ui/template-designer.ui.h:66
+msgid "inches"
+msgstr "tommer"
 
-#: ../libglabels/xml-template.c:637
-msgid "Name attribute also missing."
-msgstr "Navneattribut mangler også."
+#. [LGL_UNITS_MM]
+#: ../libglabels/lgl-units.c:67
+msgid "mm"
+msgstr "mm"
 
-#: ../data/glade/merge-properties-dialog.glade.h:1
-msgid "<b>Record selection/preview</b>"
-msgstr "<b>Optag markering/forhåndsvisning</b>"
+#. [LGL_UNITS_CM]
+#: ../libglabels/lgl-units.c:68
+msgid "cm"
+msgstr "cm"
 
-#: ../data/glade/merge-properties-dialog.glade.h:2
-msgid "<b>Source</b>"
-msgstr "<b>Kilde</b>"
+# pica, men skal det være cicero?
+#. [LGL_UNITS_PICA]
+#: ../libglabels/lgl-units.c:69
+msgid "picas"
+msgstr "pica"
 
-#: ../data/glade/merge-properties-dialog.glade.h:3
+#.
+#. * Local Variables:       -- emacs
+#. * mode: C                -- emacs
+#. * c-basic-offset: 8      -- emacs
+#. * tab-width: 8           -- emacs
+#. * indent-tabs-mode: nil  -- emacs
+#. * End:                   -- emacs
+#.
+#: ../data/ui/merge-properties-dialog.ui.h:1
 msgid "Format:"
 msgstr "Format:"
 
-#: ../data/glade/merge-properties-dialog.glade.h:4
+#: ../data/ui/merge-properties-dialog.ui.h:2
 msgid "Location:"
 msgstr "Placering:"
 
-#: ../data/glade/merge-properties-dialog.glade.h:5
+#: ../data/ui/merge-properties-dialog.ui.h:3
+msgid "Record selection/preview"
+msgstr "Optag markering/forhåndsvisning"
+
+#: ../data/ui/merge-properties-dialog.ui.h:4
 msgid "Select all"
 msgstr "Vælg alle"
 
-#: ../data/glade/merge-properties-dialog.glade.h:6
+#: ../data/ui/merge-properties-dialog.ui.h:5
+msgid "Source"
+msgstr "Kilde"
+
+#: ../data/ui/merge-properties-dialog.ui.h:6
 msgid "Unselect all"
 msgstr "Fravælg alle"
 
-#: ../data/glade/merge-properties-dialog.glade.h:7
-#: ../data/glade/object-editor.glade.h:39
-msgid "dialog1"
-msgstr "dialog 1"
+#: ../data/ui/media-select.ui.h:1
+msgid "Brand:"
+msgstr "Mærke:"
+
+#: ../data/ui/media-select.ui.h:2
+msgid "Category:"
+msgstr "Kategori:"
+
+#: ../data/ui/media-select.ui.h:3
+msgid "Custom"
+msgstr "Tilpasset"
+
+#: ../data/ui/media-select.ui.h:4 ../data/ui/new-label-dialog.ui.h:6
+#: ../data/ui/template-designer.ui.h:46
+msgid "Page size:"
+msgstr "Sidestørrelse:"
+
+#: ../data/ui/media-select.ui.h:5
+msgid "Recent"
+msgstr "Seneste"
 
-#: ../data/glade/new-label-dialog.glade.h:1
-msgid "<b>Label orientation</b>"
-msgstr "<b>Etiketorientering</b>"
+#: ../data/ui/media-select.ui.h:6
+msgid "Search all"
+msgstr "Søg i alle"
 
-#: ../data/glade/new-label-dialog.glade.h:2
-msgid "<b>Media type</b>"
-msgstr "<b>Medietype</b>"
+#: ../data/ui/new-label-dialog.ui.h:1
+msgid ""
+"Choose label or card product from hundreds of predefined templates or define "
+"your own."
+msgstr ""
+"Vælg etiket eller kortprodukt fra hundredvis af foruddefinerede skabeloner "
+"eller definer din egen."
+
+#: ../data/ui/new-label-dialog.ui.h:2 ../data/ui/template-designer.ui.h:29
+msgid "Description:"
+msgstr "Beskrivelse:"
+
+#: ../data/ui/new-label-dialog.ui.h:3
+msgid "Label size:"
+msgstr "Etiketstørrelse:"
+
+#: ../data/ui/new-label-dialog.ui.h:4
+msgid "Layout:"
+msgstr "Layout:"
+
+#: ../data/ui/new-label-dialog.ui.h:5
+msgid "Normal"
+msgstr "Normal"
+
+#: ../data/ui/new-label-dialog.ui.h:7 ../data/ui/template-designer.ui.h:47
+msgid "Part #:"
+msgstr "Del #:"
+
+#: ../data/ui/new-label-dialog.ui.h:8
+msgid "Please review and confirm your selection."
+msgstr "Gennemse venligst og bekræft dit valg."
+
+#: ../data/ui/new-label-dialog.ui.h:9
+msgid "Rotated"
+msgstr "Roteret"
+
+#: ../data/ui/new-label-dialog.ui.h:10
+msgid "Select orientation of label content."
+msgstr "Vælg retning på etiketindhold."
+
+#: ../data/ui/new-label-dialog.ui.h:11
+msgid "Similar products:"
+msgstr "Lignende produkter:"
+
+#: ../data/ui/new-label-dialog.ui.h:12
+msgid "Vendor:"
+msgstr "Producent:"
 
-#: ../data/glade/object-editor.glade.h:2
+#: ../data/ui/object-editor.ui.h:1
+msgid " "
+msgstr " "
+
+#: ../data/ui/object-editor.ui.h:3
 #, no-c-format
 msgid "%"
 msgstr "%"
 
-#: ../data/glade/object-editor.glade.h:3
-msgid "00000000000 00000"
-msgstr "00000000000 00000"
-
-#: ../data/glade/object-editor.glade.h:4
-msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
-msgstr "<span weight=\"bold\" size=\"larger\">Xxx-objektegenskaber</span>"
-
-#: ../data/glade/object-editor.glade.h:5 ../data/glade/prefs-dialog.glade.h:7
+#: ../data/ui/object-editor.ui.h:4 ../data/ui/prefs-dialog.ui.h:2
 msgid "Alignment:"
 msgstr "Justering:"
 
-#: ../data/glade/object-editor.glade.h:6
+#: ../data/ui/object-editor.ui.h:5
 msgid "Allow merge to automatically shrink text"
 msgstr "Tillader automatisk at sammenføjning kan formindske tekst"
 
-#: ../data/glade/object-editor.glade.h:7
+#: ../data/ui/object-editor.ui.h:6
 msgid "Angle:"
 msgstr "Vinkel:"
 
+#: ../data/ui/object-editor.ui.h:7
+msgid "Backend:"
+msgstr "Motor:"
+
 # Tjekbeløb
-#: ../data/glade/object-editor.glade.h:8
+#: ../data/ui/object-editor.ui.h:8
 msgid "Checksum"
 msgstr "Kontrolsum"
 
-#: ../data/glade/object-editor.glade.h:9 ../data/glade/prefs-dialog.glade.h:8
+#: ../data/ui/object-editor.ui.h:9 ../data/ui/prefs-dialog.ui.h:3
 msgid "Color:"
 msgstr "Farve:"
 
-#: ../data/glade/object-editor.glade.h:11
+#: ../data/ui/object-editor.ui.h:11
 msgid "Enable shadow"
 msgstr "Slå skygge til"
 
-#: ../data/glade/object-editor.glade.h:12
+#: ../data/ui/object-editor.ui.h:12
 msgid "Family:"
 msgstr "Familie:"
 
-#: ../data/glade/object-editor.glade.h:13
+#: ../data/ui/object-editor.ui.h:13
 msgid "File:"
 msgstr "Fil:"
 
-#: ../data/glade/object-editor.glade.h:14
+#: ../data/ui/object-editor.ui.h:14 ../data/ui/prefs-dialog.ui.h:5
 msgid "Fill"
 msgstr "Fyld"
 
-#: ../data/glade/object-editor.glade.h:15
-#: ../data/glade/template-designer.glade.h:30
+#: ../data/ui/object-editor.ui.h:15 ../data/ui/template-designer.ui.h:33
 msgid "Height:"
 msgstr "Højde:"
 
-#: ../data/glade/object-editor.glade.h:17
-msgid "Insert merge field"
-msgstr "Indsæt sammenføjningsfelt"
-
-#: ../data/glade/object-editor.glade.h:18
+#: ../data/ui/object-editor.ui.h:17
 msgid "Key:"
 msgstr "Nøgle:"
 
-#: ../data/glade/object-editor.glade.h:19
+#: ../data/ui/object-editor.ui.h:18
 msgid "Length:"
 msgstr "Længde:"
 
-#: ../data/glade/object-editor.glade.h:21
-#: ../data/glade/prefs-dialog.glade.h:12
+#: ../data/ui/object-editor.ui.h:20 ../data/ui/prefs-dialog.ui.h:10
 msgid "Line Spacing:"
 msgstr "Linjemellemrum:"
 
-#: ../data/glade/object-editor.glade.h:22
+#: ../data/ui/object-editor.ui.h:21
 msgid "Literal:"
 msgstr "Bogstavelig:"
 
-#: ../data/glade/object-editor.glade.h:23
+#: ../data/ui/object-editor.ui.h:22
 msgid "Opacity:"
 msgstr "Ugennemsigtighed:"
 
-#: ../data/glade/object-editor.glade.h:24
+#: ../data/ui/object-editor.ui.h:23
 msgid "Position"
 msgstr "Placering"
 
-#: ../data/glade/object-editor.glade.h:25
+#: ../data/ui/object-editor.ui.h:24
 msgid "Reset image size"
 msgstr "Nulstil billedstørrelse"
 
-#: ../data/glade/object-editor.glade.h:26
-msgid "Select A File"
-msgstr "Vælg en fil"
-
-#: ../data/glade/object-editor.glade.h:27
+#: ../data/ui/object-editor.ui.h:25
 msgid "Shadow"
 msgstr "Skygge"
 
-#: ../data/glade/object-editor.glade.h:28
+#: ../data/ui/object-editor.ui.h:26
 msgid "Size"
 msgstr "Størrelse"
 
-#: ../data/glade/object-editor.glade.h:29
+#: ../data/ui/object-editor.ui.h:27
 msgid "Size:"
 msgstr "Størrelse:"
 
-#: ../data/glade/object-editor.glade.h:30
+#: ../data/ui/object-editor.ui.h:28
 msgid "Style"
 msgstr "Stil"
 
-#: ../data/glade/object-editor.glade.h:31
+#: ../data/ui/object-editor.ui.h:29
 msgid "Style:"
 msgstr "Stil:"
 
-#: ../data/glade/object-editor.glade.h:33
-#: ../data/glade/prefs-dialog.glade.h:20
-#: ../data/glade/template-designer.glade.h:61
+#: ../data/ui/object-editor.ui.h:31 ../data/ui/prefs-dialog.ui.h:20
+#: ../data/ui/template-designer.ui.h:65
 msgid "Width:"
 msgstr "Bredde:"
 
-#: ../data/glade/object-editor.glade.h:34
+#: ../data/ui/object-editor.ui.h:32
 msgid "X Offset:"
 msgstr "X-forskydning:"
 
-#: ../data/glade/object-editor.glade.h:35
+#: ../data/ui/object-editor.ui.h:33
 msgid "X:"
 msgstr "X:"
 
-#: ../data/glade/object-editor.glade.h:36
+#: ../data/ui/object-editor.ui.h:34
 msgid "Y Offset:"
 msgstr "Y-forskydning:"
 
-#: ../data/glade/object-editor.glade.h:37
+#: ../data/ui/object-editor.ui.h:35
 msgid "Y:"
 msgstr "Y:"
 
-#: ../data/glade/object-editor.glade.h:38
+#: ../data/ui/object-editor.ui.h:36
 msgid "degrees"
 msgstr "grader"
 
-#: ../data/glade/object-editor.glade.h:40
+#: ../data/ui/object-editor.ui.h:37
+msgid "dialog1"
+msgstr "dialog 1"
+
+#: ../data/ui/object-editor.ui.h:38
 msgid "digits:"
 msgstr "tal:"
 
-#: ../data/glade/object-editor.glade.h:41
+#: ../data/ui/object-editor.ui.h:39
 msgid "format:"
 msgstr "format:"
 
-#: ../data/glade/prefs-dialog.glade.h:1
+#: ../data/ui/object-editor.ui.h:41
+msgid "key:"
+msgstr "nøgle:"
+
+#: ../data/ui/prefs-dialog.ui.h:1
 msgid "   "
 msgstr "   "
 
-#: ../data/glade/prefs-dialog.glade.h:2
-msgid "<span weight=\"bold\">Default page size</span>"
-msgstr "<span weight=\"bold\">Standard for sidestørrelse</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:3
-msgid "<span weight=\"bold\">Fill</span>"
-msgstr "<span weight=\"bold\">Fyld</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:4
-msgid "<span weight=\"bold\">Line</span>"
-msgstr "<span weight=\"bold\">Linje</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:5
-msgid "<span weight=\"bold\">Text</span>"
-msgstr "<span weight=\"bold\">Tekst</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:6
-msgid "<span weight=\"bold\">Units</span>"
-msgstr "<span weight=\"bold\">Enheder</span>"
+#: ../data/ui/prefs-dialog.ui.h:4
+msgid "Default page size"
+msgstr "Standardstørrelse på side"
 
-#: ../data/glade/prefs-dialog.glade.h:9
+#: ../data/ui/prefs-dialog.ui.h:6
 msgid "Font:"
 msgstr "Skrifttype:"
 
-#: ../data/glade/prefs-dialog.glade.h:10
+#: ../data/ui/prefs-dialog.ui.h:7
 msgid "ISO A4"
 msgstr "ISO A4"
 
-#: ../data/glade/prefs-dialog.glade.h:11
+#: ../data/ui/prefs-dialog.ui.h:8
 msgid "Inches"
 msgstr "Tommer"
 
-#: ../data/glade/prefs-dialog.glade.h:13
+#: ../data/ui/prefs-dialog.ui.h:11
 msgid "Locale"
 msgstr "Sprog"
 
-#: ../data/glade/prefs-dialog.glade.h:14
+#: ../data/ui/prefs-dialog.ui.h:12
 msgid "Millimeters"
 msgstr "Millimeter"
 
-#: ../data/glade/prefs-dialog.glade.h:15
+#: ../data/ui/prefs-dialog.ui.h:13
 msgid "Object defaults"
 msgstr "Objektstandarder"
 
-#: ../data/glade/prefs-dialog.glade.h:16
+#: ../data/ui/prefs-dialog.ui.h:14
 msgid "Points"
 msgstr "Punkter"
 
-#: ../data/glade/prefs-dialog.glade.h:17
+#: ../data/ui/prefs-dialog.ui.h:15
 msgid "Select default properties for new objects."
 msgstr "Vælg standardegenskaber for nye objekter."
 
-#: ../data/glade/prefs-dialog.glade.h:18
+#: ../data/ui/prefs-dialog.ui.h:16
 msgid "Select locale specific behavior."
 msgstr "Vælg opførsel specifikt efter lokalt område."
 
-#. Most popular (at top of list)
-#: ../data/glade/prefs-dialog.glade.h:19
-#: ../data/templates/paper-sizes.xml.h:29
+#: ../data/ui/prefs-dialog.ui.h:18 ../templates/paper-sizes.xml.h:35
 msgid "US Letter"
 msgstr "US Letter"
 
-#: ../data/glade/print-custom-widget.glade.h:1
-msgid "<b>Options</b>"
-msgstr "<b>Indstillinger</b>"
-
-#: ../data/glade/print-custom-widget.glade.h:2
-msgid "<b>Print control (Merge)</b>"
-msgstr "<b>Udskrivningskontrol (sammenføj)</b>"
+#: ../data/ui/prefs-dialog.ui.h:19
+msgid "Units"
+msgstr "Enheder"
 
-#: ../data/glade/print-custom-widget.glade.h:3
-msgid "<b>Print control (Simple)</b>"
-msgstr "<b>Udskrivningskontrol (enkel)</b>"
-
-#: ../data/glade/property-bar.glade.h:1
+#: ../data/ui/property-bar.ui.h:1
 msgid "Bold"
 msgstr "Fed"
 
-#: ../data/glade/property-bar.glade.h:2
+#: ../data/ui/property-bar.ui.h:2
 msgid "Center align"
 msgstr "Centrumjustering"
 
-# skrifttypefamilie
-#: ../data/glade/property-bar.glade.h:4
-msgid "Font family"
-msgstr "Skriftfamilie"
-
-# skrifttypestørrelse
-#: ../data/glade/property-bar.glade.h:5
-msgid "Font size"
-msgstr "Skriftstørrelse"
-
-#: ../data/glade/property-bar.glade.h:6
-msgid "Italic"
-msgstr "Kursiv"
-
-#: ../data/glade/property-bar.glade.h:7
+#: ../data/ui/property-bar.ui.h:7
 msgid "Left align"
 msgstr "Venstrejustering"
 
-#: ../data/glade/property-bar.glade.h:9
-msgid "Line width"
-msgstr "Linjebredde"
-
-#: ../data/glade/property-bar.glade.h:10
+#: ../data/ui/property-bar.ui.h:10
 msgid "Right align"
 msgstr "Højrejustering"
 
-#: ../data/glade/property-bar.glade.h:11
-msgid "Text Color"
-msgstr "Tekstfarve"
-
-#: ../data/glade/property-bar.glade.h:12
-msgid "Text color"
-msgstr "Tekstfarve"
-
-#: ../data/glade/template-designer.glade.h:1
+#: ../data/ui/template-designer.ui.h:1
 msgid "(e.g., \"Mailing Labels,\" \"Business Cards,\" ...)"
 msgstr "(f.eks., \"E-post-etiketter,\" \"Forretningskort,\" ...)"
 
-#: ../data/glade/template-designer.glade.h:2
+#: ../data/ui/template-designer.ui.h:2
 msgid "(e.g., 8163A)"
 msgstr "(f.eks., 8163A)"
 
-#: ../data/glade/template-designer.glade.h:3
+#: ../data/ui/template-designer.ui.h:3
 msgid "(e.g., Avery, Acme, ...)"
 msgstr "(f.eks, Carlsberg, LEGO, ...)"
 
-#: ../data/glade/template-designer.glade.h:4
+#: ../data/ui/template-designer.ui.h:4
 msgid "1. Outer radius:"
 msgstr "1. Ydre radius:"
 
-#: ../data/glade/template-designer.glade.h:5
+#: ../data/ui/template-designer.ui.h:5
 msgid "1. Radius:"
 msgstr "1. Radius:"
 
-#: ../data/glade/template-designer.glade.h:6
+#: ../data/ui/template-designer.ui.h:6
 msgid "1. Width:"
 msgstr "1. Bredde:"
 
-#: ../data/glade/template-designer.glade.h:7
+#: ../data/ui/template-designer.ui.h:7
 msgid "2. Height:"
 msgstr "2. Højde:"
 
-#: ../data/glade/template-designer.glade.h:8
+#: ../data/ui/template-designer.ui.h:8
 msgid "2. Inner radius:"
 msgstr "2. Indre radius:"
 
-#: ../data/glade/template-designer.glade.h:9
+#: ../data/ui/template-designer.ui.h:9
 msgid "2. Waste (overprint allowed):"
 msgstr "2. Overskud (overudskrivning tilladt):"
 
-#: ../data/glade/template-designer.glade.h:10
+#: ../data/ui/template-designer.ui.h:10
 msgid "3. Clipping width:"
 msgstr "3. Klippebredde:"
 
-#: ../data/glade/template-designer.glade.h:11
+#: ../data/ui/template-designer.ui.h:11
 msgid "3. Margin"
 msgstr "3. Margen"
 
-#: ../data/glade/template-designer.glade.h:12
+#: ../data/ui/template-designer.ui.h:12
 msgid "3. Round (radius of corner):"
 msgstr "3. Rund (radius på hjørne):"
 
+#: ../data/ui/template-designer.ui.h:13
+msgid "3. Waste (overprint allowed):"
+msgstr "3. Overskud (overudskrivning tilladt):"
+
 # ingen forslag på open-tran
-#: ../data/glade/template-designer.glade.h:13
+#: ../data/ui/template-designer.ui.h:14
 msgid "4. Clipping height:"
 msgstr "4. Klippehøjde:"
 
-#: ../data/glade/template-designer.glade.h:14
+#: ../data/ui/template-designer.ui.h:15
 msgid "4. Horiz. waste (overprint allowed):"
 msgstr "4. Vandret affald (overudskrivning tilladt):"
 
-#: ../data/glade/template-designer.glade.h:15
+#: ../data/ui/template-designer.ui.h:16
+msgid "4. Margin"
+msgstr "4. Margen"
+
+#: ../data/ui/template-designer.ui.h:17
 msgid "5. Vert. waste (overprint allowed):"
 msgstr "5. Lodret affald (overudskrivning tilladt):"
 
-#: ../data/glade/template-designer.glade.h:16
+#: ../data/ui/template-designer.ui.h:18
 msgid "5. Waste (overprint allowed):"
 msgstr "5. Affald (overudskrivning tilladt):"
 
-#: ../data/glade/template-designer.glade.h:17
+#: ../data/ui/template-designer.ui.h:19
 msgid "6. Margin"
 msgstr "6. Margen"
 
-#: ../data/glade/template-designer.glade.h:18
+#: ../data/ui/template-designer.ui.h:20
 msgid "Brand/Manufacturer:"
 msgstr "Mærke/producent:"
 
-#: ../data/glade/template-designer.glade.h:19
+#: ../data/ui/template-designer.ui.h:21
 msgid "CD/DVD (including credit card CDs)"
 msgstr "Cd/dvd (inklusiv kreditkorts-cd'er)"
 
-#: ../data/glade/template-designer.glade.h:20
+#: ../data/ui/template-designer.ui.h:22
 msgid ""
 "Congratulations!\n"
 "\n"
@@ -1935,23 +2196,23 @@ msgstr ""
 "Ellers kan du trykke \"Afbryd\" for at droppe dit design\n"
 "eller \"Tilbage\" for at fortsætte med at redigere dette design."
 
-#: ../data/glade/template-designer.glade.h:27
-msgid "Description:"
-msgstr "Beskrivelse:"
-
-#: ../data/glade/template-designer.glade.h:28
+#: ../data/ui/template-designer.ui.h:30
 msgid "Distance from left edge (x0):"
 msgstr "Afstand fra venstre hjørne (x0):"
 
-#: ../data/glade/template-designer.glade.h:29
+#: ../data/ui/template-designer.ui.h:31
 msgid "Distance from top edge (y0):"
 msgstr "Afstand fra øverste hjørne (y0):"
 
-#: ../data/glade/template-designer.glade.h:31
+#: ../data/ui/template-designer.ui.h:32
+msgid "Elliptical"
+msgstr "Elliptisk"
+
+#: ../data/ui/template-designer.ui.h:34
 msgid "Horizontal pitch (dx):"
 msgstr "Vandret afstand (dx):"
 
-#: ../data/glade/template-designer.glade.h:32
+#: ../data/ui/template-designer.ui.h:35
 msgid ""
 "How many layouts will your template contain? \n"
 "\n"
@@ -1965,38 +2226,37 @@ msgstr ""
 "gitter. De fleste skabeloner skal kun bruge et layout, som i det første\n"
 "eksempel. Det andet eksempel illustrerer hvornår 2 layout er nødvendige."
 
-#: ../data/glade/template-designer.glade.h:37
+#: ../data/ui/template-designer.ui.h:40
 msgid "Layout #1"
 msgstr "Layout #1"
 
-#: ../data/glade/template-designer.glade.h:38
+#: ../data/ui/template-designer.ui.h:41
 msgid "Layout #2"
 msgstr "Layout #2"
 
+#: ../data/ui/template-designer.ui.h:42
+msgid ""
+"Note: if more than 2 layouts are required, the template must be edited "
+"manually."
+msgstr ""
+"Bemærk: Hvis der kræves mere end 2 layout, så skal skabelonen redigeres "
+"manuelt."
+
 # hvad er dette?
-#: ../data/glade/template-designer.glade.h:39
+#: ../data/ui/template-designer.ui.h:43
 msgid "Number across (nx):"
 msgstr "Antal på tværs (nx):"
 
 # hvad er dette?
-#: ../data/glade/template-designer.glade.h:40
+#: ../data/ui/template-designer.ui.h:44
 msgid "Number down (ny):"
 msgstr "Antal ned (ny):"
 
-#: ../data/glade/template-designer.glade.h:41
+#: ../data/ui/template-designer.ui.h:45
 msgid "Number of layouts:"
 msgstr "Antal layout:"
 
-#: ../data/glade/template-designer.glade.h:42
-#: ../data/glade/wdgt-media-select.glade.h:3
-msgid "Page size:"
-msgstr "Sidestørrelse:"
-
-#: ../data/glade/template-designer.glade.h:43
-msgid "Part #:"
-msgstr "Del #:"
-
-#: ../data/glade/template-designer.glade.h:44
+#: ../data/ui/template-designer.ui.h:48
 msgid ""
 "Please enter the following identifying information about the template "
 "stationery."
@@ -2004,18 +2264,18 @@ msgstr ""
 "Indtast venligst den følgende identifikationsinformation om den stationære "
 "skabelon."
 
-#: ../data/glade/template-designer.glade.h:45
+#: ../data/ui/template-designer.ui.h:49
 msgid "Please enter the following layout information."
 msgstr "Indtast venligst den følgende layoutinformation."
 
-#: ../data/glade/template-designer.glade.h:46
+#: ../data/ui/template-designer.ui.h:50
 msgid ""
 "Please enter the following size parameters of a single label in your "
 "template."
 msgstr ""
 "Indtast de følgende størrelsesparametre på en enkelt etiket i din skabelon."
 
-#: ../data/glade/template-designer.glade.h:47
+#: ../data/ui/template-designer.ui.h:51
 msgid ""
 "Please enter the following size parameters of a single label or card in your "
 "template."
@@ -2023,28 +2283,28 @@ msgstr ""
 "Indtast venligst de følgende størrelsesparametre på en enkelt etiket eller "
 "kort i din skabelon."
 
-#: ../data/glade/template-designer.glade.h:48
+#: ../data/ui/template-designer.ui.h:52
 msgid "Please select the basic shape of the labels or cards."
 msgstr "Vælg venligst den grundlæggende form på etiketterne eller kortene."
 
-#: ../data/glade/template-designer.glade.h:49
+#: ../data/ui/template-designer.ui.h:53
 msgid "Please select the page size of the template stationery."
 msgstr "Vælg venligst sidestørrelsen på den stationære skabelon."
 
-#: ../data/glade/template-designer.glade.h:50
+#: ../data/ui/template-designer.ui.h:54
 msgid "Print test sheet"
 msgstr "Udskriv testark"
 
-#: ../data/glade/template-designer.glade.h:51
+#: ../data/ui/template-designer.ui.h:55
 msgid "Rectangular or square (can have rounded corners)"
 msgstr "Rektangulær eller firkant (kan have afrundede hjørner)"
 
 # rund eller afrundet
-#: ../data/glade/template-designer.glade.h:52
+#: ../data/ui/template-designer.ui.h:56
 msgid "Round"
 msgstr "Rund"
 
-#: ../data/glade/template-designer.glade.h:53
+#: ../data/ui/template-designer.ui.h:57
 msgid ""
 "Templates needing\n"
 "two layouts."
@@ -2052,7 +2312,7 @@ msgstr ""
 "Skabeloner der\n"
 "kræver to layout."
 
-#: ../data/glade/template-designer.glade.h:55
+#: ../data/ui/template-designer.ui.h:59
 msgid ""
 "Templates needing only\n"
 "one layout."
@@ -2060,11 +2320,11 @@ msgstr ""
 "Skabeloner der kun\n"
 "kræver et layout."
 
-#: ../data/glade/template-designer.glade.h:57
+#: ../data/ui/template-designer.ui.h:61
 msgid "Vertical pitch (dy):"
 msgstr "Lodret afstand (dy):"
 
-#: ../data/glade/template-designer.glade.h:58
+#: ../data/ui/template-designer.ui.h:62
 msgid ""
 "Welcome to the gLabels Template Designer.\n"
 "\n"
@@ -2074,396 +2334,688 @@ msgstr ""
 "\n"
 "Denne guide vil assistere dig i oprettelsen af en tilpasset gLabels-skabelon."
 
-#: ../data/glade/template-designer.glade.h:62
-msgid "cd_size_page"
-msgstr "cd_størrelse_side"
+# oversættelse hentet fra dia
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:1
+msgid "Collate"
+msgstr "Saml ind"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:2
+msgid "Copies"
+msgstr "Kopier"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:3
+msgid "Copies:"
+msgstr "Kopier:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:5
+msgid "Merge Control"
+msgstr "Sammenføjningskontrol"
 
-#: ../data/glade/template-designer.glade.h:63
-msgid "finish_page"
-msgstr "afslut_side"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:6
+msgid "Options"
+msgstr "Indstillinger"
 
-#: ../data/glade/template-designer.glade.h:65
-msgid "layout_page"
-msgstr "layout_side"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:7
+msgid "Sheets:"
+msgstr "Ark:"
 
-#: ../data/glade/template-designer.glade.h:66
-msgid "name_page"
-msgstr "navn_side"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:8
+msgid "Start on label"
+msgstr "Start på etiket"
 
-#: ../data/glade/template-designer.glade.h:67
-msgid "nlayouts_page"
-msgstr "nlayout_side"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:9
+msgid "from:"
+msgstr "fra:"
 
-# ingen ide om de her
-#: ../data/glade/template-designer.glade.h:68
-msgid "pg_size_page"
-msgstr "pg_størrelse_side"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:10
+msgid "on 1st sheet"
+msgstr "på 1. ark"
 
-#: ../data/glade/template-designer.glade.h:69
-msgid "rect_size_page"
-msgstr "rect_størrelse_side"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:14
+msgid "to:"
+msgstr "til:"
 
-#: ../data/glade/template-designer.glade.h:70
-msgid "round_size_page"
-msgstr "rund_størrelse_side"
+# "Kontrollerer" kan godt gå an, men hellere "angiver" eller "bestemmer"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:1
+msgid "Controls maximum number of recent files tracked."
+msgstr "Kontrollerer det maksimale antal seneste filer som huskes."
 
-#: ../data/glade/template-designer.glade.h:71
-msgid "shape_page"
-msgstr "form_side"
+# hellere "synligheden for"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:2
+msgid "Controls visibility of drawing toolbar."
+msgstr "Kontrollerer synligheden på tegneværktøjsbjælken."
 
-#: ../data/glade/template-designer.glade.h:72
-msgid "start_page"
-msgstr "start_side"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:3
+msgid "Controls visibility of grid."
+msgstr "Kontrollerer synligheden på gitter."
 
-#: ../data/glade/wdgt-media-select.glade.h:1
-msgid "Brand:"
-msgstr "Mærke:"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:4
+msgid "Controls visibility of main toolbar."
+msgstr "Kontrollerer synligheden på hovedværktøjsbjælken."
 
-#: ../data/glade/wdgt-media-select.glade.h:2
-msgid "Category:"
-msgstr "Kategori:"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:5
+msgid "Controls visibility of markup lines."
+msgstr "Kontrollerer synligheden på opmærkningslinjerne."
 
-#: ../data/glade/wdgt-media-select.glade.h:4
-msgid "Recent templates"
-msgstr "Seneste skabeloner"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:6
+msgid "Controls visibility of property toolbar."
+msgstr "Kontrollerer synligheden på egenskabsværktøjsbjælken."
 
-#: ../data/glade/wdgt-media-select.glade.h:5
-msgid "Search all templates"
-msgstr "Søg i alle skabeloner"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:7
+msgid "Default fill color."
+msgstr "Standardudfyldningsfarve."
 
-#: ../data/glade/wdgt-rotate-label.glade.h:1
-msgid "Rotate"
-msgstr "Roter"
+# skrifttypefamilie
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:8
+msgid "Default font family."
+msgstr "Standardskriftfamilie."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:9
+msgid "Default font italic flag."
+msgstr "Standardskrifttype for kursivflag."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:10
+msgid "Default font size."
+msgstr "Standardstørrelse på skrifttype."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:11
+msgid "Default font weight."
+msgstr "Standardskrifttypevægt."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:12
+msgid "Default line color."
+msgstr "Standardlinjefarve."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:13
+msgid "Default line width."
+msgstr "Standardlinjebredde."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:14
+msgid "Default page size."
+msgstr "Standardstørrelse på side."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:15
+msgid "Default text alignment."
+msgstr "Standardtekstjustering."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:16
+msgid "Default text color."
+msgstr "Standardtekstfarve."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:17
+msgid "Default text line spacing."
+msgstr "Standardmellemrum mellem linjer."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:18
+msgid "Maximum recent files."
+msgstr "Maksimalt antal seneste filer."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:19
+msgid "Recent colors."
+msgstr "Seneste farver."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:20
+msgid "Recent fonts."
+msgstr "Seneste skrifttyper."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:21
+msgid "Recent templates."
+msgstr "Seneste skabeloner."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:22
+msgid "Recently created custom colors."
+msgstr "Seneste oprettede tilpassede farver."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:23
+msgid "Recently used font families."
+msgstr "Seneste brugte skriftfamilier."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:24
+msgid "Recently used templates."
+msgstr "Seneste brugte skabeloner."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:25
+msgid "Show/hide drawing toolbar."
+msgstr "Vis/skjul tegneværktøjsbjælke."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:26
+msgid "Show/hide grid."
+msgstr "Vis/skjul gitter."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:27
+msgid "Show/hide main toolbar."
+msgstr "Vis/skjul hovedværktøjsbjælke."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:28
+msgid "Show/hide markup."
+msgstr "Vis/skjul opmærkning."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:29
+msgid "Show/hide property toolbar."
+msgstr "Vis/skjul egenskabsværktøjsbjælke."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:30
+msgid "The default color of text for new text objects (0xRRGGBBAA)."
+msgstr "Standardtekstfarven på nye tekstobjekter (0xRRGGBBAA)."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:31
+msgid "The default fill color new objects (0xRRGGBBAA)."
+msgstr "Standardudfyldningsfarven på nye objekter (0xRRGGBBAA)."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:32
+msgid "The default font family for new text objects."
+msgstr "Standardskriftfamilien for nye tekstobjekter."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:33
+msgid "The default font italic state for new text objects."
+msgstr "Standardtilstanden for skrifttypen kursiv på nye objekter."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:34
+msgid "The default font size for new text objects."
+msgstr "Standardskriftstørrelsen på nye tekstobjekter."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:35
+msgid "The default font weight for new text objects."
+msgstr "Standardskriftvægten på nye tekstobjekter."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:36
+msgid "The default line color new objects (0xRRGGBBAA)."
+msgstr "Standardlinjefarven på nye objekter (0xRRGGBBAA)."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:37
+msgid "The default line spacing for new text objects."
+msgstr "Standardlinjemellemrum på nye tekstobjekter."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:38
+msgid "The default line width for new objects."
+msgstr "Standardlinjebredden på nye objekter."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:39
+msgid "The default text alignment for new text objects."
+msgstr "Standardtekstjusteringen på nye tekstobjekter."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:40
+msgid "The default unit of measurement."
+msgstr "Standardmåleenheden."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:41
+msgid "The preferred page size when searching templates."
+msgstr "Den foretrukne sidestørrelse når der søges i skabeloner."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:42
+msgid "Units."
+msgstr "Enheder."
+
+#: ../data/desktop/glabels-3.0.desktop.in.h:1
+msgid "Create labels, business cards and media covers"
+msgstr "Opret etiketter, forretningskort og mediecovere"
+
+#: ../data/desktop/glabels-3.0.desktop.in.h:2
+msgid "gLabels Label Designer 3"
+msgstr "gLabels 3 - etiketdesigner"
+
+#: ../data/mime/glabels-3.0.xml.in.h:1
+msgid "gLabels Project File"
+msgstr "gLabels' projektfil"
+
+#. Envelopes
+#: ../templates/paper-sizes.xml.h:2
+msgid "#10 Envelope"
+msgstr "#10 konvolut"
 
 #. Other ISO A series sizes
-#: ../data/templates/paper-sizes.xml.h:2
+#: ../templates/paper-sizes.xml.h:4
 msgid "A0"
 msgstr "A0"
 
-#: ../data/templates/paper-sizes.xml.h:3
+#: ../templates/paper-sizes.xml.h:5
 msgid "A1"
 msgstr "A1"
 
-#: ../data/templates/paper-sizes.xml.h:4
+#: ../templates/paper-sizes.xml.h:6
 msgid "A10"
 msgstr "A10"
 
-#: ../data/templates/paper-sizes.xml.h:5
+#: ../templates/paper-sizes.xml.h:7
 msgid "A2"
 msgstr "A2"
 
-#: ../data/templates/paper-sizes.xml.h:6
+#: ../templates/paper-sizes.xml.h:8
 msgid "A3"
 msgstr "A3"
 
-#: ../data/templates/paper-sizes.xml.h:7
+#. Most popular (at top of list)
+#: ../templates/paper-sizes.xml.h:10
 msgid "A4"
 msgstr "A4"
 
-#: ../data/templates/paper-sizes.xml.h:8
+#: ../templates/paper-sizes.xml.h:11
 msgid "A5"
 msgstr "A5"
 
-#: ../data/templates/paper-sizes.xml.h:9
+#: ../templates/paper-sizes.xml.h:12
 msgid "A6"
 msgstr "A6"
 
-#: ../data/templates/paper-sizes.xml.h:10
+#: ../templates/paper-sizes.xml.h:13
 msgid "A7"
 msgstr "A7"
 
-#: ../data/templates/paper-sizes.xml.h:11
+#: ../templates/paper-sizes.xml.h:14
 msgid "A8"
 msgstr "A8"
 
-#: ../data/templates/paper-sizes.xml.h:12
+#: ../templates/paper-sizes.xml.h:15
 msgid "A9"
 msgstr "A9"
 
 #. ISO B series sizes
-#: ../data/templates/paper-sizes.xml.h:14
+#: ../templates/paper-sizes.xml.h:17
 msgid "B0"
 msgstr "B0"
 
-#: ../data/templates/paper-sizes.xml.h:15
+#: ../templates/paper-sizes.xml.h:18
 msgid "B1"
 msgstr "B1"
 
-#: ../data/templates/paper-sizes.xml.h:16
+#: ../templates/paper-sizes.xml.h:19
 msgid "B10"
 msgstr "B10"
 
-#: ../data/templates/paper-sizes.xml.h:17
+#: ../templates/paper-sizes.xml.h:20
 msgid "B2"
 msgstr "B2"
 
-#: ../data/templates/paper-sizes.xml.h:18
+#: ../templates/paper-sizes.xml.h:21
 msgid "B3"
 msgstr "B3"
 
-#: ../data/templates/paper-sizes.xml.h:19
+#: ../templates/paper-sizes.xml.h:22
 msgid "B4"
 msgstr "B4"
 
-#: ../data/templates/paper-sizes.xml.h:20
+#: ../templates/paper-sizes.xml.h:23
 msgid "B5"
 msgstr "B5"
 
-#: ../data/templates/paper-sizes.xml.h:21
+#: ../templates/paper-sizes.xml.h:24
 msgid "B6"
 msgstr "B6"
 
-#: ../data/templates/paper-sizes.xml.h:22
+#: ../templates/paper-sizes.xml.h:25
 msgid "B7"
 msgstr "B7"
 
-#: ../data/templates/paper-sizes.xml.h:23
+#: ../templates/paper-sizes.xml.h:26
 msgid "B8"
 msgstr "B8"
 
-#: ../data/templates/paper-sizes.xml.h:24
+#: ../templates/paper-sizes.xml.h:27
 msgid "B9"
 msgstr "B9"
 
-#: ../data/templates/paper-sizes.xml.h:25
+#: ../templates/paper-sizes.xml.h:28
+msgid "C5"
+msgstr "C5"
+
+#: ../templates/paper-sizes.xml.h:29
+msgid "C6"
+msgstr "C6"
+
+#: ../templates/paper-sizes.xml.h:30
+msgid "DL"
+msgstr "DL"
+
+#: ../templates/paper-sizes.xml.h:31
+msgid "Monarch Envelope"
+msgstr "Monarkkonvolut"
+
+#: ../templates/paper-sizes.xml.h:32
 msgid "US Executive"
 msgstr "US Executive"
 
 #. Other US paper sizes
-#: ../data/templates/paper-sizes.xml.h:27
+#: ../templates/paper-sizes.xml.h:34
 msgid "US Legal"
 msgstr "US Legal"
 
-#: ../data/templates/categories.xml.h:1
+#: ../templates/categories.xml.h:1
 msgid "Any card"
 msgstr "Ethvert kort"
 
-#: ../data/templates/categories.xml.h:2
+#: ../templates/categories.xml.h:2
 msgid "Any label"
 msgstr "Enhver etiket"
 
-#: ../data/templates/categories.xml.h:3
+#. ===================================================================
+#. ====================================================================
+#. ===================================================================
+#: ../templates/categories.xml.h:3 ../templates/dataline-iso-templates.xml.h:4
+#: ../templates/geha-iso-templates.xml.h:8
+#: ../templates/hama-iso-templates.xml.h:6
+#: ../templates/pearl-iso-templates.xml.h:8
 msgid "Business cards"
 msgstr "Forretningskort"
 
-#: ../data/templates/categories.xml.h:4
+#: ../templates/categories.xml.h:4
 msgid "CD/DVD or other media"
 msgstr "Cd/dvd eller andet medie"
 
-#: ../data/templates/categories.xml.h:5
+#. ===================================================================
+#: ../templates/categories.xml.h:5 ../templates/pearl-iso-templates.xml.h:28
+msgid "Elliptical labels"
+msgstr "Elliptiske etiketter"
+
+# Man kunne også bruge "Kort der skal foldes"
+#: ../templates/categories.xml.h:6
+msgid "Foldable cards"
+msgstr "Foldbare kort"
+
+#: ../templates/categories.xml.h:7
 msgid "Mailing/shipping products"
 msgstr "Post-/forsendelsesprodukter"
 
-#: ../data/templates/categories.xml.h:6
+#: ../templates/categories.xml.h:8
+msgid "Photo products"
+msgstr "Billedprodukter"
+
+#. ===================================================================
+#. ====================================================================
+#. ===================================================================
+#. ********************************************************************
+#: ../templates/categories.xml.h:9 ../templates/ascom-iso-templates.xml.h:6
+#: ../templates/hama-iso-templates.xml.h:29
+#: ../templates/herma-iso-templates.xml.h:18
+#: ../templates/jac-iso-templates.xml.h:8
 msgid "Rectangular labels"
 msgstr "Rektangulære etiketter"
 
-#: ../data/templates/categories.xml.h:7
+#. ====================================================================
+#. ===================================================================
+#: ../templates/categories.xml.h:10 ../templates/hama-iso-templates.xml.h:31
+#: ../templates/pearl-iso-templates.xml.h:54
 msgid "Round labels"
 msgstr "Afrundede etiketter"
 
-#: ../data/templates/categories.xml.h:8
+#. ====================================================================
+#: ../templates/categories.xml.h:11 ../templates/hama-iso-templates.xml.h:33
 msgid "Square labels"
 msgstr "Firkantede etiketter"
 
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:2
-#: ../data/templates/avery-us-templates.xml.h:2
-#: ../data/templates/dymo-other-templates.xml.h:4
-#: ../data/templates/misc-iso-templates.xml.h:2
-#: ../data/templates/zweckform-iso-templates.xml.h:2
-msgid "Address Labels"
-msgstr "Adresseetiketter"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:4
-msgid "Address labels"
-msgstr "Adresseetiketter"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:6
-msgid "Allround labels"
-msgstr "Allroundetiketter"
-
-#. ============================================================
-#. ===================================================================
-#. ********************************************************************
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:8
-#: ../data/templates/avery-us-templates.xml.h:4
-#: ../data/templates/misc-iso-templates.xml.h:12
-#: ../data/templates/misc-us-templates.xml.h:4
-#: ../data/templates/zweckform-iso-templates.xml.h:6
-msgid "Business Cards"
-msgstr "Forretningskort"
-
-#. ===============================================================
-#: ../data/templates/avery-iso-templates.xml.h:10
-msgid "CD Booklet"
-msgstr "Cd-brochure"
-
 # nogen med et bedre ord?
+#. ===================================================================
 #. ===============================================================
-#: ../data/templates/avery-iso-templates.xml.h:12
+#: ../templates/ascom-iso-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:10
 msgid "CD Inlet"
 msgstr "Cd-inlet"
 
-#. ===============================================================
+#. TODO: Is this the real part #?
+#. ============================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:14
-#: ../data/templates/avery-us-templates.xml.h:6
-#: ../data/templates/misc-iso-templates.xml.h:16
-#: ../data/templates/misc-us-templates.xml.h:8
-#: ../data/templates/zweckform-iso-templates.xml.h:8
-msgid "CD/DVD Labels"
-msgstr "Cd-/dvd-etiketter"
-
+#. ====================================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:16
-#: ../data/templates/avery-us-templates.xml.h:12
-msgid "Diskette Labels"
-msgstr "Disketteetiketter"
-
+#. TODO: What is the actual part #?
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:18
-msgid "Diskette labels"
-msgstr "Disketteetiketter"
+#: ../templates/ascom-iso-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:30
+#: ../templates/databecker-iso-templates.xml.h:10
+#: ../templates/hama-iso-templates.xml.h:27
+#: ../templates/herma-iso-templates.xml.h:16
+#: ../templates/misc-iso-templates.xml.h:30
+#: ../templates/zweckform-iso-templates.xml.h:28
+msgid "Rectangular Labels"
+msgstr "Rektangulære etiketter"
 
-#. ===============================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:20
-#: ../data/templates/misc-iso-templates.xml.h:36
-#: ../data/templates/misc-us-templates.xml.h:18
-#: ../data/templates/zweckform-iso-templates.xml.h:16
-msgid "Mailing Labels"
-msgstr "Postetiketter"
+#: ../templates/ascom-iso-templates.xml.h:8
+#: ../templates/avery-us-templates.xml.h:46
+#: ../templates/geha-iso-templates.xml.h:29
+#: ../templates/meritline-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:12
+msgid "Video Tape Spine Labels"
+msgstr "Rygetiketter til videobånd"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:22
-msgid "Mailing labels"
-msgstr "Postetiketter"
-
+#. ********************************************************************
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:24
-msgid "Mini Address Labels"
-msgstr "Miniadresseetiketter"
+#: ../templates/avery-us-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:2
+#: ../templates/databecker-iso-templates.xml.h:2
+#: ../templates/dymo-other-templates.xml.h:4
+#: ../templates/geha-iso-templates.xml.h:2
+#: ../templates/maco-us-templates.xml.h:2
+#: ../templates/meritline-us-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:1
+#: ../templates/zweckform-iso-templates.xml.h:2
+msgid "Address Labels"
+msgstr "Adresseetiketter"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:26
-msgid "Mini Labels"
-msgstr "Minietiketter"
-
+#. ============================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:28
-msgid "Shipping labels"
-msgstr "Forsendelsesetiketter"
+#. TODO: Is this the actual part #?
+#. ============================================================
+#: ../templates/avery-us-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:8
+#: ../templates/databecker-iso-templates.xml.h:4
+#: ../templates/dataline-iso-templates.xml.h:2
+#: ../templates/decadry-iso-templates.xml.h:2
+#: ../templates/misc-us-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:6
+#: ../templates/zweckform-iso-templates.xml.h:6
+msgid "Business Cards"
+msgstr "Forretningskort"
 
 #. ===================================================================
-#: ../data/templates/avery-other-templates.xml.h:2
-msgid "File Folder Labels"
-msgstr "Filmappeetiketter"
+#. ===============================================================
+#. ===================================================================
+#. ********************************************************************
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:6
+#: ../templates/avery-iso-templates.xml.h:14
+#: ../templates/geha-iso-templates.xml.h:11
+#: ../templates/herma-iso-templates.xml.h:10
+#: ../templates/jac-iso-templates.xml.h:2
+#: ../templates/misc-us-templates.xml.h:8
+#: ../templates/misc-iso-templates.xml.h:10
+#: ../templates/pearl-iso-templates.xml.h:24
+#: ../templates/worldlabel-us-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:12
+msgid "CD/DVD Labels"
+msgstr "Cd-/dvd-etiketter"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:8
+#: ../templates/avery-us-templates.xml.h:8
 msgid "CD/DVD Labels (Disc Labels)"
 msgstr "Cd-/dvd-etiketter (disketteetiketter)"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:10
+#: ../templates/avery-us-templates.xml.h:10
 msgid "CD/DVD Labels (Spine Labels)"
 msgstr "Cd/dvd-etiketter (rygetiketter)"
 
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:12
+#: ../templates/avery-iso-templates.xml.h:16
+#: ../templates/meritline-us-templates.xml.h:4
+#: ../templates/worldlabel-us-templates.xml.h:3
+msgid "Diskette Labels"
+msgstr "Disketteetiketter"
+
 #. the LSK labels can be torn in half down the center
-#: ../data/templates/avery-us-templates.xml.h:14
+#: ../templates/avery-us-templates.xml.h:14
 msgid "Divider Labels"
 msgstr "Adskillelsesetiketter"
 
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:16
+#: ../templates/avery-other-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:4
+msgid "File Folder Labels"
+msgstr "Filmappeetiketter"
+
 # manglende l i filing? ja medmindre det betyder arkiveringsetiketter 
 # som måske også giver lidt mere mening.
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:16
+#: ../templates/avery-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:5
 msgid "Filing Labels"
 msgstr "Arkiveringsetiketter"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:18
+#: ../templates/avery-us-templates.xml.h:20
+#: ../templates/meritline-us-templates.xml.h:6
+#: ../templates/worldlabel-us-templates.xml.h:6
 msgid "Full Sheet Labels"
 msgstr "Fuldarksetiketter"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:20
+#: ../templates/avery-us-templates.xml.h:22
 msgid "ID Labels"
 msgstr "Id-etiketter"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:22
+#: ../templates/avery-us-templates.xml.h:24
 msgid "Index Cards"
 msgstr "Indekskort"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:24
+#: ../templates/avery-us-templates.xml.h:26
 msgid "Large Round Labels"
 msgstr "Store afrundede etiketter"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:26
+#: ../templates/avery-us-templates.xml.h:28
 msgid "Name Badge Labels"
 msgstr "Navneskiltsetiketter"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:28
+#: ../templates/avery-us-templates.xml.h:30
 msgid "Post cards"
 msgstr "Postkort"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:30
-#: ../data/templates/dymo-other-templates.xml.h:12
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:32
+#: ../templates/dymo-other-templates.xml.h:12
+#: ../templates/meritline-us-templates.xml.h:10
+#: ../templates/worldlabel-us-templates.xml.h:8
 msgid "Return Address Labels"
 msgstr "Returadresseetiketter"
 
 # runde eller afrundede
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:32
-#: ../data/templates/misc-us-templates.xml.h:28
+#: ../templates/avery-us-templates.xml.h:34
+#: ../templates/maco-us-templates.xml.h:3
+#: ../templates/meritline-us-templates.xml.h:12
+#: ../templates/misc-us-templates.xml.h:30
+#: ../templates/worldlabel-us-templates.xml.h:9
 msgid "Round Labels"
 msgstr "Runde etiketter"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:34
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:36
+#: ../templates/dataline-iso-templates.xml.h:10
+#: ../templates/meritline-us-templates.xml.h:14
+#: ../templates/uline-us-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:10
 msgid "Shipping Labels"
 msgstr "Forsendelsesetiketter"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:36
+#: ../templates/avery-us-templates.xml.h:38
 msgid "Small Round Labels"
 msgstr "Små runde etiketter"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:38
+#: ../templates/avery-us-templates.xml.h:40
 msgid "Square Labels"
 msgstr "Firkantetiketter"
 
 # nogen der ved hvad tent er? Open-tran har den ikke.
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:40
+#: ../templates/avery-us-templates.xml.h:42
 msgid "Tent Cards"
 msgstr "Tent-kort"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:42
+#: ../templates/avery-us-templates.xml.h:44
+#: ../templates/geha-iso-templates.xml.h:27
+#: ../templates/meritline-us-templates.xml.h:16
+#: ../templates/worldlabel-us-templates.xml.h:11
 msgid "Video Tape Face Labels"
 msgstr "Frontetiketter til videobånd"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:44
-msgid "Video Tape Spine Labels"
-msgstr "Rygetiketter til videobånd"
+#: ../templates/avery-iso-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:2
+msgid "Address labels"
+msgstr "Adresseetiketter"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:6
+msgid "Allround labels"
+msgstr "Allroundetiketter"
+
+#. ===============================================================
+#: ../templates/avery-iso-templates.xml.h:10
+#: ../templates/zweckform-iso-templates.xml.h:8
+msgid "CD Booklet"
+msgstr "Cd-brochure"
+
+#. ===================================================================
+#. ====================================================================
+#: ../templates/avery-iso-templates.xml.h:18
+#: ../templates/hama-iso-templates.xml.h:17
+msgid "Diskette labels"
+msgstr "Disketteetiketter"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:20
+msgid "Identification Labels"
+msgstr "Identificeringsetiketter"
+
+#. ===============================================================
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:22
+#: ../templates/decadry-iso-templates.xml.h:4
+#: ../templates/herma-iso-templates.xml.h:14
+#: ../templates/misc-us-templates.xml.h:20
+#: ../templates/misc-iso-templates.xml.h:26
+#: ../templates/zweckform-iso-templates.xml.h:20
+msgid "Mailing Labels"
+msgstr "Postetiketter"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:24
+#: ../templates/decadry-iso-templates.xml.h:6
+msgid "Mailing labels"
+msgstr "Postetiketter"
 
-#: ../data/templates/brother-other-templates.xml.h:1
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:26
+msgid "Mini Address Labels"
+msgstr "Miniadresseetiketter"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:28
+msgid "Mini Labels"
+msgstr "Minietiketter"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:32
+msgid "Shipping labels"
+msgstr "Forsendelsesetiketter"
+
+#: ../templates/brother-other-templates.xml.h:1
 msgid "Multi Purpose Labels 17mm x 54mm"
 msgstr "Multietiketter 17mm x 54mm"
 
-#: ../data/templates/brother-other-templates.xml.h:2
+#: ../templates/brother-other-templates.xml.h:2
 msgid "Shipping Labels 62mm x 100mm"
 msgstr "Forsendelsesetiketter 62mm x 100mm"
 
@@ -2484,283 +3036,655 @@ msgstr "Forsendelsesetiketter 62mm x 100mm"
 #. *********************************************************************
 #. *********************************************************************
 #.
-#: ../data/templates/brother-other-templates.xml.h:20
+#: ../templates/brother-other-templates.xml.h:20
 msgid "Standard Address Labels 29mm x 90mm"
 msgstr "Standardadresseetiketter 29mm x 90mm"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:2
+#: ../templates/databecker-iso-templates.xml.h:6
+#: ../templates/misc-iso-templates.xml.h:8
+msgid "CD Labels"
+msgstr "Cd-etiketter"
+
+#. ===================================================================
+#: ../templates/databecker-iso-templates.xml.h:8
+msgid "CD/DVD Labels Standard Format (face only)"
+msgstr "Cd/dvd-etiketter i standardformat (kun front)"
+
+#. ===================================================================
+#. ====================================================================
+#: ../templates/dataline-iso-templates.xml.h:6
+#: ../templates/hama-iso-templates.xml.h:13
+msgid "CD/DVD labels"
+msgstr "Cd-/dvd-etiketter"
+
+#. ===================================================================
+#: ../templates/dataline-iso-templates.xml.h:8
+#: ../templates/pearl-iso-templates.xml.h:42
+msgid "Membership cards"
+msgstr "Medlemskort"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:2
 msgid "3.5in Diskette"
 msgstr "3,5 tomme diskette"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:6
+#: ../templates/dymo-other-templates.xml.h:6
 msgid "File Folder"
 msgstr "Filmappe"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:8
+#: ../templates/dymo-other-templates.xml.h:8
 msgid "Hanging Folder"
 msgstr "Hængemappe"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:10
+#: ../templates/dymo-other-templates.xml.h:10
+#: ../templates/geha-iso-templates.xml.h:19
 msgid "Large Address Labels"
 msgstr "Store adresseetiketter"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:14
+#: ../templates/dymo-other-templates.xml.h:14
 msgid "Shipping Address Labels"
 msgstr "Forsendelsesadresseetiketter"
 
-#. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:4
-#: ../data/templates/zweckform-iso-templates.xml.h:4
-msgid "Allround Labels"
-msgstr "Allroundetiketter"
-
 # i tvivl om der med arch her menes buet
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:6
+#. ====================================================================
+#. ===================================================================
+#: ../templates/geha-iso-templates.xml.h:4
+#: ../templates/hama-iso-templates.xml.h:2
+#: ../templates/herma-iso-templates.xml.h:4
 msgid "Arch File Labels"
 msgstr "Buet filetiketter"
 
+# i tvivl om der med arch her menes buet
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:8
-msgid "Arch File Labels (large)"
-msgstr "Buet filetiketter (stor)"
+#: ../templates/geha-iso-templates.xml.h:6
+msgid "Arch File inserts"
+msgstr "Buet filindlæg"
 
-#. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:10
-msgid "Arch File Labels (small)"
-msgstr "Buet filetiketter (lille)"
+#: ../templates/geha-iso-templates.xml.h:9
+msgid "CD/DVD Inlet"
+msgstr "Cd/dvd-inlet"
 
+# nogen med et bedre ord?
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:14
-msgid "CD Labels"
-msgstr "Cd-etiketter"
-
+#. ====================================================================
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:18
-#: ../data/templates/misc-us-templates.xml.h:12
-msgid "CD/DVD Labels (face only)"
-msgstr "Cd/dvd-etiketter (kun front)"
+#: ../templates/geha-iso-templates.xml.h:13
+#: ../templates/hama-iso-templates.xml.h:15
+#: ../templates/pearl-iso-templates.xml.h:26
+msgid "DVD inlet"
+msgstr "Dvd-inlet"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:20
-msgid "CD/DVD Labels Standard Format (face only)"
-msgstr "Cd/dvd-etiketter i standardformat (kun front)"
+#: ../templates/geha-iso-templates.xml.h:15
+msgid "Flyer paper"
+msgstr "Folder"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:22
-msgid "Diskette Labels (face only)"
-msgstr "Disketteetiketter (kun front)"
+#. ====================================================================
+#: ../templates/geha-iso-templates.xml.h:17
+#: ../templates/hama-iso-templates.xml.h:19
+msgid "Greeting cards"
+msgstr "Lykønskningskort"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:24
-msgid "EPSON Photo Stickers 16"
-msgstr "EPSONs fotostickers 16"
+#: ../templates/geha-iso-templates.xml.h:21
+#: ../templates/misc-other-templates.xml.h:2
+msgid "Multi-Purpose Labels"
+msgstr "Etiketter til flere formål"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:26
-msgid "Etiketten"
-msgstr "Etiketter"
+#: ../templates/geha-iso-templates.xml.h:23
+msgid "Passport photo labels"
+msgstr "Pasfotoetiketter"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:28
-msgid "Fridge Magnet Stickers"
-msgstr "Klistermærker til køleskabsmagneter"
-
+#. ====================================================================
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:30
-msgid "General Labels"
-msgstr "Generelle etiketter"
+#: ../templates/geha-iso-templates.xml.h:25
+#: ../templates/hama-iso-templates.xml.h:23
+#: ../templates/pearl-iso-templates.xml.h:50
+msgid "Photo labels"
+msgstr "Fotoetiketter"
 
-#. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:32
-msgid "Inkjet/Laser Labels 70x37mm"
-msgstr "Inkjet-/laseretiketter 70x37mm"
+# i tvivl om der med arch her menes buet
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:4
+msgid "Arch File labels"
+msgstr "Buet filetiketter"
+
+# nogen med et bedre ord?
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:8
+msgid "CD inlet"
+msgstr "Cd-inlet"
 
+# nogen med et bedre ord?
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:38
-msgid "Mailing Labels-2 columns"
-msgstr "Postetiketter - 2 kolonner"
+#: ../templates/hama-iso-templates.xml.h:9
+#: ../templates/pearl-iso-templates.xml.h:20
+msgid "CD inlet (back)"
+msgstr "Cd-inlet (bagside)"
+
+#. ====================================================================
+#. ===================================================================
+#: ../templates/hama-iso-templates.xml.h:11
+#: ../templates/pearl-iso-templates.xml.h:22
+msgid "CD inlet (front)"
+msgstr "Cd-inlet (front)"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:21
+msgid "Mini Disc labels"
+msgstr "Minidisketiketter"
+
+# Evt. "Musemåtte der skal udskrives"
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:25
+msgid "Printable mousepad"
+msgstr "Udskrivbar musemåtte"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:35
+msgid "VHS inlet"
+msgstr "VHS-inlet"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:37
+msgid "VHS-C inlet"
+msgstr "VHS-C-inlet"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:39
+msgid "Video-8 inlet"
+msgstr "Video-8-inlet"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:41
+msgid "Zip disc inlet"
+msgstr "Zipdisk-inlet"
+
+# msgstr "Floppydisketiketter"
+# Etiketter til disketter
+# eller 'til floppydisk' el. lign.
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:43
+msgid "Zip disc labels"
+msgstr "Zipdisk-etiketter"
+
+#. ===================================================================
+#: ../templates/herma-iso-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:4
+msgid "Allround Labels"
+msgstr "Allroundetiketter"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:40
-msgid "Mailing Labels-3 columns"
-msgstr "Postetiketter - 3 kolonner"
+#: ../templates/herma-iso-templates.xml.h:6
+msgid "Arch File Labels (large)"
+msgstr "Buet filetiketter (stor)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:42
-#: ../data/templates/misc-us-templates.xml.h:26
-msgid "PRO CD Labels 2-up (face only)"
-msgstr "PRO CD-etiketter 2-up (kun front)"
+#: ../templates/herma-iso-templates.xml.h:8
+msgid "Arch File Labels (small)"
+msgstr "Buet filetiketter (lille)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:44
-#: ../data/templates/zweckform-iso-templates.xml.h:24
-msgid "Rectangular Labels"
-msgstr "Rektangulære etiketter"
+#: ../templates/herma-iso-templates.xml.h:12
+msgid "Diskette Labels (face only)"
+msgstr "Disketteetiketter (kun front)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:46
+#: ../templates/herma-iso-templates.xml.h:20
 msgid "Video Labels (face only)"
 msgstr "Videoetiketter (kun front)"
 
+#. *******************************************************************
 #. ===================================================================
-#: ../data/templates/misc-other-templates.xml.h:2
-msgid "Multi-Purpose Labels"
-msgstr "Etiketter til flere formål"
+#: ../templates/jac-iso-templates.xml.h:4
+#: ../templates/pearl-iso-templates.xml.h:36
+msgid "Labels A4"
+msgstr "Etiketter A4"
+
+#. *******************************************************************
+#: ../templates/jac-iso-templates.xml.h:6
+msgid "PVC labels"
+msgstr "PVC-etiketter"
+
+#. ===================================================================
+#: ../templates/meritline-us-templates.xml.h:8
+msgid "Mini-CD Labels"
+msgstr "Mini-cd-etiketter"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:2
+#: ../templates/misc-us-templates.xml.h:2
 msgid "Business Card CD"
 msgstr "Forretningskort-cd"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:6
+#: ../templates/misc-us-templates.xml.h:6
 msgid "CD Template Rectangles"
 msgstr "Cd-skabelon - rektangler"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:10
+#: ../templates/misc-us-templates.xml.h:10
 msgid "CD/DVD Labels (Face Only)"
 msgstr "Cd/dvd-etiketter (kun front)"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:14
+#. TODO: Is this the actual part #?
+#: ../templates/misc-us-templates.xml.h:12
+#: ../templates/misc-iso-templates.xml.h:12
+msgid "CD/DVD Labels (face only)"
+msgstr "Cd/dvd-etiketter (kun front)"
+
+#. TODO: Is this the actual part #?
+#: ../templates/misc-us-templates.xml.h:14
 msgid "Cassette Labels"
 msgstr "Kassetteetiketter"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:16
+#: ../templates/misc-us-templates.xml.h:16
 msgid "DLT Labels"
 msgstr "DLT-etiketter"
 
+# "Gennemsigtig cd-brochure"
+# Jeg tror Cd-brochure er bedre.  Det er jo cd-æsken der er gennemsigtig
+# og ikke brochuren
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:20
+#: ../templates/misc-us-templates.xml.h:18
+msgid "Jewel Case Booklet"
+msgstr "Cd-brochure til cd-cover"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:22
 msgid "Microtube labels"
 msgstr "Mikrotubeetiketter"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:22
-msgid "Mini-CD Labels"
-msgstr "Mini-cd-etiketter"
-
-#: ../data/templates/misc-us-templates.xml.h:23
+#: ../templates/misc-us-templates.xml.h:24
 msgid "PRO CD Labels 2-up (CD spine only)"
 msgstr "PRO CD-etiketter 2-up (kun cd-ryg)"
 
-#: ../data/templates/misc-us-templates.xml.h:24
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:26
 msgid "PRO CD Labels 2-up (Face only)"
 msgstr "PRO CD-etiketter 2-up (kun front)"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:30
+#. TODO: Is this the actual part #?
+#: ../templates/misc-us-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:28
+msgid "PRO CD Labels 2-up (face only)"
+msgstr "PRO CD-etiketter 2-up (kun front)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:32
 msgid "Slimline CD Case (rightside up)"
 msgstr "Tynd cd-kasette (vendt korrekt)"
 
-#: ../data/templates/misc-us-templates.xml.h:31
+#: ../templates/misc-us-templates.xml.h:33
 msgid "Slimline CD Case (upside down)"
 msgstr "Tynd cd-kasette (omvendt)"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:10
+#: ../templates/misc-iso-templates.xml.h:4
+#: ../templates/pearl-iso-templates.xml.h:6
+msgid "Bottle labels"
+msgstr "Flaskeetiketter"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:14
+msgid "EPSON Photo Stickers 16"
+msgstr "EPSONs fotostickers 16"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:16
+msgid "Etiketten"
+msgstr "Etiketter"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:18
+msgid "Fridge Magnet Stickers"
+msgstr "Klistermærker til køleskabsmagneter"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:20
+msgid "General Labels"
+msgstr "Generelle etiketter"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:22
+msgid "Inkjet/Laser Labels 70x37mm"
+msgstr "Inkjet-/laseretiketter 70x37mm"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:32
+#: ../templates/pearl-iso-templates.xml.h:62
+msgid "Self-adhesive labels"
+msgstr "Selvklæbende etiketter"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:34
+msgid "Universal Labels"
+msgstr "Universelle etiketter"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:4
+msgid "Address Labels (STAMPIT)"
+msgstr "Adresseetiketter (STAMPIT)"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:10
+msgid "Business cards glossy, both sides printable"
+msgstr "Forretningskort, blankt, begge sider udskrivbare"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:12
+msgid "Business cards high glossy"
+msgstr "Forretningskort, meget blankt"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:14
+msgid "Business cards punched"
+msgstr "Forretningskort, hullet"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:16
+msgid "Business cards punched dull"
+msgstr "Forretningskort, hullet, mat"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:18
+msgid "Business cards punched glossy"
+msgstr "Forretningskort, hullet, blankt"
+
+# msgstr "Floppydisketiketter"
+# Etiketter til disketter
+# eller 'til floppydisk' el. lign.
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:30
+msgid "Floppy disk labels"
+msgstr "Etiketter til disketter"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:32
+msgid "Foldable business cards"
+msgstr "Foldbare forretningskort"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:34
+msgid "Foldable business cards glossy/dull"
+msgstr "Foldbare forretningskort, blanke/mat"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:38
+msgid "Labels A5"
+msgstr "Etiketter A5"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:40
+msgid "Labels A6"
+msgstr "Etiketter A6"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:44
+msgid "Membership cards, both sides printable"
+msgstr "Medlemskort, begge sider udskrivbare"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:46
+msgid "Name plates"
+msgstr "Navneskilte"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:48
+msgid "Passport photo labels glossy"
+msgstr "Pasfotoetiketter, blanke"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:52
+msgid "Photo labels semiglossy"
+msgstr "Fotoetiketter, mellemblanke"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:56
+msgid "SD card labels"
+msgstr "SD-kort-etiketter"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:58
+msgid "Self-adhesive film transparent"
+msgstr "Selvklæbende gennemsigtig film"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:60
+msgid "Self-adhesive film weatherproof"
+msgstr "Selvklæbende vejrbestandig film"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:64
+msgid "Self-adhesive window film"
+msgstr "Selvklæbende vinduesfilm"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:14
 msgid "Correction and Cover-up Labels"
 msgstr "Rettelses- og overdækningsetiketter"
 
 # helt blank på hvad det her er
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:16
 msgid "File Back Labels"
 msgstr "Filrygetiketter"
 
 # ved ikke hvad det her er for en sag!!!
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:14
+#: ../templates/zweckform-iso-templates.xml.h:18
 msgid "Lever Arch File Labels"
 msgstr "Leverbuetfiletiketter"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:18
+#: ../templates/zweckform-iso-templates.xml.h:22
 msgid "Multi-purpose Stick+Lift Labels"
-msgstr "Klister-/Løfteetiketter til flere formål"
+msgstr "Klister-/løfteetiketter til flere formål"
 
 # er det mon en form for specifik tysk etiket?
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:20
+#: ../templates/zweckform-iso-templates.xml.h:24
 msgid "QSL-Karten Etiketten 70mm x 50,8mm"
 msgstr "QSL-Karten-etiketter 70mm x 50,8mm"
 
 # Copier = navn?
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:22
+#: ../templates/zweckform-iso-templates.xml.h:26
 msgid "Rectangular Copier Labels"
 msgstr "Rektangulær Copieretiketter"
 
 # oe unormal sammensætning på dansk? derfor skal der være bindestreg?
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:26
+#: ../templates/zweckform-iso-templates.xml.h:30
 msgid "Video Labels (back)"
 msgstr "Video-etiketter (bagside)"
 
-#: ../data/desktop/glabels.desktop.in.h:1
-msgid "Create labels, business cards and media covers"
-msgstr "Opret etiketter, forretningskort og mediecovere"
+#~ msgid "Couldn't construct query"
+#~ msgstr "Kunne ikke konstruere forespørgsel"
 
-#: ../data/desktop/glabels.desktop.in.h:2
-msgid "gLabels Label Designer"
-msgstr "gLabels' etiketdesigner"
+#~ msgid "Couldn't open addressbook."
+#~ msgstr "Kunne ikke åbne adressebog."
 
-#: ../data/mime/glabels.keys.in.h:1 ../data/mime/glabels.xml.in.h:1
-msgid "gLabels Project File"
-msgstr "gLabels' projektfil"
+#~ msgid "Couldn't list available fields."
+#~ msgstr "Kunne ikke vise tilgængelige felter."
 
-#: ../barcode-0.98/compat/getopt.c:583
-#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: Tilvalg »%s« er tvetydigt\n"
+#~ msgid "Couldn't get contacts."
+#~ msgstr "Kunne ikke få kontakt."
 
-#: ../barcode-0.98/compat/getopt.c:607
-#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: Tilvalg »--%s« tillader ikke et argument\n"
+#~ msgid "Bad root node = \"%s\""
+#~ msgstr "Ugyldig rodknude = \"%s\""
 
-#: ../barcode-0.98/compat/getopt.c:612
-#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: Tilvalg »%c%s« tillader ikke et argument\n"
+#~ msgid "bad node =  \"%s\""
+#~ msgstr "dårlig knude =  \"%s\""
 
-#: ../barcode-0.98/compat/getopt.c:629
-#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s: Tilvalg »%s« kræver et argument\n"
+#~ msgid "xmlParseFile error"
+#~ msgstr "xmlParseFile-fejl"
 
-#. --option
-#: ../barcode-0.98/compat/getopt.c:658
-#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: Ukendt tilvalg »--%s«\n"
+#~ msgid "No document root"
+#~ msgstr "Ingen dokumentrod"
 
-#. +option or -option
-#: ../barcode-0.98/compat/getopt.c:662
-#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: Ukendt tilvalg »%c%s«\n"
+#~ msgid "Importing from glabels 0.1 format"
+#~ msgstr "Importerer fra glabels 0.1 format"
 
-#. 1003.2 specifies the format of this message.
-#: ../barcode-0.98/compat/getopt.c:688
-#, c-format
-msgid "%s: illegal option -- %c\n"
-msgstr "%s: Ugyldigt tilvalg -- %c\n"
+#~ msgid "Importing from glabels 0.4 format"
+#~ msgstr "Importerer fra glabels 0.4 format"
 
-#: ../barcode-0.98/compat/getopt.c:691
-#, c-format
-msgid "%s: invalid option -- %c\n"
-msgstr "%s: Ugyldigt tilvalg -- %c\n"
+#~ msgid "Unknown glabels Namespace -- Using %s"
+#~ msgstr "Ukendt glabelsnavnerum -- bruger %s"
 
-#: ../barcode-0.98/compat/getopt.c:727
-#, c-format
-msgid "%s: option requires an argument -- %c\n"
-msgstr "%s: Tilvalg kræver et argument -- %c\n"
+#~ msgid "bad node in Document node =  \"%s\""
+#~ msgstr "dårlig knude i dokumentknude =  \"%s\""
+
+#~ msgid "bad node in Data node =  \"%s\""
+#~ msgstr "dårlig knude i dataknude =  \"%s\""
+
+#~ msgid "Unknown embedded file format: \"%s\""
+#~ msgstr "Ukendt indlejret filformat \"%s\""
+
+#~ msgid "Utf8 conversion error."
+#~ msgstr "Utf8 - konverteringsfejl."
+
+# Kunne ikke gemme xml-fil.
+#~ msgid "Problem saving xml file."
+#~ msgstr "Problem under gemning af xml-fil."
+
+#~ msgid "Equivalent part (\"%s\") for \"%s\", not previously defined."
+#~ msgstr "Tilsvarende del (\"%s\") for \"%s\", er ikke tidligere defineret."
+
+#~ msgid "Missing name or brand/part attributes."
+#~ msgstr "Manglende navn eller mærke-/delattributter."
+
+#~ msgid "Unknown page size id \"%s\", trying as name"
+#~ msgstr "Ukendt sidestørrelse-id \"%s\", forsøger som navn"
+
+#~ msgid "Unknown page size id or name \"%s\""
+#~ msgstr "Ukendt sidestørrelse-id eller navn \"%s\""
+
+# Fremadreferencer understøttes ikke el. lign.
+# (typisk en reference til et element defineret længere henne i en fil el. lign.)
+#~ msgid "Forward references not supported."
+#~ msgstr "Fremadreferencer understøttes ikke."
+
+#~ msgid ""
+#~ "Missing required \"brand\" or \"part\" attribute, trying deprecated name."
+#~ msgstr "Mangler krævet mærke- eller delattribut, forsøger forældet navn."
+
+#~ msgid "Name attribute also missing."
+#~ msgstr "Navneattribut mangler også."
+
+#~ msgid "Mailing Labels-2 columns"
+#~ msgstr "Postetiketter - 2 kolonner"
+
+#~ msgid "Mailing Labels-3 columns"
+#~ msgstr "Postetiketter - 3 kolonner"
+
+#~ msgid "_Select Mode"
+#~ msgstr "_Vælg tilstand"
+
+#~ msgid "_Text"
+#~ msgstr "_Tekst"
+
+#~ msgid "_Line"
+#~ msgstr "_Linje"
+
+#~ msgid "_Box"
+#~ msgstr "_Boks"
+
+#~ msgid "_Ellipse"
+#~ msgstr "_Ellipse"
+
+#~ msgid "_Image"
+#~ msgstr "_Billede"
+
+#~ msgid "Bar_code"
+#~ msgstr "Streg_kode"
+
+# eller flet egenskaber
+#~ msgid "_Merge Properties"
+#~ msgstr "_Sammenføj egenskaber"
+
+#~ msgid "Object _Properties"
+#~ msgstr "Objekt_egenskaber"
+
+#~ msgid "Bring to _Front"
+#~ msgstr "Hent _frem"
+
+#~ msgid "Send to _Back"
+#~ msgstr "Send til_bage"
+
+#~ msgid "Rotate _Left"
+#~ msgstr "Roter til _venstre"
+
+#~ msgid "Rotate _Right"
+#~ msgstr "Roter til _højre"
+
+#~ msgid "Flip _Horizontally"
+#~ msgstr "Vend _vandret"
+
+#~ msgid "Flip _Vertically"
+#~ msgstr "Vend _lodret"
+
+# godt nok i tvivl her
+#~ msgid "_Lefts"
+#~ msgstr "_Venstredrejninger"
+
+# godt nok i tvivl her
+#~ msgid "_Rights"
+#~ msgstr "_Højredrejninger"
+
+#~ msgid "_Centers"
+#~ msgstr "_Centrum"
+
+#~ msgid "_Tops"
+#~ msgstr "_Øverste"
+
+#~ msgid "Bottoms"
+#~ msgstr "Nederste kanter"
+
+#~ msgid "Centers"
+#~ msgstr "Centrum"
+
+#~ msgid "Label Ce_nter"
+#~ msgstr "Etiketce_ntrum"
+
+#~ msgid "Linked"
+#~ msgstr "Forbundet"
+
+#~ msgid "Not Linked"
+#~ msgstr "Ikke forbundet"
+
+#~ msgid "glabels"
+#~ msgstr "glabels"
+
+#~ msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
+#~ msgstr "<span weight=\"bold\" size=\"larger\">Xxx-objektegenskaber</span>"
+
+#~ msgid "<span weight=\"bold\">Default page size</span>"
+#~ msgstr "<span weight=\"bold\">Standard for sidestørrelse</span>"
+
+#~ msgid "<span weight=\"bold\">Fill</span>"
+#~ msgstr "<span weight=\"bold\">Fyld</span>"
+
+#~ msgid "<span weight=\"bold\">Line</span>"
+#~ msgstr "<span weight=\"bold\">Linje</span>"
+
+#~ msgid "<span weight=\"bold\">Text</span>"
+#~ msgstr "<span weight=\"bold\">Tekst</span>"
+
+#~ msgid "<span weight=\"bold\">Units</span>"
+#~ msgstr "<span weight=\"bold\">Enheder</span>"
+
+#~ msgid "<b>Copies</b>"
+#~ msgstr "<b>Kopier</b>"
index d4501f7f8b20a52955a568c484b9ac8345ba7dad..e9b24441e94bb44f82d0c6021dc339bd4850f17d 100644 (file)
--- a/po/de.po
+++ b/po/de.po
 # German translation of glabels.
-# Copyright (C) 2001-2008 Jim Evins <evins@snaught.com>
+# Copyright (C) 2001-2009 Jim Evins <evins@snaught.com>
 # Marcus Bauer <m@7n7.de>, 2001.
 # Christian Neumair <christian-neumair@web.de>, 2002.
-# Mario Blättermann <mariobl@gnome.org>, 2008-2010.
+# Mario Blättermann <mariobl@freenet.de>, 2008-2011.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: glabels_2_2\n"
+"Project-Id-Version: glabels master\n"
 "Report-Msgid-Bugs-To: http://sourceforge.net/tracker/?group_id=46122&ati\n"
-"POT-Creation-Date: 2010-03-17 06:38+0000\n"
-"PO-Revision-Date: 2010-03-20 15:04+0100\n"
-"Last-Translator: Mario Blättermann <mariobl@gnome.org>\n"
+"POT-Creation-Date: 2011-04-17 04:00+0000\n"
+"PO-Revision-Date: 2011-04-17 13:05+0100\n"
+"Last-Translator: Mario Blättermann <mariobl@freenet.de>\n"
 "Language-Team: German <gnome-de@gnome.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: de\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 "X-Poedit-Language: German\n"
 "X-Poedit-Country: GERMANY\n"
 
-#: ../src/glabels.c:75 ../src/glabels-batch.c:70
-msgid "[FILE...]"
-msgstr "[DATEI...]"
+#: ../src/bc-backends.c:81
+msgid "Built-in"
+msgstr "Eingebaut"
 
-#: ../src/glabels.c:91
-msgid "- gLabels label designer"
-msgstr "- gLabels Etiketten-Designer"
+#: ../src/bc-backends.c:101
+msgid "POSTNET (any)"
+msgstr "POSTNET (allgemein)"
 
-#: ../src/glabels-batch.c:54
-msgid "set output filename (default=\"output.pdf\")"
-msgstr "Ausgabe-Dateiname festlegen (Vorgabe: »output.pdf«)"
+#: ../src/bc-backends.c:104
+msgid "POSTNET-5 (ZIP only)"
+msgstr "POSTNET-5 (nur ZIP)"
 
-#: ../src/glabels-batch.c:54 ../src/glabels-batch.c:68
-msgid "filename"
-msgstr "Dateiname"
+#: ../src/bc-backends.c:107
+msgid "POSTNET-9 (ZIP+4)"
+msgstr "POSTNET-9 (ZIP+4)"
 
-#: ../src/glabels-batch.c:56
-msgid "number of sheets (default=1)"
-msgstr "Anzahl der Blätter (Vorgabe: 1)"
+#: ../src/bc-backends.c:110
+msgid "POSTNET-11 (DPBC)"
+msgstr "POSTNET-11 (DPBC)"
 
-#: ../src/glabels-batch.c:56
-msgid "sheets"
-msgstr "Blätter"
+#: ../src/bc-backends.c:113
+msgid "CEPNET"
+msgstr "CEPNET"
 
-#: ../src/glabels-batch.c:58
-msgid "number of copies (default=1)"
-msgstr "Anzahl der Kopien (Vorgabe: 1)"
+#: ../src/bc-backends.c:116
+msgid "One Code"
+msgstr "One Code"
 
-#: ../src/glabels-batch.c:58
-msgid "copies"
-msgstr "Kopien"
+#: ../src/bc-backends.c:119 ../src/bc-backends.c:175 ../src/bc-backends.c:248
+msgid "Code 39"
+msgstr "Code 39"
 
-#: ../src/glabels-batch.c:60
-msgid "first label on first sheet (default=1)"
-msgstr "Erstes Etikett auf dem ersten Blatt (Vorgabe: 1)"
+#: ../src/bc-backends.c:122 ../src/bc-backends.c:251
+msgid "Code 39 Extended"
+msgstr "Code 39 erweitert"
 
-#: ../src/glabels-batch.c:60
-msgid "first"
-msgstr "Erste"
+#: ../src/bc-backends.c:127
+msgid "EAN (any)"
+msgstr "EAN (alle)"
 
-#: ../src/glabels-batch.c:62 ../data/glade/print-custom-widget.glade.h:6
-msgid "print outlines (to test printer alignment)"
-msgstr "Begrenzungen drucken (um Druckausrichtung zu testen)"
+#: ../src/bc-backends.c:130
+msgid "EAN-8"
+msgstr "EAN-8"
 
-#: ../src/glabels-batch.c:64 ../data/glade/print-custom-widget.glade.h:5
-msgid "print in reverse (i.e. a mirror image)"
-msgstr "Spiegelbildlich drucken"
+#: ../src/bc-backends.c:133
+msgid "EAN-8 +2"
+msgstr "EAN-8 +2"
 
-#: ../src/glabels-batch.c:66 ../data/glade/print-custom-widget.glade.h:4
-msgid "print crop marks"
-msgstr "Schnittmarken drucken"
+#: ../src/bc-backends.c:136
+msgid "EAN-8 +5"
+msgstr "EAN-8 +5"
 
-#: ../src/glabels-batch.c:68
-msgid "input file for merging"
-msgstr "Eingabedatei zum Mischen"
+#: ../src/bc-backends.c:139
+msgid "EAN-13"
+msgstr "EAN-13"
 
-#: ../src/glabels-batch.c:96
-msgid "- batch process gLabels label files"
-msgstr "- Stapelverarbeitung von gLabels-Dateien"
+#: ../src/bc-backends.c:142
+msgid "EAN-13 +2"
+msgstr "EAN-13 +2"
 
-#: ../src/glabels-batch.c:142
-#, c-format
-msgid "cannot perform document merge with glabels file %s\n"
-msgstr ""
-"Dokumentverarbeitung kann mit gLabels-Datei %s nicht ausgeführt werden\n"
+#: ../src/bc-backends.c:145
+msgid "EAN-13 +5"
+msgstr "EAN-13 +5"
 
-#: ../src/glabels-batch.c:164
-#, c-format
-msgid "cannot open glabels file %s\n"
-msgstr "glabels-Datei %s kann nicht geöffnet werden\n"
+#: ../src/bc-backends.c:148
+msgid "UPC (UPC-A or UPC-E)"
+msgstr "UPC (UPC-A oder UPC-E)"
 
-#: ../src/window.c:259
-msgid "(none) - gLabels"
-msgstr "(Unbenannt) - gLabels"
+#: ../src/bc-backends.c:151 ../src/bc-backends.c:395
+msgid "UPC-A"
+msgstr "UPC-A"
 
-#: ../src/window.c:432
-msgid "(modified)"
-msgstr "(geändert)"
+#: ../src/bc-backends.c:154
+msgid "UPC-A +2"
+msgstr "UPC-A +2"
 
-#: ../src/stock.c:72
-msgid "_Select Mode"
-msgstr "Modus au_swählen"
+#: ../src/bc-backends.c:157
+msgid "UPC-A +5"
+msgstr "UPC-A +5"
 
-#: ../src/stock.c:73
-msgid "_Text"
-msgstr "_Text"
+#: ../src/bc-backends.c:160 ../src/bc-backends.c:398
+msgid "UPC-E"
+msgstr "UPC-E"
 
-#: ../src/stock.c:74
-msgid "_Line"
-msgstr "_Linie"
+#: ../src/bc-backends.c:163
+msgid "UPC-E +2"
+msgstr "UPC-E +2"
 
-#: ../src/stock.c:75
-msgid "_Box"
-msgstr "_Rechteck"
+#: ../src/bc-backends.c:166
+msgid "UPC-E +5"
+msgstr "UPC-E +5"
 
-#: ../src/stock.c:76
-msgid "_Ellipse"
-msgstr "_Ellipse"
+#: ../src/bc-backends.c:169 ../src/bc-backends.c:332
+msgid "ISBN"
+msgstr "ISBN"
 
-#: ../src/stock.c:77
-msgid "_Image"
-msgstr "B_ild"
+#: ../src/bc-backends.c:172
+msgid "ISBN +5"
+msgstr "ISBN +5"
 
-#: ../src/stock.c:78
-msgid "Bar_code"
-msgstr "Strich_code"
+#: ../src/bc-backends.c:178 ../src/bc-backends.c:260
+msgid "Code 128"
+msgstr "Code 128"
 
-#: ../src/stock.c:79
-msgid "_Merge Properties"
-msgstr "_Mischeinstellungen"
+#: ../src/bc-backends.c:181
+msgid "Code 128C"
+msgstr "Code 128C"
 
-#: ../src/stock.c:80
-msgid "Object _Properties"
-msgstr "Objektei_genschaften"
+#: ../src/bc-backends.c:184
+msgid "Code 128B"
+msgstr "Code 128B"
 
-#: ../src/stock.c:81
-msgid "Bring to _Front"
-msgstr "Ganz nach _vorn"
+#: ../src/bc-backends.c:187 ../src/bc-backends.c:329
+msgid "Interleaved 2 of 5"
+msgstr "Interleaved 2 of 5"
 
-#: ../src/stock.c:82
-msgid "Send to _Back"
-msgstr "Ganz nach _hinten"
+#: ../src/bc-backends.c:190 ../src/bc-backends.c:224
+msgid "Codabar"
+msgstr "Codabar"
 
-#: ../src/stock.c:83
-msgid "Rotate _Left"
-msgstr "_Links drehen"
+#: ../src/bc-backends.c:193
+msgid "MSI"
+msgstr "MSI"
 
-#: ../src/stock.c:84
-msgid "Rotate _Right"
-msgstr "_Rechts drehen"
+#: ../src/bc-backends.c:196
+msgid "Plessey"
+msgstr "Plessey"
 
-#: ../src/stock.c:85
-msgid "Flip _Horizontally"
-msgstr "_Horizontal spiegeln"
+#: ../src/bc-backends.c:199 ../src/bc-backends.c:257
+msgid "Code 93"
+msgstr "Code 93"
 
-#: ../src/stock.c:86
-msgid "Flip _Vertically"
-msgstr "_Vertikal spiegeln"
+#: ../src/bc-backends.c:206
+msgid "Australia Post Standard"
+msgstr "Australische Post, Standard"
 
-#: ../src/stock.c:87
-msgid "_Lefts"
-msgstr "_Links"
+#: ../src/bc-backends.c:209
+msgid "Australia Post Reply Paid"
+msgstr "Australische Post, mit Rückantwort"
 
-#: ../src/stock.c:88
-msgid "_Rights"
-msgstr "_Rechts"
+#: ../src/bc-backends.c:212
+msgid "Australia Post Route Code"
+msgstr "Australische Post, Routencode"
 
-#: ../src/stock.c:89
-msgid "_Centers"
-msgstr "_Mitte"
+#: ../src/bc-backends.c:215
+msgid "Australia Post Redirect"
+msgstr "Australische Post, Rücksendung"
 
-#: ../src/stock.c:90
-msgid "_Tops"
-msgstr "_Oben"
+#: ../src/bc-backends.c:218
+msgid "Aztec Code"
+msgstr "Aztec-Code"
 
-#: ../src/stock.c:91
-msgid "Bottoms"
-msgstr "Unten"
+#: ../src/bc-backends.c:221
+msgid "Aztec Rune"
+msgstr "Aztec-Rune"
 
-#: ../src/stock.c:92
-msgid "Centers"
-msgstr "Mitte"
+#: ../src/bc-backends.c:227
+msgid "Code One"
+msgstr "Code One"
 
-#: ../src/stock.c:93 ../src/stock.c:94
-msgid "Label Ce_nter"
-msgstr "Etikett ze_ntrieren"
+#: ../src/bc-backends.c:230
+msgid "Code 11"
+msgstr "Code 11"
 
-#: ../src/stock.c:95 ../data/glade/property-bar.glade.h:3
-msgid "Fill color"
-msgstr "Füllfarbe"
+#: ../src/bc-backends.c:233
+msgid "Code 16K"
+msgstr "Code 16K"
 
-#: ../src/stock.c:96 ../data/glade/property-bar.glade.h:8
-msgid "Line color"
-msgstr "Linienfarbe"
+#: ../src/bc-backends.c:236
+msgid "Code 2 of 5 Matrix"
+msgstr "Code 2 von 5 Matrix"
 
-#: ../src/stock.c:97 ../src/stock.c:99
-msgid "Linked"
-msgstr "Verknüpft"
+#: ../src/bc-backends.c:239
+msgid "Code 2 of 5 IATA"
+msgstr "Code 2 von 5 IATA"
 
-#: ../src/stock.c:98 ../src/stock.c:100
-msgid "Not Linked"
-msgstr "Nicht verknüpft"
+#: ../src/bc-backends.c:242
+msgid "Code 2 of 5 Data Logic"
+msgstr "Code 2 von 5 Data Logic"
 
-#. Menu entries.
-#: ../src/ui.c:93
-msgid "_File"
-msgstr "_Datei"
+#: ../src/bc-backends.c:245
+msgid "Code 32 (Italian Pharmacode)"
+msgstr "Code 32 (Italienischer Pharmacode)"
 
-#: ../src/ui.c:94
-msgid "Open Recent _Files"
-msgstr "_Zuletzt geöffnete Dateien"
+#: ../src/bc-backends.c:254
+msgid "Code 49"
+msgstr "Code 49"
 
-#: ../src/ui.c:95
-msgid "_Edit"
-msgstr "_Bearbeiten"
+#: ../src/bc-backends.c:263
+msgid "Code 128 (Mode C supression)"
+msgstr "Code 128 (Modus C unterdrückt)"
 
-#: ../src/ui.c:96
-msgid "_View"
-msgstr "_Ansicht"
+#: ../src/bc-backends.c:266
+msgid "DAFT Code"
+msgstr "DAFT-Code"
 
-#: ../src/ui.c:97
-msgid "Customize Main Toolbar"
-msgstr "Werkzeugleiste anpassen"
+#: ../src/bc-backends.c:269
+msgid "Data Matrix"
+msgstr "Data Matrix"
 
-#: ../src/ui.c:98
-msgid "Customize Drawing Toolbar"
-msgstr "Zeichenwerkzeugleiste anpassen"
+#: ../src/bc-backends.c:272
+msgid "Deutsche Post Leitcode"
+msgstr "Deutsche Post Leitcode"
 
-#: ../src/ui.c:99
-msgid "Customize Properties Toolbar"
-msgstr "Eigenschaften-Werkzeugleiste anpassen"
+#: ../src/bc-backends.c:275
+msgid "Deutsche Post Identcode"
+msgstr "Deutsche Post Identcode"
 
-#: ../src/ui.c:100
-msgid "_Objects"
-msgstr "_Objekte"
+#: ../src/bc-backends.c:278
+msgid "Dutch Post KIX Code"
+msgstr "KIX-Code der Niederländischen Post"
 
-#: ../src/ui.c:101
-msgid "_Create"
-msgstr "_Erzeugen"
+#: ../src/bc-backends.c:281
+msgid "EAN"
+msgstr "EAN"
 
-#: ../src/ui.c:102
-msgid "_Order"
-msgstr "_Anordnung"
+#: ../src/bc-backends.c:284
+msgid "Grid Matrix"
+msgstr "Rastermatrix"
 
-#: ../src/ui.c:103
-msgid "_Rotate/Flip"
-msgstr "D_rehen/Spiegeln"
+#: ../src/bc-backends.c:287
+msgid "GS1-128"
+msgstr "GS1-128"
 
-#: ../src/ui.c:104
-msgid "Align _Horizontal"
-msgstr "_Horizontal"
+#: ../src/bc-backends.c:290
+msgid "GS1 DataBar-14"
+msgstr "GS1 DataBar-14"
 
-#: ../src/ui.c:105
-msgid "Align _Vertical"
-msgstr "_Vertikal"
+#: ../src/bc-backends.c:299
+msgid "GS1 DataBar-14 Stacked"
+msgstr "GS1 DataBar-14 mehrteilig"
 
-#: ../src/ui.c:106
-msgid "_Help"
-msgstr "_Hilfe"
+#: ../src/bc-backends.c:302
+msgid "GS1 DataBar-14 Stacked Omni."
+msgstr "GS1 DataBar-14 mehrteilig omni."
 
-#. Popup entries.
-#: ../src/ui.c:109 ../src/ui.c:110
-msgid "Context Menu"
-msgstr "Kontextmenü"
+#: ../src/bc-backends.c:305
+msgid "GS1 DataBar Extended Stacked"
+msgstr "GS1 DataBar erweitert mehrteilig"
 
-#: ../src/ui.c:115
-msgid "_New"
-msgstr "_Neu"
+#: ../src/bc-backends.c:308
+msgid "HIBC Code 128"
+msgstr "HIBC Code 128"
 
-#: ../src/ui.c:117
-msgid "Create a new file"
-msgstr "Eine neue Datei erstellen"
+#: ../src/bc-backends.c:311
+msgid "HIBC Code 39"
+msgstr "HIBC Code 39"
 
-#: ../src/ui.c:122
-msgid "_Open..."
-msgstr "Ö_ffnen …"
+#: ../src/bc-backends.c:314
+msgid "HIBC Data Matrix"
+msgstr "HIBC Data Matrix"
 
-#: ../src/ui.c:124
-msgid "Open a file"
-msgstr "Eine Datei öffnen"
+#: ../src/bc-backends.c:317
+msgid "HIBC QR Code"
+msgstr "HIBC QR-Code"
 
-#: ../src/ui.c:129
-msgid "_Save"
-msgstr "_Speichern"
+#: ../src/bc-backends.c:320
+msgid "HIBC PDF417"
+msgstr "HIBC PDF417"
 
-#: ../src/ui.c:131
-msgid "Save current file"
-msgstr "Die aktuelle Datei speichern"
+#: ../src/bc-backends.c:323
+msgid "HIBC Micro PDF417"
+msgstr "HIBC Micro PDF417"
 
-#: ../src/ui.c:136
-msgid "Save _As..."
-msgstr "Speichern _unter …"
+#: ../src/bc-backends.c:326
+msgid "HIBC Aztec Code"
+msgstr "HIBC Aztec-Code"
 
-#: ../src/ui.c:138
-msgid "Save the current file to a different name"
-msgstr "Die aktuelle Datei unter einem anderen Dateinamen speichern"
+#: ../src/bc-backends.c:335
+msgid "ITF-14"
+msgstr "ITF-14"
 
-#: ../src/ui.c:143
-msgid "_Print..."
-msgstr "_Drucken …"
+#: ../src/bc-backends.c:338
+msgid "Japanese Postal"
+msgstr "Japanische Post"
 
-#: ../src/ui.c:145
-msgid "Print the current file"
-msgstr "Die aktuelle Datei drucken"
+#: ../src/bc-backends.c:341
+msgid "Korean Postal"
+msgstr "Koreanische Post"
 
-#: ../src/ui.c:150
-msgid "Properties..."
-msgstr "Einstellungen …"
+#: ../src/bc-backends.c:344
+msgid "LOGMARS"
+msgstr "LOGMARS"
 
-#: ../src/ui.c:152
-msgid "Modify document properties"
-msgstr "Dokumenteigenschaften ändern"
+#: ../src/bc-backends.c:347
+msgid "Maxicode"
+msgstr "Maxicode"
 
-#: ../src/ui.c:157
-msgid "Template _Designer..."
-msgstr "Vorlagen-_Designer …"
+#: ../src/bc-backends.c:350
+msgid "Micro PDF417"
+msgstr "Micro PDF417"
 
-#: ../src/ui.c:159
-msgid "Create a custom template"
-msgstr "Eine neue benutzerdefinierte Vorlage erstellen"
+#: ../src/bc-backends.c:353
+msgid "Micro QR Code"
+msgstr "Micro QR Code"
 
-#: ../src/ui.c:164
-msgid "_Close"
-msgstr "S_chließen"
+#: ../src/bc-backends.c:356
+msgid "MSI Plessey"
+msgstr "MSI Plessey"
 
-#: ../src/ui.c:166
-msgid "Close the current file"
-msgstr "Die aktuelle Datei schließen"
+#: ../src/bc-backends.c:359
+msgid "NVE-18"
+msgstr "NVE-18"
 
-#: ../src/ui.c:171
-msgid "_Quit"
-msgstr "_Beenden"
+#: ../src/bc-backends.c:362
+msgid "PDF417"
+msgstr "PDF417"
 
-#: ../src/ui.c:173
-msgid "Quit the program"
-msgstr "Das Programm beenden"
+#: ../src/bc-backends.c:365
+msgid "PDF417 Truncated"
+msgstr "PDF417 verkürzt"
 
-#: ../src/ui.c:180
-msgid "Cut"
-msgstr "Ausschneiden"
+#: ../src/bc-backends.c:368
+msgid "PLANET"
+msgstr "PLANET"
 
-#: ../src/ui.c:182
-msgid "Cut the selection"
-msgstr "Die Markierung ausschneiden"
+#: ../src/bc-backends.c:371
+msgid "PostNet"
+msgstr "PostNet"
 
-#: ../src/ui.c:187
-msgid "Copy"
-msgstr "Kopieren"
+#: ../src/bc-backends.c:374
+msgid "Pharmacode"
+msgstr "Pharmacode"
 
-#: ../src/ui.c:189
-msgid "Copy the selection"
-msgstr "Die Markierung kopieren"
+#: ../src/bc-backends.c:377
+msgid "Pharmacode 2-track"
+msgstr "Pharmacode 2-reihig"
 
-#: ../src/ui.c:194
-msgid "Paste"
-msgstr "Einfügen"
+#: ../src/bc-backends.c:380
+msgid "Pharmazentral Nummer (PZN)"
+msgstr "Pharmazentral-Nummer (PZN)"
 
-#: ../src/ui.c:196
-msgid "Paste the clipboard"
-msgstr "Inhalt der Zwischenablage einfügen"
+#: ../src/bc-backends.c:383
+msgid "QR Code"
+msgstr "QR-Code"
 
-#: ../src/ui.c:201
-msgid "Delete"
-msgstr "Löschen"
+#: ../src/bc-backends.c:386
+msgid "Royal Mail 4-State"
+msgstr "Royal Mail 4-State"
 
-#: ../src/ui.c:203
-msgid "Delete the selected objects"
-msgstr "Die markierten Objekte löschen"
+#: ../src/bc-backends.c:389
+msgid "Telepen"
+msgstr "Telepen"
 
-#: ../src/ui.c:208
-msgid "Select All"
-msgstr "Alles markieren"
+#: ../src/bc-backends.c:392
+msgid "Telepen Numeric"
+msgstr "Telepen numerisch"
 
-#: ../src/ui.c:210
-msgid "Select all objects"
-msgstr "Alle Objekte markieren"
+#: ../src/bc-backends.c:401
+msgid "USPS One Code"
+msgstr "USPS One Code"
 
-#: ../src/ui.c:215
-msgid "Un-select All"
-msgstr "Alle Markierungen löschen"
+#: ../src/bc-backends.c:404
+msgid "UK Plessey"
+msgstr "UK Plessey"
 
-#: ../src/ui.c:217
-msgid "Remove all selections"
-msgstr "Alle Auswahlen aufheben"
+#: ../src/bc-backends.c:411
+msgid "IEC16022 (DataMatrix)"
+msgstr "IEC16022 (DataMatrix)"
 
-#: ../src/ui.c:222
-msgid "Preferences"
-msgstr "Einstellungen"
+#: ../src/bc-backends.c:418
+msgid "IEC18004 (QRCode)"
+msgstr "IEC18004 (QRCode)"
 
-#: ../src/ui.c:224
-msgid "Configure the application"
-msgstr "Die Anwendung konfigurieren"
+#: ../src/color-combo-button.c:198 ../src/color-combo.c:178
+msgid "Default Color"
+msgstr "Standardfarbe"
 
-#: ../src/ui.c:231
-msgid "Zoom in"
-msgstr "Vergrößern"
+#: ../src/color-combo-menu.c:83
+msgid "Dark Red"
+msgstr "Dunkelrot"
 
-#: ../src/ui.c:233
-msgid "Increase magnification"
-msgstr "Vergrößern"
+#: ../src/color-combo-menu.c:84
+msgid "Brown"
+msgstr "Braun"
 
-#: ../src/ui.c:238
-msgid "Zoom out"
-msgstr "Verkleinern"
+#: ../src/color-combo-menu.c:85
+msgid "Dark Goldenrod"
+msgstr "Dunkle Goldrute"
 
-#: ../src/ui.c:240
-msgid "Decrease magnification"
-msgstr "Verkleinern"
+#: ../src/color-combo-menu.c:86
+msgid "Dark Green"
+msgstr "Dunkles Grün"
 
-#: ../src/ui.c:245
-msgid "Zoom 1 to 1"
-msgstr "Vergrößerung 1:1"
+#: ../src/color-combo-menu.c:87
+msgid "Dark Cyan"
+msgstr "Dunkles Cyan-Blau"
 
-#: ../src/ui.c:247
-msgid "Restore scale to 100%"
-msgstr "Maßstab auf 100% wiederherstellen"
+#: ../src/color-combo-menu.c:88
+msgid "Navy Blue"
+msgstr "Marineblau"
 
-#: ../src/ui.c:252
-msgid "Zoom to fit"
-msgstr "Einpassen"
+#: ../src/color-combo-menu.c:89
+msgid "Dark Violet"
+msgstr "Dunkles Violett"
 
-#: ../src/ui.c:254
-msgid "Set scale to fit window"
-msgstr "In Fenster einpassen"
+#: ../src/color-combo-menu.c:91
+msgid "Red"
+msgstr "Rot"
 
-#: ../src/ui.c:261
-msgid "Select Mode"
-msgstr "Modus auswählen"
+#: ../src/color-combo-menu.c:92
+msgid "Orange"
+msgstr "Orange"
 
-#: ../src/ui.c:263
-msgid "Select, move and modify objects"
-msgstr "Objekte auswählen, bewegen, ändern"
+#: ../src/color-combo-menu.c:93
+msgid "Dark Yellow"
+msgstr "Dunkles Gelb"
 
-#: ../src/ui.c:268 ../src/view-text.c:494
-#: ../data/glade/object-editor.glade.h:32
-msgid "Text"
-msgstr "Text"
+#: ../src/color-combo-menu.c:94
+msgid "Medium green"
+msgstr "Mittelgrün"
 
-#: ../src/ui.c:270
-msgid "Create text object"
-msgstr "Textobjekt erzeugen"
+#: ../src/color-combo-menu.c:95
+msgid "Turquoise"
+msgstr "Türkis"
 
-#: ../src/ui.c:275
-msgid "Box"
-msgstr "Rechteck"
+#: ../src/color-combo-menu.c:96
+msgid "Blue"
+msgstr "Blau"
 
-#: ../src/ui.c:277
-msgid "Create box/rectangle object"
-msgstr "Rechteck-Objekt erzeugen"
-
-#: ../src/ui.c:282 ../data/glade/object-editor.glade.h:20
-msgid "Line"
-msgstr "Linie"
-
-#: ../src/ui.c:284
-msgid "Create line object"
-msgstr "Linienobjekt erzeugen"
-
-#: ../src/ui.c:289
-msgid "Ellipse"
-msgstr "Ellipse"
-
-#: ../src/ui.c:291
-msgid "Create ellipse/circle object"
-msgstr "Ellipsen- oder Kreisobjekt erzeugen"
-
-#: ../src/ui.c:296 ../data/glade/object-editor.glade.h:16
-msgid "Image"
-msgstr "Bild"
-
-#: ../src/ui.c:298
-msgid "Create image object"
-msgstr "Bildobjekt erzeugen"
-
-#: ../src/ui.c:303
-msgid "Barcode"
-msgstr "Strichcode"
-
-#: ../src/ui.c:305
-msgid "Create barcode object"
-msgstr "Strichcodeobjekt erzeugen"
-
-#: ../src/ui.c:310
-msgid "Bring to front"
-msgstr "Ganz nach vorn"
-
-#: ../src/ui.c:312
-msgid "Raise object to top"
-msgstr "Objekt im Ebenenstapel nach oben verschieben"
-
-#: ../src/ui.c:317
-msgid "Send to back"
-msgstr "Ganz nach hinten"
-
-#: ../src/ui.c:319
-msgid "Lower object to bottom"
-msgstr "Objekt im Ebenenstapel nach unten verschieben"
-
-#: ../src/ui.c:324
-msgid "Rotate left"
-msgstr "Links drehen"
-
-#: ../src/ui.c:326
-msgid "Rotate object 90 degrees counter-clockwise"
-msgstr "Objekt um 90 Grad gegen den Uhrzeigersinn drehen"
-
-#: ../src/ui.c:331
-msgid "Rotate right"
-msgstr "Rechts drehen"
-
-#: ../src/ui.c:333
-msgid "Rotate object 90 degrees clockwise"
-msgstr "Objekt um 90 Grad im Uhrzeigersinn drehen"
-
-#: ../src/ui.c:338
-msgid "Flip horizontally"
-msgstr "Horizontal spiegeln"
-
-#: ../src/ui.c:340
-msgid "Flip object horizontally"
-msgstr "Objekt horizontal spiegeln"
-
-#: ../src/ui.c:345
-msgid "Flip vertically"
-msgstr "Vertikal spiegeln"
-
-#: ../src/ui.c:347
-msgid "Flip object vertically"
-msgstr "Objekt vertikal spiegeln"
-
-#: ../src/ui.c:352
-msgid "Align left"
-msgstr "Linksbündig"
-
-#: ../src/ui.c:354
-msgid "Align objects to left edges"
-msgstr "Objekte am linken Rand anordnen"
-
-#: ../src/ui.c:359
-msgid "Align right"
-msgstr "Rechtsbündig"
-
-#: ../src/ui.c:361
-msgid "Align objects to right edges"
-msgstr "Objekte am rechten Rand anordnen"
-
-#: ../src/ui.c:366
-msgid "Align horizontal center"
-msgstr "Horizontal mittig anordnen"
-
-#: ../src/ui.c:368
-msgid "Align objects to horizontal centers"
-msgstr "Objekte an der horizontalen Mitte anordnen"
-
-#: ../src/ui.c:373
-msgid "Align tops"
-msgstr "Oben bündig"
-
-#: ../src/ui.c:375
-msgid "Align objects to top edges"
-msgstr "Objekte am oberen Rand anordnen"
-
-#: ../src/ui.c:380
-msgid "Align bottoms"
-msgstr "Unten bündig"
-
-#: ../src/ui.c:382
-msgid "Align objects to bottom edges"
-msgstr "Objekte am unteren Rand anordnen"
-
-#: ../src/ui.c:387
-msgid "Align vertical center"
-msgstr "Vertikal mittig anordnen"
-
-#: ../src/ui.c:389
-msgid "Align objects to vertical centers"
-msgstr "Objekte an der vertikalen Mitte anordnen"
-
-#: ../src/ui.c:394
-msgid "Center horizontally"
-msgstr "Horizontal zentrieren"
-
-#: ../src/ui.c:396
-msgid "Center objects to horizontal label center"
-msgstr "Objekte zur horizontalen Mitte des Etiketts zentrieren"
-
-#: ../src/ui.c:401
-msgid "Center vertically"
-msgstr "Vertikal zentrieren"
-
-#: ../src/ui.c:403
-msgid "Center objects to vertical label center"
-msgstr "Objekte zur vertikalen Mitte des Etiketts zentrieren"
-
-#: ../src/ui.c:408
-msgid "Merge properties"
-msgstr "Mischeinstellungen"
-
-#: ../src/ui.c:410
-msgid "Edit merge properties"
-msgstr "Mischeinstellungen bearbeiten"
-
-#: ../src/ui.c:417
-msgid "Contents"
-msgstr "Inhalte"
-
-#: ../src/ui.c:419
-msgid "Open glabels manual"
-msgstr "Das gLabels-Handbuch öffnen"
-
-#: ../src/ui.c:424
-msgid "About..."
-msgstr "Info …"
-
-#: ../src/ui.c:426
-msgid "About glabels"
-msgstr "Info zu gLabels"
-
-# CHECK
-#: ../src/ui.c:436
-msgid "Property toolbar"
-msgstr "Eigenschaften-Werkzeugleiste"
+#: ../src/color-combo-menu.c:97
+msgid "Purple"
+msgstr "Purpur"
 
-#: ../src/ui.c:438
-msgid "Change the visibility of the property toolbar in the current window"
-msgstr ""
-"Die Sichtbarkeit der Werkzeugleiste im aktuellen Fenster ein- oder "
-"ausschalten"
+#: ../src/color-combo-menu.c:99
+msgid "Salmon"
+msgstr "Lachs"
 
-#: ../src/ui.c:444 ../src/ui.c:489 ../src/ui.c:497
-msgid "Show tooltips"
-msgstr "Minihilfen anzeigen"
+#: ../src/color-combo-menu.c:100
+msgid "Gold"
+msgstr "Gold"
 
-# CHECK
-#: ../src/ui.c:446
-msgid "Show tooltips for property toolbar"
-msgstr "Minihilfen für Eigenschaften-Werkzeugleiste anzeigen"
+#: ../src/color-combo-menu.c:101
+msgid "Yellow"
+msgstr "Gelb"
 
-#: ../src/ui.c:452
-msgid "Grid"
-msgstr "Raster"
+#: ../src/color-combo-menu.c:102
+msgid "Green"
+msgstr "Grün"
 
-#: ../src/ui.c:454
-msgid "Change the visibility of the grid in the current window"
-msgstr ""
-"Die Sichtbarkeit des Rasters im aktuellen Fenster ein- oder ausschalten"
+#: ../src/color-combo-menu.c:103
+msgid "Cyan"
+msgstr "Cyan-Blau"
 
-#: ../src/ui.c:460
-msgid "Markup"
-msgstr "Markierungen"
+#: ../src/color-combo-menu.c:104
+msgid "SkyBlue"
+msgstr "Himmelblau"
 
-#: ../src/ui.c:462
-msgid "Change the visibility of markup lines in the current window"
-msgstr "Die Sichtbarkeit von Markierungslinien im aktuellen Fenster ändern"
+#: ../src/color-combo-menu.c:105
+msgid "Violet"
+msgstr "Violett"
 
-#: ../src/ui.c:473
-msgid "Main toolbar"
-msgstr "Haupt-Werkzeugleiste"
+#: ../src/color-combo-menu.c:107
+msgid "Pink"
+msgstr "Pink"
 
-#: ../src/ui.c:475
-msgid "Change the visibility of the main toolbar in the current window"
-msgstr ""
-"Die Sichtbarkeit der Haupt-Werkzeugleiste im aktuellen Fenster einschalten/"
-"ausschalten"
+#: ../src/color-combo-menu.c:108
+msgid "Khaki"
+msgstr "Khaki"
 
-#: ../src/ui.c:481
-msgid "Drawing toolbar"
-msgstr "Zeichenwerkzeugleiste"
+#: ../src/color-combo-menu.c:109
+msgid "Light Yellow"
+msgstr "Helles Gelb"
 
-#: ../src/ui.c:483
-msgid "Change the visibility of the drawing toolbar in the current window"
-msgstr ""
-"Die Sichtbarkeit der Zeichenwerkzeugleiste im aktuellen Fenster einschalten/"
-"ausschalten"
+#: ../src/color-combo-menu.c:110
+msgid "Light Green"
+msgstr "Helles Grün"
 
-#: ../src/ui.c:491
-msgid "Show tooltips for main toolbar"
-msgstr "Minihilfen für Hauptwerkzeugleiste anzeigen"
+#: ../src/color-combo-menu.c:111
+msgid "Light Cyan"
+msgstr "Helles Cyan-Blau"
 
-#: ../src/ui.c:499
-msgid "Show tooltips for drawing toolbar"
-msgstr "Minihilfen für Zeichenwerkzeugleiste anzeigen"
+#: ../src/color-combo-menu.c:112
+msgid "Slate Gray"
+msgstr "Schiefergrau"
 
-#: ../src/ui-property-bar.c:1232 ../src/object-editor.c:587
-#: ../src/object-editor.c:593
-msgid "Default"
-msgstr "Standard"
+#: ../src/color-combo-menu.c:113
+msgid "Thistle"
+msgstr "Distel"
 
-#: ../src/ui-property-bar.c:1239 ../src/object-editor.c:599
-msgid "No line"
-msgstr "Keine Linie"
+#: ../src/color-combo-menu.c:115
+msgid "White"
+msgstr "Weiß"
 
-#: ../src/ui-property-bar.c:1247 ../src/object-editor.c:606
-msgid "No fill"
-msgstr "Keine Füllung"
+#: ../src/color-combo-menu.c:117
+#, no-c-format
+msgid "10% Gray"
+msgstr "10% Grau"
 
-#: ../src/ui-sidebar.c:152
-msgid "Object properties"
-msgstr "Objekteigenschaften"
+#: ../src/color-combo-menu.c:119
+#, no-c-format
+msgid "25% Gray"
+msgstr "25% Grau"
 
-#: ../src/ui-commands.c:1084
-msgid "Glabels includes contributions from:"
-msgstr "Glabels entstand unter Mitwirkung von:"
+#: ../src/color-combo-menu.c:121
+#, no-c-format
+msgid "40% Gray"
+msgstr "40% Grau"
 
-#: ../src/ui-commands.c:1090
-msgid "See the file AUTHORS for additional credits,"
-msgstr "Lesen die Datei AUTHORS für zusätzliche Danksagungen,"
+#: ../src/color-combo-menu.c:123
+#, no-c-format
+msgid "50% Gray"
+msgstr "50% Grau"
 
-#: ../src/ui-commands.c:1091
-msgid "or visit http://glabels.sourceforge.net/"
-msgstr "oder besuchen Sie http://glabels.sourceforge.net/"
+#: ../src/color-combo-menu.c:125
+#, no-c-format
+msgid "60% Gray"
+msgstr "60% Grau"
 
-#: ../src/ui-commands.c:1103
-msgid "A label and business card creation program.\n"
-msgstr "Eine Anwendung zum Erstellen von Etiketten und Visitenkarten.\n"
+#: ../src/color-combo-menu.c:126
+msgid "Black"
+msgstr "Schwarz"
 
-#: ../src/ui-commands.c:1107
-msgid "translator-credits"
-msgstr ""
-"Marcus Bauer <m@7n7.de>\n"
-"Christian Neumair <christian-neumair@web.de>\n"
-"Mario Blättermann <mariobl@gnome.org>"
+#: ../src/color-combo-menu.c:254 ../src/color-combo-menu.c:373
+msgid "Custom Color"
+msgstr "Benutzerdefinierte Farbe"
 
-#: ../src/ui-commands.c:1110
-msgid ""
-"Glabels is free software; you can redistribute it and/or modify it\n"
-"under the terms of the GNU General Public License as published by\n"
-"the Free Software Foundation; either version 2 of the License, or\n"
-"(at your option) any later version.\n"
-"\n"
-"This program is distributed in the hope that it will be useful, but\n"
-"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See\n"
-"the GNU General Public License for more details.\n"
-msgstr ""
-"Glabels ist freie Software; Sie können sie weiterverteilen und/oder ändern\n"
-"unter den Bedingungen der GNU General Public License, veröffentlicht von\n"
-"der Free Software Foundation, entweder Version 2 der Lizenz oder (optional)\n"
-"jeder späteren Version.\n"
-" \n"
-"Dieses Programm wird verteilt in der Hoffnung, dass es nützlich ist, aber\n"
-"OHNE JEDE GARANTIE; Weitere Details in der GNU General Public License.\n"
+#: ../src/color-combo-menu.c:319
+#, c-format
+msgid "Custom Color #%u"
+msgstr "Benutzerdefinierte Farbe #%u"
 
-#: ../src/ui-commands.c:1136
-msgid "glabels"
-msgstr "glabels"
+#: ../src/critical-error-handler.c:70
+msgid "gLabels Fatal Error!"
+msgstr "Schwerwiegender Fehler in gLabels!"
 
-#: ../src/file.c:91
+#: ../src/file.c:84
 msgid "New Label or Card"
 msgstr "Neues Etikett oder neue Karte"
 
-#: ../src/file.c:191
+#: ../src/file.c:175 ../src/label.c:601 ../src/label.c:645
 msgid "Label properties"
 msgstr "Etiketten-Eigenschaften"
 
-#: ../src/file.c:292 ../src/file.c:578
+#: ../src/file.c:267 ../src/file.c:557
 msgid "All files"
 msgstr "Alle Dateien"
 
-#: ../src/file.c:297 ../src/file.c:583
+#: ../src/file.c:272 ../src/file.c:562
 msgid "gLabels documents"
 msgstr "gLabels-Dokumente"
 
-#: ../src/file.c:343 ../src/file.c:640
+#: ../src/file.c:319 ../src/file.c:620
 msgid "Empty file name selection"
 msgstr "Auswahl des Dateinamens ist leer"
 
-#: ../src/file.c:346 ../src/file.c:362
+#: ../src/file.c:322 ../src/file.c:338
 msgid "Please select a file or supply a valid file name"
-msgstr ""
-"Bitte wählen Sie eine Datei oder geben Sie einen gültigen Dateinamen an"
+msgstr "Bitte wählen Sie eine Datei oder geben Sie einen gültigen Dateinamen an"
 
-#: ../src/file.c:359
+#: ../src/file.c:335
 msgid "File does not exist"
 msgstr "Datei existiert nicht"
 
-#: ../src/file.c:433
+#: ../src/file.c:410
 #, c-format
 msgid "Could not open file \"%s\""
 msgstr "Datei »%s« konnte nicht geöffnet werden"
 
-#: ../src/file.c:436
+#: ../src/file.c:413
 msgid "Not a supported file format"
 msgstr "Kein unterstütztes Dateiformat"
 
-#: ../src/file.c:513 ../src/file.c:690
+#: ../src/file.c:491 ../src/file.c:670
 #, c-format
 msgid "Could not save file \"%s\""
 msgstr "Datei »%s« konnte nicht gespeichert werden"
 
-#: ../src/file.c:517 ../src/file.c:694
+#: ../src/file.c:495 ../src/file.c:674
 msgid "Error encountered during save.  The file is still not saved."
 msgstr "Fehler während des Speicherns. Datei wurde noch nicht gespeichert."
 
-#: ../src/file.c:556
+#: ../src/file.c:535
 #, c-format
 msgid "Save \"%s\" as"
 msgstr "»%s« speichern unter"
 
-#: ../src/file.c:643
+#: ../src/file.c:623
 msgid "Please supply a valid file name"
 msgstr "Bitte geben Sie einen gültigen Dateinamen an"
 
-#: ../src/file.c:664
+#: ../src/file.c:644
 #, c-format
 msgid "Overwrite file \"%s\"?"
 msgstr "Datei »%s« überschreiben?"
 
-#: ../src/file.c:668
+#: ../src/file.c:648
 msgid "File already exists."
 msgstr "Datei existiert bereits."
 
-#: ../src/file.c:764
+#: ../src/file.c:744
 #, c-format
 msgid "Save changes to document \"%s\" before closing?"
 msgstr "Änderungen am Dokument »%s« vor dem Schließen speichern?"
 
-#: ../src/file.c:768
+#: ../src/file.c:748
 msgid "Your changes will be lost if you don't save them."
-msgstr ""
-"Nicht gespeicherte Änderungen gehen verloren, wenn Sie nicht speichern."
+msgstr "Nicht gespeicherte Änderungen gehen verloren, wenn Sie nicht speichern."
 
-#: ../src/file.c:771
+#: ../src/file.c:751
 msgid "Close without saving"
 msgstr "Schließen, ohne zu speichern"
 
-#. Should not happen
-#: ../src/prefs.c:159 ../src/prefs.c:166
-#: ../data/glade/object-editor.glade.h:43
-#: ../data/glade/prefs-dialog.glade.h:22
-msgid "points"
-msgstr "Punkte"
+#: ../src/font-combo-menu.c:137
+msgid "Recent fonts"
+msgstr "Zuletzt benutzte Schriften"
 
-#: ../src/prefs.c:161 ../data/glade/object-editor.glade.h:42
-#: ../data/glade/template-designer.glade.h:64
-msgid "inches"
-msgstr "Zoll"
+#: ../src/font-combo-menu.c:152
+msgid "Proportional fonts"
+msgstr "Proportionale Schriften"
 
-#: ../src/prefs.c:163
-msgid "mm"
-msgstr "mm"
+#: ../src/font-combo-menu.c:160
+msgid "Fixed-width fonts"
+msgstr "Dicktengleiche Schriften"
 
-#: ../src/prefs-dialog.c:162 ../data/glade/prefs-dialog.glade.h:21
-msgid "gLabels Preferences"
-msgstr "gLabels-Einstellungen"
+#: ../src/font-combo-menu.c:168
+msgid "All fonts"
+msgstr "Alle Schriften"
 
-#. Build editor.
-#: ../src/view-box.c:175
-msgid "Box object properties"
-msgstr "Eigenschaften des Rechteck-Objekts"
+#.
+#. * Allow text samples to be localized.
+#. *
+#. * FIXME: if we could extract enough meta information from the fonts
+#. * themselves, perhaps rather than setting these globally for the
+#. * current locale, they could be unique to each font family.
+#.
+#: ../src/font-combo-menu-item.c:132
+msgctxt "Short sample text"
+msgid "Aa"
+msgstr "Aa"
+
+#: ../src/font-combo-menu-item.c:134
+msgctxt "Lower case sample text"
+msgid "abcdefghijklmnopqrstuvwxyz"
+msgstr "abcdefghijklmnopqrstuvwxyz"
+
+#: ../src/font-combo-menu-item.c:136
+msgctxt "Upper case sample text"
+msgid "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
+#: ../src/font-combo-menu-item.c:138
+msgctxt "Numbers and special characters sample text"
+msgid "0123456789 .:,;(*!?)"
+msgstr "0123456789 .:,;(*!?)"
+
+#: ../src/font-combo-menu-item.c:157
+msgid "Sample text"
+msgstr "Beispieltext"
+
+#: ../src/glabels-batch.c:53
+msgid "set output filename (default=\"output.pdf\")"
+msgstr "Ausgabe-Dateiname festlegen (Vorgabe: »output.pdf«)"
 
-#. Build editor.
-#: ../src/view-ellipse.c:175
-msgid "Ellipse object properties"
-msgstr "Eigenschaften des Ellipsen-Objekts"
+#: ../src/glabels-batch.c:53 ../src/glabels-batch.c:67
+msgid "filename"
+msgstr "Dateiname"
 
-#. Build editor.
-#: ../src/view-line.c:174
-msgid "Line object properties"
-msgstr "Eigenschaften des Linien-Objekts"
+#: ../src/glabels-batch.c:55
+msgid "number of sheets (default=1)"
+msgstr "Anzahl der Blätter (Vorgabe: 1)"
 
-#. Build editor.
-#: ../src/view-image.c:174
-msgid "Image object properties"
-msgstr "Eigenschaften des Bild-Objekts"
+#: ../src/glabels-batch.c:55
+msgid "sheets"
+msgstr "Blätter"
 
-#. Build editor.
-#: ../src/view-text.c:178
-msgid "Text object properties"
-msgstr "Eigenschaften des Text-Objekts"
+#: ../src/glabels-batch.c:57
+msgid "number of copies (default=1)"
+msgstr "Anzahl der Kopien (Vorgabe: 1)"
 
-#. Build editor.
-#: ../src/view-barcode.c:174
-msgid "Barcode object properties"
-msgstr "Eigenschaften des Strichcode-Objekts"
+#: ../src/glabels-batch.c:57
+msgid "copies"
+msgstr "Kopien"
 
-#: ../src/object-editor-image-page.c:270
-msgid "All Files"
-msgstr "Alle Dateien"
+#: ../src/glabels-batch.c:59
+msgid "first label on first sheet (default=1)"
+msgstr "Erstes Etikett auf dem ersten Blatt (Vorgabe: 1)"
 
-#: ../src/object-editor-image-page.c:275
-msgid "All Images"
-msgstr "Alle Bilder"
-
-#: ../src/object-editor-image-page.c:290
-#, c-format
-msgid "%s (*.%s)"
-msgstr "%s (*.%s)"
-
-#: ../src/merge-properties-dialog.c:263
-msgid "Merge Properties"
-msgstr "Mischeinstellungen"
-
-#: ../src/merge-properties-dialog.c:289 ../src/merge-properties-dialog.c:397
-msgid "Select merge-database source"
-msgstr "Wählen Sie die einzumischende Datenquelle"
-
-#: ../src/merge-properties-dialog.c:298 ../src/merge-properties-dialog.c:417
-msgid "N/A"
-msgstr "Nicht verfügbar"
-
-#: ../src/merge-properties-dialog.c:324
-msgid "Select"
-msgstr "Markieren"
-
-#: ../src/merge-properties-dialog.c:332
-msgid "Record/Field"
-msgstr "Feld"
-
-#: ../src/merge-properties-dialog.c:340 ../data/glade/object-editor.glade.h:10
-msgid "Data"
-msgstr "Wert"
-
-#: ../src/merge-properties-dialog.c:410
-msgid "Fixed"
-msgstr "Fixiert"
-
-#. ===================================================================
-#: ../src/print-op.c:237 ../src/wdgt-print-copies.c:171
-#: ../data/templates/misc-iso-templates.xml.h:34
-msgid "Labels"
-msgstr "Labels"
-
-#: ../src/template-designer.c:358
-msgid "gLabels Template Designer"
-msgstr "gLabels Vorlagen-Designer"
-
-#: ../src/template-designer.c:419
-msgid "Welcome"
-msgstr "Willkommen"
-
-#: ../src/template-designer.c:463
-msgid "Name and Description"
-msgstr "Name und Beschreibung"
-
-#: ../src/template-designer.c:516
-msgid "Page Size"
-msgstr "Seitenformat"
-
-#: ../src/template-designer.c:587
-msgid "Label or Card Shape"
-msgstr "Form des neuen Etiketts oder der neuen Karte"
+#: ../src/glabels-batch.c:59
+msgid "first"
+msgstr "Erste"
 
-#: ../src/template-designer.c:637
-msgid "Label or Card Size"
-msgstr "Größe des neuen Etiketts oder der neuen Karte"
+#: ../src/glabels-batch.c:61 ../data/ui/print-op-dialog-custom-widget.ui.h:13
+msgid "print outlines (to test printer alignment)"
+msgstr "Begrenzungen drucken (um Druckausrichtung zu testen)"
 
-#: ../src/template-designer.c:737
-msgid "Label Size (round)"
-msgstr "Etikettengröße (rund)"
+#: ../src/glabels-batch.c:63 ../data/ui/print-op-dialog-custom-widget.ui.h:12
+msgid "print in reverse (i.e. a mirror image)"
+msgstr "Spiegelbildlich drucken"
 
-#: ../src/template-designer.c:820
-msgid "Label Size (CD/DVD)"
-msgstr "Etikettengröße (CD/DVD)"
+#: ../src/glabels-batch.c:65 ../data/ui/print-op-dialog-custom-widget.ui.h:11
+msgid "print crop marks"
+msgstr "Schnittmarken drucken"
 
-#: ../src/template-designer.c:913
-msgid "Number of Layouts"
-msgstr "Anzahl der Layouts"
+#: ../src/glabels-batch.c:67
+msgid "input file for merging"
+msgstr "Eingabedatei zum Mischen"
 
-#: ../src/template-designer.c:976
-msgid "Layout(s)"
-msgstr "Layout(s)"
+#: ../src/glabels-batch.c:69 ../src/glabels.c:63
+msgid "[FILE...]"
+msgstr "[DATEI...]"
 
-#: ../src/template-designer.c:1087
-msgid "Design Completed"
-msgstr "Design ist komplett"
+#: ../src/glabels-batch.c:99
+msgid "Print files created with gLabels."
+msgstr "Mit gLabels erstellte Dateien drucken."
 
-#: ../src/template-designer.c:1253
+#: ../src/glabels-batch.c:107 ../src/glabels.c:87
+#, c-format
 msgid ""
-"<span foreground='red' weight='bold'>Brand and part# match an existing "
-"template!</span>"
+"%s\n"
+"Run '%s --help' to see a full list of available command line options.\n"
 msgstr ""
-"<span foreground='red' weight='bold'>Für diese Marke und Nummer wurde eine "
-"Vorlage gefunden!</span>"
-
-#: ../src/bc.c:67
-msgid "POSTNET (any)"
-msgstr "POSTNET (allgemein)"
-
-#: ../src/bc.c:70
-msgid "POSTNET-5 (ZIP only)"
-msgstr "POSTNET-5 (nur ZIP)"
-
-#: ../src/bc.c:73
-msgid "POSTNET-9 (ZIP+4)"
-msgstr "POSTNET-9 (ZIP+4)"
-
-#: ../src/bc.c:76
-msgid "POSTNET-11 (DPBC)"
-msgstr "POSTNET-11 (DPBC)"
-
-#: ../src/bc.c:79
-msgid "CEPNET"
-msgstr "CEPNET"
-
-#: ../src/bc.c:82
-msgid "EAN (any)"
-msgstr "EAN (alle)"
-
-#: ../src/bc.c:85
-msgid "EAN-8"
-msgstr "EAN-8"
-
-#: ../src/bc.c:88
-msgid "EAN-8 +2"
-msgstr "EAN-8 +2"
-
-#: ../src/bc.c:91
-msgid "EAN-8 +5"
-msgstr "EAN-8 +5"
+"%s\n"
+"Rufen Sie %s --help« auf, um eine vollständige Liste der verfügbaren "
+"Befehlszeilenoptionen zu sehen.\n"
 
-#: ../src/bc.c:94
-msgid "EAN-13"
-msgstr "EAN-13"
-
-#: ../src/bc.c:97
-msgid "EAN-13 +2"
-msgstr "EAN-13 +2"
-
-#: ../src/bc.c:100
-msgid "EAN-13 +5"
-msgstr "EAN-13 +5"
+#: ../src/glabels-batch.c:151
+#, c-format
+msgid "cannot perform document merge with glabels file %s\n"
+msgstr ""
+"Dokumentverarbeitung kann mit gLabels-Datei %s nicht ausgeführt werden\n"
 
-#: ../src/bc.c:103
-msgid "UPC (UPC-A or UPC-E)"
-msgstr "UPC (UPC-A oder UPC-E)"
+#: ../src/glabels-batch.c:186
+#, c-format
+msgid "cannot open glabels file %s\n"
+msgstr "glabels-Datei %s kann nicht geöffnet werden\n"
 
-#: ../src/bc.c:106
-msgid "UPC-A"
-msgstr "UPC-A"
+#: ../src/glabels.c:79
+msgid "Launch gLabels label and business card designer."
+msgstr "gLabels Etiketten- und Visitenkarten-Designer ausführen."
 
-#: ../src/bc.c:109
-msgid "UPC-A +2"
-msgstr "UPC-A +2"
+#: ../src/label-barcode.c:183 ../src/ui.c:317
+msgid "Create barcode object"
+msgstr "Strichcodeobjekt erzeugen"
 
-#: ../src/bc.c:112
-msgid "UPC-A +5"
-msgstr "UPC-A +5"
+#: ../src/label-barcode.c:259 ../src/label-barcode.c:461
+msgid "Barcode data"
+msgstr "Strichcode-Daten"
 
-#: ../src/bc.c:115
-msgid "UPC-E"
-msgstr "UPC-E"
+#: ../src/label-barcode.c:290
+msgid "Barcode property"
+msgstr "Strichcode-Eigenschaft"
 
-#: ../src/bc.c:118
-msgid "UPC-E +2"
-msgstr "UPC-E +2"
+#: ../src/label-barcode.c:684
+msgid "Barcode data empty"
+msgstr "Strichcode-Daten sind leer"
 
-#: ../src/bc.c:121
-msgid "UPC-E +5"
-msgstr "UPC-E +5"
+#: ../src/label-barcode.c:688
+msgid "Invalid barcode data"
+msgstr "Ungültige Strichcode-Daten"
 
-#: ../src/bc.c:124
-msgid "ISBN"
-msgstr "ISBN"
+#: ../src/label-box.c:156
+msgid "Create box object"
+msgstr "Rahmenobjekt erzeugen"
 
-#: ../src/bc.c:127
-msgid "ISBN +5"
-msgstr "ISBN +5"
+#: ../src/label-box.c:230 ../src/label-ellipse.c:232
+#: ../data/ui/property-bar.ui.h:3
+msgid "Fill color"
+msgstr "Füllfarbe"
 
-#: ../src/bc.c:130
-msgid "Code 39"
-msgstr "Code 39"
+#: ../src/label-box.c:261 ../src/label-ellipse.c:261 ../src/label-line.c:212
+#: ../data/ui/property-bar.ui.h:8
+msgid "Line color"
+msgstr "Linienfarbe"
 
-#: ../src/bc.c:133
-msgid "Code 128"
-msgstr "Code 128"
+#: ../src/label-box.c:289 ../src/label-ellipse.c:290 ../src/label-line.c:241
+#: ../data/ui/property-bar.ui.h:9
+msgid "Line width"
+msgstr "Linienbreite"
 
-#: ../src/bc.c:136
-msgid "Code 128C"
-msgstr "Code 128C"
+#: ../src/label.c:405
+msgid "Untitled"
+msgstr "Unbenannt"
 
-#: ../src/bc.c:139
-msgid "Code 128B"
-msgstr "Code 128B"
+#: ../src/label.c:719 ../src/ui.c:420
+msgid "Merge properties"
+msgstr "Mischeinstellungen"
 
-#: ../src/bc.c:142
-msgid "Interleaved 2 of 5"
-msgstr "Interleaved 2 of 5"
+#: ../src/label.c:1215 ../src/ui.c:213
+msgid "Delete"
+msgstr "Löschen"
 
-#: ../src/bc.c:145
-msgid "Codabar"
-msgstr "Codabar"
+#: ../src/label.c:1248 ../src/ui.c:322
+msgid "Bring to front"
+msgstr "Ganz nach vorn"
 
-#: ../src/bc.c:148
-msgid "MSI"
-msgstr "MSI"
+#: ../src/label.c:1284 ../src/ui.c:329
+msgid "Send to back"
+msgstr "Ganz nach hinten"
 
-#: ../src/bc.c:151
-msgid "Plessey"
-msgstr "Plessey"
+#: ../src/label.c:1325
+msgid "Rotate"
+msgstr "Drehen"
 
-#: ../src/bc.c:154
-msgid "IEC16022 (DataMatrix)"
-msgstr "IEC16022 (DataMatrix)"
+#: ../src/label.c:1360 ../src/ui.c:336
+msgid "Rotate left"
+msgstr "Links drehen"
 
-#: ../src/label.c:531
-msgid "Untitled"
-msgstr "Unbenannt"
+#: ../src/label.c:1393 ../src/ui.c:343
+msgid "Rotate right"
+msgstr "Rechts drehen"
 
-#: ../src/label-barcode.c:426
-msgid "Barcode data empty"
-msgstr "Strichcode-Daten sind leer"
+#: ../src/label.c:1428 ../src/ui.c:350
+msgid "Flip horizontally"
+msgstr "Horizontal spiegeln"
 
-#: ../src/label-barcode.c:430
-msgid "Invalid barcode data"
-msgstr "Ungültige Strichcode-Daten"
+#: ../src/label.c:1463 ../src/ui.c:357
+msgid "Flip vertically"
+msgstr "Vertikal spiegeln"
 
-#: ../src/xml-label.c:193
-msgid "xmlParseFile error"
-msgstr "xmlParseFile-Fehler"
+#: ../src/label.c:1503 ../src/ui.c:364
+msgid "Align left"
+msgstr "Linksbündig"
 
-#: ../src/xml-label.c:234
-msgid "xmlParseDoc error"
-msgstr "xmlParseDoc-Fehler"
+#: ../src/label.c:1560 ../src/ui.c:378
+msgid "Align right"
+msgstr "Rechtsbündig"
 
-#: ../src/xml-label.c:270
-msgid "No document root"
-msgstr "Kein document root"
+#: ../src/label.c:1621
+msgid "Align horizontal center"
+msgstr "Horizontal mittig anordnen"
 
-#: ../src/xml-label.c:278
-msgid "Importing from glabels 0.1 format"
-msgstr "Aus dem glabels 0.1-Format wird importiert"
+#: ../src/label.c:1697
+msgid "Align tops"
+msgstr "Oben bündig"
 
-#: ../src/xml-label.c:287
-msgid "Importing from glabels 0.4 format"
-msgstr "Aus dem glabels 0.4-Format wird importiert"
+#: ../src/label.c:1754
+msgid "Align bottoms"
+msgstr "Unten bündig"
 
-#: ../src/xml-label.c:296
-#, c-format
-msgid "Unknown glabels Namespace -- Using %s"
-msgstr "Unbekannter glabels-Namensraum -- %s wird verwendet"
+#: ../src/label.c:1815
+msgid "Align vertical center"
+msgstr "Vertikal mittig anordnen"
 
-#: ../src/xml-label.c:327 ../src/xml-label-04.c:79
-#, c-format
-msgid "Bad root node = \"%s\""
-msgstr "Fehlerhafter root node = »%s«"
+#: ../src/label.c:1893 ../src/ui.c:406
+msgid "Center horizontally"
+msgstr "Horizontal zentrieren"
 
-#: ../src/xml-label.c:364
-#, c-format
-msgid "bad node in Document node =  \"%s\""
-msgstr "Ungültiger Node im Dokument-Node = »%s«"
+#: ../src/label.c:1940 ../src/ui.c:413
+msgid "Center vertically"
+msgstr "Vertikal zentrieren"
 
-#: ../src/xml-label.c:409 ../src/xml-label-04.c:127
-#, c-format
-msgid "bad node =  \"%s\""
-msgstr "fehlerhafter node =  »%s«"
+#: ../src/label.c:2628 ../src/label.c:2670 ../src/label.c:2696 ../src/ui.c:206
+msgid "Paste"
+msgstr "Einfügen"
 
-#: ../src/xml-label.c:851
-#, c-format
-msgid "bad node in Data node =  \"%s\""
-msgstr "Ungültiger Node im Daten-Node = »%s«"
+#: ../src/label-ellipse.c:160
+msgid "Create ellipse object"
+msgstr "Ellipsenobjekt erzeugen"
 
-#: ../src/xml-label.c:1088 ../libglabels/xml-template.c:682
-msgid "Utf8 conversion error."
-msgstr "Fehler in der UTF8-Umwandlung."
+#: ../src/label-image.c:200 ../src/ui.c:310
+msgid "Create image object"
+msgstr "Bildobjekt erzeugen"
 
-#: ../src/xml-label.c:1095
-msgid "Problem saving xml file."
-msgstr "Problem beim Speichern der xml-Datei."
+#: ../src/label-image.c:333 ../src/label-image.c:474
+msgid "Set image"
+msgstr "Bild festlegen"
 
-#: ../src/merge.c:170 ../src/merge.c:211 ../src/merge.c:375 ../src/merge.c:378
-msgid "None"
-msgstr "Keine"
+#: ../src/label-line.c:147 ../src/ui.c:296
+msgid "Create line object"
+msgstr "Linienobjekt erzeugen"
 
-#: ../src/merge-init.c:59
-msgid "Text file with comma delimeters (CSV)"
-msgstr "Textdatei mit Kommata als Trennern (CSV)"
+#: ../src/label-object.c:394 ../src/label-object.c:428
+msgid "Move"
+msgstr "Verschieben"
 
-#: ../src/merge-init.c:66
-msgid "Text file with colon delimeters"
-msgstr "Textdatei mit Semikola als Trennern"
+#: ../src/label-object.c:479
+msgid "Resize"
+msgstr "Größe ändern"
 
-#: ../src/merge-init.c:73
-msgid "Text file with tab delimeters"
-msgstr "Textdatei mit Tabulatoren als Trennern"
+#: ../src/label-object.c:1217
+msgid "Shadow state"
+msgstr "Schattierung"
 
-#: ../src/merge-init.c:82
-msgid "Data from default Evolution Addressbook"
-msgstr "Daten aus dem vorgegebenen Evolution-Adressbuch"
+#: ../src/label-object.c:1260
+msgid "Shadow offset"
+msgstr "Schattierungsfarbe"
 
-#: ../src/merge-init.c:88
-msgid "Data from a file containing VCards"
-msgstr "Daten aus einer Datei, die VCards enthält"
+#: ../src/label-object.c:1308
+msgid "Shadow color"
+msgstr "Schattierungsversatz"
 
-#: ../src/merge-evolution.c:309
-msgid "Couldn't construct query"
-msgstr "Abfrage konnte nicht erstellt werden"
+#: ../src/label-object.c:1351
+msgid "Shadow opacity"
+msgstr "Schattierungstransparenz"
 
-#: ../src/merge-evolution.c:315 ../src/merge-evolution.c:326
-msgid "Couldn't open addressbook."
-msgstr "Adressbuch konnte nicht geöffnet werden"
+#: ../src/label-text.c:281 ../src/ui.c:282
+msgid "Create text object"
+msgstr "Textobjekt erzeugen"
 
-#: ../src/merge-evolution.c:341
-msgid "Couldn't list available fields."
-msgstr "Verfügbare Felder konnten nicht aufgelistet werden."
+#: ../src/label-text.c:453
+msgid "Typing"
+msgstr "Texteingabe"
 
-#: ../src/merge-evolution.c:377
-msgid "Couldn't get contacts."
-msgstr "Kontakte konnten nicht geholt werden."
+#: ../src/label-text.c:586 ../data/ui/property-bar.ui.h:4
+msgid "Font family"
+msgstr "Schriftfamilie"
 
-#: ../src/wdgt-print-copies.c:153
-msgid "Sheets:"
-msgstr "Seiten:"
+#: ../src/label-text.c:624 ../data/ui/property-bar.ui.h:5
+msgid "Font size"
+msgstr "Schriftgröße"
 
-#: ../src/wdgt-print-copies.c:173
-msgid "from:"
-msgstr "von:"
+#: ../src/label-text.c:657
+msgid "Font weight"
+msgstr "Schriftstärke"
 
-#: ../src/wdgt-print-copies.c:178
-msgid "to:"
-msgstr "bis:"
+#: ../src/label-text.c:690 ../data/ui/property-bar.ui.h:6
+msgid "Italic"
+msgstr "Kursiv"
 
-#: ../src/wdgt-print-merge.c:154
-msgid "Start on label"
-msgstr "Start bei Etikett"
+#: ../src/label-text.c:723
+msgid "Align text"
+msgstr "Text anordnen"
 
-#: ../src/wdgt-print-merge.c:159
-msgid "on 1st sheet"
-msgstr "auf erster Seite"
+#: ../src/label-text.c:756
+msgid "Line spacing"
+msgstr "Linienabstand"
 
-#: ../src/wdgt-print-merge.c:168
-msgid "Copies:"
-msgstr "Kopien:"
+#: ../src/label-text.c:789 ../data/ui/property-bar.ui.h:11
+msgid "Text color"
+msgstr "Textfarbe"
 
-#: ../src/wdgt-print-merge.c:173
-msgid "Collate"
-msgstr "Zuordnen"
+#: ../src/label-text.c:933
+msgid "Auto shrink"
+msgstr "Automatisch schrumpfen"
 
-#: ../src/wdgt-media-select.c:288 ../src/wdgt-media-select.c:292
-#: ../src/wdgt-media-select.c:297 ../src/wdgt-media-select.c:306
-#: ../src/wdgt-media-select.c:309 ../src/wdgt-media-select.c:402
-#: ../src/wdgt-media-select.c:609 ../src/wdgt-media-select.c:618
+#: ../src/media-select.c:358 ../src/media-select.c:361
+#: ../src/media-select.c:506 ../src/media-select.c:723
+msgctxt "Brand"
 msgid "Any"
 msgstr "Beliebig"
 
-#: ../src/wdgt-media-select.c:643
-#, c-format
-msgid "%d per sheet"
-msgstr "%d pro Seite"
-
-#: ../src/wdgt-media-select.c:673
-#, c-format
-msgid "%s x %s %s"
-msgstr "%s x %s %s"
+#: ../src/media-select.c:365 ../src/media-select.c:893
+msgctxt "Page size"
+msgid "Any"
+msgstr "Beliebig"
 
-#: ../src/wdgt-media-select.c:678
-#, c-format
-msgid "%.5g x %.5g %s"
-msgstr "%.5g x %.5g %s"
+#: ../src/media-select.c:372 ../src/media-select.c:375
+#: ../src/media-select.c:902
+msgctxt "Category"
+msgid "Any"
+msgstr "Beliebig"
 
-#: ../src/wdgt-media-select.c:689 ../src/wdgt-media-select.c:703
+#: ../src/media-select.c:648
 #, c-format
-msgid "%s %s diameter"
-msgstr "%s %s Durchmesser"
+msgid "Delete template \"%s\"?"
+msgstr "Vorlagen »%s« löschen?"
 
-#: ../src/wdgt-media-select.c:693 ../src/wdgt-media-select.c:707
-#, c-format
-msgid "%.5g %s diameter"
-msgstr "%.5g %s Durchmesser"
+#: ../src/media-select.c:650
+msgid "This action will permanently delete this template."
+msgstr "Dadurch wird diese Vorlage dauerhaft gelöscht."
 
-#: ../src/wdgt-media-select.c:781
+#: ../src/media-select.c:990
 msgid "No recent templates found."
-msgstr "Keine zuletzt benutzten Vorlagen gefunden."
+msgstr "Keine zuletzt benutzte Vorlagen gefunden"
 
-#: ../src/wdgt-media-select.c:782
-msgid "Try selecting a template from the \"Search all templates\" page."
+#: ../src/media-select.c:992
+msgid "Try selecting a template in the \"Search all\" tab."
 msgstr ""
-"Bitte versuchen Sie, eine Vorlage in »Alle Vorlagen durchsuchen« auszuwählen."
+"Bitte versuchen Sie, eine Vorlage im Reiter »Alle durchsuchen« auszuwählen."
 
-#: ../src/wdgt-media-select.c:861
+#. Translators: "No match" means that for the given template search criteria, there
+#. * were no matches found.
+#: ../src/media-select.c:1083
 msgid "No match."
 msgstr "Keine Treffer."
 
-#: ../src/wdgt-media-select.c:862
+#: ../src/media-select.c:1085
 msgid "Try selecting a different brand, page size or category."
 msgstr ""
 "Versuchen Sie eine andere Marke, Seitengröße oder Kategorie auszuwählen."
 
-#. This is the default custom color
-#: ../src/mygal/color-palette.c:389
-msgid "custom"
-msgstr "benutzerdefiniert"
+#: ../src/media-select.c:1179
+msgid "No custom templates found."
+msgstr "Keine benutzerdefinierten Vorlage gefunden."
 
-#. "Custom" color - we'll pop up a GtkColorButton
-#: ../src/mygal/color-palette.c:431
-msgid "Custom Color:"
-msgstr "Benutzerdefinierte Farbe:"
+#: ../src/media-select.c:1181
+msgid ""
+"You may create new templates or try searching for pre-defined templates in "
+"the \"Search all\" tab."
+msgstr ""
+"Sie können versuchen, neue Vorlagen zu erstellen oder die mitgelieferten "
+"Vorlagen im Reiter »Alle durchsuchen« zu durchsuchen."
 
-#: ../src/mygal/color-palette.c:439
-msgid "Choose Custom Color"
-msgstr "Benutzerdefinierte Farbe wählen"
+#. Translators: "None" here means that no document-merge source or
+#. * method has been selected.
+#: ../src/merge.c:171 ../src/merge.c:212 ../src/merge.c:376 ../src/merge.c:379
+msgid "None"
+msgstr "Keine"
 
-#: ../src/mygal/color-palette.c:572
-msgid "black"
-msgstr "Schwarz"
+#: ../src/merge-init.c:57
+msgid "Text: Comma Separated Values (CSV)"
+msgstr "Text: Durch Kommata getrennte Werte (CSV)"
 
-#: ../src/mygal/color-palette.c:573
-msgid "light brown"
-msgstr "Helles Braun"
+#: ../src/merge-init.c:64
+msgid "Text: Comma Separated Values (CSV) with keys on line 1"
+msgstr "Text: Durch Kommata getrennte Werte (CSV) mit Schlüsseln in Zeile 1"
 
-#: ../src/mygal/color-palette.c:574
-msgid "brown gold"
-msgstr "goldbraun"
+#: ../src/merge-init.c:72
+msgid "Text: Tab Separated Values (TSV)"
+msgstr "Text: Durch Tabulatoren getrennte Werte (TSV)"
 
-#: ../src/mygal/color-palette.c:575
-msgid "dark green #2"
-msgstr "Dunkles Grün 2"
+#: ../src/merge-init.c:79
+msgid "Text: Tab Separated Values (TSV) with keys on line 1"
+msgstr "Text: Durch Tabulatoren getrennte Werte (TSV) mit Schlüsseln in Zeile 1"
 
-#: ../src/mygal/color-palette.c:576
-msgid "navy"
-msgstr "marineblau"
+#: ../src/merge-init.c:87
+msgid "Text: Colon separated values"
+msgstr "Text: Durch Semikola getrennte Werte"
 
-#: ../src/mygal/color-palette.c:577 ../src/mygal/color-palette.c:633
-msgid "dark blue"
-msgstr "Dunkles Blau"
+#: ../src/merge-init.c:94
+msgid "Text: Colon separated values with keys on line 1"
+msgstr "Text: Durch Semikola getrennte Werte mit Schlüsseln in Zeile 1"
 
-#: ../src/mygal/color-palette.c:578
-msgid "purple #2"
-msgstr "Purpur 2"
+#: ../src/merge-init.c:102
+msgid "Text: Semicolon separated values"
+msgstr "Text: Durch Semikola getrennte Werte"
 
-#: ../src/mygal/color-palette.c:579
-msgid "very dark gray"
-msgstr "sehr dunkles grau"
+#: ../src/merge-init.c:109
+msgid "Text: Semicolon separated values with keys on line 1"
+msgstr "Text: Durch Semikola getrennte Werte mit Schlüsseln in Zeile 1"
 
-#: ../src/mygal/color-palette.c:582 ../src/mygal/color-palette.c:638
-msgid "dark red"
-msgstr "Dunkelrot"
+#: ../src/merge-init.c:119
+msgid "Evolution Addressbook"
+msgstr "Evolution-Adressbuch"
 
-#: ../src/mygal/color-palette.c:583
-msgid "red-orange"
-msgstr "Rot-Orange"
+#: ../src/merge-init.c:125
+msgid "VCards"
+msgstr "VCards"
 
-#: ../src/mygal/color-palette.c:584
-msgid "gold"
-msgstr "Gold"
+#: ../src/merge-properties-dialog.c:280
+msgid "Merge Properties"
+msgstr "Mischeinstellungen"
 
-#: ../src/mygal/color-palette.c:585
-msgid "dark green"
-msgstr "Dunkles Grün"
+#: ../src/merge-properties-dialog.c:304 ../src/merge-properties-dialog.c:420
+msgid "Select merge-database source"
+msgstr "Wählen Sie die einzumischende Datenquelle"
 
-#: ../src/mygal/color-palette.c:586 ../src/mygal/color-palette.c:639
-msgid "dull blue"
-msgstr "Mattes Blau"
+#: ../src/merge-properties-dialog.c:315 ../src/merge-properties-dialog.c:446
+msgid "N/A"
+msgstr "Nicht verfügbar"
 
-#: ../src/mygal/color-palette.c:587 ../src/mygal/color-palette.c:640
-msgid "blue"
-msgstr "Blau"
+#: ../src/merge-properties-dialog.c:341
+msgid "Select"
+msgstr "Markieren"
 
-#: ../src/mygal/color-palette.c:588
-msgid "dull purple"
-msgstr "Mattes Purpur"
+#: ../src/merge-properties-dialog.c:348
+msgid "Record/Field"
+msgstr "Feld"
 
-#: ../src/mygal/color-palette.c:589
-msgid "dark grey"
-msgstr "Dunkelgrau"
+#: ../src/merge-properties-dialog.c:356 ../data/ui/object-editor.ui.h:10
+msgid "Data"
+msgstr "Wert"
 
-#: ../src/mygal/color-palette.c:592
-msgid "red"
-msgstr "Rot"
+#. Translators: "Fixed" here means that for the given document-merge method, there are
+#. * no further choices to further define the source of data.  E.g. if you select the
+#. * evolution-data-server, there are no further choices -- the source is "Fixed."
+#.
+#: ../src/merge-properties-dialog.c:439
+msgid "Fixed"
+msgstr "Fixiert"
 
-#: ../src/mygal/color-palette.c:593
-msgid "orange"
-msgstr "Orange"
+#. Translators: "Up" refers to the direction towards the top of a label.
+#: ../src/mini-preview.c:1054
+msgid "Up"
+msgstr "Nach oben"
 
-#: ../src/mygal/color-palette.c:594
-msgid "lime"
-msgstr "hellgrün"
+#: ../src/new-label-dialog.c:203
+msgid "Select Product"
+msgstr "Produkt auswählen"
 
-#: ../src/mygal/color-palette.c:595
-msgid "dull green"
-msgstr "Mittelgrün"
+#: ../src/new-label-dialog.c:215
+msgid "Choose Orientation"
+msgstr "Ausrichtung wählen"
 
-#: ../src/mygal/color-palette.c:596
-msgid "dull blue #2"
-msgstr "Mittelblau 2"
+#: ../src/new-label-dialog.c:229
+msgid "Review"
+msgstr "Überprüfen"
 
-#: ../src/mygal/color-palette.c:597
-msgid "sky blue #2"
-msgstr "Himmelblau 2"
+#: ../src/object-editor-bc-page.c:97 ../src/object-editor-shadow-page.c:93
+#: ../src/object-editor-text-page.c:97 ../src/prefs-dialog.c:335
+#: ../src/ui-property-bar.c:277
+msgid "Default"
+msgstr "Standard"
 
-#: ../src/mygal/color-palette.c:598 ../src/mygal/color-palette.c:637
-msgid "purple"
-msgstr "Purpur"
+#: ../src/object-editor.c:161 ../src/object-editor.c:470
+msgid "Object properties"
+msgstr "Objekteigenschaften"
 
-#: ../src/mygal/color-palette.c:599
-msgid "gray"
-msgstr "grau"
+#: ../src/object-editor.c:314
+msgid "Box object properties"
+msgstr "Eigenschaften des Rechteck-Objekts"
 
-#: ../src/mygal/color-palette.c:602 ../src/mygal/color-palette.c:634
-msgid "magenta"
-msgstr "Magenta"
+#: ../src/object-editor.c:333
+msgid "Ellipse object properties"
+msgstr "Eigenschaften des Ellipsen-Objekts"
 
-#: ../src/mygal/color-palette.c:603
-msgid "bright orange"
-msgstr "Helles Orange"
+#: ../src/object-editor.c:352
+msgid "Line object properties"
+msgstr "Eigenschaften des Linien-Objekts"
 
-#: ../src/mygal/color-palette.c:604 ../src/mygal/color-palette.c:635
-msgid "yellow"
-msgstr "Gelb"
+#: ../src/object-editor.c:369
+msgid "Image object properties"
+msgstr "Eigenschaften des Bild-Objekts"
 
-#: ../src/mygal/color-palette.c:605
-msgid "green"
-msgstr "Grün"
+#: ../src/object-editor.c:386
+msgid "Text object properties"
+msgstr "Eigenschaften des Text-Objekts"
 
-#: ../src/mygal/color-palette.c:606 ../src/mygal/color-palette.c:636
-msgid "cyan"
-msgstr "Cyan-Blau"
+#: ../src/object-editor.c:408
+msgid "Barcode object properties"
+msgstr "Eigenschaften des Strichcode-Objekts"
 
-#: ../src/mygal/color-palette.c:607
-msgid "bright blue"
-msgstr "hellblau"
+#: ../src/object-editor-edit-page.c:76
+msgid "Insert merge field"
+msgstr "Datenfeld einfügen"
 
-#: ../src/mygal/color-palette.c:608 ../src/mygal/color-palette.c:625
-msgid "red purple"
-msgstr "Purpurrot"
+#: ../src/object-editor-fill-page.c:79 ../src/prefs-dialog.c:341
+#: ../src/ui-property-bar.c:287
+msgid "No Fill"
+msgstr "Keine Füllung"
 
-#: ../src/mygal/color-palette.c:609
-msgid "light grey"
-msgstr "Helles Grau"
+#: ../src/object-editor-image-page.c:302
+msgid "All Files"
+msgstr "Alle Dateien"
 
-#: ../src/mygal/color-palette.c:612 ../src/mygal/color-palette.c:629
-msgid "pink"
-msgstr "Pink"
+#: ../src/object-editor-image-page.c:307
+msgid "All Images"
+msgstr "Alle Bilder"
 
-#: ../src/mygal/color-palette.c:613
-msgid "light orange"
-msgstr "Helles Orange"
+#: ../src/object-editor-image-page.c:323
+#, c-format
+msgid "%s (*.%s)"
+msgstr "%s (*.%s)"
 
-#: ../src/mygal/color-palette.c:614 ../src/mygal/color-palette.c:626
-msgid "light yellow"
-msgstr "Helles Gelb"
+#: ../src/object-editor-line-page.c:79 ../src/prefs-dialog.c:338
+#: ../src/ui-property-bar.c:297
+msgid "No Line"
+msgstr "Keine Linie"
 
-#: ../src/mygal/color-palette.c:615
-msgid "light green"
-msgstr "Helles Grün"
+#: ../src/object-editor-size-page.c:89
+msgid "Lock aspect ratio."
+msgstr "Das Seitenverhältnis beibehalten."
 
-#: ../src/mygal/color-palette.c:616
-msgid "light cyan"
-msgstr "Helles Cyan-Blau"
+#: ../src/prefs-dialog.c:168 ../data/ui/prefs-dialog.ui.h:21
+msgid "gLabels Preferences"
+msgstr "gLabels-Einstellungen"
 
-#: ../src/mygal/color-palette.c:617 ../src/mygal/color-palette.c:627
-msgid "light blue"
-msgstr "Hellblau"
+#. TODO: Is this the actual part #?
+#: ../src/print-op.c:205 ../src/print-op-dialog.c:215
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:4
+#: ../templates/misc-iso-templates.xml.h:24
+msgid "Labels"
+msgstr "Labels"
 
-#: ../src/mygal/color-palette.c:618 ../src/mygal/color-palette.c:631
-msgid "light purple"
-msgstr "Helles Purpur"
+#: ../src/template-designer.c:429
+msgid "New gLabels Template"
+msgstr "Neue gLabels-Vorlage"
 
-#: ../src/mygal/color-palette.c:619
-msgid "white"
-msgstr "Weiß"
+#: ../src/template-designer.c:487
+msgid "Welcome"
+msgstr "Willkommen"
 
-#: ../src/mygal/color-palette.c:624
-msgid "purplish blue"
-msgstr "purpurblau"
+#: ../src/template-designer.c:526
+msgid "Name and Description"
+msgstr "Name und Beschreibung"
 
-#: ../src/mygal/color-palette.c:628
-msgid "dark purple"
-msgstr "dunkles Purpur"
+#: ../src/template-designer.c:575
+msgid "Page Size"
+msgstr "Seitenformat"
 
-#: ../src/mygal/color-palette.c:630
-msgid "sky blue"
-msgstr "Himmelblau"
+#: ../src/template-designer.c:642
+msgid "Label or Card Shape"
+msgstr "Form des neuen Etiketts oder der neuen Karte"
 
-#: ../src/critical-error-handler.c:73
-msgid "gLabels Fatal Error!"
-msgstr "Schwerwiegender Fehler in gLabels!"
+#: ../src/template-designer.c:689 ../src/template-designer.c:790
+msgid "Label or Card Size"
+msgstr "Größe des neuen Etiketts oder der neuen Karte"
+
+#: ../src/template-designer.c:873
+msgid "Label Size (round)"
+msgstr "Etikettengröße (rund)"
+
+#: ../src/template-designer.c:954
+msgid "Label Size (CD/DVD)"
+msgstr "Etikettengröße (CD/DVD)"
+
+#: ../src/template-designer.c:1045
+msgid "Number of Layouts"
+msgstr "Anzahl der Layouts"
+
+#: ../src/template-designer.c:1113
+msgid "Layout(s)"
+msgstr "Layout(s)"
+
+#: ../src/template-designer.c:1218
+msgid "Design Completed"
+msgstr "Design ist komplett"
+
+#: ../src/template-designer.c:1246
+msgid "Edit gLabels Template"
+msgstr "gLabels-Vorlage bearbeiten"
+
+#: ../src/template-designer.c:1549
+msgid "Brand and part# match an existing template!"
+msgstr "Für diese Marke und Nummer wurde eine Vorlage gefunden!"
+
+#. Menu entries.
+#: ../src/ui.c:91
+msgid "_File"
+msgstr "_Datei"
+
+#: ../src/ui.c:92
+msgid "Open Recent _Files"
+msgstr "_Zuletzt geöffnete Dateien"
+
+#: ../src/ui.c:93
+msgid "_Edit"
+msgstr "_Bearbeiten"
+
+#: ../src/ui.c:94
+msgid "_View"
+msgstr "_Ansicht"
+
+#: ../src/ui.c:95
+msgid "Customize Main Toolbar"
+msgstr "Werkzeugleiste anpassen"
+
+#: ../src/ui.c:96
+msgid "Customize Drawing Toolbar"
+msgstr "Zeichenwerkzeugleiste anpassen"
+
+#: ../src/ui.c:97
+msgid "Customize Properties Toolbar"
+msgstr "Eigenschaften-Werkzeugleiste anpassen"
+
+#: ../src/ui.c:98
+msgid "_Objects"
+msgstr "_Objekte"
+
+#: ../src/ui.c:99
+msgid "_Create"
+msgstr "_Erzeugen"
+
+#: ../src/ui.c:100
+msgid "_Order"
+msgstr "_Anordnung"
+
+#: ../src/ui.c:101
+msgid "_Rotate/Flip"
+msgstr "D_rehen/Spiegeln"
+
+#: ../src/ui.c:102
+msgid "_Alignment"
+msgstr "_Ausrichtung"
+
+#: ../src/ui.c:103
+msgid "C_enter"
+msgstr "Mitt_e"
+
+#: ../src/ui.c:104
+msgid "_Help"
+msgstr "_Hilfe"
+
+#. Popup entries.
+#: ../src/ui.c:107 ../src/ui.c:108
+msgid "Context Menu"
+msgstr "Kontextmenü"
+
+#: ../src/ui.c:113
+msgid "_New"
+msgstr "_Neu"
+
+#: ../src/ui.c:115
+msgid "Create a new file"
+msgstr "Eine neue Datei erstellen"
+
+#: ../src/ui.c:120
+msgid "_Open..."
+msgstr "Ö_ffnen …"
+
+#: ../src/ui.c:122
+msgid "Open a file"
+msgstr "Eine Datei öffnen"
+
+#: ../src/ui.c:127
+msgid "_Save"
+msgstr "_Speichern"
+
+#: ../src/ui.c:129
+msgid "Save current file"
+msgstr "Die aktuelle Datei speichern"
+
+#: ../src/ui.c:134
+msgid "Save _As..."
+msgstr "Speichern _unter …"
+
+#: ../src/ui.c:136
+msgid "Save the current file to a different name"
+msgstr "Die aktuelle Datei unter einem anderen Dateinamen speichern"
+
+#: ../src/ui.c:141
+msgid "_Print..."
+msgstr "_Drucken …"
+
+#: ../src/ui.c:143
+msgid "Print the current file"
+msgstr "Die aktuelle Datei drucken"
+
+#: ../src/ui.c:148
+msgid "Properties..."
+msgstr "Einstellungen …"
+
+#: ../src/ui.c:150
+msgid "Modify document properties"
+msgstr "Dokumenteigenschaften ändern"
+
+#: ../src/ui.c:155
+msgid "Template _Designer..."
+msgstr "Vorlagen-_Designer …"
+
+#: ../src/ui.c:157
+msgid "Create a custom template"
+msgstr "Eine neue benutzerdefinierte Vorlage erstellen"
+
+#: ../src/ui.c:162
+msgid "_Close"
+msgstr "S_chließen"
+
+#: ../src/ui.c:164
+msgid "Close the current file"
+msgstr "Die aktuelle Datei schließen"
+
+#: ../src/ui.c:169
+msgid "_Quit"
+msgstr "_Beenden"
+
+#: ../src/ui.c:171
+msgid "Quit the program"
+msgstr "Das Programm beenden"
+
+#: ../src/ui.c:178 ../src/ui.c:180 ../src/ui.c:976
+msgid "Undo"
+msgstr "Rückgängig"
+
+#: ../src/ui.c:185 ../src/ui.c:187 ../src/ui.c:983
+msgid "Redo"
+msgstr "Wiederholen"
+
+#: ../src/ui.c:192
+msgid "Cut"
+msgstr "Ausschneiden"
+
+#: ../src/ui.c:194
+msgid "Cut the selection"
+msgstr "Die Markierung ausschneiden"
+
+#: ../src/ui.c:199
+msgid "Copy"
+msgstr "Kopieren"
+
+#: ../src/ui.c:201
+msgid "Copy the selection"
+msgstr "Die Markierung kopieren"
+
+#: ../src/ui.c:208
+msgid "Paste the clipboard"
+msgstr "Inhalt der Zwischenablage einfügen"
+
+#: ../src/ui.c:215
+msgid "Delete the selected objects"
+msgstr "Die markierten Objekte löschen"
+
+#: ../src/ui.c:220
+msgid "Select All"
+msgstr "Alles markieren"
+
+#: ../src/ui.c:222
+msgid "Select all objects"
+msgstr "Alle Objekte markieren"
+
+#: ../src/ui.c:227
+msgid "Un-select All"
+msgstr "Alle Markierungen löschen"
+
+#: ../src/ui.c:229
+msgid "Remove all selections"
+msgstr "Alle Auswahlen aufheben"
+
+#: ../src/ui.c:234
+msgid "Preferences"
+msgstr "Einstellungen"
+
+#: ../src/ui.c:236
+msgid "Configure the application"
+msgstr "Die Anwendung konfigurieren"
+
+#: ../src/ui.c:243
+msgid "Zoom in"
+msgstr "Vergrößern"
+
+#: ../src/ui.c:245
+msgid "Increase magnification"
+msgstr "Vergrößern"
+
+#: ../src/ui.c:250
+msgid "Zoom out"
+msgstr "Verkleinern"
+
+#: ../src/ui.c:252
+msgid "Decrease magnification"
+msgstr "Verkleinern"
+
+#: ../src/ui.c:257
+msgid "Zoom 1 to 1"
+msgstr "Vergrößerung 1:1"
+
+#: ../src/ui.c:259
+msgid "Restore scale to 100%"
+msgstr "Maßstab auf 100% wiederherstellen"
+
+#: ../src/ui.c:264
+msgid "Zoom to fit"
+msgstr "Einpassen"
+
+#: ../src/ui.c:266
+msgid "Set scale to fit window"
+msgstr "In Fenster einpassen"
+
+#: ../src/ui.c:273
+msgid "Select Mode"
+msgstr "Modus auswählen"
+
+#: ../src/ui.c:275
+msgid "Select, move and modify objects"
+msgstr "Objekte auswählen, bewegen, ändern"
+
+#: ../src/ui.c:280 ../src/view-text.c:94 ../data/ui/object-editor.ui.h:30
+#: ../data/ui/prefs-dialog.ui.h:17
+msgid "Text"
+msgstr "Text"
+
+#: ../src/ui.c:287
+msgid "Box"
+msgstr "Rechteck"
+
+#: ../src/ui.c:289
+msgid "Create box/rectangle object"
+msgstr "Rechteck-Objekt erzeugen"
+
+#: ../src/ui.c:294 ../data/ui/object-editor.ui.h:19
+#: ../data/ui/prefs-dialog.ui.h:9
+msgid "Line"
+msgstr "Linie"
+
+#: ../src/ui.c:301
+msgid "Ellipse"
+msgstr "Ellipse"
+
+#: ../src/ui.c:303
+msgid "Create ellipse/circle object"
+msgstr "Ellipsen- oder Kreisobjekt erzeugen"
+
+#: ../src/ui.c:308 ../data/ui/object-editor.ui.h:16
+msgid "Image"
+msgstr "Bild"
+
+#: ../src/ui.c:315
+msgid "Barcode"
+msgstr "Strichcode"
+
+#: ../src/ui.c:324
+msgid "Raise object to top"
+msgstr "Objekt im Ebenenstapel nach oben verschieben"
+
+#: ../src/ui.c:331
+msgid "Lower object to bottom"
+msgstr "Objekt im Ebenenstapel nach unten verschieben"
+
+#: ../src/ui.c:338
+msgid "Rotate object 90 degrees counter-clockwise"
+msgstr "Objekt um 90 Grad gegen den Uhrzeigersinn drehen"
+
+#: ../src/ui.c:345
+msgid "Rotate object 90 degrees clockwise"
+msgstr "Objekt um 90 Grad im Uhrzeigersinn drehen"
+
+#: ../src/ui.c:352
+msgid "Flip object horizontally"
+msgstr "Objekt horizontal spiegeln"
+
+#: ../src/ui.c:359
+msgid "Flip object vertically"
+msgstr "Objekt vertikal spiegeln"
+
+#: ../src/ui.c:366
+msgid "Align objects to left edges"
+msgstr "Objekte am linken Rand anordnen"
+
+#: ../src/ui.c:371
+msgid "Align center"
+msgstr "Mittig ausrichten"
+
+#: ../src/ui.c:373
+msgid "Align objects to horizontal centers"
+msgstr "Objekte an der horizontalen Mitte anordnen"
+
+#: ../src/ui.c:380
+msgid "Align objects to right edges"
+msgstr "Objekte am rechten Rand anordnen"
+
+#: ../src/ui.c:385
+msgid "Align top"
+msgstr "Oben ausrichten"
+
+#: ../src/ui.c:387
+msgid "Align objects to top edges"
+msgstr "Objekte am oberen Rand anordnen"
+
+#: ../src/ui.c:392
+msgid "Align middle"
+msgstr "Mittig ausrichten"
+
+#: ../src/ui.c:394
+msgid "Align objects to vertical centers"
+msgstr "Objekte an der vertikalen Mitte anordnen"
+
+#: ../src/ui.c:399
+msgid "Align bottom"
+msgstr "Unten ausrichten"
+
+#: ../src/ui.c:401
+msgid "Align objects to bottom edges"
+msgstr "Objekte am unteren Rand anordnen"
+
+#: ../src/ui.c:408
+msgid "Center objects to horizontal label center"
+msgstr "Objekte zur horizontalen Mitte des Etiketts zentrieren"
+
+#: ../src/ui.c:415
+msgid "Center objects to vertical label center"
+msgstr "Objekte zur vertikalen Mitte des Etiketts zentrieren"
+
+#: ../src/ui.c:422
+msgid "Edit merge properties"
+msgstr "Mischeinstellungen bearbeiten"
+
+#: ../src/ui.c:429
+msgid "Contents"
+msgstr "Inhalte"
+
+#: ../src/ui.c:431
+msgid "Open glabels manual"
+msgstr "Das gLabels-Handbuch öffnen"
+
+#: ../src/ui.c:436
+msgid "About..."
+msgstr "Info …"
+
+#: ../src/ui.c:438 ../src/ui-commands.c:1198
+msgid "About glabels"
+msgstr "Info zu gLabels"
+
+# CHECK
+#: ../src/ui.c:448
+msgid "Property toolbar"
+msgstr "Eigenschaften-Werkzeugleiste"
+
+#: ../src/ui.c:450
+msgid "Change the visibility of the property toolbar in the current window"
+msgstr ""
+"Die Sichtbarkeit der Werkzeugleiste im aktuellen Fenster ein- oder ausschalten"
+
+#: ../src/ui.c:456
+msgid "Grid"
+msgstr "Raster"
+
+#: ../src/ui.c:458
+msgid "Change the visibility of the grid in the current window"
+msgstr "Die Sichtbarkeit des Rasters im aktuellen Fenster ein- oder ausschalten"
+
+#: ../src/ui.c:464
+msgid "Markup"
+msgstr "Markierungen"
+
+#: ../src/ui.c:466
+msgid "Change the visibility of markup lines in the current window"
+msgstr "Die Sichtbarkeit von Markierungslinien im aktuellen Fenster ändern"
+
+#: ../src/ui.c:477
+msgid "Main toolbar"
+msgstr "Haupt-Werkzeugleiste"
+
+#: ../src/ui.c:479
+msgid "Change the visibility of the main toolbar in the current window"
+msgstr ""
+"Die Sichtbarkeit der Haupt-Werkzeugleiste im aktuellen Fenster einschalten/"
+"ausschalten"
+
+#: ../src/ui.c:485
+msgid "Drawing toolbar"
+msgstr "Zeichenwerkzeugleiste"
+
+#: ../src/ui.c:487
+msgid "Change the visibility of the drawing toolbar in the current window"
+msgstr ""
+"Die Sichtbarkeit der Zeichenwerkzeugleiste im aktuellen Fenster einschalten/"
+"ausschalten"
+
+#: ../src/ui-commands.c:1135
+msgid "Glabels includes contributions from:"
+msgstr "Glabels entstand unter Mitwirkung von:"
+
+#: ../src/ui-commands.c:1144
+msgid "See the file AUTHORS for additional credits,"
+msgstr "Lesen die Datei AUTHORS für zusätzliche Danksagungen,"
+
+#: ../src/ui-commands.c:1145
+msgid "or visit http://glabels.org/"
+msgstr "oder besuchen Sie http://glabels.org/"
+
+#: ../src/ui-commands.c:1162
+msgid "A label and business card creation program.\n"
+msgstr "Eine Anwendung zum Erstellen von Etiketten und Visitenkarten.\n"
+
+#: ../src/ui-commands.c:1166
+msgid "translator-credits"
+msgstr ""
+"Marcus Bauer <m@7n7.de>\n"
+"Christian Neumair <christian-neumair@web.de>\n"
+"Mario Blättermann <mariobl@freenet.de>"
+
+#: ../src/ui-commands.c:1169
+msgid ""
+"gLabels is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"gLabels is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Glabels ist freie Software; Sie können sie weiterverteilen und/oder ändern\n"
+"unter den Bedingungen der GNU General Public License, veröffentlicht von\n"
+"der Free Software Foundation, entweder Version 3 der Lizenz oder (optional)\n"
+"jeder späteren Version.\n"
+" \n"
+"Dieses Programm wird verteilt in der Hoffnung, dass es nützlich ist, aber\n"
+"OHNE JEDE GARANTIE; Weitere Details in der GNU General Public License.\n"
 
-#: ../src/warning-handler.c:73
+#: ../src/warning-handler.c:69
 msgid "gLabels Error!"
 msgstr "gLabels-Fehler!"
 
+#: ../src/window.c:281
+msgid "(none) - gLabels"
+msgstr "(Unbenannt) - gLabels"
+
+#: ../src/window.c:482
+msgid "(modified)"
+msgstr "(geändert)"
+
 #. Create and append an "Other" entry.
-#: ../libglabels/db.c:118
+#. Translators: "Other" here means other page size.  Meaning a page size
+#. * other than the standard ones that libglabels knows about such as
+#. * "letter", "A4", etc.
+#: ../libglabels/lgl-db.c:267
 msgid "Other"
 msgstr "Andere"
 
 #. Create and append a "User defined" entry.
-#: ../libglabels/db.c:131
+#: ../libglabels/lgl-db.c:276
 msgid "User defined"
 msgstr "Benutzerdefiniert"
 
-#: ../libglabels/db.c:482
+#: ../libglabels/lgl-db.c:663
 msgid ""
 "Unable to locate paper size definitions.  Libglabels may not be installed "
 "correctly!"
@@ -1489,7 +1705,7 @@ msgstr ""
 "Die Definitionen der Papiergrößen konnten nicht gefunden werden. Libglabels "
 "ist möglicherweise nicht korrekt installiert!"
 
-#: ../libglabels/db.c:875
+#: ../libglabels/lgl-db.c:1062
 msgid ""
 "Unable to locate category definitions.  Libglabels may not be installed "
 "correctly!"
@@ -1497,7 +1713,7 @@ msgstr ""
 "Es war nicht möglich, Kategorie-Definitionen zu finden. Libglabels könnte "
 "möglicherweise nicht korrekt installiert sein!"
 
-#: ../libglabels/db.c:1461
+#: ../libglabels/lgl-db.c:1989
 msgid ""
 "Unable to locate any template files.  Libglabels may not be installed "
 "correctly!"
@@ -1505,415 +1721,462 @@ msgstr ""
 "Es konnten keine Vorlagendateien gefunden werden. Möglicherweise ist "
 "libglabels nicht korrekt installiert!"
 
-#: ../libglabels/db.c:1538
+#: ../libglabels/lgl-db.c:2056
 #, c-format
-msgid "Generic %s full page template"
-msgstr "Allgemeine Ganzseitenvorlage %s"
+msgid "%s full page label"
+msgstr "Ganzseitenetikett %s"
 
-#: ../libglabels/xml-template.c:227
-msgid "Missing name or brand/part attributes."
-msgstr "Name oder Attribute für Marke/Nummer fehlen."
-
-#. This should always be an id, but just in case a name
-#. slips by!
-#: ../libglabels/xml-template.c:244
+#.
+#. * Translators: 1st %d = number of labels across a page,
+#. *              2nd %d = number of labels down a page,
+#. *              3rd %d = total number of labels on a page (sheet).
+#.
+#: ../libglabels/lgl-template.c:673
 #, c-format
-msgid "Unknown page size id \"%s\", trying as name"
-msgstr "Unbekannte Kennung der Seitengröße »%s«, wird als Name versucht"
+msgid "%d × %d (%d per sheet)"
+msgstr "%d × %d (%d pro Seite)"
 
-#: ../libglabels/xml-template.c:256
+#. Translators: %d is the total number of labels on a page (sheet).
+#: ../libglabels/lgl-template.c:678
 #, c-format
-msgid "Unknown page size id or name \"%s\""
-msgstr "Unbekannte Kennung der Seitengröße oder Name »%s«"
+msgid "%d per sheet"
+msgstr "%d pro Seite"
 
-#: ../libglabels/xml-template.c:627
-msgid ""
-"Missing required \"brand\" or \"part\" attribute, trying deprecated name."
-msgstr ""
-"Benötigtes Attribut »brand« oder »part« fehlt, missbilligter Name wird "
-"versucht. "
+#: ../libglabels/lgl-template.c:759 ../libglabels/lgl-template.c:767
+#: ../libglabels/lgl-template.c:779 ../libglabels/lgl-template.c:787
+msgid "diameter"
+msgstr "Durchmesser"
+
+#. The ids are identical to the absolute length units supported in
+#. the CSS2 Specification (Section 4.3.2)
+#. This table must be sorted exactly as the enumerations in lglUnits
+#. [LGL_UNITS_POINT]
+#: ../libglabels/lgl-units.c:65 ../data/ui/object-editor.ui.h:42
+#: ../data/ui/prefs-dialog.ui.h:22
+msgid "points"
+msgstr "Punkte"
+
+#. [LGL_UNITS_INCH]
+#: ../libglabels/lgl-units.c:66 ../data/ui/object-editor.ui.h:40
+#: ../data/ui/template-designer.ui.h:66
+msgid "inches"
+msgstr "Zoll"
 
-#: ../libglabels/xml-template.c:637
-msgid "Name attribute also missing."
-msgstr "Name des Attributs fehlt ebenfalls."
+#. [LGL_UNITS_MM]
+#: ../libglabels/lgl-units.c:67
+msgid "mm"
+msgstr "mm"
 
-#: ../data/glade/merge-properties-dialog.glade.h:1
-msgid "<b>Record selection/preview</b>"
-msgstr "<b>Feldauswahl/Vorschau</b>"
+#. [LGL_UNITS_CM]
+#: ../libglabels/lgl-units.c:68
+msgid "cm"
+msgstr "cm"
 
-#: ../data/glade/merge-properties-dialog.glade.h:2
-msgid "<b>Source</b>"
-msgstr "<b>Quelle</b>"
+#. [LGL_UNITS_PICA]
+#: ../libglabels/lgl-units.c:69
+msgid "picas"
+msgstr "picas"
 
-#: ../data/glade/merge-properties-dialog.glade.h:3
+#.
+#. * Local Variables:       -- emacs
+#. * mode: C                -- emacs
+#. * c-basic-offset: 8      -- emacs
+#. * tab-width: 8           -- emacs
+#. * indent-tabs-mode: nil  -- emacs
+#. * End:                   -- emacs
+#.
+#: ../data/ui/merge-properties-dialog.ui.h:1
 msgid "Format:"
 msgstr "Format:"
 
-#: ../data/glade/merge-properties-dialog.glade.h:4
+#: ../data/ui/merge-properties-dialog.ui.h:2
 msgid "Location:"
 msgstr "Ort:"
 
-#: ../data/glade/merge-properties-dialog.glade.h:5
+#: ../data/ui/merge-properties-dialog.ui.h:3
+msgid "Record selection/preview"
+msgstr "Feldauswahl/Vorschau"
+
+#: ../data/ui/merge-properties-dialog.ui.h:4
 msgid "Select all"
 msgstr "Alles markieren"
 
-#: ../data/glade/merge-properties-dialog.glade.h:6
+#: ../data/ui/merge-properties-dialog.ui.h:5
+msgid "Source"
+msgstr "Quelle"
+
+#: ../data/ui/merge-properties-dialog.ui.h:6
 msgid "Unselect all"
 msgstr "Markierung aufheben"
 
-#: ../data/glade/merge-properties-dialog.glade.h:7
-#: ../data/glade/object-editor.glade.h:39
-msgid "dialog1"
-msgstr "dialog1"
+#: ../data/ui/media-select.ui.h:1
+msgid "Brand:"
+msgstr "Marke:"
+
+#: ../data/ui/media-select.ui.h:2
+msgid "Category:"
+msgstr "Kategorie:"
+
+#: ../data/ui/media-select.ui.h:3
+msgid "Custom"
+msgstr "Benutzerdefiniert"
+
+#: ../data/ui/media-select.ui.h:4 ../data/ui/new-label-dialog.ui.h:6
+#: ../data/ui/template-designer.ui.h:46
+msgid "Page size:"
+msgstr "Seitenformat:"
+
+#: ../data/ui/media-select.ui.h:5
+msgid "Recent"
+msgstr "Zuletzt benutzt"
+
+#: ../data/ui/media-select.ui.h:6
+msgid "Search all"
+msgstr "Alle durchsuchen"
+
+#: ../data/ui/new-label-dialog.ui.h:1
+msgid ""
+"Choose label or card product from hundreds of predefined templates or define "
+"your own."
+msgstr ""
+"Wählen Sie ein Etikett oder eine Karte aus Hunderten von mitgelieferten "
+"Vorlagen oder erstellen Sie Ihre eigene Vorlage."
+
+#: ../data/ui/new-label-dialog.ui.h:2 ../data/ui/template-designer.ui.h:29
+msgid "Description:"
+msgstr "Beschreibung:"
+
+#: ../data/ui/new-label-dialog.ui.h:3
+msgid "Label size:"
+msgstr "Etikettengröße:"
+
+#: ../data/ui/new-label-dialog.ui.h:4
+msgid "Layout:"
+msgstr "Anordnung:"
+
+#: ../data/ui/new-label-dialog.ui.h:5
+msgid "Normal"
+msgstr "Normal"
+
+#: ../data/ui/new-label-dialog.ui.h:7 ../data/ui/template-designer.ui.h:47
+msgid "Part #:"
+msgstr "Nummer:"
 
-#: ../data/glade/new-label-dialog.glade.h:1
-msgid "<b>Label orientation</b>"
-msgstr "<b>Ausrichtung des Etiketts</b>"
+#: ../data/ui/new-label-dialog.ui.h:8
+msgid "Please review and confirm your selection."
+msgstr "Bitte überprüfen und bestätigen Sie Ihre Auswahl."
 
-#: ../data/glade/new-label-dialog.glade.h:2
-msgid "<b>Media type</b>"
-msgstr "<b>Medientyp</b>"
+#: ../data/ui/new-label-dialog.ui.h:9
+msgid "Rotated"
+msgstr "Gedreht"
 
-#: ../data/glade/object-editor.glade.h:2
+#: ../data/ui/new-label-dialog.ui.h:10
+msgid "Select orientation of label content."
+msgstr "Wählen Sie die Ausrichtung des Inhalts des Etiketts."
+
+#: ../data/ui/new-label-dialog.ui.h:11
+msgid "Similar products:"
+msgstr "Ähnliche Produkte:"
+
+#: ../data/ui/new-label-dialog.ui.h:12
+msgid "Vendor:"
+msgstr "Hersteller:"
+
+#: ../data/ui/object-editor.ui.h:1
+msgid " "
+msgstr " "
+
+#: ../data/ui/object-editor.ui.h:3
 #, no-c-format
 msgid "%"
 msgstr "%"
 
-#: ../data/glade/object-editor.glade.h:3
-msgid "00000000000 00000"
-msgstr "00000000000 00000"
-
-#: ../data/glade/object-editor.glade.h:4
-msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
-msgstr "<span weight=\"bold\" size=\"larger\">Xxx-Objekteigenschaften</span>"
-
-#: ../data/glade/object-editor.glade.h:5 ../data/glade/prefs-dialog.glade.h:7
+#: ../data/ui/object-editor.ui.h:4 ../data/ui/prefs-dialog.ui.h:2
 msgid "Alignment:"
 msgstr "Ausrichtung:"
 
-#: ../data/glade/object-editor.glade.h:6
+#: ../data/ui/object-editor.ui.h:5
 msgid "Allow merge to automatically shrink text"
 msgstr "Automatisches Anpassen der Textgröße erlauben"
 
-#: ../data/glade/object-editor.glade.h:7
+#: ../data/ui/object-editor.ui.h:6
 msgid "Angle:"
 msgstr "Winkel:"
 
-#: ../data/glade/object-editor.glade.h:8
+#: ../data/ui/object-editor.ui.h:7
+msgid "Backend:"
+msgstr "Backend:"
+
+#: ../data/ui/object-editor.ui.h:8
 msgid "Checksum"
 msgstr "Prüfsumme"
 
-#: ../data/glade/object-editor.glade.h:9 ../data/glade/prefs-dialog.glade.h:8
+#: ../data/ui/object-editor.ui.h:9 ../data/ui/prefs-dialog.ui.h:3
 msgid "Color:"
 msgstr "Farbe:"
 
-#: ../data/glade/object-editor.glade.h:11
+#: ../data/ui/object-editor.ui.h:11
 msgid "Enable shadow"
 msgstr "Schattierung aktivieren"
 
-#: ../data/glade/object-editor.glade.h:12
+#: ../data/ui/object-editor.ui.h:12
 msgid "Family:"
 msgstr "Familie:"
 
-#: ../data/glade/object-editor.glade.h:13
+#: ../data/ui/object-editor.ui.h:13
 msgid "File:"
 msgstr "Datei:"
 
-#: ../data/glade/object-editor.glade.h:14
+#: ../data/ui/object-editor.ui.h:14 ../data/ui/prefs-dialog.ui.h:5
 msgid "Fill"
 msgstr "Füllen"
 
-#: ../data/glade/object-editor.glade.h:15
-#: ../data/glade/template-designer.glade.h:30
+#: ../data/ui/object-editor.ui.h:15 ../data/ui/template-designer.ui.h:33
 msgid "Height:"
 msgstr "Höhe"
 
-#: ../data/glade/object-editor.glade.h:17
-msgid "Insert merge field"
-msgstr "Datenfeld einfügen"
-
-#: ../data/glade/object-editor.glade.h:18
+#: ../data/ui/object-editor.ui.h:17
 msgid "Key:"
 msgstr "Schlüssel:"
 
-#: ../data/glade/object-editor.glade.h:19
+#: ../data/ui/object-editor.ui.h:18
 msgid "Length:"
 msgstr "Länge:"
 
-#: ../data/glade/object-editor.glade.h:21
-#: ../data/glade/prefs-dialog.glade.h:12
+#: ../data/ui/object-editor.ui.h:20 ../data/ui/prefs-dialog.ui.h:10
 msgid "Line Spacing:"
 msgstr "Zeilenabstand:"
 
-#: ../data/glade/object-editor.glade.h:22
+#: ../data/ui/object-editor.ui.h:21
 msgid "Literal:"
 msgstr "Literale:"
 
-#: ../data/glade/object-editor.glade.h:23
+#: ../data/ui/object-editor.ui.h:22
 msgid "Opacity:"
 msgstr "Transparenz:"
 
-#: ../data/glade/object-editor.glade.h:24
+#: ../data/ui/object-editor.ui.h:23
 msgid "Position"
 msgstr "Position"
 
-#: ../data/glade/object-editor.glade.h:25
+#: ../data/ui/object-editor.ui.h:24
 msgid "Reset image size"
 msgstr "Bildgröße zurücksetzen"
 
-#: ../data/glade/object-editor.glade.h:26
-msgid "Select A File"
-msgstr "Datei auswählen"
-
-#: ../data/glade/object-editor.glade.h:27
+#: ../data/ui/object-editor.ui.h:25
 msgid "Shadow"
 msgstr "Schattierung"
 
-#: ../data/glade/object-editor.glade.h:28
+#: ../data/ui/object-editor.ui.h:26
 msgid "Size"
 msgstr "Breite"
 
-#: ../data/glade/object-editor.glade.h:29
+#: ../data/ui/object-editor.ui.h:27
 msgid "Size:"
 msgstr "Größe:"
 
-#: ../data/glade/object-editor.glade.h:30
+#: ../data/ui/object-editor.ui.h:28
 msgid "Style"
 msgstr "Stil"
 
-#: ../data/glade/object-editor.glade.h:31
+#: ../data/ui/object-editor.ui.h:29
 msgid "Style:"
 msgstr "Stil:"
 
-#: ../data/glade/object-editor.glade.h:33
-#: ../data/glade/prefs-dialog.glade.h:20
-#: ../data/glade/template-designer.glade.h:61
+#: ../data/ui/object-editor.ui.h:31 ../data/ui/prefs-dialog.ui.h:20
+#: ../data/ui/template-designer.ui.h:65
 msgid "Width:"
 msgstr "Breite:"
 
-#: ../data/glade/object-editor.glade.h:34
+#: ../data/ui/object-editor.ui.h:32
 msgid "X Offset:"
 msgstr "X-Versatz:"
 
-#: ../data/glade/object-editor.glade.h:35
+#: ../data/ui/object-editor.ui.h:33
 msgid "X:"
 msgstr "X:"
 
-#: ../data/glade/object-editor.glade.h:36
+#: ../data/ui/object-editor.ui.h:34
 msgid "Y Offset:"
 msgstr "Y-Versatz:"
 
-#: ../data/glade/object-editor.glade.h:37
+#: ../data/ui/object-editor.ui.h:35
 msgid "Y:"
 msgstr "Y:"
 
-#: ../data/glade/object-editor.glade.h:38
+#: ../data/ui/object-editor.ui.h:36
 msgid "degrees"
 msgstr "Grad"
 
-#: ../data/glade/object-editor.glade.h:40
+#: ../data/ui/object-editor.ui.h:37
+msgid "dialog1"
+msgstr "dialog1"
+
+#: ../data/ui/object-editor.ui.h:38
 msgid "digits:"
 msgstr "Zeichen:"
 
-#: ../data/glade/object-editor.glade.h:41
+#: ../data/ui/object-editor.ui.h:39
 msgid "format:"
 msgstr "Format:"
 
-#: ../data/glade/prefs-dialog.glade.h:1
+#: ../data/ui/object-editor.ui.h:41
+msgid "key:"
+msgstr "Schlüssel:"
+
+#: ../data/ui/prefs-dialog.ui.h:1
 msgid "   "
 msgstr "   "
 
-#: ../data/glade/prefs-dialog.glade.h:2
-msgid "<span weight=\"bold\">Default page size</span>"
-msgstr "<span weight=\"bold\">Vorgegebene Seitengröße</span>"
+#: ../data/ui/prefs-dialog.ui.h:4
+msgid "Default page size"
+msgstr "Vorgegebene Seitengröße"
 
-#: ../data/glade/prefs-dialog.glade.h:3
-msgid "<span weight=\"bold\">Fill</span>"
-msgstr "<span weight=\"bold\">Füllung</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:4
-msgid "<span weight=\"bold\">Line</span>"
-msgstr "<span weight=\"bold\">Linie</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:5
-msgid "<span weight=\"bold\">Text</span>"
-msgstr "<span weight=\"bold\">Text</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:6
-msgid "<span weight=\"bold\">Units</span>"
-msgstr "<span weight=\"bold\">Einheiten</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:9
+#: ../data/ui/prefs-dialog.ui.h:6
 msgid "Font:"
 msgstr "Schrift:"
 
-#: ../data/glade/prefs-dialog.glade.h:10
+#: ../data/ui/prefs-dialog.ui.h:7
 msgid "ISO A4"
 msgstr "A4"
 
-#: ../data/glade/prefs-dialog.glade.h:11
+#: ../data/ui/prefs-dialog.ui.h:8
 msgid "Inches"
 msgstr "Zoll"
 
-#: ../data/glade/prefs-dialog.glade.h:13
+#: ../data/ui/prefs-dialog.ui.h:11
 msgid "Locale"
 msgstr "Spracheinstellung"
 
-#: ../data/glade/prefs-dialog.glade.h:14
+#: ../data/ui/prefs-dialog.ui.h:12
 msgid "Millimeters"
 msgstr "Millimeter"
 
-#: ../data/glade/prefs-dialog.glade.h:15
+#: ../data/ui/prefs-dialog.ui.h:13
 msgid "Object defaults"
 msgstr "Objekt-Vorgaben"
 
-#: ../data/glade/prefs-dialog.glade.h:16
+#: ../data/ui/prefs-dialog.ui.h:14
 msgid "Points"
 msgstr "Punkte"
 
-#: ../data/glade/prefs-dialog.glade.h:17
+#: ../data/ui/prefs-dialog.ui.h:15
 msgid "Select default properties for new objects."
 msgstr "Wählen Sie die vorgegebenen Eigenschaften für neue Objekte."
 
-#: ../data/glade/prefs-dialog.glade.h:18
+#: ../data/ui/prefs-dialog.ui.h:16
 msgid "Select locale specific behavior."
 msgstr "Wählen Sie hier Einstellungen gemäß Ihrer Sprache/Ihres Landes."
 
-#. Most popular (at top of list)
-#: ../data/glade/prefs-dialog.glade.h:19
-#: ../data/templates/paper-sizes.xml.h:29
+#: ../data/ui/prefs-dialog.ui.h:18 ../templates/paper-sizes.xml.h:35
 msgid "US Letter"
 msgstr "US-Letter"
 
-#: ../data/glade/print-custom-widget.glade.h:1
-msgid "<b>Options</b>"
-msgstr "<b>Optionen</b>"
-
-#: ../data/glade/print-custom-widget.glade.h:2
-msgid "<b>Print control (Merge)</b>"
-msgstr "<b>Drucksteuerung (Mischen)</b>"
+#: ../data/ui/prefs-dialog.ui.h:19
+msgid "Units"
+msgstr "Einheiten"
 
-#: ../data/glade/print-custom-widget.glade.h:3
-msgid "<b>Print control (Simple)</b>"
-msgstr "<b>Drucksteuerung (Einfach)</b>"
-
-#: ../data/glade/property-bar.glade.h:1
+#: ../data/ui/property-bar.ui.h:1
 msgid "Bold"
 msgstr "Fett"
 
-#: ../data/glade/property-bar.glade.h:2
+#: ../data/ui/property-bar.ui.h:2
 msgid "Center align"
 msgstr "Zentrieren"
 
-#: ../data/glade/property-bar.glade.h:4
-msgid "Font family"
-msgstr "Schriftfamilie"
-
-#: ../data/glade/property-bar.glade.h:5
-msgid "Font size"
-msgstr "Schriftgröße"
-
-#: ../data/glade/property-bar.glade.h:6
-msgid "Italic"
-msgstr "Kursiv"
-
-#: ../data/glade/property-bar.glade.h:7
+#: ../data/ui/property-bar.ui.h:7
 msgid "Left align"
 msgstr "Linksbündig"
 
-#: ../data/glade/property-bar.glade.h:9
-msgid "Line width"
-msgstr "Linienbreite"
-
-#: ../data/glade/property-bar.glade.h:10
+#: ../data/ui/property-bar.ui.h:10
 msgid "Right align"
 msgstr "Rechtsbündig"
 
-#: ../data/glade/property-bar.glade.h:11
-msgid "Text Color"
-msgstr "Textfarbe"
-
-#: ../data/glade/property-bar.glade.h:12
-msgid "Text color"
-msgstr "Textfarbe"
-
-#: ../data/glade/template-designer.glade.h:1
+#: ../data/ui/template-designer.ui.h:1
 msgid "(e.g., \"Mailing Labels,\" \"Business Cards,\" ...)"
 msgstr "(z.B. »Adressaufkleber«, »Visitenkarten« …)"
 
-#: ../data/glade/template-designer.glade.h:2
+#: ../data/ui/template-designer.ui.h:2
 msgid "(e.g., 8163A)"
 msgstr "(z.B., 8163A)"
 
-#: ../data/glade/template-designer.glade.h:3
+#: ../data/ui/template-designer.ui.h:3
 msgid "(e.g., Avery, Acme, ...)"
 msgstr "(z.B., Avery, Acme, ...)"
 
-#: ../data/glade/template-designer.glade.h:4
+#: ../data/ui/template-designer.ui.h:4
 msgid "1. Outer radius:"
 msgstr "1. Äußerer Radius:"
 
-#: ../data/glade/template-designer.glade.h:5
+#: ../data/ui/template-designer.ui.h:5
 msgid "1. Radius:"
 msgstr "1. Radius:"
 
-#: ../data/glade/template-designer.glade.h:6
+#: ../data/ui/template-designer.ui.h:6
 msgid "1. Width:"
 msgstr "1. Breite:"
 
-#: ../data/glade/template-designer.glade.h:7
+#: ../data/ui/template-designer.ui.h:7
 msgid "2. Height:"
 msgstr "2. Höhe:"
 
-#: ../data/glade/template-designer.glade.h:8
+#: ../data/ui/template-designer.ui.h:8
 msgid "2. Inner radius:"
 msgstr "2. Innerer Radius:"
 
-#: ../data/glade/template-designer.glade.h:9
+#: ../data/ui/template-designer.ui.h:9
 msgid "2. Waste (overprint allowed):"
 msgstr "2. Überstand (Bedrucken erlaubt):"
 
-#: ../data/glade/template-designer.glade.h:10
+#: ../data/ui/template-designer.ui.h:10
 msgid "3. Clipping width:"
 msgstr "3. Innere Breite:"
 
-#: ../data/glade/template-designer.glade.h:11
+#: ../data/ui/template-designer.ui.h:11
 msgid "3. Margin"
 msgstr "3. Ränder"
 
-#: ../data/glade/template-designer.glade.h:12
+#: ../data/ui/template-designer.ui.h:12
 msgid "3. Round (radius of corner):"
 msgstr "3. Rundung (Radius der Ecken):"
 
-#: ../data/glade/template-designer.glade.h:13
+#: ../data/ui/template-designer.ui.h:13
+msgid "3. Waste (overprint allowed):"
+msgstr "2. Überstand (Bedrucken erlaubt):"
+
+#: ../data/ui/template-designer.ui.h:14
 msgid "4. Clipping height:"
 msgstr "4. Innere Höhe:"
 
-#: ../data/glade/template-designer.glade.h:14
+#: ../data/ui/template-designer.ui.h:15
 msgid "4. Horiz. waste (overprint allowed):"
 msgstr "4. Horiz. Überstand (Bedrucken erlaubt):"
 
-#: ../data/glade/template-designer.glade.h:15
+#: ../data/ui/template-designer.ui.h:16
+msgid "4. Margin"
+msgstr "3. Ränder"
+
+#: ../data/ui/template-designer.ui.h:17
 msgid "5. Vert. waste (overprint allowed):"
 msgstr "3. Vert. Überstand (Bedrucken erlaubt):"
 
-#: ../data/glade/template-designer.glade.h:16
+#: ../data/ui/template-designer.ui.h:18
 msgid "5. Waste (overprint allowed):"
 msgstr "5. Überstand (Bedrucken erlaubt):"
 
-#: ../data/glade/template-designer.glade.h:17
+#: ../data/ui/template-designer.ui.h:19
 msgid "6. Margin"
 msgstr "6. Rand"
 
-#: ../data/glade/template-designer.glade.h:18
+#: ../data/ui/template-designer.ui.h:20
 msgid "Brand/Manufacturer:"
 msgstr "Marke/Hersteller:"
 
-#: ../data/glade/template-designer.glade.h:19
+#: ../data/ui/template-designer.ui.h:21
 msgid "CD/DVD (including credit card CDs)"
 msgstr "CD/DVD (einschließlich Kreditkarten-CDs)"
 
-#: ../data/glade/template-designer.glade.h:20
+#: ../data/ui/template-designer.ui.h:22
 msgid ""
 "Congratulations!\n"
 "\n"
@@ -1933,23 +2196,23 @@ msgstr ""
 "Vorlage zu verwerfen, oder auf »Zurück«,\n"
 "um die Vorlage erneut zu bearbeiten."
 
-#: ../data/glade/template-designer.glade.h:27
-msgid "Description:"
-msgstr "Beschreibung:"
-
-#: ../data/glade/template-designer.glade.h:28
+#: ../data/ui/template-designer.ui.h:30
 msgid "Distance from left edge (x0):"
 msgstr "Abstand vom linken Rand (x0):"
 
-#: ../data/glade/template-designer.glade.h:29
+#: ../data/ui/template-designer.ui.h:31
 msgid "Distance from top edge (y0):"
 msgstr "Abstand vom oberen Rand (x0):"
 
-#: ../data/glade/template-designer.glade.h:31
+#: ../data/ui/template-designer.ui.h:32
+msgid "Elliptical"
+msgstr "Elliptisch"
+
+#: ../data/ui/template-designer.ui.h:34
 msgid "Horizontal pitch (dx):"
 msgstr "Horizontaler Abstand (dx):"
 
-#: ../data/glade/template-designer.glade.h:32
+#: ../data/ui/template-designer.ui.h:35
 msgid ""
 "How many layouts will your template contain? \n"
 "\n"
@@ -1964,36 +2227,35 @@ msgstr ""
 "angeordnet sind. Die meisten Vorlagen verwenden nur ein Layout, wie im\n"
 "ersten Beispiel. Das zweite Beispiel zeigt die Verwendung zweier Layouts."
 
-#: ../data/glade/template-designer.glade.h:37
+#: ../data/ui/template-designer.ui.h:40
 msgid "Layout #1"
 msgstr "Layout #1"
 
-#: ../data/glade/template-designer.glade.h:38
+#: ../data/ui/template-designer.ui.h:41
 msgid "Layout #2"
 msgstr "Layout #2"
 
-#: ../data/glade/template-designer.glade.h:39
+#: ../data/ui/template-designer.ui.h:42
+msgid ""
+"Note: if more than 2 layouts are required, the template must be edited "
+"manually."
+msgstr ""
+"Hinweis: Falls mehr als zwei Layouts erforderlich sein sollten, muss die "
+"Vorlage manuell nachbearbeitet werden."
+
+#: ../data/ui/template-designer.ui.h:43
 msgid "Number across (nx):"
 msgstr "Anzahl horizontal (nx):"
 
-#: ../data/glade/template-designer.glade.h:40
+#: ../data/ui/template-designer.ui.h:44
 msgid "Number down (ny):"
 msgstr "Anzahl vertikal (ny):"
 
-#: ../data/glade/template-designer.glade.h:41
+#: ../data/ui/template-designer.ui.h:45
 msgid "Number of layouts:"
 msgstr "Anzahl der Layouts:"
 
-#: ../data/glade/template-designer.glade.h:42
-#: ../data/glade/wdgt-media-select.glade.h:3
-msgid "Page size:"
-msgstr "Seitenformat:"
-
-#: ../data/glade/template-designer.glade.h:43
-msgid "Part #:"
-msgstr "Nummer:"
-
-#: ../data/glade/template-designer.glade.h:44
+#: ../data/ui/template-designer.ui.h:48
 msgid ""
 "Please enter the following identifying information about the template "
 "stationery."
@@ -2001,19 +2263,18 @@ msgstr ""
 "Bitte geben Sie die folgenden Identifizierungsinformationen über die Vorlage "
 "an."
 
-#: ../data/glade/template-designer.glade.h:45
+#: ../data/ui/template-designer.ui.h:49
 msgid "Please enter the following layout information."
 msgstr "Bitte geben Sie die folgenden Layout-Informationen ein."
 
-#: ../data/glade/template-designer.glade.h:46
+#: ../data/ui/template-designer.ui.h:50
 msgid ""
-"Please enter the following size parameters of a single label in your "
-"template."
+"Please enter the following size parameters of a single label in your template."
 msgstr ""
 "Bitte geben Sie die folgenden Größenwerte des einzelnen Etiketts in Ihrer "
 "Vorlage an."
 
-#: ../data/glade/template-designer.glade.h:47
+#: ../data/ui/template-designer.ui.h:51
 msgid ""
 "Please enter the following size parameters of a single label or card in your "
 "template."
@@ -2021,27 +2282,27 @@ msgstr ""
 "Bitte geben Sie die folgenden Größenwerte des einzelnen Etiketts oder der "
 "einzelnen Karte in Ihrer Vorlage an."
 
-#: ../data/glade/template-designer.glade.h:48
+#: ../data/ui/template-designer.ui.h:52
 msgid "Please select the basic shape of the labels or cards."
 msgstr "Bitte wählen Sie die Grundform der Etiketten oder Karten aus."
 
-#: ../data/glade/template-designer.glade.h:49
+#: ../data/ui/template-designer.ui.h:53
 msgid "Please select the page size of the template stationery."
 msgstr "Bitte wählen Sie das Papierformat der Vorlage aus."
 
-#: ../data/glade/template-designer.glade.h:50
+#: ../data/ui/template-designer.ui.h:54
 msgid "Print test sheet"
 msgstr "Textseite drucken"
 
-#: ../data/glade/template-designer.glade.h:51
+#: ../data/ui/template-designer.ui.h:55
 msgid "Rectangular or square (can have rounded corners)"
 msgstr "Rechteckig oder quadratisch (auch mit abgerundeten Ecken)"
 
-#: ../data/glade/template-designer.glade.h:52
+#: ../data/ui/template-designer.ui.h:56
 msgid "Round"
 msgstr "Rund"
 
-#: ../data/glade/template-designer.glade.h:53
+#: ../data/ui/template-designer.ui.h:57
 msgid ""
 "Templates needing\n"
 "two layouts."
@@ -2049,7 +2310,7 @@ msgstr ""
 "Vorlagen benötigen\n"
 "zwei Layouts."
 
-#: ../data/glade/template-designer.glade.h:55
+#: ../data/ui/template-designer.ui.h:59
 msgid ""
 "Templates needing only\n"
 "one layout."
@@ -2057,11 +2318,11 @@ msgstr ""
 "Vorlagen benötigen nur\n"
 "ein Layout."
 
-#: ../data/glade/template-designer.glade.h:57
+#: ../data/ui/template-designer.ui.h:61
 msgid "Vertical pitch (dy):"
 msgstr "Vertikaler Abstand (dy):"
 
-#: ../data/glade/template-designer.glade.h:58
+#: ../data/ui/template-designer.ui.h:62
 msgid ""
 "Welcome to the gLabels Template Designer.\n"
 "\n"
@@ -2072,390 +2333,679 @@ msgstr ""
 "Dieser Dialog wird Sie beim Erstellen einer benutzerdefinierten\n"
 "gLabels-Vorlage unterstützen."
 
-#: ../data/glade/template-designer.glade.h:62
-msgid "cd_size_page"
-msgstr "cd_size_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:1
+msgid "Collate"
+msgstr "Zuordnen"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:2
+msgid "Copies"
+msgstr "Kopien"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:3
+msgid "Copies:"
+msgstr "Kopien:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:5
+msgid "Merge Control"
+msgstr "Mischsteuerung"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:6
+msgid "Options"
+msgstr "Optionen"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:7
+msgid "Sheets:"
+msgstr "Seiten:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:8
+msgid "Start on label"
+msgstr "Start bei Etikett"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:9
+msgid "from:"
+msgstr "von:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:10
+msgid "on 1st sheet"
+msgstr "auf erster Seite"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:14
+msgid "to:"
+msgstr "bis:"
 
-#: ../data/glade/template-designer.glade.h:63
-msgid "finish_page"
-msgstr "finish_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:1
+msgid "Controls maximum number of recent files tracked."
+msgstr "Legt die maximale Anzahl der zuletzt geöffneten Dateien fest."
 
-#: ../data/glade/template-designer.glade.h:65
-msgid "layout_page"
-msgstr "layout_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:2
+msgid "Controls visibility of drawing toolbar."
+msgstr "Legt die Sichtbarkeit der Zeichenwerkzeugleiste fest."
 
-#: ../data/glade/template-designer.glade.h:66
-msgid "name_page"
-msgstr "name_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:3
+msgid "Controls visibility of grid."
+msgstr "Legt die Sichtbarkeit des Zeichengitters fest."
 
-#: ../data/glade/template-designer.glade.h:67
-msgid "nlayouts_page"
-msgstr "nlayouts_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:4
+msgid "Controls visibility of main toolbar."
+msgstr "Legt die Sichtbarkeit der Haupt-Werkzeugleiste fest."
 
-#: ../data/glade/template-designer.glade.h:68
-msgid "pg_size_page"
-msgstr "pg_size_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:5
+msgid "Controls visibility of markup lines."
+msgstr "Legt die Sichtbarkeit von Markierungslinien fest."
 
-#: ../data/glade/template-designer.glade.h:69
-msgid "rect_size_page"
-msgstr "rect_size_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:6
+msgid "Controls visibility of property toolbar."
+msgstr "Legt die Sichtbarkeit der Eigenschaften-Werkzeugleiste fest."
 
-#: ../data/glade/template-designer.glade.h:70
-msgid "round_size_page"
-msgstr "round_size_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:7
+msgid "Default fill color."
+msgstr "Vorgegebene Füllfarbe."
 
-#: ../data/glade/template-designer.glade.h:71
-msgid "shape_page"
-msgstr "shape_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:8
+msgid "Default font family."
+msgstr "Vorgegebene Schriftfamilie."
 
-#: ../data/glade/template-designer.glade.h:72
-msgid "start_page"
-msgstr "start_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:9
+msgid "Default font italic flag."
+msgstr "Vorgegebener Kursiv-Status."
 
-#: ../data/glade/wdgt-media-select.glade.h:1
-msgid "Brand:"
-msgstr "Marke:"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:10
+msgid "Default font size."
+msgstr "Vorgegebene Schriftgröße."
 
-#: ../data/glade/wdgt-media-select.glade.h:2
-msgid "Category:"
-msgstr "Kategorie:"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:11
+msgid "Default font weight."
+msgstr "Vorgegebene Schriftstärke."
 
-#: ../data/glade/wdgt-media-select.glade.h:4
-msgid "Recent templates"
-msgstr "Zuletzt benutzte Vorlagen"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:12
+msgid "Default line color."
+msgstr "Vorgegebene Linienfarbe."
 
-#: ../data/glade/wdgt-media-select.glade.h:5
-msgid "Search all templates"
-msgstr "Alle Vorlagen durchsuchen"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:13
+msgid "Default line width."
+msgstr "Vorgegebene Linienbreite."
 
-#: ../data/glade/wdgt-rotate-label.glade.h:1
-msgid "Rotate"
-msgstr "Drehen"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:14
+msgid "Default page size."
+msgstr "Vorgegebene Seitengröße."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:15
+msgid "Default text alignment."
+msgstr "Vorgegebene Textausrichtung."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:16
+msgid "Default text color."
+msgstr "Vorgegebene Textfarbe."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:17
+msgid "Default text line spacing."
+msgstr "Vorgegebener Zeilenabstand des Textes."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:18
+msgid "Maximum recent files."
+msgstr "Maximale Anzahl zuletzt geöffneter Dateien."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:19
+msgid "Recent colors."
+msgstr "Zuletzt benutzte Farben."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:20
+msgid "Recent fonts."
+msgstr "Zuletzt benutzte Schriften."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:21
+msgid "Recent templates."
+msgstr "Zuletzt benutzte Vorlagen."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:22
+msgid "Recently created custom colors."
+msgstr "Zuletzt erstellte benutzerdefinierte Farben."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:23
+msgid "Recently used font families."
+msgstr "Zuletzt benutzte Schriftfamilien."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:24
+msgid "Recently used templates."
+msgstr "Zuletzt benutzte Vorlagen."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:25
+msgid "Show/hide drawing toolbar."
+msgstr "Zeichenwerkzeugleiste anzeigen oder verbergen."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:26
+msgid "Show/hide grid."
+msgstr "Zeichengitter anzeigen oder verbergen."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:27
+msgid "Show/hide main toolbar."
+msgstr "Haupt-Werkzeugleiste anzeigen oder verbergen."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:28
+msgid "Show/hide markup."
+msgstr "Markierungen anzeigen oder verbergen."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:29
+msgid "Show/hide property toolbar."
+msgstr "Eigenschaften-Werkzeugleiste anzeigen oder verbergen."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:30
+msgid "The default color of text for new text objects (0xRRGGBBAA)."
+msgstr "Die vorgegebene Textfarbe für neue Textobjekte (0xRRGGBBAA)."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:31
+msgid "The default fill color new objects (0xRRGGBBAA)."
+msgstr "Die vorgegebene Füllfarbe für neue Objekte (0xRRGGBBAA)."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:32
+msgid "The default font family for new text objects."
+msgstr "Die vorgegebene Schriftfamilie für neue Textobjekte."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:33
+msgid "The default font italic state for new text objects."
+msgstr "Der vorgegebene Kursiv-Status für neue Textobjekte."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:34
+msgid "The default font size for new text objects."
+msgstr "Die vorgegebene Schriftgröße für neue Textobjekte."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:35
+msgid "The default font weight for new text objects."
+msgstr "Die vorgegebene Schriftstärke für neue Textobjekte."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:36
+msgid "The default line color new objects (0xRRGGBBAA)."
+msgstr "Die vorgegebene Linienfarbe für neue Objekte (0xRRGGBBAA)."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:37
+msgid "The default line spacing for new text objects."
+msgstr "Der vorgegebene Zeilenabstand für neue Textobjekte."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:38
+msgid "The default line width for new objects."
+msgstr "Die vorgegebene Linienbreite für neue Objekte."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:39
+msgid "The default text alignment for new text objects."
+msgstr "Die vorgegebene Textausrichtung für neue Textobjekte."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:40
+msgid "The default unit of measurement."
+msgstr "Die vorgegebene Maßeinheit."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:41
+msgid "The preferred page size when searching templates."
+msgstr "Die bevorzugte Seitengröße bei der Vorlagensuche."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:42
+msgid "Units."
+msgstr "Einheiten."
+
+#: ../data/desktop/glabels-3.0.desktop.in.h:1
+msgid "Create labels, business cards and media covers"
+msgstr "Erstellen von Etiketten, Visitenkarten und Medien-Covern"
+
+#: ../data/desktop/glabels-3.0.desktop.in.h:2
+msgid "gLabels Label Designer 3"
+msgstr "gLabels Etiketten-Designer 3"
+
+#: ../data/mime/glabels-3.0.xml.in.h:1
+msgid "gLabels Project File"
+msgstr "gLabels-Projektdatei"
+
+#. Envelopes
+#: ../templates/paper-sizes.xml.h:2
+msgid "#10 Envelope"
+msgstr "#10-Briefumschlag"
 
 #. Other ISO A series sizes
-#: ../data/templates/paper-sizes.xml.h:2
+#: ../templates/paper-sizes.xml.h:4
 msgid "A0"
 msgstr "A0"
 
-#: ../data/templates/paper-sizes.xml.h:3
+#: ../templates/paper-sizes.xml.h:5
 msgid "A1"
 msgstr "A1"
 
-#: ../data/templates/paper-sizes.xml.h:4
+#: ../templates/paper-sizes.xml.h:6
 msgid "A10"
 msgstr "A10"
 
-#: ../data/templates/paper-sizes.xml.h:5
+#: ../templates/paper-sizes.xml.h:7
 msgid "A2"
 msgstr "A2"
 
-#: ../data/templates/paper-sizes.xml.h:6
+#: ../templates/paper-sizes.xml.h:8
 msgid "A3"
 msgstr "A3"
 
-#: ../data/templates/paper-sizes.xml.h:7
+#. Most popular (at top of list)
+#: ../templates/paper-sizes.xml.h:10
 msgid "A4"
 msgstr "A4"
 
-#: ../data/templates/paper-sizes.xml.h:8
+#: ../templates/paper-sizes.xml.h:11
 msgid "A5"
 msgstr "A5"
 
-#: ../data/templates/paper-sizes.xml.h:9
+#: ../templates/paper-sizes.xml.h:12
 msgid "A6"
 msgstr "A6"
 
-#: ../data/templates/paper-sizes.xml.h:10
+#: ../templates/paper-sizes.xml.h:13
 msgid "A7"
 msgstr "A7"
 
-#: ../data/templates/paper-sizes.xml.h:11
+#: ../templates/paper-sizes.xml.h:14
 msgid "A8"
 msgstr "A8"
 
-#: ../data/templates/paper-sizes.xml.h:12
+#: ../templates/paper-sizes.xml.h:15
 msgid "A9"
 msgstr "A9"
 
 #. ISO B series sizes
-#: ../data/templates/paper-sizes.xml.h:14
+#: ../templates/paper-sizes.xml.h:17
 msgid "B0"
 msgstr "B0"
 
-#: ../data/templates/paper-sizes.xml.h:15
+#: ../templates/paper-sizes.xml.h:18
 msgid "B1"
 msgstr "B1"
 
-#: ../data/templates/paper-sizes.xml.h:16
+#: ../templates/paper-sizes.xml.h:19
 msgid "B10"
 msgstr "B10"
 
-#: ../data/templates/paper-sizes.xml.h:17
+#: ../templates/paper-sizes.xml.h:20
 msgid "B2"
 msgstr "B2"
 
-#: ../data/templates/paper-sizes.xml.h:18
+#: ../templates/paper-sizes.xml.h:21
 msgid "B3"
 msgstr "B3"
 
-#: ../data/templates/paper-sizes.xml.h:19
+#: ../templates/paper-sizes.xml.h:22
 msgid "B4"
 msgstr "B4"
 
-#: ../data/templates/paper-sizes.xml.h:20
+#: ../templates/paper-sizes.xml.h:23
 msgid "B5"
 msgstr "B5"
 
-#: ../data/templates/paper-sizes.xml.h:21
+#: ../templates/paper-sizes.xml.h:24
 msgid "B6"
 msgstr "B6"
 
-#: ../data/templates/paper-sizes.xml.h:22
+#: ../templates/paper-sizes.xml.h:25
 msgid "B7"
 msgstr "B7"
 
-#: ../data/templates/paper-sizes.xml.h:23
+#: ../templates/paper-sizes.xml.h:26
 msgid "B8"
 msgstr "B8"
 
-#: ../data/templates/paper-sizes.xml.h:24
+#: ../templates/paper-sizes.xml.h:27
 msgid "B9"
 msgstr "B9"
 
-#: ../data/templates/paper-sizes.xml.h:25
+#: ../templates/paper-sizes.xml.h:28
+msgid "C5"
+msgstr "C5"
+
+#: ../templates/paper-sizes.xml.h:29
+msgid "C6"
+msgstr "C6"
+
+#: ../templates/paper-sizes.xml.h:30
+msgid "DL"
+msgstr "DIN lang"
+
+#: ../templates/paper-sizes.xml.h:31
+msgid "Monarch Envelope"
+msgstr "Monarch-Briefumschlag"
+
+#: ../templates/paper-sizes.xml.h:32
 msgid "US Executive"
 msgstr "US Executive"
 
 #. Other US paper sizes
-#: ../data/templates/paper-sizes.xml.h:27
+#: ../templates/paper-sizes.xml.h:34
 msgid "US Legal"
 msgstr "US Legal"
 
-#: ../data/templates/categories.xml.h:1
+#: ../templates/categories.xml.h:1
 msgid "Any card"
 msgstr "Beliebige Karte"
 
-#: ../data/templates/categories.xml.h:2
+#: ../templates/categories.xml.h:2
 msgid "Any label"
 msgstr "Alle Etiketten"
 
-#: ../data/templates/categories.xml.h:3
+#. ===================================================================
+#. ====================================================================
+#. ===================================================================
+#: ../templates/categories.xml.h:3 ../templates/dataline-iso-templates.xml.h:4
+#: ../templates/geha-iso-templates.xml.h:8
+#: ../templates/hama-iso-templates.xml.h:6
+#: ../templates/pearl-iso-templates.xml.h:8
 msgid "Business cards"
 msgstr "Visitenkarten"
 
-#: ../data/templates/categories.xml.h:4
+#: ../templates/categories.xml.h:4
 msgid "CD/DVD or other media"
 msgstr "CD/DVD oder andere Medien"
 
-#: ../data/templates/categories.xml.h:5
+#. ===================================================================
+#: ../templates/categories.xml.h:5 ../templates/pearl-iso-templates.xml.h:28
+msgid "Elliptical labels"
+msgstr "Elliptische Etiketten"
+
+#: ../templates/categories.xml.h:6
+msgid "Foldable cards"
+msgstr "Faltbare Karten"
+
+#: ../templates/categories.xml.h:7
 msgid "Mailing/shipping products"
 msgstr "Post- und Versandprodukte"
 
-#: ../data/templates/categories.xml.h:6
+#: ../templates/categories.xml.h:8
+msgid "Photo products"
+msgstr "Fotoprodukte"
+
+#. ===================================================================
+#. ====================================================================
+#. ===================================================================
+#. ********************************************************************
+#: ../templates/categories.xml.h:9 ../templates/ascom-iso-templates.xml.h:6
+#: ../templates/hama-iso-templates.xml.h:29
+#: ../templates/herma-iso-templates.xml.h:18
+#: ../templates/jac-iso-templates.xml.h:8
 msgid "Rectangular labels"
 msgstr "Rechteckige Etiketten"
 
-#: ../data/templates/categories.xml.h:7
+#. ====================================================================
+#. ===================================================================
+#: ../templates/categories.xml.h:10 ../templates/hama-iso-templates.xml.h:31
+#: ../templates/pearl-iso-templates.xml.h:54
 msgid "Round labels"
 msgstr "Runde Etiketten"
 
-#: ../data/templates/categories.xml.h:8
+#. ====================================================================
+#: ../templates/categories.xml.h:11 ../templates/hama-iso-templates.xml.h:33
 msgid "Square labels"
 msgstr "Quadratische Etiketten"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:2
-#: ../data/templates/avery-us-templates.xml.h:2
-#: ../data/templates/dymo-other-templates.xml.h:4
-#: ../data/templates/misc-iso-templates.xml.h:2
-#: ../data/templates/zweckform-iso-templates.xml.h:2
-msgid "Address Labels"
-msgstr "Adressaufkleber"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:4
-msgid "Address labels"
-msgstr "Adressaufkleber"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:6
-msgid "Allround labels"
-msgstr "Universal-Etiketten"
-
-#. ============================================================
-#. ===================================================================
-#. ********************************************************************
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:8
-#: ../data/templates/avery-us-templates.xml.h:4
-#: ../data/templates/misc-iso-templates.xml.h:12
-#: ../data/templates/misc-us-templates.xml.h:4
-#: ../data/templates/zweckform-iso-templates.xml.h:6
-msgid "Business Cards"
-msgstr "Visitenkarten"
-
-#. ===============================================================
-#: ../data/templates/avery-iso-templates.xml.h:10
-msgid "CD Booklet"
-msgstr "CD-Einlegeheft"
-
 #. ===============================================================
-#: ../data/templates/avery-iso-templates.xml.h:12
+#: ../templates/ascom-iso-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:10
 msgid "CD Inlet"
 msgstr "CD-Einleger"
 
-#. ===============================================================
+#. TODO: Is this the real part #?
+#. ============================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:14
-#: ../data/templates/avery-us-templates.xml.h:6
-#: ../data/templates/misc-iso-templates.xml.h:16
-#: ../data/templates/misc-us-templates.xml.h:8
-#: ../data/templates/zweckform-iso-templates.xml.h:8
-msgid "CD/DVD Labels"
-msgstr "CD/DVD-Etiketten"
-
+#. ====================================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:16
-#: ../data/templates/avery-us-templates.xml.h:12
-msgid "Diskette Labels"
-msgstr "Diskettenaufkleber"
-
+#. TODO: What is the actual part #?
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:18
-msgid "Diskette labels"
-msgstr "Diskettenaufkleber"
+#: ../templates/ascom-iso-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:30
+#: ../templates/databecker-iso-templates.xml.h:10
+#: ../templates/hama-iso-templates.xml.h:27
+#: ../templates/herma-iso-templates.xml.h:16
+#: ../templates/misc-iso-templates.xml.h:30
+#: ../templates/zweckform-iso-templates.xml.h:28
+msgid "Rectangular Labels"
+msgstr "Rechteckige Etiketten"
 
-#. ===============================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:20
-#: ../data/templates/misc-iso-templates.xml.h:36
-#: ../data/templates/misc-us-templates.xml.h:20
-#: ../data/templates/zweckform-iso-templates.xml.h:16
-msgid "Mailing Labels"
-msgstr "Adressaufkleber"
+#: ../templates/ascom-iso-templates.xml.h:8
+#: ../templates/avery-us-templates.xml.h:46
+#: ../templates/geha-iso-templates.xml.h:29
+#: ../templates/meritline-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:12
+msgid "Video Tape Spine Labels"
+msgstr "Etiketten für Videokassetten (Schmalseite)"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:22
-msgid "Mailing labels"
+#. ********************************************************************
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:2
+#: ../templates/databecker-iso-templates.xml.h:2
+#: ../templates/dymo-other-templates.xml.h:4
+#: ../templates/geha-iso-templates.xml.h:2
+#: ../templates/maco-us-templates.xml.h:2
+#: ../templates/meritline-us-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:1
+#: ../templates/zweckform-iso-templates.xml.h:2
+msgid "Address Labels"
 msgstr "Adressaufkleber"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:24
-msgid "Mini Address Labels"
-msgstr "Mini-Adressaufkleber"
-
+#. ============================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:26
-msgid "Mini Labels"
-msgstr "Mini-Etiketten"
+#. TODO: Is this the actual part #?
+#. ============================================================
+#: ../templates/avery-us-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:8
+#: ../templates/databecker-iso-templates.xml.h:4
+#: ../templates/dataline-iso-templates.xml.h:2
+#: ../templates/decadry-iso-templates.xml.h:2
+#: ../templates/misc-us-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:6
+#: ../templates/zweckform-iso-templates.xml.h:6
+msgid "Business Cards"
+msgstr "Visitenkarten"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:28
-msgid "Shipping labels"
-msgstr "Versandaufkleber"
-
+#. ===============================================================
 #. ===================================================================
-#: ../data/templates/avery-other-templates.xml.h:2
-msgid "File Folder Labels"
-msgstr "Aktenordner-Etiketten"
+#. ********************************************************************
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:6
+#: ../templates/avery-iso-templates.xml.h:14
+#: ../templates/geha-iso-templates.xml.h:11
+#: ../templates/herma-iso-templates.xml.h:10
+#: ../templates/jac-iso-templates.xml.h:2
+#: ../templates/misc-us-templates.xml.h:8
+#: ../templates/misc-iso-templates.xml.h:10
+#: ../templates/misc-other-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:24
+#: ../templates/worldlabel-us-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:12
+msgid "CD/DVD Labels"
+msgstr "CD/DVD-Etiketten"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:8
+#: ../templates/avery-us-templates.xml.h:8
 msgid "CD/DVD Labels (Disc Labels)"
 msgstr "CD/DVD-Etiketten (Medienaufkleber)"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:10
+#: ../templates/avery-us-templates.xml.h:10
 msgid "CD/DVD Labels (Spine Labels)"
 msgstr "CD/DVD-Etiketten (Spine Labels)"
 
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:12
+#: ../templates/avery-iso-templates.xml.h:16
+#: ../templates/meritline-us-templates.xml.h:4
+#: ../templates/worldlabel-us-templates.xml.h:3
+msgid "Diskette Labels"
+msgstr "Diskettenaufkleber"
+
 #. the LSK labels can be torn in half down the center
-#: ../data/templates/avery-us-templates.xml.h:14
+#: ../templates/avery-us-templates.xml.h:14
 msgid "Divider Labels"
 msgstr "Etiketten für Trennblätter"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:16
+#: ../templates/avery-us-templates.xml.h:16
+#: ../templates/avery-other-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:4
+msgid "File Folder Labels"
+msgstr "Aktenordner-Etiketten"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:5
 msgid "Filing Labels"
 msgstr "Ordneretiketten"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:18
+#: ../templates/avery-us-templates.xml.h:20
+#: ../templates/meritline-us-templates.xml.h:6
+#: ../templates/worldlabel-us-templates.xml.h:6
 msgid "Full Sheet Labels"
 msgstr "Ganzseitige Etiketten"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:20
+#: ../templates/avery-us-templates.xml.h:22
 msgid "ID Labels"
 msgstr "Etiketten für Archivierungsordner"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:22
+#: ../templates/avery-us-templates.xml.h:24
 msgid "Index Cards"
 msgstr "Indexkarten"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:24
+#: ../templates/avery-us-templates.xml.h:26
 msgid "Large Round Labels"
 msgstr "Große runde Etiketten"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:26
+#: ../templates/avery-us-templates.xml.h:28
 msgid "Name Badge Labels"
-msgstr "Namensschid-Etiketten"
+msgstr "Namensschild-Etiketten"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:28
+#: ../templates/avery-us-templates.xml.h:30
 msgid "Post cards"
 msgstr "Postkarten"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:30
-#: ../data/templates/dymo-other-templates.xml.h:12
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:32
+#: ../templates/dymo-other-templates.xml.h:12
+#: ../templates/meritline-us-templates.xml.h:10
+#: ../templates/worldlabel-us-templates.xml.h:8
 msgid "Return Address Labels"
 msgstr "Rückantwort-Adressaufkleber"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:32
-#: ../data/templates/misc-us-templates.xml.h:30
+#: ../templates/avery-us-templates.xml.h:34
+#: ../templates/maco-us-templates.xml.h:3
+#: ../templates/meritline-us-templates.xml.h:12
+#: ../templates/misc-us-templates.xml.h:30
+#: ../templates/worldlabel-us-templates.xml.h:9
 msgid "Round Labels"
 msgstr "Runde Etiketten"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:34
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:36
+#: ../templates/dataline-iso-templates.xml.h:10
+#: ../templates/meritline-us-templates.xml.h:14
+#: ../templates/uline-us-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:10
 msgid "Shipping Labels"
 msgstr "Versandetiketten"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:36
+#: ../templates/avery-us-templates.xml.h:38
 msgid "Small Round Labels"
 msgstr "Kleine runde Etiketten"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:38
+#: ../templates/avery-us-templates.xml.h:40
 msgid "Square Labels"
 msgstr "Quadratische Etiketten"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:40
+#: ../templates/avery-us-templates.xml.h:42
 msgid "Tent Cards"
 msgstr "Klappkarten"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:42
+#: ../templates/avery-us-templates.xml.h:44
+#: ../templates/geha-iso-templates.xml.h:27
+#: ../templates/meritline-us-templates.xml.h:16
+#: ../templates/worldlabel-us-templates.xml.h:11
 msgid "Video Tape Face Labels"
 msgstr "Etiketten für Videokassetten (Vorderseite)"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:44
-msgid "Video Tape Spine Labels"
-msgstr "Etiketten für Videokassetten (Rückseite)"
+#: ../templates/avery-iso-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:2
+msgid "Address labels"
+msgstr "Adressaufkleber"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:6
+msgid "Allround labels"
+msgstr "Universal-Etiketten"
+
+#. ===============================================================
+#: ../templates/avery-iso-templates.xml.h:10
+#: ../templates/zweckform-iso-templates.xml.h:8
+msgid "CD Booklet"
+msgstr "CD-Einlegeheft"
+
+#. ===================================================================
+#. ====================================================================
+#: ../templates/avery-iso-templates.xml.h:18
+#: ../templates/hama-iso-templates.xml.h:17
+msgid "Diskette labels"
+msgstr "Diskettenaufkleber"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:20
+msgid "Identification Labels"
+msgstr "Kennzeichnungsetiketten"
+
+#. ===============================================================
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:22
+#: ../templates/decadry-iso-templates.xml.h:4
+#: ../templates/herma-iso-templates.xml.h:14
+#: ../templates/misc-us-templates.xml.h:20
+#: ../templates/misc-iso-templates.xml.h:26
+#: ../templates/zweckform-iso-templates.xml.h:20
+msgid "Mailing Labels"
+msgstr "Adressaufkleber"
 
-#: ../data/templates/brother-other-templates.xml.h:1
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:24
+#: ../templates/decadry-iso-templates.xml.h:6
+msgid "Mailing labels"
+msgstr "Adressaufkleber"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:26
+msgid "Mini Address Labels"
+msgstr "Mini-Adressaufkleber"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:28
+msgid "Mini Labels"
+msgstr "Mini-Etiketten"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:32
+msgid "Shipping labels"
+msgstr "Versandaufkleber"
+
+#: ../templates/brother-other-templates.xml.h:1
 msgid "Multi Purpose Labels 17mm x 54mm"
 msgstr "Mehrzwecketiketten 17mm x 54mm"
 
-#: ../data/templates/brother-other-templates.xml.h:2
+#: ../templates/brother-other-templates.xml.h:2
 msgid "Shipping Labels 62mm x 100mm"
 msgstr "Versandetiketten 62mm x 100mm"
 
@@ -2476,287 +3026,622 @@ msgstr "Versandetiketten 62mm x 100mm"
 #. *********************************************************************
 #. *********************************************************************
 #.
-#: ../data/templates/brother-other-templates.xml.h:20
+#: ../templates/brother-other-templates.xml.h:20
 msgid "Standard Address Labels 29mm x 90mm"
 msgstr "Standard-Adressaufkleber 29mm x 90mm"
 
+#: ../templates/brother-other-templates.xml.h:21
+msgid "Standard Address Labels 38mm x 90mm"
+msgstr "Standard-Adressaufkleber 38mm x 90mm"
+
+#. ===================================================================
+#: ../templates/databecker-iso-templates.xml.h:6
+#: ../templates/misc-iso-templates.xml.h:8
+msgid "CD Labels"
+msgstr "CD-Aufkleber"
+
+#. ===================================================================
+#: ../templates/databecker-iso-templates.xml.h:8
+msgid "CD/DVD Labels Standard Format (face only)"
+msgstr "CD/DVD-Etiketten im Standardformat (nur Vorderseite)"
+
+#. ===================================================================
+#. ====================================================================
+#: ../templates/dataline-iso-templates.xml.h:6
+#: ../templates/hama-iso-templates.xml.h:13
+msgid "CD/DVD labels"
+msgstr "CD/DVD-Etiketten"
+
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:2
+#: ../templates/dataline-iso-templates.xml.h:8
+#: ../templates/pearl-iso-templates.xml.h:42
+msgid "Membership cards"
+msgstr "Club-Karten"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:2
 msgid "3.5in Diskette"
 msgstr "3.5-Zoll-Diskette"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:6
+#: ../templates/dymo-other-templates.xml.h:6
 msgid "File Folder"
 msgstr "Aktenordner"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:8
+#: ../templates/dymo-other-templates.xml.h:8
 msgid "Hanging Folder"
 msgstr "Hängemappe"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:10
+#: ../templates/dymo-other-templates.xml.h:10
+#: ../templates/geha-iso-templates.xml.h:19
 msgid "Large Address Labels"
 msgstr "Große Adressaufkleber"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:14
+#: ../templates/dymo-other-templates.xml.h:14
 msgid "Shipping Address Labels"
 msgstr "Versand-Adressaufkleber"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:4
-#: ../data/templates/zweckform-iso-templates.xml.h:4
-msgid "Allround Labels"
-msgstr "Universal-Etiketten"
-
+#. ====================================================================
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:6
+#: ../templates/geha-iso-templates.xml.h:4
+#: ../templates/hama-iso-templates.xml.h:2
+#: ../templates/herma-iso-templates.xml.h:4
 msgid "Arch File Labels"
 msgstr "Etiketten für Archivierungsordner"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:8
-msgid "Arch File Labels (large)"
-msgstr "Etiketten für Archivierungsordner (groß)"
+#: ../templates/geha-iso-templates.xml.h:6
+msgid "Arch File inserts"
+msgstr "Ordner-Einsteckschilder"
 
-#. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:10
-msgid "Arch File Labels (small)"
-msgstr "Etiketten für Archivierungsordner (klein)"
+#: ../templates/geha-iso-templates.xml.h:9
+msgid "CD/DVD Inlet"
+msgstr "CD/DVD-Einleger"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:14
-msgid "CD Labels"
-msgstr "CD-Aufkleber"
-
+#. ====================================================================
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:18
-#: ../data/templates/misc-us-templates.xml.h:12
-msgid "CD/DVD Labels (face only)"
-msgstr "CD/DVD-Etiketten (nur Vorderseite)"
+#: ../templates/geha-iso-templates.xml.h:13
+#: ../templates/hama-iso-templates.xml.h:15
+#: ../templates/pearl-iso-templates.xml.h:26
+msgid "DVD inlet"
+msgstr "DVD-Einleger"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:20
-msgid "CD/DVD Labels Standard Format (face only)"
-msgstr "CD/DVD-Etiketten im Standardformat (nur Vorderseite)"
+#: ../templates/geha-iso-templates.xml.h:15
+msgid "Flyer paper"
+msgstr "Flyer-Papier"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:22
-msgid "Diskette Labels (face only)"
-msgstr "Diskettenaufkleber (nur Vorderseite)"
+#. ====================================================================
+#: ../templates/geha-iso-templates.xml.h:17
+#: ../templates/hama-iso-templates.xml.h:19
+msgid "Greeting cards"
+msgstr "Grußkarten"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:24
-msgid "EPSON Photo Stickers 16"
-msgstr "EPSON Photo Stickers 16"
+#: ../templates/geha-iso-templates.xml.h:21
+#: ../templates/misc-other-templates.xml.h:4
+msgid "Multi-Purpose Labels"
+msgstr "Mehrzweck-Etiketten"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:26
-msgid "Etiketten"
-msgstr "Etiketten"
+#: ../templates/geha-iso-templates.xml.h:23
+msgid "Passport photo labels"
+msgstr "Passbild-Etiketten"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:28
-msgid "Fridge Magnet Stickers"
-msgstr "Aufkleber für Kühlschrankmagnete"
-
+#. ====================================================================
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:30
-msgid "General Labels"
-msgstr "Allgemeine Etiketten"
+#: ../templates/geha-iso-templates.xml.h:25
+#: ../templates/hama-iso-templates.xml.h:23
+#: ../templates/pearl-iso-templates.xml.h:50
+msgid "Photo labels"
+msgstr "Fotoetiketten"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:4
+msgid "Arch File labels"
+msgstr "Etiketten für Archivierungsordner"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:8
+msgid "CD inlet"
+msgstr "CD-Einleger"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:32
-msgid "Inkjet/Laser Labels 70x37mm"
-msgstr "Inkjet/Laseretiketten 70x37mm"
+#: ../templates/hama-iso-templates.xml.h:9
+#: ../templates/pearl-iso-templates.xml.h:20
+msgid "CD inlet (back)"
+msgstr "CD-Einleger (Rückseite)"
 
+#. ====================================================================
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:38
-msgid "Mailing Labels-2 columns"
-msgstr "Adressaufkleber 2-spaltig"
+#: ../templates/hama-iso-templates.xml.h:11
+#: ../templates/pearl-iso-templates.xml.h:22
+msgid "CD inlet (front)"
+msgstr "CD-Einleger (Vorderseite)"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:21
+msgid "Mini Disc labels"
+msgstr "MiniDisc-Etiketten"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:25
+msgid "Printable mousepad"
+msgstr "Bedruckbares Mauspad"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:35
+msgid "VHS inlet"
+msgstr "VHS-Einleger"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:37
+msgid "VHS-C inlet"
+msgstr "VHS-C-Einleger"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:39
+msgid "Video-8 inlet"
+msgstr "Video-8-Einleger"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:41
+msgid "Zip disc inlet"
+msgstr "Zip-Disketteneinleger"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:43
+msgid "Zip disc labels"
+msgstr "Zip-Diskettenaufkleber"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:40
-msgid "Mailing Labels-3 columns"
-msgstr "Adressaufkleber 3-spaltig"
+#: ../templates/herma-iso-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:4
+msgid "Allround Labels"
+msgstr "Universal-Etiketten"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:42
-#: ../data/templates/misc-us-templates.xml.h:28
-msgid "PRO CD Labels 2-up (face only)"
-msgstr "PRO-CD-Etiketten 2-up (nur Vorderseite)"
+#: ../templates/herma-iso-templates.xml.h:6
+msgid "Arch File Labels (large)"
+msgstr "Etiketten für Archivierungsordner (groß)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:44
-#: ../data/templates/zweckform-iso-templates.xml.h:24
-msgid "Rectangular Labels"
-msgstr "Rechteckige Etiketten"
+#: ../templates/herma-iso-templates.xml.h:8
+msgid "Arch File Labels (small)"
+msgstr "Etiketten für Archivierungsordner (klein)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:46
-msgid "Universal Labels"
-msgstr "Universelle Etiketten"
+#: ../templates/herma-iso-templates.xml.h:12
+msgid "Diskette Labels (face only)"
+msgstr "Diskettenaufkleber (nur Vorderseite)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:48
+#: ../templates/herma-iso-templates.xml.h:20
 msgid "Video Labels (face only)"
 msgstr "Video-Etiketten (nur Vorderseite)"
 
+#. *******************************************************************
 #. ===================================================================
-#: ../data/templates/misc-other-templates.xml.h:2
-msgid "Multi-Purpose Labels"
-msgstr "Mehrzweck-Etiketten"
+#: ../templates/jac-iso-templates.xml.h:4
+#: ../templates/pearl-iso-templates.xml.h:36
+msgid "Labels A4"
+msgstr "Etiketten A4"
+
+#. *******************************************************************
+#: ../templates/jac-iso-templates.xml.h:6
+msgid "PVC labels"
+msgstr "PVC-Etiketten"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:2
+#: ../templates/meritline-us-templates.xml.h:8
+msgid "Mini-CD Labels"
+msgstr "Mini-CD-Etiketten"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:2
 msgid "Business Card CD"
 msgstr "Visitenkarten-CD"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:6
+#: ../templates/misc-us-templates.xml.h:6
 msgid "CD Template Rectangles"
 msgstr "CD-Vorlagen (rechteckig)"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:10
+#: ../templates/misc-us-templates.xml.h:10
 msgid "CD/DVD Labels (Face Only)"
 msgstr "CD/DVD-Etiketten (nur Vorderseite)"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:14
+#. TODO: Is this the actual part #?
+#: ../templates/misc-us-templates.xml.h:12
+#: ../templates/misc-iso-templates.xml.h:12
+msgid "CD/DVD Labels (face only)"
+msgstr "CD/DVD-Etiketten (nur Vorderseite)"
+
+#. TODO: Is this the actual part #?
+#: ../templates/misc-us-templates.xml.h:14
 msgid "Cassette Labels"
 msgstr "Kassettenaufkleber"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:16
+#: ../templates/misc-us-templates.xml.h:16
 msgid "DLT Labels"
 msgstr "DLT-Etiketten"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:18
+#: ../templates/misc-us-templates.xml.h:18
 msgid "Jewel Case Booklet"
 msgstr "Einleger für CD-Boxen"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:22
+#: ../templates/misc-us-templates.xml.h:22
 msgid "Microtube labels"
 msgstr "Microtube-Etiketten"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:24
-msgid "Mini-CD Labels"
-msgstr "Mini-CD-Etiketten"
-
-#: ../data/templates/misc-us-templates.xml.h:25
+#: ../templates/misc-us-templates.xml.h:24
 msgid "PRO CD Labels 2-up (CD spine only)"
-msgstr "PRO-CD-Etiketten 2-up (nur CD-Spine)"
+msgstr "PRO-CD-Etiketten 2-up (nur CD-Box-Schmalseite)"
 
-#: ../data/templates/misc-us-templates.xml.h:26
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:26
 msgid "PRO CD Labels 2-up (Face only)"
 msgstr "PRO-CD-Etiketten 2-up (nur Vorderseite)"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:32
+#. TODO: Is this the actual part #?
+#: ../templates/misc-us-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:28
+msgid "PRO CD Labels 2-up (face only)"
+msgstr "PRO-CD-Etiketten 2-up (nur Vorderseite)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:32
 msgid "Slimline CD Case (rightside up)"
-msgstr "Slimline CD Case (normal)"
+msgstr "Slimline CD-Box (normal)"
 
-#: ../data/templates/misc-us-templates.xml.h:33
+#: ../templates/misc-us-templates.xml.h:33
 msgid "Slimline CD Case (upside down)"
-msgstr "Slimline CD Case (umgekehrt)"
+msgstr "Slimline CD-Box (umgekehrt)"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:4
+#: ../templates/pearl-iso-templates.xml.h:6
+msgid "Bottle labels"
+msgstr "Flaschenetiketten"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:14
+msgid "EPSON Photo Stickers 16"
+msgstr "EPSON Photo Stickers 16"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:16
+msgid "Etiketten"
+msgstr "Etiketten"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:18
+msgid "Fridge Magnet Stickers"
+msgstr "Aufkleber für Kühlschrankmagnete"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:20
+msgid "General Labels"
+msgstr "Allgemeine Etiketten"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:22
+msgid "Inkjet/Laser Labels 70x37mm"
+msgstr "Inkjet/Laseretiketten 70x37mm"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:32
+#: ../templates/pearl-iso-templates.xml.h:62
+msgid "Self-adhesive labels"
+msgstr "Selbstklebende Etiketten"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:34
+msgid "Universal Labels"
+msgstr "Universelle Etiketten"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:4
+msgid "Address Labels (STAMPIT)"
+msgstr "Adressaufkleber (STAMPIT)"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:10
+msgid "Business cards glossy, both sides printable"
+msgstr "Visitenkarten glänzend beidseitig"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:12
+msgid "Business cards high glossy"
+msgstr "Visitenkarten hochglänzend"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:14
+msgid "Business cards punched"
+msgstr "Visitenkarten gestanzt"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:16
+msgid "Business cards punched dull"
+msgstr "Visitenkarten gestanzt matt"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:18
+msgid "Business cards punched glossy"
+msgstr "Visitenkarten gestanzt glänzend"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:30
+msgid "Floppy disk labels"
+msgstr "Diskettenaufkleber"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:32
+msgid "Foldable business cards"
+msgstr "Faltbare Visitenkarten"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:34
+msgid "Foldable business cards glossy/dull"
+msgstr "Faltbare Visitenkarten glänzend/matt"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:38
+msgid "Labels A5"
+msgstr "Etiketten A5"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:40
+msgid "Labels A6"
+msgstr "Etiketten A6"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:44
+msgid "Membership cards, both sides printable"
+msgstr "Club-Karten beidseitig"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:46
+msgid "Name plates"
+msgstr "Namensschilder"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:48
+msgid "Passport photo labels glossy"
+msgstr "Passbild-Etiketten glänzend"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:10
+#: ../templates/pearl-iso-templates.xml.h:52
+msgid "Photo labels semiglossy"
+msgstr "Fotoetiketten semigloss"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:56
+msgid "SD card labels"
+msgstr "SD-Karten-Etiketten"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:58
+msgid "Self-adhesive film transparent"
+msgstr "Selbstklebende Folie transparent"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:60
+msgid "Self-adhesive film weatherproof"
+msgstr "Selbstklebende Folie wetterfest"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:64
+msgid "Self-adhesive window film"
+msgstr "Selbstklebende Fensterfolie"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:14
 msgid "Correction and Cover-up Labels"
 msgstr "Korrektur- und Abdeckaufkleber"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:16
 msgid "File Back Labels"
 msgstr "Ordnerrücken"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:14
+#: ../templates/zweckform-iso-templates.xml.h:18
 msgid "Lever Arch File Labels"
-msgstr "Lever Etiketten für Archivierungsordner"
+msgstr "Lever-Etiketten für Archivierungsordner"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:18
+#: ../templates/zweckform-iso-templates.xml.h:22
 msgid "Multi-purpose Stick+Lift Labels"
 msgstr "Mehrzweck-Stick+Lift-Aufkleber"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:20
+#: ../templates/zweckform-iso-templates.xml.h:24
 msgid "QSL-Karten Etiketten 70mm x 50,8mm"
 msgstr "QSL-Karten Etiketten 70mm x 50,8mm"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:22
+#: ../templates/zweckform-iso-templates.xml.h:26
 msgid "Rectangular Copier Labels"
 msgstr "Rechteckige Kopieretiketten"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:26
+#: ../templates/zweckform-iso-templates.xml.h:30
 msgid "Video Labels (back)"
 msgstr "Video-Etiketten (Rückseite)"
 
-#: ../data/desktop/glabels.desktop.in.h:1
-msgid "Create labels, business cards and media covers"
-msgstr "Erstellen von Etiketten, Visitenkarten und Medien-Covern"
+#~ msgid "Align _Horizontal"
+#~ msgstr "_Horizontal"
 
-#: ../data/desktop/glabels.desktop.in.h:2
-msgid "gLabels Label Designer"
-msgstr "gLabels Etiketten-Designer"
+#~ msgid "Align _Vertical"
+#~ msgstr "_Vertikal"
 
-#: ../data/mime/glabels.keys.in.h:1 ../data/mime/glabels.xml.in.h:1
-msgid "gLabels Project File"
-msgstr "gLabels-Projektdatei"
+#~ msgid "Couldn't construct query"
+#~ msgstr "Abfrage konnte nicht erstellt werden"
 
-#: ../barcode-0.98/compat/getopt.c:583
-#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: Option `%s' ist nicht eindeutig\n"
+#~ msgid "Couldn't open addressbook."
+#~ msgstr "Adressbuch konnte nicht geöffnet werden"
 
-#: ../barcode-0.98/compat/getopt.c:607
-#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: Option `--%s' erlaubt kein Argument\n"
+#~ msgid "Couldn't list available fields."
+#~ msgstr "Verfügbare Felder konnten nicht aufgelistet werden."
 
-#: ../barcode-0.98/compat/getopt.c:612
-#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: Option `%c%s' erlaubt kein Argument\n"
+#~ msgid "Couldn't get contacts."
+#~ msgstr "Kontakte konnten nicht geholt werden."
 
-#: ../barcode-0.98/compat/getopt.c:629
-#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s: Option `%s' benötigt ein Argument\n"
+#~ msgid "Bad root node = \"%s\""
+#~ msgstr "Fehlerhafter root node = »%s«"
 
-#. --option
-#: ../barcode-0.98/compat/getopt.c:658
-#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: Nicht erkannte Option `--%s'\n"
+#~ msgid "bad node =  \"%s\""
+#~ msgstr "fehlerhafter node =  »%s«"
 
-#. +option or -option
-#: ../barcode-0.98/compat/getopt.c:662
-#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: Nicht erkannte Option `%c%s'\n"
+#~ msgid "xmlParseFile error"
+#~ msgstr "Fehler: xmlParseFile error"
 
-#. 1003.2 specifies the format of this message.
-#: ../barcode-0.98/compat/getopt.c:688
-#, c-format
-msgid "%s: illegal option -- %c\n"
-msgstr "%s: Unerlaubte Option -- %c\n"
+#~ msgid "No document root"
+#~ msgstr "Kein document root"
 
-#: ../barcode-0.98/compat/getopt.c:691
-#, c-format
-msgid "%s: invalid option -- %c\n"
-msgstr "%s: Ungültige Option -- %c\n"
+#~ msgid "Importing from glabels 0.1 format"
+#~ msgstr "Aus dem glabels 0.1-Format wird importiert"
 
-#: ../barcode-0.98/compat/getopt.c:727
-#, c-format
-msgid "%s: option requires an argument -- %c\n"
-msgstr "%s: Option benötigt ein Argument -- %c\n"
+#~ msgid "Importing from glabels 0.4 format"
+#~ msgstr "Aus dem glabels 0.4-Format wird importiert"
+
+#~ msgid "Unknown glabels Namespace -- Using %s"
+#~ msgstr "Unbekannter glabels-Namensraum -- %s wird verwendet"
+
+#~ msgid "bad node in Document node =  \"%s\""
+#~ msgstr "Ungültiger Node im Dokument-Node = »%s«"
+
+#~ msgid "bad node in Data node =  \"%s\""
+#~ msgstr "Ungültiger Node im Daten-Node = »%s«"
+
+#~ msgid "Unknown embedded file format: \"%s\""
+#~ msgstr "Unbekanntes eingebettetes Dateiformat: »%s«"
+
+#~ msgid "Utf8 conversion error."
+#~ msgstr "Fehler in der UTF8-Umwandlung."
+
+#~ msgid "Problem saving xml file."
+#~ msgstr "Problem beim Speichern der XML-Datei."
+
+#~ msgid "Equivalent part (\"%s\") for \"%s\", not previously defined."
+#~ msgstr "Äquivalenter Teil »%s« für »%s« wurde zuvor nicht definiert."
+
+#~ msgid "Missing name or brand/part attributes."
+#~ msgstr "Name oder Attribute für Marke/Nummer fehlen."
+
+#~ msgid "Unknown page size id \"%s\", trying as name"
+#~ msgstr "Unbekannte Kennung der Seitengröße »%s«, wird als Name versucht"
+
+#~ msgid "Unknown page size id or name \"%s\""
+#~ msgstr "Unbekannte Kennung der Seitengröße oder Name »%s«"
+
+#~ msgid "Forward references not supported."
+#~ msgstr "Vorwärtsreferenzen werden nicht unterstützt."
+
+#~ msgid "Skipping deprecated \"Alias\" node."
+#~ msgstr "Missbilligter »Alias«-Knoten wird übersprungen."
+
+#~ msgid ""
+#~ "Missing required \"brand\" or \"part\" attribute, trying deprecated name."
+#~ msgstr ""
+#~ "Benötigte Attribute »brand« oder »part« fehlt, missbilligter Name wird "
+#~ "versucht. "
+
+#~ msgid "Name attribute also missing."
+#~ msgstr "Name des Attributs fehlt ebenfalls."
+
+#~ msgid "Mailing Labels-2 columns"
+#~ msgstr "Adressaufkleber 2-spaltig"
+
+#~ msgid "Mailing Labels-3 columns"
+#~ msgstr "Adressaufkleber 3-spaltig"
+
+#~ msgid "ellipse_page"
+#~ msgstr "ellipse_page"
+
+#~ msgid "_Select Mode"
+#~ msgstr "Modus au_swählen"
+
+#~ msgid "_Text"
+#~ msgstr "_Text"
+
+#~ msgid "_Line"
+#~ msgstr "_Linie"
+
+#~ msgid "_Box"
+#~ msgstr "_Rechteck"
+
+#~ msgid "_Ellipse"
+#~ msgstr "_Ellipse"
+
+#~ msgid "_Image"
+#~ msgstr "B_ild"
+
+#~ msgid "Bar_code"
+#~ msgstr "Strich_code"
+
+#~ msgid "_Merge Properties"
+#~ msgstr "_Mischeinstellungen"
+
+#~ msgid "Object _Properties"
+#~ msgstr "Objektei_genschaften"
+
+#~ msgid "Bring to _Front"
+#~ msgstr "Ganz nach _vorn"
+
+#~ msgid "Send to _Back"
+#~ msgstr "Ganz nach _hinten"
+
+#~ msgid "Rotate _Left"
+#~ msgstr "_Links drehen"
+
+#~ msgid "Rotate _Right"
+#~ msgstr "_Rechts drehen"
+
+#~ msgid "Flip _Horizontally"
+#~ msgstr "_Horizontal spiegeln"
+
+#~ msgid "Flip _Vertically"
+#~ msgstr "_Vertikal spiegeln"
+
+#~ msgid "_Lefts"
+#~ msgstr "_Links"
+
+#~ msgid "_Rights"
+#~ msgstr "_Rechts"
+
+#~ msgid "_Centers"
+#~ msgstr "_Mitte"
+
+#~ msgid "_Tops"
+#~ msgstr "_Oben"
+
+#~ msgid "Bottoms"
+#~ msgstr "Unten"
+
+#~ msgid "Label Ce_nter"
+#~ msgstr "Etikett ze_ntrieren"
+
+#~ msgid "Linked"
+#~ msgstr "Verknüpft"
+
+#~ msgid "Not Linked"
+#~ msgstr "Nicht verknüpft"
+
+#~ msgid "glabels"
+#~ msgstr "glabels"
index cda51ceaa06aa6de55e185687c4d32404c1e0d2d..6efa67a369962acf92e211626328a353eb761b7b 100644 (file)
--- a/po/eo.po
+++ b/po/eo.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: eo\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-06-19 20:43-0400\n"
+"POT-Creation-Date: 2010-07-10 00:37-0400\n"
 "PO-Revision-Date: 2007-06-06 16:48+0200\n"
 "Last-Translator: Antonio C. Codazzi <f_sophia@libero.it>\n"
 "Language-Team:  Esperanto <eo@li.org>\n"
@@ -20,1823 +20,2391 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.0.2\n"
 
-#: src/glabels.c:116
-msgid "Could not initialize Bonobo!\n"
-msgstr "Estas neeble prepari Bonobon!\n"
+#: ../src/bc.c:66
+msgid "POSTNET (any)"
+msgstr "POSTNET (iu ajn)"
 
-#: src/glabels-batch.c:52
-msgid "print this message"
-msgstr "presu tiun ĉi mesaĝon"
+#: ../src/bc.c:69
+msgid "POSTNET-5 (ZIP only)"
+msgstr "POSTNET-5 (nur ZIP/CAP)"
 
-#: src/glabels-batch.c:54
-msgid "print the version of glabels-batch being used"
-msgstr "presu version de uzata staplo de glabels"
+#: ../src/bc.c:72
+msgid "POSTNET-9 (ZIP+4)"
+msgstr "POSTNET-9 (ZIP/CAP+4)"
 
-#: src/glabels-batch.c:56
-msgid "set output filename (default=\"output.ps\")"
-msgstr "agordu dosiernomon de eligo (defaŭlte \"output.ps\")"
+#: ../src/bc.c:75
+msgid "POSTNET-11 (DPBC)"
+msgstr "POSTNET-11 (DPBC)"
 
-#: src/glabels-batch.c:56 src/glabels-batch.c:70
-msgid "filename"
-msgstr "dosiernomo"
+#: ../src/bc.c:80
+msgid "CEPNET"
+msgstr ""
 
-#: src/glabels-batch.c:58
-msgid "number of sheets (default=1)"
-msgstr "nombro da folioj (defaŭlte 1)"
+#: ../src/bc.c:83
+msgid "EAN (any)"
+msgstr "EAN (iu ajn)"
 
-#: src/glabels-batch.c:58
-msgid "sheets"
-msgstr "folioj"
+#: ../src/bc.c:86
+msgid "EAN-8"
+msgstr "EAN-8"
 
-#: src/glabels-batch.c:60
-msgid "number of copies (default=1)"
-msgstr "nombro da ekzempleroj (defaŭlte 1)"
+#: ../src/bc.c:89
+msgid "EAN-8 +2"
+msgstr "EAN-8 +2"
 
-#: src/glabels-batch.c:60
-msgid "copies"
-msgstr "ekzempleroj"
+#: ../src/bc.c:92
+msgid "EAN-8 +5"
+msgstr "EAN-8 +5"
 
-#: src/glabels-batch.c:62
-msgid "first label on first sheet (default=1)"
-msgstr "unua etikedo de unua folio (defaŭlte 1)"
+#: ../src/bc.c:95
+msgid "EAN-13"
+msgstr "EAN-13"
 
-#: src/glabels-batch.c:62
-msgid "first"
-msgstr "unua"
+#: ../src/bc.c:98
+msgid "EAN-13 +2"
+msgstr "EAN-13 +2"
 
-#: src/glabels-batch.c:64 src/print-dialog.c:336
-msgid "print outlines (to test printer alignment)"
-msgstr "presu konturojn (por testi alliniĝon de la printilo)"
+#: ../src/bc.c:101
+msgid "EAN-13 +5"
+msgstr "EAN-13 +5"
 
-#: src/glabels-batch.c:66 src/print-dialog.c:344
-msgid "print in reverse (i.e. a mirror image)"
-msgstr "presu inverse (ekz. iun spegulitan bildon)"
+#: ../src/bc.c:104
+msgid "UPC (UPC-A or UPC-E)"
+msgstr "UPC (UPC-A aŭ UPC-E)"
 
-#: src/glabels-batch.c:68 src/print-dialog.c:351
-msgid "print crop marks"
-msgstr "presu liniojn de tranĉo"
+#: ../src/bc.c:107 ../src/bc.c:348
+msgid "UPC-A"
+msgstr "UPC-A"
 
-#: src/glabels-batch.c:70
-msgid "input file for merging"
-msgstr "eniga dosiero por kunfandi"
+#: ../src/bc.c:110
+msgid "UPC-A +2"
+msgstr "UPC-A +2"
 
-#: src/glabels-batch.c:107
-msgid "[OPTION...] GLABELS_FILE..."
-msgstr "[OPTION...] GLABELS_FILE..."
+#: ../src/bc.c:113
+msgid "UPC-A +5"
+msgstr "UPC-A +5"
 
-#: src/glabels-batch.c:127
-#, c-format
-msgid "missing glabels file\n"
-msgstr "mankanta dosero de glabels\n"
+#: ../src/bc.c:116 ../src/bc.c:351
+msgid "UPC-E"
+msgstr "UPC-E"
 
-#: src/glabels-batch.c:158
-#, c-format
-msgid "cannot perform document merge with glabels file %s\n"
-msgstr "estas neeble kunfandi dokumentojn kun dosiero de glabels %s\n"
+#: ../src/bc.c:119
+msgid "UPC-E +2"
+msgstr "UPC-E +2"
 
-#: src/glabels-batch.c:182
-#, c-format
-msgid "cannot open glabels file %s\n"
-msgstr "estas neeble malfermi dosieron de glabels %s\n"
+#: ../src/bc.c:122
+msgid "UPC-E +5"
+msgstr "UPC-E +5"
 
-#: src/window.c:244
-msgid "(none) - gLabels"
-msgstr "(nenio) - gLabels"
+#: ../src/bc.c:125 ../src/bc.c:288
+msgid "ISBN"
+msgstr "ISBN"
 
-#: src/window.c:414
-msgid "(modified)"
-msgstr "(modifita)"
+#: ../src/bc.c:128
+msgid "ISBN +5"
+msgstr "ISBN +5"
 
-#: src/stock.c:65 data/ui/glabels-ui.xml.h:162
-msgid "_Select Mode"
-msgstr "Modu_so de Elektado"
+#: ../src/bc.c:131 ../src/bc.c:204
+msgid "Code 39"
+msgstr "Kodo 39"
 
-#: src/stock.c:66 data/ui/glabels-ui.xml.h:163
-msgid "_Text"
-msgstr "_Teksto"
+#: ../src/bc.c:134 ../src/bc.c:216
+msgid "Code 128"
+msgstr "Kodo 128"
 
-#: src/stock.c:67 data/ui/glabels-ui.xml.h:148
-msgid "_Line"
-msgstr "_Linio"
+#: ../src/bc.c:137
+msgid "Code 128C"
+msgstr "Kodo 128C"
 
-#: src/stock.c:68 data/ui/glabels-ui.xml.h:130
-msgid "_Box"
-msgstr "_Fako"
+#: ../src/bc.c:140
+msgid "Code 128B"
+msgstr "Kodo 128B"
 
-#: src/stock.c:69 data/ui/glabels-ui.xml.h:141
-msgid "_Ellipse"
-msgstr "_Elipso"
+#: ../src/bc.c:143 ../src/bc.c:285
+msgid "Interleaved 2 of 5"
+msgstr "Interleaved 2 of 5"
 
-#: src/stock.c:70 data/ui/glabels-ui.xml.h:146
-msgid "_Image"
-msgstr "_Bildo"
+#: ../src/bc.c:146 ../src/bc.c:180
+msgid "Codabar"
+msgstr "Codabar"
 
-#: src/stock.c:71 data/ui/glabels-ui.xml.h:11
-msgid "Bar_code"
-msgstr "Strek_kodo"
+#: ../src/bc.c:149
+msgid "MSI"
+msgstr "MSI"
 
-#: src/stock.c:72
-msgid "_Merge Properties"
-msgstr "Ecoj de Ku_nfando"
+#: ../src/bc.c:152
+msgid "Plessey"
+msgstr "Plessey"
 
-#: src/stock.c:73
-msgid "Object _Properties"
-msgstr "Ecoj de _Objekto"
+#: ../src/bc.c:155 ../src/bc.c:213
+#, fuzzy
+msgid "Code 93"
+msgstr "Kodo 39"
 
-#: src/stock.c:74 data/ui/glabels-ui.xml.h:13
-msgid "Bring to _Front"
-msgstr "Portu _Fronten"
+#: ../src/bc.c:162
+msgid "Australia Post Standard"
+msgstr ""
 
-#: src/stock.c:75 data/ui/glabels-ui.xml.h:109
-msgid "Send to _Back"
-msgstr "_Sendu Malantaŭen"
+#: ../src/bc.c:165
+msgid "Australia Post Reply Paid"
+msgstr ""
 
-#: src/stock.c:76 data/ui/glabels-ui.xml.h:96
-msgid "Rotate _Left"
-msgstr "Turnu _Maldekstren"
+#: ../src/bc.c:168
+msgid "Australia Post Route Code"
+msgstr ""
 
-#: src/stock.c:77 data/ui/glabels-ui.xml.h:97
-msgid "Rotate _Right"
-msgstr "Turnu _Dekstren"
+#: ../src/bc.c:171
+msgid "Australia Post Redirect"
+msgstr ""
 
-#: src/stock.c:78 data/ui/glabels-ui.xml.h:52
-msgid "Flip _Horizontally"
-msgstr "Renversu _Horizontale"
+#: ../src/bc.c:174
+msgid "Aztec Code"
+msgstr ""
 
-#: src/stock.c:79 data/ui/glabels-ui.xml.h:53
-msgid "Flip _Vertically"
-msgstr "Renversu _Vertikale"
+#: ../src/bc.c:177
+msgid "Aztec Rune"
+msgstr ""
 
-#: src/stock.c:80 data/ui/glabels-ui.xml.h:147
-msgid "_Lefts"
-msgstr "_Maldekstre"
+#: ../src/bc.c:183
+#, fuzzy
+msgid "Code One"
+msgstr "Kodo 39"
 
-#: src/stock.c:81 data/ui/glabels-ui.xml.h:159
-msgid "_Rights"
-msgstr "_Dekstre"
+#: ../src/bc.c:186
+#, fuzzy
+msgid "Code 11"
+msgstr "Kodo 128"
 
-#: src/stock.c:82 data/ui/glabels-ui.xml.h:131
-msgid "_Centers"
-msgstr "_Centre"
+#: ../src/bc.c:189
+#, fuzzy
+msgid "Code 16K"
+msgstr "Kodo 128"
 
-#: src/stock.c:83 data/ui/glabels-ui.xml.h:164
-msgid "_Tops"
-msgstr "_Supre"
+#: ../src/bc.c:192
+msgid "Code 2 of 5 Matrix"
+msgstr ""
 
-#: src/stock.c:84
-msgid "Bottoms"
-msgstr "Sube"
+#: ../src/bc.c:195
+msgid "Code 2 of 5 IATA"
+msgstr ""
 
-#: src/stock.c:85
-msgid "Centers"
-msgstr "Centre"
+#: ../src/bc.c:198
+msgid "Code 2 of 5 Data Logic"
+msgstr ""
 
-#: src/stock.c:86 src/stock.c:87 data/ui/glabels-ui.xml.h:62
-msgid "Label Ce_nter"
-msgstr "Ce_ntrita Etikedo"
+#: ../src/bc.c:201
+msgid "Code 32 (Italian Pharmacode)"
+msgstr ""
 
-#: src/stock.c:88 data/ui/glabels-ui.xml.h:51
-msgid "Fill color"
-msgstr "Koloro de plenigo"
+#: ../src/bc.c:207
+#, fuzzy
+msgid "Code 39 Extended"
+msgstr "Kodo 39"
 
-#: src/stock.c:89 data/ui/glabels-ui.xml.h:64
-msgid "Line color"
-msgstr "Koloro de linio"
+#: ../src/bc.c:210
+#, fuzzy
+msgid "Code 49"
+msgstr "Kodo 39"
 
-#: src/stock.c:90 src/stock.c:92
-msgid "Linked"
-msgstr "Kunligita"
+#: ../src/bc.c:219
+msgid "Code 128 (Mode C supression)"
+msgstr ""
 
-#: src/stock.c:91 src/stock.c:93
-msgid "Not Linked"
-msgstr "Neniu Kunligo"
+#: ../src/bc.c:222
+msgid "DAFT Code"
+msgstr ""
 
-#: src/ui-property-bar.c:345 src/object-editor.c:499
-msgid "Default"
+#: ../src/bc.c:225
+msgid "Data Matrix"
+msgstr ""
+
+#: ../src/bc.c:228
+msgid "Deutsche Post Leitcode"
+msgstr ""
+
+#: ../src/bc.c:231
+msgid "Deutsche Post Identcode"
+msgstr ""
+
+#: ../src/bc.c:234
+msgid "Dutch Post KIX Code"
+msgstr ""
+
+#: ../src/bc.c:237
+msgid "European Article Number (EAN)"
+msgstr ""
+
+#: ../src/bc.c:240
+msgid "Grid Matrix"
+msgstr ""
+
+#: ../src/bc.c:243
+msgid "GS1-128"
+msgstr ""
+
+#: ../src/bc.c:246
+msgid "GS1 DataBar-14"
+msgstr ""
+
+#: ../src/bc.c:255
+msgid "GS1 DataBar-14 Stacked"
+msgstr ""
+
+#: ../src/bc.c:258
+msgid "GS1 DataBar-14 Stacked Omni."
+msgstr ""
+
+#: ../src/bc.c:261
+msgid "GS1 DataBar Extended Stacked"
+msgstr ""
+
+#: ../src/bc.c:264
+#, fuzzy
+msgid "HIBC Code 128"
+msgstr "Kodo 128"
+
+#: ../src/bc.c:267
+#, fuzzy
+msgid "HIBC Code 39"
+msgstr "Kodo 39"
+
+#: ../src/bc.c:270
+msgid "HIBC Data Matrix"
+msgstr ""
+
+#: ../src/bc.c:273
+msgid "HIBC QR Code"
+msgstr ""
+
+#: ../src/bc.c:276
+msgid "HIBC PDF417"
+msgstr ""
+
+#: ../src/bc.c:279
+msgid "HIBC Micro PDF417"
+msgstr ""
+
+#: ../src/bc.c:282
+msgid "HIBC Aztec Code"
+msgstr ""
+
+#: ../src/bc.c:291
+msgid "ITF-14"
+msgstr ""
+
+#: ../src/bc.c:294
+msgid "Japanese Postal"
+msgstr ""
+
+#: ../src/bc.c:297
+msgid "Korean Postal"
+msgstr ""
+
+#: ../src/bc.c:300
+msgid "LOGMARS"
+msgstr ""
+
+#: ../src/bc.c:303
+msgid "Micro PDF417"
+msgstr ""
+
+#: ../src/bc.c:306
+msgid "Micro QR Code"
+msgstr ""
+
+#: ../src/bc.c:309
+#, fuzzy
+msgid "MSI Plessey"
+msgstr "Plessey"
+
+#: ../src/bc.c:312
+msgid "NVE-18"
+msgstr ""
+
+#: ../src/bc.c:315
+msgid "PDF417"
+msgstr ""
+
+#: ../src/bc.c:318
+msgid "PDF417 Truncated"
+msgstr ""
+
+#: ../src/bc.c:321
+msgid "PLANET"
+msgstr ""
+
+#: ../src/bc.c:324
+#, fuzzy
+msgid "PostNet"
+msgstr "Enmetu"
+
+#: ../src/bc.c:327
+#, fuzzy
+msgid "Pharmacode"
+msgstr "Strek_kodo"
+
+#: ../src/bc.c:330
+msgid "Pharmacode 2-track"
+msgstr ""
+
+#: ../src/bc.c:333
+msgid "Pharmazentral Nummer (PZN)"
+msgstr ""
+
+#: ../src/bc.c:336
+msgid "QR Code"
+msgstr ""
+
+#: ../src/bc.c:339
+msgid "Royal Mail 4-State"
+msgstr ""
+
+#: ../src/bc.c:342
+#, fuzzy
+msgid "Telepen"
+msgstr "Forigu"
+
+#: ../src/bc.c:345
+msgid "Telepen Numeric"
+msgstr ""
+
+#: ../src/bc.c:354
+msgid "USPS One Code"
+msgstr ""
+
+#: ../src/bc.c:357
+#, fuzzy
+msgid "UK Plessey"
+msgstr "Plessey"
+
+#: ../src/bc.c:364
+msgid "IEC16022 (DataMatrix)"
+msgstr ""
+
+#: ../src/bc.c:371
+msgid "IEC18004 (QRCode)"
+msgstr ""
+
+#: ../src/color-combo-button.c:198 ../src/color-combo.c:178
+#, fuzzy
+msgid "Default Color"
 msgstr "Defaŭlto"
 
-#: src/ui-property-bar.c:360 src/object-editor.c:512
-msgid "No fill"
-msgstr "Neniu Plenigo"
+#: ../src/color-combo-menu.c:83
+#, fuzzy
+msgid "Dark Red"
+msgstr "malhela ruĝo"
 
-#: src/ui-property-bar.c:375 src/object-editor.c:505
-msgid "No line"
-msgstr "Neniu Linio"
+#: ../src/color-combo-menu.c:84
+msgid "Brown"
+msgstr ""
 
-#: src/ui-sidebar.c:180
-msgid "Object properties"
-msgstr "Ecoj de objekto"
+#: ../src/color-combo-menu.c:85
+msgid "Dark Goldenrod"
+msgstr ""
 
-#: src/commands.c:385
-msgid ""
-"A label and business card creation program for GNOME.\n"
-" \n"
-"Glabels is free software; you can redistribute it and/or modify it under the "
-"terms of the GNU General Public License as published by the Free Software "
-"Foundation; either version 2 of the License, or (at your option) any later "
-"version.\n"
-" \n"
-"This program is distributed in the hope that it will be useful, but WITHOUT "
-"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or "
-"FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for "
-"more details.\n"
-msgstr ""
-
-#: src/commands.c:399
-msgid "See the file AUTHORS for additional credits,"
-msgstr "Vidigu la dosieron nomitan AUTHORS por pluaj informoj,"
+#: ../src/color-combo-menu.c:86
+#, fuzzy
+msgid "Dark Green"
+msgstr "malhela verdo"
 
-#: src/commands.c:400
-msgid "or visit http://glabels.sourceforge.net/"
-msgstr "aŭ vizitu http://glabels.sourceforge.net/"
+#: ../src/color-combo-menu.c:87
+msgid "Dark Cyan"
+msgstr ""
 
-#: src/commands.c:409
-msgid " "
-msgstr " "
+#: ../src/color-combo-menu.c:88
+msgid "Navy Blue"
+msgstr ""
 
-#: src/commands.c:424
-msgid "glabels"
-msgstr "glabels"
+#: ../src/color-combo-menu.c:89
+#, fuzzy
+msgid "Dark Violet"
+msgstr "malhela bluo"
 
-#: src/file.c:100
-msgid "New Label or Card"
-msgstr "Nova Etikedo aŭ Karto"
+#: ../src/color-combo-menu.c:91
+#, fuzzy
+msgid "Red"
+msgstr "Refaru"
 
-#: src/file.c:132 src/file.c:304
-msgid "Media Type"
-msgstr "Speco de plurmedio"
+#: ../src/color-combo-menu.c:92
+#, fuzzy
+msgid "Orange"
+msgstr "oranĝa koloro"
 
-#: src/file.c:138 src/file.c:310
-msgid "Label orientation"
-msgstr "Orientado de etikedo"
+#: ../src/color-combo-menu.c:93
+msgid "Dark Yellow"
+msgstr ""
+
+#: ../src/color-combo-menu.c:94
+#, fuzzy
+msgid "Medium green"
+msgstr "nebrila verdo"
+
+#: ../src/color-combo-menu.c:95
+msgid "Turquoise"
+msgstr ""
+
+#: ../src/color-combo-menu.c:96
+#, fuzzy
+msgid "Blue"
+msgstr "bluo"
+
+#: ../src/color-combo-menu.c:97
+#, fuzzy
+msgid "Purple"
+msgstr "violo"
+
+#: ../src/color-combo-menu.c:99
+msgid "Salmon"
+msgstr ""
+
+#: ../src/color-combo-menu.c:100
+#, fuzzy
+msgid "Gold"
+msgstr "oro"
+
+#: ../src/color-combo-menu.c:101
+#, fuzzy
+msgid "Yellow"
+msgstr "flavo"
+
+#: ../src/color-combo-menu.c:102
+#, fuzzy
+msgid "Green"
+msgstr "verdo"
+
+#: ../src/color-combo-menu.c:103
+#, fuzzy
+msgid "Cyan"
+msgstr "cejano"
+
+#: ../src/color-combo-menu.c:104
+#, fuzzy
+msgid "SkyBlue"
+msgstr "ĉielbluo"
+
+#: ../src/color-combo-menu.c:105
+msgid "Violet"
+msgstr ""
+
+#: ../src/color-combo-menu.c:107
+#, fuzzy
+msgid "Pink"
+msgstr "rozkoloro"
+
+#: ../src/color-combo-menu.c:108
+msgid "Khaki"
+msgstr ""
+
+#: ../src/color-combo-menu.c:109
+#, fuzzy
+msgid "Light Yellow"
+msgstr "hela flavo"
+
+#: ../src/color-combo-menu.c:110
+#, fuzzy
+msgid "Light Green"
+msgstr "hela verdo"
+
+#: ../src/color-combo-menu.c:111
+#, fuzzy
+msgid "Light Cyan"
+msgstr "hela cejano"
+
+#: ../src/color-combo-menu.c:112
+msgid "Slate Gray"
+msgstr ""
+
+#: ../src/color-combo-menu.c:113
+#, fuzzy
+msgid "Thistle"
+msgstr "blanko"
+
+#: ../src/color-combo-menu.c:115
+#, fuzzy
+msgid "White"
+msgstr "blanko"
+
+#: ../src/color-combo-menu.c:117
+#, no-c-format
+msgid "10% Gray"
+msgstr ""
+
+#: ../src/color-combo-menu.c:119
+#, no-c-format
+msgid "25% Gray"
+msgstr ""
+
+#: ../src/color-combo-menu.c:121
+#, no-c-format
+msgid "40% Gray"
+msgstr ""
 
-#: src/file.c:269
+#: ../src/color-combo-menu.c:123
+#, no-c-format
+msgid "50% Gray"
+msgstr ""
+
+#: ../src/color-combo-menu.c:125
+#, no-c-format
+msgid "60% Gray"
+msgstr ""
+
+#: ../src/color-combo-menu.c:126
+#, fuzzy
+msgid "Black"
+msgstr "nigro"
+
+#: ../src/color-combo-menu.c:254 ../src/color-combo-menu.c:373
+#, fuzzy
+msgid "Custom Color"
+msgstr "Personigita Koloro:"
+
+#: ../src/color-combo-menu.c:319
+#, fuzzy, c-format
+msgid "Custom Color #%u"
+msgstr "Personigita Koloro:"
+
+#: ../src/critical-error-handler.c:70
+msgid "gLabels Fatal Error!"
+msgstr ""
+
+#: ../src/file.c:84
+msgid "New Label or Card"
+msgstr "Nova Etikedo aŭ Karto"
+
+#: ../src/file.c:175 ../src/label.c:587 ../src/label.c:631
 msgid "Label properties"
 msgstr "Ecoj de etikedo"
 
-#: src/file.c:452 src/file.c:870
+#: ../src/file.c:267 ../src/file.c:557
 msgid "All files"
 msgstr "Ĉiuj dosieroj"
 
-#: src/file.c:457 src/file.c:875
+#: ../src/file.c:272 ../src/file.c:562
 msgid "gLabels documents"
 msgstr "Dokumentoj de gLabels"
 
-#: src/file.c:505 src/file.c:617 src/file.c:934 src/file.c:1130
+#: ../src/file.c:319 ../src/file.c:620
 msgid "Empty file name selection"
 msgstr "Elektado de nomon de vakua dosiero"
 
-#: src/file.c:506 src/file.c:520 src/file.c:618 src/file.c:632
+#: ../src/file.c:322 ../src/file.c:338
 msgid "Please select a file or supply a valid file name"
 msgstr "Bonvolu indiki dosieron aŭ validan dosiernomon"
 
-#: src/file.c:519 src/file.c:631
+#: ../src/file.c:335
 msgid "File does not exist"
 msgstr "la dosiero ne ekzistas"
 
-#: src/file.c:563 data/ui/glabels-ui.xml.h:74
-msgid "Open"
-msgstr "Malfermu"
-
-#: src/file.c:565
-msgid "Open label"
-msgstr "Malfermu etikedon"
-
-#: src/file.c:707
+#: ../src/file.c:410
 #, c-format
 msgid "Could not open file \"%s\""
 msgstr "Estas neeble malfermi dosieron \"%s\""
 
-#: src/file.c:715
+#: ../src/file.c:413
 msgid "Not a supported file format"
 msgstr "La formato de dosiero ne estas subtenita"
 
-#: src/file.c:797 src/file.c:979 src/file.c:1174
+#: ../src/file.c:491 ../src/file.c:670
 #, c-format
 msgid "Could not save file \"%s\""
 msgstr "estas neeble konservi dosieron \"%s\""
 
-#: src/file.c:805 src/file.c:987 src/file.c:1182
+#: ../src/file.c:495 ../src/file.c:674
 msgid "Error encountered during save.  The file is still not saved."
 msgstr "Eraro dum konservado. la dosiero ankoraŭ ne estas konservita."
 
-#: src/file.c:848 src/file.c:1048
+#: ../src/file.c:535
 #, c-format
 msgid "Save \"%s\" as"
 msgstr "Konservu \"%s\" kiel"
 
-#: src/file.c:935 src/file.c:1131
+#: ../src/file.c:623
 msgid "Please supply a valid file name"
 msgstr "Bonvolu indiki validan dosiernomon"
 
-#: src/file.c:952 src/file.c:1147
+#: ../src/file.c:644
 #, c-format
 msgid "Overwrite file \"%s\"?"
 msgstr "Ĉu mi devas anstataŭigi dosieron \"%s\"?"
 
-#: src/file.c:960 src/file.c:1155
+#: ../src/file.c:648
 msgid "File already exists."
 msgstr "La dosiero jam ekzistas."
 
-#: src/file.c:1271
+#: ../src/file.c:744
 #, c-format
 msgid "Save changes to document \"%s\" before closing?"
-msgstr "Ĉu mi devas konservi la modifojn de la dokumento \"%s\" antaŭ ol fermi?"
+msgstr ""
+"Ĉu mi devas konservi la modifojn de la dokumento \"%s\" antaŭ ol fermi?"
 
-#: src/file.c:1279
+#: ../src/file.c:748
 msgid "Your changes will be lost if you don't save them."
 msgstr "La modifoj estos perditaj se oni ne konservas ilin."
 
-#: src/file.c:1282
+#: ../src/file.c:751
 msgid "Close without saving"
 msgstr "fermu sen konservi"
 
-#. Should not happen
-#: src/prefs.c:156 src/prefs.c:163 data/glade/prefs-dialog.glade.h:23
-#: data/glade/object-editor.glade.h:37
-msgid "points"
-msgstr "punktoj"
+#: ../src/font-combo-menu.c:137
+#, fuzzy
+msgid "Recent fonts"
+msgstr "Fre_ŝaj Dosieroj"
 
-#: src/prefs.c:158 data/glade/object-editor.glade.h:36
-#: data/glade/template-designer.glade.h:74
-msgid "inches"
-msgstr "coloj"
+#: ../src/font-combo-menu.c:152
+msgid "Proportional fonts"
+msgstr ""
 
-#: src/prefs.c:160
-msgid "mm"
-msgstr "mm"
+#: ../src/font-combo-menu.c:160
+msgid "Fixed-width fonts"
+msgstr ""
 
-#: src/prefs-dialog.c:248 data/glade/prefs-dialog.glade.h:22
-msgid "gLabels Preferences"
-msgstr "Agordoj de gLabels"
+#: ../src/font-combo-menu.c:168
+#, fuzzy
+msgid "All fonts"
+msgstr "Ĉiuj dosieroj"
 
 #.
-#. * Submenu: Order
+#. * Allow text samples to be localized.
+#. *
+#. * FIXME: if we could extract enough meta information from the fonts
+#. * themselves, perhaps rather than setting these globally for the
+#. * current locale, they could be unique to each font family.
 #.
-#: src/view.c:3574 data/ui/glabels-ui.xml.h:154
-msgid "_Order"
-msgstr "_Ordo"
+#: ../src/font-combo-menu-item.c:132
+msgctxt "Short sample text"
+msgid "Aa"
+msgstr ""
 
-#.
-#. * Submenu: Rotate/Flip
-#.
-#: src/view.c:3595 data/ui/glabels-ui.xml.h:160
-msgid "_Rotate/Flip"
-msgstr "_Rotacio/Renverso"
+#: ../src/font-combo-menu-item.c:134
+msgctxt "Lower case sample text"
+msgid "abcdefghijklmnopqrstuvwxyz"
+msgstr ""
 
-#.
-#. * Submenu: Align Horizontally
-#.
-#: src/view.c:3628
-msgid "Align _Horizontally"
-msgstr "Laŭlinnigu _Horizontale"
+#: ../src/font-combo-menu-item.c:136
+msgctxt "Upper case sample text"
+msgid "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr ""
 
-#.
-#. * Submenu: Align Vertically
-#.
-#: src/view.c:3667
-msgid "Align _Vertically"
-msgstr "Laŭlinnigu _Verticale"
+#: ../src/font-combo-menu-item.c:138
+msgctxt "Numbers and special characters sample text"
+msgid "0123456789 .:,;(*!?)"
+msgstr ""
 
-#: src/view.c:3728 data/ui/glabels-ui.xml.h:137
-msgid "_Delete"
-msgstr "_Forigu"
+#: ../src/font-combo-menu-item.c:157
+msgid "Sample text"
+msgstr ""
 
-#. Build editor.
-#: src/view-box.c:224
-msgid "Box object properties"
-msgstr "Ecoj de Fako"
+#: ../src/glabels-batch.c:53
+#, fuzzy
+msgid "set output filename (default=\"output.pdf\")"
+msgstr "agordu dosiernomon de eligo (defaŭlte \"output.ps\")"
 
-#. Build editor.
-#: src/view-ellipse.c:224
-msgid "Ellipse object properties"
-msgstr "Ecoj de Elipso"
+#: ../src/glabels-batch.c:53 ../src/glabels-batch.c:67
+msgid "filename"
+msgstr "dosiernomo"
 
-#. Build editor.
-#: src/view-line.c:224
-msgid "Line object properties"
-msgstr "Ecoj de Linio"
+#: ../src/glabels-batch.c:55
+msgid "number of sheets (default=1)"
+msgstr "nombro da folioj (defaŭlte 1)"
 
-#. Build editor.
-#: src/view-image.c:223
-msgid "Image object properties"
-msgstr "Ecoj de Bildo"
+#: ../src/glabels-batch.c:55
+msgid "sheets"
+msgstr "folioj"
 
-#. Build editor.
-#: src/view-text.c:251
-msgid "Text object properties"
-msgstr "Ecoj de Teksto"
+#: ../src/glabels-batch.c:57
+msgid "number of copies (default=1)"
+msgstr "nombro da ekzempleroj (defaŭlte 1)"
 
-#: src/view-text.c:563 data/glade/object-editor.glade.h:28
-msgid "Text"
-msgstr "Teksto"
+#: ../src/glabels-batch.c:57
+msgid "copies"
+msgstr "ekzempleroj"
 
-#. Build editor.
-#: src/view-barcode.c:210
-msgid "Barcode object properties"
+#: ../src/glabels-batch.c:59
+msgid "first label on first sheet (default=1)"
+msgstr "unua etikedo de unua folio (defaŭlte 1)"
+
+#: ../src/glabels-batch.c:59
+msgid "first"
+msgstr "unua"
+
+#: ../src/glabels-batch.c:61 ../data/ui/print-op-dialog-custom-widget.ui.h:13
+msgid "print outlines (to test printer alignment)"
+msgstr "presu konturojn (por testi alliniĝon de la printilo)"
+
+#: ../src/glabels-batch.c:63 ../data/ui/print-op-dialog-custom-widget.ui.h:12
+msgid "print in reverse (i.e. a mirror image)"
+msgstr "presu inverse (ekz. iun spegulitan bildon)"
+
+#: ../src/glabels-batch.c:65 ../data/ui/print-op-dialog-custom-widget.ui.h:11
+msgid "print crop marks"
+msgstr "presu liniojn de tranĉo"
+
+#: ../src/glabels-batch.c:67
+msgid "input file for merging"
+msgstr "eniga dosiero por kunfandi"
+
+#: ../src/glabels-batch.c:69 ../src/glabels.c:64
+msgid "[FILE...]"
+msgstr ""
+
+#: ../src/glabels-batch.c:99
+msgid "Print files created with gLabels."
+msgstr ""
+
+#: ../src/glabels-batch.c:107 ../src/glabels.c:89
+#, c-format
+msgid ""
+"%s\n"
+"Run '%s --help' to see a full list of available command line options.\n"
+msgstr ""
+
+#: ../src/glabels-batch.c:151
+#, c-format
+msgid "cannot perform document merge with glabels file %s\n"
+msgstr "estas neeble kunfandi dokumentojn kun dosiero de glabels %s\n"
+
+#: ../src/glabels-batch.c:186
+#, c-format
+msgid "cannot open glabels file %s\n"
+msgstr "estas neeble malfermi dosieron de glabels %s\n"
+
+#: ../src/glabels.c:81
+msgid "Launch gLabels label and business card designer."
+msgstr ""
+
+#: ../src/label-barcode.c:154 ../src/ui.c:319
+msgid "Create barcode object"
+msgstr "Keu strekkodan objekton"
+
+#: ../src/label-barcode.c:227 ../src/label-barcode.c:389
+#, fuzzy
+msgid "Barcode data"
+msgstr "Strek_kodo"
+
+#: ../src/label-barcode.c:263
+#, fuzzy
+msgid "Barcode property"
 msgstr "Ecoj de Strekkodo"
 
-#: src/view-barcode.c:580 src/print.c:1089
+#: ../src/label-barcode.c:485
+msgid "Barcode data empty"
+msgstr ""
+
+#: ../src/label-barcode.c:489
 msgid "Invalid barcode data"
 msgstr "Nevalida strekkodo"
 
-#: src/merge-properties-dialog.c:231
-msgid "Merge Properties"
-msgstr "Ecoj de Kunfando"
+#: ../src/label-box.c:156
+#, fuzzy
+msgid "Create box object"
+msgstr "Kreu tekstan objekton"
 
-#. ---- Source section ----
-#: src/merge-properties-dialog.c:237
-msgid "Source"
-msgstr "Fonto"
+#: ../src/label-box.c:230 ../src/label-ellipse.c:232 ../src/stock.c:93
+#: ../data/ui/property-bar.ui.h:3
+msgid "Fill color"
+msgstr "Koloro de plenigo"
 
-#: src/merge-properties-dialog.c:245
-msgid "Format:"
-msgstr "Formato:"
+#: ../src/label-box.c:261 ../src/label-ellipse.c:261 ../src/label-line.c:212
+#: ../src/stock.c:94 ../data/ui/property-bar.ui.h:8
+msgid "Line color"
+msgstr "Koloro de linio"
 
-#. Location line
-#: src/merge-properties-dialog.c:273
-msgid "Location:"
-msgstr "Lokiĝo:"
+#: ../src/label-box.c:289 ../src/label-ellipse.c:290 ../src/label-line.c:241
+#: ../data/ui/property-bar.ui.h:9
+msgid "Line width"
+msgstr "Larĝo de linio"
 
-#: src/merge-properties-dialog.c:282 src/merge-properties-dialog.c:393
-msgid "Select merge-database source"
-msgstr "Elektu fonton de kunfand-datumbazo"
+#: ../src/label.c:402
+msgid "Untitled"
+msgstr "Sen nomo"
 
-#: src/merge-properties-dialog.c:289 src/merge-properties-dialog.c:404
-msgid "N/A"
-msgstr "N/A"
+#: ../src/label.c:705 ../src/ui.c:422
+#, fuzzy
+msgid "Merge properties"
+msgstr "Ecoj de Kunfando"
 
-#. ---- Sample Fields section ----
-#: src/merge-properties-dialog.c:300
-msgid "Record selection/preview:"
-msgstr "Elektado/Antaŭmontro de rikordo:"
+#: ../src/label.c:1197 ../src/ui.c:215
+msgid "Delete"
+msgstr "Forigu"
 
-#: src/merge-properties-dialog.c:326
-msgid "Select"
-msgstr "Elektu"
+#: ../src/label.c:1230 ../src/ui.c:324
+#, fuzzy
+msgid "Bring to front"
+msgstr "Portu _Fronten"
 
-#: src/merge-properties-dialog.c:334
-msgid "Record/Field"
-msgstr "Rikordo/Kampo"
+#: ../src/label.c:1266 ../src/ui.c:331
+#, fuzzy
+msgid "Send to back"
+msgstr "_Sendu Malantaŭen"
 
-#: src/merge-properties-dialog.c:342 data/glade/object-editor.glade.h:9
-msgid "Data"
-msgstr "Datumoj"
+#: ../src/label.c:1307
+msgid "Rotate"
+msgstr "Rotacio"
 
-#: src/print-dialog.c:266 data/ui/glabels-ui.xml.h:81
-msgid "Print"
-msgstr "Presu"
+#: ../src/label.c:1342 ../src/ui.c:338
+#, fuzzy
+msgid "Rotate left"
+msgstr "Turnu _Maldekstren"
 
-#: src/print-dialog.c:281
-msgid "_Job"
-msgstr "_Laboro"
+#: ../src/label.c:1375 ../src/ui.c:345
+#, fuzzy
+msgid "Rotate right"
+msgstr "Turnu _Dekstren"
 
-#: src/print-dialog.c:286
-msgid "P_rinter"
-msgstr "P_rintilo"
+#: ../src/label.c:1410 ../src/ui.c:352
+#, fuzzy
+msgid "Flip horizontally"
+msgstr "Renversu _Horizontale"
 
-#. ----------- Add simple-copies widget ------------
-#: src/print-dialog.c:314
-msgid "Copies"
-msgstr "Ekzempleroj"
+#: ../src/label.c:1445 ../src/ui.c:359
+#, fuzzy
+msgid "Flip vertically"
+msgstr "Renversu _Vertikale"
 
-#. ------- Add merge control widget ------------
-#: src/print-dialog.c:322
-msgid "Document merge control"
-msgstr "Kontrolo de kunfando de dokumento"
+#: ../src/label.c:1485 ../src/ui.c:366
+#, fuzzy
+msgid "Align left"
+msgstr "Alliniĝo:"
 
-#. ----------- Add custom print options area ------------
-#: src/print-dialog.c:330
-msgid "Options"
-msgstr "Opcioj"
+#: ../src/label.c:1542 ../src/ui.c:373
+#, fuzzy
+msgid "Align right"
+msgstr "Laŭlinnigu _Horizontale"
 
-#: src/print-dialog.c:553 src/print-dialog.c:592
-msgid "Print preview"
-msgstr "Antaŭmontro de presado"
+#: ../src/label.c:1603 ../src/ui.c:380
+#, fuzzy
+msgid "Align horizontal center"
+msgstr "Laŭlinnigu objektojn laŭ horizontala centro"
 
-#: src/template-designer.c:409 data/glade/template-designer.glade.h:73
-msgid "gLabels Template Designer"
-msgstr "Desegnilo de modeloj por gLabels"
+#: ../src/label.c:1679 ../src/ui.c:387
+#, fuzzy
+msgid "Align tops"
+msgstr "Laŭlinnigu objektojn supre"
 
-#: src/bc.c:60
-msgid "POSTNET (any)"
-msgstr "POSTNET (iu ajn)"
+#: ../src/label.c:1736 ../src/ui.c:394
+#, fuzzy
+msgid "Align bottoms"
+msgstr "Laŭlinnigu objektojn sube"
 
-#: src/bc.c:63
-msgid "POSTNET-5 (ZIP only)"
-msgstr "POSTNET-5 (nur ZIP/CAP)"
+#: ../src/label.c:1797 ../src/ui.c:401
+#, fuzzy
+msgid "Align vertical center"
+msgstr "Laŭliniigu objektojn laŭ verticala centro"
 
-#: src/bc.c:66
-msgid "POSTNET-9 (ZIP+4)"
-msgstr "POSTNET-9 (ZIP/CAP+4)"
+#: ../src/label.c:1875 ../src/ui.c:408
+#, fuzzy
+msgid "Center horizontally"
+msgstr "Renversu objekton horizontale"
 
-#: src/bc.c:69
-msgid "POSTNET-11 (DPBC)"
-msgstr "POSTNET-11 (DPBC)"
+#: ../src/label.c:1922 ../src/ui.c:415
+#, fuzzy
+msgid "Center vertically"
+msgstr "Renversu objekton vertikale"
 
-#: src/bc.c:72
-msgid "EAN (any)"
-msgstr "EAN (iu ajn)"
+#: ../src/label.c:2610 ../src/label.c:2652 ../src/label.c:2678 ../src/ui.c:208
+msgid "Paste"
+msgstr "Enmetu"
 
-#: src/bc.c:75
-msgid "EAN-8"
-msgstr "EAN-8"
+#: ../src/label-ellipse.c:160
+#, fuzzy
+msgid "Create ellipse object"
+msgstr "Kreu linian objekton"
+
+#: ../src/label-image.c:200 ../src/ui.c:312
+msgid "Create image object"
+msgstr "Kreu bildan objekton"
+
+#: ../src/label-image.c:333 ../src/label-image.c:474
+#, fuzzy
+msgid "Set image"
+msgstr "Restarigu grandon de bildo"
+
+#: ../src/label-line.c:147 ../src/ui.c:298
+msgid "Create line object"
+msgstr "Kreu linian objekton"
 
-#: src/bc.c:78
-msgid "EAN-8 +2"
-msgstr "EAN-8 +2"
+#: ../src/label-object.c:383 ../src/label-object.c:416
+msgid "Move"
+msgstr ""
 
-#: src/bc.c:81
-msgid "EAN-8 +5"
-msgstr "EAN-8 +5"
+#: ../src/label-object.c:467
+#, fuzzy
+msgid "Resize"
+msgstr "Grando de paĝo:"
 
-#: src/bc.c:84
-msgid "EAN-13"
-msgstr "EAN-13"
+#: ../src/label-object.c:1185
+msgid "Shadow state"
+msgstr ""
 
-#: src/bc.c:87
-msgid "EAN-13 +2"
-msgstr "EAN-13 +2"
+#: ../src/label-object.c:1228
+msgid "Shadow offset"
+msgstr ""
 
-#: src/bc.c:90
-msgid "EAN-13 +5"
-msgstr "EAN-13 +5"
+#: ../src/label-object.c:1276
+msgid "Shadow color"
+msgstr ""
 
-#: src/bc.c:93
-msgid "UPC (UPC-A or UPC-E)"
-msgstr "UPC (UPC-A aŭ UPC-E)"
+#: ../src/label-object.c:1319
+msgid "Shadow opacity"
+msgstr ""
 
-#: src/bc.c:96
-msgid "UPC-A"
-msgstr "UPC-A"
+#: ../src/label-text.c:279 ../src/ui.c:284
+msgid "Create text object"
+msgstr "Kreu tekstan objekton"
 
-#: src/bc.c:99
-msgid "UPC-A +2"
-msgstr "UPC-A +2"
+#: ../src/label-text.c:451
+#, fuzzy
+msgid "Typing"
+msgstr "rozkoloro"
 
-#: src/bc.c:102
-msgid "UPC-A +5"
-msgstr "UPC-A +5"
+#: ../src/label-text.c:584 ../data/ui/property-bar.ui.h:4
+#, fuzzy
+msgid "Font family"
+msgstr "Nomo de tiparo"
 
-#: src/bc.c:105
-msgid "UPC-E"
-msgstr "UPC-E"
+#: ../src/label-text.c:622 ../data/ui/property-bar.ui.h:5
+msgid "Font size"
+msgstr "Tipargrando"
 
-#: src/bc.c:108
-msgid "UPC-E +2"
-msgstr "UPC-E +2"
+#: ../src/label-text.c:655
+#, fuzzy
+msgid "Font weight"
+msgstr "Nomo de tiparo"
 
-#: src/bc.c:111
-msgid "UPC-E +5"
-msgstr "UPC-E +5"
+#: ../src/label-text.c:688 ../data/ui/property-bar.ui.h:6
+msgid "Italic"
+msgstr "Kursivo"
 
-#: src/bc.c:114
-msgid "ISBN"
-msgstr "ISBN"
+#: ../src/label-text.c:721
+#, fuzzy
+msgid "Align text"
+msgstr "Alliniĝo:"
 
-#: src/bc.c:117
-msgid "ISBN +5"
-msgstr "ISBN +5"
+#: ../src/label-text.c:754
+#, fuzzy
+msgid "Line spacing"
+msgstr "Interspaco:"
 
-#: src/bc.c:120
-msgid "Code 39"
-msgstr "Kodo 39"
+#: ../src/label-text.c:787 ../data/ui/property-bar.ui.h:11
+msgid "Text color"
+msgstr "Koloro de teksto"
 
-#: src/bc.c:123
-msgid "Code 128"
-msgstr "Kodo 128"
+#: ../src/label-text.c:931
+msgid "Auto shrink"
+msgstr ""
 
-#: src/bc.c:126
-msgid "Code 128C"
-msgstr "Kodo 128C"
+#: ../src/media-select.c:349 ../src/media-select.c:353
+#: ../src/media-select.c:502 ../src/media-select.c:701
+msgctxt "Brand"
+msgid "Any"
+msgstr ""
 
-#: src/bc.c:129
-msgid "Code 128B"
-msgstr "Kodo 128B"
+#: ../src/media-select.c:358 ../src/media-select.c:871
+msgctxt "Page size"
+msgid "Any"
+msgstr ""
 
-#: src/bc.c:132
-msgid "Interleaved 2 of 5"
-msgstr "Interleaved 2 of 5"
+#: ../src/media-select.c:367 ../src/media-select.c:370
+#: ../src/media-select.c:880
+msgctxt "Category"
+msgid "Any"
+msgstr ""
 
-#: src/bc.c:135
-msgid "Codabar"
-msgstr "Codabar"
+#: ../src/media-select.c:968
+#, fuzzy
+msgid "No recent templates found."
+msgstr "Neniu modelo estis trovita!"
 
-#: src/bc.c:138
-msgid "MSI"
-msgstr "MSI"
+#: ../src/media-select.c:970
+msgid "Try selecting a template in the \"Search all\" tab."
+msgstr ""
 
-#: src/bc.c:141
-msgid "Plessey"
-msgstr "Plessey"
+#. Translators: "No match" means that for the given template search criteria, there
+#. * were no matches found.
+#: ../src/media-select.c:1061
+msgid "No match."
+msgstr ""
 
-#: src/label.c:569
-msgid "Untitled"
-msgstr "Sen nomo"
+#: ../src/media-select.c:1063
+msgid "Try selecting a different brand, page size or category."
+msgstr ""
 
-#: src/xml-label.c:176 src/xml-label.c:213
-msgid "xmlParseFile error"
-msgstr "Eraro de xml-dosiero de sintaksa analizo"
+#: ../src/media-select.c:1157
+#, fuzzy
+msgid "No custom templates found."
+msgstr "Neniu modelo estis trovita!"
 
-#: src/xml-label.c:250
-msgid "No document root"
-msgstr "Neniu radika dokumento"
+#: ../src/media-select.c:1159
+msgid ""
+"You may create new templates or try searching for pre-defined templates in "
+"the \"Search all\" tab."
+msgstr ""
 
-#: src/xml-label.c:264
-msgid "Importing from glabels 0.1 format"
-msgstr "Importante el formato de glabels 0.1"
+#. Translators: "None" here means that no document-merge source or
+#. * method has been selected.
+#: ../src/merge.c:171 ../src/merge.c:212 ../src/merge.c:376 ../src/merge.c:379
+msgid "None"
+msgstr "Nenio"
 
-#: src/xml-label.c:272
-msgid "Importing from glabels 0.4 format"
-msgstr "Importante el formato de glabels 0.4"
+#: ../src/merge-evolution.c:316
+msgid "Couldn't construct query"
+msgstr ""
 
-#: src/xml-label.c:279
-msgid "Importing from glabels 1.91 format"
-msgstr "Importante el formato de glabels 1.91"
+#: ../src/merge-evolution.c:322 ../src/merge-evolution.c:333
+#, fuzzy
+msgid "Couldn't open addressbook."
+msgstr "Estas neeble malfermi dosieron \"%s\""
 
-#: src/xml-label.c:282
-msgid "bad document, unknown glabels Namespace"
-msgstr "Nekorekta dokumento, nekonata Nomospaco de glabels"
+#: ../src/merge-evolution.c:348
+#, fuzzy
+msgid "Couldn't list available fields."
+msgstr "estas neeble konservi dosieron \"%s\""
 
-#: src/xml-label.c:311 src/xml-label-04.c:75 src/xml-label-191.c:131
-#, c-format
-msgid "Bad root node = \"%s\""
-msgstr "Nekorekta radika nodo = \"%s\""
+#: ../src/merge-evolution.c:384
+msgid "Couldn't get contacts."
+msgstr ""
 
-#: src/xml-label.c:348 src/xml-label-191.c:165
-#, c-format
-msgid "bad node in Document node =  \"%s\""
-msgstr "nekorekta nodo en nodo de Dokumeto = \"%s\""
+#: ../src/merge-init.c:57
+msgid "Text: Comma Separated Values (CSV)"
+msgstr ""
 
-#: src/xml-label.c:393 src/xml-label-04.c:123 src/xml-label-191.c:197
-#, c-format
-msgid "bad node =  \"%s\""
-msgstr "nekorekta nodo = \"%s\""
+#: ../src/merge-init.c:64
+msgid "Text: Comma Separated Values (CSV) with keys on line 1"
+msgstr ""
 
-#: src/xml-label.c:796 src/xml-label-191.c:605
-#, c-format
-msgid "bad node in Data node =  \"%s\""
-msgstr "nekorekta nodo en nodo de Datumoj = \"%s\""
+#: ../src/merge-init.c:72
+msgid "Text: Tab Separated Values (TSV)"
+msgstr ""
 
-#: src/xml-label.c:962 libglabels/xml-template.c:535
-msgid "Utf8 conversion error."
-msgstr "eraro de konvertado en Utf8."
+#: ../src/merge-init.c:79
+msgid "Text: Tab Separated Values (TSV) with keys on line 1"
+msgstr ""
 
-#: src/xml-label.c:969 libglabels/xml-template.c:542
-msgid "Problem saving xml file."
-msgstr "Problemo laŭ konservo de xml-dosiero"
+#: ../src/merge-init.c:87
+msgid "Text: Colon separated values"
+msgstr ""
 
-#. This should always be an id, but just in case a name
-#. slips by!
-#: src/xml-label-191.c:680 libglabels/xml-template.c:199
-#, c-format
-msgid "Unknown page size id \"%s\", trying as name"
-msgstr "Nekonata id \"%s\" de grando de paĝo, provante kiel nomo"
+#: ../src/merge-init.c:94
+msgid "Text: Colon separated values with keys on line 1"
+msgstr ""
 
-#: src/xml-label-191.c:690 libglabels/xml-template.c:209
-#, c-format
-msgid "Unknown page size id or name \"%s\""
-msgstr "Nekonata id de (paĝo)grando aŭ de nomo \"%s\""
+#: ../src/merge-init.c:102
+msgid "Text: Semicolon separated values"
+msgstr ""
 
-#: src/merge.c:172 src/merge.c:213 src/merge.c:399 src/merge.c:402
-msgid "None"
-msgstr "Nenio"
+#: ../src/merge-init.c:109
+msgid "Text: Semicolon separated values with keys on line 1"
+msgstr ""
+
+#: ../src/merge-init.c:119
+msgid "Evolution Addressbook"
+msgstr ""
 
-#: src/merge-init.c:53
-msgid "Text file with comma delimeters (CSV)"
-msgstr "Teksta dosiero kun komo kiel disigilo (CSV)"
+#: ../src/merge-init.c:125
+msgid "VCards"
+msgstr ""
 
-#: src/merge-init.c:60
-msgid "Text file with colon delimeters"
-msgstr "Teksta dosiero kun komo kiel disigilo"
+#: ../src/merge-properties-dialog.c:282
+msgid "Merge Properties"
+msgstr "Ecoj de Kunfando"
 
-#: src/merge-init.c:67
-msgid "Text file with tab delimeters"
-msgstr "Teksta dosiero kun TAB kiel disigilo"
+#: ../src/merge-properties-dialog.c:308 ../src/merge-properties-dialog.c:424
+msgid "Select merge-database source"
+msgstr "Elektu fonton de kunfand-datumbazo"
 
-#: src/wdgt-image-select.c:201 data/glade/object-editor.glade.h:11
-msgid "File:"
-msgstr "Dosiero:"
+#: ../src/merge-properties-dialog.c:319 ../src/merge-properties-dialog.c:450
+msgid "N/A"
+msgstr "N/A"
 
-#: src/wdgt-image-select.c:245 data/glade/object-editor.glade.h:16
-msgid "Key:"
-msgstr "Ŝlosilo:"
+#: ../src/merge-properties-dialog.c:345
+msgid "Select"
+msgstr "Elektu"
 
-#: src/wdgt-print-copies.c:179
-msgid "Sheets:"
-msgstr "Folioj:"
+#: ../src/merge-properties-dialog.c:352
+msgid "Record/Field"
+msgstr "Rikordo/Kampo"
 
-#: src/wdgt-print-copies.c:197
-msgid "Labels"
-msgstr "Etikedoj"
+#: ../src/merge-properties-dialog.c:360 ../data/ui/object-editor.ui.h:8
+msgid "Data"
+msgstr "Datumoj"
 
-#: src/wdgt-print-copies.c:200
-msgid "from:"
-msgstr "de:"
+#. Translators: "Fixed" here means that for the given document-merge method, there are
+#. * no further choices to further define the source of data.  E.g. if you select the
+#. * evolution-data-server, there are no further choices -- the source is "Fixed."
+#.
+#: ../src/merge-properties-dialog.c:443
+#, fuzzy
+msgid "Fixed"
+msgstr "Dosiero:"
 
-#: src/wdgt-print-copies.c:207
-msgid "to:"
-msgstr "ĝis:"
+#. Translators: "Up" refers to the direction towards the top of a label.
+#: ../src/mini-preview.c:1074
+msgid "Up"
+msgstr ""
 
-#: src/wdgt-print-merge.c:178
-msgid "Start on label"
-msgstr "Starto en etikedo"
+#: ../src/new-label-dialog.c:203
+#, fuzzy
+msgid "Select Product"
+msgstr "Modu_so de Elektado"
 
-#: src/wdgt-print-merge.c:186
-msgid "on 1st sheet"
-msgstr "en 1a folio"
+#: ../src/new-label-dialog.c:215
+#, fuzzy
+msgid "Choose Orientation"
+msgstr "Orientado de etikedo"
 
-#: src/wdgt-print-merge.c:195
-msgid "Copies:"
-msgstr "Ekzempleroj:"
+#: ../src/new-label-dialog.c:229
+msgid "Review"
+msgstr ""
 
-#: src/wdgt-print-merge.c:201
-msgid "Collate"
-msgstr "Laŭkajere"
+#: ../src/object-editor-bc-page.c:93 ../src/object-editor-shadow-page.c:93
+#: ../src/object-editor-text-page.c:97 ../src/prefs-dialog.c:339
+#: ../src/ui-property-bar.c:280
+msgid "Default"
+msgstr "Defaŭlto"
 
-#: src/wdgt-media-select.c:269 data/glade/template-designer.glade.h:29
-msgid "Description:"
-msgstr "Priskribo:"
+#: ../src/object-editor.c:159 ../src/object-editor.c:460
+msgid "Object properties"
+msgstr "Ecoj de objekto"
 
-#: src/wdgt-media-select.c:279 data/glade/template-designer.glade.h:53
-msgid "Page size:"
-msgstr "Grando de paĝo:"
+#: ../src/object-editor.c:309
+msgid "Box object properties"
+msgstr "Ecoj de Fako"
 
-#: src/wdgt-media-select.c:290
-msgid "Label size:"
-msgstr "Grando de etikedo:"
+#: ../src/object-editor.c:328
+msgid "Ellipse object properties"
+msgstr "Ecoj de Elipso"
 
-#: src/wdgt-media-select.c:301
-msgid "Layout:"
-msgstr "Aspekto:"
+#: ../src/object-editor.c:347
+msgid "Line object properties"
+msgstr "Ecoj de Linio"
 
-#: src/wdgt-media-select.c:578
-#, c-format
-msgid "%d x %d  (%d per sheet)"
-msgstr "%d x %d  (%d por folio)"
+#: ../src/object-editor.c:364
+msgid "Image object properties"
+msgstr "Ecoj de Bildo"
 
-#: src/wdgt-media-select.c:582
-#, c-format
-msgid "%d per sheet"
-msgstr "%d por folio"
+#: ../src/object-editor.c:381
+msgid "Text object properties"
+msgstr "Ecoj de Teksto"
 
-#: src/wdgt-media-select.c:614
-#, c-format
-msgid "%s x %s %s"
-msgstr "%s x %s %s"
+#: ../src/object-editor.c:403
+msgid "Barcode object properties"
+msgstr "Ecoj de Strekkodo"
 
-#: src/wdgt-media-select.c:619
-#, c-format
-msgid "%.5g x %.5g %s"
-msgstr "%.5g x %.5g %s"
+#: ../src/object-editor-edit-page.c:76
+msgid "Insert merge field"
+msgstr "Enigu campon de kunfando"
 
-#: src/wdgt-media-select.c:630 src/wdgt-media-select.c:644
-#, c-format
-msgid "%s %s diameter"
-msgstr "%s %s diametro"
+#: ../src/object-editor-fill-page.c:79 ../src/prefs-dialog.c:345
+#: ../src/ui-property-bar.c:292
+#, fuzzy
+msgid "No Fill"
+msgstr "Neniu Plenigo"
 
-#: src/wdgt-media-select.c:634 src/wdgt-media-select.c:648
-#, c-format
-msgid "%.5g %s diameter"
-msgstr "%.5g %s diametro"
+#: ../src/object-editor-image-page.c:278
+#, fuzzy
+msgid "All Files"
+msgstr "Ĉiuj dosieroj"
 
-#: src/wdgt-rotate-label.c:193
-msgid "Rotate"
-msgstr "Rotacio"
+#: ../src/object-editor-image-page.c:283
+#, fuzzy
+msgid "All Images"
+msgstr "Bildo"
 
-#. This is the default custom color
-#: src/mygal/color-palette.c:396
-msgid "custom"
-msgstr "personigita"
+#: ../src/object-editor-image-page.c:298
+#, c-format
+msgid "%s (*.%s)"
+msgstr ""
 
-#. "Custom" color - we'll pop up a GnomeColorPicker
-#: src/mygal/color-palette.c:438
-msgid "Custom Color:"
-msgstr "Personigita Koloro:"
+#: ../src/object-editor-line-page.c:79 ../src/prefs-dialog.c:342
+#: ../src/ui-property-bar.c:304
+#, fuzzy
+msgid "No Line"
+msgstr "Neniu Linio"
 
-#: src/mygal/color-palette.c:446
-msgid "Choose Custom Color"
-msgstr "Elektu personigitan koloron"
+#: ../src/prefs-dialog.c:172 ../data/ui/prefs-dialog.ui.h:21
+msgid "gLabels Preferences"
+msgstr "Agordoj de gLabels"
 
-#: src/mygal/color-palette.c:579
-msgid "black"
-msgstr "nigro"
+#. ===================================================================
+#: ../src/print-op.c:205 ../src/print-op-dialog.c:217
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:4
+#: ../templates/misc-iso-templates.xml.h:34
+msgid "Labels"
+msgstr "Etikedoj"
 
-#: src/mygal/color-palette.c:580
-msgid "light brown"
-msgstr "hela bruna koloro"
+#: ../src/stock.c:70
+msgid "_Select Mode"
+msgstr "Modu_so de Elektado"
 
-#: src/mygal/color-palette.c:581
-msgid "brown gold"
-msgstr "malhela oro"
+#: ../src/stock.c:71
+msgid "_Text"
+msgstr "_Teksto"
 
-#: src/mygal/color-palette.c:582
-msgid "dark green #2"
-msgstr "malhela verdo #2"
+#: ../src/stock.c:72
+msgid "_Line"
+msgstr "_Linio"
 
-#: src/mygal/color-palette.c:583
-msgid "navy"
-msgstr "mararmea bluo"
+#: ../src/stock.c:73
+msgid "_Box"
+msgstr "_Fako"
 
-#: src/mygal/color-palette.c:584 src/mygal/color-palette.c:640
-msgid "dark blue"
-msgstr "malhela bluo"
+#: ../src/stock.c:74
+msgid "_Ellipse"
+msgstr "_Elipso"
 
-#: src/mygal/color-palette.c:585
-msgid "purple #2"
-msgstr "viola koloro #2"
+#: ../src/stock.c:75
+msgid "_Image"
+msgstr "_Bildo"
 
-#: src/mygal/color-palette.c:586
-msgid "very dark gray"
-msgstr "tre malhela grizo"
+#: ../src/stock.c:76
+msgid "Bar_code"
+msgstr "Strek_kodo"
 
-#: src/mygal/color-palette.c:589 src/mygal/color-palette.c:645
-msgid "dark red"
-msgstr "malhela ruĝo"
+#: ../src/stock.c:77
+msgid "_Merge Properties"
+msgstr "Ecoj de Ku_nfando"
 
-#: src/mygal/color-palette.c:590
-msgid "red-orange"
-msgstr "ruĝ-oranĝo"
+#: ../src/stock.c:78
+msgid "Object _Properties"
+msgstr "Ecoj de _Objekto"
 
-#: src/mygal/color-palette.c:591
-msgid "gold"
-msgstr "oro"
+#: ../src/stock.c:79
+msgid "Bring to _Front"
+msgstr "Portu _Fronten"
 
-#: src/mygal/color-palette.c:592
-msgid "dark green"
-msgstr "malhela verdo"
+#: ../src/stock.c:80
+msgid "Send to _Back"
+msgstr "_Sendu Malantaŭen"
 
-#: src/mygal/color-palette.c:593 src/mygal/color-palette.c:646
-msgid "dull blue"
-msgstr "nebrila bluo"
+#: ../src/stock.c:81
+msgid "Rotate _Left"
+msgstr "Turnu _Maldekstren"
 
-#: src/mygal/color-palette.c:594 src/mygal/color-palette.c:647
-msgid "blue"
-msgstr "bluo"
+#: ../src/stock.c:82
+msgid "Rotate _Right"
+msgstr "Turnu _Dekstren"
 
-#: src/mygal/color-palette.c:595
-msgid "dull purple"
-msgstr "nebrila violo"
+#: ../src/stock.c:83
+msgid "Flip _Horizontally"
+msgstr "Renversu _Horizontale"
 
-#: src/mygal/color-palette.c:596
-msgid "dark grey"
-msgstr "malhela grizo"
+#: ../src/stock.c:84
+msgid "Flip _Vertically"
+msgstr "Renversu _Vertikale"
 
-#: src/mygal/color-palette.c:599
-msgid "red"
-msgstr "ruĝo"
+#: ../src/stock.c:85
+msgid "_Lefts"
+msgstr "_Maldekstre"
 
-#: src/mygal/color-palette.c:600
-msgid "orange"
-msgstr "oranĝa koloro"
+#: ../src/stock.c:86
+msgid "_Rights"
+msgstr "_Dekstre"
 
-#: src/mygal/color-palette.c:601
-msgid "lime"
-msgstr "limeta koloro"
+#: ../src/stock.c:87
+msgid "_Centers"
+msgstr "_Centre"
 
-#: src/mygal/color-palette.c:602
-msgid "dull green"
-msgstr "nebrila verdo"
+#: ../src/stock.c:88
+msgid "_Tops"
+msgstr "_Supre"
 
-#: src/mygal/color-palette.c:603
-msgid "dull blue #2"
-msgstr "nebrila bluo #2"
+#: ../src/stock.c:89
+msgid "Bottoms"
+msgstr "Sube"
 
-#: src/mygal/color-palette.c:604
-msgid "sky blue #2"
-msgstr "ĉielbluo #2"
+#: ../src/stock.c:90
+msgid "Centers"
+msgstr "Centre"
 
-#: src/mygal/color-palette.c:605 src/mygal/color-palette.c:644
-msgid "purple"
-msgstr "violo"
+#: ../src/stock.c:91 ../src/stock.c:92
+msgid "Label Ce_nter"
+msgstr "Ce_ntrita Etikedo"
 
-#: src/mygal/color-palette.c:606
-msgid "gray"
-msgstr "grizo"
+#: ../src/stock.c:95 ../src/stock.c:97
+msgid "Linked"
+msgstr "Kunligita"
 
-#: src/mygal/color-palette.c:609 src/mygal/color-palette.c:641
-msgid "magenta"
-msgstr "intense karmezina"
+#: ../src/stock.c:96 ../src/stock.c:98
+msgid "Not Linked"
+msgstr "Neniu Kunligo"
 
-#: src/mygal/color-palette.c:610
-msgid "bright orange"
-msgstr "brila oranĝo"
+#: ../src/template-designer.c:404
+#, fuzzy
+msgid "New gLabels Template"
+msgstr "Desegnilo de modeloj por gLabels"
 
-#: src/mygal/color-palette.c:611 src/mygal/color-palette.c:642
-msgid "yellow"
-msgstr "flavo"
+#: ../src/template-designer.c:461
+msgid "Welcome"
+msgstr ""
 
-#: src/mygal/color-palette.c:612
-msgid "green"
-msgstr "verdo"
+#: ../src/template-designer.c:500
+msgid "Name and Description"
+msgstr "Nomo kaj Priskribo"
 
-#: src/mygal/color-palette.c:613 src/mygal/color-palette.c:643
-msgid "cyan"
-msgstr "cejano"
+#: ../src/template-designer.c:548
+msgid "Page Size"
+msgstr "Grando de paĝo"
 
-#: src/mygal/color-palette.c:614
-msgid "bright blue"
-msgstr "brila bluo"
+#: ../src/template-designer.c:614
+msgid "Label or Card Shape"
+msgstr "Formo de etikedo aŭ de karto"
 
-#: src/mygal/color-palette.c:615 src/mygal/color-palette.c:632
-msgid "red purple"
-msgstr "ruĝ-violo"
+#: ../src/template-designer.c:661
+#, fuzzy
+msgid "Label or Card Size"
+msgstr "Formo de etikedo aŭ de karto"
 
-#: src/mygal/color-palette.c:616
-msgid "light grey"
-msgstr "hela grizo"
+#: ../src/template-designer.c:760
+#, fuzzy
+msgid "Label Size (round)"
+msgstr "Grando de etikedo (Ronda)"
 
-#: src/mygal/color-palette.c:619 src/mygal/color-palette.c:636
-msgid "pink"
-msgstr "rozkoloro"
+#: ../src/template-designer.c:841
+msgid "Label Size (CD/DVD)"
+msgstr "Grando de etikedo (KD/DVD)"
 
-#: src/mygal/color-palette.c:620
-msgid "light orange"
-msgstr "hela oranĝo"
+#: ../src/template-designer.c:932
+msgid "Number of Layouts"
+msgstr "Nombro da Aspektoj"
 
-#: src/mygal/color-palette.c:621 src/mygal/color-palette.c:633
-msgid "light yellow"
-msgstr "hela flavo"
+#: ../src/template-designer.c:1000
+msgid "Layout(s)"
+msgstr "Aspekto(j)"
 
-#: src/mygal/color-palette.c:622
-msgid "light green"
-msgstr "hela verdo"
+#: ../src/template-designer.c:1105
+msgid "Design Completed"
+msgstr "Fino de Projektado"
 
-#: src/mygal/color-palette.c:623
-msgid "light cyan"
-msgstr "hela cejano"
+#: ../src/template-designer.c:1133
+#, fuzzy
+msgid "Edit gLabels Template"
+msgstr "Desegnilo de modeloj por gLabels"
 
-#: src/mygal/color-palette.c:624 src/mygal/color-palette.c:634
-msgid "light blue"
-msgstr "hela bluo"
+#: ../src/template-designer.c:1423
+msgid "Brand and part# match an existing template!"
+msgstr ""
 
-#: src/mygal/color-palette.c:625 src/mygal/color-palette.c:638
-msgid "light purple"
-msgstr "hela violo"
+#. Menu entries.
+#: ../src/ui.c:93
+msgid "_File"
+msgstr "_Dosiero"
 
-#: src/mygal/color-palette.c:626
-msgid "white"
-msgstr "blanko"
+#: ../src/ui.c:94
+#, fuzzy
+msgid "Open Recent _Files"
+msgstr "Fre_ŝaj Dosieroj"
 
-#: src/mygal/color-palette.c:631
-msgid "purplish blue"
-msgstr "viol-bluo"
+#: ../src/ui.c:95
+msgid "_Edit"
+msgstr "R_edaktu"
 
-#: src/mygal/color-palette.c:635
-msgid "dark purple"
-msgstr "malhela violo"
+#: ../src/ui.c:96
+msgid "_View"
+msgstr "_Videbligo"
 
-#: src/mygal/color-palette.c:637
-msgid "sky blue"
-msgstr "ĉielbluo"
+#: ../src/ui.c:97
+msgid "Customize Main Toolbar"
+msgstr "Personigu ĉefan ilarstangon"
 
-#: libglabels/template.c:848
-#, c-format
-msgid "Generic %s full page"
-msgstr "Ĝenerala %s plena paĝo"
+#: ../src/ui.c:98
+msgid "Customize Drawing Toolbar"
+msgstr "Personigu ilarstangon de desegno"
 
-#: libglabels/template.c:897
-msgid "No template files found!"
-msgstr "Neniu modelo estis trovita!"
+#: ../src/ui.c:99
+#, fuzzy
+msgid "Customize Properties Toolbar"
+msgstr "Personigu ilarstangon de ecoj"
 
-#. Create and append an "Other" entry.
-#: libglabels/paper.c:67
-msgid "Other"
-msgstr "Aliaĵoj"
+#: ../src/ui.c:100
+msgid "_Objects"
+msgstr "_Objektoj"
 
-#: libglabels/paper.c:361
-msgid "No paper files found!"
-msgstr "Neniu papera dosiero estis trovita!!"
+#: ../src/ui.c:101
+#, fuzzy
+msgid "_Create"
+msgstr "_Centre"
 
-#: data/ui/glabels-ui.xml.h:1
-msgid "About glabels"
-msgstr "Pri glabels"
+#: ../src/ui.c:102
+msgid "_Order"
+msgstr "_Ordo"
 
-#: data/ui/glabels-ui.xml.h:2
-msgid "About..."
-msgstr "Pri..."
+#: ../src/ui.c:103
+msgid "_Rotate/Flip"
+msgstr "_Rotacio/Renverso"
 
-#: data/ui/glabels-ui.xml.h:3
+#: ../src/ui.c:104
 msgid "Align _Horizontal"
 msgstr "Laŭlinnigu _Horizontale"
 
-#: data/ui/glabels-ui.xml.h:4
+#: ../src/ui.c:105
 msgid "Align _Vertical"
 msgstr "Laŭlinnigu _Verticale"
 
-#: data/ui/glabels-ui.xml.h:5
-msgid "Align objects to bottoms"
-msgstr "Laŭlinnigu objektojn sube"
-
-#: data/ui/glabels-ui.xml.h:6
-msgid "Align objects to horizontal centers"
-msgstr "Laŭlinnigu objektojn laŭ horizontala centro"
-
-#: data/ui/glabels-ui.xml.h:7
-msgid "Align objects to left edges"
-msgstr "Laŭlinnigu objektojn laŭ maldekstra rando"
-
-#: data/ui/glabels-ui.xml.h:8
-msgid "Align objects to right edges"
-msgstr "Laŭlinnigu objektojn laŭ dekstra rando"
-
-#: data/ui/glabels-ui.xml.h:9
-msgid "Align objects to tops"
-msgstr "Laŭlinnigu objektojn supre"
-
-#: data/ui/glabels-ui.xml.h:10
-msgid "Align objects to vertical centers"
-msgstr "Laŭliniigu objektojn laŭ verticala centro"
-
-#: data/ui/glabels-ui.xml.h:12
-msgid "Bold"
-msgstr "Dika"
+#: ../src/ui.c:106
+msgid "_Help"
+msgstr "_Helpilo"
 
-#: data/ui/glabels-ui.xml.h:14
-msgid "Center align"
-msgstr "Laŭliniiĝu centre"
+#. Popup entries.
+#: ../src/ui.c:109 ../src/ui.c:110
+#, fuzzy
+msgid "Context Menu"
+msgstr "Entenoj"
 
-#: data/ui/glabels-ui.xml.h:15
-msgid "Center objects to horizontal label center"
-msgstr "Centrigu objektojn laŭ horizontala centro de etikedo"
+#: ../src/ui.c:115
+msgid "_New"
+msgstr "_Nova"
 
-#: data/ui/glabels-ui.xml.h:16
-msgid "Center objects to vertical label center"
-msgstr "Centrigu objektojn laŭ vertikala centro de etikedo"
+#: ../src/ui.c:117
+#, fuzzy
+msgid "Create a new file"
+msgstr "Kreu novan dokumenton"
 
-#: data/ui/glabels-ui.xml.h:17
-msgid "Change the visibility of markup lines in the current window"
-msgstr "Ŝangu videblecon de linioj de demarkacio en nuna fenestro"
+#: ../src/ui.c:122
+msgid "_Open..."
+msgstr "M_alfermu..."
 
-#: data/ui/glabels-ui.xml.h:18
-msgid "Change the visibility of the drawing toolbar in the current window"
-msgstr "Ŝangu videblecon de la ilarstango de desegno en nuna fenestro"
+#: ../src/ui.c:124
+msgid "Open a file"
+msgstr "Malfermu iun dosieron"
 
-#: data/ui/glabels-ui.xml.h:19
-msgid "Change the visibility of the grid in the current window"
-msgstr "Ŝangu videblecon de la krado en nuna fenestro"
+#: ../src/ui.c:129
+msgid "_Save"
+msgstr "_Konservu"
 
-#: data/ui/glabels-ui.xml.h:20
-msgid "Change the visibility of the main toolbar in the current window"
-msgstr "Ŝangu videblecon de la ĉefa ilarstango en nuna fenestro"
+#: ../src/ui.c:131
+#, fuzzy
+msgid "Save current file"
+msgstr "Konservu la nunan dosieron"
 
-#: data/ui/glabels-ui.xml.h:21
-msgid "Change the visibility of the property toolbar in the current window"
-msgstr "Ŝangu videblecon de ilarstango de ecoj en nuna fenestro"
+#: ../src/ui.c:136
+msgid "Save _As..."
+msgstr "Konservu kiel..."
 
-#: data/ui/glabels-ui.xml.h:22
-msgid "Close"
-msgstr "Fermu"
+#: ../src/ui.c:138
+#, fuzzy
+msgid "Save the current file to a different name"
+msgstr "Konservu la nunan dosieron per alia nomo"
 
-#: data/ui/glabels-ui.xml.h:23
-msgid "Close the current file"
-msgstr "Fermu la nunan dosieron"
+#: ../src/ui.c:143
+msgid "_Print..."
+msgstr "_Presu..."
 
-#: data/ui/glabels-ui.xml.h:24
-msgid "Configure the application"
-msgstr "Agordu la programon"
+#: ../src/ui.c:145
+msgid "Print the current file"
+msgstr "Presu la nunan dosieron"
 
-#: data/ui/glabels-ui.xml.h:25
-msgid "Contents"
-msgstr "Entenoj"
+#: ../src/ui.c:150
+#, fuzzy
+msgid "Properties..."
+msgstr "E_coj..."
 
-#: data/ui/glabels-ui.xml.h:26
-msgid "Copy"
-msgstr "Kopiu"
+#: ../src/ui.c:152
+msgid "Modify document properties"
+msgstr "Radaktu ecojn de dokumento"
 
-#: data/ui/glabels-ui.xml.h:27
-msgid "Copy the selection"
-msgstr "Kopiu la elektaĵon"
+#: ../src/ui.c:157
+msgid "Template _Designer..."
+msgstr "_Desegnilo de Modeloj..."
 
-#: data/ui/glabels-ui.xml.h:28
+#: ../src/ui.c:159
 msgid "Create a custom template"
 msgstr "Kreu personigitan modelon"
 
-#: data/ui/glabels-ui.xml.h:29
-msgid "Create a new document"
-msgstr "Kreu novan dokumenton"
-
-#: data/ui/glabels-ui.xml.h:30
-msgid "Create barcode object"
-msgstr "Keu strekkodan objekton"
-
-#: data/ui/glabels-ui.xml.h:31
-msgid "Create box/rectangle object"
-msgstr "Kreu objekton de areo/rektangulo"
-
-#: data/ui/glabels-ui.xml.h:32
-msgid "Create ellipse/circle object"
-msgstr "Kreu objekton de elipse/circlo"
-
-#: data/ui/glabels-ui.xml.h:33
-msgid "Create image object"
-msgstr "Kreu bildan objekton"
-
-#: data/ui/glabels-ui.xml.h:34
-msgid "Create line object"
-msgstr "Kreu linian objekton"
-
-#: data/ui/glabels-ui.xml.h:35
-msgid "Create text object"
-msgstr "Kreu tekstan objekton"
-
-#: data/ui/glabels-ui.xml.h:36
-msgid "Cu_t"
-msgstr "El_tondu"
+#: ../src/ui.c:164
+msgid "_Close"
+msgstr "_Fermu"
 
-#: data/ui/glabels-ui.xml.h:37
-msgid "Customize"
-msgstr "Personigu"
+#: ../src/ui.c:166
+msgid "Close the current file"
+msgstr "Fermu la nunan dosieron"
 
-#: data/ui/glabels-ui.xml.h:38
-msgid "Customize Drawing Toolbar"
-msgstr "Personigu ilarstangon de desegno"
+#: ../src/ui.c:171
+msgid "_Quit"
+msgstr "_Eliro"
 
-#: data/ui/glabels-ui.xml.h:39
-msgid "Customize Main Toolbar"
-msgstr "Personigu ĉefan ilarstangon"
+#: ../src/ui.c:173
+msgid "Quit the program"
+msgstr "Eliru el programo"
 
-#: data/ui/glabels-ui.xml.h:40
-msgid "Customize Property Toolbar"
-msgstr "Personigu ilarstangon de ecoj"
+#: ../src/ui.c:180 ../src/ui.c:182 ../src/ui.c:967
+msgid "Undo"
+msgstr "Malfaru"
 
-#: data/ui/glabels-ui.xml.h:41
-msgid "Customize toolbars"
-msgstr "Personigu ilarstangojn"
+#: ../src/ui.c:187 ../src/ui.c:189 ../src/ui.c:974
+msgid "Redo"
+msgstr "Refaru"
 
-#: data/ui/glabels-ui.xml.h:42
+#: ../src/ui.c:194
 msgid "Cut"
 msgstr "Eltondu"
 
-#: data/ui/glabels-ui.xml.h:43
+#: ../src/ui.c:196
 msgid "Cut the selection"
 msgstr "Eltondu elektaĵon"
 
-#: data/ui/glabels-ui.xml.h:44
-msgid "Decrease magnification"
-msgstr "Malpliigu zomon"
+#: ../src/ui.c:201
+msgid "Copy"
+msgstr "Kopiu"
 
-#: data/ui/glabels-ui.xml.h:45
-msgid "Delete"
-msgstr "Forigu"
+#: ../src/ui.c:203
+msgid "Copy the selection"
+msgstr "Kopiu la elektaĵon"
+
+#: ../src/ui.c:210
+msgid "Paste the clipboard"
+msgstr "Enmetu la poŝon"
 
-#: data/ui/glabels-ui.xml.h:46
+#: ../src/ui.c:217
 msgid "Delete the selected objects"
 msgstr "Forigu elektitajn objektojn"
 
-#: data/ui/glabels-ui.xml.h:47
-msgid "Drawing toolbar"
-msgstr "Ilarstango de desegno"
+#: ../src/ui.c:222
+msgid "Select All"
+msgstr "Elektu Ĉion"
 
-#: data/ui/glabels-ui.xml.h:48
-msgid "Dump XML"
-msgstr "Ŝutu XML"
+#: ../src/ui.c:224
+msgid "Select all objects"
+msgstr "Elektu ĉiujn objektojn"
 
-#: data/ui/glabels-ui.xml.h:49
-msgid "Dump the UI Xml description"
-msgstr "Ŝutu priskribon de UI xml"
+#: ../src/ui.c:229
+msgid "Un-select All"
+msgstr "Malelektu Ĉion"
 
-#: data/ui/glabels-ui.xml.h:50
-msgid "Edit merge properties"
-msgstr "Redaktu ecojn de kunfando"
+#: ../src/ui.c:231
+msgid "Remove all selections"
+msgstr "Formovu ĉiujn elektaĵojn"
 
-#: data/ui/glabels-ui.xml.h:54
-msgid "Flip object horizontally"
-msgstr "Renversu objekton horizontale"
+#: ../src/ui.c:236
+msgid "Preferences"
+msgstr "Agordoj"
 
-#: data/ui/glabels-ui.xml.h:55
-msgid "Flip object vertically"
-msgstr "Renversu objekton vertikale"
+#: ../src/ui.c:238
+msgid "Configure the application"
+msgstr "Agordu la programon"
 
-#: data/ui/glabels-ui.xml.h:56
-msgid "Font name"
-msgstr "Nomo de tiparo"
+#: ../src/ui.c:245
+#, fuzzy
+msgid "Zoom in"
+msgstr "_Zomo"
 
-#: data/ui/glabels-ui.xml.h:57
-msgid "Font selector"
-msgstr "Elektilo de tiparo"
+#: ../src/ui.c:247
+msgid "Increase magnification"
+msgstr "Pliigu zomon"
 
-#: data/ui/glabels-ui.xml.h:58
-msgid "Font size"
-msgstr "Tipargrando"
+#: ../src/ui.c:252
+#, fuzzy
+msgid "Zoom out"
+msgstr "_Malzomo"
 
-#: data/ui/glabels-ui.xml.h:59
-msgid "Icon and _Text"
-msgstr "Ikono kaj _Teksto"
+#: ../src/ui.c:254
+msgid "Decrease magnification"
+msgstr "Malpliigu zomon"
 
-#: data/ui/glabels-ui.xml.h:60
-msgid "Increase magnification"
-msgstr "Pliigu zomon"
+#: ../src/ui.c:259
+#, fuzzy
+msgid "Zoom 1 to 1"
+msgstr "Zomo je _1:1"
 
-#: data/ui/glabels-ui.xml.h:61
-msgid "Italic"
-msgstr "Kursivo"
+#: ../src/ui.c:261
+msgid "Restore scale to 100%"
+msgstr "Reen 100%"
 
-#: data/ui/glabels-ui.xml.h:63
-msgid "Left align"
-msgstr "Laŭliniigu maldekstren"
+#: ../src/ui.c:266
+#, fuzzy
+msgid "Zoom to fit"
+msgstr "Alĝustigu"
 
-#: data/ui/glabels-ui.xml.h:65
-msgid "Line width"
-msgstr "Larĝo de linio"
+#: ../src/ui.c:268
+#, fuzzy
+msgid "Set scale to fit window"
+msgstr "Alĝustigu al la fenestro"
 
-#: data/ui/glabels-ui.xml.h:66
-msgid "Lower object to bottom"
-msgstr "Subentiru objekton ĝis la fundo"
+#: ../src/ui.c:275
+#, fuzzy
+msgid "Select Mode"
+msgstr "Modu_so de Elektado"
+
+#: ../src/ui.c:277
+msgid "Select, move and modify objects"
+msgstr "Elektu, movu kaj redaktu objektojn"
 
-#: data/ui/glabels-ui.xml.h:67
-msgid "M_arkup"
-msgstr "M_arkado"
+#: ../src/ui.c:282 ../src/view-text.c:102 ../data/ui/object-editor.ui.h:28
+#: ../data/ui/prefs-dialog.ui.h:17
+msgid "Text"
+msgstr "Teksto"
 
-#: data/ui/glabels-ui.xml.h:68
-msgid "Main toolbar"
-msgstr "Ĉefa ilarstango"
+#: ../src/ui.c:289
+#, fuzzy
+msgid "Box"
+msgstr "_Fako"
 
-#: data/ui/glabels-ui.xml.h:69
-msgid "Markup"
-msgstr "Markaĵoj"
+#: ../src/ui.c:291
+msgid "Create box/rectangle object"
+msgstr "Kreu objekton de areo/rektangulo"
 
-#: data/ui/glabels-ui.xml.h:70
-msgid "Modify document properties"
-msgstr "Radaktu ecojn de dokumento"
+#: ../src/ui.c:296 ../data/ui/object-editor.ui.h:17
+#: ../data/ui/prefs-dialog.ui.h:9
+msgid "Line"
+msgstr "Linio"
+
+#: ../src/ui.c:303
+#, fuzzy
+msgid "Ellipse"
+msgstr "_Elipso"
 
-#: data/ui/glabels-ui.xml.h:71
-msgid "New"
-msgstr "Nova"
+#: ../src/ui.c:305
+msgid "Create ellipse/circle object"
+msgstr "Kreu objekton de elipse/circlo"
 
-#: data/ui/glabels-ui.xml.h:72
-msgid "Object property editor"
-msgstr "Redaktilo de ecoj por objekto"
+#: ../src/ui.c:310 ../data/ui/object-editor.ui.h:14
+msgid "Image"
+msgstr "Bildo"
 
-#: data/ui/glabels-ui.xml.h:73
-msgid "Only show icons in the main toolbar"
-msgstr "Videbligu nur ikonojn en ĉefa ilarstango"
+#: ../src/ui.c:317
+#, fuzzy
+msgid "Barcode"
+msgstr "Strek_kodo"
 
-#: data/ui/glabels-ui.xml.h:75
-msgid "Open a file"
-msgstr "Malfermu iun dosieron"
+#: ../src/ui.c:326
+msgid "Raise object to top"
+msgstr "Suprentiru objekton ĝis la pinto"
 
-#: data/ui/glabels-ui.xml.h:76
-msgid "Open the glabels manual"
-msgstr "Malfermu manlibron de glabels"
+#: ../src/ui.c:333
+msgid "Lower object to bottom"
+msgstr "Subentiru objekton ĝis la fundo"
 
-#: data/ui/glabels-ui.xml.h:77
-msgid "Paste"
-msgstr "Enmetu"
+#: ../src/ui.c:340
+#, fuzzy
+msgid "Rotate object 90 degrees counter-clockwise"
+msgstr "Turnu la objekton je 90° kontraŭmontrile"
 
-#: data/ui/glabels-ui.xml.h:78
-msgid "Paste the clipboard"
-msgstr "Enmetu la poŝon"
+#: ../src/ui.c:347
+#, fuzzy
+msgid "Rotate object 90 degrees clockwise"
+msgstr "Turnu la objekton je 90° dekstroĝire"
 
-#: data/ui/glabels-ui.xml.h:79
-msgid "Pr_eferences..."
-msgstr "A_gordoj..."
+#: ../src/ui.c:354
+msgid "Flip object horizontally"
+msgstr "Renversu objekton horizontale"
 
-#: data/ui/glabels-ui.xml.h:80
-msgid "Preferences"
-msgstr "Agordoj"
+#: ../src/ui.c:361
+msgid "Flip object vertically"
+msgstr "Renversu objekton vertikale"
 
-#: data/ui/glabels-ui.xml.h:82
-msgid "Print the current file"
-msgstr "Presu la nunan dosieron"
+#: ../src/ui.c:368
+msgid "Align objects to left edges"
+msgstr "Laŭlinnigu objektojn laŭ maldekstra rando"
 
-#: data/ui/glabels-ui.xml.h:83
-msgid "Proper_ties..."
-msgstr "E_coj..."
+#: ../src/ui.c:375
+msgid "Align objects to right edges"
+msgstr "Laŭlinnigu objektojn laŭ dekstra rando"
 
-#: data/ui/glabels-ui.xml.h:84
-msgid "Properties"
-msgstr "Ecoj"
+#: ../src/ui.c:382
+msgid "Align objects to horizontal centers"
+msgstr "Laŭlinnigu objektojn laŭ horizontala centro"
 
-#: data/ui/glabels-ui.xml.h:85
-msgid "Property toolbar"
-msgstr "Ilarstango de ecoj"
+#: ../src/ui.c:389
+#, fuzzy
+msgid "Align objects to top edges"
+msgstr "Laŭlinnigu objektojn laŭ maldekstra rando"
 
-#: data/ui/glabels-ui.xml.h:86
-msgid "Quit"
-msgstr "Eliro"
+#: ../src/ui.c:396
+#, fuzzy
+msgid "Align objects to bottom edges"
+msgstr "Laŭlinnigu objektojn sube"
 
-#: data/ui/glabels-ui.xml.h:87
-msgid "Quit the program"
-msgstr "Eliru el programo"
+#: ../src/ui.c:403
+msgid "Align objects to vertical centers"
+msgstr "Laŭliniigu objektojn laŭ verticala centro"
 
-#: data/ui/glabels-ui.xml.h:88
-msgid "Raise object to top"
-msgstr "Suprentiru objekton ĝis la pinto"
+#: ../src/ui.c:410
+msgid "Center objects to horizontal label center"
+msgstr "Centrigu objektojn laŭ horizontala centro de etikedo"
 
-#: data/ui/glabels-ui.xml.h:89
-msgid "Recent _Files"
-msgstr "Fre_ŝaj Dosieroj"
+#: ../src/ui.c:417
+msgid "Center objects to vertical label center"
+msgstr "Centrigu objektojn laŭ vertikala centro de etikedo"
 
-#: data/ui/glabels-ui.xml.h:90
-msgid "Redo"
-msgstr "Refaru"
+#: ../src/ui.c:424
+msgid "Edit merge properties"
+msgstr "Redaktu ecojn de kunfando"
 
-#: data/ui/glabels-ui.xml.h:91
-msgid "Redo the undone action"
-msgstr "Refaru la lastan malfaritan agon"
+#: ../src/ui.c:431
+msgid "Contents"
+msgstr "Entenoj"
 
-#: data/ui/glabels-ui.xml.h:92
-msgid "Remove all selections"
-msgstr "Formovu ĉiujn elektaĵojn"
+#: ../src/ui.c:433
+#, fuzzy
+msgid "Open glabels manual"
+msgstr "Malfermu manlibron de glabels"
 
-#: data/ui/glabels-ui.xml.h:94
-#, no-c-format
-msgid "Restore scale to 100%"
-msgstr "Reen 100%"
+#: ../src/ui.c:438
+msgid "About..."
+msgstr "Pri..."
 
-#: data/ui/glabels-ui.xml.h:95
-msgid "Right align"
-msgstr "laŭliniigu dekstren"
+#: ../src/ui.c:440
+msgid "About glabels"
+msgstr "Pri glabels"
 
-#: data/ui/glabels-ui.xml.h:98
-msgid "Rotate object 90 clockwise"
-msgstr "Turnu la objekton je 90° dekstroĝire"
+#: ../src/ui.c:450
+msgid "Property toolbar"
+msgstr "Ilarstango de ecoj"
 
-#: data/ui/glabels-ui.xml.h:99
-msgid "Rotate object 90 counter-clockwise"
-msgstr "Turnu la objekton je 90° kontraŭmontrile"
+#: ../src/ui.c:452
+msgid "Change the visibility of the property toolbar in the current window"
+msgstr "Ŝangu videblecon de ilarstango de ecoj en nuna fenestro"
 
-#: data/ui/glabels-ui.xml.h:100
-msgid "Save"
-msgstr "Konservu"
+#: ../src/ui.c:458
+#, fuzzy
+msgid "Grid"
+msgstr "_Krado"
 
-#: data/ui/glabels-ui.xml.h:101
-msgid "Save As"
-msgstr "Konservu kiel"
+#: ../src/ui.c:460
+msgid "Change the visibility of the grid in the current window"
+msgstr "Ŝangu videblecon de la krado en nuna fenestro"
 
-#: data/ui/glabels-ui.xml.h:102
-msgid "Save _As..."
-msgstr "Konservu kiel..."
+#: ../src/ui.c:466
+msgid "Markup"
+msgstr "Markaĵoj"
 
-#: data/ui/glabels-ui.xml.h:103
-msgid "Save the current file"
-msgstr "Konservu la nunan dosieron"
+#: ../src/ui.c:468
+msgid "Change the visibility of markup lines in the current window"
+msgstr "Ŝangu videblecon de linioj de demarkacio en nuna fenestro"
 
-#: data/ui/glabels-ui.xml.h:104
-msgid "Save the current file with a different name"
-msgstr "Konservu la nunan dosieron per alia nomo"
+#: ../src/ui.c:479
+msgid "Main toolbar"
+msgstr "Ĉefa ilarstango"
 
-#: data/ui/glabels-ui.xml.h:105
-msgid "Select All"
-msgstr "Elektu Ĉion"
+#: ../src/ui.c:481
+msgid "Change the visibility of the main toolbar in the current window"
+msgstr "Ŝangu videblecon de la ĉefa ilarstango en nuna fenestro"
 
-#: data/ui/glabels-ui.xml.h:106
-msgid "Select _All"
-msgstr "Elektu _Ĉion"
+#: ../src/ui.c:487
+msgid "Drawing toolbar"
+msgstr "Ilarstango de desegno"
 
-#: data/ui/glabels-ui.xml.h:107
-msgid "Select all objects"
-msgstr "Elektu ĉiujn objektojn"
+#: ../src/ui.c:489
+msgid "Change the visibility of the drawing toolbar in the current window"
+msgstr "Ŝangu videblecon de la ilarstango de desegno en nuna fenestro"
 
-#: data/ui/glabels-ui.xml.h:108
-msgid "Select, move and modify objects"
-msgstr "Elektu, movu kaj redaktu objektojn"
+#: ../src/ui-commands.c:1135
+msgid "Glabels includes contributions from:"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:110
-msgid "Set main toolbar button style according to desktop default"
-msgstr "Agordu butonstilon de ĉefa ilarstango laŭ defaŭlto de labortablo"
+#: ../src/ui-commands.c:1141
+msgid "See the file AUTHORS for additional credits,"
+msgstr "Vidigu la dosieron nomitan AUTHORS por pluaj informoj,"
 
-#: data/ui/glabels-ui.xml.h:111
-msgid "Show _Tooltips"
-msgstr "Mon_tru Sugestojn"
+#: ../src/ui-commands.c:1142
+#, fuzzy
+msgid "or visit http://glabels.org/"
+msgstr "aŭ vizitu http://glabels.sourceforge.net/"
 
-#: data/ui/glabels-ui.xml.h:112
-msgid "Show both icons and texts in the main toolbar"
-msgstr "Vidigu kaj ikonojn kaj tekstojn en la ĉefa ilarstango"
+#: ../src/ui-commands.c:1154
+msgid "A label and business card creation program.\n"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:113
-msgid "Show tooltips in the drawing toolbar"
-msgstr "Vidigu sugestojn en la ilarstango de desegno"
+#: ../src/ui-commands.c:1158
+msgid "translator-credits"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:114
-msgid "Show tooltips in the main toolbar"
-msgstr "Vidigu sugestojn en la ĉefa ilarstango"
+#: ../src/ui-commands.c:1161
+msgid ""
+"gLabels is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"gLabels is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:115
-msgid "Show tooltips in the property toolbar"
-msgstr "Vidigu sugestojn en la ilarstango de ecoj"
+#: ../src/ui-commands.c:1190
+msgid "glabels"
+msgstr "glabels"
 
-#: data/ui/glabels-ui.xml.h:116
-msgid "Template Designer"
-msgstr "Desegnilo de Modeloj"
+#: ../src/warning-handler.c:69
+#, fuzzy
+msgid "gLabels Error!"
+msgstr "Agordoj de gLabels"
 
-#: data/ui/glabels-ui.xml.h:117
-msgid "Template _Designer..."
-msgstr "_Desegnilo de Modeloj..."
+#: ../src/window.c:284
+msgid "(none) - gLabels"
+msgstr "(nenio) - gLabels"
 
-#: data/ui/glabels-ui.xml.h:118
-msgid "Text color"
-msgstr "Koloro de teksto"
+#: ../src/window.c:485
+msgid "(modified)"
+msgstr "(modifita)"
 
-#: data/ui/glabels-ui.xml.h:119
-msgid "U_n-select All"
-msgstr "Malelektu Ĉio_n"
+#: ../src/xml-label-04.c:75 ../src/xml-label.c:333
+#, c-format
+msgid "Bad root node = \"%s\""
+msgstr "Nekorekta radika nodo = \"%s\""
 
-#: data/ui/glabels-ui.xml.h:120
-msgid "Un-select All"
-msgstr "Malelektu Ĉion"
+#: ../src/xml-label-04.c:123 ../src/xml-label.c:416
+#, c-format
+msgid "bad node =  \"%s\""
+msgstr "nekorekta nodo = \"%s\""
 
-#: data/ui/glabels-ui.xml.h:121
-msgid "Undo"
-msgstr "Malfaru"
+#: ../src/xml-label.c:199 ../src/xml-label.c:237
+msgid "xmlParseFile error"
+msgstr "Eraro de xml-dosiero de sintaksa analizo"
 
-#: data/ui/glabels-ui.xml.h:122
-msgid "Undo the last action"
-msgstr "Nuligu lastan agon"
+#: ../src/xml-label.c:274
+msgid "No document root"
+msgstr "Neniu radika dokumento"
 
-#: data/ui/glabels-ui.xml.h:123
-msgid "Zoom _1:1"
-msgstr "Zomo je _1:1"
+#: ../src/xml-label.c:282
+msgid "Importing from glabels 0.1 format"
+msgstr "Importante el formato de glabels 0.1"
 
-#: data/ui/glabels-ui.xml.h:124
-msgid "Zoom _In"
-msgstr "_Zomo"
+#: ../src/xml-label.c:291
+msgid "Importing from glabels 0.4 format"
+msgstr "Importante el formato de glabels 0.4"
 
-#: data/ui/glabels-ui.xml.h:125
-msgid "Zoom _Out"
-msgstr "_Malzomo"
+#: ../src/xml-label.c:301
+#, fuzzy, c-format
+msgid "Unknown glabels Namespace -- Using %s"
+msgstr "Nekorekta dokumento, nekonata Nomospaco de glabels"
 
-#: data/ui/glabels-ui.xml.h:126
-msgid "Zoom to _fit"
-msgstr "Alĝustigu"
+#: ../src/xml-label.c:370
+#, c-format
+msgid "bad node in Document node =  \"%s\""
+msgstr "nekorekta nodo en nodo de Dokumeto = \"%s\""
 
-#: data/ui/glabels-ui.xml.h:127
-msgid "Zoom to fit window"
-msgstr "Alĝustigu al la fenestro"
+#: ../src/xml-label.c:868
+#, c-format
+msgid "bad node in Data node =  \"%s\""
+msgstr "nekorekta nodo en nodo de Datumoj = \"%s\""
 
-#: data/ui/glabels-ui.xml.h:128
-msgid "_About..."
-msgstr "_Pri..."
+#: ../src/xml-label.c:944
+#, fuzzy, c-format
+msgid "Unknown embedded file format: \"%s\""
+msgstr "Nekonata id de (paĝo)grando aŭ de nomo \"%s\""
 
-#: data/ui/glabels-ui.xml.h:129
-msgid "_Bottoms"
-msgstr "Su_be"
+#: ../src/xml-label.c:1150 ../libglabels/xml-template.c:802
+msgid "Utf8 conversion error."
+msgstr "eraro de konvertado en Utf8."
 
-#: data/ui/glabels-ui.xml.h:132
-msgid "_Close"
-msgstr "_Fermu"
+#: ../src/xml-label.c:1157
+msgid "Problem saving xml file."
+msgstr "Problemo laŭ konservo de xml-dosiero"
 
-#: data/ui/glabels-ui.xml.h:133
-msgid "_Contents"
-msgstr "_Entenoj"
+#. Create and append an "Other" entry.
+#. Translators: "Other" here means other page size.  Meaning a page size
+#. * other than the standard ones that libglabels knows about such as
+#. * "letter", "A4", etc.
+#: ../libglabels/db.c:270
+msgid "Other"
+msgstr "Aliaĵoj"
 
-#: data/ui/glabels-ui.xml.h:134
-msgid "_Copy"
-msgstr "_Kopiu"
+#. Create and append a "User defined" entry.
+#: ../libglabels/db.c:279
+#, fuzzy
+msgid "User defined"
+msgstr "Enigu campon de kunfando"
 
-#: data/ui/glabels-ui.xml.h:135
-msgid "_Create Object"
-msgstr "_Kreu Objekton"
+#: ../libglabels/db.c:665
+msgid ""
+"Unable to locate paper size definitions.  Libglabels may not be installed "
+"correctly!"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:136
-msgid "_Debug"
-msgstr "_Sencimigo"
+#: ../libglabels/db.c:1057
+msgid ""
+"Unable to locate category definitions.  Libglabels may not be installed "
+"correctly!"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:138
-msgid "_Desktop Default"
-msgstr "Defaŭlto por Labortabulo"
+#: ../libglabels/db.c:2097
+msgid ""
+"Unable to locate any template files.  Libglabels may not be installed "
+"correctly!"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:139
-msgid "_Drawing Toolbar"
-msgstr "Ilarstango de _Desegno"
+#: ../libglabels/db.c:2164
+#, fuzzy, c-format
+msgid "%s full page label"
+msgstr "Ĝenerala %s plena paĝo"
 
-#: data/ui/glabels-ui.xml.h:140
-msgid "_Edit"
-msgstr "R_edaktu"
+#: ../libglabels/template.c:156
+#, c-format
+msgid "Equivalent part (\"%s\") for \"%s\", not previously defined."
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:142
-msgid "_File"
-msgstr "_Dosiero"
+#.
+#. * Translators: 1st %d = number of labels across a page,
+#. *              2nd %d = number of labels down a page,
+#. *              3rd %d = total number of labels on a page (sheet).
+#.
+#: ../libglabels/template.c:727
+#, fuzzy, c-format
+msgid "%d × %d (%d per sheet)"
+msgstr "%d x %d  (%d por folio)"
 
-#: data/ui/glabels-ui.xml.h:143
-msgid "_Grid"
-msgstr "_Krado"
+#. Translators: %d is the total number of labels on a page (sheet).
+#: ../libglabels/template.c:732
+#, c-format
+msgid "%d per sheet"
+msgstr "%d por folio"
 
-#: data/ui/glabels-ui.xml.h:144
-msgid "_Help"
-msgstr "_Helpilo"
+#: ../libglabels/template.c:802 ../libglabels/template.c:808
+#: ../libglabels/template.c:818 ../libglabels/template.c:824
+#, fuzzy
+msgid "diameter"
+msgstr "%s %s diametro"
 
-#: data/ui/glabels-ui.xml.h:145
-msgid "_Icon"
-msgstr "_Ikono"
+#. The ids are identical to the absolute length units supported in
+#. the CSS2 Specification (Section 4.3.2)
+#. This table must be sorted exactly as the enumerations in lglUnits
+#. [LGL_UNITS_POINT]
+#: ../libglabels/units.c:65 ../data/ui/object-editor.ui.h:39
+#: ../data/ui/prefs-dialog.ui.h:22
+msgid "points"
+msgstr "punktoj"
 
-#: data/ui/glabels-ui.xml.h:149
-msgid "_Main Toolbar"
-msgstr "_Ĉefa Ilarstango"
+#. [LGL_UNITS_INCH]
+#: ../libglabels/units.c:66 ../data/ui/object-editor.ui.h:38
+#: ../data/ui/template-designer.ui.h:62
+msgid "inches"
+msgstr "coloj"
 
-#: data/ui/glabels-ui.xml.h:150
-msgid "_Merge Properties..."
-msgstr "_Kunfandu Ecojn..."
+#. [LGL_UNITS_MM]
+#: ../libglabels/units.c:67
+msgid "mm"
+msgstr "mm"
 
-#: data/ui/glabels-ui.xml.h:151
-msgid "_New"
-msgstr "_Nova"
+#. [LGL_UNITS_CM]
+#: ../libglabels/units.c:68
+msgid "cm"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:152
-msgid "_Objects"
-msgstr "_Objektoj"
+#. [LGL_UNITS_PICA]
+#: ../libglabels/units.c:69
+msgid "picas"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:153
-msgid "_Open..."
-msgstr "M_alfermu..."
+#: ../libglabels/xml-template.c:223
+msgid "Missing name or brand/part attributes."
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:155
-msgid "_Paste"
-msgstr "_Enmetu"
+#. This should always be an id, but just in case a name
+#. slips by!
+#: ../libglabels/xml-template.c:244
+#, c-format
+msgid "Unknown page size id \"%s\", trying as name"
+msgstr "Nekonata id \"%s\" de grando de paĝo, provante kiel nomo"
 
-#: data/ui/glabels-ui.xml.h:156
-msgid "_Print..."
-msgstr "_Presu..."
+#: ../libglabels/xml-template.c:256
+#, c-format
+msgid "Unknown page size id or name \"%s\""
+msgstr "Nekonata id de (paĝo)grando aŭ de nomo \"%s\""
 
-#: data/ui/glabels-ui.xml.h:157
-msgid "_Property Toolbar"
-msgstr "Ilarstango de Eco_j"
+#: ../libglabels/xml-template.c:275
+msgid "Forward references not supported."
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:158
-msgid "_Quit"
-msgstr "_Eliro"
+#: ../libglabels/xml-template.c:747
+msgid ""
+"Missing required \"brand\" or \"part\" attribute, trying deprecated name."
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:161
-msgid "_Save"
-msgstr "_Konservu"
+#: ../libglabels/xml-template.c:757
+msgid "Name attribute also missing."
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:165
-msgid "_View"
-msgstr "_Videbligo"
+#.
+#. * Local Variables:       -- emacs
+#. * mode: C                -- emacs
+#. * c-basic-offset: 8      -- emacs
+#. * tab-width: 8           -- emacs
+#. * indent-tabs-mode: nil  -- emacs
+#. * End:                   -- emacs
+#.
+#: ../data/ui/merge-properties-dialog.ui.h:1
+msgid "Format:"
+msgstr "Formato:"
 
-#: data/glade/prefs-dialog.glade.h:1
-msgid "   "
-msgstr "   "
+#: ../data/ui/merge-properties-dialog.ui.h:2
+msgid "Location:"
+msgstr "Lokiĝo:"
 
-#: data/glade/prefs-dialog.glade.h:2 data/glade/object-editor.glade.h:1
-#: data/glade/template-designer.glade.h:5
-msgid "*"
-msgstr "*"
+#: ../data/ui/merge-properties-dialog.ui.h:3
+#, fuzzy
+msgid "Record selection/preview"
+msgstr "Elektado/Antaŭmontro de rikordo:"
 
-#: data/glade/prefs-dialog.glade.h:3
-msgid "<span weight=\"bold\">Default page size</span>"
-msgstr "<span weight=\"bold\">Defaŭlta grando de paĝo</span>"
+#: ../data/ui/merge-properties-dialog.ui.h:4
+#, fuzzy
+msgid "Select all"
+msgstr "Elektu Ĉion"
 
-#: data/glade/prefs-dialog.glade.h:4
-msgid "<span weight=\"bold\">Fill</span>"
-msgstr "<span weight=\"bold\">Plenigo</span>"
+#: ../data/ui/merge-properties-dialog.ui.h:5
+msgid "Source"
+msgstr "Fonto"
 
-#: data/glade/prefs-dialog.glade.h:5
-msgid "<span weight=\"bold\">Line</span>"
-msgstr "<span weight=\"bold\">Linio</span>"
+#: ../data/ui/merge-properties-dialog.ui.h:6
+#, fuzzy
+msgid "Unselect all"
+msgstr "Malelektu Ĉion"
 
-#: data/glade/prefs-dialog.glade.h:6
-msgid "<span weight=\"bold\">Text</span>"
-msgstr "<span weight=\"bold\">Teksto</span>"
+#: ../data/ui/media-select.ui.h:1
+msgid "Brand:"
+msgstr ""
 
-#: data/glade/prefs-dialog.glade.h:7
-msgid "<span weight=\"bold\">Units</span>"
-msgstr "<span weight=\"bold\">Unitoj</span>"
+#: ../data/ui/media-select.ui.h:2
+msgid "Category:"
+msgstr ""
 
-#: data/glade/prefs-dialog.glade.h:8 data/glade/object-editor.glade.h:4
-msgid "Alignment:"
-msgstr "Alliniĝo:"
+#: ../data/ui/media-select.ui.h:3
+#, fuzzy
+msgid "Custom"
+msgstr "personigita"
 
-#: data/glade/prefs-dialog.glade.h:9 data/glade/object-editor.glade.h:8
-msgid "Color:"
-msgstr "Koloro:"
+#: ../data/ui/media-select.ui.h:4 ../data/ui/new-label-dialog.ui.h:6
+#: ../data/ui/template-designer.ui.h:42
+msgid "Page size:"
+msgstr "Grando de paĝo:"
 
-#: data/glade/prefs-dialog.glade.h:10
-msgid "Font:"
-msgstr "Tiparo:"
+#: ../data/ui/media-select.ui.h:5
+#, fuzzy
+msgid "Recent"
+msgstr "Fre_ŝaj Dosieroj"
 
-#: data/glade/prefs-dialog.glade.h:11
-msgid "ISO A4"
-msgstr "ISO A4"
+#: ../data/ui/media-select.ui.h:6
+#, fuzzy
+msgid "Search all"
+msgstr "Elektu Ĉion"
 
-#: data/glade/prefs-dialog.glade.h:12
-msgid "Inches"
-msgstr "Coloj"
+#: ../data/ui/new-label-dialog.ui.h:1
+msgid ""
+"Choose label or card product from hundreds of predefined templates or define "
+"your own."
+msgstr ""
 
-#: data/glade/prefs-dialog.glade.h:13 data/glade/object-editor.glade.h:19
-msgid "Line Spacing:"
-msgstr "Interspaco:"
+#: ../data/ui/new-label-dialog.ui.h:2 ../data/ui/template-designer.ui.h:27
+msgid "Description:"
+msgstr "Priskribo:"
 
-#: data/glade/prefs-dialog.glade.h:14
-msgid "Locale"
-msgstr "Nacia"
+#: ../data/ui/new-label-dialog.ui.h:3
+msgid "Label size:"
+msgstr "Grando de etikedo:"
 
-#: data/glade/prefs-dialog.glade.h:15
-msgid "Millimeters"
-msgstr "Milimetroj"
+#: ../data/ui/new-label-dialog.ui.h:4
+msgid "Layout:"
+msgstr "Aspekto:"
 
-#: data/glade/prefs-dialog.glade.h:16
-msgid "Object defaults"
-msgstr "Defaŭltoj de objekto"
+#: ../data/ui/new-label-dialog.ui.h:5
+#, fuzzy
+msgid "Normal"
+msgstr "Formato:"
 
-#: data/glade/prefs-dialog.glade.h:17
-msgid "Points"
-msgstr "Punktoj"
+#: ../data/ui/new-label-dialog.ui.h:7 ../data/ui/template-designer.ui.h:43
+msgid "Part #:"
+msgstr "Parto #:"
 
-#: data/glade/prefs-dialog.glade.h:18
-msgid "Select default properties for new objects."
-msgstr "Elektu defaŭltajn ecojn por novaj objektoj."
+#: ../data/ui/new-label-dialog.ui.h:8
+msgid "Please review and confirm your selection."
+msgstr ""
 
-#: data/glade/prefs-dialog.glade.h:19
-msgid "Select locale specific behavior."
-msgstr "Elektu nacian specifan agmanieron."
+#: ../data/ui/new-label-dialog.ui.h:9
+#, fuzzy
+msgid "Rotated"
+msgstr "Rotacio"
 
-#. Most popular (at top of list)
-#: data/glade/prefs-dialog.glade.h:20 data/templates/paper-sizes.xml.h:29
-msgid "US Letter"
-msgstr "US·Letero"
+#: ../data/ui/new-label-dialog.ui.h:10
+msgid "Select orientation of label content."
+msgstr ""
 
-#: data/glade/prefs-dialog.glade.h:21 data/glade/object-editor.glade.h:29
-#: data/glade/template-designer.glade.h:72
-msgid "Width:"
-msgstr "Larĝo:"
+#: ../data/ui/new-label-dialog.ui.h:11
+msgid "Similar products:"
+msgstr ""
 
-#: data/glade/object-editor.glade.h:2
-msgid "00000000000 00000"
-msgstr "00000000000 00000"
+#: ../data/ui/new-label-dialog.ui.h:12
+msgid "Vendor:"
+msgstr ""
+
+#: ../data/ui/object-editor.ui.h:2
+#, no-c-format
+msgid "%"
+msgstr ""
 
-#: data/glade/object-editor.glade.h:3
-msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
-msgstr "<span weight=\"bold\" size=\"larger\">Xxx ecoj de objekto</span>"
+#: ../data/ui/object-editor.ui.h:3 ../data/ui/prefs-dialog.ui.h:2
+msgid "Alignment:"
+msgstr "Alliniĝo:"
 
-#: data/glade/object-editor.glade.h:5
+#: ../data/ui/object-editor.ui.h:4
 msgid "Allow merge to automatically shrink text"
 msgstr ""
 
-#: data/glade/object-editor.glade.h:6
+#: ../data/ui/object-editor.ui.h:5
 msgid "Angle:"
 msgstr "Angulo:"
 
-#: data/glade/object-editor.glade.h:7
+#: ../data/ui/object-editor.ui.h:6
 msgid "Checksum"
 msgstr "Kontrolsumo"
 
-#: data/glade/object-editor.glade.h:10
+#: ../data/ui/object-editor.ui.h:7 ../data/ui/prefs-dialog.ui.h:3
+msgid "Color:"
+msgstr "Koloro:"
+
+#: ../data/ui/object-editor.ui.h:9
+msgid "Enable shadow"
+msgstr ""
+
+#: ../data/ui/object-editor.ui.h:10
 msgid "Family:"
 msgstr "Familio:"
 
-#: data/glade/object-editor.glade.h:12
+#: ../data/ui/object-editor.ui.h:11
+msgid "File:"
+msgstr "Dosiero:"
+
+#: ../data/ui/object-editor.ui.h:12 ../data/ui/prefs-dialog.ui.h:5
 msgid "Fill"
 msgstr "Plenigo"
 
-#: data/glade/object-editor.glade.h:13 data/glade/template-designer.glade.h:33
+#: ../data/ui/object-editor.ui.h:13 ../data/ui/template-designer.ui.h:30
 msgid "Height:"
 msgstr "Alto:"
 
-#: data/glade/object-editor.glade.h:14
-msgid "Image"
-msgstr "Bildo"
-
-#: data/glade/object-editor.glade.h:15
-msgid "Insert merge field"
-msgstr "Enigu campon de kunfando"
+#: ../data/ui/object-editor.ui.h:15
+msgid "Key:"
+msgstr "Ŝlosilo:"
 
-#: data/glade/object-editor.glade.h:17
+#: ../data/ui/object-editor.ui.h:16
 msgid "Length:"
 msgstr "Longo:"
 
-#: data/glade/object-editor.glade.h:18
-msgid "Line"
-msgstr "Linio"
+#: ../data/ui/object-editor.ui.h:18 ../data/ui/prefs-dialog.ui.h:10
+msgid "Line Spacing:"
+msgstr "Interspaco:"
 
-#: data/glade/object-editor.glade.h:20
+#: ../data/ui/object-editor.ui.h:19
 msgid "Literal:"
 msgstr "Literalo:"
 
-#: data/glade/object-editor.glade.h:21
-msgid "Load image"
-msgstr "Ŝargu bildon"
+#: ../data/ui/object-editor.ui.h:20
+msgid "Opacity:"
+msgstr ""
 
-#: data/glade/object-editor.glade.h:22
+#: ../data/ui/object-editor.ui.h:21
 msgid "Position"
 msgstr "Lokiĝo"
 
-#: data/glade/object-editor.glade.h:23
+#: ../data/ui/object-editor.ui.h:22
 msgid "Reset image size"
 msgstr "Restarigu grandon de bildo"
 
-#: data/glade/object-editor.glade.h:24
+#: ../data/ui/object-editor.ui.h:23
+msgid "Shadow"
+msgstr ""
+
+#: ../data/ui/object-editor.ui.h:24
 msgid "Size"
 msgstr "Grando"
 
-#: data/glade/object-editor.glade.h:25
+#: ../data/ui/object-editor.ui.h:25
 msgid "Size:"
 msgstr "Grando:"
 
-#: data/glade/object-editor.glade.h:26
+#: ../data/ui/object-editor.ui.h:26
 msgid "Style"
 msgstr "Stilo"
 
-#: data/glade/object-editor.glade.h:27
+#: ../data/ui/object-editor.ui.h:27
 msgid "Style:"
 msgstr "Stilo:"
 
-#: data/glade/object-editor.glade.h:30
+#: ../data/ui/object-editor.ui.h:29 ../data/ui/prefs-dialog.ui.h:20
+#: ../data/ui/template-designer.ui.h:61
+msgid "Width:"
+msgstr "Larĝo:"
+
+#: ../data/ui/object-editor.ui.h:30
+msgid "X Offset:"
+msgstr ""
+
+#: ../data/ui/object-editor.ui.h:31
 msgid "X:"
 msgstr "X:"
 
-#: data/glade/object-editor.glade.h:31
+#: ../data/ui/object-editor.ui.h:32
+msgid "Y Offset:"
+msgstr ""
+
+#: ../data/ui/object-editor.ui.h:33
 msgid "Y:"
 msgstr "Y:"
 
-#: data/glade/object-editor.glade.h:32
+#: ../data/ui/object-editor.ui.h:34
 msgid "degrees"
 msgstr "gradoj"
 
-#: data/glade/object-editor.glade.h:33
+#: ../data/ui/object-editor.ui.h:35
 msgid "dialog1"
 msgstr "fenestr1"
 
-#: data/glade/object-editor.glade.h:34
+#: ../data/ui/object-editor.ui.h:36
 msgid "digits:"
 msgstr "ciferoj:"
 
-#: data/glade/object-editor.glade.h:35
+#: ../data/ui/object-editor.ui.h:37
 msgid "format:"
 msgstr "formato:"
 
-#: data/glade/template-designer.glade.h:1
-msgid "  "
-msgstr "  "
+#: ../data/ui/prefs-dialog.ui.h:1
+msgid "   "
+msgstr "   "
+
+#: ../data/ui/prefs-dialog.ui.h:4
+#, fuzzy
+msgid "Default page size"
+msgstr "Restarigu grandon de bildo"
+
+#: ../data/ui/prefs-dialog.ui.h:6
+msgid "Font:"
+msgstr "Tiparo:"
+
+#: ../data/ui/prefs-dialog.ui.h:7
+msgid "ISO A4"
+msgstr "ISO A4"
+
+#: ../data/ui/prefs-dialog.ui.h:8
+msgid "Inches"
+msgstr "Coloj"
+
+#: ../data/ui/prefs-dialog.ui.h:11
+msgid "Locale"
+msgstr "Nacia"
+
+#: ../data/ui/prefs-dialog.ui.h:12
+msgid "Millimeters"
+msgstr "Milimetroj"
+
+#: ../data/ui/prefs-dialog.ui.h:13
+msgid "Object defaults"
+msgstr "Defaŭltoj de objekto"
+
+#: ../data/ui/prefs-dialog.ui.h:14
+msgid "Points"
+msgstr "Punktoj"
+
+#: ../data/ui/prefs-dialog.ui.h:15
+msgid "Select default properties for new objects."
+msgstr "Elektu defaŭltajn ecojn por novaj objektoj."
+
+#: ../data/ui/prefs-dialog.ui.h:16
+msgid "Select locale specific behavior."
+msgstr "Elektu nacian specifan agmanieron."
+
+#: ../data/ui/prefs-dialog.ui.h:18 ../templates/paper-sizes.xml.h:35
+msgid "US Letter"
+msgstr "US·Letero"
+
+#: ../data/ui/prefs-dialog.ui.h:19
+#, fuzzy
+msgid "Units"
+msgstr "Sen nomo"
+
+#: ../data/ui/property-bar.ui.h:1
+msgid "Bold"
+msgstr "Dika"
+
+#: ../data/ui/property-bar.ui.h:2
+msgid "Center align"
+msgstr "Laŭliniiĝu centre"
+
+#: ../data/ui/property-bar.ui.h:7
+msgid "Left align"
+msgstr "Laŭliniigu maldekstren"
 
-#: data/glade/template-designer.glade.h:2
+#: ../data/ui/property-bar.ui.h:10
+msgid "Right align"
+msgstr "laŭliniigu dekstren"
+
+#: ../data/ui/template-designer.ui.h:1
 msgid "(e.g., \"Mailing Labels,\" \"Business Cards,\" ...)"
 msgstr "(es., \"Etichette di spedizione,\" \"Vizitkartoj,\" ...)"
 
-#: data/glade/template-designer.glade.h:3
+#: ../data/ui/template-designer.ui.h:2
 msgid "(e.g., 8163A)"
 msgstr "(es. 8163A)"
 
-#: data/glade/template-designer.glade.h:4
+#: ../data/ui/template-designer.ui.h:3
 msgid "(e.g., Avery, Acme, ...)"
 msgstr "(es. Avery, Acme, ...)"
 
-#: data/glade/template-designer.glade.h:6
+#: ../data/ui/template-designer.ui.h:4
 msgid "1. Outer radius:"
 msgstr "1. Ekstera radiuso:"
 
-#: data/glade/template-designer.glade.h:7
+#: ../data/ui/template-designer.ui.h:5
 msgid "1. Radius:"
 msgstr "1. Radiuso:"
 
-#: data/glade/template-designer.glade.h:8
+#: ../data/ui/template-designer.ui.h:6
 msgid "1. Width:"
 msgstr "1. Larĝo:"
 
-#: data/glade/template-designer.glade.h:9
+#: ../data/ui/template-designer.ui.h:7
 msgid "2. Height:"
 msgstr "2. Alto:"
 
-#: data/glade/template-designer.glade.h:10
+#: ../data/ui/template-designer.ui.h:8
 msgid "2. Inner radius:"
 msgstr "2. Interna radiuso:"
 
-#: data/glade/template-designer.glade.h:11
+#: ../data/ui/template-designer.ui.h:9
 msgid "2. Waste (overprint allowed):"
 msgstr "2. Forĵetaĵo (surskrivebla):"
 
-#: data/glade/template-designer.glade.h:12
+#: ../data/ui/template-designer.ui.h:10
 msgid "3. Clipping width:"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:13
+#: ../data/ui/template-designer.ui.h:11
 msgid "3. Margin"
 msgstr "3. Marĝeno"
 
-#: data/glade/template-designer.glade.h:14
+#: ../data/ui/template-designer.ui.h:12
 msgid "3. Round (radius of corner):"
 msgstr "3. Rondo (radiuso de angulo):"
 
-#: data/glade/template-designer.glade.h:15
+#: ../data/ui/template-designer.ui.h:13
 msgid "4. Clipping height:"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:16
+#: ../data/ui/template-designer.ui.h:14
 msgid "4. Horiz. waste (overprint allowed):"
 msgstr "4. Horiz. forĵetaĵo (surskrivebla):"
 
-#: data/glade/template-designer.glade.h:17
+#: ../data/ui/template-designer.ui.h:15
 msgid "5. Vert. waste (overprint allowed):"
 msgstr "5. Vert. forĵetaĵo (surskrivebla):"
 
-#: data/glade/template-designer.glade.h:18
+#: ../data/ui/template-designer.ui.h:16
 msgid "5. Waste (overprint allowed):"
 msgstr "5. Forĵetaĵo (surskrivebla):"
 
-#: data/glade/template-designer.glade.h:19
+#: ../data/ui/template-designer.ui.h:17
 msgid "6. Margin"
 msgstr "6. Marĝeno"
 
-#: data/glade/template-designer.glade.h:20
+#: ../data/ui/template-designer.ui.h:18
 msgid "Brand/Manufacturer:"
 msgstr "Marca/Produttore:"
 
-#: data/glade/template-designer.glade.h:21
+#: ../data/ui/template-designer.ui.h:19
 msgid "CD/DVD (including credit card CDs)"
 msgstr "KD/DVD"
 
-#: data/glade/template-designer.glade.h:22
+#: ../data/ui/template-designer.ui.h:20
 msgid ""
 "Congratulations!\n"
 "\n"
@@ -1854,23 +2422,19 @@ msgstr ""
 "Male, alklaku sur \"Nuligu\" por nuligi\n"
 "vian projekton tutan aŭ \"Retroen\" por ankoraŭ redakti tiun ĉi desegnon."
 
-#: data/glade/template-designer.glade.h:30
-msgid "Design Completed"
-msgstr "Fino de Projektado"
-
-#: data/glade/template-designer.glade.h:31
+#: ../data/ui/template-designer.ui.h:28
 msgid "Distance from left edge (x0):"
 msgstr "Distanco el maldekstra rando (x0):"
 
-#: data/glade/template-designer.glade.h:32
+#: ../data/ui/template-designer.ui.h:29
 msgid "Distance from top edge (y0):"
 msgstr "Distanco el supra rando (y0):"
 
-#: data/glade/template-designer.glade.h:34
+#: ../data/ui/template-designer.ui.h:31
 msgid "Horizontal pitch (dx):"
 msgstr "Horizontala kvanto (dx):"
 
-#: data/glade/template-designer.glade.h:35
+#: ../data/ui/template-designer.ui.h:32
 msgid ""
 "How many layouts will your template contain? \n"
 "\n"
@@ -1879,81 +2443,44 @@ msgid ""
 "The second example illustrates when two layouts are needed."
 msgstr ""
 
-#: data/glade/template-designer.glade.h:40
-msgid "Label Size (CD/DVD)"
-msgstr "Grando de etikedo (KD/DVD)"
-
-#: data/glade/template-designer.glade.h:41
-msgid "Label Size (Round)"
-msgstr "Grando de etikedo (Ronda)"
-
-#: data/glade/template-designer.glade.h:42
-msgid "Label or Card Shape"
-msgstr "Formo de etikedo aŭ de karto"
-
-#: data/glade/template-designer.glade.h:43
-msgid "Label or Card Size (Rectangular)"
-msgstr "Formo de etikedo aŭ de karto (Rektangula)"
-
-#: data/glade/template-designer.glade.h:44
+#: ../data/ui/template-designer.ui.h:37
 msgid "Layout #1"
 msgstr "Aspekto #1"
 
-#: data/glade/template-designer.glade.h:45
+#: ../data/ui/template-designer.ui.h:38
 msgid "Layout #2"
 msgstr "Aspekto #2"
 
-#: data/glade/template-designer.glade.h:46
-msgid "Layout(s)"
-msgstr "Aspekto(j)"
-
-#: data/glade/template-designer.glade.h:47
-msgid "Name and Description"
-msgstr "Nomo kaj Priskribo"
-
-#: data/glade/template-designer.glade.h:48
+#: ../data/ui/template-designer.ui.h:39
 msgid "Number across (nx):"
 msgstr "Numero transverse (nx):"
 
-#: data/glade/template-designer.glade.h:49
+#: ../data/ui/template-designer.ui.h:40
 msgid "Number down (ny):"
 msgstr "Numero sube (ny):"
 
-#: data/glade/template-designer.glade.h:50
-msgid "Number of Layouts"
-msgstr "Nombro da Aspektoj"
-
-#: data/glade/template-designer.glade.h:51
+#: ../data/ui/template-designer.ui.h:41
 msgid "Number of layouts:"
 msgstr "Nombro da aspektoj:"
 
-#: data/glade/template-designer.glade.h:52
-msgid "Page Size"
-msgstr "Grando de paĝo"
-
-#: data/glade/template-designer.glade.h:54
-msgid "Part #:"
-msgstr "Parto #:"
-
-#: data/glade/template-designer.glade.h:55
+#: ../data/ui/template-designer.ui.h:44
 msgid ""
 "Please enter the following identifying information about the template "
 "stationery."
 msgstr ""
 
-#: data/glade/template-designer.glade.h:56
+#: ../data/ui/template-designer.ui.h:45
 msgid "Please enter the following layout information."
 msgstr "Bonvolu enmeti menditajn informojn."
 
-#: data/glade/template-designer.glade.h:57
+#: ../data/ui/template-designer.ui.h:46
 msgid ""
 "Please enter the following size parameters of a single label in your "
 "template."
 msgstr ""
-"Bonvolu enmeti menditajn parametrojn de grando por unu etikedo en "
-"la modelo."
+"Bonvolu enmeti menditajn parametrojn de grando por unu etikedo en la modelo."
 
-#: data/glade/template-designer.glade.h:58
+#: ../data/ui/template-designer.ui.h:47
 msgid ""
 "Please enter the following size parameters of a single label or card in your "
 "template."
@@ -1961,27 +2488,27 @@ msgstr ""
 "Bonvolu enmeti menditajn parametrojn de grando por unu etikedo aŭ karto en "
 "la modelo."
 
-#: data/glade/template-designer.glade.h:59
+#: ../data/ui/template-designer.ui.h:48
 msgid "Please select the basic shape of the labels or cards."
 msgstr ""
 
-#: data/glade/template-designer.glade.h:60
+#: ../data/ui/template-designer.ui.h:49
 msgid "Please select the page size of the template stationery."
 msgstr "Bonvolu elekti grandon de paĝo por modelo de skribvaroj."
 
-#: data/glade/template-designer.glade.h:61
+#: ../data/ui/template-designer.ui.h:50
 msgid "Print test sheet"
 msgstr "Presu paĝon de elprovo"
 
-#: data/glade/template-designer.glade.h:62
+#: ../data/ui/template-designer.ui.h:51
 msgid "Rectangular or square (can have rounded corners)"
 msgstr "Rektangula aŭ kvadra (ankaŭ kun rondaj anguloj)"
 
-#: data/glade/template-designer.glade.h:63
+#: ../data/ui/template-designer.ui.h:52
 msgid "Round"
 msgstr "Ronda"
 
-#: data/glade/template-designer.glade.h:64
+#: ../data/ui/template-designer.ui.h:53
 msgid ""
 "Templates needing\n"
 "two layouts."
@@ -1989,7 +2516,7 @@ msgstr ""
 "Modeloj necesas\n"
 "du aspektojn."
 
-#: data/glade/template-designer.glade.h:66
+#: ../data/ui/template-designer.ui.h:55
 msgid ""
 "Templates needing only\n"
 "one layout."
@@ -1997,11 +2524,11 @@ msgstr ""
 "Modeloj necesas nur \n"
 "unu aspekton."
 
-#: data/glade/template-designer.glade.h:68
+#: ../data/ui/template-designer.ui.h:57
 msgid "Vertical pitch (dy):"
 msgstr "Vertikala kvanto (dy):"
 
-#: data/glade/template-designer.glade.h:69
+#: ../data/ui/template-designer.ui.h:58
 msgid ""
 "Welcome to the gLabels Template Designer.\n"
 "\n"
@@ -2011,428 +2538,1148 @@ msgstr ""
 "\n"
 "Tio helpos vin por krei personigitan modelon por gLabels."
 
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:1
+msgid "Collate"
+msgstr "Laŭkajere"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:2
+msgid "Copies"
+msgstr "Ekzempleroj"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:3
+msgid "Copies:"
+msgstr "Ekzempleroj:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:5
+#, fuzzy
+msgid "Merge Control"
+msgstr "Kontrolo de kunfando de dokumento"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:6
+msgid "Options"
+msgstr "Opcioj"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:7
+msgid "Sheets:"
+msgstr "Folioj:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:8
+msgid "Start on label"
+msgstr "Starto en etikedo"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:9
+msgid "from:"
+msgstr "de:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:10
+msgid "on 1st sheet"
+msgstr "en 1a folio"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:14
+msgid "to:"
+msgstr "ĝis:"
+
+#: ../data/desktop/glabels-3.0.desktop.in.h:1
+msgid "Create labels, business cards and media covers"
+msgstr "Kreu etikedojn, vizitkartojn kaj kovrilojn de plurmediaĵoj"
+
+#: ../data/desktop/glabels-3.0.desktop.in.h:2
+#, fuzzy
+msgid "gLabels Label Designer 3"
+msgstr "gLabels Designer di etichetta"
+
+#: ../data/mime/glabels-3.0.xml.in.h:1
+msgid "gLabels Project File"
+msgstr "Dosiero de Projekto de gLabels"
+
+#. Envelopes
+#: ../templates/paper-sizes.xml.h:2
+msgid "#10 Envelope"
+msgstr ""
+
 #. Other ISO A series sizes
-#: data/templates/paper-sizes.xml.h:2
+#: ../templates/paper-sizes.xml.h:4
 msgid "A0"
 msgstr "A0"
 
-#: data/templates/paper-sizes.xml.h:3
+#: ../templates/paper-sizes.xml.h:5
 msgid "A1"
 msgstr "A1"
 
-#: data/templates/paper-sizes.xml.h:4
+#: ../templates/paper-sizes.xml.h:6
 msgid "A10"
 msgstr "A10"
 
-#: data/templates/paper-sizes.xml.h:5
+#: ../templates/paper-sizes.xml.h:7
 msgid "A2"
 msgstr "A2"
 
-#: data/templates/paper-sizes.xml.h:6
+#: ../templates/paper-sizes.xml.h:8
 msgid "A3"
 msgstr "A3"
 
-#: data/templates/paper-sizes.xml.h:7
+#. Most popular (at top of list)
+#: ../templates/paper-sizes.xml.h:10
 msgid "A4"
 msgstr "A4"
 
-#: data/templates/paper-sizes.xml.h:8
+#: ../templates/paper-sizes.xml.h:11
 msgid "A5"
 msgstr "A5"
 
-#: data/templates/paper-sizes.xml.h:9
+#: ../templates/paper-sizes.xml.h:12
 msgid "A6"
 msgstr "A6"
 
-#: data/templates/paper-sizes.xml.h:10
+#: ../templates/paper-sizes.xml.h:13
 msgid "A7"
 msgstr "A7"
 
-#: data/templates/paper-sizes.xml.h:11
+#: ../templates/paper-sizes.xml.h:14
 msgid "A8"
 msgstr "A8"
 
-#: data/templates/paper-sizes.xml.h:12
+#: ../templates/paper-sizes.xml.h:15
 msgid "A9"
 msgstr "A9"
 
 #. ISO B series sizes
-#: data/templates/paper-sizes.xml.h:14
+#: ../templates/paper-sizes.xml.h:17
 msgid "B0"
 msgstr "B0"
 
-#: data/templates/paper-sizes.xml.h:15
+#: ../templates/paper-sizes.xml.h:18
 msgid "B1"
 msgstr "B1"
 
-#: data/templates/paper-sizes.xml.h:16
+#: ../templates/paper-sizes.xml.h:19
 msgid "B10"
 msgstr "B10"
 
-#: data/templates/paper-sizes.xml.h:17
+#: ../templates/paper-sizes.xml.h:20
 msgid "B2"
 msgstr "B2"
 
-#: data/templates/paper-sizes.xml.h:18
+#: ../templates/paper-sizes.xml.h:21
 msgid "B3"
 msgstr "B3"
 
-#: data/templates/paper-sizes.xml.h:19
+#: ../templates/paper-sizes.xml.h:22
 msgid "B4"
 msgstr "B4"
 
-#: data/templates/paper-sizes.xml.h:20
+#: ../templates/paper-sizes.xml.h:23
 msgid "B5"
 msgstr "B5"
 
-#: data/templates/paper-sizes.xml.h:21
+#: ../templates/paper-sizes.xml.h:24
 msgid "B6"
 msgstr "B6"
 
-#: data/templates/paper-sizes.xml.h:22
+#: ../templates/paper-sizes.xml.h:25
 msgid "B7"
 msgstr "B7"
 
-#: data/templates/paper-sizes.xml.h:23
+#: ../templates/paper-sizes.xml.h:26
 msgid "B8"
 msgstr "B8"
 
-#: data/templates/paper-sizes.xml.h:24
+#: ../templates/paper-sizes.xml.h:27
 msgid "B9"
 msgstr "B9"
 
-#: data/templates/paper-sizes.xml.h:25
+#: ../templates/paper-sizes.xml.h:28
+msgid "C5"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:29
+msgid "C6"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:30
+msgid "DL"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:31
+msgid "Monarch Envelope"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:32
 msgid "US Executive"
 msgstr "US Executive"
 
 #. Other US paper sizes
-#: data/templates/paper-sizes.xml.h:27
+#: ../templates/paper-sizes.xml.h:34
 msgid "US Legal"
 msgstr "US Legal"
 
+#: ../templates/categories.xml.h:1
+msgid "Any card"
+msgstr ""
+
+#: ../templates/categories.xml.h:2
+#, fuzzy
+msgid "Any label"
+msgstr "Malfermu etikedon"
+
+#. ===================================================================
+#: ../templates/categories.xml.h:3 ../templates/pearl-iso-templates.xml.h:8
+#, fuzzy
+msgid "Business cards"
+msgstr "Vizitkartoj"
+
+#: ../templates/categories.xml.h:4
+msgid "CD/DVD or other media"
+msgstr ""
+
+#: ../templates/categories.xml.h:5
+msgid "Mailing/shipping products"
+msgstr ""
+
+#: ../templates/categories.xml.h:6
+#, fuzzy
+msgid "Rectangular labels"
+msgstr "Rektangulaj Etikedoj"
+
+#. ===================================================================
+#: ../templates/categories.xml.h:7 ../templates/pearl-iso-templates.xml.h:46
+#, fuzzy
+msgid "Round labels"
+msgstr "Plenrondaj etikedoj"
+
+#: ../templates/categories.xml.h:8
+#, fuzzy
+msgid "Square labels"
+msgstr "Kvardaj etikedoj"
+
+#. ===================================================================
+#. ********************************************************************
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:2
-#: data/templates/zweckform-iso-templates.xml.h:2
+#: ../templates/avery-us-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:2
+#: ../templates/dymo-other-templates.xml.h:4
+#: ../templates/maco-us-templates.xml.h:2
+#: ../templates/misc-iso-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:1
+#: ../templates/zweckform-iso-templates.xml.h:2
 msgid "Address Labels"
 msgstr "Etikedo por adreso"
 
 #. ===================================================================
 #. ============================================================
 #. ===================================================================
-#. ======================================================
-#: data/templates/avery-us-templates.xml.h:4
-#: data/templates/avery-iso-templates.xml.h:4
-#: data/templates/zweckform-iso-templates.xml.h:6
-#: data/templates/misc-us-templates.xml.h:3
-#: data/templates/misc-iso-templates.xml.h:17
+#. ********************************************************************
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:8
+#: ../templates/misc-us-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:6
 msgid "Business Cards"
 msgstr "Vizitkartoj"
 
-#: data/templates/avery-us-templates.xml.h:5
+#. ===================================================================
+#. ===============================================================
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:6
+#: ../templates/avery-iso-templates.xml.h:14
+#: ../templates/misc-us-templates.xml.h:8
+#: ../templates/misc-iso-templates.xml.h:16
+#: ../templates/pearl-iso-templates.xml.h:20
+#: ../templates/worldlabel-us-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:8
+msgid "CD/DVD Labels"
+msgstr "Etikedoj por KD/DVD"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:8
 msgid "CD/DVD Labels (Disc Labels)"
 msgstr "Etikedoj por KD/DVD (Etikedoj por diskoj)"
 
-#: data/templates/avery-us-templates.xml.h:6
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:10
 msgid "CD/DVD Labels (Spine Labels)"
 msgstr "Etikedoj por KD/DVD (Etikedoj por diskoj)"
 
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:8
+#: ../templates/avery-us-templates.xml.h:12
+#: ../templates/avery-iso-templates.xml.h:16
+#: ../templates/worldlabel-us-templates.xml.h:3
 msgid "Diskette Labels"
 msgstr "Etikedoj por disketoj"
 
+#. the LSK labels can be torn in half down the center
+#: ../templates/avery-us-templates.xml.h:14
+#, fuzzy
+msgid "Divider Labels"
+msgstr "Etikedoj por KD"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:16
+#: ../templates/avery-other-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:4
+#, fuzzy
+msgid "File Folder Labels"
+msgstr "Arkaj etikedoj por dosieroj"
+
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:10
+#: ../templates/avery-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:5
 msgid "Filing Labels"
 msgstr ""
 
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:12
+#: ../templates/avery-us-templates.xml.h:20
+#: ../templates/worldlabel-us-templates.xml.h:6
 msgid "Full Sheet Labels"
 msgstr "Paĝo plena da ekikedoj"
 
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:14
+#: ../templates/avery-us-templates.xml.h:22
+#, fuzzy
+msgid "ID Labels"
+msgstr "Etikedoj por KD"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:24
+#, fuzzy
+msgid "Index Cards"
+msgstr "Vizitkartoj"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:26
 msgid "Large Round Labels"
 msgstr "Grandaj rondigitaj etikedoj"
 
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:16
+#: ../templates/avery-us-templates.xml.h:28
 msgid "Name Badge Labels"
 msgstr "Nomŝildetoj"
 
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:18
+#: ../templates/avery-us-templates.xml.h:30
+msgid "Post cards"
+msgstr ""
+
+#. ===================================================================
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:32
+#: ../templates/dymo-other-templates.xml.h:12
+#: ../templates/worldlabel-us-templates.xml.h:8
 msgid "Return Address Labels"
 msgstr "Etikedoj por adreso de sendinto"
 
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:20
+#: ../templates/avery-us-templates.xml.h:34
+#: ../templates/maco-us-templates.xml.h:3
+#: ../templates/misc-us-templates.xml.h:30
+#: ../templates/worldlabel-us-templates.xml.h:9
+#, fuzzy
+msgid "Round Labels"
+msgstr "Plenrondaj etikedoj"
+
+#. ===================================================================
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:36
+#: ../templates/uline-us-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:10
 msgid "Shipping Labels"
 msgstr "Etikedoj por ekspedo"
 
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:22
+#: ../templates/avery-us-templates.xml.h:38
 msgid "Small Round Labels"
 msgstr "Malgrandaj rondigitaj etikedoj"
 
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:24
+#: ../templates/avery-us-templates.xml.h:40
 msgid "Square Labels"
 msgstr "Kvardaj etikedoj"
 
-#: data/templates/avery-us-templates.xml.h:25
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:42
+msgid "Tent Cards"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:44
+#: ../templates/worldlabel-us-templates.xml.h:11
 msgid "Video Tape Face Labels"
 msgstr "Etikedoj por videokasedo (faco)"
 
-#: data/templates/avery-us-templates.xml.h:26
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:46
+#: ../templates/worldlabel-us-templates.xml.h:12
 msgid "Video Tape Spine Labels"
 msgstr "Etikedoj por videokasedo (dorso)"
 
 #. ===================================================================
-#: data/templates/avery-iso-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:4
 msgid "Address labels"
 msgstr "Etikedoj por adreso"
 
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:6
+#, fuzzy
+msgid "Allround labels"
+msgstr "Plenrondaj etikedoj"
+
 #. ===============================================================
-#: data/templates/avery-iso-templates.xml.h:6
+#: ../templates/avery-iso-templates.xml.h:10
 msgid "CD Booklet"
 msgstr "CD Booklet"
 
 #. ===============================================================
-#: data/templates/avery-iso-templates.xml.h:8
+#: ../templates/avery-iso-templates.xml.h:12
 msgid "CD Inlet"
 msgstr "CD Inlet"
 
-#. ===============================================================
-#. ===================================================================
-#: data/templates/avery-iso-templates.xml.h:10
-#: data/templates/zweckform-iso-templates.xml.h:8
-#: data/templates/misc-us-templates.xml.h:5
-#: data/templates/misc-iso-templates.xml.h:21
-msgid "CD/DVD Labels"
-msgstr "Etikedoj por KD/DVD"
-
 #. ===================================================================
-#: data/templates/avery-iso-templates.xml.h:12
+#: ../templates/avery-iso-templates.xml.h:18
 msgid "Diskette labels"
 msgstr "Etikedoj por disketoj"
 
 #. ===============================================================
 #. ===================================================================
-#: data/templates/avery-iso-templates.xml.h:14
-#: data/templates/zweckform-iso-templates.xml.h:14
-#: data/templates/misc-iso-templates.xml.h:35
+#: ../templates/avery-iso-templates.xml.h:20
+#: ../templates/misc-us-templates.xml.h:20
+#: ../templates/misc-iso-templates.xml.h:36
+#: ../templates/zweckform-iso-templates.xml.h:16
 msgid "Mailing Labels"
 msgstr "Etikedoj por poŝto"
 
 #. ===================================================================
-#: data/templates/avery-iso-templates.xml.h:16
+#: ../templates/avery-iso-templates.xml.h:22
 msgid "Mailing labels"
 msgstr "Etikedoj por poŝto"
 
 #. ===================================================================
-#: data/templates/avery-iso-templates.xml.h:18
+#: ../templates/avery-iso-templates.xml.h:24
 msgid "Mini Address Labels"
 msgstr "Eta etikedoj por adreso"
 
 #. ===================================================================
-#: data/templates/avery-iso-templates.xml.h:20
+#: ../templates/avery-iso-templates.xml.h:26
+#, fuzzy
+msgid "Mini Labels"
+msgstr "Etikedoj por Mini-KD"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:28
 msgid "Shipping labels"
 msgstr "Etikedo por ekspedo"
 
-#. ===================================================================
-#: data/templates/zweckform-iso-templates.xml.h:4
-msgid "Allround Labels"
-msgstr "Plenrondaj etikedoj"
+#: ../templates/brother-other-templates.xml.h:1
+msgid "Multi Purpose Labels 17mm x 54mm"
+msgstr ""
+
+#: ../templates/brother-other-templates.xml.h:2
+#, fuzzy
+msgid "Shipping Labels 62mm x 100mm"
+msgstr "Etikedoj por ekspedo"
+
+#.
+#. *********************************************************************
+#. *********************************************************************
+#. Labels for the Brother QL-500/550/650 PC Label Printers
+#.
+#. These templates work with the Brother Linux Printer CUPS Driver.  It
+#. is unknown if these work correctly with the foomatic print driver for
+#. these printers.
+#.
+#. One difference from typical templates is that the template size is
+#. not the actual media size - it is the size of the printable area,
+#. which is smaller than the media size.  This is because (at least with
+#. the Brother driver) coordinates are relative the corner of this area.
+#.
+#. *********************************************************************
+#. *********************************************************************
+#.
+#: ../templates/brother-other-templates.xml.h:20
+#, fuzzy
+msgid "Standard Address Labels 29mm x 90mm"
+msgstr "Etikedoj por adreso de sendinto"
 
 #. ===================================================================
-#: data/templates/zweckform-iso-templates.xml.h:10
-msgid "Correction and Cover-up Labels"
-msgstr "Etikedoj por korektado kaj kovrado"
+#: ../templates/dymo-other-templates.xml.h:2
+msgid "3.5in Diskette"
+msgstr ""
 
 #. ===================================================================
-#: data/templates/zweckform-iso-templates.xml.h:12
-msgid "Lever Arch File Labels"
-msgstr "Levilaj arkaj etikedoj por dosieroj"
+#: ../templates/dymo-other-templates.xml.h:6
+#, fuzzy
+msgid "File Folder"
+msgstr "Koloro de plenigo"
 
 #. ===================================================================
-#: data/templates/zweckform-iso-templates.xml.h:16
-msgid "QSL-Karten Etiketten 70mm x 50,8mm"
-msgstr "QSL-Karten Etiketten 70mm x 50,8mm"
+#: ../templates/dymo-other-templates.xml.h:8
+msgid "Hanging Folder"
+msgstr ""
 
 #. ===================================================================
-#: data/templates/zweckform-iso-templates.xml.h:18
-msgid "Rectangular Copier Labels"
-msgstr "Rektangulaj etikedoj por kopiado"
+#: ../templates/dymo-other-templates.xml.h:10
+#, fuzzy
+msgid "Large Address Labels"
+msgstr "Etikedo por adreso"
 
 #. ===================================================================
-#: data/templates/zweckform-iso-templates.xml.h:20
-#: data/templates/misc-iso-templates.xml.h:44
-msgid "Rectangular Labels"
-msgstr "Rektangulaj Etikedoj"
+#: ../templates/dymo-other-templates.xml.h:14
+#, fuzzy
+msgid "Shipping Address Labels"
+msgstr "Eta etikedoj por adreso"
 
 #. ===================================================================
-#: data/templates/zweckform-iso-templates.xml.h:22
-msgid "Video Labels (back)"
-msgstr "Etikedo por Video (retro)"
-
-#: data/templates/misc-us-templates.xml.h:1
+#: ../templates/misc-us-templates.xml.h:2
 msgid "Business Card CD"
 msgstr "Vizitkarto KD"
 
-#: data/templates/misc-us-templates.xml.h:4
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:6
 msgid "CD Template Rectangles"
 msgstr "Modelaj Rektanguloj por KD"
 
-#: data/templates/misc-us-templates.xml.h:6
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:10
 msgid "CD/DVD Labels (Face Only)"
 msgstr "Etikedoj por KD/DVD (nur faco)"
 
 #. ===================================================================
-#: data/templates/misc-us-templates.xml.h:7
-#: data/templates/misc-iso-templates.xml.h:23
+#: ../templates/misc-us-templates.xml.h:12
+#: ../templates/misc-iso-templates.xml.h:18
 msgid "CD/DVD Labels (face only)"
 msgstr "Etikedoj por KD/DVD (nur faco)"
 
 #. ===================================================================
-#: data/templates/misc-us-templates.xml.h:9
+#: ../templates/misc-us-templates.xml.h:14
 msgid "Cassette Labels"
 msgstr "Etikedoj por kasedoj"
 
 #. ===================================================================
-#: data/templates/misc-us-templates.xml.h:11
+#: ../templates/misc-us-templates.xml.h:16
 msgid "DLT Labels"
 msgstr "Etikedoj DLT"
 
 #. ===================================================================
-#: data/templates/misc-us-templates.xml.h:13
+#: ../templates/misc-us-templates.xml.h:18
+#, fuzzy
+msgid "Jewel Case Booklet"
+msgstr "CD Booklet"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:22
 msgid "Microtube labels"
 msgstr "Mikrotubaj etikedoj"
 
-#: data/templates/misc-us-templates.xml.h:14
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:24
 msgid "Mini-CD Labels"
 msgstr "Etikedoj por Mini-KD"
 
-#: data/templates/misc-us-templates.xml.h:15
+#: ../templates/misc-us-templates.xml.h:25
 msgid "PRO CD Labels 2-up (CD spine only)"
 msgstr "Etikedoj por PRO CD (nur KD-dorso)"
 
-#: data/templates/misc-us-templates.xml.h:16
+#: ../templates/misc-us-templates.xml.h:26
 msgid "PRO CD Labels 2-up (Face only)"
 msgstr "Etikedoj por PRO CD (nur faco)"
 
-#: data/templates/misc-us-templates.xml.h:17
-#: data/templates/misc-iso-templates.xml.h:42
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:42
 msgid "PRO CD Labels 2-up (face only)"
 msgstr "Etikedoj por PRO CD (nur faco)"
 
-#: data/templates/misc-us-templates.xml.h:18
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:32
 msgid "Slimline CD Case (rightside up)"
 msgstr "Subtila KD-ujo (dekstrosupra)"
 
-#: data/templates/misc-us-templates.xml.h:19
+#: ../templates/misc-us-templates.xml.h:33
 msgid "Slimline CD Case (upside down)"
 msgstr "Subtila KD-ujo (kaposuba)"
 
-#: data/templates/misc-iso-templates.xml.h:1
-msgid "Agipa 119488: Business Cards"
-msgstr "Agipa 119488: Vizitkartoj"
-
-#. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:3
-msgid "Allround Labels --24"
-msgstr "Plenrondaj etikedoj --24"
-
-#. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:5
-msgid "Allround Labels --44"
-msgstr "Plenrondaj etikedoj --44"
-
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:7
-msgid "Allround Labels --64"
-msgstr "Plenrondaj etikedoj --64"
-
-#. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:9
-msgid "Allround Labels --65"
-msgstr "Plenrondaj etikedoj --65"
+#: ../templates/misc-iso-templates.xml.h:4
+#: ../templates/zweckform-iso-templates.xml.h:4
+msgid "Allround Labels"
+msgstr "Plenrondaj etikedoj"
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:11
+#: ../templates/misc-iso-templates.xml.h:6
 msgid "Arch File Labels"
 msgstr "Arkaj etikedoj por dosieroj"
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:13
+#: ../templates/misc-iso-templates.xml.h:8
 msgid "Arch File Labels (large)"
 msgstr "Arkaj etikedoj por dosieroj (grandaj)"
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:15
+#: ../templates/misc-iso-templates.xml.h:10
 msgid "Arch File Labels (small)"
 msgstr "Arkaj etikedoj por dosieroj (etaj)"
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:19
+#: ../templates/misc-iso-templates.xml.h:14
 msgid "CD Labels"
 msgstr "Etikedoj por KD"
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:25
+#: ../templates/misc-iso-templates.xml.h:20
 msgid "CD/DVD Labels Standard Format (face only)"
 msgstr "Etikedoj kun standarta formato por KD/DVD (nur faco)"
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:27
+#: ../templates/misc-iso-templates.xml.h:22
 msgid "Diskette Labels (face only)"
 msgstr "Etikedoj por disketoj (nur faco)"
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:29
+#: ../templates/misc-iso-templates.xml.h:24
 msgid "EPSON Photo Stickers 16"
 msgstr "EPSON Photo Stickers 16"
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:31
+#: ../templates/misc-iso-templates.xml.h:26
 msgid "Etiketten"
 msgstr "Etiketten"
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:33
+#: ../templates/misc-iso-templates.xml.h:28
 msgid "Fridge Magnet Stickers"
 msgstr "Magnetaĵoj por fridujo"
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:37
-msgid "Mailing Labels --14"
-msgstr "Etikedo por poŝto --14"
+#: ../templates/misc-iso-templates.xml.h:30
+#, fuzzy
+msgid "General Labels"
+msgstr "Etikedoj por poŝto"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:32
+msgid "Inkjet/Laser Labels 70x37mm"
+msgstr ""
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:39
+#: ../templates/misc-iso-templates.xml.h:38
 msgid "Mailing Labels-2 columns"
 msgstr "Etikedo por poŝto kun 2 kolumnoj"
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:41
+#: ../templates/misc-iso-templates.xml.h:40
 msgid "Mailing Labels-3 columns"
 msgstr "Etikedo por poŝto kun 3 kolumnoj"
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:46
+#: ../templates/misc-iso-templates.xml.h:44
+#: ../templates/zweckform-iso-templates.xml.h:24
+msgid "Rectangular Labels"
+msgstr "Rektangulaj Etikedoj"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:46
+#, fuzzy
+msgid "Universal Labels"
+msgstr "Eta etikedoj por adreso"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:48
 msgid "Video Labels (face only)"
 msgstr "Etikedoj por video (nur frontispico)"
 
-#: data/desktop/glabels.desktop.in.h:1
-msgid "Create labels, business cards and media covers"
-msgstr "Kreu etikedojn, vizitkartojn kaj kovrilojn de plurmediaĵoj"
+#. ===================================================================
+#: ../templates/misc-other-templates.xml.h:2
+#, fuzzy
+msgid "Multi-Purpose Labels"
+msgstr "Mikrotubaj etikedoj"
 
-#: data/desktop/glabels.desktop.in.h:2
-msgid "gLabels Label Designer"
-msgstr "gLabels Designer di etichetta"
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:4
+#, fuzzy
+msgid "Address Labels (STAMPIT)"
+msgstr "Etikedo por adreso"
 
-#: data/mime/glabels.keys.in.h:1 data/mime/glabels.xml.in.h:1
-msgid "gLabels Project File"
-msgstr "Dosiero de Projekto de gLabels"
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:6
+#, fuzzy
+msgid "Bottle labels"
+msgstr "Etikedoj por disketoj"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:10
+msgid "Business cards glossy, both sides printable"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:12
+#, fuzzy
+msgid "Business cards high glossy"
+msgstr "Vizitkartoj"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:14
+#, fuzzy
+msgid "Business cards punched"
+msgstr "Vizitkartoj"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:16
+#, fuzzy
+msgid "Business cards punched dull"
+msgstr "Vizitkartoj"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:18
+#, fuzzy
+msgid "Business cards punched glossy"
+msgstr "Vizitkartoj"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:22
+#, fuzzy
+msgid "Floppy disk labels"
+msgstr "Etikedoj por disketoj"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:24
+#, fuzzy
+msgid "Foldable business cards"
+msgstr "Vizitkartoj"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:26
+msgid "Foldable business cards glossy/dull"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:28
+#, fuzzy
+msgid "Labels A4"
+msgstr "Etikedoj"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:30
+#, fuzzy
+msgid "Labels A5"
+msgstr "Etikedoj"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:32
+#, fuzzy
+msgid "Labels A6"
+msgstr "Etikedoj"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:34
+msgid "Membership cards"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:36
+msgid "Membership cards, both sides printable"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:38
+msgid "Name plates"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:40
+msgid "Passport photo labels glossy"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:42
+#, fuzzy
+msgid "Photo labels"
+msgstr "Pri glabels"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:44
+msgid "Photo labels semiglossy"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:48
+#, fuzzy
+msgid "SD card labels"
+msgstr "Kvardaj etikedoj"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:50
+msgid "Self-adhesive film transparent"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:52
+msgid "Self-adhesive film weatherproof"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:54
+msgid "Self-adhesive labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:56
+msgid "Self-adhesive window film"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:10
+msgid "Correction and Cover-up Labels"
+msgstr "Etikedoj por korektado kaj kovrado"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:12
+#, fuzzy
+msgid "File Back Labels"
+msgstr "Arkaj etikedoj por dosieroj"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:14
+msgid "Lever Arch File Labels"
+msgstr "Levilaj arkaj etikedoj por dosieroj"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:18
+msgid "Multi-purpose Stick+Lift Labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:20
+msgid "QSL-Karten Etiketten 70mm x 50,8mm"
+msgstr "QSL-Karten Etiketten 70mm x 50,8mm"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:22
+msgid "Rectangular Copier Labels"
+msgstr "Rektangulaj etikedoj por kopiado"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:26
+msgid "Video Labels (back)"
+msgstr "Etikedo por Video (retro)"
+
+#~ msgid "Could not initialize Bonobo!\n"
+#~ msgstr "Estas neeble prepari Bonobon!\n"
+
+#~ msgid "print this message"
+#~ msgstr "presu tiun ĉi mesaĝon"
+
+#~ msgid "print the version of glabels-batch being used"
+#~ msgstr "presu version de uzata staplo de glabels"
+
+#~ msgid "[OPTION...] GLABELS_FILE..."
+#~ msgstr "[OPTION...] GLABELS_FILE..."
+
+#~ msgid "missing glabels file\n"
+#~ msgstr "mankanta dosero de glabels\n"
+
+#~ msgid " "
+#~ msgstr " "
+
+#~ msgid "Media Type"
+#~ msgstr "Speco de plurmedio"
+
+#~ msgid "Open"
+#~ msgstr "Malfermu"
+
+#~ msgid "Align _Horizontally"
+#~ msgstr "Laŭlinnigu _Horizontale"
+
+#~ msgid "Align _Vertically"
+#~ msgstr "Laŭlinnigu _Verticale"
+
+#~ msgid "_Delete"
+#~ msgstr "_Forigu"
+
+#~ msgid "Print"
+#~ msgstr "Presu"
+
+#~ msgid "_Job"
+#~ msgstr "_Laboro"
+
+#~ msgid "P_rinter"
+#~ msgstr "P_rintilo"
+
+#~ msgid "Print preview"
+#~ msgstr "Antaŭmontro de presado"
+
+#~ msgid "Importing from glabels 1.91 format"
+#~ msgstr "Importante el formato de glabels 1.91"
+
+#~ msgid "Text file with comma delimeters (CSV)"
+#~ msgstr "Teksta dosiero kun komo kiel disigilo (CSV)"
+
+#~ msgid "Text file with colon delimeters"
+#~ msgstr "Teksta dosiero kun komo kiel disigilo"
+
+#~ msgid "Text file with tab delimeters"
+#~ msgstr "Teksta dosiero kun TAB kiel disigilo"
+
+#~ msgid "%s x %s %s"
+#~ msgstr "%s x %s %s"
+
+#~ msgid "%.5g x %.5g %s"
+#~ msgstr "%.5g x %.5g %s"
+
+#~ msgid "%.5g %s diameter"
+#~ msgstr "%.5g %s diametro"
+
+#~ msgid "Choose Custom Color"
+#~ msgstr "Elektu personigitan koloron"
+
+#~ msgid "light brown"
+#~ msgstr "hela bruna koloro"
+
+#~ msgid "brown gold"
+#~ msgstr "malhela oro"
+
+#~ msgid "dark green #2"
+#~ msgstr "malhela verdo #2"
+
+#~ msgid "navy"
+#~ msgstr "mararmea bluo"
+
+#~ msgid "purple #2"
+#~ msgstr "viola koloro #2"
+
+#~ msgid "very dark gray"
+#~ msgstr "tre malhela grizo"
+
+#~ msgid "red-orange"
+#~ msgstr "ruĝ-oranĝo"
+
+#~ msgid "dull blue"
+#~ msgstr "nebrila bluo"
+
+#~ msgid "dull purple"
+#~ msgstr "nebrila violo"
+
+#~ msgid "dark grey"
+#~ msgstr "malhela grizo"
+
+#~ msgid "red"
+#~ msgstr "ruĝo"
+
+#~ msgid "lime"
+#~ msgstr "limeta koloro"
+
+#~ msgid "dull blue #2"
+#~ msgstr "nebrila bluo #2"
+
+#~ msgid "sky blue #2"
+#~ msgstr "ĉielbluo #2"
+
+#~ msgid "gray"
+#~ msgstr "grizo"
+
+#~ msgid "magenta"
+#~ msgstr "intense karmezina"
+
+#~ msgid "bright orange"
+#~ msgstr "brila oranĝo"
+
+#~ msgid "bright blue"
+#~ msgstr "brila bluo"
+
+#~ msgid "red purple"
+#~ msgstr "ruĝ-violo"
+
+#~ msgid "light grey"
+#~ msgstr "hela grizo"
+
+#~ msgid "light orange"
+#~ msgstr "hela oranĝo"
+
+#~ msgid "light blue"
+#~ msgstr "hela bluo"
+
+#~ msgid "light purple"
+#~ msgstr "hela violo"
+
+#~ msgid "purplish blue"
+#~ msgstr "viol-bluo"
+
+#~ msgid "dark purple"
+#~ msgstr "malhela violo"
+
+#~ msgid "No paper files found!"
+#~ msgstr "Neniu papera dosiero estis trovita!!"
+
+#~ msgid "Close"
+#~ msgstr "Fermu"
+
+#~ msgid "Cu_t"
+#~ msgstr "El_tondu"
+
+#~ msgid "Customize"
+#~ msgstr "Personigu"
+
+#~ msgid "Customize toolbars"
+#~ msgstr "Personigu ilarstangojn"
+
+#~ msgid "Dump XML"
+#~ msgstr "Ŝutu XML"
+
+#~ msgid "Dump the UI Xml description"
+#~ msgstr "Ŝutu priskribon de UI xml"
+
+#~ msgid "Font selector"
+#~ msgstr "Elektilo de tiparo"
+
+#~ msgid "Icon and _Text"
+#~ msgstr "Ikono kaj _Teksto"
+
+#~ msgid "M_arkup"
+#~ msgstr "M_arkado"
+
+#~ msgid "New"
+#~ msgstr "Nova"
+
+#~ msgid "Object property editor"
+#~ msgstr "Redaktilo de ecoj por objekto"
+
+#~ msgid "Only show icons in the main toolbar"
+#~ msgstr "Videbligu nur ikonojn en ĉefa ilarstango"
+
+#~ msgid "Pr_eferences..."
+#~ msgstr "A_gordoj..."
+
+#~ msgid "Properties"
+#~ msgstr "Ecoj"
+
+#~ msgid "Quit"
+#~ msgstr "Eliro"
+
+#~ msgid "Redo the undone action"
+#~ msgstr "Refaru la lastan malfaritan agon"
+
+#~ msgid "Save"
+#~ msgstr "Konservu"
+
+#~ msgid "Save As"
+#~ msgstr "Konservu kiel"
+
+#~ msgid "Select _All"
+#~ msgstr "Elektu _Ĉion"
+
+#~ msgid "Set main toolbar button style according to desktop default"
+#~ msgstr "Agordu butonstilon de ĉefa ilarstango laŭ defaŭlto de labortablo"
+
+#~ msgid "Show _Tooltips"
+#~ msgstr "Mon_tru Sugestojn"
+
+#~ msgid "Show both icons and texts in the main toolbar"
+#~ msgstr "Vidigu kaj ikonojn kaj tekstojn en la ĉefa ilarstango"
+
+#~ msgid "Show tooltips in the drawing toolbar"
+#~ msgstr "Vidigu sugestojn en la ilarstango de desegno"
+
+#~ msgid "Show tooltips in the main toolbar"
+#~ msgstr "Vidigu sugestojn en la ĉefa ilarstango"
+
+#~ msgid "Show tooltips in the property toolbar"
+#~ msgstr "Vidigu sugestojn en la ilarstango de ecoj"
+
+#~ msgid "Template Designer"
+#~ msgstr "Desegnilo de Modeloj"
+
+#~ msgid "U_n-select All"
+#~ msgstr "Malelektu Ĉio_n"
+
+#~ msgid "Undo the last action"
+#~ msgstr "Nuligu lastan agon"
+
+#~ msgid "_About..."
+#~ msgstr "_Pri..."
+
+#~ msgid "_Bottoms"
+#~ msgstr "Su_be"
+
+#~ msgid "_Contents"
+#~ msgstr "_Entenoj"
+
+#~ msgid "_Copy"
+#~ msgstr "_Kopiu"
+
+#~ msgid "_Create Object"
+#~ msgstr "_Kreu Objekton"
+
+#~ msgid "_Debug"
+#~ msgstr "_Sencimigo"
+
+#~ msgid "_Desktop Default"
+#~ msgstr "Defaŭlto por Labortabulo"
+
+#~ msgid "_Drawing Toolbar"
+#~ msgstr "Ilarstango de _Desegno"
+
+#~ msgid "_Icon"
+#~ msgstr "_Ikono"
+
+#~ msgid "_Main Toolbar"
+#~ msgstr "_Ĉefa Ilarstango"
+
+#~ msgid "_Merge Properties..."
+#~ msgstr "_Kunfandu Ecojn..."
+
+#~ msgid "_Paste"
+#~ msgstr "_Enmetu"
+
+#~ msgid "_Property Toolbar"
+#~ msgstr "Ilarstango de Eco_j"
+
+#~ msgid "*"
+#~ msgstr "*"
+
+#~ msgid "<span weight=\"bold\">Default page size</span>"
+#~ msgstr "<span weight=\"bold\">Defaŭlta grando de paĝo</span>"
+
+#~ msgid "<span weight=\"bold\">Fill</span>"
+#~ msgstr "<span weight=\"bold\">Plenigo</span>"
+
+#~ msgid "<span weight=\"bold\">Line</span>"
+#~ msgstr "<span weight=\"bold\">Linio</span>"
+
+#~ msgid "<span weight=\"bold\">Text</span>"
+#~ msgstr "<span weight=\"bold\">Teksto</span>"
+
+#~ msgid "<span weight=\"bold\">Units</span>"
+#~ msgstr "<span weight=\"bold\">Unitoj</span>"
+
+#~ msgid "00000000000 00000"
+#~ msgstr "00000000000 00000"
+
+#~ msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
+#~ msgstr "<span weight=\"bold\" size=\"larger\">Xxx ecoj de objekto</span>"
+
+#~ msgid "Load image"
+#~ msgstr "Ŝargu bildon"
+
+#~ msgid "  "
+#~ msgstr "  "
+
+#~ msgid "Label or Card Size (Rectangular)"
+#~ msgstr "Formo de etikedo aŭ de karto (Rektangula)"
+
+#~ msgid "Agipa 119488: Business Cards"
+#~ msgstr "Agipa 119488: Vizitkartoj"
+
+#~ msgid "Allround Labels --24"
+#~ msgstr "Plenrondaj etikedoj --24"
+
+#~ msgid "Allround Labels --44"
+#~ msgstr "Plenrondaj etikedoj --44"
+
+#~ msgid "Allround Labels --64"
+#~ msgstr "Plenrondaj etikedoj --64"
+
+#~ msgid "Allround Labels --65"
+#~ msgstr "Plenrondaj etikedoj --65"
 
+#~ msgid "Mailing Labels --14"
+#~ msgstr "Etikedo por poŝto --14"
index bbf8dc241321b87f95064ac53bb26d59f16f8c05..0657b9a61ab97b02bbc81da8183f6223a0b0aae6 100644 (file)
--- a/po/es.po
+++ b/po/es.po
 # Spanish translation of glabels.
 # sergio rivadero <sergiorivadero@argentina.com>, 2005.
 # Jorge González <jorgegonz@svn.gnome.org>, 2010.
+# Daniel Mustieles <daniel.mustieles@gmail.com>, 2010, 2011.
+#
 msgid ""
 msgstr ""
 "Project-Id-Version: glabels 2.1.0\n"
 "Report-Msgid-Bugs-To: http://sourceforge.net/tracker/?group_id=46122&ati\n"
-"POT-Creation-Date: 2010-04-07 16:45+0000\n"
-"PO-Revision-Date: 2010-04-11 13:57+0200\n"
-"Last-Translator: Jorge González <jorgegonz@svn.gnome.org>\n"
+"POT-Creation-Date: 2011-04-17 04:00+0000\n"
+"PO-Revision-Date: 2011-04-29 17:53+0200\n"
+"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
 "Language-Team: Español <gnome-es-list@gnome.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/glabels.c:75 ../src/glabels-batch.c:70
-msgid "[FILE...]"
-msgstr "[ARCHIVO…]"
+#: ../src/bc-backends.c:81
+msgid "Built-in"
+msgstr "Integrado"
 
-#: ../src/glabels.c:91
-msgid "- gLabels label designer"
-msgstr "- diseñador de etiquetas gLabels"
+#: ../src/bc-backends.c:101
+msgid "POSTNET (any)"
+msgstr "POSTNET (cualquiera)"
 
-#: ../src/glabels-batch.c:54
-msgid "set output filename (default=\"output.pdf\")"
-msgstr "establecer nombre de archivo de salida (predeterminado=\"output.pdf\")"
+#: ../src/bc-backends.c:104
+msgid "POSTNET-5 (ZIP only)"
+msgstr "POSTNET-5 (solo código postal)"
 
-#: ../src/glabels-batch.c:54 ../src/glabels-batch.c:68
-msgid "filename"
-msgstr "nombre de archivo"
+#: ../src/bc-backends.c:107
+msgid "POSTNET-9 (ZIP+4)"
+msgstr "POSTNET-9 (código postal+4)"
 
-#: ../src/glabels-batch.c:56
-msgid "number of sheets (default=1)"
-msgstr "número de hojas (predeterminado=1)"
+#: ../src/bc-backends.c:110
+msgid "POSTNET-11 (DPBC)"
+msgstr "POSTNET-11 (DPBC)"
 
-#: ../src/glabels-batch.c:56
-msgid "sheets"
-msgstr "hojas"
+#: ../src/bc-backends.c:113
+msgid "CEPNET"
+msgstr "CEPNET"
 
-#: ../src/glabels-batch.c:58
-msgid "number of copies (default=1)"
-msgstr "número de copias (predeterminado=1)"
+#: ../src/bc-backends.c:116
+msgid "One Code"
+msgstr "Código One"
 
-#: ../src/glabels-batch.c:58
-msgid "copies"
-msgstr "copias"
+#: ../src/bc-backends.c:119 ../src/bc-backends.c:175 ../src/bc-backends.c:248
+msgid "Code 39"
+msgstr "Code 39"
 
-#: ../src/glabels-batch.c:60
-msgid "first label on first sheet (default=1)"
-msgstr "primera etiqueta en primera hoja (predeterminado=1)"
+#: ../src/bc-backends.c:122 ../src/bc-backends.c:251
+msgid "Code 39 Extended"
+msgstr "Code 39 extendido"
 
-#: ../src/glabels-batch.c:60
-msgid "first"
-msgstr "primero"
+#: ../src/bc-backends.c:127
+msgid "EAN (any)"
+msgstr "EAN (cualquiera)"
 
-#: ../src/glabels-batch.c:62 ../data/glade/print-custom-widget.glade.h:6
-msgid "print outlines (to test printer alignment)"
-msgstr "imprimir un esbozo (para verificar la alineación de la impresora)"
+#: ../src/bc-backends.c:130
+msgid "EAN-8"
+msgstr "EAN-8"
 
-#: ../src/glabels-batch.c:64 ../data/glade/print-custom-widget.glade.h:5
-msgid "print in reverse (i.e. a mirror image)"
-msgstr "impresión invertida (imagen espejo)"
+#: ../src/bc-backends.c:133
+msgid "EAN-8 +2"
+msgstr "EAN-8 +2"
 
-#: ../src/glabels-batch.c:66 ../data/glade/print-custom-widget.glade.h:4
-msgid "print crop marks"
-msgstr "imprimir marcas de corte"
+#: ../src/bc-backends.c:136
+msgid "EAN-8 +5"
+msgstr "EAN-8 +5"
 
-#: ../src/glabels-batch.c:68
-msgid "input file for merging"
-msgstr "archivo de entrada para combinar"
+#: ../src/bc-backends.c:139
+msgid "EAN-13"
+msgstr "EAN-13"
 
-#: ../src/glabels-batch.c:96
-msgid "- batch process gLabels label files"
-msgstr "- procesador de lotes de archivos de etiquetas gLabels"
+#: ../src/bc-backends.c:142
+msgid "EAN-13 +2"
+msgstr "EAN-13 2"
 
-#: ../src/glabels-batch.c:142
-#, c-format
-msgid "cannot perform document merge with glabels file %s\n"
-msgstr "No se puede combinar el archivo %s\n"
+#: ../src/bc-backends.c:145
+msgid "EAN-13 +5"
+msgstr "EAN-13 +5"
 
-#: ../src/glabels-batch.c:164
-#, c-format
-msgid "cannot open glabels file %s\n"
-msgstr "No se puede abrir el archivo %s\n"
+#: ../src/bc-backends.c:148
+msgid "UPC (UPC-A or UPC-E)"
+msgstr "UPC (UPC-A o UPC-E)"
 
-#: ../src/window.c:259
-msgid "(none) - gLabels"
-msgstr "(sin nombre) - gLabels"
+#: ../src/bc-backends.c:151 ../src/bc-backends.c:395
+msgid "UPC-A"
+msgstr "UPC-A"
 
-#: ../src/window.c:432
-msgid "(modified)"
-msgstr "(modificado)"
+#: ../src/bc-backends.c:154
+msgid "UPC-A +2"
+msgstr "UPC-A +2"
 
-#: ../src/stock.c:72
-msgid "_Select Mode"
-msgstr "_Modo selección"
+#: ../src/bc-backends.c:157
+msgid "UPC-A +5"
+msgstr "UPC-A +5"
 
-#: ../src/stock.c:73
-msgid "_Text"
-msgstr "_Texto"
+#: ../src/bc-backends.c:160 ../src/bc-backends.c:398
+msgid "UPC-E"
+msgstr "UPC-E"
 
-#: ../src/stock.c:74
-msgid "_Line"
-msgstr "_Línea"
+#: ../src/bc-backends.c:163
+msgid "UPC-E +2"
+msgstr "UPC-E +2"
 
-#: ../src/stock.c:75
-msgid "_Box"
-msgstr "_Rectangulo"
+#: ../src/bc-backends.c:166
+msgid "UPC-E +5"
+msgstr "UPC-E +5"
 
-#: ../src/stock.c:76
-msgid "_Ellipse"
-msgstr "_Elipse"
+#: ../src/bc-backends.c:169 ../src/bc-backends.c:332
+msgid "ISBN"
+msgstr "ISBN"
 
-#: ../src/stock.c:77
-msgid "_Image"
-msgstr "_Imagen"
+#: ../src/bc-backends.c:172
+msgid "ISBN +5"
+msgstr "ISBN +5"
 
-#: ../src/stock.c:78
-msgid "Bar_code"
-msgstr "_Código de barras"
+#: ../src/bc-backends.c:178 ../src/bc-backends.c:260
+msgid "Code 128"
+msgstr "Code 128"
 
-#: ../src/stock.c:79
-msgid "_Merge Properties"
-msgstr "Propiedades de _fusión de datos"
+#: ../src/bc-backends.c:181
+msgid "Code 128C"
+msgstr "Code 128C"
 
-#: ../src/stock.c:80
-msgid "Object _Properties"
-msgstr "Propiedades del objeto"
+#: ../src/bc-backends.c:184
+msgid "Code 128B"
+msgstr "Code 128B"
 
-#: ../src/stock.c:81
-msgid "Bring to _Front"
-msgstr "Traer al _frente"
+#: ../src/bc-backends.c:187 ../src/bc-backends.c:329
+msgid "Interleaved 2 of 5"
+msgstr "Intercalado 2 de 5"
 
-#: ../src/stock.c:82
-msgid "Send to _Back"
-msgstr "Enviar al f_ondo"
+#: ../src/bc-backends.c:190 ../src/bc-backends.c:224
+msgid "Codabar"
+msgstr "Codabar"
 
-#: ../src/stock.c:83
-msgid "Rotate _Left"
-msgstr "Rotar a la _izquierda"
+#: ../src/bc-backends.c:193
+msgid "MSI"
+msgstr "MSI"
 
-#: ../src/stock.c:84
-msgid "Rotate _Right"
-msgstr "Rotar a la _derecha"
+#: ../src/bc-backends.c:196
+msgid "Plessey"
+msgstr "Plessey"
 
-#: ../src/stock.c:85
-msgid "Flip _Horizontally"
-msgstr "Reflejar _horizontalmente"
+#: ../src/bc-backends.c:199 ../src/bc-backends.c:257
+msgid "Code 93"
+msgstr "Code 93"
 
-#: ../src/stock.c:86
-msgid "Flip _Vertically"
-msgstr "Reflejar _verticalmente"
+#: ../src/bc-backends.c:206
+msgid "Australia Post Standard"
+msgstr "Australia Post Standard"
 
-#: ../src/stock.c:87
-msgid "_Lefts"
-msgstr "A la _izquierda"
+#: ../src/bc-backends.c:209
+msgid "Australia Post Reply Paid"
+msgstr "Australia Post Reply Paid"
 
-#: ../src/stock.c:88
-msgid "_Rights"
-msgstr "A la _derecha"
+#: ../src/bc-backends.c:212
+msgid "Australia Post Route Code"
+msgstr "Australia Post Route Code"
 
-#: ../src/stock.c:89
-msgid "_Centers"
-msgstr "_Centrado"
+#: ../src/bc-backends.c:215
+msgid "Australia Post Redirect"
+msgstr "Australia Post Redirect"
 
-#: ../src/stock.c:90
-msgid "_Tops"
-msgstr "_Superior"
+#: ../src/bc-backends.c:218
+msgid "Aztec Code"
+msgstr "Código Azteca"
 
-#: ../src/stock.c:91
-msgid "Bottoms"
-msgstr "_Inferior"
+#: ../src/bc-backends.c:221
+msgid "Aztec Rune"
+msgstr "Runa Azteca"
 
-#: ../src/stock.c:92
-msgid "Centers"
-msgstr "_Centrado"
+#: ../src/bc-backends.c:227
+msgid "Code One"
+msgstr "Code One"
 
-#: ../src/stock.c:93 ../src/stock.c:94
-msgid "Label Ce_nter"
-msgstr "Centro de la _etiqueta"
+#: ../src/bc-backends.c:230
+msgid "Code 11"
+msgstr "Code 11"
 
-#: ../src/stock.c:95 ../data/glade/property-bar.glade.h:3
-msgid "Fill color"
-msgstr "Color de relleno"
+#: ../src/bc-backends.c:233
+msgid "Code 16K"
+msgstr "Code 16K"
 
-#: ../src/stock.c:96 ../data/glade/property-bar.glade.h:8
-msgid "Line color"
-msgstr "Color de línea"
+#: ../src/bc-backends.c:236
+msgid "Code 2 of 5 Matrix"
+msgstr "Code 2 de 5 Matrix"
 
-#: ../src/stock.c:97 ../src/stock.c:99
-msgid "Linked"
-msgstr "Enlazado"
+#: ../src/bc-backends.c:239
+msgid "Code 2 of 5 IATA"
+msgstr "Code 2 de 5 IATA"
 
-#: ../src/stock.c:98 ../src/stock.c:100
-msgid "Not Linked"
-msgstr "No enlazado"
+#: ../src/bc-backends.c:242
+msgid "Code 2 of 5 Data Logic"
+msgstr "Code 2 de 5 Data Logic"
 
-#. Menu entries.
-#: ../src/ui.c:93
-msgid "_File"
-msgstr "_Archivo"
+#: ../src/bc-backends.c:245
+msgid "Code 32 (Italian Pharmacode)"
+msgstr "Code 32 (Pharmacode italiano)"
 
-#: ../src/ui.c:94
-msgid "Open Recent _Files"
-msgstr "Abrir archivos _recientes"
+#: ../src/bc-backends.c:254
+msgid "Code 49"
+msgstr "Code 49"
 
-#: ../src/ui.c:95
-msgid "_Edit"
-msgstr "_Editar"
+#: ../src/bc-backends.c:263
+msgid "Code 128 (Mode C supression)"
+msgstr "Code 128 (Mode C supression)"
 
-#: ../src/ui.c:96
-msgid "_View"
-msgstr "_Ver"
+#: ../src/bc-backends.c:266
+msgid "DAFT Code"
+msgstr "DAFT Code"
 
-#: ../src/ui.c:97
-msgid "Customize Main Toolbar"
-msgstr "Personalizar barra principal"
+#: ../src/bc-backends.c:269
+msgid "Data Matrix"
+msgstr "Matriz de datos"
 
-#: ../src/ui.c:98
-msgid "Customize Drawing Toolbar"
-msgstr "Personalizar barra de dibujo"
+#: ../src/bc-backends.c:272
+msgid "Deutsche Post Leitcode"
+msgstr "Deutsche Post Leitcode"
 
-#: ../src/ui.c:99
-msgid "Customize Properties Toolbar"
-msgstr "Personalizar barra de propiedades"
+#: ../src/bc-backends.c:275
+msgid "Deutsche Post Identcode"
+msgstr "Deutsche Post Identcode"
 
-#: ../src/ui.c:100
-msgid "_Objects"
-msgstr "_Objetos"
+#: ../src/bc-backends.c:278
+msgid "Dutch Post KIX Code"
+msgstr "Post KIX Code de los Países Bajos"
 
-#: ../src/ui.c:101
-msgid "_Create"
-msgstr "_Crear"
+#: ../src/bc-backends.c:281
+msgid "EAN"
+msgstr "EAN"
 
-#: ../src/ui.c:102
-msgid "_Order"
-msgstr "Or_den"
+#: ../src/bc-backends.c:284
+msgid "Grid Matrix"
+msgstr "Matriz de rejilla"
 
-#: ../src/ui.c:103
-msgid "_Rotate/Flip"
-msgstr "_Rotar/Reflejar"
+#: ../src/bc-backends.c:287
+msgid "GS1-128"
+msgstr "GS1-128"
 
-#: ../src/ui.c:104
-msgid "Align _Horizontal"
-msgstr "Alineado _horizontal"
+#: ../src/bc-backends.c:290
+msgid "GS1 DataBar-14"
+msgstr "GS1 DataBar-14"
 
-#: ../src/ui.c:105
-msgid "Align _Vertical"
-msgstr "Alineado _vertical"
+#: ../src/bc-backends.c:299
+msgid "GS1 DataBar-14 Stacked"
+msgstr "GS1 DataBar-14 Stacked"
 
-#: ../src/ui.c:106
-msgid "_Help"
-msgstr "A_yuda"
+#: ../src/bc-backends.c:302
+msgid "GS1 DataBar-14 Stacked Omni."
+msgstr "GS1 DataBar-14 Stacked Omni."
 
-#. Popup entries.
-#: ../src/ui.c:109 ../src/ui.c:110
-msgid "Context Menu"
-msgstr "Menú contextual"
+#: ../src/bc-backends.c:305
+msgid "GS1 DataBar Extended Stacked"
+msgstr "GS1 DataBar Extended Stacked"
 
-#: ../src/ui.c:115
-msgid "_New"
-msgstr "_Nuevo"
+#: ../src/bc-backends.c:308
+msgid "HIBC Code 128"
+msgstr "HIBC Code 128"
 
-#: ../src/ui.c:117
-msgid "Create a new file"
-msgstr "Crear un archivo nuevo"
+#: ../src/bc-backends.c:311
+msgid "HIBC Code 39"
+msgstr "HIBC Code 39"
 
-#: ../src/ui.c:122
-msgid "_Open..."
-msgstr "_Abrir..."
+#: ../src/bc-backends.c:314
+msgid "HIBC Data Matrix"
+msgstr "Matriz de datos HIBC"
 
-#: ../src/ui.c:124
-msgid "Open a file"
-msgstr "Abrir un archivo"
+#: ../src/bc-backends.c:317
+msgid "HIBC QR Code"
+msgstr "HIBC QR Code"
 
-#: ../src/ui.c:129
-msgid "_Save"
-msgstr "_Guardar"
+#: ../src/bc-backends.c:320
+msgid "HIBC PDF417"
+msgstr "HIBC PDF417"
 
-#: ../src/ui.c:131
-msgid "Save current file"
-msgstr "Guarda el archivo actual"
+#: ../src/bc-backends.c:323
+msgid "HIBC Micro PDF417"
+msgstr "HIBC Micro PDF417"
 
-#: ../src/ui.c:136
-msgid "Save _As..."
-msgstr "Guardar _como..."
+#: ../src/bc-backends.c:326
+msgid "HIBC Aztec Code"
+msgstr "HIBC código Azteca"
 
-#: ../src/ui.c:138
-msgid "Save the current file to a different name"
-msgstr "Guardar el archivo actual con un nombre diferente"
+#: ../src/bc-backends.c:335
+msgid "ITF-14"
+msgstr "ITF-14"
 
-#: ../src/ui.c:143
-msgid "_Print..."
-msgstr "_Imprimir"
+#: ../src/bc-backends.c:338
+msgid "Japanese Postal"
+msgstr "Postal japonés"
 
-#: ../src/ui.c:145
-msgid "Print the current file"
-msgstr "Imprimir el archivo en uso"
+#: ../src/bc-backends.c:341
+msgid "Korean Postal"
+msgstr "Postal coreano"
 
-#: ../src/ui.c:150
-msgid "Properties..."
-msgstr "Propiedades…"
+#: ../src/bc-backends.c:344
+msgid "LOGMARS"
+msgstr "LOGMARS"
 
-#: ../src/ui.c:152
-msgid "Modify document properties"
-msgstr "Modificar las propiedades del documento"
+#: ../src/bc-backends.c:347
+msgid "Maxicode"
+msgstr "Maxicode"
 
-#: ../src/ui.c:157
-msgid "Template _Designer..."
-msgstr "_Diseñador de plantillas"
+#: ../src/bc-backends.c:350
+msgid "Micro PDF417"
+msgstr "Micro PDF417"
 
-#: ../src/ui.c:159
-msgid "Create a custom template"
-msgstr "Crear una plantilla personalizada"
+#: ../src/bc-backends.c:353
+msgid "Micro QR Code"
+msgstr "Micro QR Code"
 
-#: ../src/ui.c:164
-msgid "_Close"
-msgstr "_Cerrar"
+#: ../src/bc-backends.c:356
+msgid "MSI Plessey"
+msgstr "MSI Plessey"
 
-#: ../src/ui.c:166
-msgid "Close the current file"
-msgstr "Guardar el archivo en uso"
+#: ../src/bc-backends.c:359
+msgid "NVE-18"
+msgstr "NVE-18"
 
-#: ../src/ui.c:171
-msgid "_Quit"
-msgstr "_Salir"
+#: ../src/bc-backends.c:362
+msgid "PDF417"
+msgstr "PDF417"
 
-#: ../src/ui.c:173
-msgid "Quit the program"
-msgstr "Salir del programa"
+#: ../src/bc-backends.c:365
+msgid "PDF417 Truncated"
+msgstr "PDF417 truncatedo"
 
-#: ../src/ui.c:180
-msgid "Cut"
-msgstr "Cortar"
+#: ../src/bc-backends.c:368
+msgid "PLANET"
+msgstr "PLANET"
 
-#: ../src/ui.c:182
-msgid "Cut the selection"
-msgstr "Cortar la selección"
+#: ../src/bc-backends.c:371
+msgid "PostNet"
+msgstr "PostNet"
 
-#: ../src/ui.c:187
-msgid "Copy"
-msgstr "Copiar"
+#: ../src/bc-backends.c:374
+msgid "Pharmacode"
+msgstr "Pharmacode"
 
-#: ../src/ui.c:189
-msgid "Copy the selection"
-msgstr "Copiar la selección"
+#: ../src/bc-backends.c:377
+msgid "Pharmacode 2-track"
+msgstr "Pharmacode 2-track"
 
-#: ../src/ui.c:194
-msgid "Paste"
-msgstr "Pegar"
+#: ../src/bc-backends.c:380
+msgid "Pharmazentral Nummer (PZN)"
+msgstr "Pharmazentral Nummer (PZN)"
 
-#: ../src/ui.c:196
-msgid "Paste the clipboard"
-msgstr "Pegar desde portapapeles"
+#: ../src/bc-backends.c:383
+msgid "QR Code"
+msgstr "QR Code"
 
-#: ../src/ui.c:201
-msgid "Delete"
-msgstr "Borrar"
+#: ../src/bc-backends.c:386
+msgid "Royal Mail 4-State"
+msgstr "Royal Mail 4-State"
 
-#: ../src/ui.c:203
-msgid "Delete the selected objects"
-msgstr "Borrar los objetos seleccionados"
+#: ../src/bc-backends.c:389
+msgid "Telepen"
+msgstr "Telepen"
 
-#: ../src/ui.c:208
-msgid "Select All"
-msgstr "_Deseleccionar todo"
+#: ../src/bc-backends.c:392
+msgid "Telepen Numeric"
+msgstr "Telepen numérico"
 
-#: ../src/ui.c:210
-msgid "Select all objects"
-msgstr "Seleccionar todos los objetos"
+#: ../src/bc-backends.c:401
+msgid "USPS One Code"
+msgstr "USPS One Code"
 
-#: ../src/ui.c:215
-msgid "Un-select All"
-msgstr "Deseleccionar todo"
+#: ../src/bc-backends.c:404
+msgid "UK Plessey"
+msgstr "Plessey del Reino Unido"
 
-#: ../src/ui.c:217
-msgid "Remove all selections"
-msgstr "Eliminar todas las selecciones"
+#: ../src/bc-backends.c:411
+msgid "IEC16022 (DataMatrix)"
+msgstr "IEC16022 (matriz de datos)"
 
-#: ../src/ui.c:222
-msgid "Preferences"
-msgstr "Preferencias"
+#: ../src/bc-backends.c:418
+msgid "IEC18004 (QRCode)"
+msgstr "IEC18004 (Código QR)"
 
-#: ../src/ui.c:224
-msgid "Configure the application"
-msgstr "Configurar aplicación"
+#: ../src/color-combo-button.c:198 ../src/color-combo.c:178
+msgid "Default Color"
+msgstr "Color predeterminado"
 
-#: ../src/ui.c:231
-msgid "Zoom in"
-msgstr "Ampliar"
+#: ../src/color-combo-menu.c:83
+msgid "Dark Red"
+msgstr "Rojo oscuro"
 
-#: ../src/ui.c:233
-msgid "Increase magnification"
-msgstr "Aumentar escala"
+#: ../src/color-combo-menu.c:84
+msgid "Brown"
+msgstr "Marrón"
 
-#: ../src/ui.c:238
-msgid "Zoom out"
-msgstr "Reducir"
+#: ../src/color-combo-menu.c:85
+msgid "Dark Goldenrod"
+msgstr "Dorado oscuro"
 
-#: ../src/ui.c:240
-msgid "Decrease magnification"
-msgstr "Reducir escala"
+#: ../src/color-combo-menu.c:86
+msgid "Dark Green"
+msgstr "Verde oscuro"
 
-#: ../src/ui.c:245
-msgid "Zoom 1 to 1"
-msgstr "Escala 1:1"
+#: ../src/color-combo-menu.c:87
+msgid "Dark Cyan"
+msgstr "Cián oscuro"
 
-#: ../src/ui.c:247
-msgid "Restore scale to 100%"
-msgstr "Restablecer escala al 100%"
+#: ../src/color-combo-menu.c:88
+msgid "Navy Blue"
+msgstr "Azul marino"
 
-#: ../src/ui.c:252
-msgid "Zoom to fit"
-msgstr "Ampliar hasta ajustar"
+#: ../src/color-combo-menu.c:89
+msgid "Dark Violet"
+msgstr "Violeta oscuro"
 
-#: ../src/ui.c:254
-msgid "Set scale to fit window"
-msgstr "Establecer la escala para ajustar a la ventana"
+#: ../src/color-combo-menu.c:91
+msgid "Red"
+msgstr "Rojo"
 
-#: ../src/ui.c:261
-msgid "Select Mode"
-msgstr "Modo de selección"
+#: ../src/color-combo-menu.c:92
+msgid "Orange"
+msgstr "Naranja"
 
-#: ../src/ui.c:263
-msgid "Select, move and modify objects"
-msgstr "Seleccionar, mover y modificar objetos"
+#: ../src/color-combo-menu.c:93
+msgid "Dark Yellow"
+msgstr "Amarillo oscuro"
 
-#: ../src/ui.c:268 ../src/view-text.c:494
-#: ../data/glade/object-editor.glade.h:32
-msgid "Text"
-msgstr "Texto"
+#: ../src/color-combo-menu.c:94
+msgid "Medium green"
+msgstr "Verde pálido"
 
-#: ../src/ui.c:270
-msgid "Create text object"
-msgstr "Crear un cuadro de texto"
+#: ../src/color-combo-menu.c:95
+msgid "Turquoise"
+msgstr "Turquesa"
 
-#: ../src/ui.c:275
-msgid "Box"
-msgstr "Caja"
+#: ../src/color-combo-menu.c:96
+msgid "Blue"
+msgstr "Azul"
 
-#: ../src/ui.c:277
-msgid "Create box/rectangle object"
-msgstr "Crear un objeto de caja o rectángulo"
+#: ../src/color-combo-menu.c:97
+msgid "Purple"
+msgstr "Morado"
 
-#: ../src/ui.c:282 ../data/glade/object-editor.glade.h:20
-msgid "Line"
-msgstr "Línea"
+#: ../src/color-combo-menu.c:99
+msgid "Salmon"
+msgstr "Salmón"
 
-#: ../src/ui.c:284
-msgid "Create line object"
-msgstr "Crear una línea"
+#: ../src/color-combo-menu.c:100
+msgid "Gold"
+msgstr "Dorado"
 
-#: ../src/ui.c:289
-msgid "Ellipse"
-msgstr "Elipse"
+#: ../src/color-combo-menu.c:101
+msgid "Yellow"
+msgstr "Amarillo"
 
-#: ../src/ui.c:291
-msgid "Create ellipse/circle object"
-msgstr "Crear un círculo o elipse"
+#: ../src/color-combo-menu.c:102
+msgid "Green"
+msgstr "Verde"
 
-#: ../src/ui.c:296 ../data/glade/object-editor.glade.h:16
-msgid "Image"
-msgstr "Imagen"
+#: ../src/color-combo-menu.c:103
+msgid "Cyan"
+msgstr "Cián"
 
-#: ../src/ui.c:298
-msgid "Create image object"
-msgstr "Crear una imagen"
-
-#: ../src/ui.c:303
-msgid "Barcode"
-msgstr "Código de barras"
-
-#: ../src/ui.c:305
-msgid "Create barcode object"
-msgstr "Crear un objeto código de barras"
-
-#: ../src/ui.c:310
-msgid "Bring to front"
-msgstr "Traer al frente"
-
-#: ../src/ui.c:312
-msgid "Raise object to top"
-msgstr "Traer al frente"
-
-#: ../src/ui.c:317
-msgid "Send to back"
-msgstr "Enviar al fondo"
-
-#: ../src/ui.c:319
-msgid "Lower object to bottom"
-msgstr "Llevar objeto al fondo"
-
-#: ../src/ui.c:324
-msgid "Rotate left"
-msgstr "Rotar a la izquierda"
-
-#: ../src/ui.c:326
-msgid "Rotate object 90 degrees counter-clockwise"
-msgstr "Rotar el objeto 90 grados en sentido antihorario"
-
-#: ../src/ui.c:331
-msgid "Rotate right"
-msgstr "Rotar a la derecha"
-
-#: ../src/ui.c:333
-msgid "Rotate object 90 degrees clockwise"
-msgstr "Rotar el objeto 90 grados en sentido horario"
-
-#: ../src/ui.c:338
-msgid "Flip horizontally"
-msgstr "Reflejar horizontalmente"
-
-#: ../src/ui.c:340
-msgid "Flip object horizontally"
-msgstr "Reflejar objeto horizontalmente"
-
-#: ../src/ui.c:345
-msgid "Flip vertically"
-msgstr "Reflejar verticalmente"
-
-#: ../src/ui.c:347
-msgid "Flip object vertically"
-msgstr "Reflejar objeto verticalmente"
-
-#: ../src/ui.c:352
-msgid "Align left"
-msgstr "Alinear a la izquierda"
-
-#: ../src/ui.c:354
-msgid "Align objects to left edges"
-msgstr "Alinear objetos por su lado izquierdo"
-
-#: ../src/ui.c:359
-msgid "Align right"
-msgstr "Alinear a la derecha"
-
-#: ../src/ui.c:361
-msgid "Align objects to right edges"
-msgstr "Alinear objetos por su lado derecho"
-
-#: ../src/ui.c:366
-msgid "Align horizontal center"
-msgstr "Alinear por centro horizontal"
-
-#: ../src/ui.c:368
-msgid "Align objects to horizontal centers"
-msgstr "Alinear objetos por su centro horizontal"
-
-#: ../src/ui.c:373
-msgid "Align tops"
-msgstr "Alinear por parte superior"
-
-#: ../src/ui.c:375
-msgid "Align objects to top edges"
-msgstr "Alinear objetos por su parte superior"
-
-#: ../src/ui.c:380
-msgid "Align bottoms"
-msgstr "Alinear por parte inferior"
-
-#: ../src/ui.c:382
-msgid "Align objects to bottom edges"
-msgstr "Alinear objetos por su parte inferior"
-
-#: ../src/ui.c:387
-msgid "Align vertical center"
-msgstr "Alinear por centro vertical"
-
-#: ../src/ui.c:389
-msgid "Align objects to vertical centers"
-msgstr "Alinear objetos por su centro vertical"
-
-#: ../src/ui.c:394
-msgid "Center horizontally"
-msgstr "Centrar horizontalmente"
-
-#: ../src/ui.c:396
-msgid "Center objects to horizontal label center"
-msgstr "Centrar objetos con el centro horizontal de la etiqueta"
-
-#: ../src/ui.c:401
-msgid "Center vertically"
-msgstr "Centrar verticalmente"
-
-#: ../src/ui.c:403
-msgid "Center objects to vertical label center"
-msgstr "Centrar objetos con el centro vertical de la etiqueta"
-
-#: ../src/ui.c:408
-msgid "Merge properties"
-msgstr "Mezclar propiedades"
-
-#: ../src/ui.c:410
-msgid "Edit merge properties"
-msgstr "Editar propiedades de combinación de datos"
-
-#: ../src/ui.c:417
-msgid "Contents"
-msgstr "Contenido"
-
-#: ../src/ui.c:419
-msgid "Open glabels manual"
-msgstr "Abrir el manual de glabels"
-
-#: ../src/ui.c:424
-msgid "About..."
-msgstr "Acerca de..."
-
-#: ../src/ui.c:426
-msgid "About glabels"
-msgstr "Acerca de glabels"
-
-#: ../src/ui.c:436
-msgid "Property toolbar"
-msgstr "Barra de propiedades"
-
-#: ../src/ui.c:438
-msgid "Change the visibility of the property toolbar in the current window"
-msgstr "Cambiar la visibilidad de la barra de propiedades"
-
-#: ../src/ui.c:444 ../src/ui.c:489 ../src/ui.c:497
-msgid "Show tooltips"
-msgstr "Mostrar consejos"
+#: ../src/color-combo-menu.c:104
+msgid "SkyBlue"
+msgstr "Celeste"
 
-#: ../src/ui.c:446
-msgid "Show tooltips for property toolbar"
-msgstr "Mostrar consejos en la barra de propiedades"
+#: ../src/color-combo-menu.c:105
+msgid "Violet"
+msgstr "Violeta"
 
-#: ../src/ui.c:452
-msgid "Grid"
-msgstr "Rejilla"
-
-#: ../src/ui.c:454
-msgid "Change the visibility of the grid in the current window"
-msgstr "Cambiar la visibilidad de la grilla"
-
-#: ../src/ui.c:460
-msgid "Markup"
-msgstr "Margen"
+#: ../src/color-combo-menu.c:107
+msgid "Pink"
+msgstr "Rosa"
 
-#: ../src/ui.c:462
-msgid "Change the visibility of markup lines in the current window"
-msgstr "Cambiar la visibilidad de los márgenes"
-
-#: ../src/ui.c:473
-msgid "Main toolbar"
-msgstr "Barra principal"
-
-#: ../src/ui.c:475
-msgid "Change the visibility of the main toolbar in the current window"
-msgstr "Cambiar la visibilidad de la barra principal"
+#: ../src/color-combo-menu.c:108
+msgid "Khaki"
+msgstr "Caqui"
 
-#: ../src/ui.c:481
-msgid "Drawing toolbar"
-msgstr "Barra de dibujo"
+#: ../src/color-combo-menu.c:109
+msgid "Light Yellow"
+msgstr "Amarillo claro"
 
-#: ../src/ui.c:483
-msgid "Change the visibility of the drawing toolbar in the current window"
-msgstr "Cambiar la visibilidad de la barra de dibujo"
+#: ../src/color-combo-menu.c:110
+msgid "Light Green"
+msgstr "Verde claro"
 
-#: ../src/ui.c:491
-msgid "Show tooltips for main toolbar"
-msgstr "Mostrar consejos en la barra de herramientas principal"
+#: ../src/color-combo-menu.c:111
+msgid "Light Cyan"
+msgstr "Cián claro"
 
-#: ../src/ui.c:499
-msgid "Show tooltips for drawing toolbar"
-msgstr "Mostrar consejos en la barra de herramientas de dibujo"
+#: ../src/color-combo-menu.c:112
+msgid "Slate Gray"
+msgstr "Gris pizarra"
 
-#: ../src/ui-property-bar.c:1232 ../src/object-editor.c:587
-#: ../src/object-editor.c:593
-msgid "Default"
-msgstr "Predeterminado"
+#: ../src/color-combo-menu.c:113
+msgid "Thistle"
+msgstr "Cardo"
 
-#: ../src/ui-property-bar.c:1239 ../src/object-editor.c:599
-msgid "No line"
-msgstr "Sin línea"
+#: ../src/color-combo-menu.c:115
+msgid "White"
+msgstr "Blanco"
 
-#: ../src/ui-property-bar.c:1247 ../src/object-editor.c:606
-msgid "No fill"
-msgstr "Sin relleno"
+#: ../src/color-combo-menu.c:117
+#, no-c-format
+msgid "10% Gray"
+msgstr "Gris 10\\%"
 
-#: ../src/ui-sidebar.c:152
-msgid "Object properties"
-msgstr "Propiedades del objeto"
+#: ../src/color-combo-menu.c:119
+#, no-c-format
+msgid "25% Gray"
+msgstr "Gris 25\\%"
 
-#: ../src/ui-commands.c:1084
-msgid "Glabels includes contributions from:"
-msgstr "Glabels incluye colaboraciones de:"
+#: ../src/color-combo-menu.c:121
+#, no-c-format
+msgid "40% Gray"
+msgstr "Gris 40\\%"
 
-#: ../src/ui-commands.c:1090
-msgid "See the file AUTHORS for additional credits,"
-msgstr "Vea el archivo AUTHORS, "
+#: ../src/color-combo-menu.c:123
+#, no-c-format
+msgid "50% Gray"
+msgstr "Gris 50\\%"
 
-#: ../src/ui-commands.c:1091
-msgid "or visit http://glabels.sourceforge.net/"
-msgstr "o visite http://glabels.sourceforge.net/"
+#: ../src/color-combo-menu.c:125
+#, no-c-format
+msgid "60% Gray"
+msgstr "Gris 60\\%"
 
-#: ../src/ui-commands.c:1103
-msgid "A label and business card creation program.\n"
-msgstr "Un programa de creación de etiquetas y tarjetas de visita.\n"
+#: ../src/color-combo-menu.c:126
+msgid "Black"
+msgstr "Negro"
 
-#: ../src/ui-commands.c:1107
-msgid "translator-credits"
-msgstr ""
-"Jorge González <jorgegonz@svn.gnome.org>, 2010\n"
-"Sergio Rivadero <sergiorivadero@argentina.com>, 2005"
+#: ../src/color-combo-menu.c:254 ../src/color-combo-menu.c:373
+msgid "Custom Color"
+msgstr "Color personalizado"
 
-#: ../src/ui-commands.c:1110
-msgid ""
-"Glabels is free software; you can redistribute it and/or modify it\n"
-"under the terms of the GNU General Public License as published by\n"
-"the Free Software Foundation; either version 2 of the License, or\n"
-"(at your option) any later version.\n"
-"\n"
-"This program is distributed in the hope that it will be useful, but\n"
-"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See\n"
-"the GNU General Public License for more details.\n"
-msgstr ""
-"Glabels es software libre; Puede modificarlo y redistribuirlo\n"
-" bajo los términos de la Licencia Pública General de GNU tal\n"
-"como es publicada por la Free Software Foundation; ya sea la \n"
-"versión 2 de dicha licencia, o (a su opción) cualquier otra versión \n"
-"posterior.\n"
-"\n"
-"Este programa se distribuye con la esperanza que le será útil, pero\n"
-"SIN NINGUNA GARANTÍA; incluso sin la garantía implícita de\n"
-"MERCANTILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR; \n"
-"Para más detalles vea la Licencia Pública General de GNU.\n"
+#: ../src/color-combo-menu.c:319
+#, c-format
+msgid "Custom Color #%u"
+msgstr "Color personalizado número %u"
 
-#: ../src/ui-commands.c:1136
-msgid "glabels"
-msgstr "glabels"
+#: ../src/critical-error-handler.c:70
+msgid "gLabels Fatal Error!"
+msgstr "Error fatal de gLables"
 
-#: ../src/file.c:91
+#: ../src/file.c:84
 msgid "New Label or Card"
 msgstr "Nueva etiqueta o tarjeta"
 
-#: ../src/file.c:191
+#: ../src/file.c:175 ../src/label.c:601 ../src/label.c:645
 msgid "Label properties"
 msgstr "Propiedades de la etiqueta"
 
-#: ../src/file.c:292 ../src/file.c:578
+#: ../src/file.c:267 ../src/file.c:557
 msgid "All files"
 msgstr "Todos los archivos"
 
-#: ../src/file.c:297 ../src/file.c:583
+#: ../src/file.c:272 ../src/file.c:562
 msgid "gLabels documents"
 msgstr "Documentos glabels"
 
-#: ../src/file.c:343 ../src/file.c:640
+#: ../src/file.c:319 ../src/file.c:620
 msgid "Empty file name selection"
 msgstr "Vaciar selección de nombre de archivo"
 
-#: ../src/file.c:346 ../src/file.c:362
+#: ../src/file.c:322 ../src/file.c:338
 msgid "Please select a file or supply a valid file name"
 msgstr "Por favor seleccione un archivo o escriba un nombre de archivo válido"
 
-#: ../src/file.c:359
+#: ../src/file.c:335
 msgid "File does not exist"
 msgstr "Archivo no existe"
 
-#: ../src/file.c:433
+#: ../src/file.c:410
 #, c-format
 msgid "Could not open file \"%s\""
-msgstr "No se puede abrir el archivo \"%s\""
+msgstr "No se puede abrir el archivo «%s»"
 
-#: ../src/file.c:436
+#: ../src/file.c:413
 msgid "Not a supported file format"
 msgstr "Formato de archivo no soportado"
 
-#: ../src/file.c:513 ../src/file.c:690
+#: ../src/file.c:491 ../src/file.c:670
 #, c-format
 msgid "Could not save file \"%s\""
-msgstr "No se puede guardar el archivo \"%s\""
+msgstr "No se puede guardar el archivo «%s»"
 
-#: ../src/file.c:517 ../src/file.c:694
+#: ../src/file.c:495 ../src/file.c:674
 msgid "Error encountered during save.  The file is still not saved."
 msgstr "Se encontró un error al guardar. El archivo aún no está guardado."
 
-#: ../src/file.c:556
+#: ../src/file.c:535
 #, c-format
 msgid "Save \"%s\" as"
-msgstr "Guardar como \"%s\""
+msgstr "Guardar como «%s»"
 
-#: ../src/file.c:643
+#: ../src/file.c:623
 msgid "Please supply a valid file name"
 msgstr "Debe proporcionar un nombre de archivo válido"
 
-#: ../src/file.c:664
+#: ../src/file.c:644
 #, c-format
 msgid "Overwrite file \"%s\"?"
-msgstr "Sobreescribir el archivo \"%s\"?"
+msgstr "¿Sobreescribir el archivo «%s»?"
 
-#: ../src/file.c:668
+#: ../src/file.c:648
 msgid "File already exists."
 msgstr "El archivo ya existe."
 
-#: ../src/file.c:764
+#: ../src/file.c:744
 #, c-format
 msgid "Save changes to document \"%s\" before closing?"
-msgstr "Guardar cambios del documento \"%s\" antes de cerrar?"
+msgstr "¿Guardar cambios del documento «%s» antes de cerrar?"
 
-#: ../src/file.c:768
+#: ../src/file.c:748
 msgid "Your changes will be lost if you don't save them."
 msgstr "Sus cambios se perderán si no los guarda."
 
-#: ../src/file.c:771
+#: ../src/file.c:751
 msgid "Close without saving"
 msgstr "Cerrar sin guardar"
 
-#. Should not happen
-#: ../src/prefs.c:159 ../src/prefs.c:166
-#: ../data/glade/object-editor.glade.h:43
-#: ../data/glade/prefs-dialog.glade.h:22
-msgid "points"
-msgstr "puntos"
-
-#: ../src/prefs.c:161 ../data/glade/object-editor.glade.h:42
-#: ../data/glade/template-designer.glade.h:64
-msgid "inches"
-msgstr "pulgadas"
+#: ../src/font-combo-menu.c:137
+msgid "Recent fonts"
+msgstr "Tipografías recientes"
 
-#: ../src/prefs.c:163
-msgid "mm"
-msgstr "mm"
+#: ../src/font-combo-menu.c:152
+msgid "Proportional fonts"
+msgstr "Tipografías proporcionales"
 
-#: ../src/prefs-dialog.c:162 ../data/glade/prefs-dialog.glade.h:21
-msgid "gLabels Preferences"
-msgstr "Preferencias de gLabels"
+#: ../src/font-combo-menu.c:160
+msgid "Fixed-width fonts"
+msgstr "Tipografías de ancho fijo"
 
-#. Build editor.
-#: ../src/view-box.c:175
-msgid "Box object properties"
-msgstr "Propiedades del rectángulo"
+#: ../src/font-combo-menu.c:168
+msgid "All fonts"
+msgstr "Todas las tipografías"
 
-#. Build editor.
-#: ../src/view-ellipse.c:175
-msgid "Ellipse object properties"
-msgstr "Propiedades del elipse"
+#.
+#. * Allow text samples to be localized.
+#. *
+#. * FIXME: if we could extract enough meta information from the fonts
+#. * themselves, perhaps rather than setting these globally for the
+#. * current locale, they could be unique to each font family.
+#.
+#: ../src/font-combo-menu-item.c:132
+msgctxt "Short sample text"
+msgid "Aa"
+msgstr "Aa"
+
+#: ../src/font-combo-menu-item.c:134
+msgctxt "Lower case sample text"
+msgid "abcdefghijklmnopqrstuvwxyz"
+msgstr "abcdefghijklmnopqrstuvwxyz"
+
+#: ../src/font-combo-menu-item.c:136
+msgctxt "Upper case sample text"
+msgid "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
+#: ../src/font-combo-menu-item.c:138
+msgctxt "Numbers and special characters sample text"
+msgid "0123456789 .:,;(*!?)"
+msgstr "0123456789 .:,;(*!?)"
+
+#: ../src/font-combo-menu-item.c:157
+msgid "Sample text"
+msgstr "Texto de ejemplo"
+
+#: ../src/glabels-batch.c:53
+msgid "set output filename (default=\"output.pdf\")"
+msgstr "establecer nombre de archivo de salida (predeterminado=\"output.pdf\")"
 
-#. Build editor.
-#: ../src/view-line.c:174
-msgid "Line object properties"
-msgstr "Propiedades de la línea"
+#: ../src/glabels-batch.c:53 ../src/glabels-batch.c:67
+msgid "filename"
+msgstr "nombre de archivo"
 
-#. Build editor.
-#: ../src/view-image.c:174
-msgid "Image object properties"
-msgstr "Propiedades de la imagen"
+#: ../src/glabels-batch.c:55
+msgid "number of sheets (default=1)"
+msgstr "número de hojas (predeterminado=1)"
 
-#. Build editor.
-#: ../src/view-text.c:178
-msgid "Text object properties"
-msgstr "Propiedades del texto"
+#: ../src/glabels-batch.c:55
+msgid "sheets"
+msgstr "hojas"
 
-#. Build editor.
-#: ../src/view-barcode.c:174
-msgid "Barcode object properties"
-msgstr "Propiedades del código de barras"
+#: ../src/glabels-batch.c:57
+msgid "number of copies (default=1)"
+msgstr "número de copias (predeterminado=1)"
 
-#: ../src/object-editor-image-page.c:270
-msgid "All Files"
-msgstr "Todos los archivos"
+#: ../src/glabels-batch.c:57
+msgid "copies"
+msgstr "copias"
 
-#: ../src/object-editor-image-page.c:275
-msgid "All Images"
-msgstr "Imagen"
+#: ../src/glabels-batch.c:59
+msgid "first label on first sheet (default=1)"
+msgstr "primera etiqueta en primera hoja (predeterminado=1)"
 
-#: ../src/object-editor-image-page.c:290
-#, c-format
-msgid "%s (*.%s)"
-msgstr "%s (*.%s)"
+#: ../src/glabels-batch.c:59
+msgid "first"
+msgstr "primero"
 
-#: ../src/merge-properties-dialog.c:263
-msgid "Merge Properties"
-msgstr "Propiedades de combinación de datos"
+#: ../src/glabels-batch.c:61 ../data/ui/print-op-dialog-custom-widget.ui.h:13
+msgid "print outlines (to test printer alignment)"
+msgstr "imprimir contornos (para verificar la alineación de la impresora)"
 
-#: ../src/merge-properties-dialog.c:289 ../src/merge-properties-dialog.c:397
-msgid "Select merge-database source"
-msgstr "Seleccione la fuente de datos para combinar"
+#: ../src/glabels-batch.c:63 ../data/ui/print-op-dialog-custom-widget.ui.h:12
+msgid "print in reverse (i.e. a mirror image)"
+msgstr "impresión invertida (imagen espejo)"
 
-#: ../src/merge-properties-dialog.c:298 ../src/merge-properties-dialog.c:417
-msgid "N/A"
-msgstr "N/D"
+#: ../src/glabels-batch.c:65 ../data/ui/print-op-dialog-custom-widget.ui.h:11
+msgid "print crop marks"
+msgstr "imprimir marcas de corte"
 
-#: ../src/merge-properties-dialog.c:324
-msgid "Select"
-msgstr "Seleccionar"
+#: ../src/glabels-batch.c:67
+msgid "input file for merging"
+msgstr "archivo de entrada para combinar"
 
-#: ../src/merge-properties-dialog.c:332
-msgid "Record/Field"
-msgstr "Registro/Campo"
+#: ../src/glabels-batch.c:69 ../src/glabels.c:63
+msgid "[FILE...]"
+msgstr "[ARCHIVO…]"
 
-#: ../src/merge-properties-dialog.c:340 ../data/glade/object-editor.glade.h:10
-msgid "Data"
-msgstr "Datos"
+#: ../src/glabels-batch.c:99
+msgid "Print files created with gLabels."
+msgstr "Imprimir los archivos creados con gLabels."
 
-#: ../src/merge-properties-dialog.c:410
-msgid "Fixed"
-msgstr "Fijo"
+#: ../src/glabels-batch.c:107 ../src/glabels.c:87
+#, c-format
+msgid ""
+"%s\n"
+"Run '%s --help' to see a full list of available command line options.\n"
+msgstr ""
+"%s\n"
+"Ejecute «%s --help» para ver una lista completa de las opciones de línea de "
+"comandos.\n"
 
-#. ===================================================================
-#: ../src/print-op.c:237 ../src/wdgt-print-copies.c:171
-#: ../data/templates/misc-iso-templates.xml.h:34
-msgid "Labels"
-msgstr "Etiquetas"
+#: ../src/glabels-batch.c:151
+#, c-format
+msgid "cannot perform document merge with glabels file %s\n"
+msgstr "No se puede combinar el archivo %s\n"
 
-#: ../src/template-designer.c:358
-msgid "gLabels Template Designer"
-msgstr "Diseñador de plantillas gLabels"
+#: ../src/glabels-batch.c:186
+#, c-format
+msgid "cannot open glabels file %s\n"
+msgstr "No se puede abrir el archivo %s\n"
 
-#: ../src/template-designer.c:419
-msgid "Welcome"
-msgstr "Bienvenido"
+#: ../src/glabels.c:79
+msgid "Launch gLabels label and business card designer."
+msgstr "Lanzar el diseñador de etiquetas y de tarjetas de visita gLabels."
 
-#: ../src/template-designer.c:463
-msgid "Name and Description"
-msgstr "Nombre y descripción:"
+#: ../src/label-barcode.c:183 ../src/ui.c:317
+msgid "Create barcode object"
+msgstr "Crear un objeto código de barras"
 
-#: ../src/template-designer.c:516
-msgid "Page Size"
-msgstr "Tamaño de la página"
+#: ../src/label-barcode.c:259 ../src/label-barcode.c:461
+msgid "Barcode data"
+msgstr "Datos del código de barras"
 
-#: ../src/template-designer.c:587
-msgid "Label or Card Shape"
-msgstr "Forma de etiqueta o tarjeta"
+#: ../src/label-barcode.c:290
+msgid "Barcode property"
+msgstr "Propiedades del código de barras"
 
-#: ../src/template-designer.c:637
-msgid "Label or Card Size"
-msgstr "Etiqueta o tamaño de tarjeta"
+#: ../src/label-barcode.c:684
+msgid "Barcode data empty"
+msgstr "El código de barras está vacío"
 
-#: ../src/template-designer.c:737
-msgid "Label Size (round)"
-msgstr "Tamaño de etiqueta (redondeada)"
+#: ../src/label-barcode.c:688
+msgid "Invalid barcode data"
+msgstr "Datos de código de barras no válidos"
 
-#: ../src/template-designer.c:820
-msgid "Label Size (CD/DVD)"
-msgstr "Tamaño de etiqueta (CD/DVD)"
+#: ../src/label-box.c:156
+msgid "Create box object"
+msgstr "Crear un objeto de caja"
 
-#: ../src/template-designer.c:913
-msgid "Number of Layouts"
-msgstr "Cantidad de disposiciones"
+#: ../src/label-box.c:230 ../src/label-ellipse.c:232
+#: ../data/ui/property-bar.ui.h:3
+msgid "Fill color"
+msgstr "Color de relleno"
 
-#: ../src/template-designer.c:976
-msgid "Layout(s)"
-msgstr "Disposicion(es):"
+#: ../src/label-box.c:261 ../src/label-ellipse.c:261 ../src/label-line.c:212
+#: ../data/ui/property-bar.ui.h:8
+msgid "Line color"
+msgstr "Color de línea"
 
-#: ../src/template-designer.c:1087
-msgid "Design Completed"
-msgstr "Diseño completo"
+#: ../src/label-box.c:289 ../src/label-ellipse.c:290 ../src/label-line.c:241
+#: ../data/ui/property-bar.ui.h:9
+msgid "Line width"
+msgstr "Ancho de línea"
 
-#: ../src/template-designer.c:1253
-msgid ""
-"<span foreground='red' weight='bold'>Brand and part# match an existing "
-"template!</span>"
-msgstr ""
-"<span foreground='red' weight='bold'>La marca y el número de parte coinciden "
-"con una plantilla existente</span>"
+#: ../src/label.c:405
+msgid "Untitled"
+msgstr "Sin título"
 
-#: ../src/bc.c:67
-msgid "POSTNET (any)"
-msgstr "POSTNET (cualquiera)"
+#: ../src/label.c:719 ../src/ui.c:420
+msgid "Merge properties"
+msgstr "Mezclar propiedades"
 
-#: ../src/bc.c:70
-msgid "POSTNET-5 (ZIP only)"
-msgstr "POSTNET-5 (solo código postal)"
+#: ../src/label.c:1215 ../src/ui.c:213
+msgid "Delete"
+msgstr "Borrar"
 
-#: ../src/bc.c:73
-msgid "POSTNET-9 (ZIP+4)"
-msgstr "POSTNET-9 (código postal+4)"
+#: ../src/label.c:1248 ../src/ui.c:322
+msgid "Bring to front"
+msgstr "Traer al frente"
 
-#: ../src/bc.c:76
-msgid "POSTNET-11 (DPBC)"
-msgstr "POSTNET-11 (DPBC)"
+#: ../src/label.c:1284 ../src/ui.c:329
+msgid "Send to back"
+msgstr "Enviar al fondo"
 
-#: ../src/bc.c:79
-msgid "CEPNET"
-msgstr "CEPNET"
+#: ../src/label.c:1325
+msgid "Rotate"
+msgstr "Rotar"
 
-#: ../src/bc.c:82
-msgid "EAN (any)"
-msgstr "EAN (cualquiera)"
+#: ../src/label.c:1360 ../src/ui.c:336
+msgid "Rotate left"
+msgstr "Rotar a la izquierda"
 
-#: ../src/bc.c:85
-msgid "EAN-8"
-msgstr "EAN-8"
+#: ../src/label.c:1393 ../src/ui.c:343
+msgid "Rotate right"
+msgstr "Rotar a la derecha"
 
-#: ../src/bc.c:88
-msgid "EAN-8 +2"
-msgstr "EAN-8 +2"
+#: ../src/label.c:1428 ../src/ui.c:350
+msgid "Flip horizontally"
+msgstr "Voltear horizontalmente"
 
-#: ../src/bc.c:91
-msgid "EAN-8 +5"
-msgstr "EAN-8 +5"
+#: ../src/label.c:1463 ../src/ui.c:357
+msgid "Flip vertically"
+msgstr "Voltear verticalmente"
 
-#: ../src/bc.c:94
-msgid "EAN-13"
-msgstr "EAN-13"
+#: ../src/label.c:1503 ../src/ui.c:364
+msgid "Align left"
+msgstr "Alinear a la izquierda"
 
-#: ../src/bc.c:97
-msgid "EAN-13 +2"
-msgstr "EAN-13 2"
+#: ../src/label.c:1560 ../src/ui.c:378
+msgid "Align right"
+msgstr "Alinear a la derecha"
 
-#: ../src/bc.c:100
-msgid "EAN-13 +5"
-msgstr "EAN-13 +5"
+#: ../src/label.c:1621
+msgid "Align horizontal center"
+msgstr "Alinear por centro horizontal"
 
-#: ../src/bc.c:103
-msgid "UPC (UPC-A or UPC-E)"
-msgstr "UPC (UPC-A o UPC-E)"
+#: ../src/label.c:1697
+msgid "Align tops"
+msgstr "Alinear por parte superior"
 
-#: ../src/bc.c:106
-msgid "UPC-A"
-msgstr "UPC-A"
+#: ../src/label.c:1754
+msgid "Align bottoms"
+msgstr "Alinear por parte inferior"
 
-#: ../src/bc.c:109
-msgid "UPC-A +2"
-msgstr "UPC-A +2"
+#: ../src/label.c:1815
+msgid "Align vertical center"
+msgstr "Alinear por centro vertical"
 
-#: ../src/bc.c:112
-msgid "UPC-A +5"
-msgstr "UPC-A +5"
+#: ../src/label.c:1893 ../src/ui.c:406
+msgid "Center horizontally"
+msgstr "Centrar horizontalmente"
 
-#: ../src/bc.c:115
-msgid "UPC-E"
-msgstr "UPC-E"
+#: ../src/label.c:1940 ../src/ui.c:413
+msgid "Center vertically"
+msgstr "Centrar verticalmente"
 
-#: ../src/bc.c:118
-msgid "UPC-E +2"
-msgstr "UPC-E +2"
+#: ../src/label.c:2628 ../src/label.c:2670 ../src/label.c:2696 ../src/ui.c:206
+msgid "Paste"
+msgstr "Pegar"
 
-#: ../src/bc.c:121
-msgid "UPC-E +5"
-msgstr "UPC-E +5"
+#: ../src/label-ellipse.c:160
+msgid "Create ellipse object"
+msgstr "Crear un objeto elipse"
 
-#: ../src/bc.c:124
-msgid "ISBN"
-msgstr "ISBN"
+#: ../src/label-image.c:200 ../src/ui.c:310
+msgid "Create image object"
+msgstr "Crear una imagen"
 
-#: ../src/bc.c:127
-msgid "ISBN +5"
-msgstr "ISBN +5"
+#: ../src/label-image.c:333 ../src/label-image.c:474
+msgid "Set image"
+msgstr "Establecer imagen"
 
-#: ../src/bc.c:130
-msgid "Code 39"
-msgstr "Code 39"
+#: ../src/label-line.c:147 ../src/ui.c:296
+msgid "Create line object"
+msgstr "Crear una línea"
 
-#: ../src/bc.c:133
-msgid "Code 128"
-msgstr "Code 128"
+#: ../src/label-object.c:394 ../src/label-object.c:428
+msgid "Move"
+msgstr "Mover"
 
-#: ../src/bc.c:136
-msgid "Code 128C"
-msgstr "Code 128C"
+#: ../src/label-object.c:479
+msgid "Resize"
+msgstr "Redimensionar"
 
-#: ../src/bc.c:139
-msgid "Code 128B"
-msgstr "Code 128B"
+#: ../src/label-object.c:1217
+msgid "Shadow state"
+msgstr "Estado de la sombra"
 
-#: ../src/bc.c:142
-msgid "Interleaved 2 of 5"
-msgstr "Intercalado 2 de 5"
+#: ../src/label-object.c:1260
+msgid "Shadow offset"
+msgstr "Desplazamiento de la sombra"
 
-#: ../src/bc.c:145
-msgid "Codabar"
-msgstr "Codabar"
+#: ../src/label-object.c:1308
+msgid "Shadow color"
+msgstr "Color de la sombra"
 
-#: ../src/bc.c:148
-msgid "MSI"
-msgstr "MSI"
+#: ../src/label-object.c:1351
+msgid "Shadow opacity"
+msgstr "Opacidad de la sombra"
 
-#: ../src/bc.c:151
-msgid "Plessey"
-msgstr "Plessey"
+#: ../src/label-text.c:281 ../src/ui.c:282
+msgid "Create text object"
+msgstr "Crear un cuadro de texto"
 
-#: ../src/bc.c:154
-msgid "IEC16022 (DataMatrix)"
-msgstr "IEC16022 (matriz de datos)"
+#: ../src/label-text.c:453
+msgid "Typing"
+msgstr "Tecleo"
 
-#: ../src/label.c:531
-msgid "Untitled"
-msgstr "Sin título"
+#: ../src/label-text.c:586 ../data/ui/property-bar.ui.h:4
+msgid "Font family"
+msgstr "Familia tipográfica"
 
-#: ../src/label-barcode.c:426
-msgid "Barcode data empty"
-msgstr "El código de barras está vacío"
+#: ../src/label-text.c:624 ../data/ui/property-bar.ui.h:5
+msgid "Font size"
+msgstr "Tamaño de fuente"
 
-#: ../src/label-barcode.c:430
-msgid "Invalid barcode data"
-msgstr "Datos de código de barras no válidos"
+#: ../src/label-text.c:657
+msgid "Font weight"
+msgstr "Peso de la tipografía"
 
-#: ../src/xml-label.c:193
-msgid "xmlParseFile error"
-msgstr "error de xmlParseFile"
+#: ../src/label-text.c:690 ../data/ui/property-bar.ui.h:6
+msgid "Italic"
+msgstr "Itálica"
 
-#: ../src/xml-label.c:234
-msgid "xmlParseDoc error"
-msgstr "error de xmlParseDoc"
+#: ../src/label-text.c:723
+msgid "Align text"
+msgstr "Alinear texto"
 
-#: ../src/xml-label.c:270
-msgid "No document root"
-msgstr "No hay documento raíz"
+#: ../src/label-text.c:756
+msgid "Line spacing"
+msgstr "Espaciado de líneas"
 
-#: ../src/xml-label.c:278
-msgid "Importing from glabels 0.1 format"
-msgstr "Importando desde formato glabels 0.1"
+#: ../src/label-text.c:789 ../data/ui/property-bar.ui.h:11
+msgid "Text color"
+msgstr "Color de texto"
 
-#: ../src/xml-label.c:287
-msgid "Importing from glabels 0.4 format"
-msgstr "Importando desde formato glabels 0.4"
+#: ../src/label-text.c:933
+msgid "Auto shrink"
+msgstr "Autocontraer"
 
-#: ../src/xml-label.c:296
-#, c-format
-msgid "Unknown glabels Namespace -- Using %s"
-msgstr "Espacio de nombres de glabels desconocido -- Usando %s"
+#: ../src/media-select.c:358 ../src/media-select.c:361
+#: ../src/media-select.c:506 ../src/media-select.c:723
+msgctxt "Brand"
+msgid "Any"
+msgstr "Cualquiera"
 
-#: ../src/xml-label.c:327 ../src/xml-label-04.c:79
-#, c-format
-msgid "Bad root node = \"%s\""
-msgstr "Nodo raíz erróneo = \"%s\""
+#: ../src/media-select.c:365 ../src/media-select.c:893
+msgctxt "Page size"
+msgid "Any"
+msgstr "Cualquiera"
 
-#: ../src/xml-label.c:364
-#, c-format
-msgid "bad node in Document node =  \"%s\""
-msgstr "Nodo erróneo en sección Document = \"%s\""
+#: ../src/media-select.c:372 ../src/media-select.c:375
+#: ../src/media-select.c:902
+msgctxt "Category"
+msgid "Any"
+msgstr "Cualquiera"
 
-#: ../src/xml-label.c:409 ../src/xml-label-04.c:127
+#: ../src/media-select.c:648
 #, c-format
-msgid "bad node =  \"%s\""
-msgstr "Nodo erróneo =  \"%s\""
+msgid "Delete template \"%s\"?"
+msgstr "¿Eliminar la plantilla «%s»?"
 
-#: ../src/xml-label.c:851
-#, c-format
-msgid "bad node in Data node =  \"%s\""
-msgstr "Nodo erróneo en sección Data =  \"%s\""
+#: ../src/media-select.c:650
+msgid "This action will permanently delete this template."
+msgstr "Esta acción eliminará esta plantilla permanentemente."
 
-#: ../src/xml-label.c:1088 ../libglabels/xml-template.c:682
-msgid "Utf8 conversion error."
-msgstr "Conversión UTF-8 errónea"
+#: ../src/media-select.c:990
+msgid "No recent templates found."
+msgstr "No se encontraron plantillas recientes."
 
-#: ../src/xml-label.c:1095
-msgid "Problem saving xml file."
-msgstr "Problemas al guardar archivo xml"
+#: ../src/media-select.c:992
+msgid "Try selecting a template in the \"Search all\" tab."
+msgstr "Inténtelo seleccionando una plantilla en la pestaña «Buscar todo."
 
-#: ../src/merge.c:170 ../src/merge.c:211 ../src/merge.c:375 ../src/merge.c:378
-msgid "None"
-msgstr "Ninguno"
+#. Translators: "No match" means that for the given template search criteria, there
+#. * were no matches found.
+#: ../src/media-select.c:1083
+msgid "No match."
+msgstr "Sin coincidencia."
 
-#: ../src/merge-init.c:59
-msgid "Text file with comma delimeters (CSV)"
-msgstr "Texto separado con comas"
+#: ../src/media-select.c:1085
+msgid "Try selecting a different brand, page size or category."
+msgstr "Intente seleccionar otra marca, tamaño de página o categoría."
 
-#: ../src/merge-init.c:66
-msgid "Text file with colon delimeters"
-msgstr "Texto separado con dos puntos"
+#: ../src/media-select.c:1179
+msgid "No custom templates found."
+msgstr "No se encontraron plantillas personalizadas."
 
-#: ../src/merge-init.c:73
-msgid "Text file with tab delimeters"
-msgstr "Texto separado con tabuladores"
+#: ../src/media-select.c:1181
+msgid ""
+"You may create new templates or try searching for pre-defined templates in "
+"the \"Search all\" tab."
+msgstr ""
+"Debe crear plantillas nuevas o intentar buscar plantillas predefinidas en la "
+"pestaña «Buscar todo»."
 
-#: ../src/merge-init.c:82
-msgid "Data from default Evolution Addressbook"
-msgstr "Datos de la libreta de direcciones predeterminada de Evolution"
+#. Translators: "None" here means that no document-merge source or
+#. * method has been selected.
+#: ../src/merge.c:171 ../src/merge.c:212 ../src/merge.c:376 ../src/merge.c:379
+msgid "None"
+msgstr "Ninguno"
 
-#: ../src/merge-init.c:88
-msgid "Data from a file containing VCards"
-msgstr "Datos desde un archivo que contiene vCards"
+#: ../src/merge-init.c:57
+msgid "Text: Comma Separated Values (CSV)"
+msgstr "Texto: valores separados por comas (CSV)"
 
-#: ../src/merge-evolution.c:309
-msgid "Couldn't construct query"
-msgstr "No se pudo construir la consulta"
+#: ../src/merge-init.c:64
+msgid "Text: Comma Separated Values (CSV) with keys on line 1"
+msgstr "Texto: valores separados por comas (CSV) con claves en la línea 1"
 
-#: ../src/merge-evolution.c:315 ../src/merge-evolution.c:326
-msgid "Couldn't open addressbook."
-msgstr "No se pudo abrir la libreta de direcciones."
+#: ../src/merge-init.c:72
+msgid "Text: Tab Separated Values (TSV)"
+msgstr "Texto: valores separados por tabuladores (TSV)"
 
-#: ../src/merge-evolution.c:341
-msgid "Couldn't list available fields."
-msgstr "No se pudo listar los campos disponibles."
+#: ../src/merge-init.c:79
+msgid "Text: Tab Separated Values (TSV) with keys on line 1"
+msgstr ""
+"Texto: valores separados por tabuladores (TSV) con claves en la línea 1"
 
-#: ../src/merge-evolution.c:377
-msgid "Couldn't get contacts."
-msgstr "No se pudieron obtener los contactos."
+#: ../src/merge-init.c:87
+msgid "Text: Colon separated values"
+msgstr "Texto: valores separados por dos puntos"
 
-#: ../src/wdgt-print-copies.c:153
-msgid "Sheets:"
-msgstr "Hojas:"
+#: ../src/merge-init.c:94
+msgid "Text: Colon separated values with keys on line 1"
+msgstr "Texto: valores separados por dos puntos con claves en la línea 1"
 
-#: ../src/wdgt-print-copies.c:173
-msgid "from:"
-msgstr "desde:"
+#: ../src/merge-init.c:102
+msgid "Text: Semicolon separated values"
+msgstr "Texto: valores separados por punto y coma"
 
-#: ../src/wdgt-print-copies.c:178
-msgid "to:"
-msgstr "hasta:"
+#: ../src/merge-init.c:109
+msgid "Text: Semicolon separated values with keys on line 1"
+msgstr "Texto: valores separados por punto y coma con claves en la línea 1"
 
-#: ../src/wdgt-print-merge.c:154
-msgid "Start on label"
-msgstr "Comenzar en la etiqueta"
+#: ../src/merge-init.c:119
+msgid "Evolution Addressbook"
+msgstr "Libreta de direcciones de Evolution"
 
-#: ../src/wdgt-print-merge.c:159
-msgid "on 1st sheet"
-msgstr "en la primera hoja"
+#: ../src/merge-init.c:125
+msgid "VCards"
+msgstr "Tarjetas de visita"
 
-#: ../src/wdgt-print-merge.c:168
-msgid "Copies:"
-msgstr "Copias:"
+#: ../src/merge-properties-dialog.c:280
+msgid "Merge Properties"
+msgstr "Propiedades de combinación de datos"
 
-#: ../src/wdgt-print-merge.c:173
-msgid "Collate"
-msgstr "Intercalar"
+#: ../src/merge-properties-dialog.c:304 ../src/merge-properties-dialog.c:420
+msgid "Select merge-database source"
+msgstr "Seleccione la fuente de datos para combinar"
 
-#: ../src/wdgt-media-select.c:288 ../src/wdgt-media-select.c:292
-#: ../src/wdgt-media-select.c:297 ../src/wdgt-media-select.c:306
-#: ../src/wdgt-media-select.c:309 ../src/wdgt-media-select.c:402
-#: ../src/wdgt-media-select.c:609 ../src/wdgt-media-select.c:618
-msgid "Any"
-msgstr "Cualquiera"
+#: ../src/merge-properties-dialog.c:315 ../src/merge-properties-dialog.c:446
+msgid "N/A"
+msgstr "N/D"
 
-#: ../src/wdgt-media-select.c:643
-#, c-format
-msgid "%d per sheet"
-msgstr "%d por hoja"
+#: ../src/merge-properties-dialog.c:341
+msgid "Select"
+msgstr "Seleccionar"
 
-#: ../src/wdgt-media-select.c:673
-#, c-format
-msgid "%s x %s %s"
-msgstr "%s x %s %s"
+#: ../src/merge-properties-dialog.c:348
+msgid "Record/Field"
+msgstr "Registro/Campo"
 
-#: ../src/wdgt-media-select.c:678
-#, c-format
-msgid "%.5g x %.5g %s"
-msgstr "%.5g x %.5g %s"
+#: ../src/merge-properties-dialog.c:356 ../data/ui/object-editor.ui.h:10
+msgid "Data"
+msgstr "Datos"
 
-#: ../src/wdgt-media-select.c:689 ../src/wdgt-media-select.c:703
-#, c-format
-msgid "%s %s diameter"
-msgstr "Diámetro %s %s"
+#. Translators: "Fixed" here means that for the given document-merge method, there are
+#. * no further choices to further define the source of data.  E.g. if you select the
+#. * evolution-data-server, there are no further choices -- the source is "Fixed."
+#.
+#: ../src/merge-properties-dialog.c:439
+msgid "Fixed"
+msgstr "Fijo"
 
-#: ../src/wdgt-media-select.c:693 ../src/wdgt-media-select.c:707
-#, c-format
-msgid "%.5g %s diameter"
-msgstr "Diámetro %.5g %s"
+#. Translators: "Up" refers to the direction towards the top of a label.
+#: ../src/mini-preview.c:1054
+msgid "Up"
+msgstr "Arriba"
 
-#: ../src/wdgt-media-select.c:781
-msgid "No recent templates found."
-msgstr "No se encontraron plantillas recientes."
+#: ../src/new-label-dialog.c:203
+msgid "Select Product"
+msgstr "Seleccionar producto"
 
-#: ../src/wdgt-media-select.c:782
-msgid "Try selecting a template from the \"Search all templates\" page."
-msgstr ""
-"Inténtelo seleccionando una plantilla en la página «Buscar todas las "
-"plantillas»."
+#: ../src/new-label-dialog.c:215
+msgid "Choose Orientation"
+msgstr "Seleccionar orientación"
 
-#: ../src/wdgt-media-select.c:861
-msgid "No match."
-msgstr "Sin coincidencia."
+#: ../src/new-label-dialog.c:229
+msgid "Review"
+msgstr "Revisar"
 
-#: ../src/wdgt-media-select.c:862
-msgid "Try selecting a different brand, page size or category."
-msgstr "Intente seleccionar otra marca, tamaño de página o categoría."
+#: ../src/object-editor-bc-page.c:97 ../src/object-editor-shadow-page.c:93
+#: ../src/object-editor-text-page.c:97 ../src/prefs-dialog.c:335
+#: ../src/ui-property-bar.c:277
+msgid "Default"
+msgstr "Predeterminado"
 
-#. This is the default custom color
-#: ../src/mygal/color-palette.c:389
-msgid "custom"
-msgstr "personalizado"
+#: ../src/object-editor.c:161 ../src/object-editor.c:470
+msgid "Object properties"
+msgstr "Propiedades del objeto"
 
-#. "Custom" color - we'll pop up a GtkColorButton
-#: ../src/mygal/color-palette.c:431
-msgid "Custom Color:"
-msgstr "Color personalizado:"
+#: ../src/object-editor.c:314
+msgid "Box object properties"
+msgstr "Propiedades del rectángulo"
 
-#: ../src/mygal/color-palette.c:439
-msgid "Choose Custom Color"
-msgstr "Elegir color:"
+#: ../src/object-editor.c:333
+msgid "Ellipse object properties"
+msgstr "Propiedades del elipse"
 
-#: ../src/mygal/color-palette.c:572
-msgid "black"
-msgstr "negro"
+#: ../src/object-editor.c:352
+msgid "Line object properties"
+msgstr "Propiedades de la línea"
 
-#: ../src/mygal/color-palette.c:573
-msgid "light brown"
-msgstr "marrón"
+#: ../src/object-editor.c:369
+msgid "Image object properties"
+msgstr "Propiedades de la imagen"
 
-#: ../src/mygal/color-palette.c:574
-msgid "brown gold"
-msgstr "marrón oscuro"
+#: ../src/object-editor.c:386
+msgid "Text object properties"
+msgstr "Propiedades del texto"
 
-#: ../src/mygal/color-palette.c:575
-msgid "dark green #2"
-msgstr "verde oscuro #2"
+#: ../src/object-editor.c:408
+msgid "Barcode object properties"
+msgstr "Propiedades del código de barras"
 
-#: ../src/mygal/color-palette.c:576
-msgid "navy"
-msgstr "azul metalizado"
+#: ../src/object-editor-edit-page.c:76
+msgid "Insert merge field"
+msgstr "Insertar campo para combinar"
 
-#: ../src/mygal/color-palette.c:577 ../src/mygal/color-palette.c:633
-msgid "dark blue"
-msgstr "azul muy oscuro"
+#: ../src/object-editor-fill-page.c:79 ../src/prefs-dialog.c:341
+#: ../src/ui-property-bar.c:287
+msgid "No Fill"
+msgstr "Sin relleno"
 
-#: ../src/mygal/color-palette.c:578
-msgid "purple #2"
-msgstr "azul oscuro"
+#: ../src/object-editor-image-page.c:302
+msgid "All Files"
+msgstr "Todos los archivos"
 
-#: ../src/mygal/color-palette.c:579
-msgid "very dark gray"
-msgstr "verde muy oscuro"
+#: ../src/object-editor-image-page.c:307
+msgid "All Images"
+msgstr "Todas las imágenes"
 
-#: ../src/mygal/color-palette.c:582 ../src/mygal/color-palette.c:638
-msgid "dark red"
-msgstr "rojo oscuro"
+#: ../src/object-editor-image-page.c:323
+#, c-format
+msgid "%s (*.%s)"
+msgstr "%s (*.%s)"
 
-#: ../src/mygal/color-palette.c:583
-msgid "red-orange"
-msgstr "anaranjado"
+#: ../src/object-editor-line-page.c:79 ../src/prefs-dialog.c:338
+#: ../src/ui-property-bar.c:297
+msgid "No Line"
+msgstr "Sin línea"
 
-#: ../src/mygal/color-palette.c:584
-msgid "gold"
-msgstr "marrón claro"
+#: ../src/object-editor-size-page.c:89
+msgid "Lock aspect ratio."
+msgstr "Bloquear proporción de aspecto."
 
-#: ../src/mygal/color-palette.c:585
-msgid "dark green"
-msgstr "verde oscuro"
+#: ../src/prefs-dialog.c:168 ../data/ui/prefs-dialog.ui.h:21
+msgid "gLabels Preferences"
+msgstr "Preferencias de gLabels"
 
-#: ../src/mygal/color-palette.c:586 ../src/mygal/color-palette.c:639
-msgid "dull blue"
-msgstr "verde azulado"
+#. TODO: Is this the actual part #?
+#: ../src/print-op.c:205 ../src/print-op-dialog.c:215
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:4
+#: ../templates/misc-iso-templates.xml.h:24
+msgid "Labels"
+msgstr "Etiquetas"
+
+#: ../src/template-designer.c:429
+msgid "New gLabels Template"
+msgstr "Plantilla nueva de gLabels"
+
+#: ../src/template-designer.c:487
+msgid "Welcome"
+msgstr "Bienvenido"
+
+#: ../src/template-designer.c:526
+msgid "Name and Description"
+msgstr "Nombre y descripción:"
+
+#: ../src/template-designer.c:575
+msgid "Page Size"
+msgstr "Tamaño de la página"
+
+#: ../src/template-designer.c:642
+msgid "Label or Card Shape"
+msgstr "Forma de etiqueta o tarjeta"
+
+#: ../src/template-designer.c:689 ../src/template-designer.c:790
+msgid "Label or Card Size"
+msgstr "Etiqueta o tamaño de tarjeta"
+
+#: ../src/template-designer.c:873
+msgid "Label Size (round)"
+msgstr "Tamaño de etiqueta (redondeada)"
+
+#: ../src/template-designer.c:954
+msgid "Label Size (CD/DVD)"
+msgstr "Tamaño de etiqueta (CD/DVD)"
+
+#: ../src/template-designer.c:1045
+msgid "Number of Layouts"
+msgstr "Cantidad de disposiciones"
+
+#: ../src/template-designer.c:1113
+msgid "Layout(s)"
+msgstr "Disposicion(es):"
+
+#: ../src/template-designer.c:1218
+msgid "Design Completed"
+msgstr "Diseño completo"
+
+#: ../src/template-designer.c:1246
+msgid "Edit gLabels Template"
+msgstr "Editar plantilla de gLabels"
+
+#: ../src/template-designer.c:1549
+msgid "Brand and part# match an existing template!"
+msgstr "La marca y el número de parte coinciden con una plantilla existente"
+
+#. Menu entries.
+#: ../src/ui.c:91
+msgid "_File"
+msgstr "_Archivo"
 
-#: ../src/mygal/color-palette.c:587 ../src/mygal/color-palette.c:640
-msgid "blue"
-msgstr "azul"
+#: ../src/ui.c:92
+msgid "Open Recent _Files"
+msgstr "Abrir archivos _recientes"
 
-#: ../src/mygal/color-palette.c:588
-msgid "dull purple"
-msgstr "violeta azulado"
+#: ../src/ui.c:93
+msgid "_Edit"
+msgstr "_Editar"
 
-#: ../src/mygal/color-palette.c:589
-msgid "dark grey"
-msgstr "gris oscuro"
+#: ../src/ui.c:94
+msgid "_View"
+msgstr "_Ver"
 
-#: ../src/mygal/color-palette.c:592
-msgid "red"
-msgstr "rojo"
+#: ../src/ui.c:95
+msgid "Customize Main Toolbar"
+msgstr "Personalizar barra principal"
 
-#: ../src/mygal/color-palette.c:593
-msgid "orange"
-msgstr "naranja"
+#: ../src/ui.c:96
+msgid "Customize Drawing Toolbar"
+msgstr "Personalizar barra de dibujo"
 
-#: ../src/mygal/color-palette.c:594
-msgid "lime"
-msgstr "lima"
+#: ../src/ui.c:97
+msgid "Customize Properties Toolbar"
+msgstr "Personalizar barra de propiedades"
 
-#: ../src/mygal/color-palette.c:595
-msgid "dull green"
-msgstr "verde opaco"
+#: ../src/ui.c:98
+msgid "_Objects"
+msgstr "_Objetos"
+
+#: ../src/ui.c:99
+msgid "_Create"
+msgstr "_Crear"
+
+#: ../src/ui.c:100
+msgid "_Order"
+msgstr "Or_den"
+
+#: ../src/ui.c:101
+msgid "_Rotate/Flip"
+msgstr "_Rotar/Voltear"
+
+#: ../src/ui.c:102
+#| msgid "Alignment:"
+msgid "_Alignment"
+msgstr "_Alineación"
+
+#: ../src/ui.c:103
+#| msgid "Centers"
+msgid "C_enter"
+msgstr "C_entrar"
+
+#: ../src/ui.c:104
+msgid "_Help"
+msgstr "A_yuda"
+
+#. Popup entries.
+#: ../src/ui.c:107 ../src/ui.c:108
+msgid "Context Menu"
+msgstr "Menú contextual"
+
+#: ../src/ui.c:113
+msgid "_New"
+msgstr "_Nuevo"
+
+#: ../src/ui.c:115
+msgid "Create a new file"
+msgstr "Crear un archivo nuevo"
+
+#: ../src/ui.c:120
+msgid "_Open..."
+msgstr "_Abrir..."
+
+#: ../src/ui.c:122
+msgid "Open a file"
+msgstr "Abrir un archivo"
+
+#: ../src/ui.c:127
+msgid "_Save"
+msgstr "_Guardar"
+
+#: ../src/ui.c:129
+msgid "Save current file"
+msgstr "Guarda el archivo actual"
+
+#: ../src/ui.c:134
+msgid "Save _As..."
+msgstr "Guardar _como..."
+
+#: ../src/ui.c:136
+msgid "Save the current file to a different name"
+msgstr "Guardar el archivo actual con un nombre diferente"
+
+#: ../src/ui.c:141
+msgid "_Print..."
+msgstr "_Imprimir…"
+
+#: ../src/ui.c:143
+msgid "Print the current file"
+msgstr "Imprimir el archivo en uso"
+
+#: ../src/ui.c:148
+msgid "Properties..."
+msgstr "Propiedades…"
+
+#: ../src/ui.c:150
+msgid "Modify document properties"
+msgstr "Modificar las propiedades del documento"
+
+#: ../src/ui.c:155
+msgid "Template _Designer..."
+msgstr "_Diseñador de plantillas…"
+
+#: ../src/ui.c:157
+msgid "Create a custom template"
+msgstr "Crear una plantilla personalizada"
+
+#: ../src/ui.c:162
+msgid "_Close"
+msgstr "_Cerrar"
+
+#: ../src/ui.c:164
+msgid "Close the current file"
+msgstr "Guardar el archivo en uso"
+
+#: ../src/ui.c:169
+msgid "_Quit"
+msgstr "_Salir"
+
+#: ../src/ui.c:171
+msgid "Quit the program"
+msgstr "Salir del programa"
+
+#: ../src/ui.c:178 ../src/ui.c:180 ../src/ui.c:976
+msgid "Undo"
+msgstr "Deshacer"
+
+#: ../src/ui.c:185 ../src/ui.c:187 ../src/ui.c:983
+msgid "Redo"
+msgstr "Rehacer"
+
+#: ../src/ui.c:192
+msgid "Cut"
+msgstr "Cortar"
+
+#: ../src/ui.c:194
+msgid "Cut the selection"
+msgstr "Cortar la selección"
+
+#: ../src/ui.c:199
+msgid "Copy"
+msgstr "Copiar"
+
+#: ../src/ui.c:201
+msgid "Copy the selection"
+msgstr "Copiar la selección"
+
+#: ../src/ui.c:208
+msgid "Paste the clipboard"
+msgstr "Pegar desde portapapeles"
+
+#: ../src/ui.c:215
+msgid "Delete the selected objects"
+msgstr "Borrar los objetos seleccionados"
+
+#: ../src/ui.c:220
+msgid "Select All"
+msgstr "Seleccionar todo"
+
+#: ../src/ui.c:222
+msgid "Select all objects"
+msgstr "Seleccionar todos los objetos"
+
+#: ../src/ui.c:227
+msgid "Un-select All"
+msgstr "Deseleccionar todo"
+
+#: ../src/ui.c:229
+msgid "Remove all selections"
+msgstr "Eliminar todas las selecciones"
+
+#: ../src/ui.c:234
+msgid "Preferences"
+msgstr "Preferencias"
+
+#: ../src/ui.c:236
+msgid "Configure the application"
+msgstr "Configurar aplicación"
+
+#: ../src/ui.c:243
+msgid "Zoom in"
+msgstr "Ampliar"
+
+#: ../src/ui.c:245
+msgid "Increase magnification"
+msgstr "Aumentar escala"
+
+#: ../src/ui.c:250
+msgid "Zoom out"
+msgstr "Reducir"
+
+#: ../src/ui.c:252
+msgid "Decrease magnification"
+msgstr "Reducir escala"
+
+#: ../src/ui.c:257
+msgid "Zoom 1 to 1"
+msgstr "Escala 1:1"
+
+#: ../src/ui.c:259
+msgid "Restore scale to 100%"
+msgstr "Restablecer escala al 100%"
+
+#: ../src/ui.c:264
+msgid "Zoom to fit"
+msgstr "Ampliar hasta ajustar"
+
+#: ../src/ui.c:266
+msgid "Set scale to fit window"
+msgstr "Establecer la escala para ajustar a la ventana"
+
+#: ../src/ui.c:273
+msgid "Select Mode"
+msgstr "Modo de selección"
+
+#: ../src/ui.c:275
+msgid "Select, move and modify objects"
+msgstr "Seleccionar, mover y modificar objetos"
+
+#: ../src/ui.c:280 ../src/view-text.c:94 ../data/ui/object-editor.ui.h:30
+#: ../data/ui/prefs-dialog.ui.h:17
+msgid "Text"
+msgstr "Texto"
+
+#: ../src/ui.c:287
+msgid "Box"
+msgstr "Caja"
+
+#: ../src/ui.c:289
+msgid "Create box/rectangle object"
+msgstr "Crear un objeto de caja o rectángulo"
+
+#: ../src/ui.c:294 ../data/ui/object-editor.ui.h:19
+#: ../data/ui/prefs-dialog.ui.h:9
+msgid "Line"
+msgstr "Línea"
+
+#: ../src/ui.c:301
+msgid "Ellipse"
+msgstr "Elipse"
+
+#: ../src/ui.c:303
+msgid "Create ellipse/circle object"
+msgstr "Crear un círculo o elipse"
+
+#: ../src/ui.c:308 ../data/ui/object-editor.ui.h:16
+msgid "Image"
+msgstr "Imagen"
+
+#: ../src/ui.c:315
+msgid "Barcode"
+msgstr "Código de barras"
+
+#: ../src/ui.c:324
+msgid "Raise object to top"
+msgstr "Traer al frente"
+
+#: ../src/ui.c:331
+msgid "Lower object to bottom"
+msgstr "Llevar objeto al fondo"
+
+#: ../src/ui.c:338
+msgid "Rotate object 90 degrees counter-clockwise"
+msgstr "Rotar el objeto 90 grados en sentido antihorario"
+
+#: ../src/ui.c:345
+msgid "Rotate object 90 degrees clockwise"
+msgstr "Rotar el objeto 90 grados en sentido horario"
+
+#: ../src/ui.c:352
+msgid "Flip object horizontally"
+msgstr "Voltear objeto horizontalmente"
+
+#: ../src/ui.c:359
+msgid "Flip object vertically"
+msgstr "Voltear objeto verticalmente"
+
+#: ../src/ui.c:366
+msgid "Align objects to left edges"
+msgstr "Alinear objetos por su lado izquierdo"
+
+#: ../src/ui.c:371
+#| msgid "Align left"
+msgid "Align center"
+msgstr "Alinear al centro"
+
+#: ../src/ui.c:373
+msgid "Align objects to horizontal centers"
+msgstr "Alinear objetos por su centro horizontal"
+
+#: ../src/ui.c:380
+msgid "Align objects to right edges"
+msgstr "Alinear objetos por su lado derecho"
+
+#: ../src/ui.c:385
+#| msgid "Align tops"
+msgid "Align top"
+msgstr "Alinear por parte superior"
+
+#: ../src/ui.c:387
+msgid "Align objects to top edges"
+msgstr "Alinear objetos por su parte superior"
+
+#: ../src/ui.c:392
+#| msgid "Align left"
+msgid "Align middle"
+msgstr "Alinear al medio"
+
+#: ../src/ui.c:394
+msgid "Align objects to vertical centers"
+msgstr "Alinear objetos por su centro vertical"
+
+#: ../src/ui.c:399
+#| msgid "Align bottoms"
+msgid "Align bottom"
+msgstr "Alinear por parte inferior"
 
-#: ../src/mygal/color-palette.c:596
-msgid "dull blue #2"
-msgstr "cyan"
+#: ../src/ui.c:401
+msgid "Align objects to bottom edges"
+msgstr "Alinear objetos por su parte inferior"
 
-#: ../src/mygal/color-palette.c:597
-msgid "sky blue #2"
-msgstr "celeste"
+#: ../src/ui.c:408
+msgid "Center objects to horizontal label center"
+msgstr "Centrar objetos con el centro horizontal de la etiqueta"
 
-#: ../src/mygal/color-palette.c:598 ../src/mygal/color-palette.c:637
-msgid "purple"
-msgstr "violeta"
+#: ../src/ui.c:415
+msgid "Center objects to vertical label center"
+msgstr "Centrar objetos con el centro vertical de la etiqueta"
 
-#: ../src/mygal/color-palette.c:599
-msgid "gray"
-msgstr "gris"
+#: ../src/ui.c:422
+msgid "Edit merge properties"
+msgstr "Editar propiedades de combinación de datos"
 
-#: ../src/mygal/color-palette.c:602 ../src/mygal/color-palette.c:634
-msgid "magenta"
-msgstr "fucsia"
+#: ../src/ui.c:429
+msgid "Contents"
+msgstr "Contenido"
 
-#: ../src/mygal/color-palette.c:603
-msgid "bright orange"
-msgstr "naranja claro"
+#: ../src/ui.c:431
+msgid "Open glabels manual"
+msgstr "Abrir el manual de glabels"
 
-#: ../src/mygal/color-palette.c:604 ../src/mygal/color-palette.c:635
-msgid "yellow"
-msgstr "amarillo"
+#: ../src/ui.c:436
+msgid "About..."
+msgstr "Acerca de..."
 
-#: ../src/mygal/color-palette.c:605
-msgid "green"
-msgstr "verde"
+#: ../src/ui.c:438 ../src/ui-commands.c:1198
+msgid "About glabels"
+msgstr "Acerca de glabels"
 
-#: ../src/mygal/color-palette.c:606 ../src/mygal/color-palette.c:636
-msgid "cyan"
-msgstr "turquesa"
+#: ../src/ui.c:448
+msgid "Property toolbar"
+msgstr "Barra de propiedades"
 
-#: ../src/mygal/color-palette.c:607
-msgid "bright blue"
-msgstr "azul claro"
+#: ../src/ui.c:450
+msgid "Change the visibility of the property toolbar in the current window"
+msgstr "Cambiar la visibilidad de la barra de propiedades"
 
-#: ../src/mygal/color-palette.c:608 ../src/mygal/color-palette.c:625
-msgid "red purple"
-msgstr "borravino"
+#: ../src/ui.c:456
+msgid "Grid"
+msgstr "Rejilla"
 
-#: ../src/mygal/color-palette.c:609
-msgid "light grey"
-msgstr "gris claro"
+#: ../src/ui.c:458
+msgid "Change the visibility of the grid in the current window"
+msgstr "Cambiar la visibilidad de la grilla"
 
-#: ../src/mygal/color-palette.c:612 ../src/mygal/color-palette.c:629
-msgid "pink"
-msgstr "rosa"
+#: ../src/ui.c:464
+msgid "Markup"
+msgstr "Margen"
 
-#: ../src/mygal/color-palette.c:613
-msgid "light orange"
-msgstr "naranja claro"
+#: ../src/ui.c:466
+msgid "Change the visibility of markup lines in the current window"
+msgstr "Cambiar la visibilidad de los márgenes"
 
-#: ../src/mygal/color-palette.c:614 ../src/mygal/color-palette.c:626
-msgid "light yellow"
-msgstr "amarillo claro"
+#: ../src/ui.c:477
+msgid "Main toolbar"
+msgstr "Barra principal"
 
-#: ../src/mygal/color-palette.c:615
-msgid "light green"
-msgstr "verde claro"
+#: ../src/ui.c:479
+msgid "Change the visibility of the main toolbar in the current window"
+msgstr "Cambiar la visibilidad de la barra principal"
 
-#: ../src/mygal/color-palette.c:616
-msgid "light cyan"
-msgstr "turquesa claro"
+#: ../src/ui.c:485
+msgid "Drawing toolbar"
+msgstr "Barra de dibujo"
 
-#: ../src/mygal/color-palette.c:617 ../src/mygal/color-palette.c:627
-msgid "light blue"
-msgstr "celeste claro"
+#: ../src/ui.c:487
+msgid "Change the visibility of the drawing toolbar in the current window"
+msgstr "Cambiar la visibilidad de la barra de dibujo"
 
-#: ../src/mygal/color-palette.c:618 ../src/mygal/color-palette.c:631
-msgid "light purple"
-msgstr "violeta claro"
+#: ../src/ui-commands.c:1135
+msgid "Glabels includes contributions from:"
+msgstr "Glabels incluye colaboraciones de:"
 
-#: ../src/mygal/color-palette.c:619
-msgid "white"
-msgstr "blanco"
+#: ../src/ui-commands.c:1144
+msgid "See the file AUTHORS for additional credits,"
+msgstr "Vea el archivo AUTHORS, "
 
-#: ../src/mygal/color-palette.c:624
-msgid "purplish blue"
-msgstr "azul purpurado"
+#: ../src/ui-commands.c:1145
+msgid "or visit http://glabels.org/"
+msgstr "o visite http://glabels.org/"
 
-#: ../src/mygal/color-palette.c:628
-msgid "dark purple"
-msgstr "violeta oscuro"
+#: ../src/ui-commands.c:1162
+msgid "A label and business card creation program.\n"
+msgstr "Un programa de creación de etiquetas y tarjetas de visita.\n"
 
-#: ../src/mygal/color-palette.c:630
-msgid "sky blue"
-msgstr "celeste"
+#: ../src/ui-commands.c:1166
+msgid "translator-credits"
+msgstr ""
+"Jorge González <jorgegonz@svn.gnome.org>, 2010\n"
+"Sergio Rivadero <sergiorivadero@argentina.com>, 2005"
 
-#: ../src/critical-error-handler.c:73
-msgid "gLabels Fatal Error!"
-msgstr "Error fatal de gLables"
+#: ../src/ui-commands.c:1169
+msgid ""
+"gLabels is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"gLabels is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"gLabels es software libre; Puede modificarlo y redistribuirlo\n"
+" bajo los términos de la Licencia Pública General de GNU tal\n"
+"como es publicada por la Free Software Foundation; ya sea la \n"
+"versión 2 de dicha licencia, o (a su opción) cualquier otra versión \n"
+"posterior.\n"
+"\n"
+"gLabels se distribuye con la esperanza de que le será útil, pero\n"
+"SIN NINGUNA GARANTÍA; incluso sin la garantía implícita de\n"
+"MERCANTILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR; \n"
+"Para más detalles vea la Licencia Pública General de GNU.\n"
 
-#: ../src/warning-handler.c:73
+#: ../src/warning-handler.c:69
 msgid "gLabels Error!"
 msgstr "Error de gLabels"
 
+#: ../src/window.c:281
+msgid "(none) - gLabels"
+msgstr "(sin nombre) - gLabels"
+
+#: ../src/window.c:482
+msgid "(modified)"
+msgstr "(modificado)"
+
 #. Create and append an "Other" entry.
-#: ../libglabels/db.c:118
+#. Translators: "Other" here means other page size.  Meaning a page size
+#. * other than the standard ones that libglabels knows about such as
+#. * "letter", "A4", etc.
+#: ../libglabels/lgl-db.c:267
 msgid "Other"
 msgstr "Otros"
 
 #. Create and append a "User defined" entry.
-#: ../libglabels/db.c:131
+#: ../libglabels/lgl-db.c:276
 msgid "User defined"
 msgstr "Definido por el usuario"
 
-#: ../libglabels/db.c:482
+#: ../libglabels/lgl-db.c:663
 msgid ""
 "Unable to locate paper size definitions.  Libglabels may not be installed "
 "correctly!"
 msgstr ""
-"No se pudieron ubicar las definiciones del tamaño del papel. Puede que "
+"No se pudieron encontrar las definiciones del tamaño del papel. Puede que "
 "libglabels no esté instalado correctamente."
 
-#: ../libglabels/db.c:875
+#: ../libglabels/lgl-db.c:1062
 msgid ""
 "Unable to locate category definitions.  Libglabels may not be installed "
 "correctly!"
 msgstr ""
-"No se pudieron ubicar las definiciones de categorías. Puede que libglabels "
-"no esté instalado correctamente."
+"No se pudieron encontrar las definiciones de categorías. Puede que "
+"libglabels no esté instalado correctamente."
 
-#: ../libglabels/db.c:1461
+#: ../libglabels/lgl-db.c:1989
 msgid ""
 "Unable to locate any template files.  Libglabels may not be installed "
 "correctly!"
 msgstr ""
-"No se pudo ubicar ningún archivo de plantilla. Puede que libglabels no esté "
-"instalado correctamente."
+"No se pudo encontrar ningún archivo de plantilla. Puede que libglabels no "
+"esté instalado correctamente."
 
-#: ../libglabels/db.c:1538
+#: ../libglabels/lgl-db.c:2056
 #, c-format
-msgid "Generic %s full page template"
-msgstr "Página de plantilla genérica %s"
+msgid "%s full page label"
+msgstr "Etiqueta a página completa %s"
 
-#: ../libglabels/xml-template.c:227
-msgid "Missing name or brand/part attributes."
-msgstr "Faltan los atributos de nombre o marca/parte."
-
-#. This should always be an id, but just in case a name
-#. slips by!
-#: ../libglabels/xml-template.c:244
+#.
+#. * Translators: 1st %d = number of labels across a page,
+#. *              2nd %d = number of labels down a page,
+#. *              3rd %d = total number of labels on a page (sheet).
+#.
+#: ../libglabels/lgl-template.c:673
 #, c-format
-msgid "Unknown page size id \"%s\", trying as name"
-msgstr "Código \"%s\" de tamaño de página desconocido, intentando como nombre."
+msgid "%d × %d (%d per sheet)"
+msgstr "%d x %d  (%d por hoja)"
 
-#: ../libglabels/xml-template.c:256
+#. Translators: %d is the total number of labels on a page (sheet).
+#: ../libglabels/lgl-template.c:678
 #, c-format
-msgid "Unknown page size id or name \"%s\""
-msgstr "Código \"%s\" o nombre de página desconocido"
+msgid "%d per sheet"
+msgstr "%d por hoja"
 
-#: ../libglabels/xml-template.c:627
-msgid ""
-"Missing required \"brand\" or \"part\" attribute, trying deprecated name."
-msgstr ""
-"Falta el atributo requerido «marca» o «parte», intentándolo con un nombre "
-"obsoleto."
+#: ../libglabels/lgl-template.c:759 ../libglabels/lgl-template.c:767
+#: ../libglabels/lgl-template.c:779 ../libglabels/lgl-template.c:787
+msgid "diameter"
+msgstr "diámetro"
+
+#. The ids are identical to the absolute length units supported in
+#. the CSS2 Specification (Section 4.3.2)
+#. This table must be sorted exactly as the enumerations in lglUnits
+#. [LGL_UNITS_POINT]
+#: ../libglabels/lgl-units.c:65 ../data/ui/object-editor.ui.h:42
+#: ../data/ui/prefs-dialog.ui.h:22
+msgid "points"
+msgstr "puntos"
+
+#. [LGL_UNITS_INCH]
+#: ../libglabels/lgl-units.c:66 ../data/ui/object-editor.ui.h:40
+#: ../data/ui/template-designer.ui.h:66
+msgid "inches"
+msgstr "pulgadas"
 
-#: ../libglabels/xml-template.c:637
-msgid "Name attribute also missing."
-msgstr "También falta el atributo del nombre."
+#. [LGL_UNITS_MM]
+#: ../libglabels/lgl-units.c:67
+msgid "mm"
+msgstr "mm"
 
-#: ../data/glade/merge-properties-dialog.glade.h:1
-msgid "<b>Record selection/preview</b>"
-msgstr "<b>Grabar la selección/vista previa</b>"
+#. [LGL_UNITS_CM]
+#: ../libglabels/lgl-units.c:68
+msgid "cm"
+msgstr "cm"
 
-#: ../data/glade/merge-properties-dialog.glade.h:2
-msgid "<b>Source</b>"
-msgstr "<b>Origen</b>"
+#. [LGL_UNITS_PICA]
+#: ../libglabels/lgl-units.c:69
+msgid "picas"
+msgstr "picas"
 
-#: ../data/glade/merge-properties-dialog.glade.h:3
+#.
+#. * Local Variables:       -- emacs
+#. * mode: C                -- emacs
+#. * c-basic-offset: 8      -- emacs
+#. * tab-width: 8           -- emacs
+#. * indent-tabs-mode: nil  -- emacs
+#. * End:                   -- emacs
+#.
+#: ../data/ui/merge-properties-dialog.ui.h:1
 msgid "Format:"
 msgstr "Formato:"
 
-#: ../data/glade/merge-properties-dialog.glade.h:4
+#: ../data/ui/merge-properties-dialog.ui.h:2
 msgid "Location:"
 msgstr "Ubicación:"
 
-#: ../data/glade/merge-properties-dialog.glade.h:5
+#: ../data/ui/merge-properties-dialog.ui.h:3
+msgid "Record selection/preview"
+msgstr "Grabar la selección/vista previa"
+
+#: ../data/ui/merge-properties-dialog.ui.h:4
 msgid "Select all"
 msgstr "Seleccionar todo"
 
-#: ../data/glade/merge-properties-dialog.glade.h:6
+#: ../data/ui/merge-properties-dialog.ui.h:5
+msgid "Source"
+msgstr "Origen"
+
+#: ../data/ui/merge-properties-dialog.ui.h:6
 msgid "Unselect all"
 msgstr "Deseleccionar todo"
 
-#: ../data/glade/merge-properties-dialog.glade.h:7
-#: ../data/glade/object-editor.glade.h:39
-msgid "dialog1"
-msgstr "dialogo1"
+#: ../data/ui/media-select.ui.h:1
+msgid "Brand:"
+msgstr "Marca:"
 
-#: ../data/glade/new-label-dialog.glade.h:1
-msgid "<b>Label orientation</b>"
-msgstr "<b>Orientación de la etiqueta</b>"
+#: ../data/ui/media-select.ui.h:2
+msgid "Category:"
+msgstr "Categoría:"
 
-#: ../data/glade/new-label-dialog.glade.h:2
-msgid "<b>Media type</b>"
-msgstr "<b>Tipo de medio</b>"
+#: ../data/ui/media-select.ui.h:3
+msgid "Custom"
+msgstr "Personalizada"
 
-#: ../data/glade/object-editor.glade.h:2
-#, no-c-format
-msgid "%"
-msgstr "%"
+#: ../data/ui/media-select.ui.h:4 ../data/ui/new-label-dialog.ui.h:6
+#: ../data/ui/template-designer.ui.h:46
+msgid "Page size:"
+msgstr "Tamaño de la página:"
+
+#: ../data/ui/media-select.ui.h:5
+msgid "Recent"
+msgstr "Reciente"
 
-#: ../data/glade/object-editor.glade.h:3
-msgid "00000000000 00000"
-msgstr "00000000000 00000"
+#: ../data/ui/media-select.ui.h:6
+msgid "Search all"
+msgstr "Buscar todo"
 
-#: ../data/glade/object-editor.glade.h:4
-msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
+#: ../data/ui/new-label-dialog.ui.h:1
+msgid ""
+"Choose label or card product from hundreds of predefined templates or define "
+"your own."
 msgstr ""
-"<span weight=\"bold\" size=\"larger\">Propiedades de objecto xxx</span>"
+"Seleccionar una etiqueta o tarjeta de producto de cientos de plantillas "
+"predefinidas o definir las suyas propias."
+
+#: ../data/ui/new-label-dialog.ui.h:2 ../data/ui/template-designer.ui.h:29
+msgid "Description:"
+msgstr "Descripción:"
+
+#: ../data/ui/new-label-dialog.ui.h:3
+msgid "Label size:"
+msgstr "Tamaño de la etiqueta:"
+
+#: ../data/ui/new-label-dialog.ui.h:4
+msgid "Layout:"
+msgstr "Disposición:"
+
+#: ../data/ui/new-label-dialog.ui.h:5
+msgid "Normal"
+msgstr "Normal"
+
+#: ../data/ui/new-label-dialog.ui.h:7 ../data/ui/template-designer.ui.h:47
+msgid "Part #:"
+msgstr "Número de parte:"
+
+#: ../data/ui/new-label-dialog.ui.h:8
+msgid "Please review and confirm your selection."
+msgstr "Por favor, revise y confirme su selección."
+
+#: ../data/ui/new-label-dialog.ui.h:9
+msgid "Rotated"
+msgstr "Rotada"
 
-#: ../data/glade/object-editor.glade.h:5 ../data/glade/prefs-dialog.glade.h:7
+#: ../data/ui/new-label-dialog.ui.h:10
+msgid "Select orientation of label content."
+msgstr "Seleccione la orientación del contenido de la etiqueta."
+
+#: ../data/ui/new-label-dialog.ui.h:11
+msgid "Similar products:"
+msgstr "Productos similares:"
+
+#: ../data/ui/new-label-dialog.ui.h:12
+msgid "Vendor:"
+msgstr "Fabricante:"
+
+#: ../data/ui/object-editor.ui.h:1
+msgid " "
+msgstr " "
+
+#: ../data/ui/object-editor.ui.h:3
+#, no-c-format
+msgid "%"
+msgstr "%"
+
+#: ../data/ui/object-editor.ui.h:4 ../data/ui/prefs-dialog.ui.h:2
 msgid "Alignment:"
 msgstr "Alineación:"
 
-#: ../data/glade/object-editor.glade.h:6
+#: ../data/ui/object-editor.ui.h:5
 msgid "Allow merge to automatically shrink text"
 msgstr "Permitir ampliar texto automáticamente"
 
-#: ../data/glade/object-editor.glade.h:7
+#: ../data/ui/object-editor.ui.h:6
 msgid "Angle:"
 msgstr "Ángulo:"
 
-#: ../data/glade/object-editor.glade.h:8
+#: ../data/ui/object-editor.ui.h:7
+msgid "Backend:"
+msgstr "«Backend»:"
+
+#: ../data/ui/object-editor.ui.h:8
 msgid "Checksum"
 msgstr "Verificación"
 
-#: ../data/glade/object-editor.glade.h:9 ../data/glade/prefs-dialog.glade.h:8
+#: ../data/ui/object-editor.ui.h:9 ../data/ui/prefs-dialog.ui.h:3
 msgid "Color:"
 msgstr "Color:"
 
-#: ../data/glade/object-editor.glade.h:11
+#: ../data/ui/object-editor.ui.h:11
 msgid "Enable shadow"
 msgstr "Activar sombra"
 
-#: ../data/glade/object-editor.glade.h:12
+#: ../data/ui/object-editor.ui.h:12
 msgid "Family:"
 msgstr "Familia:"
 
-#: ../data/glade/object-editor.glade.h:13
+#: ../data/ui/object-editor.ui.h:13
 msgid "File:"
 msgstr "Archivo:"
 
-#: ../data/glade/object-editor.glade.h:14
+#: ../data/ui/object-editor.ui.h:14 ../data/ui/prefs-dialog.ui.h:5
 msgid "Fill"
 msgstr "Relleno"
 
-#: ../data/glade/object-editor.glade.h:15
-#: ../data/glade/template-designer.glade.h:30
+#: ../data/ui/object-editor.ui.h:15 ../data/ui/template-designer.ui.h:33
 msgid "Height:"
 msgstr "Alto:"
 
-#: ../data/glade/object-editor.glade.h:17
-msgid "Insert merge field"
-msgstr "Insertar campo para combinar"
-
-#: ../data/glade/object-editor.glade.h:18
+#: ../data/ui/object-editor.ui.h:17
 msgid "Key:"
 msgstr "Clave:"
 
-#: ../data/glade/object-editor.glade.h:19
+#: ../data/ui/object-editor.ui.h:18
 msgid "Length:"
 msgstr "Longitud:"
 
-#: ../data/glade/object-editor.glade.h:21
-#: ../data/glade/prefs-dialog.glade.h:12
+#: ../data/ui/object-editor.ui.h:20 ../data/ui/prefs-dialog.ui.h:10
 msgid "Line Spacing:"
 msgstr "Espaciado:"
 
-#: ../data/glade/object-editor.glade.h:22
+#: ../data/ui/object-editor.ui.h:21
 msgid "Literal:"
 msgstr "Literal:"
 
-#: ../data/glade/object-editor.glade.h:23
+#: ../data/ui/object-editor.ui.h:22
 msgid "Opacity:"
 msgstr "Opacidad:"
 
-#: ../data/glade/object-editor.glade.h:24
+#: ../data/ui/object-editor.ui.h:23
 msgid "Position"
 msgstr "Posición"
 
-#: ../data/glade/object-editor.glade.h:25
+#: ../data/ui/object-editor.ui.h:24
 msgid "Reset image size"
 msgstr "Restablecer el tamaño de la imagen"
 
-#: ../data/glade/object-editor.glade.h:26
-msgid "Select A File"
-msgstr "Seleccionar un archivo"
-
-#: ../data/glade/object-editor.glade.h:27
+#: ../data/ui/object-editor.ui.h:25
 msgid "Shadow"
 msgstr "Sombra"
 
-#: ../data/glade/object-editor.glade.h:28
+#: ../data/ui/object-editor.ui.h:26
 msgid "Size"
 msgstr "Tamaño"
 
-#: ../data/glade/object-editor.glade.h:29
+#: ../data/ui/object-editor.ui.h:27
 msgid "Size:"
 msgstr "Tamaño:"
 
-#: ../data/glade/object-editor.glade.h:30
+#: ../data/ui/object-editor.ui.h:28
 msgid "Style"
 msgstr "Estilo"
 
-#: ../data/glade/object-editor.glade.h:31
+#: ../data/ui/object-editor.ui.h:29
 msgid "Style:"
 msgstr "Estilo:"
 
-#: ../data/glade/object-editor.glade.h:33
-#: ../data/glade/prefs-dialog.glade.h:20
-#: ../data/glade/template-designer.glade.h:61
+#: ../data/ui/object-editor.ui.h:31 ../data/ui/prefs-dialog.ui.h:20
+#: ../data/ui/template-designer.ui.h:65
 msgid "Width:"
 msgstr "Ancho:"
 
-#: ../data/glade/object-editor.glade.h:34
+#: ../data/ui/object-editor.ui.h:32
 msgid "X Offset:"
 msgstr "Desplazamiento en X:"
 
-#: ../data/glade/object-editor.glade.h:35
+#: ../data/ui/object-editor.ui.h:33
 msgid "X:"
 msgstr "X:"
 
-#: ../data/glade/object-editor.glade.h:36
+#: ../data/ui/object-editor.ui.h:34
 msgid "Y Offset:"
 msgstr "Desplazamiento en Y:"
 
-#: ../data/glade/object-editor.glade.h:37
+#: ../data/ui/object-editor.ui.h:35
 msgid "Y:"
 msgstr "Y:"
 
-#: ../data/glade/object-editor.glade.h:38
+#: ../data/ui/object-editor.ui.h:36
 msgid "degrees"
 msgstr "grados"
 
-#: ../data/glade/object-editor.glade.h:40
+#: ../data/ui/object-editor.ui.h:37
+msgid "dialog1"
+msgstr "dialogo1"
+
+#: ../data/ui/object-editor.ui.h:38
 msgid "digits:"
 msgstr "dígitos:"
 
-#: ../data/glade/object-editor.glade.h:41
+#: ../data/ui/object-editor.ui.h:39
 msgid "format:"
 msgstr "Formato:"
 
-#: ../data/glade/prefs-dialog.glade.h:1
+#: ../data/ui/object-editor.ui.h:41
+msgid "key:"
+msgstr "clave:"
+
+#: ../data/ui/prefs-dialog.ui.h:1
 msgid "   "
 msgstr "   "
 
-#: ../data/glade/prefs-dialog.glade.h:2
-msgid "<span weight=\"bold\">Default page size</span>"
-msgstr "<span weight=\"bold\">Tamaño de página predeterminado</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:3
-msgid "<span weight=\"bold\">Fill</span>"
-msgstr "<span weight=\"bold\">Relleno</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:4
-msgid "<span weight=\"bold\">Line</span>"
-msgstr "<span weight=\"bold\">Línea</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:5
-msgid "<span weight=\"bold\">Text</span>"
-msgstr "<span weight=\"bold\">Texto</span>"
+#: ../data/ui/prefs-dialog.ui.h:4
+msgid "Default page size"
+msgstr "Tamaño de página por omisión"
 
-#: ../data/glade/prefs-dialog.glade.h:6
-msgid "<span weight=\"bold\">Units</span>"
-msgstr "<span weight=\"bold\">Medidas</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:9
+#: ../data/ui/prefs-dialog.ui.h:6
 msgid "Font:"
 msgstr "Fuente:"
 
-#: ../data/glade/prefs-dialog.glade.h:10
+#: ../data/ui/prefs-dialog.ui.h:7
 msgid "ISO A4"
 msgstr "ISO A4"
 
-#: ../data/glade/prefs-dialog.glade.h:11
+#: ../data/ui/prefs-dialog.ui.h:8
 msgid "Inches"
 msgstr "Pulgadas"
 
-#: ../data/glade/prefs-dialog.glade.h:13
+#: ../data/ui/prefs-dialog.ui.h:11
 msgid "Locale"
 msgstr "Documento"
 
-#: ../data/glade/prefs-dialog.glade.h:14
+#: ../data/ui/prefs-dialog.ui.h:12
 msgid "Millimeters"
 msgstr "Milímetros"
 
-#: ../data/glade/prefs-dialog.glade.h:15
+#: ../data/ui/prefs-dialog.ui.h:13
 msgid "Object defaults"
 msgstr "Objetos"
 
-#: ../data/glade/prefs-dialog.glade.h:16
+#: ../data/ui/prefs-dialog.ui.h:14
 msgid "Points"
 msgstr "Puntos"
 
-#: ../data/glade/prefs-dialog.glade.h:17
+#: ../data/ui/prefs-dialog.ui.h:15
 msgid "Select default properties for new objects."
 msgstr "Seleccione las propiedades predeterminadoas para los nuevos objetos."
 
-#: ../data/glade/prefs-dialog.glade.h:18
+#: ../data/ui/prefs-dialog.ui.h:16
 msgid "Select locale specific behavior."
 msgstr "Seleccione las propiedades del documento."
 
-#. Most popular (at top of list)
-#: ../data/glade/prefs-dialog.glade.h:19
-#: ../data/templates/paper-sizes.xml.h:29
+#: ../data/ui/prefs-dialog.ui.h:18 ../templates/paper-sizes.xml.h:35
 msgid "US Letter"
 msgstr "Carta"
 
-#: ../data/glade/print-custom-widget.glade.h:1
-msgid "<b>Options</b>"
-msgstr "<b>Opciones</b>"
-
-#: ../data/glade/print-custom-widget.glade.h:2
-msgid "<b>Print control (Merge)</b>"
-msgstr "<b>Control de impresión (mezclar)</b>"
-
-#: ../data/glade/print-custom-widget.glade.h:3
-msgid "<b>Print control (Simple)</b>"
-msgstr "<b>Control de impresión (simple)</b>"
+#: ../data/ui/prefs-dialog.ui.h:19
+msgid "Units"
+msgstr "Unidades"
 
-#: ../data/glade/property-bar.glade.h:1
+#: ../data/ui/property-bar.ui.h:1
 msgid "Bold"
 msgstr "Negrita"
 
-#: ../data/glade/property-bar.glade.h:2
+#: ../data/ui/property-bar.ui.h:2
 msgid "Center align"
 msgstr "Centrado"
 
-#: ../data/glade/property-bar.glade.h:4
-msgid "Font family"
-msgstr "Familia tipográfica"
-
-#: ../data/glade/property-bar.glade.h:5
-msgid "Font size"
-msgstr "Tamaño de fuente"
-
-#: ../data/glade/property-bar.glade.h:6
-msgid "Italic"
-msgstr "Itálica"
-
-#: ../data/glade/property-bar.glade.h:7
+#: ../data/ui/property-bar.ui.h:7
 msgid "Left align"
 msgstr "Alineación izquierda"
 
-#: ../data/glade/property-bar.glade.h:9
-msgid "Line width"
-msgstr "Ancho de línea"
-
-#: ../data/glade/property-bar.glade.h:10
+#: ../data/ui/property-bar.ui.h:10
 msgid "Right align"
 msgstr "Alineación derecha"
 
-#: ../data/glade/property-bar.glade.h:11
-msgid "Text Color"
-msgstr "Color del texto"
-
-#: ../data/glade/property-bar.glade.h:12
-msgid "Text color"
-msgstr "Color de texto"
-
-#: ../data/glade/template-designer.glade.h:1
+#: ../data/ui/template-designer.ui.h:1
 msgid "(e.g., \"Mailing Labels,\" \"Business Cards,\" ...)"
-msgstr "(por ej., \"Etiquetas para correo,\" \"Tarjetas de negocio,\" ...)"
+msgstr "(por ej., \"Etiquetas para correo,\" \"Tarjetas de visita,\" ...)"
 
-#: ../data/glade/template-designer.glade.h:2
+#: ../data/ui/template-designer.ui.h:2
 msgid "(e.g., 8163A)"
 msgstr "(por ej., 8163A)"
 
-#: ../data/glade/template-designer.glade.h:3
+#: ../data/ui/template-designer.ui.h:3
 msgid "(e.g., Avery, Acme, ...)"
 msgstr "(por ej., Avery, Acme, ...)"
 
-#: ../data/glade/template-designer.glade.h:4
+#: ../data/ui/template-designer.ui.h:4
 msgid "1. Outer radius:"
 msgstr "1. Radio externo:"
 
-#: ../data/glade/template-designer.glade.h:5
+#: ../data/ui/template-designer.ui.h:5
 msgid "1. Radius:"
 msgstr "1. Radio:"
 
-#: ../data/glade/template-designer.glade.h:6
+#: ../data/ui/template-designer.ui.h:6
 msgid "1. Width:"
 msgstr "1. Ancho:"
 
-#: ../data/glade/template-designer.glade.h:7
+#: ../data/ui/template-designer.ui.h:7
 msgid "2. Height:"
 msgstr "2. Alto:"
 
-#: ../data/glade/template-designer.glade.h:8
+#: ../data/ui/template-designer.ui.h:8
 msgid "2. Inner radius:"
 msgstr "2. Radio interno:"
 
-#: ../data/glade/template-designer.glade.h:9
+#: ../data/ui/template-designer.ui.h:9
 msgid "2. Waste (overprint allowed):"
 msgstr "2. Sobrante (sobreimpresión permitida):"
 
-#: ../data/glade/template-designer.glade.h:10
+#: ../data/ui/template-designer.ui.h:10
 msgid "3. Clipping width:"
 msgstr "3. Ancho de recorte:"
 
-#: ../data/glade/template-designer.glade.h:11
+#: ../data/ui/template-designer.ui.h:11
 msgid "3. Margin"
-msgstr "3. Márgen"
+msgstr "3. Margen"
 
-#: ../data/glade/template-designer.glade.h:12
+#: ../data/ui/template-designer.ui.h:12
 msgid "3. Round (radius of corner):"
 msgstr "3. Redondez (radio de las esquinas)"
 
-#: ../data/glade/template-designer.glade.h:13
+#: ../data/ui/template-designer.ui.h:13
+msgid "3. Waste (overprint allowed):"
+msgstr "3. Sobrante (sobreimpresión permitida):"
+
+#: ../data/ui/template-designer.ui.h:14
 msgid "4. Clipping height:"
 msgstr "4. Alto de recorte:"
 
-#: ../data/glade/template-designer.glade.h:14
+#: ../data/ui/template-designer.ui.h:15
 msgid "4. Horiz. waste (overprint allowed):"
 msgstr "4. Sobrante horizontal (sobreimpresión permitida):"
 
-#: ../data/glade/template-designer.glade.h:15
+#: ../data/ui/template-designer.ui.h:16
+msgid "4. Margin"
+msgstr "4. Márgen"
+
+#: ../data/ui/template-designer.ui.h:17
 msgid "5. Vert. waste (overprint allowed):"
 msgstr "5. Sobrante vertical (sobreimpresión permitida):"
 
-#: ../data/glade/template-designer.glade.h:16
+#: ../data/ui/template-designer.ui.h:18
 msgid "5. Waste (overprint allowed):"
 msgstr "5. Sobrante (sobreimpresión permitida):"
 
-#: ../data/glade/template-designer.glade.h:17
+#: ../data/ui/template-designer.ui.h:19
 msgid "6. Margin"
 msgstr "6. Margen"
 
-#: ../data/glade/template-designer.glade.h:18
+#: ../data/ui/template-designer.ui.h:20
 msgid "Brand/Manufacturer:"
 msgstr "Marca/Fabricante:"
 
-#: ../data/glade/template-designer.glade.h:19
+#: ../data/ui/template-designer.ui.h:21
 msgid "CD/DVD (including credit card CDs)"
 msgstr "CD/DVD (incluyendo CD-tarjeta)"
 
-#: ../data/glade/template-designer.glade.h:20
+#: ../data/ui/template-designer.ui.h:22
 msgid ""
 "Congratulations!\n"
 "\n"
@@ -1917,23 +2190,23 @@ msgstr ""
 "Puede pulsar \"Cancelar\" para abandonar su diseño\n"
 "o \"Atrás\" para volver a editarlo."
 
-#: ../data/glade/template-designer.glade.h:27
-msgid "Description:"
-msgstr "Descripción:"
-
-#: ../data/glade/template-designer.glade.h:28
+#: ../data/ui/template-designer.ui.h:30
 msgid "Distance from left edge (x0):"
 msgstr "Distancia desde el borde izquierdo (x0):"
 
-#: ../data/glade/template-designer.glade.h:29
+#: ../data/ui/template-designer.ui.h:31
 msgid "Distance from top edge (y0):"
 msgstr "Distancia desde el borde superior (y0):"
 
-#: ../data/glade/template-designer.glade.h:31
+#: ../data/ui/template-designer.ui.h:32
+msgid "Elliptical"
+msgstr "Elíptica"
+
+#: ../data/ui/template-designer.ui.h:34
 msgid "Horizontal pitch (dx):"
 msgstr "Desplazamiento horizontal (dx):"
 
-#: ../data/glade/template-designer.glade.h:32
+#: ../data/ui/template-designer.ui.h:35
 msgid ""
 "How many layouts will your template contain? \n"
 "\n"
@@ -1949,53 +2222,52 @@ msgstr ""
 "primer ejemplo.\n"
 "El segundo ejemplo muestra dos disposiciones."
 
-#: ../data/glade/template-designer.glade.h:37
+#: ../data/ui/template-designer.ui.h:40
 msgid "Layout #1"
 msgstr "Disposición 1:"
 
-#: ../data/glade/template-designer.glade.h:38
+#: ../data/ui/template-designer.ui.h:41
 msgid "Layout #2"
 msgstr "Disposición 2:"
 
-#: ../data/glade/template-designer.glade.h:39
+#: ../data/ui/template-designer.ui.h:42
+msgid ""
+"Note: if more than 2 layouts are required, the template must be edited "
+"manually."
+msgstr ""
+"Nota: si se requieren más de dos disposiciones, se debe editar la plantilla "
+"manualmente."
+
+#: ../data/ui/template-designer.ui.h:43
 msgid "Number across (nx):"
 msgstr "Cantidad horizontal (nx):"
 
-#: ../data/glade/template-designer.glade.h:40
+#: ../data/ui/template-designer.ui.h:44
 msgid "Number down (ny):"
 msgstr "Cantidad vertical (ny):"
 
-#: ../data/glade/template-designer.glade.h:41
+#: ../data/ui/template-designer.ui.h:45
 msgid "Number of layouts:"
 msgstr "Cantidad de disposiciones:"
 
-#: ../data/glade/template-designer.glade.h:42
-#: ../data/glade/wdgt-media-select.glade.h:3
-msgid "Page size:"
-msgstr "Tamaño de la página:"
-
-#: ../data/glade/template-designer.glade.h:43
-msgid "Part #:"
-msgstr "Número de parte:"
-
-#: ../data/glade/template-designer.glade.h:44
+#: ../data/ui/template-designer.ui.h:48
 msgid ""
 "Please enter the following identifying information about the template "
 "stationery."
 msgstr ""
 "Por favor ingrese la siguiente información que identifique la plantilla."
 
-#: ../data/glade/template-designer.glade.h:45
+#: ../data/ui/template-designer.ui.h:49
 msgid "Please enter the following layout information."
 msgstr "Por favor ingrese la siguiente información sobre la disposición."
 
-#: ../data/glade/template-designer.glade.h:46
+#: ../data/ui/template-designer.ui.h:50
 msgid ""
 "Please enter the following size parameters of a single label in your "
 "template."
 msgstr "Por favor ingrese las medidas de cada etiqueta de su plantilla."
 
-#: ../data/glade/template-designer.glade.h:47
+#: ../data/ui/template-designer.ui.h:51
 msgid ""
 "Please enter the following size parameters of a single label or card in your "
 "template."
@@ -2003,442 +2275,737 @@ msgstr ""
 "Por favor ingrese los siguientes parámetros de tamaño para cada etiqueta en "
 "su plantilla."
 
-#: ../data/glade/template-designer.glade.h:48
-msgid "Please select the basic shape of the labels or cards."
-msgstr "Por favor seleccione la forma básica de las etiquetas o tarjetas."
+#: ../data/ui/template-designer.ui.h:52
+msgid "Please select the basic shape of the labels or cards."
+msgstr "Por favor seleccione la forma básica de las etiquetas o tarjetas."
+
+#: ../data/ui/template-designer.ui.h:53
+msgid "Please select the page size of the template stationery."
+msgstr "Por favor seleccione el tamaño de la página para la plantilla."
+
+#: ../data/ui/template-designer.ui.h:54
+msgid "Print test sheet"
+msgstr "Imprimir página de prueba"
+
+#: ../data/ui/template-designer.ui.h:55
+msgid "Rectangular or square (can have rounded corners)"
+msgstr "Rectangular o cuadrada (puede tener bordes redondeados)"
+
+#: ../data/ui/template-designer.ui.h:56
+msgid "Round"
+msgstr "Redonda"
+
+#: ../data/ui/template-designer.ui.h:57
+msgid ""
+"Templates needing\n"
+"two layouts."
+msgstr ""
+"Plantillas que necesitan\n"
+"dos disposiciones."
+
+#: ../data/ui/template-designer.ui.h:59
+msgid ""
+"Templates needing only\n"
+"one layout."
+msgstr ""
+"Plantillas que necesitan\n"
+"una disposición."
+
+#: ../data/ui/template-designer.ui.h:61
+msgid "Vertical pitch (dy):"
+msgstr "Desplazamiento vertical (dy):"
+
+#: ../data/ui/template-designer.ui.h:62
+msgid ""
+"Welcome to the gLabels Template Designer.\n"
+"\n"
+"This dialog will assist you in the creation of a custom gLabels template."
+msgstr ""
+"Bienvenido al diseñador de plantillas de gLabels.\n"
+"\n"
+"Este diálogo le asistirá en la creación de una plantilla personalizada."
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:1
+msgid "Collate"
+msgstr "Intercalar"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:2
+msgid "Copies"
+msgstr "Copias"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:3
+msgid "Copies:"
+msgstr "Copias:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:5
+msgid "Merge Control"
+msgstr "Control de mezcla"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:6
+msgid "Options"
+msgstr "Opciones"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:7
+msgid "Sheets:"
+msgstr "Hojas:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:8
+msgid "Start on label"
+msgstr "Comenzar en la etiqueta"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:9
+msgid "from:"
+msgstr "desde:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:10
+msgid "on 1st sheet"
+msgstr "en la primera hoja"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:14
+msgid "to:"
+msgstr "hasta:"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:1
+msgid "Controls maximum number of recent files tracked."
+msgstr "Controla el número máximo de archivos recientes rastreados."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:2
+msgid "Controls visibility of drawing toolbar."
+msgstr "Controla la visibilidad de la barra de dibujo principal."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:3
+msgid "Controls visibility of grid."
+msgstr "Controla la visibilidad de la rejilla."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:4
+msgid "Controls visibility of main toolbar."
+msgstr "Controla la visibilidad de la barra de herramientas principal."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:5
+msgid "Controls visibility of markup lines."
+msgstr "Controla la visibilidad de los márgenes."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:6
+msgid "Controls visibility of property toolbar."
+msgstr "Controla la visibilidad de la barra de propiedades."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:7
+msgid "Default fill color."
+msgstr "Color predeterminado de relleno."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:8
+msgid "Default font family."
+msgstr "Familia tipográfica predeterminada."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:9
+msgid "Default font italic flag."
+msgstr "Indicador predeterminado de tipografía cursiva."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:10
+msgid "Default font size."
+msgstr "Tamaño predeterminado de la tipografía."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:11
+msgid "Default font weight."
+msgstr "Peso de la tipografía predeterminada."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:12
+msgid "Default line color."
+msgstr "Color predeterminado de la línea."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:13
+msgid "Default line width."
+msgstr "Ancho predeterminado de línea."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:14
+msgid "Default page size."
+msgstr "Tamaño de página predeterminado."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:15
+msgid "Default text alignment."
+msgstr "Alineación del texto predeterminada."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:16
+msgid "Default text color."
+msgstr "Color predeterminado del texto."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:17
+msgid "Default text line spacing."
+msgstr "Espaciado de líneas de texto predeterminado."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:18
+msgid "Maximum recent files."
+msgstr "Número máximo de archivo recientes."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:19
+msgid "Recent colors."
+msgstr "Colores recientes."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:20
+msgid "Recent fonts."
+msgstr "Tipografías recientes."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:21
+msgid "Recent templates."
+msgstr "Plantillas recientes."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:22
+msgid "Recently created custom colors."
+msgstr "Colores personalizados creados recientemente."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:23
+msgid "Recently used font families."
+msgstr "Familias tipográficas usadas recientemente."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:24
+msgid "Recently used templates."
+msgstr "Plantillas usadas recientemente."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:25
+msgid "Show/hide drawing toolbar."
+msgstr "Mostrar/ocultar la barra de herramientas de dibujo."
 
-#: ../data/glade/template-designer.glade.h:49
-msgid "Please select the page size of the template stationery."
-msgstr "Por favor seleccione el tamaño de la página para la plantilla."
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:26
+msgid "Show/hide grid."
+msgstr "Mostrar/ocultar rejilla."
 
-#: ../data/glade/template-designer.glade.h:50
-msgid "Print test sheet"
-msgstr "Imprimir página de prueba"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:27
+msgid "Show/hide main toolbar."
+msgstr "Mostrar/ocultar la barra de herramientas principal."
 
-#: ../data/glade/template-designer.glade.h:51
-msgid "Rectangular or square (can have rounded corners)"
-msgstr "Rectangular o cuadrada (puede tener bordes redondeados)"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:28
+msgid "Show/hide markup."
+msgstr "Mostrar/ocultar margen."
 
-#: ../data/glade/template-designer.glade.h:52
-msgid "Round"
-msgstr "Redonda"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:29
+msgid "Show/hide property toolbar."
+msgstr "Mostrar/ocultar la barra de herramientas de propiedades."
 
-#: ../data/glade/template-designer.glade.h:53
-msgid ""
-"Templates needing\n"
-"two layouts."
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:30
+msgid "The default color of text for new text objects (0xRRGGBBAA)."
 msgstr ""
-"Plantillas que necesitan\n"
-"dos disposiciones."
+"El color del texto predeterminado para los objetos de texto nuevos "
+"(0xRRGGBBAA)."
 
-#: ../data/glade/template-designer.glade.h:55
-msgid ""
-"Templates needing only\n"
-"one layout."
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:31
+msgid "The default fill color new objects (0xRRGGBBAA)."
 msgstr ""
-"Plantillas que necesitan\n"
-"una disposición."
+"El color de relleno predeterminado para los objetos nuevos (0xRRGGBBAA)."
 
-#: ../data/glade/template-designer.glade.h:57
-msgid "Vertical pitch (dy):"
-msgstr "Desplazamiento vertical (dy):"
-
-#: ../data/glade/template-designer.glade.h:58
-msgid ""
-"Welcome to the gLabels Template Designer.\n"
-"\n"
-"This dialog will assist you in the creation of a custom gLabels template."
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:32
+msgid "The default font family for new text objects."
 msgstr ""
-"Bienvenido al diseñador de plantillas de gLabels.\n"
-"\n"
-"Este diálogo le asistirá en la creación de una plantilla personalizada."
+"La familia tipográfica predeterminada para los objetos de texto nuevos."
 
-#: ../data/glade/template-designer.glade.h:62
-msgid "cd_size_page"
-msgstr "tamaño_de_página_de_cd"
-
-#: ../data/glade/template-designer.glade.h:63
-msgid "finish_page"
-msgstr "finish_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:33
+msgid "The default font italic state for new text objects."
+msgstr ""
+"El estado de la tipografía cursiva predeterminado para los objetos de texto "
+"nuevos."
 
-#: ../data/glade/template-designer.glade.h:65
-msgid "layout_page"
-msgstr "página_de_distribución"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:34
+msgid "The default font size for new text objects."
+msgstr ""
+"El tamaño predeterminado de la tipografía para los objetos de texto nuevos."
 
-#: ../data/glade/template-designer.glade.h:66
-msgid "name_page"
-msgstr "nombre_de_la_página"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:35
+msgid "The default font weight for new text objects."
+msgstr ""
+"El peso predeterminado de la tipografía para los objetos de texto nuevos."
 
-#: ../data/glade/template-designer.glade.h:67
-msgid "nlayouts_page"
-msgstr "nlayouts_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:36
+msgid "The default line color new objects (0xRRGGBBAA)."
+msgstr "El color de línea predeterminado para los objetos nuevos (0xRRGGBBAA)."
 
-#: ../data/glade/template-designer.glade.h:68
-msgid "pg_size_page"
-msgstr "pg_size_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:37
+msgid "The default line spacing for new text objects."
+msgstr "El espaciado de línea predeterminado para los objetos de texto nuevos."
 
-#: ../data/glade/template-designer.glade.h:69
-msgid "rect_size_page"
-msgstr "rect_size_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:38
+msgid "The default line width for new objects."
+msgstr "Ancho de línea predeterminado para los objetos nuevos."
 
-#: ../data/glade/template-designer.glade.h:70
-msgid "round_size_page"
-msgstr "round_size_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:39
+msgid "The default text alignment for new text objects."
+msgstr "Alineación de texto predeterminada para los objetos de texto nuevos."
 
-#: ../data/glade/template-designer.glade.h:71
-msgid "shape_page"
-msgstr "shape_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:40
+msgid "The default unit of measurement."
+msgstr "Unidad de medida predeterminada."
 
-#: ../data/glade/template-designer.glade.h:72
-msgid "start_page"
-msgstr "start_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:41
+msgid "The preferred page size when searching templates."
+msgstr "El tamaño de página preferido al buscar plantillas."
 
-#: ../data/glade/wdgt-media-select.glade.h:1
-msgid "Brand:"
-msgstr "Marca:"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:42
+msgid "Units."
+msgstr "Unidades."
 
-#: ../data/glade/wdgt-media-select.glade.h:2
-msgid "Category:"
-msgstr "Categoría:"
+#: ../data/desktop/glabels-3.0.desktop.in.h:1
+msgid "Create labels, business cards and media covers"
+msgstr "Crear etiquetas, tarjetas de visita y portadas"
 
-#: ../data/glade/wdgt-media-select.glade.h:4
-msgid "Recent templates"
-msgstr "Plantillas recientes"
+#: ../data/desktop/glabels-3.0.desktop.in.h:2
+msgid "gLabels Label Designer 3"
+msgstr "Diseñador de etiquetas gLabels 3"
 
-#: ../data/glade/wdgt-media-select.glade.h:5
-msgid "Search all templates"
-msgstr "Buscar todas las plantillas"
+#: ../data/mime/glabels-3.0.xml.in.h:1
+msgid "gLabels Project File"
+msgstr "Archivo de projecto gLabels"
 
-#: ../data/glade/wdgt-rotate-label.glade.h:1
-msgid "Rotate"
-msgstr "Rotar"
+#. Envelopes
+#: ../templates/paper-sizes.xml.h:2
+msgid "#10 Envelope"
+msgstr "Sobre nº10"
 
 #. Other ISO A series sizes
-#: ../data/templates/paper-sizes.xml.h:2
+#: ../templates/paper-sizes.xml.h:4
 msgid "A0"
 msgstr "A0"
 
-#: ../data/templates/paper-sizes.xml.h:3
+#: ../templates/paper-sizes.xml.h:5
 msgid "A1"
 msgstr "A1"
 
-#: ../data/templates/paper-sizes.xml.h:4
+#: ../templates/paper-sizes.xml.h:6
 msgid "A10"
 msgstr "A10"
 
-#: ../data/templates/paper-sizes.xml.h:5
+#: ../templates/paper-sizes.xml.h:7
 msgid "A2"
 msgstr "A2"
 
-#: ../data/templates/paper-sizes.xml.h:6
+#: ../templates/paper-sizes.xml.h:8
 msgid "A3"
 msgstr "A3"
 
-#: ../data/templates/paper-sizes.xml.h:7
+#. Most popular (at top of list)
+#: ../templates/paper-sizes.xml.h:10
 msgid "A4"
 msgstr "A4"
 
-#: ../data/templates/paper-sizes.xml.h:8
+#: ../templates/paper-sizes.xml.h:11
 msgid "A5"
 msgstr "A5"
 
-#: ../data/templates/paper-sizes.xml.h:9
+#: ../templates/paper-sizes.xml.h:12
 msgid "A6"
 msgstr "A6"
 
-#: ../data/templates/paper-sizes.xml.h:10
+#: ../templates/paper-sizes.xml.h:13
 msgid "A7"
 msgstr "A7"
 
-#: ../data/templates/paper-sizes.xml.h:11
+#: ../templates/paper-sizes.xml.h:14
 msgid "A8"
 msgstr "A8"
 
-#: ../data/templates/paper-sizes.xml.h:12
+#: ../templates/paper-sizes.xml.h:15
 msgid "A9"
 msgstr "A9"
 
 #. ISO B series sizes
-#: ../data/templates/paper-sizes.xml.h:14
+#: ../templates/paper-sizes.xml.h:17
 msgid "B0"
 msgstr "B0"
 
-#: ../data/templates/paper-sizes.xml.h:15
+#: ../templates/paper-sizes.xml.h:18
 msgid "B1"
 msgstr "B1"
 
-#: ../data/templates/paper-sizes.xml.h:16
+#: ../templates/paper-sizes.xml.h:19
 msgid "B10"
 msgstr "B10"
 
-#: ../data/templates/paper-sizes.xml.h:17
+#: ../templates/paper-sizes.xml.h:20
 msgid "B2"
 msgstr "B2"
 
-#: ../data/templates/paper-sizes.xml.h:18
+#: ../templates/paper-sizes.xml.h:21
 msgid "B3"
 msgstr "B3"
 
-#: ../data/templates/paper-sizes.xml.h:19
+#: ../templates/paper-sizes.xml.h:22
 msgid "B4"
 msgstr "B4"
 
-#: ../data/templates/paper-sizes.xml.h:20
+#: ../templates/paper-sizes.xml.h:23
 msgid "B5"
 msgstr "B5"
 
-#: ../data/templates/paper-sizes.xml.h:21
+#: ../templates/paper-sizes.xml.h:24
 msgid "B6"
 msgstr "B6"
 
-#: ../data/templates/paper-sizes.xml.h:22
+#: ../templates/paper-sizes.xml.h:25
 msgid "B7"
 msgstr "B7"
 
-#: ../data/templates/paper-sizes.xml.h:23
+#: ../templates/paper-sizes.xml.h:26
 msgid "B8"
 msgstr "B8"
 
-#: ../data/templates/paper-sizes.xml.h:24
+#: ../templates/paper-sizes.xml.h:27
 msgid "B9"
 msgstr "B9"
 
-#: ../data/templates/paper-sizes.xml.h:25
+#: ../templates/paper-sizes.xml.h:28
+msgid "C5"
+msgstr "C5"
+
+#: ../templates/paper-sizes.xml.h:29
+msgid "C6"
+msgstr "C6"
+
+#: ../templates/paper-sizes.xml.h:30
+msgid "DL"
+msgstr "DL"
+
+#: ../templates/paper-sizes.xml.h:31
+msgid "Monarch Envelope"
+msgstr "Sobre Monarch"
+
+#: ../templates/paper-sizes.xml.h:32
 msgid "US Executive"
 msgstr "Ejecutivo"
 
 #. Other US paper sizes
-#: ../data/templates/paper-sizes.xml.h:27
+#: ../templates/paper-sizes.xml.h:34
 msgid "US Legal"
 msgstr "Legal"
 
-#: ../data/templates/categories.xml.h:1
+#: ../templates/categories.xml.h:1
 msgid "Any card"
 msgstr "Cualquier tarjeta"
 
-#: ../data/templates/categories.xml.h:2
+#: ../templates/categories.xml.h:2
 msgid "Any label"
 msgstr "Cualquier etiqueta"
 
-#: ../data/templates/categories.xml.h:3
+#. ===================================================================
+#. ====================================================================
+#. ===================================================================
+#: ../templates/categories.xml.h:3 ../templates/dataline-iso-templates.xml.h:4
+#: ../templates/geha-iso-templates.xml.h:8
+#: ../templates/hama-iso-templates.xml.h:6
+#: ../templates/pearl-iso-templates.xml.h:8
 msgid "Business cards"
-msgstr "Tarjetas de negocio"
+msgstr "Tarjetas de visita"
 
-#: ../data/templates/categories.xml.h:4
+#: ../templates/categories.xml.h:4
 msgid "CD/DVD or other media"
 msgstr "CD/DVD u otros soportes"
 
-#: ../data/templates/categories.xml.h:5
+#. ===================================================================
+#: ../templates/categories.xml.h:5 ../templates/pearl-iso-templates.xml.h:28
+msgid "Elliptical labels"
+msgstr "Etiquetas elípticas"
+
+#: ../templates/categories.xml.h:6
+msgid "Foldable cards"
+msgstr "Tarjetas plegables"
+
+#: ../templates/categories.xml.h:7
 msgid "Mailing/shipping products"
 msgstr "Productos para correo/envío"
 
-#: ../data/templates/categories.xml.h:6
+#: ../templates/categories.xml.h:8
+msgid "Photo products"
+msgstr "Productos para fotos"
+
+#. ===================================================================
+#. ====================================================================
+#. ===================================================================
+#. ********************************************************************
+#: ../templates/categories.xml.h:9 ../templates/ascom-iso-templates.xml.h:6
+#: ../templates/hama-iso-templates.xml.h:29
+#: ../templates/herma-iso-templates.xml.h:18
+#: ../templates/jac-iso-templates.xml.h:8
 msgid "Rectangular labels"
 msgstr "Etiquetas rectangulares"
 
-#: ../data/templates/categories.xml.h:7
+#. ====================================================================
+#. ===================================================================
+#: ../templates/categories.xml.h:10 ../templates/hama-iso-templates.xml.h:31
+#: ../templates/pearl-iso-templates.xml.h:54
 msgid "Round labels"
 msgstr "Etiquetas redondeadas"
 
-#: ../data/templates/categories.xml.h:8
+#. ====================================================================
+#: ../templates/categories.xml.h:11 ../templates/hama-iso-templates.xml.h:33
 msgid "Square labels"
 msgstr "Etiquetas cuadradas"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:2
-#: ../data/templates/avery-us-templates.xml.h:2
-#: ../data/templates/dymo-other-templates.xml.h:4
-#: ../data/templates/misc-iso-templates.xml.h:2
-#: ../data/templates/zweckform-iso-templates.xml.h:2
-msgid "Address Labels"
-msgstr "Etiquetas de dirección"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:4
-msgid "Address labels"
-msgstr "Etiquetas de dirección"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:6
-#| msgid "Small Round Labels"
-msgid "Allround labels"
-msgstr "Etiquetas redondas"
-
-#. ============================================================
-#. ===================================================================
-#. ********************************************************************
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:8
-#: ../data/templates/avery-us-templates.xml.h:4
-#: ../data/templates/misc-iso-templates.xml.h:12
-#: ../data/templates/misc-us-templates.xml.h:4
-#: ../data/templates/zweckform-iso-templates.xml.h:6
-msgid "Business Cards"
-msgstr "Tarjetas de negocio"
-
-#. ===============================================================
-#: ../data/templates/avery-iso-templates.xml.h:10
-msgid "CD Booklet"
-msgstr "Tapa de CD"
-
 #. ===============================================================
-#: ../data/templates/avery-iso-templates.xml.h:12
+#: ../templates/ascom-iso-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:10
 msgid "CD Inlet"
 msgstr "Interior de CD"
 
-#. ===============================================================
+#. TODO: Is this the real part #?
+#. ============================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:14
-#: ../data/templates/avery-us-templates.xml.h:6
-#: ../data/templates/misc-iso-templates.xml.h:16
-#: ../data/templates/misc-us-templates.xml.h:8
-#: ../data/templates/zweckform-iso-templates.xml.h:8
-msgid "CD/DVD Labels"
-msgstr "Etiquetas de CD/DVD"
-
+#. ====================================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:16
-#: ../data/templates/avery-us-templates.xml.h:12
-msgid "Diskette Labels"
-msgstr "Etiquetas de diskettes"
-
+#. TODO: What is the actual part #?
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:18
-msgid "Diskette labels"
-msgstr "Etiquetas de disquette"
+#: ../templates/ascom-iso-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:30
+#: ../templates/databecker-iso-templates.xml.h:10
+#: ../templates/hama-iso-templates.xml.h:27
+#: ../templates/herma-iso-templates.xml.h:16
+#: ../templates/misc-iso-templates.xml.h:30
+#: ../templates/zweckform-iso-templates.xml.h:28
+msgid "Rectangular Labels"
+msgstr "Etiquetas rectangulares"
 
-#. ===============================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:20
-#: ../data/templates/misc-iso-templates.xml.h:36
-#: ../data/templates/misc-us-templates.xml.h:20
-#: ../data/templates/zweckform-iso-templates.xml.h:16
-msgid "Mailing Labels"
-msgstr "Etiquetas de correo"
+#: ../templates/ascom-iso-templates.xml.h:8
+#: ../templates/avery-us-templates.xml.h:46
+#: ../templates/geha-iso-templates.xml.h:29
+#: ../templates/meritline-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:12
+msgid "Video Tape Spine Labels"
+msgstr "Etiquetas de video (lateral)"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:22
-msgid "Mailing labels"
-msgstr "Etiquetas de correo"
-
+#. ********************************************************************
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:24
-msgid "Mini Address Labels"
-msgstr "Etiquetas de dirección pequeñas"
+#: ../templates/avery-us-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:2
+#: ../templates/databecker-iso-templates.xml.h:2
+#: ../templates/dymo-other-templates.xml.h:4
+#: ../templates/geha-iso-templates.xml.h:2
+#: ../templates/maco-us-templates.xml.h:2
+#: ../templates/meritline-us-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:1
+#: ../templates/zweckform-iso-templates.xml.h:2
+msgid "Address Labels"
+msgstr "Etiquetas de dirección"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:26
-msgid "Mini Labels"
-msgstr "Minietiquetas"
-
+#. ============================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:28
-msgid "Shipping labels"
-msgstr "Etiquetas de envío"
+#. TODO: Is this the actual part #?
+#. ============================================================
+#: ../templates/avery-us-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:8
+#: ../templates/databecker-iso-templates.xml.h:4
+#: ../templates/dataline-iso-templates.xml.h:2
+#: ../templates/decadry-iso-templates.xml.h:2
+#: ../templates/misc-us-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:6
+#: ../templates/zweckform-iso-templates.xml.h:6
+msgid "Business Cards"
+msgstr "Tarjetas de visita"
 
 #. ===================================================================
-#: ../data/templates/avery-other-templates.xml.h:2
-msgid "File Folder Labels"
-msgstr ""
+#. ===============================================================
+#. ===================================================================
+#. ********************************************************************
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:6
+#: ../templates/avery-iso-templates.xml.h:14
+#: ../templates/geha-iso-templates.xml.h:11
+#: ../templates/herma-iso-templates.xml.h:10
+#: ../templates/jac-iso-templates.xml.h:2
+#: ../templates/misc-us-templates.xml.h:8
+#: ../templates/misc-iso-templates.xml.h:10
+#: ../templates/misc-other-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:24
+#: ../templates/worldlabel-us-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:12
+msgid "CD/DVD Labels"
+msgstr "Etiquetas de CD/DVD"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:8
+#: ../templates/avery-us-templates.xml.h:8
 msgid "CD/DVD Labels (Disc Labels)"
 msgstr "Etiquetas de CD/DVD (etiquetas de discos)"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:10
+#: ../templates/avery-us-templates.xml.h:10
 msgid "CD/DVD Labels (Spine Labels)"
 msgstr "Etiquetas de CD/DVD (etiquetas laterales)"
 
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:12
+#: ../templates/avery-iso-templates.xml.h:16
+#: ../templates/meritline-us-templates.xml.h:4
+#: ../templates/worldlabel-us-templates.xml.h:3
+msgid "Diskette Labels"
+msgstr "Etiquetas de diskettes"
+
 #. the LSK labels can be torn in half down the center
-#: ../data/templates/avery-us-templates.xml.h:14
+#: ../templates/avery-us-templates.xml.h:14
 msgid "Divider Labels"
 msgstr "Etiquetas divisoras"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:16
+#: ../templates/avery-us-templates.xml.h:16
+#: ../templates/avery-other-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:4
+msgid "File Folder Labels"
+msgstr "Etiquetas de carpetas de archivos"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:5
 msgid "Filing Labels"
 msgstr "Etiquetas para archivado"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:18
+#: ../templates/avery-us-templates.xml.h:20
+#: ../templates/meritline-us-templates.xml.h:6
+#: ../templates/worldlabel-us-templates.xml.h:6
 msgid "Full Sheet Labels"
 msgstr "Etiquetas de página completa"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:20
-#| msgid "CD Labels"
+#: ../templates/avery-us-templates.xml.h:22
 msgid "ID Labels"
 msgstr "Etiquetas de identificación"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:22
+#: ../templates/avery-us-templates.xml.h:24
 msgid "Index Cards"
 msgstr "Fichas"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:24
+#: ../templates/avery-us-templates.xml.h:26
 msgid "Large Round Labels"
 msgstr "Etiquetas redondeadas grandes"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:26
+#: ../templates/avery-us-templates.xml.h:28
 msgid "Name Badge Labels"
 msgstr "Etiquetas de distintivos"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:28
+#: ../templates/avery-us-templates.xml.h:30
 msgid "Post cards"
 msgstr "Postales"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:30
-#: ../data/templates/dymo-other-templates.xml.h:12
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:32
+#: ../templates/dymo-other-templates.xml.h:12
+#: ../templates/meritline-us-templates.xml.h:10
+#: ../templates/worldlabel-us-templates.xml.h:8
 msgid "Return Address Labels"
 msgstr "Etiquetas de dirección de remitente"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:32
-#: ../data/templates/misc-us-templates.xml.h:30
+#: ../templates/avery-us-templates.xml.h:34
+#: ../templates/maco-us-templates.xml.h:3
+#: ../templates/meritline-us-templates.xml.h:12
+#: ../templates/misc-us-templates.xml.h:30
+#: ../templates/worldlabel-us-templates.xml.h:9
 msgid "Round Labels"
 msgstr "Etiquetas redondeadas"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:34
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:36
+#: ../templates/dataline-iso-templates.xml.h:10
+#: ../templates/meritline-us-templates.xml.h:14
+#: ../templates/uline-us-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:10
 msgid "Shipping Labels"
 msgstr "Etiquetas de envío"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:36
+#: ../templates/avery-us-templates.xml.h:38
 msgid "Small Round Labels"
 msgstr "Etiquetas redondeadas pequeñas"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:38
+#: ../templates/avery-us-templates.xml.h:40
 msgid "Square Labels"
 msgstr "Etiquetas cuadradas"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:40
+#: ../templates/avery-us-templates.xml.h:42
 msgid "Tent Cards"
-msgstr ""
+msgstr "Tarjetas de visita"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:42
+#: ../templates/avery-us-templates.xml.h:44
+#: ../templates/geha-iso-templates.xml.h:27
+#: ../templates/meritline-us-templates.xml.h:16
+#: ../templates/worldlabel-us-templates.xml.h:11
 msgid "Video Tape Face Labels"
 msgstr "Etiquetas de video (frente)"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:44
-msgid "Video Tape Spine Labels"
-msgstr "Etiquetas de video (lateral)"
+#: ../templates/avery-iso-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:2
+msgid "Address labels"
+msgstr "Etiquetas de dirección"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:6
+msgid "Allround labels"
+msgstr "Etiquetas redondas"
+
+#. ===============================================================
+#: ../templates/avery-iso-templates.xml.h:10
+#: ../templates/zweckform-iso-templates.xml.h:8
+msgid "CD Booklet"
+msgstr "Tapa de CD"
+
+#. ===================================================================
+#. ====================================================================
+#: ../templates/avery-iso-templates.xml.h:18
+#: ../templates/hama-iso-templates.xml.h:17
+msgid "Diskette labels"
+msgstr "Etiquetas de disquette"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:20
+msgid "Identification Labels"
+msgstr "Etiquetas de identificación"
+
+#. ===============================================================
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:22
+#: ../templates/decadry-iso-templates.xml.h:4
+#: ../templates/herma-iso-templates.xml.h:14
+#: ../templates/misc-us-templates.xml.h:20
+#: ../templates/misc-iso-templates.xml.h:26
+#: ../templates/zweckform-iso-templates.xml.h:20
+msgid "Mailing Labels"
+msgstr "Etiquetas de correo"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:24
+#: ../templates/decadry-iso-templates.xml.h:6
+msgid "Mailing labels"
+msgstr "Etiquetas de correo"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:26
+msgid "Mini Address Labels"
+msgstr "Etiquetas de dirección pequeñas"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:28
+msgid "Mini Labels"
+msgstr "Minietiquetas"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:32
+msgid "Shipping labels"
+msgstr "Etiquetas de envío"
 
-#: ../data/templates/brother-other-templates.xml.h:1
+#: ../templates/brother-other-templates.xml.h:1
 msgid "Multi Purpose Labels 17mm x 54mm"
 msgstr "Etiquetas multipropósito de 17mm x 54mm"
 
-#: ../data/templates/brother-other-templates.xml.h:2
+#: ../templates/brother-other-templates.xml.h:2
 msgid "Shipping Labels 62mm x 100mm"
 msgstr "Etiquetas de envío de 62mm x 100mm"
 
@@ -2459,307 +3026,714 @@ msgstr "Etiquetas de envío de 62mm x 100mm"
 #. *********************************************************************
 #. *********************************************************************
 #.
-#: ../data/templates/brother-other-templates.xml.h:20
+#: ../templates/brother-other-templates.xml.h:20
 msgid "Standard Address Labels 29mm x 90mm"
 msgstr "Etiquetas de dirección estándar de 29mm x 90mm"
 
+#: ../templates/brother-other-templates.xml.h:21
+msgid "Standard Address Labels 38mm x 90mm"
+msgstr "Etiquetas de dirección estándar de 38mm x 90mm"
+
+#. ===================================================================
+#: ../templates/databecker-iso-templates.xml.h:6
+#: ../templates/misc-iso-templates.xml.h:8
+msgid "CD Labels"
+msgstr "Etiquetas para CD"
+
+#. ===================================================================
+#: ../templates/databecker-iso-templates.xml.h:8
+msgid "CD/DVD Labels Standard Format (face only)"
+msgstr "Etieuats CD/DVD Formato estándar (sólo frente)"
+
+#. ===================================================================
+#. ====================================================================
+#: ../templates/dataline-iso-templates.xml.h:6
+#: ../templates/hama-iso-templates.xml.h:13
+msgid "CD/DVD labels"
+msgstr "Etiquetas de CD/DVD"
+
+#. ===================================================================
+#: ../templates/dataline-iso-templates.xml.h:8
+#: ../templates/pearl-iso-templates.xml.h:42
+msgid "Membership cards"
+msgstr "Tarjetas de socio"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:2
+msgid "3.5in Diskette"
+msgstr "Disquete de 3.5 pulgadas"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:6
+msgid "File Folder"
+msgstr "Carpeta de archivos"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:8
+msgid "Hanging Folder"
+msgstr "Carpeta pendiente"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:10
+#: ../templates/geha-iso-templates.xml.h:19
+msgid "Large Address Labels"
+msgstr "Etiquetas grandes de dirección"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:14
+msgid "Shipping Address Labels"
+msgstr "Etiquetas de dirección para transporte"
+
+# REVISAR
+#. ===================================================================
+#. ====================================================================
+#. ===================================================================
+#: ../templates/geha-iso-templates.xml.h:4
+#: ../templates/hama-iso-templates.xml.h:2
+#: ../templates/herma-iso-templates.xml.h:4
+msgid "Arch File Labels"
+msgstr "Etiquetas de dossier"
+
+# REVISAR
+#. ===================================================================
+#: ../templates/geha-iso-templates.xml.h:6
+msgid "Arch File inserts"
+msgstr "Separadores de archivadores"
+
+#: ../templates/geha-iso-templates.xml.h:9
+msgid "CD/DVD Inlet"
+msgstr "Interior de CD/DVD"
+
+#. ===================================================================
+#. ====================================================================
+#. ===================================================================
+#: ../templates/geha-iso-templates.xml.h:13
+#: ../templates/hama-iso-templates.xml.h:15
+#: ../templates/pearl-iso-templates.xml.h:26
+msgid "DVD inlet"
+msgstr "Interior de DVD"
+
+#. ===================================================================
+#: ../templates/geha-iso-templates.xml.h:15
+msgid "Flyer paper"
+msgstr "Papel para panfletos"
+
+#. ===================================================================
+#. ====================================================================
+#: ../templates/geha-iso-templates.xml.h:17
+#: ../templates/hama-iso-templates.xml.h:19
+msgid "Greeting cards"
+msgstr "Tarjetas de felicitación"
+
+#. ===================================================================
+#: ../templates/geha-iso-templates.xml.h:21
+#: ../templates/misc-other-templates.xml.h:4
+msgid "Multi-Purpose Labels"
+msgstr "Etiquetas multipropósito"
+
+#. ===================================================================
+#: ../templates/geha-iso-templates.xml.h:23
+msgid "Passport photo labels"
+msgstr "Etiquetas para fotos de pasaporte"
+
+#. ===================================================================
+#. ====================================================================
+#. ===================================================================
+#: ../templates/geha-iso-templates.xml.h:25
+#: ../templates/hama-iso-templates.xml.h:23
+#: ../templates/pearl-iso-templates.xml.h:50
+msgid "Photo labels"
+msgstr "Etiquetas para fotos"
+
+# REVISAR
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:4
+msgid "Arch File labels"
+msgstr "Etiquetas de dossier"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:8
+msgid "CD inlet"
+msgstr "Interior de CD"
+
+#. ===================================================================
+#: ../templates/hama-iso-templates.xml.h:9
+#: ../templates/pearl-iso-templates.xml.h:20
+msgid "CD inlet (back)"
+msgstr "Interior de CD (trasera)"
+
+#. ====================================================================
+#. ===================================================================
+#: ../templates/hama-iso-templates.xml.h:11
+#: ../templates/pearl-iso-templates.xml.h:22
+msgid "CD inlet (front)"
+msgstr "Interior de CD (delantera)"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:21
+msgid "Mini Disc labels"
+msgstr "Etiquetas de Minidisc"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:25
+msgid "Printable mousepad"
+msgstr "Alfombrilla de ratón imprimible"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:35
+msgid "VHS inlet"
+msgstr "Interior de VHS"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:37
+msgid "VHS-C inlet"
+msgstr "Interior de VHS-C"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:39
+msgid "Video-8 inlet"
+msgstr "Interior de Vídeo-8"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:41
+msgid "Zip disc inlet"
+msgstr "Interior de disco Zip"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:43
+msgid "Zip disc labels"
+msgstr "Etiquetas de disco Zip"
+
+# REVISAR
+#. ===================================================================
+#: ../templates/herma-iso-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:4
+msgid "Allround Labels"
+msgstr "Etiquetas redondas"
+
+# REVISAR
+#. ===================================================================
+#: ../templates/herma-iso-templates.xml.h:6
+msgid "Arch File Labels (large)"
+msgstr "Etiquetas de dossier (grandes)"
+
+# REVISAR
+#. ===================================================================
+#: ../templates/herma-iso-templates.xml.h:8
+msgid "Arch File Labels (small)"
+msgstr "Etiquetas de dossier (pequeñas)"
+
+#. ===================================================================
+#: ../templates/herma-iso-templates.xml.h:12
+msgid "Diskette Labels (face only)"
+msgstr "Etiquetas para disquette (sólo cara)"
+
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:2
-msgid "3.5in Diskette"
-msgstr "Disquete de 3.5 pulgadas"
+#: ../templates/herma-iso-templates.xml.h:20
+msgid "Video Labels (face only)"
+msgstr "Etiqeutas de video (solo frente)"
 
+#. *******************************************************************
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:6
-#| msgid "Fill color"
-msgid "File Folder"
-msgstr ""
+#: ../templates/jac-iso-templates.xml.h:4
+#: ../templates/pearl-iso-templates.xml.h:36
+msgid "Labels A4"
+msgstr "Etiquetas A4"
 
-#. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:8
-msgid "Hanging Folder"
-msgstr ""
+#. *******************************************************************
+#: ../templates/jac-iso-templates.xml.h:6
+msgid "PVC labels"
+msgstr "Etiquetas de PVC"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:10
-msgid "Large Address Labels"
-msgstr "Etiquetas grandes de dirección"
+#: ../templates/meritline-us-templates.xml.h:8
+msgid "Mini-CD Labels"
+msgstr "Etiquetas Mini-CD"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:14
-msgid "Shipping Address Labels"
-msgstr "Etiquetas de dirección para transporte"
+#: ../templates/misc-us-templates.xml.h:2
+msgid "Business Card CD"
+msgstr "CD-tarjeta"
 
 # REVISAR
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:4
-#: ../data/templates/zweckform-iso-templates.xml.h:4
-msgid "Allround Labels"
-msgstr "Etiquetas redondas"
+#: ../templates/misc-us-templates.xml.h:6
+msgid "CD Template Rectangles"
+msgstr "Plantilla de rectángulos de CD"
 
-# REVISAR
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:6
-msgid "Arch File Labels"
-msgstr "Etiquetas de dossier"
+#: ../templates/misc-us-templates.xml.h:10
+msgid "CD/DVD Labels (Face Only)"
+msgstr "Etiquetas CD/DVD (Sólo frente)"
 
-# REVISAR
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:8
-msgid "Arch File Labels (large)"
-msgstr "Etiquetas de dossier (grandes)"
+#. TODO: Is this the actual part #?
+#: ../templates/misc-us-templates.xml.h:12
+#: ../templates/misc-iso-templates.xml.h:12
+msgid "CD/DVD Labels (face only)"
+msgstr "Etiquetas CD/DVD (sólo frente)"
+
+#. TODO: Is this the actual part #?
+#: ../templates/misc-us-templates.xml.h:14
+msgid "Cassette Labels"
+msgstr "Etiquetas de casette"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:16
+msgid "DLT Labels"
+msgstr "Etiquetas DLT"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:18
+msgid "Jewel Case Booklet"
+msgstr "Libreto de CD «Jewel»"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:22
+msgid "Microtube labels"
+msgstr "Etiquetas microtubo"
 
 # REVISAR
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:10
-msgid "Arch File Labels (small)"
-msgstr "Etiquetas de dossier (pequeñas)"
+#: ../templates/misc-us-templates.xml.h:24
+msgid "PRO CD Labels 2-up (CD spine only)"
+msgstr "Etiquetas para CD (sólo el lateral del CD)"
 
+# REVISAR
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:14
-msgid "CD Labels"
-msgstr "Etiquetas para CD"
+#: ../templates/misc-us-templates.xml.h:26
+msgid "PRO CD Labels 2-up (Face only)"
+msgstr "Etiquetas para CD (sólo carátula)"
 
+# REVISAR
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:18
-#: ../data/templates/misc-us-templates.xml.h:12
-msgid "CD/DVD Labels (face only)"
-msgstr "Etiquetas CD/DVD (sólo frente)"
+#. TODO: Is this the actual part #?
+#: ../templates/misc-us-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:28
+msgid "PRO CD Labels 2-up (face only)"
+msgstr "PRO CD Labels 2-up (sólo la cara)"
 
+# REVISAR
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:20
-msgid "CD/DVD Labels Standard Format (face only)"
-msgstr "Etieuats CD/DVD Formato estándar (sólo frente)"
+#: ../templates/misc-us-templates.xml.h:32
+msgid "Slimline CD Case (rightside up)"
+msgstr "Caja extraplana de CD (boca arriba)"
+
+# REVISAR
+#: ../templates/misc-us-templates.xml.h:33
+msgid "Slimline CD Case (upside down)"
+msgstr "Caja extraplana de CD (boca abajo)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:22
-msgid "Diskette Labels (face only)"
-msgstr "Etiquetas para disquette (sólo cara)"
+#: ../templates/misc-iso-templates.xml.h:4
+#: ../templates/pearl-iso-templates.xml.h:6
+msgid "Bottle labels"
+msgstr "Etiquetas de botella"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:24
+#: ../templates/misc-iso-templates.xml.h:14
 msgid "EPSON Photo Stickers 16"
 msgstr "Pegatinas EPSON Photo Stickers 16"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:26
+#: ../templates/misc-iso-templates.xml.h:16
 msgid "Etiketten"
 msgstr "Etiketten"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:18
 msgid "Fridge Magnet Stickers"
 msgstr "Pegatinas magnéticas para frigorífico"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:30
+#: ../templates/misc-iso-templates.xml.h:20
 msgid "General Labels"
 msgstr "Etiquetas generales"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:32
+#: ../templates/misc-iso-templates.xml.h:22
 msgid "Inkjet/Laser Labels 70x37mm"
 msgstr "Etiquetas para impresora de inyección/láser de 70x37mm"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:38
-msgid "Mailing Labels-2 columns"
-msgstr "Etiquetas de correo - 2 columnas"
+#: ../templates/misc-iso-templates.xml.h:32
+#: ../templates/pearl-iso-templates.xml.h:62
+msgid "Self-adhesive labels"
+msgstr "Etiquetas autoadhesivas"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:40
-msgid "Mailing Labels-3 columns"
-msgstr "Etiquetas de correo - 3 columnas"
+#: ../templates/misc-iso-templates.xml.h:34
+msgid "Universal Labels"
+msgstr "Etiquetas universales"
 
-# REVISAR
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:42
-#: ../data/templates/misc-us-templates.xml.h:28
-msgid "PRO CD Labels 2-up (face only)"
-msgstr "PRO CD Labels 2-up (sólo la cara)"
+#: ../templates/pearl-iso-templates.xml.h:4
+msgid "Address Labels (STAMPIT)"
+msgstr "Etiquetas de dirección (STAMPIT)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:44
-#: ../data/templates/zweckform-iso-templates.xml.h:24
-msgid "Rectangular Labels"
-msgstr "Etiquetas rectangulares"
+#: ../templates/pearl-iso-templates.xml.h:10
+msgid "Business cards glossy, both sides printable"
+msgstr "Tarjetas de visita satinadas, imprimibles por ambas caras"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:46
-msgid "Universal Labels"
-msgstr "Etiquetas universales"
+#: ../templates/pearl-iso-templates.xml.h:12
+msgid "Business cards high glossy"
+msgstr "Tarjetas de visita muy satinadas"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:48
-msgid "Video Labels (face only)"
-msgstr "Etiqeutas de video (solo frente)"
+#: ../templates/pearl-iso-templates.xml.h:14
+msgid "Business cards punched"
+msgstr "Tarjetas de visita perforadas"
 
 #. ===================================================================
-#: ../data/templates/misc-other-templates.xml.h:2
-msgid "Multi-Purpose Labels"
-msgstr "Etiquetas multipropósito"
+#: ../templates/pearl-iso-templates.xml.h:16
+msgid "Business cards punched dull"
+msgstr "Tarjetas de visita perforadas mate"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:2
-msgid "Business Card CD"
-msgstr "CD-tarjeta"
+#: ../templates/pearl-iso-templates.xml.h:18
+msgid "Business cards punched glossy"
+msgstr "Tarjetas de visita perforadas satinadas"
 
-# REVISAR
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:6
-msgid "CD Template Rectangles"
-msgstr "Plantilla de rectángulos de CD"
+#: ../templates/pearl-iso-templates.xml.h:30
+msgid "Floppy disk labels"
+msgstr "Etiquetas de disquete"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:10
-msgid "CD/DVD Labels (Face Only)"
-msgstr "Etiquetas CD/DVD (Sólo frente)"
+#: ../templates/pearl-iso-templates.xml.h:32
+msgid "Foldable business cards"
+msgstr "Tarjetas de visita plegables"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:14
-msgid "Cassette Labels"
-msgstr "Etiquetas de casette"
+#: ../templates/pearl-iso-templates.xml.h:34
+msgid "Foldable business cards glossy/dull"
+msgstr "Etiquetas de visita plegables brillantes/mate"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:16
-msgid "DLT Labels"
-msgstr "Etiquetas DLT"
+#: ../templates/pearl-iso-templates.xml.h:38
+msgid "Labels A5"
+msgstr "Etiquetas A5"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:18
-#| msgid "CD Booklet"
-msgid "Jewel Case Booklet"
-msgstr "Libreto de CD «Jewel»"
+#: ../templates/pearl-iso-templates.xml.h:40
+msgid "Labels A6"
+msgstr "Etiquetas A6"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:22
-msgid "Microtube labels"
-msgstr "Etiquetas microtubo"
+#: ../templates/pearl-iso-templates.xml.h:44
+msgid "Membership cards, both sides printable"
+msgstr "Tarjetas de socio, imprimible por ambas caras"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:24
-msgid "Mini-CD Labels"
-msgstr "Etiquetas Mini-CD"
+#: ../templates/pearl-iso-templates.xml.h:46
+msgid "Name plates"
+msgstr "Placas de nombre"
 
-# REVISAR
-#: ../data/templates/misc-us-templates.xml.h:25
-msgid "PRO CD Labels 2-up (CD spine only)"
-msgstr "Etiquetas para CD (sólo el lateral del CD)"
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:48
+msgid "Passport photo labels glossy"
+msgstr "Etiquetas satinadas para fotos de pasaporte"
 
-# REVISAR
-#: ../data/templates/misc-us-templates.xml.h:26
-msgid "PRO CD Labels 2-up (Face only)"
-msgstr "Etiquetas para CD (sólo carátula)"
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:52
+msgid "Photo labels semiglossy"
+msgstr "Etiquetas para fotos semi-satinadas"
 
-# REVISAR
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:32
-msgid "Slimline CD Case (rightside up)"
-msgstr "Caja extraplana de CD (boca arriba)"
+#: ../templates/pearl-iso-templates.xml.h:56
+msgid "SD card labels"
+msgstr "Etiquetas para tarjetas SD"
 
-# REVISAR
-#: ../data/templates/misc-us-templates.xml.h:33
-msgid "Slimline CD Case (upside down)"
-msgstr "Caja extraplana de CD (boca abajo)"
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:58
+msgid "Self-adhesive film transparent"
+msgstr "Capa transparente autoadhesiva"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:60
+msgid "Self-adhesive film weatherproof"
+msgstr "Capa autoadhesiva resistente a la intemperie"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:64
+msgid "Self-adhesive window film"
+msgstr "Capa autoadhesiva para ventanas"
 
 # REVISAR
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:10
+#: ../templates/zweckform-iso-templates.xml.h:14
 msgid "Correction and Cover-up Labels"
 msgstr "Etiquetas de corrección y cubrimiento"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:12
-#| msgid "Filing Labels"
+#: ../templates/zweckform-iso-templates.xml.h:16
 msgid "File Back Labels"
 msgstr "Etiquetas de archivo"
 
 # REVISAR
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:14
+#: ../templates/zweckform-iso-templates.xml.h:18
 msgid "Lever Arch File Labels"
-msgstr ""
+msgstr "Colocar etiquetas de dossier"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:18
+#: ../templates/zweckform-iso-templates.xml.h:22
 msgid "Multi-purpose Stick+Lift Labels"
 msgstr "Etiquetas reusables multipropósito"
 
 # REVISAR
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:20
+#: ../templates/zweckform-iso-templates.xml.h:24
 msgid "QSL-Karten Etiketten 70mm x 50,8mm"
 msgstr "QSL-Karten Etiketten 70mm x 50,8mm"
 
 # REVISAR
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:22
+#: ../templates/zweckform-iso-templates.xml.h:26
 msgid "Rectangular Copier Labels"
 msgstr "Etiquetas para copiadoras rectangulares"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:26
+#: ../templates/zweckform-iso-templates.xml.h:30
 msgid "Video Labels (back)"
 msgstr "Etiquetas de video (dorso)"
 
-#: ../data/desktop/glabels.desktop.in.h:1
-msgid "Create labels, business cards and media covers"
-msgstr "Crear etiquetas, tarjetas de negocios y portadas"
+#~ msgid "Align _Horizontal"
+#~ msgstr "Alineado _horizontal"
 
-#: ../data/desktop/glabels.desktop.in.h:2
-msgid "gLabels Label Designer"
-msgstr "Diseñador de etiquetas gLabels"
+#~ msgid "Align _Vertical"
+#~ msgstr "Alineado _vertical"
 
-#: ../data/mime/glabels.keys.in.h:1 ../data/mime/glabels.xml.in.h:1
-msgid "gLabels Project File"
-msgstr "Archivo de projecto gLabels"
+#~ msgid "Couldn't construct query"
+#~ msgstr "No se pudo construir la consulta"
 
-#: ../barcode-0.98/compat/getopt.c:583
-#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: la opción «%s» es ambigua\n"
+#~ msgid "Couldn't open addressbook."
+#~ msgstr "No se pudo abrir la libreta de direcciones."
 
-#: ../barcode-0.98/compat/getopt.c:607
-#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: la opción «--%s» no admite un argumento\n"
+#~ msgid "Couldn't list available fields."
+#~ msgstr "No se pudo listar los campos disponibles."
 
-#: ../barcode-0.98/compat/getopt.c:612
-#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: la opción «%c%s» no admite un argumento\n"
+#~ msgid "Couldn't get contacts."
+#~ msgstr "No se pudieron obtener los contactos."
 
-#: ../barcode-0.98/compat/getopt.c:629
-#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s: la opción «%s» necesita un argumento\n"
+#~ msgid "Bad root node = \"%s\""
+#~ msgstr "Nodo raíz erróneo = \"%s\""
 
-#. --option
-#: ../barcode-0.98/compat/getopt.c:658
-#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: no se reconoce la opción «--%s»\n"
+#~ msgid "bad node =  \"%s\""
+#~ msgstr "Nodo erróneo =  \"%s\""
 
-#. +option or -option
-#: ../barcode-0.98/compat/getopt.c:662
-#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: no se reconoce la opción «%c%s»\n"
+#~ msgid "xmlParseFile error"
+#~ msgstr "error de xmlParseFile"
 
-#. 1003.2 specifies the format of this message.
-#: ../barcode-0.98/compat/getopt.c:688
-#, c-format
-msgid "%s: illegal option -- %c\n"
-msgstr "%s: opción ilegal -- %c\n"
+#~ msgid "No document root"
+#~ msgstr "No hay documento raíz"
 
-#: ../barcode-0.98/compat/getopt.c:691
-#, c-format
-msgid "%s: invalid option -- %c\n"
-msgstr "%s: opción no válida -- %c\n"
+#~ msgid "Importing from glabels 0.1 format"
+#~ msgstr "Importando desde formato glabels 0.1"
 
-#: ../barcode-0.98/compat/getopt.c:727
-#, c-format
-msgid "%s: option requires an argument -- %c\n"
-msgstr "%s: la opción necesita un argumento -- %c\n"
+#~ msgid "Importing from glabels 0.4 format"
+#~ msgstr "Importando desde formato glabels 0.4"
+
+#~ msgid "Unknown glabels Namespace -- Using %s"
+#~ msgstr "Espacio de nombres de glabels desconocido -- Usando %s"
+
+#~ msgid "bad node in Document node =  \"%s\""
+#~ msgstr "Nodo erróneo en sección Document = \"%s\""
+
+#~ msgid "bad node in Data node =  \"%s\""
+#~ msgstr "Nodo erróneo en sección Data =  \"%s\""
+
+#~ msgid "Unknown embedded file format: \"%s\""
+#~ msgstr "Formato de archivo empotrado desconocido: «%s»"
+
+#~ msgid "Utf8 conversion error."
+#~ msgstr "Conversión UTF-8 errónea"
+
+#~ msgid "Problem saving xml file."
+#~ msgstr "Problemas al guardar archivo xml"
+
+#~ msgid "Equivalent part (\"%s\") for \"%s\", not previously defined."
+#~ msgstr "No se definió previamente la parte equivalente («%s») para «%s»."
+
+#~ msgid "Missing name or brand/part attributes."
+#~ msgstr "Faltan los atributos de nombre o marca/parte."
+
+#~ msgid "Unknown page size id \"%s\", trying as name"
+#~ msgstr ""
+#~ "Código \"%s\" de tamaño de página desconocido, intentando como nombre."
+
+#~ msgid "Unknown page size id or name \"%s\""
+#~ msgstr "Código \"%s\" o nombre de página desconocido"
+
+#~ msgid "Forward references not supported."
+#~ msgstr "No se soporta el seguimiento de referencias."
+
+#~ msgid "Skipping deprecated \"Alias\" node."
+#~ msgstr "Omitiendo el nodo obsoleto «Alias». "
+
+#~ msgid ""
+#~ "Missing required \"brand\" or \"part\" attribute, trying deprecated name."
+#~ msgstr ""
+#~ "Falta el atributo requerido «marca» o «parte», intentándolo con un nombre "
+#~ "obsoleto."
+
+#~ msgid "Name attribute also missing."
+#~ msgstr "También falta el atributo del nombre."
+
+#~ msgid "Mailing Labels-2 columns"
+#~ msgstr "Etiquetas de correo - 2 columnas"
+
+#~ msgid "Mailing Labels-3 columns"
+#~ msgstr "Etiquetas de correo - 3 columnas"
+
+#~ msgid "ellipse_page"
+#~ msgstr "ellipse_page"
+
+#~ msgid "_Select Mode"
+#~ msgstr "_Modo selección"
+
+#~ msgid "_Text"
+#~ msgstr "_Texto"
+
+#~ msgid "_Line"
+#~ msgstr "_Línea"
+
+#~ msgid "_Box"
+#~ msgstr "_Rectangulo"
+
+#~ msgid "_Ellipse"
+#~ msgstr "_Elipse"
+
+#~ msgid "_Image"
+#~ msgstr "_Imagen"
+
+#~ msgid "Bar_code"
+#~ msgstr "_Código de barras"
+
+#~ msgid "_Merge Properties"
+#~ msgstr "Propiedades de _fusión de datos"
+
+#~ msgid "Object _Properties"
+#~ msgstr "Propiedades del objeto"
+
+#~ msgid "Bring to _Front"
+#~ msgstr "Traer al _frente"
+
+#~ msgid "Send to _Back"
+#~ msgstr "Enviar al f_ondo"
+
+#~ msgid "Rotate _Left"
+#~ msgstr "Rotar a la _izquierda"
+
+#~ msgid "Rotate _Right"
+#~ msgstr "Rotar a la _derecha"
+
+#~ msgid "Flip _Horizontally"
+#~ msgstr "Reflejar _horizontalmente"
+
+#~ msgid "Flip _Vertically"
+#~ msgstr "Reflejar _verticalmente"
+
+#~ msgid "_Lefts"
+#~ msgstr "A la _izquierda"
+
+#~ msgid "_Rights"
+#~ msgstr "A la _derecha"
+
+#~ msgid "_Centers"
+#~ msgstr "_Centrado"
+
+#~ msgid "_Tops"
+#~ msgstr "_Superior"
+
+#~ msgid "Bottoms"
+#~ msgstr "_Inferior"
+
+#~ msgid "Label Ce_nter"
+#~ msgstr "Centro de la _etiqueta"
+
+#~ msgid "Linked"
+#~ msgstr "Enlazado"
+
+#~ msgid "Not Linked"
+#~ msgstr "No enlazado"
+
+#~ msgid "glabels"
+#~ msgstr "glabels"
+
+#~ msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
+#~ msgstr ""
+#~ "<span weight=\"bold\" size=\"larger\">Propiedades de objecto xxx</span>"
+
+#~ msgid "<span weight=\"bold\">Default page size</span>"
+#~ msgstr "<span weight=\"bold\">Tamaño de página predeterminado</span>"
+
+#~ msgid "<span weight=\"bold\">Fill</span>"
+#~ msgstr "<span weight=\"bold\">Relleno</span>"
+
+#~ msgid "<span weight=\"bold\">Line</span>"
+#~ msgstr "<span weight=\"bold\">Línea</span>"
+
+#~ msgid "<span weight=\"bold\">Text</span>"
+#~ msgstr "<span weight=\"bold\">Texto</span>"
+
+#~ msgid "<span weight=\"bold\">Units</span>"
+#~ msgstr "<span weight=\"bold\">Medidas</span>"
+
+#~ msgid "<b>Copies</b>"
+#~ msgstr "<b>Copias</b>"
+
+#~ msgid "%d %s"
+#~ msgstr "%d %s"
+
+#~ msgid ""
+#~ "1\n"
+#~ "2\n"
+#~ "3\n"
+#~ "4"
+#~ msgstr ""
+#~ "1\n"
+#~ "2\n"
+#~ "3\n"
+#~ "4"
+
+#~ msgid "page 1"
+#~ msgstr "página 1"
+
+#~ msgid "page 2"
+#~ msgstr "página 2"
+
+#~ msgid "page 3"
+#~ msgstr "página 3"
+
+#~ msgid "00000000000 00000"
+#~ msgstr "00000000000 00000"
+
+#~ msgid "cd_size_page"
+#~ msgstr "tamaño_de_página_de_cd"
+
+#~ msgid "finish_page"
+#~ msgstr "finish_page"
+
+#~ msgid "layout_page"
+#~ msgstr "página_de_distribución"
+
+#~ msgid "nlayouts_page"
+#~ msgstr "nlayouts_page"
+
+#~ msgid "rect_size_page"
+#~ msgstr "rect_size_page"
+
+#~ msgid "round_size_page"
+#~ msgstr "round_size_page"
+
+#~ msgid "shape_page"
+#~ msgstr "shape_page"
+
+#~ msgid "start_page"
+#~ msgstr "start_page"
 
 #~ msgid "Could not initialize Bonobo!\n"
 #~ msgstr "No se puede inicializar Bonobo!\n"
@@ -2776,8 +3750,9 @@ msgstr "%s: la opción necesita un argumento -- %c\n"
 #~ msgid "missing glabels file\n"
 #~ msgstr "archivo glabels perdido\n"
 
-#~ msgid " "
-#~ msgstr " "
+#, fuzzy
+#~ msgid "Media Type"
+#~ msgstr "<b>Tipo de medio</b>"
 
 #~ msgid "Open"
 #~ msgstr "Abrir"
@@ -2800,9 +3775,6 @@ msgstr "%s: la opción necesita un argumento -- %c\n"
 #~ msgid "P_rinter"
 #~ msgstr "_Impresora"
 
-#~ msgid "Copies"
-#~ msgstr "Copias"
-
 #~ msgid "Document merge control"
 #~ msgstr "Control de combinación de documentos"
 
@@ -2812,14 +3784,101 @@ msgstr "%s: la opción necesita un argumento -- %c\n"
 #~ msgid "Importing from glabels 1.91 format"
 #~ msgstr "Importando desde formato glabels 1.91"
 
-#~ msgid "Label size:"
-#~ msgstr "Tamaño de la etiqueta:"
+#~ msgid "Text file with comma delimeters (CSV)"
+#~ msgstr "Texto separado con comas"
+
+#~ msgid "Text file with colon delimeters"
+#~ msgstr "Texto separado con dos puntos"
+
+#~ msgid "Text file with tab delimeters"
+#~ msgstr "Texto separado con tabuladores"
+
+#~ msgid "%s x %s %s"
+#~ msgstr "%s x %s %s"
+
+#~ msgid "%.5g x %.5g %s"
+#~ msgstr "%.5g x %.5g %s"
+
+#~ msgid "%.5g %s diameter"
+#~ msgstr "Diámetro %.5g %s"
+
+#~ msgid "Choose Custom Color"
+#~ msgstr "Elegir color:"
+
+#~ msgid "light brown"
+#~ msgstr "marrón"
+
+#~ msgid "brown gold"
+#~ msgstr "marrón oscuro"
+
+#~ msgid "dark green #2"
+#~ msgstr "verde oscuro #2"
+
+#~ msgid "navy"
+#~ msgstr "azul metalizado"
+
+#~ msgid "purple #2"
+#~ msgstr "azul oscuro"
+
+#~ msgid "very dark gray"
+#~ msgstr "verde muy oscuro"
+
+#~ msgid "red-orange"
+#~ msgstr "anaranjado"
+
+#~ msgid "dull blue"
+#~ msgstr "verde azulado"
+
+#~ msgid "dull purple"
+#~ msgstr "violeta azulado"
+
+#~ msgid "dark grey"
+#~ msgstr "gris oscuro"
+
+#~ msgid "red"
+#~ msgstr "rojo"
+
+#~ msgid "lime"
+#~ msgstr "lima"
+
+#~ msgid "dull blue #2"
+#~ msgstr "cyan"
+
+#~ msgid "sky blue #2"
+#~ msgstr "celeste"
+
+#~ msgid "gray"
+#~ msgstr "gris"
 
-#~ msgid "Layout:"
-#~ msgstr "Disposición:"
+#~ msgid "magenta"
+#~ msgstr "fucsia"
 
-#~ msgid "%d x %d  (%d per sheet)"
-#~ msgstr "%d x %d  (%d por hoja)"
+#~ msgid "bright orange"
+#~ msgstr "naranja claro"
+
+#~ msgid "bright blue"
+#~ msgstr "azul claro"
+
+#~ msgid "red purple"
+#~ msgstr "borravino"
+
+#~ msgid "light grey"
+#~ msgstr "gris claro"
+
+#~ msgid "light orange"
+#~ msgstr "naranja claro"
+
+#~ msgid "light blue"
+#~ msgstr "celeste claro"
+
+#~ msgid "light purple"
+#~ msgstr "violeta claro"
+
+#~ msgid "purplish blue"
+#~ msgstr "azul purpurado"
+
+#~ msgid "dark purple"
+#~ msgstr "violeta oscuro"
 
 #~ msgid "No paper files found!"
 #~ msgstr "No se encontró tipo de papel!"
@@ -2869,9 +3928,6 @@ msgstr "%s: la opción necesita un argumento -- %c\n"
 #~ msgid "Quit"
 #~ msgstr "Salir"
 
-#~ msgid "Redo"
-#~ msgstr "Rehacer"
-
 #~ msgid "Redo the undone action"
 #~ msgstr "Repetir la última acción"
 
@@ -2889,6 +3945,10 @@ msgstr "%s: la opción necesita un argumento -- %c\n"
 #~ "Establecer apariencia de la barra principal según estilo predeterminado "
 #~ "del escitorio"
 
+#, fuzzy
+#~ msgid "Show _Tooltips"
+#~ msgstr "Mostrar consejos"
+
 #~ msgid "Show both icons and texts in the main toolbar"
 #~ msgstr "Mostrar iconos y texto en la barra principal"
 
@@ -2898,9 +3958,6 @@ msgstr "%s: la opción necesita un argumento -- %c\n"
 #~ msgid "U_n-select All"
 #~ msgstr "_Deseleccionar todo"
 
-#~ msgid "Undo"
-#~ msgstr "Deshacer"
-
 #~ msgid "Undo the last action"
 #~ msgstr "Deshcar la última acción"
 
@@ -2959,9 +4016,6 @@ msgstr "%s: la opción necesita un argumento -- %c\n"
 #~ msgid "Display units"
 #~ msgstr "Mostrar unidades de medida"
 
-#~ msgid "Default page size"
-#~ msgstr "Tamaño de página por omisión"
-
 #~ msgid "Outline"
 #~ msgstr "Contorno"
 
@@ -3020,9 +4074,6 @@ msgstr "%s: la opción necesita un argumento -- %c\n"
 #~ msgid "Column"
 #~ msgstr "Columna"
 
-#~ msgid "Sample data"
-#~ msgstr "Datos de ejemplo"
-
 #~ msgid "Make a new, empty label"
 #~ msgstr "Crear una etiqueta vacía nueva"
 
@@ -3043,3 +4094,57 @@ msgstr "%s: la opción necesita un argumento -- %c\n"
 
 #~ msgid "Function is not implemented!"
 #~ msgstr "¡ La funcionalidad no está aún implementada !"
+
+#~ msgid "- gLabels label designer"
+#~ msgstr "- diseñador de etiquetas gLabels"
+
+#~ msgid "- batch process gLabels label files"
+#~ msgstr "- procesador de lotes de archivos de etiquetas gLabels"
+
+#~ msgid "xmlParseDoc error"
+#~ msgstr "error de xmlParseDoc"
+
+#~ msgid "Data from a file containing VCards"
+#~ msgstr "Datos desde un archivo que contiene vCards"
+
+#~ msgid "<b>Label orientation</b>"
+#~ msgstr "<b>Orientación de la etiqueta</b>"
+
+#~ msgid "Select A File"
+#~ msgstr "Seleccionar un archivo"
+
+#~ msgid "<b>Print control (Simple)</b>"
+#~ msgstr "<b>Control de impresión (simple)</b>"
+
+#~ msgid "Text Color"
+#~ msgstr "Color del texto"
+
+#~ msgid "Search all templates"
+#~ msgstr "Buscar todas las plantillas"
+
+#~ msgid "%s: option `%s' is ambiguous\n"
+#~ msgstr "%s: la opción «%s» es ambigua\n"
+
+#~ msgid "%s: option `--%s' doesn't allow an argument\n"
+#~ msgstr "%s: la opción «--%s» no admite un argumento\n"
+
+#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
+#~ msgstr "%s: la opción «%c%s» no admite un argumento\n"
+
+#~ msgid "%s: option `%s' requires an argument\n"
+#~ msgstr "%s: la opción «%s» necesita un argumento\n"
+
+#~ msgid "%s: unrecognized option `--%s'\n"
+#~ msgstr "%s: no se reconoce la opción «--%s»\n"
+
+#~ msgid "%s: unrecognized option `%c%s'\n"
+#~ msgstr "%s: no se reconoce la opción «%c%s»\n"
+
+#~ msgid "%s: illegal option -- %c\n"
+#~ msgstr "%s: opción ilegal -- %c\n"
+
+#~ msgid "%s: invalid option -- %c\n"
+#~ msgstr "%s: opción no válida -- %c\n"
+
+#~ msgid "%s: option requires an argument -- %c\n"
+#~ msgstr "%s: la opción necesita un argumento -- %c\n"
index 687df6e59829bf63675537ce38b9b0ec129b23d7..397c9e5f9350e9bd752ee459d682fb7d00ae483b 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
 # French translation of glabels.
 # Copyright (C) 2001 Jim Evins <evins@snaught.com>
 # Olivier Berger <oberger@gnu.org>
+#
 # Florent Morel <florent@taket.org>, 2001, 2004.
+# Claude Paroz <claude@2xlibre.net>, 2007-2011.
 # Bruno Brouard <annoa.b@gmail.com>, 2010.
+# Gérard Baylard <Geodebay@gmail.com>, 2010.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: glabels 2.0.1\n"
+"Project-Id-Version: glabels master\n"
 "Report-Msgid-Bugs-To: http://sourceforge.net/tracker/?group_id=46122&ati\n"
-"POT-Creation-Date: 2010-03-17 03:58+0000\n"
-"PO-Revision-Date: 2010-03-06 12:00+0100\n"
-"Last-Translator: Bruno Brouard <annoa.b@gmail.com>\n"
+"POT-Creation-Date: 2011-04-17 04:00+0000\n"
+"PO-Revision-Date: 2011-05-05 09:10+0200\n"
+"Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
 "Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Content-Transfer-Encoding: 8 bits\n"
+"Plural-Forms: nplurals=2; plural=n>1;\n"
 
-#: ../src/glabels.c:75 ../src/glabels-batch.c:70
-msgid "[FILE...]"
-msgstr "[FICHIER...]"
+#: ../src/bc-backends.c:81
+msgid "Built-in"
+msgstr "Interne"
 
-#: ../src/glabels.c:91
-msgid "- gLabels label designer"
-msgstr "- créateur d'étiquettes gLabels"
+#: ../src/bc-backends.c:101
+msgid "POSTNET (any)"
+msgstr "POSTNET (tous)"
 
-#: ../src/glabels-batch.c:54
-msgid "set output filename (default=\"output.pdf\")"
-msgstr "définit le nom du fichier de sortie (défaut=\"output.pdf\")"
+#: ../src/bc-backends.c:104
+msgid "POSTNET-5 (ZIP only)"
+msgstr "POSTNET-5 (seulement ZIP)"
 
-#: ../src/glabels-batch.c:54 ../src/glabels-batch.c:68
-msgid "filename"
-msgstr "nom du fichier"
+#: ../src/bc-backends.c:107
+msgid "POSTNET-9 (ZIP+4)"
+msgstr "POSTNET-9 (ZIP+4)"
 
-#: ../src/glabels-batch.c:56
-msgid "number of sheets (default=1)"
-msgstr "nombre de pages (défaut=1)"
+#: ../src/bc-backends.c:110
+msgid "POSTNET-11 (DPBC)"
+msgstr "POSTNET-11 (DPBC)"
 
-# src/print_copies.c:193
-# src/print_copies.c:193
-# src/print_copies.c:171
-# src/print_copies.c:170
-#: ../src/glabels-batch.c:56
-msgid "sheets"
-msgstr "pages"
+#: ../src/bc-backends.c:113
+msgid "CEPNET"
+msgstr "CEPNET"
 
-#: ../src/glabels-batch.c:58
-msgid "number of copies (default=1)"
-msgstr "nombre de copies (défaut=1)"
+#: ../src/bc-backends.c:116
+msgid "One Code"
+msgstr "Code One"
 
-# src/print.c:153
-# src/print.c:153
-# src/print.c:146
-# src/print_dialog.c:104
-#: ../src/glabels-batch.c:58
-msgid "copies"
-msgstr "copies"
+#: ../src/bc-backends.c:119 ../src/bc-backends.c:175 ../src/bc-backends.c:248
+msgid "Code 39"
+msgstr "Code 39"
 
-#: ../src/glabels-batch.c:60
-msgid "first label on first sheet (default=1)"
-msgstr "première étiquette sur la première page (défaut=1)"
+#: ../src/bc-backends.c:122 ../src/bc-backends.c:251
+msgid "Code 39 Extended"
+msgstr "Code 39 étendu"
 
-#: ../src/glabels-batch.c:60
-msgid "first"
-msgstr "première"
+#: ../src/bc-backends.c:127
+msgid "EAN (any)"
+msgstr "EAN (tous)"
 
-# src/print.c:180
-# src/print.c:180
-# src/print.c:196
-# src/print_dialog.c:152
-#: ../src/glabels-batch.c:62 ../data/glade/print-custom-widget.glade.h:6
-msgid "print outlines (to test printer alignment)"
-msgstr "imprime des bordures (pour tester l'alignement de l'imprimante)"
+#: ../src/bc-backends.c:130
+msgid "EAN-8"
+msgstr "EAN-8"
 
-# src/print_dialog.c:160
-#: ../src/glabels-batch.c:64 ../data/glade/print-custom-widget.glade.h:5
-msgid "print in reverse (i.e. a mirror image)"
-msgstr "imprime à l'envers (i.e. une image miroir)"
+#: ../src/bc-backends.c:133
+msgid "EAN-8 +2"
+msgstr "EAN-8 +2"
 
-#: ../src/glabels-batch.c:66 ../data/glade/print-custom-widget.glade.h:4
-msgid "print crop marks"
-msgstr "imprime les guides de coupe"
+#: ../src/bc-backends.c:136
+msgid "EAN-8 +5"
+msgstr "EAN-8 +5"
 
-#: ../src/glabels-batch.c:68
-msgid "input file for merging"
-msgstr "nom du fichier d'entrée pour la fusion"
+#: ../src/bc-backends.c:139
+msgid "EAN-13"
+msgstr "EAN-13"
 
-#: ../src/glabels-batch.c:96
-msgid "- batch process gLabels label files"
-msgstr "- traitement par lots de fichiers d'étiquettes gLabels"
+#: ../src/bc-backends.c:142
+msgid "EAN-13 +2"
+msgstr "EAN-13 +2"
 
-# src/file.c:214
-# src/file.c:214
-# src/file.c:249
-# src/file.c:249
-#: ../src/glabels-batch.c:142
-#, c-format
-msgid "cannot perform document merge with glabels file %s\n"
-msgstr ""
-"impossible d'effectuer une fusion de document avec le fichier glabels %s\n"
+#: ../src/bc-backends.c:145
+msgid "EAN-13 +5"
+msgstr "EAN-13 +5"
 
-# src/file.c:214
-# src/file.c:214
-# src/file.c:249
-# src/file.c:249
-#: ../src/glabels-batch.c:164
-#, c-format
-msgid "cannot open glabels file %s\n"
-msgstr "impossible d'ouvrir le fichier glabels %s\n"
+#: ../src/bc-backends.c:148
+msgid "UPC (UPC-A or UPC-E)"
+msgstr "UPC (UPC-A ou UPC-E)"
 
-#: ../src/window.c:259
-msgid "(none) - gLabels"
-msgstr "(aucun) - gLabels"
+#: ../src/bc-backends.c:151 ../src/bc-backends.c:395
+msgid "UPC-A"
+msgstr "UPC-A"
 
-#: ../src/window.c:432
-msgid "(modified)"
-msgstr "(modifié)"
+#: ../src/bc-backends.c:154
+msgid "UPC-A +2"
+msgstr "UPC-A +2"
 
-# src/display.c:1157 src/display.c:1205
-# src/display.c:1160 src/display.c:1208
-# src/menu.c:94
-# src/menu.c:94
-#: ../src/stock.c:72
-msgid "_Select Mode"
-msgstr "Mode _sélection"
-
-# src/item_text.c:442 src/item_text.c:627
-# src/item_text.c:442 src/item_text.c:627
-# src/item_text.c:460 src/item_text.c:464 src/item_text.c:637 src/menu.c:100
-# src/item_text.c:460 src/item_text.c:464 src/item_text.c:637 src/menu.c:100
-#: ../src/stock.c:73
-msgid "_Text"
-msgstr "_Texte"
-
-# src/item_line.c:271
-# src/item_line.c:271
-# src/item_line.c:256 src/menu.c:106
-# src/item_line.c:256 src/menu.c:106
-#: ../src/stock.c:74
-msgid "_Line"
-msgstr "_Ligne"
-
-# src/menu.c:103
-# src/menu.c:103
-#: ../src/stock.c:75
-msgid "_Box"
-msgstr "_Boîte"
-
-# src/menu.c:109
-# src/menu.c:109
-#: ../src/stock.c:76
-msgid "_Ellipse"
-msgstr "_Ellipse"
-
-# src/item_image.c:283
-# src/item_image.c:283
-# src/item_image.c:268 src/menu.c:113
-# src/item_image.c:268 src/menu.c:113
-#: ../src/stock.c:77
-msgid "_Image"
-msgstr "_Image"
-
-# src/item_barcode.c:316
-# src/item_barcode.c:317
-# src/menu.c:116
-# src/menu.c:116
-#: ../src/stock.c:78
-msgid "Bar_code"
-msgstr "_Code-barre"
-
-# src/item_text.c:467
-# src/item_text.c:467
-# src/menu.c:132 src/menu.c:223
-# src/menu.c:132 src/menu.c:223
-#: ../src/stock.c:79
-msgid "_Merge Properties"
-msgstr "Propriétés de _fusion"
-
-# src/item_text.c:467
-# src/item_text.c:467
-# src/item_text.c:482
-# src/item_text.c:482
-#: ../src/stock.c:80
-msgid "Object _Properties"
-msgstr "_Propriétés de l'objet"
-
-# src/display.c:1167 src/display.c:1215
-# src/display.c:1170 src/display.c:1218
-# src/display.c:1181 src/display.c:1229
-# src/display.c:1196 src/display.c:1244
-#: ../src/stock.c:81
-msgid "Bring to _Front"
-msgstr "_Avancer au premier plan"
-
-# src/display.c:1173 src/display.c:1221
-# src/display.c:1176 src/display.c:1224
-# src/display.c:1187 src/display.c:1235
-# src/display.c:1202 src/display.c:1250
-#: ../src/stock.c:82
-msgid "Send to _Back"
-msgstr "_Reculer à l'arrière-plan"
-
-# src/rotate_select.c:187
-# src/rotate_select.c:187
-# src/rotate_select.c:167
-# src/rotate_select.c:169
-#: ../src/stock.c:83
-msgid "Rotate _Left"
-msgstr "Rotation _gauche"
-
-# src/rotate_select.c:187
-# src/rotate_select.c:187
-# src/rotate_select.c:167
-# src/rotate_select.c:169
-#: ../src/stock.c:84
-msgid "Rotate _Right"
-msgstr "Rotation _droite"
-
-#: ../src/stock.c:85
-msgid "Flip _Horizontally"
-msgstr "Retourner _horizontalement"
-
-#: ../src/stock.c:86
-msgid "Flip _Vertically"
-msgstr "Retourner _verticalement"
-
-#: ../src/stock.c:87
-msgid "_Lefts"
-msgstr "_Gauches"
-
-#: ../src/stock.c:88
-msgid "_Rights"
-msgstr "_Droites"
-
-#: ../src/stock.c:89
-msgid "_Centers"
-msgstr "_Centres"
-
-# src/menu.c:157
-# src/menu.c:157
-#: ../src/stock.c:90
-msgid "_Tops"
-msgstr "En _haut"
-
-#: ../src/stock.c:91
-msgid "Bottoms"
-msgstr "En bas"
-
-#: ../src/stock.c:92
-msgid "Centers"
-msgstr "Centrés"
-
-#: ../src/stock.c:93 ../src/stock.c:94
-msgid "Label Ce_nter"
-msgstr "Ce_ntre de l'étiquette"
-
-#: ../src/stock.c:95 ../data/glade/property-bar.glade.h:3
-msgid "Fill color"
-msgstr "Couleur de remplissage"
+#: ../src/bc-backends.c:157
+msgid "UPC-A +5"
+msgstr "UPC-A +5"
 
-#: ../src/stock.c:96 ../data/glade/property-bar.glade.h:8
-msgid "Line color"
-msgstr "Couleur de ligne"
+#: ../src/bc-backends.c:160 ../src/bc-backends.c:398
+msgid "UPC-E"
+msgstr "UPC-E"
 
-# src/item_line.c:271
-# src/item_line.c:271
-# src/item_line.c:256 src/menu.c:106
-# src/item_line.c:256 src/menu.c:106
-#: ../src/stock.c:97 ../src/stock.c:99
-msgid "Linked"
-msgstr "Lié"
-
-# src/merge.c:80
-# src/merge.c:78
-#: ../src/stock.c:98 ../src/stock.c:100
-msgid "Not Linked"
-msgstr "Non lié"
-
-# src/item_box.c:274 src/item_ellipse.c:279
-# src/item_box.c:274 src/item_ellipse.c:279
-# src/item_box.c:258 src/item_ellipse.c:260
-# src/item_box.c:258 src/item_ellipse.c:260
-#. Menu entries.
-#: ../src/ui.c:93
-msgid "_File"
-msgstr "_Fichier"
+#: ../src/bc-backends.c:163
+msgid "UPC-E +2"
+msgstr "UPC-E +2"
 
-#: ../src/ui.c:94
-msgid "Open Recent _Files"
-msgstr "_Fichiers récents"
+#: ../src/bc-backends.c:166
+msgid "UPC-E +5"
+msgstr "UPC-E +5"
 
-#: ../src/ui.c:95
-msgid "_Edit"
-msgstr "É_dition"
+#: ../src/bc-backends.c:169 ../src/bc-backends.c:332
+msgid "ISBN"
+msgstr "ISBN"
 
-# src/menu.c:50
-# src/menu.c:50
-# src/menu.c:50
-# src/menu.c:50
-#: ../src/ui.c:96
-msgid "_View"
-msgstr "_Affichage"
+#: ../src/bc-backends.c:172
+msgid "ISBN +5"
+msgstr "ISBN +5"
 
-#: ../src/ui.c:97
-msgid "Customize Main Toolbar"
-msgstr "Personnaliser la barre d'outils principale"
+#: ../src/bc-backends.c:178 ../src/bc-backends.c:260
+msgid "Code 128"
+msgstr "Code 128"
 
-#: ../src/ui.c:98
-msgid "Customize Drawing Toolbar"
-msgstr "Personnaliser la barre d'outils dessin"
+#: ../src/bc-backends.c:181
+msgid "Code 128C"
+msgstr "Code 128C"
 
-#: ../src/ui.c:99
-msgid "Customize Properties Toolbar"
-msgstr "Personnaliser la barre d'outils propriétés"
+#: ../src/bc-backends.c:184
+msgid "Code 128B"
+msgstr "Code 128B"
 
-#: ../src/ui.c:100
-msgid "_Objects"
-msgstr "_Objets"
+#: ../src/bc-backends.c:187 ../src/bc-backends.c:329
+msgid "Interleaved 2 of 5"
+msgstr "Entrelacé 2 de 5"
 
-#: ../src/ui.c:101
-msgid "_Create"
-msgstr "_Créer"
+#: ../src/bc-backends.c:190 ../src/bc-backends.c:224
+msgid "Codabar"
+msgstr "Code-barre"
 
-#: ../src/ui.c:102
-msgid "_Order"
-msgstr "_Ordre"
+#: ../src/bc-backends.c:193
+msgid "MSI"
+msgstr "MSI"
 
-# src/rotate_select.c:187
-# src/rotate_select.c:187
-# src/rotate_select.c:167
-# src/rotate_select.c:169
-#: ../src/ui.c:103
-msgid "_Rotate/Flip"
-msgstr "_Rotation/Retournement"
+#: ../src/bc-backends.c:196
+msgid "Plessey"
+msgstr "Plessey"
 
-#: ../src/ui.c:104
-msgid "Align _Horizontal"
-msgstr "Aligner _horizontalement"
+#: ../src/bc-backends.c:199 ../src/bc-backends.c:257
+msgid "Code 93"
+msgstr "Code 93"
 
-#: ../src/ui.c:105
-msgid "Align _Vertical"
-msgstr "Aligner _verticalement"
+#: ../src/bc-backends.c:206
+msgid "Australia Post Standard"
+msgstr "Poste australienne standard"
 
-#: ../src/ui.c:106
-msgid "_Help"
-msgstr "Aid_e"
+#: ../src/bc-backends.c:209
+msgid "Australia Post Reply Paid"
+msgstr "Poste australienne Reply Paid"
 
-#. Popup entries.
-#: ../src/ui.c:109 ../src/ui.c:110
-msgid "Context Menu"
-msgstr "Menu contextuel"
+#: ../src/bc-backends.c:212
+msgid "Australia Post Route Code"
+msgstr "Code australien Post Route"
 
-# src/menu.c:50
-# src/menu.c:50
-# src/menu.c:50
-# src/menu.c:50
-#: ../src/ui.c:115
-msgid "_New"
-msgstr "_Nouveau"
+#: ../src/bc-backends.c:215
+msgid "Australia Post Redirect"
+msgstr "Poste australienne Redirect"
 
-# src/tools.c:70
-# src/tools.c:70
-# src/menu.c:106 src/menu.c:197
-# src/menu.c:106 src/menu.c:197
-#: ../src/ui.c:117
-msgid "Create a new file"
-msgstr "Crée un nouveau document"
+#: ../src/bc-backends.c:218
+msgid "Aztec Code"
+msgstr "Code Aztec"
 
-# src/file.c:178
-# src/file.c:178
-# src/file.c:211
-# src/file.c:211
-#: ../src/ui.c:122
-msgid "_Open..."
-msgstr "_Ouvrir..."
+#: ../src/bc-backends.c:221
+msgid "Aztec Rune"
+msgstr "Rune Aztec"
 
-# src/menu.c:140
-# src/menu.c:140
-# src/menu.c:170
-# src/menu.c:170
-#: ../src/ui.c:124
-msgid "Open a file"
-msgstr "Ouvre un fichier"
+#: ../src/bc-backends.c:227
+msgid "Code One"
+msgstr "Code One"
 
-# src/file.c:271 src/mdi.c:660
-# src/file.c:271 src/mdi.c:666
-# src/file.c:311 src/mdi.c:623
-# src/file.c:311 src/mdi.c:623
-#: ../src/ui.c:129
-msgid "_Save"
-msgstr "_Enregistrer"
+#: ../src/bc-backends.c:230
+msgid "Code 11"
+msgstr "Code 11"
 
-# src/menu.c:142
-# src/menu.c:142
-# src/menu.c:172
-# src/menu.c:172
-#: ../src/ui.c:131
-msgid "Save current file"
-msgstr "Enregistre le fichier en cours"
+#: ../src/bc-backends.c:233
+msgid "Code 16K"
+msgstr "Code 16K"
 
-# src/file.c:271 src/mdi.c:660
-# src/file.c:271 src/mdi.c:666
-# src/file.c:311 src/mdi.c:623
-# src/file.c:311 src/mdi.c:623
-#: ../src/ui.c:136
-msgid "Save _As..."
-msgstr "Enregistrer _sous..."
+#: ../src/bc-backends.c:236
+msgid "Code 2 of 5 Matrix"
+msgstr "Code 2 par 5 Matrix"
 
-#: ../src/ui.c:138
-msgid "Save the current file to a different name"
-msgstr "Enregistre le fichier en cours avec un nom différent"
+#: ../src/bc-backends.c:239
+msgid "Code 2 of 5 IATA"
+msgstr "Code 2 par 5 IATA"
 
-# src/print.c:149
-# src/print.c:149
-# src/print.c:141
-# src/print_dialog.c:99
-#: ../src/ui.c:143
-msgid "_Print..."
-msgstr "Im_primer..."
+#: ../src/bc-backends.c:242
+msgid "Code 2 of 5 Data Logic"
+msgstr "Code 2 par 5 Data Logic"
 
-# src/menu.c:145
-# src/menu.c:145
-# src/menu.c:175
-# src/menu.c:175
-#: ../src/ui.c:145
-msgid "Print the current file"
-msgstr "Imprime le fichier en cours"
+#: ../src/bc-backends.c:245
+msgid "Code 32 (Italian Pharmacode)"
+msgstr "Code 32 (Pharmacode italien)"
 
-# src/item_text.c:467
-# src/item_text.c:467
-# src/item_text.c:482
-# src/item_text.c:482
-#: ../src/ui.c:150
-msgid "Properties..."
-msgstr "Propriétés..."
+#: ../src/bc-backends.c:254
+msgid "Code 49"
+msgstr "Code 49"
 
-# src/item_box.c:251
-# src/item_box.c:251
-# src/merge_properties.c:82
-# src/merge_properties.c:82
-#: ../src/ui.c:152
-msgid "Modify document properties"
-msgstr "Modifier les propriétés du document"
+#: ../src/bc-backends.c:263
+msgid "Code 128 (Mode C supression)"
+msgstr "Code 128 (suppression mode C)"
 
-#: ../src/ui.c:157
-msgid "Template _Designer..."
-msgstr "_Créateur de modèles..."
+#: ../src/bc-backends.c:266
+msgid "DAFT Code"
+msgstr "Code DAFT"
 
-# src/tools.c:70
-# src/tools.c:70
-# src/menu.c:106 src/menu.c:197
-# src/menu.c:106 src/menu.c:197
-#: ../src/ui.c:159
-msgid "Create a custom template"
-msgstr "Crée un modèle personnalisé"
+#: ../src/bc-backends.c:269
+msgid "Data Matrix"
+msgstr "Data Matrix"
 
-#: ../src/ui.c:164
-msgid "_Close"
-msgstr "_Fermer"
+#: ../src/bc-backends.c:272
+msgid "Deutsche Post Leitcode"
+msgstr "Poste allemande Leitcode"
 
-# src/menu.c:142
-# src/menu.c:142
-# src/menu.c:172
-# src/menu.c:172
-#: ../src/ui.c:166
-msgid "Close the current file"
-msgstr "Ferme le fichier actuel"
+#: ../src/bc-backends.c:275
+msgid "Deutsche Post Identcode"
+msgstr "Poste allemande Identcode"
 
-#: ../src/ui.c:171
-msgid "_Quit"
-msgstr "_Quitter"
+#: ../src/bc-backends.c:278
+msgid "Dutch Post KIX Code"
+msgstr "Code postal néerlandais KIX"
 
-#: ../src/ui.c:173
-msgid "Quit the program"
-msgstr "Quitte le programme"
+#: ../src/bc-backends.c:281
+msgid "EAN"
+msgstr "EAN"
 
-#: ../src/ui.c:180
-msgid "Cut"
-msgstr "Couper"
+#: ../src/bc-backends.c:284
+msgid "Grid Matrix"
+msgstr "Grid Matrix"
 
-#: ../src/ui.c:182
-msgid "Cut the selection"
-msgstr "Coupe la sélection"
+#: ../src/bc-backends.c:287
+msgid "GS1-128"
+msgstr "GS1-128"
 
-#: ../src/ui.c:187
-msgid "Copy"
-msgstr "Copier"
+#: ../src/bc-backends.c:290
+msgid "GS1 DataBar-14"
+msgstr "GS1 DataBar-14"
 
-# src/menu.c:86
-# src/menu.c:86
-# src/menu.c:86
-# src/menu.c:86
-#: ../src/ui.c:189
-msgid "Copy the selection"
-msgstr "Copie la sélection"
+#: ../src/bc-backends.c:299
+msgid "GS1 DataBar-14 Stacked"
+msgstr "GS1 DataBar-14 empilé"
 
-#: ../src/ui.c:194
-msgid "Paste"
-msgstr "Coller"
+#: ../src/bc-backends.c:302
+msgid "GS1 DataBar-14 Stacked Omni."
+msgstr "GS1 DataBar-14 empilé omni."
 
-#: ../src/ui.c:196
-msgid "Paste the clipboard"
-msgstr "Colle le presse-papiers"
+#: ../src/bc-backends.c:305
+msgid "GS1 DataBar Extended Stacked"
+msgstr "GS1 DataBar empilé étendu"
 
-# src/display.c:1157 src/display.c:1205
-# src/display.c:1160 src/display.c:1208
-# src/display.c:1171 src/display.c:1219
-# src/display.c:1186 src/display.c:1234
-#: ../src/ui.c:201
-msgid "Delete"
-msgstr "Supprimer"
+#: ../src/bc-backends.c:308
+msgid "HIBC Code 128"
+msgstr "Code 128 HIBC"
 
-# src/tools.c:64
-# src/tools.c:64
-# src/menu.c:100 src/menu.c:191
-# src/menu.c:100 src/menu.c:191
-#: ../src/ui.c:203
-msgid "Delete the selected objects"
-msgstr "Supprime les objets sélectionnés"
+#: ../src/bc-backends.c:311
+msgid "HIBC Code 39"
+msgstr "Code 39 HIBC"
 
-# src/menu.c:86
-# src/menu.c:86
-# src/menu.c:85
-# src/menu.c:85
-#: ../src/ui.c:208
-msgid "Select All"
-msgstr "Tout sélectionner"
+#: ../src/bc-backends.c:314
+msgid "HIBC Data Matrix"
+msgstr "Data Matrix HIBC"
 
-# src/tools.c:59
-# src/tools.c:59
-# src/menu.c:95 src/menu.c:186
-# src/menu.c:95 src/menu.c:186
-#: ../src/ui.c:210
-msgid "Select all objects"
-msgstr "Sélectionne tous les objets"
+#: ../src/bc-backends.c:317
+msgid "HIBC QR Code"
+msgstr "Code HIBC QR"
 
-# src/menu.c:86
-# src/menu.c:86
-# src/menu.c:85
-# src/menu.c:85
-#: ../src/ui.c:215
-msgid "Un-select All"
-msgstr "Désélectionner tout"
+#: ../src/bc-backends.c:320
+msgid "HIBC PDF417"
+msgstr "HIBC PDF417"
 
-# src/menu.c:86
-# src/menu.c:86
-# src/menu.c:86
-# src/menu.c:86
-#: ../src/ui.c:217
-msgid "Remove all selections"
-msgstr "Annule toutes les sélections"
+#: ../src/bc-backends.c:323
+msgid "HIBC Micro PDF417"
+msgstr "HIBC Micro PDF417"
 
-# src/preferences.c:92
-# src/prefs.c:101
-# src/prefs.c:92
-# src/prefs.c:86
-#: ../src/ui.c:222
-msgid "Preferences"
-msgstr "Préférences"
+#: ../src/bc-backends.c:326
+msgid "HIBC Aztec Code"
+msgstr "Code Aztec HIBC"
 
-#: ../src/ui.c:224
-msgid "Configure the application"
-msgstr "Configure le logiciel"
+#: ../src/bc-backends.c:335
+msgid "ITF-14"
+msgstr "ITF-14"
 
-# src/tools.c:84
-# src/tools.c:84
-# src/menu.c:121 src/menu.c:211
-# src/menu.c:121 src/menu.c:211
-#: ../src/ui.c:231
-msgid "Zoom in"
-msgstr "Zoom avant"
+#: ../src/bc-backends.c:338
+msgid "Japanese Postal"
+msgstr "Poste japonaise"
 
-#: ../src/ui.c:233
-msgid "Increase magnification"
-msgstr "Augmente l'agrandissement"
+#: ../src/bc-backends.c:341
+msgid "Korean Postal"
+msgstr "Poste coréenne"
 
-# src/tools.c:87
-# src/tools.c:87
-# src/menu.c:124 src/menu.c:214
-# src/menu.c:124 src/menu.c:214
-#: ../src/ui.c:238
-msgid "Zoom out"
-msgstr "Zoom arrière"
+#: ../src/bc-backends.c:344
+msgid "LOGMARS"
+msgstr "LOGMARS"
 
-#: ../src/ui.c:240
-msgid "Decrease magnification"
-msgstr "Réduit l'agrandissement"
+#: ../src/bc-backends.c:347
+msgid "Maxicode"
+msgstr "Maxicode"
 
-# src/tools.c:90
-# src/tools.c:90
-# src/menu.c:127
-# src/menu.c:127
-#: ../src/ui.c:245
-msgid "Zoom 1 to 1"
-msgstr "Zoom 1:1"
+#: ../src/bc-backends.c:350
+msgid "Micro PDF417"
+msgstr "Micro PDF417"
 
-#: ../src/ui.c:247
-msgid "Restore scale to 100%"
-msgstr "Remet l'échelle à 100%"
+#: ../src/bc-backends.c:353
+msgid "Micro QR Code"
+msgstr "Micro QR Code"
 
-# src/tools.c:90
-# src/tools.c:90
-# src/menu.c:127 src/menu.c:217
-# src/menu.c:127 src/menu.c:217
-#: ../src/ui.c:252
-msgid "Zoom to fit"
-msgstr "Adapte le zoom à la taille de la fenêtre"
+#: ../src/bc-backends.c:356
+msgid "MSI Plessey"
+msgstr "MSI Plessey"
 
-#: ../src/ui.c:254
-msgid "Set scale to fit window"
-msgstr "Adapte l'échelle à la taille de la fenêtre"
+#: ../src/bc-backends.c:359
+msgid "NVE-18"
+msgstr "NVE-18"
 
-# src/display.c:1157 src/display.c:1205
-# src/display.c:1160 src/display.c:1208
-# src/menu.c:94
-# src/menu.c:94
-#: ../src/ui.c:261
-msgid "Select Mode"
-msgstr "Mode sélection"
+#: ../src/bc-backends.c:362
+msgid "PDF417"
+msgstr "PDF417"
 
-# src/tools.c:59
-# src/tools.c:59
-# src/menu.c:95 src/menu.c:186
-# src/menu.c:95 src/menu.c:186
-#: ../src/ui.c:263
-msgid "Select, move and modify objects"
-msgstr "Sélectionne, déplace et modifie les objets"
+#: ../src/bc-backends.c:365
+msgid "PDF417 Truncated"
+msgstr "PDF417 tronqué"
 
-# src/item_text.c:442 src/item_text.c:627
-# src/item_text.c:442 src/item_text.c:627
-# src/item_text.c:460 src/item_text.c:464 src/item_text.c:637 src/menu.c:100
-# src/item_text.c:460 src/item_text.c:464 src/item_text.c:637 src/menu.c:100
-#: ../src/ui.c:268 ../src/view-text.c:494
-#: ../data/glade/object-editor.glade.h:32
-msgid "Text"
-msgstr "Texte"
+#: ../src/bc-backends.c:368
+msgid "PLANET"
+msgstr "PLANET"
 
-# src/tools.c:64
-# src/tools.c:64
-# src/menu.c:100 src/menu.c:191
-# src/menu.c:100 src/menu.c:191
-#: ../src/ui.c:270
-msgid "Create text object"
-msgstr "Crée un objet texte"
+#: ../src/bc-backends.c:371
+msgid "PostNet"
+msgstr "PostNet"
 
-# src/menu.c:103
-# src/menu.c:103
-#: ../src/ui.c:275
-msgid "Box"
-msgstr "Boîte"
+#: ../src/bc-backends.c:374
+msgid "Pharmacode"
+msgstr "Pharmacode"
 
-# src/tools.c:67
-# src/tools.c:67
-# src/menu.c:103 src/menu.c:194
-# src/menu.c:103 src/menu.c:194
-#: ../src/ui.c:277
-msgid "Create box/rectangle object"
-msgstr "Crée un objet boîte/rectangle"
+#: ../src/bc-backends.c:377
+msgid "Pharmacode 2-track"
+msgstr "Pharmacode 2-track"
 
-# src/item_line.c:271
-# src/item_line.c:271
-# src/item_line.c:256 src/menu.c:106
-# src/item_line.c:256 src/menu.c:106
-#: ../src/ui.c:282 ../data/glade/object-editor.glade.h:20
-msgid "Line"
-msgstr "Ligne"
+#: ../src/bc-backends.c:380
+msgid "Pharmazentral Nummer (PZN)"
+msgstr "Pharmazentral Nummer (PZN)"
 
-# src/tools.c:70
-# src/tools.c:70
-# src/menu.c:106 src/menu.c:197
-# src/menu.c:106 src/menu.c:197
-#: ../src/ui.c:284
-msgid "Create line object"
-msgstr "Crée un objet ligne"
+#: ../src/bc-backends.c:383
+msgid "QR Code"
+msgstr "Code QR"
 
-# src/menu.c:109
-# src/menu.c:109
-#: ../src/ui.c:289
-msgid "Ellipse"
-msgstr "Ellipse"
+#: ../src/bc-backends.c:386
+msgid "Royal Mail 4-State"
+msgstr "Royal Mail 4-State"
 
-# src/tools.c:73
-# src/tools.c:73
-# src/menu.c:110 src/menu.c:200
-# src/menu.c:110 src/menu.c:200
-#: ../src/ui.c:291
-msgid "Create ellipse/circle object"
-msgstr "Crée un objet ellipse/cercle"
+#: ../src/bc-backends.c:389
+msgid "Telepen"
+msgstr "Telepen"
 
-# src/item_image.c:283
-# src/item_image.c:283
-# src/item_image.c:268 src/menu.c:113
-# src/item_image.c:268 src/menu.c:113
-#: ../src/ui.c:296 ../data/glade/object-editor.glade.h:16
-msgid "Image"
-msgstr "Image"
+#: ../src/bc-backends.c:392
+msgid "Telepen Numeric"
+msgstr "Telepen Numeric"
 
-# src/tools.c:76
-# src/tools.c:76
-# src/menu.c:113 src/menu.c:203
-# src/menu.c:113 src/menu.c:203
-#: ../src/ui.c:298
-msgid "Create image object"
-msgstr "Crée un objet image"
+#: ../src/bc-backends.c:401
+msgid "USPS One Code"
+msgstr "Code USPS One"
 
-# src/item_barcode.c:316
-# src/item_barcode.c:317
-# src/menu.c:116
-# src/menu.c:116
-#: ../src/ui.c:303
-msgid "Barcode"
-msgstr "Code-barre"
+#: ../src/bc-backends.c:404
+msgid "UK Plessey"
+msgstr "UK Plessey"
 
-# src/tools.c:79
-# src/tools.c:79
-# src/menu.c:116 src/menu.c:206
-# src/menu.c:116 src/menu.c:206
-#: ../src/ui.c:305
-msgid "Create barcode object"
-msgstr "Crée un objet code-barre"
+#: ../src/bc-backends.c:411
+msgid "IEC16022 (DataMatrix)"
+msgstr "IEC16022 (DataMatrix)"
 
-# src/display.c:1167 src/display.c:1215
-# src/display.c:1170 src/display.c:1218
-# src/display.c:1181 src/display.c:1229
-# src/display.c:1196 src/display.c:1244
-#: ../src/ui.c:310
-msgid "Bring to front"
-msgstr "Avancer au premier plan"
+#: ../src/bc-backends.c:418
+msgid "IEC18004 (QRCode)"
+msgstr "IEC18004 (QRCode)"
 
-#: ../src/ui.c:312
-msgid "Raise object to top"
-msgstr "Remonte l'objet au premier plan"
+#: ../src/color-combo-button.c:198 ../src/color-combo.c:178
+msgid "Default Color"
+msgstr "Couleur par défaut"
 
-# src/display.c:1173 src/display.c:1221
-# src/display.c:1176 src/display.c:1224
-# src/display.c:1187 src/display.c:1235
-# src/display.c:1202 src/display.c:1250
-#: ../src/ui.c:317
-msgid "Send to back"
-msgstr "Reculer à l'arrière-plan"
+#: ../src/color-combo-menu.c:83
+msgid "Dark Red"
+msgstr "Rouge foncé"
 
-#: ../src/ui.c:319
-msgid "Lower object to bottom"
-msgstr "Descend l'objet à l'arrière-plan"
+#: ../src/color-combo-menu.c:84
+msgid "Brown"
+msgstr "Brun"
 
-# src/rotate_select.c:187
-# src/rotate_select.c:187
-# src/rotate_select.c:167
-# src/rotate_select.c:169
-#: ../src/ui.c:324
-msgid "Rotate left"
-msgstr "Rotation gauche"
-
-#: ../src/ui.c:326
-msgid "Rotate object 90 degrees counter-clockwise"
-msgstr ""
-"Tourne l'objet de 90 degrés dans le sens inverse des aiguilles d'une montre"
-
-# src/rotate_select.c:187
-# src/rotate_select.c:187
-# src/rotate_select.c:167
-# src/rotate_select.c:169
-#: ../src/ui.c:331
-msgid "Rotate right"
-msgstr "Rotation droite"
-
-#: ../src/ui.c:333
-msgid "Rotate object 90 degrees clockwise"
-msgstr "Tourne l'objet de 90 degrés dans le sens des aiguilles d'une montre"
-
-#: ../src/ui.c:338
-msgid "Flip horizontally"
-msgstr "Retourner horizontalement"
-
-#: ../src/ui.c:340
-msgid "Flip object horizontally"
-msgstr "Retourne l'objet horizontalement"
-
-#: ../src/ui.c:345
-msgid "Flip vertically"
-msgstr "Retourner verticalement"
-
-#: ../src/ui.c:347
-msgid "Flip object vertically"
-msgstr "Retourne l'objet verticalement"
-
-# src/prop_text.c:277
-# src/prop_text.c:264
-# src/prop_text.c:248
-# src/prop_text.c:248
-#: ../src/ui.c:352
-msgid "Align left"
-msgstr "Aligner à gauche"
-
-#: ../src/ui.c:354
-msgid "Align objects to left edges"
-msgstr "Aligne les objets sur leur bordure gauche"
-
-#: ../src/ui.c:359
-msgid "Align right"
-msgstr "Aligner à droite"
-
-#: ../src/ui.c:361
-msgid "Align objects to right edges"
-msgstr "Aligne les objets sur leur bordure droite"
-
-#: ../src/ui.c:366
-msgid "Align horizontal center"
-msgstr "Aligner le centre horizontalement"
-
-#: ../src/ui.c:368
-msgid "Align objects to horizontal centers"
-msgstr "Aligne horizontalement le centre des objets"
+#: ../src/color-combo-menu.c:85
+msgid "Dark Goldenrod"
+msgstr "Jaune d'or foncé"
 
-#: ../src/ui.c:373
-msgid "Align tops"
-msgstr "Aligner au sommet"
+#: ../src/color-combo-menu.c:86
+msgid "Dark Green"
+msgstr "Vert foncé"
 
-#: ../src/ui.c:375
-msgid "Align objects to top edges"
-msgstr "Aligne les objets d'après leur sommet"
+#: ../src/color-combo-menu.c:87
+msgid "Dark Cyan"
+msgstr "Cyan foncé"
 
-#: ../src/ui.c:380
-msgid "Align bottoms"
-msgstr "Aligner à la base"
+#: ../src/color-combo-menu.c:88
+msgid "Navy Blue"
+msgstr "Bleu marine"
 
-#: ../src/ui.c:382
-msgid "Align objects to bottom edges"
-msgstr "Aligne les objets d'après leur base"
+#: ../src/color-combo-menu.c:89
+msgid "Dark Violet"
+msgstr "Violet foncé"
 
-#: ../src/ui.c:387
-msgid "Align vertical center"
-msgstr "Aligner le centre verticalement"
+#: ../src/color-combo-menu.c:91
+msgid "Red"
+msgstr "Rouge"
 
-#: ../src/ui.c:389
-msgid "Align objects to vertical centers"
-msgstr "Aligne verticalement le centre des objets"
+#: ../src/color-combo-menu.c:92
+msgid "Orange"
+msgstr "Orangé"
 
-#: ../src/ui.c:394
-msgid "Center horizontally"
-msgstr "Centrer horizontalement"
+#: ../src/color-combo-menu.c:93
+msgid "Dark Yellow"
+msgstr "Jaune foncé"
 
-#: ../src/ui.c:396
-msgid "Center objects to horizontal label center"
-msgstr "Centre les objets horizontalement par rapport à l'étiquette"
+#: ../src/color-combo-menu.c:94
+msgid "Medium green"
+msgstr "Vert moyen"
 
-#: ../src/ui.c:401
-msgid "Center vertically"
-msgstr "Centrer verticalement"
+#: ../src/color-combo-menu.c:95
+msgid "Turquoise"
+msgstr "Turquoise"
 
-#: ../src/ui.c:403
-msgid "Center objects to vertical label center"
-msgstr "Centre les objets verticalement par rapport à l'étiquette"
+#: ../src/color-combo-menu.c:96
+msgid "Blue"
+msgstr "Bleu"
 
-# src/item_text.c:467
-# src/item_text.c:467
-# src/menu.c:132 src/menu.c:223
-# src/menu.c:132 src/menu.c:223
-#: ../src/ui.c:408
-msgid "Merge properties"
-msgstr "Propriétés de fusion"
+#: ../src/color-combo-menu.c:97
+msgid "Purple"
+msgstr "Mauve"
 
-# src/item_image.c:272
-# src/item_image.c:272
-# src/menu.c:133
-# src/menu.c:133
-#: ../src/ui.c:410
-msgid "Edit merge properties"
-msgstr "Modifie les propriétés de fusion"
+#: ../src/color-combo-menu.c:99
+msgid "Salmon"
+msgstr "Saumon"
 
-#: ../src/ui.c:417
-msgid "Contents"
-msgstr "Sommaire"
+#: ../src/color-combo-menu.c:100
+msgid "Gold"
+msgstr "Jaune d'or"
 
-# src/file.c:183
-# src/file.c:183
-# src/file.c:213
-# src/file.c:213
-#: ../src/ui.c:419
-msgid "Open glabels manual"
-msgstr "Ouvre le manuel de glabels"
+#: ../src/color-combo-menu.c:101
+msgid "Yellow"
+msgstr "Jaune"
 
-#: ../src/ui.c:424
-msgid "About..."
-msgstr "À propos..."
+#: ../src/color-combo-menu.c:102
+msgid "Green"
+msgstr "Vert"
 
-#: ../src/ui.c:426
-msgid "About glabels"
-msgstr "À propos de glabels"
+#: ../src/color-combo-menu.c:103
+msgid "Cyan"
+msgstr "Cyan"
 
-#: ../src/ui.c:436
-msgid "Property toolbar"
-msgstr "Barre d'outils de propriétés"
+#: ../src/color-combo-menu.c:104
+msgid "SkyBlue"
+msgstr "Bleu ciel"
 
-#: ../src/ui.c:438
-msgid "Change the visibility of the property toolbar in the current window"
-msgstr ""
-"Affiche ou pas la barre d'outils de propriétés dans la fenêtre actuelle"
+#: ../src/color-combo-menu.c:105
+msgid "Violet"
+msgstr "Violet"
 
-#: ../src/ui.c:444 ../src/ui.c:489 ../src/ui.c:497
-msgid "Show tooltips"
-msgstr "Afficher les infos-bulles"
+#: ../src/color-combo-menu.c:107
+msgid "Pink"
+msgstr "Rose"
 
-#: ../src/ui.c:446
-msgid "Show tooltips for property toolbar"
-msgstr "Affiche les info-bulles dans la barre d'outils de propriétés"
+#: ../src/color-combo-menu.c:108
+msgid "Khaki"
+msgstr "Kaki"
 
-#: ../src/ui.c:452
-msgid "Grid"
-msgstr "Grille"
+#: ../src/color-combo-menu.c:109
+msgid "Light Yellow"
+msgstr "Jaune clair"
 
-#: ../src/ui.c:454
-msgid "Change the visibility of the grid in the current window"
-msgstr "Affiche ou pas la grille dans la fenêtre actuelle"
+#: ../src/color-combo-menu.c:110
+msgid "Light Green"
+msgstr "Vert clair"
 
-# src/preferences.c:213
-#: ../src/ui.c:460
-msgid "Markup"
-msgstr "Marges"
+#: ../src/color-combo-menu.c:111
+msgid "Light Cyan"
+msgstr "Cyan clair"
 
-#: ../src/ui.c:462
-msgid "Change the visibility of markup lines in the current window"
-msgstr "Affiche ou pas les lignes de marges dans la fenêtre actuelle"
+#: ../src/color-combo-menu.c:112
+msgid "Slate Gray"
+msgstr "Gris ardoise"
 
-#: ../src/ui.c:473
-msgid "Main toolbar"
-msgstr "Barre d'outils principale"
+# http://en.wikipedia.org/wiki/Thistle_(color)
+#: ../src/color-combo-menu.c:113
+msgid "Thistle"
+msgstr "Mauve pâle"
 
-#: ../src/ui.c:475
-msgid "Change the visibility of the main toolbar in the current window"
-msgstr "Affiche ou pas la barre d'outils principale dans la fenêtre actuelle"
+#: ../src/color-combo-menu.c:115
+msgid "White"
+msgstr "Blanc"
 
-#: ../src/ui.c:481
-msgid "Drawing toolbar"
-msgstr "Barre d'outils dessin"
+#: ../src/color-combo-menu.c:117
+#, no-c-format
+msgid "10% Gray"
+msgstr "Gris 10%"
 
-#: ../src/ui.c:483
-msgid "Change the visibility of the drawing toolbar in the current window"
-msgstr "Affiche ou pas la barre d'outils dessin dans la fenêtre actuelle"
-
-#: ../src/ui.c:491
-msgid "Show tooltips for main toolbar"
-msgstr "Afficher les info-bulles dans la barre d'outils principale"
-
-#: ../src/ui.c:499
-msgid "Show tooltips for drawing toolbar"
-msgstr "Affiche les info-bulles dans la barre d'outils de dessin"
-
-# src/display.c:1157 src/display.c:1205
-# src/display.c:1160 src/display.c:1208
-# src/display.c:1171 src/display.c:1219
-# src/display.c:1186 src/display.c:1234
-#: ../src/ui-property-bar.c:1232 ../src/object-editor.c:587
-#: ../src/object-editor.c:593
-msgid "Default"
-msgstr "Par défaut"
+#: ../src/color-combo-menu.c:119
+#, no-c-format
+msgid "25% Gray"
+msgstr "Gris 25%"
 
-# src/merge.c:80
-# src/merge.c:78
-#: ../src/ui-property-bar.c:1239 ../src/object-editor.c:599
-msgid "No line"
-msgstr "Pas de ligne"
+#: ../src/color-combo-menu.c:121
+#, no-c-format
+msgid "40% Gray"
+msgstr "Gris 40%"
 
-#: ../src/ui-property-bar.c:1247 ../src/object-editor.c:606
-msgid "No fill"
-msgstr "Pas de remplissage"
+#: ../src/color-combo-menu.c:123
+#, no-c-format
+msgid "50% Gray"
+msgstr "Gris 50%"
 
-# src/item_text.c:467
-# src/item_text.c:467
-# src/item_text.c:482
-# src/item_text.c:482
-#: ../src/ui-sidebar.c:152
-msgid "Object properties"
-msgstr "Propriétés de l'objet"
+#: ../src/color-combo-menu.c:125
+#, no-c-format
+msgid "60% Gray"
+msgstr "Gris 60%"
 
-#: ../src/ui-commands.c:1084
-msgid "Glabels includes contributions from:"
-msgstr "Glabels contient des contributions de :"
+#: ../src/color-combo-menu.c:126
+msgid "Black"
+msgstr "Noir"
 
-#: ../src/ui-commands.c:1090
-msgid "See the file AUTHORS for additional credits,"
-msgstr "Consultez le fichier AUTHORS\n"
-"pour des remerciements supplémentaires,"
+#: ../src/color-combo-menu.c:254 ../src/color-combo-menu.c:373
+msgid "Custom Color"
+msgstr "Couleur personnalisée"
 
-#: ../src/ui-commands.c:1091
-msgid "or visit http://glabels.sourceforge.net/"
-msgstr "ou visitez http://glabels.sourceforge.net/"
+#: ../src/color-combo-menu.c:319
+#, c-format
+msgid "Custom Color #%u"
+msgstr "Couleur personnalisée n° %u"
 
-#: ../src/ui-commands.c:1103
-msgid "A label and business card creation program.\n"
-msgstr "Un logiciel de création de cartes de visite et d'étiquettes.\n"
+#: ../src/critical-error-handler.c:70
+msgid "gLabels Fatal Error!"
+msgstr "Erreur fatale de gLabels !"
 
-#: ../src/ui-commands.c:1107
-msgid "translator-credits"
-msgstr ""
-"Olivier Berger <oberger@gnu.org>\n"
-"Florent Morel <florent@taket.org>, 2001, 2004\n"
-"Claude Paroz <claude@2xlibre.net>, 2007\n"
-"Bruno Brouard <annoa.b@gmail.com>, 2010"
-
-# src/menu.c:185
-# src/menu.c:185
-# src/menu.c:290
-# src/menu.c:290
-#: ../src/ui-commands.c:1110
-msgid ""
-"Glabels is free software; you can redistribute it and/or modify it\n"
-"under the terms of the GNU General Public License as published by\n"
-"the Free Software Foundation; either version 2 of the License, or\n"
-"(at your option) any later version.\n"
-"\n"
-"This program is distributed in the hope that it will be useful, but\n"
-"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See\n"
-"the GNU General Public License for more details.\n"
-msgstr ""
-"Glabels est un logiciel libre ; vous pouvez le redistribuer et/ou\n"
-" le modifier conformément aux dispositions de la Licence Publique Générale GNU,\n"
-"telle que publiée par la Free Software Foundation ; version 2 de la licence,\n"
-"ou encore (à votre choix) toute version ultérieure.\n"
-" \n"
-"Ce programme est distribué dans l'espoir qu'il sera utile, mais\n"
-"SANS AUCUNE GARANTIE ; sans même la garantie implicite de \n"
-"COMMERCIALISATION ou D'ADAPTATION A UN OBJET PARTICULIER.\n"
-"Pour plus de détails, voir la Licence Publique Générale GNU.\n"
-
-# src/print_copies.c:210
-# src/print_copies.c:210
-# src/print_copies.c:188
-# src/print_copies.c:187
-#: ../src/ui-commands.c:1136
-msgid "glabels"
-msgstr "glabels"
-
-# src/file.c:59
-# src/file.c:59
-# src/file.c:72
-# src/file.c:72
-#: ../src/file.c:91
+#: ../src/file.c:84
 msgid "New Label or Card"
 msgstr "Nouvelle étiquette ou carte"
 
-# src/item_text.c:467
-# src/item_text.c:467
-# src/item_text.c:482
-# src/item_text.c:482
-#: ../src/file.c:191
+#: ../src/file.c:175 ../src/label.c:601 ../src/label.c:645
 msgid "Label properties"
 msgstr "Propriétés de l'étiquette"
 
-#: ../src/file.c:292 ../src/file.c:578
+#: ../src/file.c:267 ../src/file.c:557
 msgid "All files"
 msgstr "Tous les fichiers"
 
-# src/preferences.c:92
-# src/prefs.c:101
-# src/prefs.c:92
-# src/prefs.c:86
-#: ../src/file.c:297 ../src/file.c:583
+#: ../src/file.c:272 ../src/file.c:562
 msgid "gLabels documents"
 msgstr "Documents gLabels"
 
-# src/menu.c:86
-# src/menu.c:86
-# src/menu.c:86
-# src/menu.c:86
-#: ../src/file.c:343 ../src/file.c:640
+#: ../src/file.c:319 ../src/file.c:620
 msgid "Empty file name selection"
 msgstr "Nom de fichier sélectionné vide"
 
-#: ../src/file.c:346 ../src/file.c:362
+#: ../src/file.c:322 ../src/file.c:338
 msgid "Please select a file or supply a valid file name"
 msgstr "Sélectionnez un fichier ou donnez un nom de fichier valide"
 
-#: ../src/file.c:359
+#: ../src/file.c:335
 msgid "File does not exist"
 msgstr "Ce fichier n'existe pas"
 
-# src/file.c:214
-# src/file.c:214
-# src/file.c:249
-# src/file.c:249
-# c-format
-#: ../src/file.c:433
+#: ../src/file.c:410
 #, c-format
 msgid "Could not open file \"%s\""
 msgstr "Impossible d'ouvrir le fichier « %s »"
 
-#: ../src/file.c:436
+#: ../src/file.c:413
 msgid "Not a supported file format"
 msgstr "Format de fichier non pris en charge"
 
-# src/file.c:248 src/mdi.c:635
-# src/file.c:248 src/mdi.c:641
-# src/file.c:288 src/mdi.c:601
-# src/file.c:288 src/mdi.c:601
-#: ../src/file.c:513 ../src/file.c:690
+#: ../src/file.c:491 ../src/file.c:670
 #, c-format
 msgid "Could not save file \"%s\""
 msgstr "Impossible d'enregistrer « %s »"
 
-#: ../src/file.c:517 ../src/file.c:694
+#: ../src/file.c:495 ../src/file.c:674
 msgid "Error encountered during save.  The file is still not saved."
 msgstr ""
-"Erreur rencontrée durant l'enregistrement. Le fichier n'est toujours pas "
+"Erreur au cours de l'enregistrement. Le fichier n'a pas été encore "
 "enregistré."
 
-# src/file.c:278
-# src/file.c:278
-# src/file.c:316
-# src/file.c:316
-#: ../src/file.c:556
+#: ../src/file.c:535
 #, c-format
 msgid "Save \"%s\" as"
 msgstr "Enregistrer « %s » sous"
 
-# src/file.c:319 src/mdi.c:729
-# src/file.c:319 src/mdi.c:735
-# src/file.c:362 src/mdi.c:693
-# src/file.c:362 src/mdi.c:693
-#: ../src/file.c:643
+#: ../src/file.c:623
 msgid "Please supply a valid file name"
 msgstr "Donnez un nom de fichier valide"
 
-#: ../src/file.c:664
+#: ../src/file.c:644
 #, c-format
 msgid "Overwrite file \"%s\"?"
 msgstr "Écraser le fichier « %s » ?"
 
-#: ../src/file.c:668
+#: ../src/file.c:648
 msgid "File already exists."
 msgstr "Ce fichier existe déjà."
 
-#: ../src/file.c:764
+#: ../src/file.c:744
 #, c-format
 msgid "Save changes to document \"%s\" before closing?"
-msgstr "Enregistrer les modifications du document « %s » avant de fermer ?"
+msgstr "Enregistrer les changements au document « %s » avant de fermer ?"
 
-#: ../src/file.c:768
+#: ../src/file.c:748
 msgid "Your changes will be lost if you don't save them."
 msgstr "Vos changements seront perdus si vous ne les enregistrez pas."
 
-#: ../src/file.c:771
+#: ../src/file.c:751
 msgid "Close without saving"
 msgstr "Fermer sans enregistrer"
 
-# src/print.c:171
-# src/prefs.c:463 src/prefs.c:470 src/prop_line.c:202
-# src/prefs.c:445 src/prefs.c:452 src/prop_line.c:183
-# src/prefs.c:448 src/prefs.c:455 src/prop_line.c:183
-#. Should not happen
-#: ../src/prefs.c:159 ../src/prefs.c:166
-#: ../data/glade/object-editor.glade.h:43
-#: ../data/glade/prefs-dialog.glade.h:22
-msgid "points"
-msgstr "points"
+#: ../src/font-combo-menu.c:137
+msgid "Recent fonts"
+msgstr "Polices récentes"
 
-# src/item_line.c:271
-# src/prefs.c:465
-# src/prefs.c:447
-# src/prefs.c:450
-#: ../src/prefs.c:161 ../data/glade/object-editor.glade.h:42
-#: ../data/glade/template-designer.glade.h:64
-msgid "inches"
-msgstr "pouces"
+#: ../src/font-combo-menu.c:152
+msgid "Proportional fonts"
+msgstr "Polices proportionnelles"
 
-# src/prefs.c:467
-# src/prefs.c:449
-# src/prefs.c:452
-#: ../src/prefs.c:163
-msgid "mm"
-msgstr "mm"
+#: ../src/font-combo-menu.c:160
+msgid "Fixed-width fonts"
+msgstr "Polices à chasse fixe"
 
-# src/preferences.c:92
-# src/prefs.c:101
-# src/prefs.c:92
-# src/prefs.c:86
-#: ../src/prefs-dialog.c:162 ../data/glade/prefs-dialog.glade.h:21
-msgid "gLabels Preferences"
-msgstr "Préférences de gLabels"
+#: ../src/font-combo-menu.c:168
+msgid "All fonts"
+msgstr "Toutes les polices"
 
-# src/item_box.c:251
-# src/item_box.c:251
-# src/item_box.c:235
-# src/item_box.c:235
-#. Build editor.
-#: ../src/view-box.c:175
-msgid "Box object properties"
-msgstr "Propriétés de l'objet boîte"
+#.
+#. * Allow text samples to be localized.
+#. *
+#. * FIXME: if we could extract enough meta information from the fonts
+#. * themselves, perhaps rather than setting these globally for the
+#. * current locale, they could be unique to each font family.
+#.
+#: ../src/font-combo-menu-item.c:132
+msgctxt "Short sample text"
+msgid "Aa"
+msgstr "Aa"
+
+#: ../src/font-combo-menu-item.c:134
+msgctxt "Lower case sample text"
+msgid "abcdefghijklmnopqrstuvwxyz"
+msgstr "abcdefghijklmnopqrstuvwxyzàéïô"
+
+#: ../src/font-combo-menu-item.c:136
+msgctxt "Upper case sample text"
+msgid "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNOPQRSTUVWXYZÀÉÏÔ"
+
+#: ../src/font-combo-menu-item.c:138
+msgctxt "Numbers and special characters sample text"
+msgid "0123456789 .:,;(*!?)"
+msgstr "0123456789 .:,;(*!?)"
+
+#: ../src/font-combo-menu-item.c:157
+msgid "Sample text"
+msgstr "Exemple de texte"
+
+#: ../src/glabels-batch.c:53
+msgid "set output filename (default=\"output.pdf\")"
+msgstr "définit le fichier de sortie (par défaut = « output.pdf »)"
 
-# src/item_ellipse.c:256
-# src/item_ellipse.c:256
-# src/item_ellipse.c:237
-# src/item_ellipse.c:237
-#. Build editor.
-#: ../src/view-ellipse.c:175
-msgid "Ellipse object properties"
-msgstr "Propriétés de l'objet ellipse"
+#: ../src/glabels-batch.c:53 ../src/glabels-batch.c:67
+msgid "filename"
+msgstr "nom de fichier"
 
-# src/item_box.c:251
-# src/item_box.c:251
-# src/item_box.c:235
-# src/item_box.c:235
-#. Build editor.
-#: ../src/view-line.c:174
-msgid "Line object properties"
-msgstr "Propriétés de l'objet ligne"
+#: ../src/glabels-batch.c:55
+msgid "number of sheets (default=1)"
+msgstr "nombre de pages (défaut=1)"
 
-# src/item_image.c:272
-# src/item_image.c:272
-# src/item_image.c:257
-# src/item_image.c:257
-#. Build editor.
-#: ../src/view-image.c:174
-msgid "Image object properties"
-msgstr "Propriétés de l'objet image"
+#: ../src/glabels-batch.c:55
+msgid "sheets"
+msgstr "feuilles"
 
-# src/item_box.c:251
-# src/item_box.c:251
-# src/item_box.c:235
-# src/item_box.c:235
-#. Build editor.
-#: ../src/view-text.c:178
-msgid "Text object properties"
-msgstr "Propriétés de l'objet texte"
+#: ../src/glabels-batch.c:57
+msgid "number of copies (default=1)"
+msgstr "nombre de copies (défaut=1)"
 
-# src/item_barcode.c:299
-# src/item_barcode.c:299
-# src/item_barcode.c:287
-# src/item_barcode.c:287
-#. Build editor.
-#: ../src/view-barcode.c:174
-msgid "Barcode object properties"
-msgstr "Propriétés de l'objet code-barre"
+#: ../src/glabels-batch.c:57
+msgid "copies"
+msgstr "copies"
 
-#: ../src/object-editor-image-page.c:270
-msgid "All Files"
-msgstr "Tous les fichiers"
+#: ../src/glabels-batch.c:59
+msgid "first label on first sheet (default=1)"
+msgstr "première étiquette sur la première page (défaut=1)"
 
-# src/item_image.c:283
-# src/item_image.c:283
-# src/item_image.c:268 src/menu.c:113
-# src/item_image.c:268 src/menu.c:113
-#: ../src/object-editor-image-page.c:275
-msgid "All Images"
-msgstr "Toutes les images"
+#: ../src/glabels-batch.c:59
+msgid "first"
+msgstr "première"
 
-#: ../src/object-editor-image-page.c:290
-#, c-format
-msgid "%s (*.%s)"
-msgstr "%s (*.%s)"
+#: ../src/glabels-batch.c:61 ../data/ui/print-op-dialog-custom-widget.ui.h:13
+msgid "print outlines (to test printer alignment)"
+msgstr "imprimer les bordures (pour tester l'alignement de l'imprimante)"
 
-# src/item_text.c:467
-# src/item_text.c:467
-# src/menu.c:132 src/menu.c:223
-# src/menu.c:132 src/menu.c:223
-#: ../src/merge-properties-dialog.c:263
-msgid "Merge Properties"
-msgstr "Propriétés de fusion"
+#: ../src/glabels-batch.c:63 ../data/ui/print-op-dialog-custom-widget.ui.h:12
+msgid "print in reverse (i.e. a mirror image)"
+msgstr "imprimer à l'envers (i.e. une image miroir)"
 
-# src/merge_ui_text.c:170
-# src/merge_ui_text.c:170
-#: ../src/merge-properties-dialog.c:289 ../src/merge-properties-dialog.c:397
-msgid "Select merge-database source"
-msgstr "Sélection du fichier de données pour la fusion"
+#: ../src/glabels-batch.c:65 ../data/ui/print-op-dialog-custom-widget.ui.h:11
+msgid "print crop marks"
+msgstr "imprimer les guides de coupe"
 
-# src/merge_ui.c:207 src/merge_ui.c:242 src/merge_ui.c:387 src/merge_ui.c:428
-# src/merge_ui.c:207 src/merge_ui.c:242 src/merge_ui.c:387 src/merge_ui.c:428
-#: ../src/merge-properties-dialog.c:298 ../src/merge-properties-dialog.c:417
-msgid "N/A"
-msgstr "Non défini"
+#: ../src/glabels-batch.c:67
+msgid "input file for merging"
+msgstr "fichier d'entrée pour la fusion"
 
-# src/display.c:1157 src/display.c:1205
-# src/display.c:1160 src/display.c:1208
-# src/menu.c:94
-# src/menu.c:94
-#: ../src/merge-properties-dialog.c:324
-msgid "Select"
-msgstr "Sélectionner"
+#: ../src/glabels-batch.c:69 ../src/glabels.c:63
+msgid "[FILE...]"
+msgstr "[FICHIER...]"
 
-#: ../src/merge-properties-dialog.c:332
-msgid "Record/Field"
-msgstr "Enregistrements/Champs"
+#: ../src/glabels-batch.c:99
+msgid "Print files created with gLabels."
+msgstr "Imprimer des fichiers créés avec gLabels."
 
-# src/item_barcode.c:309
-# src/item_barcode.c:308
-# src/item_barcode.c:297
-# src/item_barcode.c:297
-#: ../src/merge-properties-dialog.c:340 ../data/glade/object-editor.glade.h:10
-msgid "Data"
-msgstr "Données"
+#: ../src/glabels-batch.c:107 ../src/glabels.c:87
+#, c-format
+msgid ""
+"%s\n"
+"Run '%s --help' to see a full list of available command line options.\n"
+msgstr ""
+"%s\n"
+"Lancez « %s --help » pour afficher la liste complète des options en ligne de "
+"commande.\n"
 
-# src/item_box.c:274 src/item_ellipse.c:279
-# src/item_box.c:274 src/item_ellipse.c:279
-# src/merge_properties.c:168
-# src/merge_properties.c:168
-#: ../src/merge-properties-dialog.c:410
-msgid "Fixed"
-msgstr "Fixé"
+#: ../src/glabels-batch.c:151
+#, c-format
+msgid "cannot perform document merge with glabels file %s\n"
+msgstr ""
+"impossible d'effectuer une fusion de document avec le fichier gLabels %s\n"
 
-# src/print_copies.c:210
-# src/print_copies.c:210
-# src/print_copies.c:188
-# src/print_copies.c:187
-#. ===================================================================
-#: ../src/print-op.c:237 ../src/wdgt-print-copies.c:171
-#: ../data/templates/misc-iso-templates.xml.h:34
-msgid "Labels"
-msgstr "Étiquettes"
+#: ../src/glabels-batch.c:186
+#, c-format
+msgid "cannot open glabels file %s\n"
+msgstr "impossible d'ouvrir le fichier gLabels %s\n"
 
-#: ../src/template-designer.c:358
-msgid "gLabels Template Designer"
-msgstr "Créateur de modèles gLabels"
+#: ../src/glabels.c:79
+msgid "Launch gLabels label and business card designer."
+msgstr "Lance gLabels, créateur d'étiquettes et de cartes de visite."
 
-#: ../src/template-designer.c:419
-msgid "Welcome"
-msgstr "Bienvenue"
+#: ../src/label-barcode.c:183 ../src/ui.c:317
+msgid "Create barcode object"
+msgstr "Crée un objet code-barre"
 
-# src/media_select.c:216
-# src/media_select.c:242
-# src/media_select.c:222
-# src/media_select.c:222
-#: ../src/template-designer.c:463
-msgid "Name and Description"
-msgstr "Nom et description"
+#: ../src/label-barcode.c:259 ../src/label-barcode.c:461
+msgid "Barcode data"
+msgstr "Données de code-barre"
 
-# src/media_select.c:221
-# src/media_select.c:247
-# src/media_select.c:227
-# src/media_select.c:227
-#: ../src/template-designer.c:516
-msgid "Page Size"
-msgstr "Taille de page"
+#: ../src/label-barcode.c:290
+msgid "Barcode property"
+msgstr "Propriété de code-barre"
 
-# src/file.c:59
-# src/file.c:59
-# src/file.c:72
-# src/file.c:72
-#: ../src/template-designer.c:587
-msgid "Label or Card Shape"
-msgstr "Forme de carte ou d'étiquette"
+#: ../src/label-barcode.c:684
+msgid "Barcode data empty"
+msgstr "Données de code-barre vides"
 
-# src/file.c:59
-# src/file.c:59
-# src/file.c:72
-# src/file.c:72
-#: ../src/template-designer.c:637
-msgid "Label or Card Size"
-msgstr "Taille de carte ou d'étiquette"
+#: ../src/label-barcode.c:688
+msgid "Invalid barcode data"
+msgstr "Données de code-barre non valides"
 
-# src/media_select.c:226
-# src/media_select.c:252
-# src/media_select.c:232
-# src/media_select.c:232
-#: ../src/template-designer.c:737
-msgid "Label Size (round)"
-msgstr "Taille d'étiquette (ronde)"
+#: ../src/label-box.c:156
+msgid "Create box object"
+msgstr "Créer un objet boîte"
 
-#: ../src/template-designer.c:820
-msgid "Label Size (CD/DVD)"
-msgstr "Taille d'étiquette (CD/DVD)"
+#: ../src/label-box.c:230 ../src/label-ellipse.c:232
+#: ../data/ui/property-bar.ui.h:3
+msgid "Fill color"
+msgstr "Couleur de remplissage"
 
-#: ../src/template-designer.c:913
-msgid "Number of Layouts"
-msgstr "Nombre de dispositions"
+#: ../src/label-box.c:261 ../src/label-ellipse.c:261 ../src/label-line.c:212
+#: ../data/ui/property-bar.ui.h:8
+msgid "Line color"
+msgstr "Couleur de ligne"
 
-# src/media_select.c:231
-# src/media_select.c:257
-# src/media_select.c:237
-# src/media_select.c:237
-#: ../src/template-designer.c:976
-msgid "Layout(s)"
-msgstr "Disposition(s) :"
+#: ../src/label-box.c:289 ../src/label-ellipse.c:290 ../src/label-line.c:241
+#: ../data/ui/property-bar.ui.h:9
+msgid "Line width"
+msgstr "Largeur de la ligne"
 
-#: ../src/template-designer.c:1087
-msgid "Design Completed"
-msgstr "Création terminée"
+#: ../src/label.c:405
+msgid "Untitled"
+msgstr "Sans titre"
 
-#: ../src/template-designer.c:1253
-msgid ""
-"<span foreground='red' weight='bold'>Brand and part# match an existing "
-"template!</span>"
-msgstr ""
-"<span foreground='red' weight='bold'>La marque et le numéro d'article "
-"correspondent à un modèle existant.</span>"
+#: ../src/label.c:719 ../src/ui.c:420
+msgid "Merge properties"
+msgstr "Propriétés de fusion"
 
-#: ../src/bc.c:67
-msgid "POSTNET (any)"
-msgstr "POSTNET (tous)"
+#: ../src/label.c:1215 ../src/ui.c:213
+msgid "Delete"
+msgstr "Supprimer"
 
-#: ../src/bc.c:70
-msgid "POSTNET-5 (ZIP only)"
-msgstr "POSTNET-5 (seulement ZIP)"
+#: ../src/label.c:1248 ../src/ui.c:322
+msgid "Bring to front"
+msgstr "Mettre en premier plan"
 
-#: ../src/bc.c:73
-msgid "POSTNET-9 (ZIP+4)"
-msgstr "POSTNET-9 (ZIP+4)"
+#: ../src/label.c:1284 ../src/ui.c:329
+msgid "Send to back"
+msgstr "Placer en arrière-plan"
 
-#: ../src/bc.c:76
-msgid "POSTNET-11 (DPBC)"
-msgstr "POSTNET-11 (DPBC)"
+#: ../src/label.c:1325
+msgid "Rotate"
+msgstr "Rotation"
 
-#: ../src/bc.c:79
-msgid "CEPNET"
-msgstr "CEPNET"
+#: ../src/label.c:1360 ../src/ui.c:336
+msgid "Rotate left"
+msgstr "Rotation gauche"
 
-#: ../src/bc.c:82
-msgid "EAN (any)"
-msgstr "EAN (tous)"
+#: ../src/label.c:1393 ../src/ui.c:343
+msgid "Rotate right"
+msgstr "Rotation droite"
 
-#: ../src/bc.c:85
-msgid "EAN-8"
-msgstr "EAN-8"
+#: ../src/label.c:1428 ../src/ui.c:350
+msgid "Flip horizontally"
+msgstr "Retourner horizontalement"
 
-#: ../src/bc.c:88
-msgid "EAN-8 +2"
-msgstr "EAN-8 +2"
+#: ../src/label.c:1463 ../src/ui.c:357
+msgid "Flip vertically"
+msgstr "Retourner verticalement"
 
-#: ../src/bc.c:91
-msgid "EAN-8 +5"
-msgstr "EAN-8 +5"
+#: ../src/label.c:1503 ../src/ui.c:364
+msgid "Align left"
+msgstr "Aligner à gauche"
 
-#: ../src/bc.c:94
-msgid "EAN-13"
-msgstr "EAN-13"
+#: ../src/label.c:1560 ../src/ui.c:378
+msgid "Align right"
+msgstr "Aligner à droite"
 
-#: ../src/bc.c:97
-msgid "EAN-13 +2"
-msgstr "EAN-13 +2"
+#: ../src/label.c:1621
+msgid "Align horizontal center"
+msgstr "Aligner horizontalement les centres"
 
-#: ../src/bc.c:100
-msgid "EAN-13 +5"
-msgstr "EAN-13 +5"
+#: ../src/label.c:1697
+msgid "Align tops"
+msgstr "Aligner les sommets"
 
-#: ../src/bc.c:103
-msgid "UPC (UPC-A or UPC-E)"
-msgstr "UPC (UPC-A ou UPC-E)"
+#: ../src/label.c:1754
+msgid "Align bottoms"
+msgstr "Aligner les bases"
 
-#: ../src/bc.c:106
-msgid "UPC-A"
-msgstr "UPC-A"
+#: ../src/label.c:1815
+msgid "Align vertical center"
+msgstr "Aligner verticalement les centres"
 
-#: ../src/bc.c:109
-msgid "UPC-A +2"
-msgstr "UPC-A +2"
+#: ../src/label.c:1893 ../src/ui.c:406
+msgid "Center horizontally"
+msgstr "Centrer horizontalement"
 
-#: ../src/bc.c:112
-msgid "UPC-A +5"
-msgstr "UPC-A +5"
+#: ../src/label.c:1940 ../src/ui.c:413
+msgid "Center vertically"
+msgstr "Centrer verticalement"
 
-#: ../src/bc.c:115
-msgid "UPC-E"
-msgstr "UPC-E"
+#: ../src/label.c:2628 ../src/label.c:2670 ../src/label.c:2696 ../src/ui.c:206
+msgid "Paste"
+msgstr "Coller"
 
-#: ../src/bc.c:118
-msgid "UPC-E +2"
-msgstr "UPC-E +2"
+#: ../src/label-ellipse.c:160
+msgid "Create ellipse object"
+msgstr "Crée un objet ellipse"
 
-#: ../src/bc.c:121
-msgid "UPC-E +5"
-msgstr "UPC-E +5"
+#: ../src/label-image.c:200 ../src/ui.c:310
+msgid "Create image object"
+msgstr "Crée un objet image"
 
-#: ../src/bc.c:124
-msgid "ISBN"
-msgstr "ISBN"
+#: ../src/label-image.c:333 ../src/label-image.c:474
+msgid "Set image"
+msgstr "Définir l'image"
 
-#: ../src/bc.c:127
-msgid "ISBN +5"
-msgstr "ISBN +5"
+#: ../src/label-line.c:147 ../src/ui.c:296
+msgid "Create line object"
+msgstr "Crée un objet ligne"
 
-#: ../src/bc.c:130
-msgid "Code 39"
-msgstr "Code 39"
+#: ../src/label-object.c:394 ../src/label-object.c:428
+msgid "Move"
+msgstr "Déplacer"
 
-#: ../src/bc.c:133
-msgid "Code 128"
-msgstr "Code 128"
+#: ../src/label-object.c:479
+msgid "Resize"
+msgstr "Redimensionner"
 
-#: ../src/bc.c:136
-msgid "Code 128C"
-msgstr "Code 128C"
+#: ../src/label-object.c:1217
+msgid "Shadow state"
+msgstr "État de l'ombre"
 
-#: ../src/bc.c:139
-msgid "Code 128B"
-msgstr "Code 128B"
+#: ../src/label-object.c:1260
+msgid "Shadow offset"
+msgstr "Décalage de l'ombre"
 
-#: ../src/bc.c:142
-msgid "Interleaved 2 of 5"
-msgstr "Entrelacé 2 de 5"
+#: ../src/label-object.c:1308
+msgid "Shadow color"
+msgstr "Couleur de l'ombre"
 
-#: ../src/bc.c:145
-msgid "Codabar"
-msgstr "Code-barre"
+#: ../src/label-object.c:1351
+msgid "Shadow opacity"
+msgstr "Opacité de l'ombre"
 
-#: ../src/bc.c:148
-msgid "MSI"
-msgstr "MSI"
+#: ../src/label-text.c:281 ../src/ui.c:282
+msgid "Create text object"
+msgstr "Crée un objet texte"
 
-#: ../src/bc.c:151
-msgid "Plessey"
-msgstr "Plessey"
+#: ../src/label-text.c:453
+msgid "Typing"
+msgstr "Saisie"
 
-#: ../src/bc.c:154
-msgid "IEC16022 (DataMatrix)"
-msgstr "IEC16022 (DataMatrix)"
+#: ../src/label-text.c:586 ../data/ui/property-bar.ui.h:4
+msgid "Font family"
+msgstr "Famille de police"
 
-#: ../src/label.c:531
-msgid "Untitled"
-msgstr "Sans titre"
+#: ../src/label-text.c:624 ../data/ui/property-bar.ui.h:5
+msgid "Font size"
+msgstr "Taille de police"
 
-# src/item_barcode.c:316
-# src/item_barcode.c:317
-# src/item_barcode.c:299
-# src/item_barcode.c:299
-#: ../src/label-barcode.c:426
-msgid "Barcode data empty"
-msgstr "Données de code-barre vides"
+#: ../src/label-text.c:657
+msgid "Font weight"
+msgstr "Graisse de police"
 
-# src/item_barcode.c:564 src/item_barcode.c:588 src/print.c:641
-# src/item_barcode.c:570 src/item_barcode.c:594 src/print.c:641
-# src/item_barcode.c:549 src/item_barcode.c:572 src/print.c:799
-# src/item_barcode.c:549 src/item_barcode.c:572 src/print.c:600
-#: ../src/label-barcode.c:430
-msgid "Invalid barcode data"
-msgstr "Données de code-barre invalides"
-
-# src/label.c:186 src/label.c:211
-# src/label.c:186 src/label.c:211
-# src/label.c:170 src/label.c:194
-# src/label.c:168 src/label.c:192
-#: ../src/xml-label.c:193
-msgid "xmlParseFile error"
-msgstr "erreur xmlParseFile"
-
-# src/label.c:186 src/label.c:211
-# src/label.c:186 src/label.c:211
-# src/label.c:170 src/label.c:194
-# src/label.c:168 src/label.c:192
-#: ../src/xml-label.c:234
-msgid "xmlParseDoc error"
-msgstr "erreur xmlParseDoc"
-
-# src/label.c:243
-# src/label.c:244
-# src/label.c:225
-# src/label.c:223
-#: ../src/xml-label.c:270
-msgid "No document root"
-msgstr "Pas de racine de document"
-
-#: ../src/xml-label.c:278
-msgid "Importing from glabels 0.1 format"
-msgstr "Import depuis le format glabels 0.1"
-
-#: ../src/xml-label.c:287
-msgid "Importing from glabels 0.4 format"
-msgstr "Import depuis le format glabels 0.4"
-
-# src/label.c:248
-# src/label.c:249
-# src/label.c:236
-# src/label.c:234
-#: ../src/xml-label.c:296
-#, c-format
-msgid "Unknown glabels Namespace -- Using %s"
-msgstr "Espace de nom glabels inconnu -- Utilisation de %s"
-
-# src/label.c:253
-# src/label.c:254
-# src/label.c:241
-# src/label.c:239
-#: ../src/xml-label.c:327 ../src/xml-label-04.c:79
-#, c-format
-msgid "Bad root node = \"%s\""
-msgstr "Mauvais nœud racine = \"%s\""
-
-# src/label.c:253
-# src/label.c:254
-# src/label.c:241
-# src/label.c:239
-#: ../src/xml-label.c:364
-#, c-format
-msgid "bad node in Document node =  \"%s\""
-msgstr "mauvais nœud racine = \"%s\""
-
-# src/label.c:298
-# src/label.c:301
-# src/label.c:294
-# src/label.c:290
-#: ../src/xml-label.c:409 ../src/xml-label-04.c:127
-#, c-format
-msgid "bad node =  \"%s\""
-msgstr "mauvais nœud = \"%s\""
-
-# src/label.c:298
-# src/label.c:301
-# src/label.c:294
-# src/label.c:290
-#: ../src/xml-label.c:851
+#: ../src/label-text.c:690 ../data/ui/property-bar.ui.h:6
+msgid "Italic"
+msgstr "Italique"
+
+#: ../src/label-text.c:723
+msgid "Align text"
+msgstr "Aligner le texte"
+
+#: ../src/label-text.c:756
+msgid "Line spacing"
+msgstr "Espacement de ligne"
+
+#: ../src/label-text.c:789 ../data/ui/property-bar.ui.h:11
+msgid "Text color"
+msgstr "Couleur du texte"
+
+#: ../src/label-text.c:933
+msgid "Auto shrink"
+msgstr "Réduction automatique"
+
+# Brand -> Marque
+#: ../src/media-select.c:358 ../src/media-select.c:361
+#: ../src/media-select.c:506 ../src/media-select.c:723
+msgctxt "Brand"
+msgid "Any"
+msgstr "Toutes"
+
+#: ../src/media-select.c:365 ../src/media-select.c:893
+msgctxt "Page size"
+msgid "Any"
+msgstr "Toutes"
+
+#: ../src/media-select.c:372 ../src/media-select.c:375
+#: ../src/media-select.c:902
+msgctxt "Category"
+msgid "Any"
+msgstr "Toutes"
+
+#: ../src/media-select.c:648
 #, c-format
-msgid "bad node in Data node =  \"%s\""
-msgstr "mauvais nœud de données = \"%s\""
-
-#: ../src/xml-label.c:1088 ../libglabels/xml-template.c:682
-msgid "Utf8 conversion error."
-msgstr "Erreur de conversion UTF8."
-
-# src/label.c:487
-# src/label.c:493
-# src/label.c:589
-# src/label.c:587
-#: ../src/xml-label.c:1095
-msgid "Problem saving xml file."
-msgstr "Problème de sauvegarde du fichier xml."
-
-# src/merge.c:80
-# src/merge.c:78
-#: ../src/merge.c:170 ../src/merge.c:211 ../src/merge.c:375 ../src/merge.c:378
+msgid "Delete template \"%s\"?"
+msgstr "Supprimer le modèle « %s » ?"
+
+#: ../src/media-select.c:650
+msgid "This action will permanently delete this template."
+msgstr "Cette action détruira définitivement ce modèle."
+
+#: ../src/media-select.c:990
+msgid "No recent templates found."
+msgstr "Aucun modèle récent trouvé."
+
+#: ../src/media-select.c:992
+msgid "Try selecting a template in the \"Search all\" tab."
+msgstr "Essayez de sélectionner un modèle dans l'onglet « Recherche globale »."
+
+#. Translators: "No match" means that for the given template search criteria, there
+#. * were no matches found.
+#: ../src/media-select.c:1083
+msgid "No match."
+msgstr "Aucune correspondance."
+
+#: ../src/media-select.c:1085
+msgid "Try selecting a different brand, page size or category."
+msgstr ""
+"Essayez de sélectionner une marque, une taille de page ou une catégorie "
+"différente."
+
+#: ../src/media-select.c:1179
+msgid "No custom templates found."
+msgstr "Aucun modèle personnalisé trouvé."
+
+#: ../src/media-select.c:1181
+msgid ""
+"You may create new templates or try searching for pre-defined templates in "
+"the \"Search all\" tab."
+msgstr ""
+"Vous pouvez créer de nouveaux modèles ou rechercher des modèles prédéfinis "
+"dans l'onglet « Recherche globale »."
+
+#. Translators: "None" here means that no document-merge source or
+#. * method has been selected.
+#: ../src/merge.c:171 ../src/merge.c:212 ../src/merge.c:376 ../src/merge.c:379
 msgid "None"
 msgstr "Aucun"
 
-# src/merge.c:98
-# src/merge.c:94
-#: ../src/merge-init.c:59
-msgid "Text file with comma delimeters (CSV)"
-msgstr "Texte séparé par des virgules (CSV)"
-
-# src/merge.c:107
-# src/merge.c:102
-#: ../src/merge-init.c:66
-msgid "Text file with colon delimeters"
-msgstr "Texte séparé par des deux-points"
-
-# src/merge.c:89
-# src/merge.c:86
-#: ../src/merge-init.c:73
-msgid "Text file with tab delimeters"
-msgstr "Texte avec séparateurs de tabulation"
-
-#: ../src/merge-init.c:82
-msgid "Data from default Evolution Addressbook"
-msgstr "Données du carnet d'adresses Evolution par défaut"
-
-#: ../src/merge-init.c:88
-msgid "Data from a file containing VCards"
-msgstr "Données d'un fichier de VCards"
-
-#: ../src/merge-evolution.c:309
-msgid "Couldn't construct query"
-msgstr "Impossible de construire la requête"
-
-# src/file.c:214
-# src/file.c:214
-# src/file.c:249
-# src/file.c:249
-# c-format
-#: ../src/merge-evolution.c:315 ../src/merge-evolution.c:326
-msgid "Couldn't open addressbook."
-msgstr "Impossible d'ouvrir le carnet d'adresses."
-
-# src/file.c:248 src/mdi.c:635
-# src/file.c:248 src/mdi.c:641
-# src/file.c:288 src/mdi.c:601
-# src/file.c:288 src/mdi.c:601
-#: ../src/merge-evolution.c:341
-msgid "Couldn't list available fields."
-msgstr "Impossible d'énumérer les champs disponibles."
-
-#: ../src/merge-evolution.c:377
-msgid "Couldn't get contacts."
-msgstr "Impossible d'obtenir les contacts."
-
-# src/print_copies.c:193
-# src/print_copies.c:193
-# src/print_copies.c:171
-# src/print_copies.c:170
-#: ../src/wdgt-print-copies.c:153
-msgid "Sheets:"
-msgstr "Feuilles :"
+#: ../src/merge-init.c:57
+msgid "Text: Comma Separated Values (CSV)"
+msgstr "Texte : valeurs séparées par des virgules (CSV)"
 
-# src/print_copies.c:213
-# src/print_copies.c:213
-# src/print_copies.c:191
-# src/print_copies.c:190
-#: ../src/wdgt-print-copies.c:173
-msgid "from:"
-msgstr "de :"
+#: ../src/merge-init.c:64
+msgid "Text: Comma Separated Values (CSV) with keys on line 1"
+msgstr ""
+"Texte : valeurs séparées par des virgules (CSV) avec en-têtes en première "
+"ligne"
 
-# src/print_copies.c:221
-# src/print_copies.c:221
-# src/print_copies.c:199
-# src/print_copies.c:198
-#: ../src/wdgt-print-copies.c:178
-msgid "to:"
-msgstr "à :"
+#: ../src/merge-init.c:72
+msgid "Text: Tab Separated Values (TSV)"
+msgstr "Texte : valeurs séparées par des tabulations (TSV)"
 
-# src/print_copies_merge.c:197
-# src/print_merge.c:170
-#: ../src/wdgt-print-merge.c:154
-msgid "Start on label"
-msgstr "Commencer par l'étiquette"
+#: ../src/merge-init.c:79
+msgid "Text: Tab Separated Values (TSV) with keys on line 1"
+msgstr ""
+"Texte : valeurs séparées par des tabulations (TSV) avec en-têtes en première "
+"ligne"
 
-# src/print_copies_merge.c:206
-# src/print_merge.c:179
-#: ../src/wdgt-print-merge.c:159
-msgid "on 1st sheet"
-msgstr "en 1ère page"
+#: ../src/merge-init.c:87
+msgid "Text: Colon separated values"
+msgstr "Texte : valeurs séparées par des deux-points"
 
-# src/print.c:153
-# src/print.c:153
-# src/print_copies_merge.c:173
-# src/print_merge.c:195
-#: ../src/wdgt-print-merge.c:168
-msgid "Copies:"
-msgstr "Copies :"
+#: ../src/merge-init.c:94
+msgid "Text: Colon separated values with keys on line 1"
+msgstr ""
+"Texte : valeurs séparées par des deux-points avec en-têtes en première ligne"
 
-# src/rotate_select.c:187
-# src/rotate_select.c:187
-# src/print_copies_merge.c:186
-# src/print_merge.c:188
-#: ../src/wdgt-print-merge.c:173
-msgid "Collate"
-msgstr "Assembler"
+#: ../src/merge-init.c:102
+msgid "Text: Semicolon separated values"
+msgstr "Texte : valeurs séparées par des points-virgules"
 
-#: ../src/wdgt-media-select.c:288 ../src/wdgt-media-select.c:292
-#: ../src/wdgt-media-select.c:297 ../src/wdgt-media-select.c:306
-#: ../src/wdgt-media-select.c:309 ../src/wdgt-media-select.c:402
-#: ../src/wdgt-media-select.c:609 ../src/wdgt-media-select.c:618
-msgid "Any"
-msgstr "Tous"
+#: ../src/merge-init.c:109
+msgid "Text: Semicolon separated values with keys on line 1"
+msgstr ""
+"Texte : valeurs séparées par des points-virgules avec en-têtes en première "
+"ligne"
 
-# src/media_select.c:515
-# src/media_select.c:481
-# src/media_select.c:353
-#: ../src/wdgt-media-select.c:643
-#, c-format
-msgid "%d per sheet"
-msgstr "%d par feuille"
+#: ../src/merge-init.c:119
+msgid "Evolution Addressbook"
+msgstr "Carnet d'adresses Evolution"
 
-# src/media_select.c:522
-# src/media_select.c:488
-# src/media_select.c:367
-#: ../src/wdgt-media-select.c:673
+#: ../src/merge-init.c:125
+msgid "VCards"
+msgstr "VCard"
+
+#: ../src/merge-properties-dialog.c:280
+msgid "Merge Properties"
+msgstr "Propriétés de la fusion"
+
+#: ../src/merge-properties-dialog.c:304 ../src/merge-properties-dialog.c:420
+msgid "Select merge-database source"
+msgstr "Sélection du fichier de données pour la fusion"
+
+#: ../src/merge-properties-dialog.c:315 ../src/merge-properties-dialog.c:446
+msgid "N/A"
+msgstr "Non défini"
+
+#: ../src/merge-properties-dialog.c:341
+msgid "Select"
+msgstr "Sélectionner"
+
+#: ../src/merge-properties-dialog.c:348
+msgid "Record/Field"
+msgstr "Enregistrements/Champs"
+
+#: ../src/merge-properties-dialog.c:356 ../data/ui/object-editor.ui.h:10
+msgid "Data"
+msgstr "Données"
+
+#. Translators: "Fixed" here means that for the given document-merge method, there are
+#. * no further choices to further define the source of data.  E.g. if you select the
+#. * evolution-data-server, there are no further choices -- the source is "Fixed."
+#.
+#: ../src/merge-properties-dialog.c:439
+msgid "Fixed"
+msgstr "fixé"
+
+#. Translators: "Up" refers to the direction towards the top of a label.
+#: ../src/mini-preview.c:1054
+msgid "Up"
+msgstr "Haut"
+
+#: ../src/new-label-dialog.c:203
+msgid "Select Product"
+msgstr "Sélection du produit"
+
+#: ../src/new-label-dialog.c:215
+msgid "Choose Orientation"
+msgstr "Choix de l'orientation"
+
+#: ../src/new-label-dialog.c:229
+msgid "Review"
+msgstr "Révision"
+
+#: ../src/object-editor-bc-page.c:97 ../src/object-editor-shadow-page.c:93
+#: ../src/object-editor-text-page.c:97 ../src/prefs-dialog.c:335
+#: ../src/ui-property-bar.c:277
+msgid "Default"
+msgstr "Par défaut"
+
+#: ../src/object-editor.c:161 ../src/object-editor.c:470
+msgid "Object properties"
+msgstr "Propriétés de l'objet"
+
+#: ../src/object-editor.c:314
+msgid "Box object properties"
+msgstr "Propriétés de l'objet boîte"
+
+#: ../src/object-editor.c:333
+msgid "Ellipse object properties"
+msgstr "Propriétés de l'objet ellipse"
+
+#: ../src/object-editor.c:352
+msgid "Line object properties"
+msgstr "Propriétés de l'objet ligne"
+
+#: ../src/object-editor.c:369
+msgid "Image object properties"
+msgstr "Propriétés de l'objet image"
+
+#: ../src/object-editor.c:386
+msgid "Text object properties"
+msgstr "Propriétés de l'objet texte"
+
+#: ../src/object-editor.c:408
+msgid "Barcode object properties"
+msgstr "Propriétés de l'objet code-barre"
+
+#: ../src/object-editor-edit-page.c:76
+msgid "Insert merge field"
+msgstr "Insérer un champ de fusion"
+
+#: ../src/object-editor-fill-page.c:79 ../src/prefs-dialog.c:341
+#: ../src/ui-property-bar.c:287
+msgid "No Fill"
+msgstr "Pas de remplissage"
+
+#: ../src/object-editor-image-page.c:302
+msgid "All Files"
+msgstr "Tous les fichiers"
+
+#: ../src/object-editor-image-page.c:307
+msgid "All Images"
+msgstr "Toutes les images"
+
+#: ../src/object-editor-image-page.c:323
 #, c-format
-msgid "%s x %s %s"
-msgstr "%s x %s %s"
+msgid "%s (*.%s)"
+msgstr "%s (*.%s)"
+
+#: ../src/object-editor-line-page.c:79 ../src/prefs-dialog.c:338
+#: ../src/ui-property-bar.c:297
+msgid "No Line"
+msgstr "Pas de ligne"
+
+#: ../src/object-editor-size-page.c:89
+msgid "Lock aspect ratio."
+msgstr "Verrouiller le rapport de dimensions."
+
+#: ../src/prefs-dialog.c:168 ../data/ui/prefs-dialog.ui.h:21
+msgid "gLabels Preferences"
+msgstr "Préférences de gLabels"
+
+#. TODO: Is this the actual part #?
+#: ../src/print-op.c:205 ../src/print-op-dialog.c:215
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:4
+#: ../templates/misc-iso-templates.xml.h:24
+msgid "Labels"
+msgstr "Étiquettes"
+
+#: ../src/template-designer.c:429
+msgid "New gLabels Template"
+msgstr "Nouveau modèle gLabels"
+
+#: ../src/template-designer.c:487
+msgid "Welcome"
+msgstr "Bienvenue"
+
+#: ../src/template-designer.c:526
+msgid "Name and Description"
+msgstr "Nom et description"
+
+#: ../src/template-designer.c:575
+msgid "Page Size"
+msgstr "Taille de page"
+
+#: ../src/template-designer.c:642
+msgid "Label or Card Shape"
+msgstr "Forme de carte ou d'étiquette"
+
+#: ../src/template-designer.c:689 ../src/template-designer.c:790
+msgid "Label or Card Size"
+msgstr "Taille de carte ou d'étiquette"
+
+#: ../src/template-designer.c:873
+msgid "Label Size (round)"
+msgstr "Taille d'étiquette (ronde)"
+
+#: ../src/template-designer.c:954
+msgid "Label Size (CD/DVD)"
+msgstr "Taille d'étiquette (CD/DVD)"
+
+#: ../src/template-designer.c:1045
+msgid "Number of Layouts"
+msgstr "Nombre de dispositions"
+
+#: ../src/template-designer.c:1113
+msgid "Layout(s)"
+msgstr "Disposition(s) :"
+
+#: ../src/template-designer.c:1218
+msgid "Design Completed"
+msgstr "Création terminée"
+
+# Window title
+#: ../src/template-designer.c:1246
+msgid "Edit gLabels Template"
+msgstr "Modifier un modèle gLabels"
+
+#: ../src/template-designer.c:1549
+msgid "Brand and part# match an existing template!"
+msgstr "La marque et le numéro d'article correspondent à un modèle existant."
+
+#. Menu entries.
+#: ../src/ui.c:91
+msgid "_File"
+msgstr "_Fichier"
+
+#: ../src/ui.c:92
+msgid "Open Recent _Files"
+msgstr "_Fichiers récents"
+
+#: ../src/ui.c:93
+msgid "_Edit"
+msgstr "É_dition"
+
+#: ../src/ui.c:94
+msgid "_View"
+msgstr "_Affichage"
+
+#: ../src/ui.c:95
+msgid "Customize Main Toolbar"
+msgstr "Personnaliser le barre d'outils principale"
+
+#: ../src/ui.c:96
+msgid "Customize Drawing Toolbar"
+msgstr "Personnaliser la barre d'outils dessin"
+
+#: ../src/ui.c:97
+msgid "Customize Properties Toolbar"
+msgstr "Personnaliser la barre d'outils des propriétés"
+
+#: ../src/ui.c:98
+msgid "_Objects"
+msgstr "_Objets"
+
+#: ../src/ui.c:99
+msgid "_Create"
+msgstr "_Créer"
+
+#: ../src/ui.c:100
+msgid "_Order"
+msgstr "_Ordre"
+
+#: ../src/ui.c:101
+msgid "_Rotate/Flip"
+msgstr "_Rotation/Retournement"
+
+#: ../src/ui.c:102
+msgid "_Alignment"
+msgstr "_Alignement"
+
+#: ../src/ui.c:103
+msgid "C_enter"
+msgstr "C_entrer"
+
+#: ../src/ui.c:104
+msgid "_Help"
+msgstr "Aid_e"
+
+#. Popup entries.
+#: ../src/ui.c:107 ../src/ui.c:108
+msgid "Context Menu"
+msgstr "Menu contextuel"
+
+#: ../src/ui.c:113
+msgid "_New"
+msgstr "_Nouveau"
+
+#: ../src/ui.c:115
+msgid "Create a new file"
+msgstr "Crée un nouveau document"
+
+#: ../src/ui.c:120
+msgid "_Open..."
+msgstr "_Ouvrir..."
+
+#: ../src/ui.c:122
+msgid "Open a file"
+msgstr "Ouvre un fichier"
+
+#: ../src/ui.c:127
+msgid "_Save"
+msgstr "_Enregistrer"
+
+#: ../src/ui.c:129
+msgid "Save current file"
+msgstr "Enregistrer le fichier en cours"
+
+#: ../src/ui.c:134
+msgid "Save _As..."
+msgstr "Enregistrer _sous..."
+
+#: ../src/ui.c:136
+msgid "Save the current file to a different name"
+msgstr "Enregistre le fichier en cours avec un nom différent"
+
+#: ../src/ui.c:141
+msgid "_Print..."
+msgstr "Im_primer..."
+
+#: ../src/ui.c:143
+msgid "Print the current file"
+msgstr "Imprime le fichier en cours"
+
+#: ../src/ui.c:148
+msgid "Properties..."
+msgstr "Propriétés..."
+
+#: ../src/ui.c:150
+msgid "Modify document properties"
+msgstr "Modifier les propriétés du document"
+
+#: ../src/ui.c:155
+msgid "Template _Designer..."
+msgstr "_Créateur de modèles..."
+
+#: ../src/ui.c:157
+msgid "Create a custom template"
+msgstr "Créer un modèle personnalisé"
+
+#: ../src/ui.c:162
+msgid "_Close"
+msgstr "_Fermer"
+
+#: ../src/ui.c:164
+msgid "Close the current file"
+msgstr "Ferme le fichier en cours"
+
+#: ../src/ui.c:169
+msgid "_Quit"
+msgstr "_Quitter"
+
+#: ../src/ui.c:171
+msgid "Quit the program"
+msgstr "Quitte le programme"
+
+#: ../src/ui.c:178 ../src/ui.c:180 ../src/ui.c:976
+msgid "Undo"
+msgstr "Annuler"
+
+#: ../src/ui.c:185 ../src/ui.c:187 ../src/ui.c:983
+msgid "Redo"
+msgstr "Rétablir"
+
+#: ../src/ui.c:192
+msgid "Cut"
+msgstr "Couper"
+
+#: ../src/ui.c:194
+msgid "Cut the selection"
+msgstr "Coupe la sélection"
+
+#: ../src/ui.c:199
+msgid "Copy"
+msgstr "Copier"
+
+#: ../src/ui.c:201
+msgid "Copy the selection"
+msgstr "Copie la sélection"
+
+#: ../src/ui.c:208
+msgid "Paste the clipboard"
+msgstr "Colle le presse-papiers"
+
+#: ../src/ui.c:215
+msgid "Delete the selected objects"
+msgstr "Supprime les objets sélectionnés"
+
+#: ../src/ui.c:220
+msgid "Select All"
+msgstr "Tout sélectionner"
+
+#: ../src/ui.c:222
+msgid "Select all objects"
+msgstr "Sélectionne tous les objets"
+
+#: ../src/ui.c:227
+msgid "Un-select All"
+msgstr "Désélectionner tout"
+
+#: ../src/ui.c:229
+msgid "Remove all selections"
+msgstr "Annule toutes les sélections"
+
+#: ../src/ui.c:234
+msgid "Preferences"
+msgstr "Préférences"
+
+#: ../src/ui.c:236
+msgid "Configure the application"
+msgstr "Configure le logiciel"
+
+#: ../src/ui.c:243
+msgid "Zoom in"
+msgstr "Zoom avant"
+
+#: ../src/ui.c:245
+msgid "Increase magnification"
+msgstr "Augmente la taille"
+
+#: ../src/ui.c:250
+msgid "Zoom out"
+msgstr "Zoom arrière"
+
+#: ../src/ui.c:252
+msgid "Decrease magnification"
+msgstr "Diminue la taille"
+
+#: ../src/ui.c:257
+msgid "Zoom 1 to 1"
+msgstr "Zoom 1:1"
+
+#: ../src/ui.c:259
+msgid "Restore scale to 100%"
+msgstr "Remet l'échelle à 100%"
+
+#: ../src/ui.c:264
+msgid "Zoom to fit"
+msgstr "Ajuster à la fenêtre"
+
+#: ../src/ui.c:266
+msgid "Set scale to fit window"
+msgstr "Adapte l'échelle à la taille de la fenêtre"
+
+#: ../src/ui.c:273
+msgid "Select Mode"
+msgstr "Mode sélection"
+
+#: ../src/ui.c:275
+msgid "Select, move and modify objects"
+msgstr "Sélectionne, déplace et modifie les objets"
+
+#: ../src/ui.c:280 ../src/view-text.c:94 ../data/ui/object-editor.ui.h:30
+#: ../data/ui/prefs-dialog.ui.h:17
+msgid "Text"
+msgstr "Texte"
+
+#: ../src/ui.c:287
+msgid "Box"
+msgstr "Boîte"
+
+#: ../src/ui.c:289
+msgid "Create box/rectangle object"
+msgstr "Crée un objet boîte/rectangle"
+
+#: ../src/ui.c:294 ../data/ui/object-editor.ui.h:19
+#: ../data/ui/prefs-dialog.ui.h:9
+msgid "Line"
+msgstr "Ligne"
+
+#: ../src/ui.c:301
+msgid "Ellipse"
+msgstr "Ellipse"
+
+#: ../src/ui.c:303
+msgid "Create ellipse/circle object"
+msgstr "Crée un objet ellipse/cercle"
+
+#: ../src/ui.c:308 ../data/ui/object-editor.ui.h:16
+msgid "Image"
+msgstr "Image"
+
+#: ../src/ui.c:315
+msgid "Barcode"
+msgstr "Code-barre"
+
+#: ../src/ui.c:324
+msgid "Raise object to top"
+msgstr "Place l'objet en avant-plan"
+
+#: ../src/ui.c:331
+msgid "Lower object to bottom"
+msgstr "Place l'objet en arrière-plan"
+
+#: ../src/ui.c:338
+msgid "Rotate object 90 degrees counter-clockwise"
+msgstr ""
+"Tourne l'objet de 90 degrés dans le sens inverse des aiguilles d'une montre"
+
+#: ../src/ui.c:345
+msgid "Rotate object 90 degrees clockwise"
+msgstr "Tourne l'objet de 90 degrés dans le sens des aiguilles d'une montre"
+
+#: ../src/ui.c:352
+msgid "Flip object horizontally"
+msgstr "Retourne l'objet horizontalement"
+
+#: ../src/ui.c:359
+msgid "Flip object vertically"
+msgstr "Retourne l'objet verticalement"
+
+#: ../src/ui.c:366
+msgid "Align objects to left edges"
+msgstr "Aligne les côtés gauches des objets"
+
+#: ../src/ui.c:371
+msgid "Align center"
+msgstr "Aligner au centre"
+
+#: ../src/ui.c:373
+msgid "Align objects to horizontal centers"
+msgstr "Aligne horizontalement les centres des objets"
+
+#: ../src/ui.c:380
+msgid "Align objects to right edges"
+msgstr "Aligne les côtés droits des objets"
+
+#: ../src/ui.c:385
+msgid "Align top"
+msgstr "Aligner au sommet"
+
+#: ../src/ui.c:387
+msgid "Align objects to top edges"
+msgstr "Aligne les sommets des objets"
+
+#: ../src/ui.c:392
+msgid "Align middle"
+msgstr "Aligner au milieu"
+
+#: ../src/ui.c:394
+msgid "Align objects to vertical centers"
+msgstr "Aligne verticalement les centres des objets"
+
+#: ../src/ui.c:399
+msgid "Align bottom"
+msgstr "Aligner à la base"
+
+#: ../src/ui.c:401
+msgid "Align objects to bottom edges"
+msgstr "Aligne les bases des objets"
+
+#: ../src/ui.c:408
+msgid "Center objects to horizontal label center"
+msgstr "Centre les objets sur la médiatrice horizontale de l'étiquette"
+
+#: ../src/ui.c:415
+msgid "Center objects to vertical label center"
+msgstr "Centre les objets sur le médiatrice verticale de l'étiquette"
+
+#: ../src/ui.c:422
+msgid "Edit merge properties"
+msgstr "Édite les propriétés de fusion"
+
+#: ../src/ui.c:429
+msgid "Contents"
+msgstr "Sommaire"
+
+#: ../src/ui.c:431
+msgid "Open glabels manual"
+msgstr "Ouvre le manuel de gLabels"
+
+#: ../src/ui.c:436
+msgid "About..."
+msgstr "À propos..."
+
+#: ../src/ui.c:438 ../src/ui-commands.c:1198
+msgid "About glabels"
+msgstr "À propos de gLabels"
+
+#: ../src/ui.c:448
+msgid "Property toolbar"
+msgstr "Barre d'outils des propriétés"
+
+#: ../src/ui.c:450
+msgid "Change the visibility of the property toolbar in the current window"
+msgstr ""
+"Afficher ou masquer la barre d'outils des propriétés dans la fenêtre actuelle"
+
+#: ../src/ui.c:456
+msgid "Grid"
+msgstr "Grille"
+
+#: ../src/ui.c:458
+msgid "Change the visibility of the grid in the current window"
+msgstr "Afficher ou masquer la grille dans la fenêtre actuelle"
+
+#: ../src/ui.c:464
+msgid "Markup"
+msgstr "Marges"
+
+#: ../src/ui.c:466
+msgid "Change the visibility of markup lines in the current window"
+msgstr "Afficher ou masquer les lignes des marges dans la fenêtre actuelle"
+
+#: ../src/ui.c:477
+msgid "Main toolbar"
+msgstr "Barre d'outils principale"
+
+#: ../src/ui.c:479
+msgid "Change the visibility of the main toolbar in the current window"
+msgstr ""
+"Afficher ou masquer la barre d'outils principale dans la fenêtre actuelle"
 
-# src/media_select.c:522
-# src/media_select.c:488
-# src/media_select.c:372
-#: ../src/wdgt-media-select.c:678
-#, c-format
-msgid "%.5g x %.5g %s"
-msgstr "%.5g x %.5g %s"
+#: ../src/ui.c:485
+msgid "Drawing toolbar"
+msgstr "Barre d'outils dessin"
 
-#: ../src/wdgt-media-select.c:689 ../src/wdgt-media-select.c:703
-#, c-format
-msgid "%s %s diameter"
-msgstr "%s %s diamètre"
+#: ../src/ui.c:487
+msgid "Change the visibility of the drawing toolbar in the current window"
+msgstr "Afficher ou masquer la barre d'outils dessin dans la fenêtre actuelle"
 
-#: ../src/wdgt-media-select.c:693 ../src/wdgt-media-select.c:707
-#, c-format
-msgid "%.5g %s diameter"
-msgstr "%.5g %s diamètre"
+#: ../src/ui-commands.c:1135
+msgid "Glabels includes contributions from:"
+msgstr "Ont également contribué à Glabels :"
 
-#: ../src/wdgt-media-select.c:781
-msgid "No recent templates found."
-msgstr "Aucun modèle récent trouvé."
+#: ../src/ui-commands.c:1144
+msgid "See the file AUTHORS for additional credits,"
+msgstr ""
+"Voir le fichier AUTHORS pour les remerciements aux autres contributeurs,"
 
-#: ../src/wdgt-media-select.c:782
-msgid "Try selecting a template from the \"Search all templates\" page."
-msgstr "Essayez de sélectionner un modèle dans l'onglet « Tous les modèles »."
+#: ../src/ui-commands.c:1145
+msgid "or visit http://glabels.org/"
+msgstr "ou visitez http://glabels.org/"
 
-#: ../src/wdgt-media-select.c:861
-msgid "No match."
-msgstr "Aucune correspondance."
+#: ../src/ui-commands.c:1162
+msgid "A label and business card creation program.\n"
+msgstr "Un logiciel de création de cartes de visite et d'étiquettes.\n"
 
-#: ../src/wdgt-media-select.c:862
-msgid "Try selecting a different brand, page size or category."
+#: ../src/ui-commands.c:1166
+msgid "translator-credits"
 msgstr ""
-"Essayez de sélectionner une marque, une taille de page ou une catégorie "
-"différente."
+"Olivier Berger <oberger@gnu.org>\n"
+"Florent Morel <florent@taket.org>, 2001, 2004\n"
+"Claude Paroz <claude@2xlibre.net>, 2007-2010\n"
+"Gérard Baylard <gerard.b@bbox.fr>, 2010"
 
-# src/merge_ui_text.c:334
-# src/merge_ui_text.c:334
-#. This is the default custom color
-#: ../src/mygal/color-palette.c:389
-msgid "custom"
-msgstr "personnalisé"
-
-# src/prop_bc.c:204 src/prop_fill.c:186 src/prop_line.c:203
-# src/prop_text.c:263
-# src/prop_bc.c:210 src/prop_fill.c:184 src/prop_line.c:209
-# src/prop_text.c:247
-# src/prop_bc.c:188 src/prop_fill.c:166 src/prop_line.c:189
-# src/prop_text.c:234
-# src/prop_bc.c:188 src/prop_fill.c:166 src/prop_line.c:189
-# src/prop_text.c:234
-#. "Custom" color - we'll pop up a GtkColorButton
-#: ../src/mygal/color-palette.c:431
-msgid "Custom Color:"
-msgstr "Couleur personnalisée :"
-
-#: ../src/mygal/color-palette.c:439
-msgid "Choose Custom Color"
-msgstr "Choisir une couleur personnalisée"
-
-#: ../src/mygal/color-palette.c:572
-msgid "black"
-msgstr "noir"
-
-#: ../src/mygal/color-palette.c:573
-msgid "light brown"
-msgstr "brun clair"
-
-#: ../src/mygal/color-palette.c:574
-msgid "brown gold"
-msgstr "brun jaune"
-
-#: ../src/mygal/color-palette.c:575
-msgid "dark green #2"
-msgstr "vert foncé n°2"
-
-#: ../src/mygal/color-palette.c:576
-msgid "navy"
-msgstr "bleu marine"
-
-#: ../src/mygal/color-palette.c:577 ../src/mygal/color-palette.c:633
-msgid "dark blue"
-msgstr "bleu foncé"
-
-#: ../src/mygal/color-palette.c:578
-msgid "purple #2"
-msgstr "violet n°2"
-
-#: ../src/mygal/color-palette.c:579
-msgid "very dark gray"
-msgstr "gris très foncé"
-
-#: ../src/mygal/color-palette.c:582 ../src/mygal/color-palette.c:638
-msgid "dark red"
-msgstr "rouge foncé"
-
-#: ../src/mygal/color-palette.c:583
-msgid "red-orange"
-msgstr "rouge orange"
-
-#: ../src/mygal/color-palette.c:584
-msgid "gold"
-msgstr "or"
-
-#: ../src/mygal/color-palette.c:585
-msgid "dark green"
-msgstr "vert foncé"
-
-#: ../src/mygal/color-palette.c:586 ../src/mygal/color-palette.c:639
-msgid "dull blue"
-msgstr "bleu pâle"
-
-#: ../src/mygal/color-palette.c:587 ../src/mygal/color-palette.c:640
-msgid "blue"
-msgstr "bleu"
-
-#: ../src/mygal/color-palette.c:588
-msgid "dull purple"
-msgstr "violet pâle"
-
-#: ../src/mygal/color-palette.c:589
-msgid "dark grey"
-msgstr "gris foncé"
-
-#: ../src/mygal/color-palette.c:592
-msgid "red"
-msgstr "rouge"
-
-#: ../src/mygal/color-palette.c:593
-msgid "orange"
-msgstr "orange"
-
-#: ../src/mygal/color-palette.c:594
-msgid "lime"
-msgstr "tilleul"
-
-#: ../src/mygal/color-palette.c:595
-msgid "dull green"
-msgstr "vert pâle"
-
-#: ../src/mygal/color-palette.c:596
-msgid "dull blue #2"
-msgstr "bleu pâle n°2"
-
-#: ../src/mygal/color-palette.c:597
-msgid "sky blue #2"
-msgstr "bleu ciel n°2"
-
-#: ../src/mygal/color-palette.c:598 ../src/mygal/color-palette.c:637
-msgid "purple"
-msgstr "violet"
-
-#: ../src/mygal/color-palette.c:599
-msgid "gray"
-msgstr "gris"
-
-# src/item_image.c:283
-# src/item_image.c:283
-# src/item_image.c:268 src/menu.c:113
-# src/item_image.c:268 src/menu.c:113
-#: ../src/mygal/color-palette.c:602 ../src/mygal/color-palette.c:634
-msgid "magenta"
-msgstr "magenta"
-
-#: ../src/mygal/color-palette.c:603
-msgid "bright orange"
-msgstr "orange vif"
-
-#: ../src/mygal/color-palette.c:604 ../src/mygal/color-palette.c:635
-msgid "yellow"
-msgstr "jaune"
-
-# src/prop_vector.c:245
-# src/prop_vector.c:224
-# src/prop_vector.c:224
-#: ../src/mygal/color-palette.c:605
-msgid "green"
-msgstr "vert"
-
-#: ../src/mygal/color-palette.c:606 ../src/mygal/color-palette.c:636
-msgid "cyan"
-msgstr "cyan"
-
-#: ../src/mygal/color-palette.c:607
-msgid "bright blue"
-msgstr "bleu vif"
-
-#: ../src/mygal/color-palette.c:608 ../src/mygal/color-palette.c:625
-msgid "red purple"
-msgstr "rouge violet"
-
-#: ../src/mygal/color-palette.c:609
-msgid "light grey"
-msgstr "gris clair"
-
-#: ../src/mygal/color-palette.c:612 ../src/mygal/color-palette.c:629
-msgid "pink"
-msgstr "rose"
-
-#: ../src/mygal/color-palette.c:613
-msgid "light orange"
-msgstr "orange clair"
-
-#: ../src/mygal/color-palette.c:614 ../src/mygal/color-palette.c:626
-msgid "light yellow"
-msgstr "jaune clair"
-
-#: ../src/mygal/color-palette.c:615
-msgid "light green"
-msgstr "vert clair"
-
-#: ../src/mygal/color-palette.c:616
-msgid "light cyan"
-msgstr "cyan clair"
-
-#: ../src/mygal/color-palette.c:617 ../src/mygal/color-palette.c:627
-msgid "light blue"
-msgstr "bleu clair"
-
-#: ../src/mygal/color-palette.c:618 ../src/mygal/color-palette.c:631
-msgid "light purple"
-msgstr "violet clair"
-
-#: ../src/mygal/color-palette.c:619
-msgid "white"
-msgstr "blanc"
-
-#: ../src/mygal/color-palette.c:624
-msgid "purplish blue"
-msgstr "bleu violacé"
-
-#: ../src/mygal/color-palette.c:628
-msgid "dark purple"
-msgstr "violet foncé"
-
-#: ../src/mygal/color-palette.c:630
-msgid "sky blue"
-msgstr "bleu ciel"
-
-#: ../src/critical-error-handler.c:73
-msgid "gLabels Fatal Error!"
-msgstr "Erreur fatale de gLabels !"
+#: ../src/ui-commands.c:1169
+msgid ""
+"gLabels is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"gLabels is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"gLabels est un logiciel libre : vous pouvez le redistribuer et/ou le "
+"modifier\n"
+"conformément aux dispositions de la Licence Publique Générale GNU, telle "
+"que\n"
+"publiée par la Free Software Foundation, soit la version 3 de la licence, \n"
+"soit encore (à votre choix) toute version ultérieure.\n"
+"\n"
+"Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE\n"
+"GARANTIE ; sans même la garantie implicite d'une QUALITÉ LOYALE ET MARCHANDE "
+"ou\n"
+"de CONFORMITÉ À UNE UTILISATION PARTICULIÈRE. Pour plus de détails, \n"
+"voir la Licence Publique Générale GNU.\n"
 
-# src/preferences.c:92
-# src/prefs.c:101
-# src/prefs.c:92
-# src/prefs.c:86
-#: ../src/warning-handler.c:73
+#: ../src/warning-handler.c:69
 msgid "gLabels Error!"
 msgstr "Erreur de gLabels !"
 
+#: ../src/window.c:281
+msgid "(none) - gLabels"
+msgstr "(vide) - gLabels"
+
+#: ../src/window.c:482
+msgid "(modified)"
+msgstr "(modifié)"
+
 #. Create and append an "Other" entry.
-#: ../libglabels/db.c:118
+#. Translators: "Other" here means other page size.  Meaning a page size
+#. * other than the standard ones that libglabels knows about such as
+#. * "letter", "A4", etc.
+#: ../libglabels/lgl-db.c:267
 msgid "Other"
 msgstr "Autre"
 
-# src/prop_text_entry.c:196
-# src/prop_text_entry.c:196
 #. Create and append a "User defined" entry.
-#: ../libglabels/db.c:131
+#: ../libglabels/lgl-db.c:276
 msgid "User defined"
 msgstr "Défini par l'utilisateur"
 
-#: ../libglabels/db.c:482
+#: ../libglabels/lgl-db.c:663
 msgid ""
 "Unable to locate paper size definitions.  Libglabels may not be installed "
 "correctly!"
 msgstr ""
-"Impossible de trouver les définitions de tailles de papier. Il se peut que "
-"Libglabels ne soit pas correctement installé."
+"Impossible de trouver les définitions des tailles de papier. Libglabels "
+"n'est peut-être pas correctement installé !"
 
-#: ../libglabels/db.c:875
+#: ../libglabels/lgl-db.c:1062
 msgid ""
 "Unable to locate category definitions.  Libglabels may not be installed "
 "correctly!"
 msgstr ""
-"Impossible de trouver les définitions de catégorie. Il se peut que "
-"Libglabels ne soit pas correctement installé."
+"Impossible de trouver les définitions des catégories. Libglabels n'est peut-"
+"être pas correctement installé !"
 
-#: ../libglabels/db.c:1461
+#: ../libglabels/lgl-db.c:1989
 msgid ""
 "Unable to locate any template files.  Libglabels may not be installed "
 "correctly!"
 msgstr ""
-"Impossible de trouver les fichiers modèles. Il se peut que Libglabels ne "
-"soit pas correctement installé."
+"Impossible de trouver les fichiers modèles. Libglabels n'est peut-être pas "
+"correctement installé !"
 
-#: ../libglabels/db.c:1538
+#: ../libglabels/lgl-db.c:2056
 #, c-format
-msgid "Generic %s full page template"
-msgstr "Modèle générique de page entière %s"
-
-#: ../libglabels/xml-template.c:227
-msgid "Missing name or brand/part attributes."
-msgstr "Attribut nom ou marque manquant."
+msgid "%s full page label"
+msgstr "Étiquette pleine page %s"
 
-#. This should always be an id, but just in case a name
-#. slips by!
-#: ../libglabels/xml-template.c:244
+#.
+#. * Translators: 1st %d = number of labels across a page,
+#. *              2nd %d = number of labels down a page,
+#. *              3rd %d = total number of labels on a page (sheet).
+#.
+#: ../libglabels/lgl-template.c:673
 #, c-format
-msgid "Unknown page size id \"%s\", trying as name"
-msgstr "Identifiant de taille de papier « %s » inconnu, essai avec le nom"
+msgid "%d × %d (%d per sheet)"
+msgstr "%d × %d (%d par page)"
 
-#: ../libglabels/xml-template.c:256
+#. Translators: %d is the total number of labels on a page (sheet).
+#: ../libglabels/lgl-template.c:678
 #, c-format
-msgid "Unknown page size id or name \"%s\""
-msgstr "Identifiant ou nom de taille de papier « %s » inconnu"
+msgid "%d per sheet"
+msgstr "%d par page"
+
+#: ../libglabels/lgl-template.c:759 ../libglabels/lgl-template.c:767
+#: ../libglabels/lgl-template.c:779 ../libglabels/lgl-template.c:787
+msgid "diameter"
+msgstr "diamètre"
+
+#. The ids are identical to the absolute length units supported in
+#. the CSS2 Specification (Section 4.3.2)
+#. This table must be sorted exactly as the enumerations in lglUnits
+#. [LGL_UNITS_POINT]
+#: ../libglabels/lgl-units.c:65 ../data/ui/object-editor.ui.h:42
+#: ../data/ui/prefs-dialog.ui.h:22
+msgid "points"
+msgstr "points"
 
-#: ../libglabels/xml-template.c:627
-msgid ""
-"Missing required \"brand\" or \"part\" attribute, trying deprecated name."
-msgstr ""
-"Attribut « brand » (marque) ou « part » (article) manquant, essai avec un "
-"ancien nom."
-
-#: ../libglabels/xml-template.c:637
-msgid "Name attribute also missing."
-msgstr "L'attribut nom manque également."
-
-#: ../data/glade/merge-properties-dialog.glade.h:1
-msgid "<b>Record selection/preview</b>"
-msgstr "<b>Sélection/Aperçu des enregistrements</b>"
-
-# src/merge_properties.c:131
-# src/merge_properties.c:131
-#: ../data/glade/merge-properties-dialog.glade.h:2
-msgid "<b>Source</b>"
-msgstr "<b>Source</b>"
-
-# src/prop_text.c:214
-# src/prop_text.c:199
-# src/merge_properties.c:143
-# src/merge_properties.c:143
-#: ../data/glade/merge-properties-dialog.glade.h:3
+#. [LGL_UNITS_INCH]
+#: ../libglabels/lgl-units.c:66 ../data/ui/object-editor.ui.h:40
+#: ../data/ui/template-designer.ui.h:66
+msgid "inches"
+msgstr "pouces"
+
+#. [LGL_UNITS_MM]
+#: ../libglabels/lgl-units.c:67
+msgid "mm"
+msgstr "mm"
+
+#. [LGL_UNITS_CM]
+#: ../libglabels/lgl-units.c:68
+msgid "cm"
+msgstr "cm"
+
+#. [LGL_UNITS_PICA]
+#: ../libglabels/lgl-units.c:69
+msgid "picas"
+msgstr "picas"
+
+#.
+#. * Local Variables:       -- emacs
+#. * mode: C                -- emacs
+#. * c-basic-offset: 8      -- emacs
+#. * tab-width: 8           -- emacs
+#. * indent-tabs-mode: nil  -- emacs
+#. * End:                   -- emacs
+#.
+#: ../data/ui/merge-properties-dialog.ui.h:1
 msgid "Format:"
 msgstr "Format :"
 
-# src/merge_properties.c:158
-# src/merge_properties.c:158
-#: ../data/glade/merge-properties-dialog.glade.h:4
+#: ../data/ui/merge-properties-dialog.ui.h:2
 msgid "Location:"
 msgstr "Emplacement :"
 
-# src/menu.c:86
-# src/menu.c:86
-# src/menu.c:85
-# src/menu.c:85
-#: ../data/glade/merge-properties-dialog.glade.h:5
+#: ../data/ui/merge-properties-dialog.ui.h:3
+msgid "Record selection/preview"
+msgstr "Sélection/aperçu des enregistrements"
+
+#: ../data/ui/merge-properties-dialog.ui.h:4
 msgid "Select all"
 msgstr "Tout sélectionner"
 
-# src/menu.c:86
-# src/menu.c:86
-# src/menu.c:85
-# src/menu.c:85
-#: ../data/glade/merge-properties-dialog.glade.h:6
+#: ../data/ui/merge-properties-dialog.ui.h:5
+msgid "Source"
+msgstr "Source"
+
+#: ../data/ui/merge-properties-dialog.ui.h:6
 msgid "Unselect all"
 msgstr "Désélectionner tout"
 
-#: ../data/glade/merge-properties-dialog.glade.h:7
-#: ../data/glade/object-editor.glade.h:39
-msgid "dialog1"
-msgstr "dialog1"
+#: ../data/ui/media-select.ui.h:1
+msgid "Brand:"
+msgstr "Marque :"
+
+#: ../data/ui/media-select.ui.h:2
+msgid "Category:"
+msgstr "Catégorie :"
+
+#: ../data/ui/media-select.ui.h:3
+msgid "Custom"
+msgstr "Personnalisé"
+
+#: ../data/ui/media-select.ui.h:4 ../data/ui/new-label-dialog.ui.h:6
+#: ../data/ui/template-designer.ui.h:46
+msgid "Page size:"
+msgstr "Taille de page :"
 
-# src/file.c:98
-# src/file.c:98
-# src/file.c:109
-# src/file.c:109
-#: ../data/glade/new-label-dialog.glade.h:1
-msgid "<b>Label orientation</b>"
-msgstr "<b>Orientation de l'étiquette</b>"
-
-# src/file.c:87
-# src/file.c:87
-# src/file.c:98
-# src/file.c:98
-#: ../data/glade/new-label-dialog.glade.h:2
-msgid "<b>Media type</b>"
-msgstr "<b>Type de média</b>"
-
-# src/prop_bc.c:202
-# src/prop_bc.c:182
-# src/prop_bc.c:182
-#: ../data/glade/object-editor.glade.h:2
+#: ../data/ui/media-select.ui.h:5
+msgid "Recent"
+msgstr "Utilisation récente"
+
+#: ../data/ui/media-select.ui.h:6
+msgid "Search all"
+msgstr "Recherche globale"
+
+#: ../data/ui/new-label-dialog.ui.h:1
+msgid ""
+"Choose label or card product from hundreds of predefined templates or define "
+"your own."
+msgstr ""
+"Choisissez un produit carte ou étiquette parmi des centaines de modèles "
+"prédéfinis ou définissez votre propre modèle."
+
+#: ../data/ui/new-label-dialog.ui.h:2 ../data/ui/template-designer.ui.h:29
+msgid "Description:"
+msgstr "Description :"
+
+#: ../data/ui/new-label-dialog.ui.h:3
+msgid "Label size:"
+msgstr "Taille d'étiquette :"
+
+#: ../data/ui/new-label-dialog.ui.h:4
+msgid "Layout:"
+msgstr "Disposition :"
+
+#: ../data/ui/new-label-dialog.ui.h:5
+msgid "Normal"
+msgstr "Normal"
+
+#: ../data/ui/new-label-dialog.ui.h:7 ../data/ui/template-designer.ui.h:47
+msgid "Part #:"
+msgstr "N° Ref :"
+
+#: ../data/ui/new-label-dialog.ui.h:8
+msgid "Please review and confirm your selection."
+msgstr "Veuillez vérifier et confirmer votre choix."
+
+#: ../data/ui/new-label-dialog.ui.h:9
+msgid "Rotated"
+msgstr "Pivoté"
+
+#: ../data/ui/new-label-dialog.ui.h:10
+msgid "Select orientation of label content."
+msgstr "Choisissez l'orientation du contenu de l'étiquette."
+
+#: ../data/ui/new-label-dialog.ui.h:11
+msgid "Similar products:"
+msgstr "Produits semblables :"
+
+#: ../data/ui/new-label-dialog.ui.h:12
+msgid "Vendor:"
+msgstr "Fabricant :"
+
+#: ../data/ui/object-editor.ui.h:1
+msgid " "
+msgstr " "
+
+#: ../data/ui/object-editor.ui.h:3
 #, no-c-format
 msgid "%"
 msgstr "%"
 
-#: ../data/glade/object-editor.glade.h:3
-msgid "00000000000 00000"
-msgstr "00000000000 00000"
-
-#: ../data/glade/object-editor.glade.h:4
-msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
-msgstr "<span weight=\"bold\" size=\"larger\">Xxx Propriétés de l'objet</span>"
-
-# src/prop_text.c:277
-# src/prop_text.c:264
-# src/prop_text.c:248
-# src/prop_text.c:248
-#: ../data/glade/object-editor.glade.h:5 ../data/glade/prefs-dialog.glade.h:7
+#: ../data/ui/object-editor.ui.h:4 ../data/ui/prefs-dialog.ui.h:2
 msgid "Alignment:"
 msgstr "Alignement :"
 
-#: ../data/glade/object-editor.glade.h:6
+#: ../data/ui/object-editor.ui.h:5
 msgid "Allow merge to automatically shrink text"
-msgstr "Permettre à la fusion de diminuer automatiquement la taille du texte"
+msgstr ""
+"Autoriser une diminution automatique de la taille du texte lors de la fusion"
 
-# src/prop_vector.c:207
-# src/prop_vector.c:228
-# src/prop_vector.c:207
-# src/prop_vector.c:207
-#: ../data/glade/object-editor.glade.h:7
+#: ../data/ui/object-editor.ui.h:6
 msgid "Angle:"
 msgstr "Angle :"
 
-#: ../data/glade/object-editor.glade.h:8
+#: ../data/ui/object-editor.ui.h:7
+msgid "Backend:"
+msgstr "Arrière-plan :"
+
+#: ../data/ui/object-editor.ui.h:8
 msgid "Checksum"
 msgstr "Somme de contrôle"
 
-# src/prop_bc.c:204 src/prop_fill.c:186 src/prop_line.c:203
-# src/prop_text.c:263
-# src/prop_bc.c:210 src/prop_fill.c:184 src/prop_line.c:209
-# src/prop_text.c:247
-# src/prop_bc.c:188 src/prop_fill.c:166 src/prop_line.c:189
-# src/prop_text.c:234
-# src/prop_bc.c:188 src/prop_fill.c:166 src/prop_line.c:189
-# src/prop_text.c:234
-#: ../data/glade/object-editor.glade.h:9 ../data/glade/prefs-dialog.glade.h:8
+#: ../data/ui/object-editor.ui.h:9 ../data/ui/prefs-dialog.ui.h:3
 msgid "Color:"
 msgstr "Couleur :"
 
-#: ../data/glade/object-editor.glade.h:11
+#: ../data/ui/object-editor.ui.h:11
 msgid "Enable shadow"
 msgstr "Activer l'ombrage"
 
-# src/item_box.c:274 src/item_ellipse.c:279
-# src/item_box.c:274 src/item_ellipse.c:279
-# src/item_box.c:258 src/item_ellipse.c:260
-# src/item_box.c:258 src/item_ellipse.c:260
-#: ../data/glade/object-editor.glade.h:12
+#: ../data/ui/object-editor.ui.h:12
 msgid "Family:"
 msgstr "Famille :"
 
-# src/item_box.c:274 src/item_ellipse.c:279
-# src/item_box.c:274 src/item_ellipse.c:279
-# src/item_box.c:258 src/item_ellipse.c:260
-# src/item_box.c:258 src/item_ellipse.c:260
-#: ../data/glade/object-editor.glade.h:13
+#: ../data/ui/object-editor.ui.h:13
 msgid "File:"
 msgstr "Fichier :"
 
-# src/item_box.c:274 src/item_ellipse.c:279
-# src/item_box.c:274 src/item_ellipse.c:279
-# src/item_box.c:258 src/item_ellipse.c:260
-# src/item_box.c:258 src/item_ellipse.c:260
-#: ../data/glade/object-editor.glade.h:14
+#: ../data/ui/object-editor.ui.h:14 ../data/ui/prefs-dialog.ui.h:5
 msgid "Fill"
 msgstr "Remplissage"
 
-# src/prop_size.c:220
-# src/prop_size.c:198
-# src/prop_size.c:198
-#: ../data/glade/object-editor.glade.h:15
-#: ../data/glade/template-designer.glade.h:30
+#: ../data/ui/object-editor.ui.h:15 ../data/ui/template-designer.ui.h:33
 msgid "Height:"
 msgstr "Hauteur :"
 
-# src/prop_text_entry.c:196
-# src/prop_text_entry.c:196
-#: ../data/glade/object-editor.glade.h:17
-msgid "Insert merge field"
-msgstr "Insérer un champ de fusion"
-
-# src/prop_bc_data.c:196 src/prop_text_entry.c:180
-# src/prop_bc_data.c:196 src/prop_text_entry.c:180
-#: ../data/glade/object-editor.glade.h:18
+#: ../data/ui/object-editor.ui.h:17
 msgid "Key:"
 msgstr "Clé :"
 
-# src/prop_vector.c:196
-# src/prop_vector.c:202
-# src/prop_vector.c:183
-# src/prop_vector.c:183
-#: ../data/glade/object-editor.glade.h:19
+#: ../data/ui/object-editor.ui.h:18
 msgid "Length:"
 msgstr "Longueur :"
 
-#: ../data/glade/object-editor.glade.h:21
-#: ../data/glade/prefs-dialog.glade.h:12
+#: ../data/ui/object-editor.ui.h:20 ../data/ui/prefs-dialog.ui.h:10
 msgid "Line Spacing:"
 msgstr "Espacement :"
 
-# src/prop_bc_data.c:176
-# src/prop_bc_data.c:176
-#: ../data/glade/object-editor.glade.h:22
+#: ../data/ui/object-editor.ui.h:21
 msgid "Literal:"
 msgstr "Littéral :"
 
-#: ../data/glade/object-editor.glade.h:23
+#: ../data/ui/object-editor.ui.h:22
 msgid "Opacity:"
 msgstr "Opacité :"
 
-# src/item_barcode.c:362 src/item_barcode.c:365 src/item_box.c:291
-# src/item_ellipse.c:296 src/item_image.c:315 src/item_line.c:289
-# src/item_text.c:487 src/item_text.c:490
-# src/item_barcode.c:368 src/item_barcode.c:371 src/item_box.c:291
-# src/item_ellipse.c:296 src/item_image.c:315 src/item_line.c:289
-# src/item_text.c:487 src/item_text.c:490
-# src/item_barcode.c:345 src/item_barcode.c:348 src/item_box.c:275
-# src/item_ellipse.c:277 src/item_image.c:318 src/item_line.c:274
-# src/item_text.c:500 src/item_text.c:503
-# src/item_barcode.c:345 src/item_barcode.c:348 src/item_box.c:275
-# src/item_ellipse.c:277 src/item_image.c:318 src/item_line.c:274
-# src/item_text.c:500 src/item_text.c:503
-#: ../data/glade/object-editor.glade.h:24
+#: ../data/ui/object-editor.ui.h:23
 msgid "Position"
 msgstr "Position"
 
-# src/item_image.c:341
-# src/item_image.c:340
-# src/item_image.c:342
-# src/item_image.c:342
-#: ../data/glade/object-editor.glade.h:25
+#: ../data/ui/object-editor.ui.h:24
 msgid "Reset image size"
 msgstr "Restaurer la taille d'image"
 
-# src/menu.c:86
-# src/menu.c:86
-# src/menu.c:85
-# src/menu.c:85
-#: ../data/glade/object-editor.glade.h:26
-msgid "Select A File"
-msgstr "Sélectionner un fichier"
-
-#: ../data/glade/object-editor.glade.h:27
+#: ../data/ui/object-editor.ui.h:25
 msgid "Shadow"
 msgstr "Ombre"
 
-# src/item_box.c:302 src/item_ellipse.c:307 src/item_image.c:326
-# src/item_line.c:300
-# src/item_box.c:302 src/item_ellipse.c:307 src/item_image.c:326
-# src/item_line.c:300
-# src/item_box.c:286 src/item_ellipse.c:288 src/item_image.c:329
-# src/item_line.c:285
-# src/item_box.c:286 src/item_ellipse.c:288 src/item_image.c:329
-# src/item_line.c:285
-#: ../data/glade/object-editor.glade.h:28
+#: ../data/ui/object-editor.ui.h:26
 msgid "Size"
 msgstr "Taille"
 
-# src/item_box.c:302 src/item_ellipse.c:307 src/item_image.c:326
-# src/item_line.c:300
-# src/item_box.c:302 src/item_ellipse.c:307 src/item_image.c:326
-# src/item_line.c:300
-# src/item_box.c:286 src/item_ellipse.c:288 src/item_image.c:329
-# src/item_line.c:285
-# src/item_box.c:286 src/item_ellipse.c:288 src/item_image.c:329
-# src/item_line.c:285
-#: ../data/glade/object-editor.glade.h:29
+#: ../data/ui/object-editor.ui.h:27
 msgid "Size:"
 msgstr "Taille :"
 
-# src/item_barcode.c:347
-# src/item_barcode.c:353
-# src/item_barcode.c:330
-# src/item_barcode.c:330
-#: ../data/glade/object-editor.glade.h:30
+#: ../data/ui/object-editor.ui.h:28
 msgid "Style"
 msgstr "Style"
 
-# src/item_barcode.c:347
-# src/item_barcode.c:353
-# src/item_barcode.c:330
-# src/item_barcode.c:330
-#: ../data/glade/object-editor.glade.h:31
+#: ../data/ui/object-editor.ui.h:29
 msgid "Style:"
 msgstr "Style :"
 
-# src/prop_line.c:188
-# src/prop_line.c:187 src/prop_size.c:202
-# src/prop_line.c:169 src/prop_size.c:182
-# src/prop_line.c:169 src/prop_size.c:182
-#: ../data/glade/object-editor.glade.h:33
-#: ../data/glade/prefs-dialog.glade.h:20
-#: ../data/glade/template-designer.glade.h:61
+#: ../data/ui/object-editor.ui.h:31 ../data/ui/prefs-dialog.ui.h:20
+#: ../data/ui/template-designer.ui.h:65
 msgid "Width:"
 msgstr "Largeur :"
 
-#: ../data/glade/object-editor.glade.h:34
+#: ../data/ui/object-editor.ui.h:32
 msgid "X Offset:"
 msgstr "Décalage X :"
 
-# src/prop_position.c:192
-# src/prop_position.c:173
-# src/prop_position.c:173
-#: ../data/glade/object-editor.glade.h:35
+#: ../data/ui/object-editor.ui.h:33
 msgid "X:"
 msgstr "X :"
 
-#: ../data/glade/object-editor.glade.h:36
+#: ../data/ui/object-editor.ui.h:34
 msgid "Y Offset:"
 msgstr "Décalage Y :"
 
-# src/prop_position.c:212
-# src/prop_position.c:191
-# src/prop_position.c:191
-#: ../data/glade/object-editor.glade.h:37
+#: ../data/ui/object-editor.ui.h:35
 msgid "Y:"
 msgstr "Y :"
 
-# src/prop_vector.c:245
-# src/prop_vector.c:224
-# src/prop_vector.c:224
-#: ../data/glade/object-editor.glade.h:38
+#: ../data/ui/object-editor.ui.h:36
 msgid "degrees"
 msgstr "degrés"
 
-#: ../data/glade/object-editor.glade.h:40
+#: ../data/ui/object-editor.ui.h:37
+msgid "dialog1"
+msgstr "dialog1"
+
+#: ../data/ui/object-editor.ui.h:38
 msgid "digits:"
 msgstr "chiffres :"
 
-# src/prop_text.c:214
-# src/prop_text.c:199
-# src/merge_properties.c:143
-# src/merge_properties.c:143
-#: ../data/glade/object-editor.glade.h:41
+#: ../data/ui/object-editor.ui.h:39
 msgid "format:"
 msgstr "format :"
 
-#: ../data/glade/prefs-dialog.glade.h:1
+#: ../data/ui/object-editor.ui.h:41
+msgid "key:"
+msgstr "clé :"
+
+#: ../data/ui/prefs-dialog.ui.h:1
 msgid "   "
 msgstr "   "
 
-#: ../data/glade/prefs-dialog.glade.h:2
-msgid "<span weight=\"bold\">Default page size</span>"
-msgstr "<span weight=\"bold\">Taille de page par défaut</span>"
+#: ../data/ui/prefs-dialog.ui.h:4
+msgid "Default page size"
+msgstr "Taille de page par défaut"
 
-#: ../data/glade/prefs-dialog.glade.h:3
-msgid "<span weight=\"bold\">Fill</span>"
-msgstr "<span weight=\"bold\">Remplissage</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:4
-msgid "<span weight=\"bold\">Line</span>"
-msgstr "<span weight=\"bold\">Ligne</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:5
-msgid "<span weight=\"bold\">Text</span>"
-msgstr "<span weight=\"bold\">Texte</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:6
-msgid "<span weight=\"bold\">Units</span>"
-msgstr "<span weight=\"bold\">Unités</span>"
-
-# src/prop_text.c:214
-# src/prop_text.c:199
-# src/prop_text.c:181
-# src/prop_text.c:181
-#: ../data/glade/prefs-dialog.glade.h:9
+#: ../data/ui/prefs-dialog.ui.h:6
 msgid "Font:"
 msgstr "Police :"
 
-#: ../data/glade/prefs-dialog.glade.h:10
+#: ../data/ui/prefs-dialog.ui.h:7
 msgid "ISO A4"
 msgstr "ISO A4"
 
-# src/prefs.c:265
-# src/prefs.c:243
-# src/prefs.c:237
-#: ../data/glade/prefs-dialog.glade.h:11
+#: ../data/ui/prefs-dialog.ui.h:8
 msgid "Inches"
 msgstr "Pouces"
 
-# src/prop_bc.c:189
-# src/prop_bc.c:187
-# src/prop_bc.c:168
-# src/prop_bc.c:168
-#: ../data/glade/prefs-dialog.glade.h:13
+#: ../data/ui/prefs-dialog.ui.h:11
 msgid "Locale"
-msgstr "Localisation"
+msgstr "Paramètres régionaux"
 
-# src/prefs.c:271
-# src/prefs.c:250
-# src/prefs.c:244
-#: ../data/glade/prefs-dialog.glade.h:14
+#: ../data/ui/prefs-dialog.ui.h:12
 msgid "Millimeters"
 msgstr "Millimètres"
 
-#: ../data/glade/prefs-dialog.glade.h:15
+#: ../data/ui/prefs-dialog.ui.h:13
 msgid "Object defaults"
 msgstr "Paramètres par défaut pour les objets"
 
-# src/print.c:149
-# src/prefs.c:259
-# src/prefs.c:237
-# src/prefs.c:231
-#: ../data/glade/prefs-dialog.glade.h:16
+#: ../data/ui/prefs-dialog.ui.h:14
 msgid "Points"
 msgstr "Points"
 
-#: ../data/glade/prefs-dialog.glade.h:17
+#: ../data/ui/prefs-dialog.ui.h:15
 msgid "Select default properties for new objects."
-msgstr "Sélectionner les propriétés par défaut pour les nouveaux objets."
+msgstr "Définir des propriétés par défaut pour les nouveaux objets."
 
-#: ../data/glade/prefs-dialog.glade.h:18
+#: ../data/ui/prefs-dialog.ui.h:16
 msgid "Select locale specific behavior."
-msgstr "Sélectionnez les paramètres de localisation."
+msgstr "Sélectionnez les paramètres correspondants à votre région."
 
-#. Most popular (at top of list)
-#: ../data/glade/prefs-dialog.glade.h:19
-#: ../data/templates/paper-sizes.xml.h:29
+#: ../data/ui/prefs-dialog.ui.h:18 ../templates/paper-sizes.xml.h:35
 msgid "US Letter"
-msgstr "Lettre US"
-
-# src/print.c:171
-# src/print.c:171
-# src/print.c:186
-# src/print_dialog.c:141
-#: ../data/glade/print-custom-widget.glade.h:1
-msgid "<b>Options</b>"
-msgstr "<b>Options</b>"
+msgstr "Letter US"
 
-#: ../data/glade/print-custom-widget.glade.h:2
-msgid "<b>Print control (Merge)</b>"
-msgstr "<b>Contrôle d'impression (fusion)</b>"
+#: ../data/ui/prefs-dialog.ui.h:19
+msgid "Units"
+msgstr "Unités"
 
-#: ../data/glade/print-custom-widget.glade.h:3
-msgid "<b>Print control (Simple)</b>"
-msgstr "<b>Contrôle d'impression (simple)</b>"
-
-#: ../data/glade/property-bar.glade.h:1
+#: ../data/ui/property-bar.ui.h:1
 msgid "Bold"
 msgstr "Gras"
 
-# src/item_barcode.c:337
-# src/item_barcode.c:343 src/prefs.c:243
-# src/item_barcode.c:320 src/prefs.c:221
-# src/item_barcode.c:320 src/prefs.c:215
-#: ../data/glade/property-bar.glade.h:2
+#: ../data/ui/property-bar.ui.h:2
 msgid "Center align"
 msgstr "Centrer"
 
-# src/mdi.c:482
-# src/mdi.c:488
-# src/mdi.c:459
-# src/mdi.c:459
-#: ../data/glade/property-bar.glade.h:4
-msgid "Font family"
-msgstr "Famille de police"
-
-# src/mdi.c:482
-# src/mdi.c:488
-# src/mdi.c:459
-# src/mdi.c:459
-#: ../data/glade/property-bar.glade.h:5
-msgid "Font size"
-msgstr "Taille de police"
-
-#: ../data/glade/property-bar.glade.h:6
-msgid "Italic"
-msgstr "Italique"
-
-#: ../data/glade/property-bar.glade.h:7
+#: ../data/ui/property-bar.ui.h:7
 msgid "Left align"
 msgstr "Aligner à gauche"
 
-#: ../data/glade/property-bar.glade.h:9
-msgid "Line width"
-msgstr "Largeur de la ligne"
-
-#: ../data/glade/property-bar.glade.h:10
+#: ../data/ui/property-bar.ui.h:10
 msgid "Right align"
 msgstr "Aligner à droite"
 
-#: ../data/glade/property-bar.glade.h:11
-msgid "Text Color"
-msgstr "Couleur du texte"
-
-#: ../data/glade/property-bar.glade.h:12
-msgid "Text color"
-msgstr "Couleur du texte"
-
-#: ../data/glade/template-designer.glade.h:1
+#: ../data/ui/template-designer.ui.h:1
 msgid "(e.g., \"Mailing Labels,\" \"Business Cards,\" ...)"
-msgstr "(ex. : « Étiquettes de publipostage », « Cartes de visite », ...)"
+msgstr "(ex : « Étiquettes de publipostage », « Cartes de visite », ...)"
 
-#: ../data/glade/template-designer.glade.h:2
+#: ../data/ui/template-designer.ui.h:2
 msgid "(e.g., 8163A)"
-msgstr "(ex. : 8163A)"
+msgstr "(ex : 8163A)"
 
-#: ../data/glade/template-designer.glade.h:3
+#: ../data/ui/template-designer.ui.h:3
 msgid "(e.g., Avery, Acme, ...)"
-msgstr "(ex. : Avery, Acme, ...)"
+msgstr "(ex : Avery, Acme, ...)"
 
-#: ../data/glade/template-designer.glade.h:4
+#: ../data/ui/template-designer.ui.h:4
 msgid "1. Outer radius:"
 msgstr "1. Rayon extérieur :"
 
-#: ../data/glade/template-designer.glade.h:5
+#: ../data/ui/template-designer.ui.h:5
 msgid "1. Radius:"
 msgstr "1. Rayon :"
 
-# src/prop_line.c:188
-# src/prop_line.c:187 src/prop_size.c:202
-# src/prop_line.c:169 src/prop_size.c:182
-# src/prop_line.c:169 src/prop_size.c:182
-#: ../data/glade/template-designer.glade.h:6
+#: ../data/ui/template-designer.ui.h:6
 msgid "1. Width:"
 msgstr "1. Largeur :"
 
-# src/prop_size.c:220
-# src/prop_size.c:198
-# src/prop_size.c:198
-#: ../data/glade/template-designer.glade.h:7
+#: ../data/ui/template-designer.ui.h:7
 msgid "2. Height:"
 msgstr "2. Hauteur :"
 
-#: ../data/glade/template-designer.glade.h:8
+#: ../data/ui/template-designer.ui.h:8
 msgid "2. Inner radius:"
-msgstr "2. Rayon Intérieur :"
+msgstr "2. Rayon intérieur :"
 
-#: ../data/glade/template-designer.glade.h:9
+#: ../data/ui/template-designer.ui.h:9
 msgid "2. Waste (overprint allowed):"
 msgstr "2. Déchet (impression en surcharge autorisée) :"
 
-#: ../data/glade/template-designer.glade.h:10
+#: ../data/ui/template-designer.ui.h:10
 msgid "3. Clipping width:"
-msgstr "3. Largeur de rognure :"
+msgstr "3. Largeur de découpe :"
 
-#: ../data/glade/template-designer.glade.h:11
+#: ../data/ui/template-designer.ui.h:11
 msgid "3. Margin"
 msgstr "3. Marge"
 
-#: ../data/glade/template-designer.glade.h:12
+#: ../data/ui/template-designer.ui.h:12
 msgid "3. Round (radius of corner):"
-msgstr "3. Arrondi (rayon du coin) :"
+msgstr "3. Arrondi (rayon d'angle) :"
 
-#: ../data/glade/template-designer.glade.h:13
+#: ../data/ui/template-designer.ui.h:13
+msgid "3. Waste (overprint allowed):"
+msgstr "3. Déchet (impression en surcharge autorisée) :"
+
+#: ../data/ui/template-designer.ui.h:14
 msgid "4. Clipping height:"
-msgstr "4. Hauteur de rognure :"
+msgstr "4. Hauteur de découpe :"
 
-#: ../data/glade/template-designer.glade.h:14
+#: ../data/ui/template-designer.ui.h:15
 msgid "4. Horiz. waste (overprint allowed):"
 msgstr "4. Déchet horiz. (impression en surcharge autorisée) :"
 
-#: ../data/glade/template-designer.glade.h:15
+#: ../data/ui/template-designer.ui.h:16
+msgid "4. Margin"
+msgstr "4. Marge"
+
+#: ../data/ui/template-designer.ui.h:17
 msgid "5. Vert. waste (overprint allowed):"
 msgstr "5. Déchet vert. (impression en surcharge autorisée) :"
 
-#: ../data/glade/template-designer.glade.h:16
+#: ../data/ui/template-designer.ui.h:18
 msgid "5. Waste (overprint allowed):"
 msgstr "5. Déchet (impression en surcharge autorisée) :"
 
-#: ../data/glade/template-designer.glade.h:17
+#: ../data/ui/template-designer.ui.h:19
 msgid "6. Margin"
 msgstr "6. Marge"
 
-#: ../data/glade/template-designer.glade.h:18
+#: ../data/ui/template-designer.ui.h:20
 msgid "Brand/Manufacturer:"
 msgstr "Marque/Fabricant :"
 
-#: ../data/glade/template-designer.glade.h:19
+#: ../data/ui/template-designer.ui.h:21
 msgid "CD/DVD (including credit card CDs)"
 msgstr "CD/DVD (y compris CD au format carte de crédit)"
 
-#: ../data/glade/template-designer.glade.h:20
+#: ../data/ui/template-designer.ui.h:22
 msgid ""
 "Congratulations!\n"
 "\n"
@@ -2622,33 +2204,31 @@ msgid ""
 "or \"Back\" to continue editing this design."
 msgstr ""
 "Félicitations !\n"
+"\n"
 "Vous avez terminé la création d'un modèle gLabels.\n"
-"Si vous voulez accepter et enregistrer votre création, cliquez sur « Appliquer ».\n"
+"Si vous acceptez et voulez enregistrer votre création, cliquez sur "
+"« Appliquer ».\n"
 "\n"
-"Dans le cas contraire, cliquez sur « Annuler » pour abandonner\n"
-"votre création ou « Précédent » pour continuer d'éditer cette création."
-
-# src/media_select.c:216
-# src/media_select.c:242
-# src/media_select.c:222
-# src/media_select.c:222
-#: ../data/glade/template-designer.glade.h:27
-msgid "Description:"
-msgstr "Description :"
+"Dans le cas contraire, cliquez sur « Annuler » pour abandonner votre\n"
+"création ou sur « Précédent » pour reprendre les modifications du modèle."
 
-#: ../data/glade/template-designer.glade.h:28
+#: ../data/ui/template-designer.ui.h:30
 msgid "Distance from left edge (x0):"
 msgstr "Distance par rapport au bord gauche (x0) :"
 
-#: ../data/glade/template-designer.glade.h:29
+#: ../data/ui/template-designer.ui.h:31
 msgid "Distance from top edge (y0):"
 msgstr "Distance par rapport au bord haut (y0) :"
 
-#: ../data/glade/template-designer.glade.h:31
+#: ../data/ui/template-designer.ui.h:32
+msgid "Elliptical"
+msgstr "Elliptique"
+
+#: ../data/ui/template-designer.ui.h:34
 msgid "Horizontal pitch (dx):"
 msgstr "Espacement horizontal (dx) :"
 
-#: ../data/glade/template-designer.glade.h:32
+#: ../data/ui/template-designer.ui.h:35
 msgid ""
 "How many layouts will your template contain? \n"
 "\n"
@@ -2658,99 +2238,86 @@ msgid ""
 msgstr ""
 "Combien de dispositions votre modèle contiendra-t-il ?\n"
 "\n"
-"Une disposition est un ensemble d'étiquettes ou de cartes qui peuvent être "
-"rangés sur une grille simple.\n"
-"La plupart des modèles n'ont besoin que d'une seule disposition, comme pour le "
+"Une disposition est un jeu d'étiquettes ou de cartes placées sur une simple "
+"grille.\n"
+"La plupart des modèles n'ont besoin que d'une disposition, comme dans le "
 "premier exemple.\n"
 "Le deuxième exemple illustre le cas où deux dispositions sont nécessaires."
 
-# src/media_select.c:231
-# src/media_select.c:257
-# src/media_select.c:237
-# src/media_select.c:237
-#: ../data/glade/template-designer.glade.h:37
+#: ../data/ui/template-designer.ui.h:40
 msgid "Layout #1"
 msgstr "Disposition n°1"
 
-# src/media_select.c:231
-# src/media_select.c:257
-# src/media_select.c:237
-# src/media_select.c:237
-#: ../data/glade/template-designer.glade.h:38
+#: ../data/ui/template-designer.ui.h:41
 msgid "Layout #2"
 msgstr "Disposition n°2"
 
-#: ../data/glade/template-designer.glade.h:39
+#: ../data/ui/template-designer.ui.h:42
+msgid ""
+"Note: if more than 2 layouts are required, the template must be edited "
+"manually."
+msgstr ""
+"Note : si plus de 2 dispositions sont nécessaires, le modèle doit être "
+"modifié manuellement."
+
+#: ../data/ui/template-designer.ui.h:43
 msgid "Number across (nx):"
-msgstr "Nombre horizontalement (nx) :"
+msgstr "Nombre sur la largeur (nx) :"
 
-#: ../data/glade/template-designer.glade.h:40
+#: ../data/ui/template-designer.ui.h:44
 msgid "Number down (ny):"
-msgstr "Nombre verticalement (ny) :"
+msgstr "Nombre sur la hauteur (ny) :"
 
-#: ../data/glade/template-designer.glade.h:41
+#: ../data/ui/template-designer.ui.h:45
 msgid "Number of layouts:"
 msgstr "Nombre de dispositions :"
 
-# src/media_select.c:221
-# src/media_select.c:247
-# src/media_select.c:227
-# src/media_select.c:227
-#: ../data/glade/template-designer.glade.h:42
-#: ../data/glade/wdgt-media-select.glade.h:3
-msgid "Page size:"
-msgstr "Taille de page :"
-
-#: ../data/glade/template-designer.glade.h:43
-msgid "Part #:"
-msgstr "N° Ref :"
-
-#: ../data/glade/template-designer.glade.h:44
+#: ../data/ui/template-designer.ui.h:48
 msgid ""
 "Please enter the following identifying information about the template "
 "stationery."
-msgstr "Saisissez les informations suivantes à propos du fabricant de papier."
+msgstr "Entrez les informations suivantes à propos du modèle de fourniture."
 
-#: ../data/glade/template-designer.glade.h:45
+#: ../data/ui/template-designer.ui.h:49
 msgid "Please enter the following layout information."
-msgstr "Saisissez les informations suivantes sur la disposition."
+msgstr "Entrez les informations suivantes sur la disposition."
 
-#: ../data/glade/template-designer.glade.h:46
+#: ../data/ui/template-designer.ui.h:50
 msgid ""
 "Please enter the following size parameters of a single label in your "
 "template."
-msgstr "Saisissez les paramètres de taille suivants pour une étiquette."
+msgstr ""
+"Entrez les paramètres de taille suivants pour une étiquette de votre modèle."
 
-#: ../data/glade/template-designer.glade.h:47
+#: ../data/ui/template-designer.ui.h:51
 msgid ""
 "Please enter the following size parameters of a single label or card in your "
 "template."
 msgstr ""
-"Entrez les paramètres de taille suivant pour une carte ou une étiquette de votre modèle."
+"Entrez les paramètres de taille suivants pour une carte ou une étiquette de "
+"votre modèle."
 
-#: ../data/glade/template-designer.glade.h:48
+#: ../data/ui/template-designer.ui.h:52
 msgid "Please select the basic shape of the labels or cards."
 msgstr "Sélectionnez la forme de base des cartes ou des étiquettes."
 
-#: ../data/glade/template-designer.glade.h:49
+#: ../data/ui/template-designer.ui.h:53
 msgid "Please select the page size of the template stationery."
 msgstr "Sélectionnez la taille du papier."
 
-# src/print_copies_merge.c:206
-# src/print_merge.c:179
-#: ../data/glade/template-designer.glade.h:50
+#: ../data/ui/template-designer.ui.h:54
 msgid "Print test sheet"
-msgstr "Imprimer une page de tests"
+msgstr "Imprimer une page test"
 
-#: ../data/glade/template-designer.glade.h:51
+#: ../data/ui/template-designer.ui.h:55
 msgid "Rectangular or square (can have rounded corners)"
 msgstr "Rectangulaire ou carré (éventuellement à bords arrondis)"
 
-#: ../data/glade/template-designer.glade.h:52
+#: ../data/ui/template-designer.ui.h:56
 msgid "Round"
 msgstr "Circulaire"
 
-#: ../data/glade/template-designer.glade.h:53
+#: ../data/ui/template-designer.ui.h:57
 msgid ""
 "Templates needing\n"
 "two layouts."
@@ -2758,457 +2325,706 @@ msgstr ""
 "Modèle nécessitant\n"
 "deux dispositions."
 
-#: ../data/glade/template-designer.glade.h:55
+#: ../data/ui/template-designer.ui.h:59
 msgid ""
 "Templates needing only\n"
 "one layout."
 msgstr ""
-"Modèle nécessitant\n"
-"une disposition."
+"Modèle ne nécessitant\n"
+"qu'une disposition."
 
-#: ../data/glade/template-designer.glade.h:57
+#: ../data/ui/template-designer.ui.h:61
 msgid "Vertical pitch (dy):"
 msgstr "Espacement vertical (dy) :"
 
-#: ../data/glade/template-designer.glade.h:58
+#: ../data/ui/template-designer.ui.h:62
 msgid ""
 "Welcome to the gLabels Template Designer.\n"
 "\n"
 "This dialog will assist you in the creation of a custom gLabels template."
 msgstr ""
 "Bienvenue dans le créateur de modèles de gLabels.\n"
-"Ce questionnaire va vous aider à créer un modèle personnalisé pour glabels."
+"\n"
+"Cet assistant va vous aider à créer un modèle personnalisé pour gLabels."
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:1
+msgid "Collate"
+msgstr "Assembler"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:2
+msgid "Copies"
+msgstr "Copies"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:3
+msgid "Copies:"
+msgstr "Copies :"
 
-#: ../data/glade/template-designer.glade.h:62
-msgid "cd_size_page"
-msgstr "cd_size_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:5
+msgid "Merge Control"
+msgstr "Contrôle de la fusion"
 
-#: ../data/glade/template-designer.glade.h:63
-msgid "finish_page"
-msgstr "finish_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:6
+msgid "Options"
+msgstr "Options"
 
-#: ../data/glade/template-designer.glade.h:65
-msgid "layout_page"
-msgstr "layout_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:7
+msgid "Sheets:"
+msgstr "Pages :"
 
-#: ../data/glade/template-designer.glade.h:66
-msgid "name_page"
-msgstr "name_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:8
+msgid "Start on label"
+msgstr "Commencer par l'étiquette"
 
-#: ../data/glade/template-designer.glade.h:67
-msgid "nlayouts_page"
-msgstr "nlayouts_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:9
+msgid "from:"
+msgstr "de :"
 
-#: ../data/glade/template-designer.glade.h:68
-msgid "pg_size_page"
-msgstr "pg_size_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:10
+msgid "on 1st sheet"
+msgstr "en 1ère page"
 
-#: ../data/glade/template-designer.glade.h:69
-msgid "rect_size_page"
-msgstr "rect_size_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:14
+msgid "to:"
+msgstr "à :"
 
-#: ../data/glade/template-designer.glade.h:70
-msgid "round_size_page"
-msgstr "round_size_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:1
+msgid "Controls maximum number of recent files tracked."
+msgstr "Contrôle le nombre maximal de fichiers récents à suivre."
 
-#: ../data/glade/template-designer.glade.h:71
-msgid "shape_page"
-msgstr "shape_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:2
+msgid "Controls visibility of drawing toolbar."
+msgstr "Contrôle l'affichage de la barre d'outils dessin."
 
-#: ../data/glade/template-designer.glade.h:72
-msgid "start_page"
-msgstr "start_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:3
+msgid "Controls visibility of grid."
+msgstr "Contrôle l'affichage de la grille repère."
 
-#: ../data/glade/wdgt-media-select.glade.h:1
-msgid "Brand:"
-msgstr "Marque :"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:4
+msgid "Controls visibility of main toolbar."
+msgstr "Contrôle l'affichage de la barre d'outils principale."
 
-#: ../data/glade/wdgt-media-select.glade.h:2
-msgid "Category:"
-msgstr "Catégorie :"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:5
+msgid "Controls visibility of markup lines."
+msgstr "Contrôle l'affichage des limites de marge."
 
-# src/tools.c:70
-# src/tools.c:70
-# src/menu.c:106 src/menu.c:197
-# src/menu.c:106 src/menu.c:197
-#: ../data/glade/wdgt-media-select.glade.h:4
-msgid "Recent templates"
-msgstr "Modèles récents"
-
-#: ../data/glade/wdgt-media-select.glade.h:5
-msgid "Search all templates"
-msgstr "Tous les modèles"
-
-# src/rotate_select.c:187
-# src/rotate_select.c:187
-# src/rotate_select.c:167
-# src/rotate_select.c:169
-#: ../data/glade/wdgt-rotate-label.glade.h:1
-msgid "Rotate"
-msgstr "Rotation"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:6
+msgid "Controls visibility of property toolbar."
+msgstr "Contrôle l'affichage de la barre d'outils des propriétés."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:7
+msgid "Default fill color."
+msgstr "Couleur de remplissage par défaut."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:8
+msgid "Default font family."
+msgstr "Famille de police par défaut."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:9
+msgid "Default font italic flag."
+msgstr "Marqueur de police en italique par défaut."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:10
+msgid "Default font size."
+msgstr "Taille de police par défaut"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:11
+msgid "Default font weight."
+msgstr "Graisse de police par défaut."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:12
+msgid "Default line color."
+msgstr "Couleur de ligne par défaut."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:13
+msgid "Default line width."
+msgstr "Épaisseur de ligne par défaut."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:14
+msgid "Default page size."
+msgstr "Taille de page par défaut."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:15
+msgid "Default text alignment."
+msgstr "Alignement du texte par défaut."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:16
+msgid "Default text color."
+msgstr "Couleur de texte par défaut."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:17
+msgid "Default text line spacing."
+msgstr "Espacement des lignes de texte par défaut."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:18
+msgid "Maximum recent files."
+msgstr "Nombre maximal de fichiers récents."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:19
+msgid "Recent colors."
+msgstr "Couleurs récentes."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:20
+msgid "Recent fonts."
+msgstr "Polices récentes."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:21
+msgid "Recent templates."
+msgstr "Modèles récents."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:22
+msgid "Recently created custom colors."
+msgstr "Couleurs personnalisées récemment créées."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:23
+msgid "Recently used font families."
+msgstr "Familles de polices récemment utilisées."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:24
+msgid "Recently used templates."
+msgstr "Modèles récemment utilisés."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:25
+msgid "Show/hide drawing toolbar."
+msgstr "Afficher/masquer la barre d'outils de dessin."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:26
+msgid "Show/hide grid."
+msgstr "Afficher/masquer la grille repère."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:27
+msgid "Show/hide main toolbar."
+msgstr "Afficher/masquer la barre d'outils principale."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:28
+msgid "Show/hide markup."
+msgstr "Afficher/masquer les marges."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:29
+msgid "Show/hide property toolbar."
+msgstr "Afficher/masquer la barre d'outils des propriétés."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:30
+msgid "The default color of text for new text objects (0xRRGGBBAA)."
+msgstr ""
+"La couleur par défaut du texte pour les nouveaux objets texte (0xRRGGBBAA)."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:31
+msgid "The default fill color new objects (0xRRGGBBAA)."
+msgstr ""
+"La couleur de remplissage par défaut pour les nouveaux objets (0xRRGGBBAA)."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:32
+msgid "The default font family for new text objects."
+msgstr "La famille de police par défaut pour les nouveaux objets texte."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:33
+msgid "The default font italic state for new text objects."
+msgstr ""
+"La propriété italique définie par défaut pour les polices des nouveaux "
+"objets texte."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:34
+msgid "The default font size for new text objects."
+msgstr "La taille de police par défaut pour les nouveaux objets texte."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:35
+msgid "The default font weight for new text objects."
+msgstr "La graisse par défaut pour la police des nouveaux objets texte."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:36
+msgid "The default line color new objects (0xRRGGBBAA)."
+msgstr "La couleur par défaut pour les nouveaux objets ligne (0xRRGGBBAA)."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:37
+msgid "The default line spacing for new text objects."
+msgstr ""
+"L'espacement par défaut entre les lignes dans les nouveaux objets texte."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:38
+msgid "The default line width for new objects."
+msgstr "La largeur par défaut des lignes pour les nouveaux objets texte."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:39
+msgid "The default text alignment for new text objects."
+msgstr "L'alignement par défaut du texte dans les nouveaux objets texte."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:40
+msgid "The default unit of measurement."
+msgstr "L'unité de mesure par défaut."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:41
+msgid "The preferred page size when searching templates."
+msgstr "La taille de page préférée lors de la recherche de modèles."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:42
+msgid "Units."
+msgstr "Unités."
+
+#: ../data/desktop/glabels-3.0.desktop.in.h:1
+msgid "Create labels, business cards and media covers"
+msgstr "Crée des étiquettes et des cartes de visite"
+
+#: ../data/desktop/glabels-3.0.desktop.in.h:2
+msgid "gLabels Label Designer 3"
+msgstr "Créateur d'étiquettes gLabels 3"
+
+#: ../data/mime/glabels-3.0.xml.in.h:1
+msgid "gLabels Project File"
+msgstr "Fichier de projet gLabels"
+
+#. Envelopes
+#: ../templates/paper-sizes.xml.h:2
+msgid "#10 Envelope"
+msgstr "Enveloppe n°10"
 
 #. Other ISO A series sizes
-#: ../data/templates/paper-sizes.xml.h:2
+#: ../templates/paper-sizes.xml.h:4
 msgid "A0"
 msgstr "A0"
 
-#: ../data/templates/paper-sizes.xml.h:3
+#: ../templates/paper-sizes.xml.h:5
 msgid "A1"
 msgstr "A1"
 
-#: ../data/templates/paper-sizes.xml.h:4
+#: ../templates/paper-sizes.xml.h:6
 msgid "A10"
 msgstr "A10"
 
-#: ../data/templates/paper-sizes.xml.h:5
+#: ../templates/paper-sizes.xml.h:7
 msgid "A2"
 msgstr "A2"
 
-#: ../data/templates/paper-sizes.xml.h:6
+#: ../templates/paper-sizes.xml.h:8
 msgid "A3"
 msgstr "A3"
 
-#: ../data/templates/paper-sizes.xml.h:7
+#. Most popular (at top of list)
+#: ../templates/paper-sizes.xml.h:10
 msgid "A4"
 msgstr "A4"
 
-#: ../data/templates/paper-sizes.xml.h:8
+#: ../templates/paper-sizes.xml.h:11
 msgid "A5"
 msgstr "A5"
 
-#: ../data/templates/paper-sizes.xml.h:9
+#: ../templates/paper-sizes.xml.h:12
 msgid "A6"
 msgstr "A6"
 
-#: ../data/templates/paper-sizes.xml.h:10
+#: ../templates/paper-sizes.xml.h:13
 msgid "A7"
 msgstr "A7"
 
-#: ../data/templates/paper-sizes.xml.h:11
+#: ../templates/paper-sizes.xml.h:14
 msgid "A8"
 msgstr "A8"
 
-#: ../data/templates/paper-sizes.xml.h:12
+#: ../templates/paper-sizes.xml.h:15
 msgid "A9"
 msgstr "A9"
 
 #. ISO B series sizes
-#: ../data/templates/paper-sizes.xml.h:14
+#: ../templates/paper-sizes.xml.h:17
 msgid "B0"
 msgstr "B0"
 
-#: ../data/templates/paper-sizes.xml.h:15
+#: ../templates/paper-sizes.xml.h:18
 msgid "B1"
 msgstr "B1"
 
-#: ../data/templates/paper-sizes.xml.h:16
+#: ../templates/paper-sizes.xml.h:19
 msgid "B10"
 msgstr "B10"
 
-#: ../data/templates/paper-sizes.xml.h:17
+#: ../templates/paper-sizes.xml.h:20
 msgid "B2"
 msgstr "B2"
 
-#: ../data/templates/paper-sizes.xml.h:18
+#: ../templates/paper-sizes.xml.h:21
 msgid "B3"
 msgstr "B3"
 
-#: ../data/templates/paper-sizes.xml.h:19
+#: ../templates/paper-sizes.xml.h:22
 msgid "B4"
 msgstr "B4"
 
-#: ../data/templates/paper-sizes.xml.h:20
+#: ../templates/paper-sizes.xml.h:23
 msgid "B5"
 msgstr "B5"
 
-#: ../data/templates/paper-sizes.xml.h:21
+#: ../templates/paper-sizes.xml.h:24
 msgid "B6"
 msgstr "B6"
 
-#: ../data/templates/paper-sizes.xml.h:22
+#: ../templates/paper-sizes.xml.h:25
 msgid "B7"
 msgstr "B7"
 
-#: ../data/templates/paper-sizes.xml.h:23
+#: ../templates/paper-sizes.xml.h:26
 msgid "B8"
 msgstr "B8"
 
-#: ../data/templates/paper-sizes.xml.h:24
+#: ../templates/paper-sizes.xml.h:27
 msgid "B9"
 msgstr "B9"
 
-#: ../data/templates/paper-sizes.xml.h:25
+#: ../templates/paper-sizes.xml.h:28
+msgid "C5"
+msgstr "C5"
+
+#: ../templates/paper-sizes.xml.h:29
+msgid "C6"
+msgstr "C6"
+
+#: ../templates/paper-sizes.xml.h:30
+msgid "DL"
+msgstr "DL"
+
+#: ../templates/paper-sizes.xml.h:31
+msgid "Monarch Envelope"
+msgstr "Enveloppe Monarch"
+
+#: ../templates/paper-sizes.xml.h:32
 msgid "US Executive"
 msgstr "Exécutif US"
 
 #. Other US paper sizes
-#: ../data/templates/paper-sizes.xml.h:27
+#: ../templates/paper-sizes.xml.h:34
 msgid "US Legal"
 msgstr "Légal US"
 
-#: ../data/templates/categories.xml.h:1
+#: ../templates/categories.xml.h:1
 msgid "Any card"
 msgstr "Toute carte"
 
-# src/file.c:183
-# src/file.c:183
-# src/file.c:213
-# src/file.c:213
-#: ../data/templates/categories.xml.h:2
+#: ../templates/categories.xml.h:2
 msgid "Any label"
 msgstr "Toute étiquette"
 
-#: ../data/templates/categories.xml.h:3
+#. ===================================================================
+#. ====================================================================
+#. ===================================================================
+#: ../templates/categories.xml.h:3 ../templates/dataline-iso-templates.xml.h:4
+#: ../templates/geha-iso-templates.xml.h:8
+#: ../templates/hama-iso-templates.xml.h:6
+#: ../templates/pearl-iso-templates.xml.h:8
 msgid "Business cards"
 msgstr "Cartes de visite"
 
-#: ../data/templates/categories.xml.h:4
+#: ../templates/categories.xml.h:4
 msgid "CD/DVD or other media"
 msgstr "CD/DVD ou autre support"
 
-#: ../data/templates/categories.xml.h:5
+#. ===================================================================
+#: ../templates/categories.xml.h:5 ../templates/pearl-iso-templates.xml.h:28
+msgid "Elliptical labels"
+msgstr "Étiquettes elliptiques"
+
+#: ../templates/categories.xml.h:6
+msgid "Foldable cards"
+msgstr "Cartes pliables"
+
+#: ../templates/categories.xml.h:7
 msgid "Mailing/shipping products"
-msgstr "Produits d'expédition"
+msgstr "Produits pour publipostage ou expédition"
+
+#: ../templates/categories.xml.h:8
+msgid "Photo products"
+msgstr "Produits photos"
 
-#: ../data/templates/categories.xml.h:6
+#. ===================================================================
+#. ====================================================================
+#. ===================================================================
+#. ********************************************************************
+#: ../templates/categories.xml.h:9 ../templates/ascom-iso-templates.xml.h:6
+#: ../templates/hama-iso-templates.xml.h:29
+#: ../templates/herma-iso-templates.xml.h:18
+#: ../templates/jac-iso-templates.xml.h:8
 msgid "Rectangular labels"
 msgstr "Étiquettes rectangulaires"
 
-#: ../data/templates/categories.xml.h:7
+#. ====================================================================
+#. ===================================================================
+#: ../templates/categories.xml.h:10 ../templates/hama-iso-templates.xml.h:31
+#: ../templates/pearl-iso-templates.xml.h:54
 msgid "Round labels"
-msgstr "Étiquettes arrondies"
+msgstr "Étiquettes circulaires"
 
-# src/print_copies_merge.c:197
-# src/print_merge.c:170
-#: ../data/templates/categories.xml.h:8
+#. ====================================================================
+#: ../templates/categories.xml.h:11 ../templates/hama-iso-templates.xml.h:33
 msgid "Square labels"
 msgstr "Étiquettes carrées"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:2
-#: ../data/templates/avery-us-templates.xml.h:2
-#: ../data/templates/dymo-other-templates.xml.h:4
-#: ../data/templates/misc-iso-templates.xml.h:2
-#: ../data/templates/zweckform-iso-templates.xml.h:2
-msgid "Address Labels"
-msgstr "Étiquettes d'adresses"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:4
-msgid "Address labels"
-msgstr "Étiquettes d'adresses"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:6
-msgid "Allround labels"
-msgstr "Étiquettes génériques"
-
-#. ============================================================
-#. ===================================================================
-#. ********************************************************************
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:8
-#: ../data/templates/avery-us-templates.xml.h:4
-#: ../data/templates/misc-iso-templates.xml.h:12
-#: ../data/templates/misc-us-templates.xml.h:4
-#: ../data/templates/zweckform-iso-templates.xml.h:6
-msgid "Business Cards"
-msgstr "Cartes de visite"
-
 #. ===============================================================
-#: ../data/templates/avery-iso-templates.xml.h:10
-msgid "CD Booklet"
-msgstr "Livret de CD"
-
-#. ===============================================================
-#: ../data/templates/avery-iso-templates.xml.h:12
+#: ../templates/ascom-iso-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:10
 msgid "CD Inlet"
 msgstr "Jaquette de CD"
 
-# src/print_copies.c:210
-# src/print_copies.c:210
-# src/print_copies.c:188
-# src/print_copies.c:187
-#. ===============================================================
+#. TODO: Is this the real part #?
+#. ============================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:14
-#: ../data/templates/avery-us-templates.xml.h:6
-#: ../data/templates/misc-iso-templates.xml.h:16
-#: ../data/templates/misc-us-templates.xml.h:8
-#: ../data/templates/zweckform-iso-templates.xml.h:8
-msgid "CD/DVD Labels"
-msgstr "Étiquettes de CD/DVD"
-
+#. ====================================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:16
-#: ../data/templates/avery-us-templates.xml.h:12
-msgid "Diskette Labels"
-msgstr "Étiquettes de disquette"
-
+#. TODO: What is the actual part #?
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:18
-msgid "Diskette labels"
-msgstr "Étiquettes de disquette"
+#: ../templates/ascom-iso-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:30
+#: ../templates/databecker-iso-templates.xml.h:10
+#: ../templates/hama-iso-templates.xml.h:27
+#: ../templates/herma-iso-templates.xml.h:16
+#: ../templates/misc-iso-templates.xml.h:30
+#: ../templates/zweckform-iso-templates.xml.h:28
+msgid "Rectangular Labels"
+msgstr "Étiquettes rectangulaires"
 
-#. ===============================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:20
-#: ../data/templates/misc-iso-templates.xml.h:36
-#: ../data/templates/misc-us-templates.xml.h:20
-#: ../data/templates/zweckform-iso-templates.xml.h:16
-msgid "Mailing Labels"
-msgstr "Étiquettes de publipostage"
+#: ../templates/ascom-iso-templates.xml.h:8
+#: ../templates/avery-us-templates.xml.h:46
+#: ../templates/geha-iso-templates.xml.h:29
+#: ../templates/meritline-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:12
+msgid "Video Tape Spine Labels"
+msgstr "Étiquettes de tranche de cassette vidéo"
 
-# src/print_copies.c:210
-# src/print_copies.c:210
-# src/print_copies.c:188
-# src/print_copies.c:187
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:22
-msgid "Mailing labels"
-msgstr "Étiquettes de publipostage"
-
+#. ********************************************************************
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:24
-msgid "Mini Address Labels"
-msgstr "Étiquettes de mini-adresse"
+#: ../templates/avery-us-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:2
+#: ../templates/databecker-iso-templates.xml.h:2
+#: ../templates/dymo-other-templates.xml.h:4
+#: ../templates/geha-iso-templates.xml.h:2
+#: ../templates/maco-us-templates.xml.h:2
+#: ../templates/meritline-us-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:1
+#: ../templates/zweckform-iso-templates.xml.h:2
+msgid "Address Labels"
+msgstr "Étiquettes d'adresses"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:26
-msgid "Mini Labels"
-msgstr "Mini-étiquettes"
-
-# src/file.c:183
-# src/file.c:183
-# src/file.c:213
-# src/file.c:213
+#. ============================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:28
-msgid "Shipping labels"
-msgstr "Étiquettes postales"
+#. TODO: Is this the actual part #?
+#. ============================================================
+#: ../templates/avery-us-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:8
+#: ../templates/databecker-iso-templates.xml.h:4
+#: ../templates/dataline-iso-templates.xml.h:2
+#: ../templates/decadry-iso-templates.xml.h:2
+#: ../templates/misc-us-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:6
+#: ../templates/zweckform-iso-templates.xml.h:6
+msgid "Business Cards"
+msgstr "Cartes de visite"
 
 #. ===================================================================
-#: ../data/templates/avery-other-templates.xml.h:2
-msgid "File Folder Labels"
-msgstr "Étiquettes de dossier d'archives"
+#. ===============================================================
+#. ===================================================================
+#. ********************************************************************
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:6
+#: ../templates/avery-iso-templates.xml.h:14
+#: ../templates/geha-iso-templates.xml.h:11
+#: ../templates/herma-iso-templates.xml.h:10
+#: ../templates/jac-iso-templates.xml.h:2
+#: ../templates/misc-us-templates.xml.h:8
+#: ../templates/misc-iso-templates.xml.h:10
+#: ../templates/misc-other-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:24
+#: ../templates/worldlabel-us-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:12
+msgid "CD/DVD Labels"
+msgstr "Étiquettes de CD/DVD"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:8
+#: ../templates/avery-us-templates.xml.h:8
 msgid "CD/DVD Labels (Disc Labels)"
 msgstr "Étiquettes de CD/DVD (étiquettes de disque)"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:10
+#: ../templates/avery-us-templates.xml.h:10
 msgid "CD/DVD Labels (Spine Labels)"
 msgstr "Étiquettes de CD/DVD (étiquettes de boîtier)"
 
-# src/print_copies.c:210
-# src/print_copies.c:210
-# src/print_copies.c:188
-# src/print_copies.c:187
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:12
+#: ../templates/avery-iso-templates.xml.h:16
+#: ../templates/meritline-us-templates.xml.h:4
+#: ../templates/worldlabel-us-templates.xml.h:3
+msgid "Diskette Labels"
+msgstr "Étiquettes de disquette"
+
 #. the LSK labels can be torn in half down the center
-#: ../data/templates/avery-us-templates.xml.h:14
+#: ../templates/avery-us-templates.xml.h:14
 msgid "Divider Labels"
 msgstr "Étiquettes de division"
 
-# src/print_copies.c:210
-# src/print_copies.c:210
-# src/print_copies.c:188
-# src/print_copies.c:187
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:16
+#: ../templates/avery-us-templates.xml.h:16
+#: ../templates/avery-other-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:4
+msgid "File Folder Labels"
+msgstr "Étiquettes de dossier d'archives"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:5
 msgid "Filing Labels"
 msgstr "Étiquettes pour dossiers"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:18
+#: ../templates/avery-us-templates.xml.h:20
+#: ../templates/meritline-us-templates.xml.h:6
+#: ../templates/worldlabel-us-templates.xml.h:6
 msgid "Full Sheet Labels"
 msgstr "Étiquettes pleine page"
 
-# src/print_copies.c:210
-# src/print_copies.c:210
-# src/print_copies.c:188
-# src/print_copies.c:187
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:20
+#: ../templates/avery-us-templates.xml.h:22
 msgid "ID Labels"
 msgstr "Étiquettes d'identification"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:22
+#: ../templates/avery-us-templates.xml.h:24
 msgid "Index Cards"
 msgstr "Cartes d'index"
 
-# src/print_copies_merge.c:197
-# src/print_merge.c:170
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:24
+#: ../templates/avery-us-templates.xml.h:26
 msgid "Large Round Labels"
-msgstr "Grandes étiquettes rondes"
+msgstr "Grandes étiquettes circulaires"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:26
+#: ../templates/avery-us-templates.xml.h:28
 msgid "Name Badge Labels"
 msgstr "Étiquettes pour badges"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:28
+#: ../templates/avery-us-templates.xml.h:30
 msgid "Post cards"
 msgstr "Cartes postales"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:30
-#: ../data/templates/dymo-other-templates.xml.h:12
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:32
+#: ../templates/dymo-other-templates.xml.h:12
+#: ../templates/meritline-us-templates.xml.h:10
+#: ../templates/worldlabel-us-templates.xml.h:8
 msgid "Return Address Labels"
 msgstr "Étiquettes d'adresse de retour"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:32
-#: ../data/templates/misc-us-templates.xml.h:30
+#: ../templates/avery-us-templates.xml.h:34
+#: ../templates/maco-us-templates.xml.h:3
+#: ../templates/meritline-us-templates.xml.h:12
+#: ../templates/misc-us-templates.xml.h:30
+#: ../templates/worldlabel-us-templates.xml.h:9
 msgid "Round Labels"
-msgstr "Étiquettes rondes"
+msgstr "Étiquettes circulaires"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:34
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:36
+#: ../templates/dataline-iso-templates.xml.h:10
+#: ../templates/meritline-us-templates.xml.h:14
+#: ../templates/uline-us-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:10
 msgid "Shipping Labels"
-msgstr "Étiquettes postales"
+msgstr "Étiquettes d'expédition"
 
-# src/print_copies_merge.c:197
-# src/print_merge.c:170
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:36
+#: ../templates/avery-us-templates.xml.h:38
 msgid "Small Round Labels"
 msgstr "Petites étiquettes rondes"
 
-# src/print_copies.c:210
-# src/print_copies.c:210
-# src/print_copies.c:188
-# src/print_copies.c:187
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:38
+#: ../templates/avery-us-templates.xml.h:40
 msgid "Square Labels"
 msgstr "Étiquettes carrées"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:40
+#: ../templates/avery-us-templates.xml.h:42
 msgid "Tent Cards"
 msgstr "Cartes chevalet"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:42
+#: ../templates/avery-us-templates.xml.h:44
+#: ../templates/geha-iso-templates.xml.h:27
+#: ../templates/meritline-us-templates.xml.h:16
+#: ../templates/worldlabel-us-templates.xml.h:11
 msgid "Video Tape Face Labels"
 msgstr "Étiquettes de face de cassette vidéo"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:44
-msgid "Video Tape Spine Labels"
-msgstr "Étiquettes de dos de cassette vidéo"
+#: ../templates/avery-iso-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:2
+msgid "Address labels"
+msgstr "Étiquettes d'adresses"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:6
+msgid "Allround labels"
+msgstr "Étiquettes génériques"
+
+#. ===============================================================
+#: ../templates/avery-iso-templates.xml.h:10
+#: ../templates/zweckform-iso-templates.xml.h:8
+msgid "CD Booklet"
+msgstr "Livret de CD"
+
+#. ===================================================================
+#. ====================================================================
+#: ../templates/avery-iso-templates.xml.h:18
+#: ../templates/hama-iso-templates.xml.h:17
+msgid "Diskette labels"
+msgstr "Étiquettes de disquette"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:20
+msgid "Identification Labels"
+msgstr "Étiquettes d'identification"
+
+#. ===============================================================
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:22
+#: ../templates/decadry-iso-templates.xml.h:4
+#: ../templates/herma-iso-templates.xml.h:14
+#: ../templates/misc-us-templates.xml.h:20
+#: ../templates/misc-iso-templates.xml.h:26
+#: ../templates/zweckform-iso-templates.xml.h:20
+msgid "Mailing Labels"
+msgstr "Étiquettes de publipostage"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:24
+#: ../templates/decadry-iso-templates.xml.h:6
+msgid "Mailing labels"
+msgstr "Étiquettes de publipostage"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:26
+msgid "Mini Address Labels"
+msgstr "Étiquettes de mini-adresse"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:28
+msgid "Mini Labels"
+msgstr "Mini-étiquettes"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:32
+msgid "Shipping labels"
+msgstr "Étiquettes postales"
 
-#: ../data/templates/brother-other-templates.xml.h:1
+#: ../templates/brother-other-templates.xml.h:1
 msgid "Multi Purpose Labels 17mm x 54mm"
-msgstr "Étiquettes multi-usages 17x54 mm"
+msgstr "Étiquettes multi usages 17x54 mm"
 
-#: ../data/templates/brother-other-templates.xml.h:2
+#: ../templates/brother-other-templates.xml.h:2
 msgid "Shipping Labels 62mm x 100mm"
 msgstr "Étiquettes postales 62x100 mm"
 
@@ -3229,303 +3045,461 @@ msgstr "Étiquettes postales 62x100 mm"
 #. *********************************************************************
 #. *********************************************************************
 #.
-#: ../data/templates/brother-other-templates.xml.h:20
+#: ../templates/brother-other-templates.xml.h:20
 msgid "Standard Address Labels 29mm x 90mm"
 msgstr "Étiquettes d'adresse standard 29x90 mm"
 
+#: ../templates/brother-other-templates.xml.h:21
+msgid "Standard Address Labels 38mm x 90mm"
+msgstr "Étiquettes d'adresse standard 38x90 mm"
+
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:2
+#: ../templates/databecker-iso-templates.xml.h:6
+#: ../templates/misc-iso-templates.xml.h:8
+msgid "CD Labels"
+msgstr "Étiquettes de CD"
+
+#. ===================================================================
+#: ../templates/databecker-iso-templates.xml.h:8
+msgid "CD/DVD Labels Standard Format (face only)"
+msgstr "Format standard d'étiquettes de CD/DVD (face uniquement)"
+
+#. ===================================================================
+#. ====================================================================
+#: ../templates/dataline-iso-templates.xml.h:6
+#: ../templates/hama-iso-templates.xml.h:13
+msgid "CD/DVD labels"
+msgstr "Étiquettes de CD/DVD"
+
+#. ===================================================================
+#: ../templates/dataline-iso-templates.xml.h:8
+#: ../templates/pearl-iso-templates.xml.h:42
+msgid "Membership cards"
+msgstr "Cartes de membre"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:2
 msgid "3.5in Diskette"
 msgstr "Disquette 3,5 pouces"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:6
+#: ../templates/dymo-other-templates.xml.h:6
 msgid "File Folder"
 msgstr "Dossier d'archives"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:8
+#: ../templates/dymo-other-templates.xml.h:8
 msgid "Hanging Folder"
 msgstr "Dossier suspendu"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:10
+#: ../templates/dymo-other-templates.xml.h:10
+#: ../templates/geha-iso-templates.xml.h:19
 msgid "Large Address Labels"
 msgstr "Grandes étiquettes d'adresses"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:14
+#: ../templates/dymo-other-templates.xml.h:14
 msgid "Shipping Address Labels"
 msgstr "Étiquettes d'adresse postale"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:4
-#: ../data/templates/zweckform-iso-templates.xml.h:4
-msgid "Allround Labels"
-msgstr "Étiquettes génériques"
-
+#. ====================================================================
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:6
+#: ../templates/geha-iso-templates.xml.h:4
+#: ../templates/hama-iso-templates.xml.h:2
+#: ../templates/herma-iso-templates.xml.h:4
 msgid "Arch File Labels"
 msgstr "Étiquettes de dossier d'archives"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:8
-msgid "Arch File Labels (large)"
-msgstr "Étiquettes de dossier d'archives (grandes)"
+#: ../templates/geha-iso-templates.xml.h:6
+msgid "Arch File inserts"
+msgstr "Inserts pour dossier d'archives"
 
-#. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:10
-msgid "Arch File Labels (small)"
-msgstr "Étiquettes de dossier d'archives (petites)"
+#: ../templates/geha-iso-templates.xml.h:9
+msgid "CD/DVD Inlet"
+msgstr "Jaquette de CD/DVD"
 
-# src/print_copies.c:210
-# src/print_copies.c:210
-# src/print_copies.c:188
-# src/print_copies.c:187
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:14
-msgid "CD Labels"
-msgstr "Étiquettes de CD"
-
+#. ====================================================================
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:18
-#: ../data/templates/misc-us-templates.xml.h:12
-msgid "CD/DVD Labels (face only)"
-msgstr "Étiquettes de CD/DVD (face uniquement)"
+#: ../templates/geha-iso-templates.xml.h:13
+#: ../templates/hama-iso-templates.xml.h:15
+#: ../templates/pearl-iso-templates.xml.h:26
+msgid "DVD inlet"
+msgstr "Jaquette de DVD"
 
+# Traduction utilisée sur l'emballage Geha
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:20
-msgid "CD/DVD Labels Standard Format (face only)"
-msgstr "Format standard d'étiquettes de CD/DVD (face uniquement)"
+#: ../templates/geha-iso-templates.xml.h:15
+msgid "Flyer paper"
+msgstr "Papier flyer"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:22
-msgid "Diskette Labels (face only)"
-msgstr "Étiquettes de disquette (face uniquement)"
+#. ====================================================================
+#: ../templates/geha-iso-templates.xml.h:17
+#: ../templates/hama-iso-templates.xml.h:19
+msgid "Greeting cards"
+msgstr "Cartes de salutations"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:24
-msgid "EPSON Photo Stickers 16"
-msgstr "Autocollants EPSON Photo 16"
+#: ../templates/geha-iso-templates.xml.h:21
+#: ../templates/misc-other-templates.xml.h:4
+msgid "Multi-Purpose Labels"
+msgstr "Étiquettes multi-usages"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:26
-msgid "Etiketten"
-msgstr "Étiquettes"
+#: ../templates/geha-iso-templates.xml.h:23
+msgid "Passport photo labels"
+msgstr "Étiquettes pour photos passeport"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:28
-msgid "Fridge Magnet Stickers"
-msgstr "Autocollants magnétiques"
-
+#. ====================================================================
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:30
-msgid "General Labels"
-msgstr "Étiquettes générales"
+#: ../templates/geha-iso-templates.xml.h:25
+#: ../templates/hama-iso-templates.xml.h:23
+#: ../templates/pearl-iso-templates.xml.h:50
+msgid "Photo labels"
+msgstr "Étiquettes pour photos"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:4
+msgid "Arch File labels"
+msgstr "Étiquettes de dossier d'archives"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:8
+msgid "CD inlet"
+msgstr "Jaquette de CD"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:32
-msgid "Inkjet/Laser Labels 70x37mm"
-msgstr "Étiquettes jet d'encre/laser 70x37 mm"
+#: ../templates/hama-iso-templates.xml.h:9
+#: ../templates/pearl-iso-templates.xml.h:20
+msgid "CD inlet (back)"
+msgstr "Jaquette de CD (arrière)"
 
+#. ====================================================================
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:38
-msgid "Mailing Labels-2 columns"
-msgstr "Étiquettes de publipostage (2 colonnes)"
+#: ../templates/hama-iso-templates.xml.h:11
+#: ../templates/pearl-iso-templates.xml.h:22
+msgid "CD inlet (front)"
+msgstr "Jaquette de CD (avant)"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:21
+msgid "Mini Disc labels"
+msgstr "Étiquettes pour mini-disques"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:25
+msgid "Printable mousepad"
+msgstr "Tapis de souris imprimable"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:35
+msgid "VHS inlet"
+msgstr "Jaquette de VHS"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:37
+msgid "VHS-C inlet"
+msgstr "Jaquette de VHS-C"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:39
+msgid "Video-8 inlet"
+msgstr "Jaquette de Video-8"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:41
+msgid "Zip disc inlet"
+msgstr "Jaquette de disque Zip"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:43
+msgid "Zip disc labels"
+msgstr "Étiquettes pour disques Zip"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:40
-msgid "Mailing Labels-3 columns"
-msgstr "Étiquettes de publipostage (3 colonnes)"
+#: ../templates/herma-iso-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:4
+msgid "Allround Labels"
+msgstr "Étiquettes génériques"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:42
-#: ../data/templates/misc-us-templates.xml.h:28
-msgid "PRO CD Labels 2-up (face only)"
-msgstr "Étiquettes pour CD (2 ex, face uniquement)"
+#: ../templates/herma-iso-templates.xml.h:6
+msgid "Arch File Labels (large)"
+msgstr "Étiquettes de dossier d'archives (grandes)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:44
-#: ../data/templates/zweckform-iso-templates.xml.h:24
-msgid "Rectangular Labels"
-msgstr "Étiquettes rectangulaires"
+#: ../templates/herma-iso-templates.xml.h:8
+msgid "Arch File Labels (small)"
+msgstr "Étiquettes de dossier d'archives (petites)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:46
-msgid "Universal Labels"
-msgstr "Étiquettes universelles"
+#: ../templates/herma-iso-templates.xml.h:12
+msgid "Diskette Labels (face only)"
+msgstr "Étiquettes de disquette (face uniquement)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:48
+#: ../templates/herma-iso-templates.xml.h:20
 msgid "Video Labels (face only)"
 msgstr "Étiquettes de vidéos (face uniquement)"
 
+#. *******************************************************************
 #. ===================================================================
-#: ../data/templates/misc-other-templates.xml.h:2
-msgid "Multi-Purpose Labels"
-msgstr "Étiquettes multi-usages"
+#: ../templates/jac-iso-templates.xml.h:4
+#: ../templates/pearl-iso-templates.xml.h:36
+msgid "Labels A4"
+msgstr "Étiquettes A4"
+
+#. *******************************************************************
+#: ../templates/jac-iso-templates.xml.h:6
+msgid "PVC labels"
+msgstr "Étiquettes PVC"
+
+#. ===================================================================
+#: ../templates/meritline-us-templates.xml.h:8
+msgid "Mini-CD Labels"
+msgstr "Étiquettes mini-CD"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:2
+#: ../templates/misc-us-templates.xml.h:2
 msgid "Business Card CD"
 msgstr "CD carte de visite"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:6
+#: ../templates/misc-us-templates.xml.h:6
 msgid "CD Template Rectangles"
 msgstr "Modèle CD rectangle"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:10
+#: ../templates/misc-us-templates.xml.h:10
 msgid "CD/DVD Labels (Face Only)"
 msgstr "Étiquettes de CD/DVD (face uniquement)"
 
-# src/print_copies.c:210
-# src/print_copies.c:210
-# src/print_copies.c:188
-# src/print_copies.c:187
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:14
+#. TODO: Is this the actual part #?
+#: ../templates/misc-us-templates.xml.h:12
+#: ../templates/misc-iso-templates.xml.h:12
+msgid "CD/DVD Labels (face only)"
+msgstr "Étiquettes de CD/DVD (face uniquement)"
+
+#. TODO: Is this the actual part #?
+#: ../templates/misc-us-templates.xml.h:14
 msgid "Cassette Labels"
 msgstr "Étiquettes de cassette"
 
-# src/print_copies.c:210
-# src/print_copies.c:210
-# src/print_copies.c:188
-# src/print_copies.c:187
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:16
+#: ../templates/misc-us-templates.xml.h:16
 msgid "DLT Labels"
 msgstr "Étiquettes DLT"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:18
+#: ../templates/misc-us-templates.xml.h:18
 msgid "Jewel Case Booklet"
-msgstr "Livret de CD « Jewel »"
+msgstr "Livret de boîtier CD"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:22
+#: ../templates/misc-us-templates.xml.h:22
 msgid "Microtube labels"
 msgstr "Étiquettes microtube"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:24
-msgid "Mini-CD Labels"
-msgstr "Étiquettes mini-CD"
-
-#: ../data/templates/misc-us-templates.xml.h:25
+#: ../templates/misc-us-templates.xml.h:24
 msgid "PRO CD Labels 2-up (CD spine only)"
 msgstr "Étiquettes pour CD (2 ex, tranche uniquement)"
 
-#: ../data/templates/misc-us-templates.xml.h:26
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:26
 msgid "PRO CD Labels 2-up (Face only)"
 msgstr "Étiquettes pour CD (2 ex, face uniquement)"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:32
+#. TODO: Is this the actual part #?
+#: ../templates/misc-us-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:28
+msgid "PRO CD Labels 2-up (face only)"
+msgstr "Étiquettes pour CD (2 ex, face uniquement)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:32
 msgid "Slimline CD Case (rightside up)"
 msgstr "Boîtier CD mince (côté droit en haut)"
 
-#: ../data/templates/misc-us-templates.xml.h:33
+#: ../templates/misc-us-templates.xml.h:33
 msgid "Slimline CD Case (upside down)"
 msgstr "Boîtier CD mince (à l'envers)"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:10
+#: ../templates/misc-iso-templates.xml.h:4
+#: ../templates/pearl-iso-templates.xml.h:6
+msgid "Bottle labels"
+msgstr "Étiquettes pour bouteilles"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:14
+msgid "EPSON Photo Stickers 16"
+msgstr "Autocollants EPSON Photo 16"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:16
+msgid "Etiketten"
+msgstr "Étiquettes"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:18
+msgid "Fridge Magnet Stickers"
+msgstr "Autocollants magnétiques"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:20
+msgid "General Labels"
+msgstr "Étiquettes générales"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:22
+msgid "Inkjet/Laser Labels 70x37mm"
+msgstr "Étiquettes jet d'encre/laser 70x37 mm"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:32
+#: ../templates/pearl-iso-templates.xml.h:62
+msgid "Self-adhesive labels"
+msgstr "Étiquettes autocollantes"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:34
+msgid "Universal Labels"
+msgstr "Étiquettes universelles"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:4
+msgid "Address Labels (STAMPIT)"
+msgstr "Étiquettes d'adresses (STAMPIT)"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:10
+msgid "Business cards glossy, both sides printable"
+msgstr "Cartes de visite brillantes, imprimables sur les deux faces"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:12
+msgid "Business cards high glossy"
+msgstr "Cartes de visite extra brillantes"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:14
+msgid "Business cards punched"
+msgstr "Cartes de visite prédécoupées"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:16
+msgid "Business cards punched dull"
+msgstr "Cartes de visite prédécoupées mates"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:18
+msgid "Business cards punched glossy"
+msgstr "Cartes de visite prédécoupées brillantes"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:30
+msgid "Floppy disk labels"
+msgstr "Étiquettes pour disquettes"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:32
+msgid "Foldable business cards"
+msgstr "Cartes de visite pliables"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:34
+msgid "Foldable business cards glossy/dull"
+msgstr "Cartes de visite pliables brillantes/mates"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:38
+msgid "Labels A5"
+msgstr "Étiquettes A5"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:40
+msgid "Labels A6"
+msgstr "Étiquettes A6"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:44
+msgid "Membership cards, both sides printable"
+msgstr "Cartes de membre, imprimables sur les deux faces"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:46
+msgid "Name plates"
+msgstr "Porte-nom"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:48
+msgid "Passport photo labels glossy"
+msgstr "Étiquettes pour photos passeport, brillantes"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:52
+msgid "Photo labels semiglossy"
+msgstr "Étiquettes pour photos, satinées"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:56
+msgid "SD card labels"
+msgstr "Étiquettes pour cartes SD"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:58
+msgid "Self-adhesive film transparent"
+msgstr "Film transparent autocollant"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:60
+msgid "Self-adhesive film weatherproof"
+msgstr "Films autocollants résistant aux intempéries"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:64
+msgid "Self-adhesive window film"
+msgstr "Film autocollant pour fenêtre"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:14
 msgid "Correction and Cover-up Labels"
 msgstr "Étiquettes de correction et de recouvrement"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:16
 msgid "File Back Labels"
 msgstr "Étiquettes de dos de dossier"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:14
+#: ../templates/zweckform-iso-templates.xml.h:18
 msgid "Lever Arch File Labels"
 msgstr "Étiquettes pour classeurs à levier"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:18
+#: ../templates/zweckform-iso-templates.xml.h:22
 msgid "Multi-purpose Stick+Lift Labels"
-msgstr "Étiquettes repositionnables multi-usages"
+msgstr "Étiquettes autocollantes amovibles à usages multiples"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:20
+#: ../templates/zweckform-iso-templates.xml.h:24
 msgid "QSL-Karten Etiketten 70mm x 50,8mm"
 msgstr "Étiquettes de cartes QSL 70mm x 50,8mm"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:22
+#: ../templates/zweckform-iso-templates.xml.h:26
 msgid "Rectangular Copier Labels"
 msgstr "Étiquettes rectangulaires pour copieur"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:26
+#: ../templates/zweckform-iso-templates.xml.h:30
 msgid "Video Labels (back)"
 msgstr "Étiquettes vidéo (dos)"
-
-#: ../data/desktop/glabels.desktop.in.h:1
-msgid "Create labels, business cards and media covers"
-msgstr "Crée des étiquettes, des cartes de visite et des pochettes multimédia"
-
-#: ../data/desktop/glabels.desktop.in.h:2
-msgid "gLabels Label Designer"
-msgstr "Créateur d'étiquettes gLabels"
-
-# src/item_text.c:467
-# src/item_text.c:467
-# src/item_text.c:482
-# src/item_text.c:482
-#: ../data/mime/glabels.keys.in.h:1 ../data/mime/glabels.xml.in.h:1
-msgid "gLabels Project File"
-msgstr "Fichier de projet gLabels"
-
-#: ../barcode-0.98/compat/getopt.c:583
-#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s : l'option « %s » est ambiguë\n"
-
-#: ../barcode-0.98/compat/getopt.c:607
-#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s : l'option « --%s » n'autorise pas d'argument\n"
-
-#: ../barcode-0.98/compat/getopt.c:612
-#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s : l'option « %c%s » n'autorise pas d'argument\n"
-
-#: ../barcode-0.98/compat/getopt.c:629
-#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s : l'option « %s » exige un argument\n"
-
-#. --option
-#: ../barcode-0.98/compat/getopt.c:658
-#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s : option « --%s » inconnue\n"
-
-#. +option or -option
-#: ../barcode-0.98/compat/getopt.c:662
-#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s : option « %c%s » inconnue\n"
-
-#. 1003.2 specifies the format of this message.
-#: ../barcode-0.98/compat/getopt.c:688
-#, c-format
-msgid "%s: illegal option -- %c\n"
-msgstr "%s : option -- %c non autorisée\n"
-
-#: ../barcode-0.98/compat/getopt.c:691
-#, c-format
-msgid "%s: invalid option -- %c\n"
-msgstr "%s : option -- %c non valide\n"
-
-#: ../barcode-0.98/compat/getopt.c:727
-#, c-format
-msgid "%s: option requires an argument -- %c\n"
-msgstr "%s : l'option exige un argument -- %c\n"
index 09e23b7ee2326303c4bf9afdfb3ff4e8b31563d4..6fe4f283a8e707d4e1c7ade770350126029a87f0 100644 (file)
--- a/po/it.po
+++ b/po/it.po
 # This file is distributed under the same license as the glabels package.
 # Andrea <mancio_and@yahoo.it>, 2003.
 # Daniele Medri <daniele.medri@libero.it>, 2005.
-# 
-# 
+#
+#
 msgid ""
 msgstr ""
 "Project-Id-Version: it\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-06-19 20:43-0400\n"
+"POT-Creation-Date: 2010-07-10 00:37-0400\n"
 "PO-Revision-Date: 2005-06-27 09:34+0200\n"
 "Last-Translator: Daniele Medri <daniele.medri@libero.it>\n"
 "Language-Team: Italian <it@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit"
+"Content-Transfer-Encoding: 8bit\n"
 
-#: src/glabels.c:116
-msgid "Could not initialize Bonobo!\n"
-msgstr "Non è possibile inizializzare Bonobo!\n"
+#: ../src/bc.c:66
+msgid "POSTNET (any)"
+msgstr "POSTNET (qualsiasi)"
 
-#: src/glabels-batch.c:52
-msgid "print this message"
-msgstr "stampa questo messaggio"
+#: ../src/bc.c:69
+msgid "POSTNET-5 (ZIP only)"
+msgstr "POSTNET-5 (solo ZIP/CAP)"
 
-#: src/glabels-batch.c:54
-msgid "print the version of glabels-batch being used"
-msgstr "stampa la versione di glabels batch utilizzata"
+#: ../src/bc.c:72
+msgid "POSTNET-9 (ZIP+4)"
+msgstr "POSTNET-9 (ZIP/CAP+4)"
 
-#: src/glabels-batch.c:56
-msgid "set output filename (default=\"output.ps\")"
-msgstr "imposta il nome del file di output (default=\"output.ps\")"
+#: ../src/bc.c:75
+msgid "POSTNET-11 (DPBC)"
+msgstr "POSTNET-11 (DPBC)"
 
-#: src/glabels-batch.c:56 src/glabels-batch.c:70
-msgid "filename"
-msgstr "nome file"
+#: ../src/bc.c:80
+msgid "CEPNET"
+msgstr ""
 
-#: src/glabels-batch.c:58
-msgid "number of sheets (default=1)"
-msgstr "numero di fogli (default=1)"
+#: ../src/bc.c:83
+msgid "EAN (any)"
+msgstr "EAN (qualsiasi)"
 
-#: src/glabels-batch.c:58
-msgid "sheets"
-msgstr "fogli"
+#: ../src/bc.c:86
+msgid "EAN-8"
+msgstr "EAN-8"
 
-#: src/glabels-batch.c:60
-msgid "number of copies (default=1)"
-msgstr "numero di copie (default=1)"
+#: ../src/bc.c:89
+msgid "EAN-8 +2"
+msgstr "EAN-8 +2"
 
-#: src/glabels-batch.c:60
-msgid "copies"
-msgstr "copie"
+#: ../src/bc.c:92
+msgid "EAN-8 +5"
+msgstr "EAN-8 +5"
 
-#: src/glabels-batch.c:62
-msgid "first label on first sheet (default=1)"
-msgstr "prima etichetta del primo foglio (default=1)"
+#: ../src/bc.c:95
+msgid "EAN-13"
+msgstr "EAN-13"
 
-#: src/glabels-batch.c:62
-msgid "first"
-msgstr "primo"
+#: ../src/bc.c:98
+msgid "EAN-13 +2"
+msgstr "EAN-13 +2"
 
-#: src/glabels-batch.c:64 src/print-dialog.c:336
-msgid "print outlines (to test printer alignment)"
-msgstr "stampa bordi (per provare l'allineamento della stampante)"
+#: ../src/bc.c:101
+msgid "EAN-13 +5"
+msgstr "EAN-13 +5"
 
-#: src/glabels-batch.c:66 src/print-dialog.c:344
-msgid "print in reverse (i.e. a mirror image)"
-msgstr "stampa al contrario (es. un'immagine riflessa)"
+#: ../src/bc.c:104
+msgid "UPC (UPC-A or UPC-E)"
+msgstr "UPC (UPC-A o UPC-E)"
 
-#: src/glabels-batch.c:68 src/print-dialog.c:351
-msgid "print crop marks"
-msgstr "stampa segni di taglio"
+#: ../src/bc.c:107 ../src/bc.c:348
+msgid "UPC-A"
+msgstr "UPC-A"
 
-#: src/glabels-batch.c:70
-msgid "input file for merging"
-msgstr "file per la stampa unione"
+#: ../src/bc.c:110
+msgid "UPC-A +2"
+msgstr "UPC-A +2"
 
-#: src/glabels-batch.c:107
-msgid "[OPTION...] GLABELS_FILE..."
-msgstr "[OPTION...] GLABELS_FILE..."
+#: ../src/bc.c:113
+msgid "UPC-A +5"
+msgstr "UPC-A +5"
 
-#: src/glabels-batch.c:127
-#, c-format
-msgid "missing glabels file\n"
-msgstr "file di glabels mancante\n"
+#: ../src/bc.c:116 ../src/bc.c:351
+msgid "UPC-E"
+msgstr "UPC-E"
 
-#: src/glabels-batch.c:158
-#, c-format
-msgid "cannot perform document merge with glabels file %s\n"
-msgstr "non è possibile unire i documenti con il file glabels %s\n"
+#: ../src/bc.c:119
+msgid "UPC-E +2"
+msgstr "UPC-E +2"
 
-#: src/glabels-batch.c:182
-#, c-format
-msgid "cannot open glabels file %s\n"
-msgstr "non è possibile aprire il file glabels %s\n"
+#: ../src/bc.c:122
+msgid "UPC-E +5"
+msgstr "UPC-E +5"
 
-#: src/window.c:244
-msgid "(none) - gLabels"
-msgstr "(niente) - gLabels"
+#: ../src/bc.c:125 ../src/bc.c:288
+msgid "ISBN"
+msgstr "ISBN"
 
-#: src/window.c:414
-msgid "(modified)"
-msgstr "(modificato)"
+#: ../src/bc.c:128
+msgid "ISBN +5"
+msgstr "ISBN +5"
 
-#: src/stock.c:65 data/ui/glabels-ui.xml.h:162
-msgid "_Select Mode"
-msgstr "Modalità di _selezione"
+#: ../src/bc.c:131 ../src/bc.c:204
+msgid "Code 39"
+msgstr "Code 39"
 
-#: src/stock.c:66 data/ui/glabels-ui.xml.h:163
-msgid "_Text"
-msgstr "_Testo"
+#: ../src/bc.c:134 ../src/bc.c:216
+msgid "Code 128"
+msgstr "Code 128"
 
-#: src/stock.c:67 data/ui/glabels-ui.xml.h:148
-msgid "_Line"
-msgstr "_Linea"
+#: ../src/bc.c:137
+msgid "Code 128C"
+msgstr "Code 128C"
 
-#: src/stock.c:68 data/ui/glabels-ui.xml.h:130
-msgid "_Box"
-msgstr "_Area"
+#: ../src/bc.c:140
+msgid "Code 128B"
+msgstr "Code 128B"
 
-#: src/stock.c:69 data/ui/glabels-ui.xml.h:141
-msgid "_Ellipse"
-msgstr "_Ellisse"
+#: ../src/bc.c:143 ../src/bc.c:285
+msgid "Interleaved 2 of 5"
+msgstr ""
 
-#: src/stock.c:70 data/ui/glabels-ui.xml.h:146
-msgid "_Image"
-msgstr "_Immagine"
+#: ../src/bc.c:146 ../src/bc.c:180
+msgid "Codabar"
+msgstr "Codabar"
 
-#: src/stock.c:71 data/ui/glabels-ui.xml.h:11
-msgid "Bar_code"
-msgstr "_Codice a barre"
+#: ../src/bc.c:149
+msgid "MSI"
+msgstr "MSI"
 
-#: src/stock.c:72
-msgid "_Merge Properties"
-msgstr "Proprietà di _unione"
+#: ../src/bc.c:152
+msgid "Plessey"
+msgstr "Plessey"
 
-#: src/stock.c:73
-msgid "Object _Properties"
-msgstr "_Proprietà·Oggetto"
+#: ../src/bc.c:155 ../src/bc.c:213
+#, fuzzy
+msgid "Code 93"
+msgstr "Code 39"
 
-#: src/stock.c:74 data/ui/glabels-ui.xml.h:13
-msgid "Bring to _Front"
-msgstr "Porta in _primo piano"
+#: ../src/bc.c:162
+msgid "Australia Post Standard"
+msgstr ""
 
-#: src/stock.c:75 data/ui/glabels-ui.xml.h:109
-msgid "Send to _Back"
-msgstr "Porta in _secondo piano"
+#: ../src/bc.c:165
+msgid "Australia Post Reply Paid"
+msgstr ""
 
-#: src/stock.c:76 data/ui/glabels-ui.xml.h:96
-msgid "Rotate _Left"
-msgstr "Ruota a sinistra"
+#: ../src/bc.c:168
+msgid "Australia Post Route Code"
+msgstr ""
 
-#: src/stock.c:77 data/ui/glabels-ui.xml.h:97
-msgid "Rotate _Right"
-msgstr "Ruota a destra"
+#: ../src/bc.c:171
+msgid "Australia Post Redirect"
+msgstr ""
 
-#: src/stock.c:78 data/ui/glabels-ui.xml.h:52
-msgid "Flip _Horizontally"
-msgstr "Capovolgi _orizzontalmente"
+#: ../src/bc.c:174
+msgid "Aztec Code"
+msgstr ""
 
-#: src/stock.c:79 data/ui/glabels-ui.xml.h:53
-msgid "Flip _Vertically"
-msgstr "Capovolgi _verticalmente"
+#: ../src/bc.c:177
+msgid "Aztec Rune"
+msgstr ""
 
-#: src/stock.c:80 data/ui/glabels-ui.xml.h:147
-msgid "_Lefts"
-msgstr "_Sinistra"
+#: ../src/bc.c:183
+#, fuzzy
+msgid "Code One"
+msgstr "Code 39"
 
-#: src/stock.c:81 data/ui/glabels-ui.xml.h:159
-msgid "_Rights"
-msgstr "_Destra"
+#: ../src/bc.c:186
+#, fuzzy
+msgid "Code 11"
+msgstr "Code 128"
 
-#: src/stock.c:82 data/ui/glabels-ui.xml.h:131
-msgid "_Centers"
-msgstr "_Centro"
+#: ../src/bc.c:189
+#, fuzzy
+msgid "Code 16K"
+msgstr "Code 128"
 
-#: src/stock.c:83 data/ui/glabels-ui.xml.h:164
-msgid "_Tops"
-msgstr "_In alto"
+#: ../src/bc.c:192
+msgid "Code 2 of 5 Matrix"
+msgstr ""
 
-#: src/stock.c:84
-msgid "Bottoms"
-msgstr "In basso"
+#: ../src/bc.c:195
+msgid "Code 2 of 5 IATA"
+msgstr ""
 
-#: src/stock.c:85
-msgid "Centers"
-msgstr "Centrato"
+#: ../src/bc.c:198
+msgid "Code 2 of 5 Data Logic"
+msgstr ""
 
-#: src/stock.c:86 src/stock.c:87 data/ui/glabels-ui.xml.h:62
-msgid "Label Ce_nter"
-msgstr "Etichetta ce_ntrata"
+#: ../src/bc.c:201
+msgid "Code 32 (Italian Pharmacode)"
+msgstr ""
 
-#: src/stock.c:88 data/ui/glabels-ui.xml.h:51
-msgid "Fill color"
-msgstr "Colore di riempimento"
+#: ../src/bc.c:207
+#, fuzzy
+msgid "Code 39 Extended"
+msgstr "Code 39"
 
-#: src/stock.c:89 data/ui/glabels-ui.xml.h:64
-msgid "Line color"
-msgstr "Colore Linea"
+#: ../src/bc.c:210
+#, fuzzy
+msgid "Code 49"
+msgstr "Code 39"
 
-#: src/stock.c:90 src/stock.c:92
-msgid "Linked"
-msgstr "Collegato"
+#: ../src/bc.c:219
+msgid "Code 128 (Mode C supression)"
+msgstr ""
 
-#: src/stock.c:91 src/stock.c:93
-msgid "Not Linked"
-msgstr "Nessun collegamento"
+#: ../src/bc.c:222
+msgid "DAFT Code"
+msgstr ""
 
-#: src/ui-property-bar.c:345 src/object-editor.c:499
-msgid "Default"
+#: ../src/bc.c:225
+msgid "Data Matrix"
+msgstr ""
+
+#: ../src/bc.c:228
+msgid "Deutsche Post Leitcode"
+msgstr ""
+
+#: ../src/bc.c:231
+msgid "Deutsche Post Identcode"
+msgstr ""
+
+#: ../src/bc.c:234
+msgid "Dutch Post KIX Code"
+msgstr ""
+
+#: ../src/bc.c:237
+msgid "European Article Number (EAN)"
+msgstr ""
+
+#: ../src/bc.c:240
+msgid "Grid Matrix"
+msgstr ""
+
+#: ../src/bc.c:243
+msgid "GS1-128"
+msgstr ""
+
+#: ../src/bc.c:246
+msgid "GS1 DataBar-14"
+msgstr ""
+
+#: ../src/bc.c:255
+msgid "GS1 DataBar-14 Stacked"
+msgstr ""
+
+#: ../src/bc.c:258
+msgid "GS1 DataBar-14 Stacked Omni."
+msgstr ""
+
+#: ../src/bc.c:261
+msgid "GS1 DataBar Extended Stacked"
+msgstr ""
+
+#: ../src/bc.c:264
+#, fuzzy
+msgid "HIBC Code 128"
+msgstr "Code 128"
+
+#: ../src/bc.c:267
+#, fuzzy
+msgid "HIBC Code 39"
+msgstr "Code 39"
+
+#: ../src/bc.c:270
+msgid "HIBC Data Matrix"
+msgstr ""
+
+#: ../src/bc.c:273
+msgid "HIBC QR Code"
+msgstr ""
+
+#: ../src/bc.c:276
+msgid "HIBC PDF417"
+msgstr ""
+
+#: ../src/bc.c:279
+msgid "HIBC Micro PDF417"
+msgstr ""
+
+#: ../src/bc.c:282
+msgid "HIBC Aztec Code"
+msgstr ""
+
+#: ../src/bc.c:291
+msgid "ITF-14"
+msgstr ""
+
+#: ../src/bc.c:294
+msgid "Japanese Postal"
+msgstr ""
+
+#: ../src/bc.c:297
+msgid "Korean Postal"
+msgstr ""
+
+#: ../src/bc.c:300
+msgid "LOGMARS"
+msgstr ""
+
+#: ../src/bc.c:303
+msgid "Micro PDF417"
+msgstr ""
+
+#: ../src/bc.c:306
+msgid "Micro QR Code"
+msgstr ""
+
+#: ../src/bc.c:309
+#, fuzzy
+msgid "MSI Plessey"
+msgstr "Plessey"
+
+#: ../src/bc.c:312
+msgid "NVE-18"
+msgstr ""
+
+#: ../src/bc.c:315
+msgid "PDF417"
+msgstr ""
+
+#: ../src/bc.c:318
+msgid "PDF417 Truncated"
+msgstr ""
+
+#: ../src/bc.c:321
+msgid "PLANET"
+msgstr ""
+
+#: ../src/bc.c:324
+#, fuzzy
+msgid "PostNet"
+msgstr "Incolla"
+
+#: ../src/bc.c:327
+#, fuzzy
+msgid "Pharmacode"
+msgstr "_Codice a barre"
+
+#: ../src/bc.c:330
+msgid "Pharmacode 2-track"
+msgstr ""
+
+#: ../src/bc.c:333
+msgid "Pharmazentral Nummer (PZN)"
+msgstr ""
+
+#: ../src/bc.c:336
+msgid "QR Code"
+msgstr ""
+
+#: ../src/bc.c:339
+msgid "Royal Mail 4-State"
+msgstr ""
+
+#: ../src/bc.c:342
+#, fuzzy
+msgid "Telepen"
+msgstr "Cancella"
+
+#: ../src/bc.c:345
+msgid "Telepen Numeric"
+msgstr ""
+
+#: ../src/bc.c:354
+msgid "USPS One Code"
+msgstr ""
+
+#: ../src/bc.c:357
+#, fuzzy
+msgid "UK Plessey"
+msgstr "Plessey"
+
+#: ../src/bc.c:364
+msgid "IEC16022 (DataMatrix)"
+msgstr ""
+
+#: ../src/bc.c:371
+msgid "IEC18004 (QRCode)"
+msgstr ""
+
+#: ../src/color-combo-button.c:198 ../src/color-combo.c:178
+#, fuzzy
+msgid "Default Color"
 msgstr "Predefinito"
 
-#: src/ui-property-bar.c:360 src/object-editor.c:512
-msgid "No fill"
-msgstr "Nessun riempimento"
+#: ../src/color-combo-menu.c:83
+#, fuzzy
+msgid "Dark Red"
+msgstr "rosso scuro"
 
-#: src/ui-property-bar.c:375 src/object-editor.c:505
-msgid "No line"
-msgstr "Nessuna linea"
+#: ../src/color-combo-menu.c:84
+msgid "Brown"
+msgstr ""
 
-#: src/ui-sidebar.c:180
-msgid "Object properties"
-msgstr "Proprietà oggetto"
+#: ../src/color-combo-menu.c:85
+msgid "Dark Goldenrod"
+msgstr ""
 
-#: src/commands.c:385
-msgid ""
-"A label and business card creation program for GNOME.\n"
-" \n"
-"Glabels is free software; you can redistribute it and/or modify it under the "
-"terms of the GNU General Public License as published by the Free Software "
-"Foundation; either version 2 of the License, or (at your option) any later "
-"version.\n"
-" \n"
-"This program is distributed in the hope that it will be useful, but WITHOUT "
-"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or "
-"FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for "
-"more details.\n"
-msgstr ""
-
-#: src/commands.c:399
-msgid "See the file AUTHORS for additional credits,"
-msgstr "Visualizza il file AUTHORS per informazioni aggiuntive."
+#: ../src/color-combo-menu.c:86
+#, fuzzy
+msgid "Dark Green"
+msgstr "verde scuro"
 
-#: src/commands.c:400
-msgid "or visit http://glabels.sourceforge.net/"
-msgstr "oppure visita http://glabels.sourceforge.net/"
+#: ../src/color-combo-menu.c:87
+msgid "Dark Cyan"
+msgstr ""
 
-#: src/commands.c:409
-msgid " "
-msgstr " "
+#: ../src/color-combo-menu.c:88
+msgid "Navy Blue"
+msgstr ""
 
-#: src/commands.c:424
-msgid "glabels"
-msgstr "glabels"
+#: ../src/color-combo-menu.c:89
+#, fuzzy
+msgid "Dark Violet"
+msgstr "blu scuro"
 
-#: src/file.c:100
-msgid "New Label or Card"
-msgstr "Nuova etichetta o scheda"
+#: ../src/color-combo-menu.c:91
+#, fuzzy
+msgid "Red"
+msgstr "Ripeti"
 
-#: src/file.c:132 src/file.c:304
-msgid "Media Type"
-msgstr "Tipo media"
+#: ../src/color-combo-menu.c:92
+#, fuzzy
+msgid "Orange"
+msgstr "arancione"
 
-#: src/file.c:138 src/file.c:310
-msgid "Label orientation"
-msgstr "Orientazione etichetta"
+#: ../src/color-combo-menu.c:93
+msgid "Dark Yellow"
+msgstr ""
+
+#: ../src/color-combo-menu.c:94
+#, fuzzy
+msgid "Medium green"
+msgstr "verde scuro"
+
+#: ../src/color-combo-menu.c:95
+msgid "Turquoise"
+msgstr ""
+
+#: ../src/color-combo-menu.c:96
+#, fuzzy
+msgid "Blue"
+msgstr "blu"
+
+#: ../src/color-combo-menu.c:97
+#, fuzzy
+msgid "Purple"
+msgstr "viola"
+
+#: ../src/color-combo-menu.c:99
+msgid "Salmon"
+msgstr ""
+
+#: ../src/color-combo-menu.c:100
+#, fuzzy
+msgid "Gold"
+msgstr "oro"
+
+#: ../src/color-combo-menu.c:101
+#, fuzzy
+msgid "Yellow"
+msgstr "giallo"
+
+#: ../src/color-combo-menu.c:102
+#, fuzzy
+msgid "Green"
+msgstr "verde"
+
+#: ../src/color-combo-menu.c:103
+msgid "Cyan"
+msgstr ""
+
+#: ../src/color-combo-menu.c:104
+#, fuzzy
+msgid "SkyBlue"
+msgstr "Stile"
+
+#: ../src/color-combo-menu.c:105
+msgid "Violet"
+msgstr ""
+
+#: ../src/color-combo-menu.c:107
+#, fuzzy
+msgid "Pink"
+msgstr "rosa"
 
-#: src/file.c:269
+#: ../src/color-combo-menu.c:108
+msgid "Khaki"
+msgstr ""
+
+#: ../src/color-combo-menu.c:109
+#, fuzzy
+msgid "Light Yellow"
+msgstr "Marrone chiaro"
+
+#: ../src/color-combo-menu.c:110
+#, fuzzy
+msgid "Light Green"
+msgstr "Marrone chiaro"
+
+#: ../src/color-combo-menu.c:111
+#, fuzzy
+msgid "Light Cyan"
+msgstr "Allineamento a destra"
+
+#: ../src/color-combo-menu.c:112
+msgid "Slate Gray"
+msgstr ""
+
+#: ../src/color-combo-menu.c:113
+#, fuzzy
+msgid "Thistle"
+msgstr "bianco"
+
+#: ../src/color-combo-menu.c:115
+#, fuzzy
+msgid "White"
+msgstr "bianco"
+
+#: ../src/color-combo-menu.c:117
+#, no-c-format
+msgid "10% Gray"
+msgstr ""
+
+#: ../src/color-combo-menu.c:119
+#, no-c-format
+msgid "25% Gray"
+msgstr ""
+
+#: ../src/color-combo-menu.c:121
+#, no-c-format
+msgid "40% Gray"
+msgstr ""
+
+#: ../src/color-combo-menu.c:123
+#, no-c-format
+msgid "50% Gray"
+msgstr ""
+
+#: ../src/color-combo-menu.c:125
+#, no-c-format
+msgid "60% Gray"
+msgstr ""
+
+#: ../src/color-combo-menu.c:126
+#, fuzzy
+msgid "Black"
+msgstr "nero"
+
+#: ../src/color-combo-menu.c:254 ../src/color-combo-menu.c:373
+#, fuzzy
+msgid "Custom Color"
+msgstr "Colore personalizzato:"
+
+#: ../src/color-combo-menu.c:319
+#, fuzzy, c-format
+msgid "Custom Color #%u"
+msgstr "Colore personalizzato:"
+
+#: ../src/critical-error-handler.c:70
+msgid "gLabels Fatal Error!"
+msgstr ""
+
+#: ../src/file.c:84
+msgid "New Label or Card"
+msgstr "Nuova etichetta o scheda"
+
+#: ../src/file.c:175 ../src/label.c:587 ../src/label.c:631
 msgid "Label properties"
 msgstr "Proprietà etichetta"
 
-#: src/file.c:452 src/file.c:870
+#: ../src/file.c:267 ../src/file.c:557
 msgid "All files"
 msgstr "Tutti i file"
 
-#: src/file.c:457 src/file.c:875
+#: ../src/file.c:272 ../src/file.c:562
 msgid "gLabels documents"
 msgstr "Documenti di gLabels"
 
-#: src/file.c:505 src/file.c:617 src/file.c:934 src/file.c:1130
+#: ../src/file.c:319 ../src/file.c:620
 msgid "Empty file name selection"
 msgstr "Selezione di un nome file vuoto"
 
-#: src/file.c:506 src/file.c:520 src/file.c:618 src/file.c:632
+#: ../src/file.c:322 ../src/file.c:338
 msgid "Please select a file or supply a valid file name"
 msgstr "Per piacere, indica un file o un nome valido"
 
-#: src/file.c:519 src/file.c:631
+#: ../src/file.c:335
 msgid "File does not exist"
 msgstr "Il file non esiste"
 
-#: src/file.c:563 data/ui/glabels-ui.xml.h:74
-msgid "Open"
-msgstr "Apri"
-
-#: src/file.c:565
-msgid "Open label"
-msgstr "Apri etichetta"
-
-#: src/file.c:707
+#: ../src/file.c:410
 #, c-format
 msgid "Could not open file \"%s\""
 msgstr "Non riesco ad aprire il file \"%s\""
 
-#: src/file.c:715
+#: ../src/file.c:413
 msgid "Not a supported file format"
 msgstr "Non è un formato file supportato"
 
-#: src/file.c:797 src/file.c:979 src/file.c:1174
+#: ../src/file.c:491 ../src/file.c:670
 #, c-format
 msgid "Could not save file \"%s\""
 msgstr "Non riesco a salvare il file \"%s\""
 
-#: src/file.c:805 src/file.c:987 src/file.c:1182
+#: ../src/file.c:495 ../src/file.c:674
 msgid "Error encountered during save.  The file is still not saved."
 msgstr ""
 
-#: src/file.c:848 src/file.c:1048
+#: ../src/file.c:535
 #, c-format
 msgid "Save \"%s\" as"
 msgstr "Salva \"%s\" come"
 
-#: src/file.c:935 src/file.c:1131
+#: ../src/file.c:623
 msgid "Please supply a valid file name"
 msgstr "Per piacere, indica un nome file valido"
 
-#: src/file.c:952 src/file.c:1147
+#: ../src/file.c:644
 #, c-format
 msgid "Overwrite file \"%s\"?"
 msgstr "Sovrascrivi il file \"%s\"?"
 
-#: src/file.c:960 src/file.c:1155
+#: ../src/file.c:648
 msgid "File already exists."
 msgstr "File già esistente."
 
-#: src/file.c:1271
+#: ../src/file.c:744
 #, c-format
 msgid "Save changes to document \"%s\" before closing?"
 msgstr "Salva i cambiamenti al documento \"%s\" prima di chiudere?"
 
-#: src/file.c:1279
+#: ../src/file.c:748
 msgid "Your changes will be lost if you don't save them."
 msgstr "I tuoi cambiamenti andranno persi se non salvi."
 
-#: src/file.c:1282
+#: ../src/file.c:751
 msgid "Close without saving"
 msgstr "Chiudi senza salvare"
 
-#. Should not happen
-#: src/prefs.c:156 src/prefs.c:163 data/glade/prefs-dialog.glade.h:23
-#: data/glade/object-editor.glade.h:37
-msgid "points"
-msgstr "punti"
+#: ../src/font-combo-menu.c:137
+#, fuzzy
+msgid "Recent fonts"
+msgstr "_File Recenti"
 
-#: src/prefs.c:158 data/glade/object-editor.glade.h:36
-#: data/glade/template-designer.glade.h:74
-msgid "inches"
-msgstr "pollici"
+#: ../src/font-combo-menu.c:152
+msgid "Proportional fonts"
+msgstr ""
 
-#: src/prefs.c:160
-msgid "mm"
-msgstr "mm"
+#: ../src/font-combo-menu.c:160
+msgid "Fixed-width fonts"
+msgstr ""
 
-#: src/prefs-dialog.c:248 data/glade/prefs-dialog.glade.h:22
-msgid "gLabels Preferences"
-msgstr "Preferenze gLabels"
+#: ../src/font-combo-menu.c:168
+#, fuzzy
+msgid "All fonts"
+msgstr "Tutti i file"
 
 #.
-#. * Submenu: Order
+#. * Allow text samples to be localized.
+#. *
+#. * FIXME: if we could extract enough meta information from the fonts
+#. * themselves, perhaps rather than setting these globally for the
+#. * current locale, they could be unique to each font family.
 #.
-#: src/view.c:3574 data/ui/glabels-ui.xml.h:154
-msgid "_Order"
-msgstr "_Ordine"
+#: ../src/font-combo-menu-item.c:132
+msgctxt "Short sample text"
+msgid "Aa"
+msgstr ""
 
-#.
-#. * Submenu: Rotate/Flip
-#.
-#: src/view.c:3595 data/ui/glabels-ui.xml.h:160
-msgid "_Rotate/Flip"
-msgstr "_Ruota/capovolgi"
+#: ../src/font-combo-menu-item.c:134
+msgctxt "Lower case sample text"
+msgid "abcdefghijklmnopqrstuvwxyz"
+msgstr ""
 
-#.
-#. * Submenu: Align Horizontally
-#.
-#: src/view.c:3628
-msgid "Align _Horizontally"
-msgstr "Allineamento _orizzontale"
+#: ../src/font-combo-menu-item.c:136
+msgctxt "Upper case sample text"
+msgid "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr ""
 
-#.
-#. * Submenu: Align Vertically
-#.
-#: src/view.c:3667
-msgid "Align _Vertically"
-msgstr "Allineamento _verticale"
+#: ../src/font-combo-menu-item.c:138
+msgctxt "Numbers and special characters sample text"
+msgid "0123456789 .:,;(*!?)"
+msgstr ""
 
-#: src/view.c:3728 data/ui/glabels-ui.xml.h:137
-msgid "_Delete"
-msgstr "Cancella"
+#: ../src/font-combo-menu-item.c:157
+msgid "Sample text"
+msgstr ""
 
-#. Build editor.
-#: src/view-box.c:224
-msgid "Box object properties"
-msgstr "Proprietà dell'oggetto area"
+#: ../src/glabels-batch.c:53
+#, fuzzy
+msgid "set output filename (default=\"output.pdf\")"
+msgstr "imposta il nome del file di output (default=\"output.ps\")"
 
-#. Build editor.
-#: src/view-ellipse.c:224
-msgid "Ellipse object properties"
-msgstr "Proprietà dell'oggetto Ellisse"
+#: ../src/glabels-batch.c:53 ../src/glabels-batch.c:67
+msgid "filename"
+msgstr "nome file"
 
-#. Build editor.
-#: src/view-line.c:224
-msgid "Line object properties"
-msgstr "Proprietà dell'oggetto Linea"
+#: ../src/glabels-batch.c:55
+msgid "number of sheets (default=1)"
+msgstr "numero di fogli (default=1)"
 
-#. Build editor.
-#: src/view-image.c:223
-msgid "Image object properties"
-msgstr "Proprietà dell'oggetto Immagine"
+#: ../src/glabels-batch.c:55
+msgid "sheets"
+msgstr "fogli"
 
-#. Build editor.
-#: src/view-text.c:251
-msgid "Text object properties"
-msgstr "Proprietà dell'oggetto Testo"
+#: ../src/glabels-batch.c:57
+msgid "number of copies (default=1)"
+msgstr "numero di copie (default=1)"
 
-#: src/view-text.c:563 data/glade/object-editor.glade.h:28
-msgid "Text"
-msgstr "Testo"
+#: ../src/glabels-batch.c:57
+msgid "copies"
+msgstr "copie"
 
-#. Build editor.
-#: src/view-barcode.c:210
-msgid "Barcode object properties"
+#: ../src/glabels-batch.c:59
+msgid "first label on first sheet (default=1)"
+msgstr "prima etichetta del primo foglio (default=1)"
+
+#: ../src/glabels-batch.c:59
+msgid "first"
+msgstr "primo"
+
+#: ../src/glabels-batch.c:61 ../data/ui/print-op-dialog-custom-widget.ui.h:13
+msgid "print outlines (to test printer alignment)"
+msgstr "stampa bordi (per provare l'allineamento della stampante)"
+
+#: ../src/glabels-batch.c:63 ../data/ui/print-op-dialog-custom-widget.ui.h:12
+msgid "print in reverse (i.e. a mirror image)"
+msgstr "stampa al contrario (es. un'immagine riflessa)"
+
+#: ../src/glabels-batch.c:65 ../data/ui/print-op-dialog-custom-widget.ui.h:11
+msgid "print crop marks"
+msgstr "stampa segni di taglio"
+
+#: ../src/glabels-batch.c:67
+msgid "input file for merging"
+msgstr "file per la stampa unione"
+
+#: ../src/glabels-batch.c:69 ../src/glabels.c:64
+msgid "[FILE...]"
+msgstr ""
+
+#: ../src/glabels-batch.c:99
+msgid "Print files created with gLabels."
+msgstr ""
+
+#: ../src/glabels-batch.c:107 ../src/glabels.c:89
+#, c-format
+msgid ""
+"%s\n"
+"Run '%s --help' to see a full list of available command line options.\n"
+msgstr ""
+
+#: ../src/glabels-batch.c:151
+#, c-format
+msgid "cannot perform document merge with glabels file %s\n"
+msgstr "non è possibile unire i documenti con il file glabels %s\n"
+
+#: ../src/glabels-batch.c:186
+#, c-format
+msgid "cannot open glabels file %s\n"
+msgstr "non è possibile aprire il file glabels %s\n"
+
+#: ../src/glabels.c:81
+msgid "Launch gLabels label and business card designer."
+msgstr ""
+
+#: ../src/label-barcode.c:154 ../src/ui.c:319
+msgid "Create barcode object"
+msgstr "Crea oggetto codice a barre"
+
+#: ../src/label-barcode.c:227 ../src/label-barcode.c:389
+#, fuzzy
+msgid "Barcode data"
+msgstr "_Codice a barre"
+
+#: ../src/label-barcode.c:263
+#, fuzzy
+msgid "Barcode property"
 msgstr "Proprietà dell'oggetto Codice a barre"
 
-#: src/view-barcode.c:580 src/print.c:1089
+#: ../src/label-barcode.c:485
+msgid "Barcode data empty"
+msgstr ""
+
+#: ../src/label-barcode.c:489
 msgid "Invalid barcode data"
 msgstr "Codice a barre non valido"
 
-#: src/merge-properties-dialog.c:231
-msgid "Merge Properties"
-msgstr "Proprietà di unione"
+#: ../src/label-box.c:156
+#, fuzzy
+msgid "Create box object"
+msgstr "Crea oggeto testo"
 
-#. ---- Source section ----
-#: src/merge-properties-dialog.c:237
-msgid "Source"
-msgstr "Sorgente"
+#: ../src/label-box.c:230 ../src/label-ellipse.c:232 ../src/stock.c:93
+#: ../data/ui/property-bar.ui.h:3
+msgid "Fill color"
+msgstr "Colore di riempimento"
 
-#: src/merge-properties-dialog.c:245
-msgid "Format:"
-msgstr "Formato:"
+#: ../src/label-box.c:261 ../src/label-ellipse.c:261 ../src/label-line.c:212
+#: ../src/stock.c:94 ../data/ui/property-bar.ui.h:8
+msgid "Line color"
+msgstr "Colore Linea"
 
-#. Location line
-#: src/merge-properties-dialog.c:273
-msgid "Location:"
-msgstr "Posizione:"
+#: ../src/label-box.c:289 ../src/label-ellipse.c:290 ../src/label-line.c:241
+#: ../data/ui/property-bar.ui.h:9
+msgid "Line width"
+msgstr "Larghezza linea"
 
-#: src/merge-properties-dialog.c:282 src/merge-properties-dialog.c:393
-msgid "Select merge-database source"
-msgstr "Seleziona sorgente unione-database"
+#: ../src/label.c:402
+msgid "Untitled"
+msgstr "Senza nome"
 
-#: src/merge-properties-dialog.c:289 src/merge-properties-dialog.c:404
-msgid "N/A"
-msgstr "N/A"
+#: ../src/label.c:705 ../src/ui.c:422
+#, fuzzy
+msgid "Merge properties"
+msgstr "Proprietà di unione"
 
-#. ---- Sample Fields section ----
-#: src/merge-properties-dialog.c:300
-msgid "Record selection/preview:"
-msgstr "Selezione/anteprima record:"
+#: ../src/label.c:1197 ../src/ui.c:215
+msgid "Delete"
+msgstr "Cancella"
 
-#: src/merge-properties-dialog.c:326
-msgid "Select"
-msgstr "Seleziona"
+#: ../src/label.c:1230 ../src/ui.c:324
+#, fuzzy
+msgid "Bring to front"
+msgstr "Porta in _primo piano"
 
-#: src/merge-properties-dialog.c:334
-msgid "Record/Field"
-msgstr "Record/campo"
+#: ../src/label.c:1266 ../src/ui.c:331
+#, fuzzy
+msgid "Send to back"
+msgstr "Porta in _secondo piano"
 
-#: src/merge-properties-dialog.c:342 data/glade/object-editor.glade.h:9
-msgid "Data"
-msgstr "Dati"
+#: ../src/label.c:1307
+msgid "Rotate"
+msgstr "Girare"
 
-#: src/print-dialog.c:266 data/ui/glabels-ui.xml.h:81
-msgid "Print"
-msgstr "Stampa"
+#: ../src/label.c:1342 ../src/ui.c:338
+#, fuzzy
+msgid "Rotate left"
+msgstr "Ruota a sinistra"
 
-#: src/print-dialog.c:281
-msgid "_Job"
-msgstr "Lavoro"
+#: ../src/label.c:1375 ../src/ui.c:345
+#, fuzzy
+msgid "Rotate right"
+msgstr "Ruota a destra"
 
-#: src/print-dialog.c:286
-msgid "P_rinter"
-msgstr "Stampante"
+#: ../src/label.c:1410 ../src/ui.c:352
+#, fuzzy
+msgid "Flip horizontally"
+msgstr "Capovolgi _orizzontalmente"
 
-#. ----------- Add simple-copies widget ------------
-#: src/print-dialog.c:314
-msgid "Copies"
-msgstr "Copie"
+#: ../src/label.c:1445 ../src/ui.c:359
+#, fuzzy
+msgid "Flip vertically"
+msgstr "Capovolgi _verticalmente"
 
-#. ------- Add merge control widget ------------
-#: src/print-dialog.c:322
-msgid "Document merge control"
-msgstr ""
+#: ../src/label.c:1485 ../src/ui.c:366
+#, fuzzy
+msgid "Align left"
+msgstr "Allineamento:"
 
-#. ----------- Add custom print options area ------------
-#: src/print-dialog.c:330
-msgid "Options"
-msgstr "Opzioni"
+#: ../src/label.c:1542 ../src/ui.c:373
+#, fuzzy
+msgid "Align right"
+msgstr "Allineamento orizzontale"
 
-#: src/print-dialog.c:553 src/print-dialog.c:592
-msgid "Print preview"
-msgstr "Anteprima di stampa"
+#: ../src/label.c:1603 ../src/ui.c:380
+#, fuzzy
+msgid "Align horizontal center"
+msgstr "Allinea gli oggetti nel centro orizzontale"
 
-#: src/template-designer.c:409 data/glade/template-designer.glade.h:73
-msgid "gLabels Template Designer"
-msgstr "Progettazione di modelli per gLabels"
+#: ../src/label.c:1679 ../src/ui.c:387
+#, fuzzy
+msgid "Align tops"
+msgstr "Allineamento:"
 
-#: src/bc.c:60
-msgid "POSTNET (any)"
-msgstr "POSTNET (qualsiasi)"
+#: ../src/label.c:1736 ../src/ui.c:394
+#, fuzzy
+msgid "Align bottoms"
+msgstr "Allinea gli oggetti in basso"
 
-#: src/bc.c:63
-msgid "POSTNET-5 (ZIP only)"
-msgstr "POSTNET-5 (solo ZIP/CAP)"
+#: ../src/label.c:1797 ../src/ui.c:401
+#, fuzzy
+msgid "Align vertical center"
+msgstr "Allinea gli oggetti al centro verticale"
 
-#: src/bc.c:66
-msgid "POSTNET-9 (ZIP+4)"
-msgstr "POSTNET-9 (ZIP/CAP+4)"
+#: ../src/label.c:1875 ../src/ui.c:408
+#, fuzzy
+msgid "Center horizontally"
+msgstr "Capovolgi oggetto orizzontalmente"
 
-#: src/bc.c:69
-msgid "POSTNET-11 (DPBC)"
-msgstr "POSTNET-11 (DPBC)"
+#: ../src/label.c:1922 ../src/ui.c:415
+#, fuzzy
+msgid "Center vertically"
+msgstr "Capovolgi oggetto verticalmente"
 
-#: src/bc.c:72
-msgid "EAN (any)"
-msgstr "EAN (qualsiasi)"
+#: ../src/label.c:2610 ../src/label.c:2652 ../src/label.c:2678 ../src/ui.c:208
+msgid "Paste"
+msgstr "Incolla"
 
-#: src/bc.c:75
-msgid "EAN-8"
-msgstr "EAN-8"
+#: ../src/label-ellipse.c:160
+#, fuzzy
+msgid "Create ellipse object"
+msgstr "Crea oggetto linea"
 
-#: src/bc.c:78
-msgid "EAN-8 +2"
-msgstr "EAN-8 +2"
+#: ../src/label-image.c:200 ../src/ui.c:312
+msgid "Create image object"
+msgstr "Crea oggetto immagine"
 
-#: src/bc.c:81
-msgid "EAN-8 +5"
-msgstr "EAN-8 +5"
+#: ../src/label-image.c:333 ../src/label-image.c:474
+#, fuzzy
+msgid "Set image"
+msgstr "Ripristina dimensioni immagine"
 
-#: src/bc.c:84
-msgid "EAN-13"
-msgstr "EAN-13"
+#: ../src/label-line.c:147 ../src/ui.c:298
+msgid "Create line object"
+msgstr "Crea oggetto linea"
 
-#: src/bc.c:87
-msgid "EAN-13 +2"
-msgstr "EAN-13 +2"
+#: ../src/label-object.c:383 ../src/label-object.c:416
+msgid "Move"
+msgstr ""
 
-#: src/bc.c:90
-msgid "EAN-13 +5"
-msgstr "EAN-13 +5"
+#: ../src/label-object.c:467
+#, fuzzy
+msgid "Resize"
+msgstr "Dimensioni·pagina:"
 
-#: src/bc.c:93
-msgid "UPC (UPC-A or UPC-E)"
-msgstr "UPC (UPC-A o UPC-E)"
+#: ../src/label-object.c:1185
+msgid "Shadow state"
+msgstr ""
 
-#: src/bc.c:96
-msgid "UPC-A"
-msgstr "UPC-A"
+#: ../src/label-object.c:1228
+msgid "Shadow offset"
+msgstr ""
 
-#: src/bc.c:99
-msgid "UPC-A +2"
-msgstr "UPC-A +2"
+#: ../src/label-object.c:1276
+msgid "Shadow color"
+msgstr ""
 
-#: src/bc.c:102
-msgid "UPC-A +5"
-msgstr "UPC-A +5"
+#: ../src/label-object.c:1319
+msgid "Shadow opacity"
+msgstr ""
 
-#: src/bc.c:105
-msgid "UPC-E"
-msgstr "UPC-E"
+#: ../src/label-text.c:279 ../src/ui.c:284
+msgid "Create text object"
+msgstr "Crea oggeto testo"
 
-#: src/bc.c:108
-msgid "UPC-E +2"
-msgstr "UPC-E +2"
+#: ../src/label-text.c:451
+#, fuzzy
+msgid "Typing"
+msgstr "rosa"
 
-#: src/bc.c:111
-msgid "UPC-E +5"
-msgstr "UPC-E +5"
+#: ../src/label-text.c:584 ../data/ui/property-bar.ui.h:4
+#, fuzzy
+msgid "Font family"
+msgstr "Nome font"
 
-#: src/bc.c:114
-msgid "ISBN"
-msgstr "ISBN"
+#: ../src/label-text.c:622 ../data/ui/property-bar.ui.h:5
+msgid "Font size"
+msgstr "Dimesione·font"
 
-#: src/bc.c:117
-msgid "ISBN +5"
-msgstr "ISBN +5"
+#: ../src/label-text.c:655
+#, fuzzy
+msgid "Font weight"
+msgstr "Nome font"
 
-#: src/bc.c:120
-msgid "Code 39"
-msgstr "Code 39"
+#: ../src/label-text.c:688 ../data/ui/property-bar.ui.h:6
+msgid "Italic"
+msgstr "Corsivo"
 
-#: src/bc.c:123
-msgid "Code 128"
-msgstr "Code 128"
+#: ../src/label-text.c:721
+#, fuzzy
+msgid "Align text"
+msgstr "Allineamento:"
 
-#: src/bc.c:126
-msgid "Code 128C"
-msgstr "Code 128C"
+#: ../src/label-text.c:754
+#, fuzzy
+msgid "Line spacing"
+msgstr "Spaziatura:"
 
-#: src/bc.c:129
-msgid "Code 128B"
-msgstr "Code 128B"
+#: ../src/label-text.c:787 ../data/ui/property-bar.ui.h:11
+msgid "Text color"
+msgstr "Colore testo"
 
-#: src/bc.c:132
-msgid "Interleaved 2 of 5"
+#: ../src/label-text.c:931
+msgid "Auto shrink"
 msgstr ""
 
-#: src/bc.c:135
-msgid "Codabar"
-msgstr "Codabar"
-
-#: src/bc.c:138
-msgid "MSI"
-msgstr "MSI"
-
-#: src/bc.c:141
-msgid "Plessey"
-msgstr "Plessey"
+#: ../src/media-select.c:349 ../src/media-select.c:353
+#: ../src/media-select.c:502 ../src/media-select.c:701
+msgctxt "Brand"
+msgid "Any"
+msgstr ""
 
-#: src/label.c:569
-msgid "Untitled"
-msgstr "Senza nome"
+#: ../src/media-select.c:358 ../src/media-select.c:871
+msgctxt "Page size"
+msgid "Any"
+msgstr ""
 
-#: src/xml-label.c:176 src/xml-label.c:213
-msgid "xmlParseFile error"
+#: ../src/media-select.c:367 ../src/media-select.c:370
+#: ../src/media-select.c:880
+msgctxt "Category"
+msgid "Any"
 msgstr ""
 
-#: src/xml-label.c:250
-msgid "No document root"
-msgstr "Nessun documento radice"
+#: ../src/media-select.c:968
+#, fuzzy
+msgid "No recent templates found."
+msgstr "Nessun modello trovato!"
 
-#: src/xml-label.c:264
-msgid "Importing from glabels 0.1 format"
+#: ../src/media-select.c:970
+msgid "Try selecting a template in the \"Search all\" tab."
 msgstr ""
 
-#: src/xml-label.c:272
-msgid "Importing from glabels 0.4 format"
+#. Translators: "No match" means that for the given template search criteria, there
+#. * were no matches found.
+#: ../src/media-select.c:1061
+msgid "No match."
 msgstr ""
 
-#: src/xml-label.c:279
-msgid "Importing from glabels 1.91 format"
+#: ../src/media-select.c:1063
+msgid "Try selecting a different brand, page size or category."
 msgstr ""
 
-#: src/xml-label.c:282
-msgid "bad document, unknown glabels Namespace"
+#: ../src/media-select.c:1157
+#, fuzzy
+msgid "No custom templates found."
+msgstr "Nessun modello trovato!"
+
+#: ../src/media-select.c:1159
+msgid ""
+"You may create new templates or try searching for pre-defined templates in "
+"the \"Search all\" tab."
 msgstr ""
 
-#: src/xml-label.c:311 src/xml-label-04.c:75 src/xml-label-191.c:131
-#, c-format
-msgid "Bad root node = \"%s\""
+#. Translators: "None" here means that no document-merge source or
+#. * method has been selected.
+#: ../src/merge.c:171 ../src/merge.c:212 ../src/merge.c:376 ../src/merge.c:379
+msgid "None"
+msgstr "Nessuno"
+
+#: ../src/merge-evolution.c:316
+msgid "Couldn't construct query"
 msgstr ""
 
-#: src/xml-label.c:348 src/xml-label-191.c:165
-#, c-format
-msgid "bad node in Document node =  \"%s\""
+#: ../src/merge-evolution.c:322 ../src/merge-evolution.c:333
+#, fuzzy
+msgid "Couldn't open addressbook."
+msgstr "Non riesco ad aprire il file \"%s\""
+
+#: ../src/merge-evolution.c:348
+#, fuzzy
+msgid "Couldn't list available fields."
+msgstr "Non riesco a salvare il file \"%s\""
+
+#: ../src/merge-evolution.c:384
+msgid "Couldn't get contacts."
 msgstr ""
 
-#: src/xml-label.c:393 src/xml-label-04.c:123 src/xml-label-191.c:197
-#, c-format
-msgid "bad node =  \"%s\""
+#: ../src/merge-init.c:57
+msgid "Text: Comma Separated Values (CSV)"
 msgstr ""
 
-#: src/xml-label.c:796 src/xml-label-191.c:605
-#, c-format
-msgid "bad node in Data node =  \"%s\""
+#: ../src/merge-init.c:64
+msgid "Text: Comma Separated Values (CSV) with keys on line 1"
 msgstr ""
 
-#: src/xml-label.c:962 libglabels/xml-template.c:535
-msgid "Utf8 conversion error."
-msgstr "Conversione di errore Utf8."
+#: ../src/merge-init.c:72
+msgid "Text: Tab Separated Values (TSV)"
+msgstr ""
 
-#: src/xml-label.c:969 libglabels/xml-template.c:542
-msgid "Problem saving xml file."
-msgstr "Problema nel salvataggio del file xml"
+#: ../src/merge-init.c:79
+msgid "Text: Tab Separated Values (TSV) with keys on line 1"
+msgstr ""
 
-#. This should always be an id, but just in case a name
-#. slips by!
-#: src/xml-label-191.c:680 libglabels/xml-template.c:199
-#, c-format
-msgid "Unknown page size id \"%s\", trying as name"
+#: ../src/merge-init.c:87
+msgid "Text: Colon separated values"
 msgstr ""
 
-#: src/xml-label-191.c:690 libglabels/xml-template.c:209
-#, c-format
-msgid "Unknown page size id or name \"%s\""
+#: ../src/merge-init.c:94
+msgid "Text: Colon separated values with keys on line 1"
 msgstr ""
 
-#: src/merge.c:172 src/merge.c:213 src/merge.c:399 src/merge.c:402
-msgid "None"
-msgstr "Nessuno"
+#: ../src/merge-init.c:102
+msgid "Text: Semicolon separated values"
+msgstr ""
 
-#: src/merge-init.c:53
-msgid "Text file with comma delimeters (CSV)"
+#: ../src/merge-init.c:109
+msgid "Text: Semicolon separated values with keys on line 1"
 msgstr ""
 
-#: src/merge-init.c:60
-msgid "Text file with colon delimeters"
+#: ../src/merge-init.c:119
+msgid "Evolution Addressbook"
 msgstr ""
 
-#: src/merge-init.c:67
-msgid "Text file with tab delimeters"
+#: ../src/merge-init.c:125
+msgid "VCards"
 msgstr ""
 
-#: src/wdgt-image-select.c:201 data/glade/object-editor.glade.h:11
-msgid "File:"
-msgstr "File:"
+#: ../src/merge-properties-dialog.c:282
+msgid "Merge Properties"
+msgstr "Proprietà di unione"
 
-#: src/wdgt-image-select.c:245 data/glade/object-editor.glade.h:16
-msgid "Key:"
-msgstr "Chiave:"
+#: ../src/merge-properties-dialog.c:308 ../src/merge-properties-dialog.c:424
+msgid "Select merge-database source"
+msgstr "Seleziona sorgente unione-database"
 
-#: src/wdgt-print-copies.c:179
-msgid "Sheets:"
-msgstr "Fogli:"
+#: ../src/merge-properties-dialog.c:319 ../src/merge-properties-dialog.c:450
+msgid "N/A"
+msgstr "N/A"
 
-#: src/wdgt-print-copies.c:197
-msgid "Labels"
-msgstr "Etichette"
+#: ../src/merge-properties-dialog.c:345
+msgid "Select"
+msgstr "Seleziona"
 
-#: src/wdgt-print-copies.c:200
-msgid "from:"
-msgstr "da:"
+#: ../src/merge-properties-dialog.c:352
+msgid "Record/Field"
+msgstr "Record/campo"
 
-#: src/wdgt-print-copies.c:207
-msgid "to:"
-msgstr "a:"
+#: ../src/merge-properties-dialog.c:360 ../data/ui/object-editor.ui.h:8
+msgid "Data"
+msgstr "Dati"
 
-#: src/wdgt-print-merge.c:178
-msgid "Start on label"
+#. Translators: "Fixed" here means that for the given document-merge method, there are
+#. * no further choices to further define the source of data.  E.g. if you select the
+#. * evolution-data-server, there are no further choices -- the source is "Fixed."
+#.
+#: ../src/merge-properties-dialog.c:443
+#, fuzzy
+msgid "Fixed"
+msgstr "File:"
+
+#. Translators: "Up" refers to the direction towards the top of a label.
+#: ../src/mini-preview.c:1074
+msgid "Up"
 msgstr ""
 
-#: src/wdgt-print-merge.c:186
-msgid "on 1st sheet"
-msgstr "nel 1° foglio"
+#: ../src/new-label-dialog.c:203
+#, fuzzy
+msgid "Select Product"
+msgstr "Modalità di _selezione"
 
-#: src/wdgt-print-merge.c:195
-msgid "Copies:"
-msgstr "Copie:"
+#: ../src/new-label-dialog.c:215
+#, fuzzy
+msgid "Choose Orientation"
+msgstr "Orientazione etichetta"
 
-#: src/wdgt-print-merge.c:201
-msgid "Collate"
-msgstr "Fascicoli"
+#: ../src/new-label-dialog.c:229
+msgid "Review"
+msgstr ""
 
-#: src/wdgt-media-select.c:269 data/glade/template-designer.glade.h:29
-msgid "Description:"
-msgstr "Descrizione:"
+#: ../src/object-editor-bc-page.c:93 ../src/object-editor-shadow-page.c:93
+#: ../src/object-editor-text-page.c:97 ../src/prefs-dialog.c:339
+#: ../src/ui-property-bar.c:280
+msgid "Default"
+msgstr "Predefinito"
 
-#: src/wdgt-media-select.c:279 data/glade/template-designer.glade.h:53
-msgid "Page size:"
-msgstr "Dimensioni·pagina:"
+#: ../src/object-editor.c:159 ../src/object-editor.c:460
+msgid "Object properties"
+msgstr "Proprietà oggetto"
 
-#: src/wdgt-media-select.c:290
-msgid "Label size:"
-msgstr "Dimensioni etichetta:"
+#: ../src/object-editor.c:309
+msgid "Box object properties"
+msgstr "Proprietà dell'oggetto area"
 
-#: src/wdgt-media-select.c:301
-msgid "Layout:"
-msgstr "Layout:"
+#: ../src/object-editor.c:328
+msgid "Ellipse object properties"
+msgstr "Proprietà dell'oggetto Ellisse"
 
-#: src/wdgt-media-select.c:578
-#, c-format
-msgid "%d x %d  (%d per sheet)"
-msgstr "%d x %d  (%d per foglio)"
+#: ../src/object-editor.c:347
+msgid "Line object properties"
+msgstr "Proprietà dell'oggetto Linea"
 
-#: src/wdgt-media-select.c:582
-#, c-format
-msgid "%d per sheet"
-msgstr "%d per foglio"
+#: ../src/object-editor.c:364
+msgid "Image object properties"
+msgstr "Proprietà dell'oggetto Immagine"
 
-#: src/wdgt-media-select.c:614
-#, c-format
-msgid "%s x %s %s"
-msgstr "%s x %s %s"
+#: ../src/object-editor.c:381
+msgid "Text object properties"
+msgstr "Proprietà dell'oggetto Testo"
 
-#: src/wdgt-media-select.c:619
-#, c-format
-msgid "%.5g x %.5g %s"
-msgstr "%.5g x %.5g %s"
+#: ../src/object-editor.c:403
+msgid "Barcode object properties"
+msgstr "Proprietà dell'oggetto Codice a barre"
 
-#: src/wdgt-media-select.c:630 src/wdgt-media-select.c:644
-#, c-format
-msgid "%s %s diameter"
-msgstr "%s %s diametro"
+#: ../src/object-editor-edit-page.c:76
+msgid "Insert merge field"
+msgstr "Inserisci campo unione"
 
-#: src/wdgt-media-select.c:634 src/wdgt-media-select.c:648
-#, c-format
-msgid "%.5g %s diameter"
-msgstr "%.5g %s diametro"
+#: ../src/object-editor-fill-page.c:79 ../src/prefs-dialog.c:345
+#: ../src/ui-property-bar.c:292
+#, fuzzy
+msgid "No Fill"
+msgstr "Nessun riempimento"
 
-#: src/wdgt-rotate-label.c:193
-msgid "Rotate"
-msgstr "Girare"
+#: ../src/object-editor-image-page.c:278
+#, fuzzy
+msgid "All Files"
+msgstr "Tutti i file"
 
-#. This is the default custom color
-#: src/mygal/color-palette.c:396
-msgid "custom"
-msgstr "personalizzato"
+#: ../src/object-editor-image-page.c:283
+#, fuzzy
+msgid "All Images"
+msgstr "Immagine"
 
-#. "Custom" color - we'll pop up a GnomeColorPicker
-#: src/mygal/color-palette.c:438
-msgid "Custom Color:"
-msgstr "Colore personalizzato:"
+#: ../src/object-editor-image-page.c:298
+#, c-format
+msgid "%s (*.%s)"
+msgstr ""
 
-#: src/mygal/color-palette.c:446
-msgid "Choose Custom Color"
-msgstr "Scegli colore personalizzato"
+#: ../src/object-editor-line-page.c:79 ../src/prefs-dialog.c:342
+#: ../src/ui-property-bar.c:304
+#, fuzzy
+msgid "No Line"
+msgstr "Nessuna linea"
 
-#: src/mygal/color-palette.c:579
-msgid "black"
-msgstr "nero"
+#: ../src/prefs-dialog.c:172 ../data/ui/prefs-dialog.ui.h:21
+msgid "gLabels Preferences"
+msgstr "Preferenze gLabels"
 
-#: src/mygal/color-palette.c:580
-msgid "light brown"
-msgstr "Marrone chiaro"
+#. ===================================================================
+#: ../src/print-op.c:205 ../src/print-op-dialog.c:217
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:4
+#: ../templates/misc-iso-templates.xml.h:34
+msgid "Labels"
+msgstr "Etichette"
 
-#: src/mygal/color-palette.c:581
-msgid "brown gold"
-msgstr ""
+#: ../src/stock.c:70
+msgid "_Select Mode"
+msgstr "Modalità di _selezione"
+
+#: ../src/stock.c:71
+msgid "_Text"
+msgstr "_Testo"
 
-#: src/mygal/color-palette.c:582
-msgid "dark green #2"
-msgstr "verde scuro #2"
+#: ../src/stock.c:72
+msgid "_Line"
+msgstr "_Linea"
 
-#: src/mygal/color-palette.c:583
-msgid "navy"
-msgstr ""
+#: ../src/stock.c:73
+msgid "_Box"
+msgstr "_Area"
 
-#: src/mygal/color-palette.c:584 src/mygal/color-palette.c:640
-msgid "dark blue"
-msgstr "blu scuro"
+#: ../src/stock.c:74
+msgid "_Ellipse"
+msgstr "_Ellisse"
 
-#: src/mygal/color-palette.c:585
-msgid "purple #2"
-msgstr ""
+#: ../src/stock.c:75
+msgid "_Image"
+msgstr "_Immagine"
 
-#: src/mygal/color-palette.c:586
-msgid "very dark gray"
-msgstr ""
+#: ../src/stock.c:76
+msgid "Bar_code"
+msgstr "_Codice a barre"
+
+#: ../src/stock.c:77
+msgid "_Merge Properties"
+msgstr "Proprietà di _unione"
 
-#: src/mygal/color-palette.c:589 src/mygal/color-palette.c:645
-msgid "dark red"
-msgstr "rosso scuro"
+#: ../src/stock.c:78
+msgid "Object _Properties"
+msgstr "_Proprietà·Oggetto"
 
-#: src/mygal/color-palette.c:590
-msgid "red-orange"
-msgstr ""
+#: ../src/stock.c:79
+msgid "Bring to _Front"
+msgstr "Porta in _primo piano"
 
-#: src/mygal/color-palette.c:591
-msgid "gold"
-msgstr "oro"
+#: ../src/stock.c:80
+msgid "Send to _Back"
+msgstr "Porta in _secondo piano"
 
-#: src/mygal/color-palette.c:592
-msgid "dark green"
-msgstr "verde scuro"
+#: ../src/stock.c:81
+msgid "Rotate _Left"
+msgstr "Ruota a sinistra"
 
-#: src/mygal/color-palette.c:593 src/mygal/color-palette.c:646
-msgid "dull blue"
-msgstr ""
+#: ../src/stock.c:82
+msgid "Rotate _Right"
+msgstr "Ruota a destra"
 
-#: src/mygal/color-palette.c:594 src/mygal/color-palette.c:647
-msgid "blue"
-msgstr "blu"
+#: ../src/stock.c:83
+msgid "Flip _Horizontally"
+msgstr "Capovolgi _orizzontalmente"
 
-#: src/mygal/color-palette.c:595
-msgid "dull purple"
-msgstr ""
+#: ../src/stock.c:84
+msgid "Flip _Vertically"
+msgstr "Capovolgi _verticalmente"
 
-#: src/mygal/color-palette.c:596
-msgid "dark grey"
-msgstr ""
+#: ../src/stock.c:85
+msgid "_Lefts"
+msgstr "_Sinistra"
 
-#: src/mygal/color-palette.c:599
-msgid "red"
-msgstr "rosso"
+#: ../src/stock.c:86
+msgid "_Rights"
+msgstr "_Destra"
 
-#: src/mygal/color-palette.c:600
-msgid "orange"
-msgstr "arancione"
+#: ../src/stock.c:87
+msgid "_Centers"
+msgstr "_Centro"
 
-#: src/mygal/color-palette.c:601
-msgid "lime"
-msgstr "tiglio"
+#: ../src/stock.c:88
+msgid "_Tops"
+msgstr "_In alto"
 
-#: src/mygal/color-palette.c:602
-msgid "dull green"
-msgstr ""
+#: ../src/stock.c:89
+msgid "Bottoms"
+msgstr "In basso"
 
-#: src/mygal/color-palette.c:603
-msgid "dull blue #2"
-msgstr ""
+#: ../src/stock.c:90
+msgid "Centers"
+msgstr "Centrato"
 
-#: src/mygal/color-palette.c:604
-msgid "sky blue #2"
-msgstr ""
+#: ../src/stock.c:91 ../src/stock.c:92
+msgid "Label Ce_nter"
+msgstr "Etichetta ce_ntrata"
 
-#: src/mygal/color-palette.c:605 src/mygal/color-palette.c:644
-msgid "purple"
-msgstr "viola"
+#: ../src/stock.c:95 ../src/stock.c:97
+msgid "Linked"
+msgstr "Collegato"
 
-#: src/mygal/color-palette.c:606
-msgid "gray"
-msgstr "grigio"
+#: ../src/stock.c:96 ../src/stock.c:98
+msgid "Not Linked"
+msgstr "Nessun collegamento"
 
-#: src/mygal/color-palette.c:609 src/mygal/color-palette.c:641
-msgid "magenta"
-msgstr ""
+#: ../src/template-designer.c:404
+#, fuzzy
+msgid "New gLabels Template"
+msgstr "Progettazione di modelli per gLabels"
 
-#: src/mygal/color-palette.c:610
-msgid "bright orange"
+#: ../src/template-designer.c:461
+msgid "Welcome"
 msgstr ""
 
-#: src/mygal/color-palette.c:611 src/mygal/color-palette.c:642
-msgid "yellow"
-msgstr "giallo"
+#: ../src/template-designer.c:500
+msgid "Name and Description"
+msgstr "Nome e descrizione"
 
-#: src/mygal/color-palette.c:612
-msgid "green"
-msgstr "verde"
+#: ../src/template-designer.c:548
+msgid "Page Size"
+msgstr "Dimensione pagina"
 
-#: src/mygal/color-palette.c:613 src/mygal/color-palette.c:643
-msgid "cyan"
-msgstr ""
+#: ../src/template-designer.c:614
+msgid "Label or Card Shape"
+msgstr "Forma dell'etichetta o della scheda"
 
-#: src/mygal/color-palette.c:614
-msgid "bright blue"
-msgstr ""
+#: ../src/template-designer.c:661
+#, fuzzy
+msgid "Label or Card Size"
+msgstr "Forma dell'etichetta o della scheda"
 
-#: src/mygal/color-palette.c:615 src/mygal/color-palette.c:632
-msgid "red purple"
-msgstr ""
+#: ../src/template-designer.c:760
+#, fuzzy
+msgid "Label Size (round)"
+msgstr "Dimensioni etichetta"
 
-#: src/mygal/color-palette.c:616
-msgid "light grey"
-msgstr ""
+#: ../src/template-designer.c:841
+msgid "Label Size (CD/DVD)"
+msgstr "Dimensione etichetta (CD/DVD)"
 
-#: src/mygal/color-palette.c:619 src/mygal/color-palette.c:636
-msgid "pink"
-msgstr "rosa"
+#: ../src/template-designer.c:932
+msgid "Number of Layouts"
+msgstr "Numero di layout"
 
-#: src/mygal/color-palette.c:620
-msgid "light orange"
-msgstr ""
+#: ../src/template-designer.c:1000
+msgid "Layout(s)"
+msgstr "Layout"
 
-#: src/mygal/color-palette.c:621 src/mygal/color-palette.c:633
-msgid "light yellow"
-msgstr ""
+#: ../src/template-designer.c:1105
+msgid "Design Completed"
+msgstr "Progettazione completata"
 
-#: src/mygal/color-palette.c:622
-msgid "light green"
-msgstr ""
+#: ../src/template-designer.c:1133
+#, fuzzy
+msgid "Edit gLabels Template"
+msgstr "Progettazione di modelli per gLabels"
 
-#: src/mygal/color-palette.c:623
-msgid "light cyan"
+#: ../src/template-designer.c:1423
+msgid "Brand and part# match an existing template!"
 msgstr ""
 
-#: src/mygal/color-palette.c:624 src/mygal/color-palette.c:634
-msgid "light blue"
-msgstr "blu chiaro"
-
-#: src/mygal/color-palette.c:625 src/mygal/color-palette.c:638
-msgid "light purple"
-msgstr ""
+#. Menu entries.
+#: ../src/ui.c:93
+msgid "_File"
+msgstr "_File"
 
-#: src/mygal/color-palette.c:626
-msgid "white"
-msgstr "bianco"
+#: ../src/ui.c:94
+#, fuzzy
+msgid "Open Recent _Files"
+msgstr "_File Recenti"
 
-#: src/mygal/color-palette.c:631
-msgid "purplish blue"
-msgstr ""
+#: ../src/ui.c:95
+msgid "_Edit"
+msgstr "_Modifica"
 
-#: src/mygal/color-palette.c:635
-msgid "dark purple"
-msgstr ""
+#: ../src/ui.c:96
+msgid "_View"
+msgstr "_Visualizza"
 
-#: src/mygal/color-palette.c:637
-msgid "sky blue"
-msgstr ""
+#: ../src/ui.c:97
+msgid "Customize Main Toolbar"
+msgstr "Personalizza la barra degli strumenti principale"
 
-#: libglabels/template.c:848
-#, c-format
-msgid "Generic %s full page"
-msgstr ""
+#: ../src/ui.c:98
+msgid "Customize Drawing Toolbar"
+msgstr "Personalizza la barra degli strumenti di disegno"
 
-#: libglabels/template.c:897
-msgid "No template files found!"
-msgstr "Nessun modello trovato!"
+#: ../src/ui.c:99
+#, fuzzy
+msgid "Customize Properties Toolbar"
+msgstr "Personalizza barra degli strumenti proprietà"
 
-#. Create and append an "Other" entry.
-#: libglabels/paper.c:67
-msgid "Other"
-msgstr "Altro"
+#: ../src/ui.c:100
+msgid "_Objects"
+msgstr "_Oggetti"
 
-#: libglabels/paper.c:361
-msgid "No paper files found!"
-msgstr "Nessun file paper trovato!"
+#: ../src/ui.c:101
+#, fuzzy
+msgid "_Create"
+msgstr "_Centro"
 
-#: data/ui/glabels-ui.xml.h:1
-msgid "About glabels"
-msgstr "Informazioni su glabels"
+#: ../src/ui.c:102
+msgid "_Order"
+msgstr "_Ordine"
 
-#: data/ui/glabels-ui.xml.h:2
-msgid "About..."
-msgstr "Informazioni..."
+#: ../src/ui.c:103
+msgid "_Rotate/Flip"
+msgstr "_Ruota/capovolgi"
 
-#: data/ui/glabels-ui.xml.h:3
+#: ../src/ui.c:104
 msgid "Align _Horizontal"
 msgstr "Allineamento orizzontale"
 
-#: data/ui/glabels-ui.xml.h:4
+#: ../src/ui.c:105
 msgid "Align _Vertical"
 msgstr "Allineamento _verticale"
 
-#: data/ui/glabels-ui.xml.h:5
-msgid "Align objects to bottoms"
-msgstr "Allinea gli oggetti in basso"
+#: ../src/ui.c:106
+msgid "_Help"
+msgstr "_Aiuto"
 
-#: data/ui/glabels-ui.xml.h:6
-msgid "Align objects to horizontal centers"
-msgstr "Allinea gli oggetti nel centro orizzontale"
+#. Popup entries.
+#: ../src/ui.c:109 ../src/ui.c:110
+#, fuzzy
+msgid "Context Menu"
+msgstr "Contenuti"
 
-#: data/ui/glabels-ui.xml.h:7
-msgid "Align objects to left edges"
-msgstr ""
+#: ../src/ui.c:115
+msgid "_New"
+msgstr "_Nuovo"
 
-#: data/ui/glabels-ui.xml.h:8
-msgid "Align objects to right edges"
-msgstr ""
+#: ../src/ui.c:117
+#, fuzzy
+msgid "Create a new file"
+msgstr "Crea un nuovo documento"
 
-#: data/ui/glabels-ui.xml.h:9
-msgid "Align objects to tops"
-msgstr ""
+#: ../src/ui.c:122
+msgid "_Open..."
+msgstr "_Apri..."
 
-#: data/ui/glabels-ui.xml.h:10
-msgid "Align objects to vertical centers"
-msgstr "Allinea gli oggetti al centro verticale"
+#: ../src/ui.c:124
+msgid "Open a file"
+msgstr "Apri un file"
 
-#: data/ui/glabels-ui.xml.h:12
-msgid "Bold"
-msgstr "Grassetto"
+#: ../src/ui.c:129
+msgid "_Save"
+msgstr "_Salva"
 
-#: data/ui/glabels-ui.xml.h:14
-msgid "Center align"
-msgstr "Allineamento centrato"
+#: ../src/ui.c:131
+#, fuzzy
+msgid "Save current file"
+msgstr "Salva il file corrente"
 
-#: data/ui/glabels-ui.xml.h:15
-msgid "Center objects to horizontal label center"
-msgstr ""
+#: ../src/ui.c:136
+msgid "Save _As..."
+msgstr "Salva _con nome..."
 
-#: data/ui/glabels-ui.xml.h:16
-msgid "Center objects to vertical label center"
-msgstr ""
+#: ../src/ui.c:138
+#, fuzzy
+msgid "Save the current file to a different name"
+msgstr "Salva il file corrente con un nome differente"
 
-#: data/ui/glabels-ui.xml.h:17
-msgid "Change the visibility of markup lines in the current window"
-msgstr ""
-"Cambia la visibilità delle linee di demarcazione nella finestra corrente"
+#: ../src/ui.c:143
+msgid "_Print..."
+msgstr "Stampa..."
 
-#: data/ui/glabels-ui.xml.h:18
-msgid "Change the visibility of the drawing toolbar in the current window"
-msgstr "Cambia la visibilità della barra degli strumenti di disegno nella finestra corrente"
+#: ../src/ui.c:145
+msgid "Print the current file"
+msgstr "Stampa il file corrente"
 
-#: data/ui/glabels-ui.xml.h:19
-msgid "Change the visibility of the grid in the current window"
-msgstr "Cambia la visibilità della griglia nella finestra corrente"
+#: ../src/ui.c:150
+#, fuzzy
+msgid "Properties..."
+msgstr "Proprie_tà..."
 
-#: data/ui/glabels-ui.xml.h:20
-msgid "Change the visibility of the main toolbar in the current window"
-msgstr "Cambia la visibilità della barra degli strumenti principale nella finestra corrente"
+#: ../src/ui.c:152
+msgid "Modify document properties"
+msgstr "Modifica le proprietà del documento"
 
-#: data/ui/glabels-ui.xml.h:21
-msgid "Change the visibility of the property toolbar in the current window"
+#: ../src/ui.c:157
+msgid "Template _Designer..."
 msgstr ""
-"Cambia la visibilità della barra degli strumenti principale nella finestra "
-"corrente"
-
-#: data/ui/glabels-ui.xml.h:22
-msgid "Close"
-msgstr "Chiudi"
-
-#: data/ui/glabels-ui.xml.h:23
-msgid "Close the current file"
-msgstr "Chiudi il file corrente"
-
-#: data/ui/glabels-ui.xml.h:24
-msgid "Configure the application"
-msgstr "Configura l'applicazione"
-
-#: data/ui/glabels-ui.xml.h:25
-msgid "Contents"
-msgstr "Contenuti"
-
-#: data/ui/glabels-ui.xml.h:26
-msgid "Copy"
-msgstr "Copia"
 
-#: data/ui/glabels-ui.xml.h:27
-msgid "Copy the selection"
-msgstr "Copia la selezione"
-
-#: data/ui/glabels-ui.xml.h:28
+#: ../src/ui.c:159
 msgid "Create a custom template"
 msgstr "Crea un modello personalizzato"
 
-#: data/ui/glabels-ui.xml.h:29
-msgid "Create a new document"
-msgstr "Crea un nuovo documento"
-
-#: data/ui/glabels-ui.xml.h:30
-msgid "Create barcode object"
-msgstr "Crea oggetto codice a barre"
-
-#: data/ui/glabels-ui.xml.h:31
-msgid "Create box/rectangle object"
-msgstr "Crea oggetto area/rettangolo"
-
-#: data/ui/glabels-ui.xml.h:32
-msgid "Create ellipse/circle object"
-msgstr "Crea oggetto ellisse/cerchio"
-
-#: data/ui/glabels-ui.xml.h:33
-msgid "Create image object"
-msgstr "Crea oggetto immagine"
-
-#: data/ui/glabels-ui.xml.h:34
-msgid "Create line object"
-msgstr "Crea oggetto linea"
-
-#: data/ui/glabels-ui.xml.h:35
-msgid "Create text object"
-msgstr "Crea oggeto testo"
-
-#: data/ui/glabels-ui.xml.h:36
-msgid "Cu_t"
-msgstr "_Taglia"
+#: ../src/ui.c:164
+msgid "_Close"
+msgstr "_Chiudi"
 
-#: data/ui/glabels-ui.xml.h:37
-msgid "Customize"
-msgstr "Personalizza"
+#: ../src/ui.c:166
+msgid "Close the current file"
+msgstr "Chiudi il file corrente"
 
-#: data/ui/glabels-ui.xml.h:38
-msgid "Customize Drawing Toolbar"
-msgstr "Personalizza la barra degli strumenti di disegno"
+#: ../src/ui.c:171
+msgid "_Quit"
+msgstr "_Esci"
 
-#: data/ui/glabels-ui.xml.h:39
-msgid "Customize Main Toolbar"
-msgstr "Personalizza la barra degli strumenti principale"
+#: ../src/ui.c:173
+msgid "Quit the program"
+msgstr "Esci dal programma"
 
-#: data/ui/glabels-ui.xml.h:40
-msgid "Customize Property Toolbar"
-msgstr "Personalizza barra degli strumenti proprietà"
+#: ../src/ui.c:180 ../src/ui.c:182 ../src/ui.c:967
+msgid "Undo"
+msgstr "Annulla"
 
-#: data/ui/glabels-ui.xml.h:41
-msgid "Customize toolbars"
-msgstr "Personalizza·le·barre degli strumenti"
+#: ../src/ui.c:187 ../src/ui.c:189 ../src/ui.c:974
+msgid "Redo"
+msgstr "Ripeti"
 
-#: data/ui/glabels-ui.xml.h:42
+#: ../src/ui.c:194
 msgid "Cut"
 msgstr "Taglia"
 
-#: data/ui/glabels-ui.xml.h:43
+#: ../src/ui.c:196
 msgid "Cut the selection"
 msgstr "Taglia la selezione"
 
-#: data/ui/glabels-ui.xml.h:44
-msgid "Decrease magnification"
-msgstr "Decrementa ingrandimento"
+#: ../src/ui.c:201
+msgid "Copy"
+msgstr "Copia"
 
-#: data/ui/glabels-ui.xml.h:45
-msgid "Delete"
-msgstr "Cancella"
+#: ../src/ui.c:203
+msgid "Copy the selection"
+msgstr "Copia la selezione"
 
-#: data/ui/glabels-ui.xml.h:46
+#: ../src/ui.c:210
+msgid "Paste the clipboard"
+msgstr "Incolla gli appunti"
+
+#: ../src/ui.c:217
 msgid "Delete the selected objects"
 msgstr "Cancella gli oggetti selezionati"
 
-#: data/ui/glabels-ui.xml.h:47
-msgid "Drawing toolbar"
-msgstr "Barra degli strumenti di disegno"
+#: ../src/ui.c:222
+msgid "Select All"
+msgstr "Seleziona tutto"
 
-#: data/ui/glabels-ui.xml.h:48
-msgid "Dump XML"
-msgstr "Scarica XML"
+#: ../src/ui.c:224
+msgid "Select all objects"
+msgstr "Seleziona tutti gli oggetti"
 
-#: data/ui/glabels-ui.xml.h:49
-msgid "Dump the UI Xml description"
-msgstr ""
+#: ../src/ui.c:229
+msgid "Un-select All"
+msgstr "Deseleziona·tutto"
 
-#: data/ui/glabels-ui.xml.h:50
-msgid "Edit merge properties"
-msgstr "Modifica proprietà di unione"
+#: ../src/ui.c:231
+msgid "Remove all selections"
+msgstr "Rimuovi tutte le selezioni"
 
-#: data/ui/glabels-ui.xml.h:54
-msgid "Flip object horizontally"
-msgstr "Capovolgi oggetto orizzontalmente"
+#: ../src/ui.c:236
+msgid "Preferences"
+msgstr "Preferenze"
 
-#: data/ui/glabels-ui.xml.h:55
-msgid "Flip object vertically"
-msgstr "Capovolgi oggetto verticalmente"
+#: ../src/ui.c:238
+msgid "Configure the application"
+msgstr "Configura l'applicazione"
 
-#: data/ui/glabels-ui.xml.h:56
-msgid "Font name"
-msgstr "Nome font"
+#: ../src/ui.c:245
+#, fuzzy
+msgid "Zoom in"
+msgstr "Zoom _in avanti"
 
-#: data/ui/glabels-ui.xml.h:57
-msgid "Font selector"
-msgstr "Selettore font"
+#: ../src/ui.c:247
+msgid "Increase magnification"
+msgstr "Incrementa ingradimento"
 
-#: data/ui/glabels-ui.xml.h:58
-msgid "Font size"
-msgstr "Dimesione·font"
+#: ../src/ui.c:252
+#, fuzzy
+msgid "Zoom out"
+msgstr "Zo_om indietro"
 
-#: data/ui/glabels-ui.xml.h:59
-msgid "Icon and _Text"
-msgstr "Icone e _Testo"
+#: ../src/ui.c:254
+msgid "Decrease magnification"
+msgstr "Decrementa ingrandimento"
 
-#: data/ui/glabels-ui.xml.h:60
-msgid "Increase magnification"
-msgstr "Incrementa ingradimento"
+#: ../src/ui.c:259
+#, fuzzy
+msgid "Zoom 1 to 1"
+msgstr "Zoom _1:1"
 
-#: data/ui/glabels-ui.xml.h:61
-msgid "Italic"
-msgstr "Corsivo"
+#: ../src/ui.c:261
+msgid "Restore scale to 100%"
+msgstr "Ripristina la scala al 100%"
 
-#: data/ui/glabels-ui.xml.h:63
-msgid "Left align"
-msgstr "Allinea·a·sinistra"
+#: ../src/ui.c:266
+#, fuzzy
+msgid "Zoom to fit"
+msgstr "Adatta"
 
-#: data/ui/glabels-ui.xml.h:65
-msgid "Line width"
-msgstr "Larghezza linea"
+#: ../src/ui.c:268
+#, fuzzy
+msgid "Set scale to fit window"
+msgstr "Adatta alla finestra"
 
-#: data/ui/glabels-ui.xml.h:66
-msgid "Lower object to bottom"
-msgstr ""
+#: ../src/ui.c:275
+#, fuzzy
+msgid "Select Mode"
+msgstr "Modalità di _selezione"
 
-#: data/ui/glabels-ui.xml.h:67
-msgid "M_arkup"
-msgstr ""
+#: ../src/ui.c:277
+msgid "Select, move and modify objects"
+msgstr "Seleziona, muovi e modifica oggetti"
 
-#: data/ui/glabels-ui.xml.h:68
-msgid "Main toolbar"
-msgstr "Barra degli strumenti principale"
+#: ../src/ui.c:282 ../src/view-text.c:102 ../data/ui/object-editor.ui.h:28
+#: ../data/ui/prefs-dialog.ui.h:17
+msgid "Text"
+msgstr "Testo"
 
-#: data/ui/glabels-ui.xml.h:69
-msgid "Markup"
-msgstr "Marcatori"
+#: ../src/ui.c:289
+#, fuzzy
+msgid "Box"
+msgstr "_Area"
 
-#: data/ui/glabels-ui.xml.h:70
-msgid "Modify document properties"
-msgstr "Modifica le proprietà del documento"
+#: ../src/ui.c:291
+msgid "Create box/rectangle object"
+msgstr "Crea oggetto area/rettangolo"
 
-#: data/ui/glabels-ui.xml.h:71
-msgid "New"
-msgstr "Nuovo"
+#: ../src/ui.c:296 ../data/ui/object-editor.ui.h:17
+#: ../data/ui/prefs-dialog.ui.h:9
+msgid "Line"
+msgstr "Linea"
 
-#: data/ui/glabels-ui.xml.h:72
-msgid "Object property editor"
-msgstr "Editor delle proprietà per l'oggetto"
+#: ../src/ui.c:303
+#, fuzzy
+msgid "Ellipse"
+msgstr "_Ellisse"
 
-#: data/ui/glabels-ui.xml.h:73
-msgid "Only show icons in the main toolbar"
-msgstr "Visualizza solo le icone nella barra degli strumenti principale"
+#: ../src/ui.c:305
+msgid "Create ellipse/circle object"
+msgstr "Crea oggetto ellisse/cerchio"
 
-#: data/ui/glabels-ui.xml.h:75
-msgid "Open a file"
-msgstr "Apri un file"
+#: ../src/ui.c:310 ../data/ui/object-editor.ui.h:14
+msgid "Image"
+msgstr "Immagine"
 
-#: data/ui/glabels-ui.xml.h:76
-msgid "Open the glabels manual"
-msgstr "Apri il manuale di glabels"
+#: ../src/ui.c:317
+#, fuzzy
+msgid "Barcode"
+msgstr "_Codice a barre"
 
-#: data/ui/glabels-ui.xml.h:77
-msgid "Paste"
-msgstr "Incolla"
+#: ../src/ui.c:326
+msgid "Raise object to top"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:78
-msgid "Paste the clipboard"
-msgstr "Incolla gli appunti"
+#: ../src/ui.c:333
+msgid "Lower object to bottom"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:79
-msgid "Pr_eferences..."
-msgstr "Pr_eferenze..."
+#: ../src/ui.c:340
+#, fuzzy
+msgid "Rotate object 90 degrees counter-clockwise"
+msgstr "Ruota l'oggetto di 90° in verso antiorario"
 
-#: data/ui/glabels-ui.xml.h:80
-msgid "Preferences"
-msgstr "Preferenze"
+#: ../src/ui.c:347
+#, fuzzy
+msgid "Rotate object 90 degrees clockwise"
+msgstr "Ruota l'oggetto di 90° in verso orario"
 
-#: data/ui/glabels-ui.xml.h:82
-msgid "Print the current file"
-msgstr "Stampa il file corrente"
+#: ../src/ui.c:354
+msgid "Flip object horizontally"
+msgstr "Capovolgi oggetto orizzontalmente"
 
-#: data/ui/glabels-ui.xml.h:83
-msgid "Proper_ties..."
-msgstr "Proprie_tà..."
+#: ../src/ui.c:361
+msgid "Flip object vertically"
+msgstr "Capovolgi oggetto verticalmente"
 
-#: data/ui/glabels-ui.xml.h:84
-msgid "Properties"
-msgstr "Proprietà"
+#: ../src/ui.c:368
+msgid "Align objects to left edges"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:85
-msgid "Property toolbar"
-msgstr "Proprietà della barra degli strumenti"
+#: ../src/ui.c:375
+msgid "Align objects to right edges"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:86
-msgid "Quit"
-msgstr "Esci"
+#: ../src/ui.c:382
+msgid "Align objects to horizontal centers"
+msgstr "Allinea gli oggetti nel centro orizzontale"
 
-#: data/ui/glabels-ui.xml.h:87
-msgid "Quit the program"
-msgstr "Esci dal programma"
+#: ../src/ui.c:389
+#, fuzzy
+msgid "Align objects to top edges"
+msgstr "Allinea gli oggetti in basso"
 
-#: data/ui/glabels-ui.xml.h:88
-msgid "Raise object to top"
-msgstr ""
+#: ../src/ui.c:396
+#, fuzzy
+msgid "Align objects to bottom edges"
+msgstr "Allinea gli oggetti in basso"
 
-#: data/ui/glabels-ui.xml.h:89
-msgid "Recent _Files"
-msgstr "_File Recenti"
+#: ../src/ui.c:403
+msgid "Align objects to vertical centers"
+msgstr "Allinea gli oggetti al centro verticale"
 
-#: data/ui/glabels-ui.xml.h:90
-msgid "Redo"
-msgstr "Ripeti"
+#: ../src/ui.c:410
+msgid "Center objects to horizontal label center"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:91
-msgid "Redo the undone action"
+#: ../src/ui.c:417
+msgid "Center objects to vertical label center"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:92
-msgid "Remove all selections"
-msgstr "Rimuovi tutte le selezioni"
+#: ../src/ui.c:424
+msgid "Edit merge properties"
+msgstr "Modifica proprietà di unione"
 
-#: data/ui/glabels-ui.xml.h:94
-#, no-c-format
-msgid "Restore scale to 100%"
-msgstr "Ripristina la scala al 100%"
+#: ../src/ui.c:431
+msgid "Contents"
+msgstr "Contenuti"
 
-#: data/ui/glabels-ui.xml.h:95
-msgid "Right align"
-msgstr "Allineamento a destra"
+#: ../src/ui.c:433
+#, fuzzy
+msgid "Open glabels manual"
+msgstr "Apri il manuale di glabels"
 
-#: data/ui/glabels-ui.xml.h:98
-msgid "Rotate object 90 clockwise"
-msgstr "Ruota l'oggetto di 90° in verso orario"
+#: ../src/ui.c:438
+msgid "About..."
+msgstr "Informazioni..."
 
-#: data/ui/glabels-ui.xml.h:99
-msgid "Rotate object 90 counter-clockwise"
-msgstr "Ruota l'oggetto di 90° in verso antiorario"
+#: ../src/ui.c:440
+msgid "About glabels"
+msgstr "Informazioni su glabels"
 
-#: data/ui/glabels-ui.xml.h:100
-msgid "Save"
-msgstr "Salva"
+#: ../src/ui.c:450
+msgid "Property toolbar"
+msgstr "Proprietà della barra degli strumenti"
 
-#: data/ui/glabels-ui.xml.h:101
-msgid "Save As"
-msgstr "Salva con nome"
+#: ../src/ui.c:452
+msgid "Change the visibility of the property toolbar in the current window"
+msgstr ""
+"Cambia la visibilità della barra degli strumenti principale nella finestra "
+"corrente"
 
-#: data/ui/glabels-ui.xml.h:102
-msgid "Save _As..."
-msgstr "Salva _con nome..."
+#: ../src/ui.c:458
+#, fuzzy
+msgid "Grid"
+msgstr "_Griglia"
 
-#: data/ui/glabels-ui.xml.h:103
-msgid "Save the current file"
-msgstr "Salva il file corrente"
+#: ../src/ui.c:460
+msgid "Change the visibility of the grid in the current window"
+msgstr "Cambia la visibilità della griglia nella finestra corrente"
 
-#: data/ui/glabels-ui.xml.h:104
-msgid "Save the current file with a different name"
-msgstr "Salva il file corrente con un nome differente"
+#: ../src/ui.c:466
+msgid "Markup"
+msgstr "Marcatori"
 
-#: data/ui/glabels-ui.xml.h:105
-msgid "Select All"
-msgstr "Seleziona tutto"
+#: ../src/ui.c:468
+msgid "Change the visibility of markup lines in the current window"
+msgstr ""
+"Cambia la visibilità delle linee di demarcazione nella finestra corrente"
 
-#: data/ui/glabels-ui.xml.h:106
-msgid "Select _All"
-msgstr "Seleziona tutto"
+#: ../src/ui.c:479
+msgid "Main toolbar"
+msgstr "Barra degli strumenti principale"
 
-#: data/ui/glabels-ui.xml.h:107
-msgid "Select all objects"
-msgstr "Seleziona tutti gli oggetti"
+#: ../src/ui.c:481
+msgid "Change the visibility of the main toolbar in the current window"
+msgstr ""
+"Cambia la visibilità della barra degli strumenti principale nella finestra "
+"corrente"
 
-#: data/ui/glabels-ui.xml.h:108
-msgid "Select, move and modify objects"
-msgstr "Seleziona, muovi e modifica oggetti"
+#: ../src/ui.c:487
+msgid "Drawing toolbar"
+msgstr "Barra degli strumenti di disegno"
 
-#: data/ui/glabels-ui.xml.h:110
-msgid "Set main toolbar button style according to desktop default"
+#: ../src/ui.c:489
+msgid "Change the visibility of the drawing toolbar in the current window"
 msgstr ""
+"Cambia la visibilità della barra degli strumenti di disegno nella finestra "
+"corrente"
 
-#: data/ui/glabels-ui.xml.h:111
-msgid "Show _Tooltips"
-msgstr "Mostra suggerimenti"
-
-#: data/ui/glabels-ui.xml.h:112
-msgid "Show both icons and texts in the main toolbar"
-msgstr "Mostra icone e testo nella barra degli strumenti principale"
+#: ../src/ui-commands.c:1135
+msgid "Glabels includes contributions from:"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:113
-msgid "Show tooltips in the drawing toolbar"
-msgstr "Mostra suggerimenti nella barra degli strumenti di disegno"
+#: ../src/ui-commands.c:1141
+msgid "See the file AUTHORS for additional credits,"
+msgstr "Visualizza il file AUTHORS per informazioni aggiuntive."
 
-#: data/ui/glabels-ui.xml.h:114
-msgid "Show tooltips in the main toolbar"
-msgstr "Mostra suggerimenti nella barra degli strumenti principale"
+#: ../src/ui-commands.c:1142
+#, fuzzy
+msgid "or visit http://glabels.org/"
+msgstr "oppure visita http://glabels.sourceforge.net/"
 
-#: data/ui/glabels-ui.xml.h:115
-msgid "Show tooltips in the property toolbar"
-msgstr "Mostra suggerimenti nella barra degli strumenti principale"
+#: ../src/ui-commands.c:1154
+msgid "A label and business card creation program.\n"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:116
-msgid "Template Designer"
-msgstr "Progettazione modelli"
+#: ../src/ui-commands.c:1158
+msgid "translator-credits"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:117
-msgid "Template _Designer..."
+#: ../src/ui-commands.c:1161
+msgid ""
+"gLabels is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"gLabels is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:118
-msgid "Text color"
-msgstr "Colore testo"
+#: ../src/ui-commands.c:1190
+msgid "glabels"
+msgstr "glabels"
 
-#: data/ui/glabels-ui.xml.h:119
-msgid "U_n-select All"
-msgstr "Deseleziona tutto"
+#: ../src/warning-handler.c:69
+#, fuzzy
+msgid "gLabels Error!"
+msgstr "Preferenze gLabels"
 
-#: data/ui/glabels-ui.xml.h:120
-msgid "Un-select All"
-msgstr "Deseleziona·tutto"
+#: ../src/window.c:284
+msgid "(none) - gLabels"
+msgstr "(niente) - gLabels"
 
-#: data/ui/glabels-ui.xml.h:121
-msgid "Undo"
-msgstr "Annulla"
+#: ../src/window.c:485
+msgid "(modified)"
+msgstr "(modificato)"
+
+#: ../src/xml-label-04.c:75 ../src/xml-label.c:333
+#, c-format
+msgid "Bad root node = \"%s\""
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:122
-msgid "Undo the last action"
-msgstr "Annulla l'ultima azione"
+#: ../src/xml-label-04.c:123 ../src/xml-label.c:416
+#, c-format
+msgid "bad node =  \"%s\""
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:123
-msgid "Zoom _1:1"
-msgstr "Zoom _1:1"
+#: ../src/xml-label.c:199 ../src/xml-label.c:237
+msgid "xmlParseFile error"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:124
-msgid "Zoom _In"
-msgstr "Zoom _in avanti"
+#: ../src/xml-label.c:274
+msgid "No document root"
+msgstr "Nessun documento radice"
 
-#: data/ui/glabels-ui.xml.h:125
-msgid "Zoom _Out"
-msgstr "Zo_om indietro"
+#: ../src/xml-label.c:282
+msgid "Importing from glabels 0.1 format"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:126
-msgid "Zoom to _fit"
-msgstr "Adatta"
+#: ../src/xml-label.c:291
+msgid "Importing from glabels 0.4 format"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:127
-msgid "Zoom to fit window"
-msgstr "Adatta alla finestra"
+#: ../src/xml-label.c:301
+#, c-format
+msgid "Unknown glabels Namespace -- Using %s"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:128
-msgid "_About..."
-msgstr "Informazioni..."
+#: ../src/xml-label.c:370
+#, c-format
+msgid "bad node in Document node =  \"%s\""
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:129
-msgid "_Bottoms"
-msgstr "In basso"
+#: ../src/xml-label.c:868
+#, c-format
+msgid "bad node in Data node =  \"%s\""
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:132
-msgid "_Close"
-msgstr "_Chiudi"
+#: ../src/xml-label.c:944
+#, c-format
+msgid "Unknown embedded file format: \"%s\""
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:133
-msgid "_Contents"
-msgstr "_Contenuti"
+#: ../src/xml-label.c:1150 ../libglabels/xml-template.c:802
+msgid "Utf8 conversion error."
+msgstr "Conversione di errore Utf8."
 
-#: data/ui/glabels-ui.xml.h:134
-msgid "_Copy"
-msgstr "_Copia"
+#: ../src/xml-label.c:1157
+msgid "Problem saving xml file."
+msgstr "Problema nel salvataggio del file xml"
 
-#: data/ui/glabels-ui.xml.h:135
-msgid "_Create Object"
-msgstr "_Crea Oggetto"
+#. Create and append an "Other" entry.
+#. Translators: "Other" here means other page size.  Meaning a page size
+#. * other than the standard ones that libglabels knows about such as
+#. * "letter", "A4", etc.
+#: ../libglabels/db.c:270
+msgid "Other"
+msgstr "Altro"
 
-#: data/ui/glabels-ui.xml.h:136
-msgid "_Debug"
-msgstr "_Debug"
+#. Create and append a "User defined" entry.
+#: ../libglabels/db.c:279
+#, fuzzy
+msgid "User defined"
+msgstr "Inserisci campo unione"
 
-#: data/ui/glabels-ui.xml.h:138
-msgid "_Desktop Default"
-msgstr "Predefinito del desktop"
+#: ../libglabels/db.c:665
+msgid ""
+"Unable to locate paper size definitions.  Libglabels may not be installed "
+"correctly!"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:139
-msgid "_Drawing Toolbar"
-msgstr "Barra degli strumenti di disegno"
+#: ../libglabels/db.c:1057
+msgid ""
+"Unable to locate category definitions.  Libglabels may not be installed "
+"correctly!"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:140
-msgid "_Edit"
-msgstr "_Modifica"
+#: ../libglabels/db.c:2097
+msgid ""
+"Unable to locate any template files.  Libglabels may not be installed "
+"correctly!"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:142
-msgid "_File"
-msgstr "_File"
+#: ../libglabels/db.c:2164
+#, c-format
+msgid "%s full page label"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:143
-msgid "_Grid"
-msgstr "_Griglia"
+#: ../libglabels/template.c:156
+#, c-format
+msgid "Equivalent part (\"%s\") for \"%s\", not previously defined."
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:144
-msgid "_Help"
-msgstr "_Aiuto"
+#.
+#. * Translators: 1st %d = number of labels across a page,
+#. *              2nd %d = number of labels down a page,
+#. *              3rd %d = total number of labels on a page (sheet).
+#.
+#: ../libglabels/template.c:727
+#, fuzzy, c-format
+msgid "%d × %d (%d per sheet)"
+msgstr "%d x %d  (%d per foglio)"
 
-#: data/ui/glabels-ui.xml.h:145
-msgid "_Icon"
-msgstr "_Icone"
+#. Translators: %d is the total number of labels on a page (sheet).
+#: ../libglabels/template.c:732
+#, c-format
+msgid "%d per sheet"
+msgstr "%d per foglio"
 
-#: data/ui/glabels-ui.xml.h:149
-msgid "_Main Toolbar"
-msgstr "Barra degli stru_menti principale"
+#: ../libglabels/template.c:802 ../libglabels/template.c:808
+#: ../libglabels/template.c:818 ../libglabels/template.c:824
+#, fuzzy
+msgid "diameter"
+msgstr "%s %s diametro"
 
-#: data/ui/glabels-ui.xml.h:150
-msgid "_Merge Properties..."
-msgstr "Proprietà di unione..."
+#. The ids are identical to the absolute length units supported in
+#. the CSS2 Specification (Section 4.3.2)
+#. This table must be sorted exactly as the enumerations in lglUnits
+#. [LGL_UNITS_POINT]
+#: ../libglabels/units.c:65 ../data/ui/object-editor.ui.h:39
+#: ../data/ui/prefs-dialog.ui.h:22
+msgid "points"
+msgstr "punti"
 
-#: data/ui/glabels-ui.xml.h:151
-msgid "_New"
-msgstr "_Nuovo"
+#. [LGL_UNITS_INCH]
+#: ../libglabels/units.c:66 ../data/ui/object-editor.ui.h:38
+#: ../data/ui/template-designer.ui.h:62
+msgid "inches"
+msgstr "pollici"
 
-#: data/ui/glabels-ui.xml.h:152
-msgid "_Objects"
-msgstr "_Oggetti"
+#. [LGL_UNITS_MM]
+#: ../libglabels/units.c:67
+msgid "mm"
+msgstr "mm"
 
-#: data/ui/glabels-ui.xml.h:153
-msgid "_Open..."
-msgstr "_Apri..."
+#. [LGL_UNITS_CM]
+#: ../libglabels/units.c:68
+msgid "cm"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:155
-msgid "_Paste"
-msgstr "Incolla"
+#. [LGL_UNITS_PICA]
+#: ../libglabels/units.c:69
+msgid "picas"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:156
-msgid "_Print..."
-msgstr "Stampa..."
+#: ../libglabels/xml-template.c:223
+msgid "Missing name or brand/part attributes."
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:157
-msgid "_Property Toolbar"
-msgstr "Barra degli strumenti _proprietà"
+#. This should always be an id, but just in case a name
+#. slips by!
+#: ../libglabels/xml-template.c:244
+#, c-format
+msgid "Unknown page size id \"%s\", trying as name"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:158
-msgid "_Quit"
-msgstr "_Esci"
+#: ../libglabels/xml-template.c:256
+#, c-format
+msgid "Unknown page size id or name \"%s\""
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:161
-msgid "_Save"
-msgstr "_Salva"
+#: ../libglabels/xml-template.c:275
+msgid "Forward references not supported."
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:165
-msgid "_View"
-msgstr "_Visualizza"
+#: ../libglabels/xml-template.c:747
+msgid ""
+"Missing required \"brand\" or \"part\" attribute, trying deprecated name."
+msgstr ""
 
-#: data/glade/prefs-dialog.glade.h:1
-msgid "   "
+#: ../libglabels/xml-template.c:757
+msgid "Name attribute also missing."
 msgstr ""
 
-#: data/glade/prefs-dialog.glade.h:2 data/glade/object-editor.glade.h:1
-#: data/glade/template-designer.glade.h:5
-msgid "*"
-msgstr "*"
+#.
+#. * Local Variables:       -- emacs
+#. * mode: C                -- emacs
+#. * c-basic-offset: 8      -- emacs
+#. * tab-width: 8           -- emacs
+#. * indent-tabs-mode: nil  -- emacs
+#. * End:                   -- emacs
+#.
+#: ../data/ui/merge-properties-dialog.ui.h:1
+msgid "Format:"
+msgstr "Formato:"
 
-#: data/glade/prefs-dialog.glade.h:3
-msgid "<span weight=\"bold\">Default page size</span>"
-msgstr "<span weight=\"bold\">Dimensione pagina predefinita</span>"
+#: ../data/ui/merge-properties-dialog.ui.h:2
+msgid "Location:"
+msgstr "Posizione:"
 
-#: data/glade/prefs-dialog.glade.h:4
-msgid "<span weight=\"bold\">Fill</span>"
-msgstr "<span weight=\"bold\">Riempimento</span>"
+#: ../data/ui/merge-properties-dialog.ui.h:3
+#, fuzzy
+msgid "Record selection/preview"
+msgstr "Selezione/anteprima record:"
 
-#: data/glade/prefs-dialog.glade.h:5
-msgid "<span weight=\"bold\">Line</span>"
-msgstr "<span weight=\"bold\">Linea</span>"
+#: ../data/ui/merge-properties-dialog.ui.h:4
+#, fuzzy
+msgid "Select all"
+msgstr "Seleziona tutto"
 
-#: data/glade/prefs-dialog.glade.h:6
-msgid "<span weight=\"bold\">Text</span>"
-msgstr "<span weight=\"bold\">Testo</span>"
+#: ../data/ui/merge-properties-dialog.ui.h:5
+msgid "Source"
+msgstr "Sorgente"
 
-#: data/glade/prefs-dialog.glade.h:7
-msgid "<span weight=\"bold\">Units</span>"
-msgstr "<span weight=\"bold\">Unità</span>"
+#: ../data/ui/merge-properties-dialog.ui.h:6
+#, fuzzy
+msgid "Unselect all"
+msgstr "Deseleziona·tutto"
 
-#: data/glade/prefs-dialog.glade.h:8 data/glade/object-editor.glade.h:4
-msgid "Alignment:"
-msgstr "Allineamento:"
+#: ../data/ui/media-select.ui.h:1
+msgid "Brand:"
+msgstr ""
 
-#: data/glade/prefs-dialog.glade.h:9 data/glade/object-editor.glade.h:8
-msgid "Color:"
-msgstr "Colore:"
+#: ../data/ui/media-select.ui.h:2
+msgid "Category:"
+msgstr ""
 
-#: data/glade/prefs-dialog.glade.h:10
-msgid "Font:"
-msgstr "Carattere:"
+#: ../data/ui/media-select.ui.h:3
+#, fuzzy
+msgid "Custom"
+msgstr "personalizzato"
 
-#: data/glade/prefs-dialog.glade.h:11
-msgid "ISO A4"
-msgstr "ISO A4"
+#: ../data/ui/media-select.ui.h:4 ../data/ui/new-label-dialog.ui.h:6
+#: ../data/ui/template-designer.ui.h:42
+msgid "Page size:"
+msgstr "Dimensioni·pagina:"
 
-#: data/glade/prefs-dialog.glade.h:12
-msgid "Inches"
-msgstr "Pollici"
+#: ../data/ui/media-select.ui.h:5
+#, fuzzy
+msgid "Recent"
+msgstr "_File Recenti"
 
-#: data/glade/prefs-dialog.glade.h:13 data/glade/object-editor.glade.h:19
-msgid "Line Spacing:"
-msgstr "Spaziatura:"
+#: ../data/ui/media-select.ui.h:6
+#, fuzzy
+msgid "Search all"
+msgstr "Seleziona tutto"
 
-#: data/glade/prefs-dialog.glade.h:14
-msgid "Locale"
-msgstr "Impostazioni nazionali"
+#: ../data/ui/new-label-dialog.ui.h:1
+msgid ""
+"Choose label or card product from hundreds of predefined templates or define "
+"your own."
+msgstr ""
 
-#: data/glade/prefs-dialog.glade.h:15
-msgid "Millimeters"
-msgstr "Millimetri"
+#: ../data/ui/new-label-dialog.ui.h:2 ../data/ui/template-designer.ui.h:27
+msgid "Description:"
+msgstr "Descrizione:"
 
-#: data/glade/prefs-dialog.glade.h:16
-msgid "Object defaults"
-msgstr "Proprietà oggetto"
+#: ../data/ui/new-label-dialog.ui.h:3
+msgid "Label size:"
+msgstr "Dimensioni etichetta:"
 
-#: data/glade/prefs-dialog.glade.h:17
-msgid "Points"
-msgstr "Punti"
+#: ../data/ui/new-label-dialog.ui.h:4
+msgid "Layout:"
+msgstr "Layout:"
 
-#: data/glade/prefs-dialog.glade.h:18
-msgid "Select default properties for new objects."
-msgstr "Seleziona le proprietà predefinite per i nuovi oggetti."
+#: ../data/ui/new-label-dialog.ui.h:5
+#, fuzzy
+msgid "Normal"
+msgstr "Formato:"
 
-#: data/glade/prefs-dialog.glade.h:19
-msgid "Select locale specific behavior."
+#: ../data/ui/new-label-dialog.ui.h:7 ../data/ui/template-designer.ui.h:43
+msgid "Part #:"
+msgstr "Parte #:"
+
+#: ../data/ui/new-label-dialog.ui.h:8
+msgid "Please review and confirm your selection."
 msgstr ""
 
-#. Most popular (at top of list)
-#: data/glade/prefs-dialog.glade.h:20 data/templates/paper-sizes.xml.h:29
-msgid "US Letter"
-msgstr "US·Letter"
+#: ../data/ui/new-label-dialog.ui.h:9
+#, fuzzy
+msgid "Rotated"
+msgstr "Girare"
 
-#: data/glade/prefs-dialog.glade.h:21 data/glade/object-editor.glade.h:29
-#: data/glade/template-designer.glade.h:72
-msgid "Width:"
-msgstr "Larghezza:"
+#: ../data/ui/new-label-dialog.ui.h:10
+msgid "Select orientation of label content."
+msgstr ""
+
+#: ../data/ui/new-label-dialog.ui.h:11
+msgid "Similar products:"
+msgstr ""
 
-#: data/glade/object-editor.glade.h:2
-msgid "00000000000 00000"
+#: ../data/ui/new-label-dialog.ui.h:12
+msgid "Vendor:"
 msgstr ""
 
-#: data/glade/object-editor.glade.h:3
-msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
+#: ../data/ui/object-editor.ui.h:2
+#, no-c-format
+msgid "%"
 msgstr ""
 
-#: data/glade/object-editor.glade.h:5
+#: ../data/ui/object-editor.ui.h:3 ../data/ui/prefs-dialog.ui.h:2
+msgid "Alignment:"
+msgstr "Allineamento:"
+
+#: ../data/ui/object-editor.ui.h:4
 msgid "Allow merge to automatically shrink text"
 msgstr ""
 
-#: data/glade/object-editor.glade.h:6
+#: ../data/ui/object-editor.ui.h:5
 msgid "Angle:"
 msgstr "Angolo:"
 
-#: data/glade/object-editor.glade.h:7
+#: ../data/ui/object-editor.ui.h:6
 msgid "Checksum"
 msgstr "Checksum"
 
-#: data/glade/object-editor.glade.h:10
+#: ../data/ui/object-editor.ui.h:7 ../data/ui/prefs-dialog.ui.h:3
+msgid "Color:"
+msgstr "Colore:"
+
+#: ../data/ui/object-editor.ui.h:9
+msgid "Enable shadow"
+msgstr ""
+
+#: ../data/ui/object-editor.ui.h:10
 msgid "Family:"
 msgstr "Famiglia:"
 
-#: data/glade/object-editor.glade.h:12
+#: ../data/ui/object-editor.ui.h:11
+msgid "File:"
+msgstr "File:"
+
+#: ../data/ui/object-editor.ui.h:12 ../data/ui/prefs-dialog.ui.h:5
 msgid "Fill"
 msgstr "Riempimento"
 
-#: data/glade/object-editor.glade.h:13 data/glade/template-designer.glade.h:33
+#: ../data/ui/object-editor.ui.h:13 ../data/ui/template-designer.ui.h:30
 msgid "Height:"
 msgstr "Altezza:"
 
-#: data/glade/object-editor.glade.h:14
-msgid "Image"
-msgstr "Immagine"
-
-#: data/glade/object-editor.glade.h:15
-msgid "Insert merge field"
-msgstr "Inserisci campo unione"
+#: ../data/ui/object-editor.ui.h:15
+msgid "Key:"
+msgstr "Chiave:"
 
-#: data/glade/object-editor.glade.h:17
+#: ../data/ui/object-editor.ui.h:16
 msgid "Length:"
 msgstr "Lunghezza:"
 
-#: data/glade/object-editor.glade.h:18
-msgid "Line"
-msgstr "Linea"
+#: ../data/ui/object-editor.ui.h:18 ../data/ui/prefs-dialog.ui.h:10
+msgid "Line Spacing:"
+msgstr "Spaziatura:"
 
-#: data/glade/object-editor.glade.h:20
+#: ../data/ui/object-editor.ui.h:19
 msgid "Literal:"
 msgstr "Letterale:"
 
-#: data/glade/object-editor.glade.h:21
-msgid "Load image"
-msgstr "Carica immagine"
+#: ../data/ui/object-editor.ui.h:20
+msgid "Opacity:"
+msgstr ""
 
-#: data/glade/object-editor.glade.h:22
+#: ../data/ui/object-editor.ui.h:21
 msgid "Position"
 msgstr "Posizione"
 
-#: data/glade/object-editor.glade.h:23
+#: ../data/ui/object-editor.ui.h:22
 msgid "Reset image size"
 msgstr "Ripristina dimensioni immagine"
 
-#: data/glade/object-editor.glade.h:24
+#: ../data/ui/object-editor.ui.h:23
+msgid "Shadow"
+msgstr ""
+
+#: ../data/ui/object-editor.ui.h:24
 msgid "Size"
 msgstr "Dimensioni"
 
-#: data/glade/object-editor.glade.h:25
+#: ../data/ui/object-editor.ui.h:25
 msgid "Size:"
 msgstr "Dimensione:"
 
-#: data/glade/object-editor.glade.h:26
+#: ../data/ui/object-editor.ui.h:26
 msgid "Style"
 msgstr "Stile"
 
-#: data/glade/object-editor.glade.h:27
+#: ../data/ui/object-editor.ui.h:27
 msgid "Style:"
 msgstr "Stile:"
 
-#: data/glade/object-editor.glade.h:30
+#: ../data/ui/object-editor.ui.h:29 ../data/ui/prefs-dialog.ui.h:20
+#: ../data/ui/template-designer.ui.h:61
+msgid "Width:"
+msgstr "Larghezza:"
+
+#: ../data/ui/object-editor.ui.h:30
+msgid "X Offset:"
+msgstr ""
+
+#: ../data/ui/object-editor.ui.h:31
 msgid "X:"
 msgstr "X:"
 
-#: data/glade/object-editor.glade.h:31
+#: ../data/ui/object-editor.ui.h:32
+msgid "Y Offset:"
+msgstr ""
+
+#: ../data/ui/object-editor.ui.h:33
 msgid "Y:"
 msgstr "Y:"
 
-#: data/glade/object-editor.glade.h:32
+#: ../data/ui/object-editor.ui.h:34
 msgid "degrees"
 msgstr "gradi"
 
-#: data/glade/object-editor.glade.h:33
+#: ../data/ui/object-editor.ui.h:35
 msgid "dialog1"
 msgstr ""
 
-#: data/glade/object-editor.glade.h:34
+#: ../data/ui/object-editor.ui.h:36
 msgid "digits:"
 msgstr "cifre:"
 
-#: data/glade/object-editor.glade.h:35
+#: ../data/ui/object-editor.ui.h:37
 msgid "format:"
 msgstr "formato:"
 
-#: data/glade/template-designer.glade.h:1
-msgid "  "
+#: ../data/ui/prefs-dialog.ui.h:1
+msgid "   "
+msgstr ""
+
+#: ../data/ui/prefs-dialog.ui.h:4
+#, fuzzy
+msgid "Default page size"
+msgstr "Ripristina dimensioni immagine"
+
+#: ../data/ui/prefs-dialog.ui.h:6
+msgid "Font:"
+msgstr "Carattere:"
+
+#: ../data/ui/prefs-dialog.ui.h:7
+msgid "ISO A4"
+msgstr "ISO A4"
+
+#: ../data/ui/prefs-dialog.ui.h:8
+msgid "Inches"
+msgstr "Pollici"
+
+#: ../data/ui/prefs-dialog.ui.h:11
+msgid "Locale"
+msgstr "Impostazioni nazionali"
+
+#: ../data/ui/prefs-dialog.ui.h:12
+msgid "Millimeters"
+msgstr "Millimetri"
+
+#: ../data/ui/prefs-dialog.ui.h:13
+msgid "Object defaults"
+msgstr "Proprietà oggetto"
+
+#: ../data/ui/prefs-dialog.ui.h:14
+msgid "Points"
+msgstr "Punti"
+
+#: ../data/ui/prefs-dialog.ui.h:15
+msgid "Select default properties for new objects."
+msgstr "Seleziona le proprietà predefinite per i nuovi oggetti."
+
+#: ../data/ui/prefs-dialog.ui.h:16
+msgid "Select locale specific behavior."
 msgstr ""
 
-#: data/glade/template-designer.glade.h:2
+#: ../data/ui/prefs-dialog.ui.h:18 ../templates/paper-sizes.xml.h:35
+msgid "US Letter"
+msgstr "US·Letter"
+
+#: ../data/ui/prefs-dialog.ui.h:19
+#, fuzzy
+msgid "Units"
+msgstr "Senza nome"
+
+#: ../data/ui/property-bar.ui.h:1
+msgid "Bold"
+msgstr "Grassetto"
+
+#: ../data/ui/property-bar.ui.h:2
+msgid "Center align"
+msgstr "Allineamento centrato"
+
+#: ../data/ui/property-bar.ui.h:7
+msgid "Left align"
+msgstr "Allinea·a·sinistra"
+
+#: ../data/ui/property-bar.ui.h:10
+msgid "Right align"
+msgstr "Allineamento a destra"
+
+#: ../data/ui/template-designer.ui.h:1
 msgid "(e.g., \"Mailing Labels,\" \"Business Cards,\" ...)"
 msgstr "(es., \"Etichette di spedizione,\" \"Biglietti da visita,\" ...)"
 
-#: data/glade/template-designer.glade.h:3
+#: ../data/ui/template-designer.ui.h:2
 msgid "(e.g., 8163A)"
 msgstr "(es. 8163A)"
 
-#: data/glade/template-designer.glade.h:4
+#: ../data/ui/template-designer.ui.h:3
 msgid "(e.g., Avery, Acme, ...)"
 msgstr "(es. Avery, Acme, ...)"
 
-#: data/glade/template-designer.glade.h:6
+#: ../data/ui/template-designer.ui.h:4
 msgid "1. Outer radius:"
 msgstr "1. raggio esterno:"
 
-#: data/glade/template-designer.glade.h:7
+#: ../data/ui/template-designer.ui.h:5
 msgid "1. Radius:"
 msgstr "Raggio:"
 
-#: data/glade/template-designer.glade.h:8
+#: ../data/ui/template-designer.ui.h:6
 msgid "1. Width:"
 msgstr "1. Larghezza:"
 
-#: data/glade/template-designer.glade.h:9
+#: ../data/ui/template-designer.ui.h:7
 msgid "2. Height:"
 msgstr "2. Altezza:"
 
-#: data/glade/template-designer.glade.h:10
+#: ../data/ui/template-designer.ui.h:8
 msgid "2. Inner radius:"
 msgstr "2. raggio interno:"
 
-#: data/glade/template-designer.glade.h:11
+#: ../data/ui/template-designer.ui.h:9
 msgid "2. Waste (overprint allowed):"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:12
+#: ../data/ui/template-designer.ui.h:10
 msgid "3. Clipping width:"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:13
+#: ../data/ui/template-designer.ui.h:11
 msgid "3. Margin"
 msgstr "3. Margine"
 
-#: data/glade/template-designer.glade.h:14
+#: ../data/ui/template-designer.ui.h:12
 msgid "3. Round (radius of corner):"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:15
+#: ../data/ui/template-designer.ui.h:13
 msgid "4. Clipping height:"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:16
+#: ../data/ui/template-designer.ui.h:14
 msgid "4. Horiz. waste (overprint allowed):"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:17
+#: ../data/ui/template-designer.ui.h:15
 msgid "5. Vert. waste (overprint allowed):"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:18
+#: ../data/ui/template-designer.ui.h:16
 msgid "5. Waste (overprint allowed):"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:19
+#: ../data/ui/template-designer.ui.h:17
 msgid "6. Margin"
 msgstr "6. Margine"
 
-#: data/glade/template-designer.glade.h:20
+#: ../data/ui/template-designer.ui.h:18
 msgid "Brand/Manufacturer:"
 msgstr "Marca/Produttore:"
 
-#: data/glade/template-designer.glade.h:21
+#: ../data/ui/template-designer.ui.h:19
 msgid "CD/DVD (including credit card CDs)"
 msgstr "CD/DVD (inclusa copertina dei ringraziamenti)"
 
-#: data/glade/template-designer.glade.h:22
+#: ../data/ui/template-designer.ui.h:20
 msgid ""
 "Congratulations!\n"
 "\n"
@@ -1846,7 +2416,8 @@ msgid ""
 "\n"
 "Otherwise, you may click \"Cancel\" to abandon your design\n"
 "or \"Back\" to continue editing this design."
-msgstr "Congratulazioni!\n"
+msgstr ""
+"Congratulazioni!\n"
 "\n"
 "Hai completato il gLabels Template Designer.\n"
 "Se vuoi salvare il tuo progetto fai clic su \"Applica\".\n"
@@ -1854,23 +2425,19 @@ msgstr "Congratulazioni!\n"
 "In caso contrario, fai clic su \"Cancella\" per abbandonare\n"
 "il tuo progetto o \"Indietro\" per continuare la progettazione."
 
-#: data/glade/template-designer.glade.h:30
-msgid "Design Completed"
-msgstr "Progettazione completata"
-
-#: data/glade/template-designer.glade.h:31
+#: ../data/ui/template-designer.ui.h:28
 msgid "Distance from left edge (x0):"
 msgstr "Distanza dal bordo sinistro (x0):"
 
-#: data/glade/template-designer.glade.h:32
+#: ../data/ui/template-designer.ui.h:29
 msgid "Distance from top edge (y0):"
 msgstr "Distanza dal bordo in alto (y0):"
 
-#: data/glade/template-designer.glade.h:34
+#: ../data/ui/template-designer.ui.h:31
 msgid "Horizontal pitch (dx):"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:35
+#: ../data/ui/template-designer.ui.h:32
 msgid ""
 "How many layouts will your template contain? \n"
 "\n"
@@ -1879,549 +2446,1119 @@ msgid ""
 "The second example illustrates when two layouts are needed."
 msgstr ""
 
-#: data/glade/template-designer.glade.h:40
-msgid "Label Size (CD/DVD)"
-msgstr "Dimensione etichetta (CD/DVD)"
-
-#: data/glade/template-designer.glade.h:41
-msgid "Label Size (Round)"
-msgstr "Dimensioni etichetta"
-
-#: data/glade/template-designer.glade.h:42
-msgid "Label or Card Shape"
-msgstr "Forma dell'etichetta o della scheda"
-
-#: data/glade/template-designer.glade.h:43
-msgid "Label or Card Size (Rectangular)"
-msgstr ""
-
-#: data/glade/template-designer.glade.h:44
+#: ../data/ui/template-designer.ui.h:37
 msgid "Layout #1"
 msgstr "Layout #1"
 
-#: data/glade/template-designer.glade.h:45
+#: ../data/ui/template-designer.ui.h:38
 msgid "Layout #2"
 msgstr "Layout #2"
 
-#: data/glade/template-designer.glade.h:46
-msgid "Layout(s)"
-msgstr "Layout"
-
-#: data/glade/template-designer.glade.h:47
-msgid "Name and Description"
-msgstr "Nome e descrizione"
-
-#: data/glade/template-designer.glade.h:48
+#: ../data/ui/template-designer.ui.h:39
 msgid "Number across (nx):"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:49
+#: ../data/ui/template-designer.ui.h:40
 msgid "Number down (ny):"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:50
-msgid "Number of Layouts"
-msgstr "Numero di layout"
-
-#: data/glade/template-designer.glade.h:51
+#: ../data/ui/template-designer.ui.h:41
 msgid "Number of layouts:"
 msgstr "Numero di layout:"
 
-#: data/glade/template-designer.glade.h:52
-msgid "Page Size"
-msgstr "Dimensione pagina"
-
-#: data/glade/template-designer.glade.h:54
-msgid "Part #:"
-msgstr "Parte #:"
-
-#: data/glade/template-designer.glade.h:55
+#: ../data/ui/template-designer.ui.h:44
 msgid ""
 "Please enter the following identifying information about the template "
 "stationery."
 msgstr ""
 
-#: data/glade/template-designer.glade.h:56
+#: ../data/ui/template-designer.ui.h:45
 msgid "Please enter the following layout information."
 msgstr "Per piacere, inserisci le seguenti informazioni."
 
-#: data/glade/template-designer.glade.h:57
+#: ../data/ui/template-designer.ui.h:46
 msgid ""
 "Please enter the following size parameters of a single label in your "
 "template."
 msgstr ""
 
-#: data/glade/template-designer.glade.h:58
+#: ../data/ui/template-designer.ui.h:47
 msgid ""
 "Please enter the following size parameters of a single label or card in your "
 "template."
 msgstr ""
 
-#: data/glade/template-designer.glade.h:59
+#: ../data/ui/template-designer.ui.h:48
 msgid "Please select the basic shape of the labels or cards."
 msgstr ""
 
-#: data/glade/template-designer.glade.h:60
+#: ../data/ui/template-designer.ui.h:49
 msgid "Please select the page size of the template stationery."
 msgstr ""
 
-#: data/glade/template-designer.glade.h:61
+#: ../data/ui/template-designer.ui.h:50
 msgid "Print test sheet"
 msgstr "Stampa foglio di prova"
 
-#: data/glade/template-designer.glade.h:62
+#: ../data/ui/template-designer.ui.h:51
 msgid "Rectangular or square (can have rounded corners)"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:63
+#: ../data/ui/template-designer.ui.h:52
 msgid "Round"
 msgstr "Rotonda"
 
-#: data/glade/template-designer.glade.h:64
+#: ../data/ui/template-designer.ui.h:53
 msgid ""
 "Templates needing\n"
 "two layouts."
 msgstr ""
 
-#: data/glade/template-designer.glade.h:66
+#: ../data/ui/template-designer.ui.h:55
 msgid ""
 "Templates needing only\n"
 "one layout."
 msgstr ""
 
-#: data/glade/template-designer.glade.h:68
+#: ../data/ui/template-designer.ui.h:57
 msgid "Vertical pitch (dy):"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:69
+#: ../data/ui/template-designer.ui.h:58
 msgid ""
 "Welcome to the gLabels Template Designer.\n"
 "\n"
 "This dialog will assist you in the creation of a custom gLabels template."
 msgstr ""
 
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:1
+msgid "Collate"
+msgstr "Fascicoli"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:2
+msgid "Copies"
+msgstr "Copie"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:3
+msgid "Copies:"
+msgstr "Copie:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:5
+msgid "Merge Control"
+msgstr ""
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:6
+msgid "Options"
+msgstr "Opzioni"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:7
+msgid "Sheets:"
+msgstr "Fogli:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:8
+msgid "Start on label"
+msgstr ""
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:9
+msgid "from:"
+msgstr "da:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:10
+msgid "on 1st sheet"
+msgstr "nel 1° foglio"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:14
+msgid "to:"
+msgstr "a:"
+
+#: ../data/desktop/glabels-3.0.desktop.in.h:1
+msgid "Create labels, business cards and media covers"
+msgstr "Crea etichette, biglietti da visita e copertine"
+
+#: ../data/desktop/glabels-3.0.desktop.in.h:2
+#, fuzzy
+msgid "gLabels Label Designer 3"
+msgstr "gLabels Designer di etichetta"
+
+#: ../data/mime/glabels-3.0.xml.in.h:1
+msgid "gLabels Project File"
+msgstr "File di progetto di gLabels"
+
+#. Envelopes
+#: ../templates/paper-sizes.xml.h:2
+msgid "#10 Envelope"
+msgstr ""
+
 #. Other ISO A series sizes
-#: data/templates/paper-sizes.xml.h:2
+#: ../templates/paper-sizes.xml.h:4
 msgid "A0"
 msgstr "A0"
 
-#: data/templates/paper-sizes.xml.h:3
+#: ../templates/paper-sizes.xml.h:5
 msgid "A1"
 msgstr "A1"
 
-#: data/templates/paper-sizes.xml.h:4
+#: ../templates/paper-sizes.xml.h:6
 msgid "A10"
 msgstr "A10"
 
-#: data/templates/paper-sizes.xml.h:5
+#: ../templates/paper-sizes.xml.h:7
 msgid "A2"
 msgstr "A2"
 
-#: data/templates/paper-sizes.xml.h:6
+#: ../templates/paper-sizes.xml.h:8
 msgid "A3"
 msgstr "A3"
 
-#: data/templates/paper-sizes.xml.h:7
+#. Most popular (at top of list)
+#: ../templates/paper-sizes.xml.h:10
 msgid "A4"
 msgstr "A4"
 
-#: data/templates/paper-sizes.xml.h:8
+#: ../templates/paper-sizes.xml.h:11
 msgid "A5"
 msgstr "A5"
 
-#: data/templates/paper-sizes.xml.h:9
+#: ../templates/paper-sizes.xml.h:12
 msgid "A6"
 msgstr "A6"
 
-#: data/templates/paper-sizes.xml.h:10
+#: ../templates/paper-sizes.xml.h:13
 msgid "A7"
 msgstr "A7"
 
-#: data/templates/paper-sizes.xml.h:11
+#: ../templates/paper-sizes.xml.h:14
 msgid "A8"
 msgstr "A8"
 
-#: data/templates/paper-sizes.xml.h:12
+#: ../templates/paper-sizes.xml.h:15
 msgid "A9"
 msgstr "A9"
 
 #. ISO B series sizes
-#: data/templates/paper-sizes.xml.h:14
+#: ../templates/paper-sizes.xml.h:17
 msgid "B0"
 msgstr "B0"
 
-#: data/templates/paper-sizes.xml.h:15
+#: ../templates/paper-sizes.xml.h:18
 msgid "B1"
 msgstr "B1"
 
-#: data/templates/paper-sizes.xml.h:16
+#: ../templates/paper-sizes.xml.h:19
 msgid "B10"
 msgstr "B10"
 
-#: data/templates/paper-sizes.xml.h:17
+#: ../templates/paper-sizes.xml.h:20
 msgid "B2"
 msgstr "B2"
 
-#: data/templates/paper-sizes.xml.h:18
+#: ../templates/paper-sizes.xml.h:21
 msgid "B3"
 msgstr "B3"
 
-#: data/templates/paper-sizes.xml.h:19
+#: ../templates/paper-sizes.xml.h:22
 msgid "B4"
 msgstr "B4"
 
-#: data/templates/paper-sizes.xml.h:20
+#: ../templates/paper-sizes.xml.h:23
 msgid "B5"
 msgstr "B5"
 
-#: data/templates/paper-sizes.xml.h:21
+#: ../templates/paper-sizes.xml.h:24
 msgid "B6"
 msgstr "B6"
 
-#: data/templates/paper-sizes.xml.h:22
+#: ../templates/paper-sizes.xml.h:25
 msgid "B7"
 msgstr "B7"
 
-#: data/templates/paper-sizes.xml.h:23
+#: ../templates/paper-sizes.xml.h:26
 msgid "B8"
 msgstr "B8"
 
-#: data/templates/paper-sizes.xml.h:24
+#: ../templates/paper-sizes.xml.h:27
 msgid "B9"
 msgstr "B9"
 
-#: data/templates/paper-sizes.xml.h:25
+#: ../templates/paper-sizes.xml.h:28
+msgid "C5"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:29
+msgid "C6"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:30
+msgid "DL"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:31
+msgid "Monarch Envelope"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:32
 msgid "US Executive"
 msgstr "US Executive"
 
 #. Other US paper sizes
-#: data/templates/paper-sizes.xml.h:27
+#: ../templates/paper-sizes.xml.h:34
 msgid "US Legal"
 msgstr "US Legale"
 
+#: ../templates/categories.xml.h:1
+msgid "Any card"
+msgstr ""
+
+#: ../templates/categories.xml.h:2
+#, fuzzy
+msgid "Any label"
+msgstr "Apri etichetta"
+
+#. ===================================================================
+#: ../templates/categories.xml.h:3 ../templates/pearl-iso-templates.xml.h:8
+#, fuzzy
+msgid "Business cards"
+msgstr "Biglietti da visita"
+
+#: ../templates/categories.xml.h:4
+msgid "CD/DVD or other media"
+msgstr ""
+
+#: ../templates/categories.xml.h:5
+msgid "Mailing/shipping products"
+msgstr ""
+
+#: ../templates/categories.xml.h:6
+msgid "Rectangular labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/categories.xml.h:7 ../templates/pearl-iso-templates.xml.h:46
+#, fuzzy
+msgid "Round labels"
+msgstr "Etichetta con bordi arrotondati"
+
+#: ../templates/categories.xml.h:8
+#, fuzzy
+msgid "Square labels"
+msgstr "Etichette quadrate"
+
+#. ===================================================================
+#. ********************************************************************
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:2
-#: data/templates/zweckform-iso-templates.xml.h:2
+#: ../templates/avery-us-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:2
+#: ../templates/dymo-other-templates.xml.h:4
+#: ../templates/maco-us-templates.xml.h:2
+#: ../templates/misc-iso-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:1
+#: ../templates/zweckform-iso-templates.xml.h:2
 msgid "Address Labels"
 msgstr "Etichette di indirizzo"
 
 #. ===================================================================
 #. ============================================================
 #. ===================================================================
-#. ======================================================
-#: data/templates/avery-us-templates.xml.h:4
-#: data/templates/avery-iso-templates.xml.h:4
-#: data/templates/zweckform-iso-templates.xml.h:6
-#: data/templates/misc-us-templates.xml.h:3
-#: data/templates/misc-iso-templates.xml.h:17
+#. ********************************************************************
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:8
+#: ../templates/misc-us-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:6
 msgid "Business Cards"
 msgstr "Biglietti da visita"
 
-#: data/templates/avery-us-templates.xml.h:5
+#. ===================================================================
+#. ===============================================================
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:6
+#: ../templates/avery-iso-templates.xml.h:14
+#: ../templates/misc-us-templates.xml.h:8
+#: ../templates/misc-iso-templates.xml.h:16
+#: ../templates/pearl-iso-templates.xml.h:20
+#: ../templates/worldlabel-us-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:8
+msgid "CD/DVD Labels"
+msgstr "Etichette CD/DVD"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:8
 msgid "CD/DVD Labels (Disc Labels)"
 msgstr "Etichette CD/DVD (Etichette Dischi)"
 
-#: data/templates/avery-us-templates.xml.h:6
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:10
 msgid "CD/DVD Labels (Spine Labels)"
 msgstr "Etichette CD/DVD (Etichette dischi)"
 
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:8
+#: ../templates/avery-us-templates.xml.h:12
+#: ../templates/avery-iso-templates.xml.h:16
+#: ../templates/worldlabel-us-templates.xml.h:3
 msgid "Diskette Labels"
 msgstr "Etichette per floppy"
 
+#. the LSK labels can be torn in half down the center
+#: ../templates/avery-us-templates.xml.h:14
+#, fuzzy
+msgid "Divider Labels"
+msgstr "Etichette CD"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:16
+#: ../templates/avery-other-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:4
+#, fuzzy
+msgid "File Folder Labels"
+msgstr "Pagina piena di etichette"
+
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:10
+#: ../templates/avery-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:5
 msgid "Filing Labels"
 msgstr ""
 
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:12
+#: ../templates/avery-us-templates.xml.h:20
+#: ../templates/worldlabel-us-templates.xml.h:6
 msgid "Full Sheet Labels"
 msgstr "Pagina piena di etichette"
 
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:14
+#: ../templates/avery-us-templates.xml.h:22
+#, fuzzy
+msgid "ID Labels"
+msgstr "Etichette CD"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:24
+#, fuzzy
+msgid "Index Cards"
+msgstr "Biglietti da visita"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:26
 msgid "Large Round Labels"
 msgstr "Etichetta con bordi arrotondati"
 
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:16
+#: ../templates/avery-us-templates.xml.h:28
 msgid "Name Badge Labels"
 msgstr ""
 
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:18
+#: ../templates/avery-us-templates.xml.h:30
+msgid "Post cards"
+msgstr ""
+
+#. ===================================================================
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:32
+#: ../templates/dymo-other-templates.xml.h:12
+#: ../templates/worldlabel-us-templates.xml.h:8
 msgid "Return Address Labels"
 msgstr "Etichette con indirizzo del mittente"
 
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:20
+#: ../templates/avery-us-templates.xml.h:34
+#: ../templates/maco-us-templates.xml.h:3
+#: ../templates/misc-us-templates.xml.h:30
+#: ../templates/worldlabel-us-templates.xml.h:9
+#, fuzzy
+msgid "Round Labels"
+msgstr "Etichetta con bordi arrotondati"
+
+#. ===================================================================
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:36
+#: ../templates/uline-us-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:10
 msgid "Shipping Labels"
 msgstr "Etichette di spedizione"
 
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:22
+#: ../templates/avery-us-templates.xml.h:38
 msgid "Small Round Labels"
 msgstr "Etichette piccole con bordi arrotondati"
 
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:24
+#: ../templates/avery-us-templates.xml.h:40
 msgid "Square Labels"
 msgstr "Etichette quadrate"
 
-#: data/templates/avery-us-templates.xml.h:25
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:42
+msgid "Tent Cards"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:44
+#: ../templates/worldlabel-us-templates.xml.h:11
 msgid "Video Tape Face Labels"
 msgstr ""
 
-#: data/templates/avery-us-templates.xml.h:26
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:46
+#: ../templates/worldlabel-us-templates.xml.h:12
 msgid "Video Tape Spine Labels"
 msgstr ""
 
 #. ===================================================================
-#: data/templates/avery-iso-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:4
 msgid "Address labels"
 msgstr "Etichette per indirizzo"
 
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:6
+#, fuzzy
+msgid "Allround labels"
+msgstr "Etichette piccole con bordi arrotondati"
+
 #. ===============================================================
-#: data/templates/avery-iso-templates.xml.h:6
+#: ../templates/avery-iso-templates.xml.h:10
 msgid "CD Booklet"
 msgstr "CD Booklet"
 
 #. ===============================================================
-#: data/templates/avery-iso-templates.xml.h:8
+#: ../templates/avery-iso-templates.xml.h:12
 msgid "CD Inlet"
 msgstr "CD Inlet"
 
-#. ===============================================================
-#. ===================================================================
-#: data/templates/avery-iso-templates.xml.h:10
-#: data/templates/zweckform-iso-templates.xml.h:8
-#: data/templates/misc-us-templates.xml.h:5
-#: data/templates/misc-iso-templates.xml.h:21
-msgid "CD/DVD Labels"
-msgstr "Etichette CD/DVD"
-
 #. ===================================================================
-#: data/templates/avery-iso-templates.xml.h:12
+#: ../templates/avery-iso-templates.xml.h:18
 msgid "Diskette labels"
 msgstr ""
 
 #. ===============================================================
 #. ===================================================================
-#: data/templates/avery-iso-templates.xml.h:14
-#: data/templates/zweckform-iso-templates.xml.h:14
-#: data/templates/misc-iso-templates.xml.h:35
+#: ../templates/avery-iso-templates.xml.h:20
+#: ../templates/misc-us-templates.xml.h:20
+#: ../templates/misc-iso-templates.xml.h:36
+#: ../templates/zweckform-iso-templates.xml.h:16
 msgid "Mailing Labels"
 msgstr "Etichette di spedizione"
 
 #. ===================================================================
-#: data/templates/avery-iso-templates.xml.h:16
+#: ../templates/avery-iso-templates.xml.h:22
 msgid "Mailing labels"
 msgstr ""
 
 #. ===================================================================
-#: data/templates/avery-iso-templates.xml.h:18
+#: ../templates/avery-iso-templates.xml.h:24
 msgid "Mini Address Labels"
 msgstr "Etichette Mini-indirizzo"
 
 #. ===================================================================
-#: data/templates/avery-iso-templates.xml.h:20
-msgid "Shipping labels"
-msgstr ""
+#: ../templates/avery-iso-templates.xml.h:26
+#, fuzzy
+msgid "Mini Labels"
+msgstr "Etichette Mini-CD"
 
 #. ===================================================================
-#: data/templates/zweckform-iso-templates.xml.h:4
-msgid "Allround Labels"
+#: ../templates/avery-iso-templates.xml.h:28
+msgid "Shipping labels"
 msgstr ""
 
-#. ===================================================================
-#: data/templates/zweckform-iso-templates.xml.h:10
-msgid "Correction and Cover-up Labels"
+#: ../templates/brother-other-templates.xml.h:1
+msgid "Multi Purpose Labels 17mm x 54mm"
 msgstr ""
 
+#: ../templates/brother-other-templates.xml.h:2
+#, fuzzy
+msgid "Shipping Labels 62mm x 100mm"
+msgstr "Etichette di spedizione"
+
+#.
+#. *********************************************************************
+#. *********************************************************************
+#. Labels for the Brother QL-500/550/650 PC Label Printers
+#.
+#. These templates work with the Brother Linux Printer CUPS Driver.  It
+#. is unknown if these work correctly with the foomatic print driver for
+#. these printers.
+#.
+#. One difference from typical templates is that the template size is
+#. not the actual media size - it is the size of the printable area,
+#. which is smaller than the media size.  This is because (at least with
+#. the Brother driver) coordinates are relative the corner of this area.
+#.
+#. *********************************************************************
+#. *********************************************************************
+#.
+#: ../templates/brother-other-templates.xml.h:20
+#, fuzzy
+msgid "Standard Address Labels 29mm x 90mm"
+msgstr "Etichette con indirizzo del mittente"
+
 #. ===================================================================
-#: data/templates/zweckform-iso-templates.xml.h:12
-msgid "Lever Arch File Labels"
+#: ../templates/dymo-other-templates.xml.h:2
+msgid "3.5in Diskette"
 msgstr ""
 
 #. ===================================================================
-#: data/templates/zweckform-iso-templates.xml.h:16
-msgid "QSL-Karten Etiketten 70mm x 50,8mm"
-msgstr ""
+#: ../templates/dymo-other-templates.xml.h:6
+#, fuzzy
+msgid "File Folder"
+msgstr "Colore di riempimento"
 
 #. ===================================================================
-#: data/templates/zweckform-iso-templates.xml.h:18
-msgid "Rectangular Copier Labels"
+#: ../templates/dymo-other-templates.xml.h:8
+msgid "Hanging Folder"
 msgstr ""
 
 #. ===================================================================
-#: data/templates/zweckform-iso-templates.xml.h:20
-#: data/templates/misc-iso-templates.xml.h:44
-msgid "Rectangular Labels"
-msgstr ""
+#: ../templates/dymo-other-templates.xml.h:10
+#, fuzzy
+msgid "Large Address Labels"
+msgstr "Etichette di indirizzo"
 
 #. ===================================================================
-#: data/templates/zweckform-iso-templates.xml.h:22
-msgid "Video Labels (back)"
-msgstr ""
+#: ../templates/dymo-other-templates.xml.h:14
+#, fuzzy
+msgid "Shipping Address Labels"
+msgstr "Etichette Mini-indirizzo"
 
-#: data/templates/misc-us-templates.xml.h:1
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:2
 msgid "Business Card CD"
 msgstr ""
 
-#: data/templates/misc-us-templates.xml.h:4
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:6
 msgid "CD Template Rectangles"
 msgstr ""
 
-#: data/templates/misc-us-templates.xml.h:6
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:10
 msgid "CD/DVD Labels (Face Only)"
 msgstr ""
 
 #. ===================================================================
-#: data/templates/misc-us-templates.xml.h:7
-#: data/templates/misc-iso-templates.xml.h:23
+#: ../templates/misc-us-templates.xml.h:12
+#: ../templates/misc-iso-templates.xml.h:18
 msgid "CD/DVD Labels (face only)"
 msgstr ""
 
 #. ===================================================================
-#: data/templates/misc-us-templates.xml.h:9
+#: ../templates/misc-us-templates.xml.h:14
 msgid "Cassette Labels"
 msgstr "Etichette per cassette"
 
 #. ===================================================================
-#: data/templates/misc-us-templates.xml.h:11
+#: ../templates/misc-us-templates.xml.h:16
 msgid "DLT Labels"
 msgstr "Etichette DLT"
 
 #. ===================================================================
-#: data/templates/misc-us-templates.xml.h:13
+#: ../templates/misc-us-templates.xml.h:18
+#, fuzzy
+msgid "Jewel Case Booklet"
+msgstr "CD Booklet"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:22
 msgid "Microtube labels"
 msgstr ""
 
-#: data/templates/misc-us-templates.xml.h:14
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:24
 msgid "Mini-CD Labels"
 msgstr "Etichette Mini-CD"
 
-#: data/templates/misc-us-templates.xml.h:15
+#: ../templates/misc-us-templates.xml.h:25
 msgid "PRO CD Labels 2-up (CD spine only)"
 msgstr ""
 
-#: data/templates/misc-us-templates.xml.h:16
+#: ../templates/misc-us-templates.xml.h:26
 msgid "PRO CD Labels 2-up (Face only)"
 msgstr ""
 
-#: data/templates/misc-us-templates.xml.h:17
-#: data/templates/misc-iso-templates.xml.h:42
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:42
 msgid "PRO CD Labels 2-up (face only)"
 msgstr ""
 
-#: data/templates/misc-us-templates.xml.h:18
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:32
 msgid "Slimline CD Case (rightside up)"
 msgstr ""
 
-#: data/templates/misc-us-templates.xml.h:19
+#: ../templates/misc-us-templates.xml.h:33
 msgid "Slimline CD Case (upside down)"
 msgstr ""
 
-#: data/templates/misc-iso-templates.xml.h:1
-msgid "Agipa 119488: Business Cards"
-msgstr "Agipa 119488: biglietti da visita"
-
-#. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:3
-msgid "Allround Labels --24"
-msgstr ""
-
-#. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:5
-msgid "Allround Labels --44"
-msgstr ""
-
-#. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:7
-msgid "Allround Labels --64"
-msgstr ""
-
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:9
-msgid "Allround Labels --65"
+#: ../templates/misc-iso-templates.xml.h:4
+#: ../templates/zweckform-iso-templates.xml.h:4
+msgid "Allround Labels"
 msgstr ""
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:11
+#: ../templates/misc-iso-templates.xml.h:6
 msgid "Arch File Labels"
 msgstr ""
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:13
+#: ../templates/misc-iso-templates.xml.h:8
 msgid "Arch File Labels (large)"
 msgstr ""
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:15
+#: ../templates/misc-iso-templates.xml.h:10
 msgid "Arch File Labels (small)"
 msgstr ""
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:19
+#: ../templates/misc-iso-templates.xml.h:14
 msgid "CD Labels"
 msgstr "Etichette CD"
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:25
+#: ../templates/misc-iso-templates.xml.h:20
 msgid "CD/DVD Labels Standard Format (face only)"
 msgstr ""
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:27
+#: ../templates/misc-iso-templates.xml.h:22
 msgid "Diskette Labels (face only)"
 msgstr ""
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:29
+#: ../templates/misc-iso-templates.xml.h:24
 msgid "EPSON Photo Stickers 16"
 msgstr "EPSON Photo Stickers 16"
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:31
+#: ../templates/misc-iso-templates.xml.h:26
 msgid "Etiketten"
 msgstr ""
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:33
+#: ../templates/misc-iso-templates.xml.h:28
 msgid "Fridge Magnet Stickers"
 msgstr ""
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:37
-msgid "Mailing Labels --14"
+#: ../templates/misc-iso-templates.xml.h:30
+#, fuzzy
+msgid "General Labels"
+msgstr "Etichette di spedizione"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:32
+msgid "Inkjet/Laser Labels 70x37mm"
 msgstr ""
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:39
+#: ../templates/misc-iso-templates.xml.h:38
 msgid "Mailing Labels-2 columns"
 msgstr ""
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:41
+#: ../templates/misc-iso-templates.xml.h:40
 msgid "Mailing Labels-3 columns"
 msgstr ""
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:46
+#: ../templates/misc-iso-templates.xml.h:44
+#: ../templates/zweckform-iso-templates.xml.h:24
+msgid "Rectangular Labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:46
+#, fuzzy
+msgid "Universal Labels"
+msgstr "Etichette Mini-indirizzo"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:48
 msgid "Video Labels (face only)"
 msgstr "Etichette video (solo frontespizio)"
 
-#: data/desktop/glabels.desktop.in.h:1
-msgid "Create labels, business cards and media covers"
-msgstr "Crea etichette, biglietti da visita e copertine"
+#. ===================================================================
+#: ../templates/misc-other-templates.xml.h:2
+#, fuzzy
+msgid "Multi-Purpose Labels"
+msgstr "Etichette quadrate"
 
-#: data/desktop/glabels.desktop.in.h:2
-msgid "gLabels Label Designer"
-msgstr "gLabels Designer di etichetta"
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:4
+#, fuzzy
+msgid "Address Labels (STAMPIT)"
+msgstr "Etichette di indirizzo"
 
-#: data/mime/glabels.keys.in.h:1 data/mime/glabels.xml.in.h:1
-msgid "gLabels Project File"
-msgstr "File di progetto di gLabels"
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:6
+#, fuzzy
+msgid "Bottle labels"
+msgstr "Informazioni su glabels"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:10
+msgid "Business cards glossy, both sides printable"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:12
+#, fuzzy
+msgid "Business cards high glossy"
+msgstr "Biglietti da visita"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:14
+#, fuzzy
+msgid "Business cards punched"
+msgstr "Biglietti da visita"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:16
+#, fuzzy
+msgid "Business cards punched dull"
+msgstr "Biglietti da visita"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:18
+#, fuzzy
+msgid "Business cards punched glossy"
+msgstr "Biglietti da visita"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:22
+msgid "Floppy disk labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:24
+#, fuzzy
+msgid "Foldable business cards"
+msgstr "Biglietti da visita"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:26
+msgid "Foldable business cards glossy/dull"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:28
+#, fuzzy
+msgid "Labels A4"
+msgstr "Etichette"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:30
+#, fuzzy
+msgid "Labels A5"
+msgstr "Etichette"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:32
+#, fuzzy
+msgid "Labels A6"
+msgstr "Etichette"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:34
+msgid "Membership cards"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:36
+msgid "Membership cards, both sides printable"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:38
+msgid "Name plates"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:40
+msgid "Passport photo labels glossy"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:42
+#, fuzzy
+msgid "Photo labels"
+msgstr "Informazioni su glabels"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:44
+msgid "Photo labels semiglossy"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:48
+#, fuzzy
+msgid "SD card labels"
+msgstr "Etichette quadrate"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:50
+msgid "Self-adhesive film transparent"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:52
+msgid "Self-adhesive film weatherproof"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:54
+msgid "Self-adhesive labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:56
+msgid "Self-adhesive window film"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:10
+msgid "Correction and Cover-up Labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:12
+#, fuzzy
+msgid "File Back Labels"
+msgstr "Pagina piena di etichette"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:14
+msgid "Lever Arch File Labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:18
+msgid "Multi-purpose Stick+Lift Labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:20
+msgid "QSL-Karten Etiketten 70mm x 50,8mm"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:22
+msgid "Rectangular Copier Labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:26
+msgid "Video Labels (back)"
+msgstr ""
+
+#~ msgid "Could not initialize Bonobo!\n"
+#~ msgstr "Non è possibile inizializzare Bonobo!\n"
+
+#~ msgid "print this message"
+#~ msgstr "stampa questo messaggio"
+
+#~ msgid "print the version of glabels-batch being used"
+#~ msgstr "stampa la versione di glabels batch utilizzata"
+
+#~ msgid "[OPTION...] GLABELS_FILE..."
+#~ msgstr "[OPTION...] GLABELS_FILE..."
+
+#~ msgid "missing glabels file\n"
+#~ msgstr "file di glabels mancante\n"
+
+#~ msgid " "
+#~ msgstr " "
+
+#~ msgid "Media Type"
+#~ msgstr "Tipo media"
+
+#~ msgid "Open"
+#~ msgstr "Apri"
+
+#~ msgid "Align _Horizontally"
+#~ msgstr "Allineamento _orizzontale"
+
+#~ msgid "Align _Vertically"
+#~ msgstr "Allineamento _verticale"
+
+#~ msgid "_Delete"
+#~ msgstr "Cancella"
+
+#~ msgid "Print"
+#~ msgstr "Stampa"
+
+#~ msgid "_Job"
+#~ msgstr "Lavoro"
+
+#~ msgid "P_rinter"
+#~ msgstr "Stampante"
+
+#~ msgid "Print preview"
+#~ msgstr "Anteprima di stampa"
+
+#~ msgid "%s x %s %s"
+#~ msgstr "%s x %s %s"
+
+#~ msgid "%.5g x %.5g %s"
+#~ msgstr "%.5g x %.5g %s"
+
+#~ msgid "%.5g %s diameter"
+#~ msgstr "%.5g %s diametro"
+
+#~ msgid "Choose Custom Color"
+#~ msgstr "Scegli colore personalizzato"
+
+#~ msgid "dark green #2"
+#~ msgstr "verde scuro #2"
+
+#~ msgid "red"
+#~ msgstr "rosso"
+
+#~ msgid "lime"
+#~ msgstr "tiglio"
+
+#~ msgid "gray"
+#~ msgstr "grigio"
+
+#~ msgid "light blue"
+#~ msgstr "blu chiaro"
+
+#~ msgid "No paper files found!"
+#~ msgstr "Nessun file paper trovato!"
+
+#~ msgid "Close"
+#~ msgstr "Chiudi"
+
+#~ msgid "Cu_t"
+#~ msgstr "_Taglia"
+
+#~ msgid "Customize"
+#~ msgstr "Personalizza"
+
+#~ msgid "Customize toolbars"
+#~ msgstr "Personalizza·le·barre degli strumenti"
+
+#~ msgid "Dump XML"
+#~ msgstr "Scarica XML"
+
+#~ msgid "Font selector"
+#~ msgstr "Selettore font"
+
+#~ msgid "Icon and _Text"
+#~ msgstr "Icone e _Testo"
+
+#~ msgid "New"
+#~ msgstr "Nuovo"
+
+#~ msgid "Object property editor"
+#~ msgstr "Editor delle proprietà per l'oggetto"
+
+#~ msgid "Only show icons in the main toolbar"
+#~ msgstr "Visualizza solo le icone nella barra degli strumenti principale"
+
+#~ msgid "Pr_eferences..."
+#~ msgstr "Pr_eferenze..."
+
+#~ msgid "Properties"
+#~ msgstr "Proprietà"
+
+#~ msgid "Quit"
+#~ msgstr "Esci"
+
+#~ msgid "Save"
+#~ msgstr "Salva"
+
+#~ msgid "Save As"
+#~ msgstr "Salva con nome"
+
+#~ msgid "Select _All"
+#~ msgstr "Seleziona tutto"
+
+#~ msgid "Show _Tooltips"
+#~ msgstr "Mostra suggerimenti"
+
+#~ msgid "Show both icons and texts in the main toolbar"
+#~ msgstr "Mostra icone e testo nella barra degli strumenti principale"
+
+#~ msgid "Show tooltips in the drawing toolbar"
+#~ msgstr "Mostra suggerimenti nella barra degli strumenti di disegno"
+
+#~ msgid "Show tooltips in the main toolbar"
+#~ msgstr "Mostra suggerimenti nella barra degli strumenti principale"
+
+#~ msgid "Show tooltips in the property toolbar"
+#~ msgstr "Mostra suggerimenti nella barra degli strumenti principale"
+
+#~ msgid "Template Designer"
+#~ msgstr "Progettazione modelli"
+
+#~ msgid "U_n-select All"
+#~ msgstr "Deseleziona tutto"
+
+#~ msgid "Undo the last action"
+#~ msgstr "Annulla l'ultima azione"
+
+#~ msgid "_About..."
+#~ msgstr "Informazioni..."
+
+#~ msgid "_Bottoms"
+#~ msgstr "In basso"
+
+#~ msgid "_Contents"
+#~ msgstr "_Contenuti"
+
+#~ msgid "_Copy"
+#~ msgstr "_Copia"
+
+#~ msgid "_Create Object"
+#~ msgstr "_Crea Oggetto"
+
+#~ msgid "_Debug"
+#~ msgstr "_Debug"
+
+#~ msgid "_Desktop Default"
+#~ msgstr "Predefinito del desktop"
+
+#~ msgid "_Drawing Toolbar"
+#~ msgstr "Barra degli strumenti di disegno"
+
+#~ msgid "_Icon"
+#~ msgstr "_Icone"
+
+#~ msgid "_Main Toolbar"
+#~ msgstr "Barra degli stru_menti principale"
+
+#~ msgid "_Merge Properties..."
+#~ msgstr "Proprietà di unione..."
+
+#~ msgid "_Paste"
+#~ msgstr "Incolla"
+
+#~ msgid "_Property Toolbar"
+#~ msgstr "Barra degli strumenti _proprietà"
+
+#~ msgid "*"
+#~ msgstr "*"
+
+#~ msgid "<span weight=\"bold\">Default page size</span>"
+#~ msgstr "<span weight=\"bold\">Dimensione pagina predefinita</span>"
+
+#~ msgid "<span weight=\"bold\">Fill</span>"
+#~ msgstr "<span weight=\"bold\">Riempimento</span>"
+
+#~ msgid "<span weight=\"bold\">Line</span>"
+#~ msgstr "<span weight=\"bold\">Linea</span>"
+
+#~ msgid "<span weight=\"bold\">Text</span>"
+#~ msgstr "<span weight=\"bold\">Testo</span>"
+
+#~ msgid "<span weight=\"bold\">Units</span>"
+#~ msgstr "<span weight=\"bold\">Unità</span>"
+
+#~ msgid "Load image"
+#~ msgstr "Carica immagine"
 
+#~ msgid "Agipa 119488: Business Cards"
+#~ msgstr "Agipa 119488: biglietti da visita"
index afd6ab2372f0121b36e91726f8b9fed63b43d461..bc916d80d3e00e300cf99504ddb24e69452aad9f 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
 # glabels ja.po.
-# Copyright (C) 2001-2005,2007-2010 Free Software Foundation, Inc.
+# Copyright (C) 2001-2005,2007-2011 glabel's COPYRIGHT HOLDER
 # Takeshi Aihana <takeshi.aihana@gmail.com>, 2001-2005,2007-2010.
+# Takayoshi OKANO <kano@na.rim.or.jp>, 2011.
+# Takayuki KUSANO <AE5T-KSN@asahi-net.or.jp>, 2011.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: glabels glabels_2_2\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-06 00:33+0900\n"
-"PO-Revision-Date: 2010-03-06 00:31+0900\n"
-"Last-Translator: Takeshi AIHANA <takeshi.aihana@gmail.com>\n"
+"Project-Id-Version: glabels master\n"
+"Report-Msgid-Bugs-To: http://sourceforge.net/tracker/?group_id=46122&ati\n"
+"POT-Creation-Date: 2011-04-22 16:29+0000\n"
+"PO-Revision-Date: 2011-04-14 23:46+0900\n"
+"Last-Translator: Takayuki KUSANO <AE5T-KSN@asahi-net.or.jp>\n"
 "Language-Team: Japanese <gnome-translation@gnome.gr.jp>\n"
+"Language: ja\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../src/glabels.c:75 ../src/glabels-batch.c:70
-msgid "[FILE...]"
-msgstr "[FILE...]"
+#: ../src/bc-backends.c:81
+msgid "Built-in"
+msgstr ""
 
-#: ../src/glabels.c:91
-msgid "- gLabels label designer"
-msgstr "- gLabels ラベル・デザイナ"
+#: ../src/bc-backends.c:101
+msgid "POSTNET (any)"
+msgstr "POSTNET (何でも)"
 
-#: ../src/glabels-batch.c:54
-msgid "set output filename (default=\"output.pdf\")"
-msgstr "出力するファイル名を指定する (デフォルト = \"output.pdf\")"
+#: ../src/bc-backends.c:104
+msgid "POSTNET-5 (ZIP only)"
+msgstr "POSTNET-5 (ZIP のみ)"
 
-#: ../src/glabels-batch.c:54 ../src/glabels-batch.c:68
-msgid "filename"
-msgstr "ファイル名"
+#: ../src/bc-backends.c:107
+msgid "POSTNET-9 (ZIP+4)"
+msgstr "POSTNET-9 (ZIP+4)"
 
-#: ../src/glabels-batch.c:56
-msgid "number of sheets (default=1)"
-msgstr "用紙の数 (デフォルト = 1)"
+#: ../src/bc-backends.c:110
+msgid "POSTNET-11 (DPBC)"
+msgstr "POSTNET-11 (DPBC)"
 
-#: ../src/glabels-batch.c:56
-msgid "sheets"
-msgstr "用紙の数"
+#: ../src/bc-backends.c:113
+msgid "CEPNET"
+msgstr "CEPNET"
 
-#: ../src/glabels-batch.c:58
-msgid "number of copies (default=1)"
-msgstr "コピーの数 (デフォルト = 1)"
+#: ../src/bc-backends.c:116
+msgid "One Code"
+msgstr ""
 
-#: ../src/glabels-batch.c:58
-msgid "copies"
-msgstr "コピーの数"
+#: ../src/bc-backends.c:119 ../src/bc-backends.c:175 ../src/bc-backends.c:248
+msgid "Code 39"
+msgstr "Code 39"
 
-#: ../src/glabels-batch.c:60
-msgid "first label on first sheet (default=1)"
-msgstr "最初のシートで最初のラベル (デフォルト = 1)"
+#: ../src/bc-backends.c:122 ../src/bc-backends.c:251
+#, fuzzy
+msgid "Code 39 Extended"
+msgstr "Code 39"
 
-#: ../src/glabels-batch.c:60
-msgid "first"
-msgstr "first"
+#: ../src/bc-backends.c:127
+msgid "EAN (any)"
+msgstr "EAN (何でも)"
 
-#: ../src/glabels-batch.c:62 ../data/glade/print-custom-widget.glade.h:6
-msgid "print outlines (to test printer alignment)"
-msgstr "アウトラインを印刷する (印刷時の配置を確認するため)"
+#: ../src/bc-backends.c:130
+msgid "EAN-8"
+msgstr "EAN-8"
 
-#: ../src/glabels-batch.c:64 ../data/glade/print-custom-widget.glade.h:5
-msgid "print in reverse (i.e. a mirror image)"
-msgstr "(画像をミラーするように) 反転して印刷する"
+#: ../src/bc-backends.c:133
+msgid "EAN-8 +2"
+msgstr "EAN-8 +2"
 
-#: ../src/glabels-batch.c:66 ../data/glade/print-custom-widget.glade.h:4
-msgid "print crop marks"
-msgstr "端のマークを揃えて印刷する"
+#: ../src/bc-backends.c:136
+msgid "EAN-8 +5"
+msgstr "EAN-8 +5"
 
-#: ../src/glabels-batch.c:68
-msgid "input file for merging"
-msgstr "ファイルをマージする"
+#: ../src/bc-backends.c:139
+msgid "EAN-13"
+msgstr "EAN-13"
 
-#: ../src/glabels-batch.c:96
-msgid "- batch process gLabels label files"
-msgstr "- gLabels のラベル・ファイルをバッチ処理する"
+#: ../src/bc-backends.c:142
+msgid "EAN-13 +2"
+msgstr "EAN-13 +2"
 
-#: ../src/glabels-batch.c:142
-#, c-format
-msgid "cannot perform document merge with glabels file %s\n"
-msgstr "gLabels ファイル %s とドキュメントを結合できません\n"
+#: ../src/bc-backends.c:145
+msgid "EAN-13 +5"
+msgstr "EAN-13 +5"
 
-#: ../src/glabels-batch.c:164
-#, c-format
-msgid "cannot open glabels file %s\n"
-msgstr "gLabels のファイル %s を開けません\n"
+#: ../src/bc-backends.c:148
+msgid "UPC (UPC-A or UPC-E)"
+msgstr "UPC (UPC-A または UPC-E)"
 
-#: ../src/window.c:259
-msgid "(none) - gLabels"
-msgstr "(なし) - gLabels"
+#: ../src/bc-backends.c:151 ../src/bc-backends.c:395
+msgid "UPC-A"
+msgstr "UPC-A"
 
-#: ../src/window.c:432
-msgid "(modified)"
-msgstr "(変更済み)"
+#: ../src/bc-backends.c:154
+msgid "UPC-A +2"
+msgstr "UPC-A +2"
 
-#: ../src/stock.c:72
-msgid "_Select Mode"
-msgstr "選択モード(_S)"
+#: ../src/bc-backends.c:157
+msgid "UPC-A +5"
+msgstr "UPC-A +5"
 
-#: ../src/stock.c:73
-msgid "_Text"
-msgstr "文字(_T)"
+#: ../src/bc-backends.c:160 ../src/bc-backends.c:398
+msgid "UPC-E"
+msgstr "UPC-E"
 
-#: ../src/stock.c:74
-msgid "_Line"
-msgstr "直線(_L)"
+#: ../src/bc-backends.c:163
+msgid "UPC-E +2"
+msgstr "UPC-E +2"
 
-#: ../src/stock.c:75
-msgid "_Box"
-msgstr "矩形(_B)"
+#: ../src/bc-backends.c:166
+msgid "UPC-E +5"
+msgstr "UPC-E +5"
 
-#: ../src/stock.c:76
-msgid "_Ellipse"
-msgstr "楕円(_E)"
+#: ../src/bc-backends.c:169 ../src/bc-backends.c:332
+msgid "ISBN"
+msgstr "ISBN"
 
-#: ../src/stock.c:77
-msgid "_Image"
-msgstr "画像(_I)"
+#: ../src/bc-backends.c:172
+msgid "ISBN +5"
+msgstr "ISBN +5"
 
-#: ../src/stock.c:78
-msgid "Bar_code"
-msgstr "バーコード(_C)"
+#: ../src/bc-backends.c:178 ../src/bc-backends.c:260
+msgid "Code 128"
+msgstr "Code 128"
 
-#: ../src/stock.c:79
-msgid "_Merge Properties"
-msgstr "結合プロパティ(_M)"
+#: ../src/bc-backends.c:181
+msgid "Code 128C"
+msgstr "Code 128C"
 
-#: ../src/stock.c:80
-msgid "Object _Properties"
-msgstr "オブジェクトのプロパティ(_P)"
+#: ../src/bc-backends.c:184
+msgid "Code 128B"
+msgstr "Code 128B"
 
-#: ../src/stock.c:81
-msgid "Bring to _Front"
-msgstr "前に持ってくる(_F)"
+#: ../src/bc-backends.c:187 ../src/bc-backends.c:329
+msgid "Interleaved 2 of 5"
+msgstr "綴じ込み 2/5"
 
-#: ../src/stock.c:82
-msgid "Send to _Back"
-msgstr "後ろにまわす(_B)"
+#: ../src/bc-backends.c:190 ../src/bc-backends.c:224
+msgid "Codabar"
+msgstr "Codabar"
 
-#: ../src/stock.c:83
-msgid "Rotate _Left"
-msgstr "左に回転(_L)"
+#: ../src/bc-backends.c:193
+msgid "MSI"
+msgstr "MSI"
 
-#: ../src/stock.c:84
-msgid "Rotate _Right"
-msgstr "右に回転(_R)"
+#: ../src/bc-backends.c:196
+msgid "Plessey"
+msgstr "Plessey"
 
-#: ../src/stock.c:85
-msgid "Flip _Horizontally"
-msgstr "水平方向にフリップ(_H)"
+#: ../src/bc-backends.c:199 ../src/bc-backends.c:257
+#, fuzzy
+msgid "Code 93"
+msgstr "Code 39"
 
-#: ../src/stock.c:86
-msgid "Flip _Vertically"
-msgstr "垂直方向にフリップ(_V)"
+#: ../src/bc-backends.c:206
+msgid "Australia Post Standard"
+msgstr ""
 
-#: ../src/stock.c:87
-msgid "_Lefts"
-msgstr "左端(_L)"
+#: ../src/bc-backends.c:209
+msgid "Australia Post Reply Paid"
+msgstr ""
 
-#: ../src/stock.c:88
-msgid "_Rights"
-msgstr "右端(_R)"
+#: ../src/bc-backends.c:212
+msgid "Australia Post Route Code"
+msgstr ""
 
-#: ../src/stock.c:89
-msgid "_Centers"
-msgstr "中央(_C)"
+#: ../src/bc-backends.c:215
+msgid "Australia Post Redirect"
+msgstr ""
 
-#: ../src/stock.c:90
-msgid "_Tops"
-msgstr "上端(_T)"
+#: ../src/bc-backends.c:218
+msgid "Aztec Code"
+msgstr ""
 
-#: ../src/stock.c:91
-msgid "Bottoms"
-msgstr "下部"
+#: ../src/bc-backends.c:221
+msgid "Aztec Rune"
+msgstr ""
 
-#: ../src/stock.c:92
-msgid "Centers"
-msgstr "中央"
+#: ../src/bc-backends.c:227
+#, fuzzy
+msgid "Code One"
+msgstr "Code 39"
 
-#: ../src/stock.c:93 ../src/stock.c:94
-msgid "Label Ce_nter"
-msgstr "ラベルの中心(_N)"
+#: ../src/bc-backends.c:230
+#, fuzzy
+msgid "Code 11"
+msgstr "Code 128"
 
-#: ../src/stock.c:95 ../data/glade/property-bar.glade.h:3
-msgid "Fill color"
-msgstr "色で塗りつぶします"
+#: ../src/bc-backends.c:233
+#, fuzzy
+msgid "Code 16K"
+msgstr "Code 128"
 
-#: ../src/stock.c:96 ../data/glade/property-bar.glade.h:8
-msgid "Line color"
-msgstr "線の色を選択します"
+#: ../src/bc-backends.c:236
+msgid "Code 2 of 5 Matrix"
+msgstr ""
 
-#: ../src/stock.c:97 ../src/stock.c:99
-msgid "Linked"
-msgstr "結合済"
+#: ../src/bc-backends.c:239
+msgid "Code 2 of 5 IATA"
+msgstr ""
 
-#: ../src/stock.c:98 ../src/stock.c:100
-msgid "Not Linked"
-msgstr "結合なし"
+#: ../src/bc-backends.c:242
+msgid "Code 2 of 5 Data Logic"
+msgstr ""
 
-#. Menu entries.
-#: ../src/ui.c:93
-msgid "_File"
-msgstr "ファイル(_F)"
+#: ../src/bc-backends.c:245
+msgid "Code 32 (Italian Pharmacode)"
+msgstr ""
 
-#: ../src/ui.c:94
-msgid "Open Recent _Files"
-msgstr "最近開いたファイル(_F)"
+#: ../src/bc-backends.c:254
+#, fuzzy
+msgid "Code 49"
+msgstr "Code 39"
 
-#: ../src/ui.c:95
-msgid "_Edit"
-msgstr "編集(_E)"
+#: ../src/bc-backends.c:263
+msgid "Code 128 (Mode C supression)"
+msgstr ""
 
-#: ../src/ui.c:96
-msgid "_View"
-msgstr "表示(_V)"
+#: ../src/bc-backends.c:266
+msgid "DAFT Code"
+msgstr ""
 
-#: ../src/ui.c:97
-msgid "Customize Main Toolbar"
-msgstr "メイン・ツールバー"
+#: ../src/bc-backends.c:269
+#, fuzzy
+msgid "Data Matrix"
+msgstr "IEC16022 (DataMatrix)"
 
-#: ../src/ui.c:98
-msgid "Customize Drawing Toolbar"
-msgstr "描画ツールバー"
+#: ../src/bc-backends.c:272
+msgid "Deutsche Post Leitcode"
+msgstr ""
 
-#: ../src/ui.c:99
-msgid "Customize Properties Toolbar"
-msgstr "プロパティ・ツールバー"
+#: ../src/bc-backends.c:275
+msgid "Deutsche Post Identcode"
+msgstr ""
 
-#: ../src/ui.c:100
-msgid "_Objects"
-msgstr "オブジェクト(_O)"
+#: ../src/bc-backends.c:278
+msgid "Dutch Post KIX Code"
+msgstr ""
 
-#: ../src/ui.c:101
-msgid "_Create"
-msgstr "オブジェクトの生成(_C)"
+#: ../src/bc-backends.c:281
+#, fuzzy
+msgid "EAN"
+msgstr "EAN-8"
 
-#: ../src/ui.c:102
-msgid "_Order"
-msgstr "整列(_O)"
+#: ../src/bc-backends.c:284
+msgid "Grid Matrix"
+msgstr ""
 
-#: ../src/ui.c:103
-msgid "_Rotate/Flip"
-msgstr "回転/フリップ(_R)"
+#: ../src/bc-backends.c:287
+msgid "GS1-128"
+msgstr ""
 
-#: ../src/ui.c:104
-msgid "Align _Horizontal"
-msgstr "水平方向に配置(_H)"
+#: ../src/bc-backends.c:290
+msgid "GS1 DataBar-14"
+msgstr ""
 
-#: ../src/ui.c:105
-msgid "Align _Vertical"
-msgstr "垂直方向に配置(_V)"
+#: ../src/bc-backends.c:299
+msgid "GS1 DataBar-14 Stacked"
+msgstr ""
 
-#: ../src/ui.c:106
-msgid "_Help"
-msgstr "ヘルプ(_H)"
+#: ../src/bc-backends.c:302
+msgid "GS1 DataBar-14 Stacked Omni."
+msgstr ""
 
-#. Popup entries.
-#: ../src/ui.c:109 ../src/ui.c:110
-msgid "Context Menu"
-msgstr "コンテキスト・メニュー"
+#: ../src/bc-backends.c:305
+msgid "GS1 DataBar Extended Stacked"
+msgstr ""
 
-#: ../src/ui.c:115
-msgid "_New"
-msgstr "新規(_N)"
+#: ../src/bc-backends.c:308
+#, fuzzy
+msgid "HIBC Code 128"
+msgstr "Code 128"
 
-#: ../src/ui.c:117
-msgid "Create a new file"
-msgstr "新しいファイルを作成します"
+#: ../src/bc-backends.c:311
+#, fuzzy
+msgid "HIBC Code 39"
+msgstr "Code 39"
 
-#: ../src/ui.c:122
-msgid "_Open..."
-msgstr "開く(_O)..."
+#: ../src/bc-backends.c:314
+#, fuzzy
+msgid "HIBC Data Matrix"
+msgstr "IEC16022 (DataMatrix)"
 
-#: ../src/ui.c:124
-msgid "Open a file"
-msgstr "ファイルを開きます"
+#: ../src/bc-backends.c:317
+msgid "HIBC QR Code"
+msgstr ""
 
-#: ../src/ui.c:129
-msgid "_Save"
-msgstr "保存(_S)"
+#: ../src/bc-backends.c:320
+msgid "HIBC PDF417"
+msgstr ""
 
-#: ../src/ui.c:131
-msgid "Save current file"
-msgstr "このファイルを保存します"
+#: ../src/bc-backends.c:323
+msgid "HIBC Micro PDF417"
+msgstr ""
 
-#: ../src/ui.c:136
-msgid "Save _As..."
-msgstr "別名で保存(_A)..."
+#: ../src/bc-backends.c:326
+msgid "HIBC Aztec Code"
+msgstr ""
 
-#: ../src/ui.c:138
-msgid "Save the current file to a different name"
-msgstr "このファイルに別の名前を付けて保存します"
+#: ../src/bc-backends.c:335
+msgid "ITF-14"
+msgstr ""
 
-#: ../src/ui.c:143
-msgid "_Print..."
-msgstr "印刷(_P)..."
+#: ../src/bc-backends.c:338
+msgid "Japanese Postal"
+msgstr ""
 
-#: ../src/ui.c:145
-msgid "Print the current file"
-msgstr "このファイルを印刷します"
+#: ../src/bc-backends.c:341
+msgid "Korean Postal"
+msgstr ""
 
-#: ../src/ui.c:150
-msgid "Properties..."
-msgstr "プロパティ..."
+#: ../src/bc-backends.c:344
+msgid "LOGMARS"
+msgstr ""
 
-#: ../src/ui.c:152
-msgid "Modify document properties"
-msgstr "ドキュメントのプロパティを修正します"
+#: ../src/bc-backends.c:347
+#, fuzzy
+msgid "Maxicode"
+msgstr "バーコード"
 
-#: ../src/ui.c:157
-msgid "Template _Designer..."
-msgstr "テンプレート・デザイナ(_D)..."
+#: ../src/bc-backends.c:350
+msgid "Micro PDF417"
+msgstr ""
 
-#: ../src/ui.c:159
-msgid "Create a custom template"
-msgstr "独自のテンプレートを作成します"
+#: ../src/bc-backends.c:353
+msgid "Micro QR Code"
+msgstr ""
 
-#: ../src/ui.c:164
-msgid "_Close"
-msgstr "閉じる(_C)"
+#: ../src/bc-backends.c:356
+#, fuzzy
+msgid "MSI Plessey"
+msgstr "Plessey"
 
-#: ../src/ui.c:166
-msgid "Close the current file"
-msgstr "このファイルを閉じます"
+#: ../src/bc-backends.c:359
+msgid "NVE-18"
+msgstr ""
 
-#: ../src/ui.c:171
-msgid "_Quit"
-msgstr "終了(_Q)"
+#: ../src/bc-backends.c:362
+msgid "PDF417"
+msgstr ""
 
-#: ../src/ui.c:173
-msgid "Quit the program"
-msgstr "gLabels を終了します"
+#: ../src/bc-backends.c:365
+msgid "PDF417 Truncated"
+msgstr ""
 
-#: ../src/ui.c:180
-msgid "Cut"
-msgstr "切り取り"
+#: ../src/bc-backends.c:368
+#, fuzzy
+msgid "PLANET"
+msgstr "CEPNET"
 
-#: ../src/ui.c:182
-msgid "Cut the selection"
-msgstr "選択範囲を切り取ります"
+#: ../src/bc-backends.c:371
+#, fuzzy
+msgid "PostNet"
+msgstr "貼り付け"
 
-#: ../src/ui.c:187
-msgid "Copy"
-msgstr "コピー"
+#: ../src/bc-backends.c:374
+#, fuzzy
+msgid "Pharmacode"
+msgstr "バーコード"
 
-#: ../src/ui.c:189
-msgid "Copy the selection"
-msgstr "選択範囲をコピーします"
+#: ../src/bc-backends.c:377
+msgid "Pharmacode 2-track"
+msgstr ""
 
-#: ../src/ui.c:194
-msgid "Paste"
-msgstr "貼り付け"
+#: ../src/bc-backends.c:380
+msgid "Pharmazentral Nummer (PZN)"
+msgstr ""
 
-#: ../src/ui.c:196
-msgid "Paste the clipboard"
-msgstr "クリップボードの内容を貼り付けます"
+#: ../src/bc-backends.c:383
+msgid "QR Code"
+msgstr ""
 
-#: ../src/ui.c:201
-msgid "Delete"
+#: ../src/bc-backends.c:386
+msgid "Royal Mail 4-State"
+msgstr ""
+
+#: ../src/bc-backends.c:389
+#, fuzzy
+msgid "Telepen"
 msgstr "削除"
 
-#: ../src/ui.c:203
-msgid "Delete the selected objects"
-msgstr "選択したオブジェクトを削除します"
+#: ../src/bc-backends.c:392
+msgid "Telepen Numeric"
+msgstr ""
 
-#: ../src/ui.c:208
-msgid "Select All"
-msgstr "全て選択"
+#: ../src/bc-backends.c:401
+msgid "USPS One Code"
+msgstr ""
 
-#: ../src/ui.c:210
-msgid "Select all objects"
-msgstr "全てのオブジェクトを選択します"
+#: ../src/bc-backends.c:404
+#, fuzzy
+msgid "UK Plessey"
+msgstr "Plessey"
 
-#: ../src/ui.c:215
-msgid "Un-select All"
-msgstr "全て選択解除"
+#: ../src/bc-backends.c:411
+msgid "IEC16022 (DataMatrix)"
+msgstr "IEC16022 (DataMatrix)"
 
-#: ../src/ui.c:217
-msgid "Remove all selections"
-msgstr "選択範囲を解除します"
+#: ../src/bc-backends.c:418
+msgid "IEC18004 (QRCode)"
+msgstr ""
 
-#: ../src/ui.c:222
-msgid "Preferences"
-msgstr "gLabels の設定"
+#: ../src/color-combo-button.c:198 ../src/color-combo.c:178
+#, fuzzy
+msgid "Default Color"
+msgstr "デフォルト"
 
-#: ../src/ui.c:224
-msgid "Configure the application"
-msgstr "gLabels の設定を変更します"
+#: ../src/color-combo-menu.c:83
+#, fuzzy
+msgid "Dark Red"
+msgstr "暗い赤"
 
-#: ../src/ui.c:231
-msgid "Zoom in"
-msgstr "拡大"
+#: ../src/color-combo-menu.c:84
+msgid "Brown"
+msgstr ""
 
-#: ../src/ui.c:233
-msgid "Increase magnification"
-msgstr "拡大率を上げます"
+#: ../src/color-combo-menu.c:85
+msgid "Dark Goldenrod"
+msgstr ""
 
-#: ../src/ui.c:238
-msgid "Zoom out"
-msgstr "縮小"
+#: ../src/color-combo-menu.c:86
+#, fuzzy
+msgid "Dark Green"
+msgstr "暗い緑"
 
-#: ../src/ui.c:240
-msgid "Decrease magnification"
-msgstr "拡大率を下げます"
+#: ../src/color-combo-menu.c:87
+msgid "Dark Cyan"
+msgstr ""
 
-#: ../src/ui.c:245
-msgid "Zoom 1 to 1"
-msgstr "拡大率 1:1"
+#: ../src/color-combo-menu.c:88
+msgid "Navy Blue"
+msgstr ""
 
-#: ../src/ui.c:247
-msgid "Restore scale to 100%"
-msgstr "拡大率を 100% に戻します"
+#: ../src/color-combo-menu.c:89
+#, fuzzy
+msgid "Dark Violet"
+msgstr "暗い青"
 
-#: ../src/ui.c:252
-msgid "Zoom to fit"
-msgstr "ウィンドウにあわせる"
+#: ../src/color-combo-menu.c:91
+#, fuzzy
+msgid "Red"
+msgstr "赤"
 
-#: ../src/ui.c:254
-msgid "Set scale to fit window"
-msgstr "ウィンドウの大きさに合わせます"
+#: ../src/color-combo-menu.c:92
+#, fuzzy
+msgid "Orange"
+msgstr "橙"
 
-#: ../src/ui.c:261
-msgid "Select Mode"
-msgstr "選択モード"
+#: ../src/color-combo-menu.c:93
+msgid "Dark Yellow"
+msgstr ""
 
-#: ../src/ui.c:263
-msgid "Select, move and modify objects"
-msgstr "オブジェクトの選択や移動、編集を行います"
+#: ../src/color-combo-menu.c:94
+#, fuzzy
+msgid "Medium green"
+msgstr "くすんだ緑"
 
-#: ../src/ui.c:268 ../src/view-text.c:494
-#: ../data/glade/object-editor.glade.h:32
-msgid "Text"
-msgstr "文字"
+#: ../src/color-combo-menu.c:95
+msgid "Turquoise"
+msgstr ""
 
-#: ../src/ui.c:270
-msgid "Create text object"
-msgstr "文字オブジェクトを作成します"
+#: ../src/color-combo-menu.c:96
+#, fuzzy
+msgid "Blue"
+msgstr "青"
 
-#: ../src/ui.c:275
-msgid "Box"
-msgstr "矩形"
+#: ../src/color-combo-menu.c:97
+#, fuzzy
+msgid "Purple"
+msgstr "紫"
 
-#: ../src/ui.c:277
-msgid "Create box/rectangle object"
-msgstr "四角/三角のオブジェクトを作成します"
+#: ../src/color-combo-menu.c:99
+msgid "Salmon"
+msgstr ""
 
-#: ../src/ui.c:282 ../data/glade/object-editor.glade.h:20
-msgid "Line"
-msgstr "直線"
+#: ../src/color-combo-menu.c:100
+#, fuzzy
+msgid "Gold"
+msgstr "金"
 
-#: ../src/ui.c:284
-msgid "Create line object"
-msgstr "直線オブジェクトを作成します"
+#: ../src/color-combo-menu.c:101
+#, fuzzy
+msgid "Yellow"
+msgstr "黄"
 
-#: ../src/ui.c:289
-msgid "Ellipse"
-msgstr "楕円"
+#: ../src/color-combo-menu.c:102
+#, fuzzy
+msgid "Green"
+msgstr "緑"
 
-#: ../src/ui.c:291
-msgid "Create ellipse/circle object"
-msgstr "楕円/円オブジェクトを作成します"
+#: ../src/color-combo-menu.c:103
+#, fuzzy
+msgid "Cyan"
+msgstr "シアン"
 
-#: ../src/ui.c:296 ../data/glade/object-editor.glade.h:16
-msgid "Image"
-msgstr "画像"
+#: ../src/color-combo-menu.c:104
+#, fuzzy
+msgid "SkyBlue"
+msgstr "スカイブルー"
 
-#: ../src/ui.c:298
-msgid "Create image object"
-msgstr "画像オブジェクトを作成します"
+#: ../src/color-combo-menu.c:105
+msgid "Violet"
+msgstr ""
 
-#: ../src/ui.c:303
-msgid "Barcode"
-msgstr "バーコード"
+#: ../src/color-combo-menu.c:107
+#, fuzzy
+msgid "Pink"
+msgstr "ピンク"
+
+#: ../src/color-combo-menu.c:108
+msgid "Khaki"
+msgstr ""
+
+#: ../src/color-combo-menu.c:109
+#, fuzzy
+msgid "Light Yellow"
+msgstr "淡い黄"
+
+#: ../src/color-combo-menu.c:110
+#, fuzzy
+msgid "Light Green"
+msgstr "淡い緑"
+
+#: ../src/color-combo-menu.c:111
+#, fuzzy
+msgid "Light Cyan"
+msgstr "淡いシアン"
+
+#: ../src/color-combo-menu.c:112
+msgid "Slate Gray"
+msgstr ""
+
+#: ../src/color-combo-menu.c:113
+#, fuzzy
+msgid "Thistle"
+msgstr "白"
+
+#: ../src/color-combo-menu.c:115
+#, fuzzy
+msgid "White"
+msgstr "白"
+
+#: ../src/color-combo-menu.c:117
+#, no-c-format
+msgid "10% Gray"
+msgstr ""
+
+#: ../src/color-combo-menu.c:119
+#, no-c-format
+msgid "25% Gray"
+msgstr ""
+
+#: ../src/color-combo-menu.c:121
+#, no-c-format
+msgid "40% Gray"
+msgstr ""
+
+#: ../src/color-combo-menu.c:123
+#, no-c-format
+msgid "50% Gray"
+msgstr ""
+
+#: ../src/color-combo-menu.c:125
+#, no-c-format
+msgid "60% Gray"
+msgstr ""
+
+#: ../src/color-combo-menu.c:126
+#, fuzzy
+msgid "Black"
+msgstr "黒"
+
+#: ../src/color-combo-menu.c:254 ../src/color-combo-menu.c:373
+#, fuzzy
+msgid "Custom Color"
+msgstr "カスタム色:"
+
+#: ../src/color-combo-menu.c:319
+#, fuzzy, c-format
+msgid "Custom Color #%u"
+msgstr "カスタム色:"
+
+#: ../src/critical-error-handler.c:70
+msgid "gLabels Fatal Error!"
+msgstr "gLabels で致命的なエラーが発生しました!"
+
+#: ../src/file.c:84
+msgid "New Label or Card"
+msgstr "新規ラベルまたはカード"
+
+#: ../src/file.c:175 ../src/label.c:601 ../src/label.c:645
+msgid "Label properties"
+msgstr "ラベルのプロパティ"
+
+#: ../src/file.c:267 ../src/file.c:557
+msgid "All files"
+msgstr "すべてのファイル"
+
+#: ../src/file.c:272 ../src/file.c:562
+msgid "gLabels documents"
+msgstr "gLabels のドキュメント"
+
+#: ../src/file.c:319 ../src/file.c:620
+msgid "Empty file name selection"
+msgstr "ファイル名の入力欄が空です"
+
+#: ../src/file.c:322 ../src/file.c:338
+msgid "Please select a file or supply a valid file name"
+msgstr "既存のファイルを選択するか、または正しいファイル名を指定してください。"
+
+#: ../src/file.c:335
+msgid "File does not exist"
+msgstr "ファイルがありません。"
+
+#: ../src/file.c:410
+#, c-format
+msgid "Could not open file \"%s\""
+msgstr "ファイル \"%s\" が開けませんでした"
+
+#: ../src/file.c:413
+msgid "Not a supported file format"
+msgstr "サポートしていないファイル形式です。"
+
+#: ../src/file.c:491 ../src/file.c:670
+#, c-format
+msgid "Could not save file \"%s\""
+msgstr "ファイル \"%s\" を保存できませんでした"
+
+#: ../src/file.c:495 ../src/file.c:674
+msgid "Error encountered during save.  The file is still not saved."
+msgstr "データ保存中にエラーが発生しました。データはまだ保存されていません。"
+
+#: ../src/file.c:535
+#, c-format
+msgid "Save \"%s\" as"
+msgstr "\"%s\" に名前を付けて保存"
+
+#: ../src/file.c:623
+msgid "Please supply a valid file name"
+msgstr "正しいファイル名を指定してください"
+
+#: ../src/file.c:644
+#, c-format
+msgid "Overwrite file \"%s\"?"
+msgstr "ファイル \"%s\" に上書きしますか?"
+
+#: ../src/file.c:648
+msgid "File already exists."
+msgstr "ファイルが既に存在します。"
+
+#: ../src/file.c:744
+#, c-format
+msgid "Save changes to document \"%s\" before closing?"
+msgstr "終了する前にドキュメント \"%s\" に対する変更点を保存しますか?"
+
+#: ../src/file.c:748
+msgid "Your changes will be lost if you don't save them."
+msgstr "保存しないと変更したデータを失うことになります。"
+
+#: ../src/file.c:751
+msgid "Close without saving"
+msgstr "保存せずに閉じる"
+
+#: ../src/font-combo-menu.c:137
+#, fuzzy
+msgid "Recent fonts"
+msgstr "最近開いたテンプレート"
+
+#: ../src/font-combo-menu.c:152
+msgid "Proportional fonts"
+msgstr ""
+
+#: ../src/font-combo-menu.c:160
+msgid "Fixed-width fonts"
+msgstr ""
+
+#: ../src/font-combo-menu.c:168
+#, fuzzy
+msgid "All fonts"
+msgstr "すべてのファイル"
+
+#.
+#. * Allow text samples to be localized.
+#. *
+#. * FIXME: if we could extract enough meta information from the fonts
+#. * themselves, perhaps rather than setting these globally for the
+#. * current locale, they could be unique to each font family.
+#.
+#: ../src/font-combo-menu-item.c:132
+msgctxt "Short sample text"
+msgid "Aa"
+msgstr ""
+
+#: ../src/font-combo-menu-item.c:134
+msgctxt "Lower case sample text"
+msgid "abcdefghijklmnopqrstuvwxyz"
+msgstr ""
+
+#: ../src/font-combo-menu-item.c:136
+msgctxt "Upper case sample text"
+msgid "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr ""
+
+#: ../src/font-combo-menu-item.c:138
+msgctxt "Numbers and special characters sample text"
+msgid "0123456789 .:,;(*!?)"
+msgstr ""
+
+#: ../src/font-combo-menu-item.c:157
+msgid "Sample text"
+msgstr ""
+
+#: ../src/glabels-batch.c:53
+msgid "set output filename (default=\"output.pdf\")"
+msgstr "出力するファイル名を指定する (デフォルト = \"output.pdf\")"
+
+#: ../src/glabels-batch.c:53 ../src/glabels-batch.c:67
+msgid "filename"
+msgstr "ファイル名"
+
+#: ../src/glabels-batch.c:55
+msgid "number of sheets (default=1)"
+msgstr "用紙の数 (デフォルト = 1)"
+
+#: ../src/glabels-batch.c:55
+msgid "sheets"
+msgstr "用紙の数"
+
+#: ../src/glabels-batch.c:57
+msgid "number of copies (default=1)"
+msgstr "コピーの数 (デフォルト = 1)"
+
+#: ../src/glabels-batch.c:57
+msgid "copies"
+msgstr "コピーの数"
+
+#: ../src/glabels-batch.c:59
+msgid "first label on first sheet (default=1)"
+msgstr "最初のシートで最初のラベル (デフォルト = 1)"
+
+#: ../src/glabels-batch.c:59
+msgid "first"
+msgstr "first"
+
+#: ../src/glabels-batch.c:61 ../data/ui/print-op-dialog-custom-widget.ui.h:13
+msgid "print outlines (to test printer alignment)"
+msgstr "アウトラインを印刷する (印刷時の配置を確認するため)"
+
+#: ../src/glabels-batch.c:63 ../data/ui/print-op-dialog-custom-widget.ui.h:12
+msgid "print in reverse (i.e. a mirror image)"
+msgstr "(画像をミラーするように) 反転して印刷する"
+
+#: ../src/glabels-batch.c:65 ../data/ui/print-op-dialog-custom-widget.ui.h:11
+msgid "print crop marks"
+msgstr "端のマークを揃えて印刷する"
+
+#: ../src/glabels-batch.c:67
+msgid "input file for merging"
+msgstr "ファイルをマージする"
+
+#: ../src/glabels-batch.c:69 ../src/glabels.c:63
+msgid "[FILE...]"
+msgstr "[FILE...]"
 
-#: ../src/ui.c:305
+#: ../src/glabels-batch.c:99
+msgid "Print files created with gLabels."
+msgstr ""
+
+#: ../src/glabels-batch.c:107 ../src/glabels.c:87
+#, c-format
+msgid ""
+"%s\n"
+"Run '%s --help' to see a full list of available command line options.\n"
+msgstr ""
+
+#: ../src/glabels-batch.c:151
+#, c-format
+msgid "cannot perform document merge with glabels file %s\n"
+msgstr "gLabels ファイル %s とドキュメントを結合できません\n"
+
+#: ../src/glabels-batch.c:186
+#, c-format
+msgid "cannot open glabels file %s\n"
+msgstr "gLabels のファイル %s を開けません\n"
+
+#: ../src/glabels.c:79
+#, fuzzy
+msgid "Launch gLabels label and business card designer."
+msgstr "ラベルと名刺をデザインするプログラムです。\n"
+
+#: ../src/label-barcode.c:183 ../src/ui.c:317
 msgid "Create barcode object"
 msgstr "バーコード・オブジェクトを作成します"
 
-#: ../src/ui.c:310
+#: ../src/label-barcode.c:259 ../src/label-barcode.c:461
+#, fuzzy
+msgid "Barcode data"
+msgstr "バーコード・データが空です"
+
+#: ../src/label-barcode.c:290
+#, fuzzy
+msgid "Barcode property"
+msgstr "バーコード・オブジェクトのプロパティ"
+
+#: ../src/label-barcode.c:684
+msgid "Barcode data empty"
+msgstr "バーコード・データが空です"
+
+#: ../src/label-barcode.c:688
+msgid "Invalid barcode data"
+msgstr "バーコード・データが間違っています"
+
+#: ../src/label-box.c:156
+#, fuzzy
+msgid "Create box object"
+msgstr "文字オブジェクトを作成します"
+
+#: ../src/label-box.c:230 ../src/label-ellipse.c:232
+#: ../data/ui/property-bar.ui.h:3
+msgid "Fill color"
+msgstr "色で塗りつぶします"
+
+#: ../src/label-box.c:261 ../src/label-ellipse.c:261 ../src/label-line.c:212
+#: ../data/ui/property-bar.ui.h:8
+msgid "Line color"
+msgstr "線の色を選択します"
+
+#: ../src/label-box.c:289 ../src/label-ellipse.c:290 ../src/label-line.c:241
+#: ../data/ui/property-bar.ui.h:9
+msgid "Line width"
+msgstr "線幅"
+
+#: ../src/label.c:405
+msgid "Untitled"
+msgstr "タイトルなし"
+
+#: ../src/label.c:719 ../src/ui.c:420
+msgid "Merge properties"
+msgstr "プロパティの結合"
+
+#: ../src/label.c:1215 ../src/ui.c:213
+msgid "Delete"
+msgstr "削除"
+
+#: ../src/label.c:1248 ../src/ui.c:322
 msgid "Bring to front"
 msgstr "前面に持ってくる"
 
-#: ../src/ui.c:312
-msgid "Raise object to top"
-msgstr "オブジェクトを前面に持ってきます"
-
-#: ../src/ui.c:317
+#: ../src/label.c:1284 ../src/ui.c:329
 msgid "Send to back"
-msgstr "後ろにまわす(_B)"
+msgstr "後ろにまわす"
 
-#: ../src/ui.c:319
-msgid "Lower object to bottom"
-msgstr "オブジェクトを後ろにまわします"
+#: ../src/label.c:1325
+msgid "Rotate"
+msgstr "回転させる"
 
-#: ../src/ui.c:324
+#: ../src/label.c:1360 ../src/ui.c:336
 msgid "Rotate left"
 msgstr "左に回転する"
 
-#: ../src/ui.c:326
-msgid "Rotate object 90 degrees counter-clockwise"
-msgstr "オブジェクトを反時計回りに 90°回転させます"
-
-#: ../src/ui.c:331
+#: ../src/label.c:1393 ../src/ui.c:343
 msgid "Rotate right"
 msgstr "右に回転する"
 
-#: ../src/ui.c:333
-msgid "Rotate object 90 degrees clockwise"
-msgstr "オブジェクトを時計回りに 90°回転させます"
-
-#: ../src/ui.c:338
+#: ../src/label.c:1428 ../src/ui.c:350
 msgid "Flip horizontally"
 msgstr "水平方向にフリップする"
 
-#: ../src/ui.c:340
-msgid "Flip object horizontally"
-msgstr "オブジェクトを水平方向にひっくり返します"
-
-#: ../src/ui.c:345
+#: ../src/label.c:1463 ../src/ui.c:357
 msgid "Flip vertically"
 msgstr "垂直方向にフリップする"
 
-#: ../src/ui.c:347
-msgid "Flip object vertically"
-msgstr "オブジェクトを垂直方向にひっくり返します"
-
-#: ../src/ui.c:352
+#: ../src/label.c:1503 ../src/ui.c:364
 msgid "Align left"
 msgstr "左寄せ"
 
-#: ../src/ui.c:354
-msgid "Align objects to left edges"
-msgstr "オブジェクトを左端に配置します"
-
-#: ../src/ui.c:359
+#: ../src/label.c:1560 ../src/ui.c:378
 msgid "Align right"
 msgstr "右寄せ"
 
-#: ../src/ui.c:361
-msgid "Align objects to right edges"
-msgstr "オブジェクトを右端に配置します"
-
-#: ../src/ui.c:366
+#: ../src/label.c:1621
 msgid "Align horizontal center"
 msgstr "中央寄せ (水平方向)"
 
-#: ../src/ui.c:368
-msgid "Align objects to horizontal centers"
-msgstr "オブジェクトを水平方向の中心に配置します"
-
-#: ../src/ui.c:373
+#: ../src/label.c:1697
 msgid "Align tops"
 msgstr "上寄せ"
 
-#: ../src/ui.c:375
-msgid "Align objects to top edges"
-msgstr "オブジェクトを上端に配置します"
-
-#: ../src/ui.c:380
+#: ../src/label.c:1754
 msgid "Align bottoms"
 msgstr "下寄せ"
 
-#: ../src/ui.c:382
-msgid "Align objects to bottom edges"
-msgstr "オブジェクトを下端に配置します"
-
-#: ../src/ui.c:387
+#: ../src/label.c:1815
 msgid "Align vertical center"
 msgstr "中央寄せ (垂直方向)"
 
-#: ../src/ui.c:389
-msgid "Align objects to vertical centers"
-msgstr "オブジェクトを垂直方向の中心に配置します"
-
-#: ../src/ui.c:394
+#: ../src/label.c:1893 ../src/ui.c:406
 msgid "Center horizontally"
 msgstr "水平移動"
 
-#: ../src/ui.c:396
-msgid "Center objects to horizontal label center"
-msgstr "オブジェクトをラベルの中心に水平移動します"
-
-#: ../src/ui.c:401
+#: ../src/label.c:1940 ../src/ui.c:413
 msgid "Center vertically"
 msgstr "垂直移動"
 
-#: ../src/ui.c:403
-msgid "Center objects to vertical label center"
-msgstr "オブジェクトをラベルの中心に垂直移動します"
+#: ../src/label.c:2628 ../src/label.c:2670 ../src/label.c:2696 ../src/ui.c:206
+msgid "Paste"
+msgstr "貼り付け"
 
-#: ../src/ui.c:408
-msgid "Merge properties"
-msgstr "プロパティの結合"
+#: ../src/label-ellipse.c:160
+#, fuzzy
+msgid "Create ellipse object"
+msgstr "直線オブジェクトを作成します"
 
-#: ../src/ui.c:410
-msgid "Edit merge properties"
-msgstr "çµ\90å\90\88ã\81\97ã\81\9fã\83\97ã\83­ã\83\91ã\83\86ã\82£ã\82\92ç·¨é\9b\86します"
+#: ../src/label-image.c:200 ../src/ui.c:310
+msgid "Create image object"
+msgstr "ç\94»å\83\8fã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92ä½\9cæ\88\90します"
 
-#: ../src/ui.c:417
-msgid "Contents"
-msgstr "目次"
+#: ../src/label-image.c:333 ../src/label-image.c:474
+#, fuzzy
+msgid "Set image"
+msgstr "画像サイズのリセット"
 
-#: ../src/ui.c:419
-msgid "Open glabels manual"
-msgstr "gLabels のマニュアルを開きます"
+#: ../src/label-line.c:147 ../src/ui.c:296
+msgid "Create line object"
+msgstr "直線オブジェクトを作成します"
 
-#: ../src/ui.c:424
-msgid "About..."
-msgstr "情報..."
+#: ../src/label-object.c:394 ../src/label-object.c:428
+msgid "Move"
+msgstr ""
 
-#: ../src/ui.c:426
-msgid "About glabels"
-msgstr "gLabels について"
+#: ../src/label-object.c:479
+#, fuzzy
+msgid "Resize"
+msgstr "用紙の大きさ:"
 
-#: ../src/ui.c:436
-msgid "Property toolbar"
-msgstr "プロパティのツールバー"
+#: ../src/label-object.c:1217
+#, fuzzy
+msgid "Shadow state"
+msgstr "影"
 
-#: ../src/ui.c:438
-msgid "Change the visibility of the property toolbar in the current window"
-msgstr "プロパティ・ツールバーの表示/非表示を変更します"
+#: ../src/label-object.c:1260
+#, fuzzy
+msgid "Shadow offset"
+msgstr "影"
 
-#: ../src/ui.c:444 ../src/ui.c:489 ../src/ui.c:497
-msgid "Show tooltips"
-msgstr "ツールチップの表示"
+#: ../src/label-object.c:1308
+#, fuzzy
+msgid "Shadow color"
+msgstr "影"
 
-#: ../src/ui.c:446
-msgid "Show tooltips for property toolbar"
-msgstr "プロパティ・ツールバーにツールチップを表示します"
+#: ../src/label-object.c:1351
+#, fuzzy
+msgid "Shadow opacity"
+msgstr "影"
 
-#: ../src/ui.c:452
-msgid "Grid"
-msgstr "グリッド"
+#: ../src/label-text.c:281 ../src/ui.c:282
+msgid "Create text object"
+msgstr "文字オブジェクトを作成します"
 
-#: ../src/ui.c:454
-msgid "Change the visibility of the grid in the current window"
-msgstr "ラベルのグリッド (格子線) の表示/非表示を変更します"
+#: ../src/label-text.c:453
+#, fuzzy
+msgid "Typing"
+msgstr "ピンク"
+
+#: ../src/label-text.c:586 ../data/ui/property-bar.ui.h:4
+msgid "Font family"
+msgstr "フォント名"
 
-#: ../src/ui.c:460
-msgid "Markup"
-msgstr "ã\83\9eã\83¼ã\82¯ã\82¢ã\83\83ã\83\97"
+#: ../src/label-text.c:624 ../data/ui/property-bar.ui.h:5
+msgid "Font size"
+msgstr "ã\83\95ã\82©ã\83³ã\83\88ã\81®å¤§ã\81\8dã\81\95"
 
-#: ../src/ui.c:462
-msgid "Change the visibility of markup lines in the current window"
-msgstr "ラベルの外枠線の表示/非表示を変更します"
+#: ../src/label-text.c:657
+#, fuzzy
+msgid "Font weight"
+msgstr "右に回転する"
 
-#: ../src/ui.c:473
-msgid "Main toolbar"
-msgstr "ã\83¡ã\82¤ã\83³ã\83»ã\83\84ã\83¼ã\83«ã\83\90ã\83¼"
+#: ../src/label-text.c:690 ../data/ui/property-bar.ui.h:6
+msgid "Italic"
+msgstr "ã\82¤ã\82¿ã\83ªã\83\83ã\82¯"
 
-#: ../src/ui.c:475
-msgid "Change the visibility of the main toolbar in the current window"
-msgstr "メイン・ツールバーの表示/非表示を変更します"
+#: ../src/label-text.c:723
+#, fuzzy
+msgid "Align text"
+msgstr "左寄せ"
 
-#: ../src/ui.c:481
-msgid "Drawing toolbar"
-msgstr "ツールバーの表示方法"
+#: ../src/label-text.c:756
+#, fuzzy
+msgid "Line spacing"
+msgstr "行間:"
 
-#: ../src/ui.c:483
-msgid "Change the visibility of the drawing toolbar in the current window"
-msgstr "ツールバーの表示/非表示を変更します"
+#: ../src/label-text.c:789 ../data/ui/property-bar.ui.h:11
+msgid "Text color"
+msgstr "文字の色"
 
-#: ../src/ui.c:491
-msgid "Show tooltips for main toolbar"
-msgstr "メイン・ツールバーにツールチップを表示します"
+#: ../src/label-text.c:933
+msgid "Auto shrink"
+msgstr ""
 
-#: ../src/ui.c:499
-msgid "Show tooltips for drawing toolbar"
-msgstr "ツールバーにツールチップを表示します"
+#: ../src/media-select.c:358 ../src/media-select.c:361
+#: ../src/media-select.c:506 ../src/media-select.c:723
+#, fuzzy
+msgctxt "Brand"
+msgid "Any"
+msgstr "いずれか"
 
-#: ../src/ui-property-bar.c:1232 ../src/object-editor.c:587
-#: ../src/object-editor.c:593
-msgid "Default"
-msgstr "デフォルト"
+#: ../src/media-select.c:365 ../src/media-select.c:893
+#, fuzzy
+msgctxt "Page size"
+msgid "Any"
+msgstr "いずれか"
 
-#: ../src/ui-property-bar.c:1239 ../src/object-editor.c:599
-msgid "No line"
-msgstr "線を消す"
+#: ../src/media-select.c:372 ../src/media-select.c:375
+#: ../src/media-select.c:902
+#, fuzzy
+msgctxt "Category"
+msgid "Any"
+msgstr "いずれか"
 
-#: ../src/ui-property-bar.c:1247 ../src/object-editor.c:606
-msgid "No fill"
-msgstr "塗りつぶさない"
+#: ../src/media-select.c:648
+#, c-format
+msgid "Delete template \"%s\"?"
+msgstr ""
 
-#: ../src/ui-sidebar.c:152
-msgid "Object properties"
-msgstr "オブジェクトのプロパティ"
+#: ../src/media-select.c:650
+msgid "This action will permanently delete this template."
+msgstr ""
 
-#: ../src/ui-commands.c:1084
-msgid "Glabels includes contributions from:"
-msgstr "gLabels の開発に貢献してくれた方々:"
+#: ../src/media-select.c:990
+msgid "No recent templates found."
+msgstr "最近開いたテンプレートはありません"
 
-#: ../src/ui-commands.c:1090
-msgid "See the file AUTHORS for additional credits,"
-msgstr "補足のクレジットについては AUTHORS ファイルをご覧になるか、"
+#: ../src/media-select.c:992
+#, fuzzy
+msgid "Try selecting a template in the \"Search all\" tab."
+msgstr ""
+"\"すべてのテンプレートから検索する\" のページからテンプレートを一つ選択してみ"
+"てください。"
 
-#: ../src/ui-commands.c:1091
-msgid "or visit http://glabels.sourceforge.net/"
-msgstr "または http://glabels.sourceforge.net/ を訪れてみて下さい。"
+#. Translators: "No match" means that for the given template search criteria, there
+#. * were no matches found.
+#: ../src/media-select.c:1083
+msgid "No match."
+msgstr "見つかりません"
 
-#: ../src/ui-commands.c:1103
-msgid "A label and business card creation program.\n"
-msgstr "ラベルと名刺をデザインするプログラムです。\n"
+#: ../src/media-select.c:1085
+msgid "Try selecting a different brand, page size or category."
+msgstr "別のブランドや用紙の大きさ、またはカテゴリを指定してみてください。"
 
-#: ../src/ui-commands.c:1107
-msgid "translator-credits"
-msgstr ""
-"相花 毅 <takeshi.aihana@gmail.com>\n"
-"日本GNOMEユーザー会 http://www.gnome.gr.jp"
+#: ../src/media-select.c:1179
+#, fuzzy
+msgid "No custom templates found."
+msgstr "最近開いたテンプレートはありません"
 
-#: ../src/ui-commands.c:1110
+#: ../src/media-select.c:1181
 msgid ""
-"Glabels is free software; you can redistribute it and/or modify it\n"
-"under the terms of the GNU General Public License as published by\n"
-"the Free Software Foundation; either version 2 of the License, or\n"
-"(at your option) any later version.\n"
-"\n"
-"This program is distributed in the hope that it will be useful, but\n"
-"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See\n"
-"the GNU General Public License for more details.\n"
+"You may create new templates or try searching for pre-defined templates in "
+"the \"Search all\" tab."
 msgstr ""
-"gLabels はフリーソフトウェアです。すなわち、フリーソフトウェア財団が定める\n"
-"GNU 一般公衆使用許諾契約書の第2版もしくは (オプションで) それ以降のバージョン"
-"の\n"
-"下で複製や改編、再配布が認められています。\n"
-"\n"
-"このプログラムが役に立つことを望む中で配布されていますが、完全無保証です。\n"
-"販売目的または商用目的の保証はありません。\n"
-"詳細については GNU 一般公衆使用許諾契約書をご覧下さい。\n"
 
-#: ../src/ui-commands.c:1136
-msgid "glabels"
-msgstr "gLabels"
+#. Translators: "None" here means that no document-merge source or
+#. * method has been selected.
+#: ../src/merge.c:171 ../src/merge.c:212 ../src/merge.c:376 ../src/merge.c:379
+msgid "None"
+msgstr "なし"
 
-#: ../src/file.c:91
-msgid "New Label or Card"
-msgstr "新規ラベルまたはカード"
+#: ../src/merge-init.c:57
+msgid "Text: Comma Separated Values (CSV)"
+msgstr ""
 
-#: ../src/file.c:191
-msgid "Label properties"
-msgstr "ラベルのプロパティ"
+#: ../src/merge-init.c:64
+msgid "Text: Comma Separated Values (CSV) with keys on line 1"
+msgstr ""
 
-#: ../src/file.c:292 ../src/file.c:578
-msgid "All files"
-msgstr "全てのファイル"
+#: ../src/merge-init.c:72
+msgid "Text: Tab Separated Values (TSV)"
+msgstr ""
 
-#: ../src/file.c:297 ../src/file.c:583
-msgid "gLabels documents"
-msgstr "gLabels のドキュメント"
+#: ../src/merge-init.c:79
+msgid "Text: Tab Separated Values (TSV) with keys on line 1"
+msgstr ""
 
-#: ../src/file.c:343 ../src/file.c:640
-msgid "Empty file name selection"
-msgstr "ファイル名の入力欄が空です"
+#: ../src/merge-init.c:87
+msgid "Text: Colon separated values"
+msgstr ""
 
-#: ../src/file.c:346 ../src/file.c:362
-msgid "Please select a file or supply a valid file name"
-msgstr "既存のファイルを選択するか、または正しいファイル名を指定して下さい。"
+#: ../src/merge-init.c:94
+msgid "Text: Colon separated values with keys on line 1"
+msgstr ""
 
-#: ../src/file.c:359
-msgid "File does not exist"
-msgstr "ファイルがありません。"
+#: ../src/merge-init.c:102
+msgid "Text: Semicolon separated values"
+msgstr ""
 
-#: ../src/file.c:433
-#, c-format
-msgid "Could not open file \"%s\""
-msgstr "ファイル \"%s\" が開けませんでした"
+#: ../src/merge-init.c:109
+msgid "Text: Semicolon separated values with keys on line 1"
+msgstr ""
 
-#: ../src/file.c:436
-msgid "Not a supported file format"
-msgstr "サポートしていないファイル形式です。"
+#: ../src/merge-init.c:119
+#, fuzzy
+msgid "Evolution Addressbook"
+msgstr "Evolution アドレス帳のデータ"
 
-#: ../src/file.c:513 ../src/file.c:690
-#, c-format
-msgid "Could not save file \"%s\""
-msgstr "ã\83\95ã\82¡ã\82¤ã\83« \"%s\" ã\82\92ä¿\9då­\98ã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\81§ã\81\97ã\81\9f"
+#: ../src/merge-init.c:125
+#, fuzzy
+msgid "VCards"
+msgstr "ã\83\86ã\83³ã\83\88ã\81®ã\82«ã\83¼ã\83\89"
 
-#: ../src/file.c:517 ../src/file.c:694
-msgid "Error encountered during save.  The file is still not saved."
-msgstr "データ保存中にエラーが発生しました。データはまだ保存されていません。"
+#: ../src/merge-properties-dialog.c:280
+msgid "Merge Properties"
+msgstr "結合プロパティ"
 
-#: ../src/file.c:556
-#, c-format
-msgid "Save \"%s\" as"
-msgstr "\"%s\" に名前を付けて保存"
+#: ../src/merge-properties-dialog.c:304 ../src/merge-properties-dialog.c:420
+msgid "Select merge-database source"
+msgstr "結合データベース・ソースの選択"
 
-#: ../src/file.c:643
-msgid "Please supply a valid file name"
-msgstr "正しいファイル名を指定して下さい"
+#: ../src/merge-properties-dialog.c:315 ../src/merge-properties-dialog.c:446
+msgid "N/A"
+msgstr "N/A"
 
-#: ../src/file.c:664
-#, c-format
-msgid "Overwrite file \"%s\"?"
-msgstr "ファイル \"%s\" に上書きしますか?"
+#: ../src/merge-properties-dialog.c:341
+msgid "Select"
+msgstr "選択"
 
-#: ../src/file.c:668
-msgid "File already exists."
-msgstr "ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cæ\97¢ã\81«å­\98å\9c¨ã\81\97ã\81¾ã\81\99ã\80\82"
+#: ../src/merge-properties-dialog.c:348
+msgid "Record/Field"
+msgstr "ã\83¬ã\82³ã\83¼ã\83\89\83\95ã\82£ã\83¼ã\83«ã\83\89"
 
-#: ../src/file.c:764
-#, c-format
-msgid "Save changes to document \"%s\" before closing?"
-msgstr "終了する前にドキュメント \"%s\" に対する変更点を保存しますか?"
+#: ../src/merge-properties-dialog.c:356 ../data/ui/object-editor.ui.h:10
+msgid "Data"
+msgstr "データ"
 
-#: ../src/file.c:768
-msgid "Your changes will be lost if you don't save them."
-msgstr "保存しないと変更したデータを失うことになります。"
+#. Translators: "Fixed" here means that for the given document-merge method, there are
+#. * no further choices to further define the source of data.  E.g. if you select the
+#. * evolution-data-server, there are no further choices -- the source is "Fixed."
+#.
+#: ../src/merge-properties-dialog.c:439
+msgid "Fixed"
+msgstr "固定"
 
-#: ../src/file.c:771
-msgid "Close without saving"
-msgstr "保存せずに閉じる"
+#. Translators: "Up" refers to the direction towards the top of a label.
+#: ../src/mini-preview.c:1054
+msgid "Up"
+msgstr ""
 
-#. Should not happen
-#: ../src/prefs.c:159 ../src/prefs.c:166
-#: ../data/glade/object-editor.glade.h:43
-#: ../data/glade/prefs-dialog.glade.h:22
-msgid "points"
-msgstr "ポイント"
+#: ../src/new-label-dialog.c:203
+#, fuzzy
+msgid "Select Product"
+msgstr "選択モード"
 
-#: ../src/prefs.c:161 ../data/glade/object-editor.glade.h:42
-#: ../data/glade/template-designer.glade.h:64
-msgid "inches"
-msgstr "[インチ]"
+#: ../src/new-label-dialog.c:215
+msgid "Choose Orientation"
+msgstr ""
 
-#: ../src/prefs.c:163
-msgid "mm"
-msgstr "[ミリ]"
+#: ../src/new-label-dialog.c:229
+msgid "Review"
+msgstr ""
 
-#: ../src/prefs-dialog.c:162 ../data/glade/prefs-dialog.glade.h:21
-msgid "gLabels Preferences"
-msgstr "gLabels の設定"
+#: ../src/object-editor-bc-page.c:97 ../src/object-editor-shadow-page.c:93
+#: ../src/object-editor-text-page.c:97 ../src/prefs-dialog.c:335
+#: ../src/ui-property-bar.c:277
+msgid "Default"
+msgstr "デフォルト"
+
+#: ../src/object-editor.c:161 ../src/object-editor.c:470
+msgid "Object properties"
+msgstr "オブジェクトのプロパティ"
 
-#. Build editor.
-#: ../src/view-box.c:175
+#: ../src/object-editor.c:314
 msgid "Box object properties"
 msgstr "矩形オブジェクトのプロパティ"
 
-#. Build editor.
-#: ../src/view-ellipse.c:175
+#: ../src/object-editor.c:333
 msgid "Ellipse object properties"
 msgstr "楕円オブジェクトのプロパティ"
 
-#. Build editor.
-#: ../src/view-line.c:174
+#: ../src/object-editor.c:352
 msgid "Line object properties"
 msgstr "直線オブジェクトのプロパティ"
 
-#. Build editor.
-#: ../src/view-image.c:174
+#: ../src/object-editor.c:369
 msgid "Image object properties"
 msgstr "画像オブジェクトのプロパティ"
 
-#. Build editor.
-#: ../src/view-text.c:178
+#: ../src/object-editor.c:386
 msgid "Text object properties"
 msgstr "文字オブジェクトのプロパティ"
 
-#. Build editor.
-#: ../src/view-barcode.c:174
+#: ../src/object-editor.c:408
 msgid "Barcode object properties"
 msgstr "バーコード・オブジェクトのプロパティ"
 
-#: ../src/object-editor-image-page.c:270
+#: ../src/object-editor-edit-page.c:76
+msgid "Insert merge field"
+msgstr "結合フィールドの挿入"
+
+#: ../src/object-editor-fill-page.c:79 ../src/prefs-dialog.c:341
+#: ../src/ui-property-bar.c:287
+#, fuzzy
+msgid "No Fill"
+msgstr "塗りつぶさない"
+
+#: ../src/object-editor-image-page.c:302
 msgid "All Files"
-msgstr "てのファイル"
+msgstr "すべてのファイル"
 
-#: ../src/object-editor-image-page.c:275
+#: ../src/object-editor-image-page.c:307
 msgid "All Images"
-msgstr "ての画像"
+msgstr "すべての画像"
 
-#: ../src/object-editor-image-page.c:290
+#: ../src/object-editor-image-page.c:323
 #, c-format
 msgid "%s (*.%s)"
 msgstr "%s (*.%s)"
 
-#: ../src/merge-properties-dialog.c:263
-msgid "Merge Properties"
-msgstr "結合プロパティ"
-
-#: ../src/merge-properties-dialog.c:289 ../src/merge-properties-dialog.c:397
-msgid "Select merge-database source"
-msgstr "結合データベース・ソースの選択"
-
-#: ../src/merge-properties-dialog.c:298 ../src/merge-properties-dialog.c:417
-msgid "N/A"
-msgstr "N/A"
-
-#: ../src/merge-properties-dialog.c:324
-msgid "Select"
-msgstr "選択"
-
-#: ../src/merge-properties-dialog.c:332
-msgid "Record/Field"
-msgstr "レコード/フィールド"
+#: ../src/object-editor-line-page.c:79 ../src/prefs-dialog.c:338
+#: ../src/ui-property-bar.c:297
+#, fuzzy
+msgid "No Line"
+msgstr "線を消す"
 
-#: ../src/merge-properties-dialog.c:340 ../data/glade/object-editor.glade.h:10
-msgid "Data"
-msgstr "データ"
+#: ../src/object-editor-size-page.c:89
+msgid "Lock aspect ratio."
+msgstr ""
 
-#: ../src/merge-properties-dialog.c:410
-msgid "Fixed"
-msgstr "定"
+#: ../src/prefs-dialog.c:168 ../data/ui/prefs-dialog.ui.h:21
+msgid "gLabels Preferences"
+msgstr "gLabels の設定"
 
-#. ===================================================================
-#: ../src/print-op.c:237 ../src/wdgt-print-copies.c:171
-#: ../data/templates/misc-iso-templates.xml.h:34
+#. TODO: Is this the actual part #?
+#: ../src/print-op.c:205 ../src/print-op-dialog.c:215
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:4
+#: ../templates/misc-iso-templates.xml.h:24
 msgid "Labels"
 msgstr "ラベル"
 
-#: ../src/template-designer.c:358
-msgid "gLabels Template Designer"
+#: ../src/template-designer.c:429
+#, fuzzy
+msgid "New gLabels Template"
 msgstr "gLabels テンプレート・デザイナ"
 
-#: ../src/template-designer.c:419
+#: ../src/template-designer.c:487
 msgid "Welcome"
 msgstr "ようこそ"
 
-#: ../src/template-designer.c:463
+#: ../src/template-designer.c:526
 msgid "Name and Description"
 msgstr "名前と説明"
 
-#: ../src/template-designer.c:516
+#: ../src/template-designer.c:575
 msgid "Page Size"
 msgstr "用紙の大きさ"
 
-#: ../src/template-designer.c:587
+#: ../src/template-designer.c:642
 msgid "Label or Card Shape"
 msgstr "ラベルまたはカードの形状"
 
-#: ../src/template-designer.c:637
+#: ../src/template-designer.c:689 ../src/template-designer.c:790
 msgid "Label or Card Size"
 msgstr "ラベルまたはカードの大きさ"
 
-#: ../src/template-designer.c:737
+#: ../src/template-designer.c:873
 msgid "Label Size (round)"
 msgstr "ラベルの大きさ (円)"
 
-#: ../src/template-designer.c:820
+#: ../src/template-designer.c:954
 msgid "Label Size (CD/DVD)"
 msgstr "ラベルの大きさ (CD/DVD)"
 
-#: ../src/template-designer.c:913
+#: ../src/template-designer.c:1045
 msgid "Number of Layouts"
 msgstr "レイアウトの数"
 
-#: ../src/template-designer.c:976
+#: ../src/template-designer.c:1113
 msgid "Layout(s)"
 msgstr "レイアウト"
 
-#: ../src/template-designer.c:1087
+#: ../src/template-designer.c:1218
 msgid "Design Completed"
 msgstr "デザインが完了しました"
 
-#: ../src/template-designer.c:1253
-msgid ""
-"<span foreground='red' weight='bold'>Brand and part# match an existing "
-"template!</span>"
+#: ../src/template-designer.c:1246
+#, fuzzy
+msgid "Edit gLabels Template"
+msgstr "gLabels テンプレート・デザイナ"
+
+#: ../src/template-designer.c:1549
+#, fuzzy
+msgid "Brand and part# match an existing template!"
 msgstr ""
 "<span foreground='red' weight='bold'>ブランド/製造元とパーツ番号が既存のテン"
-"プレートと同じです!</span>"
-
-#: ../src/bc.c:67
-msgid "POSTNET (any)"
-msgstr "POSTNET (何でも)"
-
-#: ../src/bc.c:70
-msgid "POSTNET-5 (ZIP only)"
-msgstr "POSTNET-5 (ZIP のみ)"
-
-#: ../src/bc.c:73
-msgid "POSTNET-9 (ZIP+4)"
-msgstr "POSTNET-9 (ZIP+4)"
-
-#: ../src/bc.c:76
-msgid "POSTNET-11 (DPBC)"
-msgstr "POSTNET-11 (DPBC)"
-
-#: ../src/bc.c:79
-msgid "CEPNET"
-msgstr "CEPNET"
-
-#: ../src/bc.c:82
-msgid "EAN (any)"
-msgstr "EAN (何でも)"
-
-#: ../src/bc.c:85
-msgid "EAN-8"
-msgstr "EAN-8"
-
-#: ../src/bc.c:88
-msgid "EAN-8 +2"
-msgstr "EAN-8 +2"
-
-#: ../src/bc.c:91
-msgid "EAN-8 +5"
-msgstr "EAN-8 +5"
-
-#: ../src/bc.c:94
-msgid "EAN-13"
-msgstr "EAN-13"
-
-#: ../src/bc.c:97
-msgid "EAN-13 +2"
-msgstr "EAN-13 +2"
-
-#: ../src/bc.c:100
-msgid "EAN-13 +5"
-msgstr "EAN-13 +5"
+"プレートと同じです!</span>"
 
-#: ../src/bc.c:103
-msgid "UPC (UPC-A or UPC-E)"
-msgstr "UPC (UPC-A または UPC-E)"
-
-#: ../src/bc.c:106
-msgid "UPC-A"
-msgstr "UPC-A"
+#. Menu entries.
+#: ../src/ui.c:91
+msgid "_File"
+msgstr "ファイル(_F)"
 
-#: ../src/bc.c:109
-msgid "UPC-A +2"
-msgstr "UPC-A +2"
+#: ../src/ui.c:92
+msgid "Open Recent _Files"
+msgstr "最近開いたファイル(_F)"
 
-#: ../src/bc.c:112
-msgid "UPC-A +5"
-msgstr "UPC-A +5"
+#: ../src/ui.c:93
+msgid "_Edit"
+msgstr "編集(_E)"
 
-#: ../src/bc.c:115
-msgid "UPC-E"
-msgstr "UPC-E"
+#: ../src/ui.c:94
+msgid "_View"
+msgstr "表示(_V)"
 
-#: ../src/bc.c:118
-msgid "UPC-E +2"
-msgstr "UPC-E +2"
+#: ../src/ui.c:95
+msgid "Customize Main Toolbar"
+msgstr "メイン・ツールバー"
 
-#: ../src/bc.c:121
-msgid "UPC-E +5"
-msgstr "UPC-E +5"
+#: ../src/ui.c:96
+msgid "Customize Drawing Toolbar"
+msgstr "描画ツールバー"
 
-#: ../src/bc.c:124
-msgid "ISBN"
-msgstr "ISBN"
+#: ../src/ui.c:97
+msgid "Customize Properties Toolbar"
+msgstr "プロパティ・ツールバー"
 
-#: ../src/bc.c:127
-msgid "ISBN +5"
-msgstr "ISBN +5"
+#: ../src/ui.c:98
+msgid "_Objects"
+msgstr "オブジェクト(_O)"
 
-#: ../src/bc.c:130
-msgid "Code 39"
-msgstr "Code 39"
+#: ../src/ui.c:99
+msgid "_Create"
+msgstr "オブジェクトの生成(_C)"
 
-#: ../src/bc.c:133
-msgid "Code 128"
-msgstr "Code 128"
+#: ../src/ui.c:100
+msgid "_Order"
+msgstr "整列(_O)"
 
-#: ../src/bc.c:136
-msgid "Code 128C"
-msgstr "Code 128C"
+#: ../src/ui.c:101
+msgid "_Rotate/Flip"
+msgstr "回転/フリップ(_R)"
 
-#: ../src/bc.c:139
-msgid "Code 128B"
-msgstr "Code 128B"
+#: ../src/ui.c:102
+#, fuzzy
+msgid "_Alignment"
+msgstr "位置:"
 
-#: ../src/bc.c:142
-msgid "Interleaved 2 of 5"
-msgstr "綴じ込み 2/5"
+#: ../src/ui.c:103
+#, fuzzy
+msgid "C_enter"
+msgstr "中央"
 
-#: ../src/bc.c:145
-msgid "Codabar"
-msgstr "Codabar"
+#: ../src/ui.c:104
+msgid "_Help"
+msgstr "ヘルプ(_H)"
 
-#: ../src/bc.c:148
-msgid "MSI"
-msgstr "MSI"
+#. Popup entries.
+#: ../src/ui.c:107 ../src/ui.c:108
+msgid "Context Menu"
+msgstr "コンテキスト・メニュー"
 
-#: ../src/bc.c:151
-msgid "Plessey"
-msgstr "Plessey"
+#: ../src/ui.c:113
+msgid "_New"
+msgstr "新規(_N)"
 
-#: ../src/bc.c:154
-msgid "IEC16022 (DataMatrix)"
-msgstr "IEC16022 (DataMatrix)"
+#: ../src/ui.c:115
+msgid "Create a new file"
+msgstr "新しいファイルを作成します"
 
-#: ../src/label.c:531
-msgid "Untitled"
-msgstr "タイトルなし"
+#: ../src/ui.c:120
+msgid "_Open..."
+msgstr "開く(_O)..."
 
-#: ../src/label-barcode.c:426
-msgid "Barcode data empty"
-msgstr "ã\83\90ã\83¼ã\82³ã\83¼ã\83\89ã\83»ã\83\87ã\83¼ã\82¿ã\81\8c空ã\81§す"
+#: ../src/ui.c:122
+msgid "Open a file"
+msgstr "ã\83\95ã\82¡ã\82¤ã\83«ã\82\92é\96\8bã\81\8dã\81¾す"
 
-#: ../src/label-barcode.c:430
-msgid "Invalid barcode data"
-msgstr "バーコード・データが間違っています"
+#: ../src/ui.c:127
+msgid "_Save"
+msgstr "保存(_S)"
 
-#: ../src/xml-label.c:193
-msgid "xmlParseFile error"
-msgstr "xmlParseFile エラー"
+#: ../src/ui.c:129
+msgid "Save current file"
+msgstr "このファイルを保存します"
 
-#: ../src/xml-label.c:234
-msgid "xmlParseDoc error"
-msgstr "xmlParseDoc エラー"
+#: ../src/ui.c:134
+msgid "Save _As..."
+msgstr "別名で保存(_A)..."
 
-#: ../src/xml-label.c:270
-msgid "No document root"
-msgstr "root ドキュメントではありません"
+#: ../src/ui.c:136
+msgid "Save the current file to a different name"
+msgstr "このファイルに別の名前を付けて保存します"
 
-#: ../src/xml-label.c:278
-msgid "Importing from glabels 0.1 format"
-msgstr "gLabels 0.1 形式からインポートする"
+#: ../src/ui.c:141
+msgid "_Print..."
+msgstr "印刷(_P)..."
 
-#: ../src/xml-label.c:287
-msgid "Importing from glabels 0.4 format"
-msgstr "gLabels 0.4 形式からインポートする"
+#: ../src/ui.c:143
+msgid "Print the current file"
+msgstr "このファイルを印刷します"
 
-#: ../src/xml-label.c:296
-#, c-format
-msgid "Unknown glabels Namespace -- Using %s"
-msgstr "glabels の名前空間が不明です -- %s を利用して下さい"
+#: ../src/ui.c:148
+msgid "Properties..."
+msgstr "プロパティ..."
 
-#: ../src/xml-label.c:327 ../src/xml-label-04.c:79
-#, c-format
-msgid "Bad root node = \"%s\""
-msgstr "おかしな root のノード = \"%s\""
+#: ../src/ui.c:150
+msgid "Modify document properties"
+msgstr "ドキュメントのプロパティを修正します"
 
-#: ../src/xml-label.c:364
-#, c-format
-msgid "bad node in Document node =  \"%s\""
-msgstr "Document ノードにおかしな root のノード = \"%s\""
+#: ../src/ui.c:155
+msgid "Template _Designer..."
+msgstr "テンプレート・デザイナ(_D)..."
 
-#: ../src/xml-label.c:409 ../src/xml-label-04.c:127
-#, c-format
-msgid "bad node =  \"%s\""
-msgstr "おかしなノード = \"%s\""
+#: ../src/ui.c:157
+msgid "Create a custom template"
+msgstr "独自のテンプレートを作成します"
 
-#: ../src/xml-label.c:851
-#, c-format
-msgid "bad node in Data node =  \"%s\""
-msgstr "Data ノードにおかしなノード = \"%s\""
+#: ../src/ui.c:162
+msgid "_Close"
+msgstr "閉じる(_C)"
 
-#: ../src/xml-label.c:1088 ../libglabels/xml-template.c:682
-msgid "Utf8 conversion error."
-msgstr "Utf8 変換エラーです。"
+#: ../src/ui.c:164
+msgid "Close the current file"
+msgstr "このファイルを閉じます"
 
-#: ../src/xml-label.c:1095
-msgid "Problem saving xml file."
-msgstr "XML ファイルの保存で問題があります"
+#: ../src/ui.c:169
+msgid "_Quit"
+msgstr "終了(_Q)"
 
-#: ../src/merge.c:170 ../src/merge.c:211 ../src/merge.c:375 ../src/merge.c:378
-msgid "None"
-msgstr "なし"
+#: ../src/ui.c:171
+msgid "Quit the program"
+msgstr "gLabels を終了します"
 
-#: ../src/merge-init.c:59
-msgid "Text file with comma delimeters (CSV)"
-msgstr "コンマで区切ったテキスト・ファイル (CSV)"
+#: ../src/ui.c:178 ../src/ui.c:180 ../src/ui.c:976
+msgid "Undo"
+msgstr ""
 
-#: ../src/merge-init.c:66
-msgid "Text file with colon delimeters"
-msgstr "コロンで区切ったテキスト・ファイル"
+#: ../src/ui.c:185 ../src/ui.c:187 ../src/ui.c:983
+msgid "Redo"
+msgstr ""
 
-#: ../src/merge-init.c:73
-msgid "Text file with tab delimeters"
-msgstr "タブで区切ったテキスト・ファイル"
+#: ../src/ui.c:192
+msgid "Cut"
+msgstr "切り取り"
 
-#: ../src/merge-init.c:82
-msgid "Data from default Evolution Addressbook"
-msgstr "Evolution アドレス帳のデータ"
+#: ../src/ui.c:194
+msgid "Cut the selection"
+msgstr "選択範囲を切り取ります"
 
-#: ../src/merge-init.c:88
-msgid "Data from a file containing VCards"
-msgstr "VCards 形式のデータを含むファイル"
+#: ../src/ui.c:199
+msgid "Copy"
+msgstr "コピー"
 
-#: ../src/merge-evolution.c:309
-msgid "Couldn't construct query"
-msgstr "クエリを構築できませんでした"
+#: ../src/ui.c:201
+msgid "Copy the selection"
+msgstr "選択範囲をコピーします"
 
-#: ../src/merge-evolution.c:315 ../src/merge-evolution.c:326
-msgid "Couldn't open addressbook."
-msgstr "ã\82¢ã\83\89ã\83¬ã\82¹å¸³ã\82\92é\96\8bã\81\91ã\81¾ã\81\9bã\82\93ã\81§ã\81\97ã\81\9f"
+#: ../src/ui.c:208
+msgid "Paste the clipboard"
+msgstr "ã\82¯ã\83ªã\83\83ã\83\97ã\83\9cã\83¼ã\83\89ã\81®å\86\85容ã\82\92è²¼ã\82\8aä»\98ã\81\91ã\81¾ã\81\99"
 
-#: ../src/merge-evolution.c:341
-msgid "Couldn't list available fields."
-msgstr "利用可能な領域の一覧を生成できませんでした"
+#: ../src/ui.c:215
+msgid "Delete the selected objects"
+msgstr "選択したオブジェクトを削除します"
 
-#: ../src/merge-evolution.c:377
-msgid "Couldn't get contacts."
-msgstr "連絡先を取得できませんでした"
+#: ../src/ui.c:220
+msgid "Select All"
+msgstr "すべて選択"
 
-#: ../src/wdgt-print-copies.c:153
-msgid "Sheets:"
-msgstr "用紙:"
+#: ../src/ui.c:222
+msgid "Select all objects"
+msgstr "すべてのオブジェクトを選択します"
 
-#: ../src/wdgt-print-copies.c:173
-msgid "from:"
-msgstr "開始:"
+#: ../src/ui.c:227
+msgid "Un-select All"
+msgstr "すべて選択解除"
 
-#: ../src/wdgt-print-copies.c:178
-msgid "to:"
-msgstr "終了:"
+#: ../src/ui.c:229
+msgid "Remove all selections"
+msgstr "選択範囲を解除します"
 
-#: ../src/wdgt-print-merge.c:154
-msgid "Start on label"
-msgstr "ラベルの開始"
+#: ../src/ui.c:234
+msgid "Preferences"
+msgstr "gLabels の設定"
 
-#: ../src/wdgt-print-merge.c:159
-msgid "on 1st sheet"
-msgstr "(最初のシート)"
+#: ../src/ui.c:236
+msgid "Configure the application"
+msgstr "gLabels の設定を変更します"
 
-#: ../src/wdgt-print-merge.c:168
-msgid "Copies:"
-msgstr "コピー:"
+#: ../src/ui.c:243
+msgid "Zoom in"
+msgstr "拡大"
 
-#: ../src/wdgt-print-merge.c:173
-msgid "Collate"
-msgstr "製本"
+#: ../src/ui.c:245
+msgid "Increase magnification"
+msgstr "拡大率を上げます"
 
-#: ../src/wdgt-media-select.c:288 ../src/wdgt-media-select.c:292
-#: ../src/wdgt-media-select.c:297 ../src/wdgt-media-select.c:306
-#: ../src/wdgt-media-select.c:309 ../src/wdgt-media-select.c:402
-#: ../src/wdgt-media-select.c:609 ../src/wdgt-media-select.c:618
-msgid "Any"
-msgstr "いずれか"
+#: ../src/ui.c:250
+msgid "Zoom out"
+msgstr "縮小"
 
-#: ../src/wdgt-media-select.c:643
-#, c-format
-msgid "%d per sheet"
-msgstr "%d /シート"
+#: ../src/ui.c:252
+msgid "Decrease magnification"
+msgstr "拡大率を下げます"
 
-#: ../src/wdgt-media-select.c:673
-#, c-format
-msgid "%s x %s %s"
-msgstr "%s x %s %s"
+#: ../src/ui.c:257
+msgid "Zoom 1 to 1"
+msgstr "拡大率 1:1"
 
-#: ../src/wdgt-media-select.c:678
-#, c-format
-msgid "%.5g x %.5g %s"
-msgstr "%.5g x %.5g %s"
+#: ../src/ui.c:259
+msgid "Restore scale to 100%"
+msgstr "拡大率を 100% に戻します"
 
-#: ../src/wdgt-media-select.c:689 ../src/wdgt-media-select.c:703
-#, c-format
-msgid "%s %s diameter"
-msgstr "%s %s 倍率"
+#: ../src/ui.c:264
+msgid "Zoom to fit"
+msgstr "ウィンドウにあわせる"
 
-#: ../src/wdgt-media-select.c:693 ../src/wdgt-media-select.c:707
-#, c-format
-msgid "%.5g %s diameter"
-msgstr "%.5g %s 倍率"
+#: ../src/ui.c:266
+msgid "Set scale to fit window"
+msgstr "ウィンドウの大きさに合わせます"
 
-#: ../src/wdgt-media-select.c:781
-msgid "No recent templates found."
-msgstr "最近開いたテンプレートはありません"
+#: ../src/ui.c:273
+msgid "Select Mode"
+msgstr "選択モード"
 
-#: ../src/wdgt-media-select.c:782
-msgid "Try selecting a template from the \"Search all templates\" page."
-msgstr ""
-"\"全てのテンプレートから検索する\" のページからテンプレートを一つ選択してみて"
-"下さい。"
+#: ../src/ui.c:275
+msgid "Select, move and modify objects"
+msgstr "オブジェクトの選択や移動、編集を行います"
 
-#: ../src/wdgt-media-select.c:861
-msgid "No match."
-msgstr "見つかりません"
+#: ../src/ui.c:280 ../src/view-text.c:94 ../data/ui/object-editor.ui.h:30
+#: ../data/ui/prefs-dialog.ui.h:17
+msgid "Text"
+msgstr "文字"
 
-#: ../src/wdgt-media-select.c:862
-msgid "Try selecting a different brand, page size or category."
-msgstr "別のブランドや用紙の大きさ、またはカテゴリを指定してみて下さい。"
+#: ../src/ui.c:287
+msgid "Box"
+msgstr "矩形"
 
-#. This is the default custom color
-#: ../src/mygal/color-palette.c:389
-msgid "custom"
-msgstr "カスタム"
+#: ../src/ui.c:289
+msgid "Create box/rectangle object"
+msgstr "四角/三角のオブジェクトを作成します"
 
-#. "Custom" color - we'll pop up a GtkColorButton
-#: ../src/mygal/color-palette.c:431
-msgid "Custom Color:"
-msgstr "カスタム色:"
+#: ../src/ui.c:294 ../data/ui/object-editor.ui.h:19
+#: ../data/ui/prefs-dialog.ui.h:9
+msgid "Line"
+msgstr "直線"
 
-#: ../src/mygal/color-palette.c:439
-msgid "Choose Custom Color"
-msgstr "カスタム・カラーの選択"
+#: ../src/ui.c:301
+msgid "Ellipse"
+msgstr "楕円"
 
-#: ../src/mygal/color-palette.c:572
-msgid "black"
-msgstr ""
+#: ../src/ui.c:303
+msgid "Create ellipse/circle object"
+msgstr "楕円/円オブジェクトを作成します"
 
-#: ../src/mygal/color-palette.c:573
-msgid "light brown"
-msgstr "淡い茶"
+#: ../src/ui.c:308 ../data/ui/object-editor.ui.h:16
+msgid "Image"
+msgstr "画像"
 
-#: ../src/mygal/color-palette.c:574
-msgid "brown gold"
-msgstr "茶銀"
+#: ../src/ui.c:315
+msgid "Barcode"
+msgstr "バーコード"
 
-#: ../src/mygal/color-palette.c:575
-msgid "dark green #2"
-msgstr "暗い緑 #2"
+#: ../src/ui.c:324
+msgid "Raise object to top"
+msgstr "オブジェクトを前面に持ってきます"
 
-#: ../src/mygal/color-palette.c:576
-msgid "navy"
-msgstr "ã\83\8dã\83¼ã\83\93ã\83¼"
+#: ../src/ui.c:331
+msgid "Lower object to bottom"
+msgstr "ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92å¾\8cã\82\8dã\81«ã\81¾ã\82\8fã\81\97ã\81¾ã\81\99"
 
-#: ../src/mygal/color-palette.c:577 ../src/mygal/color-palette.c:633
-msgid "dark blue"
-msgstr "暗い青"
+#: ../src/ui.c:338
+msgid "Rotate object 90 degrees counter-clockwise"
+msgstr "オブジェクトを反時計回りに 90°回転させます"
 
-#: ../src/mygal/color-palette.c:578
-msgid "purple #2"
-msgstr "紫 #2"
+#: ../src/ui.c:345
+msgid "Rotate object 90 degrees clockwise"
+msgstr "オブジェクトを時計回りに 90°回転させます"
 
-#: ../src/mygal/color-palette.c:579
-msgid "very dark gray"
-msgstr "ã\81¨ã\81¦ã\82\82æ\9a\97ã\81\84ç\81°"
+#: ../src/ui.c:352
+msgid "Flip object horizontally"
+msgstr "ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92æ°´å¹³æ\96¹å\90\91ã\81«ã\81²ã\81£ã\81\8fã\82\8aè¿\94ã\81\97ã\81¾ã\81\99"
 
-#: ../src/mygal/color-palette.c:582 ../src/mygal/color-palette.c:638
-msgid "dark red"
-msgstr "暗い赤"
+#: ../src/ui.c:359
+msgid "Flip object vertically"
+msgstr "オブジェクトを垂直方向にひっくり返します"
 
-#: ../src/mygal/color-palette.c:583
-msgid "red-orange"
-msgstr "赤ã\81¿ã\81®æ©\99"
+#: ../src/ui.c:366
+msgid "Align objects to left edges"
+msgstr "ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92左端ã\81«é\85\8dç½®ã\81\97ã\81¾ã\81\99"
 
-#: ../src/mygal/color-palette.c:584
-msgid "gold"
-msgstr "金"
+#: ../src/ui.c:371
+#, fuzzy
+msgid "Align center"
+msgstr "左寄せ"
 
-#: ../src/mygal/color-palette.c:585
-msgid "dark green"
-msgstr "暗い緑"
+#: ../src/ui.c:373
+msgid "Align objects to horizontal centers"
+msgstr "オブジェクトを水平方向の中心に配置します"
 
-#: ../src/mygal/color-palette.c:586 ../src/mygal/color-palette.c:639
-msgid "dull blue"
-msgstr "ã\81\8fã\81\99ã\82\93ã\81 é\9d\92"
+#: ../src/ui.c:380
+msgid "Align objects to right edges"
+msgstr "ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92å\8f³ç«¯ã\81«é\85\8dç½®ã\81\97ã\81¾ã\81\99"
 
-#: ../src/mygal/color-palette.c:587 ../src/mygal/color-palette.c:640
-msgid "blue"
-msgstr "青"
+#: ../src/ui.c:385
+#, fuzzy
+msgid "Align top"
+msgstr "上寄せ"
 
-#: ../src/mygal/color-palette.c:588
-msgid "dull purple"
-msgstr "ã\81\8fã\81\99ã\82\93ã\81 ç´«"
+#: ../src/ui.c:387
+msgid "Align objects to top edges"
+msgstr "ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92ä¸\8a端ã\81«é\85\8dç½®ã\81\97ã\81¾ã\81\99"
 
-#: ../src/mygal/color-palette.c:589
-msgid "dark grey"
-msgstr "暗い灰"
+#: ../src/ui.c:392
+#, fuzzy
+msgid "Align middle"
+msgstr "左寄せ"
 
-#: ../src/mygal/color-palette.c:592
-msgid "red"
-msgstr ""
+#: ../src/ui.c:394
+msgid "Align objects to vertical centers"
+msgstr "オブジェクトを垂直方向の中心に配置します"
 
-#: ../src/mygal/color-palette.c:593
-msgid "orange"
-msgstr "橙"
+#: ../src/ui.c:399
+#, fuzzy
+msgid "Align bottom"
+msgstr "下寄せ"
 
-#: ../src/mygal/color-palette.c:594
-msgid "lime"
-msgstr "ã\83©ã\82¤ã\83 "
+#: ../src/ui.c:401
+msgid "Align objects to bottom edges"
+msgstr "ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92ä¸\8b端ã\81«é\85\8dç½®ã\81\97ã\81¾ã\81\99"
 
-#: ../src/mygal/color-palette.c:595
-msgid "dull green"
-msgstr "ã\81\8fã\81\99ã\82\93ã\81 ç·\91"
+#: ../src/ui.c:408
+msgid "Center objects to horizontal label center"
+msgstr "ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92ã\83©ã\83\99ã\83«ã\81®ä¸­å¿\83ã\81«æ°´å¹³ç§»å\8b\95ã\81\97ã\81¾ã\81\99"
 
-#: ../src/mygal/color-palette.c:596
-msgid "dull blue #2"
-msgstr "ã\81\8fã\81\99ã\82\93ã\81 é\9d\92 #2"
+#: ../src/ui.c:415
+msgid "Center objects to vertical label center"
+msgstr "ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92ã\83©ã\83\99ã\83«ã\81®ä¸­å¿\83ã\81«å\9e\82ç\9b´ç§»å\8b\95ã\81\97ã\81¾ã\81\99"
 
-#: ../src/mygal/color-palette.c:597
-msgid "sky blue #2"
-msgstr "スカイブルー #2"
+#: ../src/ui.c:422
+msgid "Edit merge properties"
+msgstr "結合したプロパティを編集します"
 
-#: ../src/mygal/color-palette.c:598 ../src/mygal/color-palette.c:637
-msgid "purple"
-msgstr "ç´«"
+#: ../src/ui.c:429
+msgid "Contents"
+msgstr "ç\9b®æ¬¡"
 
-#: ../src/mygal/color-palette.c:599
-msgid "gray"
-msgstr ""
+#: ../src/ui.c:431
+msgid "Open glabels manual"
+msgstr "gLabels のマニュアルを開きます"
 
-#: ../src/mygal/color-palette.c:602 ../src/mygal/color-palette.c:634
-msgid "magenta"
-msgstr "マゼンタ"
+#: ../src/ui.c:436
+msgid "About..."
+msgstr "情報..."
 
-#: ../src/mygal/color-palette.c:603
-msgid "bright orange"
-msgstr "明るい橙"
+#: ../src/ui.c:438 ../src/ui-commands.c:1198
+msgid "About glabels"
+msgstr "gLabels について"
 
-#: ../src/mygal/color-palette.c:604 ../src/mygal/color-palette.c:635
-msgid "yellow"
-msgstr ""
+#: ../src/ui.c:448
+msgid "Property toolbar"
+msgstr "プロパティのツールバー"
 
-#: ../src/mygal/color-palette.c:605
-msgid "green"
-msgstr ""
+#: ../src/ui.c:450
+msgid "Change the visibility of the property toolbar in the current window"
+msgstr "プロパティ・ツールバーの表示/非表示を変更します"
 
-#: ../src/mygal/color-palette.c:606 ../src/mygal/color-palette.c:636
-msgid "cyan"
-msgstr "ã\82·ã\82¢ã\83³"
+#: ../src/ui.c:456
+msgid "Grid"
+msgstr "ã\82°ã\83ªã\83\83ã\83\89"
 
-#: ../src/mygal/color-palette.c:607
-msgid "bright blue"
-msgstr "明るい青"
+#: ../src/ui.c:458
+msgid "Change the visibility of the grid in the current window"
+msgstr "ラベルのグリッド (格子線) の表示/非表示を変更します"
 
-#: ../src/mygal/color-palette.c:608 ../src/mygal/color-palette.c:625
-msgid "red purple"
-msgstr "赤紫"
+#: ../src/ui.c:464
+msgid "Markup"
+msgstr "マークアップ"
 
-#: ../src/mygal/color-palette.c:609
-msgid "light grey"
-msgstr "淡い灰"
+#: ../src/ui.c:466
+msgid "Change the visibility of markup lines in the current window"
+msgstr "ラベルの外枠線の表示/非表示を変更します"
 
-#: ../src/mygal/color-palette.c:612 ../src/mygal/color-palette.c:629
-msgid "pink"
-msgstr "ã\83\94ã\83³ã\82¯"
+#: ../src/ui.c:477
+msgid "Main toolbar"
+msgstr "ã\83¡ã\82¤ã\83³ã\83»ã\83\84ã\83¼ã\83«ã\83\90ã\83¼"
 
-#: ../src/mygal/color-palette.c:613
-msgid "light orange"
-msgstr "æ·¡ã\81\84æ©\99"
+#: ../src/ui.c:479
+msgid "Change the visibility of the main toolbar in the current window"
+msgstr "ã\83¡ã\82¤ã\83³ã\83»ã\83\84ã\83¼ã\83«ã\83\90ã\83¼ã\81®è¡¨ç¤º/é\9d\9e表示ã\82\92å¤\89æ\9b´ã\81\97ã\81¾ã\81\99"
 
-#: ../src/mygal/color-palette.c:614 ../src/mygal/color-palette.c:626
-msgid "light yellow"
-msgstr "淡い黄"
+#: ../src/ui.c:485
+msgid "Drawing toolbar"
+msgstr "ツールバーの表示方法"
 
-#: ../src/mygal/color-palette.c:615
-msgid "light green"
-msgstr "淡い緑"
+#: ../src/ui.c:487
+msgid "Change the visibility of the drawing toolbar in the current window"
+msgstr "ツールバーの表示/非表示を変更します"
 
-#: ../src/mygal/color-palette.c:616
-msgid "light cyan"
-msgstr "淡いシアン"
+#: ../src/ui-commands.c:1135
+msgid "Glabels includes contributions from:"
+msgstr "gLabels の開発に貢献してくれた方々:"
 
-#: ../src/mygal/color-palette.c:617 ../src/mygal/color-palette.c:627
-msgid "light blue"
-msgstr "淡い青"
+#: ../src/ui-commands.c:1144
+msgid "See the file AUTHORS for additional credits,"
+msgstr "補足のクレジットについては AUTHORS ファイルをご覧になるか、"
 
-#: ../src/mygal/color-palette.c:618 ../src/mygal/color-palette.c:631
-msgid "light purple"
-msgstr "淡い紫"
+#: ../src/ui-commands.c:1145
+#, fuzzy
+msgid "or visit http://glabels.org/"
+msgstr "または http://glabels.sourceforge.net/ を訪れてみてください。"
 
-#: ../src/mygal/color-palette.c:619
-msgid "white"
-msgstr ""
+#: ../src/ui-commands.c:1162
+msgid "A label and business card creation program.\n"
+msgstr "ラベルと名刺をデザインするプログラムです。\n"
 
-#: ../src/mygal/color-palette.c:624
-msgid "purplish blue"
-msgstr "紫みの青"
+#: ../src/ui-commands.c:1166
+msgid "translator-credits"
+msgstr ""
+"相花 毅 <takeshi.aihana@gmail.com>\n"
+"日本GNOMEユーザー会 http://www.gnome.gr.jp"
 
-#: ../src/mygal/color-palette.c:628
-msgid "dark purple"
-msgstr "暗い紫"
+#: ../src/ui-commands.c:1169
+#, fuzzy
+msgid ""
+"gLabels is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"gLabels is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"gLabels はフリーソフトウェアです。すなわち、フリーソフトウェア財団が定める\n"
+"GNU 一般公衆使用許諾契約書の第2版もしくは (オプションで) それ以降のバージョン"
+"の\n"
+"下で複製や改編、再配布が認められています。\n"
+"\n"
+"このプログラムが役に立つことを望む中で配布されていますが、完全無保証です。\n"
+"販売目的または商用目的の保証はありません。\n"
+"詳細については GNU 一般公衆使用許諾契約書をご覧ください。\n"
 
-#: ../src/mygal/color-palette.c:630
-msgid "sky blue"
-msgstr "スカイブルー"
+#: ../src/warning-handler.c:69
+msgid "gLabels Error!"
+msgstr "gLabels のエラーです!"
 
-#: ../src/critical-error-handler.c:73
-msgid "gLabels Fatal Error!"
-msgstr "gLabels で致命的なエラーが発生しました!"
+#: ../src/window.c:281
+msgid "(none) - gLabels"
+msgstr "(なし) - gLabels"
 
-#: ../src/warning-handler.c:73
-msgid "gLabels Error!"
-msgstr "gLabels のエラーです!"
+#: ../src/window.c:482
+msgid "(modified)"
+msgstr "(変更済み)"
 
 #. Create and append an "Other" entry.
-#: ../libglabels/db.c:118
+#. Translators: "Other" here means other page size.  Meaning a page size
+#. * other than the standard ones that libglabels knows about such as
+#. * "letter", "A4", etc.
+#: ../libglabels/lgl-db.c:267
 msgid "Other"
 msgstr "その他"
 
 #. Create and append a "User defined" entry.
-#: ../libglabels/db.c:131
+#: ../libglabels/lgl-db.c:276
 msgid "User defined"
 msgstr "指定する"
 
-#: ../libglabels/db.c:482
+#: ../libglabels/lgl-db.c:663
 msgid ""
 "Unable to locate paper size definitions.  Libglabels may not be installed "
 "correctly!"
@@ -1472,7 +1770,7 @@ msgstr ""
 "用紙の大きさを定義したファイルが見つかりませんでした (libglabels が正しくイン"
 "ストールされていない可能性があります)"
 
-#: ../libglabels/db.c:875
+#: ../libglabels/lgl-db.c:1062
 msgid ""
 "Unable to locate category definitions.  Libglabels may not be installed "
 "correctly!"
@@ -1480,7 +1778,7 @@ msgstr ""
 "カテゴリを定義したファイルが見つかりませんでした (libglabels が正しくインス"
 "トールされていない可能性があります)"
 
-#: ../libglabels/db.c:1461
+#: ../libglabels/lgl-db.c:1989
 msgid ""
 "Unable to locate any template files.  Libglabels may not be installed "
 "correctly!"
@@ -1488,416 +1786,475 @@ msgstr ""
 "テンプレート・ファイルが見つかりませんでした (libglabels が正しくインストール"
 "されていない可能性があります)"
 
-#: ../libglabels/db.c:1538
-#, c-format
-msgid "Generic %s full page template"
+#: ../libglabels/lgl-db.c:2056
+#, fuzzy, c-format
+msgid "%s full page label"
 msgstr "一般的な %s の全ページ・テンプレート"
 
-#: ../libglabels/xml-template.c:227
-msgid "Missing name or brand/part attributes."
-msgstr "名前またはブランド/パーツ番号といった属性がありません。"
+#.
+#. * Translators: 1st %d = number of labels across a page,
+#. *              2nd %d = number of labels down a page,
+#. *              3rd %d = total number of labels on a page (sheet).
+#.
+#: ../libglabels/lgl-template.c:673
+#, fuzzy, c-format
+msgid "%d × %d (%d per sheet)"
+msgstr "%d /シート"
 
-#. This should always be an id, but just in case a name
-#. slips by!
-#: ../libglabels/xml-template.c:244
+#. Translators: %d is the total number of labels on a page (sheet).
+#: ../libglabels/lgl-template.c:678
 #, c-format
-msgid "Unknown page size id \"%s\", trying as name"
-msgstr "ページ・サイズの ID \"%s\" が不明なので名前として扱います。"
+msgid "%d per sheet"
+msgstr "%d /シート"
 
-#: ../libglabels/xml-template.c:256
-#, c-format
-msgid "Unknown page size id or name \"%s\""
-msgstr "ページ・サイズの ID または名前 \"%s\" が不明です。"
+#: ../libglabels/lgl-template.c:759 ../libglabels/lgl-template.c:767
+#: ../libglabels/lgl-template.c:779 ../libglabels/lgl-template.c:787
+#, fuzzy
+msgid "diameter"
+msgstr "%s %s 倍率"
 
-#: ../libglabels/xml-template.c:627
-msgid ""
-"Missing required \"brand\" or \"part\" attribute, trying deprecated name."
-msgstr ""
-"必須となる \"ブランド名\" や \"パート番号\" といった属性が見つかりません (廃"
-"止した名前を試してみて下さい)"
+#. The ids are identical to the absolute length units supported in
+#. the CSS2 Specification (Section 4.3.2)
+#. This table must be sorted exactly as the enumerations in lglUnits
+#. [LGL_UNITS_POINT]
+#: ../libglabels/lgl-units.c:65 ../data/ui/object-editor.ui.h:42
+#: ../data/ui/prefs-dialog.ui.h:22
+msgid "points"
+msgstr "ポイント"
 
-#: ../libglabels/xml-template.c:637
-msgid "Name attribute also missing."
-msgstr "名前も見つかりません"
+#. [LGL_UNITS_INCH]
+#: ../libglabels/lgl-units.c:66 ../data/ui/object-editor.ui.h:40
+#: ../data/ui/template-designer.ui.h:66
+msgid "inches"
+msgstr "[インチ]"
 
-#: ../data/glade/merge-properties-dialog.glade.h:1
-msgid "<b>Record selection/preview</b>"
-msgstr "<b>レコードの選択/プレビュー</b>"
+#. [LGL_UNITS_MM]
+#: ../libglabels/lgl-units.c:67
+msgid "mm"
+msgstr "[ミリ]"
 
-#: ../data/glade/merge-properties-dialog.glade.h:2
-msgid "<b>Source</b>"
-msgstr "<b>ソース</b>"
+#. [LGL_UNITS_CM]
+#: ../libglabels/lgl-units.c:68
+msgid "cm"
+msgstr ""
+
+#. [LGL_UNITS_PICA]
+#: ../libglabels/lgl-units.c:69
+msgid "picas"
+msgstr ""
 
-#: ../data/glade/merge-properties-dialog.glade.h:3
+#.
+#. * Local Variables:       -- emacs
+#. * mode: C                -- emacs
+#. * c-basic-offset: 8      -- emacs
+#. * tab-width: 8           -- emacs
+#. * indent-tabs-mode: nil  -- emacs
+#. * End:                   -- emacs
+#.
+#: ../data/ui/merge-properties-dialog.ui.h:1
 msgid "Format:"
 msgstr "書式:"
 
-#: ../data/glade/merge-properties-dialog.glade.h:4
+#: ../data/ui/merge-properties-dialog.ui.h:2
 msgid "Location:"
 msgstr "場所:"
 
-#: ../data/glade/merge-properties-dialog.glade.h:5
+#: ../data/ui/merge-properties-dialog.ui.h:3
+#, fuzzy
+msgid "Record selection/preview"
+msgstr "<b>レコードの選択/プレビュー</b>"
+
+#: ../data/ui/merge-properties-dialog.ui.h:4
 msgid "Select all"
-msgstr "全て選択"
+msgstr "すべて選択"
+
+#: ../data/ui/merge-properties-dialog.ui.h:5
+#, fuzzy
+msgid "Source"
+msgstr "<b>ソース</b>"
 
-#: ../data/glade/merge-properties-dialog.glade.h:6
+#: ../data/ui/merge-properties-dialog.ui.h:6
 msgid "Unselect all"
-msgstr "て選択解除"
+msgstr "すべて選択解除"
 
-#: ../data/glade/merge-properties-dialog.glade.h:7
-#: ../data/glade/object-editor.glade.h:39
-msgid "dialog1"
-msgstr "dialog1"
+#: ../data/ui/media-select.ui.h:1
+msgid "Brand:"
+msgstr "ブランド:"
+
+#: ../data/ui/media-select.ui.h:2
+msgid "Category:"
+msgstr "カテゴリ:"
 
-#: ../data/glade/new-label-dialog.glade.h:1
-msgid "<b>Label orientation</b>"
-msgstr "<b>ラベルの向き</b>"
+#: ../data/ui/media-select.ui.h:3
+#, fuzzy
+msgid "Custom"
+msgstr "カスタム"
 
-#: ../data/glade/new-label-dialog.glade.h:2
-msgid "<b>Media type</b>"
-msgstr "<b>メディアの種類</b>"
+#: ../data/ui/media-select.ui.h:4 ../data/ui/new-label-dialog.ui.h:6
+#: ../data/ui/template-designer.ui.h:46
+msgid "Page size:"
+msgstr "用紙の大きさ:"
 
-#: ../data/glade/object-editor.glade.h:2
-#, no-c-format
-msgid "%"
-msgstr "%"
+#: ../data/ui/media-select.ui.h:5
+msgid "Recent"
+msgstr ""
+
+#: ../data/ui/media-select.ui.h:6
+#, fuzzy
+msgid "Search all"
+msgstr "すべて選択"
+
+#: ../data/ui/new-label-dialog.ui.h:1
+msgid ""
+"Choose label or card product from hundreds of predefined templates or define "
+"your own."
+msgstr ""
+
+#: ../data/ui/new-label-dialog.ui.h:2 ../data/ui/template-designer.ui.h:29
+msgid "Description:"
+msgstr "説明:"
+
+#: ../data/ui/new-label-dialog.ui.h:3
+#, fuzzy
+msgid "Label size:"
+msgstr "用紙の大きさ:"
 
-#: ../data/glade/object-editor.glade.h:3
-msgid "00000000000 00000"
-msgstr "00000000000 00000"
+#: ../data/ui/new-label-dialog.ui.h:4
+#, fuzzy
+msgid "Layout:"
+msgstr "レイアウト"
+
+#: ../data/ui/new-label-dialog.ui.h:5
+#, fuzzy
+msgid "Normal"
+msgstr "書式:"
+
+#: ../data/ui/new-label-dialog.ui.h:7 ../data/ui/template-designer.ui.h:47
+msgid "Part #:"
+msgstr "パーツ番号"
+
+#: ../data/ui/new-label-dialog.ui.h:8
+msgid "Please review and confirm your selection."
+msgstr ""
+
+#: ../data/ui/new-label-dialog.ui.h:9
+#, fuzzy
+msgid "Rotated"
+msgstr "回転させる"
+
+#: ../data/ui/new-label-dialog.ui.h:10
+msgid "Select orientation of label content."
+msgstr ""
+
+#: ../data/ui/new-label-dialog.ui.h:11
+msgid "Similar products:"
+msgstr ""
+
+#: ../data/ui/new-label-dialog.ui.h:12
+msgid "Vendor:"
+msgstr ""
 
-#: ../data/glade/object-editor.glade.h:4
-msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
+#: ../data/ui/object-editor.ui.h:1
+msgid " "
 msgstr ""
-"<span weight=\"bold\" size=\"larger\">Xxx オブジェクトのプロパティ</span>"
 
-#: ../data/glade/object-editor.glade.h:5 ../data/glade/prefs-dialog.glade.h:7
+#: ../data/ui/object-editor.ui.h:3
+#, no-c-format
+msgid "%"
+msgstr "%"
+
+#: ../data/ui/object-editor.ui.h:4 ../data/ui/prefs-dialog.ui.h:2
 msgid "Alignment:"
 msgstr "位置:"
 
-#: ../data/glade/object-editor.glade.h:6
+#: ../data/ui/object-editor.ui.h:5
 msgid "Allow merge to automatically shrink text"
 msgstr "自動的に文字を小さくして結合できるようにする"
 
-#: ../data/glade/object-editor.glade.h:7
+#: ../data/ui/object-editor.ui.h:6
 msgid "Angle:"
 msgstr "角度:"
 
-#: ../data/glade/object-editor.glade.h:8
+#: ../data/ui/object-editor.ui.h:7
+#, fuzzy
+msgid "Backend:"
+msgstr "ブランド:"
+
+#: ../data/ui/object-editor.ui.h:8
 msgid "Checksum"
 msgstr "チェックサム"
 
-#: ../data/glade/object-editor.glade.h:9 ../data/glade/prefs-dialog.glade.h:8
+#: ../data/ui/object-editor.ui.h:9 ../data/ui/prefs-dialog.ui.h:3
 msgid "Color:"
 msgstr "色:"
 
-#: ../data/glade/object-editor.glade.h:11
+#: ../data/ui/object-editor.ui.h:11
 msgid "Enable shadow"
 msgstr "影を付ける"
 
-#: ../data/glade/object-editor.glade.h:12
+#: ../data/ui/object-editor.ui.h:12
 msgid "Family:"
 msgstr "ファミリ:"
 
-#: ../data/glade/object-editor.glade.h:13
+#: ../data/ui/object-editor.ui.h:13
 msgid "File:"
 msgstr "ファイル:"
 
-#: ../data/glade/object-editor.glade.h:14
+#: ../data/ui/object-editor.ui.h:14 ../data/ui/prefs-dialog.ui.h:5
 msgid "Fill"
 msgstr "塗りつぶし"
 
-#: ../data/glade/object-editor.glade.h:15
-#: ../data/glade/template-designer.glade.h:30
+#: ../data/ui/object-editor.ui.h:15 ../data/ui/template-designer.ui.h:33
 msgid "Height:"
 msgstr "高さ:"
 
-#: ../data/glade/object-editor.glade.h:17
-msgid "Insert merge field"
-msgstr "結合フィールドの挿入"
-
-#: ../data/glade/object-editor.glade.h:18
+#: ../data/ui/object-editor.ui.h:17
 msgid "Key:"
 msgstr "キー:"
 
-#: ../data/glade/object-editor.glade.h:19
+#: ../data/ui/object-editor.ui.h:18
 msgid "Length:"
 msgstr "長さ:"
 
-#: ../data/glade/object-editor.glade.h:21
-#: ../data/glade/prefs-dialog.glade.h:12
+#: ../data/ui/object-editor.ui.h:20 ../data/ui/prefs-dialog.ui.h:10
 msgid "Line Spacing:"
 msgstr "行間:"
 
-#: ../data/glade/object-editor.glade.h:22
+#: ../data/ui/object-editor.ui.h:21
 msgid "Literal:"
 msgstr "リテラル:"
 
-#: ../data/glade/object-editor.glade.h:23
+#: ../data/ui/object-editor.ui.h:22
 msgid "Opacity:"
 msgstr "透明度:"
 
-#: ../data/glade/object-editor.glade.h:24
+#: ../data/ui/object-editor.ui.h:23
 msgid "Position"
 msgstr "位置"
 
-#: ../data/glade/object-editor.glade.h:25
+#: ../data/ui/object-editor.ui.h:24
 msgid "Reset image size"
 msgstr "画像サイズのリセット"
 
-#: ../data/glade/object-editor.glade.h:26
-msgid "Select A File"
-msgstr "ファイルの選択"
-
-#: ../data/glade/object-editor.glade.h:27
+#: ../data/ui/object-editor.ui.h:25
 msgid "Shadow"
 msgstr "影"
 
-#: ../data/glade/object-editor.glade.h:28
+#: ../data/ui/object-editor.ui.h:26
 msgid "Size"
 msgstr "大きさ"
 
-#: ../data/glade/object-editor.glade.h:29
+#: ../data/ui/object-editor.ui.h:27
 msgid "Size:"
 msgstr "大きさ:"
 
-#: ../data/glade/object-editor.glade.h:30
+#: ../data/ui/object-editor.ui.h:28
 msgid "Style"
 msgstr "スタイル"
 
-#: ../data/glade/object-editor.glade.h:31
+#: ../data/ui/object-editor.ui.h:29
 msgid "Style:"
 msgstr "スタイル:"
 
-#: ../data/glade/object-editor.glade.h:33
-#: ../data/glade/prefs-dialog.glade.h:20
-#: ../data/glade/template-designer.glade.h:61
+#: ../data/ui/object-editor.ui.h:31 ../data/ui/prefs-dialog.ui.h:20
+#: ../data/ui/template-designer.ui.h:65
 msgid "Width:"
 msgstr "幅:"
 
-#: ../data/glade/object-editor.glade.h:34
+#: ../data/ui/object-editor.ui.h:32
 msgid "X Offset:"
 msgstr "横方向のズレ:"
 
-#: ../data/glade/object-editor.glade.h:35
+#: ../data/ui/object-editor.ui.h:33
 msgid "X:"
 msgstr "X:"
 
-#: ../data/glade/object-editor.glade.h:36
+#: ../data/ui/object-editor.ui.h:34
 msgid "Y Offset:"
 msgstr "縦方向のズレ:"
 
-#: ../data/glade/object-editor.glade.h:37
+#: ../data/ui/object-editor.ui.h:35
 msgid "Y:"
 msgstr "Y:"
 
-#: ../data/glade/object-editor.glade.h:38
+#: ../data/ui/object-editor.ui.h:36
 msgid "degrees"
 msgstr "度"
 
-#: ../data/glade/object-editor.glade.h:40
+#: ../data/ui/object-editor.ui.h:37
+msgid "dialog1"
+msgstr "dialog1"
+
+#: ../data/ui/object-editor.ui.h:38
 msgid "digits:"
 msgstr "桁数:"
 
-#: ../data/glade/object-editor.glade.h:41
+#: ../data/ui/object-editor.ui.h:39
 msgid "format:"
 msgstr "書式:"
 
-#: ../data/glade/prefs-dialog.glade.h:1
+#: ../data/ui/object-editor.ui.h:41
+#, fuzzy
+msgid "key:"
+msgstr "キー:"
+
+#: ../data/ui/prefs-dialog.ui.h:1
 msgid "   "
 msgstr "   "
 
-#: ../data/glade/prefs-dialog.glade.h:2
-msgid "<span weight=\"bold\">Default page size</span>"
-msgstr "<span weight=\"bold\">ページ・サイズの初期値</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:3
-msgid "<span weight=\"bold\">Fill</span>"
-msgstr "<span weight=\"bold\">塗りつぶし</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:4
-msgid "<span weight=\"bold\">Line</span>"
-msgstr "<span weight=\"bold\">線</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:5
-msgid "<span weight=\"bold\">Text</span>"
-msgstr "<span weight=\"bold\">文字</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:6
-msgid "<span weight=\"bold\">Units</span>"
-msgstr "<span weight=\"bold\">単位</span>"
+#: ../data/ui/prefs-dialog.ui.h:4
+#, fuzzy
+msgid "Default page size"
+msgstr "画像サイズのリセット"
 
-#: ../data/glade/prefs-dialog.glade.h:9
+#: ../data/ui/prefs-dialog.ui.h:6
 msgid "Font:"
 msgstr "フォント:"
 
-#: ../data/glade/prefs-dialog.glade.h:10
+#: ../data/ui/prefs-dialog.ui.h:7
 msgid "ISO A4"
 msgstr "ISO A4 版"
 
-#: ../data/glade/prefs-dialog.glade.h:11
+#: ../data/ui/prefs-dialog.ui.h:8
 msgid "Inches"
 msgstr "インチ"
 
-#: ../data/glade/prefs-dialog.glade.h:13
+#: ../data/ui/prefs-dialog.ui.h:11
 msgid "Locale"
-msgstr "ã\83­ã\83¼ã\82±ル"
+msgstr "ã\83­ã\82±ã\83¼ル"
 
-#: ../data/glade/prefs-dialog.glade.h:14
+#: ../data/ui/prefs-dialog.ui.h:12
 msgid "Millimeters"
 msgstr "ミリ"
 
-#: ../data/glade/prefs-dialog.glade.h:15
+#: ../data/ui/prefs-dialog.ui.h:13
 msgid "Object defaults"
 msgstr "オブジェクトのデフォルト"
 
-#: ../data/glade/prefs-dialog.glade.h:16
+#: ../data/ui/prefs-dialog.ui.h:14
 msgid "Points"
 msgstr "ポイント"
 
-#: ../data/glade/prefs-dialog.glade.h:17
+#: ../data/ui/prefs-dialog.ui.h:15
 msgid "Select default properties for new objects."
-msgstr "新規に作成するオブジェクトのデフォルト値を選択してさい。"
+msgstr "新規に作成するオブジェクトのデフォルト値を選択してください。"
 
-#: ../data/glade/prefs-dialog.glade.h:18
+#: ../data/ui/prefs-dialog.ui.h:16
 msgid "Select locale specific behavior."
-msgstr "利用する言語 (ロケール) に依存するパラメータを選択してさい。"
+msgstr "利用する言語 (ロケール) に依存するパラメータを選択してください。"
 
-#. Most popular (at top of list)
-#: ../data/glade/prefs-dialog.glade.h:19
-#: ../data/templates/paper-sizes.xml.h:29
+#: ../data/ui/prefs-dialog.ui.h:18 ../templates/paper-sizes.xml.h:35
 msgid "US Letter"
 msgstr "US レター"
 
-#: ../data/glade/print-custom-widget.glade.h:1
-msgid "<b>Options</b>"
-msgstr "<b>オプション</b>"
-
-#: ../data/glade/print-custom-widget.glade.h:2
-msgid "<b>Print control (Merge)</b>"
-msgstr "<b>印刷の制御 (結合)</b>"
-
-#: ../data/glade/print-custom-widget.glade.h:3
-msgid "<b>Print control (Simple)</b>"
-msgstr "<b>印刷の制御 (簡易)</b>"
+#: ../data/ui/prefs-dialog.ui.h:19
+#, fuzzy
+msgid "Units"
+msgstr "タイトルなし"
 
-#: ../data/glade/property-bar.glade.h:1
+#: ../data/ui/property-bar.ui.h:1
 msgid "Bold"
 msgstr "太字"
 
-#: ../data/glade/property-bar.glade.h:2
+#: ../data/ui/property-bar.ui.h:2
 msgid "Center align"
 msgstr "中央寄せ"
 
-#: ../data/glade/property-bar.glade.h:4
-msgid "Font family"
-msgstr "フォント名"
-
-#: ../data/glade/property-bar.glade.h:5
-msgid "Font size"
-msgstr "フォントの大きさ"
-
-#: ../data/glade/property-bar.glade.h:6
-msgid "Italic"
-msgstr "イタリック"
-
-#: ../data/glade/property-bar.glade.h:7
+#: ../data/ui/property-bar.ui.h:7
 msgid "Left align"
 msgstr "左寄せ"
 
-#: ../data/glade/property-bar.glade.h:9
-msgid "Line width"
-msgstr "線幅"
-
-#: ../data/glade/property-bar.glade.h:10
+#: ../data/ui/property-bar.ui.h:10
 msgid "Right align"
 msgstr "右寄せ"
 
-#: ../data/glade/property-bar.glade.h:11
-msgid "Text Color"
-msgstr "文字の色"
-
-#: ../data/glade/property-bar.glade.h:12
-msgid "Text color"
-msgstr "文字の色"
-
-#: ../data/glade/template-designer.glade.h:1
+#: ../data/ui/template-designer.ui.h:1
 msgid "(e.g., \"Mailing Labels,\" \"Business Cards,\" ...)"
 msgstr "(例: \"封筒のラベル\", \"名刺\", ...)"
 
-#: ../data/glade/template-designer.glade.h:2
+#: ../data/ui/template-designer.ui.h:2
 msgid "(e.g., 8163A)"
 msgstr "(例: 8163A)"
 
-#: ../data/glade/template-designer.glade.h:3
+#: ../data/ui/template-designer.ui.h:3
 msgid "(e.g., Avery, Acme, ...)"
 msgstr "(例: Avery, Acme, ...)"
 
-#: ../data/glade/template-designer.glade.h:4
+#: ../data/ui/template-designer.ui.h:4
 msgid "1. Outer radius:"
 msgstr "1. 外径:"
 
-#: ../data/glade/template-designer.glade.h:5
+#: ../data/ui/template-designer.ui.h:5
 msgid "1. Radius:"
 msgstr "1. 半径:"
 
-#: ../data/glade/template-designer.glade.h:6
+#: ../data/ui/template-designer.ui.h:6
 msgid "1. Width:"
 msgstr "1. 幅:"
 
-#: ../data/glade/template-designer.glade.h:7
+#: ../data/ui/template-designer.ui.h:7
 msgid "2. Height:"
 msgstr "2. 高さ:"
 
-#: ../data/glade/template-designer.glade.h:8
+#: ../data/ui/template-designer.ui.h:8
 msgid "2. Inner radius:"
 msgstr "2. インナーの半径:"
 
-#: ../data/glade/template-designer.glade.h:9
+#: ../data/ui/template-designer.ui.h:9
 msgid "2. Waste (overprint allowed):"
 msgstr "2. 余分な部分 (重ね刷り可):"
 
-#: ../data/glade/template-designer.glade.h:10
+#: ../data/ui/template-designer.ui.h:10
 msgid "3. Clipping width:"
 msgstr "3. クリッピングの幅:"
 
-#: ../data/glade/template-designer.glade.h:11
+#: ../data/ui/template-designer.ui.h:11
 msgid "3. Margin"
 msgstr "3. 余白"
 
-#: ../data/glade/template-designer.glade.h:12
+#: ../data/ui/template-designer.ui.h:12
 msgid "3. Round (radius of corner):"
 msgstr "3. コーナー (角度):"
 
-#: ../data/glade/template-designer.glade.h:13
+#: ../data/ui/template-designer.ui.h:13
+#, fuzzy
+msgid "3. Waste (overprint allowed):"
+msgstr "2. 余分な部分 (重ね刷り可):"
+
+#: ../data/ui/template-designer.ui.h:14
 msgid "4. Clipping height:"
 msgstr "4. クリッピングの高さ:"
 
-#: ../data/glade/template-designer.glade.h:14
+#: ../data/ui/template-designer.ui.h:15
 msgid "4. Horiz. waste (overprint allowed):"
 msgstr "4. 水平方向の余分な部分 (重ね刷り可):"
 
-#: ../data/glade/template-designer.glade.h:15
+#: ../data/ui/template-designer.ui.h:16
+#, fuzzy
+msgid "4. Margin"
+msgstr "3. 余白"
+
+#: ../data/ui/template-designer.ui.h:17
 msgid "5. Vert. waste (overprint allowed):"
 msgstr "5. 垂直方向の余分な部分 (重ね刷り可):"
 
-#: ../data/glade/template-designer.glade.h:16
+#: ../data/ui/template-designer.ui.h:18
 msgid "5. Waste (overprint allowed):"
 msgstr "5. 余分な部分 (重ね刷り可):"
 
-#: ../data/glade/template-designer.glade.h:17
+#: ../data/ui/template-designer.ui.h:19
 msgid "6. Margin"
 msgstr "6. 余白"
 
-#: ../data/glade/template-designer.glade.h:18
+#: ../data/ui/template-designer.ui.h:20
 msgid "Brand/Manufacturer:"
 msgstr "ブランド/製造元:"
 
-#: ../data/glade/template-designer.glade.h:19
+#: ../data/ui/template-designer.ui.h:21
 msgid "CD/DVD (including credit card CDs)"
 msgstr "CD/DVD の形 (含むクレジット・カード CD)"
 
-#: ../data/glade/template-designer.glade.h:20
+#: ../data/ui/template-designer.ui.h:22
 msgid ""
 "Congratulations!\n"
 "\n"
@@ -1907,31 +2264,32 @@ msgid ""
 "Otherwise, you may click \"Cancel\" to abandon your design\n"
 "or \"Back\" to continue editing this design."
 msgstr ""
-"おめでとうございます\n"
+"おめでとうございます!\n"
 "\n"
 "gLabels のテンプレートが完成しました。\n"
-"このデザインを採用し保存する場合は、[適用] をクリックしてさい。\n"
+"このデザインを採用し保存する場合は、[適用] をクリックしてください。\n"
 "\n"
 "[キャンセル] をクリックするとデザインを破棄することができます。\n"
 "または [戻る] をクリックするとやり直すことが可能です。"
 
-#: ../data/glade/template-designer.glade.h:27
-msgid "Description:"
-msgstr "説明:"
-
-#: ../data/glade/template-designer.glade.h:28
+#: ../data/ui/template-designer.ui.h:30
 msgid "Distance from left edge (x0):"
 msgstr "左上隅からの距離 (x0):"
 
-#: ../data/glade/template-designer.glade.h:29
+#: ../data/ui/template-designer.ui.h:31
 msgid "Distance from top edge (y0):"
 msgstr "左上隅からの距離 (y0):"
 
-#: ../data/glade/template-designer.glade.h:31
+#: ../data/ui/template-designer.ui.h:32
+#, fuzzy
+msgid "Elliptical"
+msgstr "垂直方向にフリップする"
+
+#: ../data/ui/template-designer.ui.h:34
 msgid "Horizontal pitch (dx):"
 msgstr "水平方向のピッチ (dx):"
 
-#: ../data/glade/template-designer.glade.h:32
+#: ../data/ui/template-designer.ui.h:35
 msgid ""
 "How many layouts will your template contain? \n"
 "\n"
@@ -1939,7 +2297,7 @@ msgid ""
 "Most templates only need one layout, as in the first example.\n"
 "The second example illustrates when two layouts are needed."
 msgstr ""
-"何個のラベルをテンプレートの中に作成しますか\n"
+"何個のラベルをテンプレートの中に作成しますか?\n"
 "\n"
 "レイアウトはラベルまたはカードの集まりで、それらを格子状に配置することができ"
 "ます。\n"
@@ -1947,78 +2305,76 @@ msgstr ""
 "す。\n"
 "二番目のサンプルでは、二つのレイアウトが必要な場合を図にしたものです。"
 
-#: ../data/glade/template-designer.glade.h:37
+#: ../data/ui/template-designer.ui.h:40
 msgid "Layout #1"
 msgstr "レイアウト #1:"
 
-#: ../data/glade/template-designer.glade.h:38
+#: ../data/ui/template-designer.ui.h:41
 msgid "Layout #2"
 msgstr "レイアウト #2:"
 
-#: ../data/glade/template-designer.glade.h:39
+#: ../data/ui/template-designer.ui.h:42
+msgid ""
+"Note: if more than 2 layouts are required, the template must be edited "
+"manually."
+msgstr ""
+
+#: ../data/ui/template-designer.ui.h:43
 msgid "Number across (nx):"
 msgstr "横方向の数 (nx):"
 
-#: ../data/glade/template-designer.glade.h:40
+#: ../data/ui/template-designer.ui.h:44
 msgid "Number down (ny):"
 msgstr "縦方向の数 (ny):"
 
-#: ../data/glade/template-designer.glade.h:41
+#: ../data/ui/template-designer.ui.h:45
 msgid "Number of layouts:"
 msgstr "レイアウトの数:"
 
-#: ../data/glade/template-designer.glade.h:42
-#: ../data/glade/wdgt-media-select.glade.h:3
-msgid "Page size:"
-msgstr "用紙の大きさ:"
-
-#: ../data/glade/template-designer.glade.h:43
-msgid "Part #:"
-msgstr "パーツ番号"
-
-#: ../data/glade/template-designer.glade.h:44
+#: ../data/ui/template-designer.ui.h:48
 msgid ""
 "Please enter the following identifying information about the template "
 "stationery."
-msgstr "テンプレートの識別情報を入力してさい:"
+msgstr "テンプレートの識別情報を入力してください:"
 
-#: ../data/glade/template-designer.glade.h:45
+#: ../data/ui/template-designer.ui.h:49
 msgid "Please enter the following layout information."
-msgstr "レイアウト情報を入力してさい。"
+msgstr "レイアウト情報を入力してください。"
 
-#: ../data/glade/template-designer.glade.h:46
+#: ../data/ui/template-designer.ui.h:50
 msgid ""
 "Please enter the following size parameters of a single label in your "
 "template."
-msgstr "テンプレートのラベル単体の大きさをそれぞれ入力してさい。"
+msgstr "テンプレートのラベル単体の大きさをそれぞれ入力してください。"
 
-#: ../data/glade/template-designer.glade.h:47
+#: ../data/ui/template-designer.ui.h:51
 msgid ""
 "Please enter the following size parameters of a single label or card in your "
 "template."
-msgstr "テンプレートのラベルまたはカード単体の大きさをそれぞれ入力して下さい。"
+msgstr ""
+"テンプレートのラベルまたはカード単体の大きさをそれぞれ入力してください。"
 
-#: ../data/glade/template-designer.glade.h:48
+#: ../data/ui/template-designer.ui.h:52
 msgid "Please select the basic shape of the labels or cards."
-msgstr "ラベルまたはカードの基本的な形状を選択してさい。"
+msgstr "ラベルまたはカードの基本的な形状を選択してください。"
 
-#: ../data/glade/template-designer.glade.h:49
+#: ../data/ui/template-designer.ui.h:53
 msgid "Please select the page size of the template stationery."
-msgstr "テンプレート用紙の大きさを選択してさい。"
+msgstr "テンプレート用紙の大きさを選択してください。"
 
-#: ../data/glade/template-designer.glade.h:50
+#: ../data/ui/template-designer.ui.h:54
 msgid "Print test sheet"
 msgstr "用紙のテスト印刷"
 
-#: ../data/glade/template-designer.glade.h:51
+#: ../data/ui/template-designer.ui.h:55
 msgid "Rectangular or square (can have rounded corners)"
 msgstr "長方形または正方形 (コーナーを丸くすることも可)"
 
-#: ../data/glade/template-designer.glade.h:52
+#: ../data/ui/template-designer.ui.h:56
 msgid "Round"
 msgstr "円"
 
-#: ../data/glade/template-designer.glade.h:53
+#: ../data/ui/template-designer.ui.h:57
 msgid ""
 "Templates needing\n"
 "two layouts."
@@ -2026,7 +2382,7 @@ msgstr ""
 "レイアウトが二つ必要な\n"
 "テンプレート"
 
-#: ../data/glade/template-designer.glade.h:55
+#: ../data/ui/template-designer.ui.h:59
 msgid ""
 "Templates needing only\n"
 "one layout."
@@ -2034,11 +2390,11 @@ msgstr ""
 "レイアウトが一つだけで\n"
 "十分なレイアウト"
 
-#: ../data/glade/template-designer.glade.h:57
+#: ../data/ui/template-designer.ui.h:61
 msgid "Vertical pitch (dy):"
 msgstr "垂直方向のピッチ (dy):"
 
-#: ../data/glade/template-designer.glade.h:58
+#: ../data/ui/template-designer.ui.h:62
 msgid ""
 "Welcome to the gLabels Template Designer.\n"
 "\n"
@@ -2049,390 +2405,716 @@ msgstr ""
 "このデザイナでは gLabels で利用する\n"
 "独自テンプレートの作成をお手伝いします。"
 
-#: ../data/glade/template-designer.glade.h:62
-msgid "cd_size_page"
-msgstr "cd_size_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:1
+msgid "Collate"
+msgstr "製本"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:2
+#, fuzzy
+msgid "Copies"
+msgstr "コピー:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:3
+msgid "Copies:"
+msgstr "コピー:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:5
+msgid "Merge Control"
+msgstr ""
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:6
+#, fuzzy
+msgid "Options"
+msgstr "<b>オプション</b>"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:7
+msgid "Sheets:"
+msgstr "用紙:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:8
+msgid "Start on label"
+msgstr "ラベルの開始"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:9
+msgid "from:"
+msgstr "開始:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:10
+msgid "on 1st sheet"
+msgstr "(最初のシート)"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:14
+msgid "to:"
+msgstr "終了:"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:1
+msgid "Controls maximum number of recent files tracked."
+msgstr ""
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:2
+#, fuzzy
+msgid "Controls visibility of drawing toolbar."
+msgstr "ツールバーにツールチップを表示します"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:3
+msgid "Controls visibility of grid."
+msgstr ""
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:4
+#, fuzzy
+msgid "Controls visibility of main toolbar."
+msgstr "メイン・ツールバーにツールチップを表示します"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:5
+#, fuzzy
+msgid "Controls visibility of markup lines."
+msgstr "ラベルの外枠線の表示/非表示を変更します"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:6
+#, fuzzy
+msgid "Controls visibility of property toolbar."
+msgstr "プロパティ・ツールバーにツールチップを表示します"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:7
+#, fuzzy
+msgid "Default fill color."
+msgstr "デフォルト"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:8
+#, fuzzy
+msgid "Default font family."
+msgstr "フォント名"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:9
+msgid "Default font italic flag."
+msgstr ""
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:10
+#, fuzzy
+msgid "Default font size."
+msgstr "画像サイズのリセット"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:11
+#, fuzzy
+msgid "Default font weight."
+msgstr "右に回転する"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:12
+#, fuzzy
+msgid "Default line color."
+msgstr "デフォルト"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:13
+#, fuzzy
+msgid "Default line width."
+msgstr "線幅"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:14
+#, fuzzy
+msgid "Default page size."
+msgstr "画像サイズのリセット"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:15
+#, fuzzy
+msgid "Default text alignment."
+msgstr "画像サイズのリセット"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:16
+#, fuzzy
+msgid "Default text color."
+msgstr "デフォルト"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:17
+msgid "Default text line spacing."
+msgstr ""
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:18
+msgid "Maximum recent files."
+msgstr ""
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:19
+#, fuzzy
+msgid "Recent colors."
+msgstr "最近開いたテンプレート"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:20
+#, fuzzy
+msgid "Recent fonts."
+msgstr "最近開いたテンプレート"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:21
+#, fuzzy
+msgid "Recent templates."
+msgstr "最近開いたテンプレートはありません"
 
-#: ../data/glade/template-designer.glade.h:63
-msgid "finish_page"
-msgstr "finish_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:22
+msgid "Recently created custom colors."
+msgstr ""
 
-#: ../data/glade/template-designer.glade.h:65
-msgid "layout_page"
-msgstr "layout_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:23
+#, fuzzy
+msgid "Recently used font families."
+msgstr "最近開いたテンプレート"
 
-#: ../data/glade/template-designer.glade.h:66
-msgid "name_page"
-msgstr "name_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:24
+#, fuzzy
+msgid "Recently used templates."
+msgstr "最近開いたテンプレートはありません"
 
-#: ../data/glade/template-designer.glade.h:67
-msgid "nlayouts_page"
-msgstr "nlayouts_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:25
+#, fuzzy
+msgid "Show/hide drawing toolbar."
+msgstr "ツールバーにツールチップを表示します"
 
-#: ../data/glade/template-designer.glade.h:68
-msgid "pg_size_page"
-msgstr "pg_size_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:26
+msgid "Show/hide grid."
+msgstr ""
 
-#: ../data/glade/template-designer.glade.h:69
-msgid "rect_size_page"
-msgstr "rect_size_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:27
+#, fuzzy
+msgid "Show/hide main toolbar."
+msgstr "メイン・ツールバーにツールチップを表示します"
 
-#: ../data/glade/template-designer.glade.h:70
-msgid "round_size_page"
-msgstr "round_size_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:28
+msgid "Show/hide markup."
+msgstr ""
 
-#: ../data/glade/template-designer.glade.h:71
-msgid "shape_page"
-msgstr "shape_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:29
+#, fuzzy
+msgid "Show/hide property toolbar."
+msgstr "プロパティ・ツールバーにツールチップを表示します"
 
-#: ../data/glade/template-designer.glade.h:72
-msgid "start_page"
-msgstr "start_page"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:30
+#, fuzzy
+msgid "The default color of text for new text objects (0xRRGGBBAA)."
+msgstr "新規に作成するオブジェクトのデフォルト値を選択してください。"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:31
+#, fuzzy
+msgid "The default fill color new objects (0xRRGGBBAA)."
+msgstr "新規に作成するオブジェクトのデフォルト値を選択してください。"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:32
+#, fuzzy
+msgid "The default font family for new text objects."
+msgstr "新規に作成するオブジェクトのデフォルト値を選択してください。"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:33
+#, fuzzy
+msgid "The default font italic state for new text objects."
+msgstr "新規に作成するオブジェクトのデフォルト値を選択してください。"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:34
+#, fuzzy
+msgid "The default font size for new text objects."
+msgstr "新規に作成するオブジェクトのデフォルト値を選択してください。"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:35
+#, fuzzy
+msgid "The default font weight for new text objects."
+msgstr "新規に作成するオブジェクトのデフォルト値を選択してください。"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:36
+#, fuzzy
+msgid "The default line color new objects (0xRRGGBBAA)."
+msgstr "新規に作成するオブジェクトのデフォルト値を選択してください。"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:37
+#, fuzzy
+msgid "The default line spacing for new text objects."
+msgstr "新規に作成するオブジェクトのデフォルト値を選択してください。"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:38
+#, fuzzy
+msgid "The default line width for new objects."
+msgstr "新規に作成するオブジェクトのデフォルト値を選択してください。"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:39
+#, fuzzy
+msgid "The default text alignment for new text objects."
+msgstr "新規に作成するオブジェクトのデフォルト値を選択してください。"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:40
+msgid "The default unit of measurement."
+msgstr ""
 
-#: ../data/glade/wdgt-media-select.glade.h:1
-msgid "Brand:"
-msgstr "ブランド:"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:41
+msgid "The preferred page size when searching templates."
+msgstr ""
 
-#: ../data/glade/wdgt-media-select.glade.h:2
-msgid "Category:"
-msgstr "カテゴリ:"
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:42
+#, fuzzy
+msgid "Units."
+msgstr "タイトルなし"
 
-#: ../data/glade/wdgt-media-select.glade.h:4
-msgid "Recent templates"
-msgstr "最近開いたテンプレート"
+#: ../data/desktop/glabels-3.0.desktop.in.h:1
+msgid "Create labels, business cards and media covers"
+msgstr "ラベルや名刺、メディアのジャケットをデザインします"
 
-#: ../data/glade/wdgt-media-select.glade.h:5
-msgid "Search all templates"
-msgstr "全てのテンプレートから検索する"
+#: ../data/desktop/glabels-3.0.desktop.in.h:2
+#, fuzzy
+msgid "gLabels Label Designer 3"
+msgstr "gLabels ラベル・デザイナ"
 
-#: ../data/glade/wdgt-rotate-label.glade.h:1
-msgid "Rotate"
-msgstr "回転させる"
+#: ../data/mime/glabels-3.0.xml.in.h:1
+msgid "gLabels Project File"
+msgstr "gLabels のプロジェクト・ファイル"
+
+#. Envelopes
+#: ../templates/paper-sizes.xml.h:2
+msgid "#10 Envelope"
+msgstr ""
 
 #. Other ISO A series sizes
-#: ../data/templates/paper-sizes.xml.h:2
+#: ../templates/paper-sizes.xml.h:4
 msgid "A0"
 msgstr "A0版"
 
-#: ../data/templates/paper-sizes.xml.h:3
+#: ../templates/paper-sizes.xml.h:5
 msgid "A1"
 msgstr "A1版"
 
-#: ../data/templates/paper-sizes.xml.h:4
+#: ../templates/paper-sizes.xml.h:6
 msgid "A10"
 msgstr "A10版"
 
-#: ../data/templates/paper-sizes.xml.h:5
+#: ../templates/paper-sizes.xml.h:7
 msgid "A2"
 msgstr "A2版"
 
-#: ../data/templates/paper-sizes.xml.h:6
+#: ../templates/paper-sizes.xml.h:8
 msgid "A3"
 msgstr "A3版"
 
-#: ../data/templates/paper-sizes.xml.h:7
+#. Most popular (at top of list)
+#: ../templates/paper-sizes.xml.h:10
 msgid "A4"
 msgstr "A4版"
 
-#: ../data/templates/paper-sizes.xml.h:8
+#: ../templates/paper-sizes.xml.h:11
 msgid "A5"
 msgstr "A5版"
 
-#: ../data/templates/paper-sizes.xml.h:9
+#: ../templates/paper-sizes.xml.h:12
 msgid "A6"
 msgstr "A6版"
 
-#: ../data/templates/paper-sizes.xml.h:10
+#: ../templates/paper-sizes.xml.h:13
 msgid "A7"
 msgstr "A7版"
 
-#: ../data/templates/paper-sizes.xml.h:11
+#: ../templates/paper-sizes.xml.h:14
 msgid "A8"
 msgstr "A8版"
 
-#: ../data/templates/paper-sizes.xml.h:12
+#: ../templates/paper-sizes.xml.h:15
 msgid "A9"
 msgstr "A9版"
 
 #. ISO B series sizes
-#: ../data/templates/paper-sizes.xml.h:14
+#: ../templates/paper-sizes.xml.h:17
 msgid "B0"
 msgstr "B0版"
 
-#: ../data/templates/paper-sizes.xml.h:15
+#: ../templates/paper-sizes.xml.h:18
 msgid "B1"
 msgstr "B1版"
 
-#: ../data/templates/paper-sizes.xml.h:16
+#: ../templates/paper-sizes.xml.h:19
 msgid "B10"
 msgstr "B10版"
 
-#: ../data/templates/paper-sizes.xml.h:17
+#: ../templates/paper-sizes.xml.h:20
 msgid "B2"
 msgstr "B2版"
 
-#: ../data/templates/paper-sizes.xml.h:18
+#: ../templates/paper-sizes.xml.h:21
 msgid "B3"
 msgstr "B3版"
 
-#: ../data/templates/paper-sizes.xml.h:19
+#: ../templates/paper-sizes.xml.h:22
 msgid "B4"
 msgstr "B4版"
 
-#: ../data/templates/paper-sizes.xml.h:20
+#: ../templates/paper-sizes.xml.h:23
 msgid "B5"
 msgstr "B5版"
 
-#: ../data/templates/paper-sizes.xml.h:21
+#: ../templates/paper-sizes.xml.h:24
 msgid "B6"
 msgstr "B6版"
 
-#: ../data/templates/paper-sizes.xml.h:22
+#: ../templates/paper-sizes.xml.h:25
 msgid "B7"
 msgstr "B7版"
 
-#: ../data/templates/paper-sizes.xml.h:23
+#: ../templates/paper-sizes.xml.h:26
 msgid "B8"
 msgstr "B8版"
 
-#: ../data/templates/paper-sizes.xml.h:24
+#: ../templates/paper-sizes.xml.h:27
 msgid "B9"
 msgstr "B9版"
 
-#: ../data/templates/paper-sizes.xml.h:25
+#: ../templates/paper-sizes.xml.h:28
+msgid "C5"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:29
+msgid "C6"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:30
+msgid "DL"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:31
+msgid "Monarch Envelope"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:32
 msgid "US Executive"
 msgstr "US エグゼクティブ"
 
 #. Other US paper sizes
-#: ../data/templates/paper-sizes.xml.h:27
+#: ../templates/paper-sizes.xml.h:34
 msgid "US Legal"
 msgstr "US リーガル"
 
-#: ../data/templates/categories.xml.h:1
+#: ../templates/categories.xml.h:1
 msgid "Any card"
 msgstr "いずれのカード"
 
-#: ../data/templates/categories.xml.h:2
+#: ../templates/categories.xml.h:2
 msgid "Any label"
 msgstr "いずれのラベル"
 
-#: ../data/templates/categories.xml.h:3
+#. ===================================================================
+#. ====================================================================
+#. ===================================================================
+#: ../templates/categories.xml.h:3 ../templates/dataline-iso-templates.xml.h:4
+#: ../templates/geha-iso-templates.xml.h:8
+#: ../templates/hama-iso-templates.xml.h:6
+#: ../templates/pearl-iso-templates.xml.h:8
 msgid "Business cards"
 msgstr "名刺"
 
-#: ../data/templates/categories.xml.h:4
+#: ../templates/categories.xml.h:4
 msgid "CD/DVD or other media"
 msgstr "CD/DVD またはその他のメディア"
 
-#: ../data/templates/categories.xml.h:5
+#. ===================================================================
+#: ../templates/categories.xml.h:5 ../templates/pearl-iso-templates.xml.h:28
+#, fuzzy
+msgid "Elliptical labels"
+msgstr "出荷ラベル"
+
+#: ../templates/categories.xml.h:6
+#, fuzzy
+msgid "Foldable cards"
+msgstr "名刺"
+
+#: ../templates/categories.xml.h:7
 msgid "Mailing/shipping products"
 msgstr "郵送/出荷する製品"
 
-#: ../data/templates/categories.xml.h:6
+#: ../templates/categories.xml.h:8
+msgid "Photo products"
+msgstr ""
+
+#. ===================================================================
+#. ====================================================================
+#. ===================================================================
+#. ********************************************************************
+#: ../templates/categories.xml.h:9 ../templates/ascom-iso-templates.xml.h:6
+#: ../templates/hama-iso-templates.xml.h:29
+#: ../templates/herma-iso-templates.xml.h:18
+#: ../templates/jac-iso-templates.xml.h:8
 msgid "Rectangular labels"
 msgstr "長方形のラベル"
 
-#: ../data/templates/categories.xml.h:7
+#. ====================================================================
+#. ===================================================================
+#: ../templates/categories.xml.h:10 ../templates/hama-iso-templates.xml.h:31
+#: ../templates/pearl-iso-templates.xml.h:54
 msgid "Round labels"
 msgstr "丸いラベル"
 
-#: ../data/templates/categories.xml.h:8
+#. ====================================================================
+#: ../templates/categories.xml.h:11 ../templates/hama-iso-templates.xml.h:33
 msgid "Square labels"
 msgstr "正方形のラベル"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:2
-#: ../data/templates/avery-us-templates.xml.h:2
-#: ../data/templates/dymo-other-templates.xml.h:4
-#: ../data/templates/misc-iso-templates.xml.h:2
-#: ../data/templates/zweckform-iso-templates.xml.h:2
-msgid "Address Labels"
-msgstr "宛名のラベル"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:4
-msgid "Address labels"
-msgstr "宛名のラベル"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:6
-msgid "Allround labels"
-msgstr "汎用的なラベル"
-
-#. ============================================================
-#. ===================================================================
-#. ********************************************************************
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:8
-#: ../data/templates/avery-us-templates.xml.h:4
-#: ../data/templates/misc-iso-templates.xml.h:12
-#: ../data/templates/misc-us-templates.xml.h:4
-#: ../data/templates/zweckform-iso-templates.xml.h:6
-msgid "Business Cards"
-msgstr "名刺"
-
-#. ===============================================================
-#: ../data/templates/avery-iso-templates.xml.h:10
-msgid "CD Booklet"
-msgstr "CD の小冊子"
-
 #. ===============================================================
-#: ../data/templates/avery-iso-templates.xml.h:12
+#: ../templates/ascom-iso-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:10
 msgid "CD Inlet"
 msgstr "CD のインレット"
 
-#. ===============================================================
+#. TODO: Is this the real part #?
+#. ============================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:14
-#: ../data/templates/avery-us-templates.xml.h:6
-#: ../data/templates/misc-iso-templates.xml.h:16
-#: ../data/templates/misc-us-templates.xml.h:8
-#: ../data/templates/zweckform-iso-templates.xml.h:8
-msgid "CD/DVD Labels"
-msgstr "CD/DVD のラベル"
-
+#. ====================================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:16
-#: ../data/templates/avery-us-templates.xml.h:12
-msgid "Diskette Labels"
-msgstr "フロッピーのラベル"
-
+#. TODO: What is the actual part #?
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:18
-msgid "Diskette labels"
-msgstr "フロッピーのラベル"
+#: ../templates/ascom-iso-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:30
+#: ../templates/databecker-iso-templates.xml.h:10
+#: ../templates/hama-iso-templates.xml.h:27
+#: ../templates/herma-iso-templates.xml.h:16
+#: ../templates/misc-iso-templates.xml.h:30
+#: ../templates/zweckform-iso-templates.xml.h:28
+msgid "Rectangular Labels"
+msgstr "長方形のラベル"
 
-#. ===============================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:20
-#: ../data/templates/misc-iso-templates.xml.h:36
-#: ../data/templates/misc-us-templates.xml.h:18
-#: ../data/templates/zweckform-iso-templates.xml.h:16
-msgid "Mailing Labels"
-msgstr "封筒のラベル"
+#: ../templates/ascom-iso-templates.xml.h:8
+#: ../templates/avery-us-templates.xml.h:46
+#: ../templates/geha-iso-templates.xml.h:29
+#: ../templates/meritline-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:12
+msgid "Video Tape Spine Labels"
+msgstr "ビデオ・テープの背面ラベル"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:22
-msgid "Mailing labels"
-msgstr "封筒のラベル"
-
+#. ********************************************************************
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:24
-msgid "Mini Address Labels"
-msgstr "小さな宛名のラベル"
+#: ../templates/avery-us-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:2
+#: ../templates/databecker-iso-templates.xml.h:2
+#: ../templates/dymo-other-templates.xml.h:4
+#: ../templates/geha-iso-templates.xml.h:2
+#: ../templates/maco-us-templates.xml.h:2
+#: ../templates/meritline-us-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:1
+#: ../templates/zweckform-iso-templates.xml.h:2
+msgid "Address Labels"
+msgstr "宛名のラベル"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:26
-msgid "Mini Labels"
-msgstr "ミニ・ラベル"
-
+#. ============================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:28
-msgid "Shipping labels"
-msgstr "出荷ラベル"
+#. TODO: Is this the actual part #?
+#. ============================================================
+#: ../templates/avery-us-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:8
+#: ../templates/databecker-iso-templates.xml.h:4
+#: ../templates/dataline-iso-templates.xml.h:2
+#: ../templates/decadry-iso-templates.xml.h:2
+#: ../templates/misc-us-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:6
+#: ../templates/zweckform-iso-templates.xml.h:6
+msgid "Business Cards"
+msgstr "名刺"
 
 #. ===================================================================
-#: ../data/templates/avery-other-templates.xml.h:2
-msgid "File Folder Labels"
-msgstr "ファイル・フォルダのラベル"
+#. ===============================================================
+#. ===================================================================
+#. ********************************************************************
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:6
+#: ../templates/avery-iso-templates.xml.h:14
+#: ../templates/geha-iso-templates.xml.h:11
+#: ../templates/herma-iso-templates.xml.h:10
+#: ../templates/jac-iso-templates.xml.h:2
+#: ../templates/misc-us-templates.xml.h:8
+#: ../templates/misc-iso-templates.xml.h:10
+#: ../templates/misc-other-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:24
+#: ../templates/worldlabel-us-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:12
+msgid "CD/DVD Labels"
+msgstr "CD/DVD のラベル"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:8
+#: ../templates/avery-us-templates.xml.h:8
 msgid "CD/DVD Labels (Disc Labels)"
 msgstr "CD/DVD のラベル (Disc ラベル)"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:10
+#: ../templates/avery-us-templates.xml.h:10
 msgid "CD/DVD Labels (Spine Labels)"
 msgstr "CD/DVD のラベル (Spine ラベル)"
 
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:12
+#: ../templates/avery-iso-templates.xml.h:16
+#: ../templates/meritline-us-templates.xml.h:4
+#: ../templates/worldlabel-us-templates.xml.h:3
+msgid "Diskette Labels"
+msgstr "フロッピーのラベル"
+
 #. the LSK labels can be torn in half down the center
-#: ../data/templates/avery-us-templates.xml.h:14
+#: ../templates/avery-us-templates.xml.h:14
 msgid "Divider Labels"
 msgstr "ドライバのラベル"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:16
+#: ../templates/avery-us-templates.xml.h:16
+#: ../templates/avery-other-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:4
+msgid "File Folder Labels"
+msgstr "ファイル・フォルダのラベル"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:5
 msgid "Filing Labels"
 msgstr "ファイル・バインダーのラベル"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:18
+#: ../templates/avery-us-templates.xml.h:20
+#: ../templates/meritline-us-templates.xml.h:6
+#: ../templates/worldlabel-us-templates.xml.h:6
 msgid "Full Sheet Labels"
 msgstr "全用紙のラベル"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:20
+#: ../templates/avery-us-templates.xml.h:22
 msgid "ID Labels"
 msgstr "ID のラベル"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:22
+#: ../templates/avery-us-templates.xml.h:24
 msgid "Index Cards"
 msgstr "目録のカード"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:24
+#: ../templates/avery-us-templates.xml.h:26
 msgid "Large Round Labels"
 msgstr "大きな丸のラベル"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:26
+#: ../templates/avery-us-templates.xml.h:28
 msgid "Name Badge Labels"
 msgstr "名前つきバッジのラベル"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:28
+#: ../templates/avery-us-templates.xml.h:30
 msgid "Post cards"
 msgstr "はがき"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:30
-#: ../data/templates/dymo-other-templates.xml.h:12
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:32
+#: ../templates/dymo-other-templates.xml.h:12
+#: ../templates/meritline-us-templates.xml.h:10
+#: ../templates/worldlabel-us-templates.xml.h:8
 msgid "Return Address Labels"
 msgstr "返信用宛名のラベル"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:32
-#: ../data/templates/misc-us-templates.xml.h:28
+#: ../templates/avery-us-templates.xml.h:34
+#: ../templates/maco-us-templates.xml.h:3
+#: ../templates/meritline-us-templates.xml.h:12
+#: ../templates/misc-us-templates.xml.h:30
+#: ../templates/worldlabel-us-templates.xml.h:9
 msgid "Round Labels"
 msgstr "角が丸いラベル"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:34
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:36
+#: ../templates/dataline-iso-templates.xml.h:10
+#: ../templates/meritline-us-templates.xml.h:14
+#: ../templates/uline-us-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:10
 msgid "Shipping Labels"
 msgstr "出荷ラベル"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:36
+#: ../templates/avery-us-templates.xml.h:38
 msgid "Small Round Labels"
 msgstr "小さな丸いラベル"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:38
+#: ../templates/avery-us-templates.xml.h:40
 msgid "Square Labels"
 msgstr "正方形のラベル"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:40
+#: ../templates/avery-us-templates.xml.h:42
 msgid "Tent Cards"
 msgstr "テントのカード"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:42
+#: ../templates/avery-us-templates.xml.h:44
+#: ../templates/geha-iso-templates.xml.h:27
+#: ../templates/meritline-us-templates.xml.h:16
+#: ../templates/worldlabel-us-templates.xml.h:11
 msgid "Video Tape Face Labels"
 msgstr "ビデオ・テープの表面ラベル"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:44
-msgid "Video Tape Spine Labels"
-msgstr "ビデオ・テープの背面ラベル"
+#: ../templates/avery-iso-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:2
+msgid "Address labels"
+msgstr "宛名のラベル"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:6
+msgid "Allround labels"
+msgstr "汎用的なラベル"
+
+#. ===============================================================
+#: ../templates/avery-iso-templates.xml.h:10
+#: ../templates/zweckform-iso-templates.xml.h:8
+msgid "CD Booklet"
+msgstr "CD の小冊子"
+
+#. ===================================================================
+#. ====================================================================
+#: ../templates/avery-iso-templates.xml.h:18
+#: ../templates/hama-iso-templates.xml.h:17
+msgid "Diskette labels"
+msgstr "フロッピーのラベル"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:20
+msgid "Identification Labels"
+msgstr ""
+
+#. ===============================================================
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:22
+#: ../templates/decadry-iso-templates.xml.h:4
+#: ../templates/herma-iso-templates.xml.h:14
+#: ../templates/misc-us-templates.xml.h:20
+#: ../templates/misc-iso-templates.xml.h:26
+#: ../templates/zweckform-iso-templates.xml.h:20
+msgid "Mailing Labels"
+msgstr "封筒のラベル"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:24
+#: ../templates/decadry-iso-templates.xml.h:6
+msgid "Mailing labels"
+msgstr "封筒のラベル"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:26
+msgid "Mini Address Labels"
+msgstr "小さな宛名のラベル"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:28
+msgid "Mini Labels"
+msgstr "ミニ・ラベル"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:32
+msgid "Shipping labels"
+msgstr "出荷ラベル"
 
-#: ../data/templates/brother-other-templates.xml.h:1
+#: ../templates/brother-other-templates.xml.h:1
 msgid "Multi Purpose Labels 17mm x 54mm"
 msgstr "多目的ラベル 17mm x 54mm"
 
-#: ../data/templates/brother-other-templates.xml.h:2
+#: ../templates/brother-other-templates.xml.h:2
 msgid "Shipping Labels 62mm x 100mm"
 msgstr "出荷ラベル 62mm x 100mm"
 
@@ -2453,277 +3135,844 @@ msgstr "出荷ラベル 62mm x 100mm"
 #. *********************************************************************
 #. *********************************************************************
 #.
-#: ../data/templates/brother-other-templates.xml.h:20
+#: ../templates/brother-other-templates.xml.h:20
 msgid "Standard Address Labels 29mm x 90mm"
 msgstr "標準的な宛名のラベル 29mm x 90mm"
 
+#: ../templates/brother-other-templates.xml.h:21
+#, fuzzy
+msgid "Standard Address Labels 38mm x 90mm"
+msgstr "標準的な宛名のラベル 29mm x 90mm"
+
+#. ===================================================================
+#: ../templates/databecker-iso-templates.xml.h:6
+#: ../templates/misc-iso-templates.xml.h:8
+msgid "CD Labels"
+msgstr "CD のラベル"
+
+#. ===================================================================
+#: ../templates/databecker-iso-templates.xml.h:8
+msgid "CD/DVD Labels Standard Format (face only)"
+msgstr "CD/DVD のラベル標準書式 (外側のみ)"
+
+#. ===================================================================
+#. ====================================================================
+#: ../templates/dataline-iso-templates.xml.h:6
+#: ../templates/hama-iso-templates.xml.h:13
+#, fuzzy
+msgid "CD/DVD labels"
+msgstr "CD/DVD のラベル"
+
+#. ===================================================================
+#: ../templates/dataline-iso-templates.xml.h:8
+#: ../templates/pearl-iso-templates.xml.h:42
+msgid "Membership cards"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:2
+msgid "3.5in Diskette"
+msgstr "3.5インチのフロッピーディスク"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:6
+msgid "File Folder"
+msgstr "ファイルのフォルダ"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:8
+msgid "Hanging Folder"
+msgstr "つり下げ式のフォルダ"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:10
+#: ../templates/geha-iso-templates.xml.h:19
+msgid "Large Address Labels"
+msgstr "大きな宛名のラベル"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:14
+msgid "Shipping Address Labels"
+msgstr "出荷ラベル"
+
+#. ===================================================================
+#. ====================================================================
+#. ===================================================================
+#: ../templates/geha-iso-templates.xml.h:4
+#: ../templates/hama-iso-templates.xml.h:2
+#: ../templates/herma-iso-templates.xml.h:4
+msgid "Arch File Labels"
+msgstr "アーチ・ファイルのラベル"
+
+#. ===================================================================
+#: ../templates/geha-iso-templates.xml.h:6
+#, fuzzy
+msgid "Arch File inserts"
+msgstr "アーチ・ファイルのラベル"
+
+#: ../templates/geha-iso-templates.xml.h:9
+#, fuzzy
+msgid "CD/DVD Inlet"
+msgstr "CD のインレット"
+
+#. ===================================================================
+#. ====================================================================
+#. ===================================================================
+#: ../templates/geha-iso-templates.xml.h:13
+#: ../templates/hama-iso-templates.xml.h:15
+#: ../templates/pearl-iso-templates.xml.h:26
+#, fuzzy
+msgid "DVD inlet"
+msgstr "CD のインレット"
+
+#. ===================================================================
+#: ../templates/geha-iso-templates.xml.h:15
+msgid "Flyer paper"
+msgstr ""
+
+#. ===================================================================
+#. ====================================================================
+#: ../templates/geha-iso-templates.xml.h:17
+#: ../templates/hama-iso-templates.xml.h:19
+msgid "Greeting cards"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/geha-iso-templates.xml.h:21
+#: ../templates/misc-other-templates.xml.h:4
+msgid "Multi-Purpose Labels"
+msgstr "多目的ラベル"
+
+#. ===================================================================
+#: ../templates/geha-iso-templates.xml.h:23
+#, fuzzy
+msgid "Passport photo labels"
+msgstr "gLabels について"
+
+#. ===================================================================
+#. ====================================================================
+#. ===================================================================
+#: ../templates/geha-iso-templates.xml.h:25
+#: ../templates/hama-iso-templates.xml.h:23
+#: ../templates/pearl-iso-templates.xml.h:50
+#, fuzzy
+msgid "Photo labels"
+msgstr "gLabels について"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:4
+#, fuzzy
+msgid "Arch File labels"
+msgstr "アーチ・ファイルのラベル"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:8
+#, fuzzy
+msgid "CD inlet"
+msgstr "CD のインレット"
+
+#. ===================================================================
+#: ../templates/hama-iso-templates.xml.h:9
+#: ../templates/pearl-iso-templates.xml.h:20
+#, fuzzy
+msgid "CD inlet (back)"
+msgstr "CD のインレット"
+
+#. ====================================================================
+#. ===================================================================
+#: ../templates/hama-iso-templates.xml.h:11
+#: ../templates/pearl-iso-templates.xml.h:22
+#, fuzzy
+msgid "CD inlet (front)"
+msgstr "前面に持ってくる"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:21
+#, fuzzy
+msgid "Mini Disc labels"
+msgstr "ミニ・ラベル"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:25
+msgid "Printable mousepad"
+msgstr ""
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:35
+msgid "VHS inlet"
+msgstr ""
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:37
+#, fuzzy
+msgid "VHS-C inlet"
+msgstr "CD のインレット"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:39
+msgid "Video-8 inlet"
+msgstr ""
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:41
+msgid "Zip disc inlet"
+msgstr ""
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:43
+#, fuzzy
+msgid "Zip disc labels"
+msgstr "汎用的なラベル"
+
+#. ===================================================================
+#: ../templates/herma-iso-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:4
+msgid "Allround Labels"
+msgstr "汎用的なラベル"
+
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:2
-msgid "3.5in Diskette"
-msgstr "3.5インチのフロッピーディスク"
+#: ../templates/herma-iso-templates.xml.h:6
+msgid "Arch File Labels (large)"
+msgstr "アーチ・ファイルのラベル (大)"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:6
-msgid "File Folder"
-msgstr "ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\83\95ã\82©ã\83«ã\83\80"
+#: ../templates/herma-iso-templates.xml.h:8
+msgid "Arch File Labels (small)"
+msgstr "ã\82¢ã\83¼ã\83\81ã\83»ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\83©ã\83\99ã\83« (å°\8f)"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:8
-msgid "Hanging Folder"
-msgstr "ã\81¤ã\82\8aä¸\8bã\81\92å¼\8fã\81®ã\83\95ã\82©ã\83«ã\83\80"
+#: ../templates/herma-iso-templates.xml.h:12
+msgid "Diskette Labels (face only)"
+msgstr "ã\83\95ã\83­ã\83\83ã\83\94ã\83¼ã\81®ã\83©ã\83\99ã\83« (å¤\96å\81´ã\81®ã\81¿)"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:10
-msgid "Large Address Labels"
-msgstr "大きな宛名のラベル"
+#: ../templates/herma-iso-templates.xml.h:20
+msgid "Video Labels (face only)"
+msgstr "ビデオのラベル (外側のみ)"
 
+#. *******************************************************************
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:14
-msgid "Shipping Address Labels"
-msgstr "出荷ラベル"
+#: ../templates/jac-iso-templates.xml.h:4
+#: ../templates/pearl-iso-templates.xml.h:36
+#, fuzzy
+msgid "Labels A4"
+msgstr "ラベル"
 
-#. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:4
-#: ../data/templates/zweckform-iso-templates.xml.h:4
-msgid "Allround Labels"
-msgstr "汎用的なラベル"
+#. *******************************************************************
+#: ../templates/jac-iso-templates.xml.h:6
+#, fuzzy
+msgid "PVC labels"
+msgstr "CD のラベル"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:6
-msgid "Arch File Labels"
-msgstr "ã\82¢ã\83¼ã\83\81ã\83»ã\83\95ã\82¡ã\82¤ã\83«のラベル"
+#: ../templates/meritline-us-templates.xml.h:8
+msgid "Mini-CD Labels"
+msgstr "ã\83\9fã\83\8b CD のラベル"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:8
-msgid "Arch File Labels (large)"
-msgstr "アーチ・ファイルのラベル (大)"
+#: ../templates/misc-us-templates.xml.h:2
+msgid "Business Card CD"
+msgstr "名刺 CD"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:10
-msgid "Arch File Labels (small)"
-msgstr "アーチ・ファイルのラベル (小)"
+#: ../templates/misc-us-templates.xml.h:6
+msgid "CD Template Rectangles"
+msgstr "CD テンプレート (長方形)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:14
-msgid "CD Labels"
-msgstr "CD のラベル"
+#: ../templates/misc-us-templates.xml.h:10
+msgid "CD/DVD Labels (Face Only)"
+msgstr "CD/DVD のラベル (外側のみ)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:18
-#: ../data/templates/misc-us-templates.xml.h:12
+#. TODO: Is this the actual part #?
+#: ../templates/misc-us-templates.xml.h:12
+#: ../templates/misc-iso-templates.xml.h:12
 msgid "CD/DVD Labels (face only)"
 msgstr "CD/DVD のラベル (外側のみ)"
 
+#. TODO: Is this the actual part #?
+#: ../templates/misc-us-templates.xml.h:14
+msgid "Cassette Labels"
+msgstr "カセットのラベル"
+
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:20
-msgid "CD/DVD Labels Standard Format (face only)"
-msgstr "CD/DVD のラベル標準書式 (外側のみ)"
+#: ../templates/misc-us-templates.xml.h:16
+msgid "DLT Labels"
+msgstr "DLT のラベル"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:22
-msgid "Diskette Labels (face only)"
-msgstr "フロッピーのラベル (外側のみ)"
+#: ../templates/misc-us-templates.xml.h:18
+msgid "Jewel Case Booklet"
+msgstr "CD の小冊子"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:22
+msgid "Microtube labels"
+msgstr "マイクロチューブのラベル"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:24
+msgid "PRO CD Labels 2-up (CD spine only)"
+msgstr "PRO CD のラベル二枚 (CD 格納ケースのみ)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:26
+msgid "PRO CD Labels 2-up (Face only)"
+msgstr "PRO CD ラベル二枚 (外側のみ)"
+
+#. ===================================================================
+#. TODO: Is this the actual part #?
+#: ../templates/misc-us-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:28
+msgid "PRO CD Labels 2-up (face only)"
+msgstr "PRO CD ラベル二枚 (外側のみ)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:32
+msgid "Slimline CD Case (rightside up)"
+msgstr "薄い CD フォルダ (右側)"
+
+#: ../templates/misc-us-templates.xml.h:33
+msgid "Slimline CD Case (upside down)"
+msgstr "薄い CD フォルダ (上側)"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:4
+#: ../templates/pearl-iso-templates.xml.h:6
+#, fuzzy
+msgid "Bottle labels"
+msgstr "フロッピーのラベル"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:24
+#: ../templates/misc-iso-templates.xml.h:14
 msgid "EPSON Photo Stickers 16"
 msgstr "EPSON フォト・ステッカー 16"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:26
+#: ../templates/misc-iso-templates.xml.h:16
 msgid "Etiketten"
 msgstr "Etiketten"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:18
 msgid "Fridge Magnet Stickers"
 msgstr "冷蔵庫に貼る磁気ステッカ"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:30
+#: ../templates/misc-iso-templates.xml.h:20
 msgid "General Labels"
 msgstr "一般的なラベル"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:32
+#: ../templates/misc-iso-templates.xml.h:22
 msgid "Inkjet/Laser Labels 70x37mm"
 msgstr "インクジェット/レーザ印刷用のラベル 70x37mm"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:38
-msgid "Mailing Labels-2 columns"
-msgstr "封筒のラベル (二列)"
+#: ../templates/misc-iso-templates.xml.h:32
+#: ../templates/pearl-iso-templates.xml.h:62
+#, fuzzy
+msgid "Self-adhesive labels"
+msgstr "正方形のラベル"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:40
-msgid "Mailing Labels-3 columns"
-msgstr "封筒のラベル (三列)"
+#: ../templates/misc-iso-templates.xml.h:34
+msgid "Universal Labels"
+msgstr "普通のラベル"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:42
-#: ../data/templates/misc-us-templates.xml.h:26
-msgid "PRO CD Labels 2-up (face only)"
-msgstr "PRO CD ラベル二枚 (外側のみ)"
+#: ../templates/pearl-iso-templates.xml.h:4
+#, fuzzy
+msgid "Address Labels (STAMPIT)"
+msgstr "宛名のラベル"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:44
-#: ../data/templates/zweckform-iso-templates.xml.h:24
-msgid "Rectangular Labels"
-msgstr "長方形のラベル"
+#: ../templates/pearl-iso-templates.xml.h:10
+msgid "Business cards glossy, both sides printable"
+msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:46
-msgid "Video Labels (face only)"
-msgstr "ビデオのラベル (外側のみ)"
+#: ../templates/pearl-iso-templates.xml.h:12
+#, fuzzy
+msgid "Business cards high glossy"
+msgstr "名刺"
 
 #. ===================================================================
-#: ../data/templates/misc-other-templates.xml.h:2
-msgid "Multi-Purpose Labels"
-msgstr "多目的ラベル"
+#: ../templates/pearl-iso-templates.xml.h:14
+#, fuzzy
+msgid "Business cards punched"
+msgstr "名刺"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:2
-msgid "Business Card CD"
-msgstr "名刺 CD"
+#: ../templates/pearl-iso-templates.xml.h:16
+#, fuzzy
+msgid "Business cards punched dull"
+msgstr "名刺"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:6
-msgid "CD Template Rectangles"
-msgstr "CD テンプレート (長方形)"
+#: ../templates/pearl-iso-templates.xml.h:18
+#, fuzzy
+msgid "Business cards punched glossy"
+msgstr "名刺"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:10
-msgid "CD/DVD Labels (Face Only)"
-msgstr "CD/DVD のラベル (外側のみ)"
+#: ../templates/pearl-iso-templates.xml.h:30
+#, fuzzy
+msgid "Floppy disk labels"
+msgstr "汎用的なラベル"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:14
-msgid "Cassette Labels"
-msgstr "カセットのラベル"
+#: ../templates/pearl-iso-templates.xml.h:32
+#, fuzzy
+msgid "Foldable business cards"
+msgstr "名刺"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:16
-msgid "DLT Labels"
-msgstr "DLT のラベル"
+#: ../templates/pearl-iso-templates.xml.h:34
+msgid "Foldable business cards glossy/dull"
+msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:20
-msgid "Microtube labels"
-msgstr "マイクロチューブのラベル"
+#: ../templates/pearl-iso-templates.xml.h:38
+#, fuzzy
+msgid "Labels A5"
+msgstr "ラベル"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:22
-msgid "Mini-CD Labels"
-msgstr "ミニ CD のラベル"
+#: ../templates/pearl-iso-templates.xml.h:40
+#, fuzzy
+msgid "Labels A6"
+msgstr "ラベル"
 
-#: ../data/templates/misc-us-templates.xml.h:23
-msgid "PRO CD Labels 2-up (CD spine only)"
-msgstr "PRO CD のラベル二枚 (CD 格納ケースのみ)"
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:44
+msgid "Membership cards, both sides printable"
+msgstr ""
 
-#: ../data/templates/misc-us-templates.xml.h:24
-msgid "PRO CD Labels 2-up (Face only)"
-msgstr "PRO CD ラベル二枚 (外側のみ)"
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:46
+msgid "Name plates"
+msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:30
-msgid "Slimline CD Case (rightside up)"
-msgstr "薄い CD フォルダ (右側)"
+#: ../templates/pearl-iso-templates.xml.h:48
+msgid "Passport photo labels glossy"
+msgstr ""
 
-#: ../data/templates/misc-us-templates.xml.h:31
-msgid "Slimline CD Case (upside down)"
-msgstr "薄い CD フォルダ (上側)"
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:52
+msgid "Photo labels semiglossy"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:56
+#, fuzzy
+msgid "SD card labels"
+msgstr "正方形のラベル"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:10
+#: ../templates/pearl-iso-templates.xml.h:58
+msgid "Self-adhesive film transparent"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:60
+msgid "Self-adhesive film weatherproof"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:64
+msgid "Self-adhesive window film"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:14
 msgid "Correction and Cover-up Labels"
 msgstr "コレクションとカバーのラベル"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:16
 msgid "File Back Labels"
 msgstr "ファイルのラベル"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:14
+#: ../templates/zweckform-iso-templates.xml.h:18
 msgid "Lever Arch File Labels"
 msgstr "レバー・アーチ・ファイルのラベル"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:18
+#: ../templates/zweckform-iso-templates.xml.h:22
 msgid "Multi-purpose Stick+Lift Labels"
 msgstr "多目的 Stick+Lift のラベル"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:20
+#: ../templates/zweckform-iso-templates.xml.h:24
 msgid "QSL-Karten Etiketten 70mm x 50,8mm"
 msgstr "QSL-Karten Etiketten (70mm x 50.8mm)"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:22
+#: ../templates/zweckform-iso-templates.xml.h:26
 msgid "Rectangular Copier Labels"
 msgstr "長方形のコピー機のラベル"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:26
+#: ../templates/zweckform-iso-templates.xml.h:30
 msgid "Video Labels (back)"
 msgstr "ビデオのラベル (裏側)"
 
-#: ../data/desktop/glabels.desktop.in.h:1
-msgid "Create labels, business cards and media covers"
-msgstr "ラベルや名刺、メディアのジャケットをデザインします"
+#~ msgid "Align _Horizontal"
+#~ msgstr "水平方向に配置(_H)"
 
-#: ../data/desktop/glabels.desktop.in.h:2
-msgid "gLabels Label Designer"
-msgstr "gLabels ラベル・デザイナ"
+#~ msgid "Align _Vertical"
+#~ msgstr "垂直方向に配置(_V)"
 
-#: ../data/mime/glabels.keys.in.h:1 ../data/mime/glabels.xml.in.h:1
-msgid "gLabels Project File"
-msgstr "gLabels のプロジェクト・ファイル"
+#~ msgid "Couldn't construct query"
+#~ msgstr "クエリを構築できませんでした"
 
-#: ../barcode-0.98/compat/getopt.c:583
-#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: オプションの `%s` はあいまいです\n"
+#~ msgid "Couldn't open addressbook."
+#~ msgstr "アドレス帳を開けませんでした"
 
-#: ../barcode-0.98/compat/getopt.c:607
-#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: オプションの `--%s` は引数を取ることはできません\n"
+#~ msgid "Couldn't list available fields."
+#~ msgstr "利用可能な領域の一覧を生成できませんでした"
 
-#: ../barcode-0.98/compat/getopt.c:612
-#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: オプションの `%c%s` は引数を取ることはできません\n"
+#~ msgid "Couldn't get contacts."
+#~ msgstr "連絡先を取得できませんでした"
 
-#: ../barcode-0.98/compat/getopt.c:629
-#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s: オプションの `%s` には引数が必要です\n"
+#~ msgid "_Select Mode"
+#~ msgstr "選択モード(_S)"
 
-#. --option
-#: ../barcode-0.98/compat/getopt.c:658
-#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: 認識できないオプション `--%s`\n"
+#~ msgid "_Text"
+#~ msgstr "文字(_T)"
 
-#. +option or -option
-#: ../barcode-0.98/compat/getopt.c:662
-#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: 認識できないオプション `%c%s`\n"
+#~ msgid "_Line"
+#~ msgstr "直線(_L)"
 
-#. 1003.2 specifies the format of this message.
-#: ../barcode-0.98/compat/getopt.c:688
-#, c-format
-msgid "%s: illegal option -- %c\n"
-msgstr "%s: 不正なオプション-- %c\n"
+#~ msgid "_Box"
+#~ msgstr "矩形(_B)"
 
-#: ../barcode-0.98/compat/getopt.c:691
-#, c-format
-msgid "%s: invalid option -- %c\n"
-msgstr "%s: 不正なオプション -- %c\n"
+#~ msgid "_Ellipse"
+#~ msgstr "楕円(_E)"
 
-#: ../barcode-0.98/compat/getopt.c:727
-#, c-format
-msgid "%s: option requires an argument -- %c\n"
-msgstr "%s: オプションには引数が必要です -- %c\n"
+#~ msgid "_Image"
+#~ msgstr "画像(_I)"
+
+#~ msgid "Bar_code"
+#~ msgstr "バーコード(_C)"
+
+#~ msgid "_Merge Properties"
+#~ msgstr "結合プロパティ(_M)"
+
+#~ msgid "Object _Properties"
+#~ msgstr "オブジェクトのプロパティ(_P)"
+
+#~ msgid "Bring to _Front"
+#~ msgstr "前に持ってくる(_F)"
+
+#~ msgid "Send to _Back"
+#~ msgstr "後ろにまわす(_B)"
+
+#~ msgid "Rotate _Left"
+#~ msgstr "左に回転(_L)"
+
+#~ msgid "Rotate _Right"
+#~ msgstr "右に回転(_R)"
+
+#~ msgid "Flip _Horizontally"
+#~ msgstr "水平方向にフリップ(_H)"
+
+#~ msgid "Flip _Vertically"
+#~ msgstr "垂直方向にフリップ(_V)"
+
+#~ msgid "_Lefts"
+#~ msgstr "左端(_L)"
+
+#~ msgid "_Rights"
+#~ msgstr "右端(_R)"
+
+#~ msgid "_Centers"
+#~ msgstr "中央(_C)"
+
+#~ msgid "_Tops"
+#~ msgstr "上端(_T)"
+
+#~ msgid "Bottoms"
+#~ msgstr "下部"
+
+#~ msgid "Label Ce_nter"
+#~ msgstr "ラベルの中心(_N)"
+
+#~ msgid "Linked"
+#~ msgstr "結合済"
+
+#~ msgid "Not Linked"
+#~ msgstr "結合なし"
+
+#~ msgid "glabels"
+#~ msgstr "gLabels"
+
+#~ msgid "Bad root node = \"%s\""
+#~ msgstr "おかしな root のノード = \"%s\""
+
+#~ msgid "bad node =  \"%s\""
+#~ msgstr "おかしなノード = \"%s\""
+
+#~ msgid "xmlParseFile error"
+#~ msgstr "xmlParseFile エラー"
+
+#~ msgid "No document root"
+#~ msgstr "root ドキュメントではありません"
+
+#~ msgid "Importing from glabels 0.1 format"
+#~ msgstr "gLabels 0.1 形式からインポートする"
+
+#~ msgid "Importing from glabels 0.4 format"
+#~ msgstr "gLabels 0.4 形式からインポートする"
+
+#~ msgid "Unknown glabels Namespace -- Using %s"
+#~ msgstr "glabels の名前空間が不明です -- %s を利用してください"
+
+#~ msgid "bad node in Document node =  \"%s\""
+#~ msgstr "Document ノードにおかしな root のノード = \"%s\""
+
+#~ msgid "bad node in Data node =  \"%s\""
+#~ msgstr "Data ノードにおかしなノード = \"%s\""
+
+#, fuzzy
+#~ msgid "Unknown embedded file format: \"%s\""
+#~ msgstr "ページ・サイズの ID または名前 \"%s\" が不明です。"
+
+#~ msgid "Utf8 conversion error."
+#~ msgstr "Utf8 変換エラーです。"
+
+#~ msgid "Problem saving xml file."
+#~ msgstr "XML ファイルの保存で問題があります"
+
+#~ msgid "Missing name or brand/part attributes."
+#~ msgstr "名前またはブランド/パーツ番号といった属性がありません。"
+
+#~ msgid "Unknown page size id \"%s\", trying as name"
+#~ msgstr "ページ・サイズの ID \"%s\" が不明なので名前として扱います。"
+
+#~ msgid "Unknown page size id or name \"%s\""
+#~ msgstr "ページ・サイズの ID または名前 \"%s\" が不明です。"
+
+#~ msgid ""
+#~ "Missing required \"brand\" or \"part\" attribute, trying deprecated name."
+#~ msgstr ""
+#~ "必須となる \"ブランド名\" や \"パート番号\" といった属性が見つかりません "
+#~ "(廃止した名前を試してみてください)"
+
+#~ msgid "Name attribute also missing."
+#~ msgstr "名前も見つかりません"
+
+#~ msgid "Mailing Labels-2 columns"
+#~ msgstr "封筒のラベル (二列)"
+
+#~ msgid "Mailing Labels-3 columns"
+#~ msgstr "封筒のラベル (三列)"
+
+#~ msgid "- gLabels label designer"
+#~ msgstr "- gLabels ラベル・デザイナ"
+
+#~ msgid "- batch process gLabels label files"
+#~ msgstr "- gLabels のラベル・ファイルをバッチ処理する"
+
+#~ msgid "Show tooltips"
+#~ msgstr "ツールチップの表示"
+
+#~ msgid "xmlParseDoc error"
+#~ msgstr "xmlParseDoc エラー"
+
+#~ msgid "Text file with comma delimeters (CSV)"
+#~ msgstr "コンマで区切ったテキスト・ファイル (CSV)"
+
+#~ msgid "Text file with colon delimeters"
+#~ msgstr "コロンで区切ったテキスト・ファイル"
+
+#~ msgid "Text file with tab delimeters"
+#~ msgstr "タブで区切ったテキスト・ファイル"
+
+#~ msgid "Data from a file containing VCards"
+#~ msgstr "VCards 形式のデータを含むファイル"
+
+#~ msgid "%s x %s %s"
+#~ msgstr "%s x %s %s"
+
+#~ msgid "%.5g x %.5g %s"
+#~ msgstr "%.5g x %.5g %s"
+
+#~ msgid "%.5g %s diameter"
+#~ msgstr "%.5g %s 倍率"
+
+#~ msgid "Choose Custom Color"
+#~ msgstr "カスタム・カラーの選択"
+
+#~ msgid "light brown"
+#~ msgstr "淡い茶"
+
+#~ msgid "brown gold"
+#~ msgstr "茶銀"
+
+#~ msgid "dark green #2"
+#~ msgstr "暗い緑 #2"
+
+#~ msgid "navy"
+#~ msgstr "ネービー"
+
+#~ msgid "purple #2"
+#~ msgstr "紫 #2"
+
+#~ msgid "very dark gray"
+#~ msgstr "とても暗い灰"
+
+#~ msgid "red-orange"
+#~ msgstr "赤みの橙"
+
+#~ msgid "dull blue"
+#~ msgstr "くすんだ青"
+
+#~ msgid "dull purple"
+#~ msgstr "くすんだ紫"
+
+#~ msgid "dark grey"
+#~ msgstr "暗い灰"
+
+#~ msgid "lime"
+#~ msgstr "ライム"
+
+#~ msgid "dull blue #2"
+#~ msgstr "くすんだ青 #2"
+
+#~ msgid "sky blue #2"
+#~ msgstr "スカイブルー #2"
+
+#~ msgid "gray"
+#~ msgstr "灰"
+
+#~ msgid "magenta"
+#~ msgstr "マゼンタ"
+
+#~ msgid "bright orange"
+#~ msgstr "明るい橙"
+
+#~ msgid "bright blue"
+#~ msgstr "明るい青"
+
+#~ msgid "red purple"
+#~ msgstr "赤紫"
+
+#~ msgid "light grey"
+#~ msgstr "淡い灰"
+
+#~ msgid "light orange"
+#~ msgstr "淡い橙"
+
+#~ msgid "light blue"
+#~ msgstr "淡い青"
+
+#~ msgid "light purple"
+#~ msgstr "淡い紫"
+
+#~ msgid "purplish blue"
+#~ msgstr "紫みの青"
+
+#~ msgid "dark purple"
+#~ msgstr "暗い紫"
+
+#~ msgid "<b>Label orientation</b>"
+#~ msgstr "<b>ラベルの向き</b>"
+
+#~ msgid "<b>Media type</b>"
+#~ msgstr "<b>メディアの種類</b>"
+
+#~ msgid "00000000000 00000"
+#~ msgstr "00000000000 00000"
+
+#~ msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
+#~ msgstr ""
+#~ "<span weight=\"bold\" size=\"larger\">Xxx オブジェクトのプロパティ</span>"
+
+#~ msgid "Select A File"
+#~ msgstr "ファイルの選択"
+
+#~ msgid "<span weight=\"bold\">Default page size</span>"
+#~ msgstr "<span weight=\"bold\">ページ・サイズの初期値</span>"
+
+#~ msgid "<span weight=\"bold\">Fill</span>"
+#~ msgstr "<span weight=\"bold\">塗りつぶし</span>"
+
+#~ msgid "<span weight=\"bold\">Line</span>"
+#~ msgstr "<span weight=\"bold\">線</span>"
+
+#~ msgid "<span weight=\"bold\">Text</span>"
+#~ msgstr "<span weight=\"bold\">文字</span>"
+
+#~ msgid "<span weight=\"bold\">Units</span>"
+#~ msgstr "<span weight=\"bold\">単位</span>"
+
+#~ msgid "<b>Print control (Merge)</b>"
+#~ msgstr "<b>印刷の制御 (結合)</b>"
+
+#~ msgid "<b>Print control (Simple)</b>"
+#~ msgstr "<b>印刷の制御 (簡易)</b>"
+
+#~ msgid "Text Color"
+#~ msgstr "文字の色"
+
+#~ msgid "cd_size_page"
+#~ msgstr "cd_size_page"
+
+#~ msgid "finish_page"
+#~ msgstr "finish_page"
+
+#~ msgid "layout_page"
+#~ msgstr "layout_page"
+
+#~ msgid "nlayouts_page"
+#~ msgstr "nlayouts_page"
+
+#~ msgid "pg_size_page"
+#~ msgstr "pg_size_page"
+
+#~ msgid "rect_size_page"
+#~ msgstr "rect_size_page"
+
+#~ msgid "round_size_page"
+#~ msgstr "round_size_page"
+
+#~ msgid "shape_page"
+#~ msgstr "shape_page"
+
+#~ msgid "start_page"
+#~ msgstr "start_page"
+
+#~ msgid "Search all templates"
+#~ msgstr "すべてのテンプレートから検索する"
+
+#~ msgid "%s: option `%s' is ambiguous\n"
+#~ msgstr "%s: オプションの `%s` はあいまいです\n"
+
+#~ msgid "%s: option `--%s' doesn't allow an argument\n"
+#~ msgstr "%s: オプションの `--%s` は引数を取ることはできません\n"
+
+#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
+#~ msgstr "%s: オプションの `%c%s` は引数を取ることはできません\n"
+
+#~ msgid "%s: option `%s' requires an argument\n"
+#~ msgstr "%s: オプションの `%s` には引数が必要です\n"
+
+#~ msgid "%s: unrecognized option `--%s'\n"
+#~ msgstr "%s: 認識できないオプション `--%s`\n"
+
+#~ msgid "%s: unrecognized option `%c%s'\n"
+#~ msgstr "%s: 認識できないオプション `%c%s`\n"
+
+#~ msgid "%s: illegal option -- %c\n"
+#~ msgstr "%s: 不正なオプション-- %c\n"
+
+#~ msgid "%s: invalid option -- %c\n"
+#~ msgstr "%s: 不正なオプション -- %c\n"
+
+#~ msgid "%s: option requires an argument -- %c\n"
+#~ msgstr "%s: オプションには引数が必要です -- %c\n"
index f908f70a9751693a54cec57da60d05eefe690ced..fb7fecaa344c5659900543a1f77e3063302136a2 100644 (file)
--- a/po/ko.po
+++ b/po/ko.po
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: glabels 2.3. pre0svn\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-08-15 18:13-0400\n"
+"POT-Creation-Date: 2010-07-10 00:37-0400\n"
 "PO-Revision-Date: 2008-02-26 10:59+0900\n"
 "Last-Translator: YunSeok Choi <xein@naver.com>\n"
 "Language-Team: none\n"
@@ -13,2007 +13,2401 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: src/glabels.c:55
-msgid "Show view debugging messages."
-msgstr "보기의 디버깅 메시지를 보이기"
+#: ../src/bc.c:66
+msgid "POSTNET (any)"
+msgstr "POSTNET (임의)"
 
-#: src/glabels.c:58
-msgid "Show item debugging messages."
-msgstr "아이템 디버깅 메시지를 보이기"
+#: ../src/bc.c:69
+msgid "POSTNET-5 (ZIP only)"
+msgstr "POSTNET-5 (ZIP만)"
 
-#: src/glabels.c:61
-msgid "Show printing debugging messages."
-msgstr "인쇄 디버깅 메시지를 보이기"
+#: ../src/bc.c:72
+msgid "POSTNET-9 (ZIP+4)"
+msgstr "POSTNET-9 (ZIP+4)"
 
-#: src/glabels.c:64
-msgid "Show prefs debugging messages."
-msgstr "Prefs 디버깅 메시지를 보이기"
+#: ../src/bc.c:75
+msgid "POSTNET-11 (DPBC)"
+msgstr "POSTNET-11 (DPBC)"
 
-#: src/glabels.c:67
-msgid "Show file debugging messages."
-msgstr "파일 디버깅 메시지를 보이기"
+#: ../src/bc.c:80
+msgid "CEPNET"
+msgstr ""
 
-#: src/glabels.c:70
-msgid "Show document debugging messages."
-msgstr "문서 디버깅 메시지를 보이기"
+#: ../src/bc.c:83
+msgid "EAN (any)"
+msgstr "EAN (임의)"
 
-#: src/glabels.c:73
-msgid "Show template debugging messages."
-msgstr "Template 디버깅 메시지를 보이기"
+#: ../src/bc.c:86
+msgid "EAN-8"
+msgstr "EAN-8"
 
-#: src/glabels.c:76
-msgid "Show paper debugging messages."
-msgstr "Paper 디버깅 메시지를 보이기"
+#: ../src/bc.c:89
+msgid "EAN-8 +2"
+msgstr "EAN-8 +2"
 
-#: src/glabels.c:79
-msgid "Show xml debugging messages."
-msgstr "XML 디버깅 메시지를 보이기"
+#: ../src/bc.c:92
+msgid "EAN-8 +5"
+msgstr "EAN-8 +5"
 
-#: src/glabels.c:82
-msgid "Show document merge debugging messages."
-msgstr "Document 여백 디버깅 메시지를 보이기"
+#: ../src/bc.c:95
+msgid "EAN-13"
+msgstr "EAN-13"
 
-#: src/glabels.c:85
-msgid "Show commands debugging messages."
-msgstr "Command 디버깅 메시지를 보이기"
+#: ../src/bc.c:98
+msgid "EAN-13 +2"
+msgstr "EAN-13 +2"
 
-#: src/glabels.c:88
-msgid "Show undo debugging messages."
-msgstr "Undo 디버깅 메시지를 보이기"
+#: ../src/bc.c:101
+msgid "EAN-13 +5"
+msgstr "EAN-13 +5"
 
-#: src/glabels.c:91
-msgid "Show recent debugging messages."
-msgstr "최근의 디버깅 메시지를 보이기"
+#: ../src/bc.c:104
+msgid "UPC (UPC-A or UPC-E)"
+msgstr "UPC (UPC-A 또는 UPC-E)"
 
-#: src/glabels.c:94
-msgid "Show window debugging messages."
-msgstr "윈도우 디버깅 메시지를 보이기"
+#: ../src/bc.c:107 ../src/bc.c:348
+msgid "UPC-A"
+msgstr "UPC-A"
 
-#: src/glabels.c:97
-msgid "Show ui debugging messages."
-msgstr "GUI 디버깅 메시지를 보이기"
+#: ../src/bc.c:110
+msgid "UPC-A +2"
+msgstr "UPC-A +2"
 
-#: src/glabels.c:100
-msgid "Show property_bar debugging messages."
-msgstr "속성도구 디버깅 메시지를 보이기"
+#: ../src/bc.c:113
+msgid "UPC-A +5"
+msgstr "UPC-A +5"
 
-#: src/glabels.c:103
-msgid "Show media select widget debugging messages."
-msgstr "선택 제품 미디어 디버깅 메시지를 보이기"
+#: ../src/bc.c:116 ../src/bc.c:351
+msgid "UPC-E"
+msgstr "UPC-E"
 
-#: src/glabels.c:106
-msgid "Show mini preview widget debugging messages."
-msgstr "제품 작게 미리보기 디버깅 메시지를 보이기"
+#: ../src/bc.c:119
+msgid "UPC-E +2"
+msgstr "UPC-E +2"
 
-#: src/glabels.c:109
-msgid "Show pixbuf cache debugging messages."
-msgstr "pixbuf cache 디버깅 메시지를 보이기"
+#: ../src/bc.c:122
+msgid "UPC-E +5"
+msgstr "UPC-E +5"
 
-#: src/glabels.c:112
-msgid "Show widget debugging messages."
-msgstr "제품 디버깅 메시지를 보이기"
+#: ../src/bc.c:125 ../src/bc.c:288
+msgid "ISBN"
+msgstr "ISBN"
 
-#: src/glabels.c:115
-msgid "Show object editor debugging messages."
-msgstr "개채 편집기 디버깅 메시지를 보이기"
+#: ../src/bc.c:128
+msgid "ISBN +5"
+msgstr "ISBN +5"
 
-#: src/glabels.c:118
-msgid "Turn on all debugging messages."
-msgstr "모든 디버깅 메시지 켜기"
+#: ../src/bc.c:131 ../src/bc.c:204
+msgid "Code 39"
+msgstr "Code 39"
 
-#: src/glabels.c:187
-msgid "Could not initialize Bonobo!\n"
-msgstr "Bonobo 초기화 할 수 없음!\n"
+#: ../src/bc.c:134 ../src/bc.c:216
+msgid "Code 128"
+msgstr "Code 128"
 
-#: src/glabels-batch.c:48
-msgid "print this message"
-msgstr "이 메시지를 인쇄"
+#: ../src/bc.c:137
+msgid "Code 128C"
+msgstr "Code 128C"
 
-#: src/glabels-batch.c:50
-msgid "print the version of glabels-batch being used"
-msgstr "gLabel-batch 버전 인쇄"
+#: ../src/bc.c:140
+msgid "Code 128B"
+msgstr "Code 128B"
 
-#: src/glabels-batch.c:52
-msgid "set output filename (default=\"output.ps\")"
-msgstr "출력 파일이름 지정 (기본 = \"output.ps\")"
+#: ../src/bc.c:143 ../src/bc.c:285
+msgid "Interleaved 2 of 5"
+msgstr "Interleaved 2 of 5"
 
-#: src/glabels-batch.c:52
-msgid "filename"
-msgstr "파일이름"
+#: ../src/bc.c:146 ../src/bc.c:180
+msgid "Codabar"
+msgstr "Codabar"
 
-#: src/glabels-batch.c:54
-msgid "number of sheets (default=1)"
-msgstr "용지 수(기본= 1)"
+#: ../src/bc.c:149
+msgid "MSI"
+msgstr "MSI"
 
-#: src/glabels-batch.c:54
-msgid "sheets"
-msgstr "용지"
+#: ../src/bc.c:152
+msgid "Plessey"
+msgstr "Plessey"
 
-#: src/glabels-batch.c:56
-msgid "number of copies (default=1)"
-msgstr "복사 수(기본= 1)"
+#: ../src/bc.c:155 ../src/bc.c:213
+#, fuzzy
+msgid "Code 93"
+msgstr "Code 39"
 
-#: src/glabels-batch.c:56
-msgid "copies"
-msgstr "복사"
+#: ../src/bc.c:162
+msgid "Australia Post Standard"
+msgstr ""
 
-#: src/glabels-batch.c:58
-#: src/print-dialog.c:336
-msgid "print outlines (to test printer alignment)"
-msgstr "외곽선 인쇄 (프린터 정렬 테스트)"
+#: ../src/bc.c:165
+msgid "Australia Post Reply Paid"
+msgstr ""
 
-#: src/glabels-batch.c:60
-#: src/print-dialog.c:344
-msgid "print in reverse (i.e. a mirror image)"
-msgstr "거꾸로 인쇄 (거울 효과)"
+#: ../src/bc.c:168
+msgid "Australia Post Route Code"
+msgstr ""
 
-#: src/glabels-batch.c:96
-msgid "[OPTION...] GLABELS_FILE..."
-msgstr "[옵션...] gLabels 파일..."
+#: ../src/bc.c:171
+msgid "Australia Post Redirect"
+msgstr ""
 
-#: src/glabels-batch.c:116
-#, c-format
-msgid "missing glabels file\n"
-msgstr "gLabel 파일이 보이지 않음\n"
+#: ../src/bc.c:174
+msgid "Aztec Code"
+msgstr ""
 
-#: src/glabels-batch.c:157
-#, c-format
-msgid "cannot open glabels file %s\n"
-msgstr "gLabel 파일  %s 을(를) 열 수 없습니다.\n"
+#: ../src/bc.c:177
+msgid "Aztec Rune"
+msgstr ""
 
-#: src/window.c:244
-msgid "(none) - gLabels"
-msgstr "(없음) - gLabels"
+#: ../src/bc.c:183
+#, fuzzy
+msgid "Code One"
+msgstr "Code 39"
 
-#: src/window.c:414
-msgid "(modified)"
-msgstr "(수정됨)"
+#: ../src/bc.c:186
+#, fuzzy
+msgid "Code 11"
+msgstr "Code 128"
 
-#: src/stock.c:65
-#: data/ui/glabels-ui.xml.h:165
-msgid "_Select Mode"
-msgstr "모드 선택(_S)"
+#: ../src/bc.c:189
+#, fuzzy
+msgid "Code 16K"
+msgstr "Code 128"
 
-#: src/stock.c:66
-#: data/ui/glabels-ui.xml.h:166
-msgid "_Text"
-msgstr "글자(_T)"
+#: ../src/bc.c:192
+msgid "Code 2 of 5 Matrix"
+msgstr ""
 
-#: src/stock.c:67
-#: data/ui/glabels-ui.xml.h:151
-msgid "_Line"
-msgstr "선(_L)"
+#: ../src/bc.c:195
+msgid "Code 2 of 5 IATA"
+msgstr ""
 
-#: src/stock.c:68
-#: data/ui/glabels-ui.xml.h:133
-msgid "_Box"
-msgstr "사각형(_B)"
+#: ../src/bc.c:198
+msgid "Code 2 of 5 Data Logic"
+msgstr ""
 
-#: src/stock.c:69
-#: data/ui/glabels-ui.xml.h:144
-msgid "_Ellipse"
-msgstr "타원(_E)"
+#: ../src/bc.c:201
+msgid "Code 32 (Italian Pharmacode)"
+msgstr ""
 
-#: src/stock.c:70
-#: data/ui/glabels-ui.xml.h:149
-msgid "_Image"
-msgstr "그림(_I)"
+#: ../src/bc.c:207
+#, fuzzy
+msgid "Code 39 Extended"
+msgstr "Code 39"
 
-#: src/stock.c:71
-#: data/ui/glabels-ui.xml.h:11
-msgid "Bar_code"
-msgstr "바코드(_C)"
+#: ../src/bc.c:210
+#, fuzzy
+msgid "Code 49"
+msgstr "Code 39"
 
-#: src/stock.c:72
-msgid "_Merge Properties"
-msgstr "여백 속성(_M)"
+#: ../src/bc.c:219
+msgid "Code 128 (Mode C supression)"
+msgstr ""
 
-#: src/stock.c:73
-msgid "Object _Properties"
-msgstr "항목 속성(_P)"
+#: ../src/bc.c:222
+msgid "DAFT Code"
+msgstr ""
 
-#: src/stock.c:74
-#: data/ui/glabels-ui.xml.h:13
-msgid "Bring to _Front"
-msgstr "앞으로 내기(_F)"
+#: ../src/bc.c:225
+msgid "Data Matrix"
+msgstr ""
 
-#: src/stock.c:75
-#: data/ui/glabels-ui.xml.h:110
-msgid "Send to _Back"
-msgstr "뒤로 보내기(_B)"
+#: ../src/bc.c:228
+msgid "Deutsche Post Leitcode"
+msgstr ""
 
-#: src/stock.c:76
-#: data/ui/glabels-ui.xml.h:97
-msgid "Rotate _Left"
-msgstr "왼쪽으로 회전(_L)"
+#: ../src/bc.c:231
+msgid "Deutsche Post Identcode"
+msgstr ""
 
-#: src/stock.c:77
-#: data/ui/glabels-ui.xml.h:98
-msgid "Rotate _Right"
-msgstr "오른쪽으로 회전(_R)"
+#: ../src/bc.c:234
+msgid "Dutch Post KIX Code"
+msgstr ""
 
-#: src/stock.c:78
-#: data/ui/glabels-ui.xml.h:52
-msgid "Flip _Horizontally"
-msgstr "수직 뒤집기(_H)"
+#: ../src/bc.c:237
+msgid "European Article Number (EAN)"
+msgstr ""
 
-#: src/stock.c:79
-#: data/ui/glabels-ui.xml.h:53
-msgid "Flip _Vertically"
-msgstr "수평 뒤집기(_V)"
+#: ../src/bc.c:240
+msgid "Grid Matrix"
+msgstr ""
 
-#: src/stock.c:80
-#: data/ui/glabels-ui.xml.h:150
-msgid "_Lefts"
-msgstr "좌측(_L)"
+#: ../src/bc.c:243
+msgid "GS1-128"
+msgstr ""
 
-#: src/stock.c:81
-#: data/ui/glabels-ui.xml.h:162
-msgid "_Rights"
-msgstr "우측(_R)"
+#: ../src/bc.c:246
+msgid "GS1 DataBar-14"
+msgstr ""
 
-#: src/stock.c:82
-#: data/ui/glabels-ui.xml.h:134
-msgid "_Centers"
-msgstr "중앙(_C)"
+#: ../src/bc.c:255
+msgid "GS1 DataBar-14 Stacked"
+msgstr ""
 
-#: src/stock.c:83
-#: data/ui/glabels-ui.xml.h:167
-msgid "_Tops"
-msgstr "상위(_T)"
+#: ../src/bc.c:258
+msgid "GS1 DataBar-14 Stacked Omni."
+msgstr ""
 
-#: src/stock.c:84
-msgid "Bottoms"
-msgstr "하위"
+#: ../src/bc.c:261
+msgid "GS1 DataBar Extended Stacked"
+msgstr ""
 
-#: src/stock.c:85
-msgid "Centers"
-msgstr "중앙"
+#: ../src/bc.c:264
+#, fuzzy
+msgid "HIBC Code 128"
+msgstr "Code 128"
 
-#: src/stock.c:86
-#: src/stock.c:87
-#: data/ui/glabels-ui.xml.h:62
-msgid "Label Ce_nter"
-msgstr "라벨 중앙(_N)"
+#: ../src/bc.c:267
+#, fuzzy
+msgid "HIBC Code 39"
+msgstr "Code 39"
 
-#: src/stock.c:88
-#: data/ui/glabels-ui.xml.h:51
-msgid "Fill color"
-msgstr "색 채우기"
+#: ../src/bc.c:270
+msgid "HIBC Data Matrix"
+msgstr ""
 
-#: src/stock.c:89
-#: data/ui/glabels-ui.xml.h:64
-msgid "Line color"
-msgstr "선 색상"
+#: ../src/bc.c:273
+msgid "HIBC QR Code"
+msgstr ""
 
-#: src/stock.c:90
-#: src/stock.c:92
-msgid "Linked"
-msgstr "연결"
+#: ../src/bc.c:276
+msgid "HIBC PDF417"
+msgstr ""
 
-#: src/stock.c:91
-#: src/stock.c:93
-msgid "Not Linked"
-msgstr "연결되지 않음"
+#: ../src/bc.c:279
+msgid "HIBC Micro PDF417"
+msgstr ""
 
-#: src/ui-property-bar.c:345
-#: src/object-editor.c:499
-msgid "Default"
-msgstr "기본"
+#: ../src/bc.c:282
+msgid "HIBC Aztec Code"
+msgstr ""
 
-#: src/ui-property-bar.c:360
-#: src/object-editor.c:512
-msgid "No fill"
-msgstr "채우기 없음"
+#: ../src/bc.c:291
+msgid "ITF-14"
+msgstr ""
 
-#: src/ui-property-bar.c:375
-#: src/object-editor.c:505
-msgid "No line"
-msgstr "선 없음"
+#: ../src/bc.c:294
+msgid "Japanese Postal"
+msgstr ""
 
-#: src/ui-sidebar.c:180
-msgid "Object properties"
-msgstr "항목 속성"
+#: ../src/bc.c:297
+msgid "Korean Postal"
+msgstr ""
 
-#: src/commands.c:385
-msgid ""
-"A label and business card creation program for GNOME.\n"
-" \n"
-"Glabels is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\n"
-" \n"
-"This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.\n"
+#: ../src/bc.c:300
+msgid "LOGMARS"
 msgstr ""
-"GNOME 에서 Label과 명함을 제작하는 프로그램입니다.\n"
-"\n"
-"Glabels는 자유소프트웨어 입니다; 여러분은 이 프로그램을 GNU(General Public License)에 따라 자유롭게 수정 배포 할 수 있습니다. 이 프로그램은 GNU의 Ver.2 를 따르고 있습니다. \n"
-"\n"
-"이 프로그램은 어떠한 저작권료 없이 사용되어 질 수 있습니다.(번역주 : 번역자는 GNU를 깊이 알지 못합니다. 이 부분의 번역에 지적하고픈 부분이 있다면 번역 자료와 함께 연락주십시오. xein@naver.com)\n"
 
-#: src/commands.c:399
-msgid "See the file AUTHORS for additional credits,"
-msgstr "참여 제작자 AUTHORS 파일을 보세요."
+#: ../src/bc.c:303
+msgid "Micro PDF417"
+msgstr ""
 
-#: src/commands.c:400
-msgid "or visit http://glabels.sourceforge.net/"
-msgstr "또는 이곳을 방문 하세요. http://glabels.sourceforge.net/"
+#: ../src/bc.c:306
+msgid "Micro QR Code"
+msgstr ""
 
-#: src/commands.c:409
-msgid " "
-msgstr " "
+#: ../src/bc.c:309
+#, fuzzy
+msgid "MSI Plessey"
+msgstr "Plessey"
 
-#: src/commands.c:424
-msgid "glabels"
-msgstr "gLabels"
+#: ../src/bc.c:312
+msgid "NVE-18"
+msgstr ""
 
-#: src/file.c:100
-msgid "New Label or Card"
-msgstr "새 라벨 또는 카드"
+#: ../src/bc.c:315
+msgid "PDF417"
+msgstr ""
 
-#: src/file.c:132
-#: src/file.c:304
-msgid "Media Type"
-msgstr "매체 형식"
+#: ../src/bc.c:318
+msgid "PDF417 Truncated"
+msgstr ""
 
-#: src/file.c:138
-#: src/file.c:310
-msgid "Label orientation"
-msgstr "라벨의 방향"
+#: ../src/bc.c:321
+msgid "PLANET"
+msgstr ""
 
-#: src/file.c:269
-msgid "Label properties"
-msgstr "라벨 속성"
+#: ../src/bc.c:324
+#, fuzzy
+msgid "PostNet"
+msgstr "붙이기"
 
-#: src/file.c:452
-#: src/file.c:870
-msgid "All files"
-msgstr "모ë\93  í\8c\8cì\9d¼"
+#: ../src/bc.c:327
+#, fuzzy
+msgid "Pharmacode"
+msgstr "ë°\94ì½\94ë\93\9c(_C)"
 
-#: src/file.c:457
-#: src/file.c:875
-msgid "gLabels documents"
-msgstr "gLabels 문서"
+#: ../src/bc.c:330
+msgid "Pharmacode 2-track"
+msgstr ""
 
-#: src/file.c:505
-#: src/file.c:617
-#: src/file.c:934
-#: src/file.c:1130
-msgid "Empty file name selection"
-msgstr "비어있는 파일 이름"
+#: ../src/bc.c:333
+msgid "Pharmazentral Nummer (PZN)"
+msgstr ""
 
-#: src/file.c:506
-#: src/file.c:520
-#: src/file.c:618
-#: src/file.c:632
-msgid "Please select a file or supply a valid file name"
-msgstr "지원하는 파일을 선택하세요."
+#: ../src/bc.c:336
+msgid "QR Code"
+msgstr ""
 
-#: src/file.c:519
-#: src/file.c:631
-msgid "File does not exist"
-msgstr "파일이 없습니다."
+#: ../src/bc.c:339
+msgid "Royal Mail 4-State"
+msgstr ""
 
-#: src/file.c:563
-#: data/ui/glabels-ui.xml.h:75
-msgid "Open"
-msgstr "ì\97´ê¸°"
+#: ../src/bc.c:342
+#, fuzzy
+msgid "Telepen"
+msgstr "ì\82­ì \9c"
 
-#: src/file.c:565
-msgid "Open label"
-msgstr "라벨 열기"
+#: ../src/bc.c:345
+msgid "Telepen Numeric"
+msgstr ""
 
-#: src/file.c:707
-#, c-format
-msgid "Could not open file \"%s\""
-msgstr "\"%s\" 파일을 열 수 없습니다."
+#: ../src/bc.c:354
+msgid "USPS One Code"
+msgstr ""
 
-#: src/file.c:715
-msgid "Not a supported file format"
-msgstr "지원되지 않는 파일 형식"
+#: ../src/bc.c:357
+#, fuzzy
+msgid "UK Plessey"
+msgstr "Plessey"
 
-#: src/file.c:797
-#: src/file.c:979
-#: src/file.c:1174
-#, c-format
-msgid "Could not save file \"%s\""
-msgstr "\"%s\" 파일을 저장할 수 없습니다."
+#: ../src/bc.c:364
+msgid "IEC16022 (DataMatrix)"
+msgstr ""
 
-#: src/file.c:805
-#: src/file.c:987
-#: src/file.c:1182
-msgid "Error encountered during save.  The file is still not saved."
-msgstr "저장하는데 오류가 발생했습니다. 파일을 저장하지 못했습니다."
+#: ../src/bc.c:371
+msgid "IEC18004 (QRCode)"
+msgstr ""
 
-#: src/file.c:848
-#: src/file.c:1048
-#, c-format
-msgid "Save \"%s\" as"
-msgstr "\"%s\" 이름으로 저장"
+#: ../src/color-combo-button.c:198 ../src/color-combo.c:178
+#, fuzzy
+msgid "Default Color"
+msgstr "기본"
 
-#: src/file.c:935
-#: src/file.c:1131
-msgid "Please supply a valid file name"
-msgstr "ì\9c í\9a¨í\95\9c í\8c\8cì\9d¼ì\9d´ë¦\84ì\9d´ í\95\84ì\9a\94í\95©ë\8b\88ë\8b¤."
+#: ../src/color-combo-menu.c:83
+#, fuzzy
+msgid "Dark Red"
+msgstr "ì\96´ë\91\90ì\9a´ ë¹¨ê°\95ì\83\89"
 
-#: src/file.c:952
-#: src/file.c:1147
-#, c-format
-msgid "Overwrite file \"%s\"?"
-msgstr "\"%s\"파일이름으로 덮어쓰시겠습니까?"
+#: ../src/color-combo-menu.c:84
+msgid "Brown"
+msgstr ""
 
-#: src/file.c:960
-#: src/file.c:1155
-msgid "File already exists."
-msgstr "파일이름이 존재합니다."
+#: ../src/color-combo-menu.c:85
+msgid "Dark Goldenrod"
+msgstr ""
 
-#: src/file.c:1271
-#, c-format
-msgid "Save changes to document \"%s\" before closing?"
-msgstr "닫기전에 바뀐부분을 \"%s\"이름으로 저장하시겠습니까?"
+#: ../src/color-combo-menu.c:86
+#, fuzzy
+msgid "Dark Green"
+msgstr "어두운 녹색"
 
-#: src/file.c:1279
-msgid "Your changes will be lost if you don't save them."
-msgstr "저장하지 않으면, 바뀐부분을 잃어버리게 됩니다."
+#: ../src/color-combo-menu.c:87
+msgid "Dark Cyan"
+msgstr ""
 
-#: src/file.c:1282
-msgid "Close without saving"
-msgstr "저장없이 닫기"
+#: ../src/color-combo-menu.c:88
+msgid "Navy Blue"
+msgstr ""
 
-#. Should not happen
-#: src/prefs.c:156
-#: src/prefs.c:163
-#: data/glade/prefs-dialog.glade.h:23
-#: data/glade/object-editor.glade.h:37
-msgid "points"
-msgstr "포인트"
+#: ../src/color-combo-menu.c:89
+#, fuzzy
+msgid "Dark Violet"
+msgstr "어두운 파랑색"
 
-#: src/prefs.c:158
-#: data/glade/object-editor.glade.h:36
-#: data/glade/template-designer.glade.h:74
-msgid "inches"
-msgstr "[인치]"
+#: ../src/color-combo-menu.c:91
+#, fuzzy
+msgid "Red"
+msgstr "재실행"
 
-#: src/prefs.c:160
-msgid "mm"
-msgstr "[밀리미터]"
+#: ../src/color-combo-menu.c:92
+#, fuzzy
+msgid "Orange"
+msgstr "오렌지색"
 
-#: src/prefs-dialog.c:248
-#: data/glade/prefs-dialog.glade.h:22
-msgid "gLabels Preferences"
-msgstr "gLabels 환경설정"
+#: ../src/color-combo-menu.c:93
+msgid "Dark Yellow"
+msgstr ""
 
-#.
-#. * Submenu: Order
-#.
-#: src/view.c:3570
-#: data/ui/glabels-ui.xml.h:157
-msgid "_Order"
-msgstr "순서(_O)"
+#: ../src/color-combo-menu.c:94
+#, fuzzy
+msgid "Medium green"
+msgstr "탁한 녹색"
 
-#.
-#. * Submenu: Rotate/Flip
-#.
-#: src/view.c:3591
-#: data/ui/glabels-ui.xml.h:163
-msgid "_Rotate/Flip"
-msgstr "회전/뒤집기(_R)"
+#: ../src/color-combo-menu.c:95
+msgid "Turquoise"
+msgstr ""
 
-#.
-#. * Submenu: Align Horizontally
-#.
-#: src/view.c:3624
-msgid "Align _Horizontally"
-msgstr "가로로 정렬(_H)"
+#: ../src/color-combo-menu.c:96
+#, fuzzy
+msgid "Blue"
+msgstr "파랑색"
 
-#.
-#. * Submenu: Align Vertically
-#.
-#: src/view.c:3663
-msgid "Align _Vertically"
-msgstr "세로로 정렬(_V)"
+#: ../src/color-combo-menu.c:97
+#, fuzzy
+msgid "Purple"
+msgstr "자주색"
 
-#: src/view.c:3724
-#: data/ui/glabels-ui.xml.h:140
-msgid "_Delete"
-msgstr "삭제(_D)"
+#: ../src/color-combo-menu.c:99
+msgid "Salmon"
+msgstr ""
 
-#. Build editor.
-#: src/view-box.c:223
-msgid "Box object properties"
-msgstr "사각형 개체 속성"
+#: ../src/color-combo-menu.c:100
+#, fuzzy
+msgid "Gold"
+msgstr "금색"
 
-#. Build editor.
-#: src/view-ellipse.c:223
-msgid "Ellipse object properties"
-msgstr "타원 개체 속성"
+#: ../src/color-combo-menu.c:101
+#, fuzzy
+msgid "Yellow"
+msgstr "노랑색"
 
-#. Build editor.
-#: src/view-line.c:223
-msgid "Line object properties"
-msgstr "선 개체 속성"
+#: ../src/color-combo-menu.c:102
+#, fuzzy
+msgid "Green"
+msgstr "녹색"
 
-#. Build editor.
-#: src/view-image.c:222
-msgid "Image object properties"
-msgstr "그림 개체 속성"
+#: ../src/color-combo-menu.c:103
+#, fuzzy
+msgid "Cyan"
+msgstr "청록색"
 
-#. Build editor.
-#: src/view-text.c:250
-msgid "Text object properties"
-msgstr "글자 개체 속성"
+#: ../src/color-combo-menu.c:104
+#, fuzzy
+msgid "SkyBlue"
+msgstr "하늘색"
 
-#: src/view-text.c:562
-#: data/glade/object-editor.glade.h:28
-msgid "Text"
-msgstr "글자"
+#: ../src/color-combo-menu.c:105
+msgid "Violet"
+msgstr ""
 
-#. Build editor.
-#: src/view-barcode.c:209
-msgid "Barcode object properties"
-msgstr "ë°\94ì½\94ë\93\9c ê°\9cì²´ ì\86\8dì\84±"
+#: ../src/color-combo-menu.c:107
+#, fuzzy
+msgid "Pink"
+msgstr "ë\84í\99\8dì\83\89"
 
-#: src/view-barcode.c:579
-#: src/print.c:1088
-msgid "Invalid barcode data"
-msgstr "잘못된 바코드 데이터"
+#: ../src/color-combo-menu.c:108
+msgid "Khaki"
+msgstr ""
 
-#: src/merge-properties-dialog.c:231
-msgid "Merge Properties"
-msgstr "여백 속성"
+#: ../src/color-combo-menu.c:109
+#, fuzzy
+msgid "Light Yellow"
+msgstr "가벼운 노랑색"
 
-#. ---- Source section ----
-#: src/merge-properties-dialog.c:237
-msgid "Source"
-msgstr "소스"
+#: ../src/color-combo-menu.c:110
+#, fuzzy
+msgid "Light Green"
+msgstr "가벼운 녹색"
 
-#: src/merge-properties-dialog.c:245
-msgid "Format:"
-msgstr "서식:"
+#: ../src/color-combo-menu.c:111
+#, fuzzy
+msgid "Light Cyan"
+msgstr "가벼운 청록색"
 
-#. Location line
-#: src/merge-properties-dialog.c:273
-msgid "Location:"
-msgstr "장소:"
+#: ../src/color-combo-menu.c:112
+msgid "Slate Gray"
+msgstr ""
 
-#: src/merge-properties-dialog.c:282
-#: src/merge-properties-dialog.c:393
-msgid "Select merge-database source"
-msgstr "병합 데이터베이스 소스 선택"
+#: ../src/color-combo-menu.c:113
+#, fuzzy
+msgid "Thistle"
+msgstr "흰색"
 
-#: src/merge-properties-dialog.c:289
-#: src/merge-properties-dialog.c:404
-msgid "N/A"
-msgstr "N/A"
+#: ../src/color-combo-menu.c:115
+#, fuzzy
+msgid "White"
+msgstr "흰색"
 
-#. ---- Sample Fields section ----
-#: src/merge-properties-dialog.c:300
-msgid "Record selection/preview:"
-msgstr "선택 기록/미리보기:"
+#: ../src/color-combo-menu.c:117
+#, no-c-format
+msgid "10% Gray"
+msgstr ""
 
-#: src/merge-properties-dialog.c:326
-msgid "Select"
-msgstr "선택"
+#: ../src/color-combo-menu.c:119
+#, no-c-format
+msgid "25% Gray"
+msgstr ""
 
-#: src/merge-properties-dialog.c:334
-msgid "Record/Field"
-msgstr "기록/범위"
+#: ../src/color-combo-menu.c:121
+#, no-c-format
+msgid "40% Gray"
+msgstr ""
 
-#: src/merge-properties-dialog.c:342
-#: data/glade/object-editor.glade.h:9
-msgid "Data"
-msgstr "데이터"
+#: ../src/color-combo-menu.c:123
+#, no-c-format
+msgid "50% Gray"
+msgstr ""
 
-#: src/print-dialog.c:266
-#: data/ui/glabels-ui.xml.h:82
-msgid "Print"
-msgstr "인쇄"
+#: ../src/color-combo-menu.c:125
+#, no-c-format
+msgid "60% Gray"
+msgstr ""
 
-#: src/print-dialog.c:281
-msgid "_Job"
-msgstr "작업(_J)"
+#: ../src/color-combo-menu.c:126
+#, fuzzy
+msgid "Black"
+msgstr "검은색"
 
-#: src/print-dialog.c:286
-msgid "P_rinter"
-msgstr "프린터(_R)"
+#: ../src/color-combo-menu.c:254 ../src/color-combo-menu.c:373
+#, fuzzy
+msgid "Custom Color"
+msgstr "임의의 색상:"
 
-#. ----------- Add simple-copies widget ------------
-#: src/print-dialog.c:314
-msgid "Copies"
-msgstr "매수"
+#: ../src/color-combo-menu.c:319
+#, fuzzy, c-format
+msgid "Custom Color #%u"
+msgstr "임의의 색상:"
 
-#. ------- Add merge control widget ------------
-#: src/print-dialog.c:322
-msgid "Document merge control"
-msgstr "문서 여백 제어"
+#: ../src/critical-error-handler.c:70
+msgid "gLabels Fatal Error!"
+msgstr ""
 
-#. ----------- Add custom print options area ------------
-#: src/print-dialog.c:330
-msgid "Options"
-msgstr "옵션"
+#: ../src/file.c:84
+msgid "New Label or Card"
+msgstr "새 라벨 또는 카드"
 
-#: src/print-dialog.c:351
-msgid "print crop marks"
-msgstr "자르기 표시 인쇄"
+#: ../src/file.c:175 ../src/label.c:587 ../src/label.c:631
+msgid "Label properties"
+msgstr "라벨 속성"
 
-#: src/print-dialog.c:553
-#: src/print-dialog.c:592
-msgid "Print preview"
-msgstr "인쇄 미리보기"
+#: ../src/file.c:267 ../src/file.c:557
+msgid "All files"
+msgstr "모든 파일"
 
-#: src/template-designer.c:409
-#: data/glade/template-designer.glade.h:73
-msgid "gLabels Template Designer"
-msgstr "gLabels 서식 디자이너"
+#: ../src/file.c:272 ../src/file.c:562
+msgid "gLabels documents"
+msgstr "gLabels 문서"
 
-#: src/bc.c:60
-msgid "POSTNET (any)"
-msgstr "POSTNET (임의)"
+#: ../src/file.c:319 ../src/file.c:620
+msgid "Empty file name selection"
+msgstr "비어있는 파일 이름"
 
-#: src/bc.c:63
-msgid "POSTNET-5 (ZIP only)"
-msgstr "POSTNET-5 (ZIP만)"
+#: ../src/file.c:322 ../src/file.c:338
+msgid "Please select a file or supply a valid file name"
+msgstr "지원하는 파일을 선택하세요."
 
-#: src/bc.c:66
-msgid "POSTNET-9 (ZIP+4)"
-msgstr "POSTNET-9 (ZIP+4)"
+#: ../src/file.c:335
+msgid "File does not exist"
+msgstr "파일이 없습니다."
 
-#: src/bc.c:69
-msgid "POSTNET-11 (DPBC)"
-msgstr "POSTNET-11 (DPBC)"
+#: ../src/file.c:410
+#, c-format
+msgid "Could not open file \"%s\""
+msgstr "\"%s\" 파일을 열 수 없습니다."
 
-#: src/bc.c:72
-msgid "EAN (any)"
-msgstr "EAN (임의)"
+#: ../src/file.c:413
+msgid "Not a supported file format"
+msgstr "지원되지 않는 파일 형식"
 
-#: src/bc.c:75
-msgid "EAN-8"
-msgstr "EAN-8"
+#: ../src/file.c:491 ../src/file.c:670
+#, c-format
+msgid "Could not save file \"%s\""
+msgstr "\"%s\" 파일을 저장할 수 없습니다."
 
-#: src/bc.c:78
-msgid "EAN-8 +2"
-msgstr "EAN-8 +2"
+#: ../src/file.c:495 ../src/file.c:674
+msgid "Error encountered during save.  The file is still not saved."
+msgstr "저장하는데 오류가 발생했습니다. 파일을 저장하지 못했습니다."
 
-#: src/bc.c:81
-msgid "EAN-8 +5"
-msgstr "EAN-8 +5"
+#: ../src/file.c:535
+#, c-format
+msgid "Save \"%s\" as"
+msgstr "\"%s\" 이름으로 저장"
 
-#: src/bc.c:84
-msgid "EAN-13"
-msgstr "EAN-13"
+#: ../src/file.c:623
+msgid "Please supply a valid file name"
+msgstr "유효한 파일이름이 필요합니다."
 
-#: src/bc.c:87
-msgid "EAN-13 +2"
-msgstr "EAN-13 +2"
+#: ../src/file.c:644
+#, c-format
+msgid "Overwrite file \"%s\"?"
+msgstr "\"%s\"파일이름으로 덮어쓰시겠습니까?"
 
-#: src/bc.c:90
-msgid "EAN-13 +5"
-msgstr "EAN-13 +5"
+#: ../src/file.c:648
+msgid "File already exists."
+msgstr "파일이름이 존재합니다."
 
-#: src/bc.c:93
-msgid "UPC (UPC-A or UPC-E)"
-msgstr "UPC (UPC-A 또는 UPC-E)"
+#: ../src/file.c:744
+#, c-format
+msgid "Save changes to document \"%s\" before closing?"
+msgstr "닫기전에 바뀐부분을 \"%s\"이름으로 저장하시겠습니까?"
 
-#: src/bc.c:96
-msgid "UPC-A"
-msgstr "UPC-A"
+#: ../src/file.c:748
+msgid "Your changes will be lost if you don't save them."
+msgstr "저장하지 않으면, 바뀐부분을 잃어버리게 됩니다."
 
-#: src/bc.c:99
-msgid "UPC-A +2"
-msgstr "UPC-A +2"
+#: ../src/file.c:751
+msgid "Close without saving"
+msgstr "저장없이 닫기"
 
-#: src/bc.c:102
-msgid "UPC-A +5"
-msgstr "UPC-A +5"
+#: ../src/font-combo-menu.c:137
+#, fuzzy
+msgid "Recent fonts"
+msgstr "최근의 파일(_F)"
 
-#: src/bc.c:105
-msgid "UPC-E"
-msgstr "UPC-E"
+#: ../src/font-combo-menu.c:152
+msgid "Proportional fonts"
+msgstr ""
 
-#: src/bc.c:108
-msgid "UPC-E +2"
-msgstr "UPC-E +2"
+#: ../src/font-combo-menu.c:160
+msgid "Fixed-width fonts"
+msgstr ""
 
-#: src/bc.c:111
-msgid "UPC-E +5"
-msgstr "UPC-E +5"
+#: ../src/font-combo-menu.c:168
+#, fuzzy
+msgid "All fonts"
+msgstr "모든 파일"
 
-#: src/bc.c:114
-msgid "ISBN"
-msgstr "ISBN"
+#.
+#. * Allow text samples to be localized.
+#. *
+#. * FIXME: if we could extract enough meta information from the fonts
+#. * themselves, perhaps rather than setting these globally for the
+#. * current locale, they could be unique to each font family.
+#.
+#: ../src/font-combo-menu-item.c:132
+msgctxt "Short sample text"
+msgid "Aa"
+msgstr ""
 
-#: src/bc.c:117
-msgid "ISBN +5"
-msgstr "ISBN +5"
+#: ../src/font-combo-menu-item.c:134
+msgctxt "Lower case sample text"
+msgid "abcdefghijklmnopqrstuvwxyz"
+msgstr ""
 
-#: src/bc.c:120
-msgid "Code 39"
-msgstr "Code 39"
+#: ../src/font-combo-menu-item.c:136
+msgctxt "Upper case sample text"
+msgid "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr ""
 
-#: src/bc.c:123
-msgid "Code 128"
-msgstr "Code 128"
+#: ../src/font-combo-menu-item.c:138
+msgctxt "Numbers and special characters sample text"
+msgid "0123456789 .:,;(*!?)"
+msgstr ""
 
-#: src/bc.c:126
-msgid "Code 128C"
-msgstr "Code 128C"
+#: ../src/font-combo-menu-item.c:157
+msgid "Sample text"
+msgstr ""
 
-#: src/bc.c:129
-msgid "Code 128B"
-msgstr "Code 128B"
+#: ../src/glabels-batch.c:53
+#, fuzzy
+msgid "set output filename (default=\"output.pdf\")"
+msgstr "출력 파일이름 지정 (기본 = \"output.ps\")"
 
-#: src/bc.c:132
-msgid "Interleaved 2 of 5"
-msgstr "Interleaved 2 of 5"
+#: ../src/glabels-batch.c:53 ../src/glabels-batch.c:67
+msgid "filename"
+msgstr "파일이름"
 
-#: src/bc.c:135
-msgid "Codabar"
-msgstr "Codabar"
+#: ../src/glabels-batch.c:55
+msgid "number of sheets (default=1)"
+msgstr "용지 수(기본= 1)"
 
-#: src/bc.c:138
-msgid "MSI"
-msgstr "MSI"
+#: ../src/glabels-batch.c:55
+msgid "sheets"
+msgstr "용지"
 
-#: src/bc.c:141
-msgid "Plessey"
-msgstr "Plessey"
+#: ../src/glabels-batch.c:57
+msgid "number of copies (default=1)"
+msgstr "복사 수(기본= 1)"
 
-#: src/label.c:569
-msgid "Untitled"
-msgstr "제목없음"
+#: ../src/glabels-batch.c:57
+msgid "copies"
+msgstr "복사"
 
-#: src/xml-label.c:176
-#: src/xml-label.c:213
-msgid "xmlParseFile error"
-msgstr "xmlParse파일 오류"
+#: ../src/glabels-batch.c:59
+#, fuzzy
+msgid "first label on first sheet (default=1)"
+msgstr "용지 수(기본= 1)"
 
-#: src/xml-label.c:250
-msgid "No document root"
-msgstr "root 문서가 아님"
+#: ../src/glabels-batch.c:59
+msgid "first"
+msgstr ""
 
-#: src/xml-label.c:264
-msgid "Importing from glabels 0.1 format"
-msgstr "gLabels 0.1로 부터 가져오기"
+#: ../src/glabels-batch.c:61 ../data/ui/print-op-dialog-custom-widget.ui.h:13
+msgid "print outlines (to test printer alignment)"
+msgstr "외곽선 인쇄 (프린터 정렬 테스트)"
 
-#: src/xml-label.c:272
-msgid "Importing from glabels 0.4 format"
-msgstr "gLabels 0.4로 부터 가져오기"
+#: ../src/glabels-batch.c:63 ../data/ui/print-op-dialog-custom-widget.ui.h:12
+msgid "print in reverse (i.e. a mirror image)"
+msgstr "거꾸로 인쇄 (거울 효과)"
 
-#: src/xml-label.c:279
-msgid "Importing from glabels 1.91 format"
-msgstr "gLabels 1.91로 부터 가져오기"
+#: ../src/glabels-batch.c:65 ../data/ui/print-op-dialog-custom-widget.ui.h:11
+msgid "print crop marks"
+msgstr "자르기 표시 인쇄"
 
-#: src/xml-label.c:282
-msgid "bad document, unknown glabels Namespace"
-msgstr "잘못된 문서, 알 수 없는 Glabels 이름공간"
+#: ../src/glabels-batch.c:67
+msgid "input file for merging"
+msgstr ""
 
-#: src/xml-label.c:311
-#: src/xml-label-04.c:75
-#: src/xml-label-191.c:131
-#, c-format
-msgid "Bad root node = \"%s\""
-msgstr "잘못된 Root 노드 = \"%s\""
+#: ../src/glabels-batch.c:69 ../src/glabels.c:64
+msgid "[FILE...]"
+msgstr ""
 
-#: src/xml-label.c:348
-#: src/xml-label-191.c:165
-#, c-format
-msgid "bad node in Document node =  \"%s\""
-msgstr "문서 노드 내의 잘못된 노드 = \"%s\""
+#: ../src/glabels-batch.c:99
+msgid "Print files created with gLabels."
+msgstr ""
 
-#: src/xml-label.c:393
-#: src/xml-label-04.c:123
-#: src/xml-label-191.c:197
+#: ../src/glabels-batch.c:107 ../src/glabels.c:89
 #, c-format
-msgid "bad node =  \"%s\""
-msgstr "잘못된 노드 = \"%s\""
+msgid ""
+"%s\n"
+"Run '%s --help' to see a full list of available command line options.\n"
+msgstr ""
+
+#: ../src/glabels-batch.c:151
+#, fuzzy, c-format
+msgid "cannot perform document merge with glabels file %s\n"
+msgstr "gLabel 파일  %s 을(를) 열 수 없습니다.\n"
 
-#: src/xml-label.c:796
-#: src/xml-label-191.c:605
+#: ../src/glabels-batch.c:186
 #, c-format
-msgid "bad node in Data node =  \"%s\""
-msgstr "데이터 노드 내의 잘못된 노드 = \"%s\""
+msgid "cannot open glabels file %s\n"
+msgstr "gLabel 파일  %s 을(를) 열 수 없습니다.\n"
 
-#: src/xml-label.c:962
-#: libglabels/xml-template.c:535
-msgid "Utf8 conversion error."
-msgstr "Utf8 변환 에러"
+#: ../src/glabels.c:81
+msgid "Launch gLabels label and business card designer."
+msgstr ""
 
-#: src/xml-label.c:969
-#: libglabels/xml-template.c:542
-msgid "Problem saving xml file."
-msgstr "XML 파일 저장에 문제가 있습니다."
+#: ../src/label-barcode.c:154 ../src/ui.c:319
+msgid "Create barcode object"
+msgstr "바코드 개체 만들기"
 
-#. This should always be an id, but just in case a name
-#. slips by!
-#: src/xml-label-191.c:680
-#: libglabels/xml-template.c:199
-#, c-format
-msgid "Unknown page size id \"%s\", trying as name"
-msgstr "알 수 없는 용지 크기 ID \"%s\"。名前として扱います。"
+#: ../src/label-barcode.c:227 ../src/label-barcode.c:389
+#, fuzzy
+msgid "Barcode data"
+msgstr "바코드(_C)"
 
-#: src/xml-label-191.c:690
-#: libglabels/xml-template.c:209
-#, c-format
-msgid "Unknown page size id or name \"%s\""
-msgstr "알 수 없는 용지 크기 ID 또는 이름 \"%s\""
+#: ../src/label-barcode.c:263
+#, fuzzy
+msgid "Barcode property"
+msgstr "바코드 개체 속성"
 
-#: src/merge.c:172
-#: src/merge.c:213
-#: src/merge.c:399
-#: src/merge.c:402
-msgid "None"
-msgstr "없음"
+#: ../src/label-barcode.c:485
+msgid "Barcode data empty"
+msgstr ""
 
-#: src/merge-init.c:53
-msgid "Text file with comma delimeters (CSV)"
-msgstr "콤ë§\88ë¡\9c êµ¬ë¶\84ë\90\9c í\85\8dì\8a¤í\8a¸í\8c\8cì\9d¼(CSV)"
+#: ../src/label-barcode.c:489
+msgid "Invalid barcode data"
+msgstr "ì\9e\98못ë\90\9c ë°\94ì½\94ë\93\9c ë\8d°ì\9d´í\84°"
 
-#: src/merge-init.c:60
-msgid "Text file with colon delimeters"
-msgstr "콜론으로 구분된 텍스트 파일"
+#: ../src/label-box.c:156
+#, fuzzy
+msgid "Create box object"
+msgstr "글자 개체 만들기"
 
-#: src/merge-init.c:67
-msgid "Text file with tab delimeters"
-msgstr "텝으로 구분된 텍스트 파일"
+#: ../src/label-box.c:230 ../src/label-ellipse.c:232 ../src/stock.c:93
+#: ../data/ui/property-bar.ui.h:3
+msgid "Fill color"
+msgstr "색 채우기"
 
-#: src/wdgt-image-select.c:201
-#: data/glade/object-editor.glade.h:11
-msgid "File:"
-msgstr "파일:"
+#: ../src/label-box.c:261 ../src/label-ellipse.c:261 ../src/label-line.c:212
+#: ../src/stock.c:94 ../data/ui/property-bar.ui.h:8
+msgid "Line color"
+msgstr "선 색상"
 
-#: src/wdgt-image-select.c:245
-#: data/glade/object-editor.glade.h:16
-msgid "Key:"
-msgstr "키:"
+#: ../src/label-box.c:289 ../src/label-ellipse.c:290 ../src/label-line.c:241
+#: ../data/ui/property-bar.ui.h:9
+msgid "Line width"
+msgstr "선 넓이"
 
-#: src/wdgt-print-copies.c:179
-msgid "Sheets:"
-msgstr "ì\9a©ì§\80:"
+#: ../src/label.c:402
+msgid "Untitled"
+msgstr "ì \9c목ì\97\86ì\9d\8c"
 
-#: src/wdgt-print-copies.c:197
-msgid "Labels"
-msgstr "라벨"
+#: ../src/label.c:705 ../src/ui.c:422
+#, fuzzy
+msgid "Merge properties"
+msgstr "여백 속성"
 
-#: src/wdgt-print-copies.c:200
-msgid "from:"
-msgstr "부터:"
+#: ../src/label.c:1197 ../src/ui.c:215
+msgid "Delete"
+msgstr "삭제"
 
-#: src/wdgt-print-copies.c:207
-msgid "to:"
-msgstr "에게:"
+#: ../src/label.c:1230 ../src/ui.c:324
+#, fuzzy
+msgid "Bring to front"
+msgstr "앞으로 내기(_F)"
 
-#: src/wdgt-print-merge.c:178
-msgid "Start on label"
-msgstr "라벨의 시작"
+#: ../src/label.c:1266 ../src/ui.c:331
+#, fuzzy
+msgid "Send to back"
+msgstr "뒤로 보내기(_B)"
 
-#: src/wdgt-print-merge.c:186
-msgid "on 1st sheet"
-msgstr "첫번째 용지에서"
+#: ../src/label.c:1307
+msgid "Rotate"
+msgstr "회전"
 
-#: src/wdgt-print-merge.c:195
-msgid "Copies:"
-msgstr "매수:"
+#: ../src/label.c:1342 ../src/ui.c:338
+#, fuzzy
+msgid "Rotate left"
+msgstr "왼쪽으로 회전(_L)"
 
-#: src/wdgt-print-merge.c:201
-msgid "Collate"
-msgstr "제본"
+#: ../src/label.c:1375 ../src/ui.c:345
+#, fuzzy
+msgid "Rotate right"
+msgstr "오른쪽으로 회전(_R)"
 
-#: src/wdgt-media-select.c:269
-#: data/glade/template-designer.glade.h:29
-msgid "Description:"
-msgstr "ì\84¤ëª\85:"
+#: ../src/label.c:1410 ../src/ui.c:352
+#, fuzzy
+msgid "Flip horizontally"
+msgstr "ì\88\98ì§\81 ë\92¤ì§\91기(_H)"
 
-#: src/wdgt-media-select.c:279
-#: data/glade/template-designer.glade.h:53
-msgid "Page size:"
-msgstr "ì\9a©ì§\80 í\81¬ê¸°:"
+#: ../src/label.c:1445 ../src/ui.c:359
+#, fuzzy
+msgid "Flip vertically"
+msgstr "ì\88\98í\8f\89 ë\92¤ì§\91기(_V)"
 
-#: src/wdgt-media-select.c:290
-msgid "Label size:"
-msgstr "라벨 크기:"
+#: ../src/label.c:1485 ../src/ui.c:366
+#, fuzzy
+msgid "Align left"
+msgstr "위치:"
 
-#: src/wdgt-media-select.c:301
-msgid "Layout:"
-msgstr "배치:"
+#: ../src/label.c:1542 ../src/ui.c:373
+#, fuzzy
+msgid "Align right"
+msgstr "세로로 정렬(_H)"
 
-#: src/wdgt-media-select.c:578
-#, c-format
-msgid "%d x %d  (%d per sheet)"
-msgstr "%d x %d  (용지의 %d)"
+#: ../src/label.c:1603 ../src/ui.c:380
+#, fuzzy
+msgid "Align horizontal center"
+msgstr "개체 세로 중앙으로 정렬"
 
-#: src/wdgt-media-select.c:582
-#, c-format
-msgid "%d per sheet"
-msgstr "용지의 %d"
+#: ../src/label.c:1679 ../src/ui.c:387
+#, fuzzy
+msgid "Align tops"
+msgstr "개체 상위로 정렬"
 
-#: src/wdgt-media-select.c:614
-#, c-format
-msgid "%s x %s %s"
-msgstr "%s x %s %s"
+#: ../src/label.c:1736 ../src/ui.c:394
+#, fuzzy
+msgid "Align bottoms"
+msgstr "개체 아래로 정렬"
 
-#: src/wdgt-media-select.c:619
-#, c-format
-msgid "%.5g x %.5g %s"
-msgstr "%.5g x %.5g %s"
+#: ../src/label.c:1797 ../src/ui.c:401
+#, fuzzy
+msgid "Align vertical center"
+msgstr "개체 수평 중앙으로 정렬"
 
-#: src/wdgt-media-select.c:630
-#: src/wdgt-media-select.c:644
-#, c-format
-msgid "%s %s diameter"
-msgstr "지름 %s %s"
+#: ../src/label.c:1875 ../src/ui.c:408
+#, fuzzy
+msgid "Center horizontally"
+msgstr "수직 개체 뒤집기"
 
-#: src/wdgt-media-select.c:634
-#: src/wdgt-media-select.c:648
-#, c-format
-msgid "%.5g %s diameter"
-msgstr "지름 %.5g %s"
+#: ../src/label.c:1922 ../src/ui.c:415
+#, fuzzy
+msgid "Center vertically"
+msgstr "수평 개체 뒤집기"
 
-#: src/wdgt-rotate-label.c:193
-msgid "Rotate"
-msgstr "회전"
+#: ../src/label.c:2610 ../src/label.c:2652 ../src/label.c:2678 ../src/ui.c:208
+msgid "Paste"
+msgstr "붙이기"
 
-#. This is the default custom color
-#: src/mygal/color-palette.c:396
-msgid "custom"
-msgstr "ì\9e\84ì\9d\98ì\9d\98"
+#: ../src/label-ellipse.c:160
+#, fuzzy
+msgid "Create ellipse object"
+msgstr "ì\84  ê°\9cì²´ ë§\8cë\93¤ê¸°"
 
-#. "Custom" color - we'll pop up a GnomeColorPicker
-#: src/mygal/color-palette.c:438
-msgid "Custom Color:"
-msgstr "임의의 색상:"
+#: ../src/label-image.c:200 ../src/ui.c:312
+msgid "Create image object"
+msgstr "그림 개체 만들기"
 
-#: src/mygal/color-palette.c:446
-msgid "Choose Custom Color"
-msgstr "임의의 색상 선택"
+#: ../src/label-image.c:333 ../src/label-image.c:474
+#, fuzzy
+msgid "Set image"
+msgstr "그림크기 재설정"
 
-#: src/mygal/color-palette.c:579
-msgid "black"
-msgstr "검은색"
+#: ../src/label-line.c:147 ../src/ui.c:298
+msgid "Create line object"
+msgstr "선 개체 만들기"
 
-#: src/mygal/color-palette.c:580
-msgid "light brown"
-msgstr "밝은 갈색"
+#: ../src/label-object.c:383 ../src/label-object.c:416
+msgid "Move"
+msgstr ""
 
-#: src/mygal/color-palette.c:581
-msgid "brown gold"
-msgstr "고동색"
+#: ../src/label-object.c:467
+#, fuzzy
+msgid "Resize"
+msgstr "용지 크기:"
 
-#: src/mygal/color-palette.c:582
-msgid "dark green #2"
-msgstr "어두운 녹색 #2"
+#: ../src/label-object.c:1185
+msgid "Shadow state"
+msgstr ""
 
-#: src/mygal/color-palette.c:583
-msgid "navy"
-msgstr "남색"
+#: ../src/label-object.c:1228
+msgid "Shadow offset"
+msgstr ""
 
-#: src/mygal/color-palette.c:584
-#: src/mygal/color-palette.c:640
-msgid "dark blue"
-msgstr "어두운 파랑색"
+#: ../src/label-object.c:1276
+msgid "Shadow color"
+msgstr ""
 
-#: src/mygal/color-palette.c:585
-msgid "purple #2"
-msgstr "자주색 #2"
+#: ../src/label-object.c:1319
+msgid "Shadow opacity"
+msgstr ""
 
-#: src/mygal/color-palette.c:586
-msgid "very dark gray"
-msgstr "매우 어두운 회색"
+#: ../src/label-text.c:279 ../src/ui.c:284
+msgid "Create text object"
+msgstr "글자 개체 만들기"
 
-#: src/mygal/color-palette.c:589
-#: src/mygal/color-palette.c:645
-msgid "dark red"
-msgstr "어두운 빨강색"
+#: ../src/label-text.c:451
+#, fuzzy
+msgid "Typing"
+msgstr "분홍색"
 
-#: src/mygal/color-palette.c:590
-msgid "red-orange"
-msgstr "적오렌지색"
+#: ../src/label-text.c:584 ../data/ui/property-bar.ui.h:4
+#, fuzzy
+msgid "Font family"
+msgstr "글꼴"
 
-#: src/mygal/color-palette.c:591
-msgid "gold"
-msgstr "ê¸\88ì\83\89"
+#: ../src/label-text.c:622 ../data/ui/property-bar.ui.h:5
+msgid "Font size"
+msgstr "ê¸\80ê¼´ í\81¬ê¸°"
 
-#: src/mygal/color-palette.c:592
-msgid "dark green"
-msgstr "어두운 녹색"
+#: ../src/label-text.c:655
+#, fuzzy
+msgid "Font weight"
+msgstr "글꼴"
 
-#: src/mygal/color-palette.c:593
-#: src/mygal/color-palette.c:646
-msgid "dull blue"
-msgstr "탁한 파랑색"
+#: ../src/label-text.c:688 ../data/ui/property-bar.ui.h:6
+msgid "Italic"
+msgstr "이탤릭"
 
-#: src/mygal/color-palette.c:594
-#: src/mygal/color-palette.c:647
-msgid "blue"
-msgstr "파랑색"
+#: ../src/label-text.c:721
+#, fuzzy
+msgid "Align text"
+msgstr "위치:"
 
-#: src/mygal/color-palette.c:595
-msgid "dull purple"
-msgstr "탁한 자주색"
+#: ../src/label-text.c:754
+#, fuzzy
+msgid "Line spacing"
+msgstr "행간:"
 
-#: src/mygal/color-palette.c:596
-msgid "dark grey"
-msgstr "어두운 회색"
+#: ../src/label-text.c:787 ../data/ui/property-bar.ui.h:11
+msgid "Text color"
+msgstr "글자 색상"
 
-#: src/mygal/color-palette.c:599
-msgid "red"
-msgstr "빨강색"
+#: ../src/label-text.c:931
+msgid "Auto shrink"
+msgstr ""
 
-#: src/mygal/color-palette.c:600
-msgid "orange"
-msgstr "오렌지색"
+#: ../src/media-select.c:349 ../src/media-select.c:353
+#: ../src/media-select.c:502 ../src/media-select.c:701
+msgctxt "Brand"
+msgid "Any"
+msgstr ""
 
-#: src/mygal/color-palette.c:601
-msgid "lime"
-msgstr "라임색"
+#: ../src/media-select.c:358 ../src/media-select.c:871
+msgctxt "Page size"
+msgid "Any"
+msgstr ""
 
-#: src/mygal/color-palette.c:602
-msgid "dull green"
-msgstr "탁한 녹색"
+#: ../src/media-select.c:367 ../src/media-select.c:370
+#: ../src/media-select.c:880
+msgctxt "Category"
+msgid "Any"
+msgstr ""
 
-#: src/mygal/color-palette.c:603
-msgid "dull blue #2"
-msgstr "탁한 파랑색#2"
+#: ../src/media-select.c:968
+#, fuzzy
+msgid "No recent templates found."
+msgstr "서식파일을 찾을 수 없음!"
 
-#: src/mygal/color-palette.c:604
-msgid "sky blue #2"
-msgstr "하늘색 #2"
+#: ../src/media-select.c:970
+msgid "Try selecting a template in the \"Search all\" tab."
+msgstr ""
 
-#: src/mygal/color-palette.c:605
-#: src/mygal/color-palette.c:644
-msgid "purple"
-msgstr "자주색"
+#. Translators: "No match" means that for the given template search criteria, there
+#. * were no matches found.
+#: ../src/media-select.c:1061
+msgid "No match."
+msgstr ""
 
-#: src/mygal/color-palette.c:606
-msgid "gray"
-msgstr "회색"
+#: ../src/media-select.c:1063
+msgid "Try selecting a different brand, page size or category."
+msgstr ""
 
-#: src/mygal/color-palette.c:609
-#: src/mygal/color-palette.c:641
-msgid "magenta"
-msgstr "마젠타색"
+#: ../src/media-select.c:1157
+#, fuzzy
+msgid "No custom templates found."
+msgstr "서식파일을 찾을 수 없음!"
 
-#: src/mygal/color-palette.c:610
-msgid "bright orange"
-msgstr "밝은 오렌지색"
+#: ../src/media-select.c:1159
+msgid ""
+"You may create new templates or try searching for pre-defined templates in "
+"the \"Search all\" tab."
+msgstr ""
 
-#: src/mygal/color-palette.c:611
-#: src/mygal/color-palette.c:642
-msgid "yellow"
-msgstr "노랑색"
+#. Translators: "None" here means that no document-merge source or
+#. * method has been selected.
+#: ../src/merge.c:171 ../src/merge.c:212 ../src/merge.c:376 ../src/merge.c:379
+msgid "None"
+msgstr "없음"
 
-#: src/mygal/color-palette.c:612
-msgid "green"
-msgstr "녹색"
+#: ../src/merge-evolution.c:316
+msgid "Couldn't construct query"
+msgstr ""
 
-#: src/mygal/color-palette.c:613
-#: src/mygal/color-palette.c:643
-msgid "cyan"
-msgstr "청록색"
+#: ../src/merge-evolution.c:322 ../src/merge-evolution.c:333
+#, fuzzy
+msgid "Couldn't open addressbook."
+msgstr "\"%s\" 파일을 열 수 없습니다."
 
-#: src/mygal/color-palette.c:614
-msgid "bright blue"
-msgstr "밝은 파랑색"
+#: ../src/merge-evolution.c:348
+#, fuzzy
+msgid "Couldn't list available fields."
+msgstr "\"%s\" 파일을 저장할 수 없습니다."
 
-#: src/mygal/color-palette.c:615
-#: src/mygal/color-palette.c:632
-msgid "red purple"
-msgstr "빨간 자주색"
+#: ../src/merge-evolution.c:384
+msgid "Couldn't get contacts."
+msgstr ""
 
-#: src/mygal/color-palette.c:616
-msgid "light grey"
-msgstr "가벼운 회색"
+#: ../src/merge-init.c:57
+msgid "Text: Comma Separated Values (CSV)"
+msgstr ""
 
-#: src/mygal/color-palette.c:619
-#: src/mygal/color-palette.c:636
-msgid "pink"
-msgstr "분홍색"
+#: ../src/merge-init.c:64
+msgid "Text: Comma Separated Values (CSV) with keys on line 1"
+msgstr ""
 
-#: src/mygal/color-palette.c:620
-msgid "light orange"
-msgstr "가벼운 오렌지색"
+#: ../src/merge-init.c:72
+msgid "Text: Tab Separated Values (TSV)"
+msgstr ""
 
-#: src/mygal/color-palette.c:621
-#: src/mygal/color-palette.c:633
-msgid "light yellow"
-msgstr "가벼운 노랑색"
+#: ../src/merge-init.c:79
+msgid "Text: Tab Separated Values (TSV) with keys on line 1"
+msgstr ""
 
-#: src/mygal/color-palette.c:622
-msgid "light green"
-msgstr "가벼운 녹색"
+#: ../src/merge-init.c:87
+msgid "Text: Colon separated values"
+msgstr ""
 
-#: src/mygal/color-palette.c:623
-msgid "light cyan"
-msgstr "가벼운 청록색"
+#: ../src/merge-init.c:94
+msgid "Text: Colon separated values with keys on line 1"
+msgstr ""
 
-#: src/mygal/color-palette.c:624
-#: src/mygal/color-palette.c:634
-msgid "light blue"
-msgstr "가벼운 바랑색"
+#: ../src/merge-init.c:102
+msgid "Text: Semicolon separated values"
+msgstr ""
 
-#: src/mygal/color-palette.c:625
-#: src/mygal/color-palette.c:638
-msgid "light purple"
-msgstr "가벼운 자주색"
+#: ../src/merge-init.c:109
+msgid "Text: Semicolon separated values with keys on line 1"
+msgstr ""
 
-#: src/mygal/color-palette.c:626
-msgid "white"
-msgstr "흰색"
+#: ../src/merge-init.c:119
+msgid "Evolution Addressbook"
+msgstr ""
 
-#: src/mygal/color-palette.c:631
-msgid "purplish blue"
-msgstr "자주빛 파랑색"
+#: ../src/merge-init.c:125
+msgid "VCards"
+msgstr ""
 
-#: src/mygal/color-palette.c:635
-msgid "dark purple"
-msgstr "ì\96´ë\91\90ì\9a´ ì\9e\90주ì\83\89"
+#: ../src/merge-properties-dialog.c:282
+msgid "Merge Properties"
+msgstr "ì\97¬ë°± ì\86\8dì\84±"
 
-#: src/mygal/color-palette.c:637
-msgid "sky blue"
-msgstr "하늘색"
+#: ../src/merge-properties-dialog.c:308 ../src/merge-properties-dialog.c:424
+msgid "Select merge-database source"
+msgstr "병합 데이터베이스 소스 선택"
 
-#: libglabels/template.c:848
-#, c-format
-msgid "Generic %s full page"
-msgstr "Generic %s 전면에 걸친"
+#: ../src/merge-properties-dialog.c:319 ../src/merge-properties-dialog.c:450
+msgid "N/A"
+msgstr "N/A"
 
-#: libglabels/template.c:897
-msgid "No template files found!"
-msgstr "ì\84\9cì\8b\9dí\8c\8cì\9d¼ì\9d\84 ì°¾ì\9d\84 ì\88\98 ì\97\86ì\9d\8c!"
+#: ../src/merge-properties-dialog.c:345
+msgid "Select"
+msgstr "ì\84 í\83\9d"
 
-#. Create and append an "Other" entry.
-#: libglabels/paper.c:67
-msgid "Other"
-msgstr "직접지정"
+#: ../src/merge-properties-dialog.c:352
+msgid "Record/Field"
+msgstr "기록/범위"
 
-#: libglabels/paper.c:361
-msgid "No paper files found!"
-msgstr "용지 파일을 찾을 수 없음!"
+#: ../src/merge-properties-dialog.c:360 ../data/ui/object-editor.ui.h:8
+msgid "Data"
+msgstr "데이터"
 
-#: data/ui/glabels-ui.xml.h:1
-msgid "About glabels"
-msgstr "gLabels에 대해"
+#. Translators: "Fixed" here means that for the given document-merge method, there are
+#. * no further choices to further define the source of data.  E.g. if you select the
+#. * evolution-data-server, there are no further choices -- the source is "Fixed."
+#.
+#: ../src/merge-properties-dialog.c:443
+#, fuzzy
+msgid "Fixed"
+msgstr "파일:"
 
-#: data/ui/glabels-ui.xml.h:2
-msgid "About..."
-msgstr "정보..."
+#. Translators: "Up" refers to the direction towards the top of a label.
+#: ../src/mini-preview.c:1074
+msgid "Up"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:3
-msgid "Align _Horizontal"
-msgstr "세로로 정렬(_H)"
+#: ../src/new-label-dialog.c:203
+#, fuzzy
+msgid "Select Product"
+msgstr "모드 선택(_S)"
 
-#: data/ui/glabels-ui.xml.h:4
-msgid "Align _Vertical"
-msgstr "가로로 정렬(_V)"
+#: ../src/new-label-dialog.c:215
+#, fuzzy
+msgid "Choose Orientation"
+msgstr "라벨의 방향"
 
-#: data/ui/glabels-ui.xml.h:5
-msgid "Align objects to bottoms"
-msgstr "개체 아래로 정렬"
+#: ../src/new-label-dialog.c:229
+msgid "Review"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:6
-msgid "Align objects to horizontal centers"
-msgstr "개체 세로 중앙으로 정렬"
+#: ../src/object-editor-bc-page.c:93 ../src/object-editor-shadow-page.c:93
+#: ../src/object-editor-text-page.c:97 ../src/prefs-dialog.c:339
+#: ../src/ui-property-bar.c:280
+msgid "Default"
+msgstr "기본"
 
-#: data/ui/glabels-ui.xml.h:7
-msgid "Align objects to left edges"
-msgstr "개체 좌측 가장자리로 정렬"
+#: ../src/object-editor.c:159 ../src/object-editor.c:460
+msgid "Object properties"
+msgstr "항목 속성"
 
-#: data/ui/glabels-ui.xml.h:8
-msgid "Align objects to right edges"
-msgstr "개체 우측 가장자리로 정렬"
+#: ../src/object-editor.c:309
+msgid "Box object properties"
+msgstr "사각형 개체 속성"
 
-#: data/ui/glabels-ui.xml.h:9
-msgid "Align objects to tops"
-msgstr "개체 상위로 정렬"
+#: ../src/object-editor.c:328
+msgid "Ellipse object properties"
+msgstr "타원 개체 속성"
 
-#: data/ui/glabels-ui.xml.h:10
-msgid "Align objects to vertical centers"
-msgstr "개체 수평 중앙으로 정렬"
+#: ../src/object-editor.c:347
+msgid "Line object properties"
+msgstr "선 개체 속성"
 
-#: data/ui/glabels-ui.xml.h:12
-msgid "Bold"
-msgstr "êµµê²\8c"
+#: ../src/object-editor.c:364
+msgid "Image object properties"
+msgstr "그림 ê°\9cì²´ ì\86\8dì\84±"
 
-#: data/ui/glabels-ui.xml.h:14
-msgid "Center align"
-msgstr "중앙 정렬"
+#: ../src/object-editor.c:381
+msgid "Text object properties"
+msgstr "글자 개체 속성"
 
-#: data/ui/glabels-ui.xml.h:15
-msgid "Center objects to horizontal label center"
-msgstr "중앙 개체를 수직라벨 중앙으로"
+#: ../src/object-editor.c:403
+msgid "Barcode object properties"
+msgstr "바코드 개체 속성"
 
-#: data/ui/glabels-ui.xml.h:16
-msgid "Center objects to vertical label center"
-msgstr "중앙 개체를 수평라벨 중상으로"
+#: ../src/object-editor-edit-page.c:76
+msgid "Insert merge field"
+msgstr "병합 필드 삽입"
 
-#: data/ui/glabels-ui.xml.h:17
-msgid "Change the visibility of markup lines in the current window"
-msgstr "현재 윈도우의 보이는 마크업 선 변경"
+#: ../src/object-editor-fill-page.c:79 ../src/prefs-dialog.c:345
+#: ../src/ui-property-bar.c:292
+#, fuzzy
+msgid "No Fill"
+msgstr "채우기 없음"
 
-#: data/ui/glabels-ui.xml.h:18
-msgid "Change the visibility of the drawing toolbar in the current window"
-msgstr "현재 윈도우의 보이는 그리기 도구 변경"
+#: ../src/object-editor-image-page.c:278
+#, fuzzy
+msgid "All Files"
+msgstr "모든 파일"
 
-#: data/ui/glabels-ui.xml.h:19
-msgid "Change the visibility of the grid in the current window"
-msgstr "현재 윈도우의 보이는 그리드 변경"
+#: ../src/object-editor-image-page.c:283
+#, fuzzy
+msgid "All Images"
+msgstr "그림"
 
-#: data/ui/glabels-ui.xml.h:20
-msgid "Change the visibility of the main toolbar in the current window"
-msgstr "현재 윈도우의 보이는 주 도구 변경"
+#: ../src/object-editor-image-page.c:298
+#, c-format
+msgid "%s (*.%s)"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:21
-msgid "Change the visibility of the property toolbar in the current window"
-msgstr "현재 윈도우의 보이는 속성 도구 변경"
+#: ../src/object-editor-line-page.c:79 ../src/prefs-dialog.c:342
+#: ../src/ui-property-bar.c:304
+#, fuzzy
+msgid "No Line"
+msgstr "선 없음"
 
-#: data/ui/glabels-ui.xml.h:22
-msgid "Close"
-msgstr "닫기"
+#: ../src/prefs-dialog.c:172 ../data/ui/prefs-dialog.ui.h:21
+msgid "gLabels Preferences"
+msgstr "gLabels 환경설정"
 
-#: data/ui/glabels-ui.xml.h:23
-msgid "Close the current file"
-msgstr "현재 파일을 닫기"
+#. ===================================================================
+#: ../src/print-op.c:205 ../src/print-op-dialog.c:217
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:4
+#: ../templates/misc-iso-templates.xml.h:34
+msgid "Labels"
+msgstr "라벨"
 
-#: data/ui/glabels-ui.xml.h:24
-msgid "Configure the application"
-msgstr "gLabel 구성"
+#: ../src/stock.c:70
+msgid "_Select Mode"
+msgstr "모드 선택(_S)"
 
-#: data/ui/glabels-ui.xml.h:25
-msgid "Contents"
-msgstr "목차"
+#: ../src/stock.c:71
+msgid "_Text"
+msgstr "글자(_T)"
 
-#: data/ui/glabels-ui.xml.h:26
-msgid "Copy"
-msgstr "복사"
+#: ../src/stock.c:72
+msgid "_Line"
+msgstr "선(_L)"
 
-#: data/ui/glabels-ui.xml.h:27
-msgid "Copy the selection"
-msgstr "ì\84 í\83\9d ë³µì\82¬"
+#: ../src/stock.c:73
+msgid "_Box"
+msgstr "ì\82¬ê°\81í\98\95(_B)"
 
-#: data/ui/glabels-ui.xml.h:28
-msgid "Create a custom template"
-msgstr "임의의 서식 만들기"
+#: ../src/stock.c:74
+msgid "_Ellipse"
+msgstr "타원(_E)"
 
-#: data/ui/glabels-ui.xml.h:29
-msgid "Create a new document"
-msgstr "새로운 문서 만들기"
+#: ../src/stock.c:75
+msgid "_Image"
+msgstr "그림(_I)"
 
-#: data/ui/glabels-ui.xml.h:30
-msgid "Create barcode object"
-msgstr "바코드 개체 만들기"
+#: ../src/stock.c:76
+msgid "Bar_code"
+msgstr "바코드(_C)"
 
-#: data/ui/glabels-ui.xml.h:31
-msgid "Create box/rectangle object"
-msgstr "ì\82¬ê°\81í\98\95/ì§\81ì\82¬ê°\81í\98\95 ê°\9cì²´ ë§\8cë\93¤ê¸°"
+#: ../src/stock.c:77
+msgid "_Merge Properties"
+msgstr "ì\97¬ë°± ì\86\8dì\84±(_M)"
 
-#: data/ui/glabels-ui.xml.h:32
-msgid "Create ellipse/circle object"
-msgstr "í\83\80ì\9b\90\9b\90í\98\95 ê°\9cì²´ ë§\8cë\93¤ê¸°"
+#: ../src/stock.c:78
+msgid "Object _Properties"
+msgstr "í\95­ëª© ì\86\8dì\84±(_P)"
 
-#: data/ui/glabels-ui.xml.h:33
-msgid "Create image object"
-msgstr "그림 개체 만들기"
+#: ../src/stock.c:79
+msgid "Bring to _Front"
+msgstr "앞으로 내기(_F)"
 
-#: data/ui/glabels-ui.xml.h:34
-msgid "Create line object"
-msgstr "선 개체 만들기"
+#: ../src/stock.c:80
+msgid "Send to _Back"
+msgstr "뒤로 보내기(_B)"
 
-#: data/ui/glabels-ui.xml.h:35
-msgid "Create text object"
-msgstr "글자 개체 만들기"
+#: ../src/stock.c:81
+msgid "Rotate _Left"
+msgstr "왼쪽으로 회전(_L)"
 
-#: data/ui/glabels-ui.xml.h:36
-msgid "Cu_t"
-msgstr "ì\9e\90르기(_T)"
+#: ../src/stock.c:82
+msgid "Rotate _Right"
+msgstr "ì\98¤ë¥¸ìª½ì\9c¼ë¡\9c í\9a\8cì \84(_R)"
 
-#: data/ui/glabels-ui.xml.h:37
-msgid "Customize"
-msgstr "커ì\8a¤í\84°ë§\88ì\9d´ì¦\88"
+#: ../src/stock.c:83
+msgid "Flip _Horizontally"
+msgstr "ì\88\98ì§\81 ë\92¤ì§\91기(_H)"
 
-#: data/ui/glabels-ui.xml.h:38
-msgid "Customize Drawing Toolbar"
-msgstr "그리기 도구 커스터마이즈"
+#: ../src/stock.c:84
+msgid "Flip _Vertically"
+msgstr "수평 뒤집기(_V)"
 
-#: data/ui/glabels-ui.xml.h:39
-msgid "Customize Main Toolbar"
-msgstr "주 ë\8f\84구 ì»¤ì\8a¤í\84°ë§\88ì\9d´ì¦\88"
+#: ../src/stock.c:85
+msgid "_Lefts"
+msgstr "ì¢\8c측(_L)"
 
-#: data/ui/glabels-ui.xml.h:40
-msgid "Customize Property Toolbar"
-msgstr "ì\86\8dì\84± ë\8f\84구 ì»¤ì\8a¤í\84°ë§\88ì\9d´ì¦\88"
+#: ../src/stock.c:86
+msgid "_Rights"
+msgstr "ì\9a°ì¸¡(_R)"
 
-#: data/ui/glabels-ui.xml.h:41
-msgid "Customize toolbars"
-msgstr "도구 커스터마이즈"
+#: ../src/stock.c:87
+msgid "_Centers"
+msgstr "중앙(_C)"
 
-#: data/ui/glabels-ui.xml.h:42
-msgid "Cut"
-msgstr "ì\9e\98ë\9d¼ë\82´ê¸°"
+#: ../src/stock.c:88
+msgid "_Tops"
+msgstr "ì\83\81ì\9c\84(_T)"
 
-#: data/ui/glabels-ui.xml.h:43
-msgid "Cut the selection"
-msgstr "선택한것 잘라내기"
+#: ../src/stock.c:89
+msgid "Bottoms"
+msgstr "하위"
 
-#: data/ui/glabels-ui.xml.h:44
-msgid "Decrease magnification"
-msgstr "확대 감소"
+#: ../src/stock.c:90
+msgid "Centers"
+msgstr "중앙"
 
-#: data/ui/glabels-ui.xml.h:45
-msgid "Delete"
-msgstr "삭제"
+#: ../src/stock.c:91 ../src/stock.c:92
+msgid "Label Ce_nter"
+msgstr "라벨 중앙(_N)"
 
-#: data/ui/glabels-ui.xml.h:46
-msgid "Delete the selected objects"
-msgstr "ì\84 í\83\9dí\95\9c ê°\9cì²´ ì\82­ì \9c"
+#: ../src/stock.c:95 ../src/stock.c:97
+msgid "Linked"
+msgstr "ì\97°ê²°"
 
-#: data/ui/glabels-ui.xml.h:47
-msgid "Drawing toolbar"
-msgstr "그리기 도구"
+#: ../src/stock.c:96 ../src/stock.c:98
+msgid "Not Linked"
+msgstr "연결되지 않음"
 
-#: data/ui/glabels-ui.xml.h:48
-msgid "Dump XML"
-msgstr "XML 덤프"
+#: ../src/template-designer.c:404
+#, fuzzy
+msgid "New gLabels Template"
+msgstr "gLabels 서식 디자이너"
 
-#: data/ui/glabels-ui.xml.h:49
-msgid "Dump the GUI Xml description"
-msgstr "GUI의 XML설명 덤프"
+#: ../src/template-designer.c:461
+msgid "Welcome"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:50
-msgid "Edit merge properties"
-msgstr "ì\97¬ë°± ì\86\8dì\84± í\8e¸ì§\91"
+#: ../src/template-designer.c:500
+msgid "Name and Description"
+msgstr "ì\9d´ë¦\84ê³¼ ì\84¤ëª\85"
 
-#: data/ui/glabels-ui.xml.h:54
-msgid "Flip object horizontally"
-msgstr "ì\88\98ì§\81 ê°\9cì²´ ë\92¤ì§\91기"
+#: ../src/template-designer.c:548
+msgid "Page Size"
+msgstr "ì\9a©ì§\80 í\81¬기"
 
-#: data/ui/glabels-ui.xml.h:55
-msgid "Flip object vertically"
-msgstr "수평 개체 뒤집기"
+#: ../src/template-designer.c:614
+msgid "Label or Card Shape"
+msgstr "라벨 또는 카드 외형"
 
-#: data/ui/glabels-ui.xml.h:56
-msgid "Font name"
-msgstr "글꼴"
+#: ../src/template-designer.c:661
+#, fuzzy
+msgid "Label or Card Size"
+msgstr "라벨 또는 카드 외형"
 
-#: data/ui/glabels-ui.xml.h:57
-msgid "Font selector"
-msgstr "글꼴 선택기"
+#: ../src/template-designer.c:760
+#, fuzzy
+msgid "Label Size (round)"
+msgstr "라벨 크기 (둥글기)"
 
-#: data/ui/glabels-ui.xml.h:58
-msgid "Font size"
-msgstr "글꼴 크기"
+#: ../src/template-designer.c:841
+msgid "Label Size (CD/DVD)"
+msgstr "라벨 크기(CD/DVD)"
 
-#: data/ui/glabels-ui.xml.h:59
-msgid "Icon and _Text"
-msgstr "아이콘과 글자(_T)"
+#: ../src/template-designer.c:932
+msgid "Number of Layouts"
+msgstr "레이아웃 선택"
 
-#: data/ui/glabels-ui.xml.h:60
-msgid "Increase magnification"
-msgstr "상승 확대"
+#: ../src/template-designer.c:1000
+msgid "Layout(s)"
+msgstr "레이아웃"
 
-#: data/ui/glabels-ui.xml.h:61
-msgid "Italic"
-msgstr "ì\9d´í\83¤ë¦­"
+#: ../src/template-designer.c:1105
+msgid "Design Completed"
+msgstr "ì\84\9cì\8b\9d ë\94\94ì\9e\90ì\9d¸ ì\99\84ë£\8cë\90¨"
 
-#: data/ui/glabels-ui.xml.h:63
-msgid "Left align"
-msgstr "왼쪽 정렬"
+#: ../src/template-designer.c:1133
+#, fuzzy
+msgid "Edit gLabels Template"
+msgstr "gLabels 서식 디자이너"
 
-#: data/ui/glabels-ui.xml.h:65
-msgid "Line width"
-msgstr "선 넓이"
+#: ../src/template-designer.c:1423
+msgid "Brand and part# match an existing template!"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:66
-msgid "Lower object to bottom"
-msgstr "개체를 하단으로 내리기"
+#. Menu entries.
+#: ../src/ui.c:93
+msgid "_File"
+msgstr "파일(_F)"
+
+#: ../src/ui.c:94
+#, fuzzy
+msgid "Open Recent _Files"
+msgstr "최근의 파일(_F)"
 
-#: data/ui/glabels-ui.xml.h:67
-msgid "M_arkup"
-msgstr "마크업(_A)"
+#: ../src/ui.c:95
+msgid "_Edit"
+msgstr "편집(_E)"
 
-#: data/ui/glabels-ui.xml.h:68
-msgid "Main toolbar"
-msgstr "주 도구"
+#: ../src/ui.c:96
+msgid "_View"
+msgstr "보기(_V)"
 
-#: data/ui/glabels-ui.xml.h:69
-msgid "Markup"
-msgstr "마크업"
+#: ../src/ui.c:97
+msgid "Customize Main Toolbar"
+msgstr "주 도구 커스터마이즈"
 
-#: data/ui/glabels-ui.xml.h:70
-msgid "Modify document properties"
-msgstr "문서 속성 고치기"
+#: ../src/ui.c:98
+msgid "Customize Drawing Toolbar"
+msgstr "그리기 도구 커스터마이즈"
+
+#: ../src/ui.c:99
+#, fuzzy
+msgid "Customize Properties Toolbar"
+msgstr "속성 도구 커스터마이즈"
+
+#: ../src/ui.c:100
+msgid "_Objects"
+msgstr "항목(_O)"
+
+#: ../src/ui.c:101
+#, fuzzy
+msgid "_Create"
+msgstr "중앙(_C)"
+
+#: ../src/ui.c:102
+msgid "_Order"
+msgstr "순서(_O)"
+
+#: ../src/ui.c:103
+msgid "_Rotate/Flip"
+msgstr "회전/뒤집기(_R)"
+
+#: ../src/ui.c:104
+msgid "Align _Horizontal"
+msgstr "세로로 정렬(_H)"
+
+#: ../src/ui.c:105
+msgid "Align _Vertical"
+msgstr "가로로 정렬(_V)"
+
+#: ../src/ui.c:106
+msgid "_Help"
+msgstr "도움말(_H)"
 
-#: data/ui/glabels-ui.xml.h:71
-msgid "New"
-msgstr "새로 만들기"
+#. Popup entries.
+#: ../src/ui.c:109 ../src/ui.c:110
+#, fuzzy
+msgid "Context Menu"
+msgstr "목차"
 
-#: data/ui/glabels-ui.xml.h:72
-msgid "Object property editor"
-msgstr "항목 속성 편집기"
+#: ../src/ui.c:115
+msgid "_New"
+msgstr "새로 만들기(_N)"
 
-#: data/ui/glabels-ui.xml.h:73
-msgid "Only show icons in the drawing toolbar"
-msgstr "그리기 도구에서 아이콘만 보이기"
+#: ../src/ui.c:117
+#, fuzzy
+msgid "Create a new file"
+msgstr "새로운 문서 만들기"
 
-#: data/ui/glabels-ui.xml.h:74
-msgid "Only show icons in the main toolbar"
-msgstr "주 ë\8f\84구ì\97\90ì\84\9c ì\95\84ì\9d´ì½\98ë§\8c ë³´ì\9d´ê¸°"
+#: ../src/ui.c:122
+msgid "_Open..."
+msgstr "ì\97´ê¸°(_O)..."
 
-#: data/ui/glabels-ui.xml.h:76
+#: ../src/ui.c:124
 msgid "Open a file"
 msgstr "파일 열기"
 
-#: data/ui/glabels-ui.xml.h:77
-msgid "Open the glabels manual"
-msgstr "gLabeles 메뉴얼 열기"
+#: ../src/ui.c:129
+msgid "_Save"
+msgstr "저장(_S)"
 
-#: data/ui/glabels-ui.xml.h:78
-msgid "Paste"
-msgstr "붙이기"
+#: ../src/ui.c:131
+#, fuzzy
+msgid "Save current file"
+msgstr "현재 파일이름으로 저장"
 
-#: data/ui/glabels-ui.xml.h:79
-msgid "Paste the clipboard"
-msgstr "클립보드에 붙이기"
+#: ../src/ui.c:136
+msgid "Save _As..."
+msgstr "다른 이름으로 저장(_A)..."
 
-#: data/ui/glabels-ui.xml.h:80
-msgid "Pr_eferences..."
-msgstr "속성(_E)..."
+#: ../src/ui.c:138
+#, fuzzy
+msgid "Save the current file to a different name"
+msgstr "현재파일을 다른이름으로 저장"
 
-#: data/ui/glabels-ui.xml.h:81
-msgid "Preferences"
-msgstr "ì\84¤ì \95"
+#: ../src/ui.c:143
+msgid "_Print..."
+msgstr "ì\9d¸ì\87\84(_P)..."
 
-#: data/ui/glabels-ui.xml.h:83
+#: ../src/ui.c:145
 msgid "Print the current file"
 msgstr "현재 파일을 인쇄"
 
-#: data/ui/glabels-ui.xml.h:84
-msgid "Proper_ties..."
+#: ../src/ui.c:150
+#, fuzzy
+msgid "Properties..."
 msgstr "속성(_T)..."
 
-#: data/ui/glabels-ui.xml.h:85
-msgid "Properties"
-msgstr "속성"
+#: ../src/ui.c:152
+msgid "Modify document properties"
+msgstr "문서 속성 고치기"
 
-#: data/ui/glabels-ui.xml.h:86
-msgid "Property toolbar"
-msgstr "ì\86\8dì\84± ë\8f\84구"
+#: ../src/ui.c:157
+msgid "Template _Designer..."
+msgstr "ì\84\9cì\8b\9d ë\94\94ì\9e\90ì\9d´ë\84\88(_D)..."
 
-#: data/ui/glabels-ui.xml.h:87
-msgid "Quit"
-msgstr "종료"
+#: ../src/ui.c:159
+msgid "Create a custom template"
+msgstr "임의의 서식 만들기"
+
+#: ../src/ui.c:164
+msgid "_Close"
+msgstr "닫기(_C)"
+
+#: ../src/ui.c:166
+msgid "Close the current file"
+msgstr "현재 파일을 닫기"
 
-#: data/ui/glabels-ui.xml.h:88
+#: ../src/ui.c:171
+msgid "_Quit"
+msgstr "종료(_Q)"
+
+#: ../src/ui.c:173
 msgid "Quit the program"
 msgstr "gLabels을 종료"
 
-#: data/ui/glabels-ui.xml.h:89
-msgid "Raise object to top"
-msgstr "개체를 상위로 올리기"
-
-#: data/ui/glabels-ui.xml.h:90
-msgid "Recent _Files"
-msgstr "최근의 파일(_F)"
+#: ../src/ui.c:180 ../src/ui.c:182 ../src/ui.c:967
+msgid "Undo"
+msgstr "되돌리기"
 
-#: data/ui/glabels-ui.xml.h:91
+#: ../src/ui.c:187 ../src/ui.c:189 ../src/ui.c:974
 msgid "Redo"
 msgstr "재실행"
 
-#: data/ui/glabels-ui.xml.h:92
-msgid "Redo the undone action"
-msgstr "재실행 할것 없음"
-
-#: data/ui/glabels-ui.xml.h:93
-msgid "Remove all selections"
-msgstr "모든 선택사항 삭제"
-
-#: data/ui/glabels-ui.xml.h:95
-#, no-c-format
-msgid "Restore scale to 100%"
-msgstr "100%크기로 복구"
-
-#: data/ui/glabels-ui.xml.h:96
-msgid "Right align"
-msgstr "오른쪽으로 정렬"
-
-#: data/ui/glabels-ui.xml.h:99
-msgid "Rotate object 90 clockwise"
-msgstr "90° 시계방향으로 회전"
-
-#: data/ui/glabels-ui.xml.h:100
-msgid "Rotate object 90 counter-clockwise"
-msgstr "90° 반시계방향으로 회전"
+#: ../src/ui.c:194
+msgid "Cut"
+msgstr "잘라내기"
 
-#: data/ui/glabels-ui.xml.h:101
-msgid "Save"
-msgstr "ì \80ì\9e¥"
+#: ../src/ui.c:196
+msgid "Cut the selection"
+msgstr "ì\84 í\83\9dí\95\9cê²\83 ì\9e\98ë\9d¼ë\82´ê¸°"
 
-#: data/ui/glabels-ui.xml.h:102
-msgid "Save As"
-msgstr "ë\8b¤ë¥¸ ì\9d´ë¦\84ì\9c¼ë¡\9c ì \80ì\9e¥"
+#: ../src/ui.c:201
+msgid "Copy"
+msgstr "ë³µì\82¬"
 
-#: data/ui/glabels-ui.xml.h:103
-msgid "Save _As..."
-msgstr "다른 이름으로 저장(_A)..."
+#: ../src/ui.c:203
+msgid "Copy the selection"
+msgstr "선택 복사"
 
-#: data/ui/glabels-ui.xml.h:104
-msgid "Save the current file"
-msgstr "í\98\84ì\9e¬ í\8c\8cì\9d¼ì\9d´ë¦\84ì\9c¼ë¡\9c ì \80ì\9e¥"
+#: ../src/ui.c:210
+msgid "Paste the clipboard"
+msgstr "í\81´ë¦½ë³´ë\93\9cì\97\90 ë¶\99ì\9d´ê¸°"
 
-#: data/ui/glabels-ui.xml.h:105
-msgid "Save the current file with a different name"
-msgstr "현재파일을 다른이름으로 저장"
+#: ../src/ui.c:217
+msgid "Delete the selected objects"
+msgstr "선택한 개체 삭제"
 
-#: data/ui/glabels-ui.xml.h:106
+#: ../src/ui.c:222
 msgid "Select All"
 msgstr "모두 선택"
 
-#: data/ui/glabels-ui.xml.h:107
-msgid "Select _All"
-msgstr "모두 선택(_A)"
-
-#: data/ui/glabels-ui.xml.h:108
+#: ../src/ui.c:224
 msgid "Select all objects"
 msgstr "모든 개체 선택"
 
-#: data/ui/glabels-ui.xml.h:109
-msgid "Select, move and modify objects"
-msgstr "선택, 개체 이동과 수정"
+#: ../src/ui.c:229
+msgid "Un-select All"
+msgstr "모든 선택 해제"
 
-#: data/ui/glabels-ui.xml.h:111
-msgid "Set drawing toolbar button style according to desktop default"
-msgstr "기본 데스크탑 모양에 따라 그리기 도구 버튼 모양을 지정"
+#: ../src/ui.c:231
+msgid "Remove all selections"
+msgstr "모든 선택사항 삭제"
 
-#: data/ui/glabels-ui.xml.h:112
-msgid "Set main toolbar button style according to desktop default"
-msgstr "기본 데스크탑 모양에 따라 주 도구 버튼 모양을 지정"
+#: ../src/ui.c:236
+msgid "Preferences"
+msgstr "정"
 
-#: data/ui/glabels-ui.xml.h:113
-msgid "Show _Tooltips"
-msgstr "팁 보기(_T)"
+#: ../src/ui.c:238
+msgid "Configure the application"
+msgstr "gLabel 구성"
 
-#: data/ui/glabels-ui.xml.h:114
-msgid "Show both icons and texts in the drawing toolbar"
-msgstr "그리기 도구에 아이콘과 글자 보이기"
+#: ../src/ui.c:245
+#, fuzzy
+msgid "Zoom in"
+msgstr "확대(_I)"
 
-#: data/ui/glabels-ui.xml.h:115
-msgid "Show both icons and texts in the main toolbar"
-msgstr "주 ë\8f\84구ì\97\90 ì\95\84ì\9d´ì½\98 ê³¼ ê¸\80ì\9e\90 ë³´ì\9d´ê¸°"
+#: ../src/ui.c:247
+msgid "Increase magnification"
+msgstr "ì\83\81ì\8a¹ í\99\95ë\8c\80"
 
-#: data/ui/glabels-ui.xml.h:116
-msgid "Show tooltips in the drawing toolbar"
-msgstr "그리기 도구에 팁 보이기"
+#: ../src/ui.c:252
+#, fuzzy
+msgid "Zoom out"
+msgstr "축소(_O)"
 
-#: data/ui/glabels-ui.xml.h:117
-msgid "Show tooltips in the main toolbar"
-msgstr "주 도구에 팁 보이기"
+#: ../src/ui.c:254
+msgid "Decrease magnification"
+msgstr "확대 감소"
 
-#: data/ui/glabels-ui.xml.h:118
-msgid "Show tooltips in the property toolbar"
-msgstr "속성 도구에 팁 보이기"
-
-#: data/ui/glabels-ui.xml.h:119
-msgid "Template Designer"
-msgstr "서식 디자이너"
-
-#: data/ui/glabels-ui.xml.h:120
-msgid "Template _Designer..."
-msgstr "서식 디자이너(_D)..."
+#: ../src/ui.c:259
+#, fuzzy
+msgid "Zoom 1 to 1"
+msgstr "1:1로 확대(_1)"
 
-#: data/ui/glabels-ui.xml.h:121
-msgid "Text color"
-msgstr "글자 색상"
+#: ../src/ui.c:261
+msgid "Restore scale to 100%"
+msgstr "100%크기로 복구"
 
-#: data/ui/glabels-ui.xml.h:122
-msgid "U_n-select All"
-msgstr "모든 선택 해제(_N)"
+#: ../src/ui.c:266
+#, fuzzy
+msgid "Zoom to fit"
+msgstr "맞춰서 확대(_F)"
 
-#: data/ui/glabels-ui.xml.h:123
-msgid "Un-select All"
-msgstr "모든 선택 해제"
+#: ../src/ui.c:268
+#, fuzzy
+msgid "Set scale to fit window"
+msgstr "윈도우에 맞춰서 확대"
 
-#: data/ui/glabels-ui.xml.h:124
-msgid "Undo"
-msgstr "되돌리기"
+#: ../src/ui.c:275
+#, fuzzy
+msgid "Select Mode"
+msgstr "모드 선택(_S)"
 
-#: data/ui/glabels-ui.xml.h:125
-msgid "Undo the last action"
-msgstr "마지막 동작으로 되돌리기"
+#: ../src/ui.c:277
+msgid "Select, move and modify objects"
+msgstr "선택, 개체 이동과 수정"
 
-#: data/ui/glabels-ui.xml.h:126
-msgid "Zoom _1:1"
-msgstr "1:1로 확대(_1)"
+#: ../src/ui.c:282 ../src/view-text.c:102 ../data/ui/object-editor.ui.h:28
+#: ../data/ui/prefs-dialog.ui.h:17
+msgid "Text"
+msgstr "글자"
 
-#: data/ui/glabels-ui.xml.h:127
-msgid "Zoom _In"
-msgstr "확대(_I)"
+#: ../src/ui.c:289
+#, fuzzy
+msgid "Box"
+msgstr "사각형(_B)"
 
-#: data/ui/glabels-ui.xml.h:128
-msgid "Zoom _Out"
-msgstr "ì\95ì\86\8c(_O)"
+#: ../src/ui.c:291
+msgid "Create box/rectangle object"
+msgstr "ì\82¬ê°\81í\98\95/ì§\81ì\82¬ê°\81í\98\95 ê°\9cì²´ ë§\8cë\93¤ê¸°"
 
-#: data/ui/glabels-ui.xml.h:129
-msgid "Zoom to _fit"
-msgstr "맞춰서 확대(_F)"
+#: ../src/ui.c:296 ../data/ui/object-editor.ui.h:17
+#: ../data/ui/prefs-dialog.ui.h:9
+msgid "Line"
+msgstr "선"
 
-#: data/ui/glabels-ui.xml.h:130
-msgid "Zoom to fit window"
-msgstr "윈도우에 맞춰서 확대"
+#: ../src/ui.c:303
+#, fuzzy
+msgid "Ellipse"
+msgstr "타원(_E)"
 
-#: data/ui/glabels-ui.xml.h:131
-msgid "_About..."
-msgstr "...에 대해(_A)"
+#: ../src/ui.c:305
+msgid "Create ellipse/circle object"
+msgstr "타원/원형 개체 만들기"
 
-#: data/ui/glabels-ui.xml.h:132
-msgid "_Bottoms"
-msgstr "아래(_B)"
+#: ../src/ui.c:310 ../data/ui/object-editor.ui.h:14
+msgid "Image"
+msgstr "그림"
 
-#: data/ui/glabels-ui.xml.h:135
-msgid "_Close"
-msgstr "닫기(_C)"
+#: ../src/ui.c:317
+#, fuzzy
+msgid "Barcode"
+msgstr "바코드(_C)"
 
-#: data/ui/glabels-ui.xml.h:136
-msgid "_Contents"
-msgstr "목차(_C)"
+#: ../src/ui.c:326
+msgid "Raise object to top"
+msgstr "개체를 상위로 올리기"
 
-#: data/ui/glabels-ui.xml.h:137
-msgid "_Copy"
-msgstr "복사(_C)"
+#: ../src/ui.c:333
+msgid "Lower object to bottom"
+msgstr "개체를 하단으로 내리기"
 
-#: data/ui/glabels-ui.xml.h:138
-msgid "_Create Object"
-msgstr "항목 만들기(_C)"
+#: ../src/ui.c:340
+#, fuzzy
+msgid "Rotate object 90 degrees counter-clockwise"
+msgstr "90° 반시계방향으로 회전"
 
-#: data/ui/glabels-ui.xml.h:139
-msgid "_Debug"
-msgstr "디버그(_D)"
+#: ../src/ui.c:347
+#, fuzzy
+msgid "Rotate object 90 degrees clockwise"
+msgstr "90° 시계방향으로 회전"
 
-#: data/ui/glabels-ui.xml.h:141
-msgid "_Desktop Default"
-msgstr "기본 데스크탑(_D)"
+#: ../src/ui.c:354
+msgid "Flip object horizontally"
+msgstr "수직 개체 뒤집기"
 
-#: data/ui/glabels-ui.xml.h:142
-msgid "_Drawing Toolbar"
-msgstr "그리기 도구(_D)"
+#: ../src/ui.c:361
+msgid "Flip object vertically"
+msgstr "수평 개체 뒤집기"
 
-#: data/ui/glabels-ui.xml.h:143
-msgid "_Edit"
-msgstr "편집(_E)"
+#: ../src/ui.c:368
+msgid "Align objects to left edges"
+msgstr "개체 좌측 가장자리로 정렬"
 
-#: data/ui/glabels-ui.xml.h:145
-msgid "_File"
-msgstr "파일(_F)"
+#: ../src/ui.c:375
+msgid "Align objects to right edges"
+msgstr "개체 우측 가장자리로 정렬"
 
-#: data/ui/glabels-ui.xml.h:146
-msgid "_Grid"
-msgstr "그리ë\93\9c(_G)"
+#: ../src/ui.c:382
+msgid "Align objects to horizontal centers"
+msgstr "ê°\9cì²´ ì\84¸ë¡\9c ì¤\91ì\95\99ì\9c¼ë¡\9c ì \95ë ¬"
 
-#: data/ui/glabels-ui.xml.h:147
-msgid "_Help"
-msgstr "도움말(_H)"
+#: ../src/ui.c:389
+#, fuzzy
+msgid "Align objects to top edges"
+msgstr "개체 좌측 가장자리로 정렬"
 
-#: data/ui/glabels-ui.xml.h:148
-msgid "_Icon"
-msgstr "아이콘(_I)"
+#: ../src/ui.c:396
+#, fuzzy
+msgid "Align objects to bottom edges"
+msgstr "개체 아래로 정렬"
 
-#: data/ui/glabels-ui.xml.h:152
-msgid "_Main Toolbar"
-msgstr "주 도구(_M)"
+#: ../src/ui.c:403
+msgid "Align objects to vertical centers"
+msgstr "개체 수평 중앙으로 정렬"
 
-#: data/ui/glabels-ui.xml.h:153
-msgid "_Merge Properties..."
-msgstr "ì\97¬ë°± ì\86\8dì\84±(_M)..."
+#: ../src/ui.c:410
+msgid "Center objects to horizontal label center"
+msgstr "ì¤\91ì\95\99 ê°\9c체를 ì\88\98ì§\81ë\9d¼ë²¨ ì¤\91ì\95\99ì\9c¼ë¡\9c"
 
-#: data/ui/glabels-ui.xml.h:154
-msgid "_New"
-msgstr "ì\83\88ë¡\9c ë§\8cë\93¤ê¸°(_N)"
+#: ../src/ui.c:417
+msgid "Center objects to vertical label center"
+msgstr "ì¤\91ì\95\99 ê°\9c체를 ì\88\98í\8f\89ë\9d¼ë²¨ ì¤\91ì\83\81ì\9c¼ë¡\9c"
 
-#: data/ui/glabels-ui.xml.h:155
-msgid "_Objects"
-msgstr "항목(_O)"
+#: ../src/ui.c:424
+msgid "Edit merge properties"
+msgstr "여백 속성 편집"
 
-#: data/ui/glabels-ui.xml.h:156
-msgid "_Open..."
-msgstr "열기(_O)..."
+#: ../src/ui.c:431
+msgid "Contents"
+msgstr "목차"
 
-#: data/ui/glabels-ui.xml.h:158
-msgid "_Paste"
-msgstr "붙이기(_P)"
+#: ../src/ui.c:433
+#, fuzzy
+msgid "Open glabels manual"
+msgstr "gLabeles 메뉴얼 열기"
 
-#: data/ui/glabels-ui.xml.h:159
-msgid "_Print..."
-msgstr "ì\9d¸ì\87\84(_P)..."
+#: ../src/ui.c:438
+msgid "About..."
+msgstr "ì \95ë³´..."
 
-#: data/ui/glabels-ui.xml.h:160
-msgid "_Property Toolbar"
-msgstr "속성 도구(_P)"
+#: ../src/ui.c:440
+msgid "About glabels"
+msgstr "gLabels에 대해"
 
-#: data/ui/glabels-ui.xml.h:161
-msgid "_Quit"
-msgstr "ì¢\85ë£\8c(_Q)"
+#: ../src/ui.c:450
+msgid "Property toolbar"
+msgstr "ì\86\8dì\84± ë\8f\84구"
 
-#: data/ui/glabels-ui.xml.h:164
-msgid "_Save"
-msgstr "저장(_S)"
+#: ../src/ui.c:452
+msgid "Change the visibility of the property toolbar in the current window"
+msgstr "현재 윈도우의 보이는 속성 도구 변경"
 
-#: data/ui/glabels-ui.xml.h:168
-msgid "_View"
-msgstr "보기(_V)"
+#: ../src/ui.c:458
+#, fuzzy
+msgid "Grid"
+msgstr "그리드(_G)"
 
-#: data/glade/prefs-dialog.glade.h:1
-msgid "   "
-msgstr "   "
+#: ../src/ui.c:460
+msgid "Change the visibility of the grid in the current window"
+msgstr "현재 윈도우의 보이는 그리드 변경"
 
-#: data/glade/prefs-dialog.glade.h:2
-#: data/glade/object-editor.glade.h:1
-#: data/glade/template-designer.glade.h:5
-msgid "*"
-msgstr "*"
+#: ../src/ui.c:466
+msgid "Markup"
+msgstr "마크업"
 
-#: data/glade/prefs-dialog.glade.h:3
-msgid "<span weight=\"bold\">Default page size</span>"
-msgstr "<span weight=\"bold\">기본 용지 크기</span>"
+#: ../src/ui.c:468
+msgid "Change the visibility of markup lines in the current window"
+msgstr "현재 윈도우의 보이는 마크업 선 변경"
 
-#: data/glade/prefs-dialog.glade.h:4
-msgid "<span weight=\"bold\">Fill</span>"
-msgstr "<span weight=\"bold\">채우기</span>"
+#: ../src/ui.c:479
+msgid "Main toolbar"
+msgstr "주 도구"
 
-#: data/glade/prefs-dialog.glade.h:5
-msgid "<span weight=\"bold\">Line</span>"
-msgstr "<span weight=\"bold\">선</span>"
+#: ../src/ui.c:481
+msgid "Change the visibility of the main toolbar in the current window"
+msgstr "현재 윈도우의 보이는 주 도구 변경"
 
-#: data/glade/prefs-dialog.glade.h:6
-msgid "<span weight=\"bold\">Text</span>"
-msgstr "<span weight=\"bold\">글자</span>"
+#: ../src/ui.c:487
+msgid "Drawing toolbar"
+msgstr "그리기 도구"
 
-#: data/glade/prefs-dialog.glade.h:7
-msgid "<span weight=\"bold\">Units</span>"
-msgstr "<span weight=\"bold\">유닛</span>"
+#: ../src/ui.c:489
+msgid "Change the visibility of the drawing toolbar in the current window"
+msgstr "현재 윈도우의 보이는 그리기 도구 변경"
 
-#: data/glade/prefs-dialog.glade.h:8
-#: data/glade/object-editor.glade.h:4
-msgid "Alignment:"
-msgstr "위치:"
+#: ../src/ui-commands.c:1135
+msgid "Glabels includes contributions from:"
+msgstr ""
 
-#: data/glade/prefs-dialog.glade.h:9
-#: data/glade/object-editor.glade.h:8
-msgid "Color:"
-msgstr "색상:"
+#: ../src/ui-commands.c:1141
+msgid "See the file AUTHORS for additional credits,"
+msgstr "참여 제작자 AUTHORS 파일을 보세요."
 
-#: data/glade/prefs-dialog.glade.h:10
-msgid "Font:"
-msgstr "글꼴:"
+#: ../src/ui-commands.c:1142
+#, fuzzy
+msgid "or visit http://glabels.org/"
+msgstr "또는 이곳을 방문 하세요. http://glabels.sourceforge.net/"
 
-#: data/glade/prefs-dialog.glade.h:11
-msgid "ISO A4"
-msgstr "ISO A4 용지"
+#: ../src/ui-commands.c:1154
+msgid "A label and business card creation program.\n"
+msgstr ""
 
-#: data/glade/prefs-dialog.glade.h:12
-msgid "Inches"
-msgstr "인치"
+#: ../src/ui-commands.c:1158
+msgid "translator-credits"
+msgstr ""
 
-#: data/glade/prefs-dialog.glade.h:13
-#: data/glade/object-editor.glade.h:19
-msgid "Line Spacing:"
-msgstr "행간:"
+#: ../src/ui-commands.c:1161
+#, fuzzy
+msgid ""
+"gLabels is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"gLabels is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"GNOME 에서 Label과 명함을 제작하는 프로그램입니다.\n"
+"\n"
+"Glabels는 자유소프트웨어 입니다; 여러분은 이 프로그램을 GNU(General Public "
+"License)에 따라 자유롭게 수정 배포 할 수 있습니다. 이 프로그램은 GNU의 Ver.2 "
+"를 따르고 있습니다. \n"
+"\n"
+"이 프로그램은 어떠한 저작권료 없이 사용되어 질 수 있습니다.(번역주 : 번역자"
+"는 GNU를 깊이 알지 못합니다. 이 부분의 번역에 지적하고픈 부분이 있다면 번역 "
+"자료와 함께 연락주십시오. xein@naver.com)\n"
 
-#: data/glade/prefs-dialog.glade.h:14
-msgid "Locale"
-msgstr "로케일"
+#: ../src/ui-commands.c:1190
+msgid "glabels"
+msgstr "gLabels"
 
-#: data/glade/prefs-dialog.glade.h:15
-msgid "Millimeters"
-msgstr "밀리미터"
+#: ../src/warning-handler.c:69
+#, fuzzy
+msgid "gLabels Error!"
+msgstr "gLabels 환경설정"
 
-#: data/glade/prefs-dialog.glade.h:16
-msgid "Object defaults"
-msgstr "기본 항목"
+#: ../src/window.c:284
+msgid "(none) - gLabels"
+msgstr "(없음) - gLabels"
 
-#: data/glade/prefs-dialog.glade.h:17
-msgid "Points"
-msgstr "포인트"
+#: ../src/window.c:485
+msgid "(modified)"
+msgstr "(수정됨)"
 
-#: data/glade/prefs-dialog.glade.h:18
-msgid "Select default properties for new objects."
-msgstr "새 개체의 기본 속성을 선택"
+#: ../src/xml-label-04.c:75 ../src/xml-label.c:333
+#, c-format
+msgid "Bad root node = \"%s\""
+msgstr "잘못된 Root 노드 = \"%s\""
 
-#: data/glade/prefs-dialog.glade.h:19
-msgid "Select locale specific behavior."
-msgstr "구체적인 로케일을 선택"
+#: ../src/xml-label-04.c:123 ../src/xml-label.c:416
+#, c-format
+msgid "bad node =  \"%s\""
+msgstr "잘못된 노드 = \"%s\""
 
-#: data/glade/prefs-dialog.glade.h:20
-#: data/templates/paper-sizes.xml.h:25
-msgid "US Letter"
-msgstr "US Letter"
+#: ../src/xml-label.c:199 ../src/xml-label.c:237
+msgid "xmlParseFile error"
+msgstr "xmlParse파일 오류"
 
-#: data/glade/prefs-dialog.glade.h:21
-#: data/glade/object-editor.glade.h:29
-#: data/glade/template-designer.glade.h:72
-msgid "Width:"
-msgstr "넓이:"
+#: ../src/xml-label.c:274
+msgid "No document root"
+msgstr "root 문서가 아님"
 
-#: data/glade/object-editor.glade.h:2
-msgid "00000000000 00000"
-msgstr "00000000000 00000"
+#: ../src/xml-label.c:282
+msgid "Importing from glabels 0.1 format"
+msgstr "gLabels 0.1로 부터 가져오기"
 
-#: data/glade/object-editor.glade.h:3
-msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
-msgstr "<span weight=\"bold\" size=\"larger\">Xxx 개체 속성</span>"
+#: ../src/xml-label.c:291
+msgid "Importing from glabels 0.4 format"
+msgstr "gLabels 0.4로 부터 가져오기"
 
-#: data/glade/object-editor.glade.h:5
-msgid "Allow merge to automatically shrink text"
-msgstr "자동으로 축소한 글자에 병합"
+#: ../src/xml-label.c:301
+#, fuzzy, c-format
+msgid "Unknown glabels Namespace -- Using %s"
+msgstr "잘못된 문서, 알 수 없는 Glabels 이름공간"
 
-#: data/glade/object-editor.glade.h:6
-msgid "Angle:"
-msgstr "각도:"
+#: ../src/xml-label.c:370
+#, c-format
+msgid "bad node in Document node =  \"%s\""
+msgstr "문서 노드 내의 잘못된 노드 = \"%s\""
 
-#: data/glade/object-editor.glade.h:7
-msgid "Checksum"
-msgstr "체크섬"
+#: ../src/xml-label.c:868
+#, c-format
+msgid "bad node in Data node =  \"%s\""
+msgstr "데이터 노드 내의 잘못된 노드 = \"%s\""
 
-#: data/glade/object-editor.glade.h:10
-msgid "Family:"
-msgstr "패밀리:"
+#: ../src/xml-label.c:944
+#, fuzzy, c-format
+msgid "Unknown embedded file format: \"%s\""
+msgstr "알 수 없는 용지 크기 ID 또는 이름 \"%s\""
 
-#: data/glade/object-editor.glade.h:12
-msgid "Fill"
-msgstr "채우기"
+#: ../src/xml-label.c:1150 ../libglabels/xml-template.c:802
+msgid "Utf8 conversion error."
+msgstr "Utf8 변환 에러"
 
-#: data/glade/object-editor.glade.h:13
-#: data/glade/template-designer.glade.h:33
-msgid "Height:"
-msgstr "높이:"
+#: ../src/xml-label.c:1157
+msgid "Problem saving xml file."
+msgstr "XML 파일 저장에 문제가 있습니다."
 
-#: data/glade/object-editor.glade.h:14
-msgid "Image"
-msgstr "그림"
+#. Create and append an "Other" entry.
+#. Translators: "Other" here means other page size.  Meaning a page size
+#. * other than the standard ones that libglabels knows about such as
+#. * "letter", "A4", etc.
+#: ../libglabels/db.c:270
+msgid "Other"
+msgstr "직접지정"
 
-#: data/glade/object-editor.glade.h:15
-msgid "Insert merge field"
+#. Create and append a "User defined" entry.
+#: ../libglabels/db.c:279
+#, fuzzy
+msgid "User defined"
 msgstr "병합 필드 삽입"
 
-#: data/glade/object-editor.glade.h:17
-msgid "Length:"
-msgstr "길이:"
+#: ../libglabels/db.c:665
+msgid ""
+"Unable to locate paper size definitions.  Libglabels may not be installed "
+"correctly!"
+msgstr ""
 
-#: data/glade/object-editor.glade.h:18
-msgid "Line"
-msgstr "선"
+#: ../libglabels/db.c:1057
+msgid ""
+"Unable to locate category definitions.  Libglabels may not be installed "
+"correctly!"
+msgstr ""
 
-#: data/glade/object-editor.glade.h:20
-msgid "Literal:"
-msgstr "Literal:"
+#: ../libglabels/db.c:2097
+msgid ""
+"Unable to locate any template files.  Libglabels may not be installed "
+"correctly!"
+msgstr ""
 
-#: data/glade/object-editor.glade.h:21
-msgid "Load image"
-msgstr "그림 불러옴"
+#: ../libglabels/db.c:2164
+#, fuzzy, c-format
+msgid "%s full page label"
+msgstr "Generic %s 전면에 걸친"
 
-#: data/glade/object-editor.glade.h:22
-msgid "Position"
-msgstr "위치"
+#: ../libglabels/template.c:156
+#, c-format
+msgid "Equivalent part (\"%s\") for \"%s\", not previously defined."
+msgstr ""
 
-#: data/glade/object-editor.glade.h:23
-msgid "Reset image size"
-msgstr "그림크기 재설정"
+#.
+#. * Translators: 1st %d = number of labels across a page,
+#. *              2nd %d = number of labels down a page,
+#. *              3rd %d = total number of labels on a page (sheet).
+#.
+#: ../libglabels/template.c:727
+#, fuzzy, c-format
+msgid "%d × %d (%d per sheet)"
+msgstr "%d x %d  (용지의 %d)"
 
-#: data/glade/object-editor.glade.h:24
-msgid "Size"
-msgstr "크기"
+#. Translators: %d is the total number of labels on a page (sheet).
+#: ../libglabels/template.c:732
+#, c-format
+msgid "%d per sheet"
+msgstr "용지의 %d"
 
-#: data/glade/object-editor.glade.h:25
-msgid "Size:"
-msgstr "크기:"
+#: ../libglabels/template.c:802 ../libglabels/template.c:808
+#: ../libglabels/template.c:818 ../libglabels/template.c:824
+#, fuzzy
+msgid "diameter"
+msgstr "지름 %s %s"
 
-#: data/glade/object-editor.glade.h:26
-msgid "Style"
-msgstr "모양"
+#. The ids are identical to the absolute length units supported in
+#. the CSS2 Specification (Section 4.3.2)
+#. This table must be sorted exactly as the enumerations in lglUnits
+#. [LGL_UNITS_POINT]
+#: ../libglabels/units.c:65 ../data/ui/object-editor.ui.h:39
+#: ../data/ui/prefs-dialog.ui.h:22
+msgid "points"
+msgstr "포인트"
 
-#: data/glade/object-editor.glade.h:27
-msgid "Style:"
-msgstr "모양:"
+#. [LGL_UNITS_INCH]
+#: ../libglabels/units.c:66 ../data/ui/object-editor.ui.h:38
+#: ../data/ui/template-designer.ui.h:62
+msgid "inches"
+msgstr "[인치]"
 
-#: data/glade/object-editor.glade.h:30
-msgid "X:"
-msgstr "X:"
+#. [LGL_UNITS_MM]
+#: ../libglabels/units.c:67
+msgid "mm"
+msgstr "[밀리미터]"
 
-#: data/glade/object-editor.glade.h:31
-msgid "Y:"
-msgstr "Y:"
+#. [LGL_UNITS_CM]
+#: ../libglabels/units.c:68
+msgid "cm"
+msgstr ""
 
-#: data/glade/object-editor.glade.h:32
-msgid "degrees"
-msgstr "degrees"
+#. [LGL_UNITS_PICA]
+#: ../libglabels/units.c:69
+msgid "picas"
+msgstr ""
 
-#: data/glade/object-editor.glade.h:33
-msgid "dialog1"
-msgstr "dialog1"
+#: ../libglabels/xml-template.c:223
+msgid "Missing name or brand/part attributes."
+msgstr ""
 
-#: data/glade/object-editor.glade.h:34
-msgid "digits:"
+#. This should always be an id, but just in case a name
+#. slips by!
+#: ../libglabels/xml-template.c:244
+#, c-format
+msgid "Unknown page size id \"%s\", trying as name"
+msgstr "알 수 없는 용지 크기 ID \"%s\"。名前として扱います。"
+
+#: ../libglabels/xml-template.c:256
+#, c-format
+msgid "Unknown page size id or name \"%s\""
+msgstr "알 수 없는 용지 크기 ID 또는 이름 \"%s\""
+
+#: ../libglabels/xml-template.c:275
+msgid "Forward references not supported."
+msgstr ""
+
+#: ../libglabels/xml-template.c:747
+msgid ""
+"Missing required \"brand\" or \"part\" attribute, trying deprecated name."
+msgstr ""
+
+#: ../libglabels/xml-template.c:757
+msgid "Name attribute also missing."
+msgstr ""
+
+#.
+#. * Local Variables:       -- emacs
+#. * mode: C                -- emacs
+#. * c-basic-offset: 8      -- emacs
+#. * tab-width: 8           -- emacs
+#. * indent-tabs-mode: nil  -- emacs
+#. * End:                   -- emacs
+#.
+#: ../data/ui/merge-properties-dialog.ui.h:1
+msgid "Format:"
+msgstr "서식:"
+
+#: ../data/ui/merge-properties-dialog.ui.h:2
+msgid "Location:"
+msgstr "장소:"
+
+#: ../data/ui/merge-properties-dialog.ui.h:3
+#, fuzzy
+msgid "Record selection/preview"
+msgstr "선택 기록/미리보기:"
+
+#: ../data/ui/merge-properties-dialog.ui.h:4
+#, fuzzy
+msgid "Select all"
+msgstr "모두 선택"
+
+#: ../data/ui/merge-properties-dialog.ui.h:5
+msgid "Source"
+msgstr "소스"
+
+#: ../data/ui/merge-properties-dialog.ui.h:6
+#, fuzzy
+msgid "Unselect all"
+msgstr "모든 선택 해제"
+
+#: ../data/ui/media-select.ui.h:1
+msgid "Brand:"
+msgstr ""
+
+#: ../data/ui/media-select.ui.h:2
+msgid "Category:"
+msgstr ""
+
+#: ../data/ui/media-select.ui.h:3
+#, fuzzy
+msgid "Custom"
+msgstr "임의의"
+
+#: ../data/ui/media-select.ui.h:4 ../data/ui/new-label-dialog.ui.h:6
+#: ../data/ui/template-designer.ui.h:42
+msgid "Page size:"
+msgstr "용지 크기:"
+
+#: ../data/ui/media-select.ui.h:5
+#, fuzzy
+msgid "Recent"
+msgstr "최근의 파일(_F)"
+
+#: ../data/ui/media-select.ui.h:6
+#, fuzzy
+msgid "Search all"
+msgstr "모두 선택"
+
+#: ../data/ui/new-label-dialog.ui.h:1
+msgid ""
+"Choose label or card product from hundreds of predefined templates or define "
+"your own."
+msgstr ""
+
+#: ../data/ui/new-label-dialog.ui.h:2 ../data/ui/template-designer.ui.h:27
+msgid "Description:"
+msgstr "설명:"
+
+#: ../data/ui/new-label-dialog.ui.h:3
+msgid "Label size:"
+msgstr "라벨 크기:"
+
+#: ../data/ui/new-label-dialog.ui.h:4
+msgid "Layout:"
+msgstr "배치:"
+
+#: ../data/ui/new-label-dialog.ui.h:5
+#, fuzzy
+msgid "Normal"
+msgstr "서식:"
+
+#: ../data/ui/new-label-dialog.ui.h:7 ../data/ui/template-designer.ui.h:43
+msgid "Part #:"
+msgstr "라벨분류:"
+
+#: ../data/ui/new-label-dialog.ui.h:8
+msgid "Please review and confirm your selection."
+msgstr ""
+
+#: ../data/ui/new-label-dialog.ui.h:9
+#, fuzzy
+msgid "Rotated"
+msgstr "회전"
+
+#: ../data/ui/new-label-dialog.ui.h:10
+msgid "Select orientation of label content."
+msgstr ""
+
+#: ../data/ui/new-label-dialog.ui.h:11
+msgid "Similar products:"
+msgstr ""
+
+#: ../data/ui/new-label-dialog.ui.h:12
+msgid "Vendor:"
+msgstr ""
+
+#: ../data/ui/object-editor.ui.h:2
+#, no-c-format
+msgid "%"
+msgstr ""
+
+#: ../data/ui/object-editor.ui.h:3 ../data/ui/prefs-dialog.ui.h:2
+msgid "Alignment:"
+msgstr "위치:"
+
+#: ../data/ui/object-editor.ui.h:4
+msgid "Allow merge to automatically shrink text"
+msgstr "자동으로 축소한 글자에 병합"
+
+#: ../data/ui/object-editor.ui.h:5
+msgid "Angle:"
+msgstr "각도:"
+
+#: ../data/ui/object-editor.ui.h:6
+msgid "Checksum"
+msgstr "체크섬"
+
+#: ../data/ui/object-editor.ui.h:7 ../data/ui/prefs-dialog.ui.h:3
+msgid "Color:"
+msgstr "색상:"
+
+#: ../data/ui/object-editor.ui.h:9
+msgid "Enable shadow"
+msgstr ""
+
+#: ../data/ui/object-editor.ui.h:10
+msgid "Family:"
+msgstr "패밀리:"
+
+#: ../data/ui/object-editor.ui.h:11
+msgid "File:"
+msgstr "파일:"
+
+#: ../data/ui/object-editor.ui.h:12 ../data/ui/prefs-dialog.ui.h:5
+msgid "Fill"
+msgstr "채우기"
+
+#: ../data/ui/object-editor.ui.h:13 ../data/ui/template-designer.ui.h:30
+msgid "Height:"
+msgstr "높이:"
+
+#: ../data/ui/object-editor.ui.h:15
+msgid "Key:"
+msgstr "키:"
+
+#: ../data/ui/object-editor.ui.h:16
+msgid "Length:"
+msgstr "길이:"
+
+#: ../data/ui/object-editor.ui.h:18 ../data/ui/prefs-dialog.ui.h:10
+msgid "Line Spacing:"
+msgstr "행간:"
+
+#: ../data/ui/object-editor.ui.h:19
+msgid "Literal:"
+msgstr "Literal:"
+
+#: ../data/ui/object-editor.ui.h:20
+msgid "Opacity:"
+msgstr ""
+
+#: ../data/ui/object-editor.ui.h:21
+msgid "Position"
+msgstr "위치"
+
+#: ../data/ui/object-editor.ui.h:22
+msgid "Reset image size"
+msgstr "그림크기 재설정"
+
+#: ../data/ui/object-editor.ui.h:23
+msgid "Shadow"
+msgstr ""
+
+#: ../data/ui/object-editor.ui.h:24
+msgid "Size"
+msgstr "크기"
+
+#: ../data/ui/object-editor.ui.h:25
+msgid "Size:"
+msgstr "크기:"
+
+#: ../data/ui/object-editor.ui.h:26
+msgid "Style"
+msgstr "모양"
+
+#: ../data/ui/object-editor.ui.h:27
+msgid "Style:"
+msgstr "모양:"
+
+#: ../data/ui/object-editor.ui.h:29 ../data/ui/prefs-dialog.ui.h:20
+#: ../data/ui/template-designer.ui.h:61
+msgid "Width:"
+msgstr "넓이:"
+
+#: ../data/ui/object-editor.ui.h:30
+msgid "X Offset:"
+msgstr ""
+
+#: ../data/ui/object-editor.ui.h:31
+msgid "X:"
+msgstr "X:"
+
+#: ../data/ui/object-editor.ui.h:32
+msgid "Y Offset:"
+msgstr ""
+
+#: ../data/ui/object-editor.ui.h:33
+msgid "Y:"
+msgstr "Y:"
+
+#: ../data/ui/object-editor.ui.h:34
+msgid "degrees"
+msgstr "degrees"
+
+#: ../data/ui/object-editor.ui.h:35
+msgid "dialog1"
+msgstr "dialog1"
+
+#: ../data/ui/object-editor.ui.h:36
+msgid "digits:"
 msgstr "digits:"
 
-#: data/glade/object-editor.glade.h:35
+#: ../data/ui/object-editor.ui.h:37
 msgid "format:"
 msgstr "서식:"
 
-#: data/glade/template-designer.glade.h:1
-msgid "  "
-msgstr "  "
+#: ../data/ui/prefs-dialog.ui.h:1
+msgid "   "
+msgstr "   "
+
+#: ../data/ui/prefs-dialog.ui.h:4
+#, fuzzy
+msgid "Default page size"
+msgstr "그림크기 재설정"
+
+#: ../data/ui/prefs-dialog.ui.h:6
+msgid "Font:"
+msgstr "글꼴:"
+
+#: ../data/ui/prefs-dialog.ui.h:7
+msgid "ISO A4"
+msgstr "ISO A4 용지"
+
+#: ../data/ui/prefs-dialog.ui.h:8
+msgid "Inches"
+msgstr "인치"
+
+#: ../data/ui/prefs-dialog.ui.h:11
+msgid "Locale"
+msgstr "로케일"
+
+#: ../data/ui/prefs-dialog.ui.h:12
+msgid "Millimeters"
+msgstr "밀리미터"
+
+#: ../data/ui/prefs-dialog.ui.h:13
+msgid "Object defaults"
+msgstr "기본 항목"
+
+#: ../data/ui/prefs-dialog.ui.h:14
+msgid "Points"
+msgstr "포인트"
+
+#: ../data/ui/prefs-dialog.ui.h:15
+msgid "Select default properties for new objects."
+msgstr "새 개체의 기본 속성을 선택"
+
+#: ../data/ui/prefs-dialog.ui.h:16
+msgid "Select locale specific behavior."
+msgstr "구체적인 로케일을 선택"
+
+#: ../data/ui/prefs-dialog.ui.h:18 ../templates/paper-sizes.xml.h:35
+msgid "US Letter"
+msgstr "US Letter"
+
+#: ../data/ui/prefs-dialog.ui.h:19
+#, fuzzy
+msgid "Units"
+msgstr "제목없음"
+
+#: ../data/ui/property-bar.ui.h:1
+msgid "Bold"
+msgstr "굵게"
+
+#: ../data/ui/property-bar.ui.h:2
+msgid "Center align"
+msgstr "중앙 정렬"
+
+#: ../data/ui/property-bar.ui.h:7
+msgid "Left align"
+msgstr "왼쪽 정렬"
+
+#: ../data/ui/property-bar.ui.h:10
+msgid "Right align"
+msgstr "오른쪽으로 정렬"
 
-#: data/glade/template-designer.glade.h:2
+#: ../data/ui/template-designer.ui.h:1
 msgid "(e.g., \"Mailing Labels,\" \"Business Cards,\" ...)"
 msgstr "(예: \"주소라벨\", \"명함\", ...)"
 
-#: data/glade/template-designer.glade.h:3
+#: ../data/ui/template-designer.ui.h:2
 msgid "(e.g., 8163A)"
 msgstr "(예: 8163A)"
 
-#: data/glade/template-designer.glade.h:4
+#: ../data/ui/template-designer.ui.h:3
 msgid "(e.g., Avery, Acme, ...)"
 msgstr "(예: Avery, Acme, ...)"
 
-#: data/glade/template-designer.glade.h:6
+#: ../data/ui/template-designer.ui.h:4
 msgid "1. Outer radius:"
 msgstr "1. 바깥 반지름:"
 
-#: data/glade/template-designer.glade.h:7
+#: ../data/ui/template-designer.ui.h:5
 msgid "1. Radius:"
 msgstr "1. 반지름:"
 
-#: data/glade/template-designer.glade.h:8
+#: ../data/ui/template-designer.ui.h:6
 msgid "1. Width:"
 msgstr "1. 넓이:"
 
-#: data/glade/template-designer.glade.h:9
+#: ../data/ui/template-designer.ui.h:7
 msgid "2. Height:"
 msgstr "2. 높이:"
 
-#: data/glade/template-designer.glade.h:10
+#: ../data/ui/template-designer.ui.h:8
 msgid "2. Inner radius:"
 msgstr "2. 안쪽 반지름:"
 
-#: data/glade/template-designer.glade.h:11
+#: ../data/ui/template-designer.ui.h:9
 msgid "2. Waste (overprint allowed):"
 msgstr "2. 여백 (겹친 인쇄 허용):"
 
-#: data/glade/template-designer.glade.h:12
+#: ../data/ui/template-designer.ui.h:10
 msgid "3. Clipping width:"
 msgstr "3. 오려내기 넓이:"
 
-#: data/glade/template-designer.glade.h:13
+#: ../data/ui/template-designer.ui.h:11
 msgid "3. Margin"
 msgstr "3. 여백"
 
-#: data/glade/template-designer.glade.h:14
+#: ../data/ui/template-designer.ui.h:12
 msgid "3. Round (radius of corner):"
 msgstr "3. 둥글기 (귀퉁이 각도):"
 
-#: data/glade/template-designer.glade.h:15
+#: ../data/ui/template-designer.ui.h:13
 msgid "4. Clipping height:"
 msgstr "4. 오려내기 높이:"
 
-#: data/glade/template-designer.glade.h:16
+#: ../data/ui/template-designer.ui.h:14
 msgid "4. Horiz. waste (overprint allowed):"
 msgstr "4. 좌우 여백 (겹친 인쇄 허용):"
 
-#: data/glade/template-designer.glade.h:17
+#: ../data/ui/template-designer.ui.h:15
 msgid "5. Vert. waste (overprint allowed):"
 msgstr "5. 아래위 여백 (겹친 인쇄 허용):"
 
-#: data/glade/template-designer.glade.h:18
+#: ../data/ui/template-designer.ui.h:16
 msgid "5. Waste (overprint allowed):"
 msgstr "5. 여백 (겹친 인쇄 허용):"
 
-#: data/glade/template-designer.glade.h:19
+#: ../data/ui/template-designer.ui.h:17
 msgid "6. Margin"
 msgstr "6. 라벨 내 여백"
 
-#: data/glade/template-designer.glade.h:20
+#: ../data/ui/template-designer.ui.h:18
 msgid "Brand/Manufacturer:"
 msgstr "상표/제조업체:"
 
-#: data/glade/template-designer.glade.h:21
+#: ../data/ui/template-designer.ui.h:19
 msgid "CD/DVD (including credit card CDs)"
 msgstr "CD/DVD (credit card CD 포함)"
 
-#: data/glade/template-designer.glade.h:22
+#: ../data/ui/template-designer.ui.h:20
 msgid ""
 "Congratulations!\n"
 "\n"
@@ -2031,513 +2425,1344 @@ msgstr ""
 "\"취소\"를 누르면 만든것을 버리게 됩니다.\n"
 "또는 \"뒤로\"를 선택하여 만든것을 편집 할 수 있습니다."
 
-#: data/glade/template-designer.glade.h:30
-msgid "Design Completed"
-msgstr "서식 디자인 완료됨"
+#: ../data/ui/template-designer.ui.h:28
+msgid "Distance from left edge (x0):"
+msgstr "왼쪽 가장자리 부터  (x0):"
+
+#: ../data/ui/template-designer.ui.h:29
+msgid "Distance from top edge (y0):"
+msgstr "위쪽 가장자리 부터 (y0):"
+
+#: ../data/ui/template-designer.ui.h:31
+msgid "Horizontal pitch (dx):"
+msgstr "수평 pitch (dx):"
+
+#: ../data/ui/template-designer.ui.h:32
+msgid ""
+"How many layouts will your template contain? \n"
+"\n"
+"A layout is a set of labels or cards that can be arranged in a simple grid.\n"
+"Most templates only need one layout, as in the first example.\n"
+"The second example illustrates when two layouts are needed."
+msgstr ""
+"서식을 얼마나 포함합니까?\n"
+"\n"
+"레이아웃 서식 개수 지정을 통해 두개 이내의 레이아웃을 만들 수 있습니다.\n"
+"보통은 아래 첫번째 예제처럼 한개의 레이아웃을 필요로 하지만,\n"
+"어떤것은 두번째 예제처럼 두개의 레이아웃을 필요로 하는것도 있습니다."
+
+#: ../data/ui/template-designer.ui.h:37
+msgid "Layout #1"
+msgstr "레이아웃 #1:"
+
+#: ../data/ui/template-designer.ui.h:38
+msgid "Layout #2"
+msgstr "레이아웃 #2:"
+
+#: ../data/ui/template-designer.ui.h:39
+msgid "Number across (nx):"
+msgstr "가로 개수 (nx):"
+
+#: ../data/ui/template-designer.ui.h:40
+msgid "Number down (ny):"
+msgstr "세로 개수 (ny):"
+
+#: ../data/ui/template-designer.ui.h:41
+msgid "Number of layouts:"
+msgstr "레이아웃 선택:"
+
+#: ../data/ui/template-designer.ui.h:44
+msgid ""
+"Please enter the following identifying information about the template "
+"stationery."
+msgstr "입력 상자에 기본 서식 정보를 입력하세요."
+
+#: ../data/ui/template-designer.ui.h:45
+msgid "Please enter the following layout information."
+msgstr "레이아웃 정보를 입력하세요."
+
+#: ../data/ui/template-designer.ui.h:46
+msgid ""
+"Please enter the following size parameters of a single label in your "
+"template."
+msgstr "라벨서식의 치수를 입력하세요."
+
+#: ../data/ui/template-designer.ui.h:47
+msgid ""
+"Please enter the following size parameters of a single label or card in your "
+"template."
+msgstr "라벨서식 또는 카드서식의 치수를 입력하세요."
+
+#: ../data/ui/template-designer.ui.h:48
+msgid "Please select the basic shape of the labels or cards."
+msgstr "라벨 또는 카드의 기본 형태를 선택하세요."
+
+#: ../data/ui/template-designer.ui.h:49
+msgid "Please select the page size of the template stationery."
+msgstr "서식 용지의 크기 선택"
+
+#: ../data/ui/template-designer.ui.h:50
+msgid "Print test sheet"
+msgstr "용지 테스트 인쇄"
+
+#: ../data/ui/template-designer.ui.h:51
+msgid "Rectangular or square (can have rounded corners)"
+msgstr "직사각형 또는 정사각형(마무리를 둥글게 만들 수 있음)"
+
+#: ../data/ui/template-designer.ui.h:52
+msgid "Round"
+msgstr "둥근형"
+
+#: ../data/ui/template-designer.ui.h:53
+msgid ""
+"Templates needing\n"
+"two layouts."
+msgstr ""
+"2. 두개의 레이아웃\n"
+"서식 필요"
+
+#: ../data/ui/template-designer.ui.h:55
+msgid ""
+"Templates needing only\n"
+"one layout."
+msgstr ""
+"1. 한개의 레이아웃\n"
+"서식 필요"
+
+#: ../data/ui/template-designer.ui.h:57
+msgid "Vertical pitch (dy):"
+msgstr "수직 pitch (dy):"
+
+#: ../data/ui/template-designer.ui.h:58
+msgid ""
+"Welcome to the gLabels Template Designer.\n"
+"\n"
+"This dialog will assist you in the creation of a custom gLabels template."
+msgstr ""
+"gLabels 서식 제작기에 어서오세요.\n"
+"\n"
+"차근차근 gLabels의 사용자 서식을 쉽게 만들 수 있게 도와드립니다. "
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:1
+msgid "Collate"
+msgstr "제본"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:2
+msgid "Copies"
+msgstr "매수"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:3
+msgid "Copies:"
+msgstr "매수:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:5
+#, fuzzy
+msgid "Merge Control"
+msgstr "문서 여백 제어"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:6
+msgid "Options"
+msgstr "옵션"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:7
+msgid "Sheets:"
+msgstr "용지:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:8
+msgid "Start on label"
+msgstr "라벨의 시작"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:9
+msgid "from:"
+msgstr "부터:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:10
+msgid "on 1st sheet"
+msgstr "첫번째 용지에서"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:14
+msgid "to:"
+msgstr "에게:"
+
+#: ../data/desktop/glabels-3.0.desktop.in.h:1
+msgid "Create labels, business cards and media covers"
+msgstr "라벨, 명함 그리고 미디어 커버 만들기"
+
+#: ../data/desktop/glabels-3.0.desktop.in.h:2
+#, fuzzy
+msgid "gLabels Label Designer 3"
+msgstr "gLabels 라벨 디자이너"
+
+#: ../data/mime/glabels-3.0.xml.in.h:1
+msgid "gLabels Project File"
+msgstr "gLabels 프로젝트 파일"
+
+#. Envelopes
+#: ../templates/paper-sizes.xml.h:2
+msgid "#10 Envelope"
+msgstr ""
+
+#. Other ISO A series sizes
+#: ../templates/paper-sizes.xml.h:4
+msgid "A0"
+msgstr "A0용지"
+
+#: ../templates/paper-sizes.xml.h:5
+msgid "A1"
+msgstr "A1용지"
+
+#: ../templates/paper-sizes.xml.h:6
+msgid "A10"
+msgstr "A10용지"
+
+#: ../templates/paper-sizes.xml.h:7
+msgid "A2"
+msgstr "A2용지"
+
+#: ../templates/paper-sizes.xml.h:8
+msgid "A3"
+msgstr "A3용지"
+
+#. Most popular (at top of list)
+#: ../templates/paper-sizes.xml.h:10
+msgid "A4"
+msgstr "A4용지"
+
+#: ../templates/paper-sizes.xml.h:11
+msgid "A5"
+msgstr "A5용지"
+
+#: ../templates/paper-sizes.xml.h:12
+msgid "A6"
+msgstr "A6용지"
+
+#: ../templates/paper-sizes.xml.h:13
+msgid "A7"
+msgstr "A7용지"
+
+#: ../templates/paper-sizes.xml.h:14
+msgid "A8"
+msgstr "A8용지"
+
+#: ../templates/paper-sizes.xml.h:15
+msgid "A9"
+msgstr "A9용지"
+
+#. ISO B series sizes
+#: ../templates/paper-sizes.xml.h:17
+msgid "B0"
+msgstr "B0용지"
+
+#: ../templates/paper-sizes.xml.h:18
+msgid "B1"
+msgstr "B1용지"
+
+#: ../templates/paper-sizes.xml.h:19
+msgid "B10"
+msgstr "B10용지"
+
+#: ../templates/paper-sizes.xml.h:20
+msgid "B2"
+msgstr "B2용지"
+
+#: ../templates/paper-sizes.xml.h:21
+msgid "B3"
+msgstr "B3용지"
+
+#: ../templates/paper-sizes.xml.h:22
+msgid "B4"
+msgstr "B4용지"
+
+#: ../templates/paper-sizes.xml.h:23
+msgid "B5"
+msgstr "B5용지"
+
+#: ../templates/paper-sizes.xml.h:24
+msgid "B6"
+msgstr "B6용지"
+
+#: ../templates/paper-sizes.xml.h:25
+msgid "B7"
+msgstr "B7용지"
+
+#: ../templates/paper-sizes.xml.h:26
+msgid "B8"
+msgstr "B8용지"
+
+#: ../templates/paper-sizes.xml.h:27
+msgid "B9"
+msgstr "B9용지"
+
+#: ../templates/paper-sizes.xml.h:28
+msgid "C5"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:29
+msgid "C6"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:30
+msgid "DL"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:31
+msgid "Monarch Envelope"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:32
+msgid "US Executive"
+msgstr "US Executive"
+
+#. Other US paper sizes
+#: ../templates/paper-sizes.xml.h:34
+msgid "US Legal"
+msgstr "US Legal"
+
+#: ../templates/categories.xml.h:1
+msgid "Any card"
+msgstr ""
+
+#: ../templates/categories.xml.h:2
+#, fuzzy
+msgid "Any label"
+msgstr "라벨 열기"
+
+#. ===================================================================
+#: ../templates/categories.xml.h:3 ../templates/pearl-iso-templates.xml.h:8
+#, fuzzy
+msgid "Business cards"
+msgstr "명함"
+
+#: ../templates/categories.xml.h:4
+msgid "CD/DVD or other media"
+msgstr ""
+
+#: ../templates/categories.xml.h:5
+msgid "Mailing/shipping products"
+msgstr ""
+
+#: ../templates/categories.xml.h:6
+#, fuzzy
+msgid "Rectangular labels"
+msgstr "직사각형 라벨"
+
+#. ===================================================================
+#: ../templates/categories.xml.h:7 ../templates/pearl-iso-templates.xml.h:46
+#, fuzzy
+msgid "Round labels"
+msgstr "Allround 라벨"
+
+#: ../templates/categories.xml.h:8
+#, fuzzy
+msgid "Square labels"
+msgstr "구형 라벨"
+
+#. ===================================================================
+#. ********************************************************************
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:2
+#: ../templates/dymo-other-templates.xml.h:4
+#: ../templates/maco-us-templates.xml.h:2
+#: ../templates/misc-iso-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:1
+#: ../templates/zweckform-iso-templates.xml.h:2
+msgid "Address Labels"
+msgstr "주소 라벨"
+
+#. ===================================================================
+#. ============================================================
+#. ===================================================================
+#. ********************************************************************
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:8
+#: ../templates/misc-us-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:6
+msgid "Business Cards"
+msgstr "명함"
+
+#. ===================================================================
+#. ===============================================================
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:6
+#: ../templates/avery-iso-templates.xml.h:14
+#: ../templates/misc-us-templates.xml.h:8
+#: ../templates/misc-iso-templates.xml.h:16
+#: ../templates/pearl-iso-templates.xml.h:20
+#: ../templates/worldlabel-us-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:8
+msgid "CD/DVD Labels"
+msgstr "CD/DVD 라벨"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:8
+msgid "CD/DVD Labels (Disc Labels)"
+msgstr "CD/DVD 라벨 (Disc 라벨)"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:10
+#, fuzzy
+msgid "CD/DVD Labels (Spine Labels)"
+msgstr "CD/DVD 라벨 (Disc 라벨)"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:12
+#: ../templates/avery-iso-templates.xml.h:16
+#: ../templates/worldlabel-us-templates.xml.h:3
+msgid "Diskette Labels"
+msgstr "디스크 라벨"
+
+#. the LSK labels can be torn in half down the center
+#: ../templates/avery-us-templates.xml.h:14
+#, fuzzy
+msgid "Divider Labels"
+msgstr "디스크 라벨"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:16
+#: ../templates/avery-other-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:4
+#, fuzzy
+msgid "File Folder Labels"
+msgstr "Arch 파일 라벨"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:5
+msgid "Filing Labels"
+msgstr "출원 라벨"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:20
+#: ../templates/worldlabel-us-templates.xml.h:6
+msgid "Full Sheet Labels"
+msgstr "Full Sheet 라벨"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:22
+#, fuzzy
+msgid "ID Labels"
+msgstr "DLT 라벨"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:24
+#, fuzzy
+msgid "Index Cards"
+msgstr "명함"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:26
+msgid "Large Round Labels"
+msgstr "큰 원형 라벨"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:28
+msgid "Name Badge Labels"
+msgstr "Name Badge 라벨"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:30
+msgid "Post cards"
+msgstr ""
+
+#. ===================================================================
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:32
+#: ../templates/dymo-other-templates.xml.h:12
+#: ../templates/worldlabel-us-templates.xml.h:8
+msgid "Return Address Labels"
+msgstr "반송 주소용 라벨"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:34
+#: ../templates/maco-us-templates.xml.h:3
+#: ../templates/misc-us-templates.xml.h:30
+#: ../templates/worldlabel-us-templates.xml.h:9
+#, fuzzy
+msgid "Round Labels"
+msgstr "Allround 라벨"
+
+#. ===================================================================
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:36
+#: ../templates/uline-us-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:10
+msgid "Shipping Labels"
+msgstr "출하 라벨"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:38
+msgid "Small Round Labels"
+msgstr "작은 원형 라벨"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:40
+msgid "Square Labels"
+msgstr "구형 라벨"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:42
+msgid "Tent Cards"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:44
+#: ../templates/worldlabel-us-templates.xml.h:11
+msgid "Video Tape Face Labels"
+msgstr "비디오 테입 앞면 라벨"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:46
+#: ../templates/worldlabel-us-templates.xml.h:12
+msgid "Video Tape Spine Labels"
+msgstr "비디오 테입 옆면 라벨"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:4
+msgid "Address labels"
+msgstr "주소 라벨"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:6
+#, fuzzy
+msgid "Allround labels"
+msgstr "Allround 라벨"
+
+#. ===============================================================
+#: ../templates/avery-iso-templates.xml.h:10
+msgid "CD Booklet"
+msgstr "CD Booklet"
+
+#. ===============================================================
+#: ../templates/avery-iso-templates.xml.h:12
+msgid "CD Inlet"
+msgstr "CD Inlet"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:18
+msgid "Diskette labels"
+msgstr "디스크 라벨"
+
+#. ===============================================================
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:20
+#: ../templates/misc-us-templates.xml.h:20
+#: ../templates/misc-iso-templates.xml.h:36
+#: ../templates/zweckform-iso-templates.xml.h:16
+msgid "Mailing Labels"
+msgstr "봉투 라벨"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:22
+msgid "Mailing labels"
+msgstr "봉투 라벨"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:24
+msgid "Mini Address Labels"
+msgstr "작은 주소라벨"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:26
+#, fuzzy
+msgid "Mini Labels"
+msgstr "Mini-CD 라벨"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:28
+msgid "Shipping labels"
+msgstr "출하 라벨"
+
+#: ../templates/brother-other-templates.xml.h:1
+msgid "Multi Purpose Labels 17mm x 54mm"
+msgstr ""
+
+#: ../templates/brother-other-templates.xml.h:2
+#, fuzzy
+msgid "Shipping Labels 62mm x 100mm"
+msgstr "출하 라벨"
+
+#.
+#. *********************************************************************
+#. *********************************************************************
+#. Labels for the Brother QL-500/550/650 PC Label Printers
+#.
+#. These templates work with the Brother Linux Printer CUPS Driver.  It
+#. is unknown if these work correctly with the foomatic print driver for
+#. these printers.
+#.
+#. One difference from typical templates is that the template size is
+#. not the actual media size - it is the size of the printable area,
+#. which is smaller than the media size.  This is because (at least with
+#. the Brother driver) coordinates are relative the corner of this area.
+#.
+#. *********************************************************************
+#. *********************************************************************
+#.
+#: ../templates/brother-other-templates.xml.h:20
+#, fuzzy
+msgid "Standard Address Labels 29mm x 90mm"
+msgstr "반송 주소용 라벨"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:2
+msgid "3.5in Diskette"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:6
+#, fuzzy
+msgid "File Folder"
+msgstr "색 채우기"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:8
+msgid "Hanging Folder"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:10
+#, fuzzy
+msgid "Large Address Labels"
+msgstr "주소 라벨"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:14
+#, fuzzy
+msgid "Shipping Address Labels"
+msgstr "작은 주소라벨"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:2
+msgid "Business Card CD"
+msgstr "명함 CD"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:6
+msgid "CD Template Rectangles"
+msgstr "CD 서식 (직사각형)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:10
+msgid "CD/DVD Labels (Face Only)"
+msgstr "CD/DVD 라벨 (표지만)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:12
+#: ../templates/misc-iso-templates.xml.h:18
+msgid "CD/DVD Labels (face only)"
+msgstr "CD/DVD 라벨 (표지만)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:14
+#, fuzzy
+msgid "Cassette Labels"
+msgstr "디스크 라벨"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:16
+msgid "DLT Labels"
+msgstr "DLT 라벨"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:18
+#, fuzzy
+msgid "Jewel Case Booklet"
+msgstr "CD Booklet"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:22
+msgid "Microtube labels"
+msgstr "Microtube 라벨"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:24
+msgid "Mini-CD Labels"
+msgstr "Mini-CD 라벨"
+
+#: ../templates/misc-us-templates.xml.h:25
+msgid "PRO CD Labels 2-up (CD spine only)"
+msgstr "PRO CD 라벨 2-up (CD 세로표지 전용)"
+
+#: ../templates/misc-us-templates.xml.h:26
+msgid "PRO CD Labels 2-up (Face only)"
+msgstr "PRO CD 라벨 2-up (표지만)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:42
+msgid "PRO CD Labels 2-up (face only)"
+msgstr "PRO CD 라벨 2-up (표지만)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:32
+msgid "Slimline CD Case (rightside up)"
+msgstr "Slimline CD 케이스 (우측옆)"
+
+#: ../templates/misc-us-templates.xml.h:33
+msgid "Slimline CD Case (upside down)"
+msgstr "Slimline CD 케이스(상위)"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:4
+#: ../templates/zweckform-iso-templates.xml.h:4
+msgid "Allround Labels"
+msgstr "Allround 라벨"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:6
+msgid "Arch File Labels"
+msgstr "Arch 파일 라벨"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:8
+msgid "Arch File Labels (large)"
+msgstr "Arch 파일 라벨 (큰것)"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:10
+msgid "Arch File Labels (small)"
+msgstr "Arch 파일 라벨 (작은것)"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:14
+#, fuzzy
+msgid "CD Labels"
+msgstr "DLT 라벨"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:20
+msgid "CD/DVD Labels Standard Format (face only)"
+msgstr "기본 CD/DVD 라벨 (표지만)"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:22
+msgid "Diskette Labels (face only)"
+msgstr "디스켓 라벨 (표지만)"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:24
+msgid "EPSON Photo Stickers 16"
+msgstr "EPSON 포토 스티커 16"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:26
+msgid "Etiketten"
+msgstr "Etiketten"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:28
+msgid "Fridge Magnet Stickers"
+msgstr "Fridge Magnet 스티커"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:30
+#, fuzzy
+msgid "General Labels"
+msgstr "봉투 라벨"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:32
+msgid "Inkjet/Laser Labels 70x37mm"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:38
+msgid "Mailing Labels-2 columns"
+msgstr "주소 라벨 (2형)"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:40
+msgid "Mailing Labels-3 columns"
+msgstr "주소라벨 (3형)"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:44
+#: ../templates/zweckform-iso-templates.xml.h:24
+msgid "Rectangular Labels"
+msgstr "직사각형 라벨"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:46
+#, fuzzy
+msgid "Universal Labels"
+msgstr "작은 주소라벨"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:48
+msgid "Video Labels (face only)"
+msgstr "비디오 라벨 (표지만)"
+
+#. ===================================================================
+#: ../templates/misc-other-templates.xml.h:2
+#, fuzzy
+msgid "Multi-Purpose Labels"
+msgstr "Microtube 라벨"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:4
+#, fuzzy
+msgid "Address Labels (STAMPIT)"
+msgstr "주소 라벨"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:6
+#, fuzzy
+msgid "Bottle labels"
+msgstr "디스크 라벨"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:10
+msgid "Business cards glossy, both sides printable"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:12
+#, fuzzy
+msgid "Business cards high glossy"
+msgstr "명함"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:14
+#, fuzzy
+msgid "Business cards punched"
+msgstr "명함"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:16
+#, fuzzy
+msgid "Business cards punched dull"
+msgstr "명함"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:18
+#, fuzzy
+msgid "Business cards punched glossy"
+msgstr "명함"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:22
+#, fuzzy
+msgid "Floppy disk labels"
+msgstr "디스크 라벨"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:24
+#, fuzzy
+msgid "Foldable business cards"
+msgstr "명함"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:26
+msgid "Foldable business cards glossy/dull"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:28
+#, fuzzy
+msgid "Labels A4"
+msgstr "라벨"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:30
+#, fuzzy
+msgid "Labels A5"
+msgstr "라벨"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:32
+#, fuzzy
+msgid "Labels A6"
+msgstr "라벨"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:34
+msgid "Membership cards"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:36
+msgid "Membership cards, both sides printable"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:38
+msgid "Name plates"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:40
+msgid "Passport photo labels glossy"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:42
+#, fuzzy
+msgid "Photo labels"
+msgstr "gLabels에 대해"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:44
+msgid "Photo labels semiglossy"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:48
+#, fuzzy
+msgid "SD card labels"
+msgstr "구형 라벨"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:50
+msgid "Self-adhesive film transparent"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:52
+msgid "Self-adhesive film weatherproof"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:54
+msgid "Self-adhesive labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:56
+msgid "Self-adhesive window film"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:10
+msgid "Correction and Cover-up Labels"
+msgstr "수집 과 Cover-up 라벨"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:12
+#, fuzzy
+msgid "File Back Labels"
+msgstr "출원 라벨"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:14
+msgid "Lever Arch File Labels"
+msgstr "Lever Arch 파일 라벨"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:18
+msgid "Multi-purpose Stick+Lift Labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:20
+msgid "QSL-Karten Etiketten 70mm x 50,8mm"
+msgstr "QSL-Karten Etiketten (70mm x 50.8mm)"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:22
+msgid "Rectangular Copier Labels"
+msgstr "분류표기 라벨"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:26
+msgid "Video Labels (back)"
+msgstr "비디오 라벨 (뒤)"
+
+#~ msgid "Show view debugging messages."
+#~ msgstr "보기의 디버깅 메시지를 보이기"
 
-#: data/glade/template-designer.glade.h:31
-msgid "Distance from left edge (x0):"
-msgstr "왼쪽 가장자리 부터  (x0):"
+#~ msgid "Show item debugging messages."
+#~ msgstr "아이템 디버깅 메시지를 보이기"
 
-#: data/glade/template-designer.glade.h:32
-msgid "Distance from top edge (y0):"
-msgstr "위쪽 가장자리 부터 (y0):"
+#~ msgid "Show printing debugging messages."
+#~ msgstr "인쇄 디버깅 메시지를 보이기"
 
-#: data/glade/template-designer.glade.h:34
-msgid "Horizontal pitch (dx):"
-msgstr "수평 pitch (dx):"
+#~ msgid "Show prefs debugging messages."
+#~ msgstr "Prefs 디버깅 메시지를 보이기"
 
-#: data/glade/template-designer.glade.h:35
-msgid ""
-"How many layouts will your template contain? \n"
-"\n"
-"A layout is a set of labels or cards that can be arranged in a simple grid.\n"
-"Most templates only need one layout, as in the first example.\n"
-"The second example illustrates when two layouts are needed."
-msgstr ""
-"서식을 얼마나 포함합니까?\n"
-"\n"
-"레이아웃 서식 개수 지정을 통해 두개 이내의 레이아웃을 만들 수 있습니다.\n"
-"보통은 아래 첫번째 예제처럼 한개의 레이아웃을 필요로 하지만,\n"
-"어떤것은 두번째 예제처럼 두개의 레이아웃을 필요로 하는것도 있습니다."
+#~ msgid "Show file debugging messages."
+#~ msgstr "파일 디버깅 메시지를 보이기"
 
-#: data/glade/template-designer.glade.h:40
-msgid "Label Size (CD/DVD)"
-msgstr "라벨 크기(CD/DVD)"
+#~ msgid "Show document debugging messages."
+#~ msgstr "문서 디버깅 메시지를 보이기"
 
-#: data/glade/template-designer.glade.h:41
-msgid "Label Size (Round)"
-msgstr "라벨 크기 (둥글기)"
+#~ msgid "Show template debugging messages."
+#~ msgstr "Template 디버깅 메시지를 보이기"
 
-#: data/glade/template-designer.glade.h:42
-msgid "Label or Card Shape"
-msgstr "라벨 또는 카드 외형"
+#~ msgid "Show paper debugging messages."
+#~ msgstr "Paper 디버깅 메시지를 보이기"
 
-#: data/glade/template-designer.glade.h:43
-msgid "Label or Card Size (Rectangular)"
-msgstr "라벨 또는 카드 크기(직사각형)"
+#~ msgid "Show xml debugging messages."
+#~ msgstr "XML 디버깅 메시지를 보이기"
 
-#: data/glade/template-designer.glade.h:44
-msgid "Layout #1"
-msgstr "레이아웃 #1:"
+#~ msgid "Show document merge debugging messages."
+#~ msgstr "Document 여백 디버깅 메시지를 보이기"
 
-#: data/glade/template-designer.glade.h:45
-msgid "Layout #2"
-msgstr "레이아웃 #2:"
+#~ msgid "Show commands debugging messages."
+#~ msgstr "Command 디버깅 메시지를 보이기"
 
-#: data/glade/template-designer.glade.h:46
-msgid "Layout(s)"
-msgstr "레이아웃"
+#~ msgid "Show undo debugging messages."
+#~ msgstr "Undo 디버깅 메시지를 보이기"
 
-#: data/glade/template-designer.glade.h:47
-msgid "Name and Description"
-msgstr "이름과 설명"
+#~ msgid "Show recent debugging messages."
+#~ msgstr "최근의 디버깅 메시지를 보이기"
 
-#: data/glade/template-designer.glade.h:48
-msgid "Number across (nx):"
-msgstr "가로 개수 (nx):"
+#~ msgid "Show window debugging messages."
+#~ msgstr "윈도우 디버깅 메시지를 보이기"
 
-#: data/glade/template-designer.glade.h:49
-msgid "Number down (ny):"
-msgstr "세로 개수 (ny):"
+#~ msgid "Show ui debugging messages."
+#~ msgstr "GUI 디버깅 메시지를 보이기"
 
-#: data/glade/template-designer.glade.h:50
-msgid "Number of Layouts"
-msgstr "레이아웃 선택"
+#~ msgid "Show property_bar debugging messages."
+#~ msgstr "속성도구 디버깅 메시지를 보이기"
 
-#: data/glade/template-designer.glade.h:51
-msgid "Number of layouts:"
-msgstr "레이아웃 선택:"
+#~ msgid "Show media select widget debugging messages."
+#~ msgstr "선택 제품 미디어 디버깅 메시지를 보이기"
 
-#: data/glade/template-designer.glade.h:52
-msgid "Page Size"
-msgstr "용지 크기"
+#~ msgid "Show mini preview widget debugging messages."
+#~ msgstr "제품 작게 미리보기 디버깅 메시지를 보이기"
 
-#: data/glade/template-designer.glade.h:54
-msgid "Part #:"
-msgstr "라벨분류:"
+#~ msgid "Show pixbuf cache debugging messages."
+#~ msgstr "pixbuf cache 디버깅 메시지를 보이기"
 
-#: data/glade/template-designer.glade.h:55
-msgid "Please enter the following identifying information about the template stationery."
-msgstr "입력 상자에 기본 서식 정보를 입력하세요."
+#~ msgid "Show widget debugging messages."
+#~ msgstr "제품 디버깅 메시지를 보이기"
 
-#: data/glade/template-designer.glade.h:56
-msgid "Please enter the following layout information."
-msgstr "레이아웃 정보를 입력하세요."
+#~ msgid "Show object editor debugging messages."
+#~ msgstr "개채 편집기 디버깅 메시지를 보이기"
 
-#: data/glade/template-designer.glade.h:57
-msgid "Please enter the following size parameters of a single label in your template."
-msgstr "라벨서식의 치수를 입력하세요."
+#~ msgid "Turn on all debugging messages."
+#~ msgstr "모든 디버깅 메시지 켜기"
 
-#: data/glade/template-designer.glade.h:58
-msgid "Please enter the following size parameters of a single label or card in your template."
-msgstr "라벨서식 또는 카드서식의 치수를 입력하세요."
+#~ msgid "Could not initialize Bonobo!\n"
+#~ msgstr "Bonobo 초기화 할 수 없음!\n"
 
-#: data/glade/template-designer.glade.h:59
-msgid "Please select the basic shape of the labels or cards."
-msgstr "라벨 또는 카드의 기본 형태를 선택하세요."
+#~ msgid "print this message"
+#~ msgstr "이 메시지를 인쇄"
 
-#: data/glade/template-designer.glade.h:60
-msgid "Please select the page size of the template stationery."
-msgstr "서식 용지의 크기 선택"
+#~ msgid "print the version of glabels-batch being used"
+#~ msgstr "gLabel-batch 버전 인쇄"
 
-#: data/glade/template-designer.glade.h:61
-msgid "Print test sheet"
-msgstr "용지 테스트 인쇄"
+#~ msgid "[OPTION...] GLABELS_FILE..."
+#~ msgstr "[옵션...] gLabels 파일..."
 
-#: data/glade/template-designer.glade.h:62
-msgid "Rectangular or square (can have rounded corners)"
-msgstr "직사각형 또는 정사각형(마무리를 둥글게 만들 수 있음)"
+#~ msgid "missing glabels file\n"
+#~ msgstr "gLabel 파일이 보이지 않음\n"
 
-#: data/glade/template-designer.glade.h:63
-msgid "Round"
-msgstr "둥근형"
+#~ msgid " "
+#~ msgstr " "
 
-#: data/glade/template-designer.glade.h:64
-msgid ""
-"Templates needing\n"
-"two layouts."
-msgstr ""
-"2. 두개의 레이아웃\n"
-"서식 필요"
+#~ msgid "Media Type"
+#~ msgstr "매체 형식"
 
-#: data/glade/template-designer.glade.h:66
-msgid ""
-"Templates needing only\n"
-"one layout."
-msgstr ""
-"1. 한개의 레이아웃\n"
-"서식 필요"
+#~ msgid "Open"
+#~ msgstr "열기"
 
-#: data/glade/template-designer.glade.h:68
-msgid "Vertical pitch (dy):"
-msgstr "수직 pitch (dy):"
+#~ msgid "Align _Horizontally"
+#~ msgstr "가로로 정렬(_H)"
 
-#: data/glade/template-designer.glade.h:69
-msgid ""
-"Welcome to the gLabels Template Designer.\n"
-"\n"
-"This dialog will assist you in the creation of a custom gLabels template."
-msgstr ""
-"gLabels 서식 제작기에 어서오세요.\n"
-"\n"
-"차근차근 gLabels의 사용자 서식을 쉽게 만들 수 있게 도와드립니다. "
+#~ msgid "Align _Vertically"
+#~ msgstr "세로로 정렬(_V)"
 
-#: data/templates/paper-sizes.xml.h:1
-msgid "A0"
-msgstr "A0용지"
+#~ msgid "_Delete"
+#~ msgstr "삭제(_D)"
 
-#: data/templates/paper-sizes.xml.h:2
-msgid "A1"
-msgstr "A1용지"
+#~ msgid "Print"
+#~ msgstr "인쇄"
 
-#: data/templates/paper-sizes.xml.h:3
-msgid "A10"
-msgstr "A10용지"
+#~ msgid "_Job"
+#~ msgstr "작업(_J)"
 
-#: data/templates/paper-sizes.xml.h:4
-msgid "A2"
-msgstr "A2용지"
+#~ msgid "P_rinter"
+#~ msgstr "프린터(_R)"
 
-#: data/templates/paper-sizes.xml.h:5
-msgid "A3"
-msgstr "A3용지"
+#~ msgid "Print preview"
+#~ msgstr "인쇄 미리보기"
 
-#: data/templates/paper-sizes.xml.h:6
-msgid "A4"
-msgstr "A4용지"
+#~ msgid "Importing from glabels 1.91 format"
+#~ msgstr "gLabels 1.91로 부터 가져오기"
 
-#: data/templates/paper-sizes.xml.h:7
-msgid "A5"
-msgstr "A5용지"
+#~ msgid "Text file with comma delimeters (CSV)"
+#~ msgstr "콤마로 구분된 텍스트파일(CSV)"
 
-#: data/templates/paper-sizes.xml.h:8
-msgid "A6"
-msgstr "A6용지"
+#~ msgid "Text file with colon delimeters"
+#~ msgstr "콜론으로 구분된 텍스트 파일"
 
-#: data/templates/paper-sizes.xml.h:9
-msgid "A7"
-msgstr "A7용지"
+#~ msgid "Text file with tab delimeters"
+#~ msgstr "텝으로 구분된 텍스트 파일"
 
-#: data/templates/paper-sizes.xml.h:10
-msgid "A8"
-msgstr "A8용지"
+#~ msgid "%s x %s %s"
+#~ msgstr "%s x %s %s"
 
-#: data/templates/paper-sizes.xml.h:11
-msgid "A9"
-msgstr "A9용지"
+#~ msgid "%.5g x %.5g %s"
+#~ msgstr "%.5g x %.5g %s"
 
-#: data/templates/paper-sizes.xml.h:12
-msgid "B0"
-msgstr "B0용지"
+#~ msgid "%.5g %s diameter"
+#~ msgstr "지름 %.5g %s"
 
-#: data/templates/paper-sizes.xml.h:13
-msgid "B1"
-msgstr "B1용지"
+#~ msgid "Choose Custom Color"
+#~ msgstr "임의의 색상 선택"
 
-#: data/templates/paper-sizes.xml.h:14
-msgid "B10"
-msgstr "B10용지"
+#~ msgid "light brown"
+#~ msgstr "밝은 갈색"
 
-#: data/templates/paper-sizes.xml.h:15
-msgid "B2"
-msgstr "B2용지"
+#~ msgid "brown gold"
+#~ msgstr "고동색"
 
-#: data/templates/paper-sizes.xml.h:16
-msgid "B3"
-msgstr "B3용지"
+#~ msgid "dark green #2"
+#~ msgstr "어두운 녹색 #2"
 
-#: data/templates/paper-sizes.xml.h:17
-msgid "B4"
-msgstr "B4용지"
+#~ msgid "navy"
+#~ msgstr "남색"
 
-#: data/templates/paper-sizes.xml.h:18
-msgid "B5"
-msgstr "B5용지"
+#~ msgid "purple #2"
+#~ msgstr "자주색 #2"
 
-#: data/templates/paper-sizes.xml.h:19
-msgid "B6"
-msgstr "B6용지"
+#~ msgid "very dark gray"
+#~ msgstr "매우 어두운 회색"
 
-#: data/templates/paper-sizes.xml.h:20
-msgid "B7"
-msgstr "B7용지"
+#~ msgid "red-orange"
+#~ msgstr "적오렌지색"
 
-#: data/templates/paper-sizes.xml.h:21
-msgid "B8"
-msgstr "B8용지"
+#~ msgid "dull blue"
+#~ msgstr "탁한 파랑색"
 
-#: data/templates/paper-sizes.xml.h:22
-msgid "B9"
-msgstr "B9용지"
+#~ msgid "dull purple"
+#~ msgstr "탁한 자주색"
 
-#: data/templates/paper-sizes.xml.h:23
-msgid "US Executive"
-msgstr "US Executive"
+#~ msgid "dark grey"
+#~ msgstr "어두운 회색"
 
-#: data/templates/paper-sizes.xml.h:24
-msgid "US Legal"
-msgstr "US Legal"
+#~ msgid "red"
+#~ msgstr "빨강색"
 
-#: data/templates/avery-us-templates.xml.h:1
-#: data/templates/zweckform-iso-templates.xml.h:1
-msgid "Address Labels"
-msgstr "주소 라벨"
+#~ msgid "lime"
+#~ msgstr "라임색"
 
-#: data/templates/avery-us-templates.xml.h:2
-#: data/templates/avery-iso-templates.xml.h:2
-#: data/templates/zweckform-iso-templates.xml.h:3
-#: data/templates/misc-us-templates.xml.h:2
-#: data/templates/misc-iso-templates.xml.h:9
-msgid "Business Cards"
-msgstr "명함"
+#~ msgid "dull blue #2"
+#~ msgstr "탁한 파랑색#2"
 
-#: data/templates/avery-us-templates.xml.h:3
-msgid "CD/DVD Labels (Disc Labels)"
-msgstr "CD/DVD 라벨 (Disc 라벨)"
+#~ msgid "sky blue #2"
+#~ msgstr "하늘색 #2"
 
-#: data/templates/avery-us-templates.xml.h:4
-msgid "Diskette Labels"
-msgstr "디스크 라벨"
+#~ msgid "gray"
+#~ msgstr "회색"
 
-#: data/templates/avery-us-templates.xml.h:5
-msgid "Filing Labels"
-msgstr "출원 라벨"
+#~ msgid "magenta"
+#~ msgstr "마젠타색"
 
-#: data/templates/avery-us-templates.xml.h:6
-msgid "Full Sheet Labels"
-msgstr "Full Sheet 라벨"
+#~ msgid "bright orange"
+#~ msgstr "밝은 오렌지색"
 
-#: data/templates/avery-us-templates.xml.h:7
-msgid "Large Round Labels"
-msgstr "큰 원형 라벨"
+#~ msgid "bright blue"
+#~ msgstr "밝은 파랑색"
 
-#: data/templates/avery-us-templates.xml.h:8
-msgid "Name Badge Labels"
-msgstr "Name Badge 라벨"
+#~ msgid "red purple"
+#~ msgstr "빨간 자주색"
 
-#: data/templates/avery-us-templates.xml.h:9
-msgid "Return Address Labels"
-msgstr "반송 주소용 라벨"
+#~ msgid "light grey"
+#~ msgstr "가벼운 회색"
 
-#: data/templates/avery-us-templates.xml.h:10
-msgid "Shipping Labels"
-msgstr "출하 라벨"
+#~ msgid "light orange"
+#~ msgstr "가벼운 오렌지색"
 
-#: data/templates/avery-us-templates.xml.h:11
-msgid "Small Round Labels"
-msgstr "작은 원형 라벨"
+#~ msgid "light blue"
+#~ msgstr "가벼운 바랑색"
 
-#: data/templates/avery-us-templates.xml.h:12
-msgid "Square Labels"
-msgstr "구형 라벨"
+#~ msgid "light purple"
+#~ msgstr "가벼운 자주색"
 
-#: data/templates/avery-us-templates.xml.h:13
-msgid "Video Tape Face Labels"
-msgstr "비디오 테입 앞면 라벨"
+#~ msgid "purplish blue"
+#~ msgstr "자주빛 파랑색"
 
-#: data/templates/avery-us-templates.xml.h:14
-msgid "Video Tape Spine Labels"
-msgstr "비디오 테입 옆면 라벨"
+#~ msgid "dark purple"
+#~ msgstr "어두운 자주색"
 
-#: data/templates/avery-iso-templates.xml.h:1
-msgid "Address labels"
-msgstr "주소 라벨"
+#~ msgid "No paper files found!"
+#~ msgstr "용지 파일을 찾을 수 없음!"
 
-#: data/templates/avery-iso-templates.xml.h:3
-msgid "CD Booklet"
-msgstr "CD Booklet"
+#~ msgid "Close"
+#~ msgstr "닫기"
 
-#: data/templates/avery-iso-templates.xml.h:4
-msgid "CD Inlet"
-msgstr "CD Inlet"
+#~ msgid "Cu_t"
+#~ msgstr "자르기(_T)"
 
-#: data/templates/avery-iso-templates.xml.h:5
-#: data/templates/zweckform-iso-templates.xml.h:4
-#: data/templates/misc-us-templates.xml.h:4
-#: data/templates/misc-iso-templates.xml.h:10
-msgid "CD/DVD Labels"
-msgstr "CD/DVD 라벨"
+#~ msgid "Customize"
+#~ msgstr "커스터마이즈"
 
-#: data/templates/avery-iso-templates.xml.h:6
-msgid "Diskette labels"
-msgstr "디스크 라벨"
+#~ msgid "Customize toolbars"
+#~ msgstr "도구 커스터마이즈"
 
-#: data/templates/avery-iso-templates.xml.h:7
-#: data/templates/zweckform-iso-templates.xml.h:7
-#: data/templates/misc-iso-templates.xml.h:17
-msgid "Mailing Labels"
-msgstr "봉투 라벨"
+#~ msgid "Dump XML"
+#~ msgstr "XML 덤프"
 
-#: data/templates/avery-iso-templates.xml.h:8
-msgid "Mailing labels"
-msgstr "봉투 라벨"
+#~ msgid "Dump the GUI Xml description"
+#~ msgstr "GUI의 XML설명 덤프"
 
-#: data/templates/avery-iso-templates.xml.h:9
-msgid "Mini Address Labels"
-msgstr "작은 주소라벨"
+#~ msgid "Font selector"
+#~ msgstr "글꼴 선택기"
 
-#: data/templates/avery-iso-templates.xml.h:10
-msgid "Shipping labels"
-msgstr "출하 라벨"
+#~ msgid "Icon and _Text"
+#~ msgstr "아이콘과 글자(_T)"
 
-#: data/templates/zweckform-iso-templates.xml.h:2
-msgid "Allround Labels"
-msgstr "Allround 라벨"
+#~ msgid "M_arkup"
+#~ msgstr "마크업(_A)"
 
-#: data/templates/zweckform-iso-templates.xml.h:5
-msgid "Correction and Cover-up Labels"
-msgstr "수집 과 Cover-up 라벨"
+#~ msgid "New"
+#~ msgstr "새로 만들기"
 
-#: data/templates/zweckform-iso-templates.xml.h:6
-msgid "Lever Arch File Labels"
-msgstr "Lever Arch 파일 라벨"
+#~ msgid "Object property editor"
+#~ msgstr "항목 속성 편집기"
 
-#: data/templates/zweckform-iso-templates.xml.h:8
-msgid "QSL-Karten Etiketten 70mm x 50,8mm"
-msgstr "QSL-Karten Etiketten (70mm x 50.8mm)"
+#~ msgid "Only show icons in the drawing toolbar"
+#~ msgstr "그리기 도구에서 아이콘만 보이기"
 
-#: data/templates/zweckform-iso-templates.xml.h:9
-msgid "Rectangular Copier Labels"
-msgstr "분류표기 라벨"
+#~ msgid "Only show icons in the main toolbar"
+#~ msgstr "주 도구에서 아이콘만 보이기"
 
-#: data/templates/zweckform-iso-templates.xml.h:10
-#: data/templates/misc-iso-templates.xml.h:22
-msgid "Rectangular Labels"
-msgstr "직사각형 라벨"
+#~ msgid "Pr_eferences..."
+#~ msgstr "속성(_E)..."
 
-#: data/templates/zweckform-iso-templates.xml.h:11
-msgid "Video Labels (back)"
-msgstr "비디오 라벨 (뒤)"
+#~ msgid "Properties"
+#~ msgstr "속성"
 
-#: data/templates/misc-us-templates.xml.h:1
-msgid "Business Card CD"
-msgstr "명함 CD"
+#~ msgid "Quit"
+#~ msgstr "종료"
 
-#: data/templates/misc-us-templates.xml.h:3
-msgid "CD Template Rectangles"
-msgstr "CD 서식 (직사각형)"
+#~ msgid "Redo the undone action"
+#~ msgstr "재실행 할것 없음"
 
-#: data/templates/misc-us-templates.xml.h:5
-msgid "CD/DVD Labels (Face Only)"
-msgstr "CD/DVD 라벨 (표지만)"
+#~ msgid "Save"
+#~ msgstr "저장"
 
-#: data/templates/misc-us-templates.xml.h:6
-#: data/templates/misc-iso-templates.xml.h:11
-msgid "CD/DVD Labels (face only)"
-msgstr "CD/DVD 라벨 (표지만)"
+#~ msgid "Save As"
+#~ msgstr "다른 이름으로 저장"
 
-#: data/templates/misc-us-templates.xml.h:7
-msgid "DLT Labels"
-msgstr "DLT 라벨"
+#~ msgid "Select _All"
+#~ msgstr "모두 선택(_A)"
 
-#: data/templates/misc-us-templates.xml.h:8
-msgid "Microtube labels"
-msgstr "Microtube 라벨"
+#~ msgid "Set drawing toolbar button style according to desktop default"
+#~ msgstr "기본 데스크탑 모양에 따라 그리기 도구 버튼 모양을 지정"
 
-#: data/templates/misc-us-templates.xml.h:9
-msgid "Mini-CD Labels"
-msgstr "Mini-CD 라벨"
+#~ msgid "Set main toolbar button style according to desktop default"
+#~ msgstr "기본 데스크탑 모양에 따라 주 도구 버튼 모양을 지정"
 
-#: data/templates/misc-us-templates.xml.h:10
-msgid "PRO CD Labels 2-up (CD spine only)"
-msgstr "PRO CD 라벨 2-up (CD 세로표지 전용)"
+#~ msgid "Show _Tooltips"
+#~ msgstr "팁 보기(_T)"
 
-#: data/templates/misc-us-templates.xml.h:11
-msgid "PRO CD Labels 2-up (Face only)"
-msgstr "PRO CD 라벨 2-up (표지만)"
+#~ msgid "Show both icons and texts in the drawing toolbar"
+#~ msgstr "그리기 도구에 아이콘과 글자 보이기"
 
-#: data/templates/misc-us-templates.xml.h:12
-#: data/templates/misc-iso-templates.xml.h:21
-msgid "PRO CD Labels 2-up (face only)"
-msgstr "PRO CD 라벨 2-up (표지만)"
+#~ msgid "Show both icons and texts in the main toolbar"
+#~ msgstr "주 도구에 아이콘 과 글자 보이기"
 
-#: data/templates/misc-us-templates.xml.h:13
-msgid "Slimline CD Case (rightside up)"
-msgstr "Slimline CD 케이스 (우측옆)"
+#~ msgid "Show tooltips in the drawing toolbar"
+#~ msgstr "그리기 도구에 팁 보이기"
 
-#: data/templates/misc-us-templates.xml.h:14
-msgid "Slimline CD Case (upside down)"
-msgstr "Slimline CD 케이스(상위)"
+#~ msgid "Show tooltips in the main toolbar"
+#~ msgstr "주 도구에 팁 보이기"
 
-#: data/templates/misc-iso-templates.xml.h:1
-msgid "Agipa 119488: Business Cards"
-msgstr "Agipa 119488: 명함"
+#~ msgid "Show tooltips in the property toolbar"
+#~ msgstr "속성 도구에 팁 보이기"
 
-#: data/templates/misc-iso-templates.xml.h:2
-msgid "Allround Labels --24"
-msgstr "Allround 라벨 --24"
+#~ msgid "Template Designer"
+#~ msgstr "서식 디자이너"
 
-#: data/templates/misc-iso-templates.xml.h:3
-msgid "Allround Labels --44"
-msgstr "Allround 라벨 --44"
+#~ msgid "U_n-select All"
+#~ msgstr "모든 선택 해제(_N)"
 
-#: data/templates/misc-iso-templates.xml.h:4
-msgid "Allround Labels --64"
-msgstr "Allround 라벨 --64"
+#~ msgid "Undo the last action"
+#~ msgstr "마지막 동작으로 되돌리기"
 
-#: data/templates/misc-iso-templates.xml.h:5
-msgid "Allround Labels --65"
-msgstr "Allround 라벨 --65"
+#~ msgid "_About..."
+#~ msgstr "...에 대해(_A)"
 
-#: data/templates/misc-iso-templates.xml.h:6
-msgid "Arch File Labels"
-msgstr "Arch 파일 라벨"
+#~ msgid "_Bottoms"
+#~ msgstr "아래(_B)"
 
-#: data/templates/misc-iso-templates.xml.h:7
-msgid "Arch File Labels (large)"
-msgstr "Arch 파일 라벨 (큰것)"
+#~ msgid "_Contents"
+#~ msgstr "목차(_C)"
 
-#: data/templates/misc-iso-templates.xml.h:8
-msgid "Arch File Labels (small)"
-msgstr "Arch 파일 라벨 (작은것)"
+#~ msgid "_Copy"
+#~ msgstr "복사(_C)"
 
-#: data/templates/misc-iso-templates.xml.h:12
-msgid "CD/DVD Labels Standard Format (face only)"
-msgstr "기본 CD/DVD 라벨 (표지만)"
+#~ msgid "_Create Object"
+#~ msgstr "항목 만들기(_C)"
 
-#: data/templates/misc-iso-templates.xml.h:13
-msgid "Diskette Labels (face only)"
-msgstr "디스켓 라벨 (표지만)"
+#~ msgid "_Debug"
+#~ msgstr "디버그(_D)"
 
-#: data/templates/misc-iso-templates.xml.h:14
-msgid "EPSON Photo Stickers 16"
-msgstr "EPSON 포토 스티커 16"
+#~ msgid "_Desktop Default"
+#~ msgstr "기본 데스크탑(_D)"
 
-#: data/templates/misc-iso-templates.xml.h:15
-msgid "Etiketten"
-msgstr "Etiketten"
+#~ msgid "_Drawing Toolbar"
+#~ msgstr "그리기 도구(_D)"
 
-#: data/templates/misc-iso-templates.xml.h:16
-msgid "Fridge Magnet Stickers"
-msgstr "Fridge Magnet 스티커"
+#~ msgid "_Icon"
+#~ msgstr "아이콘(_I)"
 
-#: data/templates/misc-iso-templates.xml.h:18
-msgid "Mailing Labels --14"
-msgstr "봉투 라벨 --14"
+#~ msgid "_Main Toolbar"
+#~ msgstr "주 도구(_M)"
 
-#: data/templates/misc-iso-templates.xml.h:19
-msgid "Mailing Labels-2 columns"
-msgstr "주소 라벨 (2형)"
+#~ msgid "_Merge Properties..."
+#~ msgstr "여백 속성(_M)..."
 
-#: data/templates/misc-iso-templates.xml.h:20
-msgid "Mailing Labels-3 columns"
-msgstr "주소라벨 (3형)"
+#~ msgid "_Paste"
+#~ msgstr "붙이기(_P)"
 
-#: data/templates/misc-iso-templates.xml.h:23
-msgid "Video Labels (face only)"
-msgstr "비디오 라벨 (표지만)"
+#~ msgid "_Property Toolbar"
+#~ msgstr "속성 도구(_P)"
 
-#: data/desktop/glabels.desktop.in.h:1
-msgid "Create labels, business cards and media covers"
-msgstr "라벨, 명함 그리고 미디어 커버 만들기"
+#~ msgid "*"
+#~ msgstr "*"
 
-#: data/desktop/glabels.desktop.in.h:2
-msgid "gLabels Label Designer"
-msgstr "gLabels 라벨 디자이너"
+#~ msgid "<span weight=\"bold\">Default page size</span>"
+#~ msgstr "<span weight=\"bold\">기본 용지 크기</span>"
 
-#: data/mime/glabels.keys.in.h:1
-#: data/mime/glabels.xml.in.h:1
-msgid "gLabels Project File"
-msgstr "gLabels 프로젝트 파일"
+#~ msgid "<span weight=\"bold\">Fill</span>"
+#~ msgstr "<span weight=\"bold\">채우기</span>"
+
+#~ msgid "<span weight=\"bold\">Line</span>"
+#~ msgstr "<span weight=\"bold\">선</span>"
+
+#~ msgid "<span weight=\"bold\">Text</span>"
+#~ msgstr "<span weight=\"bold\">글자</span>"
+
+#~ msgid "<span weight=\"bold\">Units</span>"
+#~ msgstr "<span weight=\"bold\">유닛</span>"
+
+#~ msgid "00000000000 00000"
+#~ msgstr "00000000000 00000"
+
+#~ msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
+#~ msgstr "<span weight=\"bold\" size=\"larger\">Xxx 개체 속성</span>"
+
+#~ msgid "Load image"
+#~ msgstr "그림 불러옴"
+
+#~ msgid "  "
+#~ msgstr "  "
+
+#~ msgid "Label or Card Size (Rectangular)"
+#~ msgstr "라벨 또는 카드 크기(직사각형)"
+
+#~ msgid "Agipa 119488: Business Cards"
+#~ msgstr "Agipa 119488: 명함"
+
+#~ msgid "Allround Labels --24"
+#~ msgstr "Allround 라벨 --24"
+
+#~ msgid "Allround Labels --44"
+#~ msgstr "Allround 라벨 --44"
+
+#~ msgid "Allround Labels --64"
+#~ msgstr "Allround 라벨 --64"
+
+#~ msgid "Allround Labels --65"
+#~ msgstr "Allround 라벨 --65"
 
+#~ msgid "Mailing Labels --14"
+#~ msgstr "봉투 라벨 --14"
index f0a4747b26e584dfc7b47548f876fa5356cb8925..58aaf0992f091f625159471f2f193eec06560beb 100644 (file)
--- a/po/nb.po
+++ b/po/nb.po
@@ -6,139 +6,365 @@ msgid ""
 msgstr ""
 "Project-Id-Version: contacts\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-15 13:58+0100\n"
+"POT-Creation-Date: 2010-07-10 00:37-0400\n"
 "PO-Revision-Date: 2010-03-15 14:10+0100\n"
 "Last-Translator: Espen Stefansen <espens@svn.gnome.org>\n"
 "Language-Team: Norwegian Bokmal <i18n-nb@lister.ping.uio.no>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../src/bc.c:65
+#: ../src/bc.c:66
 msgid "POSTNET (any)"
 msgstr ""
 
-#: ../src/bc.c:68
+#: ../src/bc.c:69
 msgid "POSTNET-5 (ZIP only)"
 msgstr ""
 
-#: ../src/bc.c:71
+#: ../src/bc.c:72
 msgid "POSTNET-9 (ZIP+4)"
 msgstr ""
 
-#: ../src/bc.c:74
+#: ../src/bc.c:75
 msgid "POSTNET-11 (DPBC)"
 msgstr ""
 
-#: ../src/bc.c:79
+#: ../src/bc.c:80
 msgid "CEPNET"
 msgstr ""
 
-#: ../src/bc.c:82
+#: ../src/bc.c:83
 msgid "EAN (any)"
 msgstr ""
 
-#: ../src/bc.c:85
+#: ../src/bc.c:86
 msgid "EAN-8"
 msgstr ""
 
-#: ../src/bc.c:88
+#: ../src/bc.c:89
 msgid "EAN-8 +2"
 msgstr ""
 
-#: ../src/bc.c:91
+#: ../src/bc.c:92
 msgid "EAN-8 +5"
 msgstr ""
 
-#: ../src/bc.c:94
+#: ../src/bc.c:95
 msgid "EAN-13"
 msgstr ""
 
-#: ../src/bc.c:97
+#: ../src/bc.c:98
 msgid "EAN-13 +2"
 msgstr ""
 
-#: ../src/bc.c:100
+#: ../src/bc.c:101
 msgid "EAN-13 +5"
 msgstr ""
 
-#: ../src/bc.c:103
+#: ../src/bc.c:104
 msgid "UPC (UPC-A or UPC-E)"
 msgstr ""
 
-#: ../src/bc.c:106
+#: ../src/bc.c:107 ../src/bc.c:348
 msgid "UPC-A"
 msgstr ""
 
-#: ../src/bc.c:109
+#: ../src/bc.c:110
 msgid "UPC-A +2"
 msgstr ""
 
-#: ../src/bc.c:112
+#: ../src/bc.c:113
 msgid "UPC-A +5"
 msgstr ""
 
-#: ../src/bc.c:115
+#: ../src/bc.c:116 ../src/bc.c:351
 msgid "UPC-E"
 msgstr ""
 
-#: ../src/bc.c:118
+#: ../src/bc.c:119
 msgid "UPC-E +2"
 msgstr ""
 
-#: ../src/bc.c:121
+#: ../src/bc.c:122
 msgid "UPC-E +5"
 msgstr ""
 
-#: ../src/bc.c:124
+#: ../src/bc.c:125 ../src/bc.c:288
 msgid "ISBN"
 msgstr ""
 
-#: ../src/bc.c:127
+#: ../src/bc.c:128
 msgid "ISBN +5"
 msgstr ""
 
-#: ../src/bc.c:130
+#: ../src/bc.c:131 ../src/bc.c:204
 msgid "Code 39"
 msgstr ""
 
-#: ../src/bc.c:133
+#: ../src/bc.c:134 ../src/bc.c:216
 msgid "Code 128"
 msgstr ""
 
-#: ../src/bc.c:136
+#: ../src/bc.c:137
 msgid "Code 128C"
 msgstr ""
 
-#: ../src/bc.c:139
+#: ../src/bc.c:140
 msgid "Code 128B"
 msgstr ""
 
-#: ../src/bc.c:142
+#: ../src/bc.c:143 ../src/bc.c:285
 msgid "Interleaved 2 of 5"
 msgstr ""
 
-#: ../src/bc.c:145
+#: ../src/bc.c:146 ../src/bc.c:180
 msgid "Codabar"
 msgstr ""
 
-#: ../src/bc.c:148
+#: ../src/bc.c:149
 msgid "MSI"
 msgstr ""
 
-#: ../src/bc.c:151
+#: ../src/bc.c:152
 msgid "Plessey"
 msgstr ""
 
-#: ../src/bc.c:154
+#: ../src/bc.c:155 ../src/bc.c:213
 msgid "Code 93"
 msgstr ""
 
-#: ../src/bc.c:161
-msgid "IEC16022 (DataMatrix)"
+#: ../src/bc.c:162
+msgid "Australia Post Standard"
+msgstr ""
+
+#: ../src/bc.c:165
+msgid "Australia Post Reply Paid"
 msgstr ""
 
 #: ../src/bc.c:168
+msgid "Australia Post Route Code"
+msgstr ""
+
+#: ../src/bc.c:171
+msgid "Australia Post Redirect"
+msgstr ""
+
+#: ../src/bc.c:174
+msgid "Aztec Code"
+msgstr ""
+
+#: ../src/bc.c:177
+msgid "Aztec Rune"
+msgstr ""
+
+#: ../src/bc.c:183
+msgid "Code One"
+msgstr ""
+
+#: ../src/bc.c:186
+msgid "Code 11"
+msgstr ""
+
+#: ../src/bc.c:189
+msgid "Code 16K"
+msgstr ""
+
+#: ../src/bc.c:192
+msgid "Code 2 of 5 Matrix"
+msgstr ""
+
+#: ../src/bc.c:195
+msgid "Code 2 of 5 IATA"
+msgstr ""
+
+#: ../src/bc.c:198
+msgid "Code 2 of 5 Data Logic"
+msgstr ""
+
+#: ../src/bc.c:201
+msgid "Code 32 (Italian Pharmacode)"
+msgstr ""
+
+#: ../src/bc.c:207
+msgid "Code 39 Extended"
+msgstr ""
+
+#: ../src/bc.c:210
+msgid "Code 49"
+msgstr ""
+
+#: ../src/bc.c:219
+msgid "Code 128 (Mode C supression)"
+msgstr ""
+
+#: ../src/bc.c:222
+msgid "DAFT Code"
+msgstr ""
+
+#: ../src/bc.c:225
+msgid "Data Matrix"
+msgstr ""
+
+#: ../src/bc.c:228
+msgid "Deutsche Post Leitcode"
+msgstr ""
+
+#: ../src/bc.c:231
+msgid "Deutsche Post Identcode"
+msgstr ""
+
+#: ../src/bc.c:234
+msgid "Dutch Post KIX Code"
+msgstr ""
+
+#: ../src/bc.c:237
+msgid "European Article Number (EAN)"
+msgstr ""
+
+#: ../src/bc.c:240
+msgid "Grid Matrix"
+msgstr ""
+
+#: ../src/bc.c:243
+msgid "GS1-128"
+msgstr ""
+
+#: ../src/bc.c:246
+msgid "GS1 DataBar-14"
+msgstr ""
+
+#: ../src/bc.c:255
+msgid "GS1 DataBar-14 Stacked"
+msgstr ""
+
+#: ../src/bc.c:258
+msgid "GS1 DataBar-14 Stacked Omni."
+msgstr ""
+
+#: ../src/bc.c:261
+msgid "GS1 DataBar Extended Stacked"
+msgstr ""
+
+#: ../src/bc.c:264
+msgid "HIBC Code 128"
+msgstr ""
+
+#: ../src/bc.c:267
+msgid "HIBC Code 39"
+msgstr ""
+
+#: ../src/bc.c:270
+msgid "HIBC Data Matrix"
+msgstr ""
+
+#: ../src/bc.c:273
+msgid "HIBC QR Code"
+msgstr ""
+
+#: ../src/bc.c:276
+msgid "HIBC PDF417"
+msgstr ""
+
+#: ../src/bc.c:279
+msgid "HIBC Micro PDF417"
+msgstr ""
+
+#: ../src/bc.c:282
+msgid "HIBC Aztec Code"
+msgstr ""
+
+#: ../src/bc.c:291
+msgid "ITF-14"
+msgstr ""
+
+#: ../src/bc.c:294
+msgid "Japanese Postal"
+msgstr ""
+
+#: ../src/bc.c:297
+msgid "Korean Postal"
+msgstr ""
+
+#: ../src/bc.c:300
+msgid "LOGMARS"
+msgstr ""
+
+#: ../src/bc.c:303
+msgid "Micro PDF417"
+msgstr ""
+
+#: ../src/bc.c:306
+msgid "Micro QR Code"
+msgstr ""
+
+#: ../src/bc.c:309
+msgid "MSI Plessey"
+msgstr ""
+
+#: ../src/bc.c:312
+msgid "NVE-18"
+msgstr ""
+
+#: ../src/bc.c:315
+msgid "PDF417"
+msgstr ""
+
+#: ../src/bc.c:318
+msgid "PDF417 Truncated"
+msgstr ""
+
+#: ../src/bc.c:321
+msgid "PLANET"
+msgstr ""
+
+#: ../src/bc.c:324
+msgid "PostNet"
+msgstr ""
+
+#: ../src/bc.c:327
+#, fuzzy
+msgid "Pharmacode"
+msgstr "Strekkode"
+
+#: ../src/bc.c:330
+msgid "Pharmacode 2-track"
+msgstr ""
+
+#: ../src/bc.c:333
+msgid "Pharmazentral Nummer (PZN)"
+msgstr ""
+
+#: ../src/bc.c:336
+msgid "QR Code"
+msgstr ""
+
+#: ../src/bc.c:339
+msgid "Royal Mail 4-State"
+msgstr ""
+
+#: ../src/bc.c:342
+#, fuzzy
+msgid "Telepen"
+msgstr "Slett"
+
+#: ../src/bc.c:345
+msgid "Telepen Numeric"
+msgstr ""
+
+#: ../src/bc.c:354
+msgid "USPS One Code"
+msgstr ""
+
+#: ../src/bc.c:357
+msgid "UK Plessey"
+msgstr ""
+
+#: ../src/bc.c:364
+msgid "IEC16022 (DataMatrix)"
+msgstr ""
+
+#: ../src/bc.c:371
 msgid "IEC18004 (QRCode)"
 msgstr ""
 
@@ -262,40 +488,40 @@ msgstr ""
 msgid "White"
 msgstr "Hvit"
 
-#: ../src/color-combo-menu.c:116
-#, c-format
-msgid "10\\% Gray"
+#: ../src/color-combo-menu.c:117
+#, no-c-format
+msgid "10% Gray"
 msgstr ""
 
-#: ../src/color-combo-menu.c:117
-#, c-format
-msgid "25\\% Gray"
+#: ../src/color-combo-menu.c:119
+#, no-c-format
+msgid "25% Gray"
 msgstr ""
 
-#: ../src/color-combo-menu.c:118
-#, c-format
-msgid "40\\% Gray"
+#: ../src/color-combo-menu.c:121
+#, no-c-format
+msgid "40% Gray"
 msgstr ""
 
-#: ../src/color-combo-menu.c:119
-#, c-format
-msgid "50\\% Gray"
+#: ../src/color-combo-menu.c:123
+#, no-c-format
+msgid "50% Gray"
 msgstr ""
 
-#: ../src/color-combo-menu.c:120
-#, c-format
-msgid "60\\% Gray"
+#: ../src/color-combo-menu.c:125
+#, no-c-format
+msgid "60% Gray"
 msgstr ""
 
-#: ../src/color-combo-menu.c:121
+#: ../src/color-combo-menu.c:126
 msgid "Black"
 msgstr "Sort"
 
-#: ../src/color-combo-menu.c:249 ../src/color-combo-menu.c:368
+#: ../src/color-combo-menu.c:254 ../src/color-combo-menu.c:373
 msgid "Custom Color"
 msgstr "Egendefinert farge"
 
-#: ../src/color-combo-menu.c:314
+#: ../src/color-combo-menu.c:319
 #, c-format
 msgid "Custom Color #%u"
 msgstr ""
@@ -304,80 +530,80 @@ msgstr ""
 msgid "gLabels Fatal Error!"
 msgstr ""
 
-#: ../src/file.c:86
+#: ../src/file.c:84
 msgid "New Label or Card"
 msgstr ""
 
-#: ../src/file.c:190 ../src/label.c:584 ../src/label.c:628
+#: ../src/file.c:175 ../src/label.c:587 ../src/label.c:631
 msgid "Label properties"
 msgstr ""
 
-#: ../src/file.c:296 ../src/file.c:586
+#: ../src/file.c:267 ../src/file.c:557
 msgid "All files"
 msgstr "Alle filer"
 
-#: ../src/file.c:301 ../src/file.c:591
+#: ../src/file.c:272 ../src/file.c:562
 msgid "gLabels documents"
 msgstr ""
 
-#: ../src/file.c:348 ../src/file.c:649
+#: ../src/file.c:319 ../src/file.c:620
 msgid "Empty file name selection"
 msgstr ""
 
-#: ../src/file.c:351 ../src/file.c:367
+#: ../src/file.c:322 ../src/file.c:338
 msgid "Please select a file or supply a valid file name"
 msgstr ""
 
-#: ../src/file.c:364
+#: ../src/file.c:335
 msgid "File does not exist"
 msgstr "Filen eksisterer ikke"
 
-#: ../src/file.c:439
+#: ../src/file.c:410
 #, c-format
 msgid "Could not open file \"%s\""
 msgstr ""
 
-#: ../src/file.c:442
+#: ../src/file.c:413
 msgid "Not a supported file format"
 msgstr ""
 
-#: ../src/file.c:520 ../src/file.c:699
+#: ../src/file.c:491 ../src/file.c:670
 #, c-format
 msgid "Could not save file \"%s\""
 msgstr ""
 
-#: ../src/file.c:524 ../src/file.c:703
+#: ../src/file.c:495 ../src/file.c:674
 msgid "Error encountered during save.  The file is still not saved."
 msgstr ""
 
-#: ../src/file.c:564
+#: ../src/file.c:535
 #, c-format
 msgid "Save \"%s\" as"
 msgstr "Lagre «%s» som"
 
-#: ../src/file.c:652
+#: ../src/file.c:623
 msgid "Please supply a valid file name"
 msgstr ""
 
-#: ../src/file.c:673
+#: ../src/file.c:644
 #, c-format
 msgid "Overwrite file \"%s\"?"
 msgstr ""
 
-#: ../src/file.c:677
+#: ../src/file.c:648
 msgid "File already exists."
 msgstr "Filen eksisterer allerede."
 
-#: ../src/file.c:773
+#: ../src/file.c:744
 #, c-format
 msgid "Save changes to document \"%s\" before closing?"
 msgstr ""
 
-#: ../src/file.c:777
+#: ../src/file.c:748
 msgid "Your changes will be lost if you don't save them."
 msgstr ""
 
-#: ../src/file.c:780
+#: ../src/file.c:751
 msgid "Close without saving"
 msgstr "Lukk uten å lagre"
 
@@ -428,78 +654,75 @@ msgstr "0123456789 .:,;(*!?)"
 msgid "Sample text"
 msgstr ""
 
-#: ../src/glabels-batch.c:52
+#: ../src/glabels-batch.c:53
 msgid "set output filename (default=\"output.pdf\")"
 msgstr ""
 
-#: ../src/glabels-batch.c:52 ../src/glabels-batch.c:66
+#: ../src/glabels-batch.c:53 ../src/glabels-batch.c:67
 msgid "filename"
 msgstr "filnavn"
 
-#: ../src/glabels-batch.c:54
+#: ../src/glabels-batch.c:55
 msgid "number of sheets (default=1)"
 msgstr ""
 
-#: ../src/glabels-batch.c:54
+#: ../src/glabels-batch.c:55
 msgid "sheets"
 msgstr ""
 
-#: ../src/glabels-batch.c:56
+#: ../src/glabels-batch.c:57
 msgid "number of copies (default=1)"
 msgstr ""
 
-#: ../src/glabels-batch.c:56
+#: ../src/glabels-batch.c:57
 msgid "copies"
 msgstr "kopier"
 
-#: ../src/glabels-batch.c:58
+#: ../src/glabels-batch.c:59
 msgid "first label on first sheet (default=1)"
 msgstr ""
 
-#: ../src/glabels-batch.c:58
+#: ../src/glabels-batch.c:59
 msgid "first"
 msgstr "første"
 
-#: ../src/glabels-batch.c:60
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:13
+#: ../src/glabels-batch.c:61 ../data/ui/print-op-dialog-custom-widget.ui.h:13
 msgid "print outlines (to test printer alignment)"
 msgstr ""
 
-#: ../src/glabels-batch.c:62
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:12
+#: ../src/glabels-batch.c:63 ../data/ui/print-op-dialog-custom-widget.ui.h:12
 msgid "print in reverse (i.e. a mirror image)"
 msgstr ""
 
-#: ../src/glabels-batch.c:64
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:11
+#: ../src/glabels-batch.c:65 ../data/ui/print-op-dialog-custom-widget.ui.h:11
 msgid "print crop marks"
 msgstr ""
 
-#: ../src/glabels-batch.c:66
+#: ../src/glabels-batch.c:67
 msgid "input file for merging"
 msgstr ""
 
-#: ../src/glabels-batch.c:68 ../src/glabels.c:64
+#: ../src/glabels-batch.c:69 ../src/glabels.c:64
 msgid "[FILE...]"
 msgstr ""
 
-#: ../src/glabels-batch.c:98
+#: ../src/glabels-batch.c:99
 msgid "Print files created with gLabels."
 msgstr ""
 
-#: ../src/glabels-batch.c:106 ../src/glabels.c:89
+#: ../src/glabels-batch.c:107 ../src/glabels.c:89
 #, c-format
 msgid ""
 "%s\n"
 "Run '%s --help' to see a full list of available command line options.\n"
 msgstr ""
 
-#: ../src/glabels-batch.c:149
+#: ../src/glabels-batch.c:151
 #, c-format
 msgid "cannot perform document merge with glabels file %s\n"
 msgstr ""
 
-#: ../src/glabels-batch.c:184
+#: ../src/glabels-batch.c:186
 #, c-format
 msgid "cannot open glabels file %s\n"
 msgstr ""
@@ -520,11 +743,11 @@ msgstr ""
 msgid "Barcode property"
 msgstr ""
 
-#: ../src/label-barcode.c:482
+#: ../src/label-barcode.c:485
 msgid "Barcode data empty"
 msgstr ""
 
-#: ../src/label-barcode.c:486
+#: ../src/label-barcode.c:489
 msgid "Invalid barcode data"
 msgstr ""
 
@@ -533,93 +756,93 @@ msgid "Create box object"
 msgstr ""
 
 #: ../src/label-box.c:230 ../src/label-ellipse.c:232 ../src/stock.c:93
-#: ../data/builder/property-bar.builder.h:3
+#: ../data/ui/property-bar.ui.h:3
 msgid "Fill color"
 msgstr ""
 
 #: ../src/label-box.c:261 ../src/label-ellipse.c:261 ../src/label-line.c:212
-#: ../src/stock.c:94 ../data/builder/property-bar.builder.h:8
+#: ../src/stock.c:94 ../data/ui/property-bar.ui.h:8
 msgid "Line color"
 msgstr ""
 
 #: ../src/label-box.c:289 ../src/label-ellipse.c:290 ../src/label-line.c:241
-#: ../data/builder/property-bar.builder.h:9
+#: ../data/ui/property-bar.ui.h:9
 msgid "Line width"
 msgstr ""
 
-#: ../src/label.c:399
+#: ../src/label.c:402
 msgid "Untitled"
 msgstr ""
 
-#: ../src/label.c:702 ../src/ui.c:422
+#: ../src/label.c:705 ../src/ui.c:422
 msgid "Merge properties"
 msgstr ""
 
-#: ../src/label.c:1184 ../src/ui.c:215
+#: ../src/label.c:1197 ../src/ui.c:215
 msgid "Delete"
 msgstr "Slett"
 
-#: ../src/label.c:1217 ../src/ui.c:324
+#: ../src/label.c:1230 ../src/ui.c:324
 msgid "Bring to front"
 msgstr ""
 
-#: ../src/label.c:1253 ../src/ui.c:331
+#: ../src/label.c:1266 ../src/ui.c:331
 msgid "Send to back"
 msgstr ""
 
-#: ../src/label.c:1294
+#: ../src/label.c:1307
 msgid "Rotate"
 msgstr "Roter"
 
-#: ../src/label.c:1329 ../src/ui.c:338
+#: ../src/label.c:1342 ../src/ui.c:338
 msgid "Rotate left"
 msgstr "Roter til venstre"
 
-#: ../src/label.c:1362 ../src/ui.c:345
+#: ../src/label.c:1375 ../src/ui.c:345
 msgid "Rotate right"
 msgstr "Roter til høyre"
 
-#: ../src/label.c:1397 ../src/ui.c:352
+#: ../src/label.c:1410 ../src/ui.c:352
 msgid "Flip horizontally"
 msgstr "Vend horisontalt"
 
-#: ../src/label.c:1432 ../src/ui.c:359
+#: ../src/label.c:1445 ../src/ui.c:359
 msgid "Flip vertically"
 msgstr "Vend vertikalt"
 
-#: ../src/label.c:1472 ../src/ui.c:366
+#: ../src/label.c:1485 ../src/ui.c:366
 msgid "Align left"
 msgstr "Juster til venstre"
 
-#: ../src/label.c:1529 ../src/ui.c:373
+#: ../src/label.c:1542 ../src/ui.c:373
 msgid "Align right"
 msgstr "Juster til høyre"
 
-#: ../src/label.c:1590 ../src/ui.c:380
+#: ../src/label.c:1603 ../src/ui.c:380
 msgid "Align horizontal center"
 msgstr ""
 
-#: ../src/label.c:1666 ../src/ui.c:387
+#: ../src/label.c:1679 ../src/ui.c:387
 msgid "Align tops"
 msgstr ""
 
-#: ../src/label.c:1723 ../src/ui.c:394
+#: ../src/label.c:1736 ../src/ui.c:394
 msgid "Align bottoms"
 msgstr ""
 
-#: ../src/label.c:1784 ../src/ui.c:401
+#: ../src/label.c:1797 ../src/ui.c:401
 msgid "Align vertical center"
 msgstr ""
 
-#: ../src/label.c:1862 ../src/ui.c:408
+#: ../src/label.c:1875 ../src/ui.c:408
 msgid "Center horizontally"
 msgstr ""
 
-#: ../src/label.c:1909 ../src/ui.c:415
+#: ../src/label.c:1922 ../src/ui.c:415
 msgid "Center vertically"
 msgstr ""
 
-#: ../src/label.c:2595 ../src/label.c:2637 ../src/label.c:2663 ../src/ui.c:208
+#: ../src/label.c:2610 ../src/label.c:2652 ../src/label.c:2678 ../src/ui.c:208
 msgid "Paste"
 msgstr ""
 
@@ -627,11 +850,11 @@ msgstr ""
 msgid "Create ellipse object"
 msgstr ""
 
-#: ../src/label-image.c:161 ../src/ui.c:312
+#: ../src/label-image.c:200 ../src/ui.c:312
 msgid "Create image object"
 msgstr ""
 
-#: ../src/label-image.c:265 ../src/label-image.c:336
+#: ../src/label-image.c:333 ../src/label-image.c:474
 msgid "Set image"
 msgstr "Sett bilde"
 
@@ -665,51 +888,94 @@ msgstr ""
 msgid "Shadow opacity"
 msgstr "_Vis kontakt"
 
-#: ../src/label-text.c:266 ../src/ui.c:284
+#: ../src/label-text.c:279 ../src/ui.c:284
 msgid "Create text object"
 msgstr ""
 
-#: ../src/label-text.c:438
+#: ../src/label-text.c:451
 msgid "Typing"
 msgstr ""
 
-#: ../src/label-text.c:571 ../data/builder/property-bar.builder.h:4
+#: ../src/label-text.c:584 ../data/ui/property-bar.ui.h:4
 msgid "Font family"
 msgstr ""
 
-#: ../src/label-text.c:609 ../data/builder/property-bar.builder.h:5
+#: ../src/label-text.c:622 ../data/ui/property-bar.ui.h:5
 msgid "Font size"
 msgstr ""
 
-#: ../src/label-text.c:642
+#: ../src/label-text.c:655
 msgid "Font weight"
 msgstr ""
 
-#: ../src/label-text.c:675 ../data/builder/property-bar.builder.h:6
+#: ../src/label-text.c:688 ../data/ui/property-bar.ui.h:6
 msgid "Italic"
 msgstr ""
 
-#: ../src/label-text.c:708
+#: ../src/label-text.c:721
 msgid "Align text"
 msgstr ""
 
-#: ../src/label-text.c:741
+#: ../src/label-text.c:754
 msgid "Line spacing"
 msgstr ""
 
-#: ../src/label-text.c:774 ../data/builder/property-bar.builder.h:11
+#: ../src/label-text.c:787 ../data/ui/property-bar.ui.h:11
 msgid "Text color"
 msgstr ""
 
-#: ../src/label-text.c:918
+#: ../src/label-text.c:931
 msgid "Auto shrink"
 msgstr ""
 
-#: ../src/media-combo-menu.c:130
-msgid "Recent templates"
+#: ../src/media-select.c:349 ../src/media-select.c:353
+#: ../src/media-select.c:502 ../src/media-select.c:701
+msgctxt "Brand"
+msgid "Any"
+msgstr ""
+
+#: ../src/media-select.c:358 ../src/media-select.c:871
+msgctxt "Page size"
+msgid "Any"
+msgstr ""
+
+#: ../src/media-select.c:367 ../src/media-select.c:370
+#: ../src/media-select.c:880
+msgctxt "Category"
+msgid "Any"
 msgstr ""
 
-#: ../src/merge.c:169 ../src/merge.c:210 ../src/merge.c:374 ../src/merge.c:377
+#: ../src/media-select.c:968
+msgid "No recent templates found."
+msgstr ""
+
+#: ../src/media-select.c:970
+msgid "Try selecting a template in the \"Search all\" tab."
+msgstr ""
+
+#. Translators: "No match" means that for the given template search criteria, there
+#. * were no matches found.
+#: ../src/media-select.c:1061
+msgid "No match."
+msgstr ""
+
+#: ../src/media-select.c:1063
+msgid "Try selecting a different brand, page size or category."
+msgstr ""
+
+#: ../src/media-select.c:1157
+msgid "No custom templates found."
+msgstr ""
+
+#: ../src/media-select.c:1159
+msgid ""
+"You may create new templates or try searching for pre-defined templates in "
+"the \"Search all\" tab."
+msgstr ""
+
+#. Translators: "None" here means that no document-merge source or
+#. * method has been selected.
+#: ../src/merge.c:171 ../src/merge.c:212 ../src/merge.c:376 ../src/merge.c:379
 msgid "None"
 msgstr "Ingen"
 
@@ -755,11 +1021,19 @@ msgstr ""
 msgid "Text: Colon separated values with keys on line 1"
 msgstr ""
 
-#: ../src/merge-init.c:104
+#: ../src/merge-init.c:102
+msgid "Text: Semicolon separated values"
+msgstr ""
+
+#: ../src/merge-init.c:109
+msgid "Text: Semicolon separated values with keys on line 1"
+msgstr ""
+
+#: ../src/merge-init.c:119
 msgid "Evolution Addressbook"
 msgstr "Evolution adressebok"
 
-#: ../src/merge-init.c:110
+#: ../src/merge-init.c:125
 msgid "VCards"
 msgstr "VCard"
 
@@ -771,7 +1045,7 @@ msgstr ""
 msgid "Select merge-database source"
 msgstr ""
 
-#: ../src/merge-properties-dialog.c:319 ../src/merge-properties-dialog.c:446
+#: ../src/merge-properties-dialog.c:319 ../src/merge-properties-dialog.c:450
 msgid "N/A"
 msgstr ""
 
@@ -784,16 +1058,39 @@ msgstr "Velg"
 msgid "Record/Field"
 msgstr "_Fjern felt"
 
-#: ../src/merge-properties-dialog.c:360
-#: ../data/builder/object-editor.builder.h:10
+#: ../src/merge-properties-dialog.c:360 ../data/ui/object-editor.ui.h:8
 msgid "Data"
 msgstr "Data"
 
-#: ../src/merge-properties-dialog.c:439
+#. Translators: "Fixed" here means that for the given document-merge method, there are
+#. * no further choices to further define the source of data.  E.g. if you select the
+#. * evolution-data-server, there are no further choices -- the source is "Fixed."
+#.
+#: ../src/merge-properties-dialog.c:443
 msgid "Fixed"
 msgstr "Fast"
 
-#: ../src/object-editor-bc-page.c:92 ../src/object-editor-shadow-page.c:93
+#. Translators: "Up" refers to the direction towards the top of a label.
+#: ../src/mini-preview.c:1074
+msgid "Up"
+msgstr ""
+
+#: ../src/new-label-dialog.c:203
+#, fuzzy
+msgid "Select Product"
+msgstr "Velg alle objekter"
+
+#: ../src/new-label-dialog.c:215
+#, fuzzy
+msgid "Choose Orientation"
+msgstr "Orientering:"
+
+#: ../src/new-label-dialog.c:229
+#, fuzzy
+msgid "Review"
+msgstr "Endre størrelse"
+
+#: ../src/object-editor-bc-page.c:93 ../src/object-editor-shadow-page.c:93
 #: ../src/object-editor-text-page.c:97 ../src/prefs-dialog.c:339
 #: ../src/ui-property-bar.c:280
 msgid "Default"
@@ -854,25 +1151,17 @@ msgstr ""
 msgid "No Line"
 msgstr "Ingen linje"
 
-#: ../src/prefs-dialog.c:172 ../data/builder/prefs-dialog.builder.h:21
+#: ../src/prefs-dialog.c:172 ../data/ui/prefs-dialog.ui.h:21
 msgid "gLabels Preferences"
 msgstr ""
 
 #. ===================================================================
 #: ../src/print-op.c:205 ../src/print-op-dialog.c:217
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:6
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:4
 #: ../templates/misc-iso-templates.xml.h:34
 msgid "Labels"
 msgstr ""
 
-#: ../src/rotate-label-button.c:122
-msgid "Normal"
-msgstr ""
-
-#: ../src/rotate-label-button.c:133
-msgid "Rotated"
-msgstr ""
-
 #: ../src/stock.c:70
 msgid "_Select Mode"
 msgstr ""
@@ -970,54 +1259,56 @@ msgstr ""
 msgid "Not Linked"
 msgstr ""
 
-#: ../src/template-designer.c:397
-msgid "gLabels Template Designer"
+#: ../src/template-designer.c:404
+msgid "New gLabels Template"
 msgstr ""
 
-#: ../src/template-designer.c:454
+#: ../src/template-designer.c:461
 msgid "Welcome"
 msgstr ""
 
-#: ../src/template-designer.c:493
+#: ../src/template-designer.c:500
 msgid "Name and Description"
 msgstr ""
 
-#: ../src/template-designer.c:541
+#: ../src/template-designer.c:548
 msgid "Page Size"
 msgstr ""
 
-#: ../src/template-designer.c:607
+#: ../src/template-designer.c:614
 msgid "Label or Card Shape"
 msgstr ""
 
-#: ../src/template-designer.c:654
+#: ../src/template-designer.c:661
 msgid "Label or Card Size"
 msgstr ""
 
-#: ../src/template-designer.c:753
+#: ../src/template-designer.c:760
 msgid "Label Size (round)"
 msgstr ""
 
-#: ../src/template-designer.c:834
+#: ../src/template-designer.c:841
 msgid "Label Size (CD/DVD)"
 msgstr ""
 
-#: ../src/template-designer.c:925
+#: ../src/template-designer.c:932
 msgid "Number of Layouts"
 msgstr ""
 
-#: ../src/template-designer.c:993
+#: ../src/template-designer.c:1000
 msgid "Layout(s)"
 msgstr ""
 
-#: ../src/template-designer.c:1098
+#: ../src/template-designer.c:1105
 msgid "Design Completed"
 msgstr ""
 
-#: ../src/template-designer.c:1275
-msgid ""
-"<span foreground='red' weight='bold'>Brand and part# match an existing "
-"template!</span>"
+#: ../src/template-designer.c:1133
+msgid "Edit gLabels Template"
+msgstr ""
+
+#: ../src/template-designer.c:1423
+msgid "Brand and part# match an existing template!"
 msgstr ""
 
 #. Menu entries.
@@ -1250,8 +1541,8 @@ msgstr ""
 msgid "Select, move and modify objects"
 msgstr ""
 
-#: ../src/ui.c:282 ../src/view-text.c:102
-#: ../data/builder/object-editor.builder.h:30
+#: ../src/ui.c:282 ../src/view-text.c:102 ../data/ui/object-editor.ui.h:28
+#: ../data/ui/prefs-dialog.ui.h:17
 msgid "Text"
 msgstr "Tekst"
 
@@ -1263,7 +1554,8 @@ msgstr "Boks"
 msgid "Create box/rectangle object"
 msgstr ""
 
-#: ../src/ui.c:296 ../data/builder/object-editor.builder.h:19
+#: ../src/ui.c:296 ../data/ui/object-editor.ui.h:17
+#: ../data/ui/prefs-dialog.ui.h:9
 msgid "Line"
 msgstr "Linje"
 
@@ -1275,7 +1567,7 @@ msgstr ""
 msgid "Create ellipse/circle object"
 msgstr ""
 
-#: ../src/ui.c:310 ../data/builder/object-editor.builder.h:16
+#: ../src/ui.c:310 ../data/ui/object-editor.ui.h:14
 msgid "Image"
 msgstr "Bilde"
 
@@ -1461,104 +1753,119 @@ msgstr ""
 msgid "(modified)"
 msgstr ""
 
-#: ../src/xml-label-04.c:75 ../src/xml-label.c:323
+#: ../src/xml-label-04.c:75 ../src/xml-label.c:333
 #, c-format
 msgid "Bad root node = \"%s\""
 msgstr ""
 
-#: ../src/xml-label-04.c:123 ../src/xml-label.c:406
+#: ../src/xml-label-04.c:123 ../src/xml-label.c:416
 #, c-format
 msgid "bad node =  \"%s\""
 msgstr ""
 
-#: ../src/xml-label.c:189 ../src/xml-label.c:227
+#: ../src/xml-label.c:199 ../src/xml-label.c:237
 msgid "xmlParseFile error"
 msgstr ""
 
-#: ../src/xml-label.c:264
+#: ../src/xml-label.c:274
 msgid "No document root"
 msgstr ""
 
-#: ../src/xml-label.c:272
+#: ../src/xml-label.c:282
 msgid "Importing from glabels 0.1 format"
 msgstr ""
 
-#: ../src/xml-label.c:281
+#: ../src/xml-label.c:291
 msgid "Importing from glabels 0.4 format"
 msgstr ""
 
-#: ../src/xml-label.c:291
+#: ../src/xml-label.c:301
 #, c-format
 msgid "Unknown glabels Namespace -- Using %s"
 msgstr ""
 
-#: ../src/xml-label.c:360
+#: ../src/xml-label.c:370
 #, c-format
 msgid "bad node in Document node =  \"%s\""
 msgstr ""
 
-#: ../src/xml-label.c:856
+#: ../src/xml-label.c:868
 #, c-format
 msgid "bad node in Data node =  \"%s\""
 msgstr ""
 
-#: ../src/xml-label.c:1097 ../libglabels/xml-template.c:779
+#: ../src/xml-label.c:944
+#, c-format
+msgid "Unknown embedded file format: \"%s\""
+msgstr ""
+
+#: ../src/xml-label.c:1150 ../libglabels/xml-template.c:802
 msgid "Utf8 conversion error."
 msgstr ""
 
-#: ../src/xml-label.c:1104
+#: ../src/xml-label.c:1157
 msgid "Problem saving xml file."
 msgstr ""
 
 #. Create and append an "Other" entry.
-#: ../libglabels/db.c:115
+#. Translators: "Other" here means other page size.  Meaning a page size
+#. * other than the standard ones that libglabels knows about such as
+#. * "letter", "A4", etc.
+#: ../libglabels/db.c:270
 msgid "Other"
 msgstr "Øvrige"
 
 #. Create and append a "User defined" entry.
-#: ../libglabels/db.c:128
+#: ../libglabels/db.c:279
 msgid "User defined"
 msgstr ""
 
-#: ../libglabels/db.c:488
+#: ../libglabels/db.c:665
 msgid ""
 "Unable to locate paper size definitions.  Libglabels may not be installed "
 "correctly!"
 msgstr ""
 
-#: ../libglabels/db.c:880
+#: ../libglabels/db.c:1057
 msgid ""
 "Unable to locate category definitions.  Libglabels may not be installed "
 "correctly!"
 msgstr ""
 
-#: ../libglabels/db.c:1826
+#: ../libglabels/db.c:2097
 msgid ""
 "Unable to locate any template files.  Libglabels may not be installed "
 "correctly!"
 msgstr ""
 
-#: ../libglabels/db.c:1893
+#: ../libglabels/db.c:2164
 #, c-format
 msgid "%s full page label"
 msgstr ""
 
-#: ../libglabels/template.c:148
+#: ../libglabels/template.c:156
 #, c-format
 msgid "Equivalent part (\"%s\") for \"%s\", not previously defined."
 msgstr ""
 
-#: ../libglabels/template.c:714 ../libglabels/template.c:718
-msgid "per sheet"
+#.
+#. * Translators: 1st %d = number of labels across a page,
+#. *              2nd %d = number of labels down a page,
+#. *              3rd %d = total number of labels on a page (sheet).
+#.
+#: ../libglabels/template.c:727
+#, c-format
+msgid "%d × %d (%d per sheet)"
 msgstr ""
 
-#: ../libglabels/template.c:718
+#. Translators: %d is the total number of labels on a page (sheet).
+#: ../libglabels/template.c:732
 #, c-format
-msgid "%d %s"
+msgid "%d per sheet"
 msgstr ""
 
-#: ../libglabels/template.c:788 ../libglabels/template.c:794
-#: ../libglabels/template.c:804 ../libglabels/template.c:810
+#: ../libglabels/template.c:802 ../libglabels/template.c:808
+#: ../libglabels/template.c:818 ../libglabels/template.c:824
 msgid "diameter"
 msgstr ""
 
@@ -1566,14 +1873,14 @@ msgstr ""
 #. the CSS2 Specification (Section 4.3.2)
 #. This table must be sorted exactly as the enumerations in lglUnits
 #. [LGL_UNITS_POINT]
-#: ../libglabels/units.c:65 ../data/builder/object-editor.builder.h:41
-#: ../data/builder/prefs-dialog.builder.h:22
+#: ../libglabels/units.c:65 ../data/ui/object-editor.ui.h:39
+#: ../data/ui/prefs-dialog.ui.h:22
 msgid "points"
 msgstr ""
 
 #. [LGL_UNITS_INCH]
-#: ../libglabels/units.c:66 ../data/builder/object-editor.builder.h:40
-#: ../data/builder/template-designer.builder.h:64
+#: ../libglabels/units.c:66 ../data/ui/object-editor.ui.h:38
+#: ../data/ui/template-designer.ui.h:62
 msgid "inches"
 msgstr ""
 
@@ -1592,32 +1899,32 @@ msgstr ""
 msgid "picas"
 msgstr ""
 
-#: ../libglabels/xml-template.c:221
+#: ../libglabels/xml-template.c:223
 msgid "Missing name or brand/part attributes."
 msgstr ""
 
 #. This should always be an id, but just in case a name
 #. slips by!
-#: ../libglabels/xml-template.c:242
+#: ../libglabels/xml-template.c:244
 #, c-format
 msgid "Unknown page size id \"%s\", trying as name"
 msgstr ""
 
-#: ../libglabels/xml-template.c:254
+#: ../libglabels/xml-template.c:256
 #, c-format
 msgid "Unknown page size id or name \"%s\""
 msgstr ""
 
-#: ../libglabels/xml-template.c:273
+#: ../libglabels/xml-template.c:275
 msgid "Forward references not supported."
 msgstr ""
 
-#: ../libglabels/xml-template.c:724
+#: ../libglabels/xml-template.c:747
 msgid ""
 "Missing required \"brand\" or \"part\" attribute, trying deprecated name."
 msgstr ""
 
-#: ../libglabels/xml-template.c:734
+#: ../libglabels/xml-template.c:757
 msgid "Name attribute also missing."
 msgstr ""
 
@@ -1629,394 +1936,380 @@ msgstr ""
 #. * indent-tabs-mode: nil  -- emacs
 #. * End:                   -- emacs
 #.
-#: ../data/builder/merge-properties-dialog.builder.h:1
-msgid "<b>Record selection/preview</b>"
-msgstr ""
-
-#: ../data/builder/merge-properties-dialog.builder.h:2
-msgid "<b>Source</b>"
-msgstr "<b>Kilde</b>"
-
-#: ../data/builder/merge-properties-dialog.builder.h:3
+#: ../data/ui/merge-properties-dialog.ui.h:1
 msgid "Format:"
 msgstr "Format:"
 
-#: ../data/builder/merge-properties-dialog.builder.h:4
+#: ../data/ui/merge-properties-dialog.ui.h:2
 msgid "Location:"
 msgstr "Lokasjon:"
 
-#: ../data/builder/merge-properties-dialog.builder.h:5
+#: ../data/ui/merge-properties-dialog.ui.h:3
+msgid "Record selection/preview"
+msgstr ""
+
+#: ../data/ui/merge-properties-dialog.ui.h:4
 msgid "Select all"
 msgstr "Velg alle"
 
-#: ../data/builder/merge-properties-dialog.builder.h:6
+#: ../data/ui/merge-properties-dialog.ui.h:5
+#, fuzzy
+msgid "Source"
+msgstr "<b>Kilde</b>"
+
+#: ../data/ui/merge-properties-dialog.ui.h:6
 msgid "Unselect all"
 msgstr "Velg bort alle"
 
-#: ../data/builder/new-label-dialog.builder.h:1
+#: ../data/ui/media-select.ui.h:1
+msgid "Brand:"
+msgstr ""
+
+#: ../data/ui/media-select.ui.h:2
+msgid "Category:"
+msgstr ""
+
+#: ../data/ui/media-select.ui.h:3
+#, fuzzy
+msgid "Custom"
+msgstr "Egendefinert farge"
+
+#: ../data/ui/media-select.ui.h:4 ../data/ui/new-label-dialog.ui.h:6
+#: ../data/ui/template-designer.ui.h:42
+msgid "Page size:"
+msgstr "Sidestørrelse:"
+
+#: ../data/ui/media-select.ui.h:5
+msgid "Recent"
+msgstr ""
+
+#: ../data/ui/media-select.ui.h:6
+#, fuzzy
+msgid "Search all"
+msgstr "Velg alle"
+
+#: ../data/ui/new-label-dialog.ui.h:1
 msgid ""
-"1\n"
-"2\n"
-"3\n"
-"4"
-msgstr ""
-"1\n"
-"2\n"
-"3\n"
-"4"
-
-#: ../data/builder/new-label-dialog.builder.h:5
-msgid "<b>Information</b>"
-msgstr "<b>Informasjon</b>"
-
-#: ../data/builder/new-label-dialog.builder.h:6
-msgid "<b>Preview</b>"
-msgstr "<b>Forhåndsvisning</b>"
-
-#: ../data/builder/new-label-dialog.builder.h:7
-msgid "<b>Select media</b>"
-msgstr "<b>Velg medie:</b>"
-
-#: ../data/builder/new-label-dialog.builder.h:8
-#: ../data/builder/template-designer.builder.h:27
+"Choose label or card product from hundreds of predefined templates or define "
+"your own."
+msgstr ""
+
+#: ../data/ui/new-label-dialog.ui.h:2 ../data/ui/template-designer.ui.h:27
 msgid "Description:"
 msgstr "Beskrivelse:"
 
-#: ../data/builder/new-label-dialog.builder.h:9
+#: ../data/ui/new-label-dialog.ui.h:3
 msgid "Label size:"
 msgstr ""
 
-#: ../data/builder/new-label-dialog.builder.h:10
+#: ../data/ui/new-label-dialog.ui.h:4
 msgid "Layout:"
 msgstr "Utforming:"
 
-#: ../data/builder/new-label-dialog.builder.h:11
-msgid "Orientation:"
-msgstr "Orientering:"
-
-#: ../data/builder/new-label-dialog.builder.h:12
-#: ../data/builder/template-designer.builder.h:42
-msgid "Page size:"
-msgstr "Sidestørrelse:"
+#: ../data/ui/new-label-dialog.ui.h:5
+msgid "Normal"
+msgstr ""
 
-#: ../data/builder/new-label-dialog.builder.h:13
-#: ../data/builder/template-designer.builder.h:43
+#: ../data/ui/new-label-dialog.ui.h:7 ../data/ui/template-designer.ui.h:43
 msgid "Part #:"
 msgstr ""
 
-#: ../data/builder/new-label-dialog.builder.h:14
-msgid "Similar products:"
+#: ../data/ui/new-label-dialog.ui.h:8
+msgid "Please review and confirm your selection."
 msgstr ""
 
-#: ../data/builder/new-label-dialog.builder.h:15
-msgid "Template:"
-msgstr "Mal:"
+#: ../data/ui/new-label-dialog.ui.h:9
+msgid "Rotated"
+msgstr ""
+
+#: ../data/ui/new-label-dialog.ui.h:10
+msgid "Select orientation of label content."
+msgstr ""
+
+#: ../data/ui/new-label-dialog.ui.h:11
+msgid "Similar products:"
+msgstr ""
 
-#: ../data/builder/new-label-dialog.builder.h:16
+#: ../data/ui/new-label-dialog.ui.h:12
 msgid "Vendor:"
 msgstr ""
 
-#: ../data/builder/object-editor.builder.h:2
+#: ../data/ui/object-editor.ui.h:2
 #, no-c-format
 msgid "%"
 msgstr "%"
 
-#: ../data/builder/object-editor.builder.h:3
-msgid "00000000000 00000"
-msgstr ""
-
-#: ../data/builder/object-editor.builder.h:4
-msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
-msgstr ""
-
-#: ../data/builder/object-editor.builder.h:5
-#: ../data/builder/prefs-dialog.builder.h:7
+#: ../data/ui/object-editor.ui.h:3 ../data/ui/prefs-dialog.ui.h:2
 msgid "Alignment:"
 msgstr "Justering:"
 
-#: ../data/builder/object-editor.builder.h:6
+#: ../data/ui/object-editor.ui.h:4
 msgid "Allow merge to automatically shrink text"
 msgstr ""
 
-#: ../data/builder/object-editor.builder.h:7
+#: ../data/ui/object-editor.ui.h:5
 msgid "Angle:"
 msgstr "Vinkel:"
 
-#: ../data/builder/object-editor.builder.h:8
+#: ../data/ui/object-editor.ui.h:6
 msgid "Checksum"
 msgstr "Sjekksum"
 
-#: ../data/builder/object-editor.builder.h:9
-#: ../data/builder/prefs-dialog.builder.h:8
+#: ../data/ui/object-editor.ui.h:7 ../data/ui/prefs-dialog.ui.h:3
 msgid "Color:"
 msgstr "Farge:"
 
-#: ../data/builder/object-editor.builder.h:11
+#: ../data/ui/object-editor.ui.h:9
 msgid "Enable shadow"
 msgstr ""
 
-#: ../data/builder/object-editor.builder.h:12
+#: ../data/ui/object-editor.ui.h:10
 msgid "Family:"
 msgstr "Familie:"
 
-#: ../data/builder/object-editor.builder.h:13
+#: ../data/ui/object-editor.ui.h:11
 msgid "File:"
 msgstr "Fil:"
 
-#: ../data/builder/object-editor.builder.h:14
+#: ../data/ui/object-editor.ui.h:12 ../data/ui/prefs-dialog.ui.h:5
 msgid "Fill"
 msgstr "Fyll"
 
-#: ../data/builder/object-editor.builder.h:15
-#: ../data/builder/template-designer.builder.h:30
+#: ../data/ui/object-editor.ui.h:13 ../data/ui/template-designer.ui.h:30
 msgid "Height:"
 msgstr "Høyde:"
 
-#: ../data/builder/object-editor.builder.h:17
+#: ../data/ui/object-editor.ui.h:15
 msgid "Key:"
 msgstr "Nøkkel:"
 
-#: ../data/builder/object-editor.builder.h:18
+#: ../data/ui/object-editor.ui.h:16
 msgid "Length:"
 msgstr "Lengde:"
 
-#: ../data/builder/object-editor.builder.h:20
-#: ../data/builder/prefs-dialog.builder.h:12
+#: ../data/ui/object-editor.ui.h:18 ../data/ui/prefs-dialog.ui.h:10
 msgid "Line Spacing:"
 msgstr ""
 
-#: ../data/builder/object-editor.builder.h:21
+#: ../data/ui/object-editor.ui.h:19
 msgid "Literal:"
 msgstr ""
 
-#: ../data/builder/object-editor.builder.h:22
+#: ../data/ui/object-editor.ui.h:20
 msgid "Opacity:"
 msgstr ""
 
-#: ../data/builder/object-editor.builder.h:23
+#: ../data/ui/object-editor.ui.h:21
 msgid "Position"
 msgstr "Posisjon"
 
-#: ../data/builder/object-editor.builder.h:24
+#: ../data/ui/object-editor.ui.h:22
 msgid "Reset image size"
 msgstr ""
 
-#: ../data/builder/object-editor.builder.h:25
+#: ../data/ui/object-editor.ui.h:23
 msgid "Shadow"
 msgstr "Skygge"
 
-#: ../data/builder/object-editor.builder.h:26
+#: ../data/ui/object-editor.ui.h:24
 msgid "Size"
 msgstr "Størrelse"
 
-#: ../data/builder/object-editor.builder.h:27
+#: ../data/ui/object-editor.ui.h:25
 msgid "Size:"
 msgstr "Størrelse:"
 
-#: ../data/builder/object-editor.builder.h:28
+#: ../data/ui/object-editor.ui.h:26
 msgid "Style"
 msgstr "Stil"
 
-#: ../data/builder/object-editor.builder.h:29
+#: ../data/ui/object-editor.ui.h:27
 msgid "Style:"
 msgstr "Stil:"
 
-#: ../data/builder/object-editor.builder.h:31
-#: ../data/builder/prefs-dialog.builder.h:20
-#: ../data/builder/template-designer.builder.h:61
+#: ../data/ui/object-editor.ui.h:29 ../data/ui/prefs-dialog.ui.h:20
+#: ../data/ui/template-designer.ui.h:61
 msgid "Width:"
 msgstr "Bredde:"
 
-#: ../data/builder/object-editor.builder.h:32
+#: ../data/ui/object-editor.ui.h:30
 msgid "X Offset:"
 msgstr ""
 
-#: ../data/builder/object-editor.builder.h:33
+#: ../data/ui/object-editor.ui.h:31
 msgid "X:"
 msgstr "X:"
 
-#: ../data/builder/object-editor.builder.h:34
+#: ../data/ui/object-editor.ui.h:32
 msgid "Y Offset:"
 msgstr ""
 
-#: ../data/builder/object-editor.builder.h:35
+#: ../data/ui/object-editor.ui.h:33
 msgid "Y:"
 msgstr "Y:"
 
-#: ../data/builder/object-editor.builder.h:36
+#: ../data/ui/object-editor.ui.h:34
 msgid "degrees"
 msgstr "grader"
 
-#: ../data/builder/object-editor.builder.h:37
+#: ../data/ui/object-editor.ui.h:35
 msgid "dialog1"
 msgstr ""
 
-#: ../data/builder/object-editor.builder.h:38
+#: ../data/ui/object-editor.ui.h:36
 msgid "digits:"
 msgstr ""
 
-#: ../data/builder/object-editor.builder.h:39
+#: ../data/ui/object-editor.ui.h:37
 msgid "format:"
 msgstr "format:"
 
-#: ../data/builder/prefs-dialog.builder.h:1
+#: ../data/ui/prefs-dialog.ui.h:1
 msgid "   "
 msgstr "   "
 
-#: ../data/builder/prefs-dialog.builder.h:2
-msgid "<span weight=\"bold\">Default page size</span>"
-msgstr ""
-
-#: ../data/builder/prefs-dialog.builder.h:3
-msgid "<span weight=\"bold\">Fill</span>"
-msgstr ""
-
-#: ../data/builder/prefs-dialog.builder.h:4
-msgid "<span weight=\"bold\">Line</span>"
-msgstr ""
-
-#: ../data/builder/prefs-dialog.builder.h:5
-msgid "<span weight=\"bold\">Text</span>"
-msgstr ""
-
-#: ../data/builder/prefs-dialog.builder.h:6
-msgid "<span weight=\"bold\">Units</span>"
+#: ../data/ui/prefs-dialog.ui.h:4
+msgid "Default page size"
 msgstr ""
 
-#: ../data/builder/prefs-dialog.builder.h:9
+#: ../data/ui/prefs-dialog.ui.h:6
 msgid "Font:"
 msgstr "Skrift:"
 
-#: ../data/builder/prefs-dialog.builder.h:10
+#: ../data/ui/prefs-dialog.ui.h:7
 msgid "ISO A4"
 msgstr ""
 
-#: ../data/builder/prefs-dialog.builder.h:11
+#: ../data/ui/prefs-dialog.ui.h:8
 msgid "Inches"
 msgstr "Tommer"
 
-#: ../data/builder/prefs-dialog.builder.h:13
+#: ../data/ui/prefs-dialog.ui.h:11
 #, fuzzy
 msgid "Locale"
 msgstr "Lokalitet"
 
-#: ../data/builder/prefs-dialog.builder.h:14
+#: ../data/ui/prefs-dialog.ui.h:12
 msgid "Millimeters"
 msgstr "Millimeter"
 
-#: ../data/builder/prefs-dialog.builder.h:15
+#: ../data/ui/prefs-dialog.ui.h:13
 msgid "Object defaults"
 msgstr ""
 
-#: ../data/builder/prefs-dialog.builder.h:16
+#: ../data/ui/prefs-dialog.ui.h:14
 msgid "Points"
 msgstr "Punkter"
 
-#: ../data/builder/prefs-dialog.builder.h:17
+#: ../data/ui/prefs-dialog.ui.h:15
 msgid "Select default properties for new objects."
 msgstr ""
 
-#: ../data/builder/prefs-dialog.builder.h:18
+#: ../data/ui/prefs-dialog.ui.h:16
 msgid "Select locale specific behavior."
 msgstr ""
 
-#: ../data/builder/prefs-dialog.builder.h:19 ../templates/paper-sizes.xml.h:35
+#: ../data/ui/prefs-dialog.ui.h:18 ../templates/paper-sizes.xml.h:35
 msgid "US Letter"
 msgstr ""
 
-#: ../data/builder/property-bar.builder.h:1
+#: ../data/ui/prefs-dialog.ui.h:19
+msgid "Units"
+msgstr ""
+
+#: ../data/ui/property-bar.ui.h:1
 msgid "Bold"
 msgstr ""
 
-#: ../data/builder/property-bar.builder.h:2
+#: ../data/ui/property-bar.ui.h:2
 msgid "Center align"
 msgstr ""
 
-#: ../data/builder/property-bar.builder.h:7
+#: ../data/ui/property-bar.ui.h:7
 msgid "Left align"
 msgstr ""
 
-#: ../data/builder/property-bar.builder.h:10
+#: ../data/ui/property-bar.ui.h:10
 msgid "Right align"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:1
+#: ../data/ui/template-designer.ui.h:1
 msgid "(e.g., \"Mailing Labels,\" \"Business Cards,\" ...)"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:2
+#: ../data/ui/template-designer.ui.h:2
 msgid "(e.g., 8163A)"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:3
+#: ../data/ui/template-designer.ui.h:3
 msgid "(e.g., Avery, Acme, ...)"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:4
+#: ../data/ui/template-designer.ui.h:4
 msgid "1. Outer radius:"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:5
+#: ../data/ui/template-designer.ui.h:5
 msgid "1. Radius:"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:6
+#: ../data/ui/template-designer.ui.h:6
 msgid "1. Width:"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:7
+#: ../data/ui/template-designer.ui.h:7
 msgid "2. Height:"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:8
+#: ../data/ui/template-designer.ui.h:8
 msgid "2. Inner radius:"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:9
+#: ../data/ui/template-designer.ui.h:9
 msgid "2. Waste (overprint allowed):"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:10
+#: ../data/ui/template-designer.ui.h:10
 msgid "3. Clipping width:"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:11
+#: ../data/ui/template-designer.ui.h:11
 msgid "3. Margin"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:12
+#: ../data/ui/template-designer.ui.h:12
 msgid "3. Round (radius of corner):"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:13
+#: ../data/ui/template-designer.ui.h:13
 msgid "4. Clipping height:"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:14
+#: ../data/ui/template-designer.ui.h:14
 msgid "4. Horiz. waste (overprint allowed):"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:15
+#: ../data/ui/template-designer.ui.h:15
 msgid "5. Vert. waste (overprint allowed):"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:16
+#: ../data/ui/template-designer.ui.h:16
 msgid "5. Waste (overprint allowed):"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:17
+#: ../data/ui/template-designer.ui.h:17
 msgid "6. Margin"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:18
+#: ../data/ui/template-designer.ui.h:18
 msgid "Brand/Manufacturer:"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:19
+#: ../data/ui/template-designer.ui.h:19
 msgid "CD/DVD (including credit card CDs)"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:20
+#: ../data/ui/template-designer.ui.h:20
 msgid ""
 "Congratulations!\n"
 "\n"
@@ -2027,19 +2320,19 @@ msgid ""
 "or \"Back\" to continue editing this design."
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:28
+#: ../data/ui/template-designer.ui.h:28
 msgid "Distance from left edge (x0):"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:29
+#: ../data/ui/template-designer.ui.h:29
 msgid "Distance from top edge (y0):"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:31
+#: ../data/ui/template-designer.ui.h:31
 msgid "Horizontal pitch (dx):"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:32
+#: ../data/ui/template-designer.ui.h:32
 msgid ""
 "How many layouts will your template contain? \n"
 "\n"
@@ -2048,170 +2341,131 @@ msgid ""
 "The second example illustrates when two layouts are needed."
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:37
+#: ../data/ui/template-designer.ui.h:37
 msgid "Layout #1"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:38
+#: ../data/ui/template-designer.ui.h:38
 msgid "Layout #2"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:39
+#: ../data/ui/template-designer.ui.h:39
 msgid "Number across (nx):"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:40
+#: ../data/ui/template-designer.ui.h:40
 msgid "Number down (ny):"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:41
+#: ../data/ui/template-designer.ui.h:41
 msgid "Number of layouts:"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:44
+#: ../data/ui/template-designer.ui.h:44
 msgid ""
 "Please enter the following identifying information about the template "
 "stationery."
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:45
+#: ../data/ui/template-designer.ui.h:45
 msgid "Please enter the following layout information."
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:46
+#: ../data/ui/template-designer.ui.h:46
 msgid ""
 "Please enter the following size parameters of a single label in your "
 "template."
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:47
+#: ../data/ui/template-designer.ui.h:47
 msgid ""
 "Please enter the following size parameters of a single label or card in your "
 "template."
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:48
+#: ../data/ui/template-designer.ui.h:48
 msgid "Please select the basic shape of the labels or cards."
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:49
+#: ../data/ui/template-designer.ui.h:49
 msgid "Please select the page size of the template stationery."
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:50
+#: ../data/ui/template-designer.ui.h:50
 msgid "Print test sheet"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:51
+#: ../data/ui/template-designer.ui.h:51
 msgid "Rectangular or square (can have rounded corners)"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:52
+#: ../data/ui/template-designer.ui.h:52
 msgid "Round"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:53
+#: ../data/ui/template-designer.ui.h:53
 msgid ""
 "Templates needing\n"
 "two layouts."
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:55
+#: ../data/ui/template-designer.ui.h:55
 msgid ""
 "Templates needing only\n"
 "one layout."
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:57
+#: ../data/ui/template-designer.ui.h:57
 msgid "Vertical pitch (dy):"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:58
+#: ../data/ui/template-designer.ui.h:58
 msgid ""
 "Welcome to the gLabels Template Designer.\n"
 "\n"
 "This dialog will assist you in the creation of a custom gLabels template."
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:62
-msgid "cd_size_page"
-msgstr ""
-
-#: ../data/builder/template-designer.builder.h:63
-msgid "finish_page"
-msgstr ""
-
-#: ../data/builder/template-designer.builder.h:65
-msgid "layout_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:1
+msgid "Collate"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:66
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:2
 #, fuzzy
-msgid "name_page"
-msgstr "Hjemmeside"
-
-#: ../data/builder/template-designer.builder.h:67
-msgid "nlayouts_page"
-msgstr ""
-
-#: ../data/builder/template-designer.builder.h:68
-msgid "pg_size_page"
-msgstr ""
-
-#: ../data/builder/template-designer.builder.h:69
-msgid "rect_size_page"
-msgstr ""
-
-#: ../data/builder/template-designer.builder.h:70
-msgid "round_size_page"
-msgstr ""
-
-#: ../data/builder/template-designer.builder.h:71
-msgid "shape_page"
-msgstr ""
-
-#: ../data/builder/template-designer.builder.h:72
-msgid "start_page"
-msgstr ""
+msgid "Copies"
+msgstr "Kopier:"
 
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:1
-msgid "<b>Copies</b>"
-msgstr "<b>Kopier</b>"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:3
+msgid "Copies:"
+msgstr "Kopier:"
 
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:2
-msgid "<b>Merge Control</b>"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:5
+msgid "Merge Control"
 msgstr ""
 
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:3
-msgid "<b>Options</b>"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:6
+#, fuzzy
+msgid "Options"
 msgstr "<b>Alternativer</b>"
 
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:4
-msgid "Collate"
-msgstr ""
-
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:5
-msgid "Copies:"
-msgstr "Kopier:"
-
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:7
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:7
 #, fuzzy
 msgid "Sheets:"
 msgstr "Gate"
 
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:8
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:8
 msgid "Start on label"
 msgstr ""
 
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:9
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:9
 msgid "from:"
 msgstr "fra:"
 
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:10
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:10
 msgid "on 1st sheet"
 msgstr ""
 
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:14
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:14
 msgid "to:"
 msgstr "til:"
 
@@ -2356,7 +2610,8 @@ msgstr ""
 msgid "Any label"
 msgstr ""
 
-#: ../templates/categories.xml.h:3
+#. ===================================================================
+#: ../templates/categories.xml.h:3 ../templates/pearl-iso-templates.xml.h:8
 msgid "Business cards"
 msgstr "Visittkort"
 
@@ -2372,7 +2627,8 @@ msgstr ""
 msgid "Rectangular labels"
 msgstr ""
 
-#: ../templates/categories.xml.h:7
+#. ===================================================================
+#: ../templates/categories.xml.h:7 ../templates/pearl-iso-templates.xml.h:46
 msgid "Round labels"
 msgstr ""
 
@@ -2388,6 +2644,7 @@ msgstr ""
 #: ../templates/dymo-other-templates.xml.h:4
 #: ../templates/maco-us-templates.xml.h:2
 #: ../templates/misc-iso-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:2
 #: ../templates/worldlabel-us-templates.xml.h:1
 #: ../templates/zweckform-iso-templates.xml.h:2
 #, fuzzy
@@ -2414,6 +2671,7 @@ msgstr "Visittkort"
 #: ../templates/avery-iso-templates.xml.h:14
 #: ../templates/misc-us-templates.xml.h:8
 #: ../templates/misc-iso-templates.xml.h:16
+#: ../templates/pearl-iso-templates.xml.h:20
 #: ../templates/worldlabel-us-templates.xml.h:2
 #: ../templates/zweckform-iso-templates.xml.h:8
 msgid "CD/DVD Labels"
@@ -2496,7 +2754,7 @@ msgstr ""
 #. ===================================================================
 #: ../templates/avery-us-templates.xml.h:34
 #: ../templates/maco-us-templates.xml.h:3
-#: ../templates/misc-us-templates.xml.h:28
+#: ../templates/misc-us-templates.xml.h:30
 #: ../templates/worldlabel-us-templates.xml.h:9
 msgid "Round Labels"
 msgstr ""
@@ -2565,7 +2823,7 @@ msgstr ""
 #. ===============================================================
 #. ===================================================================
 #: ../templates/avery-iso-templates.xml.h:20
-#: ../templates/misc-us-templates.xml.h:18
+#: ../templates/misc-us-templates.xml.h:20
 #: ../templates/misc-iso-templates.xml.h:36
 #: ../templates/zweckform-iso-templates.xml.h:16
 msgid "Mailing Labels"
@@ -2677,35 +2935,40 @@ msgid "DLT Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../templates/misc-us-templates.xml.h:20
-msgid "Microtube labels"
+#: ../templates/misc-us-templates.xml.h:18
+msgid "Jewel Case Booklet"
 msgstr ""
 
 #. ===================================================================
 #: ../templates/misc-us-templates.xml.h:22
+msgid "Microtube labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:24
 msgid "Mini-CD Labels"
 msgstr ""
 
-#: ../templates/misc-us-templates.xml.h:23
+#: ../templates/misc-us-templates.xml.h:25
 msgid "PRO CD Labels 2-up (CD spine only)"
 msgstr ""
 
-#: ../templates/misc-us-templates.xml.h:24
+#: ../templates/misc-us-templates.xml.h:26
 msgid "PRO CD Labels 2-up (Face only)"
 msgstr ""
 
 #. ===================================================================
-#: ../templates/misc-us-templates.xml.h:26
+#: ../templates/misc-us-templates.xml.h:28
 #: ../templates/misc-iso-templates.xml.h:42
 msgid "PRO CD Labels 2-up (face only)"
 msgstr ""
 
 #. ===================================================================
-#: ../templates/misc-us-templates.xml.h:30
+#: ../templates/misc-us-templates.xml.h:32
 msgid "Slimline CD Case (rightside up)"
 msgstr ""
 
-#: ../templates/misc-us-templates.xml.h:31
+#: ../templates/misc-us-templates.xml.h:33
 msgid "Slimline CD Case (upside down)"
 msgstr ""
 
@@ -2788,6 +3051,12 @@ msgstr ""
 
 #. ===================================================================
 #: ../templates/misc-iso-templates.xml.h:46
+#, fuzzy
+msgid "Universal Labels"
+msgstr "Adressebok"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:48
 msgid "Video Labels (face only)"
 msgstr ""
 
@@ -2796,6 +3065,135 @@ msgstr ""
 msgid "Multi-Purpose Labels"
 msgstr ""
 
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:4
+#, fuzzy
+msgid "Address Labels (STAMPIT)"
+msgstr "Adressebok"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:6
+#, fuzzy
+msgid "Bottle labels"
+msgstr "Om glabels"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:10
+msgid "Business cards glossy, both sides printable"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:12
+#, fuzzy
+msgid "Business cards high glossy"
+msgstr "Visittkort"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:14
+#, fuzzy
+msgid "Business cards punched"
+msgstr "Visittkort"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:16
+#, fuzzy
+msgid "Business cards punched dull"
+msgstr "Visittkort"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:18
+#, fuzzy
+msgid "Business cards punched glossy"
+msgstr "Visittkort"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:22
+msgid "Floppy disk labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:24
+#, fuzzy
+msgid "Foldable business cards"
+msgstr "Visittkort"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:26
+msgid "Foldable business cards glossy/dull"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:28
+msgid "Labels A4"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:30
+msgid "Labels A5"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:32
+msgid "Labels A6"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:34
+msgid "Membership cards"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:36
+msgid "Membership cards, both sides printable"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:38
+#, fuzzy
+msgid "Name plates"
+msgstr "Mal:"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:40
+msgid "Passport photo labels glossy"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:42
+#, fuzzy
+msgid "Photo labels"
+msgstr "Om glabels"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:44
+msgid "Photo labels semiglossy"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:48
+msgid "SD card labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:50
+msgid "Self-adhesive film transparent"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:52
+msgid "Self-adhesive film weatherproof"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:54
+msgid "Self-adhesive labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:56
+msgid "Self-adhesive window film"
+msgstr ""
+
 #. ===================================================================
 #: ../templates/zweckform-iso-templates.xml.h:10
 msgid "Correction and Cover-up Labels"
@@ -2831,3 +3229,29 @@ msgstr ""
 msgid "Video Labels (back)"
 msgstr ""
 
+#~ msgid ""
+#~ "1\n"
+#~ "2\n"
+#~ "3\n"
+#~ "4"
+#~ msgstr ""
+#~ "1\n"
+#~ "2\n"
+#~ "3\n"
+#~ "4"
+
+#~ msgid "<b>Information</b>"
+#~ msgstr "<b>Informasjon</b>"
+
+#~ msgid "<b>Preview</b>"
+#~ msgstr "<b>Forhåndsvisning</b>"
+
+#~ msgid "<b>Select media</b>"
+#~ msgstr "<b>Velg medie:</b>"
+
+#, fuzzy
+#~ msgid "name_page"
+#~ msgstr "Hjemmeside"
+
+#~ msgid "<b>Copies</b>"
+#~ msgstr "<b>Kopier</b>"
diff --git a/po/nl.po b/po/nl.po
new file mode 100644 (file)
index 0000000..e867b9e
--- /dev/null
+++ b/po/nl.po
@@ -0,0 +1,3563 @@
+# Dutch translation for glabels.
+#
+# This file is distributed under the same license as the glabels package.
+#
+# Mario Blättermann <mariobl@gnome.org>, 2010–2011
+# Hannie Dumoleyn <hannie@ubuntu-nl.org>, 2010–2011
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: glabelsmaster\n"
+"Report-Msgid-Bugs-To: http://sourceforge.net/tracker/?group_id=46122&ati\n"
+"POT-Creation-Date: 2011-01-26 19:02+0000\n"
+"PO-Revision-Date: 2011-02-03 17:34+0100\n"
+"Last-Translator: Mario Blättermann <mariobl@gnome.org>\n"
+"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: nl\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: ../src/bc-backends.c:81
+msgid "Built-in"
+msgstr "Ingebouwd"
+
+#: ../src/bc-backends.c:101
+msgid "POSTNET (any)"
+msgstr "POSTNET (willekeurig)"
+
+#: ../src/bc-backends.c:104
+msgid "POSTNET-5 (ZIP only)"
+msgstr "POSTNET-5 (alleen ZIP)"
+
+#: ../src/bc-backends.c:107
+msgid "POSTNET-9 (ZIP+4)"
+msgstr "POSTNET-9 (ZIP+4)"
+
+#: ../src/bc-backends.c:110
+msgid "POSTNET-11 (DPBC)"
+msgstr "POSTNET-11 (DPBC)"
+
+#: ../src/bc-backends.c:113
+msgid "CEPNET"
+msgstr "CEPNET"
+
+#: ../src/bc-backends.c:116
+msgid "One Code"
+msgstr "One Code"
+
+#: ../src/bc-backends.c:119 ../src/bc-backends.c:175 ../src/bc-backends.c:248
+msgid "Code 39"
+msgstr "Code 39"
+
+#: ../src/bc-backends.c:122 ../src/bc-backends.c:251
+msgid "Code 39 Extended"
+msgstr "Code 39 Uitgebreid"
+
+#: ../src/bc-backends.c:127
+msgid "EAN (any)"
+msgstr "EAN (willekeurig)"
+
+#: ../src/bc-backends.c:130
+msgid "EAN-8"
+msgstr "EAN-8"
+
+#: ../src/bc-backends.c:133
+msgid "EAN-8 +2"
+msgstr "EAN-8 +2"
+
+#: ../src/bc-backends.c:136
+msgid "EAN-8 +5"
+msgstr "EAN-8 +5"
+
+#: ../src/bc-backends.c:139
+msgid "EAN-13"
+msgstr "EAN-13"
+
+#: ../src/bc-backends.c:142
+msgid "EAN-13 +2"
+msgstr "EAN-13 +2"
+
+#: ../src/bc-backends.c:145
+msgid "EAN-13 +5"
+msgstr "EAN-13 +5"
+
+#: ../src/bc-backends.c:148
+msgid "UPC (UPC-A or UPC-E)"
+msgstr "UPC (UPC-A of UPC-E)"
+
+#: ../src/bc-backends.c:151 ../src/bc-backends.c:395
+msgid "UPC-A"
+msgstr "UPC-A"
+
+#: ../src/bc-backends.c:154
+msgid "UPC-A +2"
+msgstr "UPC-A +2"
+
+#: ../src/bc-backends.c:157
+msgid "UPC-A +5"
+msgstr "UPC-A +5"
+
+#: ../src/bc-backends.c:160 ../src/bc-backends.c:398
+msgid "UPC-E"
+msgstr "UPC-E"
+
+#: ../src/bc-backends.c:163
+msgid "UPC-E +2"
+msgstr "UPC-E +2"
+
+#: ../src/bc-backends.c:166
+msgid "UPC-E +5"
+msgstr "UPC-E +5"
+
+#: ../src/bc-backends.c:169 ../src/bc-backends.c:332
+msgid "ISBN"
+msgstr "ISBN"
+
+#: ../src/bc-backends.c:172
+msgid "ISBN +5"
+msgstr "ISBN +5"
+
+#: ../src/bc-backends.c:178 ../src/bc-backends.c:260
+msgid "Code 128"
+msgstr "Code 128"
+
+#: ../src/bc-backends.c:181
+msgid "Code 128C"
+msgstr "Code 128C"
+
+#: ../src/bc-backends.c:184
+msgid "Code 128B"
+msgstr "Code 128B"
+
+#: ../src/bc-backends.c:187 ../src/bc-backends.c:329
+msgid "Interleaved 2 of 5"
+msgstr "Interleaved 2 van 5"
+
+#: ../src/bc-backends.c:190 ../src/bc-backends.c:224
+msgid "Codabar"
+msgstr "Codabar"
+
+#: ../src/bc-backends.c:193
+msgid "MSI"
+msgstr "MSI"
+
+#: ../src/bc-backends.c:196
+msgid "Plessey"
+msgstr "Plessey"
+
+#: ../src/bc-backends.c:199 ../src/bc-backends.c:257
+msgid "Code 93"
+msgstr "Code 93"
+
+#: ../src/bc-backends.c:206
+msgid "Australia Post Standard"
+msgstr "Australia Post Standard"
+
+#: ../src/bc-backends.c:209
+msgid "Australia Post Reply Paid"
+msgstr "Australia Post Antwoord betaald"
+
+#: ../src/bc-backends.c:212
+msgid "Australia Post Route Code"
+msgstr "Australia Post Route Code"
+
+#: ../src/bc-backends.c:215
+msgid "Australia Post Redirect"
+msgstr "Australia Post Redirect"
+
+#: ../src/bc-backends.c:218
+msgid "Aztec Code"
+msgstr "Aztec Code"
+
+#: ../src/bc-backends.c:221
+msgid "Aztec Rune"
+msgstr "Aztec Rune"
+
+#: ../src/bc-backends.c:227
+msgid "Code One"
+msgstr "Code One"
+
+#: ../src/bc-backends.c:230
+msgid "Code 11"
+msgstr "Code 11"
+
+#: ../src/bc-backends.c:233
+msgid "Code 16K"
+msgstr "Code 16K"
+
+#: ../src/bc-backends.c:236
+msgid "Code 2 of 5 Matrix"
+msgstr "Code 2 van 5 Matrix"
+
+#: ../src/bc-backends.c:239
+msgid "Code 2 of 5 IATA"
+msgstr "Code 2 van 5 IATA"
+
+#: ../src/bc-backends.c:242
+msgid "Code 2 of 5 Data Logic"
+msgstr "Code 2 van 5 Data Logic"
+
+#: ../src/bc-backends.c:245
+msgid "Code 32 (Italian Pharmacode)"
+msgstr "Code 32 (Italiaanse Pharmacode)"
+
+#: ../src/bc-backends.c:254
+msgid "Code 49"
+msgstr "Code 49"
+
+#: ../src/bc-backends.c:263
+msgid "Code 128 (Mode C supression)"
+msgstr "Code 128 (Mode C supression)"
+
+#: ../src/bc-backends.c:266
+msgid "DAFT Code"
+msgstr "DAFT Code"
+
+#: ../src/bc-backends.c:269
+msgid "Data Matrix"
+msgstr "Data Matrix"
+
+#: ../src/bc-backends.c:272
+msgid "Deutsche Post Leitcode"
+msgstr "Deutsche Post Leitcode"
+
+#: ../src/bc-backends.c:275
+msgid "Deutsche Post Identcode"
+msgstr "Deutsche Post Identcode"
+
+#: ../src/bc-backends.c:278
+msgid "Dutch Post KIX Code"
+msgstr "Nederlandse post KIX Code"
+
+#: ../src/bc-backends.c:281
+msgid "EAN"
+msgstr "EAN"
+
+#: ../src/bc-backends.c:284
+msgid "Grid Matrix"
+msgstr "Rastermatrix"
+
+#: ../src/bc-backends.c:287
+msgid "GS1-128"
+msgstr "GS1-128"
+
+#: ../src/bc-backends.c:290
+msgid "GS1 DataBar-14"
+msgstr "GS1 DataBar-14"
+
+#: ../src/bc-backends.c:299
+msgid "GS1 DataBar-14 Stacked"
+msgstr "GS1 DataBar-14 Stacked"
+
+#: ../src/bc-backends.c:302
+msgid "GS1 DataBar-14 Stacked Omni."
+msgstr "GS1 DataBar-14 Stacked Omni."
+
+#: ../src/bc-backends.c:305
+msgid "GS1 DataBar Extended Stacked"
+msgstr "GS1 DataBar Uitgebreid Stacked"
+
+#: ../src/bc-backends.c:308
+msgid "HIBC Code 128"
+msgstr "HIBC Code 128"
+
+#: ../src/bc-backends.c:311
+msgid "HIBC Code 39"
+msgstr "HIBC Code 39"
+
+#: ../src/bc-backends.c:314
+msgid "HIBC Data Matrix"
+msgstr "HIBC Data Matrix"
+
+#: ../src/bc-backends.c:317
+msgid "HIBC QR Code"
+msgstr "HIBC QR Code"
+
+#: ../src/bc-backends.c:320
+msgid "HIBC PDF417"
+msgstr "HIBC PDF417"
+
+#: ../src/bc-backends.c:323
+msgid "HIBC Micro PDF417"
+msgstr "HIBC Micro PDF417"
+
+#: ../src/bc-backends.c:326
+msgid "HIBC Aztec Code"
+msgstr "HIBC Aztec Code"
+
+#: ../src/bc-backends.c:335
+msgid "ITF-14"
+msgstr "ITF-14"
+
+#: ../src/bc-backends.c:338
+msgid "Japanese Postal"
+msgstr "Japanse Post"
+
+#: ../src/bc-backends.c:341
+msgid "Korean Postal"
+msgstr "Koreaanse Post"
+
+#: ../src/bc-backends.c:344
+msgid "LOGMARS"
+msgstr "LOGMARS"
+
+#: ../src/bc-backends.c:347
+msgid "Maxicode"
+msgstr "Maxicode"
+
+#: ../src/bc-backends.c:350
+msgid "Micro PDF417"
+msgstr "Micro PDF417"
+
+#: ../src/bc-backends.c:353
+msgid "Micro QR Code"
+msgstr "Micro QR Code"
+
+#: ../src/bc-backends.c:356
+msgid "MSI Plessey"
+msgstr "MSI Plessey"
+
+#: ../src/bc-backends.c:359
+msgid "NVE-18"
+msgstr "NVE-18"
+
+#: ../src/bc-backends.c:362
+msgid "PDF417"
+msgstr "PDF417"
+
+#: ../src/bc-backends.c:365
+msgid "PDF417 Truncated"
+msgstr "PDF417 Truncated"
+
+#: ../src/bc-backends.c:368
+msgid "PLANET"
+msgstr "PLANET"
+
+#: ../src/bc-backends.c:371
+msgid "PostNet"
+msgstr "PostNet"
+
+#: ../src/bc-backends.c:374
+msgid "Pharmacode"
+msgstr "Pharmacode"
+
+#: ../src/bc-backends.c:377
+msgid "Pharmacode 2-track"
+msgstr "Pharmacode 2-track"
+
+#: ../src/bc-backends.c:380
+msgid "Pharmazentral Nummer (PZN)"
+msgstr "Pharmazentral Nummer (PZN)"
+
+#: ../src/bc-backends.c:383
+msgid "QR Code"
+msgstr "QR Code"
+
+#: ../src/bc-backends.c:386
+msgid "Royal Mail 4-State"
+msgstr "Royal Mail 4-State"
+
+#: ../src/bc-backends.c:389
+msgid "Telepen"
+msgstr "Telepen"
+
+#: ../src/bc-backends.c:392
+msgid "Telepen Numeric"
+msgstr "Telepen Numeriek"
+
+#: ../src/bc-backends.c:401
+msgid "USPS One Code"
+msgstr "USPS One Code"
+
+#: ../src/bc-backends.c:404
+msgid "UK Plessey"
+msgstr "UK Plessey"
+
+#: ../src/bc-backends.c:411
+msgid "IEC16022 (DataMatrix)"
+msgstr "IEC16022 (DataMatrix)"
+
+#: ../src/bc-backends.c:418
+msgid "IEC18004 (QRCode)"
+msgstr "IEC18004 (QRCode)"
+
+#: ../src/color-combo-button.c:198 ../src/color-combo.c:178
+msgid "Default Color"
+msgstr "Standaardkleur"
+
+#: ../src/color-combo-menu.c:83
+msgid "Dark Red"
+msgstr "Donkerrood"
+
+#: ../src/color-combo-menu.c:84
+msgid "Brown"
+msgstr "Bruin"
+
+#: ../src/color-combo-menu.c:85
+msgid "Dark Goldenrod"
+msgstr "Donker guldenroede"
+
+#: ../src/color-combo-menu.c:86
+msgid "Dark Green"
+msgstr "Donkergroen"
+
+#: ../src/color-combo-menu.c:87
+msgid "Dark Cyan"
+msgstr "Donker cyaan-rood"
+
+#: ../src/color-combo-menu.c:88
+msgid "Navy Blue"
+msgstr "Marineblauw"
+
+#: ../src/color-combo-menu.c:89
+msgid "Dark Violet"
+msgstr "Donkerpaars"
+
+#: ../src/color-combo-menu.c:91
+msgid "Red"
+msgstr "Rood"
+
+#: ../src/color-combo-menu.c:92
+msgid "Orange"
+msgstr "Oranje"
+
+#: ../src/color-combo-menu.c:93
+msgid "Dark Yellow"
+msgstr "Donkergeel"
+
+#: ../src/color-combo-menu.c:94
+msgid "Medium green"
+msgstr "Midden groen"
+
+#: ../src/color-combo-menu.c:95
+msgid "Turquoise"
+msgstr "Turquoise"
+
+#: ../src/color-combo-menu.c:96
+msgid "Blue"
+msgstr "Blauw"
+
+#: ../src/color-combo-menu.c:97
+msgid "Purple"
+msgstr "Paars"
+
+#: ../src/color-combo-menu.c:99
+msgid "Salmon"
+msgstr "Zalmkleurig"
+
+#: ../src/color-combo-menu.c:100
+msgid "Gold"
+msgstr "Goud"
+
+#: ../src/color-combo-menu.c:101
+msgid "Yellow"
+msgstr "Geel"
+
+#: ../src/color-combo-menu.c:102
+msgid "Green"
+msgstr "Groen"
+
+#: ../src/color-combo-menu.c:103
+msgid "Cyan"
+msgstr "Cyaan"
+
+#: ../src/color-combo-menu.c:104
+msgid "SkyBlue"
+msgstr "Hemelsblauw"
+
+#: ../src/color-combo-menu.c:105
+msgid "Violet"
+msgstr "Paars"
+
+#: ../src/color-combo-menu.c:107
+msgid "Pink"
+msgstr "Roze"
+
+#: ../src/color-combo-menu.c:108
+msgid "Khaki"
+msgstr "Khaki"
+
+#: ../src/color-combo-menu.c:109
+msgid "Light Yellow"
+msgstr "Lichtgeel"
+
+#: ../src/color-combo-menu.c:110
+msgid "Light Green"
+msgstr "Lichtgroen"
+
+#: ../src/color-combo-menu.c:111
+msgid "Light Cyan"
+msgstr "Licht cyaan"
+
+#: ../src/color-combo-menu.c:112
+msgid "Slate Gray"
+msgstr "Leigrijs"
+
+#: ../src/color-combo-menu.c:113
+msgid "Thistle"
+msgstr "Lichtpaars"
+
+#: ../src/color-combo-menu.c:115
+msgid "White"
+msgstr "Wit"
+
+#: ../src/color-combo-menu.c:117
+#, no-c-format
+msgid "10% Gray"
+msgstr "10% grijs"
+
+#: ../src/color-combo-menu.c:119
+#, no-c-format
+msgid "25% Gray"
+msgstr "25% grijs"
+
+#: ../src/color-combo-menu.c:121
+#, no-c-format
+msgid "40% Gray"
+msgstr "40% grijs"
+
+#: ../src/color-combo-menu.c:123
+#, no-c-format
+msgid "50% Gray"
+msgstr "50% grijs"
+
+#: ../src/color-combo-menu.c:125
+#, no-c-format
+msgid "60% Gray"
+msgstr "60% grijs"
+
+#: ../src/color-combo-menu.c:126
+msgid "Black"
+msgstr "Zwart"
+
+#: ../src/color-combo-menu.c:254 ../src/color-combo-menu.c:373
+msgid "Custom Color"
+msgstr "Aangepaste kleur"
+
+#: ../src/color-combo-menu.c:319
+#, c-format
+msgid "Custom Color #%u"
+msgstr "Aangepaste kleur #%u"
+
+#: ../src/critical-error-handler.c:70
+msgid "gLabels Fatal Error!"
+msgstr "Fatale fout in gLabels"
+
+#: ../src/file.c:84
+msgid "New Label or Card"
+msgstr "Nieuw label of kaart"
+
+#: ../src/file.c:175 ../src/label.c:601 ../src/label.c:645
+msgid "Label properties"
+msgstr "Label-eigenschappen"
+
+#: ../src/file.c:267 ../src/file.c:557
+msgid "All files"
+msgstr "Alle bestanden"
+
+#: ../src/file.c:272 ../src/file.c:562
+msgid "gLabels documents"
+msgstr "gLabels documenten"
+
+#: ../src/file.c:319 ../src/file.c:620
+msgid "Empty file name selection"
+msgstr "Lege bestandsnaam"
+
+#: ../src/file.c:322 ../src/file.c:338
+msgid "Please select a file or supply a valid file name"
+msgstr "Selecteer een bestand of voer een geldige bestandsnaam in"
+
+#: ../src/file.c:335
+msgid "File does not exist"
+msgstr "Bestand bestaat niet"
+
+#: ../src/file.c:410
+#, c-format
+msgid "Could not open file \"%s\""
+msgstr "Kan bestand \"%s\" niet openen"
+
+#: ../src/file.c:413
+msgid "Not a supported file format"
+msgstr "Bestand niet in ondersteund formaat"
+
+#: ../src/file.c:491 ../src/file.c:670
+#, c-format
+msgid "Could not save file \"%s\""
+msgstr "Kan het bestand ‘%s’ niet opslaan"
+
+#: ../src/file.c:495 ../src/file.c:674
+msgid "Error encountered during save.  The file is still not saved."
+msgstr ""
+"Tijdens opslaan is een fout opgetreden. Het bestand werd nog niet opgeslaan."
+
+#: ../src/file.c:535
+#, c-format
+msgid "Save \"%s\" as"
+msgstr "\"%s\" opslaan als"
+
+#: ../src/file.c:623
+msgid "Please supply a valid file name"
+msgstr "Geef een geldige bestandsnaam op"
+
+#: ../src/file.c:644
+#, c-format
+msgid "Overwrite file \"%s\"?"
+msgstr "Bestand \"%s\" overschrijven?"
+
+#: ../src/file.c:648
+msgid "File already exists."
+msgstr "Bestand bestaat al."
+
+#: ../src/file.c:744
+#, c-format
+msgid "Save changes to document \"%s\" before closing?"
+msgstr "Wijzigingen in document \"%s\" opslaan voor sluiten?"
+
+#: ../src/file.c:748
+msgid "Your changes will be lost if you don't save them."
+msgstr "Als u niet opslaat, gaan alle wijzingen verloren."
+
+#: ../src/file.c:751
+msgid "Close without saving"
+msgstr "Sluiten zonder opslaan"
+
+#: ../src/font-combo-menu.c:137
+msgid "Recent fonts"
+msgstr "Recente lettertypen"
+
+#: ../src/font-combo-menu.c:152
+msgid "Proportional fonts"
+msgstr "Proportionale lettertypen"
+
+#: ../src/font-combo-menu.c:160
+msgid "Fixed-width fonts"
+msgstr "Vaste-breedte-lettertypen"
+
+#: ../src/font-combo-menu.c:168
+msgid "All fonts"
+msgstr "Alle lettertypen"
+
+#.
+#. * Allow text samples to be localized.
+#. *
+#. * FIXME: if we could extract enough meta information from the fonts
+#. * themselves, perhaps rather than setting these globally for the
+#. * current locale, they could be unique to each font family.
+#.
+#: ../src/font-combo-menu-item.c:132
+msgctxt "Short sample text"
+msgid "Aa"
+msgstr "Aa"
+
+#: ../src/font-combo-menu-item.c:134
+msgctxt "Lower case sample text"
+msgid "abcdefghijklmnopqrstuvwxyz"
+msgstr "abcdefghijklmnopqrstuvwxyz"
+
+#: ../src/font-combo-menu-item.c:136
+msgctxt "Upper case sample text"
+msgid "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
+#: ../src/font-combo-menu-item.c:138
+msgctxt "Numbers and special characters sample text"
+msgid "0123456789 .:,;(*!?)"
+msgstr "0123456789 .:,;(*!?)"
+
+#: ../src/font-combo-menu-item.c:157
+msgid "Sample text"
+msgstr "Voorbeeldtekst"
+
+#: ../src/glabels-batch.c:53
+msgid "set output filename (default=\"output.pdf\")"
+msgstr "stel uitvoerbestandsnaam in (standaard=\"output.pdf\")"
+
+#: ../src/glabels-batch.c:53 ../src/glabels-batch.c:67
+msgid "filename"
+msgstr "bestandsnaam"
+
+#: ../src/glabels-batch.c:55
+msgid "number of sheets (default=1)"
+msgstr "Aantal bladen (standaard=1)"
+
+#: ../src/glabels-batch.c:55
+msgid "sheets"
+msgstr "bladen"
+
+#: ../src/glabels-batch.c:57
+msgid "number of copies (default=1)"
+msgstr "Aantal kopieën (standaard=1)"
+
+#: ../src/glabels-batch.c:57
+msgid "copies"
+msgstr "kopieën"
+
+#: ../src/glabels-batch.c:59
+msgid "first label on first sheet (default=1)"
+msgstr "Eerste label op het eerste blad (standaard=1)"
+
+#: ../src/glabels-batch.c:59
+msgid "first"
+msgstr "eerste"
+
+#: ../src/glabels-batch.c:61 ../data/ui/print-op-dialog-custom-widget.ui.h:13
+msgid "print outlines (to test printer alignment)"
+msgstr "Contouren afrukken (om uitlijning van de printer te testen)"
+
+#: ../src/glabels-batch.c:63 ../data/ui/print-op-dialog-custom-widget.ui.h:12
+msgid "print in reverse (i.e. a mirror image)"
+msgstr "achteruit printen (d.w.z. in spiegelbeeld)"
+
+#: ../src/glabels-batch.c:65 ../data/ui/print-op-dialog-custom-widget.ui.h:11
+msgid "print crop marks"
+msgstr "Snijmarkeringen printen"
+
+#: ../src/glabels-batch.c:67
+msgid "input file for merging"
+msgstr "invoerbestand voor samenvoegen"
+
+#: ../src/glabels-batch.c:69 ../src/glabels.c:63
+msgid "[FILE...]"
+msgstr "[BESTAND…]"
+
+#: ../src/glabels-batch.c:99
+msgid "Print files created with gLabels."
+msgstr "Met gLabels aangemaakte bestanden afdrukken."
+
+#: ../src/glabels-batch.c:107 ../src/glabels.c:87
+#, c-format
+msgid ""
+"%s\n"
+"Run '%s --help' to see a full list of available command line options.\n"
+msgstr ""
+"%s\n"
+"Voer ‘%s --help’ uit voor een lijst van beschikbare opties.\n"
+
+#: ../src/glabels-batch.c:151
+#, c-format
+msgid "cannot perform document merge with glabels file %s\n"
+msgstr "kan documentsamenvoeging met glabelsbestand %s niet uitvoeren\n"
+
+#: ../src/glabels-batch.c:186
+#, c-format
+msgid "cannot open glabels file %s\n"
+msgstr "Kan het gLabels-bestand %s niet openen\n"
+
+#: ../src/glabels.c:79
+msgid "Launch gLabels label and business card designer."
+msgstr "Start gLabel's etiketten- en visitekaartjesontwerpprogramma."
+
+#: ../src/label-barcode.c:183 ../src/ui.c:317
+msgid "Create barcode object"
+msgstr "Streepjescode-object aanmaken"
+
+#: ../src/label-barcode.c:259 ../src/label-barcode.c:461
+msgid "Barcode data"
+msgstr "Streepjescodedata"
+
+#: ../src/label-barcode.c:290
+msgid "Barcode property"
+msgstr "Eigenschap-streepjescode"
+
+#: ../src/label-barcode.c:684
+msgid "Barcode data empty"
+msgstr "Streepjescode-data is leeg"
+
+#: ../src/label-barcode.c:688
+msgid "Invalid barcode data"
+msgstr "Ongeldige streepjescode-data"
+
+#: ../src/label-box.c:156
+msgid "Create box object"
+msgstr "Blok-object aanmaken"
+
+#: ../src/label-box.c:230 ../src/label-ellipse.c:232
+#: ../data/ui/property-bar.ui.h:3
+msgid "Fill color"
+msgstr "Vulkleur"
+
+#: ../src/label-box.c:261 ../src/label-ellipse.c:261 ../src/label-line.c:212
+#: ../data/ui/property-bar.ui.h:8
+msgid "Line color"
+msgstr "Lijn kleur"
+
+#: ../src/label-box.c:289 ../src/label-ellipse.c:290 ../src/label-line.c:241
+#: ../data/ui/property-bar.ui.h:9
+msgid "Line width"
+msgstr "Lijn breedte"
+
+#: ../src/label.c:405
+msgid "Untitled"
+msgstr "Naamloos"
+
+#: ../src/label.c:719 ../src/ui.c:420
+msgid "Merge properties"
+msgstr "Eigenschappen samenvoegen"
+
+#: ../src/label.c:1215 ../src/ui.c:213
+msgid "Delete"
+msgstr "Verwijderen"
+
+#: ../src/label.c:1248 ../src/ui.c:322
+msgid "Bring to front"
+msgstr "Plaats vooraan"
+
+#: ../src/label.c:1284 ../src/ui.c:329
+msgid "Send to back"
+msgstr "Plaats achteraan"
+
+#: ../src/label.c:1325
+msgid "Rotate"
+msgstr "Roteren"
+
+#: ../src/label.c:1360 ../src/ui.c:336
+msgid "Rotate left"
+msgstr "Roteer naar links"
+
+#: ../src/label.c:1393 ../src/ui.c:343
+msgid "Rotate right"
+msgstr "Roteer naar rechts"
+
+#: ../src/label.c:1428 ../src/ui.c:350
+msgid "Flip horizontally"
+msgstr "Horizontaal spiegelen"
+
+#: ../src/label.c:1463 ../src/ui.c:357
+msgid "Flip vertically"
+msgstr "Verticaal spiegelen"
+
+#: ../src/label.c:1503 ../src/ui.c:364
+msgid "Align left"
+msgstr "Links uitlijnen"
+
+#: ../src/label.c:1560 ../src/ui.c:371
+msgid "Align right"
+msgstr "Rechts uitlijnen"
+
+#: ../src/label.c:1621 ../src/ui.c:378
+msgid "Align horizontal center"
+msgstr "Horizontaal midden van object uitlijnen"
+
+#: ../src/label.c:1697 ../src/ui.c:385
+msgid "Align tops"
+msgstr "Boven uitlijnen"
+
+#: ../src/label.c:1754 ../src/ui.c:392
+msgid "Align bottoms"
+msgstr "Onder uitlijnen"
+
+#: ../src/label.c:1815 ../src/ui.c:399
+msgid "Align vertical center"
+msgstr "Verticaal midden van object uitlijnen"
+
+#: ../src/label.c:1893 ../src/ui.c:406
+msgid "Center horizontally"
+msgstr "Horizontaal centreren"
+
+#: ../src/label.c:1940 ../src/ui.c:413
+msgid "Center vertically"
+msgstr "Verticaal centreren"
+
+#: ../src/label.c:2628 ../src/label.c:2670 ../src/label.c:2696 ../src/ui.c:206
+msgid "Paste"
+msgstr "Plakken"
+
+#: ../src/label-ellipse.c:160
+msgid "Create ellipse object"
+msgstr "Ellips-object aanmaken"
+
+#: ../src/label-image.c:200 ../src/ui.c:310
+msgid "Create image object"
+msgstr "Beeld-object aanmaken"
+
+#: ../src/label-image.c:333 ../src/label-image.c:474
+msgid "Set image"
+msgstr "Beeld instellen"
+
+#: ../src/label-line.c:147 ../src/ui.c:296
+msgid "Create line object"
+msgstr "Lijn-object aanmaken"
+
+#: ../src/label-object.c:394 ../src/label-object.c:428
+msgid "Move"
+msgstr "Verplaatsen"
+
+#: ../src/label-object.c:479
+msgid "Resize"
+msgstr "Schalen"
+
+#: ../src/label-object.c:1217
+msgid "Shadow state"
+msgstr "Schaduwstatus"
+
+#: ../src/label-object.c:1260
+msgid "Shadow offset"
+msgstr "Schaduwverschuiving"
+
+#: ../src/label-object.c:1308
+msgid "Shadow color"
+msgstr "Schaduwkleur"
+
+#: ../src/label-object.c:1351
+msgid "Shadow opacity"
+msgstr "Schaduw ondoorzichtigheid"
+
+#: ../src/label-text.c:281 ../src/ui.c:282
+msgid "Create text object"
+msgstr "Tekst-object aanmaken"
+
+#: ../src/label-text.c:453
+msgid "Typing"
+msgstr "Typen"
+
+#: ../src/label-text.c:586 ../data/ui/property-bar.ui.h:4
+msgid "Font family"
+msgstr "Lettertypefamilie"
+
+#: ../src/label-text.c:624 ../data/ui/property-bar.ui.h:5
+msgid "Font size"
+msgstr "Lettergrootte"
+
+#: ../src/label-text.c:657
+msgid "Font weight"
+msgstr "Letterdikte"
+
+#: ../src/label-text.c:690 ../data/ui/property-bar.ui.h:6
+msgid "Italic"
+msgstr "Cursief"
+
+#: ../src/label-text.c:723
+msgid "Align text"
+msgstr "Tekst uitlijnen"
+
+#: ../src/label-text.c:756
+msgid "Line spacing"
+msgstr "Regelafstand"
+
+#: ../src/label-text.c:789 ../data/ui/property-bar.ui.h:11
+msgid "Text color"
+msgstr "Tekstkleur"
+
+#: ../src/label-text.c:933
+msgid "Auto shrink"
+msgstr "Automatisch krimpen"
+
+#: ../src/media-select.c:358 ../src/media-select.c:361
+#: ../src/media-select.c:506 ../src/media-select.c:723
+msgctxt "Brand"
+msgid "Any"
+msgstr "Willekeurig"
+
+#: ../src/media-select.c:365 ../src/media-select.c:893
+msgctxt "Page size"
+msgid "Any"
+msgstr "Willekeurig"
+
+#: ../src/media-select.c:372 ../src/media-select.c:375
+#: ../src/media-select.c:902
+msgctxt "Category"
+msgid "Any"
+msgstr "Willekeurig"
+
+#: ../src/media-select.c:648
+#, c-format
+msgid "Delete template \"%s\"?"
+msgstr "Sjabloon \"%s\" verwijderen?"
+
+#: ../src/media-select.c:650
+msgid "This action will permanently delete this template."
+msgstr "Met deze actie wordt dit sjabloon definitief verwijderd."
+
+#: ../src/media-select.c:990
+msgid "No recent templates found."
+msgstr "Geen recente sjablonen gevonden."
+
+#: ../src/media-select.c:992
+msgid "Try selecting a template in the \"Search all\" tab."
+msgstr ""
+"Probeer een sjabloon te selecteren in het tabblad \"Alles doorzoeken\"."
+
+#. Translators: "No match" means that for the given template search criteria, there
+#. * were no matches found.
+#: ../src/media-select.c:1083
+msgid "No match."
+msgstr "Geen overeenkomst."
+
+#: ../src/media-select.c:1085
+msgid "Try selecting a different brand, page size or category."
+msgstr "Probeer een ander merk, paginagrootte of categorie te selecteren."
+
+#: ../src/media-select.c:1179
+msgid "No custom templates found."
+msgstr "Geen aangepaste sjablonen gevonden."
+
+#: ../src/media-select.c:1181
+msgid ""
+"You may create new templates or try searching for pre-defined templates in "
+"the \"Search all\" tab."
+msgstr ""
+"U kunt nieuwe sjablonen aanmaken of zoeken naar vooraf gedefineerde "
+"sjablonen in het tabblad \"Alles doorzoeken\"."
+
+#. Translators: "None" here means that no document-merge source or
+#. * method has been selected.
+#: ../src/merge.c:171 ../src/merge.c:212 ../src/merge.c:376 ../src/merge.c:379
+msgid "None"
+msgstr "Geen"
+
+#: ../src/merge-init.c:57
+msgid "Text: Comma Separated Values (CSV)"
+msgstr "Tekst: Waarden gescheiden door komma's (CSV)"
+
+#: ../src/merge-init.c:64
+msgid "Text: Comma Separated Values (CSV) with keys on line 1"
+msgstr "Tekst: Waarden gescheiden door komma's (CSV) met sleutels in lijn 1"
+
+#: ../src/merge-init.c:72
+msgid "Text: Tab Separated Values (TSV)"
+msgstr "Waarden gescheiden door tabs (TSV)"
+
+#: ../src/merge-init.c:79
+msgid "Text: Tab Separated Values (TSV) with keys on line 1"
+msgstr "Tekst: Waarden gescheiden door tabs (TSV) met sleutels in lijn 1"
+
+#: ../src/merge-init.c:87
+msgid "Text: Colon separated values"
+msgstr "Tekst: Waarden gescheiden door dubbele punten"
+
+#: ../src/merge-init.c:94
+msgid "Text: Colon separated values with keys on line 1"
+msgstr "Tekst: Waarden gescheiden door dubbele punten met sleutels in lijn 1"
+
+#: ../src/merge-init.c:102
+msgid "Text: Semicolon separated values"
+msgstr "Tekst: Waarden gescheiden door puntkomma's"
+
+#: ../src/merge-init.c:109
+msgid "Text: Semicolon separated values with keys on line 1"
+msgstr "Tekst: Waarden gescheiden door puntkomma's met sleutels in lijn 1"
+
+#: ../src/merge-init.c:119
+msgid "Evolution Addressbook"
+msgstr "Evolution adresboek"
+
+#: ../src/merge-init.c:125
+msgid "VCards"
+msgstr "VCards"
+
+#: ../src/merge-properties-dialog.c:280
+msgid "Merge Properties"
+msgstr "Eigenschappen samenvoegen"
+
+#: ../src/merge-properties-dialog.c:304 ../src/merge-properties-dialog.c:420
+msgid "Select merge-database source"
+msgstr "Bron samenvoegdatabase selecteren"
+
+#: ../src/merge-properties-dialog.c:315 ../src/merge-properties-dialog.c:446
+msgid "N/A"
+msgstr "N/A"
+
+#: ../src/merge-properties-dialog.c:341
+msgid "Select"
+msgstr "Selecteren"
+
+#: ../src/merge-properties-dialog.c:348
+msgid "Record/Field"
+msgstr "Record/Veld"
+
+#: ../src/merge-properties-dialog.c:356 ../data/ui/object-editor.ui.h:10
+msgid "Data"
+msgstr "Data"
+
+#. Translators: "Fixed" here means that for the given document-merge method, there are
+#. * no further choices to further define the source of data.  E.g. if you select the
+#. * evolution-data-server, there are no further choices -- the source is "Fixed."
+#.
+#: ../src/merge-properties-dialog.c:439
+msgid "Fixed"
+msgstr "Vast"
+
+#. Translators: "Up" refers to the direction towards the top of a label.
+#: ../src/mini-preview.c:1054
+msgid "Up"
+msgstr "Omhoog"
+
+#: ../src/new-label-dialog.c:203
+msgid "Select Product"
+msgstr "Product kiezen"
+
+#: ../src/new-label-dialog.c:215
+msgid "Choose Orientation"
+msgstr "Oriëntatie kiezen"
+
+#: ../src/new-label-dialog.c:229
+msgid "Review"
+msgstr "Beoordelen"
+
+#: ../src/object-editor-bc-page.c:97 ../src/object-editor-shadow-page.c:93
+#: ../src/object-editor-text-page.c:97 ../src/prefs-dialog.c:335
+#: ../src/ui-property-bar.c:277
+msgid "Default"
+msgstr "Standaard"
+
+#: ../src/object-editor.c:161 ../src/object-editor.c:470
+msgid "Object properties"
+msgstr "Object eigenschappen"
+
+#: ../src/object-editor.c:314
+msgid "Box object properties"
+msgstr "Eigenschappen van blok-object"
+
+#: ../src/object-editor.c:333
+msgid "Ellipse object properties"
+msgstr "Eigenschappen van ellips-object"
+
+#: ../src/object-editor.c:352
+msgid "Line object properties"
+msgstr "Eigenschappen van lijn-object"
+
+#: ../src/object-editor.c:369
+msgid "Image object properties"
+msgstr "Eigenschappen van beeld-object"
+
+#: ../src/object-editor.c:386
+msgid "Text object properties"
+msgstr "Eigenschappen van tekst-object"
+
+#: ../src/object-editor.c:408
+msgid "Barcode object properties"
+msgstr "Eigenschappen van streepjescode-object"
+
+#: ../src/object-editor-edit-page.c:76
+msgid "Insert merge field"
+msgstr "Samenvoegveld invoegen"
+
+#: ../src/object-editor-fill-page.c:79 ../src/prefs-dialog.c:341
+#: ../src/ui-property-bar.c:287
+msgid "No Fill"
+msgstr "Niet vullen"
+
+#: ../src/object-editor-image-page.c:302
+msgid "All Files"
+msgstr "Alle bestanden"
+
+#: ../src/object-editor-image-page.c:307
+msgid "All Images"
+msgstr "Alle afbeeldingen"
+
+#: ../src/object-editor-image-page.c:323
+#, c-format
+msgid "%s (*.%s)"
+msgstr "%s (*.%s)"
+
+#: ../src/object-editor-line-page.c:79 ../src/prefs-dialog.c:338
+#: ../src/ui-property-bar.c:297
+msgid "No Line"
+msgstr "Geen lijn"
+
+#: ../src/object-editor-size-page.c:89
+msgid "Lock aspect ratio."
+msgstr "Beeldverhouding vastzetten."
+
+#: ../src/prefs-dialog.c:168 ../data/ui/prefs-dialog.ui.h:21
+msgid "gLabels Preferences"
+msgstr "gLabels-voorkeuren"
+
+#. TODO: Is this the actual part #?
+#: ../src/print-op.c:205 ../src/print-op-dialog.c:215
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:4
+#: ../templates/misc-iso-templates.xml.h:24
+msgid "Labels"
+msgstr "Labels"
+
+#: ../src/template-designer.c:429
+msgid "New gLabels Template"
+msgstr "Nieuwe gLabels-sjabloon"
+
+#: ../src/template-designer.c:487
+msgid "Welcome"
+msgstr "Welkom"
+
+#: ../src/template-designer.c:526
+msgid "Name and Description"
+msgstr "Beschrijving en naam"
+
+#: ../src/template-designer.c:575
+msgid "Page Size"
+msgstr "Pagina-afmeting"
+
+#: ../src/template-designer.c:642
+msgid "Label or Card Shape"
+msgstr "Vorm van label of kaart"
+
+#: ../src/template-designer.c:689 ../src/template-designer.c:790
+msgid "Label or Card Size"
+msgstr "Grootte van label of kaart"
+
+#: ../src/template-designer.c:873
+msgid "Label Size (round)"
+msgstr "Labelgrootte (rond)"
+
+#: ../src/template-designer.c:954
+msgid "Label Size (CD/DVD)"
+msgstr "Labelgrootte (CD/DVD)"
+
+#: ../src/template-designer.c:1045
+msgid "Number of Layouts"
+msgstr "Aantal layouts"
+
+#: ../src/template-designer.c:1113
+msgid "Layout(s)"
+msgstr "Lay-out(s)"
+
+#: ../src/template-designer.c:1218
+msgid "Design Completed"
+msgstr "Aanmaken voltooid"
+
+#: ../src/template-designer.c:1246
+msgid "Edit gLabels Template"
+msgstr "gLabels-sjabloon bewerken"
+
+#: ../src/template-designer.c:1549
+msgid "Brand and part# match an existing template!"
+msgstr "Voor deze merk en bestelnummer is er al een sjabloon!"
+
+#. Menu entries.
+#: ../src/ui.c:91
+msgid "_File"
+msgstr "_Bestand"
+
+#: ../src/ui.c:92
+msgid "Open Recent _Files"
+msgstr "_Recent bestanden openen"
+
+#: ../src/ui.c:93
+msgid "_Edit"
+msgstr "Be_werken"
+
+#: ../src/ui.c:94
+msgid "_View"
+msgstr "Beel_d"
+
+#: ../src/ui.c:95
+msgid "Customize Main Toolbar"
+msgstr "Hoofdwerkbalk aanpassen"
+
+#: ../src/ui.c:96
+msgid "Customize Drawing Toolbar"
+msgstr "Tekenwerkbalk aanpassen"
+
+#: ../src/ui.c:97
+msgid "Customize Properties Toolbar"
+msgstr "Eigenschappen-werkbalk aanpassen"
+
+#: ../src/ui.c:98
+msgid "_Objects"
+msgstr "_Objecten"
+
+#: ../src/ui.c:99
+msgid "_Create"
+msgstr "_Aanmaken"
+
+#: ../src/ui.c:100
+msgid "_Order"
+msgstr "Volg_orde"
+
+#: ../src/ui.c:101
+msgid "_Rotate/Flip"
+msgstr "_Roteren/Spiegelen"
+
+#: ../src/ui.c:102
+msgid "Align _Horizontal"
+msgstr "_Horizontaal uitlijnen"
+
+#: ../src/ui.c:103
+msgid "Align _Vertical"
+msgstr "_Verticaal uitlijnen"
+
+#: ../src/ui.c:104
+msgid "_Help"
+msgstr "_Hulp"
+
+#. Popup entries.
+#: ../src/ui.c:107 ../src/ui.c:108
+msgid "Context Menu"
+msgstr "Contextmenu"
+
+#: ../src/ui.c:113
+msgid "_New"
+msgstr "_Nieuw"
+
+#: ../src/ui.c:115
+msgid "Create a new file"
+msgstr "Nieuw bestand aanmaken"
+
+#: ../src/ui.c:120
+msgid "_Open..."
+msgstr "_Open..."
+
+#: ../src/ui.c:122
+msgid "Open a file"
+msgstr "Bestand openen"
+
+#: ../src/ui.c:127
+msgid "_Save"
+msgstr "Op_slaan"
+
+#: ../src/ui.c:129
+msgid "Save current file"
+msgstr "Huidig bestand opslaan"
+
+#: ../src/ui.c:134
+msgid "Save _As..."
+msgstr "Opslaan _als..."
+
+#: ../src/ui.c:136
+msgid "Save the current file to a different name"
+msgstr "Het huidige bestand opslaan onder een andere naam"
+
+#: ../src/ui.c:141
+msgid "_Print..."
+msgstr "Af_drukken..."
+
+#: ../src/ui.c:143
+msgid "Print the current file"
+msgstr "Het huidige bestand afdrukken"
+
+#: ../src/ui.c:148
+msgid "Properties..."
+msgstr "Eigenschappen..."
+
+#: ../src/ui.c:150
+msgid "Modify document properties"
+msgstr "Eigenschappen van het document wijzigen"
+
+#: ../src/ui.c:155
+msgid "Template _Designer..."
+msgstr "Sjabloon-_Designer..."
+
+#: ../src/ui.c:157
+msgid "Create a custom template"
+msgstr "Nieuwe sjabloon aanmaken"
+
+#: ../src/ui.c:162
+msgid "_Close"
+msgstr "Sl_uiten"
+
+#: ../src/ui.c:164
+msgid "Close the current file"
+msgstr "Het huidige bestand sluiten"
+
+#: ../src/ui.c:169
+msgid "_Quit"
+msgstr "_Afsluiten"
+
+#: ../src/ui.c:171
+msgid "Quit the program"
+msgstr "Het programma afsluiten"
+
+#: ../src/ui.c:178 ../src/ui.c:180 ../src/ui.c:965
+msgid "Undo"
+msgstr "Ongedaan maken"
+
+#: ../src/ui.c:185 ../src/ui.c:187 ../src/ui.c:972
+msgid "Redo"
+msgstr "Opnieuw"
+
+#: ../src/ui.c:192
+msgid "Cut"
+msgstr "Knippen"
+
+#: ../src/ui.c:194
+msgid "Cut the selection"
+msgstr "De selectie knippen"
+
+#: ../src/ui.c:199
+msgid "Copy"
+msgstr "Kopiëren"
+
+#: ../src/ui.c:201
+msgid "Copy the selection"
+msgstr "De selectie kopiëren"
+
+#: ../src/ui.c:208
+msgid "Paste the clipboard"
+msgstr "Het klembord plakken"
+
+#: ../src/ui.c:215
+msgid "Delete the selected objects"
+msgstr "Geselecteerde objecten verwijderen"
+
+#: ../src/ui.c:220
+msgid "Select All"
+msgstr "Alles selecteren"
+
+#: ../src/ui.c:222
+msgid "Select all objects"
+msgstr "Alle objecten selecteren"
+
+#: ../src/ui.c:227
+msgid "Un-select All"
+msgstr "Alles deselecteren"
+
+#: ../src/ui.c:229
+msgid "Remove all selections"
+msgstr "Alle selecties verwijderen"
+
+#: ../src/ui.c:234
+msgid "Preferences"
+msgstr "Voorkeuren"
+
+#: ../src/ui.c:236
+msgid "Configure the application"
+msgstr "Toepassing configureren"
+
+#: ../src/ui.c:243
+msgid "Zoom in"
+msgstr "Inzoomen"
+
+#: ../src/ui.c:245
+msgid "Increase magnification"
+msgstr "Vergroten"
+
+#: ../src/ui.c:250
+msgid "Zoom out"
+msgstr "Uitzoomen"
+
+#: ../src/ui.c:252
+msgid "Decrease magnification"
+msgstr "Verkleinen"
+
+#: ../src/ui.c:257
+msgid "Zoom 1 to 1"
+msgstr "Zoom 1-1"
+
+#: ../src/ui.c:259
+msgid "Restore scale to 100%"
+msgstr "100% zoomen"
+
+#: ../src/ui.c:264
+msgid "Zoom to fit"
+msgstr "Zoomen tot venstergrootte"
+
+#: ../src/ui.c:266
+msgid "Set scale to fit window"
+msgstr "Inpassen in venster"
+
+#: ../src/ui.c:273
+msgid "Select Mode"
+msgstr "Modus kiezen"
+
+#: ../src/ui.c:275
+msgid "Select, move and modify objects"
+msgstr "Objecten selecteren, bewegen en veranderen"
+
+#: ../src/ui.c:280 ../src/view-text.c:94 ../data/ui/object-editor.ui.h:30
+#: ../data/ui/prefs-dialog.ui.h:17
+msgid "Text"
+msgstr "Tekst"
+
+#: ../src/ui.c:287
+msgid "Box"
+msgstr "Blok"
+
+#: ../src/ui.c:289
+msgid "Create box/rectangle object"
+msgstr "Blok-object aanmaken"
+
+#: ../src/ui.c:294 ../data/ui/object-editor.ui.h:19
+#: ../data/ui/prefs-dialog.ui.h:9
+msgid "Line"
+msgstr "Lijn"
+
+#: ../src/ui.c:301
+msgid "Ellipse"
+msgstr "Ellips"
+
+#: ../src/ui.c:303
+msgid "Create ellipse/circle object"
+msgstr "Ellips/circle-object aanmaken"
+
+#: ../src/ui.c:308 ../data/ui/object-editor.ui.h:16
+msgid "Image"
+msgstr "Afbeelding"
+
+#: ../src/ui.c:315
+msgid "Barcode"
+msgstr "Streepjescode"
+
+#: ../src/ui.c:324
+msgid "Raise object to top"
+msgstr "Object helemaal bovenaan"
+
+#: ../src/ui.c:331
+msgid "Lower object to bottom"
+msgstr "Object helemaal onderaan"
+
+#: ../src/ui.c:338
+msgid "Rotate object 90 degrees counter-clockwise"
+msgstr "Object 90 graden tegen de klok in draaien"
+
+#: ../src/ui.c:345
+msgid "Rotate object 90 degrees clockwise"
+msgstr "Object 90 graden met de klok mee draaien"
+
+#: ../src/ui.c:352
+msgid "Flip object horizontally"
+msgstr "Object horizontaal spiegelen"
+
+#: ../src/ui.c:359
+msgid "Flip object vertically"
+msgstr "Object verticaal spiegelen"
+
+#: ../src/ui.c:366
+msgid "Align objects to left edges"
+msgstr "Objecten aan het linkerrand uitlijnen"
+
+#: ../src/ui.c:373
+msgid "Align objects to right edges"
+msgstr "Objecten aan het rechterrand uitlijnen"
+
+#: ../src/ui.c:380
+msgid "Align objects to horizontal centers"
+msgstr "Objecten horizontaal in het midden uitlijnen"
+
+#: ../src/ui.c:387
+msgid "Align objects to top edges"
+msgstr "Objecten aan de bovenrand uitlijnen"
+
+#: ../src/ui.c:394
+msgid "Align objects to bottom edges"
+msgstr "Objecten aan de onderrand uitlijnen"
+
+#: ../src/ui.c:401
+msgid "Align objects to vertical centers"
+msgstr "Objecten verticaal in het midden uitlijnen"
+
+#: ../src/ui.c:408
+msgid "Center objects to horizontal label center"
+msgstr "Objecten horizontaal in het midden van etiket centreren"
+
+#: ../src/ui.c:415
+msgid "Center objects to vertical label center"
+msgstr "Objecten verticaal in het midden van etiket centreren"
+
+#: ../src/ui.c:422
+msgid "Edit merge properties"
+msgstr "Samenvoegeigenschappen bewerken"
+
+#: ../src/ui.c:429
+msgid "Contents"
+msgstr "Inhoud"
+
+#: ../src/ui.c:431
+msgid "Open glabels manual"
+msgstr "De gLabels-handleiding openen"
+
+#: ../src/ui.c:436
+msgid "About..."
+msgstr "Info"
+
+#: ../src/ui.c:438 ../src/ui-commands.c:1198
+msgid "About glabels"
+msgstr "Info over glabels"
+
+#: ../src/ui.c:448
+msgid "Property toolbar"
+msgstr "Eigenschap-werkbalk"
+
+#: ../src/ui.c:450
+msgid "Change the visibility of the property toolbar in the current window"
+msgstr "De eigenschappen-werkbalk in het huidige venster tonen/verbergen"
+
+#: ../src/ui.c:456
+msgid "Grid"
+msgstr "Rooster"
+
+#: ../src/ui.c:458
+msgid "Change the visibility of the grid in the current window"
+msgstr "De rooster in het huidige venster tonen/verbergen"
+
+#: ../src/ui.c:464
+msgid "Markup"
+msgstr "Markering"
+
+#: ../src/ui.c:466
+msgid "Change the visibility of markup lines in the current window"
+msgstr "De zichtbaarheid van ? in het huidige venster tonen/verbergen"
+
+#: ../src/ui.c:477
+msgid "Main toolbar"
+msgstr "Hoofdwerkbalk"
+
+#: ../src/ui.c:479
+msgid "Change the visibility of the main toolbar in the current window"
+msgstr "De hoofdwerkbalk in het huidige venster tonen/verbergen"
+
+#: ../src/ui.c:485
+msgid "Drawing toolbar"
+msgstr "Werkbalk tonen"
+
+#: ../src/ui.c:487
+msgid "Change the visibility of the drawing toolbar in the current window"
+msgstr "De zichtbaarheid van ?-werkbalk in het huidige venster tonen/verbergen"
+
+#: ../src/ui-commands.c:1135
+msgid "Glabels includes contributions from:"
+msgstr "Glabels bevat bijdragen van:"
+
+#: ../src/ui-commands.c:1144
+msgid "See the file AUTHORS for additional credits,"
+msgstr "Kijk in het bestand AUTHORS voor de volledige credits"
+
+#: ../src/ui-commands.c:1145
+msgid "or visit http://glabels.org/"
+msgstr "of kijk op http://glabels.org/"
+
+#: ../src/ui-commands.c:1162
+msgid "A label and business card creation program.\n"
+msgstr "Een programma voor het aanmaken van etiketten en visitekaarten.\n"
+
+#: ../src/ui-commands.c:1166
+msgid "translator-credits"
+msgstr "Mario Blättermann <mariobl@gnome.org>"
+
+#: ../src/ui-commands.c:1169
+msgid ""
+"gLabels is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"gLabels is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"gLabels is vrije software: u kunt het verspreiden en/of wijzigen\n"
+"onder de voorwaarden van de \"GNU General Public\"-licentie zoals\n"
+"uitgebracht door de Free Software Foundation, versie 3 van de licentie,\n"
+"of (naar wens) elke latere versie.\n"
+"\n"
+"gLabels wordt verspreid in de hoop dat het bruikbaar zal zijn,\n"
+"maar ZONDER ENIGE GARANTIE; zelfs zonder de impliciete garantie van\n"
+"VERKOOPBAARHEID of GESCHIKTHEID VOOR EEN BEPAALD DOEL. Zie de\n"
+"GNU General Public License voor meer informatie.\n"
+
+#: ../src/warning-handler.c:69
+msgid "gLabels Error!"
+msgstr "gLabels-fout!"
+
+#: ../src/window.c:281
+msgid "(none) - gLabels"
+msgstr "(niets) - gLabels"
+
+#: ../src/window.c:482
+msgid "(modified)"
+msgstr "(gewijzigd)"
+
+#. Create and append an "Other" entry.
+#. Translators: "Other" here means other page size.  Meaning a page size
+#. * other than the standard ones that libglabels knows about such as
+#. * "letter", "A4", etc.
+#: ../libglabels/lgl-db.c:267
+msgid "Other"
+msgstr "Overig"
+
+#. Create and append a "User defined" entry.
+#: ../libglabels/lgl-db.c:276
+msgid "User defined"
+msgstr "Door gebruiker gedefinieerd"
+
+#: ../libglabels/lgl-db.c:663
+msgid ""
+"Unable to locate paper size definitions.  Libglabels may not be installed "
+"correctly!"
+msgstr ""
+"Kan definities van papierformaat niet vinden. Libglabels is mogelijk niet "
+"correct geïnstalleerd!"
+
+#: ../libglabels/lgl-db.c:1062
+msgid ""
+"Unable to locate category definitions.  Libglabels may not be installed "
+"correctly!"
+msgstr ""
+"Kan categoriedefinities niet vinden. Libglabels is mogelijk niet correct "
+"geïnstalleerd!"
+
+#: ../libglabels/lgl-db.c:1989
+msgid ""
+"Unable to locate any template files.  Libglabels may not be installed "
+"correctly!"
+msgstr ""
+"Kan helemaal geen sjabloonbestanden vinden. Libglabels is mogelijk niet "
+"correct geïnstalleerd!"
+
+#: ../libglabels/lgl-db.c:2056
+#, c-format
+msgid "%s full page label"
+msgstr "%s volledige pagina-etiket"
+
+#.
+#. * Translators: 1st %d = number of labels across a page,
+#. *              2nd %d = number of labels down a page,
+#. *              3rd %d = total number of labels on a page (sheet).
+#.
+#: ../libglabels/lgl-template.c:673
+#, c-format
+msgid "%d × %d (%d per sheet)"
+msgstr "%d × %d (%d per bladzijde)"
+
+#. Translators: %d is the total number of labels on a page (sheet).
+#: ../libglabels/lgl-template.c:678
+#, c-format
+msgid "%d per sheet"
+msgstr "%d per bladzijde"
+
+#: ../libglabels/lgl-template.c:759 ../libglabels/lgl-template.c:767
+#: ../libglabels/lgl-template.c:779 ../libglabels/lgl-template.c:787
+msgid "diameter"
+msgstr "Diameter"
+
+#. The ids are identical to the absolute length units supported in
+#. the CSS2 Specification (Section 4.3.2)
+#. This table must be sorted exactly as the enumerations in lglUnits
+#. [LGL_UNITS_POINT]
+#: ../libglabels/lgl-units.c:65 ../data/ui/object-editor.ui.h:42
+#: ../data/ui/prefs-dialog.ui.h:22
+msgid "points"
+msgstr "punten"
+
+#. [LGL_UNITS_INCH]
+#: ../libglabels/lgl-units.c:66 ../data/ui/object-editor.ui.h:40
+#: ../data/ui/template-designer.ui.h:66
+msgid "inches"
+msgstr "duimen"
+
+#. [LGL_UNITS_MM]
+#: ../libglabels/lgl-units.c:67
+msgid "mm"
+msgstr "mm"
+
+#. [LGL_UNITS_CM]
+#: ../libglabels/lgl-units.c:68
+msgid "cm"
+msgstr "cm"
+
+#. [LGL_UNITS_PICA]
+#: ../libglabels/lgl-units.c:69
+msgid "picas"
+msgstr "picas"
+
+#.
+#. * Local Variables:       -- emacs
+#. * mode: C                -- emacs
+#. * c-basic-offset: 8      -- emacs
+#. * tab-width: 8           -- emacs
+#. * indent-tabs-mode: nil  -- emacs
+#. * End:                   -- emacs
+#.
+#: ../data/ui/merge-properties-dialog.ui.h:1
+msgid "Format:"
+msgstr "Formaat:"
+
+#: ../data/ui/merge-properties-dialog.ui.h:2
+msgid "Location:"
+msgstr "Locatie:"
+
+#: ../data/ui/merge-properties-dialog.ui.h:3
+msgid "Record selection/preview"
+msgstr "Recordselectie/voorbeeldweergave"
+
+#: ../data/ui/merge-properties-dialog.ui.h:4
+msgid "Select all"
+msgstr "Alles selecteren"
+
+#: ../data/ui/merge-properties-dialog.ui.h:5
+msgid "Source"
+msgstr "Bron"
+
+#: ../data/ui/merge-properties-dialog.ui.h:6
+msgid "Unselect all"
+msgstr "Alles deselecteren"
+
+#: ../data/ui/media-select.ui.h:1
+msgid "Brand:"
+msgstr "Merk:"
+
+#: ../data/ui/media-select.ui.h:2
+msgid "Category:"
+msgstr "Categorie:"
+
+#: ../data/ui/media-select.ui.h:3
+msgid "Custom"
+msgstr "Aangepast"
+
+#: ../data/ui/media-select.ui.h:4 ../data/ui/new-label-dialog.ui.h:6
+#: ../data/ui/template-designer.ui.h:46
+msgid "Page size:"
+msgstr "Paginagrootte:"
+
+#: ../data/ui/media-select.ui.h:5
+msgid "Recent"
+msgstr "Recent"
+
+#: ../data/ui/media-select.ui.h:6
+msgid "Search all"
+msgstr "Alles doorzoeken"
+
+#: ../data/ui/new-label-dialog.ui.h:1
+msgid ""
+"Choose label or card product from hundreds of predefined templates or define "
+"your own."
+msgstr ""
+"Kies het etiket- of kaartproduct uit honderden vooraf gedefinieerde "
+"sjablonen of definieer er zelf een."
+
+#: ../data/ui/new-label-dialog.ui.h:2 ../data/ui/template-designer.ui.h:29
+msgid "Description:"
+msgstr "Beschrijving:"
+
+#: ../data/ui/new-label-dialog.ui.h:3
+msgid "Label size:"
+msgstr "Labelgrootte:"
+
+#: ../data/ui/new-label-dialog.ui.h:4
+msgid "Layout:"
+msgstr "Lay-out:"
+
+#: ../data/ui/new-label-dialog.ui.h:5
+msgid "Normal"
+msgstr "Normaal"
+
+#: ../data/ui/new-label-dialog.ui.h:7 ../data/ui/template-designer.ui.h:47
+msgid "Part #:"
+msgstr "Bestelnummer:"
+
+#: ../data/ui/new-label-dialog.ui.h:8
+msgid "Please review and confirm your selection."
+msgstr "Controleer en bevestig uw selectie."
+
+#: ../data/ui/new-label-dialog.ui.h:9
+msgid "Rotated"
+msgstr "Gedraaid"
+
+#: ../data/ui/new-label-dialog.ui.h:10
+msgid "Select orientation of label content."
+msgstr "Oriëntatie van etiketinhoud selecteren."
+
+#: ../data/ui/new-label-dialog.ui.h:11
+msgid "Similar products:"
+msgstr "Soortgelijke producten:"
+
+#: ../data/ui/new-label-dialog.ui.h:12
+msgid "Vendor:"
+msgstr "Leverancier:"
+
+#: ../data/ui/object-editor.ui.h:1
+msgid " "
+msgstr " "
+
+#: ../data/ui/object-editor.ui.h:3
+#, no-c-format
+msgid "%"
+msgstr "%"
+
+#: ../data/ui/object-editor.ui.h:4 ../data/ui/prefs-dialog.ui.h:2
+msgid "Alignment:"
+msgstr "Uitlijning:"
+
+#: ../data/ui/object-editor.ui.h:5
+msgid "Allow merge to automatically shrink text"
+msgstr "Bij samenvoegen mag tekst automatisch verkleind worden"
+
+#: ../data/ui/object-editor.ui.h:6
+msgid "Angle:"
+msgstr "Hoek:"
+
+#: ../data/ui/object-editor.ui.h:7
+msgid "Backend:"
+msgstr "Achterliggend:"
+
+#: ../data/ui/object-editor.ui.h:8
+msgid "Checksum"
+msgstr "Controlesom"
+
+#: ../data/ui/object-editor.ui.h:9 ../data/ui/prefs-dialog.ui.h:3
+msgid "Color:"
+msgstr "Kleur:"
+
+#: ../data/ui/object-editor.ui.h:11
+msgid "Enable shadow"
+msgstr "Schaduw activeren"
+
+#: ../data/ui/object-editor.ui.h:12
+msgid "Family:"
+msgstr "Familie:"
+
+#: ../data/ui/object-editor.ui.h:13
+msgid "File:"
+msgstr "Bestand:"
+
+#: ../data/ui/object-editor.ui.h:14 ../data/ui/prefs-dialog.ui.h:5
+msgid "Fill"
+msgstr "Vullen"
+
+#: ../data/ui/object-editor.ui.h:15 ../data/ui/template-designer.ui.h:33
+msgid "Height:"
+msgstr "Hoogte:"
+
+#: ../data/ui/object-editor.ui.h:17
+msgid "Key:"
+msgstr "Sleutel:"
+
+#: ../data/ui/object-editor.ui.h:18
+msgid "Length:"
+msgstr "Lengte:"
+
+#: ../data/ui/object-editor.ui.h:20 ../data/ui/prefs-dialog.ui.h:10
+msgid "Line Spacing:"
+msgstr "Regelafstand:"
+
+#: ../data/ui/object-editor.ui.h:21
+msgid "Literal:"
+msgstr "Letterlijk:"
+
+#: ../data/ui/object-editor.ui.h:22
+msgid "Opacity:"
+msgstr "Doorschijnendheid:"
+
+#: ../data/ui/object-editor.ui.h:23
+msgid "Position"
+msgstr "Positie"
+
+#: ../data/ui/object-editor.ui.h:24
+msgid "Reset image size"
+msgstr "Beeldgrootte resetten"
+
+#: ../data/ui/object-editor.ui.h:25
+msgid "Shadow"
+msgstr "Schaduw"
+
+#: ../data/ui/object-editor.ui.h:26
+msgid "Size"
+msgstr "Grootte"
+
+#: ../data/ui/object-editor.ui.h:27
+msgid "Size:"
+msgstr "Grootte:"
+
+#: ../data/ui/object-editor.ui.h:28
+msgid "Style"
+msgstr "Stijl"
+
+#: ../data/ui/object-editor.ui.h:29
+msgid "Style:"
+msgstr "Stijl:"
+
+#: ../data/ui/object-editor.ui.h:31 ../data/ui/prefs-dialog.ui.h:20
+#: ../data/ui/template-designer.ui.h:65
+msgid "Width:"
+msgstr "Breedte:"
+
+#: ../data/ui/object-editor.ui.h:32
+msgid "X Offset:"
+msgstr "X afwijking:"
+
+#: ../data/ui/object-editor.ui.h:33
+msgid "X:"
+msgstr "X:"
+
+#: ../data/ui/object-editor.ui.h:34
+msgid "Y Offset:"
+msgstr "X afwijking:"
+
+#: ../data/ui/object-editor.ui.h:35
+msgid "Y:"
+msgstr "Y:"
+
+#: ../data/ui/object-editor.ui.h:36
+msgid "degrees"
+msgstr "graden"
+
+#: ../data/ui/object-editor.ui.h:37
+msgid "dialog1"
+msgstr "dialog1"
+
+#: ../data/ui/object-editor.ui.h:38
+msgid "digits:"
+msgstr "Cijfers:"
+
+#: ../data/ui/object-editor.ui.h:39
+msgid "format:"
+msgstr "Formaat"
+
+#: ../data/ui/object-editor.ui.h:41
+msgid "key:"
+msgstr "Sleutel:"
+
+#: ../data/ui/prefs-dialog.ui.h:1
+msgid "   "
+msgstr "   "
+
+#: ../data/ui/prefs-dialog.ui.h:4
+msgid "Default page size"
+msgstr "Standaard paginagrootte"
+
+#: ../data/ui/prefs-dialog.ui.h:6
+msgid "Font:"
+msgstr "Lettertype:"
+
+#: ../data/ui/prefs-dialog.ui.h:7
+msgid "ISO A4"
+msgstr "ISO A4"
+
+#: ../data/ui/prefs-dialog.ui.h:8
+msgid "Inches"
+msgstr "Duim"
+
+#: ../data/ui/prefs-dialog.ui.h:11
+msgid "Locale"
+msgstr "Taalinstelling"
+
+#: ../data/ui/prefs-dialog.ui.h:12
+msgid "Millimeters"
+msgstr "Millimeter"
+
+#: ../data/ui/prefs-dialog.ui.h:13
+msgid "Object defaults"
+msgstr "Object standaardwaarden"
+
+#: ../data/ui/prefs-dialog.ui.h:14
+msgid "Points"
+msgstr "Punten"
+
+#: ../data/ui/prefs-dialog.ui.h:15
+msgid "Select default properties for new objects."
+msgstr "Standaard eigenschappen voor nieuwe objecten selecteren."
+
+#: ../data/ui/prefs-dialog.ui.h:16
+msgid "Select locale specific behavior."
+msgstr "Taalspecifieke gegevens kiezen."
+
+#: ../data/ui/prefs-dialog.ui.h:18 ../templates/paper-sizes.xml.h:35
+msgid "US Letter"
+msgstr "US Letter"
+
+#: ../data/ui/prefs-dialog.ui.h:19
+msgid "Units"
+msgstr "Eenheden"
+
+#: ../data/ui/property-bar.ui.h:1
+msgid "Bold"
+msgstr "Vet"
+
+#: ../data/ui/property-bar.ui.h:2
+msgid "Center align"
+msgstr "Midden uitlijnen"
+
+#: ../data/ui/property-bar.ui.h:7
+msgid "Left align"
+msgstr "Links uitlijnen"
+
+#: ../data/ui/property-bar.ui.h:10
+msgid "Right align"
+msgstr "Rechts uitlijnen"
+
+#: ../data/ui/template-designer.ui.h:1
+msgid "(e.g., \"Mailing Labels,\" \"Business Cards,\" ...)"
+msgstr "(bijv. \"Mailing Labels,\" \"Business Cards,\" ...)"
+
+#: ../data/ui/template-designer.ui.h:2
+msgid "(e.g., 8163A)"
+msgstr "(bijv. 8163A)"
+
+#: ../data/ui/template-designer.ui.h:3
+msgid "(e.g., Avery, Acme, ...)"
+msgstr "(bijv. Avery, Acme, ...)"
+
+#: ../data/ui/template-designer.ui.h:4
+msgid "1. Outer radius:"
+msgstr "1. Buitenradius:"
+
+#: ../data/ui/template-designer.ui.h:5
+msgid "1. Radius:"
+msgstr "1. Radius:"
+
+#: ../data/ui/template-designer.ui.h:6
+msgid "1. Width:"
+msgstr "1. Breedte:"
+
+#: ../data/ui/template-designer.ui.h:7
+msgid "2. Height:"
+msgstr "2. Hoogte:"
+
+#: ../data/ui/template-designer.ui.h:8
+msgid "2. Inner radius:"
+msgstr "2. Binnenradius:"
+
+#: ../data/ui/template-designer.ui.h:9
+msgid "2. Waste (overprint allowed):"
+msgstr "2. Verlies (overprint toegestaan):"
+
+#: ../data/ui/template-designer.ui.h:10
+msgid "3. Clipping width:"
+msgstr "3. Knipbreedte:"
+
+#: ../data/ui/template-designer.ui.h:11
+msgid "3. Margin"
+msgstr "3. Rand"
+
+#: ../data/ui/template-designer.ui.h:12
+msgid "3. Round (radius of corner):"
+msgstr "3. Ronding (radius van hoeken):"
+
+#: ../data/ui/template-designer.ui.h:13
+msgid "3. Waste (overprint allowed):"
+msgstr "3. Verlies (overprint toegestaan):"
+
+#: ../data/ui/template-designer.ui.h:14
+msgid "4. Clipping height:"
+msgstr "4. Kniphoogte:"
+
+#: ../data/ui/template-designer.ui.h:15
+msgid "4. Horiz. waste (overprint allowed):"
+msgstr "4. Horiz. verlies (overprint toegestaan):"
+
+#: ../data/ui/template-designer.ui.h:16
+msgid "4. Margin"
+msgstr "4. Rand"
+
+#: ../data/ui/template-designer.ui.h:17
+msgid "5. Vert. waste (overprint allowed):"
+msgstr "5. Vert. verlies (overprint toegestaan):"
+
+#: ../data/ui/template-designer.ui.h:18
+msgid "5. Waste (overprint allowed):"
+msgstr "5. Verlies (overprint toegestaan):"
+
+#: ../data/ui/template-designer.ui.h:19
+msgid "6. Margin"
+msgstr "6. Rand"
+
+#: ../data/ui/template-designer.ui.h:20
+msgid "Brand/Manufacturer:"
+msgstr "Merk/Leverancier:"
+
+#: ../data/ui/template-designer.ui.h:21
+msgid "CD/DVD (including credit card CDs)"
+msgstr "CD/DVD (ook credit card CDs)"
+
+#: ../data/ui/template-designer.ui.h:22
+msgid ""
+"Congratulations!\n"
+"\n"
+"You have completed the gLabels Template Designer.\n"
+"If you wish to accept and save your design, click \"Apply.\"\n"
+"\n"
+"Otherwise, you may click \"Cancel\" to abandon your design\n"
+"or \"Back\" to continue editing this design."
+msgstr ""
+"Gefeliciteerd!\n"
+"\n"
+"U heeft gLabels Template Designer voltooid.\n"
+"Indien u uw ontwerp wilt accepteren en opslaan, klik dan op \"Toepassen\".\n"
+"\n"
+"Indien niet, dan kunt u op \"Annuleren\" klikken, om uw ontwerp te verlaten\n"
+"of op \"Terug\", om met het bewerken van het ontwerp door te gaan."
+
+#: ../data/ui/template-designer.ui.h:30
+msgid "Distance from left edge (x0):"
+msgstr "Afstand van het linkerrand (x0):"
+
+#: ../data/ui/template-designer.ui.h:31
+msgid "Distance from top edge (y0):"
+msgstr "Afstand van het bovenrand (y0):"
+
+#: ../data/ui/template-designer.ui.h:32
+msgid "Elliptical"
+msgstr "Elliptisch"
+
+#: ../data/ui/template-designer.ui.h:34
+msgid "Horizontal pitch (dx):"
+msgstr "Horizontale afstand (dx):"
+
+#: ../data/ui/template-designer.ui.h:35
+msgid ""
+"How many layouts will your template contain? \n"
+"\n"
+"A layout is a set of labels or cards that can be arranged in a simple grid.\n"
+"Most templates only need one layout, as in the first example.\n"
+"The second example illustrates when two layouts are needed."
+msgstr ""
+"Hoeveel lay-outs zal uw sjabloon bevatten? \n"
+"\n"
+"Een lay-out is een set etiketten of kaartjes die in een raster gerangschikt "
+"kan worden.\n"
+"De meeste sjablonen hebben slechts één lay-out nodig, zoals in het eerste "
+"voorbeeld.\n"
+"In het tweede voorbeeld ziet u wanneer er twee lay-outs nodig zijn."
+
+#: ../data/ui/template-designer.ui.h:40
+msgid "Layout #1"
+msgstr "Layout #1"
+
+#: ../data/ui/template-designer.ui.h:41
+msgid "Layout #2"
+msgstr "Layout #2"
+
+#: ../data/ui/template-designer.ui.h:42
+msgid ""
+"Note: if more than 2 layouts are required, the template must be edited "
+"manually."
+msgstr ""
+"Opmerking: als er meer dan 2 lay-outs vereist zijn, dan moet het sjabloon "
+"met de hand worden bewerkt."
+
+#: ../data/ui/template-designer.ui.h:43
+msgid "Number across (nx):"
+msgstr "Aantal horizontaal"
+
+#: ../data/ui/template-designer.ui.h:44
+msgid "Number down (ny):"
+msgstr "Aantal verticaal"
+
+#: ../data/ui/template-designer.ui.h:45
+msgid "Number of layouts:"
+msgstr "Aantal layouts:"
+
+#: ../data/ui/template-designer.ui.h:48
+msgid ""
+"Please enter the following identifying information about the template "
+"stationery."
+msgstr ""
+"Geef de volgende herkenningsinformatie op over het briefpapier van het "
+"sjabloon."
+
+#: ../data/ui/template-designer.ui.h:49
+msgid "Please enter the following layout information."
+msgstr "Vul de layout-gegevens in."
+
+#: ../data/ui/template-designer.ui.h:50
+msgid ""
+"Please enter the following size parameters of a single label in your "
+"template."
+msgstr ""
+"Geef de volgende parameters op over de grootte van een enkel etiket in uw "
+"sjabloon."
+
+#: ../data/ui/template-designer.ui.h:51
+msgid ""
+"Please enter the following size parameters of a single label or card in your "
+"template."
+msgstr ""
+"Geef de volgende parameters op over de grootte van een enkel etiket of "
+"kaartje in uw sjabloon."
+
+#: ../data/ui/template-designer.ui.h:52
+msgid "Please select the basic shape of the labels or cards."
+msgstr "Selecteer de basisvorm van de etiketten of kaartjes."
+
+#: ../data/ui/template-designer.ui.h:53
+msgid "Please select the page size of the template stationery."
+msgstr "Selecteer het paginaformaat van het briefpapier van het sjabloon."
+
+#: ../data/ui/template-designer.ui.h:54
+msgid "Print test sheet"
+msgstr "Testpagina afdrukken"
+
+#: ../data/ui/template-designer.ui.h:55
+msgid "Rectangular or square (can have rounded corners)"
+msgstr "Rechthoekig of vierkant (kan afgeronde hoeken hebben)"
+
+#: ../data/ui/template-designer.ui.h:56
+msgid "Round"
+msgstr "Rond"
+
+#: ../data/ui/template-designer.ui.h:57
+msgid ""
+"Templates needing\n"
+"two layouts."
+msgstr ""
+"Sjablonen hebben\n"
+"twee layouts."
+
+#: ../data/ui/template-designer.ui.h:59
+msgid ""
+"Templates needing only\n"
+"one layout."
+msgstr ""
+"Sjablonen hebben\n"
+"een layout."
+
+#: ../data/ui/template-designer.ui.h:61
+msgid "Vertical pitch (dy):"
+msgstr "Verticale afstand (dy):"
+
+#: ../data/ui/template-designer.ui.h:62
+msgid ""
+"Welcome to the gLabels Template Designer.\n"
+"\n"
+"This dialog will assist you in the creation of a custom gLabels template."
+msgstr ""
+"Welkom bij het sjabloonontwerpprogramma van gLabels.\n"
+"\n"
+"Deze dialoog zal u begeleiden bij het creëren van een aangepast gLabels-"
+"sjabloon."
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:1
+msgid "Collate"
+msgstr "Vergelijken"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:2
+msgid "Copies"
+msgstr "Kopieën"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:3
+msgid "Copies:"
+msgstr "Kopieën:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:5
+msgid "Merge Control"
+msgstr "Samenvoegen"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:6
+msgid "Options"
+msgstr "Opties"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:7
+msgid "Sheets:"
+msgstr "Bladen:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:8
+msgid "Start on label"
+msgstr "Beginnen met etiket"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:9
+msgid "from:"
+msgstr "van:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:10
+msgid "on 1st sheet"
+msgstr "op de eerste pagina"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:14
+msgid "to:"
+msgstr "tot:"
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:1
+msgid "Controls maximum number of recent files tracked."
+msgstr "Maximum aantal op te sporen recente bestanden."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:2
+msgid "Controls visibility of drawing toolbar."
+msgstr "De tekenwerkbalk tonen/verbergen."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:3
+msgid "Controls visibility of grid."
+msgstr "Raster tonen/verbergen."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:4
+msgid "Controls visibility of main toolbar."
+msgstr "De hoofdwerkbalk tonen/verbergen."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:5
+msgid "Controls visibility of markup lines."
+msgstr "Rand tonen/verbergen."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:6
+msgid "Controls visibility of property toolbar."
+msgstr "De eigenschappenwerkbalk tonen/verbergen."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:7
+msgid "Default fill color."
+msgstr "Standaard vulkleur."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:8
+msgid "Default font family."
+msgstr "Standaard lettertypefamilie."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:9
+msgid "Default font italic flag."
+msgstr "Cursiefvlag standaard lettertype."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:10
+msgid "Default font size."
+msgstr "Standaard lettergrootte."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:11
+msgid "Default font weight."
+msgstr "Standaard tekengewicht."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:12
+msgid "Default line color."
+msgstr "Standaard lijnkleur."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:13
+msgid "Default line width."
+msgstr "Standaard lijnbreedte."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:14
+msgid "Default page size."
+msgstr "Standaard paginagrootte."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:15
+msgid "Default text alignment."
+msgstr "Standaard uitlijning tekst."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:16
+msgid "Default text color."
+msgstr "Standaard tekstkleur."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:17
+msgid "Default text line spacing."
+msgstr "Standaard regelafstand."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:18
+msgid "Maximum recent files."
+msgstr "Maximum recente bestanden."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:19
+msgid "Recent colors."
+msgstr "Recente kleuren."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:20
+msgid "Recent fonts."
+msgstr "Recente lettertypen."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:21
+msgid "Recent templates."
+msgstr "Recente sjablonen."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:22
+msgid "Recently created custom colors."
+msgstr "Recent aangemaakte aangepaste kleuren."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:23
+msgid "Recently used font families."
+msgstr "Recent gebruikte lettertypefamilies."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:24
+msgid "Recently used templates."
+msgstr "Recent gebruikte sjablonen."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:25
+msgid "Show/hide drawing toolbar."
+msgstr "Tekenwerkbalk tonen/verbergen."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:26
+msgid "Show/hide grid."
+msgstr "Raster tonen/verbergen."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:27
+msgid "Show/hide main toolbar."
+msgstr "Hoofdwerkbalk tonen/verbergen."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:28
+msgid "Show/hide markup."
+msgstr "Rand tonen/verbergen."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:29
+msgid "Show/hide property toolbar."
+msgstr "Eigenschappenwerkbalk tonen/verbergen."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:30
+msgid "The default color of text for new text objects (0xRRGGBBAA)."
+msgstr "De standaard tekstkleur voor nieuwe tekstobjecten (0xRRGGBBAA)."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:31
+msgid "The default fill color new objects (0xRRGGBBAA)."
+msgstr "De standaard vulkleur voor nieuwe objecten (0xRRGGBBAA)."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:32
+msgid "The default font family for new text objects."
+msgstr "De standaard lettertypefamilie voor nieuwe tekstobjecten."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:33
+msgid "The default font italic state for new text objects."
+msgstr "De standaard cursiefstatus voor nieuwe tekstobjecten."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:34
+msgid "The default font size for new text objects."
+msgstr "De standaard lettergrootte voor nieuwe tekstobjecten."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:35
+msgid "The default font weight for new text objects."
+msgstr "Het standaard tekengewicht voor nieuwe tekstobjecten."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:36
+msgid "The default line color new objects (0xRRGGBBAA)."
+msgstr "De standaard lijnkleur voor nieuwe objecten (0xRRGGBBAA)."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:37
+msgid "The default line spacing for new text objects."
+msgstr "De standaard regelafstand voor nieuwe tekstobjecten."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:38
+msgid "The default line width for new objects."
+msgstr "De standaard lijndikte voor nieuwe objecten."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:39
+msgid "The default text alignment for new text objects."
+msgstr "De standaard uitlijning voor nieuwe tekstobjecten."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:40
+msgid "The default unit of measurement."
+msgstr "De standaard meeteenheid."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:41
+msgid "The preferred page size when searching templates."
+msgstr "De voorkeurspaginagrootte wanneer naar sjablonen wordt gezocht."
+
+#: ../data/schemas/org.gnome.glabels-3.gschema.xml.in.in.h:42
+msgid "Units."
+msgstr "Eenheden."
+
+#: ../data/desktop/glabels-3.0.desktop.in.h:1
+msgid "Create labels, business cards and media covers"
+msgstr "Etiketten, visitekaartjes en hoesjes aanmaken"
+
+#: ../data/desktop/glabels-3.0.desktop.in.h:2
+msgid "gLabels Label Designer 3"
+msgstr "gLabels Label-ontwerper 3"
+
+#: ../data/mime/glabels-3.0.xml.in.h:1
+msgid "gLabels Project File"
+msgstr "gLabels-projectbestand"
+
+#. Envelopes
+#: ../templates/paper-sizes.xml.h:2
+msgid "#10 Envelope"
+msgstr "#10 envelop"
+
+#. Other ISO A series sizes
+#: ../templates/paper-sizes.xml.h:4
+msgid "A0"
+msgstr "A0"
+
+#: ../templates/paper-sizes.xml.h:5
+msgid "A1"
+msgstr "A1"
+
+#: ../templates/paper-sizes.xml.h:6
+msgid "A10"
+msgstr "A10"
+
+#: ../templates/paper-sizes.xml.h:7
+msgid "A2"
+msgstr "A2"
+
+#: ../templates/paper-sizes.xml.h:8
+msgid "A3"
+msgstr "A3"
+
+#. Most popular (at top of list)
+#: ../templates/paper-sizes.xml.h:10
+msgid "A4"
+msgstr "A4"
+
+#: ../templates/paper-sizes.xml.h:11
+msgid "A5"
+msgstr "A5"
+
+#: ../templates/paper-sizes.xml.h:12
+msgid "A6"
+msgstr "A6"
+
+#: ../templates/paper-sizes.xml.h:13
+msgid "A7"
+msgstr "A7"
+
+#: ../templates/paper-sizes.xml.h:14
+msgid "A8"
+msgstr "A8"
+
+#: ../templates/paper-sizes.xml.h:15
+msgid "A9"
+msgstr "A9"
+
+#. ISO B series sizes
+#: ../templates/paper-sizes.xml.h:17
+msgid "B0"
+msgstr "B0"
+
+#: ../templates/paper-sizes.xml.h:18
+msgid "B1"
+msgstr "B1"
+
+#: ../templates/paper-sizes.xml.h:19
+msgid "B10"
+msgstr "B10"
+
+#: ../templates/paper-sizes.xml.h:20
+msgid "B2"
+msgstr "B2"
+
+#: ../templates/paper-sizes.xml.h:21
+msgid "B3"
+msgstr "B3"
+
+#: ../templates/paper-sizes.xml.h:22
+msgid "B4"
+msgstr "B4"
+
+#: ../templates/paper-sizes.xml.h:23
+msgid "B5"
+msgstr "B5"
+
+#: ../templates/paper-sizes.xml.h:24
+msgid "B6"
+msgstr "B6"
+
+#: ../templates/paper-sizes.xml.h:25
+msgid "B7"
+msgstr "B7"
+
+#: ../templates/paper-sizes.xml.h:26
+msgid "B8"
+msgstr "B8"
+
+#: ../templates/paper-sizes.xml.h:27
+msgid "B9"
+msgstr "B9"
+
+#: ../templates/paper-sizes.xml.h:28
+msgid "C5"
+msgstr "C5"
+
+#: ../templates/paper-sizes.xml.h:29
+msgid "C6"
+msgstr "C6"
+
+#: ../templates/paper-sizes.xml.h:30
+msgid "DL"
+msgstr "DL envelop"
+
+#: ../templates/paper-sizes.xml.h:31
+msgid "Monarch Envelope"
+msgstr "Monarch envelop"
+
+#: ../templates/paper-sizes.xml.h:32
+msgid "US Executive"
+msgstr "US Executive"
+
+#. Other US paper sizes
+#: ../templates/paper-sizes.xml.h:34
+msgid "US Legal"
+msgstr "US Legal"
+
+#: ../templates/categories.xml.h:1
+msgid "Any card"
+msgstr "Alle kaarten"
+
+#: ../templates/categories.xml.h:2
+msgid "Any label"
+msgstr "Alle labels"
+
+#. ===================================================================
+#. ====================================================================
+#. ===================================================================
+#: ../templates/categories.xml.h:3 ../templates/dataline-iso-templates.xml.h:4
+#: ../templates/geha-iso-templates.xml.h:8
+#: ../templates/hama-iso-templates.xml.h:6
+#: ../templates/pearl-iso-templates.xml.h:8
+msgid "Business cards"
+msgstr "Adreskaarten"
+
+#: ../templates/categories.xml.h:4
+msgid "CD/DVD or other media"
+msgstr "CD/DVD en andere media"
+
+#. ===================================================================
+#: ../templates/categories.xml.h:5 ../templates/pearl-iso-templates.xml.h:28
+msgid "Elliptical labels"
+msgstr "Elliptische etiketten"
+
+#: ../templates/categories.xml.h:6
+msgid "Foldable cards"
+msgstr "Invouwbare kaarten"
+
+#: ../templates/categories.xml.h:7
+msgid "Mailing/shipping products"
+msgstr "Verzend/post/adresetiketten"
+
+#: ../templates/categories.xml.h:8
+msgid "Photo products"
+msgstr "Fotoproducten"
+
+#. ===================================================================
+#. ====================================================================
+#. ===================================================================
+#. ********************************************************************
+#: ../templates/categories.xml.h:9 ../templates/ascom-iso-templates.xml.h:6
+#: ../templates/hama-iso-templates.xml.h:29
+#: ../templates/herma-iso-templates.xml.h:18
+#: ../templates/jac-iso-templates.xml.h:8
+msgid "Rectangular labels"
+msgstr "Rechthoekige etiketten"
+
+#. ====================================================================
+#. ===================================================================
+#: ../templates/categories.xml.h:10 ../templates/hama-iso-templates.xml.h:31
+#: ../templates/pearl-iso-templates.xml.h:54
+msgid "Round labels"
+msgstr "Ronde etiketten"
+
+#. ====================================================================
+#: ../templates/categories.xml.h:11 ../templates/hama-iso-templates.xml.h:33
+msgid "Square labels"
+msgstr "Vierkante etiketten"
+
+#. ===================================================================
+#. ===============================================================
+#: ../templates/ascom-iso-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:10
+msgid "CD Inlet"
+msgstr "CD-inlegvel"
+
+#. TODO: Is this the real part #?
+#. ============================================================
+#. ===================================================================
+#. ====================================================================
+#. ===================================================================
+#. TODO: What is the actual part #?
+#. ===================================================================
+#: ../templates/ascom-iso-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:30
+#: ../templates/databecker-iso-templates.xml.h:10
+#: ../templates/hama-iso-templates.xml.h:27
+#: ../templates/herma-iso-templates.xml.h:16
+#: ../templates/misc-iso-templates.xml.h:30
+#: ../templates/zweckform-iso-templates.xml.h:28
+msgid "Rectangular Labels"
+msgstr "Rechthoekige etiketten"
+
+#. ===================================================================
+#: ../templates/ascom-iso-templates.xml.h:8
+#: ../templates/avery-us-templates.xml.h:46
+#: ../templates/geha-iso-templates.xml.h:29
+#: ../templates/meritline-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:12
+msgid "Video Tape Spine Labels"
+msgstr "Rugetiketten voor videobanden"
+
+#. ===================================================================
+#. ********************************************************************
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:2
+#: ../templates/databecker-iso-templates.xml.h:2
+#: ../templates/dymo-other-templates.xml.h:4
+#: ../templates/geha-iso-templates.xml.h:2
+#: ../templates/maco-us-templates.xml.h:2
+#: ../templates/meritline-us-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:1
+#: ../templates/zweckform-iso-templates.xml.h:2
+msgid "Address Labels"
+msgstr "Adresetiketten"
+
+#. ===================================================================
+#. ============================================================
+#. ===================================================================
+#. TODO: Is this the actual part #?
+#. ============================================================
+#: ../templates/avery-us-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:8
+#: ../templates/databecker-iso-templates.xml.h:4
+#: ../templates/dataline-iso-templates.xml.h:2
+#: ../templates/decadry-iso-templates.xml.h:2
+#: ../templates/misc-us-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:6
+#: ../templates/zweckform-iso-templates.xml.h:6
+msgid "Business Cards"
+msgstr "Visitekaarten"
+
+#. ===================================================================
+#. ===============================================================
+#. ===================================================================
+#. ********************************************************************
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:6
+#: ../templates/avery-iso-templates.xml.h:14
+#: ../templates/geha-iso-templates.xml.h:11
+#: ../templates/herma-iso-templates.xml.h:10
+#: ../templates/jac-iso-templates.xml.h:2
+#: ../templates/misc-us-templates.xml.h:8
+#: ../templates/misc-iso-templates.xml.h:10
+#: ../templates/pearl-iso-templates.xml.h:24
+#: ../templates/worldlabel-us-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:12
+msgid "CD/DVD Labels"
+msgstr "cd/dvd-etiketten"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:8
+msgid "CD/DVD Labels (Disc Labels)"
+msgstr "cd/dvd-etiketten (Schijfetiketten)"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:10
+msgid "CD/DVD Labels (Spine Labels)"
+msgstr "cd/dvd-etiketten (rugetiketten)"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:12
+#: ../templates/avery-iso-templates.xml.h:16
+#: ../templates/meritline-us-templates.xml.h:4
+#: ../templates/worldlabel-us-templates.xml.h:3
+msgid "Diskette Labels"
+msgstr "Diskette-etiketten"
+
+#. the LSK labels can be torn in half down the center
+#: ../templates/avery-us-templates.xml.h:14
+msgid "Divider Labels"
+msgstr "Scheidingsetiketten"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:16
+#: ../templates/avery-other-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:4
+msgid "File Folder Labels"
+msgstr "Ordneretiketten"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:5
+msgid "Filing Labels"
+msgstr "Ruiteretiketten"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:20
+#: ../templates/meritline-us-templates.xml.h:6
+#: ../templates/worldlabel-us-templates.xml.h:6
+msgid "Full Sheet Labels"
+msgstr "Volledig vel etiketten"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:22
+msgid "ID Labels"
+msgstr "ID-labels"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:24
+msgid "Index Cards"
+msgstr "Indexkaarten"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:26
+msgid "Large Round Labels"
+msgstr "Grote ronde etiketten"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:28
+msgid "Name Badge Labels"
+msgstr "Naamplaatjeslabels"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:30
+msgid "Post cards"
+msgstr "Briefkaarten"
+
+#. ===================================================================
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:32
+#: ../templates/dymo-other-templates.xml.h:12
+#: ../templates/meritline-us-templates.xml.h:10
+#: ../templates/worldlabel-us-templates.xml.h:8
+msgid "Return Address Labels"
+msgstr "Retouradresetiketten"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:34
+#: ../templates/maco-us-templates.xml.h:3
+#: ../templates/meritline-us-templates.xml.h:12
+#: ../templates/misc-us-templates.xml.h:30
+#: ../templates/worldlabel-us-templates.xml.h:9
+msgid "Round Labels"
+msgstr "Ronde etiketten"
+
+#. ===================================================================
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:36
+#: ../templates/dataline-iso-templates.xml.h:10
+#: ../templates/meritline-us-templates.xml.h:14
+#: ../templates/uline-us-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:10
+msgid "Shipping Labels"
+msgstr "Verzendetiketten"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:38
+msgid "Small Round Labels"
+msgstr "Kleine ronde etiketten"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:40
+msgid "Square Labels"
+msgstr "Vierkante etiketten"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:42
+msgid "Tent Cards"
+msgstr "Vouwbare kaarten"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:44
+#: ../templates/geha-iso-templates.xml.h:27
+#: ../templates/meritline-us-templates.xml.h:16
+#: ../templates/worldlabel-us-templates.xml.h:11
+msgid "Video Tape Face Labels"
+msgstr "Rugetiketten voor videobanden"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:2
+msgid "Address labels"
+msgstr "Adresetiketten"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:6
+msgid "Allround labels"
+msgstr "Universele labels"
+
+#. ===============================================================
+#: ../templates/avery-iso-templates.xml.h:10
+#: ../templates/zweckform-iso-templates.xml.h:8
+msgid "CD Booklet"
+msgstr "cd-boekje"
+
+#. ===================================================================
+#. ====================================================================
+#: ../templates/avery-iso-templates.xml.h:18
+#: ../templates/hama-iso-templates.xml.h:17
+msgid "Diskette labels"
+msgstr "Diskettelabels"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:20
+msgid "Identification Labels"
+msgstr "Identificatielabels"
+
+#. ===============================================================
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:22
+#: ../templates/decadry-iso-templates.xml.h:4
+#: ../templates/herma-iso-templates.xml.h:14
+#: ../templates/misc-us-templates.xml.h:20
+#: ../templates/misc-iso-templates.xml.h:26
+#: ../templates/zweckform-iso-templates.xml.h:20
+msgid "Mailing Labels"
+msgstr "Postetiketten"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:24
+#: ../templates/decadry-iso-templates.xml.h:6
+msgid "Mailing labels"
+msgstr "Postetiketten"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:26
+msgid "Mini Address Labels"
+msgstr "Mini adresetiketten"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:28
+msgid "Mini Labels"
+msgstr "Mini-etiketten"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:32
+msgid "Shipping labels"
+msgstr "Verzendetiketten"
+
+#: ../templates/brother-other-templates.xml.h:1
+msgid "Multi Purpose Labels 17mm x 54mm"
+msgstr "Etiketten voor meerdere doeleinden 17mm x 54mm"
+
+#: ../templates/brother-other-templates.xml.h:2
+msgid "Shipping Labels 62mm x 100mm"
+msgstr "Verzendetiketten 62mm x 100mm"
+
+#.
+#. *********************************************************************
+#. *********************************************************************
+#. Labels for the Brother QL-500/550/650 PC Label Printers
+#.
+#. These templates work with the Brother Linux Printer CUPS Driver.  It
+#. is unknown if these work correctly with the foomatic print driver for
+#. these printers.
+#.
+#. One difference from typical templates is that the template size is
+#. not the actual media size - it is the size of the printable area,
+#. which is smaller than the media size.  This is because (at least with
+#. the Brother driver) coordinates are relative the corner of this area.
+#.
+#. *********************************************************************
+#. *********************************************************************
+#.
+#: ../templates/brother-other-templates.xml.h:20
+msgid "Standard Address Labels 29mm x 90mm"
+msgstr "Standaard adresetiketten 29mm x 90mm"
+
+#: ../templates/brother-other-templates.xml.h:21
+msgid "Standard Address Labels 38mm x 90mm"
+msgstr "Standaard adresetiketten 38mm x 90mm"
+
+#. ===================================================================
+#: ../templates/databecker-iso-templates.xml.h:6
+#: ../templates/misc-iso-templates.xml.h:8
+msgid "CD Labels"
+msgstr "cd-labels"
+
+#. ===================================================================
+#: ../templates/databecker-iso-templates.xml.h:8
+msgid "CD/DVD Labels Standard Format (face only)"
+msgstr "cd/dvd-labels standaard formaat (alleen voorzijde)"
+
+#. ===================================================================
+#. ====================================================================
+#: ../templates/dataline-iso-templates.xml.h:6
+#: ../templates/hama-iso-templates.xml.h:13
+msgid "CD/DVD labels"
+msgstr "cd/dvd-Labels"
+
+#. ===================================================================
+#: ../templates/dataline-iso-templates.xml.h:8
+#: ../templates/pearl-iso-templates.xml.h:42
+msgid "Membership cards"
+msgstr "Lidmaatschapskaarten"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:2
+msgid "3.5in Diskette"
+msgstr "3 1/2 inch diskette"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:6
+msgid "File Folder"
+msgstr "Map"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:8
+msgid "Hanging Folder"
+msgstr "Hangmap"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:10
+#: ../templates/geha-iso-templates.xml.h:19
+msgid "Large Address Labels"
+msgstr "Grote adresetiketten"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:14
+msgid "Shipping Address Labels"
+msgstr "Verzendadresetiketten"
+
+#. ===================================================================
+#. ====================================================================
+#. ===================================================================
+#: ../templates/geha-iso-templates.xml.h:4
+#: ../templates/hama-iso-templates.xml.h:2
+#: ../templates/herma-iso-templates.xml.h:4
+msgid "Arch File Labels"
+msgstr "Ordneretiketten"
+
+#. ===================================================================
+#: ../templates/geha-iso-templates.xml.h:6
+msgid "Arch File inserts"
+msgstr "Ordner insteekkaarten"
+
+#: ../templates/geha-iso-templates.xml.h:9
+msgid "CD/DVD Inlet"
+msgstr "cd/dvd-inlegvel"
+
+#. ===================================================================
+#. ====================================================================
+#. ===================================================================
+#: ../templates/geha-iso-templates.xml.h:13
+#: ../templates/hama-iso-templates.xml.h:15
+#: ../templates/pearl-iso-templates.xml.h:26
+msgid "DVD inlet"
+msgstr "dvd-inlegvel"
+
+#. ===================================================================
+#: ../templates/geha-iso-templates.xml.h:15
+msgid "Flyer paper"
+msgstr "Flyer-papier"
+
+#. ===================================================================
+#. ====================================================================
+#: ../templates/geha-iso-templates.xml.h:17
+#: ../templates/hama-iso-templates.xml.h:19
+msgid "Greeting cards"
+msgstr "Wenskaarten"
+
+#. ===================================================================
+#: ../templates/geha-iso-templates.xml.h:21
+#: ../templates/misc-other-templates.xml.h:2
+msgid "Multi-Purpose Labels"
+msgstr "Etiketten voor verschillende doeleinden"
+
+#. ===================================================================
+#: ../templates/geha-iso-templates.xml.h:23
+msgid "Passport photo labels"
+msgstr "Paspoortfoto-etiketten"
+
+#. ===================================================================
+#. ====================================================================
+#. ===================================================================
+#: ../templates/geha-iso-templates.xml.h:25
+#: ../templates/hama-iso-templates.xml.h:23
+#: ../templates/pearl-iso-templates.xml.h:50
+msgid "Photo labels"
+msgstr "Foto-etiketten"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:4
+msgid "Arch File labels"
+msgstr "Ordneretiketten"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:8
+msgid "CD inlet"
+msgstr "cd-inlegvel"
+
+#. ===================================================================
+#: ../templates/hama-iso-templates.xml.h:9
+#: ../templates/pearl-iso-templates.xml.h:20
+msgid "CD inlet (back)"
+msgstr "cd-inlegvel (achterzijde)"
+
+#. ====================================================================
+#. ===================================================================
+#: ../templates/hama-iso-templates.xml.h:11
+#: ../templates/pearl-iso-templates.xml.h:22
+msgid "CD inlet (front)"
+msgstr "cd-inlegvel (voorzijde)"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:21
+msgid "Mini Disc labels"
+msgstr "MiniDisc labels"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:25
+msgid "Printable mousepad"
+msgstr "Printbare muismat"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:35
+msgid "VHS inlet"
+msgstr "VHS-inlegvel"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:37
+msgid "VHS-C inlet"
+msgstr "VHS-C-inlegvel"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:39
+msgid "Video-8 inlet"
+msgstr "Video-8 inlegvel"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:41
+msgid "Zip disc inlet"
+msgstr " Zipschijf-inlegvel"
+
+#. ====================================================================
+#: ../templates/hama-iso-templates.xml.h:43
+msgid "Zip disc labels"
+msgstr "Zipschijfetiketten"
+
+#. ===================================================================
+#: ../templates/herma-iso-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:4
+msgid "Allround Labels"
+msgstr "Universele etiketten"
+
+#. ===================================================================
+#: ../templates/herma-iso-templates.xml.h:6
+msgid "Arch File Labels (large)"
+msgstr "Ordneretiketten (groot)"
+
+#. ===================================================================
+#: ../templates/herma-iso-templates.xml.h:8
+msgid "Arch File Labels (small)"
+msgstr "Ordneretiketten (klein)"
+
+#. ===================================================================
+#: ../templates/herma-iso-templates.xml.h:12
+msgid "Diskette Labels (face only)"
+msgstr "Diskettelabels (alleen voorzijde)"
+
+#. ===================================================================
+#: ../templates/herma-iso-templates.xml.h:20
+msgid "Video Labels (face only)"
+msgstr "Videolabels (alleen voorzijde)"
+
+#. *******************************************************************
+#. ===================================================================
+#: ../templates/jac-iso-templates.xml.h:4
+#: ../templates/pearl-iso-templates.xml.h:36
+msgid "Labels A4"
+msgstr "Labels A4"
+
+#. *******************************************************************
+#: ../templates/jac-iso-templates.xml.h:6
+msgid "PVC labels"
+msgstr "PVC labels"
+
+#. ===================================================================
+#: ../templates/meritline-us-templates.xml.h:8
+msgid "Mini-CD Labels"
+msgstr "Mini-cd labels"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:2
+msgid "Business Card CD"
+msgstr "Visitekaartjes-cd"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:6
+msgid "CD Template Rectangles"
+msgstr "cd-sjabloon rechthoeken"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:10
+msgid "CD/DVD Labels (Face Only)"
+msgstr "cd/dvd-labels (alleen voorzijde)"
+
+#. ===================================================================
+#. TODO: Is this the actual part #?
+#: ../templates/misc-us-templates.xml.h:12
+#: ../templates/misc-iso-templates.xml.h:12
+msgid "CD/DVD Labels (face only)"
+msgstr "cd/dvd-labels (alleen voorzijde)"
+
+#. TODO: Is this the actual part #?
+#: ../templates/misc-us-templates.xml.h:14
+msgid "Cassette Labels"
+msgstr "Cassettelabels"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:16
+msgid "DLT Labels"
+msgstr "DLT-labels"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:18
+msgid "Jewel Case Booklet"
+msgstr "Jewel Case boekje"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:22
+msgid "Microtube labels"
+msgstr "Microtube-labels"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:24
+msgid "PRO CD Labels 2-up (CD spine only)"
+msgstr "PRO CD-labels 2-up (alleen cd-rug)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:26
+msgid "PRO CD Labels 2-up (Face only)"
+msgstr "PRO CD-labels 2-up (alleen voorzijde)"
+
+#. ===================================================================
+#. TODO: Is this the actual part #?
+#: ../templates/misc-us-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:28
+msgid "PRO CD Labels 2-up (face only)"
+msgstr "PRO CD Labels 2-up (alleen voorzijde)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:32
+msgid "Slimline CD Case (rightside up)"
+msgstr "Slimline cd-doosje (rechterkant naar boven)"
+
+#: ../templates/misc-us-templates.xml.h:33
+msgid "Slimline CD Case (upside down)"
+msgstr "Slimline cd-doosje (op zijn kop)"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:4
+#: ../templates/pearl-iso-templates.xml.h:6
+msgid "Bottle labels"
+msgstr "Flesetiketten"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:14
+msgid "EPSON Photo Stickers 16"
+msgstr "EPSON Photo Stickers 16"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:16
+msgid "Etiketten"
+msgstr "Etiketten"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:18
+msgid "Fridge Magnet Stickers"
+msgstr "Stickers voor koelkastmagneten"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:20
+msgid "General Labels"
+msgstr "Algemene etiketten"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:22
+msgid "Inkjet/Laser Labels 70x37mm"
+msgstr "Inkjet/Laser-etiketten 70 x 37mm"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:32
+#: ../templates/pearl-iso-templates.xml.h:62
+msgid "Self-adhesive labels"
+msgstr "Zelfklevende etiketten"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:34
+msgid "Universal Labels"
+msgstr "Universele etiketten"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:4
+msgid "Address Labels (STAMPIT)"
+msgstr "Adresetiketten (STAMPIT)"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:10
+msgid "Business cards glossy, both sides printable"
+msgstr "Visitekaartjes glans, beide zijden bedrukbaar"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:12
+msgid "Business cards high glossy"
+msgstr "Visitekaartjes hoogglans"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:14
+msgid "Business cards punched"
+msgstr "Visitekaartjes geponst"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:16
+msgid "Business cards punched dull"
+msgstr "Visitekaartjes dof geponst"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:18
+msgid "Business cards punched glossy"
+msgstr "Visitekaartjes glanzend geponst"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:30
+msgid "Floppy disk labels"
+msgstr "Floppy disk-labels"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:32
+msgid "Foldable business cards"
+msgstr "Invouwbare visitekaartjes"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:34
+msgid "Foldable business cards glossy/dull"
+msgstr "Invouwbare visitekaartjes glanzend/dof"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:38
+msgid "Labels A5"
+msgstr "Labels A5"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:40
+msgid "Labels A6"
+msgstr "Labels A6"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:44
+msgid "Membership cards, both sides printable"
+msgstr "Lidmaatschapskaarten, beide zijden bedrukbaar"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:46
+msgid "Name plates"
+msgstr "Naamplaatjes"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:48
+msgid "Passport photo labels glossy"
+msgstr "Paspoortfoto-etiketten glanzend"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:52
+msgid "Photo labels semiglossy"
+msgstr "Foto-etikatten halfglans"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:56
+msgid "SD card labels"
+msgstr "SD-kaartetiketten"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:58
+msgid "Self-adhesive film transparent"
+msgstr "Zelfklevende folie transparant"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:60
+msgid "Self-adhesive film weatherproof"
+msgstr "Zelfklevende folie weerbestendig"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:64
+msgid "Self-adhesive window film"
+msgstr "Zelfklevende folie voor ruiten"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:14
+msgid "Correction and Cover-up Labels"
+msgstr "Correctie- en cover-uplabels"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:16
+msgid "File Back Labels"
+msgstr "File Back etiketten"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:18
+msgid "Lever Arch File Labels"
+msgstr "Lever Ordneretiketten"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:22
+msgid "Multi-purpose Stick+Lift Labels"
+msgstr "Multi-purpose Stick+Lift Labels"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:24
+msgid "QSL-Karten Etiketten 70mm x 50,8mm"
+msgstr "QSL-Karten etiketten 70mm x 50,8mm"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:26
+msgid "Rectangular Copier Labels"
+msgstr "Rechthoekige Copier-etiketten"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:30
+msgid "Video Labels (back)"
+msgstr "Videolabels (achterzijde)"
+
+#~ msgid "Couldn't open addressbook."
+#~ msgstr "Kan adresboek niet openen."
+
+#~ msgid "_Select Mode"
+#~ msgstr "_Modus kiezen"
+
+#~ msgid "_Text"
+#~ msgstr "_Tekst"
+
+#~ msgid "_Line"
+#~ msgstr "_Lijn"
+
+#~ msgid "_Box"
+#~ msgstr "_Blok"
+
+#~ msgid "_Ellipse"
+#~ msgstr "_Ellips"
+
+#~ msgid "_Image"
+#~ msgstr "_Afbeelding"
+
+#~ msgid "Bar_code"
+#~ msgstr "Streepjes_code"
+
+#~ msgid "Object _Properties"
+#~ msgstr "Object_eigenschappen"
+
+#~ msgid "Bring to _Front"
+#~ msgstr "Plaats _Vooraan"
+
+#~ msgid "Send to _Back"
+#~ msgstr "Plaats _Achteraan"
+
+#~ msgid "Rotate _Left"
+#~ msgstr "_Linksom draaien"
+
+#~ msgid "Rotate _Right"
+#~ msgstr "_Rechtsom draaien"
+
+#~ msgid "Flip _Horizontally"
+#~ msgstr "_Horizontaal spiegelen"
+
+#~ msgid "Flip _Vertically"
+#~ msgstr "_Verticaal spiegelen"
+
+#~ msgid "_Lefts"
+#~ msgstr "_Links"
+
+#~ msgid "_Rights"
+#~ msgstr "_Rechts"
+
+#~ msgid "_Centers"
+#~ msgstr "_Midden"
+
+#~ msgid "_Tops"
+#~ msgstr "_Boven"
+
+#~ msgid "Bottoms"
+#~ msgstr "Onder"
+
+#~ msgid "Centers"
+#~ msgstr "Midden"
+
+#~ msgid "Linked"
+#~ msgstr "Gekoppeld"
+
+#~ msgid "Not Linked"
+#~ msgstr "Niet gekoppeld"
+
+#~ msgid "glabels"
+#~ msgstr "glabels"
+
+#~ msgid "Bad root node = \"%s\""
+#~ msgstr "Ongeldige wortelknoop = \"%s\""
+
+#~ msgid "bad node =  \"%s\""
+#~ msgstr "Ongeldige knoop = \"%s\""
+
+#~ msgid "xmlParseFile error"
+#~ msgstr "xmlParseFile-fout"
+
+#~ msgid "Importing from glabels 0.1 format"
+#~ msgstr "Importeren van glabels 0.1 format"
+
+#~ msgid "Importing from glabels 0.4 format"
+#~ msgstr "Importeren van glabels 0.4 format"
+
+#~ msgid "Utf8 conversion error."
+#~ msgstr "Fout tijdens omzetten naar UTF-8."
+
+#~ msgid "Problem saving xml file."
+#~ msgstr "Fout bij opslaan XML-bestand."
+
+#~ msgid "<span weight=\"bold\">Fill</span>"
+#~ msgstr "<span weight=\"bold\">Vullen</span>"
+
+#~ msgid "<span weight=\"bold\">Line</span>"
+#~ msgstr "<span weight=\"bold\">Lijn</span>"
+
+#~ msgid "<span weight=\"bold\">Text</span>"
+#~ msgstr "<span weight=\"bold\">Tekst</span>"
+
+#~ msgid "<b>Copies</b>"
+#~ msgstr "<b>Kopieën</b>"
index d5b935c45c45b79c5b5bba88b4ad9ce067579a79..e0aad1117a69c852999648e9ffeb6df573a4d49f 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,183 +6,365 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gLabels\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-06 21:56+0200\n"
+"POT-Creation-Date: 2010-07-10 00:37-0400\n"
 "PO-Revision-Date: 2002-07-23 11:43+0100\n"
 "Last-Translator: Arkadiusz Lipiec <alipiec@elka.pw.edu.pl>\n"
 "Language-Team: Polish <pl@li.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../bc-backends/barcode-0.98/compat/getopt.c:583
-#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr ""
-
-#: ../bc-backends/barcode-0.98/compat/getopt.c:607
-#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr ""
-
-#: ../bc-backends/barcode-0.98/compat/getopt.c:612
-#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr ""
-
-#: ../bc-backends/barcode-0.98/compat/getopt.c:629
-#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr ""
-
-#. --option
-#: ../bc-backends/barcode-0.98/compat/getopt.c:658
-#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr ""
-
-#. +option or -option
-#: ../bc-backends/barcode-0.98/compat/getopt.c:662
-#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr ""
-
-#. 1003.2 specifies the format of this message.
-#: ../bc-backends/barcode-0.98/compat/getopt.c:688
-#, c-format
-msgid "%s: illegal option -- %c\n"
-msgstr ""
-
-#: ../bc-backends/barcode-0.98/compat/getopt.c:691
-#, c-format
-msgid "%s: invalid option -- %c\n"
-msgstr ""
-
-#: ../bc-backends/barcode-0.98/compat/getopt.c:727
-#, c-format
-msgid "%s: option requires an argument -- %c\n"
-msgstr ""
-
-#: ../src/bc.c:65
+#: ../src/bc.c:66
 msgid "POSTNET (any)"
 msgstr ""
 
-#: ../src/bc.c:68
+#: ../src/bc.c:69
 msgid "POSTNET-5 (ZIP only)"
 msgstr ""
 
-#: ../src/bc.c:71
+#: ../src/bc.c:72
 msgid "POSTNET-9 (ZIP+4)"
 msgstr ""
 
-#: ../src/bc.c:74
+#: ../src/bc.c:75
 msgid "POSTNET-11 (DPBC)"
 msgstr ""
 
-#: ../src/bc.c:77
+#: ../src/bc.c:80
 msgid "CEPNET"
 msgstr ""
 
-#: ../src/bc.c:80
+#: ../src/bc.c:83
 msgid "EAN (any)"
 msgstr ""
 
-#: ../src/bc.c:83
+#: ../src/bc.c:86
 msgid "EAN-8"
 msgstr ""
 
-#: ../src/bc.c:86
+#: ../src/bc.c:89
 msgid "EAN-8 +2"
 msgstr ""
 
-#: ../src/bc.c:89
+#: ../src/bc.c:92
 msgid "EAN-8 +5"
 msgstr ""
 
-#: ../src/bc.c:92
+#: ../src/bc.c:95
 msgid "EAN-13"
 msgstr ""
 
-#: ../src/bc.c:95
+#: ../src/bc.c:98
 msgid "EAN-13 +2"
 msgstr ""
 
-#: ../src/bc.c:98
+#: ../src/bc.c:101
 msgid "EAN-13 +5"
 msgstr ""
 
-#: ../src/bc.c:101
+#: ../src/bc.c:104
 msgid "UPC (UPC-A or UPC-E)"
 msgstr ""
 
-#: ../src/bc.c:104
+#: ../src/bc.c:107 ../src/bc.c:348
 msgid "UPC-A"
 msgstr ""
 
-#: ../src/bc.c:107
+#: ../src/bc.c:110
 msgid "UPC-A +2"
 msgstr ""
 
-#: ../src/bc.c:110
+#: ../src/bc.c:113
 msgid "UPC-A +5"
 msgstr ""
 
-#: ../src/bc.c:113
+#: ../src/bc.c:116 ../src/bc.c:351
 msgid "UPC-E"
 msgstr ""
 
-#: ../src/bc.c:116
+#: ../src/bc.c:119
 msgid "UPC-E +2"
 msgstr ""
 
-#: ../src/bc.c:119
+#: ../src/bc.c:122
 msgid "UPC-E +5"
 msgstr ""
 
-#: ../src/bc.c:122
+#: ../src/bc.c:125 ../src/bc.c:288
 msgid "ISBN"
 msgstr ""
 
-#: ../src/bc.c:125
+#: ../src/bc.c:128
 msgid "ISBN +5"
 msgstr ""
 
-#: ../src/bc.c:128
+#: ../src/bc.c:131 ../src/bc.c:204
 msgid "Code 39"
 msgstr ""
 
-#: ../src/bc.c:131
+#: ../src/bc.c:134 ../src/bc.c:216
 msgid "Code 128"
 msgstr ""
 
-#: ../src/bc.c:134
+#: ../src/bc.c:137
 msgid "Code 128C"
 msgstr ""
 
-#: ../src/bc.c:137
+#: ../src/bc.c:140
 msgid "Code 128B"
 msgstr ""
 
-#: ../src/bc.c:140
+#: ../src/bc.c:143 ../src/bc.c:285
 msgid "Interleaved 2 of 5"
 msgstr ""
 
-#: ../src/bc.c:143
+#: ../src/bc.c:146 ../src/bc.c:180
 msgid "Codabar"
 msgstr ""
 
-#: ../src/bc.c:146
+#: ../src/bc.c:149
 msgid "MSI"
 msgstr ""
 
-#: ../src/bc.c:149
+#: ../src/bc.c:152
 msgid "Plessey"
 msgstr ""
 
-#: ../src/bc.c:152
+#: ../src/bc.c:155 ../src/bc.c:213
+msgid "Code 93"
+msgstr ""
+
+#: ../src/bc.c:162
+msgid "Australia Post Standard"
+msgstr ""
+
+#: ../src/bc.c:165
+msgid "Australia Post Reply Paid"
+msgstr ""
+
+#: ../src/bc.c:168
+msgid "Australia Post Route Code"
+msgstr ""
+
+#: ../src/bc.c:171
+msgid "Australia Post Redirect"
+msgstr ""
+
+#: ../src/bc.c:174
+msgid "Aztec Code"
+msgstr ""
+
+#: ../src/bc.c:177
+msgid "Aztec Rune"
+msgstr ""
+
+#: ../src/bc.c:183
+msgid "Code One"
+msgstr ""
+
+#: ../src/bc.c:186
+msgid "Code 11"
+msgstr ""
+
+#: ../src/bc.c:189
+msgid "Code 16K"
+msgstr ""
+
+#: ../src/bc.c:192
+msgid "Code 2 of 5 Matrix"
+msgstr ""
+
+#: ../src/bc.c:195
+msgid "Code 2 of 5 IATA"
+msgstr ""
+
+#: ../src/bc.c:198
+msgid "Code 2 of 5 Data Logic"
+msgstr ""
+
+#: ../src/bc.c:201
+msgid "Code 32 (Italian Pharmacode)"
+msgstr ""
+
+#: ../src/bc.c:207
+msgid "Code 39 Extended"
+msgstr ""
+
+#: ../src/bc.c:210
+msgid "Code 49"
+msgstr ""
+
+#: ../src/bc.c:219
+msgid "Code 128 (Mode C supression)"
+msgstr ""
+
+#: ../src/bc.c:222
+msgid "DAFT Code"
+msgstr ""
+
+#: ../src/bc.c:225
+msgid "Data Matrix"
+msgstr ""
+
+#: ../src/bc.c:228
+msgid "Deutsche Post Leitcode"
+msgstr ""
+
+#: ../src/bc.c:231
+msgid "Deutsche Post Identcode"
+msgstr ""
+
+#: ../src/bc.c:234
+msgid "Dutch Post KIX Code"
+msgstr ""
+
+#: ../src/bc.c:237
+msgid "European Article Number (EAN)"
+msgstr ""
+
+#: ../src/bc.c:240
+msgid "Grid Matrix"
+msgstr ""
+
+#: ../src/bc.c:243
+msgid "GS1-128"
+msgstr ""
+
+#: ../src/bc.c:246
+msgid "GS1 DataBar-14"
+msgstr ""
+
+#: ../src/bc.c:255
+msgid "GS1 DataBar-14 Stacked"
+msgstr ""
+
+#: ../src/bc.c:258
+msgid "GS1 DataBar-14 Stacked Omni."
+msgstr ""
+
+#: ../src/bc.c:261
+msgid "GS1 DataBar Extended Stacked"
+msgstr ""
+
+#: ../src/bc.c:264
+msgid "HIBC Code 128"
+msgstr ""
+
+#: ../src/bc.c:267
+msgid "HIBC Code 39"
+msgstr ""
+
+#: ../src/bc.c:270
+msgid "HIBC Data Matrix"
+msgstr ""
+
+#: ../src/bc.c:273
+msgid "HIBC QR Code"
+msgstr ""
+
+#: ../src/bc.c:276
+msgid "HIBC PDF417"
+msgstr ""
+
+#: ../src/bc.c:279
+msgid "HIBC Micro PDF417"
+msgstr ""
+
+#: ../src/bc.c:282
+msgid "HIBC Aztec Code"
+msgstr ""
+
+#: ../src/bc.c:291
+msgid "ITF-14"
+msgstr ""
+
+#: ../src/bc.c:294
+msgid "Japanese Postal"
+msgstr ""
+
+#: ../src/bc.c:297
+msgid "Korean Postal"
+msgstr ""
+
+#: ../src/bc.c:300
+msgid "LOGMARS"
+msgstr ""
+
+#: ../src/bc.c:303
+msgid "Micro PDF417"
+msgstr ""
+
+#: ../src/bc.c:306
+msgid "Micro QR Code"
+msgstr ""
+
+#: ../src/bc.c:309
+msgid "MSI Plessey"
+msgstr ""
+
+#: ../src/bc.c:312
+msgid "NVE-18"
+msgstr ""
+
+#: ../src/bc.c:315
+msgid "PDF417"
+msgstr ""
+
+#: ../src/bc.c:318
+msgid "PDF417 Truncated"
+msgstr ""
+
+#: ../src/bc.c:321
+msgid "PLANET"
+msgstr ""
+
+#: ../src/bc.c:324
+msgid "PostNet"
+msgstr ""
+
+#: ../src/bc.c:327
+#, fuzzy
+msgid "Pharmacode"
+msgstr "Kod paskowy"
+
+#: ../src/bc.c:330
+msgid "Pharmacode 2-track"
+msgstr ""
+
+#: ../src/bc.c:333
+msgid "Pharmazentral Nummer (PZN)"
+msgstr ""
+
+#: ../src/bc.c:336
+msgid "QR Code"
+msgstr ""
+
+#: ../src/bc.c:339
+msgid "Royal Mail 4-State"
+msgstr ""
+
+#: ../src/bc.c:342
+#, fuzzy
+msgid "Telepen"
+msgstr "Usuñ"
+
+#: ../src/bc.c:345
+msgid "Telepen Numeric"
+msgstr ""
+
+#: ../src/bc.c:354
+msgid "USPS One Code"
+msgstr ""
+
+#: ../src/bc.c:357
+msgid "UK Plessey"
+msgstr ""
+
+#: ../src/bc.c:364
 msgid "IEC16022 (DataMatrix)"
 msgstr ""
 
-#: ../src/bc.c:155
+#: ../src/bc.c:371
 msgid "IEC18004 (QRCode)"
 msgstr ""
 
@@ -311,41 +493,41 @@ msgstr ""
 msgid "White"
 msgstr ""
 
-#: ../src/color-combo-menu.c:116
-#, c-format
+#: ../src/color-combo-menu.c:117
+#, no-c-format
 msgid "10% Gray"
 msgstr ""
 
-#: ../src/color-combo-menu.c:117
-#, c-format
+#: ../src/color-combo-menu.c:119
+#, no-c-format
 msgid "25% Gray"
 msgstr ""
 
-#: ../src/color-combo-menu.c:118
-#, c-format
+#: ../src/color-combo-menu.c:121
+#, no-c-format
 msgid "40% Gray"
 msgstr ""
 
-#: ../src/color-combo-menu.c:119
-#, c-format
+#: ../src/color-combo-menu.c:123
+#, no-c-format
 msgid "50% Gray"
 msgstr ""
 
-#: ../src/color-combo-menu.c:120
-#, c-format
+#: ../src/color-combo-menu.c:125
+#, no-c-format
 msgid "60% Gray"
 msgstr ""
 
-#: ../src/color-combo-menu.c:121
+#: ../src/color-combo-menu.c:126
 msgid "Black"
 msgstr ""
 
-#: ../src/color-combo-menu.c:249 ../src/color-combo-menu.c:368
+#: ../src/color-combo-menu.c:254 ../src/color-combo-menu.c:373
 #, fuzzy
 msgid "Custom Color"
 msgstr "Kolor:"
 
-#: ../src/color-combo-menu.c:314
+#: ../src/color-combo-menu.c:319
 #, fuzzy, c-format
 msgid "Custom Color #%u"
 msgstr "Kolor:"
@@ -354,196 +536,480 @@ msgstr "Kolor:"
 msgid "gLabels Fatal Error!"
 msgstr ""
 
-#: ../src/file.c:86
+#: ../src/file.c:84
 msgid "New Label or Card"
 msgstr "Nowa etykieta lub karta"
 
-#: ../src/file.c:188
+#: ../src/file.c:175 ../src/label.c:587 ../src/label.c:631
 #, fuzzy
 msgid "Label properties"
 msgstr "W³a¶ciwo¶ci tekstu"
 
-#: ../src/file.c:291 ../src/file.c:581
+#: ../src/file.c:267 ../src/file.c:557
 msgid "All files"
 msgstr ""
 
-#: ../src/file.c:296 ../src/file.c:586
+#: ../src/file.c:272 ../src/file.c:562
 #, fuzzy
 msgid "gLabels documents"
 msgstr "Glabels: Preferencje"
 
-#: ../src/file.c:343 ../src/file.c:644
+#: ../src/file.c:319 ../src/file.c:620
 #, fuzzy
 msgid "Empty file name selection"
 msgstr "Usuwa wszelkie zaznaczenia"
 
-#: ../src/file.c:346 ../src/file.c:362
+#: ../src/file.c:322 ../src/file.c:338
 msgid "Please select a file or supply a valid file name"
 msgstr ""
 
-#: ../src/file.c:359
+#: ../src/file.c:335
 msgid "File does not exist"
 msgstr ""
 
-#: ../src/file.c:434
+#: ../src/file.c:410
 #, fuzzy, c-format
 msgid "Could not open file \"%s\""
 msgstr "Nie mo¿na otworzyæ pliku"
 
-#: ../src/file.c:437
+#: ../src/file.c:413
 msgid "Not a supported file format"
 msgstr ""
 
-#: ../src/file.c:515 ../src/file.c:694
+#: ../src/file.c:491 ../src/file.c:670
 #, fuzzy, c-format
 msgid "Could not save file \"%s\""
 msgstr "Nie mo¿na zapisaæ pliku"
 
-#: ../src/file.c:519 ../src/file.c:698
+#: ../src/file.c:495 ../src/file.c:674
 msgid "Error encountered during save.  The file is still not saved."
 msgstr ""
 
-#: ../src/file.c:559
+#: ../src/file.c:535
 #, fuzzy, c-format
 msgid "Save \"%s\" as"
 msgstr "Zapisz etykietê jako"
 
-#: ../src/file.c:647
+#: ../src/file.c:623
 #, fuzzy
 msgid "Please supply a valid file name"
 msgstr "Nale¿y podaæ nazwê pliku"
 
-#: ../src/file.c:668
+#: ../src/file.c:644
 #, c-format
 msgid "Overwrite file \"%s\"?"
 msgstr ""
 
-#: ../src/file.c:672
+#: ../src/file.c:648
 msgid "File already exists."
 msgstr ""
 
-#: ../src/file.c:768
+#: ../src/file.c:744
 #, c-format
 msgid "Save changes to document \"%s\" before closing?"
 msgstr ""
 
-#: ../src/file.c:772
+#: ../src/file.c:748
 msgid "Your changes will be lost if you don't save them."
 msgstr ""
 
-#: ../src/file.c:775
+#: ../src/file.c:751
 msgid "Close without saving"
 msgstr ""
 
-#: ../src/font-combo-menu.c:127
+#: ../src/font-combo-menu.c:137
+msgid "Recent fonts"
+msgstr ""
+
+#: ../src/font-combo-menu.c:152
 msgid "Proportional fonts"
 msgstr ""
 
-#: ../src/font-combo-menu.c:142
+#: ../src/font-combo-menu.c:160
 msgid "Fixed-width fonts"
 msgstr ""
 
-#: ../src/font-combo-menu.c:157
+#: ../src/font-combo-menu.c:168
 msgid "All fonts"
 msgstr ""
 
-#: ../src/glabels-batch.c:51
+#.
+#. * Allow text samples to be localized.
+#. *
+#. * FIXME: if we could extract enough meta information from the fonts
+#. * themselves, perhaps rather than setting these globally for the
+#. * current locale, they could be unique to each font family.
+#.
+#: ../src/font-combo-menu-item.c:132
+msgctxt "Short sample text"
+msgid "Aa"
+msgstr ""
+
+#: ../src/font-combo-menu-item.c:134
+msgctxt "Lower case sample text"
+msgid "abcdefghijklmnopqrstuvwxyz"
+msgstr ""
+
+#: ../src/font-combo-menu-item.c:136
+msgctxt "Upper case sample text"
+msgid "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr ""
+
+#: ../src/font-combo-menu-item.c:138
+msgctxt "Numbers and special characters sample text"
+msgid "0123456789 .:,;(*!?)"
+msgstr ""
+
+#: ../src/font-combo-menu-item.c:157
+#, fuzzy
+msgid "Sample text"
+msgstr "Próbne dane"
+
+#: ../src/glabels-batch.c:53
 #, fuzzy
 msgid "set output filename (default=\"output.pdf\")"
 msgstr "okre¶l nazwê pliku wyj¶ciowego (domy¶lnie=\"output.ps\")"
 
-#: ../src/glabels-batch.c:51 ../src/glabels-batch.c:65
+#: ../src/glabels-batch.c:53 ../src/glabels-batch.c:67
 msgid "filename"
 msgstr "nazwa pliku"
 
-#: ../src/glabels-batch.c:53
+#: ../src/glabels-batch.c:55
 msgid "number of sheets (default=1)"
 msgstr "liczba arkuszy (domy¶lnie=1)"
 
-#: ../src/glabels-batch.c:53
+#: ../src/glabels-batch.c:55
 msgid "sheets"
 msgstr "arkusz(e/y)"
 
-#: ../src/glabels-batch.c:55
+#: ../src/glabels-batch.c:57
 msgid "number of copies (default=1)"
 msgstr "liczba kopii (domy¶lnie=1)"
 
-#: ../src/glabels-batch.c:55
+#: ../src/glabels-batch.c:57
 msgid "copies"
 msgstr "kopi(a/e/i)"
 
-#: ../src/glabels-batch.c:57
+#: ../src/glabels-batch.c:59
 #, fuzzy
 msgid "first label on first sheet (default=1)"
 msgstr "liczba arkuszy (domy¶lnie=1)"
 
-#: ../src/glabels-batch.c:57
+#: ../src/glabels-batch.c:59
 msgid "first"
 msgstr ""
 
-#: ../src/glabels-batch.c:59
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:13
-msgid "print outlines (to test printer alignment)"
-msgstr "drukowanie ramek (w celu przetestowania wyrównania)"
+#: ../src/glabels-batch.c:61 ../data/ui/print-op-dialog-custom-widget.ui.h:13
+msgid "print outlines (to test printer alignment)"
+msgstr "drukowanie ramek (w celu przetestowania wyrównania)"
+
+#: ../src/glabels-batch.c:63 ../data/ui/print-op-dialog-custom-widget.ui.h:12
+msgid "print in reverse (i.e. a mirror image)"
+msgstr "drukowanie odwrócone (np. odbicie zwierciadlane)"
+
+#: ../src/glabels-batch.c:65 ../data/ui/print-op-dialog-custom-widget.ui.h:11
+msgid "print crop marks"
+msgstr ""
+
+#: ../src/glabels-batch.c:67
+msgid "input file for merging"
+msgstr ""
+
+#: ../src/glabels-batch.c:69 ../src/glabels.c:64
+msgid "[FILE...]"
+msgstr ""
+
+#: ../src/glabels-batch.c:99
+msgid "Print files created with gLabels."
+msgstr ""
+
+#: ../src/glabels-batch.c:107 ../src/glabels.c:89
+#, c-format
+msgid ""
+"%s\n"
+"Run '%s --help' to see a full list of available command line options.\n"
+msgstr ""
+
+#: ../src/glabels-batch.c:151
+#, fuzzy, c-format
+msgid "cannot perform document merge with glabels file %s\n"
+msgstr "nie mo¿na otworzyæ pliku glabels o nazwie %s\n"
+
+#: ../src/glabels-batch.c:186
+#, c-format
+msgid "cannot open glabels file %s\n"
+msgstr "nie mo¿na otworzyæ pliku glabels o nazwie %s\n"
+
+#: ../src/glabels.c:81
+msgid "Launch gLabels label and business card designer."
+msgstr ""
+
+#: ../src/label-barcode.c:154 ../src/ui.c:319
+msgid "Create barcode object"
+msgstr "Tworzy kod paskowy"
+
+#: ../src/label-barcode.c:227 ../src/label-barcode.c:389
+#, fuzzy
+msgid "Barcode data"
+msgstr "Dane kodu paskowego"
+
+#: ../src/label-barcode.c:263
+#, fuzzy
+msgid "Barcode property"
+msgstr "Modyfikacja w³a¶ciwo¶ci kodu paskowego"
+
+#: ../src/label-barcode.c:485
+#, fuzzy
+msgid "Barcode data empty"
+msgstr "Dane kodu paskowego"
+
+#: ../src/label-barcode.c:489
+#, fuzzy
+msgid "Invalid barcode data"
+msgstr "Niepoprawny kod paskowy"
+
+#: ../src/label-box.c:156
+#, fuzzy
+msgid "Create box object"
+msgstr "Tworzy obiekt tekstowy"
+
+#: ../src/label-box.c:230 ../src/label-ellipse.c:232 ../src/stock.c:93
+#: ../data/ui/property-bar.ui.h:3
+msgid "Fill color"
+msgstr ""
+
+#: ../src/label-box.c:261 ../src/label-ellipse.c:261 ../src/label-line.c:212
+#: ../src/stock.c:94 ../data/ui/property-bar.ui.h:8
+msgid "Line color"
+msgstr ""
+
+#: ../src/label-box.c:289 ../src/label-ellipse.c:290 ../src/label-line.c:241
+#: ../data/ui/property-bar.ui.h:9
+msgid "Line width"
+msgstr ""
+
+#: ../src/label.c:402
+msgid "Untitled"
+msgstr ""
+
+#: ../src/label.c:705 ../src/ui.c:422
+#, fuzzy
+msgid "Merge properties"
+msgstr "W³a¶ciwo¶ci z³±czania"
+
+#: ../src/label.c:1197 ../src/ui.c:215
+msgid "Delete"
+msgstr "Usuñ"
+
+#: ../src/label.c:1230 ../src/ui.c:324
+#, fuzzy
+msgid "Bring to front"
+msgstr "Przesun na wierzch"
+
+#: ../src/label.c:1266 ../src/ui.c:331
+#, fuzzy
+msgid "Send to back"
+msgstr "Przesuñ w dó³"
+
+#: ../src/label.c:1307
+#, fuzzy
+msgid "Rotate"
+msgstr "Obróæ"
+
+#: ../src/label.c:1342 ../src/ui.c:338
+#, fuzzy
+msgid "Rotate left"
+msgstr "Obróæ"
+
+#: ../src/label.c:1375 ../src/ui.c:345
+#, fuzzy
+msgid "Rotate right"
+msgstr "Obróæ"
+
+#: ../src/label.c:1410 ../src/ui.c:352
+msgid "Flip horizontally"
+msgstr ""
+
+#: ../src/label.c:1445 ../src/ui.c:359
+msgid "Flip vertically"
+msgstr ""
+
+#: ../src/label.c:1485 ../src/ui.c:366
+#, fuzzy
+msgid "Align left"
+msgstr "Wyrównanie:"
+
+#: ../src/label.c:1542 ../src/ui.c:373
+msgid "Align right"
+msgstr ""
+
+#: ../src/label.c:1603 ../src/ui.c:380
+msgid "Align horizontal center"
+msgstr ""
+
+#: ../src/label.c:1679 ../src/ui.c:387
+#, fuzzy
+msgid "Align tops"
+msgstr "Wyrównanie:"
+
+#: ../src/label.c:1736 ../src/ui.c:394
+msgid "Align bottoms"
+msgstr ""
+
+#: ../src/label.c:1797 ../src/ui.c:401
+msgid "Align vertical center"
+msgstr ""
+
+#: ../src/label.c:1875 ../src/ui.c:408
+msgid "Center horizontally"
+msgstr ""
+
+#: ../src/label.c:1922 ../src/ui.c:415
+#, fuzzy
+msgid "Center vertically"
+msgstr "Ogólne"
+
+#: ../src/label.c:2610 ../src/label.c:2652 ../src/label.c:2678 ../src/ui.c:208
+msgid "Paste"
+msgstr ""
+
+#: ../src/label-ellipse.c:160
+#, fuzzy
+msgid "Create ellipse object"
+msgstr "Tworzy liniê"
+
+#: ../src/label-image.c:200 ../src/ui.c:312
+msgid "Create image object"
+msgstr "Tworzy obraz"
+
+#: ../src/label-image.c:333 ../src/label-image.c:474
+#, fuzzy
+msgid "Set image"
+msgstr "Wyzeruj rozmiar obrazu"
+
+#: ../src/label-line.c:147 ../src/ui.c:298
+msgid "Create line object"
+msgstr "Tworzy liniê"
+
+#: ../src/label-object.c:383 ../src/label-object.c:416
+msgid "Move"
+msgstr ""
+
+#: ../src/label-object.c:467
+#, fuzzy
+msgid "Resize"
+msgstr "Rozmiar strony:"
+
+#: ../src/label-object.c:1185
+msgid "Shadow state"
+msgstr ""
+
+#: ../src/label-object.c:1228
+msgid "Shadow offset"
+msgstr ""
+
+#: ../src/label-object.c:1276
+msgid "Shadow color"
+msgstr ""
+
+#: ../src/label-object.c:1319
+msgid "Shadow opacity"
+msgstr ""
+
+#: ../src/label-text.c:279 ../src/ui.c:284
+msgid "Create text object"
+msgstr "Tworzy obiekt tekstowy"
+
+#: ../src/label-text.c:451
+msgid "Typing"
+msgstr ""
+
+#: ../src/label-text.c:584 ../data/ui/property-bar.ui.h:4
+#, fuzzy
+msgid "Font family"
+msgstr "Nie zapisuj"
+
+#: ../src/label-text.c:622 ../data/ui/property-bar.ui.h:5
+#, fuzzy
+msgid "Font size"
+msgstr "Nie zapisuj"
+
+#: ../src/label-text.c:655
+#, fuzzy
+msgid "Font weight"
+msgstr "Obróæ"
+
+#: ../src/label-text.c:688 ../data/ui/property-bar.ui.h:6
+msgid "Italic"
+msgstr ""
+
+#: ../src/label-text.c:721
+#, fuzzy
+msgid "Align text"
+msgstr "Wyrównanie:"
 
-#: ../src/glabels-batch.c:61
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:12
-msgid "print in reverse (i.e. a mirror image)"
-msgstr "drukowanie odwrócone (np. odbicie zwierciadlane)"
+#: ../src/label-text.c:754
+msgid "Line spacing"
+msgstr ""
 
-#: ../src/glabels-batch.c:63
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:11
-msgid "print crop marks"
+#: ../src/label-text.c:787 ../data/ui/property-bar.ui.h:11
+msgid "Text color"
 msgstr ""
 
-#: ../src/glabels-batch.c:65
-msgid "input file for merging"
+#: ../src/label-text.c:931
+msgid "Auto shrink"
 msgstr ""
 
-#: ../src/glabels-batch.c:67 ../src/glabels.c:62
-msgid "[FILE...]"
+#: ../src/media-select.c:349 ../src/media-select.c:353
+#: ../src/media-select.c:502 ../src/media-select.c:701
+msgctxt "Brand"
+msgid "Any"
 msgstr ""
 
-#: ../src/glabels-batch.c:96
-msgid "Print files created with gLabels."
+#: ../src/media-select.c:358 ../src/media-select.c:871
+msgctxt "Page size"
+msgid "Any"
 msgstr ""
 
-#: ../src/glabels-batch.c:104 ../src/glabels.c:87
-#, c-format
-msgid ""
-"%s\n"
-"Run '%s --help' to see a full list of available command line options.\n"
+#: ../src/media-select.c:367 ../src/media-select.c:370
+#: ../src/media-select.c:880
+msgctxt "Category"
+msgid "Any"
 msgstr ""
 
-#: ../src/glabels-batch.c:146
-#, fuzzy, c-format
-msgid "cannot perform document merge with glabels file %s\n"
-msgstr "nie mo¿na otworzyæ pliku glabels o nazwie %s\n"
+#: ../src/media-select.c:968
+#, fuzzy
+msgid "No recent templates found."
+msgstr "Nie znaleziono pliku szablonu!"
 
-#: ../src/glabels-batch.c:180
-#, c-format
-msgid "cannot open glabels file %s\n"
-msgstr "nie mo¿na otworzyæ pliku glabels o nazwie %s\n"
+#: ../src/media-select.c:970
+msgid "Try selecting a template in the \"Search all\" tab."
+msgstr ""
 
-#: ../src/glabels.c:79
-msgid "Launch gLabels label and business card designer."
+#. Translators: "No match" means that for the given template search criteria, there
+#. * were no matches found.
+#: ../src/media-select.c:1061
+msgid "No match."
 msgstr ""
 
-#: ../src/label-barcode.c:435
-#, fuzzy
-msgid "Barcode data empty"
-msgstr "Dane kodu paskowego"
+#: ../src/media-select.c:1063
+msgid "Try selecting a different brand, page size or category."
+msgstr ""
 
-#: ../src/label-barcode.c:439
+#: ../src/media-select.c:1157
 #, fuzzy
-msgid "Invalid barcode data"
-msgstr "Niepoprawny kod paskowy"
+msgid "No custom templates found."
+msgstr "Nie znaleziono pliku szablonu!"
 
-#: ../src/label.c:547
-msgid "Untitled"
+#: ../src/media-select.c:1159
+msgid ""
+"You may create new templates or try searching for pre-defined templates in "
+"the \"Search all\" tab."
 msgstr ""
 
-#: ../src/merge.c:169 ../src/merge.c:210 ../src/merge.c:374 ../src/merge.c:377
+#. Translators: "None" here means that no document-merge source or
+#. * method has been selected.
+#: ../src/merge.c:171 ../src/merge.c:212 ../src/merge.c:376 ../src/merge.c:379
 msgid "None"
 msgstr "Brak"
 
@@ -566,140 +1032,182 @@ msgid "Couldn't get contacts."
 msgstr ""
 
 #: ../src/merge-init.c:57
-#, fuzzy
-msgid "Text file with comma delimeters (CSV)"
-msgstr "Tekst oddzielony przecinkami (CSV)"
+msgid "Text: Comma Separated Values (CSV)"
+msgstr ""
 
 #: ../src/merge-init.c:64
-#, fuzzy
-msgid "Text file with colon delimeters"
-msgstr "Tekst oddzielany dwukropkami"
+msgid "Text: Comma Separated Values (CSV) with keys on line 1"
+msgstr ""
 
-#: ../src/merge-init.c:71
-#, fuzzy
-msgid "Text file with tab delimeters"
-msgstr "Tekst oddzielony tabulacjami"
+#: ../src/merge-init.c:72
+msgid "Text: Tab Separated Values (TSV)"
+msgstr ""
 
-#: ../src/merge-init.c:80
-msgid "Data from default Evolution Addressbook"
+#: ../src/merge-init.c:79
+msgid "Text: Tab Separated Values (TSV) with keys on line 1"
 msgstr ""
 
-#: ../src/merge-init.c:86
-msgid "Data from a file containing VCards"
+#: ../src/merge-init.c:87
+msgid "Text: Colon separated values"
 msgstr ""
 
-#: ../src/merge-properties-dialog.c:279
+#: ../src/merge-init.c:94
+msgid "Text: Colon separated values with keys on line 1"
+msgstr ""
+
+#: ../src/merge-init.c:102
+msgid "Text: Semicolon separated values"
+msgstr ""
+
+#: ../src/merge-init.c:109
+msgid "Text: Semicolon separated values with keys on line 1"
+msgstr ""
+
+#: ../src/merge-init.c:119
+#, fuzzy
+msgid "Evolution Addressbook"
+msgstr "Nie mo¿na otworzyæ pliku"
+
+#: ../src/merge-init.c:125
+msgid "VCards"
+msgstr ""
+
+#: ../src/merge-properties-dialog.c:282
 #, fuzzy
 msgid "Merge Properties"
 msgstr "W³a¶ciwo¶ci z³±czania"
 
-#: ../src/merge-properties-dialog.c:305 ../src/merge-properties-dialog.c:421
+#: ../src/merge-properties-dialog.c:308 ../src/merge-properties-dialog.c:424
 msgid "Select merge-database source"
 msgstr "Wybierz Œród³o bazy danych z³±czania "
 
-#: ../src/merge-properties-dialog.c:316 ../src/merge-properties-dialog.c:443
+#: ../src/merge-properties-dialog.c:319 ../src/merge-properties-dialog.c:450
 msgid "N/A"
 msgstr "N/A"
 
-#: ../src/merge-properties-dialog.c:342
+#: ../src/merge-properties-dialog.c:345
 msgid "Select"
 msgstr "Wybierz"
 
-#: ../src/merge-properties-dialog.c:349
+#: ../src/merge-properties-dialog.c:352
 msgid "Record/Field"
 msgstr ""
 
-#: ../src/merge-properties-dialog.c:357
-#: ../data/builder/object-editor.builder.h:10
+#: ../src/merge-properties-dialog.c:360 ../data/ui/object-editor.ui.h:8
 msgid "Data"
 msgstr "Dane"
 
-#: ../src/merge-properties-dialog.c:436
+#. Translators: "Fixed" here means that for the given document-merge method, there are
+#. * no further choices to further define the source of data.  E.g. if you select the
+#. * evolution-data-server, there are no further choices -- the source is "Fixed."
+#.
+#: ../src/merge-properties-dialog.c:443
 #, fuzzy
 msgid "Fixed"
 msgstr "Pola"
 
-#: ../src/new-label-dialog.c:112
-#, fuzzy
-msgid "<b>Media type</b>"
-msgstr "Typ no¶nika"
+#. Translators: "Up" refers to the direction towards the top of a label.
+#: ../src/mini-preview.c:1074
+msgid "Up"
+msgstr ""
 
-#: ../src/new-label-dialog.c:122
+#: ../src/new-label-dialog.c:203
 #, fuzzy
-msgid "<b>Label orientation</b>"
-msgstr "U³o¿enie etykiety"
+msgid "Select Product"
+msgstr "Wybierz"
+
+#: ../src/new-label-dialog.c:215
+msgid "Choose Orientation"
+msgstr ""
+
+#: ../src/new-label-dialog.c:229
+msgid "Review"
+msgstr ""
 
-#: ../src/object-editor-bc-page.c:91 ../src/object-editor-shadow-page.c:91
-#: ../src/object-editor-text-page.c:97 ../src/prefs-dialog.c:337
-#: ../src/ui-property-bar.c:278
+#: ../src/object-editor-bc-page.c:93 ../src/object-editor-shadow-page.c:93
+#: ../src/object-editor-text-page.c:97 ../src/prefs-dialog.c:339
+#: ../src/ui-property-bar.c:280
 #, fuzzy
 msgid "Default"
 msgstr "Usuñ"
 
-#: ../src/object-editor-fill-page.c:79 ../src/prefs-dialog.c:343
-#: ../src/ui-property-bar.c:290
+#: ../src/object-editor.c:159 ../src/object-editor.c:460
+#, fuzzy
+msgid "Object properties"
+msgstr "W³a¶ciwo¶ci tekstu"
+
+#: ../src/object-editor.c:309
+#, fuzzy
+msgid "Box object properties"
+msgstr "Modyfikacja w³a¶ciwo¶ci skrzynki"
+
+#: ../src/object-editor.c:328
+#, fuzzy
+msgid "Ellipse object properties"
+msgstr "Modyfikacja w³a¶ciwo¶ci elipsy"
+
+#: ../src/object-editor.c:347
+#, fuzzy
+msgid "Line object properties"
+msgstr "Modyfikacja w³a¶ciwo¶ci skrzynki"
+
+#: ../src/object-editor.c:364
+#, fuzzy
+msgid "Image object properties"
+msgstr "Modyfikacja w³a¶ciwo¶ci obrazu"
+
+#: ../src/object-editor.c:381
+#, fuzzy
+msgid "Text object properties"
+msgstr "Modyfikacja w³a¶ciwo¶ci skrzynki"
+
+#: ../src/object-editor.c:403
+#, fuzzy
+msgid "Barcode object properties"
+msgstr "Modyfikacja w³a¶ciwo¶ci kodu paskowego"
+
+#: ../src/object-editor-edit-page.c:76
+msgid "Insert merge field"
+msgstr "Wstaw pole z³±czenia"
+
+#: ../src/object-editor-fill-page.c:79 ../src/prefs-dialog.c:345
+#: ../src/ui-property-bar.c:292
 #, fuzzy
 msgid "No Fill"
 msgstr "Wype³nienie"
 
-#: ../src/object-editor-image-page.c:270
+#: ../src/object-editor-image-page.c:278
 msgid "All Files"
 msgstr ""
 
-#: ../src/object-editor-image-page.c:275
+#: ../src/object-editor-image-page.c:283
 #, fuzzy
 msgid "All Images"
 msgstr "Obraz"
 
-#: ../src/object-editor-image-page.c:290
+#: ../src/object-editor-image-page.c:298
 #, c-format
 msgid "%s (*.%s)"
 msgstr ""
 
-#: ../src/object-editor-line-page.c:79 ../src/prefs-dialog.c:340
-#: ../src/ui-property-bar.c:302
+#: ../src/object-editor-line-page.c:79 ../src/prefs-dialog.c:342
+#: ../src/ui-property-bar.c:304
 #, fuzzy
 msgid "No Line"
 msgstr "Brak"
 
-#. Should not happen
-#: ../src/prefs.c:156 ../src/prefs.c:163
-#: ../data/builder/object-editor.builder.h:42
-#: ../data/builder/prefs-dialog.builder.h:22
-msgid "points"
-msgstr "punkty(-ów)"
-
-#: ../src/prefs.c:158 ../data/builder/object-editor.builder.h:41
-#: ../data/builder/template-designer.builder.h:64
-msgid "inches"
-msgstr "cali"
-
-#: ../src/prefs.c:160
-msgid "mm"
-msgstr "mm"
-
-#: ../src/prefs-dialog.c:172 ../data/builder/prefs-dialog.builder.h:21
+#: ../src/prefs-dialog.c:172 ../data/ui/prefs-dialog.ui.h:21
 #, fuzzy
 msgid "gLabels Preferences"
 msgstr "Glabels: Preferencje"
 
 #. ===================================================================
-#: ../src/print-op.c:203 ../src/print-op-dialog.c:217
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:6
+#: ../src/print-op.c:205 ../src/print-op-dialog.c:217
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:4
 #: ../templates/misc-iso-templates.xml.h:34
 msgid "Labels"
 msgstr "Etykiety"
 
-#: ../src/rotate-label-button.c:122
-#, fuzzy
-msgid "Normal"
-msgstr "Format:"
-
-#: ../src/rotate-label-button.c:133
-#, fuzzy
-msgid "Rotated"
-msgstr "Obróæ"
-
 #: ../src/stock.c:70
 #, fuzzy
 msgid "_Select Mode"
@@ -802,14 +1310,6 @@ msgstr ""
 msgid "Label Ce_nter"
 msgstr ""
 
-#: ../src/stock.c:93 ../data/builder/property-bar.builder.h:3
-msgid "Fill color"
-msgstr ""
-
-#: ../src/stock.c:94 ../data/builder/property-bar.builder.h:7
-msgid "Line color"
-msgstr ""
-
 #: ../src/stock.c:95 ../src/stock.c:97
 #, fuzzy
 msgid "Linked"
@@ -820,579 +1320,498 @@ msgstr "Linia"
 msgid "Not Linked"
 msgstr "Brak"
 
-#: ../src/template-designer.c:401
-msgid "gLabels Template Designer"
+#: ../src/template-designer.c:404
+msgid "New gLabels Template"
 msgstr ""
 
-#: ../src/template-designer.c:456
+#: ../src/template-designer.c:461
 msgid "Welcome"
 msgstr ""
 
-#: ../src/template-designer.c:495
+#: ../src/template-designer.c:500
 #, fuzzy
 msgid "Name and Description"
 msgstr "Opis:"
 
-#: ../src/template-designer.c:543
+#: ../src/template-designer.c:548
 #, fuzzy
 msgid "Page Size"
 msgstr "Rozmiar strony:"
 
-#: ../src/template-designer.c:609
+#: ../src/template-designer.c:614
 #, fuzzy
 msgid "Label or Card Shape"
 msgstr "Nowa etykieta lub karta"
 
-#: ../src/template-designer.c:655
+#: ../src/template-designer.c:661
 #, fuzzy
 msgid "Label or Card Size"
 msgstr "Nowa etykieta lub karta"
 
-#: ../src/template-designer.c:751
+#: ../src/template-designer.c:760
 #, fuzzy
 msgid "Label Size (round)"
 msgstr "Rozmiar etykiety:"
 
-#: ../src/template-designer.c:829
+#: ../src/template-designer.c:841
 msgid "Label Size (CD/DVD)"
 msgstr ""
 
-#: ../src/template-designer.c:917
+#: ../src/template-designer.c:932
 msgid "Number of Layouts"
 msgstr ""
 
-#: ../src/template-designer.c:981
+#: ../src/template-designer.c:1000
 #, fuzzy
 msgid "Layout(s)"
 msgstr "Wygl±d:"
 
-#: ../src/template-designer.c:1086
+#: ../src/template-designer.c:1105
 msgid "Design Completed"
 msgstr ""
 
-#: ../src/template-designer.c:1259
-msgid ""
-"<span foreground='red' weight='bold'>Brand and part# match an existing "
-"template!</span>"
+#: ../src/template-designer.c:1133
+msgid "Edit gLabels Template"
+msgstr ""
+
+#: ../src/template-designer.c:1423
+msgid "Brand and part# match an existing template!"
 msgstr ""
 
 #. Menu entries.
-#: ../src/ui.c:88
+#: ../src/ui.c:93
 #, fuzzy
 msgid "_File"
 msgstr "Wype³nienie"
 
-#: ../src/ui.c:89
+#: ../src/ui.c:94
 #, fuzzy
 msgid "Open Recent _Files"
 msgstr "Otwiera plik"
 
-#: ../src/ui.c:90
+#: ../src/ui.c:95
 msgid "_Edit"
 msgstr ""
 
-#: ../src/ui.c:91
+#: ../src/ui.c:96
 #, fuzzy
 msgid "_View"
 msgstr "_Nowa"
 
-#: ../src/ui.c:92
+#: ../src/ui.c:97
 msgid "Customize Main Toolbar"
 msgstr ""
 
-#: ../src/ui.c:93
+#: ../src/ui.c:98
 msgid "Customize Drawing Toolbar"
 msgstr ""
 
-#: ../src/ui.c:94
+#: ../src/ui.c:99
 msgid "Customize Properties Toolbar"
 msgstr ""
 
-#: ../src/ui.c:95
+#: ../src/ui.c:100
 msgid "_Objects"
 msgstr ""
 
-#: ../src/ui.c:96
+#: ../src/ui.c:101
 #, fuzzy
 msgid "_Create"
 msgstr "Tworzy obiekt tekstowy"
 
-#: ../src/ui.c:97
+#: ../src/ui.c:102
 msgid "_Order"
 msgstr ""
 
-#: ../src/ui.c:98
+#: ../src/ui.c:103
 #, fuzzy
 msgid "_Rotate/Flip"
 msgstr "Obróæ"
 
-#: ../src/ui.c:99
+#: ../src/ui.c:104
 msgid "Align _Horizontal"
 msgstr ""
 
-#: ../src/ui.c:100
+#: ../src/ui.c:105
 msgid "Align _Vertical"
 msgstr ""
 
-#: ../src/ui.c:101
+#: ../src/ui.c:106
 msgid "_Help"
 msgstr ""
 
 #. Popup entries.
-#: ../src/ui.c:104 ../src/ui.c:105
+#: ../src/ui.c:109 ../src/ui.c:110
 msgid "Context Menu"
 msgstr ""
 
-#: ../src/ui.c:110
+#: ../src/ui.c:115
 msgid "_New"
 msgstr "_Nowa"
 
-#: ../src/ui.c:112
+#: ../src/ui.c:117
 #, fuzzy
 msgid "Create a new file"
 msgstr "Tworzy liniê"
 
-#: ../src/ui.c:117
+#: ../src/ui.c:122
 #, fuzzy
 msgid "_Open..."
 msgstr "Otwórz"
 
-#: ../src/ui.c:119
+#: ../src/ui.c:124
 msgid "Open a file"
 msgstr "Otwiera plik"
 
-#: ../src/ui.c:124
+#: ../src/ui.c:129
 #, fuzzy
 msgid "_Save"
 msgstr "Zapisz jako"
 
-#: ../src/ui.c:126
+#: ../src/ui.c:131
 #, fuzzy
 msgid "Save current file"
 msgstr "Zapisuje bie¿±cy plik"
 
-#: ../src/ui.c:131
+#: ../src/ui.c:136
 #, fuzzy
 msgid "Save _As..."
 msgstr "Zapisz jako"
 
-#: ../src/ui.c:133
+#: ../src/ui.c:138
 #, fuzzy
 msgid "Save the current file to a different name"
 msgstr "Zapisuje bie¿±cy plik"
 
-#: ../src/ui.c:138
+#: ../src/ui.c:143
 #, fuzzy
 msgid "_Print..."
 msgstr "Wydrukuj"
 
-#: ../src/ui.c:140
+#: ../src/ui.c:145
 #, fuzzy
 msgid "Print the current file"
 msgstr "Drukuje bie¿±cy plik"
 
-#: ../src/ui.c:145
+#: ../src/ui.c:150
 #, fuzzy
 msgid "Properties..."
 msgstr "W³a¶ciwo¶ci tekstu"
 
-#: ../src/ui.c:147
+#: ../src/ui.c:152
 #, fuzzy
 msgid "Modify document properties"
 msgstr "Modyfikacja w³a¶ciwo¶ci z³±czania dokumentów"
 
-#: ../src/ui.c:152
+#: ../src/ui.c:157
 msgid "Template _Designer..."
 msgstr ""
 
-#: ../src/ui.c:154
+#: ../src/ui.c:159
 #, fuzzy
 msgid "Create a custom template"
 msgstr "Tworzy liniê"
 
-#: ../src/ui.c:159
+#: ../src/ui.c:164
 msgid "_Close"
 msgstr ""
 
-#: ../src/ui.c:161
+#: ../src/ui.c:166
 #, fuzzy
 msgid "Close the current file"
 msgstr "Zapisuje bie¿±cy plik"
 
-#: ../src/ui.c:166
+#: ../src/ui.c:171
 msgid "_Quit"
 msgstr ""
 
-#: ../src/ui.c:168
+#: ../src/ui.c:173
 msgid "Quit the program"
 msgstr ""
 
-#: ../src/ui.c:175
+#: ../src/ui.c:180 ../src/ui.c:182 ../src/ui.c:967
+msgid "Undo"
+msgstr ""
+
+#: ../src/ui.c:187 ../src/ui.c:189 ../src/ui.c:974
+msgid "Redo"
+msgstr ""
+
+#: ../src/ui.c:194
 msgid "Cut"
 msgstr ""
 
-#: ../src/ui.c:177
+#: ../src/ui.c:196
 msgid "Cut the selection"
 msgstr ""
 
-#: ../src/ui.c:182
+#: ../src/ui.c:201
 msgid "Copy"
 msgstr ""
 
-#: ../src/ui.c:184
+#: ../src/ui.c:203
 #, fuzzy
 msgid "Copy the selection"
 msgstr "Usuwa wszelkie zaznaczenia"
 
-#: ../src/ui.c:189
-msgid "Paste"
-msgstr ""
-
-#: ../src/ui.c:191
+#: ../src/ui.c:210
 msgid "Paste the clipboard"
 msgstr ""
 
-#: ../src/ui.c:196
-msgid "Delete"
-msgstr "Usuñ"
-
-#: ../src/ui.c:198
+#: ../src/ui.c:217
 #, fuzzy
 msgid "Delete the selected objects"
 msgstr "Tworzy obiekt tekstowy"
 
-#: ../src/ui.c:203
+#: ../src/ui.c:222
 #, fuzzy
 msgid "Select All"
 msgstr "O_dznacz wszystko"
 
-#: ../src/ui.c:205
+#: ../src/ui.c:224
 #, fuzzy
 msgid "Select all objects"
 msgstr "Wybierz, przeno¶ i modyfikuj obiekty"
 
-#: ../src/ui.c:210
+#: ../src/ui.c:229
 #, fuzzy
 msgid "Un-select All"
 msgstr "O_dznacz wszystko"
 
-#: ../src/ui.c:212
+#: ../src/ui.c:231
 msgid "Remove all selections"
 msgstr "Usuwa wszelkie zaznaczenia"
 
-#: ../src/ui.c:217
+#: ../src/ui.c:236
 #, fuzzy
 msgid "Preferences"
 msgstr "Glabels: Preferencje"
 
-#: ../src/ui.c:219
+#: ../src/ui.c:238
 msgid "Configure the application"
 msgstr ""
 
-#: ../src/ui.c:226
+#: ../src/ui.c:245
 #, fuzzy
 msgid "Zoom in"
 msgstr "Powiêksz"
 
-#: ../src/ui.c:228
+#: ../src/ui.c:247
 msgid "Increase magnification"
 msgstr ""
 
-#: ../src/ui.c:233
+#: ../src/ui.c:252
 #, fuzzy
 msgid "Zoom out"
 msgstr "Pomniejsz"
 
-#: ../src/ui.c:235
+#: ../src/ui.c:254
 msgid "Decrease magnification"
 msgstr ""
 
-#: ../src/ui.c:240
+#: ../src/ui.c:259
 #, fuzzy
 msgid "Zoom 1 to 1"
 msgstr "Powiêkszenie 1:1"
 
-#: ../src/ui.c:242
+#: ../src/ui.c:261
 msgid "Restore scale to 100%"
 msgstr ""
 
-#: ../src/ui.c:247
+#: ../src/ui.c:266
 #, fuzzy
 msgid "Zoom to fit"
 msgstr "Powiêksza 1:1"
 
-#: ../src/ui.c:249
+#: ../src/ui.c:268
 msgid "Set scale to fit window"
 msgstr ""
 
-#: ../src/ui.c:256
+#: ../src/ui.c:275
 #, fuzzy
 msgid "Select Mode"
 msgstr "Wybierz"
 
-#: ../src/ui.c:258
+#: ../src/ui.c:277
 msgid "Select, move and modify objects"
 msgstr "Wybierz, przeno¶ i modyfikuj obiekty"
 
-#: ../src/ui.c:263 ../src/view-text.c:501
-#: ../data/builder/object-editor.builder.h:31
+#: ../src/ui.c:282 ../src/view-text.c:102 ../data/ui/object-editor.ui.h:28
+#: ../data/ui/prefs-dialog.ui.h:17
 msgid "Text"
 msgstr "Tekst"
 
-#: ../src/ui.c:265
-msgid "Create text object"
-msgstr "Tworzy obiekt tekstowy"
-
-#: ../src/ui.c:270
+#: ../src/ui.c:289
 #, fuzzy
 msgid "Box"
 msgstr "Skrzynka"
 
-#: ../src/ui.c:272
+#: ../src/ui.c:291
 msgid "Create box/rectangle object"
 msgstr "Tworzy skrzynkê/prostok±t"
 
-#: ../src/ui.c:277 ../data/builder/object-editor.builder.h:20
+#: ../src/ui.c:296 ../data/ui/object-editor.ui.h:17
+#: ../data/ui/prefs-dialog.ui.h:9
 msgid "Line"
 msgstr "Linia"
 
-#: ../src/ui.c:279
-msgid "Create line object"
-msgstr "Tworzy liniê"
-
-#: ../src/ui.c:284
+#: ../src/ui.c:303
 #, fuzzy
 msgid "Ellipse"
 msgstr "Elipsa"
 
-#: ../src/ui.c:286
+#: ../src/ui.c:305
 msgid "Create ellipse/circle object"
 msgstr "Tworzy elipsê/okr±g"
 
-#: ../src/ui.c:291 ../data/builder/object-editor.builder.h:16
+#: ../src/ui.c:310 ../data/ui/object-editor.ui.h:14
 msgid "Image"
 msgstr "Obraz"
 
-#: ../src/ui.c:293
-msgid "Create image object"
-msgstr "Tworzy obraz"
-
-#: ../src/ui.c:298
+#: ../src/ui.c:317
 #, fuzzy
 msgid "Barcode"
 msgstr "Kod paskowy"
 
-#: ../src/ui.c:300
-msgid "Create barcode object"
-msgstr "Tworzy kod paskowy"
-
-#: ../src/ui.c:305
-#, fuzzy
-msgid "Bring to front"
-msgstr "Przesun na wierzch"
-
-#: ../src/ui.c:307
-msgid "Raise object to top"
-msgstr ""
-
-#: ../src/ui.c:312
-#, fuzzy
-msgid "Send to back"
-msgstr "Przesuñ w dó³"
-
-#: ../src/ui.c:314
-msgid "Lower object to bottom"
-msgstr ""
-
-#: ../src/ui.c:319
-#, fuzzy
-msgid "Rotate left"
-msgstr "Obróæ"
-
-#: ../src/ui.c:321
-msgid "Rotate object 90 degrees counter-clockwise"
-msgstr ""
-
 #: ../src/ui.c:326
-#, fuzzy
-msgid "Rotate right"
-msgstr "Obróæ"
-
-#: ../src/ui.c:328
-msgid "Rotate object 90 degrees clockwise"
+msgid "Raise object to top"
 msgstr ""
 
 #: ../src/ui.c:333
-msgid "Flip horizontally"
-msgstr ""
-
-#: ../src/ui.c:335
-msgid "Flip object horizontally"
+msgid "Lower object to bottom"
 msgstr ""
 
 #: ../src/ui.c:340
-msgid "Flip vertically"
-msgstr ""
-
-#: ../src/ui.c:342
-msgid "Flip object vertically"
+msgid "Rotate object 90 degrees counter-clockwise"
 msgstr ""
 
 #: ../src/ui.c:347
-#, fuzzy
-msgid "Align left"
-msgstr "Wyrównanie:"
-
-#: ../src/ui.c:349
-msgid "Align objects to left edges"
+msgid "Rotate object 90 degrees clockwise"
 msgstr ""
 
 #: ../src/ui.c:354
-msgid "Align right"
-msgstr ""
-
-#: ../src/ui.c:356
-msgid "Align objects to right edges"
+msgid "Flip object horizontally"
 msgstr ""
 
 #: ../src/ui.c:361
-msgid "Align horizontal center"
-msgstr ""
-
-#: ../src/ui.c:363
-msgid "Align objects to horizontal centers"
+msgid "Flip object vertically"
 msgstr ""
 
-#: ../src/ui.c:368
-#, fuzzy
-msgid "Align tops"
-msgstr "Wyrównanie:"
-
-#: ../src/ui.c:370
-#, fuzzy
-msgid "Align objects to top edges"
-msgstr "Modyfikacja w³a¶ciwo¶ci skrzynki"
-
-#: ../src/ui.c:375
-msgid "Align bottoms"
+#: ../src/ui.c:368
+msgid "Align objects to left edges"
 msgstr ""
 
-#: ../src/ui.c:377
-msgid "Align objects to bottom edges"
+#: ../src/ui.c:375
+msgid "Align objects to right edges"
 msgstr ""
 
 #: ../src/ui.c:382
-msgid "Align vertical center"
+msgid "Align objects to horizontal centers"
 msgstr ""
 
-#: ../src/ui.c:384
-msgid "Align objects to vertical centers"
+#: ../src/ui.c:389
+#, fuzzy
+msgid "Align objects to top edges"
+msgstr "Modyfikacja w³a¶ciwo¶ci skrzynki"
+
+#: ../src/ui.c:396
+msgid "Align objects to bottom edges"
 msgstr ""
 
-#: ../src/ui.c:389
-msgid "Center horizontally"
+#: ../src/ui.c:403
+msgid "Align objects to vertical centers"
 msgstr ""
 
-#: ../src/ui.c:391
+#: ../src/ui.c:410
 msgid "Center objects to horizontal label center"
 msgstr ""
 
-#: ../src/ui.c:396
-#, fuzzy
-msgid "Center vertically"
-msgstr "Ogólne"
-
-#: ../src/ui.c:398
+#: ../src/ui.c:417
 msgid "Center objects to vertical label center"
 msgstr ""
 
-#: ../src/ui.c:403
-#, fuzzy
-msgid "Merge properties"
-msgstr "W³a¶ciwo¶ci z³±czania"
-
-#: ../src/ui.c:405
+#: ../src/ui.c:424
 msgid "Edit merge properties"
 msgstr "Modyfikuje w³a¶ciwo¶ci z³±czania"
 
-#: ../src/ui.c:412
+#: ../src/ui.c:431
 msgid "Contents"
 msgstr ""
 
-#: ../src/ui.c:414
+#: ../src/ui.c:433
 #, fuzzy
 msgid "Open glabels manual"
 msgstr "Otwórz etykietê"
 
-#: ../src/ui.c:419
+#: ../src/ui.c:438
 msgid "About..."
 msgstr ""
 
-#: ../src/ui.c:421
+#: ../src/ui.c:440
 msgid "About glabels"
 msgstr ""
 
-#: ../src/ui.c:431
+#: ../src/ui.c:450
 msgid "Property toolbar"
 msgstr ""
 
-#: ../src/ui.c:433
+#: ../src/ui.c:452
 msgid "Change the visibility of the property toolbar in the current window"
 msgstr ""
 
-#: ../src/ui.c:439
+#: ../src/ui.c:458
 msgid "Grid"
 msgstr ""
 
-#: ../src/ui.c:441
+#: ../src/ui.c:460
 msgid "Change the visibility of the grid in the current window"
 msgstr ""
 
-#: ../src/ui.c:447
+#: ../src/ui.c:466
 msgid "Markup"
 msgstr ""
 
-#: ../src/ui.c:449
+#: ../src/ui.c:468
 msgid "Change the visibility of markup lines in the current window"
 msgstr ""
 
-#: ../src/ui.c:460
+#: ../src/ui.c:479
 msgid "Main toolbar"
 msgstr ""
 
-#: ../src/ui.c:462
+#: ../src/ui.c:481
 msgid "Change the visibility of the main toolbar in the current window"
 msgstr ""
 
-#: ../src/ui.c:468
+#: ../src/ui.c:487
 msgid "Drawing toolbar"
 msgstr ""
 
-#: ../src/ui.c:470
+#: ../src/ui.c:489
 msgid "Change the visibility of the drawing toolbar in the current window"
 msgstr ""
 
-#: ../src/ui-commands.c:1100
+#: ../src/ui-commands.c:1135
 msgid "Glabels includes contributions from:"
 msgstr ""
 
-#: ../src/ui-commands.c:1106
+#: ../src/ui-commands.c:1141
 msgid "See the file AUTHORS for additional credits,"
 msgstr ""
 
-#: ../src/ui-commands.c:1107
-msgid "or visit http://glabels.sourceforge.net/"
+#: ../src/ui-commands.c:1142
+msgid "or visit http://glabels.org/"
 msgstr ""
 
-#: ../src/ui-commands.c:1119
+#: ../src/ui-commands.c:1154
 msgid "A label and business card creation program.\n"
 msgstr ""
 
-#: ../src/ui-commands.c:1123
+#: ../src/ui-commands.c:1158
 msgid "translator-credits"
 msgstr ""
 
-#: ../src/ui-commands.c:1126
+#: ../src/ui-commands.c:1161
 #, fuzzy
 msgid ""
 "gLabels is free software: you can redistribute it and/or modify\n"
@@ -1416,220 +1835,199 @@ msgstr ""
 "GWARANCJI; nawet wynikaj±cej z RÊKOJMI lub U¯YWANIA W OKREŠLONYM CELU. "
 "Zajrzyj do Licencji Publicznej GNU aby uzyskaæ wiêcej szczegó³ów.\n"
 
-#: ../src/ui-commands.c:1153
+#: ../src/ui-commands.c:1190
 #, fuzzy
 msgid "glabels"
 msgstr "Etykiety"
 
-#: ../src/ui-sidebar.c:154
-#, fuzzy
-msgid "Object properties"
-msgstr "W³a¶ciwo¶ci tekstu"
-
-#. Build editor.
-#: ../src/view-barcode.c:176
-#, fuzzy
-msgid "Barcode object properties"
-msgstr "Modyfikacja w³a¶ciwo¶ci kodu paskowego"
-
-#. Build editor.
-#: ../src/view-box.c:176
-#, fuzzy
-msgid "Box object properties"
-msgstr "Modyfikacja w³a¶ciwo¶ci skrzynki"
-
-#. Build editor.
-#: ../src/view-ellipse.c:178
-#, fuzzy
-msgid "Ellipse object properties"
-msgstr "Modyfikacja w³a¶ciwo¶ci elipsy"
-
-#. Build editor.
-#: ../src/view-image.c:176
-#, fuzzy
-msgid "Image object properties"
-msgstr "Modyfikacja w³a¶ciwo¶ci obrazu"
-
-#. Build editor.
-#: ../src/view-line.c:176
-#, fuzzy
-msgid "Line object properties"
-msgstr "Modyfikacja w³a¶ciwo¶ci skrzynki"
-
-#. Build editor.
-#: ../src/view-text.c:180
-#, fuzzy
-msgid "Text object properties"
-msgstr "Modyfikacja w³a¶ciwo¶ci skrzynki"
-
 #: ../src/warning-handler.c:69
 #, fuzzy
 msgid "gLabels Error!"
 msgstr "Glabels: Preferencje"
 
-#: ../src/wdgt-media-select.c:290 ../src/wdgt-media-select.c:294
-#: ../src/wdgt-media-select.c:299 ../src/wdgt-media-select.c:308
-#: ../src/wdgt-media-select.c:311 ../src/wdgt-media-select.c:405
-#: ../src/wdgt-media-select.c:618 ../src/wdgt-media-select.c:627
-msgid "Any"
-msgstr ""
-
-#: ../src/wdgt-media-select.c:653
-#, fuzzy, c-format
-msgid "%d per sheet"
-msgstr "%d x %d (%d na arkusz)"
-
-#: ../src/wdgt-media-select.c:684
-#, c-format
-msgid "%s x %s %s"
-msgstr "%s x %s %s"
-
-#: ../src/wdgt-media-select.c:689
-#, c-format
-msgid "%.5g x %.5g %s"
-msgstr "%.5g x %.5g %s"
-
-#: ../src/wdgt-media-select.c:700 ../src/wdgt-media-select.c:714
-#, c-format
-msgid "%s %s diameter"
-msgstr ""
-
-#: ../src/wdgt-media-select.c:704 ../src/wdgt-media-select.c:718
-#, c-format
-msgid "%.5g %s diameter"
-msgstr ""
-
-#: ../src/wdgt-media-select.c:793
-#, fuzzy
-msgid "No recent templates found."
-msgstr "Nie znaleziono pliku szablonu!"
-
-#: ../src/wdgt-media-select.c:794
-msgid "Try selecting a template from the \"Search all templates\" page."
-msgstr ""
-
-#: ../src/wdgt-media-select.c:874
-msgid "No match."
-msgstr ""
-
-#: ../src/wdgt-media-select.c:875
-msgid "Try selecting a different brand, page size or category."
-msgstr ""
-
-#: ../src/window.c:256
+#: ../src/window.c:284
 msgid "(none) - gLabels"
 msgstr ""
 
-#: ../src/window.c:435
+#: ../src/window.c:485
 msgid "(modified)"
 msgstr ""
 
-#: ../src/xml-label-04.c:75 ../src/xml-label.c:320
+#: ../src/xml-label-04.c:75 ../src/xml-label.c:333
 #, c-format
 msgid "Bad root node = \"%s\""
 msgstr "Niepoprawny wêze³ g³ówny = \"%s\""
 
-#: ../src/xml-label-04.c:123 ../src/xml-label.c:403
+#: ../src/xml-label-04.c:123 ../src/xml-label.c:416
 #, c-format
 msgid "bad node =  \"%s\""
 msgstr "niepoprawny wêze³ = \"%s\""
 
-#: ../src/xml-label.c:187 ../src/xml-label.c:225
+#: ../src/xml-label.c:199 ../src/xml-label.c:237
 msgid "xmlParseFile error"
 msgstr "b³±d przetwarzania pliku xml"
 
-#: ../src/xml-label.c:262
+#: ../src/xml-label.c:274
 msgid "No document root"
 msgstr "Brak g³ównego dokumentu"
 
-#: ../src/xml-label.c:270
+#: ../src/xml-label.c:282
 msgid "Importing from glabels 0.1 format"
 msgstr ""
 
-#: ../src/xml-label.c:279
+#: ../src/xml-label.c:291
 msgid "Importing from glabels 0.4 format"
 msgstr ""
 
-#: ../src/xml-label.c:288
+#: ../src/xml-label.c:301
 #, fuzzy, c-format
 msgid "Unknown glabels Namespace -- Using %s"
 msgstr ""
 "dokument jest niepoprawnego typu, nie odnaleziono przestrzeni nazw glabels"
 
-#: ../src/xml-label.c:357
+#: ../src/xml-label.c:370
 #, fuzzy, c-format
 msgid "bad node in Document node =  \"%s\""
 msgstr "Niepoprawny wêze³ g³ówny = \"%s\""
 
-#: ../src/xml-label.c:850
+#: ../src/xml-label.c:868
 #, fuzzy, c-format
 msgid "bad node in Data node =  \"%s\""
 msgstr "niepoprawny wêze³ = \"%s\""
 
-#: ../src/xml-label.c:1092 ../libglabels/xml-template.c:664
+#: ../src/xml-label.c:944
+#, c-format
+msgid "Unknown embedded file format: \"%s\""
+msgstr ""
+
+#: ../src/xml-label.c:1150 ../libglabels/xml-template.c:802
 msgid "Utf8 conversion error."
 msgstr ""
 
-#: ../src/xml-label.c:1099
+#: ../src/xml-label.c:1157
 msgid "Problem saving xml file."
 msgstr "Problem podczas zapisu pliku xml."
 
 #. Create and append an "Other" entry.
-#: ../libglabels/db.c:109
+#. Translators: "Other" here means other page size.  Meaning a page size
+#. * other than the standard ones that libglabels knows about such as
+#. * "letter", "A4", etc.
+#: ../libglabels/db.c:270
 msgid "Other"
 msgstr ""
 
 #. Create and append a "User defined" entry.
-#: ../libglabels/db.c:122
+#: ../libglabels/db.c:279
 #, fuzzy
 msgid "User defined"
 msgstr "Wstaw pole z³±czenia"
 
-#: ../libglabels/db.c:473
+#: ../libglabels/db.c:665
 msgid ""
 "Unable to locate paper size definitions.  Libglabels may not be installed "
 "correctly!"
 msgstr ""
 
-#: ../libglabels/db.c:866
+#: ../libglabels/db.c:1057
 msgid ""
 "Unable to locate category definitions.  Libglabels may not be installed "
 "correctly!"
 msgstr ""
 
-#: ../libglabels/db.c:1450
+#: ../libglabels/db.c:2097
 msgid ""
 "Unable to locate any template files.  Libglabels may not be installed "
 "correctly!"
 msgstr ""
 
-#: ../libglabels/db.c:1527
+#: ../libglabels/db.c:2164
+#, c-format
+msgid "%s full page label"
+msgstr ""
+
+#: ../libglabels/template.c:156
 #, c-format
-msgid "Generic %s full page template"
+msgid "Equivalent part (\"%s\") for \"%s\", not previously defined."
+msgstr ""
+
+#.
+#. * Translators: 1st %d = number of labels across a page,
+#. *              2nd %d = number of labels down a page,
+#. *              3rd %d = total number of labels on a page (sheet).
+#.
+#: ../libglabels/template.c:727
+#, fuzzy, c-format
+msgid "%d × %d (%d per sheet)"
+msgstr "%d x %d (%d na arkusz)"
+
+#. Translators: %d is the total number of labels on a page (sheet).
+#: ../libglabels/template.c:732
+#, fuzzy, c-format
+msgid "%d per sheet"
+msgstr "%d x %d (%d na arkusz)"
+
+#: ../libglabels/template.c:802 ../libglabels/template.c:808
+#: ../libglabels/template.c:818 ../libglabels/template.c:824
+#, fuzzy
+msgid "diameter"
+msgstr "Milimetry"
+
+#. The ids are identical to the absolute length units supported in
+#. the CSS2 Specification (Section 4.3.2)
+#. This table must be sorted exactly as the enumerations in lglUnits
+#. [LGL_UNITS_POINT]
+#: ../libglabels/units.c:65 ../data/ui/object-editor.ui.h:39
+#: ../data/ui/prefs-dialog.ui.h:22
+msgid "points"
+msgstr "punkty(-ów)"
+
+#. [LGL_UNITS_INCH]
+#: ../libglabels/units.c:66 ../data/ui/object-editor.ui.h:38
+#: ../data/ui/template-designer.ui.h:62
+msgid "inches"
+msgstr "cali"
+
+#. [LGL_UNITS_MM]
+#: ../libglabels/units.c:67
+msgid "mm"
+msgstr "mm"
+
+#. [LGL_UNITS_CM]
+#: ../libglabels/units.c:68
+msgid "cm"
+msgstr ""
+
+#. [LGL_UNITS_PICA]
+#: ../libglabels/units.c:69
+msgid "picas"
 msgstr ""
 
-#: ../libglabels/xml-template.c:221
+#: ../libglabels/xml-template.c:223
 msgid "Missing name or brand/part attributes."
 msgstr ""
 
 #. This should always be an id, but just in case a name
 #. slips by!
-#: ../libglabels/xml-template.c:238
+#: ../libglabels/xml-template.c:244
 #, c-format
 msgid "Unknown page size id \"%s\", trying as name"
 msgstr ""
 
-#: ../libglabels/xml-template.c:250
+#: ../libglabels/xml-template.c:256
 #, c-format
 msgid "Unknown page size id or name \"%s\""
 msgstr ""
 
-#: ../libglabels/xml-template.c:609
+#: ../libglabels/xml-template.c:275
+msgid "Forward references not supported."
+msgstr ""
+
+#: ../libglabels/xml-template.c:747
 msgid ""
 "Missing required \"brand\" or \"part\" attribute, trying deprecated name."
 msgstr ""
 
-#: ../libglabels/xml-template.c:619
+#: ../libglabels/xml-template.c:757
 msgid "Name attribute also missing."
 msgstr ""
 
@@ -1641,365 +2039,393 @@ msgstr ""
 #. * indent-tabs-mode: nil  -- emacs
 #. * End:                   -- emacs
 #.
-#: ../data/builder/merge-properties-dialog.builder.h:1
-msgid "<b>Record selection/preview</b>"
-msgstr ""
-
-#: ../data/builder/merge-properties-dialog.builder.h:2
-#, fuzzy
-msgid "<b>Source</b>"
-msgstr "¬ród³o"
-
-#: ../data/builder/merge-properties-dialog.builder.h:3
+#: ../data/ui/merge-properties-dialog.ui.h:1
 msgid "Format:"
 msgstr "Format:"
 
-#: ../data/builder/merge-properties-dialog.builder.h:4
+#: ../data/ui/merge-properties-dialog.ui.h:2
 msgid "Location:"
 msgstr "Po³o¿enie:"
 
-#: ../data/builder/merge-properties-dialog.builder.h:5
+#: ../data/ui/merge-properties-dialog.ui.h:3
+msgid "Record selection/preview"
+msgstr ""
+
+#: ../data/ui/merge-properties-dialog.ui.h:4
 #, fuzzy
 msgid "Select all"
 msgstr "O_dznacz wszystko"
 
-#: ../data/builder/merge-properties-dialog.builder.h:6
+#: ../data/ui/merge-properties-dialog.ui.h:5
+#, fuzzy
+msgid "Source"
+msgstr "¬ród³o"
+
+#: ../data/ui/merge-properties-dialog.ui.h:6
 #, fuzzy
 msgid "Unselect all"
 msgstr "O_dznacz wszystko"
 
-#: ../data/builder/object-editor.builder.h:2
-#, no-c-format
-msgid "%"
-msgstr "%"
+#: ../data/ui/media-select.ui.h:1
+msgid "Brand:"
+msgstr ""
+
+#: ../data/ui/media-select.ui.h:2
+msgid "Category:"
+msgstr ""
+
+#: ../data/ui/media-select.ui.h:3
+#, fuzzy
+msgid "Custom"
+msgstr "W³asny klucz pola"
+
+#: ../data/ui/media-select.ui.h:4 ../data/ui/new-label-dialog.ui.h:6
+#: ../data/ui/template-designer.ui.h:42
+msgid "Page size:"
+msgstr "Rozmiar strony:"
+
+#: ../data/ui/media-select.ui.h:5
+msgid "Recent"
+msgstr ""
+
+#: ../data/ui/media-select.ui.h:6
+#, fuzzy
+msgid "Search all"
+msgstr "O_dznacz wszystko"
+
+#: ../data/ui/new-label-dialog.ui.h:1
+msgid ""
+"Choose label or card product from hundreds of predefined templates or define "
+"your own."
+msgstr ""
+
+#: ../data/ui/new-label-dialog.ui.h:2 ../data/ui/template-designer.ui.h:27
+msgid "Description:"
+msgstr "Opis:"
+
+#: ../data/ui/new-label-dialog.ui.h:3
+msgid "Label size:"
+msgstr "Rozmiar etykiety:"
+
+#: ../data/ui/new-label-dialog.ui.h:4
+msgid "Layout:"
+msgstr "Wygl±d:"
+
+#: ../data/ui/new-label-dialog.ui.h:5
+#, fuzzy
+msgid "Normal"
+msgstr "Format:"
+
+#: ../data/ui/new-label-dialog.ui.h:7 ../data/ui/template-designer.ui.h:43
+msgid "Part #:"
+msgstr ""
+
+#: ../data/ui/new-label-dialog.ui.h:8
+msgid "Please review and confirm your selection."
+msgstr ""
+
+#: ../data/ui/new-label-dialog.ui.h:9
+#, fuzzy
+msgid "Rotated"
+msgstr "Obróæ"
 
-#: ../data/builder/object-editor.builder.h:3
-msgid "00000000000 00000"
+#: ../data/ui/new-label-dialog.ui.h:10
+msgid "Select orientation of label content."
 msgstr ""
 
-#: ../data/builder/object-editor.builder.h:4
-msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
+#: ../data/ui/new-label-dialog.ui.h:11
+msgid "Similar products:"
 msgstr ""
 
-#: ../data/builder/object-editor.builder.h:5
-#: ../data/builder/prefs-dialog.builder.h:7
+#: ../data/ui/new-label-dialog.ui.h:12
+msgid "Vendor:"
+msgstr ""
+
+#: ../data/ui/object-editor.ui.h:2
+#, no-c-format
+msgid "%"
+msgstr "%"
+
+#: ../data/ui/object-editor.ui.h:3 ../data/ui/prefs-dialog.ui.h:2
 msgid "Alignment:"
 msgstr "Wyrównanie:"
 
-#: ../data/builder/object-editor.builder.h:6
+#: ../data/ui/object-editor.ui.h:4
 msgid "Allow merge to automatically shrink text"
 msgstr ""
 
-#: ../data/builder/object-editor.builder.h:7
+#: ../data/ui/object-editor.ui.h:5
 msgid "Angle:"
 msgstr "K±t"
 
-#: ../data/builder/object-editor.builder.h:8
+#: ../data/ui/object-editor.ui.h:6
 msgid "Checksum"
 msgstr ""
 
-#: ../data/builder/object-editor.builder.h:9
-#: ../data/builder/prefs-dialog.builder.h:8
+#: ../data/ui/object-editor.ui.h:7 ../data/ui/prefs-dialog.ui.h:3
 msgid "Color:"
 msgstr "Kolor:"
 
-#: ../data/builder/object-editor.builder.h:11
+#: ../data/ui/object-editor.ui.h:9
 msgid "Enable shadow"
 msgstr ""
 
-#: ../data/builder/object-editor.builder.h:12
+#: ../data/ui/object-editor.ui.h:10
 #, fuzzy
 msgid "Family:"
 msgstr "Wype³nienie"
 
-#: ../data/builder/object-editor.builder.h:13
+#: ../data/ui/object-editor.ui.h:11
 #, fuzzy
 msgid "File:"
 msgstr "Wype³nienie"
 
-#: ../data/builder/object-editor.builder.h:14
+#: ../data/ui/object-editor.ui.h:12 ../data/ui/prefs-dialog.ui.h:5
 msgid "Fill"
 msgstr "Wype³nienie"
 
-#: ../data/builder/object-editor.builder.h:15
-#: ../data/builder/template-designer.builder.h:30
+#: ../data/ui/object-editor.ui.h:13 ../data/ui/template-designer.ui.h:30
 msgid "Height:"
 msgstr "Wysoko¶æ:"
 
-#: ../data/builder/object-editor.builder.h:17
-msgid "Insert merge field"
-msgstr "Wstaw pole z³±czenia"
-
-#: ../data/builder/object-editor.builder.h:18
+#: ../data/ui/object-editor.ui.h:15
 msgid "Key:"
 msgstr "Klucz:"
 
-#: ../data/builder/object-editor.builder.h:19
+#: ../data/ui/object-editor.ui.h:16
 msgid "Length:"
 msgstr "D³ugo¶æ:"
 
-#: ../data/builder/object-editor.builder.h:21
-#: ../data/builder/prefs-dialog.builder.h:12
+#: ../data/ui/object-editor.ui.h:18 ../data/ui/prefs-dialog.ui.h:10
 msgid "Line Spacing:"
 msgstr ""
 
-#: ../data/builder/object-editor.builder.h:22
+#: ../data/ui/object-editor.ui.h:19
 msgid "Literal:"
 msgstr "Litera³:"
 
-#: ../data/builder/object-editor.builder.h:23
+#: ../data/ui/object-editor.ui.h:20
 msgid "Opacity:"
 msgstr ""
 
-#: ../data/builder/object-editor.builder.h:24
+#: ../data/ui/object-editor.ui.h:21
 msgid "Position"
 msgstr "Pozycja"
 
-#: ../data/builder/object-editor.builder.h:25
+#: ../data/ui/object-editor.ui.h:22
 msgid "Reset image size"
 msgstr "Wyzeruj rozmiar obrazu"
 
-#: ../data/builder/object-editor.builder.h:26
+#: ../data/ui/object-editor.ui.h:23
 msgid "Shadow"
 msgstr ""
 
-#: ../data/builder/object-editor.builder.h:27
+#: ../data/ui/object-editor.ui.h:24
 msgid "Size"
 msgstr "Rozmiar"
 
-#: ../data/builder/object-editor.builder.h:28
+#: ../data/ui/object-editor.ui.h:25
 #, fuzzy
 msgid "Size:"
 msgstr "Rozmiar"
 
-#: ../data/builder/object-editor.builder.h:29
+#: ../data/ui/object-editor.ui.h:26
 #, fuzzy
 msgid "Style"
 msgstr "Styl"
 
-#: ../data/builder/object-editor.builder.h:30
+#: ../data/ui/object-editor.ui.h:27
 #, fuzzy
 msgid "Style:"
 msgstr "Styl"
 
-#: ../data/builder/object-editor.builder.h:32
-#: ../data/builder/prefs-dialog.builder.h:20
-#: ../data/builder/template-designer.builder.h:61
+#: ../data/ui/object-editor.ui.h:29 ../data/ui/prefs-dialog.ui.h:20
+#: ../data/ui/template-designer.ui.h:61
 msgid "Width:"
 msgstr "Szeroko¶æ:"
 
-#: ../data/builder/object-editor.builder.h:33
+#: ../data/ui/object-editor.ui.h:30
 msgid "X Offset:"
 msgstr ""
 
-#: ../data/builder/object-editor.builder.h:34
+#: ../data/ui/object-editor.ui.h:31
 msgid "X:"
 msgstr "X:"
 
-#: ../data/builder/object-editor.builder.h:35
+#: ../data/ui/object-editor.ui.h:32
 msgid "Y Offset:"
 msgstr ""
 
-#: ../data/builder/object-editor.builder.h:36
+#: ../data/ui/object-editor.ui.h:33
 msgid "Y:"
 msgstr "Y:"
 
-#: ../data/builder/object-editor.builder.h:37
+#: ../data/ui/object-editor.ui.h:34
 msgid "degrees"
 msgstr "stopni(e)"
 
-#: ../data/builder/object-editor.builder.h:38
+#: ../data/ui/object-editor.ui.h:35
 msgid "dialog1"
 msgstr ""
 
-#: ../data/builder/object-editor.builder.h:39
+#: ../data/ui/object-editor.ui.h:36
 msgid "digits:"
 msgstr ""
 
-#: ../data/builder/object-editor.builder.h:40
+#: ../data/ui/object-editor.ui.h:37
 #, fuzzy
 msgid "format:"
 msgstr "Format:"
 
-#: ../data/builder/prefs-dialog.builder.h:1
+#: ../data/ui/prefs-dialog.ui.h:1
 msgid "   "
 msgstr ""
 
-#: ../data/builder/prefs-dialog.builder.h:2
-msgid "<span weight=\"bold\">Default page size</span>"
-msgstr ""
-
-#: ../data/builder/prefs-dialog.builder.h:3
-msgid "<span weight=\"bold\">Fill</span>"
-msgstr ""
-
-#: ../data/builder/prefs-dialog.builder.h:4
-msgid "<span weight=\"bold\">Line</span>"
-msgstr ""
-
-#: ../data/builder/prefs-dialog.builder.h:5
-msgid "<span weight=\"bold\">Text</span>"
-msgstr ""
-
-#: ../data/builder/prefs-dialog.builder.h:6
-msgid "<span weight=\"bold\">Units</span>"
-msgstr ""
+#: ../data/ui/prefs-dialog.ui.h:4
+msgid "Default page size"
+msgstr "Domy¶lny rozmiar strony"
 
-#: ../data/builder/prefs-dialog.builder.h:9
+#: ../data/ui/prefs-dialog.ui.h:6
 msgid "Font:"
 msgstr "Czcionka:"
 
-#: ../data/builder/prefs-dialog.builder.h:10
+#: ../data/ui/prefs-dialog.ui.h:7
 msgid "ISO A4"
 msgstr ""
 
-#: ../data/builder/prefs-dialog.builder.h:11
+#: ../data/ui/prefs-dialog.ui.h:8
 msgid "Inches"
 msgstr "Cale"
 
-#: ../data/builder/prefs-dialog.builder.h:13
+#: ../data/ui/prefs-dialog.ui.h:11
 #, fuzzy
 msgid "Locale"
 msgstr "Skala"
 
-#: ../data/builder/prefs-dialog.builder.h:14
+#: ../data/ui/prefs-dialog.ui.h:12
 msgid "Millimeters"
 msgstr "Milimetry"
 
-#: ../data/builder/prefs-dialog.builder.h:15
+#: ../data/ui/prefs-dialog.ui.h:13
 msgid "Object defaults"
 msgstr ""
 
-#: ../data/builder/prefs-dialog.builder.h:16
+#: ../data/ui/prefs-dialog.ui.h:14
 msgid "Points"
 msgstr "Punkty"
 
-#: ../data/builder/prefs-dialog.builder.h:17
+#: ../data/ui/prefs-dialog.ui.h:15
 msgid "Select default properties for new objects."
 msgstr ""
 
-#: ../data/builder/prefs-dialog.builder.h:18
+#: ../data/ui/prefs-dialog.ui.h:16
 msgid "Select locale specific behavior."
 msgstr ""
 
-#. Most popular (at top of list)
-#: ../data/builder/prefs-dialog.builder.h:19 ../templates/paper-sizes.xml.h:29
+#: ../data/ui/prefs-dialog.ui.h:18 ../templates/paper-sizes.xml.h:35
 msgid "US Letter"
 msgstr ""
 
-#: ../data/builder/property-bar.builder.h:1
+#: ../data/ui/prefs-dialog.ui.h:19
+msgid "Units"
+msgstr ""
+
+#: ../data/ui/property-bar.ui.h:1
 msgid "Bold"
 msgstr ""
 
-#: ../data/builder/property-bar.builder.h:2
+#: ../data/ui/property-bar.ui.h:2
 #, fuzzy
 msgid "Center align"
 msgstr "Ogólne"
 
-#: ../data/builder/property-bar.builder.h:4
-#, fuzzy
-msgid "Font size"
-msgstr "Nie zapisuj"
-
-#: ../data/builder/property-bar.builder.h:5
-msgid "Italic"
-msgstr ""
-
-#: ../data/builder/property-bar.builder.h:6
+#: ../data/ui/property-bar.ui.h:7
 msgid "Left align"
 msgstr ""
 
-#: ../data/builder/property-bar.builder.h:8
-msgid "Line width"
-msgstr ""
-
-#: ../data/builder/property-bar.builder.h:9
+#: ../data/ui/property-bar.ui.h:10
 msgid "Right align"
 msgstr ""
 
-#: ../data/builder/property-bar.builder.h:10
-msgid "Text color"
-msgstr ""
-
-#: ../data/builder/template-designer.builder.h:1
+#: ../data/ui/template-designer.ui.h:1
 msgid "(e.g., \"Mailing Labels,\" \"Business Cards,\" ...)"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:2
+#: ../data/ui/template-designer.ui.h:2
 msgid "(e.g., 8163A)"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:3
+#: ../data/ui/template-designer.ui.h:3
 msgid "(e.g., Avery, Acme, ...)"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:4
+#: ../data/ui/template-designer.ui.h:4
 msgid "1. Outer radius:"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:5
+#: ../data/ui/template-designer.ui.h:5
 msgid "1. Radius:"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:6
+#: ../data/ui/template-designer.ui.h:6
 #, fuzzy
 msgid "1. Width:"
 msgstr "Szeroko¶æ:"
 
-#: ../data/builder/template-designer.builder.h:7
+#: ../data/ui/template-designer.ui.h:7
 #, fuzzy
 msgid "2. Height:"
 msgstr "Wysoko¶æ:"
 
-#: ../data/builder/template-designer.builder.h:8
+#: ../data/ui/template-designer.ui.h:8
 msgid "2. Inner radius:"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:9
+#: ../data/ui/template-designer.ui.h:9
 msgid "2. Waste (overprint allowed):"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:10
+#: ../data/ui/template-designer.ui.h:10
 msgid "3. Clipping width:"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:11
+#: ../data/ui/template-designer.ui.h:11
 msgid "3. Margin"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:12
+#: ../data/ui/template-designer.ui.h:12
 msgid "3. Round (radius of corner):"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:13
+#: ../data/ui/template-designer.ui.h:13
 msgid "4. Clipping height:"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:14
+#: ../data/ui/template-designer.ui.h:14
 msgid "4. Horiz. waste (overprint allowed):"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:15
+#: ../data/ui/template-designer.ui.h:15
 msgid "5. Vert. waste (overprint allowed):"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:16
+#: ../data/ui/template-designer.ui.h:16
 msgid "5. Waste (overprint allowed):"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:17
+#: ../data/ui/template-designer.ui.h:17
 msgid "6. Margin"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:18
+#: ../data/ui/template-designer.ui.h:18
 msgid "Brand/Manufacturer:"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:19
+#: ../data/ui/template-designer.ui.h:19
 msgid "CD/DVD (including credit card CDs)"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:20
+#: ../data/ui/template-designer.ui.h:20
 msgid ""
 "Congratulations!\n"
 "\n"
@@ -2010,23 +2436,19 @@ msgid ""
 "or \"Back\" to continue editing this design."
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:27
-msgid "Description:"
-msgstr "Opis:"
-
-#: ../data/builder/template-designer.builder.h:28
+#: ../data/ui/template-designer.ui.h:28
 msgid "Distance from left edge (x0):"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:29
+#: ../data/ui/template-designer.ui.h:29
 msgid "Distance from top edge (y0):"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:31
+#: ../data/ui/template-designer.ui.h:31
 msgid "Horizontal pitch (dx):"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:32
+#: ../data/ui/template-designer.ui.h:32
 msgid ""
 "How many layouts will your template contain? \n"
 "\n"
@@ -2035,293 +2457,268 @@ msgid ""
 "The second example illustrates when two layouts are needed."
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:37
+#: ../data/ui/template-designer.ui.h:37
 #, fuzzy
 msgid "Layout #1"
 msgstr "Wygl±d:"
 
-#: ../data/builder/template-designer.builder.h:38
+#: ../data/ui/template-designer.ui.h:38
 #, fuzzy
 msgid "Layout #2"
 msgstr "Wygl±d:"
 
-#: ../data/builder/template-designer.builder.h:39
+#: ../data/ui/template-designer.ui.h:39
 msgid "Number across (nx):"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:40
+#: ../data/ui/template-designer.ui.h:40
 msgid "Number down (ny):"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:41
+#: ../data/ui/template-designer.ui.h:41
 msgid "Number of layouts:"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:42
-msgid "Page size:"
-msgstr "Rozmiar strony:"
-
-#: ../data/builder/template-designer.builder.h:43
-msgid "Part #:"
-msgstr ""
-
-#: ../data/builder/template-designer.builder.h:44
+#: ../data/ui/template-designer.ui.h:44
 msgid ""
 "Please enter the following identifying information about the template "
 "stationery."
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:45
+#: ../data/ui/template-designer.ui.h:45
 msgid "Please enter the following layout information."
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:46
+#: ../data/ui/template-designer.ui.h:46
 msgid ""
 "Please enter the following size parameters of a single label in your "
 "template."
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:47
+#: ../data/ui/template-designer.ui.h:47
 msgid ""
 "Please enter the following size parameters of a single label or card in your "
 "template."
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:48
+#: ../data/ui/template-designer.ui.h:48
 msgid "Please select the basic shape of the labels or cards."
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:49
+#: ../data/ui/template-designer.ui.h:49
 msgid "Please select the page size of the template stationery."
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:50
-#, fuzzy
-msgid "Print test sheet"
-msgstr "na pierwszym arkuszu"
-
-#: ../data/builder/template-designer.builder.h:51
-msgid "Rectangular or square (can have rounded corners)"
-msgstr ""
-
-#: ../data/builder/template-designer.builder.h:52
-msgid "Round"
-msgstr ""
-
-#: ../data/builder/template-designer.builder.h:53
-msgid ""
-"Templates needing\n"
-"two layouts."
-msgstr ""
-
-#: ../data/builder/template-designer.builder.h:55
-msgid ""
-"Templates needing only\n"
-"one layout."
-msgstr ""
-
-#: ../data/builder/template-designer.builder.h:57
-msgid "Vertical pitch (dy):"
-msgstr ""
-
-#: ../data/builder/template-designer.builder.h:58
-msgid ""
-"Welcome to the gLabels Template Designer.\n"
-"\n"
-"This dialog will assist you in the creation of a custom gLabels template."
-msgstr ""
-
-#: ../data/builder/template-designer.builder.h:62
-msgid "cd_size_page"
-msgstr ""
-
-#: ../data/builder/template-designer.builder.h:63
-msgid "finish_page"
-msgstr ""
-
-#: ../data/builder/template-designer.builder.h:65
-msgid "layout_page"
-msgstr ""
-
-#: ../data/builder/template-designer.builder.h:66
-msgid "name_page"
-msgstr ""
-
-#: ../data/builder/template-designer.builder.h:67
-msgid "nlayouts_page"
-msgstr ""
+#: ../data/ui/template-designer.ui.h:50
+#, fuzzy
+msgid "Print test sheet"
+msgstr "na pierwszym arkuszu"
 
-#: ../data/builder/template-designer.builder.h:68
-msgid "pg_size_page"
+#: ../data/ui/template-designer.ui.h:51
+msgid "Rectangular or square (can have rounded corners)"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:69
-msgid "rect_size_page"
+#: ../data/ui/template-designer.ui.h:52
+msgid "Round"
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:70
-msgid "round_size_page"
+#: ../data/ui/template-designer.ui.h:53
+msgid ""
+"Templates needing\n"
+"two layouts."
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:71
-msgid "shape_page"
+#: ../data/ui/template-designer.ui.h:55
+msgid ""
+"Templates needing only\n"
+"one layout."
 msgstr ""
 
-#: ../data/builder/template-designer.builder.h:72
-msgid "start_page"
+#: ../data/ui/template-designer.ui.h:57
+msgid "Vertical pitch (dy):"
 msgstr ""
 
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:1
-#, fuzzy
-msgid "<b>Copies</b>"
-msgstr "Kopie"
-
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:2
-msgid "<b>Merge Control</b>"
+#: ../data/ui/template-designer.ui.h:58
+msgid ""
+"Welcome to the gLabels Template Designer.\n"
+"\n"
+"This dialog will assist you in the creation of a custom gLabels template."
 msgstr ""
 
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:3
-#, fuzzy
-msgid "<b>Options</b>"
-msgstr "Opcje"
-
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:4
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:1
 msgid "Collate"
 msgstr "Uk³adanie"
 
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:5
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:2
+#, fuzzy
+msgid "Copies"
+msgstr "Kopie:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:3
 msgid "Copies:"
 msgstr "Kopie:"
 
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:7
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:5
+#, fuzzy
+msgid "Merge Control"
+msgstr "Kontrola z³±czania dokumentów"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:6
+#, fuzzy
+msgid "Options"
+msgstr "Opcje"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:7
 msgid "Sheets:"
 msgstr "Arkusze:"
 
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:8
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:8
 msgid "Start on label"
 msgstr "Rozpocznij od etykiety"
 
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:9
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:9
 msgid "from:"
 msgstr "od:"
 
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:10
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:10
 msgid "on 1st sheet"
 msgstr "na pierwszym arkuszu"
 
-#: ../data/builder/print-op-dialog-custom-widget.builder.h:14
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:14
 msgid "to:"
 msgstr "do:"
 
-#: ../data/desktop/glabels.desktop.in.h:1
+#: ../data/desktop/glabels-3.0.desktop.in.h:1
 msgid "Create labels, business cards and media covers"
 msgstr ""
 
-#: ../data/desktop/glabels.desktop.in.h:2
-msgid "gLabels Label Designer"
+#: ../data/desktop/glabels-3.0.desktop.in.h:2
+msgid "gLabels Label Designer 3"
 msgstr ""
 
-#: ../data/mime/glabels.keys.in.h:1 ../data/mime/glabels.xml.in.h:1
+#: ../data/mime/glabels-3.0.xml.in.h:1
 #, fuzzy
 msgid "gLabels Project File"
 msgstr "W³a¶ciwo¶ci tekstu"
 
-#. Other ISO A series sizes
+#. Envelopes
 #: ../templates/paper-sizes.xml.h:2
+msgid "#10 Envelope"
+msgstr ""
+
+#. Other ISO A series sizes
+#: ../templates/paper-sizes.xml.h:4
 msgid "A0"
 msgstr ""
 
-#: ../templates/paper-sizes.xml.h:3
+#: ../templates/paper-sizes.xml.h:5
 msgid "A1"
 msgstr ""
 
-#: ../templates/paper-sizes.xml.h:4
+#: ../templates/paper-sizes.xml.h:6
 msgid "A10"
 msgstr ""
 
-#: ../templates/paper-sizes.xml.h:5
+#: ../templates/paper-sizes.xml.h:7
 msgid "A2"
 msgstr ""
 
-#: ../templates/paper-sizes.xml.h:6
+#: ../templates/paper-sizes.xml.h:8
 msgid "A3"
 msgstr ""
 
-#: ../templates/paper-sizes.xml.h:7
+#. Most popular (at top of list)
+#: ../templates/paper-sizes.xml.h:10
 msgid "A4"
 msgstr ""
 
-#: ../templates/paper-sizes.xml.h:8
+#: ../templates/paper-sizes.xml.h:11
 msgid "A5"
 msgstr ""
 
-#: ../templates/paper-sizes.xml.h:9
+#: ../templates/paper-sizes.xml.h:12
 msgid "A6"
 msgstr ""
 
-#: ../templates/paper-sizes.xml.h:10
+#: ../templates/paper-sizes.xml.h:13
 msgid "A7"
 msgstr ""
 
-#: ../templates/paper-sizes.xml.h:11
+#: ../templates/paper-sizes.xml.h:14
 msgid "A8"
 msgstr ""
 
-#: ../templates/paper-sizes.xml.h:12
+#: ../templates/paper-sizes.xml.h:15
 msgid "A9"
 msgstr ""
 
 #. ISO B series sizes
-#: ../templates/paper-sizes.xml.h:14
+#: ../templates/paper-sizes.xml.h:17
 msgid "B0"
 msgstr ""
 
-#: ../templates/paper-sizes.xml.h:15
+#: ../templates/paper-sizes.xml.h:18
 msgid "B1"
 msgstr ""
 
-#: ../templates/paper-sizes.xml.h:16
+#: ../templates/paper-sizes.xml.h:19
 msgid "B10"
 msgstr ""
 
-#: ../templates/paper-sizes.xml.h:17
+#: ../templates/paper-sizes.xml.h:20
 msgid "B2"
 msgstr ""
 
-#: ../templates/paper-sizes.xml.h:18
+#: ../templates/paper-sizes.xml.h:21
 msgid "B3"
 msgstr ""
 
-#: ../templates/paper-sizes.xml.h:19
+#: ../templates/paper-sizes.xml.h:22
 msgid "B4"
 msgstr ""
 
-#: ../templates/paper-sizes.xml.h:20
+#: ../templates/paper-sizes.xml.h:23
 msgid "B5"
 msgstr ""
 
-#: ../templates/paper-sizes.xml.h:21
+#: ../templates/paper-sizes.xml.h:24
 msgid "B6"
 msgstr ""
 
-#: ../templates/paper-sizes.xml.h:22
+#: ../templates/paper-sizes.xml.h:25
 msgid "B7"
 msgstr ""
 
-#: ../templates/paper-sizes.xml.h:23
+#: ../templates/paper-sizes.xml.h:26
 msgid "B8"
 msgstr ""
 
-#: ../templates/paper-sizes.xml.h:24
+#: ../templates/paper-sizes.xml.h:27
 msgid "B9"
 msgstr ""
 
-#: ../templates/paper-sizes.xml.h:25
+#: ../templates/paper-sizes.xml.h:28
+msgid "C5"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:29
+msgid "C6"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:30
+msgid "DL"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:31
+msgid "Monarch Envelope"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:32
 msgid "US Executive"
 msgstr ""
 
 #. Other US paper sizes
-#: ../templates/paper-sizes.xml.h:27
+#: ../templates/paper-sizes.xml.h:34
 msgid "US Legal"
 msgstr ""
 
@@ -2334,7 +2731,8 @@ msgstr ""
 msgid "Any label"
 msgstr "Otwórz etykietê"
 
-#: ../templates/categories.xml.h:3
+#. ===================================================================
+#: ../templates/categories.xml.h:3 ../templates/pearl-iso-templates.xml.h:8
 msgid "Business cards"
 msgstr ""
 
@@ -2351,7 +2749,8 @@ msgstr ""
 msgid "Rectangular labels"
 msgstr "Etykiety"
 
-#: ../templates/categories.xml.h:7
+#. ===================================================================
+#: ../templates/categories.xml.h:7 ../templates/pearl-iso-templates.xml.h:46
 #, fuzzy
 msgid "Round labels"
 msgstr "Rozpocznij od etykiety"
@@ -2361,11 +2760,16 @@ msgstr "Rozpocznij od etykiety"
 msgid "Square labels"
 msgstr "Etykiety"
 
+#. ===================================================================
+#. ********************************************************************
 #. ===================================================================
 #: ../templates/avery-us-templates.xml.h:2
 #: ../templates/avery-iso-templates.xml.h:2
 #: ../templates/dymo-other-templates.xml.h:4
+#: ../templates/maco-us-templates.xml.h:2
 #: ../templates/misc-iso-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:1
 #: ../templates/zweckform-iso-templates.xml.h:2
 msgid "Address Labels"
 msgstr ""
@@ -2390,6 +2794,8 @@ msgstr ""
 #: ../templates/avery-iso-templates.xml.h:14
 #: ../templates/misc-us-templates.xml.h:8
 #: ../templates/misc-iso-templates.xml.h:16
+#: ../templates/pearl-iso-templates.xml.h:20
+#: ../templates/worldlabel-us-templates.xml.h:2
 #: ../templates/zweckform-iso-templates.xml.h:8
 #, fuzzy
 msgid "CD/DVD Labels"
@@ -2409,6 +2815,7 @@ msgstr "Etykiety"
 #. ===================================================================
 #: ../templates/avery-us-templates.xml.h:12
 #: ../templates/avery-iso-templates.xml.h:16
+#: ../templates/worldlabel-us-templates.xml.h:3
 msgid "Diskette Labels"
 msgstr ""
 
@@ -2420,84 +2827,103 @@ msgstr "Etykiety"
 
 #. ===================================================================
 #: ../templates/avery-us-templates.xml.h:16
+#: ../templates/avery-other-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:4
 #, fuzzy
-msgid "Filing Labels"
+msgid "File Folder Labels"
 msgstr "Etykiety"
 
 #. ===================================================================
 #: ../templates/avery-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:5
+#, fuzzy
+msgid "Filing Labels"
+msgstr "Etykiety"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:20
+#: ../templates/worldlabel-us-templates.xml.h:6
 msgid "Full Sheet Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../templates/avery-us-templates.xml.h:20
+#: ../templates/avery-us-templates.xml.h:22
 #, fuzzy
 msgid "ID Labels"
 msgstr "Etykiety"
 
 #. ===================================================================
-#: ../templates/avery-us-templates.xml.h:22
+#: ../templates/avery-us-templates.xml.h:24
 msgid "Index Cards"
 msgstr ""
 
 #. ===================================================================
-#: ../templates/avery-us-templates.xml.h:24
+#: ../templates/avery-us-templates.xml.h:26
 #, fuzzy
 msgid "Large Round Labels"
 msgstr "Rozpocznij od etykiety"
 
 #. ===================================================================
-#: ../templates/avery-us-templates.xml.h:26
+#: ../templates/avery-us-templates.xml.h:28
 msgid "Name Badge Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../templates/avery-us-templates.xml.h:28
+#: ../templates/avery-us-templates.xml.h:30
 msgid "Post cards"
 msgstr ""
 
 #. ===================================================================
-#: ../templates/avery-us-templates.xml.h:30
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:32
 #: ../templates/dymo-other-templates.xml.h:12
+#: ../templates/worldlabel-us-templates.xml.h:8
 msgid "Return Address Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../templates/avery-us-templates.xml.h:32
-#: ../templates/misc-us-templates.xml.h:28
+#: ../templates/avery-us-templates.xml.h:34
+#: ../templates/maco-us-templates.xml.h:3
+#: ../templates/misc-us-templates.xml.h:30
+#: ../templates/worldlabel-us-templates.xml.h:9
 #, fuzzy
 msgid "Round Labels"
 msgstr "Rozpocznij od etykiety"
 
 #. ===================================================================
-#: ../templates/avery-us-templates.xml.h:34
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:36
+#: ../templates/uline-us-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:10
 msgid "Shipping Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../templates/avery-us-templates.xml.h:36
+#: ../templates/avery-us-templates.xml.h:38
 #, fuzzy
 msgid "Small Round Labels"
 msgstr "Rozpocznij od etykiety"
 
 #. ===================================================================
-#: ../templates/avery-us-templates.xml.h:38
+#: ../templates/avery-us-templates.xml.h:40
 #, fuzzy
 msgid "Square Labels"
 msgstr "Etykiety"
 
 #. ===================================================================
-#: ../templates/avery-us-templates.xml.h:40
+#: ../templates/avery-us-templates.xml.h:42
 msgid "Tent Cards"
 msgstr ""
 
 #. ===================================================================
-#: ../templates/avery-us-templates.xml.h:42
+#: ../templates/avery-us-templates.xml.h:44
+#: ../templates/worldlabel-us-templates.xml.h:11
 msgid "Video Tape Face Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../templates/avery-us-templates.xml.h:44
+#: ../templates/avery-us-templates.xml.h:46
+#: ../templates/worldlabel-us-templates.xml.h:12
 msgid "Video Tape Spine Labels"
 msgstr ""
 
@@ -2530,7 +2956,7 @@ msgstr ""
 #. ===============================================================
 #. ===================================================================
 #: ../templates/avery-iso-templates.xml.h:20
-#: ../templates/misc-us-templates.xml.h:18
+#: ../templates/misc-us-templates.xml.h:20
 #: ../templates/misc-iso-templates.xml.h:36
 #: ../templates/zweckform-iso-templates.xml.h:16
 msgid "Mailing Labels"
@@ -2559,12 +2985,6 @@ msgstr "Etykiety"
 msgid "Shipping labels"
 msgstr "Otwórz etykietê"
 
-#. ===================================================================
-#: ../templates/avery-other-templates.xml.h:2
-#, fuzzy
-msgid "File Folder Labels"
-msgstr "Etykiety"
-
 #: ../templates/brother-other-templates.xml.h:1
 msgid "Multi Purpose Labels 17mm x 54mm"
 msgstr ""
@@ -2656,35 +3076,40 @@ msgid "DLT Labels"
 msgstr "Etykiety"
 
 #. ===================================================================
-#: ../templates/misc-us-templates.xml.h:20
-msgid "Microtube labels"
+#: ../templates/misc-us-templates.xml.h:18
+msgid "Jewel Case Booklet"
 msgstr ""
 
 #. ===================================================================
 #: ../templates/misc-us-templates.xml.h:22
+msgid "Microtube labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:24
 msgid "Mini-CD Labels"
 msgstr ""
 
-#: ../templates/misc-us-templates.xml.h:23
+#: ../templates/misc-us-templates.xml.h:25
 msgid "PRO CD Labels 2-up (CD spine only)"
 msgstr ""
 
-#: ../templates/misc-us-templates.xml.h:24
+#: ../templates/misc-us-templates.xml.h:26
 msgid "PRO CD Labels 2-up (Face only)"
 msgstr ""
 
 #. ===================================================================
-#: ../templates/misc-us-templates.xml.h:26
+#: ../templates/misc-us-templates.xml.h:28
 #: ../templates/misc-iso-templates.xml.h:42
 msgid "PRO CD Labels 2-up (face only)"
 msgstr ""
 
 #. ===================================================================
-#: ../templates/misc-us-templates.xml.h:30
+#: ../templates/misc-us-templates.xml.h:32
 msgid "Slimline CD Case (rightside up)"
 msgstr ""
 
-#: ../templates/misc-us-templates.xml.h:31
+#: ../templates/misc-us-templates.xml.h:33
 msgid "Slimline CD Case (upside down)"
 msgstr ""
 
@@ -2769,6 +3194,12 @@ msgstr ""
 
 #. ===================================================================
 #: ../templates/misc-iso-templates.xml.h:46
+#, fuzzy
+msgid "Universal Labels"
+msgstr "Etykiety"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:48
 msgid "Video Labels (face only)"
 msgstr ""
 
@@ -2778,6 +3209,135 @@ msgstr ""
 msgid "Multi-Purpose Labels"
 msgstr "Etykiety"
 
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:4
+#, fuzzy
+msgid "Address Labels (STAMPIT)"
+msgstr "Rozpocznij od etykiety"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:6
+#, fuzzy
+msgid "Bottle labels"
+msgstr "Etykiety"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:10
+msgid "Business cards glossy, both sides printable"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:12
+msgid "Business cards high glossy"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:14
+msgid "Business cards punched"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:16
+msgid "Business cards punched dull"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:18
+msgid "Business cards punched glossy"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:22
+#, fuzzy
+msgid "Floppy disk labels"
+msgstr "Rozpocznij od etykiety"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:24
+msgid "Foldable business cards"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:26
+msgid "Foldable business cards glossy/dull"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:28
+#, fuzzy
+msgid "Labels A4"
+msgstr "Etykiety"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:30
+#, fuzzy
+msgid "Labels A5"
+msgstr "Etykiety"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:32
+#, fuzzy
+msgid "Labels A6"
+msgstr "Etykiety"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:34
+msgid "Membership cards"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:36
+msgid "Membership cards, both sides printable"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:38
+msgid "Name plates"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:40
+msgid "Passport photo labels glossy"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:42
+#, fuzzy
+msgid "Photo labels"
+msgstr "Rozpocznij od etykiety"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:44
+msgid "Photo labels semiglossy"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:48
+#, fuzzy
+msgid "SD card labels"
+msgstr "Etykiety"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:50
+msgid "Self-adhesive film transparent"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:52
+msgid "Self-adhesive film weatherproof"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:54
+#, fuzzy
+msgid "Self-adhesive labels"
+msgstr "Etykiety"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:56
+msgid "Self-adhesive window film"
+msgstr ""
+
 #. ===================================================================
 #: ../templates/zweckform-iso-templates.xml.h:10
 msgid "Correction and Cover-up Labels"
@@ -2814,6 +3374,36 @@ msgstr ""
 msgid "Video Labels (back)"
 msgstr ""
 
+#, fuzzy
+#~ msgid "Text file with comma delimeters (CSV)"
+#~ msgstr "Tekst oddzielony przecinkami (CSV)"
+
+#, fuzzy
+#~ msgid "Text file with colon delimeters"
+#~ msgstr "Tekst oddzielany dwukropkami"
+
+#, fuzzy
+#~ msgid "Text file with tab delimeters"
+#~ msgstr "Tekst oddzielony tabulacjami"
+
+#, fuzzy
+#~ msgid "<b>Media type</b>"
+#~ msgstr "Typ no¶nika"
+
+#, fuzzy
+#~ msgid "<b>Label orientation</b>"
+#~ msgstr "U³o¿enie etykiety"
+
+#~ msgid "%s x %s %s"
+#~ msgstr "%s x %s %s"
+
+#~ msgid "%.5g x %.5g %s"
+#~ msgstr "%.5g x %.5g %s"
+
+#, fuzzy
+#~ msgid "<b>Copies</b>"
+#~ msgstr "Kopie"
+
 #~ msgid "print this message"
 #~ msgstr "wy¶wietla ten komunikat"
 
@@ -2837,25 +3427,9 @@ msgstr ""
 #~ msgid "P_rinter"
 #~ msgstr "Wydrukuj"
 
-#~ msgid "Document merge control"
-#~ msgstr "Kontrola z³±czania dokumentów"
-
 #~ msgid "Print preview"
 #~ msgstr "Podgl±d wydruku"
 
-#~ msgid "Label size:"
-#~ msgstr "Rozmiar etykiety:"
-
-#~ msgid "Layout:"
-#~ msgstr "Wygl±d:"
-
-#~ msgid "%d x %d  (%d per sheet)"
-#~ msgstr "%d x %d (%d na arkusz)"
-
-#, fuzzy
-#~ msgid "custom"
-#~ msgstr "W³asny klucz pola"
-
 #, fuzzy
 #~ msgid "magenta"
 #~ msgstr "Obraz"
@@ -2868,10 +3442,6 @@ msgstr ""
 #~ msgid "Customize"
 #~ msgstr "W³asny klucz pola"
 
-#, fuzzy
-#~ msgid "Font name"
-#~ msgstr "Nie zapisuj"
-
 #, fuzzy
 #~ msgid "Font selector"
 #~ msgstr "Usuwa wszelkie zaznaczenia"
@@ -2918,9 +3488,6 @@ msgstr ""
 #~ msgid "Display units"
 #~ msgstr "Jednostki wy¶wietlania"
 
-#~ msgid "Default page size"
-#~ msgstr "Domy¶lny rozmiar strony"
-
 #~ msgid "Outline"
 #~ msgstr "Ramka"
 
@@ -2979,9 +3546,6 @@ msgstr ""
 #~ msgid "Column"
 #~ msgstr "Kolumna"
 
-#~ msgid "Sample data"
-#~ msgstr "Próbne dane"
-
 #~ msgid "Make a new, empty label"
 #~ msgstr "Tworzy now±, pust± etykietê"
 
index 0fcc7b8fd1d21dad799918704e20d81d5ad798af..84f2dc48ffcb0f8fe017a3d0ff49215f9925280f 100644 (file)
--- a/po/pt.po
+++ b/po/pt.po
@@ -6,1466 +6,1884 @@ msgid ""
 msgstr ""
 "Project-Id-Version: glabels 1.91.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-04 12:55+0100\n"
+"POT-Creation-Date: 2010-07-10 00:37-0400\n"
 "PO-Revision-Date: 2010-03-19 02:02+0000\n"
 "Last-Translator: Filipe Roque <fliproque@gmail.com>\n"
 "Language-Team: Portuguese <>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../src/glabels.c:75 ../src/glabels-batch.c:70
-msgid "[FILE...]"
-msgstr "[FICHEIRO...]"
+#: ../src/bc.c:66
+msgid "POSTNET (any)"
+msgstr "POSTNET (qualquer)"
 
-#: ../src/glabels.c:91
-msgid "- gLabels label designer"
-msgstr "- Criador de etiquetas gLabels"
+#: ../src/bc.c:69
+msgid "POSTNET-5 (ZIP only)"
+msgstr "POSTNET-5 (ZIP apenas)"
 
-#: ../src/glabels-batch.c:54
-msgid "set output filename (default=\"output.pdf\")"
-msgstr "define o nome do ficheiro de saída (padrão=\"output.ps\")"
+#: ../src/bc.c:72
+msgid "POSTNET-9 (ZIP+4)"
+msgstr "POSTNET-9 (ZIP+4)"
 
-#: ../src/glabels-batch.c:54 ../src/glabels-batch.c:68
-msgid "filename"
-msgstr "nome do ficheiro"
+#: ../src/bc.c:75
+msgid "POSTNET-11 (DPBC)"
+msgstr "POSTNET-11 (DPBC)"
 
-#: ../src/glabels-batch.c:56
-msgid "number of sheets (default=1)"
-msgstr "número de páginas (padrão=1)"
+#: ../src/bc.c:80
+msgid "CEPNET"
+msgstr "CEPNET"
 
-#: ../src/glabels-batch.c:56
-msgid "sheets"
-msgstr "páginas"
+#: ../src/bc.c:83
+msgid "EAN (any)"
+msgstr "EAN (qualquer)"
 
-#: ../src/glabels-batch.c:58
-msgid "number of copies (default=1)"
-msgstr "número de cópias (padrão=1)"
+#: ../src/bc.c:86
+msgid "EAN-8"
+msgstr "EAN-8"
 
-#: ../src/glabels-batch.c:58
-msgid "copies"
-msgstr "cópias"
+#: ../src/bc.c:89
+msgid "EAN-8 +2"
+msgstr "EAN-8 +2"
 
-#: ../src/glabels-batch.c:60
-msgid "first label on first sheet (default=1)"
-msgstr "primeira etiqueta na primeira página (padrão=1)"
+#: ../src/bc.c:92
+msgid "EAN-8 +5"
+msgstr "EAN-8 +5"
 
-#: ../src/glabels-batch.c:60
-msgid "first"
-msgstr "primeiro"
+#: ../src/bc.c:95
+msgid "EAN-13"
+msgstr "EAN-13"
 
-#: ../src/glabels-batch.c:62 ../data/glade/print-custom-widget.glade.h:6
-msgid "print outlines (to test printer alignment)"
-msgstr "imprimir contornos (para testar alinhamento da impressora)"
+#: ../src/bc.c:98
+msgid "EAN-13 +2"
+msgstr "EAN-13 +2"
 
-#: ../src/glabels-batch.c:64 ../data/glade/print-custom-widget.glade.h:5
-msgid "print in reverse (i.e. a mirror image)"
-msgstr "imprimir ao contrário (como uma imagem de espelho)"
+#: ../src/bc.c:101
+msgid "EAN-13 +5"
+msgstr "EAN-13 +5"
 
-#: ../src/glabels-batch.c:66 ../data/glade/print-custom-widget.glade.h:4
-msgid "print crop marks"
-msgstr "imprimir marcas de cortes"
+#: ../src/bc.c:104
+msgid "UPC (UPC-A or UPC-E)"
+msgstr "UPC (UPC-A ou UPC-E)"
 
-#: ../src/glabels-batch.c:68
-msgid "input file for merging"
-msgstr "introduza ficheiro para fusão"
+#: ../src/bc.c:107 ../src/bc.c:348
+msgid "UPC-A"
+msgstr "UPC-A"
 
-#: ../src/glabels-batch.c:96
-msgid "- batch process gLabels label files"
-msgstr "- processamento em lote de ficheiros gLabels"
+#: ../src/bc.c:110
+msgid "UPC-A +2"
+msgstr "UPC-A +2"
 
-#: ../src/glabels-batch.c:142
-#, c-format
-msgid "cannot perform document merge with glabels file %s\n"
-msgstr "não foi possível fundir com o ficheiro gLabels %s\n"
+#: ../src/bc.c:113
+msgid "UPC-A +5"
+msgstr "UPC-A +5"
 
-#: ../src/glabels-batch.c:164
-#, c-format
-msgid "cannot open glabels file %s\n"
-msgstr "impossível abrir o ficheiro gLabels %s\n"
+#: ../src/bc.c:116 ../src/bc.c:351
+msgid "UPC-E"
+msgstr "UPC-E"
 
-#: ../src/window.c:259
-msgid "(none) - gLabels"
-msgstr "(nenhum) - gLabels"
+#: ../src/bc.c:119
+msgid "UPC-E +2"
+msgstr "UPC-E +2"
 
-#: ../src/window.c:432
-msgid "(modified)"
-msgstr "(modificado)"
+#: ../src/bc.c:122
+msgid "UPC-E +5"
+msgstr "UPC-E +5"
 
-#: ../src/stock.c:72
-msgid "_Select Mode"
-msgstr "_Seleccionar Modo"
+#: ../src/bc.c:125 ../src/bc.c:288
+msgid "ISBN"
+msgstr "ISBN"
 
-#: ../src/stock.c:73
-msgid "_Text"
-msgstr "_Texto"
+#: ../src/bc.c:128
+msgid "ISBN +5"
+msgstr "ISBN +5"
 
-#: ../src/stock.c:74
-msgid "_Line"
-msgstr "_Linha"
+#: ../src/bc.c:131 ../src/bc.c:204
+msgid "Code 39"
+msgstr "Código 39"
 
-#: ../src/stock.c:75
-msgid "_Box"
-msgstr "_Caixa"
+#: ../src/bc.c:134 ../src/bc.c:216
+msgid "Code 128"
+msgstr "Código 128"
 
-#: ../src/stock.c:76
-msgid "_Ellipse"
-msgstr "_Elipse"
+#: ../src/bc.c:137
+msgid "Code 128C"
+msgstr "Código 128C"
 
-#: ../src/stock.c:77
-msgid "_Image"
-msgstr "_Imagem"
+#: ../src/bc.c:140
+msgid "Code 128B"
+msgstr "Código 128B"
 
-#: ../src/stock.c:78
-msgid "Bar_code"
-msgstr "_Código de barras"
+#: ../src/bc.c:143 ../src/bc.c:285
+msgid "Interleaved 2 of 5"
+msgstr "Interleaved 2 of 5"
 
-#: ../src/stock.c:79
-msgid "_Merge Properties"
-msgstr "Propriedades de _Fusão"
+#: ../src/bc.c:146 ../src/bc.c:180
+msgid "Codabar"
+msgstr "Codabar"
 
-#: ../src/stock.c:80
-msgid "Object _Properties"
-msgstr "_Propriedades de Objecto"
+#: ../src/bc.c:149
+msgid "MSI"
+msgstr "MSI"
 
-#: ../src/stock.c:81
-msgid "Bring to _Front"
-msgstr "Trazer para a _Frente"
+#: ../src/bc.c:152
+msgid "Plessey"
+msgstr "Plessey"
 
-#: ../src/stock.c:82
-msgid "Send to _Back"
-msgstr "Enviar para _Trás"
+#: ../src/bc.c:155 ../src/bc.c:213
+#, fuzzy
+msgid "Code 93"
+msgstr "Código 39"
 
-#: ../src/stock.c:83
-msgid "Rotate _Left"
-msgstr "Girar para a_Esquerda"
+#: ../src/bc.c:162
+msgid "Australia Post Standard"
+msgstr ""
 
-#: ../src/stock.c:84
-msgid "Rotate _Right"
-msgstr "Girar para a _Direita"
+#: ../src/bc.c:165
+msgid "Australia Post Reply Paid"
+msgstr ""
 
-#: ../src/stock.c:85
-msgid "Flip _Horizontally"
-msgstr "Inverter _Horizontalmente"
+#: ../src/bc.c:168
+msgid "Australia Post Route Code"
+msgstr ""
 
-#: ../src/stock.c:86
-msgid "Flip _Vertically"
-msgstr "Inverter _Verticalmente"
+#: ../src/bc.c:171
+msgid "Australia Post Redirect"
+msgstr ""
 
-#: ../src/stock.c:87
-msgid "_Lefts"
-msgstr "_Esquerdas"
+#: ../src/bc.c:174
+msgid "Aztec Code"
+msgstr ""
 
-#: ../src/stock.c:88
-msgid "_Rights"
-msgstr "_Direitas"
+#: ../src/bc.c:177
+msgid "Aztec Rune"
+msgstr ""
 
-#: ../src/stock.c:89
-msgid "_Centers"
-msgstr "_Centros"
+#: ../src/bc.c:183
+#, fuzzy
+msgid "Code One"
+msgstr "Código 39"
 
-#: ../src/stock.c:90
-msgid "_Tops"
-msgstr "_Topos"
+#: ../src/bc.c:186
+#, fuzzy
+msgid "Code 11"
+msgstr "Código 128"
 
-#: ../src/stock.c:91
-msgid "Bottoms"
-msgstr "Bases"
+#: ../src/bc.c:189
+#, fuzzy
+msgid "Code 16K"
+msgstr "Código 128"
 
-#: ../src/stock.c:92
-msgid "Centers"
-msgstr "Centros"
+#: ../src/bc.c:192
+msgid "Code 2 of 5 Matrix"
+msgstr ""
 
-#: ../src/stock.c:93 ../src/stock.c:94
-msgid "Label Ce_nter"
-msgstr "Ce_ntro da Etiqueta"
+#: ../src/bc.c:195
+msgid "Code 2 of 5 IATA"
+msgstr ""
 
-#: ../src/stock.c:95 ../data/glade/property-bar.glade.h:3
-msgid "Fill color"
-msgstr "Encher cor"
+#: ../src/bc.c:198
+msgid "Code 2 of 5 Data Logic"
+msgstr ""
 
-#: ../src/stock.c:96 ../data/glade/property-bar.glade.h:8
-msgid "Line color"
-msgstr "Cor da linha"
+#: ../src/bc.c:201
+msgid "Code 32 (Italian Pharmacode)"
+msgstr ""
 
-#: ../src/stock.c:97 ../src/stock.c:99
-msgid "Linked"
-msgstr "Ligado"
+#: ../src/bc.c:207
+#, fuzzy
+msgid "Code 39 Extended"
+msgstr "Código 39"
 
-#: ../src/stock.c:98 ../src/stock.c:100
-msgid "Not Linked"
-msgstr "Não ligado"
+#: ../src/bc.c:210
+#, fuzzy
+msgid "Code 49"
+msgstr "Código 39"
 
-#. Menu entries.
-#: ../src/ui.c:93
-msgid "_File"
-msgstr "_Ficheiro"
+#: ../src/bc.c:219
+msgid "Code 128 (Mode C supression)"
+msgstr ""
 
-#: ../src/ui.c:94
-msgid "Open Recent _Files"
-msgstr "Abir _Ficheiros Recentes"
+#: ../src/bc.c:222
+msgid "DAFT Code"
+msgstr ""
 
-#: ../src/ui.c:95
-msgid "_Edit"
-msgstr "_Editar"
+#: ../src/bc.c:225
+#, fuzzy
+msgid "Data Matrix"
+msgstr "IEC16022 (DataMatrix)"
 
-#: ../src/ui.c:96
-msgid "_View"
-msgstr "_Ver"
+#: ../src/bc.c:228
+msgid "Deutsche Post Leitcode"
+msgstr ""
 
-#: ../src/ui.c:97
-msgid "Customize Main Toolbar"
-msgstr "Personalizar barra de ferramentas principal"
+#: ../src/bc.c:231
+msgid "Deutsche Post Identcode"
+msgstr ""
 
-#: ../src/ui.c:98
-msgid "Customize Drawing Toolbar"
-msgstr "Personalizar barra de ferramentas de desenho"
+#: ../src/bc.c:234
+msgid "Dutch Post KIX Code"
+msgstr ""
 
-#: ../src/ui.c:99
-msgid "Customize Properties Toolbar"
-msgstr "Personalizar propriedades da barras de ferramentas"
+#: ../src/bc.c:237
+msgid "European Article Number (EAN)"
+msgstr ""
 
-#: ../src/ui.c:100
-msgid "_Objects"
-msgstr "_Objectos"
+#: ../src/bc.c:240
+msgid "Grid Matrix"
+msgstr ""
 
-#: ../src/ui.c:101
-msgid "_Create"
-msgstr "_Criar"
+#: ../src/bc.c:243
+msgid "GS1-128"
+msgstr ""
 
-#: ../src/ui.c:102
-msgid "_Order"
-msgstr "_Ordem"
+#: ../src/bc.c:246
+msgid "GS1 DataBar-14"
+msgstr ""
 
-#: ../src/ui.c:103
-msgid "_Rotate/Flip"
-msgstr "_Girar/Inverter"
+#: ../src/bc.c:255
+msgid "GS1 DataBar-14 Stacked"
+msgstr ""
 
-#: ../src/ui.c:104
-msgid "Align _Horizontal"
-msgstr "Alinhar na _Horizontal"
+#: ../src/bc.c:258
+msgid "GS1 DataBar-14 Stacked Omni."
+msgstr ""
 
-#: ../src/ui.c:105
-msgid "Align _Vertical"
-msgstr "Alinhar na _Vertical"
+#: ../src/bc.c:261
+msgid "GS1 DataBar Extended Stacked"
+msgstr ""
 
-#: ../src/ui.c:106
-msgid "_Help"
-msgstr "A_juda"
+#: ../src/bc.c:264
+#, fuzzy
+msgid "HIBC Code 128"
+msgstr "Código 128"
 
-#. Popup entries.
-#: ../src/ui.c:109 ../src/ui.c:110
-msgid "Context Menu"
-msgstr "Menu de contexto"
+#: ../src/bc.c:267
+#, fuzzy
+msgid "HIBC Code 39"
+msgstr "Código 39"
 
-#: ../src/ui.c:115
-msgid "_New"
-msgstr "_Novo"
+#: ../src/bc.c:270
+#, fuzzy
+msgid "HIBC Data Matrix"
+msgstr "IEC16022 (DataMatrix)"
 
-#: ../src/ui.c:117
-msgid "Create a new file"
-msgstr "Cria um novo ficheiro"
+#: ../src/bc.c:273
+msgid "HIBC QR Code"
+msgstr ""
 
-#: ../src/ui.c:122
-msgid "_Open..."
-msgstr "_Abrir..."
+#: ../src/bc.c:276
+msgid "HIBC PDF417"
+msgstr ""
 
-#: ../src/ui.c:124
-msgid "Open a file"
-msgstr "Abrir um ficheiro"
+#: ../src/bc.c:279
+msgid "HIBC Micro PDF417"
+msgstr ""
 
-#: ../src/ui.c:129
-msgid "_Save"
-msgstr "_Guardar"
+#: ../src/bc.c:282
+msgid "HIBC Aztec Code"
+msgstr ""
 
-#: ../src/ui.c:131
-msgid "Save current file"
-msgstr "Guarda o ficheiro actual"
+#: ../src/bc.c:291
+msgid "ITF-14"
+msgstr ""
 
-#: ../src/ui.c:136
-msgid "Save _As..."
-msgstr "Guardar _como..."
+#: ../src/bc.c:294
+msgid "Japanese Postal"
+msgstr ""
 
-#: ../src/ui.c:138
-msgid "Save the current file to a different name"
-msgstr "Guarda o ficheiro actual com um nome diferente"
+#: ../src/bc.c:297
+msgid "Korean Postal"
+msgstr ""
 
-#: ../src/ui.c:143
-msgid "_Print..."
-msgstr "Im_primir..."
+#: ../src/bc.c:300
+msgid "LOGMARS"
+msgstr ""
 
-#: ../src/ui.c:145
-msgid "Print the current file"
-msgstr "Imprime o ficheiro actual"
+#: ../src/bc.c:303
+msgid "Micro PDF417"
+msgstr ""
+
+#: ../src/bc.c:306
+msgid "Micro QR Code"
+msgstr ""
+
+#: ../src/bc.c:309
+#, fuzzy
+msgid "MSI Plessey"
+msgstr "Plessey"
+
+#: ../src/bc.c:312
+msgid "NVE-18"
+msgstr ""
+
+#: ../src/bc.c:315
+msgid "PDF417"
+msgstr ""
+
+#: ../src/bc.c:318
+msgid "PDF417 Truncated"
+msgstr ""
+
+#: ../src/bc.c:321
+#, fuzzy
+msgid "PLANET"
+msgstr "CEPNET"
+
+#: ../src/bc.c:324
+#, fuzzy
+msgid "PostNet"
+msgstr "Colar"
+
+#: ../src/bc.c:327
+#, fuzzy
+msgid "Pharmacode"
+msgstr "Código de barras"
+
+#: ../src/bc.c:330
+#, fuzzy
+msgid "Pharmacode 2-track"
+msgstr "Dados do Código de Barras vazio"
+
+#: ../src/bc.c:333
+msgid "Pharmazentral Nummer (PZN)"
+msgstr ""
+
+#: ../src/bc.c:336
+msgid "QR Code"
+msgstr ""
+
+#: ../src/bc.c:339
+msgid "Royal Mail 4-State"
+msgstr ""
+
+#: ../src/bc.c:342
+#, fuzzy
+msgid "Telepen"
+msgstr "Apagar"
+
+#: ../src/bc.c:345
+msgid "Telepen Numeric"
+msgstr ""
+
+#: ../src/bc.c:354
+msgid "USPS One Code"
+msgstr ""
+
+#: ../src/bc.c:357
+#, fuzzy
+msgid "UK Plessey"
+msgstr "Plessey"
+
+#: ../src/bc.c:364
+msgid "IEC16022 (DataMatrix)"
+msgstr "IEC16022 (DataMatrix)"
+
+#: ../src/bc.c:371
+msgid "IEC18004 (QRCode)"
+msgstr ""
+
+#: ../src/color-combo-button.c:198 ../src/color-combo.c:178
+#, fuzzy
+msgid "Default Color"
+msgstr "Padrão"
+
+#: ../src/color-combo-menu.c:83
+#, fuzzy
+msgid "Dark Red"
+msgstr "vermelho escuro"
+
+#: ../src/color-combo-menu.c:84
+msgid "Brown"
+msgstr ""
+
+#: ../src/color-combo-menu.c:85
+msgid "Dark Goldenrod"
+msgstr ""
+
+#: ../src/color-combo-menu.c:86
+#, fuzzy
+msgid "Dark Green"
+msgstr "verde escuro"
+
+#: ../src/color-combo-menu.c:87
+msgid "Dark Cyan"
+msgstr ""
+
+#: ../src/color-combo-menu.c:88
+msgid "Navy Blue"
+msgstr ""
+
+#: ../src/color-combo-menu.c:89
+#, fuzzy
+msgid "Dark Violet"
+msgstr "azul escuro"
+
+#: ../src/color-combo-menu.c:91
+#, fuzzy
+msgid "Red"
+msgstr "Refazer"
+
+#: ../src/color-combo-menu.c:92
+#, fuzzy
+msgid "Orange"
+msgstr "laranja"
+
+#: ../src/color-combo-menu.c:93
+msgid "Dark Yellow"
+msgstr ""
+
+#: ../src/color-combo-menu.c:94
+#, fuzzy
+msgid "Medium green"
+msgstr "verde (dull)"
+
+#: ../src/color-combo-menu.c:95
+msgid "Turquoise"
+msgstr ""
+
+#: ../src/color-combo-menu.c:96
+#, fuzzy
+msgid "Blue"
+msgstr "azul"
+
+#: ../src/color-combo-menu.c:97
+#, fuzzy
+msgid "Purple"
+msgstr "violeta"
+
+#: ../src/color-combo-menu.c:99
+msgid "Salmon"
+msgstr ""
+
+#: ../src/color-combo-menu.c:100
+#, fuzzy
+msgid "Gold"
+msgstr "dourado"
+
+#: ../src/color-combo-menu.c:101
+#, fuzzy
+msgid "Yellow"
+msgstr "amarelo"
+
+#: ../src/color-combo-menu.c:102
+#, fuzzy
+msgid "Green"
+msgstr "verde"
+
+#: ../src/color-combo-menu.c:103
+#, fuzzy
+msgid "Cyan"
+msgstr "Ciano"
+
+#: ../src/color-combo-menu.c:104
+#, fuzzy
+msgid "SkyBlue"
+msgstr "azul celeste"
+
+#: ../src/color-combo-menu.c:105
+msgid "Violet"
+msgstr ""
+
+#: ../src/color-combo-menu.c:107
+#, fuzzy
+msgid "Pink"
+msgstr "rosa"
+
+#: ../src/color-combo-menu.c:108
+msgid "Khaki"
+msgstr ""
+
+#: ../src/color-combo-menu.c:109
+#, fuzzy
+msgid "Light Yellow"
+msgstr "amarelo claro"
+
+#: ../src/color-combo-menu.c:110
+#, fuzzy
+msgid "Light Green"
+msgstr "verde claro"
+
+#: ../src/color-combo-menu.c:111
+#, fuzzy
+msgid "Light Cyan"
+msgstr "ciano claro"
+
+#: ../src/color-combo-menu.c:112
+msgid "Slate Gray"
+msgstr ""
+
+#: ../src/color-combo-menu.c:113
+#, fuzzy
+msgid "Thistle"
+msgstr "branco"
+
+#: ../src/color-combo-menu.c:115
+#, fuzzy
+msgid "White"
+msgstr "branco"
+
+#: ../src/color-combo-menu.c:117
+#, no-c-format
+msgid "10% Gray"
+msgstr ""
+
+#: ../src/color-combo-menu.c:119
+#, no-c-format
+msgid "25% Gray"
+msgstr ""
+
+#: ../src/color-combo-menu.c:121
+#, no-c-format
+msgid "40% Gray"
+msgstr ""
+
+#: ../src/color-combo-menu.c:123
+#, no-c-format
+msgid "50% Gray"
+msgstr ""
+
+#: ../src/color-combo-menu.c:125
+#, no-c-format
+msgid "60% Gray"
+msgstr ""
+
+#: ../src/color-combo-menu.c:126
+#, fuzzy
+msgid "Black"
+msgstr "preto"
+
+#: ../src/color-combo-menu.c:254 ../src/color-combo-menu.c:373
+#, fuzzy
+msgid "Custom Color"
+msgstr "Personalizar cor"
+
+#: ../src/color-combo-menu.c:319
+#, fuzzy, c-format
+msgid "Custom Color #%u"
+msgstr "Personalizar cor"
+
+#: ../src/critical-error-handler.c:70
+msgid "gLabels Fatal Error!"
+msgstr "Erro fatal do gLabels"
+
+#: ../src/file.c:84
+msgid "New Label or Card"
+msgstr "Nova Etiqueta ou Cartão"
+
+#: ../src/file.c:175 ../src/label.c:587 ../src/label.c:631
+msgid "Label properties"
+msgstr "Propriedades de etiqueta"
+
+#: ../src/file.c:267 ../src/file.c:557
+msgid "All files"
+msgstr "Todos os ficheiros"
+
+#: ../src/file.c:272 ../src/file.c:562
+msgid "gLabels documents"
+msgstr "Documentos do gLabels"
+
+#: ../src/file.c:319 ../src/file.c:620
+msgid "Empty file name selection"
+msgstr "Selecção de nome do ficheiro vazia"
+
+#: ../src/file.c:322 ../src/file.c:338
+msgid "Please select a file or supply a valid file name"
+msgstr ""
+"Por favor, seleccione um ficheiro ou forneça um nome de ficheiro válido"
+
+#: ../src/file.c:335
+msgid "File does not exist"
+msgstr "ficheiro inexistente"
+
+#: ../src/file.c:410
+#, c-format
+msgid "Could not open file \"%s\""
+msgstr "Impossível abrir o ficheiro \"%s\""
+
+#: ../src/file.c:413
+msgid "Not a supported file format"
+msgstr "Formato de ficheiro não suportado"
+
+#: ../src/file.c:491 ../src/file.c:670
+#, c-format
+msgid "Could not save file \"%s\""
+msgstr "Impossível guardar o ficheiro \"%s\""
+
+#: ../src/file.c:495 ../src/file.c:674
+msgid "Error encountered during save.  The file is still not saved."
+msgstr "Erro encontrado ao guardar. O ficheiro ainda não foi guardado."
+
+#: ../src/file.c:535
+#, c-format
+msgid "Save \"%s\" as"
+msgstr "Guardar \"%s\" como"
+
+#: ../src/file.c:623
+msgid "Please supply a valid file name"
+msgstr "Por favor, forneça um nome de ficheiro válido"
 
-#: ../src/ui.c:150
-msgid "Properties..."
-msgstr "Propriedades..."
+#: ../src/file.c:644
+#, c-format
+msgid "Overwrite file \"%s\"?"
+msgstr "Sobrescrever o ficheiro \"%s\"?"
 
-#: ../src/ui.c:152
-msgid "Modify document properties"
-msgstr "Editar propriedades do documento"
+#: ../src/file.c:648
+msgid "File already exists."
+msgstr "O ficheiro já existe."
 
-#: ../src/ui.c:157
-msgid "Template _Designer..."
-msgstr "_Editor de Modelos..."
+#: ../src/file.c:744
+#, c-format
+msgid "Save changes to document \"%s\" before closing?"
+msgstr "Guardar modificações no documento \"%s\" antes de fechar?"
 
-#: ../src/ui.c:159
-msgid "Create a custom template"
-msgstr "Cria um novo modelo personalizado"
+#: ../src/file.c:748
+msgid "Your changes will be lost if you don't save them."
+msgstr "As suas modificações serão perdidas se você não as guardar."
 
-#: ../src/ui.c:164
-msgid "_Close"
-msgstr "_Fechar"
+#: ../src/file.c:751
+msgid "Close without saving"
+msgstr "Fechar sem guardar"
 
-#: ../src/ui.c:166
-msgid "Close the current file"
-msgstr "Fechar o ficheiro actual"
+#: ../src/font-combo-menu.c:137
+#, fuzzy
+msgid "Recent fonts"
+msgstr "Modelos recentes"
 
-#: ../src/ui.c:171
-msgid "_Quit"
-msgstr "_Sair"
+#: ../src/font-combo-menu.c:152
+msgid "Proportional fonts"
+msgstr ""
 
-#: ../src/ui.c:173
-msgid "Quit the program"
-msgstr "Sai do programa"
+#: ../src/font-combo-menu.c:160
+msgid "Fixed-width fonts"
+msgstr ""
 
-#: ../src/ui.c:180
-msgid "Cut"
-msgstr "Cortar"
+#: ../src/font-combo-menu.c:168
+#, fuzzy
+msgid "All fonts"
+msgstr "Todos os ficheiros"
 
-#: ../src/ui.c:182
-msgid "Cut the selection"
-msgstr "Corta a selecção"
+#.
+#. * Allow text samples to be localized.
+#. *
+#. * FIXME: if we could extract enough meta information from the fonts
+#. * themselves, perhaps rather than setting these globally for the
+#. * current locale, they could be unique to each font family.
+#.
+#: ../src/font-combo-menu-item.c:132
+msgctxt "Short sample text"
+msgid "Aa"
+msgstr ""
 
-#: ../src/ui.c:187
-msgid "Copy"
-msgstr "Copiar"
+#: ../src/font-combo-menu-item.c:134
+msgctxt "Lower case sample text"
+msgid "abcdefghijklmnopqrstuvwxyz"
+msgstr ""
 
-#: ../src/ui.c:189
-msgid "Copy the selection"
-msgstr "Copia a selecção"
+#: ../src/font-combo-menu-item.c:136
+msgctxt "Upper case sample text"
+msgid "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr ""
 
-#: ../src/ui.c:194
-msgid "Paste"
-msgstr "Colar"
+#: ../src/font-combo-menu-item.c:138
+msgctxt "Numbers and special characters sample text"
+msgid "0123456789 .:,;(*!?)"
+msgstr ""
 
-#: ../src/ui.c:196
-msgid "Paste the clipboard"
-msgstr "Cola a área de transferência"
+#: ../src/font-combo-menu-item.c:157
+#, fuzzy
+msgid "Sample text"
+msgstr "Dado de amostra"
 
-#: ../src/ui.c:201
-msgid "Delete"
-msgstr "Apagar"
+#: ../src/glabels-batch.c:53
+msgid "set output filename (default=\"output.pdf\")"
+msgstr "define o nome do ficheiro de saída (padrão=\"output.ps\")"
 
-#: ../src/ui.c:203
-msgid "Delete the selected objects"
-msgstr "Apaga os objectos seleccionados"
+#: ../src/glabels-batch.c:53 ../src/glabels-batch.c:67
+msgid "filename"
+msgstr "nome do ficheiro"
 
-#: ../src/ui.c:208
-msgid "Select All"
-msgstr "Seleccionar Tudo"
+#: ../src/glabels-batch.c:55
+msgid "number of sheets (default=1)"
+msgstr "número de páginas (padrão=1)"
 
-#: ../src/ui.c:210
-msgid "Select all objects"
-msgstr "Selecciona todos os objectos"
+#: ../src/glabels-batch.c:55
+msgid "sheets"
+msgstr "páginas"
 
-#: ../src/ui.c:215
-msgid "Un-select All"
-msgstr "Desmarcar Tudo"
+#: ../src/glabels-batch.c:57
+msgid "number of copies (default=1)"
+msgstr "número de cópias (padrão=1)"
 
-#: ../src/ui.c:217
-msgid "Remove all selections"
-msgstr "Remover todas as selecções"
+#: ../src/glabels-batch.c:57
+msgid "copies"
+msgstr "cópias"
 
-#: ../src/ui.c:222
-msgid "Preferences"
-msgstr "Preferências"
+#: ../src/glabels-batch.c:59
+msgid "first label on first sheet (default=1)"
+msgstr "primeira etiqueta na primeira página (padrão=1)"
 
-#: ../src/ui.c:224
-msgid "Configure the application"
-msgstr "Configurar a aplicação"
+#: ../src/glabels-batch.c:59
+msgid "first"
+msgstr "primeiro"
 
-#: ../src/ui.c:231
-msgid "Zoom in"
-msgstr "Mais Zoom"
+#: ../src/glabels-batch.c:61 ../data/ui/print-op-dialog-custom-widget.ui.h:13
+msgid "print outlines (to test printer alignment)"
+msgstr "imprimir contornos (para testar alinhamento da impressora)"
 
-#: ../src/ui.c:233
-msgid "Increase magnification"
-msgstr "Aumentar ampliação"
+#: ../src/glabels-batch.c:63 ../data/ui/print-op-dialog-custom-widget.ui.h:12
+msgid "print in reverse (i.e. a mirror image)"
+msgstr "imprimir ao contrário (como uma imagem de espelho)"
 
-#: ../src/ui.c:238
-msgid "Zoom out"
-msgstr "Menos Zoom"
+#: ../src/glabels-batch.c:65 ../data/ui/print-op-dialog-custom-widget.ui.h:11
+msgid "print crop marks"
+msgstr "imprimir marcas de cortes"
 
-#: ../src/ui.c:240
-msgid "Decrease magnification"
-msgstr "Diminuir amplificação"
+#: ../src/glabels-batch.c:67
+msgid "input file for merging"
+msgstr "introduza ficheiro para fusão"
 
-#: ../src/ui.c:245
-msgid "Zoom 1 to 1"
-msgstr "Zoom 1:1"
+#: ../src/glabels-batch.c:69 ../src/glabels.c:64
+msgid "[FILE...]"
+msgstr "[FILE...]"
 
-#: ../src/ui.c:247
-msgid "Restore scale to 100%"
-msgstr "Restaura escala para 100%"
+#: ../src/glabels-batch.c:99
+msgid "Print files created with gLabels."
+msgstr ""
 
-#: ../src/ui.c:252
-msgid "Zoom to fit"
-msgstr "Zoom para caber"
+#: ../src/glabels-batch.c:107 ../src/glabels.c:89
+#, c-format
+msgid ""
+"%s\n"
+"Run '%s --help' to see a full list of available command line options.\n"
+msgstr ""
 
-#: ../src/ui.c:254
-msgid "Set scale to fit window"
-msgstr "Definir a escala para caber na janela"
+#: ../src/glabels-batch.c:151
+#, c-format
+msgid "cannot perform document merge with glabels file %s\n"
+msgstr "não foi possível fundir com o ficheiro gLabels %s\n"
 
-#: ../src/ui.c:261
-msgid "Select Mode"
-msgstr "_Seleccionar Modo"
+#: ../src/glabels-batch.c:186
+#, c-format
+msgid "cannot open glabels file %s\n"
+msgstr "impossível abrir o ficheiro gLabels %s\n"
 
-#: ../src/ui.c:263
-msgid "Select, move and modify objects"
-msgstr "Selecciona, movimenta e modifica objectos"
+#: ../src/glabels.c:81
+#, fuzzy
+msgid "Launch gLabels label and business card designer."
+msgstr "Um programa de criação de etiquetas e cartões de visita.\n"
 
-#: ../src/ui.c:268 ../src/view-text.c:494
-#: ../data/glade/object-editor.glade.h:32
-msgid "Text"
-msgstr "Texto"
+#: ../src/label-barcode.c:154 ../src/ui.c:319
+msgid "Create barcode object"
+msgstr "Criar código de barras"
 
-#: ../src/ui.c:270
-msgid "Create text object"
-msgstr "Criar objecto de texto"
+#: ../src/label-barcode.c:227 ../src/label-barcode.c:389
+#, fuzzy
+msgid "Barcode data"
+msgstr "Dados do Código de Barras vazio"
 
-#: ../src/ui.c:275
-msgid "Box"
-msgstr "Caixa"
+#: ../src/label-barcode.c:263
+#, fuzzy
+msgid "Barcode property"
+msgstr "Propriedades do objecto código de barras"
 
-#: ../src/ui.c:277
-msgid "Create box/rectangle object"
-msgstr "Criar caixa/rectângulo"
+#: ../src/label-barcode.c:485
+msgid "Barcode data empty"
+msgstr "Dados do Código de Barras vazio"
 
-#: ../src/ui.c:282 ../data/glade/object-editor.glade.h:20
-msgid "Line"
-msgstr "Linha"
+#: ../src/label-barcode.c:489
+msgid "Invalid barcode data"
+msgstr "Código de barras inválido"
 
-#: ../src/ui.c:284
-msgid "Create line object"
-msgstr "Criar linha"
+#: ../src/label-box.c:156
+#, fuzzy
+msgid "Create box object"
+msgstr "Criar objecto de texto"
 
-#: ../src/ui.c:289
-msgid "Ellipse"
-msgstr "_Elipse"
+#: ../src/label-box.c:230 ../src/label-ellipse.c:232 ../src/stock.c:93
+#: ../data/ui/property-bar.ui.h:3
+msgid "Fill color"
+msgstr "Encher cor"
 
-#: ../src/ui.c:291
-msgid "Create ellipse/circle object"
-msgstr "Criar elipse/círculo"
+#: ../src/label-box.c:261 ../src/label-ellipse.c:261 ../src/label-line.c:212
+#: ../src/stock.c:94 ../data/ui/property-bar.ui.h:8
+msgid "Line color"
+msgstr "Cor da linha"
 
-#: ../src/ui.c:296 ../data/glade/object-editor.glade.h:16
-msgid "Image"
-msgstr "Imagem"
+#: ../src/label-box.c:289 ../src/label-ellipse.c:290 ../src/label-line.c:241
+#: ../data/ui/property-bar.ui.h:9
+msgid "Line width"
+msgstr "Espessura da linha"
 
-#: ../src/ui.c:298
-msgid "Create image object"
-msgstr "Criar objecto de imagem"
+#: ../src/label.c:402
+msgid "Untitled"
+msgstr "Sem título"
 
-#: ../src/ui.c:303
-msgid "Barcode"
-msgstr "Código de barras"
+#: ../src/label.c:705 ../src/ui.c:422
+msgid "Merge properties"
+msgstr "Propriedades de Fusão"
 
-#: ../src/ui.c:305
-msgid "Create barcode object"
-msgstr "Criar código de barras"
+#: ../src/label.c:1197 ../src/ui.c:215
+msgid "Delete"
+msgstr "Apagar"
 
-#: ../src/ui.c:310
+#: ../src/label.c:1230 ../src/ui.c:324
 msgid "Bring to front"
 msgstr "Trazer para a frente"
 
-#: ../src/ui.c:312
-msgid "Raise object to top"
-msgstr "Sobe objectos para o topo"
-
-#: ../src/ui.c:317
+#: ../src/label.c:1266 ../src/ui.c:331
 msgid "Send to back"
 msgstr "Enviar para trás"
 
-#: ../src/ui.c:319
-msgid "Lower object to bottom"
-msgstr "Descer objecto para o fundo"
+#: ../src/label.c:1307
+msgid "Rotate"
+msgstr "Girar"
 
-#: ../src/ui.c:324
+#: ../src/label.c:1342 ../src/ui.c:338
 msgid "Rotate left"
 msgstr "Girar para a esquerda"
 
-#: ../src/ui.c:326
-msgid "Rotate object 90 degrees counter-clockwise"
-msgstr "Girar objecto 90º sentido anti-horário"
-
-#: ../src/ui.c:331
+#: ../src/label.c:1375 ../src/ui.c:345
 msgid "Rotate right"
 msgstr "Girar para a direita"
 
-#: ../src/ui.c:333
-msgid "Rotate object 90 degrees clockwise"
-msgstr "Girar objecto 90º sentido horário"
-
-#: ../src/ui.c:338
+#: ../src/label.c:1410 ../src/ui.c:352
 msgid "Flip horizontally"
 msgstr "Inverter horizontalmente"
 
-#: ../src/ui.c:340
-msgid "Flip object horizontally"
-msgstr "Inverter objecto horizontalmente"
-
-#: ../src/ui.c:345
+#: ../src/label.c:1445 ../src/ui.c:359
 msgid "Flip vertically"
 msgstr "Inverter verticalmente"
 
-#: ../src/ui.c:347
-msgid "Flip object vertically"
-msgstr "Inverter objecto verticalmente"
-
-#: ../src/ui.c:352
+#: ../src/label.c:1485 ../src/ui.c:366
 msgid "Align left"
 msgstr "Alinhar à esquerda"
 
-#: ../src/ui.c:354
-msgid "Align objects to left edges"
-msgstr "Alinhar pela margem esquerda"
+#: ../src/label.c:1542 ../src/ui.c:373
+msgid "Align right"
+msgstr "Alinhar à direita"
+
+#: ../src/label.c:1603 ../src/ui.c:380
+msgid "Align horizontal center"
+msgstr "Alinhar centros horizontais"
+
+#: ../src/label.c:1679 ../src/ui.c:387
+msgid "Align tops"
+msgstr "Alinhar pelos topos"
+
+#: ../src/label.c:1736 ../src/ui.c:394
+msgid "Align bottoms"
+msgstr "Alinhar pelas bases"
+
+#: ../src/label.c:1797 ../src/ui.c:401
+msgid "Align vertical center"
+msgstr "Alinhar centros verticais"
+
+#: ../src/label.c:1875 ../src/ui.c:408
+msgid "Center horizontally"
+msgstr "Centra horizontalmente"
+
+#: ../src/label.c:1922 ../src/ui.c:415
+msgid "Center vertically"
+msgstr "Centra verticalmente"
+
+#: ../src/label.c:2610 ../src/label.c:2652 ../src/label.c:2678 ../src/ui.c:208
+msgid "Paste"
+msgstr "Colar"
+
+#: ../src/label-ellipse.c:160
+#, fuzzy
+msgid "Create ellipse object"
+msgstr "Criar linha"
+
+#: ../src/label-image.c:200 ../src/ui.c:312
+msgid "Create image object"
+msgstr "Criar objecto de imagem"
+
+#: ../src/label-image.c:333 ../src/label-image.c:474
+#, fuzzy
+msgid "Set image"
+msgstr "Redefinir tamanho da imagem"
+
+#: ../src/label-line.c:147 ../src/ui.c:298
+msgid "Create line object"
+msgstr "Criar linha"
+
+#: ../src/label-object.c:383 ../src/label-object.c:416
+msgid "Move"
+msgstr ""
+
+#: ../src/label-object.c:467
+#, fuzzy
+msgid "Resize"
+msgstr "Tamanho da página:"
 
-#: ../src/ui.c:359
-msgid "Align right"
-msgstr "Alinhar à direita"
+#: ../src/label-object.c:1185
+#, fuzzy
+msgid "Shadow state"
+msgstr "Sombra"
 
-#: ../src/ui.c:361
-msgid "Align objects to right edges"
-msgstr "Alinhar pela margem direita"
+#: ../src/label-object.c:1228
+#, fuzzy
+msgid "Shadow offset"
+msgstr "Sombra"
 
-#: ../src/ui.c:366
-msgid "Align horizontal center"
-msgstr "Alinhar centros horizontais"
+#: ../src/label-object.c:1276
+#, fuzzy
+msgid "Shadow color"
+msgstr "Sombra"
 
-#: ../src/ui.c:368
-msgid "Align objects to horizontal centers"
-msgstr "Alinhar objectos pelos centros horizontais"
+#: ../src/label-object.c:1319
+#, fuzzy
+msgid "Shadow opacity"
+msgstr "Sombra"
 
-#: ../src/ui.c:373
-msgid "Align tops"
-msgstr "Alinhar pelos topos"
+#: ../src/label-text.c:279 ../src/ui.c:284
+msgid "Create text object"
+msgstr "Criar objecto de texto"
 
-#: ../src/ui.c:375
-msgid "Align objects to top edges"
-msgstr "Alinhar objectos pela margem superior"
+#: ../src/label-text.c:451
+#, fuzzy
+msgid "Typing"
+msgstr "rosa"
 
-#: ../src/ui.c:380
-msgid "Align bottoms"
-msgstr "Alinhar pelas bases"
+#: ../src/label-text.c:584 ../data/ui/property-bar.ui.h:4
+msgid "Font family"
+msgstr "Família de fontes"
 
-#: ../src/ui.c:382
-msgid "Align objects to bottom edges"
-msgstr "Alinhar objectos pela margem inferior"
+#: ../src/label-text.c:622 ../data/ui/property-bar.ui.h:5
+msgid "Font size"
+msgstr "Tamanho de fonte"
 
-#: ../src/ui.c:387
-msgid "Align vertical center"
-msgstr "Alinhar centros verticais"
+#: ../src/label-text.c:655
+#, fuzzy
+msgid "Font weight"
+msgstr "Girar para a direita"
 
-#: ../src/ui.c:389
-msgid "Align objects to vertical centers"
-msgstr "Alinhar objectos pelos centros verticais"
+#: ../src/label-text.c:688 ../data/ui/property-bar.ui.h:6
+msgid "Italic"
+msgstr "Itálico"
 
-#: ../src/ui.c:394
-msgid "Center horizontally"
-msgstr "Centra horizontalmente"
+#: ../src/label-text.c:721
+#, fuzzy
+msgid "Align text"
+msgstr "Alinhar à esquerda"
 
-#: ../src/ui.c:396
-msgid "Center objects to horizontal label center"
-msgstr "Centra objectos pelo centro horizontal da etiqueta"
+#: ../src/label-text.c:754
+#, fuzzy
+msgid "Line spacing"
+msgstr "Espaçamento de linhas:"
 
-#: ../src/ui.c:401
-msgid "Center vertically"
-msgstr "Centra verticalmente"
+#: ../src/label-text.c:787 ../data/ui/property-bar.ui.h:11
+msgid "Text color"
+msgstr "Cor do texto"
 
-#: ../src/ui.c:403
-msgid "Center objects to vertical label center"
-msgstr "Centra objectos pelo centro vertical da etiqueta"
+#: ../src/label-text.c:931
+msgid "Auto shrink"
+msgstr ""
 
-#: ../src/ui.c:408
-msgid "Merge properties"
-msgstr "Propriedades de Fusão"
+#: ../src/media-select.c:349 ../src/media-select.c:353
+#: ../src/media-select.c:502 ../src/media-select.c:701
+#, fuzzy
+msgctxt "Brand"
+msgid "Any"
+msgstr "Qualquer"
 
-#: ../src/ui.c:410
-msgid "Edit merge properties"
-msgstr "Editar propriedades de fusão"
+#: ../src/media-select.c:358 ../src/media-select.c:871
+#, fuzzy
+msgctxt "Page size"
+msgid "Any"
+msgstr "Qualquer"
 
-#: ../src/ui.c:417
-msgid "Contents"
-msgstr "Manual"
+#: ../src/media-select.c:367 ../src/media-select.c:370
+#: ../src/media-select.c:880
+#, fuzzy
+msgctxt "Category"
+msgid "Any"
+msgstr "Qualquer"
 
-#: ../src/ui.c:419
-msgid "Open glabels manual"
-msgstr "Abre o manual do gLabels"
+#: ../src/media-select.c:968
+msgid "No recent templates found."
+msgstr "Nenhum modelo recente encontrado."
 
-#: ../src/ui.c:424
-msgid "About..."
-msgstr "Acerca..."
+#: ../src/media-select.c:970
+#, fuzzy
+msgid "Try selecting a template in the \"Search all\" tab."
+msgstr "Tente seleccionar um modelo da página \"Procure todos os modelos\"."
 
-#: ../src/ui.c:426
-msgid "About glabels"
-msgstr "Acerca do gLabels"
+#. Translators: "No match" means that for the given template search criteria, there
+#. * were no matches found.
+#: ../src/media-select.c:1061
+msgid "No match."
+msgstr "Sem correspondência."
 
-#: ../src/ui.c:436
-msgid "Property toolbar"
-msgstr "Propriedades da barra de ferramentas"
+#: ../src/media-select.c:1063
+msgid "Try selecting a different brand, page size or category."
+msgstr ""
+"Tente seleccionar uma marca, tamanho de pagina ou categorias diferentes."
 
-#: ../src/ui.c:438
-msgid "Change the visibility of the property toolbar in the current window"
+#: ../src/media-select.c:1157
+#, fuzzy
+msgid "No custom templates found."
+msgstr "Nenhum modelo recente encontrado."
+
+#: ../src/media-select.c:1159
+msgid ""
+"You may create new templates or try searching for pre-defined templates in "
+"the \"Search all\" tab."
 msgstr ""
-"Muda a visibilidade da barra de ferramentas de propriedades na janela actual"
 
-#: ../src/ui.c:444 ../src/ui.c:489 ../src/ui.c:497
-msgid "Show tooltips"
-msgstr "Mostrar dicas"
+#. Translators: "None" here means that no document-merge source or
+#. * method has been selected.
+#: ../src/merge.c:171 ../src/merge.c:212 ../src/merge.c:376 ../src/merge.c:379
+msgid "None"
+msgstr "Nenhum"
 
-#: ../src/ui.c:446
-msgid "Show tooltips for property toolbar"
-msgstr "Mostrar dicas na barra de ferramentas de propriedades"
+#: ../src/merge-evolution.c:316
+msgid "Couldn't construct query"
+msgstr "Impossível construir consulta"
 
-#: ../src/ui.c:452
-msgid "Grid"
-msgstr "Grelha"
+#: ../src/merge-evolution.c:322 ../src/merge-evolution.c:333
+msgid "Couldn't open addressbook."
+msgstr "Impossível abrir livro de endereços."
 
-#: ../src/ui.c:454
-msgid "Change the visibility of the grid in the current window"
-msgstr "Muda a visibilidade da grelha na janela actual"
+#: ../src/merge-evolution.c:348
+msgid "Couldn't list available fields."
+msgstr "Impossível listar campos disponíveis."
 
-#: ../src/ui.c:460
-msgid "Markup"
-msgstr "Marcação"
+#: ../src/merge-evolution.c:384
+msgid "Couldn't get contacts."
+msgstr "Impossível obter contactos."
 
-#: ../src/ui.c:462
-msgid "Change the visibility of markup lines in the current window"
-msgstr "Muda a visibilidade das linhas de marcação na janela actual"
+#: ../src/merge-init.c:57
+msgid "Text: Comma Separated Values (CSV)"
+msgstr ""
 
-#: ../src/ui.c:473
-msgid "Main toolbar"
-msgstr "Barra de ferramentas principal"
+#: ../src/merge-init.c:64
+msgid "Text: Comma Separated Values (CSV) with keys on line 1"
+msgstr ""
 
-#: ../src/ui.c:475
-msgid "Change the visibility of the main toolbar in the current window"
-msgstr "Muda a visibilidade da barra de ferramentas principal na janela actual"
+#: ../src/merge-init.c:72
+msgid "Text: Tab Separated Values (TSV)"
+msgstr ""
 
-#: ../src/ui.c:481
-msgid "Drawing toolbar"
-msgstr "Barra de ferramentas de desenho"
+#: ../src/merge-init.c:79
+msgid "Text: Tab Separated Values (TSV) with keys on line 1"
+msgstr ""
 
-#: ../src/ui.c:483
-msgid "Change the visibility of the drawing toolbar in the current window"
+#: ../src/merge-init.c:87
+msgid "Text: Colon separated values"
 msgstr ""
-"Muda a visibilidade da barra de ferramentas de desenho na janela actual"
 
-#: ../src/ui.c:491
-msgid "Show tooltips for main toolbar"
-msgstr "Exibe dicas na barra de ferramentas principal"
+#: ../src/merge-init.c:94
+msgid "Text: Colon separated values with keys on line 1"
+msgstr ""
 
-#: ../src/ui.c:499
-msgid "Show tooltips for drawing toolbar"
-msgstr "Exibe dicas na barra de ferramentas de desenho"
+#: ../src/merge-init.c:102
+msgid "Text: Semicolon separated values"
+msgstr ""
 
-#: ../src/ui-property-bar.c:1232 ../src/object-editor.c:587
-#: ../src/object-editor.c:593
-msgid "Default"
-msgstr "Padrão"
+#: ../src/merge-init.c:109
+msgid "Text: Semicolon separated values with keys on line 1"
+msgstr ""
 
-#: ../src/ui-property-bar.c:1239 ../src/object-editor.c:599
-msgid "No line"
-msgstr "Nenhuma linha"
+#: ../src/merge-init.c:119
+#, fuzzy
+msgid "Evolution Addressbook"
+msgstr "Dados do Livro de Endereços padrão do Evolution"
 
-#: ../src/ui-property-bar.c:1247 ../src/object-editor.c:606
-msgid "No fill"
-msgstr "Sem enchimento"
+#: ../src/merge-init.c:125
+#, fuzzy
+msgid "VCards"
+msgstr "Cartões tenda"
 
-#: ../src/ui-sidebar.c:152
-msgid "Object properties"
-msgstr "Propriedades de objecto"
+#: ../src/merge-properties-dialog.c:282
+msgid "Merge Properties"
+msgstr "Propriedades de Fusão"
 
-#: ../src/ui-commands.c:1084
-msgid "Glabels includes contributions from:"
-msgstr "gLabels inclui contribuições de:"
+#: ../src/merge-properties-dialog.c:308 ../src/merge-properties-dialog.c:424
+msgid "Select merge-database source"
+msgstr "Seleccionar a fonte da base de dados da fusão"
 
-#: ../src/ui-commands.c:1090
-msgid "See the file AUTHORS for additional credits,"
-msgstr "Veja o ficheiro AUTHORS para ver créditos adicionais,"
+#: ../src/merge-properties-dialog.c:319 ../src/merge-properties-dialog.c:450
+msgid "N/A"
+msgstr "Não definido"
 
-#: ../src/ui-commands.c:1091
-msgid "or visit http://glabels.sourceforge.net/"
-msgstr "ou visite http://gLabels.sourceforge.net/"
+#: ../src/merge-properties-dialog.c:345
+msgid "Select"
+msgstr "Seleccionar"
 
-#: ../src/ui-commands.c:1103
-msgid "A label and business card creation program.\n"
-msgstr "Um programa de criação de etiquetas e cartões de visita.\n"
+#: ../src/merge-properties-dialog.c:352
+msgid "Record/Field"
+msgstr "Registro/Campo"
 
-#: ../src/ui-commands.c:1107
-msgid "translator-credits"
-msgstr "translator-credits"
+#: ../src/merge-properties-dialog.c:360 ../data/ui/object-editor.ui.h:8
+msgid "Data"
+msgstr "Dados"
 
-#: ../src/ui-commands.c:1110
-msgid ""
-"Glabels is free software; you can redistribute it and/or modify it\n"
-"under the terms of the GNU General Public License as published by\n"
-"the Free Software Foundation; either version 2 of the License, or\n"
-"(at your option) any later version.\n"
-"\n"
-"This program is distributed in the hope that it will be useful, but\n"
-"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See\n"
-"the GNU General Public License for more details.\n"
+#. Translators: "Fixed" here means that for the given document-merge method, there are
+#. * no further choices to further define the source of data.  E.g. if you select the
+#. * evolution-data-server, there are no further choices -- the source is "Fixed."
+#.
+#: ../src/merge-properties-dialog.c:443
+msgid "Fixed"
+msgstr "Fixo"
+
+#. Translators: "Up" refers to the direction towards the top of a label.
+#: ../src/mini-preview.c:1074
+msgid "Up"
 msgstr ""
-"gLabels é software livre; você pode redistribuí-lo e/ou modificá-lo \n"
-"sob os termos da Licença Pública Geral GNU conforme publicada \n"
-"pela Free Software Foundation; ou a versão 2 da Licença, ou (sob \n"
-"sua opção) qualquer versão posterior.\n"
-"\n"
-"Este programa é distribuído na esperança de que seja útil, mas SEM \n"
-"QUALQUER GARANTIA; sem mesmo as garantias implícitas de \n"
-"COMERCIALIZAÇÃO ou AJUSTES A UM PROPÓSITO PARTICULAR. Veja \n"
-"a Licença Pública Geral GNU para mais detalhes.\n"
 
-#: ../src/ui-commands.c:1136
-msgid "glabels"
-msgstr "gLabels"
+#: ../src/new-label-dialog.c:203
+#, fuzzy
+msgid "Select Product"
+msgstr "_Seleccionar Modo"
 
-#: ../src/file.c:91
-msgid "New Label or Card"
-msgstr "Nova Etiqueta ou Cartão"
+#: ../src/new-label-dialog.c:215
+msgid "Choose Orientation"
+msgstr ""
 
-#: ../src/file.c:191
-msgid "Label properties"
-msgstr "Propriedades de etiqueta"
+#: ../src/new-label-dialog.c:229
+msgid "Review"
+msgstr ""
 
-#: ../src/file.c:292 ../src/file.c:578
-msgid "All files"
-msgstr "Todos os ficheiros"
+#: ../src/object-editor-bc-page.c:93 ../src/object-editor-shadow-page.c:93
+#: ../src/object-editor-text-page.c:97 ../src/prefs-dialog.c:339
+#: ../src/ui-property-bar.c:280
+msgid "Default"
+msgstr "Padrão"
 
-#: ../src/file.c:297 ../src/file.c:583
-msgid "gLabels documents"
-msgstr "Documentos do gLabels"
+#: ../src/object-editor.c:159 ../src/object-editor.c:460
+msgid "Object properties"
+msgstr "Propriedades de objecto"
 
-#: ../src/file.c:343 ../src/file.c:640
-msgid "Empty file name selection"
-msgstr "Selecção de nome do ficheiro vazia"
+#: ../src/object-editor.c:309
+msgid "Box object properties"
+msgstr "Propriedades do objecto caixa"
 
-#: ../src/file.c:346 ../src/file.c:362
-msgid "Please select a file or supply a valid file name"
-msgstr ""
-"Por favor, seleccione um ficheiro ou forneça um nome de ficheiro válido"
+#: ../src/object-editor.c:328
+msgid "Ellipse object properties"
+msgstr "Propriedades do objecto elipse"
 
-#: ../src/file.c:359
-msgid "File does not exist"
-msgstr "ficheiro inexistente"
+#: ../src/object-editor.c:347
+msgid "Line object properties"
+msgstr "Propriedades do objecto linha"
 
-#: ../src/file.c:433
-#, c-format
-msgid "Could not open file \"%s\""
-msgstr "Impossível abrir o ficheiro \"%s\""
+#: ../src/object-editor.c:364
+msgid "Image object properties"
+msgstr "Propriedades do objecto imagem"
 
-#: ../src/file.c:436
-msgid "Not a supported file format"
-msgstr "Formato de ficheiro não suportado"
+#: ../src/object-editor.c:381
+msgid "Text object properties"
+msgstr "Propriedades do objecto texto"
 
-#: ../src/file.c:513 ../src/file.c:690
-#, c-format
-msgid "Could not save file \"%s\""
-msgstr "Impossível guardar o ficheiro \"%s\""
+#: ../src/object-editor.c:403
+msgid "Barcode object properties"
+msgstr "Propriedades do objecto código de barras"
 
-#: ../src/file.c:517 ../src/file.c:694
-msgid "Error encountered during save.  The file is still not saved."
-msgstr "Erro encontrado ao guardar. O ficheiro ainda não foi guardado."
+#: ../src/object-editor-edit-page.c:76
+msgid "Insert merge field"
+msgstr "Inserir campo de fusão"
 
-#: ../src/file.c:556
-#, c-format
-msgid "Save \"%s\" as"
-msgstr "Guardar \"%s\" como"
+#: ../src/object-editor-fill-page.c:79 ../src/prefs-dialog.c:345
+#: ../src/ui-property-bar.c:292
+#, fuzzy
+msgid "No Fill"
+msgstr "Sem enchimento"
 
-#: ../src/file.c:643
-msgid "Please supply a valid file name"
-msgstr "Por favor, forneça um nome de ficheiro válido"
+#: ../src/object-editor-image-page.c:278
+msgid "All Files"
+msgstr "Todos os ficheiros"
 
-#: ../src/file.c:664
+#: ../src/object-editor-image-page.c:283
+msgid "All Images"
+msgstr "Todas as imagens"
+
+#: ../src/object-editor-image-page.c:298
 #, c-format
-msgid "Overwrite file \"%s\"?"
-msgstr "Sobrescrever o ficheiro \"%s\"?"
+msgid "%s (*.%s)"
+msgstr "%s (*.%s)"
 
-#: ../src/file.c:668
-msgid "File already exists."
-msgstr "O ficheiro já existe."
+#: ../src/object-editor-line-page.c:79 ../src/prefs-dialog.c:342
+#: ../src/ui-property-bar.c:304
+#, fuzzy
+msgid "No Line"
+msgstr "Nenhuma linha"
 
-#: ../src/file.c:764
-#, c-format
-msgid "Save changes to document \"%s\" before closing?"
-msgstr "Guardar modificações no documento \"%s\" antes de fechar?"
+#: ../src/prefs-dialog.c:172 ../data/ui/prefs-dialog.ui.h:21
+msgid "gLabels Preferences"
+msgstr "Preferências do gLabels"
 
-#: ../src/file.c:768
-msgid "Your changes will be lost if you don't save them."
-msgstr "As suas modificações serão perdidas se você não as guardar."
+#. ===================================================================
+#: ../src/print-op.c:205 ../src/print-op-dialog.c:217
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:4
+#: ../templates/misc-iso-templates.xml.h:34
+msgid "Labels"
+msgstr "Etiquetas"
+
+#: ../src/stock.c:70
+msgid "_Select Mode"
+msgstr "_Seleccionar Modo"
+
+#: ../src/stock.c:71
+msgid "_Text"
+msgstr "_Texto"
 
-#: ../src/file.c:771
-msgid "Close without saving"
-msgstr "Fechar sem guardar"
+#: ../src/stock.c:72
+msgid "_Line"
+msgstr "_Linha"
 
-#. Should not happen
-#: ../src/prefs.c:159 ../src/prefs.c:166
-#: ../data/glade/object-editor.glade.h:43
-#: ../data/glade/prefs-dialog.glade.h:22
-msgid "points"
-msgstr "pontos"
+#: ../src/stock.c:73
+msgid "_Box"
+msgstr "_Caixa"
 
-#: ../src/prefs.c:161 ../data/glade/object-editor.glade.h:42
-#: ../data/glade/template-designer.glade.h:64
-msgid "inches"
-msgstr "polegadas"
+#: ../src/stock.c:74
+msgid "_Ellipse"
+msgstr "_Elipse"
 
-#: ../src/prefs.c:163
-msgid "mm"
-msgstr "mm"
+#: ../src/stock.c:75
+msgid "_Image"
+msgstr "_Imagem"
 
-#: ../src/prefs-dialog.c:162 ../data/glade/prefs-dialog.glade.h:21
-msgid "gLabels Preferences"
-msgstr "Preferências do gLabels"
+#: ../src/stock.c:76
+msgid "Bar_code"
+msgstr "_Código de barras"
 
-#. Build editor.
-#: ../src/view-box.c:175
-msgid "Box object properties"
-msgstr "Propriedades do objecto caixa"
+#: ../src/stock.c:77
+msgid "_Merge Properties"
+msgstr "Propriedades de _Fusão"
 
-#. Build editor.
-#: ../src/view-ellipse.c:175
-msgid "Ellipse object properties"
-msgstr "Propriedades do objecto elipse"
+#: ../src/stock.c:78
+msgid "Object _Properties"
+msgstr "_Propriedades de Objecto"
 
-#. Build editor.
-#: ../src/view-line.c:174
-msgid "Line object properties"
-msgstr "Propriedades do objecto linha"
+#: ../src/stock.c:79
+msgid "Bring to _Front"
+msgstr "Trazer para a _Frente"
 
-#. Build editor.
-#: ../src/view-image.c:174
-msgid "Image object properties"
-msgstr "Propriedades do objecto imagem"
+#: ../src/stock.c:80
+msgid "Send to _Back"
+msgstr "Enviar para _Trás"
 
-#. Build editor.
-#: ../src/view-text.c:178
-msgid "Text object properties"
-msgstr "Propriedades do objecto texto"
+#: ../src/stock.c:81
+msgid "Rotate _Left"
+msgstr "Girar para a_Esquerda"
 
-#. Build editor.
-#: ../src/view-barcode.c:174
-msgid "Barcode object properties"
-msgstr "Propriedades do objecto código de barras"
+#: ../src/stock.c:82
+msgid "Rotate _Right"
+msgstr "Girar para a _Direita"
 
-#: ../src/object-editor-image-page.c:270
-msgid "All Files"
-msgstr "Todos os ficheiros"
+#: ../src/stock.c:83
+msgid "Flip _Horizontally"
+msgstr "Inverter _Horizontalmente"
 
-#: ../src/object-editor-image-page.c:275
-msgid "All Images"
-msgstr "Todas as imagens"
+#: ../src/stock.c:84
+msgid "Flip _Vertically"
+msgstr "Inverter _Verticalmente"
 
-#: ../src/object-editor-image-page.c:290
-#, c-format
-msgid "%s (*.%s)"
-msgstr "%s (*.%s)"
+#: ../src/stock.c:85
+msgid "_Lefts"
+msgstr "_Esquerdas"
 
-#: ../src/merge-properties-dialog.c:263
-msgid "Merge Properties"
-msgstr "Propriedades de Fusão"
+#: ../src/stock.c:86
+msgid "_Rights"
+msgstr "_Direitas"
 
-#: ../src/merge-properties-dialog.c:289 ../src/merge-properties-dialog.c:397
-msgid "Select merge-database source"
-msgstr "Seleccionar a fonte da base de dados da fusão"
+#: ../src/stock.c:87
+msgid "_Centers"
+msgstr "_Centros"
 
-#: ../src/merge-properties-dialog.c:298 ../src/merge-properties-dialog.c:417
-msgid "N/A"
-msgstr "Não definido"
+#: ../src/stock.c:88
+msgid "_Tops"
+msgstr "_Topos"
 
-#: ../src/merge-properties-dialog.c:324
-msgid "Select"
-msgstr "Seleccionar"
+#: ../src/stock.c:89
+msgid "Bottoms"
+msgstr "Bases"
 
-#: ../src/merge-properties-dialog.c:332
-msgid "Record/Field"
-msgstr "Registro/Campo"
+#: ../src/stock.c:90
+msgid "Centers"
+msgstr "Centros"
 
-#: ../src/merge-properties-dialog.c:340 ../data/glade/object-editor.glade.h:10
-msgid "Data"
-msgstr "Dados"
+#: ../src/stock.c:91 ../src/stock.c:92
+msgid "Label Ce_nter"
+msgstr "Ce_ntro da Etiqueta"
 
-#: ../src/merge-properties-dialog.c:410
-msgid "Fixed"
-msgstr "Fixo"
+#: ../src/stock.c:95 ../src/stock.c:97
+msgid "Linked"
+msgstr "Ligado"
 
-#. ===================================================================
-#: ../src/print-op.c:237 ../src/wdgt-print-copies.c:171
-#: ../data/templates/misc-iso-templates.xml.h:34
-msgid "Labels"
-msgstr "Etiquetas"
+#: ../src/stock.c:96 ../src/stock.c:98
+msgid "Not Linked"
+msgstr "Não ligado"
 
-#: ../src/template-designer.c:358
-msgid "gLabels Template Designer"
+#: ../src/template-designer.c:404
+#, fuzzy
+msgid "New gLabels Template"
 msgstr "Criador de modelos do gLabels"
 
-#: ../src/template-designer.c:419
+#: ../src/template-designer.c:461
 msgid "Welcome"
 msgstr "Bem-vindo"
 
-#: ../src/template-designer.c:463
+#: ../src/template-designer.c:500
 msgid "Name and Description"
 msgstr "Nome e Descrição"
 
-#: ../src/template-designer.c:516
+#: ../src/template-designer.c:548
 msgid "Page Size"
 msgstr "Tamanho da página"
 
-#: ../src/template-designer.c:587
+#: ../src/template-designer.c:614
 msgid "Label or Card Shape"
 msgstr "Forma da Etiqueta ou Cartão"
 
-#: ../src/template-designer.c:637
+#: ../src/template-designer.c:661
 msgid "Label or Card Size"
 msgstr "Tamanho da Etiqueta ou Cartão"
 
-#: ../src/template-designer.c:737
+#: ../src/template-designer.c:760
 msgid "Label Size (round)"
 msgstr "Tamanho da etiqueta (redonda)"
 
-#: ../src/template-designer.c:820
+#: ../src/template-designer.c:841
 msgid "Label Size (CD/DVD)"
 msgstr "Tamanho da etiqueta (CD/DVD)"
 
-#: ../src/template-designer.c:913
+#: ../src/template-designer.c:932
 msgid "Number of Layouts"
 msgstr "Número de disposições"
 
-#: ../src/template-designer.c:976
+#: ../src/template-designer.c:1000
 msgid "Layout(s)"
 msgstr "Disposição"
 
-#: ../src/template-designer.c:1087
+#: ../src/template-designer.c:1105
 msgid "Design Completed"
 msgstr "Desenho Completo"
 
-#: ../src/template-designer.c:1253
-msgid ""
-"<span foreground='red' weight='bold'>Brand and part# match an existing "
-"template!</span>"
+#: ../src/template-designer.c:1133
+#, fuzzy
+msgid "Edit gLabels Template"
+msgstr "Criador de modelos do gLabels"
+
+#: ../src/template-designer.c:1423
+#, fuzzy
+msgid "Brand and part# match an existing template!"
 msgstr ""
 "<span foreground='red' weight='bold'>Marca e série # coincidem com um modelo "
 "existente!</span>"
 
-#: ../src/bc.c:67
-msgid "POSTNET (any)"
-msgstr "POSTNET (qualquer)"
-
-#: ../src/bc.c:70
-msgid "POSTNET-5 (ZIP only)"
-msgstr "POSTNET-5 (ZIP apenas)"
-
-#: ../src/bc.c:73
-msgid "POSTNET-9 (ZIP+4)"
-msgstr "POSTNET-9 (ZIP+4)"
-
-#: ../src/bc.c:76
-msgid "POSTNET-11 (DPBC)"
-msgstr "POSTNET-11 (DPBC)"
-
-#: ../src/bc.c:79
-msgid "CEPNET"
-msgstr "CEPNET"
+#. Menu entries.
+#: ../src/ui.c:93
+msgid "_File"
+msgstr "_Ficheiro"
 
-#: ../src/bc.c:82
-msgid "EAN (any)"
-msgstr "EAN (qualquer)"
+#: ../src/ui.c:94
+msgid "Open Recent _Files"
+msgstr "Abir _Ficheiros Recentes"
 
-#: ../src/bc.c:85
-msgid "EAN-8"
-msgstr "EAN-8"
+#: ../src/ui.c:95
+msgid "_Edit"
+msgstr "_Editar"
 
-#: ../src/bc.c:88
-msgid "EAN-8 +2"
-msgstr "EAN-8 +2"
+#: ../src/ui.c:96
+msgid "_View"
+msgstr "_Ver"
 
-#: ../src/bc.c:91
-msgid "EAN-8 +5"
-msgstr "EAN-8 +5"
+#: ../src/ui.c:97
+msgid "Customize Main Toolbar"
+msgstr "Personalizar barra de ferramentas principal"
 
-#: ../src/bc.c:94
-msgid "EAN-13"
-msgstr "EAN-13"
+#: ../src/ui.c:98
+msgid "Customize Drawing Toolbar"
+msgstr "Personalizar barra de ferramentas de desenho"
 
-#: ../src/bc.c:97
-msgid "EAN-13 +2"
-msgstr "EAN-13 +2"
+#: ../src/ui.c:99
+msgid "Customize Properties Toolbar"
+msgstr "Personalizar propriedades da barras de ferramentas"
 
-#: ../src/bc.c:100
-msgid "EAN-13 +5"
-msgstr "EAN-13 +5"
+#: ../src/ui.c:100
+msgid "_Objects"
+msgstr "_Objectos"
 
-#: ../src/bc.c:103
-msgid "UPC (UPC-A or UPC-E)"
-msgstr "UPC (UPC-A ou UPC-E)"
+#: ../src/ui.c:101
+msgid "_Create"
+msgstr "_Criar"
 
-#: ../src/bc.c:106
-msgid "UPC-A"
-msgstr "UPC-A"
+#: ../src/ui.c:102
+msgid "_Order"
+msgstr "_Ordem"
 
-#: ../src/bc.c:109
-msgid "UPC-A +2"
-msgstr "UPC-A +2"
+#: ../src/ui.c:103
+msgid "_Rotate/Flip"
+msgstr "_Girar/Inverter"
 
-#: ../src/bc.c:112
-msgid "UPC-A +5"
-msgstr "UPC-A +5"
+#: ../src/ui.c:104
+msgid "Align _Horizontal"
+msgstr "Alinhar na _Horizontal"
 
-#: ../src/bc.c:115
-msgid "UPC-E"
-msgstr "UPC-E"
+#: ../src/ui.c:105
+msgid "Align _Vertical"
+msgstr "Alinhar na _Vertical"
 
-#: ../src/bc.c:118
-msgid "UPC-E +2"
-msgstr "UPC-E +2"
+#: ../src/ui.c:106
+msgid "_Help"
+msgstr "A_juda"
 
-#: ../src/bc.c:121
-msgid "UPC-E +5"
-msgstr "UPC-E +5"
+#. Popup entries.
+#: ../src/ui.c:109 ../src/ui.c:110
+msgid "Context Menu"
+msgstr "Menu de contexto"
 
-#: ../src/bc.c:124
-msgid "ISBN"
-msgstr "ISBN"
+#: ../src/ui.c:115
+msgid "_New"
+msgstr "_Novo"
 
-#: ../src/bc.c:127
-msgid "ISBN +5"
-msgstr "ISBN +5"
+#: ../src/ui.c:117
+msgid "Create a new file"
+msgstr "Cria um novo ficheiro"
 
-#: ../src/bc.c:130
-msgid "Code 39"
-msgstr "Código 39"
+#: ../src/ui.c:122
+msgid "_Open..."
+msgstr "_Abrir..."
 
-#: ../src/bc.c:133
-msgid "Code 128"
-msgstr "Código 128"
+#: ../src/ui.c:124
+msgid "Open a file"
+msgstr "Abrir um ficheiro"
 
-#: ../src/bc.c:136
-msgid "Code 128C"
-msgstr "Código 128C"
+#: ../src/ui.c:129
+msgid "_Save"
+msgstr "_Guardar"
 
-#: ../src/bc.c:139
-msgid "Code 128B"
-msgstr "Código 128B"
+#: ../src/ui.c:131
+msgid "Save current file"
+msgstr "Guarda o ficheiro actual"
 
-#: ../src/bc.c:142
-msgid "Interleaved 2 of 5"
-msgstr "Interleaved 2 of 5"
+#: ../src/ui.c:136
+msgid "Save _As..."
+msgstr "Guardar _como..."
 
-#: ../src/bc.c:145
-msgid "Codabar"
-msgstr "Codabar"
+#: ../src/ui.c:138
+msgid "Save the current file to a different name"
+msgstr "Guarda o ficheiro actual com um nome diferente"
 
-#: ../src/bc.c:148
-msgid "MSI"
-msgstr "MSI"
+#: ../src/ui.c:143
+msgid "_Print..."
+msgstr "Im_primir..."
 
-#: ../src/bc.c:151
-msgid "Plessey"
-msgstr "Plessey"
+#: ../src/ui.c:145
+msgid "Print the current file"
+msgstr "Imprime o ficheiro actual"
 
-#: ../src/bc.c:154
-msgid "IEC16022 (DataMatrix)"
-msgstr "IEC16022 (DataMatrix)"
+#: ../src/ui.c:150
+msgid "Properties..."
+msgstr "Propriedades..."
 
-#: ../src/label.c:531
-msgid "Untitled"
-msgstr "Sem título"
+#: ../src/ui.c:152
+msgid "Modify document properties"
+msgstr "Editar propriedades do documento"
 
-#: ../src/label-barcode.c:426
-msgid "Barcode data empty"
-msgstr "Dados do Código de Barras vazio"
+#: ../src/ui.c:157
+msgid "Template _Designer..."
+msgstr "_Editor de Modelos..."
 
-#: ../src/label-barcode.c:430
-msgid "Invalid barcode data"
-msgstr "Código de barras inválido"
+#: ../src/ui.c:159
+msgid "Create a custom template"
+msgstr "Cria um novo modelo personalizado"
 
-#: ../src/xml-label.c:193
-msgid "xmlParseFile error"
-msgstr "erro: xmlParseFile"
+#: ../src/ui.c:164
+msgid "_Close"
+msgstr "_Fechar"
 
-#: ../src/xml-label.c:234
-msgid "xmlParseDoc error"
-msgstr "erro: xmlParseDoc"
+#: ../src/ui.c:166
+msgid "Close the current file"
+msgstr "Fechar o ficheiro actual"
 
-#: ../src/xml-label.c:270
-msgid "No document root"
-msgstr "Sem documento raiz"
+#: ../src/ui.c:171
+msgid "_Quit"
+msgstr "_Sair"
 
-#: ../src/xml-label.c:278
-msgid "Importing from glabels 0.1 format"
-msgstr "Importando do formato do gLabels 0.1"
+#: ../src/ui.c:173
+msgid "Quit the program"
+msgstr "Sai do programa"
 
-#: ../src/xml-label.c:287
-msgid "Importing from glabels 0.4 format"
-msgstr "Importando do formato do gLabels 0.4"
+#: ../src/ui.c:180 ../src/ui.c:182 ../src/ui.c:967
+msgid "Undo"
+msgstr "Desfazer"
 
-#: ../src/xml-label.c:296
-#, c-format
-msgid "Unknown glabels Namespace -- Using %s"
-msgstr "Espaço de nome gLabels desconhecido -- Usando %s"
+#: ../src/ui.c:187 ../src/ui.c:189 ../src/ui.c:974
+msgid "Redo"
+msgstr "Refazer"
 
-#: ../src/xml-label.c:327 ../src/xml-label-04.c:79
-#, c-format
-msgid "Bad root node = \"%s\""
-msgstr "Mau nó de raiz  = \"%s\""
+#: ../src/ui.c:194
+msgid "Cut"
+msgstr "Cortar"
 
-#: ../src/xml-label.c:364
-#, c-format
-msgid "bad node in Document node =  \"%s\""
-msgstr "Mau nó do documento = \"%s\""
+#: ../src/ui.c:196
+msgid "Cut the selection"
+msgstr "Corta a selecção"
 
-#: ../src/xml-label.c:409 ../src/xml-label-04.c:127
-#, c-format
-msgid "bad node =  \"%s\""
-msgstr "Mau nó = \"%s\""
+#: ../src/ui.c:201
+msgid "Copy"
+msgstr "Copiar"
 
-#: ../src/xml-label.c:851
-#, c-format
-msgid "bad node in Data node =  \"%s\""
-msgstr "Mau nó de dados  = \"%s\""
+#: ../src/ui.c:203
+msgid "Copy the selection"
+msgstr "Copia a selecção"
 
-#: ../src/xml-label.c:1088 ../libglabels/xml-template.c:682
-msgid "Utf8 conversion error."
-msgstr "Erro de conversão UTF8"
+#: ../src/ui.c:210
+msgid "Paste the clipboard"
+msgstr "Cola a área de transferência"
 
-#: ../src/xml-label.c:1095
-msgid "Problem saving xml file."
-msgstr "Problema a gravar um ficheiro xml."
+#: ../src/ui.c:217
+msgid "Delete the selected objects"
+msgstr "Apaga os objectos seleccionados"
 
-#: ../src/merge.c:170 ../src/merge.c:211 ../src/merge.c:375 ../src/merge.c:378
-msgid "None"
-msgstr "Nenhum"
+#: ../src/ui.c:222
+msgid "Select All"
+msgstr "Seleccionar Tudo"
 
-#: ../src/merge-init.c:59
-msgid "Text file with comma delimeters (CSV)"
-msgstr "Ficheiro de texto separado com vírgulas (CSV)"
+#: ../src/ui.c:224
+msgid "Select all objects"
+msgstr "Selecciona todos os objectos"
 
-#: ../src/merge-init.c:66
-msgid "Text file with colon delimeters"
-msgstr "Ficheiro de texto separado com dois pontos"
+#: ../src/ui.c:229
+msgid "Un-select All"
+msgstr "Desmarcar Tudo"
 
-#: ../src/merge-init.c:73
-msgid "Text file with tab delimeters"
-msgstr "Ficheiro de texto separado por tabulações"
+#: ../src/ui.c:231
+msgid "Remove all selections"
+msgstr "Remover todas as selecções"
 
-#: ../src/merge-init.c:82
-msgid "Data from default Evolution Addressbook"
-msgstr "Dados do Livro de Endereços padrão do Evolution"
+#: ../src/ui.c:236
+msgid "Preferences"
+msgstr "Preferências"
 
-#: ../src/merge-init.c:88
-msgid "Data from a file containing VCards"
-msgstr "Dados de um ficheiro com VCards"
+#: ../src/ui.c:238
+msgid "Configure the application"
+msgstr "Configurar a aplicação"
 
-#: ../src/merge-evolution.c:309
-msgid "Couldn't construct query"
-msgstr "Impossível construir consulta"
+#: ../src/ui.c:245
+msgid "Zoom in"
+msgstr "Mais Zoom"
 
-#: ../src/merge-evolution.c:315 ../src/merge-evolution.c:326
-msgid "Couldn't open addressbook."
-msgstr "Impossível abrir livro de endereços."
+#: ../src/ui.c:247
+msgid "Increase magnification"
+msgstr "Aumentar ampliação"
 
-#: ../src/merge-evolution.c:341
-msgid "Couldn't list available fields."
-msgstr "Impossível listar campos disponíveis."
+#: ../src/ui.c:252
+msgid "Zoom out"
+msgstr "Menos Zoom"
 
-#: ../src/merge-evolution.c:377
-msgid "Couldn't get contacts."
-msgstr "Impossível obter contactos."
+#: ../src/ui.c:254
+msgid "Decrease magnification"
+msgstr "Diminuir amplificação"
 
-#: ../src/wdgt-print-copies.c:153
-msgid "Sheets:"
-msgstr "Páginas:"
+#: ../src/ui.c:259
+msgid "Zoom 1 to 1"
+msgstr "Zoom 1:1"
 
-#: ../src/wdgt-print-copies.c:173
-msgid "from:"
-msgstr "de:"
+#: ../src/ui.c:261
+msgid "Restore scale to 100%"
+msgstr "Restaura escala para 100%"
 
-#: ../src/wdgt-print-copies.c:178
-msgid "to:"
-msgstr "para:"
+#: ../src/ui.c:266
+msgid "Zoom to fit"
+msgstr "Zoom para caber"
 
-#: ../src/wdgt-print-merge.c:154
-msgid "Start on label"
-msgstr "Iniciar na etiqueta"
+#: ../src/ui.c:268
+msgid "Set scale to fit window"
+msgstr "Definir a escala para caber na janela"
 
-#: ../src/wdgt-print-merge.c:159
-msgid "on 1st sheet"
-msgstr "na primeira folha"
+#: ../src/ui.c:275
+msgid "Select Mode"
+msgstr "_Seleccionar Modo"
 
-#: ../src/wdgt-print-merge.c:168
-msgid "Copies:"
-msgstr "Cópias:"
+#: ../src/ui.c:277
+msgid "Select, move and modify objects"
+msgstr "Selecciona, movimenta e modifica objectos"
 
-#: ../src/wdgt-print-merge.c:173
-msgid "Collate"
-msgstr "Comparar"
+#: ../src/ui.c:282 ../src/view-text.c:102 ../data/ui/object-editor.ui.h:28
+#: ../data/ui/prefs-dialog.ui.h:17
+msgid "Text"
+msgstr "Texto"
 
-#: ../src/wdgt-media-select.c:288 ../src/wdgt-media-select.c:292
-#: ../src/wdgt-media-select.c:297 ../src/wdgt-media-select.c:306
-#: ../src/wdgt-media-select.c:309 ../src/wdgt-media-select.c:402
-#: ../src/wdgt-media-select.c:609 ../src/wdgt-media-select.c:618
-msgid "Any"
-msgstr "Qualquer"
+#: ../src/ui.c:289
+msgid "Box"
+msgstr "Caixa"
 
-#: ../src/wdgt-media-select.c:643
-#, c-format
-msgid "%d per sheet"
-msgstr "%d por página"
+#: ../src/ui.c:291
+msgid "Create box/rectangle object"
+msgstr "Criar caixa/rectângulo"
 
-#: ../src/wdgt-media-select.c:673
-#, c-format
-msgid "%s x %s %s"
-msgstr "%s x %s %s"
+#: ../src/ui.c:296 ../data/ui/object-editor.ui.h:17
+#: ../data/ui/prefs-dialog.ui.h:9
+msgid "Line"
+msgstr "Linha"
 
-#: ../src/wdgt-media-select.c:678
-#, c-format
-msgid "%.5g x %.5g %s"
-msgstr "%.5g x %.5g %s"
+#: ../src/ui.c:303
+msgid "Ellipse"
+msgstr "_Elipse"
 
-#: ../src/wdgt-media-select.c:689 ../src/wdgt-media-select.c:703
-#, c-format
-msgid "%s %s diameter"
-msgstr "%s %s diâmetro"
+#: ../src/ui.c:305
+msgid "Create ellipse/circle object"
+msgstr "Criar elipse/círculo"
 
-#: ../src/wdgt-media-select.c:693 ../src/wdgt-media-select.c:707
-#, c-format
-msgid "%.5g %s diameter"
-msgstr "%.5g %s diâmetro"
+#: ../src/ui.c:310 ../data/ui/object-editor.ui.h:14
+msgid "Image"
+msgstr "Imagem"
 
-#: ../src/wdgt-media-select.c:781
-msgid "No recent templates found."
-msgstr "Nenhum modelo recente encontrado."
+#: ../src/ui.c:317
+msgid "Barcode"
+msgstr "Código de barras"
 
-#: ../src/wdgt-media-select.c:782
-msgid "Try selecting a template from the \"Search all templates\" page."
-msgstr "Tente seleccionar um modelo da página \"Procure todos os modelos\"."
+#: ../src/ui.c:326
+msgid "Raise object to top"
+msgstr "Sobe objectos para o topo"
 
-#: ../src/wdgt-media-select.c:861
-msgid "No match."
-msgstr "Sem correspondência."
+#: ../src/ui.c:333
+msgid "Lower object to bottom"
+msgstr "Descer objecto para o fundo"
 
-#: ../src/wdgt-media-select.c:862
-msgid "Try selecting a different brand, page size or category."
-msgstr ""
-"Tente seleccionar uma marca, tamanho de pagina ou categorias diferentes."
+#: ../src/ui.c:340
+msgid "Rotate object 90 degrees counter-clockwise"
+msgstr "Girar objecto 90º sentido anti-horário"
 
-#. This is the default custom color
-#: ../src/mygal/color-palette.c:389
-msgid "custom"
-msgstr "Personalizar"
+#: ../src/ui.c:347
+msgid "Rotate object 90 degrees clockwise"
+msgstr "Girar objecto 90º sentido horário"
 
-#. "Custom" color - we'll pop up a GtkColorButton
-#: ../src/mygal/color-palette.c:431
-msgid "Custom Color:"
-msgstr "Personalizar cor"
+#: ../src/ui.c:354
+msgid "Flip object horizontally"
+msgstr "Inverter objecto horizontalmente"
 
-#: ../src/mygal/color-palette.c:439
-msgid "Choose Custom Color"
-msgstr "Escolher cor personalizada"
+#: ../src/ui.c:361
+msgid "Flip object vertically"
+msgstr "Inverter objecto verticalmente"
 
-#: ../src/mygal/color-palette.c:572
-msgid "black"
-msgstr "preto"
+#: ../src/ui.c:368
+msgid "Align objects to left edges"
+msgstr "Alinhar pela margem esquerda"
 
-#: ../src/mygal/color-palette.c:573
-msgid "light brown"
-msgstr "castanho claro"
+#: ../src/ui.c:375
+msgid "Align objects to right edges"
+msgstr "Alinhar pela margem direita"
 
-#: ../src/mygal/color-palette.c:574
-msgid "brown gold"
-msgstr "castanho dourado"
+#: ../src/ui.c:382
+msgid "Align objects to horizontal centers"
+msgstr "Alinhar objectos pelos centros horizontais"
 
-#: ../src/mygal/color-palette.c:575
-msgid "dark green #2"
-msgstr "verde escuro #2"
+#: ../src/ui.c:389
+msgid "Align objects to top edges"
+msgstr "Alinhar objectos pela margem superior"
 
-#: ../src/mygal/color-palette.c:576
-msgid "navy"
-msgstr "azul-marinho"
+#: ../src/ui.c:396
+msgid "Align objects to bottom edges"
+msgstr "Alinhar objectos pela margem inferior"
 
-#: ../src/mygal/color-palette.c:577 ../src/mygal/color-palette.c:633
-msgid "dark blue"
-msgstr "azul escuro"
+#: ../src/ui.c:403
+msgid "Align objects to vertical centers"
+msgstr "Alinhar objectos pelos centros verticais"
 
-#: ../src/mygal/color-palette.c:578
-msgid "purple #2"
-msgstr "violeta #2"
+#: ../src/ui.c:410
+msgid "Center objects to horizontal label center"
+msgstr "Centra objectos pelo centro horizontal da etiqueta"
 
-#: ../src/mygal/color-palette.c:579
-msgid "very dark gray"
-msgstr "cinzento muito escuro"
+#: ../src/ui.c:417
+msgid "Center objects to vertical label center"
+msgstr "Centra objectos pelo centro vertical da etiqueta"
 
-#: ../src/mygal/color-palette.c:582 ../src/mygal/color-palette.c:638
-msgid "dark red"
-msgstr "vermelho escuro"
+#: ../src/ui.c:424
+msgid "Edit merge properties"
+msgstr "Editar propriedades de fusão"
 
-#: ../src/mygal/color-palette.c:583
-msgid "red-orange"
-msgstr "vermelho-laranja"
+#: ../src/ui.c:431
+msgid "Contents"
+msgstr "Manual"
 
-#: ../src/mygal/color-palette.c:584
-msgid "gold"
-msgstr "dourado"
+#: ../src/ui.c:433
+msgid "Open glabels manual"
+msgstr "Abre o manual do gLabels"
 
-#: ../src/mygal/color-palette.c:585
-msgid "dark green"
-msgstr "verde escuro"
+#: ../src/ui.c:438
+msgid "About..."
+msgstr "Acerca..."
 
-#: ../src/mygal/color-palette.c:586 ../src/mygal/color-palette.c:639
-msgid "dull blue"
-msgstr "azul (dull)"
+#: ../src/ui.c:440
+msgid "About glabels"
+msgstr "Acerca do gLabels"
 
-#: ../src/mygal/color-palette.c:587 ../src/mygal/color-palette.c:640
-msgid "blue"
-msgstr "azul"
+#: ../src/ui.c:450
+msgid "Property toolbar"
+msgstr "Propriedades da barra de ferramentas"
 
-#: ../src/mygal/color-palette.c:588
-msgid "dull purple"
-msgstr "violeta (dull)"
+#: ../src/ui.c:452
+msgid "Change the visibility of the property toolbar in the current window"
+msgstr ""
+"Muda a visibilidade da barra de ferramentas de propriedades na janela actual"
 
-#: ../src/mygal/color-palette.c:589
-msgid "dark grey"
-msgstr "cizento escuro"
+#: ../src/ui.c:458
+msgid "Grid"
+msgstr "Grelha"
 
-#: ../src/mygal/color-palette.c:592
-msgid "red"
-msgstr "vermelho"
+#: ../src/ui.c:460
+msgid "Change the visibility of the grid in the current window"
+msgstr "Muda a visibilidade da grelha na janela actual"
 
-#: ../src/mygal/color-palette.c:593
-msgid "orange"
-msgstr "laranja"
+#: ../src/ui.c:466
+msgid "Markup"
+msgstr "Marcação"
 
-#: ../src/mygal/color-palette.c:594
-msgid "lime"
-msgstr "lima"
+#: ../src/ui.c:468
+msgid "Change the visibility of markup lines in the current window"
+msgstr "Muda a visibilidade das linhas de marcação na janela actual"
 
-#: ../src/mygal/color-palette.c:595
-msgid "dull green"
-msgstr "verde (dull)"
+#: ../src/ui.c:479
+msgid "Main toolbar"
+msgstr "Barra de ferramentas principal"
 
-#: ../src/mygal/color-palette.c:596
-msgid "dull blue #2"
-msgstr "azul (dull) #2"
+#: ../src/ui.c:481
+msgid "Change the visibility of the main toolbar in the current window"
+msgstr "Muda a visibilidade da barra de ferramentas principal na janela actual"
 
-#: ../src/mygal/color-palette.c:597
-msgid "sky blue #2"
-msgstr "azul celeste #2"
+#: ../src/ui.c:487
+msgid "Drawing toolbar"
+msgstr "Barra de ferramentas de desenho"
 
-#: ../src/mygal/color-palette.c:598 ../src/mygal/color-palette.c:637
-msgid "purple"
-msgstr "violeta"
+#: ../src/ui.c:489
+msgid "Change the visibility of the drawing toolbar in the current window"
+msgstr ""
+"Muda a visibilidade da barra de ferramentas de desenho na janela actual"
 
-#: ../src/mygal/color-palette.c:599
-msgid "gray"
-msgstr "cinzento"
+#: ../src/ui-commands.c:1135
+msgid "Glabels includes contributions from:"
+msgstr "gLabels inclui contribuições de:"
 
-#: ../src/mygal/color-palette.c:602 ../src/mygal/color-palette.c:634
-msgid "magenta"
-msgstr "magenta"
+#: ../src/ui-commands.c:1141
+msgid "See the file AUTHORS for additional credits,"
+msgstr "Veja o ficheiro AUTHORS para ver créditos adicionais,"
 
-#: ../src/mygal/color-palette.c:603
-msgid "bright orange"
-msgstr "laranja brilhante"
+#: ../src/ui-commands.c:1142
+#, fuzzy
+msgid "or visit http://glabels.org/"
+msgstr "ou visite http://gLabels.sourceforge.net/"
 
-#: ../src/mygal/color-palette.c:604 ../src/mygal/color-palette.c:635
-msgid "yellow"
-msgstr "amarelo"
+#: ../src/ui-commands.c:1154
+msgid "A label and business card creation program.\n"
+msgstr "Um programa de criação de etiquetas e cartões de visita.\n"
 
-#: ../src/mygal/color-palette.c:605
-msgid "green"
-msgstr "verde"
+#: ../src/ui-commands.c:1158
+msgid "translator-credits"
+msgstr "translator-credits"
 
-#: ../src/mygal/color-palette.c:606 ../src/mygal/color-palette.c:636
-msgid "cyan"
-msgstr "Ciano"
+#: ../src/ui-commands.c:1161
+#, fuzzy
+msgid ""
+"gLabels is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"gLabels is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"gLabels é software livre; você pode redistribuí-lo e/ou modificá-lo \n"
+"sob os termos da Licença Pública Geral GNU conforme publicada \n"
+"pela Free Software Foundation; ou a versão 2 da Licença, ou (sob \n"
+"sua opção) qualquer versão posterior.\n"
+"\n"
+"Este programa é distribuído na esperança de que seja útil, mas SEM \n"
+"QUALQUER GARANTIA; sem mesmo as garantias implícitas de \n"
+"COMERCIALIZAÇÃO ou AJUSTES A UM PROPÓSITO PARTICULAR. Veja \n"
+"a Licença Pública Geral GNU para mais detalhes.\n"
 
-#: ../src/mygal/color-palette.c:607
-msgid "bright blue"
-msgstr "azul brilhante"
+#: ../src/ui-commands.c:1190
+msgid "glabels"
+msgstr "gLabels"
 
-#: ../src/mygal/color-palette.c:608 ../src/mygal/color-palette.c:625
-msgid "red purple"
-msgstr "violeta-vermelho"
+#: ../src/warning-handler.c:69
+msgid "gLabels Error!"
+msgstr "Erro do gLabels"
 
-#: ../src/mygal/color-palette.c:609
-msgid "light grey"
-msgstr "cinzento claro"
+#: ../src/window.c:284
+msgid "(none) - gLabels"
+msgstr "(nenhum) - gLabels"
 
-#: ../src/mygal/color-palette.c:612 ../src/mygal/color-palette.c:629
-msgid "pink"
-msgstr "rosa"
+#: ../src/window.c:485
+msgid "(modified)"
+msgstr "(modificado)"
 
-#: ../src/mygal/color-palette.c:613
-msgid "light orange"
-msgstr "laranja claro"
+#: ../src/xml-label-04.c:75 ../src/xml-label.c:333
+#, c-format
+msgid "Bad root node = \"%s\""
+msgstr "Mau nó de raiz  = \"%s\""
 
-#: ../src/mygal/color-palette.c:614 ../src/mygal/color-palette.c:626
-msgid "light yellow"
-msgstr "amarelo claro"
+#: ../src/xml-label-04.c:123 ../src/xml-label.c:416
+#, c-format
+msgid "bad node =  \"%s\""
+msgstr "Mau nó = \"%s\""
 
-#: ../src/mygal/color-palette.c:615
-msgid "light green"
-msgstr "verde claro"
+#: ../src/xml-label.c:199 ../src/xml-label.c:237
+msgid "xmlParseFile error"
+msgstr "erro: xmlParseFile"
 
-#: ../src/mygal/color-palette.c:616
-msgid "light cyan"
-msgstr "ciano claro"
+#: ../src/xml-label.c:274
+msgid "No document root"
+msgstr "Sem documento raiz"
 
-#: ../src/mygal/color-palette.c:617 ../src/mygal/color-palette.c:627
-msgid "light blue"
-msgstr "azul claro"
+#: ../src/xml-label.c:282
+msgid "Importing from glabels 0.1 format"
+msgstr "Importando do formato do gLabels 0.1"
 
-#: ../src/mygal/color-palette.c:618 ../src/mygal/color-palette.c:631
-msgid "light purple"
-msgstr "violeta claro"
+#: ../src/xml-label.c:291
+msgid "Importing from glabels 0.4 format"
+msgstr "Importando do formato do gLabels 0.4"
 
-#: ../src/mygal/color-palette.c:619
-msgid "white"
-msgstr "branco"
+#: ../src/xml-label.c:301
+#, c-format
+msgid "Unknown glabels Namespace -- Using %s"
+msgstr "Espaço de nome gLabels desconhecido -- Usando %s"
 
-#: ../src/mygal/color-palette.c:624
-msgid "purplish blue"
-msgstr "azul-violeta"
+#: ../src/xml-label.c:370
+#, c-format
+msgid "bad node in Document node =  \"%s\""
+msgstr "Mau nó do documento = \"%s\""
 
-#: ../src/mygal/color-palette.c:628
-msgid "dark purple"
-msgstr "violeta escuro"
+#: ../src/xml-label.c:868
+#, c-format
+msgid "bad node in Data node =  \"%s\""
+msgstr "Mau nó de dados  = \"%s\""
 
-#: ../src/mygal/color-palette.c:630
-msgid "sky blue"
-msgstr "azul celeste"
+#: ../src/xml-label.c:944
+#, fuzzy, c-format
+msgid "Unknown embedded file format: \"%s\""
+msgstr "Tamanho de página identificador ou nome \"%s\" desconhecido"
 
-#: ../src/critical-error-handler.c:73
-msgid "gLabels Fatal Error!"
-msgstr "Erro fatal do gLabels"
+#: ../src/xml-label.c:1150 ../libglabels/xml-template.c:802
+msgid "Utf8 conversion error."
+msgstr "Erro de conversão UTF8"
 
-#: ../src/warning-handler.c:73
-msgid "gLabels Error!"
-msgstr "Erro do gLabels"
+#: ../src/xml-label.c:1157
+msgid "Problem saving xml file."
+msgstr "Problema a gravar um ficheiro xml."
 
 #. Create and append an "Other" entry.
-#: ../libglabels/db.c:118
+#. Translators: "Other" here means other page size.  Meaning a page size
+#. * other than the standard ones that libglabels knows about such as
+#. * "letter", "A4", etc.
+#: ../libglabels/db.c:270
 msgid "Other"
 msgstr "Outro"
 
 #. Create and append a "User defined" entry.
-#: ../libglabels/db.c:131
+#: ../libglabels/db.c:279
 msgid "User defined"
 msgstr "Utilizador definido"
 
-#: ../libglabels/db.c:482
+#: ../libglabels/db.c:665
 msgid ""
 "Unable to locate paper size definitions.  Libglabels may not be installed "
 "correctly!"
@@ -1473,7 +1891,7 @@ msgstr ""
 "Incapaz de localizar definições de tamanhos de papel. Libglabels pode não "
 "estar instalado correctamente!"
 
-#: ../libglabels/db.c:875
+#: ../libglabels/db.c:1057
 msgid ""
 "Unable to locate category definitions.  Libglabels may not be installed "
 "correctly!"
@@ -1481,7 +1899,7 @@ msgstr ""
 "Incapaz de localizar definições de categoria. Libglabels pode não estar "
 "instalado correctamente!"
 
-#: ../libglabels/db.c:1461
+#: ../libglabels/db.c:2097
 msgid ""
 "Unable to locate any template files.  Libglabels may not be installed "
 "correctly!"
@@ -1489,12 +1907,69 @@ msgstr ""
 "Incapaz de localizar modelos. Libglabels pode não estar instalado "
 "correctamente!"
 
-#: ../libglabels/db.c:1538
-#, c-format
-msgid "Generic %s full page template"
+#: ../libglabels/db.c:2164
+#, fuzzy, c-format
+msgid "%s full page label"
 msgstr "Modelo completo %s genérico"
 
-#: ../libglabels/xml-template.c:227
+#: ../libglabels/template.c:156
+#, c-format
+msgid "Equivalent part (\"%s\") for \"%s\", not previously defined."
+msgstr ""
+
+#.
+#. * Translators: 1st %d = number of labels across a page,
+#. *              2nd %d = number of labels down a page,
+#. *              3rd %d = total number of labels on a page (sheet).
+#.
+#: ../libglabels/template.c:727
+#, c-format
+msgid "%d × %d (%d per sheet)"
+msgstr ""
+
+#. Translators: %d is the total number of labels on a page (sheet).
+#: ../libglabels/template.c:732
+#, fuzzy, c-format
+msgid "%d per sheet"
+msgstr "%d por página"
+
+#: ../libglabels/template.c:802 ../libglabels/template.c:808
+#: ../libglabels/template.c:818 ../libglabels/template.c:824
+#, fuzzy
+msgid "diameter"
+msgstr "%s %s diâmetro"
+
+#. The ids are identical to the absolute length units supported in
+#. the CSS2 Specification (Section 4.3.2)
+#. This table must be sorted exactly as the enumerations in lglUnits
+#. [LGL_UNITS_POINT]
+#: ../libglabels/units.c:65 ../data/ui/object-editor.ui.h:39
+#: ../data/ui/prefs-dialog.ui.h:22
+msgid "points"
+msgstr "pontos"
+
+#. [LGL_UNITS_INCH]
+#: ../libglabels/units.c:66 ../data/ui/object-editor.ui.h:38
+#: ../data/ui/template-designer.ui.h:62
+msgid "inches"
+msgstr "polegadas"
+
+#. [LGL_UNITS_MM]
+#: ../libglabels/units.c:67
+msgid "mm"
+msgstr "mm"
+
+#. [LGL_UNITS_CM]
+#: ../libglabels/units.c:68
+msgid "cm"
+msgstr ""
+
+#. [LGL_UNITS_PICA]
+#: ../libglabels/units.c:69
+msgid "picas"
+msgstr ""
+
+#: ../libglabels/xml-template.c:223
 msgid "Missing name or brand/part attributes."
 msgstr "Falta atributos de nome ou marca/série"
 
@@ -1511,394 +1986,406 @@ msgstr ""
 msgid "Unknown page size id or name \"%s\""
 msgstr "Tamanho de página identificador ou nome \"%s\" desconhecido"
 
-#: ../libglabels/xml-template.c:627
+#: ../libglabels/xml-template.c:275
+msgid "Forward references not supported."
+msgstr ""
+
+#: ../libglabels/xml-template.c:747
 msgid ""
 "Missing required \"brand\" or \"part\" attribute, trying deprecated name."
 msgstr ""
 "Falta atributo \"marca\" ou \"série\" requerido, tentando nome obsoleto."
 
-#: ../libglabels/xml-template.c:637
+#: ../libglabels/xml-template.c:757
 msgid "Name attribute also missing."
 msgstr "Atributo nome também falta."
 
-#: ../data/glade/merge-properties-dialog.glade.h:1
-msgid "<b>Record selection/preview</b>"
-msgstr "<b>Selecção/previsão de registro</b>"
-
-#: ../data/glade/merge-properties-dialog.glade.h:2
-msgid "<b>Source</b>"
-msgstr "<b>Fonte</b>"
-
-#: ../data/glade/merge-properties-dialog.glade.h:3
+#.
+#. * Local Variables:       -- emacs
+#. * mode: C                -- emacs
+#. * c-basic-offset: 8      -- emacs
+#. * tab-width: 8           -- emacs
+#. * indent-tabs-mode: nil  -- emacs
+#. * End:                   -- emacs
+#.
+#: ../data/ui/merge-properties-dialog.ui.h:1
 msgid "Format:"
 msgstr "Formato:"
 
-#: ../data/glade/merge-properties-dialog.glade.h:4
+#: ../data/ui/merge-properties-dialog.ui.h:2
 msgid "Location:"
 msgstr "Localização:"
 
-#: ../data/glade/merge-properties-dialog.glade.h:5
+#: ../data/ui/merge-properties-dialog.ui.h:3
+#, fuzzy
+msgid "Record selection/preview"
+msgstr "<b>Selecção/previsão de registro</b>"
+
+#: ../data/ui/merge-properties-dialog.ui.h:4
 msgid "Select all"
 msgstr "Seleccionar Tudo"
 
-#: ../data/glade/merge-properties-dialog.glade.h:6
+#: ../data/ui/merge-properties-dialog.ui.h:5
+#, fuzzy
+msgid "Source"
+msgstr "<b>Fonte</b>"
+
+#: ../data/ui/merge-properties-dialog.ui.h:6
 msgid "Unselect all"
 msgstr "Desmarcar Tudo"
 
-#: ../data/glade/merge-properties-dialog.glade.h:7
-#: ../data/glade/object-editor.glade.h:39
-msgid "dialog1"
-msgstr "dialog1"
+#: ../data/ui/media-select.ui.h:1
+msgid "Brand:"
+msgstr "Série:"
 
-#: ../data/glade/new-label-dialog.glade.h:1
-msgid "<b>Label orientation</b>"
-msgstr "<b>Orientação da etiqueta</b>"
+#: ../data/ui/media-select.ui.h:2
+msgid "Category:"
+msgstr "Categoria:"
 
-#: ../data/glade/new-label-dialog.glade.h:2
-msgid "<b>Media type</b>"
-msgstr "<b>Tipo de media</b>"
+#: ../data/ui/media-select.ui.h:3
+#, fuzzy
+msgid "Custom"
+msgstr "Personalizar"
 
-#: ../data/glade/object-editor.glade.h:2
-#, no-c-format
-msgid "%"
-msgstr "%"
+#: ../data/ui/media-select.ui.h:4 ../data/ui/new-label-dialog.ui.h:6
+#: ../data/ui/template-designer.ui.h:42
+msgid "Page size:"
+msgstr "Tamanho da página:"
+
+#: ../data/ui/media-select.ui.h:5
+msgid "Recent"
+msgstr ""
+
+#: ../data/ui/media-select.ui.h:6
+#, fuzzy
+msgid "Search all"
+msgstr "Seleccionar Tudo"
+
+#: ../data/ui/new-label-dialog.ui.h:1
+msgid ""
+"Choose label or card product from hundreds of predefined templates or define "
+"your own."
+msgstr ""
+
+#: ../data/ui/new-label-dialog.ui.h:2 ../data/ui/template-designer.ui.h:27
+msgid "Description:"
+msgstr "Descrição:"
+
+#: ../data/ui/new-label-dialog.ui.h:3
+msgid "Label size:"
+msgstr "Tamanho da etiqueta:"
+
+#: ../data/ui/new-label-dialog.ui.h:4
+msgid "Layout:"
+msgstr "Disposição:"
+
+#: ../data/ui/new-label-dialog.ui.h:5
+#, fuzzy
+msgid "Normal"
+msgstr "Formato:"
+
+#: ../data/ui/new-label-dialog.ui.h:7 ../data/ui/template-designer.ui.h:43
+msgid "Part #:"
+msgstr "Série #:"
+
+#: ../data/ui/new-label-dialog.ui.h:8
+msgid "Please review and confirm your selection."
+msgstr ""
+
+#: ../data/ui/new-label-dialog.ui.h:9
+#, fuzzy
+msgid "Rotated"
+msgstr "Girar"
+
+#: ../data/ui/new-label-dialog.ui.h:10
+msgid "Select orientation of label content."
+msgstr ""
 
-#: ../data/glade/object-editor.glade.h:3
-msgid "00000000000 00000"
-msgstr "00000000000 00000"
+#: ../data/ui/new-label-dialog.ui.h:11
+msgid "Similar products:"
+msgstr ""
 
-#: ../data/glade/object-editor.glade.h:4
-msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
+#: ../data/ui/new-label-dialog.ui.h:12
+msgid "Vendor:"
 msgstr ""
-"<span weight=\"bold\" size=\"larger\">propriedades do objecto Xxx</span>"
 
-#: ../data/glade/object-editor.glade.h:5 ../data/glade/prefs-dialog.glade.h:7
+#: ../data/ui/object-editor.ui.h:2
+#, no-c-format
+msgid "%"
+msgstr "%"
+
+#: ../data/ui/object-editor.ui.h:3 ../data/ui/prefs-dialog.ui.h:2
 msgid "Alignment:"
 msgstr "Alinhamento:"
 
-#: ../data/glade/object-editor.glade.h:6
+#: ../data/ui/object-editor.ui.h:4
 msgid "Allow merge to automatically shrink text"
 msgstr "Permitir que fusão encolha o texto automaticamente"
 
-#: ../data/glade/object-editor.glade.h:7
+#: ../data/ui/object-editor.ui.h:5
 msgid "Angle:"
 msgstr "Ângulo:"
 
-#: ../data/glade/object-editor.glade.h:8
+#: ../data/ui/object-editor.ui.h:6
 msgid "Checksum"
 msgstr "Soma de verificação"
 
-#: ../data/glade/object-editor.glade.h:9 ../data/glade/prefs-dialog.glade.h:8
+#: ../data/ui/object-editor.ui.h:7 ../data/ui/prefs-dialog.ui.h:3
 msgid "Color:"
 msgstr "Cor:"
 
-#: ../data/glade/object-editor.glade.h:11
+#: ../data/ui/object-editor.ui.h:9
 msgid "Enable shadow"
 msgstr "Activar sombra"
 
-#: ../data/glade/object-editor.glade.h:12
+#: ../data/ui/object-editor.ui.h:10
 msgid "Family:"
 msgstr "Família:"
 
-#: ../data/glade/object-editor.glade.h:13
+#: ../data/ui/object-editor.ui.h:11
 msgid "File:"
 msgstr "Ficheiro:"
 
-#: ../data/glade/object-editor.glade.h:14
+#: ../data/ui/object-editor.ui.h:12 ../data/ui/prefs-dialog.ui.h:5
 msgid "Fill"
 msgstr "Preencher"
 
-#: ../data/glade/object-editor.glade.h:15
-#: ../data/glade/template-designer.glade.h:30
+#: ../data/ui/object-editor.ui.h:13 ../data/ui/template-designer.ui.h:30
 msgid "Height:"
 msgstr "Altura:"
 
-#: ../data/glade/object-editor.glade.h:17
-msgid "Insert merge field"
-msgstr "Inserir campo de fusão"
-
-#: ../data/glade/object-editor.glade.h:18
+#: ../data/ui/object-editor.ui.h:15
 msgid "Key:"
 msgstr "Chave:"
 
-#: ../data/glade/object-editor.glade.h:19
+#: ../data/ui/object-editor.ui.h:16
 msgid "Length:"
 msgstr "Comprimento:"
 
-#: ../data/glade/object-editor.glade.h:21
-#: ../data/glade/prefs-dialog.glade.h:12
+#: ../data/ui/object-editor.ui.h:18 ../data/ui/prefs-dialog.ui.h:10
 msgid "Line Spacing:"
 msgstr "Espaçamento de linhas:"
 
-#: ../data/glade/object-editor.glade.h:22
+#: ../data/ui/object-editor.ui.h:19
 msgid "Literal:"
 msgstr "Literal:"
 
-#: ../data/glade/object-editor.glade.h:23
+#: ../data/ui/object-editor.ui.h:20
 msgid "Opacity:"
 msgstr "Opacidade:"
 
-#: ../data/glade/object-editor.glade.h:24
+#: ../data/ui/object-editor.ui.h:21
 msgid "Position"
 msgstr "Posição"
 
-#: ../data/glade/object-editor.glade.h:25
+#: ../data/ui/object-editor.ui.h:22
 msgid "Reset image size"
 msgstr "Redefinir tamanho da imagem"
 
-#: ../data/glade/object-editor.glade.h:26
-msgid "Select A File"
-msgstr "Seleccionar um ficheiro"
-
-#: ../data/glade/object-editor.glade.h:27
+#: ../data/ui/object-editor.ui.h:23
 msgid "Shadow"
 msgstr "Sombra"
 
-#: ../data/glade/object-editor.glade.h:28
+#: ../data/ui/object-editor.ui.h:24
 msgid "Size"
 msgstr "Tamanho"
 
-#: ../data/glade/object-editor.glade.h:29
+#: ../data/ui/object-editor.ui.h:25
 msgid "Size:"
 msgstr "Tamanho:"
 
-#: ../data/glade/object-editor.glade.h:30
+#: ../data/ui/object-editor.ui.h:26
 msgid "Style"
 msgstr "Estilo:"
 
-#: ../data/glade/object-editor.glade.h:31
+#: ../data/ui/object-editor.ui.h:27
 msgid "Style:"
 msgstr "Estilo:"
 
-#: ../data/glade/object-editor.glade.h:33
-#: ../data/glade/prefs-dialog.glade.h:20
-#: ../data/glade/template-designer.glade.h:61
+#: ../data/ui/object-editor.ui.h:29 ../data/ui/prefs-dialog.ui.h:20
+#: ../data/ui/template-designer.ui.h:61
 msgid "Width:"
 msgstr "Largura:"
 
-#: ../data/glade/object-editor.glade.h:34
+#: ../data/ui/object-editor.ui.h:30
 msgid "X Offset:"
 msgstr "Deslocamento X:"
 
-#: ../data/glade/object-editor.glade.h:35
+#: ../data/ui/object-editor.ui.h:31
 msgid "X:"
 msgstr "X:"
 
-#: ../data/glade/object-editor.glade.h:36
+#: ../data/ui/object-editor.ui.h:32
 msgid "Y Offset:"
 msgstr "Deslocamento Y:"
 
-#: ../data/glade/object-editor.glade.h:37
+#: ../data/ui/object-editor.ui.h:33
 msgid "Y:"
 msgstr "Y:"
 
-#: ../data/glade/object-editor.glade.h:38
+#: ../data/ui/object-editor.ui.h:34
 msgid "degrees"
 msgstr "graus"
 
-#: ../data/glade/object-editor.glade.h:40
+#: ../data/ui/object-editor.ui.h:35
+msgid "dialog1"
+msgstr "dialog1"
+
+#: ../data/ui/object-editor.ui.h:36
 msgid "digits:"
 msgstr "dígitos:"
 
-#: ../data/glade/object-editor.glade.h:41
+#: ../data/ui/object-editor.ui.h:37
 msgid "format:"
 msgstr "Formato:"
 
-#: ../data/glade/prefs-dialog.glade.h:1
+#: ../data/ui/prefs-dialog.ui.h:1
 msgid "   "
 msgstr "..."
 
-#: ../data/glade/prefs-dialog.glade.h:2
-msgid "<span weight=\"bold\">Default page size</span>"
-msgstr "<span weight=\"bold\">Tamanho de página padrão</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:3
-msgid "<span weight=\"bold\">Fill</span>"
-msgstr "<span weight=\"bold\">Preencher</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:4
-msgid "<span weight=\"bold\">Line</span>"
-msgstr "<span weight=\"bold\">Linha</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:5
-msgid "<span weight=\"bold\">Text</span>"
-msgstr "<span weight=\"bold\">Texto</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:6
-msgid "<span weight=\"bold\">Units</span>"
-msgstr "<span weight=\"bold\">Unidades</span>"
+#: ../data/ui/prefs-dialog.ui.h:4
+#, fuzzy
+msgid "Default page size"
+msgstr "Redefinir tamanho da imagem"
 
-#: ../data/glade/prefs-dialog.glade.h:9
+#: ../data/ui/prefs-dialog.ui.h:6
 msgid "Font:"
 msgstr "Fonte:"
 
-#: ../data/glade/prefs-dialog.glade.h:10
+#: ../data/ui/prefs-dialog.ui.h:7
 msgid "ISO A4"
 msgstr "ISO A4"
 
-#: ../data/glade/prefs-dialog.glade.h:11
+#: ../data/ui/prefs-dialog.ui.h:8
 msgid "Inches"
 msgstr "Polegadas"
 
-#: ../data/glade/prefs-dialog.glade.h:13
+#: ../data/ui/prefs-dialog.ui.h:11
 msgid "Locale"
 msgstr "Local"
 
-#: ../data/glade/prefs-dialog.glade.h:14
+#: ../data/ui/prefs-dialog.ui.h:12
 msgid "Millimeters"
 msgstr "Milímetros"
 
-#: ../data/glade/prefs-dialog.glade.h:15
+#: ../data/ui/prefs-dialog.ui.h:13
 msgid "Object defaults"
 msgstr "Padrões do objecto"
 
-#: ../data/glade/prefs-dialog.glade.h:16
+#: ../data/ui/prefs-dialog.ui.h:14
 msgid "Points"
 msgstr "Pontos"
 
-#: ../data/glade/prefs-dialog.glade.h:17
+#: ../data/ui/prefs-dialog.ui.h:15
 msgid "Select default properties for new objects."
 msgstr "Seleccione as propriedades padrões para novos objectos."
 
-#: ../data/glade/prefs-dialog.glade.h:18
+#: ../data/ui/prefs-dialog.ui.h:16
 msgid "Select locale specific behavior."
 msgstr "Seleccione comportamento específico do local."
 
-#. Most popular (at top of list)
-#: ../data/glade/prefs-dialog.glade.h:19
-#: ../data/templates/paper-sizes.xml.h:29
+#: ../data/ui/prefs-dialog.ui.h:18 ../templates/paper-sizes.xml.h:35
 msgid "US Letter"
 msgstr "US Letter"
 
-#: ../data/glade/print-custom-widget.glade.h:1
-msgid "<b>Options</b>"
-msgstr "<b>Opções</b>"
-
-#: ../data/glade/print-custom-widget.glade.h:2
-msgid "<b>Print control (Merge)</b>"
-msgstr "<b>Controlo de Impressão (Fusão)</b>"
-
-#: ../data/glade/print-custom-widget.glade.h:3
-msgid "<b>Print control (Simple)</b>"
-msgstr "<b>Controlo de Impressão (Simples)</b>"
+#: ../data/ui/prefs-dialog.ui.h:19
+#, fuzzy
+msgid "Units"
+msgstr "Sem título"
 
-#: ../data/glade/property-bar.glade.h:1
+#: ../data/ui/property-bar.ui.h:1
 msgid "Bold"
 msgstr "Negrito"
 
-#: ../data/glade/property-bar.glade.h:2
+#: ../data/ui/property-bar.ui.h:2
 msgid "Center align"
 msgstr "Alinhar pelos centros"
 
-#: ../data/glade/property-bar.glade.h:4
-msgid "Font family"
-msgstr "Família de fontes"
-
-#: ../data/glade/property-bar.glade.h:5
-msgid "Font size"
-msgstr "Tamanho de fonte"
-
-#: ../data/glade/property-bar.glade.h:6
-msgid "Italic"
-msgstr "Itálico"
-
-#: ../data/glade/property-bar.glade.h:7
+#: ../data/ui/property-bar.ui.h:7
 msgid "Left align"
 msgstr "Alinhamento à esquerda"
 
-#: ../data/glade/property-bar.glade.h:9
-msgid "Line width"
-msgstr "Espessura da linha"
-
-#: ../data/glade/property-bar.glade.h:10
+#: ../data/ui/property-bar.ui.h:10
 msgid "Right align"
 msgstr "Alinhamento à direita"
 
-#: ../data/glade/property-bar.glade.h:11
-msgid "Text Color"
-msgstr "Cor do texto"
-
-#: ../data/glade/property-bar.glade.h:12
-msgid "Text color"
-msgstr "Cor do texto"
-
-#: ../data/glade/template-designer.glade.h:1
+#: ../data/ui/template-designer.ui.h:1
 msgid "(e.g., \"Mailing Labels,\" \"Business Cards,\" ...)"
 msgstr "(ex., \"Etiquetas de correio,\" \"Cartões de visita,\" ...)"
 
-#: ../data/glade/template-designer.glade.h:2
+#: ../data/ui/template-designer.ui.h:2
 msgid "(e.g., 8163A)"
 msgstr "(ex., 8163A)"
 
-#: ../data/glade/template-designer.glade.h:3
+#: ../data/ui/template-designer.ui.h:3
 msgid "(e.g., Avery, Acme, ...)"
 msgstr "(ex., Avery, Acme, ...)"
 
-#: ../data/glade/template-designer.glade.h:4
+#: ../data/ui/template-designer.ui.h:4
 msgid "1. Outer radius:"
 msgstr "1. Raio exterior:"
 
-#: ../data/glade/template-designer.glade.h:5
+#: ../data/ui/template-designer.ui.h:5
 msgid "1. Radius:"
 msgstr "1. Raio"
 
-#: ../data/glade/template-designer.glade.h:6
+#: ../data/ui/template-designer.ui.h:6
 msgid "1. Width:"
 msgstr "1. Largura:"
 
-#: ../data/glade/template-designer.glade.h:7
+#: ../data/ui/template-designer.ui.h:7
 msgid "2. Height:"
 msgstr "2. Altura:"
 
-#: ../data/glade/template-designer.glade.h:8
+#: ../data/ui/template-designer.ui.h:8
 msgid "2. Inner radius:"
 msgstr "2. Raio interior"
 
-#: ../data/glade/template-designer.glade.h:9
+#: ../data/ui/template-designer.ui.h:9
 msgid "2. Waste (overprint allowed):"
 msgstr "2. Desperdício (impressão sobreposta permitida)"
 
-#: ../data/glade/template-designer.glade.h:10
+#: ../data/ui/template-designer.ui.h:10
 msgid "3. Clipping width:"
 msgstr "3. Largura de corte:"
 
-#: ../data/glade/template-designer.glade.h:11
+#: ../data/ui/template-designer.ui.h:11
 msgid "3. Margin"
 msgstr "3. Margem"
 
-#: ../data/glade/template-designer.glade.h:12
+#: ../data/ui/template-designer.ui.h:12
 msgid "3. Round (radius of corner):"
 msgstr "3. Arredondar (raio do canto):"
 
-#: ../data/glade/template-designer.glade.h:13
+#: ../data/ui/template-designer.ui.h:13
 msgid "4. Clipping height:"
 msgstr "4. Altura de corte:"
 
-#: ../data/glade/template-designer.glade.h:14
+#: ../data/ui/template-designer.ui.h:14
 msgid "4. Horiz. waste (overprint allowed):"
 msgstr "4. Desperdício horizontal (impressão sobreposta permitida):"
 
-#: ../data/glade/template-designer.glade.h:15
+#: ../data/ui/template-designer.ui.h:15
 msgid "5. Vert. waste (overprint allowed):"
 msgstr "5. Desperdício vertical (impressão sobreposta permitida):"
 
-#: ../data/glade/template-designer.glade.h:16
+#: ../data/ui/template-designer.ui.h:16
 msgid "5. Waste (overprint allowed):"
 msgstr "5. Desperdício (impressão sobreposta permitida):"
 
-#: ../data/glade/template-designer.glade.h:17
+#: ../data/ui/template-designer.ui.h:17
 msgid "6. Margin"
 msgstr "6. Margem"
 
-#: ../data/glade/template-designer.glade.h:18
+#: ../data/ui/template-designer.ui.h:18
 msgid "Brand/Manufacturer:"
 msgstr "Marca/Fabricante:"
 
-#: ../data/glade/template-designer.glade.h:19
+#: ../data/ui/template-designer.ui.h:19
 msgid "CD/DVD (including credit card CDs)"
 msgstr "CD/DVD (incluindo Mini-CD)"
 
-#: ../data/glade/template-designer.glade.h:20
+#: ../data/ui/template-designer.ui.h:20
 msgid ""
 "Congratulations!\n"
 "\n"
@@ -1917,23 +2404,19 @@ msgstr ""
 "desenho\n"
 "ou \"Retroceder\" para continuar a editar."
 
-#: ../data/glade/template-designer.glade.h:27
-msgid "Description:"
-msgstr "Descrição:"
-
-#: ../data/glade/template-designer.glade.h:28
+#: ../data/ui/template-designer.ui.h:28
 msgid "Distance from left edge (x0):"
 msgstr "Distância da margem esquerda (x0):"
 
-#: ../data/glade/template-designer.glade.h:29
+#: ../data/ui/template-designer.ui.h:29
 msgid "Distance from top edge (y0):"
 msgstr "Distância da margem superior (y0):"
 
-#: ../data/glade/template-designer.glade.h:31
+#: ../data/ui/template-designer.ui.h:31
 msgid "Horizontal pitch (dx):"
 msgstr "Espaçamento horizontal (dx):"
 
-#: ../data/glade/template-designer.glade.h:32
+#: ../data/ui/template-designer.ui.h:32
 msgid ""
 "How many layouts will your template contain? \n"
 "\n"
@@ -1948,47 +2431,38 @@ msgstr ""
 "Muitos modelos só precisam de uma disposição, como no primeiro exemplo.\n"
 "O segundo exemplo ilustra quando duas disposições são necessárias."
 
-#: ../data/glade/template-designer.glade.h:37
+#: ../data/ui/template-designer.ui.h:37
 msgid "Layout #1"
 msgstr "Disposição #1"
 
-#: ../data/glade/template-designer.glade.h:38
+#: ../data/ui/template-designer.ui.h:38
 msgid "Layout #2"
 msgstr "Disposição #2"
 
-#: ../data/glade/template-designer.glade.h:39
+#: ../data/ui/template-designer.ui.h:39
 msgid "Number across (nx):"
 msgstr "Número de colunas (nx):"
 
-#: ../data/glade/template-designer.glade.h:40
+#: ../data/ui/template-designer.ui.h:40
 msgid "Number down (ny):"
 msgstr "Número de linhas (ny):"
 
-#: ../data/glade/template-designer.glade.h:41
+#: ../data/ui/template-designer.ui.h:41
 msgid "Number of layouts:"
 msgstr "Número de disposições:"
 
-#: ../data/glade/template-designer.glade.h:42
-#: ../data/glade/wdgt-media-select.glade.h:3
-msgid "Page size:"
-msgstr "Tamanho da página:"
-
-#: ../data/glade/template-designer.glade.h:43
-msgid "Part #:"
-msgstr "Série #:"
-
-#: ../data/glade/template-designer.glade.h:44
+#: ../data/ui/template-designer.ui.h:44
 msgid ""
 "Please enter the following identifying information about the template "
 "stationery."
 msgstr ""
 "Por favor introduza a seguinte informação identificativa acerca do modelo."
 
-#: ../data/glade/template-designer.glade.h:45
+#: ../data/ui/template-designer.ui.h:45
 msgid "Please enter the following layout information."
 msgstr "Por favor introduza a seguinte informação da disposição."
 
-#: ../data/glade/template-designer.glade.h:46
+#: ../data/ui/template-designer.ui.h:46
 msgid ""
 "Please enter the following size parameters of a single label in your "
 "template."
@@ -1996,7 +2470,7 @@ msgstr ""
 "Por favor introduza a seguinte informação dos parâmetros de tamanho de uma "
 "etiqueta simples no seu modelo"
 
-#: ../data/glade/template-designer.glade.h:47
+#: ../data/ui/template-designer.ui.h:47
 msgid ""
 "Please enter the following size parameters of a single label or card in your "
 "template."
@@ -2004,43 +2478,43 @@ msgstr ""
 "Por favor introduza a seguinte informação dos parâmetros de tamanho de uma "
 "etiqueta simples ou cartão no seu modelo"
 
-#: ../data/glade/template-designer.glade.h:48
+#: ../data/ui/template-designer.ui.h:48
 msgid "Please select the basic shape of the labels or cards."
 msgstr "Por favor seleccione a forma básica das suas etiquetas ou cartões."
 
-#: ../data/glade/template-designer.glade.h:49
+#: ../data/ui/template-designer.ui.h:49
 msgid "Please select the page size of the template stationery."
 msgstr "Por favor seleccione o tamanho da página do modelo"
 
-#: ../data/glade/template-designer.glade.h:50
+#: ../data/ui/template-designer.ui.h:50
 msgid "Print test sheet"
 msgstr "Imprimir folha de teste"
 
-#: ../data/glade/template-designer.glade.h:51
+#: ../data/ui/template-designer.ui.h:51
 msgid "Rectangular or square (can have rounded corners)"
 msgstr "Rectangular ou quadrado (pode ter cantos redondos)"
 
-#: ../data/glade/template-designer.glade.h:52
+#: ../data/ui/template-designer.ui.h:52
 msgid "Round"
 msgstr "Redondo"
 
-#: ../data/glade/template-designer.glade.h:53
+#: ../data/ui/template-designer.ui.h:53
 msgid ""
 "Templates needing\n"
 "two layouts."
 msgstr "Modelos que precisam de duas disposições."
 
-#: ../data/glade/template-designer.glade.h:55
+#: ../data/ui/template-designer.ui.h:55
 msgid ""
 "Templates needing only\n"
 "one layout."
 msgstr "Modelos que precisam apenas de uma disposição."
 
-#: ../data/glade/template-designer.glade.h:57
+#: ../data/ui/template-designer.ui.h:57
 msgid "Vertical pitch (dy):"
 msgstr "Espaçamento vertical (dy):"
 
-#: ../data/glade/template-designer.glade.h:58
+#: ../data/ui/template-designer.ui.h:58
 msgid ""
 "Welcome to the gLabels Template Designer.\n"
 "\n"
@@ -2050,390 +2524,432 @@ msgstr ""
 "\n"
 "Este diálogo o ajudará na criação de um modelo personalizado."
 
-#: ../data/glade/template-designer.glade.h:62
-msgid "cd_size_page"
-msgstr "cd_size_page"
-
-#: ../data/glade/template-designer.glade.h:63
-msgid "finish_page"
-msgstr "finish_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:1
+msgid "Collate"
+msgstr "Comparar"
 
-#: ../data/glade/template-designer.glade.h:65
-msgid "layout_page"
-msgstr "layout_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:2
+#, fuzzy
+msgid "Copies"
+msgstr "Cópias:"
 
-#: ../data/glade/template-designer.glade.h:66
-msgid "name_page"
-msgstr "name_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:3
+msgid "Copies:"
+msgstr "Cópias:"
 
-#: ../data/glade/template-designer.glade.h:67
-msgid "nlayouts_page"
-msgstr "nlayouts_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:5
+#, fuzzy
+msgid "Merge Control"
+msgstr "<b>Controlo de Impressão (Fusão)</b>"
 
-#: ../data/glade/template-designer.glade.h:68
-msgid "pg_size_page"
-msgstr "pg_size_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:6
+#, fuzzy
+msgid "Options"
+msgstr "<b>Opções</b>"
 
-#: ../data/glade/template-designer.glade.h:69
-msgid "rect_size_page"
-msgstr "rect_size_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:7
+msgid "Sheets:"
+msgstr "Páginas:"
 
-#: ../data/glade/template-designer.glade.h:70
-msgid "round_size_page"
-msgstr "round_size_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:8
+msgid "Start on label"
+msgstr "Iniciar na etiqueta"
 
-#: ../data/glade/template-designer.glade.h:71
-msgid "shape_page"
-msgstr "shape_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:9
+msgid "from:"
+msgstr "de:"
 
-#: ../data/glade/template-designer.glade.h:72
-msgid "start_page"
-msgstr "start_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:10
+msgid "on 1st sheet"
+msgstr "na primeira folha"
 
-#: ../data/glade/wdgt-media-select.glade.h:1
-msgid "Brand:"
-msgstr "Série:"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:14
+msgid "to:"
+msgstr "para:"
 
-#: ../data/glade/wdgt-media-select.glade.h:2
-msgid "Category:"
-msgstr "Categoria:"
+#: ../data/desktop/glabels-3.0.desktop.in.h:1
+msgid "Create labels, business cards and media covers"
+msgstr "Criar etiquetas, cartões de visita e capas de media"
 
-#: ../data/glade/wdgt-media-select.glade.h:4
-msgid "Recent templates"
-msgstr "Modelos recentes"
+#: ../data/desktop/glabels-3.0.desktop.in.h:2
+msgid "gLabels Label Designer 3"
+msgstr "Editor de Etiquetas gLabels 3"
 
-#: ../data/glade/wdgt-media-select.glade.h:5
-msgid "Search all templates"
-msgstr "Procura em todos os modelos"
+#: ../data/mime/glabels-3.0.xml.in.h:1
+msgid "gLabels Project File"
+msgstr "Propriedades de ficheiro gLabels"
 
-#: ../data/glade/wdgt-rotate-label.glade.h:1
-msgid "Rotate"
-msgstr "Girar"
+#. Envelopes
+#: ../templates/paper-sizes.xml.h:2
+msgid "#10 Envelope"
+msgstr ""
 
 #. Other ISO A series sizes
-#: ../data/templates/paper-sizes.xml.h:2
+#: ../templates/paper-sizes.xml.h:4
 msgid "A0"
 msgstr "A0"
 
-#: ../data/templates/paper-sizes.xml.h:3
+#: ../templates/paper-sizes.xml.h:5
 msgid "A1"
 msgstr "A1"
 
-#: ../data/templates/paper-sizes.xml.h:4
+#: ../templates/paper-sizes.xml.h:6
 msgid "A10"
 msgstr "A10"
 
-#: ../data/templates/paper-sizes.xml.h:5
+#: ../templates/paper-sizes.xml.h:7
 msgid "A2"
 msgstr "A2"
 
-#: ../data/templates/paper-sizes.xml.h:6
+#: ../templates/paper-sizes.xml.h:8
 msgid "A3"
 msgstr "A3"
 
-#: ../data/templates/paper-sizes.xml.h:7
+#. Most popular (at top of list)
+#: ../templates/paper-sizes.xml.h:10
 msgid "A4"
 msgstr "A4"
 
-#: ../data/templates/paper-sizes.xml.h:8
+#: ../templates/paper-sizes.xml.h:11
 msgid "A5"
 msgstr "A5"
 
-#: ../data/templates/paper-sizes.xml.h:9
+#: ../templates/paper-sizes.xml.h:12
 msgid "A6"
 msgstr "A6"
 
-#: ../data/templates/paper-sizes.xml.h:10
+#: ../templates/paper-sizes.xml.h:13
 msgid "A7"
 msgstr "A7"
 
-#: ../data/templates/paper-sizes.xml.h:11
+#: ../templates/paper-sizes.xml.h:14
 msgid "A8"
 msgstr "A8"
 
-#: ../data/templates/paper-sizes.xml.h:12
+#: ../templates/paper-sizes.xml.h:15
 msgid "A9"
 msgstr "A9"
 
 #. ISO B series sizes
-#: ../data/templates/paper-sizes.xml.h:14
+#: ../templates/paper-sizes.xml.h:17
 msgid "B0"
 msgstr "B0"
 
-#: ../data/templates/paper-sizes.xml.h:15
+#: ../templates/paper-sizes.xml.h:18
 msgid "B1"
 msgstr "B1"
 
-#: ../data/templates/paper-sizes.xml.h:16
+#: ../templates/paper-sizes.xml.h:19
 msgid "B10"
 msgstr "B10"
 
-#: ../data/templates/paper-sizes.xml.h:17
+#: ../templates/paper-sizes.xml.h:20
 msgid "B2"
 msgstr "B2"
 
-#: ../data/templates/paper-sizes.xml.h:18
+#: ../templates/paper-sizes.xml.h:21
 msgid "B3"
 msgstr "B3"
 
-#: ../data/templates/paper-sizes.xml.h:19
+#: ../templates/paper-sizes.xml.h:22
 msgid "B4"
 msgstr "B4"
 
-#: ../data/templates/paper-sizes.xml.h:20
+#: ../templates/paper-sizes.xml.h:23
 msgid "B5"
 msgstr "B5"
 
-#: ../data/templates/paper-sizes.xml.h:21
+#: ../templates/paper-sizes.xml.h:24
 msgid "B6"
 msgstr "B6"
 
-#: ../data/templates/paper-sizes.xml.h:22
+#: ../templates/paper-sizes.xml.h:25
 msgid "B7"
 msgstr "B7"
 
-#: ../data/templates/paper-sizes.xml.h:23
+#: ../templates/paper-sizes.xml.h:26
 msgid "B8"
 msgstr "B8"
 
-#: ../data/templates/paper-sizes.xml.h:24
+#: ../templates/paper-sizes.xml.h:27
 msgid "B9"
 msgstr "B9"
 
-#: ../data/templates/paper-sizes.xml.h:25
+#: ../templates/paper-sizes.xml.h:28
+msgid "C5"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:29
+msgid "C6"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:30
+msgid "DL"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:31
+msgid "Monarch Envelope"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:32
 msgid "US Executive"
 msgstr "US Executive"
 
 #. Other US paper sizes
-#: ../data/templates/paper-sizes.xml.h:27
+#: ../templates/paper-sizes.xml.h:34
 msgid "US Legal"
 msgstr "US Legal"
 
-#: ../data/templates/categories.xml.h:1
+#: ../templates/categories.xml.h:1
 msgid "Any card"
 msgstr "Qualquer cartão"
 
-#: ../data/templates/categories.xml.h:2
+#: ../templates/categories.xml.h:2
 msgid "Any label"
 msgstr "Qualquer etiqueta"
 
-#: ../data/templates/categories.xml.h:3
+#. ===================================================================
+#: ../templates/categories.xml.h:3 ../templates/pearl-iso-templates.xml.h:8
 msgid "Business cards"
 msgstr "Cartões de visita"
 
-#: ../data/templates/categories.xml.h:4
+#: ../templates/categories.xml.h:4
 msgid "CD/DVD or other media"
 msgstr "CD/DVD ou outros"
 
-#: ../data/templates/categories.xml.h:5
+#: ../templates/categories.xml.h:5
 msgid "Mailing/shipping products"
 msgstr "Produtos para correio/expedição"
 
-#: ../data/templates/categories.xml.h:6
+#: ../templates/categories.xml.h:6
 msgid "Rectangular labels"
 msgstr "Etiquetas rectangulares"
 
-#: ../data/templates/categories.xml.h:7
+#. ===================================================================
+#: ../templates/categories.xml.h:7 ../templates/pearl-iso-templates.xml.h:46
 msgid "Round labels"
 msgstr "Etiquetas arredondadas"
 
-#: ../data/templates/categories.xml.h:8
+#: ../templates/categories.xml.h:8
 msgid "Square labels"
-msgstr "Etiquetas quadradas"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:2
-#: ../data/templates/avery-us-templates.xml.h:2
-#: ../data/templates/dymo-other-templates.xml.h:4
-#: ../data/templates/misc-iso-templates.xml.h:2
-#: ../data/templates/zweckform-iso-templates.xml.h:2
-msgid "Address Labels"
-msgstr "Etiquetas de endereços"
+msgstr "Etiquetas quadradas"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:4
-msgid "Address labels"
+#. ********************************************************************
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:2
+#: ../templates/dymo-other-templates.xml.h:4
+#: ../templates/maco-us-templates.xml.h:2
+#: ../templates/misc-iso-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:1
+#: ../templates/zweckform-iso-templates.xml.h:2
+msgid "Address Labels"
 msgstr "Etiquetas de endereços"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:6
-msgid "Allround labels"
-msgstr "Etiquetas redondas"
-
 #. ============================================================
 #. ===================================================================
 #. ********************************************************************
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:8
-#: ../data/templates/avery-us-templates.xml.h:4
-#: ../data/templates/misc-iso-templates.xml.h:12
-#: ../data/templates/misc-us-templates.xml.h:4
-#: ../data/templates/zweckform-iso-templates.xml.h:6
+#: ../templates/avery-us-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:8
+#: ../templates/misc-us-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:6
 msgid "Business Cards"
 msgstr "Cartões de visita"
 
-#. ===============================================================
-#: ../data/templates/avery-iso-templates.xml.h:10
-msgid "CD Booklet"
-msgstr "Livro de CD"
-
-#. ===============================================================
-#: ../data/templates/avery-iso-templates.xml.h:12
-msgid "CD Inlet"
-msgstr "Folheto de CD "
-
+#. ===================================================================
 #. ===============================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:14
-#: ../data/templates/avery-us-templates.xml.h:6
-#: ../data/templates/misc-iso-templates.xml.h:16
-#: ../data/templates/misc-us-templates.xml.h:8
-#: ../data/templates/zweckform-iso-templates.xml.h:8
+#: ../templates/avery-us-templates.xml.h:6
+#: ../templates/avery-iso-templates.xml.h:14
+#: ../templates/misc-us-templates.xml.h:8
+#: ../templates/misc-iso-templates.xml.h:16
+#: ../templates/pearl-iso-templates.xml.h:20
+#: ../templates/worldlabel-us-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:8
 msgid "CD/DVD Labels"
 msgstr "Etiquetas de CD/DVD"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:16
-#: ../data/templates/avery-us-templates.xml.h:12
-msgid "Diskette Labels"
-msgstr "Etiquetas de disquete"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:18
-msgid "Diskette labels"
-msgstr "Etiquetas de disquete"
-
-#. ===============================================================
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:20
-#: ../data/templates/misc-iso-templates.xml.h:36
-#: ../data/templates/misc-us-templates.xml.h:20
-#: ../data/templates/zweckform-iso-templates.xml.h:16
-msgid "Mailing Labels"
-msgstr "Etiquetas de correio"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:22
-msgid "Mailing labels"
-msgstr "Etiquetas de correio"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:24
-msgid "Mini Address Labels"
-msgstr "Mini etiquetas de correio"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:26
-msgid "Mini Labels"
-msgstr "Mini etiquetas"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:28
-msgid "Shipping labels"
-msgstr "Etiquetas de expedição"
-
-#. ===================================================================
-#: ../data/templates/avery-other-templates.xml.h:2
-msgid "File Folder Labels"
-msgstr "Etiquetas para pastas de papéis"
-
-#. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:8
+#: ../templates/avery-us-templates.xml.h:8
 msgid "CD/DVD Labels (Disc Labels)"
 msgstr "Etiquetas de CD/DVD (Etiquetas de disco)"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:10
+#: ../templates/avery-us-templates.xml.h:10
 msgid "CD/DVD Labels (Spine Labels)"
 msgstr "Etiquetas de CD/DVD (Etiquetas de lombada)"
 
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:12
+#: ../templates/avery-iso-templates.xml.h:16
+#: ../templates/worldlabel-us-templates.xml.h:3
+msgid "Diskette Labels"
+msgstr "Etiquetas de disquete"
+
 #. the LSK labels can be torn in half down the center
-#: ../data/templates/avery-us-templates.xml.h:14
+#: ../templates/avery-us-templates.xml.h:14
 msgid "Divider Labels"
 msgstr "Etiquetas de divisão"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:16
+#: ../templates/avery-us-templates.xml.h:16
+#: ../templates/avery-other-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:4
+msgid "File Folder Labels"
+msgstr "Etiquetas para pastas de papéis"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:5
 msgid "Filing Labels"
 msgstr "Etiquetas de enchimento"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:18
+#: ../templates/avery-us-templates.xml.h:20
+#: ../templates/worldlabel-us-templates.xml.h:6
 msgid "Full Sheet Labels"
 msgstr "Etiquetas de folha inteira"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:20
+#: ../templates/avery-us-templates.xml.h:22
 msgid "ID Labels"
 msgstr "Etiquetas de identificação"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:22
+#: ../templates/avery-us-templates.xml.h:24
 msgid "Index Cards"
 msgstr "Cartões de índice"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:24
+#: ../templates/avery-us-templates.xml.h:26
 msgid "Large Round Labels"
 msgstr "Etiquetas grandes arredondadas"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:26
+#: ../templates/avery-us-templates.xml.h:28
 msgid "Name Badge Labels"
 msgstr "Etiquetas de crachá "
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:28
+#: ../templates/avery-us-templates.xml.h:30
 msgid "Post cards"
 msgstr "Postais"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:30
-#: ../data/templates/dymo-other-templates.xml.h:12
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:32
+#: ../templates/dymo-other-templates.xml.h:12
+#: ../templates/worldlabel-us-templates.xml.h:8
 msgid "Return Address Labels"
 msgstr "Etiquetas de endereço de retorno"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:32
-#: ../data/templates/misc-us-templates.xml.h:30
+#: ../templates/avery-us-templates.xml.h:34
+#: ../templates/maco-us-templates.xml.h:3
+#: ../templates/misc-us-templates.xml.h:30
+#: ../templates/worldlabel-us-templates.xml.h:9
 msgid "Round Labels"
 msgstr "Etiquetas arredondadas"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:34
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:36
+#: ../templates/uline-us-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:10
 msgid "Shipping Labels"
 msgstr "Etiquetas de expedição"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:36
+#: ../templates/avery-us-templates.xml.h:38
 msgid "Small Round Labels"
 msgstr "Etiquetas pequenas arredondadas"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:38
+#: ../templates/avery-us-templates.xml.h:40
 msgid "Square Labels"
 msgstr "Etiquetas quadradas"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:40
+#: ../templates/avery-us-templates.xml.h:42
 msgid "Tent Cards"
 msgstr "Cartões tenda"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:42
+#: ../templates/avery-us-templates.xml.h:44
+#: ../templates/worldlabel-us-templates.xml.h:11
 msgid "Video Tape Face Labels"
 msgstr "Etiquetas de cassete de vídeo (face)"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:44
+#: ../templates/avery-us-templates.xml.h:46
+#: ../templates/worldlabel-us-templates.xml.h:12
 msgid "Video Tape Spine Labels"
 msgstr "Etiquetas de cassete de vídeo (lombada)"
 
-#: ../data/templates/brother-other-templates.xml.h:1
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:4
+msgid "Address labels"
+msgstr "Etiquetas de endereços"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:6
+msgid "Allround labels"
+msgstr "Etiquetas redondas"
+
+#. ===============================================================
+#: ../templates/avery-iso-templates.xml.h:10
+msgid "CD Booklet"
+msgstr "Livro de CD"
+
+#. ===============================================================
+#: ../templates/avery-iso-templates.xml.h:12
+msgid "CD Inlet"
+msgstr "Folheto de CD "
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:18
+msgid "Diskette labels"
+msgstr "Etiquetas de disquete"
+
+#. ===============================================================
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:20
+#: ../templates/misc-us-templates.xml.h:20
+#: ../templates/misc-iso-templates.xml.h:36
+#: ../templates/zweckform-iso-templates.xml.h:16
+msgid "Mailing Labels"
+msgstr "Etiquetas de correio"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:22
+msgid "Mailing labels"
+msgstr "Etiquetas de correio"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:24
+msgid "Mini Address Labels"
+msgstr "Mini etiquetas de correio"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:26
+msgid "Mini Labels"
+msgstr "Mini etiquetas"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:28
+msgid "Shipping labels"
+msgstr "Etiquetas de expedição"
+
+#: ../templates/brother-other-templates.xml.h:1
 msgid "Multi Purpose Labels 17mm x 54mm"
 msgstr "Etiquetas genéricas 17mm x 54mm"
 
-#: ../data/templates/brother-other-templates.xml.h:2
+#: ../templates/brother-other-templates.xml.h:2
 msgid "Shipping Labels 62mm x 100mm"
 msgstr "Etiquetas de expedição 62mm x 100mm"
 
@@ -2454,288 +2970,416 @@ msgstr "Etiquetas de expedição 62mm x 100mm"
 #. *********************************************************************
 #. *********************************************************************
 #.
-#: ../data/templates/brother-other-templates.xml.h:20
+#: ../templates/brother-other-templates.xml.h:20
 msgid "Standard Address Labels 29mm x 90mm"
 msgstr "Etiquetas padrão de endereços 29mm x 90mm"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:2
+#: ../templates/dymo-other-templates.xml.h:2
 msgid "3.5in Diskette"
 msgstr "Disquete 3,5 polegadas"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:6
+#: ../templates/dymo-other-templates.xml.h:6
 msgid "File Folder"
 msgstr "Pasta de ficheiros"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:8
+#: ../templates/dymo-other-templates.xml.h:8
 msgid "Hanging Folder"
 msgstr "Pasta"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:10
+#: ../templates/dymo-other-templates.xml.h:10
 msgid "Large Address Labels"
 msgstr "Etiquetas grandes de endereços"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:14
+#: ../templates/dymo-other-templates.xml.h:14
 msgid "Shipping Address Labels"
 msgstr "Etiquetas de endereços de expedição"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:4
-#: ../data/templates/zweckform-iso-templates.xml.h:4
+#: ../templates/misc-us-templates.xml.h:2
+msgid "Business Card CD"
+msgstr "Mini CD"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:6
+msgid "CD Template Rectangles"
+msgstr "Modelo de rectângulos de CD"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:10
+msgid "CD/DVD Labels (Face Only)"
+msgstr "Etiquetas CD/DVD (apenas face)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:12
+#: ../templates/misc-iso-templates.xml.h:18
+msgid "CD/DVD Labels (face only)"
+msgstr "Etiquetas de CD/DVD (apenas face)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:14
+msgid "Cassette Labels"
+msgstr "Etiquetas de cassete"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:16
+msgid "DLT Labels"
+msgstr "Etiquetas DLT"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:18
+#, fuzzy
+msgid "Jewel Case Booklet"
+msgstr "Livro de CD"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:22
+msgid "Microtube labels"
+msgstr "Etiquetas Microtube"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:24
+msgid "Mini-CD Labels"
+msgstr "Etiquetas Mini-CD"
+
+#: ../templates/misc-us-templates.xml.h:25
+msgid "PRO CD Labels 2-up (CD spine only)"
+msgstr "Etiquetas PRO CD 2-up (lomba do CD apenas)"
+
+#: ../templates/misc-us-templates.xml.h:26
+msgid "PRO CD Labels 2-up (Face only)"
+msgstr "Etiquetas PRO CD 2-up (face apenas)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:42
+msgid "PRO CD Labels 2-up (face only)"
+msgstr "Etiquetas PRO CD 2-up (apenas face)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:32
+msgid "Slimline CD Case (rightside up)"
+msgstr "Caixa Slimline CD (lado direito para cima)"
+
+#: ../templates/misc-us-templates.xml.h:33
+msgid "Slimline CD Case (upside down)"
+msgstr "Caixa Slimline CD (invertido)"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:4
+#: ../templates/zweckform-iso-templates.xml.h:4
 msgid "Allround Labels"
-msgstr "Etiquetas redondas"
+msgstr "Etiquetas Redondas"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:6
+#: ../templates/misc-iso-templates.xml.h:6
 msgid "Arch File Labels"
-msgstr "Etiquetas de dossier"
+msgstr "Etiquetas de Dossier"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:8
+#: ../templates/misc-iso-templates.xml.h:8
 msgid "Arch File Labels (large)"
-msgstr "Etiquetas de dossier (grande)"
+msgstr "Etiquetas de Dossier (grande)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:10
+#: ../templates/misc-iso-templates.xml.h:10
 msgid "Arch File Labels (small)"
-msgstr "Etiquetas de dossier (pequeno)"
+msgstr "Etiquetas de Dossier (pequeno)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:14
+#: ../templates/misc-iso-templates.xml.h:14
 msgid "CD Labels"
 msgstr "Etiquetas de CD"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:18
-#: ../data/templates/misc-us-templates.xml.h:12
-msgid "CD/DVD Labels (face only)"
-msgstr "Etiquetas de CD/DVD (apenas face)"
-
-#. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:20
+#: ../templates/misc-iso-templates.xml.h:20
 msgid "CD/DVD Labels Standard Format (face only)"
-msgstr "Etiquetas de CD/DVD - formato padrão (apenas face)"
+msgstr "Etiquetas de CD/DVD - Formato Padrão (apenas face)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:22
+#: ../templates/misc-iso-templates.xml.h:22
 msgid "Diskette Labels (face only)"
-msgstr "Etiquetas de disquete (apenas face)"
+msgstr "Etiquetas de Disquete (apenas face)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:24
+#: ../templates/misc-iso-templates.xml.h:24
 msgid "EPSON Photo Stickers 16"
 msgstr "Autocolantes EPSON Photo Stickers 16"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:26
+#: ../templates/misc-iso-templates.xml.h:26
 msgid "Etiketten"
 msgstr "Etiquetas"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:28
 msgid "Fridge Magnet Stickers"
-msgstr "Autocolantes de Ã­man de frigorífico"
+msgstr "Autocolantes de Ã\8dman de Frigorífico"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:30
+#: ../templates/misc-iso-templates.xml.h:30
 msgid "General Labels"
-msgstr "Etiquetas genéricas"
+msgstr "Etiquetas Genéricas"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:32
+#: ../templates/misc-iso-templates.xml.h:32
 msgid "Inkjet/Laser Labels 70x37mm"
 msgstr "Etiquetas Inkjet/Laser 70x37mm"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:38
+#: ../templates/misc-iso-templates.xml.h:38
 msgid "Mailing Labels-2 columns"
 msgstr "Etiquetas de correio de 2 colunas"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:40
+#: ../templates/misc-iso-templates.xml.h:40
 msgid "Mailing Labels-3 columns"
 msgstr "Etiquetas de correio de 3 colunas"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:42
-#: ../data/templates/misc-us-templates.xml.h:28
-msgid "PRO CD Labels 2-up (face only)"
-msgstr "Etiquetas PRO CD 2-up (apenas face)"
-
-#. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:44
-#: ../data/templates/zweckform-iso-templates.xml.h:24
+#: ../templates/misc-iso-templates.xml.h:44
+#: ../templates/zweckform-iso-templates.xml.h:24
 msgid "Rectangular Labels"
-msgstr "Etiquetas rectangulares"
+msgstr "Etiquetas Rectangulares"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:46
+#: ../templates/misc-iso-templates.xml.h:46
 msgid "Universal Labels"
 msgstr "Etiquetas Universais"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:48
+#: ../templates/misc-iso-templates.xml.h:48
 msgid "Video Labels (face only)"
-msgstr "Etiquetas de vídeo (apenas face)"
+msgstr "Etiquetas de Vídeo (apenas face)"
 
 #. ===================================================================
-#: ../data/templates/misc-other-templates.xml.h:2
+#: ../templates/misc-other-templates.xml.h:2
 msgid "Multi-Purpose Labels"
-msgstr "Etiquetas genéricas"
+msgstr "Etiquetas Genéricas"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:2
-msgid "Business Card CD"
-msgstr "Mini CD"
+#: ../templates/pearl-iso-templates.xml.h:4
+#, fuzzy
+msgid "Address Labels (STAMPIT)"
+msgstr "Etiquetas de endereços"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:6
-msgid "CD Template Rectangles"
-msgstr "Modelo de rectângulos de CD"
+#: ../templates/pearl-iso-templates.xml.h:6
+#, fuzzy
+msgid "Bottle labels"
+msgstr "Etiquetas de disquete"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:10
-msgid "CD/DVD Labels (Face Only)"
-msgstr "Etiquetas CD/DVD (apenas face)"
+#: ../templates/pearl-iso-templates.xml.h:10
+msgid "Business cards glossy, both sides printable"
+msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:14
-msgid "Cassette Labels"
-msgstr "Etiquetas de cassete"
+#: ../templates/pearl-iso-templates.xml.h:12
+#, fuzzy
+msgid "Business cards high glossy"
+msgstr "Cartões de visita"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:16
-msgid "DLT Labels"
-msgstr "Etiquetas DLT"
+#: ../templates/pearl-iso-templates.xml.h:14
+#, fuzzy
+msgid "Business cards punched"
+msgstr "Cartões de visita"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:18
-msgid "Jewel Case Booklet"
-msgstr "Livro de CD"
+#: ../templates/pearl-iso-templates.xml.h:16
+#, fuzzy
+msgid "Business cards punched dull"
+msgstr "Cartões de visita"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:22
-msgid "Microtube labels"
-msgstr "Etiquetas Microtube"
+#: ../templates/pearl-iso-templates.xml.h:18
+#, fuzzy
+msgid "Business cards punched glossy"
+msgstr "Cartões de visita"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:24
-msgid "Mini-CD Labels"
-msgstr "Etiquetas Mini-CD"
+#: ../templates/pearl-iso-templates.xml.h:22
+#, fuzzy
+msgid "Floppy disk labels"
+msgstr "Etiquetas redondas"
 
-#: ../data/templates/misc-us-templates.xml.h:25
-msgid "PRO CD Labels 2-up (CD spine only)"
-msgstr "Etiquetas PRO CD 2-up (lomba do CD apenas)"
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:24
+#, fuzzy
+msgid "Foldable business cards"
+msgstr "Cartões de visita"
 
-#: ../data/templates/misc-us-templates.xml.h:26
-msgid "PRO CD Labels 2-up (Face only)"
-msgstr "Etiquetas PRO CD 2-up (face apenas)"
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:26
+msgid "Foldable business cards glossy/dull"
+msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:32
-msgid "Slimline CD Case (rightside up)"
-msgstr "Caixa Slimline CD (lado direito para cima)"
+#: ../templates/pearl-iso-templates.xml.h:28
+#, fuzzy
+msgid "Labels A4"
+msgstr "Etiquetas"
 
-#: ../data/templates/misc-us-templates.xml.h:33
-msgid "Slimline CD Case (upside down)"
-msgstr "Caixa Slimline CD (invertido)"
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:30
+#, fuzzy
+msgid "Labels A5"
+msgstr "Etiquetas"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:32
+#, fuzzy
+msgid "Labels A6"
+msgstr "Etiquetas"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:34
+msgid "Membership cards"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:36
+msgid "Membership cards, both sides printable"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:38
+#, fuzzy
+msgid "Name plates"
+msgstr "name_page"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:40
+msgid "Passport photo labels glossy"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:42
+#, fuzzy
+msgid "Photo labels"
+msgstr "Acerca do gLabels"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:44
+msgid "Photo labels semiglossy"
+msgstr ""
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:10
+#: ../templates/pearl-iso-templates.xml.h:48
+#, fuzzy
+msgid "SD card labels"
+msgstr "Etiquetas quadradas"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:50
+msgid "Self-adhesive film transparent"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:52
+msgid "Self-adhesive film weatherproof"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:54
+#, fuzzy
+msgid "Self-adhesive labels"
+msgstr "Etiquetas quadradas"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:56
+msgid "Self-adhesive window film"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:10
 msgid "Correction and Cover-up Labels"
-msgstr "Etiquetas de correcção e cobrir"
+msgstr "Etiquetas de Correcção e Cobrir"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:12
 msgid "File Back Labels"
-msgstr "Etiquetas de ficheiro"
+msgstr "Etiquetas de Ficheiro"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:14
+#: ../templates/zweckform-iso-templates.xml.h:14
 msgid "Lever Arch File Labels"
-msgstr "Etiquetas de dossier"
+msgstr "Etiquetas de Dossier"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:18
+#: ../templates/zweckform-iso-templates.xml.h:18
 msgid "Multi-purpose Stick+Lift Labels"
-msgstr "Etiquetas genéricas Stick+Lift"
+msgstr "Etiquetas Genéricas Stick+Lift"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:20
+#: ../templates/zweckform-iso-templates.xml.h:20
 msgid "QSL-Karten Etiketten 70mm x 50,8mm"
 msgstr "Etiquetas QSL-Karten 70mm x 50,8mm"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:22
+#: ../templates/zweckform-iso-templates.xml.h:22
 msgid "Rectangular Copier Labels"
-msgstr "Etiquetas de cópia rectangulares"
+msgstr "Etiquetas de Cópia Rectangulares"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:26
+#: ../templates/zweckform-iso-templates.xml.h:26
 msgid "Video Labels (back)"
-msgstr "Etiquetas de vídeo (traseira)"
+msgstr "Etiquetas de Vídeo (traseira)"
 
-#: ../data/desktop/glabels.desktop.in.h:1
-msgid "Create labels, business cards and media covers"
-msgstr "Criar etiquetas, cartões de visita e capas de media"
+#~ msgid "00000000000 00000"
+#~ msgstr "00000000000 00000"
 
-#: ../data/desktop/glabels.desktop.in.h:2
-msgid "gLabels Label Designer"
-msgstr "Editor de etiquetas gLabels"
+#~ msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
+#~ msgstr ""
+#~ "<span weight=\"bold\" size=\"larger\">propriedades do objecto Xxx</span>"
 
-#: ../data/mime/glabels.keys.in.h:1 ../data/mime/glabels.xml.in.h:1
-msgid "gLabels Project File"
-msgstr "Propriedades de ficheiro gLabels"
+#~ msgid "<span weight=\"bold\">Default page size</span>"
+#~ msgstr "<span weight=\"bold\">Tamanho de página padrão</span>"
 
-#: ../barcode-0.98/compat/getopt.c:583
-#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: opção `%s' é ambígua\n"
+#~ msgid "<span weight=\"bold\">Fill</span>"
+#~ msgstr "<span weight=\"bold\">Preencher</span>"
 
-#: ../barcode-0.98/compat/getopt.c:607
-#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: opção `--%s' não permite argumento\n"
+#~ msgid "<span weight=\"bold\">Line</span>"
+#~ msgstr "<span weight=\"bold\">Linha</span>"
 
-#: ../barcode-0.98/compat/getopt.c:612
-#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: opção `%c%s' não permite argumento\n"
+#~ msgid "<span weight=\"bold\">Text</span>"
+#~ msgstr "<span weight=\"bold\">Texto</span>"
 
-#: ../barcode-0.98/compat/getopt.c:629
-#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s: opção `%s' requer um argumento\n"
+#~ msgid "<span weight=\"bold\">Units</span>"
+#~ msgstr "<span weight=\"bold\">Unidades</span>"
 
-#. --option
-#: ../barcode-0.98/compat/getopt.c:658
-#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: opção não reconhecida `--%s'\n"
+#~ msgid "cd_size_page"
+#~ msgstr "cd_size_page"
 
-#. +option or -option
-#: ../barcode-0.98/compat/getopt.c:662
-#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: opção não reconhecida `%c%s'\n"
+#~ msgid "finish_page"
+#~ msgstr "finish_page"
 
-#. 1003.2 specifies the format of this message.
-#: ../barcode-0.98/compat/getopt.c:688
-#, c-format
-msgid "%s: illegal option -- %c\n"
-msgstr "%s: opção ilegal -- %c\n"
+#~ msgid "layout_page"
+#~ msgstr "layout_page"
 
-#: ../barcode-0.98/compat/getopt.c:691
-#, c-format
-msgid "%s: invalid option -- %c\n"
-msgstr "%s: opção inválida -- %c\n"
+#~ msgid "nlayouts_page"
+#~ msgstr "nlayouts_page"
 
-#: ../barcode-0.98/compat/getopt.c:727
-#, c-format
-msgid "%s: option requires an argument -- %c\n"
-msgstr "%s: opção requer um argumento -- %c\n"
+#~ msgid "pg_size_page"
+#~ msgstr "pg_size_page"
+
+#~ msgid "rect_size_page"
+#~ msgstr "rect_size_page"
+
+#~ msgid "round_size_page"
+#~ msgstr "round_size_page"
+
+#~ msgid "shape_page"
+#~ msgstr "shape_page"
+
+#~ msgid "start_page"
+#~ msgstr "start_page"
 
+#, fuzzy
+#~ msgid "<b>Copies</b>"
+#~ msgstr "<b>Opções</b>"
index 11eedeca94276b5f4a83cf7311d4e5c8bc3b063d..753ad38a2397163df9d659b295db62ab41b3106a 100644 (file)
 # Brazilian Portuguese translation of Glabels.
 # Copyright (C) 2001 Jim Evins <evins@snaught.com>
 # Paulo R. Ormenese <pormenese@uol.com.br>, 2001.
-#
+# Michel Recondo <michel@recondo.com.br>, 2010.
+# Henrique P. Machado <hpmachado@gnome.org>, 2010.
+# Antonio Fernandes C. Neto <fernandes@pelivre.org>, 2010.
 msgid ""
 msgstr ""
 "Project-Id-Version: glabels 1.91.0\n"
-"POT-Creation-Date: 2004-08-08 00:43-0400\n"
-"PO-Revision-Date: 2003-01-03 23:15-0300\n"
-"Last-Translator: Paulo R. Ormenese <pormenese@uol.com.br>\n"
-"Language-Team: Brazilian portuguese <>\n"
+"Report-Msgid-Bugs-To: http://sourceforge.net/tracker/?group_id=46122&ati\n"
+"POT-Creation-Date: 2010-09-06 00:43+0000\n"
+"PO-Revision-Date: 2010-08-30 11:10-0300\n"
+"Last-Translator: Antonio Fernandes C. Neto <fernandes@pelivre.org>\n"
+"Language-Team: Brazilian portuguese <gnome-pt_br-list@gnome.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Portuguese\n"
+"X-Poedit-Country: Brazil\n"
 
-#: src/glabels.c:55
-msgid "Show view debugging messages."
-msgstr "Exibe mensagens de depuração de visualização."
+#: ../src/bc-backends.c:81
+msgid "Built-in"
+msgstr ""
 
-#: src/glabels.c:58
-msgid "Show item debugging messages."
-msgstr "Exibe mensagens de depuração de item."
+#: ../src/bc-backends.c:101
+msgid "POSTNET (any)"
+msgstr "POSTNET (qualquer)"
 
-#: src/glabels.c:61
-msgid "Show printing debugging messages."
-msgstr "Exibe mensagens de depuração de impressão."
+#: ../src/bc-backends.c:104
+msgid "POSTNET-5 (ZIP only)"
+msgstr "POSTNET-5 (somente ZIP)"
 
-#: src/glabels.c:64
-msgid "Show prefs debugging messages."
-msgstr "Exibe mensagens de depuração de preferências."
+#: ../src/bc-backends.c:107
+msgid "POSTNET-9 (ZIP+4)"
+msgstr "POSTNET-9 (ZIP+4)"
 
-#: src/glabels.c:67
-msgid "Show file debugging messages."
-msgstr "Exibe mensagens de depuração de arquivo."
+#: ../src/bc-backends.c:110
+msgid "POSTNET-11 (DPBC)"
+msgstr "POSTNET-11 (DPBC)"
 
-#: src/glabels.c:70
-msgid "Show document debugging messages."
-msgstr "Exibe mensagens de depuração de documeto."
+#: ../src/bc-backends.c:113
+msgid "CEPNET"
+msgstr "CEPNET"
 
-#: src/glabels.c:73
-msgid "Show template debugging messages."
-msgstr "Exibe mensagens de depuração de modelo."
+#: ../src/bc-backends.c:118
+msgid "EAN (any)"
+msgstr "EAN (qualquer)"
 
-#: src/glabels.c:76
-#, fuzzy
-msgid "Show paper debugging messages."
-msgstr "Exibe mensagens de depuração de preferências."
+#: ../src/bc-backends.c:121
+msgid "EAN-8"
+msgstr "EAN-8"
 
-#: src/glabels.c:79
-msgid "Show xml debugging messages."
-msgstr "Exibe mensagens de depuração de xml."
+#: ../src/bc-backends.c:124
+msgid "EAN-8 +2"
+msgstr "EAN-8 +2"
 
-#: src/glabels.c:82
-msgid "Show document merge debugging messages."
-msgstr "Exibe mensagens de depuração de fusão de documento."
+#: ../src/bc-backends.c:127
+msgid "EAN-8 +5"
+msgstr "EAN-8 +5"
 
-#: src/glabels.c:85
-msgid "Show commands debugging messages."
-msgstr "Exibe mensagens de depuração de comandos."
+#: ../src/bc-backends.c:130
+msgid "EAN-13"
+msgstr "EAN-13"
 
-#: src/glabels.c:88
-msgid "Show undo debugging messages."
-msgstr "Exibe mensagens de depuração de desfazer."
+#: ../src/bc-backends.c:133
+msgid "EAN-13 +2"
+msgstr "EAN-13 +2"
 
-#: src/glabels.c:91
-msgid "Show recent debugging messages."
-msgstr "Exibe mensagens de depuração de recentes"
+#: ../src/bc-backends.c:136
+msgid "EAN-13 +5"
+msgstr "EAN-13 +5"
 
-#: src/glabels.c:94
-msgid "Show window debugging messages."
-msgstr "Exibe mensagens de depuração de janela."
+#: ../src/bc-backends.c:139
+msgid "UPC (UPC-A or UPC-E)"
+msgstr "UPC (UPC-A ou UPC-E)"
 
-#: src/glabels.c:97
-msgid "Show ui debugging messages."
-msgstr "Exibe mensagens de depuração de ui."
+#: ../src/bc-backends.c:142 ../src/bc-backends.c:386
+msgid "UPC-A"
+msgstr "UPC-A"
 
-#: src/glabels.c:100
-#, fuzzy
-msgid "Show property_bar debugging messages."
-msgstr "Exibe mensagens de depuração de preferências."
+#: ../src/bc-backends.c:145
+msgid "UPC-A +2"
+msgstr "UPC-A +2"
 
-#: src/glabels.c:103
-msgid "Show media select widget debugging messages."
-msgstr "Exibe mensagens de depuração de widget de seleção de mídia."
+#: ../src/bc-backends.c:148
+msgid "UPC-A +5"
+msgstr "UPC-A +5"
 
-#: src/glabels.c:106
-msgid "Show mini preview widget debugging messages."
-msgstr "Exibe mensagens de depuração de widget de mini previsão."
+#: ../src/bc-backends.c:151 ../src/bc-backends.c:389
+msgid "UPC-E"
+msgstr "UPC-E"
 
-#: src/glabels.c:109
-#, fuzzy
-msgid "Show pixbuf cache debugging messages."
-msgstr "Exibe mensagens de depuração de visualização."
+#: ../src/bc-backends.c:154
+msgid "UPC-E +2"
+msgstr "UPC-E +2"
 
-#: src/glabels.c:112
-msgid "Show widget debugging messages."
-msgstr "Exibe mensagens de depuração de widget."
+#: ../src/bc-backends.c:157
+msgid "UPC-E +5"
+msgstr "UPC-E +5"
 
-#: src/glabels.c:115
-#, fuzzy
-msgid "Show object editor debugging messages."
-msgstr "Exibe mensagens de depuração de recentes"
+#: ../src/bc-backends.c:160 ../src/bc-backends.c:323
+msgid "ISBN"
+msgstr "ISBN"
 
-#: src/glabels.c:118
-msgid "Turn on all debugging messages."
-msgstr "Ativa todas as mensagens de depuração."
+#: ../src/bc-backends.c:163
+msgid "ISBN +5"
+msgstr "ISBN +5"
 
-#: src/glabels.c:187
-msgid "Could not initialize Bonobo!\n"
-msgstr "Impossível inicializar Bonobo!\n"
+#: ../src/bc-backends.c:166 ../src/bc-backends.c:239
+msgid "Code 39"
+msgstr "Code 39"
 
-#: src/glabels-batch.c:48
-msgid "print this message"
-msgstr "mostra esta mensagem"
+#: ../src/bc-backends.c:169 ../src/bc-backends.c:251
+msgid "Code 128"
+msgstr "Code 128"
 
-#: src/glabels-batch.c:50
-msgid "print the version of glabels-batch being used"
-msgstr "mostra a versão de glabels-batch que está sendo usada"
+#: ../src/bc-backends.c:172
+msgid "Code 128C"
+msgstr "Code 128C"
 
-#: src/glabels-batch.c:52
-msgid "set output filename (default=\"output.ps\")"
-msgstr "define o nome do arquivo de saída (padrão=\"output.ps\")"
+#: ../src/bc-backends.c:175
+msgid "Code 128B"
+msgstr "Code 128B"
 
-#: src/glabels-batch.c:52
-msgid "filename"
-msgstr "nome_de_arquivo"
+#: ../src/bc-backends.c:178 ../src/bc-backends.c:320
+msgid "Interleaved 2 of 5"
+msgstr "2 de 5 intercalado"
 
-#: src/glabels-batch.c:54
-msgid "number of sheets (default=1)"
-msgstr "número de páginas (padrão=1)"
+#: ../src/bc-backends.c:181 ../src/bc-backends.c:215
+msgid "Codabar"
+msgstr "Codabar"
 
-#: src/glabels-batch.c:54
-msgid "sheets"
-msgstr "páginas"
+#: ../src/bc-backends.c:184
+msgid "MSI"
+msgstr "MSI"
 
-#: src/glabels-batch.c:56
-msgid "number of copies (default=1)"
-msgstr "número de cópias (padrão=1)"
+#: ../src/bc-backends.c:187
+msgid "Plessey"
+msgstr "Plessey"
 
-#: src/glabels-batch.c:56
-msgid "copies"
-msgstr "cópias"
+#: ../src/bc-backends.c:190 ../src/bc-backends.c:248
+msgid "Code 93"
+msgstr "Code 93"
 
-#: src/glabels-batch.c:58 src/print-dialog.c:336
-msgid "print outlines (to test printer alignment)"
-msgstr "imprimir contornos (testar alinhamento da impressora)"
+#: ../src/bc-backends.c:197
+msgid "Australia Post Standard"
+msgstr ""
 
-#: src/glabels-batch.c:60 src/print-dialog.c:344
-msgid "print in reverse (i.e. a mirror image)"
-msgstr "imprimir ao contrário (como uma imagem de espelho)"
+#: ../src/bc-backends.c:200
+msgid "Australia Post Reply Paid"
+msgstr ""
 
-#: src/glabels-batch.c:96
-msgid "[OPTION...] GLABELS_FILE..."
-msgstr "[OPÇÃO...] ARQUIVO_GLABELS..."
+#: ../src/bc-backends.c:203
+msgid "Australia Post Route Code"
+msgstr ""
 
-#: src/glabels-batch.c:116
-msgid "missing glabels file\n"
-msgstr "faltando arquivo glabels\n"
+#: ../src/bc-backends.c:206
+msgid "Australia Post Redirect"
+msgstr ""
 
-#: src/glabels-batch.c:157
-#, c-format
-msgid "cannot open glabels file %s\n"
-msgstr "impossível abrir o arquivo glabels %s\n"
+#: ../src/bc-backends.c:209
+msgid "Aztec Code"
+msgstr ""
 
-#: src/window.c:244
-msgid "(none) - gLabels"
-msgstr "(sem nome) - gLabels"
+#: ../src/bc-backends.c:212
+msgid "Aztec Rune"
+msgstr ""
 
-#: src/window.c:414
-msgid "(modified)"
-msgstr "(modificado)"
+#: ../src/bc-backends.c:218
+#, fuzzy
+#| msgid "Code 39"
+msgid "Code One"
+msgstr "Code 39"
+
+#: ../src/bc-backends.c:221
+#, fuzzy
+#| msgid "Code 128"
+msgid "Code 11"
+msgstr "Code 128"
+
+#: ../src/bc-backends.c:224
+#, fuzzy
+#| msgid "Code 128"
+msgid "Code 16K"
+msgstr "Code 128"
+
+#: ../src/bc-backends.c:227
+msgid "Code 2 of 5 Matrix"
+msgstr ""
+
+#: ../src/bc-backends.c:230
+msgid "Code 2 of 5 IATA"
+msgstr ""
+
+#: ../src/bc-backends.c:233
+msgid "Code 2 of 5 Data Logic"
+msgstr ""
+
+#: ../src/bc-backends.c:236
+msgid "Code 32 (Italian Pharmacode)"
+msgstr ""
 
-#: src/stock.c:65 data/ui/glabels-ui.xml.h:165
-msgid "_Select Mode"
-msgstr "_Selecionar Modo"
+#: ../src/bc-backends.c:242
+#, fuzzy
+#| msgid "Code 39"
+msgid "Code 39 Extended"
+msgstr "Code 39"
 
-#: src/stock.c:66 data/ui/glabels-ui.xml.h:166
-msgid "_Text"
-msgstr "_Texto"
+#: ../src/bc-backends.c:245
+#, fuzzy
+#| msgid "Code 39"
+msgid "Code 49"
+msgstr "Code 39"
 
-#: src/stock.c:67 data/ui/glabels-ui.xml.h:151
-msgid "_Line"
-msgstr "_Linha"
+#: ../src/bc-backends.c:254
+msgid "Code 128 (Mode C supression)"
+msgstr ""
 
-#: src/stock.c:68 data/ui/glabels-ui.xml.h:133
-msgid "_Box"
-msgstr "_Caixa"
+#: ../src/bc-backends.c:257
+msgid "DAFT Code"
+msgstr ""
 
-#: src/stock.c:69 data/ui/glabels-ui.xml.h:144
-msgid "_Ellipse"
-msgstr "_Elipse"
+#: ../src/bc-backends.c:260
+#, fuzzy
+#| msgid "IEC16022 (DataMatrix)"
+msgid "Data Matrix"
+msgstr "IEC16022 (DataMatrix)"
 
-#: src/stock.c:70 data/ui/glabels-ui.xml.h:149
-msgid "_Image"
-msgstr "_Imagem"
+#: ../src/bc-backends.c:263
+msgid "Deutsche Post Leitcode"
+msgstr ""
 
-#: src/stock.c:71 data/ui/glabels-ui.xml.h:11
-msgid "Bar_code"
-msgstr "_Código barras"
+#: ../src/bc-backends.c:266
+msgid "Deutsche Post Identcode"
+msgstr ""
 
-#: src/stock.c:72
-msgid "_Merge Properties"
-msgstr "Propriedades de _Fusão"
+#: ../src/bc-backends.c:269
+msgid "Dutch Post KIX Code"
+msgstr ""
 
-#: src/stock.c:73
-msgid "Object _Properties"
-msgstr "_Propriedades de Objeto"
+#: ../src/bc-backends.c:272
+#, fuzzy
+#| msgid "EAN-8"
+msgid "EAN"
+msgstr "EAN-8"
 
-#: src/stock.c:74 data/ui/glabels-ui.xml.h:13
-msgid "Bring to _Front"
-msgstr "Trazer para _Frente"
+#: ../src/bc-backends.c:275
+msgid "Grid Matrix"
+msgstr ""
 
-#: src/stock.c:75 data/ui/glabels-ui.xml.h:110
-msgid "Send to _Back"
-msgstr "Enviar para _trás"
+#: ../src/bc-backends.c:278
+msgid "GS1-128"
+msgstr "GS1-128"
 
-#: src/stock.c:76 data/ui/glabels-ui.xml.h:97
-msgid "Rotate _Left"
-msgstr "Girar _Esquerda"
+#: ../src/bc-backends.c:281
+msgid "GS1 DataBar-14"
+msgstr ""
 
-#: src/stock.c:77 data/ui/glabels-ui.xml.h:98
-msgid "Rotate _Right"
-msgstr "Girar _Direita"
+#: ../src/bc-backends.c:290
+msgid "GS1 DataBar-14 Stacked"
+msgstr ""
 
-#: src/stock.c:78 data/ui/glabels-ui.xml.h:52
-msgid "Flip _Horizontally"
-msgstr "Refletir _Horizontalmente"
+#: ../src/bc-backends.c:293
+msgid "GS1 DataBar-14 Stacked Omni."
+msgstr ""
 
-#: src/stock.c:79 data/ui/glabels-ui.xml.h:53
-msgid "Flip _Vertically"
-msgstr "Refletir _Verticalmente"
+#: ../src/bc-backends.c:296
+msgid "GS1 DataBar Extended Stacked"
+msgstr ""
 
-#: src/stock.c:80 data/ui/glabels-ui.xml.h:150
-msgid "_Lefts"
-msgstr "_Esquerdas"
+#: ../src/bc-backends.c:299
+#, fuzzy
+#| msgid "Code 128"
+msgid "HIBC Code 128"
+msgstr "Code 128"
 
-#: src/stock.c:81 data/ui/glabels-ui.xml.h:162
-msgid "_Rights"
-msgstr "_Direitas"
+#: ../src/bc-backends.c:302
+#, fuzzy
+#| msgid "Code 39"
+msgid "HIBC Code 39"
+msgstr "Code 39"
 
-#: src/stock.c:82 data/ui/glabels-ui.xml.h:134
-msgid "_Centers"
-msgstr "C_entros"
+#: ../src/bc-backends.c:305
+#, fuzzy
+#| msgid "IEC16022 (DataMatrix)"
+msgid "HIBC Data Matrix"
+msgstr "IEC16022 (DataMatrix)"
 
-#: src/stock.c:83 data/ui/glabels-ui.xml.h:167
-msgid "_Tops"
-msgstr "_Topos"
+#: ../src/bc-backends.c:308
+#, fuzzy
+#| msgid "IEC18004 (QRCode)"
+msgid "HIBC QR Code"
+msgstr "IEC18004 (QRCode)"
 
-#: src/stock.c:84
-msgid "Bottoms"
-msgstr "Bases"
+#: ../src/bc-backends.c:311
+msgid "HIBC PDF417"
+msgstr ""
 
-#: src/stock.c:85
-msgid "Centers"
-msgstr "Centros"
+#: ../src/bc-backends.c:314
+msgid "HIBC Micro PDF417"
+msgstr ""
 
-#: src/stock.c:86 src/stock.c:87 data/ui/glabels-ui.xml.h:62
-msgid "Label Ce_nter"
-msgstr "Ce_ntro Etiqueta"
+#: ../src/bc-backends.c:317
+msgid "HIBC Aztec Code"
+msgstr ""
 
-#: src/stock.c:88 data/ui/glabels-ui.xml.h:51
-msgid "Fill color"
+#: ../src/bc-backends.c:326
+msgid "ITF-14"
 msgstr ""
 
-#: src/stock.c:89 data/ui/glabels-ui.xml.h:64
-msgid "Line color"
+#: ../src/bc-backends.c:329
+msgid "Japanese Postal"
 msgstr ""
 
-#: src/stock.c:90 src/stock.c:92
-#, fuzzy
-msgid "Linked"
-msgstr "Linha"
+#: ../src/bc-backends.c:332
+msgid "Korean Postal"
+msgstr ""
+
+#: ../src/bc-backends.c:335
+msgid "LOGMARS"
+msgstr ""
 
-#: src/stock.c:91 src/stock.c:93
+#: ../src/bc-backends.c:338
 #, fuzzy
-msgid "Not Linked"
-msgstr "Nenhum"
+#| msgid "Barcode"
+msgid "Maxicode"
+msgstr "Código de barras"
+
+#: ../src/bc-backends.c:341
+msgid "Micro PDF417"
+msgstr ""
+
+#: ../src/bc-backends.c:344
+msgid "Micro QR Code"
+msgstr ""
 
-#: src/ui-property-bar.c:345 src/object-editor.c:499
+#: ../src/bc-backends.c:347
 #, fuzzy
-msgid "Default"
-msgstr "Apagar"
+#| msgid "Plessey"
+msgid "MSI Plessey"
+msgstr "Plessey"
+
+#: ../src/bc-backends.c:350
+msgid "NVE-18"
+msgstr ""
+
+#: ../src/bc-backends.c:353
+msgid "PDF417"
+msgstr ""
 
-#: src/ui-property-bar.c:360 src/object-editor.c:512
-msgid "No fill"
+#: ../src/bc-backends.c:356
+msgid "PDF417 Truncated"
 msgstr ""
 
-#: src/ui-property-bar.c:375 src/object-editor.c:505
+#: ../src/bc-backends.c:359
 #, fuzzy
-msgid "No line"
-msgstr "Nenhum"
+#| msgid "CEPNET"
+msgid "PLANET"
+msgstr "CEPNET"
 
-#: src/ui-sidebar.c:180
+#: ../src/bc-backends.c:362
 #, fuzzy
-msgid "Object properties"
-msgstr "_Propriedades de Objeto"
+#| msgid "Paste"
+msgid "PostNet"
+msgstr "Colar"
 
-#: src/commands.c:385
-msgid ""
-"A label and business card creation program for GNOME.\n"
-" \n"
-"Glabels is free software; you can redistribute it and/or modify it under the "
-"terms of the GNU General Public License as published by the Free Software "
-"Foundation; either version 2 of the License, or (at your option) any later "
-"version.\n"
-" \n"
-"This program is distributed in the hope that it will be useful, but WITHOUT "
-"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or "
-"FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for "
-"more details.\n"
+#: ../src/bc-backends.c:365
+#, fuzzy
+#| msgid "Barcode"
+msgid "Pharmacode"
+msgstr "Código de barras"
+
+#: ../src/bc-backends.c:368
+#, fuzzy
+#| msgid "Barcode data"
+msgid "Pharmacode 2-track"
+msgstr "Dado do código de barras:"
+
+#: ../src/bc-backends.c:371
+msgid "Pharmazentral Nummer (PZN)"
 msgstr ""
-"Um programa para criação de etiquetas e cartões de negócios para o GNOME.\n"
-"\n"
-"Glabels é software livre; você pode redistribuí-lo e/ou modificá-lo sob os "
-"termos da Licença Pública Geral GNU conforme publicada pela Free Software "
-"Foundation; ou a versão 2 da Licença, ou (sob sua opção) qualquer versão "
-"posterior.\n"
-"\n"
-"Este programa é distribuido na esperança de que seja útil, mas SEM QUALQUER "
-"GARANTIA; sem mesmo as garantias implícitas de COMERCIALIZAÇÃO ou AJUSTES A "
-"UM PROPÓSITO PARTICULAR. Veja a Licença Pública Geral GNU para mais "
-"detalhes.\n"
 
-#: src/commands.c:399
-msgid "See the file AUTHORS for additional credits,"
-msgstr "Veja o arquivo AUTHORS para ver créditos adicionais,"
+#: ../src/bc-backends.c:374
+msgid "QR Code"
+msgstr ""
 
-#: src/commands.c:400
+#: ../src/bc-backends.c:377
+msgid "Royal Mail 4-State"
+msgstr ""
+
+#: ../src/bc-backends.c:380
 #, fuzzy
-msgid "or visit http://glabels.sourceforge.net/"
-msgstr "ou visite http://snaught.com/glabels"
+#| msgid "Delete"
+msgid "Telepen"
+msgstr "Excluir"
 
-#: src/commands.c:409
-msgid " "
+#: ../src/bc-backends.c:383
+msgid "Telepen Numeric"
 msgstr ""
 
-#: src/commands.c:424
-msgid "glabels"
-msgstr "glabels"
+#: ../src/bc-backends.c:392
+msgid "USPS One Code"
+msgstr ""
 
-#: src/file.c:100
-msgid "New Label or Card"
-msgstr "Nova Etiqueta ou Cartão"
+#: ../src/bc-backends.c:395
+#, fuzzy
+#| msgid "Plessey"
+msgid "UK Plessey"
+msgstr "Plessey"
 
-#: src/file.c:132 src/file.c:304
-msgid "Media Type"
-msgstr "Tipo de mídia"
+#: ../src/bc-backends.c:402
+msgid "IEC16022 (DataMatrix)"
+msgstr "IEC16022 (DataMatrix)"
 
-#: src/file.c:138 src/file.c:310
-msgid "Label orientation"
-msgstr "Orientação da etiqueta"
+#: ../src/bc-backends.c:409
+msgid "IEC18004 (QRCode)"
+msgstr "IEC18004 (QRCode)"
 
-#: src/file.c:269
-#, fuzzy
+#: ../src/color-combo-button.c:198 ../src/color-combo.c:178
+msgid "Default Color"
+msgstr "Cor padrão"
+
+#: ../src/color-combo-menu.c:83
+msgid "Dark Red"
+msgstr "Vermelho escuro"
+
+#: ../src/color-combo-menu.c:84
+msgid "Brown"
+msgstr "Marrom"
+
+#: ../src/color-combo-menu.c:85
+msgid "Dark Goldenrod"
+msgstr "Dourado escuro"
+
+#: ../src/color-combo-menu.c:86
+msgid "Dark Green"
+msgstr "Verde escuro"
+
+#: ../src/color-combo-menu.c:87
+msgid "Dark Cyan"
+msgstr "Ciano escuro"
+
+#: ../src/color-combo-menu.c:88
+msgid "Navy Blue"
+msgstr "Azul marinho"
+
+#: ../src/color-combo-menu.c:89
+msgid "Dark Violet"
+msgstr "Violeta escuro"
+
+#: ../src/color-combo-menu.c:91
+msgid "Red"
+msgstr "Vermelho"
+
+#: ../src/color-combo-menu.c:92
+msgid "Orange"
+msgstr "Laranja"
+
+#: ../src/color-combo-menu.c:93
+msgid "Dark Yellow"
+msgstr "Amarelo escuro"
+
+#: ../src/color-combo-menu.c:94
+msgid "Medium green"
+msgstr "Verde médio"
+
+#: ../src/color-combo-menu.c:95
+msgid "Turquoise"
+msgstr "Azul turquesa"
+
+#: ../src/color-combo-menu.c:96
+msgid "Blue"
+msgstr "Azul"
+
+#: ../src/color-combo-menu.c:97
+msgid "Purple"
+msgstr "Roxo"
+
+#: ../src/color-combo-menu.c:99
+msgid "Salmon"
+msgstr "Salmão"
+
+#: ../src/color-combo-menu.c:100
+msgid "Gold"
+msgstr "Dourado"
+
+#: ../src/color-combo-menu.c:101
+msgid "Yellow"
+msgstr "Amarelo"
+
+#: ../src/color-combo-menu.c:102
+msgid "Green"
+msgstr "Verde"
+
+#: ../src/color-combo-menu.c:103
+msgid "Cyan"
+msgstr "Ciano"
+
+#: ../src/color-combo-menu.c:104
+msgid "SkyBlue"
+msgstr "Azul celeste"
+
+#: ../src/color-combo-menu.c:105
+msgid "Violet"
+msgstr "Violeta"
+
+#: ../src/color-combo-menu.c:107
+msgid "Pink"
+msgstr "Rosa"
+
+#: ../src/color-combo-menu.c:108
+msgid "Khaki"
+msgstr "Cáqui"
+
+#: ../src/color-combo-menu.c:109
+msgid "Light Yellow"
+msgstr "Amarelo claro"
+
+#: ../src/color-combo-menu.c:110
+msgid "Light Green"
+msgstr "Verde claro"
+
+#: ../src/color-combo-menu.c:111
+msgid "Light Cyan"
+msgstr "Ciano claro"
+
+#: ../src/color-combo-menu.c:112
+msgid "Slate Gray"
+msgstr "Cinza chumbo"
+
+#: ../src/color-combo-menu.c:113
+msgid "Thistle"
+msgstr "Cardo"
+
+#: ../src/color-combo-menu.c:115
+msgid "White"
+msgstr "Branco"
+
+#: ../src/color-combo-menu.c:117
+#, no-c-format
+msgid "10% Gray"
+msgstr "10% cinza"
+
+#: ../src/color-combo-menu.c:119
+#, no-c-format
+msgid "25% Gray"
+msgstr "25% cinza"
+
+#: ../src/color-combo-menu.c:121
+#, no-c-format
+msgid "40% Gray"
+msgstr "40% cinza"
+
+#: ../src/color-combo-menu.c:123
+#, no-c-format
+msgid "50% Gray"
+msgstr "50% cinza"
+
+#: ../src/color-combo-menu.c:125
+#, no-c-format
+msgid "60% Gray"
+msgstr "60% cinza"
+
+#: ../src/color-combo-menu.c:126
+msgid "Black"
+msgstr "Preto"
+
+#: ../src/color-combo-menu.c:254 ../src/color-combo-menu.c:373
+msgid "Custom Color"
+msgstr "Cor personalizada"
+
+#: ../src/color-combo-menu.c:319
+#, c-format
+msgid "Custom Color #%u"
+msgstr "Cor personalizada #%u"
+
+#: ../src/critical-error-handler.c:70
+msgid "gLabels Fatal Error!"
+msgstr "Erro fatal do gLabels!"
+
+#: ../src/file.c:84
+msgid "New Label or Card"
+msgstr "Nova etiqueta ou cartão"
+
+#: ../src/file.c:175 ../src/label.c:587 ../src/label.c:631
 msgid "Label properties"
-msgstr "_Propriedades de Objeto"
+msgstr "Propriedades da etiqueta"
 
-#: src/file.c:452 src/file.c:870
+#: ../src/file.c:267 ../src/file.c:557
 msgid "All files"
-msgstr ""
+msgstr "Todos os arquivos"
 
-#: src/file.c:457 src/file.c:875
-#, fuzzy
+#: ../src/file.c:272 ../src/file.c:562
 msgid "gLabels documents"
-msgstr "Preferências do gLabels"
+msgstr "Documentos do gLabels"
 
-#: src/file.c:505 src/file.c:617 src/file.c:934 src/file.c:1130
+#: ../src/file.c:319 ../src/file.c:620
 msgid "Empty file name selection"
 msgstr "Seleção de nome de arquivo vazia"
 
-#: src/file.c:506 src/file.c:520 src/file.c:618 src/file.c:632
+#: ../src/file.c:322 ../src/file.c:338
 msgid "Please select a file or supply a valid file name"
 msgstr "Por favor, selecione um arquivo ou forneça um nome de arquivo válido"
 
-#: src/file.c:519 src/file.c:631
+#: ../src/file.c:335
 msgid "File does not exist"
 msgstr "Arquivo inexistente"
 
-#: src/file.c:563 data/ui/glabels-ui.xml.h:75
-msgid "Open"
-msgstr "Abrir"
-
-#: src/file.c:565
-msgid "Open label"
-msgstr "Abrir etiqueta"
-
-#: src/file.c:707
+#: ../src/file.c:410
 #, c-format
 msgid "Could not open file \"%s\""
-msgstr "Impossível abrir o arquivo \"%s\""
+msgstr "Não foi possível abrir o arquivo \"%s\""
 
-#: src/file.c:715
+#: ../src/file.c:413
 msgid "Not a supported file format"
 msgstr "Formato de arquivo não suportado"
 
-#: src/file.c:797 src/file.c:979 src/file.c:1174
+#: ../src/file.c:491 ../src/file.c:670
 #, c-format
 msgid "Could not save file \"%s\""
-msgstr "Impossível salvar o arquivo \"%s\""
+msgstr "Não foi possível salvar o arquivo \"%s\""
 
-#: src/file.c:805 src/file.c:987 src/file.c:1182
+#: ../src/file.c:495 ../src/file.c:674
 msgid "Error encountered during save.  The file is still not saved."
-msgstr "Erro encontrado ao salvar. O arquivo ainda não foi salvo."
+msgstr "Erro encontrado ao salvar. O arquivo ainda não está salvo."
 
-#: src/file.c:848 src/file.c:1048
+#: ../src/file.c:535
 #, c-format
 msgid "Save \"%s\" as"
 msgstr "Salvar \"%s\" como"
 
-#: src/file.c:935 src/file.c:1131
+#: ../src/file.c:623
 msgid "Please supply a valid file name"
 msgstr "Por favor, forneça um nome de arquivo válido"
 
-#: src/file.c:952 src/file.c:1147
+#: ../src/file.c:644
 #, c-format
 msgid "Overwrite file \"%s\"?"
 msgstr "Sobrescrever o arquivo \"%s\"?"
 
-#: src/file.c:960 src/file.c:1155
+#: ../src/file.c:648
 msgid "File already exists."
 msgstr "O arquivo já existe."
 
-#: src/file.c:1271
+#: ../src/file.c:744
 #, c-format
 msgid "Save changes to document \"%s\" before closing?"
 msgstr "Salvar modificações no documento \"%s\" antes de fechar?"
 
-#: src/file.c:1279
+#: ../src/file.c:748
 msgid "Your changes will be lost if you don't save them."
 msgstr "Suas modificações serão perdidas se você não salvá-las."
 
-#: src/file.c:1282
+#: ../src/file.c:751
 msgid "Close without saving"
 msgstr "Fechar sem salvar"
 
-#. Should not happen
-#: src/prefs.c:156 src/prefs.c:163 data/glade/prefs-dialog.glade.h:23
-#: data/glade/object-editor.glade.h:37
-msgid "points"
-msgstr "pontos"
+#: ../src/font-combo-menu.c:137
+msgid "Recent fonts"
+msgstr "Fontes recentes"
 
-#: src/prefs.c:158 data/glade/object-editor.glade.h:36
-#: data/glade/template-designer.glade.h:74
-msgid "inches"
-msgstr "poleg."
+#: ../src/font-combo-menu.c:152
+msgid "Proportional fonts"
+msgstr "Fontes proporcionais"
 
-#: src/prefs.c:160
-msgid "mm"
-msgstr "mm"
+#: ../src/font-combo-menu.c:160
+msgid "Fixed-width fonts"
+msgstr "Fontes de largura fixa"
 
-#: src/prefs-dialog.c:248 data/glade/prefs-dialog.glade.h:22
-msgid "gLabels Preferences"
-msgstr "Preferências do gLabels"
+#: ../src/font-combo-menu.c:168
+msgid "All fonts"
+msgstr "Todas as fontes"
 
 #.
-#. * Submenu: Order
+#. * Allow text samples to be localized.
+#. *
+#. * FIXME: if we could extract enough meta information from the fonts
+#. * themselves, perhaps rather than setting these globally for the
+#. * current locale, they could be unique to each font family.
 #.
-#: src/view.c:3570 data/ui/glabels-ui.xml.h:157
-msgid "_Order"
-msgstr "_Ordenar"
+#: ../src/font-combo-menu-item.c:132
+msgctxt "Short sample text"
+msgid "Aa"
+msgstr "Aa"
+
+#: ../src/font-combo-menu-item.c:134
+msgctxt "Lower case sample text"
+msgid "abcdefghijklmnopqrstuvwxyz"
+msgstr "abcdefghijklmnopqrstuvwxyz"
+
+#: ../src/font-combo-menu-item.c:136
+msgctxt "Upper case sample text"
+msgid "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
+#: ../src/font-combo-menu-item.c:138
+msgctxt "Numbers and special characters sample text"
+msgid "0123456789 .:,;(*!?)"
+msgstr "0123456789 .:,;(*!?)"
+
+#: ../src/font-combo-menu-item.c:157
+msgid "Sample text"
+msgstr "Texto de amostra"
+
+#: ../src/glabels-batch.c:53
+msgid "set output filename (default=\"output.pdf\")"
+msgstr "define o nome do arquivo de saída (padrão=\"output.pdf\")"
+
+#: ../src/glabels-batch.c:53 ../src/glabels-batch.c:67
+msgid "filename"
+msgstr "nome_de_arquivo"
 
-#.
-#. * Submenu: Rotate/Flip
-#.
-#: src/view.c:3591 data/ui/glabels-ui.xml.h:163
-msgid "_Rotate/Flip"
-msgstr "_Girar/Refletir"
+#: ../src/glabels-batch.c:55
+msgid "number of sheets (default=1)"
+msgstr "número de páginas (padrão=1)"
 
-#.
-#. * Submenu: Align Horizontally
-#.
-#: src/view.c:3624
-msgid "Align _Horizontally"
-msgstr "Alinhar _Horizontalmente"
+#: ../src/glabels-batch.c:55
+msgid "sheets"
+msgstr "páginas"
 
-#.
-#. * Submenu: Align Vertically
-#.
-#: src/view.c:3663
-msgid "Align _Vertically"
-msgstr "Alinhar _Verticalmente"
+#: ../src/glabels-batch.c:57
+msgid "number of copies (default=1)"
+msgstr "número de cópias (padrão=1)"
 
-#: src/view.c:3724 data/ui/glabels-ui.xml.h:140
-msgid "_Delete"
-msgstr "_Apagar"
+#: ../src/glabels-batch.c:57
+msgid "copies"
+msgstr "cópias"
 
-#. Build editor.
-#: src/view-box.c:223
-#, fuzzy
-msgid "Box object properties"
-msgstr "Editar propriedades do objeto caixa"
+#: ../src/glabels-batch.c:59
+msgid "first label on first sheet (default=1)"
+msgstr "primeira etiqueta na primeira folha (padrão=1)"
 
-#. Build editor.
-#: src/view-ellipse.c:223
-#, fuzzy
-msgid "Ellipse object properties"
-msgstr "Editar propriedades do objeto elipse"
+#: ../src/glabels-batch.c:59
+msgid "first"
+msgstr "primeiro"
 
-#. Build editor.
-#: src/view-line.c:223
-#, fuzzy
-msgid "Line object properties"
-msgstr "Edita propriedades do objeto"
+#: ../src/glabels-batch.c:61 ../data/ui/print-op-dialog-custom-widget.ui.h:13
+msgid "print outlines (to test printer alignment)"
+msgstr "imprimir contornos (para testar alinhamento da impressora)"
 
-#. Build editor.
-#: src/view-image.c:222
-#, fuzzy
-msgid "Image object properties"
-msgstr "Editar propriedades do objeto imagem"
+#: ../src/glabels-batch.c:63 ../data/ui/print-op-dialog-custom-widget.ui.h:12
+msgid "print in reverse (i.e. a mirror image)"
+msgstr "imprimir ao contrário (como uma imagem de espelho)"
 
-#. Build editor.
-#: src/view-text.c:250
-#, fuzzy
-msgid "Text object properties"
-msgstr "Edita propriedades do objeto"
+#: ../src/glabels-batch.c:65 ../data/ui/print-op-dialog-custom-widget.ui.h:11
+msgid "print crop marks"
+msgstr "imprime marcas de corte"
 
-#: src/view-text.c:562 data/glade/object-editor.glade.h:28
-msgid "Text"
-msgstr "Texto"
+#: ../src/glabels-batch.c:67
+msgid "input file for merging"
+msgstr "arquivo de entrada para mesclagem"
 
-#. Build editor.
-#: src/view-barcode.c:209
-#, fuzzy
-msgid "Barcode object properties"
-msgstr "Editar propriedades do objeto código de barras"
+#: ../src/glabels-batch.c:69 ../src/glabels.c:63
+msgid "[FILE...]"
+msgstr "[ARQUIVO...]"
 
-#: src/view-barcode.c:579 src/print.c:1088
-#, fuzzy
-msgid "Invalid barcode data"
-msgstr "Código de barras inválido"
+#: ../src/glabels-batch.c:99
+msgid "Print files created with gLabels."
+msgstr "Imprime arquivos criados com o gLabels."
 
-#: src/merge-properties-dialog.c:231
-msgid "Merge Properties"
-msgstr "Propriedades de Fusão"
+#: ../src/glabels-batch.c:107 ../src/glabels.c:87
+#, c-format
+msgid ""
+"%s\n"
+"Run '%s --help' to see a full list of available command line options.\n"
+msgstr ""
+"%s\n"
+"Execute \"%s --help\" para ver uma lista completa de opções disponíveis de "
+"linha de comando.\n"
 
-#. ---- Source section ----
-#: src/merge-properties-dialog.c:237
-msgid "Source"
-msgstr "Fonte"
+#: ../src/glabels-batch.c:151
+#, c-format
+msgid "cannot perform document merge with glabels file %s\n"
+msgstr ""
+"não é possível realizar a mesclagem do documento com o arquivo glabels %s\n"
 
-#: src/merge-properties-dialog.c:245
-msgid "Format:"
-msgstr "Formato:"
+#: ../src/glabels-batch.c:186
+#, c-format
+msgid "cannot open glabels file %s\n"
+msgstr "não é possível abrir o arquivo glabels %s\n"
 
-#. Location line
-#: src/merge-properties-dialog.c:273
-msgid "Location:"
-msgstr "Localização"
+#: ../src/glabels.c:79
+msgid "Launch gLabels label and business card designer."
+msgstr "Lança o gLabels, criador de etiquetas e cartões de visita."
 
-#: src/merge-properties-dialog.c:282 src/merge-properties-dialog.c:393
-msgid "Select merge-database source"
-msgstr "Selecione a fonte da base de dados da fusão"
+#: ../src/label-barcode.c:155 ../src/ui.c:318
+msgid "Create barcode object"
+msgstr "Criar objeto código de barras"
 
-#: src/merge-properties-dialog.c:289 src/merge-properties-dialog.c:404
-msgid "N/A"
-msgstr "Não definido"
+#: ../src/label-barcode.c:231 ../src/label-barcode.c:381
+msgid "Barcode data"
+msgstr "Dado do código de barras:"
 
-#. ---- Sample Fields section ----
-#: src/merge-properties-dialog.c:300
-msgid "Record selection/preview:"
-msgstr "Seleção/previsão de registro:"
+#: ../src/label-barcode.c:260
+msgid "Barcode property"
+msgstr "Propriedade do código de barras"
 
-#: src/merge-properties-dialog.c:326
-msgid "Select"
-msgstr "Selecionar"
+#: ../src/label-barcode.c:476
+msgid "Barcode data empty"
+msgstr "Dados do código de barras vazios"
 
-#: src/merge-properties-dialog.c:334
-msgid "Record/Field"
-msgstr "Registro/Campo"
+#: ../src/label-barcode.c:480
+msgid "Invalid barcode data"
+msgstr "Dados do código de barras inválidos"
 
-#: src/merge-properties-dialog.c:342 data/glade/object-editor.glade.h:9
-msgid "Data"
-msgstr "Dado"
+#: ../src/label-box.c:156
+msgid "Create box object"
+msgstr "Criar objeto caixa"
 
-#: src/print-dialog.c:266 data/ui/glabels-ui.xml.h:82
-msgid "Print"
-msgstr "Imprimir"
+#: ../src/label-box.c:230 ../src/label-ellipse.c:232
+#: ../data/ui/property-bar.ui.h:3
+msgid "Fill color"
+msgstr "Cor de preenchimento"
 
-#: src/print-dialog.c:281
-msgid "_Job"
-msgstr "_Trabalho"
+#: ../src/label-box.c:261 ../src/label-ellipse.c:261 ../src/label-line.c:212
+#: ../data/ui/property-bar.ui.h:8
+msgid "Line color"
+msgstr "Cor de linha"
 
-#: src/print-dialog.c:286
-msgid "P_rinter"
-msgstr "Imp_ressora"
+#: ../src/label-box.c:289 ../src/label-ellipse.c:290 ../src/label-line.c:241
+#: ../data/ui/property-bar.ui.h:9
+msgid "Line width"
+msgstr "Largura da linha"
 
-#. ----------- Add simple-copies widget ------------
-#: src/print-dialog.c:314
-msgid "Copies"
-msgstr "Cópias"
+#: ../src/label.c:402
+msgid "Untitled"
+msgstr "Sem_título"
 
-#. ------- Add merge control widget ------------
-#: src/print-dialog.c:322
-msgid "Document merge control"
-msgstr "Controle de fusão do documento"
+#: ../src/label.c:705 ../src/ui.c:421
+msgid "Merge properties"
+msgstr "Propriedades de mesclagem"
 
-#. ----------- Add custom print options area ------------
-#: src/print-dialog.c:330
-msgid "Options"
-msgstr "Opções"
+#: ../src/label.c:1197 ../src/ui.c:214
+msgid "Delete"
+msgstr "Excluir"
 
-#: src/print-dialog.c:351
-msgid "print crop marks"
-msgstr ""
+#: ../src/label.c:1230 ../src/ui.c:323
+msgid "Bring to front"
+msgstr "Trazer para frente"
 
-#: src/print-dialog.c:553 src/print-dialog.c:592
-msgid "Print preview"
-msgstr "Visualizar impressão"
+#: ../src/label.c:1266 ../src/ui.c:330
+msgid "Send to back"
+msgstr "Enviar para trás"
 
-#: src/template-designer.c:409 data/glade/template-designer.glade.h:73
-msgid "gLabels Template Designer"
-msgstr ""
+#: ../src/label.c:1307
+msgid "Rotate"
+msgstr "Girar"
 
-#: src/bc.c:60
-msgid "POSTNET (any)"
-msgstr ""
+#: ../src/label.c:1342 ../src/ui.c:337
+msgid "Rotate left"
+msgstr "Girar à esquerda"
 
-#: src/bc.c:63
-msgid "POSTNET-5 (ZIP only)"
-msgstr ""
+#: ../src/label.c:1375 ../src/ui.c:344
+msgid "Rotate right"
+msgstr "Girar à direita"
 
-#: src/bc.c:66
-msgid "POSTNET-9 (ZIP+4)"
-msgstr ""
+#: ../src/label.c:1410 ../src/ui.c:351
+msgid "Flip horizontally"
+msgstr "Refletir horizontalmente"
 
-#: src/bc.c:69
-msgid "POSTNET-11 (DPBC)"
-msgstr ""
+#: ../src/label.c:1445 ../src/ui.c:358
+msgid "Flip vertically"
+msgstr "Refletir verticalmente"
 
-#: src/bc.c:72
-msgid "EAN (any)"
-msgstr ""
+#: ../src/label.c:1485 ../src/ui.c:365
+msgid "Align left"
+msgstr "Alinha à esquerda"
 
-#: src/bc.c:75
-msgid "EAN-8"
-msgstr ""
+#: ../src/label.c:1542 ../src/ui.c:372
+msgid "Align right"
+msgstr "Alinha à direita"
 
-#: src/bc.c:78
-msgid "EAN-8 +2"
-msgstr ""
+#: ../src/label.c:1603 ../src/ui.c:379
+msgid "Align horizontal center"
+msgstr "Alinha pelo centro horizontal"
 
-#: src/bc.c:81
-msgid "EAN-8 +5"
-msgstr ""
+#: ../src/label.c:1679 ../src/ui.c:386
+msgid "Align tops"
+msgstr "Alinha pelos topos"
 
-#: src/bc.c:84
-msgid "EAN-13"
-msgstr ""
+#: ../src/label.c:1736 ../src/ui.c:393
+msgid "Align bottoms"
+msgstr "Alinha pelas bases"
 
-#: src/bc.c:87
-msgid "EAN-13 +2"
-msgstr ""
+#: ../src/label.c:1797 ../src/ui.c:400
+msgid "Align vertical center"
+msgstr "Alinha pelo centro vertical"
 
-#: src/bc.c:90
-msgid "EAN-13 +5"
-msgstr ""
+#: ../src/label.c:1875 ../src/ui.c:407
+msgid "Center horizontally"
+msgstr "Centraliza horizontalmente"
 
-#: src/bc.c:93
-msgid "UPC (UPC-A or UPC-E)"
-msgstr ""
+#: ../src/label.c:1922 ../src/ui.c:414
+msgid "Center vertically"
+msgstr "Centraliza verticalmente"
 
-#: src/bc.c:96
-msgid "UPC-A"
-msgstr ""
+#: ../src/label.c:2610 ../src/label.c:2652 ../src/label.c:2678 ../src/ui.c:207
+msgid "Paste"
+msgstr "Colar"
 
-#: src/bc.c:99
-msgid "UPC-A +2"
-msgstr ""
+#: ../src/label-ellipse.c:160
+msgid "Create ellipse object"
+msgstr "Criar objeto elipse"
 
-#: src/bc.c:102
-msgid "UPC-A +5"
-msgstr ""
+#: ../src/label-image.c:200 ../src/ui.c:311
+msgid "Create image object"
+msgstr "Criar objeto imagem"
 
-#: src/bc.c:105
-msgid "UPC-E"
-msgstr ""
+#: ../src/label-image.c:333 ../src/label-image.c:474
+msgid "Set image"
+msgstr "Define a imagem"
 
-#: src/bc.c:108
-msgid "UPC-E +2"
-msgstr ""
+#: ../src/label-line.c:147 ../src/ui.c:297
+msgid "Create line object"
+msgstr "Criar objeto linha"
 
-#: src/bc.c:111
-msgid "UPC-E +5"
-msgstr ""
+#: ../src/label-object.c:383 ../src/label-object.c:416
+msgid "Move"
+msgstr "Mover"
 
-#: src/bc.c:114
-msgid "ISBN"
-msgstr ""
+#: ../src/label-object.c:467
+msgid "Resize"
+msgstr "Redimensionar"
 
-#: src/bc.c:117
-msgid "ISBN +5"
-msgstr ""
+#: ../src/label-object.c:1185
+msgid "Shadow state"
+msgstr "Estado da sombra"
 
-#: src/bc.c:120
-msgid "Code 39"
-msgstr ""
+#: ../src/label-object.c:1228
+msgid "Shadow offset"
+msgstr "Deslocamento da sombra"
 
-#: src/bc.c:123
-msgid "Code 128"
-msgstr ""
+#: ../src/label-object.c:1276
+msgid "Shadow color"
+msgstr "Cor da sombra"
 
-#: src/bc.c:126
-msgid "Code 128C"
-msgstr ""
+#: ../src/label-object.c:1319
+msgid "Shadow opacity"
+msgstr "Opacidade da sombra"
 
-#: src/bc.c:129
-msgid "Code 128B"
-msgstr ""
+#: ../src/label-text.c:279 ../src/ui.c:283
+msgid "Create text object"
+msgstr "Criar objeto texto"
 
-#: src/bc.c:132
-msgid "Interleaved 2 of 5"
-msgstr ""
+#: ../src/label-text.c:451
+msgid "Typing"
+msgstr "Tipografia"
 
-#: src/bc.c:135
-msgid "Codabar"
-msgstr ""
+#: ../src/label-text.c:584 ../data/ui/property-bar.ui.h:4
+msgid "Font family"
+msgstr "Família da fonte"
 
-#: src/bc.c:138
-msgid "MSI"
-msgstr ""
+#: ../src/label-text.c:622 ../data/ui/property-bar.ui.h:5
+msgid "Font size"
+msgstr "Tamanho da fonte"
 
-#: src/bc.c:141
-msgid "Plessey"
-msgstr ""
+#: ../src/label-text.c:655
+msgid "Font weight"
+msgstr "Peso da fonte"
 
-#: src/label.c:569
-msgid "Untitled"
-msgstr "Sem_título"
+#: ../src/label-text.c:688 ../data/ui/property-bar.ui.h:6
+msgid "Italic"
+msgstr "Itálico"
 
-#: src/xml-label.c:176 src/xml-label.c:213
-msgid "xmlParseFile error"
-msgstr "erro: xmlParseFile"
+#: ../src/label-text.c:721
+msgid "Align text"
+msgstr "Alinhar texto"
 
-#: src/xml-label.c:250
-msgid "No document root"
-msgstr "Sem raiz do documento"
+#: ../src/label-text.c:754
+msgid "Line spacing"
+msgstr "Espaçamento de linha"
 
-#: src/xml-label.c:264
-msgid "Importing from glabels 0.1 format"
-msgstr "Importando do formato do glabels 0.1"
+#: ../src/label-text.c:787 ../data/ui/property-bar.ui.h:11
+msgid "Text color"
+msgstr "Cor do texto"
+
+#: ../src/label-text.c:931
+msgid "Auto shrink"
+msgstr "Encolhimento automático"
+
+#: ../src/media-select.c:349 ../src/media-select.c:353
+#: ../src/media-select.c:502 ../src/media-select.c:701
+msgctxt "Brand"
+msgid "Any"
+msgstr "Qualquer"
+
+#: ../src/media-select.c:358 ../src/media-select.c:871
+msgctxt "Page size"
+msgid "Any"
+msgstr "Qualquer"
+
+#: ../src/media-select.c:367 ../src/media-select.c:370
+#: ../src/media-select.c:880
+msgctxt "Category"
+msgid "Any"
+msgstr "Qualquer"
+
+#: ../src/media-select.c:968
+msgid "No recent templates found."
+msgstr "Nenhum modelo recente foi encontrado."
+
+#: ../src/media-select.c:970
+msgid "Try selecting a template in the \"Search all\" tab."
+msgstr "Tente selecionar um modelo na aba \"Buscar todos\"."
+
+#. Translators: "No match" means that for the given template search criteria, there
+#. * were no matches found.
+#: ../src/media-select.c:1061
+msgid "No match."
+msgstr "Não encontrado."
+
+#: ../src/media-select.c:1063
+msgid "Try selecting a different brand, page size or category."
+msgstr "Tente selecionar uma marca, tamanho de página ou categoria diferentes."
+
+#: ../src/media-select.c:1157
+msgid "No custom templates found."
+msgstr "Nenhum modelo personalizado encontrado."
+
+#: ../src/media-select.c:1159
+msgid ""
+"You may create new templates or try searching for pre-defined templates in "
+"the \"Search all\" tab."
+msgstr ""
+"Você pode criar novos modelos ou tentar buscar por modelos pré-definidos na "
+"aba \"Buscar todos\"."
 
-#: src/xml-label.c:272
-msgid "Importing from glabels 0.4 format"
-msgstr "Importando do formato do glabels 0.4"
+#. Translators: "None" here means that no document-merge source or
+#. * method has been selected.
+#: ../src/merge.c:171 ../src/merge.c:212 ../src/merge.c:376 ../src/merge.c:379
+msgid "None"
+msgstr "Nenhum"
 
-#: src/xml-label.c:279
-#, fuzzy
-msgid "Importing from glabels 1.91 format"
-msgstr "Importando do formato do glabels 0.1"
+#: ../src/merge-evolution.c:316
+msgid "Couldn't construct query"
+msgstr "Não foi posível construir a consulta"
 
-#: src/xml-label.c:282
-msgid "bad document, unknown glabels Namespace"
-msgstr "documento ruim, espaço de nome glabels não encontrado"
+#: ../src/merge-evolution.c:322 ../src/merge-evolution.c:333
+msgid "Couldn't open addressbook."
+msgstr "Não foi possível abrir o livro de endereços."
 
-#: src/xml-label.c:311 src/xml-label-04.c:75 src/xml-label-191.c:131
-#, c-format
-msgid "Bad root node = \"%s\""
-msgstr "Nó raiz ruim = \"%s\""
+#: ../src/merge-evolution.c:348
+msgid "Couldn't list available fields."
+msgstr "Não foi possível listar os campos disponíveis."
 
-#: src/xml-label.c:348 src/xml-label-191.c:165
-#, fuzzy, c-format
-msgid "bad node in Document node =  \"%s\""
-msgstr "Nó raiz ruim = \"%s\""
+#: ../src/merge-evolution.c:384
+msgid "Couldn't get contacts."
+msgstr "Não foi possível obter contatos."
 
-#: src/xml-label.c:393 src/xml-label-04.c:123 src/xml-label-191.c:197
-#, c-format
-msgid "bad node =  \"%s\""
-msgstr "nó ruim = \"%s\""
+#: ../src/merge-init.c:57
+msgid "Text: Comma Separated Values (CSV)"
+msgstr "Texto: valores separados por vírgula (CSV)"
 
-#: src/xml-label.c:796 src/xml-label-191.c:605
-#, fuzzy, c-format
-msgid "bad node in Data node =  \"%s\""
-msgstr "nó ruim = \"%s\""
+#: ../src/merge-init.c:64
+msgid "Text: Comma Separated Values (CSV) with keys on line 1"
+msgstr "Texto: valores separados por vírgula (CSV) com as chaves na linha 1"
 
-#: src/xml-label.c:962 libglabels/xml-template.c:528
-msgid "Utf8 conversion error."
-msgstr ""
+#: ../src/merge-init.c:72
+msgid "Text: Tab Separated Values (TSV)"
+msgstr "Texto: valores separados por tabulação (TSV)"
 
-#: src/xml-label.c:969 libglabels/xml-template.c:535
-msgid "Problem saving xml file."
-msgstr "Problema salvando arquivo xml."
+#: ../src/merge-init.c:79
+msgid "Text: Tab Separated Values (TSV) with keys on line 1"
+msgstr "Texto: valores separados por tabulação (TSV) com as chaves na linha 1"
 
-#. This should always be an id, but just in case a name
-#. slips by!
-#: src/xml-label-191.c:680 libglabels/xml-template.c:192
-#, c-format
-msgid "Unknown page size id \"%s\", trying as name"
-msgstr ""
+#: ../src/merge-init.c:87
+msgid "Text: Colon separated values"
+msgstr "Texto: valores separados por dois pontos"
 
-#: src/xml-label-191.c:690 libglabels/xml-template.c:202
-#, c-format
-msgid "Unknown page size id or name \"%s\""
-msgstr ""
+#: ../src/merge-init.c:94
+msgid "Text: Colon separated values with keys on line 1"
+msgstr "Texto: valores separados por dois pontos com as chaves na linha 1"
 
-#: src/merge.c:172 src/merge.c:213 src/merge.c:399 src/merge.c:402
-msgid "None"
-msgstr "Nenhum"
+#: ../src/merge-init.c:102
+msgid "Text: Semicolon separated values"
+msgstr "Texto: valores separados por ponto e vírgula"
 
-#: src/merge-init.c:53
-msgid "Text file with comma delimeters (CSV)"
-msgstr "Arquivo texto separado com vírgulas (CSV)"
+#: ../src/merge-init.c:109
+msgid "Text: Semicolon separated values with keys on line 1"
+msgstr "Texto: valores separados por ponto e vírgula com as chaves na linha 1"
 
-#: src/merge-init.c:60
-msgid "Text file with colon delimeters"
-msgstr "Arquivo texto separado com dois pontos"
+#: ../src/merge-init.c:119
+msgid "Evolution Addressbook"
+msgstr "Livro de endereços do Evolution"
 
-#: src/merge-init.c:67
-msgid "Text file with tab delimeters"
-msgstr "Arquivo texto separado com tab"
+#: ../src/merge-init.c:125
+msgid "VCards"
+msgstr "VCards"
 
-#: src/wdgt-image-select.c:201 data/glade/object-editor.glade.h:11
-msgid "File:"
-msgstr "Arquivo:"
+#: ../src/merge-properties-dialog.c:279
+msgid "Merge Properties"
+msgstr "Propriedades da mesclagem"
 
-#: src/wdgt-image-select.c:245 data/glade/object-editor.glade.h:16
-msgid "Key:"
-msgstr "Chave:"
+#: ../src/merge-properties-dialog.c:305 ../src/merge-properties-dialog.c:421
+msgid "Select merge-database source"
+msgstr "Selecione a fonte da base de dados da mesclagem"
 
-#: src/wdgt-print-copies.c:179
-msgid "Sheets:"
-msgstr "Páginas:"
+#: ../src/merge-properties-dialog.c:316 ../src/merge-properties-dialog.c:447
+msgid "N/A"
+msgstr "N/D"
 
-#: src/wdgt-print-copies.c:197
-msgid "Labels"
-msgstr "Etiquetas"
+#: ../src/merge-properties-dialog.c:342
+msgid "Select"
+msgstr "Selecionar"
 
-#: src/wdgt-print-copies.c:200
-msgid "from:"
-msgstr "de:"
+#: ../src/merge-properties-dialog.c:349
+msgid "Record/Field"
+msgstr "Registro/Campo"
 
-#: src/wdgt-print-copies.c:207
-msgid "to:"
-msgstr "até:"
+#: ../src/merge-properties-dialog.c:357 ../data/ui/object-editor.ui.h:9
+msgid "Data"
+msgstr "Dado"
 
-#: src/wdgt-print-merge.c:178
-msgid "Start on label"
-msgstr "Iniciar na etiqueta"
+#. Translators: "Fixed" here means that for the given document-merge method, there are
+#. * no further choices to further define the source of data.  E.g. if you select the
+#. * evolution-data-server, there are no further choices -- the source is "Fixed."
+#.
+#: ../src/merge-properties-dialog.c:440
+msgid "Fixed"
+msgstr "Fixo"
+
+#. Translators: "Up" refers to the direction towards the top of a label.
+#: ../src/mini-preview.c:1074
+msgid "Up"
+msgstr "Acima"
+
+#: ../src/new-label-dialog.c:203
+msgid "Select Product"
+msgstr "Selecionar produto"
+
+#: ../src/new-label-dialog.c:215
+msgid "Choose Orientation"
+msgstr "Escolha a orientação"
+
+#: ../src/new-label-dialog.c:229
+msgid "Review"
+msgstr "Rever"
+
+#: ../src/object-editor-bc-page.c:97 ../src/object-editor-shadow-page.c:93
+#: ../src/object-editor-text-page.c:97 ../src/prefs-dialog.c:336
+#: ../src/ui-property-bar.c:277
+msgid "Default"
+msgstr "Padrão"
 
-#: src/wdgt-print-merge.c:186
-msgid "on 1st sheet"
-msgstr "na primeira folha"
+#: ../src/object-editor.c:158 ../src/object-editor.c:464
+msgid "Object properties"
+msgstr "Propriedades do objeto"
 
-#: src/wdgt-print-merge.c:195
-msgid "Copies:"
-msgstr "Cópias:"
+#: ../src/object-editor.c:307
+msgid "Box object properties"
+msgstr "Propriedades do objeto caixa"
 
-#: src/wdgt-print-merge.c:201
-msgid "Collate"
-msgstr "Ordenar"
+#: ../src/object-editor.c:326
+msgid "Ellipse object properties"
+msgstr "Propriedades do objeto elipse"
 
-#: src/wdgt-media-select.c:269 data/glade/template-designer.glade.h:29
-msgid "Description:"
-msgstr "Descrição:"
+#: ../src/object-editor.c:345
+msgid "Line object properties"
+msgstr "Propriedades do objeto linha"
 
-#: src/wdgt-media-select.c:279 data/glade/template-designer.glade.h:53
-msgid "Page size:"
-msgstr "Tamanho da página:"
+#: ../src/object-editor.c:362
+msgid "Image object properties"
+msgstr "Propriedades do objeto imagem"
 
-#: src/wdgt-media-select.c:290
-msgid "Label size:"
-msgstr "Tamanho da etiqueta:"
+#: ../src/object-editor.c:379
+msgid "Text object properties"
+msgstr "Propriedades do objeto texto"
 
-#: src/wdgt-media-select.c:301
-msgid "Layout:"
-msgstr "Disposição:"
+#: ../src/object-editor.c:401
+msgid "Barcode object properties"
+msgstr "Propriedades do objeto código de barras"
 
-#: src/wdgt-media-select.c:578
-#, c-format
-msgid "%d x %d  (%d per sheet)"
-msgstr "%d x %d  (%d por página)"
+#: ../src/object-editor-edit-page.c:76
+msgid "Insert merge field"
+msgstr "Inserir campo de mesclagem"
 
-#: src/wdgt-media-select.c:582
-#, c-format
-msgid "%d per sheet"
-msgstr "%d por página"
+#: ../src/object-editor-fill-page.c:79 ../src/prefs-dialog.c:342
+#: ../src/ui-property-bar.c:287
+msgid "No Fill"
+msgstr "Sem preenchimento"
 
-#: src/wdgt-media-select.c:614
-#, c-format
-msgid "%s x %s %s"
-msgstr "%s x %s %s"
+#: ../src/object-editor-image-page.c:278
+msgid "All Files"
+msgstr "Todos os arquivos"
 
-#: src/wdgt-media-select.c:619
-#, c-format
-msgid "%.5g x %.5g %s"
-msgstr "%.5g x %.5g %s"
+#: ../src/object-editor-image-page.c:283
+msgid "All Images"
+msgstr "Todas as imagens"
 
-#: src/wdgt-media-select.c:630 src/wdgt-media-select.c:644
+#: ../src/object-editor-image-page.c:298
 #, c-format
-msgid "%s %s diameter"
-msgstr "%s %s diâmetro"
+msgid "%s (*.%s)"
+msgstr "%s (*.%s)"
 
-#: src/wdgt-media-select.c:634 src/wdgt-media-select.c:648
-#, c-format
-msgid "%.5g %s diameter"
-msgstr "%.5g %s diâmetro"
+#: ../src/object-editor-line-page.c:79 ../src/prefs-dialog.c:339
+#: ../src/ui-property-bar.c:297
+msgid "No Line"
+msgstr "Sem linha"
 
-#: src/wdgt-rotate-label.c:193
-msgid "Rotate"
-msgstr "Girar"
+#: ../src/prefs-dialog.c:169 ../data/ui/prefs-dialog.ui.h:21
+msgid "gLabels Preferences"
+msgstr "Preferências do gLabels"
 
-#. This is the default custom color
-#: src/mygal/color-palette.c:396
-#, fuzzy
-msgid "custom"
-msgstr "Personalizar"
+#. ===================================================================
+#: ../src/print-op.c:205 ../src/print-op-dialog.c:217
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:4
+#: ../templates/misc-iso-templates.xml.h:34
+msgid "Labels"
+msgstr "Etiquetas"
 
-#. "Custom" color - we'll pop up a GnomeColorPicker
-#: src/mygal/color-palette.c:438
-#, fuzzy
-msgid "Custom Color:"
-msgstr "Personaliza barras de ferramentas"
+#: ../src/template-designer.c:404
+msgid "New gLabels Template"
+msgstr "Novo modelo do gLabels"
 
-#: src/mygal/color-palette.c:446
-msgid "Choose Custom Color"
-msgstr ""
+#: ../src/template-designer.c:461
+msgid "Welcome"
+msgstr "Bem-vindo"
 
-#: src/mygal/color-palette.c:579
-msgid "black"
-msgstr ""
+#: ../src/template-designer.c:500
+msgid "Name and Description"
+msgstr "Nome e descrição"
 
-#: src/mygal/color-palette.c:580
-msgid "light brown"
-msgstr ""
+#: ../src/template-designer.c:548
+msgid "Page Size"
+msgstr "Tamanho da página"
 
-#: src/mygal/color-palette.c:581
-msgid "brown gold"
-msgstr ""
+#: ../src/template-designer.c:614
+msgid "Label or Card Shape"
+msgstr "Formato da etiqueta ou cartão"
 
-#: src/mygal/color-palette.c:582
-msgid "dark green #2"
-msgstr ""
+#: ../src/template-designer.c:661
+msgid "Label or Card Size"
+msgstr "Tamanho da etiqueta ou cartão"
 
-#: src/mygal/color-palette.c:583
-msgid "navy"
-msgstr ""
+#: ../src/template-designer.c:760
+msgid "Label Size (round)"
+msgstr "Tamanho da etiqueta (arredondado)"
 
-#: src/mygal/color-palette.c:584 src/mygal/color-palette.c:640
-msgid "dark blue"
-msgstr ""
+#: ../src/template-designer.c:841
+msgid "Label Size (CD/DVD)"
+msgstr "Tamanho da etiqueta (CD/DVD)"
 
-#: src/mygal/color-palette.c:585
-msgid "purple #2"
-msgstr ""
+#: ../src/template-designer.c:932
+msgid "Number of Layouts"
+msgstr "Número de disposições"
 
-#: src/mygal/color-palette.c:586
-msgid "very dark gray"
-msgstr ""
+#: ../src/template-designer.c:1000
+msgid "Layout(s)"
+msgstr "Disposiç(ão/ões)"
 
-#: src/mygal/color-palette.c:589 src/mygal/color-palette.c:645
-msgid "dark red"
-msgstr ""
+#: ../src/template-designer.c:1105
+msgid "Design Completed"
+msgstr "Disposição completa"
 
-#: src/mygal/color-palette.c:590
-msgid "red-orange"
-msgstr ""
+#: ../src/template-designer.c:1133
+msgid "Edit gLabels Template"
+msgstr "Editar modelo do gLabels"
 
-#: src/mygal/color-palette.c:591
-msgid "gold"
-msgstr ""
+#: ../src/template-designer.c:1423
+msgid "Brand and part# match an existing template!"
+msgstr "Marca e parte# conferem com um modelo existente!"
 
-#: src/mygal/color-palette.c:592
-msgid "dark green"
-msgstr ""
+#. Menu entries.
+#: ../src/ui.c:92
+msgid "_File"
+msgstr "_Arquivo"
 
-#: src/mygal/color-palette.c:593 src/mygal/color-palette.c:646
-msgid "dull blue"
-msgstr ""
+#: ../src/ui.c:93
+msgid "Open Recent _Files"
+msgstr "Abrir _arquivos recentes"
 
-#: src/mygal/color-palette.c:594 src/mygal/color-palette.c:647
-msgid "blue"
-msgstr ""
+#: ../src/ui.c:94
+msgid "_Edit"
+msgstr "_Editar"
 
-#: src/mygal/color-palette.c:595
-msgid "dull purple"
-msgstr ""
+#: ../src/ui.c:95
+msgid "_View"
+msgstr "_Visualizar"
 
-#: src/mygal/color-palette.c:596
-msgid "dark grey"
-msgstr ""
+#: ../src/ui.c:96
+msgid "Customize Main Toolbar"
+msgstr "Personaliza a barra de ferramentas principal"
 
-#: src/mygal/color-palette.c:599
-msgid "red"
-msgstr ""
+#: ../src/ui.c:97
+msgid "Customize Drawing Toolbar"
+msgstr "Personaliza a barra de ferramentas de desenho"
 
-#: src/mygal/color-palette.c:600
-msgid "orange"
-msgstr ""
+#: ../src/ui.c:98
+msgid "Customize Properties Toolbar"
+msgstr "Personaliza a barra de ferramentas de propriedades"
 
-#: src/mygal/color-palette.c:601
-msgid "lime"
-msgstr ""
+#: ../src/ui.c:99
+msgid "_Objects"
+msgstr "_Objetos"
 
-#: src/mygal/color-palette.c:602
-msgid "dull green"
-msgstr ""
+#: ../src/ui.c:100
+msgid "_Create"
+msgstr "_Criar"
 
-#: src/mygal/color-palette.c:603
-msgid "dull blue #2"
-msgstr ""
+#: ../src/ui.c:101
+msgid "_Order"
+msgstr "_Ordenar"
 
-#: src/mygal/color-palette.c:604
-msgid "sky blue #2"
-msgstr ""
+#: ../src/ui.c:102
+msgid "_Rotate/Flip"
+msgstr "_Girar/Refletir"
 
-#: src/mygal/color-palette.c:605 src/mygal/color-palette.c:644
-msgid "purple"
-msgstr ""
+#: ../src/ui.c:103
+msgid "Align _Horizontal"
+msgstr "Alinhar _horizontalmente"
 
-#: src/mygal/color-palette.c:606
-msgid "gray"
-msgstr ""
+#: ../src/ui.c:104
+msgid "Align _Vertical"
+msgstr "Alinhar _verticalmente"
 
-#: src/mygal/color-palette.c:609 src/mygal/color-palette.c:641
-#, fuzzy
-msgid "magenta"
-msgstr "Imagem"
+#: ../src/ui.c:105
+msgid "_Help"
+msgstr "Aj_uda"
 
-#: src/mygal/color-palette.c:610
-msgid "bright orange"
-msgstr ""
+#. Popup entries.
+#: ../src/ui.c:108 ../src/ui.c:109
+msgid "Context Menu"
+msgstr "Menu de contexto"
 
-#: src/mygal/color-palette.c:611 src/mygal/color-palette.c:642
-msgid "yellow"
-msgstr ""
+#: ../src/ui.c:114
+msgid "_New"
+msgstr "_Novo"
 
-#: src/mygal/color-palette.c:612
-#, fuzzy
-msgid "green"
-msgstr "graus"
+#: ../src/ui.c:116
+msgid "Create a new file"
+msgstr "Cria um novo arquivo"
 
-#: src/mygal/color-palette.c:613 src/mygal/color-palette.c:643
-msgid "cyan"
-msgstr ""
+#: ../src/ui.c:121
+msgid "_Open..."
+msgstr "_Abrir..."
 
-#: src/mygal/color-palette.c:614
-msgid "bright blue"
-msgstr ""
+#: ../src/ui.c:123
+msgid "Open a file"
+msgstr "Abre um arquivo"
 
-#: src/mygal/color-palette.c:615 src/mygal/color-palette.c:632
-msgid "red purple"
-msgstr ""
+#: ../src/ui.c:128
+msgid "_Save"
+msgstr "_Salvar"
 
-#: src/mygal/color-palette.c:616
-msgid "light grey"
-msgstr ""
+#: ../src/ui.c:130
+msgid "Save current file"
+msgstr "Salva o arquivo atual"
 
-#: src/mygal/color-palette.c:619 src/mygal/color-palette.c:636
-msgid "pink"
-msgstr ""
+#: ../src/ui.c:135
+msgid "Save _As..."
+msgstr "Salvar _como..."
 
-#: src/mygal/color-palette.c:620
-msgid "light orange"
-msgstr ""
+#: ../src/ui.c:137
+msgid "Save the current file to a different name"
+msgstr "Salva o arquivo atual com um nome diferente"
 
-#: src/mygal/color-palette.c:621 src/mygal/color-palette.c:633
-msgid "light yellow"
-msgstr ""
+#: ../src/ui.c:142
+msgid "_Print..."
+msgstr "Im_primir..."
 
-#: src/mygal/color-palette.c:622
-msgid "light green"
-msgstr ""
-
-#: src/mygal/color-palette.c:623
-msgid "light cyan"
-msgstr ""
-
-#: src/mygal/color-palette.c:624 src/mygal/color-palette.c:634
-msgid "light blue"
-msgstr ""
-
-#: src/mygal/color-palette.c:625 src/mygal/color-palette.c:638
-msgid "light purple"
-msgstr ""
-
-#: src/mygal/color-palette.c:626
-msgid "white"
-msgstr ""
-
-#: src/mygal/color-palette.c:631
-msgid "purplish blue"
-msgstr ""
+#: ../src/ui.c:144
+msgid "Print the current file"
+msgstr "Imprime o arquivo atual"
 
-#: src/mygal/color-palette.c:635
-msgid "dark purple"
-msgstr ""
+#: ../src/ui.c:149
+msgid "Properties..."
+msgstr "Propriedades..."
 
-#: src/mygal/color-palette.c:637
-msgid "sky blue"
-msgstr ""
+#: ../src/ui.c:151
+msgid "Modify document properties"
+msgstr "Modifica as propriedades do documento"
 
-#: libglabels/template.c:848
-#, c-format
-msgid "Generic %s full page"
-msgstr "Página completa %s genérico"
+#: ../src/ui.c:156
+msgid "Template _Designer..."
+msgstr "Criador de mo_delos..."
 
-#: libglabels/template.c:897
-msgid "No template files found!"
-msgstr "Nenhum arquivo modelo encontrado!"
+#: ../src/ui.c:158
+msgid "Create a custom template"
+msgstr "Cria um modelo personalizado"
 
-#. Create and append an "Other" entry.
-#: libglabels/paper.c:67
-msgid "Other"
-msgstr ""
+#: ../src/ui.c:163
+msgid "_Close"
+msgstr "_Fechar"
 
-#: libglabels/paper.c:361
-#, fuzzy
-msgid "No paper files found!"
-msgstr "Nenhum arquivo modelo encontrado!"
+#: ../src/ui.c:165
+msgid "Close the current file"
+msgstr "Fecha o arquivo atual"
 
-#: data/ui/glabels-ui.xml.h:1
-msgid "About glabels"
-msgstr "Sobre glabels"
+#: ../src/ui.c:170
+msgid "_Quit"
+msgstr "_Sair"
 
-#: data/ui/glabels-ui.xml.h:2
-msgid "About..."
-msgstr "Sobre..."
+#: ../src/ui.c:172
+msgid "Quit the program"
+msgstr "Sai do programa"
 
-#: data/ui/glabels-ui.xml.h:3
-msgid "Align _Horizontal"
-msgstr "Alinhar _Horizontal"
+#: ../src/ui.c:179 ../src/ui.c:181 ../src/ui.c:966
+msgid "Undo"
+msgstr "Desfazer"
 
-#: data/ui/glabels-ui.xml.h:4
-msgid "Align _Vertical"
-msgstr "Alinhar _Vertical"
+#: ../src/ui.c:186 ../src/ui.c:188 ../src/ui.c:973
+msgid "Redo"
+msgstr "Refazer"
 
-#: data/ui/glabels-ui.xml.h:5
-msgid "Align objects to bottoms"
-msgstr "Alinha objetos pelas bases"
+#: ../src/ui.c:193
+msgid "Cut"
+msgstr "Cortar"
 
-#: data/ui/glabels-ui.xml.h:6
-msgid "Align objects to horizontal centers"
-msgstr "Alinha objetos pelos centros horizontais"
+#: ../src/ui.c:195
+msgid "Cut the selection"
+msgstr "Corta a seleção"
 
-#: data/ui/glabels-ui.xml.h:7
-msgid "Align objects to left edges"
-msgstr "Alinha objetos pelas bordas esquerdas"
+#: ../src/ui.c:200
+msgid "Copy"
+msgstr "Copiar"
 
-#: data/ui/glabels-ui.xml.h:8
-msgid "Align objects to right edges"
-msgstr "Alinha objetos pelas bordas direitas"
+#: ../src/ui.c:202
+msgid "Copy the selection"
+msgstr "Copia a seleção"
 
-#: data/ui/glabels-ui.xml.h:9
-msgid "Align objects to tops"
-msgstr "Alinha objetos pelos topos"
+#: ../src/ui.c:209
+msgid "Paste the clipboard"
+msgstr "Cola a área de transferência"
 
-#: data/ui/glabels-ui.xml.h:10
-msgid "Align objects to vertical centers"
-msgstr "Alinha objetos pelos centros verticais"
+#: ../src/ui.c:216
+msgid "Delete the selected objects"
+msgstr "Apaga os objetos selecionados"
 
-#: data/ui/glabels-ui.xml.h:12
-msgid "Bold"
-msgstr ""
+#: ../src/ui.c:221
+msgid "Select All"
+msgstr "Selecionar tudo"
 
-#: data/ui/glabels-ui.xml.h:14
-#, fuzzy
-msgid "Center align"
-msgstr "Centros"
+#: ../src/ui.c:223
+msgid "Select all objects"
+msgstr "Seleciona todos os objetos"
 
-#: data/ui/glabels-ui.xml.h:15
-msgid "Center objects to horizontal label center"
-msgstr "Centra objetos no centro horizontal da etiqueta"
+#: ../src/ui.c:228
+msgid "Un-select All"
+msgstr "Desmarcar tudo"
 
-#: data/ui/glabels-ui.xml.h:16
-msgid "Center objects to vertical label center"
-msgstr "Centra objetos no centro vertical da etiqueta"
+#: ../src/ui.c:230
+msgid "Remove all selections"
+msgstr "Remover todas as seleções"
 
-#: data/ui/glabels-ui.xml.h:17
-msgid "Change the visibility of markup lines in the current window"
-msgstr "Muda a visibilidade das linhas de marcação na janela atual"
+#: ../src/ui.c:235
+msgid "Preferences"
+msgstr "Preferências"
 
-#: data/ui/glabels-ui.xml.h:18
-msgid "Change the visibility of the drawing toolbar in the current window"
-msgstr "Muda a visibilidade da barra de ferramentas de desenho na janela atual"
+#: ../src/ui.c:237
+msgid "Configure the application"
+msgstr "Configurar o aplicativo"
 
-#: data/ui/glabels-ui.xml.h:19
-msgid "Change the visibility of the grid in the current window"
-msgstr "Muda a visibilidade da grade na janela atual"
+#: ../src/ui.c:244
+msgid "Zoom in"
+msgstr "Mais zoom"
 
-#: data/ui/glabels-ui.xml.h:20
-msgid "Change the visibility of the main toolbar in the current window"
-msgstr "Muda a visibilidade da barra de ferramentas principal na janela atual"
+#: ../src/ui.c:246
+msgid "Increase magnification"
+msgstr "Aumentar ampliação"
 
-#: data/ui/glabels-ui.xml.h:21
-#, fuzzy
-msgid "Change the visibility of the property toolbar in the current window"
-msgstr "Muda a visibilidade da barra de ferramentas principal na janela atual"
+#: ../src/ui.c:251
+msgid "Zoom out"
+msgstr "Menos zoom"
 
-#: data/ui/glabels-ui.xml.h:22
-msgid "Close"
-msgstr "Fechar"
+#: ../src/ui.c:253
+msgid "Decrease magnification"
+msgstr "Diminuir ampliação"
 
-#: data/ui/glabels-ui.xml.h:23
-msgid "Close the current file"
-msgstr "Fechar o arquivo atual"
+#: ../src/ui.c:258
+msgid "Zoom 1 to 1"
+msgstr "Zoom 1 para 1"
 
-#: data/ui/glabels-ui.xml.h:24
-msgid "Configure the application"
-msgstr "Configurar a aplicação"
+#: ../src/ui.c:260
+msgid "Restore scale to 100%"
+msgstr "Restaurar escala para 100%"
 
-#: data/ui/glabels-ui.xml.h:25
-msgid "Contents"
-msgstr "Conteúdo"
+#: ../src/ui.c:265
+msgid "Zoom to fit"
+msgstr "Zoom para caber"
 
-#: data/ui/glabels-ui.xml.h:26
-msgid "Copy"
-msgstr "Copiar"
+#: ../src/ui.c:267
+msgid "Set scale to fit window"
+msgstr "Definir a escala para caber na janela"
 
-#: data/ui/glabels-ui.xml.h:27
-msgid "Copy the selection"
-msgstr "Copia a seleção"
+#: ../src/ui.c:274
+msgid "Select Mode"
+msgstr "Selecionar modo"
 
-#: data/ui/glabels-ui.xml.h:28
-#, fuzzy
-msgid "Create a custom template"
-msgstr "Cria um novo documento"
+#: ../src/ui.c:276
+msgid "Select, move and modify objects"
+msgstr "Seleciona, movimenta e modifica objetos"
 
-#: data/ui/glabels-ui.xml.h:29
-msgid "Create a new document"
-msgstr "Cria um novo documento"
+#: ../src/ui.c:281 ../src/view-text.c:102 ../data/ui/object-editor.ui.h:29
+#: ../data/ui/prefs-dialog.ui.h:17
+msgid "Text"
+msgstr "Texto"
 
-#: data/ui/glabels-ui.xml.h:30
-msgid "Create barcode object"
-msgstr "Criar objeto código de barras"
+#: ../src/ui.c:288
+msgid "Box"
+msgstr "Caixa"
 
-#: data/ui/glabels-ui.xml.h:31
+#: ../src/ui.c:290
 msgid "Create box/rectangle object"
 msgstr "Criar objeto caixa/retângulo"
 
-#: data/ui/glabels-ui.xml.h:32
+#: ../src/ui.c:295 ../data/ui/object-editor.ui.h:18
+#: ../data/ui/prefs-dialog.ui.h:9
+msgid "Line"
+msgstr "Linha"
+
+#: ../src/ui.c:302
+msgid "Ellipse"
+msgstr "Elipse"
+
+#: ../src/ui.c:304
 msgid "Create ellipse/circle object"
 msgstr "Criar objeto elipse/círculo"
 
-#: data/ui/glabels-ui.xml.h:33
-msgid "Create image object"
-msgstr "Criar objeto imagem"
-
-#: data/ui/glabels-ui.xml.h:34
-msgid "Create line object"
-msgstr "Criar objeto linha"
+#: ../src/ui.c:309 ../data/ui/object-editor.ui.h:15
+msgid "Image"
+msgstr "Imagem"
 
-#: data/ui/glabels-ui.xml.h:35
-msgid "Create text object"
-msgstr "Criar objeto texto"
+#: ../src/ui.c:316
+msgid "Barcode"
+msgstr "Código de barras"
 
-#: data/ui/glabels-ui.xml.h:36
-msgid "Cu_t"
-msgstr "Cor_tar"
+#: ../src/ui.c:325
+msgid "Raise object to top"
+msgstr "Elevar objeto ao topo"
 
-#: data/ui/glabels-ui.xml.h:37
-msgid "Customize"
-msgstr "Personalizar"
+#: ../src/ui.c:332
+msgid "Lower object to bottom"
+msgstr "Rebaixar objeto à base"
 
-#: data/ui/glabels-ui.xml.h:38
-msgid "Customize Drawing Toolbar"
-msgstr "Personaliza barra de ferramentas de desenho"
+#: ../src/ui.c:339
+msgid "Rotate object 90 degrees counter-clockwise"
+msgstr "Gira objeto 90 graus no sentido anti-horário"
 
-#: data/ui/glabels-ui.xml.h:39
-msgid "Customize Main Toolbar"
-msgstr "Personaliza barra de ferramentas principal"
+#: ../src/ui.c:346
+msgid "Rotate object 90 degrees clockwise"
+msgstr "Gira objeto 90 graus no sentido horário"
 
-#: data/ui/glabels-ui.xml.h:40
-#, fuzzy
-msgid "Customize Property Toolbar"
-msgstr "Personaliza barras de ferramentas"
+#: ../src/ui.c:353
+msgid "Flip object horizontally"
+msgstr "Reflete objeto horizontalmente"
 
-#: data/ui/glabels-ui.xml.h:41
-msgid "Customize toolbars"
-msgstr "Personaliza barras de ferramentas"
+#: ../src/ui.c:360
+msgid "Flip object vertically"
+msgstr "Reflete objeto verticalmente"
 
-#: data/ui/glabels-ui.xml.h:42
-msgid "Cut"
-msgstr "Cortar"
+#: ../src/ui.c:367
+msgid "Align objects to left edges"
+msgstr "Alinha objetos pelas bordas esquerdas"
 
-#: data/ui/glabels-ui.xml.h:43
-msgid "Cut the selection"
-msgstr "Corta a seleção"
+#: ../src/ui.c:374
+msgid "Align objects to right edges"
+msgstr "Alinha objetos pelas bordas direitas"
 
-#: data/ui/glabels-ui.xml.h:44
-msgid "Decrease magnification"
-msgstr "Diminuir aumento"
+#: ../src/ui.c:381
+msgid "Align objects to horizontal centers"
+msgstr "Alinha objetos pelos centros horizontais"
 
-#: data/ui/glabels-ui.xml.h:45
-msgid "Delete"
-msgstr "Apagar"
+#: ../src/ui.c:388
+msgid "Align objects to top edges"
+msgstr "Alinha objetos pelas bordas superiores"
 
-#: data/ui/glabels-ui.xml.h:46
-msgid "Delete the selected objects"
-msgstr "Apaga os objetos selecionados"
+#: ../src/ui.c:395
+msgid "Align objects to bottom edges"
+msgstr "Alinha objetos pelas bordas inferiores"
 
-#: data/ui/glabels-ui.xml.h:47
-msgid "Drawing toolbar"
-msgstr "Barra de ferramentas de desenho"
+#: ../src/ui.c:402
+msgid "Align objects to vertical centers"
+msgstr "Alinha objetos pelos centros verticais"
 
-#: data/ui/glabels-ui.xml.h:48
-msgid "Dump XML"
-msgstr "Descarregar XML"
+#: ../src/ui.c:409
+msgid "Center objects to horizontal label center"
+msgstr "Centra objetos no centro horizontal da etiqueta"
 
-#: data/ui/glabels-ui.xml.h:49
-msgid "Dump the UI Xml description"
-msgstr "Descarrega a descrição da UI Xml"
+#: ../src/ui.c:416
+msgid "Center objects to vertical label center"
+msgstr "Centra objetos no centro vertical da etiqueta"
 
-#: data/ui/glabels-ui.xml.h:50
+#: ../src/ui.c:423
 msgid "Edit merge properties"
-msgstr "Editar propriedades de fusão"
-
-#: data/ui/glabels-ui.xml.h:54
-msgid "Flip object horizontally"
-msgstr "Reflete objeto horizontalmente"
-
-#: data/ui/glabels-ui.xml.h:55
-msgid "Flip object vertically"
-msgstr "Reflete objeto verticalmente"
+msgstr "Editar propriedades de mesclagem"
 
-#: data/ui/glabels-ui.xml.h:56
-#, fuzzy
-msgid "Font name"
-msgstr "Não salve"
+#: ../src/ui.c:430
+msgid "Contents"
+msgstr "Conteúdo"
 
-#: data/ui/glabels-ui.xml.h:57
-#, fuzzy
-msgid "Font selector"
-msgstr "Copia a seleção"
+#: ../src/ui.c:432
+msgid "Open glabels manual"
+msgstr "Abre o manual do glabels"
 
-#: data/ui/glabels-ui.xml.h:58
-#, fuzzy
-msgid "Font size"
-msgstr "Não salve"
+#: ../src/ui.c:437
+msgid "About..."
+msgstr "Sobre..."
 
-#: data/ui/glabels-ui.xml.h:59
-msgid "Icon and _Text"
-msgstr "Ícone e _Texto"
+#: ../src/ui.c:439 ../src/ui-commands.c:1198
+msgid "About glabels"
+msgstr "Sobre o glabels"
 
-#: data/ui/glabels-ui.xml.h:60
-msgid "Increase magnification"
-msgstr "Aumentar aumento"
+#: ../src/ui.c:449
+msgid "Property toolbar"
+msgstr "Caixa de ferramentas de propriedades"
 
-#: data/ui/glabels-ui.xml.h:61
-msgid "Italic"
+#: ../src/ui.c:451
+msgid "Change the visibility of the property toolbar in the current window"
 msgstr ""
+"Muda a visibilidade da barra de ferramentas de propriedades na janela atual"
 
-#: data/ui/glabels-ui.xml.h:63
-msgid "Left align"
-msgstr ""
+#: ../src/ui.c:457
+msgid "Grid"
+msgstr "Grade"
 
-#: data/ui/glabels-ui.xml.h:65
-msgid "Line width"
-msgstr ""
+#: ../src/ui.c:459
+msgid "Change the visibility of the grid in the current window"
+msgstr "Muda a visibilidade da grade na janela atual"
 
-#: data/ui/glabels-ui.xml.h:66
-msgid "Lower object to bottom"
-msgstr "Abaixa objeto à base"
+#: ../src/ui.c:465
+msgid "Markup"
+msgstr "Marcação"
 
-#: data/ui/glabels-ui.xml.h:67
-msgid "M_arkup"
-msgstr "M_arcação"
+#: ../src/ui.c:467
+msgid "Change the visibility of markup lines in the current window"
+msgstr "Muda a visibilidade das linhas de marcação na janela atual"
 
-#: data/ui/glabels-ui.xml.h:68
+#: ../src/ui.c:478
 msgid "Main toolbar"
 msgstr "Barra de ferramentas principal"
 
-#: data/ui/glabels-ui.xml.h:69
-msgid "Markup"
-msgstr "Marcação"
-
-#: data/ui/glabels-ui.xml.h:70
-#, fuzzy
-msgid "Modify document properties"
-msgstr "Editar propriedades de fusão do documento"
+#: ../src/ui.c:480
+msgid "Change the visibility of the main toolbar in the current window"
+msgstr "Muda a visibilidade da barra de ferramentas principal na janela atual"
 
-#: data/ui/glabels-ui.xml.h:71
-msgid "New"
-msgstr "Novo"
+#: ../src/ui.c:486
+msgid "Drawing toolbar"
+msgstr "Barra de ferramentas de desenho"
 
-#: data/ui/glabels-ui.xml.h:72
-#, fuzzy
-msgid "Object property editor"
-msgstr "_Propriedades de Objeto"
+#: ../src/ui.c:488
+msgid "Change the visibility of the drawing toolbar in the current window"
+msgstr "Muda a visibilidade da barra de ferramentas de desenho na janela atual"
 
-#: data/ui/glabels-ui.xml.h:73
-msgid "Only show icons in the drawing toolbar"
-msgstr "Exibe somente ícones na barra de ferramentas de desenho"
+#: ../src/ui-commands.c:1135
+msgid "Glabels includes contributions from:"
+msgstr "O Glabels inclui contribuições de:"
 
-#: data/ui/glabels-ui.xml.h:74
-msgid "Only show icons in the main toolbar"
-msgstr "Exibe somente ícones na barra de ferramentas principal"
+#: ../src/ui-commands.c:1144
+msgid "See the file AUTHORS for additional credits,"
+msgstr "Veja o arquivo AUTHORS para ver créditos adicionais,"
 
-#: data/ui/glabels-ui.xml.h:76
-msgid "Open a file"
-msgstr "Abrir um arquivo"
+#: ../src/ui-commands.c:1145
+msgid "or visit http://glabels.org/"
+msgstr "ou visite http://glabels.org/"
 
-#: data/ui/glabels-ui.xml.h:77
-msgid "Open the glabels manual"
-msgstr "Abre o manual do glabels"
+#: ../src/ui-commands.c:1162
+msgid "A label and business card creation program.\n"
+msgstr "Um programa para a criação de etiquetas e cartões de visita.\n"
 
-#: data/ui/glabels-ui.xml.h:78
-msgid "Paste"
-msgstr "Colar"
+#: ../src/ui-commands.c:1166
+msgid "translator-credits"
+msgstr ""
+"Paulo R. Ormenese <pormenese@uol.com.br>\n"
+"Michel Recondo <michel@recondo.com.br>\n"
+"Henrique P. Machado <hpmachado@gnome.org>\n"
+"Antonio Fernandes C. Neto <fernandes@pelivre.org>"
 
-#: data/ui/glabels-ui.xml.h:79
-msgid "Paste the clipboard"
-msgstr "Cola a área de transferência"
+#: ../src/ui-commands.c:1169
+msgid ""
+"gLabels is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"gLabels is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"gLabels é software livre; você pode redistribuí-lo e/ou modificá-lo sob os\n"
+"termos da Licença Pública Geral GNU conforme publicada pela Free Software\n"
+"Foundation; ou a versão 3 da Licença, ou (sob sua opção) qualquer versão\n"
+"posterior.\n"
+"\n"
+"Este programa é distribuído na esperança de que seja útil, mas SEM QUALQUER\n"
+"GARANTIA; nem mesmo as garantias implícitas de COMERCIALIZAÇÃO ou AJUSTES A\n"
+"UM PROPÓSITO PARTICULAR. Veja a Licença Pública Geral GNU para mais\n"
+"detalhes.\n"
 
-#: data/ui/glabels-ui.xml.h:80
-msgid "Pr_eferences..."
-msgstr "Pr_eferências..."
+#: ../src/warning-handler.c:69
+msgid "gLabels Error!"
+msgstr "Erro do gLabels!"
 
-#: data/ui/glabels-ui.xml.h:81
-msgid "Preferences"
-msgstr "Preferências"
+#: ../src/window.c:284
+msgid "(none) - gLabels"
+msgstr "(sem nome) - gLabels"
 
-#: data/ui/glabels-ui.xml.h:83
-msgid "Print the current file"
-msgstr "Imprime o arquivo atual"
+#: ../src/window.c:485
+msgid "(modified)"
+msgstr "(modificado)"
 
-#: data/ui/glabels-ui.xml.h:84
-#, fuzzy
-msgid "Proper_ties..."
-msgstr "Propriedades"
+#: ../src/xml-label-04.c:76 ../src/xml-label.c:334
+#, c-format
+msgid "Bad root node = \"%s\""
+msgstr "Nó raiz ruim = \"%s\""
 
-#: data/ui/glabels-ui.xml.h:85
-msgid "Properties"
-msgstr "Propriedades"
+#: ../src/xml-label-04.c:124 ../src/xml-label.c:417
+#, c-format
+msgid "bad node =  \"%s\""
+msgstr "nó ruim = \"%s\""
 
-#: data/ui/glabels-ui.xml.h:86
-msgid "Property toolbar"
-msgstr ""
+#: ../src/xml-label.c:200 ../src/xml-label.c:238
+msgid "xmlParseFile error"
+msgstr "erro: xmlParseFile"
 
-#: data/ui/glabels-ui.xml.h:87
-msgid "Quit"
-msgstr "Sair"
+#: ../src/xml-label.c:275
+msgid "No document root"
+msgstr "Sem raiz do documento"
 
-#: data/ui/glabels-ui.xml.h:88
-msgid "Quit the program"
-msgstr "Sai do programa"
+#: ../src/xml-label.c:283
+msgid "Importing from glabels 0.1 format"
+msgstr "Importando do formato do glabels 0.1"
 
-#: data/ui/glabels-ui.xml.h:89
-msgid "Raise object to top"
-msgstr "Sobe objetos ao topo"
+#: ../src/xml-label.c:292
+msgid "Importing from glabels 0.4 format"
+msgstr "Importando do formato do glabels 0.4"
 
-#: data/ui/glabels-ui.xml.h:90
-msgid "Recent _Files"
-msgstr "_Arquivos recentes"
+#: ../src/xml-label.c:302
+#, c-format
+msgid "Unknown glabels Namespace -- Using %s"
+msgstr "Espaço de nome glabels desconhecido -- usando %s"
 
-#: data/ui/glabels-ui.xml.h:91
-msgid "Redo"
-msgstr "Refazer"
+#: ../src/xml-label.c:371
+#, c-format
+msgid "bad node in Document node =  \"%s\""
+msgstr "Nó ruim no nó Documento =  \"%s\""
 
-#: data/ui/glabels-ui.xml.h:92
-msgid "Redo the undone action"
-msgstr "Refaz a ação desfeita"
+#: ../src/xml-label.c:877
+#, c-format
+msgid "bad node in Data node =  \"%s\""
+msgstr "nó ruim no nó Dados = \"%s\""
 
-#: data/ui/glabels-ui.xml.h:93
-msgid "Remove all selections"
-msgstr "Remover todas as seleções"
+#: ../src/xml-label.c:953
+#, c-format
+msgid "Unknown embedded file format: \"%s\""
+msgstr "Formato de arquivo embutido desconhecido: \"%s\""
 
-#: data/ui/glabels-ui.xml.h:95
-#, no-c-format
-msgid "Restore scale to 100%"
-msgstr "Restaura escala para 100%"
+#: ../src/xml-label.c:1159 ../libglabels/xml-template.c:802
+msgid "Utf8 conversion error."
+msgstr "Erro de conversão UTF-8"
 
-#: data/ui/glabels-ui.xml.h:96
-msgid "Right align"
-msgstr ""
+#: ../src/xml-label.c:1166
+msgid "Problem saving xml file."
+msgstr "Problema ao salvar arquivo xml."
 
-#: data/ui/glabels-ui.xml.h:99
-msgid "Rotate object 90 clockwise"
-msgstr "Gira objeto 90 sentido horário"
+#. Create and append an "Other" entry.
+#. Translators: "Other" here means other page size.  Meaning a page size
+#. * other than the standard ones that libglabels knows about such as
+#. * "letter", "A4", etc.
+#: ../libglabels/db.c:270
+msgid "Other"
+msgstr "Outro"
 
-#: data/ui/glabels-ui.xml.h:100
-msgid "Rotate object 90 counter-clockwise"
-msgstr "Gira objeto 90 sentido anti-horário"
+#. Create and append a "User defined" entry.
+#: ../libglabels/db.c:279
+msgid "User defined"
+msgstr "Definido pelo usuário"
 
-#: data/ui/glabels-ui.xml.h:101
-msgid "Save"
-msgstr "Salvar"
+#: ../libglabels/db.c:665
+msgid ""
+"Unable to locate paper size definitions.  Libglabels may not be installed "
+"correctly!"
+msgstr ""
+"Não é possível localizar as definições de tamanho de papel. A libglabels "
+"pode não estar instalada corretamente!"
 
-#: data/ui/glabels-ui.xml.h:102
-msgid "Save As"
-msgstr "Salvar como"
-
-#: data/ui/glabels-ui.xml.h:103
-msgid "Save _As..."
-msgstr "Salvar _como..."
-
-#: data/ui/glabels-ui.xml.h:104
-msgid "Save the current file"
-msgstr "Salva o arquivo atual"
-
-#: data/ui/glabels-ui.xml.h:105
-msgid "Save the current file with a different name"
-msgstr "Salva o arquivo atual com um nome diferente"
-
-#: data/ui/glabels-ui.xml.h:106
-msgid "Select All"
-msgstr "Selecionar Tudo"
-
-#: data/ui/glabels-ui.xml.h:107
-msgid "Select _All"
-msgstr "Selecionar _Tudo"
-
-#: data/ui/glabels-ui.xml.h:108
-msgid "Select all objects"
-msgstr "Seleciona todos os objetos"
-
-#: data/ui/glabels-ui.xml.h:109
-msgid "Select, move and modify objects"
-msgstr "Seleciona, movimenta e modifica objetos"
-
-#: data/ui/glabels-ui.xml.h:111
-msgid "Set drawing toolbar button style according to desktop default"
-msgstr ""
-"Define estilo de botão da barra de ferramentas de desenho de acordo com "
-"padrão do desktop"
-
-#: data/ui/glabels-ui.xml.h:112
-msgid "Set main toolbar button style according to desktop default"
+#: ../libglabels/db.c:1057
+msgid ""
+"Unable to locate category definitions.  Libglabels may not be installed "
+"correctly!"
 msgstr ""
-"Define estilo de botão da barra de ferramentas principal de acordo com "
-"padrão do desktop"
-
-#: data/ui/glabels-ui.xml.h:113
-msgid "Show _Tooltips"
-msgstr "Exibir _Dicas"
-
-#: data/ui/glabels-ui.xml.h:114
-#, fuzzy
-msgid "Show both icons and texts in the drawing toolbar"
-msgstr "Exibe dicas na barra de ferramentas de desenho"
-
-#: data/ui/glabels-ui.xml.h:115
-#, fuzzy
-msgid "Show both icons and texts in the main toolbar"
-msgstr "Exibe dicas na barra de ferramentas principal"
-
-#: data/ui/glabels-ui.xml.h:116
-msgid "Show tooltips in the drawing toolbar"
-msgstr "Exibe dicas na barra de ferramentas de desenho"
-
-#: data/ui/glabels-ui.xml.h:117
-msgid "Show tooltips in the main toolbar"
-msgstr "Exibe dicas na barra de ferramentas principal"
-
-#: data/ui/glabels-ui.xml.h:118
-#, fuzzy
-msgid "Show tooltips in the property toolbar"
-msgstr "Exibe dicas na barra de ferramentas principal"
+"Não é possível localizar as definições de categorias. A libglabels pode não "
+"estar instalada corretamente!"
 
-#: data/ui/glabels-ui.xml.h:119
-msgid "Template Designer"
+#: ../libglabels/db.c:2097
+msgid ""
+"Unable to locate any template files.  Libglabels may not be installed "
+"correctly!"
 msgstr ""
+"Não é possível localizar nenhum arquivo de modelo. A libglabels pode não "
+"estar instalada corretamente!"
 
-#: data/ui/glabels-ui.xml.h:120
-msgid "Template _Designer..."
-msgstr ""
+#: ../libglabels/db.c:2164
+#, c-format
+msgid "%s full page label"
+msgstr "Etiqueta de página inteira %s"
 
-#: data/ui/glabels-ui.xml.h:121
-msgid "Text color"
+#: ../libglabels/template.c:156
+#, c-format
+msgid "Equivalent part (\"%s\") for \"%s\", not previously defined."
 msgstr ""
+"A parte equivalente (\"%s\") para \"%s\" não foi definida anteriormente."
 
-#: data/ui/glabels-ui.xml.h:122
-msgid "U_n-select All"
-msgstr "D_esmarcar Tudo"
-
-#: data/ui/glabels-ui.xml.h:123
-msgid "Un-select All"
-msgstr "Desmarcar Tudo"
-
-#: data/ui/glabels-ui.xml.h:124
-msgid "Undo"
-msgstr "Desfazer"
-
-#: data/ui/glabels-ui.xml.h:125
-msgid "Undo the last action"
-msgstr "Desfaz a última ação"
-
-#: data/ui/glabels-ui.xml.h:126
-msgid "Zoom _1:1"
-msgstr "Zoom _1:1"
+#.
+#. * Translators: 1st %d = number of labels across a page,
+#. *              2nd %d = number of labels down a page,
+#. *              3rd %d = total number of labels on a page (sheet).
+#.
+#: ../libglabels/template.c:727
+#, c-format
+msgid "%d × %d (%d per sheet)"
+msgstr "%d x %d  (%d por página)"
 
-#: data/ui/glabels-ui.xml.h:127
-msgid "Zoom _In"
-msgstr "M_ais Zoom"
+#. Translators: %d is the total number of labels on a page (sheet).
+#: ../libglabels/template.c:732
+#, c-format
+msgid "%d per sheet"
+msgstr "%d por página"
 
-#: data/ui/glabels-ui.xml.h:128
-msgid "Zoom _Out"
-msgstr "M_enos Zoom"
+#: ../libglabels/template.c:802 ../libglabels/template.c:808
+#: ../libglabels/template.c:818 ../libglabels/template.c:824
+msgid "diameter"
+msgstr "diâmetro"
+
+#. The ids are identical to the absolute length units supported in
+#. the CSS2 Specification (Section 4.3.2)
+#. This table must be sorted exactly as the enumerations in lglUnits
+#. [LGL_UNITS_POINT]
+#: ../libglabels/units.c:65 ../data/ui/object-editor.ui.h:40
+#: ../data/ui/prefs-dialog.ui.h:22
+msgid "points"
+msgstr "pontos"
 
-#: data/ui/glabels-ui.xml.h:129
-#, fuzzy
-msgid "Zoom to _fit"
-msgstr "Zoom para 1:1"
+#. [LGL_UNITS_INCH]
+#: ../libglabels/units.c:66 ../data/ui/object-editor.ui.h:39
+#: ../data/ui/template-designer.ui.h:62
+msgid "inches"
+msgstr "pol."
 
-#: data/ui/glabels-ui.xml.h:130
-msgid "Zoom to fit window"
-msgstr ""
+#. [LGL_UNITS_MM]
+#: ../libglabels/units.c:67
+msgid "mm"
+msgstr "mm"
 
-#: data/ui/glabels-ui.xml.h:131
-msgid "_About..."
-msgstr "_Sobre..."
+#. [LGL_UNITS_CM]
+#: ../libglabels/units.c:68
+msgid "cm"
+msgstr "cm"
 
-#: data/ui/glabels-ui.xml.h:132
-msgid "_Bottoms"
-msgstr "_Bases"
+#. [LGL_UNITS_PICA]
+#: ../libglabels/units.c:69
+msgid "picas"
+msgstr "paicas"
 
-#: data/ui/glabels-ui.xml.h:135
-msgid "_Close"
-msgstr "_Fechar"
+#: ../libglabels/xml-template.c:223
+msgid "Missing name or brand/part attributes."
+msgstr "Atributos de nome ou marca/parte faltando."
 
-#: data/ui/glabels-ui.xml.h:136
-msgid "_Contents"
-msgstr "_Conteúdo"
+#. This should always be an id, but just in case a name
+#. slips by!
+#: ../libglabels/xml-template.c:244
+#, c-format
+msgid "Unknown page size id \"%s\", trying as name"
+msgstr "Id \"%s\" de tamanho de página desconhecido, tentando como nome"
 
-#: data/ui/glabels-ui.xml.h:137
-msgid "_Copy"
-msgstr "_Copiar"
+#: ../libglabels/xml-template.c:256
+#, c-format
+msgid "Unknown page size id or name \"%s\""
+msgstr "Id ou nome \"%s\" de tamanho de página desconhecido"
 
-#: data/ui/glabels-ui.xml.h:138
-msgid "_Create Object"
-msgstr "_Criar Objeto"
+#: ../libglabels/xml-template.c:275
+msgid "Forward references not supported."
+msgstr "Não há suporte para referências futuras."
 
-#: data/ui/glabels-ui.xml.h:139
-msgid "_Debug"
-msgstr "_Depurar"
+#: ../libglabels/xml-template.c:747
+msgid ""
+"Missing required \"brand\" or \"part\" attribute, trying deprecated name."
+msgstr ""
+"Os atributos \"marca\" ou \"parte\" exigidos estão faltando, tentando nome "
+"obsoleto."
 
-#: data/ui/glabels-ui.xml.h:141
-msgid "_Desktop Default"
-msgstr "Padrão _Desktop"
+#: ../libglabels/xml-template.c:757
+msgid "Name attribute also missing."
+msgstr "O atributo nome também está faltando."
 
-#: data/ui/glabels-ui.xml.h:142
-msgid "_Drawing Toolbar"
-msgstr "Barra de _Desenho"
+#.
+#. * Local Variables:       -- emacs
+#. * mode: C                -- emacs
+#. * c-basic-offset: 8      -- emacs
+#. * tab-width: 8           -- emacs
+#. * indent-tabs-mode: nil  -- emacs
+#. * End:                   -- emacs
+#.
+#: ../data/ui/merge-properties-dialog.ui.h:1
+msgid "Format:"
+msgstr "Formato:"
 
-#: data/ui/glabels-ui.xml.h:143
-msgid "_Edit"
-msgstr "_Editar"
+#: ../data/ui/merge-properties-dialog.ui.h:2
+msgid "Location:"
+msgstr "Localização:"
 
-#: data/ui/glabels-ui.xml.h:145
-msgid "_File"
-msgstr "_Arquivo"
+#: ../data/ui/merge-properties-dialog.ui.h:3
+msgid "Record selection/preview"
+msgstr "Seleção/previsão de registro"
 
-#: data/ui/glabels-ui.xml.h:146
-msgid "_Grid"
-msgstr "_Grade"
+#: ../data/ui/merge-properties-dialog.ui.h:4
+msgid "Select all"
+msgstr "Selecionar tudo"
 
-#: data/ui/glabels-ui.xml.h:147
-msgid "_Help"
-msgstr "A_juda"
+#: ../data/ui/merge-properties-dialog.ui.h:5
+msgid "Source"
+msgstr "Fonte"
 
-#: data/ui/glabels-ui.xml.h:148
-msgid "_Icon"
-msgstr "_Ícone"
+#: ../data/ui/merge-properties-dialog.ui.h:6
+msgid "Unselect all"
+msgstr "Desmarcar tudo"
 
-#: data/ui/glabels-ui.xml.h:152
-msgid "_Main Toolbar"
-msgstr "Barra _Principal"
+#: ../data/ui/media-select.ui.h:1
+msgid "Brand:"
+msgstr "Marca:"
 
-#: data/ui/glabels-ui.xml.h:153
-msgid "_Merge Properties..."
-msgstr "Propriedades de _Fusão..."
+#: ../data/ui/media-select.ui.h:2
+msgid "Category:"
+msgstr "Categoria:"
 
-#: data/ui/glabels-ui.xml.h:154
-msgid "_New"
-msgstr "_Novo"
+#: ../data/ui/media-select.ui.h:3
+msgid "Custom"
+msgstr "Personalizado"
 
-#: data/ui/glabels-ui.xml.h:155
-msgid "_Objects"
-msgstr "_Objetos"
+#: ../data/ui/media-select.ui.h:4 ../data/ui/new-label-dialog.ui.h:6
+#: ../data/ui/template-designer.ui.h:42
+msgid "Page size:"
+msgstr "Tamanho da página:"
 
-#: data/ui/glabels-ui.xml.h:156
-msgid "_Open..."
-msgstr "_Abrir..."
+#: ../data/ui/media-select.ui.h:5
+msgid "Recent"
+msgstr "Recente"
 
-#: data/ui/glabels-ui.xml.h:158
-msgid "_Paste"
-msgstr "_Colar"
+#: ../data/ui/media-select.ui.h:6
+msgid "Search all"
+msgstr "Buscar todos"
 
-#: data/ui/glabels-ui.xml.h:159
-msgid "_Print..."
-msgstr "Im_primir..."
+#: ../data/ui/new-label-dialog.ui.h:1
+msgid ""
+"Choose label or card product from hundreds of predefined templates or define "
+"your own."
+msgstr ""
+"Escolha o produto de etiqueta ou cartão a partir de centenas de modelos "
+"predefinidos ou defina o seu próprio."
 
-#: data/ui/glabels-ui.xml.h:160
-#, fuzzy
-msgid "_Property Toolbar"
-msgstr "Barra de _Desenho"
+#: ../data/ui/new-label-dialog.ui.h:2 ../data/ui/template-designer.ui.h:27
+msgid "Description:"
+msgstr "Descrição:"
 
-#: data/ui/glabels-ui.xml.h:161
-msgid "_Quit"
-msgstr "_Sair"
+#: ../data/ui/new-label-dialog.ui.h:3
+msgid "Label size:"
+msgstr "Tamanho da etiqueta:"
 
-#: data/ui/glabels-ui.xml.h:164
-msgid "_Save"
-msgstr "_Salvar"
+#: ../data/ui/new-label-dialog.ui.h:4
+msgid "Layout:"
+msgstr "Disposição:"
 
-#: data/ui/glabels-ui.xml.h:168
-msgid "_View"
-msgstr "_Visualizar"
+#: ../data/ui/new-label-dialog.ui.h:5
+msgid "Normal"
+msgstr "Normal"
 
-#: data/glade/prefs-dialog.glade.h:1
-msgid "   "
-msgstr ""
+#: ../data/ui/new-label-dialog.ui.h:7 ../data/ui/template-designer.ui.h:43
+msgid "Part #:"
+msgstr "Parte #:"
 
-#: data/glade/prefs-dialog.glade.h:2 data/glade/object-editor.glade.h:1
-#: data/glade/template-designer.glade.h:5
-msgid "*"
-msgstr ""
+#: ../data/ui/new-label-dialog.ui.h:8
+msgid "Please review and confirm your selection."
+msgstr "Por favor, revise e confirme a sua seleção."
 
-#: data/glade/prefs-dialog.glade.h:3
-msgid "<span weight=\"bold\">Default page size</span>"
-msgstr ""
+#: ../data/ui/new-label-dialog.ui.h:9
+msgid "Rotated"
+msgstr "Rotacionado"
 
-#: data/glade/prefs-dialog.glade.h:4
-msgid "<span weight=\"bold\">Fill</span>"
-msgstr ""
+#: ../data/ui/new-label-dialog.ui.h:10
+msgid "Select orientation of label content."
+msgstr "Selecionar a orientação do conteúdo da etiqueta."
 
-#: data/glade/prefs-dialog.glade.h:5
-msgid "<span weight=\"bold\">Line</span>"
-msgstr ""
+#: ../data/ui/new-label-dialog.ui.h:11
+msgid "Similar products:"
+msgstr "Produtos similares:"
 
-#: data/glade/prefs-dialog.glade.h:6
-msgid "<span weight=\"bold\">Text</span>"
-msgstr ""
+#: ../data/ui/new-label-dialog.ui.h:12
+msgid "Vendor:"
+msgstr "Fabricante:"
 
-#: data/glade/prefs-dialog.glade.h:7
-msgid "<span weight=\"bold\">Units</span>"
-msgstr ""
+#: ../data/ui/object-editor.ui.h:2
+#, no-c-format
+msgid "%"
+msgstr "%"
 
-#: data/glade/prefs-dialog.glade.h:8 data/glade/object-editor.glade.h:4
+#: ../data/ui/object-editor.ui.h:3 ../data/ui/prefs-dialog.ui.h:2
 msgid "Alignment:"
 msgstr "Alinhamento:"
 
-#: data/glade/prefs-dialog.glade.h:9 data/glade/object-editor.glade.h:8
-msgid "Color:"
-msgstr "Cor:"
-
-#: data/glade/prefs-dialog.glade.h:10
-msgid "Font:"
-msgstr "Fonte:"
-
-#: data/glade/prefs-dialog.glade.h:11
-msgid "ISO A4"
-msgstr ""
-
-#: data/glade/prefs-dialog.glade.h:12
-msgid "Inches"
-msgstr "Polegadas"
-
-#: data/glade/prefs-dialog.glade.h:13 data/glade/object-editor.glade.h:19
-msgid "Line Spacing:"
-msgstr ""
-
-#: data/glade/prefs-dialog.glade.h:14
-msgid "Locale"
-msgstr "Local"
-
-#: data/glade/prefs-dialog.glade.h:15
-msgid "Millimeters"
-msgstr "Milímetros"
-
-#: data/glade/prefs-dialog.glade.h:16
-msgid "Object defaults"
-msgstr "Padrões do objeto"
-
-#: data/glade/prefs-dialog.glade.h:17
-msgid "Points"
-msgstr "Pontos"
-
-#: data/glade/prefs-dialog.glade.h:18
-msgid "Select default properties for new objects."
-msgstr "Selecione as propriedades padrões para novos objetos."
-
-#: data/glade/prefs-dialog.glade.h:19
-msgid "Select locale specific behavior."
-msgstr "Selecione comportamento específico do local."
-
-#: data/glade/prefs-dialog.glade.h:20 data/templates/paper-sizes.xml.h:25
-msgid "US Letter"
-msgstr ""
-
-#: data/glade/prefs-dialog.glade.h:21 data/glade/object-editor.glade.h:29
-#: data/glade/template-designer.glade.h:72
-msgid "Width:"
-msgstr "Largura:"
-
-#: data/glade/object-editor.glade.h:2
-msgid "00000000000 00000"
-msgstr ""
-
-#: data/glade/object-editor.glade.h:3
-msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
-msgstr ""
-
-#: data/glade/object-editor.glade.h:5
+#: ../data/ui/object-editor.ui.h:4
 msgid "Allow merge to automatically shrink text"
-msgstr ""
+msgstr "Permitir à mesclagem encolher o texto automaticamente"
 
-#: data/glade/object-editor.glade.h:6
+#: ../data/ui/object-editor.ui.h:5
 msgid "Angle:"
 msgstr "Ângulo:"
 
-#: data/glade/object-editor.glade.h:7
+#: ../data/ui/object-editor.ui.h:6
+#, fuzzy
+#| msgid "Brand:"
+msgid "Backend:"
+msgstr "Marca:"
+
+#: ../data/ui/object-editor.ui.h:7
 msgid "Checksum"
-msgstr ""
+msgstr "Checksum"
 
-#: data/glade/object-editor.glade.h:10
-#, fuzzy
+#: ../data/ui/object-editor.ui.h:8 ../data/ui/prefs-dialog.ui.h:3
+msgid "Color:"
+msgstr "Cor:"
+
+#: ../data/ui/object-editor.ui.h:10
+msgid "Enable shadow"
+msgstr "Habilitar sombra"
+
+#: ../data/ui/object-editor.ui.h:11
 msgid "Family:"
+msgstr "Família:"
+
+#: ../data/ui/object-editor.ui.h:12
+msgid "File:"
 msgstr "Arquivo:"
 
-#: data/glade/object-editor.glade.h:12
+#: ../data/ui/object-editor.ui.h:13 ../data/ui/prefs-dialog.ui.h:5
 msgid "Fill"
 msgstr "Preencher"
 
-#: data/glade/object-editor.glade.h:13 data/glade/template-designer.glade.h:33
+#: ../data/ui/object-editor.ui.h:14 ../data/ui/template-designer.ui.h:30
 msgid "Height:"
 msgstr "Altura:"
 
-#: data/glade/object-editor.glade.h:14
-msgid "Image"
-msgstr "Imagem"
-
-#: data/glade/object-editor.glade.h:15
-msgid "Insert merge field"
-msgstr "Inserir campo de fusão"
+#: ../data/ui/object-editor.ui.h:16
+msgid "Key:"
+msgstr "Chave:"
 
-#: data/glade/object-editor.glade.h:17
+#: ../data/ui/object-editor.ui.h:17
 msgid "Length:"
 msgstr "Comprimento:"
 
-#: data/glade/object-editor.glade.h:18
-msgid "Line"
-msgstr "Linha"
+#: ../data/ui/object-editor.ui.h:19 ../data/ui/prefs-dialog.ui.h:10
+msgid "Line Spacing:"
+msgstr "Espaçamento de linha:"
 
-#: data/glade/object-editor.glade.h:20
+#: ../data/ui/object-editor.ui.h:20
 msgid "Literal:"
 msgstr "Literal:"
 
-#: data/glade/object-editor.glade.h:21
-msgid "Load image"
-msgstr ""
+#: ../data/ui/object-editor.ui.h:21
+msgid "Opacity:"
+msgstr "Opacidade"
 
-#: data/glade/object-editor.glade.h:22
+#: ../data/ui/object-editor.ui.h:22
 msgid "Position"
 msgstr "Posição"
 
-#: data/glade/object-editor.glade.h:23
+#: ../data/ui/object-editor.ui.h:23
 msgid "Reset image size"
 msgstr "Redefinir tamanho da imagem"
 
-#: data/glade/object-editor.glade.h:24
+#: ../data/ui/object-editor.ui.h:24
+msgid "Shadow"
+msgstr "Sombra"
+
+#: ../data/ui/object-editor.ui.h:25
 msgid "Size"
 msgstr "Tamanho"
 
-#: data/glade/object-editor.glade.h:25
-#, fuzzy
+#: ../data/ui/object-editor.ui.h:26
 msgid "Size:"
-msgstr "Tamanho"
+msgstr "Tamanho:"
 
-#: data/glade/object-editor.glade.h:26
-#, fuzzy
+#: ../data/ui/object-editor.ui.h:27
 msgid "Style"
-msgstr "Estilo:"
+msgstr "Estilo"
 
-#: data/glade/object-editor.glade.h:27
+#: ../data/ui/object-editor.ui.h:28
 msgid "Style:"
 msgstr "Estilo:"
 
-#: data/glade/object-editor.glade.h:30
+#: ../data/ui/object-editor.ui.h:30 ../data/ui/prefs-dialog.ui.h:20
+#: ../data/ui/template-designer.ui.h:61
+msgid "Width:"
+msgstr "Largura:"
+
+#: ../data/ui/object-editor.ui.h:31
+msgid "X Offset:"
+msgstr "Deslocamento X:"
+
+#: ../data/ui/object-editor.ui.h:32
 msgid "X:"
 msgstr "X:"
 
-#: data/glade/object-editor.glade.h:31
+#: ../data/ui/object-editor.ui.h:33
+msgid "Y Offset:"
+msgstr "Deslocamento Y:"
+
+#: ../data/ui/object-editor.ui.h:34
 msgid "Y:"
 msgstr "Y:"
 
-#: data/glade/object-editor.glade.h:32
+#: ../data/ui/object-editor.ui.h:35
 msgid "degrees"
 msgstr "graus"
 
-#: data/glade/object-editor.glade.h:33
+#: ../data/ui/object-editor.ui.h:36
 msgid "dialog1"
-msgstr ""
+msgstr "dialog1"
 
-#: data/glade/object-editor.glade.h:34
+#: ../data/ui/object-editor.ui.h:37
 msgid "digits:"
-msgstr ""
+msgstr "dígitos:"
 
-#: data/glade/object-editor.glade.h:35
-#, fuzzy
+#: ../data/ui/object-editor.ui.h:38
 msgid "format:"
-msgstr "Formato:"
+msgstr "formato:"
 
-#: data/glade/template-designer.glade.h:1
-msgid "  "
-msgstr ""
+#: ../data/ui/prefs-dialog.ui.h:1
+msgid "   "
+msgstr "   "
+
+#: ../data/ui/prefs-dialog.ui.h:4
+msgid "Default page size"
+msgstr "Tamanho de página padrão"
+
+#: ../data/ui/prefs-dialog.ui.h:6
+msgid "Font:"
+msgstr "Fonte:"
+
+#: ../data/ui/prefs-dialog.ui.h:7
+msgid "ISO A4"
+msgstr "ISO A4"
+
+#: ../data/ui/prefs-dialog.ui.h:8
+msgid "Inches"
+msgstr "Polegadas"
+
+#: ../data/ui/prefs-dialog.ui.h:11
+msgid "Locale"
+msgstr "Local"
+
+#: ../data/ui/prefs-dialog.ui.h:12
+msgid "Millimeters"
+msgstr "Milímetros"
+
+#: ../data/ui/prefs-dialog.ui.h:13
+msgid "Object defaults"
+msgstr "Padrões do objeto"
+
+#: ../data/ui/prefs-dialog.ui.h:14
+msgid "Points"
+msgstr "Pontos"
+
+#: ../data/ui/prefs-dialog.ui.h:15
+msgid "Select default properties for new objects."
+msgstr "Selecione as propriedades padrões para novos objetos."
+
+#: ../data/ui/prefs-dialog.ui.h:16
+msgid "Select locale specific behavior."
+msgstr "Selecione comportamento específico do local."
+
+#: ../data/ui/prefs-dialog.ui.h:18 ../templates/paper-sizes.xml.h:35
+msgid "US Letter"
+msgstr "Carta"
+
+#: ../data/ui/prefs-dialog.ui.h:19
+msgid "Units"
+msgstr "Unidades"
+
+#: ../data/ui/property-bar.ui.h:1
+msgid "Bold"
+msgstr "Negrito"
+
+#: ../data/ui/property-bar.ui.h:2
+msgid "Center align"
+msgstr "Alinhar ao centro"
+
+#: ../data/ui/property-bar.ui.h:7
+msgid "Left align"
+msgstr "Alinhar à esquerda"
+
+#: ../data/ui/property-bar.ui.h:10
+msgid "Right align"
+msgstr "Alinhar à direita"
 
-#: data/glade/template-designer.glade.h:2
+#: ../data/ui/template-designer.ui.h:1
 msgid "(e.g., \"Mailing Labels,\" \"Business Cards,\" ...)"
-msgstr ""
+msgstr "(ex.: \"etiquetas de endereçamento,\" \"cartões de visita,\" ...)"
 
-#: data/glade/template-designer.glade.h:3
+#: ../data/ui/template-designer.ui.h:2
 msgid "(e.g., 8163A)"
-msgstr ""
+msgstr "(ex.: 8163A)"
 
-#: data/glade/template-designer.glade.h:4
+#: ../data/ui/template-designer.ui.h:3
 msgid "(e.g., Avery, Acme, ...)"
-msgstr ""
+msgstr "(ex.: Avery, Acme, ...)"
 
-#: data/glade/template-designer.glade.h:6
+#: ../data/ui/template-designer.ui.h:4
 msgid "1. Outer radius:"
-msgstr ""
+msgstr "1. Raio externo:"
 
-#: data/glade/template-designer.glade.h:7
+#: ../data/ui/template-designer.ui.h:5
 msgid "1. Radius:"
-msgstr ""
+msgstr "1. Raio:"
 
-#: data/glade/template-designer.glade.h:8
-#, fuzzy
+#: ../data/ui/template-designer.ui.h:6
 msgid "1. Width:"
-msgstr "Largura:"
+msgstr "1. Largura:"
 
-#: data/glade/template-designer.glade.h:9
-#, fuzzy
+#: ../data/ui/template-designer.ui.h:7
 msgid "2. Height:"
-msgstr "Altura:"
+msgstr "2. Altura:"
 
-#: data/glade/template-designer.glade.h:10
+#: ../data/ui/template-designer.ui.h:8
 msgid "2. Inner radius:"
-msgstr ""
+msgstr "2. Raio interno:"
 
-#: data/glade/template-designer.glade.h:11
+#: ../data/ui/template-designer.ui.h:9
 msgid "2. Waste (overprint allowed):"
-msgstr ""
+msgstr "2. Perda (sobreimpressão permitida):"
 
-#: data/glade/template-designer.glade.h:12
+#: ../data/ui/template-designer.ui.h:10
 msgid "3. Clipping width:"
-msgstr ""
+msgstr "3. Largura do corte:"
 
-#: data/glade/template-designer.glade.h:13
+#: ../data/ui/template-designer.ui.h:11
 msgid "3. Margin"
-msgstr ""
+msgstr "3. Margem"
 
-#: data/glade/template-designer.glade.h:14
+#: ../data/ui/template-designer.ui.h:12
 msgid "3. Round (radius of corner):"
-msgstr ""
+msgstr "3. Arredondamento (raio do canto):"
 
-#: data/glade/template-designer.glade.h:15
+#: ../data/ui/template-designer.ui.h:13
 msgid "4. Clipping height:"
-msgstr ""
+msgstr "4. Altura do corte:"
 
-#: data/glade/template-designer.glade.h:16
+#: ../data/ui/template-designer.ui.h:14
 msgid "4. Horiz. waste (overprint allowed):"
-msgstr ""
+msgstr "4. Perda horiz. (sobreimpressão permitida):"
 
-#: data/glade/template-designer.glade.h:17
+#: ../data/ui/template-designer.ui.h:15
 msgid "5. Vert. waste (overprint allowed):"
-msgstr ""
+msgstr "5. Perda vert. (sobreimpressão permitida):"
 
-#: data/glade/template-designer.glade.h:18
+#: ../data/ui/template-designer.ui.h:16
 msgid "5. Waste (overprint allowed):"
-msgstr ""
+msgstr "5. Perda (sobreimpressão permitida):"
 
-#: data/glade/template-designer.glade.h:19
+#: ../data/ui/template-designer.ui.h:17
 msgid "6. Margin"
-msgstr ""
+msgstr "6. Margem"
 
-#: data/glade/template-designer.glade.h:20
+#: ../data/ui/template-designer.ui.h:18
 msgid "Brand/Manufacturer:"
-msgstr ""
+msgstr "Marca/Fabricante:"
 
-#: data/glade/template-designer.glade.h:21
+#: ../data/ui/template-designer.ui.h:19
 msgid "CD/DVD (including credit card CDs)"
-msgstr ""
+msgstr "CD/DVD (incluindo CDs cartões de crédito)"
 
-#: data/glade/template-designer.glade.h:22
+#: ../data/ui/template-designer.ui.h:20
 msgid ""
 "Congratulations!\n"
 "\n"
@@ -1981,24 +2278,27 @@ msgid ""
 "Otherwise, you may click \"Cancel\" to abandon your design\n"
 "or \"Back\" to continue editing this design."
 msgstr ""
+"Parabéns!\n"
+"\n"
+"Você completou o Criador de Modelos do gLabels.\n"
+"Se você deseja aceitar e salvar seu modelo, clique em \"Aplicar\".\n"
+"\n"
+"Caso contrário, você pode clicar em \"Cancelar\" para abandonar seu desenho\n"
+"ou \"Voltar\" para continuar editando este desenho."
 
-#: data/glade/template-designer.glade.h:30
-msgid "Design Completed"
-msgstr ""
-
-#: data/glade/template-designer.glade.h:31
+#: ../data/ui/template-designer.ui.h:28
 msgid "Distance from left edge (x0):"
-msgstr ""
+msgstr "Distância da borda esquerda (x0):"
 
-#: data/glade/template-designer.glade.h:32
+#: ../data/ui/template-designer.ui.h:29
 msgid "Distance from top edge (y0):"
-msgstr ""
+msgstr "Distância da borda superior (y0):"
 
-#: data/glade/template-designer.glade.h:34
+#: ../data/ui/template-designer.ui.h:31
 msgid "Horizontal pitch (dx):"
-msgstr ""
+msgstr "Deslocamento horizontal (dx):"
 
-#: data/glade/template-designer.glade.h:35
+#: ../data/ui/template-designer.ui.h:32
 msgid ""
 "How many layouts will your template contain? \n"
 "\n"
@@ -2006,504 +2306,1284 @@ msgid ""
 "Most templates only need one layout, as in the first example.\n"
 "The second example illustrates when two layouts are needed."
 msgstr ""
+"Quantas disposições seu modelo irá conter? \n"
+"\n"
+"Uma disposição é um conjunto de etiquetas ou cartões que podem ser "
+"organizados em uma grade simples.\n"
+"A maioria dos modelos necessita de apenas uma disposição, como no primeiro "
+"exemplo.\n"
+"O segundo exemplo ilustra quando duas disposições são necessárias."
 
-#: data/glade/template-designer.glade.h:40
-msgid "Label Size (CD/DVD)"
+#: ../data/ui/template-designer.ui.h:37
+msgid "Layout #1"
+msgstr "Disposição #1"
+
+#: ../data/ui/template-designer.ui.h:38
+msgid "Layout #2"
+msgstr "Disposição #2"
+
+#: ../data/ui/template-designer.ui.h:39
+msgid "Number across (nx):"
+msgstr "Número de colunas (nx):"
+
+#: ../data/ui/template-designer.ui.h:40
+msgid "Number down (ny):"
+msgstr "Número de linhas (ny):"
+
+#: ../data/ui/template-designer.ui.h:41
+msgid "Number of layouts:"
+msgstr "Número de disposições:"
+
+#: ../data/ui/template-designer.ui.h:44
+msgid ""
+"Please enter the following identifying information about the template "
+"stationery."
+msgstr ""
+"Por favor, digite a seguinte informação de identificação sobre o modelo de "
+"papelaria."
+
+#: ../data/ui/template-designer.ui.h:45
+msgid "Please enter the following layout information."
+msgstr "Por favor, digite as seguintes informações da disposição."
+
+#: ../data/ui/template-designer.ui.h:46
+msgid ""
+"Please enter the following size parameters of a single label in your "
+"template."
+msgstr ""
+"Por favor, digite os seguintes parâmetros de tamanho de uma única etiqueta "
+"no seu modelo."
+
+#: ../data/ui/template-designer.ui.h:47
+msgid ""
+"Please enter the following size parameters of a single label or card in your "
+"template."
+msgstr ""
+"Por favor, digite os seguintes parâmetros de tamanho de uma única etiqueta "
+"ou cartão no seu modelo."
+
+#: ../data/ui/template-designer.ui.h:48
+msgid "Please select the basic shape of the labels or cards."
+msgstr "Por favor, selecione a forma básica das etiquetas ou cartões."
+
+#: ../data/ui/template-designer.ui.h:49
+msgid "Please select the page size of the template stationery."
+msgstr "Por favor, selecione o tamanho da página do modelo de papelaria."
+
+#: ../data/ui/template-designer.ui.h:50
+msgid "Print test sheet"
+msgstr "Imprime folha de teste"
+
+#: ../data/ui/template-designer.ui.h:51
+msgid "Rectangular or square (can have rounded corners)"
+msgstr "Retangular ou quadrado (pode possuir bordas arredondadas)"
+
+#: ../data/ui/template-designer.ui.h:52
+msgid "Round"
+msgstr "Arredondado"
+
+#: ../data/ui/template-designer.ui.h:53
+msgid ""
+"Templates needing\n"
+"two layouts."
+msgstr ""
+"Modelos que necessitam\n"
+"de duas disposições."
+
+#: ../data/ui/template-designer.ui.h:55
+msgid ""
+"Templates needing only\n"
+"one layout."
 msgstr ""
+"Modelos que necessitam de apenas\n"
+"uma disposição."
+
+#: ../data/ui/template-designer.ui.h:57
+msgid "Vertical pitch (dy):"
+msgstr "Deslocamento vertical (dy):"
+
+#: ../data/ui/template-designer.ui.h:58
+msgid ""
+"Welcome to the gLabels Template Designer.\n"
+"\n"
+"This dialog will assist you in the creation of a custom gLabels template."
+msgstr ""
+"Bem vidno ao Criador de Modelos do gLabels.\n"
+"\n"
+"Este diálogo irá lhe auxiliar na criação de um modelo gLabels personalizado."
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:1
+msgid "Collate"
+msgstr "Ordenar"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:2
+msgid "Copies"
+msgstr "Cópias"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:3
+msgid "Copies:"
+msgstr "Cópias:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:5
+msgid "Merge Control"
+msgstr "Controle de mesclagem"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:6
+msgid "Options"
+msgstr "Opções"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:7
+msgid "Sheets:"
+msgstr "Páginas:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:8
+msgid "Start on label"
+msgstr "Iniciar na etiqueta"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:9
+msgid "from:"
+msgstr "de:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:10
+msgid "on 1st sheet"
+msgstr "na primeira folha"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:14
+msgid "to:"
+msgstr "até:"
+
+#: ../data/desktop/glabels-3.0.desktop.in.h:1
+msgid "Create labels, business cards and media covers"
+msgstr "Crie etiquetas, cartões de visita e capas para mídias"
+
+#: ../data/desktop/glabels-3.0.desktop.in.h:2
+msgid "gLabels Label Designer 3"
+msgstr "Criador de etiquetas gLabels 3"
+
+#: ../data/mime/glabels-3.0.xml.in.h:1
+msgid "gLabels Project File"
+msgstr "Arquivo de projeto gLabels"
+
+#. Envelopes
+#: ../templates/paper-sizes.xml.h:2
+msgid "#10 Envelope"
+msgstr "Envelope #10"
+
+#. Other ISO A series sizes
+#: ../templates/paper-sizes.xml.h:4
+msgid "A0"
+msgstr "A0"
+
+#: ../templates/paper-sizes.xml.h:5
+msgid "A1"
+msgstr "A1"
+
+#: ../templates/paper-sizes.xml.h:6
+msgid "A10"
+msgstr "A10"
+
+#: ../templates/paper-sizes.xml.h:7
+msgid "A2"
+msgstr "A2"
+
+#: ../templates/paper-sizes.xml.h:8
+msgid "A3"
+msgstr "A3"
+
+#. Most popular (at top of list)
+#: ../templates/paper-sizes.xml.h:10
+msgid "A4"
+msgstr "A4"
+
+#: ../templates/paper-sizes.xml.h:11
+msgid "A5"
+msgstr "A5"
+
+#: ../templates/paper-sizes.xml.h:12
+msgid "A6"
+msgstr "A6"
+
+#: ../templates/paper-sizes.xml.h:13
+msgid "A7"
+msgstr "A7"
+
+#: ../templates/paper-sizes.xml.h:14
+msgid "A8"
+msgstr "A8"
+
+#: ../templates/paper-sizes.xml.h:15
+msgid "A9"
+msgstr "A9"
+
+#. ISO B series sizes
+#: ../templates/paper-sizes.xml.h:17
+msgid "B0"
+msgstr "B0"
+
+#: ../templates/paper-sizes.xml.h:18
+msgid "B1"
+msgstr "B1"
+
+#: ../templates/paper-sizes.xml.h:19
+msgid "B10"
+msgstr "B10"
+
+#: ../templates/paper-sizes.xml.h:20
+msgid "B2"
+msgstr "B2"
+
+#: ../templates/paper-sizes.xml.h:21
+msgid "B3"
+msgstr "B3"
+
+#: ../templates/paper-sizes.xml.h:22
+msgid "B4"
+msgstr "B4"
+
+#: ../templates/paper-sizes.xml.h:23
+msgid "B5"
+msgstr "B5"
+
+#: ../templates/paper-sizes.xml.h:24
+msgid "B6"
+msgstr "B6"
+
+#: ../templates/paper-sizes.xml.h:25
+msgid "B7"
+msgstr "B7"
+
+#: ../templates/paper-sizes.xml.h:26
+msgid "B8"
+msgstr "B8"
+
+#: ../templates/paper-sizes.xml.h:27
+msgid "B9"
+msgstr "B9"
+
+#: ../templates/paper-sizes.xml.h:28
+msgid "C5"
+msgstr "C5"
+
+#: ../templates/paper-sizes.xml.h:29
+msgid "C6"
+msgstr "C6"
+
+#: ../templates/paper-sizes.xml.h:30
+msgid "DL"
+msgstr "DL"
+
+#: ../templates/paper-sizes.xml.h:31
+msgid "Monarch Envelope"
+msgstr "Envelope monarch"
+
+#: ../templates/paper-sizes.xml.h:32
+msgid "US Executive"
+msgstr "US Executive"
+
+#. Other US paper sizes
+#: ../templates/paper-sizes.xml.h:34
+msgid "US Legal"
+msgstr "US Legal"
+
+#: ../templates/categories.xml.h:1
+msgid "Any card"
+msgstr "Qualquer cartão"
+
+#: ../templates/categories.xml.h:2
+msgid "Any label"
+msgstr "Qualquer etiqueta"
+
+#. ===================================================================
+#: ../templates/categories.xml.h:3 ../templates/pearl-iso-templates.xml.h:8
+msgid "Business cards"
+msgstr "Cartões de visita"
+
+#: ../templates/categories.xml.h:4
+msgid "CD/DVD or other media"
+msgstr "CD/DVD ou outras mídias"
+
+#: ../templates/categories.xml.h:5
+msgid "Mailing/shipping products"
+msgstr "Correio/Produtos de encomenda"
+
+#: ../templates/categories.xml.h:6
+msgid "Rectangular labels"
+msgstr "Etiquetas retangulares"
+
+#. ===================================================================
+#: ../templates/categories.xml.h:7 ../templates/pearl-iso-templates.xml.h:46
+msgid "Round labels"
+msgstr "Etiquetas arredondadas"
+
+#: ../templates/categories.xml.h:8
+msgid "Square labels"
+msgstr "Etiquetas quadradas"
+
+#. ===================================================================
+#. ********************************************************************
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:2
+#: ../templates/dymo-other-templates.xml.h:4
+#: ../templates/maco-us-templates.xml.h:2
+#: ../templates/misc-iso-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:1
+#: ../templates/zweckform-iso-templates.xml.h:2
+msgid "Address Labels"
+msgstr "Etiquetas de endereçamento"
+
+#. ===================================================================
+#. ============================================================
+#. ===================================================================
+#. ********************************************************************
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:8
+#: ../templates/misc-us-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:6
+msgid "Business Cards"
+msgstr "Cartões de visita"
+
+#. ===================================================================
+#. ===============================================================
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:6
+#: ../templates/avery-iso-templates.xml.h:14
+#: ../templates/misc-us-templates.xml.h:8
+#: ../templates/misc-iso-templates.xml.h:16
+#: ../templates/pearl-iso-templates.xml.h:20
+#: ../templates/worldlabel-us-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:8
+msgid "CD/DVD Labels"
+msgstr "Etiquetas de CD/DVD"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:8
+msgid "CD/DVD Labels (Disc Labels)"
+msgstr "Etiquetas de CD/DVD (etiquetas de disco)"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:10
+msgid "CD/DVD Labels (Spine Labels)"
+msgstr "Etiquetas de CD/DVD (etiquetas de lombada)"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:12
+#: ../templates/avery-iso-templates.xml.h:16
+#: ../templates/worldlabel-us-templates.xml.h:3
+msgid "Diskette Labels"
+msgstr "Etiquetas de disquete"
+
+#. the LSK labels can be torn in half down the center
+#: ../templates/avery-us-templates.xml.h:14
+msgid "Divider Labels"
+msgstr "Etiquetas divisórias"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:16
+#: ../templates/avery-other-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:4
+msgid "File Folder Labels"
+msgstr "Etiquetas para pastas de arquivos"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:5
+msgid "Filing Labels"
+msgstr "Etiquetas de classificação/registro"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:20
+#: ../templates/worldlabel-us-templates.xml.h:6
+msgid "Full Sheet Labels"
+msgstr "Etiquetas de página inteira"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:22
+msgid "ID Labels"
+msgstr "Etiquetas de identificação"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:24
+msgid "Index Cards"
+msgstr "Cartões de indexação"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:26
+msgid "Large Round Labels"
+msgstr "Etiquetas arredondadas grandes"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:28
+msgid "Name Badge Labels"
+msgstr "Etiquetas de crachás"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:30
+msgid "Post cards"
+msgstr "Cartões postais"
+
+#. ===================================================================
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:32
+#: ../templates/dymo-other-templates.xml.h:12
+#: ../templates/worldlabel-us-templates.xml.h:8
+msgid "Return Address Labels"
+msgstr "Etiquetas de endereço de remetente"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:34
+#: ../templates/maco-us-templates.xml.h:3
+#: ../templates/misc-us-templates.xml.h:30
+#: ../templates/worldlabel-us-templates.xml.h:9
+msgid "Round Labels"
+msgstr "Etiquetas arredondadas"
+
+#. ===================================================================
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:36
+#: ../templates/uline-us-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:10
+msgid "Shipping Labels"
+msgstr "Etiquetas de envio"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:38
+msgid "Small Round Labels"
+msgstr "Etiquetas arredondadas pequenas"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:40
+msgid "Square Labels"
+msgstr "Etiquetas quadradas"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:42
+msgid "Tent Cards"
+msgstr "Cartões dobráveis"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:44
+#: ../templates/worldlabel-us-templates.xml.h:11
+msgid "Video Tape Face Labels"
+msgstr "Etiquetas de capa de fita de vídeo"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:46
+#: ../templates/worldlabel-us-templates.xml.h:12
+msgid "Video Tape Spine Labels"
+msgstr "Etiquetas de fita de vídeo"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:4
+msgid "Address labels"
+msgstr "Etiquetas de endereçamento"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:6
+msgid "Allround labels"
+msgstr "Etiqueta arredondada"
+
+#. ===============================================================
+#: ../templates/avery-iso-templates.xml.h:10
+msgid "CD Booklet"
+msgstr "Brochura de CD"
+
+#. ===============================================================
+#: ../templates/avery-iso-templates.xml.h:12
+msgid "CD Inlet"
+msgstr "Encarte de CD"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:18
+msgid "Diskette labels"
+msgstr "Etiquetas de disquete"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:20
+msgid "Identification Labels"
+msgstr "Identificação de etiquetas"
+
+#. ===============================================================
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:22
+#: ../templates/misc-us-templates.xml.h:20
+#: ../templates/misc-iso-templates.xml.h:36
+#: ../templates/zweckform-iso-templates.xml.h:16
+msgid "Mailing Labels"
+msgstr "Etiquetas de endereçamento"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:24
+msgid "Mailing labels"
+msgstr "Etiquetas de endereçamento"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:26
+msgid "Mini Address Labels"
+msgstr "Mini etiquetas de endereçamento"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:28
+msgid "Mini Labels"
+msgstr "Mini etiquetas"
+
+#. ============================================================
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:30
+#: ../templates/misc-iso-templates.xml.h:44
+#: ../templates/zweckform-iso-templates.xml.h:24
+msgid "Rectangular Labels"
+msgstr "Etiquetas retangulares"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:32
+msgid "Shipping labels"
+msgstr "Etiquetas de envio"
+
+#: ../templates/brother-other-templates.xml.h:1
+msgid "Multi Purpose Labels 17mm x 54mm"
+msgstr "Etiquetas multiuso de 17mm x 54mm"
+
+#: ../templates/brother-other-templates.xml.h:2
+msgid "Shipping Labels 62mm x 100mm"
+msgstr "Etiquetas de envio de 62mm x 100mm"
+
+#.
+#. *********************************************************************
+#. *********************************************************************
+#. Labels for the Brother QL-500/550/650 PC Label Printers
+#.
+#. These templates work with the Brother Linux Printer CUPS Driver.  It
+#. is unknown if these work correctly with the foomatic print driver for
+#. these printers.
+#.
+#. One difference from typical templates is that the template size is
+#. not the actual media size - it is the size of the printable area,
+#. which is smaller than the media size.  This is because (at least with
+#. the Brother driver) coordinates are relative the corner of this area.
+#.
+#. *********************************************************************
+#. *********************************************************************
+#.
+#: ../templates/brother-other-templates.xml.h:20
+msgid "Standard Address Labels 29mm x 90mm"
+msgstr "Etiquetas de endereçamento padrão de 29mm x 90mm"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:2
+msgid "3.5in Diskette"
+msgstr "Disquete de 3,5 pol."
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:6
+msgid "File Folder"
+msgstr "Pasta de arquivos"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:8
+msgid "Hanging Folder"
+msgstr "Pasta suspensa"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:10
+msgid "Large Address Labels"
+msgstr "Etiquetas de endereçamento grandes"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:14
+msgid "Shipping Address Labels"
+msgstr "Etiquetas de endereçamento de envio"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:2
+msgid "Business Card CD"
+msgstr "Cartão de visitas modelo CD"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:6
+msgid "CD Template Rectangles"
+msgstr "Modelos para CD retangulares"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:10
+msgid "CD/DVD Labels (Face Only)"
+msgstr "Etiquetas de CD/DVD (apenas face)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:12
+#: ../templates/misc-iso-templates.xml.h:18
+msgid "CD/DVD Labels (face only)"
+msgstr "Etiquetas de CD/DVD (apenas face)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:14
+msgid "Cassette Labels"
+msgstr "Etiquetas K7"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:16
+msgid "DLT Labels"
+msgstr "Etiquetas DLT"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:18
+msgid "Jewel Case Booklet"
+msgstr "Capa de CD de acrílico"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:22
+msgid "Microtube labels"
+msgstr "Etiquetas de micro-tubos"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:24
+msgid "Mini-CD Labels"
+msgstr "Etiquetas para mini CD"
+
+#: ../templates/misc-us-templates.xml.h:25
+msgid "PRO CD Labels 2-up (CD spine only)"
+msgstr "Etiquetas CD PRO 2-up (somente lombada de CD)"
+
+#: ../templates/misc-us-templates.xml.h:26
+msgid "PRO CD Labels 2-up (Face only)"
+msgstr "Etiquetas CD PRO 2-up (apenas face)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:42
+msgid "PRO CD Labels 2-up (face only)"
+msgstr "Etiquetas CD PRO 2-up (apenas face)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:32
+msgid "Slimline CD Case (rightside up)"
+msgstr "Estojo fino para CD (parte de cima)"
+
+#: ../templates/misc-us-templates.xml.h:33
+msgid "Slimline CD Case (upside down)"
+msgstr "Estojo fino para CD (lado de baixo)"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:4
+#: ../templates/zweckform-iso-templates.xml.h:4
+msgid "Allround Labels"
+msgstr "Etiquetas arredondadas"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:6
+msgid "Arch File Labels"
+msgstr "Etiquetas de arquivo"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:8
+msgid "Arch File Labels (large)"
+msgstr "Etiquetas de arquivo (grandes)"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:10
+msgid "Arch File Labels (small)"
+msgstr "Etiquetas de arquivo (pequenas)"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:14
+msgid "CD Labels"
+msgstr "Etiquetas para CDs"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:20
+msgid "CD/DVD Labels Standard Format (face only)"
+msgstr "Etiquetas para CD/DVD no formato padrão (apenas face)"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:22
+msgid "Diskette Labels (face only)"
+msgstr "Etiquetas para disquete (apenas face)"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:24
+msgid "EPSON Photo Stickers 16"
+msgstr "Adesivos EPSON Photo Stickers 16\""
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:26
+msgid "Etiketten"
+msgstr "Etiketten"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:28
+msgid "Fridge Magnet Stickers"
+msgstr "Adesivos magnéticos para geladeiras"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:30
+msgid "General Labels"
+msgstr "Etiquetas em geral"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:32
+msgid "Inkjet/Laser Labels 70x37mm"
+msgstr "Etiquetas laser/jato de tinta de 70x37mm"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:38
+msgid "Mailing Labels-2 columns"
+msgstr "Etiquetas de endereçamento-2 colunas"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:40
+msgid "Mailing Labels-3 columns"
+msgstr "Etiquetas de endereçamento-3 colunas"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:46
+msgid "Universal Labels"
+msgstr "Etiquetas universais"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:48
+msgid "Video Labels (face only)"
+msgstr "Etiquetas de vídeo (apenas face)"
+
+#. ===================================================================
+#: ../templates/misc-other-templates.xml.h:2
+msgid "Multi-Purpose Labels"
+msgstr "Etiquetas multi-função"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:4
+msgid "Address Labels (STAMPIT)"
+msgstr "Etiquetas de endereçamento (STAMPIT)"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:6
+msgid "Bottle labels"
+msgstr "Rótulos de garrafas"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:10
+msgid "Business cards glossy, both sides printable"
+msgstr "Cartões de visita brilhantes, imprimível em ambos os lados"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:12
+msgid "Business cards high glossy"
+msgstr "Cartões de visita com alto brilho"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:14
+msgid "Business cards punched"
+msgstr "Cartões de visita perfurados"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:16
+msgid "Business cards punched dull"
+msgstr "Cartões de visita perfurados planos"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:18
+msgid "Business cards punched glossy"
+msgstr "Cartões de visita perfurados brilhantes"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:22
+msgid "Floppy disk labels"
+msgstr "Etiquetas para disquetes"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:24
+msgid "Foldable business cards"
+msgstr "Cartões de visita dobráveis"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:26
+msgid "Foldable business cards glossy/dull"
+msgstr "Cartões de visita dobráveis brilhantes/foscos"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:28
+msgid "Labels A4"
+msgstr "Etiquetas A4"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:30
+msgid "Labels A5"
+msgstr "Etiquetas A5"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:32
+msgid "Labels A6"
+msgstr "Etiquetas A6"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:34
+msgid "Membership cards"
+msgstr "Cartões de associado"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:36
+msgid "Membership cards, both sides printable"
+msgstr "Cartões de associado, imprimíveis em ambos os lados"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:38
+msgid "Name plates"
+msgstr "Placas de nome"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:40
+msgid "Passport photo labels glossy"
+msgstr "Etiquetas brilhantes para fotos de passaporte"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:42
+msgid "Photo labels"
+msgstr "Etiquetas para fotos"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:44
+msgid "Photo labels semiglossy"
+msgstr "Etiquetas para fotos semibrilho"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:48
+msgid "SD card labels"
+msgstr "Etiquetas para cartões SD"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:50
+msgid "Self-adhesive film transparent"
+msgstr "Película transparente auto-adesiva"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:52
+msgid "Self-adhesive film weatherproof"
+msgstr "Película auto-adesiva resistente ao tempo"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:54
+msgid "Self-adhesive labels"
+msgstr "Etiquetas auto-adesivas"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:56
+msgid "Self-adhesive window film"
+msgstr "Película de janela auto-adesiva"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:10
+msgid "Correction and Cover-up Labels"
+msgstr "Etiquetas de correção e cobertura"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:12
+msgid "File Back Labels"
+msgstr "Etiquetas de arquivo traseiras"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:14
+msgid "Lever Arch File Labels"
+msgstr "Etiquetas do puxador de arquivos"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:18
+msgid "Multi-purpose Stick+Lift Labels"
+msgstr "Etiquetas multi-função Stick+Lift (cola/descola)"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:20
+msgid "QSL-Karten Etiketten 70mm x 50,8mm"
+msgstr "QSL-Karten Etiketten 70mm x 50,8mm"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:22
+msgid "Rectangular Copier Labels"
+msgstr "Etiquetas retangulares para copiadoras"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:26
+msgid "Video Labels (back)"
+msgstr "Etiquetas de vídeo (verso)"
+
+#~ msgid "_Select Mode"
+#~ msgstr "_Selecionar modo"
+
+#~ msgid "_Text"
+#~ msgstr "_Texto"
+
+#~ msgid "_Line"
+#~ msgstr "_Linha"
+
+#~ msgid "_Box"
+#~ msgstr "_Caixa"
+
+#~ msgid "_Ellipse"
+#~ msgstr "_Elipse"
+
+#~ msgid "_Image"
+#~ msgstr "_Imagem"
+
+#~ msgid "Bar_code"
+#~ msgstr "_Código barras"
+
+#~ msgid "_Merge Properties"
+#~ msgstr "Propriedades de _mesclagem"
 
-#: data/glade/template-designer.glade.h:41
-#, fuzzy
-msgid "Label Size (Round)"
-msgstr "Tamanho da etiqueta:"
+#~ msgid "Object _Properties"
+#~ msgstr "_Propriedades de objeto"
 
-#: data/glade/template-designer.glade.h:42
-#, fuzzy
-msgid "Label or Card Shape"
-msgstr "Nova Etiqueta ou Cartão"
+#~ msgid "Bring to _Front"
+#~ msgstr "Trazer para _frente"
 
-#: data/glade/template-designer.glade.h:43
-msgid "Label or Card Size (Rectangular)"
-msgstr ""
+#~ msgid "Send to _Back"
+#~ msgstr "Enviar para _trás"
 
-#: data/glade/template-designer.glade.h:44
-#, fuzzy
-msgid "Layout #1"
-msgstr "Disposição:"
+#~ msgid "Rotate _Left"
+#~ msgstr "Girar à _esquerda"
 
-#: data/glade/template-designer.glade.h:45
-#, fuzzy
-msgid "Layout #2"
-msgstr "Disposição:"
+#~ msgid "Rotate _Right"
+#~ msgstr "Girar à _direita"
 
-#: data/glade/template-designer.glade.h:46
-#, fuzzy
-msgid "Layout(s)"
-msgstr "Disposição:"
+#~ msgid "Flip _Horizontally"
+#~ msgstr "Refletir _horizontalmente"
 
-#: data/glade/template-designer.glade.h:47
-#, fuzzy
-msgid "Name and Description"
-msgstr "Descrição:"
+#~ msgid "Flip _Vertically"
+#~ msgstr "Refletir _verticalmente"
 
-#: data/glade/template-designer.glade.h:48
-msgid "Number across (nx):"
-msgstr ""
+#~ msgid "_Lefts"
+#~ msgstr "_Esquerdas"
 
-#: data/glade/template-designer.glade.h:49
-msgid "Number down (ny):"
-msgstr ""
+#~ msgid "_Rights"
+#~ msgstr "_Direitas"
 
-#: data/glade/template-designer.glade.h:50
-msgid "Number of Layouts"
-msgstr ""
+#~ msgid "_Centers"
+#~ msgstr "C_entros"
 
-#: data/glade/template-designer.glade.h:51
-msgid "Number of layouts:"
-msgstr ""
+#~ msgid "_Tops"
+#~ msgstr "_Topos"
 
-#: data/glade/template-designer.glade.h:52
-#, fuzzy
-msgid "Page Size"
-msgstr "Tamanho da página:"
+#~ msgid "Bottoms"
+#~ msgstr "Bases"
 
-#: data/glade/template-designer.glade.h:54
-msgid "Part #:"
-msgstr ""
+#~ msgid "Centers"
+#~ msgstr "Centros"
 
-#: data/glade/template-designer.glade.h:55
-msgid ""
-"Please enter the following identifying information about the template "
-"stationery."
-msgstr ""
+#~ msgid "Label Ce_nter"
+#~ msgstr "Ce_ntro da etiqueta"
 
-#: data/glade/template-designer.glade.h:56
-msgid "Please enter the following layout information."
-msgstr ""
+#~ msgid "Linked"
+#~ msgstr "Ligado"
 
-#: data/glade/template-designer.glade.h:57
-msgid ""
-"Please enter the following size parameters of a single label in your "
-"template."
-msgstr ""
+#~ msgid "Not Linked"
+#~ msgstr "Não ligado"
 
-#: data/glade/template-designer.glade.h:58
-msgid ""
-"Please enter the following size parameters of a single label or card in your "
-"template."
-msgstr ""
+#~ msgid "glabels"
+#~ msgstr "glabels"
 
-#: data/glade/template-designer.glade.h:59
-msgid "Please select the basic shape of the labels or cards."
-msgstr ""
+#~ msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
+#~ msgstr ""
+#~ "<span weight=\"bold\" size=\"larger\">Propriedades do objeto Xxx</span>"
 
-#: data/glade/template-designer.glade.h:60
-msgid "Please select the page size of the template stationery."
-msgstr ""
+#~ msgid "<span weight=\"bold\">Default page size</span>"
+#~ msgstr "<span weight=\"bold\">Tamanho de página padrão</span>"
 
-#: data/glade/template-designer.glade.h:61
-#, fuzzy
-msgid "Print test sheet"
-msgstr "na primeira folha"
+#~ msgid "<span weight=\"bold\">Fill</span>"
+#~ msgstr "<span weight=\"bold\">Preenchimento</span>"
 
-#: data/glade/template-designer.glade.h:62
-msgid "Rectangular or square (can have rounded corners)"
-msgstr ""
+#~ msgid "<span weight=\"bold\">Line</span>"
+#~ msgstr "<span weight=\"bold\">Linha</span>"
 
-#: data/glade/template-designer.glade.h:63
-msgid "Round"
-msgstr ""
+#~ msgid "<span weight=\"bold\">Text</span>"
+#~ msgstr "<span weight=\"bold\">Texto</span>"
 
-#: data/glade/template-designer.glade.h:64
-msgid ""
-"Templates needing\n"
-"two layouts."
-msgstr ""
+#~ msgid "<span weight=\"bold\">Units</span>"
+#~ msgstr "<span weight=\"bold\">Unidades</span>"
 
-#: data/glade/template-designer.glade.h:66
-msgid ""
-"Templates needing only\n"
-"one layout."
-msgstr ""
+#~ msgid "<b>Copies</b>"
+#~ msgstr "<b>Cópias</b>"
 
-#: data/glade/template-designer.glade.h:68
-msgid "Vertical pitch (dy):"
-msgstr ""
+#~ msgid "Show view debugging messages."
+#~ msgstr "Exibe mensagens de depuração de visualização."
 
-#: data/glade/template-designer.glade.h:69
-msgid ""
-"Welcome to the gLabels Template Designer.\n"
-"\n"
-"This dialog will assist you in the creation of a custom gLabels template."
-msgstr ""
+#~ msgid "Show item debugging messages."
+#~ msgstr "Exibe mensagens de depuração de item."
 
-#: data/templates/paper-sizes.xml.h:1
-msgid "A0"
-msgstr ""
+#~ msgid "Show printing debugging messages."
+#~ msgstr "Exibe mensagens de depuração de impressão."
 
-#: data/templates/paper-sizes.xml.h:2
-msgid "A1"
-msgstr ""
+#~ msgid "Show prefs debugging messages."
+#~ msgstr "Exibe mensagens de depuração de preferências."
 
-#: data/templates/paper-sizes.xml.h:3
-msgid "A10"
-msgstr ""
+#~ msgid "Show file debugging messages."
+#~ msgstr "Exibe mensagens de depuração de arquivo."
 
-#: data/templates/paper-sizes.xml.h:4
-msgid "A2"
-msgstr ""
+#~ msgid "Show document debugging messages."
+#~ msgstr "Exibe mensagens de depuração de documeto."
 
-#: data/templates/paper-sizes.xml.h:5
-msgid "A3"
-msgstr ""
+#~ msgid "Show template debugging messages."
+#~ msgstr "Exibe mensagens de depuração de modelo."
 
-#: data/templates/paper-sizes.xml.h:6
-msgid "A4"
-msgstr ""
+#, fuzzy
+#~ msgid "Show paper debugging messages."
+#~ msgstr "Exibe mensagens de depuração de preferências."
 
-#: data/templates/paper-sizes.xml.h:7
-msgid "A5"
-msgstr ""
+#~ msgid "Show xml debugging messages."
+#~ msgstr "Exibe mensagens de depuração de xml."
 
-#: data/templates/paper-sizes.xml.h:8
-msgid "A6"
-msgstr ""
+#~ msgid "Show document merge debugging messages."
+#~ msgstr "Exibe mensagens de depuração de fusão de documento."
 
-#: data/templates/paper-sizes.xml.h:9
-msgid "A7"
-msgstr ""
+#~ msgid "Show commands debugging messages."
+#~ msgstr "Exibe mensagens de depuração de comandos."
 
-#: data/templates/paper-sizes.xml.h:10
-msgid "A8"
-msgstr ""
+#~ msgid "Show undo debugging messages."
+#~ msgstr "Exibe mensagens de depuração de desfazer."
 
-#: data/templates/paper-sizes.xml.h:11
-msgid "A9"
-msgstr ""
+#~ msgid "Show recent debugging messages."
+#~ msgstr "Exibe mensagens de depuração de recentes"
 
-#: data/templates/paper-sizes.xml.h:12
-msgid "B0"
-msgstr ""
+#~ msgid "Show window debugging messages."
+#~ msgstr "Exibe mensagens de depuração de janela."
 
-#: data/templates/paper-sizes.xml.h:13
-msgid "B1"
-msgstr ""
+#~ msgid "Show ui debugging messages."
+#~ msgstr "Exibe mensagens de depuração de ui."
 
-#: data/templates/paper-sizes.xml.h:14
-msgid "B10"
-msgstr ""
+#, fuzzy
+#~ msgid "Show property_bar debugging messages."
+#~ msgstr "Exibe mensagens de depuração de preferências."
 
-#: data/templates/paper-sizes.xml.h:15
-msgid "B2"
-msgstr ""
+#~ msgid "Show media select widget debugging messages."
+#~ msgstr "Exibe mensagens de depuração de widget de seleção de mídia."
 
-#: data/templates/paper-sizes.xml.h:16
-msgid "B3"
-msgstr ""
+#~ msgid "Show mini preview widget debugging messages."
+#~ msgstr "Exibe mensagens de depuração de widget de mini previsão."
 
-#: data/templates/paper-sizes.xml.h:17
-msgid "B4"
-msgstr ""
+#, fuzzy
+#~ msgid "Show pixbuf cache debugging messages."
+#~ msgstr "Exibe mensagens de depuração de visualização."
 
-#: data/templates/paper-sizes.xml.h:18
-msgid "B5"
-msgstr ""
+#~ msgid "Show widget debugging messages."
+#~ msgstr "Exibe mensagens de depuração de widget."
 
-#: data/templates/paper-sizes.xml.h:19
-msgid "B6"
-msgstr ""
+#, fuzzy
+#~ msgid "Show object editor debugging messages."
+#~ msgstr "Exibe mensagens de depuração de recentes"
 
-#: data/templates/paper-sizes.xml.h:20
-msgid "B7"
-msgstr ""
+#~ msgid "Turn on all debugging messages."
+#~ msgstr "Ativa todas as mensagens de depuração."
 
-#: data/templates/paper-sizes.xml.h:21
-msgid "B8"
-msgstr ""
+#~ msgid "Could not initialize Bonobo!\n"
+#~ msgstr "Impossível inicializar Bonobo!\n"
 
-#: data/templates/paper-sizes.xml.h:22
-msgid "B9"
-msgstr ""
+#~ msgid "print this message"
+#~ msgstr "mostra esta mensagem"
 
-#: data/templates/paper-sizes.xml.h:23
-msgid "US Executive"
-msgstr ""
+#~ msgid "print the version of glabels-batch being used"
+#~ msgstr "mostra a versão de glabels-batch que está sendo usada"
 
-#: data/templates/paper-sizes.xml.h:24
-msgid "US Legal"
-msgstr ""
+#~ msgid "[OPTION...] GLABELS_FILE..."
+#~ msgstr "[OPÇÃO...] ARQUIVO_GLABELS..."
 
-#: data/templates/avery-us-templates.xml.h:1
-#: data/templates/zweckform-iso-templates.xml.h:1
-msgid "Address Labels"
-msgstr ""
+#~ msgid "missing glabels file\n"
+#~ msgstr "faltando arquivo glabels\n"
 
-#: data/templates/avery-us-templates.xml.h:2
-#: data/templates/avery-iso-templates.xml.h:2
-#: data/templates/zweckform-iso-templates.xml.h:3
-#: data/templates/misc-us-templates.xml.h:2
-#: data/templates/misc-iso-templates.xml.h:9
-msgid "Business Cards"
-msgstr ""
+#~ msgid "Media Type"
+#~ msgstr "Tipo de mídia"
 
-#: data/templates/avery-us-templates.xml.h:3
-msgid "CD/DVD Labels (Disc Labels)"
-msgstr ""
+#~ msgid "Open"
+#~ msgstr "Abrir"
 
-#: data/templates/avery-us-templates.xml.h:4
-msgid "Diskette Labels"
-msgstr ""
+#~ msgid "Align _Horizontally"
+#~ msgstr "Alinhar _Horizontalmente"
 
-#: data/templates/avery-us-templates.xml.h:5
-#, fuzzy
-msgid "Filing Labels"
-msgstr "Etiquetas"
+#~ msgid "Align _Vertically"
+#~ msgstr "Alinhar _Verticalmente"
 
-#: data/templates/avery-us-templates.xml.h:6
-msgid "Full Sheet Labels"
-msgstr ""
+#~ msgid "_Delete"
+#~ msgstr "_Apagar"
 
-#: data/templates/avery-us-templates.xml.h:7
-#, fuzzy
-msgid "Large Round Labels"
-msgstr "Iniciar na etiqueta"
+#~ msgid "_Job"
+#~ msgstr "_Trabalho"
 
-#: data/templates/avery-us-templates.xml.h:8
-msgid "Name Badge Labels"
-msgstr ""
+#~ msgid "P_rinter"
+#~ msgstr "Imp_ressora"
 
-#: data/templates/avery-us-templates.xml.h:9
-msgid "Return Address Labels"
-msgstr ""
+#~ msgid "Document merge control"
+#~ msgstr "Controle de fusão do documento"
 
-#: data/templates/avery-us-templates.xml.h:10
-msgid "Shipping Labels"
-msgstr ""
+#~ msgid "Print preview"
+#~ msgstr "Visualizar impressão"
 
-#: data/templates/avery-us-templates.xml.h:11
 #, fuzzy
-msgid "Small Round Labels"
-msgstr "Iniciar na etiqueta"
+#~ msgid "Importing from glabels 1.91 format"
+#~ msgstr "Importando do formato do glabels 0.1"
 
-#: data/templates/avery-us-templates.xml.h:12
-#, fuzzy
-msgid "Square Labels"
-msgstr "Etiquetas"
+#~ msgid "Text file with comma delimeters (CSV)"
+#~ msgstr "Arquivo texto separado com vírgulas (CSV)"
 
-#: data/templates/avery-us-templates.xml.h:13
-msgid "Video Tape Face Labels"
-msgstr ""
+#~ msgid "Text file with colon delimeters"
+#~ msgstr "Arquivo texto separado com dois pontos"
 
-#: data/templates/avery-us-templates.xml.h:14
-msgid "Video Tape Spine Labels"
-msgstr ""
+#~ msgid "Text file with tab delimeters"
+#~ msgstr "Arquivo texto separado com tab"
 
-#: data/templates/avery-iso-templates.xml.h:1
-msgid "Address labels"
-msgstr ""
+#~ msgid "%s x %s %s"
+#~ msgstr "%s x %s %s"
 
-#: data/templates/avery-iso-templates.xml.h:3
-msgid "CD Booklet"
-msgstr ""
+#~ msgid "%.5g x %.5g %s"
+#~ msgstr "%.5g x %.5g %s"
 
-#: data/templates/avery-iso-templates.xml.h:4
-msgid "CD Inlet"
-msgstr ""
+#~ msgid "%.5g %s diameter"
+#~ msgstr "%.5g %s diâmetro"
 
-#: data/templates/avery-iso-templates.xml.h:5
-#: data/templates/zweckform-iso-templates.xml.h:4
-#: data/templates/misc-us-templates.xml.h:4
-#: data/templates/misc-iso-templates.xml.h:10
 #, fuzzy
-msgid "CD/DVD Labels"
-msgstr "Etiquetas"
+#~ msgid "magenta"
+#~ msgstr "Imagem"
 
-#: data/templates/avery-iso-templates.xml.h:6
 #, fuzzy
-msgid "Diskette labels"
-msgstr "Sobre glabels"
+#~ msgid "No paper files found!"
+#~ msgstr "Nenhum arquivo modelo encontrado!"
 
-#: data/templates/avery-iso-templates.xml.h:7
-#: data/templates/zweckform-iso-templates.xml.h:7
-#: data/templates/misc-iso-templates.xml.h:17
-msgid "Mailing Labels"
-msgstr ""
+#~ msgid "Close"
+#~ msgstr "Fechar"
 
-#: data/templates/avery-iso-templates.xml.h:8
-#, fuzzy
-msgid "Mailing labels"
-msgstr "glabels"
+#~ msgid "Cu_t"
+#~ msgstr "Cor_tar"
 
-#: data/templates/avery-iso-templates.xml.h:9
-msgid "Mini Address Labels"
-msgstr ""
+#~ msgid "Customize"
+#~ msgstr "Personalizar"
 
-#: data/templates/avery-iso-templates.xml.h:10
-#, fuzzy
-msgid "Shipping labels"
-msgstr "Abrir etiqueta"
+#~ msgid "Customize toolbars"
+#~ msgstr "Personaliza barras de ferramentas"
 
-#: data/templates/zweckform-iso-templates.xml.h:2
-#, fuzzy
-msgid "Allround Labels"
-msgstr "Sobre glabels"
+#~ msgid "Dump XML"
+#~ msgstr "Descarregar XML"
 
-#: data/templates/zweckform-iso-templates.xml.h:5
-msgid "Correction and Cover-up Labels"
-msgstr ""
+#~ msgid "Dump the UI Xml description"
+#~ msgstr "Descarrega a descrição da UI Xml"
 
-#: data/templates/zweckform-iso-templates.xml.h:6
-msgid "Lever Arch File Labels"
-msgstr ""
+#, fuzzy
+#~ msgid "Font selector"
+#~ msgstr "Copia a seleção"
 
-#: data/templates/zweckform-iso-templates.xml.h:8
-msgid "QSL-Karten Etiketten 70mm x 50,8mm"
-msgstr ""
+#~ msgid "Icon and _Text"
+#~ msgstr "Ícone e _Texto"
 
-#: data/templates/zweckform-iso-templates.xml.h:9
-msgid "Rectangular Copier Labels"
-msgstr ""
+#~ msgid "M_arkup"
+#~ msgstr "M_arcação"
 
-#: data/templates/zweckform-iso-templates.xml.h:10
-#: data/templates/misc-iso-templates.xml.h:22
-msgid "Rectangular Labels"
-msgstr ""
+#~ msgid "New"
+#~ msgstr "Novo"
 
-#: data/templates/zweckform-iso-templates.xml.h:11
-msgid "Video Labels (back)"
-msgstr ""
+#, fuzzy
+#~ msgid "Object property editor"
+#~ msgstr "_Propriedades de Objeto"
 
-#: data/templates/misc-us-templates.xml.h:1
-msgid "Business Card CD"
-msgstr ""
+#~ msgid "Only show icons in the drawing toolbar"
+#~ msgstr "Exibe somente ícones na barra de ferramentas de desenho"
 
-#: data/templates/misc-us-templates.xml.h:3
-msgid "CD Template Rectangles"
-msgstr ""
+#~ msgid "Only show icons in the main toolbar"
+#~ msgstr "Exibe somente ícones na barra de ferramentas principal"
 
-#: data/templates/misc-us-templates.xml.h:5
-msgid "CD/DVD Labels (Face Only)"
-msgstr ""
+#~ msgid "Pr_eferences..."
+#~ msgstr "Pr_eferências..."
 
-#: data/templates/misc-us-templates.xml.h:6
-#: data/templates/misc-iso-templates.xml.h:11
-msgid "CD/DVD Labels (face only)"
-msgstr ""
+#~ msgid "Properties"
+#~ msgstr "Propriedades"
 
-#: data/templates/misc-us-templates.xml.h:7
-#, fuzzy
-msgid "DLT Labels"
-msgstr "Etiquetas"
+#~ msgid "Quit"
+#~ msgstr "Sair"
 
-#: data/templates/misc-us-templates.xml.h:8
-#, fuzzy
-msgid "Microtube labels"
-msgstr "Sobre glabels"
+#~ msgid "Redo the undone action"
+#~ msgstr "Refaz a ação desfeita"
 
-#: data/templates/misc-us-templates.xml.h:9
-msgid "Mini-CD Labels"
-msgstr ""
+#~ msgid "Save"
+#~ msgstr "Salvar"
 
-#: data/templates/misc-us-templates.xml.h:10
-msgid "PRO CD Labels 2-up (CD spine only)"
-msgstr ""
+#~ msgid "Save As"
+#~ msgstr "Salvar como"
 
-#: data/templates/misc-us-templates.xml.h:11
-msgid "PRO CD Labels 2-up (Face only)"
-msgstr ""
+#~ msgid "Select _All"
+#~ msgstr "Selecionar _Tudo"
 
-#: data/templates/misc-us-templates.xml.h:12
-#: data/templates/misc-iso-templates.xml.h:21
-msgid "PRO CD Labels 2-up (face only)"
-msgstr ""
+#~ msgid "Set drawing toolbar button style according to desktop default"
+#~ msgstr ""
+#~ "Define estilo de botão da barra de ferramentas de desenho de acordo com "
+#~ "padrão do desktop"
 
-#: data/templates/misc-us-templates.xml.h:13
-msgid "Slimline CD Case (rightside up)"
-msgstr ""
+#~ msgid "Set main toolbar button style according to desktop default"
+#~ msgstr ""
+#~ "Define estilo de botão da barra de ferramentas principal de acordo com "
+#~ "padrão do desktop"
 
-#: data/templates/misc-us-templates.xml.h:14
-msgid "Slimline CD Case (upside down)"
-msgstr ""
+#~ msgid "Show _Tooltips"
+#~ msgstr "Exibir _Dicas"
 
-#: data/templates/misc-iso-templates.xml.h:1
-msgid "Agipa 119488: Business Cards"
-msgstr ""
+#, fuzzy
+#~ msgid "Show both icons and texts in the drawing toolbar"
+#~ msgstr "Exibe dicas na barra de ferramentas de desenho"
 
-#: data/templates/misc-iso-templates.xml.h:2
-msgid "Allround Labels --24"
-msgstr ""
+#, fuzzy
+#~ msgid "Show both icons and texts in the main toolbar"
+#~ msgstr "Exibe dicas na barra de ferramentas principal"
 
-#: data/templates/misc-iso-templates.xml.h:3
-msgid "Allround Labels --44"
-msgstr ""
+#~ msgid "Show tooltips in the drawing toolbar"
+#~ msgstr "Exibe dicas na barra de ferramentas de desenho"
 
-#: data/templates/misc-iso-templates.xml.h:4
-msgid "Allround Labels --64"
-msgstr ""
+#~ msgid "Show tooltips in the main toolbar"
+#~ msgstr "Exibe dicas na barra de ferramentas principal"
 
-#: data/templates/misc-iso-templates.xml.h:5
-msgid "Allround Labels --65"
-msgstr ""
+#, fuzzy
+#~ msgid "Show tooltips in the property toolbar"
+#~ msgstr "Exibe dicas na barra de ferramentas principal"
 
-#: data/templates/misc-iso-templates.xml.h:6
-msgid "Arch File Labels"
-msgstr ""
+#~ msgid "U_n-select All"
+#~ msgstr "D_esmarcar Tudo"
 
-#: data/templates/misc-iso-templates.xml.h:7
-msgid "Arch File Labels (large)"
-msgstr ""
+#~ msgid "Undo the last action"
+#~ msgstr "Desfaz a última ação"
 
-#: data/templates/misc-iso-templates.xml.h:8
-msgid "Arch File Labels (small)"
-msgstr ""
+#~ msgid "_About..."
+#~ msgstr "_Sobre..."
 
-#: data/templates/misc-iso-templates.xml.h:12
-msgid "CD/DVD Labels Standard Format (face only)"
-msgstr ""
+#~ msgid "_Bottoms"
+#~ msgstr "_Bases"
 
-#: data/templates/misc-iso-templates.xml.h:13
-msgid "Diskette Labels (face only)"
-msgstr ""
+#~ msgid "_Contents"
+#~ msgstr "_Conteúdo"
 
-#: data/templates/misc-iso-templates.xml.h:14
-msgid "EPSON Photo Stickers 16"
-msgstr ""
+#~ msgid "_Copy"
+#~ msgstr "_Copiar"
 
-#: data/templates/misc-iso-templates.xml.h:15
-msgid "Etiketten"
-msgstr ""
+#~ msgid "_Create Object"
+#~ msgstr "_Criar Objeto"
 
-#: data/templates/misc-iso-templates.xml.h:16
-msgid "Fridge Magnet Stickers"
-msgstr ""
+#~ msgid "_Debug"
+#~ msgstr "_Depurar"
 
-#: data/templates/misc-iso-templates.xml.h:18
-msgid "Mailing Labels --14"
-msgstr ""
+#~ msgid "_Desktop Default"
+#~ msgstr "Padrão _Desktop"
 
-#: data/templates/misc-iso-templates.xml.h:19
-msgid "Mailing Labels-2 columns"
-msgstr ""
+#~ msgid "_Drawing Toolbar"
+#~ msgstr "Barra de _Desenho"
 
-#: data/templates/misc-iso-templates.xml.h:20
-msgid "Mailing Labels-3 columns"
-msgstr ""
+#~ msgid "_Icon"
+#~ msgstr "_Ícone"
 
-#: data/templates/misc-iso-templates.xml.h:23
-msgid "Video Labels (face only)"
-msgstr ""
+#~ msgid "_Main Toolbar"
+#~ msgstr "Barra _Principal"
 
-#: data/desktop/glabels.desktop.in.h:1
-msgid "Create labels, business cards and media covers."
-msgstr ""
+#~ msgid "_Merge Properties..."
+#~ msgstr "Propriedades de _Fusão..."
 
-#: data/desktop/glabels.desktop.in.h:2
-msgid "gLabels Label Designer"
-msgstr ""
+#~ msgid "_Paste"
+#~ msgstr "_Colar"
 
-#: data/mime/glabels.keys.in.h:1 data/mime/glabels.xml.in.h:1
 #, fuzzy
-msgid "gLabels Project File"
-msgstr "_Propriedades de Objeto"
+#~ msgid "_Property Toolbar"
+#~ msgstr "Barra de _Desenho"
 
 #~ msgid "Object _Properties..."
 #~ msgstr "_Propriedades do Objeto..."
@@ -2511,9 +3591,6 @@ msgstr "_Propriedades de Objeto"
 #~ msgid "Display units"
 #~ msgstr "Exibir unidades"
 
-#~ msgid "Default page size"
-#~ msgstr "Tamanho de página padrão"
-
 #~ msgid "Outline"
 #~ msgstr "Contorno"
 
@@ -2529,37 +3606,24 @@ msgstr "_Propriedades de Objeto"
 #~ msgid "Maintain current aspect ratio"
 #~ msgstr "Manter taxa de aspecto atual"
 
-#, fuzzy
-#~ msgid "CD Labels"
-#~ msgstr "Etiquetas"
-
 #~ msgid "Open %s"
 #~ msgstr "Abrir %s"
 
 #~ msgid "Scale:"
 #~ msgstr "Escala:"
 
-#~ msgid "%"
-#~ msgstr "%"
-
 #~ msgid "Show text with barcode"
 #~ msgstr "Exibir texto com código de barras"
 
 #~ msgid "Edit properties..."
 #~ msgstr "Editar propriedades..."
 
-#~ msgid "Fields"
-#~ msgstr "Campos"
-
 #~ msgid "Column"
 #~ msgstr "Coluna"
 
 #~ msgid "Custom field key"
 #~ msgstr "Chave do campo específico"
 
-#~ msgid "Sample data"
-#~ msgstr "Dado de amostra"
-
 #~ msgid "Revert to saved copy of %s?"
 #~ msgstr "Reverter para a cópia gravada de %s?"
 
@@ -2593,12 +3657,6 @@ msgstr "_Propriedades de Objeto"
 #~ msgid "Image format not currently supported"
 #~ msgstr "Formato de imagem não suportado atualmente"
 
-#~ msgid "Barcode data"
-#~ msgstr "Dado do Código de Barras:"
-
-#~ msgid "General"
-#~ msgstr "Geral"
-
 #~ msgid "Make a new, empty label"
 #~ msgstr "Criar uma etiqueta nova, vazia"
 
index 1e5e15a45f12c0ae7217df09e9c3c37e01e52962..b03721ecbc89198ae390018ee01f07783aa86b77 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
 # Russian translation of glabels.
 # Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-# Alexandre Prokoudine <alexandre.prokoudine@gmail.com>, 2009, 2009.
+# Vitaly Lipatov <lav@altlinux.ru>, 2002, 2003, 2004, 2005.
+#
 msgid ""
 msgstr ""
-"Project-Id-Version: glabels 2.2.5\n"
+"Project-Id-Version: glabels 2.3.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-08 15:34+0400\n"
-"PO-Revision-Date: 2009-09-08 16:34+0400\n"
+"POT-Creation-Date: 2010-07-10 00:37-0400\n"
+"PO-Revision-Date: 2009-07-29 19:58+0400\n"
 "Last-Translator: Alexandre Prokoudine <alexandre.prokoudine@gmail.com>\n"
-"Language-Team: Russian <gnome-cyr@lists.gnome.org>\n"
+"Language-Team: Russian <ru@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.10\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
 "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 
-#: ../src/glabels.c:75 ../src/glabels-batch.c:70
-msgid "[FILE...]"
-msgstr "[ФАЙЛ...]"
+#: ../src/bc.c:66
+msgid "POSTNET (any)"
+msgstr "POSTNET (любой)"
 
-#: ../src/glabels.c:91
-msgid "- gLabels label designer"
-msgstr "— дизайнер этикеток gLabels"
+#: ../src/bc.c:69
+msgid "POSTNET-5 (ZIP only)"
+msgstr "POSTNET-5 (только почтовый индекс)"
 
-#: ../src/glabels-batch.c:54
-msgid "set output filename (default=\"output.pdf\")"
-msgstr "Установить название выходного файла (по умолчанию — \"output.ps\""
+#: ../src/bc.c:72
+msgid "POSTNET-9 (ZIP+4)"
+msgstr "POSTNET-9 (ZIP+4)"
 
-#: ../src/glabels-batch.c:54 ../src/glabels-batch.c:68
-msgid "filename"
-msgstr "название"
+#: ../src/bc.c:75
+msgid "POSTNET-11 (DPBC)"
+msgstr "POSTNET-11 (DPBC)"
 
-#: ../src/glabels-batch.c:56
-msgid "number of sheets (default=1)"
-msgstr "Количество листов (по умолчанию = 1)"
+#: ../src/bc.c:80
+msgid "CEPNET"
+msgstr "CEPNET"
 
-#: ../src/glabels-batch.c:56
-msgid "sheets"
-msgstr "страниц"
+#: ../src/bc.c:83
+msgid "EAN (any)"
+msgstr "EAN (любой)"
 
-#: ../src/glabels-batch.c:58
-msgid "number of copies (default=1)"
-msgstr "Количество копий (по умолчанию = 1)"
+#: ../src/bc.c:86
+msgid "EAN-8"
+msgstr "EAN-8"
 
-#: ../src/glabels-batch.c:58
-msgid "copies"
-msgstr "копий"
+#: ../src/bc.c:89
+msgid "EAN-8 +2"
+msgstr "EAN-8 +2"
 
-#: ../src/glabels-batch.c:60
-msgid "first label on first sheet (default=1)"
-msgstr "первая этикетка на первой странице (по умолчанию = 1)"
+#: ../src/bc.c:92
+msgid "EAN-8 +5"
+msgstr "EAN-8 +5"
 
-#: ../src/glabels-batch.c:60
-msgid "first"
-msgstr "первое"
+#: ../src/bc.c:95
+msgid "EAN-13"
+msgstr "EAN-13"
 
-#: ../src/glabels-batch.c:62 ../data/glade/print-custom-widget.glade.h:6
-msgid "print outlines (to test printer alignment)"
-msgstr "Печатать контуры этикеток (для тестирования выравнивания)"
+#: ../src/bc.c:98
+msgid "EAN-13 +2"
+msgstr "EAN-13 +2"
 
-#: ../src/glabels-batch.c:64 ../data/glade/print-custom-widget.glade.h:5
-msgid "print in reverse (i.e. a mirror image)"
-msgstr "Печатать зеркальное отображение"
+#: ../src/bc.c:101
+msgid "EAN-13 +5"
+msgstr "EAN-13 +5"
 
-#: ../src/glabels-batch.c:66 ../data/glade/print-custom-widget.glade.h:4
-msgid "print crop marks"
-msgstr "Печатать метки под обрез"
+#: ../src/bc.c:104
+msgid "UPC (UPC-A or UPC-E)"
+msgstr "UPC (UPC-A or UPC-E)"
 
-#: ../src/glabels-batch.c:68
-msgid "input file for merging"
-msgstr "Входной файл для заполнения полей"
+#: ../src/bc.c:107 ../src/bc.c:348
+msgid "UPC-A"
+msgstr "UPC-A"
 
-#: ../src/glabels-batch.c:96
-msgid "- batch process gLabels label files"
-msgstr "— пакетная обработка файлов этикеток gLabels"
+#: ../src/bc.c:110
+msgid "UPC-A +2"
+msgstr "UPC-A +2"
 
-#: ../src/glabels-batch.c:142
-#, c-format
-msgid "cannot perform document merge with glabels file %s\n"
-msgstr "Не удалось выполнить заполнение полей документа файлом gLabels %s\n"
+#: ../src/bc.c:113
+msgid "UPC-A +5"
+msgstr "UPC-A +5"
 
-#: ../src/glabels-batch.c:164
-#, c-format
-msgid "cannot open glabels file %s\n"
-msgstr "Не удалось открыть файл %s\n"
+#: ../src/bc.c:116 ../src/bc.c:351
+msgid "UPC-E"
+msgstr "UPC-E"
 
-#: ../src/window.c:259
-msgid "(none) - gLabels"
-msgstr "(нет открытых макетов) - gLabels"
+#: ../src/bc.c:119
+msgid "UPC-E +2"
+msgstr "UPC-E +2"
 
-#: ../src/window.c:432
-msgid "(modified)"
-msgstr "(изменено)"
+#: ../src/bc.c:122
+msgid "UPC-E +5"
+msgstr "UPC-E +5"
 
-#: ../src/stock.c:72
-msgid "_Select Mode"
-msgstr "_Режим выделения"
+#: ../src/bc.c:125 ../src/bc.c:288
+msgid "ISBN"
+msgstr "ISBN"
 
-#: ../src/stock.c:73
-msgid "_Text"
-msgstr "_Текст"
+#: ../src/bc.c:128
+msgid "ISBN +5"
+msgstr "ISBN +5"
 
-#: ../src/stock.c:74
-msgid "_Line"
-msgstr "_Линия"
+#: ../src/bc.c:131 ../src/bc.c:204
+msgid "Code 39"
+msgstr "Code 39"
 
-#: ../src/stock.c:75
-msgid "_Box"
-msgstr "_Прямоугольник"
+#: ../src/bc.c:134 ../src/bc.c:216
+msgid "Code 128"
+msgstr "Code 128"
 
-#: ../src/stock.c:76
-msgid "_Ellipse"
-msgstr "_Эллипс"
+#: ../src/bc.c:137
+msgid "Code 128C"
+msgstr "Code 128C"
 
-#: ../src/stock.c:77
-msgid "_Image"
-msgstr "_Изображение"
+#: ../src/bc.c:140
+msgid "Code 128B"
+msgstr "Code 128B"
 
-#: ../src/stock.c:78
-msgid "Bar_code"
-msgstr "_Штрих-код"
+#: ../src/bc.c:143 ../src/bc.c:285
+msgid "Interleaved 2 of 5"
+msgstr "Interleaved 2 of 5"
 
-#: ../src/stock.c:79
-msgid "_Merge Properties"
-msgstr "Заполнение полей данными"
+#: ../src/bc.c:146 ../src/bc.c:180
+msgid "Codabar"
+msgstr "Codabar"
 
-#: ../src/stock.c:80
-msgid "Object _Properties"
-msgstr "_Свойства объекта"
+#: ../src/bc.c:149
+msgid "MSI"
+msgstr "MSI"
 
-#: ../src/stock.c:81
-msgid "Bring to _Front"
-msgstr "На _передний план"
+#: ../src/bc.c:152
+msgid "Plessey"
+msgstr "Plessey"
 
-#: ../src/stock.c:82
-msgid "Send to _Back"
-msgstr "На _задний план"
+#: ../src/bc.c:155 ../src/bc.c:213
+#, fuzzy
+msgid "Code 93"
+msgstr "Code 39"
 
-#: ../src/stock.c:83
-msgid "Rotate _Left"
-msgstr "Повернуть на_лево"
+#: ../src/bc.c:162
+msgid "Australia Post Standard"
+msgstr ""
 
-#: ../src/stock.c:84
-msgid "Rotate _Right"
-msgstr "Повернуть на_право"
+#: ../src/bc.c:165
+msgid "Australia Post Reply Paid"
+msgstr ""
 
-#: ../src/stock.c:85
-msgid "Flip _Horizontally"
-msgstr "Отразить _горизонтально"
+#: ../src/bc.c:168
+msgid "Australia Post Route Code"
+msgstr ""
 
-#: ../src/stock.c:86
-msgid "Flip _Vertically"
-msgstr "Отразить _вертикально"
+#: ../src/bc.c:171
+msgid "Australia Post Redirect"
+msgstr ""
 
-#: ../src/stock.c:87
-msgid "_Lefts"
-msgstr "С_лева"
+#: ../src/bc.c:174
+msgid "Aztec Code"
+msgstr ""
 
-#: ../src/stock.c:88
-msgid "_Rights"
-msgstr "С_права"
+#: ../src/bc.c:177
+msgid "Aztec Rune"
+msgstr ""
 
-#: ../src/stock.c:89
-msgid "_Centers"
-msgstr "По _центру"
+#: ../src/bc.c:183
+#, fuzzy
+msgid "Code One"
+msgstr "Code 39"
 
-#: ../src/stock.c:90
-msgid "_Tops"
-msgstr "По _верху"
+#: ../src/bc.c:186
+#, fuzzy
+msgid "Code 11"
+msgstr "Code 128"
 
-#: ../src/stock.c:91
-msgid "Bottoms"
-msgstr "По низу"
+#: ../src/bc.c:189
+#, fuzzy
+msgid "Code 16K"
+msgstr "Code 128"
 
-#: ../src/stock.c:92
-msgid "Centers"
-msgstr "По центру"
+#: ../src/bc.c:192
+msgid "Code 2 of 5 Matrix"
+msgstr ""
 
-#: ../src/stock.c:93 ../src/stock.c:94
-msgid "Label Ce_nter"
-msgstr "_Центр этикетки"
+#: ../src/bc.c:195
+msgid "Code 2 of 5 IATA"
+msgstr ""
 
-#: ../src/stock.c:95 ../data/glade/property-bar.glade.h:3
-msgid "Fill color"
-msgstr "Цвет заливки"
+#: ../src/bc.c:198
+msgid "Code 2 of 5 Data Logic"
+msgstr ""
 
-#: ../src/stock.c:96 ../data/glade/property-bar.glade.h:8
-msgid "Line color"
-msgstr "Цвет линии"
+#: ../src/bc.c:201
+msgid "Code 32 (Italian Pharmacode)"
+msgstr ""
 
-#: ../src/stock.c:97 ../src/stock.c:99
-msgid "Linked"
-msgstr "Прикреплено"
+#: ../src/bc.c:207
+#, fuzzy
+msgid "Code 39 Extended"
+msgstr "Code 39"
 
-#: ../src/stock.c:98 ../src/stock.c:100
-msgid "Not Linked"
-msgstr "Не прикреплено"
+#: ../src/bc.c:210
+#, fuzzy
+msgid "Code 49"
+msgstr "Code 39"
 
-#. Menu entries.
-#: ../src/ui.c:93
-msgid "_File"
-msgstr "_Файл"
+#: ../src/bc.c:219
+msgid "Code 128 (Mode C supression)"
+msgstr ""
 
-#: ../src/ui.c:94
-msgid "Open Recent _Files"
-msgstr "Н_едавние файлы"
+#: ../src/bc.c:222
+msgid "DAFT Code"
+msgstr ""
 
-#: ../src/ui.c:95
-msgid "_Edit"
-msgstr "_Правка"
+#: ../src/bc.c:225
+#, fuzzy
+msgid "Data Matrix"
+msgstr "IEC16022 (DataMatrix)"
 
-#: ../src/ui.c:96
-msgid "_View"
-msgstr "_Вид"
+#: ../src/bc.c:228
+msgid "Deutsche Post Leitcode"
+msgstr ""
 
-#: ../src/ui.c:97
-msgid "Customize Main Toolbar"
-msgstr "Панель инструментов"
+#: ../src/bc.c:231
+msgid "Deutsche Post Identcode"
+msgstr ""
 
-#: ../src/ui.c:98
-msgid "Customize Drawing Toolbar"
-msgstr "Панель рисования"
+#: ../src/bc.c:234
+msgid "Dutch Post KIX Code"
+msgstr ""
 
-#: ../src/ui.c:99
-msgid "Customize Properties Toolbar"
-msgstr "Панель свойств"
+#: ../src/bc.c:237
+msgid "European Article Number (EAN)"
+msgstr ""
 
-#: ../src/ui.c:100
-msgid "_Objects"
-msgstr "_Объекты"
+#: ../src/bc.c:240
+msgid "Grid Matrix"
+msgstr ""
 
-#: ../src/ui.c:101
-msgid "_Create"
-msgstr "_Добавить"
+#: ../src/bc.c:243
+msgid "GS1-128"
+msgstr ""
 
-#: ../src/ui.c:102
-msgid "_Order"
-msgstr "_Порядок"
+#: ../src/bc.c:246
+msgid "GS1 DataBar-14"
+msgstr ""
 
-#: ../src/ui.c:103
-msgid "_Rotate/Flip"
-msgstr "П_овернуть/Отразить"
+#: ../src/bc.c:255
+msgid "GS1 DataBar-14 Stacked"
+msgstr ""
 
-#: ../src/ui.c:104
-msgid "Align _Horizontal"
-msgstr "Выровнять по _горизонтали"
+#: ../src/bc.c:258
+msgid "GS1 DataBar-14 Stacked Omni."
+msgstr ""
 
-#: ../src/ui.c:105
-msgid "Align _Vertical"
-msgstr "Выровнять по _вертикали"
+#: ../src/bc.c:261
+msgid "GS1 DataBar Extended Stacked"
+msgstr ""
 
-#: ../src/ui.c:106
-msgid "_Help"
-msgstr "_Справка"
+#: ../src/bc.c:264
+#, fuzzy
+msgid "HIBC Code 128"
+msgstr "Code 128"
 
-#. Popup entries.
-#: ../src/ui.c:109 ../src/ui.c:110
-msgid "Context Menu"
-msgstr "Контекстное меню"
+#: ../src/bc.c:267
+#, fuzzy
+msgid "HIBC Code 39"
+msgstr "Code 39"
 
-#: ../src/ui.c:115
-msgid "_New"
-msgstr "_Создать"
+#: ../src/bc.c:270
+#, fuzzy
+msgid "HIBC Data Matrix"
+msgstr "IEC16022 (DataMatrix)"
 
-#: ../src/ui.c:117
-msgid "Create a new file"
-msgstr "Создать новый документ"
+#: ../src/bc.c:273
+#, fuzzy
+msgid "HIBC QR Code"
+msgstr "IEC18004 (QRCode)"
 
-#: ../src/ui.c:122
-msgid "_Open..."
-msgstr "_Открыть..."
+#: ../src/bc.c:276
+msgid "HIBC PDF417"
+msgstr ""
 
-#: ../src/ui.c:124
-msgid "Open a file"
-msgstr "Открыть документ"
+#: ../src/bc.c:279
+msgid "HIBC Micro PDF417"
+msgstr ""
 
-#: ../src/ui.c:129
-msgid "_Save"
-msgstr "_Сохранить"
+#: ../src/bc.c:282
+msgid "HIBC Aztec Code"
+msgstr ""
 
-#: ../src/ui.c:131
-msgid "Save current file"
-msgstr "Сохранить текущий документ"
+#: ../src/bc.c:291
+msgid "ITF-14"
+msgstr ""
 
-#: ../src/ui.c:136
-msgid "Save _As..."
-msgstr "Сохранить _как..."
+#: ../src/bc.c:294
+msgid "Japanese Postal"
+msgstr ""
 
-#: ../src/ui.c:138
-msgid "Save the current file to a different name"
-msgstr "Сохранить текущий документ под другим именем"
+#: ../src/bc.c:297
+msgid "Korean Postal"
+msgstr ""
 
-#: ../src/ui.c:143
-msgid "_Print..."
-msgstr "_Напечатать..."
+#: ../src/bc.c:300
+msgid "LOGMARS"
+msgstr ""
 
-#: ../src/ui.c:145
-msgid "Print the current file"
-msgstr "Напечатать текущий файл"
+#: ../src/bc.c:303
+msgid "Micro PDF417"
+msgstr ""
 
-#: ../src/ui.c:150
-msgid "Properties..."
-msgstr "Свойства..."
+#: ../src/bc.c:306
+msgid "Micro QR Code"
+msgstr ""
 
-#: ../src/ui.c:152
-msgid "Modify document properties"
-msgstr "Изменить свойства документа"
+#: ../src/bc.c:309
+#, fuzzy
+msgid "MSI Plessey"
+msgstr "Plessey"
 
-#: ../src/ui.c:157
-msgid "Template _Designer..."
-msgstr "Дизайнер _шаблонов..."
+#: ../src/bc.c:312
+msgid "NVE-18"
+msgstr ""
 
-#: ../src/ui.c:159
-msgid "Create a custom template"
-msgstr "Создать свой шаблон"
+#: ../src/bc.c:315
+msgid "PDF417"
+msgstr ""
 
-#: ../src/ui.c:164
-msgid "_Close"
-msgstr "_Закрыть"
+#: ../src/bc.c:318
+msgid "PDF417 Truncated"
+msgstr ""
 
-#: ../src/ui.c:166
-msgid "Close the current file"
-msgstr "Закрыть текущий файл"
+#: ../src/bc.c:321
+#, fuzzy
+msgid "PLANET"
+msgstr "CEPNET"
 
-#: ../src/ui.c:171
-msgid "_Quit"
-msgstr "В_ыход"
+#: ../src/bc.c:324
+#, fuzzy
+msgid "PostNet"
+msgstr "Вставить"
 
-#: ../src/ui.c:173
-msgid "Quit the program"
-msgstr "Завершить работу с программой"
+#: ../src/bc.c:327
+#, fuzzy
+msgid "Pharmacode"
+msgstr "Штрих-код"
 
-#: ../src/ui.c:180
-msgid "Cut"
-msgstr "Вырезать"
+#: ../src/bc.c:330
+msgid "Pharmacode 2-track"
+msgstr ""
 
-#: ../src/ui.c:182
-msgid "Cut the selection"
-msgstr "Вырезать выделенное"
+#: ../src/bc.c:333
+msgid "Pharmazentral Nummer (PZN)"
+msgstr ""
 
-#: ../src/ui.c:187
-msgid "Copy"
-msgstr "Копировать"
+#: ../src/bc.c:336
+msgid "QR Code"
+msgstr ""
+
+#: ../src/bc.c:339
+msgid "Royal Mail 4-State"
+msgstr ""
+
+#: ../src/bc.c:342
+#, fuzzy
+msgid "Telepen"
+msgstr "Удалить"
+
+#: ../src/bc.c:345
+msgid "Telepen Numeric"
+msgstr ""
+
+#: ../src/bc.c:354
+msgid "USPS One Code"
+msgstr ""
+
+#: ../src/bc.c:357
+#, fuzzy
+msgid "UK Plessey"
+msgstr "Plessey"
+
+#: ../src/bc.c:364
+msgid "IEC16022 (DataMatrix)"
+msgstr "IEC16022 (DataMatrix)"
+
+#: ../src/bc.c:371
+msgid "IEC18004 (QRCode)"
+msgstr "IEC18004 (QRCode)"
+
+#: ../src/color-combo-button.c:198 ../src/color-combo.c:178
+msgid "Default Color"
+msgstr "Цвет по умолчанию"
+
+#: ../src/color-combo-menu.c:83
+msgid "Dark Red"
+msgstr "Тёмно-красный"
+
+#: ../src/color-combo-menu.c:84
+msgid "Brown"
+msgstr "Коричневый"
+
+#: ../src/color-combo-menu.c:85
+msgid "Dark Goldenrod"
+msgstr "Темный золотарник"
+
+#: ../src/color-combo-menu.c:86
+msgid "Dark Green"
+msgstr "Тёмно-зелёный"
+
+#: ../src/color-combo-menu.c:87
+msgid "Dark Cyan"
+msgstr "Темно-циановый"
+
+#: ../src/color-combo-menu.c:88
+msgid "Navy Blue"
+msgstr "Тёмно-синий"
+
+#: ../src/color-combo-menu.c:89
+msgid "Dark Violet"
+msgstr "Тёмно-фиолетовый"
+
+#: ../src/color-combo-menu.c:91
+msgid "Red"
+msgstr "Красный"
+
+#: ../src/color-combo-menu.c:92
+msgid "Orange"
+msgstr "Оранжевый"
+
+#: ../src/color-combo-menu.c:93
+msgid "Dark Yellow"
+msgstr "Темно-желтый"
+
+#: ../src/color-combo-menu.c:94
+msgid "Medium green"
+msgstr "Тускло-зелёный"
+
+#: ../src/color-combo-menu.c:95
+msgid "Turquoise"
+msgstr "Бирюзовый"
+
+#: ../src/color-combo-menu.c:96
+msgid "Blue"
+msgstr "Синий"
+
+#: ../src/color-combo-menu.c:97
+msgid "Purple"
+msgstr "Пурпурный"
+
+#: ../src/color-combo-menu.c:99
+msgid "Salmon"
+msgstr "Сомон"
+
+#: ../src/color-combo-menu.c:100
+msgid "Gold"
+msgstr "Золотой"
+
+#: ../src/color-combo-menu.c:101
+msgid "Yellow"
+msgstr "Жёлтый"
+
+#: ../src/color-combo-menu.c:102
+msgid "Green"
+msgstr "Зелёный"
+
+#: ../src/color-combo-menu.c:103
+msgid "Cyan"
+msgstr "Циановый"
+
+#: ../src/color-combo-menu.c:104
+msgid "SkyBlue"
+msgstr "Небесно-синий"
+
+#: ../src/color-combo-menu.c:105
+msgid "Violet"
+msgstr "Фиолетовый"
+
+#: ../src/color-combo-menu.c:107
+msgid "Pink"
+msgstr "Розовый"
+
+#: ../src/color-combo-menu.c:108
+msgid "Khaki"
+msgstr "Хаки"
+
+#: ../src/color-combo-menu.c:109
+msgid "Light Yellow"
+msgstr "Светло-жёлтый"
+
+#: ../src/color-combo-menu.c:110
+msgid "Light Green"
+msgstr "Светло-зелёный"
+
+#: ../src/color-combo-menu.c:111
+msgid "Light Cyan"
+msgstr "Светло-циановый"
+
+#: ../src/color-combo-menu.c:112
+msgid "Slate Gray"
+msgstr "Аспидно-серый"
+
+#: ../src/color-combo-menu.c:113
+msgid "Thistle"
+msgstr "Чертополох"
+
+#: ../src/color-combo-menu.c:115
+msgid "White"
+msgstr "Белый"
+
+#: ../src/color-combo-menu.c:117
+#, no-c-format
+msgid "10% Gray"
+msgstr "10% серый"
+
+#: ../src/color-combo-menu.c:119
+#, no-c-format
+msgid "25% Gray"
+msgstr "25% серый"
+
+#: ../src/color-combo-menu.c:121
+#, no-c-format
+msgid "40% Gray"
+msgstr "40% серый"
+
+#: ../src/color-combo-menu.c:123
+#, no-c-format
+msgid "50% Gray"
+msgstr "50% серый"
+
+#: ../src/color-combo-menu.c:125
+#, no-c-format
+msgid "60% Gray"
+msgstr "60% серый"
+
+#: ../src/color-combo-menu.c:126
+msgid "Black"
+msgstr "Чёрный"
+
+#: ../src/color-combo-menu.c:254 ../src/color-combo-menu.c:373
+msgid "Custom Color"
+msgstr "Заказной цвет:"
+
+#: ../src/color-combo-menu.c:319
+#, c-format
+msgid "Custom Color #%u"
+msgstr "Заказной цвет #%u"
+
+#: ../src/critical-error-handler.c:70
+msgid "gLabels Fatal Error!"
+msgstr "Фатальная ошибка gLabels!"
+
+#: ../src/file.c:84
+msgid "New Label or Card"
+msgstr "Новая этикетка или визитка"
+
+#: ../src/file.c:175 ../src/label.c:587 ../src/label.c:631
+msgid "Label properties"
+msgstr "Свойства этикетки"
+
+#: ../src/file.c:267 ../src/file.c:557
+msgid "All files"
+msgstr "Все файлы"
+
+#: ../src/file.c:272 ../src/file.c:562
+msgid "gLabels documents"
+msgstr "Документы gLabels"
+
+#: ../src/file.c:319 ../src/file.c:620
+msgid "Empty file name selection"
+msgstr "Пустой выбор файла"
+
+#: ../src/file.c:322 ../src/file.c:338
+msgid "Please select a file or supply a valid file name"
+msgstr "Выберите файл или введите корректное название файла"
+
+#: ../src/file.c:335
+msgid "File does not exist"
+msgstr "Файл не существует"
+
+#: ../src/file.c:410
+#, c-format
+msgid "Could not open file \"%s\""
+msgstr "Невозможно открыть файл  \"%s\""
+
+#: ../src/file.c:413
+msgid "Not a supported file format"
+msgstr "Файл неподдерживаемого формата"
+
+#: ../src/file.c:491 ../src/file.c:670
+#, c-format
+msgid "Could not save file \"%s\""
+msgstr "Невозможно сохранить файл \"%s\""
+
+#: ../src/file.c:495 ../src/file.c:674
+msgid "Error encountered during save.  The file is still not saved."
+msgstr "Произошла ошибка при сохранении файла.  Файл всё ещё не сохранён."
+
+#: ../src/file.c:535
+#, c-format
+msgid "Save \"%s\" as"
+msgstr "Сохранить \"%s\" как"
+
+#: ../src/file.c:623
+msgid "Please supply a valid file name"
+msgstr "Укажите корректное название файла"
+
+#: ../src/file.c:644
+#, c-format
+msgid "Overwrite file \"%s\"?"
+msgstr "Перезаписать файл \"%s\"?"
+
+#: ../src/file.c:648
+msgid "File already exists."
+msgstr "Файл уже существует."
+
+#: ../src/file.c:744
+#, c-format
+msgid "Save changes to document \"%s\" before closing?"
+msgstr "Сохранить изменения в документе \"%s\" перед закрытием?"
+
+#: ../src/file.c:748
+msgid "Your changes will be lost if you don't save them."
+msgstr "Все изменения будут потеряны, если вы их не сохраните."
+
+#: ../src/file.c:751
+msgid "Close without saving"
+msgstr "Закрыть без сохранения"
+
+#: ../src/font-combo-menu.c:137
+#, fuzzy
+msgid "Recent fonts"
+msgstr "Недавние шаблоны"
+
+#: ../src/font-combo-menu.c:152
+msgid "Proportional fonts"
+msgstr ""
+
+#: ../src/font-combo-menu.c:160
+msgid "Fixed-width fonts"
+msgstr ""
+
+#: ../src/font-combo-menu.c:168
+#, fuzzy
+msgid "All fonts"
+msgstr "Все файлы"
+
+#.
+#. * Allow text samples to be localized.
+#. *
+#. * FIXME: if we could extract enough meta information from the fonts
+#. * themselves, perhaps rather than setting these globally for the
+#. * current locale, they could be unique to each font family.
+#.
+#: ../src/font-combo-menu-item.c:132
+msgctxt "Short sample text"
+msgid "Aa"
+msgstr ""
+
+#: ../src/font-combo-menu-item.c:134
+msgctxt "Lower case sample text"
+msgid "abcdefghijklmnopqrstuvwxyz"
+msgstr ""
 
-#: ../src/ui.c:189
-msgid "Copy the selection"
-msgstr "Скопировать выделенное"
+#: ../src/font-combo-menu-item.c:136
+msgctxt "Upper case sample text"
+msgid "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr ""
 
-#: ../src/ui.c:194
-msgid "Paste"
-msgstr "Вставить"
+#: ../src/font-combo-menu-item.c:138
+msgctxt "Numbers and special characters sample text"
+msgid "0123456789 .:,;(*!?)"
+msgstr ""
 
-#: ../src/ui.c:196
-msgid "Paste the clipboard"
-msgstr "Вставить из буфера"
+#: ../src/font-combo-menu-item.c:157
+msgid "Sample text"
+msgstr ""
 
-#: ../src/ui.c:201
-msgid "Delete"
-msgstr "Удалить"
+#: ../src/glabels-batch.c:53
+msgid "set output filename (default=\"output.pdf\")"
+msgstr "Установить название выходного файла (по умолчанию — \"output.ps\""
 
-#: ../src/ui.c:203
-msgid "Delete the selected objects"
-msgstr "УдалиÑ\82Ñ\8c Ð²Ñ\8bбÑ\80аннÑ\8bе Ð¾Ð±Ñ\8aекÑ\82Ñ\8b"
+#: ../src/glabels-batch.c:53 ../src/glabels-batch.c:67
+msgid "filename"
+msgstr "название"
 
-#: ../src/ui.c:208
-msgid "Select All"
-msgstr "Ð\92Ñ\8bделиÑ\82Ñ\8c Ð²Ñ\81е"
+#: ../src/glabels-batch.c:55
+msgid "number of sheets (default=1)"
+msgstr "Ð\9aолиÑ\87еÑ\81Ñ\82во Ð»Ð¸Ñ\81Ñ\82ов (по Ñ\83молÑ\87аниÑ\8e = 1)"
 
-#: ../src/ui.c:210
-msgid "Select all objects"
-msgstr "Выделить все объекты"
+#: ../src/glabels-batch.c:55
+msgid "sheets"
+msgstr "страниц"
 
-#: ../src/ui.c:215
-msgid "Un-select All"
-msgstr "СнÑ\8fÑ\82Ñ\8c Ð²Ñ\8bделение"
+#: ../src/glabels-batch.c:57
+msgid "number of copies (default=1)"
+msgstr "Ð\9aолиÑ\87еÑ\81Ñ\82во ÐºÐ¾Ð¿Ð¸Ð¹ (по Ñ\83молÑ\87аниÑ\8e = 1)"
 
-#: ../src/ui.c:217
-msgid "Remove all selections"
-msgstr "СнÑ\8fÑ\82Ñ\8c Ð²Ñ\8bделение Ñ\81о Ð²Ñ\81еÑ\85 Ð¾Ð±Ñ\8aекÑ\82ов"
+#: ../src/glabels-batch.c:57
+msgid "copies"
+msgstr "копий"
 
-#: ../src/ui.c:222
-msgid "Preferences"
-msgstr "Ð\9fаÑ\80амеÑ\82Ñ\80Ñ\8b"
+#: ../src/glabels-batch.c:59
+msgid "first label on first sheet (default=1)"
+msgstr "пеÑ\80ваÑ\8f Ñ\8dÑ\82икеÑ\82ка Ð½Ð° Ð¿ÐµÑ\80вой Ñ\81Ñ\82Ñ\80аниÑ\86е (по Ñ\83молÑ\87аниÑ\8e = 1)"
 
-#: ../src/ui.c:224
-msgid "Configure the application"
-msgstr "Ð\9dаÑ\81Ñ\82Ñ\80оиÑ\82Ñ\8c Ð¿Ñ\80огÑ\80аммÑ\83"
+#: ../src/glabels-batch.c:59
+msgid "first"
+msgstr "пеÑ\80вое"
 
-#: ../src/ui.c:231
-msgid "Zoom in"
-msgstr "Приблизить"
+#: ../src/glabels-batch.c:61 ../data/ui/print-op-dialog-custom-widget.ui.h:13
+msgid "print outlines (to test printer alignment)"
+msgstr "Печатать контуры этикеток (для тестирования выравнивания)"
 
-#: ../src/ui.c:233
-msgid "Increase magnification"
-msgstr "УменÑ\8cÑ\88иÑ\82Ñ\8c Ð¼Ð°Ñ\81Ñ\88Ñ\82аб"
+#: ../src/glabels-batch.c:63 ../data/ui/print-op-dialog-custom-widget.ui.h:12
+msgid "print in reverse (i.e. a mirror image)"
+msgstr "Ð\9fеÑ\87аÑ\82аÑ\82Ñ\8c Ð·ÐµÑ\80калÑ\8cное Ð¾Ñ\82обÑ\80ажение"
 
-#: ../src/ui.c:238
-msgid "Zoom out"
-msgstr "Ð\9eÑ\82далиÑ\82Ñ\8c"
+#: ../src/glabels-batch.c:65 ../data/ui/print-op-dialog-custom-widget.ui.h:11
+msgid "print crop marks"
+msgstr "Ð\9fеÑ\87аÑ\82аÑ\82Ñ\8c Ð¼ÐµÑ\82ки Ð¿Ð¾Ð´ Ð¾Ð±Ñ\80ез"
 
-#: ../src/ui.c:240
-msgid "Decrease magnification"
-msgstr "УвелиÑ\87иÑ\82Ñ\8c Ð¼Ð°Ñ\81Ñ\88Ñ\82аб"
+#: ../src/glabels-batch.c:67
+msgid "input file for merging"
+msgstr "Ð\92Ñ\85одной Ñ\84айл Ð´Ð»Ñ\8f Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ\8f Ð¿Ð¾Ð»ÐµÐ¹"
 
-#: ../src/ui.c:245
-msgid "Zoom 1 to 1"
-msgstr "Масштаб 1:1"
+#: ../src/glabels-batch.c:69 ../src/glabels.c:64
+msgid "[FILE...]"
+msgstr "[ФАЙЛ...]"
 
-#: ../src/ui.c:247
-msgid "Restore scale to 100%"
-msgstr "Ð\92оÑ\81Ñ\81Ñ\82ановиÑ\82Ñ\8c Ð¼Ð°Ñ\81Ñ\88Ñ\82аб 1:1"
+#: ../src/glabels-batch.c:99
+msgid "Print files created with gLabels."
+msgstr "Ð\9dапеÑ\87аÑ\82аÑ\82Ñ\8c Ñ\81озданнÑ\8bе Ð² gLabels Ñ\84айлÑ\8b."
 
-#: ../src/ui.c:252
-msgid "Zoom to fit"
-msgstr "Уместить целиком в окне"
+#: ../src/glabels-batch.c:107 ../src/glabels.c:89
+#, c-format
+msgid ""
+"%s\n"
+"Run '%s --help' to see a full list of available command line options.\n"
+msgstr ""
 
-#: ../src/ui.c:254
-msgid "Set scale to fit window"
-msgstr "Изменить масштаб, чтобы изображение было видно полностью"
+#: ../src/glabels-batch.c:151
+#, c-format
+msgid "cannot perform document merge with glabels file %s\n"
+msgstr "Не удалось выполнить заполнение полей документа файлом gLabels %s\n"
 
-#: ../src/ui.c:261
-msgid "Select Mode"
-msgstr "Режим выбора"
+#: ../src/glabels-batch.c:186
+#, c-format
+msgid "cannot open glabels file %s\n"
+msgstr "Не удалось открыть файл %s\n"
 
-#: ../src/ui.c:263
-msgid "Select, move and modify objects"
-msgstr "Выбрать, переместить или изменить объекты"
+#: ../src/glabels.c:81
+#, fuzzy
+msgid "Launch gLabels label and business card designer."
+msgstr "Программа для создания этикеток и визитных карточек\n"
 
-#: ../src/ui.c:268 ../src/view-text.c:494
-#: ../data/glade/object-editor.glade.h:32
-msgid "Text"
-msgstr "Текст"
+#: ../src/label-barcode.c:154 ../src/ui.c:319
+msgid "Create barcode object"
+msgstr "Добавить штрих-код"
 
-#: ../src/ui.c:270
-msgid "Create text object"
-msgstr "Добавить текст"
+#: ../src/label-barcode.c:227 ../src/label-barcode.c:389
+#, fuzzy
+msgid "Barcode data"
+msgstr "Данные штрих-кода не введены"
 
-#: ../src/ui.c:275
-msgid "Box"
-msgstr "Прямоугольник"
+#: ../src/label-barcode.c:263
+#, fuzzy
+msgid "Barcode property"
+msgstr "Свойства объекта типа штрих-код"
 
-#: ../src/ui.c:277
-msgid "Create box/rectangle object"
-msgstr "Ð\94обавиÑ\82Ñ\8c Ð¿Ñ\80Ñ\8fмоÑ\83голÑ\8cник"
+#: ../src/label-barcode.c:485
+msgid "Barcode data empty"
+msgstr "Ð\94аннÑ\8bе Ñ\88Ñ\82Ñ\80иÑ\85-кода Ð½Ðµ Ð²Ð²ÐµÐ´ÐµÐ½Ñ\8b"
 
-#: ../src/ui.c:282 ../data/glade/object-editor.glade.h:20
-msgid "Line"
-msgstr "Ð\9eбводка"
+#: ../src/label-barcode.c:489
+msgid "Invalid barcode data"
+msgstr "Ð\9dевеÑ\80нÑ\8bе Ð´Ð°Ð½Ð½Ñ\8bе Ñ\88Ñ\82Ñ\80иÑ\85-кода"
 
-#: ../src/ui.c:284
-msgid "Create line object"
-msgstr "Добавить линию"
+#: ../src/label-box.c:156
+#, fuzzy
+msgid "Create box object"
+msgstr "Добавить текст"
 
-#: ../src/ui.c:289
-msgid "Ellipse"
-msgstr "Эллипс"
+#: ../src/label-box.c:230 ../src/label-ellipse.c:232 ../src/stock.c:93
+#: ../data/ui/property-bar.ui.h:3
+msgid "Fill color"
+msgstr "Цвет заливки"
 
-#: ../src/ui.c:291
-msgid "Create ellipse/circle object"
-msgstr "Добавить эллипс/круг"
+#: ../src/label-box.c:261 ../src/label-ellipse.c:261 ../src/label-line.c:212
+#: ../src/stock.c:94 ../data/ui/property-bar.ui.h:8
+msgid "Line color"
+msgstr "Цвет линии"
 
-#: ../src/ui.c:296 ../data/glade/object-editor.glade.h:16
-msgid "Image"
-msgstr "Изображение"
+#: ../src/label-box.c:289 ../src/label-ellipse.c:290 ../src/label-line.c:241
+#: ../data/ui/property-bar.ui.h:9
+msgid "Line width"
+msgstr "Толщина линии"
 
-#: ../src/ui.c:298
-msgid "Create image object"
-msgstr "Ð\94обавиÑ\82Ñ\8c Ñ\80аÑ\81Ñ\82Ñ\80овое Ð¸Ð·Ð¾Ð±Ñ\80ажение"
+#: ../src/label.c:402
+msgid "Untitled"
+msgstr "Ð\91ез Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ\8f"
 
-#: ../src/ui.c:303
-msgid "Barcode"
-msgstr "ШÑ\82Ñ\80иÑ\85-код"
+#: ../src/label.c:705 ../src/ui.c:422
+msgid "Merge properties"
+msgstr "Ð\97аполниÑ\82Ñ\8c Ð¿Ð¾Ð»Ñ\8f Ð´Ð°Ð½Ð½Ñ\8bми"
 
-#: ../src/ui.c:305
-msgid "Create barcode object"
-msgstr "Ð\94обавиÑ\82Ñ\8c Ñ\88Ñ\82Ñ\80иÑ\85-код"
+#: ../src/label.c:1197 ../src/ui.c:215
+msgid "Delete"
+msgstr "УдалиÑ\82Ñ\8c"
 
-#: ../src/ui.c:310
+#: ../src/label.c:1230 ../src/ui.c:324
 msgid "Bring to front"
 msgstr "На передний план"
 
-#: ../src/ui.c:312
-msgid "Raise object to top"
-msgstr "Переместить объект на передний план"
-
-#: ../src/ui.c:317
+#: ../src/label.c:1266 ../src/ui.c:331
 msgid "Send to back"
 msgstr "На задний план"
 
-#: ../src/ui.c:319
-msgid "Lower object to bottom"
-msgstr "Переместить объект на задний план"
+#: ../src/label.c:1307
+#, fuzzy
+msgid "Rotate"
+msgstr "С поворотом"
 
-#: ../src/ui.c:324
+#: ../src/label.c:1342 ../src/ui.c:338
 msgid "Rotate left"
 msgstr "Повернуть влево"
 
-#: ../src/ui.c:326
-msgid "Rotate object 90 degrees counter-clockwise"
-msgstr "Повернуть объект на 90 градусов против часовой стрелки"
-
-#: ../src/ui.c:331
+#: ../src/label.c:1375 ../src/ui.c:345
 msgid "Rotate right"
 msgstr "Повернуть вправо"
 
-#: ../src/ui.c:333
-msgid "Rotate object 90 degrees clockwise"
-msgstr "Повернуть объект на 90 градусов по часовой стрелке"
-
-#: ../src/ui.c:338
+#: ../src/label.c:1410 ../src/ui.c:352
 msgid "Flip horizontally"
 msgstr "Отразить горизонтально"
 
-#: ../src/ui.c:340
-msgid "Flip object horizontally"
-msgstr "Отразить объект горизонтально"
-
-#: ../src/ui.c:345
+#: ../src/label.c:1445 ../src/ui.c:359
 msgid "Flip vertically"
 msgstr "Отразить вертикально"
 
-#: ../src/ui.c:347
-msgid "Flip object vertically"
-msgstr "Отразить объект вертикально"
-
-#: ../src/ui.c:352
+#: ../src/label.c:1485 ../src/ui.c:366
 msgid "Align left"
 msgstr "Выровнять по левому краю"
 
-#: ../src/ui.c:354
-msgid "Align objects to left edges"
-msgstr "Выровнять объекты по левому краю"
-
-#: ../src/ui.c:359
+#: ../src/label.c:1542 ../src/ui.c:373
 msgid "Align right"
 msgstr "Выровнять по правому краю"
 
-#: ../src/ui.c:361
-msgid "Align objects to right edges"
-msgstr "Выровнять объекты по правому краю"
-
-#: ../src/ui.c:366
+#: ../src/label.c:1603 ../src/ui.c:380
 msgid "Align horizontal center"
 msgstr "Выровнять по горизонтальным центрам"
 
-#: ../src/ui.c:368
-msgid "Align objects to horizontal centers"
-msgstr "Выровнять объекты по горизонтальным центрам"
-
-#: ../src/ui.c:373
+#: ../src/label.c:1679 ../src/ui.c:387
 msgid "Align tops"
 msgstr "Выровнять по верхнему краю"
 
-#: ../src/ui.c:375
-msgid "Align objects to top edges"
-msgstr "Выровнять объекты по верхним краям"
-
-#: ../src/ui.c:380
+#: ../src/label.c:1736 ../src/ui.c:394
 msgid "Align bottoms"
 msgstr "Выровнять по нижнему краю"
 
-#: ../src/ui.c:382
-msgid "Align objects to bottom edges"
-msgstr "Выровнять объекты по нижним краям"
-
-#: ../src/ui.c:387
+#: ../src/label.c:1797 ../src/ui.c:401
 msgid "Align vertical center"
 msgstr "Выровнять по вертикальным центрам"
 
-#: ../src/ui.c:389
-msgid "Align objects to vertical centers"
-msgstr "Выровнять объекты по вертикальным центрам"
-
-#: ../src/ui.c:394
+#: ../src/label.c:1875 ../src/ui.c:408
 msgid "Center horizontally"
 msgstr "Отцентрировать по горизонтали"
 
-#: ../src/ui.c:396
-msgid "Center objects to horizontal label center"
-msgstr "Центрировать объекты по центру горизонтальной метки"
-
-#: ../src/ui.c:401
+#: ../src/label.c:1922 ../src/ui.c:415
 msgid "Center vertically"
 msgstr "Отцентрировать по вертикали"
 
-#: ../src/ui.c:403
-msgid "Center objects to vertical label center"
-msgstr "ЦенÑ\82Ñ\80иÑ\80оваÑ\82Ñ\8c Ð¾Ð±Ñ\8aекÑ\82Ñ\8b Ð¿Ð¾ Ñ\86енÑ\82Ñ\80Ñ\83 Ð²ÐµÑ\80Ñ\82икалÑ\8cной Ð¼ÐµÑ\82ки"
+#: ../src/label.c:2610 ../src/label.c:2652 ../src/label.c:2678 ../src/ui.c:208
+msgid "Paste"
+msgstr "Ð\92Ñ\81Ñ\82авиÑ\82Ñ\8c"
 
-#: ../src/ui.c:408
-msgid "Merge properties"
-msgstr "Заполнить поля данными"
+#: ../src/label-ellipse.c:160
+#, fuzzy
+msgid "Create ellipse object"
+msgstr "Добавить линию"
 
-#: ../src/ui.c:410
-msgid "Edit merge properties"
-msgstr "Ð\98змениÑ\82Ñ\8c Ð¿Ð°Ñ\80амеÑ\82Ñ\80Ñ\8b Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ\8f Ð¿Ð¾Ð»ÐµÐ¹ Ð´Ð°Ð½Ð½Ñ\8bми"
+#: ../src/label-image.c:200 ../src/ui.c:312
+msgid "Create image object"
+msgstr "Ð\94обавиÑ\82Ñ\8c Ñ\80аÑ\81Ñ\82Ñ\80овое Ð¸Ð·Ð¾Ð±Ñ\80ажение"
 
-#: ../src/ui.c:417
-msgid "Contents"
-msgstr "Содержание"
+#: ../src/label-image.c:333 ../src/label-image.c:474
+#, fuzzy
+msgid "Set image"
+msgstr "Установить размер изображения по умолчанию"
 
-#: ../src/ui.c:419
-msgid "Open glabels manual"
-msgstr "Ð\9fоказаÑ\82Ñ\8c Ñ\81пÑ\80авкÑ\83 Ð¿Ð¾ gLabels"
+#: ../src/label-line.c:147 ../src/ui.c:298
+msgid "Create line object"
+msgstr "Ð\94обавиÑ\82Ñ\8c Ð»Ð¸Ð½Ð¸Ñ\8e"
 
-#: ../src/ui.c:424
-msgid "About..."
-msgstr "О программе..."
+#: ../src/label-object.c:383 ../src/label-object.c:416
+msgid "Move"
+msgstr ""
 
-#: ../src/ui.c:426
-msgid "About glabels"
-msgstr "О gLabels"
+#: ../src/label-object.c:467
+#, fuzzy
+msgid "Resize"
+msgstr "Формат страницы:"
 
-#: ../src/ui.c:436
-msgid "Property toolbar"
-msgstr "Панель свойств"
+#: ../src/label-object.c:1185
+#, fuzzy
+msgid "Shadow state"
+msgstr "Тень"
 
-#: ../src/ui.c:438
-msgid "Change the visibility of the property toolbar in the current window"
-msgstr "Изменить видимость панели свойств в текущем окне"
+#: ../src/label-object.c:1228
+#, fuzzy
+msgid "Shadow offset"
+msgstr "Тень"
+
+#: ../src/label-object.c:1276
+#, fuzzy
+msgid "Shadow color"
+msgstr "Тень"
+
+#: ../src/label-object.c:1319
+#, fuzzy
+msgid "Shadow opacity"
+msgstr "Тень"
+
+#: ../src/label-text.c:279 ../src/ui.c:284
+msgid "Create text object"
+msgstr "Добавить текст"
+
+#: ../src/label-text.c:451
+msgid "Typing"
+msgstr ""
+
+#: ../src/label-text.c:584 ../data/ui/property-bar.ui.h:4
+msgid "Font family"
+msgstr "Гарнитура"
 
-#: ../src/ui.c:444 ../src/ui.c:489 ../src/ui.c:497
-msgid "Show tooltips"
-msgstr "Ð\9fоказÑ\8bваÑ\82Ñ\8c Ð¿Ð¾Ð´Ñ\81казки"
+#: ../src/label-text.c:622 ../data/ui/property-bar.ui.h:5
+msgid "Font size"
+msgstr "РазмеÑ\80 Ñ\88Ñ\80иÑ\84Ñ\82а"
 
-#: ../src/ui.c:446
-msgid "Show tooltips for property toolbar"
-msgstr "Показывать подсказки на панели свойств"
+#: ../src/label-text.c:655
+#, fuzzy
+msgid "Font weight"
+msgstr "Повернуть вправо"
 
-#: ../src/ui.c:452
-msgid "Grid"
-msgstr "СеÑ\82ка"
+#: ../src/label-text.c:688 ../data/ui/property-bar.ui.h:6
+msgid "Italic"
+msgstr "Ð\9aÑ\83Ñ\80Ñ\81ив"
 
-#: ../src/ui.c:454
-msgid "Change the visibility of the grid in the current window"
-msgstr "Изменить видимость сетки в текущем окне"
+#: ../src/label-text.c:721
+#, fuzzy
+msgid "Align text"
+msgstr "Выровнять по левому краю"
 
-#: ../src/ui.c:460
-msgid "Markup"
-msgstr "Разметка"
+#: ../src/label-text.c:754
+#, fuzzy
+msgid "Line spacing"
+msgstr "Между строк:"
 
-#: ../src/ui.c:462
-msgid "Change the visibility of markup lines in the current window"
-msgstr "Ð\98змениÑ\82Ñ\8c Ð²Ð¸Ð´Ð¸Ð¼Ð¾Ñ\81Ñ\82Ñ\8c Ð»Ð¸Ð½Ð¸Ð¸ Ñ\80азмеÑ\82ки Ð² Ñ\82екÑ\83Ñ\89ем Ð¾ÐºÐ½Ðµ"
+#: ../src/label-text.c:787 ../data/ui/property-bar.ui.h:11
+msgid "Text color"
+msgstr "ЦвеÑ\82 Ñ\82екÑ\81Ñ\82а"
 
-#: ../src/ui.c:473
-msgid "Main toolbar"
-msgstr "Показывать панель инструментов"
+#: ../src/label-text.c:931
+msgid "Auto shrink"
+msgstr ""
 
-#: ../src/ui.c:475
-msgid "Change the visibility of the main toolbar in the current window"
-msgstr "Изменить видимость главной панели инструментов в текущем окне"
+#: ../src/media-select.c:349 ../src/media-select.c:353
+#: ../src/media-select.c:502 ../src/media-select.c:701
+#, fuzzy
+msgctxt "Brand"
+msgid "Any"
+msgstr "Любой вариант"
 
-#: ../src/ui.c:481
-msgid "Drawing toolbar"
-msgstr "Панель рисования"
+#: ../src/media-select.c:358 ../src/media-select.c:871
+#, fuzzy
+msgctxt "Page size"
+msgid "Any"
+msgstr "Любой вариант"
 
-#: ../src/ui.c:483
-msgid "Change the visibility of the drawing toolbar in the current window"
-msgstr "Изменить видимость панели инструментов для рисования в текущем окне"
+#: ../src/media-select.c:367 ../src/media-select.c:370
+#: ../src/media-select.c:880
+#, fuzzy
+msgctxt "Category"
+msgid "Any"
+msgstr "Любой вариант"
 
-#: ../src/ui.c:491
-msgid "Show tooltips for main toolbar"
-msgstr "Ð\9fоказÑ\8bваÑ\82Ñ\8c Ð¿Ð¾Ð´Ñ\81казки Ð² Ð³Ð»Ð°Ð²Ð½Ð¾Ð¹ Ð¿Ð°Ð½ÐµÐ»Ð¸ Ð¸Ð½Ñ\81Ñ\82Ñ\80Ñ\83менÑ\82ов"
+#: ../src/media-select.c:968
+msgid "No recent templates found."
+msgstr "Ð\9dедавно Ð¾Ñ\82кÑ\80Ñ\8bвавÑ\88иÑ\85Ñ\81Ñ\8f Ñ\88аблонов Ð½Ðµ Ð¾Ð±Ð½Ð°Ñ\80Ñ\83жено."
 
-#: ../src/ui.c:499
-msgid "Show tooltips for drawing toolbar"
-msgstr "Показывать подсказки в панели рисования"
+#: ../src/media-select.c:970
+#, fuzzy
+msgid "Try selecting a template in the \"Search all\" tab."
+msgstr "Попробуйте выбрать шаблон на вкладке «Поиск по шаблонам»."
 
-#: ../src/ui-property-bar.c:1232 ../src/object-editor.c:587
-#: ../src/object-editor.c:593
-msgid "Default"
-msgstr "По умолчанию"
+#. Translators: "No match" means that for the given template search criteria, there
+#. * were no matches found.
+#: ../src/media-select.c:1061
+msgid "No match."
+msgstr "Нет совпадений."
 
-#: ../src/ui-property-bar.c:1239 ../src/object-editor.c:599
-msgid "No line"
-msgstr "Ð\91ез Ð¾Ð±Ð²Ð¾Ð´ÐºÐ¸"
+#: ../src/media-select.c:1063
+msgid "Try selecting a different brand, page size or category."
+msgstr "Ð\9fопÑ\80обÑ\83йÑ\82е Ð²Ñ\8bбÑ\80аÑ\82Ñ\8c Ð´Ñ\80Ñ\83гÑ\83Ñ\8e Ð¼Ð°Ñ\80кÑ\83, Ñ\84оÑ\80маÑ\82 Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\8b Ð¸Ð»Ð¸ ÐºÐ°Ñ\82егоÑ\80иÑ\8e"
 
-#: ../src/ui-property-bar.c:1247 ../src/object-editor.c:606
-msgid "No fill"
-msgstr "Без заливки"
+#: ../src/media-select.c:1157
+#, fuzzy
+msgid "No custom templates found."
+msgstr "Недавно открывавшихся шаблонов не обнаружено."
 
-#: ../src/ui-sidebar.c:152
-msgid "Object properties"
-msgstr "Свойства объекта"
+#: ../src/media-select.c:1159
+msgid ""
+"You may create new templates or try searching for pre-defined templates in "
+"the \"Search all\" tab."
+msgstr ""
 
-#: ../src/ui-commands.c:1084
-msgid "Glabels includes contributions from:"
-msgstr "В разработке gLabels поучаствовали:"
+#. Translators: "None" here means that no document-merge source or
+#. * method has been selected.
+#: ../src/merge.c:171 ../src/merge.c:212 ../src/merge.c:376 ../src/merge.c:379
+msgid "None"
+msgstr "Нет"
 
-#: ../src/ui-commands.c:1090
-msgid "See the file AUTHORS for additional credits,"
-msgstr ""
-"Подробная информация об участниках\n"
-"изложена в файле AUTHORS, а также"
+#: ../src/merge-evolution.c:316
+msgid "Couldn't construct query"
+msgstr "Не удалось сформировать запрос."
 
-#: ../src/ui-commands.c:1091
-msgid "or visit http://glabels.sourceforge.net/"
-msgstr "на Ñ\81айÑ\82е http://glabels.sourceforge.net/"
+#: ../src/merge-evolution.c:322 ../src/merge-evolution.c:333
+msgid "Couldn't open addressbook."
+msgstr "Ð\9dе Ñ\83далоÑ\81Ñ\8c Ð¾Ñ\82кÑ\80Ñ\8bÑ\82Ñ\8c Ð°Ð´Ñ\80еÑ\81нÑ\83Ñ\8e ÐºÐ½Ð¸Ð³Ñ\83."
 
-#: ../src/ui-commands.c:1103
-msgid "A label and business card creation program.\n"
-msgstr "Ð\9fÑ\80огÑ\80амма Ð´Ð»Ñ\8f Ñ\81озданиÑ\8f Ñ\8dÑ\82икеÑ\82ов Ð¸ Ð²Ð¸Ð·Ð¸Ñ\82нÑ\8bÑ\85 ÐºÐ°Ñ\80Ñ\82оÑ\87ек.\n"
+#: ../src/merge-evolution.c:348
+msgid "Couldn't list available fields."
+msgstr "Ð\9dе Ñ\83далоÑ\81Ñ\8c Ð¿ÐµÑ\80еÑ\87иÑ\81лиÑ\82Ñ\8c Ð´Ð¾Ñ\81Ñ\82Ñ\83пнÑ\8bе Ð¿Ð¾Ð»Ñ\8f."
 
-#: ../src/ui-commands.c:1107
-msgid "translator-credits"
-msgstr ""
-"Виталий Липатов <lav@altlinux.ru>, 2002-2005\n"
-"Александр Прокудин <alexandre.prokoudine@gmail.com>, 2008"
+#: ../src/merge-evolution.c:384
+msgid "Couldn't get contacts."
+msgstr "Не удалось получить контактные данные."
 
-#: ../src/ui-commands.c:1110
-msgid ""
-"Glabels is free software; you can redistribute it and/or modify it\n"
-"under the terms of the GNU General Public License as published by\n"
-"the Free Software Foundation; either version 2 of the License, or\n"
-"(at your option) any later version.\n"
-"\n"
-"This program is distributed in the hope that it will be useful, but\n"
-"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See\n"
-"the GNU General Public License for more details.\n"
+#: ../src/merge-init.c:57
+msgid "Text: Comma Separated Values (CSV)"
 msgstr ""
-"Glabels является свободным программным обеспечением;\n"
-"вы вправе распространять её и/или модифицировать в соответствии\n"
-"с условиями версии 2 либо по вашему выбору более поздней\n"
-"версии Стандартной Общественной Лицензии GNU, \n"
-"опубликованной Free Software Foundation.\n"
-" \n"
-"Мы распространяем данную программу в надежде на то, что она\n"
-"будет вам полезной, однако НЕ ПРЕДОСТАВЛЯЕМ НА НЕЁ НИКАКИХ\n"
-"ГАРАНТИЙ, в том числе ГАРАНТИИ ТОВАРНОГО СОСТОЯНИЯ ПРИ\n"
-"ПРОДАЖЕ И ПРИГОДНОСТИ ДЛЯ ИСПОЛЬЗОВАНИЯ В КОНКРЕТНЫХ\n"
-"ЦЕЛЯХ. Для получения более подробной информации ознакомьтесь\n"
-"со Стандартной Общественной Лицензией GNU.\n"
-
-#: ../src/ui-commands.c:1136
-msgid "glabels"
-msgstr "glabels"
 
-#: ../src/file.c:91
-msgid "New Label or Card"
-msgstr "Новая этикетка или визитка"
+#: ../src/merge-init.c:64
+msgid "Text: Comma Separated Values (CSV) with keys on line 1"
+msgstr ""
 
-#: ../src/file.c:191
-msgid "Label properties"
-msgstr "Свойства этикетки"
+#: ../src/merge-init.c:72
+msgid "Text: Tab Separated Values (TSV)"
+msgstr ""
 
-#: ../src/file.c:292 ../src/file.c:578
-msgid "All files"
-msgstr "Все файлы"
+#: ../src/merge-init.c:79
+msgid "Text: Tab Separated Values (TSV) with keys on line 1"
+msgstr ""
 
-#: ../src/file.c:297 ../src/file.c:583
-msgid "gLabels documents"
-msgstr "Документы gLabels"
+#: ../src/merge-init.c:87
+msgid "Text: Colon separated values"
+msgstr ""
 
-#: ../src/file.c:343 ../src/file.c:640
-msgid "Empty file name selection"
-msgstr "Пустой выбор файла"
+#: ../src/merge-init.c:94
+msgid "Text: Colon separated values with keys on line 1"
+msgstr ""
 
-#: ../src/file.c:346 ../src/file.c:362
-msgid "Please select a file or supply a valid file name"
-msgstr "Выберите файл или введите корректное название файла"
+#: ../src/merge-init.c:102
+msgid "Text: Semicolon separated values"
+msgstr ""
 
-#: ../src/file.c:359
-msgid "File does not exist"
-msgstr "Файл не существует"
+#: ../src/merge-init.c:109
+msgid "Text: Semicolon separated values with keys on line 1"
+msgstr ""
 
-#: ../src/file.c:433
-#, c-format
-msgid "Could not open file \"%s\""
-msgstr "Ð\9dевозможно Ð¾Ñ\82кÑ\80Ñ\8bÑ\82Ñ\8c Ñ\84айл  \"%s\""
+#: ../src/merge-init.c:119
+#, fuzzy
+msgid "Evolution Addressbook"
+msgstr "Ð\94аннÑ\8bе Ð¸Ð· Ð¸Ñ\81полÑ\8cзÑ\83емой Ð¿Ð¾ Ñ\83молÑ\87аниÑ\8e Ð°Ð´Ñ\80еÑ\81ной ÐºÐ½Ð¸Ð³Ð¸ Evolution"
 
-#: ../src/file.c:436
-msgid "Not a supported file format"
-msgstr "Файл неподдерживаемого формата"
+#: ../src/merge-init.c:125
+msgid "VCards"
+msgstr ""
 
-#: ../src/file.c:513 ../src/file.c:690
-#, c-format
-msgid "Could not save file \"%s\""
-msgstr "Невозможно сохранить файл \"%s\""
+#: ../src/merge-properties-dialog.c:282
+msgid "Merge Properties"
+msgstr "Параметры заполнения данными"
 
-#: ../src/file.c:517 ../src/file.c:694
-msgid "Error encountered during save.  The file is still not saved."
-msgstr "Ð\9fÑ\80оизоÑ\88ла Ð¾Ñ\88ибка Ð¿Ñ\80и Ñ\81оÑ\85Ñ\80анении Ñ\84айла.  Ð¤Ð°Ð¹Ð» Ð²Ñ\81Ñ\91 ÐµÑ\89Ñ\91 Ð½Ðµ Ñ\81оÑ\85Ñ\80анÑ\91н."
+#: ../src/merge-properties-dialog.c:308 ../src/merge-properties-dialog.c:424
+msgid "Select merge-database source"
+msgstr "Ð\92Ñ\8bбÑ\80аÑ\82Ñ\8c Ð¸Ñ\81Ñ\82оÑ\87ник Ð´Ð°Ð½Ð½Ñ\8bÑ\85 Ð´Ð»Ñ\8f Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ\8f Ð´Ð°Ð½Ð½Ñ\8bми"
 
-#: ../src/file.c:556
-#, c-format
-msgid "Save \"%s\" as"
-msgstr "Сохранить \"%s\" как"
+#: ../src/merge-properties-dialog.c:319 ../src/merge-properties-dialog.c:450
+msgid "N/A"
+msgstr "Н/Д"
 
-#: ../src/file.c:643
-msgid "Please supply a valid file name"
-msgstr "УкажиÑ\82е ÐºÐ¾Ñ\80Ñ\80екÑ\82ное Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ Ñ\84айла"
+#: ../src/merge-properties-dialog.c:345
+msgid "Select"
+msgstr "Ð\92Ñ\8bбÑ\80ано"
 
-#: ../src/file.c:664
-#, c-format
-msgid "Overwrite file \"%s\"?"
-msgstr "Перезаписать файл \"%s\"?"
+#: ../src/merge-properties-dialog.c:352
+msgid "Record/Field"
+msgstr "Запись/Поле"
 
-#: ../src/file.c:668
-msgid "File already exists."
-msgstr "Файл Ñ\83же Ñ\81Ñ\83Ñ\89еÑ\81Ñ\82вÑ\83еÑ\82."
+#: ../src/merge-properties-dialog.c:360 ../data/ui/object-editor.ui.h:8
+msgid "Data"
+msgstr "Ð\94аннÑ\8bе"
 
-#: ../src/file.c:764
-#, c-format
-msgid "Save changes to document \"%s\" before closing?"
-msgstr "Сохранить изменения в документе \"%s\" перед закрытием?"
+#. Translators: "Fixed" here means that for the given document-merge method, there are
+#. * no further choices to further define the source of data.  E.g. if you select the
+#. * evolution-data-server, there are no further choices -- the source is "Fixed."
+#.
+#: ../src/merge-properties-dialog.c:443
+msgid "Fixed"
+msgstr ""
 
-#: ../src/file.c:768
-msgid "Your changes will be lost if you don't save them."
-msgstr "Все изменения будут потеряны, если вы их не сохраните."
+#. Translators: "Up" refers to the direction towards the top of a label.
+#: ../src/mini-preview.c:1074
+msgid "Up"
+msgstr ""
 
-#: ../src/file.c:771
-msgid "Close without saving"
-msgstr "Закрыть без сохранения"
+#: ../src/new-label-dialog.c:203
+#, fuzzy
+msgid "Select Product"
+msgstr "Режим выбора"
 
-#. Should not happen
-#: ../src/prefs.c:159 ../src/prefs.c:166
-#: ../data/glade/object-editor.glade.h:43
-#: ../data/glade/prefs-dialog.glade.h:22
-msgid "points"
-msgstr "пунктов"
+#: ../src/new-label-dialog.c:215
+msgid "Choose Orientation"
+msgstr ""
 
-#: ../src/prefs.c:161 ../data/glade/object-editor.glade.h:42
-#: ../data/glade/template-designer.glade.h:64
-msgid "inches"
-msgstr "дюймов"
+#: ../src/new-label-dialog.c:229
+msgid "Review"
+msgstr ""
 
-#: ../src/prefs.c:163
-msgid "mm"
-msgstr "мм"
+#: ../src/object-editor-bc-page.c:93 ../src/object-editor-shadow-page.c:93
+#: ../src/object-editor-text-page.c:97 ../src/prefs-dialog.c:339
+#: ../src/ui-property-bar.c:280
+msgid "Default"
+msgstr "По умолчанию"
 
-#: ../src/prefs-dialog.c:162 ../data/glade/prefs-dialog.glade.h:21
-msgid "gLabels Preferences"
-msgstr "Ð\9fаÑ\80амеÑ\82Ñ\80Ñ\8b gLabels"
+#: ../src/object-editor.c:159 ../src/object-editor.c:460
+msgid "Object properties"
+msgstr "СвойÑ\81Ñ\82ва Ð¾Ð±Ñ\8aекÑ\82а"
 
-#. Build editor.
-#: ../src/view-box.c:175
+#: ../src/object-editor.c:309
 msgid "Box object properties"
 msgstr "Свойства прямоугольника"
 
-#. Build editor.
-#: ../src/view-ellipse.c:175
+#: ../src/object-editor.c:328
 msgid "Ellipse object properties"
 msgstr "Свойства эллипса"
 
-#. Build editor.
-#: ../src/view-line.c:174
+#: ../src/object-editor.c:347
 msgid "Line object properties"
 msgstr "Свойство линии"
 
-#. Build editor.
-#: ../src/view-image.c:174
+#: ../src/object-editor.c:364
 msgid "Image object properties"
 msgstr "Свойства изображения"
 
-#. Build editor.
-#: ../src/view-text.c:178
+#: ../src/object-editor.c:381
 msgid "Text object properties"
 msgstr "Свойства текста"
 
-#. Build editor.
-#: ../src/view-barcode.c:174
+#: ../src/object-editor.c:403
 msgid "Barcode object properties"
 msgstr "Свойства объекта типа штрих-код"
 
-#: ../src/object-editor-image-page.c:270
+#: ../src/object-editor-edit-page.c:76
+msgid "Insert merge field"
+msgstr "Вставить объединительное поле"
+
+#: ../src/object-editor-fill-page.c:79 ../src/prefs-dialog.c:345
+#: ../src/ui-property-bar.c:292
+msgid "No Fill"
+msgstr "Без заливки"
+
+#: ../src/object-editor-image-page.c:278
 msgid "All Files"
 msgstr "Все файлы"
 
-#: ../src/object-editor-image-page.c:275
+#: ../src/object-editor-image-page.c:283
 msgid "All Images"
 msgstr "Все изображения"
 
-#: ../src/object-editor-image-page.c:290
+#: ../src/object-editor-image-page.c:298
 #, c-format
 msgid "%s (*.%s)"
 msgstr "%s (*.%s)"
 
-#: ../src/merge-properties-dialog.c:263
-msgid "Merge Properties"
-msgstr "Параметры заполнения данными"
+#: ../src/object-editor-line-page.c:79 ../src/prefs-dialog.c:342
+#: ../src/ui-property-bar.c:304
+msgid "No Line"
+msgstr "Без обводки"
+
+#: ../src/prefs-dialog.c:172 ../data/ui/prefs-dialog.ui.h:21
+msgid "gLabels Preferences"
+msgstr "Параметры gLabels"
+
+#. ===================================================================
+#: ../src/print-op.c:205 ../src/print-op-dialog.c:217
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:4
+#: ../templates/misc-iso-templates.xml.h:34
+msgid "Labels"
+msgstr "Этикетки"
+
+#: ../src/stock.c:70
+msgid "_Select Mode"
+msgstr "_Режим выделения"
+
+#: ../src/stock.c:71
+msgid "_Text"
+msgstr "_Текст"
+
+#: ../src/stock.c:72
+msgid "_Line"
+msgstr "_Линия"
+
+#: ../src/stock.c:73
+msgid "_Box"
+msgstr "_Прямоугольник"
+
+#: ../src/stock.c:74
+msgid "_Ellipse"
+msgstr "_Эллипс"
+
+#: ../src/stock.c:75
+msgid "_Image"
+msgstr "_Изображение"
+
+#: ../src/stock.c:76
+msgid "Bar_code"
+msgstr "_Штрих-код"
+
+#: ../src/stock.c:77
+msgid "_Merge Properties"
+msgstr "Заполнение полей данными"
+
+#: ../src/stock.c:78
+msgid "Object _Properties"
+msgstr "_Свойства объекта"
+
+#: ../src/stock.c:79
+msgid "Bring to _Front"
+msgstr "На _передний план"
+
+#: ../src/stock.c:80
+msgid "Send to _Back"
+msgstr "На _задний план"
+
+#: ../src/stock.c:81
+msgid "Rotate _Left"
+msgstr "Повернуть на_лево"
+
+#: ../src/stock.c:82
+msgid "Rotate _Right"
+msgstr "Повернуть на_право"
+
+#: ../src/stock.c:83
+msgid "Flip _Horizontally"
+msgstr "Отразить _горизонтально"
+
+#: ../src/stock.c:84
+msgid "Flip _Vertically"
+msgstr "Отразить _вертикально"
+
+#: ../src/stock.c:85
+msgid "_Lefts"
+msgstr "С_лева"
 
-#: ../src/merge-properties-dialog.c:289 ../src/merge-properties-dialog.c:397
-msgid "Select merge-database source"
-msgstr "Ð\92Ñ\8bбÑ\80аÑ\82Ñ\8c Ð¸Ñ\81Ñ\82оÑ\87ник Ð´Ð°Ð½Ð½Ñ\8bÑ\85 Ð´Ð»Ñ\8f Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ\8f Ð´Ð°Ð½Ð½Ñ\8bми"
+#: ../src/stock.c:86
+msgid "_Rights"
+msgstr "С_пÑ\80ава"
 
-#: ../src/merge-properties-dialog.c:298 ../src/merge-properties-dialog.c:417
-msgid "N/A"
-msgstr "Ð\9d\94"
+#: ../src/stock.c:87
+msgid "_Centers"
+msgstr "Ð\9fо _Ñ\86енÑ\82Ñ\80Ñ\83"
 
-#: ../src/merge-properties-dialog.c:324
-msgid "Select"
-msgstr "Ð\92Ñ\8bбÑ\80ано"
+#: ../src/stock.c:88
+msgid "_Tops"
+msgstr "Ð\9fо _веÑ\80Ñ\85Ñ\83"
 
-#: ../src/merge-properties-dialog.c:332
-msgid "Record/Field"
-msgstr "Ð\97апиÑ\81Ñ\8c\9fоле"
+#: ../src/stock.c:89
+msgid "Bottoms"
+msgstr "Ð\9fо Ð½Ð¸Ð·Ñ\83"
 
-#: ../src/merge-properties-dialog.c:340 ../data/glade/object-editor.glade.h:10
-msgid "Data"
-msgstr "Ð\94аннÑ\8bе"
+#: ../src/stock.c:90
+msgid "Centers"
+msgstr "Ð\9fо Ñ\86енÑ\82Ñ\80Ñ\83"
 
-#: ../src/merge-properties-dialog.c:410
-msgid "Fixed"
-msgstr ""
+#: ../src/stock.c:91 ../src/stock.c:92
+msgid "Label Ce_nter"
+msgstr "_Центр этикетки"
 
-#. ===================================================================
-#: ../src/print-op.c:237 ../src/wdgt-print-copies.c:171
-#: ../data/templates/misc-iso-templates.xml.h:34
-msgid "Labels"
-msgstr "Этикетки"
+#: ../src/stock.c:95 ../src/stock.c:97
+msgid "Linked"
+msgstr "Прикреплено"
+
+#: ../src/stock.c:96 ../src/stock.c:98
+msgid "Not Linked"
+msgstr "Не прикреплено"
 
-#: ../src/template-designer.c:358
-msgid "gLabels Template Designer"
+#: ../src/template-designer.c:404
+#, fuzzy
+msgid "New gLabels Template"
 msgstr "Дизайнер шаблонов gLabels"
 
-#: ../src/template-designer.c:419
+#: ../src/template-designer.c:461
 msgid "Welcome"
 msgstr "Добро пожаловать"
 
-#: ../src/template-designer.c:463
+#: ../src/template-designer.c:500
 msgid "Name and Description"
 msgstr "Название и описание"
 
-#: ../src/template-designer.c:516
+#: ../src/template-designer.c:548
 msgid "Page Size"
 msgstr "Формат страницы"
 
-#: ../src/template-designer.c:587
+#: ../src/template-designer.c:614
 msgid "Label or Card Shape"
 msgstr "Форма этикетки или визитки"
 
-#: ../src/template-designer.c:637
+#: ../src/template-designer.c:661
 #, fuzzy
 msgid "Label or Card Size"
 msgstr "Форма этикетки или визитки"
 
-#: ../src/template-designer.c:737
+#: ../src/template-designer.c:760
 #, fuzzy
 msgid "Label Size (round)"
 msgstr "Размер метки (диаметр)"
 
-#: ../src/template-designer.c:820
+#: ../src/template-designer.c:841
 msgid "Label Size (CD/DVD)"
 msgstr "Размер метки (CD/DVD)"
 
-#: ../src/template-designer.c:913
+#: ../src/template-designer.c:932
 msgid "Number of Layouts"
 msgstr "Количество форм"
 
-#: ../src/template-designer.c:976
+#: ../src/template-designer.c:1000
 msgid "Layout(s)"
 msgstr "Формы"
 
-#: ../src/template-designer.c:1087
+#: ../src/template-designer.c:1105
 msgid "Design Completed"
 msgstr "Оформление завершено"
 
-#: ../src/template-designer.c:1253
-msgid ""
-"<span foreground='red' weight='bold'>Brand and part# match an existing "
-"template!</span>"
-msgstr ""
-
-#: ../src/bc.c:67
-msgid "POSTNET (any)"
-msgstr "POSTNET (любой)"
-
-#: ../src/bc.c:70
-msgid "POSTNET-5 (ZIP only)"
-msgstr "POSTNET-5 (только почтовый индекс)"
+#: ../src/template-designer.c:1133
+#, fuzzy
+msgid "Edit gLabels Template"
+msgstr "Дизайнер шаблонов gLabels"
 
-#: ../src/bc.c:73
-msgid "POSTNET-9 (ZIP+4)"
-msgstr "POSTNET-9 (ZIP+4)"
+#: ../src/template-designer.c:1423
+msgid "Brand and part# match an existing template!"
+msgstr ""
 
-#: ../src/bc.c:76
-msgid "POSTNET-11 (DPBC)"
-msgstr "POSTNET-11 (DPBC)"
+#. Menu entries.
+#: ../src/ui.c:93
+msgid "_File"
+msgstr "_Файл"
 
-#: ../src/bc.c:79
-msgid "CEPNET"
-msgstr "CEPNET"
+#: ../src/ui.c:94
+msgid "Open Recent _Files"
+msgstr "Н_едавние файлы"
 
-#: ../src/bc.c:82
-msgid "EAN (any)"
-msgstr "EAN (любой)"
+#: ../src/ui.c:95
+msgid "_Edit"
+msgstr "_Правка"
 
-#: ../src/bc.c:85
-msgid "EAN-8"
-msgstr "EAN-8"
+#: ../src/ui.c:96
+msgid "_View"
+msgstr "_Вид"
 
-#: ../src/bc.c:88
-msgid "EAN-8 +2"
-msgstr "EAN-8 +2"
+#: ../src/ui.c:97
+msgid "Customize Main Toolbar"
+msgstr "Панель инструментов"
 
-#: ../src/bc.c:91
-msgid "EAN-8 +5"
-msgstr "EAN-8 +5"
+#: ../src/ui.c:98
+msgid "Customize Drawing Toolbar"
+msgstr "Панель рисования"
 
-#: ../src/bc.c:94
-msgid "EAN-13"
-msgstr "EAN-13"
+#: ../src/ui.c:99
+msgid "Customize Properties Toolbar"
+msgstr "Панель свойств"
 
-#: ../src/bc.c:97
-msgid "EAN-13 +2"
-msgstr "EAN-13 +2"
+#: ../src/ui.c:100
+msgid "_Objects"
+msgstr "_Объекты"
 
-#: ../src/bc.c:100
-msgid "EAN-13 +5"
-msgstr "EAN-13 +5"
+#: ../src/ui.c:101
+msgid "_Create"
+msgstr "_Добавить"
 
-#: ../src/bc.c:103
-msgid "UPC (UPC-A or UPC-E)"
-msgstr "UPC (UPC-A or UPC-E)"
+#: ../src/ui.c:102
+msgid "_Order"
+msgstr "_Порядок"
 
-#: ../src/bc.c:106
-msgid "UPC-A"
-msgstr "UPC-A"
+#: ../src/ui.c:103
+msgid "_Rotate/Flip"
+msgstr "П_овернуть/Отразить"
 
-#: ../src/bc.c:109
-msgid "UPC-A +2"
-msgstr "UPC-A +2"
+#: ../src/ui.c:104
+msgid "Align _Horizontal"
+msgstr "Выровнять по _горизонтали"
 
-#: ../src/bc.c:112
-msgid "UPC-A +5"
-msgstr "UPC-A +5"
+#: ../src/ui.c:105
+msgid "Align _Vertical"
+msgstr "Выровнять по _вертикали"
 
-#: ../src/bc.c:115
-msgid "UPC-E"
-msgstr "UPC-E"
+#: ../src/ui.c:106
+msgid "_Help"
+msgstr "_Справка"
 
-#: ../src/bc.c:118
-msgid "UPC-E +2"
-msgstr "UPC-E +2"
+#. Popup entries.
+#: ../src/ui.c:109 ../src/ui.c:110
+msgid "Context Menu"
+msgstr "Контекстное меню"
 
-#: ../src/bc.c:121
-msgid "UPC-E +5"
-msgstr "UPC-E +5"
+#: ../src/ui.c:115
+msgid "_New"
+msgstr "_Создать"
 
-#: ../src/bc.c:124
-msgid "ISBN"
-msgstr "ISBN"
+#: ../src/ui.c:117
+msgid "Create a new file"
+msgstr "Создать новый документ"
 
-#: ../src/bc.c:127
-msgid "ISBN +5"
-msgstr "ISBN +5"
+#: ../src/ui.c:122
+msgid "_Open..."
+msgstr "_Открыть..."
 
-#: ../src/bc.c:130
-msgid "Code 39"
-msgstr "Code 39"
+#: ../src/ui.c:124
+msgid "Open a file"
+msgstr "Открыть документ"
 
-#: ../src/bc.c:133
-msgid "Code 128"
-msgstr "Code 128"
+#: ../src/ui.c:129
+msgid "_Save"
+msgstr "_Сохранить"
 
-#: ../src/bc.c:136
-msgid "Code 128C"
-msgstr "Code 128C"
+#: ../src/ui.c:131
+msgid "Save current file"
+msgstr "Сохранить текущий документ"
 
-#: ../src/bc.c:139
-msgid "Code 128B"
-msgstr "Code 128B"
+#: ../src/ui.c:136
+msgid "Save _As..."
+msgstr "Сохранить _как..."
 
-#: ../src/bc.c:142
-msgid "Interleaved 2 of 5"
-msgstr "Interleaved 2 of 5"
+#: ../src/ui.c:138
+msgid "Save the current file to a different name"
+msgstr "Сохранить текущий документ под другим именем"
 
-#: ../src/bc.c:145
-msgid "Codabar"
-msgstr "Codabar"
+#: ../src/ui.c:143
+msgid "_Print..."
+msgstr "_Напечатать..."
 
-#: ../src/bc.c:148
-msgid "MSI"
-msgstr "MSI"
+#: ../src/ui.c:145
+msgid "Print the current file"
+msgstr "Напечатать текущий файл"
 
-#: ../src/bc.c:151
-msgid "Plessey"
-msgstr "Plessey"
+#: ../src/ui.c:150
+msgid "Properties..."
+msgstr "Свойства..."
 
-#: ../src/bc.c:154
-msgid "IEC16022 (DataMatrix)"
-msgstr "IEC16022 (DataMatrix)"
+#: ../src/ui.c:152
+msgid "Modify document properties"
+msgstr "Изменить свойства документа"
 
-#: ../src/label.c:531
-msgid "Untitled"
-msgstr "Ð\91ез Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ\8f"
+#: ../src/ui.c:157
+msgid "Template _Designer..."
+msgstr "Ð\94изайнеÑ\80 _Ñ\88аблонов..."
 
-#: ../src/label-barcode.c:426
-msgid "Barcode data empty"
-msgstr "Ð\94аннÑ\8bе Ñ\88Ñ\82Ñ\80иÑ\85-кода Ð½Ðµ Ð²Ð²ÐµÐ´ÐµÐ½Ñ\8b"
+#: ../src/ui.c:159
+msgid "Create a custom template"
+msgstr "СоздаÑ\82Ñ\8c Ñ\81вой Ñ\88аблон"
 
-#: ../src/label-barcode.c:430
-msgid "Invalid barcode data"
-msgstr "Неверные данные штрих-кода"
+#: ../src/ui.c:164
+msgid "_Close"
+msgstr "_Закрыть"
 
-#: ../src/xml-label.c:189 ../src/xml-label.c:226
-msgid "xmlParseFile error"
-msgstr "Ð\9eÑ\88ибка Ð¿Ñ\80и Ñ\80азбоÑ\80е Ñ\84айла XML"
+#: ../src/ui.c:166
+msgid "Close the current file"
+msgstr "Ð\97акÑ\80Ñ\8bÑ\82Ñ\8c Ñ\82екÑ\83Ñ\89ий Ñ\84айл"
 
-#: ../src/xml-label.c:262
-msgid "No document root"
-msgstr "Ð\9dеÑ\82 ÐºÐ¾Ñ\80нÑ\8f Ð´Ð¾ÐºÑ\83менÑ\82а"
+#: ../src/ui.c:171
+msgid "_Quit"
+msgstr "Ð\92\8bÑ\85од"
 
-#: ../src/xml-label.c:270
-msgid "Importing from glabels 0.1 format"
-msgstr "Ð\92Ñ\8bполнÑ\8fеÑ\82Ñ\81Ñ\8f Ð¸Ð¼Ð¿Ð¾Ñ\80Ñ\82 Ð¸Ð· Ñ\84айла gLabels Ð²ÐµÑ\80Ñ\81ии 0.1"
+#: ../src/ui.c:173
+msgid "Quit the program"
+msgstr "Ð\97авеÑ\80Ñ\88иÑ\82Ñ\8c Ñ\80абоÑ\82Ñ\83 Ñ\81 Ð¿Ñ\80огÑ\80аммой"
 
-#: ../src/xml-label.c:279
-msgid "Importing from glabels 0.4 format"
-msgstr "Ð\92Ñ\8bполнÑ\8fеÑ\82Ñ\81Ñ\8f Ð¸Ð¼Ð¿Ð¾Ñ\80Ñ\82 Ð¸Ð· Ñ\84айла gLabels Ð²ÐµÑ\80Ñ\81ии 0.4"
+#: ../src/ui.c:180 ../src/ui.c:182 ../src/ui.c:967
+msgid "Undo"
+msgstr "Ð\9eÑ\82мениÑ\82Ñ\8c"
 
-#: ../src/xml-label.c:288
-#, fuzzy, c-format
-msgid "Unknown glabels Namespace -- Using %s"
-msgstr "докÑ\83менÑ\82 Ð½ÐµÐ²ÐµÑ\80ного Ñ\82ипа, Ð½ÐµÐ¸Ð·Ð²ÐµÑ\81Ñ\82ное Ð¿Ñ\80оÑ\81Ñ\82Ñ\80анÑ\81Ñ\82во Ð¸Ð¼Ñ\91н glabels"
+#: ../src/ui.c:187 ../src/ui.c:189 ../src/ui.c:974
+#, fuzzy
+msgid "Redo"
+msgstr "Ð\9aÑ\80аÑ\81нÑ\8bй"
 
-#: ../src/xml-label.c:319 ../src/xml-label-04.c:79
-#, c-format
-msgid "Bad root node = \"%s\""
-msgstr "Неверный корневой узел = \"%s\""
+#: ../src/ui.c:194
+msgid "Cut"
+msgstr "Вырезать"
 
-#: ../src/xml-label.c:356
-#, c-format
-msgid "bad node in Document node =  \"%s\""
-msgstr "Неверный узел в узле документа=  \"%s\""
+#: ../src/ui.c:196
+msgid "Cut the selection"
+msgstr "Вырезать выделенное"
 
-#: ../src/xml-label.c:401 ../src/xml-label-04.c:127
-#, c-format
-msgid "bad node =  \"%s\""
-msgstr "неверный узел =  \"%s\""
+#: ../src/ui.c:201
+msgid "Copy"
+msgstr "Копировать"
 
-#: ../src/xml-label.c:840
-#, c-format
-msgid "bad node in Data node =  \"%s\""
-msgstr "неверный узел в узле данных=  \"%s\""
+#: ../src/ui.c:203
+msgid "Copy the selection"
+msgstr "Скопировать выделенное"
 
-#: ../src/xml-label.c:1077 ../libglabels/xml-template.c:670
-msgid "Utf8 conversion error."
-msgstr "Ð\9eÑ\88ибка Ð¿Ñ\80еобÑ\80азованиÑ\8f UTF8."
+#: ../src/ui.c:210
+msgid "Paste the clipboard"
+msgstr "Ð\92Ñ\81Ñ\82авиÑ\82Ñ\8c Ð¸Ð· Ð±Ñ\83Ñ\84еÑ\80а"
 
-#: ../src/xml-label.c:1084
-msgid "Problem saving xml file."
-msgstr "Ð\9dеполадки Ð¿Ñ\80и Ñ\81оÑ\85Ñ\80анении Ñ\84айла XML."
+#: ../src/ui.c:217
+msgid "Delete the selected objects"
+msgstr "УдалиÑ\82Ñ\8c Ð²Ñ\8bбÑ\80аннÑ\8bе Ð¾Ð±Ñ\8aекÑ\82Ñ\8b"
 
-#: ../src/merge.c:170 ../src/merge.c:211 ../src/merge.c:375 ../src/merge.c:378
-msgid "None"
-msgstr "Ð\9dеÑ\82"
+#: ../src/ui.c:222
+msgid "Select All"
+msgstr "Ð\92Ñ\8bделиÑ\82Ñ\8c Ð²Ñ\81е"
 
-#: ../src/merge-init.c:59
-msgid "Text file with comma delimeters (CSV)"
-msgstr "ТекÑ\81Ñ\82 Ñ\81 Ñ\80азделиÑ\82елем Â«Ð·Ð°Ð¿Ñ\8fÑ\82аÑ\8f» (CSV)"
+#: ../src/ui.c:224
+msgid "Select all objects"
+msgstr "Ð\92Ñ\8bделиÑ\82Ñ\8c Ð²Ñ\81е Ð¾Ð±Ñ\8aекÑ\82Ñ\8b"
 
-#: ../src/merge-init.c:66
-msgid "Text file with colon delimeters"
-msgstr "ТекÑ\81Ñ\82 Ñ\81 Ñ\80азделиÑ\82елем Â«Ð´Ð²Ð¾ÐµÑ\82оÑ\87ие»"
+#: ../src/ui.c:229
+msgid "Un-select All"
+msgstr "СнÑ\8fÑ\82Ñ\8c Ð²Ñ\8bделение"
 
-#: ../src/merge-init.c:73
-msgid "Text file with tab delimeters"
-msgstr "ТекÑ\81Ñ\82 Ñ\81 Ñ\80азделиÑ\82елем Â«Ñ\81имвол Ñ\82абÑ\83лÑ\8fÑ\86ии»"
+#: ../src/ui.c:231
+msgid "Remove all selections"
+msgstr "СнÑ\8fÑ\82Ñ\8c Ð²Ñ\8bделение Ñ\81о Ð²Ñ\81еÑ\85 Ð¾Ð±Ñ\8aекÑ\82ов"
 
-#: ../src/merge-init.c:82
-msgid "Data from default Evolution Addressbook"
-msgstr "Ð\94аннÑ\8bе Ð¸Ð· Ð¸Ñ\81полÑ\8cзÑ\83емой Ð¿Ð¾ Ñ\83молÑ\87аниÑ\8e Ð°Ð´Ñ\80еÑ\81ной ÐºÐ½Ð¸Ð³Ð¸ Evolution"
+#: ../src/ui.c:236
+msgid "Preferences"
+msgstr "Ð\9fаÑ\80амеÑ\82Ñ\80Ñ\8b"
 
-#: ../src/merge-init.c:88
-msgid "Data from a file containing VCards"
-msgstr "Ð\94аннÑ\8bе Ð¸Ð· Ñ\84айла, Ñ\81одеÑ\80жаÑ\89его VCard"
+#: ../src/ui.c:238
+msgid "Configure the application"
+msgstr "Ð\9dаÑ\81Ñ\82Ñ\80оиÑ\82Ñ\8c Ð¿Ñ\80огÑ\80аммÑ\83"
 
-#: ../src/merge-evolution.c:309
-msgid "Couldn't construct query"
-msgstr "Ð\9dе Ñ\83далоÑ\81Ñ\8c Ñ\81Ñ\84оÑ\80миÑ\80оваÑ\82Ñ\8c Ð·Ð°Ð¿Ñ\80оÑ\81."
+#: ../src/ui.c:245
+msgid "Zoom in"
+msgstr "Ð\9fÑ\80иблизиÑ\82Ñ\8c"
 
-#: ../src/merge-evolution.c:315 ../src/merge-evolution.c:326
-msgid "Couldn't open addressbook."
-msgstr "Ð\9dе Ñ\83далоÑ\81Ñ\8c Ð¾Ñ\82кÑ\80Ñ\8bÑ\82Ñ\8c Ð°Ð´Ñ\80еÑ\81нÑ\83Ñ\8e ÐºÐ½Ð¸Ð³Ñ\83."
+#: ../src/ui.c:247
+msgid "Increase magnification"
+msgstr "УменÑ\8cÑ\88иÑ\82Ñ\8c Ð¼Ð°Ñ\81Ñ\88Ñ\82аб"
 
-#: ../src/merge-evolution.c:341
-msgid "Couldn't list available fields."
-msgstr "Ð\9dе Ñ\83далоÑ\81Ñ\8c Ð¿ÐµÑ\80еÑ\87иÑ\81лиÑ\82Ñ\8c Ð´Ð¾Ñ\81Ñ\82Ñ\83пнÑ\8bе Ð¿Ð¾Ð»Ñ\8f."
+#: ../src/ui.c:252
+msgid "Zoom out"
+msgstr "Ð\9eÑ\82далиÑ\82Ñ\8c"
 
-#: ../src/merge-evolution.c:377
-msgid "Couldn't get contacts."
-msgstr "Ð\9dе Ñ\83далоÑ\81Ñ\8c Ð¿Ð¾Ð»Ñ\83Ñ\87иÑ\82Ñ\8c ÐºÐ¾Ð½Ñ\82акÑ\82нÑ\8bе Ð´Ð°Ð½Ð½Ñ\8bе."
+#: ../src/ui.c:254
+msgid "Decrease magnification"
+msgstr "УвелиÑ\87иÑ\82Ñ\8c Ð¼Ð°Ñ\81Ñ\88Ñ\82аб"
 
-#: ../src/wdgt-print-copies.c:153
-msgid "Sheets:"
-msgstr "Ð\9bиÑ\81Ñ\82ов:"
+#: ../src/ui.c:259
+msgid "Zoom 1 to 1"
+msgstr "Ð\9cаÑ\81Ñ\88Ñ\82аб 1:1"
 
-#: ../src/wdgt-print-copies.c:173
-msgid "from:"
-msgstr "с:"
+#: ../src/ui.c:261
+msgid "Restore scale to 100%"
+msgstr "Восстановить масштаб 1:1"
 
-#: ../src/wdgt-print-copies.c:178
-msgid "to:"
-msgstr "по:"
+#: ../src/ui.c:266
+msgid "Zoom to fit"
+msgstr "УмеÑ\81Ñ\82иÑ\82Ñ\8c Ñ\86еликом Ð² Ð¾ÐºÐ½Ðµ"
 
-#: ../src/wdgt-print-merge.c:154
-msgid "Start on label"
-msgstr "Ð\9dаÑ\87аÑ\82Ñ\8c Ñ\81 Ñ\8dÑ\82икеÑ\82ки"
+#: ../src/ui.c:268
+msgid "Set scale to fit window"
+msgstr "Ð\98змениÑ\82Ñ\8c Ð¼Ð°Ñ\81Ñ\88Ñ\82аб, Ñ\87Ñ\82обÑ\8b Ð¸Ð·Ð¾Ð±Ñ\80ажение Ð±Ñ\8bло Ð²Ð¸Ð´Ð½Ð¾ Ð¿Ð¾Ð»Ð½Ð¾Ñ\81Ñ\82Ñ\8cÑ\8e"
 
-#: ../src/wdgt-print-merge.c:159
-msgid "on 1st sheet"
-msgstr "на Ð¿ÐµÑ\80вом Ð»Ð¸Ñ\81Ñ\82е"
+#: ../src/ui.c:275
+msgid "Select Mode"
+msgstr "Режим Ð²Ñ\8bбоÑ\80а"
 
-#: ../src/wdgt-print-merge.c:168
-msgid "Copies:"
-msgstr "Ð\9aопий:"
+#: ../src/ui.c:277
+msgid "Select, move and modify objects"
+msgstr "Ð\92Ñ\8bбÑ\80аÑ\82Ñ\8c, Ð¿ÐµÑ\80емеÑ\81Ñ\82иÑ\82Ñ\8c Ð¸Ð»Ð¸ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ\82Ñ\8c Ð¾Ð±Ñ\8aекÑ\82Ñ\8b"
 
-#: ../src/wdgt-print-merge.c:173
-msgid "Collate"
-msgstr "Собирать"
+#: ../src/ui.c:282 ../src/view-text.c:102 ../data/ui/object-editor.ui.h:28
+#: ../data/ui/prefs-dialog.ui.h:17
+msgid "Text"
+msgstr "Текст"
 
-#: ../src/wdgt-media-select.c:288 ../src/wdgt-media-select.c:292
-#: ../src/wdgt-media-select.c:297 ../src/wdgt-media-select.c:306
-#: ../src/wdgt-media-select.c:309 ../src/wdgt-media-select.c:402
-#: ../src/wdgt-media-select.c:609 ../src/wdgt-media-select.c:618
-msgid "Any"
-msgstr "Любой вариант"
+#: ../src/ui.c:289
+msgid "Box"
+msgstr "Прямоугольник"
 
-#: ../src/wdgt-media-select.c:643
-#, c-format
-msgid "%d per sheet"
-msgstr "%d на лист"
+#: ../src/ui.c:291
+msgid "Create box/rectangle object"
+msgstr "Добавить прямоугольник"
 
-#: ../src/wdgt-media-select.c:673
-#, c-format
-msgid "%s x %s %s"
-msgstr "%s x %s %s"
+#: ../src/ui.c:296 ../data/ui/object-editor.ui.h:17
+#: ../data/ui/prefs-dialog.ui.h:9
+msgid "Line"
+msgstr "Обводка"
 
-#: ../src/wdgt-media-select.c:678
-#, c-format
-msgid "%.5g x %.5g %s"
-msgstr "%.5g x %.5g %s"
+#: ../src/ui.c:303
+msgid "Ellipse"
+msgstr "Эллипс"
 
-#: ../src/wdgt-media-select.c:689 ../src/wdgt-media-select.c:703
-#, c-format
-msgid "%s %s diameter"
-msgstr "%s %s диаметр"
+#: ../src/ui.c:305
+msgid "Create ellipse/circle object"
+msgstr "Добавить эллипс/круг"
 
-#: ../src/wdgt-media-select.c:693 ../src/wdgt-media-select.c:707
-#, c-format
-msgid "%.5g %s diameter"
-msgstr "%.5g %s диаметр"
+#: ../src/ui.c:310 ../data/ui/object-editor.ui.h:14
+msgid "Image"
+msgstr "Изображение"
 
-#: ../src/wdgt-media-select.c:781
-msgid "No recent templates found."
-msgstr "Ð\9dедавно Ð¾Ñ\82кÑ\80Ñ\8bвавÑ\88иÑ\85Ñ\81Ñ\8f Ñ\88аблонов Ð½Ðµ Ð¾Ð±Ð½Ð°Ñ\80Ñ\83жено."
+#: ../src/ui.c:317
+msgid "Barcode"
+msgstr "ШÑ\82Ñ\80иÑ\85-код"
 
-#: ../src/wdgt-media-select.c:782
-msgid "Try selecting a template from the \"Search all templates\" page."
-msgstr "Ð\9fопÑ\80обÑ\83йÑ\82е Ð²Ñ\8bбÑ\80аÑ\82Ñ\8c Ñ\88аблон Ð½Ð° Ð²ÐºÐ»Ð°Ð´ÐºÐµ Â«Ð\9fоиÑ\81к Ð¿Ð¾ Ñ\88аблонам»."
+#: ../src/ui.c:326
+msgid "Raise object to top"
+msgstr "Ð\9fеÑ\80емеÑ\81Ñ\82иÑ\82Ñ\8c Ð¾Ð±Ñ\8aекÑ\82 Ð½Ð° Ð¿ÐµÑ\80едний Ð¿Ð»Ð°Ð½"
 
-#: ../src/wdgt-media-select.c:861
-msgid "No match."
-msgstr "Ð\9dеÑ\82 Ñ\81овпадений."
+#: ../src/ui.c:333
+msgid "Lower object to bottom"
+msgstr "Ð\9fеÑ\80емеÑ\81Ñ\82иÑ\82Ñ\8c Ð¾Ð±Ñ\8aекÑ\82 Ð½Ð° Ð·Ð°Ð´Ð½Ð¸Ð¹ Ð¿Ð»Ð°Ð½"
 
-#: ../src/wdgt-media-select.c:862
-msgid "Try selecting a different brand, page size or category."
-msgstr "Ð\9fопÑ\80обÑ\83йÑ\82е Ð²Ñ\8bбÑ\80аÑ\82Ñ\8c Ð´Ñ\80Ñ\83гÑ\83Ñ\8e Ð¼Ð°Ñ\80кÑ\83, Ñ\84оÑ\80маÑ\82 Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\8b Ð¸Ð»Ð¸ ÐºÐ°Ñ\82егоÑ\80иÑ\8e"
+#: ../src/ui.c:340
+msgid "Rotate object 90 degrees counter-clockwise"
+msgstr "Ð\9fовеÑ\80нÑ\83Ñ\82Ñ\8c Ð¾Ð±Ñ\8aекÑ\82 Ð½Ð° 90 Ð³Ñ\80адÑ\83Ñ\81ов Ð¿Ñ\80оÑ\82ив Ñ\87аÑ\81овой Ñ\81Ñ\82Ñ\80елки"
 
-#. This is the default custom color
-#: ../src/mygal/color-palette.c:389
-msgid "custom"
-msgstr "выборочно"
+#: ../src/ui.c:347
+msgid "Rotate object 90 degrees clockwise"
+msgstr "Повернуть объект на 90 градусов по часовой стрелке"
 
-#. "Custom" color - we'll pop up a GtkColorButton
-#: ../src/mygal/color-palette.c:431
-msgid "Custom Color:"
-msgstr "Заказной цвет:"
+#: ../src/ui.c:354
+msgid "Flip object horizontally"
+msgstr "Отразить объект горизонтально"
 
-#: ../src/mygal/color-palette.c:439
-msgid "Choose Custom Color"
-msgstr "Ð\92Ñ\8bбеÑ\80иÑ\82е Ð¿Ð¾Ð»Ñ\8cзоваÑ\82елÑ\8cÑ\81кий Ñ\86веÑ\82"
+#: ../src/ui.c:361
+msgid "Flip object vertically"
+msgstr "Ð\9eÑ\82Ñ\80азиÑ\82Ñ\8c Ð¾Ð±Ñ\8aекÑ\82 Ð²ÐµÑ\80Ñ\82икалÑ\8cно"
 
-#: ../src/mygal/color-palette.c:572
-msgid "black"
-msgstr "ЧÑ\91Ñ\80нÑ\8bй"
+#: ../src/ui.c:368
+msgid "Align objects to left edges"
+msgstr "Ð\92Ñ\8bÑ\80овнÑ\8fÑ\82Ñ\8c Ð¾Ð±Ñ\8aекÑ\82Ñ\8b Ð¿Ð¾ Ð»ÐµÐ²Ð¾Ð¼Ñ\83 ÐºÑ\80аÑ\8e"
 
-#: ../src/mygal/color-palette.c:573
-msgid "light brown"
-msgstr "светло-коричневый"
+#: ../src/ui.c:375
+msgid "Align objects to right edges"
+msgstr "Выровнять объекты по правому краю"
 
-#: ../src/mygal/color-palette.c:574
-msgid "brown gold"
-msgstr "золоÑ\82ой ÐºÐ¾Ñ\80иÑ\87невÑ\8bй"
+#: ../src/ui.c:382
+msgid "Align objects to horizontal centers"
+msgstr "Ð\92Ñ\8bÑ\80овнÑ\8fÑ\82Ñ\8c Ð¾Ð±Ñ\8aекÑ\82Ñ\8b Ð¿Ð¾ Ð³Ð¾Ñ\80изонÑ\82алÑ\8cнÑ\8bм Ñ\86енÑ\82Ñ\80ам"
 
-#: ../src/mygal/color-palette.c:575
-msgid "dark green #2"
-msgstr "чёрно-зелёный №2"
+#: ../src/ui.c:389
+msgid "Align objects to top edges"
+msgstr "Выровнять объекты по верхним краям"
 
-#: ../src/mygal/color-palette.c:576
-msgid "navy"
-msgstr "моÑ\80Ñ\81кой"
+#: ../src/ui.c:396
+msgid "Align objects to bottom edges"
+msgstr "Ð\92Ñ\8bÑ\80овнÑ\8fÑ\82Ñ\8c Ð¾Ð±Ñ\8aекÑ\82Ñ\8b Ð¿Ð¾ Ð½Ð¸Ð¶Ð½Ð¸Ð¼ ÐºÑ\80аÑ\8fм"
 
-#: ../src/mygal/color-palette.c:577 ../src/mygal/color-palette.c:633
-msgid "dark blue"
-msgstr "ТÑ\91мно-Ñ\81иний"
+#: ../src/ui.c:403
+msgid "Align objects to vertical centers"
+msgstr "Ð\92Ñ\8bÑ\80овнÑ\8fÑ\82Ñ\8c Ð¾Ð±Ñ\8aекÑ\82Ñ\8b Ð¿Ð¾ Ð²ÐµÑ\80Ñ\82икалÑ\8cнÑ\8bм Ñ\86енÑ\82Ñ\80ам"
 
-#: ../src/mygal/color-palette.c:578
-msgid "purple #2"
-msgstr "пÑ\83Ñ\80пÑ\83Ñ\80нÑ\8bй â\84\962"
+#: ../src/ui.c:410
+msgid "Center objects to horizontal label center"
+msgstr "ЦенÑ\82Ñ\80иÑ\80оваÑ\82Ñ\8c Ð¾Ð±Ñ\8aекÑ\82Ñ\8b Ð¿Ð¾ Ñ\86енÑ\82Ñ\80Ñ\83 Ð³Ð¾Ñ\80изонÑ\82алÑ\8cной Ð¼ÐµÑ\82ки"
 
-#: ../src/mygal/color-palette.c:579
-msgid "very dark gray"
-msgstr "оÑ\87енÑ\8c Ñ\82Ñ\91мно-Ñ\81еÑ\80Ñ\8bй"
+#: ../src/ui.c:417
+msgid "Center objects to vertical label center"
+msgstr "ЦенÑ\82Ñ\80иÑ\80оваÑ\82Ñ\8c Ð¾Ð±Ñ\8aекÑ\82Ñ\8b Ð¿Ð¾ Ñ\86енÑ\82Ñ\80Ñ\83 Ð²ÐµÑ\80Ñ\82икалÑ\8cной Ð¼ÐµÑ\82ки"
 
-#: ../src/mygal/color-palette.c:582 ../src/mygal/color-palette.c:638
-msgid "dark red"
-msgstr "ТÑ\91мно-кÑ\80аÑ\81нÑ\8bй"
+#: ../src/ui.c:424
+msgid "Edit merge properties"
+msgstr "Ð\98змениÑ\82Ñ\8c Ð¿Ð°Ñ\80амеÑ\82Ñ\80Ñ\8b Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ\8f Ð¿Ð¾Ð»ÐµÐ¹ Ð´Ð°Ð½Ð½Ñ\8bми"
 
-#: ../src/mygal/color-palette.c:583
-msgid "red-orange"
-msgstr "кÑ\80аÑ\81но-оÑ\80анжевÑ\8bй"
+#: ../src/ui.c:431
+msgid "Contents"
+msgstr "СодеÑ\80жание"
 
-#: ../src/mygal/color-palette.c:584
-msgid "gold"
-msgstr "Ð\97олоÑ\82ой"
+#: ../src/ui.c:433
+msgid "Open glabels manual"
+msgstr "Ð\9fоказаÑ\82Ñ\8c Ñ\81пÑ\80авкÑ\83 Ð¿Ð¾ gLabels"
 
-#: ../src/mygal/color-palette.c:585
-msgid "dark green"
-msgstr "ТÑ\91мно-зелÑ\91нÑ\8bй"
+#: ../src/ui.c:438
+msgid "About..."
+msgstr "Ð\9e Ð¿Ñ\80огÑ\80амме..."
 
-#: ../src/mygal/color-palette.c:586 ../src/mygal/color-palette.c:639
-msgid "dull blue"
-msgstr "тускло-синий"
+#: ../src/ui.c:440
+msgid "About glabels"
+msgstr "О gLabels"
 
-#: ../src/mygal/color-palette.c:587 ../src/mygal/color-palette.c:640
-msgid "blue"
-msgstr "Синий"
+#: ../src/ui.c:450
+msgid "Property toolbar"
+msgstr "Ð\9fанелÑ\8c Ñ\81войÑ\81Ñ\82в"
 
-#: ../src/mygal/color-palette.c:588
-msgid "dull purple"
-msgstr "тускло-пурпурный"
+#: ../src/ui.c:452
+msgid "Change the visibility of the property toolbar in the current window"
+msgstr "Изменить видимость панели свойств в текущем окне"
 
-#: ../src/mygal/color-palette.c:589
-msgid "dark grey"
-msgstr "тёмно-серый"
+#: ../src/ui.c:458
+msgid "Grid"
+msgstr "Сетка"
 
-#: ../src/mygal/color-palette.c:592
-msgid "red"
-msgstr "кÑ\80аÑ\81нÑ\8bй"
+#: ../src/ui.c:460
+msgid "Change the visibility of the grid in the current window"
+msgstr "Ð\98змениÑ\82Ñ\8c Ð²Ð¸Ð´Ð¸Ð¼Ð¾Ñ\81Ñ\82Ñ\8c Ñ\81еÑ\82ки Ð² Ñ\82екÑ\83Ñ\89ем Ð¾ÐºÐ½Ðµ"
 
-#: ../src/mygal/color-palette.c:593
-msgid "orange"
-msgstr "Ð\9eÑ\80анжевÑ\8bй"
+#: ../src/ui.c:466
+msgid "Markup"
+msgstr "РазмеÑ\82ка"
 
-#: ../src/mygal/color-palette.c:594
-msgid "lime"
-msgstr "лимоннÑ\8bй"
+#: ../src/ui.c:468
+msgid "Change the visibility of markup lines in the current window"
+msgstr "Ð\98змениÑ\82Ñ\8c Ð²Ð¸Ð´Ð¸Ð¼Ð¾Ñ\81Ñ\82Ñ\8c Ð»Ð¸Ð½Ð¸Ð¸ Ñ\80азмеÑ\82ки Ð² Ñ\82екÑ\83Ñ\89ем Ð¾ÐºÐ½Ðµ"
 
-#: ../src/mygal/color-palette.c:595
-msgid "dull green"
-msgstr "ТÑ\83Ñ\81кло-зелÑ\91нÑ\8bй"
+#: ../src/ui.c:479
+msgid "Main toolbar"
+msgstr "Ð\9fоказÑ\8bваÑ\82Ñ\8c Ð¿Ð°Ð½ÐµÐ»Ñ\8c Ð¸Ð½Ñ\81Ñ\82Ñ\80Ñ\83менÑ\82ов"
 
-#: ../src/mygal/color-palette.c:596
-msgid "dull blue #2"
-msgstr "тускло-синий №2"
+#: ../src/ui.c:481
+msgid "Change the visibility of the main toolbar in the current window"
+msgstr "Изменить видимость главной панели инструментов в текущем окне"
 
-#: ../src/mygal/color-palette.c:597
-msgid "sky blue #2"
-msgstr "небеÑ\81но-Ñ\81иний â\84\962"
+#: ../src/ui.c:487
+msgid "Drawing toolbar"
+msgstr "Ð\9fанелÑ\8c Ñ\80иÑ\81ованиÑ\8f"
 
-#: ../src/mygal/color-palette.c:598 ../src/mygal/color-palette.c:637
-msgid "purple"
-msgstr "Ð\9fÑ\83Ñ\80пÑ\83Ñ\80нÑ\8bй"
+#: ../src/ui.c:489
+msgid "Change the visibility of the drawing toolbar in the current window"
+msgstr "Ð\98змениÑ\82Ñ\8c Ð²Ð¸Ð´Ð¸Ð¼Ð¾Ñ\81Ñ\82Ñ\8c Ð¿Ð°Ð½ÐµÐ»Ð¸ Ð¸Ð½Ñ\81Ñ\82Ñ\80Ñ\83менÑ\82ов Ð´Ð»Ñ\8f Ñ\80иÑ\81ованиÑ\8f Ð² Ñ\82екÑ\83Ñ\89ем Ð¾ÐºÐ½Ðµ"
 
-#: ../src/mygal/color-palette.c:599
-msgid "gray"
-msgstr "серый"
+#: ../src/ui-commands.c:1135
+msgid "Glabels includes contributions from:"
+msgstr "В разработке gLabels поучаствовали:"
 
-#: ../src/mygal/color-palette.c:602 ../src/mygal/color-palette.c:634
-msgid "magenta"
-msgstr "малиновый"
+#: ../src/ui-commands.c:1141
+msgid "See the file AUTHORS for additional credits,"
+msgstr ""
+"Подробная информация об участниках\n"
+"изложена в файле AUTHORS, а также"
 
-#: ../src/mygal/color-palette.c:603
-msgid "bright orange"
-msgstr "ярко-оранжевый"
+#: ../src/ui-commands.c:1142
+#, fuzzy
+msgid "or visit http://glabels.org/"
+msgstr "на сайте http://glabels.sourceforge.net/"
 
-#: ../src/mygal/color-palette.c:604 ../src/mygal/color-palette.c:635
-msgid "yellow"
-msgstr "Ð\96Ñ\91лÑ\82Ñ\8bй"
+#: ../src/ui-commands.c:1154
+msgid "A label and business card creation program.\n"
+msgstr "Ð\9fÑ\80огÑ\80амма Ð´Ð»Ñ\8f Ñ\81озданиÑ\8f Ñ\8dÑ\82икеÑ\82ов Ð¸ Ð²Ð¸Ð·Ð¸Ñ\82нÑ\8bÑ\85 ÐºÐ°Ñ\80Ñ\82оÑ\87ек.\n"
 
-#: ../src/mygal/color-palette.c:605
-msgid "green"
-msgstr "Зелёный"
+#: ../src/ui-commands.c:1158
+msgid "translator-credits"
+msgstr ""
+"Виталий Липатов <lav@altlinux.ru>, 2002-2005\n"
+"Александр Прокудин <alexandre.prokoudine@gmail.com>, 2008"
 
-#: ../src/mygal/color-palette.c:606 ../src/mygal/color-palette.c:636
-msgid "cyan"
-msgstr "Циановый"
+#: ../src/ui-commands.c:1161
+#, fuzzy
+msgid ""
+"gLabels is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"gLabels is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Glabels является свободным программным обеспечением;\n"
+"вы вправе распространять её и/или модифицировать в соответствии\n"
+"с условиями версии 2 либо по вашему выбору более поздней\n"
+"версии Стандартной Общественной Лицензии GNU, \n"
+"опубликованной Free Software Foundation.\n"
+" \n"
+"Мы распространяем данную программу в надежде на то, что она\n"
+"будет вам полезной, однако НЕ ПРЕДОСТАВЛЯЕМ НА НЕЁ НИКАКИХ\n"
+"ГАРАНТИЙ, в том числе ГАРАНТИИ ТОВАРНОГО СОСТОЯНИЯ ПРИ\n"
+"ПРОДАЖЕ И ПРИГОДНОСТИ ДЛЯ ИСПОЛЬЗОВАНИЯ В КОНКРЕТНЫХ\n"
+"ЦЕЛЯХ. Для получения более подробной информации ознакомьтесь\n"
+"со Стандартной Общественной Лицензией GNU.\n"
 
-#: ../src/mygal/color-palette.c:607
-msgid "bright blue"
-msgstr "ярко-синий"
+#: ../src/ui-commands.c:1190
+msgid "glabels"
+msgstr "glabels"
 
-#: ../src/mygal/color-palette.c:608 ../src/mygal/color-palette.c:625
-msgid "red purple"
-msgstr "кÑ\80аÑ\81но-пÑ\83Ñ\80пÑ\83Ñ\80нÑ\8bй"
+#: ../src/warning-handler.c:69
+msgid "gLabels Error!"
+msgstr "Ð\9eÑ\88ибка gLabels!"
 
-#: ../src/mygal/color-palette.c:609
-msgid "light grey"
-msgstr "светло-серый"
+#: ../src/window.c:284
+msgid "(none) - gLabels"
+msgstr "(нет открытых макетов) - gLabels"
 
-#: ../src/mygal/color-palette.c:612 ../src/mygal/color-palette.c:629
-msgid "pink"
-msgstr "Розовый"
+#: ../src/window.c:485
+msgid "(modified)"
+msgstr "(изменено)"
 
-#: ../src/mygal/color-palette.c:613
-msgid "light orange"
-msgstr "светло-оранжевый"
+#: ../src/xml-label-04.c:75 ../src/xml-label.c:333
+#, c-format
+msgid "Bad root node = \"%s\""
+msgstr "Неверный корневой узел = \"%s\""
 
-#: ../src/mygal/color-palette.c:614 ../src/mygal/color-palette.c:626
-msgid "light yellow"
-msgstr "Светло-жёлтый"
+#: ../src/xml-label-04.c:123 ../src/xml-label.c:416
+#, c-format
+msgid "bad node =  \"%s\""
+msgstr "неверный узел =  \"%s\""
 
-#: ../src/mygal/color-palette.c:615
-msgid "light green"
-msgstr "СвеÑ\82ло-зеленÑ\8bй"
+#: ../src/xml-label.c:199 ../src/xml-label.c:237
+msgid "xmlParseFile error"
+msgstr "Ð\9eÑ\88ибка Ð¿Ñ\80и Ñ\80азбоÑ\80е Ñ\84айла XML"
 
-#: ../src/mygal/color-palette.c:616
-msgid "light cyan"
-msgstr "СвеÑ\82ло-Ñ\86иановÑ\8bй"
+#: ../src/xml-label.c:274
+msgid "No document root"
+msgstr "Ð\9dеÑ\82 ÐºÐ¾Ñ\80нÑ\8f Ð´Ð¾ÐºÑ\83менÑ\82а"
 
-#: ../src/mygal/color-palette.c:617 ../src/mygal/color-palette.c:627
-msgid "light blue"
-msgstr "светло-синий"
+#: ../src/xml-label.c:282
+msgid "Importing from glabels 0.1 format"
+msgstr "Выполняется импорт из файла gLabels версии 0.1"
 
-#: ../src/mygal/color-palette.c:618 ../src/mygal/color-palette.c:631
-msgid "light purple"
-msgstr "светло-пурпурный"
+#: ../src/xml-label.c:291
+msgid "Importing from glabels 0.4 format"
+msgstr "Выполняется импорт из файла gLabels версии 0.4"
 
-#: ../src/mygal/color-palette.c:619
-msgid "white"
-msgstr "Белый"
+#: ../src/xml-label.c:301
+#, fuzzy, c-format
+msgid "Unknown glabels Namespace -- Using %s"
+msgstr "документ неверного типа, неизвестное пространство имён glabels"
 
-#: ../src/mygal/color-palette.c:624
-msgid "purplish blue"
-msgstr "пурпурно-синий"
+#: ../src/xml-label.c:370
+#, c-format
+msgid "bad node in Document node =  \"%s\""
+msgstr "Неверный узел в узле документа=  \"%s\""
 
-#: ../src/mygal/color-palette.c:628
-msgid "dark purple"
-msgstr "тёмно-пурпурный"
+#: ../src/xml-label.c:868
+#, c-format
+msgid "bad node in Data node =  \"%s\""
+msgstr "неверный узел в узле данных=  \"%s\""
 
-#: ../src/mygal/color-palette.c:630
-msgid "sky blue"
-msgstr "Небесно-синий"
+#: ../src/xml-label.c:944
+#, fuzzy, c-format
+msgid "Unknown embedded file format: \"%s\""
+msgstr "Неизвестный идентификатор размера страницы или название \"%s\""
 
-#: ../src/critical-error-handler.c:73
-msgid "gLabels Fatal Error!"
-msgstr "ФаÑ\82алÑ\8cнаÑ\8f Ð¾Ñ\88ибка gLabels!"
+#: ../src/xml-label.c:1150 ../libglabels/xml-template.c:802
+msgid "Utf8 conversion error."
+msgstr "Ð\9eÑ\88ибка Ð¿Ñ\80еобÑ\80азованиÑ\8f UTF8."
 
-#: ../src/warning-handler.c:73
-msgid "gLabels Error!"
-msgstr "Ð\9eÑ\88ибка gLabels!"
+#: ../src/xml-label.c:1157
+msgid "Problem saving xml file."
+msgstr "Ð\9dеполадки Ð¿Ñ\80и Ñ\81оÑ\85Ñ\80анении Ñ\84айла XML."
 
 #. Create and append an "Other" entry.
-#: ../libglabels/db.c:118
+#. Translators: "Other" here means other page size.  Meaning a page size
+#. * other than the standard ones that libglabels knows about such as
+#. * "letter", "A4", etc.
+#: ../libglabels/db.c:270
 msgid "Other"
 msgstr "Другой"
 
 #. Create and append a "User defined" entry.
-#: ../libglabels/db.c:131
+#: ../libglabels/db.c:279
 msgid "User defined"
 msgstr "Определено пользователем"
 
-#: ../libglabels/db.c:482
+#: ../libglabels/db.c:665
 msgid ""
 "Unable to locate paper size definitions.  Libglabels may not be installed "
 "correctly!"
 msgstr ""
 
-#: ../libglabels/db.c:875
+#: ../libglabels/db.c:1057
 msgid ""
 "Unable to locate category definitions.  Libglabels may not be installed "
 "correctly!"
 msgstr ""
 
-#: ../libglabels/db.c:1461
+#: ../libglabels/db.c:2097
 msgid ""
 "Unable to locate any template files.  Libglabels may not be installed "
 "correctly!"
 msgstr ""
 
-#: ../libglabels/db.c:1538
+#: ../libglabels/db.c:2164
 #, fuzzy, c-format
-msgid "Generic %s full page template"
+msgid "%s full page label"
 msgstr "Основная %s полная страница"
 
-#: ../libglabels/xml-template.c:227
+#: ../libglabels/template.c:156
+#, c-format
+msgid "Equivalent part (\"%s\") for \"%s\", not previously defined."
+msgstr ""
+
+#.
+#. * Translators: 1st %d = number of labels across a page,
+#. *              2nd %d = number of labels down a page,
+#. *              3rd %d = total number of labels on a page (sheet).
+#.
+#: ../libglabels/template.c:727
+#, fuzzy, c-format
+msgid "%d × %d (%d per sheet)"
+msgstr "%d x %d (%d на лист)"
+
+#. Translators: %d is the total number of labels on a page (sheet).
+#: ../libglabels/template.c:732
+#, c-format
+msgid "%d per sheet"
+msgstr "%d на лист"
+
+#: ../libglabels/template.c:802 ../libglabels/template.c:808
+#: ../libglabels/template.c:818 ../libglabels/template.c:824
+#, fuzzy
+msgid "diameter"
+msgstr "%s %s диаметр"
+
+#. The ids are identical to the absolute length units supported in
+#. the CSS2 Specification (Section 4.3.2)
+#. This table must be sorted exactly as the enumerations in lglUnits
+#. [LGL_UNITS_POINT]
+#: ../libglabels/units.c:65 ../data/ui/object-editor.ui.h:39
+#: ../data/ui/prefs-dialog.ui.h:22
+msgid "points"
+msgstr "пунктов"
+
+#. [LGL_UNITS_INCH]
+#: ../libglabels/units.c:66 ../data/ui/object-editor.ui.h:38
+#: ../data/ui/template-designer.ui.h:62
+msgid "inches"
+msgstr "дюймов"
+
+#. [LGL_UNITS_MM]
+#: ../libglabels/units.c:67
+msgid "mm"
+msgstr "мм"
+
+#. [LGL_UNITS_CM]
+#: ../libglabels/units.c:68
+msgid "cm"
+msgstr ""
+
+#. [LGL_UNITS_PICA]
+#: ../libglabels/units.c:69
+msgid "picas"
+msgstr ""
+
+#: ../libglabels/xml-template.c:223
 msgid "Missing name or brand/part attributes."
 msgstr ""
 
@@ -1506,392 +1960,403 @@ msgstr ""
 msgid "Unknown page size id or name \"%s\""
 msgstr "Неизвестный идентификатор размера страницы или название \"%s\""
 
-#: ../libglabels/xml-template.c:615
+#: ../libglabels/xml-template.c:275
+msgid "Forward references not supported."
+msgstr ""
+
+#: ../libglabels/xml-template.c:747
 msgid ""
 "Missing required \"brand\" or \"part\" attribute, trying deprecated name."
 msgstr ""
 
-#: ../libglabels/xml-template.c:625
+#: ../libglabels/xml-template.c:757
 msgid "Name attribute also missing."
 msgstr "Атрибут имени также отсутствует."
 
-#: ../data/glade/merge-properties-dialog.glade.h:1
-msgid "<b>Record selection/preview</b>"
-msgstr "<b>Просмотр и выбор записей</b>"
-
-#: ../data/glade/merge-properties-dialog.glade.h:2
-msgid "<b>Source</b>"
-msgstr "<b>Источник</b>"
-
-#: ../data/glade/merge-properties-dialog.glade.h:3
+#.
+#. * Local Variables:       -- emacs
+#. * mode: C                -- emacs
+#. * c-basic-offset: 8      -- emacs
+#. * tab-width: 8           -- emacs
+#. * indent-tabs-mode: nil  -- emacs
+#. * End:                   -- emacs
+#.
+#: ../data/ui/merge-properties-dialog.ui.h:1
 msgid "Format:"
 msgstr "Формат:"
 
-#: ../data/glade/merge-properties-dialog.glade.h:4
+#: ../data/ui/merge-properties-dialog.ui.h:2
 msgid "Location:"
 msgstr "Расположение:"
 
-#: ../data/glade/merge-properties-dialog.glade.h:5
+#: ../data/ui/merge-properties-dialog.ui.h:3
+#, fuzzy
+msgid "Record selection/preview"
+msgstr "<b>Просмотр и выбор записей</b>"
+
+#: ../data/ui/merge-properties-dialog.ui.h:4
 msgid "Select all"
 msgstr "Выделить всё"
 
-#: ../data/glade/merge-properties-dialog.glade.h:6
+#: ../data/ui/merge-properties-dialog.ui.h:5
+#, fuzzy
+msgid "Source"
+msgstr "<b>Источник</b>"
+
+#: ../data/ui/merge-properties-dialog.ui.h:6
 msgid "Unselect all"
 msgstr "Снять выделение"
 
-#: ../data/glade/merge-properties-dialog.glade.h:7
-#: ../data/glade/object-editor.glade.h:39
-msgid "dialog1"
-msgstr "dialog1"
+#: ../data/ui/media-select.ui.h:1
+msgid "Brand:"
+msgstr "Марка:"
+
+#: ../data/ui/media-select.ui.h:2
+msgid "Category:"
+msgstr "Категория:"
+
+#: ../data/ui/media-select.ui.h:3
+#, fuzzy
+msgid "Custom"
+msgstr "выборочно"
+
+#: ../data/ui/media-select.ui.h:4 ../data/ui/new-label-dialog.ui.h:6
+#: ../data/ui/template-designer.ui.h:42
+msgid "Page size:"
+msgstr "Формат страницы:"
+
+#: ../data/ui/media-select.ui.h:5
+msgid "Recent"
+msgstr ""
+
+#: ../data/ui/media-select.ui.h:6
+#, fuzzy
+msgid "Search all"
+msgstr "Выделить всё"
+
+#: ../data/ui/new-label-dialog.ui.h:1
+msgid ""
+"Choose label or card product from hundreds of predefined templates or define "
+"your own."
+msgstr ""
+
+#: ../data/ui/new-label-dialog.ui.h:2 ../data/ui/template-designer.ui.h:27
+msgid "Description:"
+msgstr "Описание:"
+
+#: ../data/ui/new-label-dialog.ui.h:3
+msgid "Label size:"
+msgstr "Размер этикетки:"
+
+#: ../data/ui/new-label-dialog.ui.h:4
+msgid "Layout:"
+msgstr "Формат:"
+
+#: ../data/ui/new-label-dialog.ui.h:5
+msgid "Normal"
+msgstr "Обычное"
+
+#: ../data/ui/new-label-dialog.ui.h:7 ../data/ui/template-designer.ui.h:43
+msgid "Part #:"
+msgstr "Часть №:"
+
+#: ../data/ui/new-label-dialog.ui.h:8
+msgid "Please review and confirm your selection."
+msgstr ""
+
+#: ../data/ui/new-label-dialog.ui.h:9
+msgid "Rotated"
+msgstr "С поворотом"
+
+#: ../data/ui/new-label-dialog.ui.h:10
+msgid "Select orientation of label content."
+msgstr ""
 
-#: ../data/glade/new-label-dialog.glade.h:1
-msgid "<b>Label orientation</b>"
-msgstr "<b>Расположение этикетки</b>"
+#: ../data/ui/new-label-dialog.ui.h:11
+msgid "Similar products:"
+msgstr ""
 
-#: ../data/glade/new-label-dialog.glade.h:2
-msgid "<b>Media type</b>"
-msgstr "<b>Тип носителя</b>"
+#: ../data/ui/new-label-dialog.ui.h:12
+msgid "Vendor:"
+msgstr ""
 
-#: ../data/glade/object-editor.glade.h:2
+#: ../data/ui/object-editor.ui.h:2
 #, no-c-format
 msgid "%"
 msgstr "%"
 
-#: ../data/glade/object-editor.glade.h:3
-msgid "00000000000 00000"
-msgstr "00000000000 00000"
-
-#: ../data/glade/object-editor.glade.h:4
-msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
-msgstr "<span weight=\"bold\" size=\"larger\">Xxx свойства объекта</span>"
-
-#: ../data/glade/object-editor.glade.h:5 ../data/glade/prefs-dialog.glade.h:7
+#: ../data/ui/object-editor.ui.h:3 ../data/ui/prefs-dialog.ui.h:2
 msgid "Alignment:"
 msgstr "Выключка:"
 
-#: ../data/glade/object-editor.glade.h:6
+#: ../data/ui/object-editor.ui.h:4
 msgid "Allow merge to automatically shrink text"
 msgstr "При заполнении данными текст обрезаем"
 
-#: ../data/glade/object-editor.glade.h:7
+#: ../data/ui/object-editor.ui.h:5
 msgid "Angle:"
 msgstr "Угол:"
 
-#: ../data/glade/object-editor.glade.h:8
+#: ../data/ui/object-editor.ui.h:6
 msgid "Checksum"
 msgstr "Контрольная сумма"
 
-#: ../data/glade/object-editor.glade.h:9 ../data/glade/prefs-dialog.glade.h:8
+#: ../data/ui/object-editor.ui.h:7 ../data/ui/prefs-dialog.ui.h:3
 msgid "Color:"
 msgstr "Цвет:"
 
-#: ../data/glade/object-editor.glade.h:11
+#: ../data/ui/object-editor.ui.h:9
 msgid "Enable shadow"
 msgstr "Отбрасывать тень"
 
-#: ../data/glade/object-editor.glade.h:12
+#: ../data/ui/object-editor.ui.h:10
 msgid "Family:"
 msgstr "Семейство:"
 
-#: ../data/glade/object-editor.glade.h:13
+#: ../data/ui/object-editor.ui.h:11
 msgid "File:"
 msgstr "Файл:"
 
-#: ../data/glade/object-editor.glade.h:14
+#: ../data/ui/object-editor.ui.h:12 ../data/ui/prefs-dialog.ui.h:5
 msgid "Fill"
 msgstr "Заливка"
 
-#: ../data/glade/object-editor.glade.h:15
-#: ../data/glade/template-designer.glade.h:30
+#: ../data/ui/object-editor.ui.h:13 ../data/ui/template-designer.ui.h:30
 msgid "Height:"
 msgstr "Высота:"
 
-#: ../data/glade/object-editor.glade.h:17
-msgid "Insert merge field"
-msgstr "Вставить объединительное поле"
-
-#: ../data/glade/object-editor.glade.h:18
+#: ../data/ui/object-editor.ui.h:15
 msgid "Key:"
 msgstr "Ключ:"
 
-#: ../data/glade/object-editor.glade.h:19
+#: ../data/ui/object-editor.ui.h:16
 msgid "Length:"
 msgstr "Длина:"
 
-#: ../data/glade/object-editor.glade.h:21
-#: ../data/glade/prefs-dialog.glade.h:12
+#: ../data/ui/object-editor.ui.h:18 ../data/ui/prefs-dialog.ui.h:10
 msgid "Line Spacing:"
 msgstr "Между строк:"
 
-#: ../data/glade/object-editor.glade.h:22
+#: ../data/ui/object-editor.ui.h:19
 msgid "Literal:"
 msgstr "Код:"
 
-#: ../data/glade/object-editor.glade.h:23
+#: ../data/ui/object-editor.ui.h:20
 msgid "Opacity:"
 msgstr "Непрозрачность:"
 
-#: ../data/glade/object-editor.glade.h:24
+#: ../data/ui/object-editor.ui.h:21
 msgid "Position"
 msgstr "Расположение"
 
-#: ../data/glade/object-editor.glade.h:25
+#: ../data/ui/object-editor.ui.h:22
 msgid "Reset image size"
 msgstr "Установить размер изображения по умолчанию"
 
-#: ../data/glade/object-editor.glade.h:26
-msgid "Select A File"
-msgstr "Выберите файл"
-
-#: ../data/glade/object-editor.glade.h:27
+#: ../data/ui/object-editor.ui.h:23
 msgid "Shadow"
 msgstr "Тень"
 
-#: ../data/glade/object-editor.glade.h:28
+#: ../data/ui/object-editor.ui.h:24
 msgid "Size"
 msgstr "Размер"
 
-#: ../data/glade/object-editor.glade.h:29
+#: ../data/ui/object-editor.ui.h:25
 msgid "Size:"
 msgstr "Размер:"
 
-#: ../data/glade/object-editor.glade.h:30
+#: ../data/ui/object-editor.ui.h:26
 msgid "Style"
 msgstr "Стиль"
 
-#: ../data/glade/object-editor.glade.h:31
+#: ../data/ui/object-editor.ui.h:27
 msgid "Style:"
 msgstr "Стиль:"
 
-#: ../data/glade/object-editor.glade.h:33
-#: ../data/glade/prefs-dialog.glade.h:20
-#: ../data/glade/template-designer.glade.h:61
+#: ../data/ui/object-editor.ui.h:29 ../data/ui/prefs-dialog.ui.h:20
+#: ../data/ui/template-designer.ui.h:61
 msgid "Width:"
 msgstr "Ширина:"
 
-#: ../data/glade/object-editor.glade.h:34
+#: ../data/ui/object-editor.ui.h:30
 msgid "X Offset:"
 msgstr "Смещение по X:"
 
-#: ../data/glade/object-editor.glade.h:35
+#: ../data/ui/object-editor.ui.h:31
 msgid "X:"
 msgstr "X:"
 
-#: ../data/glade/object-editor.glade.h:36
+#: ../data/ui/object-editor.ui.h:32
 msgid "Y Offset:"
 msgstr "Смещение по Y:"
 
-#: ../data/glade/object-editor.glade.h:37
+#: ../data/ui/object-editor.ui.h:33
 msgid "Y:"
 msgstr "Y:"
 
-#: ../data/glade/object-editor.glade.h:38
+#: ../data/ui/object-editor.ui.h:34
 msgid "degrees"
 msgstr "градусов"
 
-#: ../data/glade/object-editor.glade.h:40
+#: ../data/ui/object-editor.ui.h:35
+msgid "dialog1"
+msgstr "dialog1"
+
+#: ../data/ui/object-editor.ui.h:36
 msgid "digits:"
 msgstr "Цифр:"
 
-#: ../data/glade/object-editor.glade.h:41
+#: ../data/ui/object-editor.ui.h:37
 msgid "format:"
 msgstr "Формат:"
 
-#: ../data/glade/prefs-dialog.glade.h:1
+#: ../data/ui/prefs-dialog.ui.h:1
 msgid "   "
 msgstr "   "
 
-#: ../data/glade/prefs-dialog.glade.h:2
-msgid "<span weight=\"bold\">Default page size</span>"
-msgstr "<span weight=\"bold\">Размер страницы по умолчанию</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:3
-msgid "<span weight=\"bold\">Fill</span>"
-msgstr "<span weight=\"bold\">Заливка</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:4
-msgid "<span weight=\"bold\">Line</span>"
-msgstr "<span weight=\"bold\">Обводка</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:5
-msgid "<span weight=\"bold\">Text</span>"
-msgstr "<span weight=\"bold\">Текст</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:6
-msgid "<span weight=\"bold\">Units</span>"
-msgstr "<span weight=\"bold\">Единицы измерения</span>"
+#: ../data/ui/prefs-dialog.ui.h:4
+#, fuzzy
+msgid "Default page size"
+msgstr "Установить размер изображения по умолчанию"
 
-#: ../data/glade/prefs-dialog.glade.h:9
+#: ../data/ui/prefs-dialog.ui.h:6
 msgid "Font:"
 msgstr "Шрифт:"
 
-#: ../data/glade/prefs-dialog.glade.h:10
+#: ../data/ui/prefs-dialog.ui.h:7
 msgid "ISO A4"
 msgstr "ISO A4"
 
-#: ../data/glade/prefs-dialog.glade.h:11
+#: ../data/ui/prefs-dialog.ui.h:8
 msgid "Inches"
 msgstr "Дюймы"
 
-#: ../data/glade/prefs-dialog.glade.h:13
+#: ../data/ui/prefs-dialog.ui.h:11
 msgid "Locale"
 msgstr "Местные параметры"
 
-#: ../data/glade/prefs-dialog.glade.h:14
+#: ../data/ui/prefs-dialog.ui.h:12
 msgid "Millimeters"
 msgstr "Миллиметры"
 
-#: ../data/glade/prefs-dialog.glade.h:15
+#: ../data/ui/prefs-dialog.ui.h:13
 msgid "Object defaults"
 msgstr "Свойства объектов по умолчанию"
 
-#: ../data/glade/prefs-dialog.glade.h:16
+#: ../data/ui/prefs-dialog.ui.h:14
 msgid "Points"
 msgstr "Пункты"
 
-#: ../data/glade/prefs-dialog.glade.h:17
+#: ../data/ui/prefs-dialog.ui.h:15
 msgid "Select default properties for new objects."
 msgstr "Укажите используемые по умолчанию свойства новых объектов "
 
-#: ../data/glade/prefs-dialog.glade.h:18
+#: ../data/ui/prefs-dialog.ui.h:16
 msgid "Select locale specific behavior."
 msgstr "Укажите местные параметры"
 
-#. Most popular (at top of list)
-#: ../data/glade/prefs-dialog.glade.h:19
-#: ../data/templates/paper-sizes.xml.h:29
+#: ../data/ui/prefs-dialog.ui.h:18 ../templates/paper-sizes.xml.h:35
 msgid "US Letter"
 msgstr "US Letter"
 
-#: ../data/glade/print-custom-widget.glade.h:1
-msgid "<b>Options</b>"
-msgstr "<b>Параметры</b>"
-
-#: ../data/glade/print-custom-widget.glade.h:2
-msgid "<b>Print control (Merge)</b>"
-msgstr "<b>Управление печатью (объединение)</b>"
-
-#: ../data/glade/print-custom-widget.glade.h:3
-msgid "<b>Print control (Simple)</b>"
-msgstr "<b>Управление печатью (простая)</b>"
+#: ../data/ui/prefs-dialog.ui.h:19
+#, fuzzy
+msgid "Units"
+msgstr "Без названия"
 
-#: ../data/glade/property-bar.glade.h:1
+#: ../data/ui/property-bar.ui.h:1
 msgid "Bold"
 msgstr "Жирный"
 
-#: ../data/glade/property-bar.glade.h:2
+#: ../data/ui/property-bar.ui.h:2
 msgid "Center align"
 msgstr "Выровнять по центру"
 
-#: ../data/glade/property-bar.glade.h:4
-msgid "Font family"
-msgstr "Гарнитура"
-
-#: ../data/glade/property-bar.glade.h:5
-msgid "Font size"
-msgstr "Размер шрифта"
-
-#: ../data/glade/property-bar.glade.h:6
-msgid "Italic"
-msgstr "Курсив"
-
-#: ../data/glade/property-bar.glade.h:7
+#: ../data/ui/property-bar.ui.h:7
 msgid "Left align"
 msgstr "Выровнять слева"
 
-#: ../data/glade/property-bar.glade.h:9
-msgid "Line width"
-msgstr "Толщина линии"
-
-#: ../data/glade/property-bar.glade.h:10
+#: ../data/ui/property-bar.ui.h:10
 msgid "Right align"
 msgstr "Выровнять справа"
 
-#: ../data/glade/property-bar.glade.h:11
-msgid "Text Color"
-msgstr "Цвет текста"
-
-#: ../data/glade/property-bar.glade.h:12
-msgid "Text color"
-msgstr "Цвет текста"
-
-#: ../data/glade/template-designer.glade.h:1
+#: ../data/ui/template-designer.ui.h:1
 msgid "(e.g., \"Mailing Labels,\" \"Business Cards,\" ...)"
 msgstr "(например, «Почтовые этикетки,» «Визитные карточки,» ...)"
 
-#: ../data/glade/template-designer.glade.h:2
+#: ../data/ui/template-designer.ui.h:2
 msgid "(e.g., 8163A)"
 msgstr "(например, 8163A)"
 
-#: ../data/glade/template-designer.glade.h:3
+#: ../data/ui/template-designer.ui.h:3
 msgid "(e.g., Avery, Acme, ...)"
 msgstr "(например, Avery, Acme, ...)"
 
-#: ../data/glade/template-designer.glade.h:4
+#: ../data/ui/template-designer.ui.h:4
 msgid "1. Outer radius:"
 msgstr "1. Наружный радиус:"
 
-#: ../data/glade/template-designer.glade.h:5
+#: ../data/ui/template-designer.ui.h:5
 msgid "1. Radius:"
 msgstr "1. Радиус:"
 
-#: ../data/glade/template-designer.glade.h:6
+#: ../data/ui/template-designer.ui.h:6
 msgid "1. Width:"
 msgstr "1. Ширина:"
 
-#: ../data/glade/template-designer.glade.h:7
+#: ../data/ui/template-designer.ui.h:7
 msgid "2. Height:"
 msgstr "2. Высота:"
 
-#: ../data/glade/template-designer.glade.h:8
+#: ../data/ui/template-designer.ui.h:8
 msgid "2. Inner radius:"
 msgstr "2. Внутренний радиус:"
 
-#: ../data/glade/template-designer.glade.h:9
+#: ../data/ui/template-designer.ui.h:9
 msgid "2. Waste (overprint allowed):"
 msgstr "2. Пустое поле (на нём можно будет печать):"
 
-#: ../data/glade/template-designer.glade.h:10
+#: ../data/ui/template-designer.ui.h:10
 msgid "3. Clipping width:"
 msgstr "3. Ширина для обрезки:"
 
-#: ../data/glade/template-designer.glade.h:11
+#: ../data/ui/template-designer.ui.h:11
 msgid "3. Margin"
 msgstr "3. Поле"
 
-#: ../data/glade/template-designer.glade.h:12
+#: ../data/ui/template-designer.ui.h:12
 msgid "3. Round (radius of corner):"
 msgstr "3. Закругление (радиус вершины):"
 
-#: ../data/glade/template-designer.glade.h:13
+#: ../data/ui/template-designer.ui.h:13
 msgid "4. Clipping height:"
 msgstr "4. Высота обрезки:"
 
-#: ../data/glade/template-designer.glade.h:14
+#: ../data/ui/template-designer.ui.h:14
 msgid "4. Horiz. waste (overprint allowed):"
 msgstr "4. Пустое гориз. пространство (может быть заполнено):"
 
-#: ../data/glade/template-designer.glade.h:15
+#: ../data/ui/template-designer.ui.h:15
 msgid "5. Vert. waste (overprint allowed):"
 msgstr "5. Пустое верт. пространство (может быть заполнено):"
 
-#: ../data/glade/template-designer.glade.h:16
+#: ../data/ui/template-designer.ui.h:16
 msgid "5. Waste (overprint allowed):"
 msgstr "5. Пустое пространство (может быть заполнено):"
 
-#: ../data/glade/template-designer.glade.h:17
+#: ../data/ui/template-designer.ui.h:17
 msgid "6. Margin"
 msgstr "6. Поле"
 
-#: ../data/glade/template-designer.glade.h:18
+#: ../data/ui/template-designer.ui.h:18
 msgid "Brand/Manufacturer:"
 msgstr "Производитель или торговая марка:"
 
-#: ../data/glade/template-designer.glade.h:19
+#: ../data/ui/template-designer.ui.h:19
 msgid "CD/DVD (including credit card CDs)"
 msgstr "CD/DVD (включая CD размером с визитку)"
 
-#: ../data/glade/template-designer.glade.h:20
+#: ../data/ui/template-designer.ui.h:20
 msgid ""
 "Congratulations!\n"
 "\n"
@@ -1909,23 +2374,19 @@ msgstr ""
 "Вы также можете нажать кнопку «Отменить», чтобы не сохранять,\n"
 "либо кнопку «Назад», чтобы продолжить редактирование."
 
-#: ../data/glade/template-designer.glade.h:27
-msgid "Description:"
-msgstr "Описание:"
-
-#: ../data/glade/template-designer.glade.h:28
+#: ../data/ui/template-designer.ui.h:28
 msgid "Distance from left edge (x0):"
 msgstr "Расстояние от левого угла (x0):"
 
-#: ../data/glade/template-designer.glade.h:29
+#: ../data/ui/template-designer.ui.h:29
 msgid "Distance from top edge (y0):"
 msgstr "Расстояние от верхнего угла (y0)"
 
-#: ../data/glade/template-designer.glade.h:31
+#: ../data/ui/template-designer.ui.h:31
 msgid "Horizontal pitch (dx):"
 msgstr "Интервал по горизонтали (dx):"
 
-#: ../data/glade/template-designer.glade.h:32
+#: ../data/ui/template-designer.ui.h:32
 msgid ""
 "How many layouts will your template contain? \n"
 "\n"
@@ -1940,52 +2401,43 @@ msgstr ""
 "Большинству шаблонов требуется только один макет, как в первом примере.\n"
 "Второй пример иллюстрирует случай, когда необходимо применять два макета."
 
-#: ../data/glade/template-designer.glade.h:37
+#: ../data/ui/template-designer.ui.h:37
 msgid "Layout #1"
 msgstr "Макет №1"
 
-#: ../data/glade/template-designer.glade.h:38
+#: ../data/ui/template-designer.ui.h:38
 msgid "Layout #2"
 msgstr "Макет №2"
 
-#: ../data/glade/template-designer.glade.h:39
+#: ../data/ui/template-designer.ui.h:39
 msgid "Number across (nx):"
 msgstr "По горизонтали (nx):"
 
-#: ../data/glade/template-designer.glade.h:40
+#: ../data/ui/template-designer.ui.h:40
 msgid "Number down (ny):"
 msgstr "По вертикали (ny):"
 
-#: ../data/glade/template-designer.glade.h:41
+#: ../data/ui/template-designer.ui.h:41
 msgid "Number of layouts:"
 msgstr "Количество макетов:"
 
-#: ../data/glade/template-designer.glade.h:42
-#: ../data/glade/wdgt-media-select.glade.h:3
-msgid "Page size:"
-msgstr "Формат страницы:"
-
-#: ../data/glade/template-designer.glade.h:43
-msgid "Part #:"
-msgstr "Часть №:"
-
-#: ../data/glade/template-designer.glade.h:44
+#: ../data/ui/template-designer.ui.h:44
 msgid ""
 "Please enter the following identifying information about the template "
 "stationery."
 msgstr "Укажите следующую идентификационную информацию для бланка."
 
-#: ../data/glade/template-designer.glade.h:45
+#: ../data/ui/template-designer.ui.h:45
 msgid "Please enter the following layout information."
 msgstr "Введите следующую информацию об оформлении."
 
-#: ../data/glade/template-designer.glade.h:46
+#: ../data/ui/template-designer.ui.h:46
 msgid ""
 "Please enter the following size parameters of a single label in your "
 "template."
 msgstr "Введите геометрические размеры одиночной этикетки в вашем шаблоне."
 
-#: ../data/glade/template-designer.glade.h:47
+#: ../data/ui/template-designer.ui.h:47
 msgid ""
 "Please enter the following size parameters of a single label or card in your "
 "template."
@@ -1993,27 +2445,27 @@ msgstr ""
 "Введите геометрические размеры одиночной этикетки или визитки в вашем "
 "шаблоне."
 
-#: ../data/glade/template-designer.glade.h:48
+#: ../data/ui/template-designer.ui.h:48
 msgid "Please select the basic shape of the labels or cards."
 msgstr "Выберите основную фигуру этикетки или карточки."
 
-#: ../data/glade/template-designer.glade.h:49
+#: ../data/ui/template-designer.ui.h:49
 msgid "Please select the page size of the template stationery."
 msgstr "Выберите размер страницы для шаблона."
 
-#: ../data/glade/template-designer.glade.h:50
+#: ../data/ui/template-designer.ui.h:50
 msgid "Print test sheet"
 msgstr "Напечатать тестовую страницу"
 
-#: ../data/glade/template-designer.glade.h:51
+#: ../data/ui/template-designer.ui.h:51
 msgid "Rectangular or square (can have rounded corners)"
 msgstr "Прямоугольник или квадрат (может иметь скруглённые края)"
 
-#: ../data/glade/template-designer.glade.h:52
+#: ../data/ui/template-designer.ui.h:52
 msgid "Round"
 msgstr "Круг"
 
-#: ../data/glade/template-designer.glade.h:53
+#: ../data/ui/template-designer.ui.h:53
 msgid ""
 "Templates needing\n"
 "two layouts."
@@ -2021,7 +2473,7 @@ msgstr ""
 "Для данного шаблона\n"
 "требуется две формы."
 
-#: ../data/glade/template-designer.glade.h:55
+#: ../data/ui/template-designer.ui.h:55
 msgid ""
 "Templates needing only\n"
 "one layout."
@@ -2029,11 +2481,11 @@ msgstr ""
 "Для данного шаблона требуется\n"
 "только одна форма."
 
-#: ../data/glade/template-designer.glade.h:57
+#: ../data/ui/template-designer.ui.h:57
 msgid "Vertical pitch (dy):"
 msgstr "Интервал по вертикали (dy):"
 
-#: ../data/glade/template-designer.glade.h:58
+#: ../data/ui/template-designer.ui.h:58
 msgid ""
 "Welcome to the gLabels Template Designer.\n"
 "\n"
@@ -2044,394 +2496,436 @@ msgstr ""
 "Этот диалог будет сопровождать вас в создании вашего собственного шаблона "
 "gLabels."
 
-#: ../data/glade/template-designer.glade.h:62
-msgid "cd_size_page"
-msgstr ""
-
-#: ../data/glade/template-designer.glade.h:63
-msgid "finish_page"
-msgstr ""
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:1
+msgid "Collate"
+msgstr "Собирать"
 
-#: ../data/glade/template-designer.glade.h:65
-msgid "layout_page"
-msgstr ""
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:2
+msgid "Copies"
+msgstr "Копий"
 
-#: ../data/glade/template-designer.glade.h:66
-msgid "name_page"
-msgstr ""
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:3
+msgid "Copies:"
+msgstr "Копий:"
 
-#: ../data/glade/template-designer.glade.h:67
-msgid "nlayouts_page"
-msgstr ""
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:5
+#, fuzzy
+msgid "Merge Control"
+msgstr "Управление объединением"
 
-#: ../data/glade/template-designer.glade.h:68
-msgid "pg_size_page"
-msgstr ""
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:6
+#, fuzzy
+msgid "Options"
+msgstr "<b>Параметры</b>"
 
-#: ../data/glade/template-designer.glade.h:69
-msgid "rect_size_page"
-msgstr ""
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:7
+msgid "Sheets:"
+msgstr "Листов:"
 
-#: ../data/glade/template-designer.glade.h:70
-msgid "round_size_page"
-msgstr ""
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:8
+msgid "Start on label"
+msgstr "Начать с этикетки"
 
-#: ../data/glade/template-designer.glade.h:71
-msgid "shape_page"
-msgstr ""
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:9
+msgid "from:"
+msgstr "с:"
 
-#: ../data/glade/template-designer.glade.h:72
-msgid "start_page"
-msgstr ""
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:10
+msgid "on 1st sheet"
+msgstr "на первом листе"
 
-#: ../data/glade/wdgt-media-select.glade.h:1
-msgid "Brand:"
-msgstr "Ð\9cаÑ\80ка:"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:14
+msgid "to:"
+msgstr "по:"
 
-#: ../data/glade/wdgt-media-select.glade.h:2
-msgid "Category:"
-msgstr "Ð\9aаÑ\82егоÑ\80иÑ\8f:"
+#: ../data/desktop/glabels-3.0.desktop.in.h:1
+msgid "Create labels, business cards and media covers"
+msgstr "Создание Ñ\8dÑ\82икеÑ\82ок, Ð²Ð¸Ð·Ð¸Ñ\82нÑ\8bÑ\85 ÐºÐ°Ñ\80Ñ\82оÑ\87ек Ð¸ Ð²ÐºÐ»Ð°Ð´Ñ\8bÑ\88ей Ð´Ð»Ñ\8f Ð´Ð¸Ñ\81ков"
 
-#: ../data/glade/wdgt-media-select.glade.h:4
-msgid "Recent templates"
-msgstr "Недавние шаблоны"
+#: ../data/desktop/glabels-3.0.desktop.in.h:2
+#, fuzzy
+msgid "gLabels Label Designer 3"
+msgstr "Дизайнер этикеток gLabels"
 
-#: ../data/glade/wdgt-media-select.glade.h:5
-msgid "Search all templates"
-msgstr "Ð\9fоиÑ\81к Ð¿Ð¾ Ñ\88аблонам"
+#: ../data/mime/glabels-3.0.xml.in.h:1
+msgid "gLabels Project File"
+msgstr "Файл Ð¿Ñ\80оекÑ\82а gLabels"
 
-#: ../data/glade/wdgt-rotate-label.glade.h:1
-msgid "Rotate"
-msgstr "С поворотом"
+#. Envelopes
+#: ../templates/paper-sizes.xml.h:2
+msgid "#10 Envelope"
+msgstr ""
 
 #. Other ISO A series sizes
-#: ../data/templates/paper-sizes.xml.h:2
+#: ../templates/paper-sizes.xml.h:4
 msgid "A0"
 msgstr "A0"
 
-#: ../data/templates/paper-sizes.xml.h:3
+#: ../templates/paper-sizes.xml.h:5
 msgid "A1"
 msgstr "A1"
 
-#: ../data/templates/paper-sizes.xml.h:4
+#: ../templates/paper-sizes.xml.h:6
 msgid "A10"
 msgstr "A10"
 
-#: ../data/templates/paper-sizes.xml.h:5
+#: ../templates/paper-sizes.xml.h:7
 msgid "A2"
 msgstr "A2"
 
-#: ../data/templates/paper-sizes.xml.h:6
+#: ../templates/paper-sizes.xml.h:8
 msgid "A3"
 msgstr "A3"
 
-#: ../data/templates/paper-sizes.xml.h:7
+#. Most popular (at top of list)
+#: ../templates/paper-sizes.xml.h:10
 msgid "A4"
 msgstr "A4"
 
-#: ../data/templates/paper-sizes.xml.h:8
+#: ../templates/paper-sizes.xml.h:11
 msgid "A5"
 msgstr "A5"
 
-#: ../data/templates/paper-sizes.xml.h:9
+#: ../templates/paper-sizes.xml.h:12
 msgid "A6"
 msgstr "A6"
 
-#: ../data/templates/paper-sizes.xml.h:10
+#: ../templates/paper-sizes.xml.h:13
 msgid "A7"
 msgstr "A7"
 
-#: ../data/templates/paper-sizes.xml.h:11
+#: ../templates/paper-sizes.xml.h:14
 msgid "A8"
 msgstr "A8"
 
-#: ../data/templates/paper-sizes.xml.h:12
+#: ../templates/paper-sizes.xml.h:15
 msgid "A9"
 msgstr "A9"
 
 #. ISO B series sizes
-#: ../data/templates/paper-sizes.xml.h:14
+#: ../templates/paper-sizes.xml.h:17
 msgid "B0"
 msgstr "B0"
 
-#: ../data/templates/paper-sizes.xml.h:15
+#: ../templates/paper-sizes.xml.h:18
 msgid "B1"
 msgstr "B1"
 
-#: ../data/templates/paper-sizes.xml.h:16
+#: ../templates/paper-sizes.xml.h:19
 msgid "B10"
 msgstr "B10"
 
-#: ../data/templates/paper-sizes.xml.h:17
+#: ../templates/paper-sizes.xml.h:20
 msgid "B2"
 msgstr "B2"
 
-#: ../data/templates/paper-sizes.xml.h:18
+#: ../templates/paper-sizes.xml.h:21
 msgid "B3"
 msgstr "B3"
 
-#: ../data/templates/paper-sizes.xml.h:19
+#: ../templates/paper-sizes.xml.h:22
 msgid "B4"
 msgstr "B4"
 
-#: ../data/templates/paper-sizes.xml.h:20
+#: ../templates/paper-sizes.xml.h:23
 msgid "B5"
 msgstr "B5"
 
-#: ../data/templates/paper-sizes.xml.h:21
+#: ../templates/paper-sizes.xml.h:24
 msgid "B6"
 msgstr "B6"
 
-#: ../data/templates/paper-sizes.xml.h:22
+#: ../templates/paper-sizes.xml.h:25
 msgid "B7"
 msgstr "B7"
 
-#: ../data/templates/paper-sizes.xml.h:23
+#: ../templates/paper-sizes.xml.h:26
 msgid "B8"
 msgstr "B8"
 
-#: ../data/templates/paper-sizes.xml.h:24
+#: ../templates/paper-sizes.xml.h:27
 msgid "B9"
 msgstr "B9"
 
-#: ../data/templates/paper-sizes.xml.h:25
+#: ../templates/paper-sizes.xml.h:28
+msgid "C5"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:29
+msgid "C6"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:30
+msgid "DL"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:31
+msgid "Monarch Envelope"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:32
 msgid "US Executive"
 msgstr "US Executive"
 
 #. Other US paper sizes
-#: ../data/templates/paper-sizes.xml.h:27
+#: ../templates/paper-sizes.xml.h:34
 msgid "US Legal"
 msgstr "US Legal"
 
-#: ../data/templates/categories.xml.h:1
+#: ../templates/categories.xml.h:1
 msgid "Any card"
 msgstr "Любые карточки"
 
-#: ../data/templates/categories.xml.h:2
+#: ../templates/categories.xml.h:2
 msgid "Any label"
 msgstr "Любые этикетки"
 
-#: ../data/templates/categories.xml.h:3
+#. ===================================================================
+#: ../templates/categories.xml.h:3 ../templates/pearl-iso-templates.xml.h:8
 msgid "Business cards"
 msgstr "Визитные карточки"
 
-#: ../data/templates/categories.xml.h:4
+#: ../templates/categories.xml.h:4
 msgid "CD/DVD or other media"
 msgstr "CD/DVD и прочие носители"
 
-#: ../data/templates/categories.xml.h:5
+#: ../templates/categories.xml.h:5
 msgid "Mailing/shipping products"
 msgstr "Корреспонденция"
 
-#: ../data/templates/categories.xml.h:6
+#: ../templates/categories.xml.h:6
 msgid "Rectangular labels"
 msgstr "Прямоугольные этикетки"
 
-#: ../data/templates/categories.xml.h:7
+#. ===================================================================
+#: ../templates/categories.xml.h:7 ../templates/pearl-iso-templates.xml.h:46
 msgid "Round labels"
 msgstr "Круглые этикетки"
 
-#: ../data/templates/categories.xml.h:8
+#: ../templates/categories.xml.h:8
 msgid "Square labels"
 msgstr "Квадратные этикетки"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:2
-#: ../data/templates/avery-us-templates.xml.h:2
-#: ../data/templates/dymo-other-templates.xml.h:4
-#: ../data/templates/misc-iso-templates.xml.h:2
-#: ../data/templates/zweckform-iso-templates.xml.h:2
+#. ********************************************************************
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:2
+#: ../templates/dymo-other-templates.xml.h:4
+#: ../templates/maco-us-templates.xml.h:2
+#: ../templates/misc-iso-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:1
+#: ../templates/zweckform-iso-templates.xml.h:2
 msgid "Address Labels"
 msgstr "Этикетка с адресом"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:4
-msgid "Address labels"
-msgstr "Адресные наклейки"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:6
-#, fuzzy
-msgid "Allround labels"
-msgstr "Маленькие круглые этикетки"
-
 #. ============================================================
 #. ===================================================================
 #. ********************************************************************
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:8
-#: ../data/templates/avery-us-templates.xml.h:4
-#: ../data/templates/misc-iso-templates.xml.h:12
-#: ../data/templates/misc-us-templates.xml.h:4
-#: ../data/templates/zweckform-iso-templates.xml.h:6
+#: ../templates/avery-us-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:8
+#: ../templates/misc-us-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:6
 msgid "Business Cards"
 msgstr "Визитные карточки"
 
-#. ===============================================================
-#: ../data/templates/avery-iso-templates.xml.h:10
-msgid "CD Booklet"
-msgstr "Вкладыш в CD"
-
-#. ===============================================================
-#: ../data/templates/avery-iso-templates.xml.h:12
-msgid "CD Inlet"
-msgstr "Буклет для CD"
-
-#. ===============================================================
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:14
-#: ../data/templates/avery-us-templates.xml.h:6
-#: ../data/templates/misc-iso-templates.xml.h:16
-#: ../data/templates/misc-us-templates.xml.h:8
-#: ../data/templates/zweckform-iso-templates.xml.h:8
-msgid "CD/DVD Labels"
-msgstr "Этикетки для CD/DVD"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:16
-#: ../data/templates/avery-us-templates.xml.h:12
-msgid "Diskette Labels"
-msgstr "Наклейки на дискеты"
-
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:18
-msgid "Diskette labels"
-msgstr "Наклейки на дискеты"
-
 #. ===============================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:20
-#: ../data/templates/misc-iso-templates.xml.h:36
-#: ../data/templates/misc-us-templates.xml.h:18
-#: ../data/templates/zweckform-iso-templates.xml.h:16
-msgid "Mailing Labels"
-msgstr "Почтовые этикетки"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:22
-msgid "Mailing labels"
-msgstr "Почтовые наклейки"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:24
-msgid "Mini Address Labels"
-msgstr "Маленькие наклейки с адресом"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:26
-#, fuzzy
-msgid "Mini Labels"
-msgstr "Этикетки для Мини-CD"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:28
-msgid "Shipping labels"
-msgstr "Ценники"
-
-#. ===================================================================
-#: ../data/templates/avery-other-templates.xml.h:2
-msgid "File Folder Labels"
-msgstr "Наклейки для папок"
+#: ../templates/avery-us-templates.xml.h:6
+#: ../templates/avery-iso-templates.xml.h:14
+#: ../templates/misc-us-templates.xml.h:8
+#: ../templates/misc-iso-templates.xml.h:16
+#: ../templates/pearl-iso-templates.xml.h:20
+#: ../templates/worldlabel-us-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:8
+msgid "CD/DVD Labels"
+msgstr "Этикетки для CD/DVD"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:8
+#: ../templates/avery-us-templates.xml.h:8
 msgid "CD/DVD Labels (Disc Labels)"
 msgstr "Наклейки для CD/DVD (наклейки на диск)"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:10
+#: ../templates/avery-us-templates.xml.h:10
 msgid "CD/DVD Labels (Spine Labels)"
 msgstr "Наклейки на CD/DVD"
 
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:12
+#: ../templates/avery-iso-templates.xml.h:16
+#: ../templates/worldlabel-us-templates.xml.h:3
+msgid "Diskette Labels"
+msgstr "Наклейки на дискеты"
+
 #. the LSK labels can be torn in half down the center
-#: ../data/templates/avery-us-templates.xml.h:14
+#: ../templates/avery-us-templates.xml.h:14
 #, fuzzy
 msgid "Divider Labels"
 msgstr "Этикетки для CD"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:16
+#: ../templates/avery-us-templates.xml.h:16
+#: ../templates/avery-other-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:4
+msgid "File Folder Labels"
+msgstr "Наклейки для папок"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:5
 msgid "Filing Labels"
 msgstr "Заполняемые этикетки"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:18
+#: ../templates/avery-us-templates.xml.h:20
+#: ../templates/worldlabel-us-templates.xml.h:6
 msgid "Full Sheet Labels"
 msgstr "Этикетки на всю страницу"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:20
+#: ../templates/avery-us-templates.xml.h:22
 msgid "ID Labels"
 msgstr "Идентификационные этикетки"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:22
+#: ../templates/avery-us-templates.xml.h:24
 #, fuzzy
 msgid "Index Cards"
 msgstr "Визитные карточки"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:24
+#: ../templates/avery-us-templates.xml.h:26
 msgid "Large Round Labels"
 msgstr "Этикетки с большим закруглением"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:26
+#: ../templates/avery-us-templates.xml.h:28
 msgid "Name Badge Labels"
 msgstr "Именной бейджик"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:28
+#: ../templates/avery-us-templates.xml.h:30
 msgid "Post cards"
 msgstr "Почтовые открытки"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:30
-#: ../data/templates/dymo-other-templates.xml.h:12
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:32
+#: ../templates/dymo-other-templates.xml.h:12
+#: ../templates/worldlabel-us-templates.xml.h:8
 msgid "Return Address Labels"
 msgstr "Наклейка для обратного адреса"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:32
-#: ../data/templates/misc-us-templates.xml.h:28
+#: ../templates/avery-us-templates.xml.h:34
+#: ../templates/maco-us-templates.xml.h:3
+#: ../templates/misc-us-templates.xml.h:30
+#: ../templates/worldlabel-us-templates.xml.h:9
 msgid "Round Labels"
 msgstr "Круглые этикетки"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:34
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:36
+#: ../templates/uline-us-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:10
 msgid "Shipping Labels"
 msgstr "Ценники"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:36
+#: ../templates/avery-us-templates.xml.h:38
 msgid "Small Round Labels"
 msgstr "Маленькие круглые этикетки"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:38
+#: ../templates/avery-us-templates.xml.h:40
 msgid "Square Labels"
 msgstr "Прямоугольные этикетки"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:40
+#: ../templates/avery-us-templates.xml.h:42
 msgid "Tent Cards"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:42
+#: ../templates/avery-us-templates.xml.h:44
+#: ../templates/worldlabel-us-templates.xml.h:11
 msgid "Video Tape Face Labels"
 msgstr "Лицевые наклейки на видеокассету"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:44
+#: ../templates/avery-us-templates.xml.h:46
+#: ../templates/worldlabel-us-templates.xml.h:12
 msgid "Video Tape Spine Labels"
 msgstr "Торцевые наклейки на видеокассету"
 
-#: ../data/templates/brother-other-templates.xml.h:1
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:4
+msgid "Address labels"
+msgstr "Адресные наклейки"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:6
+#, fuzzy
+msgid "Allround labels"
+msgstr "Маленькие круглые этикетки"
+
+#. ===============================================================
+#: ../templates/avery-iso-templates.xml.h:10
+msgid "CD Booklet"
+msgstr "Вкладыш в CD"
+
+#. ===============================================================
+#: ../templates/avery-iso-templates.xml.h:12
+msgid "CD Inlet"
+msgstr "Буклет для CD"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:18
+msgid "Diskette labels"
+msgstr "Наклейки на дискеты"
+
+#. ===============================================================
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:20
+#: ../templates/misc-us-templates.xml.h:20
+#: ../templates/misc-iso-templates.xml.h:36
+#: ../templates/zweckform-iso-templates.xml.h:16
+msgid "Mailing Labels"
+msgstr "Почтовые этикетки"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:22
+msgid "Mailing labels"
+msgstr "Почтовые наклейки"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:24
+msgid "Mini Address Labels"
+msgstr "Маленькие наклейки с адресом"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:26
+#, fuzzy
+msgid "Mini Labels"
+msgstr "Этикетки для Мини-CD"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:28
+msgid "Shipping labels"
+msgstr "Ценники"
+
+#: ../templates/brother-other-templates.xml.h:1
 msgid "Multi Purpose Labels 17mm x 54mm"
 msgstr ""
 
-#: ../data/templates/brother-other-templates.xml.h:2
+#: ../templates/brother-other-templates.xml.h:2
 #, fuzzy
 msgid "Shipping Labels 62mm x 100mm"
 msgstr "Ценники"
@@ -2453,377 +2947,549 @@ msgstr "Ценники"
 #. *********************************************************************
 #. *********************************************************************
 #.
-#: ../data/templates/brother-other-templates.xml.h:20
+#: ../templates/brother-other-templates.xml.h:20
 #, fuzzy
 msgid "Standard Address Labels 29mm x 90mm"
 msgstr "Этикетка с адресом"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:2
+#: ../templates/dymo-other-templates.xml.h:2
 msgid "3.5in Diskette"
 msgstr "Дискета 3,5 дюйма"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:6
+#: ../templates/dymo-other-templates.xml.h:6
 msgid "File Folder"
 msgstr "Папка для файлов"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:8
+#: ../templates/dymo-other-templates.xml.h:8
 msgid "Hanging Folder"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:10
+#: ../templates/dymo-other-templates.xml.h:10
 msgid "Large Address Labels"
 msgstr "Большие наклейки с адресом"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:14
+#: ../templates/dymo-other-templates.xml.h:14
 #, fuzzy
 msgid "Shipping Address Labels"
 msgstr "Маленькие наклейки с адресом"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:4
-#: ../data/templates/zweckform-iso-templates.xml.h:4
+#: ../templates/misc-us-templates.xml.h:2
+msgid "Business Card CD"
+msgstr "Визитная карточка на CD"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:6
+msgid "CD Template Rectangles"
+msgstr "Прямоугольный шаблон для CD"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:10
+msgid "CD/DVD Labels (Face Only)"
+msgstr "Наклейки для CD/DVD (лицевая сторона)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:12
+#: ../templates/misc-iso-templates.xml.h:18
+msgid "CD/DVD Labels (face only)"
+msgstr "Вкладыши CD/DVD (лицевая сторона)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:14
+msgid "Cassette Labels"
+msgstr "Наклейки на кассеты"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:16
+msgid "DLT Labels"
+msgstr "Этикетки на DLT"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:18
+#, fuzzy
+msgid "Jewel Case Booklet"
+msgstr "Вкладыш в CD"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:22
+msgid "Microtube labels"
+msgstr "Этикетки для Microtube"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:24
+msgid "Mini-CD Labels"
+msgstr "Этикетки для Мини-CD"
+
+#: ../templates/misc-us-templates.xml.h:25
+#, fuzzy
+msgid "PRO CD Labels 2-up (CD spine only)"
+msgstr "CD CD"
+
+#: ../templates/misc-us-templates.xml.h:26
+#, fuzzy
+msgid "PRO CD Labels 2-up (Face only)"
+msgstr "CD"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:42
+#, fuzzy
+msgid "PRO CD Labels 2-up (face only)"
+msgstr "CD"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:32
+msgid "Slimline CD Case (rightside up)"
+msgstr "Тонкие коробки для CD (правая сторона вверху)"
+
+#: ../templates/misc-us-templates.xml.h:33
+msgid "Slimline CD Case (upside down)"
+msgstr "Тонкие коробки для CD (кверх ногами)"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:4
+#: ../templates/zweckform-iso-templates.xml.h:4
 msgid "Allround Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:6
+#: ../templates/misc-iso-templates.xml.h:6
 #, fuzzy
 msgid "Arch File Labels"
 msgstr "Файл"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:8
+#: ../templates/misc-iso-templates.xml.h:8
 #, fuzzy
 msgid "Arch File Labels (large)"
 msgstr "Файл большой"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:10
+#: ../templates/misc-iso-templates.xml.h:10
 #, fuzzy
 msgid "Arch File Labels (small)"
 msgstr "Файл маленький"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:14
+#: ../templates/misc-iso-templates.xml.h:14
 msgid "CD Labels"
 msgstr "Этикетки для CD"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:18
-#: ../data/templates/misc-us-templates.xml.h:12
-msgid "CD/DVD Labels (face only)"
-msgstr "Вкладыши CD/DVD (лицевая сторона)"
-
-#. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:20
+#: ../templates/misc-iso-templates.xml.h:20
 msgid "CD/DVD Labels Standard Format (face only)"
 msgstr "Наклейки стандартного формата для CD/DVD (лицевая сторона)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:22
+#: ../templates/misc-iso-templates.xml.h:22
 msgid "Diskette Labels (face only)"
 msgstr "Наклейки для дискет (лицевая сторона)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:24
+#: ../templates/misc-iso-templates.xml.h:24
 msgid "EPSON Photo Stickers 16"
 msgstr "EPSON Photo Stickers 16"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:26
+#: ../templates/misc-iso-templates.xml.h:26
 msgid "Etiketten"
 msgstr "Этикетки"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:28
 msgid "Fridge Magnet Stickers"
 msgstr "Магнитные стикеры для холодильника"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:30
+#: ../templates/misc-iso-templates.xml.h:30
 msgid "General Labels"
 msgstr "Этикетки общего назначения"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:32
+#: ../templates/misc-iso-templates.xml.h:32
 msgid "Inkjet/Laser Labels 70x37mm"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:38
+#: ../templates/misc-iso-templates.xml.h:38
 msgid "Mailing Labels-2 columns"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:40
+#: ../templates/misc-iso-templates.xml.h:40
 msgid "Mailing Labels-3 columns"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:42
-#: ../data/templates/misc-us-templates.xml.h:26
-#, fuzzy
-msgid "PRO CD Labels 2-up (face only)"
-msgstr "CD"
-
-#. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:44
-#: ../data/templates/zweckform-iso-templates.xml.h:24
+#: ../templates/misc-iso-templates.xml.h:44
+#: ../templates/zweckform-iso-templates.xml.h:24
 msgid "Rectangular Labels"
 msgstr "Прямоугольные метки"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:46
+#: ../templates/misc-iso-templates.xml.h:46
+#, fuzzy
+msgid "Universal Labels"
+msgstr "Этикетки общего назначения"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:48
 msgid "Video Labels (face only)"
 msgstr "Наклейки на видеокассеты (лицевая сторона)"
 
 #. ===================================================================
-#: ../data/templates/misc-other-templates.xml.h:2
+#: ../templates/misc-other-templates.xml.h:2
 #, fuzzy
 msgid "Multi-Purpose Labels"
 msgstr "Этикетки для Microtube"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:2
-msgid "Business Card CD"
-msgstr "Визитная карточка на CD"
+#: ../templates/pearl-iso-templates.xml.h:4
+#, fuzzy
+msgid "Address Labels (STAMPIT)"
+msgstr "Этикетка с адресом"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:6
-msgid "CD Template Rectangles"
-msgstr "Прямоугольный шаблон для CD"
+#: ../templates/pearl-iso-templates.xml.h:6
+#, fuzzy
+msgid "Bottle labels"
+msgstr "Наклейки на дискеты"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:10
-msgid "CD/DVD Labels (Face Only)"
-msgstr "Наклейки для CD/DVD (лицевая сторона)"
+#: ../templates/pearl-iso-templates.xml.h:10
+msgid "Business cards glossy, both sides printable"
+msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:14
-msgid "Cassette Labels"
-msgstr "Наклейки на кассеты"
+#: ../templates/pearl-iso-templates.xml.h:12
+#, fuzzy
+msgid "Business cards high glossy"
+msgstr "Визитные карточки"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:16
-msgid "DLT Labels"
-msgstr "Этикетки на DLT"
+#: ../templates/pearl-iso-templates.xml.h:14
+#, fuzzy
+msgid "Business cards punched"
+msgstr "Визитные карточки"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:20
-msgid "Microtube labels"
-msgstr "Этикетки для Microtube"
+#: ../templates/pearl-iso-templates.xml.h:16
+#, fuzzy
+msgid "Business cards punched dull"
+msgstr "Визитные карточки"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:22
-msgid "Mini-CD Labels"
-msgstr "Этикетки для Мини-CD"
+#: ../templates/pearl-iso-templates.xml.h:18
+#, fuzzy
+msgid "Business cards punched glossy"
+msgstr "Визитные карточки"
 
-#: ../data/templates/misc-us-templates.xml.h:23
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:22
 #, fuzzy
-msgid "PRO CD Labels 2-up (CD spine only)"
-msgstr "CD CD"
+msgid "Floppy disk labels"
+msgstr "Маленькие круглые этикетки"
 
-#: ../data/templates/misc-us-templates.xml.h:24
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:24
 #, fuzzy
-msgid "PRO CD Labels 2-up (Face only)"
-msgstr "CD"
+msgid "Foldable business cards"
+msgstr "Визитные карточки"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:30
-msgid "Slimline CD Case (rightside up)"
-msgstr "Тонкие коробки для CD (правая сторона вверху)"
+#: ../templates/pearl-iso-templates.xml.h:26
+msgid "Foldable business cards glossy/dull"
+msgstr ""
 
-#: ../data/templates/misc-us-templates.xml.h:31
-msgid "Slimline CD Case (upside down)"
-msgstr "Тонкие коробки для CD (кверх ногами)"
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:28
+#, fuzzy
+msgid "Labels A4"
+msgstr "Этикетки"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:30
+#, fuzzy
+msgid "Labels A5"
+msgstr "Этикетки"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:32
+#, fuzzy
+msgid "Labels A6"
+msgstr "Этикетки"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:34
+msgid "Membership cards"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:36
+msgid "Membership cards, both sides printable"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:38
+msgid "Name plates"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:40
+msgid "Passport photo labels glossy"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:42
+#, fuzzy
+msgid "Photo labels"
+msgstr "О gLabels"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:44
+msgid "Photo labels semiglossy"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:48
+#, fuzzy
+msgid "SD card labels"
+msgstr "Квадратные этикетки"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:50
+msgid "Self-adhesive film transparent"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:52
+msgid "Self-adhesive film weatherproof"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:54
+#, fuzzy
+msgid "Self-adhesive labels"
+msgstr "Квадратные этикетки"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:56
+msgid "Self-adhesive window film"
+msgstr ""
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:10
+#: ../templates/zweckform-iso-templates.xml.h:10
 msgid "Correction and Cover-up Labels"
 msgstr "Исправляющие и покрывающие метки"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:12
 #, fuzzy
 msgid "File Back Labels"
 msgstr "Заполняемые этикетки"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:14
+#: ../templates/zweckform-iso-templates.xml.h:14
 #, fuzzy
 msgid "Lever Arch File Labels"
 msgstr "Файл"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:18
+#: ../templates/zweckform-iso-templates.xml.h:18
 msgid "Multi-purpose Stick+Lift Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:20
+#: ../templates/zweckform-iso-templates.xml.h:20
 #, fuzzy
 msgid "QSL-Karten Etiketten 70mm x 50,8mm"
 msgstr "x"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:22
+#: ../templates/zweckform-iso-templates.xml.h:22
 msgid "Rectangular Copier Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:26
+#: ../templates/zweckform-iso-templates.xml.h:26
 msgid "Video Labels (back)"
 msgstr "Видеонаклейки (оборотная сторона)"
 
-#: ../data/desktop/glabels.desktop.in.h:1
-msgid "Create labels, business cards and media covers"
-msgstr "Создание этикеток, визитных карточек и вкладышей для дисков"
+#~ msgid "Text file with comma delimeters (CSV)"
+#~ msgstr "Текст с разделителем «запятая» (CSV)"
 
-#: ../data/desktop/glabels.desktop.in.h:2
-msgid "gLabels Label Designer"
-msgstr "Дизайнер этикеток gLabels"
+#~ msgid "Text file with colon delimeters"
+#~ msgstr "Текст с разделителем «двоеточие»"
 
-#: ../data/mime/glabels.keys.in.h:1 ../data/mime/glabels.xml.in.h:1
-msgid "gLabels Project File"
-msgstr "Файл проекта gLabels"
+#~ msgid "Text file with tab delimeters"
+#~ msgstr "Текст с разделителем «символ табуляции»"
 
-#: ../barcode-0.98/compat/getopt.c:583
-#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr ""
+#~ msgid "Data from a file containing VCards"
+#~ msgstr "Данные из файла, содержащего VCard"
 
-#: ../barcode-0.98/compat/getopt.c:607
-#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr ""
+#~ msgid "%s x %s %s"
+#~ msgstr "%s x %s %s"
 
-#: ../barcode-0.98/compat/getopt.c:612
-#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr ""
+#~ msgid "%.5g x %.5g %s"
+#~ msgstr "%.5g x %.5g %s"
 
-#: ../barcode-0.98/compat/getopt.c:629
-#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr ""
+#~ msgid "%.5g %s diameter"
+#~ msgstr "%.5g %s диаметр"
 
-#. --option
-#: ../barcode-0.98/compat/getopt.c:658
-#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: неизвестный ключ `--%s'\n"
+#~ msgid "<b>Label orientation</b>"
+#~ msgstr "<b>Расположение этикетки</b>"
 
-#. +option or -option
-#: ../barcode-0.98/compat/getopt.c:662
-#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: неизвестный ключ `%c%s'\n"
+#~ msgid "<b>Media type</b>"
+#~ msgstr "<b>Тип носителя</b>"
 
-#. 1003.2 specifies the format of this message.
-#: ../barcode-0.98/compat/getopt.c:688
-#, c-format
-msgid "%s: illegal option -- %c\n"
-msgstr ""
+#~ msgid "00000000000 00000"
+#~ msgstr "00000000000 00000"
 
-#: ../barcode-0.98/compat/getopt.c:691
-#, c-format
-msgid "%s: invalid option -- %c\n"
-msgstr "%s: некорректный ключ -- %c\n"
+#~ msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
+#~ msgstr "<span weight=\"bold\" size=\"larger\">Xxx свойства объекта</span>"
 
-#: ../barcode-0.98/compat/getopt.c:727
-#, c-format
-msgid "%s: option requires an argument -- %c\n"
-msgstr "%s: ключу необходим аргумент -- %c\n"
+#~ msgid "Select A File"
+#~ msgstr "Выберите файл"
 
-#, fuzzy
-#~ msgid "Launch gLabels label and business card designer."
-#~ msgstr "Программа для создания этикеток и визитных карточек\n"
+#~ msgid "<span weight=\"bold\">Default page size</span>"
+#~ msgstr "<span weight=\"bold\">Размер страницы по умолчанию</span>"
+
+#~ msgid "<span weight=\"bold\">Fill</span>"
+#~ msgstr "<span weight=\"bold\">Заливка</span>"
+
+#~ msgid "<span weight=\"bold\">Line</span>"
+#~ msgstr "<span weight=\"bold\">Обводка</span>"
+
+#~ msgid "<span weight=\"bold\">Text</span>"
+#~ msgstr "<span weight=\"bold\">Текст</span>"
+
+#~ msgid "<span weight=\"bold\">Units</span>"
+#~ msgstr "<span weight=\"bold\">Единицы измерения</span>"
+
+#~ msgid "<b>Print control (Merge)</b>"
+#~ msgstr "<b>Управление печатью (объединение)</b>"
+
+#~ msgid "<b>Print control (Simple)</b>"
+#~ msgstr "<b>Управление печатью (простая)</b>"
+
+#~ msgid "Text Color"
+#~ msgstr "Цвет текста"
 
-#~ msgid "Print files created with gLabels."
-#~ msgstr "Ð\9dапеÑ\87аÑ\82аÑ\82Ñ\8c Ñ\81озданнÑ\8bе Ð² gLabels Ñ\84айлÑ\8b."
+#~ msgid "Search all templates"
+#~ msgstr "Ð\9fоиÑ\81к Ð¿Ð¾ Ñ\88аблонам"
 
-#~ msgid "IEC18004 (QRCode)"
-#~ msgstr "IEC18004 (QRCode)"
+#~ msgid "%s: unrecognized option `--%s'\n"
+#~ msgstr "%s: неизвестный ключ `--%s'\n"
 
-#~ msgid "Default Color"
-#~ msgstr "Цвет по умолчанию"
+#~ msgid "%s: unrecognized option `%c%s'\n"
+#~ msgstr "%s: неизвестный ключ `%c%s'\n"
 
-#~ msgid "Dark Red"
-#~ msgstr "Тёмно-красный"
+#~ msgid "%s: invalid option -- %c\n"
+#~ msgstr "%s: некорректный ключ -- %c\n"
 
-#~ msgid "Brown"
-#~ msgstr "Коричневый"
+#~ msgid "%s: option requires an argument -- %c\n"
+#~ msgstr "%s: ключу необходим аргумент -- %c\n"
 
-#~ msgid "Dark Goldenrod"
-#~ msgstr "Темный золотарник"
+#~ msgid "- gLabels label designer"
+#~ msgstr "— дизайнер этикеток gLabels"
 
-#~ msgid "Dark Green"
-#~ msgstr "Тёмно-зелёный"
+#~ msgid "- batch process gLabels label files"
+#~ msgstr "— пакетная обработка файлов этикеток gLabels"
 
-#~ msgid "Dark Cyan"
-#~ msgstr "Темно-Ñ\86иановÑ\8bй"
+#~ msgid "Show tooltips"
+#~ msgstr "Ð\9fоказÑ\8bваÑ\82Ñ\8c Ð¿Ð¾Ð´Ñ\81казки"
 
-#~ msgid "Navy Blue"
-#~ msgstr "ТÑ\91мно-Ñ\81иний"
+#~ msgid "Show tooltips for property toolbar"
+#~ msgstr "Ð\9fоказÑ\8bваÑ\82Ñ\8c Ð¿Ð¾Ð´Ñ\81казки Ð½Ð° Ð¿Ð°Ð½ÐµÐ»Ð¸ Ñ\81войÑ\81Ñ\82в"
 
-#~ msgid "Dark Violet"
-#~ msgstr "ТÑ\91мно-Ñ\84иолеÑ\82овÑ\8bй"
+#~ msgid "Show tooltips for main toolbar"
+#~ msgstr "Ð\9fоказÑ\8bваÑ\82Ñ\8c Ð¿Ð¾Ð´Ñ\81казки Ð² Ð³Ð»Ð°Ð²Ð½Ð¾Ð¹ Ð¿Ð°Ð½ÐµÐ»Ð¸ Ð¸Ð½Ñ\81Ñ\82Ñ\80Ñ\83менÑ\82ов"
 
-#~ msgid "Red"
-#~ msgstr "Ð\9aÑ\80аÑ\81нÑ\8bй"
+#~ msgid "Show tooltips for drawing toolbar"
+#~ msgstr "Ð\9fоказÑ\8bваÑ\82Ñ\8c Ð¿Ð¾Ð´Ñ\81казки Ð² Ð¿Ð°Ð½ÐµÐ»Ð¸ Ñ\80иÑ\81ованиÑ\8f"
 
-#~ msgid "Dark Yellow"
-#~ msgstr "Темно-желÑ\82Ñ\8bй"
+#~ msgid "Choose Custom Color"
+#~ msgstr "Ð\92Ñ\8bбеÑ\80иÑ\82е Ð¿Ð¾Ð»Ñ\8cзоваÑ\82елÑ\8cÑ\81кий Ñ\86веÑ\82"
 
-#~ msgid "Turquoise"
-#~ msgstr "Бирюзовый"
+#~ msgid "light brown"
+#~ msgstr "светло-коричневый"
 
-#~ msgid "Salmon"
-#~ msgstr "Сомон"
+#~ msgid "brown gold"
+#~ msgstr "золоÑ\82ой ÐºÐ¾Ñ\80иÑ\87невÑ\8bй"
 
-#~ msgid "SkyBlue"
-#~ msgstr "Небесно-синий"
+#~ msgid "dark green #2"
+#~ msgstr "чёрно-зелёный №2"
 
-#~ msgid "Violet"
-#~ msgstr "ФиолеÑ\82овÑ\8bй"
+#~ msgid "navy"
+#~ msgstr "моÑ\80Ñ\81кой"
 
-#~ msgid "Khaki"
-#~ msgstr "Хаки"
+#~ msgid "purple #2"
+#~ msgstr "пÑ\83Ñ\80пÑ\83Ñ\80нÑ\8bй â\84\962"
 
-#~ msgid "Light Green"
-#~ msgstr "СвеÑ\82ло-зелÑ\91ный"
+#~ msgid "very dark gray"
+#~ msgstr "оÑ\87енÑ\8c Ñ\82Ñ\91мно-Ñ\81еÑ\80ый"
 
-#~ msgid "Slate Gray"
-#~ msgstr "Ð\90Ñ\81пидно-Ñ\81еÑ\80ый"
+#~ msgid "red-orange"
+#~ msgstr "кÑ\80аÑ\81но-оÑ\80анжевый"
 
-#~ msgid "Thistle"
-#~ msgstr "Чертополох"
+#~ msgid "dull blue"
+#~ msgstr "тускло-синий"
 
-#~ msgid "10% Gray"
-#~ msgstr "10% серый"
+#~ msgid "dull purple"
+#~ msgstr "тускло-пурпурный"
 
-#~ msgid "25% Gray"
-#~ msgstr "25% серый"
+#~ msgid "dark grey"
+#~ msgstr "тёмно-серый"
 
-#~ msgid "40% Gray"
-#~ msgstr "40% серый"
+#~ msgid "red"
+#~ msgstr "красный"
 
-#~ msgid "50% Gray"
-#~ msgstr "50% серый"
+#~ msgid "lime"
+#~ msgstr "лимонный"
 
-#~ msgid "60% Gray"
-#~ msgstr "60% серый"
+#~ msgid "dull blue #2"
+#~ msgstr "тускло-синий №2"
 
-#~ msgid "Custom Color #%u"
-#~ msgstr "Ð\97аказной Ñ\86веÑ\82 #%u"
+#~ msgid "sky blue #2"
+#~ msgstr "небеÑ\81но-Ñ\81иний â\84\962"
 
-#~ msgid "Normal"
-#~ msgstr "Обычное"
+#~ msgid "gray"
+#~ msgstr "серый"
+
+#~ msgid "magenta"
+#~ msgstr "малиновый"
+
+#~ msgid "bright orange"
+#~ msgstr "ярко-оранжевый"
+
+#~ msgid "bright blue"
+#~ msgstr "ярко-синий"
+
+#~ msgid "red purple"
+#~ msgstr "красно-пурпурный"
+
+#~ msgid "light grey"
+#~ msgstr "светло-серый"
+
+#~ msgid "light orange"
+#~ msgstr "светло-оранжевый"
+
+#~ msgid "light blue"
+#~ msgstr "светло-синий"
+
+#~ msgid "light purple"
+#~ msgstr "светло-пурпурный"
+
+#~ msgid "purplish blue"
+#~ msgstr "пурпурно-синий"
+
+#~ msgid "dark purple"
+#~ msgstr "тёмно-пурпурный"
 
 #~ msgid "         "
 #~ msgstr "         "
@@ -2867,27 +3533,12 @@ msgstr "%s: ключу необходим аргумент -- %c\n"
 #~ msgid "P_rinter"
 #~ msgstr "П_ринтер"
 
-#~ msgid "Copies"
-#~ msgstr "Копий"
-
-#~ msgid "Document merge control"
-#~ msgstr "Управление объединением"
-
 #~ msgid "Print preview"
 #~ msgstr "Просмотреть"
 
 #~ msgid "Importing from glabels 1.91 format"
 #~ msgstr "Импортируем из формата glabels версии 1.91"
 
-#~ msgid "Label size:"
-#~ msgstr "Размер этикетки:"
-
-#~ msgid "Layout:"
-#~ msgstr "Формат:"
-
-#~ msgid "%d x %d  (%d per sheet)"
-#~ msgstr "%d x %d (%d на лист)"
-
 #~ msgid "No paper files found!"
 #~ msgstr "Не найдены файлы описания бумаги!"
 
@@ -2962,9 +3613,6 @@ msgstr "%s: ключу необходим аргумент -- %c\n"
 #~ msgid "U_n-select All"
 #~ msgstr "_Снять выделение со всего"
 
-#~ msgid "Undo"
-#~ msgstr "Отменить"
-
 #~ msgid "Undo the last action"
 #~ msgstr "Отменить последнее действие"
 
index ff7d034ca8ff451b88c31ff340b2c355aef76a15..00e9420aaee71b7039e3c4f065aee3e6e8c32383 100644 (file)
--- a/po/sl.po
+++ b/po/sl.po
@@ -8,1539 +8,1889 @@ msgid ""
 msgstr ""
 "Project-Id-Version: glabels master\n"
 "Report-Msgid-Bugs-To: http://sourceforge.net/tracker/?group_id=46122&ati\n"
-"POT-Creation-Date: 2010-03-20 14:05+0000\n"
-"PO-Revision-Date: 2010-03-20 17:02+0100\n"
+"POT-Creation-Date: 2010-10-11 10:09+0000\n"
+"PO-Revision-Date: 2010-10-15 19:13+0100\n"
 "Last-Translator: Andrej Žnidaršič <andrej.znidarsic@gmail.com>\n"
-"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
+"Language-Team: Slovenščina <gnome-si@googlegroups.com>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n"
-"X-Poedit-Language: Slovenian\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0)\n"
 "X-Poedit-Country: SLOVENIA\n"
+"X-Poedit-Language: Slovenian\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
-#: ../src/glabels.c:75
-#: ../src/glabels-batch.c:70
-msgid "[FILE...]"
-msgstr "[DATOTEKA...]"
+#: ../src/bc-backends.c:81
+msgid "Built-in"
+msgstr "Vgrajeno"
 
-#: ../src/glabels.c:91
-msgid "- gLabels label designer"
-msgstr "- snovalnik nalepk gLabels"
+#: ../src/bc-backends.c:101
+msgid "POSTNET (any)"
+msgstr "POSTNET (any)"
 
-#: ../src/glabels-batch.c:54
-msgid "set output filename (default=\"output.pdf\")"
-msgstr "nastavi odvodno ime datoteke (privzeto=\"output.pdf\")"
+#: ../src/bc-backends.c:104
+msgid "POSTNET-5 (ZIP only)"
+msgstr "POSTNET-5 (ZIP only)"
 
-#: ../src/glabels-batch.c:54
-#: ../src/glabels-batch.c:68
-msgid "filename"
-msgstr "ime datoteke"
+#: ../src/bc-backends.c:107
+msgid "POSTNET-9 (ZIP+4)"
+msgstr "POSTNET-9 (ZIP+4)"
 
-#: ../src/glabels-batch.c:56
-msgid "number of sheets (default=1)"
-msgstr "število delovnih listov (privzeto=1)"
+#: ../src/bc-backends.c:110
+msgid "POSTNET-11 (DPBC)"
+msgstr "POSTNET-11 (DPBC)"
 
-#: ../src/glabels-batch.c:56
-msgid "sheets"
-msgstr "delovni listi"
+#: ../src/bc-backends.c:113
+msgid "CEPNET"
+msgstr "CEPNET"
 
-#: ../src/glabels-batch.c:58
-msgid "number of copies (default=1)"
-msgstr "število kopij (privzeto=1)"
+#: ../src/bc-backends.c:118
+msgid "EAN (any)"
+msgstr "EAN (katerakoli)"
 
-#: ../src/glabels-batch.c:58
-msgid "copies"
-msgstr "kopije"
+#: ../src/bc-backends.c:121
+msgid "EAN-8"
+msgstr "EAN-8"
 
-#: ../src/glabels-batch.c:60
-msgid "first label on first sheet (default=1)"
-msgstr "prva nalepka na prvem delovnem listu (privzeto=1)"
+#: ../src/bc-backends.c:124
+msgid "EAN-8 +2"
+msgstr "EAN-8 +2"
 
-#: ../src/glabels-batch.c:60
-msgid "first"
-msgstr "prva"
+#: ../src/bc-backends.c:127
+msgid "EAN-8 +5"
+msgstr "EAN-8 +5"
 
-#: ../src/glabels-batch.c:62
-#: ../data/glade/print-custom-widget.glade.h:6
-msgid "print outlines (to test printer alignment)"
-msgstr "natisni orise (za preizkus poravnave tiskalnika)"
+#: ../src/bc-backends.c:130
+msgid "EAN-13"
+msgstr "EAN-13"
 
-#: ../src/glabels-batch.c:64
-#: ../data/glade/print-custom-widget.glade.h:5
-msgid "print in reverse (i.e. a mirror image)"
-msgstr "natisni obrnjeno (to je zrcalna slika)"
+#: ../src/bc-backends.c:133
+msgid "EAN-13 +2"
+msgstr "EAN-13 +2"
 
-#: ../src/glabels-batch.c:66
-#: ../data/glade/print-custom-widget.glade.h:4
-msgid "print crop marks"
-msgstr "natisni oznake obrezave"
+#: ../src/bc-backends.c:136
+msgid "EAN-13 +5"
+msgstr "EAN-13 +5"
 
-#: ../src/glabels-batch.c:68
-msgid "input file for merging"
-msgstr "vhodna datoteka za združevanje"
+#: ../src/bc-backends.c:139
+msgid "UPC (UPC-A or UPC-E)"
+msgstr "UPC (UPC-A or UPC-E)"
 
-#: ../src/glabels-batch.c:96
-msgid "- batch process gLabels label files"
-msgstr "- paketno obdelovanje datotek gLabels nalepk"
+#: ../src/bc-backends.c:142
+#: ../src/bc-backends.c:386
+msgid "UPC-A"
+msgstr "UPC-A"
 
-#: ../src/glabels-batch.c:142
-#, c-format
-msgid "cannot perform document merge with glabels file %s\n"
-msgstr "združevanja dokumenta z glabels datoteko %s ni mogoče izvesti\n"
+#: ../src/bc-backends.c:145
+msgid "UPC-A +2"
+msgstr "UPC-A +2"
 
-#: ../src/glabels-batch.c:164
-#, c-format
-msgid "cannot open glabels file %s\n"
-msgstr "Datoteke glables %s ni mogoče odpreti\n"
+#: ../src/bc-backends.c:148
+msgid "UPC-A +5"
+msgstr "UPC-A +5"
 
-#: ../src/window.c:259
-msgid "(none) - gLabels"
-msgstr "(brez) - gLabels"
+#: ../src/bc-backends.c:151
+#: ../src/bc-backends.c:389
+msgid "UPC-E"
+msgstr "UPC-E"
 
-#: ../src/window.c:432
-msgid "(modified)"
-msgstr " (spremenjeno)"
+#: ../src/bc-backends.c:154
+msgid "UPC-E +2"
+msgstr "UPC-E +2"
 
-#: ../src/stock.c:72
-msgid "_Select Mode"
-msgstr "_Način izbora"
+#: ../src/bc-backends.c:157
+msgid "UPC-E +5"
+msgstr "UPC-E +5"
 
-#: ../src/stock.c:73
-msgid "_Text"
-msgstr "_Besedilo"
+#: ../src/bc-backends.c:160
+#: ../src/bc-backends.c:323
+msgid "ISBN"
+msgstr "ISBN"
 
-#: ../src/stock.c:74
-msgid "_Line"
-msgstr "Č_rta"
+#: ../src/bc-backends.c:163
+msgid "ISBN +5"
+msgstr "ISBN +5"
 
-#: ../src/stock.c:75
-msgid "_Box"
-msgstr "_Okvir"
+#: ../src/bc-backends.c:166
+#: ../src/bc-backends.c:239
+msgid "Code 39"
+msgstr "Koda 39"
 
-#: ../src/stock.c:76
-msgid "_Ellipse"
-msgstr "_Elipsa"
+#: ../src/bc-backends.c:169
+#: ../src/bc-backends.c:251
+msgid "Code 128"
+msgstr "Koda 128"
 
-#: ../src/stock.c:77
-msgid "_Image"
-msgstr "Sl_ika"
+#: ../src/bc-backends.c:172
+msgid "Code 128C"
+msgstr "Koda 128C"
 
-#: ../src/stock.c:78
-msgid "Bar_code"
-msgstr "Črtna _koda"
+#: ../src/bc-backends.c:175
+msgid "Code 128B"
+msgstr "Koda 128B"
 
-#: ../src/stock.c:79
-msgid "_Merge Properties"
-msgstr "_Združi lastnosti"
+#: ../src/bc-backends.c:178
+#: ../src/bc-backends.c:320
+msgid "Interleaved 2 of 5"
+msgstr "Prepleteno 2 od 5"
 
-#: ../src/stock.c:80
-msgid "Object _Properties"
-msgstr "Lastnosti _predmeta"
+#: ../src/bc-backends.c:181
+#: ../src/bc-backends.c:215
+msgid "Codabar"
+msgstr "Številka črtne kode"
 
-#: ../src/stock.c:81
-msgid "Bring to _Front"
-msgstr "Prinesi v _ospredje"
+#: ../src/bc-backends.c:184
+msgid "MSI"
+msgstr "MSI"
 
-#: ../src/stock.c:82
-msgid "Send to _Back"
-msgstr "Pošlji _nazaj"
+#: ../src/bc-backends.c:187
+msgid "Plessey"
+msgstr "Plessey"
 
-#: ../src/stock.c:83
-msgid "Rotate _Left"
-msgstr "Zavrti _levo"
+#: ../src/bc-backends.c:190
+#: ../src/bc-backends.c:248
+msgid "Code 93"
+msgstr "Koda 93"
 
-#: ../src/stock.c:84
-msgid "Rotate _Right"
-msgstr "Zavrti _desno"
+#: ../src/bc-backends.c:197
+msgid "Australia Post Standard"
+msgstr "Avstralska pošta običajna"
 
-#: ../src/stock.c:85
-msgid "Flip _Horizontally"
-msgstr "Zrcali _vodoravno"
+#: ../src/bc-backends.c:200
+msgid "Australia Post Reply Paid"
+msgstr "Avstralska pošta plačan odgovor"
 
-#: ../src/stock.c:86
-msgid "Flip _Vertically"
-msgstr "Zrcali _navpično"
+#: ../src/bc-backends.c:203
+msgid "Australia Post Route Code"
+msgstr "Avstralska pošta koda poti"
 
-#: ../src/stock.c:87
-msgid "_Lefts"
-msgstr "_Levo"
+#: ../src/bc-backends.c:206
+msgid "Australia Post Redirect"
+msgstr "Avstralska pošta preusmeritev"
 
-#: ../src/stock.c:88
-msgid "_Rights"
-msgstr "_Desno"
+#: ../src/bc-backends.c:209
+msgid "Aztec Code"
+msgstr "Azteška koda"
 
-#: ../src/stock.c:89
-msgid "_Centers"
-msgstr "_Središča"
+#: ../src/bc-backends.c:212
+msgid "Aztec Rune"
+msgstr "Azteška runa"
 
-#: ../src/stock.c:90
-msgid "_Tops"
-msgstr "_Vrhovi"
+#: ../src/bc-backends.c:218
+msgid "Code One"
+msgstr "Koda ena"
 
-#: ../src/stock.c:91
-msgid "Bottoms"
-msgstr "Dna"
+#: ../src/bc-backends.c:221
+msgid "Code 11"
+msgstr "Koda 11"
 
-#: ../src/stock.c:92
-msgid "Centers"
-msgstr "Središča"
+#: ../src/bc-backends.c:224
+msgid "Code 16K"
+msgstr "Koda 16K"
 
-#: ../src/stock.c:93
-#: ../src/stock.c:94
-msgid "Label Ce_nter"
-msgstr "Sre_dišče nalepke"
+#: ../src/bc-backends.c:227
+msgid "Code 2 of 5 Matrix"
+msgstr "Koda 2 od 5 matrika"
 
-#: ../src/stock.c:95
-#: ../data/glade/property-bar.glade.h:3
-msgid "Fill color"
-msgstr "Barva polnila"
+#: ../src/bc-backends.c:230
+msgid "Code 2 of 5 IATA"
+msgstr "Koda 2 od 5 IATA"
 
-#: ../src/stock.c:96
-#: ../data/glade/property-bar.glade.h:8
-msgid "Line color"
-msgstr "Barva črte"
+#: ../src/bc-backends.c:233
+msgid "Code 2 of 5 Data Logic"
+msgstr "Koda 2 od 5 podatkovna logika"
 
-#: ../src/stock.c:97
-#: ../src/stock.c:99
-msgid "Linked"
-msgstr "Povezano"
+#: ../src/bc-backends.c:236
+msgid "Code 32 (Italian Pharmacode)"
+msgstr "Koda 32  (Italijanska Pharmakoda)"
 
-#: ../src/stock.c:98
-#: ../src/stock.c:100
-msgid "Not Linked"
-msgstr "Nepovezano"
+#: ../src/bc-backends.c:242
+msgid "Code 39 Extended"
+msgstr "Koda 39 razpirejan"
 
-#. Menu entries.
-#: ../src/ui.c:93
-msgid "_File"
-msgstr "_Datoteka"
+#: ../src/bc-backends.c:245
+msgid "Code 49"
+msgstr "Koda 49"
 
-#: ../src/ui.c:94
-msgid "Open Recent _Files"
-msgstr "Odpri nedavne _datoteke"
+#: ../src/bc-backends.c:254
+msgid "Code 128 (Mode C supression)"
+msgstr "Koda 128 (Prepreči način C)"
 
-#: ../src/ui.c:95
-msgid "_Edit"
-msgstr "_Uredi"
+#: ../src/bc-backends.c:257
+msgid "DAFT Code"
+msgstr "DAFT koda"
 
-#: ../src/ui.c:96
-msgid "_View"
-msgstr "_Pogled"
+#: ../src/bc-backends.c:260
+msgid "Data Matrix"
+msgstr "Podatkovna matrika"
 
-#: ../src/ui.c:97
-msgid "Customize Main Toolbar"
-msgstr "Prilagodi glavno orodno vrstico"
+#: ../src/bc-backends.c:263
+msgid "Deutsche Post Leitcode"
+msgstr "Deutsche Post Leitcode"
 
-#: ../src/ui.c:98
-msgid "Customize Drawing Toolbar"
-msgstr "Prilagodi orodno vrstico risanja"
+#: ../src/bc-backends.c:266
+msgid "Deutsche Post Identcode"
+msgstr "Deutsche Post Identcode"
 
-#: ../src/ui.c:99
-msgid "Customize Properties Toolbar"
-msgstr "Prilagodi orodno vrstico lastnosti"
+#: ../src/bc-backends.c:269
+msgid "Dutch Post KIX Code"
+msgstr "KIX koda nizozemske pošte"
 
-#: ../src/ui.c:100
-msgid "_Objects"
-msgstr "P_redmeti"
+#: ../src/bc-backends.c:272
+msgid "EAN"
+msgstr "EAN"
 
-#: ../src/ui.c:101
-msgid "_Create"
-msgstr "_Ustvari"
+#: ../src/bc-backends.c:275
+msgid "Grid Matrix"
+msgstr "Mrežna matrika"
 
-#: ../src/ui.c:102
-msgid "_Order"
-msgstr "_Razvrsti"
+#: ../src/bc-backends.c:278
+msgid "GS1-128"
+msgstr "GS1-128"
 
-#: ../src/ui.c:103
-msgid "_Rotate/Flip"
-msgstr "_Zavrti/zrcali"
+#: ../src/bc-backends.c:281
+msgid "GS1 DataBar-14"
+msgstr "GS1 DataBar-14"
 
-#: ../src/ui.c:104
-msgid "Align _Horizontal"
-msgstr "_Vodoravna poravnava"
+#: ../src/bc-backends.c:290
+msgid "GS1 DataBar-14 Stacked"
+msgstr "GS1 DataBar-14 Stacked"
 
-#: ../src/ui.c:105
-msgid "Align _Vertical"
-msgstr "_Navpična poravnava"
+#: ../src/bc-backends.c:293
+msgid "GS1 DataBar-14 Stacked Omni."
+msgstr "GS1 DataBar-14 Stacked Omni."
 
-#: ../src/ui.c:106
-msgid "_Help"
-msgstr "Pomo_č"
+#: ../src/bc-backends.c:296
+msgid "GS1 DataBar Extended Stacked"
+msgstr "GS1 DataBar Extended Stacked"
 
-#. Popup entries.
-#: ../src/ui.c:109
-#: ../src/ui.c:110
-msgid "Context Menu"
-msgstr "Vsebinski meni"
+#: ../src/bc-backends.c:299
+msgid "HIBC Code 128"
+msgstr "HIBC koda 128"
 
-#: ../src/ui.c:115
-msgid "_New"
-msgstr "_Novo"
+#: ../src/bc-backends.c:302
+msgid "HIBC Code 39"
+msgstr "HIBC koda 39"
 
-#: ../src/ui.c:117
-msgid "Create a new file"
-msgstr "Ustvarjanje nove datoteke"
+#: ../src/bc-backends.c:305
+msgid "HIBC Data Matrix"
+msgstr "HIBC podatkovna matrika"
 
-#: ../src/ui.c:122
-msgid "_Open..."
-msgstr "_Odpri ..."
+#: ../src/bc-backends.c:308
+msgid "HIBC QR Code"
+msgstr "HIBC QR koda"
 
-#: ../src/ui.c:124
-msgid "Open a file"
-msgstr "Odpiranje datoteke"
+#: ../src/bc-backends.c:311
+msgid "HIBC PDF417"
+msgstr "HIBC PDF417"
 
-#: ../src/ui.c:129
-msgid "_Save"
-msgstr "_Shrani"
+#: ../src/bc-backends.c:314
+msgid "HIBC Micro PDF417"
+msgstr "HIBC Micro PDF417"
 
-#: ../src/ui.c:131
-msgid "Save current file"
-msgstr "Shranjevanje trenutne datoteke"
+#: ../src/bc-backends.c:317
+msgid "HIBC Aztec Code"
+msgstr "HIBC azteška koda"
 
-#: ../src/ui.c:136
-msgid "Save _As..."
-msgstr "Shrani _kot ..."
+#: ../src/bc-backends.c:326
+msgid "ITF-14"
+msgstr "ITF-14"
 
-#: ../src/ui.c:138
-msgid "Save the current file to a different name"
-msgstr "Shranjevanje trenutne datoteke z drugim imenom"
+#: ../src/bc-backends.c:329
+msgid "Japanese Postal"
+msgstr "Japonska pošta"
 
-#: ../src/ui.c:143
-msgid "_Print..."
-msgstr "Na_tisni ..."
+#: ../src/bc-backends.c:332
+msgid "Korean Postal"
+msgstr "Korejska pošta"
 
-#: ../src/ui.c:145
-msgid "Print the current file"
-msgstr "Tiskanje trenutne datoteke"
+#: ../src/bc-backends.c:335
+msgid "LOGMARS"
+msgstr "LOGMARS"
 
-#: ../src/ui.c:150
-msgid "Properties..."
-msgstr "Lastnosti ..."
+#: ../src/bc-backends.c:338
+msgid "Maxicode"
+msgstr "Maxicode"
 
-#: ../src/ui.c:152
-msgid "Modify document properties"
-msgstr "Spreminjanje lastnosti dokumenta"
+#: ../src/bc-backends.c:341
+msgid "Micro PDF417"
+msgstr "Micro PDF417"
 
-#: ../src/ui.c:157
-msgid "Template _Designer..."
-msgstr "_Snovalnik predlog ..."
+#: ../src/bc-backends.c:344
+msgid "Micro QR Code"
+msgstr "Micro QR Code"
 
-#: ../src/ui.c:159
-msgid "Create a custom template"
-msgstr "Ustvarjanje predloge po meri"
+#: ../src/bc-backends.c:347
+msgid "MSI Plessey"
+msgstr "MSI Plessey"
 
-#: ../src/ui.c:164
-msgid "_Close"
-msgstr "_Zapri"
+#: ../src/bc-backends.c:350
+msgid "NVE-18"
+msgstr "NVE-18"
 
-#: ../src/ui.c:166
-msgid "Close the current file"
-msgstr "Zapri trenutno datoteko"
+#: ../src/bc-backends.c:353
+msgid "PDF417"
+msgstr "PDF417"
 
-#: ../src/ui.c:171
-msgid "_Quit"
-msgstr "_Končaj"
+#: ../src/bc-backends.c:356
+msgid "PDF417 Truncated"
+msgstr "PDF417 obrezano"
 
-#: ../src/ui.c:173
-msgid "Quit the program"
-msgstr "Končanje programa"
+#: ../src/bc-backends.c:359
+msgid "PLANET"
+msgstr "PLANET"
 
-#: ../src/ui.c:180
-msgid "Cut"
-msgstr "Izreži"
+#: ../src/bc-backends.c:362
+msgid "PostNet"
+msgstr "PostNet"
 
-#: ../src/ui.c:182
-msgid "Cut the selection"
-msgstr "Izrez izbora"
+#: ../src/bc-backends.c:365
+msgid "Pharmacode"
+msgstr "Pharmacode"
 
-#: ../src/ui.c:187
-msgid "Copy"
-msgstr "Kopiraj"
+#: ../src/bc-backends.c:368
+msgid "Pharmacode 2-track"
+msgstr "Pharmacode dvosledna"
 
-#: ../src/ui.c:189
-msgid "Copy the selection"
-msgstr "Kopiranje izbora"
+#: ../src/bc-backends.c:371
+msgid "Pharmazentral Nummer (PZN)"
+msgstr "Pharmazentral Nummer (PZN)"
 
-#: ../src/ui.c:194
-msgid "Paste"
-msgstr "Prilepi"
+#: ../src/bc-backends.c:374
+msgid "QR Code"
+msgstr "QR koda"
 
-#: ../src/ui.c:196
-msgid "Paste the clipboard"
-msgstr "Prilepi iz odložišča"
+#: ../src/bc-backends.c:377
+msgid "Royal Mail 4-State"
+msgstr "Royal Mail 4-State"
 
-#: ../src/ui.c:201
-msgid "Delete"
-msgstr "Izbriši"
+#: ../src/bc-backends.c:380
+msgid "Telepen"
+msgstr "Telepen"
 
-#: ../src/ui.c:203
-msgid "Delete the selected objects"
-msgstr "Izbriši izbrane predmete"
+#: ../src/bc-backends.c:383
+msgid "Telepen Numeric"
+msgstr "Telepen številčna"
 
-#: ../src/ui.c:208
-msgid "Select All"
-msgstr "Izberi vse"
+#: ../src/bc-backends.c:392
+msgid "USPS One Code"
+msgstr "USPS ena koda"
 
-#: ../src/ui.c:210
-msgid "Select all objects"
-msgstr "Izbor vseh predmetov"
+#: ../src/bc-backends.c:395
+msgid "UK Plessey"
+msgstr "UK Plessey"
 
-#: ../src/ui.c:215
-msgid "Un-select All"
-msgstr "Odstrani izbor vsega"
+#: ../src/bc-backends.c:402
+msgid "IEC16022 (DataMatrix)"
+msgstr "IEC16022 (Podatkovna matrika)"
 
-#: ../src/ui.c:217
-msgid "Remove all selections"
-msgstr "Odstrani vse izbore"
+#: ../src/bc-backends.c:409
+msgid "IEC18004 (QRCode)"
+msgstr "IEC18004 (QRKoda)"
 
-#: ../src/ui.c:222
-msgid "Preferences"
-msgstr "Nastavitve"
+#: ../src/color-combo-button.c:198
+#: ../src/color-combo.c:178
+msgid "Default Color"
+msgstr "Privzeta barva"
 
-#: ../src/ui.c:224
-msgid "Configure the application"
-msgstr "Nastavitev programa"
+#: ../src/color-combo-menu.c:83
+msgid "Dark Red"
+msgstr "Temno rdeča"
 
-#: ../src/ui.c:231
-msgid "Zoom in"
-msgstr "Približaj"
+#: ../src/color-combo-menu.c:84
+msgid "Brown"
+msgstr "Rjava"
 
-#: ../src/ui.c:233
-msgid "Increase magnification"
-msgstr "Približaj predmet"
+#: ../src/color-combo-menu.c:85
+msgid "Dark Goldenrod"
+msgstr "Temna zlata palica"
 
-#: ../src/ui.c:238
-msgid "Zoom out"
-msgstr "Oddalji"
+#: ../src/color-combo-menu.c:86
+msgid "Dark Green"
+msgstr "Temno zelena"
 
-#: ../src/ui.c:240
-msgid "Decrease magnification"
-msgstr "Oddalji predmet"
+#: ../src/color-combo-menu.c:87
+msgid "Dark Cyan"
+msgstr "Temno sinja"
 
-#: ../src/ui.c:245
-msgid "Zoom 1 to 1"
-msgstr "Velikost 1:1"
+#: ../src/color-combo-menu.c:88
+msgid "Navy Blue"
+msgstr "Mornarsko modra"
 
-#: ../src/ui.c:247
-msgid "Restore scale to 100%"
-msgstr "Obnavljanje velikosti na 100%"
+#: ../src/color-combo-menu.c:89
+msgid "Dark Violet"
+msgstr "Temno vijolična"
 
-#: ../src/ui.c:252
-msgid "Zoom to fit"
-msgstr "Prilagodi oknu"
+#: ../src/color-combo-menu.c:91
+msgid "Red"
+msgstr "Rdeča"
 
-#: ../src/ui.c:254
-msgid "Set scale to fit window"
-msgstr "Prilagajanje velikost oknu"
+#: ../src/color-combo-menu.c:92
+msgid "Orange"
+msgstr "Oranžna"
 
-#: ../src/ui.c:261
-msgid "Select Mode"
-msgstr "Način izbiranja"
+#: ../src/color-combo-menu.c:93
+msgid "Dark Yellow"
+msgstr "Temno rumena"
 
-#: ../src/ui.c:263
-msgid "Select, move and modify objects"
-msgstr "Izbor, premikanje in spreminjanje predmetov"
+#: ../src/color-combo-menu.c:94
+msgid "Medium green"
+msgstr "Srednja zelena"
 
-#: ../src/ui.c:268
-#: ../src/view-text.c:494
-#: ../data/glade/object-editor.glade.h:32
-msgid "Text"
-msgstr "Besedilo"
+#: ../src/color-combo-menu.c:95
+msgid "Turquoise"
+msgstr "Turkizna"
 
-#: ../src/ui.c:270
-msgid "Create text object"
-msgstr "Ustvarjanje besedilnega predmeta"
+#: ../src/color-combo-menu.c:96
+msgid "Blue"
+msgstr "Modra"
 
-#: ../src/ui.c:275
-msgid "Box"
-msgstr "Okvir"
+#: ../src/color-combo-menu.c:97
+msgid "Purple"
+msgstr "Škrlatna"
 
-#: ../src/ui.c:277
-msgid "Create box/rectangle object"
-msgstr "Ustvarjanje okvirja/pravokotnika"
+#: ../src/color-combo-menu.c:99
+msgid "Salmon"
+msgstr "Lososova"
 
-#: ../src/ui.c:282
-#: ../data/glade/object-editor.glade.h:20
-msgid "Line"
-msgstr "Črta"
+#: ../src/color-combo-menu.c:100
+msgid "Gold"
+msgstr "Zlata"
 
-#: ../src/ui.c:284
-msgid "Create line object"
-msgstr "Ustvarjanje črte"
+#: ../src/color-combo-menu.c:101
+msgid "Yellow"
+msgstr "Rumena"
 
-#: ../src/ui.c:289
-msgid "Ellipse"
-msgstr "Elipsa"
+#: ../src/color-combo-menu.c:102
+msgid "Green"
+msgstr "Zelena"
 
-#: ../src/ui.c:291
-msgid "Create ellipse/circle object"
-msgstr "Ustvarjanje elipse/kroga"
+#: ../src/color-combo-menu.c:103
+msgid "Cyan"
+msgstr "Sinja"
 
-#: ../src/ui.c:296
-#: ../data/glade/object-editor.glade.h:16
-msgid "Image"
-msgstr "Slika"
+#: ../src/color-combo-menu.c:104
+msgid "SkyBlue"
+msgstr "Nebeško modra"
 
-#: ../src/ui.c:298
-msgid "Create image object"
-msgstr "Ustvarjanje slikovnega predmeta"
+#: ../src/color-combo-menu.c:105
+msgid "Violet"
+msgstr "Vijolična"
 
-#: ../src/ui.c:303
-msgid "Barcode"
-msgstr "Črtna koda"
+#: ../src/color-combo-menu.c:107
+msgid "Pink"
+msgstr "Roza"
 
-#: ../src/ui.c:305
-msgid "Create barcode object"
-msgstr "Ustvarjanje predmeta črtne kode"
+#: ../src/color-combo-menu.c:108
+msgid "Khaki"
+msgstr "Kakijeva"
 
-#: ../src/ui.c:310
-msgid "Bring to front"
-msgstr "Prinesi v ospredje"
+#: ../src/color-combo-menu.c:109
+msgid "Light Yellow"
+msgstr "Svetlo rumena"
 
-#: ../src/ui.c:312
-msgid "Raise object to top"
-msgstr "Vzdigni predmet na vrh"
+#: ../src/color-combo-menu.c:110
+msgid "Light Green"
+msgstr "Svetlo zelena"
 
-#: ../src/ui.c:317
-msgid "Send to back"
-msgstr "Pošlji nazaj"
+#: ../src/color-combo-menu.c:111
+msgid "Light Cyan"
+msgstr "Svetlo sinja"
 
-#: ../src/ui.c:319
-msgid "Lower object to bottom"
-msgstr "Spusti predmet na dno"
+#: ../src/color-combo-menu.c:112
+msgid "Slate Gray"
+msgstr "Skrilavčno siva"
 
-#: ../src/ui.c:324
-msgid "Rotate left"
-msgstr "Zavrti levo"
+#: ../src/color-combo-menu.c:113
+msgid "Thistle"
+msgstr "Osatna"
 
-#: ../src/ui.c:326
-msgid "Rotate object 90 degrees counter-clockwise"
-msgstr "Vrtenje predmeta 90 stopinj v levo"
+#: ../src/color-combo-menu.c:115
+msgid "White"
+msgstr "Bela"
 
-#: ../src/ui.c:331
-msgid "Rotate right"
-msgstr "Zavrti desno"
+#: ../src/color-combo-menu.c:117
+#, no-c-format
+msgid "10% Gray"
+msgstr "10% siva"
 
-#: ../src/ui.c:333
-msgid "Rotate object 90 degrees clockwise"
-msgstr "Vrtenje predmeta 90 stopinj v desno"
+#: ../src/color-combo-menu.c:119
+#, no-c-format
+msgid "25% Gray"
+msgstr "25% siva"
 
-#: ../src/ui.c:338
-msgid "Flip horizontally"
-msgstr "Zrcali vodoravno"
+#: ../src/color-combo-menu.c:121
+#, no-c-format
+msgid "40% Gray"
+msgstr "40% siva"
 
-#: ../src/ui.c:340
-msgid "Flip object horizontally"
-msgstr "Zrcaljenje predmeta vodoravno"
-
-#: ../src/ui.c:345
-msgid "Flip vertically"
-msgstr "Zrcali navpično"
-
-#: ../src/ui.c:347
-msgid "Flip object vertically"
-msgstr "Zrcaljenje predmeta navpično"
-
-#: ../src/ui.c:352
-msgid "Align left"
-msgstr "Poravnava levo"
-
-#: ../src/ui.c:354
-msgid "Align objects to left edges"
-msgstr "Poravnava predmetov na levi rob"
-
-#: ../src/ui.c:359
-msgid "Align right"
-msgstr "Poravnava desno"
-
-#: ../src/ui.c:361
-msgid "Align objects to right edges"
-msgstr "Poravnava predmetov na desni rob"
-
-#: ../src/ui.c:366
-msgid "Align horizontal center"
-msgstr "Poravnava vodoravne sredine"
-
-#: ../src/ui.c:368
-msgid "Align objects to horizontal centers"
-msgstr "Poravnava predmetov na vodoravno središče"
-
-#: ../src/ui.c:373
-msgid "Align tops"
-msgstr "Poravnava vrhov"
-
-#: ../src/ui.c:375
-msgid "Align objects to top edges"
-msgstr "Poravnava predmetov na zgornji rob"
-
-#: ../src/ui.c:380
-msgid "Align bottoms"
-msgstr "Poravnava dnov"
-
-#: ../src/ui.c:382
-msgid "Align objects to bottom edges"
-msgstr "Poravnava predmetov na spodni rob"
-
-#: ../src/ui.c:387
-msgid "Align vertical center"
-msgstr "Poravnava navpične sredine"
-
-#: ../src/ui.c:389
-msgid "Align objects to vertical centers"
-msgstr "Poravnava predmetov na navpično središče"
-
-#: ../src/ui.c:394
-msgid "Center horizontally"
-msgstr "Sredini vodoravno"
-
-#: ../src/ui.c:396
-msgid "Center objects to horizontal label center"
-msgstr "Sredinjenje predmetov na vodoravno središče nalepke"
-
-#: ../src/ui.c:401
-msgid "Center vertically"
-msgstr "Sredini navpično"
-
-#: ../src/ui.c:403
-msgid "Center objects to vertical label center"
-msgstr "Sredinjenje predmetov na navpično središče nalepke"
-
-#: ../src/ui.c:408
-msgid "Merge properties"
-msgstr "Lastnosti združevanja"
-
-#: ../src/ui.c:410
-msgid "Edit merge properties"
-msgstr "Urejanje lastnosti združevanja"
-
-#: ../src/ui.c:417
-msgid "Contents"
-msgstr "Vsebina"
-
-#: ../src/ui.c:419
-msgid "Open glabels manual"
-msgstr "Odpri priročnik glables"
-
-#: ../src/ui.c:424
-msgid "About..."
-msgstr "O programu ..."
-
-#: ../src/ui.c:426
-msgid "About glabels"
-msgstr "O glables"
-
-#: ../src/ui.c:436
-msgid "Property toolbar"
-msgstr "Orodna vrstica lastnosti"
-
-#: ../src/ui.c:438
-msgid "Change the visibility of the property toolbar in the current window"
-msgstr "Sprememba vidnosti orodne vrstice lastnosti v trenutnem oknu"
-
-#: ../src/ui.c:444
-#: ../src/ui.c:489
-#: ../src/ui.c:497
-msgid "Show tooltips"
-msgstr "Pokaži namige"
-
-#: ../src/ui.c:446
-msgid "Show tooltips for property toolbar"
-msgstr "Pokaži namige za orodno vrstico lastnosti"
-
-#: ../src/ui.c:452
-msgid "Grid"
-msgstr "Mreža"
-
-#: ../src/ui.c:454
-msgid "Change the visibility of the grid in the current window"
-msgstr "Sprememba vidnosti mreže v trenutnem oknu"
-
-#: ../src/ui.c:460
-msgid "Markup"
-msgstr "Označeno"
-
-#: ../src/ui.c:462
-msgid "Change the visibility of markup lines in the current window"
-msgstr "Sprememba vidnosti črt nalepke v trenutnem oknu"
-
-#: ../src/ui.c:473
-msgid "Main toolbar"
-msgstr "Glavna orodna vrstica"
-
-#: ../src/ui.c:475
-msgid "Change the visibility of the main toolbar in the current window"
-msgstr "Sprememba vidnosti glavne orodne vrstice v trenutnem oknu"
-
-#: ../src/ui.c:481
-msgid "Drawing toolbar"
-msgstr "Orodna vrstica risanja"
-
-#: ../src/ui.c:483
-msgid "Change the visibility of the drawing toolbar in the current window"
-msgstr "Sprememba vidnosti orodne vrstice risanja v trenutnem oknu"
-
-#: ../src/ui.c:491
-msgid "Show tooltips for main toolbar"
-msgstr "Pokaži namige za glavno orodno vrstico"
-
-#: ../src/ui.c:499
-msgid "Show tooltips for drawing toolbar"
-msgstr "Pokaži namige za orodno vrstico risanja"
-
-#: ../src/ui-property-bar.c:1232
-#: ../src/object-editor.c:587
-#: ../src/object-editor.c:593
-msgid "Default"
-msgstr "Privzeto"
-
-#: ../src/ui-property-bar.c:1239
-#: ../src/object-editor.c:599
-msgid "No line"
-msgstr "Brez črte"
-
-#: ../src/ui-property-bar.c:1247
-#: ../src/object-editor.c:606
-msgid "No fill"
-msgstr "Brez polnila"
-
-#: ../src/ui-sidebar.c:152
-msgid "Object properties"
-msgstr "Lastnosti predmeta"
-
-#: ../src/ui-commands.c:1084
-msgid "Glabels includes contributions from:"
-msgstr "Glabels vključuje prispevke od:"
-
-#: ../src/ui-commands.c:1090
-msgid "See the file AUTHORS for additional credits,"
-msgstr "Poglejte si datoteko AUTHORS za celotne zasluge,"
+#: ../src/color-combo-menu.c:123
+#, no-c-format
+msgid "50% Gray"
+msgstr "50% siva"
 
-#: ../src/ui-commands.c:1091
-msgid "or visit http://glabels.sourceforge.net/"
-msgstr "ali pa obiščite http://glabels.sourceforge.net/"
+#: ../src/color-combo-menu.c:125
+#, no-c-format
+msgid "60% Gray"
+msgstr "60% siva"
 
-#: ../src/ui-commands.c:1103
-msgid "A label and business card creation program.\n"
-msgstr "Program za snovanje nalepk in poslovnih vizitk.\n"
+#: ../src/color-combo-menu.c:126
+msgid "Black"
+msgstr "Črna"
 
-#: ../src/ui-commands.c:1107
-msgid "translator-credits"
-msgstr "Andrej Žnidaršič <andrej.znidarsic@gmail.com>"
+#: ../src/color-combo-menu.c:254
+#: ../src/color-combo-menu.c:373
+msgid "Custom Color"
+msgstr "Barva po meri"
 
-#: ../src/ui-commands.c:1110
-msgid ""
-"Glabels is free software; you can redistribute it and/or modify it\n"
-"under the terms of the GNU General Public License as published by\n"
-"the Free Software Foundation; either version 2 of the License, or\n"
-"(at your option) any later version.\n"
-"\n"
-"This program is distributed in the hope that it will be useful, but\n"
-"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See\n"
-"the GNU General Public License for more details.\n"
-msgstr ""
-"Ta program je prosta programska oprema; lahko ga redistribuirate in/ali\n"
-"spreminjate pod pogoji GNU General Public Licence kot je objavljena\n"
-"s strani Free Software Foundation; ali različico 2 Licence ali (na vašo željo)\n"
-" katerakoli kasnejša različica.\n"
-"\n"
-"Ta program je distribuiran v upanju da bo uporaben,\n"
-"toda BREZ KAKRŠNIHKOLI ZAGOTOVIL; tudi brez impliciranih\n"
-"zagotovila za PRODAJO ali PRIMERNOST ZA DOLOČEN NAMEN.\n"
-" Oglejte si GNU General Public Licence za več podrobnosti.\n"
+#: ../src/color-combo-menu.c:319
+#, c-format
+msgid "Custom Color #%u"
+msgstr "Barva po meri #%u"
 
-#: ../src/ui-commands.c:1136
-msgid "glabels"
-msgstr "glabels"
+#: ../src/critical-error-handler.c:70
+msgid "gLabels Fatal Error!"
+msgstr "Usodna napaka gLables!"
 
-#: ../src/file.c:91
+#: ../src/file.c:84
 msgid "New Label or Card"
 msgstr "Nova nalepka ali vizitka"
 
-#: ../src/file.c:191
+#: ../src/file.c:175
+#: ../src/label.c:587
+#: ../src/label.c:631
 msgid "Label properties"
 msgstr "Lastnosti nalepke"
 
-#: ../src/file.c:292
-#: ../src/file.c:578
+#: ../src/file.c:267
+#: ../src/file.c:557
 msgid "All files"
 msgstr "Vse datoteke"
 
-#: ../src/file.c:297
-#: ../src/file.c:583
+#: ../src/file.c:272
+#: ../src/file.c:562
 msgid "gLabels documents"
 msgstr "Dokumenti gLabels"
 
-#: ../src/file.c:343
-#: ../src/file.c:640
+#: ../src/file.c:319
+#: ../src/file.c:620
 msgid "Empty file name selection"
 msgstr "Prazen izbor imena datoteke"
 
-#: ../src/file.c:346
-#: ../src/file.c:362
+#: ../src/file.c:322
+#: ../src/file.c:338
 msgid "Please select a file or supply a valid file name"
 msgstr "Izberite datoteko ali vpišite veljavno ime datoteke"
 
-#: ../src/file.c:359
+#: ../src/file.c:335
 msgid "File does not exist"
 msgstr "Datoteka ne obstaja"
 
-#: ../src/file.c:433
+#: ../src/file.c:410
 #, c-format
 msgid "Could not open file \"%s\""
 msgstr "Datoteke \"%s\" ni mogoče odpreti"
 
-#: ../src/file.c:436
+#: ../src/file.c:413
 msgid "Not a supported file format"
-msgstr "Ni podprt zapis datoteke"
+msgstr "Ni podprta vrsta datoteke"
 
-#: ../src/file.c:513
-#: ../src/file.c:690
+#: ../src/file.c:491
+#: ../src/file.c:670
 #, c-format
 msgid "Could not save file \"%s\""
 msgstr "Datoteke \"%s\" ni mogoče shraniti"
 
-#: ../src/file.c:517
-#: ../src/file.c:694
+#: ../src/file.c:495
+#: ../src/file.c:674
 msgid "Error encountered during save.  The file is still not saved."
 msgstr "Med shranjevanjem je prišlo do napake. Datoteka še vedno ni shranjena."
 
-#: ../src/file.c:556
+#: ../src/file.c:535
 #, c-format
 msgid "Save \"%s\" as"
 msgstr "Shrani \"%s\" kot"
 
-#: ../src/file.c:643
+#: ../src/file.c:623
 msgid "Please supply a valid file name"
 msgstr "Vnesite veljavno ime datoteke"
 
-#: ../src/file.c:664
+#: ../src/file.c:644
 #, c-format
 msgid "Overwrite file \"%s\"?"
 msgstr "Ali naj bo datoteka \"%s\" prepisana?"
 
-#: ../src/file.c:668
+#: ../src/file.c:648
 msgid "File already exists."
 msgstr "Datoteka že obstaja."
 
-#: ../src/file.c:764
+#: ../src/file.c:744
 #, c-format
 msgid "Save changes to document \"%s\" before closing?"
 msgstr "Ali želite pred zapiranjem shraniti spremembe v dokumentu \"%s\"?"
 
-#: ../src/file.c:768
+#: ../src/file.c:748
 msgid "Your changes will be lost if you don't save them."
 msgstr "V primeru, da sprememb na shranite, bodo trajno izgubljene."
 
-#: ../src/file.c:771
+#: ../src/file.c:751
 msgid "Close without saving"
 msgstr "Zapri brez shranjevanja"
 
-#. Should not happen
-#: ../src/prefs.c:159
-#: ../src/prefs.c:166
-#: ../data/glade/object-editor.glade.h:43
-#: ../data/glade/prefs-dialog.glade.h:22
-msgid "points"
-msgstr "točke"
+#: ../src/font-combo-menu.c:137
+msgid "Recent fonts"
+msgstr "Nedavne pisave"
 
-#: ../src/prefs.c:161
-#: ../data/glade/object-editor.glade.h:42
-#: ../data/glade/template-designer.glade.h:64
-msgid "inches"
-msgstr "palcev"
+#: ../src/font-combo-menu.c:152
+msgid "Proportional fonts"
+msgstr "Sorazmerne pisave"
 
-#: ../src/prefs.c:163
-msgid "mm"
-msgstr "mm"
+#: ../src/font-combo-menu.c:160
+msgid "Fixed-width fonts"
+msgstr "Pisave stalne širine"
 
-#: ../src/prefs-dialog.c:162
-#: ../data/glade/prefs-dialog.glade.h:21
-msgid "gLabels Preferences"
-msgstr "Nastavitve programa"
+#: ../src/font-combo-menu.c:168
+msgid "All fonts"
+msgstr "Vse pisave"
 
-#. Build editor.
-#: ../src/view-box.c:175
-msgid "Box object properties"
-msgstr "Lastnosti okvirja"
+#.
+#. * Allow text samples to be localized.
+#. *
+#. * FIXME: if we could extract enough meta information from the fonts
+#. * themselves, perhaps rather than setting these globally for the
+#. * current locale, they could be unique to each font family.
+#.
+#: ../src/font-combo-menu-item.c:132
+msgctxt "Short sample text"
+msgid "Aa"
+msgstr "Aa"
+
+#: ../src/font-combo-menu-item.c:134
+msgctxt "Lower case sample text"
+msgid "abcdefghijklmnopqrstuvwxyz"
+msgstr "abcčdefghijklmnoprsštuvzž"
+
+#: ../src/font-combo-menu-item.c:136
+msgctxt "Upper case sample text"
+msgid "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCČDEFGHIJKLMNOPRSŠTUVZŽ"
+
+#: ../src/font-combo-menu-item.c:138
+msgctxt "Numbers and special characters sample text"
+msgid "0123456789 .:,;(*!?)"
+msgstr "0123456789 .:,;(*!?)"
+
+#: ../src/font-combo-menu-item.c:157
+msgid "Sample text"
+msgstr "Vzorčno besedilo"
+
+#: ../src/glabels-batch.c:53
+msgid "set output filename (default=\"output.pdf\")"
+msgstr "nastavi izhodno ime datoteke (privzeto=\"output.pdf\")"
 
-#. Build editor.
-#: ../src/view-ellipse.c:175
-msgid "Ellipse object properties"
-msgstr "Lastnosti elipse"
+#: ../src/glabels-batch.c:53
+#: ../src/glabels-batch.c:67
+msgid "filename"
+msgstr "ime datoteke"
 
-#. Build editor.
-#: ../src/view-line.c:174
-msgid "Line object properties"
-msgstr "Lastnosti črte"
+#: ../src/glabels-batch.c:55
+msgid "number of sheets (default=1)"
+msgstr "število delovnih listov (privzeto=1)"
 
-#. Build editor.
-#: ../src/view-image.c:174
-msgid "Image object properties"
-msgstr "Lastnosti slike"
+#: ../src/glabels-batch.c:55
+msgid "sheets"
+msgstr "delovni listi"
 
-#. Build editor.
-#: ../src/view-text.c:178
-msgid "Text object properties"
-msgstr "Lastnosti besedila"
+#: ../src/glabels-batch.c:57
+msgid "number of copies (default=1)"
+msgstr "število kopij (privzeto=1)"
 
-#. Build editor.
-#: ../src/view-barcode.c:174
-msgid "Barcode object properties"
-msgstr "Lastnosti črtne kode"
+#: ../src/glabels-batch.c:57
+msgid "copies"
+msgstr "kopije"
 
-#: ../src/object-editor-image-page.c:270
-msgid "All Files"
-msgstr "Vse datoteke"
+#: ../src/glabels-batch.c:59
+msgid "first label on first sheet (default=1)"
+msgstr "prva nalepka na prvem delovnem listu (privzeto=1)"
 
-#: ../src/object-editor-image-page.c:275
-msgid "All Images"
-msgstr "Vse slike"
+#: ../src/glabels-batch.c:59
+msgid "first"
+msgstr "prva"
 
-#: ../src/object-editor-image-page.c:290
-#, c-format
-msgid "%s (*.%s)"
-msgstr "%s (*.%s)"
+#: ../src/glabels-batch.c:61
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:13
+msgid "print outlines (to test printer alignment)"
+msgstr "natisni orise (za preizkus poravnave tiskalnika)"
 
-#: ../src/merge-properties-dialog.c:263
-msgid "Merge Properties"
-msgstr "Lastnosti združevanja"
+#: ../src/glabels-batch.c:63
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:12
+msgid "print in reverse (i.e. a mirror image)"
+msgstr "natisni obrnjeno (to je zrcalna slika)"
 
-#: ../src/merge-properties-dialog.c:289
-#: ../src/merge-properties-dialog.c:397
-msgid "Select merge-database source"
-msgstr "Izbor vira podatkovne zbirke za združevanje"
+#: ../src/glabels-batch.c:65
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:11
+msgid "print crop marks"
+msgstr "natisni oznake obrezave"
 
-#: ../src/merge-properties-dialog.c:298
-#: ../src/merge-properties-dialog.c:417
-msgid "N/A"
-msgstr "N/A"
+#: ../src/glabels-batch.c:67
+msgid "input file for merging"
+msgstr "vhodna datoteka za združevanje"
 
-#: ../src/merge-properties-dialog.c:324
-msgid "Select"
-msgstr "Izberi"
+#: ../src/glabels-batch.c:69
+#: ../src/glabels.c:63
+msgid "[FILE...]"
+msgstr "[DATOTEKA ...]"
 
-#: ../src/merge-properties-dialog.c:332
-msgid "Record/Field"
-msgstr "Posnemi/polje"
+#: ../src/glabels-batch.c:99
+msgid "Print files created with gLabels."
+msgstr "Tiskanje datotek ustvarjenih z gLables."
 
-#: ../src/merge-properties-dialog.c:340
-#: ../data/glade/object-editor.glade.h:10
-msgid "Data"
-msgstr "Podatki"
+#: ../src/glabels-batch.c:107
+#: ../src/glabels.c:87
+#, c-format
+msgid ""
+"%s\n"
+"Run '%s --help' to see a full list of available command line options.\n"
+msgstr ""
+"%s\n"
+"Zaženite '%s --help' za ogled celotnega seznama razpoložljivih možnosti ukazne vrstice.\n"
 
-#: ../src/merge-properties-dialog.c:410
-msgid "Fixed"
-msgstr "Nespremenljivo"
+#: ../src/glabels-batch.c:151
+#, c-format
+msgid "cannot perform document merge with glabels file %s\n"
+msgstr "združevanja dokumenta z glabels datoteko %s ni mogoče izvesti\n"
 
-#. ===================================================================
-#: ../src/print-op.c:237
-#: ../src/wdgt-print-copies.c:171
-#: ../data/templates/misc-iso-templates.xml.h:34
-msgid "Labels"
-msgstr "Nalepke"
+#: ../src/glabels-batch.c:186
+#, c-format
+msgid "cannot open glabels file %s\n"
+msgstr "Datoteke glables %s ni mogoče odpreti\n"
 
-#: ../src/template-designer.c:358
-msgid "gLabels Template Designer"
-msgstr "Snovalnik predlog gLables"
+#: ../src/glabels.c:79
+msgid "Launch gLabels label and business card designer."
+msgstr "Zagon snovalnika nalepk in poslovnih vizitk gLabels. "
 
-#: ../src/template-designer.c:419
-msgid "Welcome"
-msgstr "Dobrodošli"
+#: ../src/label-barcode.c:155
+#: ../src/ui.c:318
+msgid "Create barcode object"
+msgstr "Ustvarjanje predmeta črtne kode"
 
-#: ../src/template-designer.c:463
-msgid "Name and Description"
-msgstr "Ime in opis"
+#: ../src/label-barcode.c:231
+#: ../src/label-barcode.c:381
+msgid "Barcode data"
+msgstr "Podatki črtne kode"
 
-#: ../src/template-designer.c:516
-msgid "Page Size"
-msgstr "Velikost strani"
+#: ../src/label-barcode.c:260
+msgid "Barcode property"
+msgstr "Lastnost črtne kode"
 
-#: ../src/template-designer.c:587
-msgid "Label or Card Shape"
-msgstr "Oblika vizitke ali nalepke"
+#: ../src/label-barcode.c:476
+msgid "Barcode data empty"
+msgstr "Podatki črtne kode so prazni"
 
-#: ../src/template-designer.c:637
-msgid "Label or Card Size"
-msgstr "Velikost vizitke ali nalepke"
+#: ../src/label-barcode.c:480
+msgid "Invalid barcode data"
+msgstr "Neveljavni podatki črtne kode"
 
-#: ../src/template-designer.c:737
-msgid "Label Size (round)"
-msgstr "Velikost nalepke (okrogla)"
+#: ../src/label-box.c:156
+msgid "Create box object"
+msgstr "Ustvari okvir"
 
-#: ../src/template-designer.c:820
-msgid "Label Size (CD/DVD)"
-msgstr "Velikost nalepke (CD/DVD)"
+#: ../src/label-box.c:230
+#: ../src/label-ellipse.c:232
+#: ../data/ui/property-bar.ui.h:3
+msgid "Fill color"
+msgstr "Barva polnila"
 
-#: ../src/template-designer.c:913
-msgid "Number of Layouts"
-msgstr "Število razporeditev"
+#: ../src/label-box.c:261
+#: ../src/label-ellipse.c:261
+#: ../src/label-line.c:212
+#: ../data/ui/property-bar.ui.h:8
+msgid "Line color"
+msgstr "Barva črte"
 
-#: ../src/template-designer.c:976
-msgid "Layout(s)"
-msgstr "Razporeditev"
+#: ../src/label-box.c:289
+#: ../src/label-ellipse.c:290
+#: ../src/label-line.c:241
+#: ../data/ui/property-bar.ui.h:9
+msgid "Line width"
+msgstr "Širine vrstice"
 
-#: ../src/template-designer.c:1087
-msgid "Design Completed"
-msgstr "Snovanje je končano"
+#: ../src/label.c:402
+msgid "Untitled"
+msgstr "Brez naslova"
 
-#: ../src/template-designer.c:1253
-msgid "<span foreground='red' weight='bold'>Brand and part# match an existing template!</span>"
-msgstr "<span foreground='red' weight='bold'>Znamka in številka dela se skladata z obstoječo predlogo!</span>"
+#: ../src/label.c:705
+#: ../src/ui.c:421
+msgid "Merge properties"
+msgstr "Lastnosti združevanja"
 
-#: ../src/bc.c:67
-msgid "POSTNET (any)"
-msgstr "POSTNET (any)"
+#: ../src/label.c:1197
+#: ../src/ui.c:214
+msgid "Delete"
+msgstr "Izbriši"
 
-#: ../src/bc.c:70
-msgid "POSTNET-5 (ZIP only)"
-msgstr "POSTNET-5 (ZIP only)"
+#: ../src/label.c:1230
+#: ../src/ui.c:323
+msgid "Bring to front"
+msgstr "Prinesi v ospredje"
+
+#: ../src/label.c:1266
+#: ../src/ui.c:330
+msgid "Send to back"
+msgstr "Pošlji nazaj"
+
+#: ../src/label.c:1307
+msgid "Rotate"
+msgstr "Zavrti"
+
+#: ../src/label.c:1342
+#: ../src/ui.c:337
+msgid "Rotate left"
+msgstr "Zavrti levo"
+
+#: ../src/label.c:1375
+#: ../src/ui.c:344
+msgid "Rotate right"
+msgstr "Zavrti desno"
+
+#: ../src/label.c:1410
+#: ../src/ui.c:351
+msgid "Flip horizontally"
+msgstr "Zrcali vodoravno"
+
+#: ../src/label.c:1445
+#: ../src/ui.c:358
+msgid "Flip vertically"
+msgstr "Zrcali navpično"
+
+#: ../src/label.c:1485
+#: ../src/ui.c:365
+msgid "Align left"
+msgstr "Poravnava levo"
+
+#: ../src/label.c:1542
+#: ../src/ui.c:372
+msgid "Align right"
+msgstr "Poravnava desno"
+
+#: ../src/label.c:1603
+#: ../src/ui.c:379
+msgid "Align horizontal center"
+msgstr "Poravnava vodoravne sredine"
+
+#: ../src/label.c:1679
+#: ../src/ui.c:386
+msgid "Align tops"
+msgstr "Poravnava vrhov"
+
+#: ../src/label.c:1736
+#: ../src/ui.c:393
+msgid "Align bottoms"
+msgstr "Poravnava dnov"
+
+#: ../src/label.c:1797
+#: ../src/ui.c:400
+msgid "Align vertical center"
+msgstr "Poravnava navpične sredine"
+
+#: ../src/label.c:1875
+#: ../src/ui.c:407
+msgid "Center horizontally"
+msgstr "Sredini vodoravno"
+
+#: ../src/label.c:1922
+#: ../src/ui.c:414
+msgid "Center vertically"
+msgstr "Sredini navpično"
+
+#: ../src/label.c:2610
+#: ../src/label.c:2652
+#: ../src/label.c:2678
+#: ../src/ui.c:207
+msgid "Paste"
+msgstr "Prilepi"
+
+#: ../src/label-ellipse.c:160
+msgid "Create ellipse object"
+msgstr "Ustvari elipso"
+
+#: ../src/label-image.c:200
+#: ../src/ui.c:311
+msgid "Create image object"
+msgstr "Ustvari slikovni predmet"
+
+#: ../src/label-image.c:333
+#: ../src/label-image.c:474
+msgid "Set image"
+msgstr "Nastavi sliko"
+
+#: ../src/label-line.c:147
+#: ../src/ui.c:297
+msgid "Create line object"
+msgstr "Ustvari črto"
+
+#: ../src/label-object.c:383
+#: ../src/label-object.c:416
+msgid "Move"
+msgstr "Premakni"
+
+#: ../src/label-object.c:467
+msgid "Resize"
+msgstr "Spremeni velikost"
+
+#: ../src/label-object.c:1185
+msgid "Shadow state"
+msgstr "Stanje sence"
+
+#: ../src/label-object.c:1228
+msgid "Shadow offset"
+msgstr "Odmik sence"
+
+#: ../src/label-object.c:1276
+msgid "Shadow color"
+msgstr "Barva sence"
+
+#: ../src/label-object.c:1319
+msgid "Shadow opacity"
+msgstr "Prekrivnost sence"
+
+#: ../src/label-text.c:279
+#: ../src/ui.c:283
+msgid "Create text object"
+msgstr "Ustvari besedilni predmet"
+
+#: ../src/label-text.c:451
+msgid "Typing"
+msgstr "Tipkanje"
+
+#: ../src/label-text.c:584
+#: ../data/ui/property-bar.ui.h:4
+msgid "Font family"
+msgstr "Družina pisav"
+
+#: ../src/label-text.c:622
+#: ../data/ui/property-bar.ui.h:5
+msgid "Font size"
+msgstr "Velikost pisave"
+
+#: ../src/label-text.c:655
+msgid "Font weight"
+msgstr "Teža pisave"
+
+#: ../src/label-text.c:688
+#: ../data/ui/property-bar.ui.h:6
+msgid "Italic"
+msgstr "Ležeče"
+
+#: ../src/label-text.c:721
+msgid "Align text"
+msgstr "Poravnaj besedilo"
+
+#: ../src/label-text.c:754
+msgid "Line spacing"
+msgstr "Razmik med vrsticami"
+
+#: ../src/label-text.c:787
+#: ../data/ui/property-bar.ui.h:11
+msgid "Text color"
+msgstr "Barva besedila"
+
+#: ../src/label-text.c:931
+msgid "Auto shrink"
+msgstr "Samodejno skrči"
+
+#: ../src/media-select.c:349
+#: ../src/media-select.c:353
+#: ../src/media-select.c:502
+#: ../src/media-select.c:701
+msgctxt "Brand"
+msgid "Any"
+msgstr "Vse"
+
+#: ../src/media-select.c:358
+#: ../src/media-select.c:871
+msgctxt "Page size"
+msgid "Any"
+msgstr "Vse"
+
+#: ../src/media-select.c:367
+#: ../src/media-select.c:370
+#: ../src/media-select.c:880
+msgctxt "Category"
+msgid "Any"
+msgstr "Vse"
+
+#: ../src/media-select.c:968
+msgid "No recent templates found."
+msgstr "Nedavnih predlog ni mogoče najti."
+
+#: ../src/media-select.c:970
+msgid "Try selecting a template in the \"Search all\" tab."
+msgstr "Poskusite izbrati predlogo v zavihku  \"Išči vse predloge\"."
+
+#. Translators: "No match" means that for the given template search criteria, there
+#. * were no matches found.
+#: ../src/media-select.c:1061
+msgid "No match."
+msgstr "Ni skladanja."
+
+#: ../src/media-select.c:1063
+msgid "Try selecting a different brand, page size or category."
+msgstr "Poskusite z izbiro druge znamke, velikosti strani ali kategorije."
+
+#: ../src/media-select.c:1157
+msgid "No custom templates found."
+msgstr "Predlog po meri ni mogoče najti."
+
+#: ../src/media-select.c:1159
+msgid "You may create new templates or try searching for pre-defined templates in the \"Search all\" tab."
+msgstr "Ustvarite lahko nove predloge ali poskusite z iskanjem pred-določenih predlog v zavihku \"Išči vse\"."
+
+#. Translators: "None" here means that no document-merge source or
+#. * method has been selected.
+#: ../src/merge.c:171
+#: ../src/merge.c:212
+#: ../src/merge.c:376
+#: ../src/merge.c:379
+msgid "None"
+msgstr "Brez"
+
+#: ../src/merge-evolution.c:316
+msgid "Couldn't construct query"
+msgstr "Poizvedbe ni mogoče izgraditi"
+
+#: ../src/merge-evolution.c:322
+#: ../src/merge-evolution.c:333
+msgid "Couldn't open addressbook."
+msgstr "Imenika ni mogoče odpreti."
+
+#: ../src/merge-evolution.c:348
+msgid "Couldn't list available fields."
+msgstr "Razpoložljivih polj ni mogoče našteti."
+
+#: ../src/merge-evolution.c:384
+msgid "Couldn't get contacts."
+msgstr "Stikov ni mogoče dobiti."
+
+#: ../src/merge-init.c:57
+msgid "Text: Comma Separated Values (CSV)"
+msgstr "Besedilo: z vejico ločene vrednosti (CSV)"
+
+#: ../src/merge-init.c:64
+msgid "Text: Comma Separated Values (CSV) with keys on line 1"
+msgstr "Besedilo: z vejico ločene vrednosti (CSV) s ključi v prvi vrstici"
+
+#: ../src/merge-init.c:72
+msgid "Text: Tab Separated Values (TSV)"
+msgstr "Besedilo: s tabulatorjem ločene vrednosti (TSV)"
+
+#: ../src/merge-init.c:79
+msgid "Text: Tab Separated Values (TSV) with keys on line 1"
+msgstr "Besedilo: s tabulatorjem ločene vrednosti (TSV) s ključi v prvi vrstici"
+
+#: ../src/merge-init.c:87
+msgid "Text: Colon separated values"
+msgstr "Besedilo: z dvopičjem ločene vrednosti"
+
+#: ../src/merge-init.c:94
+msgid "Text: Colon separated values with keys on line 1"
+msgstr "Besedilo: z dvopičjem ločene vrednosti s ključi v prvi vrstici"
+
+#: ../src/merge-init.c:102
+msgid "Text: Semicolon separated values"
+msgstr "Besedilo: s podpičjem ločene vrednosti"
+
+#: ../src/merge-init.c:109
+msgid "Text: Semicolon separated values with keys on line 1"
+msgstr "Besedilo: s podpičjem ločene vrednosti s ključi v prvi vrstici"
+
+#: ../src/merge-init.c:119
+msgid "Evolution Addressbook"
+msgstr "Imenik Evolution"
+
+#: ../src/merge-init.c:125
+msgid "VCards"
+msgstr "Vizitke VCard"
+
+#: ../src/merge-properties-dialog.c:279
+msgid "Merge Properties"
+msgstr "Lastnosti združevanja"
+
+#: ../src/merge-properties-dialog.c:305
+#: ../src/merge-properties-dialog.c:421
+msgid "Select merge-database source"
+msgstr "Izbor vira podatkovne zbirke za združevanje"
+
+#: ../src/merge-properties-dialog.c:316
+#: ../src/merge-properties-dialog.c:447
+msgid "N/A"
+msgstr "N/A"
+
+#: ../src/merge-properties-dialog.c:342
+msgid "Select"
+msgstr "Izberi"
+
+#: ../src/merge-properties-dialog.c:349
+msgid "Record/Field"
+msgstr "Posnemi/polje"
+
+#: ../src/merge-properties-dialog.c:357
+#: ../data/ui/object-editor.ui.h:9
+msgid "Data"
+msgstr "Podatki"
+
+#. Translators: "Fixed" here means that for the given document-merge method, there are
+#. * no further choices to further define the source of data.  E.g. if you select the
+#. * evolution-data-server, there are no further choices -- the source is "Fixed."
+#.
+#: ../src/merge-properties-dialog.c:440
+msgid "Fixed"
+msgstr "Nespremenljivo"
+
+#. Translators: "Up" refers to the direction towards the top of a label.
+#: ../src/mini-preview.c:1074
+msgid "Up"
+msgstr "Navzgor"
+
+#: ../src/new-label-dialog.c:203
+msgid "Select Product"
+msgstr "Izberite izdelek"
+
+#: ../src/new-label-dialog.c:215
+msgid "Choose Orientation"
+msgstr "Izberite usmeritev"
+
+#: ../src/new-label-dialog.c:229
+msgid "Review"
+msgstr "Pregled"
+
+#: ../src/object-editor-bc-page.c:97
+#: ../src/object-editor-shadow-page.c:93
+#: ../src/object-editor-text-page.c:97
+#: ../src/prefs-dialog.c:336
+#: ../src/ui-property-bar.c:277
+msgid "Default"
+msgstr "Privzeto"
+
+#: ../src/object-editor.c:158
+#: ../src/object-editor.c:464
+msgid "Object properties"
+msgstr "Lastnosti predmeta"
+
+#: ../src/object-editor.c:307
+msgid "Box object properties"
+msgstr "Lastnosti okvirja"
+
+#: ../src/object-editor.c:326
+msgid "Ellipse object properties"
+msgstr "Lastnosti elipse"
+
+#: ../src/object-editor.c:345
+msgid "Line object properties"
+msgstr "Lastnosti črte"
+
+#: ../src/object-editor.c:362
+msgid "Image object properties"
+msgstr "Lastnosti slike"
+
+#: ../src/object-editor.c:379
+msgid "Text object properties"
+msgstr "Lastnosti besedila"
+
+#: ../src/object-editor.c:401
+msgid "Barcode object properties"
+msgstr "Lastnosti črtne kode"
+
+#: ../src/object-editor-edit-page.c:76
+msgid "Insert merge field"
+msgstr "Vstavi polje združevanja"
+
+#: ../src/object-editor-fill-page.c:79
+#: ../src/prefs-dialog.c:342
+#: ../src/ui-property-bar.c:287
+msgid "No Fill"
+msgstr "Brez polnila"
+
+#: ../src/object-editor-image-page.c:278
+msgid "All Files"
+msgstr "Vse datoteke"
+
+#: ../src/object-editor-image-page.c:283
+msgid "All Images"
+msgstr "Vse slike"
+
+#: ../src/object-editor-image-page.c:298
+#, c-format
+msgid "%s (*.%s)"
+msgstr "%s (*.%s)"
+
+#: ../src/object-editor-line-page.c:79
+#: ../src/prefs-dialog.c:339
+#: ../src/ui-property-bar.c:297
+msgid "No Line"
+msgstr "Brez črte"
+
+#: ../src/prefs-dialog.c:169
+#: ../data/ui/prefs-dialog.ui.h:21
+msgid "gLabels Preferences"
+msgstr "Nastavitve programa"
+
+#. ===================================================================
+#: ../src/print-op.c:205
+#: ../src/print-op-dialog.c:217
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:4
+#: ../templates/misc-iso-templates.xml.h:34
+msgid "Labels"
+msgstr "Nalepke"
+
+#: ../src/template-designer.c:404
+msgid "New gLabels Template"
+msgstr "Nova predloga gLabels"
+
+#: ../src/template-designer.c:461
+msgid "Welcome"
+msgstr "Dobrodošli"
+
+#: ../src/template-designer.c:500
+msgid "Name and Description"
+msgstr "Ime in opis"
+
+#: ../src/template-designer.c:548
+msgid "Page Size"
+msgstr "Velikost strani"
+
+#: ../src/template-designer.c:614
+msgid "Label or Card Shape"
+msgstr "Oblika vizitke ali nalepke"
+
+#: ../src/template-designer.c:661
+msgid "Label or Card Size"
+msgstr "Velikost vizitke ali nalepke"
+
+#: ../src/template-designer.c:760
+msgid "Label Size (round)"
+msgstr "Velikost nalepke (okrogla)"
+
+#: ../src/template-designer.c:841
+msgid "Label Size (CD/DVD)"
+msgstr "Velikost nalepke (CD/DVD)"
+
+#: ../src/template-designer.c:932
+msgid "Number of Layouts"
+msgstr "Število razporeditev"
+
+#: ../src/template-designer.c:1000
+msgid "Layout(s)"
+msgstr "Razporeditev"
+
+#: ../src/template-designer.c:1105
+msgid "Design Completed"
+msgstr "Snovanje je končano"
+
+#: ../src/template-designer.c:1133
+msgid "Edit gLabels Template"
+msgstr "Uredi predlogo gLabels"
+
+#: ../src/template-designer.c:1423
+msgid "Brand and part# match an existing template!"
+msgstr "Znamka in številka dela se skladata z obstoječo predlogo!"
+
+#. Menu entries.
+#: ../src/ui.c:92
+msgid "_File"
+msgstr "_Datoteka"
+
+#: ../src/ui.c:93
+msgid "Open Recent _Files"
+msgstr "Odpri nedavne _datoteke"
+
+#: ../src/ui.c:94
+msgid "_Edit"
+msgstr "_Uredi"
+
+#: ../src/ui.c:95
+msgid "_View"
+msgstr "_Pogled"
+
+#: ../src/ui.c:96
+msgid "Customize Main Toolbar"
+msgstr "Prilagodi glavno orodno vrstico"
+
+#: ../src/ui.c:97
+msgid "Customize Drawing Toolbar"
+msgstr "Prilagodi orodno vrstico risanja"
+
+#: ../src/ui.c:98
+msgid "Customize Properties Toolbar"
+msgstr "Prilagodi orodno vrstico lastnosti"
+
+#: ../src/ui.c:99
+msgid "_Objects"
+msgstr "P_redmeti"
+
+#: ../src/ui.c:100
+msgid "_Create"
+msgstr "_Ustvari"
 
-#: ../src/bc.c:73
-msgid "POSTNET-9 (ZIP+4)"
-msgstr "POSTNET-9 (ZIP+4)"
+#: ../src/ui.c:101
+msgid "_Order"
+msgstr "_Razvrsti"
 
-#: ../src/bc.c:76
-msgid "POSTNET-11 (DPBC)"
-msgstr "POSTNET-11 (DPBC)"
+#: ../src/ui.c:102
+msgid "_Rotate/Flip"
+msgstr "_Zavrti/zrcali"
 
-#: ../src/bc.c:79
-msgid "CEPNET"
-msgstr "CEPNET"
+#: ../src/ui.c:103
+msgid "Align _Horizontal"
+msgstr "_Vodoravna poravnava"
 
-#: ../src/bc.c:82
-msgid "EAN (any)"
-msgstr "EAN (katerakoli)"
+#: ../src/ui.c:104
+msgid "Align _Vertical"
+msgstr "_Navpična poravnava"
 
-#: ../src/bc.c:85
-msgid "EAN-8"
-msgstr "EAN-8"
+#: ../src/ui.c:105
+msgid "_Help"
+msgstr "Pomo_č"
 
-#: ../src/bc.c:88
-msgid "EAN-8 +2"
-msgstr "EAN-8 +2"
+#. Popup entries.
+#: ../src/ui.c:108
+#: ../src/ui.c:109
+msgid "Context Menu"
+msgstr "Vsebinski meni"
 
-#: ../src/bc.c:91
-msgid "EAN-8 +5"
-msgstr "EAN-8 +5"
+#: ../src/ui.c:114
+msgid "_New"
+msgstr "_Nova"
 
-#: ../src/bc.c:94
-msgid "EAN-13"
-msgstr "EAN-13"
+#: ../src/ui.c:116
+msgid "Create a new file"
+msgstr "Ustvari novo datoteko"
 
-#: ../src/bc.c:97
-msgid "EAN-13 +2"
-msgstr "EAN-13 +2"
+#: ../src/ui.c:121
+msgid "_Open..."
+msgstr "_Odpri ..."
 
-#: ../src/bc.c:100
-msgid "EAN-13 +5"
-msgstr "EAN-13 +5"
+#: ../src/ui.c:123
+msgid "Open a file"
+msgstr "Odpre datoteko"
 
-#: ../src/bc.c:103
-msgid "UPC (UPC-A or UPC-E)"
-msgstr "UPC (UPC-A or UPC-E)"
+#: ../src/ui.c:128
+msgid "_Save"
+msgstr "_Shrani"
 
-#: ../src/bc.c:106
-msgid "UPC-A"
-msgstr "UPC-A"
+#: ../src/ui.c:130
+msgid "Save current file"
+msgstr "Shrani trenutno datoteko"
 
-#: ../src/bc.c:109
-msgid "UPC-A +2"
-msgstr "UPC-A +2"
+#: ../src/ui.c:135
+msgid "Save _As..."
+msgstr "Shrani _kot ..."
 
-#: ../src/bc.c:112
-msgid "UPC-A +5"
-msgstr "UPC-A +5"
+#: ../src/ui.c:137
+msgid "Save the current file to a different name"
+msgstr "Shrani trenutno datoteko z drugim imenom"
 
-#: ../src/bc.c:115
-msgid "UPC-E"
-msgstr "UPC-E"
+#: ../src/ui.c:142
+msgid "_Print..."
+msgstr "Na_tisni ..."
 
-#: ../src/bc.c:118
-msgid "UPC-E +2"
-msgstr "UPC-E +2"
+#: ../src/ui.c:144
+msgid "Print the current file"
+msgstr "Natisne trenutno datoteko"
 
-#: ../src/bc.c:121
-msgid "UPC-E +5"
-msgstr "UPC-E +5"
+#: ../src/ui.c:149
+msgid "Properties..."
+msgstr "Lastnosti ..."
 
-#: ../src/bc.c:124
-msgid "ISBN"
-msgstr "ISBN"
+#: ../src/ui.c:151
+msgid "Modify document properties"
+msgstr "Spremeni lastnosti dokumenta"
 
-#: ../src/bc.c:127
-msgid "ISBN +5"
-msgstr "ISBN +5"
+#: ../src/ui.c:156
+msgid "Template _Designer..."
+msgstr "_Snovalnik predlog ..."
 
-#: ../src/bc.c:130
-msgid "Code 39"
-msgstr "Koda 39"
+#: ../src/ui.c:158
+msgid "Create a custom template"
+msgstr "Ustvari predlogo po meri"
+
+#: ../src/ui.c:163
+msgid "_Close"
+msgstr "_Zapri"
+
+#: ../src/ui.c:165
+msgid "Close the current file"
+msgstr "Zapre trenutno datoteko"
+
+#: ../src/ui.c:170
+msgid "_Quit"
+msgstr "_Končaj"
+
+#: ../src/ui.c:172
+msgid "Quit the program"
+msgstr "Konča program"
+
+#: ../src/ui.c:179
+#: ../src/ui.c:181
+#: ../src/ui.c:966
+msgid "Undo"
+msgstr "Razveljavi"
+
+#: ../src/ui.c:186
+#: ../src/ui.c:188
+#: ../src/ui.c:973
+msgid "Redo"
+msgstr "Uveljavi"
+
+#: ../src/ui.c:193
+msgid "Cut"
+msgstr "Izreži"
+
+#: ../src/ui.c:195
+msgid "Cut the selection"
+msgstr "Izrez izbora"
+
+#: ../src/ui.c:200
+msgid "Copy"
+msgstr "Kopiraj"
+
+#: ../src/ui.c:202
+msgid "Copy the selection"
+msgstr "Kopiranje izbora"
+
+#: ../src/ui.c:209
+msgid "Paste the clipboard"
+msgstr "Prilepi iz odložišča"
+
+#: ../src/ui.c:216
+msgid "Delete the selected objects"
+msgstr "Izbriši izbrane predmete"
+
+#: ../src/ui.c:221
+msgid "Select All"
+msgstr "Izberi vse"
+
+#: ../src/ui.c:223
+msgid "Select all objects"
+msgstr "Izbor vseh predmetov"
+
+#: ../src/ui.c:228
+msgid "Un-select All"
+msgstr "Odstrani izbor vsega"
+
+#: ../src/ui.c:230
+msgid "Remove all selections"
+msgstr "Odstrani vse izbore"
+
+#: ../src/ui.c:235
+msgid "Preferences"
+msgstr "Možnosti"
+
+#: ../src/ui.c:237
+msgid "Configure the application"
+msgstr "Nastavi program"
+
+#: ../src/ui.c:244
+msgid "Zoom in"
+msgstr "Približaj"
+
+#: ../src/ui.c:246
+msgid "Increase magnification"
+msgstr "Približa predmet"
+
+#: ../src/ui.c:251
+msgid "Zoom out"
+msgstr "Oddalji"
+
+#: ../src/ui.c:253
+msgid "Decrease magnification"
+msgstr "Oddalji predmet"
+
+#: ../src/ui.c:258
+msgid "Zoom 1 to 1"
+msgstr "Velikost 1:1"
+
+#: ../src/ui.c:260
+msgid "Restore scale to 100%"
+msgstr "Obnavljanje velikosti na 100%"
+
+#: ../src/ui.c:265
+msgid "Zoom to fit"
+msgstr "Prilagodi oknu"
+
+#: ../src/ui.c:267
+msgid "Set scale to fit window"
+msgstr "Prilagodi velikost oknu"
+
+#: ../src/ui.c:274
+msgid "Select Mode"
+msgstr "Način izbiranja"
+
+#: ../src/ui.c:276
+msgid "Select, move and modify objects"
+msgstr "Izbor, premikanje in spreminjanje predmetov"
+
+#: ../src/ui.c:281
+#: ../src/view-text.c:102
+#: ../data/ui/object-editor.ui.h:29
+#: ../data/ui/prefs-dialog.ui.h:17
+msgid "Text"
+msgstr "Besedilo"
+
+#: ../src/ui.c:288
+msgid "Box"
+msgstr "Okvir"
+
+#: ../src/ui.c:290
+msgid "Create box/rectangle object"
+msgstr "Ustvari okvir/pravokotnik"
+
+#: ../src/ui.c:295
+#: ../data/ui/object-editor.ui.h:18
+#: ../data/ui/prefs-dialog.ui.h:9
+msgid "Line"
+msgstr "Črta"
+
+#: ../src/ui.c:302
+msgid "Ellipse"
+msgstr "Elipsa"
+
+#: ../src/ui.c:304
+msgid "Create ellipse/circle object"
+msgstr "Ustvari elipso/krog"
+
+#: ../src/ui.c:309
+#: ../data/ui/object-editor.ui.h:15
+msgid "Image"
+msgstr "Slika"
+
+#: ../src/ui.c:316
+msgid "Barcode"
+msgstr "Črtna koda"
+
+#: ../src/ui.c:325
+msgid "Raise object to top"
+msgstr "Vzdigni predmet na vrh"
+
+#: ../src/ui.c:332
+msgid "Lower object to bottom"
+msgstr "Spusti predmet na dno"
+
+#: ../src/ui.c:339
+msgid "Rotate object 90 degrees counter-clockwise"
+msgstr "Vrtenje predmeta 90 stopinj v levo"
+
+#: ../src/ui.c:346
+msgid "Rotate object 90 degrees clockwise"
+msgstr "Vrtenje predmeta 90 stopinj v desno"
+
+#: ../src/ui.c:353
+msgid "Flip object horizontally"
+msgstr "Zrcaljenje predmeta vodoravno"
+
+#: ../src/ui.c:360
+msgid "Flip object vertically"
+msgstr "Zrcaljenje predmeta navpično"
+
+#: ../src/ui.c:367
+msgid "Align objects to left edges"
+msgstr "Poravnava predmetov na levi rob"
+
+#: ../src/ui.c:374
+msgid "Align objects to right edges"
+msgstr "Poravnava predmetov na desni rob"
+
+#: ../src/ui.c:381
+msgid "Align objects to horizontal centers"
+msgstr "Poravnava predmetov na vodoravno središče"
+
+#: ../src/ui.c:388
+msgid "Align objects to top edges"
+msgstr "Poravnava predmetov na zgornji rob"
+
+#: ../src/ui.c:395
+msgid "Align objects to bottom edges"
+msgstr "Poravnava predmetov na spodnji rob"
+
+#: ../src/ui.c:402
+msgid "Align objects to vertical centers"
+msgstr "Poravnava predmetov na navpično središče"
+
+#: ../src/ui.c:409
+msgid "Center objects to horizontal label center"
+msgstr "Sredinjenje predmetov na vodoravno središče nalepke"
+
+#: ../src/ui.c:416
+msgid "Center objects to vertical label center"
+msgstr "Sredinjenje predmetov na navpično središče nalepke"
+
+#: ../src/ui.c:423
+msgid "Edit merge properties"
+msgstr "Urejanje lastnosti združevanja"
+
+#: ../src/ui.c:430
+msgid "Contents"
+msgstr "Vsebina"
+
+#: ../src/ui.c:432
+msgid "Open glabels manual"
+msgstr "Odpri priročnik glables"
+
+#: ../src/ui.c:437
+msgid "About..."
+msgstr "O programu ..."
+
+#: ../src/ui.c:439
+#: ../src/ui-commands.c:1198
+msgid "About glabels"
+msgstr "O glables"
+
+#: ../src/ui.c:449
+msgid "Property toolbar"
+msgstr "Orodna vrstica lastnosti"
+
+#: ../src/ui.c:451
+msgid "Change the visibility of the property toolbar in the current window"
+msgstr "Spremeni vidnost orodne vrstice lastnosti v trenutnem oknu"
+
+#: ../src/ui.c:457
+msgid "Grid"
+msgstr "Mreža"
+
+#: ../src/ui.c:459
+msgid "Change the visibility of the grid in the current window"
+msgstr "Spremeni vidnost mreže v trenutnem oknu"
+
+#: ../src/ui.c:465
+msgid "Markup"
+msgstr "Označeno"
+
+#: ../src/ui.c:467
+msgid "Change the visibility of markup lines in the current window"
+msgstr "Spremeni vidnost črt nalepke v trenutnem oknu"
+
+#: ../src/ui.c:478
+msgid "Main toolbar"
+msgstr "Glavna orodna vrstica"
+
+#: ../src/ui.c:480
+msgid "Change the visibility of the main toolbar in the current window"
+msgstr "Spremeni vidnost glavne orodne vrstice v trenutnem oknu"
+
+#: ../src/ui.c:486
+msgid "Drawing toolbar"
+msgstr "Orodna vrstica risanja"
+
+#: ../src/ui.c:488
+msgid "Change the visibility of the drawing toolbar in the current window"
+msgstr "Spremeni vidnost orodne vrstice risanja v trenutnem oknu"
 
-#: ../src/bc.c:133
-msgid "Code 128"
-msgstr "Koda 128"
+#: ../src/ui-commands.c:1135
+msgid "Glabels includes contributions from:"
+msgstr "Glabels vključuje prispevke od:"
 
-#: ../src/bc.c:136
-msgid "Code 128C"
-msgstr "Koda 128C"
+#: ../src/ui-commands.c:1144
+msgid "See the file AUTHORS for additional credits,"
+msgstr "Poglejte si datoteko AUTHORS za celotne zasluge,"
 
-#: ../src/bc.c:139
-msgid "Code 128B"
-msgstr "Koda 128B"
+#: ../src/ui-commands.c:1145
+msgid "or visit http://glabels.org/"
+msgstr "ali pa obiščite http://glabels.org"
 
-#: ../src/bc.c:142
-msgid "Interleaved 2 of 5"
-msgstr "Prepleteno 2 od 5"
+#: ../src/ui-commands.c:1162
+msgid "A label and business card creation program.\n"
+msgstr "Program za snovanje nalepk in poslovnih vizitk.\n"
 
-#: ../src/bc.c:145
-msgid "Codabar"
-msgstr "Številka črtne kode"
+#: ../src/ui-commands.c:1166
+msgid "translator-credits"
+msgstr "Andrej Žnidaršič <andrej.znidarsic@gmail.com>"
 
-#: ../src/bc.c:148
-msgid "MSI"
-msgstr "MSI"
+#: ../src/ui-commands.c:1169
+msgid ""
+"gLabels is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"gLabels is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"gLabels je prosta programska oprema; lahko ga redistribuirate in/ali\n"
+"spreminjate pod pogoji GNU General Public Licence kot je objavljena\n"
+"s strani Free Software Foundation; ali različico 2 Licence ali (na vašo željo)\n"
+" katerakoli kasnejša različica.\n"
+"\n"
+"Ta program je distribuiran v upanju da bo uporaben,\n"
+"toda BREZ KAKRŠNIHKOLI ZAGOTOVIL; tudi brez impliciranih\n"
+"zagotovila za PRODAJO ali PRIMERNOST ZA DOLOČEN NAMEN.\n"
+" Oglejte si GNU General Public Licence za več podrobnosti.\n"
 
-#: ../src/bc.c:151
-msgid "Plessey"
-msgstr "Plessey"
+#: ../src/warning-handler.c:69
+msgid "gLabels Error!"
+msgstr "Napaka gLables!"
 
-#: ../src/bc.c:154
-msgid "IEC16022 (DataMatrix)"
-msgstr "IEC16022 (Podatkovna matrika)"
+#: ../src/window.c:284
+msgid "(none) - gLabels"
+msgstr "(brez) - gLabels"
 
-#: ../src/label.c:531
-msgid "Untitled"
-msgstr "Brez naslova"
+#: ../src/window.c:485
+msgid "(modified)"
+msgstr "(spremenjeno)"
 
-#: ../src/label-barcode.c:426
-msgid "Barcode data empty"
-msgstr "Podatki črtne kode so prazni"
+#: ../src/xml-label-04.c:76
+#: ../src/xml-label.c:334
+#, c-format
+msgid "Bad root node = \"%s\""
+msgstr "Slabo korensko vozlišče = \"%s\""
 
-#: ../src/label-barcode.c:430
-msgid "Invalid barcode data"
-msgstr "Neveljavni podatki črtne kode"
+#: ../src/xml-label-04.c:124
+#: ../src/xml-label.c:417
+#, c-format
+msgid "bad node =  \"%s\""
+msgstr "slabo vozlišče = \"%s\""
 
-#: ../src/xml-label.c:193
+#: ../src/xml-label.c:200
+#: ../src/xml-label.c:238
 msgid "xmlParseFile error"
 msgstr "napaka xml datoteke razčlenjevanja"
 
-#: ../src/xml-label.c:234
-msgid "xmlParseDoc error"
-msgstr "napaka xmlParseDoc"
-
-#: ../src/xml-label.c:270
+#: ../src/xml-label.c:275
 msgid "No document root"
 msgstr "Ni korena dokumenta"
 
-#: ../src/xml-label.c:278
+#: ../src/xml-label.c:283
 msgid "Importing from glabels 0.1 format"
 msgstr "Uvažanje iz zapisa glables 0.1"
 
-#: ../src/xml-label.c:287
+#: ../src/xml-label.c:292
 msgid "Importing from glabels 0.4 format"
 msgstr "Uvažanje iz zapisa glables 0.4"
 
-#: ../src/xml-label.c:296
+#: ../src/xml-label.c:302
 #, c-format
 msgid "Unknown glabels Namespace -- Using %s"
 msgstr "Neznan imenski prostor glables -- uporaba %s"
 
-#: ../src/xml-label.c:327
-#: ../src/xml-label-04.c:79
-#, c-format
-msgid "Bad root node = \"%s\""
-msgstr "Slabo korensko vozlišče = \"%s\""
-
-#: ../src/xml-label.c:364
+#: ../src/xml-label.c:371
 #, c-format
 msgid "bad node in Document node =  \"%s\""
 msgstr "slabo vozlišče v vozlišču dokumenta = \"%s\""
 
-#: ../src/xml-label.c:409
-#: ../src/xml-label-04.c:127
-#, c-format
-msgid "bad node =  \"%s\""
-msgstr "slabo vozlišče = \"%s\""
-
-#: ../src/xml-label.c:851
+#: ../src/xml-label.c:877
 #, c-format
 msgid "bad node in Data node =  \"%s\""
 msgstr "slabo vozlišče v podatkovnem vozlišču  = \"%s\""
 
-#: ../src/xml-label.c:1088
-#: ../libglabels/xml-template.c:682
+#: ../src/xml-label.c:953
+#, c-format
+msgid "Unknown embedded file format: \"%s\""
+msgstr "Neznana vključena vrsta datoteke:  \"%s\""
+
+#: ../src/xml-label.c:1159
+#: ../libglabels/xml-template.c:802
 msgid "Utf8 conversion error."
 msgstr "Napaka pretvarjanja Utf8."
 
-#: ../src/xml-label.c:1095
+#: ../src/xml-label.c:1166
 msgid "Problem saving xml file."
 msgstr "Težava med shranjevanjem xml datoteke."
 
-#: ../src/merge.c:170
-#: ../src/merge.c:211
-#: ../src/merge.c:375
-#: ../src/merge.c:378
-msgid "None"
-msgstr "Brez"
-
-#: ../src/merge-init.c:59
-msgid "Text file with comma delimeters (CSV)"
-msgstr "Besedila datoteka ločena z vejicami (CSV)"
-
-#: ../src/merge-init.c:66
-msgid "Text file with colon delimeters"
-msgstr "Besedila datoteka ločena s stolpci"
-
-#: ../src/merge-init.c:73
-msgid "Text file with tab delimeters"
-msgstr "Besedila datoteka ločena s tabulatorji"
-
-#: ../src/merge-init.c:82
-msgid "Data from default Evolution Addressbook"
-msgstr "Podatki iz privzetega imenika Evolution"
-
-#: ../src/merge-init.c:88
-msgid "Data from a file containing VCards"
-msgstr "Podatki iz datoteke, ki vsebuje VCards"
-
-#: ../src/merge-evolution.c:309
-msgid "Couldn't construct query"
-msgstr "Poizvedbe ni mogoče izgraditi"
-
-#: ../src/merge-evolution.c:315
-#: ../src/merge-evolution.c:326
-msgid "Couldn't open addressbook."
-msgstr "Imenika ni mogoče odpreti."
-
-#: ../src/merge-evolution.c:341
-msgid "Couldn't list available fields."
-msgstr "Dostopnih polj ni mogoče razvrstiti."
-
-#: ../src/merge-evolution.c:377
-msgid "Couldn't get contacts."
-msgstr "Stikov ni mogoče dobiti."
-
-#: ../src/wdgt-print-copies.c:153
-msgid "Sheets:"
-msgstr "Listi:"
-
-#: ../src/wdgt-print-copies.c:173
-msgid "from:"
-msgstr "od:"
-
-#: ../src/wdgt-print-copies.c:178
-msgid "to:"
-msgstr "za:"
-
-#: ../src/wdgt-print-merge.c:154
-msgid "Start on label"
-msgstr "Začni na nalepki"
-
-#: ../src/wdgt-print-merge.c:159
-msgid "on 1st sheet"
-msgstr "na prvem listu"
-
-#: ../src/wdgt-print-merge.c:168
-msgid "Copies:"
-msgstr "Kopije:"
-
-#: ../src/wdgt-print-merge.c:173
-msgid "Collate"
-msgstr "Združi"
-
-#: ../src/wdgt-media-select.c:288
-#: ../src/wdgt-media-select.c:292
-#: ../src/wdgt-media-select.c:297
-#: ../src/wdgt-media-select.c:306
-#: ../src/wdgt-media-select.c:309
-#: ../src/wdgt-media-select.c:402
-#: ../src/wdgt-media-select.c:609
-#: ../src/wdgt-media-select.c:618
-msgid "Any"
-msgstr "Katerikoli"
-
-#: ../src/wdgt-media-select.c:643
-#, c-format
-msgid "%d per sheet"
-msgstr "%d na list"
-
-#: ../src/wdgt-media-select.c:673
-#, c-format
-msgid "%s x %s %s"
-msgstr "%s x %s %s"
-
-#: ../src/wdgt-media-select.c:678
-#, c-format
-msgid "%.5g x %.5g %s"
-msgstr "%.5g x %.5g %s"
-
-#: ../src/wdgt-media-select.c:689
-#: ../src/wdgt-media-select.c:703
-#, c-format
-msgid "%s %s diameter"
-msgstr "%s %s premer"
-
-#: ../src/wdgt-media-select.c:693
-#: ../src/wdgt-media-select.c:707
-#, c-format
-msgid "%.5g %s diameter"
-msgstr "%.5g %s premer"
-
-#: ../src/wdgt-media-select.c:781
-msgid "No recent templates found."
-msgstr "Nedavnih predlog ni mogoče najti."
-
-#: ../src/wdgt-media-select.c:782
-msgid "Try selecting a template from the \"Search all templates\" page."
-msgstr "Poskusite izbrati predlogo s strani \"Išči vse predloge\"."
-
-#: ../src/wdgt-media-select.c:861
-msgid "No match."
-msgstr "Ni skladanja."
-
-#: ../src/wdgt-media-select.c:862
-msgid "Try selecting a different brand, page size or category."
-msgstr "Poskusite z izbiro druge znamke, velikosti strani ali kategorije."
-
-#. This is the default custom color
-#: ../src/mygal/color-palette.c:389
-msgid "custom"
-msgstr "po meri"
-
-#. "Custom" color - we'll pop up a GtkColorButton
-#: ../src/mygal/color-palette.c:431
-msgid "Custom Color:"
-msgstr "Barva po meri:"
-
-#: ../src/mygal/color-palette.c:439
-msgid "Choose Custom Color"
-msgstr "Izberite barvo po meri"
-
-#: ../src/mygal/color-palette.c:572
-msgid "black"
-msgstr "črna"
-
-#: ../src/mygal/color-palette.c:573
-msgid "light brown"
-msgstr "svetlo rjava"
-
-#: ../src/mygal/color-palette.c:574
-msgid "brown gold"
-msgstr "rjavo zlata"
-
-#: ../src/mygal/color-palette.c:575
-msgid "dark green #2"
-msgstr "temno zelena 2"
-
-#: ../src/mygal/color-palette.c:576
-msgid "navy"
-msgstr "mornarska"
-
-#: ../src/mygal/color-palette.c:577
-#: ../src/mygal/color-palette.c:633
-msgid "dark blue"
-msgstr "temno modra"
-
-#: ../src/mygal/color-palette.c:578
-msgid "purple #2"
-msgstr "vijolična 2"
-
-#: ../src/mygal/color-palette.c:579
-msgid "very dark gray"
-msgstr "zelo temno siva"
-
-#: ../src/mygal/color-palette.c:582
-#: ../src/mygal/color-palette.c:638
-msgid "dark red"
-msgstr "temno rdeča"
-
-#: ../src/mygal/color-palette.c:583
-msgid "red-orange"
-msgstr "rdeče-oranžna"
-
-#: ../src/mygal/color-palette.c:584
-msgid "gold"
-msgstr "zlata"
-
-#: ../src/mygal/color-palette.c:585
-msgid "dark green"
-msgstr "temno zelena"
-
-#: ../src/mygal/color-palette.c:586
-#: ../src/mygal/color-palette.c:639
-msgid "dull blue"
-msgstr "mračno modra"
-
-#: ../src/mygal/color-palette.c:587
-#: ../src/mygal/color-palette.c:640
-msgid "blue"
-msgstr "modra"
-
-#: ../src/mygal/color-palette.c:588
-msgid "dull purple"
-msgstr "mračno vijolična"
-
-#: ../src/mygal/color-palette.c:589
-msgid "dark grey"
-msgstr "temno siva"
-
-#: ../src/mygal/color-palette.c:592
-msgid "red"
-msgstr "rdeča"
-
-#: ../src/mygal/color-palette.c:593
-msgid "orange"
-msgstr "oranžna"
-
-#: ../src/mygal/color-palette.c:594
-msgid "lime"
-msgstr "rumeno-zelena"
-
-#: ../src/mygal/color-palette.c:595
-msgid "dull green"
-msgstr "mračno zelena"
-
-#: ../src/mygal/color-palette.c:596
-msgid "dull blue #2"
-msgstr "mračno modra 2"
-
-#: ../src/mygal/color-palette.c:597
-msgid "sky blue #2"
-msgstr "nebeško modra 2"
-
-#: ../src/mygal/color-palette.c:598
-#: ../src/mygal/color-palette.c:637
-msgid "purple"
-msgstr "vijolična"
-
-#: ../src/mygal/color-palette.c:599
-msgid "gray"
-msgstr "siva"
-
-#: ../src/mygal/color-palette.c:602
-#: ../src/mygal/color-palette.c:634
-msgid "magenta"
-msgstr "škrlatna"
-
-#: ../src/mygal/color-palette.c:603
-msgid "bright orange"
-msgstr "bistro oranžna"
-
-#: ../src/mygal/color-palette.c:604
-#: ../src/mygal/color-palette.c:635
-msgid "yellow"
-msgstr "rumena"
-
-#: ../src/mygal/color-palette.c:605
-msgid "green"
-msgstr "zelena"
-
-#: ../src/mygal/color-palette.c:606
-#: ../src/mygal/color-palette.c:636
-msgid "cyan"
-msgstr "sinja"
-
-#: ../src/mygal/color-palette.c:607
-msgid "bright blue"
-msgstr "bistro modra"
-
-#: ../src/mygal/color-palette.c:608
-#: ../src/mygal/color-palette.c:625
-msgid "red purple"
-msgstr "rdeče vijolična"
-
-#: ../src/mygal/color-palette.c:609
-msgid "light grey"
-msgstr "svetlo siva"
-
-#: ../src/mygal/color-palette.c:612
-#: ../src/mygal/color-palette.c:629
-msgid "pink"
-msgstr "roza"
-
-#: ../src/mygal/color-palette.c:613
-msgid "light orange"
-msgstr "svetlo oranžna"
-
-#: ../src/mygal/color-palette.c:614
-#: ../src/mygal/color-palette.c:626
-msgid "light yellow"
-msgstr "svetlo rumena"
-
-#: ../src/mygal/color-palette.c:615
-msgid "light green"
-msgstr "svetlo zelena"
-
-#: ../src/mygal/color-palette.c:616
-msgid "light cyan"
-msgstr "svetlo sinja"
-
-#: ../src/mygal/color-palette.c:617
-#: ../src/mygal/color-palette.c:627
-msgid "light blue"
-msgstr "svetlo modra"
-
-#: ../src/mygal/color-palette.c:618
-#: ../src/mygal/color-palette.c:631
-msgid "light purple"
-msgstr "svetlo vijolična"
-
-#: ../src/mygal/color-palette.c:619
-msgid "white"
-msgstr "bela"
-
-#: ../src/mygal/color-palette.c:624
-msgid "purplish blue"
-msgstr "vijolično modra"
-
-#: ../src/mygal/color-palette.c:628
-msgid "dark purple"
-msgstr "temo vijolična"
-
-#: ../src/mygal/color-palette.c:630
-msgid "sky blue"
-msgstr "nebeško modra"
-
-#: ../src/critical-error-handler.c:73
-msgid "gLabels Fatal Error!"
-msgstr "Usodna napaka gLables!"
-
-#: ../src/warning-handler.c:73
-msgid "gLabels Error!"
-msgstr "Napaka gLables!"
-
 #. Create and append an "Other" entry.
-#: ../libglabels/db.c:118
+#. Translators: "Other" here means other page size.  Meaning a page size
+#. * other than the standard ones that libglabels knows about such as
+#. * "letter", "A4", etc.
+#: ../libglabels/db.c:270
 msgid "Other"
-msgstr "Ostalo"
+msgstr "Drugo"
 
 #. Create and append a "User defined" entry.
-#: ../libglabels/db.c:131
+#: ../libglabels/db.c:279
 msgid "User defined"
 msgstr "Uporabniško določeno"
 
-#: ../libglabels/db.c:482
+#: ../libglabels/db.c:665
 msgid "Unable to locate paper size definitions.  Libglabels may not be installed correctly!"
 msgstr "Definicij velikosti papirja ni mogoče najti. Libglabels morda ni pravilno nameščen!"
 
-#: ../libglabels/db.c:875
+#: ../libglabels/db.c:1057
 msgid "Unable to locate category definitions.  Libglabels may not be installed correctly!"
 msgstr "Definicij kategorije ni mogoče najti. Libglabels morda ni pravilno nameščen!"
 
-#: ../libglabels/db.c:1461
+#: ../libglabels/db.c:2097
 msgid "Unable to locate any template files.  Libglabels may not be installed correctly!"
 msgstr "Datotek predlog ni mogoče najti. Libglabels morda ni pravilno nameščen!"
 
-#: ../libglabels/db.c:1538
+#: ../libglabels/db.c:2164
+#, c-format
+msgid "%s full page label"
+msgstr "%s nalepka cele strani"
+
+#: ../libglabels/template.c:156
+#, c-format
+msgid "Equivalent part (\"%s\") for \"%s\", not previously defined."
+msgstr "Enakovredni del (\"%s\") za \"%s\", ni predhodno določen."
+
+#.
+#. * Translators: 1st %d = number of labels across a page,
+#. *              2nd %d = number of labels down a page,
+#. *              3rd %d = total number of labels on a page (sheet).
+#.
+#: ../libglabels/template.c:727
+#, c-format
+msgid "%d × %d (%d per sheet)"
+msgstr "%d × %d (%d na list)"
+
+#. Translators: %d is the total number of labels on a page (sheet).
+#: ../libglabels/template.c:732
 #, c-format
-msgid "Generic %s full page template"
-msgstr "Splošna predloga cele strani %s"
+msgid "%d per sheet"
+msgstr "%d na list"
+
+#: ../libglabels/template.c:802
+#: ../libglabels/template.c:808
+#: ../libglabels/template.c:818
+#: ../libglabels/template.c:824
+msgid "diameter"
+msgstr "premer"
+
+#. The ids are identical to the absolute length units supported in
+#. the CSS2 Specification (Section 4.3.2)
+#. This table must be sorted exactly as the enumerations in lglUnits
+#. [LGL_UNITS_POINT]
+#: ../libglabels/units.c:65
+#: ../data/ui/object-editor.ui.h:40
+#: ../data/ui/prefs-dialog.ui.h:22
+msgid "points"
+msgstr "točke"
+
+#. [LGL_UNITS_INCH]
+#: ../libglabels/units.c:66
+#: ../data/ui/object-editor.ui.h:39
+#: ../data/ui/template-designer.ui.h:62
+msgid "inches"
+msgstr "palci"
+
+#. [LGL_UNITS_MM]
+#: ../libglabels/units.c:67
+msgid "mm"
+msgstr "mm"
+
+#. [LGL_UNITS_CM]
+#: ../libglabels/units.c:68
+msgid "cm"
+msgstr "cm"
+
+#. [LGL_UNITS_PICA]
+#: ../libglabels/units.c:69
+msgid "picas"
+msgstr "pic"
 
-#: ../libglabels/xml-template.c:227
+#: ../libglabels/xml-template.c:223
 msgid "Missing name or brand/part attributes."
-msgstr "Manjkajoče ime ali atributa znamke/dela."
+msgstr "Manjkajoče ime ali atributi znamke/dela."
 
 #. This should always be an id, but just in case a name
 #. slips by!
@@ -1554,393 +1904,408 @@ msgstr "Neznan id velikosti strani \"%s\", poskušanje kot ime"
 msgid "Unknown page size id or name \"%s\""
 msgstr "Neznan id velikosti strani ali ime \"%s\""
 
-#: ../libglabels/xml-template.c:627
+#: ../libglabels/xml-template.c:275
+msgid "Forward references not supported."
+msgstr "Posredovanje sklicev ni podprto."
+
+#: ../libglabels/xml-template.c:747
 msgid "Missing required \"brand\" or \"part\" attribute, trying deprecated name."
 msgstr "Zahtevan atribut \"znamka\" ali \"del\" manjka; poskušanje s skrajšanim imenom. "
 
-#: ../libglabels/xml-template.c:637
+#: ../libglabels/xml-template.c:757
 msgid "Name attribute also missing."
 msgstr "Atributi imena manjkajo."
 
-#: ../data/glade/merge-properties-dialog.glade.h:1
-msgid "<b>Record selection/preview</b>"
-msgstr "<b>Posnemi izbiro/predogled</b>"
-
-#: ../data/glade/merge-properties-dialog.glade.h:2
-msgid "<b>Source</b>"
-msgstr "<b>Vir</b>"
-
-#: ../data/glade/merge-properties-dialog.glade.h:3
+#.
+#. * Local Variables:       -- emacs
+#. * mode: C                -- emacs
+#. * c-basic-offset: 8      -- emacs
+#. * tab-width: 8           -- emacs
+#. * indent-tabs-mode: nil  -- emacs
+#. * End:                   -- emacs
+#.
+#: ../data/ui/merge-properties-dialog.ui.h:1
 msgid "Format:"
 msgstr "Zapis:"
 
-#: ../data/glade/merge-properties-dialog.glade.h:4
+#: ../data/ui/merge-properties-dialog.ui.h:2
 msgid "Location:"
 msgstr "Mesto:"
 
-#: ../data/glade/merge-properties-dialog.glade.h:5
+#: ../data/ui/merge-properties-dialog.ui.h:3
+msgid "Record selection/preview"
+msgstr "Posnemi izbiro/predogled"
+
+#: ../data/ui/merge-properties-dialog.ui.h:4
 msgid "Select all"
 msgstr "Izberi vse"
 
-#: ../data/glade/merge-properties-dialog.glade.h:6
+#: ../data/ui/merge-properties-dialog.ui.h:5
+msgid "Source"
+msgstr "Vir"
+
+#: ../data/ui/merge-properties-dialog.ui.h:6
 msgid "Unselect all"
 msgstr "Prekliči izbor vsega"
 
-#: ../data/glade/merge-properties-dialog.glade.h:7
-#: ../data/glade/object-editor.glade.h:39
-msgid "dialog1"
-msgstr "pogovorno okno 1"
+#: ../data/ui/media-select.ui.h:1
+msgid "Brand:"
+msgstr "Znamka:"
+
+#: ../data/ui/media-select.ui.h:2
+msgid "Category:"
+msgstr "Kategorija:"
+
+#: ../data/ui/media-select.ui.h:3
+msgid "Custom"
+msgstr "Po meri"
+
+#: ../data/ui/media-select.ui.h:4
+#: ../data/ui/new-label-dialog.ui.h:6
+#: ../data/ui/template-designer.ui.h:42
+msgid "Page size:"
+msgstr "Velikost strani:"
+
+#: ../data/ui/media-select.ui.h:5
+msgid "Recent"
+msgstr "Nedavno"
+
+#: ../data/ui/media-select.ui.h:6
+msgid "Search all"
+msgstr "Išči vse"
+
+#: ../data/ui/new-label-dialog.ui.h:1
+msgid "Choose label or card product from hundreds of predefined templates or define your own."
+msgstr "Izberite nalepko ali kartico med stotinami pred-določenih predlog ali določite svojo."
+
+#: ../data/ui/new-label-dialog.ui.h:2
+#: ../data/ui/template-designer.ui.h:27
+msgid "Description:"
+msgstr "Opis:"
 
-#: ../data/glade/new-label-dialog.glade.h:1
-msgid "<b>Label orientation</b>"
-msgstr "<b>Usmeritev nalepke</b>"
+#: ../data/ui/new-label-dialog.ui.h:3
+msgid "Label size:"
+msgstr "Velikost nalepke:"
 
-#: ../data/glade/new-label-dialog.glade.h:2
-msgid "<b>Media type</b>"
-msgstr "<b>Vrsta medija</b>"
+#: ../data/ui/new-label-dialog.ui.h:4
+msgid "Layout:"
+msgstr "Razpored:"
 
-#: ../data/glade/object-editor.glade.h:2
+#: ../data/ui/new-label-dialog.ui.h:5
+msgid "Normal"
+msgstr "Običajna"
+
+#: ../data/ui/new-label-dialog.ui.h:7
+#: ../data/ui/template-designer.ui.h:43
+msgid "Part #:"
+msgstr "Del št:"
+
+#: ../data/ui/new-label-dialog.ui.h:8
+msgid "Please review and confirm your selection."
+msgstr "Preglejte in potrdite svoj izbor."
+
+#: ../data/ui/new-label-dialog.ui.h:9
+msgid "Rotated"
+msgstr "Zavrteno"
+
+#: ../data/ui/new-label-dialog.ui.h:10
+msgid "Select orientation of label content."
+msgstr "Izberite usmeritev vsebine nalepke."
+
+#: ../data/ui/new-label-dialog.ui.h:11
+msgid "Similar products:"
+msgstr "Podobni izdelki:"
+
+#: ../data/ui/new-label-dialog.ui.h:12
+msgid "Vendor:"
+msgstr "Ponudnik:"
+
+#: ../data/ui/object-editor.ui.h:2
 #, no-c-format
 msgid "%"
 msgstr "%"
 
-#: ../data/glade/object-editor.glade.h:3
-msgid "00000000000 00000"
-msgstr "00000000000 00000"
-
-#: ../data/glade/object-editor.glade.h:4
-msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
-msgstr "<span weight=\"bold\" size=\"larger\">lastnosti predmeta Xxx</span>"
-
-#: ../data/glade/object-editor.glade.h:5
-#: ../data/glade/prefs-dialog.glade.h:7
+#: ../data/ui/object-editor.ui.h:3
+#: ../data/ui/prefs-dialog.ui.h:2
 msgid "Alignment:"
 msgstr "Poravnava:"
 
-#: ../data/glade/object-editor.glade.h:6
+#: ../data/ui/object-editor.ui.h:4
 msgid "Allow merge to automatically shrink text"
 msgstr "Dovoli samodejno skrčenje besedila ob združevanju"
 
-#: ../data/glade/object-editor.glade.h:7
+#: ../data/ui/object-editor.ui.h:5
 msgid "Angle:"
 msgstr "Kot:"
 
-#: ../data/glade/object-editor.glade.h:8
+#: ../data/ui/object-editor.ui.h:6
+msgid "Backend:"
+msgstr "Zaledje:"
+
+#: ../data/ui/object-editor.ui.h:7
 msgid "Checksum"
 msgstr "Nadzorna vsota"
 
-#: ../data/glade/object-editor.glade.h:9
-#: ../data/glade/prefs-dialog.glade.h:8
+#: ../data/ui/object-editor.ui.h:8
+#: ../data/ui/prefs-dialog.ui.h:3
 msgid "Color:"
 msgstr "Barva:"
 
-#: ../data/glade/object-editor.glade.h:11
+#: ../data/ui/object-editor.ui.h:10
 msgid "Enable shadow"
 msgstr "Omogoči senco"
 
-#: ../data/glade/object-editor.glade.h:12
+#: ../data/ui/object-editor.ui.h:11
 msgid "Family:"
 msgstr "Družina:"
 
-#: ../data/glade/object-editor.glade.h:13
+#: ../data/ui/object-editor.ui.h:12
 msgid "File:"
 msgstr "Datoteka:"
 
-#: ../data/glade/object-editor.glade.h:14
+#: ../data/ui/object-editor.ui.h:13
+#: ../data/ui/prefs-dialog.ui.h:5
 msgid "Fill"
 msgstr "Polnilo"
 
-#: ../data/glade/object-editor.glade.h:15
-#: ../data/glade/template-designer.glade.h:30
+#: ../data/ui/object-editor.ui.h:14
+#: ../data/ui/template-designer.ui.h:30
 msgid "Height:"
 msgstr "Višina:"
 
-#: ../data/glade/object-editor.glade.h:17
-msgid "Insert merge field"
-msgstr "Vstavi polje združevanja"
-
-#: ../data/glade/object-editor.glade.h:18
+#: ../data/ui/object-editor.ui.h:16
 msgid "Key:"
 msgstr "Ključ:"
 
-#: ../data/glade/object-editor.glade.h:19
+#: ../data/ui/object-editor.ui.h:17
 msgid "Length:"
 msgstr "Dolžina:"
 
-#: ../data/glade/object-editor.glade.h:21
-#: ../data/glade/prefs-dialog.glade.h:12
+#: ../data/ui/object-editor.ui.h:19
+#: ../data/ui/prefs-dialog.ui.h:10
 msgid "Line Spacing:"
 msgstr "Razmik vrstic:"
 
-#: ../data/glade/object-editor.glade.h:22
+#: ../data/ui/object-editor.ui.h:20
 msgid "Literal:"
 msgstr "Dosledno:"
 
-#: ../data/glade/object-editor.glade.h:23
+#: ../data/ui/object-editor.ui.h:21
 msgid "Opacity:"
 msgstr "Prekrivnost:"
 
-#: ../data/glade/object-editor.glade.h:24
+#: ../data/ui/object-editor.ui.h:22
 msgid "Position"
-msgstr "Lega"
+msgstr "Položaj"
 
-#: ../data/glade/object-editor.glade.h:25
+#: ../data/ui/object-editor.ui.h:23
 msgid "Reset image size"
 msgstr "Ponastavi velikost slike"
 
-#: ../data/glade/object-editor.glade.h:26
-msgid "Select A File"
-msgstr "Izbor datoteke"
-
-#: ../data/glade/object-editor.glade.h:27
+#: ../data/ui/object-editor.ui.h:24
 msgid "Shadow"
 msgstr "Senca"
 
-#: ../data/glade/object-editor.glade.h:28
+#: ../data/ui/object-editor.ui.h:25
 msgid "Size"
 msgstr "Velikost"
 
-#: ../data/glade/object-editor.glade.h:29
+#: ../data/ui/object-editor.ui.h:26
 msgid "Size:"
 msgstr "Velikost:"
 
-#: ../data/glade/object-editor.glade.h:30
+#: ../data/ui/object-editor.ui.h:27
 msgid "Style"
 msgstr "Slog"
 
-#: ../data/glade/object-editor.glade.h:31
+#: ../data/ui/object-editor.ui.h:28
 msgid "Style:"
 msgstr "Slog:"
 
-#: ../data/glade/object-editor.glade.h:33
-#: ../data/glade/prefs-dialog.glade.h:20
-#: ../data/glade/template-designer.glade.h:61
+#: ../data/ui/object-editor.ui.h:30
+#: ../data/ui/prefs-dialog.ui.h:20
+#: ../data/ui/template-designer.ui.h:61
 msgid "Width:"
 msgstr "Širina:"
 
-#: ../data/glade/object-editor.glade.h:34
+#: ../data/ui/object-editor.ui.h:31
 msgid "X Offset:"
-msgstr "Odmik X osi:"
+msgstr "Odmik X:"
 
-#: ../data/glade/object-editor.glade.h:35
+#: ../data/ui/object-editor.ui.h:32
 msgid "X:"
 msgstr "X:"
 
-#: ../data/glade/object-editor.glade.h:36
+#: ../data/ui/object-editor.ui.h:33
 msgid "Y Offset:"
-msgstr "Odmik Y osi:"
+msgstr "Odmik Y:"
 
-#: ../data/glade/object-editor.glade.h:37
+#: ../data/ui/object-editor.ui.h:34
 msgid "Y:"
 msgstr "Y:"
 
-#: ../data/glade/object-editor.glade.h:38
+#: ../data/ui/object-editor.ui.h:35
 msgid "degrees"
 msgstr "stopinje"
 
-#: ../data/glade/object-editor.glade.h:40
+#: ../data/ui/object-editor.ui.h:36
+msgid "dialog1"
+msgstr "pogovorno okno 1"
+
+#: ../data/ui/object-editor.ui.h:37
 msgid "digits:"
 msgstr "številke:"
 
-#: ../data/glade/object-editor.glade.h:41
+#: ../data/ui/object-editor.ui.h:38
 msgid "format:"
 msgstr "oblika:"
 
-#: ../data/glade/prefs-dialog.glade.h:1
+#: ../data/ui/prefs-dialog.ui.h:1
 msgid "   "
 msgstr "   "
 
-#: ../data/glade/prefs-dialog.glade.h:2
-msgid "<span weight=\"bold\">Default page size</span>"
-msgstr "<span weight=\"bold\">Privzeta velikost strani</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:3
-msgid "<span weight=\"bold\">Fill</span>"
-msgstr "<span weight=\"bold\">Polnilo</span>"
+#: ../data/ui/prefs-dialog.ui.h:4
+msgid "Default page size"
+msgstr "Privzeta velikost strani"
 
-#: ../data/glade/prefs-dialog.glade.h:4
-msgid "<span weight=\"bold\">Line</span>"
-msgstr "<span weight=\"bold\">Črta</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:5
-msgid "<span weight=\"bold\">Text</span>"
-msgstr "<span weight=\"bold\">Besedilo</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:6
-msgid "<span weight=\"bold\">Units</span>"
-msgstr "<span weight=\"bold\">Enote</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:9
+#: ../data/ui/prefs-dialog.ui.h:6
 msgid "Font:"
 msgstr "Pisava:"
 
-#: ../data/glade/prefs-dialog.glade.h:10
+#: ../data/ui/prefs-dialog.ui.h:7
 msgid "ISO A4"
 msgstr "ISO A4"
 
-#: ../data/glade/prefs-dialog.glade.h:11
+#: ../data/ui/prefs-dialog.ui.h:8
 msgid "Inches"
 msgstr "Palci"
 
-#: ../data/glade/prefs-dialog.glade.h:13
+#: ../data/ui/prefs-dialog.ui.h:11
 msgid "Locale"
 msgstr "Jezikovna oznaka"
 
-#: ../data/glade/prefs-dialog.glade.h:14
+#: ../data/ui/prefs-dialog.ui.h:12
 msgid "Millimeters"
 msgstr "Milimetri"
 
-#: ../data/glade/prefs-dialog.glade.h:15
+#: ../data/ui/prefs-dialog.ui.h:13
 msgid "Object defaults"
 msgstr "Privzete vrednosti predmeta"
 
-#: ../data/glade/prefs-dialog.glade.h:16
+#: ../data/ui/prefs-dialog.ui.h:14
 msgid "Points"
 msgstr "Točke"
 
-#: ../data/glade/prefs-dialog.glade.h:17
+#: ../data/ui/prefs-dialog.ui.h:15
 msgid "Select default properties for new objects."
 msgstr "Izbor privzeti lastnosti za nove predmete."
 
-#: ../data/glade/prefs-dialog.glade.h:18
+#: ../data/ui/prefs-dialog.ui.h:16
 msgid "Select locale specific behavior."
 msgstr "Izberite z jezikovno oznako določeno obnašanje."
 
-#. Most popular (at top of list)
-#: ../data/glade/prefs-dialog.glade.h:19
-#: ../data/templates/paper-sizes.xml.h:29
+#: ../data/ui/prefs-dialog.ui.h:18
+#: ../templates/paper-sizes.xml.h:35
 msgid "US Letter"
 msgstr "Ameriško pismo"
 
-#: ../data/glade/print-custom-widget.glade.h:1
-msgid "<b>Options</b>"
-msgstr "<b>Možnosti</b>"
+#: ../data/ui/prefs-dialog.ui.h:19
+msgid "Units"
+msgstr "Enote"
 
-#: ../data/glade/print-custom-widget.glade.h:2
-msgid "<b>Print control (Merge)</b>"
-msgstr "<b>Nadzor tiskanja (združi)</B>"
-
-#: ../data/glade/print-custom-widget.glade.h:3
-msgid "<b>Print control (Simple)</b>"
-msgstr "<b>Nadzor tiskanja (preprost)</b>"
-
-#: ../data/glade/property-bar.glade.h:1
+#: ../data/ui/property-bar.ui.h:1
 msgid "Bold"
 msgstr "Krepko"
 
-#: ../data/glade/property-bar.glade.h:2
+#: ../data/ui/property-bar.ui.h:2
 msgid "Center align"
 msgstr "Poravnava na sredino"
 
-#: ../data/glade/property-bar.glade.h:4
-msgid "Font family"
-msgstr "Družina pisav"
-
-#: ../data/glade/property-bar.glade.h:5
-msgid "Font size"
-msgstr "Velikost pisave"
-
-#: ../data/glade/property-bar.glade.h:6
-msgid "Italic"
-msgstr "Ležeče"
-
-#: ../data/glade/property-bar.glade.h:7
+#: ../data/ui/property-bar.ui.h:7
 msgid "Left align"
 msgstr "Poravnava levo"
 
-#: ../data/glade/property-bar.glade.h:9
-msgid "Line width"
-msgstr "Širine vrstice"
-
-#: ../data/glade/property-bar.glade.h:10
+#: ../data/ui/property-bar.ui.h:10
 msgid "Right align"
 msgstr "Poravnava desno"
 
-#: ../data/glade/property-bar.glade.h:11
-msgid "Text Color"
-msgstr "Barva besedila"
-
-#: ../data/glade/property-bar.glade.h:12
-msgid "Text color"
-msgstr "Barva besedila"
-
-#: ../data/glade/template-designer.glade.h:1
+#: ../data/ui/template-designer.ui.h:1
 msgid "(e.g., \"Mailing Labels,\" \"Business Cards,\" ...)"
 msgstr "(na primer \"Poštne nalepke\", \"Poslovne vizitke\" ...)"
 
-#: ../data/glade/template-designer.glade.h:2
+#: ../data/ui/template-designer.ui.h:2
 msgid "(e.g., 8163A)"
 msgstr "(na primer 1000)"
 
-#: ../data/glade/template-designer.glade.h:3
+#: ../data/ui/template-designer.ui.h:3
 msgid "(e.g., Avery, Acme, ...)"
 msgstr "(na primer Mobitel, Simobil, ...)"
 
-#: ../data/glade/template-designer.glade.h:4
+#: ../data/ui/template-designer.ui.h:4
 msgid "1. Outer radius:"
 msgstr "1. Zunanji polmer:"
 
-#: ../data/glade/template-designer.glade.h:5
+#: ../data/ui/template-designer.ui.h:5
 msgid "1. Radius:"
 msgstr "1. Polmer:"
 
-#: ../data/glade/template-designer.glade.h:6
+#: ../data/ui/template-designer.ui.h:6
 msgid "1. Width:"
 msgstr "1. Širina"
 
-#: ../data/glade/template-designer.glade.h:7
+#: ../data/ui/template-designer.ui.h:7
 msgid "2. Height:"
 msgstr "2. Višina:"
 
-#: ../data/glade/template-designer.glade.h:8
+#: ../data/ui/template-designer.ui.h:8
 msgid "2. Inner radius:"
 msgstr "2. Notranji polmer:"
 
-#: ../data/glade/template-designer.glade.h:9
+#: ../data/ui/template-designer.ui.h:9
 msgid "2. Waste (overprint allowed):"
 msgstr "2. Vmesni prostor:"
 
-#: ../data/glade/template-designer.glade.h:10
+#: ../data/ui/template-designer.ui.h:10
 msgid "3. Clipping width:"
 msgstr "3. Širina odreza:"
 
-#: ../data/glade/template-designer.glade.h:11
+#: ../data/ui/template-designer.ui.h:11
 msgid "3. Margin"
 msgstr "3. Obroba"
 
-#: ../data/glade/template-designer.glade.h:12
+#: ../data/ui/template-designer.ui.h:12
 msgid "3. Round (radius of corner):"
 msgstr "3. Okroglo (polmer kota):"
 
-#: ../data/glade/template-designer.glade.h:13
+#: ../data/ui/template-designer.ui.h:13
 msgid "4. Clipping height:"
 msgstr "4. Višina odreza:"
 
-#: ../data/glade/template-designer.glade.h:14
+#: ../data/ui/template-designer.ui.h:14
 msgid "4. Horiz. waste (overprint allowed):"
-msgstr "5. Vodoravni vmesni prostor:"
+msgstr "4. Vodoravni vmesni prostor:"
 
-#: ../data/glade/template-designer.glade.h:15
+#: ../data/ui/template-designer.ui.h:15
 msgid "5. Vert. waste (overprint allowed):"
 msgstr "5. Navpični vmesni prostor:"
 
-#: ../data/glade/template-designer.glade.h:16
+#: ../data/ui/template-designer.ui.h:16
 msgid "5. Waste (overprint allowed):"
 msgstr "5. Vmesni prostor:"
 
-#: ../data/glade/template-designer.glade.h:17
+#: ../data/ui/template-designer.ui.h:17
 msgid "6. Margin"
 msgstr "6. Obroba"
 
-#: ../data/glade/template-designer.glade.h:18
+#: ../data/ui/template-designer.ui.h:18
 msgid "Brand/Manufacturer:"
 msgstr "Znamka/Izdelovalec:"
 
-#: ../data/glade/template-designer.glade.h:19
+#: ../data/ui/template-designer.ui.h:19
 msgid "CD/DVD (including credit card CDs)"
 msgstr "CD/DVD (vključujoč CD-je v obliki kreditnih kartic)"
 
-#: ../data/glade/template-designer.glade.h:20
+#: ../data/ui/template-designer.ui.h:20
 msgid ""
 "Congratulations!\n"
 "\n"
@@ -1953,28 +2318,24 @@ msgstr ""
 "Čestitamo!\n"
 "\n"
 "Dokončali ste snovanje predloge gLables.\n"
-"V primeru, da želite sprejeti in shraniti vaše oblikovanje, kliknite \"Uporabi.\"\n"
+"V primeru da želite sprejeti in shraniti vaše oblikovanje, kliknite \"Uveljavi.\"\n"
 "\n"
-"V nasprotnem primeru lahko kliknete \"Prekliči\" in program končate\n"
-"ali pa \"Nazaj\" za nadaljevanje oblikovanja."
-
-#: ../data/glade/template-designer.glade.h:27
-msgid "Description:"
-msgstr "Opis:"
+"V nasprotnem primeru lahko kliknete \"Prekliči\" in snovanje končate\n"
+"ali pa kliknite \"Nazaj\" za nadaljevanje oblikovanja."
 
-#: ../data/glade/template-designer.glade.h:28
+#: ../data/ui/template-designer.ui.h:28
 msgid "Distance from left edge (x0):"
 msgstr "Razdalja od levega roba (x0):"
 
-#: ../data/glade/template-designer.glade.h:29
+#: ../data/ui/template-designer.ui.h:29
 msgid "Distance from top edge (y0):"
 msgstr "Razdalja od zgornjega roba (y0):"
 
-#: ../data/glade/template-designer.glade.h:31
+#: ../data/ui/template-designer.ui.h:31
 msgid "Horizontal pitch (dx):"
 msgstr "Vodoravna razdalja (dx):"
 
-#: ../data/glade/template-designer.glade.h:32
+#: ../data/ui/template-designer.ui.h:32
 msgid ""
 "How many layouts will your template contain? \n"
 "\n"
@@ -1986,74 +2347,65 @@ msgstr ""
 "\n"
 "Razporeditev je niz nalepk ali vizitk, ki je lahko urejen v preprosto mrežo.\n"
 "Večina predlog potrebuje le eno razporeditev, kot na prvem primeru.\n"
-"Drugi primer vsebuje dve razporeditvi. "
+"Drugi primer prikazuje dve razporeditvi. "
 
-#: ../data/glade/template-designer.glade.h:37
+#: ../data/ui/template-designer.ui.h:37
 msgid "Layout #1"
 msgstr "Razporeditev št. 1"
 
-#: ../data/glade/template-designer.glade.h:38
+#: ../data/ui/template-designer.ui.h:38
 msgid "Layout #2"
 msgstr "Razporeditev št. 2"
 
-#: ../data/glade/template-designer.glade.h:39
+#: ../data/ui/template-designer.ui.h:39
 msgid "Number across (nx):"
 msgstr "Vodoravno število (nx):"
 
-#: ../data/glade/template-designer.glade.h:40
+#: ../data/ui/template-designer.ui.h:40
 msgid "Number down (ny):"
 msgstr "Navpično število (ny):"
 
-#: ../data/glade/template-designer.glade.h:41
+#: ../data/ui/template-designer.ui.h:41
 msgid "Number of layouts:"
 msgstr "Število razporeditev:"
 
-#: ../data/glade/template-designer.glade.h:42
-#: ../data/glade/wdgt-media-select.glade.h:3
-msgid "Page size:"
-msgstr "Velikost strani:"
-
-#: ../data/glade/template-designer.glade.h:43
-msgid "Part #:"
-msgstr "Del št:"
-
-#: ../data/glade/template-designer.glade.h:44
+#: ../data/ui/template-designer.ui.h:44
 msgid "Please enter the following identifying information about the template stationery."
 msgstr "Vnesite podrobnosti določitve predloge pisalnih pripomočkov."
 
-#: ../data/glade/template-designer.glade.h:45
+#: ../data/ui/template-designer.ui.h:45
 msgid "Please enter the following layout information."
-msgstr "Vnesite sledeče podrobnosti razporeditve."
+msgstr "Vnesite naslednje podrobnosti razporeditve."
 
-#: ../data/glade/template-designer.glade.h:46
+#: ../data/ui/template-designer.ui.h:46
 msgid "Please enter the following size parameters of a single label in your template."
-msgstr "Vnesite sledeče parametre velikosti posamezne nalepke v vaši predlogi."
+msgstr "Vnesite naslednje parametre velikosti posamezne nalepke v svoji predlogi."
 
-#: ../data/glade/template-designer.glade.h:47
+#: ../data/ui/template-designer.ui.h:47
 msgid "Please enter the following size parameters of a single label or card in your template."
-msgstr "Vnesite sledeče parametre velikosti posamezne nalepke ali poslovne vizitke v vaši predlogi."
+msgstr "Vnesite naslednje parametre velikosti posamezne nalepke ali poslovne vizitke v svoji predlogi."
 
-#: ../data/glade/template-designer.glade.h:48
+#: ../data/ui/template-designer.ui.h:48
 msgid "Please select the basic shape of the labels or cards."
 msgstr "Izberite osnovno obliko nalepk ali vizitk."
 
-#: ../data/glade/template-designer.glade.h:49
+#: ../data/ui/template-designer.ui.h:49
 msgid "Please select the page size of the template stationery."
 msgstr "Izberite velikost strani predloge pisalnih pripomočkov."
 
-#: ../data/glade/template-designer.glade.h:50
+#: ../data/ui/template-designer.ui.h:50
 msgid "Print test sheet"
 msgstr "Natisni preizkusni list"
 
-#: ../data/glade/template-designer.glade.h:51
+#: ../data/ui/template-designer.ui.h:51
 msgid "Rectangular or square (can have rounded corners)"
 msgstr "Kvadrat ali pravokotnik (lahko ima zaokrožene robove)"
 
-#: ../data/glade/template-designer.glade.h:52
+#: ../data/ui/template-designer.ui.h:52
 msgid "Round"
 msgstr "Krog"
 
-#: ../data/glade/template-designer.glade.h:53
+#: ../data/ui/template-designer.ui.h:53
 msgid ""
 "Templates needing\n"
 "two layouts."
@@ -2061,7 +2413,7 @@ msgstr ""
 "Predloge z \n"
 "dvema razporeditvama."
 
-#: ../data/glade/template-designer.glade.h:55
+#: ../data/ui/template-designer.ui.h:55
 msgid ""
 "Templates needing only\n"
 "one layout."
@@ -2069,11 +2421,11 @@ msgstr ""
 "Predloge z le\n"
 "eno razporeditvijo."
 
-#: ../data/glade/template-designer.glade.h:57
+#: ../data/ui/template-designer.ui.h:57
 msgid "Vertical pitch (dy):"
 msgstr "Navpična razdalja (dy):"
 
-#: ../data/glade/template-designer.glade.h:58
+#: ../data/ui/template-designer.ui.h:58
 msgid ""
 "Welcome to the gLabels Template Designer.\n"
 "\n"
@@ -2083,390 +2435,444 @@ msgstr ""
 "\n"
 "To pogovorno okno vam bo pomagalo pri ustvarjanju predloge gLables po meri."
 
-#: ../data/glade/template-designer.glade.h:62
-msgid "cd_size_page"
-msgstr "stran_velikosti_cd"
-
-#: ../data/glade/template-designer.glade.h:63
-msgid "finish_page"
-msgstr "končna_stran"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:1
+msgid "Collate"
+msgstr "Zberi"
 
-#: ../data/glade/template-designer.glade.h:65
-msgid "layout_page"
-msgstr "razporeditvena_stran"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:2
+msgid "Copies"
+msgstr "Kopije"
 
-#: ../data/glade/template-designer.glade.h:66
-msgid "name_page"
-msgstr "ime_strani"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:3
+msgid "Copies:"
+msgstr "Kopije:"
 
-#: ../data/glade/template-designer.glade.h:67
-msgid "nlayouts_page"
-msgstr "št_razporeditev_stran"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:5
+msgid "Merge Control"
+msgstr "Nadzor združevanja"
 
-#: ../data/glade/template-designer.glade.h:68
-msgid "pg_size_page"
-msgstr "stran_velikosti_strani"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:6
+msgid "Options"
+msgstr "Možnosti"
 
-#: ../data/glade/template-designer.glade.h:69
-msgid "rect_size_page"
-msgstr "pravokotna_stran"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:7
+msgid "Sheets:"
+msgstr "Listi:"
 
-#: ../data/glade/template-designer.glade.h:70
-msgid "round_size_page"
-msgstr "okrogla_stran"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:8
+msgid "Start on label"
+msgstr "Začni na nalepki"
 
-#: ../data/glade/template-designer.glade.h:71
-msgid "shape_page"
-msgstr "oblikovna_stran"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:9
+msgid "from:"
+msgstr "od:"
 
-#: ../data/glade/template-designer.glade.h:72
-msgid "start_page"
-msgstr "začetna_sran"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:10
+msgid "on 1st sheet"
+msgstr "na prvem listu"
 
-#: ../data/glade/wdgt-media-select.glade.h:1
-msgid "Brand:"
-msgstr "Znamka:"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:14
+msgid "to:"
+msgstr "za:"
 
-#: ../data/glade/wdgt-media-select.glade.h:2
-msgid "Category:"
-msgstr "Kategorija:"
+#: ../data/desktop/glabels-3.0.desktop.in.h:1
+msgid "Create labels, business cards and media covers"
+msgstr "Ustvarjanje nalepk, poslovnih vizitk in medijskih platnic"
 
-#: ../data/glade/wdgt-media-select.glade.h:4
-msgid "Recent templates"
-msgstr "Nedavne predloge"
+#: ../data/desktop/glabels-3.0.desktop.in.h:2
+msgid "gLabels Label Designer 3"
+msgstr "snovalnik nalepk gLabels 3"
 
-#: ../data/glade/wdgt-media-select.glade.h:5
-msgid "Search all templates"
-msgstr "Išči po vseh predlogah"
+#: ../data/mime/glabels-3.0.xml.in.h:1
+msgid "gLabels Project File"
+msgstr "Datoteka projekta gLabels"
 
-#: ../data/glade/wdgt-rotate-label.glade.h:1
-msgid "Rotate"
-msgstr "Zavrti"
+#. Envelopes
+#: ../templates/paper-sizes.xml.h:2
+msgid "#10 Envelope"
+msgstr "Ovojnica št. 10"
 
 #. Other ISO A series sizes
-#: ../data/templates/paper-sizes.xml.h:2
+#: ../templates/paper-sizes.xml.h:4
 msgid "A0"
 msgstr "A0"
 
-#: ../data/templates/paper-sizes.xml.h:3
+#: ../templates/paper-sizes.xml.h:5
 msgid "A1"
 msgstr "A1"
 
-#: ../data/templates/paper-sizes.xml.h:4
+#: ../templates/paper-sizes.xml.h:6
 msgid "A10"
 msgstr "A10"
 
-#: ../data/templates/paper-sizes.xml.h:5
+#: ../templates/paper-sizes.xml.h:7
 msgid "A2"
 msgstr "A2"
 
-#: ../data/templates/paper-sizes.xml.h:6
+#: ../templates/paper-sizes.xml.h:8
 msgid "A3"
 msgstr "A3"
 
-#: ../data/templates/paper-sizes.xml.h:7
+#. Most popular (at top of list)
+#: ../templates/paper-sizes.xml.h:10
 msgid "A4"
 msgstr "A4"
 
-#: ../data/templates/paper-sizes.xml.h:8
+#: ../templates/paper-sizes.xml.h:11
 msgid "A5"
 msgstr "A5"
 
-#: ../data/templates/paper-sizes.xml.h:9
+#: ../templates/paper-sizes.xml.h:12
 msgid "A6"
 msgstr "A6"
 
-#: ../data/templates/paper-sizes.xml.h:10
+#: ../templates/paper-sizes.xml.h:13
 msgid "A7"
 msgstr "A7"
 
-#: ../data/templates/paper-sizes.xml.h:11
+#: ../templates/paper-sizes.xml.h:14
 msgid "A8"
 msgstr "A8"
 
-#: ../data/templates/paper-sizes.xml.h:12
+#: ../templates/paper-sizes.xml.h:15
 msgid "A9"
 msgstr "A9"
 
 #. ISO B series sizes
-#: ../data/templates/paper-sizes.xml.h:14
+#: ../templates/paper-sizes.xml.h:17
 msgid "B0"
 msgstr "B0"
 
-#: ../data/templates/paper-sizes.xml.h:15
+#: ../templates/paper-sizes.xml.h:18
 msgid "B1"
 msgstr "B1"
 
-#: ../data/templates/paper-sizes.xml.h:16
+#: ../templates/paper-sizes.xml.h:19
 msgid "B10"
 msgstr "B10"
 
-#: ../data/templates/paper-sizes.xml.h:17
+#: ../templates/paper-sizes.xml.h:20
 msgid "B2"
 msgstr "B2"
 
-#: ../data/templates/paper-sizes.xml.h:18
+#: ../templates/paper-sizes.xml.h:21
 msgid "B3"
 msgstr "B3"
 
-#: ../data/templates/paper-sizes.xml.h:19
+#: ../templates/paper-sizes.xml.h:22
 msgid "B4"
 msgstr "B4"
 
-#: ../data/templates/paper-sizes.xml.h:20
+#: ../templates/paper-sizes.xml.h:23
 msgid "B5"
 msgstr "B5"
 
-#: ../data/templates/paper-sizes.xml.h:21
+#: ../templates/paper-sizes.xml.h:24
 msgid "B6"
 msgstr "B6"
 
-#: ../data/templates/paper-sizes.xml.h:22
+#: ../templates/paper-sizes.xml.h:25
 msgid "B7"
 msgstr "B7"
 
-#: ../data/templates/paper-sizes.xml.h:23
+#: ../templates/paper-sizes.xml.h:26
 msgid "B8"
 msgstr "B8"
 
-#: ../data/templates/paper-sizes.xml.h:24
+#: ../templates/paper-sizes.xml.h:27
 msgid "B9"
 msgstr "B9"
 
-#: ../data/templates/paper-sizes.xml.h:25
+#: ../templates/paper-sizes.xml.h:28
+msgid "C5"
+msgstr "C5"
+
+#: ../templates/paper-sizes.xml.h:29
+msgid "C6"
+msgstr "C6"
+
+#: ../templates/paper-sizes.xml.h:30
+msgid "DL"
+msgstr "DL"
+
+#: ../templates/paper-sizes.xml.h:31
+msgid "Monarch Envelope"
+msgstr "Ovojnica Monarch"
+
+#: ../templates/paper-sizes.xml.h:32
 msgid "US Executive"
 msgstr "Ameriška izvršilna"
 
 #. Other US paper sizes
-#: ../data/templates/paper-sizes.xml.h:27
+#: ../templates/paper-sizes.xml.h:34
 msgid "US Legal"
 msgstr "Ameriška pravna"
 
-#: ../data/templates/categories.xml.h:1
+#: ../templates/categories.xml.h:1
 msgid "Any card"
-msgstr "Katerakoli vizika"
+msgstr "Katerakoli vizitka"
 
-#: ../data/templates/categories.xml.h:2
+#: ../templates/categories.xml.h:2
 msgid "Any label"
 msgstr "Katerakoli nalepka"
 
-#: ../data/templates/categories.xml.h:3
+#. ===================================================================
+#: ../templates/categories.xml.h:3
+#: ../templates/pearl-iso-templates.xml.h:8
 msgid "Business cards"
 msgstr "Poslovne nalepke"
 
-#: ../data/templates/categories.xml.h:4
+#: ../templates/categories.xml.h:4
 msgid "CD/DVD or other media"
 msgstr "CD/DVD ali drugi mediji"
 
-#: ../data/templates/categories.xml.h:5
+#: ../templates/categories.xml.h:5
 msgid "Mailing/shipping products"
 msgstr "Pošiljanje izdelkov po pošti"
 
-#: ../data/templates/categories.xml.h:6
+#: ../templates/categories.xml.h:6
 msgid "Rectangular labels"
 msgstr "Pravokotne nalepke"
 
-#: ../data/templates/categories.xml.h:7
+#. ===================================================================
+#: ../templates/categories.xml.h:7
+#: ../templates/pearl-iso-templates.xml.h:52
 msgid "Round labels"
 msgstr "Okrogle nalepke"
 
-#: ../data/templates/categories.xml.h:8
+#: ../templates/categories.xml.h:8
 msgid "Square labels"
 msgstr "Kvadratne nalepke"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:2
-#: ../data/templates/avery-us-templates.xml.h:2
-#: ../data/templates/dymo-other-templates.xml.h:4
-#: ../data/templates/misc-iso-templates.xml.h:2
-#: ../data/templates/zweckform-iso-templates.xml.h:2
-msgid "Address Labels"
-msgstr "Nalepke naslovov"
-
+#. ********************************************************************
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:4
-msgid "Address labels"
+#: ../templates/avery-us-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:2
+#: ../templates/dymo-other-templates.xml.h:4
+#: ../templates/maco-us-templates.xml.h:2
+#: ../templates/misc-iso-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:1
+#: ../templates/zweckform-iso-templates.xml.h:2
+msgid "Address Labels"
 msgstr "Nalepke naslovov"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:6
-msgid "Allround labels"
-msgstr "Vsestranske nalepke"
-
 #. ============================================================
 #. ===================================================================
 #. ********************************************************************
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:8
-#: ../data/templates/avery-us-templates.xml.h:4
-#: ../data/templates/misc-iso-templates.xml.h:12
-#: ../data/templates/misc-us-templates.xml.h:4
-#: ../data/templates/zweckform-iso-templates.xml.h:6
+#: ../templates/avery-us-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:8
+#: ../templates/misc-us-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:6
 msgid "Business Cards"
 msgstr "Poslovne vizitke"
 
-#. ===============================================================
-#: ../data/templates/avery-iso-templates.xml.h:10
-msgid "CD Booklet"
-msgstr "CD polica"
-
-#. ===============================================================
-#: ../data/templates/avery-iso-templates.xml.h:12
-msgid "CD Inlet"
-msgstr "Robovi CD"
-
+#. ===================================================================
 #. ===============================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:14
-#: ../data/templates/avery-us-templates.xml.h:6
-#: ../data/templates/misc-iso-templates.xml.h:16
-#: ../data/templates/misc-us-templates.xml.h:8
-#: ../data/templates/zweckform-iso-templates.xml.h:8
+#: ../templates/avery-us-templates.xml.h:6
+#: ../templates/avery-iso-templates.xml.h:14
+#: ../templates/misc-us-templates.xml.h:8
+#: ../templates/misc-iso-templates.xml.h:16
+#: ../templates/pearl-iso-templates.xml.h:24
+#: ../templates/worldlabel-us-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:8
 msgid "CD/DVD Labels"
 msgstr "CD/DVD nalepke"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:16
-#: ../data/templates/avery-us-templates.xml.h:12
-msgid "Diskette Labels"
-msgstr "Nalepke disket"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:18
-msgid "Diskette labels"
-msgstr "Nalepke disket"
-
-#. ===============================================================
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:20
-#: ../data/templates/misc-iso-templates.xml.h:36
-#: ../data/templates/misc-us-templates.xml.h:20
-#: ../data/templates/zweckform-iso-templates.xml.h:16
-msgid "Mailing Labels"
-msgstr "Poštne nalepke"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:22
-msgid "Mailing labels"
-msgstr "Poštne nalepke"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:24
-msgid "Mini Address Labels"
-msgstr "Mini nalepke naslovov"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:26
-msgid "Mini Labels"
-msgstr "Mini nalepke"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:28
-msgid "Shipping labels"
-msgstr "Nalepke pošiljanja"
-
-#. ===================================================================
-#: ../data/templates/avery-other-templates.xml.h:2
-msgid "File Folder Labels"
-msgstr "Nalepke map z datotekami"
-
-#. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:8
+#: ../templates/avery-us-templates.xml.h:8
 msgid "CD/DVD Labels (Disc Labels)"
 msgstr "CD/DVD nalepke (nalepke diska)"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:10
+#: ../templates/avery-us-templates.xml.h:10
 msgid "CD/DVD Labels (Spine Labels)"
 msgstr "CD/DVD nalepke (nalepke robov)"
 
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:12
+#: ../templates/avery-iso-templates.xml.h:16
+#: ../templates/worldlabel-us-templates.xml.h:3
+msgid "Diskette Labels"
+msgstr "Nalepke disket"
+
 #. the LSK labels can be torn in half down the center
-#: ../data/templates/avery-us-templates.xml.h:14
+#: ../templates/avery-us-templates.xml.h:14
 msgid "Divider Labels"
 msgstr "Nalepke ločilnikov"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:16
+#: ../templates/avery-us-templates.xml.h:16
+#: ../templates/avery-other-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:4
+msgid "File Folder Labels"
+msgstr "Nalepke map z datotekami"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:5
 msgid "Filing Labels"
 msgstr "Nalepke kartotek"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:18
+#: ../templates/avery-us-templates.xml.h:20
+#: ../templates/worldlabel-us-templates.xml.h:6
 msgid "Full Sheet Labels"
 msgstr "Celostranske nalepke"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:20
+#: ../templates/avery-us-templates.xml.h:22
 msgid "ID Labels"
 msgstr "ID nalepke"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:22
+#: ../templates/avery-us-templates.xml.h:24
 msgid "Index Cards"
 msgstr "Kartice kazal"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:24
+#: ../templates/avery-us-templates.xml.h:26
 msgid "Large Round Labels"
 msgstr "Velike okrogle nalepke"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:26
+#: ../templates/avery-us-templates.xml.h:28
 msgid "Name Badge Labels"
 msgstr "Nalepke z imeni"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:28
+#: ../templates/avery-us-templates.xml.h:30
 msgid "Post cards"
 msgstr "Razglednice"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:30
-#: ../data/templates/dymo-other-templates.xml.h:12
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:32
+#: ../templates/dymo-other-templates.xml.h:12
+#: ../templates/worldlabel-us-templates.xml.h:8
 msgid "Return Address Labels"
 msgstr "Nalepke za naslov vračila"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:32
-#: ../data/templates/misc-us-templates.xml.h:30
+#: ../templates/avery-us-templates.xml.h:34
+#: ../templates/maco-us-templates.xml.h:3
+#: ../templates/misc-us-templates.xml.h:30
+#: ../templates/worldlabel-us-templates.xml.h:9
 msgid "Round Labels"
 msgstr "Okrogle nalepke"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:34
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:36
+#: ../templates/uline-us-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:10
 msgid "Shipping Labels"
 msgstr "Nalepke pošiljanja"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:36
+#: ../templates/avery-us-templates.xml.h:38
 msgid "Small Round Labels"
 msgstr "Majhne okrogle nalepke"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:38
+#: ../templates/avery-us-templates.xml.h:40
 msgid "Square Labels"
 msgstr "Kvadratne nalepke"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:40
+#: ../templates/avery-us-templates.xml.h:42
 msgid "Tent Cards"
 msgstr "Karte za šotorjenje"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:42
+#: ../templates/avery-us-templates.xml.h:44
+#: ../templates/worldlabel-us-templates.xml.h:11
 msgid "Video Tape Face Labels"
 msgstr "Nalepke ploskev video kaset"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:44
+#: ../templates/avery-us-templates.xml.h:46
+#: ../templates/worldlabel-us-templates.xml.h:12
 msgid "Video Tape Spine Labels"
 msgstr "Nalepke robov video kaset"
 
-#: ../data/templates/brother-other-templates.xml.h:1
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:4
+msgid "Address labels"
+msgstr "Nalepke naslovov"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:6
+msgid "Allround labels"
+msgstr "Vsestranske nalepke"
+
+#. ===============================================================
+#: ../templates/avery-iso-templates.xml.h:10
+msgid "CD Booklet"
+msgstr "CD polica"
+
+#. ===============================================================
+#: ../templates/avery-iso-templates.xml.h:12
+msgid "CD Inlet"
+msgstr "Robovi CD"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:18
+msgid "Diskette labels"
+msgstr "Nalepke disket"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:20
+msgid "Identification Labels"
+msgstr "Identifikacijske nalepke"
+
+#. ===============================================================
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:22
+#: ../templates/misc-us-templates.xml.h:20
+#: ../templates/misc-iso-templates.xml.h:36
+#: ../templates/zweckform-iso-templates.xml.h:16
+msgid "Mailing Labels"
+msgstr "Poštne nalepke"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:24
+msgid "Mailing labels"
+msgstr "Poštne nalepke"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:26
+msgid "Mini Address Labels"
+msgstr "Mini nalepke naslovov"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:28
+msgid "Mini Labels"
+msgstr "Mini nalepke"
+
+#. ============================================================
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:30
+#: ../templates/misc-iso-templates.xml.h:44
+#: ../templates/zweckform-iso-templates.xml.h:24
+msgid "Rectangular Labels"
+msgstr "Pravokotne nalepke"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:32
+msgid "Shipping labels"
+msgstr "Nalepke pošiljanja"
+
+#: ../templates/brother-other-templates.xml.h:1
 msgid "Multi Purpose Labels 17mm x 54mm"
 msgstr "Večnamenske nalepke 17mm x 54mm"
 
-#: ../data/templates/brother-other-templates.xml.h:2
+#: ../templates/brother-other-templates.xml.h:2
 msgid "Shipping Labels 62mm x 100mm"
 msgstr "Nalepke pošiljanja 62mm x 100 mm"
 
@@ -2487,398 +2893,409 @@ msgstr "Nalepke pošiljanja 62mm x 100 mm"
 #. *********************************************************************
 #. *********************************************************************
 #.
-#: ../data/templates/brother-other-templates.xml.h:20
+#: ../templates/brother-other-templates.xml.h:20
 msgid "Standard Address Labels 29mm x 90mm"
-msgstr "Standardne nalepke naslovov 29mm x 90mm"
+msgstr "Običajne nalepke naslovov 29mm x 90mm"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:2
+#: ../templates/dymo-other-templates.xml.h:2
 msgid "3.5in Diskette"
 msgstr "3,5-palčna disketa"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:6
+#: ../templates/dymo-other-templates.xml.h:6
 msgid "File Folder"
 msgstr "Mapa z datotekami"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:8
+#: ../templates/dymo-other-templates.xml.h:8
 msgid "Hanging Folder"
 msgstr "Izročna mapa"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:10
+#: ../templates/dymo-other-templates.xml.h:10
 msgid "Large Address Labels"
 msgstr "Velike nalepke naslovov"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:14
+#: ../templates/dymo-other-templates.xml.h:14
 msgid "Shipping Address Labels"
 msgstr "Nalepke naslova pošiljanja"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:4
-#: ../data/templates/zweckform-iso-templates.xml.h:4
+#: ../templates/misc-us-templates.xml.h:2
+msgid "Business Card CD"
+msgstr "CD poslovne vizitke"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:6
+msgid "CD Template Rectangles"
+msgstr "Pravokotne CD predloge"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:10
+msgid "CD/DVD Labels (Face Only)"
+msgstr "CD/DVD nalepke (le ploskev)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:12
+#: ../templates/misc-iso-templates.xml.h:18
+msgid "CD/DVD Labels (face only)"
+msgstr "CD/DVD nalepke (le ploskev)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:14
+msgid "Cassette Labels"
+msgstr "Nalepke kaset"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:16
+msgid "DLT Labels"
+msgstr "Nalepke DLT"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:18
+msgid "Jewel Case Booklet"
+msgstr "Knjižica škatlice z dragulji"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:22
+msgid "Microtube labels"
+msgstr "Nalepke Microtube"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:24
+msgid "Mini-CD Labels"
+msgstr "Nalepke mini CD-jev"
+
+#: ../templates/misc-us-templates.xml.h:25
+msgid "PRO CD Labels 2-up (CD spine only)"
+msgstr "PRO CD nalepke 2-up (le rob CD)"
+
+#: ../templates/misc-us-templates.xml.h:26
+msgid "PRO CD Labels 2-up (Face only)"
+msgstr "PRO CD nalepke 2-up (le ploskev)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:42
+msgid "PRO CD Labels 2-up (face only)"
+msgstr "PRO CD nalepke 2-up (le ploskev)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:32
+msgid "Slimline CD Case (rightside up)"
+msgstr "Ozko CD ohišje (od desne navzgor)"
+
+#: ../templates/misc-us-templates.xml.h:33
+msgid "Slimline CD Case (upside down)"
+msgstr "Ozko CD ohišje (od zgoraj navzdol)"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:4
+#: ../templates/zweckform-iso-templates.xml.h:4
 msgid "Allround Labels"
 msgstr "Različne nalepke"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:6
+#: ../templates/misc-iso-templates.xml.h:6
 msgid "Arch File Labels"
 msgstr "Nalepke datotek arhiva"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:8
+#: ../templates/misc-iso-templates.xml.h:8
 msgid "Arch File Labels (large)"
 msgstr "Nalepke datotek arhiva (velike)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:10
+#: ../templates/misc-iso-templates.xml.h:10
 msgid "Arch File Labels (small)"
 msgstr "Nalepke datotek arhiva (majhne)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:14
+#: ../templates/misc-iso-templates.xml.h:14
 msgid "CD Labels"
 msgstr "CD nalepke"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:18
-#: ../data/templates/misc-us-templates.xml.h:12
-msgid "CD/DVD Labels (face only)"
-msgstr "CD/DVD nalepke (le ploskev)"
-
-#. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:20
+#: ../templates/misc-iso-templates.xml.h:20
 msgid "CD/DVD Labels Standard Format (face only)"
 msgstr "Običajna oblika CD/DVD nalepk (le ploskev)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:22
+#: ../templates/misc-iso-templates.xml.h:22
 msgid "Diskette Labels (face only)"
 msgstr "Nalepke disket (le ploskev)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:24
+#: ../templates/misc-iso-templates.xml.h:24
 msgid "EPSON Photo Stickers 16"
 msgstr "Foto nalepke EPSON 16"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:26
+#: ../templates/misc-iso-templates.xml.h:26
 msgid "Etiketten"
 msgstr "Nalepke"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:28
 msgid "Fridge Magnet Stickers"
 msgstr "Nalepke magnetov za na hladilnik"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:30
+#: ../templates/misc-iso-templates.xml.h:30
 msgid "General Labels"
 msgstr "Splošne nalepke"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:32
+#: ../templates/misc-iso-templates.xml.h:32
 msgid "Inkjet/Laser Labels 70x37mm"
 msgstr "Nalepke črnila/laserja 70x37mm"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:38
+#: ../templates/misc-iso-templates.xml.h:38
 msgid "Mailing Labels-2 columns"
 msgstr "Poštne nalepke - 2 stolpca"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:40
+#: ../templates/misc-iso-templates.xml.h:40
 msgid "Mailing Labels-3 columns"
 msgstr "Poštne nalepke - 3 stolpci"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:42
-#: ../data/templates/misc-us-templates.xml.h:28
-msgid "PRO CD Labels 2-up (face only)"
-msgstr "PRO CD nalepke 2-up (le ploskev)"
-
-#. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:44
-#: ../data/templates/zweckform-iso-templates.xml.h:24
-msgid "Rectangular Labels"
-msgstr "Pravokotne nalepke"
+#: ../templates/misc-iso-templates.xml.h:46
+#: ../templates/pearl-iso-templates.xml.h:60
+msgid "Self-adhesive labels"
+msgstr "Samolepilne nalepke"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:46
+#: ../templates/misc-iso-templates.xml.h:48
 msgid "Universal Labels"
-msgstr "Splošne oznake"
+msgstr "Splošne nalepke"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:48
+#: ../templates/misc-iso-templates.xml.h:50
 msgid "Video Labels (face only)"
 msgstr "Video nalepke (le ploskev)"
 
 #. ===================================================================
-#: ../data/templates/misc-other-templates.xml.h:2
+#: ../templates/misc-other-templates.xml.h:2
 msgid "Multi-Purpose Labels"
 msgstr "Večnamenske nalepke"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:2
-msgid "Business Card CD"
-msgstr "CD poslovne vizitke"
+#: ../templates/pearl-iso-templates.xml.h:4
+msgid "Address Labels (STAMPIT)"
+msgstr "Nalepke naslovov (STAMPIT)"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:6
-msgid "CD Template Rectangles"
-msgstr "Pravokotne CD predloge"
+#: ../templates/pearl-iso-templates.xml.h:6
+msgid "Bottle labels"
+msgstr "Nalepke steklenic"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:10
-msgid "CD/DVD Labels (Face Only)"
-msgstr "CD/DVD nalepke (le ploskev)"
+#: ../templates/pearl-iso-templates.xml.h:10
+msgid "Business cards glossy, both sides printable"
+msgstr "Blesteče poslovne vizite, tisk na obeh straneh"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:14
-msgid "Cassette Labels"
-msgstr "Nalepke kaset"
+#: ../templates/pearl-iso-templates.xml.h:12
+msgid "Business cards high glossy"
+msgstr "Visoko blesteče poslovne vizitke"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:16
-msgid "DLT Labels"
-msgstr "Nalepke DLT"
+#: ../templates/pearl-iso-templates.xml.h:14
+msgid "Business cards punched"
+msgstr "Preluknjane poslovne vizitke"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:18
-msgid "Jewel Case Booklet"
-msgstr "Knjižica škatlice z dragulji"
+#: ../templates/pearl-iso-templates.xml.h:16
+msgid "Business cards punched dull"
+msgstr "Preluknjane mračne poslovne vizike "
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:22
-msgid "Microtube labels"
-msgstr "Nalepke Microtube"
+#: ../templates/pearl-iso-templates.xml.h:18
+msgid "Business cards punched glossy"
+msgstr "Preluknjane blesteče poslovne vizitke"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:24
-msgid "Mini-CD Labels"
-msgstr "Nalepke mini CD-jev"
+#: ../templates/pearl-iso-templates.xml.h:20
+msgid "CD inlet (back)"
+msgstr "Robovi CD (zadaj)"
 
-#: ../data/templates/misc-us-templates.xml.h:25
-msgid "PRO CD Labels 2-up (CD spine only)"
-msgstr "PRO CD nalepke 2-up (le rob CD)"
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:22
+msgid "CD inlet (front)"
+msgstr "Robovi CD (spredaj)"
 
-#: ../data/templates/misc-us-templates.xml.h:26
-msgid "PRO CD Labels 2-up (Face only)"
-msgstr "PRO CD nalepke 2-up (le ploskev)"
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:26
+msgid "DVD inlet"
+msgstr "Robovi DVD"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:32
-msgid "Slimline CD Case (rightside up)"
-msgstr "Ozko CD ohišje (od desne navzgor)"
+#: ../templates/pearl-iso-templates.xml.h:28
+msgid "Floppy disk labels"
+msgstr "Nalepke disket"
 
-#: ../data/templates/misc-us-templates.xml.h:33
-msgid "Slimline CD Case (upside down)"
-msgstr "Ozko CD ohišje (od zgoraj navzdol)"
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:30
+msgid "Foldable business cards"
+msgstr "Prepogljive poslovne vizitke"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:32
+msgid "Foldable business cards glossy/dull"
+msgstr "Prepogljive poslovne vizitke blesteče/mračne"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:34
+msgid "Labels A4"
+msgstr "Nalepke A4"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:36
+msgid "Labels A5"
+msgstr "Nalepke A5"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:38
+msgid "Labels A6"
+msgstr "Nalepke A6"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:40
+msgid "Membership cards"
+msgstr "Članske kartice"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:42
+msgid "Membership cards, both sides printable"
+msgstr "Članske kartice, tisk na obeh straneh "
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:44
+msgid "Name plates"
+msgstr "Kartice z imeni"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:46
+msgid "Passport photo labels glossy"
+msgstr "Blesteče nalepke fotografij potnega lista"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:48
+msgid "Photo labels"
+msgstr "Nalepke fotografij"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:50
+msgid "Photo labels semiglossy"
+msgstr "Pol blesteče nalepke fotografij"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:10
+#: ../templates/pearl-iso-templates.xml.h:54
+msgid "SD card labels"
+msgstr "Nalepke kartic CD"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:56
+msgid "Self-adhesive film transparent"
+msgstr "Samolepilni prozoren film"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:58
+msgid "Self-adhesive film weatherproof"
+msgstr "Samolepilni vremensko odporni film"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:62
+msgid "Self-adhesive window film"
+msgstr "Samolepilni okenski film"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:10
 msgid "Correction and Cover-up Labels"
 msgstr "Nalepke popravljanja in prekrivanja"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:12
 msgid "File Back Labels"
 msgstr "Nalepke predalnikov"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:14
+#: ../templates/zweckform-iso-templates.xml.h:14
 msgid "Lever Arch File Labels"
 msgstr "Nalepke arhivskih datotek"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:18
+#: ../templates/zweckform-iso-templates.xml.h:18
 msgid "Multi-purpose Stick+Lift Labels"
 msgstr "Večnamenske odstranljive lepljive nalepke"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:20
+#: ../templates/zweckform-iso-templates.xml.h:20
 msgid "QSL-Karten Etiketten 70mm x 50,8mm"
 msgstr "Nalepke QSL-kart 70mm x 50,8 mm"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:22
+#: ../templates/zweckform-iso-templates.xml.h:22
 msgid "Rectangular Copier Labels"
 msgstr "Pravokotne kopirne nalepke"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:26
+#: ../templates/zweckform-iso-templates.xml.h:26
 msgid "Video Labels (back)"
 msgstr "Video nalepke (zadnja stran)"
 
-#: ../data/desktop/glabels.desktop.in.h:1
-msgid "Create labels, business cards and media covers"
-msgstr "Ustvarjanje nalepk, poslovnih vizitk in medijskih platnic"
-
-#: ../data/desktop/glabels.desktop.in.h:2
-msgid "gLabels Label Designer"
-msgstr "gLabels snovalnik nalepk"
-
-#: ../data/mime/glabels.keys.in.h:1
-#: ../data/mime/glabels.xml.in.h:1
-msgid "gLabels Project File"
-msgstr "Datoteka projekta gLabels"
-
-#: ../barcode-0.98/compat/getopt.c:583
-#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: možnost `%s' je dvoumna\n"
-
-#: ../barcode-0.98/compat/getopt.c:607
-#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: možnost `--%s' ne dovoli argumenta\n"
-
-#: ../barcode-0.98/compat/getopt.c:612
-#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: možnost `%c%s' ne dovoli argumenta\n"
-
-#: ../barcode-0.98/compat/getopt.c:629
-#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s: možnost `%s' zahteva argument\n"
-
-#. --option
-#: ../barcode-0.98/compat/getopt.c:658
-#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: nepoznana možnost `--%s'\n"
-
-#. +option or -option
-#: ../barcode-0.98/compat/getopt.c:662
-#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: nepoznana možnost `%c%s'\n"
-
-#. 1003.2 specifies the format of this message.
-#: ../barcode-0.98/compat/getopt.c:688
-#, c-format
-msgid "%s: illegal option -- %c\n"
-msgstr "%s: neveljavna možnost -- %c\n"
-
-#: ../barcode-0.98/compat/getopt.c:691
-#, c-format
-msgid "%s: invalid option -- %c\n"
-msgstr "%s: neveljavna možnost -- %c\n"
-
-#: ../barcode-0.98/compat/getopt.c:727
-#, c-format
-msgid "%s: option requires an argument -- %c\n"
-msgstr "%s: možnost zahteva argument -- %c\n"
-
-#~ msgid "Code 93"
-#~ msgstr "Koda 93"
-#~ msgid "IEC18004 (QRCode)"
-#~ msgstr "IEC18004 (QRKoda)"
-#~ msgid "Default Color"
-#~ msgstr "Privzeta barva"
-#~ msgid "Brown"
-#~ msgstr "Rjava"
-#~ msgid "Dark Goldenrod"
-#~ msgstr "Temna zlata palica"
-#~ msgid "Dark Cyan"
-#~ msgstr "Temno sinja"
-#~ msgid "Navy Blue"
-#~ msgstr "Mornarsko modra"
-#~ msgid "Dark Yellow"
-#~ msgstr "Temno rumena"
-#~ msgid "Turquoise"
-#~ msgstr "Turkizna"
-#~ msgid "Salmon"
-#~ msgstr "Lososova"
-#~ msgid "Violet"
-#~ msgstr "Vijolična"
-#~ msgid "Khaki"
-#~ msgstr "Kakijeva"
-#~ msgid "Slate Gray"
-#~ msgstr "Skrilavčno siva"
-#~ msgid "Thistle"
-#~ msgstr "Osatna"
-#~ msgid "10\\% Gray"
-#~ msgstr "10\\% Siva"
-#~ msgid "25\\% Gray"
-#~ msgstr "25\\% Siva"
-#~ msgid "40\\% Gray"
-#~ msgstr "40\\% Siva"
-#~ msgid "50\\% Gray"
-#~ msgstr "50\\% Siva"
-#~ msgid "60\\% Gray"
-#~ msgstr "60\\% siva"
-#~ msgid "Custom Color #%u"
-#~ msgstr "Barva po meri #%u"
-#~ msgid "Recent fonts"
-#~ msgstr "Nedavne pisave"
-#~ msgid "Proportional fonts"
-#~ msgstr "Sorazmerne pisave"
-#~ msgid "Fixed-width fonts"
-#~ msgstr "Pisave stalne širine"
-#~ msgid "All fonts"
-#~ msgstr "Vse pisave"
-#~ msgctxt "Short sample text"
-#~ msgid "Aa"
-#~ msgstr "Aa"
-#~ msgctxt "Lower case sample text"
-#~ msgid "abcdefghijklmnopqrstuvwxyz"
-#~ msgstr "abcčdefghijklmnoprsštuvzž"
-#~ msgctxt "Upper case sample text"
-#~ msgid "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
-#~ msgstr "ABCČDEFGHIJKLMNOPRSŠTUVZŽ"
-#~ msgctxt "Numbers and special characters sample text"
-#~ msgid "0123456789 .:,;(*!?)"
-#~ msgstr "0123456789 .:,;(*!?)"
-#~ msgid "Sample text"
-#~ msgstr "Vzorčno besedilo"
-#~ msgid "Print files created with gLabels."
-#~ msgstr "Tiskanje datotek ustvarjenih z gLables."
-#~ msgid ""
-#~ "%s\n"
-#~ "Run '%s --help' to see a full list of available command line options.\n"
-#~ msgstr ""
-#~ "%s\n"
-#~ "Zaženite '%s --help' za ogled celotnega seznama razpoložljivih možnosti "
-#~ "ukazne vrstice.\n"
-#~ msgid "Launch gLabels label and business card designer."
-#~ msgstr "Zagon snovalnika nalepk in poslovnih vizitk gLabels. "
-#~ msgid "Text: Comma Separated Values (CSV)"
-#~ msgstr "Besedilo: Z vejico ločene vrednosti (CSV)"
-#~ msgid "Text: Comma Separated Values (CSV) with keys on line 1"
-#~ msgstr "Besedilo: z vejico ločene vrednosti (CSV) s ključi v prvi vrstici"
-#~ msgid "Text: Tab Separated Values (TSV)"
-#~ msgstr "Besedilo: s tabulatorjem ločene vrednosti (TSV)"
-#~ msgid "Text: Tab Separated Values (TSV) with keys on line 1"
-#~ msgstr ""
-#~ "Besedilo: s tabulatorjem ločene vrednosti (TSV) s ključi v prvi vrstici"
-#~ msgid "Text: Colon separated values"
-#~ msgstr "Besedilo: z dvopičjem ločene vrednosti"
-#~ msgid "Text: Colon separated values with keys on line 1"
-#~ msgstr "Besedilo: z dvopičjem ločene vrednosti s ključi v prvi vrstici"
-
-#, fuzzy
-#~ msgid "VCards"
-#~ msgstr "Vizitk vCard v besedilu"
-#~ msgid "Normal"
-#~ msgstr "Običajna"
-#~ msgid "cm"
-#~ msgstr "cm"
-#~ msgid "picas"
-#~ msgstr "pic"
-#~ msgid "<b>Copies</b>"
-#~ msgstr "<b>Kopije</b>"
-#~ msgid "#10 Envelope"
-#~ msgstr "Ovojnica št. 10"
-#~ msgid "C5"
-#~ msgstr "C5"
-#~ msgid "C6"
-#~ msgstr "C6"
-#~ msgid "DL"
-#~ msgstr "DL"
-#~ msgid "Monarch Envelope"
-#~ msgstr "Ovojnica Monarch"
+#~ msgid "_Select Mode"
+#~ msgstr "_Način izbora"
+#~ msgid "_Text"
+#~ msgstr "_Besedilo"
+#~ msgid "_Line"
+#~ msgstr "Č_rta"
+#~ msgid "_Box"
+#~ msgstr "_Okvir"
+#~ msgid "_Ellipse"
+#~ msgstr "_Elipsa"
+#~ msgid "_Image"
+#~ msgstr "Sl_ika"
+#~ msgid "Bar_code"
+#~ msgstr "Črtna _koda"
+#~ msgid "_Merge Properties"
+#~ msgstr "_Združi lastnosti"
+#~ msgid "Object _Properties"
+#~ msgstr "Lastnosti _predmeta"
+#~ msgid "Bring to _Front"
+#~ msgstr "Prinesi v _ospredje"
+#~ msgid "Send to _Back"
+#~ msgstr "Pošlji _nazaj"
+#~ msgid "Rotate _Left"
+#~ msgstr "Zavrti _levo"
+#~ msgid "Rotate _Right"
+#~ msgstr "Zavrti _desno"
+#~ msgid "Flip _Horizontally"
+#~ msgstr "Zrcali _vodoravno"
+#~ msgid "Flip _Vertically"
+#~ msgstr "Zrcali _navpično"
+#~ msgid "_Lefts"
+#~ msgstr "_Levo"
+#~ msgid "_Rights"
+#~ msgstr "_Desno"
+#~ msgid "_Centers"
+#~ msgstr "_Središča"
+#~ msgid "_Tops"
+#~ msgstr "_Vrhovi"
+#~ msgid "Bottoms"
+#~ msgstr "Dna"
+#~ msgid "Centers"
+#~ msgstr "Središča"
+#~ msgid "Label Ce_nter"
+#~ msgstr "Sre_dišče nalepke"
+#~ msgid "Linked"
+#~ msgstr "Povezano"
+#~ msgid "Not Linked"
+#~ msgstr "Nepovezano"
+#~ msgid "glabels"
+#~ msgstr "glabels"
 
index 254761b530ffbf8ee1487fcbc3138520d14223f8..6b0b7a82666eb123455e4d220ee064162066dfa0 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
 # Swedish translation for glabels.
-# Copyright (C) 2009 Free Software Foundation, Inc.
+# Copyright (C) 2009, 2010 Free Software Foundation, Inc.
 # This file is distributed under the same license as the glabels package.
-# Daniel Nylander <po@danielnylander.se>, 2009.
+# Daniel Nylander <po@danielnylander.se>, 2009, 2010.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: glabels\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-11-04 06:28+0100\n"
-"PO-Revision-Date: 2009-11-04 06:37+0100\n"
+"POT-Creation-Date: 2010-10-25 21:02+0200\n"
+"PO-Revision-Date: 2010-10-25 21:06+0100\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
+"Language: sv\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/glabels.c:75
-#: ../src/glabels-batch.c:70
-msgid "[FILE...]"
-msgstr "[FIL...]"
-
-#: ../src/glabels.c:91
-msgid "- gLabels label designer"
-msgstr "- Etikettdesignern gLabels"
+#: ../src/bc-backends.c:82
+msgid "Built-in"
+msgstr ""
 
-#: ../src/glabels-batch.c:54
-msgid "set output filename (default=\"output.pdf\")"
+#: ../src/bc-backends.c:102
+msgid "POSTNET (any)"
 msgstr ""
 
-#: ../src/glabels-batch.c:54
-#: ../src/glabels-batch.c:68
-msgid "filename"
-msgstr "filnamn"
+#: ../src/bc-backends.c:105
+msgid "POSTNET-5 (ZIP only)"
+msgstr ""
 
-#: ../src/glabels-batch.c:56
-msgid "number of sheets (default=1)"
-msgstr "antal ark (standard=1)"
+#: ../src/bc-backends.c:108
+msgid "POSTNET-9 (ZIP+4)"
+msgstr ""
 
-#: ../src/glabels-batch.c:56
-msgid "sheets"
+#: ../src/bc-backends.c:111
+msgid "POSTNET-11 (DPBC)"
 msgstr ""
 
-#: ../src/glabels-batch.c:58
-msgid "number of copies (default=1)"
-msgstr "antal kopior (standard=1)"
+#: ../src/bc-backends.c:114
+msgid "CEPNET"
+msgstr "CEPNET"
 
-#: ../src/glabels-batch.c:58
-msgid "copies"
-msgstr "kopior"
+#: ../src/bc-backends.c:117
+msgid "One Code"
+msgstr ""
 
-#: ../src/glabels-batch.c:60
-msgid "first label on first sheet (default=1)"
+#: ../src/bc-backends.c:122
+msgid "EAN (any)"
 msgstr ""
 
-#: ../src/glabels-batch.c:60
-msgid "first"
+#: ../src/bc-backends.c:125
+msgid "EAN-8"
+msgstr "EAN-8"
+
+#: ../src/bc-backends.c:128
+msgid "EAN-8 +2"
+msgstr "EAN-8 +2"
+
+#: ../src/bc-backends.c:131
+msgid "EAN-8 +5"
+msgstr "EAN-8 +5"
+
+#: ../src/bc-backends.c:134
+msgid "EAN-13"
+msgstr "EAN-13"
+
+#: ../src/bc-backends.c:137
+msgid "EAN-13 +2"
+msgstr "EAN-13 +2"
+
+#: ../src/bc-backends.c:140
+msgid "EAN-13 +5"
+msgstr "EAN-13 +5"
+
+#: ../src/bc-backends.c:143
+msgid "UPC (UPC-A or UPC-E)"
+msgstr "UPC (UPC-A eller UPC-E)"
+
+#: ../src/bc-backends.c:146
+#: ../src/bc-backends.c:390
+msgid "UPC-A"
+msgstr "UPC-A"
+
+#: ../src/bc-backends.c:149
+msgid "UPC-A +2"
+msgstr "UPC-A +2"
+
+#: ../src/bc-backends.c:152
+msgid "UPC-A +5"
+msgstr "UPC-A +5"
+
+#: ../src/bc-backends.c:155
+#: ../src/bc-backends.c:393
+msgid "UPC-E"
+msgstr "UPC-E"
+
+#: ../src/bc-backends.c:158
+msgid "UPC-E +2"
+msgstr "UPC-E +2"
+
+#: ../src/bc-backends.c:161
+msgid "UPC-E +5"
+msgstr "UPC-E +5"
+
+#: ../src/bc-backends.c:164
+#: ../src/bc-backends.c:327
+msgid "ISBN"
+msgstr "ISBN"
+
+#: ../src/bc-backends.c:167
+msgid "ISBN +5"
+msgstr "ISBN +5"
+
+#: ../src/bc-backends.c:170
+#: ../src/bc-backends.c:243
+msgid "Code 39"
+msgstr "Code 39"
+
+#: ../src/bc-backends.c:173
+#: ../src/bc-backends.c:255
+msgid "Code 128"
+msgstr "Code 128"
+
+#: ../src/bc-backends.c:176
+msgid "Code 128C"
+msgstr "Code 128C"
+
+#: ../src/bc-backends.c:179
+msgid "Code 128B"
+msgstr "Code 128B"
+
+#: ../src/bc-backends.c:182
+#: ../src/bc-backends.c:324
+msgid "Interleaved 2 of 5"
 msgstr ""
 
-#: ../src/glabels-batch.c:62
-#: ../data/glade/print-custom-widget.glade.h:6
-msgid "print outlines (to test printer alignment)"
+#: ../src/bc-backends.c:185
+#: ../src/bc-backends.c:219
+msgid "Codabar"
+msgstr "Codabar"
+
+#: ../src/bc-backends.c:188
+msgid "MSI"
+msgstr "MSI"
+
+#: ../src/bc-backends.c:191
+msgid "Plessey"
+msgstr "Plessey"
+
+#: ../src/bc-backends.c:194
+#: ../src/bc-backends.c:252
+#, fuzzy
+msgid "Code 93"
+msgstr "Code 39"
+
+#: ../src/bc-backends.c:201
+msgid "Australia Post Standard"
 msgstr ""
 
-#: ../src/glabels-batch.c:64
-#: ../data/glade/print-custom-widget.glade.h:5
-msgid "print in reverse (i.e. a mirror image)"
+#: ../src/bc-backends.c:204
+msgid "Australia Post Reply Paid"
 msgstr ""
 
-#: ../src/glabels-batch.c:66
-#: ../data/glade/print-custom-widget.glade.h:4
-msgid "print crop marks"
-msgstr "skriv ut beskäringsmarkeringar"
+#: ../src/bc-backends.c:207
+msgid "Australia Post Route Code"
+msgstr ""
 
-#: ../src/glabels-batch.c:68
-msgid "input file for merging"
+#: ../src/bc-backends.c:210
+msgid "Australia Post Redirect"
 msgstr ""
 
-#: ../src/glabels-batch.c:96
-msgid "- batch process gLabels label files"
+#: ../src/bc-backends.c:213
+msgid "Aztec Code"
 msgstr ""
 
-#: ../src/glabels-batch.c:142
-#, c-format
-msgid "cannot perform document merge with glabels file %s\n"
+#: ../src/bc-backends.c:216
+msgid "Aztec Rune"
 msgstr ""
 
-#: ../src/glabels-batch.c:164
-#, c-format
-msgid "cannot open glabels file %s\n"
-msgstr "kan inte öppna glabels-filen %s\n"
+#: ../src/bc-backends.c:222
+#, fuzzy
+msgid "Code One"
+msgstr "Code 39"
 
-#: ../src/window.c:259
-msgid "(none) - gLabels"
-msgstr "(ingen) - gLabels"
+#: ../src/bc-backends.c:225
+#, fuzzy
+msgid "Code 11"
+msgstr "Code 128"
 
-#: ../src/window.c:432
-msgid "(modified)"
-msgstr "(ändrad)"
+#: ../src/bc-backends.c:228
+#, fuzzy
+msgid "Code 16K"
+msgstr "Code 128"
 
-#: ../src/stock.c:72
-msgid "_Select Mode"
+#: ../src/bc-backends.c:231
+msgid "Code 2 of 5 Matrix"
 msgstr ""
 
-#: ../src/stock.c:73
-msgid "_Text"
-msgstr "_Text"
+#: ../src/bc-backends.c:234
+msgid "Code 2 of 5 IATA"
+msgstr ""
 
-#: ../src/stock.c:74
-msgid "_Line"
-msgstr "_Linje"
+#: ../src/bc-backends.c:237
+msgid "Code 2 of 5 Data Logic"
+msgstr ""
 
-#: ../src/stock.c:75
-msgid "_Box"
-msgstr "_Rektangel"
+#: ../src/bc-backends.c:240
+msgid "Code 32 (Italian Pharmacode)"
+msgstr ""
 
-#: ../src/stock.c:76
-msgid "_Ellipse"
-msgstr "_Ellips"
+#: ../src/bc-backends.c:246
+#, fuzzy
+msgid "Code 39 Extended"
+msgstr "Code 39"
 
-#: ../src/stock.c:77
-msgid "_Image"
-msgstr "_Bild"
+#: ../src/bc-backends.c:249
+#, fuzzy
+msgid "Code 49"
+msgstr "Code 39"
 
-#: ../src/stock.c:78
-msgid "Bar_code"
-msgstr "Streck_kod"
+#: ../src/bc-backends.c:258
+msgid "Code 128 (Mode C supression)"
+msgstr ""
 
-#: ../src/stock.c:79
-msgid "_Merge Properties"
+#: ../src/bc-backends.c:261
+msgid "DAFT Code"
 msgstr ""
 
-#: ../src/stock.c:80
-msgid "Object _Properties"
-msgstr "Objekt_egenskaper"
+#: ../src/bc-backends.c:264
+#, fuzzy
+msgid "Data Matrix"
+msgstr "IEC16022 (DataMatrix)"
 
-#: ../src/stock.c:81
-msgid "Bring to _Front"
+#: ../src/bc-backends.c:267
+msgid "Deutsche Post Leitcode"
 msgstr ""
 
-#: ../src/stock.c:82
-msgid "Send to _Back"
+#: ../src/bc-backends.c:270
+msgid "Deutsche Post Identcode"
 msgstr ""
 
-#: ../src/stock.c:83
-msgid "Rotate _Left"
+#: ../src/bc-backends.c:273
+msgid "Dutch Post KIX Code"
 msgstr ""
 
-#: ../src/stock.c:84
-msgid "Rotate _Right"
+#: ../src/bc-backends.c:276
+msgid "EAN"
+msgstr "EAN"
+
+#: ../src/bc-backends.c:279
+msgid "Grid Matrix"
 msgstr ""
 
-#: ../src/stock.c:85
-msgid "Flip _Horizontally"
+#: ../src/bc-backends.c:282
+msgid "GS1-128"
 msgstr ""
 
-#: ../src/stock.c:86
-msgid "Flip _Vertically"
+#: ../src/bc-backends.c:285
+msgid "GS1 DataBar-14"
 msgstr ""
 
-#: ../src/stock.c:87
-msgid "_Lefts"
+#: ../src/bc-backends.c:294
+msgid "GS1 DataBar-14 Stacked"
 msgstr ""
 
-#: ../src/stock.c:88
-msgid "_Rights"
+#: ../src/bc-backends.c:297
+msgid "GS1 DataBar-14 Stacked Omni."
 msgstr ""
 
-#: ../src/stock.c:89
-msgid "_Centers"
+#: ../src/bc-backends.c:300
+msgid "GS1 DataBar Extended Stacked"
 msgstr ""
 
-#: ../src/stock.c:90
-msgid "_Tops"
+#: ../src/bc-backends.c:303
+#, fuzzy
+msgid "HIBC Code 128"
+msgstr "Code 128"
+
+#: ../src/bc-backends.c:306
+#, fuzzy
+msgid "HIBC Code 39"
+msgstr "Code 39"
+
+#: ../src/bc-backends.c:309
+#, fuzzy
+msgid "HIBC Data Matrix"
+msgstr "IEC16022 (DataMatrix)"
+
+#: ../src/bc-backends.c:312
+msgid "HIBC QR Code"
 msgstr ""
 
-#: ../src/stock.c:91
-msgid "Bottoms"
+#: ../src/bc-backends.c:315
+msgid "HIBC PDF417"
 msgstr ""
 
-#: ../src/stock.c:92
-msgid "Centers"
+#: ../src/bc-backends.c:318
+msgid "HIBC Micro PDF417"
 msgstr ""
 
-#: ../src/stock.c:93
-#: ../src/stock.c:94
-msgid "Label Ce_nter"
+#: ../src/bc-backends.c:321
+msgid "HIBC Aztec Code"
 msgstr ""
 
-#: ../src/stock.c:95
-#: ../data/glade/property-bar.glade.h:3
-msgid "Fill color"
+#: ../src/bc-backends.c:330
+msgid "ITF-14"
 msgstr ""
 
-#: ../src/stock.c:96
-#: ../data/glade/property-bar.glade.h:8
-msgid "Line color"
-msgstr "Radfärg"
+#: ../src/bc-backends.c:333
+msgid "Japanese Postal"
+msgstr ""
 
-#: ../src/stock.c:97
-#: ../src/stock.c:99
-msgid "Linked"
-msgstr "Länkad"
+#: ../src/bc-backends.c:336
+msgid "Korean Postal"
+msgstr ""
 
-#: ../src/stock.c:98
-#: ../src/stock.c:100
-msgid "Not Linked"
-msgstr "Inte länkad"
+#: ../src/bc-backends.c:339
+msgid "LOGMARS"
+msgstr ""
 
-#. Menu entries.
-#: ../src/ui.c:93
-msgid "_File"
-msgstr "_Arkiv"
+#: ../src/bc-backends.c:342
+#, fuzzy
+msgid "Maxicode"
+msgstr "Streckkod"
 
-#: ../src/ui.c:94
-msgid "Open Recent _Files"
-msgstr "Öppna tidigare _filer"
+#: ../src/bc-backends.c:345
+msgid "Micro PDF417"
+msgstr ""
 
-#: ../src/ui.c:95
-msgid "_Edit"
-msgstr "R_edigera"
+#: ../src/bc-backends.c:348
+msgid "Micro QR Code"
+msgstr ""
 
-#: ../src/ui.c:96
-msgid "_View"
-msgstr "_Visa"
+#: ../src/bc-backends.c:351
+#, fuzzy
+msgid "MSI Plessey"
+msgstr "Plessey"
 
-#: ../src/ui.c:97
-msgid "Customize Main Toolbar"
+#: ../src/bc-backends.c:354
+msgid "NVE-18"
 msgstr ""
 
-#: ../src/ui.c:98
-msgid "Customize Drawing Toolbar"
+#: ../src/bc-backends.c:357
+msgid "PDF417"
 msgstr ""
 
-#: ../src/ui.c:99
-msgid "Customize Properties Toolbar"
-msgstr "Anpassa egenskapsverktygsrad"
+#: ../src/bc-backends.c:360
+msgid "PDF417 Truncated"
+msgstr ""
 
-#: ../src/ui.c:100
-msgid "_Objects"
-msgstr "_Objekt"
+#: ../src/bc-backends.c:363
+#, fuzzy
+msgid "PLANET"
+msgstr "CEPNET"
 
-#: ../src/ui.c:101
-msgid "_Create"
-msgstr "_Skapa"
+#: ../src/bc-backends.c:366
+msgid "PostNet"
+msgstr "PostNet"
 
-#: ../src/ui.c:102
-msgid "_Order"
-msgstr "_Ordna"
+#: ../src/bc-backends.c:369
+#, fuzzy
+msgid "Pharmacode"
+msgstr "Streckkod"
 
-#: ../src/ui.c:103
-msgid "_Rotate/Flip"
-msgstr "_Rotera/Vänd"
+#: ../src/bc-backends.c:372
+msgid "Pharmacode 2-track"
+msgstr ""
 
-#: ../src/ui.c:104
-msgid "Align _Horizontal"
-msgstr "Justera _horisontellt"
+#: ../src/bc-backends.c:375
+msgid "Pharmazentral Nummer (PZN)"
+msgstr ""
 
-#: ../src/ui.c:105
-msgid "Align _Vertical"
-msgstr "Justera _vertikalt"
+#: ../src/bc-backends.c:378
+msgid "QR Code"
+msgstr ""
 
-#: ../src/ui.c:106
-msgid "_Help"
-msgstr "_Hjälp"
+#: ../src/bc-backends.c:381
+msgid "Royal Mail 4-State"
+msgstr ""
 
-#. Popup entries.
-#: ../src/ui.c:109
-#: ../src/ui.c:110
-msgid "Context Menu"
-msgstr "Sammanhangsmeny"
+#: ../src/bc-backends.c:384
+#, fuzzy
+msgid "Telepen"
+msgstr "Ta bort"
 
-#: ../src/ui.c:115
-msgid "_New"
-msgstr "_Ny"
+#: ../src/bc-backends.c:387
+msgid "Telepen Numeric"
+msgstr ""
 
-#: ../src/ui.c:117
-msgid "Create a new file"
-msgstr "Skapa en ny fil"
+#: ../src/bc-backends.c:396
+msgid "USPS One Code"
+msgstr ""
 
-#: ../src/ui.c:122
-msgid "_Open..."
-msgstr "_Öppna..."
+#: ../src/bc-backends.c:399
+#, fuzzy
+msgid "UK Plessey"
+msgstr "Plessey"
 
-#: ../src/ui.c:124
-msgid "Open a file"
-msgstr "Öppna en fil"
+#: ../src/bc-backends.c:406
+msgid "IEC16022 (DataMatrix)"
+msgstr "IEC16022 (DataMatrix)"
 
-#: ../src/ui.c:129
-msgid "_Save"
-msgstr "_Spara"
+#: ../src/bc-backends.c:413
+msgid "IEC18004 (QRCode)"
+msgstr ""
 
-#: ../src/ui.c:131
-msgid "Save current file"
-msgstr "Spara aktuell fil"
+#: ../src/color-combo-button.c:198
+#: ../src/color-combo.c:178
+msgid "Default Color"
+msgstr "Standardfärg"
 
-#: ../src/ui.c:136
-msgid "Save _As..."
-msgstr "Spara s_om..."
+#: ../src/color-combo-menu.c:83
+msgid "Dark Red"
+msgstr "Mörkröd"
 
-#: ../src/ui.c:138
-msgid "Save the current file to a different name"
-msgstr "Spara den aktuella filen med ett annat namn"
+#: ../src/color-combo-menu.c:84
+msgid "Brown"
+msgstr "Brun"
 
-#: ../src/ui.c:143
-msgid "_Print..."
-msgstr "Skriv _ut..."
+#: ../src/color-combo-menu.c:85
+msgid "Dark Goldenrod"
+msgstr ""
 
-#: ../src/ui.c:145
-msgid "Print the current file"
-msgstr "Skriv ut aktuell fil"
+#: ../src/color-combo-menu.c:86
+msgid "Dark Green"
+msgstr "Mörkgrön"
 
-#: ../src/ui.c:150
-msgid "Properties..."
-msgstr "Egenskaper..."
+#: ../src/color-combo-menu.c:87
+msgid "Dark Cyan"
+msgstr ""
 
-#: ../src/ui.c:152
-msgid "Modify document properties"
-msgstr "Ändra dokumentegenskaper"
+#: ../src/color-combo-menu.c:88
+msgid "Navy Blue"
+msgstr ""
 
-#: ../src/ui.c:157
-msgid "Template _Designer..."
-msgstr "Mall_designer..."
+#: ../src/color-combo-menu.c:89
+msgid "Dark Violet"
+msgstr "Mörkviolett"
 
-#: ../src/ui.c:159
-msgid "Create a custom template"
-msgstr "Skapa en anpassad mall"
+#: ../src/color-combo-menu.c:91
+msgid "Red"
+msgstr "Röd"
 
-#: ../src/ui.c:164
-msgid "_Close"
-msgstr "S_täng"
+#: ../src/color-combo-menu.c:92
+msgid "Orange"
+msgstr "Orange"
 
-#: ../src/ui.c:166
-msgid "Close the current file"
-msgstr "Stäng aktuell fil"
+#: ../src/color-combo-menu.c:93
+msgid "Dark Yellow"
+msgstr "Mörkgul"
 
-#: ../src/ui.c:171
-msgid "_Quit"
-msgstr "A_vsluta"
+#: ../src/color-combo-menu.c:94
+msgid "Medium green"
+msgstr ""
 
-#: ../src/ui.c:173
-msgid "Quit the program"
-msgstr "Avsluta programmet"
+#: ../src/color-combo-menu.c:95
+msgid "Turquoise"
+msgstr "Turkos"
 
-#: ../src/ui.c:180
-msgid "Cut"
-msgstr "Klipp ut"
+#: ../src/color-combo-menu.c:96
+msgid "Blue"
+msgstr "Blå"
 
-#: ../src/ui.c:182
-msgid "Cut the selection"
-msgstr "Klipp ut markeringen"
+#: ../src/color-combo-menu.c:97
+msgid "Purple"
+msgstr "Lila"
 
-#: ../src/ui.c:187
-msgid "Copy"
-msgstr "Kopiera"
+#: ../src/color-combo-menu.c:99
+msgid "Salmon"
+msgstr ""
 
-#: ../src/ui.c:189
-msgid "Copy the selection"
-msgstr "Kopiera markeringen"
+#: ../src/color-combo-menu.c:100
+msgid "Gold"
+msgstr "Guld"
 
-#: ../src/ui.c:194
-msgid "Paste"
-msgstr "Klistra in"
+#: ../src/color-combo-menu.c:101
+msgid "Yellow"
+msgstr "Gul"
 
-#: ../src/ui.c:196
-msgid "Paste the clipboard"
-msgstr "Klistra in urklipp"
+#: ../src/color-combo-menu.c:102
+msgid "Green"
+msgstr "Grön"
 
-#: ../src/ui.c:201
-msgid "Delete"
-msgstr "Ta bort"
+#: ../src/color-combo-menu.c:103
+msgid "Cyan"
+msgstr "Cyan"
 
-#: ../src/ui.c:203
-msgid "Delete the selected objects"
-msgstr "Ta bort markerade objekt"
+#: ../src/color-combo-menu.c:104
+msgid "SkyBlue"
+msgstr "Himmelsblå"
 
-#: ../src/ui.c:208
-msgid "Select All"
-msgstr "Markera allt"
+#: ../src/color-combo-menu.c:105
+msgid "Violet"
+msgstr "Violett"
 
-#: ../src/ui.c:210
-msgid "Select all objects"
-msgstr "Markera alla objekt"
+#: ../src/color-combo-menu.c:107
+msgid "Pink"
+msgstr "Rosa"
 
-#: ../src/ui.c:215
-msgid "Un-select All"
-msgstr "Avmarkera allt"
+#: ../src/color-combo-menu.c:108
+msgid "Khaki"
+msgstr "Khaki"
 
-#: ../src/ui.c:217
-msgid "Remove all selections"
-msgstr "Ta bort alla markeringar"
+#: ../src/color-combo-menu.c:109
+msgid "Light Yellow"
+msgstr "Ljusgul"
 
-#: ../src/ui.c:222
-msgid "Preferences"
-msgstr "Inställningar"
+#: ../src/color-combo-menu.c:110
+msgid "Light Green"
+msgstr "Ljusgrön"
 
-#: ../src/ui.c:224
-msgid "Configure the application"
-msgstr "Konfigurera programmet"
+#: ../src/color-combo-menu.c:111
+msgid "Light Cyan"
+msgstr ""
 
-#: ../src/ui.c:231
-msgid "Zoom in"
-msgstr "Zooma in"
+#: ../src/color-combo-menu.c:112
+msgid "Slate Gray"
+msgstr ""
 
-#: ../src/ui.c:233
-msgid "Increase magnification"
-msgstr "Öka förstorning"
+#: ../src/color-combo-menu.c:113
+msgid "Thistle"
+msgstr ""
 
-#: ../src/ui.c:238
-msgid "Zoom out"
-msgstr "Zooma ut"
+#: ../src/color-combo-menu.c:115
+msgid "White"
+msgstr "Vit"
 
-#: ../src/ui.c:240
-msgid "Decrease magnification"
-msgstr "Minska förstorning"
+#: ../src/color-combo-menu.c:117
+#, no-c-format
+msgid "10% Gray"
+msgstr "10% grå"
 
-#: ../src/ui.c:245
-msgid "Zoom 1 to 1"
-msgstr "Zooma 1 till 1"
+#: ../src/color-combo-menu.c:119
+#, no-c-format
+msgid "25% Gray"
+msgstr "25% grå"
 
-#: ../src/ui.c:247
-msgid "Restore scale to 100%"
-msgstr ""
+#: ../src/color-combo-menu.c:121
+#, no-c-format
+msgid "40% Gray"
+msgstr "40% grå"
 
-#: ../src/ui.c:252
-msgid "Zoom to fit"
-msgstr ""
+#: ../src/color-combo-menu.c:123
+#, no-c-format
+msgid "50% Gray"
+msgstr "50% grå"
 
-#: ../src/ui.c:254
-msgid "Set scale to fit window"
+#: ../src/color-combo-menu.c:125
+#, no-c-format
+msgid "60% Gray"
+msgstr "60% grå"
+
+#: ../src/color-combo-menu.c:126
+msgid "Black"
+msgstr "Svart"
+
+#: ../src/color-combo-menu.c:254
+#: ../src/color-combo-menu.c:373
+msgid "Custom Color"
+msgstr "Anpassad färg"
+
+#: ../src/color-combo-menu.c:319
+#, c-format
+msgid "Custom Color #%u"
+msgstr "Anpassad färg #%u"
+
+#: ../src/critical-error-handler.c:70
+msgid "gLabels Fatal Error!"
 msgstr ""
 
-#: ../src/ui.c:261
-msgid "Select Mode"
+#: ../src/file.c:84
+msgid "New Label or Card"
+msgstr "Ny etikett eller kort"
+
+#: ../src/file.c:175
+#: ../src/label.c:587
+#: ../src/label.c:631
+msgid "Label properties"
+msgstr "Etikettegenskaper"
+
+#: ../src/file.c:267
+#: ../src/file.c:557
+msgid "All files"
+msgstr "Alla filer"
+
+#: ../src/file.c:272
+#: ../src/file.c:562
+msgid "gLabels documents"
+msgstr "gLabels-dokument"
+
+#: ../src/file.c:319
+#: ../src/file.c:620
+msgid "Empty file name selection"
 msgstr ""
 
-#: ../src/ui.c:263
-msgid "Select, move and modify objects"
+#: ../src/file.c:322
+#: ../src/file.c:338
+msgid "Please select a file or supply a valid file name"
 msgstr ""
 
-#: ../src/ui.c:268
-#: ../src/view-text.c:494
-#: ../data/glade/object-editor.glade.h:32
-msgid "Text"
-msgstr "Text"
+#: ../src/file.c:335
+msgid "File does not exist"
+msgstr "Filen finns inte"
 
-#: ../src/ui.c:270
-msgid "Create text object"
-msgstr "Skapa textobjekt"
+#: ../src/file.c:410
+#, c-format
+msgid "Could not open file \"%s\""
+msgstr "Kunde inte öppna filen \"%s\""
 
-#: ../src/ui.c:275
-msgid "Box"
-msgstr "Rektangel"
+#: ../src/file.c:413
+msgid "Not a supported file format"
+msgstr "Filformatet stöds inte"
 
-#: ../src/ui.c:277
-msgid "Create box/rectangle object"
+#: ../src/file.c:491
+#: ../src/file.c:670
+#, c-format
+msgid "Could not save file \"%s\""
+msgstr "Kunde inte spara filen \"%s\""
+
+#: ../src/file.c:495
+#: ../src/file.c:674
+msgid "Error encountered during save.  The file is still not saved."
 msgstr ""
 
-#: ../src/ui.c:282
-#: ../data/glade/object-editor.glade.h:20
-msgid "Line"
-msgstr "Linje"
+#: ../src/file.c:535
+#, c-format
+msgid "Save \"%s\" as"
+msgstr "Spara \"%s\" som"
 
-#: ../src/ui.c:284
-msgid "Create line object"
+#: ../src/file.c:623
+msgid "Please supply a valid file name"
 msgstr ""
 
-#: ../src/ui.c:289
-msgid "Ellipse"
-msgstr "Ellips"
+#: ../src/file.c:644
+#, c-format
+msgid "Overwrite file \"%s\"?"
+msgstr "Skriv över filen \"%s\"?"
 
-#: ../src/ui.c:291
-msgid "Create ellipse/circle object"
-msgstr ""
+#: ../src/file.c:648
+msgid "File already exists."
+msgstr "Filen finns inte."
 
-#: ../src/ui.c:296
-#: ../data/glade/object-editor.glade.h:16
-msgid "Image"
-msgstr "Bild"
+#: ../src/file.c:744
+#, c-format
+msgid "Save changes to document \"%s\" before closing?"
+msgstr "Spara ändringar till dokumentet \"%s\" innan stängning?"
 
-#: ../src/ui.c:298
-msgid "Create image object"
-msgstr ""
+#: ../src/file.c:748
+msgid "Your changes will be lost if you don't save them."
+msgstr "Dina ändringar kommer att gå förlorade om du inte sparar dem."
 
-#: ../src/ui.c:303
-msgid "Barcode"
-msgstr "Streckkod"
+#: ../src/file.c:751
+msgid "Close without saving"
+msgstr "Stäng utan att spara"
 
-#: ../src/ui.c:305
-msgid "Create barcode object"
-msgstr ""
+#: ../src/font-combo-menu.c:137
+#, fuzzy
+msgid "Recent fonts"
+msgstr "Tidigare mallar"
 
-#: ../src/ui.c:310
-msgid "Bring to front"
+#: ../src/font-combo-menu.c:152
+msgid "Proportional fonts"
 msgstr ""
 
-#: ../src/ui.c:312
-msgid "Raise object to top"
+#: ../src/font-combo-menu.c:160
+msgid "Fixed-width fonts"
 msgstr ""
 
-#: ../src/ui.c:317
-msgid "Send to back"
-msgstr ""
+#: ../src/font-combo-menu.c:168
+msgid "All fonts"
+msgstr "Alla typsnitt"
 
-#: ../src/ui.c:319
-msgid "Lower object to bottom"
+#.
+#. * Allow text samples to be localized.
+#. *
+#. * FIXME: if we could extract enough meta information from the fonts
+#. * themselves, perhaps rather than setting these globally for the
+#. * current locale, they could be unique to each font family.
+#.
+#: ../src/font-combo-menu-item.c:132
+msgctxt "Short sample text"
+msgid "Aa"
 msgstr ""
 
-#: ../src/ui.c:324
-msgid "Rotate left"
-msgstr "Rotera åt vänster"
+#: ../src/font-combo-menu-item.c:134
+msgctxt "Lower case sample text"
+msgid "abcdefghijklmnopqrstuvwxyz"
+msgstr "abcdefghijklmnopqrstuvwxyzåäö"
 
-#: ../src/ui.c:326
-msgid "Rotate object 90 degrees counter-clockwise"
-msgstr ""
+#: ../src/font-combo-menu-item.c:136
+msgctxt "Upper case sample text"
+msgid "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ"
 
-#: ../src/ui.c:331
-msgid "Rotate right"
-msgstr "Rotera åt höger"
+#: ../src/font-combo-menu-item.c:138
+msgctxt "Numbers and special characters sample text"
+msgid "0123456789 .:,;(*!?)"
+msgstr "0123456789 .:,;(*!?)"
 
-#: ../src/ui.c:333
-msgid "Rotate object 90 degrees clockwise"
-msgstr ""
+#: ../src/font-combo-menu-item.c:157
+msgid "Sample text"
+msgstr "Exempeltext"
 
-#: ../src/ui.c:338
-msgid "Flip horizontally"
+#: ../src/glabels-batch.c:53
+msgid "set output filename (default=\"output.pdf\")"
 msgstr ""
 
-#: ../src/ui.c:340
-msgid "Flip object horizontally"
-msgstr ""
+#: ../src/glabels-batch.c:53
+#: ../src/glabels-batch.c:67
+msgid "filename"
+msgstr "filnamn"
 
-#: ../src/ui.c:345
-msgid "Flip vertically"
+#: ../src/glabels-batch.c:55
+msgid "number of sheets (default=1)"
 msgstr ""
 
-#: ../src/ui.c:347
-msgid "Flip object vertically"
+#: ../src/glabels-batch.c:55
+msgid "sheets"
 msgstr ""
 
-#: ../src/ui.c:352
-msgid "Align left"
-msgstr "Justera vänster"
-
-#: ../src/ui.c:354
-msgid "Align objects to left edges"
+#: ../src/glabels-batch.c:57
+msgid "number of copies (default=1)"
 msgstr ""
 
-#: ../src/ui.c:359
-msgid "Align right"
-msgstr "Justera höger"
+#: ../src/glabels-batch.c:57
+msgid "copies"
+msgstr "kopior"
 
-#: ../src/ui.c:361
-msgid "Align objects to right edges"
+#: ../src/glabels-batch.c:59
+msgid "first label on first sheet (default=1)"
 msgstr ""
 
-#: ../src/ui.c:366
-msgid "Align horizontal center"
+#: ../src/glabels-batch.c:59
+msgid "first"
 msgstr ""
 
-#: ../src/ui.c:368
-msgid "Align objects to horizontal centers"
+#: ../src/glabels-batch.c:61
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:13
+msgid "print outlines (to test printer alignment)"
 msgstr ""
 
-#: ../src/ui.c:373
-msgid "Align tops"
+#: ../src/glabels-batch.c:63
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:12
+msgid "print in reverse (i.e. a mirror image)"
 msgstr ""
 
-#: ../src/ui.c:375
-msgid "Align objects to top edges"
+#: ../src/glabels-batch.c:65
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:11
+msgid "print crop marks"
 msgstr ""
 
-#: ../src/ui.c:380
-msgid "Align bottoms"
+#: ../src/glabels-batch.c:67
+msgid "input file for merging"
 msgstr ""
 
-#: ../src/ui.c:382
-msgid "Align objects to bottom edges"
-msgstr ""
+#: ../src/glabels-batch.c:69
+#: ../src/glabels.c:63
+msgid "[FILE...]"
+msgstr "[FIL...]"
 
-#: ../src/ui.c:387
-msgid "Align vertical center"
+#: ../src/glabels-batch.c:99
+msgid "Print files created with gLabels."
 msgstr ""
 
-#: ../src/ui.c:389
-msgid "Align objects to vertical centers"
+#: ../src/glabels-batch.c:107
+#: ../src/glabels.c:87
+#, c-format
+msgid ""
+"%s\n"
+"Run '%s --help' to see a full list of available command line options.\n"
 msgstr ""
 
-#: ../src/ui.c:394
-msgid "Center horizontally"
+#: ../src/glabels-batch.c:151
+#, c-format
+msgid "cannot perform document merge with glabels file %s\n"
 msgstr ""
 
-#: ../src/ui.c:396
-msgid "Center objects to horizontal label center"
-msgstr ""
+#: ../src/glabels-batch.c:186
+#, c-format
+msgid "cannot open glabels file %s\n"
+msgstr "kan inte öppna glabels-filen %s\n"
 
-#: ../src/ui.c:401
-msgid "Center vertically"
-msgstr ""
+#: ../src/glabels.c:79
+msgid "Launch gLabels label and business card designer."
+msgstr "Starta gLabels för att skapa etiketter och visitkort."
 
-#: ../src/ui.c:403
-msgid "Center objects to vertical label center"
+#: ../src/label-barcode.c:155
+#: ../src/ui.c:318
+msgid "Create barcode object"
 msgstr ""
 
-#: ../src/ui.c:408
-msgid "Merge properties"
-msgstr ""
+#: ../src/label-barcode.c:231
+#: ../src/label-barcode.c:381
+#, fuzzy
+msgid "Barcode data"
+msgstr "Streckkod"
 
-#: ../src/ui.c:410
-msgid "Edit merge properties"
+#: ../src/label-barcode.c:260
+#, fuzzy
+msgid "Barcode property"
+msgstr "Etikettegenskaper"
+
+#: ../src/label-barcode.c:476
+msgid "Barcode data empty"
 msgstr ""
 
-#: ../src/ui.c:417
-msgid "Contents"
-msgstr "Innehåll"
+#: ../src/label-barcode.c:480
+msgid "Invalid barcode data"
+msgstr "Ogiltig streckkodsdata"
 
-#: ../src/ui.c:419
-msgid "Open glabels manual"
+#: ../src/label-box.c:156
+#, fuzzy
+msgid "Create box object"
+msgstr "Skapa textobjekt"
+
+#: ../src/label-box.c:230
+#: ../src/label-ellipse.c:232
+#: ../data/ui/property-bar.ui.h:3
+msgid "Fill color"
 msgstr ""
 
-#: ../src/ui.c:424
-msgid "About..."
-msgstr "Om..."
+#: ../src/label-box.c:261
+#: ../src/label-ellipse.c:261
+#: ../src/label-line.c:212
+#: ../data/ui/property-bar.ui.h:8
+msgid "Line color"
+msgstr "Radfärg"
 
-#: ../src/ui.c:426
-msgid "About glabels"
-msgstr "Om glabels"
+#: ../src/label-box.c:289
+#: ../src/label-ellipse.c:290
+#: ../src/label-line.c:241
+#: ../data/ui/property-bar.ui.h:9
+msgid "Line width"
+msgstr "Radbredd"
 
-#: ../src/ui.c:436
-msgid "Property toolbar"
-msgstr ""
+#: ../src/label.c:402
+msgid "Untitled"
+msgstr "Namnlös"
 
-#: ../src/ui.c:438
-msgid "Change the visibility of the property toolbar in the current window"
+#: ../src/label.c:705
+#: ../src/ui.c:421
+msgid "Merge properties"
 msgstr ""
 
-#: ../src/ui.c:444
-#: ../src/ui.c:489
-#: ../src/ui.c:497
-msgid "Show tooltips"
-msgstr "Visa verktygstips"
+#: ../src/label.c:1197
+#: ../src/ui.c:214
+msgid "Delete"
+msgstr "Ta bort"
 
-#: ../src/ui.c:446
-msgid "Show tooltips for property toolbar"
+#: ../src/label.c:1230
+#: ../src/ui.c:323
+msgid "Bring to front"
 msgstr ""
 
-#: ../src/ui.c:452
-msgid "Grid"
-msgstr "Rutnät"
-
-#: ../src/ui.c:454
-msgid "Change the visibility of the grid in the current window"
+#: ../src/label.c:1266
+#: ../src/ui.c:330
+msgid "Send to back"
 msgstr ""
 
-#: ../src/ui.c:460
-msgid "Markup"
+#: ../src/label.c:1307
+msgid "Rotate"
+msgstr "Rotera"
+
+#: ../src/label.c:1342
+#: ../src/ui.c:337
+msgid "Rotate left"
+msgstr "Rotera åt vänster"
+
+#: ../src/label.c:1375
+#: ../src/ui.c:344
+msgid "Rotate right"
+msgstr "Rotera åt höger"
+
+#: ../src/label.c:1410
+#: ../src/ui.c:351
+msgid "Flip horizontally"
 msgstr ""
 
-#: ../src/ui.c:462
-msgid "Change the visibility of markup lines in the current window"
+#: ../src/label.c:1445
+#: ../src/ui.c:358
+msgid "Flip vertically"
 msgstr ""
 
-#: ../src/ui.c:473
-msgid "Main toolbar"
+#: ../src/label.c:1485
+#: ../src/ui.c:365
+msgid "Align left"
+msgstr "Justera vänster"
+
+#: ../src/label.c:1542
+#: ../src/ui.c:372
+msgid "Align right"
+msgstr "Justera höger"
+
+#: ../src/label.c:1603
+#: ../src/ui.c:379
+msgid "Align horizontal center"
 msgstr ""
 
-#: ../src/ui.c:475
-msgid "Change the visibility of the main toolbar in the current window"
+#: ../src/label.c:1679
+#: ../src/ui.c:386
+msgid "Align tops"
 msgstr ""
 
-#: ../src/ui.c:481
-msgid "Drawing toolbar"
+#: ../src/label.c:1736
+#: ../src/ui.c:393
+msgid "Align bottoms"
 msgstr ""
 
-#: ../src/ui.c:483
-msgid "Change the visibility of the drawing toolbar in the current window"
+#: ../src/label.c:1797
+#: ../src/ui.c:400
+msgid "Align vertical center"
 msgstr ""
 
-#: ../src/ui.c:491
-msgid "Show tooltips for main toolbar"
-msgstr "Visa verktygstips för huvudverktygsrad"
+#: ../src/label.c:1875
+#: ../src/ui.c:407
+msgid "Center horizontally"
+msgstr ""
 
-#: ../src/ui.c:499
-msgid "Show tooltips for drawing toolbar"
+#: ../src/label.c:1922
+#: ../src/ui.c:414
+msgid "Center vertically"
 msgstr ""
 
-#: ../src/ui-property-bar.c:1232
-#: ../src/object-editor.c:587
-#: ../src/object-editor.c:593
-msgid "Default"
-msgstr "Standard"
+#: ../src/label.c:2610
+#: ../src/label.c:2652
+#: ../src/label.c:2678
+#: ../src/ui.c:207
+msgid "Paste"
+msgstr "Klistra in"
 
-#: ../src/ui-property-bar.c:1239
-#: ../src/object-editor.c:599
-msgid "No line"
-msgstr "Ingen linje"
+#: ../src/label-ellipse.c:160
+#, fuzzy
+msgid "Create ellipse object"
+msgstr "Skapa textobjekt"
 
-#: ../src/ui-property-bar.c:1247
-#: ../src/object-editor.c:606
-msgid "No fill"
+#: ../src/label-image.c:200
+#: ../src/ui.c:311
+msgid "Create image object"
 msgstr ""
 
-#: ../src/ui-sidebar.c:152
-msgid "Object properties"
-msgstr "Objektegenskaper"
+#: ../src/label-image.c:333
+#: ../src/label-image.c:474
+#, fuzzy
+msgid "Set image"
+msgstr "Återställ bildstorlek"
 
-#: ../src/ui-commands.c:1084
-msgid "Glabels includes contributions from:"
-msgstr "Glabels inkluderar bidrag från:"
+#: ../src/label-line.c:147
+#: ../src/ui.c:297
+msgid "Create line object"
+msgstr ""
 
-#: ../src/ui-commands.c:1090
-msgid "See the file AUTHORS for additional credits,"
-msgstr "Se filen AUTHORS för ytterligare tack,"
+#: ../src/label-object.c:383
+#: ../src/label-object.c:416
+msgid "Move"
+msgstr ""
 
-#: ../src/ui-commands.c:1091
-msgid "or visit http://glabels.sourceforge.net/"
-msgstr "eller besök http://glabels.sourceforge.net/"
+#: ../src/label-object.c:467
+msgid "Resize"
+msgstr "Ändra storlek"
 
-#: ../src/ui-commands.c:1103
-msgid "A label and business card creation program.\n"
-msgstr "Ett program för att skapa etiketter och visitkort.\n"
+#: ../src/label-object.c:1185
+#, fuzzy
+msgid "Shadow state"
+msgstr "Skugga"
 
-#: ../src/ui-commands.c:1107
-msgid "translator-credits"
-msgstr ""
-"Daniel Nylander <po@danielnylander.se>\n"
-"\n"
-"Skicka synpunkter på översättningen till\n"
-"<tp-sv@listor.tp-sv.se>."
+#: ../src/label-object.c:1228
+#, fuzzy
+msgid "Shadow offset"
+msgstr "Skugga"
 
-#: ../src/ui-commands.c:1110
-msgid ""
-"Glabels is free software; you can redistribute it and/or modify it\n"
-"under the terms of the GNU General Public License as published by\n"
-"the Free Software Foundation; either version 2 of the License, or\n"
-"(at your option) any later version.\n"
-"\n"
-"This program is distributed in the hope that it will be useful, but\n"
-"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See\n"
-"the GNU General Public License for more details.\n"
+#: ../src/label-object.c:1276
+msgid "Shadow color"
+msgstr "Skuggfärg"
+
+#: ../src/label-object.c:1319
+#, fuzzy
+msgid "Shadow opacity"
+msgstr "Skugga"
+
+#: ../src/label-text.c:279
+#: ../src/ui.c:283
+msgid "Create text object"
+msgstr "Skapa textobjekt"
+
+#: ../src/label-text.c:451
+msgid "Typing"
 msgstr ""
 
-#: ../src/ui-commands.c:1136
-msgid "glabels"
-msgstr "glabels"
+#: ../src/label-text.c:584
+#: ../data/ui/property-bar.ui.h:4
+msgid "Font family"
+msgstr "Typsnittsfamilj"
 
-#: ../src/file.c:91
-msgid "New Label or Card"
-msgstr "Ny etikett eller kort"
+#: ../src/label-text.c:622
+#: ../data/ui/property-bar.ui.h:5
+msgid "Font size"
+msgstr "Typsnittsstorlek"
 
-#: ../src/file.c:191
-msgid "Label properties"
-msgstr "Etikettegenskaper"
+#: ../src/label-text.c:655
+msgid "Font weight"
+msgstr "Typsnittsbredd"
 
-#: ../src/file.c:292
-#: ../src/file.c:578
-msgid "All files"
-msgstr "Alla filer"
+#: ../src/label-text.c:688
+#: ../data/ui/property-bar.ui.h:6
+msgid "Italic"
+msgstr "Kursiv"
 
-#: ../src/file.c:297
-#: ../src/file.c:583
-msgid "gLabels documents"
-msgstr "gLabels-dokument"
+#: ../src/label-text.c:721
+msgid "Align text"
+msgstr "Justera text"
 
-#: ../src/file.c:343
-#: ../src/file.c:640
-msgid "Empty file name selection"
+#: ../src/label-text.c:754
+msgid "Line spacing"
 msgstr ""
 
-#: ../src/file.c:346
-#: ../src/file.c:362
-msgid "Please select a file or supply a valid file name"
-msgstr ""
+#: ../src/label-text.c:787
+#: ../data/ui/property-bar.ui.h:11
+msgid "Text color"
+msgstr "Textfärg"
 
-#: ../src/file.c:359
-msgid "File does not exist"
-msgstr "Filen finns inte"
+#: ../src/label-text.c:931
+msgid "Auto shrink"
+msgstr ""
 
-#: ../src/file.c:433
-#, c-format
-msgid "Could not open file \"%s\""
-msgstr "Kunde inte öppna filen \"%s\""
+#: ../src/media-select.c:349
+#: ../src/media-select.c:353
+#: ../src/media-select.c:502
+#: ../src/media-select.c:701
+#, fuzzy
+msgctxt "Brand"
+msgid "Any"
+msgstr "Alla"
 
-#: ../src/file.c:436
-msgid "Not a supported file format"
-msgstr "Filformatet stöds inte"
+#: ../src/media-select.c:358
+#: ../src/media-select.c:871
+#, fuzzy
+msgctxt "Page size"
+msgid "Any"
+msgstr "Alla"
 
-#: ../src/file.c:513
-#: ../src/file.c:690
-#, c-format
-msgid "Could not save file \"%s\""
-msgstr "Kunde inte spara filen \"%s\""
+#: ../src/media-select.c:367
+#: ../src/media-select.c:370
+#: ../src/media-select.c:880
+#, fuzzy
+msgctxt "Category"
+msgid "Any"
+msgstr "Alla"
 
-#: ../src/file.c:517
-#: ../src/file.c:694
-msgid "Error encountered during save.  The file is still not saved."
-msgstr ""
+#: ../src/media-select.c:968
+msgid "No recent templates found."
+msgstr "Inga tidigare mallar hittades."
 
-#: ../src/file.c:556
-#, c-format
-msgid "Save \"%s\" as"
-msgstr "Spara \"%s\" som"
+#: ../src/media-select.c:970
+#, fuzzy
+msgid "Try selecting a template in the \"Search all\" tab."
+msgstr "Prova att välja en mall från sidan \"Sök alla mallar\"."
 
-#: ../src/file.c:643
-msgid "Please supply a valid file name"
+#. Translators: "No match" means that for the given template search criteria, there
+#. * were no matches found.
+#: ../src/media-select.c:1061
+msgid "No match."
 msgstr ""
 
-#: ../src/file.c:664
-#, c-format
-msgid "Overwrite file \"%s\"?"
-msgstr "Skriv över filen \"%s\"?"
+#: ../src/media-select.c:1063
+msgid "Try selecting a different brand, page size or category."
+msgstr ""
 
-#: ../src/file.c:668
-msgid "File already exists."
-msgstr "Filen finns inte."
+#: ../src/media-select.c:1157
+#, fuzzy
+msgid "No custom templates found."
+msgstr "Inga tidigare mallar hittades."
 
-#: ../src/file.c:764
-#, c-format
-msgid "Save changes to document \"%s\" before closing?"
-msgstr "Spara ändringar till dokumentet \"%s\" innan stängning?"
+#: ../src/media-select.c:1159
+msgid "You may create new templates or try searching for pre-defined templates in the \"Search all\" tab."
+msgstr ""
 
-#: ../src/file.c:768
-msgid "Your changes will be lost if you don't save them."
-msgstr "Dina ändringar kommer att gå förlorade om du inte sparar dem."
+#. Translators: "None" here means that no document-merge source or
+#. * method has been selected.
+#: ../src/merge.c:171
+#: ../src/merge.c:212
+#: ../src/merge.c:376
+#: ../src/merge.c:379
+msgid "None"
+msgstr "Ingen"
 
-#: ../src/file.c:771
-msgid "Close without saving"
-msgstr "Stäng utan att spara"
+#: ../src/merge-evolution.c:316
+msgid "Couldn't construct query"
+msgstr ""
 
-#. Should not happen
-#: ../src/prefs.c:159
-#: ../src/prefs.c:166
-#: ../data/glade/object-editor.glade.h:43
-#: ../data/glade/prefs-dialog.glade.h:22
-msgid "points"
-msgstr "punkter"
+#: ../src/merge-evolution.c:322
+#: ../src/merge-evolution.c:333
+msgid "Couldn't open addressbook."
+msgstr "Kunde inte öppna adressboken."
 
-#: ../src/prefs.c:161
-#: ../data/glade/object-editor.glade.h:42
-#: ../data/glade/template-designer.glade.h:64
-msgid "inches"
-msgstr "tum"
+#: ../src/merge-evolution.c:348
+msgid "Couldn't list available fields."
+msgstr "Kunde inte lista tillgängliga fält."
 
-#: ../src/prefs.c:163
-msgid "mm"
-msgstr "mm"
+#: ../src/merge-evolution.c:384
+msgid "Couldn't get contacts."
+msgstr "Kunde inte få tag på kontakter."
 
-#: ../src/prefs-dialog.c:162
-#: ../data/glade/prefs-dialog.glade.h:21
-msgid "gLabels Preferences"
-msgstr "Inställningar för gLabels"
+#: ../src/merge-init.c:57
+msgid "Text: Comma Separated Values (CSV)"
+msgstr ""
 
-#. Build editor.
-#: ../src/view-box.c:175
-msgid "Box object properties"
+#: ../src/merge-init.c:64
+msgid "Text: Comma Separated Values (CSV) with keys on line 1"
 msgstr ""
 
-#. Build editor.
-#: ../src/view-ellipse.c:175
-msgid "Ellipse object properties"
+#: ../src/merge-init.c:72
+msgid "Text: Tab Separated Values (TSV)"
 msgstr ""
 
-#. Build editor.
-#: ../src/view-line.c:174
-msgid "Line object properties"
+#: ../src/merge-init.c:79
+msgid "Text: Tab Separated Values (TSV) with keys on line 1"
 msgstr ""
 
-#. Build editor.
-#: ../src/view-image.c:174
-msgid "Image object properties"
+#: ../src/merge-init.c:87
+msgid "Text: Colon separated values"
 msgstr ""
 
-#. Build editor.
-#: ../src/view-text.c:178
-msgid "Text object properties"
+#: ../src/merge-init.c:94
+msgid "Text: Colon separated values with keys on line 1"
 msgstr ""
 
-#. Build editor.
-#: ../src/view-barcode.c:174
-msgid "Barcode object properties"
+#: ../src/merge-init.c:102
+msgid "Text: Semicolon separated values"
 msgstr ""
 
-#: ../src/object-editor-image-page.c:270
-msgid "All Files"
-msgstr "Alla filer"
+#: ../src/merge-init.c:109
+msgid "Text: Semicolon separated values with keys on line 1"
+msgstr ""
 
-#: ../src/object-editor-image-page.c:275
-msgid "All Images"
-msgstr "Alla bilder"
+#: ../src/merge-init.c:119
+#, fuzzy
+msgid "Evolution Addressbook"
+msgstr "Kunde inte öppna adressboken."
 
-#: ../src/object-editor-image-page.c:290
-#, c-format
-msgid "%s (*.%s)"
-msgstr "%s (*.%s)"
+#: ../src/merge-init.c:125
+msgid "VCards"
+msgstr ""
 
-#: ../src/merge-properties-dialog.c:263
+#: ../src/merge-properties-dialog.c:279
 msgid "Merge Properties"
 msgstr ""
 
-#: ../src/merge-properties-dialog.c:289
-#: ../src/merge-properties-dialog.c:397
+#: ../src/merge-properties-dialog.c:305
+#: ../src/merge-properties-dialog.c:421
 msgid "Select merge-database source"
 msgstr ""
 
-#: ../src/merge-properties-dialog.c:298
-#: ../src/merge-properties-dialog.c:417
+#: ../src/merge-properties-dialog.c:316
+#: ../src/merge-properties-dialog.c:447
 msgid "N/A"
 msgstr ""
 
-#: ../src/merge-properties-dialog.c:324
+#: ../src/merge-properties-dialog.c:342
 msgid "Select"
 msgstr "Välj"
 
-#: ../src/merge-properties-dialog.c:332
+#: ../src/merge-properties-dialog.c:349
 msgid "Record/Field"
 msgstr ""
 
-#: ../src/merge-properties-dialog.c:340
-#: ../data/glade/object-editor.glade.h:10
+#: ../src/merge-properties-dialog.c:357
+#: ../data/ui/object-editor.ui.h:9
 msgid "Data"
 msgstr "Data"
 
-#: ../src/merge-properties-dialog.c:410
+#. Translators: "Fixed" here means that for the given document-merge method, there are
+#. * no further choices to further define the source of data.  E.g. if you select the
+#. * evolution-data-server, there are no further choices -- the source is "Fixed."
+#.
+#: ../src/merge-properties-dialog.c:440
 msgid "Fixed"
 msgstr ""
 
+#. Translators: "Up" refers to the direction towards the top of a label.
+#: ../src/mini-preview.c:1074
+msgid "Up"
+msgstr ""
+
+#: ../src/new-label-dialog.c:203
+msgid "Select Product"
+msgstr "Välj produkt"
+
+#: ../src/new-label-dialog.c:215
+msgid "Choose Orientation"
+msgstr ""
+
+#: ../src/new-label-dialog.c:229
+msgid "Review"
+msgstr ""
+
+#: ../src/object-editor-bc-page.c:97
+#: ../src/object-editor-shadow-page.c:93
+#: ../src/object-editor-text-page.c:97
+#: ../src/prefs-dialog.c:336
+#: ../src/ui-property-bar.c:277
+msgid "Default"
+msgstr "Standard"
+
+#: ../src/object-editor.c:158
+#: ../src/object-editor.c:464
+msgid "Object properties"
+msgstr ""
+
+#: ../src/object-editor.c:307
+msgid "Box object properties"
+msgstr ""
+
+#: ../src/object-editor.c:326
+msgid "Ellipse object properties"
+msgstr ""
+
+#: ../src/object-editor.c:345
+msgid "Line object properties"
+msgstr ""
+
+#: ../src/object-editor.c:362
+msgid "Image object properties"
+msgstr ""
+
+#: ../src/object-editor.c:379
+msgid "Text object properties"
+msgstr ""
+
+#: ../src/object-editor.c:401
+msgid "Barcode object properties"
+msgstr ""
+
+#: ../src/object-editor-edit-page.c:76
+msgid "Insert merge field"
+msgstr ""
+
+#: ../src/object-editor-fill-page.c:79
+#: ../src/prefs-dialog.c:342
+#: ../src/ui-property-bar.c:287
+msgid "No Fill"
+msgstr ""
+
+#: ../src/object-editor-image-page.c:278
+msgid "All Files"
+msgstr "Alla filer"
+
+#: ../src/object-editor-image-page.c:283
+msgid "All Images"
+msgstr "Alla bilder"
+
+#: ../src/object-editor-image-page.c:298
+#, c-format
+msgid "%s (*.%s)"
+msgstr "%s (*.%s)"
+
+#: ../src/object-editor-line-page.c:79
+#: ../src/prefs-dialog.c:339
+#: ../src/ui-property-bar.c:297
+msgid "No Line"
+msgstr ""
+
+#: ../src/prefs-dialog.c:169
+#: ../data/ui/prefs-dialog.ui.h:21
+msgid "gLabels Preferences"
+msgstr "Inställningar för gLabels"
+
 #. ===================================================================
-#: ../src/print-op.c:237
-#: ../src/wdgt-print-copies.c:171
-#: ../data/templates/misc-iso-templates.xml.h:34
+#: ../src/print-op.c:205
+#: ../src/print-op-dialog.c:217
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:4
+#: ../templates/misc-iso-templates.xml.h:34
 msgid "Labels"
 msgstr "Etiketter"
 
-#: ../src/template-designer.c:358
-msgid "gLabels Template Designer"
-msgstr "gLabels malldesigner"
+#: ../src/template-designer.c:428
+msgid "New gLabels Template"
+msgstr "Ny gLabels-mall"
 
-#: ../src/template-designer.c:419
+#: ../src/template-designer.c:486
 msgid "Welcome"
 msgstr "Välkommen"
 
-#: ../src/template-designer.c:463
+#: ../src/template-designer.c:525
 msgid "Name and Description"
 msgstr "Namn och beskrivning"
 
-#: ../src/template-designer.c:516
+#: ../src/template-designer.c:573
 msgid "Page Size"
 msgstr "Sidstorlek"
 
-#: ../src/template-designer.c:587
+#: ../src/template-designer.c:640
 msgid "Label or Card Shape"
 msgstr "Etikett- eller kortform"
 
-#: ../src/template-designer.c:637
+#: ../src/template-designer.c:687
+#: ../src/template-designer.c:788
 msgid "Label or Card Size"
 msgstr "Etikett- eller kortstorlek"
 
-#: ../src/template-designer.c:737
+#: ../src/template-designer.c:871
 msgid "Label Size (round)"
 msgstr "Etikettstorlek (rund)"
 
-#: ../src/template-designer.c:820
+#: ../src/template-designer.c:952
 msgid "Label Size (CD/DVD)"
 msgstr "Etikettstorlek (CD/DVD)"
 
-#: ../src/template-designer.c:913
+#: ../src/template-designer.c:1043
 msgid "Number of Layouts"
 msgstr "Antal layouter"
 
-#: ../src/template-designer.c:976
+#: ../src/template-designer.c:1111
 msgid "Layout(s)"
 msgstr "Layout(er)"
 
-#: ../src/template-designer.c:1087
+#: ../src/template-designer.c:1216
 msgid "Design Completed"
 msgstr ""
 
-#: ../src/template-designer.c:1253
-msgid "<span foreground='red' weight='bold'>Brand and part# match an existing template!</span>"
-msgstr ""
+#: ../src/template-designer.c:1244
+msgid "Edit gLabels Template"
+msgstr "Redigera gLabels-mall"
 
-#: ../src/bc.c:67
-msgid "POSTNET (any)"
+#: ../src/template-designer.c:1547
+msgid "Brand and part# match an existing template!"
 msgstr ""
 
-#: ../src/bc.c:70
-msgid "POSTNET-5 (ZIP only)"
+#. Menu entries.
+#: ../src/ui.c:92
+msgid "_File"
+msgstr "_Arkiv"
+
+#: ../src/ui.c:93
+msgid "Open Recent _Files"
+msgstr "Öppna tidigare _filer"
+
+#: ../src/ui.c:94
+msgid "_Edit"
+msgstr "R_edigera"
+
+#: ../src/ui.c:95
+msgid "_View"
+msgstr "_Visa"
+
+#: ../src/ui.c:96
+msgid "Customize Main Toolbar"
 msgstr ""
 
-#: ../src/bc.c:73
-msgid "POSTNET-9 (ZIP+4)"
+#: ../src/ui.c:97
+msgid "Customize Drawing Toolbar"
 msgstr ""
 
-#: ../src/bc.c:76
-msgid "POSTNET-11 (DPBC)"
+#: ../src/ui.c:98
+msgid "Customize Properties Toolbar"
 msgstr ""
 
-#: ../src/bc.c:79
-msgid "CEPNET"
-msgstr "CEPNET"
+#: ../src/ui.c:99
+msgid "_Objects"
+msgstr "_Objekt"
 
-#: ../src/bc.c:82
-msgid "EAN (any)"
-msgstr ""
+#: ../src/ui.c:100
+msgid "_Create"
+msgstr "_Skapa"
 
-#: ../src/bc.c:85
-msgid "EAN-8"
-msgstr "EAN-8"
+#: ../src/ui.c:101
+msgid "_Order"
+msgstr ""
 
-#: ../src/bc.c:88
-msgid "EAN-8 +2"
-msgstr "EAN-8 +2"
+#: ../src/ui.c:102
+msgid "_Rotate/Flip"
+msgstr ""
 
-#: ../src/bc.c:91
-msgid "EAN-8 +5"
-msgstr "EAN-8 +5"
+#: ../src/ui.c:103
+msgid "Align _Horizontal"
+msgstr "Justera _horisontellt"
 
-#: ../src/bc.c:94
-msgid "EAN-13"
-msgstr "EAN-13"
+#: ../src/ui.c:104
+msgid "Align _Vertical"
+msgstr "Justera _vertikalt"
 
-#: ../src/bc.c:97
-msgid "EAN-13 +2"
-msgstr "EAN-13 +2"
+#: ../src/ui.c:105
+msgid "_Help"
+msgstr "_Hjälp"
 
-#: ../src/bc.c:100
-msgid "EAN-13 +5"
-msgstr "EAN-13 +5"
+#. Popup entries.
+#: ../src/ui.c:108
+#: ../src/ui.c:109
+msgid "Context Menu"
+msgstr "Sammanhangsmeny"
 
-#: ../src/bc.c:103
-msgid "UPC (UPC-A or UPC-E)"
-msgstr "UPC (UPC-A eller UPC-E)"
+#: ../src/ui.c:114
+msgid "_New"
+msgstr "_Ny"
 
-#: ../src/bc.c:106
-msgid "UPC-A"
-msgstr "UPC-A"
+#: ../src/ui.c:116
+msgid "Create a new file"
+msgstr "Skapa en ny fil"
 
-#: ../src/bc.c:109
-msgid "UPC-A +2"
-msgstr "UPC-A +2"
+#: ../src/ui.c:121
+msgid "_Open..."
+msgstr "_Öppna..."
 
-#: ../src/bc.c:112
-msgid "UPC-A +5"
-msgstr "UPC-A +5"
+#: ../src/ui.c:123
+msgid "Open a file"
+msgstr "Öppna en fil"
 
-#: ../src/bc.c:115
-msgid "UPC-E"
-msgstr "UPC-E"
+#: ../src/ui.c:128
+msgid "_Save"
+msgstr "_Spara"
 
-#: ../src/bc.c:118
-msgid "UPC-E +2"
-msgstr "UPC-E +2"
+#: ../src/ui.c:130
+msgid "Save current file"
+msgstr "Spara aktuell fil"
 
-#: ../src/bc.c:121
-msgid "UPC-E +5"
-msgstr "UPC-E +5"
+#: ../src/ui.c:135
+msgid "Save _As..."
+msgstr "Spara s_om..."
 
-#: ../src/bc.c:124
-msgid "ISBN"
-msgstr "ISBN"
+#: ../src/ui.c:137
+msgid "Save the current file to a different name"
+msgstr "Spara den aktuella filen med ett annat namn"
 
-#: ../src/bc.c:127
-msgid "ISBN +5"
-msgstr "ISBN +5"
+#: ../src/ui.c:142
+msgid "_Print..."
+msgstr "Skriv _ut..."
 
-#: ../src/bc.c:130
-msgid "Code 39"
-msgstr "Code 39"
+#: ../src/ui.c:144
+msgid "Print the current file"
+msgstr "Skriv ut aktuell fil"
 
-#: ../src/bc.c:133
-msgid "Code 128"
-msgstr "Code 128"
+#: ../src/ui.c:149
+msgid "Properties..."
+msgstr "Egenskaper..."
 
-#: ../src/bc.c:136
-msgid "Code 128C"
-msgstr "Code 128C"
+#: ../src/ui.c:151
+msgid "Modify document properties"
+msgstr "Ändra dokumentegenskaper"
 
-#: ../src/bc.c:139
-msgid "Code 128B"
-msgstr "Code 128B"
+#: ../src/ui.c:156
+msgid "Template _Designer..."
+msgstr "Mall_designer..."
 
-#: ../src/bc.c:142
-msgid "Interleaved 2 of 5"
-msgstr ""
+#: ../src/ui.c:158
+msgid "Create a custom template"
+msgstr "Skapa en anpassad mall"
 
-#: ../src/bc.c:145
-msgid "Codabar"
-msgstr "Codabar"
+#: ../src/ui.c:163
+msgid "_Close"
+msgstr "S_täng"
 
-#: ../src/bc.c:148
-msgid "MSI"
-msgstr "MSI"
+#: ../src/ui.c:165
+msgid "Close the current file"
+msgstr "Stäng aktuell fil"
 
-#: ../src/bc.c:151
-msgid "Plessey"
-msgstr "Plessey"
+#: ../src/ui.c:170
+msgid "_Quit"
+msgstr "A_vsluta"
 
-#: ../src/bc.c:154
-msgid "IEC16022 (DataMatrix)"
-msgstr "IEC16022 (DataMatrix)"
+#: ../src/ui.c:172
+msgid "Quit the program"
+msgstr "Avsluta programmet"
 
-#: ../src/label.c:531
-msgid "Untitled"
-msgstr "Namnlös"
+#: ../src/ui.c:179
+#: ../src/ui.c:181
+#: ../src/ui.c:966
+msgid "Undo"
+msgstr "Ångra"
 
-#: ../src/label-barcode.c:426
-msgid "Barcode data empty"
-msgstr ""
+#: ../src/ui.c:186
+#: ../src/ui.c:188
+#: ../src/ui.c:973
+msgid "Redo"
+msgstr "Gör om"
 
-#: ../src/label-barcode.c:430
-msgid "Invalid barcode data"
-msgstr "Ogiltig streckkodsdata"
+#: ../src/ui.c:193
+msgid "Cut"
+msgstr "Klipp ut"
 
-#: ../src/xml-label.c:189
-#: ../src/xml-label.c:226
-msgid "xmlParseFile error"
-msgstr "xmlParseFile-fel"
+#: ../src/ui.c:195
+msgid "Cut the selection"
+msgstr "Klipp ut markeringen"
 
-#: ../src/xml-label.c:262
-msgid "No document root"
-msgstr "Ingen dokumentrot"
+#: ../src/ui.c:200
+msgid "Copy"
+msgstr "Kopiera"
 
-#: ../src/xml-label.c:270
-msgid "Importing from glabels 0.1 format"
-msgstr "Importerar från formatet glabels 0.1"
+#: ../src/ui.c:202
+msgid "Copy the selection"
+msgstr "Kopiera markeringen"
 
-#: ../src/xml-label.c:279
-msgid "Importing from glabels 0.4 format"
-msgstr "Importerar från formatet glabels 0.4"
+#: ../src/ui.c:209
+msgid "Paste the clipboard"
+msgstr "Klistra in urklipp"
 
-#: ../src/xml-label.c:288
-#, c-format
-msgid "Unknown glabels Namespace -- Using %s"
-msgstr "Okänd glabels Namespace -- Använder %s"
+#: ../src/ui.c:216
+msgid "Delete the selected objects"
+msgstr "Ta bort markerade objekt"
 
-#: ../src/xml-label.c:319
-#: ../src/xml-label-04.c:79
-#, c-format
-msgid "Bad root node = \"%s\""
-msgstr ""
+#: ../src/ui.c:221
+msgid "Select All"
+msgstr "Markera allt"
 
-#: ../src/xml-label.c:356
-#, c-format
-msgid "bad node in Document node =  \"%s\""
-msgstr ""
+#: ../src/ui.c:223
+msgid "Select all objects"
+msgstr "Markera alla objekt"
 
-#: ../src/xml-label.c:401
-#: ../src/xml-label-04.c:127
-#, c-format
-msgid "bad node =  \"%s\""
-msgstr ""
+#: ../src/ui.c:228
+msgid "Un-select All"
+msgstr "Avmarkera allt"
 
-#: ../src/xml-label.c:840
-#, c-format
-msgid "bad node in Data node =  \"%s\""
-msgstr ""
+#: ../src/ui.c:230
+msgid "Remove all selections"
+msgstr "Ta bort alla markeringar"
 
-#: ../src/xml-label.c:1077
-#: ../libglabels/xml-template.c:670
-msgid "Utf8 conversion error."
-msgstr ""
+#: ../src/ui.c:235
+msgid "Preferences"
+msgstr "Inställningar"
 
-#: ../src/xml-label.c:1084
-msgid "Problem saving xml file."
-msgstr ""
+#: ../src/ui.c:237
+msgid "Configure the application"
+msgstr "Konfigurera programmet"
 
-#: ../src/merge.c:170
-#: ../src/merge.c:211
-#: ../src/merge.c:375
-#: ../src/merge.c:378
-msgid "None"
-msgstr "Ingen"
+#: ../src/ui.c:244
+msgid "Zoom in"
+msgstr "Zooma in"
 
-#: ../src/merge-init.c:59
-msgid "Text file with comma delimeters (CSV)"
+#: ../src/ui.c:246
+msgid "Increase magnification"
 msgstr ""
 
-#: ../src/merge-init.c:66
-msgid "Text file with colon delimeters"
-msgstr ""
+#: ../src/ui.c:251
+msgid "Zoom out"
+msgstr "Zooma ut"
 
-#: ../src/merge-init.c:73
-msgid "Text file with tab delimeters"
+#: ../src/ui.c:253
+msgid "Decrease magnification"
 msgstr ""
 
-#: ../src/merge-init.c:82
-msgid "Data from default Evolution Addressbook"
+#: ../src/ui.c:258
+msgid "Zoom 1 to 1"
 msgstr ""
 
-#: ../src/merge-init.c:88
-msgid "Data from a file containing VCards"
+#: ../src/ui.c:260
+msgid "Restore scale to 100%"
 msgstr ""
 
-#: ../src/merge-evolution.c:309
-msgid "Couldn't construct query"
+#: ../src/ui.c:265
+msgid "Zoom to fit"
 msgstr ""
 
-#: ../src/merge-evolution.c:315
-#: ../src/merge-evolution.c:326
-msgid "Couldn't open addressbook."
-msgstr "Kunde inte öppna adressboken."
-
-#: ../src/merge-evolution.c:341
-msgid "Couldn't list available fields."
-msgstr "Kunde inte lista tillgängliga fält."
-
-#: ../src/merge-evolution.c:377
-msgid "Couldn't get contacts."
-msgstr "Kunde inte få tag på kontakter."
-
-#: ../src/wdgt-print-copies.c:153
-msgid "Sheets:"
+#: ../src/ui.c:267
+msgid "Set scale to fit window"
 msgstr ""
 
-#: ../src/wdgt-print-copies.c:173
-msgid "from:"
-msgstr "från:"
-
-#: ../src/wdgt-print-copies.c:178
-msgid "to:"
-msgstr "till:"
-
-#: ../src/wdgt-print-merge.c:154
-msgid "Start on label"
+#: ../src/ui.c:274
+msgid "Select Mode"
 msgstr ""
 
-#: ../src/wdgt-print-merge.c:159
-msgid "on 1st sheet"
+#: ../src/ui.c:276
+msgid "Select, move and modify objects"
 msgstr ""
 
-#: ../src/wdgt-print-merge.c:168
-msgid "Copies:"
-msgstr "Kopior"
+#: ../src/ui.c:281
+#: ../src/view-text.c:102
+#: ../data/ui/object-editor.ui.h:29
+#: ../data/ui/prefs-dialog.ui.h:17
+msgid "Text"
+msgstr "Text"
 
-#: ../src/wdgt-print-merge.c:173
-msgid "Collate"
-msgstr "Sortera"
+#: ../src/ui.c:288
+msgid "Box"
+msgstr "Rektangel"
 
-#: ../src/wdgt-media-select.c:288
-#: ../src/wdgt-media-select.c:292
-#: ../src/wdgt-media-select.c:297
-#: ../src/wdgt-media-select.c:306
-#: ../src/wdgt-media-select.c:309
-#: ../src/wdgt-media-select.c:402
-#: ../src/wdgt-media-select.c:609
-#: ../src/wdgt-media-select.c:618
-msgid "Any"
-msgstr "Alla"
+#: ../src/ui.c:290
+msgid "Create box/rectangle object"
+msgstr ""
 
-#: ../src/wdgt-media-select.c:643
-#, c-format
-msgid "%d per sheet"
-msgstr "%d per ark"
+#: ../src/ui.c:295
+#: ../data/ui/object-editor.ui.h:18
+#: ../data/ui/prefs-dialog.ui.h:9
+msgid "Line"
+msgstr "Linje"
 
-#: ../src/wdgt-media-select.c:673
-#, c-format
-msgid "%s x %s %s"
-msgstr "%s x %s %s"
+#: ../src/ui.c:302
+msgid "Ellipse"
+msgstr "Ellips"
 
-#: ../src/wdgt-media-select.c:678
-#, c-format
-msgid "%.5g x %.5g %s"
-msgstr "%.5g x %.5g %s"
+#: ../src/ui.c:304
+msgid "Create ellipse/circle object"
+msgstr ""
 
-#: ../src/wdgt-media-select.c:689
-#: ../src/wdgt-media-select.c:703
-#, c-format
-msgid "%s %s diameter"
-msgstr "%s %s diameter"
+#: ../src/ui.c:309
+#: ../data/ui/object-editor.ui.h:15
+msgid "Image"
+msgstr "Bild"
 
-#: ../src/wdgt-media-select.c:693
-#: ../src/wdgt-media-select.c:707
-#, c-format
-msgid "%.5g %s diameter"
-msgstr "%.5g %s diameter"
+#: ../src/ui.c:316
+msgid "Barcode"
+msgstr "Streckkod"
 
-#: ../src/wdgt-media-select.c:781
-msgid "No recent templates found."
-msgstr "Inga tidigare mallar hittades."
+#: ../src/ui.c:325
+msgid "Raise object to top"
+msgstr ""
 
-#: ../src/wdgt-media-select.c:782
-msgid "Try selecting a template from the \"Search all templates\" page."
-msgstr "Prova att välja en mall från sidan \"Sök alla mallar\"."
+#: ../src/ui.c:332
+msgid "Lower object to bottom"
+msgstr ""
 
-#: ../src/wdgt-media-select.c:861
-msgid "No match."
+#: ../src/ui.c:339
+msgid "Rotate object 90 degrees counter-clockwise"
 msgstr ""
 
-#: ../src/wdgt-media-select.c:862
-msgid "Try selecting a different brand, page size or category."
+#: ../src/ui.c:346
+msgid "Rotate object 90 degrees clockwise"
 msgstr ""
 
-#. This is the default custom color
-#: ../src/mygal/color-palette.c:389
-msgid "custom"
-msgstr "anpassad"
+#: ../src/ui.c:353
+msgid "Flip object horizontally"
+msgstr ""
 
-#. "Custom" color - we'll pop up a GtkColorButton
-#: ../src/mygal/color-palette.c:431
-msgid "Custom Color:"
-msgstr "Anpassad färg:"
+#: ../src/ui.c:360
+msgid "Flip object vertically"
+msgstr ""
 
-#: ../src/mygal/color-palette.c:439
-msgid "Choose Custom Color"
-msgstr "Välj anpassad färg"
+#: ../src/ui.c:367
+msgid "Align objects to left edges"
+msgstr ""
 
-#: ../src/mygal/color-palette.c:572
-msgid "black"
-msgstr "svart"
+#: ../src/ui.c:374
+msgid "Align objects to right edges"
+msgstr ""
 
-#: ../src/mygal/color-palette.c:573
-msgid "light brown"
-msgstr "ljusbrun"
+#: ../src/ui.c:381
+msgid "Align objects to horizontal centers"
+msgstr ""
 
-#: ../src/mygal/color-palette.c:574
-msgid "brown gold"
+#: ../src/ui.c:388
+msgid "Align objects to top edges"
 msgstr ""
 
-#: ../src/mygal/color-palette.c:575
-msgid "dark green #2"
-msgstr "mörkgrön 2"
+#: ../src/ui.c:395
+msgid "Align objects to bottom edges"
+msgstr ""
 
-#: ../src/mygal/color-palette.c:576
-msgid "navy"
-msgstr "marin"
+#: ../src/ui.c:402
+msgid "Align objects to vertical centers"
+msgstr ""
 
-#: ../src/mygal/color-palette.c:577
-#: ../src/mygal/color-palette.c:633
-msgid "dark blue"
-msgstr "mörkblå"
+#: ../src/ui.c:409
+msgid "Center objects to horizontal label center"
+msgstr ""
 
-#: ../src/mygal/color-palette.c:578
-msgid "purple #2"
-msgstr "lila 2"
+#: ../src/ui.c:416
+msgid "Center objects to vertical label center"
+msgstr ""
 
-#: ../src/mygal/color-palette.c:579
-msgid "very dark gray"
-msgstr "mycket mörk grå"
+#: ../src/ui.c:423
+msgid "Edit merge properties"
+msgstr ""
 
-#: ../src/mygal/color-palette.c:582
-#: ../src/mygal/color-palette.c:638
-msgid "dark red"
-msgstr "mörkröd"
+#: ../src/ui.c:430
+msgid "Contents"
+msgstr "Innehåll"
 
-#: ../src/mygal/color-palette.c:583
-msgid "red-orange"
-msgstr "rödorange"
+#: ../src/ui.c:432
+msgid "Open glabels manual"
+msgstr ""
 
-#: ../src/mygal/color-palette.c:584
-msgid "gold"
-msgstr "guld"
+#: ../src/ui.c:437
+msgid "About..."
+msgstr "Om..."
 
-#: ../src/mygal/color-palette.c:585
-msgid "dark green"
-msgstr "mörkgrön"
+#: ../src/ui.c:439
+#: ../src/ui-commands.c:1198
+msgid "About glabels"
+msgstr "Om glabels"
 
-#: ../src/mygal/color-palette.c:586
-#: ../src/mygal/color-palette.c:639
-msgid "dull blue"
+#: ../src/ui.c:449
+msgid "Property toolbar"
 msgstr ""
 
-#: ../src/mygal/color-palette.c:587
-#: ../src/mygal/color-palette.c:640
-msgid "blue"
-msgstr "blå"
-
-#: ../src/mygal/color-palette.c:588
-msgid "dull purple"
+#: ../src/ui.c:451
+msgid "Change the visibility of the property toolbar in the current window"
 msgstr ""
 
-#: ../src/mygal/color-palette.c:589
-msgid "dark grey"
-msgstr "mörkgrå"
-
-#: ../src/mygal/color-palette.c:592
-msgid "red"
-msgstr "röd"
+#: ../src/ui.c:457
+msgid "Grid"
+msgstr "Rutnät"
 
-#: ../src/mygal/color-palette.c:593
-msgid "orange"
-msgstr "orange"
+#: ../src/ui.c:459
+msgid "Change the visibility of the grid in the current window"
+msgstr ""
 
-#: ../src/mygal/color-palette.c:594
-msgid "lime"
-msgstr "lime"
+#: ../src/ui.c:465
+msgid "Markup"
+msgstr ""
 
-#: ../src/mygal/color-palette.c:595
-msgid "dull green"
+#: ../src/ui.c:467
+msgid "Change the visibility of markup lines in the current window"
 msgstr ""
 
-#: ../src/mygal/color-palette.c:596
-msgid "dull blue #2"
+#: ../src/ui.c:478
+msgid "Main toolbar"
 msgstr ""
 
-#: ../src/mygal/color-palette.c:597
-msgid "sky blue #2"
-msgstr "himmelsblå 2"
+#: ../src/ui.c:480
+msgid "Change the visibility of the main toolbar in the current window"
+msgstr ""
 
-#: ../src/mygal/color-palette.c:598
-#: ../src/mygal/color-palette.c:637
-msgid "purple"
-msgstr "lila"
+#: ../src/ui.c:486
+msgid "Drawing toolbar"
+msgstr ""
 
-#: ../src/mygal/color-palette.c:599
-msgid "gray"
-msgstr "grå"
+#: ../src/ui.c:488
+msgid "Change the visibility of the drawing toolbar in the current window"
+msgstr ""
 
-#: ../src/mygal/color-palette.c:602
-#: ../src/mygal/color-palette.c:634
-msgid "magenta"
-msgstr "magenta"
+#: ../src/ui-commands.c:1135
+msgid "Glabels includes contributions from:"
+msgstr "Glabels inkluderar bidrag från:"
 
-#: ../src/mygal/color-palette.c:603
-msgid "bright orange"
-msgstr "klarorange"
+#: ../src/ui-commands.c:1144
+msgid "See the file AUTHORS for additional credits,"
+msgstr "Se filen AUTHORS för ytterligare tack,"
 
-#: ../src/mygal/color-palette.c:604
-#: ../src/mygal/color-palette.c:635
-msgid "yellow"
-msgstr "gul"
+#: ../src/ui-commands.c:1145
+msgid "or visit http://glabels.org/"
+msgstr "eller besök http://glabels.org/"
 
-#: ../src/mygal/color-palette.c:605
-msgid "green"
-msgstr "grön"
+#: ../src/ui-commands.c:1162
+msgid "A label and business card creation program.\n"
+msgstr "Ett program för att skapa etiketter och visitkort.\n"
 
-#: ../src/mygal/color-palette.c:606
-#: ../src/mygal/color-palette.c:636
-msgid "cyan"
-msgstr "cyan"
+#: ../src/ui-commands.c:1166
+msgid "translator-credits"
+msgstr ""
+"Daniel Nylander <po@danielnylander.se>\n"
+"\n"
+"Skicka synpunkter på översättningen till\n"
+"<tp-sv@listor.tp-sv.se>."
 
-#: ../src/mygal/color-palette.c:607
-msgid "bright blue"
-msgstr "klarblå"
+#: ../src/ui-commands.c:1169
+msgid ""
+"gLabels is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"gLabels is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
 
-#: ../src/mygal/color-palette.c:608
-#: ../src/mygal/color-palette.c:625
-msgid "red purple"
-msgstr "rödlila"
+#: ../src/warning-handler.c:69
+msgid "gLabels Error!"
+msgstr "Fel i gLabels!"
 
-#: ../src/mygal/color-palette.c:609
-msgid "light grey"
-msgstr "ljusgrå"
+#: ../src/window.c:284
+msgid "(none) - gLabels"
+msgstr "(ingen) - gLabels"
 
-#: ../src/mygal/color-palette.c:612
-#: ../src/mygal/color-palette.c:629
-msgid "pink"
-msgstr "rosa"
+#: ../src/window.c:485
+msgid "(modified)"
+msgstr "(ändrad)"
 
-#: ../src/mygal/color-palette.c:613
-msgid "light orange"
-msgstr "ljusorange"
+#: ../src/xml-label-04.c:76
+#: ../src/xml-label.c:334
+#, c-format
+msgid "Bad root node = \"%s\""
+msgstr ""
 
-#: ../src/mygal/color-palette.c:614
-#: ../src/mygal/color-palette.c:626
-msgid "light yellow"
-msgstr "ljusgul"
+#: ../src/xml-label-04.c:124
+#: ../src/xml-label.c:417
+#, c-format
+msgid "bad node =  \"%s\""
+msgstr ""
 
-#: ../src/mygal/color-palette.c:615
-msgid "light green"
-msgstr "ljusgrön"
+#: ../src/xml-label.c:200
+#: ../src/xml-label.c:238
+msgid "xmlParseFile error"
+msgstr "xmlParseFile-fel"
 
-#: ../src/mygal/color-palette.c:616
-msgid "light cyan"
-msgstr "ljuscyan"
+#: ../src/xml-label.c:275
+msgid "No document root"
+msgstr "Ingen dokumentrot"
 
-#: ../src/mygal/color-palette.c:617
-#: ../src/mygal/color-palette.c:627
-msgid "light blue"
-msgstr "ljusblå"
+#: ../src/xml-label.c:283
+msgid "Importing from glabels 0.1 format"
+msgstr "Importerar från formatet glabels 0.1"
 
-#: ../src/mygal/color-palette.c:618
-#: ../src/mygal/color-palette.c:631
-msgid "light purple"
-msgstr "ljuslila"
+#: ../src/xml-label.c:292
+msgid "Importing from glabels 0.4 format"
+msgstr "Importerar från formatet glabels 0.4"
 
-#: ../src/mygal/color-palette.c:619
-msgid "white"
-msgstr "vit"
+#: ../src/xml-label.c:302
+#, c-format
+msgid "Unknown glabels Namespace -- Using %s"
+msgstr "Okänd glabels Namespace -- Använder %s"
 
-#: ../src/mygal/color-palette.c:624
-msgid "purplish blue"
+#: ../src/xml-label.c:371
+#, c-format
+msgid "bad node in Document node =  \"%s\""
 msgstr ""
 
-#: ../src/mygal/color-palette.c:628
-msgid "dark purple"
-msgstr "mörklila"
+#: ../src/xml-label.c:877
+#, c-format
+msgid "bad node in Data node =  \"%s\""
+msgstr ""
 
-#: ../src/mygal/color-palette.c:630
-msgid "sky blue"
-msgstr "himmelsblå"
+#: ../src/xml-label.c:953
+#, c-format
+msgid "Unknown embedded file format: \"%s\""
+msgstr ""
 
-#: ../src/critical-error-handler.c:73
-msgid "gLabels Fatal Error!"
-msgstr "Ödesdigert fel i gLabels!"
+#: ../src/xml-label.c:1159
+#: ../libglabels/xml-template.c:802
+msgid "Utf8 conversion error."
+msgstr ""
 
-#: ../src/warning-handler.c:73
-msgid "gLabels Error!"
-msgstr "Fel i gLabels!"
+#: ../src/xml-label.c:1166
+msgid "Problem saving xml file."
+msgstr ""
 
 #. Create and append an "Other" entry.
-#: ../libglabels/db.c:118
+#. Translators: "Other" here means other page size.  Meaning a page size
+#. * other than the standard ones that libglabels knows about such as
+#. * "letter", "A4", etc.
+#: ../libglabels/db.c:270
 msgid "Other"
 msgstr ""
 
 #. Create and append a "User defined" entry.
-#: ../libglabels/db.c:131
+#: ../libglabels/db.c:279
 msgid "User defined"
 msgstr "Användardefinierad"
 
-#: ../libglabels/db.c:482
+#: ../libglabels/db.c:665
 msgid "Unable to locate paper size definitions.  Libglabels may not be installed correctly!"
 msgstr ""
 
-#: ../libglabels/db.c:875
+#: ../libglabels/db.c:1057
 msgid "Unable to locate category definitions.  Libglabels may not be installed correctly!"
 msgstr ""
 
-#: ../libglabels/db.c:1461
+#: ../libglabels/db.c:2097
 msgid "Unable to locate any template files.  Libglabels may not be installed correctly!"
 msgstr ""
 
-#: ../libglabels/db.c:1538
+#: ../libglabels/db.c:2164
+#, c-format
+msgid "%s full page label"
+msgstr ""
+
+#: ../libglabels/template.c:156
+#, c-format
+msgid "Equivalent part (\"%s\") for \"%s\", not previously defined."
+msgstr ""
+
+#.
+#. * Translators: 1st %d = number of labels across a page,
+#. *              2nd %d = number of labels down a page,
+#. *              3rd %d = total number of labels on a page (sheet).
+#.
+#: ../libglabels/template.c:727
+#, c-format
+msgid "%d × %d (%d per sheet)"
+msgstr ""
+
+#. Translators: %d is the total number of labels on a page (sheet).
+#: ../libglabels/template.c:732
 #, c-format
-msgid "Generic %s full page template"
+msgid "%d per sheet"
+msgstr ""
+
+#: ../libglabels/template.c:802
+#: ../libglabels/template.c:808
+#: ../libglabels/template.c:818
+#: ../libglabels/template.c:824
+msgid "diameter"
+msgstr "diameter"
+
+#. The ids are identical to the absolute length units supported in
+#. the CSS2 Specification (Section 4.3.2)
+#. This table must be sorted exactly as the enumerations in lglUnits
+#. [LGL_UNITS_POINT]
+#: ../libglabels/units.c:65
+#: ../data/ui/object-editor.ui.h:40
+#: ../data/ui/prefs-dialog.ui.h:22
+msgid "points"
+msgstr "punkter"
+
+#. [LGL_UNITS_INCH]
+#: ../libglabels/units.c:66
+#: ../data/ui/object-editor.ui.h:39
+#: ../data/ui/template-designer.ui.h:66
+msgid "inches"
+msgstr "tum"
+
+#. [LGL_UNITS_MM]
+#: ../libglabels/units.c:67
+msgid "mm"
+msgstr "mm"
+
+#. [LGL_UNITS_CM]
+#: ../libglabels/units.c:68
+msgid "cm"
+msgstr "cm"
+
+#. [LGL_UNITS_PICA]
+#: ../libglabels/units.c:69
+msgid "picas"
 msgstr ""
 
-#: ../libglabels/xml-template.c:227
+#: ../libglabels/xml-template.c:223
 msgid "Missing name or brand/part attributes."
 msgstr ""
 
@@ -1542,393 +1929,419 @@ msgstr ""
 msgid "Unknown page size id or name \"%s\""
 msgstr ""
 
-#: ../libglabels/xml-template.c:615
-msgid "Missing required \"brand\" or \"part\" attribute, trying deprecated name."
+#: ../libglabels/xml-template.c:275
+msgid "Forward references not supported."
 msgstr ""
 
-#: ../libglabels/xml-template.c:625
-msgid "Name attribute also missing."
+#: ../libglabels/xml-template.c:747
+msgid "Missing required \"brand\" or \"part\" attribute, trying deprecated name."
 msgstr ""
 
-#: ../data/glade/merge-properties-dialog.glade.h:1
-msgid "<b>Record selection/preview</b>"
+#: ../libglabels/xml-template.c:757
+msgid "Name attribute also missing."
 msgstr ""
 
-#: ../data/glade/merge-properties-dialog.glade.h:2
-msgid "<b>Source</b>"
-msgstr "<b>Källa</b>"
-
-#: ../data/glade/merge-properties-dialog.glade.h:3
+#.
+#. * Local Variables:       -- emacs
+#. * mode: C                -- emacs
+#. * c-basic-offset: 8      -- emacs
+#. * tab-width: 8           -- emacs
+#. * indent-tabs-mode: nil  -- emacs
+#. * End:                   -- emacs
+#.
+#: ../data/ui/merge-properties-dialog.ui.h:1
 msgid "Format:"
 msgstr "Format:"
 
-#: ../data/glade/merge-properties-dialog.glade.h:4
+#: ../data/ui/merge-properties-dialog.ui.h:2
 msgid "Location:"
-msgstr "Plats:"
+msgstr ""
+
+#: ../data/ui/merge-properties-dialog.ui.h:3
+msgid "Record selection/preview"
+msgstr ""
 
-#: ../data/glade/merge-properties-dialog.glade.h:5
+#: ../data/ui/merge-properties-dialog.ui.h:4
 msgid "Select all"
 msgstr "Markera allt"
 
-#: ../data/glade/merge-properties-dialog.glade.h:6
+#: ../data/ui/merge-properties-dialog.ui.h:5
+msgid "Source"
+msgstr "Källa"
+
+#: ../data/ui/merge-properties-dialog.ui.h:6
 msgid "Unselect all"
 msgstr "Avmarkera allt"
 
-#: ../data/glade/merge-properties-dialog.glade.h:7
-#: ../data/glade/object-editor.glade.h:39
-msgid "dialog1"
-msgstr "dialog1"
+#: ../data/ui/media-select.ui.h:1
+msgid "Brand:"
+msgstr ""
 
-#: ../data/glade/new-label-dialog.glade.h:1
-msgid "<b>Label orientation</b>"
-msgstr "<b>Etikettorientering</b>"
+#: ../data/ui/media-select.ui.h:2
+msgid "Category:"
+msgstr "Kategori:"
 
-#: ../data/glade/new-label-dialog.glade.h:2
-msgid "<b>Media type</b>"
-msgstr "<b>Mediatyp</b>"
+#: ../data/ui/media-select.ui.h:3
+msgid "Custom"
+msgstr "Anpassad"
 
-#: ../data/glade/object-editor.glade.h:2
-#, no-c-format
-msgid "%"
-msgstr "%"
+#: ../data/ui/media-select.ui.h:4
+#: ../data/ui/new-label-dialog.ui.h:6
+#: ../data/ui/template-designer.ui.h:45
+msgid "Page size:"
+msgstr "Sidstorlek:"
+
+#: ../data/ui/media-select.ui.h:5
+msgid "Recent"
+msgstr ""
+
+#: ../data/ui/media-select.ui.h:6
+#, fuzzy
+msgid "Search all"
+msgstr "Markera allt"
+
+#: ../data/ui/new-label-dialog.ui.h:1
+msgid "Choose label or card product from hundreds of predefined templates or define your own."
+msgstr ""
+
+#: ../data/ui/new-label-dialog.ui.h:2
+#: ../data/ui/template-designer.ui.h:29
+msgid "Description:"
+msgstr "Beskrivning:"
+
+#: ../data/ui/new-label-dialog.ui.h:3
+#, fuzzy
+msgid "Label size:"
+msgstr "Sidstorlek:"
+
+#: ../data/ui/new-label-dialog.ui.h:4
+msgid "Layout:"
+msgstr "Layout:"
+
+#: ../data/ui/new-label-dialog.ui.h:5
+msgid "Normal"
+msgstr "Normal"
+
+#: ../data/ui/new-label-dialog.ui.h:7
+#: ../data/ui/template-designer.ui.h:46
+msgid "Part #:"
+msgstr ""
+
+#: ../data/ui/new-label-dialog.ui.h:8
+msgid "Please review and confirm your selection."
+msgstr ""
+
+#: ../data/ui/new-label-dialog.ui.h:9
+msgid "Rotated"
+msgstr "Roterad"
 
-#: ../data/glade/object-editor.glade.h:3
-msgid "00000000000 00000"
-msgstr "00000000000 00000"
+#: ../data/ui/new-label-dialog.ui.h:10
+msgid "Select orientation of label content."
+msgstr ""
+
+#: ../data/ui/new-label-dialog.ui.h:11
+msgid "Similar products:"
+msgstr ""
 
-#: ../data/glade/object-editor.glade.h:4
-msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
+#: ../data/ui/new-label-dialog.ui.h:12
+msgid "Vendor:"
 msgstr ""
 
-#: ../data/glade/object-editor.glade.h:5
-#: ../data/glade/prefs-dialog.glade.h:7
+#: ../data/ui/object-editor.ui.h:2
+#, no-c-format
+msgid "%"
+msgstr "%"
+
+#: ../data/ui/object-editor.ui.h:3
+#: ../data/ui/prefs-dialog.ui.h:2
 msgid "Alignment:"
 msgstr "Justering:"
 
-#: ../data/glade/object-editor.glade.h:6
+#: ../data/ui/object-editor.ui.h:4
 msgid "Allow merge to automatically shrink text"
 msgstr ""
 
-#: ../data/glade/object-editor.glade.h:7
+#: ../data/ui/object-editor.ui.h:5
 msgid "Angle:"
 msgstr "Vinkel:"
 
-#: ../data/glade/object-editor.glade.h:8
+#: ../data/ui/object-editor.ui.h:6
+msgid "Backend:"
+msgstr ""
+
+#: ../data/ui/object-editor.ui.h:7
 msgid "Checksum"
 msgstr "Kontrollsumma"
 
-#: ../data/glade/object-editor.glade.h:9
-#: ../data/glade/prefs-dialog.glade.h:8
+#: ../data/ui/object-editor.ui.h:8
+#: ../data/ui/prefs-dialog.ui.h:3
 msgid "Color:"
 msgstr "Färg:"
 
-#: ../data/glade/object-editor.glade.h:11
+#: ../data/ui/object-editor.ui.h:10
 msgid "Enable shadow"
 msgstr "Aktivera skugga"
 
-#: ../data/glade/object-editor.glade.h:12
+#: ../data/ui/object-editor.ui.h:11
 msgid "Family:"
 msgstr "Familj:"
 
-#: ../data/glade/object-editor.glade.h:13
+#: ../data/ui/object-editor.ui.h:12
 msgid "File:"
 msgstr "Fil:"
 
-#: ../data/glade/object-editor.glade.h:14
+#: ../data/ui/object-editor.ui.h:13
+#: ../data/ui/prefs-dialog.ui.h:5
 msgid "Fill"
 msgstr ""
 
-#: ../data/glade/object-editor.glade.h:15
-#: ../data/glade/template-designer.glade.h:30
+#: ../data/ui/object-editor.ui.h:14
+#: ../data/ui/template-designer.ui.h:33
 msgid "Height:"
 msgstr "Höjd:"
 
-#: ../data/glade/object-editor.glade.h:17
-msgid "Insert merge field"
-msgstr ""
-
-#: ../data/glade/object-editor.glade.h:18
+#: ../data/ui/object-editor.ui.h:16
 msgid "Key:"
 msgstr ""
 
-#: ../data/glade/object-editor.glade.h:19
+#: ../data/ui/object-editor.ui.h:17
 msgid "Length:"
 msgstr "Längd:"
 
-#: ../data/glade/object-editor.glade.h:21
-#: ../data/glade/prefs-dialog.glade.h:12
+#: ../data/ui/object-editor.ui.h:19
+#: ../data/ui/prefs-dialog.ui.h:10
 msgid "Line Spacing:"
 msgstr ""
 
-#: ../data/glade/object-editor.glade.h:22
+#: ../data/ui/object-editor.ui.h:20
 msgid "Literal:"
 msgstr ""
 
-#: ../data/glade/object-editor.glade.h:23
+#: ../data/ui/object-editor.ui.h:21
 msgid "Opacity:"
 msgstr "Opacitet:"
 
-#: ../data/glade/object-editor.glade.h:24
+#: ../data/ui/object-editor.ui.h:22
 msgid "Position"
 msgstr "Position"
 
-#: ../data/glade/object-editor.glade.h:25
+#: ../data/ui/object-editor.ui.h:23
 msgid "Reset image size"
 msgstr "Återställ bildstorlek"
 
-#: ../data/glade/object-editor.glade.h:26
-msgid "Select A File"
-msgstr "Välj en fil"
-
-#: ../data/glade/object-editor.glade.h:27
+#: ../data/ui/object-editor.ui.h:24
 msgid "Shadow"
 msgstr "Skugga"
 
-#: ../data/glade/object-editor.glade.h:28
+#: ../data/ui/object-editor.ui.h:25
 msgid "Size"
 msgstr "Storlek"
 
-#: ../data/glade/object-editor.glade.h:29
+#: ../data/ui/object-editor.ui.h:26
 msgid "Size:"
 msgstr "Storlek:"
 
-#: ../data/glade/object-editor.glade.h:30
+#: ../data/ui/object-editor.ui.h:27
 msgid "Style"
 msgstr "Stil"
 
-#: ../data/glade/object-editor.glade.h:31
+#: ../data/ui/object-editor.ui.h:28
 msgid "Style:"
 msgstr "Stil:"
 
-#: ../data/glade/object-editor.glade.h:33
-#: ../data/glade/prefs-dialog.glade.h:20
-#: ../data/glade/template-designer.glade.h:61
+#: ../data/ui/object-editor.ui.h:30
+#: ../data/ui/prefs-dialog.ui.h:20
+#: ../data/ui/template-designer.ui.h:64
 msgid "Width:"
 msgstr "Bredd:"
 
-#: ../data/glade/object-editor.glade.h:34
+#: ../data/ui/object-editor.ui.h:31
 msgid "X Offset:"
 msgstr ""
 
-#: ../data/glade/object-editor.glade.h:35
+#: ../data/ui/object-editor.ui.h:32
 msgid "X:"
 msgstr "X:"
 
-#: ../data/glade/object-editor.glade.h:36
+#: ../data/ui/object-editor.ui.h:33
 msgid "Y Offset:"
 msgstr ""
 
-#: ../data/glade/object-editor.glade.h:37
+#: ../data/ui/object-editor.ui.h:34
 msgid "Y:"
 msgstr "Y:"
 
-#: ../data/glade/object-editor.glade.h:38
+#: ../data/ui/object-editor.ui.h:35
 msgid "degrees"
 msgstr "grader"
 
-#: ../data/glade/object-editor.glade.h:40
+#: ../data/ui/object-editor.ui.h:36
+msgid "dialog1"
+msgstr "dialog1"
+
+#: ../data/ui/object-editor.ui.h:37
 msgid "digits:"
 msgstr ""
 
-#: ../data/glade/object-editor.glade.h:41
+#: ../data/ui/object-editor.ui.h:38
 msgid "format:"
 msgstr "format:"
 
-#: ../data/glade/prefs-dialog.glade.h:1
+#: ../data/ui/prefs-dialog.ui.h:1
 msgid "   "
 msgstr "   "
 
-#: ../data/glade/prefs-dialog.glade.h:2
-msgid "<span weight=\"bold\">Default page size</span>"
-msgstr ""
-
-#: ../data/glade/prefs-dialog.glade.h:3
-msgid "<span weight=\"bold\">Fill</span>"
-msgstr ""
-
-#: ../data/glade/prefs-dialog.glade.h:4
-msgid "<span weight=\"bold\">Line</span>"
-msgstr "<span weight=\"bold\">Linje</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:5
-msgid "<span weight=\"bold\">Text</span>"
-msgstr "<span weight=\"bold\">Text</span>"
-
-#: ../data/glade/prefs-dialog.glade.h:6
-msgid "<span weight=\"bold\">Units</span>"
-msgstr "<span weight=\"bold\">Enheter</span>"
+#: ../data/ui/prefs-dialog.ui.h:4
+#, fuzzy
+msgid "Default page size"
+msgstr "Återställ bildstorlek"
 
-#: ../data/glade/prefs-dialog.glade.h:9
+#: ../data/ui/prefs-dialog.ui.h:6
 msgid "Font:"
 msgstr "Typsnitt:"
 
-#: ../data/glade/prefs-dialog.glade.h:10
+#: ../data/ui/prefs-dialog.ui.h:7
 msgid "ISO A4"
 msgstr "ISO A4"
 
-#: ../data/glade/prefs-dialog.glade.h:11
+#: ../data/ui/prefs-dialog.ui.h:8
 msgid "Inches"
 msgstr "Tum"
 
-#: ../data/glade/prefs-dialog.glade.h:13
+#: ../data/ui/prefs-dialog.ui.h:11
 msgid "Locale"
 msgstr ""
 
-#: ../data/glade/prefs-dialog.glade.h:14
+#: ../data/ui/prefs-dialog.ui.h:12
 msgid "Millimeters"
 msgstr "Millimeter"
 
-#: ../data/glade/prefs-dialog.glade.h:15
+#: ../data/ui/prefs-dialog.ui.h:13
 msgid "Object defaults"
-msgstr "Objektstandard"
+msgstr ""
 
-#: ../data/glade/prefs-dialog.glade.h:16
+#: ../data/ui/prefs-dialog.ui.h:14
 msgid "Points"
 msgstr "Punkter"
 
-#: ../data/glade/prefs-dialog.glade.h:17
+#: ../data/ui/prefs-dialog.ui.h:15
 msgid "Select default properties for new objects."
 msgstr ""
 
-#: ../data/glade/prefs-dialog.glade.h:18
+#: ../data/ui/prefs-dialog.ui.h:16
 msgid "Select locale specific behavior."
 msgstr ""
 
-#. Most popular (at top of list)
-#: ../data/glade/prefs-dialog.glade.h:19
-#: ../data/templates/paper-sizes.xml.h:29
+#: ../data/ui/prefs-dialog.ui.h:18
+#: ../templates/paper-sizes.xml.h:35
 msgid "US Letter"
 msgstr "US Letter"
 
-#: ../data/glade/print-custom-widget.glade.h:1
-msgid "<b>Options</b>"
-msgstr "<b>Alternativ</b>"
-
-#: ../data/glade/print-custom-widget.glade.h:2
-msgid "<b>Print control (Merge)</b>"
-msgstr ""
-
-#: ../data/glade/print-custom-widget.glade.h:3
-msgid "<b>Print control (Simple)</b>"
-msgstr ""
+#: ../data/ui/prefs-dialog.ui.h:19
+msgid "Units"
+msgstr "Enheter"
 
-#: ../data/glade/property-bar.glade.h:1
+#: ../data/ui/property-bar.ui.h:1
 msgid "Bold"
 msgstr "Fet"
 
-#: ../data/glade/property-bar.glade.h:2
+#: ../data/ui/property-bar.ui.h:2
 msgid "Center align"
-msgstr "Centerjustera"
-
-#: ../data/glade/property-bar.glade.h:4
-msgid "Font family"
-msgstr "Typsnittsfamilj"
-
-#: ../data/glade/property-bar.glade.h:5
-msgid "Font size"
-msgstr "Typsnittsstorlek"
-
-#: ../data/glade/property-bar.glade.h:6
-msgid "Italic"
-msgstr "Kursiv"
+msgstr ""
 
-#: ../data/glade/property-bar.glade.h:7
+#: ../data/ui/property-bar.ui.h:7
 msgid "Left align"
-msgstr "Vänsterjustera"
-
-#: ../data/glade/property-bar.glade.h:9
-msgid "Line width"
-msgstr "Radbredd"
+msgstr ""
 
-#: ../data/glade/property-bar.glade.h:10
+#: ../data/ui/property-bar.ui.h:10
 msgid "Right align"
-msgstr "Högerjustera"
-
-#: ../data/glade/property-bar.glade.h:11
-msgid "Text Color"
-msgstr "Textfärg"
-
-#: ../data/glade/property-bar.glade.h:12
-msgid "Text color"
-msgstr "Textfärg"
+msgstr ""
 
-#: ../data/glade/template-designer.glade.h:1
+#: ../data/ui/template-designer.ui.h:1
 msgid "(e.g., \"Mailing Labels,\" \"Business Cards,\" ...)"
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:2
+#: ../data/ui/template-designer.ui.h:2
 msgid "(e.g., 8163A)"
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:3
+#: ../data/ui/template-designer.ui.h:3
 msgid "(e.g., Avery, Acme, ...)"
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:4
+#: ../data/ui/template-designer.ui.h:4
 msgid "1. Outer radius:"
-msgstr "1. Yttre radie:"
+msgstr ""
 
-#: ../data/glade/template-designer.glade.h:5
+#: ../data/ui/template-designer.ui.h:5
 msgid "1. Radius:"
 msgstr "1. Radie:"
 
-#: ../data/glade/template-designer.glade.h:6
+#: ../data/ui/template-designer.ui.h:6
 msgid "1. Width:"
 msgstr "1. Bredd:"
 
-#: ../data/glade/template-designer.glade.h:7
+#: ../data/ui/template-designer.ui.h:7
 msgid "2. Height:"
 msgstr "2. Höjd:"
 
-#: ../data/glade/template-designer.glade.h:8
+#: ../data/ui/template-designer.ui.h:8
 msgid "2. Inner radius:"
-msgstr "2. Inre radie:"
+msgstr ""
 
-#: ../data/glade/template-designer.glade.h:9
+#: ../data/ui/template-designer.ui.h:9
 msgid "2. Waste (overprint allowed):"
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:10
+#: ../data/ui/template-designer.ui.h:10
 msgid "3. Clipping width:"
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:11
+#: ../data/ui/template-designer.ui.h:11
 msgid "3. Margin"
 msgstr "3. Marginal"
 
-#: ../data/glade/template-designer.glade.h:12
+#: ../data/ui/template-designer.ui.h:12
 msgid "3. Round (radius of corner):"
 msgstr "3. Rund (radie för hörn):"
 
-#: ../data/glade/template-designer.glade.h:13
+#: ../data/ui/template-designer.ui.h:13
+msgid "3. Waste (overprint allowed):"
+msgstr ""
+
+#: ../data/ui/template-designer.ui.h:14
 msgid "4. Clipping height:"
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:14
+#: ../data/ui/template-designer.ui.h:15
 msgid "4. Horiz. waste (overprint allowed):"
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:15
+#: ../data/ui/template-designer.ui.h:16
+msgid "4. Margin"
+msgstr "4. Marginal"
+
+#: ../data/ui/template-designer.ui.h:17
 msgid "5. Vert. waste (overprint allowed):"
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:16
+#: ../data/ui/template-designer.ui.h:18
 msgid "5. Waste (overprint allowed):"
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:17
+#: ../data/ui/template-designer.ui.h:19
 msgid "6. Margin"
 msgstr "6. Marginal"
 
-#: ../data/glade/template-designer.glade.h:18
+#: ../data/ui/template-designer.ui.h:20
 msgid "Brand/Manufacturer:"
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:19
+#: ../data/ui/template-designer.ui.h:21
 msgid "CD/DVD (including credit card CDs)"
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:20
+#: ../data/ui/template-designer.ui.h:22
 msgid ""
 "Congratulations!\n"
 "\n"
@@ -1946,23 +2359,23 @@ msgstr ""
 "Om inte, klicka på \"Avbryt\" för att förkasta din design\n"
 "eller \"Bakåt\" för att fortsätta redigera denna design."
 
-#: ../data/glade/template-designer.glade.h:27
-msgid "Description:"
-msgstr "Beskrivning:"
-
-#: ../data/glade/template-designer.glade.h:28
+#: ../data/ui/template-designer.ui.h:30
 msgid "Distance from left edge (x0):"
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:29
+#: ../data/ui/template-designer.ui.h:31
 msgid "Distance from top edge (y0):"
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:31
+#: ../data/ui/template-designer.ui.h:32
+msgid "Elliptical"
+msgstr ""
+
+#: ../data/ui/template-designer.ui.h:34
 msgid "Horizontal pitch (dx):"
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:32
+#: ../data/ui/template-designer.ui.h:35
 msgid ""
 "How many layouts will your template contain? \n"
 "\n"
@@ -1971,88 +2384,79 @@ msgid ""
 "The second example illustrates when two layouts are needed."
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:37
+#: ../data/ui/template-designer.ui.h:40
 msgid "Layout #1"
 msgstr "Layout #1"
 
-#: ../data/glade/template-designer.glade.h:38
+#: ../data/ui/template-designer.ui.h:41
 msgid "Layout #2"
 msgstr "Layout #2"
 
-#: ../data/glade/template-designer.glade.h:39
+#: ../data/ui/template-designer.ui.h:42
 msgid "Number across (nx):"
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:40
+#: ../data/ui/template-designer.ui.h:43
 msgid "Number down (ny):"
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:41
+#: ../data/ui/template-designer.ui.h:44
 msgid "Number of layouts:"
 msgstr "Antal layouter:"
 
-#: ../data/glade/template-designer.glade.h:42
-#: ../data/glade/wdgt-media-select.glade.h:3
-msgid "Page size:"
-msgstr "Sidstorlek:"
-
-#: ../data/glade/template-designer.glade.h:43
-msgid "Part #:"
-msgstr ""
-
-#: ../data/glade/template-designer.glade.h:44
+#: ../data/ui/template-designer.ui.h:47
 msgid "Please enter the following identifying information about the template stationery."
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:45
+#: ../data/ui/template-designer.ui.h:48
 msgid "Please enter the following layout information."
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:46
+#: ../data/ui/template-designer.ui.h:49
 msgid "Please enter the following size parameters of a single label in your template."
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:47
+#: ../data/ui/template-designer.ui.h:50
 msgid "Please enter the following size parameters of a single label or card in your template."
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:48
+#: ../data/ui/template-designer.ui.h:51
 msgid "Please select the basic shape of the labels or cards."
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:49
+#: ../data/ui/template-designer.ui.h:52
 msgid "Please select the page size of the template stationery."
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:50
+#: ../data/ui/template-designer.ui.h:53
 msgid "Print test sheet"
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:51
+#: ../data/ui/template-designer.ui.h:54
 msgid "Rectangular or square (can have rounded corners)"
 msgstr "Rektangulär eller fyrkantig (kan ha runda hörn)"
 
-#: ../data/glade/template-designer.glade.h:52
+#: ../data/ui/template-designer.ui.h:55
 msgid "Round"
 msgstr "Rund"
 
-#: ../data/glade/template-designer.glade.h:53
+#: ../data/ui/template-designer.ui.h:56
 msgid ""
 "Templates needing\n"
 "two layouts."
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:55
+#: ../data/ui/template-designer.ui.h:58
 msgid ""
 "Templates needing only\n"
 "one layout."
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:57
+#: ../data/ui/template-designer.ui.h:60
 msgid "Vertical pitch (dy):"
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:58
+#: ../data/ui/template-designer.ui.h:61
 msgid ""
 "Welcome to the gLabels Template Designer.\n"
 "\n"
@@ -2062,394 +2466,457 @@ msgstr ""
 "\n"
 "Denna dialog hjälper dig att skapa en anpassad gLabels-mall."
 
-#: ../data/glade/template-designer.glade.h:62
-msgid "cd_size_page"
-msgstr ""
+#: ../data/ui/template-designer.ui.h:65
+#, fuzzy
+msgid "ellipse_page"
+msgstr "Ellips"
 
-#: ../data/glade/template-designer.glade.h:63
-msgid "finish_page"
-msgstr ""
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:1
+msgid "Collate"
+msgstr "Sortera"
 
-#: ../data/glade/template-designer.glade.h:65
-msgid "layout_page"
-msgstr ""
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:2
+msgid "Copies"
+msgstr "Kopior"
 
-#: ../data/glade/template-designer.glade.h:66
-msgid "name_page"
-msgstr ""
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:3
+msgid "Copies:"
+msgstr "Kopior"
 
-#: ../data/glade/template-designer.glade.h:67
-msgid "nlayouts_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:5
+msgid "Merge Control"
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:68
-msgid "pg_size_page"
-msgstr ""
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:6
+msgid "Options"
+msgstr "Alternativ"
 
-#: ../data/glade/template-designer.glade.h:69
-msgid "rect_size_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:7
+msgid "Sheets:"
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:70
-msgid "round_size_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:8
+msgid "Start on label"
 msgstr ""
 
-#: ../data/glade/template-designer.glade.h:71
-msgid "shape_page"
-msgstr ""
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:9
+msgid "from:"
+msgstr "från:"
 
-#: ../data/glade/template-designer.glade.h:72
-msgid "start_page"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:10
+msgid "on 1st sheet"
 msgstr ""
 
-#: ../data/glade/wdgt-media-select.glade.h:1
-msgid "Brand:"
-msgstr ""
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:14
+msgid "to:"
+msgstr "till:"
 
-#: ../data/glade/wdgt-media-select.glade.h:2
-msgid "Category:"
-msgstr "Kategori:"
+#: ../data/desktop/glabels-3.0.desktop.in.h:1
+msgid "Create labels, business cards and media covers"
+msgstr "Skapa etiketter, visitkort och skivomslag"
 
-#: ../data/glade/wdgt-media-select.glade.h:4
-msgid "Recent templates"
-msgstr "Tidigare mallar"
+#: ../data/desktop/glabels-3.0.desktop.in.h:2
+#, fuzzy
+msgid "gLabels Label Designer 3"
+msgstr "Etikettdesignern gLabels"
 
-#: ../data/glade/wdgt-media-select.glade.h:5
-msgid "Search all templates"
-msgstr "Sök alla mallar"
+#: ../data/mime/glabels-3.0.xml.in.h:1
+msgid "gLabels Project File"
+msgstr ""
 
-#: ../data/glade/wdgt-rotate-label.glade.h:1
-msgid "Rotate"
-msgstr "Rotera"
+#. Envelopes
+#: ../templates/paper-sizes.xml.h:2
+msgid "#10 Envelope"
+msgstr ""
 
 #. Other ISO A series sizes
-#: ../data/templates/paper-sizes.xml.h:2
+#: ../templates/paper-sizes.xml.h:4
 msgid "A0"
 msgstr "A0"
 
-#: ../data/templates/paper-sizes.xml.h:3
+#: ../templates/paper-sizes.xml.h:5
 msgid "A1"
 msgstr "A1"
 
-#: ../data/templates/paper-sizes.xml.h:4
+#: ../templates/paper-sizes.xml.h:6
 msgid "A10"
 msgstr "A10"
 
-#: ../data/templates/paper-sizes.xml.h:5
+#: ../templates/paper-sizes.xml.h:7
 msgid "A2"
 msgstr "A2"
 
-#: ../data/templates/paper-sizes.xml.h:6
+#: ../templates/paper-sizes.xml.h:8
 msgid "A3"
 msgstr "A3"
 
-#: ../data/templates/paper-sizes.xml.h:7
+#. Most popular (at top of list)
+#: ../templates/paper-sizes.xml.h:10
 msgid "A4"
 msgstr "A4"
 
-#: ../data/templates/paper-sizes.xml.h:8
+#: ../templates/paper-sizes.xml.h:11
 msgid "A5"
 msgstr "A5"
 
-#: ../data/templates/paper-sizes.xml.h:9
+#: ../templates/paper-sizes.xml.h:12
 msgid "A6"
 msgstr "A6"
 
-#: ../data/templates/paper-sizes.xml.h:10
+#: ../templates/paper-sizes.xml.h:13
 msgid "A7"
 msgstr "A7"
 
-#: ../data/templates/paper-sizes.xml.h:11
+#: ../templates/paper-sizes.xml.h:14
 msgid "A8"
 msgstr "A8"
 
-#: ../data/templates/paper-sizes.xml.h:12
+#: ../templates/paper-sizes.xml.h:15
 msgid "A9"
 msgstr "A9"
 
 #. ISO B series sizes
-#: ../data/templates/paper-sizes.xml.h:14
+#: ../templates/paper-sizes.xml.h:17
 msgid "B0"
 msgstr "B0"
 
-#: ../data/templates/paper-sizes.xml.h:15
+#: ../templates/paper-sizes.xml.h:18
 msgid "B1"
 msgstr "B1"
 
-#: ../data/templates/paper-sizes.xml.h:16
+#: ../templates/paper-sizes.xml.h:19
 msgid "B10"
 msgstr "B10"
 
-#: ../data/templates/paper-sizes.xml.h:17
+#: ../templates/paper-sizes.xml.h:20
 msgid "B2"
 msgstr "B2"
 
-#: ../data/templates/paper-sizes.xml.h:18
+#: ../templates/paper-sizes.xml.h:21
 msgid "B3"
 msgstr "B3"
 
-#: ../data/templates/paper-sizes.xml.h:19
+#: ../templates/paper-sizes.xml.h:22
 msgid "B4"
 msgstr "B4"
 
-#: ../data/templates/paper-sizes.xml.h:20
+#: ../templates/paper-sizes.xml.h:23
 msgid "B5"
 msgstr "B5"
 
-#: ../data/templates/paper-sizes.xml.h:21
+#: ../templates/paper-sizes.xml.h:24
 msgid "B6"
 msgstr "B6"
 
-#: ../data/templates/paper-sizes.xml.h:22
+#: ../templates/paper-sizes.xml.h:25
 msgid "B7"
 msgstr "B7"
 
-#: ../data/templates/paper-sizes.xml.h:23
+#: ../templates/paper-sizes.xml.h:26
 msgid "B8"
 msgstr "B8"
 
-#: ../data/templates/paper-sizes.xml.h:24
+#: ../templates/paper-sizes.xml.h:27
 msgid "B9"
 msgstr "B9"
 
-#: ../data/templates/paper-sizes.xml.h:25
+#: ../templates/paper-sizes.xml.h:28
+msgid "C5"
+msgstr "C5"
+
+#: ../templates/paper-sizes.xml.h:29
+msgid "C6"
+msgstr "C6"
+
+#: ../templates/paper-sizes.xml.h:30
+msgid "DL"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:31
+msgid "Monarch Envelope"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:32
 msgid "US Executive"
 msgstr "US Executive"
 
 #. Other US paper sizes
-#: ../data/templates/paper-sizes.xml.h:27
+#: ../templates/paper-sizes.xml.h:34
 msgid "US Legal"
 msgstr "US Legal"
 
-#: ../data/templates/categories.xml.h:1
+#: ../templates/categories.xml.h:1
 msgid "Any card"
 msgstr ""
 
-#: ../data/templates/categories.xml.h:2
+#: ../templates/categories.xml.h:2
 msgid "Any label"
 msgstr ""
 
-#: ../data/templates/categories.xml.h:3
+#. ===================================================================
+#: ../templates/categories.xml.h:3
+#: ../templates/pearl-iso-templates.xml.h:8
 msgid "Business cards"
 msgstr "Visitkort"
 
-#: ../data/templates/categories.xml.h:4
+#: ../templates/categories.xml.h:4
 msgid "CD/DVD or other media"
 msgstr ""
 
-#: ../data/templates/categories.xml.h:5
+#: ../templates/categories.xml.h:5
 msgid "Mailing/shipping products"
 msgstr ""
 
-#: ../data/templates/categories.xml.h:6
+#: ../templates/categories.xml.h:6
+#: ../templates/misc-iso-templates.xml.h:45
 msgid "Rectangular labels"
 msgstr "Rektangulära etiketter"
 
-#: ../data/templates/categories.xml.h:7
+#. ===================================================================
+#: ../templates/categories.xml.h:7
+#: ../templates/pearl-iso-templates.xml.h:52
 msgid "Round labels"
 msgstr "Runda etiketter"
 
-#: ../data/templates/categories.xml.h:8
+#: ../templates/categories.xml.h:8
 msgid "Square labels"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:2
-#: ../data/templates/avery-us-templates.xml.h:2
-#: ../data/templates/dymo-other-templates.xml.h:4
-#: ../data/templates/misc-iso-templates.xml.h:2
-#: ../data/templates/zweckform-iso-templates.xml.h:2
-msgid "Address Labels"
-msgstr "Adressetiketter"
-
+#. ********************************************************************
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:4
-msgid "Address labels"
+#: ../templates/avery-us-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:2
+#: ../templates/dymo-other-templates.xml.h:4
+#: ../templates/maco-us-templates.xml.h:2
+#: ../templates/misc-iso-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:1
+#: ../templates/zweckform-iso-templates.xml.h:2
+msgid "Address Labels"
 msgstr "Adressetiketter"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:6
-msgid "Allround labels"
-msgstr ""
-
 #. ============================================================
 #. ===================================================================
 #. ********************************************************************
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:8
-#: ../data/templates/avery-us-templates.xml.h:4
-#: ../data/templates/misc-iso-templates.xml.h:12
-#: ../data/templates/misc-us-templates.xml.h:4
-#: ../data/templates/zweckform-iso-templates.xml.h:6
+#: ../templates/avery-us-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:8
+#: ../templates/misc-us-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:6
 msgid "Business Cards"
 msgstr "Visitkort"
 
+#. ===================================================================
 #. ===============================================================
-#: ../data/templates/avery-iso-templates.xml.h:10
-msgid "CD Booklet"
-msgstr ""
-
-#. ===============================================================
-#: ../data/templates/avery-iso-templates.xml.h:12
-msgid "CD Inlet"
-msgstr ""
-
-#. ===============================================================
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:14
-#: ../data/templates/avery-us-templates.xml.h:6
-#: ../data/templates/misc-iso-templates.xml.h:16
-#: ../data/templates/misc-us-templates.xml.h:8
-#: ../data/templates/zweckform-iso-templates.xml.h:8
+#. ********************************************************************
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:6
+#: ../templates/avery-iso-templates.xml.h:14
+#: ../templates/misc-us-templates.xml.h:8
+#: ../templates/misc-iso-templates.xml.h:16
+#: ../templates/pearl-iso-templates.xml.h:24
+#: ../templates/worldlabel-us-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:8
 msgid "CD/DVD Labels"
 msgstr "CD/DVD-etiketter"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:16
-#: ../data/templates/avery-us-templates.xml.h:12
-msgid "Diskette Labels"
-msgstr ""
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:18
-msgid "Diskette labels"
-msgstr ""
-
-#. ===============================================================
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:20
-#: ../data/templates/misc-iso-templates.xml.h:36
-#: ../data/templates/misc-us-templates.xml.h:18
-#: ../data/templates/zweckform-iso-templates.xml.h:16
-msgid "Mailing Labels"
+#: ../templates/avery-us-templates.xml.h:8
+msgid "CD/DVD Labels (Disc Labels)"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:22
-msgid "Mailing labels"
+#: ../templates/avery-us-templates.xml.h:10
+msgid "CD/DVD Labels (Spine Labels)"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:24
-msgid "Mini Address Labels"
+#: ../templates/avery-us-templates.xml.h:12
+#: ../templates/avery-iso-templates.xml.h:16
+#: ../templates/worldlabel-us-templates.xml.h:3
+msgid "Diskette Labels"
 msgstr ""
 
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:26
+#. the LSK labels can be torn in half down the center
+#: ../templates/avery-us-templates.xml.h:14
 #, fuzzy
-msgid "Mini Labels"
-msgstr "Etiketter"
-
-#. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:28
-msgid "Shipping labels"
-msgstr "Leveransetiketter"
+msgid "Divider Labels"
+msgstr "CD-etiketter"
 
 #. ===================================================================
-#: ../data/templates/avery-other-templates.xml.h:2
+#: ../templates/avery-us-templates.xml.h:16
+#: ../templates/avery-other-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:4
 #, fuzzy
 msgid "File Folder Labels"
 msgstr "Stora runda etiketter"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:8
-msgid "CD/DVD Labels (Disc Labels)"
-msgstr ""
-
-#. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:10
-msgid "CD/DVD Labels (Spine Labels)"
-msgstr ""
-
-#. the LSK labels can be torn in half down the center
-#: ../data/templates/avery-us-templates.xml.h:14
-#, fuzzy
-msgid "Divider Labels"
-msgstr "CD-etiketter"
-
-#. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:16
+#: ../templates/avery-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:5
 msgid "Filing Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:18
+#: ../templates/avery-us-templates.xml.h:20
+#: ../templates/worldlabel-us-templates.xml.h:6
 msgid "Full Sheet Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:20
+#: ../templates/avery-us-templates.xml.h:22
 msgid "ID Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:22
+#: ../templates/avery-us-templates.xml.h:24
 #, fuzzy
 msgid "Index Cards"
 msgstr "Visitkort"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:24
+#: ../templates/avery-us-templates.xml.h:26
 msgid "Large Round Labels"
 msgstr "Stora runda etiketter"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:26
+#: ../templates/avery-us-templates.xml.h:28
 msgid "Name Badge Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:28
+#: ../templates/avery-us-templates.xml.h:30
 msgid "Post cards"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:30
-#: ../data/templates/dymo-other-templates.xml.h:12
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:32
+#: ../templates/dymo-other-templates.xml.h:12
+#: ../templates/worldlabel-us-templates.xml.h:8
 msgid "Return Address Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:32
-#: ../data/templates/misc-us-templates.xml.h:28
+#: ../templates/avery-us-templates.xml.h:34
+#: ../templates/maco-us-templates.xml.h:3
+#: ../templates/misc-us-templates.xml.h:30
+#: ../templates/worldlabel-us-templates.xml.h:9
 msgid "Round Labels"
 msgstr "Runda etiketter"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:34
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:36
+#: ../templates/uline-us-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:10
 msgid "Shipping Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:36
+#: ../templates/avery-us-templates.xml.h:38
 msgid "Small Round Labels"
 msgstr "Små runda etiketter"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:38
+#: ../templates/avery-us-templates.xml.h:40
 msgid "Square Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:40
+#: ../templates/avery-us-templates.xml.h:42
 msgid "Tent Cards"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:42
+#: ../templates/avery-us-templates.xml.h:44
+#: ../templates/worldlabel-us-templates.xml.h:11
 msgid "Video Tape Face Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:44
+#: ../templates/avery-us-templates.xml.h:46
+#: ../templates/worldlabel-us-templates.xml.h:12
 msgid "Video Tape Spine Labels"
 msgstr ""
 
-#: ../data/templates/brother-other-templates.xml.h:1
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:4
+msgid "Address labels"
+msgstr "Adressetiketter"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:6
+msgid "Allround labels"
+msgstr ""
+
+#. ===============================================================
+#: ../templates/avery-iso-templates.xml.h:10
+msgid "CD Booklet"
+msgstr ""
+
+#. ===============================================================
+#: ../templates/avery-iso-templates.xml.h:12
+msgid "CD Inlet"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:18
+msgid "Diskette labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:20
+msgid "Identification Labels"
+msgstr ""
+
+#. ===============================================================
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:22
+#: ../templates/misc-us-templates.xml.h:20
+#: ../templates/misc-iso-templates.xml.h:36
+#: ../templates/zweckform-iso-templates.xml.h:16
+msgid "Mailing Labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:24
+msgid "Mailing labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:26
+msgid "Mini Address Labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:28
+#, fuzzy
+msgid "Mini Labels"
+msgstr "Etiketter"
+
+#. ============================================================
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:30
+#: ../templates/misc-iso-templates.xml.h:44
+#: ../templates/zweckform-iso-templates.xml.h:24
+msgid "Rectangular Labels"
+msgstr "Rektangulära etiketter"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:32
+msgid "Shipping labels"
+msgstr "Leveransetiketter"
+
+#: ../templates/brother-other-templates.xml.h:1
 msgid "Multi Purpose Labels 17mm x 54mm"
 msgstr ""
 
-#: ../data/templates/brother-other-templates.xml.h:2
+#: ../templates/brother-other-templates.xml.h:2
 #, fuzzy
 msgid "Shipping Labels 62mm x 100mm"
 msgstr "Leveransetiketter"
@@ -2471,316 +2938,435 @@ msgstr "Leveransetiketter"
 #. *********************************************************************
 #. *********************************************************************
 #.
-#: ../data/templates/brother-other-templates.xml.h:20
+#: ../templates/brother-other-templates.xml.h:20
 msgid "Standard Address Labels 29mm x 90mm"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:2
+#: ../templates/dymo-other-templates.xml.h:2
 msgid "3.5in Diskette"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:6
+#: ../templates/dymo-other-templates.xml.h:6
 msgid "File Folder"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:8
+#: ../templates/dymo-other-templates.xml.h:8
 msgid "Hanging Folder"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:10
+#: ../templates/dymo-other-templates.xml.h:10
 msgid "Large Address Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:14
+#: ../templates/dymo-other-templates.xml.h:14
 msgid "Shipping Address Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:4
-#: ../data/templates/zweckform-iso-templates.xml.h:4
+#: ../templates/misc-us-templates.xml.h:2
+msgid "Business Card CD"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:6
+msgid "CD Template Rectangles"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:10
+msgid "CD/DVD Labels (Face Only)"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:12
+#: ../templates/misc-iso-templates.xml.h:18
+msgid "CD/DVD Labels (face only)"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:14
+msgid "Cassette Labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:16
+msgid "DLT Labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:18
+msgid "Jewel Case Booklet"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:22
+msgid "Microtube labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:24
+msgid "Mini-CD Labels"
+msgstr ""
+
+#: ../templates/misc-us-templates.xml.h:25
+msgid "PRO CD Labels 2-up (CD spine only)"
+msgstr ""
+
+#: ../templates/misc-us-templates.xml.h:26
+msgid "PRO CD Labels 2-up (Face only)"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:42
+msgid "PRO CD Labels 2-up (face only)"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:32
+msgid "Slimline CD Case (rightside up)"
+msgstr ""
+
+#: ../templates/misc-us-templates.xml.h:33
+msgid "Slimline CD Case (upside down)"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:4
+#: ../templates/zweckform-iso-templates.xml.h:4
 msgid "Allround Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:6
+#: ../templates/misc-iso-templates.xml.h:6
 msgid "Arch File Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:8
+#: ../templates/misc-iso-templates.xml.h:8
 msgid "Arch File Labels (large)"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:10
+#: ../templates/misc-iso-templates.xml.h:10
 msgid "Arch File Labels (small)"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:14
+#: ../templates/misc-iso-templates.xml.h:14
 msgid "CD Labels"
 msgstr "CD-etiketter"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:18
-#: ../data/templates/misc-us-templates.xml.h:12
-msgid "CD/DVD Labels (face only)"
-msgstr ""
-
-#. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:20
+#: ../templates/misc-iso-templates.xml.h:20
 msgid "CD/DVD Labels Standard Format (face only)"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:22
+#: ../templates/misc-iso-templates.xml.h:22
 msgid "Diskette Labels (face only)"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:24
+#: ../templates/misc-iso-templates.xml.h:24
 msgid "EPSON Photo Stickers 16"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:26
+#: ../templates/misc-iso-templates.xml.h:26
 msgid "Etiketten"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:28
 msgid "Fridge Magnet Stickers"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:30
+#: ../templates/misc-iso-templates.xml.h:30
 msgid "General Labels"
 msgstr "Allmänna etiketter"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:32
+#: ../templates/misc-iso-templates.xml.h:32
 msgid "Inkjet/Laser Labels 70x37mm"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:38
+#: ../templates/misc-iso-templates.xml.h:38
 msgid "Mailing Labels-2 columns"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:40
+#: ../templates/misc-iso-templates.xml.h:40
 msgid "Mailing Labels-3 columns"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:42
-#: ../data/templates/misc-us-templates.xml.h:26
-msgid "PRO CD Labels 2-up (face only)"
+#: ../templates/misc-iso-templates.xml.h:47
+#: ../templates/pearl-iso-templates.xml.h:60
+msgid "Self-adhesive labels"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:44
-#: ../data/templates/zweckform-iso-templates.xml.h:24
-msgid "Rectangular Labels"
-msgstr "Rektangulära etiketter"
+#: ../templates/misc-iso-templates.xml.h:49
+#, fuzzy
+msgid "Universal Labels"
+msgstr "Allmänna etiketter"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:46
+#: ../templates/misc-iso-templates.xml.h:51
 msgid "Video Labels (face only)"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-other-templates.xml.h:2
+#: ../templates/misc-other-templates.xml.h:2
 msgid "Multi-Purpose Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:2
-msgid "Business Card CD"
+#: ../templates/pearl-iso-templates.xml.h:4
+#, fuzzy
+msgid "Address Labels (STAMPIT)"
+msgstr "Adressetiketter"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:6
+#, fuzzy
+msgid "Bottle labels"
+msgstr "Om glabels"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:10
+msgid "Business cards glossy, both sides printable"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:6
-msgid "CD Template Rectangles"
+#: ../templates/pearl-iso-templates.xml.h:12
+#, fuzzy
+msgid "Business cards high glossy"
+msgstr "Visitkort"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:14
+#, fuzzy
+msgid "Business cards punched"
+msgstr "Visitkort"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:16
+#, fuzzy
+msgid "Business cards punched dull"
+msgstr "Visitkort"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:18
+#, fuzzy
+msgid "Business cards punched glossy"
+msgstr "Visitkort"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:20
+msgid "CD inlet (back)"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:10
-msgid "CD/DVD Labels (Face Only)"
+#: ../templates/pearl-iso-templates.xml.h:22
+msgid "CD inlet (front)"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:14
-msgid "Cassette Labels"
+#: ../templates/pearl-iso-templates.xml.h:26
+msgid "DVD inlet"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:16
-msgid "DLT Labels"
+#: ../templates/pearl-iso-templates.xml.h:28
+msgid "Floppy disk labels"
+msgstr "Diskettetiketter"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:30
+msgid "Foldable business cards"
+msgstr "Vikbara visitkort"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:32
+msgid "Foldable business cards glossy/dull"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:20
-msgid "Microtube labels"
+#: ../templates/pearl-iso-templates.xml.h:34
+msgid "Labels A4"
+msgstr "Etiketter A4"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:36
+msgid "Labels A5"
+msgstr "Etiketter A5"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:38
+msgid "Labels A6"
+msgstr "Etiketter A6"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:40
+msgid "Membership cards"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:22
-msgid "Mini-CD Labels"
+#: ../templates/pearl-iso-templates.xml.h:42
+msgid "Membership cards, both sides printable"
 msgstr ""
 
-#: ../data/templates/misc-us-templates.xml.h:23
-msgid "PRO CD Labels 2-up (CD spine only)"
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:44
+msgid "Name plates"
 msgstr ""
 
-#: ../data/templates/misc-us-templates.xml.h:24
-msgid "PRO CD Labels 2-up (Face only)"
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:46
+msgid "Passport photo labels glossy"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:30
-msgid "Slimline CD Case (rightside up)"
+#: ../templates/pearl-iso-templates.xml.h:48
+msgid "Photo labels"
+msgstr "Fotoetiketter"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:50
+msgid "Photo labels semiglossy"
 msgstr ""
 
-#: ../data/templates/misc-us-templates.xml.h:31
-msgid "Slimline CD Case (upside down)"
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:54
+#, fuzzy
+msgid "SD card labels"
+msgstr "Rektangulära etiketter"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:56
+msgid "Self-adhesive film transparent"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:58
+msgid "Self-adhesive film weatherproof"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:62
+msgid "Self-adhesive window film"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:10
+#: ../templates/zweckform-iso-templates.xml.h:10
 msgid "Correction and Cover-up Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:12
 msgid "File Back Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:14
+#: ../templates/zweckform-iso-templates.xml.h:14
 msgid "Lever Arch File Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:18
+#: ../templates/zweckform-iso-templates.xml.h:18
 msgid "Multi-purpose Stick+Lift Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:20
+#: ../templates/zweckform-iso-templates.xml.h:20
 msgid "QSL-Karten Etiketten 70mm x 50,8mm"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:22
+#: ../templates/zweckform-iso-templates.xml.h:22
 msgid "Rectangular Copier Labels"
 msgstr ""
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:26
+#: ../templates/zweckform-iso-templates.xml.h:26
 msgid "Video Labels (back)"
 msgstr ""
 
-#: ../data/desktop/glabels.desktop.in.h:1
-msgid "Create labels, business cards and media covers"
-msgstr "Skapa etiketter, visitkort och skivomslag"
-
-#: ../data/desktop/glabels.desktop.in.h:2
-msgid "gLabels Label Designer"
-msgstr "Etikettdesignern gLabels"
-
-#: ../data/mime/glabels.keys.in.h:1
-#: ../data/mime/glabels.xml.in.h:1
-msgid "gLabels Project File"
-msgstr "gLabels-projektfil"
-
-#: ../barcode-0.98/compat/getopt.c:583
-#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: flaggan `%s' är tvetydig\n"
-
-#: ../barcode-0.98/compat/getopt.c:607
-#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: flaggan `--%s' tillåter inte ett argument\n"
-
-#: ../barcode-0.98/compat/getopt.c:612
-#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: flaggan `%c%s' tillåter inte ett argument\n"
-
-#: ../barcode-0.98/compat/getopt.c:629
-#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s: flaggan `%s' kräver ett argument\n"
-
-#. --option
-#: ../barcode-0.98/compat/getopt.c:658
-#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: okänd flagga `--%s'\n"
-
-#. +option or -option
-#: ../barcode-0.98/compat/getopt.c:662
-#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: okänd flagga `%c%s'\n"
-
-#. 1003.2 specifies the format of this message.
-#: ../barcode-0.98/compat/getopt.c:688
-#, c-format
-msgid "%s: illegal option -- %c\n"
-msgstr "%s: otillåten flagga -- %c\n"
-
-#: ../barcode-0.98/compat/getopt.c:691
-#, c-format
-msgid "%s: invalid option -- %c\n"
-msgstr "%s: otillåten flagga -- %c\n"
-
-#: ../barcode-0.98/compat/getopt.c:727
-#, c-format
-msgid "%s: option requires an argument -- %c\n"
-msgstr "%s: flaggan kräver ett argument -- %c\n"
-
-#~ msgid "Default Color"
-#~ msgstr "Standardfärg"
-#~ msgid "Brown"
-#~ msgstr "Brun"
-#~ msgid "Dark Yellow"
-#~ msgstr "Mörkgul"
-#~ msgid "Turquoise"
-#~ msgstr "Turkos"
-#~ msgid "Violet"
-#~ msgstr "Violett"
-#~ msgid "Khaki"
-#~ msgstr "Khaki"
-#~ msgid "10% Gray"
-#~ msgstr "10% grå"
-#~ msgid "25% Gray"
-#~ msgstr "25% grå"
-#~ msgid "40% Gray"
-#~ msgstr "40% grå"
-#~ msgid "50% Gray"
-#~ msgstr "50% grå"
-#~ msgid "60% Gray"
-#~ msgstr "60% grå"
-#~ msgid "Custom Color #%u"
-#~ msgstr "Anpassad färg #%u"
-#~ msgid "All fonts"
-#~ msgstr "Alla typsnitt"
-#~ msgid "Launch gLabels label and business card designer."
-#~ msgstr "Starta gLabels för att skapa etiketter och visitkort."
-#~ msgid "Normal"
-#~ msgstr "Normal"
+#~ msgid "_Text"
+#~ msgstr "_Text"
+#~ msgid "_Line"
+#~ msgstr "_Linje"
+#~ msgid "_Box"
+#~ msgstr "_Rektangel"
+#~ msgid "_Ellipse"
+#~ msgstr "_Ellips"
+#~ msgid "_Image"
+#~ msgstr "_Bild"
+#~ msgid "Bar_code"
+#~ msgstr "Streck_kod"
+#~ msgid "Object _Properties"
+#~ msgstr "Objekt_egenskaper"
+#~ msgid "Linked"
+#~ msgstr "Länkad"
+#~ msgid "Not Linked"
+#~ msgstr "Inte länkad"
+#~ msgid "glabels"
+#~ msgstr "glabels"
+#~ msgid "<b>Media type</b>"
+#~ msgstr "<b>Mediatyp</b>"
+#~ msgid "<b>Label orientation</b>"
+#~ msgstr "<b>Etikettorientering</b>"
+#~ msgid "%s x %s %s"
+#~ msgstr "%s x %s %s"
+#~ msgid "%.5g x %.5g %s"
+#~ msgstr "%.5g x %.5g %s"
+#~ msgid "%.5g %s diameter"
+#~ msgstr "%.5g %s diameter"
+#~ msgid "00000000000 00000"
+#~ msgstr "00000000000 00000"
+#~ msgid "<span weight=\"bold\">Line</span>"
+#~ msgstr "<span weight=\"bold\">Linje</span>"
+#~ msgid "<span weight=\"bold\">Text</span>"
+#~ msgstr "<span weight=\"bold\">Text</span>"
+#~ msgid "<span weight=\"bold\">Units</span>"
+#~ msgstr "<span weight=\"bold\">Enheter</span>"
 #~ msgid "<b>Copies</b>"
 #~ msgstr "<b>Kopior</b>"
+#~ msgid "%s: option `%s' is ambiguous\n"
+#~ msgstr "%s: flaggan `%s' är tvetydig\n"
+#~ msgid "%s: option `--%s' doesn't allow an argument\n"
+#~ msgstr "%s: flaggan `--%s' tillåter inte ett argument\n"
+#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
+#~ msgstr "%s: flaggan `%c%s' tillåter inte ett argument\n"
+#~ msgid "%s: option `%s' requires an argument\n"
+#~ msgstr "%s: flaggan `%s' kräver ett argument\n"
+#~ msgid "%s: unrecognized option `--%s'\n"
+#~ msgstr "%s: okänd flagga `--%s'\n"
+#~ msgid "%s: unrecognized option `%c%s'\n"
+#~ msgstr "%s: okänd flagga `%c%s'\n"
+#~ msgid "%s: illegal option -- %c\n"
+#~ msgstr "%s: otillåten flagga -- %c\n"
+#~ msgid "%s: invalid option -- %c\n"
+#~ msgstr "%s: otillåten flagga -- %c\n"
+#~ msgid "%s: option requires an argument -- %c\n"
+#~ msgstr "%s: flaggan kräver ett argument -- %c\n"
 #~ msgid "         "
 #~ msgstr "         "
+#~ msgid "Select A File"
+#~ msgstr "Välj en fil"
 #~ msgid "  "
 #~ msgstr "  "
+#~ msgid "Search all templates"
+#~ msgstr "Sök alla mallar"
+#~ msgid "Show tooltips"
+#~ msgstr "Visa verktygstips"
 
index d33a27ebf1a1b91343b0c413bb8356fd421542ee..223fbf175995a93afb943b6d7f754b634c06277c 100644 (file)
 msgid ""
 msgstr ""
 "Project-Id-Version: glabels\n"
-"Report-Msgid-Bugs-To: \n" 
-"POT-Creation-Date: 2009-05-17 14:09+0800\n" 
-"PO-Revision-Date: 2009-10-05 20:26-0400\n"
-"Last-Translator: Careon <zzbusagain@yahoo.com.cn>\n" 
-"Language-Team: Careon <zzbusagain@yahoo.com.cn>\n" 
-"MIME-Version: 1.0\n" 
-"Content-Type: text/plain; charset=UTF-8\n" 
-"Content-Transfer-Encoding: 8bit\n" 
-"X-Poedit-Language: Chinese\n" 
-"X-Poedit-Country: CHINA\n" 
-"X-Poedit-SourceCharset: utf-8\n" 
-#: ../src/glabels.c:66 ../src/glabels-batch.c:69
-msgid "[FILE...]"
-msgstr "[文件...]"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-07-10 00:37-0400\n"
+"PO-Revision-Date: 2009-05-19 20:16-0400\n"
+"Last-Translator: Careon <zzbusagain@yahoo.com.cn>\n"
+"Language-Team: Careon <zzbusagain@yahoo.com.cn>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Chinese\n"
+"X-Poedit-Country: CHINA\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: ../src/bc.c:66
+msgid "POSTNET (any)"
+msgstr "POSTNET (通用)"
 
-#: ../src/glabels.c:83
-msgid "Launch gLabels label and business card designer."
-msgstr "启动gLabels标签和名片设计软件。"
+#: ../src/bc.c:69
+msgid "POSTNET-5 (ZIP only)"
+msgstr "POSTNET-5 (用于邮编)"
 
-#: ../src/glabels.c:91 ../src/glabels-batch.c:105
-#, c-format
-msgid ""
-"%s\n"
-"Run '%s --help' to see a full list of available command line options.\n"
-msgstr ""
-"%s\n"
-"运行'%s --help'来查看可用的命令参数。\n"
+#: ../src/bc.c:72
+msgid "POSTNET-9 (ZIP+4)"
+msgstr "POSTNET-9 (ZIP+4)"
 
-#: ../src/glabels-batch.c:53
-msgid "set output filename (default=\"output.pdf\")"
-msgstr "输出文件名(默认值=\"output.pdf\")"
+#: ../src/bc.c:75
+msgid "POSTNET-11 (DPBC)"
+msgstr "POSTNET-11 (DPBC)"
 
-#: src/glabels-batch.c:56 src/glabels-batch.c:70
-msgid "filename"
-msgstr "文件名"
+#: ../src/bc.c:80
+msgid "CEPNET"
+msgstr "CEPNET"
 
-#: src/glabels-batch.c:54
-msgid "number of sheets (default=1)"
-msgstr "每页数量(默认值=1)"
+#: ../src/bc.c:83
+msgid "EAN (any)"
+msgstr "EAN (通用)"
 
-#: src/glabels-batch.c:54
-msgid "sheets"
-msgstr "数量"
+#: ../src/bc.c:86
+msgid "EAN-8"
+msgstr "EAN-8"
 
-#: src/glabels-batch.c:56
-msgid "number of copies (default=1)"
-msgstr "副本数量(默认值=1)"
+#: ../src/bc.c:89
+msgid "EAN-8 +2"
+msgstr "EAN-8 +2"
 
-#: src/glabels-batch.c:56
-msgid "copies"
-msgstr "副本"
+#: ../src/bc.c:92
+msgid "EAN-8 +5"
+msgstr "EAN-8 +5"
 
-#: ../src/glabels-batch.c:59
-msgid "first label on first sheet (default=1)"
-msgstr "第1页的第1个标签 (默认值=1)"
+#: ../src/bc.c:95
+msgid "EAN-13"
+msgstr "EAN-13"
 
-#: ../src/glabels-batch.c:59
-msgid "first"
-msgstr "第1个"
+#: ../src/bc.c:98
+msgid "EAN-13 +2"
+msgstr "EAN-13 +2"
 
-#: src/glabels-batch.c:64 src/print-dialog.c:336
-msgid "print outlines (to test printer alignment)"
-msgstr "打印外框线(用于校正打印机)"
+#: ../src/bc.c:101
+msgid "EAN-13 +5"
+msgstr "EAN-13 +5"
 
-#: src/glabels-batch.c:66 src/print-dialog.c:344
-msgid "print in reverse (i.e. a mirror image)"
-msgstr "反转打印 (例如对称)"
+#: ../src/bc.c:104
+msgid "UPC (UPC-A or UPC-E)"
+msgstr "UPC (UPC-A 或者 UPC-E)"
 
-#: ../src/glabels-batch.c:65 ../data/builder/print-custom-widget.glade.h:4
-msgid "print crop marks"
-msgstr "打印裁剪标记"
+#: ../src/bc.c:107 ../src/bc.c:348
+msgid "UPC-A"
+msgstr "UPC-A"
 
-#: ../src/glabels-batch.c:67
-msgid "input file for merging"
-msgstr "输入要插入的文件名"
+#: ../src/bc.c:110
+msgid "UPC-A +2"
+msgstr "UPC-A +2"
 
-#: ../src/glabels-batch.c:97
-msgid "Print files created with gLabels."
-msgstr "打印gLabels文件。"
+#: ../src/bc.c:113
+msgid "UPC-A +5"
+msgstr "UPC-A +5"
 
-#: ../src/glabels-batch.c:147
-#, c-format
-msgid "cannot perform document merge with glabels file %s\n"
-msgstr ""
-"无法合并glabels文件%s \n"
+#: ../src/bc.c:116 ../src/bc.c:351
+msgid "UPC-E"
+msgstr "UPC-E"
 
-#: ../src/glabels-batch.c:169
-#, c-format
-msgid "cannot open glabels file %s\n"
-msgstr "无法打开glabels文件 %s\n"
+#: ../src/bc.c:119
+msgid "UPC-E +2"
+msgstr "UPC-E +2"
 
-#: ../src/window.c:259
-msgid "(none) - gLabels"
-msgstr "(无) - gLabels"
+#: ../src/bc.c:122
+msgid "UPC-E +5"
+msgstr "UPC-E +5"
 
-#: src/window.c:414
-msgid "(modified)"
-msgstr "(已修改)"
+#: ../src/bc.c:125 ../src/bc.c:288
+msgid "ISBN"
+msgstr "ISBN"
 
-#: src/stock.c:65 data/ui/glabels-ui.xml.h:162
-msgid "_Select Mode"
-msgstr "选择模式(_S)"
+#: ../src/bc.c:128
+msgid "ISBN +5"
+msgstr "ISBN +5"
 
-#: src/stock.c:66 data/ui/glabels-ui.xml.h:163
-msgid "_Text"
-msgstr "文字(_T)"
+#: ../src/bc.c:131 ../src/bc.c:204
+msgid "Code 39"
+msgstr "Code 39"
 
-#: src/stock.c:67 data/ui/glabels-ui.xml.h:148
-msgid "_Line"
-msgstr "线条(_L)"
+#: ../src/bc.c:134 ../src/bc.c:216
+msgid "Code 128"
+msgstr "Code 128"
 
-#: src/stock.c:68 data/ui/glabels-ui.xml.h:130
-msgid "_Box"
-msgstr "矩形(_B)"
+#: ../src/bc.c:137
+msgid "Code 128C"
+msgstr "Code 128C"
 
-#: src/stock.c:69 data/ui/glabels-ui.xml.h:141
-msgid "_Ellipse"
-msgstr "椭圆(_E)"
+#: ../src/bc.c:140
+msgid "Code 128B"
+msgstr "Code 128B"
 
-#: src/stock.c:70 
-msgid "_Image"
-msgstr "图片(_I)"
+#: ../src/bc.c:143 ../src/bc.c:285
+msgid "Interleaved 2 of 5"
+msgstr "Interleaved 2 of 5"
 
-#: src/stock.c:71 data/ui/glabels-ui.xml.h:11
-msgid "Bar_code"
-msgstr "条形码(_C)"
+#: ../src/bc.c:146 ../src/bc.c:180
+msgid "Codabar"
+msgstr "Codabar"
 
-#: src/stock.c:72
-msgid "_Merge Properties"
-msgstr "合并属性(_M)"
+#: ../src/bc.c:149
+msgid "MSI"
+msgstr "MSI"
 
-#: src/stock.c:73
-msgid "Object _Properties"
-msgstr "对象属性(_P)"
+#: ../src/bc.c:152
+msgid "Plessey"
+msgstr "Plessey"
 
-#: src/stock.c:74 data/ui/glabels-ui.xml.h:13
-msgid "Bring to _Front"
-msgstr "移到上层(_F)"
+#: ../src/bc.c:155 ../src/bc.c:213
+#, fuzzy
+msgid "Code 93"
+msgstr "Code 39"
 
-#: src/stock.c:75 data/ui/glabels-ui.xml.h:109
-msgid "Send to _Back"
-msgstr "移到下层(_B)"
+#: ../src/bc.c:162
+msgid "Australia Post Standard"
+msgstr ""
 
-#: src/stock.c:76 data/ui/glabels-ui.xml.h:96
-msgid "Rotate _Left"
-msgstr "向左旋转(_L)"
+#: ../src/bc.c:165
+msgid "Australia Post Reply Paid"
+msgstr ""
 
-#: src/stock.c:77 data/ui/glabels-ui.xml.h:97
-msgid "Rotate _Right"
-msgstr "向右旋转(_R)"
+#: ../src/bc.c:168
+msgid "Australia Post Route Code"
+msgstr ""
 
-#: src/stock.c:78 data/ui/glabels-ui.xml.h:52
-msgid "Flip _Horizontally"
-msgstr "水平翻转(_H)"
+#: ../src/bc.c:171
+msgid "Australia Post Redirect"
+msgstr ""
 
-#: src/stock.c:79 data/ui/glabels-ui.xml.h:53
-msgid "Flip _Vertically"
-msgstr "垂直翻转(_V)"
+#: ../src/bc.c:174
+msgid "Aztec Code"
+msgstr ""
 
-#: src/stock.c:80 data/ui/glabels-ui.xml.h:147
-msgid "_Lefts"
-msgstr "靠左(_L)"
+#: ../src/bc.c:177
+msgid "Aztec Rune"
+msgstr ""
 
-#: src/stock.c:81 data/ui/glabels-ui.xml.h:159
-msgid "_Rights"
-msgstr "靠右(_R)"
+#: ../src/bc.c:183
+#, fuzzy
+msgid "Code One"
+msgstr "Code 39"
 
-#: src/stock.c:82 data/ui/glabels-ui.xml.h:131
-msgid "_Centers"
-msgstr "居中(_C)"
+#: ../src/bc.c:186
+#, fuzzy
+msgid "Code 11"
+msgstr "Code 128"
 
-#: src/stock.c:83 data/ui/glabels-ui.xml.h:164
-msgid "_Tops"
-msgstr "顶部(_T)"
+#: ../src/bc.c:189
+#, fuzzy
+msgid "Code 16K"
+msgstr "Code 128"
 
-#: src/stock.c:84
-msgid "Bottoms"
-msgstr "底部"
+#: ../src/bc.c:192
+msgid "Code 2 of 5 Matrix"
+msgstr ""
 
-#: src/stock.c:85
-msgid "Centers"
-msgstr "居中"
+#: ../src/bc.c:195
+msgid "Code 2 of 5 IATA"
+msgstr ""
 
-#: src/stock.c:86 src/stock.c:87 data/ui/glabels-ui.xml.h:62
-msgid "Label Ce_nter"
-msgstr "标签中心(_N)"
+#: ../src/bc.c:198
+msgid "Code 2 of 5 Data Logic"
+msgstr ""
 
-#: src/stock.c:88 data/ui/glabels-ui.xml.h:51
-msgid "Fill color"
-msgstr "填充色"
+#: ../src/bc.c:201
+msgid "Code 32 (Italian Pharmacode)"
+msgstr ""
 
-#: src/stock.c:89 data/ui/glabels-ui.xml.h:64
-msgid "Line color"
-msgstr "线条颜色"
+#: ../src/bc.c:207
+#, fuzzy
+msgid "Code 39 Extended"
+msgstr "Code 39"
 
-#: src/stock.c:90 src/stock.c:92
-msgid "Linked"
-msgstr "相连"
+#: ../src/bc.c:210
+#, fuzzy
+msgid "Code 49"
+msgstr "Code 39"
 
-#: src/stock.c:91 src/stock.c:93
-msgid "Not Linked"
-msgstr "不相连"
+#: ../src/bc.c:219
+msgid "Code 128 (Mode C supression)"
+msgstr ""
 
-#. Menu entries.
-#: ../src/ui.c:93
-msgid "_File"
-msgstr "文件(_F)"
+#: ../src/bc.c:222
+msgid "DAFT Code"
+msgstr ""
 
-#: ../src/ui.c:94
-msgid "Open Recent _Files"
-msgstr "打开最近的文件(_F)"
+#: ../src/bc.c:225
+#, fuzzy
+msgid "Data Matrix"
+msgstr "IEC16022 (DataMatrix)"
 
-#: ../src/ui.c:95
-msgid "_Edit"
-msgstr "编辑(_E)"
+#: ../src/bc.c:228
+msgid "Deutsche Post Leitcode"
+msgstr ""
 
-#: ../src/ui.c:96
-msgid "_View"
-msgstr "查看(_V)"
+#: ../src/bc.c:231
+msgid "Deutsche Post Identcode"
+msgstr ""
 
-#: ../src/ui.c:97
-msgid "Customize Main Toolbar"
-msgstr "自定义主工具栏"
+#: ../src/bc.c:234
+msgid "Dutch Post KIX Code"
+msgstr ""
 
-#: ../src/ui.c:98
-msgid "Customize Drawing Toolbar"
-msgstr "自定义绘图栏"
+#: ../src/bc.c:237
+msgid "European Article Number (EAN)"
+msgstr ""
 
-#: ../src/ui.c:99
-msgid "Customize Properties Toolbar"
-msgstr "自定义属性栏"
+#: ../src/bc.c:240
+msgid "Grid Matrix"
+msgstr ""
 
-#: ../src/ui.c:100
-msgid "_Objects"
-msgstr "对象(_O)"
+#: ../src/bc.c:243
+msgid "GS1-128"
+msgstr ""
 
-#: ../src/ui.c:101
-msgid "_Create"
-msgstr "新建(_C)"
+#: ../src/bc.c:246
+msgid "GS1 DataBar-14"
+msgstr ""
 
-#: ../src/ui.c:102
-msgid "_Order"
-msgstr "排序(_O)"
+#: ../src/bc.c:255
+msgid "GS1 DataBar-14 Stacked"
+msgstr ""
 
-#: ../src/ui.c:103
-msgid "_Rotate/Flip"
-msgstr "旋转/翻转(_R)"
+#: ../src/bc.c:258
+msgid "GS1 DataBar-14 Stacked Omni."
+msgstr ""
 
-#: ../src/ui.c:104
-msgid "Align _Horizontal"
-msgstr "水平对齐(_H)"
+#: ../src/bc.c:261
+msgid "GS1 DataBar Extended Stacked"
+msgstr ""
 
-#: ../src/ui.c:105
-msgid "Align _Vertical"
-msgstr "垂直对齐(_V)"
+#: ../src/bc.c:264
+#, fuzzy
+msgid "HIBC Code 128"
+msgstr "Code 128"
 
-#: ../src/ui.c:106
-msgid "_Help"
-msgstr "帮助(_H)"
+#: ../src/bc.c:267
+#, fuzzy
+msgid "HIBC Code 39"
+msgstr "Code 39"
 
-#. Popup entries.
-#: ../src/ui.c:109 ../src/ui.c:110
-msgid "Context Menu"
-msgstr "右键菜单"
+#: ../src/bc.c:270
+#, fuzzy
+msgid "HIBC Data Matrix"
+msgstr "IEC16022 (DataMatrix)"
 
-#: ../src/ui.c:115
-msgid "_New"
-msgstr "新建(_N)"
+#: ../src/bc.c:273
+msgid "HIBC QR Code"
+msgstr ""
 
-#: ../src/ui.c:117
-msgid "Create a new file"
-msgstr "新建文件"
+#: ../src/bc.c:276
+msgid "HIBC PDF417"
+msgstr ""
 
-#: ../src/ui.c:122
-msgid "_Open..."
-msgstr "打开(_O)..."
+#: ../src/bc.c:279
+msgid "HIBC Micro PDF417"
+msgstr ""
 
-#: ../src/ui.c:124
-msgid "Open a file"
-msgstr "打开文件"
+#: ../src/bc.c:282
+msgid "HIBC Aztec Code"
+msgstr ""
 
-#: ../src/ui.c:129
-msgid "_Save"
-msgstr "保存(_S)"
+#: ../src/bc.c:291
+msgid "ITF-14"
+msgstr ""
 
-#: ../src/ui.c:131
-msgid "Save current file"
-msgstr "保存当前文件"
+#: ../src/bc.c:294
+msgid "Japanese Postal"
+msgstr ""
 
-#: ../src/ui.c:136
-msgid "Save _As..."
-msgstr "另存为(_A)..."
+#: ../src/bc.c:297
+msgid "Korean Postal"
+msgstr ""
 
-#: ../src/ui.c:138
-msgid "Save the current file to a different name"
-msgstr "保存当前文件为其它文件名"
+#: ../src/bc.c:300
+msgid "LOGMARS"
+msgstr ""
 
-#: ../src/ui.c:143
-msgid "_Print..."
-msgstr "打印(_P)..."
+#: ../src/bc.c:303
+msgid "Micro PDF417"
+msgstr ""
 
-#: ../src/ui.c:145
-msgid "Print the current file"
-msgstr "打印当前文件"
+#: ../src/bc.c:306
+msgid "Micro QR Code"
+msgstr ""
 
-#: ../src/ui.c:150
-msgid "Properties..."
-msgstr "属性..."
+#: ../src/bc.c:309
+#, fuzzy
+msgid "MSI Plessey"
+msgstr "Plessey"
 
-#: ../src/ui.c:152
-msgid "Modify document properties"
-msgstr "修改文档属性"
+#: ../src/bc.c:312
+msgid "NVE-18"
+msgstr ""
 
-#: ../src/ui.c:157
-msgid "Template _Designer..."
-msgstr "模板设计工具(_D)..."
+#: ../src/bc.c:315
+msgid "PDF417"
+msgstr ""
 
-#: ../src/ui.c:159
-msgid "Create a custom template"
-msgstr "新建一个模板"
+#: ../src/bc.c:318
+msgid "PDF417 Truncated"
+msgstr ""
 
-#: ../src/ui.c:164
-msgid "_Close"
-msgstr "关闭(_C)"
+#: ../src/bc.c:321
+#, fuzzy
+msgid "PLANET"
+msgstr "CEPNET"
 
-#: ../src/ui.c:166
-msgid "Close the current file"
-msgstr "关闭当前文件"
+#: ../src/bc.c:324
+#, fuzzy
+msgid "PostNet"
+msgstr "粘贴"
 
-#: ../src/ui.c:171
-msgid "_Quit"
-msgstr "退出(_Q)"
+#: ../src/bc.c:327
+#, fuzzy
+msgid "Pharmacode"
+msgstr "条形码"
 
-#: ../src/ui.c:173
-msgid "Quit the program"
-msgstr "退出程序"
+#: ../src/bc.c:330
+msgid "Pharmacode 2-track"
+msgstr ""
 
-#: ../src/ui.c:180
-msgid "Cut"
-msgstr "剪切"
+#: ../src/bc.c:333
+msgid "Pharmazentral Nummer (PZN)"
+msgstr ""
 
-#: ../src/ui.c:182
-msgid "Cut the selection"
-msgstr "剪切选中的内容"
+#: ../src/bc.c:336
+msgid "QR Code"
+msgstr ""
 
-#: ../src/ui.c:187
-msgid "Copy"
-msgstr "复制"
+#: ../src/bc.c:339
+msgid "Royal Mail 4-State"
+msgstr ""
 
-#: ../src/ui.c:189
-msgid "Copy the selection"
-msgstr "复制选中的内容"
+#: ../src/bc.c:342
+#, fuzzy
+msgid "Telepen"
+msgstr "删除"
 
-#: ../src/ui.c:194
-msgid "Paste"
-msgstr "粘贴"
+#: ../src/bc.c:345
+msgid "Telepen Numeric"
+msgstr ""
 
-#: ../src/ui.c:196
-msgid "Paste the clipboard"
-msgstr "粘贴到剪贴板"
+#: ../src/bc.c:354
+msgid "USPS One Code"
+msgstr ""
 
-#: ../src/ui.c:201
-msgid "Delete"
-msgstr "删除"
+#: ../src/bc.c:357
+#, fuzzy
+msgid "UK Plessey"
+msgstr "Plessey"
 
-#: ../src/ui.c:203
-msgid "Delete the selected objects"
-msgstr "删除选中的对象"
+#: ../src/bc.c:364
+msgid "IEC16022 (DataMatrix)"
+msgstr "IEC16022 (DataMatrix)"
 
-#: ../src/ui.c:208
-msgid "Select All"
-msgstr "全选"
+#: ../src/bc.c:371
+msgid "IEC18004 (QRCode)"
+msgstr ""
 
-#: ../src/ui.c:210
-msgid "Select all objects"
-msgstr "é\80\89中å\85¨é\83¨å¯¹è±¡"
+#: ../src/color-combo-button.c:198 ../src/color-combo.c:178
+msgid "Default Color"
+msgstr "é»\98认é¢\9cè\89²"
 
-#: ../src/ui.c:215
-msgid "Un-select All"
-msgstr "取消全选"
+#: ../src/color-combo-menu.c:83
+msgid "Dark Red"
+msgstr "暗红"
 
-#: ../src/ui.c:217
-msgid "Remove all selections"
-msgstr "删除全部选中的内容"
+#: ../src/color-combo-menu.c:84
+msgid "Brown"
+msgstr "棕色"
 
-#: ../src/ui.c:222
-msgid "Preferences"
-msgstr "参数"
+#: ../src/color-combo-menu.c:85
+msgid "Dark Goldenrod"
+msgstr "暗黄"
 
-#: ../src/ui.c:224
-msgid "Configure the application"
-msgstr "对程序进行设置"
+#: ../src/color-combo-menu.c:86
+msgid "Dark Green"
+msgstr "暗绿"
 
-#: ../src/ui.c:231
-msgid "Zoom in"
-msgstr "æ\94¾å¤§"
+#: ../src/color-combo-menu.c:87
+msgid "Dark Cyan"
+msgstr "æ\9a\97å\93\81红"
 
-#: ../src/ui.c:233
-msgid "Increase magnification"
-msgstr "æ\94¾å¤§"
+#: ../src/color-combo-menu.c:88
+msgid "Navy Blue"
+msgstr "æµ·æ°´è\93\9d"
 
-#: ../src/ui.c:238
-msgid "Zoom out"
-msgstr "缩å°\8f"
+#: ../src/color-combo-menu.c:89
+msgid "Dark Violet"
+msgstr "ç´«é»\91"
 
-#: ../src/ui.c:240
-msgid "Decrease magnification"
-msgstr "缩å°\8f"
+#: ../src/color-combo-menu.c:91
+msgid "Red"
+msgstr "红è\89²"
 
-#: ../src/ui.c:245
-msgid "Zoom 1 to 1"
-msgstr "1:1 缩放"
+#: ../src/color-combo-menu.c:92
+msgid "Orange"
+msgstr "桔红"
 
-#: ../src/ui.c:247
-msgid "Restore scale to 100%"
-msgstr "缩放到实际大小的 100% "
+#: ../src/color-combo-menu.c:93
+msgid "Dark Yellow"
+msgstr "暗黄"
 
-#: ../src/ui.c:252
-msgid "Zoom to fit"
-msgstr "最佳比例"
+#: ../src/color-combo-menu.c:94
+msgid "Medium green"
+msgstr "中等绿"
 
-#: ../src/ui.c:254
-msgid "Set scale to fit window"
-msgstr "缩放到适合窗口"
+#: ../src/color-combo-menu.c:95
+msgid "Turquoise"
+msgstr "蓝绿"
 
-#: ../src/ui.c:261
-msgid "Select Mode"
-msgstr "模式选择"
+#: ../src/color-combo-menu.c:96
+msgid "Blue"
+msgstr "蓝色"
 
-#: ../src/ui.c:263
-msgid "Select, move and modify objects"
-msgstr "选择,移动或删除对象"
+#: ../src/color-combo-menu.c:97
+msgid "Purple"
+msgstr "紫红"
 
-#: ../src/ui.c:268 ../src/view-text.c:494
-#: ../data/builder/object-editor.glade.h:32
-msgid "Text"
-msgstr "文字"
+#: ../src/color-combo-menu.c:99
+msgid "Salmon"
+msgstr "马哈鱼色"
 
-#: ../src/ui.c:270
-msgid "Create text object"
-msgstr "新建文字对象"
+#: ../src/color-combo-menu.c:100
+msgid "Gold"
+msgstr "金黄"
 
-#: ../src/ui.c:275
-msgid "Box"
-msgstr "矩形"
+#: ../src/color-combo-menu.c:101
+msgid "Yellow"
+msgstr "黄色"
 
-#: ../src/ui.c:277
-msgid "Create box/rectangle object"
-msgstr "新建矩形对象"
+#: ../src/color-combo-menu.c:102
+msgid "Green"
+msgstr "绿色"
 
-#: ../src/ui.c:282 ../data/builder/object-editor.glade.h:20
-msgid "Line"
-msgstr "线条"
+#: ../src/color-combo-menu.c:103
+msgid "Cyan"
+msgstr "蓝绿色"
 
-#: ../src/ui.c:284
-msgid "Create line object"
-msgstr "新建线条对象"
+#: ../src/color-combo-menu.c:104
+msgid "SkyBlue"
+msgstr "天空蓝"
 
-#: ../src/ui.c:289
-msgid "Ellipse"
-msgstr "椭圆"
+#: ../src/color-combo-menu.c:105
+msgid "Violet"
+msgstr "紫色"
 
-#: ../src/ui.c:291
-msgid "Create ellipse/circle object"
-msgstr "新建 椭圆/圆 对象"
+#: ../src/color-combo-menu.c:107
+msgid "Pink"
+msgstr "粉红"
 
-#: ../src/ui.c:296 ../data/builder/object-editor.glade.h:16
-msgid "Image"
-msgstr "图片"
+#: ../src/color-combo-menu.c:108
+msgid "Khaki"
+msgstr "浅棕黄色"
 
-#: ../src/ui.c:298
-msgid "Create image object"
-msgstr "æ\96°å»ºå\9b¾ç\89\87对象"
+#: ../src/color-combo-menu.c:109
+msgid "Light Yellow"
+msgstr "æµ\85é»\84"
 
-#: ../src/ui.c:303
-msgid "Barcode"
-msgstr "æ\9d¡å½¢ç \81"
+#: ../src/color-combo-menu.c:110
+msgid "Light Green"
+msgstr "æµ\85绿"
 
-#: ../src/ui.c:305
-msgid "Create barcode object"
-msgstr "æ\96°å»ºæ\9d¡å½¢ç \81"
+#: ../src/color-combo-menu.c:111
+msgid "Light Cyan"
+msgstr "æµ\85å\93\81红è\89²"
 
-#: ../src/ui.c:310
-msgid "Bring to front"
-msgstr "移å\88°ä¸\8aå±\82"
+#: ../src/color-combo-menu.c:112
+msgid "Slate Gray"
+msgstr "ç\9f³ç\81°ç\99½"
 
-#: ../src/ui.c:312
-msgid "Raise object to top"
-msgstr "移到最顶端"
+#: ../src/color-combo-menu.c:113
+msgid "Thistle"
+msgstr ""
 
-#: ../src/ui.c:317
-msgid "Send to back"
-msgstr "移å\88°ä¸\8bå±\82"
+#: ../src/color-combo-menu.c:115
+msgid "White"
+msgstr "ç\99½è\89²"
 
-#: ../src/ui.c:319
-msgid "Lower object to bottom"
-msgstr "把下层对象移到最底层"
+#: ../src/color-combo-menu.c:117
+#, no-c-format
+msgid "10% Gray"
+msgstr "10% 灰色"
 
-#: ../src/ui.c:324
-msgid "Rotate left"
-msgstr "向左旋转"
+#: ../src/color-combo-menu.c:119
+#, no-c-format
+msgid "25% Gray"
+msgstr "25% 灰色"
 
-#: ../src/ui.c:326
-msgid "Rotate object 90 degrees counter-clockwise"
-msgstr "向左旋转90度"
-
-#: ../src/ui.c:331
-msgid "Rotate right"
-msgstr "向右旋转"
-
-#: ../src/ui.c:333
-msgid "Rotate object 90 degrees clockwise"
-msgstr "向右旋转90度"
-
-#: ../src/ui.c:338
-msgid "Flip horizontally"
-msgstr "水平翻转"
-
-#: ../src/ui.c:340
-msgid "Flip object horizontally"
-msgstr "水平翻转对象"
-
-#: ../src/ui.c:345
-msgid "Flip vertically"
-msgstr "垂直翻转"
-
-#: ../src/ui.c:347
-msgid "Flip object vertically"
-msgstr "垂直翻转对象"
-
-#: ../src/ui.c:352
-msgid "Align left"
-msgstr "左对齐"
-
-#: ../src/ui.c:354
-msgid "Align objects to left edges"
-msgstr "多个对象与左边界对齐"
-
-#: ../src/ui.c:359
-msgid "Align right"
-msgstr "右对齐"
-
-#: ../src/ui.c:361
-msgid "Align objects to right edges"
-msgstr "多个对象与左边界对齐"
-
-#: ../src/ui.c:366
-msgid "Align horizontal center"
-msgstr "水平中心共线"
-
-#: ../src/ui.c:368
-msgid "Align objects to horizontal centers"
-msgstr "多个对象的水平中心共线"
-
-#: ../src/ui.c:373
-msgid "Align tops"
-msgstr "顶端对齐"
-
-#: ../src/ui.c:375
-msgid "Align objects to top edges"
-msgstr "多个对象与上边界对齐"
-
-#: ../src/ui.c:380
-msgid "Align bottoms"
-msgstr "底部对齐"
-
-#: ../src/ui.c:382
-msgid "Align objects to bottom edges"
-msgstr "多个对象与下边界对齐"
-
-#: ../src/ui.c:387
-msgid "Align vertical center"
-msgstr "垂直中心共线"
-
-#: ../src/ui.c:389
-msgid "Align objects to vertical centers"
-msgstr "多个对象的垂直中心共线"
-
-#: ../src/ui.c:394
-msgid "Center horizontally"
-msgstr "水平居中"
-
-#: ../src/ui.c:396
-msgid "Center objects to horizontal label center"
-msgstr "对象中心与水平中心重合"
-
-#: ../src/ui.c:401
-msgid "Center vertically"
-msgstr "垂直居中"
-
-#: ../src/ui.c:403
-msgid "Center objects to vertical label center"
-msgstr "对象中心与垂直中心重合"
-
-#: ../src/ui.c:408
-msgid "Merge properties"
-msgstr "合并属性"
-
-#: ../src/ui.c:410
-msgid "Edit merge properties"
-msgstr "编辑合并属性"
-
-#: ../src/ui.c:417
-msgid "Contents"
-msgstr "内容"
-
-#: ../src/ui.c:419
-msgid "Open glabels manual"
-msgstr "打开glabels帮助手册"
-
-#: ../src/ui.c:424
-msgid "About..."
-msgstr "关于..."
-
-#: ../src/ui.c:426
-msgid "About glabels"
-msgstr "关于glabels"
-
-# CHECK
-#: ../src/ui.c:436
-msgid "Property toolbar"
-msgstr "属性栏"
-
-#: ../src/ui.c:438
-msgid "Change the visibility of the property toolbar in the current window"
-msgstr "改变当前窗口中属性栏的可视性"
-
-#: ../src/ui.c:444
-msgid "Grid"
-msgstr "单元格"
-
-#: ../src/ui.c:446
-msgid "Change the visibility of the grid in the current window"
-msgstr "改变当前窗口中单元格的可视性"
-
-#: ../src/ui.c:452
-msgid "Markup"
-msgstr "标记"
-
-#: ../src/ui.c:454
-msgid "Change the visibility of markup lines in the current window"
-msgstr "改变当前窗口中标记线条的可视性"
-
-#: ../src/ui.c:465
-msgid "Main toolbar"
-msgstr "主工具栏"
-
-#: ../src/ui.c:467
-msgid "Change the visibility of the main toolbar in the current window"
-msgstr "改变当前窗口中主工具栏的可视性"
-
-#: ../src/ui.c:473
-msgid "Drawing toolbar"
-msgstr "绘图栏"
-
-#: ../src/ui.c:475
-msgid "Change the visibility of the drawing toolbar in the current window"
-msgstr "改变当前窗口中绘图栏的可视性"
-
-#: ../src/ui-property-bar.c:279 ../src/prefs-dialog.c:328
-#: ../src/object-editor-bc-page.c:93 ../src/object-editor-text-page.c:93
-#: ../src/object-editor-shadow-page.c:93
-msgid "Default"
-msgstr "默认值"
-
-#: ../src/ui-property-bar.c:291 ../src/prefs-dialog.c:334
-#: ../src/object-editor-fill-page.c:79
-msgid "No Fill"
-msgstr "没有填充"
-
-#: ../src/ui-property-bar.c:303 ../src/prefs-dialog.c:331
-#: ../src/object-editor-line-page.c:81
-msgid "No Line"
-msgstr "没有线条"
-
-#: ../src/ui-sidebar.c:152
-msgid "Object properties"
-msgstr "对象属性"
-
-#: ../src/ui-commands.c:1064
-msgid "Glabels includes contributions from:"
-msgstr "Glabels 包括的发布内容来自:"
+#: ../src/color-combo-menu.c:121
+#, no-c-format
+msgid "40% Gray"
+msgstr "40% 灰色"
 
-#: ../src/ui-commands.c:1070
-msgid "See the file AUTHORS for additional credits,"
-msgstr "查看AUTHORS文件来获得更多信息,"
+#: ../src/color-combo-menu.c:123
+#, no-c-format
+msgid "50% Gray"
+msgstr "50% 灰色"
 
-#: ../src/ui-commands.c:1071
-msgid "or visit http://glabels.sourceforge.net/"
-msgstr "或者访问 http://glabels.sourceforge.net/"
+#: ../src/color-combo-menu.c:125
+#, no-c-format
+msgid "60% Gray"
+msgstr "60% 灰色"
 
-#: ../src/ui-commands.c:1083
-msgid "A label and business card creation program.\n"
-msgstr "一个标签和名片设计程序。\n"
+#: ../src/color-combo-menu.c:126
+msgid "Black"
+msgstr "黑色"
 
-#: ../src/ui-commands.c:1087
-msgid "translator-credits"
-msgstr ""
-"Marcus Bauer <m@7n7.de>\n"
-"Christian Neumair <christian-neumair@web.de>\n"
-"Mario Blättermann <mariobl@gnome.org>\n"
-"Careone <zzbusagain@yahoo.com.cn>"
+#: ../src/color-combo-menu.c:254 ../src/color-combo-menu.c:373
+msgid "Custom Color"
+msgstr "自定义颜色"
 
-#: ../src/ui-commands.c:1090
-msgid ""
-"Glabels is free software; you can redistribute it and/or modify it\n"
-"under the terms of the GNU General Public License as published by\n"
-"the Free Software Foundation; either version 2 of the License, or\n"
-"(at your option) any later version.\n"
-"\n"
-"This program is distributed in the hope that it will be useful, but\n"
-"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See\n"
-"the GNU General Public License for more details.\n"
-msgstr ""
-"Glabels is free software; you can redistribute it and/or modify it\n"
-"under the terms of the GNU General Public License as published by\n"
-"the Free Software Foundation; either version 2 of the License, or\n"
-"(at your option) any later version.\n"
-"\n"
-"This program is distributed in the hope that it will be useful, but\n"
-"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See\n"
-"the GNU General Public License for more details.\n"
+#: ../src/color-combo-menu.c:319
+#, c-format
+msgid "Custom Color #%u"
+msgstr "自定义颜色 #%u"
 
-#: ../src/ui-commands.c:1116
-msgid "glabels"
-msgstr "glabels"
+#: ../src/critical-error-handler.c:70
+msgid "gLabels Fatal Error!"
+msgstr "gLabels出现严重错误!"
 
-#: ../src/file.c:91
+#: ../src/file.c:84
 msgid "New Label or Card"
 msgstr "新建标签或名片"
 
-#: ../src/file.c:191
+#: ../src/file.c:175 ../src/label.c:587 ../src/label.c:631
 msgid "Label properties"
 msgstr "标签属性"
 
-#: ../src/file.c:292 ../src/file.c:578
+#: ../src/file.c:267 ../src/file.c:557
 msgid "All files"
 msgstr "全部文件"
 
-#: ../src/file.c:297 ../src/file.c:583
+#: ../src/file.c:272 ../src/file.c:562
 msgid "gLabels documents"
 msgstr "gLabels文件(.glabels)"
 
-#: ../src/file.c:343 ../src/file.c:640
+#: ../src/file.c:319 ../src/file.c:620
 msgid "Empty file name selection"
 msgstr "没有选择文件"
 
-#: ../src/file.c:346 ../src/file.c:362
+#: ../src/file.c:322 ../src/file.c:338
 msgid "Please select a file or supply a valid file name"
 msgstr "请选择文件,或输入文件名"
 
-#: src/file.c:519 src/file.c:631
+#: ../src/file.c:335
 msgid "File does not exist"
 msgstr "文件不存在"
 
-#: ../src/file.c:433
+#: ../src/file.c:410
 #, c-format
 msgid "Could not open file \"%s\""
 msgstr "无法打开文件 \"%s\""
 
-#: src/file.c:715
+#: ../src/file.c:413
 msgid "Not a supported file format"
 msgstr "不支持的文件格式"
 
-#: ../src/file.c:513 ../src/file.c:690
+#: ../src/file.c:491 ../src/file.c:670
 #, c-format
 msgid "Could not save file \"%s\""
 msgstr "无法保存文件 \"%s\""
 
-#: src/file.c:805 src/file.c:987 src/file.c:1182
+#: ../src/file.c:495 ../src/file.c:674
 msgid "Error encountered during save.  The file is still not saved."
 msgstr "保存时出错。文件没有保存。"
 
-#: ../src/file.c:556
+#: ../src/file.c:535
 #, c-format
 msgid "Save \"%s\" as"
 msgstr " \"%s\" 另存为"
 
-#: src/file.c:935 src/file.c:1131
+#: ../src/file.c:623
 msgid "Please supply a valid file name"
 msgstr "请输入文件名"
 
-#: ../src/file.c:664
+#: ../src/file.c:644
 #, c-format
 msgid "Overwrite file \"%s\"?"
 msgstr "覆盖文件 \"%s\"?"
 
-#: src/file.c:960 src/file.c:1155
+#: ../src/file.c:648
 msgid "File already exists."
 msgstr "已有同名文件。"
 
-#: src/file.c:1271
+#: ../src/file.c:744
 #, c-format
 msgid "Save changes to document \"%s\" before closing?"
 msgstr "在关闭前先保存文件 \"%s\"?"
 
-#: src/file.c:1279
+#: ../src/file.c:748
 msgid "Your changes will be lost if you don't save them."
 msgstr "如果不保存,所做的更改会丢失。"
 
-#: src/file.c:1282
+#: ../src/file.c:751
 msgid "Close without saving"
 msgstr "关闭(不保存)"
 
-#. Should not happen
-#: ../src/prefs.c:159 ../src/prefs.c:166
-#: ../data/builder/object-editor.glade.h:43
-#: ../data/builder/prefs-dialog.glade.h:22
-msgid "points"
-msgstr "像素"
+#: ../src/font-combo-menu.c:137
+#, fuzzy
+msgid "Recent fonts"
+msgstr "最近的模板"
 
-#: src/prefs.c:158 data/glade/object-editor.glade.h:36
-#: data/glade/template-designer.glade.h:74
-msgid "inches"
-msgstr "英寸"
+#: ../src/font-combo-menu.c:152
+msgid "Proportional fonts"
+msgstr ""
 
-#: src/prefs.c:160
-msgid "mm"
-msgstr "mm"
+#: ../src/font-combo-menu.c:160
+msgid "Fixed-width fonts"
+msgstr ""
 
-#: src/prefs-dialog.c:248 data/glade/prefs-dialog.glade.h:22
-msgid "gLabels Preferences"
-msgstr "gLabels参数"
+#: ../src/font-combo-menu.c:168
+#, fuzzy
+msgid "All fonts"
+msgstr "全部文件"
 
-#. Build editor.
-#: ../src/view-box.c:175
-msgid "Box object properties"
-msgstr "矩形属性"
+#.
+#. * Allow text samples to be localized.
+#. *
+#. * FIXME: if we could extract enough meta information from the fonts
+#. * themselves, perhaps rather than setting these globally for the
+#. * current locale, they could be unique to each font family.
+#.
+#: ../src/font-combo-menu-item.c:132
+msgctxt "Short sample text"
+msgid "Aa"
+msgstr ""
 
-#. Build editor.
-#: src/view-ellipse.c:224
-msgid "Ellipse object properties"
-msgstr "椭圆属性"
+#: ../src/font-combo-menu-item.c:134
+msgctxt "Lower case sample text"
+msgid "abcdefghijklmnopqrstuvwxyz"
+msgstr ""
 
-#. Build editor.
-#: src/view-line.c:224
-msgid "Line object properties"
-msgstr "线条属性"
+#: ../src/font-combo-menu-item.c:136
+msgctxt "Upper case sample text"
+msgid "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr ""
 
-#. Build editor.
-#: src/view-image.c:223
-msgid "Image object properties"
-msgstr "图片属性"
+#: ../src/font-combo-menu-item.c:138
+msgctxt "Numbers and special characters sample text"
+msgid "0123456789 .:,;(*!?)"
+msgstr ""
 
-#. Build editor.
-#: src/view-text.c:251
-msgid "Text object properties"
-msgstr "文字属性"
+#: ../src/font-combo-menu-item.c:157
+msgid "Sample text"
+msgstr ""
 
-#. Build editor.
-#: ../src/view-barcode.c:174
-msgid "Barcode object properties"
-msgstr "条形码属性"
+#: ../src/glabels-batch.c:53
+msgid "set output filename (default=\"output.pdf\")"
+msgstr "输出文件名(默认值=\"output.pdf\")"
 
-#: ../src/object-editor-image-page.c:267
-msgid "All Files"
-msgstr "全部文件"
+#: ../src/glabels-batch.c:53 ../src/glabels-batch.c:67
+msgid "filename"
+msgstr "文件名"
 
-#: ../src/object-editor-image-page.c:272
-msgid "All Images"
-msgstr "全部图片"
+#: ../src/glabels-batch.c:55
+msgid "number of sheets (default=1)"
+msgstr "每页数量(默认值=1)"
 
-#: ../src/object-editor-image-page.c:287
-#, c-format
-msgid "%s (*.%s)"
-msgstr "%s (*.%s)"
+#: ../src/glabels-batch.c:55
+msgid "sheets"
+msgstr "数量"
 
-#: ../src/merge-properties-dialog.c:271
-msgid "Merge Properties"
-msgstr "å\90\88并å±\9eæ\80§"
+#: ../src/glabels-batch.c:57
+msgid "number of copies (default=1)"
+msgstr "å\89¯æ\9c¬æ\95°é\87\8f(é»\98认å\80¼=1)"
 
-#: ../src/merge-properties-dialog.c:297 ../src/merge-properties-dialog.c:405
-msgid "Select merge-database source"
-msgstr "选择要插入的数据"
+#: ../src/glabels-batch.c:57
+msgid "copies"
+msgstr "副本"
 
-#: ../src/merge-properties-dialog.c:306 ../src/merge-properties-dialog.c:425
-msgid "N/A"
-msgstr ""
+#: ../src/glabels-batch.c:59
+msgid "first label on first sheet (default=1)"
+msgstr "第1页的第1个标签 (默认值=1)"
 
-#: ../src/merge-properties-dialog.c:332
-msgid "Select"
-msgstr "选择"
+#: ../src/glabels-batch.c:59
+msgid "first"
+msgstr "第1个"
 
-#: ../src/merge-properties-dialog.c:340
-msgid "Record/Field"
-msgstr "记录/区域"
+#: ../src/glabels-batch.c:61 ../data/ui/print-op-dialog-custom-widget.ui.h:13
+msgid "print outlines (to test printer alignment)"
+msgstr "打印外框线(用于校正打印机)"
 
-#: ../src/merge-properties-dialog.c:348
-#: ../data/builder/object-editor.glade.h:10
-msgid "Data"
-msgstr "数据"
+#: ../src/glabels-batch.c:63 ../data/ui/print-op-dialog-custom-widget.ui.h:12
+msgid "print in reverse (i.e. a mirror image)"
+msgstr "反转打印 (例如对称)"
 
-#: ../src/merge-properties-dialog.c:418
-msgid "Fixed"
-msgstr "固定值"
+#: ../src/glabels-batch.c:65 ../data/ui/print-op-dialog-custom-widget.ui.h:11
+msgid "print crop marks"
+msgstr "打印裁剪标记"
 
-#. ===================================================================
-#: ../src/print-op.c:242 ../src/wdgt-print-copies.c:171
-#: ../data/templates/misc-iso-templates.xml.h:34
-msgid "Labels"
-msgstr "标签"
+#: ../src/glabels-batch.c:67
+msgid "input file for merging"
+msgstr "输入要插入的文件名"
 
-#: ../src/template-designer.c:411
-msgid "gLabels Template Designer"
-msgstr "gLabels 模板设计工具r"
+#: ../src/glabels-batch.c:69 ../src/glabels.c:64
+msgid "[FILE...]"
+msgstr "[文件...]"
 
-#: ../src/template-designer.c:481
-msgid "Welcome"
-msgstr "欢è¿\8e"
+#: ../src/glabels-batch.c:99
+msgid "Print files created with gLabels."
+msgstr "æ\89\93å\8d°gLabelsæ\96\87件ã\80\82"
 
-#: ../src/template-designer.c:534
-msgid "Name and Description"
-msgstr "名称和说明"
+#: ../src/glabels-batch.c:107 ../src/glabels.c:89
+#, c-format
+msgid ""
+"%s\n"
+"Run '%s --help' to see a full list of available command line options.\n"
+msgstr ""
+"%s\n"
+"运行'%s --help'来查看可用的命令参数。\n"
 
-#: ../src/template-designer.c:595
-msgid "Page Size"
-msgstr "纸张尺寸"
+#: ../src/glabels-batch.c:151
+#, c-format
+msgid "cannot perform document merge with glabels file %s\n"
+msgstr "无法合并glabels文件%s \n"
 
-#: ../src/template-designer.c:675
-msgid "Label or Card Shape"
-msgstr "标签或名片形状"
+#: ../src/glabels-batch.c:186
+#, c-format
+msgid "cannot open glabels file %s\n"
+msgstr "无法打开glabels文件 %s\n"
 
-#: ../src/template-designer.c:735
-msgid "Label or Card Size"
-msgstr "标签或名片尺寸"
+#: ../src/glabels.c:81
+msgid "Launch gLabels label and business card designer."
+msgstr "启动gLabels标签和名片设计软件。"
 
-#: ../src/template-designer.c:844
-msgid "Label Size (round)"
-msgstr "æ \87签尺寸(å\9c\86å½¢)"
+#: ../src/label-barcode.c:154 ../src/ui.c:319
+msgid "Create barcode object"
+msgstr "æ\96°å»ºæ\9d¡å½¢ç \81"
 
-#: ../src/template-designer.c:935
-msgid "Label Size (CD/DVD)"
-msgstr "标签尺寸(CD/DVD)"
+#: ../src/label-barcode.c:227 ../src/label-barcode.c:389
+#, fuzzy
+msgid "Barcode data"
+msgstr "空条形码数据"
 
-#: ../src/template-designer.c:1036
-msgid "Number of Layouts"
-msgstr "布局个数"
+#: ../src/label-barcode.c:263
+#, fuzzy
+msgid "Barcode property"
+msgstr "条形码属性"
 
-#: ../src/template-designer.c:1110
-msgid "Layout(s)"
-msgstr "布局"
+#: ../src/label-barcode.c:485
+msgid "Barcode data empty"
+msgstr "空条形码数据"
 
-#: ../src/template-designer.c:1229
-msgid "Design Completed"
-msgstr "设计完成"
+#: ../src/label-barcode.c:489
+msgid "Invalid barcode data"
+msgstr "条形码数据无效"
 
-#: ../src/template-designer.c:1396
-msgid ""
-"<span foreground='red' weight='bold'>Brand and part# match an existing "
-"template!</span>"
-msgstr ""
-"<span foreground='red' weight='bold'>模板中已有的品牌和规格</span>"
+#: ../src/label-box.c:156
+#, fuzzy
+msgid "Create box object"
+msgstr "新建文字对象"
 
-#: ../src/bc.c:67
-msgid "POSTNET (any)"
-msgstr "POSTNET (通用)"
+#: ../src/label-box.c:230 ../src/label-ellipse.c:232 ../src/stock.c:93
+#: ../data/ui/property-bar.ui.h:3
+msgid "Fill color"
+msgstr "填充色"
 
-#: ../src/bc.c:70
-msgid "POSTNET-5 (ZIP only)"
-msgstr "POSTNET-5 (用于邮编)"
+#: ../src/label-box.c:261 ../src/label-ellipse.c:261 ../src/label-line.c:212
+#: ../src/stock.c:94 ../data/ui/property-bar.ui.h:8
+msgid "Line color"
+msgstr "线条颜色"
 
-#: ../src/bc.c:73
-msgid "POSTNET-9 (ZIP+4)"
-msgstr "POSTNET-9 (ZIP+4)"
+#: ../src/label-box.c:289 ../src/label-ellipse.c:290 ../src/label-line.c:241
+#: ../data/ui/property-bar.ui.h:9
+msgid "Line width"
+msgstr "线宽"
 
-#: ../src/bc.c:76
-msgid "POSTNET-11 (DPBC)"
-msgstr "POSTNET-11 (DPBC)"
+#: ../src/label.c:402
+msgid "Untitled"
+msgstr "未命名"
 
-#: ../src/bc.c:79
-msgid "CEPNET"
-msgstr "CEPNET"
+#: ../src/label.c:705 ../src/ui.c:422
+msgid "Merge properties"
+msgstr "合并属性"
 
-#: ../src/bc.c:82
-msgid "EAN (any)"
-msgstr "EAN (通用)"
+#: ../src/label.c:1197 ../src/ui.c:215
+msgid "Delete"
+msgstr "删除"
 
-#: ../src/bc.c:85
-msgid "EAN-8"
-msgstr "EAN-8"
+#: ../src/label.c:1230 ../src/ui.c:324
+msgid "Bring to front"
+msgstr "移到上层"
 
-#: ../src/bc.c:88
-msgid "EAN-8 +2"
-msgstr "EAN-8 +2"
+#: ../src/label.c:1266 ../src/ui.c:331
+msgid "Send to back"
+msgstr "移到下层"
 
-#: ../src/bc.c:91
-msgid "EAN-8 +5"
-msgstr "EAN-8 +5"
+#: ../src/label.c:1307
+#, fuzzy
+msgid "Rotate"
+msgstr "旋转"
 
-#: ../src/bc.c:94
-msgid "EAN-13"
-msgstr "EAN-13"
+#: ../src/label.c:1342 ../src/ui.c:338
+msgid "Rotate left"
+msgstr "向左旋转"
 
-#: ../src/bc.c:97
-msgid "EAN-13 +2"
-msgstr "EAN-13 +2"
+#: ../src/label.c:1375 ../src/ui.c:345
+msgid "Rotate right"
+msgstr "向右旋转"
 
-#: ../src/bc.c:100
-msgid "EAN-13 +5"
-msgstr "EAN-13 +5"
+#: ../src/label.c:1410 ../src/ui.c:352
+msgid "Flip horizontally"
+msgstr "水平翻转"
 
-#: ../src/bc.c:103
-msgid "UPC (UPC-A or UPC-E)"
-msgstr "UPC (UPC-A 或者 UPC-E)"
+#: ../src/label.c:1445 ../src/ui.c:359
+msgid "Flip vertically"
+msgstr "垂直翻转"
 
-#: ../src/bc.c:106
-msgid "UPC-A"
-msgstr "UPC-A"
+#: ../src/label.c:1485 ../src/ui.c:366
+msgid "Align left"
+msgstr "左对齐"
 
-#: ../src/bc.c:109
-msgid "UPC-A +2"
-msgstr "UPC-A +2"
+#: ../src/label.c:1542 ../src/ui.c:373
+msgid "Align right"
+msgstr "右对齐"
 
-#: ../src/bc.c:112
-msgid "UPC-A +5"
-msgstr "UPC-A +5"
+#: ../src/label.c:1603 ../src/ui.c:380
+msgid "Align horizontal center"
+msgstr "水平中心共线"
 
-#: ../src/bc.c:115
-msgid "UPC-E"
-msgstr "UPC-E"
+#: ../src/label.c:1679 ../src/ui.c:387
+msgid "Align tops"
+msgstr "顶端对齐"
 
-#: ../src/bc.c:118
-msgid "UPC-E +2"
-msgstr "UPC-E +2"
+#: ../src/label.c:1736 ../src/ui.c:394
+msgid "Align bottoms"
+msgstr "底部对齐"
 
-#: ../src/bc.c:121
-msgid "UPC-E +5"
-msgstr "UPC-E +5"
+#: ../src/label.c:1797 ../src/ui.c:401
+msgid "Align vertical center"
+msgstr "垂直中心共线"
 
-#: ../src/bc.c:124
-msgid "ISBN"
-msgstr "ISBN"
+#: ../src/label.c:1875 ../src/ui.c:408
+msgid "Center horizontally"
+msgstr "水平居中"
 
-#: ../src/bc.c:127
-msgid "ISBN +5"
-msgstr "ISBN +5"
+#: ../src/label.c:1922 ../src/ui.c:415
+msgid "Center vertically"
+msgstr "垂直居中"
 
-#: ../src/bc.c:130
-msgid "Code 39"
-msgstr "Code 39"
+#: ../src/label.c:2610 ../src/label.c:2652 ../src/label.c:2678 ../src/ui.c:208
+msgid "Paste"
+msgstr "粘贴"
 
-#: ../src/bc.c:133
-msgid "Code 128"
-msgstr "Code 128"
+#: ../src/label-ellipse.c:160
+#, fuzzy
+msgid "Create ellipse object"
+msgstr "新建线条对象"
 
-#: ../src/bc.c:136
-msgid "Code 128C"
-msgstr "Code 128C"
+#: ../src/label-image.c:200 ../src/ui.c:312
+msgid "Create image object"
+msgstr "新建图片对象"
 
-#: ../src/bc.c:139
-msgid "Code 128B"
-msgstr "Code 128B"
+#: ../src/label-image.c:333 ../src/label-image.c:474
+#, fuzzy
+msgid "Set image"
+msgstr "恢复图片大小"
 
-#: ../src/bc.c:142
-msgid "Interleaved 2 of 5"
-msgstr "Interleaved 2 of 5"
+#: ../src/label-line.c:147 ../src/ui.c:298
+msgid "Create line object"
+msgstr "新建线条对象"
 
-#: ../src/bc.c:145
-msgid "Codabar"
-msgstr "Codabar"
+#: ../src/label-object.c:383 ../src/label-object.c:416
+msgid "Move"
+msgstr ""
 
-#: ../src/bc.c:148
-msgid "MSI"
-msgstr "MSI"
+#: ../src/label-object.c:467
+#, fuzzy
+msgid "Resize"
+msgstr "纸张大小"
 
-#: ../src/bc.c:151
-msgid "Plessey"
-msgstr "Plessey"
+#: ../src/label-object.c:1185
+#, fuzzy
+msgid "Shadow state"
+msgstr "阴影"
 
-#: ../src/bc.c:154
-msgid "IEC16022 (DataMatrix)"
-msgstr "IEC16022 (DataMatrix)"
+#: ../src/label-object.c:1228
+#, fuzzy
+msgid "Shadow offset"
+msgstr "阴影"
 
-#: ../src/label.c:531
-msgid "Untitled"
-msgstr "未命名"
+#: ../src/label-object.c:1276
+#, fuzzy
+msgid "Shadow color"
+msgstr "阴影"
 
-#: ../src/label-barcode.c:426
-msgid "Barcode data empty"
-msgstr "空条形码数据"
+#: ../src/label-object.c:1319
+#, fuzzy
+msgid "Shadow opacity"
+msgstr "阴影"
 
-#: ../src/label-barcode.c:430
-msgid "Invalid barcode data"
-msgstr "æ\9d¡å½¢ç \81æ\95°æ\8d®æ\97 æ\95\88"
+#: ../src/label-text.c:279 ../src/ui.c:284
+msgid "Create text object"
+msgstr "æ\96°å»ºæ\96\87å­\97对象"
 
-#: ../src/xml-label.c:189 ../src/xml-label.c:226
-msgid "xmlParseFile error"
-msgstr "xml文件语法错误"
+#: ../src/label-text.c:451
+msgid "Typing"
+msgstr ""
 
-#: ../src/xml-label.c:262
-msgid "No document root"
-msgstr "没有文档根"
+#: ../src/label-text.c:584 ../data/ui/property-bar.ui.h:4
+msgid "Font family"
+msgstr "字体系列"
 
-#: ../src/xml-label.c:270
-msgid "Importing from glabels 0.1 format"
-msgstr "导å\85¥glabels 0.1æ ¼å¼\8f"
+#: ../src/label-text.c:622 ../data/ui/property-bar.ui.h:5
+msgid "Font size"
+msgstr "å­\97ä½\93大å°\8f"
 
-#: src/xml-label.c:272
-msgid "Importing from glabels 0.4 format"
-msgstr "导入glabels 0.4格式"
+#: ../src/label-text.c:655
+#, fuzzy
+msgid "Font weight"
+msgstr "向右旋转"
 
-#: ../src/xml-label.c:288
-#, c-format
-msgid "Unknown glabels Namespace -- Using %s"
-msgstr "未知的glabels文件名称 -- 使用 %s"
+#: ../src/label-text.c:688 ../data/ui/property-bar.ui.h:6
+msgid "Italic"
+msgstr "斜体"
 
-#: ../src/xml-label.c:319 ../src/xml-label-04.c:79
-#, c-format
-msgid "Bad root node = \"%s\""
-msgstr "错误的根地址 = \"%s\""
+#: ../src/label-text.c:721
+#, fuzzy
+msgid "Align text"
+msgstr "左对齐"
 
-#: ../src/xml-label.c:356
-#, c-format
-msgid "bad node in Document node =  \"%s\""
-msgstr "文档地址内有错误点 =  \"%s\""
+#: ../src/label-text.c:754
+#, fuzzy
+msgid "Line spacing"
+msgstr "线条间隔:"
 
-#: src/xml-label.c:393 src/xml-label-04.c:123 src/xml-label-191.c:197
-#, c-format
-msgid "bad node =  \"%s\""
-msgstr "错误点 =  \"%s\""
+#: ../src/label-text.c:787 ../data/ui/property-bar.ui.h:11
+#, fuzzy
+msgid "Text color"
+msgstr "文字颜色"
 
-#: src/xml-label.c:796 src/xml-label-191.c:605
-#, c-format
-msgid "bad node in Data node =  \"%s\""
-msgstr "数据地址内有错误点 =  \"%s\""
+#: ../src/label-text.c:931
+msgid "Auto shrink"
+msgstr ""
 
-#: src/xml-label.c:962 libglabels/xml-template.c:535
-msgid "Utf8 conversion error."
-msgstr "UTF-8编码转换错误。"
+#: ../src/media-select.c:349 ../src/media-select.c:353
+#: ../src/media-select.c:502 ../src/media-select.c:701
+#, fuzzy
+msgctxt "Brand"
+msgid "Any"
+msgstr "通用"
 
-#: src/xml-label.c:969 libglabels/xml-template.c:542
-msgid "Problem saving xml file."
-msgstr "保存xml文件时出错。"
+#: ../src/media-select.c:358 ../src/media-select.c:871
+#, fuzzy
+msgctxt "Page size"
+msgid "Any"
+msgstr "通用"
 
-#: ../src/merge.c:170 ../src/merge.c:211 ../src/merge.c:375 ../src/merge.c:378
-msgid "None"
-msgstr "无"
+#: ../src/media-select.c:367 ../src/media-select.c:370
+#: ../src/media-select.c:880
+#, fuzzy
+msgctxt "Category"
+msgid "Any"
+msgstr "通用"
 
-#: ../src/merge-init.c:59
-msgid "Text file with comma delimeters (CSV)"
-msgstr "用逗号分隔的文本文件 (CSV)"
+#: ../src/media-select.c:968
+msgid "No recent templates found."
+msgstr "最近没有使用模板。"
 
-#: src/merge-init.c:60
-msgid "Text file with colon delimeters"
-msgstr "用冒号分隔的文本文件 (CSV)"
+#: ../src/media-select.c:970
+#, fuzzy
+msgid "Try selecting a template in the \"Search all\" tab."
+msgstr "请从 \"查找全部模板\" 页面中选择一个模板。"
 
-#: src/merge-init.c:67
-msgid "Text file with tab delimeters"
-msgstr "用制表符分隔的文本文件 (CSV)"
+#. Translators: "No match" means that for the given template search criteria, there
+#. * were no matches found.
+#: ../src/media-select.c:1061
+msgid "No match."
+msgstr "不相符。"
 
-#: ../src/merge-init.c:82
-msgid "Data from default Evolution Addressbook"
-msgstr "从Evolution导出的通迅录"
+#: ../src/media-select.c:1063
+msgid "Try selecting a different brand, page size or category."
+msgstr "请选择其它品牌,纸张尺寸或类型。"
 
-#: ../src/merge-init.c:88
-msgid "Data from a file containing VCards"
-msgstr "从VCards文件导出的数据"
+#: ../src/media-select.c:1157
+#, fuzzy
+msgid "No custom templates found."
+msgstr "最近没有使用模板。"
 
-#: ../src/merge-evolution.c:309
-msgid "Couldn't construct query"
-msgstr "不能查询数据组"
+#: ../src/media-select.c:1159
+msgid ""
+"You may create new templates or try searching for pre-defined templates in "
+"the \"Search all\" tab."
+msgstr ""
 
-#: ../src/merge-evolution.c:315 ../src/merge-evolution.c:326
+#. Translators: "None" here means that no document-merge source or
+#. * method has been selected.
+#: ../src/merge.c:171 ../src/merge.c:212 ../src/merge.c:376 ../src/merge.c:379
+msgid "None"
+msgstr "无"
+
+#: ../src/merge-evolution.c:316
+msgid "Couldn't construct query"
+msgstr "不能查询数据组"
+
+#: ../src/merge-evolution.c:322 ../src/merge-evolution.c:333
 msgid "Couldn't open addressbook."
 msgstr "不能打开通迅录"
 
-#: ../src/merge-evolution.c:341
+#: ../src/merge-evolution.c:348
 msgid "Couldn't list available fields."
 msgstr "无法显示有效区域。"
 
-#: ../src/merge-evolution.c:377
+#: ../src/merge-evolution.c:384
 msgid "Couldn't get contacts."
 msgstr "无法读取通迅录信息。"
 
-#: ../src/color-combo.c:210
-msgid "Default Color"
-msgstr "默认颜色"
+#: ../src/merge-init.c:57
+msgid "Text: Comma Separated Values (CSV)"
+msgstr ""
 
-#: ../src/color-combo-menu.c:86
-msgid "Dark Red"
-msgstr "暗红"
+#: ../src/merge-init.c:64
+msgid "Text: Comma Separated Values (CSV) with keys on line 1"
+msgstr ""
 
-#: ../src/color-combo-menu.c:87
-msgid "Brown"
-msgstr "棕色"
+#: ../src/merge-init.c:72
+msgid "Text: Tab Separated Values (TSV)"
+msgstr ""
 
-#: ../src/color-combo-menu.c:88
-msgid "Dark Goldenrod"
-msgstr "暗黄"
+#: ../src/merge-init.c:79
+msgid "Text: Tab Separated Values (TSV) with keys on line 1"
+msgstr ""
 
-#: ../src/color-combo-menu.c:89
-msgid "Dark Green"
-msgstr "暗绿"
+#: ../src/merge-init.c:87
+msgid "Text: Colon separated values"
+msgstr ""
 
-#: ../src/color-combo-menu.c:90
-msgid "Dark Cyan"
-msgstr "暗品红"
+#: ../src/merge-init.c:94
+msgid "Text: Colon separated values with keys on line 1"
+msgstr ""
 
-#: ../src/color-combo-menu.c:91
-msgid "Navy Blue"
-msgstr "海水蓝"
+#: ../src/merge-init.c:102
+msgid "Text: Semicolon separated values"
+msgstr ""
 
-#: ../src/color-combo-menu.c:92
-msgid "Dark Violet"
-msgstr "紫黑"
+#: ../src/merge-init.c:109
+msgid "Text: Semicolon separated values with keys on line 1"
+msgstr ""
 
-#: ../src/color-combo-menu.c:94
-msgid "Red"
-msgstr "红色"
+#: ../src/merge-init.c:119
+#, fuzzy
+msgid "Evolution Addressbook"
+msgstr "从Evolution导出的通迅录"
 
-#: ../src/color-combo-menu.c:95
-msgid "Orange"
-msgstr "桔红"
+#: ../src/merge-init.c:125
+#, fuzzy
+msgid "VCards"
+msgstr "夹纸条"
 
-#: ../src/color-combo-menu.c:96
-msgid "Dark Yellow"
-msgstr "暗黄"
+#: ../src/merge-properties-dialog.c:282
+msgid "Merge Properties"
+msgstr "合并属性"
 
-#: ../src/color-combo-menu.c:97
-msgid "Medium green"
-msgstr "中等绿"
+#: ../src/merge-properties-dialog.c:308 ../src/merge-properties-dialog.c:424
+msgid "Select merge-database source"
+msgstr "选择要插入的数据"
 
-#: ../src/color-combo-menu.c:98
-msgid "Turquoise"
-msgstr "蓝绿"
+#: ../src/merge-properties-dialog.c:319 ../src/merge-properties-dialog.c:450
+msgid "N/A"
+msgstr ""
 
-#: ../src/color-combo-menu.c:99
-msgid "Blue"
-msgstr "蓝色"
+#: ../src/merge-properties-dialog.c:345
+msgid "Select"
+msgstr "选择"
 
-#: ../src/color-combo-menu.c:100
-msgid "Purple"
-msgstr "紫红"
+#: ../src/merge-properties-dialog.c:352
+msgid "Record/Field"
+msgstr "记录/区域"
 
-#: ../src/color-combo-menu.c:102
-msgid "Salmon"
-msgstr "马哈鱼色"
+#: ../src/merge-properties-dialog.c:360 ../data/ui/object-editor.ui.h:8
+msgid "Data"
+msgstr "数据"
 
-#: ../src/color-combo-menu.c:103
-msgid "Gold"
-msgstr "金黄"
+#. Translators: "Fixed" here means that for the given document-merge method, there are
+#. * no further choices to further define the source of data.  E.g. if you select the
+#. * evolution-data-server, there are no further choices -- the source is "Fixed."
+#.
+#: ../src/merge-properties-dialog.c:443
+msgid "Fixed"
+msgstr "固定值"
 
-#: ../src/color-combo-menu.c:104
-msgid "Yellow"
-msgstr "黄色"
+#. Translators: "Up" refers to the direction towards the top of a label.
+#: ../src/mini-preview.c:1074
+msgid "Up"
+msgstr ""
 
-#: ../src/color-combo-menu.c:105
-msgid "Green"
-msgstr "绿色"
+#: ../src/new-label-dialog.c:203
+#, fuzzy
+msgid "Select Product"
+msgstr "模式选择"
 
-#: ../src/color-combo-menu.c:106
-msgid "Cyan"
-msgstr "蓝绿色"
+#: ../src/new-label-dialog.c:215
+msgid "Choose Orientation"
+msgstr ""
+
+#: ../src/new-label-dialog.c:229
+msgid "Review"
+msgstr ""
+
+#: ../src/object-editor-bc-page.c:93 ../src/object-editor-shadow-page.c:93
+#: ../src/object-editor-text-page.c:97 ../src/prefs-dialog.c:339
+#: ../src/ui-property-bar.c:280
+msgid "Default"
+msgstr "默认值"
+
+#: ../src/object-editor.c:159 ../src/object-editor.c:460
+msgid "Object properties"
+msgstr "对象属性"
+
+#: ../src/object-editor.c:309
+msgid "Box object properties"
+msgstr "矩形属性"
+
+#: ../src/object-editor.c:328
+msgid "Ellipse object properties"
+msgstr "椭圆属性"
+
+#: ../src/object-editor.c:347
+msgid "Line object properties"
+msgstr "线条属性"
+
+#: ../src/object-editor.c:364
+msgid "Image object properties"
+msgstr "图片属性"
+
+#: ../src/object-editor.c:381
+msgid "Text object properties"
+msgstr "文字属性"
+
+#: ../src/object-editor.c:403
+msgid "Barcode object properties"
+msgstr "条形码属性"
+
+#: ../src/object-editor-edit-page.c:76
+msgid "Insert merge field"
+msgstr "插入合并区域"
+
+#: ../src/object-editor-fill-page.c:79 ../src/prefs-dialog.c:345
+#: ../src/ui-property-bar.c:292
+msgid "No Fill"
+msgstr "没有填充"
+
+#: ../src/object-editor-image-page.c:278
+msgid "All Files"
+msgstr "全部文件"
+
+#: ../src/object-editor-image-page.c:283
+msgid "All Images"
+msgstr "全部图片"
+
+#: ../src/object-editor-image-page.c:298
+#, c-format
+msgid "%s (*.%s)"
+msgstr "%s (*.%s)"
+
+#: ../src/object-editor-line-page.c:79 ../src/prefs-dialog.c:342
+#: ../src/ui-property-bar.c:304
+msgid "No Line"
+msgstr "没有线条"
+
+#: ../src/prefs-dialog.c:172 ../data/ui/prefs-dialog.ui.h:21
+msgid "gLabels Preferences"
+msgstr "gLabels参数"
+
+#. ===================================================================
+#: ../src/print-op.c:205 ../src/print-op-dialog.c:217
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:4
+#: ../templates/misc-iso-templates.xml.h:34
+msgid "Labels"
+msgstr "标签"
+
+#: ../src/stock.c:70
+msgid "_Select Mode"
+msgstr "选择模式(_S)"
+
+#: ../src/stock.c:71
+msgid "_Text"
+msgstr "文字(_T)"
+
+#: ../src/stock.c:72
+msgid "_Line"
+msgstr "线条(_L)"
+
+#: ../src/stock.c:73
+msgid "_Box"
+msgstr "矩形(_B)"
+
+#: ../src/stock.c:74
+msgid "_Ellipse"
+msgstr "椭圆(_E)"
+
+#: ../src/stock.c:75
+msgid "_Image"
+msgstr "图片(_I)"
+
+#: ../src/stock.c:76
+msgid "Bar_code"
+msgstr "条形码(_C)"
+
+#: ../src/stock.c:77
+msgid "_Merge Properties"
+msgstr "合并属性(_M)"
+
+#: ../src/stock.c:78
+msgid "Object _Properties"
+msgstr "对象属性(_P)"
+
+#: ../src/stock.c:79
+msgid "Bring to _Front"
+msgstr "移到上层(_F)"
+
+#: ../src/stock.c:80
+msgid "Send to _Back"
+msgstr "移到下层(_B)"
+
+#: ../src/stock.c:81
+msgid "Rotate _Left"
+msgstr "向左旋转(_L)"
+
+#: ../src/stock.c:82
+msgid "Rotate _Right"
+msgstr "向右旋转(_R)"
+
+#: ../src/stock.c:83
+msgid "Flip _Horizontally"
+msgstr "水平翻转(_H)"
+
+#: ../src/stock.c:84
+msgid "Flip _Vertically"
+msgstr "垂直翻转(_V)"
+
+#: ../src/stock.c:85
+msgid "_Lefts"
+msgstr "靠左(_L)"
+
+#: ../src/stock.c:86
+msgid "_Rights"
+msgstr "靠右(_R)"
+
+#: ../src/stock.c:87
+msgid "_Centers"
+msgstr "居中(_C)"
+
+#: ../src/stock.c:88
+msgid "_Tops"
+msgstr "顶部(_T)"
+
+#: ../src/stock.c:89
+msgid "Bottoms"
+msgstr "底部"
+
+#: ../src/stock.c:90
+msgid "Centers"
+msgstr "居中"
+
+#: ../src/stock.c:91 ../src/stock.c:92
+msgid "Label Ce_nter"
+msgstr "标签中心(_N)"
+
+#: ../src/stock.c:95 ../src/stock.c:97
+msgid "Linked"
+msgstr "相连"
+
+#: ../src/stock.c:96 ../src/stock.c:98
+msgid "Not Linked"
+msgstr "不相连"
+
+#: ../src/template-designer.c:404
+#, fuzzy
+msgid "New gLabels Template"
+msgstr "gLabels 模板设计工具r"
+
+#: ../src/template-designer.c:461
+msgid "Welcome"
+msgstr "欢迎"
+
+#: ../src/template-designer.c:500
+msgid "Name and Description"
+msgstr "名称和说明"
+
+#: ../src/template-designer.c:548
+msgid "Page Size"
+msgstr "纸张尺寸"
+
+#: ../src/template-designer.c:614
+msgid "Label or Card Shape"
+msgstr "标签或名片形状"
+
+#: ../src/template-designer.c:661
+msgid "Label or Card Size"
+msgstr "标签或名片尺寸"
+
+#: ../src/template-designer.c:760
+msgid "Label Size (round)"
+msgstr "标签尺寸(圆形)"
+
+#: ../src/template-designer.c:841
+msgid "Label Size (CD/DVD)"
+msgstr "标签尺寸(CD/DVD)"
+
+#: ../src/template-designer.c:932
+msgid "Number of Layouts"
+msgstr "布局个数"
+
+#: ../src/template-designer.c:1000
+msgid "Layout(s)"
+msgstr "布局"
+
+#: ../src/template-designer.c:1105
+msgid "Design Completed"
+msgstr "设计完成"
+
+#: ../src/template-designer.c:1133
+#, fuzzy
+msgid "Edit gLabels Template"
+msgstr "gLabels 模板设计工具r"
+
+#: ../src/template-designer.c:1423
+#, fuzzy
+msgid "Brand and part# match an existing template!"
+msgstr "<span foreground='red' weight='bold'>模板中已有的品牌和规格</span>"
+
+#. Menu entries.
+#: ../src/ui.c:93
+msgid "_File"
+msgstr "文件(_F)"
+
+#: ../src/ui.c:94
+msgid "Open Recent _Files"
+msgstr "打开最近的文件(_F)"
+
+#: ../src/ui.c:95
+msgid "_Edit"
+msgstr "编辑(_E)"
+
+#: ../src/ui.c:96
+msgid "_View"
+msgstr "查看(_V)"
+
+#: ../src/ui.c:97
+msgid "Customize Main Toolbar"
+msgstr "自定义主工具栏"
+
+#: ../src/ui.c:98
+msgid "Customize Drawing Toolbar"
+msgstr "自定义绘图栏"
+
+#: ../src/ui.c:99
+msgid "Customize Properties Toolbar"
+msgstr "自定义属性栏"
+
+#: ../src/ui.c:100
+msgid "_Objects"
+msgstr "对象(_O)"
+
+#: ../src/ui.c:101
+msgid "_Create"
+msgstr "新建(_C)"
+
+#: ../src/ui.c:102
+msgid "_Order"
+msgstr "排序(_O)"
+
+#: ../src/ui.c:103
+msgid "_Rotate/Flip"
+msgstr "旋转/翻转(_R)"
+
+#: ../src/ui.c:104
+msgid "Align _Horizontal"
+msgstr "水平对齐(_H)"
+
+#: ../src/ui.c:105
+msgid "Align _Vertical"
+msgstr "垂直对齐(_V)"
+
+#: ../src/ui.c:106
+msgid "_Help"
+msgstr "帮助(_H)"
+
+#. Popup entries.
+#: ../src/ui.c:109 ../src/ui.c:110
+msgid "Context Menu"
+msgstr "右键菜单"
+
+#: ../src/ui.c:115
+msgid "_New"
+msgstr "新建(_N)"
+
+#: ../src/ui.c:117
+msgid "Create a new file"
+msgstr "新建文件"
+
+#: ../src/ui.c:122
+msgid "_Open..."
+msgstr "打开(_O)..."
+
+#: ../src/ui.c:124
+msgid "Open a file"
+msgstr "打开文件"
+
+#: ../src/ui.c:129
+msgid "_Save"
+msgstr "保存(_S)"
+
+#: ../src/ui.c:131
+msgid "Save current file"
+msgstr "保存当前文件"
+
+#: ../src/ui.c:136
+msgid "Save _As..."
+msgstr "另存为(_A)..."
+
+#: ../src/ui.c:138
+msgid "Save the current file to a different name"
+msgstr "保存当前文件为其它文件名"
+
+#: ../src/ui.c:143
+msgid "_Print..."
+msgstr "打印(_P)..."
+
+#: ../src/ui.c:145
+msgid "Print the current file"
+msgstr "打印当前文件"
+
+#: ../src/ui.c:150
+msgid "Properties..."
+msgstr "属性..."
+
+#: ../src/ui.c:152
+msgid "Modify document properties"
+msgstr "修改文档属性"
+
+#: ../src/ui.c:157
+msgid "Template _Designer..."
+msgstr "模板设计工具(_D)..."
+
+#: ../src/ui.c:159
+msgid "Create a custom template"
+msgstr "新建一个模板"
+
+#: ../src/ui.c:164
+msgid "_Close"
+msgstr "关闭(_C)"
+
+#: ../src/ui.c:166
+msgid "Close the current file"
+msgstr "关闭当前文件"
+
+#: ../src/ui.c:171
+msgid "_Quit"
+msgstr "退出(_Q)"
+
+#: ../src/ui.c:173
+msgid "Quit the program"
+msgstr "退出程序"
+
+#: ../src/ui.c:180 ../src/ui.c:182 ../src/ui.c:967
+msgid "Undo"
+msgstr ""
+
+#: ../src/ui.c:187 ../src/ui.c:189 ../src/ui.c:974
+#, fuzzy
+msgid "Redo"
+msgstr "红色"
+
+#: ../src/ui.c:194
+msgid "Cut"
+msgstr "剪切"
+
+#: ../src/ui.c:196
+msgid "Cut the selection"
+msgstr "剪切选中的内容"
+
+#: ../src/ui.c:201
+msgid "Copy"
+msgstr "复制"
+
+#: ../src/ui.c:203
+msgid "Copy the selection"
+msgstr "复制选中的内容"
+
+#: ../src/ui.c:210
+msgid "Paste the clipboard"
+msgstr "粘贴到剪贴板"
+
+#: ../src/ui.c:217
+msgid "Delete the selected objects"
+msgstr "删除选中的对象"
+
+#: ../src/ui.c:222
+msgid "Select All"
+msgstr "全选"
+
+#: ../src/ui.c:224
+msgid "Select all objects"
+msgstr "选中全部对象"
+
+#: ../src/ui.c:229
+msgid "Un-select All"
+msgstr "取消全选"
+
+#: ../src/ui.c:231
+msgid "Remove all selections"
+msgstr "删除全部选中的内容"
+
+#: ../src/ui.c:236
+msgid "Preferences"
+msgstr "参数"
+
+#: ../src/ui.c:238
+msgid "Configure the application"
+msgstr "对程序进行设置"
+
+#: ../src/ui.c:245
+msgid "Zoom in"
+msgstr "放大"
+
+#: ../src/ui.c:247
+msgid "Increase magnification"
+msgstr "放大"
+
+#: ../src/ui.c:252
+msgid "Zoom out"
+msgstr "缩小"
+
+#: ../src/ui.c:254
+msgid "Decrease magnification"
+msgstr "缩小"
+
+#: ../src/ui.c:259
+msgid "Zoom 1 to 1"
+msgstr "1:1 缩放"
+
+#: ../src/ui.c:261
+msgid "Restore scale to 100%"
+msgstr "缩放到实际大小的 100% "
+
+#: ../src/ui.c:266
+msgid "Zoom to fit"
+msgstr "最佳比例"
+
+#: ../src/ui.c:268
+msgid "Set scale to fit window"
+msgstr "缩放到适合窗口"
+
+#: ../src/ui.c:275
+msgid "Select Mode"
+msgstr "模式选择"
+
+#: ../src/ui.c:277
+msgid "Select, move and modify objects"
+msgstr "选择,移动或删除对象"
+
+#: ../src/ui.c:282 ../src/view-text.c:102 ../data/ui/object-editor.ui.h:28
+#: ../data/ui/prefs-dialog.ui.h:17
+msgid "Text"
+msgstr "文字"
+
+#: ../src/ui.c:289
+msgid "Box"
+msgstr "矩形"
+
+#: ../src/ui.c:291
+msgid "Create box/rectangle object"
+msgstr "新建矩形对象"
+
+#: ../src/ui.c:296 ../data/ui/object-editor.ui.h:17
+#: ../data/ui/prefs-dialog.ui.h:9
+msgid "Line"
+msgstr "线条"
+
+#: ../src/ui.c:303
+msgid "Ellipse"
+msgstr "椭圆"
+
+#: ../src/ui.c:305
+msgid "Create ellipse/circle object"
+msgstr "新建 椭圆/圆 对象"
+
+#: ../src/ui.c:310 ../data/ui/object-editor.ui.h:14
+msgid "Image"
+msgstr "图片"
+
+#: ../src/ui.c:317
+msgid "Barcode"
+msgstr "条形码"
+
+#: ../src/ui.c:326
+msgid "Raise object to top"
+msgstr "移到最顶端"
+
+#: ../src/ui.c:333
+msgid "Lower object to bottom"
+msgstr "把下层对象移到最底层"
+
+#: ../src/ui.c:340
+msgid "Rotate object 90 degrees counter-clockwise"
+msgstr "向左旋转90度"
+
+#: ../src/ui.c:347
+msgid "Rotate object 90 degrees clockwise"
+msgstr "向右旋转90度"
+
+#: ../src/ui.c:354
+msgid "Flip object horizontally"
+msgstr "水平翻转对象"
+
+#: ../src/ui.c:361
+msgid "Flip object vertically"
+msgstr "垂直翻转对象"
+
+#: ../src/ui.c:368
+msgid "Align objects to left edges"
+msgstr "多个对象与左边界对齐"
+
+#: ../src/ui.c:375
+msgid "Align objects to right edges"
+msgstr "多个对象与左边界对齐"
+
+#: ../src/ui.c:382
+msgid "Align objects to horizontal centers"
+msgstr "多个对象的水平中心共线"
+
+#: ../src/ui.c:389
+msgid "Align objects to top edges"
+msgstr "多个对象与上边界对齐"
+
+#: ../src/ui.c:396
+msgid "Align objects to bottom edges"
+msgstr "多个对象与下边界对齐"
+
+#: ../src/ui.c:403
+msgid "Align objects to vertical centers"
+msgstr "多个对象的垂直中心共线"
 
-#: ../src/color-combo-menu.c:107
-msgid "SkyBlue"
-msgstr "天空è\93\9d"
+#: ../src/ui.c:410
+msgid "Center objects to horizontal label center"
+msgstr "对象中å¿\83ä¸\8e水平中å¿\83é\87\8då\90\88"
 
-#: ../src/color-combo-menu.c:108
-msgid "Violet"
-msgstr "紫色"
+#: ../src/ui.c:417
+msgid "Center objects to vertical label center"
+msgstr "对象中心与垂直中心重合"
 
-#: ../src/color-combo-menu.c:110
-msgid "Pink"
-msgstr "ç²\89红"
+#: ../src/ui.c:424
+msgid "Edit merge properties"
+msgstr "ç¼\96è¾\91å\90\88并å±\9eæ\80§"
 
-#: ../src/color-combo-menu.c:111
-msgid "Khaki"
-msgstr "浅棕黄色"
+#: ../src/ui.c:431
+msgid "Contents"
+msgstr "内容"
 
-#: ../src/color-combo-menu.c:112
-msgid "Light Yellow"
-msgstr "æµ\85é»\84"
+#: ../src/ui.c:433
+msgid "Open glabels manual"
+msgstr "æ\89\93å¼\80glabels帮å\8a©æ\89\8bå\86\8c"
 
-#: ../src/color-combo-menu.c:113
-msgid "Light Green"
-msgstr "浅绿"
+#: ../src/ui.c:438
+msgid "About..."
+msgstr "关于..."
 
-#: ../src/color-combo-menu.c:114
-msgid "Light Cyan"
-msgstr "浅品红色"
+#: ../src/ui.c:440
+msgid "About glabels"
+msgstr "关于glabels"
 
-#: ../src/color-combo-menu.c:115
-msgid "Slate Gray"
-msgstr "石灰白"
+# CHECK
+#: ../src/ui.c:450
+msgid "Property toolbar"
+msgstr "属性栏"
 
-#: ../src/color-combo-menu.c:116
-msgid "Thistle"
-msgstr ""
+#: ../src/ui.c:452
+msgid "Change the visibility of the property toolbar in the current window"
+msgstr "改变当前窗口中属性栏的可视性"
 
-#: ../src/color-combo-menu.c:118
-msgid "White"
-msgstr "白色"
+#: ../src/ui.c:458
+msgid "Grid"
+msgstr "单元格"
 
-#: ../src/color-combo-menu.c:119
-#, c-format
-msgid "10%% Gray"
-msgstr "10%% 灰色"
+#: ../src/ui.c:460
+msgid "Change the visibility of the grid in the current window"
+msgstr "改变当前窗口中单元格的可视性"
 
-#: ../src/color-combo-menu.c:120
-#, c-format
-msgid "25%% Gray"
-msgstr "25%% 灰色"
+#: ../src/ui.c:466
+msgid "Markup"
+msgstr "标记"
 
-#: ../src/color-combo-menu.c:121
-#, c-format
-msgid "40%% Gray"
-msgstr "40%% 灰色"
+#: ../src/ui.c:468
+msgid "Change the visibility of markup lines in the current window"
+msgstr "改变当前窗口中标记线条的可视性"
 
-#: ../src/color-combo-menu.c:122
-#, c-format
-msgid "50%% Gray"
-msgstr "50%% 灰色"
+#: ../src/ui.c:479
+msgid "Main toolbar"
+msgstr "主工具栏"
 
-#: ../src/color-combo-menu.c:123
-#, c-format
-msgid "60%% Gray"
-msgstr "60%% 灰色"
+#: ../src/ui.c:481
+msgid "Change the visibility of the main toolbar in the current window"
+msgstr "改变当前窗口中主工具栏的可视性"
 
-#: ../src/color-combo-menu.c:124
-msgid "Black"
-msgstr "黑色"
+#: ../src/ui.c:487
+msgid "Drawing toolbar"
+msgstr "绘图栏"
 
-#: ../src/color-combo-menu.c:252 ../src/color-combo-menu.c:369
-msgid "Custom Color"
-msgstr "自定义颜色"
+#: ../src/ui.c:489
+msgid "Change the visibility of the drawing toolbar in the current window"
+msgstr "改变当前窗口中绘图栏的可视性"
 
-#: ../src/color-combo-menu.c:317
-#, c-format
-msgid "Custom Color #%u"
-msgstr "自定义颜色 #%u"
+#: ../src/ui-commands.c:1135
+msgid "Glabels includes contributions from:"
+msgstr "Glabels 包括的发布内容来自:"
 
-#: ../src/wdgt-print-copies.c:153
-msgid "Sheets:"
-msgstr "页码:"
+#: ../src/ui-commands.c:1141
+msgid "See the file AUTHORS for additional credits,"
+msgstr "查看AUTHORS文件来获得更多信息,"
 
-#: ../src/wdgt-print-copies.c:173
-msgid "from:"
-msgstr "从:"
+#: ../src/ui-commands.c:1142
+#, fuzzy
+msgid "or visit http://glabels.org/"
+msgstr "或者访问 http://glabels.sourceforge.net/"
 
-#: ../src/wdgt-print-copies.c:179
-msgid "to:"
-msgstr "到:"
+#: ../src/ui-commands.c:1154
+msgid "A label and business card creation program.\n"
+msgstr "一个标签和名片设计程序。\n"
 
-#: ../src/wdgt-print-merge.c:154
-msgid "Start on label"
-msgstr "启动后直接打开标签"
+#: ../src/ui-commands.c:1158
+msgid "translator-credits"
+msgstr ""
+"Marcus Bauer <m@7n7.de>\n"
+"Christian Neumair <christian-neumair@web.de>\n"
+"Mario Blättermann <mariobl@gnome.org>\n"
+"Careone <zzbusagain@yahoo.com.cn>"
 
-#: ../src/wdgt-print-merge.c:161
-msgid "on 1st sheet"
-msgstr "在第1页"
+#: ../src/ui-commands.c:1161
+#, fuzzy
+msgid ""
+"gLabels is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"gLabels is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Glabels is free software; you can redistribute it and/or modify it\n"
+"under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation; either version 2 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See\n"
+"the GNU General Public License for more details.\n"
 
-#: ../src/wdgt-print-merge.c:170
-msgid "Copies:"
-msgstr "副本"
+#: ../src/ui-commands.c:1190
+msgid "glabels"
+msgstr "glabels"
 
-#: ../src/wdgt-print-merge.c:176
-msgid "Collate"
-msgstr "集合"
+#: ../src/warning-handler.c:69
+msgid "gLabels Error!"
+msgstr "gLabels错误!"
 
-#: ../src/wdgt-media-select.c:290 ../src/wdgt-media-select.c:294
-#: ../src/wdgt-media-select.c:299 ../src/wdgt-media-select.c:308
-#: ../src/wdgt-media-select.c:311 ../src/wdgt-media-select.c:404
-#: ../src/wdgt-media-select.c:611 ../src/wdgt-media-select.c:620
-msgid "Any"
-msgstr "通用"
+#: ../src/window.c:284
+msgid "(none) - gLabels"
+msgstr "(无) - gLabels"
 
-#: ../src/wdgt-media-select.c:645
-#, c-format
-msgid "%d per sheet"
-msgstr "每页 %d"
+#: ../src/window.c:485
+msgid "(modified)"
+msgstr "(已修改)"
 
-#: ../src/wdgt-media-select.c:675
+#: ../src/xml-label-04.c:75 ../src/xml-label.c:333
 #, c-format
-msgid "%s x %s %s"
-msgstr "%s x %s %s"
+msgid "Bad root node = \"%s\""
+msgstr "错误的根地址 = \"%s\""
 
-#: ../src/wdgt-media-select.c:680
+#: ../src/xml-label-04.c:123 ../src/xml-label.c:416
 #, c-format
-msgid "%.5g x %.5g %s"
-msgstr "%.5g x %.5g %s"
+msgid "bad node =  \"%s\""
+msgstr "错误点 =  \"%s\""
 
-#: ../src/wdgt-media-select.c:691 ../src/wdgt-media-select.c:705
-#, c-format
-msgid "%s %s diameter"
-msgstr "%s %s 直径"
+#: ../src/xml-label.c:199 ../src/xml-label.c:237
+msgid "xmlParseFile error"
+msgstr "xml文件语法错误"
 
-#: ../src/wdgt-media-select.c:695 ../src/wdgt-media-select.c:709
-#, c-format
-msgid "%.5g %s diameter"
-msgstr "%.5g %s 直径"
+#: ../src/xml-label.c:274
+msgid "No document root"
+msgstr "没有文档根"
 
-#: ../src/wdgt-media-select.c:783
-msgid "No recent templates found."
-msgstr "最近没有使用模板。"
+#: ../src/xml-label.c:282
+msgid "Importing from glabels 0.1 format"
+msgstr "导入glabels 0.1格式"
 
-#: ../src/wdgt-media-select.c:784
-msgid "Try selecting a template from the \"Search all templates\" page."
-msgstr "请从 \"查找全部模板\" 页面中选择一个模板。"
+#: ../src/xml-label.c:291
+msgid "Importing from glabels 0.4 format"
+msgstr "导入glabels 0.4格式"
 
-#: ../src/wdgt-media-select.c:863
-msgid "No match."
-msgstr "不相符。"
+#: ../src/xml-label.c:301
+#, c-format
+msgid "Unknown glabels Namespace -- Using %s"
+msgstr "未知的glabels文件名称 -- 使用 %s"
 
-#: ../src/wdgt-media-select.c:864
-msgid "Try selecting a different brand, page size or category."
-msgstr "请选择其它品牌,纸张尺寸或类型。"
+#: ../src/xml-label.c:370
+#, c-format
+msgid "bad node in Document node =  \"%s\""
+msgstr "文档地址内有错误点 =  \"%s\""
 
-#: ../src/wdgt-rotate-label.c:129
-msgid "Normal"
-msgstr "正常"
+#: ../src/xml-label.c:868
+#, c-format
+msgid "bad node in Data node =  \"%s\""
+msgstr "数据地址内有错误点 =  \"%s\""
 
-#: ../src/wdgt-rotate-label.c:130
-msgid "Rotated"
-msgstr "旋转"
+#: ../src/xml-label.c:944
+#, fuzzy, c-format
+msgid "Unknown embedded file format: \"%s\""
+msgstr "未知的纸张大小id或规格 \"%s\""
 
-#: ../src/critical-error-handler.c:73
-msgid "gLabels Fatal Error!"
-msgstr "gLabels出现严重错误!"
+#: ../src/xml-label.c:1150 ../libglabels/xml-template.c:802
+msgid "Utf8 conversion error."
+msgstr "UTF-8编码转换错误。"
 
-#: ../src/warning-handler.c:73
-msgid "gLabels Error!"
-msgstr "gLabels错误!"
+#: ../src/xml-label.c:1157
+msgid "Problem saving xml file."
+msgstr "保存xml文件时出错。"
 
 #. Create and append an "Other" entry.
-#: ../libglabels/db.c:118
+#. Translators: "Other" here means other page size.  Meaning a page size
+#. * other than the standard ones that libglabels knows about such as
+#. * "letter", "A4", etc.
+#: ../libglabels/db.c:270
 msgid "Other"
 msgstr "其它"
 
 #. Create and append a "User defined" entry.
-#: ../libglabels/db.c:131
+#: ../libglabels/db.c:279
 msgid "User defined"
 msgstr "自定义的"
 
-#: ../libglabels/db.c:482
+#: ../libglabels/db.c:665
 msgid ""
 "Unable to locate paper size definitions.  Libglabels may not be installed "
 "correctly!"
 msgstr "找不到纸张尺寸定义文件。可能是glabels的库文件没有正确安装。"
 
-#: ../libglabels/db.c:875
+#: ../libglabels/db.c:1057
 msgid ""
 "Unable to locate category definitions.  Libglabels may not be installed "
 "correctly!"
-msgstr ""
-"找不到类型定义文件。可能是glabels的库文件没有正确安装。"
+msgstr "找不到类型定义文件。可能是glabels的库文件没有正确安装。"
 
-#: ../libglabels/db.c:1461
+#: ../libglabels/db.c:2097
 msgid ""
 "Unable to locate any template files.  Libglabels may not be installed "
 "correctly!"
+msgstr "找不到模板文件。可能是glabels的库文件没有正确安装。"
+
+#: ../libglabels/db.c:2164
+#, fuzzy, c-format
+msgid "%s full page label"
+msgstr "普通的整页模板 %s"
+
+#: ../libglabels/template.c:156
+#, c-format
+msgid "Equivalent part (\"%s\") for \"%s\", not previously defined."
 msgstr ""
-"找不到模板文件。可能是glabels的库文件没有正确安装。"
 
-#: ../libglabels/db.c:1538
+#.
+#. * Translators: 1st %d = number of labels across a page,
+#. *              2nd %d = number of labels down a page,
+#. *              3rd %d = total number of labels on a page (sheet).
+#.
+#: ../libglabels/template.c:727
+#, fuzzy, c-format
+msgid "%d × %d (%d per sheet)"
+msgstr "每页 %d"
+
+#. Translators: %d is the total number of labels on a page (sheet).
+#: ../libglabels/template.c:732
 #, c-format
-msgid "Generic %s full page template"
-msgstr "普通的整页模板 %s"
+msgid "%d per sheet"
+msgstr "每页 %d"
+
+#: ../libglabels/template.c:802 ../libglabels/template.c:808
+#: ../libglabels/template.c:818 ../libglabels/template.c:824
+#, fuzzy
+msgid "diameter"
+msgstr "%s %s 直径"
+
+#. The ids are identical to the absolute length units supported in
+#. the CSS2 Specification (Section 4.3.2)
+#. This table must be sorted exactly as the enumerations in lglUnits
+#. [LGL_UNITS_POINT]
+#: ../libglabels/units.c:65 ../data/ui/object-editor.ui.h:39
+#: ../data/ui/prefs-dialog.ui.h:22
+msgid "points"
+msgstr "像素"
+
+#. [LGL_UNITS_INCH]
+#: ../libglabels/units.c:66 ../data/ui/object-editor.ui.h:38
+#: ../data/ui/template-designer.ui.h:62
+msgid "inches"
+msgstr "英寸"
+
+#. [LGL_UNITS_MM]
+#: ../libglabels/units.c:67
+msgid "mm"
+msgstr "mm"
+
+#. [LGL_UNITS_CM]
+#: ../libglabels/units.c:68
+msgid "cm"
+msgstr ""
+
+#. [LGL_UNITS_PICA]
+#: ../libglabels/units.c:69
+msgid "picas"
+msgstr ""
 
-#: ../libglabels/xml-template.c:227
+#: ../libglabels/xml-template.c:223
 msgid "Missing name or brand/part attributes."
 msgstr "名称或品牌/规格 属性不完整。"
 
@@ -1476,396 +1952,410 @@ msgstr "名称或品牌/规格 属性不完整。"
 msgid "Unknown page size id \"%s\", trying as name"
 msgstr "未知的纸张大小id \"%s\",请试着用纸张规格"
 
-#: src/xml-label-191.c:690 libglabels/xml-template.c:209
+#: ../libglabels/xml-template.c:256
 #, c-format
 msgid "Unknown page size id or name \"%s\""
 msgstr "未知的纸张大小id或规格 \"%s\""
 
-#: ../libglabels/xml-template.c:615
+#: ../libglabels/xml-template.c:275
+msgid "Forward references not supported."
+msgstr ""
+
+#: ../libglabels/xml-template.c:747
 msgid ""
 "Missing required \"brand\" or \"part\" attribute, trying deprecated name."
-msgstr ""
-"\"品牌\" 或者 \"规格\" 属性不完整,请尝试改变字母大小写。"
+msgstr "\"品牌\" 或者 \"规格\" 属性不完整,请尝试改变字母大小写。"
 
-#: ../libglabels/xml-template.c:625
+#: ../libglabels/xml-template.c:757
 msgid "Name attribute also missing."
 msgstr "名称属性也不完整。"
 
-#: ../data/builder/merge-properties-dialog.glade.h:1
-msgid "<b>Record selection/preview</b>"
-msgstr "<b>记录选择/预览</b>"
-
-#: ../data/builder/merge-properties-dialog.glade.h:2
-msgid "<b>Source</b>"
-msgstr "<b>来源</b>"
-
-#: ../data/builder/merge-properties-dialog.glade.h:3
+#.
+#. * Local Variables:       -- emacs
+#. * mode: C                -- emacs
+#. * c-basic-offset: 8      -- emacs
+#. * tab-width: 8           -- emacs
+#. * indent-tabs-mode: nil  -- emacs
+#. * End:                   -- emacs
+#.
+#: ../data/ui/merge-properties-dialog.ui.h:1
 msgid "Format:"
 msgstr "格式:"
 
-#: ../data/builder/merge-properties-dialog.glade.h:4
+#: ../data/ui/merge-properties-dialog.ui.h:2
 msgid "Location:"
 msgstr "位置:"
 
-#: ../data/builder/merge-properties-dialog.glade.h:5
+#: ../data/ui/merge-properties-dialog.ui.h:3
+#, fuzzy
+msgid "Record selection/preview"
+msgstr "<b>记录选择/预览</b>"
+
+#: ../data/ui/merge-properties-dialog.ui.h:4
 msgid "Select all"
 msgstr "全选"
 
-#: ../data/builder/merge-properties-dialog.glade.h:6
-msgid "Unselect all"
-msgstr "取消全选"
+#: ../data/ui/merge-properties-dialog.ui.h:5
+#, fuzzy
+msgid "Source"
+msgstr "<b>来源</b>"
+
+#: ../data/ui/merge-properties-dialog.ui.h:6
+msgid "Unselect all"
+msgstr "取消全选"
+
+#: ../data/ui/media-select.ui.h:1
+msgid "Brand:"
+msgstr "品牌:"
+
+#: ../data/ui/media-select.ui.h:2
+msgid "Category:"
+msgstr "类型:"
+
+#: ../data/ui/media-select.ui.h:3
+#, fuzzy
+msgid "Custom"
+msgstr "剪切"
+
+#: ../data/ui/media-select.ui.h:4 ../data/ui/new-label-dialog.ui.h:6
+#: ../data/ui/template-designer.ui.h:42
+msgid "Page size:"
+msgstr "纸张大小"
+
+#: ../data/ui/media-select.ui.h:5
+msgid "Recent"
+msgstr ""
+
+#: ../data/ui/media-select.ui.h:6
+#, fuzzy
+msgid "Search all"
+msgstr "全选"
+
+#: ../data/ui/new-label-dialog.ui.h:1
+msgid ""
+"Choose label or card product from hundreds of predefined templates or define "
+"your own."
+msgstr ""
+
+#: ../data/ui/new-label-dialog.ui.h:2 ../data/ui/template-designer.ui.h:27
+msgid "Description:"
+msgstr "说明:"
+
+#: ../data/ui/new-label-dialog.ui.h:3
+#, fuzzy
+msgid "Label size:"
+msgstr "纸张大小"
+
+#: ../data/ui/new-label-dialog.ui.h:4
+#, fuzzy
+msgid "Layout:"
+msgstr "布局"
+
+#: ../data/ui/new-label-dialog.ui.h:5
+msgid "Normal"
+msgstr "正常"
+
+#: ../data/ui/new-label-dialog.ui.h:7 ../data/ui/template-designer.ui.h:43
+msgid "Part #:"
+msgstr "规格 #:"
+
+#: ../data/ui/new-label-dialog.ui.h:8
+msgid "Please review and confirm your selection."
+msgstr ""
 
-#: ../data/builder/merge-properties-dialog.glade.h:7
-#: ../data/builder/object-editor.glade.h:39
-msgid "dialog1"
-msgstr "对话框1"
+#: ../data/ui/new-label-dialog.ui.h:9
+msgid "Rotated"
+msgstr "旋转"
+
+#: ../data/ui/new-label-dialog.ui.h:10
+msgid "Select orientation of label content."
+msgstr ""
 
-#: ../data/builder/new-label-dialog.glade.h:1
-msgid "<b>Label orientation</b>"
-msgstr "<b>标签方向</b>"
+#: ../data/ui/new-label-dialog.ui.h:11
+msgid "Similar products:"
+msgstr ""
 
-#: ../data/builder/new-label-dialog.glade.h:2
-msgid "<b>Media type</b>"
-msgstr "<b>介质类型</b>"
+#: ../data/ui/new-label-dialog.ui.h:12
+msgid "Vendor:"
+msgstr ""
 
-#: ../data/builder/object-editor.glade.h:2
+#: ../data/ui/object-editor.ui.h:2
 #, no-c-format
 msgid "%"
 msgstr "%"
 
-#: ../data/builder/object-editor.glade.h:3
-msgid "00000000000 00000"
-msgstr "00000000000 00000"
-
-#: ../data/builder/object-editor.glade.h:4
-msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
-msgstr "<span weight=\"bold\" size=\"larger\">Xxx对象属性</span>"
-
-#: ../data/builder/object-editor.glade.h:5
-#: ../data/builder/prefs-dialog.glade.h:7
+#: ../data/ui/object-editor.ui.h:3 ../data/ui/prefs-dialog.ui.h:2
 msgid "Alignment:"
 msgstr "对齐:"
 
-#: ../data/builder/object-editor.glade.h:6
+#: ../data/ui/object-editor.ui.h:4
 msgid "Allow merge to automatically shrink text"
 msgstr "自动调整和缩放文字"
 
-#: ../data/builder/object-editor.glade.h:7
+#: ../data/ui/object-editor.ui.h:5
 msgid "Angle:"
 msgstr "角度:"
 
-#: ../data/builder/object-editor.glade.h:8
+#: ../data/ui/object-editor.ui.h:6
 msgid "Checksum"
 msgstr "校验值"
 
-#: ../data/builder/object-editor.glade.h:9
-#: ../data/builder/prefs-dialog.glade.h:8
+#: ../data/ui/object-editor.ui.h:7 ../data/ui/prefs-dialog.ui.h:3
 msgid "Color:"
 msgstr "颜色:"
 
-#: ../data/builder/object-editor.glade.h:11
+#: ../data/ui/object-editor.ui.h:9
 msgid "Enable shadow"
 msgstr "使用阴影"
 
-#: ../data/builder/object-editor.glade.h:12
+#: ../data/ui/object-editor.ui.h:10
 msgid "Family:"
 msgstr "系列:"
 
-#: ../data/builder/object-editor.glade.h:13
+#: ../data/ui/object-editor.ui.h:11
 msgid "File:"
 msgstr "文件:"
 
-#: ../data/builder/object-editor.glade.h:14
+#: ../data/ui/object-editor.ui.h:12 ../data/ui/prefs-dialog.ui.h:5
 msgid "Fill"
 msgstr "填充"
 
-#: ../data/builder/object-editor.glade.h:15
-#: ../data/builder/template-designer.glade.h:30
+#: ../data/ui/object-editor.ui.h:13 ../data/ui/template-designer.ui.h:30
 msgid "Height:"
 msgstr "高度:"
 
-#: ../data/builder/object-editor.glade.h:17
-msgid "Insert merge field"
-msgstr "插入合并区域"
-
-#: ../data/builder/object-editor.glade.h:18
+#: ../data/ui/object-editor.ui.h:15
 msgid "Key:"
 msgstr "键值:"
 
-#: ../data/builder/object-editor.glade.h:19
+#: ../data/ui/object-editor.ui.h:16
 msgid "Length:"
 msgstr "长度:"
 
-#: ../data/builder/object-editor.glade.h:21
-#: ../data/builder/prefs-dialog.glade.h:12
+#: ../data/ui/object-editor.ui.h:18 ../data/ui/prefs-dialog.ui.h:10
 msgid "Line Spacing:"
 msgstr "线条间隔:"
 
-#: ../data/builder/object-editor.glade.h:22
+#: ../data/ui/object-editor.ui.h:19
 msgid "Literal:"
 msgstr "文字:"
 
-#: ../data/builder/object-editor.glade.h:23
+#: ../data/ui/object-editor.ui.h:20
 msgid "Opacity:"
 msgstr "不透明:"
 
-#: ../data/builder/object-editor.glade.h:24
+#: ../data/ui/object-editor.ui.h:21
 msgid "Position"
 msgstr "位置"
 
-#: ../data/builder/object-editor.glade.h:25
+#: ../data/ui/object-editor.ui.h:22
 msgid "Reset image size"
 msgstr "恢复图片大小"
 
-#: ../data/builder/object-editor.glade.h:26
-msgid "Select A File"
-msgstr "选择一个文件"
-
-#: ../data/builder/object-editor.glade.h:27
+#: ../data/ui/object-editor.ui.h:23
 msgid "Shadow"
 msgstr "阴影"
 
-#: ../data/builder/object-editor.glade.h:28
+#: ../data/ui/object-editor.ui.h:24
 msgid "Size"
 msgstr "尺寸"
 
-#: ../data/builder/object-editor.glade.h:29
+#: ../data/ui/object-editor.ui.h:25
 msgid "Size:"
 msgstr "尺寸:"
 
-#: ../data/builder/object-editor.glade.h:30
+#: ../data/ui/object-editor.ui.h:26
 msgid "Style"
 msgstr "规格"
 
-#: ../data/builder/object-editor.glade.h:31
+#: ../data/ui/object-editor.ui.h:27
 msgid "Style:"
 msgstr "规格:"
 
-#: ../data/builder/object-editor.glade.h:33
-#: ../data/builder/prefs-dialog.glade.h:20
-#: ../data/builder/template-designer.glade.h:61
+#: ../data/ui/object-editor.ui.h:29 ../data/ui/prefs-dialog.ui.h:20
+#: ../data/ui/template-designer.ui.h:61
 msgid "Width:"
 msgstr "宽度:"
 
-#: ../data/builder/object-editor.glade.h:34
+#: ../data/ui/object-editor.ui.h:30
 msgid "X Offset:"
 msgstr "X 偏移量:"
 
-#: ../data/builder/object-editor.glade.h:35
+#: ../data/ui/object-editor.ui.h:31
 msgid "X:"
 msgstr "X:"
 
-#: ../data/builder/object-editor.glade.h:36
+#: ../data/ui/object-editor.ui.h:32
 msgid "Y Offset:"
 msgstr "Y 偏移量:"
 
-#: ../data/builder/object-editor.glade.h:37
+#: ../data/ui/object-editor.ui.h:33
 msgid "Y:"
 msgstr "Y:"
 
-#: ../data/builder/object-editor.glade.h:38
+#: ../data/ui/object-editor.ui.h:34
 msgid "degrees"
 msgstr "度数"
 
-#: ../data/builder/object-editor.glade.h:40
+#: ../data/ui/object-editor.ui.h:35
+msgid "dialog1"
+msgstr "对话框1"
+
+#: ../data/ui/object-editor.ui.h:36
 msgid "digits:"
 msgstr "数字位数:"
 
-#: ../data/builder/object-editor.glade.h:41
+#: ../data/ui/object-editor.ui.h:37
 msgid "format:"
 msgstr "格式:"
 
-#: ../data/builder/prefs-dialog.glade.h:1
+#: ../data/ui/prefs-dialog.ui.h:1
 msgid "   "
 msgstr "   "
 
-#: ../data/builder/prefs-dialog.glade.h:2
-msgid "<span weight=\"bold\">Default page size</span>"
-msgstr "<span weight=\"bold\">默认纸张尺寸</span>"
-
-#: ../data/builder/prefs-dialog.glade.h:3
-msgid "<span weight=\"bold\">Fill</span>"
-msgstr "<span weight=\"bold\">填充</span>"
-
-#: ../data/builder/prefs-dialog.glade.h:4
-msgid "<span weight=\"bold\">Line</span>"
-msgstr "<span weight=\"bold\">线条</span>"
-
-#: ../data/builder/prefs-dialog.glade.h:5
-msgid "<span weight=\"bold\">Text</span>"
-msgstr "<span weight=\"bold\">文字</span>"
-
-#: ../data/builder/prefs-dialog.glade.h:6
-msgid "<span weight=\"bold\">Units</span>"
-msgstr "<span weight=\"bold\">单位</span>"
+#: ../data/ui/prefs-dialog.ui.h:4
+#, fuzzy
+msgid "Default page size"
+msgstr "恢复图片大小"
 
-#: ../data/builder/prefs-dialog.glade.h:9
+#: ../data/ui/prefs-dialog.ui.h:6
 msgid "Font:"
 msgstr "字体:"
 
-#: ../data/builder/prefs-dialog.glade.h:10
+#: ../data/ui/prefs-dialog.ui.h:7
 msgid "ISO A4"
 msgstr ""
 
-#: ../data/builder/prefs-dialog.glade.h:11
+#: ../data/ui/prefs-dialog.ui.h:8
 msgid "Inches"
 msgstr "英寸"
 
-#: ../data/builder/prefs-dialog.glade.h:13
+#: ../data/ui/prefs-dialog.ui.h:11
 msgid "Locale"
 msgstr "本地化"
 
-#: ../data/builder/prefs-dialog.glade.h:14
+#: ../data/ui/prefs-dialog.ui.h:12
 msgid "Millimeters"
 msgstr "毫米"
 
-#: ../data/builder/prefs-dialog.glade.h:15
+#: ../data/ui/prefs-dialog.ui.h:13
 msgid "Object defaults"
 msgstr "对象默认值"
 
-#: ../data/builder/prefs-dialog.glade.h:16
+#: ../data/ui/prefs-dialog.ui.h:14
 msgid "Points"
 msgstr "像素"
 
-#: ../data/builder/prefs-dialog.glade.h:17
+#: ../data/ui/prefs-dialog.ui.h:15
 msgid "Select default properties for new objects."
 msgstr "为新对象选择默认属性"
 
-#: data/glade/prefs-dialog.glade.h:19
+#: ../data/ui/prefs-dialog.ui.h:16
 msgid "Select locale specific behavior."
 msgstr "本地化设置"
 
-#. Most popular (at top of list)
-#: ../data/builder/prefs-dialog.glade.h:19
-#: ../data/templates/paper-sizes.xml.h:29
+#: ../data/ui/prefs-dialog.ui.h:18 ../templates/paper-sizes.xml.h:35
 msgid "US Letter"
 msgstr "美国信封"
 
-#: ../data/builder/print-custom-widget.glade.h:1
-msgid "<b>Options</b>"
-msgstr "<b>选项</b>"
-
-#: ../data/builder/print-custom-widget.glade.h:2
-msgid "<b>Print control (Merge)</b>"
-msgstr "<b>打印控制(合并)</b>"
-
-#: ../data/builder/print-custom-widget.glade.h:3
-msgid "<b>Print control (Simple)</b>"
-msgstr "<b>打印控制(简单)</b>"
+#: ../data/ui/prefs-dialog.ui.h:19
+#, fuzzy
+msgid "Units"
+msgstr "未命名"
 
-#: ../data/builder/property-bar.glade.h:1
+#: ../data/ui/property-bar.ui.h:1
 msgid "Bold"
 msgstr "粗体"
 
-#: ../data/builder/property-bar.glade.h:2
+#: ../data/ui/property-bar.ui.h:2
 msgid "Center align"
 msgstr "中心对齐"
 
-#: ../data/builder/property-bar.glade.h:4
-msgid "Font family"
-msgstr "字体系列"
-
-#: ../data/builder/property-bar.glade.h:5
-msgid "Font size"
-msgstr "字体大小"
-
-#: ../data/builder/property-bar.glade.h:6
-msgid "Italic"
-msgstr "斜体"
-
-#: ../data/builder/property-bar.glade.h:7
+#: ../data/ui/property-bar.ui.h:7
 msgid "Left align"
 msgstr "左对齐"
 
-#: ../data/builder/property-bar.glade.h:9
-msgid "Line width"
-msgstr "线宽"
-
-#: ../data/builder/property-bar.glade.h:10
+#: ../data/ui/property-bar.ui.h:10
 msgid "Right align"
 msgstr "右对齐"
 
-#: ../data/builder/property-bar.glade.h:11
-msgid "Text Color"
-msgstr "文字颜色"
-
-#: ../data/builder/template-designer.glade.h:1
+#: ../data/ui/template-designer.ui.h:1
 msgid "(e.g., \"Mailing Labels,\" \"Business Cards,\" ...)"
 msgstr "(例如:信封标签,名片...)"
 
-#: ../data/builder/template-designer.glade.h:2
+#: ../data/ui/template-designer.ui.h:2
 msgid "(e.g., 8163A)"
 msgstr "(例如:8163A)"
 
-#: ../data/builder/template-designer.glade.h:3
+#: ../data/ui/template-designer.ui.h:3
 msgid "(e.g., Avery, Acme, ...)"
 msgstr "(例如:Avery, Acme, ...)"
 
-#: ../data/builder/template-designer.glade.h:4
+#: ../data/ui/template-designer.ui.h:4
 msgid "1. Outer radius:"
 msgstr "1. 外半径:"
 
-#: data/glade/template-designer.glade.h:7
+#: ../data/ui/template-designer.ui.h:5
 msgid "1. Radius:"
 msgstr "1. 半径:"
 
-#: data/glade/template-designer.glade.h:8
+#: ../data/ui/template-designer.ui.h:6
 msgid "1. Width:"
 msgstr "1. 宽度:"
 
-#: data/glade/template-designer.glade.h:9
+#: ../data/ui/template-designer.ui.h:7
 msgid "2. Height:"
 msgstr "2. 高度:"
 
-#: data/glade/template-designer.glade.h:10
+#: ../data/ui/template-designer.ui.h:8
 msgid "2. Inner radius:"
 msgstr "2. 内半径:"
 
-#: data/glade/template-designer.glade.h:11
+#: ../data/ui/template-designer.ui.h:9
 msgid "2. Waste (overprint allowed):"
 msgstr "2. 余量(允许叠印):"
 
-#: data/glade/template-designer.glade.h:12
+#: ../data/ui/template-designer.ui.h:10
 msgid "3. Clipping width:"
 msgstr "3. 限宽:"
 
-#: data/glade/template-designer.glade.h:13
+#: ../data/ui/template-designer.ui.h:11
 msgid "3. Margin"
 msgstr "3. 页边"
 
-#: data/glade/template-designer.glade.h:14
+#: ../data/ui/template-designer.ui.h:12
 msgid "3. Round (radius of corner):"
 msgstr "3. 环绕 (半径):"
 
-#: data/glade/template-designer.glade.h:15
+#: ../data/ui/template-designer.ui.h:13
 msgid "4. Clipping height:"
 msgstr "4. 限高:"
 
-#: data/glade/template-designer.glade.h:16
+#: ../data/ui/template-designer.ui.h:14
 msgid "4. Horiz. waste (overprint allowed):"
 msgstr "4. 水平余量(允许叠印):"
 
-#: data/glade/template-designer.glade.h:17
+#: ../data/ui/template-designer.ui.h:15
 msgid "5. Vert. waste (overprint allowed):"
 msgstr "5. 垂直余量(允许叠印):"
 
-#: data/glade/template-designer.glade.h:18
+#: ../data/ui/template-designer.ui.h:16
 msgid "5. Waste (overprint allowed):"
 msgstr "5. 余量(允许叠印):"
 
-#: data/glade/template-designer.glade.h:19
+#: ../data/ui/template-designer.ui.h:17
 msgid "6. Margin"
 msgstr "6. 页边"
 
-#: data/glade/template-designer.glade.h:20
+#: ../data/ui/template-designer.ui.h:18
 msgid "Brand/Manufacturer:"
 msgstr "品牌/制造商:"
 
-#: data/glade/template-designer.glade.h:21
+#: ../data/ui/template-designer.ui.h:19
 msgid "CD/DVD (including credit card CDs)"
 msgstr "CD/DVD (包括信用卡CD)"
 
-#: data/glade/template-designer.glade.h:22
+#: ../data/ui/template-designer.ui.h:20
 msgid ""
 "Congratulations!\n"
 "\n"
@@ -1883,23 +2373,19 @@ msgstr ""
 "否则请点击 \"取消\" 来放弃设计,\n"
 "或者点击 \"后退\" 继续设计。"
 
-#: ../data/builder/template-designer.glade.h:27
-msgid "Description:"
-msgstr "说明:"
-
-#: data/glade/template-designer.glade.h:31
+#: ../data/ui/template-designer.ui.h:28
 msgid "Distance from left edge (x0):"
 msgstr "到左边界的距离 (x0):"
 
-#: data/glade/template-designer.glade.h:32
+#: ../data/ui/template-designer.ui.h:29
 msgid "Distance from top edge (y0):"
 msgstr "到上边界的距离 (y0):"
 
-#: data/glade/template-designer.glade.h:34
+#: ../data/ui/template-designer.ui.h:31
 msgid "Horizontal pitch (dx):"
 msgstr "水平栅距 (dx):"
 
-#: data/glade/template-designer.glade.h:35
+#: ../data/ui/template-designer.ui.h:32
 msgid ""
 "How many layouts will your template contain? \n"
 "\n"
@@ -1913,77 +2399,69 @@ msgstr ""
 "绝大多数模板只需要1个布局,如第1个例子所示。\n"
 "第2个图例说明了需要2个布局的例子。"
 
-#: ../data/builder/template-designer.glade.h:37
+#: ../data/ui/template-designer.ui.h:37
 msgid "Layout #1"
 msgstr "布局 #1"
 
-#: data/glade/template-designer.glade.h:45
+#: ../data/ui/template-designer.ui.h:38
 msgid "Layout #2"
 msgstr "布局 #2"
 
-#: data/glade/template-designer.glade.h:48
+#: ../data/ui/template-designer.ui.h:39
 msgid "Number across (nx):"
 msgstr "数字交叉 (nx):"
 
-#: data/glade/template-designer.glade.h:49
+#: ../data/ui/template-designer.ui.h:40
 msgid "Number down (ny):"
 msgstr "数字向下 (ny):"
 
-#: data/glade/template-designer.glade.h:51
+#: ../data/ui/template-designer.ui.h:41
 msgid "Number of layouts:"
 msgstr "布局个数:"
 
-#: data/glade/template-designer.glade.h:52
-msgid "Page size:"
-msgstr "纸张大小"
-
-#: data/glade/template-designer.glade.h:54
-msgid "Part #:"
-msgstr "规格 #:"
-
-#: ../data/builder/template-designer.glade.h:44
+#: ../data/ui/template-designer.ui.h:44
 msgid ""
 "Please enter the following identifying information about the template "
 "stationery."
 msgstr "请输入模板的备注信息。"
 
-#: data/glade/template-designer.glade.h:56
+#: ../data/ui/template-designer.ui.h:45
 msgid "Please enter the following layout information."
 msgstr "请输入下面的布局数据。"
 
-#: data/glade/template-designer.glade.h:57
+#: ../data/ui/template-designer.ui.h:46
 msgid ""
-"Please enter the following size parameters of a single label in your template."
+"Please enter the following size parameters of a single label in your "
+"template."
 msgstr "请在模板里输入单个标签的尺寸数据。"
 
-#: ../data/builder/template-designer.glade.h:47
+#: ../data/ui/template-designer.ui.h:47
 msgid ""
 "Please enter the following size parameters of a single label or card in your "
 "template."
-msgstr ""
-"请在模板里输入单个标签或名片的尺寸数据。"
+msgstr "请在模板里输入单个标签或名片的尺寸数据。"
 
-#: data/glade/template-designer.glade.h:59
+#: ../data/ui/template-designer.ui.h:48
 msgid "Please select the basic shape of the labels or cards."
 msgstr "请选择标签或名片的基本形状。"
 
-#: data/glade/template-designer.glade.h:60
+#: ../data/ui/template-designer.ui.h:49
 msgid "Please select the page size of the template stationery."
 msgstr "请选择模板所采用的纸张大小。"
 
-#: data/glade/template-designer.glade.h:61
+#: ../data/ui/template-designer.ui.h:50
 msgid "Print test sheet"
 msgstr "打印测试页"
 
-#: data/glade/template-designer.glade.h:62
+#: ../data/ui/template-designer.ui.h:51
 msgid "Rectangular or square (can have rounded corners)"
 msgstr "长方形或正方形(可以倒圆角)"
 
-#: data/glade/template-designer.glade.h:63
+#: ../data/ui/template-designer.ui.h:52
 msgid "Round"
 msgstr "圆形"
 
-#: data/glade/template-designer.glade.h:64
+#: ../data/ui/template-designer.ui.h:53
 msgid ""
 "Templates needing\n"
 "two layouts."
@@ -1991,7 +2469,7 @@ msgstr ""
 "模板需要\n"
 "2个布局 "
 
-#: data/glade/template-designer.glade.h:66
+#: ../data/ui/template-designer.ui.h:55
 msgid ""
 "Templates needing only\n"
 "one layout."
@@ -1999,11 +2477,11 @@ msgstr ""
 "模板需要\n"
 "1个布局 "
 
-#: ../data/builder/template-designer.glade.h:57
+#: ../data/ui/template-designer.ui.h:57
 msgid "Vertical pitch (dy):"
 msgstr "垂直栅距 (dy):"
 
-#: ../data/builder/template-designer.glade.h:58
+#: ../data/ui/template-designer.ui.h:58
 msgid ""
 "Welcome to the gLabels Template Designer.\n"
 "\n"
@@ -2013,198 +2491,227 @@ msgstr ""
 "\n"
 "请参照下面的步骤来制作一个你需要的 gLabels 模板。"
 
-#: ../data/builder/template-designer.glade.h:62
-msgid "cd_size_page"
-msgstr "光盘尺寸"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:1
+msgid "Collate"
+msgstr "集合"
 
-#: ../data/builder/template-designer.glade.h:63
-msgid "finish_page"
-msgstr "完成"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:2
+#, fuzzy
+msgid "Copies"
+msgstr "副本"
 
-#: ../data/builder/template-designer.glade.h:65
-msgid "layout_page"
-msgstr "å¸\83å±\80"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:3
+msgid "Copies:"
+msgstr "å\89¯æ\9c¬"
 
-#: ../data/builder/template-designer.glade.h:66
-msgid "name_page"
-msgstr "名称"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:5
+msgid "Merge Control"
+msgstr ""
 
-#: ../data/builder/template-designer.glade.h:67
-msgid "nlayouts_page"
-msgstr "多层布局"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:6
+#, fuzzy
+msgid "Options"
+msgstr "<b>选项</b>"
 
-#: ../data/builder/template-designer.glade.h:68
-msgid "pg_size_page"
-msgstr "纸张大小"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:7
+msgid "Sheets:"
+msgstr "页码:"
 
-#: ../data/builder/template-designer.glade.h:69
-msgid "rect_size_page"
-msgstr "矩形尺寸"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:8
+msgid "Start on label"
+msgstr "启动后直接打开标签"
 
-#: ../data/builder/template-designer.glade.h:70
-msgid "round_size_page"
-msgstr "圆形尺寸"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:9
+msgid "from:"
+msgstr "从:"
 
-#: ../data/builder/template-designer.glade.h:71
-msgid "shape_page"
-msgstr "å½¢ç\8a"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:10
+msgid "on 1st sheet"
+msgstr "å\9c¨ç¬¬1页"
 
-#: ../data/builder/template-designer.glade.h:72
-msgid "start_page"
-msgstr "起始页"
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:14
+msgid "to:"
+msgstr "到:"
 
-#: ../data/builder/wdgt-media-select.glade.h:1
-msgid "Brand:"
-msgstr "å\93\81ç\89\8cï¼\9a"
+#: ../data/desktop/glabels-3.0.desktop.in.h:1
+msgid "Create labels, business cards and media covers"
+msgstr "å\88¶ä½\9cæ \87ç­¾ï¼\8cå\90\8dç\89\87å\92\8cå\85\89ç\9b\98ç\9b\92å°\81é\9d¢"
 
-#: ../data/builder/wdgt-media-select.glade.h:2
-msgid "Category:"
-msgstr "类型:"
+#: ../data/desktop/glabels-3.0.desktop.in.h:2
+#, fuzzy
+msgid "gLabels Label Designer 3"
+msgstr "gLabels标签设计工具"
 
-#: ../data/builder/wdgt-media-select.glade.h:4
-msgid "Recent templates"
-msgstr "最近的模板"
+#: ../data/mime/glabels-3.0.xml.in.h:1
+msgid "gLabels Project File"
+msgstr "gLabels工程文件"
 
-#: ../data/builder/wdgt-media-select.glade.h:5
-msgid "Search all templates"
-msgstr "查找全部模板"
+#. Envelopes
+#: ../templates/paper-sizes.xml.h:2
+msgid "#10 Envelope"
+msgstr ""
 
 #. Other ISO A series sizes
-#: ../data/templates/paper-sizes.xml.h:2
+#: ../templates/paper-sizes.xml.h:4
 msgid "A0"
 msgstr "A0"
 
-#: ../data/templates/paper-sizes.xml.h:3
+#: ../templates/paper-sizes.xml.h:5
 msgid "A1"
 msgstr "A1"
 
-#: ../data/templates/paper-sizes.xml.h:4
+#: ../templates/paper-sizes.xml.h:6
 msgid "A10"
 msgstr "A10"
 
-#: ../data/templates/paper-sizes.xml.h:5
+#: ../templates/paper-sizes.xml.h:7
 msgid "A2"
 msgstr "A2"
 
-#: ../data/templates/paper-sizes.xml.h:6
+#: ../templates/paper-sizes.xml.h:8
 msgid "A3"
 msgstr "A3"
 
-#: ../data/templates/paper-sizes.xml.h:7
+#. Most popular (at top of list)
+#: ../templates/paper-sizes.xml.h:10
 msgid "A4"
 msgstr "A4"
 
-#: ../data/templates/paper-sizes.xml.h:8
+#: ../templates/paper-sizes.xml.h:11
 msgid "A5"
 msgstr "A5"
 
-#: ../data/templates/paper-sizes.xml.h:9
+#: ../templates/paper-sizes.xml.h:12
 msgid "A6"
 msgstr "A6"
 
-#: ../data/templates/paper-sizes.xml.h:10
+#: ../templates/paper-sizes.xml.h:13
 msgid "A7"
 msgstr "A7"
 
-#: ../data/templates/paper-sizes.xml.h:11
+#: ../templates/paper-sizes.xml.h:14
 msgid "A8"
 msgstr "A8"
 
-#: ../data/templates/paper-sizes.xml.h:12
+#: ../templates/paper-sizes.xml.h:15
 msgid "A9"
 msgstr "A9"
 
 #. ISO B series sizes
-#: ../data/templates/paper-sizes.xml.h:14
+#: ../templates/paper-sizes.xml.h:17
 msgid "B0"
 msgstr "B0"
 
-#: ../data/templates/paper-sizes.xml.h:15
+#: ../templates/paper-sizes.xml.h:18
 msgid "B1"
 msgstr "B1"
 
-#: ../data/templates/paper-sizes.xml.h:16
+#: ../templates/paper-sizes.xml.h:19
 msgid "B10"
 msgstr "B10"
 
-#: ../data/templates/paper-sizes.xml.h:17
+#: ../templates/paper-sizes.xml.h:20
 msgid "B2"
 msgstr "B2"
 
-#: ../data/templates/paper-sizes.xml.h:18
+#: ../templates/paper-sizes.xml.h:21
 msgid "B3"
 msgstr "B3"
 
-#: ../data/templates/paper-sizes.xml.h:19
+#: ../templates/paper-sizes.xml.h:22
 msgid "B4"
 msgstr "B4"
 
-#: ../data/templates/paper-sizes.xml.h:20
+#: ../templates/paper-sizes.xml.h:23
 msgid "B5"
 msgstr "B5"
 
-#: ../data/templates/paper-sizes.xml.h:21
+#: ../templates/paper-sizes.xml.h:24
 msgid "B6"
 msgstr "B6"
 
-#: ../data/templates/paper-sizes.xml.h:22
+#: ../templates/paper-sizes.xml.h:25
 msgid "B7"
 msgstr "B7"
 
-#: ../data/templates/paper-sizes.xml.h:23
+#: ../templates/paper-sizes.xml.h:26
 msgid "B8"
 msgstr "B8"
 
-#: ../data/templates/paper-sizes.xml.h:24
+#: ../templates/paper-sizes.xml.h:27
 msgid "B9"
 msgstr "B9"
-#: data/templates/paper-sizes.xml.h:25
+
+#: ../templates/paper-sizes.xml.h:28
+msgid "C5"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:29
+msgid "C6"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:30
+msgid "DL"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:31
+msgid "Monarch Envelope"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:32
 msgid "US Executive"
 msgstr "美国常用"
 
 #. Other US paper sizes
-#: data/templates/paper-sizes.xml.h:27
+#: ../templates/paper-sizes.xml.h:34
 msgid "US Legal"
 msgstr "美国国标"
 
-#: ../data/templates/categories.xml.h:1
+#: ../templates/categories.xml.h:1
 msgid "Any card"
 msgstr "通用名片"
 
-#: ../data/templates/categories.xml.h:2
+#: ../templates/categories.xml.h:2
 msgid "Any label"
 msgstr "通用标签"
 
-#: ../data/templates/categories.xml.h:3
+#. ===================================================================
+#: ../templates/categories.xml.h:3 ../templates/pearl-iso-templates.xml.h:8
 msgid "Business cards"
 msgstr "名片"
 
-#: ../data/templates/categories.xml.h:4
+#: ../templates/categories.xml.h:4
 msgid "CD/DVD or other media"
 msgstr "CD/DVD 或其它光盘"
 
-#: ../data/templates/categories.xml.h:5
+#: ../templates/categories.xml.h:5
 msgid "Mailing/shipping products"
 msgstr "信件/快递包裹"
 
-#: ../data/templates/categories.xml.h:6
+#: ../templates/categories.xml.h:6
 msgid "Rectangular labels"
 msgstr "长方形标签"
 
-#: ../data/templates/categories.xml.h:7
+#. ===================================================================
+#: ../templates/categories.xml.h:7 ../templates/pearl-iso-templates.xml.h:46
 msgid "Round labels"
 msgstr "圆形标签"
 
-#: ../data/templates/categories.xml.h:8
+#: ../templates/categories.xml.h:8
 msgid "Square labels"
 msgstr "正方形标签"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:2
-#: ../data/templates/avery-iso-templates.xml.h:2
-#: ../data/templates/dymo-other-templates.xml.h:4
-#: ../data/templates/misc-iso-templates.xml.h:2
-#: ../data/templates/zweckform-iso-templates.xml.h:2
+#. ********************************************************************
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:2
+#: ../templates/dymo-other-templates.xml.h:4
+#: ../templates/maco-us-templates.xml.h:2
+#: ../templates/misc-iso-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:1
+#: ../templates/zweckform-iso-templates.xml.h:2
 msgid "Address Labels"
 msgstr "通迅录标签"
 
@@ -2213,178 +2720,204 @@ msgstr "通迅录标签"
 #. ===================================================================
 #. ********************************************************************
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:4
-#: ../data/templates/avery-iso-templates.xml.h:8
-#: ../data/templates/misc-us-templates.xml.h:4
-#: ../data/templates/misc-iso-templates.xml.h:12
-#: ../data/templates/zweckform-iso-templates.xml.h:6
+#: ../templates/avery-us-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:8
+#: ../templates/misc-us-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:6
 msgid "Business Cards"
 msgstr "名片"
 
 #. ===================================================================
 #. ===============================================================
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:6
-#: ../data/templates/avery-iso-templates.xml.h:14
-#: ../data/templates/misc-us-templates.xml.h:8
-#: ../data/templates/misc-iso-templates.xml.h:16
-#: ../data/templates/zweckform-iso-templates.xml.h:8
+#: ../templates/avery-us-templates.xml.h:6
+#: ../templates/avery-iso-templates.xml.h:14
+#: ../templates/misc-us-templates.xml.h:8
+#: ../templates/misc-iso-templates.xml.h:16
+#: ../templates/pearl-iso-templates.xml.h:20
+#: ../templates/worldlabel-us-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:8
 msgid "CD/DVD Labels"
 msgstr "CD/DVD 光盘标签"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:8
+#: ../templates/avery-us-templates.xml.h:8
 msgid "CD/DVD Labels (Disc Labels)"
 msgstr "CD/DVD 光盘标签(光盘盘面)"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:10
+#: ../templates/avery-us-templates.xml.h:10
 msgid "CD/DVD Labels (Spine Labels)"
 msgstr "CD/DVD 光盘标签(光盘盒内衬纸)"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:12
-#: ../data/templates/avery-iso-templates.xml.h:16
+#: ../templates/avery-us-templates.xml.h:12
+#: ../templates/avery-iso-templates.xml.h:16
+#: ../templates/worldlabel-us-templates.xml.h:3
 msgid "Diskette Labels"
 msgstr "软盘标签"
 
 #. the LSK labels can be torn in half down the center
-#: ../data/templates/avery-us-templates.xml.h:14
+#: ../templates/avery-us-templates.xml.h:14
 msgid "Divider Labels"
 msgstr "分隔标签"
 
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:9
+#: ../templates/avery-us-templates.xml.h:16
+#: ../templates/avery-other-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:4
+msgid "File Folder Labels"
+msgstr "文件夹标签"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:5
 msgid "Filing Labels"
 msgstr "档案标签"
 
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:11
+#: ../templates/avery-us-templates.xml.h:20
+#: ../templates/worldlabel-us-templates.xml.h:6
 msgid "Full Sheet Labels"
 msgstr "整页标签"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:20
+#: ../templates/avery-us-templates.xml.h:22
 msgid "ID Labels"
 msgstr "编号卡片"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:22
+#: ../templates/avery-us-templates.xml.h:24
 msgid "Index Cards"
 msgstr "索引卡片"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:24
+#: ../templates/avery-us-templates.xml.h:26
 msgid "Large Round Labels"
 msgstr "大圆标签"
 
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:15
+#: ../templates/avery-us-templates.xml.h:28
 msgid "Name Badge Labels"
 msgstr "铭牌标签"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:28
+#: ../templates/avery-us-templates.xml.h:30
 msgid "Post cards"
 msgstr "贺卡/明信片"
 
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:17
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:32
+#: ../templates/dymo-other-templates.xml.h:12
+#: ../templates/worldlabel-us-templates.xml.h:8
 msgid "Return Address Labels"
 msgstr "退回地址标签"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:32
+#: ../templates/avery-us-templates.xml.h:34
+#: ../templates/maco-us-templates.xml.h:3
+#: ../templates/misc-us-templates.xml.h:30
+#: ../templates/worldlabel-us-templates.xml.h:9
 msgid "Round Labels"
 msgstr "圆标签"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:34
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:36
+#: ../templates/uline-us-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:10
 msgid "Shipping Labels"
 msgstr "物流标签"
 
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:21
+#: ../templates/avery-us-templates.xml.h:38
 msgid "Small Round Labels"
 msgstr "小圆标签"
 
 #. ===================================================================
-#: data/templates/avery-us-templates.xml.h:23
+#: ../templates/avery-us-templates.xml.h:40
 msgid "Square Labels"
 msgstr "正方形标签"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:40
+#: ../templates/avery-us-templates.xml.h:42
 msgid "Tent Cards"
 msgstr "夹纸条"
 
 #. ===================================================================
-#: ../data/templates/avery-us-templates.xml.h:42
+#: ../templates/avery-us-templates.xml.h:44
+#: ../templates/worldlabel-us-templates.xml.h:11
 msgid "Video Tape Face Labels"
 msgstr "录像带正面标签"
 
-#: data/templates/avery-us-templates.xml.h:25
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:46
+#: ../templates/worldlabel-us-templates.xml.h:12
 msgid "Video Tape Spine Labels"
 msgstr "录像带背面标签"
 
 #. ===================================================================
-#: data/templates/avery-iso-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:4
 msgid "Address labels"
 msgstr "通迅录标签"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:6
+#: ../templates/avery-iso-templates.xml.h:6
 msgid "Allround labels"
 msgstr "通用标签"
 
 #. ===============================================================
-#: data/templates/avery-iso-templates.xml.h:6
+#: ../templates/avery-iso-templates.xml.h:10
 msgid "CD Booklet"
 msgstr "CD集标签"
 
 #. ===============================================================
-#: data/templates/avery-iso-templates.xml.h:8
+#: ../templates/avery-iso-templates.xml.h:12
 msgid "CD Inlet"
 msgstr "CD单盒"
 
 #. ===================================================================
-#: ../data/templates/avery-iso-templates.xml.h:18
+#: ../templates/avery-iso-templates.xml.h:18
 msgid "Diskette labels"
 msgstr "软盘标签"
 
 #. ===============================================================
 #. ===================================================================
-#: data/templates/avery-iso-templates.xml.h:14
-#: data/templates/zweckform-iso-templates.xml.h:14
-#: data/templates/misc-iso-templates.xml.h:35
+#: ../templates/avery-iso-templates.xml.h:20
+#: ../templates/misc-us-templates.xml.h:20
+#: ../templates/misc-iso-templates.xml.h:36
+#: ../templates/zweckform-iso-templates.xml.h:16
 msgid "Mailing Labels"
 msgstr "信封标签"
 
 #. ===================================================================
-#: data/templates/avery-iso-templates.xml.h:16
+#: ../templates/avery-iso-templates.xml.h:22
 msgid "Mailing labels"
 msgstr "信封标签"
 
 #. ===================================================================
-#: data/templates/avery-iso-templates.xml.h:18
+#: ../templates/avery-iso-templates.xml.h:24
 msgid "Mini Address Labels"
 msgstr "地址标签"
 
 #. ===================================================================
-#: data/templates/avery-iso-templates.xml.h:20
-msgid "Shipping labels"
-msgstr "物流标签"
+#: ../templates/avery-iso-templates.xml.h:26
+#, fuzzy
+msgid "Mini Labels"
+msgstr "微型CD的标签"
 
 #. ===================================================================
-#: ../data/templates/avery-other-templates.xml.h:2
-msgid "File Folder Labels"
-msgstr "文件夹标签"
+#: ../templates/avery-iso-templates.xml.h:28
+msgid "Shipping labels"
+msgstr "物流标签"
 
-#: ../data/templates/brother-other-templates.xml.h:1
+#: ../templates/brother-other-templates.xml.h:1
 msgid "Multi Purpose Labels 17mm x 54mm"
 msgstr "多用途标签 17mm x 54mm"
 
-#: ../data/templates/brother-other-templates.xml.h:2
+#: ../templates/brother-other-templates.xml.h:2
 msgid "Shipping Labels 62mm x 100mm"
 msgstr "物流标签 62mm x 100mm"
 
@@ -2405,266 +2938,481 @@ msgstr "物流标签 62mm x 100mm"
 #. *********************************************************************
 #. *********************************************************************
 #.
-#: ../data/templates/brother-other-templates.xml.h:20
+#: ../templates/brother-other-templates.xml.h:20
 msgid "Standard Address Labels 29mm x 90mm"
 msgstr "标准通迅录 29mm x 90mm"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:2
+#: ../templates/dymo-other-templates.xml.h:2
 msgid "3.5in Diskette"
 msgstr "3.5英寸软盘"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:6
+#: ../templates/dymo-other-templates.xml.h:6
 msgid "File Folder"
 msgstr "文件夹"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:8
+#: ../templates/dymo-other-templates.xml.h:8
 msgid "Hanging Folder"
 msgstr "挂起的公文夹"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:10
+#: ../templates/dymo-other-templates.xml.h:10
 msgid "Large Address Labels"
 msgstr "大地址标签"
 
 #. ===================================================================
-#: ../data/templates/dymo-other-templates.xml.h:14
+#: ../templates/dymo-other-templates.xml.h:14
 msgid "Shipping Address Labels"
 msgstr "物流地址标签"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:2
+#: ../templates/misc-us-templates.xml.h:2
 msgid "Business Card CD"
 msgstr "名片CD"
 
 #. ===================================================================
-#: ../data/templates/misc-us-templates.xml.h:6
+#: ../templates/misc-us-templates.xml.h:6
 msgid "CD Template Rectangles"
 msgstr "CD方盒 (方形外包装)"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:10
 msgid "CD/DVD Labels (Face Only)"
 msgstr "CD/DVD光盘贴纸(盘面)"
 
-
-#: data/templates/misc-us-templates.xml.h:7
-#: data/templates/misc-iso-templates.xml.h:23
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:12
+#: ../templates/misc-iso-templates.xml.h:18
 msgid "CD/DVD Labels (face only)"
 msgstr "CD/DVD光盘贴纸(盘面)"
 
-
-#: data/templates/misc-us-templates.xml.h:9
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:14
 msgid "Cassette Labels"
 msgstr "磁带盒标签"
 
-
-#: data/templates/misc-us-templates.xml.h:11
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:16
 msgid "DLT Labels"
 msgstr "DLT标签"
 
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:18
+#, fuzzy
+msgid "Jewel Case Booklet"
+msgstr "CD集标签"
 
-#: data/templates/misc-us-templates.xml.h:13
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:22
 msgid "Microtube labels"
 msgstr "细管标签"
 
-#: data/templates/misc-us-templates.xml.h:14
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:24
 msgid "Mini-CD Labels"
 msgstr "微型CD的标签"
 
-#: data/templates/misc-us-templates.xml.h:15
+#: ../templates/misc-us-templates.xml.h:25
 msgid "PRO CD Labels 2-up (CD spine only)"
 msgstr "超级CD标签 2-向上(光盘盘面)"
 
-#: data/templates/misc-us-templates.xml.h:16
+#: ../templates/misc-us-templates.xml.h:26
 msgid "PRO CD Labels 2-up (Face only)"
 msgstr "超级CD标签 2-向上(封面)"
 
-#: data/templates/misc-us-templates.xml.h:17
-#: data/templates/misc-iso-templates.xml.h:42
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:42
 msgid "PRO CD Labels 2-up (face only)"
 msgstr "超级CD标签 2-向上(封面)"
 
-#: data/templates/misc-us-templates.xml.h:13
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:32
 msgid "Slimline CD Case (rightside up)"
 msgstr "CD收集盒(右侧在上)"
 
-#: data/templates/misc-us-templates.xml.h:19
+#: ../templates/misc-us-templates.xml.h:33
 msgid "Slimline CD Case (upside down)"
 msgstr "CD收集盒(盖子在下)"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:4
-#: ../data/templates/zweckform-iso-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:4
+#: ../templates/zweckform-iso-templates.xml.h:4
 msgid "Allround Labels"
 msgstr "通用标签"
 
-#: data/templates/misc-iso-templates.xml.h:11
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:6
 msgid "Arch File Labels"
 msgstr "档案标签"
 
-#: data/templates/misc-iso-templates.xml.h:13
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:8
 msgid "Arch File Labels (large)"
 msgstr "档案标签(大)"
 
-#: data/templates/misc-iso-templates.xml.h:15
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:10
 msgid "Arch File Labels (small)"
 msgstr "档案标签(小)"
 
-#: data/templates/misc-iso-templates.xml.h:19
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:14
 msgid "CD Labels"
 msgstr "CD标签"
 
-#: data/templates/misc-iso-templates.xml.h:25
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:20
 msgid "CD/DVD Labels Standard Format (face only)"
 msgstr "CD/DVD光盘贴纸标准格式(正面)"
 
-#: data/templates/misc-iso-templates.xml.h:27
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:22
 msgid "Diskette Labels (face only)"
 msgstr "软盘标签 (封面)"
 
-#: data/templates/misc-iso-templates.xml.h:29
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:24
 msgid "EPSON Photo Stickers 16"
 msgstr "爱普生(EPSON)相片纸"
 
-#: data/templates/misc-iso-templates.xml.h:31
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:26
 msgid "Etiketten"
 msgstr "包装标签"
 
-#: data/templates/misc-iso-templates.xml.h:33
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:28
 msgid "Fridge Magnet Stickers"
 msgstr "冰箱贴纸"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:30
+#: ../templates/misc-iso-templates.xml.h:30
 msgid "General Labels"
 msgstr "通用标签"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:32
+#: ../templates/misc-iso-templates.xml.h:32
 msgid "Inkjet/Laser Labels 70x37mm"
 msgstr "喷墨/激光打印纸 70x37mm"
 
 #. ===================================================================
-#: data/templates/misc-iso-templates.xml.h:37
-msgid "Mailing Labels --14"
-msgstr "信封标签 --14"
-
-#: data/templates/misc-iso-templates.xml.h:39
+#: ../templates/misc-iso-templates.xml.h:38
 msgid "Mailing Labels-2 columns"
 msgstr "信封标签-2栏"
 
-#: data/templates/misc-iso-templates.xml.h:41
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:40
 msgid "Mailing Labels-3 columns"
 msgstr "信封标签-3栏"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:44
-#: ../data/templates/zweckform-iso-templates.xml.h:24
+#: ../templates/misc-iso-templates.xml.h:44
+#: ../templates/zweckform-iso-templates.xml.h:24
 msgid "Rectangular Labels"
 msgstr "长方形标签"
 
 #. ===================================================================
-#: ../data/templates/misc-iso-templates.xml.h:46
+#: ../templates/misc-iso-templates.xml.h:46
+#, fuzzy
+msgid "Universal Labels"
+msgstr "通用标签"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:48
 msgid "Video Labels (face only)"
 msgstr "录像带标签(正面)"
 
 #. ===================================================================
-#: ../data/templates/misc-other-templates.xml.h:2
+#: ../templates/misc-other-templates.xml.h:2
 msgid "Multi-Purpose Labels"
 msgstr "多用途标签"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:10
+#: ../templates/pearl-iso-templates.xml.h:4
+#, fuzzy
+msgid "Address Labels (STAMPIT)"
+msgstr "通迅录标签"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:6
+#, fuzzy
+msgid "Bottle labels"
+msgstr "软盘标签"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:10
+msgid "Business cards glossy, both sides printable"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:12
+#, fuzzy
+msgid "Business cards high glossy"
+msgstr "名片"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:14
+#, fuzzy
+msgid "Business cards punched"
+msgstr "名片"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:16
+#, fuzzy
+msgid "Business cards punched dull"
+msgstr "名片"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:18
+#, fuzzy
+msgid "Business cards punched glossy"
+msgstr "名片"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:22
+#, fuzzy
+msgid "Floppy disk labels"
+msgstr "通用标签"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:24
+#, fuzzy
+msgid "Foldable business cards"
+msgstr "名片"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:26
+msgid "Foldable business cards glossy/dull"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:28
+#, fuzzy
+msgid "Labels A4"
+msgstr "标签"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:30
+#, fuzzy
+msgid "Labels A5"
+msgstr "标签"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:32
+#, fuzzy
+msgid "Labels A6"
+msgstr "标签"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:34
+msgid "Membership cards"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:36
+msgid "Membership cards, both sides printable"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:38
+#, fuzzy
+msgid "Name plates"
+msgstr "名称"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:40
+msgid "Passport photo labels glossy"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:42
+#, fuzzy
+msgid "Photo labels"
+msgstr "关于glabels"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:44
+msgid "Photo labels semiglossy"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:48
+#, fuzzy
+msgid "SD card labels"
+msgstr "正方形标签"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:50
+msgid "Self-adhesive film transparent"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:52
+msgid "Self-adhesive film weatherproof"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:54
+#, fuzzy
+msgid "Self-adhesive labels"
+msgstr "正方形标签"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:56
+msgid "Self-adhesive window film"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:10
 msgid "Correction and Cover-up Labels"
 msgstr "改错贴纸标签"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:12
 msgid "File Back Labels"
 msgstr "文件备案标签"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:14
+#: ../templates/zweckform-iso-templates.xml.h:14
 msgid "Lever Arch File Labels"
 msgstr "装订档案标签"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:18
+#: ../templates/zweckform-iso-templates.xml.h:18
 msgid "Multi-purpose Stick+Lift Labels"
 msgstr "多用途 易事贴"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:20
+#: ../templates/zweckform-iso-templates.xml.h:20
 msgid "QSL-Karten Etiketten 70mm x 50,8mm"
 msgstr ""
 
 #. ===================================================================
-#: data/templates/zweckform-iso-templates.xml.h:18
+#: ../templates/zweckform-iso-templates.xml.h:22
 msgid "Rectangular Copier Labels"
 msgstr "长方形复写标签"
 
 #. ===================================================================
-#: ../data/templates/zweckform-iso-templates.xml.h:26
+#: ../templates/zweckform-iso-templates.xml.h:26
 msgid "Video Labels (back)"
 msgstr "录像带标签(背面)"
 
-#. ===================================================================
-#: data/desktop/glabels.desktop.in.h:1
-msgid "Create labels, business cards and media covers"
-msgstr "制作标签,名片和光盘盒封面"
+#~ msgid "Text file with comma delimeters (CSV)"
+#~ msgstr "用逗号分隔的文本文件 (CSV)"
 
-#: data/desktop/glabels.desktop.in.h:2
-msgid "gLabels Label Designer"
-msgstr "gLabels标签设计工具"
+#~ msgid "Text file with colon delimeters"
+#~ msgstr "用冒号分隔的文本文件 (CSV)"
 
-#: data/mime/glabels.keys.in.h:1 data/mime/glabels.xml.in.h:1
-msgid "gLabels Project File"
-msgstr "gLabels工程文件"
+#~ msgid "Text file with tab delimeters"
+#~ msgstr "用制表符分隔的文本文件 (CSV)"
 
-#: ../barcode-0.98/compat/getopt.c:583
-#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: 选项 `%s' 有歧义\n"
+#~ msgid "Data from a file containing VCards"
+#~ msgstr "从VCards文件导出的数据"
 
-#: ../barcode-0.98/compat/getopt.c:607
-#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: 选项 `--%s' 不支持附加参数\n"
+#~ msgid "%s x %s %s"
+#~ msgstr "%s x %s %s"
 
-#: ../barcode-0.98/compat/getopt.c:612
-#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: 选项 `%c%s' 不支持附加参数\n"
+#~ msgid "%.5g x %.5g %s"
+#~ msgstr "%.5g x %.5g %s"
 
-#: ../barcode-0.98/compat/getopt.c:629
-#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s: 选项 `%s' 需要附加参数\n"
+#~ msgid "%.5g %s diameter"
+#~ msgstr "%.5g %s 直径"
 
-#. --option
-#: ../barcode-0.98/compat/getopt.c:658
-#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: 未知的选项 '--%s'\n"
+#~ msgid "<b>Label orientation</b>"
+#~ msgstr "<b>标签方向</b>"
 
-#. +option or -option
-#: ../barcode-0.98/compat/getopt.c:662
-#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: 未知的选项 `%c%s'\n"
+#~ msgid "<b>Media type</b>"
+#~ msgstr "<b>介质类型</b>"
 
-#. 1003.2 specifies the format of this message.
-#: ../barcode-0.98/compat/getopt.c:688
-#, c-format
-msgid "%s: illegal option -- %c\n"
-msgstr "%s: 非法的选项 -- %c\n"
+#~ msgid "00000000000 00000"
+#~ msgstr "00000000000 00000"
 
-#: ../barcode-0.98/compat/getopt.c:691
-#, c-format
-msgid "%s: invalid option -- %c\n"
-msgstr "%s: 无效的选项 -- %c\n"
+#~ msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
+#~ msgstr "<span weight=\"bold\" size=\"larger\">Xxx对象属性</span>"
 
-#: ../barcode-0.98/compat/getopt.c:727
-#, c-format
-msgid "%s: option requires an argument -- %c\n"
-msgstr "%s: 选项需要附加参数 -- %c\n"
\ No newline at end of file
+#~ msgid "Select A File"
+#~ msgstr "选择一个文件"
+
+#~ msgid "<span weight=\"bold\">Default page size</span>"
+#~ msgstr "<span weight=\"bold\">默认纸张尺寸</span>"
+
+#~ msgid "<span weight=\"bold\">Fill</span>"
+#~ msgstr "<span weight=\"bold\">填充</span>"
+
+#~ msgid "<span weight=\"bold\">Line</span>"
+#~ msgstr "<span weight=\"bold\">线条</span>"
+
+#~ msgid "<span weight=\"bold\">Text</span>"
+#~ msgstr "<span weight=\"bold\">文字</span>"
+
+#~ msgid "<span weight=\"bold\">Units</span>"
+#~ msgstr "<span weight=\"bold\">单位</span>"
+
+#~ msgid "<b>Print control (Merge)</b>"
+#~ msgstr "<b>打印控制(合并)</b>"
+
+#~ msgid "<b>Print control (Simple)</b>"
+#~ msgstr "<b>打印控制(简单)</b>"
+
+#~ msgid "cd_size_page"
+#~ msgstr "光盘尺寸"
+
+#~ msgid "finish_page"
+#~ msgstr "完成"
+
+#~ msgid "layout_page"
+#~ msgstr "布局"
+
+#~ msgid "nlayouts_page"
+#~ msgstr "多层布局"
+
+#~ msgid "pg_size_page"
+#~ msgstr "纸张大小"
+
+#~ msgid "rect_size_page"
+#~ msgstr "矩形尺寸"
+
+#~ msgid "round_size_page"
+#~ msgstr "圆形尺寸"
+
+#~ msgid "shape_page"
+#~ msgstr "形状"
+
+#~ msgid "start_page"
+#~ msgstr "起始页"
+
+#~ msgid "Search all templates"
+#~ msgstr "查找全部模板"
+
+#~ msgid "Mailing Labels --14"
+#~ msgstr "信封标签 --14"
+
+#~ msgid "%s: option `%s' is ambiguous\n"
+#~ msgstr "%s: 选项 `%s' 有歧义\n"
+
+#~ msgid "%s: option `--%s' doesn't allow an argument\n"
+#~ msgstr "%s: 选项 `--%s' 不支持附加参数\n"
+
+#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
+#~ msgstr "%s: 选项 `%c%s' 不支持附加参数\n"
+
+#~ msgid "%s: option `%s' requires an argument\n"
+#~ msgstr "%s: 选项 `%s' 需要附加参数\n"
+
+#~ msgid "%s: unrecognized option `--%s'\n"
+#~ msgstr "%s: 未知的选项 '--%s'\n"
+
+#~ msgid "%s: unrecognized option `%c%s'\n"
+#~ msgstr "%s: 未知的选项 `%c%s'\n"
+
+#~ msgid "%s: illegal option -- %c\n"
+#~ msgstr "%s: 非法的选项 -- %c\n"
+
+#~ msgid "%s: invalid option -- %c\n"
+#~ msgstr "%s: 无效的选项 -- %c\n"
+
+#~ msgid "%s: option requires an argument -- %c\n"
+#~ msgstr "%s: 选项需要附加参数 -- %c\n"
index 579c4e32744e5984848baa85603c842969e00249..567e16120ae9e548aeece2857877ace57e6c8c6d 100644 (file)
@@ -5,7 +5,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: glabels 0.4.4\n"
-"POT-Creation-Date: 2004-08-08 00:43-0400\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-07-10 00:37-0400\n"
 "PO-Revision-Date: 2002-07-14 18:30+0800\n"
 "Last-Translator: Shell Hung <shell@debian.org>\n"
 "Language-Team: zh-l10n <zh-l10n@linux.org.tw>\n"
@@ -13,2007 +14,2416 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: src/glabels.c:55
-msgid "Show view debugging messages."
+#: ../src/bc.c:66
+msgid "POSTNET (any)"
 msgstr ""
 
-#: src/glabels.c:58
-msgid "Show item debugging messages."
+#: ../src/bc.c:69
+msgid "POSTNET-5 (ZIP only)"
 msgstr ""
 
-#: src/glabels.c:61
-msgid "Show printing debugging messages."
+#: ../src/bc.c:72
+msgid "POSTNET-9 (ZIP+4)"
 msgstr ""
 
-#: src/glabels.c:64
-msgid "Show prefs debugging messages."
+#: ../src/bc.c:75
+msgid "POSTNET-11 (DPBC)"
 msgstr ""
 
-#: src/glabels.c:67
-msgid "Show file debugging messages."
+#: ../src/bc.c:80
+msgid "CEPNET"
 msgstr ""
 
-#: src/glabels.c:70
-msgid "Show document debugging messages."
+#: ../src/bc.c:83
+msgid "EAN (any)"
 msgstr ""
 
-#: src/glabels.c:73
-msgid "Show template debugging messages."
+#: ../src/bc.c:86
+msgid "EAN-8"
 msgstr ""
 
-#: src/glabels.c:76
-msgid "Show paper debugging messages."
+#: ../src/bc.c:89
+msgid "EAN-8 +2"
 msgstr ""
 
-#: src/glabels.c:79
-msgid "Show xml debugging messages."
+#: ../src/bc.c:92
+msgid "EAN-8 +5"
 msgstr ""
 
-#: src/glabels.c:82
-msgid "Show document merge debugging messages."
+#: ../src/bc.c:95
+msgid "EAN-13"
 msgstr ""
 
-#: src/glabels.c:85
-msgid "Show commands debugging messages."
+#: ../src/bc.c:98
+msgid "EAN-13 +2"
 msgstr ""
 
-#: src/glabels.c:88
-msgid "Show undo debugging messages."
+#: ../src/bc.c:101
+msgid "EAN-13 +5"
 msgstr ""
 
-#: src/glabels.c:91
-msgid "Show recent debugging messages."
+#: ../src/bc.c:104
+msgid "UPC (UPC-A or UPC-E)"
 msgstr ""
 
-#: src/glabels.c:94
-msgid "Show window debugging messages."
+#: ../src/bc.c:107 ../src/bc.c:348
+msgid "UPC-A"
 msgstr ""
 
-#: src/glabels.c:97
-msgid "Show ui debugging messages."
+#: ../src/bc.c:110
+msgid "UPC-A +2"
 msgstr ""
 
-#: src/glabels.c:100
-msgid "Show property_bar debugging messages."
+#: ../src/bc.c:113
+msgid "UPC-A +5"
 msgstr ""
 
-#: src/glabels.c:103
-msgid "Show media select widget debugging messages."
+#: ../src/bc.c:116 ../src/bc.c:351
+msgid "UPC-E"
 msgstr ""
 
-#: src/glabels.c:106
-msgid "Show mini preview widget debugging messages."
+#: ../src/bc.c:119
+msgid "UPC-E +2"
 msgstr ""
 
-#: src/glabels.c:109
-msgid "Show pixbuf cache debugging messages."
+#: ../src/bc.c:122
+msgid "UPC-E +5"
 msgstr ""
 
-#: src/glabels.c:112
-msgid "Show widget debugging messages."
+#: ../src/bc.c:125 ../src/bc.c:288
+msgid "ISBN"
 msgstr ""
 
-#: src/glabels.c:115
-msgid "Show object editor debugging messages."
+#: ../src/bc.c:128
+msgid "ISBN +5"
 msgstr ""
 
-#: src/glabels.c:118
-msgid "Turn on all debugging messages."
+#: ../src/bc.c:131 ../src/bc.c:204
+msgid "Code 39"
 msgstr ""
 
-#: src/glabels.c:187
-msgid "Could not initialize Bonobo!\n"
+#: ../src/bc.c:134 ../src/bc.c:216
+msgid "Code 128"
 msgstr ""
 
-#: src/glabels-batch.c:48
-msgid "print this message"
-msgstr "列印這個訊息"
-
-#: src/glabels-batch.c:50
-msgid "print the version of glabels-batch being used"
-msgstr "列印出 glabels-batch 的版本資訊"
+#: ../src/bc.c:137
+msgid "Code 128C"
+msgstr ""
 
-#: src/glabels-batch.c:52
-msgid "set output filename (default=\"output.ps\")"
-msgstr "設定輸出檔名稱 (預設為\"output.ps\")"
+#: ../src/bc.c:140
+msgid "Code 128B"
+msgstr ""
 
-#: src/glabels-batch.c:52
-msgid "filename"
-msgstr "檔案名稱"
+#: ../src/bc.c:143 ../src/bc.c:285
+msgid "Interleaved 2 of 5"
+msgstr ""
 
-#: src/glabels-batch.c:54
-msgid "number of sheets (default=1)"
-msgstr "紙張數目 (預設為 1)"
+#: ../src/bc.c:146 ../src/bc.c:180
+msgid "Codabar"
+msgstr ""
 
-#: src/glabels-batch.c:54
-msgid "sheets"
-msgstr "紙張"
+#: ../src/bc.c:149
+msgid "MSI"
+msgstr ""
 
-#: src/glabels-batch.c:56
-msgid "number of copies (default=1)"
-msgstr "份數 (預設為 1)"
+#: ../src/bc.c:152
+msgid "Plessey"
+msgstr ""
 
-#: src/glabels-batch.c:56
-msgid "copies"
-msgstr "份數"
+#: ../src/bc.c:155 ../src/bc.c:213
+msgid "Code 93"
+msgstr ""
 
-#: src/glabels-batch.c:58 src/print-dialog.c:336
-msgid "print outlines (to test printer alignment)"
-msgstr "印出外邊 (測試打印機參數)"
+#: ../src/bc.c:162
+msgid "Australia Post Standard"
+msgstr ""
 
-#: src/glabels-batch.c:60 src/print-dialog.c:344
-msgid "print in reverse (i.e. a mirror image)"
-msgstr "反方向列印 (如倒向影像)"
+#: ../src/bc.c:165
+msgid "Australia Post Reply Paid"
+msgstr ""
 
-#: src/glabels-batch.c:96
-msgid "[OPTION...] GLABELS_FILE..."
-msgstr "[選項...] GLABELS_FILE..."
+#: ../src/bc.c:168
+msgid "Australia Post Route Code"
+msgstr ""
 
-#: src/glabels-batch.c:116
-msgid "missing glabels file\n"
-msgstr "沒有輸入 glabels 的檔案\n"
+#: ../src/bc.c:171
+msgid "Australia Post Redirect"
+msgstr ""
 
-#: src/glabels-batch.c:157
-#, c-format
-msgid "cannot open glabels file %s\n"
-msgstr "開啟檔案失敗 %s\n"
+#: ../src/bc.c:174
+msgid "Aztec Code"
+msgstr ""
 
-#: src/window.c:244
-msgid "(none) - gLabels"
+#: ../src/bc.c:177
+msgid "Aztec Rune"
 msgstr ""
 
-#: src/window.c:414
-msgid "(modified)"
+#: ../src/bc.c:183
+msgid "Code One"
 msgstr ""
 
-#: src/stock.c:65 data/ui/glabels-ui.xml.h:165
-#, fuzzy
-msgid "_Select Mode"
-msgstr "選擇"
+#: ../src/bc.c:186
+msgid "Code 11"
+msgstr ""
 
-#: src/stock.c:66 data/ui/glabels-ui.xml.h:166
-#, fuzzy
-msgid "_Text"
-msgstr "文字"
+#: ../src/bc.c:189
+msgid "Code 16K"
+msgstr ""
 
-#: src/stock.c:67 data/ui/glabels-ui.xml.h:151
-#, fuzzy
-msgid "_Line"
-msgstr "線"
+#: ../src/bc.c:192
+msgid "Code 2 of 5 Matrix"
+msgstr ""
 
-#: src/stock.c:68 data/ui/glabels-ui.xml.h:133
-#, fuzzy
-msgid "_Box"
-msgstr "盒子"
+#: ../src/bc.c:195
+msgid "Code 2 of 5 IATA"
+msgstr ""
 
-#: src/stock.c:69 data/ui/glabels-ui.xml.h:144
-#, fuzzy
-msgid "_Ellipse"
-msgstr "橢圓形"
+#: ../src/bc.c:198
+msgid "Code 2 of 5 Data Logic"
+msgstr ""
 
-#: src/stock.c:70 data/ui/glabels-ui.xml.h:149
-#, fuzzy
-msgid "_Image"
-msgstr "圖像"
+#: ../src/bc.c:201
+msgid "Code 32 (Italian Pharmacode)"
+msgstr ""
 
-#: src/stock.c:71 data/ui/glabels-ui.xml.h:11
-#, fuzzy
-msgid "Bar_code"
-msgstr "數碼條"
+#: ../src/bc.c:207
+msgid "Code 39 Extended"
+msgstr ""
 
-#: src/stock.c:72
-#, fuzzy
-msgid "_Merge Properties"
-msgstr "合併設定"
+#: ../src/bc.c:210
+msgid "Code 49"
+msgstr ""
 
-#: src/stock.c:73
-#, fuzzy
-msgid "Object _Properties"
-msgstr "文字樣貌"
+#: ../src/bc.c:219
+msgid "Code 128 (Mode C supression)"
+msgstr ""
 
-#: src/stock.c:74 data/ui/glabels-ui.xml.h:13
-#, fuzzy
-msgid "Bring to _Front"
-msgstr "帶出到前面"
+#: ../src/bc.c:222
+msgid "DAFT Code"
+msgstr ""
 
-#: src/stock.c:75 data/ui/glabels-ui.xml.h:110
-#, fuzzy
-msgid "Send to _Back"
-msgstr "放在最底"
+#: ../src/bc.c:225
+msgid "Data Matrix"
+msgstr ""
 
-#: src/stock.c:76 data/ui/glabels-ui.xml.h:97
-#, fuzzy
-msgid "Rotate _Left"
-msgstr "旋轉"
+#: ../src/bc.c:228
+msgid "Deutsche Post Leitcode"
+msgstr ""
 
-#: src/stock.c:77 data/ui/glabels-ui.xml.h:98
-#, fuzzy
-msgid "Rotate _Right"
-msgstr "旋轉"
+#: ../src/bc.c:231
+msgid "Deutsche Post Identcode"
+msgstr ""
 
-#: src/stock.c:78 data/ui/glabels-ui.xml.h:52
-msgid "Flip _Horizontally"
+#: ../src/bc.c:234
+msgid "Dutch Post KIX Code"
 msgstr ""
 
-#: src/stock.c:79 data/ui/glabels-ui.xml.h:53
-msgid "Flip _Vertically"
+#: ../src/bc.c:237
+msgid "European Article Number (EAN)"
 msgstr ""
 
-#: src/stock.c:80 data/ui/glabels-ui.xml.h:150
-msgid "_Lefts"
+#: ../src/bc.c:240
+msgid "Grid Matrix"
 msgstr ""
 
-#: src/stock.c:81 data/ui/glabels-ui.xml.h:162
-msgid "_Rights"
+#: ../src/bc.c:243
+msgid "GS1-128"
 msgstr ""
 
-#: src/stock.c:82 data/ui/glabels-ui.xml.h:134
-msgid "_Centers"
+#: ../src/bc.c:246
+msgid "GS1 DataBar-14"
 msgstr ""
 
-#: src/stock.c:83 data/ui/glabels-ui.xml.h:167
-#, fuzzy
-msgid "_Tops"
-msgstr "工具 (&_T)"
+#: ../src/bc.c:255
+msgid "GS1 DataBar-14 Stacked"
+msgstr ""
 
-#: src/stock.c:84
-msgid "Bottoms"
+#: ../src/bc.c:258
+msgid "GS1 DataBar-14 Stacked Omni."
 msgstr ""
 
-#: src/stock.c:85
-msgid "Centers"
+#: ../src/bc.c:261
+msgid "GS1 DataBar Extended Stacked"
 msgstr ""
 
-#: src/stock.c:86 src/stock.c:87 data/ui/glabels-ui.xml.h:62
-msgid "Label Ce_nter"
+#: ../src/bc.c:264
+msgid "HIBC Code 128"
 msgstr ""
 
-#: src/stock.c:88 data/ui/glabels-ui.xml.h:51
-msgid "Fill color"
+#: ../src/bc.c:267
+msgid "HIBC Code 39"
 msgstr ""
 
-#: src/stock.c:89 data/ui/glabels-ui.xml.h:64
-msgid "Line color"
+#: ../src/bc.c:270
+msgid "HIBC Data Matrix"
 msgstr ""
 
-#: src/stock.c:90 src/stock.c:92
-#, fuzzy
-msgid "Linked"
-msgstr "線"
+#: ../src/bc.c:273
+msgid "HIBC QR Code"
+msgstr ""
 
-#: src/stock.c:91 src/stock.c:93
-#, fuzzy
-msgid "Not Linked"
-msgstr "沒有"
+#: ../src/bc.c:276
+msgid "HIBC PDF417"
+msgstr ""
 
-#: src/ui-property-bar.c:345 src/object-editor.c:499
-#, fuzzy
-msgid "Default"
-msgstr "刪除"
+#: ../src/bc.c:279
+msgid "HIBC Micro PDF417"
+msgstr ""
 
-#: src/ui-property-bar.c:360 src/object-editor.c:512
-msgid "No fill"
+#: ../src/bc.c:282
+msgid "HIBC Aztec Code"
 msgstr ""
 
-#: src/ui-property-bar.c:375 src/object-editor.c:505
-#, fuzzy
-msgid "No line"
-msgstr "沒有"
+#: ../src/bc.c:291
+msgid "ITF-14"
+msgstr ""
 
-#: src/ui-sidebar.c:180
-#, fuzzy
-msgid "Object properties"
-msgstr "文字樣貌"
+#: ../src/bc.c:294
+msgid "Japanese Postal"
+msgstr ""
 
-#: src/commands.c:385
-msgid ""
-"A label and business card creation program for GNOME.\n"
-" \n"
-"Glabels is free software; you can redistribute it and/or modify it under the "
-"terms of the GNU General Public License as published by the Free Software "
-"Foundation; either version 2 of the License, or (at your option) any later "
-"version.\n"
-" \n"
-"This program is distributed in the hope that it will be useful, but WITHOUT "
-"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or "
-"FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for "
-"more details.\n"
+#: ../src/bc.c:297
+msgid "Korean Postal"
 msgstr ""
-"A label and business card creation program for GNOME.\n"
-" \n"
-"Glabels is free software; you can redistribute it and/or modify it under the "
-"terms of the GNU General Public License as published by the Free Software "
-"Foundation; either version 2 of the License, or (at your option) any later "
-"version.\n"
-" \n"
-"This program is distributed in the hope that it will be useful, but WITHOUT "
-"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or "
-"FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for "
-"more details.\n"
 
-#: src/commands.c:399
-msgid "See the file AUTHORS for additional credits,"
+#: ../src/bc.c:300
+msgid "LOGMARS"
 msgstr ""
 
-#: src/commands.c:400
-msgid "or visit http://glabels.sourceforge.net/"
+#: ../src/bc.c:303
+msgid "Micro PDF417"
 msgstr ""
 
-#: src/commands.c:409
-msgid " "
+#: ../src/bc.c:306
+msgid "Micro QR Code"
 msgstr ""
 
-#: src/commands.c:424
-#, fuzzy
-msgid "glabels"
-msgstr "標簽"
+#: ../src/bc.c:309
+msgid "MSI Plessey"
+msgstr ""
 
-#: src/file.c:100
-msgid "New Label or Card"
-msgstr "新增標簽或卡"
+#: ../src/bc.c:312
+msgid "NVE-18"
+msgstr ""
 
-#: src/file.c:132 src/file.c:304
-msgid "Media Type"
-msgstr "媒體種類"
+#: ../src/bc.c:315
+msgid "PDF417"
+msgstr ""
 
-#: src/file.c:138 src/file.c:310
-msgid "Label orientation"
-msgstr "標簽方向"
+#: ../src/bc.c:318
+msgid "PDF417 Truncated"
+msgstr ""
 
-#: src/file.c:269
-#, fuzzy
-msgid "Label properties"
-msgstr "文字樣貌"
+#: ../src/bc.c:321
+msgid "PLANET"
+msgstr ""
 
-#: src/file.c:452 src/file.c:870
-msgid "All files"
+#: ../src/bc.c:324
+msgid "PostNet"
 msgstr ""
 
-#: src/file.c:457 src/file.c:875
+#: ../src/bc.c:327
 #, fuzzy
-msgid "gLabels documents"
-msgstr "Glabels: 設定值"
+msgid "Pharmacode"
+msgstr "數碼條"
 
-#: src/file.c:505 src/file.c:617 src/file.c:934 src/file.c:1130
+#: ../src/bc.c:330
 #, fuzzy
-msgid "Empty file name selection"
-msgstr "移除所有選擇項"
+msgid "Pharmacode 2-track"
+msgstr "數碼條資料"
 
-#: src/file.c:506 src/file.c:520 src/file.c:618 src/file.c:632
-msgid "Please select a file or supply a valid file name"
+#: ../src/bc.c:333
+msgid "Pharmazentral Nummer (PZN)"
 msgstr ""
 
-#: src/file.c:519 src/file.c:631
-msgid "File does not exist"
+#: ../src/bc.c:336
+msgid "QR Code"
 msgstr ""
 
-#: src/file.c:563 data/ui/glabels-ui.xml.h:75
-msgid "Open"
-msgstr "開啟"
+#: ../src/bc.c:339
+msgid "Royal Mail 4-State"
+msgstr ""
 
-#: src/file.c:565
-msgid "Open label"
-msgstr "開啟標簽"
+#: ../src/bc.c:342
+#, fuzzy
+msgid "Telepen"
+msgstr "刪除"
 
-#: src/file.c:707
-#, fuzzy, c-format
-msgid "Could not open file \"%s\""
-msgstr "開啟檔案失敗"
+#: ../src/bc.c:345
+msgid "Telepen Numeric"
+msgstr ""
 
-#: src/file.c:715
-msgid "Not a supported file format"
+#: ../src/bc.c:354
+msgid "USPS One Code"
 msgstr ""
 
-#: src/file.c:797 src/file.c:979 src/file.c:1174
-#, fuzzy, c-format
-msgid "Could not save file \"%s\""
-msgstr "不能儲存檔案"
+#: ../src/bc.c:357
+msgid "UK Plessey"
+msgstr ""
 
-#: src/file.c:805 src/file.c:987 src/file.c:1182
-msgid "Error encountered during save.  The file is still not saved."
+#: ../src/bc.c:364
+msgid "IEC16022 (DataMatrix)"
 msgstr ""
 
-#: src/file.c:848 src/file.c:1048
-#, fuzzy, c-format
-msgid "Save \"%s\" as"
-msgstr "儲存標簽為..."
+#: ../src/bc.c:371
+msgid "IEC18004 (QRCode)"
+msgstr ""
 
-#: src/file.c:935 src/file.c:1131
+#: ../src/color-combo-button.c:198 ../src/color-combo.c:178
 #, fuzzy
-msgid "Please supply a valid file name"
-msgstr "請必需輸入檔案名稱"
+msgid "Default Color"
+msgstr "刪除"
 
-#: src/file.c:952 src/file.c:1147
-#, c-format
-msgid "Overwrite file \"%s\"?"
+#: ../src/color-combo-menu.c:83
+msgid "Dark Red"
 msgstr ""
 
-#: src/file.c:960 src/file.c:1155
-msgid "File already exists."
+#: ../src/color-combo-menu.c:84
+msgid "Brown"
 msgstr ""
 
-#: src/file.c:1271
-#, c-format
-msgid "Save changes to document \"%s\" before closing?"
+#: ../src/color-combo-menu.c:85
+msgid "Dark Goldenrod"
 msgstr ""
 
-#: src/file.c:1279
-msgid "Your changes will be lost if you don't save them."
+#: ../src/color-combo-menu.c:86
+msgid "Dark Green"
 msgstr ""
 
-#: src/file.c:1282
-msgid "Close without saving"
+#: ../src/color-combo-menu.c:87
+msgid "Dark Cyan"
 msgstr ""
 
-#. Should not happen
-#: src/prefs.c:156 src/prefs.c:163 data/glade/prefs-dialog.glade.h:23
-#: data/glade/object-editor.glade.h:37
-msgid "points"
-msgstr "點"
+#: ../src/color-combo-menu.c:88
+msgid "Navy Blue"
+msgstr ""
 
-#: src/prefs.c:158 data/glade/object-editor.glade.h:36
-#: data/glade/template-designer.glade.h:74
-msgid "inches"
-msgstr "英寸"
+#: ../src/color-combo-menu.c:89
+msgid "Dark Violet"
+msgstr ""
 
-#: src/prefs.c:160
-msgid "mm"
-msgstr "mm"
+#: ../src/color-combo-menu.c:91
+msgid "Red"
+msgstr ""
 
-#: src/prefs-dialog.c:248 data/glade/prefs-dialog.glade.h:22
-#, fuzzy
-msgid "gLabels Preferences"
-msgstr "Glabels: 設定值"
+#: ../src/color-combo-menu.c:92
+msgid "Orange"
+msgstr ""
 
-#.
-#. * Submenu: Order
-#.
-#: src/view.c:3570 data/ui/glabels-ui.xml.h:157
-msgid "_Order"
+#: ../src/color-combo-menu.c:93
+msgid "Dark Yellow"
 msgstr ""
 
-#.
-#. * Submenu: Rotate/Flip
-#.
-#: src/view.c:3591 data/ui/glabels-ui.xml.h:163
-#, fuzzy
-msgid "_Rotate/Flip"
-msgstr "旋轉"
+#: ../src/color-combo-menu.c:94
+msgid "Medium green"
+msgstr ""
 
-#.
-#. * Submenu: Align Horizontally
-#.
-#: src/view.c:3624
-msgid "Align _Horizontally"
+#: ../src/color-combo-menu.c:95
+msgid "Turquoise"
 msgstr ""
 
-#.
-#. * Submenu: Align Vertically
-#.
-#: src/view.c:3663
-msgid "Align _Vertically"
+#: ../src/color-combo-menu.c:96
+msgid "Blue"
 msgstr ""
 
-#: src/view.c:3724 data/ui/glabels-ui.xml.h:140
-#, fuzzy
-msgid "_Delete"
-msgstr "刪除"
+#: ../src/color-combo-menu.c:97
+msgid "Purple"
+msgstr ""
 
-#. Build editor.
-#: src/view-box.c:223
-#, fuzzy
-msgid "Box object properties"
-msgstr "修改方塊物件設定"
+#: ../src/color-combo-menu.c:99
+msgid "Salmon"
+msgstr ""
 
-#. Build editor.
-#: src/view-ellipse.c:223
-#, fuzzy
-msgid "Ellipse object properties"
-msgstr "修改橢圓物件設定"
+#: ../src/color-combo-menu.c:100
+msgid "Gold"
+msgstr ""
 
-#. Build editor.
-#: src/view-line.c:223
-#, fuzzy
-msgid "Line object properties"
-msgstr "修改方塊物件設定"
+#: ../src/color-combo-menu.c:101
+msgid "Yellow"
+msgstr ""
 
-#. Build editor.
-#: src/view-image.c:222
+#: ../src/color-combo-menu.c:102
 #, fuzzy
-msgid "Image object properties"
-msgstr "修改圖像物件設定"
+msgid "Green"
+msgstr "度數"
+
+#: ../src/color-combo-menu.c:103
+msgid "Cyan"
+msgstr ""
 
-#. Build editor.
-#: src/view-text.c:250
+#: ../src/color-combo-menu.c:104
 #, fuzzy
-msgid "Text object properties"
-msgstr "修改方塊物件設定"
+msgid "SkyBlue"
+msgstr "樣式"
 
-#: src/view-text.c:562 data/glade/object-editor.glade.h:28
-msgid "Text"
-msgstr "文字"
+#: ../src/color-combo-menu.c:105
+msgid "Violet"
+msgstr ""
 
-#. Build editor.
-#: src/view-barcode.c:209
+#: ../src/color-combo-menu.c:107
 #, fuzzy
-msgid "Barcode object properties"
-msgstr "修改數碼條物件設定"
+msgid "Pink"
+msgstr "列印"
 
-#: src/view-barcode.c:579 src/print.c:1088
-#, fuzzy
-msgid "Invalid barcode data"
-msgstr "不正確的數碼條"
+#: ../src/color-combo-menu.c:108
+msgid "Khaki"
+msgstr ""
 
-#: src/merge-properties-dialog.c:231
+#: ../src/color-combo-menu.c:109
+msgid "Light Yellow"
+msgstr ""
+
+#: ../src/color-combo-menu.c:110
 #, fuzzy
-msgid "Merge Properties"
-msgstr "å\90\88併設å®\9a"
+msgid "Light Green"
+msgstr "度æ\95¸"
 
-#. ---- Source section ----
-#: src/merge-properties-dialog.c:237
-msgid "Source"
-msgstr "來源檔"
+#: ../src/color-combo-menu.c:111
+msgid "Light Cyan"
+msgstr ""
 
-#: src/merge-properties-dialog.c:245
-msgid "Format:"
-msgstr "格式:"
+#: ../src/color-combo-menu.c:112
+msgid "Slate Gray"
+msgstr ""
 
-#. Location line
-#: src/merge-properties-dialog.c:273
-msgid "Location:"
-msgstr "位置:"
+#: ../src/color-combo-menu.c:113
+msgid "Thistle"
+msgstr ""
 
-#: src/merge-properties-dialog.c:282 src/merge-properties-dialog.c:393
-msgid "Select merge-database source"
-msgstr "選擇合併資料庫來源"
+#: ../src/color-combo-menu.c:115
+msgid "White"
+msgstr ""
 
-#: src/merge-properties-dialog.c:289 src/merge-properties-dialog.c:404
-msgid "N/A"
-msgstr "N/A"
+#: ../src/color-combo-menu.c:117
+#, no-c-format
+msgid "10% Gray"
+msgstr ""
 
-#. ---- Sample Fields section ----
-#: src/merge-properties-dialog.c:300
-msgid "Record selection/preview:"
+#: ../src/color-combo-menu.c:119
+#, no-c-format
+msgid "25% Gray"
 msgstr ""
 
-#: src/merge-properties-dialog.c:326
-msgid "Select"
-msgstr "選擇"
+#: ../src/color-combo-menu.c:121
+#, no-c-format
+msgid "40% Gray"
+msgstr ""
 
-#: src/merge-properties-dialog.c:334
-msgid "Record/Field"
+#: ../src/color-combo-menu.c:123
+#, no-c-format
+msgid "50% Gray"
 msgstr ""
 
-#: src/merge-properties-dialog.c:342 data/glade/object-editor.glade.h:9
-msgid "Data"
-msgstr "資料"
+#: ../src/color-combo-menu.c:125
+#, no-c-format
+msgid "60% Gray"
+msgstr ""
 
-#: src/print-dialog.c:266 data/ui/glabels-ui.xml.h:82
-msgid "Print"
-msgstr "列印"
+#: ../src/color-combo-menu.c:126
+msgid "Black"
+msgstr ""
+
+#: ../src/color-combo-menu.c:254 ../src/color-combo-menu.c:373
+#, fuzzy
+msgid "Custom Color"
+msgstr "顏色:"
+
+#: ../src/color-combo-menu.c:319
+#, fuzzy, c-format
+msgid "Custom Color #%u"
+msgstr "顏色:"
 
-#: src/print-dialog.c:281
-msgid "_Job"
+#: ../src/critical-error-handler.c:70
+msgid "gLabels Fatal Error!"
 msgstr ""
 
-#: src/print-dialog.c:286
+#: ../src/file.c:84
+msgid "New Label or Card"
+msgstr "新增標簽或卡"
+
+#: ../src/file.c:175 ../src/label.c:587 ../src/label.c:631
 #, fuzzy
-msgid "P_rinter"
-msgstr "列印"
+msgid "Label properties"
+msgstr "文字樣貌"
 
-#. ----------- Add simple-copies widget ------------
-#: src/print-dialog.c:314
-msgid "Copies"
-msgstr "份數"
+#: ../src/file.c:267 ../src/file.c:557
+msgid "All files"
+msgstr ""
 
-#. ------- Add merge control widget ------------
-#: src/print-dialog.c:322
-msgid "Document merge control"
-msgstr "文件合併控制"
+#: ../src/file.c:272 ../src/file.c:562
+#, fuzzy
+msgid "gLabels documents"
+msgstr "Glabels: 設定值"
 
-#. ----------- Add custom print options area ------------
-#: src/print-dialog.c:330
-msgid "Options"
-msgstr "設定"
+#: ../src/file.c:319 ../src/file.c:620
+#, fuzzy
+msgid "Empty file name selection"
+msgstr "移除所有選擇項"
 
-#: src/print-dialog.c:351
-msgid "print crop marks"
+#: ../src/file.c:322 ../src/file.c:338
+msgid "Please select a file or supply a valid file name"
 msgstr ""
 
-#: src/print-dialog.c:553 src/print-dialog.c:592
-msgid "Print preview"
-msgstr "預覽列印"
+#: ../src/file.c:335
+msgid "File does not exist"
+msgstr ""
 
-#: src/template-designer.c:409 data/glade/template-designer.glade.h:73
-msgid "gLabels Template Designer"
+#: ../src/file.c:410
+#, fuzzy, c-format
+msgid "Could not open file \"%s\""
+msgstr "開啟檔案失敗"
+
+#: ../src/file.c:413
+msgid "Not a supported file format"
 msgstr ""
 
-#: src/bc.c:60
-msgid "POSTNET (any)"
+#: ../src/file.c:491 ../src/file.c:670
+#, fuzzy, c-format
+msgid "Could not save file \"%s\""
+msgstr "不能儲存檔案"
+
+#: ../src/file.c:495 ../src/file.c:674
+msgid "Error encountered during save.  The file is still not saved."
 msgstr ""
 
-#: src/bc.c:63
-msgid "POSTNET-5 (ZIP only)"
+#: ../src/file.c:535
+#, fuzzy, c-format
+msgid "Save \"%s\" as"
+msgstr "儲存標簽為..."
+
+#: ../src/file.c:623
+#, fuzzy
+msgid "Please supply a valid file name"
+msgstr "請必需輸入檔案名稱"
+
+#: ../src/file.c:644
+#, c-format
+msgid "Overwrite file \"%s\"?"
 msgstr ""
 
-#: src/bc.c:66
-msgid "POSTNET-9 (ZIP+4)"
+#: ../src/file.c:648
+msgid "File already exists."
 msgstr ""
 
-#: src/bc.c:69
-msgid "POSTNET-11 (DPBC)"
+#: ../src/file.c:744
+#, c-format
+msgid "Save changes to document \"%s\" before closing?"
 msgstr ""
 
-#: src/bc.c:72
-msgid "EAN (any)"
+#: ../src/file.c:748
+msgid "Your changes will be lost if you don't save them."
 msgstr ""
 
-#: src/bc.c:75
-msgid "EAN-8"
+#: ../src/file.c:751
+msgid "Close without saving"
 msgstr ""
 
-#: src/bc.c:78
-msgid "EAN-8 +2"
+#: ../src/font-combo-menu.c:137
+msgid "Recent fonts"
 msgstr ""
 
-#: src/bc.c:81
-msgid "EAN-8 +5"
+#: ../src/font-combo-menu.c:152
+msgid "Proportional fonts"
 msgstr ""
 
-#: src/bc.c:84
-msgid "EAN-13"
+#: ../src/font-combo-menu.c:160
+msgid "Fixed-width fonts"
 msgstr ""
 
-#: src/bc.c:87
-msgid "EAN-13 +2"
+#: ../src/font-combo-menu.c:168
+msgid "All fonts"
 msgstr ""
 
-#: src/bc.c:90
-msgid "EAN-13 +5"
+#.
+#. * Allow text samples to be localized.
+#. *
+#. * FIXME: if we could extract enough meta information from the fonts
+#. * themselves, perhaps rather than setting these globally for the
+#. * current locale, they could be unique to each font family.
+#.
+#: ../src/font-combo-menu-item.c:132
+msgctxt "Short sample text"
+msgid "Aa"
 msgstr ""
 
-#: src/bc.c:93
-msgid "UPC (UPC-A or UPC-E)"
+#: ../src/font-combo-menu-item.c:134
+msgctxt "Lower case sample text"
+msgid "abcdefghijklmnopqrstuvwxyz"
 msgstr ""
 
-#: src/bc.c:96
-msgid "UPC-A"
+#: ../src/font-combo-menu-item.c:136
+msgctxt "Upper case sample text"
+msgid "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 msgstr ""
 
-#: src/bc.c:99
-msgid "UPC-A +2"
+#: ../src/font-combo-menu-item.c:138
+msgctxt "Numbers and special characters sample text"
+msgid "0123456789 .:,;(*!?)"
 msgstr ""
 
-#: src/bc.c:102
-msgid "UPC-A +5"
+#: ../src/font-combo-menu-item.c:157
+#, fuzzy
+msgid "Sample text"
+msgstr "樣本資料"
+
+#: ../src/glabels-batch.c:53
+#, fuzzy
+msgid "set output filename (default=\"output.pdf\")"
+msgstr "設定輸出檔名稱 (預設為\"output.ps\")"
+
+#: ../src/glabels-batch.c:53 ../src/glabels-batch.c:67
+msgid "filename"
+msgstr "檔案名稱"
+
+#: ../src/glabels-batch.c:55
+msgid "number of sheets (default=1)"
+msgstr "紙張數目 (預設為 1)"
+
+#: ../src/glabels-batch.c:55
+msgid "sheets"
+msgstr "紙張"
+
+#: ../src/glabels-batch.c:57
+msgid "number of copies (default=1)"
+msgstr "份數 (預設為 1)"
+
+#: ../src/glabels-batch.c:57
+msgid "copies"
+msgstr "份數"
+
+#: ../src/glabels-batch.c:59
+#, fuzzy
+msgid "first label on first sheet (default=1)"
+msgstr "紙張數目 (預設為 1)"
+
+#: ../src/glabels-batch.c:59
+msgid "first"
 msgstr ""
 
-#: src/bc.c:105
-msgid "UPC-E"
+#: ../src/glabels-batch.c:61 ../data/ui/print-op-dialog-custom-widget.ui.h:13
+msgid "print outlines (to test printer alignment)"
+msgstr "印出外邊 (測試打印機參數)"
+
+#: ../src/glabels-batch.c:63 ../data/ui/print-op-dialog-custom-widget.ui.h:12
+msgid "print in reverse (i.e. a mirror image)"
+msgstr "反方向列印 (如倒向影像)"
+
+#: ../src/glabels-batch.c:65 ../data/ui/print-op-dialog-custom-widget.ui.h:11
+msgid "print crop marks"
 msgstr ""
 
-#: src/bc.c:108
-msgid "UPC-E +2"
+#: ../src/glabels-batch.c:67
+msgid "input file for merging"
 msgstr ""
 
-#: src/bc.c:111
-msgid "UPC-E +5"
+#: ../src/glabels-batch.c:69 ../src/glabels.c:64
+msgid "[FILE...]"
 msgstr ""
 
-#: src/bc.c:114
-msgid "ISBN"
+#: ../src/glabels-batch.c:99
+msgid "Print files created with gLabels."
 msgstr ""
 
-#: src/bc.c:117
-msgid "ISBN +5"
+#: ../src/glabels-batch.c:107 ../src/glabels.c:89
+#, c-format
+msgid ""
+"%s\n"
+"Run '%s --help' to see a full list of available command line options.\n"
 msgstr ""
 
-#: src/bc.c:120
-msgid "Code 39"
+#: ../src/glabels-batch.c:151
+#, fuzzy, c-format
+msgid "cannot perform document merge with glabels file %s\n"
+msgstr "開啟檔案失敗 %s\n"
+
+#: ../src/glabels-batch.c:186
+#, c-format
+msgid "cannot open glabels file %s\n"
+msgstr "開啟檔案失敗 %s\n"
+
+#: ../src/glabels.c:81
+msgid "Launch gLabels label and business card designer."
 msgstr ""
 
-#: src/bc.c:123
-msgid "Code 128"
+#: ../src/label-barcode.c:154 ../src/ui.c:319
+msgid "Create barcode object"
+msgstr "建立數碼條"
+
+#: ../src/label-barcode.c:227 ../src/label-barcode.c:389
+msgid "Barcode data"
+msgstr "數碼條資料"
+
+#: ../src/label-barcode.c:263
+#, fuzzy
+msgid "Barcode property"
+msgstr "修改數碼條物件設定"
+
+#: ../src/label-barcode.c:485
+#, fuzzy
+msgid "Barcode data empty"
+msgstr "數碼條資料"
+
+#: ../src/label-barcode.c:489
+#, fuzzy
+msgid "Invalid barcode data"
+msgstr "不正確的數碼條"
+
+#: ../src/label-box.c:156
+#, fuzzy
+msgid "Create box object"
+msgstr "建立新的文字物件"
+
+#: ../src/label-box.c:230 ../src/label-ellipse.c:232 ../src/stock.c:93
+#: ../data/ui/property-bar.ui.h:3
+msgid "Fill color"
 msgstr ""
 
-#: src/bc.c:126
-msgid "Code 128C"
+#: ../src/label-box.c:261 ../src/label-ellipse.c:261 ../src/label-line.c:212
+#: ../src/stock.c:94 ../data/ui/property-bar.ui.h:8
+msgid "Line color"
 msgstr ""
 
-#: src/bc.c:129
-msgid "Code 128B"
+#: ../src/label-box.c:289 ../src/label-ellipse.c:290 ../src/label-line.c:241
+#: ../data/ui/property-bar.ui.h:9
+msgid "Line width"
 msgstr ""
 
-#: src/bc.c:132
-msgid "Interleaved 2 of 5"
+#: ../src/label.c:402
+msgid "Untitled"
 msgstr ""
 
-#: src/bc.c:135
-msgid "Codabar"
+#: ../src/label.c:705 ../src/ui.c:422
+#, fuzzy
+msgid "Merge properties"
+msgstr "合併設定"
+
+#: ../src/label.c:1197 ../src/ui.c:215
+msgid "Delete"
+msgstr "刪除"
+
+#: ../src/label.c:1230 ../src/ui.c:324
+#, fuzzy
+msgid "Bring to front"
+msgstr "帶出到前面"
+
+#: ../src/label.c:1266 ../src/ui.c:331
+#, fuzzy
+msgid "Send to back"
+msgstr "放在最底"
+
+#: ../src/label.c:1307
+msgid "Rotate"
+msgstr "旋轉"
+
+#: ../src/label.c:1342 ../src/ui.c:338
+#, fuzzy
+msgid "Rotate left"
+msgstr "旋轉"
+
+#: ../src/label.c:1375 ../src/ui.c:345
+#, fuzzy
+msgid "Rotate right"
+msgstr "旋轉"
+
+#: ../src/label.c:1410 ../src/ui.c:352
+msgid "Flip horizontally"
 msgstr ""
 
-#: src/bc.c:138
-msgid "MSI"
+#: ../src/label.c:1445 ../src/ui.c:359
+msgid "Flip vertically"
 msgstr ""
 
-#: src/bc.c:141
-msgid "Plessey"
+#: ../src/label.c:1485 ../src/ui.c:366
+#, fuzzy
+msgid "Align left"
+msgstr "對置:"
+
+#: ../src/label.c:1542 ../src/ui.c:373
+msgid "Align right"
 msgstr ""
 
-#: src/label.c:569
-msgid "Untitled"
+#: ../src/label.c:1603 ../src/ui.c:380
+msgid "Align horizontal center"
 msgstr ""
 
-#: src/xml-label.c:176 src/xml-label.c:213
-msgid "xmlParseFile error"
-msgstr "xmlParseFile 錯誤"
+#: ../src/label.c:1679 ../src/ui.c:387
+#, fuzzy
+msgid "Align tops"
+msgstr "對置:"
 
-#: src/xml-label.c:250
-msgid "No document root"
-msgstr "沒有文件始端"
+#: ../src/label.c:1736 ../src/ui.c:394
+msgid "Align bottoms"
+msgstr ""
 
-#: src/xml-label.c:264
-msgid "Importing from glabels 0.1 format"
+#: ../src/label.c:1797 ../src/ui.c:401
+msgid "Align vertical center"
 msgstr ""
 
-#: src/xml-label.c:272
-msgid "Importing from glabels 0.4 format"
+#: ../src/label.c:1875 ../src/ui.c:408
+msgid "Center horizontally"
 msgstr ""
 
-#: src/xml-label.c:279
-msgid "Importing from glabels 1.91 format"
+#: ../src/label.c:1922 ../src/ui.c:415
+#, fuzzy
+msgid "Center vertically"
+msgstr "一般"
+
+#: ../src/label.c:2610 ../src/label.c:2652 ../src/label.c:2678 ../src/ui.c:208
+msgid "Paste"
 msgstr ""
 
-#: src/xml-label.c:282
+#: ../src/label-ellipse.c:160
 #, fuzzy
-msgid "bad document, unknown glabels Namespace"
-msgstr "不正確的文件種類, 找不到 glabels 格式"
+msgid "Create ellipse object"
+msgstr "畫線物件"
 
-#: src/xml-label.c:311 src/xml-label-04.c:75 src/xml-label-191.c:131
-#, c-format
-msgid "Bad root node = \"%s\""
-msgstr "錯誤的基碼 = \"%s\""
+#: ../src/label-image.c:200 ../src/ui.c:312
+msgid "Create image object"
+msgstr "建立影像物件"
 
-#: src/xml-label.c:348 src/xml-label-191.c:165
-#, fuzzy, c-format
-msgid "bad node in Document node =  \"%s\""
-msgstr "é\8c¯èª¤ç\9a\84å\9fºç¢¼ = \"%s\""
+#: ../src/label-image.c:333 ../src/label-image.c:474
+#, fuzzy
+msgid "Set image"
+msgstr "é\87\8d設å\9c\96å\83\8f大å°\8f"
 
-#: src/xml-label.c:393 src/xml-label-04.c:123 src/xml-label-191.c:197
-#, c-format
-msgid "bad node =  \"%s\""
-msgstr "錯誤的節點 = \"%s\""
+#: ../src/label-line.c:147 ../src/ui.c:298
+msgid "Create line object"
+msgstr "畫線物件"
 
-#: src/xml-label.c:796 src/xml-label-191.c:605
-#, fuzzy, c-format
-msgid "bad node in Data node =  \"%s\""
-msgstr "錯誤的節點 = \"%s\""
+#: ../src/label-object.c:383 ../src/label-object.c:416
+msgid "Move"
+msgstr ""
 
-#: src/xml-label.c:962 libglabels/xml-template.c:528
-msgid "Utf8 conversion error."
+#: ../src/label-object.c:467
+#, fuzzy
+msgid "Resize"
+msgstr "紙張大小:"
+
+#: ../src/label-object.c:1185
+msgid "Shadow state"
 msgstr ""
 
-#: src/xml-label.c:969 libglabels/xml-template.c:535
-msgid "Problem saving xml file."
-msgstr "儲存 XML 檔案時發生錯誤."
+#: ../src/label-object.c:1228
+msgid "Shadow offset"
+msgstr ""
 
-#. This should always be an id, but just in case a name
-#. slips by!
-#: src/xml-label-191.c:680 libglabels/xml-template.c:192
-#, c-format
-msgid "Unknown page size id \"%s\", trying as name"
+#: ../src/label-object.c:1276
+msgid "Shadow color"
 msgstr ""
 
-#: src/xml-label-191.c:690 libglabels/xml-template.c:202
-#, c-format
-msgid "Unknown page size id or name \"%s\""
+#: ../src/label-object.c:1319
+msgid "Shadow opacity"
 msgstr ""
 
-#: src/merge.c:172 src/merge.c:213 src/merge.c:399 src/merge.c:402
+#: ../src/label-text.c:279 ../src/ui.c:284
+msgid "Create text object"
+msgstr "建立新的文字物件"
+
+#: ../src/label-text.c:451
+msgid "Typing"
+msgstr ""
+
+#: ../src/label-text.c:584 ../data/ui/property-bar.ui.h:4
+#, fuzzy
+msgid "Font family"
+msgstr "不要儲存"
+
+#: ../src/label-text.c:622 ../data/ui/property-bar.ui.h:5
+#, fuzzy
+msgid "Font size"
+msgstr "不要儲存"
+
+#: ../src/label-text.c:655
+#, fuzzy
+msgid "Font weight"
+msgstr "不要儲存"
+
+#: ../src/label-text.c:688 ../data/ui/property-bar.ui.h:6
+msgid "Italic"
+msgstr ""
+
+#: ../src/label-text.c:721
+#, fuzzy
+msgid "Align text"
+msgstr "對置:"
+
+#: ../src/label-text.c:754
+msgid "Line spacing"
+msgstr ""
+
+#: ../src/label-text.c:787 ../data/ui/property-bar.ui.h:11
+msgid "Text color"
+msgstr ""
+
+#: ../src/label-text.c:931
+msgid "Auto shrink"
+msgstr ""
+
+#: ../src/media-select.c:349 ../src/media-select.c:353
+#: ../src/media-select.c:502 ../src/media-select.c:701
+msgctxt "Brand"
+msgid "Any"
+msgstr ""
+
+#: ../src/media-select.c:358 ../src/media-select.c:871
+msgctxt "Page size"
+msgid "Any"
+msgstr ""
+
+#: ../src/media-select.c:367 ../src/media-select.c:370
+#: ../src/media-select.c:880
+msgctxt "Category"
+msgid "Any"
+msgstr ""
+
+#: ../src/media-select.c:968
+#, fuzzy
+msgid "No recent templates found."
+msgstr "找不到樣版檔案 !"
+
+#: ../src/media-select.c:970
+msgid "Try selecting a template in the \"Search all\" tab."
+msgstr ""
+
+#. Translators: "No match" means that for the given template search criteria, there
+#. * were no matches found.
+#: ../src/media-select.c:1061
+msgid "No match."
+msgstr ""
+
+#: ../src/media-select.c:1063
+msgid "Try selecting a different brand, page size or category."
+msgstr ""
+
+#: ../src/media-select.c:1157
+#, fuzzy
+msgid "No custom templates found."
+msgstr "找不到樣版檔案 !"
+
+#: ../src/media-select.c:1159
+msgid ""
+"You may create new templates or try searching for pre-defined templates in "
+"the \"Search all\" tab."
+msgstr ""
+
+#. Translators: "None" here means that no document-merge source or
+#. * method has been selected.
+#: ../src/merge.c:171 ../src/merge.c:212 ../src/merge.c:376 ../src/merge.c:379
 msgid "None"
 msgstr "沒有"
 
-#: src/merge-init.c:53
-#, fuzzy
-msgid "Text file with comma delimeters (CSV)"
-msgstr "以逗號分格 (CSV)"
+#: ../src/merge-evolution.c:316
+msgid "Couldn't construct query"
+msgstr ""
 
-#: src/merge-init.c:60
+#: ../src/merge-evolution.c:322 ../src/merge-evolution.c:333
 #, fuzzy
-msgid "Text file with colon delimeters"
-msgstr "以冒號分格"
+msgid "Couldn't open addressbook."
+msgstr "開啟檔案失敗"
 
-#: src/merge-init.c:67
+#: ../src/merge-evolution.c:348
 #, fuzzy
-msgid "Text file with tab delimeters"
-msgstr "以 [TAB] 為分格"
+msgid "Couldn't list available fields."
+msgstr "不能儲存檔案"
+
+#: ../src/merge-evolution.c:384
+msgid "Couldn't get contacts."
+msgstr ""
+
+#: ../src/merge-init.c:57
+msgid "Text: Comma Separated Values (CSV)"
+msgstr ""
+
+#: ../src/merge-init.c:64
+msgid "Text: Comma Separated Values (CSV) with keys on line 1"
+msgstr ""
 
-#: src/wdgt-image-select.c:201 data/glade/object-editor.glade.h:11
+#: ../src/merge-init.c:72
+msgid "Text: Tab Separated Values (TSV)"
+msgstr ""
+
+#: ../src/merge-init.c:79
+msgid "Text: Tab Separated Values (TSV) with keys on line 1"
+msgstr ""
+
+#: ../src/merge-init.c:87
+msgid "Text: Colon separated values"
+msgstr ""
+
+#: ../src/merge-init.c:94
+msgid "Text: Colon separated values with keys on line 1"
+msgstr ""
+
+#: ../src/merge-init.c:102
+msgid "Text: Semicolon separated values"
+msgstr ""
+
+#: ../src/merge-init.c:109
+msgid "Text: Semicolon separated values with keys on line 1"
+msgstr ""
+
+#: ../src/merge-init.c:119
+msgid "Evolution Addressbook"
+msgstr ""
+
+#: ../src/merge-init.c:125
+msgid "VCards"
+msgstr ""
+
+#: ../src/merge-properties-dialog.c:282
 #, fuzzy
-msgid "File:"
-msgstr "填滿"
+msgid "Merge Properties"
+msgstr "å\90\88併設å®\9a"
 
-#: src/wdgt-image-select.c:245 data/glade/object-editor.glade.h:16
-msgid "Key:"
-msgstr "資料值:"
+#: ../src/merge-properties-dialog.c:308 ../src/merge-properties-dialog.c:424
+msgid "Select merge-database source"
+msgstr "選擇合併資料庫來源"
 
-#: src/wdgt-print-copies.c:179
-msgid "Sheets:"
-msgstr "紙張:"
+#: ../src/merge-properties-dialog.c:319 ../src/merge-properties-dialog.c:450
+msgid "N/A"
+msgstr "N/A"
 
-#: src/wdgt-print-copies.c:197
-msgid "Labels"
-msgstr "標簽"
+#: ../src/merge-properties-dialog.c:345
+msgid "Select"
+msgstr "選擇"
 
-#: src/wdgt-print-copies.c:200
-msgid "from:"
-msgstr "由:"
+#: ../src/merge-properties-dialog.c:352
+msgid "Record/Field"
+msgstr ""
 
-#: src/wdgt-print-copies.c:207
-msgid "to:"
-msgstr "到:"
+#: ../src/merge-properties-dialog.c:360 ../data/ui/object-editor.ui.h:8
+msgid "Data"
+msgstr "資料"
 
-#: src/wdgt-print-merge.c:178
-msgid "Start on label"
-msgstr "由禁簽開級"
+#. Translators: "Fixed" here means that for the given document-merge method, there are
+#. * no further choices to further define the source of data.  E.g. if you select the
+#. * evolution-data-server, there are no further choices -- the source is "Fixed."
+#.
+#: ../src/merge-properties-dialog.c:443
+#, fuzzy
+msgid "Fixed"
+msgstr "欄位"
 
-#: src/wdgt-print-merge.c:186
-msgid "on 1st sheet"
-msgstr "在首張紙"
+#. Translators: "Up" refers to the direction towards the top of a label.
+#: ../src/mini-preview.c:1074
+msgid "Up"
+msgstr ""
 
-#: src/wdgt-print-merge.c:195
-msgid "Copies:"
-msgstr "份數:"
+#: ../src/new-label-dialog.c:203
+#, fuzzy
+msgid "Select Product"
+msgstr "選擇"
 
-#: src/wdgt-print-merge.c:201
-msgid "Collate"
-msgstr "校對"
+#: ../src/new-label-dialog.c:215
+#, fuzzy
+msgid "Choose Orientation"
+msgstr "標簽方向"
 
-#: src/wdgt-media-select.c:269 data/glade/template-designer.glade.h:29
-msgid "Description:"
-msgstr "描述:"
+#: ../src/new-label-dialog.c:229
+msgid "Review"
+msgstr ""
 
-#: src/wdgt-media-select.c:279 data/glade/template-designer.glade.h:53
-msgid "Page size:"
-msgstr "紙張大小:"
+#: ../src/object-editor-bc-page.c:93 ../src/object-editor-shadow-page.c:93
+#: ../src/object-editor-text-page.c:97 ../src/prefs-dialog.c:339
+#: ../src/ui-property-bar.c:280
+#, fuzzy
+msgid "Default"
+msgstr "刪除"
 
-#: src/wdgt-media-select.c:290
-msgid "Label size:"
-msgstr "標簽大小:"
+#: ../src/object-editor.c:159 ../src/object-editor.c:460
+#, fuzzy
+msgid "Object properties"
+msgstr "文字樣貌"
 
-#: src/wdgt-media-select.c:301
-msgid "Layout:"
-msgstr "版面:"
+#: ../src/object-editor.c:309
+#, fuzzy
+msgid "Box object properties"
+msgstr "修改方塊物件設定"
 
-#: src/wdgt-media-select.c:578
-#, c-format
-msgid "%d x %d  (%d per sheet)"
-msgstr "%d x %d (每頁 %d)"
+#: ../src/object-editor.c:328
+#, fuzzy
+msgid "Ellipse object properties"
+msgstr "修改橢圓物件設定"
 
-#: src/wdgt-media-select.c:582
-#, fuzzy, c-format
-msgid "%d per sheet"
-msgstr "%d x %d (每頁 %d)"
+#: ../src/object-editor.c:347
+#, fuzzy
+msgid "Line object properties"
+msgstr "修改方塊物件設定"
+
+#: ../src/object-editor.c:364
+#, fuzzy
+msgid "Image object properties"
+msgstr "修改圖像物件設定"
+
+#: ../src/object-editor.c:381
+#, fuzzy
+msgid "Text object properties"
+msgstr "修改方塊物件設定"
 
-#: src/wdgt-media-select.c:614
-#, c-format
-msgid "%s x %s %s"
-msgstr "%s x %s %s"
+#: ../src/object-editor.c:403
+#, fuzzy
+msgid "Barcode object properties"
+msgstr "修改數碼條物件設定"
 
-#: src/wdgt-media-select.c:619
-#, c-format
-msgid "%.5g x %.5g %s"
-msgstr "%.5g x %.5g %s"
+#: ../src/object-editor-edit-page.c:76
+msgid "Insert merge field"
+msgstr "插入合併列"
 
-#: src/wdgt-media-select.c:630 src/wdgt-media-select.c:644
-#, c-format
-msgid "%s %s diameter"
+#: ../src/object-editor-fill-page.c:79 ../src/prefs-dialog.c:345
+#: ../src/ui-property-bar.c:292
+#, fuzzy
+msgid "No Fill"
+msgstr "填滿"
+
+#: ../src/object-editor-image-page.c:278
+msgid "All Files"
 msgstr ""
 
-#: src/wdgt-media-select.c:634 src/wdgt-media-select.c:648
+#: ../src/object-editor-image-page.c:283
+#, fuzzy
+msgid "All Images"
+msgstr "圖像"
+
+#: ../src/object-editor-image-page.c:298
 #, c-format
-msgid "%.5g %s diameter"
+msgid "%s (*.%s)"
 msgstr ""
 
-#: src/wdgt-rotate-label.c:193
-msgid "Rotate"
-msgstr "旋轉"
-
-#. This is the default custom color
-#: src/mygal/color-palette.c:396
+#: ../src/object-editor-line-page.c:79 ../src/prefs-dialog.c:342
+#: ../src/ui-property-bar.c:304
 #, fuzzy
-msgid "custom"
-msgstr "自訂欄位鑰"
+msgid "No Line"
+msgstr "沒有"
 
-#. "Custom" color - we'll pop up a GnomeColorPicker
-#: src/mygal/color-palette.c:438
+#: ../src/prefs-dialog.c:172 ../data/ui/prefs-dialog.ui.h:21
 #, fuzzy
-msgid "Custom Color:"
-msgstr "顏色:"
-
-#: src/mygal/color-palette.c:446
-msgid "Choose Custom Color"
-msgstr ""
+msgid "gLabels Preferences"
+msgstr "Glabels: 設定值"
 
-#: src/mygal/color-palette.c:579
-msgid "black"
-msgstr ""
+#. ===================================================================
+#: ../src/print-op.c:205 ../src/print-op-dialog.c:217
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:4
+#: ../templates/misc-iso-templates.xml.h:34
+msgid "Labels"
+msgstr "標簽"
 
-#: src/mygal/color-palette.c:580
-msgid "light brown"
-msgstr ""
+#: ../src/stock.c:70
+#, fuzzy
+msgid "_Select Mode"
+msgstr "選擇"
 
-#: src/mygal/color-palette.c:581
-msgid "brown gold"
-msgstr ""
+#: ../src/stock.c:71
+#, fuzzy
+msgid "_Text"
+msgstr "文字"
 
-#: src/mygal/color-palette.c:582
-msgid "dark green #2"
-msgstr ""
+#: ../src/stock.c:72
+#, fuzzy
+msgid "_Line"
+msgstr "線"
 
-#: src/mygal/color-palette.c:583
-msgid "navy"
-msgstr ""
+#: ../src/stock.c:73
+#, fuzzy
+msgid "_Box"
+msgstr "盒子"
 
-#: src/mygal/color-palette.c:584 src/mygal/color-palette.c:640
-msgid "dark blue"
-msgstr ""
+#: ../src/stock.c:74
+#, fuzzy
+msgid "_Ellipse"
+msgstr "橢圓形"
 
-#: src/mygal/color-palette.c:585
-msgid "purple #2"
-msgstr ""
+#: ../src/stock.c:75
+#, fuzzy
+msgid "_Image"
+msgstr "圖像"
 
-#: src/mygal/color-palette.c:586
-msgid "very dark gray"
-msgstr ""
+#: ../src/stock.c:76
+#, fuzzy
+msgid "Bar_code"
+msgstr "數碼條"
 
-#: src/mygal/color-palette.c:589 src/mygal/color-palette.c:645
-msgid "dark red"
-msgstr ""
+#: ../src/stock.c:77
+#, fuzzy
+msgid "_Merge Properties"
+msgstr "合併設定"
 
-#: src/mygal/color-palette.c:590
-msgid "red-orange"
-msgstr ""
+#: ../src/stock.c:78
+#, fuzzy
+msgid "Object _Properties"
+msgstr "文字樣貌"
 
-#: src/mygal/color-palette.c:591
-msgid "gold"
-msgstr ""
+#: ../src/stock.c:79
+#, fuzzy
+msgid "Bring to _Front"
+msgstr "帶出到前面"
 
-#: src/mygal/color-palette.c:592
-msgid "dark green"
-msgstr ""
+#: ../src/stock.c:80
+#, fuzzy
+msgid "Send to _Back"
+msgstr "放在最底"
 
-#: src/mygal/color-palette.c:593 src/mygal/color-palette.c:646
-msgid "dull blue"
-msgstr ""
+#: ../src/stock.c:81
+#, fuzzy
+msgid "Rotate _Left"
+msgstr "旋轉"
 
-#: src/mygal/color-palette.c:594 src/mygal/color-palette.c:647
-msgid "blue"
-msgstr ""
+#: ../src/stock.c:82
+#, fuzzy
+msgid "Rotate _Right"
+msgstr "旋轉"
 
-#: src/mygal/color-palette.c:595
-msgid "dull purple"
+#: ../src/stock.c:83
+msgid "Flip _Horizontally"
 msgstr ""
 
-#: src/mygal/color-palette.c:596
-msgid "dark grey"
+#: ../src/stock.c:84
+msgid "Flip _Vertically"
 msgstr ""
 
-#: src/mygal/color-palette.c:599
-msgid "red"
+#: ../src/stock.c:85
+msgid "_Lefts"
 msgstr ""
 
-#: src/mygal/color-palette.c:600
-msgid "orange"
+#: ../src/stock.c:86
+msgid "_Rights"
 msgstr ""
 
-#: src/mygal/color-palette.c:601
-msgid "lime"
+#: ../src/stock.c:87
+msgid "_Centers"
 msgstr ""
 
-#: src/mygal/color-palette.c:602
-msgid "dull green"
-msgstr ""
+#: ../src/stock.c:88
+#, fuzzy
+msgid "_Tops"
+msgstr "工具 (&_T)"
 
-#: src/mygal/color-palette.c:603
-msgid "dull blue #2"
+#: ../src/stock.c:89
+msgid "Bottoms"
 msgstr ""
 
-#: src/mygal/color-palette.c:604
-msgid "sky blue #2"
+#: ../src/stock.c:90
+msgid "Centers"
 msgstr ""
 
-#: src/mygal/color-palette.c:605 src/mygal/color-palette.c:644
-msgid "purple"
+#: ../src/stock.c:91 ../src/stock.c:92
+msgid "Label Ce_nter"
 msgstr ""
 
-#: src/mygal/color-palette.c:606
-msgid "gray"
-msgstr ""
+#: ../src/stock.c:95 ../src/stock.c:97
+#, fuzzy
+msgid "Linked"
+msgstr "線"
 
-#: src/mygal/color-palette.c:609 src/mygal/color-palette.c:641
+#: ../src/stock.c:96 ../src/stock.c:98
 #, fuzzy
-msgid "magenta"
-msgstr "圖像"
+msgid "Not Linked"
+msgstr "沒有"
 
-#: src/mygal/color-palette.c:610
-msgid "bright orange"
+#: ../src/template-designer.c:404
+msgid "New gLabels Template"
 msgstr ""
 
-#: src/mygal/color-palette.c:611 src/mygal/color-palette.c:642
-msgid "yellow"
+#: ../src/template-designer.c:461
+msgid "Welcome"
 msgstr ""
 
-#: src/mygal/color-palette.c:612
+#: ../src/template-designer.c:500
 #, fuzzy
-msgid "green"
-msgstr "度數"
+msgid "Name and Description"
+msgstr "描述:"
 
-#: src/mygal/color-palette.c:613 src/mygal/color-palette.c:643
-msgid "cyan"
-msgstr ""
+#: ../src/template-designer.c:548
+#, fuzzy
+msgid "Page Size"
+msgstr "紙張大小:"
 
-#: src/mygal/color-palette.c:614
-msgid "bright blue"
-msgstr ""
+#: ../src/template-designer.c:614
+#, fuzzy
+msgid "Label or Card Shape"
+msgstr "新增標簽或卡"
 
-#: src/mygal/color-palette.c:615 src/mygal/color-palette.c:632
-msgid "red purple"
-msgstr ""
+#: ../src/template-designer.c:661
+#, fuzzy
+msgid "Label or Card Size"
+msgstr "新增標簽或卡"
 
-#: src/mygal/color-palette.c:616
-msgid "light grey"
-msgstr ""
+#: ../src/template-designer.c:760
+#, fuzzy
+msgid "Label Size (round)"
+msgstr "標簽大小:"
 
-#: src/mygal/color-palette.c:619 src/mygal/color-palette.c:636
-msgid "pink"
+#: ../src/template-designer.c:841
+msgid "Label Size (CD/DVD)"
 msgstr ""
 
-#: src/mygal/color-palette.c:620
-msgid "light orange"
+#: ../src/template-designer.c:932
+msgid "Number of Layouts"
 msgstr ""
 
-#: src/mygal/color-palette.c:621 src/mygal/color-palette.c:633
-msgid "light yellow"
-msgstr ""
+#: ../src/template-designer.c:1000
+#, fuzzy
+msgid "Layout(s)"
+msgstr "版面:"
 
-#: src/mygal/color-palette.c:622
-msgid "light green"
+#: ../src/template-designer.c:1105
+msgid "Design Completed"
 msgstr ""
 
-#: src/mygal/color-palette.c:623
-msgid "light cyan"
+#: ../src/template-designer.c:1133
+msgid "Edit gLabels Template"
 msgstr ""
 
-#: src/mygal/color-palette.c:624 src/mygal/color-palette.c:634
-msgid "light blue"
+#: ../src/template-designer.c:1423
+msgid "Brand and part# match an existing template!"
 msgstr ""
 
-#: src/mygal/color-palette.c:625 src/mygal/color-palette.c:638
-msgid "light purple"
-msgstr ""
+#. Menu entries.
+#: ../src/ui.c:93
+#, fuzzy
+msgid "_File"
+msgstr "填滿"
 
-#: src/mygal/color-palette.c:626
-msgid "white"
-msgstr ""
+#: ../src/ui.c:94
+#, fuzzy
+msgid "Open Recent _Files"
+msgstr "開啟檔案"
 
-#: src/mygal/color-palette.c:631
-msgid "purplish blue"
+#: ../src/ui.c:95
+msgid "_Edit"
 msgstr ""
 
-#: src/mygal/color-palette.c:635
-msgid "dark purple"
-msgstr ""
+#: ../src/ui.c:96
+#, fuzzy
+msgid "_View"
+msgstr "新增 (&_N)"
 
-#: src/mygal/color-palette.c:637
-msgid "sky blue"
+#: ../src/ui.c:97
+msgid "Customize Main Toolbar"
 msgstr ""
 
-#: libglabels/template.c:848
-#, c-format
-msgid "Generic %s full page"
+#: ../src/ui.c:98
+msgid "Customize Drawing Toolbar"
 msgstr ""
 
-#: libglabels/template.c:897
-msgid "No template files found!"
-msgstr "找不到樣版檔案 !"
+#: ../src/ui.c:99
+msgid "Customize Properties Toolbar"
+msgstr ""
 
-#. Create and append an "Other" entry.
-#: libglabels/paper.c:67
-msgid "Other"
+#: ../src/ui.c:100
+msgid "_Objects"
 msgstr ""
 
-#: libglabels/paper.c:361
+#: ../src/ui.c:101
 #, fuzzy
-msgid "No paper files found!"
-msgstr "找不到樣版檔案 !"
+msgid "_Create"
+msgstr "建立新的文字物件"
 
-#: data/ui/glabels-ui.xml.h:1
-msgid "About glabels"
+#: ../src/ui.c:102
+msgid "_Order"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:2
-msgid "About..."
-msgstr ""
+#: ../src/ui.c:103
+#, fuzzy
+msgid "_Rotate/Flip"
+msgstr "旋轉"
 
-#: data/ui/glabels-ui.xml.h:3
+#: ../src/ui.c:104
 msgid "Align _Horizontal"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:4
+#: ../src/ui.c:105
 msgid "Align _Vertical"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:5
-msgid "Align objects to bottoms"
+#: ../src/ui.c:106
+msgid "_Help"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:6
-msgid "Align objects to horizontal centers"
+#. Popup entries.
+#: ../src/ui.c:109 ../src/ui.c:110
+msgid "Context Menu"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:7
-msgid "Align objects to left edges"
-msgstr ""
+#: ../src/ui.c:115
+msgid "_New"
+msgstr "新增 (&_N)"
 
-#: data/ui/glabels-ui.xml.h:8
-msgid "Align objects to right edges"
-msgstr ""
+#: ../src/ui.c:117
+#, fuzzy
+msgid "Create a new file"
+msgstr "畫線物件"
 
-#: data/ui/glabels-ui.xml.h:9
-msgid "Align objects to tops"
-msgstr ""
+#: ../src/ui.c:122
+#, fuzzy
+msgid "_Open..."
+msgstr "開啟"
 
-#: data/ui/glabels-ui.xml.h:10
-msgid "Align objects to vertical centers"
-msgstr ""
+#: ../src/ui.c:124
+msgid "Open a file"
+msgstr "開啟檔案"
 
-#: data/ui/glabels-ui.xml.h:12
-msgid "Bold"
-msgstr ""
+#: ../src/ui.c:129
+#, fuzzy
+msgid "_Save"
+msgstr "另存為..."
 
-#: data/ui/glabels-ui.xml.h:14
+#: ../src/ui.c:131
 #, fuzzy
-msgid "Center align"
-msgstr "一般"
+msgid "Save current file"
+msgstr "儲存現在檔案"
 
-#: data/ui/glabels-ui.xml.h:15
-msgid "Center objects to horizontal label center"
-msgstr ""
+#: ../src/ui.c:136
+#, fuzzy
+msgid "Save _As..."
+msgstr "另存為..."
 
-#: data/ui/glabels-ui.xml.h:16
-msgid "Center objects to vertical label center"
-msgstr ""
+#: ../src/ui.c:138
+#, fuzzy
+msgid "Save the current file to a different name"
+msgstr "儲存現在檔案"
 
-#: data/ui/glabels-ui.xml.h:17
-msgid "Change the visibility of markup lines in the current window"
-msgstr ""
+#: ../src/ui.c:143
+#, fuzzy
+msgid "_Print..."
+msgstr "列印"
 
-#: data/ui/glabels-ui.xml.h:18
-msgid "Change the visibility of the drawing toolbar in the current window"
-msgstr ""
+#: ../src/ui.c:145
+#, fuzzy
+msgid "Print the current file"
+msgstr "列印現有檔案"
 
-#: data/ui/glabels-ui.xml.h:19
-msgid "Change the visibility of the grid in the current window"
-msgstr ""
+#: ../src/ui.c:150
+#, fuzzy
+msgid "Properties..."
+msgstr "文字樣貌"
 
-#: data/ui/glabels-ui.xml.h:20
-msgid "Change the visibility of the main toolbar in the current window"
-msgstr ""
+#: ../src/ui.c:152
+#, fuzzy
+msgid "Modify document properties"
+msgstr "修改文件合併設定"
 
-#: data/ui/glabels-ui.xml.h:21
-msgid "Change the visibility of the property toolbar in the current window"
+#: ../src/ui.c:157
+msgid "Template _Designer..."
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:22
-msgid "Close"
+#: ../src/ui.c:159
+#, fuzzy
+msgid "Create a custom template"
+msgstr "畫線物件"
+
+#: ../src/ui.c:164
+msgid "_Close"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:23
+#: ../src/ui.c:166
 #, fuzzy
 msgid "Close the current file"
 msgstr "儲存現在檔案"
 
-#: data/ui/glabels-ui.xml.h:24
-msgid "Configure the application"
+#: ../src/ui.c:171
+msgid "_Quit"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:25
-msgid "Contents"
+#: ../src/ui.c:173
+msgid "Quit the program"
+msgstr ""
+
+#: ../src/ui.c:180 ../src/ui.c:182 ../src/ui.c:967
+msgid "Undo"
+msgstr ""
+
+#: ../src/ui.c:187 ../src/ui.c:189 ../src/ui.c:974
+msgid "Redo"
+msgstr ""
+
+#: ../src/ui.c:194
+msgid "Cut"
+msgstr ""
+
+#: ../src/ui.c:196
+msgid "Cut the selection"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:26
+#: ../src/ui.c:201
 msgid "Copy"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:27
+#: ../src/ui.c:203
 #, fuzzy
 msgid "Copy the selection"
 msgstr "移除所有選擇項"
 
-#: data/ui/glabels-ui.xml.h:28
-#, fuzzy
-msgid "Create a custom template"
-msgstr "畫線物件"
+#: ../src/ui.c:210
+msgid "Paste the clipboard"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:29
+#: ../src/ui.c:217
 #, fuzzy
-msgid "Create a new document"
-msgstr "畫線物件"
-
-#: data/ui/glabels-ui.xml.h:30
-msgid "Create barcode object"
-msgstr "建立數碼條"
-
-#: data/ui/glabels-ui.xml.h:31
-msgid "Create box/rectangle object"
-msgstr "建立新的盒子/方形物件"
-
-#: data/ui/glabels-ui.xml.h:32
-msgid "Create ellipse/circle object"
-msgstr "建立橢圓形/圖形物件"
-
-#: data/ui/glabels-ui.xml.h:33
-msgid "Create image object"
-msgstr "建立影像物件"
-
-#: data/ui/glabels-ui.xml.h:34
-msgid "Create line object"
-msgstr "畫線物件"
-
-#: data/ui/glabels-ui.xml.h:35
-msgid "Create text object"
+msgid "Delete the selected objects"
 msgstr "建立新的文字物件"
 
-#: data/ui/glabels-ui.xml.h:36
-msgid "Cu_t"
-msgstr ""
+#: ../src/ui.c:222
+#, fuzzy
+msgid "Select All"
+msgstr "反選擇全部 (&_N)"
+
+#: ../src/ui.c:224
+#, fuzzy
+msgid "Select all objects"
+msgstr "選擇, 移動及修改物件"
 
-#: data/ui/glabels-ui.xml.h:37
+#: ../src/ui.c:229
 #, fuzzy
-msgid "Customize"
-msgstr "自訂欄位鑰"
+msgid "Un-select All"
+msgstr "反選擇全部 (&_N)"
 
-#: data/ui/glabels-ui.xml.h:38
-msgid "Customize Drawing Toolbar"
-msgstr ""
+#: ../src/ui.c:231
+msgid "Remove all selections"
+msgstr "移除所有選擇項"
 
-#: data/ui/glabels-ui.xml.h:39
-msgid "Customize Main Toolbar"
-msgstr ""
+#: ../src/ui.c:236
+#, fuzzy
+msgid "Preferences"
+msgstr "Glabels: 設定值"
 
-#: data/ui/glabels-ui.xml.h:40
-msgid "Customize Property Toolbar"
+#: ../src/ui.c:238
+msgid "Configure the application"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:41
-msgid "Customize toolbars"
-msgstr ""
+#: ../src/ui.c:245
+#, fuzzy
+msgid "Zoom in"
+msgstr "放大"
 
-#: data/ui/glabels-ui.xml.h:42
-msgid "Cut"
+#: ../src/ui.c:247
+msgid "Increase magnification"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:43
-msgid "Cut the selection"
-msgstr ""
+#: ../src/ui.c:252
+#, fuzzy
+msgid "Zoom out"
+msgstr "縮小"
 
-#: data/ui/glabels-ui.xml.h:44
+#: ../src/ui.c:254
 msgid "Decrease magnification"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:45
-msgid "Delete"
-msgstr "刪除"
-
-#: data/ui/glabels-ui.xml.h:46
+#: ../src/ui.c:259
 #, fuzzy
-msgid "Delete the selected objects"
-msgstr "建立新的文字物件"
+msgid "Zoom 1 to 1"
+msgstr "1:1 顯示"
 
-#: data/ui/glabels-ui.xml.h:47
-msgid "Drawing toolbar"
+#: ../src/ui.c:261
+msgid "Restore scale to 100%"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:48
-msgid "Dump XML"
-msgstr ""
+#: ../src/ui.c:266
+#, fuzzy
+msgid "Zoom to fit"
+msgstr "1:1 顯示"
 
-#: data/ui/glabels-ui.xml.h:49
-msgid "Dump the UI Xml description"
+#: ../src/ui.c:268
+msgid "Set scale to fit window"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:50
-msgid "Edit merge properties"
-msgstr "修改合併設定"
+#: ../src/ui.c:275
+#, fuzzy
+msgid "Select Mode"
+msgstr "選擇"
 
-#: data/ui/glabels-ui.xml.h:54
-msgid "Flip object horizontally"
-msgstr ""
+#: ../src/ui.c:277
+msgid "Select, move and modify objects"
+msgstr "選擇, 移動及修改物件"
 
-#: data/ui/glabels-ui.xml.h:55
-msgid "Flip object vertically"
-msgstr ""
+#: ../src/ui.c:282 ../src/view-text.c:102 ../data/ui/object-editor.ui.h:28
+#: ../data/ui/prefs-dialog.ui.h:17
+msgid "Text"
+msgstr "文字"
 
-#: data/ui/glabels-ui.xml.h:56
+#: ../src/ui.c:289
 #, fuzzy
-msgid "Font name"
-msgstr "不要儲存"
+msgid "Box"
+msgstr "盒子"
+
+#: ../src/ui.c:291
+msgid "Create box/rectangle object"
+msgstr "建立新的盒子/方形物件"
+
+#: ../src/ui.c:296 ../data/ui/object-editor.ui.h:17
+#: ../data/ui/prefs-dialog.ui.h:9
+msgid "Line"
+msgstr "線"
 
-#: data/ui/glabels-ui.xml.h:57
+#: ../src/ui.c:303
 #, fuzzy
-msgid "Font selector"
-msgstr "移除所有選擇項"
+msgid "Ellipse"
+msgstr "橢圓形"
+
+#: ../src/ui.c:305
+msgid "Create ellipse/circle object"
+msgstr "建立橢圓形/圖形物件"
+
+#: ../src/ui.c:310 ../data/ui/object-editor.ui.h:14
+msgid "Image"
+msgstr "圖像"
 
-#: data/ui/glabels-ui.xml.h:58
+#: ../src/ui.c:317
 #, fuzzy
-msgid "Font size"
-msgstr "不要儲存"
+msgid "Barcode"
+msgstr "數碼條"
 
-#: data/ui/glabels-ui.xml.h:59
-msgid "Icon and _Text"
+#: ../src/ui.c:326
+msgid "Raise object to top"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:60
-msgid "Increase magnification"
+#: ../src/ui.c:333
+msgid "Lower object to bottom"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:61
-msgid "Italic"
+#: ../src/ui.c:340
+msgid "Rotate object 90 degrees counter-clockwise"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:63
-msgid "Left align"
+#: ../src/ui.c:347
+msgid "Rotate object 90 degrees clockwise"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:65
-msgid "Line width"
+#: ../src/ui.c:354
+msgid "Flip object horizontally"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:66
-msgid "Lower object to bottom"
+#: ../src/ui.c:361
+msgid "Flip object vertically"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:67
-msgid "M_arkup"
+#: ../src/ui.c:368
+msgid "Align objects to left edges"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:68
-msgid "Main toolbar"
+#: ../src/ui.c:375
+msgid "Align objects to right edges"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:69
-msgid "Markup"
+#: ../src/ui.c:382
+msgid "Align objects to horizontal centers"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:70
-#, fuzzy
-msgid "Modify document properties"
-msgstr "修改文件合併設定"
-
-#: data/ui/glabels-ui.xml.h:71
-#, fuzzy
-msgid "New"
-msgstr "新增 (&_N)"
-
-#: data/ui/glabels-ui.xml.h:72
+#: ../src/ui.c:389
 #, fuzzy
-msgid "Object property editor"
-msgstr "文字樣貌"
+msgid "Align objects to top edges"
+msgstr "修改方塊物件設定"
 
-#: data/ui/glabels-ui.xml.h:73
-msgid "Only show icons in the drawing toolbar"
+#: ../src/ui.c:396
+msgid "Align objects to bottom edges"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:74
-msgid "Only show icons in the main toolbar"
+#: ../src/ui.c:403
+msgid "Align objects to vertical centers"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:76
-msgid "Open a file"
-msgstr "開啟檔案"
-
-#: data/ui/glabels-ui.xml.h:77
-#, fuzzy
-msgid "Open the glabels manual"
-msgstr "開啟標簽"
-
-#: data/ui/glabels-ui.xml.h:78
-msgid "Paste"
+#: ../src/ui.c:410
+msgid "Center objects to horizontal label center"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:79
-msgid "Paste the clipboard"
+#: ../src/ui.c:417
+msgid "Center objects to vertical label center"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:80
-#, fuzzy
-msgid "Pr_eferences..."
-msgstr "Glabels: 設定值"
+#: ../src/ui.c:424
+msgid "Edit merge properties"
+msgstr "修改合併設定"
 
-#: data/ui/glabels-ui.xml.h:81
-#, fuzzy
-msgid "Preferences"
-msgstr "Glabels: 設定值"
+#: ../src/ui.c:431
+msgid "Contents"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:83
+#: ../src/ui.c:433
 #, fuzzy
-msgid "Print the current file"
-msgstr "列印現有檔案"
+msgid "Open glabels manual"
+msgstr "開啟標簽"
 
-#: data/ui/glabels-ui.xml.h:84
-#, fuzzy
-msgid "Proper_ties..."
-msgstr "文字樣貌"
+#: ../src/ui.c:438
+msgid "About..."
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:85
-#, fuzzy
-msgid "Properties"
-msgstr "文字樣貌"
+#: ../src/ui.c:440
+msgid "About glabels"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:86
+#: ../src/ui.c:450
 msgid "Property toolbar"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:87
-msgid "Quit"
+#: ../src/ui.c:452
+msgid "Change the visibility of the property toolbar in the current window"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:88
-msgid "Quit the program"
+#: ../src/ui.c:458
+msgid "Grid"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:89
-msgid "Raise object to top"
+#: ../src/ui.c:460
+msgid "Change the visibility of the grid in the current window"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:90
-msgid "Recent _Files"
+#: ../src/ui.c:466
+msgid "Markup"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:91
-msgid "Redo"
+#: ../src/ui.c:468
+msgid "Change the visibility of markup lines in the current window"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:92
-msgid "Redo the undone action"
+#: ../src/ui.c:479
+msgid "Main toolbar"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:93
-msgid "Remove all selections"
-msgstr "移除所有選擇項"
-
-#: data/ui/glabels-ui.xml.h:95
-#, no-c-format
-msgid "Restore scale to 100%"
+#: ../src/ui.c:481
+msgid "Change the visibility of the main toolbar in the current window"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:96
-msgid "Right align"
+#: ../src/ui.c:487
+msgid "Drawing toolbar"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:99
-msgid "Rotate object 90 clockwise"
+#: ../src/ui.c:489
+msgid "Change the visibility of the drawing toolbar in the current window"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:100
-msgid "Rotate object 90 counter-clockwise"
+#: ../src/ui-commands.c:1135
+msgid "Glabels includes contributions from:"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:101
-#, fuzzy
-msgid "Save"
-msgstr "另存為..."
-
-#: data/ui/glabels-ui.xml.h:102
-msgid "Save As"
-msgstr "另存為..."
+#: ../src/ui-commands.c:1141
+msgid "See the file AUTHORS for additional credits,"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:103
-#, fuzzy
-msgid "Save _As..."
-msgstr "另存為..."
+#: ../src/ui-commands.c:1142
+msgid "or visit http://glabels.org/"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:104
-#, fuzzy
-msgid "Save the current file"
-msgstr "儲存現在檔案"
+#: ../src/ui-commands.c:1154
+msgid "A label and business card creation program.\n"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:105
-msgid "Save the current file with a different name"
+#: ../src/ui-commands.c:1158
+msgid "translator-credits"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:106
+#: ../src/ui-commands.c:1161
 #, fuzzy
-msgid "Select All"
-msgstr "反選擇全部 (&_N)"
+msgid ""
+"gLabels is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"gLabels is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"A label and business card creation program for GNOME.\n"
+" \n"
+"Glabels is free software; you can redistribute it and/or modify it under the "
+"terms of the GNU General Public License as published by the Free Software "
+"Foundation; either version 2 of the License, or (at your option) any later "
+"version.\n"
+" \n"
+"This program is distributed in the hope that it will be useful, but WITHOUT "
+"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or "
+"FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for "
+"more details.\n"
 
-#: data/ui/glabels-ui.xml.h:107
+#: ../src/ui-commands.c:1190
 #, fuzzy
-msgid "Select _All"
-msgstr "反選擇全部 (&_N)"
+msgid "glabels"
+msgstr "標簽"
 
-#: data/ui/glabels-ui.xml.h:108
+#: ../src/warning-handler.c:69
 #, fuzzy
-msgid "Select all objects"
-msgstr "選擇, 移動及修改物件"
-
-#: data/ui/glabels-ui.xml.h:109
-msgid "Select, move and modify objects"
-msgstr "選擇, 移動及修改物件"
-
-#: data/ui/glabels-ui.xml.h:111
-msgid "Set drawing toolbar button style according to desktop default"
-msgstr ""
-
-#: data/ui/glabels-ui.xml.h:112
-msgid "Set main toolbar button style according to desktop default"
-msgstr ""
+msgid "gLabels Error!"
+msgstr "Glabels: 設定值"
 
-#: data/ui/glabels-ui.xml.h:113
-msgid "Show _Tooltips"
+#: ../src/window.c:284
+msgid "(none) - gLabels"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:114
-msgid "Show both icons and texts in the drawing toolbar"
+#: ../src/window.c:485
+msgid "(modified)"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:115
-msgid "Show both icons and texts in the main toolbar"
-msgstr ""
+#: ../src/xml-label-04.c:75 ../src/xml-label.c:333
+#, c-format
+msgid "Bad root node = \"%s\""
+msgstr "錯誤的基碼 = \"%s\""
 
-#: data/ui/glabels-ui.xml.h:116
-msgid "Show tooltips in the drawing toolbar"
-msgstr ""
+#: ../src/xml-label-04.c:123 ../src/xml-label.c:416
+#, c-format
+msgid "bad node =  \"%s\""
+msgstr "錯誤的節點 = \"%s\""
 
-#: data/ui/glabels-ui.xml.h:117
-msgid "Show tooltips in the main toolbar"
-msgstr ""
+#: ../src/xml-label.c:199 ../src/xml-label.c:237
+msgid "xmlParseFile error"
+msgstr "xmlParseFile 錯誤"
 
-#: data/ui/glabels-ui.xml.h:118
-msgid "Show tooltips in the property toolbar"
-msgstr ""
+#: ../src/xml-label.c:274
+msgid "No document root"
+msgstr "沒有文件始端"
 
-#: data/ui/glabels-ui.xml.h:119
-msgid "Template Designer"
+#: ../src/xml-label.c:282
+msgid "Importing from glabels 0.1 format"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:120
-msgid "Template _Designer..."
+#: ../src/xml-label.c:291
+msgid "Importing from glabels 0.4 format"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:121
-msgid "Text color"
-msgstr ""
+#: ../src/xml-label.c:301
+#, fuzzy, c-format
+msgid "Unknown glabels Namespace -- Using %s"
+msgstr "不正確的文件種類, 找不到 glabels 格式"
 
-#: data/ui/glabels-ui.xml.h:122
-#, fuzzy
-msgid "U_n-select All"
-msgstr "反選擇全部 (&_N)"
+#: ../src/xml-label.c:370
+#, fuzzy, c-format
+msgid "bad node in Document node =  \"%s\""
+msgstr "錯誤的基碼 = \"%s\""
 
-#: data/ui/glabels-ui.xml.h:123
-#, fuzzy
-msgid "Un-select All"
-msgstr "反選擇全部 (&_N)"
+#: ../src/xml-label.c:868
+#, fuzzy, c-format
+msgid "bad node in Data node =  \"%s\""
+msgstr "錯誤的節點 = \"%s\""
 
-#: data/ui/glabels-ui.xml.h:124
-msgid "Undo"
+#: ../src/xml-label.c:944
+#, c-format
+msgid "Unknown embedded file format: \"%s\""
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:125
-msgid "Undo the last action"
+#: ../src/xml-label.c:1150 ../libglabels/xml-template.c:802
+msgid "Utf8 conversion error."
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:126
-#, fuzzy
-msgid "Zoom _1:1"
-msgstr "1:1 顯示"
-
-#: data/ui/glabels-ui.xml.h:127
-#, fuzzy
-msgid "Zoom _In"
-msgstr "放大"
+#: ../src/xml-label.c:1157
+msgid "Problem saving xml file."
+msgstr "儲存 XML 檔案時發生錯誤."
 
-#: data/ui/glabels-ui.xml.h:128
-#, fuzzy
-msgid "Zoom _Out"
-msgstr "縮小"
+#. Create and append an "Other" entry.
+#. Translators: "Other" here means other page size.  Meaning a page size
+#. * other than the standard ones that libglabels knows about such as
+#. * "letter", "A4", etc.
+#: ../libglabels/db.c:270
+msgid "Other"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:129
+#. Create and append a "User defined" entry.
+#: ../libglabels/db.c:279
 #, fuzzy
-msgid "Zoom to _fit"
-msgstr "1:1 顯示"
+msgid "User defined"
+msgstr "插入合併列"
 
-#: data/ui/glabels-ui.xml.h:130
-msgid "Zoom to fit window"
+#: ../libglabels/db.c:665
+msgid ""
+"Unable to locate paper size definitions.  Libglabels may not be installed "
+"correctly!"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:131
-msgid "_About..."
+#: ../libglabels/db.c:1057
+msgid ""
+"Unable to locate category definitions.  Libglabels may not be installed "
+"correctly!"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:132
-msgid "_Bottoms"
+#: ../libglabels/db.c:2097
+msgid ""
+"Unable to locate any template files.  Libglabels may not be installed "
+"correctly!"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:135
-msgid "_Close"
+#: ../libglabels/db.c:2164
+#, c-format
+msgid "%s full page label"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:136
-msgid "_Contents"
+#: ../libglabels/template.c:156
+#, c-format
+msgid "Equivalent part (\"%s\") for \"%s\", not previously defined."
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:137
-msgid "_Copy"
-msgstr ""
+#.
+#. * Translators: 1st %d = number of labels across a page,
+#. *              2nd %d = number of labels down a page,
+#. *              3rd %d = total number of labels on a page (sheet).
+#.
+#: ../libglabels/template.c:727
+#, fuzzy, c-format
+msgid "%d × %d (%d per sheet)"
+msgstr "%d x %d (每頁 %d)"
+
+#. Translators: %d is the total number of labels on a page (sheet).
+#: ../libglabels/template.c:732
+#, fuzzy, c-format
+msgid "%d per sheet"
+msgstr "%d x %d (每頁 %d)"
 
-#: data/ui/glabels-ui.xml.h:138
+#: ../libglabels/template.c:802 ../libglabels/template.c:808
+#: ../libglabels/template.c:818 ../libglabels/template.c:824
 #, fuzzy
-msgid "_Create Object"
-msgstr "建立新的文字物件"
+msgid "diameter"
+msgstr "毫米"
+
+#. The ids are identical to the absolute length units supported in
+#. the CSS2 Specification (Section 4.3.2)
+#. This table must be sorted exactly as the enumerations in lglUnits
+#. [LGL_UNITS_POINT]
+#: ../libglabels/units.c:65 ../data/ui/object-editor.ui.h:39
+#: ../data/ui/prefs-dialog.ui.h:22
+msgid "points"
+msgstr "點"
+
+#. [LGL_UNITS_INCH]
+#: ../libglabels/units.c:66 ../data/ui/object-editor.ui.h:38
+#: ../data/ui/template-designer.ui.h:62
+msgid "inches"
+msgstr "英寸"
 
-#: data/ui/glabels-ui.xml.h:139
-msgid "_Debug"
-msgstr ""
+#. [LGL_UNITS_MM]
+#: ../libglabels/units.c:67
+msgid "mm"
+msgstr "mm"
 
-#: data/ui/glabels-ui.xml.h:141
-msgid "_Desktop Default"
+#. [LGL_UNITS_CM]
+#: ../libglabels/units.c:68
+msgid "cm"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:142
-msgid "_Drawing Toolbar"
+#. [LGL_UNITS_PICA]
+#: ../libglabels/units.c:69
+msgid "picas"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:143
-msgid "_Edit"
+#: ../libglabels/xml-template.c:223
+msgid "Missing name or brand/part attributes."
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:145
-#, fuzzy
-msgid "_File"
-msgstr "填滿"
+#. This should always be an id, but just in case a name
+#. slips by!
+#: ../libglabels/xml-template.c:244
+#, c-format
+msgid "Unknown page size id \"%s\", trying as name"
+msgstr ""
 
-#: data/ui/glabels-ui.xml.h:146
-msgid "_Grid"
+#: ../libglabels/xml-template.c:256
+#, c-format
+msgid "Unknown page size id or name \"%s\""
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:147
-msgid "_Help"
+#: ../libglabels/xml-template.c:275
+msgid "Forward references not supported."
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:148
-msgid "_Icon"
+#: ../libglabels/xml-template.c:747
+msgid ""
+"Missing required \"brand\" or \"part\" attribute, trying deprecated name."
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:152
-msgid "_Main Toolbar"
+#: ../libglabels/xml-template.c:757
+msgid "Name attribute also missing."
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:153
-#, fuzzy
-msgid "_Merge Properties..."
-msgstr "合併設定"
+#.
+#. * Local Variables:       -- emacs
+#. * mode: C                -- emacs
+#. * c-basic-offset: 8      -- emacs
+#. * tab-width: 8           -- emacs
+#. * indent-tabs-mode: nil  -- emacs
+#. * End:                   -- emacs
+#.
+#: ../data/ui/merge-properties-dialog.ui.h:1
+msgid "Format:"
+msgstr "格式:"
 
-#: data/ui/glabels-ui.xml.h:154
-msgid "_New"
-msgstr "新增 (&_N)"
+#: ../data/ui/merge-properties-dialog.ui.h:2
+msgid "Location:"
+msgstr "位置:"
 
-#: data/ui/glabels-ui.xml.h:155
-msgid "_Objects"
+#: ../data/ui/merge-properties-dialog.ui.h:3
+msgid "Record selection/preview"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:156
+#: ../data/ui/merge-properties-dialog.ui.h:4
 #, fuzzy
-msgid "_Open..."
-msgstr "開啟"
+msgid "Select all"
+msgstr "反選擇全部 (&_N)"
 
-#: data/ui/glabels-ui.xml.h:158
-msgid "_Paste"
-msgstr ""
+#: ../data/ui/merge-properties-dialog.ui.h:5
+msgid "Source"
+msgstr "來源檔"
 
-#: data/ui/glabels-ui.xml.h:159
+#: ../data/ui/merge-properties-dialog.ui.h:6
 #, fuzzy
-msgid "_Print..."
-msgstr "å\88\97å\8d°"
+msgid "Unselect all"
+msgstr "å\8f\8dé\81¸æ\93\87å\85¨é\83¨ (&_N)"
 
-#: data/ui/glabels-ui.xml.h:160
-msgid "_Property Toolbar"
+#: ../data/ui/media-select.ui.h:1
+msgid "Brand:"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:161
-msgid "_Quit"
+#: ../data/ui/media-select.ui.h:2
+msgid "Category:"
 msgstr ""
 
-#: data/ui/glabels-ui.xml.h:164
-#, fuzzy
-msgid "_Save"
-msgstr "另存為..."
-
-#: data/ui/glabels-ui.xml.h:168
+#: ../data/ui/media-select.ui.h:3
 #, fuzzy
-msgid "_View"
-msgstr "新增 (&_N)"
-
-#: data/glade/prefs-dialog.glade.h:1
-msgid "   "
-msgstr ""
-
-#: data/glade/prefs-dialog.glade.h:2 data/glade/object-editor.glade.h:1
-#: data/glade/template-designer.glade.h:5
-msgid "*"
-msgstr ""
+msgid "Custom"
+msgstr "自訂欄位鑰"
 
-#: data/glade/prefs-dialog.glade.h:3
-msgid "<span weight=\"bold\">Default page size</span>"
-msgstr ""
+#: ../data/ui/media-select.ui.h:4 ../data/ui/new-label-dialog.ui.h:6
+#: ../data/ui/template-designer.ui.h:42
+msgid "Page size:"
+msgstr "紙張大小:"
 
-#: data/glade/prefs-dialog.glade.h:4
-msgid "<span weight=\"bold\">Fill</span>"
+#: ../data/ui/media-select.ui.h:5
+msgid "Recent"
 msgstr ""
 
-#: data/glade/prefs-dialog.glade.h:5
-msgid "<span weight=\"bold\">Line</span>"
-msgstr ""
+#: ../data/ui/media-select.ui.h:6
+#, fuzzy
+msgid "Search all"
+msgstr "反選擇全部 (&_N)"
 
-#: data/glade/prefs-dialog.glade.h:6
-msgid "<span weight=\"bold\">Text</span>"
+#: ../data/ui/new-label-dialog.ui.h:1
+msgid ""
+"Choose label or card product from hundreds of predefined templates or define "
+"your own."
 msgstr ""
 
-#: data/glade/prefs-dialog.glade.h:7
-msgid "<span weight=\"bold\">Units</span>"
-msgstr ""
+#: ../data/ui/new-label-dialog.ui.h:2 ../data/ui/template-designer.ui.h:27
+msgid "Description:"
+msgstr "描述:"
 
-#: data/glade/prefs-dialog.glade.h:8 data/glade/object-editor.glade.h:4
-msgid "Alignment:"
-msgstr "對置:"
+#: ../data/ui/new-label-dialog.ui.h:3
+msgid "Label size:"
+msgstr "標簽大小:"
 
-#: data/glade/prefs-dialog.glade.h:9 data/glade/object-editor.glade.h:8
-msgid "Color:"
-msgstr "顏色:"
+#: ../data/ui/new-label-dialog.ui.h:4
+msgid "Layout:"
+msgstr "版面:"
 
-#: data/glade/prefs-dialog.glade.h:10
-msgid "Font:"
-msgstr "字型:"
+#: ../data/ui/new-label-dialog.ui.h:5
+#, fuzzy
+msgid "Normal"
+msgstr "格式:"
 
-#: data/glade/prefs-dialog.glade.h:11
-msgid "ISO A4"
+#: ../data/ui/new-label-dialog.ui.h:7 ../data/ui/template-designer.ui.h:43
+msgid "Part #:"
 msgstr ""
 
-#: data/glade/prefs-dialog.glade.h:12
-msgid "Inches"
-msgstr "英寸"
-
-#: data/glade/prefs-dialog.glade.h:13 data/glade/object-editor.glade.h:19
-msgid "Line Spacing:"
+#: ../data/ui/new-label-dialog.ui.h:8
+msgid "Please review and confirm your selection."
 msgstr ""
 
-#: data/glade/prefs-dialog.glade.h:14
+#: ../data/ui/new-label-dialog.ui.h:9
 #, fuzzy
-msgid "Locale"
-msgstr "比例:"
-
-#: data/glade/prefs-dialog.glade.h:15
-msgid "Millimeters"
-msgstr "毫米"
-
-#: data/glade/prefs-dialog.glade.h:16
-msgid "Object defaults"
-msgstr ""
-
-#: data/glade/prefs-dialog.glade.h:17
-msgid "Points"
-msgstr "點"
+msgid "Rotated"
+msgstr "旋轉"
 
-#: data/glade/prefs-dialog.glade.h:18
-msgid "Select default properties for new objects."
+#: ../data/ui/new-label-dialog.ui.h:10
+msgid "Select orientation of label content."
 msgstr ""
 
-#: data/glade/prefs-dialog.glade.h:19
-msgid "Select locale specific behavior."
+#: ../data/ui/new-label-dialog.ui.h:11
+msgid "Similar products:"
 msgstr ""
 
-#: data/glade/prefs-dialog.glade.h:20 data/templates/paper-sizes.xml.h:25
-msgid "US Letter"
+#: ../data/ui/new-label-dialog.ui.h:12
+msgid "Vendor:"
 msgstr ""
 
-#: data/glade/prefs-dialog.glade.h:21 data/glade/object-editor.glade.h:29
-#: data/glade/template-designer.glade.h:72
-msgid "Width:"
-msgstr "闊度:"
-
-#: data/glade/object-editor.glade.h:2
-msgid "00000000000 00000"
-msgstr ""
+#: ../data/ui/object-editor.ui.h:2
+#, no-c-format
+msgid "%"
+msgstr "%"
 
-#: data/glade/object-editor.glade.h:3
-msgid "<span weight=\"bold\" size=\"larger\">Xxx object properties</span>"
-msgstr ""
+#: ../data/ui/object-editor.ui.h:3 ../data/ui/prefs-dialog.ui.h:2
+msgid "Alignment:"
+msgstr "對置:"
 
-#: data/glade/object-editor.glade.h:5
+#: ../data/ui/object-editor.ui.h:4
 msgid "Allow merge to automatically shrink text"
 msgstr ""
 
-#: data/glade/object-editor.glade.h:6
+#: ../data/ui/object-editor.ui.h:5
 msgid "Angle:"
 msgstr "角度:"
 
-#: data/glade/object-editor.glade.h:7
+#: ../data/ui/object-editor.ui.h:6
 msgid "Checksum"
 msgstr ""
 
-#: data/glade/object-editor.glade.h:10
+#: ../data/ui/object-editor.ui.h:7 ../data/ui/prefs-dialog.ui.h:3
+msgid "Color:"
+msgstr "顏色:"
+
+#: ../data/ui/object-editor.ui.h:9
+msgid "Enable shadow"
+msgstr ""
+
+#: ../data/ui/object-editor.ui.h:10
 #, fuzzy
 msgid "Family:"
 msgstr "填滿"
 
-#: data/glade/object-editor.glade.h:12
+#: ../data/ui/object-editor.ui.h:11
+#, fuzzy
+msgid "File:"
+msgstr "填滿"
+
+#: ../data/ui/object-editor.ui.h:12 ../data/ui/prefs-dialog.ui.h:5
 msgid "Fill"
 msgstr "填滿"
 
-#: data/glade/object-editor.glade.h:13 data/glade/template-designer.glade.h:33
+#: ../data/ui/object-editor.ui.h:13 ../data/ui/template-designer.ui.h:30
 msgid "Height:"
 msgstr "高度:"
 
-#: data/glade/object-editor.glade.h:14
-msgid "Image"
-msgstr "圖像"
-
-#: data/glade/object-editor.glade.h:15
-msgid "Insert merge field"
-msgstr "插入合併列"
+#: ../data/ui/object-editor.ui.h:15
+msgid "Key:"
+msgstr "資料值:"
 
-#: data/glade/object-editor.glade.h:17
+#: ../data/ui/object-editor.ui.h:16
 msgid "Length:"
 msgstr "長度:"
 
-#: data/glade/object-editor.glade.h:18
-msgid "Line"
-msgstr ""
+#: ../data/ui/object-editor.ui.h:18 ../data/ui/prefs-dialog.ui.h:10
+msgid "Line Spacing:"
+msgstr ""
 
-#: data/glade/object-editor.glade.h:20
+#: ../data/ui/object-editor.ui.h:19
 msgid "Literal:"
 msgstr "文字:"
 
-#: data/glade/object-editor.glade.h:21
-msgid "Load image"
+#: ../data/ui/object-editor.ui.h:20
+msgid "Opacity:"
 msgstr ""
 
-#: data/glade/object-editor.glade.h:22
+#: ../data/ui/object-editor.ui.h:21
 msgid "Position"
 msgstr "位置"
 
-#: data/glade/object-editor.glade.h:23
+#: ../data/ui/object-editor.ui.h:22
 msgid "Reset image size"
 msgstr "重設圖像大小"
 
-#: data/glade/object-editor.glade.h:24
+#: ../data/ui/object-editor.ui.h:23
+msgid "Shadow"
+msgstr ""
+
+#: ../data/ui/object-editor.ui.h:24
 msgid "Size"
 msgstr "大小"
 
-#: data/glade/object-editor.glade.h:25
+#: ../data/ui/object-editor.ui.h:25
 #, fuzzy
 msgid "Size:"
 msgstr "大小"
 
-#: data/glade/object-editor.glade.h:26
+#: ../data/ui/object-editor.ui.h:26
 #, fuzzy
 msgid "Style"
 msgstr "樣式"
 
-#: data/glade/object-editor.glade.h:27
+#: ../data/ui/object-editor.ui.h:27
 #, fuzzy
 msgid "Style:"
 msgstr "樣式"
 
-#: data/glade/object-editor.glade.h:30
+#: ../data/ui/object-editor.ui.h:29 ../data/ui/prefs-dialog.ui.h:20
+#: ../data/ui/template-designer.ui.h:61
+msgid "Width:"
+msgstr "闊度:"
+
+#: ../data/ui/object-editor.ui.h:30
+msgid "X Offset:"
+msgstr ""
+
+#: ../data/ui/object-editor.ui.h:31
 msgid "X:"
 msgstr "X:"
 
-#: data/glade/object-editor.glade.h:31
+#: ../data/ui/object-editor.ui.h:32
+msgid "Y Offset:"
+msgstr ""
+
+#: ../data/ui/object-editor.ui.h:33
 msgid "Y:"
 msgstr "Y:"
 
-#: data/glade/object-editor.glade.h:32
+#: ../data/ui/object-editor.ui.h:34
 msgid "degrees"
 msgstr "度數"
 
-#: data/glade/object-editor.glade.h:33
+#: ../data/ui/object-editor.ui.h:35
 msgid "dialog1"
 msgstr ""
 
-#: data/glade/object-editor.glade.h:34
+#: ../data/ui/object-editor.ui.h:36
 msgid "digits:"
 msgstr ""
 
-#: data/glade/object-editor.glade.h:35
+#: ../data/ui/object-editor.ui.h:37
 #, fuzzy
 msgid "format:"
 msgstr "格式:"
 
-#: data/glade/template-designer.glade.h:1
-msgid "  "
+#: ../data/ui/prefs-dialog.ui.h:1
+msgid "   "
+msgstr ""
+
+#: ../data/ui/prefs-dialog.ui.h:4
+msgid "Default page size"
+msgstr "預設紙張大小"
+
+#: ../data/ui/prefs-dialog.ui.h:6
+msgid "Font:"
+msgstr "字型:"
+
+#: ../data/ui/prefs-dialog.ui.h:7
+msgid "ISO A4"
+msgstr ""
+
+#: ../data/ui/prefs-dialog.ui.h:8
+msgid "Inches"
+msgstr "英寸"
+
+#: ../data/ui/prefs-dialog.ui.h:11
+#, fuzzy
+msgid "Locale"
+msgstr "比例:"
+
+#: ../data/ui/prefs-dialog.ui.h:12
+msgid "Millimeters"
+msgstr "毫米"
+
+#: ../data/ui/prefs-dialog.ui.h:13
+msgid "Object defaults"
+msgstr ""
+
+#: ../data/ui/prefs-dialog.ui.h:14
+msgid "Points"
+msgstr "點"
+
+#: ../data/ui/prefs-dialog.ui.h:15
+msgid "Select default properties for new objects."
+msgstr ""
+
+#: ../data/ui/prefs-dialog.ui.h:16
+msgid "Select locale specific behavior."
+msgstr ""
+
+#: ../data/ui/prefs-dialog.ui.h:18 ../templates/paper-sizes.xml.h:35
+msgid "US Letter"
+msgstr ""
+
+#: ../data/ui/prefs-dialog.ui.h:19
+msgid "Units"
+msgstr ""
+
+#: ../data/ui/property-bar.ui.h:1
+msgid "Bold"
+msgstr ""
+
+#: ../data/ui/property-bar.ui.h:2
+#, fuzzy
+msgid "Center align"
+msgstr "一般"
+
+#: ../data/ui/property-bar.ui.h:7
+msgid "Left align"
+msgstr ""
+
+#: ../data/ui/property-bar.ui.h:10
+msgid "Right align"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:2
+#: ../data/ui/template-designer.ui.h:1
 msgid "(e.g., \"Mailing Labels,\" \"Business Cards,\" ...)"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:3
+#: ../data/ui/template-designer.ui.h:2
 msgid "(e.g., 8163A)"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:4
+#: ../data/ui/template-designer.ui.h:3
 msgid "(e.g., Avery, Acme, ...)"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:6
+#: ../data/ui/template-designer.ui.h:4
 msgid "1. Outer radius:"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:7
+#: ../data/ui/template-designer.ui.h:5
 msgid "1. Radius:"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:8
+#: ../data/ui/template-designer.ui.h:6
 #, fuzzy
 msgid "1. Width:"
 msgstr "闊度:"
 
-#: data/glade/template-designer.glade.h:9
+#: ../data/ui/template-designer.ui.h:7
 #, fuzzy
 msgid "2. Height:"
 msgstr "高度:"
 
-#: data/glade/template-designer.glade.h:10
+#: ../data/ui/template-designer.ui.h:8
 msgid "2. Inner radius:"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:11
+#: ../data/ui/template-designer.ui.h:9
 msgid "2. Waste (overprint allowed):"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:12
+#: ../data/ui/template-designer.ui.h:10
 msgid "3. Clipping width:"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:13
+#: ../data/ui/template-designer.ui.h:11
 msgid "3. Margin"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:14
+#: ../data/ui/template-designer.ui.h:12
 msgid "3. Round (radius of corner):"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:15
+#: ../data/ui/template-designer.ui.h:13
 msgid "4. Clipping height:"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:16
+#: ../data/ui/template-designer.ui.h:14
 msgid "4. Horiz. waste (overprint allowed):"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:17
+#: ../data/ui/template-designer.ui.h:15
 msgid "5. Vert. waste (overprint allowed):"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:18
+#: ../data/ui/template-designer.ui.h:16
 msgid "5. Waste (overprint allowed):"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:19
+#: ../data/ui/template-designer.ui.h:17
 msgid "6. Margin"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:20
+#: ../data/ui/template-designer.ui.h:18
 msgid "Brand/Manufacturer:"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:21
+#: ../data/ui/template-designer.ui.h:19
 msgid "CD/DVD (including credit card CDs)"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:22
+#: ../data/ui/template-designer.ui.h:20
 msgid ""
 "Congratulations!\n"
 "\n"
@@ -2024,23 +2434,19 @@ msgid ""
 "or \"Back\" to continue editing this design."
 msgstr ""
 
-#: data/glade/template-designer.glade.h:30
-msgid "Design Completed"
-msgstr ""
-
-#: data/glade/template-designer.glade.h:31
+#: ../data/ui/template-designer.ui.h:28
 msgid "Distance from left edge (x0):"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:32
+#: ../data/ui/template-designer.ui.h:29
 msgid "Distance from top edge (y0):"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:34
+#: ../data/ui/template-designer.ui.h:31
 msgid "Horizontal pitch (dx):"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:35
+#: ../data/ui/template-designer.ui.h:32
 msgid ""
 "How many layouts will your template contain? \n"
 "\n"
@@ -2049,500 +2455,1016 @@ msgid ""
 "The second example illustrates when two layouts are needed."
 msgstr ""
 
-#: data/glade/template-designer.glade.h:40
-msgid "Label Size (CD/DVD)"
-msgstr ""
-
-#: data/glade/template-designer.glade.h:41
-#, fuzzy
-msgid "Label Size (Round)"
-msgstr "標簽大小:"
-
-#: data/glade/template-designer.glade.h:42
-#, fuzzy
-msgid "Label or Card Shape"
-msgstr "新增標簽或卡"
-
-#: data/glade/template-designer.glade.h:43
-msgid "Label or Card Size (Rectangular)"
-msgstr ""
-
-#: data/glade/template-designer.glade.h:44
+#: ../data/ui/template-designer.ui.h:37
 #, fuzzy
 msgid "Layout #1"
 msgstr "版面:"
 
-#: data/glade/template-designer.glade.h:45
+#: ../data/ui/template-designer.ui.h:38
 #, fuzzy
 msgid "Layout #2"
 msgstr "版面:"
 
-#: data/glade/template-designer.glade.h:46
-#, fuzzy
-msgid "Layout(s)"
-msgstr "版面:"
-
-#: data/glade/template-designer.glade.h:47
-#, fuzzy
-msgid "Name and Description"
-msgstr "描述:"
-
-#: data/glade/template-designer.glade.h:48
+#: ../data/ui/template-designer.ui.h:39
 msgid "Number across (nx):"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:49
+#: ../data/ui/template-designer.ui.h:40
 msgid "Number down (ny):"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:50
-msgid "Number of Layouts"
-msgstr ""
-
-#: data/glade/template-designer.glade.h:51
+#: ../data/ui/template-designer.ui.h:41
 msgid "Number of layouts:"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:52
-#, fuzzy
-msgid "Page Size"
-msgstr "紙張大小:"
-
-#: data/glade/template-designer.glade.h:54
-msgid "Part #:"
-msgstr ""
-
-#: data/glade/template-designer.glade.h:55
+#: ../data/ui/template-designer.ui.h:44
 msgid ""
 "Please enter the following identifying information about the template "
 "stationery."
 msgstr ""
 
-#: data/glade/template-designer.glade.h:56
+#: ../data/ui/template-designer.ui.h:45
 msgid "Please enter the following layout information."
 msgstr ""
 
-#: data/glade/template-designer.glade.h:57
+#: ../data/ui/template-designer.ui.h:46
 msgid ""
 "Please enter the following size parameters of a single label in your "
 "template."
 msgstr ""
 
-#: data/glade/template-designer.glade.h:58
+#: ../data/ui/template-designer.ui.h:47
 msgid ""
 "Please enter the following size parameters of a single label or card in your "
 "template."
 msgstr ""
 
-#: data/glade/template-designer.glade.h:59
+#: ../data/ui/template-designer.ui.h:48
 msgid "Please select the basic shape of the labels or cards."
 msgstr ""
 
-#: data/glade/template-designer.glade.h:60
+#: ../data/ui/template-designer.ui.h:49
 msgid "Please select the page size of the template stationery."
 msgstr ""
 
-#: data/glade/template-designer.glade.h:61
+#: ../data/ui/template-designer.ui.h:50
 #, fuzzy
 msgid "Print test sheet"
 msgstr "在首張紙"
 
-#: data/glade/template-designer.glade.h:62
+#: ../data/ui/template-designer.ui.h:51
 msgid "Rectangular or square (can have rounded corners)"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:63
+#: ../data/ui/template-designer.ui.h:52
 msgid "Round"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:64
-msgid ""
-"Templates needing\n"
-"two layouts."
-msgstr ""
+#: ../data/ui/template-designer.ui.h:53
+msgid ""
+"Templates needing\n"
+"two layouts."
+msgstr ""
+
+#: ../data/ui/template-designer.ui.h:55
+msgid ""
+"Templates needing only\n"
+"one layout."
+msgstr ""
+
+#: ../data/ui/template-designer.ui.h:57
+msgid "Vertical pitch (dy):"
+msgstr ""
+
+#: ../data/ui/template-designer.ui.h:58
+msgid ""
+"Welcome to the gLabels Template Designer.\n"
+"\n"
+"This dialog will assist you in the creation of a custom gLabels template."
+msgstr ""
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:1
+msgid "Collate"
+msgstr "校對"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:2
+msgid "Copies"
+msgstr "份數"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:3
+msgid "Copies:"
+msgstr "份數:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:5
+#, fuzzy
+msgid "Merge Control"
+msgstr "文件合併控制"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:6
+msgid "Options"
+msgstr "設定"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:7
+msgid "Sheets:"
+msgstr "紙張:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:8
+msgid "Start on label"
+msgstr "由禁簽開級"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:9
+msgid "from:"
+msgstr "由:"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:10
+msgid "on 1st sheet"
+msgstr "在首張紙"
+
+#: ../data/ui/print-op-dialog-custom-widget.ui.h:14
+msgid "to:"
+msgstr "到:"
 
-#: data/glade/template-designer.glade.h:66
-msgid ""
-"Templates needing only\n"
-"one layout."
+#: ../data/desktop/glabels-3.0.desktop.in.h:1
+msgid "Create labels, business cards and media covers"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:68
-msgid "Vertical pitch (dy):"
+#: ../data/desktop/glabels-3.0.desktop.in.h:2
+msgid "gLabels Label Designer 3"
 msgstr ""
 
-#: data/glade/template-designer.glade.h:69
-msgid ""
-"Welcome to the gLabels Template Designer.\n"
-"\n"
-"This dialog will assist you in the creation of a custom gLabels template."
+#: ../data/mime/glabels-3.0.xml.in.h:1
+#, fuzzy
+msgid "gLabels Project File"
+msgstr "文字樣貌"
+
+#. Envelopes
+#: ../templates/paper-sizes.xml.h:2
+msgid "#10 Envelope"
 msgstr ""
 
-#: data/templates/paper-sizes.xml.h:1
+#. Other ISO A series sizes
+#: ../templates/paper-sizes.xml.h:4
 msgid "A0"
 msgstr ""
 
-#: data/templates/paper-sizes.xml.h:2
+#: ../templates/paper-sizes.xml.h:5
 msgid "A1"
 msgstr ""
 
-#: data/templates/paper-sizes.xml.h:3
+#: ../templates/paper-sizes.xml.h:6
 msgid "A10"
 msgstr ""
 
-#: data/templates/paper-sizes.xml.h:4
+#: ../templates/paper-sizes.xml.h:7
 msgid "A2"
 msgstr ""
 
-#: data/templates/paper-sizes.xml.h:5
+#: ../templates/paper-sizes.xml.h:8
 msgid "A3"
 msgstr ""
 
-#: data/templates/paper-sizes.xml.h:6
+#. Most popular (at top of list)
+#: ../templates/paper-sizes.xml.h:10
 msgid "A4"
 msgstr ""
 
-#: data/templates/paper-sizes.xml.h:7
+#: ../templates/paper-sizes.xml.h:11
 msgid "A5"
 msgstr ""
 
-#: data/templates/paper-sizes.xml.h:8
+#: ../templates/paper-sizes.xml.h:12
 msgid "A6"
 msgstr ""
 
-#: data/templates/paper-sizes.xml.h:9
+#: ../templates/paper-sizes.xml.h:13
 msgid "A7"
 msgstr ""
 
-#: data/templates/paper-sizes.xml.h:10
+#: ../templates/paper-sizes.xml.h:14
 msgid "A8"
 msgstr ""
 
-#: data/templates/paper-sizes.xml.h:11
+#: ../templates/paper-sizes.xml.h:15
 msgid "A9"
 msgstr ""
 
-#: data/templates/paper-sizes.xml.h:12
+#. ISO B series sizes
+#: ../templates/paper-sizes.xml.h:17
 msgid "B0"
 msgstr ""
 
-#: data/templates/paper-sizes.xml.h:13
+#: ../templates/paper-sizes.xml.h:18
 msgid "B1"
 msgstr ""
 
-#: data/templates/paper-sizes.xml.h:14
+#: ../templates/paper-sizes.xml.h:19
 msgid "B10"
 msgstr ""
 
-#: data/templates/paper-sizes.xml.h:15
+#: ../templates/paper-sizes.xml.h:20
 msgid "B2"
 msgstr ""
 
-#: data/templates/paper-sizes.xml.h:16
+#: ../templates/paper-sizes.xml.h:21
 msgid "B3"
 msgstr ""
 
-#: data/templates/paper-sizes.xml.h:17
+#: ../templates/paper-sizes.xml.h:22
 msgid "B4"
 msgstr ""
 
-#: data/templates/paper-sizes.xml.h:18
+#: ../templates/paper-sizes.xml.h:23
 msgid "B5"
 msgstr ""
 
-#: data/templates/paper-sizes.xml.h:19
+#: ../templates/paper-sizes.xml.h:24
 msgid "B6"
 msgstr ""
 
-#: data/templates/paper-sizes.xml.h:20
+#: ../templates/paper-sizes.xml.h:25
 msgid "B7"
 msgstr ""
 
-#: data/templates/paper-sizes.xml.h:21
+#: ../templates/paper-sizes.xml.h:26
 msgid "B8"
 msgstr ""
 
-#: data/templates/paper-sizes.xml.h:22
+#: ../templates/paper-sizes.xml.h:27
 msgid "B9"
 msgstr ""
 
-#: data/templates/paper-sizes.xml.h:23
+#: ../templates/paper-sizes.xml.h:28
+msgid "C5"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:29
+msgid "C6"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:30
+msgid "DL"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:31
+msgid "Monarch Envelope"
+msgstr ""
+
+#: ../templates/paper-sizes.xml.h:32
 msgid "US Executive"
 msgstr ""
 
-#: data/templates/paper-sizes.xml.h:24
+#. Other US paper sizes
+#: ../templates/paper-sizes.xml.h:34
 msgid "US Legal"
 msgstr ""
 
-#: data/templates/avery-us-templates.xml.h:1
-#: data/templates/zweckform-iso-templates.xml.h:1
+#: ../templates/categories.xml.h:1
+msgid "Any card"
+msgstr ""
+
+#: ../templates/categories.xml.h:2
+#, fuzzy
+msgid "Any label"
+msgstr "開啟標簽"
+
+#. ===================================================================
+#: ../templates/categories.xml.h:3 ../templates/pearl-iso-templates.xml.h:8
+msgid "Business cards"
+msgstr ""
+
+#: ../templates/categories.xml.h:4
+msgid "CD/DVD or other media"
+msgstr ""
+
+#: ../templates/categories.xml.h:5
+msgid "Mailing/shipping products"
+msgstr ""
+
+#: ../templates/categories.xml.h:6
+#, fuzzy
+msgid "Rectangular labels"
+msgstr "標簽"
+
+#. ===================================================================
+#: ../templates/categories.xml.h:7 ../templates/pearl-iso-templates.xml.h:46
+#, fuzzy
+msgid "Round labels"
+msgstr "由禁簽開級"
+
+#: ../templates/categories.xml.h:8
+#, fuzzy
+msgid "Square labels"
+msgstr "標簽"
+
+#. ===================================================================
+#. ********************************************************************
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:2
+#: ../templates/avery-iso-templates.xml.h:2
+#: ../templates/dymo-other-templates.xml.h:4
+#: ../templates/maco-us-templates.xml.h:2
+#: ../templates/misc-iso-templates.xml.h:2
+#: ../templates/pearl-iso-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:1
+#: ../templates/zweckform-iso-templates.xml.h:2
 msgid "Address Labels"
 msgstr ""
 
-#: data/templates/avery-us-templates.xml.h:2
-#: data/templates/avery-iso-templates.xml.h:2
-#: data/templates/zweckform-iso-templates.xml.h:3
-#: data/templates/misc-us-templates.xml.h:2
-#: data/templates/misc-iso-templates.xml.h:9
+#. ===================================================================
+#. ============================================================
+#. ===================================================================
+#. ********************************************************************
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:4
+#: ../templates/avery-iso-templates.xml.h:8
+#: ../templates/misc-us-templates.xml.h:4
+#: ../templates/misc-iso-templates.xml.h:12
+#: ../templates/zweckform-iso-templates.xml.h:6
 msgid "Business Cards"
 msgstr ""
 
-#: data/templates/avery-us-templates.xml.h:3
+#. ===================================================================
+#. ===============================================================
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:6
+#: ../templates/avery-iso-templates.xml.h:14
+#: ../templates/misc-us-templates.xml.h:8
+#: ../templates/misc-iso-templates.xml.h:16
+#: ../templates/pearl-iso-templates.xml.h:20
+#: ../templates/worldlabel-us-templates.xml.h:2
+#: ../templates/zweckform-iso-templates.xml.h:8
+#, fuzzy
+msgid "CD/DVD Labels"
+msgstr "標簽"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:8
 msgid "CD/DVD Labels (Disc Labels)"
 msgstr ""
 
-#: data/templates/avery-us-templates.xml.h:4
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:10
+#, fuzzy
+msgid "CD/DVD Labels (Spine Labels)"
+msgstr "標簽"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:12
+#: ../templates/avery-iso-templates.xml.h:16
+#: ../templates/worldlabel-us-templates.xml.h:3
 msgid "Diskette Labels"
 msgstr ""
 
-#: data/templates/avery-us-templates.xml.h:5
+#. the LSK labels can be torn in half down the center
+#: ../templates/avery-us-templates.xml.h:14
+#, fuzzy
+msgid "Divider Labels"
+msgstr "標簽"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:16
+#: ../templates/avery-other-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:4
+#, fuzzy
+msgid "File Folder Labels"
+msgstr "標簽"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:18
+#: ../templates/worldlabel-us-templates.xml.h:5
 #, fuzzy
 msgid "Filing Labels"
 msgstr "標簽"
 
-#: data/templates/avery-us-templates.xml.h:6
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:20
+#: ../templates/worldlabel-us-templates.xml.h:6
 msgid "Full Sheet Labels"
 msgstr ""
 
-#: data/templates/avery-us-templates.xml.h:7
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:22
+#, fuzzy
+msgid "ID Labels"
+msgstr "標簽"
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:24
+msgid "Index Cards"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:26
 #, fuzzy
 msgid "Large Round Labels"
 msgstr "由禁簽開級"
 
-#: data/templates/avery-us-templates.xml.h:8
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:28
 msgid "Name Badge Labels"
 msgstr ""
 
-#: data/templates/avery-us-templates.xml.h:9
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:30
+msgid "Post cards"
+msgstr ""
+
+#. ===================================================================
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:32
+#: ../templates/dymo-other-templates.xml.h:12
+#: ../templates/worldlabel-us-templates.xml.h:8
 msgid "Return Address Labels"
 msgstr ""
 
-#: data/templates/avery-us-templates.xml.h:10
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:34
+#: ../templates/maco-us-templates.xml.h:3
+#: ../templates/misc-us-templates.xml.h:30
+#: ../templates/worldlabel-us-templates.xml.h:9
+#, fuzzy
+msgid "Round Labels"
+msgstr "由禁簽開級"
+
+#. ===================================================================
+#. ********************************************************************
+#: ../templates/avery-us-templates.xml.h:36
+#: ../templates/uline-us-templates.xml.h:2
+#: ../templates/worldlabel-us-templates.xml.h:10
 msgid "Shipping Labels"
 msgstr ""
 
-#: data/templates/avery-us-templates.xml.h:11
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:38
 #, fuzzy
 msgid "Small Round Labels"
 msgstr "由禁簽開級"
 
-#: data/templates/avery-us-templates.xml.h:12
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:40
 #, fuzzy
 msgid "Square Labels"
 msgstr "標簽"
 
-#: data/templates/avery-us-templates.xml.h:13
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:42
+msgid "Tent Cards"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:44
+#: ../templates/worldlabel-us-templates.xml.h:11
 msgid "Video Tape Face Labels"
 msgstr ""
 
-#: data/templates/avery-us-templates.xml.h:14
+#. ===================================================================
+#: ../templates/avery-us-templates.xml.h:46
+#: ../templates/worldlabel-us-templates.xml.h:12
 msgid "Video Tape Spine Labels"
 msgstr ""
 
-#: data/templates/avery-iso-templates.xml.h:1
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:4
 msgid "Address labels"
 msgstr ""
 
-#: data/templates/avery-iso-templates.xml.h:3
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:6
+#, fuzzy
+msgid "Allround labels"
+msgstr "由禁簽開級"
+
+#. ===============================================================
+#: ../templates/avery-iso-templates.xml.h:10
 msgid "CD Booklet"
 msgstr ""
 
-#: data/templates/avery-iso-templates.xml.h:4
+#. ===============================================================
+#: ../templates/avery-iso-templates.xml.h:12
 msgid "CD Inlet"
 msgstr ""
 
-#: data/templates/avery-iso-templates.xml.h:5
-#: data/templates/zweckform-iso-templates.xml.h:4
-#: data/templates/misc-us-templates.xml.h:4
-#: data/templates/misc-iso-templates.xml.h:10
-#, fuzzy
-msgid "CD/DVD Labels"
-msgstr "標簽"
-
-#: data/templates/avery-iso-templates.xml.h:6
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:18
 msgid "Diskette labels"
 msgstr ""
 
-#: data/templates/avery-iso-templates.xml.h:7
-#: data/templates/zweckform-iso-templates.xml.h:7
-#: data/templates/misc-iso-templates.xml.h:17
+#. ===============================================================
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:20
+#: ../templates/misc-us-templates.xml.h:20
+#: ../templates/misc-iso-templates.xml.h:36
+#: ../templates/zweckform-iso-templates.xml.h:16
 msgid "Mailing Labels"
 msgstr ""
 
-#: data/templates/avery-iso-templates.xml.h:8
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:22
 #, fuzzy
 msgid "Mailing labels"
 msgstr "標簽"
 
-#: data/templates/avery-iso-templates.xml.h:9
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:24
 msgid "Mini Address Labels"
 msgstr ""
 
-#: data/templates/avery-iso-templates.xml.h:10
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:26
+#, fuzzy
+msgid "Mini Labels"
+msgstr "標簽"
+
+#. ===================================================================
+#: ../templates/avery-iso-templates.xml.h:28
 #, fuzzy
 msgid "Shipping labels"
 msgstr "開啟標簽"
 
-#: data/templates/zweckform-iso-templates.xml.h:2
-msgid "Allround Labels"
+#: ../templates/brother-other-templates.xml.h:1
+msgid "Multi Purpose Labels 17mm x 54mm"
 msgstr ""
 
-#: data/templates/zweckform-iso-templates.xml.h:5
-msgid "Correction and Cover-up Labels"
-msgstr ""
+#: ../templates/brother-other-templates.xml.h:2
+#, fuzzy
+msgid "Shipping Labels 62mm x 100mm"
+msgstr "開啟標簽"
 
-#: data/templates/zweckform-iso-templates.xml.h:6
-msgid "Lever Arch File Labels"
+#.
+#. *********************************************************************
+#. *********************************************************************
+#. Labels for the Brother QL-500/550/650 PC Label Printers
+#.
+#. These templates work with the Brother Linux Printer CUPS Driver.  It
+#. is unknown if these work correctly with the foomatic print driver for
+#. these printers.
+#.
+#. One difference from typical templates is that the template size is
+#. not the actual media size - it is the size of the printable area,
+#. which is smaller than the media size.  This is because (at least with
+#. the Brother driver) coordinates are relative the corner of this area.
+#.
+#. *********************************************************************
+#. *********************************************************************
+#.
+#: ../templates/brother-other-templates.xml.h:20
+msgid "Standard Address Labels 29mm x 90mm"
 msgstr ""
 
-#: data/templates/zweckform-iso-templates.xml.h:8
-msgid "QSL-Karten Etiketten 70mm x 50,8mm"
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:2
+msgid "3.5in Diskette"
 msgstr ""
 
-#: data/templates/zweckform-iso-templates.xml.h:9
-msgid "Rectangular Copier Labels"
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:6
+msgid "File Folder"
 msgstr ""
 
-#: data/templates/zweckform-iso-templates.xml.h:10
-#: data/templates/misc-iso-templates.xml.h:22
-msgid "Rectangular Labels"
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:8
+msgid "Hanging Folder"
 msgstr ""
 
-#: data/templates/zweckform-iso-templates.xml.h:11
-msgid "Video Labels (back)"
-msgstr ""
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:10
+#, fuzzy
+msgid "Large Address Labels"
+msgstr "由禁簽開級"
+
+#. ===================================================================
+#: ../templates/dymo-other-templates.xml.h:14
+#, fuzzy
+msgid "Shipping Address Labels"
+msgstr "開啟標簽"
 
-#: data/templates/misc-us-templates.xml.h:1
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:2
 msgid "Business Card CD"
 msgstr ""
 
-#: data/templates/misc-us-templates.xml.h:3
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:6
 msgid "CD Template Rectangles"
 msgstr ""
 
-#: data/templates/misc-us-templates.xml.h:5
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:10
 msgid "CD/DVD Labels (Face Only)"
 msgstr ""
 
-#: data/templates/misc-us-templates.xml.h:6
-#: data/templates/misc-iso-templates.xml.h:11
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:12
+#: ../templates/misc-iso-templates.xml.h:18
 msgid "CD/DVD Labels (face only)"
 msgstr ""
 
-#: data/templates/misc-us-templates.xml.h:7
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:14
+#, fuzzy
+msgid "Cassette Labels"
+msgstr "標簽"
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:16
 #, fuzzy
 msgid "DLT Labels"
 msgstr "標簽"
 
-#: data/templates/misc-us-templates.xml.h:8
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:18
+msgid "Jewel Case Booklet"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:22
 msgid "Microtube labels"
 msgstr ""
 
-#: data/templates/misc-us-templates.xml.h:9
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:24
 msgid "Mini-CD Labels"
 msgstr ""
 
-#: data/templates/misc-us-templates.xml.h:10
+#: ../templates/misc-us-templates.xml.h:25
 msgid "PRO CD Labels 2-up (CD spine only)"
 msgstr ""
 
-#: data/templates/misc-us-templates.xml.h:11
+#: ../templates/misc-us-templates.xml.h:26
 msgid "PRO CD Labels 2-up (Face only)"
 msgstr ""
 
-#: data/templates/misc-us-templates.xml.h:12
-#: data/templates/misc-iso-templates.xml.h:21
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:28
+#: ../templates/misc-iso-templates.xml.h:42
 msgid "PRO CD Labels 2-up (face only)"
 msgstr ""
 
-#: data/templates/misc-us-templates.xml.h:13
+#. ===================================================================
+#: ../templates/misc-us-templates.xml.h:32
 msgid "Slimline CD Case (rightside up)"
 msgstr ""
 
-#: data/templates/misc-us-templates.xml.h:14
+#: ../templates/misc-us-templates.xml.h:33
 msgid "Slimline CD Case (upside down)"
 msgstr ""
 
-#: data/templates/misc-iso-templates.xml.h:1
-msgid "Agipa 119488: Business Cards"
-msgstr ""
-
-#: data/templates/misc-iso-templates.xml.h:2
-msgid "Allround Labels --24"
-msgstr ""
-
-#: data/templates/misc-iso-templates.xml.h:3
-msgid "Allround Labels --44"
-msgstr ""
-
-#: data/templates/misc-iso-templates.xml.h:4
-msgid "Allround Labels --64"
-msgstr ""
-
-#: data/templates/misc-iso-templates.xml.h:5
-msgid "Allround Labels --65"
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:4
+#: ../templates/zweckform-iso-templates.xml.h:4
+msgid "Allround Labels"
 msgstr ""
 
-#: data/templates/misc-iso-templates.xml.h:6
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:6
 msgid "Arch File Labels"
 msgstr ""
 
-#: data/templates/misc-iso-templates.xml.h:7
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:8
 msgid "Arch File Labels (large)"
 msgstr ""
 
-#: data/templates/misc-iso-templates.xml.h:8
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:10
 msgid "Arch File Labels (small)"
 msgstr ""
 
-#: data/templates/misc-iso-templates.xml.h:12
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:14
+#, fuzzy
+msgid "CD Labels"
+msgstr "標簽"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:20
 msgid "CD/DVD Labels Standard Format (face only)"
 msgstr ""
 
-#: data/templates/misc-iso-templates.xml.h:13
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:22
 msgid "Diskette Labels (face only)"
 msgstr ""
 
-#: data/templates/misc-iso-templates.xml.h:14
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:24
 msgid "EPSON Photo Stickers 16"
 msgstr ""
 
-#: data/templates/misc-iso-templates.xml.h:15
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:26
 msgid "Etiketten"
 msgstr ""
 
-#: data/templates/misc-iso-templates.xml.h:16
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:28
 msgid "Fridge Magnet Stickers"
 msgstr ""
 
-#: data/templates/misc-iso-templates.xml.h:18
-msgid "Mailing Labels --14"
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:30
+#, fuzzy
+msgid "General Labels"
+msgstr "標簽"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:32
+msgid "Inkjet/Laser Labels 70x37mm"
 msgstr ""
 
-#: data/templates/misc-iso-templates.xml.h:19
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:38
 msgid "Mailing Labels-2 columns"
 msgstr ""
 
-#: data/templates/misc-iso-templates.xml.h:20
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:40
 msgid "Mailing Labels-3 columns"
 msgstr ""
 
-#: data/templates/misc-iso-templates.xml.h:23
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:44
+#: ../templates/zweckform-iso-templates.xml.h:24
+msgid "Rectangular Labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:46
+#, fuzzy
+msgid "Universal Labels"
+msgstr "標簽"
+
+#. ===================================================================
+#: ../templates/misc-iso-templates.xml.h:48
 msgid "Video Labels (face only)"
 msgstr ""
 
-#: data/desktop/glabels.desktop.in.h:1
-msgid "Create labels, business cards and media covers."
+#. ===================================================================
+#: ../templates/misc-other-templates.xml.h:2
+#, fuzzy
+msgid "Multi-Purpose Labels"
+msgstr "標簽"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:4
+msgid "Address Labels (STAMPIT)"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:6
+#, fuzzy
+msgid "Bottle labels"
+msgstr "開啟標簽"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:10
+msgid "Business cards glossy, both sides printable"
 msgstr ""
 
-#: data/desktop/glabels.desktop.in.h:2
-msgid "gLabels Label Designer"
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:12
+msgid "Business cards high glossy"
 msgstr ""
 
-#: data/mime/glabels.keys.in.h:1 data/mime/glabels.xml.in.h:1
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:14
+msgid "Business cards punched"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:16
+msgid "Business cards punched dull"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:18
+msgid "Business cards punched glossy"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:22
 #, fuzzy
-msgid "gLabels Project File"
-msgstr "文字樣貌"
+msgid "Floppy disk labels"
+msgstr "開啟標簽"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:24
+msgid "Foldable business cards"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:26
+msgid "Foldable business cards glossy/dull"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:28
+#, fuzzy
+msgid "Labels A4"
+msgstr "標簽"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:30
+#, fuzzy
+msgid "Labels A5"
+msgstr "標簽"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:32
+#, fuzzy
+msgid "Labels A6"
+msgstr "標簽"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:34
+msgid "Membership cards"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:36
+msgid "Membership cards, both sides printable"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:38
+msgid "Name plates"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:40
+msgid "Passport photo labels glossy"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:42
+#, fuzzy
+msgid "Photo labels"
+msgstr "標簽"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:44
+msgid "Photo labels semiglossy"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:48
+#, fuzzy
+msgid "SD card labels"
+msgstr "標簽"
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:50
+msgid "Self-adhesive film transparent"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:52
+msgid "Self-adhesive film weatherproof"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:54
+msgid "Self-adhesive labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/pearl-iso-templates.xml.h:56
+msgid "Self-adhesive window film"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:10
+msgid "Correction and Cover-up Labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:12
+#, fuzzy
+msgid "File Back Labels"
+msgstr "標簽"
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:14
+msgid "Lever Arch File Labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:18
+msgid "Multi-purpose Stick+Lift Labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:20
+msgid "QSL-Karten Etiketten 70mm x 50,8mm"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:22
+msgid "Rectangular Copier Labels"
+msgstr ""
+
+#. ===================================================================
+#: ../templates/zweckform-iso-templates.xml.h:26
+msgid "Video Labels (back)"
+msgstr ""
+
+#~ msgid "print this message"
+#~ msgstr "列印這個訊息"
+
+#~ msgid "print the version of glabels-batch being used"
+#~ msgstr "列印出 glabels-batch 的版本資訊"
+
+#~ msgid "[OPTION...] GLABELS_FILE..."
+#~ msgstr "[選項...] GLABELS_FILE..."
+
+#~ msgid "missing glabels file\n"
+#~ msgstr "沒有輸入 glabels 的檔案\n"
+
+#~ msgid "Media Type"
+#~ msgstr "媒體種類"
+
+#~ msgid "Open"
+#~ msgstr "開啟"
+
+#, fuzzy
+#~ msgid "_Delete"
+#~ msgstr "刪除"
+
+#, fuzzy
+#~ msgid "P_rinter"
+#~ msgstr "列印"
+
+#~ msgid "Print preview"
+#~ msgstr "預覽列印"
+
+#, fuzzy
+#~ msgid "Text file with comma delimeters (CSV)"
+#~ msgstr "以逗號分格 (CSV)"
+
+#, fuzzy
+#~ msgid "Text file with colon delimeters"
+#~ msgstr "以冒號分格"
+
+#, fuzzy
+#~ msgid "Text file with tab delimeters"
+#~ msgstr "以 [TAB] 為分格"
+
+#~ msgid "%s x %s %s"
+#~ msgstr "%s x %s %s"
+
+#~ msgid "%.5g x %.5g %s"
+#~ msgstr "%.5g x %.5g %s"
+
+#, fuzzy
+#~ msgid "magenta"
+#~ msgstr "圖像"
+
+#, fuzzy
+#~ msgid "No paper files found!"
+#~ msgstr "找不到樣版檔案 !"
+
+#, fuzzy
+#~ msgid "Customize"
+#~ msgstr "自訂欄位鑰"
+
+#, fuzzy
+#~ msgid "Font selector"
+#~ msgstr "移除所有選擇項"
+
+#, fuzzy
+#~ msgid "New"
+#~ msgstr "新增 (&_N)"
+
+#, fuzzy
+#~ msgid "Object property editor"
+#~ msgstr "文字樣貌"
+
+#, fuzzy
+#~ msgid "Pr_eferences..."
+#~ msgstr "Glabels: 設定值"
+
+#, fuzzy
+#~ msgid "Properties"
+#~ msgstr "文字樣貌"
+
+#, fuzzy
+#~ msgid "Save"
+#~ msgstr "另存為..."
+
+#~ msgid "Save As"
+#~ msgstr "另存為..."
+
+#, fuzzy
+#~ msgid "Select _All"
+#~ msgstr "反選擇全部 (&_N)"
+
+#, fuzzy
+#~ msgid "U_n-select All"
+#~ msgstr "反選擇全部 (&_N)"
+
+#, fuzzy
+#~ msgid "_Merge Properties..."
+#~ msgstr "合併設定"
 
 #, fuzzy
 #~ msgid "Object _Properties..."
@@ -2551,9 +3473,6 @@ msgstr "文字樣貌"
 #~ msgid "Display units"
 #~ msgstr "顯示單位"
 
-#~ msgid "Default page size"
-#~ msgstr "預設紙張大小"
-
 #~ msgid "Outline"
 #~ msgstr "外邊"
 
@@ -2566,10 +3485,6 @@ msgstr "文字樣貌"
 #~ msgid "Maintain current aspect ratio"
 #~ msgstr "保留現有的大小比例"
 
-#, fuzzy
-#~ msgid "CD Labels"
-#~ msgstr "標簽"
-
 #, fuzzy
 #~ msgid "Open %s"
 #~ msgstr "開啟"
@@ -2610,24 +3525,12 @@ msgstr "文字樣貌"
 #~ msgid "Image format not currently supported"
 #~ msgstr "圖像格式並沒有支援"
 
-#~ msgid "Barcode data"
-#~ msgstr "數碼條資料"
-
-#~ msgid "%"
-#~ msgstr "%"
-
 #~ msgid "Show text with barcode"
 #~ msgstr "顯示數碼條文字"
 
-#~ msgid "Fields"
-#~ msgstr "欄位"
-
 #~ msgid "Column"
 #~ msgstr "列"
 
-#~ msgid "Sample data"
-#~ msgstr "樣本資料"
-
 #~ msgid "Make a new, empty label"
 #~ msgstr "製作新檔, 空的樣簽"
 
index aea24826ab975656550d5304870edb8c9ee9686f..e63f32d983b5f6af4fe703d3a2582235280fef3f 100644 (file)
@@ -1,50 +1,60 @@
-LIB_BARCODE_DIR = ../barcode-0.98
-LIB_IEC16022_DIR = ../iec16022-0.2.1
 
-SUBDIRS= pixmaps stock-pixmaps mygal
+SUBDIRS= \
+       pixmaps \
+       cursors
 
-bin_PROGRAMS = glabels glabels-batch
+bin_PROGRAMS = glabels-3 glabels-3-batch
 
 INCLUDES = \
-       -I$(top_srcdir)                                         \
-       -I$(top_builddir)                                       \
-       -I$(LIB_BARCODE_DIR)                                    \
-       -I$(LIB_IEC16022_DIR)                                   \
+       -I$(top_srcdir)                                         \
+       -I$(top_builddir)                                       \
+       -I$(top_srcdir)/libglabels                              \
+       -I$(top_builddir)/libglabels                            \
+       -I$(top_srcdir)/libglbarcode                            \
+       -I$(top_builddir)/libglbarcode                          \
        $(GLABELS_CFLAGS)                                       \
-       $(HAVE_XML_PARSE_HUGE)                                  \
+       $(LIBEBOOK_CFLAGS)                                      \
+       $(LIBBARCODE_CFLAGS)                                    \
+       $(LIBZINT_CFLAGS)                                       \
+       $(LIBQRENCODE_CFLAGS)                                   \
+       $(LIBIEC16022_CFLAGS)                                   \
        $(DISABLE_DEPRECATED_CFLAGS)                            \
-       -DPREFIX=\""$(prefix)"\"                                \
-       -DSYSCONFDIR=\""$(sysconfdir)"\"                        \
-       -DDATADIR=\""$(datadir)"\"                              \
-       -DLIBDIR=\""$(libdir)"\"                                \
-       -DGLABELS_LOCALEDIR=\""$(datadir)/locale"\"             \
-       -DGLABELS_GLADE_DIR=\""$(datadir)/glabels/glade/"\"     \
-       -DGLABELS_ICON_DIR=\""$(datadir)/pixmaps/"\"    \
-       -DGLABELS_PIXMAP_DIR=\""$(datadir)/pixmaps/glabels/"\"  \
+       -DGLABELS_LOCALE_DIR=\""$(datadir)/locale"\"            \
+       -DGLABELS_DATA_DIR=\""$(datadir)/$(GLABELS_BRANCH)"\"   \
+       -DGLABELS_ICON_NAME=\""$(GLABELS_BRANCH)\""             \
        -DG_LOG_DOMAIN=\""glabels\""
 
-glabels_LDFLAGS = -export-dynamic
+glabels_3_LDFLAGS = -export-dynamic
 
-glabels_LDADD =                                \
+glabels_3_LDADD =                              \
        $(GLABELS_LIBS)                         \
-       ../libglabels/libglabels.la             \
-       mygal/libmygal.la                       \
-       $(LIB_BARCODE_DIR)/libbarcode.la        \
-       $(LIB_IEC16022_DIR)/libiec16022.la
+       ../libglabels/$(LIBGLABELS_BRANCH).la   \
+       ../libglbarcode/$(LIBGLBARCODE_BRANCH).la       \
+       $(LIBEBOOK_LIBS)                        \
+       $(LIBBARCODE_LIBS)                      \
+       $(LIBZINT_LIBS)                         \
+       $(LIBQRENCODE_LIBS)                     \
+       $(LIBIEC16022_LIBS)                     \
+       -lm
 
-glabels_batch_LDFLAGS = -export-dynamic
+glabels_3_batch_LDFLAGS = -export-dynamic
 
-glabels_batch_LDADD =                          \
+glabels_3_batch_LDADD =                        \
        $(GLABELS_LIBS)                         \
-       ../libglabels/libglabels.la             \
-       $(LIB_BARCODE_DIR)/libbarcode.la        \
-       $(LIB_IEC16022_DIR)/libiec16022.la
+       ../libglabels/$(LIBGLABELS_BRANCH).la   \
+       ../libglbarcode/$(LIBGLBARCODE_BRANCH).la       \
+       $(LIBEBOOK_LIBS)                        \
+       $(LIBBARCODE_LIBS)                      \
+       $(LIBZINT_LIBS)                         \
+       $(LIBQRENCODE_LIBS)                     \
+       $(LIBIEC16022_LIBS)                     \
+       -lm
 
 BUILT_SOURCES =                        \
        marshal.c                       \
        marshal.h                       
 
-glabels_SOURCES =                      \
+glabels_3_SOURCES =                    \
        glabels.c                       \
        warning-handler.c               \
        warning-handler.h               \
@@ -52,8 +62,6 @@ glabels_SOURCES =                     \
        critical-error-handler.h        \
        window.c                        \
        window.h                        \
-       stock.c                         \
-       stock.h                         \
        ui.h                            \
        ui.c                            \
        ui-util.h                       \
@@ -66,6 +74,8 @@ glabels_SOURCES =                     \
        ui-sidebar.c                    \
        file.h                          \
        file.c                          \
+       file-util.h                     \
+       file-util.c                     \
        new-label-dialog.h              \
        new-label-dialog.c              \
        recent.h                        \
@@ -76,11 +86,8 @@ glabels_SOURCES =                    \
        prefs-model.h                   \
        prefs-dialog.c                  \
        prefs-dialog.h                  \
-       hig.h                           \
        view.c                          \
        view.h                          \
-       view-object.c                   \
-       view-object.h                   \
        view-box.c                      \
        view-box.h                      \
        view-ellipse.c                  \
@@ -113,16 +120,22 @@ glabels_SOURCES =                         \
        print.h                         \
        print-op.c                      \
        print-op.h                      \
+       print-op-dialog.c               \
+       print-op-dialog.h               \
        template-designer.c             \
        template-designer.h             \
-       bc.c                            \
-       bc.h                            \
+       bc-backends.c                   \
+       bc-backends.h                   \
+       bc-builtin.c                    \
+       bc-builtin.h                    \
        bc-gnubarcode.c                 \
        bc-gnubarcode.h                 \
-       bc-postnet.c                    \
-       bc-postnet.h                    \
+       bc-zint.c                       \
+       bc-zint.h                       \
        bc-iec16022.c                   \
        bc-iec16022.h                   \
+       bc-iec18004.c                   \
+       bc-iec18004.h                   \
        label.c                         \
        label.h                         \
        label-object.c                  \
@@ -139,14 +152,16 @@ glabels_SOURCES =                         \
        label-image.h                   \
        label-barcode.c                 \
        label-barcode.h                 \
+       pixbuf-util.c                   \
+       pixbuf-util.h                   \
        xml-label.c                     \
        xml-label.h                     \
        xml-label-04.c                  \
        xml-label-04.h                  \
        pixbuf-cache.c                  \
        pixbuf-cache.h                  \
-       base64.c                        \
-       base64.h                        \
+       svg-cache.c                     \
+       svg-cache.h                     \
        merge.c                         \
        merge.h                         \
        merge-init.c                    \
@@ -163,26 +178,64 @@ glabels_SOURCES =                         \
        mini-preview-pixbuf.h           \
        mini-preview-pixbuf-cache.c     \
        mini-preview-pixbuf-cache.h     \
-       wdgt-print-copies.c             \
-       wdgt-print-copies.h             \
-       wdgt-print-merge.c              \
-       wdgt-print-merge.h              \
-       wdgt-media-select.c             \
-       wdgt-media-select.h             \
-       wdgt-mini-preview.c             \
-       wdgt-mini-preview.h             \
-       wdgt-rotate-label.c             \
-       wdgt-rotate-label.h             \
+       media-select.c                  \
+       media-select.h                  \
+       message-bar.c                   \
+       message-bar.h                   \
+       template-history.c              \
+       template-history.h              \
+       template-history-model.c        \
+       template-history-model.h        \
+       mini-preview.c                  \
+       mini-preview.h                  \
+       mini-label-preview.c            \
+       mini-label-preview.h            \
        wdgt-chain-button.c             \
        wdgt-chain-button.h             \
+       field-button.c                  \
+       field-button.h                  \
+       field-button-menu.c             \
+       field-button-menu.h             \
+       color-combo.c                   \
+       color-combo.h                   \
+       color-combo-button.c            \
+       color-combo-button.h            \
+       color-combo-menu.c              \
+       color-combo-menu.h              \
+       color-combo-color-menu-item.c   \
+       color-combo-color-menu-item.h   \
+       color-history-model.c           \
+       color-history-model.h           \
+       color-swatch.c                  \
+       color-swatch.h                  \
+       font-combo.c                    \
+       font-combo.h                    \
+       font-combo-menu.c               \
+       font-combo-menu.h               \
+       font-combo-menu-item.c          \
+       font-combo-menu-item.h          \
+       font-sample.c                   \
+       font-sample.h                   \
+       font-util.c                     \
+       font-util.h                     \
+       font-history.c                  \
+       font-history.h                  \
+       font-history-model.c            \
+       font-history-model.h            \
        cairo-label-path.c              \
        cairo-label-path.h              \
        cairo-markup-path.c             \
        cairo-markup-path.h             \
        cairo-ellipse-path.c            \
        cairo-ellipse-path.h            \
-       util.c                          \
-       util.h                          \
+       combo-util.c                    \
+       combo-util.h                    \
+       builder-util.c                  \
+       builder-util.h                  \
+       units-util.c                    \
+       units-util.h                    \
+       str-util.c                      \
+       str-util.h                      \
        color.c                         \
        color.h                         \
        debug.c                         \
@@ -190,20 +243,26 @@ glabels_SOURCES =                         \
        $(BUILT_SOURCES)
 
 
-glabels_batch_SOURCES =                \
+glabels_3_batch_SOURCES =              \
        glabels-batch.c                 \
+       file-util.h                     \
+       file-util.c                     \
        print.c                         \
        print.h                         \
        print-op.c                      \
        print-op.h                      \
-       bc.c                            \
-       bc.h                            \
+       bc-backends.c                   \
+       bc-backends.h                   \
+       bc-builtin.c                    \
+       bc-builtin.h                    \
        bc-gnubarcode.c                 \
        bc-gnubarcode.h                 \
-       bc-postnet.c                    \
-       bc-postnet.h                    \
+       bc-zint.c                       \
+       bc-zint.h                       \
        bc-iec16022.c                   \
        bc-iec16022.h                   \
+       bc-iec18004.c                   \
+       bc-iec18004.h                   \
        label.c                         \
        label.h                         \
        label-object.c                  \
@@ -220,14 +279,16 @@ glabels_batch_SOURCES =           \
        label-image.h                   \
        label-barcode.c                 \
        label-barcode.h                 \
+       pixbuf-util.c                   \
+       pixbuf-util.h                   \
        xml-label.c                     \
        xml-label.h                     \
        xml-label-04.c                  \
        xml-label-04.h                  \
        pixbuf-cache.c                  \
        pixbuf-cache.h                  \
-       base64.c                        \
-       base64.h                        \
+       svg-cache.c                     \
+       svg-cache.h                     \
        merge.c                         \
        merge.h                         \
        merge-init.c                    \
@@ -244,19 +305,22 @@ glabels_batch_SOURCES =           \
        prefs.h                         \
        prefs-model.c                   \
        prefs-model.h                   \
-       util.c                          \
-       util.h                          \
+       font-util.c                     \
+       font-util.h                     \
+       font-history.c                  \
+       font-history.h                  \
+       font-history-model.c            \
+       font-history-model.h            \
+       template-history.c              \
+       template-history.h              \
+       template-history-model.c        \
+       template-history-model.h        \
+       str-util.c                      \
+       str-util.h                      \
        color.c                         \
        color.h                         \
        debug.c                         \
        debug.h                         \
-       wdgt-print-copies.c             \
-       wdgt-print-copies.h             \
-       wdgt-print-merge.c              \
-       wdgt-print-merge.h              \
-       wdgt-mini-preview.c             \
-       wdgt-mini-preview.h             \
-       hig.h                           \
        cairo-label-path.c              \
        cairo-label-path.h              \
        cairo-ellipse-path.c            \
@@ -264,10 +328,10 @@ glabels_batch_SOURCES =           \
        $(BUILT_SOURCES)
 
 marshal.h: marshal.list $(GLIB_GENMARSHAL)
-       $(GLIB_GENMARSHAL) $< --header --prefix=gl_marshal > $@
+       $(AM_V_GEN) $(GLIB_GENMARSHAL) $< --header --prefix=gl_marshal > $@
 
 marshal.c: marshal.list $(GLIB_GENMARSHAL)
-       echo "#include \"marshal.h\"" > $@ && \
+       $(AM_V_GEN) echo "#include \"marshal.h\"" > $@ && \
        $(GLIB_GENMARSHAL) $< --body --prefix=gl_marshal >> $@
 
 EXTRA_DIST = \
@@ -275,16 +339,11 @@ EXTRA_DIST = \
 
 CLEANFILES = $(BUILT_SOURCES)
 
-$(bin_PROGRAMS): $(LIB_BARCODE_DIR)/libbarcode.la \
-                $(LIB_IEC16022_DIR)/libiec16022.la \
-                ../libglabels/libglabels.la
+$(bin_PROGRAMS): ../libglabels/$(LIBGLABELS_BRANCH).la ../libglbarcode/$(LIBGLBARCODE_BRANCH).la
 
-$(LIB_BARCODE_DIR)/libbarcode.la:
-       cd $(LIB_BARCODE_DIR); $(MAKE)
-
-$(LIB_IEC16022_DIR)/libiec16022.la:
-       cd $(LIB_IEC16022_DIR); $(MAKE)
-
-../libglabels/libglabels.la:
+../libglabels/$(LIBGLABELS_BRANCH).la:
        cd ../libglabels; $(MAKE)
 
+../libglbarcode/$(LIBGLBARCODE_BRANCH).la:
+       cd ../libglbarcode; $(MAKE)
+
index 90f0642839fc4796091a93515501d1330d505c2b..34125438784c9d1b2eacd5bee2d22c58b0fb502d 100644 (file)
@@ -34,11 +34,11 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-bin_PROGRAMS = glabels$(EXEEXT) glabels-batch$(EXEEXT)
+bin_PROGRAMS = glabels-3$(EXEEXT) glabels-3-batch$(EXEEXT)
 subdir = src
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -48,14 +48,14 @@ CONFIG_CLEAN_VPATH_FILES =
 am__installdirs = "$(DESTDIR)$(bindir)"
 PROGRAMS = $(bin_PROGRAMS)
 am__objects_1 = marshal.$(OBJEXT)
-am_glabels_OBJECTS = glabels.$(OBJEXT) warning-handler.$(OBJEXT) \
-       critical-error-handler.$(OBJEXT) window.$(OBJEXT) \
-       stock.$(OBJEXT) ui.$(OBJEXT) ui-util.$(OBJEXT) \
-       ui-commands.$(OBJEXT) ui-property-bar.$(OBJEXT) \
-       ui-sidebar.$(OBJEXT) file.$(OBJEXT) new-label-dialog.$(OBJEXT) \
+am_glabels_3_OBJECTS = glabels.$(OBJEXT) warning-handler.$(OBJEXT) \
+       critical-error-handler.$(OBJEXT) window.$(OBJEXT) ui.$(OBJEXT) \
+       ui-util.$(OBJEXT) ui-commands.$(OBJEXT) \
+       ui-property-bar.$(OBJEXT) ui-sidebar.$(OBJEXT) file.$(OBJEXT) \
+       file-util.$(OBJEXT) new-label-dialog.$(OBJEXT) \
        recent.$(OBJEXT) prefs.$(OBJEXT) prefs-model.$(OBJEXT) \
-       prefs-dialog.$(OBJEXT) view.$(OBJEXT) view-object.$(OBJEXT) \
-       view-box.$(OBJEXT) view-ellipse.$(OBJEXT) view-line.$(OBJEXT) \
+       prefs-dialog.$(OBJEXT) view.$(OBJEXT) view-box.$(OBJEXT) \
+       view-ellipse.$(OBJEXT) view-line.$(OBJEXT) \
        view-image.$(OBJEXT) view-text.$(OBJEXT) \
        view-barcode.$(OBJEXT) merge-properties-dialog.$(OBJEXT) \
        object-editor.$(OBJEXT) object-editor-position-page.$(OBJEXT) \
@@ -69,69 +69,108 @@ am_glabels_OBJECTS = glabels.$(OBJEXT) warning-handler.$(OBJEXT) \
        object-editor-bc-page.$(OBJEXT) \
        object-editor-data-page.$(OBJEXT) \
        object-editor-shadow-page.$(OBJEXT) print.$(OBJEXT) \
-       print-op.$(OBJEXT) template-designer.$(OBJEXT) bc.$(OBJEXT) \
-       bc-gnubarcode.$(OBJEXT) bc-postnet.$(OBJEXT) \
-       bc-iec16022.$(OBJEXT) label.$(OBJEXT) label-object.$(OBJEXT) \
-       label-text.$(OBJEXT) label-box.$(OBJEXT) label-line.$(OBJEXT) \
+       print-op.$(OBJEXT) print-op-dialog.$(OBJEXT) \
+       template-designer.$(OBJEXT) bc-backends.$(OBJEXT) \
+       bc-builtin.$(OBJEXT) bc-gnubarcode.$(OBJEXT) bc-zint.$(OBJEXT) \
+       bc-iec16022.$(OBJEXT) bc-iec18004.$(OBJEXT) label.$(OBJEXT) \
+       label-object.$(OBJEXT) label-text.$(OBJEXT) \
+       label-box.$(OBJEXT) label-line.$(OBJEXT) \
        label-ellipse.$(OBJEXT) label-image.$(OBJEXT) \
-       label-barcode.$(OBJEXT) xml-label.$(OBJEXT) \
-       xml-label-04.$(OBJEXT) pixbuf-cache.$(OBJEXT) base64.$(OBJEXT) \
-       merge.$(OBJEXT) merge-init.$(OBJEXT) merge-text.$(OBJEXT) \
+       label-barcode.$(OBJEXT) pixbuf-util.$(OBJEXT) \
+       xml-label.$(OBJEXT) xml-label-04.$(OBJEXT) \
+       pixbuf-cache.$(OBJEXT) svg-cache.$(OBJEXT) merge.$(OBJEXT) \
+       merge-init.$(OBJEXT) merge-text.$(OBJEXT) \
        merge-evolution.$(OBJEXT) merge-vcard.$(OBJEXT) \
        text-node.$(OBJEXT) mini-preview-pixbuf.$(OBJEXT) \
-       mini-preview-pixbuf-cache.$(OBJEXT) \
-       wdgt-print-copies.$(OBJEXT) wdgt-print-merge.$(OBJEXT) \
-       wdgt-media-select.$(OBJEXT) wdgt-mini-preview.$(OBJEXT) \
-       wdgt-rotate-label.$(OBJEXT) wdgt-chain-button.$(OBJEXT) \
-       cairo-label-path.$(OBJEXT) cairo-markup-path.$(OBJEXT) \
-       cairo-ellipse-path.$(OBJEXT) util.$(OBJEXT) color.$(OBJEXT) \
+       mini-preview-pixbuf-cache.$(OBJEXT) media-select.$(OBJEXT) \
+       message-bar.$(OBJEXT) template-history.$(OBJEXT) \
+       template-history-model.$(OBJEXT) mini-preview.$(OBJEXT) \
+       mini-label-preview.$(OBJEXT) wdgt-chain-button.$(OBJEXT) \
+       field-button.$(OBJEXT) field-button-menu.$(OBJEXT) \
+       color-combo.$(OBJEXT) color-combo-button.$(OBJEXT) \
+       color-combo-menu.$(OBJEXT) \
+       color-combo-color-menu-item.$(OBJEXT) \
+       color-history-model.$(OBJEXT) color-swatch.$(OBJEXT) \
+       font-combo.$(OBJEXT) font-combo-menu.$(OBJEXT) \
+       font-combo-menu-item.$(OBJEXT) font-sample.$(OBJEXT) \
+       font-util.$(OBJEXT) font-history.$(OBJEXT) \
+       font-history-model.$(OBJEXT) cairo-label-path.$(OBJEXT) \
+       cairo-markup-path.$(OBJEXT) cairo-ellipse-path.$(OBJEXT) \
+       combo-util.$(OBJEXT) builder-util.$(OBJEXT) \
+       units-util.$(OBJEXT) str-util.$(OBJEXT) color.$(OBJEXT) \
        debug.$(OBJEXT) $(am__objects_1)
-glabels_OBJECTS = $(am_glabels_OBJECTS)
+glabels_3_OBJECTS = $(am_glabels_3_OBJECTS)
 am__DEPENDENCIES_1 =
-glabels_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-       ../libglabels/libglabels.la mygal/libmygal.la \
-       $(LIB_BARCODE_DIR)/libbarcode.la \
-       $(LIB_IEC16022_DIR)/libiec16022.la
-glabels_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-       --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(glabels_LDFLAGS) \
-       $(LDFLAGS) -o $@
-am_glabels_batch_OBJECTS = glabels-batch.$(OBJEXT) print.$(OBJEXT) \
-       print-op.$(OBJEXT) bc.$(OBJEXT) bc-gnubarcode.$(OBJEXT) \
-       bc-postnet.$(OBJEXT) bc-iec16022.$(OBJEXT) label.$(OBJEXT) \
+glabels_3_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+       ../libglabels/$(LIBGLABELS_BRANCH).la \
+       ../libglbarcode/$(LIBGLBARCODE_BRANCH).la \
+       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+       $(am__DEPENDENCIES_1)
+AM_V_lt = $(am__v_lt_$(V))
+am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+am__v_lt_0 = --silent
+glabels_3_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(glabels_3_LDFLAGS) $(LDFLAGS) -o $@
+am_glabels_3_batch_OBJECTS = glabels-batch.$(OBJEXT) \
+       file-util.$(OBJEXT) print.$(OBJEXT) print-op.$(OBJEXT) \
+       bc-backends.$(OBJEXT) bc-builtin.$(OBJEXT) \
+       bc-gnubarcode.$(OBJEXT) bc-zint.$(OBJEXT) \
+       bc-iec16022.$(OBJEXT) bc-iec18004.$(OBJEXT) label.$(OBJEXT) \
        label-object.$(OBJEXT) label-text.$(OBJEXT) \
        label-box.$(OBJEXT) label-line.$(OBJEXT) \
        label-ellipse.$(OBJEXT) label-image.$(OBJEXT) \
-       label-barcode.$(OBJEXT) xml-label.$(OBJEXT) \
-       xml-label-04.$(OBJEXT) pixbuf-cache.$(OBJEXT) base64.$(OBJEXT) \
-       merge.$(OBJEXT) merge-init.$(OBJEXT) merge-text.$(OBJEXT) \
+       label-barcode.$(OBJEXT) pixbuf-util.$(OBJEXT) \
+       xml-label.$(OBJEXT) xml-label-04.$(OBJEXT) \
+       pixbuf-cache.$(OBJEXT) svg-cache.$(OBJEXT) merge.$(OBJEXT) \
+       merge-init.$(OBJEXT) merge-text.$(OBJEXT) \
        merge-evolution.$(OBJEXT) merge-vcard.$(OBJEXT) \
        text-node.$(OBJEXT) prefs.$(OBJEXT) prefs-model.$(OBJEXT) \
-       util.$(OBJEXT) color.$(OBJEXT) debug.$(OBJEXT) \
-       wdgt-print-copies.$(OBJEXT) wdgt-print-merge.$(OBJEXT) \
-       wdgt-mini-preview.$(OBJEXT) cairo-label-path.$(OBJEXT) \
+       font-util.$(OBJEXT) font-history.$(OBJEXT) \
+       font-history-model.$(OBJEXT) template-history.$(OBJEXT) \
+       template-history-model.$(OBJEXT) str-util.$(OBJEXT) \
+       color.$(OBJEXT) debug.$(OBJEXT) cairo-label-path.$(OBJEXT) \
        cairo-ellipse-path.$(OBJEXT) $(am__objects_1)
-glabels_batch_OBJECTS = $(am_glabels_batch_OBJECTS)
-glabels_batch_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-       ../libglabels/libglabels.la $(LIB_BARCODE_DIR)/libbarcode.la \
-       $(LIB_IEC16022_DIR)/libiec16022.la
-glabels_batch_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-       $(glabels_batch_LDFLAGS) $(LDFLAGS) -o $@
+glabels_3_batch_OBJECTS = $(am_glabels_3_batch_OBJECTS)
+glabels_3_batch_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+       ../libglabels/$(LIBGLABELS_BRANCH).la \
+       ../libglbarcode/$(LIBGLBARCODE_BRANCH).la \
+       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+       $(am__DEPENDENCIES_1)
+glabels_3_batch_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+       $(AM_CFLAGS) $(CFLAGS) $(glabels_3_batch_LDFLAGS) $(LDFLAGS) \
+       -o $@
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-       --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-       $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+       $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_$(V))
+am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+am__v_CC_0 = @echo "  CC    " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
 CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-       --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-       $(LDFLAGS) -o $@
-SOURCES = $(glabels_SOURCES) $(glabels_batch_SOURCES)
-DIST_SOURCES = $(glabels_SOURCES) $(glabels_batch_SOURCES)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_$(V))
+am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CCLD_0 = @echo "  CCLD  " $@;
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+SOURCES = $(glabels_3_SOURCES) $(glabels_3_batch_SOURCES)
+DIST_SOURCES = $(glabels_3_SOURCES) $(glabels_3_batch_SOURCES)
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
        html-recursive info-recursive install-data-recursive \
        install-dvi-recursive install-exec-recursive \
@@ -176,11 +215,13 @@ am__relativize = \
 ACLOCAL = @ACLOCAL@
 ALL_LINGUAS = @ALL_LINGUAS@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
+CAIRO_REQUIRED = @CAIRO_REQUIRED@
 CATALOGS = @CATALOGS@
 CATOBJEXT = @CATOBJEXT@
 CC = @CC@
@@ -194,6 +235,7 @@ DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
 DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DLLTOOL = @DLLTOOL@
 DOC_USER_FORMATS = @DOC_USER_FORMATS@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
@@ -203,17 +245,23 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
+GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLABELS_BRANCH = @GLABELS_BRANCH@
 GLABELS_CFLAGS = @GLABELS_CFLAGS@
 GLABELS_LIBS = @GLABELS_LIBS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GLIB_REQUIRED = @GLIB_REQUIRED@
 GMOFILES = @GMOFILES@
 GMSGFMT = @GMSGFMT@
 GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
 GTK_REQUIRED = @GTK_REQUIRED@
-HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@
+GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@
 HELP_DIR = @HELP_DIR@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -229,31 +277,45 @@ INTLTOOL_PERL = @INTLTOOL_PERL@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
+LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@
+LIBBARCODE_LIBS = @LIBBARCODE_LIBS@
+LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@
 LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
 LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
 LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
+LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@
+LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@
 LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
 LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
-LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@
-LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@
-LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@
-LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@
+LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@
+LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@
+LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@
+LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@
+LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@
+LIBIEC16022_LIBS = @LIBIEC16022_LIBS@
+LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@
 LIBOBJS = @LIBOBJS@
+LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@
+LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@
+LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@
+LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBXML_REQUIRED = @LIBXML_REQUIRED@
+LIBZINT_CFLAGS = @LIBZINT_CFLAGS@
+LIBZINT_LIBS = @LIBZINT_LIBS@
+LIBZINT_REQUIRED = @LIBZINT_REQUIRED@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MKINSTALLDIRS = @MKINSTALLDIRS@
 MSGFMT = @MSGFMT@
 MSGFMT_OPTS = @MSGFMT_OPTS@
 MSGMERGE = @MSGMERGE@
-MYGAL_CFLAGS = @MYGAL_CFLAGS@
-MYGAL_LIBS = @MYGAL_LIBS@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -266,9 +328,13 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_REQUIRED = @PANGO_REQUIRED@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 POFILES = @POFILES@
 POSUB = @POSUB@
 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -278,18 +344,15 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
-UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@
-UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
 WARN_CFLAGS = @WARN_CFLAGS@
 XGETTEXT = @XGETTEXT@
-XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@
-XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 am__include = @am__include@
@@ -309,6 +372,7 @@ datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
 exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
 host = @host@
 host_alias = @host_alias@
 host_cpu = @host_cpu@
@@ -322,7 +386,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -338,47 +401,58 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-LIB_BARCODE_DIR = ../barcode-0.98
-LIB_IEC16022_DIR = ../iec16022-0.2.1
-SUBDIRS = pixmaps stock-pixmaps mygal
+SUBDIRS = \
+       pixmaps \
+       cursors
+
 INCLUDES = \
-       -I$(top_srcdir)                                         \
-       -I$(top_builddir)                                       \
-       -I$(LIB_BARCODE_DIR)                                    \
-       -I$(LIB_IEC16022_DIR)                                   \
+       -I$(top_srcdir)                                         \
+       -I$(top_builddir)                                       \
+       -I$(top_srcdir)/libglabels                              \
+       -I$(top_builddir)/libglabels                            \
+       -I$(top_srcdir)/libglbarcode                            \
+       -I$(top_builddir)/libglbarcode                          \
        $(GLABELS_CFLAGS)                                       \
-       $(HAVE_XML_PARSE_HUGE)                                  \
+       $(LIBEBOOK_CFLAGS)                                      \
+       $(LIBBARCODE_CFLAGS)                                    \
+       $(LIBZINT_CFLAGS)                                       \
+       $(LIBQRENCODE_CFLAGS)                                   \
+       $(LIBIEC16022_CFLAGS)                                   \
        $(DISABLE_DEPRECATED_CFLAGS)                            \
-       -DPREFIX=\""$(prefix)"\"                                \
-       -DSYSCONFDIR=\""$(sysconfdir)"\"                        \
-       -DDATADIR=\""$(datadir)"\"                              \
-       -DLIBDIR=\""$(libdir)"\"                                \
-       -DGLABELS_LOCALEDIR=\""$(datadir)/locale"\"             \
-       -DGLABELS_GLADE_DIR=\""$(datadir)/glabels/glade/"\"     \
-       -DGLABELS_ICON_DIR=\""$(datadir)/pixmaps/"\"    \
-       -DGLABELS_PIXMAP_DIR=\""$(datadir)/pixmaps/glabels/"\"  \
+       -DGLABELS_LOCALE_DIR=\""$(datadir)/locale"\"            \
+       -DGLABELS_DATA_DIR=\""$(datadir)/$(GLABELS_BRANCH)"\"   \
+       -DGLABELS_ICON_NAME=\""$(GLABELS_BRANCH)\""             \
        -DG_LOG_DOMAIN=\""glabels\""
 
-glabels_LDFLAGS = -export-dynamic
-glabels_LDADD = \
+glabels_3_LDFLAGS = -export-dynamic
+glabels_3_LDADD = \
        $(GLABELS_LIBS)                         \
-       ../libglabels/libglabels.la             \
-       mygal/libmygal.la                       \
-       $(LIB_BARCODE_DIR)/libbarcode.la        \
-       $(LIB_IEC16022_DIR)/libiec16022.la
-
-glabels_batch_LDFLAGS = -export-dynamic
-glabels_batch_LDADD = \
+       ../libglabels/$(LIBGLABELS_BRANCH).la   \
+       ../libglbarcode/$(LIBGLBARCODE_BRANCH).la       \
+       $(LIBEBOOK_LIBS)                        \
+       $(LIBBARCODE_LIBS)                      \
+       $(LIBZINT_LIBS)                         \
+       $(LIBQRENCODE_LIBS)                     \
+       $(LIBIEC16022_LIBS)                     \
+       -lm
+
+glabels_3_batch_LDFLAGS = -export-dynamic
+glabels_3_batch_LDADD = \
        $(GLABELS_LIBS)                         \
-       ../libglabels/libglabels.la             \
-       $(LIB_BARCODE_DIR)/libbarcode.la        \
-       $(LIB_IEC16022_DIR)/libiec16022.la
+       ../libglabels/$(LIBGLABELS_BRANCH).la   \
+       ../libglbarcode/$(LIBGLBARCODE_BRANCH).la       \
+       $(LIBEBOOK_LIBS)                        \
+       $(LIBBARCODE_LIBS)                      \
+       $(LIBZINT_LIBS)                         \
+       $(LIBQRENCODE_LIBS)                     \
+       $(LIBIEC16022_LIBS)                     \
+       -lm
 
 BUILT_SOURCES = \
        marshal.c                       \
        marshal.h                       
 
-glabels_SOURCES = \
+glabels_3_SOURCES = \
        glabels.c                       \
        warning-handler.c               \
        warning-handler.h               \
@@ -386,8 +460,6 @@ glabels_SOURCES = \
        critical-error-handler.h        \
        window.c                        \
        window.h                        \
-       stock.c                         \
-       stock.h                         \
        ui.h                            \
        ui.c                            \
        ui-util.h                       \
@@ -400,6 +472,8 @@ glabels_SOURCES = \
        ui-sidebar.c                    \
        file.h                          \
        file.c                          \
+       file-util.h                     \
+       file-util.c                     \
        new-label-dialog.h              \
        new-label-dialog.c              \
        recent.h                        \
@@ -410,11 +484,8 @@ glabels_SOURCES = \
        prefs-model.h                   \
        prefs-dialog.c                  \
        prefs-dialog.h                  \
-       hig.h                           \
        view.c                          \
        view.h                          \
-       view-object.c                   \
-       view-object.h                   \
        view-box.c                      \
        view-box.h                      \
        view-ellipse.c                  \
@@ -447,16 +518,22 @@ glabels_SOURCES = \
        print.h                         \
        print-op.c                      \
        print-op.h                      \
+       print-op-dialog.c               \
+       print-op-dialog.h               \
        template-designer.c             \
        template-designer.h             \
-       bc.c                            \
-       bc.h                            \
+       bc-backends.c                   \
+       bc-backends.h                   \
+       bc-builtin.c                    \
+       bc-builtin.h                    \
        bc-gnubarcode.c                 \
        bc-gnubarcode.h                 \
-       bc-postnet.c                    \
-       bc-postnet.h                    \
+       bc-zint.c                       \
+       bc-zint.h                       \
        bc-iec16022.c                   \
        bc-iec16022.h                   \
+       bc-iec18004.c                   \
+       bc-iec18004.h                   \
        label.c                         \
        label.h                         \
        label-object.c                  \
@@ -473,14 +550,16 @@ glabels_SOURCES = \
        label-image.h                   \
        label-barcode.c                 \
        label-barcode.h                 \
+       pixbuf-util.c                   \
+       pixbuf-util.h                   \
        xml-label.c                     \
        xml-label.h                     \
        xml-label-04.c                  \
        xml-label-04.h                  \
        pixbuf-cache.c                  \
        pixbuf-cache.h                  \
-       base64.c                        \
-       base64.h                        \
+       svg-cache.c                     \
+       svg-cache.h                     \
        merge.c                         \
        merge.h                         \
        merge-init.c                    \
@@ -497,46 +576,90 @@ glabels_SOURCES = \
        mini-preview-pixbuf.h           \
        mini-preview-pixbuf-cache.c     \
        mini-preview-pixbuf-cache.h     \
-       wdgt-print-copies.c             \
-       wdgt-print-copies.h             \
-       wdgt-print-merge.c              \
-       wdgt-print-merge.h              \
-       wdgt-media-select.c             \
-       wdgt-media-select.h             \
-       wdgt-mini-preview.c             \
-       wdgt-mini-preview.h             \
-       wdgt-rotate-label.c             \
-       wdgt-rotate-label.h             \
+       media-select.c                  \
+       media-select.h                  \
+       message-bar.c                   \
+       message-bar.h                   \
+       template-history.c              \
+       template-history.h              \
+       template-history-model.c        \
+       template-history-model.h        \
+       mini-preview.c                  \
+       mini-preview.h                  \
+       mini-label-preview.c            \
+       mini-label-preview.h            \
        wdgt-chain-button.c             \
        wdgt-chain-button.h             \
+       field-button.c                  \
+       field-button.h                  \
+       field-button-menu.c             \
+       field-button-menu.h             \
+       color-combo.c                   \
+       color-combo.h                   \
+       color-combo-button.c            \
+       color-combo-button.h            \
+       color-combo-menu.c              \
+       color-combo-menu.h              \
+       color-combo-color-menu-item.c   \
+       color-combo-color-menu-item.h   \
+       color-history-model.c           \
+       color-history-model.h           \
+       color-swatch.c                  \
+       color-swatch.h                  \
+       font-combo.c                    \
+       font-combo.h                    \
+       font-combo-menu.c               \
+       font-combo-menu.h               \
+       font-combo-menu-item.c          \
+       font-combo-menu-item.h          \
+       font-sample.c                   \
+       font-sample.h                   \
+       font-util.c                     \
+       font-util.h                     \
+       font-history.c                  \
+       font-history.h                  \
+       font-history-model.c            \
+       font-history-model.h            \
        cairo-label-path.c              \
        cairo-label-path.h              \
        cairo-markup-path.c             \
        cairo-markup-path.h             \
        cairo-ellipse-path.c            \
        cairo-ellipse-path.h            \
-       util.c                          \
-       util.h                          \
+       combo-util.c                    \
+       combo-util.h                    \
+       builder-util.c                  \
+       builder-util.h                  \
+       units-util.c                    \
+       units-util.h                    \
+       str-util.c                      \
+       str-util.h                      \
        color.c                         \
        color.h                         \
        debug.c                         \
        debug.h                         \
        $(BUILT_SOURCES)
 
-glabels_batch_SOURCES = \
+glabels_3_batch_SOURCES = \
        glabels-batch.c                 \
+       file-util.h                     \
+       file-util.c                     \
        print.c                         \
        print.h                         \
        print-op.c                      \
        print-op.h                      \
-       bc.c                            \
-       bc.h                            \
+       bc-backends.c                   \
+       bc-backends.h                   \
+       bc-builtin.c                    \
+       bc-builtin.h                    \
        bc-gnubarcode.c                 \
        bc-gnubarcode.h                 \
-       bc-postnet.c                    \
-       bc-postnet.h                    \
+       bc-zint.c                       \
+       bc-zint.h                       \
        bc-iec16022.c                   \
        bc-iec16022.h                   \
+       bc-iec18004.c                   \
+       bc-iec18004.h                   \
        label.c                         \
        label.h                         \
        label-object.c                  \
@@ -553,14 +676,16 @@ glabels_batch_SOURCES = \
        label-image.h                   \
        label-barcode.c                 \
        label-barcode.h                 \
+       pixbuf-util.c                   \
+       pixbuf-util.h                   \
        xml-label.c                     \
        xml-label.h                     \
        xml-label-04.c                  \
        xml-label-04.h                  \
        pixbuf-cache.c                  \
        pixbuf-cache.h                  \
-       base64.c                        \
-       base64.h                        \
+       svg-cache.c                     \
+       svg-cache.h                     \
        merge.c                         \
        merge.h                         \
        merge-init.c                    \
@@ -577,19 +702,22 @@ glabels_batch_SOURCES = \
        prefs.h                         \
        prefs-model.c                   \
        prefs-model.h                   \
-       util.c                          \
-       util.h                          \
+       font-util.c                     \
+       font-util.h                     \
+       font-history.c                  \
+       font-history.h                  \
+       font-history-model.c            \
+       font-history-model.h            \
+       template-history.c              \
+       template-history.h              \
+       template-history-model.c        \
+       template-history-model.h        \
+       str-util.c                      \
+       str-util.h                      \
        color.c                         \
        color.h                         \
        debug.c                         \
        debug.h                         \
-       wdgt-print-copies.c             \
-       wdgt-print-copies.h             \
-       wdgt-print-merge.c              \
-       wdgt-print-merge.h              \
-       wdgt-mini-preview.c             \
-       wdgt-mini-preview.h             \
-       hig.h                           \
        cairo-label-path.c              \
        cairo-label-path.h              \
        cairo-ellipse-path.c            \
@@ -678,12 +806,12 @@ clean-binPROGRAMS:
        list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
        echo " rm -f" $$list; \
        rm -f $$list
-glabels$(EXEEXT): $(glabels_OBJECTS) $(glabels_DEPENDENCIES) 
-       @rm -f glabels$(EXEEXT)
-       $(glabels_LINK) $(glabels_OBJECTS) $(glabels_LDADD) $(LIBS)
-glabels-batch$(EXEEXT): $(glabels_batch_OBJECTS) $(glabels_batch_DEPENDENCIES) 
-       @rm -f glabels-batch$(EXEEXT)
-       $(glabels_batch_LINK) $(glabels_batch_OBJECTS) $(glabels_batch_LDADD) $(LIBS)
+glabels-3$(EXEEXT): $(glabels_3_OBJECTS) $(glabels_3_DEPENDENCIES) 
+       @rm -f glabels-3$(EXEEXT)
+       $(AM_V_CCLD)$(glabels_3_LINK) $(glabels_3_OBJECTS) $(glabels_3_LDADD) $(LIBS)
+glabels-3-batch$(EXEEXT): $(glabels_3_batch_OBJECTS) $(glabels_3_batch_DEPENDENCIES) 
+       @rm -f glabels-3-batch$(EXEEXT)
+       $(AM_V_CCLD)$(glabels_3_batch_LINK) $(glabels_3_batch_OBJECTS) $(glabels_3_batch_LDADD) $(LIBS)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -691,18 +819,37 @@ mostlyclean-compile:
 distclean-compile:
        -rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base64.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bc-backends.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bc-builtin.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bc-gnubarcode.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bc-iec16022.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bc-postnet.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bc-iec18004.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bc-zint.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/builder-util.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-ellipse-path.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-label-path.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-markup-path.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/color-combo-button.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/color-combo-color-menu-item.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/color-combo-menu.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/color-combo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/color-history-model.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/color-swatch.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/color.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/combo-util.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/critical-error-handler.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debug.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/field-button-menu.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/field-button.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file-util.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/font-combo-menu-item.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/font-combo-menu.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/font-combo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/font-history-model.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/font-history.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/font-sample.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/font-util.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glabels-batch.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glabels.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/label-barcode.Po@am__quote@
@@ -714,14 +861,18 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/label-text.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/label.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/marshal.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/media-select.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/merge-evolution.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/merge-init.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/merge-properties-dialog.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/merge-text.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/merge-vcard.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/merge.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/message-bar.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mini-label-preview.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mini-preview-pixbuf-cache.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mini-preview-pixbuf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mini-preview.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/new-label-dialog.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/object-editor-bc-page.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/object-editor-data-page.Po@am__quote@
@@ -736,57 +887,59 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/object-editor-text-page.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/object-editor.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pixbuf-cache.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pixbuf-util.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prefs-dialog.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prefs-model.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prefs.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print-op-dialog.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print-op.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/recent.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stock.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/str-util.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/svg-cache.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/template-designer.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/template-history-model.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/template-history.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/text-node.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-commands.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-property-bar.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-sidebar.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui-util.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/units-util.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/view-barcode.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/view-box.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/view-ellipse.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/view-image.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/view-line.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/view-object.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/view-text.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/view.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/warning-handler.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wdgt-chain-button.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wdgt-media-select.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wdgt-mini-preview.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wdgt-print-copies.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wdgt-print-merge.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wdgt-rotate-label.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/window.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml-label-04.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml-label.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c $<
 
 .c.obj:
-@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@   $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
@@ -1119,25 +1272,20 @@ uninstall-am: uninstall-binPROGRAMS
 
 
 marshal.h: marshal.list $(GLIB_GENMARSHAL)
-       $(GLIB_GENMARSHAL) $< --header --prefix=gl_marshal > $@
+       $(AM_V_GEN) $(GLIB_GENMARSHAL) $< --header --prefix=gl_marshal > $@
 
 marshal.c: marshal.list $(GLIB_GENMARSHAL)
-       echo "#include \"marshal.h\"" > $@ && \
+       $(AM_V_GEN) echo "#include \"marshal.h\"" > $@ && \
        $(GLIB_GENMARSHAL) $< --body --prefix=gl_marshal >> $@
 
-$(bin_PROGRAMS): $(LIB_BARCODE_DIR)/libbarcode.la \
-                $(LIB_IEC16022_DIR)/libiec16022.la \
-                ../libglabels/libglabels.la
-
-$(LIB_BARCODE_DIR)/libbarcode.la:
-       cd $(LIB_BARCODE_DIR); $(MAKE)
+$(bin_PROGRAMS): ../libglabels/$(LIBGLABELS_BRANCH).la ../libglbarcode/$(LIBGLBARCODE_BRANCH).la
 
-$(LIB_IEC16022_DIR)/libiec16022.la:
-       cd $(LIB_IEC16022_DIR); $(MAKE)
-
-../libglabels/libglabels.la:
+../libglabels/$(LIBGLABELS_BRANCH).la:
        cd ../libglabels; $(MAKE)
 
+../libglbarcode/$(LIBGLBARCODE_BRANCH).la:
+       cd ../libglbarcode; $(MAKE)
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/src/base64.c b/src/base64.c
deleted file mode 100644 (file)
index b3de985..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  base64.c:  GLabels base64 encode/decode module
- *
- *  Copyright (C)  2003  Jim Evins <evins@snaught.com>
- *
- *  This module is based on base64.c from fetchmail:
- *
- *  Copyright (C)2002 by Eric S. Raymond.
- *  Portions are copyrighted by Carl E. Harris and George M. Sipe.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-
-/*
- * This base 64 encoding is defined in RFC2045 section 6.8.
- */
-#include <config.h>
-
-#include "base64.h"
-
-#include <glib/gmem.h>
-#include <ctype.h>
-#include <string.h>
-
-/*========================================================*/
-/* Private macros and constants.                          */
-/*========================================================*/
-
-#define LINE_LENGTH 76 /* Must be <= 76 and must be a multiple of 4 */
-#define BAD    -1
-
-#define DECODE64(c)  (isascii(c) ? base64val[c] : BAD)
-
-/*========================================================*/
-/* Private types.                                         */
-/*========================================================*/
-
-/*========================================================*/
-/* Private globals.                                       */
-/*========================================================*/
-
-static const gchar base64digits[] =
-   "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
-static const gchar base64val[] = {
-    BAD,BAD,BAD,BAD, BAD,BAD,BAD,BAD, BAD,BAD,BAD,BAD, BAD,BAD,BAD,BAD,
-    BAD,BAD,BAD,BAD, BAD,BAD,BAD,BAD, BAD,BAD,BAD,BAD, BAD,BAD,BAD,BAD,
-    BAD,BAD,BAD,BAD, BAD,BAD,BAD,BAD, BAD,BAD,BAD, 62, BAD,BAD,BAD, 63,
-     52, 53, 54, 55,  56, 57, 58, 59,  60, 61,BAD,BAD, BAD,BAD,BAD,BAD,
-    BAD,  0,  1,  2,   3,  4,  5,  6,   7,  8,  9, 10,  11, 12, 13, 14,
-     15, 16, 17, 18,  19, 20, 21, 22,  23, 24, 25,BAD, BAD,BAD,BAD,BAD,
-    BAD, 26, 27, 28,  29, 30, 31, 32,  33, 34, 35, 36,  37, 38, 39, 40,
-     41, 42, 43, 44,  45, 46, 47, 48,  49, 50, 51,BAD, BAD,BAD,BAD,BAD
-};
-
-/*========================================================*/
-/* Private function prototypes.                           */
-/*========================================================*/
-
-\f
-/*****************************************************************************/
-/* Encode to Base64 string.                                                  */
-/*****************************************************************************/
-gchar *
-gl_base64_encode (const guchar *in, guint inlen)
-{
-       gchar *out, *p_out;
-       gint   buf_size;
-       gint   i;
-
-        /* Calculate output buffer size */
-       buf_size  = 4*((inlen+2)/3);            /* Encoded characters */
-       buf_size += buf_size / LINE_LENGTH + 2; /* Line breaks */
-       buf_size += 1;                          /* null termination */
-       
-       /* Allocate output buffer */
-       out = g_new0 (gchar, buf_size);
-       p_out=out;
-
-       /* Now do the encoding */
-       *p_out++ = '\n';
-       for ( i=0; inlen >= 3; inlen-=3 ) {
-
-               *p_out++ = base64digits[in[0] >> 2];
-               *p_out++ = base64digits[((in[0] << 4) & 0x30) | (in[1] >> 4)];
-               *p_out++ = base64digits[((in[1] << 2) & 0x3c) | (in[2] >> 6)];
-               *p_out++ = base64digits[in[2] & 0x3f];
-               in += 3;
-
-               i += 4;
-               if ( (i % LINE_LENGTH) == 0 ) {
-                       *p_out++ = '\n';
-               }
-
-       }
-       if (inlen > 0) {
-               guchar fragment;
-    
-               *p_out++ = base64digits[in[0] >> 2];
-               fragment = (in[0] << 4) & 0x30;
-               if (inlen > 1)
-                       fragment |= in[1] >> 4;
-               *p_out++ = base64digits[fragment];
-               *p_out++ = (inlen < 2) ? '=' : base64digits[(in[1] << 2) & 0x3c];
-               *p_out++ = '=';
-
-               *p_out++ = '\n';
-       }
-       *p_out++ = '\0';
-
-       return out;
-}
-
-/*****************************************************************************/
-/* Decode from a Base64 string.                                              */
-/*****************************************************************************/
-guchar *
-gl_base64_decode (const gchar *in, guint *outlen)
-{
-       gchar           *out, *p_out;
-       gint             buf_size;
-       register guchar  digit1, digit2, digit3, digit4;
-
-        /* Calculate output buffer size */
-       buf_size = strlen (in) * 3 / 4;
-
-       /* Allocate output buffer */
-       out = g_new0 (gchar, buf_size);
-
-       *outlen = 0;
-       p_out = out;
-
-       /* Skip non-printable characters */
-       while ( (*in == '\n') || (*in == '\r') || (*in == ' ') ) {
-               in ++;
-       }
-       if (!*in) {
-               g_free (out);
-               return NULL;
-       }
-
-       /* Now do the decoding */
-       do {
-               digit1 = in[0];
-               if (DECODE64(digit1) == BAD) {
-                       g_free (out);
-                       return NULL;
-               }
-               digit2 = in[1];
-               if (DECODE64(digit2) == BAD) {
-                       g_free (out);
-                       return NULL;
-               }
-               digit3 = in[2];
-               if (digit3 != '=' && DECODE64(digit3) == BAD) {
-                       g_free (out);
-                       return NULL;
-               }
-               digit4 = in[3];
-               if (digit4 != '=' && DECODE64(digit4) == BAD) {
-                       g_free (out);
-                       return NULL;
-               }
-               in += 4;
-
-               *p_out++ = (DECODE64(digit1)<<2) | (DECODE64(digit2) >> 4);
-               (*outlen)++;
-               if (digit3 != '=')
-               {
-                       *p_out++ = ((DECODE64(digit2)<<4)&0xf0) | (DECODE64(digit3)>>2);
-                       (*outlen)++;
-                       if (digit4 != '=')
-                       {
-                               *p_out++ = ((DECODE64(digit3)<<6)&0xc0) | DECODE64(digit4);
-                               (*outlen)++;
-                       }
-               }
-
-               /* Skip non-printable characters */
-               while ( (*in == '\n') || (*in == '\r') || (*in == ' ') ) {
-                       in ++;
-               }
-
-       } while (*in && digit4 != '=');
-
-       return (guchar *)out;
-}
-
diff --git a/src/base64.h b/src/base64.h
deleted file mode 100644 (file)
index 420d2a4..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  base64.h:  GLabels base64 encode/decode module
- *
- *  Copyright (C)  2003  Jim Evins <evins@snaught.com>
- *
- *  This module is based on base64.c from fetchmail:
- *
- *  Copyright (C)2002 by Eric S. Raymond.
- *  Portions are copyrighted by Carl E. Harris and George M. Sipe.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-#ifndef __BASE64_H__
-#define __BASE64_H__
-
-#include <glib/gtypes.h>
-
-G_BEGIN_DECLS
-
-gchar  *gl_base64_encode (const guchar *in,
-                         guint         inlen);
-
-guchar *gl_base64_decode (const gchar  *in,
-                         guint        *outlen);
-
-G_END_DECLS
-
-#endif
-
diff --git a/src/bc-backends.c b/src/bc-backends.c
new file mode 100644 (file)
index 0000000..0442f7f
--- /dev/null
@@ -0,0 +1,864 @@
+/*
+ *  bc-backends.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "bc-backends.h"
+
+#include <glib.h>
+#include <glib/gi18n.h>
+
+#include "bc-builtin.h"
+#include "bc-gnubarcode.h"
+#include "bc-zint.h"
+#include "bc-iec16022.h"
+#include "bc-iec18004.h"
+
+#include "debug.h"
+
+
+/*========================================================*/
+/* Private macros and constants.                          */
+/*========================================================*/
+
+
+/*========================================================*/
+/* Private types.                                         */
+/*========================================================*/
+
+typedef lglBarcode *(*glBarcodeNewFunc) (const gchar    *id,
+                                         gboolean        text_flag,
+                                         gboolean        checksum_flag,
+                                         gdouble         w,
+                                         gdouble         h,
+                                         const gchar    *digits);
+
+
+typedef struct {
+        gchar            *id;
+        gchar            *name;
+} Backend;
+
+
+typedef struct {
+        gchar            *backend_id;
+        gchar            *id;
+        gchar            *name;
+        glBarcodeNewFunc  new_barcode;
+        gboolean          can_text;
+        gboolean          text_optional;
+        gboolean          can_checksum;
+        gboolean          checksum_optional;
+        gchar            *default_digits;
+        gboolean          can_freeform;
+        guint             prefered_n;
+} Style;
+
+
+/*========================================================*/
+/* Private globals.                                       */
+/*========================================================*/
+
+static const Backend backends[] = {
+
+        { "built-in",    N_("Built-in") },
+#ifdef HAVE_LIBBARCODE
+        { "gnu-barcode", "GNU Barcode" },
+#endif
+#ifdef HAVE_LIBZINT
+        { "zint",        "Zint" },
+#endif
+#ifdef HAVE_LIBIEC16022
+        { "libiec16022", "IEC16022" },
+#endif
+#ifdef HAVE_LIBQRENCODE
+        { "libqrencode", "QREncode" },
+#endif
+
+        { NULL, NULL }
+};
+
+
+static const Style styles[] = {
+
+        { "built-in", "POSTNET", N_("POSTNET (any)"), gl_barcode_builtin_new,
+          FALSE, FALSE, TRUE, FALSE, "12345-6789-12", FALSE, 11},
+
+        { "built-in", "POSTNET-5", N_("POSTNET-5 (ZIP only)"), gl_barcode_builtin_new,
+          FALSE, FALSE, TRUE, FALSE, "12345", FALSE, 5},
+
+        { "built-in", "POSTNET-9", N_("POSTNET-9 (ZIP+4)"), gl_barcode_builtin_new,
+          FALSE, FALSE, TRUE, FALSE, "12345-6789", FALSE, 9},
+
+        { "built-in", "POSTNET-11", N_("POSTNET-11 (DPBC)"), gl_barcode_builtin_new,
+          FALSE, FALSE, TRUE, FALSE, "12345-6789-12", FALSE, 11},
+
+        { "built-in", "CEPNET", N_("CEPNET"), gl_barcode_builtin_new,
+          FALSE, FALSE, TRUE, FALSE, "12345-678", FALSE, 8},
+
+        { "built-in", "ONECODE", N_("One Code"), gl_barcode_builtin_new,
+          FALSE, FALSE, TRUE, FALSE, "12345678901234567890", FALSE, 20},
+
+        { "built-in", "Code39", N_("Code 39"), gl_barcode_builtin_new,
+          TRUE, TRUE, TRUE, TRUE, "1234567890", TRUE, 10},
+
+        { "built-in", "Code39Ext", N_("Code 39 Extended"), gl_barcode_builtin_new,
+          TRUE, TRUE, TRUE, TRUE, "1234567890", TRUE, 10},
+
+#ifdef HAVE_LIBBARCODE
+
+        { "gnu-barcode", "EAN", N_("EAN (any)"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, FALSE, "000000000000 00000", FALSE, 17},
+
+        { "gnu-barcode", "EAN-8", N_("EAN-8"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000", FALSE, 7},
+
+        { "gnu-barcode", "EAN-8+2", N_("EAN-8 +2"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000 00", FALSE, 9},
+
+        { "gnu-barcode", "EAN-8+5", N_("EAN-8 +5"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000 00000", FALSE, 12},
+
+        { "gnu-barcode", "EAN-13", N_("EAN-13"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, FALSE, "000000000000", FALSE, 12},
+
+        { "gnu-barcode", "EAN-13+2", N_("EAN-13 +2"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, FALSE, "000000000000 00", FALSE, 14},
+
+        { "gnu-barcode", "EAN-13+5", N_("EAN-13 +5"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, FALSE, "000000000000 00000", FALSE, 17},
+
+        { "gnu-barcode", "UPC", N_("UPC (UPC-A or UPC-E)"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, FALSE, "00000000000 00000", FALSE, 16},
+
+        { "gnu-barcode", "UPC-A", N_("UPC-A"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, FALSE, "00000000000", FALSE, 11},
+
+        { "gnu-barcode", "UPC-A+2", N_("UPC-A +2"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, FALSE, "00000000000 00", FALSE, 13},
+
+        { "gnu-barcode", "UPC-A+5", N_("UPC-A +5"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, FALSE, "00000000000 00000", FALSE, 16},
+
+        { "gnu-barcode", "UPC-E", N_("UPC-E"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, FALSE, "000000", FALSE, 6},
+
+        { "gnu-barcode", "UPC-E+2", N_("UPC-E +2"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, FALSE, "000000 00", FALSE, 8},
+
+        { "gnu-barcode", "UPC-E+5", N_("UPC-E +5"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, FALSE, "000000 00000", FALSE, 11},
+
+        { "gnu-barcode", "ISBN", N_("ISBN"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, TRUE, "0-00000-000-0", FALSE, 10},
+
+        { "gnu-barcode", "ISBN+5", N_("ISBN +5"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, TRUE, "0-00000-000-0 00000", FALSE, 15},
+
+        { "gnu-barcode", "Code39", N_("Code 39"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, TRUE, "0000000000", TRUE, 10},
+
+        { "gnu-barcode", "Code128", N_("Code 128"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, TRUE, "0000000000", TRUE, 10},
+
+        { "gnu-barcode", "Code128C", N_("Code 128C"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "gnu-barcode", "Code128B", N_("Code 128B"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, TRUE, "0000000000", TRUE, 10},
+
+        { "gnu-barcode", "I25", N_("Interleaved 2 of 5"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, TRUE, "0000000000", TRUE, 10},
+
+        { "gnu-barcode", "CBR", N_("Codabar"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, TRUE, "0000000000", TRUE, 10},
+
+        { "gnu-barcode", "MSI", N_("MSI"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, TRUE, "0000000000", TRUE, 10},
+
+        { "gnu-barcode", "PLS", N_("Plessey"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, TRUE, "0000000000", TRUE, 10},
+
+        { "gnu-barcode", "Code93", N_("Code 93"), gl_barcode_gnubarcode_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+#endif /* HAVE_LIBBARCODE */
+
+#ifdef HAVE_LIBZINT
+
+        { "zint", "AUSP", N_("Australia Post Standard"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "12345678901234567890123", TRUE, 23},
+
+        { "zint", "AUSRP", N_("Australia Post Reply Paid"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "12345678", TRUE, 8},
+
+        { "zint", "AUSRT", N_("Australia Post Route Code"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "12345678", TRUE, 8},
+
+        { "zint", "AUSRD", N_("Australia Post Redirect"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "12345678", TRUE, 8},
+
+        { "zint", "AZTEC", N_("Aztec Code"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "1234567890", TRUE, 10},
+          
+        { "zint", "AZRUN", N_("Aztec Rune"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "255", TRUE, 3},
+
+        { "zint", "CBR", N_("Codabar"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "ABCDABCDAB", TRUE, 10},
+
+        { "zint", "Code1", N_("Code One"),  gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "Code11", N_("Code 11"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000000", TRUE, 10},
+          
+        { "zint", "C16K", N_("Code 16K"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "0000000000", TRUE, 10},
+          
+        { "zint", "C25M", N_("Code 2 of 5 Matrix"),  gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000000", TRUE, 10},
+          
+        { "zint", "C25I", N_("Code 2 of 5 IATA"),  gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000000", TRUE, 10},
+          
+        { "zint", "C25DL", N_("Code 2 of 5 Data Logic"),  gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "Code32", N_("Code 32 (Italian Pharmacode)"),  gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "12345678", TRUE, 8},
+
+        { "zint", "Code39", N_("Code 39"), gl_barcode_zint_new,
+          TRUE, TRUE, FALSE, FALSE, "0000000000", TRUE, 10},
+          
+        { "zint", "Code39E", N_("Code 39 Extended"),  gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "Code49", N_("Code 49"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "Code93", N_("Code 93"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "Code128", N_("Code 128"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000000", TRUE, 10},
+          
+        { "zint", "Code128B", N_("Code 128 (Mode C supression)"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000000", TRUE, 10},
+          
+        { "zint", "DAFT", N_("DAFT Code"), gl_barcode_zint_new,
+          FALSE, FALSE, FALSE, FALSE, "DAFTDAFTDAFTDAFT", TRUE, 16},
+
+        { "zint", "DMTX", N_("Data Matrix"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "DPL", N_("Deutsche Post Leitcode"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "1234567890123", TRUE, 13},
+          
+        { "zint", "DPI", N_("Deutsche Post Identcode"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "12345678901", TRUE, 11},
+          
+        { "zint", "KIX", N_("Dutch Post KIX Code"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "EAN", N_("EAN"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "1234567890123", FALSE, 13},
+
+        { "zint", "GMTX", N_("Grid Matrix"),  gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "GS1-128", N_("GS1-128"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "[01]12345678901234", FALSE, 18},
+
+        { "zint", "RSS14", N_("GS1 DataBar-14"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "1234567890123", TRUE, 13},
+          
+        { "zint", "RSSLTD", "GS1 DataBar-14 Limited",  gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "1234567890123", TRUE, 13},
+          
+        { "zint", "RSSEXP", "GS1 DataBar Extended",  gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "[01]12345678901234", FALSE, 18},
+          
+        { "zint", "RSSS", N_("GS1 DataBar-14 Stacked"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "RSSSO", N_("GS1 DataBar-14 Stacked Omni."), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "RSSSE", N_("GS1 DataBar Extended Stacked"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "[01]12345678901234", FALSE, 18},
+
+        { "zint", "HIBC128", N_("HIBC Code 128"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "HIBC39", N_("HIBC Code 39"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "HIBCDM", N_("HIBC Data Matrix"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "HIBCQR", N_("HIBC QR Code"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "HIBCPDF", N_("HIBC PDF417"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "HIBCMPDF", N_("HIBC Micro PDF417"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "HIBCAZ", N_("HIBC Aztec Code"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "I25", N_("Interleaved 2 of 5"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "ISBN", N_("ISBN"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "123456789", FALSE, 9},
+
+        { "zint", "ITF14", N_("ITF-14"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "JAPAN", N_("Japanese Postal"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "KOREA", N_("Korean Postal"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "123456", FALSE, 6},
+
+        { "zint", "LOGM", N_("LOGMARS"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "MAXI", N_("Maxicode"), gl_barcode_zint_new,
+          FALSE, FALSE, FALSE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "MPDF", N_("Micro PDF417"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "MQR", N_("Micro QR Code"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "MSI", N_("MSI Plessey"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "NVE", N_("NVE-18"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "12345678901234567", FALSE, 17},
+
+        { "zint", "PDF", N_("PDF417"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "PDFT", N_("PDF417 Truncated"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "PLAN", N_("PLANET"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "POSTNET", N_("PostNet"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "PHARMA", N_("Pharmacode"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "123456", FALSE, 6},
+
+        { "zint", "PHARMA2", N_("Pharmacode 2-track"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "12345678", FALSE, 8},
+
+        { "zint", "PZN", N_("Pharmazentral Nummer (PZN)"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "123456", FALSE, 6},
+
+        { "zint", "QR", N_("QR Code"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "RM4", N_("Royal Mail 4-State"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "TELE", N_("Telepen"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "TELEX", N_("Telepen Numeric"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+        { "zint", "UPC-A", N_("UPC-A"),  gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "12345678901", FALSE, 11},
+          
+        { "zint", "UPC-E", N_("UPC-E"),  gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "1234567", FALSE, 7},
+          
+        { "zint", "USPS", N_("USPS One Code"), gl_barcode_zint_new,
+          FALSE, FALSE, TRUE, FALSE, "12345678901234567890", TRUE, 20},
+
+        { "zint", "PLS", N_("UK Plessey"), gl_barcode_zint_new,
+          TRUE, TRUE, TRUE, FALSE, "0000000000", TRUE, 10},
+
+#endif /* HAVE_LIBZINT */
+
+#ifdef HAVE_LIBIEC16022
+
+        { "libiec16022", "IEC16022", N_("IEC16022 (DataMatrix)"), gl_barcode_iec16022_new,
+          FALSE, FALSE, TRUE, FALSE, "12345678", TRUE, 8},
+
+#endif /* HAVE_LIBIEC16022 */
+
+#ifdef HAVE_LIBQRENCODE
+
+        { "libqrencode", "IEC18004", N_("IEC18004 (QRCode)"), gl_barcode_iec18004_new,
+          FALSE, FALSE, TRUE, FALSE, "12345678", TRUE, 8},
+
+#endif /* HAVE_LIBQRENCODE */
+
+        { NULL, NULL, NULL, NULL, FALSE, FALSE, FALSE, FALSE, NULL, FALSE, 0}
+
+};
+
+
+/*========================================================*/
+/* Private function prototypes.                           */
+/*========================================================*/
+
+static gint backend_id_to_index   (const gchar *id);
+static gint backend_name_to_index (const gchar *name);
+static gint style_id_to_index     (const gchar *backend_id,
+                                   const gchar *id);
+static gint style_name_to_index   (const gchar *backend_id,
+                                   const gchar *name);
+
+/*---------------------------------------------------------------------------*/
+/* Convert backend id to index into backends table.                          */
+/*---------------------------------------------------------------------------*/
+static gint
+backend_id_to_index (const gchar *id)
+{
+        gint i;
+
+        if (id == NULL)
+        {
+                return 0; /* NULL request default. I.e., the first element. */
+        }
+
+        for (i=0; styles[i].id != NULL; i++)
+        {
+                if (g_ascii_strcasecmp (id, backends[i].id) == 0)
+                {
+                        return i;
+                }
+        }
+
+        g_message( "Unknown barcode id \"%s\"", id );
+        return 0;
+}
+
+
+/*---------------------------------------------------------------------------*/
+/* Convert backend name to index into backends table.                        */
+/*---------------------------------------------------------------------------*/
+static gint
+backend_name_to_index (const gchar *name)
+{
+        gint i;
+
+        if (name == NULL)
+        {
+                return 0; /* NULL request default. I.e., the first element. */
+        }
+
+        for (i=0; styles[i].id != NULL; i++)
+        {
+                if (strcmp (name, gettext (backends[i].name)) == 0)
+                {
+                        return i;
+                }
+        }
+
+        g_message( "Unknown barcode name \"%s\"", name );
+        return 0;
+}
+
+
+/*---------------------------------------------------------------------------*/
+/* Convert style id to index into styles table.                              */
+/*---------------------------------------------------------------------------*/
+static gint
+style_id_to_index (const gchar *backend_id,
+                   const gchar *id)
+{
+        gint i;
+
+        if (backend_id == NULL)
+        {
+                return 0; /* NULL request default. I.e., the first element. */
+        }
+
+        if (id == NULL)
+        {
+                /* Search for first element with given backend_id. */
+                for (i=0; styles[i].id != NULL; i++)
+                {
+                        if (g_ascii_strcasecmp (backend_id, styles[i].backend_id) == 0)
+                        {
+                                return i;
+                        }
+                }
+                g_message( "Unknown barcode backend id \"%s\"", backend_id );
+                return 0;
+        }
+
+        for (i=0; styles[i].id != NULL; i++)
+        {
+                if ((g_ascii_strcasecmp (backend_id, styles[i].backend_id) == 0) &&
+                    (g_ascii_strcasecmp (id, styles[i].id) == 0))
+                {
+                        return i;
+                }
+        }
+
+        g_message( "Unknown barcode id \"%s\"", id );
+        return 0;
+}
+
+
+/*---------------------------------------------------------------------------*/
+/* Convert style name to index into styles table.                            */
+/*---------------------------------------------------------------------------*/
+static gint
+style_name_to_index (const gchar *backend_id,
+                     const gchar *name)
+{
+        gint i;
+
+        if (backend_id == NULL)
+        {
+                return 0; /* NULL request default. I.e., the first element. */
+        }
+
+        if (name == NULL)
+        {
+                /* Search for first element with given backend_id. */
+                for (i=0; styles[i].id != NULL; i++)
+                {
+                        if (g_ascii_strcasecmp (backend_id, styles[i].backend_id) == 0)
+                        {
+                                return i;
+                        }
+                }
+                g_message( "Unknown barcode backend id \"%s\"", backend_id );
+                return 0;
+        }
+
+        for (i=0; styles[i].id != NULL; i++)
+        {
+                if ((g_ascii_strcasecmp (backend_id, styles[i].backend_id) == 0) &&
+                    (strcmp (name, gettext (styles[i].name)) == 0))
+                {
+                        return i;
+                }
+        }
+
+        g_message( "Unknown barcode name \"%s\"", name );
+        return 0;
+}
+
+
+/*****************************************************************************/
+/* Get a list of names for configured backends.                              */
+/*****************************************************************************/
+GList *
+gl_barcode_backends_get_backend_list (void)
+{
+        gint   i;
+        GList *list = NULL;
+
+        for (i=0; backends[i].id != NULL; i++)
+        {
+                list = g_list_prepend (list, g_strdup (gettext (backends[i].name)));
+        }
+
+        return g_list_reverse (list);
+}
+
+
+/*****************************************************************************/
+/* Free up a previously allocated list of backend names.                     */
+/*****************************************************************************/
+void
+gl_barcode_backends_free_backend_list (GList *backend_list)
+{
+        GList *p;
+
+        for (p=backend_list; p != NULL; p=p->next)
+        {
+                g_free (p->data);
+                p->data = NULL;
+        }
+
+        g_list_free (backend_list);
+}
+
+
+/*****************************************************************************/
+/* Convert backend id to name.                                               */
+/*****************************************************************************/
+const gchar *
+gl_barcode_backends_backend_id_to_name (const gchar *backend_id)
+{
+        return gettext (backends[backend_id_to_index (backend_id)].name);
+}
+
+
+/*****************************************************************************/
+/* Convert backend name to id.                                               */
+/*****************************************************************************/
+const gchar *
+gl_barcode_backends_backend_name_to_id (const gchar *backend_name)
+{
+        return backends[backend_name_to_index (backend_name)].id;
+}
+
+
+/*****************************************************************************/
+/* Test if backend id is valid.                                              */
+/*****************************************************************************/
+gboolean
+gl_barcode_backends_is_backend_id_valid (const gchar    *backend_id)
+{
+        gint i;
+
+        if (backend_id == NULL)
+        {
+                return FALSE;
+        }
+
+        for (i=0; backends[i].id != NULL; i++)
+        {
+                if (g_ascii_strcasecmp (backend_id, backends[i].id) == 0)
+                {
+                        return TRUE;
+                }
+        }
+
+        return FALSE;
+}
+
+
+/*****************************************************************************/
+/* Guess backend id from style id (for backwards compatability).             */
+/*****************************************************************************/
+const gchar *
+gl_barcode_backends_guess_backend_id (const gchar *id)
+{
+        gint i;
+
+        if (id == NULL)
+        {
+                return styles[0].backend_id;
+        }
+
+        for (i=0; styles[i].id != NULL; i++)
+        {
+                if (g_ascii_strcasecmp (id, styles[i].id) == 0)
+                {
+                        return styles[i].backend_id;
+                }
+        }
+
+        g_message( "Unknown barcode id \"%s\"", id );
+        return styles[0].backend_id;
+}
+
+
+/*****************************************************************************/
+/* Get a list of names for valid barcode styles.                             */
+/*****************************************************************************/
+GList *
+gl_barcode_backends_get_styles_list  (const gchar *backend_id)
+{
+        gint   i;
+        GList *list = NULL;
+
+        for (i=0; styles[i].id != NULL; i++)
+        {
+                if ( g_ascii_strcasecmp (styles[i].backend_id, backend_id) == 0 )
+                {
+                        list = g_list_prepend (list, g_strdup (gettext (styles[i].name)));
+                }
+        }
+
+        return g_list_reverse (list);
+}
+
+
+/*****************************************************************************/
+/* Free up a previously allocated list of style names.                       */
+/*****************************************************************************/
+void
+gl_barcode_backends_free_styles_list (GList *styles_list)
+{
+        GList *p;
+
+        for (p=styles_list; p != NULL; p=p->next)
+        {
+                g_free (p->data);
+                p->data = NULL;
+        }
+
+        g_list_free (styles_list);
+}
+
+
+/*****************************************************************************/
+/* Convert style to text.                                                    */
+/*****************************************************************************/
+const gchar *
+gl_barcode_backends_style_id_to_name (const gchar *backend_id,
+                                      const gchar *id)
+{
+        return gettext (styles[style_id_to_index (backend_id, id)].name);
+}
+
+
+/*****************************************************************************/
+/* Convert name to style.                                                    */
+/*****************************************************************************/
+const gchar *
+gl_barcode_backends_style_name_to_id (const gchar *backend_id,
+                                      const gchar *name)
+{
+        return styles[style_name_to_index (backend_id, name)].id;
+}
+
+
+/*****************************************************************************/
+/* Return an appropriate set of digits for the given barcode style.          */
+/*****************************************************************************/
+gchar *
+gl_barcode_backends_style_default_digits (const gchar *backend_id,
+                                          const gchar *id,
+                                          guint        n)
+{
+        int i;
+
+        i = style_id_to_index (backend_id, id);
+
+        if (styles[i].can_freeform)
+        {
+                return g_strnfill (MAX (n,1), '0');
+        }
+        else
+        {
+                return g_strdup (styles[i].default_digits);
+        }
+}
+
+
+/*****************************************************************************/
+/* Query text capabilities.                                                  */
+/*****************************************************************************/
+gboolean
+gl_barcode_backends_style_can_text (const gchar *backend_id,
+                                    const gchar *id)
+{
+        return styles[style_id_to_index (backend_id, id)].can_text;
+}
+
+
+gboolean
+gl_barcode_backends_style_text_optional (const gchar *backend_id,
+                                         const gchar *id)
+{
+        return styles[style_id_to_index (backend_id, id)].text_optional;
+}
+
+
+/*****************************************************************************/
+/* Query checksum capabilities.                                              */
+/*****************************************************************************/
+gboolean
+gl_barcode_backends_style_can_csum (const gchar *backend_id,
+                                    const gchar *id)
+{
+        return styles[style_id_to_index (backend_id, id)].can_checksum;
+}
+
+
+gboolean
+gl_barcode_backends_style_csum_optional (const gchar *backend_id,
+                                         const gchar *id)
+{
+        return styles[style_id_to_index (backend_id, id)].checksum_optional;
+}
+
+
+/*****************************************************************************/
+/* Query if freeform input is allowed.                                       */
+/*****************************************************************************/
+gboolean
+gl_barcode_backends_style_can_freeform (const gchar *backend_id,
+                                        const gchar    *id)
+{
+        return styles[style_id_to_index (backend_id, id)].can_freeform;
+}
+
+
+/*****************************************************************************/
+/* Query prefered number of digits of input.                                 */
+/*****************************************************************************/
+guint
+gl_barcode_backends_style_get_prefered_n (const gchar *backend_id,
+                                          const gchar *id)
+{
+        return styles[style_id_to_index (backend_id, id)].prefered_n;
+}
+
+
+/*****************************************************************************/
+/* Call appropriate barcode backend to create barcode in intermediate format.*/
+/*****************************************************************************/
+lglBarcode *
+gl_barcode_backends_new_barcode (const gchar    *backend_id,
+                                 const gchar    *id,
+                                 gboolean        text_flag,
+                                 gboolean        checksum_flag,
+                                 gdouble         w,
+                                 gdouble         h,
+                                 const gchar    *digits)
+{
+        lglBarcode *gbc;
+        gint        i;
+
+        g_return_val_if_fail (digits!=NULL, NULL);
+
+        i = style_id_to_index (backend_id, id);
+
+        gbc = styles[i].new_barcode (styles[i].id,
+                                     text_flag,
+                                     checksum_flag,
+                                     w,
+                                     h,
+                                     digits);
+
+        return gbc;
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/bc-backends.h b/src/bc-backends.h
new file mode 100644 (file)
index 0000000..e284c17
--- /dev/null
@@ -0,0 +1,90 @@
+/*
+ *  bc-backends.h
+ *  Copyright (C) 2001-2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __BC_BACKENDS_H__
+#define __BC_BACKENDS_H__
+
+#include <glib.h>
+#include <libglbarcode.h>
+
+G_BEGIN_DECLS
+
+
+GList           *gl_barcode_backends_get_backend_list     (void);
+void             gl_barcode_backends_free_backend_list    (GList          *backend_list);
+
+const gchar     *gl_barcode_backends_backend_id_to_name   (const gchar    *backend_id);
+const gchar     *gl_barcode_backends_backend_name_to_id   (const gchar    *backend_name);
+
+gboolean         gl_barcode_backends_is_backend_id_valid  (const gchar    *backend_id);
+const gchar     *gl_barcode_backends_guess_backend_id     (const gchar    *id);
+
+GList           *gl_barcode_backends_get_styles_list      (const gchar    *backend_id);
+void             gl_barcode_backends_free_styles_list     (GList          *styles_list);
+
+const gchar     *gl_barcode_backends_style_id_to_name     (const gchar    *backend_id,
+                                                           const gchar    *id);
+const gchar     *gl_barcode_backends_style_name_to_id     (const gchar    *backend_id,
+                                                           const gchar    *name);
+
+gchar           *gl_barcode_backends_style_default_digits (const gchar    *backend_id,
+                                                           const gchar    *id,
+                                                           guint           n);
+
+gboolean         gl_barcode_backends_style_can_text       (const gchar    *backend_id,
+                                                           const gchar    *id);
+gboolean         gl_barcode_backends_style_text_optional  (const gchar    *backend_id,
+                                                           const gchar    *id);
+
+gboolean         gl_barcode_backends_style_can_csum       (const gchar    *backend_id,
+                                                           const gchar    *id);
+gboolean         gl_barcode_backends_style_csum_optional  (const gchar    *backend_id,
+                                                           const gchar    *id);
+
+gboolean         gl_barcode_backends_style_can_freeform   (const gchar    *backend_id,
+                                                           const gchar    *id);
+guint            gl_barcode_backends_style_get_prefered_n (const gchar    *backend_id,
+                                                           const gchar    *id);
+
+lglBarcode      *gl_barcode_backends_new_barcode          (const gchar    *backend_id,
+                                                           const gchar    *id,
+                                                           gboolean        text_flag,
+                                                           gboolean        checksum_flag,
+                                                           gdouble         w,
+                                                           gdouble         h,
+                                                           const gchar    *digits);
+
+
+
+
+G_END_DECLS
+
+#endif /* __BC_BACKENDS_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/bc-builtin.c b/src/bc-builtin.c
new file mode 100644 (file)
index 0000000..5b7fe5f
--- /dev/null
@@ -0,0 +1,105 @@
+/*
+ *  bc-builtin.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * This module implements the BUILTIN barcode specified in the USPS
+ * publication 25, Mar 2001.
+ */
+
+#include <config.h>
+
+#include "bc-builtin.h"
+
+#include "debug.h"
+
+
+/*========================================================*/
+/* Private macros and constants.                          */
+/*========================================================*/
+
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+
+/****************************************************************************/
+/* Generate list of lines that form the barcode for the given digits.       */
+/****************************************************************************/
+lglBarcode *
+gl_barcode_builtin_new (const gchar    *id,
+                        gboolean        text_flag,
+                        gboolean        checksum_flag,
+                        gdouble         w,
+                        gdouble         h,
+                        const gchar    *digits)
+{
+        if ( (g_ascii_strcasecmp (id, "POSTNET") == 0) )
+        {
+                return lgl_barcode_create (LGL_BARCODE_TYPE_POSTNET, text_flag, checksum_flag, w, h, digits);
+        }
+        if ( (g_ascii_strcasecmp (id, "POSTNET-5") == 0) )
+        {
+                return lgl_barcode_create (LGL_BARCODE_TYPE_POSTNET_5, text_flag, checksum_flag, w, h, digits);
+        }
+        if ( (g_ascii_strcasecmp (id, "POSTNET-9") == 0) )
+        {
+                return lgl_barcode_create (LGL_BARCODE_TYPE_POSTNET_9, text_flag, checksum_flag, w, h, digits);
+        }
+        if ( (g_ascii_strcasecmp (id, "POSTNET-11") == 0) )
+        {
+                return lgl_barcode_create (LGL_BARCODE_TYPE_POSTNET_11, text_flag, checksum_flag, w, h, digits);
+        }
+        if ( (g_ascii_strcasecmp (id, "CEPNET") == 0) )
+        {
+                return lgl_barcode_create (LGL_BARCODE_TYPE_CEPNET, text_flag, checksum_flag, w, h, digits);
+        }
+        if ( (g_ascii_strcasecmp (id, "ONECODE") == 0) )
+        {
+                return lgl_barcode_create (LGL_BARCODE_TYPE_ONECODE, text_flag, checksum_flag, w, h, digits);
+        }
+        if ( (g_ascii_strcasecmp (id, "Code39") == 0) )
+        {
+                return lgl_barcode_create (LGL_BARCODE_TYPE_CODE39, text_flag, checksum_flag, w, h, digits);
+        }
+        if ( (g_ascii_strcasecmp (id, "Code39Ext") == 0) )
+        {
+                return lgl_barcode_create (LGL_BARCODE_TYPE_CODE39_EXT, text_flag, checksum_flag, w, h, digits);
+        }
+
+        g_message ("Invalid builtin barcode ID: \"%s\"\n", id);
+        return NULL;
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/bc-builtin.h b/src/bc-builtin.h
new file mode 100644 (file)
index 0000000..459b413
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ *  bc-builtin.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __BC_BUILTIN_H__
+#define __BC_BUILTIN_H__
+
+#include <libglbarcode.h>
+
+
+G_BEGIN_DECLS
+
+lglBarcode *gl_barcode_builtin_new (const gchar    *id,
+                                    gboolean        text_flag,
+                                    gboolean        checksum_flag,
+                                    gdouble         w,
+                                    gdouble         h,
+                                    const gchar    *digits);
+
+G_END_DECLS
+
+#endif /* __BC_BUILTIN_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 2c84114b384925634e644f3e69d9b565f5d7a00d..f3be2a3d7fcf8e4a8d17400e907a1324f94bb20f 100644 (file)
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  bc-gnubarcode.c:  front-end to GNU-barcode-library module
+ *  bc-gnubarcode.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2003  Jim Evins <evins@snaught.com>.
- *
- *  Some of this code is borrowed from the postscript renderer (ps.c)
- *  from the GNU barcode library:
- *
- *     Copyright (C) 1999 Alessaandro Rubini (rubini@gnu.org)
- *     Copyright (C) 1999 Prosa Srl. (prosa@prosa.it)
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 
+#ifdef HAVE_LIBBARCODE
+
 #include "bc-gnubarcode.h"
 
+#include <glib.h>
 #include <ctype.h>
 #include <string.h>
-#include <glib/gstring.h>
-#include <glib/gstrfuncs.h>
-#include <glib/gmessages.h>
-
-#include "barcode.h"
+#include <barcode.h> /* GNU Barcode */
 
 #include "debug.h"
 
+
 /*========================================================*/
 /* Private macros and constants.                          */
 /*========================================================*/
-#define SHRINK_AMOUNT 0.15     /* shrink bars to account for ink spreading */
-#define FONT_SCALE    0.95     /* Shrink fonts just a hair */
+#define SHRINK_AMOUNT 0.15        /* shrink bars to account for ink spreading */
+#define FONT_SCALE    0.95        /* Shrink fonts just a hair */
+
 
 /*===========================================*/
 /* Local function prototypes                 */
 /*===========================================*/
-static glBarcode *render_pass1     (struct Barcode_Item *bci,
-                                   gint                 flags);
+static lglBarcode *render_pass1     (struct Barcode_Item *bci,
+                                     gint                 flags);
 
 static gboolean   is_length_valid  (const gchar         *digits,
-                                   gint                 n1,
-                                   gint                 n2);
+                                    gint                 n1,
+                                    gint                 n2);
 
 static gboolean   is_length1_valid (const gchar         *digits,
-                                   gint                 n1,
-                                   gint                 n2);
+                                    gint                 n1,
+                                    gint                 n2);
 
 static gboolean   is_length2_valid (const gchar         *digits,
-                                   gint                 n1,
-                                   gint                 n2);
+                                    gint                 n1,
+                                    gint                 n2);
+
 
-\f
 /*****************************************************************************/
 /* Generate intermediate representation of barcode.                          */
 /*****************************************************************************/
-glBarcode *
+lglBarcode *
 gl_barcode_gnubarcode_new (const gchar    *id,
-                          gboolean        text_flag,
-                          gboolean        checksum_flag,
-                          gdouble         w,
-                          gdouble         h,
-                          const gchar    *digits)
+                           gboolean        text_flag,
+                           gboolean        checksum_flag,
+                           gdouble         w,
+                           gdouble         h,
+                           const gchar    *digits)
 {
-       glBarcode           *gbc;
-       struct Barcode_Item *bci;
-       gint                 flags;
-
-       /* Assign type flag.  Pre-filter by length for subtypes. */
-       if (g_strcasecmp (id, "EAN") == 0) {
-               flags = BARCODE_EAN;
-       } else if (g_strcasecmp (id, "EAN-8") == 0) {
-               if (!is_length_valid (digits, 7, 8)) {
-                       return NULL;
-               }
-               flags = BARCODE_EAN;
-       } else if (g_strcasecmp (id, "EAN-8+2") == 0) {
-               if (!is_length1_valid (digits, 7, 8) || !is_length2_valid (digits, 2, 2)) {
-                       return NULL;
-               }
-               flags = BARCODE_EAN;
-       } else if (g_strcasecmp (id, "EAN-8+5") == 0) {
-               if (!is_length1_valid (digits, 7, 8) || !is_length2_valid (digits, 5, 5)) {
-                       return NULL;
-               }
-               flags = BARCODE_EAN;
-       } else if (g_strcasecmp (id, "EAN-13") == 0) {
-               if (!is_length_valid (digits, 12, 13)) {
-                       return NULL;
-               }
-               flags = BARCODE_EAN;
-       } else if (g_strcasecmp (id, "EAN-13+2") == 0) {
-               if (!is_length1_valid (digits, 12,13) || !is_length2_valid (digits, 2,2)) {
-                       return NULL;
-               }
-               flags = BARCODE_EAN;
-       } else if (g_strcasecmp (id, "EAN-13+5") == 0) {
-               if (!is_length1_valid (digits, 12,13) || !is_length2_valid (digits, 5,5)) {
-                       return NULL;
-               }
-               flags = BARCODE_EAN;
-       } else if (g_strcasecmp (id, "UPC") == 0) {
-               flags = BARCODE_UPC;
-       } else if (g_strcasecmp (id, "UPC-A") == 0) {
-               if (!is_length_valid (digits, 11, 12)) {
-                       return NULL;
-               }
-               flags = BARCODE_UPC;
-       } else if (g_strcasecmp (id, "UPC-A+2") == 0) {
-               if (!is_length1_valid (digits, 11,12) || !is_length2_valid (digits, 2,2)) {
-                       return NULL;
-               }
-               flags = BARCODE_UPC;
-       } else if (g_strcasecmp (id, "UPC-A+5") == 0) {
-               if (!is_length1_valid (digits, 11,12) || !is_length2_valid (digits, 5,5)) {
-                       return NULL;
-               }
-               flags = BARCODE_UPC;
-       } else if (g_strcasecmp (id, "UPC-E") == 0) {
-               if (!is_length_valid (digits, 6, 8)) {
-                       return NULL;
-               }
-               flags = BARCODE_UPC;
-       } else if (g_strcasecmp (id, "UPC-E+2") == 0) {
-               if (!is_length1_valid (digits, 6, 8) || !is_length2_valid (digits, 2,2)) {
-                       return NULL;
-               }
-               flags = BARCODE_UPC;
-       } else if (g_strcasecmp (id, "UPC-E+5") == 0) {
-               if (!is_length1_valid (digits, 6, 8) || !is_length2_valid (digits, 5,5)) {
-                       return NULL;
-               }
-               flags = BARCODE_UPC;
-       } else if (g_strcasecmp (id, "ISBN") == 0) {
-               if (!is_length_valid (digits, 9, 10)) {
-                       return NULL;
-               }
-               flags = BARCODE_ISBN;
-       } else if (g_strcasecmp (id, "ISBN+5") == 0) {
-               if (!is_length1_valid (digits, 9, 10) || !is_length2_valid (digits, 5,5)) {
-                       return NULL;
-               }
-               flags = BARCODE_ISBN;
-       } else if (g_strcasecmp (id, "Code39") == 0) {
-               flags = BARCODE_39;
-       } else if (g_strcasecmp (id, "Code128") == 0) {
-               flags = BARCODE_128;
-       } else if (g_strcasecmp (id, "Code128C") == 0) {
-               flags = BARCODE_128C;
-       } else if (g_strcasecmp (id, "Code128B") == 0) {
-               flags = BARCODE_128B;
-       } else if (g_strcasecmp (id, "I25") == 0) {
-               flags = BARCODE_I25;
-       } else if (g_strcasecmp (id, "CBR") == 0) {
-               flags = BARCODE_CBR;
-       } else if (g_strcasecmp (id, "MSI") == 0) {
-               flags = BARCODE_MSI;
-       } else if (g_strcasecmp (id, "PLS") == 0) {
-               flags = BARCODE_PLS;
-       } else {
-               g_message( "Illegal barcode id %s", id );
-               flags = BARCODE_ANY;
-       }
-
-
-       bci = Barcode_Create ((char *)digits);
-
-       /* First encode using GNU Barcode library */
-       if (!text_flag) {
-               flags |= BARCODE_NO_ASCII;
-       }
-       if (!checksum_flag) {
-               flags |= BARCODE_NO_CHECKSUM;
-       }
-
-       bci->scalef = 0.0;
-       bci->width  = w;
-       bci->height = h;
-
-       Barcode_Encode (bci, flags);
-       if (!bci->partial || !bci->textinfo) {
-               Barcode_Delete (bci);
-               return NULL;
-       }
-
-       /* now render with our custom back-end,
-          to create appropriate intermdediate format */
-       gbc = render_pass1 (bci, flags);
-
-       Barcode_Delete (bci);
-       return gbc;
+        lglBarcode          *gbc;
+        struct Barcode_Item *bci;
+        gint                 flags;
+
+        /* Assign type flag.  Pre-filter by length for subtypes. */
+        if (g_ascii_strcasecmp (id, "EAN") == 0)
+        {
+                flags = BARCODE_EAN;
+        }
+        else if (g_ascii_strcasecmp (id, "EAN-8") == 0)
+        {
+                if (!is_length_valid (digits, 7, 8))
+                {
+                        return NULL;
+                }
+                flags = BARCODE_EAN;
+        }
+        else if (g_ascii_strcasecmp (id, "EAN-8+2") == 0)
+        {
+                if (!is_length1_valid (digits, 7, 8) || !is_length2_valid (digits, 2, 2))
+                {
+                        return NULL;
+                }
+                flags = BARCODE_EAN;
+        }
+        else if (g_ascii_strcasecmp (id, "EAN-8+5") == 0)
+        {
+                if (!is_length1_valid (digits, 7, 8) || !is_length2_valid (digits, 5, 5))
+                {
+                        return NULL;
+                }
+                flags = BARCODE_EAN;
+        }
+        else if (g_ascii_strcasecmp (id, "EAN-13") == 0)
+        {
+                if (!is_length_valid (digits, 12, 13))
+                {
+                        return NULL;
+                }
+                flags = BARCODE_EAN;
+        }
+        else if (g_ascii_strcasecmp (id, "EAN-13+2") == 0)
+        {
+                if (!is_length1_valid (digits, 12,13) || !is_length2_valid (digits, 2,2))
+                {
+                        return NULL;
+                }
+                flags = BARCODE_EAN;
+        }
+        else if (g_ascii_strcasecmp (id, "EAN-13+5") == 0)
+        {
+                if (!is_length1_valid (digits, 12,13) || !is_length2_valid (digits, 5,5))
+                {
+                        return NULL;
+                }
+                flags = BARCODE_EAN;
+        }
+        else if (g_ascii_strcasecmp (id, "UPC") == 0)
+        {
+                flags = BARCODE_UPC;
+        }
+        else if (g_ascii_strcasecmp (id, "UPC-A") == 0)
+        {
+                if (!is_length_valid (digits, 11, 12))
+                {
+                        return NULL;
+                }
+                flags = BARCODE_UPC;
+        }
+        else if (g_ascii_strcasecmp (id, "UPC-A+2") == 0)
+        {
+                if (!is_length1_valid (digits, 11,12) || !is_length2_valid (digits, 2,2))
+                {
+                        return NULL;
+                }
+                flags = BARCODE_UPC;
+        }
+        else if (g_ascii_strcasecmp (id, "UPC-A+5") == 0)
+        {
+                if (!is_length1_valid (digits, 11,12) || !is_length2_valid (digits, 5,5))
+                {
+                        return NULL;
+                }
+                flags = BARCODE_UPC;
+        }
+        else if (g_ascii_strcasecmp (id, "UPC-E") == 0)
+        {
+                if (!is_length_valid (digits, 6, 8))
+                {
+                        return NULL;
+                }
+                flags = BARCODE_UPC;
+        }
+        else if (g_ascii_strcasecmp (id, "UPC-E+2") == 0)
+        {
+                if (!is_length1_valid (digits, 6, 8) || !is_length2_valid (digits, 2,2))
+                {
+                        return NULL;
+                }
+                flags = BARCODE_UPC;
+        }
+        else if (g_ascii_strcasecmp (id, "UPC-E+5") == 0)
+        {
+                if (!is_length1_valid (digits, 6, 8) || !is_length2_valid (digits, 5,5))
+                {
+                        return NULL;
+                }
+                flags = BARCODE_UPC;
+        }
+        else if (g_ascii_strcasecmp (id, "ISBN") == 0)
+        {
+                if (!is_length_valid (digits, 9, 10))
+                {
+                        return NULL;
+                }
+                flags = BARCODE_ISBN;
+        }
+        else if (g_ascii_strcasecmp (id, "ISBN+5") == 0)
+        {
+                if (!is_length1_valid (digits, 9, 10) || !is_length2_valid (digits, 5,5))
+                {
+                        return NULL;
+                }
+                flags = BARCODE_ISBN;
+        }
+        else if (g_ascii_strcasecmp (id, "Code39") == 0)
+        {
+                flags = BARCODE_39;
+        }
+        else if (g_ascii_strcasecmp (id, "Code128") == 0)
+        {
+                flags = BARCODE_128;
+        }
+        else if (g_ascii_strcasecmp (id, "Code128C") == 0)
+        {
+                flags = BARCODE_128C;
+        }
+        else if (g_ascii_strcasecmp (id, "Code128B") == 0)
+        {
+                flags = BARCODE_128B;
+        }
+        else if (g_ascii_strcasecmp (id, "I25") == 0)
+        {
+                flags = BARCODE_I25;
+        }
+        else if (g_ascii_strcasecmp (id, "CBR") == 0)
+        {
+                flags = BARCODE_CBR;
+        }
+        else if (g_ascii_strcasecmp (id, "MSI") == 0)
+        {
+                flags = BARCODE_MSI;
+        }
+        else if (g_ascii_strcasecmp (id, "PLS") == 0)
+        {
+                flags = BARCODE_PLS;
+        }
+        else if (g_ascii_strcasecmp (id, "Code93") == 0)
+        {
+                flags = BARCODE_93;
+        }
+        else
+        {
+                g_message( "Illegal barcode id %s", id );
+                flags = BARCODE_ANY;
+        }
+
+
+        bci = Barcode_Create ((char *)digits);
+
+        /* First encode using GNU Barcode library */
+        if (!text_flag)
+        {
+                flags |= BARCODE_NO_ASCII;
+        }
+        if (!checksum_flag)
+        {
+                flags |= BARCODE_NO_CHECKSUM;
+        }
+
+        bci->scalef = 0.0;
+        bci->width  = w;
+        bci->height = h;
+
+        Barcode_Encode (bci, flags);
+        if (!bci->partial || !bci->textinfo)
+        {
+                Barcode_Delete (bci);
+                return NULL;
+        }
+
+        /* now render with our custom back-end,
+           to create appropriate intermdediate format */
+        gbc = render_pass1 (bci, flags);
+
+        Barcode_Delete (bci);
+        return gbc;
 }
 
+
 /*--------------------------------------------------------------------------
- * PRIVATE.  Render to glBarcode intermediate representation of barcode.
+ * PRIVATE.  Render to lglBarcode intermediate representation of barcode.
  *
  *  Some of this code is borrowed from the postscript renderer (ps.c)
  *  from the GNU barcode library:
@@ -217,243 +279,290 @@ gl_barcode_gnubarcode_new (const gchar    *id,
  *     Copyright (C) 1999 Prosa Srl. (prosa@prosa.it)
  *
  *--------------------------------------------------------------------------*/
-static glBarcode *
+static lglBarcode *
 render_pass1 (struct Barcode_Item *bci,
-             gint                 flags)
+              gint                 flags)
 {
-       gint           validbits = BARCODE_NO_ASCII;
-       glBarcode     *gbc;
-       glBarcodeLine *line;
-       glBarcodeChar *bchar;
-       gdouble        scalef = 1.0;
-       gdouble        x;
-       gint           i, j, barlen;
-       gdouble        f1, f2;
-       gint           mode = '-'; /* text below bars */
-       gdouble        x0, y0, yr;
-       gchar         *p, c;
-
-       if (bci->width > (2*bci->margin)) {
-               bci->width -= 2*bci->margin;
-       }
-       if (bci->height > (2*bci->margin)) {
-               bci->height -= 2*bci->margin;
-       }
-
-       /* If any flag is clear in "flags", inherit it from "bci->flags" */
-       if (!(flags & BARCODE_NO_ASCII)) {
-               flags |= bci->flags & BARCODE_NO_ASCII;
-       }
-       flags = bci->flags = (flags & validbits) | (bci->flags & ~validbits);
-
-       /* First calculate barlen */
-       barlen = bci->partial[0] - '0';
-       for (p = bci->partial + 1; *p != 0; p++) {
-               if (isdigit (*p)) {
-                       barlen += *p - '0';
-               } else {
-                       if ((*p != '+') && (*p != '-')) {
-                               barlen += *p - 'a' + 1;
-                       }
-               }
-       }
-
-       /* The scale factor depends on bar length */
-       if (!bci->scalef) {
-               if (!bci->width) bci->width = barlen; /* default */
-               scalef = bci->scalef = (double)bci->width / (double)barlen;
-               if (scalef < 0.5) scalef = 0.5;
-       }
-
-       /* The width defaults to "just enough" */
-       bci->width = barlen * scalef + 1;
-
-       /* But it can be too small, in this case enlarge and center the area */
-       if (bci->width < barlen * scalef) {
-               int wid = barlen * scalef + 1;
-               bci->xoff -= (wid - bci->width)/2 ;
-               bci->width = wid;
-               /* Can't extend too far on the left */
-               if (bci->xoff < 0) {
-                       bci->width += -bci->xoff;
-                       bci->xoff = 0;
-               }
-       }
-
-       /* The height defaults to 80 points (rescaled) */
-       if (!bci->height)
-               bci->height = 80 * scalef;
-
-       /* If too small (5 + text), reduce the scale factor and center */
-       i = 5 + 10 * ((bci->flags & BARCODE_NO_ASCII)==0);
-       if (bci->height < i * scalef ) {
-#if 0
-               double scaleg = ((double)bci->height) / i;
-               int wid = bci->width * scaleg / scalef;
-               bci->xoff += (bci->width - wid)/2;
-               bci->width = wid;
-               scalef = scaleg;
-#else
-               bci->height = i * scalef;
-#endif
-       }
-
-       gbc = g_new0 (glBarcode, 1);
-
-       /* Now traverse the code string and create a list of lines */
-       x = bci->margin + (bci->partial[0] - '0') * scalef;
-       for (p = bci->partial + 1, i = 1; *p != 0; p++, i++) {
-               /* special cases: '+' and '-' */
-               if (*p == '+' || *p == '-') {
-                       mode = *p;      /* don't count it */
-                       i++;
-                       continue;
-               }
-               /* j is the width of this bar/space */
-               if (isdigit (*p))
-                       j = *p - '0';
-               else
-                       j = *p - 'a' + 1;
-               if (i % 2) {    /* bar */
-                       x0 = x + (j * scalef) / 2;
-                       y0 = bci->margin;
-                       yr = bci->height;
-                       if (!(bci->flags & BARCODE_NO_ASCII)) { /* leave space for text */
-                               if (mode == '-') {
-                                       /* text below bars: 10 or 5 points */
-                                       yr -= (isdigit (*p) ? 10 : 5) * scalef;
-                               } else {        /* '+' */
-                                       /* above bars: 10 or 0 from bottom,
-                                          and 10 from top */
-                                       y0 += 10 * scalef;
-                                       yr -= (isdigit (*p) ? 20 : 10) * scalef;
-                               }
-                       }
-                       line = g_new0 (glBarcodeLine, 1);
-                       line->x = x0;
-                       line->y = y0;
-                       line->length = yr;
-                       line->width = (j * scalef) - SHRINK_AMOUNT;
-                       gbc->lines = g_list_append (gbc->lines, line);
-               }
-               x += j * scalef;
-
-       }
-
-       /* Now the text */
-       mode = '-';             /* reinstantiate default */
-       if (!(bci->flags & BARCODE_NO_ASCII)) {
-               for (p = bci->textinfo; p; p = strchr (p, ' ')) {
-                       while (*p == ' ')
-                               p++;
-                       if (!*p)
-                               break;
-                       if (*p == '+' || *p == '-') {
-                               mode = *p;
-                               continue;
-                       }
-                       if (sscanf (p, "%lf:%lf:%c", &f1, &f2, &c) != 3) {
-                               g_message ("impossible data: %s", p);
-                               continue;
-                       }
-                       bchar = g_new0 (glBarcodeChar, 1);
-                       bchar->x = f1 * scalef + bci->margin;
-                       if (mode == '-') {
-                               bchar->y =
-                                   bci->margin + bci->height - 8 * scalef;
-                       } else {
-                               bchar->y = bci->margin;
-                       }
-                       bchar->fsize = f2 * FONT_SCALE * scalef;
-                       bchar->c = c;
-                       gbc->chars = g_list_append (gbc->chars, bchar);
-               }
-       }
-
-       /* Fill in other info */
-       gbc->height = bci->height + 2.0 * bci->margin;
-       gbc->width = bci->width + 2.0 * bci->margin;
-
-#if 0
-       g_print ("w=%f, h=%f\n", gbc->width, gbc->height);
-#endif
-
-       return gbc;
+        gint                 validbits = BARCODE_NO_ASCII;
+        lglBarcode          *gbc;
+        gdouble              scalef = 1.0;
+        gdouble              x;
+        gint                 i, j, barlen;
+        gdouble              f1, f2;
+        gint                 mode = '-'; /* text below bars */
+        gdouble              x0, y0, yr;
+        gchar               *p, c;
+
+        if (bci->width > (2*bci->margin))
+        {
+                bci->width -= 2*bci->margin;
+        }
+        if (bci->height > (2*bci->margin))
+        {
+                bci->height -= 2*bci->margin;
+        }
+
+        /* If any flag is clear in "flags", inherit it from "bci->flags" */
+        if (!(flags & BARCODE_NO_ASCII))
+        {
+                flags |= bci->flags & BARCODE_NO_ASCII;
+        }
+        flags = bci->flags = (flags & validbits) | (bci->flags & ~validbits);
+
+        /* First calculate barlen */
+        barlen = bci->partial[0] - '0';
+        for (p = bci->partial + 1; *p != 0; p++)
+        {
+                if (isdigit (*p))
+                {
+                        barlen += *p - '0';
+                }
+                else
+                {
+                        if ((*p != '+') && (*p != '-'))
+                        {
+                                barlen += *p - 'a' + 1;
+                        }
+                }
+        }
+
+        /* The scale factor depends on bar length */
+        if (!bci->scalef)
+        {
+                if (!bci->width)
+                {
+                        bci->width = barlen; /* default */
+                }
+                scalef = bci->scalef = (double)bci->width / (double)barlen;
+                if (scalef < 0.5)
+                {
+                        scalef = 0.5;
+                }
+        }
+
+        /* The width defaults to "just enough" */
+        bci->width = barlen * scalef + 1;
+
+        /* But it can be too small, in this case enlarge and center the area */
+        if (bci->width < barlen * scalef)
+        {
+                int wid = barlen * scalef + 1;
+                bci->xoff -= (wid - bci->width)/2 ;
+                bci->width = wid;
+                /* Can't extend too far on the left */
+                if (bci->xoff < 0)
+                {
+                        bci->width += -bci->xoff;
+                        bci->xoff = 0;
+                }
+        }
+
+        /* The height defaults to 80 points (rescaled) */
+        if (!bci->height)
+        {
+                bci->height = 80 * scalef;
+        }
+
+        /* If too small (5 + text), reduce the scale factor and center */
+        i = 5 + 10 * ((bci->flags & BARCODE_NO_ASCII)==0);
+        if (bci->height < i * scalef )
+        {
+                bci->height = i * scalef;
+        }
+
+        gbc = lgl_barcode_new ();
+
+        /* Now traverse the code string and create a list of lines */
+        x = bci->margin + (bci->partial[0] - '0') * scalef;
+        for (p = bci->partial + 1, i = 1; *p != 0; p++, i++)
+        {
+                /* special cases: '+' and '-' */
+                if (*p == '+' || *p == '-')
+                {
+                        mode = *p;        /* don't count it */
+                        i++;
+                        continue;
+                }
+                /* j is the width of this bar/space */
+                if (isdigit (*p))
+                {
+                        j = *p - '0';
+                }
+                else
+                {
+                        j = *p - 'a' + 1;
+                }
+                if (i % 2)
+                {
+                        /* bar */
+                        x0 = x + (j * scalef) / 2;
+                        y0 = bci->margin;
+                        yr = bci->height;
+                        if (!(bci->flags & BARCODE_NO_ASCII))
+                        {
+                                /* leave space for text */
+                                if (mode == '-')
+                                {
+                                        /* text below bars: 10 or 5 points */
+                                        yr -= (isdigit (*p) ? 10 : 5) * scalef;
+                                }
+                                else
+                                {
+                                        /* '+' */
+                                        /* above bars: 10 or 0 from bottom,
+                                           and 10 from top */
+                                        y0 += 10 * scalef;
+                                        yr -= (isdigit (*p) ? 20 : 10) * scalef;
+                                }
+                        }
+                        lgl_barcode_add_line (gbc, x0, y0, yr, (j * scalef) - SHRINK_AMOUNT);
+                }
+                x += j * scalef;
+
+        }
+
+        /* Now the text */
+        mode = '-';                /* reinstantiate default */
+        if (!(bci->flags & BARCODE_NO_ASCII))
+        {
+                for (p = bci->textinfo; p; p = strchr (p, ' '))
+                {
+                        while (*p == ' ')
+                        {
+                                p++;
+                        }
+                        if (!*p)
+                        {
+                                break;
+                        }
+                        if (*p == '+' || *p == '-')
+                        {
+                                mode = *p;
+                                continue;
+                        }
+                        if (sscanf (p, "%lf:%lf:%c", &f1, &f2, &c) != 3)
+                        {
+                                g_message ("impossible data: %s", p);
+                                continue;
+                        }
+                        x0 = f1 * scalef + bci->margin;
+                        if (mode == '-')
+                        {
+                                y0 = bci->margin + bci->height - 8 * scalef;
+                        }
+                        else
+                        {
+                                y0 = bci->margin;
+                        }
+                        lgl_barcode_add_char (gbc, x0, y0, (f2 * FONT_SCALE * scalef), c);
+                }
+        }
+
+        /* Fill in other info */
+        gbc->height = bci->height + 2.0 * bci->margin;
+        gbc->width = bci->width + 2.0 * bci->margin;
+
+        return gbc;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* Validate specific length of string (for subtypes).                       */
 /*--------------------------------------------------------------------------*/
 static gboolean
 is_length_valid (const gchar *digits,
-                gint         n1,
-                gint         n2)
+                 gint         n1,
+                 gint         n2)
 {
-       gchar *p;
-       gint   i;
-
-       if (!digits) {
-               return FALSE;
-       }
-
-       for (p = (gchar *)digits, i=0; *p != 0; p++) {
-               if (g_ascii_isdigit (*p)) {
-                       i++;
-               }
-       }
-
-       return (i >= n1) && (i <= n2);
+        gchar *p;
+        gint   i;
+
+        if (!digits)
+        {
+                return FALSE;
+        }
+
+        for (p = (gchar *)digits, i=0; *p != 0; p++)
+        {
+                if (g_ascii_isdigit (*p))
+                {
+                        i++;
+                }
+        }
+
+        return (i >= n1) && (i <= n2);
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* Validate specific length of string (for subtypes).                       */
 /*--------------------------------------------------------------------------*/
 static gboolean
 is_length1_valid (const gchar *digits,
-                 gint         n1,
-                 gint         n2)
+                  gint         n1,
+                  gint         n2)
 {
-       gchar *p;
-       gint   i;
-
-       if (!digits) {
-               return FALSE;
-       }
-
-       for (p = (gchar *)digits, i=0; !g_ascii_isspace (*p) && *p != 0; p++) {
-               if (g_ascii_isdigit (*p)) {
-                       i++;
-               }
-       }
-
-       return (i >= n1) && (i <= n2);
+        gchar *p;
+        gint   i;
+
+        if (!digits)
+        {
+                return FALSE;
+        }
+
+        for (p = (gchar *)digits, i=0; !g_ascii_isspace (*p) && *p != 0; p++)
+        {
+                if (g_ascii_isdigit (*p))
+                {
+                        i++;
+                }
+        }
+
+        return (i >= n1) && (i <= n2);
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* Validate specific length of second string (for subtypes).                */
 /*--------------------------------------------------------------------------*/
 static gboolean
 is_length2_valid (const gchar *digits,
-                 gint         n1,
-                 gint         n2)
+                  gint         n1,
+                  gint         n2)
 {
-       gchar *p;
-       gint   i;
+        gchar *p;
+        gint   i;
+
+        if (!digits)
+        {
+                return FALSE;
+        }
+
+        for (p = (gchar *)digits; !g_ascii_isspace (*p) && (*p != 0); p++)
+        {
+                /* Skip over 1st string */
+        }
+
+        for (i=0; *p != 0; p++)
+        {
+                if (g_ascii_isdigit (*p))
+                {
+                        i++;
+                }
+        }
+
+        return (i >= n1) && (i <= n2);
+}
 
-       if (!digits) {
-               return FALSE;
-       }
+#endif /* HAVE_LIBBARCODE */
 
-       for (p = (gchar *)digits; !g_ascii_isspace (*p) && (*p != 0); p++) {
-               /* Skip over 1st string */
-       }
 
-       for (i=0; *p != 0; p++) {
-               if (g_ascii_isdigit (*p)) {
-                       i++;
-               }
-       }
-
-       return (i >= n1) && (i <= n2);
-}
 
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 1e91d998b3b96b0fe024f8e3bf1147fb0dbac29c..6441a48b41618cb5fbc7fa8ee16b1628c53e8168 100644 (file)
@@ -1,40 +1,48 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  bc_gnubarcode.h:  front-end to GNU-barcode-library module header file
+ *  bc-gnubarcode.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #ifndef __BC_GNUBARCODE_H__
 #define __BC_GNUBARCODE_H__
 
-#include "bc.h"
+#include <libglbarcode.h>
 
 G_BEGIN_DECLS
 
-glBarcode *gl_barcode_gnubarcode_new (const gchar    *id,
-                                     gboolean        text_flag,
-                                     gboolean        checksum_flag,
-                                     gdouble         w,
-                                     gdouble         h,
-                                     const gchar    *digits);
+lglBarcode *gl_barcode_gnubarcode_new (const gchar    *id,
+                                       gboolean        text_flag,
+                                       gboolean        checksum_flag,
+                                       gdouble         w,
+                                       gdouble         h,
+                                       const gchar    *digits);
 
 G_END_DECLS
 
 #endif /* __BC_GNUBARCODE_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 8fb87fc4a987c4fce14adafaa3648b86f11b3516..a031ef3ab4ca3c8564e3747409bc5699fbce526b 100644 (file)
@@ -1,58 +1,58 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  bc-iec16022.c:  front-end to iec16022-library module
+ *  bc-iec16022.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2006  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 
+#ifdef HAVE_LIBIEC16022
+
 #include "bc-iec16022.h"
 
+#include <glib.h>
 #include <ctype.h>
 #include <string.h>
 #include <stdlib.h>
-#include <glib/gmessages.h>
-
-#include "iec16022ecc200.h"
+#include <iec16022ecc200.h>
 
 #include "debug.h"
 
+
 /*========================================================*/
 /* Private macros and constants.                          */
 /*========================================================*/
 #define MIN_PIXEL_SIZE 1.0
 
+
 /*===========================================*/
 /* Local function prototypes                 */
 /*===========================================*/
-static glBarcode *render_iec16022 (const gchar *grid,
-                                   gint         i_width,
-                                   gint         i_height,
-                                   gdouble      w,
-                                   gdouble      h);
+static lglBarcode *render_iec16022 (const gchar *grid,
+                                    gint         i_width,
+                                    gint         i_height,
+                                    gdouble      w,
+                                    gdouble      h);
+
 
 /*****************************************************************************/
 /* Generate intermediate representation of barcode.                          */
 /*****************************************************************************/
-glBarcode *
+lglBarcode *
 gl_barcode_iec16022_new (const gchar    *id,
                          gboolean        text_flag,
                          gboolean        checksum_flag,
@@ -62,9 +62,9 @@ gl_barcode_iec16022_new (const gchar    *id,
 {
         gchar               *grid;
         gint                 i_width, i_height;
-        glBarcode           *gbc;
+        lglBarcode          *gbc;
 
-        if ( strlen (digits) == 0 )
+        if ( *digits == '\0' )
         {
                 return NULL;
         }
@@ -84,29 +84,32 @@ gl_barcode_iec16022_new (const gchar    *id,
         return gbc;
 }
 
+
 /*--------------------------------------------------------------------------
- * PRIVATE.  Render to glBarcode intermediate representation of barcode.
+ * PRIVATE.  Render to lglBarcode intermediate representation of barcode.
  *--------------------------------------------------------------------------*/
-static glBarcode *
+static lglBarcode *
 render_iec16022 (const gchar *grid,
                  gint         i_width,
                  gint         i_height,
                  gdouble      w,
                  gdouble      h)
 {
-        glBarcode     *gbc;
-        glBarcodeLine *line;
-        gint           x, y;
-        gdouble        aspect_ratio, pixel_size;
-
-       /* Treat requested size as a bounding box, scale to maintain aspect
-        * ratio while fitting it in this bounding box. */
-       aspect_ratio = (gdouble)i_height / (gdouble)i_width;
-       if ( h > w*aspect_ratio ) {
-               h = w * aspect_ratio;
-       } else {
-               w = h / aspect_ratio;
-       }
+        lglBarcode         *gbc;
+        gint                x, y;
+        gdouble             aspect_ratio, pixel_size;
+
+        /* Treat requested size as a bounding box, scale to maintain aspect
+         * ratio while fitting it in this bounding box. */
+        aspect_ratio = (gdouble)i_height / (gdouble)i_width;
+        if ( h > w*aspect_ratio )
+        {
+                h = w * aspect_ratio;
+        }
+        else
+        {
+                w = h / aspect_ratio;
+        }
 
         /* Now determine pixel size. */
         pixel_size = w / i_width;
@@ -115,7 +118,7 @@ render_iec16022 (const gchar *grid,
                 pixel_size = MIN_PIXEL_SIZE;
         }
 
-        gbc = g_new0 (glBarcode, 1);
+        gbc = lgl_barcode_new ();
 
         /* Now traverse the code string and create a list of boxes */
         for ( y = i_height-1; y >= 0; y-- )
@@ -126,12 +129,7 @@ render_iec16022 (const gchar *grid,
 
                         if (*grid++)
                         {
-                                line = g_new0 (glBarcodeLine, 1);
-                                line->x      = x*pixel_size + pixel_size/2.0;
-                                line->y      = y*pixel_size;
-                                line->length = pixel_size;
-                                line->width  = pixel_size;
-                                gbc->lines = g_list_append (gbc->lines, line);
+                                lgl_barcode_add_box (gbc, x*pixel_size, y*pixel_size, pixel_size, pixel_size);
                         }
 
                 }
@@ -142,10 +140,18 @@ render_iec16022 (const gchar *grid,
         gbc->height = i_height * pixel_size;
         gbc->width  = i_width  * pixel_size;
 
-#if 0
-        g_print ("w=%f, h=%f\n", gbc->width, gbc->height);
-#endif
-
         return gbc;
 }
 
+#endif /* HAVE_LIBIEC16022 */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 099387acfd3e54938a5ae402e8fd0f3b07ccfbda..8695408cc31a186f4212c554f0532e365a461528 100644 (file)
@@ -1,40 +1,48 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  bc_iec16022.h:  front-end to iec16022-library module header file
+ *  bc-iec16022.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2006  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #ifndef __BC_IEC16022_H__
 #define __BC_IEC16022_H__
 
-#include "bc.h"
+#include <libglbarcode.h>
 
 G_BEGIN_DECLS
 
-glBarcode *gl_barcode_iec16022_new (const gchar    *id,
-                                    gboolean        text_flag,
-                                    gboolean        checksum_flag,
-                                    gdouble         w,
-                                    gdouble         h,
-                                    const gchar    *digits);
+lglBarcode *gl_barcode_iec16022_new (const gchar    *id,
+                                     gboolean        text_flag,
+                                     gboolean        checksum_flag,
+                                     gdouble         w,
+                                     gdouble         h,
+                                     const gchar    *digits);
 
 G_END_DECLS
 
 #endif /* __BC_IEC16022_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/bc-iec18004.c b/src/bc-iec18004.c
new file mode 100644 (file)
index 0000000..e27db05
--- /dev/null
@@ -0,0 +1,166 @@
+/*
+ *  bc-iec18004.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#ifdef HAVE_LIBQRENCODE
+
+#include "bc-iec18004.h"
+
+#include <glib.h>
+#include <ctype.h>
+#include <string.h>
+#include <stdlib.h>
+#include <qrencode.h>
+
+#include "debug.h"
+
+
+/*========================================================*/
+/* Private macros and constants.                          */
+/*========================================================*/
+
+#define MIN_PIXEL_SIZE 1.0
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+static lglBarcode *render_iec18004 (const gchar *grid,
+                                    gint         i_width,
+                                    gint         i_height,
+                                    gdouble      w,
+                                    gdouble      h);
+
+
+/*****************************************************************************/
+/* Generate intermediate representation of barcode.                          */
+/*****************************************************************************/
+lglBarcode *
+gl_barcode_iec18004_new (const gchar    *id,
+                         gboolean        text_flag,
+                         gboolean        checksum_flag,
+                         gdouble         w,
+                         gdouble         h,
+                         const gchar    *digits)
+{
+        gint             i_width, i_height;
+        lglBarcode      *gbc;
+        QRcode          *qrcode;
+
+        if ( *digits == '\0' )
+        {
+                return NULL;
+        }
+
+        i_width  = 0;
+        i_height = 0;
+
+        qrcode = QRcode_encodeString ((const char *)digits, 0, QR_ECLEVEL_M,
+                                      QR_MODE_8, 1);
+        if (qrcode == NULL)
+        {
+                return NULL;
+        }
+        
+        i_width = i_height = qrcode->width;
+        gbc = render_iec18004 ((const gchar *)qrcode->data, i_width, i_height,
+                               w, h);
+
+        QRcode_free ( qrcode );
+
+        return gbc;
+}
+
+
+/*--------------------------------------------------------------------------
+ * PRIVATE.  Render to lglBarcode intermediate representation of barcode.
+ *--------------------------------------------------------------------------*/
+static lglBarcode *
+render_iec18004 (const gchar *grid,
+                 gint         i_width,
+                 gint         i_height,
+                 gdouble      w,
+                 gdouble      h)
+{
+        lglBarcode         *gbc;
+        gint                x, y;
+        gdouble             aspect_ratio, pixel_size;
+
+        /* Treat requested size as a bounding box, scale to maintain aspect
+         * ratio while fitting it in this bounding box. */
+        aspect_ratio = (gdouble)i_height / (gdouble)i_width;
+        if ( h > w*aspect_ratio )
+        {
+                h = w * aspect_ratio;
+        }
+        else
+        {
+                w = h / aspect_ratio;
+        }
+
+        /* Now determine pixel size. */
+        pixel_size = w / i_width;
+        if ( pixel_size < MIN_PIXEL_SIZE )
+        {
+                pixel_size = MIN_PIXEL_SIZE;
+        }
+
+        gbc = lgl_barcode_new ();
+
+        /* Now traverse the code string and create a list of boxes */
+        for ( y = 0; y < i_height; y++ )
+        {
+                for ( x = 0; x < i_width; x++ )
+                {
+
+                        /* Symbol data is represented as an array contains 
+                         * width*width uchars. Each uchar represents a module 
+                         * (dot). If the less significant bit of the uchar 
+                         * is 1, the corresponding module is black. The other
+                         * bits are meaningless for us. */
+                        if ((*grid++) & 1)
+                        {
+                                lgl_barcode_add_box (gbc, x*pixel_size, y*pixel_size, pixel_size, pixel_size);
+                        }
+
+                }
+
+        }
+
+        /* Fill in other info */
+        gbc->height = i_height * pixel_size;
+        gbc->width  = i_width  * pixel_size;
+
+        return gbc;
+}
+
+#endif /* HAVE_LIBQRENCODE */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/bc-iec18004.h b/src/bc-iec18004.h
new file mode 100644 (file)
index 0000000..99d3c3d
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ *  bc-iec18004.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __BC_IEC18004_H__
+#define __BC_IEC18004_H__
+
+#include <libglbarcode.h>
+
+G_BEGIN_DECLS
+
+lglBarcode *gl_barcode_iec18004_new (const gchar    *id,
+                                     gboolean        text_flag,
+                                     gboolean        checksum_flag,
+                                     gdouble         w,
+                                     gdouble         h,
+                                     const gchar    *digits);
+
+G_END_DECLS
+
+#endif /* __BC_IEC18004_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/bc-postnet.c b/src/bc-postnet.c
deleted file mode 100644 (file)
index 5b710c0..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  bc_postnet.c:  GLabels POSTNET barcode module
- *
- *  Copyright (C) 2001-2003  Jim Evins <evins@snaught.com>.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-
-/*
- * This module implements the POSTNET barcode specified in the USPS
- * publication 25, Mar 2001.
- */
-
-#include <config.h>
-
-#include "bc-postnet.h"
-
-#include <ctype.h>
-#include <glib/gstring.h>
-#include <glib/gstrfuncs.h>
-#include <glib/gmessages.h>
-
-#include "debug.h"
-
-/*========================================================*/
-/* Private macros and constants.                          */
-/*========================================================*/
-#define POSTNET_BAR_WIDTH      1.25
-#define POSTNET_FULLBAR_HEIGHT 9.00
-#define POSTNET_HALFBAR_HEIGHT 3.50
-#define POSTNET_BAR_PITCH      3.25
-#define POSTNET_HORIZ_MARGIN   9.00
-#define POSTNET_VERT_MARGIN    3.00
-
-/*===========================================*/
-/* Private globals                           */
-/*===========================================*/
-static gchar *symbols[] = {
-       /* 0 */ "11000",
-       /* 1 */ "00011",
-       /* 2 */ "00101",
-       /* 3 */ "00110",
-       /* 4 */ "01001",
-       /* 5 */ "01010",
-       /* 6 */ "01100",
-       /* 7 */ "10001",
-       /* 8 */ "10010",
-       /* 9 */ "10100",
-};
-
-static gchar *frame_symbol = "1";
-
-/*===========================================*/
-/* Local function prototypes                 */
-/*===========================================*/
-static gchar    *postnet_code    (const gchar *digits);
-
-static gboolean  is_length_valid (const gchar *digits,
-                                 gint         n);
-
-\f
-/****************************************************************************/
-/* Generate list of lines that form the barcode for the given digits.       */
-/****************************************************************************/
-glBarcode *
-gl_barcode_postnet_new (const gchar    *id,
-                       gboolean        text_flag,
-                       gboolean        checksum_flag,
-                       gdouble         w,
-                       gdouble         h,
-                       const gchar    *digits)
-{
-       gchar         *code, *p;
-       glBarcode     *gbc;
-       glBarcodeLine *line;
-       gdouble        x;
-
-       /* Validate code length for all subtypes. */
-       if ( (g_strcasecmp (id, "POSTNET") == 0) ) {
-               if (!is_length_valid (digits, 5) &&
-                   !is_length_valid (digits, 9) &&
-                   !is_length_valid (digits, 11)) {
-                       return NULL;
-               }
-       }
-       if ( (g_strcasecmp (id, "POSTNET-5") == 0) ) {
-               if (!is_length_valid (digits, 5)) {
-                       return NULL;
-               }
-       }
-       if ( (g_strcasecmp (id, "POSTNET-9") == 0) ) {
-               if (!is_length_valid (digits, 9)) {
-                       return NULL;
-               }
-       }
-       if ( (g_strcasecmp (id, "POSTNET-11") == 0) ) {
-               if (!is_length_valid (digits, 11)) {
-                       return NULL;
-               }
-       }
-       if ( (g_strcasecmp (id, "CEPNET") == 0) ) {
-               if (!is_length_valid (digits, 8)) {
-                       return NULL;
-               }
-       }
-
-       /* First get code string */
-       code = postnet_code (digits);
-       if (code == NULL) {
-               return NULL;
-       }
-
-       gbc = g_new0 (glBarcode, 1);
-
-       /* Now traverse the code string and create a list of lines */
-       x = POSTNET_HORIZ_MARGIN;
-       for (p = code; *p != 0; p++) {
-               line = g_new0 (glBarcodeLine, 1);
-               line->x = x;
-               line->y = POSTNET_VERT_MARGIN;
-               if (*p == '0') {
-                       line->y +=
-                           POSTNET_FULLBAR_HEIGHT - POSTNET_HALFBAR_HEIGHT;
-                       line->length = POSTNET_HALFBAR_HEIGHT;
-               } else {
-                       line->length = POSTNET_FULLBAR_HEIGHT;
-               }
-               line->width = POSTNET_BAR_WIDTH;
-
-               gbc->lines = g_list_append (gbc->lines, line);
-
-               x += POSTNET_BAR_PITCH;
-       }
-
-       g_free (code);
-
-       gbc->width = x + POSTNET_HORIZ_MARGIN;
-       gbc->height = POSTNET_FULLBAR_HEIGHT + 2 * POSTNET_VERT_MARGIN;
-
-       gbc->chars = NULL;
-
-       return gbc;
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Generate string of symbols, representing barcode.              */
-/*--------------------------------------------------------------------------*/
-static gchar *
-postnet_code (const gchar *digits)
-{
-       gchar   *p;
-       gint     len;
-       gint     d, sum;
-       GString *code;
-       gchar   *ret;
-
-       /* Left frame bar */
-       code = g_string_new (frame_symbol);
-
-       sum = 0;
-       for (p = (gchar *)digits, len = 0; (*p != 0) && (len < 11); p++) {
-               if (g_ascii_isdigit (*p)) {
-                       /* Only translate valid characters (0-9) */
-                       d = (*p) - '0';
-                       sum += d;
-                       code = g_string_append (code, symbols[d]);
-                       len++;
-               }
-       }
-
-       /* Create correction character */
-       d = (10 - (sum % 10)) % 10;
-       code = g_string_append (code, symbols[d]);
-
-       /* Right frame bar */
-       code = g_string_append (code, frame_symbol);
-
-       ret = g_strdup (code->str);
-       g_string_free (code, TRUE);
-
-       return ret;
-}
-
-/*--------------------------------------------------------------------------*/
-/* Validate specific length of string (for subtypes).                       */
-/*--------------------------------------------------------------------------*/
-static gboolean
-is_length_valid (const gchar *digits,
-                gint         n)
-{
-       gchar *p;
-       gint   i;
-
-       if (!digits) {
-               return FALSE;
-       }
-
-       for (p = (gchar *)digits, i=0; *p != 0; p++) {
-               if (g_ascii_isdigit (*p)) {
-                       i++;
-               }
-       }
-
-       return (i == n);
-}
-
diff --git a/src/bc-postnet.h b/src/bc-postnet.h
deleted file mode 100644 (file)
index 6e642ab..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  bc_postnet.h:  GLabels POSTNET barcode module header file
- *
- *  Copyright (C) 2001-2003  Jim Evins <evins@snaught.com>.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-#ifndef __BC_POSTNET_H__
-#define __BC_POSTNET_H__
-
-#include "bc.h"
-
-G_BEGIN_DECLS
-
-glBarcode *gl_barcode_postnet_new (const gchar    *id,
-                                  gboolean        text_flag,
-                                  gboolean        checksum_flag,
-                                  gdouble         w,
-                                  gdouble         h,
-                                  const gchar    *digits);
-
-G_END_DECLS
-
-#endif /* __BC_POSTNET_H__ */
diff --git a/src/bc-zint.c b/src/bc-zint.c
new file mode 100644 (file)
index 0000000..015196e
--- /dev/null
@@ -0,0 +1,231 @@
+/*
+ *  bc-zint.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#ifdef HAVE_LIBZINT
+
+#include "bc-zint.h"
+
+#include <glib.h>
+#include <ctype.h>
+#include <string.h>
+#include <zint.h> /* Zint */
+
+#include "debug.h"
+
+
+/*========================================================*/
+/* Private macros and constants.                          */
+/*========================================================*/
+#define DEFAULT_W 144
+#define DEFAULT_H  72
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+static lglBarcode *render_zint     (struct zint_symbol *symbol, gboolean text_flag);
+
+
+
+/*****************************************************************************/
+/* Generate intermediate representation of barcode.                          */
+/*****************************************************************************/
+lglBarcode *
+gl_barcode_zint_new (const gchar          *id,
+                           gboolean        text_flag,
+                           gboolean        checksum_flag,
+                           gdouble         w,
+                           gdouble         h,
+                           const gchar    *digits)
+{
+        lglBarcode          *gbc;
+        struct zint_symbol  *symbol;
+        gint                 result;
+
+        symbol = ZBarcode_Create();
+
+        /* Auto set to default size */
+        if ( (w == 0) && (h == 0) )
+        {
+                w = DEFAULT_W;
+                h = DEFAULT_H;
+        }
+
+        /* Assign type flag.  Pre-filter by length for subtypes. */
+        if (g_ascii_strcasecmp (id, "AUSP") == 0)     { symbol->symbology = BARCODE_AUSPOST; }
+        if (g_ascii_strcasecmp (id, "AUSRP") == 0)    { symbol->symbology = BARCODE_AUSREPLY; }
+        if (g_ascii_strcasecmp (id, "AUSRT") == 0)    { symbol->symbology = BARCODE_AUSROUTE; }
+        if (g_ascii_strcasecmp (id, "AUSRD") == 0)    { symbol->symbology = BARCODE_AUSREDIRECT; }
+        if (g_ascii_strcasecmp (id, "AZTEC") == 0)    { symbol->symbology = BARCODE_AZTEC; }
+        if (g_ascii_strcasecmp (id, "AZRUN") == 0)    { symbol->symbology = BARCODE_AZRUNE; }
+        if (g_ascii_strcasecmp (id, "CBR") == 0)      { symbol->symbology = BARCODE_CODABAR; }
+        if (g_ascii_strcasecmp (id, "Code1") == 0)    { symbol->symbology = BARCODE_CODEONE; }
+        if (g_ascii_strcasecmp (id, "Code11") == 0)   { symbol->symbology = BARCODE_CODE11; }
+        if (g_ascii_strcasecmp (id, "C16K") == 0)     { symbol->symbology = BARCODE_CODE16K; }
+        if (g_ascii_strcasecmp (id, "C25M") == 0)     { symbol->symbology = BARCODE_C25MATRIX; }
+        if (g_ascii_strcasecmp (id, "C25I") == 0)     { symbol->symbology = BARCODE_C25IATA; }
+        if (g_ascii_strcasecmp (id, "C25DL") == 0)    { symbol->symbology = BARCODE_C25LOGIC; }
+        if (g_ascii_strcasecmp (id, "Code32") == 0)   { symbol->symbology = BARCODE_CODE32; }
+        if (g_ascii_strcasecmp (id, "Code39") == 0)   { symbol->symbology = BARCODE_CODE39; }
+        if (g_ascii_strcasecmp (id, "Code39E") == 0)  { symbol->symbology = BARCODE_EXCODE39; }
+        if (g_ascii_strcasecmp (id, "Code49") == 0)   { symbol->symbology = BARCODE_CODE49; }
+        if (g_ascii_strcasecmp (id, "Code93") == 0)   { symbol->symbology = BARCODE_CODE93; }
+        if (g_ascii_strcasecmp (id, "Code128") == 0)  { symbol->symbology = BARCODE_CODE128; }
+        if (g_ascii_strcasecmp (id, "Code128B") == 0) { symbol->symbology = BARCODE_CODE128B; }
+        if (g_ascii_strcasecmp (id, "DAFT") == 0)     { symbol->symbology = BARCODE_DAFT; }
+        if (g_ascii_strcasecmp (id, "DMTX") == 0)     { symbol->symbology = BARCODE_DATAMATRIX; }
+        if (g_ascii_strcasecmp (id, "DPL") == 0)      { symbol->symbology = BARCODE_DPLEIT; }
+        if (g_ascii_strcasecmp (id, "DPI") == 0)      { symbol->symbology = BARCODE_DPIDENT; }
+        if (g_ascii_strcasecmp (id, "KIX") == 0)      { symbol->symbology = BARCODE_KIX; }
+        if (g_ascii_strcasecmp (id, "EAN") == 0)      { symbol->symbology = BARCODE_EANX; }
+        if (g_ascii_strcasecmp (id, "HIBC128") == 0)  { symbol->symbology = BARCODE_HIBC_128; }
+        if (g_ascii_strcasecmp (id, "HIBC39") == 0)   { symbol->symbology = BARCODE_HIBC_39; }
+        if (g_ascii_strcasecmp (id, "HIBCDM") == 0)   { symbol->symbology = BARCODE_HIBC_DM; }
+        if (g_ascii_strcasecmp (id, "HIBCQR") == 0)   { symbol->symbology = BARCODE_HIBC_QR; }
+        if (g_ascii_strcasecmp (id, "HIBCPDF") == 0)  { symbol->symbology = BARCODE_HIBC_MICPDF; }
+        if (g_ascii_strcasecmp (id, "HIBCMPDF") == 0) { symbol->symbology = BARCODE_HIBC_AZTEC; }
+        if (g_ascii_strcasecmp (id, "HIBCAZ") == 0)   { symbol->symbology = BARCODE_C25INTER; }
+        if (g_ascii_strcasecmp (id, "I25") == 0)      { symbol->symbology = BARCODE_C25INTER; }
+        if (g_ascii_strcasecmp (id, "ISBN") == 0)     { symbol->symbology = BARCODE_ISBNX; }
+        if (g_ascii_strcasecmp (id, "ITF14") == 0)    { symbol->symbology = BARCODE_ITF14; }
+        if (g_ascii_strcasecmp (id, "GMTX") == 0)     { symbol->symbology = BARCODE_GRIDMATRIX; }
+        if (g_ascii_strcasecmp (id, "GS1-128") == 0)  { symbol->symbology = BARCODE_EAN128; }
+        if (g_ascii_strcasecmp (id, "LOGM") == 0)     { symbol->symbology = BARCODE_LOGMARS; }
+        if (g_ascii_strcasecmp (id, "RSS14") == 0)    { symbol->symbology = BARCODE_RSS14; }
+        if (g_ascii_strcasecmp (id, "RSSLTD") == 0)   { symbol->symbology = BARCODE_RSS_LTD; }
+        if (g_ascii_strcasecmp (id, "RSSEXP") == 0)   { symbol->symbology = BARCODE_RSS_EXP; }
+        if (g_ascii_strcasecmp (id, "RSSS") == 0)     { symbol->symbology = BARCODE_RSS14STACK; }
+        if (g_ascii_strcasecmp (id, "RSSSO") == 0)    { symbol->symbology = BARCODE_RSS14STACK_OMNI; }
+        if (g_ascii_strcasecmp (id, "RSSSE") == 0)    { symbol->symbology = BARCODE_RSS_EXPSTACK; }
+        if (g_ascii_strcasecmp (id, "PHARMA") == 0)   { symbol->symbology = BARCODE_PHARMA; }
+        if (g_ascii_strcasecmp (id, "PHARMA2") == 0)  { symbol->symbology = BARCODE_PHARMA_TWO; }
+        if (g_ascii_strcasecmp (id, "PZN") == 0)      { symbol->symbology = BARCODE_PZN; }
+        if (g_ascii_strcasecmp (id, "TELE") == 0)     { symbol->symbology = BARCODE_TELEPEN; }
+        if (g_ascii_strcasecmp (id, "TELEX") == 0)    { symbol->symbology = BARCODE_TELEPEN_NUM; }
+        if (g_ascii_strcasecmp (id, "JAPAN") == 0)    { symbol->symbology = BARCODE_JAPANPOST; }
+        if (g_ascii_strcasecmp (id, "KOREA") == 0)    { symbol->symbology = BARCODE_KOREAPOST; }
+        if (g_ascii_strcasecmp (id, "MAXI") == 0)     { symbol->symbology = BARCODE_MAXICODE; }
+        if (g_ascii_strcasecmp (id, "MPDF") == 0)     { symbol->symbology = BARCODE_MICROPDF417; }
+        if (g_ascii_strcasecmp (id, "MSI") == 0)      { symbol->symbology = BARCODE_MSI_PLESSEY; }
+        if (g_ascii_strcasecmp (id, "MQR") == 0)      { symbol->symbology = BARCODE_MICROQR; }
+        if (g_ascii_strcasecmp (id, "NVE") == 0)      { symbol->symbology = BARCODE_NVE18; }
+        if (g_ascii_strcasecmp (id, "PLAN") == 0)     { symbol->symbology = BARCODE_PLANET; }
+        if (g_ascii_strcasecmp (id, "POSTNET") == 0)  { symbol->symbology = BARCODE_POSTNET; }
+        if (g_ascii_strcasecmp (id, "PDF") == 0)      { symbol->symbology = BARCODE_PDF417; }
+        if (g_ascii_strcasecmp (id, "PDFT") == 0)     { symbol->symbology = BARCODE_PDF417TRUNC; }
+        if (g_ascii_strcasecmp (id, "QR") == 0)       { symbol->symbology = BARCODE_QRCODE; }
+        if (g_ascii_strcasecmp (id, "RM4") == 0)      { symbol->symbology = BARCODE_RM4SCC; }
+        if (g_ascii_strcasecmp (id, "UPC-A") == 0)    { symbol->symbology = BARCODE_UPCA; }
+        if (g_ascii_strcasecmp (id, "UPC-E") == 0)    { symbol->symbology = BARCODE_UPCE; }
+        if (g_ascii_strcasecmp (id, "USPS") == 0)     { symbol->symbology = BARCODE_ONECODE; }
+        if (g_ascii_strcasecmp (id, "PLS") == 0)      { symbol->symbology = BARCODE_PLESSEY; }
+
+
+        result = ZBarcode_Encode(symbol, (unsigned char *)digits, 0);
+        if (result)
+        {
+                gl_debug (DEBUG_BARCODE, "Zint Error: %s", symbol->errtxt);
+                ZBarcode_Delete (symbol);
+                return NULL;
+        }
+
+        if(!text_flag)
+        {
+                symbol->show_hrt = 0;
+        }
+
+        if (!ZBarcode_Render(symbol, (float) w, (float) h))
+        {
+                g_message("Zint Rendering Error: %s", symbol->errtxt);
+                ZBarcode_Delete(symbol);
+                return NULL;
+        }
+
+        /* Convert Sums provided by zint encode */
+        gbc = render_zint(symbol, text_flag);
+
+        ZBarcode_Delete(symbol);
+
+        return gbc;
+}
+
+
+/*--------------------------------------------------------------------------
+ * PRIVATE. Render to lglBarcode the provided Zint symbol.
+ *--------------------------------------------------------------------------*/
+static lglBarcode *render_zint(struct zint_symbol *symbol, gboolean text_flag)
+{
+        lglBarcode            *gbc;
+
+        struct zint_render         *render;
+        struct zint_render_line    *zline;
+        struct zint_render_string  *zstring;
+        struct zint_render_ring    *zring;
+        struct zint_render_hexagon *zhexagon;
+
+        render = symbol->rendered;
+        gbc = lgl_barcode_new ();
+
+        for ( zline = render->lines; zline != NULL; zline = zline->next )
+        {
+                lgl_barcode_add_box (gbc, zline->x, zline->y, zline->width, zline->length);
+        }
+
+        for ( zring = render->rings; zring != NULL; zring = zring->next )
+        {
+                lgl_barcode_add_ring (gbc, zring->x, zring->y, zring->radius, zring->line_width);
+        }
+
+        for ( zhexagon = render->hexagons; zhexagon != NULL; zhexagon = zhexagon->next )
+        {
+                lgl_barcode_add_hexagon (gbc, zhexagon->x, zhexagon->y, 2.89);
+        }
+
+        if(text_flag)
+        {
+                for ( zstring = render->strings; zstring != NULL; zstring = zstring->next )
+                {
+                        lgl_barcode_add_string (gbc,
+                                                zstring->x, zstring->y,
+                                                zstring->fsize, (gchar *)zstring->text, zstring->length);
+                }
+        }
+
+        /*
+         * Finally add complete sizes
+         */
+        gbc->width = (gdouble) render->width;
+        gbc->height = (gdouble) render->height;
+
+        return gbc;
+}
+
+#endif /* HAVE_LIBZINT */
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/bc-zint.h b/src/bc-zint.h
new file mode 100644 (file)
index 0000000..2355363
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ *  bc-zint.h
+ *  Copyright (C) 2010  Sam Lown <me@samlown.com>.
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __BC_ZINT_H__
+#define __BC_ZINT_H__
+
+#include <libglbarcode.h>
+
+G_BEGIN_DECLS
+
+lglBarcode *gl_barcode_zint_new (const gchar    *id,
+                                 gboolean        text_flag,
+                                 gboolean        checksum_flag,
+                                 gdouble         w,
+                                 gdouble         h,
+                                 const gchar    *digits);
+
+G_END_DECLS
+
+#endif /* __BC_ZINT_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/bc.c b/src/bc.c
deleted file mode 100644 (file)
index bcb427f..0000000
--- a/src/bc.c
+++ /dev/null
@@ -1,386 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  bc.c:  GLabels barcode module
- *
- *  Copyright (C) 2001-2003  Jim Evins <evins@snaught.com>.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-#include <config.h>
-
-#include "bc.h"
-
-#include <glib/gi18n.h>
-#include <glib/gmem.h>
-#include <glib/gstrfuncs.h>
-#include <glib/gmessages.h>
-
-#include "bc-postnet.h"
-#include "bc-gnubarcode.h"
-#include "bc-iec16022.h"
-
-#include "debug.h"
-
-/*========================================================*/
-/* Private macros and constants.                          */
-/*========================================================*/
-
-/*========================================================*/
-/* Private types.                                         */
-/*========================================================*/
-
-typedef struct {
-       gchar            *id;
-       gchar            *name;
-       glBarcodeNewFunc  new;
-       gboolean          can_text;
-       gboolean          text_optional;
-       gboolean          can_checksum;
-       gboolean          checksum_optional;
-       gchar            *default_digits;
-       gboolean          can_freeform;
-       guint             prefered_n;
-} Backend;
-
-
-/*========================================================*/
-/* Private globals.                                       */
-/*========================================================*/
-
-static const Backend backends[] = {
-
-       { "POSTNET", N_("POSTNET (any)"), gl_barcode_postnet_new,
-         FALSE, FALSE, TRUE, FALSE, "12345-6789-12", FALSE, 11},
-
-       { "POSTNET-5", N_("POSTNET-5 (ZIP only)"), gl_barcode_postnet_new,
-         FALSE, FALSE, TRUE, FALSE, "12345", FALSE, 5},
-
-       { "POSTNET-9", N_("POSTNET-9 (ZIP+4)"), gl_barcode_postnet_new,
-         FALSE, FALSE, TRUE, FALSE, "12345-6789", FALSE, 9},
-
-       { "POSTNET-11", N_("POSTNET-11 (DPBC)"), gl_barcode_postnet_new,
-         FALSE, FALSE, TRUE, FALSE, "12345-6789-12", FALSE, 11},
-
-       { "CEPNET", N_("CEPNET"), gl_barcode_postnet_new,
-         FALSE, FALSE, TRUE, FALSE, "12345-678", FALSE, 8},
-
-       { "EAN", N_("EAN (any)"), gl_barcode_gnubarcode_new,
-         TRUE, TRUE, TRUE, FALSE, "000000000000 00000", FALSE, 17},
-
-       { "EAN-8", N_("EAN-8"), gl_barcode_gnubarcode_new,
-         TRUE, TRUE, TRUE, FALSE, "0000000", FALSE, 7},
-
-       { "EAN-8+2", N_("EAN-8 +2"), gl_barcode_gnubarcode_new,
-         TRUE, TRUE, TRUE, FALSE, "0000000 00", FALSE, 9},
-
-       { "EAN-8+5", N_("EAN-8 +5"), gl_barcode_gnubarcode_new,
-         TRUE, TRUE, TRUE, FALSE, "0000000 00000", FALSE, 12},
-
-       { "EAN-13", N_("EAN-13"), gl_barcode_gnubarcode_new,
-         TRUE, TRUE, TRUE, FALSE, "000000000000", FALSE, 12},
-
-       { "EAN-13+2", N_("EAN-13 +2"), gl_barcode_gnubarcode_new,
-         TRUE, TRUE, TRUE, FALSE, "000000000000 00", FALSE, 14},
-
-       { "EAN-13+5", N_("EAN-13 +5"), gl_barcode_gnubarcode_new,
-         TRUE, TRUE, TRUE, FALSE, "000000000000 00000", FALSE, 17},
-
-       { "UPC", N_("UPC (UPC-A or UPC-E)"), gl_barcode_gnubarcode_new,
-         TRUE, TRUE, TRUE, FALSE, "00000000000 00000", FALSE, 16},
-
-       { "UPC-A", N_("UPC-A"), gl_barcode_gnubarcode_new,
-         TRUE, TRUE, TRUE, FALSE, "00000000000", FALSE, 11},
-
-       { "UPC-A+2", N_("UPC-A +2"), gl_barcode_gnubarcode_new,
-         TRUE, TRUE, TRUE, FALSE, "00000000000 00", FALSE, 13},
-
-       { "UPC-A+5", N_("UPC-A +5"), gl_barcode_gnubarcode_new,
-         TRUE, TRUE, TRUE, FALSE, "00000000000 00000", FALSE, 16},
-
-       { "UPC-E", N_("UPC-E"), gl_barcode_gnubarcode_new,
-         TRUE, TRUE, TRUE, FALSE, "000000", FALSE, 6},
-
-       { "UPC-E+2", N_("UPC-E +2"), gl_barcode_gnubarcode_new,
-         TRUE, TRUE, TRUE, FALSE, "000000 00", FALSE, 8},
-
-       { "UPC-E+5", N_("UPC-E +5"), gl_barcode_gnubarcode_new,
-         TRUE, TRUE, TRUE, FALSE, "000000 00000", FALSE, 11},
-
-       { "ISBN", N_("ISBN"), gl_barcode_gnubarcode_new,
-         TRUE, TRUE, TRUE, TRUE, "0-00000-000-0", FALSE, 10},
-
-       { "ISBN+5", N_("ISBN +5"), gl_barcode_gnubarcode_new,
-         TRUE, TRUE, TRUE, TRUE, "0-00000-000-0 00000", FALSE, 15},
-
-       { "Code39", N_("Code 39"), gl_barcode_gnubarcode_new,
-         TRUE, TRUE, TRUE, TRUE, "0000000000", TRUE, 10},
-
-       { "Code128", N_("Code 128"), gl_barcode_gnubarcode_new,
-         TRUE, TRUE, TRUE, TRUE, "0000000000", TRUE, 10},
-
-       { "Code128C", N_("Code 128C"), gl_barcode_gnubarcode_new,
-         TRUE, TRUE, TRUE, FALSE, "0000000000", TRUE, 10},
-
-       { "Code128B", N_("Code 128B"), gl_barcode_gnubarcode_new,
-         TRUE, TRUE, TRUE, TRUE, "0000000000", TRUE, 10},
-
-       { "I25", N_("Interleaved 2 of 5"), gl_barcode_gnubarcode_new,
-         TRUE, TRUE, TRUE, TRUE, "0000000000", TRUE, 10},
-
-       { "CBR", N_("Codabar"), gl_barcode_gnubarcode_new,
-         TRUE, TRUE, TRUE, TRUE, "0000000000", TRUE, 10},
-
-       { "MSI", N_("MSI"), gl_barcode_gnubarcode_new,
-         TRUE, TRUE, TRUE, TRUE, "0000000000", TRUE, 10},
-
-       { "PLS", N_("Plessey"), gl_barcode_gnubarcode_new,
-         TRUE, TRUE, TRUE, TRUE, "0000000000", TRUE, 10},
-
-       { "IEC16022", N_("IEC16022 (DataMatrix)"), gl_barcode_iec16022_new,
-         FALSE, FALSE, TRUE, FALSE, "12345678", TRUE, 8},
-
-       { NULL, NULL, NULL, FALSE, FALSE, FALSE, FALSE, NULL, FALSE, 0}
-
-};
-
-/*========================================================*/
-/* Private function prototypes.                           */
-/*========================================================*/
-
-\f
-/*---------------------------------------------------------------------------*/
-/* Convert id to index into above table.                                     */
-/*---------------------------------------------------------------------------*/
-static gint
-id_to_index (const gchar *id)
-{
-       gint i;
-
-       if (id == 0) {
-               return 0; /* NULL request default. I.e., the first element. */
-       }
-
-       for (i=0; backends[i].id != NULL; i++) {
-               if (g_strcasecmp (id, backends[i].id) == 0) {
-                       return i;
-               }
-       }
-
-       g_message( "Unknown barcode id \"%s\"", id );
-       return 0;
-}
-
-/*---------------------------------------------------------------------------*/
-/* Convert name to index into above table.                                   */
-/*---------------------------------------------------------------------------*/
-static gint
-name_to_index (const gchar *name)
-{
-       gint i;
-
-       g_return_val_if_fail (name!=NULL, 0);
-
-       for (i=0; backends[i].id != NULL; i++) {
-               if (g_strcasecmp (name, backends[i].name) == 0) {
-                       return i;
-               }
-       }
-
-       g_message( "Unknown barcode name \"%s\"", name );
-       return 0;
-}
-
-/*****************************************************************************/
-/* Call appropriate barcode backend to create barcode in intermediate format.*/
-/*****************************************************************************/
-glBarcode *
-gl_barcode_new (const gchar    *id,
-               gboolean        text_flag,
-               gboolean        checksum_flag,
-               gdouble         w,
-               gdouble         h,
-               const gchar    *digits)
-{
-       glBarcode *gbc;
-       gint       i;
-
-       g_return_val_if_fail (digits!=NULL, NULL);
-
-       i = id_to_index (id);
-       gbc = backends[i].new (backends[i].id,
-                              text_flag,
-                              checksum_flag,
-                              w,
-                              h,
-                              digits);
-
-       return gbc;
-}
-
-/*****************************************************************************/
-/* Free previously created barcode.                                          */
-/*****************************************************************************/
-void
-gl_barcode_free (glBarcode **gbc)
-{
-       GList *p;
-
-       if (*gbc != NULL) {
-
-               for (p = (*gbc)->lines; p != NULL; p = p->next) {
-                       g_free (p->data);
-                       p->data = NULL;
-               }
-               g_list_free ((*gbc)->lines);
-               (*gbc)->lines = NULL;
-
-               for (p = (*gbc)->chars; p != NULL; p = p->next) {
-                       g_free (p->data);
-                       p->data = NULL;
-               }
-               g_list_free ((*gbc)->chars);
-               (*gbc)->chars = NULL;
-
-               g_free (*gbc);
-               *gbc = NULL;
-       }
-}
-
-/*****************************************************************************/
-/* Get a list of names for valid barcode styles.                             */
-/*****************************************************************************/
-GList *
-gl_barcode_get_styles_list  (void)
-{
-       gint   i;
-       GList *list = NULL;
-
-       for (i=0; backends[i].id != NULL; i++) {
-               list = g_list_append (list, g_strdup (backends[i].name));
-       }
-
-       return list;
-}
-
-/*****************************************************************************/
-/* Free up a previously allocated list of style names.                       */
-/*****************************************************************************/
-void
-gl_barcode_free_styles_list (GList *styles_list)
-{
-       GList *p;
-
-       for (p=styles_list; p != NULL; p=p->next) {
-               g_free (p->data);
-               p->data = NULL;
-       }
-
-       g_list_free (styles_list);
-}
-
-
-/*****************************************************************************/
-/* Return an appropriate set of digits for the given barcode style.          */
-/*****************************************************************************/
-gchar *
-gl_barcode_default_digits (const gchar *id,
-                          guint        n)
-{
-       int i;
-
-       i = id_to_index (id);
-
-       if (backends[i].can_freeform) {
-
-               return g_strnfill (MAX (n,1), '0');
-
-       } else {
-
-               return g_strdup (backends[i].default_digits);
-
-       }
-}
-
-/*****************************************************************************/
-/* Query text capabilities.                                                  */
-/*****************************************************************************/
-gboolean
-gl_barcode_can_text (const gchar *id)
-{
-       return backends[id_to_index (id)].can_text;
-}
-
-gboolean
-gl_barcode_text_optional (const gchar *id)
-{
-       return backends[id_to_index (id)].text_optional;
-}
-
-/*****************************************************************************/
-/* Query checksum capabilities.                                              */
-/*****************************************************************************/
-gboolean
-gl_barcode_can_csum (const gchar *id)
-{
-       return backends[id_to_index (id)].can_checksum;
-}
-
-gboolean
-gl_barcode_csum_optional (const gchar *id)
-{
-       return backends[id_to_index (id)].checksum_optional;
-}
-
-
-/*****************************************************************************/
-/* Query if freeform input is allowed.                                       */
-/*****************************************************************************/
-gboolean
-gl_barcode_can_freeform     (const gchar    *id)
-{
-       return backends[id_to_index (id)].can_freeform;
-}
-
-/*****************************************************************************/
-/* Query prefered number of digits of input.                                 */
-/*****************************************************************************/
-guint
-gl_barcode_get_prefered_n (const gchar    *id)
-{
-       return backends[id_to_index (id)].prefered_n;
-}
-
-/*****************************************************************************/
-/* Convert style to text.                                                    */
-/*****************************************************************************/
-const gchar *
-gl_barcode_id_to_name (const gchar *id)
-{
-       return backends[id_to_index (id)].name;
-}
-
-/*****************************************************************************/
-/* Convert name to style.                                                    */
-/*****************************************************************************/
-const gchar *
-gl_barcode_name_to_id (const gchar *name)
-{
-       g_return_val_if_fail (name!=NULL, backends[0].id);
-
-       return backends[name_to_index (name)].id;
-}
diff --git a/src/bc.h b/src/bc.h
deleted file mode 100644 (file)
index f46d889..0000000
--- a/src/bc.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  bc.h:  GLabels barcode module header file
- *
- *  Copyright (C) 2001-2003  Jim Evins <evins@snaught.com>.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-#ifndef __BC_H__
-#define __BC_H__
-
-#include <glib/gtypes.h>
-#include <glib/glist.h>
-#include <pango/pango.h>
-
-G_BEGIN_DECLS
-
-typedef struct {
-       gdouble x, y, length, width;
-} glBarcodeLine;
-
-typedef struct {
-       gdouble x, y, fsize;
-       gchar c;
-} glBarcodeChar;
-
-typedef struct {
-       gdouble width, height;
-       GList *lines;           /* List of glBarcodeLine */
-       GList *chars;           /* List of glBarcodeChar */
-} glBarcode;
-
-typedef glBarcode *(*glBarcodeNewFunc) (const gchar    *id,
-                                       gboolean        text_flag,
-                                       gboolean        checksum_flag,
-                                       gdouble         w,
-                                       gdouble         h,
-                                       const gchar    *digits);
-
-
-#define GL_BARCODE_FONT_FAMILY      "Sans"
-#define GL_BARCODE_FONT_WEIGHT      PANGO_WEIGHT_NORMAL
-
-
-glBarcode       *gl_barcode_new              (const gchar    *id,
-                                             gboolean        text_flag,
-                                             gboolean        checksum_flag,
-                                             gdouble         w,
-                                             gdouble         h,
-                                             const gchar    *digits);
-
-void             gl_barcode_free             (glBarcode     **bc);
-
-GList           *gl_barcode_get_styles_list  (void);
-void             gl_barcode_free_styles_list (GList          *styles_list);
-
-gchar           *gl_barcode_default_digits   (const gchar    *id,
-                                             guint            n);
-
-gboolean         gl_barcode_can_text         (const gchar    *id);
-gboolean         gl_barcode_text_optional    (const gchar    *id);
-
-gboolean         gl_barcode_can_csum         (const gchar    *id);
-gboolean         gl_barcode_csum_optional    (const gchar    *id);
-
-gboolean         gl_barcode_can_freeform     (const gchar    *id);
-guint            gl_barcode_get_prefered_n   (const gchar    *id);
-
-const gchar     *gl_barcode_id_to_name       (const gchar    *id);
-const gchar     *gl_barcode_name_to_id       (const gchar    *name);
-
-G_END_DECLS
-
-#endif /* __BC_H__ */
-
diff --git a/src/builder-util.c b/src/builder-util.c
new file mode 100644 (file)
index 0000000..e78c230
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ *  builder-util.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "builder-util.h"
+
+
+/****************************************************************************/
+/* Get widgets from GtkBuilder "en masse."                                  */
+/****************************************************************************/
+void gl_builder_util_get_widgets (GtkBuilder *builder,
+                                  gchar      *first_name,
+                                  ...)
+{
+        va_list     args;
+        gchar      *name;
+        GtkWidget **p_widget;
+
+        va_start (args, first_name);
+
+        for ( name = first_name; name; name = va_arg (args, gchar *) )
+        {
+                p_widget = va_arg (args, GtkWidget **);
+
+                *p_widget = GTK_WIDGET (gtk_builder_get_object (builder, name));
+
+                if (!*p_widget)
+                {
+                        g_critical ("Could not load widget \"%s\".\n\ngLabels may not be installed correctly!",
+                                    name);
+                        break;
+                }
+        }
+
+        va_end (args);
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/builder-util.h b/src/builder-util.h
new file mode 100644 (file)
index 0000000..c3e5549
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ *  builder-util.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __BUILDER_UTIL_H__
+#define __BUILDER_UTIL_H__
+
+#include <glib.h>
+#include <gtk/gtk.h>
+
+G_BEGIN_DECLS
+
+void gl_builder_util_get_widgets (GtkBuilder *builder,
+                                  gchar      *first_name,
+                                  ...);
+
+G_END_DECLS
+
+#endif /* __BUILDER_UTIL_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 3a4cb8881c65dff57172e9baf64f2de73d300f91..b0fd4493472b5ee08d22d9634fffbcba7ff3c80a 100644 (file)
@@ -1,25 +1,21 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  cairo_ellipse_path.c:  Cairo ellipse path module
+ *  cairo-ellipse-path.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 #include "cairo-ellipse-path.h"
 
 #include <math.h>
-#include <glib.h>
 
 #include "debug.h"
 
+
 /*===========================================*/
 /* Private macros and constants.             */
 /*===========================================*/
 
 #define ARC_FINE   2
 
+
 /*===========================================*/
 /* Private types                             */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private globals                           */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Local function prototypes                 */
 /*===========================================*/
 
 
-\f
 /*****************************************************************************/
 /* Create ellipse path                                                       */
 /*****************************************************************************/
@@ -77,3 +75,12 @@ gl_cairo_ellipse_path (cairo_t           *cr,
 }
 
 
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 3c6a7568405bac22597b60ec14a62cf6d6a78471..9da409affe698815060e08767a64285401504a00 100644 (file)
@@ -1,25 +1,21 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  cairo_ellipse_path.h:  Cairo ellipse path module header file
+ *  cairo-ellipse-path.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __CAIRO_ELLIPSE_PATH_H__
@@ -38,3 +34,14 @@ void gl_cairo_ellipse_path (cairo_t  *cr,
 G_END_DECLS
 
 #endif
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 7f8f61f934d2f0fe08bd971d3d252171b3b4b428..9b63aee07aba2a0a1bf8481ed516b4cf33914f7a 100644 (file)
@@ -1,25 +1,21 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  cairo_label_path.c:  Cairo label path module
+ *  cairo-label-path.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 #include "cairo-label-path.h"
 
 #include <math.h>
-#include <glib.h>
+
+#include "cairo-ellipse-path.h"
 
 #include "debug.h"
 
+
 /*===========================================*/
 /* Private types                             */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private globals                           */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Local function prototypes                 */
 /*===========================================*/
 
 static void gl_cairo_rect_label_path             (cairo_t                *cr,
-                                                  lglTemplate            *template,
+                                                  const lglTemplate      *template,
+                                                  gboolean                rotate_flag,
+                                                  gboolean                waste_flag);
+static void gl_cairo_ellipse_label_path          (cairo_t                *cr,
+                                                  const lglTemplate      *template,
                                                   gboolean                rotate_flag,
                                                   gboolean                waste_flag);
 static void gl_cairo_round_label_path            (cairo_t                *cr,
-                                                  lglTemplate            *template,
+                                                  const lglTemplate      *template,
                                                   gboolean                rotate_flag,
                                                   gboolean                waste_flag);
 static void gl_cairo_cd_label_path               (cairo_t                *cr,
-                                                  lglTemplate            *template,
+                                                  const lglTemplate      *template,
                                                   gboolean                rotate_flag,
                                                   gboolean                waste_flag);
 
-\f
+
 /*--------------------------------------------------------------------------*/
 /* Create label path                                                        */
 /*--------------------------------------------------------------------------*/
 void
 gl_cairo_label_path (cairo_t           *cr,
-                     lglTemplate       *template,
+                     const lglTemplate *template,
                      gboolean           rotate_flag,
                      gboolean           waste_flag)
 {
@@ -78,6 +82,10 @@ gl_cairo_label_path (cairo_t           *cr,
                 gl_cairo_rect_label_path (cr, template, rotate_flag, waste_flag);
                 break;
 
+        case LGL_TEMPLATE_FRAME_SHAPE_ELLIPSE:
+                gl_cairo_ellipse_label_path (cr, template, rotate_flag, waste_flag);
+                break;
+
         case LGL_TEMPLATE_FRAME_SHAPE_ROUND:
                 gl_cairo_round_label_path (cr, template, rotate_flag, waste_flag);
                 break;
@@ -94,12 +102,13 @@ gl_cairo_label_path (cairo_t           *cr,
         gl_debug (DEBUG_PATH, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* Create rectangular label path                                            */
 /*--------------------------------------------------------------------------*/
 static void
 gl_cairo_rect_label_path (cairo_t           *cr,
-                          lglTemplate       *template,
+                          const lglTemplate *template,
                           gboolean           rotate_flag,
                           gboolean           waste_flag)
 {
@@ -152,12 +161,54 @@ gl_cairo_rect_label_path (cairo_t           *cr,
         gl_debug (DEBUG_PATH, "END");
 }
 
+
+/*--------------------------------------------------------------------------*/
+/* Create elliptical label path                                             */
+/*--------------------------------------------------------------------------*/
+static void
+gl_cairo_ellipse_label_path (cairo_t           *cr,
+                             const lglTemplate *template,
+                             gboolean           rotate_flag,
+                             gboolean           waste_flag)
+{
+        const lglTemplateFrame *frame;
+        gdouble                 w, h;
+        gdouble                 waste;
+
+        gl_debug (DEBUG_PATH, "START");
+
+        frame = (lglTemplateFrame *)template->frames->data;
+
+        if (rotate_flag)
+        {
+                lgl_template_frame_get_size (frame, &h, &w);
+        }
+        else
+        {
+                lgl_template_frame_get_size (frame, &w, &h);
+        }
+
+        waste = 0.0;
+        if (waste_flag)
+        {
+                waste = frame->ellipse.waste;
+        }
+
+        cairo_save (cr);
+        cairo_translate (cr, -waste, -waste);
+        gl_cairo_ellipse_path (cr, (w+waste)/2.0, (h+waste)/2.0);
+        cairo_restore (cr);
+
+        gl_debug (DEBUG_PATH, "END");
+}
+
+
 /*--------------------------------------------------------------------------*/
 /* Create round label path                                                  */
 /*--------------------------------------------------------------------------*/
 static void
 gl_cairo_round_label_path (cairo_t           *cr,
-                           lglTemplate       *template,
+                           const lglTemplate *template,
                            gboolean           rotate_flag,
                            gboolean           waste_flag)
 {
@@ -194,12 +245,13 @@ gl_cairo_round_label_path (cairo_t           *cr,
         gl_debug (DEBUG_PATH, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* Create cd label path                                                     */
 /*--------------------------------------------------------------------------*/
 static void
 gl_cairo_cd_label_path (cairo_t           *cr,
-                        lglTemplate       *template,
+                        const lglTemplate *template,
                         gboolean           rotate_flag,
                         gboolean           waste_flag)
 {
@@ -262,3 +314,13 @@ gl_cairo_cd_label_path (cairo_t           *cr,
         gl_debug (DEBUG_PATH, "END");
 }
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index ad0495f5b14d0701f60d9717018ea952f5c17619..b42dcad299bbf66a6c504b36cad65d98eca43491 100644 (file)
@@ -1,40 +1,47 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  cairo_label_path.h:  Cairo label path module header file
+ *  cairo-label-path.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __CAIRO_LABEL_PATH_H__
 #define __CAIRO_LABEL_PATH_H__
 
 #include <cairo.h>
-#include <libglabels/template.h>
+#include <libglabels/libglabels.h>
 
 G_BEGIN_DECLS
 
 void gl_cairo_label_path (cairo_t                *cr,
-                          lglTemplate            *template,
+                          const lglTemplate      *template,
                           gboolean                rotate_flag,
                           gboolean                waste_flag);
 
 G_END_DECLS
 
 #endif
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 04a2a68f0d5e6cc5ba597ae93c5998028ebab438..90ba1888ec451bbb38b18fb085bd120af0980d94 100644 (file)
@@ -1,25 +1,21 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  cairo_markup_path.c:  Cairo markup path module
+ *  cairo-markup-path.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 #include "cairo-markup-path.h"
 
 #include <math.h>
-#include <glib.h>
+
+#include "cairo-ellipse-path.h"
 
 #include "debug.h"
 
+
 /*===========================================*/
 /* Private types                             */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private globals                           */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Local function prototypes                 */
 /*===========================================*/
@@ -51,6 +51,10 @@ static void       gl_cairo_markup_margin_rect_path    (cairo_t                 *
                                                        const lglTemplateMarkup *markup,
                                                        glLabel                 *label);
 
+static void       gl_cairo_markup_margin_ellipse_path (cairo_t                 *cr,
+                                                       const lglTemplateMarkup *markup,
+                                                       glLabel                 *label);
+
 static void       gl_cairo_markup_margin_round_path   (cairo_t                 *cr,
                                                        const lglTemplateMarkup *markup,
                                                        glLabel                 *label);
@@ -68,7 +72,10 @@ static void       gl_cairo_markup_circle_path         (cairo_t                 *
 static void       gl_cairo_markup_rect_path           (cairo_t                 *cr,
                                                        const lglTemplateMarkup *markup);
 
-\f
+static void       gl_cairo_markup_ellipse_path        (cairo_t                 *cr,
+                                                       const lglTemplateMarkup *markup);
+
+
 /*--------------------------------------------------------------------------*/
 /* Create markup path                                                       */
 /*--------------------------------------------------------------------------*/
@@ -92,6 +99,9 @@ gl_cairo_markup_path (cairo_t                 *cr,
         case LGL_TEMPLATE_MARKUP_RECT:
                 gl_cairo_markup_rect_path (cr, markup);
                 break;
+        case LGL_TEMPLATE_MARKUP_ELLIPSE:
+                gl_cairo_markup_ellipse_path (cr, markup);
+                break;
         default:
                 g_message ("Unknown template markup type");
                 break;
@@ -100,6 +110,7 @@ gl_cairo_markup_path (cairo_t                 *cr,
         gl_debug (DEBUG_PATH, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Draw margin markup.                                             */
 /*---------------------------------------------------------------------------*/
@@ -108,11 +119,13 @@ gl_cairo_markup_margin_path (cairo_t                *cr,
                              const lglTemplateMarkup *markup,
                              glLabel                *label)
 {
+       const lglTemplate      *template;
        const lglTemplateFrame *frame;
 
         gl_debug (DEBUG_PATH, "START");
 
-        frame = (lglTemplateFrame *)label->template->frames->data;
+        template = gl_label_get_template (label);
+        frame = (lglTemplateFrame *)template->frames->data;
 
         switch (frame->shape) {
 
@@ -120,6 +133,10 @@ gl_cairo_markup_margin_path (cairo_t                *cr,
                 gl_cairo_markup_margin_rect_path (cr, markup, label);
                 break;
 
+        case LGL_TEMPLATE_FRAME_SHAPE_ELLIPSE:
+                gl_cairo_markup_margin_ellipse_path (cr, markup, label);
+                break;
+
         case LGL_TEMPLATE_FRAME_SHAPE_ROUND:
                 gl_cairo_markup_margin_round_path (cr, markup, label);
                 break;
@@ -136,6 +153,7 @@ gl_cairo_markup_margin_path (cairo_t                *cr,
         gl_debug (DEBUG_PATH, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Draw simple recangular margin.                                  */
 /*---------------------------------------------------------------------------*/
@@ -144,12 +162,14 @@ gl_cairo_markup_margin_rect_path (cairo_t                 *cr,
                                   const lglTemplateMarkup *markup,
                                   glLabel                 *label)
 {
+        const lglTemplate      *template;
         const lglTemplateFrame *frame;
         gdouble                 w, h, r, m;
 
         gl_debug (DEBUG_PATH, "START");
 
-        frame = (lglTemplateFrame *)label->template->frames->data;
+        template = gl_label_get_template (label);
+        frame = (lglTemplateFrame *)template->frames->data;
 
         m = markup->margin.size;
 
@@ -175,6 +195,39 @@ gl_cairo_markup_margin_rect_path (cairo_t                 *cr,
         gl_debug (DEBUG_PATH, "END");
 }
 
+
+/*---------------------------------------------------------------------------*/
+/* PRIVATE.  Draw elliptical margin.                                         */
+/*---------------------------------------------------------------------------*/
+static void
+gl_cairo_markup_margin_ellipse_path (cairo_t                 *cr,
+                                     const lglTemplateMarkup *markup,
+                                     glLabel                 *label)
+{
+        const lglTemplate      *template;
+        const lglTemplateFrame *frame;
+        gdouble                 w, h, m;
+
+        gl_debug (DEBUG_PATH, "START");
+
+        template = gl_label_get_template (label);
+        frame = (lglTemplateFrame *)template->frames->data;
+
+        m = markup->margin.size;
+
+        lgl_template_frame_get_size (frame, &w, &h);
+       w = w - 2*m;
+       h = h - 2*m;
+
+        cairo_save (cr);
+        cairo_translate (cr, m, m);
+        gl_cairo_ellipse_path (cr, w/2.0, h/2.0);
+        cairo_restore (cr);
+
+        gl_debug (DEBUG_PATH, "END");
+}
+
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Draw round margin.                                              */
 /*---------------------------------------------------------------------------*/
@@ -183,12 +236,14 @@ gl_cairo_markup_margin_round_path (cairo_t                 *cr,
                                    const lglTemplateMarkup *markup,
                                    glLabel                 *label)
 {
+       const lglTemplate      *template;
        const lglTemplateFrame *frame;
        gdouble                 r, m;
 
        gl_debug (DEBUG_PATH, "START");
 
-        frame = (lglTemplateFrame *)label->template->frames->data;
+        template = gl_label_get_template (label);
+        frame = (lglTemplateFrame *)template->frames->data;
 
        r = frame->round.r;
        m = markup->margin.size;
@@ -199,6 +254,7 @@ gl_cairo_markup_margin_round_path (cairo_t                 *cr,
        gl_debug (DEBUG_PATH, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Draw CD margins.                                                */
 /*---------------------------------------------------------------------------*/
@@ -207,6 +263,7 @@ gl_cairo_markup_margin_cd_path (cairo_t                 *cr,
                                 const lglTemplateMarkup *markup,
                                 glLabel                 *label)
 {
+       const lglTemplate      *template;
        const lglTemplateFrame *frame;
        gdouble                 m, r1, r2;
        gdouble                 theta1, theta2;
@@ -215,7 +272,8 @@ gl_cairo_markup_margin_cd_path (cairo_t                 *cr,
 
        gl_debug (DEBUG_PATH, "START");
 
-        frame = (lglTemplateFrame *)label->template->frames->data;
+        template = gl_label_get_template (label);
+        frame = (lglTemplateFrame *)template->frames->data;
 
         lgl_template_frame_get_size (frame, &w, &h);
         xc = w/2.0;
@@ -248,6 +306,7 @@ gl_cairo_markup_margin_cd_path (cairo_t                 *cr,
        gl_debug (DEBUG_PATH, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Draw line markup.                                               */
 /*---------------------------------------------------------------------------*/
@@ -263,6 +322,7 @@ gl_cairo_markup_line_path (cairo_t                 *cr,
        gl_debug (DEBUG_PATH, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Draw circle markup.                                             */
 /*---------------------------------------------------------------------------*/
@@ -281,6 +341,7 @@ gl_cairo_markup_circle_path (cairo_t                 *cr,
        gl_debug (DEBUG_PATH, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Draw rect markup.                                               */
 /*---------------------------------------------------------------------------*/
@@ -313,3 +374,36 @@ gl_cairo_markup_rect_path (cairo_t                 *cr,
        gl_debug (DEBUG_PATH, "END");
 }
 
+
+/*---------------------------------------------------------------------------*/
+/* PRIVATE.  Draw ellipse markup.                                            */
+/*---------------------------------------------------------------------------*/
+static void
+gl_cairo_markup_ellipse_path (cairo_t                 *cr,
+                              const lglTemplateMarkup *markup)
+{
+        gdouble x1 = markup->ellipse.x1;
+        gdouble y1 = markup->ellipse.y1;
+        gdouble w  = markup->ellipse.w;
+        gdouble h  = markup->ellipse.h;
+
+       gl_debug (DEBUG_PATH, "START");
+
+        cairo_save (cr);
+        cairo_translate (cr, x1, y1);
+        gl_cairo_ellipse_path (cr, w/2.0, h/2.0);
+        cairo_restore (cr);
+
+       gl_debug (DEBUG_PATH, "END");
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 9dfab55468981a7378251929c5686f73c9551c2a..3f375b20bf2c19daefc17367e880aecda133caf7 100644 (file)
@@ -1,32 +1,28 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  cairo_markup_path.h:  Cairo markup path module header file
+ *  cairo-markup-path.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __CAIRO_MARKUP_PATH_H__
 #define __CAIRO_MARKUP_PATH_H__
 
 #include <cairo.h>
-#include <libglabels/template.h>
+#include <libglabels/libglabels.h>
 #include "label.h"
 
 G_BEGIN_DECLS
@@ -38,3 +34,14 @@ void gl_cairo_markup_path (cairo_t                 *cr,
 G_END_DECLS
 
 #endif
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/color-combo-button.c b/src/color-combo-button.c
new file mode 100644 (file)
index 0000000..8a5e988
--- /dev/null
@@ -0,0 +1,469 @@
+/*
+ *  color-combo-button.c
+ *  Copyright (C) 2008-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "color-combo-button.h"
+
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+
+#include "color-combo-menu.h"
+#include "color-swatch.h"
+#include "color.h"
+#include "marshal.h"
+
+#define IMAGE_W 24
+#define IMAGE_H 24
+
+#define SWATCH_H 5
+
+
+/*========================================================*/
+/* Private types.                                         */
+/*========================================================*/
+
+/** GL_COLOR_COMBO_BUTTON Private fields */
+struct _glColorComboButtonPrivate {
+
+        guint       color;
+        gboolean    is_default_flag;
+
+        guint       default_color;
+
+        GtkWidget  *button;
+        GtkWidget  *button_vbox;
+        GtkWidget  *swatch;
+        GtkWidget  *dropdown_button;
+
+        GtkWidget  *menu;
+};
+
+enum {
+        COLOR_CHANGED,
+        LAST_SIGNAL
+};
+
+
+/*========================================================*/
+/* Private globals.                                       */
+/*========================================================*/
+
+static guint signals[LAST_SIGNAL] = {0};
+
+
+/*========================================================*/
+/* Private function prototypes.                           */
+/*========================================================*/
+
+static void
+gl_color_combo_button_finalize (GObject *object);
+
+static void
+button_clicked_cb (glColorComboButton *this);
+
+static gboolean
+dropdown_button_press_event_cb (GtkWidget          *widget,
+                                GdkEventButton     *event,
+                                glColorComboButton *this);
+
+static void
+menu_color_changed_cb (glColorComboMenu            *object,
+                       guint                        color,
+                       gboolean                     is_default,
+                       glColorComboButton          *this);
+
+static void
+menu_selection_done_cb (GtkMenuShell               *object,
+                        glColorComboButton         *this);
+
+
+/*****************************************************************************/
+/* Object infrastructure.                                                    */
+/*****************************************************************************/
+G_DEFINE_TYPE (glColorComboButton, gl_color_combo_button, GTK_TYPE_HBOX)
+
+
+/*****************************************************************************/
+/* Class Init Function.                                                      */
+/*****************************************************************************/
+static void
+gl_color_combo_button_class_init (glColorComboButtonClass *class)
+{
+        GObjectClass            *gobject_class = (GObjectClass *) class;
+
+        gl_color_combo_button_parent_class = g_type_class_peek_parent (class);
+
+        gobject_class->finalize = gl_color_combo_button_finalize;
+
+        signals[COLOR_CHANGED] =
+                g_signal_new ("color_changed",
+                              G_OBJECT_CLASS_TYPE (gobject_class),
+                              G_SIGNAL_RUN_LAST,
+                              G_STRUCT_OFFSET (glColorComboButtonClass, color_changed),
+                              NULL, NULL,
+                              gl_marshal_VOID__UINT_BOOLEAN,
+                              G_TYPE_NONE,
+                              2, G_TYPE_POINTER, G_TYPE_BOOLEAN);
+
+}
+
+
+/*****************************************************************************/
+/* Object Instance Init Function.                                            */
+/*****************************************************************************/
+static void
+gl_color_combo_button_init (glColorComboButton *this)
+{
+        GtkWidget *arrow;
+
+        gtk_box_set_spacing (GTK_BOX (this), 0);
+
+        this->priv = g_new0 (glColorComboButtonPrivate, 1);
+
+        this->priv->button_vbox = gtk_vbox_new (FALSE, 0);
+
+        this->priv->button = gtk_toggle_button_new ();
+        gtk_container_add (GTK_CONTAINER (this->priv->button), this->priv->button_vbox);
+        gtk_button_set_focus_on_click (GTK_BUTTON (this->priv->button), FALSE);
+        g_signal_connect_swapped (this->priv->button, "clicked",
+                          G_CALLBACK(button_clicked_cb), this);
+
+        gtk_box_pack_start (GTK_BOX (this), this->priv->button, FALSE, FALSE, 0);
+
+        this->priv->dropdown_button = gtk_toggle_button_new ();
+        arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_IN);
+        gtk_container_add (GTK_CONTAINER (this->priv->dropdown_button), arrow);
+        gtk_button_set_relief (GTK_BUTTON (this->priv->dropdown_button), GTK_RELIEF_NONE);
+        gtk_button_set_focus_on_click (GTK_BUTTON (this->priv->dropdown_button), FALSE);
+        g_signal_connect (this->priv->dropdown_button, "button_press_event",
+                          G_CALLBACK(dropdown_button_press_event_cb), this);
+
+        gtk_box_pack_start (GTK_BOX (this), this->priv->dropdown_button, FALSE, FALSE, 0);
+}
+
+
+/*****************************************************************************/
+/* Finalize Method.                                                          */
+/*****************************************************************************/
+static void
+gl_color_combo_button_finalize (GObject *object)
+{
+        glColorComboButton    *this;
+
+        g_return_if_fail (object && IS_GL_COLOR_COMBO_BUTTON (object));
+        this = GL_COLOR_COMBO_BUTTON (object);
+
+        g_object_ref_sink (this->priv->menu);
+        g_free (this->priv);
+
+        G_OBJECT_CLASS (gl_color_combo_button_parent_class)->finalize (object);
+}
+
+
+/*****************************************************************************/
+/** New Object Generator.                                                    */
+/*****************************************************************************/
+GtkWidget *
+gl_color_combo_button_new (const gchar  *icon_name,
+                           const gchar  *default_label,
+                           guint         default_color,
+                           guint         color)
+{
+        glColorComboButton *this;
+        GtkWidget          *wimage;
+        GdkPixbuf          *pixbuf1, *pixbuf2;
+
+        this = g_object_new (TYPE_GL_COLOR_COMBO_BUTTON, NULL);
+
+        if (!default_label)
+        {
+                default_label = _("Default Color");
+        }
+
+        this->priv->default_color = default_color;
+        this->priv->color = color;
+
+        if (icon_name)
+        {
+                pixbuf1 = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
+                                                    icon_name, IMAGE_W, 0, NULL);
+                pixbuf2 = gdk_pixbuf_new_subpixbuf (pixbuf1, 0, 0, IMAGE_W, IMAGE_H-SWATCH_H);
+
+                wimage = gtk_image_new_from_pixbuf (pixbuf2);
+                g_object_unref (G_OBJECT (pixbuf1));
+                g_object_unref (G_OBJECT (pixbuf2));
+                gtk_box_pack_start (GTK_BOX (this->priv->button_vbox), wimage, FALSE, FALSE, 0);
+
+                this->priv->swatch = gl_color_swatch_new (IMAGE_W, SWATCH_H, color);
+        }
+        else
+        {
+                this->priv->swatch = gl_color_swatch_new (IMAGE_W, IMAGE_H, color);
+        }
+        gtk_box_pack_start (GTK_BOX (this->priv->button_vbox), this->priv->swatch, FALSE, FALSE, 0);
+
+        this->priv->menu = gl_color_combo_menu_new (default_label, color);
+        gtk_widget_show_all (this->priv->menu);
+
+        g_signal_connect (this->priv->menu, "color_changed",
+                          G_CALLBACK (menu_color_changed_cb), this);
+        g_signal_connect (this->priv->menu, "selection_done",
+                          G_CALLBACK (menu_selection_done_cb), this);
+
+        return GTK_WIDGET (this);
+}
+
+
+/*****************************************************************************/
+/* Set color.                                                                */
+/*****************************************************************************/
+void
+gl_color_combo_button_set_color (glColorComboButton  *this,
+                                 guint                color)
+{
+        this->priv->color = color;
+
+        gl_color_swatch_set_color (GL_COLOR_SWATCH (this->priv->swatch), color);
+}
+
+
+/*****************************************************************************/
+/* Set to default color.                                                     */
+/*****************************************************************************/
+void
+gl_color_combo_button_set_to_default (glColorComboButton  *this)
+{
+        gl_color_combo_button_set_color (this, this->priv->default_color);
+}
+
+/*****************************************************************************/
+/* Get color.                                                                */
+/*****************************************************************************/
+guint
+gl_color_combo_button_get_color (glColorComboButton  *this,
+                                 gboolean            *is_default)
+{
+        if (is_default)
+        {
+                *is_default = this->priv->is_default_flag;
+        }
+
+        return this->priv->color;
+}
+
+
+/*****************************************************************************/
+/** Set relief style.                                                        */
+/*****************************************************************************/
+void
+gl_color_combo_button_set_relief( glColorComboButton  *this,
+                                  GtkReliefStyle       relief )
+{
+        gtk_button_set_relief (GTK_BUTTON (this->priv->button), relief);
+}
+
+
+/*****************************************************************************/
+/* Color button "clicked" callback.                                          */
+/*****************************************************************************/
+static void
+button_clicked_cb( glColorComboButton *this )
+{
+        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (this->priv->button),
+                                      FALSE);
+
+        g_signal_emit (this, signals[COLOR_CHANGED], 0,
+                       this->priv->color,
+                       this->priv->is_default_flag);
+}
+
+
+/*****************************************************************************/
+/* Menu positioning function.                                                */
+/*****************************************************************************/
+static void
+menu_position_function (GtkMenu            *menu,
+                        gint               *x,
+                        gint               *y,
+                        gboolean           *push_in,
+                        glColorComboButton *this)
+{
+        GdkScreen          *screen;
+        gint                w_screen, h_screen;
+        GdkWindow          *window;
+        gint                x_window, y_window;
+        GtkAllocation       allocation;
+        gint                x_this, y_this, h_this;
+        GtkRequisition      menu_requisition;
+        gint                h_menu, w_menu;
+
+        /*
+         * Screen size
+         */
+        screen = gtk_widget_get_screen (GTK_WIDGET (this));
+        w_screen = gdk_screen_get_width (screen);
+        h_screen = gdk_screen_get_height (screen);
+
+        /*
+         * Absolute position of "this" window on screen.
+         */
+        window = gtk_widget_get_window (GTK_WIDGET (this));
+        gdk_window_get_origin (window, &x_window, &y_window);
+
+        /*
+         *  Position and size of "this" inside window
+         */
+        gtk_widget_get_allocation (GTK_WIDGET (this), &allocation);
+        x_this = allocation.x;
+        y_this = allocation.y;
+        h_this = allocation.height;
+
+        /*
+         * Size of menu.
+         */
+        gtk_widget_size_request (this->priv->menu, &menu_requisition);
+        h_menu = menu_requisition.height;
+        w_menu = menu_requisition.width;
+
+        /*
+         * Default position anchored to lower left corner of "this".
+         */
+        *x = x_window + x_this;
+        *y = y_window + y_this + h_this;
+                
+        /*
+         * Adjust vertical position if menu if extends past bottom of screen.
+         */
+        if ( (*y + h_menu) > h_screen )
+        {
+                *y = y_window + y_this - h_menu;
+
+                if ( *y < 0 )
+                {
+                        *y = h_screen - h_menu;
+                }
+        }
+
+        /*
+         * Adjust horizontal position if menu if extends past edge of screen.
+         */
+        if ( (*x + w_menu) > w_screen )
+        {
+                *x = w_screen - w_menu;
+        }
+
+
+        *push_in = TRUE;
+}
+
+
+/*****************************************************************************/
+/* Dropdown button "button_press_event" callback.                            */
+/*****************************************************************************/
+static gboolean
+dropdown_button_press_event_cb (GtkWidget          *widget,
+                                GdkEventButton     *event,
+                                glColorComboButton *this)
+{
+        switch (event->button)
+        {
+
+        case 1:
+                g_signal_handlers_block_by_func (G_OBJECT (this->priv->button),
+                                                 button_clicked_cb, this);
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (this->priv->button),
+                                              TRUE);
+                g_signal_handlers_unblock_by_func (G_OBJECT (this->priv->button),
+                                                   button_clicked_cb, this);
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (this->priv->dropdown_button),
+                                              TRUE);
+
+                gtk_menu_popup (GTK_MENU (this->priv->menu),
+                                NULL, NULL,
+                                (GtkMenuPositionFunc)menu_position_function, this,
+                                event->button, event->time);
+                break;
+
+        default:
+                break;
+
+        }
+
+        return FALSE;
+}
+
+
+/*****************************************************************************/
+/* Menu "color changed" callback.                                            */
+/*****************************************************************************/
+static void
+menu_color_changed_cb (glColorComboMenu   *object,
+                       guint               color,
+                       gboolean            is_default,
+                       glColorComboButton *this)
+{
+        if (is_default)
+        {
+                this->priv->color = this->priv->default_color;
+        }
+        else
+        {
+                this->priv->color = color;
+        }
+        this->priv->is_default_flag = is_default;
+
+        gl_color_swatch_set_color (GL_COLOR_SWATCH (this->priv->swatch),
+                                   this->priv->color);
+
+        g_signal_emit (this, signals[COLOR_CHANGED], 0,
+                       this->priv->color,
+                       this->priv->is_default_flag);
+}
+
+
+/*****************************************************************************/
+/* Menu "color changed" callback.                                            */
+/*****************************************************************************/
+static void
+menu_selection_done_cb (GtkMenuShell       *object,
+                        glColorComboButton *this)
+{
+        g_signal_handlers_block_by_func (G_OBJECT (this->priv->button),
+                                         button_clicked_cb, this);
+        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (this->priv->button),
+                                      FALSE);
+        g_signal_handlers_unblock_by_func (G_OBJECT (this->priv->button),
+                                           button_clicked_cb, this);
+
+        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (this->priv->dropdown_button),
+                                      FALSE);
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/color-combo-button.h b/src/color-combo-button.h
new file mode 100644 (file)
index 0000000..6b85a21
--- /dev/null
@@ -0,0 +1,95 @@
+/*
+ *  color-combo-button.h
+ *  Copyright (C) 2008-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __GL_COLOR_COMBO_BUTTON_H__
+#define __GL_COLOR_COMBO_BUTTON_H__
+
+
+#include <gtk/gtk.h>
+
+
+G_BEGIN_DECLS
+
+#define TYPE_GL_COLOR_COMBO_BUTTON              (gl_color_combo_button_get_type ())
+#define GL_COLOR_COMBO_BUTTON(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GL_COLOR_COMBO_BUTTON, glColorComboButton))
+#define GL_COLOR_COMBO_BUTTON_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GL_COLOR_COMBO_BUTTON, glColorComboButtonClass))
+#define IS_GL_COLOR_COMBO_BUTTON(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GL_COLOR_COMBO_BUTTON))
+#define IS_GL_COLOR_COMBO_BUTTON_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GL_COLOR_COMBO_BUTTON))
+#define GL_COLOR_COMBO_BUTTON_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), TYPE_GL_COLOR_COMBO_BUTTON, glColorComboButtonClass))
+
+
+typedef struct _glColorComboButton          glColorComboButton;
+typedef struct _glColorComboButtonPrivate   glColorComboButtonPrivate;
+typedef struct _glColorComboButtonClass     glColorComboButtonClass;
+
+
+struct _glColorComboButton {
+        GtkHBox                        parent;
+
+        glColorComboButtonPrivate     *priv;
+};
+
+struct _glColorComboButtonClass {
+        GtkHBoxClass                   parent_class;
+
+        /*
+         * Signals
+         */
+        void (*color_changed) (glColorComboButton *object,
+                               guint               color,
+                               gboolean            is_default,
+                               gpointer            user_data);
+
+};
+
+
+GType            gl_color_combo_button_get_type       (void) G_GNUC_CONST;
+
+GtkWidget       *gl_color_combo_button_new            (const gchar        *icon_name,
+                                                       const gchar        *default_label,
+                                                       guint               default_color,
+                                                       guint               color);
+
+void             gl_color_combo_button_set_color      (glColorComboButton *this,
+                                                       guint               color);
+
+void             gl_color_combo_button_set_to_default (glColorComboButton *this);
+
+guint            gl_color_combo_button_get_color      (glColorComboButton *this,
+                                                       gboolean           *is_default);
+
+void             gl_color_combo_button_set_relief     (glColorComboButton *this,
+                                                       GtkReliefStyle      relief);
+
+
+G_END_DECLS
+
+#endif /* __GL_COLOR_COMBO_BUTTON_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/color-combo-color-menu-item.c b/src/color-combo-color-menu-item.c
new file mode 100644 (file)
index 0000000..334fd19
--- /dev/null
@@ -0,0 +1,170 @@
+/*
+ *  color-combo-color-menu-item.c
+ *  Copyright (C) 2008  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "color-combo-color-menu-item.h"
+
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+
+#include "color-swatch.h"
+#include "color.h"
+#include "marshal.h"
+
+
+
+/*===========================================*/
+/* Private macros and constants.             */
+/*===========================================*/
+
+#define SIZE 20
+
+
+/*===========================================*/
+/* Private types                             */
+/*===========================================*/
+
+struct _glColorComboColorMenuItemPrivate {
+
+        gint       id;
+
+        GtkWidget *swatch;
+};
+
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+static void gl_color_combo_color_menu_item_finalize    (GObject                *object);
+
+
+/****************************************************************************/
+/* Boilerplate Object stuff.                                                */
+/****************************************************************************/
+G_DEFINE_TYPE (glColorComboColorMenuItem, gl_color_combo_color_menu_item, GTK_TYPE_MENU_ITEM)
+
+
+/*****************************************************************************/
+/* Class Init Function.                                                      */
+/*****************************************************************************/
+static void
+gl_color_combo_color_menu_item_class_init (glColorComboColorMenuItemClass *class)
+{
+       GObjectClass   *gobject_class = G_OBJECT_CLASS (class);
+
+        gl_color_combo_color_menu_item_parent_class = g_type_class_peek_parent (class);
+
+       gobject_class->finalize = gl_color_combo_color_menu_item_finalize;
+}
+
+
+/*****************************************************************************/
+/* Object Instance Init Function.                                            */
+/*****************************************************************************/
+static void
+gl_color_combo_color_menu_item_init (glColorComboColorMenuItem *this)
+{
+       this->priv = g_new0 (glColorComboColorMenuItemPrivate, 1);
+}
+
+
+/*****************************************************************************/
+/* Finalize Method.                                                          */
+/*****************************************************************************/
+static void
+gl_color_combo_color_menu_item_finalize (GObject *object)
+{
+       glColorComboColorMenuItem *this = GL_COLOR_COMBO_COLOR_MENU_ITEM (object);
+
+       g_return_if_fail (object != NULL);
+       g_return_if_fail (GL_IS_COLOR_COMBO_COLOR_MENU_ITEM (object));
+
+       g_free (this->priv);
+
+       G_OBJECT_CLASS (gl_color_combo_color_menu_item_parent_class)->finalize (object);
+}
+
+
+/*****************************************************************************/
+/** New Object Generator.                                                    */
+/*****************************************************************************/
+GtkWidget *
+gl_color_combo_color_menu_item_new (gint         id,
+                                    guint        color,
+                                    const gchar *tip)
+{
+       glColorComboColorMenuItem *this;
+
+       this = g_object_new (GL_TYPE_COLOR_COMBO_COLOR_MENU_ITEM, NULL);
+
+        this->priv->id = id;
+
+        this->priv->swatch = gl_color_swatch_new (SIZE, SIZE, color);
+        gtk_container_add (GTK_CONTAINER (this), this->priv->swatch);
+
+        gtk_widget_set_tooltip_text (GTK_WIDGET (this), tip);
+
+       return GTK_WIDGET (this);
+}
+
+
+/*****************************************************************************/
+/* Set color.                                                                */
+/*****************************************************************************/
+void
+gl_color_combo_color_menu_item_set_color(glColorComboColorMenuItem *this,
+                                         gint                       id,
+                                         guint                      color,
+                                         const gchar               *tip)
+{
+        this->priv->id = id;
+
+        gl_color_swatch_set_color (GL_COLOR_SWATCH (this->priv->swatch), color);
+
+        gtk_widget_set_tooltip_text (GTK_WIDGET (this), tip);
+}
+
+
+/*****************************************************************************/
+/* Get id.                                                                   */
+/*****************************************************************************/
+gint
+gl_color_combo_color_menu_item_get_id (glColorComboColorMenuItem *this)
+{
+        return this->priv->id;
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/color-combo-color-menu-item.h b/src/color-combo-color-menu-item.h
new file mode 100644 (file)
index 0000000..15d5935
--- /dev/null
@@ -0,0 +1,82 @@
+/*
+ *  color-combo-color-menu-item.h
+ *  Copyright (C) 2008  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __COLOR_COMBO_COLOR_MENU_ITEM_H__
+#define __COLOR_COMBO_COLOR_MENU_ITEM_H__
+
+
+#include <gtk/gtk.h>
+
+
+G_BEGIN_DECLS
+
+#define GL_TYPE_COLOR_COMBO_COLOR_MENU_ITEM (gl_color_combo_color_menu_item_get_type ())
+#define GL_COLOR_COMBO_COLOR_MENU_ITEM(obj) \
+        (G_TYPE_CHECK_INSTANCE_CAST((obj), GL_TYPE_COLOR_COMBO_COLOR_MENU_ITEM, glColorComboColorMenuItem ))
+#define GL_COLOR_COMBO_COLOR_MENU_ITEM_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_COLOR_COMBO_COLOR_MENU_ITEM, glColorComboColorMenuItemClass))
+#define GL_IS_COLOR_COMBO_COLOR_MENU_ITEM(obj) \
+        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_COLOR_COMBO_COLOR_MENU_ITEM))
+#define GL_IS_COLOR_COMBO_COLOR_MENU_ITEM_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_COLOR_COMBO_COLOR_MENU_ITEM))
+
+typedef struct _glColorComboColorMenuItem        glColorComboColorMenuItem;
+typedef struct _glColorComboColorMenuItemPrivate glColorComboColorMenuItemPrivate;
+typedef struct _glColorComboColorMenuItemClass   glColorComboColorMenuItemClass;
+
+struct _glColorComboColorMenuItem {
+       GtkMenuItem                       parent_widget;
+
+       glColorComboColorMenuItemPrivate *priv;
+};
+
+struct _glColorComboColorMenuItemClass {
+       GtkMenuItemClass                  parent_class;
+};
+
+
+GType      gl_color_combo_color_menu_item_get_type (void) G_GNUC_CONST;
+
+GtkWidget *gl_color_combo_color_menu_item_new      (gint                       id,
+                                                    guint                      color,
+                                                    const gchar               *tip);
+
+gint       gl_color_combo_color_menu_item_get_id   (glColorComboColorMenuItem *this);
+
+void       gl_color_combo_color_menu_item_set_color(glColorComboColorMenuItem *this,
+                                                    gint                       id,
+                                                    guint                      color,
+                                                    const gchar               *tip);
+
+
+G_END_DECLS
+
+#endif /* __COLOR_COMBO_COLOR_MENU_ITEM_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/color-combo-menu.c b/src/color-combo-menu.c
new file mode 100644 (file)
index 0000000..e08f4b2
--- /dev/null
@@ -0,0 +1,456 @@
+/*
+ *  color-combo-menu.c
+ *  Copyright (C) 2008  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "color-combo-menu.h"
+
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+
+#include "color-combo-color-menu-item.h"
+#include "color-history-model.h"
+#include "color.h"
+#include "marshal.h"
+
+
+/*===========================================*/
+/* Private macros and constants.             */
+/*===========================================*/
+
+#define PALETTE_COLS     7
+#define PALETTE_ROWS    (G_N_ELEMENTS(color_table)/PALETTE_COLS + (G_N_ELEMENTS(color_table)%PALETTE_COLS ? 1 : 0))
+
+#define ROW_DEFAULT (0)
+#define ROW_SEP_1   (ROW_DEFAULT + 1)
+#define ROW_PALETTE (ROW_SEP_1   + 1)
+#define ROW_SEP_2   (ROW_PALETTE + PALETTE_ROWS)
+#define ROW_HISTORY (ROW_SEP_2   + 1)
+#define ROW_SEP_3   (ROW_HISTORY + 1)
+#define ROW_CUSTOM  (ROW_SEP_3   + 1)
+
+/*===========================================*/
+/* Private types                             */
+/*===========================================*/
+
+struct _glColorComboMenuPrivate {
+
+        GtkWidget *default_menu_item;
+        GtkWidget *custom_menu_item;
+
+        GtkWidget *history_menu_item[PALETTE_COLS];
+
+        guint      color;
+};
+
+enum {
+        COLOR_CHANGED,
+        LAST_SIGNAL
+};
+
+typedef struct {
+        guint  color;
+        gchar *name;
+} ColorTableEntry;
+
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+static guint signals[LAST_SIGNAL] = {0};
+
+static ColorTableEntry color_table[] =
+{
+
+        { GL_COLOR (139,   0,   0), N_("Dark Red") },
+        { GL_COLOR (165,  42,  42), N_("Brown") },
+        { GL_COLOR (205, 149,  12), N_("Dark Goldenrod") },
+        { GL_COLOR (  0, 100,   0), N_("Dark Green") },
+        { GL_COLOR (  0, 139, 139), N_("Dark Cyan") },
+        { GL_COLOR (  0,   0, 128), N_("Navy Blue") },
+        { GL_COLOR (148,   0, 211), N_("Dark Violet") },
+
+        { GL_COLOR (255,   0,   0), N_("Red") },
+        { GL_COLOR (255, 165,   0), N_("Orange") },
+        { GL_COLOR (205, 205,   0), N_("Dark Yellow") },
+        { GL_COLOR (  0, 205,   0), N_("Medium green") },
+        { GL_COLOR ( 64, 224, 208), N_("Turquoise") },
+        { GL_COLOR (  0,   0, 255), N_("Blue") },
+        { GL_COLOR (160,  32, 240), N_("Purple") },
+
+        { GL_COLOR (250, 128, 114), N_("Salmon") },
+        { GL_COLOR (255, 215,   0), N_("Gold") },
+        { GL_COLOR (255, 255,   0), N_("Yellow") },
+        { GL_COLOR (  0, 255,   0), N_("Green") },
+        { GL_COLOR (  0, 255, 255), N_("Cyan") },
+        { GL_COLOR (135, 206, 235), N_("SkyBlue") },
+        { GL_COLOR (238, 130, 238), N_("Violet") },
+
+        { GL_COLOR (255, 192, 203), N_("Pink") },
+        { GL_COLOR (255, 246, 143), N_("Khaki") },
+        { GL_COLOR (255, 255, 224), N_("Light Yellow") },
+        { GL_COLOR (144, 238, 144), N_("Light Green") },
+        { GL_COLOR (224, 255, 255), N_("Light Cyan") },
+        { GL_COLOR (198, 226, 255), N_("Slate Gray") },
+        { GL_COLOR (216, 191, 216), N_("Thistle") },
+
+        { GL_COLOR (255, 255, 255), N_("White") },
+        /* xgettext: no-c-format */
+        { GL_COLOR (230, 230, 230), N_("10% Gray") },
+        /* xgettext: no-c-format */
+        { GL_COLOR (192, 192, 192), N_("25% Gray") },
+        /* xgettext: no-c-format */
+        { GL_COLOR (153, 153, 153), N_("40% Gray") },
+        /* xgettext: no-c-format */
+        { GL_COLOR (128, 128, 128), N_("50% Gray") },
+        /* xgettext: no-c-format */
+        { GL_COLOR (102, 102, 102), N_("60% Gray") },
+        { GL_COLOR (  0,   0,   0), N_("Black") },
+
+};
+
+static glColorHistoryModel *custom_color_history = NULL;
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+static void gl_color_combo_menu_finalize  (GObject          *object);
+
+static void load_custom_color_history     (glColorComboMenu *this);
+
+static gboolean map_event_cb              (GtkWidget    *widget,
+                                           GdkEventAny  *event);
+
+static void default_menu_item_activate_cb (glColorComboMenu *this);
+static void custom_menu_item_activate_cb  (glColorComboMenu *this);
+
+static void palette_menu_item_activate_cb (GtkMenuItem      *item,
+                                           glColorComboMenu *this);
+
+static void history_menu_item_activate_cb (GtkMenuItem      *item,
+                                           glColorComboMenu *this);
+
+
+/****************************************************************************/
+/* Boilerplate Object stuff.                                                */
+/****************************************************************************/
+G_DEFINE_TYPE (glColorComboMenu, gl_color_combo_menu, GTK_TYPE_MENU)
+
+
+/*****************************************************************************/
+/* Class Init Function.                                                      */
+/*****************************************************************************/
+static void
+gl_color_combo_menu_class_init (glColorComboMenuClass *class)
+{
+       GObjectClass   *gobject_class = G_OBJECT_CLASS (class);
+       GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
+
+        gl_color_combo_menu_parent_class = g_type_class_peek_parent (class);
+
+       gobject_class->finalize = gl_color_combo_menu_finalize;
+
+        widget_class->map_event = map_event_cb;
+
+        signals[COLOR_CHANGED] =
+                g_signal_new ("color_changed",
+                              G_OBJECT_CLASS_TYPE (gobject_class),
+                              G_SIGNAL_RUN_LAST,
+                              G_STRUCT_OFFSET (glColorComboMenuClass, color_changed),
+                              NULL, NULL,
+                              gl_marshal_VOID__UINT_BOOLEAN,
+                              G_TYPE_NONE,
+                              2, G_TYPE_POINTER, G_TYPE_BOOLEAN);
+}
+
+
+/*****************************************************************************/
+/* Object Instance Init Function.                                            */
+/*****************************************************************************/
+static void
+gl_color_combo_menu_init (glColorComboMenu *this)
+{
+        GtkWidget *separator_menu_item;
+        gint       i, i_row, i_col;
+        GtkWidget *palette_menu_item;
+
+
+        /*
+         * Initialize history, if needed.
+         */
+        if ( !custom_color_history )
+        {
+                custom_color_history = gl_color_history_model_new (PALETTE_COLS);
+        }
+
+
+       this->priv = g_new0 (glColorComboMenuPrivate, 1);
+
+        this->priv->default_menu_item = gtk_menu_item_new_with_label ("");
+        gtk_menu_attach (GTK_MENU (this), this->priv->default_menu_item,
+                         0, PALETTE_COLS, ROW_DEFAULT, ROW_DEFAULT+1);
+
+        separator_menu_item = gtk_separator_menu_item_new ();
+        gtk_menu_attach (GTK_MENU (this), separator_menu_item,
+                         0, PALETTE_COLS, ROW_SEP_1, ROW_SEP_1+1);
+
+        for ( i=0; i < G_N_ELEMENTS(color_table); i++ )
+        {
+
+                i_row = i / PALETTE_COLS;
+                i_col = i % PALETTE_COLS;
+
+                palette_menu_item = gl_color_combo_color_menu_item_new (i,
+                                                                        color_table[i].color,
+                                                                        gettext (color_table[i].name));
+                g_signal_connect (palette_menu_item, "activate",
+                                  G_CALLBACK (palette_menu_item_activate_cb), this);
+
+                gtk_menu_attach (GTK_MENU (this), palette_menu_item,
+                                 i_col, i_col+1,
+                                 ROW_PALETTE+i_row, ROW_PALETTE+i_row+1);
+        }
+
+        separator_menu_item = gtk_separator_menu_item_new ();
+        gtk_menu_attach (GTK_MENU (this), separator_menu_item,
+                         0, PALETTE_COLS, ROW_SEP_2, ROW_SEP_2+1);
+
+        for ( i=0; i < PALETTE_COLS; i++ )
+        {
+                this->priv->history_menu_item[i] =
+                        gl_color_combo_color_menu_item_new (i, 0, NULL);
+                gtk_widget_set_sensitive (this->priv->history_menu_item[i], FALSE);
+                g_signal_connect (this->priv->history_menu_item[i], "activate",
+                                  G_CALLBACK (history_menu_item_activate_cb), this);
+                gtk_menu_attach (GTK_MENU (this), this->priv->history_menu_item[i],
+                                 i, i+1,
+                                 ROW_HISTORY, ROW_HISTORY+1);
+        }
+
+        separator_menu_item = gtk_separator_menu_item_new ();
+        gtk_menu_attach (GTK_MENU (this), separator_menu_item,
+                         0, PALETTE_COLS, ROW_SEP_3, ROW_SEP_3+1);
+
+        this->priv->custom_menu_item = gtk_menu_item_new_with_label (_("Custom Color"));
+        gtk_menu_attach (GTK_MENU (this), this->priv->custom_menu_item,
+                         0, PALETTE_COLS, ROW_CUSTOM, ROW_CUSTOM+1);
+
+        g_signal_connect_swapped (this->priv->default_menu_item, "activate",
+                                  G_CALLBACK (default_menu_item_activate_cb), this);
+        g_signal_connect_swapped (this->priv->custom_menu_item, "activate",
+                                  G_CALLBACK (custom_menu_item_activate_cb), this);
+
+}
+
+
+/*****************************************************************************/
+/* Finalize Method.                                                          */
+/*****************************************************************************/
+static void
+gl_color_combo_menu_finalize (GObject *object)
+{
+       glColorComboMenu *this = GL_COLOR_COMBO_MENU (object);
+
+       g_return_if_fail (object != NULL);
+       g_return_if_fail (GL_IS_COLOR_COMBO_MENU (object));
+
+       g_free (this->priv);
+
+       G_OBJECT_CLASS (gl_color_combo_menu_parent_class)->finalize (object);
+}
+
+
+/*****************************************************************************/
+/** New Object Generator.                                                    */
+/*****************************************************************************/
+GtkWidget *
+gl_color_combo_menu_new (const gchar *default_label,
+                         guint        color)
+{
+       glColorComboMenu *this;
+
+       this = g_object_new (gl_color_combo_menu_get_type (), NULL);
+
+        gtk_label_set_text ( GTK_LABEL (gtk_bin_get_child (GTK_BIN (this->priv->default_menu_item))),
+                            default_label);
+
+        this->priv->color = color;
+
+       return GTK_WIDGET (this);
+}
+
+
+/*****************************************************************************/
+/* Load menu with custom color history.                                      */
+/*****************************************************************************/
+static void
+load_custom_color_history (glColorComboMenu *this)
+{
+        guint  i;
+        guint  color;
+        gchar *tip;
+
+        for ( i=0; i < PALETTE_COLS; i++ )
+        {
+                color = gl_color_history_model_get_color (custom_color_history, i);
+
+                if (color)
+                {
+                        tip = g_strdup_printf (_("Custom Color #%u"), i+1);
+
+                        gl_color_combo_color_menu_item_set_color (GL_COLOR_COMBO_COLOR_MENU_ITEM (this->priv->history_menu_item[i]),
+                                                                  i,
+                                                                  color,
+                                                                  tip);
+                        g_free (tip);
+                        gtk_widget_set_sensitive (this->priv->history_menu_item[i], TRUE);
+                }
+        }
+}
+
+
+/*****************************************************************************/
+/* Map event callback.                                                       */
+/*****************************************************************************/
+static gboolean
+map_event_cb (GtkWidget    *widget,
+              GdkEventAny  *event)
+{
+        glColorComboMenu *this = GL_COLOR_COMBO_MENU (widget);
+
+        load_custom_color_history (this);
+
+        return FALSE;
+}
+
+
+/*****************************************************************************/
+/* "Default" menu_item activate callback.                                    */
+/*****************************************************************************/
+static void
+default_menu_item_activate_cb (glColorComboMenu *this)
+{
+        g_signal_emit (this, signals[COLOR_CHANGED], 0,
+                      NULL, TRUE);
+
+        gtk_widget_hide (GTK_WIDGET (this));
+}
+
+
+/*****************************************************************************/
+/* "Custom color" menu_item activate callback.                               */
+/*****************************************************************************/
+static void
+custom_menu_item_activate_cb (glColorComboMenu *this)
+{
+        GtkWidget *custom_dialog;
+        GtkWidget *colorsel;
+        gint       response;
+        GdkColor   color;
+
+        gtk_widget_hide (GTK_WIDGET (this));
+
+        custom_dialog = gtk_color_selection_dialog_new (_("Custom Color"));
+
+        colorsel = gtk_color_selection_dialog_get_color_selection (GTK_COLOR_SELECTION_DIALOG (custom_dialog));
+        color.red   = GL_COLOR_F_RED   (this->priv->color) * 65535;
+        color.green = GL_COLOR_F_GREEN (this->priv->color) * 65535;
+        color.blue  = GL_COLOR_F_BLUE  (this->priv->color) * 65535;
+
+        gtk_color_selection_set_current_color (GTK_COLOR_SELECTION (colorsel),
+                                               &color);
+
+        response = gtk_dialog_run (GTK_DIALOG (custom_dialog));
+
+        switch (response) {
+
+        case GTK_RESPONSE_OK:
+                gtk_color_selection_get_current_color (GTK_COLOR_SELECTION (colorsel),
+                                                       &color);
+                this->priv->color = GL_COLOR ((color.red   >>8),
+                                              (color.green >>8),
+                                              (color.blue  >>8));
+
+                gl_color_history_model_add_color (custom_color_history,
+                                                  this->priv->color);
+
+                g_signal_emit (this, signals[COLOR_CHANGED], 0,
+                               this->priv->color, FALSE);
+
+                gtk_widget_destroy (custom_dialog);
+                break;
+        default:
+                gtk_widget_destroy (custom_dialog);
+                break;
+        }
+}
+
+
+/*****************************************************************************/
+/* Palette color changed callback.                                           */
+/*****************************************************************************/
+static void
+palette_menu_item_activate_cb (GtkMenuItem      *item,
+                               glColorComboMenu *this)
+{
+        gint i;
+
+        i = gl_color_combo_color_menu_item_get_id (GL_COLOR_COMBO_COLOR_MENU_ITEM (item));
+
+        this->priv->color = color_table[i].color;
+
+        g_signal_emit (this, signals[COLOR_CHANGED], 0,
+                       this->priv->color, FALSE);
+
+        gtk_widget_hide (GTK_WIDGET (this));
+}
+
+/*****************************************************************************/
+/* History color menu item callback.                                         */
+/*****************************************************************************/
+static void
+history_menu_item_activate_cb (GtkMenuItem      *item,
+                               glColorComboMenu *this)
+{
+        gint i;
+
+        i = gl_color_combo_color_menu_item_get_id (GL_COLOR_COMBO_COLOR_MENU_ITEM (item));
+
+        this->priv->color = gl_color_history_model_get_color (custom_color_history, i);
+
+        g_signal_emit (this, signals[COLOR_CHANGED], 0,
+                       this->priv->color, FALSE);
+
+        gtk_widget_hide (GTK_WIDGET (this));
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/color-combo-menu.h b/src/color-combo-menu.h
new file mode 100644 (file)
index 0000000..e309e0a
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ *  color-combo-menu.h
+ *  Copyright (C) 2008  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __COLOR_COMBO_MENU_H__
+#define __COLOR_COMBO_MENU_H__
+
+#include <gtk/gtk.h>
+
+
+G_BEGIN_DECLS
+
+#define GL_TYPE_COLOR_COMBO_MENU (gl_color_combo_menu_get_type ())
+#define GL_COLOR_COMBO_MENU(obj) \
+        (G_TYPE_CHECK_INSTANCE_CAST((obj), GL_TYPE_COLOR_COMBO_MENU, glColorComboMenu ))
+#define GL_COLOR_COMBO_MENU_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_COLOR_COMBO_MENU, glColorComboMenuClass))
+#define GL_IS_COLOR_COMBO_MENU(obj) \
+        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_COLOR_COMBO_MENU))
+#define GL_IS_COLOR_COMBO_MENU_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_COLOR_COMBO_MENU))
+
+typedef struct _glColorComboMenu        glColorComboMenu;
+typedef struct _glColorComboMenuPrivate glColorComboMenuPrivate;
+typedef struct _glColorComboMenuClass   glColorComboMenuClass;
+
+struct _glColorComboMenu {
+       GtkMenu                  parent_widget;
+
+       glColorComboMenuPrivate *priv;
+};
+
+struct _glColorComboMenuClass {
+       GtkMenuClass             parent_class;
+
+        /*
+         * Signals
+         */
+        void (*color_changed) (glColorComboMenu *object,
+                               guint             color,
+                               gboolean          is_default,
+                               gpointer          user_data);
+
+};
+
+
+GType      gl_color_combo_menu_get_type          (void) G_GNUC_CONST;
+
+GtkWidget *gl_color_combo_menu_new               (const gchar *default_label,
+                                                  guint        color);
+
+
+G_END_DECLS
+
+
+#endif /* __COLOR_COMBO_MENU_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
+
diff --git a/src/color-combo.c b/src/color-combo.c
new file mode 100644 (file)
index 0000000..ea29ebe
--- /dev/null
@@ -0,0 +1,392 @@
+/*
+ *  color-combo.c
+ *  Copyright (C) 2008-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "color-combo.h"
+
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+
+#include "color-combo-menu.h"
+#include "color-swatch.h"
+#include "color.h"
+#include "marshal.h"
+
+
+#define IMAGE_W 24
+#define IMAGE_H 24
+
+
+/*========================================================*/
+/* Private types.                                         */
+/*========================================================*/
+
+/** GL_COLOR_COMBO Private fields */
+struct _glColorComboPrivate {
+
+        guint       color;
+        gboolean    is_default_flag;
+
+        guint       default_color;
+
+        GtkWidget  *swatch;
+
+        GtkWidget  *menu;
+};
+
+enum {
+        COLOR_CHANGED,
+        LAST_SIGNAL
+};
+
+
+/*========================================================*/
+/* Private globals.                                       */
+/*========================================================*/
+
+static guint signals[LAST_SIGNAL] = {0};
+
+
+/*========================================================*/
+/* Private function prototypes.                           */
+/*========================================================*/
+
+static void gl_color_combo_finalize      (GObject             *object);
+
+static gboolean
+button_press_event_cb (GtkWidget      *widget,
+                       GdkEventButton *event,
+                       glColorCombo   *this);
+
+static void
+menu_color_changed_cb (glColorComboMenu   *object,
+                       guint               color,
+                       gboolean            is_default,
+                       glColorCombo       *this);
+
+static void
+menu_selection_done_cb (GtkMenuShell      *object,
+                        glColorCombo      *this);
+
+
+/*****************************************************************************/
+/* Object infrastructure.                                                    */
+/*****************************************************************************/
+G_DEFINE_TYPE (glColorCombo, gl_color_combo, GTK_TYPE_TOGGLE_BUTTON)
+
+
+/*****************************************************************************/
+/* Class Init Function.                                                      */
+/*****************************************************************************/
+static void
+gl_color_combo_class_init (glColorComboClass *class)
+{
+        GObjectClass       *gobject_class = (GObjectClass *) class;
+
+        gl_color_combo_parent_class = g_type_class_peek_parent (class);
+
+        gobject_class->finalize = gl_color_combo_finalize;
+
+        signals[COLOR_CHANGED] =
+                g_signal_new ("color_changed",
+                              G_OBJECT_CLASS_TYPE (gobject_class),
+                              G_SIGNAL_RUN_LAST,
+                              G_STRUCT_OFFSET (glColorComboClass, color_changed),
+                              NULL, NULL,
+                              gl_marshal_VOID__UINT_BOOLEAN,
+                              G_TYPE_NONE,
+                              2, G_TYPE_POINTER, G_TYPE_BOOLEAN);
+
+}
+
+
+/*****************************************************************************/
+/* Object Instance Init Function.                                            */
+/*****************************************************************************/
+static void
+gl_color_combo_init (glColorCombo *this)
+{
+        GtkWidget *hbox;
+        GtkWidget *arrow;
+
+        this->priv = g_new0 (glColorComboPrivate, 1);
+
+        hbox = gtk_hbox_new (FALSE, 3);
+        gtk_container_add (GTK_CONTAINER (this), hbox);
+        
+        this->priv->swatch = gl_color_swatch_new (IMAGE_W, IMAGE_H, GL_COLOR_NONE);
+        gtk_box_pack_start (GTK_BOX (hbox), this->priv->swatch, TRUE, TRUE, 0);
+
+        arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_IN);
+        gtk_box_pack_end (GTK_BOX (hbox), arrow, FALSE, FALSE, 0);
+
+        g_signal_connect (this, "button_press_event",
+                          G_CALLBACK(button_press_event_cb), this);
+}
+
+
+/*****************************************************************************/
+/* Finalize Method.                                                          */
+/*****************************************************************************/
+static void
+gl_color_combo_finalize (GObject *object)
+{
+        glColorCombo    *this;
+
+        g_return_if_fail (object && IS_GL_COLOR_COMBO (object));
+        this = GL_COLOR_COMBO (object);
+
+        g_object_ref_sink (this->priv->menu);
+        g_free (this->priv);
+
+        G_OBJECT_CLASS (gl_color_combo_parent_class)->finalize (object);
+}
+
+
+/*****************************************************************************/
+/** New Object Generator.                                                    */
+/*****************************************************************************/
+GtkWidget *
+gl_color_combo_new (const gchar  *default_label,
+                    guint         default_color,
+                    guint         color)
+{
+        glColorCombo *this;
+
+        this = g_object_new (TYPE_GL_COLOR_COMBO, NULL);
+
+        if (!default_label)
+        {
+                default_label = _("Default Color");
+        }
+
+        this->priv->default_color = default_color;
+        this->priv->color = color;
+
+        gl_color_swatch_set_color (GL_COLOR_SWATCH (this->priv->swatch), color);
+
+        this->priv->menu = gl_color_combo_menu_new (default_label,
+                                                    color);
+        gtk_widget_show_all (this->priv->menu);
+
+        g_signal_connect (this->priv->menu, "color_changed",
+                          G_CALLBACK (menu_color_changed_cb), this);
+        g_signal_connect (this->priv->menu, "selection_done",
+                          G_CALLBACK (menu_selection_done_cb), this);
+
+        return GTK_WIDGET (this);
+}
+
+
+/*****************************************************************************/
+/* Set color.                                                                */
+/*****************************************************************************/
+void
+gl_color_combo_set_color (glColorCombo  *this,
+                          guint          color)
+{
+        this->priv->color = color;
+
+        gl_color_swatch_set_color (GL_COLOR_SWATCH (this->priv->swatch), color);
+}
+
+
+/*****************************************************************************/
+/* Set to default color.                                                     */
+/*****************************************************************************/
+void
+gl_color_combo_set_to_default (glColorCombo  *this)
+{
+        gl_color_combo_set_color (this, this->priv->default_color);
+}
+
+/*****************************************************************************/
+/* Get color.                                                                */
+/*****************************************************************************/
+guint
+gl_color_combo_get_color (glColorCombo  *this,
+                          gboolean      *is_default)
+{
+        if (is_default)
+        {
+                *is_default = this->priv->is_default_flag;
+        }
+
+        return this->priv->color;
+}
+
+
+/*****************************************************************************/
+/* Menu positioning function.                                                */
+/*****************************************************************************/
+static void
+menu_position_function (GtkMenu       *menu,
+                        gint          *x,
+                        gint          *y,
+                        gboolean      *push_in,
+                        glColorCombo  *this)
+{
+        GdkScreen          *screen;
+        gint                w_screen, h_screen;
+        GdkWindow          *window;
+        gint                x_window, y_window;
+        GtkAllocation       allocation;
+        gint                x_this, y_this, h_this;
+        GtkRequisition      menu_requisition;
+        gint                h_menu, w_menu;
+
+        /*
+         * Screen size
+         */
+        screen = gtk_widget_get_screen (GTK_WIDGET (this));
+        w_screen = gdk_screen_get_width (screen);
+        h_screen = gdk_screen_get_height (screen);
+
+        /*
+         * Absolute position of "this" window on screen.
+         */
+        window = gtk_widget_get_window (GTK_WIDGET (this));
+        gdk_window_get_origin (window, &x_window, &y_window);
+
+        /*
+         *  Position and size of "this" inside window
+         */
+        gtk_widget_get_allocation (GTK_WIDGET (this), &allocation);
+        x_this = allocation.x;
+        y_this = allocation.y;
+        h_this = allocation.height;
+
+        /*
+         * Size of menu.
+         */
+        gtk_widget_size_request (this->priv->menu, &menu_requisition);
+        h_menu = menu_requisition.height;
+        w_menu = menu_requisition.width;
+
+        /*
+         * Default position anchored to lower left corner of "this".
+         */
+        *x = x_window + x_this;
+        *y = y_window + y_this + h_this;
+                
+        /*
+         * Adjust vertical position if menu if extends past bottom of screen.
+         */
+        if ( (*y + h_menu) > h_screen )
+        {
+                *y = y_window + y_this - h_menu;
+
+                if ( *y < 0 )
+                {
+                        *y = h_screen - h_menu;
+                }
+        }
+
+        /*
+         * Adjust horizontal position if menu if extends past edge of screen.
+         */
+        if ( (*x + w_menu) > w_screen )
+        {
+                *x = w_screen - w_menu;
+        }
+
+
+        *push_in = TRUE;
+}
+
+
+/*****************************************************************************/
+/* Button "button_press_event" callback.                                     */
+/*****************************************************************************/
+static gboolean
+button_press_event_cb (GtkWidget      *widget,
+                       GdkEventButton *event,
+                       glColorCombo   *this)
+{
+        switch (event->button)
+        {
+
+        case 1:
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (this), TRUE);
+
+                gtk_menu_popup (GTK_MENU (this->priv->menu),
+                                NULL, NULL,
+                                (GtkMenuPositionFunc)menu_position_function, this,
+                                event->button, event->time);
+                break;
+
+        default:
+                break;
+
+        }
+
+        return FALSE;
+}
+
+
+/*****************************************************************************/
+/* Menu "color changed" callback.                                            */
+/*****************************************************************************/
+static void
+menu_color_changed_cb (glColorComboMenu     *object,
+                       guint                 color,
+                       gboolean              is_default,
+                       glColorCombo         *this)
+{
+        if (is_default)
+        {
+                this->priv->color = this->priv->default_color;
+        }
+        else
+        {
+                this->priv->color = color;
+        }
+        this->priv->is_default_flag = is_default;
+
+        gl_color_swatch_set_color (GL_COLOR_SWATCH (this->priv->swatch),
+                                   this->priv->color);
+
+        g_signal_emit (this, signals[COLOR_CHANGED], 0,
+                       this->priv->color,
+                       this->priv->is_default_flag);
+}
+
+
+/*****************************************************************************/
+/* Menu "color changed" callback.                                            */
+/*****************************************************************************/
+static void
+menu_selection_done_cb (GtkMenuShell         *object,
+                        glColorCombo         *this)
+{
+        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (this), FALSE);
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/color-combo.h b/src/color-combo.h
new file mode 100644 (file)
index 0000000..baa928d
--- /dev/null
@@ -0,0 +1,94 @@
+/*
+ *  color-combo.h
+ *  Copyright (C) 2008-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __GL_COLOR_COMBO_H__
+#define __GL_COLOR_COMBO_H__
+
+
+#include <gtk/gtk.h>
+
+
+G_BEGIN_DECLS
+
+#define TYPE_GL_COLOR_COMBO              (gl_color_combo_get_type ())
+#define GL_COLOR_COMBO(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GL_COLOR_COMBO, glColorCombo))
+#define GL_COLOR_COMBO_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GL_COLOR_COMBO, glColorComboClass))
+#define IS_GL_COLOR_COMBO(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GL_COLOR_COMBO))
+#define IS_GL_COLOR_COMBO_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GL_COLOR_COMBO))
+#define GL_COLOR_COMBO_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), TYPE_GL_COLOR_COMBO, glColorComboClass))
+
+
+typedef struct _glColorCombo          glColorCombo;
+typedef struct _glColorComboPrivate   glColorComboPrivate;
+typedef struct _glColorComboClass     glColorComboClass;
+
+
+struct _glColorCombo {
+        GtkToggleButton                parent;
+
+        glColorComboPrivate           *priv;
+};
+
+struct _glColorComboClass {
+        GtkToggleButtonClass           parent_class;
+
+        /*
+         * Signals
+         */
+        void (*color_changed) (glColorCombo *object,
+                               guint         color,
+                               gboolean      is_default,
+                               gpointer      user_data);
+
+};
+
+
+GType            gl_color_combo_get_type          (void) G_GNUC_CONST;
+
+GtkWidget       *gl_color_combo_new               (const gchar   *default_label,
+                                                   guint          default_color,
+                                                   guint          color);
+
+void             gl_color_combo_set_color         (glColorCombo  *this,
+                                                   guint          color);
+
+void             gl_color_combo_set_to_default    (glColorCombo  *this);
+
+guint            gl_color_combo_get_color         (glColorCombo  *this,
+                                                   gboolean      *is_default);
+
+void             gl_color_combo_set_relief        (glColorCombo  *this,
+                                                   GtkReliefStyle relief);
+
+
+G_END_DECLS
+
+#endif /* __GL_COLOR_COMBO_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/color-history-model.c b/src/color-history-model.c
new file mode 100644 (file)
index 0000000..7f129bc
--- /dev/null
@@ -0,0 +1,278 @@
+/*
+ *  color-history-model.c
+ *  Copyright (C) 2008-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "color-history-model.h"
+
+#include <gio/gio.h>
+
+#include "marshal.h"
+
+
+/*========================================================*/
+/* Private types.                                         */
+/*========================================================*/
+
+struct _glColorHistoryModelPrivate {
+
+        GSettings   *history;
+
+        guint        max_n;
+};
+
+enum {
+        CHANGED,
+        LAST_SIGNAL
+};
+
+
+/*========================================================*/
+/* Private globals.                                       */
+/*========================================================*/
+
+static guint signals[LAST_SIGNAL] = {0};
+
+
+/*========================================================*/
+/* Private function prototypes.                           */
+/*========================================================*/
+
+static void    gl_color_history_model_finalize  (GObject             *object);
+
+static void    history_changed_cb               (glColorHistoryModel *this);
+
+static guint  *get_color_array                  (glColorHistoryModel *this,
+                                                 guint               *n_elements);
+static void    set_color_array                  (glColorHistoryModel *this,
+                                                 guint               *array,
+                                                 guint                n_elements);
+
+
+/*****************************************************************************/
+/* Object infrastructure.                                                    */
+/*****************************************************************************/
+G_DEFINE_TYPE (glColorHistoryModel, gl_color_history_model, G_TYPE_OBJECT)
+
+
+/*****************************************************************************/
+/* Class Init Function.                                                      */
+/*****************************************************************************/
+static void
+gl_color_history_model_class_init (glColorHistoryModelClass *class)
+{
+        GObjectClass  *gobject_class = (GObjectClass *) class;
+
+        gl_color_history_model_parent_class = g_type_class_peek_parent (class);
+
+        gobject_class->finalize = gl_color_history_model_finalize;
+
+        signals[CHANGED] =
+                g_signal_new ("changed",
+                              G_OBJECT_CLASS_TYPE (gobject_class),
+                              G_SIGNAL_RUN_LAST,
+                              G_STRUCT_OFFSET (glColorHistoryModelClass, changed),
+                              NULL, NULL,
+                              gl_marshal_VOID__VOID,
+                              G_TYPE_NONE,
+                              0);
+}
+
+
+/*****************************************************************************/
+/* Object Instance Init Function.                                            */
+/*****************************************************************************/
+static void
+gl_color_history_model_init (glColorHistoryModel *this)
+{
+        this->priv = g_new0 (glColorHistoryModelPrivate, 1);
+
+        this->priv->history = g_settings_new ("org.gnome.glabels-3.history");
+
+        g_return_if_fail (this->priv->history != NULL);
+
+        g_signal_connect_swapped (G_OBJECT (this->priv->history),
+                                  "changed::recent-colors",
+                                  G_CALLBACK (history_changed_cb), this);
+}
+
+
+/*****************************************************************************/
+/* Finalize Method.                                                          */
+/*****************************************************************************/
+static void
+gl_color_history_model_finalize (GObject *object)
+{
+        glColorHistoryModel   *this;
+
+        g_return_if_fail (object && IS_GL_COLOR_HISTORY_MODEL (object));
+        this = GL_COLOR_HISTORY_MODEL (object);
+
+        g_object_unref (G_OBJECT(this->priv->history));
+        g_free (this->priv);
+
+        G_OBJECT_CLASS (gl_color_history_model_parent_class)->finalize (object);
+}
+
+
+/*****************************************************************************/
+/** New Object Generator.                                                    */
+/*****************************************************************************/
+glColorHistoryModel *
+gl_color_history_model_new (guint n)
+{
+        glColorHistoryModel *this;
+
+        this = g_object_new (TYPE_GL_COLOR_HISTORY_MODEL, NULL);
+
+        this->priv->max_n = n;
+
+        return this;
+}
+
+
+/*****************************************************************************/
+/* Add color to history.                                                      */
+/*****************************************************************************/
+void
+gl_color_history_model_add_color (glColorHistoryModel *this,
+                                  guint                color)
+{
+        guint  *old;
+        guint  *new;
+        guint   i, n;
+
+        old = get_color_array (this, &n);
+                                   
+        new = g_new0 (guint, this->priv->max_n);
+
+        new[0] = color;
+
+        for ( i = 0; (i < (this->priv->max_n-1)) && (i < n); i++ )
+        {
+                new[i+1] = old[i];
+        }
+
+        set_color_array (this, new, i+1);
+
+        g_free (old);
+        g_free (new);
+}
+
+
+/*****************************************************************************/
+/* History changed callback.                                                 */
+/*****************************************************************************/
+static void
+history_changed_cb (glColorHistoryModel  *this)
+{
+        g_signal_emit (G_OBJECT(this), signals[CHANGED], 0);
+}
+
+
+/*****************************************************************************/
+/* Get list of colors.                                                       */
+/*****************************************************************************/
+static guint *
+get_color_array (glColorHistoryModel *this,
+                 guint               *n_elements)
+{
+        GVariant *value;
+        GVariant *child_value;
+        gsize     i;
+        guint    *array;
+
+        value = g_settings_get_value (this->priv->history, "recent-colors");
+        *n_elements = g_variant_n_children (value);
+
+        array = g_new0 (guint, *n_elements);
+
+        for ( i = 0; i < *n_elements; i++ )
+        {
+                child_value = g_variant_get_child_value (value, i);
+                array[i] = g_variant_get_uint32 (child_value);
+                g_variant_unref (child_value);
+        }
+
+        g_variant_unref (value);
+
+        return array;
+}
+
+
+/*****************************************************************************/
+/* Set list of colors.                                                       */
+/*****************************************************************************/
+static void
+set_color_array (glColorHistoryModel *this,
+                 guint               *array,
+                 guint                n_elements)
+{
+        GVariant  *value;
+        GVariant **child_values;
+        gsize      i;
+
+        child_values = g_new (GVariant *, n_elements);
+
+        for ( i = 0; i < n_elements; i++ )
+        {
+                child_values[i] = g_variant_new_uint32 (array[i]);
+        }
+
+        value = g_variant_new_array (G_VARIANT_TYPE_UINT32, child_values, n_elements);
+
+        g_settings_set_value (this->priv->history, "recent-colors", value);
+
+        g_free (child_values);
+}
+
+
+/*****************************************************************************/
+/* Get color.                                                                */
+/*****************************************************************************/
+guint
+gl_color_history_model_get_color (glColorHistoryModel *this,
+                                  guint                i)
+{
+        guint  *array;
+        guint   color = 0;
+        guint   n;
+
+        array = get_color_array (this, &n);
+        if ( array && (i < n) )
+        {
+                color = array[i];
+        }
+        g_free (array);
+
+        return color;
+}
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/color-history-model.h b/src/color-history-model.h
new file mode 100644 (file)
index 0000000..765ba99
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ *  color-history-model.h
+ *  Copyright (C) 2008-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __GL_COLOR_HISTORY_MODEL_H__
+#define __GL_COLOR_HISTORY_MODEL_H__
+
+
+#include <glib-object.h>
+
+
+G_BEGIN_DECLS
+
+/* Utility Macros */
+#define TYPE_GL_COLOR_HISTORY_MODEL              (gl_color_history_model_get_type ())
+#define GL_COLOR_HISTORY_MODEL(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GL_COLOR_HISTORY_MODEL, glColorHistoryModel))
+#define GL_COLOR_HISTORY_MODEL_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GL_COLOR_HISTORY_MODEL, glColorHistoryModelClass))
+#define IS_GL_COLOR_HISTORY_MODEL(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GL_COLOR_HISTORY_MODEL))
+#define IS_GL_COLOR_HISTORY_MODEL_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GL_COLOR_HISTORY_MODEL))
+#define GL_COLOR_HISTORY_MODEL_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), TYPE_GL_COLOR_HISTORY_MODEL, glColorHistoryModelClass))
+
+
+/* Type definitions */
+typedef struct _glColorHistoryModel          glColorHistoryModel;
+typedef struct _glColorHistoryModelPrivate   glColorHistoryModelPrivate;
+typedef struct _glColorHistoryModelClass     glColorHistoryModelClass;
+
+
+/** GL_COLOR_HISTORY_MODEL Object */
+struct _glColorHistoryModel {
+        GObject                        parent;
+
+        glColorHistoryModelPrivate    *priv;
+};
+
+/** GL_COLOR_HISTORY_MODEL Class */
+struct _glColorHistoryModelClass {
+        GObjectClass                   parent_class;
+
+        /*
+         * Signals
+         */
+        void (*changed)     (glColorHistoryModel *this,
+                             gpointer             user_data);
+
+};
+
+
+GType                gl_color_history_model_get_type  (void) G_GNUC_CONST;
+
+glColorHistoryModel *gl_color_history_model_new       (guint                n);
+
+void                 gl_color_history_model_add_color (glColorHistoryModel *this,
+                                                       guint                color);
+
+guint                gl_color_history_model_get_color (glColorHistoryModel *this,
+                                                       guint                i);
+
+
+G_END_DECLS
+
+#endif /* __GL_COLOR_HISTORY_MODEL_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/color-swatch.c b/src/color-swatch.c
new file mode 100644 (file)
index 0000000..7e97bee
--- /dev/null
@@ -0,0 +1,253 @@
+/*
+ *  color-swatch.c
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "color-swatch.h"
+
+#include "color.h"
+#include "marshal.h"
+
+
+/*===========================================*/
+/* Private macros and constants.             */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Private types                             */
+/*===========================================*/
+
+struct _glColorSwatchPrivate {
+
+        guint      color;
+
+};
+
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+static void       gl_color_swatch_finalize    (GObject        *object);
+
+static void       style_set_cb                (GtkWidget      *widget,
+                                               GtkStyle       *previous_style);
+
+static void       redraw                      (glColorSwatch  *this);
+
+static gboolean   draw_cb                     (GtkWidget      *widget,
+                                               cairo_t        *cr);
+
+static void       draw_swatch                 (glColorSwatch  *this,
+                                               cairo_t        *cr);
+
+
+
+/****************************************************************************/
+/* Boilerplate Object stuff.                                                */
+/****************************************************************************/
+G_DEFINE_TYPE (glColorSwatch, gl_color_swatch, GTK_TYPE_DRAWING_AREA)
+
+
+/*****************************************************************************/
+/* Class Init Function.                                                      */
+/*****************************************************************************/
+static void
+gl_color_swatch_class_init (glColorSwatchClass *class)
+{
+       GObjectClass   *gobject_class = G_OBJECT_CLASS (class);
+       GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
+
+        gl_color_swatch_parent_class = g_type_class_peek_parent (class);
+
+       gobject_class->finalize    = gl_color_swatch_finalize;
+
+        widget_class->style_set    = style_set_cb;
+        widget_class->draw         = draw_cb;
+}
+
+
+/*****************************************************************************/
+/* Object Instance Init Function.                                            */
+/*****************************************************************************/
+static void
+gl_color_swatch_init (glColorSwatch *this)
+{
+        gtk_widget_set_has_window (GTK_WIDGET (this), FALSE);
+
+       this->priv = g_new0 (glColorSwatchPrivate, 1);
+}
+
+
+/*****************************************************************************/
+/* Finalize Method.                                                          */
+/*****************************************************************************/
+static void
+gl_color_swatch_finalize (GObject *object)
+{
+       glColorSwatch *this = GL_COLOR_SWATCH (object);
+
+       g_return_if_fail (object != NULL);
+       g_return_if_fail (GL_IS_COLOR_SWATCH (object));
+
+       g_free (this->priv);
+
+       G_OBJECT_CLASS (gl_color_swatch_parent_class)->finalize (object);
+}
+
+
+/*****************************************************************************/
+/** New Object Generator.                                                    */
+/*****************************************************************************/
+GtkWidget *
+gl_color_swatch_new (gint         w,
+                     gint         h,
+                     guint        color)
+{
+       glColorSwatch *this;
+
+       this = g_object_new (GL_TYPE_COLOR_SWATCH, NULL);
+
+        this->priv->color = color;
+
+        gtk_widget_set_size_request (GTK_WIDGET (this), w, h);
+
+       return GTK_WIDGET (this);
+}
+
+
+/*****************************************************************************/
+/* Set color.                                                                */
+/*****************************************************************************/
+void
+gl_color_swatch_set_color (glColorSwatch *this,
+                           guint          color)
+{
+        if ( color != this->priv->color )
+        {
+                this->priv->color = color;
+
+                redraw (this);
+        }
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Style set handler (updates colors when style/theme changes).             */
+/*--------------------------------------------------------------------------*/
+static void
+style_set_cb (GtkWidget        *widget,
+              GtkStyle         *previous_style)
+{
+        redraw (GL_COLOR_SWATCH (widget));
+}
+
+
+/*****************************************************************************/
+/* Request redraw.                                                           */
+/*****************************************************************************/
+static void
+redraw (glColorSwatch  *this)
+{
+        GdkWindow     *window;
+        GtkAllocation  allocation;
+
+        window = gtk_widget_get_window (GTK_WIDGET (this));
+
+        if (window)
+        {
+                gtk_widget_get_allocation (GTK_WIDGET (this), &allocation);
+                gdk_window_invalidate_rect (window, &allocation, FALSE);
+        }
+}
+
+
+/*****************************************************************************/
+/* "Expose event" callback.                                                  */
+/*****************************************************************************/
+static gboolean
+draw_cb (GtkWidget      *widget,
+         cairo_t        *cr)
+{
+       draw_swatch (GL_COLOR_SWATCH (widget), cr);
+
+       return FALSE;
+}
+
+
+/*****************************************************************************/
+/* Draw swatch.                                                              */
+/*****************************************************************************/
+static void
+draw_swatch (glColorSwatch *this,
+             cairo_t       *cr)
+{
+        GtkAllocation  allocation;
+        GtkStyle      *style;
+        gdouble        w, h;
+        guint          fill_color, line_color;
+
+
+        cairo_set_antialias (cr, CAIRO_ANTIALIAS_NONE);
+
+
+        gtk_widget_get_allocation (GTK_WIDGET (this), &allocation);
+        w = allocation.width;
+        h = allocation.height;
+
+
+        style = gtk_widget_get_style (GTK_WIDGET (this));
+        if ( gtk_widget_is_sensitive (GTK_WIDGET (this)) )
+        {
+                fill_color = this->priv->color;
+                line_color = gl_color_from_gdk_color (&style->fg[GTK_STATE_NORMAL]);
+        }
+        else
+        {
+                fill_color = GL_COLOR_NONE;
+                line_color = gl_color_from_gdk_color (&style->fg[GTK_STATE_INSENSITIVE]);
+        }
+
+        cairo_rectangle( cr, 1, 1, w-2, h-2 );
+
+        cairo_set_source_rgba (cr, GL_COLOR_RGBA_ARGS (fill_color));
+        cairo_fill_preserve( cr );
+
+        cairo_set_source_rgb (cr, GL_COLOR_RGB_ARGS (line_color));
+        cairo_set_line_width (cr, 1.0);
+        cairo_stroke (cr);
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/color-swatch.h b/src/color-swatch.h
new file mode 100644 (file)
index 0000000..c6e05fb
--- /dev/null
@@ -0,0 +1,78 @@
+/*
+ *  color-swatch.h
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __COLOR_SWATCH_H__
+#define __COLOR_SWATCH_H__
+
+
+#include <gtk/gtk.h>
+
+
+G_BEGIN_DECLS
+
+#define GL_TYPE_COLOR_SWATCH (gl_color_swatch_get_type ())
+#define GL_COLOR_SWATCH(obj) \
+        (G_TYPE_CHECK_INSTANCE_CAST((obj), GL_TYPE_COLOR_SWATCH, glColorSwatch ))
+#define GL_COLOR_SWATCH_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_COLOR_SWATCH, glColorSwatchClass))
+#define GL_IS_COLOR_SWATCH(obj) \
+        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_COLOR_SWATCH))
+#define GL_IS_COLOR_SWATCH_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_COLOR_SWATCH))
+
+typedef struct _glColorSwatch        glColorSwatch;
+typedef struct _glColorSwatchPrivate glColorSwatchPrivate;
+typedef struct _glColorSwatchClass   glColorSwatchClass;
+
+struct _glColorSwatch {
+       GtkDrawingArea                    parent_widget;
+
+       glColorSwatchPrivate *priv;
+};
+
+struct _glColorSwatchClass {
+       GtkDrawingAreaClass               parent_class;
+};
+
+
+GType      gl_color_swatch_get_type (void) G_GNUC_CONST;
+
+GtkWidget *gl_color_swatch_new      (gint           w,
+                                     gint           h,
+                                     guint          color);
+
+void       gl_color_swatch_set_color(glColorSwatch *this,
+                                     guint          color);
+
+
+G_END_DECLS
+
+#endif /* __COLOR_SWATCH_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index e4bf3bdf192f84a54695807208123fc7ee386c3d..2a87c9e16aa2b3e2651cfd67f401244ded455445 100644 (file)
@@ -1,32 +1,30 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  color.c:  various small utilities for dealing with canvas colors
+ *  color.c
+ *  Copyright (C) 2002-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2002-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "color.h"
 
 #include <string.h>
 
+
 /*****************************************************************************/
 /* Apply given opacity to given color.                                       */
 /*****************************************************************************/
@@ -41,6 +39,7 @@ gl_color_set_opacity (guint   color,
         return new_color;
 }
 
+
 /*****************************************************************************/
 /* Resolve actual shadow color by adjusting opacity.                         */
 /*****************************************************************************/
@@ -57,44 +56,41 @@ gl_color_shadow (guint   base_color,
         return color;
 }
 
+
 /*****************************************************************************/
 /* Convert gLabels color into a GdkColor                                     */
 /*****************************************************************************/
 GdkColor *
 gl_color_to_gdk_color (guint color)
 {
-        GdkColor *gdk_color = NULL;
+        GdkColor *gdk_color;
 
-        if ( GL_COLOR_F_ALPHA (color) )
-        {
-                gdk_color = g_new0 (GdkColor, 1);
+        gdk_color = g_new0 (GdkColor, 1);
 
-                gdk_color->red   = GL_COLOR_F_RED   (color) * 65535;
-                gdk_color->green = GL_COLOR_F_GREEN (color) * 65535;
-                gdk_color->blue  = GL_COLOR_F_BLUE  (color) * 65535;
-        }
+        gdk_color->red   = GL_COLOR_F_RED   (color) * 65535;
+        gdk_color->green = GL_COLOR_F_GREEN (color) * 65535;
+        gdk_color->blue  = GL_COLOR_F_BLUE  (color) * 65535;
 
         return gdk_color;
 }
 
+
 /*****************************************************************************/
 /* Convert GdkColor into a gLabels color                                     */
 /*****************************************************************************/
 guint
 gl_color_from_gdk_color (GdkColor *gdk_color)
 {
-        guint color = GL_COLOR_NONE;
+        guint color;
 
-        if ( gdk_color )
-        {
-                color = GL_COLOR ((gdk_color->red   >>8),
-                                  (gdk_color->green >>8),
-                                  (gdk_color->blue  >>8));
-        }
+        color = GL_COLOR ((gdk_color->red   >>8),
+                          (gdk_color->green >>8),
+                          (gdk_color->blue  >>8));
 
         return color;
 }
 
+
 /****************************************************************************/
 /* Create a single color node with default color.                           */
 /****************************************************************************/
@@ -112,6 +108,7 @@ gl_color_node_new_default (void)
         return color_node;
 }
 
+
 /****************************************************************************/
 /* Copy a single color node.                                                 */
 /****************************************************************************/
@@ -138,6 +135,7 @@ gl_color_node_dup (glColorNode *src)
         return dst;
 }
 
+
 /****************************************************************************/
 /* Compare 2 color nodes for equality.                                       */
 /****************************************************************************/
@@ -187,6 +185,7 @@ gl_color_node_equal (glColorNode     *color_node1,
         return (strcmp (color_node1->key, color_node2->key) == 0);
 }
 
+
 /****************************************************************************/
 /* Expand single node into representative color.                            */
 /****************************************************************************/
@@ -234,6 +233,7 @@ gl_color_node_expand (glColorNode    *color_node,
         }
 }
 
+
 /****************************************************************************/
 /* Free a single color node.                                                */
 /****************************************************************************/
@@ -247,3 +247,14 @@ gl_color_node_free (glColorNode **color_node)
         g_free (*color_node);
         *color_node = NULL;
 }
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index c4403ad5dc24b73b1437eb530c154e7d11764849..48feed7ec491a72ecb15593a48e70175517d0e0c 100644 (file)
@@ -1,32 +1,28 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  color.h:  various small utilities for dealing with canvas colors
+ *  color.h
+ *  Copyright (C) 2002-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2002-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __COLOR_H__
 #define __COLOR_H__
 
 #include "merge.h"
-#include <gdk/gdkcolor.h>
+#include <gdk/gdk.h>
 
 G_BEGIN_DECLS
 
@@ -45,6 +41,13 @@ G_BEGIN_DECLS
 
 
 #define GL_COLOR_NONE                  GL_COLOR_A(0,0,0,0)
+#define GL_COLOR_BLACK                 GL_COLOR_A(0,0,0,255)
+#define GL_COLOR_WHITE                 GL_COLOR_A(255,255,255,255)
+
+#define GL_COLOR_TEXT_DEFAULT          GL_COLOR_BLACK
+#define GL_COLOR_BC_DEFAULT            GL_COLOR_BLACK
+#define GL_COLOR_NO_LINE               GL_COLOR_NONE
+#define GL_COLOR_NO_FILL               GL_COLOR_NONE
 #define GL_COLOR_FILL_MERGE_DEFAULT    GL_COLOR_A(255,255,255,128)
 #define GL_COLOR_MERGE_DEFAULT         GL_COLOR_A(0,0,0,128)
 #define GL_COLOR_SHADOW_DEFAULT        GL_COLOR(0,0,0)
@@ -117,3 +120,14 @@ void         gl_color_node_free           (glColorNode    **color_node);
 G_END_DECLS
 
 #endif /* __COLOR_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/combo-util.c b/src/combo-util.c
new file mode 100644 (file)
index 0000000..2ed6771
--- /dev/null
@@ -0,0 +1,125 @@
+/*
+ *  combo-util.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "combo-util.h"
+
+#include <string.h>
+
+#include <libglabels.h>
+
+
+/****************************************************************************/
+/* Convienience function to set strings in a text combo_box from a GList    */
+/****************************************************************************/
+void
+gl_combo_util_set_strings (GtkComboBoxText   *combo,
+                           GList             *list)
+{
+       GList        *p;
+
+       g_return_if_fail (list);
+
+        gtk_combo_box_text_remove_all (combo);
+
+       for (p=list; p!=NULL; p=p->next) {
+               if (p->data) {
+                       gtk_combo_box_text_append_text (combo, p->data);
+               }
+       }
+}
+
+
+/*---------------------------------------------------------------------------*/
+/* PRIVATE.  gl_combo_util_set_active_text support.                          */
+/*---------------------------------------------------------------------------*/
+
+typedef struct {
+  const gchar *text;
+  GtkTreeIter  iter;
+  gboolean     found;
+} TextSearchData;
+
+static gboolean
+search_text_func (GtkTreeModel *model,
+                 GtkTreePath  *path,
+                 GtkTreeIter  *iter,
+                 gpointer      data)
+{
+  TextSearchData *search_data = (TextSearchData *)data;
+  gchar          *text = NULL;
+
+  gtk_tree_model_get (model, iter, 0, &text, -1);
+
+  if (strcmp (text,search_data->text) == 0) {
+    search_data->found = TRUE;
+    search_data->iter  = *iter;
+  }
+
+  g_free (text);
+  
+  return FALSE;
+}
+
+
+/****************************************************************************/
+/* Convienience function to set active text in a text combo_box from text   */
+/****************************************************************************/
+void
+gl_combo_util_set_active_text (GtkComboBox       *combo,
+                               const gchar       *text)
+{
+       GtkTreeModel   *model = gtk_combo_box_get_model(combo);
+
+       g_return_if_fail (GTK_IS_LIST_STORE (model));
+
+       if (!text) {
+
+               gtk_combo_box_set_active (combo, -1);
+
+       } else {
+               TextSearchData  search_data;
+
+               search_data.text        = text;
+               search_data.found       = FALSE;
+
+               gtk_tree_model_foreach (model, search_text_func, &search_data);
+               if (search_data.found) {
+                       gtk_combo_box_set_active_iter (combo,
+                                                      &search_data.iter);
+               } else {
+                       gtk_combo_box_set_active (combo, -1);
+               }    
+
+       }
+
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/combo-util.h b/src/combo-util.h
new file mode 100644 (file)
index 0000000..5560c05
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ *  combo-util.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __COMBO_UTIL_H__
+#define __COMBO_UTIL_H__
+
+#include <glib.h>
+#include <gtk/gtk.h>
+
+G_BEGIN_DECLS
+
+void gl_combo_util_set_strings     (GtkComboBoxText   *combo,
+                                    GList             *list);
+
+void gl_combo_util_set_active_text (GtkComboBox       *combo,
+                                    const gchar       *text);
+
+G_END_DECLS
+
+#endif /* __COMBO_UTIL_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 69a8866514b969973889ff0746a4939303411f49..0d9fed1d44d3ca94140139cd4d9d4603ac119f3f 100644 (file)
@@ -1,43 +1,39 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  critical-error-handler.c:  critical error handler
+ *  critical-error-handler.h
+ *  Copyright (C) 2005-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2005  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 
 #include "critical-error-handler.h"
 
-#include <glib/gmessages.h>
+#include <glib.h>
 #include <glib/gi18n.h>
-#include <gtk/gtkmessagedialog.h>
-#include <gtk/gtkstock.h>
+#include <gtk/gtk.h>
 #include <stdlib.h>
 
+
 static void critical_error_handler (const gchar    *log_domain,
                                     GLogLevelFlags  log_level,
                                     const gchar    *message,
                                     gpointer        user_data);
 
-\f
+
 /***************************************************************************/
 /* Initialize error handler.                                               */
 /***************************************************************************/
@@ -55,6 +51,7 @@ gl_critical_error_handler_init (void)
                            "glabels");
 }
 
+
 /*-------------------------------------------------------------------------*/
 /* PRIVATE.  Actual error handler.                                         */
 /*-------------------------------------------------------------------------*/
@@ -81,3 +78,13 @@ critical_error_handler (const gchar    *log_domain,
         abort ();
 }
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 890db9b580d468340e4324cbe2b6bce878f89c2d..e356ebf2f1eb2849e153a147f79e73be29d65872 100644 (file)
@@ -1,31 +1,27 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  critical-error-handler.h:  critical error handler header file
+ *  critical-error-handler.h
+ *  Copyright (C) 2005-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2005  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __CRITICAL_ERROR_HANDLER_H__
 #define __CRITICAL_ERROR_HANDLER_H__
 
-#include <glib/gmacros.h>
+#include <glib.h>
 
 G_BEGIN_DECLS
 
@@ -34,3 +30,14 @@ void gl_critical_error_handler_init (void);
 G_END_DECLS
 
 #endif
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/cursors/Makefile.am b/src/cursors/Makefile.am
new file mode 100644 (file)
index 0000000..6a01d8e
--- /dev/null
@@ -0,0 +1,26 @@
+
+CURSOR_IMAGES =                                \
+       cursor_barcode.png              \
+       cursor_box.png                  \
+       cursor_ellipse.png              \
+       cursor_image.png                \
+       cursor_line.png                 \
+       cursor_text.png
+
+VARIABLES1 = \
+       cursor_barcode_pixdata  $(srcdir)/cursor_barcode.png    \
+       cursor_box_pixdata      $(srcdir)/cursor_box.png        \
+       cursor_ellipse_pixdata  $(srcdir)/cursor_ellipse.png    \
+       cursor_image_pixdata    $(srcdir)/cursor_image.png      \
+       cursor_line_pixdata     $(srcdir)/cursor_line.png       \
+       cursor_text_pixdata     $(srcdir)/cursor_text.png
+
+noinst_DATA = cursor_pixdata.h
+CLEANFILES = $(noinst_DATA)
+
+cursor_pixdata.h: $(CURSOR_IMAGES)
+       $(AM_V_GEN) $(GDK_PIXBUF_CSOURCE) \
+          --struct --build-list $(VARIABLES1) > $(srcdir)/cursor_pixdata.h || \
+           ( rm -f $(srcdir)/cursor_pixdata.h && false )
+
+EXTRA_DIST = $(CURSOR_IMAGES) cursor_pixdata.h
diff --git a/src/cursors/Makefile.in b/src/cursors/Makefile.in
new file mode 100644 (file)
index 0000000..2780619
--- /dev/null
@@ -0,0 +1,458 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = src/cursors
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+DATA = $(noinst_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CAIRO_REQUIRED = @CAIRO_REQUIRED@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DLLTOOL = @DLLTOOL@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLABELS_BRANCH = @GLABELS_BRANCH@
+GLABELS_CFLAGS = @GLABELS_CFLAGS@
+GLABELS_LIBS = @GLABELS_LIBS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_REQUIRED = @GLIB_REQUIRED@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GTK_REQUIRED = @GTK_REQUIRED@
+GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@
+HELP_DIR = @HELP_DIR@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@
+LIBBARCODE_LIBS = @LIBBARCODE_LIBS@
+LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@
+LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
+LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
+LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
+LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@
+LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@
+LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
+LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
+LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@
+LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@
+LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@
+LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@
+LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@
+LIBIEC16022_LIBS = @LIBIEC16022_LIBS@
+LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@
+LIBOBJS = @LIBOBJS@
+LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@
+LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@
+LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@
+LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_REQUIRED = @LIBXML_REQUIRED@
+LIBZINT_CFLAGS = @LIBZINT_CFLAGS@
+LIBZINT_LIBS = @LIBZINT_LIBS@
+LIBZINT_REQUIRED = @LIBZINT_REQUIRED@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_REQUIRED = @PANGO_REQUIRED@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+CURSOR_IMAGES = \
+       cursor_barcode.png              \
+       cursor_box.png                  \
+       cursor_ellipse.png              \
+       cursor_image.png                \
+       cursor_line.png                 \
+       cursor_text.png
+
+VARIABLES1 = \
+       cursor_barcode_pixdata  $(srcdir)/cursor_barcode.png    \
+       cursor_box_pixdata      $(srcdir)/cursor_box.png        \
+       cursor_ellipse_pixdata  $(srcdir)/cursor_ellipse.png    \
+       cursor_image_pixdata    $(srcdir)/cursor_image.png      \
+       cursor_line_pixdata     $(srcdir)/cursor_line.png       \
+       cursor_text_pixdata     $(srcdir)/cursor_text.png
+
+noinst_DATA = cursor_pixdata.h
+CLEANFILES = $(noinst_DATA)
+EXTRA_DIST = $(CURSOR_IMAGES) cursor_pixdata.h
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/cursors/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu src/cursors/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+       distclean distclean-generic distclean-libtool distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
+       install-info install-info-am install-man install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+
+
+cursor_pixdata.h: $(CURSOR_IMAGES)
+       $(AM_V_GEN) $(GDK_PIXBUF_CSOURCE) \
+          --struct --build-list $(VARIABLES1) > $(srcdir)/cursor_pixdata.h || \
+           ( rm -f $(srcdir)/cursor_pixdata.h && false )
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/cursors/cursor_barcode.png b/src/cursors/cursor_barcode.png
new file mode 100644 (file)
index 0000000..59ba928
Binary files /dev/null and b/src/cursors/cursor_barcode.png differ
diff --git a/src/cursors/cursor_box.png b/src/cursors/cursor_box.png
new file mode 100644 (file)
index 0000000..c30c0d4
Binary files /dev/null and b/src/cursors/cursor_box.png differ
diff --git a/src/cursors/cursor_ellipse.png b/src/cursors/cursor_ellipse.png
new file mode 100644 (file)
index 0000000..40924af
Binary files /dev/null and b/src/cursors/cursor_ellipse.png differ
diff --git a/src/cursors/cursor_image.png b/src/cursors/cursor_image.png
new file mode 100644 (file)
index 0000000..e5b4781
Binary files /dev/null and b/src/cursors/cursor_image.png differ
diff --git a/src/cursors/cursor_line.png b/src/cursors/cursor_line.png
new file mode 100644 (file)
index 0000000..31d8c6e
Binary files /dev/null and b/src/cursors/cursor_line.png differ
diff --git a/src/cursors/cursor_pixdata.h b/src/cursors/cursor_pixdata.h
new file mode 100644 (file)
index 0000000..2332fcd
--- /dev/null
@@ -0,0 +1,203 @@
+/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */
+
+static const GdkPixdata cursor_barcode_pixdata = {
+  0x47646b50, /* Pixbuf magic: 'GdkP' */
+  24 + 1220, /* header length + pixel_data length */
+  0x2010002, /* pixdata_type */
+  128, /* rowstride */
+  32, /* width */
+  32, /* height */
+  /* pixel_data: */
+  "\247\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0"
+  "\377\237\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0"
+  "\0\0\377\231\0\0\0\0\215\0\0\0\377\231\0\0\0\0\1\0\0\0\377\237\0\0\0"
+  "\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\237\0"
+  "\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\205\0\0\0\0\2\0\0\0\377\0"
+  "\0\0\0\202\0\0\0\377\1\0\0\0\0\202\0\0\0\377\7\0\0\0\0\0\0\0\377\0\0"
+  "\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0\202\0\0\0\377\2\0\0\0\0\0\0"
+  "\0\377\216\0\0\0\0\2\0\0\0\377\0\0\0\0\202\0\0\0\377\1\0\0\0\0\202\0"
+  "\0\0\377\7\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0"
+  "\0\0\202\0\0\0\377\2\0\0\0\0\0\0\0\377\216\0\0\0\0\2\0\0\0\377\0\0\0"
+  "\0\202\0\0\0\377\1\0\0\0\0\202\0\0\0\377\7\0\0\0\0\0\0\0\377\0\0\0\0"
+  "\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0\202\0\0\0\377\2\0\0\0\0\0\0\0\377"
+  "\216\0\0\0\0\2\0\0\0\377\0\0\0\0\202\0\0\0\377\1\0\0\0\0\202\0\0\0\377"
+  "\7\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0\202"
+  "\0\0\0\377\2\0\0\0\0\0\0\0\377\216\0\0\0\0\2\0\0\0\377\0\0\0\0\202\0"
+  "\0\0\377\1\0\0\0\0\202\0\0\0\377\7\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377"
+  "\0\0\0\0\0\0\0\377\0\0\0\0\202\0\0\0\377\2\0\0\0\0\0\0\0\377\216\0\0"
+  "\0\0\2\0\0\0\377\0\0\0\0\202\0\0\0\377\1\0\0\0\0\202\0\0\0\377\7\0\0"
+  "\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0\202\0\0\0"
+  "\377\2\0\0\0\0\0\0\0\377\216\0\0\0\0\2\0\0\0\377\0\0\0\0\202\0\0\0\377"
+  "\1\0\0\0\0\202\0\0\0\377\7\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0"
+  "\0\0\0\0\377\0\0\0\0\202\0\0\0\377\2\0\0\0\0\0\0\0\377\216\0\0\0\0\2"
+  "\0\0\0\377\0\0\0\0\202\0\0\0\377\1\0\0\0\0\202\0\0\0\377\7\0\0\0\0\0"
+  "\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0\202\0\0\0\377\2"
+  "\0\0\0\0\0\0\0\377\216\0\0\0\0\2\0\0\0\377\0\0\0\0\202\0\0\0\377\1\0"
+  "\0\0\0\202\0\0\0\377\7\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0\0"
+  "\0\0\377\0\0\0\0\202\0\0\0\377\2\0\0\0\0\0\0\0\377\216\0\0\0\0\2\0\0"
+  "\0\377\0\0\0\0\202\0\0\0\377\1\0\0\0\0\202\0\0\0\377\7\0\0\0\0\0\0\0"
+  "\377\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0\202\0\0\0\377\2\0\0"
+  "\0\0\0\0\0\377\216\0\0\0\0\2\0\0\0\377\0\0\0\0\202\0\0\0\377\1\0\0\0"
+  "\0\202\0\0\0\377\7\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0"
+  "\377\0\0\0\0\202\0\0\0\377\2\0\0\0\0\0\0\0\377\216\0\0\0\0\2\0\0\0\377"
+  "\0\0\0\0\202\0\0\0\377\1\0\0\0\0\202\0\0\0\377\7\0\0\0\0\0\0\0\377\0"
+  "\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0\202\0\0\0\377\2\0\0\0\0\0"
+  "\0\0\377\216\0\0\0\0\2\0\0\0\377\0\0\0\0\202\0\0\0\377\1\0\0\0\0\202"
+  "\0\0\0\377\7\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0"
+  "\0\0\0\202\0\0\0\377\2\0\0\0\0\0\0\0\377\216\0\0\0\0\2\0\0\0\377\0\0"
+  "\0\0\202\0\0\0\377\1\0\0\0\0\202\0\0\0\377\7\0\0\0\0\0\0\0\377\0\0\0"
+  "\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0\202\0\0\0\377\2\0\0\0\0\0\0\0"
+  "\377\216\0\0\0\0\2\0\0\0\377\0\0\0\0\202\0\0\0\377\1\0\0\0\0\202\0\0"
+  "\0\377\7\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0"
+  "\0\202\0\0\0\377\2\0\0\0\0\0\0\0\377\377\0\0\0\0\202\0\0\0\0",
+};
+
+
+/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */
+
+static const GdkPixdata cursor_box_pixdata = {
+  0x47646b50, /* Pixbuf magic: 'GdkP' */
+  24 + 415, /* header length + pixel_data length */
+  0x2010002, /* pixdata_type */
+  128, /* rowstride */
+  32, /* width */
+  32, /* height */
+  /* pixel_data: */
+  "\247\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0"
+  "\377\237\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0"
+  "\0\0\377\231\0\0\0\0\215\0\0\0\377\231\0\0\0\0\1\0\0\0\377\237\0\0\0"
+  "\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\237\0"
+  "\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\307\0\0\0\0\220\0\0\0\377"
+  "\220\0\0\0\0\220\0\0\0\377\220\0\0\0\0\202\0\0\0\377\214\0\0\0\0\202"
+  "\0\0\0\377\220\0\0\0\0\202\0\0\0\377\214\0\0\0\0\202\0\0\0\377\220\0"
+  "\0\0\0\202\0\0\0\377\214\0\0\0\0\202\0\0\0\377\220\0\0\0\0\202\0\0\0"
+  "\377\214\0\0\0\0\202\0\0\0\377\220\0\0\0\0\202\0\0\0\377\214\0\0\0\0"
+  "\202\0\0\0\377\220\0\0\0\0\202\0\0\0\377\214\0\0\0\0\202\0\0\0\377\220"
+  "\0\0\0\0\202\0\0\0\377\214\0\0\0\0\202\0\0\0\377\220\0\0\0\0\202\0\0"
+  "\0\377\214\0\0\0\0\202\0\0\0\377\220\0\0\0\0\202\0\0\0\377\214\0\0\0"
+  "\0\202\0\0\0\377\220\0\0\0\0\202\0\0\0\377\214\0\0\0\0\202\0\0\0\377"
+  "\220\0\0\0\0\202\0\0\0\377\214\0\0\0\0\202\0\0\0\377\220\0\0\0\0\202"
+  "\0\0\0\377\214\0\0\0\0\202\0\0\0\377\220\0\0\0\0\220\0\0\0\377\220\0"
+  "\0\0\0\220\0\0\0\377\241\0\0\0\0",
+};
+
+
+/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */
+
+static const GdkPixdata cursor_ellipse_pixdata = {
+  0x47646b50, /* Pixbuf magic: 'GdkP' */
+  24 + 455, /* header length + pixel_data length */
+  0x2010002, /* pixdata_type */
+  128, /* rowstride */
+  32, /* width */
+  32, /* height */
+  /* pixel_data: */
+  "\247\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0"
+  "\377\237\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0"
+  "\0\0\377\231\0\0\0\0\215\0\0\0\377\231\0\0\0\0\1\0\0\0\377\237\0\0\0"
+  "\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\237\0"
+  "\0\0\0\1\0\0\0\377\212\0\0\0\0\205\0\0\0\377\220\0\0\0\0\1\0\0\0\377"
+  "\210\0\0\0\0\204\0\0\0\377\1\0\0\0\0\204\0\0\0\377\226\0\0\0\0\202\0"
+  "\0\0\377\207\0\0\0\0\202\0\0\0\377\224\0\0\0\0\202\0\0\0\377\211\0\0"
+  "\0\0\202\0\0\0\377\222\0\0\0\0\202\0\0\0\377\213\0\0\0\0\202\0\0\0\377"
+  "\221\0\0\0\0\1\0\0\0\377\215\0\0\0\0\1\0\0\0\377\220\0\0\0\0\202\0\0"
+  "\0\377\215\0\0\0\0\202\0\0\0\377\217\0\0\0\0\202\0\0\0\377\215\0\0\0"
+  "\0\202\0\0\0\377\217\0\0\0\0\1\0\0\0\377\217\0\0\0\0\1\0\0\0\377\217"
+  "\0\0\0\0\202\0\0\0\377\215\0\0\0\0\202\0\0\0\377\217\0\0\0\0\202\0\0"
+  "\0\377\215\0\0\0\0\202\0\0\0\377\220\0\0\0\0\1\0\0\0\377\215\0\0\0\0"
+  "\1\0\0\0\377\221\0\0\0\0\202\0\0\0\377\213\0\0\0\0\202\0\0\0\377\222"
+  "\0\0\0\0\202\0\0\0\377\211\0\0\0\0\202\0\0\0\377\224\0\0\0\0\202\0\0"
+  "\0\377\207\0\0\0\0\202\0\0\0\377\226\0\0\0\0\204\0\0\0\377\1\0\0\0\0"
+  "\204\0\0\0\377\231\0\0\0\0\205\0\0\0\377\351\0\0\0\0",
+};
+
+
+/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */
+
+static const GdkPixdata cursor_image_pixdata = {
+  0x47646b50, /* Pixbuf magic: 'GdkP' */
+  24 + 711, /* header length + pixel_data length */
+  0x2010002, /* pixdata_type */
+  128, /* rowstride */
+  32, /* width */
+  32, /* height */
+  /* pixel_data: */
+  "\247\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0"
+  "\377\237\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0"
+  "\0\0\377\231\0\0\0\0\215\0\0\0\377\231\0\0\0\0\1\0\0\0\377\237\0\0\0"
+  "\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\237\0"
+  "\0\0\0\1\0\0\0\377\204\0\0\0\0\223\0\0\0\377\210\0\0\0\0\1\0\0\0\377"
+  "\204\0\0\0\0\1\0\0\0\377\221\0\0\0\0\1\0\0\0\377\215\0\0\0\0\1\0\0\0"
+  "\377\221\0\0\0\0\1\0\0\0\377\215\0\0\0\0\1\0\0\0\377\215\0\0\0\0\202"
+  "\0\0\0\377\202\0\0\0\0\1\0\0\0\377\215\0\0\0\0\1\0\0\0\377\214\0\0\0"
+  "\0\1\0\0\0\377\202\0\0\0\0\3\0\0\0\377\0\0\0\0\0\0\0\377\215\0\0\0\0"
+  "\1\0\0\0\377\206\0\0\0\0\1\0\0\0\377\206\0\0\0\0\202\0\0\0\377\202\0"
+  "\0\0\0\1\0\0\0\377\215\0\0\0\0\1\0\0\0\377\205\0\0\0\0\3\0\0\0\377\0"
+  "\0\0\0\0\0\0\377\211\0\0\0\0\1\0\0\0\377\215\0\0\0\0\1\0\0\0\377\204"
+  "\0\0\0\0\1\0\0\0\377\203\0\0\0\0\1\0\0\0\377\210\0\0\0\0\1\0\0\0\377"
+  "\215\0\0\0\0\1\0\0\0\377\203\0\0\0\0\1\0\0\0\377\205\0\0\0\0\1\0\0\0"
+  "\377\207\0\0\0\0\1\0\0\0\377\215\0\0\0\0\1\0\0\0\377\202\0\0\0\0\202"
+  "\0\0\0\377\205\0\0\0\0\202\0\0\0\377\206\0\0\0\0\1\0\0\0\377\215\0\0"
+  "\0\0\1\0\0\0\377\203\0\0\0\0\1\0\0\0\377\205\0\0\0\0\1\0\0\0\377\207"
+  "\0\0\0\0\1\0\0\0\377\215\0\0\0\0\205\0\0\0\377\205\0\0\0\0\211\0\0\0"
+  "\377\215\0\0\0\0\1\0\0\0\377\203\0\0\0\0\1\0\0\0\377\205\0\0\0\0\1\0"
+  "\0\0\377\207\0\0\0\0\1\0\0\0\377\215\0\0\0\0\1\0\0\0\377\203\0\0\0\0"
+  "\1\0\0\0\377\205\0\0\0\0\1\0\0\0\377\207\0\0\0\0\1\0\0\0\377\215\0\0"
+  "\0\0\1\0\0\0\377\203\0\0\0\0\1\0\0\0\377\205\0\0\0\0\1\0\0\0\377\207"
+  "\0\0\0\0\1\0\0\0\377\215\0\0\0\0\1\0\0\0\377\203\0\0\0\0\207\0\0\0\377"
+  "\207\0\0\0\0\1\0\0\0\377\215\0\0\0\0\1\0\0\0\377\221\0\0\0\0\1\0\0\0"
+  "\377\215\0\0\0\0\1\0\0\0\377\221\0\0\0\0\1\0\0\0\377\215\0\0\0\0\223"
+  "\0\0\0\377\241\0\0\0\0",
+};
+
+
+/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */
+
+static const GdkPixdata cursor_line_pixdata = {
+  0x47646b50, /* Pixbuf magic: 'GdkP' */
+  24 + 310, /* header length + pixel_data length */
+  0x2010002, /* pixdata_type */
+  128, /* rowstride */
+  32, /* width */
+  32, /* height */
+  /* pixel_data: */
+  "\247\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0"
+  "\377\237\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0"
+  "\0\0\377\231\0\0\0\0\215\0\0\0\377\231\0\0\0\0\1\0\0\0\377\237\0\0\0"
+  "\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\223\0"
+  "\0\0\0\1\0\0\0\377\213\0\0\0\0\1\0\0\0\377\222\0\0\0\0\202\0\0\0\377"
+  "\213\0\0\0\0\1\0\0\0\377\221\0\0\0\0\202\0\0\0\377\235\0\0\0\0\202\0"
+  "\0\0\377\235\0\0\0\0\202\0\0\0\377\235\0\0\0\0\202\0\0\0\377\235\0\0"
+  "\0\0\202\0\0\0\377\235\0\0\0\0\202\0\0\0\377\235\0\0\0\0\202\0\0\0\377"
+  "\235\0\0\0\0\202\0\0\0\377\235\0\0\0\0\202\0\0\0\377\235\0\0\0\0\202"
+  "\0\0\0\377\235\0\0\0\0\202\0\0\0\377\235\0\0\0\0\202\0\0\0\377\235\0"
+  "\0\0\0\202\0\0\0\377\235\0\0\0\0\202\0\0\0\377\235\0\0\0\0\202\0\0\0"
+  "\377\377\0\0\0\0\224\0\0\0\0",
+};
+
+
+/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */
+
+static const GdkPixdata cursor_text_pixdata = {
+  0x47646b50, /* Pixbuf magic: 'GdkP' */
+  24 + 310, /* header length + pixel_data length */
+  0x2010002, /* pixdata_type */
+  128, /* rowstride */
+  32, /* width */
+  32, /* height */
+  /* pixel_data: */
+  "\247\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0"
+  "\377\237\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0"
+  "\0\0\377\231\0\0\0\0\215\0\0\0\377\231\0\0\0\0\1\0\0\0\377\237\0\0\0"
+  "\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\237\0"
+  "\0\0\0\1\0\0\0\377\237\0\0\0\0\1\0\0\0\377\246\0\0\0\0\213\0\0\0\377"
+  "\225\0\0\0\0\202\0\0\0\377\202\0\0\0\0\203\0\0\0\377\202\0\0\0\0\202"
+  "\0\0\0\377\225\0\0\0\0\1\0\0\0\377\203\0\0\0\0\203\0\0\0\377\203\0\0"
+  "\0\0\1\0\0\0\377\231\0\0\0\0\203\0\0\0\377\235\0\0\0\0\203\0\0\0\377"
+  "\235\0\0\0\0\203\0\0\0\377\235\0\0\0\0\203\0\0\0\377\235\0\0\0\0\203"
+  "\0\0\0\377\235\0\0\0\0\203\0\0\0\377\235\0\0\0\0\203\0\0\0\377\235\0"
+  "\0\0\0\203\0\0\0\377\235\0\0\0\0\203\0\0\0\377\234\0\0\0\0\205\0\0\0"
+  "\377\377\0\0\0\0\253\0\0\0\0",
+};
+
+
diff --git a/src/cursors/cursor_text.png b/src/cursors/cursor_text.png
new file mode 100644 (file)
index 0000000..cda6b21
Binary files /dev/null and b/src/cursors/cursor_text.png differ
index eea3fe5dc36535a24e95646470423fb0ab06a835..d29d6246ea851a8e60f0201bd048c55905827e91 100644 (file)
@@ -1,25 +1,21 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  debug.c:  GLabels debug module
+ *  debug.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 /*
 
 #include "debug.h"
 
-#include <glib/gutils.h>
-#include <glib/gmessages.h>
-#include <glib/gstrfuncs.h>
-#include <glib/gmem.h>
+#include <glib.h>
+
 
 glDebugSection debug_flags = GLABELS_DEBUG_NONE;
 
+
 /****************************************************************************/
 /* Initialize debug flags, based on environmental variables.                */
 /****************************************************************************/
@@ -90,12 +85,18 @@ gl_debug_init (void)
                debug_flags |= GLABELS_DEBUG_MINI_PREVIEW;
        if (g_getenv ("GLABELS_DEBUG_PIXBUF_CACHE") != NULL)
                debug_flags |= GLABELS_DEBUG_PIXBUF_CACHE;
+       if (g_getenv ("GLABELS_DEBUG_SVG_CACHE") != NULL)
+               debug_flags |= GLABELS_DEBUG_SVG_CACHE;
        if (g_getenv ("GLABELS_DEBUG_EDITOR") != NULL)
                debug_flags |= GLABELS_DEBUG_EDITOR;
        if (g_getenv ("GLABELS_DEBUG_WDGT") != NULL)
                debug_flags |= GLABELS_DEBUG_WDGT;
        if (g_getenv ("GLABELS_DEBUG_PATH") != NULL)
                debug_flags |= GLABELS_DEBUG_PATH;
+       if (g_getenv ("GLABELS_DEBUG_FIELD_BUTTON") != NULL)
+               debug_flags |= GLABELS_DEBUG_FIELD_BUTTON;
+       if (g_getenv ("GLABELS_DEBUG_BARCODE") != NULL)
+               debug_flags |= GLABELS_DEBUG_BARCODE;
 }
 
 
@@ -127,3 +128,14 @@ gl_debug (glDebugSection  section,
        }
        
 }
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 5840487d99ef938c18c0f52c7c1811f87990c8f4..a1aad56dcee7280be868149bdada429e4c799abe 100644 (file)
@@ -1,25 +1,21 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  debug.h:  GLabels debug module
+ *  debug.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 /*
@@ -32,7 +28,7 @@
 #ifndef __DEBUG_H__
 #define __DEBUG_H__
 
-#include <glib/gtypes.h>
+#include <glib.h>
 
 G_BEGIN_DECLS
 
@@ -63,9 +59,12 @@ typedef enum {
        GLABELS_DEBUG_MEDIA_SELECT = 1 << 16,
        GLABELS_DEBUG_MINI_PREVIEW = 1 << 17,
        GLABELS_DEBUG_PIXBUF_CACHE = 1 << 18,
-       GLABELS_DEBUG_EDITOR       = 1 << 19,
-       GLABELS_DEBUG_WDGT         = 1 << 20,
-        GLABELS_DEBUG_PATH         = 1 << 21,
+       GLABELS_DEBUG_SVG_CACHE    = 1 << 19,
+       GLABELS_DEBUG_EDITOR       = 1 << 20,
+       GLABELS_DEBUG_WDGT         = 1 << 21,
+        GLABELS_DEBUG_PATH         = 1 << 22,
+       GLABELS_DEBUG_FIELD_BUTTON = 1 << 23,
+        GLABELS_DEBUG_BARCODE      = 1 << 24
 } glDebugSection;
 
 
@@ -92,9 +91,12 @@ typedef enum {
 #define        DEBUG_MEDIA_SELECT      GLABELS_DEBUG_MEDIA_SELECT,     __FILE__, __LINE__, __FUNCTION__
 #define        DEBUG_MINI_PREVIEW      GLABELS_DEBUG_MINI_PREVIEW,     __FILE__, __LINE__, __FUNCTION__
 #define        DEBUG_PIXBUF_CACHE      GLABELS_DEBUG_PIXBUF_CACHE,     __FILE__, __LINE__, __FUNCTION__
+#define        DEBUG_SVG_CACHE GLABELS_DEBUG_SVG_CACHE,     __FILE__, __LINE__, __FUNCTION__
 #define        DEBUG_EDITOR    GLABELS_DEBUG_EDITOR, __FILE__, __LINE__, __FUNCTION__
 #define        DEBUG_WDGT      GLABELS_DEBUG_WDGT,   __FILE__, __LINE__, __FUNCTION__
 #define        DEBUG_PATH      GLABELS_DEBUG_PATH,   __FILE__, __LINE__, __FUNCTION__
+#define        DEBUG_FIELD_BUTTON      GLABELS_DEBUG_FIELD_BUTTON,   __FILE__, __LINE__, __FUNCTION__
+#define        DEBUG_BARCODE   GLABELS_DEBUG_BARCODE,__FILE__, __LINE__, __FUNCTION__
 
 void gl_debug_init (void);
 
@@ -108,3 +110,14 @@ void gl_debug      (glDebugSection  section,
 G_END_DECLS
 
 #endif /* __DEBUG_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/field-button-menu.c b/src/field-button-menu.c
new file mode 100644 (file)
index 0000000..9177abb
--- /dev/null
@@ -0,0 +1,234 @@
+/*
+ *  field-button-menu.c
+ *  Copyright (C) 2008-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "field-button-menu.h"
+
+#include <string.h>
+#include <gtk/gtk.h>
+
+#include "marshal.h"
+
+#include "debug.h"
+
+#define MAX_MENU_ROWS 25
+
+/*===========================================*/
+/* Private types                             */
+/*===========================================*/
+
+
+struct _glFieldButtonMenuPrivate {
+
+        GList *menu_items;
+};
+
+enum {
+        KEY_SELECTED,
+        LAST_SIGNAL
+};
+
+typedef void (*glFieldButtonMenuSignal) (GObject * object, gpointer data);
+
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+static gint signals[LAST_SIGNAL] = { 0 };
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+static void gl_field_button_menu_finalize      (GObject              *object);
+
+
+/****************************************************************************/
+/* Boilerplate Object stuff.                                                */
+/****************************************************************************/
+G_DEFINE_TYPE (glFieldButtonMenu, gl_field_button_menu, GTK_TYPE_MENU)
+
+
+static void
+gl_field_button_menu_class_init (glFieldButtonMenuClass *class)
+{
+        GObjectClass *object_class = G_OBJECT_CLASS (class);
+
+        gl_debug (DEBUG_FIELD_BUTTON, "START");
+
+        gl_field_button_menu_parent_class = g_type_class_peek_parent (class);
+
+        object_class->finalize = gl_field_button_menu_finalize;
+
+        signals[KEY_SELECTED] =
+            g_signal_new ("key_selected",
+                          G_OBJECT_CLASS_TYPE(object_class),
+                          G_SIGNAL_RUN_LAST,
+                          G_STRUCT_OFFSET (glFieldButtonMenuClass, key_selected),
+                          NULL, NULL,
+                          gl_marshal_VOID__STRING,
+                          G_TYPE_NONE, 1, G_TYPE_STRING);
+
+        gl_debug (DEBUG_FIELD_BUTTON, "END");
+}
+
+
+static void
+gl_field_button_menu_init (glFieldButtonMenu *this)
+{
+        gl_debug (DEBUG_FIELD_BUTTON, "START");
+
+        this->priv = g_new0 (glFieldButtonMenuPrivate, 1);
+
+        gl_debug (DEBUG_FIELD_BUTTON, "END");
+}
+
+
+static void
+gl_field_button_menu_finalize (GObject *object)
+{
+        glFieldButtonMenu *this = GL_FIELD_BUTTON_MENU (object);
+        GList           *p;
+        GtkWidget       *menu_item;
+        gchar           *key;
+
+        gl_debug (DEBUG_FIELD_BUTTON, "START");
+
+        g_return_if_fail (object != NULL);
+        g_return_if_fail (GL_IS_FIELD_BUTTON_MENU (object));
+
+        for ( p = this->priv->menu_items; p != NULL; p = p->next )
+        {
+                menu_item = GTK_WIDGET (p->data);
+                key = g_object_get_data (G_OBJECT (menu_item), "key");
+                g_free (key);
+        }
+        g_list_free (this->priv->menu_items);
+        g_free (this->priv);
+
+        G_OBJECT_CLASS (gl_field_button_menu_parent_class)->finalize (object);
+
+        gl_debug (DEBUG_FIELD_BUTTON, "END");
+}
+
+
+GtkWidget *
+gl_field_button_menu_new (void)
+{
+        glFieldButtonMenu *this;
+
+        gl_debug (DEBUG_FIELD_BUTTON, "START");
+
+        this = g_object_new (gl_field_button_menu_get_type (), NULL);
+
+        gl_debug (DEBUG_FIELD_BUTTON, "END");
+
+        return GTK_WIDGET (this);
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Menu item activation callback.                                 */
+/*--------------------------------------------------------------------------*/
+static void
+activate_cb (GtkMenuItem       *menu_item,
+             glFieldButtonMenu *this)
+{
+        gchar *key;
+
+        gl_debug (DEBUG_FIELD_BUTTON, "START");
+
+        key = g_object_get_data (G_OBJECT (menu_item), "key");
+        gl_debug (DEBUG_FIELD_BUTTON, "Key activated: \"%s\"\n", key );
+
+        g_signal_emit (G_OBJECT (this), signals[KEY_SELECTED], 0, key);
+
+        gl_debug (DEBUG_FIELD_BUTTON, "END");
+}
+
+
+/****************************************************************************/
+/* set key names.                                                           */
+/****************************************************************************/
+void
+gl_field_button_menu_set_keys (glFieldButtonMenu *this,
+                               GList             *key_list)
+{
+        GList     *p;
+        GtkWidget *menu_item;
+        gchar     *key;
+        gint       i, i_row, i_col;
+
+        gl_debug (DEBUG_FIELD_BUTTON, "START");
+
+        /*
+         * Remove all old menu items.
+         */
+        for ( p = this->priv->menu_items; p != NULL; p = p->next )
+        {
+                menu_item = GTK_WIDGET (p->data);
+                key = g_object_get_data (G_OBJECT (menu_item), "key");
+                g_free (key);
+                gtk_container_remove (GTK_CONTAINER (this), menu_item);
+        }
+        g_list_free (this->priv->menu_items);
+        this->priv->menu_items = NULL;
+        gtk_widget_unrealize (GTK_WIDGET (this)); /* Start over with new Gdk resources. */
+
+        /*
+         * Add new menu items.
+         */
+        for ( p = key_list, i = 0; p != NULL; p = p->next, i++ )
+        {
+                if ( p->data && strlen (p->data) )
+                {
+
+                        gl_debug (DEBUG_FIELD_BUTTON, "Adding key: %s", p->data);
+
+                        menu_item = gtk_menu_item_new_with_label (p->data);
+                        gtk_widget_show (menu_item);
+                        g_object_set_data (G_OBJECT (menu_item), "key", g_strdup (p->data));
+                        g_signal_connect (G_OBJECT (menu_item), "activate", 
+                                          G_CALLBACK (activate_cb), this);
+                        this->priv->menu_items =
+                                g_list_append (this->priv->menu_items, menu_item);
+
+                        i_row = i % MAX_MENU_ROWS;
+                        i_col = i / MAX_MENU_ROWS;
+                        gtk_menu_attach (GTK_MENU (this), menu_item, i_col, i_col+1, i_row, i_row+1);
+                }
+        }
+
+        gl_debug (DEBUG_FIELD_BUTTON, "END");
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/field-button-menu.h b/src/field-button-menu.h
new file mode 100644 (file)
index 0000000..83e6bd6
--- /dev/null
@@ -0,0 +1,82 @@
+/*
+ *  field-button-menu.h
+ *  Copyright (C) 2008-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __FIELD_BUTTON_MENU_H__
+#define __FIELD_BUTTON_MENU_H__
+
+#include <gtk/gtk.h>
+
+G_BEGIN_DECLS
+
+#define GL_TYPE_FIELD_BUTTON_MENU (gl_field_button_menu_get_type ())
+#define GL_FIELD_BUTTON_MENU(obj) \
+        (G_TYPE_CHECK_INSTANCE_CAST((obj), GL_TYPE_FIELD_BUTTON_MENU, glFieldButtonMenu ))
+#define GL_FIELD_BUTTON_MENU_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_FIELD_BUTTON_MENU, glFieldButtonMenuClass))
+#define GL_IS_FIELD_BUTTON_MENU(obj) \
+        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_FIELD_BUTTON_MENU))
+#define GL_IS_FIELD_BUTTON_MENU_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_FIELD_BUTTON_MENU))
+
+
+typedef struct _glFieldButtonMenu         glFieldButtonMenu;
+typedef struct _glFieldButtonMenuClass    glFieldButtonMenuClass;
+
+typedef struct _glFieldButtonMenuPrivate  glFieldButtonMenuPrivate;
+
+
+struct _glFieldButtonMenu {
+        GtkMenu                    parent_widget;
+
+        glFieldButtonMenuPrivate  *priv;
+};
+
+
+struct _glFieldButtonMenuClass {
+        GtkMenuClass               parent_class;
+
+        void (*key_selected) (glFieldButtonMenu *merge_menu,
+                              gchar             *key,
+                              gpointer           user_data);
+};
+
+
+GType      gl_field_button_menu_get_type    (void) G_GNUC_CONST;
+
+GtkWidget *gl_field_button_menu_new         (void);
+
+void       gl_field_button_menu_set_keys    (glFieldButtonMenu *this,
+                                             GList             *key_list);
+
+
+G_END_DECLS
+
+#endif
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/field-button.c b/src/field-button.c
new file mode 100644 (file)
index 0000000..8b8c4e5
--- /dev/null
@@ -0,0 +1,391 @@
+/*
+ *  field-button.c
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "field-button.h"
+
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+
+#include "field-button-menu.h"
+#include "marshal.h"
+
+
+
+/*========================================================*/
+/* Private types.                                         */
+/*========================================================*/
+
+/** GL_FIELD_BUTTON Private fields */
+struct _glFieldButtonPrivate {
+
+        gboolean    label_is_key;
+        gchar      *key;
+
+        GtkWidget  *label;
+
+        GtkWidget  *menu;
+};
+
+enum {
+        KEY_SELECTED,
+        CHANGED,
+        LAST_SIGNAL
+};
+
+
+/*========================================================*/
+/* Private globals.                                       */
+/*========================================================*/
+
+static guint signals[LAST_SIGNAL] = {0};
+
+
+/*========================================================*/
+/* Private function prototypes.                           */
+/*========================================================*/
+
+static void gl_field_button_finalize      (GObject             *object);
+
+static gboolean
+button_press_event_cb (GtkWidget          *widget,
+                       GdkEventButton     *event,
+                       glFieldButton      *this);
+
+static void
+menu_key_selected_cb  (glFieldButtonMenu  *menu,
+                       gchar              *key,
+                       glFieldButton      *this);
+
+static void
+menu_selection_done_cb (GtkMenuShell      *object,
+                        glFieldButton     *this);
+
+
+/*****************************************************************************/
+/* Object infrastructure.                                                    */
+/*****************************************************************************/
+G_DEFINE_TYPE (glFieldButton, gl_field_button, GTK_TYPE_TOGGLE_BUTTON)
+
+
+/*****************************************************************************/
+/* Class Init Function.                                                      */
+/*****************************************************************************/
+static void
+gl_field_button_class_init (glFieldButtonClass *class)
+{
+        GObjectClass      *gobject_class = (GObjectClass *) class;
+
+        gl_field_button_parent_class = g_type_class_peek_parent (class);
+
+        gobject_class->finalize = gl_field_button_finalize;
+
+        signals[KEY_SELECTED] =
+                g_signal_new ("key_selected",
+                              G_OBJECT_CLASS_TYPE (gobject_class),
+                              G_SIGNAL_RUN_LAST,
+                              G_STRUCT_OFFSET (glFieldButtonClass, key_selected),
+                              NULL, NULL,
+                              gl_marshal_VOID__STRING,
+                              G_TYPE_NONE, 1, G_TYPE_STRING);
+
+        signals[CHANGED] =
+                g_signal_new ("changed",
+                              G_OBJECT_CLASS_TYPE (gobject_class),
+                              G_SIGNAL_RUN_LAST,
+                              G_STRUCT_OFFSET (glFieldButtonClass, changed),
+                              NULL, NULL,
+                              gl_marshal_VOID__VOID,
+                              G_TYPE_NONE, 0);
+}
+
+
+/*****************************************************************************/
+/* Object Instance Init Function.                                            */
+/*****************************************************************************/
+static void
+gl_field_button_init (glFieldButton *this)
+{
+        GtkWidget *hbox;
+        GtkWidget *arrow;
+
+        this->priv = g_new0 (glFieldButtonPrivate, 1);
+
+        hbox = gtk_hbox_new (FALSE, 3);
+        gtk_container_add (GTK_CONTAINER (this), hbox);
+        
+        this->priv->label = gtk_label_new ("");
+        gtk_misc_set_alignment (GTK_MISC (this->priv->label), 0.0, 0.5);
+        gtk_box_pack_start (GTK_BOX (hbox), this->priv->label, TRUE, TRUE, 0);
+
+        arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_IN);
+        gtk_box_pack_end (GTK_BOX (hbox), arrow, FALSE, FALSE, 0);
+
+        g_signal_connect (this, "button_press_event",
+                          G_CALLBACK(button_press_event_cb), this);
+}
+
+
+/*****************************************************************************/
+/* Finalize Method.                                                          */
+/*****************************************************************************/
+static void
+gl_field_button_finalize (GObject *object)
+{
+        glFieldButton    *this;
+
+        g_return_if_fail (object && IS_GL_FIELD_BUTTON (object));
+        this = GL_FIELD_BUTTON (object);
+
+        g_object_ref_sink (this->priv->menu);
+        g_free (this->priv);
+
+        G_OBJECT_CLASS (gl_field_button_parent_class)->finalize (object);
+}
+
+
+/*****************************************************************************/
+/** New Object Generator.                                                    */
+/*****************************************************************************/
+GtkWidget *
+gl_field_button_new (const gchar  *name)
+{
+        glFieldButton  *this;
+
+        this = g_object_new (TYPE_GL_FIELD_BUTTON, NULL);
+
+        if ( name )
+        {
+                gtk_label_set_text (GTK_LABEL (this->priv->label), name);
+        }
+        else
+        {
+                this->priv->label_is_key = TRUE;
+        }
+
+        this->priv->menu = gl_field_button_menu_new ();
+
+        gtk_widget_show_all (this->priv->menu);
+
+        g_signal_connect (this->priv->menu, "key_selected",
+                          G_CALLBACK (menu_key_selected_cb), this);
+        g_signal_connect (this->priv->menu, "selection_done",
+                          G_CALLBACK (menu_selection_done_cb), this);
+
+        return GTK_WIDGET (this);
+}
+
+
+/*****************************************************************************/
+/* Set key list.                                                             */
+/*****************************************************************************/
+void
+gl_field_button_set_keys (glFieldButton  *this,
+                          GList          *key_list)
+{
+        gl_field_button_menu_set_keys (GL_FIELD_BUTTON_MENU (this->priv->menu),
+                                       key_list);
+        this->priv->key = g_strdup (key_list->data);
+        if ( this->priv->label_is_key )
+        {
+                gtk_label_set_text (GTK_LABEL (this->priv->label), key_list->data);
+        }
+
+        gtk_widget_show_all (this->priv->menu);
+}
+
+
+/*****************************************************************************/
+/* Set current key.                                                          */
+/*****************************************************************************/
+void
+gl_field_button_set_key (glFieldButton   *this,
+                         const gchar     *key)
+{
+        g_free (this->priv->key);
+        this->priv->key = g_strdup (key);
+
+        if ( this->priv->label_is_key )
+        {
+                gtk_label_set_text (GTK_LABEL (this->priv->label), key);
+        }
+}
+
+
+/*****************************************************************************/
+/* Get current key.                                                        */
+/*****************************************************************************/
+gchar *
+gl_field_button_get_key (glFieldButton   *this)
+{
+        return g_strdup (this->priv->key);
+}
+
+
+/*****************************************************************************/
+/* Menu positioning function.                                                */
+/*****************************************************************************/
+static void
+menu_position_function (GtkMenu       *menu,
+                        gint          *x,
+                        gint          *y,
+                        gboolean      *push_in,
+                        glFieldButton *this)
+{
+        GdkScreen          *screen;
+        gint                w_screen, h_screen;
+        GdkWindow          *window;
+        gint                x_window, y_window;
+        GtkAllocation       allocation;
+        gint                x_this, y_this, h_this;
+        GtkRequisition      menu_requisition;
+        gint                h_menu, w_menu;
+
+        /*
+         * Screen size
+         */
+        screen = gtk_widget_get_screen (GTK_WIDGET (this));
+        w_screen = gdk_screen_get_width (screen);
+        h_screen = gdk_screen_get_height (screen);
+
+        /*
+         * Absolute position of "this" window on screen.
+         */
+        window = gtk_widget_get_window (GTK_WIDGET (this));
+        gdk_window_get_origin (window, &x_window, &y_window);
+
+        /*
+         *  Position and size of "this" inside window
+         */
+        gtk_widget_get_allocation (GTK_WIDGET (this), &allocation);
+        x_this = allocation.x;
+        y_this = allocation.y;
+        h_this = allocation.height;
+
+        /*
+         * Size of menu.
+         */
+        gtk_widget_size_request (this->priv->menu, &menu_requisition);
+        h_menu = menu_requisition.height;
+        w_menu = menu_requisition.width;
+
+        /*
+         * Default position anchored to lower left corner of "this".
+         */
+        *x = x_window + x_this;
+        *y = y_window + y_this + h_this;
+                
+        /*
+         * Adjust vertical position if menu if extends past bottom of screen.
+         */
+        if ( (*y + h_menu) > h_screen )
+        {
+                *y = y_window + y_this - h_menu;
+
+                if ( *y < 0 )
+                {
+                        *y = h_screen - h_menu;
+                }
+        }
+
+        /*
+         * Adjust horizontal position if menu if extends past edge of screen.
+         */
+        if ( (*x + w_menu) > w_screen )
+        {
+                *x = w_screen - w_menu;
+        }
+
+
+        *push_in = TRUE;
+}
+
+
+/*****************************************************************************/
+/* Button "button_press_event" callback.                                     */
+/*****************************************************************************/
+static gboolean
+button_press_event_cb (GtkWidget      *widget,
+                       GdkEventButton *event,
+                       glFieldButton  *this)
+{
+        switch (event->button)
+        {
+
+        case 1:
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (this), TRUE);
+
+                gtk_menu_popup (GTK_MENU (this->priv->menu),
+                                NULL, NULL,
+                                (GtkMenuPositionFunc)menu_position_function, this,
+                                event->button, event->time);
+                break;
+
+        default:
+                break;
+
+        }
+
+        return FALSE;
+}
+
+
+/*****************************************************************************/
+/* Menu "key selected" callback.                                             */
+/*****************************************************************************/
+static void
+menu_key_selected_cb (glFieldButtonMenu     *menu,
+                      gchar                 *key,
+                      glFieldButton         *this)
+{
+        if (this->priv->label_is_key)
+        {
+                gtk_label_set_text (GTK_LABEL (this->priv->label), key);
+        }
+
+        g_free (this->priv->key);
+        this->priv->key = g_strdup (key);
+
+        g_signal_emit (this, signals[KEY_SELECTED], 0, key);
+        g_signal_emit (this, signals[CHANGED], 0);
+}
+
+
+/*****************************************************************************/
+/* Menu "selection done" callback.                                           */
+/*****************************************************************************/
+static void
+menu_selection_done_cb (GtkMenuShell         *object,
+                        glFieldButton        *this)
+{
+        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (this), FALSE);
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/field-button.h b/src/field-button.h
new file mode 100644 (file)
index 0000000..1bd990f
--- /dev/null
@@ -0,0 +1,91 @@
+/*
+ *  field-button.h
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __GL_FIELD_BUTTON_H__
+#define __GL_FIELD_BUTTON_H__
+
+
+#include <gtk/gtk.h>
+
+
+G_BEGIN_DECLS
+
+#define TYPE_GL_FIELD_BUTTON              (gl_field_button_get_type ())
+#define GL_FIELD_BUTTON(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GL_FIELD_BUTTON, glFieldButton))
+#define GL_FIELD_BUTTON_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GL_FIELD_BUTTON, glFieldButtonClass))
+#define IS_GL_FIELD_BUTTON(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GL_FIELD_BUTTON))
+#define IS_GL_FIELD_BUTTON_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GL_FIELD_BUTTON))
+#define GL_FIELD_BUTTON_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), TYPE_GL_FIELD_BUTTON, glFieldButtonClass))
+
+
+typedef struct _glFieldButton          glFieldButton;
+typedef struct _glFieldButtonPrivate   glFieldButtonPrivate;
+typedef struct _glFieldButtonClass     glFieldButtonClass;
+
+
+struct _glFieldButton {
+        GtkToggleButton               parent;
+
+        glFieldButtonPrivate         *priv;
+};
+
+struct _glFieldButtonClass {
+        GtkToggleButtonClass          parent_class;
+
+        /*
+         * Signals
+         */
+        void (*key_selected) (glFieldButton *object,
+                              gchar         *key,
+                              gpointer       user_data);
+
+        void (*changed)      (glFieldButton *object,
+                              gpointer       user_data);
+
+};
+
+
+GType            gl_field_button_get_type          (void) G_GNUC_CONST;
+
+GtkWidget       *gl_field_button_new               (const gchar     *name);
+
+void             gl_field_button_set_keys          (glFieldButton   *this,
+                                                    GList           *key_list);
+
+void             gl_field_button_set_key           (glFieldButton   *this,
+                                                    const gchar     *key);
+
+gchar           *gl_field_button_get_key           (glFieldButton   *this);
+
+
+G_END_DECLS
+
+#endif /* __GL_COLOR_COMBO_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/file-util.c b/src/file-util.c
new file mode 100644 (file)
index 0000000..66d8ebf
--- /dev/null
@@ -0,0 +1,120 @@
+/*
+ *  file-util.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "file-util.h"
+
+#include <string.h>
+
+
+/****************************************************************************/
+/* Append ".glabels" extension to filename if needed.                       */
+/****************************************************************************/
+gchar *
+gl_file_util_add_extension (const gchar *orig_filename)
+{
+       gchar *new_filename, *extension;
+
+       extension = strrchr (orig_filename, '.');
+       if (extension == NULL) {
+               new_filename = g_strconcat (orig_filename, ".glabels", NULL);
+       } else {
+               if (g_ascii_strcasecmp (extension, ".glabels") != 0) {
+                       new_filename =
+                           g_strconcat (orig_filename, ".glabels", NULL);
+               } else {
+                       new_filename = g_strdup (orig_filename);
+               }
+       }
+
+       return new_filename;
+}
+
+
+/****************************************************************************/
+/* Remove ".glabels" extension from filename if needed.                     */
+/****************************************************************************/
+gchar *
+gl_file_util_remove_extension (const gchar *orig_filename)
+{
+       gchar *new_filename, *extension;
+
+       new_filename = g_strdup (orig_filename);
+
+       extension = strrchr (new_filename, '.');
+       if (extension != NULL) {
+               if (g_ascii_strcasecmp (extension, ".glabels") == 0) {
+                       *extension = 0; /* truncate string, rm extension */
+               }
+       }
+
+       return new_filename;
+}
+
+
+/****************************************************************************/
+/* Make sure we have an absolute path to filename.                          */
+/****************************************************************************/
+gchar *
+gl_file_util_make_absolute (const gchar *filename)
+{
+       gchar *pwd, *absolute_filename;
+
+       if (g_path_is_absolute (filename)) {
+               absolute_filename = g_strdup (filename);
+       } else {
+               pwd = g_get_current_dir ();
+               absolute_filename = g_build_filename (pwd, filename, NULL);
+               g_free (pwd);
+       }
+
+       return absolute_filename;
+}
+
+
+/****************************************************************************/
+/* Test for given extension.                                                */
+/****************************************************************************/
+gboolean
+gl_file_util_is_extension (const gchar       *filename,
+                           const gchar       *ext_test)
+{
+        gchar *ext;
+
+        ext = strrchr (filename, '.');
+        if ( ext != NULL )
+        {
+                return (g_ascii_strcasecmp (ext, ext_test) == 0);
+        }
+
+        return FALSE;
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/file-util.h b/src/file-util.h
new file mode 100644 (file)
index 0000000..f4e94f3
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ *  file-util.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __FILE_UTIL_H__
+#define __FILE_UTIL_H__
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+gchar              *gl_file_util_add_extension         (const gchar       *orig_filename);
+gchar              *gl_file_util_remove_extension      (const gchar       *orig_filename);
+
+gchar              *gl_file_util_make_absolute         (const gchar       *filename);
+
+gboolean            gl_file_util_is_extension          (const gchar       *filename,
+                                                        const gchar       *ext_test);
+
+G_END_DECLS
+
+#endif /* __FILE_UTIL_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 86073e758b4bfa56474431a7feb91c6e2e68f06f..3375720f175603dface8ac3c9054299d1b0b91ce 100644 (file)
@@ -1,25 +1,21 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  file.c:  FILE menu dialog module
+ *  file.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 #include "file.h"
 
 #include <glib/gi18n.h>
-#include <gtk/gtkmain.h>
-#include <gtk/gtkdialog.h>
-#include <gtk/gtkmessagedialog.h>
-#include <gtk/gtkfilechooserdialog.h>
-#include <gtk/gtkstock.h>
+#include <gtk/gtk.h>
 #include <string.h>
 
 #include "xml-label.h"
 #include "recent.h"
-#include "util.h"
+#include "file-util.h"
 #include "window.h"
 #include "new-label-dialog.h"
-#include "libglabels/libglabels.h"
+#include <libglabels.h>
+
 #include "debug.h"
 
+
 /*===========================================*/
 /* Private globals                           */
 /*===========================================*/
@@ -56,15 +50,14 @@ static gboolean rotate_flag = FALSE;
 static gchar *open_path = NULL;
 static gchar *save_path = NULL;
 
+
 /*===========================================*/
 /* Local function prototypes.                */
 /*===========================================*/
-static void new_response                     (GtkDialog         *dialog,
-                                             gint               response,
+static void new_complete                     (GtkDialog         *dialog,
                                              gpointer           user_data);
 
-static void properties_response              (GtkDialog         *dialog,
-                                             gint               response,
+static void properties_complete              (GtkDialog         *dialog,
                                              gpointer           user_data);
 
 static void open_response                    (GtkDialog         *chooser,
@@ -74,7 +67,7 @@ static void save_as_response                 (GtkDialog         *chooser,
                                              gint               response,
                                              glLabel           *label);
 
-\f
+
 /*****************************************************************************/
 /* "New" menu callback.                                                      */
 /*****************************************************************************/
@@ -92,8 +85,7 @@ gl_file_new (glWindow  *window)
 
        g_object_set_data (G_OBJECT (dialog), "parent_window", window);
 
-       g_signal_connect (G_OBJECT(dialog), "response",
-                         G_CALLBACK (new_response), dialog);
+       g_signal_connect (G_OBJECT(dialog), "complete", G_CALLBACK (new_complete), dialog);
 
        if (page_size != NULL) {
                gl_new_label_dialog_set_filter_parameters (GL_NEW_LABEL_DIALOG (dialog),
@@ -106,18 +98,17 @@ gl_file_new (glWindow  *window)
        }
        gl_new_label_dialog_set_rotate_state (GL_NEW_LABEL_DIALOG (dialog), rotate_flag);
 
-        gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);
        gtk_widget_show_all (GTK_WIDGET (dialog));
 
        gl_debug (DEBUG_FILE, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  New "ok" button callback.                                       */
 /*---------------------------------------------------------------------------*/
 static void
-new_response (GtkDialog *dialog,
-             gint       response,
+new_complete (GtkDialog *dialog,
              gpointer   user_data)
 {
        lglTemplate *template;
@@ -127,51 +118,42 @@ new_response (GtkDialog *dialog,
 
        gl_debug (DEBUG_FILE, "START");
 
-       switch (response) {
-
-       case GTK_RESPONSE_OK:
+        gl_new_label_dialog_get_filter_parameters (GL_NEW_LABEL_DIALOG (dialog),
+                                                   &page_size,
+                                                   &category);
 
-               gl_new_label_dialog_get_filter_parameters (GL_NEW_LABEL_DIALOG (dialog),
-                                                           &page_size,
-                                                           &category);
+        if (sheet_name != NULL)
+        {
+                g_free (sheet_name);
+        }
 
-               if (sheet_name != NULL)
-                       g_free (sheet_name);
-               sheet_name =
-                       gl_new_label_dialog_get_template_name (GL_NEW_LABEL_DIALOG (dialog));
+        sheet_name = gl_new_label_dialog_get_template_name (GL_NEW_LABEL_DIALOG (dialog));
 
-               rotate_flag =
-                       gl_new_label_dialog_get_rotate_state (GL_NEW_LABEL_DIALOG (dialog));
+        rotate_flag = gl_new_label_dialog_get_rotate_state (GL_NEW_LABEL_DIALOG (dialog));
 
-               template = lgl_db_lookup_template_from_name (sheet_name);
+        template = lgl_db_lookup_template_from_name (sheet_name);
 
-               label = GL_LABEL(gl_label_new ());
-               gl_label_set_template (label, template);
-               gl_label_set_rotate_flag (label, rotate_flag);
+        label = GL_LABEL(gl_label_new ());
+        gl_label_set_template (label, template, FALSE);
+        gl_label_set_rotate_flag (label, rotate_flag, FALSE);
 
-               lgl_template_free (template);
+        lgl_template_free (template);
 
-               window =
-                       GL_WINDOW (g_object_get_data (G_OBJECT (dialog),
-                                                     "parent_window"));
-               if ( gl_window_is_empty (window) ) {
-                       gl_window_set_label (window, label);
-               } else {
-                       new_window = gl_window_new_from_label (label);
-                       gtk_widget_show_all (new_window);
-               }
+        window = GL_WINDOW (g_object_get_data (G_OBJECT (dialog), "parent_window"));
+        if ( gl_window_is_empty (window) )
+        {
+                gl_window_set_label (window, label);
+        }
+        else
+        {
+                new_window = gl_window_new_from_label (label);
+                gtk_widget_show_all (new_window);
+        }
                
-               break;
-
-       default:
-               break;
-       }
-
-       gtk_widget_destroy (GTK_WIDGET (dialog));
-
        gl_debug (DEBUG_FILE, "END");
 }
 
+
 /*****************************************************************************/
 /* "Properties" menu callback.                                               */
 /*****************************************************************************/
@@ -179,8 +161,10 @@ void
 gl_file_properties (glLabel   *label,
                    glWindow  *window)
 {
-       GtkWidget    *dialog;
-        gchar        *name;
+        const lglTemplate *template;
+        gboolean           rotate_flag;
+       GtkWidget         *dialog;
+        gchar             *name;
 
        gl_debug (DEBUG_FILE, "START");
 
@@ -192,75 +176,66 @@ gl_file_properties (glLabel   *label,
 
        g_object_set_data (G_OBJECT (dialog), "label", label);
 
-       g_signal_connect (G_OBJECT(dialog), "response",
-                         G_CALLBACK (properties_response), dialog);
+       g_signal_connect (G_OBJECT(dialog), "complete", G_CALLBACK (properties_complete), dialog);
+
+        template    = gl_label_get_template (label);
+        rotate_flag = gl_label_get_rotate_flag (label);
 
-        if (label->template->paper_id != NULL) {
+        if (template->paper_id != NULL) {
                 gl_new_label_dialog_set_filter_parameters (GL_NEW_LABEL_DIALOG (dialog),
-                                                           label->template->paper_id,
+                                                           template->paper_id,
                                                            NULL);
         }
-        name = lgl_template_get_name (label->template);
+        name = lgl_template_get_name (template);
         if (name != NULL) {
                 gl_new_label_dialog_set_template_name (GL_NEW_LABEL_DIALOG (dialog), name);
         }
         g_free (name);
 
-        gl_new_label_dialog_set_rotate_state (GL_NEW_LABEL_DIALOG (dialog),
-                                             label->rotate_flag);
+        gl_new_label_dialog_set_rotate_state (GL_NEW_LABEL_DIALOG (dialog), rotate_flag);
 
-        gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);
        gtk_widget_show_all (GTK_WIDGET (dialog));
 
        gl_debug (DEBUG_FILE, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Properties "ok" button callback.                                */
 /*---------------------------------------------------------------------------*/
 static void
-properties_response (GtkDialog *dialog,
-             gint       response,
-             gpointer   user_data)
+properties_complete (GtkDialog *dialog,
+                     gpointer   user_data)
 {
        lglTemplate *template;
        glLabel     *label;
 
        gl_debug (DEBUG_FILE, "START");
 
-       switch (response) {
-
-       case GTK_RESPONSE_OK:
-
-               gl_new_label_dialog_get_filter_parameters (GL_NEW_LABEL_DIALOG (dialog),
-                                                           &page_size,
-                                                           &category);
+        gl_new_label_dialog_get_filter_parameters (GL_NEW_LABEL_DIALOG (dialog),
+                                                   &page_size,
+                                                   &category);
 
-               if (sheet_name != NULL)
-                       g_free (sheet_name);
-               sheet_name =
-                       gl_new_label_dialog_get_template_name (GL_NEW_LABEL_DIALOG (dialog));
-
-               rotate_flag =
-                       gl_new_label_dialog_get_rotate_state (GL_NEW_LABEL_DIALOG (dialog));
+        if (sheet_name != NULL)
+        {
+                g_free (sheet_name);
+        }
 
-               template = lgl_db_lookup_template_from_name (sheet_name);
+        sheet_name = gl_new_label_dialog_get_template_name (GL_NEW_LABEL_DIALOG (dialog));
 
-                label = GL_LABEL(g_object_get_data (G_OBJECT (dialog), "label"));
-                gl_label_set_template (label, template);
-                gl_label_set_rotate_flag (label, rotate_flag);
+        rotate_flag = gl_new_label_dialog_get_rotate_state (GL_NEW_LABEL_DIALOG (dialog));
 
-               break;
+        template = lgl_db_lookup_template_from_name (sheet_name);
 
-       default:
-               break;
-       }
+        label = GL_LABEL(g_object_get_data (G_OBJECT (dialog), "label"));
 
-       gtk_widget_destroy (GTK_WIDGET (dialog));
+        gl_label_set_template (label, template, TRUE);
+        gl_label_set_rotate_flag (label, rotate_flag, TRUE);
 
        gl_debug (DEBUG_FILE, "END");
 }
 
+
 /*****************************************************************************/
 /* "Open" menu callback.                                                     */
 /*****************************************************************************/
@@ -308,6 +283,7 @@ gl_file_open (glWindow  *window)
        gl_debug (DEBUG_FILE, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Open "response" callback.                                       */
 /*---------------------------------------------------------------------------*/
@@ -405,6 +381,7 @@ gl_file_open_recent (const gchar     *filename,
        }
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Open a file.                                                    */
 /*---------------------------------------------------------------------------*/
@@ -419,7 +396,7 @@ gl_file_open_real (const gchar     *filename,
 
        gl_debug (DEBUG_FILE, "START");
 
-       abs_filename = gl_util_make_absolute (filename);
+       abs_filename = gl_file_util_make_absolute (filename);
        label = gl_xml_label_open (abs_filename, &status);
        if (!label) {
                GtkWidget *dialog;
@@ -467,6 +444,7 @@ gl_file_open_real (const gchar     *filename,
        }
 }
 
+
 /*****************************************************************************/
 /* "Save" menu callback.                                                     */
 /*****************************************************************************/
@@ -535,6 +513,7 @@ gl_file_save (glLabel   *label,
        }
 }
 
+
 /*****************************************************************************/
 /* "Save As" menu callback.                                                  */
 /*****************************************************************************/
@@ -603,6 +582,7 @@ gl_file_save_as (glLabel   *label,
        return saved_flag;
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  "Save As" ok button callback.                                   */
 /*---------------------------------------------------------------------------*/
@@ -647,7 +627,7 @@ save_as_response (GtkDialog     *chooser,
 
                } else {
 
-                       full_filename = gl_util_add_extension (raw_filename);
+                       full_filename = gl_file_util_add_extension (raw_filename);
 
                        filename = g_filename_to_utf8 (full_filename, -1,
                                                       NULL, NULL, NULL);
@@ -821,6 +801,7 @@ gl_file_close (glWindow *window)
        return close;
 }
 
+
 /*****************************************************************************/
 /* "Exit" menu callback.                                                     */
 /*****************************************************************************/
@@ -842,3 +823,14 @@ gl_file_exit (void)
 
        gl_debug (DEBUG_FILE, "END");
 }
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index ba826075d7b3f0dd3a5d8c656556543451fd7211..3ac975e1cb688f7678b27285cad9a88e3bdcc995 100644 (file)
@@ -1,31 +1,27 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  file.h:  FILE menu dialog module header file
+ *  file.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2000  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __FILE_H__
 #define __FILE_H__
 
-#include <gtk/gtkwindow.h>
+#include <gtk/gtk.h>
 
 #include "label.h"
 #include "window.h"
@@ -63,3 +59,14 @@ void     gl_file_exit        (void);
 G_END_DECLS
 
 #endif /* __FILE_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/font-combo-menu-item.c b/src/font-combo-menu-item.c
new file mode 100644 (file)
index 0000000..6d958d6
--- /dev/null
@@ -0,0 +1,188 @@
+/*
+ *  font-combo-menu-item.c
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "font-combo-menu-item.h"
+
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+
+#include "font-sample.h"
+#include "marshal.h"
+
+
+
+/*===========================================*/
+/* Private macros and constants.             */
+/*===========================================*/
+
+#define SAMPLE_W 32
+#define SAMPLE_H 24
+
+
+/*===========================================*/
+/* Private types                             */
+/*===========================================*/
+
+struct _glFontComboMenuItemPrivate {
+
+        gchar *font_family;
+
+};
+
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+static void gl_font_combo_menu_item_finalize    (GObject                *object);
+
+
+/****************************************************************************/
+/* Boilerplate Object stuff.                                                */
+/****************************************************************************/
+G_DEFINE_TYPE (glFontComboMenuItem, gl_font_combo_menu_item, GTK_TYPE_MENU_ITEM)
+
+
+/*****************************************************************************/
+/* Class Init Function.                                                      */
+/*****************************************************************************/
+static void
+gl_font_combo_menu_item_class_init (glFontComboMenuItemClass *class)
+{
+       GObjectClass   *gobject_class = G_OBJECT_CLASS (class);
+
+        gl_font_combo_menu_item_parent_class = g_type_class_peek_parent (class);
+
+       gobject_class->finalize = gl_font_combo_menu_item_finalize;
+}
+
+
+/*****************************************************************************/
+/* Object Instance Init Function.                                            */
+/*****************************************************************************/
+static void
+gl_font_combo_menu_item_init (glFontComboMenuItem *this)
+{
+       this->priv = g_new0 (glFontComboMenuItemPrivate, 1);
+}
+
+
+/*****************************************************************************/
+/* Finalize Method.                                                          */
+/*****************************************************************************/
+static void
+gl_font_combo_menu_item_finalize (GObject *object)
+{
+       glFontComboMenuItem *this = GL_FONT_COMBO_MENU_ITEM (object);
+
+       g_return_if_fail (object != NULL);
+       g_return_if_fail (GL_IS_FONT_COMBO_MENU_ITEM (object));
+
+        g_free (this->priv->font_family);
+       g_free (this->priv);
+
+       G_OBJECT_CLASS (gl_font_combo_menu_item_parent_class)->finalize (object);
+}
+
+
+/*****************************************************************************/
+/** New Object Generator.                                                    */
+/*****************************************************************************/
+GtkWidget *
+gl_font_combo_menu_item_new (gchar *font_family)
+{
+       glFontComboMenuItem *this;
+        GtkWidget           *hbox;
+        GtkWidget           *sample;
+        GtkWidget           *label;
+        PangoLanguage       *language;
+        gchar               *tip;
+
+        /*
+         * Allow text samples to be localized.
+         *
+         * FIXME: if we could extract enough meta information from the fonts
+         * themselves, perhaps rather than setting these globally for the
+         * current locale, they could be unique to each font family.
+         */
+        const char          *short_sample_text    = C_("Short sample text", "Aa");
+        const char          *lower_case_text      = C_("Lower case sample text",
+                                                       "abcdefghijklmnopqrstuvwxyz");
+        const char          *upper_case_text      = C_("Upper case sample text",
+                                                       "ABCDEFGHIJKLMNOPQRSTUVWXYZ");
+        const char          *numbers_special_text = C_("Numbers and special characters sample text",
+                                                       "0123456789 .:,;(*!?)");
+        const char          *sample_text;
+
+       this = g_object_new (GL_TYPE_FONT_COMBO_MENU_ITEM, NULL);
+
+        this->priv->font_family = g_strdup (font_family);
+
+        hbox = gtk_hbox_new (FALSE, 6);
+        gtk_container_add (GTK_CONTAINER (this), hbox);
+
+        sample = gl_font_sample_new (SAMPLE_W, SAMPLE_H, short_sample_text, font_family);
+        gtk_box_pack_start (GTK_BOX (hbox), sample, FALSE, FALSE, 0);
+
+        label = gtk_label_new (font_family);
+        gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+
+        language = pango_language_get_default ();
+        sample_text = pango_language_get_sample_string (language);
+        tip = g_strdup_printf ("%s:\n\n<span font_family=\"%s\" size=\"x-large\">%s\n%s\n%s\n\n%s</span>",
+                               _("Sample text"),
+                               font_family,
+                               lower_case_text,
+                               upper_case_text,
+                               numbers_special_text,
+                               sample_text);
+        gtk_widget_set_tooltip_markup (GTK_WIDGET (this), tip);
+        g_free (tip);
+
+       return GTK_WIDGET (this);
+}
+
+
+/*****************************************************************************/
+/* Get family.                                                               */
+/*****************************************************************************/
+gchar *
+gl_font_combo_menu_item_get_family (glFontComboMenuItem *this)
+{
+        return g_strdup (this->priv->font_family);
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/font-combo-menu-item.h b/src/font-combo-menu-item.h
new file mode 100644 (file)
index 0000000..3068161
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ *  font-combo-menu-item.h
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __FONT_COMBO_MENU_ITEM_H__
+#define __FONT_COMBO_MENU_ITEM_H__
+
+
+#include <gtk/gtk.h>
+
+
+G_BEGIN_DECLS
+
+#define GL_TYPE_FONT_COMBO_MENU_ITEM (gl_font_combo_menu_item_get_type ())
+#define GL_FONT_COMBO_MENU_ITEM(obj) \
+        (G_TYPE_CHECK_INSTANCE_CAST((obj), GL_TYPE_FONT_COMBO_MENU_ITEM, glFontComboMenuItem ))
+#define GL_FONT_COMBO_MENU_ITEM_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_FONT_COMBO_MENU_ITEM, glFontComboMenuItemClass))
+#define GL_IS_FONT_COMBO_MENU_ITEM(obj) \
+        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_FONT_COMBO_MENU_ITEM))
+#define GL_IS_FONT_COMBO_MENU_ITEM_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_FONT_COMBO_MENU_ITEM))
+
+typedef struct _glFontComboMenuItem        glFontComboMenuItem;
+typedef struct _glFontComboMenuItemPrivate glFontComboMenuItemPrivate;
+typedef struct _glFontComboMenuItemClass   glFontComboMenuItemClass;
+
+struct _glFontComboMenuItem {
+       GtkMenuItem            parent_widget;
+
+       glFontComboMenuItemPrivate *priv;
+};
+
+struct _glFontComboMenuItemClass {
+       GtkMenuItemClass       parent_class;
+};
+
+
+GType      gl_font_combo_menu_item_get_type   (void) G_GNUC_CONST;
+
+GtkWidget *gl_font_combo_menu_item_new        (gchar                *font_family);
+
+gchar     *gl_font_combo_menu_item_get_family (glFontComboMenuItem  *this);
+
+
+G_END_DECLS
+
+#endif /* __FONT_COMBO_MENU_ITEM_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/font-combo-menu.c b/src/font-combo-menu.c
new file mode 100644 (file)
index 0000000..f56d500
--- /dev/null
@@ -0,0 +1,308 @@
+/*
+ *  font-combo-menu.c
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "font-combo-menu.h"
+
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+
+#include "font-combo-menu-item.h"
+#include "font-util.h"
+#include "font-history.h"
+#include "marshal.h"
+
+
+/*===========================================*/
+/* Private macros and constants.             */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Private types                             */
+/*===========================================*/
+
+struct _glFontComboMenuPrivate {
+
+        gchar     *font_family;
+
+        GtkWidget *recent_menu_item;
+        GtkWidget *recent_sub_menu;
+
+};
+
+enum {
+        FONT_CHANGED,
+        LAST_SIGNAL
+};
+
+gchar *standard_families[] = { "Sans", "Serif", "Monospace", NULL };
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+static guint signals[LAST_SIGNAL] = {0};
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+static void       gl_font_combo_menu_finalize (GObject             *object);
+
+static void       menu_item_activate_cb       (glFontComboMenuItem *item,
+                                               glFontComboMenu     *this);
+
+static GtkWidget *new_font_sub_menu           (glFontComboMenu     *this,
+                                               const GList         *list);
+
+static void       font_history_changed_cb     (glFontComboMenu     *this);
+
+
+
+/****************************************************************************/
+/* Boilerplate Object stuff.                                                */
+/****************************************************************************/
+G_DEFINE_TYPE (glFontComboMenu, gl_font_combo_menu, GTK_TYPE_MENU)
+
+
+/*****************************************************************************/
+/* Class Init Function.                                                      */
+/*****************************************************************************/
+static void
+gl_font_combo_menu_class_init (glFontComboMenuClass *class)
+{
+       GObjectClass   *gobject_class = G_OBJECT_CLASS (class);
+
+        gl_font_combo_menu_parent_class = g_type_class_peek_parent (class);
+
+       gobject_class->finalize = gl_font_combo_menu_finalize;
+
+        signals[FONT_CHANGED] =
+                g_signal_new ("font_changed",
+                              G_OBJECT_CLASS_TYPE (gobject_class),
+                              G_SIGNAL_RUN_LAST,
+                              G_STRUCT_OFFSET (glFontComboMenuClass, font_changed),
+                              NULL, NULL,
+                              gl_marshal_VOID__VOID,
+                              G_TYPE_NONE, 0);
+}
+
+
+/*****************************************************************************/
+/* Object Instance Init Function.                                            */
+/*****************************************************************************/
+static void
+gl_font_combo_menu_init (glFontComboMenu *this)
+{
+        gint          i;
+        GtkWidget    *menu_item;
+        GtkWidget    *sub_menu;
+        const GList  *list;
+
+       this->priv = g_new0 (glFontComboMenuPrivate, 1);
+
+
+        for ( i = 0; standard_families[i] != NULL; i++ )
+        {
+                menu_item = gl_font_combo_menu_item_new (standard_families[i]);
+                gtk_menu_shell_append (GTK_MENU_SHELL (this), menu_item);
+                g_signal_connect (menu_item, "activate",
+                                  G_CALLBACK (menu_item_activate_cb), this);
+        }
+
+        menu_item = gtk_separator_menu_item_new ();
+        gtk_menu_shell_append (GTK_MENU_SHELL (this), menu_item);
+
+
+        menu_item = gtk_menu_item_new_with_label (_("Recent fonts"));
+        gtk_menu_shell_append (GTK_MENU_SHELL (this), menu_item);
+
+        list = gl_font_history_model_get_family_list (gl_font_history);
+        sub_menu = new_font_sub_menu (this, list);
+        gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), sub_menu);
+        gtk_widget_set_sensitive (menu_item, list != NULL);
+
+        this->priv->recent_menu_item = menu_item;
+        this->priv->recent_sub_menu  = sub_menu;
+
+        menu_item = gtk_separator_menu_item_new ();
+        gtk_menu_shell_append (GTK_MENU_SHELL (this), menu_item);
+
+
+        menu_item = gtk_menu_item_new_with_label (_("Proportional fonts"));
+        gtk_menu_shell_append (GTK_MENU_SHELL (this), menu_item);
+
+        list = gl_font_util_get_proportional_families ();
+        sub_menu = new_font_sub_menu (this, list);
+        gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), sub_menu);
+        gtk_widget_set_sensitive (menu_item, list != NULL);
+
+        menu_item = gtk_menu_item_new_with_label (_("Fixed-width fonts"));
+        gtk_menu_shell_append (GTK_MENU_SHELL (this), menu_item);
+
+        list = gl_font_util_get_fixed_width_families ();
+        sub_menu = new_font_sub_menu (this, list);
+        gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), sub_menu);
+        gtk_widget_set_sensitive (menu_item, list != NULL);
+
+        menu_item = gtk_menu_item_new_with_label (_("All fonts"));
+        gtk_menu_shell_append (GTK_MENU_SHELL (this), menu_item);
+
+        list = gl_font_util_get_all_families ();
+        sub_menu = new_font_sub_menu (this, list);
+        gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), sub_menu);
+        gtk_widget_set_sensitive (menu_item, list != NULL);
+
+
+        gtk_widget_show_all (GTK_WIDGET (this));
+
+
+        g_signal_connect_swapped (gl_font_history, "changed",
+                                  G_CALLBACK (font_history_changed_cb), this);
+
+}
+
+
+/*****************************************************************************/
+/* Finalize Method.                                                          */
+/*****************************************************************************/
+static void
+gl_font_combo_menu_finalize (GObject *object)
+{
+       glFontComboMenu *this = GL_FONT_COMBO_MENU (object);
+
+       g_return_if_fail (object != NULL);
+       g_return_if_fail (GL_IS_FONT_COMBO_MENU (object));
+
+       g_free (this->priv);
+
+       G_OBJECT_CLASS (gl_font_combo_menu_parent_class)->finalize (object);
+}
+
+
+/*****************************************************************************/
+/** New Object Generator.                                                    */
+/*****************************************************************************/
+GtkWidget *
+gl_font_combo_menu_new (void)
+{
+       glFontComboMenu *this;
+
+       this = g_object_new (gl_font_combo_menu_get_type (), NULL);
+
+       return GTK_WIDGET (this);
+}
+
+
+/*****************************************************************************/
+/* menu_item activate callback.                                              */
+/*****************************************************************************/
+static void menu_item_activate_cb (glFontComboMenuItem *item,
+                                   glFontComboMenu     *this)
+{
+        this->priv->font_family = gl_font_combo_menu_item_get_family (item);
+
+        g_signal_emit (this, signals[FONT_CHANGED], 0);
+
+        gtk_widget_hide (GTK_WIDGET (this));
+}
+
+
+/*****************************************************************************/
+/* Get font family name.                                                     */
+/*****************************************************************************/
+gchar *
+gl_font_combo_menu_get_family (glFontComboMenu *this)
+{
+        return g_strdup (this->priv->font_family);
+}
+
+
+/*****************************************************************************/
+/* Create a new font sub menu from font list.                                */
+/*****************************************************************************/
+static GtkWidget *
+new_font_sub_menu (glFontComboMenu *this,
+                   const GList     *list)
+{
+        GtkWidget   *menu;
+        GtkWidget   *menu_item;
+        GList       *p;
+
+        menu = gtk_menu_new ();
+
+        for ( p = (GList *)list; p != NULL; p = p->next )
+        {
+                menu_item = gl_font_combo_menu_item_new (p->data);
+                gtk_widget_show_all (menu_item);
+                gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
+                g_signal_connect (menu_item, "activate",
+                                  G_CALLBACK (menu_item_activate_cb), this);
+        }
+
+        gtk_widget_show (menu);
+        return menu;
+}
+
+
+/*****************************************************************************/
+/* Font history changed callback.                                            */
+/*****************************************************************************/
+static void
+font_history_changed_cb (glFontComboMenu     *this)
+{
+        GList *list;
+
+        /*
+         * Remove old sub menu
+         */
+        gtk_menu_item_set_submenu (GTK_MENU_ITEM (this->priv->recent_menu_item),
+                                   NULL);
+
+        /*
+         * Build new sub menu
+         */
+        list = gl_font_history_model_get_family_list (gl_font_history);
+        this->priv->recent_sub_menu = new_font_sub_menu (this, list);
+
+        /*
+         * Attach to top-level menu item
+         */
+        gtk_menu_item_set_submenu (GTK_MENU_ITEM (this->priv->recent_menu_item),
+                                   this->priv->recent_sub_menu);
+        gtk_widget_set_sensitive (this->priv->recent_menu_item, list != NULL);
+
+        gl_font_history_model_free_family_list (list);
+}
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/font-combo-menu.h b/src/font-combo-menu.h
new file mode 100644 (file)
index 0000000..d40fa43
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ *  font-combo-menu.h
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __FONT_COMBO_MENU_H__
+#define __FONT_COMBO_MENU_H__
+
+#include <gtk/gtk.h>
+
+
+G_BEGIN_DECLS
+
+#define GL_TYPE_FONT_COMBO_MENU (gl_font_combo_menu_get_type ())
+#define GL_FONT_COMBO_MENU(obj) \
+        (G_TYPE_CHECK_INSTANCE_CAST((obj), GL_TYPE_FONT_COMBO_MENU, glFontComboMenu ))
+#define GL_FONT_COMBO_MENU_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_FONT_COMBO_MENU, glFontComboMenuClass))
+#define GL_IS_FONT_COMBO_MENU(obj) \
+        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_FONT_COMBO_MENU))
+#define GL_IS_FONT_COMBO_MENU_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_FONT_COMBO_MENU))
+
+typedef struct _glFontComboMenu        glFontComboMenu;
+typedef struct _glFontComboMenuPrivate glFontComboMenuPrivate;
+typedef struct _glFontComboMenuClass   glFontComboMenuClass;
+
+struct _glFontComboMenu {
+       GtkMenu                 parent_widget;
+
+       glFontComboMenuPrivate *priv;
+};
+
+struct _glFontComboMenuClass {
+       GtkMenuClass            parent_class;
+
+        /*
+         * Signals
+         */
+        void (*font_changed) (glFontComboMenu *object,
+                              gpointer         user_data);
+
+};
+
+
+GType      gl_font_combo_menu_get_type     (void) G_GNUC_CONST;
+
+GtkWidget *gl_font_combo_menu_new          (void);
+
+gchar     *gl_font_combo_menu_get_family   (glFontComboMenu *this);
+
+
+G_END_DECLS
+
+
+#endif /* __FONT_COMBO_MENU_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
+
diff --git a/src/font-combo.c b/src/font-combo.c
new file mode 100644 (file)
index 0000000..3c9480f
--- /dev/null
@@ -0,0 +1,360 @@
+/*
+ *  font-combo.c
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "font-combo.h"
+
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+
+#include "font-combo-menu.h"
+#include "font-util.h"
+#include "marshal.h"
+
+
+
+/*========================================================*/
+/* Private types.                                         */
+/*========================================================*/
+
+/** GL_FONT_COMBO Private fields */
+struct _glFontComboPrivate {
+
+        gchar      *font_family;
+
+        GtkWidget  *label;
+
+        GtkWidget  *menu;
+};
+
+enum {
+        CHANGED,
+        LAST_SIGNAL
+};
+
+
+/*========================================================*/
+/* Private globals.                                       */
+/*========================================================*/
+
+static guint signals[LAST_SIGNAL] = {0};
+
+
+/*========================================================*/
+/* Private function prototypes.                           */
+/*========================================================*/
+
+static void gl_font_combo_finalize      (GObject             *object);
+
+static gboolean
+button_press_event_cb (GtkWidget      *widget,
+                       GdkEventButton *event,
+                       glFontCombo    *this);
+
+static void
+menu_font_changed_cb   (glFontComboMenu  *menu,
+                        glFontCombo      *this);
+
+static void
+menu_selection_done_cb (GtkMenuShell     *object,
+                        glFontCombo      *this);
+
+
+/*****************************************************************************/
+/* Object infrastructure.                                                    */
+/*****************************************************************************/
+G_DEFINE_TYPE (glFontCombo, gl_font_combo, GTK_TYPE_TOGGLE_BUTTON)
+
+
+/*****************************************************************************/
+/* Class Init Function.                                                      */
+/*****************************************************************************/
+static void
+gl_font_combo_class_init (glFontComboClass *class)
+{
+        GObjectClass      *gobject_class = (GObjectClass *) class;
+
+        gl_font_combo_parent_class = g_type_class_peek_parent (class);
+
+        gobject_class->finalize = gl_font_combo_finalize;
+
+        signals[CHANGED] =
+                g_signal_new ("changed",
+                              G_OBJECT_CLASS_TYPE (gobject_class),
+                              G_SIGNAL_RUN_LAST,
+                              G_STRUCT_OFFSET (glFontComboClass, changed),
+                              NULL, NULL,
+                              gl_marshal_VOID__VOID,
+                              G_TYPE_NONE, 0);
+}
+
+
+/*****************************************************************************/
+/* Object Instance Init Function.                                            */
+/*****************************************************************************/
+static void
+gl_font_combo_init (glFontCombo *this)
+{
+        GtkWidget *hbox;
+        GtkWidget *arrow;
+
+        this->priv = g_new0 (glFontComboPrivate, 1);
+
+        hbox = gtk_hbox_new (FALSE, 3);
+        gtk_container_add (GTK_CONTAINER (this), hbox);
+        
+        this->priv->label = gtk_label_new ("");
+        gtk_misc_set_alignment (GTK_MISC (this->priv->label), 0.0, 0.5);
+       gtk_widget_set_size_request (this->priv->label, 180, -1);
+        gtk_box_pack_start (GTK_BOX (hbox), this->priv->label, TRUE, TRUE, 0);
+
+        arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_IN);
+        gtk_box_pack_end (GTK_BOX (hbox), arrow, FALSE, FALSE, 0);
+
+        g_signal_connect (this, "button_press_event",
+                          G_CALLBACK(button_press_event_cb), this);
+}
+
+
+/*****************************************************************************/
+/* Finalize Method.                                                          */
+/*****************************************************************************/
+static void
+gl_font_combo_finalize (GObject *object)
+{
+        glFontCombo    *this;
+
+        g_return_if_fail (object && IS_GL_FONT_COMBO (object));
+        this = GL_FONT_COMBO (object);
+
+        g_free (this->priv->font_family);
+        g_object_ref_sink (this->priv->menu);
+        g_free (this->priv);
+
+        G_OBJECT_CLASS (gl_font_combo_parent_class)->finalize (object);
+}
+
+
+/*****************************************************************************/
+/** New Object Generator.                                                    */
+/*****************************************************************************/
+GtkWidget *
+gl_font_combo_new (const gchar  *font_family)
+{
+        glFontCombo  *this;
+
+        this = g_object_new (TYPE_GL_FONT_COMBO, NULL);
+
+        this->priv->font_family = gl_font_util_validate_family (font_family);
+
+        gtk_label_set_text (GTK_LABEL (this->priv->label), this->priv->font_family);
+
+        this->priv->menu = gl_font_combo_menu_new ();
+
+        gtk_widget_show_all (this->priv->menu);
+
+        g_signal_connect (this->priv->menu, "font_changed",
+                          G_CALLBACK (menu_font_changed_cb), this);
+        g_signal_connect (this->priv->menu, "selection_done",
+                          G_CALLBACK (menu_selection_done_cb), this);
+
+        return GTK_WIDGET (this);
+}
+
+
+/*****************************************************************************/
+/** Set relief style.                                                        */
+/*****************************************************************************/
+void
+gl_font_combo_set_relief( glFontCombo    *this,
+                          GtkReliefStyle  relief )
+{
+        gtk_button_set_relief (GTK_BUTTON (this), relief);
+}
+
+
+/*****************************************************************************/
+/* Set font family.                                                          */
+/*****************************************************************************/
+void
+gl_font_combo_set_family (glFontCombo  *this,
+                          const gchar  *font_family)
+{
+
+        this->priv->font_family = gl_font_util_validate_family (font_family);
+
+        gtk_label_set_text (GTK_LABEL (this->priv->label), this->priv->font_family);
+}
+
+
+/*****************************************************************************/
+/* Get font family.                                                          */
+/*****************************************************************************/
+gchar *
+gl_font_combo_get_family (glFontCombo  *this)
+{
+        return g_strdup (this->priv->font_family);
+}
+
+
+/*****************************************************************************/
+/* Menu positioning function.                                                */
+/*****************************************************************************/
+static void
+menu_position_function (GtkMenu      *menu,
+                        gint         *x,
+                        gint         *y,
+                        gboolean     *push_in,
+                        glFontCombo  *this)
+{
+        GdkScreen          *screen;
+        gint                w_screen, h_screen;
+        GdkWindow          *window;
+        gint                x_window, y_window;
+        GtkAllocation       allocation;
+        gint                x_this, y_this, h_this;
+        GtkRequisition      menu_requisition;
+        gint                h_menu, w_menu;
+
+        /*
+         * Screen size
+         */
+        screen = gtk_widget_get_screen (GTK_WIDGET (this));
+        w_screen = gdk_screen_get_width (screen);
+        h_screen = gdk_screen_get_height (screen);
+
+        /*
+         * Absolute position of "this" window on screen.
+         */
+        window = gtk_widget_get_window (GTK_WIDGET (this));
+        gdk_window_get_origin (window, &x_window, &y_window);
+
+        /*
+         *  Position and size of "this" inside window
+         */
+        gtk_widget_get_allocation (GTK_WIDGET (this), &allocation);
+        x_this = allocation.x;
+        y_this = allocation.y;
+        h_this = allocation.height;
+
+        /*
+         * Size of menu.
+         */
+        gtk_widget_size_request (this->priv->menu, &menu_requisition);
+        h_menu = menu_requisition.height;
+        w_menu = menu_requisition.width;
+
+        /*
+         * Default position anchored to lower left corner of "this".
+         */
+        *x = x_window + x_this;
+        *y = y_window + y_this + h_this;
+                
+        /*
+         * Adjust vertical position if menu if extends past bottom of screen.
+         */
+        if ( (*y + h_menu) > h_screen )
+        {
+                *y = y_window + y_this - h_menu;
+
+                if ( *y < 0 )
+                {
+                        *y = h_screen - h_menu;
+                }
+        }
+
+        /*
+         * Adjust horizontal position if menu if extends past edge of screen.
+         */
+        if ( (*x + w_menu) > w_screen )
+        {
+                *x = w_screen - w_menu;
+        }
+
+
+        *push_in = TRUE;
+}
+
+
+/*****************************************************************************/
+/* Button "button_press_event" callback.                                     */
+/*****************************************************************************/
+static gboolean
+button_press_event_cb (GtkWidget      *widget,
+                       GdkEventButton *event,
+                       glFontCombo   *this)
+{
+        switch (event->button)
+        {
+
+        case 1:
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (this), TRUE);
+
+                gtk_menu_popup (GTK_MENU (this->priv->menu),
+                                NULL, NULL,
+                                (GtkMenuPositionFunc)menu_position_function, this,
+                                event->button, event->time);
+                break;
+
+        default:
+                break;
+
+        }
+
+        return FALSE;
+}
+
+
+/*****************************************************************************/
+/* Menu "font changed" callback.                                             */
+/*****************************************************************************/
+static void
+menu_font_changed_cb (glFontComboMenu     *menu,
+                      glFontCombo         *this)
+{
+        this->priv->font_family = gl_font_combo_menu_get_family (menu);
+
+        gtk_label_set_text (GTK_LABEL (this->priv->label), this->priv->font_family);
+
+        g_signal_emit (this, signals[CHANGED], 0);
+}
+
+
+/*****************************************************************************/
+/* Menu "selection done" callback.                                           */
+/*****************************************************************************/
+static void
+menu_selection_done_cb (GtkMenuShell         *object,
+                        glFontCombo         *this)
+{
+        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (this), FALSE);
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/font-combo.h b/src/font-combo.h
new file mode 100644 (file)
index 0000000..a7b9de6
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+ *  font-combo.h
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __GL_FONT_COMBO_H__
+#define __GL_FONT_COMBO_H__
+
+
+#include <gtk/gtk.h>
+
+
+G_BEGIN_DECLS
+
+#define TYPE_GL_FONT_COMBO              (gl_font_combo_get_type ())
+#define GL_FONT_COMBO(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GL_FONT_COMBO, glFontCombo))
+#define GL_FONT_COMBO_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GL_FONT_COMBO, glFontComboClass))
+#define IS_GL_FONT_COMBO(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GL_FONT_COMBO))
+#define IS_GL_FONT_COMBO_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GL_FONT_COMBO))
+#define GL_FONT_COMBO_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), TYPE_GL_FONT_COMBO, glFontComboClass))
+
+
+typedef struct _glFontCombo          glFontCombo;
+typedef struct _glFontComboPrivate   glFontComboPrivate;
+typedef struct _glFontComboClass     glFontComboClass;
+
+
+struct _glFontCombo {
+        GtkToggleButton               parent;
+
+        glFontComboPrivate           *priv;
+};
+
+struct _glFontComboClass {
+        GtkToggleButtonClass          parent_class;
+
+        /*
+         * Signals
+         */
+        void (*changed) (glFontCombo *object,
+                         gpointer     user_data);
+
+};
+
+
+GType            gl_font_combo_get_type          (void) G_GNUC_CONST;
+
+GtkWidget       *gl_font_combo_new               (const gchar   *font_family);
+
+void             gl_font_combo_set_family        (glFontCombo   *this,
+                                                  const gchar   *font_family);
+
+gchar           *gl_font_combo_get_family        (glFontCombo   *this);
+
+void             gl_font_combo_set_relief        (glFontCombo   *this,
+                                                  GtkReliefStyle relief);
+
+
+G_END_DECLS
+
+#endif /* __GL_COLOR_COMBO_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/font-history-model.c b/src/font-history-model.c
new file mode 100644 (file)
index 0000000..3ae9a86
--- /dev/null
@@ -0,0 +1,244 @@
+/*
+ *  font-history-model.c
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "font-history-model.h"
+
+#include <gio/gio.h>
+
+#include <libglabels.h>
+#include "font-util.h"
+#include "marshal.h"
+
+
+/*========================================================*/
+/* Private types.                                         */
+/*========================================================*/
+
+struct _glFontHistoryModelPrivate {
+
+        GSettings   *history;
+
+        guint        max_n;
+};
+
+enum {
+        CHANGED,
+        LAST_SIGNAL
+};
+
+
+/*========================================================*/
+/* Private globals.                                       */
+/*========================================================*/
+
+static guint signals[LAST_SIGNAL] = {0};
+
+
+/*========================================================*/
+/* Private function prototypes.                           */
+/*========================================================*/
+
+static void gl_font_history_model_finalize      (GObject             *object);
+
+static void history_changed_cb                  (glFontHistoryModel  *this);
+
+
+/*****************************************************************************/
+/* Object infrastructure.                                                    */
+/*****************************************************************************/
+G_DEFINE_TYPE (glFontHistoryModel, gl_font_history_model, G_TYPE_OBJECT)
+
+
+/*****************************************************************************/
+/* Class Init Function.                                                      */
+/*****************************************************************************/
+static void
+gl_font_history_model_class_init (glFontHistoryModelClass *class)
+{
+        GObjectClass  *gobject_class = (GObjectClass *) class;
+
+        gl_font_history_model_parent_class = g_type_class_peek_parent (class);
+
+        gobject_class->finalize = gl_font_history_model_finalize;
+
+        signals[CHANGED] =
+                g_signal_new ("changed",
+                              G_OBJECT_CLASS_TYPE (gobject_class),
+                              G_SIGNAL_RUN_LAST,
+                              G_STRUCT_OFFSET (glFontHistoryModelClass, changed),
+                              NULL, NULL,
+                              gl_marshal_VOID__VOID,
+                              G_TYPE_NONE,
+                              0);
+}
+
+
+/*****************************************************************************/
+/* Object Instance Init Function.                                            */
+/*****************************************************************************/
+static void
+gl_font_history_model_init (glFontHistoryModel *this)
+{
+        this->priv = g_new0 (glFontHistoryModelPrivate, 1);
+
+        this->priv->history = g_settings_new ("org.gnome.glabels-3.history");
+
+        g_return_if_fail (this->priv->history != NULL);
+
+        g_signal_connect_swapped (G_OBJECT (this->priv->history),
+                                  "changed::recent-fonts",
+                                  G_CALLBACK (history_changed_cb), this);
+}
+
+
+/*****************************************************************************/
+/* Finalize Method.                                                          */
+/*****************************************************************************/
+static void
+gl_font_history_model_finalize (GObject *object)
+{
+        glFontHistoryModel    *this;
+
+        g_return_if_fail (object && IS_GL_FONT_HISTORY_MODEL (object));
+        this = GL_FONT_HISTORY_MODEL (object);
+
+        g_object_unref (G_OBJECT(this->priv->history));
+        g_free (this->priv);
+
+        G_OBJECT_CLASS (gl_font_history_model_parent_class)->finalize (object);
+}
+
+
+/*****************************************************************************/
+/** New Object Generator.                                                    */
+/*****************************************************************************/
+glFontHistoryModel *
+gl_font_history_model_new (guint n)
+{
+        glFontHistoryModel *this;
+
+        this = g_object_new (TYPE_GL_FONT_HISTORY_MODEL, NULL);
+
+        this->priv->max_n = n;
+
+        return this;
+}
+
+
+/*****************************************************************************/
+/* Add font to history.                                                      */
+/*****************************************************************************/
+void
+gl_font_history_model_add_family (glFontHistoryModel *this,
+                                  const gchar        *family)
+{
+        gchar **old;
+        gchar **new;
+        gint    i, j;
+
+        old = g_settings_get_strv (this->priv->history, "recent-fonts");
+                                   
+        new = g_new0 (gchar *, this->priv->max_n+1);
+
+        /* Put in first slot. */
+        new[0] = g_strdup (family);
+
+        /* Push everthing else down, pruning any duplicate found. */
+        for ( i = 0, j = 1; (j < (this->priv->max_n-1)) && old[i]; i++ )
+        {
+                if ( lgl_str_utf8_casecmp (family, old[i]) != 0 )
+                {
+                        new[j++] = g_strdup (old[i]);
+                }
+        }
+
+        g_settings_set_strv (this->priv->history, "recent-fonts",
+                             (const gchar * const *)new);
+
+        g_strfreev (old);
+        g_strfreev (new);
+}
+
+
+/*****************************************************************************/
+/* History changed callback.                                                 */
+/*****************************************************************************/
+static void
+history_changed_cb                  (glFontHistoryModel  *this)
+{
+        g_signal_emit (G_OBJECT(this), signals[CHANGED], 0);
+}
+
+
+/*****************************************************************************/
+/* Get list of font families.                                                */
+/*****************************************************************************/
+GList *
+gl_font_history_model_get_family_list (glFontHistoryModel *this)
+{
+        gchar **strv;
+        GList  *list = NULL;
+        gint    i;
+
+        strv = g_settings_get_strv (this->priv->history, "recent-fonts");
+
+        /*
+         * Proof read name list; transfer storage to new list.
+         */
+        for ( i = 0; strv[i]; i++ )
+        {
+                if ( gl_font_util_is_family_installed (strv[i]) )
+                {
+                        list = g_list_append (list, g_strdup (strv[i]));
+                }
+        }
+        g_strfreev (strv);
+
+        return list;
+}
+
+
+/*****************************************************************************/
+/* Free font family list.                                                    */
+/*****************************************************************************/
+void
+gl_font_history_model_free_family_list (GList *list)
+{
+        GList *p;
+
+        for ( p = list; p; p=p->next )
+        {
+                g_free (p->data);
+        }
+        g_list_free (list);
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/font-history-model.h b/src/font-history-model.h
new file mode 100644 (file)
index 0000000..690c3c7
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ *  font-history-model.h
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __GL_FONT_HISTORY_MODEL_H__
+#define __GL_FONT_HISTORY_MODEL_H__
+
+
+#include <glib-object.h>
+
+
+G_BEGIN_DECLS
+
+/* Utility Macros */
+#define TYPE_GL_FONT_HISTORY_MODEL              (gl_font_history_model_get_type ())
+#define GL_FONT_HISTORY_MODEL(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GL_FONT_HISTORY_MODEL, glFontHistoryModel))
+#define GL_FONT_HISTORY_MODEL_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GL_FONT_HISTORY_MODEL, glFontHistoryModelClass))
+#define IS_GL_FONT_HISTORY_MODEL(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GL_FONT_HISTORY_MODEL))
+#define IS_GL_FONT_HISTORY_MODEL_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GL_FONT_HISTORY_MODEL))
+#define GL_FONT_HISTORY_MODEL_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), TYPE_GL_FONT_HISTORY_MODEL, glFontHistoryModelClass))
+
+
+/* Type definitions */
+typedef struct _glFontHistoryModel          glFontHistoryModel;
+typedef struct _glFontHistoryModelPrivate   glFontHistoryModelPrivate;
+typedef struct _glFontHistoryModelClass     glFontHistoryModelClass;
+
+
+/** GL_FONT_HISTORY_MODEL Object */
+struct _glFontHistoryModel {
+        GObject                       parent;
+
+        glFontHistoryModelPrivate    *priv;
+};
+
+/** GL_FONT_HISTORY_MODEL Class */
+struct _glFontHistoryModelClass {
+        GObjectClass                  parent_class;
+
+        /*
+         * Signals
+         */
+        void (*changed)     (glFontHistoryModel     *this,
+                             gpointer                user_data);
+
+};
+
+
+GType                gl_font_history_model_get_type         (void) G_GNUC_CONST;
+
+glFontHistoryModel  *gl_font_history_model_new              (guint               n);
+
+void                 gl_font_history_model_add_family       (glFontHistoryModel *this,
+                                                             const gchar        *family);
+
+GList               *gl_font_history_model_get_family_list  (glFontHistoryModel *this);
+void                 gl_font_history_model_free_family_list (GList              *list);
+
+
+G_END_DECLS
+
+#endif /* __GL_FONT_HISTORY_MODEL_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/font-history.c b/src/font-history.c
new file mode 100644 (file)
index 0000000..ec076fc
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ *  font-history.c
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "font-history.h"
+
+
+#define MAX_FONTS 10
+
+
+/*========================================================*/
+/* Public globals.                                        */
+/*========================================================*/
+
+glFontHistoryModel *gl_font_history = NULL;
+
+
+/*========================================================*/
+/* Private types.                                         */
+/*========================================================*/
+
+/*========================================================*/
+/* Private globals.                                       */
+/*========================================================*/
+
+/*========================================================*/
+/* Private function prototypes.                           */
+/*========================================================*/
+
+
+/*****************************************************************************/
+/* Initialize font history.                                                  */
+/*****************************************************************************/
+void
+gl_font_history_init (void)
+{
+        gl_font_history = gl_font_history_model_new (MAX_FONTS);
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/font-history.h b/src/font-history.h
new file mode 100644 (file)
index 0000000..c877c7b
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ *  font-history.h
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __GL_FONT_HISTORY_H__
+#define __GL_FONT_HISTORY_H__
+
+
+#include "font-history-model.h"
+
+
+G_BEGIN_DECLS
+
+
+glFontHistoryModel *gl_font_history;
+
+
+void            gl_font_history_init (void);
+
+
+G_END_DECLS
+
+#endif /* __GL_FONT_HISTORY_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/font-sample.c b/src/font-sample.c
new file mode 100644 (file)
index 0000000..13d524d
--- /dev/null
@@ -0,0 +1,288 @@
+/*
+ *  font-sample.c
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "font-sample.h"
+
+#include "marshal.h"
+#include "color.h"
+
+
+/*===========================================*/
+/* Private macros and constants.             */
+/*===========================================*/
+
+#define MARGIN 2
+
+
+/*===========================================*/
+/* Private types                             */
+/*===========================================*/
+
+struct _glFontSamplePrivate {
+
+        gchar *sample_text;
+
+        gchar *font_family;
+};
+
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+static void       gl_font_sample_finalize     (GObject        *object);
+
+static void       style_set_cb                (GtkWidget      *widget,
+                                               GtkStyle       *previous_style);
+
+static void       redraw                      (glFontSample   *this);
+
+static gboolean   draw_cb                     (GtkWidget      *widget,
+                                               cairo_t        *cr);
+
+static void       draw_sample                 (glFontSample   *this,
+                                               cairo_t        *cr);
+
+
+
+/****************************************************************************/
+/* Boilerplate Object stuff.                                                */
+/****************************************************************************/
+G_DEFINE_TYPE (glFontSample, gl_font_sample, GTK_TYPE_DRAWING_AREA)
+
+
+/*****************************************************************************/
+/* Class Init Function.                                                      */
+/*****************************************************************************/
+static void
+gl_font_sample_class_init (glFontSampleClass *class)
+{
+       GObjectClass   *gobject_class = G_OBJECT_CLASS (class);
+       GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
+
+        gl_font_sample_parent_class = g_type_class_peek_parent (class);
+
+       gobject_class->finalize    = gl_font_sample_finalize;
+
+        widget_class->style_set    = style_set_cb;
+        widget_class->draw         = draw_cb;
+}
+
+
+/*****************************************************************************/
+/* Object Instance Init Function.                                            */
+/*****************************************************************************/
+static void
+gl_font_sample_init (glFontSample *this)
+{
+        gtk_widget_set_has_window (GTK_WIDGET (this), FALSE);
+
+       this->priv = g_new0 (glFontSamplePrivate, 1);
+}
+
+
+/*****************************************************************************/
+/* Finalize Method.                                                          */
+/*****************************************************************************/
+static void
+gl_font_sample_finalize (GObject *object)
+{
+       glFontSample *this = GL_FONT_SAMPLE (object);
+
+       g_return_if_fail (object != NULL);
+       g_return_if_fail (GL_IS_FONT_SAMPLE (object));
+
+        g_free (this->priv->sample_text);
+        g_free (this->priv->font_family);
+       g_free (this->priv);
+
+       G_OBJECT_CLASS (gl_font_sample_parent_class)->finalize (object);
+}
+
+
+/*****************************************************************************/
+/** New Object Generator.                                                    */
+/*****************************************************************************/
+GtkWidget *
+gl_font_sample_new (gint         w,
+                    gint         h,
+                    const gchar *sample_text,
+                    const gchar *font_family)
+{
+       glFontSample *this;
+
+       this = g_object_new (GL_TYPE_FONT_SAMPLE, NULL);
+
+        this->priv->sample_text = g_strdup (sample_text);
+        this->priv->font_family = g_strdup (font_family);
+
+        gtk_widget_set_size_request (GTK_WIDGET (this), w, h);
+
+       return GTK_WIDGET (this);
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Style set handler (updates colors when style/theme changes).             */
+/*--------------------------------------------------------------------------*/
+static void
+style_set_cb (GtkWidget        *widget,
+              GtkStyle         *previous_style)
+{
+        redraw (GL_FONT_SAMPLE (widget));
+}
+
+
+/*****************************************************************************/
+/* Request redraw.                                                           */
+/*****************************************************************************/
+static void
+redraw (glFontSample  *this)
+{
+        GdkWindow     *window;
+        GtkAllocation  allocation;
+
+        window = gtk_widget_get_window (GTK_WIDGET (this));
+
+        if (window)
+        {
+                gtk_widget_get_allocation (GTK_WIDGET (this), &allocation);
+                gdk_window_invalidate_rect (window, &allocation, FALSE);
+        }
+}
+
+
+/*****************************************************************************/
+/* "Expose event" callback.                                                  */
+/*****************************************************************************/
+static gboolean
+draw_cb (GtkWidget      *widget,
+         cairo_t        *cr)
+{
+       draw_sample (GL_FONT_SAMPLE (widget), cr);
+
+       return FALSE;
+}
+
+
+/*****************************************************************************/
+/* Draw sample.                                                              */
+/*****************************************************************************/
+static void
+draw_sample (glFontSample *this,
+             cairo_t       *cr)
+{
+        GtkAllocation         allocation;
+        GtkStyle             *style;
+        gdouble               w, h;
+        guint                 fill_color, line_color;
+        PangoLayout          *layout;
+        PangoFontDescription *desc;
+        PangoRectangle        ink_rect, logical_rect;
+        gdouble               layout_x, layout_y, layout_width, layout_height;
+
+
+        gtk_widget_get_allocation (GTK_WIDGET (this), &allocation);
+        w = allocation.width;
+        h = allocation.height;
+
+
+        style = gtk_widget_get_style (GTK_WIDGET (this));
+        if ( gtk_widget_is_sensitive (GTK_WIDGET (this)) )
+        {
+                fill_color = gl_color_from_gdk_color (&style->light[GTK_STATE_NORMAL]);
+                line_color = gl_color_from_gdk_color (&style->fg[GTK_STATE_NORMAL]);
+        }
+        else
+        {
+                fill_color = GL_COLOR_NONE;
+                line_color = gl_color_from_gdk_color (&style->fg[GTK_STATE_INSENSITIVE]);
+        }
+
+
+        cairo_set_antialias (cr, CAIRO_ANTIALIAS_NONE);
+
+        cairo_rectangle( cr, 1, 1, w-2, h-2 );
+
+        cairo_set_source_rgba (cr, GL_COLOR_RGBA_ARGS (fill_color));
+        cairo_fill_preserve( cr );
+
+        cairo_set_source_rgb (cr, GL_COLOR_RGB_ARGS (line_color));
+        cairo_set_line_width (cr, 1.0);
+        cairo_stroke (cr);
+
+
+        cairo_set_antialias (cr, CAIRO_ANTIALIAS_DEFAULT);
+
+
+        layout = pango_cairo_create_layout (cr);
+
+        desc = pango_font_description_new ();
+        pango_font_description_set_family (desc, this->priv->font_family);
+        pango_font_description_set_weight (desc, PANGO_WEIGHT_NORMAL);
+        pango_font_description_set_style  (desc, PANGO_STYLE_NORMAL);
+        pango_font_description_set_size   (desc, 0.6 * (h-1) * PANGO_SCALE);
+        
+        pango_layout_set_font_description (layout, desc);
+        pango_font_description_free       (desc);
+
+        pango_layout_set_text (layout, this->priv->sample_text, -1);
+        pango_layout_set_width (layout, -1);
+        pango_layout_get_pixel_extents (layout, &ink_rect, &logical_rect);
+        layout_width  = MAX (logical_rect.width, ink_rect.width);
+        layout_height = MAX (logical_rect.height, ink_rect.height);
+
+        layout_x = (w - layout_width) / 2.0;
+        layout_y = (h - layout_height) / 2.0;
+
+        if (ink_rect.x < logical_rect.x)
+        {
+                layout_x += logical_rect.x - ink_rect.x;
+        }
+
+        if (ink_rect.y < logical_rect.y)
+        {
+                layout_y += logical_rect.y - ink_rect.y;
+        }
+
+        cairo_set_source_rgba (cr, GL_COLOR_RGBA_ARGS (line_color));
+        cairo_move_to (cr, layout_x, layout_y);
+        pango_cairo_show_layout (cr, layout);
+
+        g_object_unref (layout);
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/font-sample.h b/src/font-sample.h
new file mode 100644 (file)
index 0000000..7946e77
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ *  font-sample.h
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __FONT_SAMPLE_H__
+#define __FONT_SAMPLE_H__
+
+
+#include <gtk/gtk.h>
+
+
+G_BEGIN_DECLS
+
+#define GL_TYPE_FONT_SAMPLE (gl_font_sample_get_type ())
+#define GL_FONT_SAMPLE(obj) \
+        (G_TYPE_CHECK_INSTANCE_CAST((obj), GL_TYPE_FONT_SAMPLE, glFontSample ))
+#define GL_FONT_SAMPLE_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_FONT_SAMPLE, glFontSampleClass))
+#define GL_IS_FONT_SAMPLE(obj) \
+        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_FONT_SAMPLE))
+#define GL_IS_FONT_SAMPLE_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_FONT_SAMPLE))
+
+typedef struct _glFontSample        glFontSample;
+typedef struct _glFontSamplePrivate glFontSamplePrivate;
+typedef struct _glFontSampleClass   glFontSampleClass;
+
+struct _glFontSample {
+       GtkDrawingArea         parent_widget;
+
+       glFontSamplePrivate   *priv;
+};
+
+struct _glFontSampleClass {
+       GtkDrawingAreaClass    parent_class;
+};
+
+
+GType      gl_font_sample_get_type (void) G_GNUC_CONST;
+
+GtkWidget *gl_font_sample_new      (gint           w,
+                                    gint           h,
+                                    const gchar   *sample_text,
+                                    const gchar   *font_family);
+
+
+G_END_DECLS
+
+#endif /* __FONT_SAMPLE_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/font-util.c b/src/font-util.c
new file mode 100644 (file)
index 0000000..a9c67e9
--- /dev/null
@@ -0,0 +1,215 @@
+/*
+ *  font-util.h
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "font-util.h"
+
+#include <glib.h>
+#include <pango/pango.h>
+#include <pango/pangocairo.h>
+
+#include <libglabels.h>
+
+
+/****************************************************************************/
+/* Get list of all available font families.                                 */
+/****************************************************************************/
+const GList  *
+gl_font_util_get_all_families (void)
+{
+       static GList         *list = NULL;
+       PangoFontMap         *fontmap;
+       PangoContext         *context;
+       PangoFontFamily     **families;
+       gint                  n;
+       gint                  i;
+       gchar                *name;
+
+        if ( !list )
+        {
+                fontmap = pango_cairo_font_map_new ();
+                context = pango_cairo_font_map_create_context (PANGO_CAIRO_FONT_MAP (fontmap));
+
+                pango_context_list_families (context, &families, &n);
+
+                for ( i=0; i<n; i++ )
+                {
+                        name = g_strdup (pango_font_family_get_name (families[i]));
+                        list = g_list_insert_sorted (list, name,
+                                                     (GCompareFunc)lgl_str_utf8_casecmp);
+                }
+
+                g_free (families);
+
+                g_object_unref (context);
+                g_object_unref (fontmap);
+        }
+
+       return list;
+}
+
+
+/****************************************************************************/
+/* Get list of all available proportional font families.                    */
+/****************************************************************************/
+const GList  *
+gl_font_util_get_proportional_families (void)
+{
+       static GList         *list = NULL;
+       PangoFontMap         *fontmap;
+       PangoContext         *context;
+       PangoFontFamily     **families;
+       gint                  n;
+       gint                  i;
+       gchar                *name;
+
+        if ( !list )
+        {
+                fontmap = pango_cairo_font_map_new ();
+                context = pango_cairo_font_map_create_context (PANGO_CAIRO_FONT_MAP (fontmap));
+
+                pango_context_list_families (context, &families, &n);
+
+                for ( i=0; i<n; i++ )
+                {
+                        if ( !pango_font_family_is_monospace (families[i]) )
+                        {
+                                name = g_strdup (pango_font_family_get_name (families[i]));
+                                list = g_list_insert_sorted (list, name,
+                                                             (GCompareFunc)lgl_str_utf8_casecmp);
+                        }
+                }
+
+                g_free (families);
+
+                g_object_unref (context);
+                g_object_unref (fontmap);
+        }
+
+       return list;
+}
+
+
+/****************************************************************************/
+/* Get list of all available fixed-width font families.                     */
+/****************************************************************************/
+const GList  *
+gl_font_util_get_fixed_width_families (void)
+{
+       static GList         *list = NULL;
+       PangoFontMap         *fontmap;
+       PangoContext         *context;
+       PangoFontFamily     **families;
+       gint                  n;
+       gint                  i;
+       gchar                *name;
+
+        if ( !list )
+        {
+                fontmap = pango_cairo_font_map_new ();
+                context = pango_cairo_font_map_create_context (PANGO_CAIRO_FONT_MAP (fontmap));
+
+                pango_context_list_families (context, &families, &n);
+
+                for ( i=0; i<n; i++ )
+                {
+                        if ( pango_font_family_is_monospace (families[i]) )
+                        {
+                                name = g_strdup (pango_font_family_get_name (families[i]));
+                                list = g_list_insert_sorted (list, name,
+                                                             (GCompareFunc)lgl_str_utf8_casecmp);
+                        }
+                }
+
+                g_free (families);
+
+                g_object_unref (context);
+                g_object_unref (fontmap);
+        }
+
+       return list;
+}
+
+
+/****************************************************************************/
+/* Make sure we have a valid font.  If not provide a good default.          */
+/****************************************************************************/
+gchar *
+gl_font_util_validate_family (const gchar *family)
+{
+        const GList *installed_families;
+        gchar       *good_family;
+
+        installed_families = gl_font_util_get_all_families ();
+
+        if (g_list_find_custom ((GList *)installed_families,
+                                family,
+                                (GCompareFunc)g_utf8_collate))
+        {
+                good_family = g_strdup (family);
+        }
+        else if (g_list_find_custom ((GList *)installed_families,
+                                     "Sans",
+                                     (GCompareFunc)g_utf8_collate))
+        {
+                good_family = g_strdup ("Sans");
+        }
+        else if (installed_families != NULL)
+        {
+                good_family = g_strdup (installed_families->data); /* 1st entry */
+        }
+        else
+        {
+                good_family = NULL;
+        }
+
+        return good_family;
+}
+
+
+/****************************************************************************/
+/* Test if font is installed.                                               */
+/****************************************************************************/
+gboolean
+gl_font_util_is_family_installed (const gchar *family)
+{
+        const GList *installed_families;
+        GList       *p;
+
+        installed_families = gl_font_util_get_all_families ();
+
+        p = g_list_find_custom ((GList *)installed_families,
+                                family,
+                                (GCompareFunc)g_utf8_collate);
+
+        return (p != NULL);
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/font-util.h b/src/font-util.h
new file mode 100644 (file)
index 0000000..39f049b
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ *  font-util.h
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __FONT_UTIL_H__
+#define __FONT_UTIL_H__
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+const GList *gl_font_util_get_all_families          (void);
+const GList *gl_font_util_get_proportional_families (void);
+const GList *gl_font_util_get_fixed_width_families  (void);
+
+gchar       *gl_font_util_validate_family           (const gchar *family);
+gboolean     gl_font_util_is_family_installed       (const gchar *family);
+
+G_END_DECLS
+
+#endif /* __FONT_UTIL_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 41ebf9d657d75f837a441d86a9b76299e7205810..fb5cc7afa376253b3ebf099579dd5edc3f401667 100644 (file)
@@ -1,38 +1,37 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  glabels.c: main program module
+ *  glabels-batch.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 
 #include <glib/gi18n.h>
-#include <libgnome/libgnome.h>
 
+#include <math.h>
+
+#include <libglabels.h>
 #include "merge-init.h"
+#include "template-history.h"
+#include "font-history.h"
 #include "xml-label.h"
 #include "print.h"
 #include "print-op.h"
-#include <libglabels/db.h>
-#include "util.h"
+#include "file-util.h"
 #include "prefs.h"
 #include "debug.h"
 
@@ -80,29 +79,37 @@ int
 main (int argc, char **argv)
 {
        GOptionContext    *option_context;
-        GnomeProgram      *program;
         GList             *p, *file_list = NULL;
         gchar             *abs_fn;
         glLabel           *label = NULL;
         glMerge           *merge = NULL;
+        const lglTemplate *template;
+        lglTemplateFrame  *frame;
         glXMLLabelStatus   status;
         glPrintOp         *print_op;
        gchar             *utf8_filename;
+        GError            *error = NULL;
 
-        bindtextdomain (GETTEXT_PACKAGE, GLABELS_LOCALEDIR);
+        bindtextdomain (GETTEXT_PACKAGE, GLABELS_LOCALE_DIR);
        bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
         textdomain (GETTEXT_PACKAGE);
 
-       option_context = g_option_context_new (_("- batch process gLabels label files"));
+       option_context = g_option_context_new (NULL);
+        g_option_context_set_summary (option_context,
+                                      _("Print files created with gLabels."));
        g_option_context_add_main_entries (option_context, option_entries, GETTEXT_PACKAGE);
 
 
         /* Initialize minimal gnome program */
-        program = gnome_program_init ("glabels-batch", VERSION,
-                                      LIBGNOME_MODULE, argc, argv,
-                                     GNOME_PARAM_GOPTION_CONTEXT, option_context,
-                                      GNOME_PROGRAM_STANDARD_PROPERTIES,
-                                      NULL);
+        gtk_init_check (&argc, &argv);
+        if (!g_option_context_parse (option_context, &argc, &argv, &error))
+       {
+               g_print(_("%s\nRun '%s --help' to see a full list of available command line options.\n"),
+                       error->message, argv[0]);
+               g_error_free (error);
+               return 1;
+       }
+
 
         /* create file list */
        if (remaining_args != NULL) {
@@ -123,6 +130,8 @@ main (int argc, char **argv)
         gl_merge_init ();
         lgl_db_init ();
        gl_prefs_init ();
+       gl_template_history_init ();
+       gl_font_history_init ();
 
         /* now print the files */
         for (p = file_list; p; p = p->next) {
@@ -132,27 +141,40 @@ main (int argc, char **argv)
 
                 if ( status == XML_LABEL_OK ) {
 
+                        merge = gl_label_get_merge (label);
                         if (input != NULL) {
-                                merge = gl_label_get_merge (label);
                                 if (merge != NULL) {
                                         gl_merge_set_src(merge, input);
-                                        gl_label_set_merge(label, merge);
+                                        gl_label_set_merge(label, merge, FALSE);
                                 } else {
                                         fprintf ( stderr,
                                                   _("cannot perform document merge with glabels file %s\n"),
                                                   (char *)p->data );
                                 }
                         }
-                        abs_fn = gl_util_make_absolute ( output );
-                        print_op = gl_print_op_new_batch (label,
-                                                          abs_fn,
-                                                          n_sheets,
-                                                          n_copies,
-                                                          first,
-                                                          outline_flag,
-                                                          reverse_flag,
-                                                          crop_marks_flag);
-
+                        abs_fn = gl_file_util_make_absolute ( output );
+                        template = gl_label_get_template (label);
+                        frame = (lglTemplateFrame *)template->frames->data;
+
+                        print_op = gl_print_op_new (label);
+                        gl_print_op_set_filename        (print_op, abs_fn);
+                        gl_print_op_set_n_copies        (print_op, n_copies);
+                        gl_print_op_set_first           (print_op, first);
+                        gl_print_op_set_outline_flag    (print_op, outline_flag);
+                        gl_print_op_set_reverse_flag    (print_op, reverse_flag);
+                        gl_print_op_set_crop_marks_flag (print_op, crop_marks_flag);
+                        if (merge)
+                        {
+                                gl_print_op_set_n_sheets (print_op,
+                                                          ceil ((double)(first-1 + n_copies * gl_merge_get_record_count(merge))
+                                                                / lgl_template_frame_get_n_labels (frame)));
+                        }
+                        else
+                        {
+                                gl_print_op_set_n_sheets (print_op, n_sheets);
+                                gl_print_op_set_last     (print_op,
+                                                          lgl_template_frame_get_n_labels (frame));
+                        }
                         gtk_print_operation_run (GTK_PRINT_OPERATION (print_op),
                                                  GTK_PRINT_OPERATION_ACTION_EXPORT,
                                                  NULL,
@@ -171,3 +193,14 @@ main (int argc, char **argv)
         return 0;
 }
 
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 832b08213c22d3ad30c027906e9eab21f324731c..c8ffe17774ba46ee81967e7c726a5beb2948edf0 100644 (file)
@@ -1,67 +1,55 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/**
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  glabels.c:  GLabels main module
+/*
+ *  glabels.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 
 #include <glib/gi18n.h>
-#include <libgnome/libgnome.h>
-#include <libgnomeui/libgnomeui.h>
-#include <libgnomeui/gnome-window-icon.h>
 
+#include <libglabels.h>
 #include "warning-handler.h"
 #include "critical-error-handler.h"
-#include "stock.h"
 #include "merge-init.h"
 #include "recent.h"
-#include <libglabels/db.h>
 #include "mini-preview-pixbuf-cache.h"
 #include "prefs.h"
+#include "font-history.h"
+#include "template-history.h"
 #include "debug.h"
 #include "window.h"
 #include "file.h"
 
+
 /*========================================================*/
 /* Private macros and constants.                          */
 /*========================================================*/
 
+
 /*========================================================*/
 /* Private globals                                        */
 /*========================================================*/
 
+
 /*========================================================*/
 /* Local function prototypes                              */
 /*========================================================*/
-gboolean save_session_cb (GnomeClient        *client,
-                         gint                phase,
-                         GnomeRestartStyle   save_style,
-                         gint                shutdown,
-                         GnomeInteractStyle  interact_style,
-                         gint                fast,
-                         gpointer            client_data);
 
-void client_die_cb       (GnomeClient        *client,
-                         gpointer            client_data);
 
 /****************************************************************************/
 /* main program                                                             */
@@ -77,64 +65,54 @@ main (int argc, char **argv)
        };
 
        GOptionContext *option_context;
-       GnomeProgram   *program;
-       gchar          *icon_file;
-       GnomeClient    *client;
        GList          *file_list = NULL, *p;
        GtkWidget      *win;
        gchar          *utf8_filename;
+        GError         *error = NULL;
 
-       bindtextdomain (GETTEXT_PACKAGE, GLABELS_LOCALEDIR);
+       bindtextdomain (GETTEXT_PACKAGE, GLABELS_LOCALE_DIR);
        bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
        textdomain (GETTEXT_PACKAGE);
 
-       option_context = g_option_context_new (_("- gLabels label designer"));
+       option_context = g_option_context_new (NULL);
+        g_option_context_set_summary (option_context,
+                                      _("Launch gLabels label and business card designer."));
        g_option_context_add_main_entries (option_context, option_entries, GETTEXT_PACKAGE);
 
 
-       /* Initialize gnome program */
-       program = gnome_program_init ("glabels", VERSION,
-                                     LIBGNOMEUI_MODULE, argc, argv,
-                                     GNOME_PARAM_GOPTION_CONTEXT, option_context,
-                                     GNOME_PROGRAM_STANDARD_PROPERTIES,
-                                     NULL);
+       /* Initialize program */
+        gtk_init( &argc, &argv );
+        if (!g_option_context_parse (option_context, &argc, &argv, &error))
+       {
+               g_print(_("%s\nRun '%s --help' to see a full list of available command line options.\n"),
+                       error->message, argv[0]);
+               g_error_free (error);
+               return 1;
+       }
+
 
        /* Install GUI handlers for critical error and warning messages */
        gl_critical_error_handler_init();
        gl_warning_handler_init();
 
-       /* Set default icon */
-       icon_file = GLABELS_ICON_DIR "glabels.png";
-       if (!g_file_test (icon_file, G_FILE_TEST_EXISTS))
-       {
-               g_message ("Could not find %s", icon_file);
-       }
-       else
-       {
-               gnome_window_icon_set_default_from_file (icon_file);
-       }
+       /* Add glabels specific icons to search path */
+        gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (),
+                                           GLABELS_DATA_DIR G_DIR_SEPARATOR_S "icons");
 
+       /* Set default icon */
+        gtk_window_set_default_icon_name (GLABELS_ICON_NAME);
        
        /* Initialize subsystems */
        gl_debug_init ();
-       gl_stock_init ();
        lgl_db_init ();
        gl_prefs_init ();
        gl_mini_preview_pixbuf_cache_init ();
        gl_merge_init ();
        gl_recent_init ();
+        gl_template_history_init ();
+        gl_font_history_init ();
        
 
-       client = gnome_master_client();
-
-       g_signal_connect (G_OBJECT (client), "save_yourself",
-                         G_CALLBACK (save_session_cb),
-                         (gpointer)argv[0]);
-
-       g_signal_connect (G_OBJECT (client), "die",
-                         G_CALLBACK (client_die_cb), NULL);
-
-
        /* Parse args and build the list of files to be loaded at startup */
        if (remaining_args != NULL) {
                gint i, num_args;
@@ -166,53 +144,16 @@ main (int argc, char **argv)
        /* Begin main loop */
        gtk_main();
 
-       g_object_unref (G_OBJECT (program));
-
        return 0;
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  "Save session" callback.                                        */
-/*---------------------------------------------------------------------------*/
-gboolean save_session_cb (GnomeClient        *client,
-                         gint                phase,
-                         GnomeRestartStyle   save_style,
-                         gint                shutdown,
-                         GnomeInteractStyle  interact_style,
-                         gint                fast,
-                         gpointer            client_data)
-{
-       gchar       *argv[128];
-       gint         argc;
-       const GList *window_list;
-       GList       *p;
-       glWindow    *window;
-       glLabel     *label;
-
-       argv[0] = (gchar *)client_data;
-       argc = 1;
-
-       window_list = gl_window_get_window_list();
-       for ( p=(GList *)window_list; p != NULL; p=p->next ) {
-               window = GL_WINDOW(p->data);
-               if ( !gl_window_is_empty (window) ) {
-                       label = GL_VIEW(window->view)->label;
-                       argv[argc++] = gl_label_get_filename (label);
-               }
-       }
-       gnome_client_set_clone_command(client, argc, argv);
-       gnome_client_set_restart_command(client, argc, argv);
-       
-       return TRUE;
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  "Die" callback.                                                 */
-/*---------------------------------------------------------------------------*/
-void client_die_cb (GnomeClient *client,
-                   gpointer     client_data)
-{
-       gl_file_exit ();
-}
 
 
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/hig.h b/src/hig.h
deleted file mode 100644 (file)
index 6b4c249..0000000
--- a/src/hig.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  hig.h:  HIG inspired dialogs and layout tools
- *
- *  Copyright (C) 2002  Jim Evins <evins@snaught.com>.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-
-#ifndef __HIG_H__
-#define __HIG_H__
-
-G_BEGIN_DECLS
-
-#define GL_HIG_PAD1   6
-#define GL_HIG_PAD2  12
-
-G_END_DECLS
-
-#endif /* __HIG_H__ */
index 1f008ed59aa74ff421de2c21e042c93ed2866574..9a98187ea3e57427e34356454d46418335c332ae 100644 (file)
@@ -1,35 +1,31 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  label_barcode.c:  GLabels label text object
+ *  label-barcode.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
+
 #include "label-barcode.h"
 
+#include <glib.h>
 #include <glib/gi18n.h>
-#include <glib/gmem.h>
-#include <glib/gstrfuncs.h>
-#include <glib/gmessages.h>
-#include <cairo.h>
 #include <pango/pangocairo.h>
+#include "bc-backends.h"
 
 #include "debug.h"
 
 /*========================================================*/
 
 #define FONT_SCALE (72.0/96.0)
+#define PI 3.141592654
+
+#define GL_BARCODE_FONT_FAMILY      "Sans"
+
+#define HANDLE_OUTLINE_RGBA_ARGS   0.5,   0.5,   0.5,   0.75
+#define HANDLE_OUTLINE_WIDTH_PIXELS   2.0
+
+#define SELECTION_SLOP_PIXELS 4.0
+
 
 /*========================================================*/
 /* Private types.                                         */
 /*========================================================*/
 
 struct _glLabelBarcodePrivate {
-       glTextNode     *text_node;
-       gchar          *id;
-       glColorNode    *color_node;
-       gboolean        text_flag;
-       gboolean        checksum_flag;
-       guint           format_digits;
+
+        glTextNode          *text_node;
+        glLabelBarcodeStyle *style;
+        glColorNode         *color_node;
+
+        /* Cached info.  Only regenerate when text_node,
+         * style, or raw size changed */
+        lglBarcode          *display_gbc;
+        gdouble              w, h;
+
 };
 
+
 /*========================================================*/
 /* Private globals.                                       */
 /*========================================================*/
 
+
 /*========================================================*/
 /* Private function prototypes.                           */
 /*========================================================*/
@@ -63,85 +74,137 @@ struct _glLabelBarcodePrivate {
 static void  gl_label_barcode_finalize      (GObject             *object);
 
 static void  copy                           (glLabelObject       *dst_object,
-                                            glLabelObject       *src_object);
+                                             glLabelObject       *src_object);
+
+static void  update_barcode                 (glLabelBarcode      *lbc);
+
+static void  set_size                       (glLabelObject       *object,
+                                             gdouble              w,
+                                             gdouble              h,
+                                             gboolean             checkpoint);
 
 static void  get_size                       (glLabelObject       *object,
-                                            gdouble             *w,
-                                            gdouble             *h);
+                                             gdouble             *w,
+                                             gdouble             *h);
 
 static void  set_line_color                 (glLabelObject       *object,
-                                            glColorNode         *line_color);
+                                             glColorNode         *line_color,
+                                             gboolean             checkpoint);
 
 static glColorNode *get_line_color          (glLabelObject       *object);
 
-static void    draw_object                (glLabelObject     *object,
-                                           cairo_t           *cr,
-                                           gboolean           screen_flag,
-                                           glMergeRecord     *record);
+static void     draw_object                 (glLabelObject       *object,
+                                             cairo_t             *cr,
+                                             gboolean             screen_flag,
+                                             glMergeRecord       *record);
+
+static gboolean object_at                   (glLabelObject       *object,
+                                             cairo_t             *cr,
+                                             gdouble              x_pixels,
+                                             gdouble              y_pixels);
+
+static void     draw_handles                (glLabelObject       *object,
+                                             cairo_t             *cr);
+
+static void     create_alt_msg_path         (cairo_t             *cr,
+                                             gchar               *text);
 
 
-\f
 /*****************************************************************************/
 /* Boilerplate object stuff.                                                 */
 /*****************************************************************************/
-G_DEFINE_TYPE (glLabelBarcode, gl_label_barcode, GL_TYPE_LABEL_OBJECT);
+G_DEFINE_TYPE (glLabelBarcode, gl_label_barcode, GL_TYPE_LABEL_OBJECT)
+
 
 static void
 gl_label_barcode_class_init (glLabelBarcodeClass *class)
 {
-       GObjectClass       *object_class       = G_OBJECT_CLASS (class);
-       glLabelObjectClass *label_object_class = GL_LABEL_OBJECT_CLASS (class);
+        GObjectClass       *object_class       = G_OBJECT_CLASS (class);
+        glLabelObjectClass *label_object_class = GL_LABEL_OBJECT_CLASS (class);
 
-       gl_label_barcode_parent_class = g_type_class_peek_parent (class);
+        gl_label_barcode_parent_class = g_type_class_peek_parent (class);
 
-       label_object_class->copy           = copy;
-       label_object_class->get_size       = get_size;
-       label_object_class->set_line_color = set_line_color;
-       label_object_class->get_line_color = get_line_color;
+        label_object_class->copy           = copy;
+        label_object_class->set_size       = set_size;
+        label_object_class->get_size       = get_size;
+        label_object_class->set_line_color = set_line_color;
+        label_object_class->get_line_color = get_line_color;
         label_object_class->draw_object    = draw_object;
         label_object_class->draw_shadow    = NULL;
+        label_object_class->object_at      = object_at;
+        label_object_class->draw_handles   = draw_handles;
 
-       object_class->finalize = gl_label_barcode_finalize;
+        object_class->finalize = gl_label_barcode_finalize;
 }
 
+
 static void
 gl_label_barcode_init (glLabelBarcode *lbc)
 {
-       lbc->priv = g_new0 (glLabelBarcodePrivate, 1);
-       lbc->priv->color_node = gl_color_node_new_default ();
-       lbc->priv->text_node  = gl_text_node_new_from_text ("");
+        lbc->priv = g_new0 (glLabelBarcodePrivate, 1);
+        lbc->priv->text_node  = gl_text_node_new_from_text ("");
 }
 
+
 static void
 gl_label_barcode_finalize (GObject *object)
 {
-       glLabelBarcode *lbc = GL_LABEL_BARCODE (object);
+        glLabelBarcode *lbc = GL_LABEL_BARCODE (object);
 
-       g_return_if_fail (object && GL_IS_LABEL_BARCODE (object));
+        g_return_if_fail (object && GL_IS_LABEL_BARCODE (object));
 
-       gl_text_node_free (&lbc->priv->text_node);
-       g_free (lbc->priv->id);
-       gl_color_node_free (&(lbc->priv->color_node));
-       g_free (lbc->priv);
+        gl_text_node_free (&lbc->priv->text_node);
+        gl_label_barcode_style_free (lbc->priv->style);
+        gl_color_node_free (&(lbc->priv->color_node));
+        lgl_barcode_free (lbc->priv->display_gbc);
+        g_free (lbc->priv);
 
-       G_OBJECT_CLASS (gl_label_barcode_parent_class)->finalize (object);
+        G_OBJECT_CLASS (gl_label_barcode_parent_class)->finalize (object);
 }
 
+
 /*****************************************************************************/
 /* NEW label "barcode" object.                                               */
 /*****************************************************************************/
 GObject *
-gl_label_barcode_new (glLabel *label)
+gl_label_barcode_new (glLabel *label,
+                      gboolean checkpoint)
 {
-       glLabelBarcode *lbc;
+        glLabelBarcode      *lbc;
+        glLabelBarcodeStyle *style;
+        glColorNode         *line_color_node;
+
+        lbc = g_object_new (gl_label_barcode_get_type(), NULL);
 
-       lbc = g_object_new (gl_label_barcode_get_type(), NULL);
+        if (label != NULL)
+        {
+                if ( checkpoint )
+                {
+                        gl_label_checkpoint (label, _("Create barcode object"));
+                }
 
-       gl_label_object_set_parent (GL_LABEL_OBJECT(lbc), label);
+                /* Default barcode style and properties. */
+                style = gl_label_barcode_style_new ();
+                gl_label_barcode_style_set_backend_id (style, gl_barcode_backends_backend_name_to_id (NULL));
+                gl_label_barcode_style_set_style_id (style, gl_barcode_backends_style_name_to_id (style->backend_id, NULL));
+                style->text_flag     = gl_barcode_backends_style_can_text (style->backend_id, style->id);
+                style->checksum_flag = gl_barcode_backends_style_can_csum (style->backend_id, style->id);
+                style->format_digits = gl_barcode_backends_style_get_prefered_n (style->backend_id, style->id);
+                lbc->priv->style = style;
+                update_barcode (lbc);
+
+                line_color_node = gl_color_node_new_default ();
+                line_color_node->color = gl_label_get_default_line_color(label);
+                lbc->priv->color_node = line_color_node;
+
+                gl_label_add_object (label, GL_LABEL_OBJECT (lbc));
+                gl_label_object_set_parent (GL_LABEL_OBJECT (lbc), label);
+        }
 
-       return G_OBJECT (lbc);
+        return G_OBJECT (lbc);
 }
 
+
 /*****************************************************************************/
 /* Copy object contents.                                                     */
 /*****************************************************************************/
@@ -149,33 +212,28 @@ static void
 copy (glLabelObject *dst_object,
       glLabelObject *src_object)
 {
-       glLabelBarcode      *lbc     = (glLabelBarcode *)src_object;
-       glLabelBarcode      *new_lbc = (glLabelBarcode *)dst_object;
-       glTextNode          *text_node;
-       gchar               *id;
-       gboolean             text_flag;
-       gboolean             checksum_flag;
-       glColorNode         *color_node;
-       guint                format_digits;
+        glLabelBarcode      *lbc     = (glLabelBarcode *)src_object;
+        glLabelBarcode      *new_lbc = (glLabelBarcode *)dst_object;
+        glTextNode          *text_node;
+        glLabelBarcodeStyle *style;
+        glColorNode         *color_node;
 
-       gl_debug (DEBUG_LABEL, "START");
+        gl_debug (DEBUG_LABEL, "START");
 
-       g_return_if_fail (lbc && GL_IS_LABEL_BARCODE (lbc));
-       g_return_if_fail (new_lbc && GL_IS_LABEL_BARCODE (new_lbc));
+        g_return_if_fail (lbc && GL_IS_LABEL_BARCODE (lbc));
+        g_return_if_fail (new_lbc && GL_IS_LABEL_BARCODE (new_lbc));
 
-       text_node = gl_label_barcode_get_data (lbc);
-       gl_label_barcode_get_props (lbc, &id, &text_flag, &checksum_flag, &format_digits);
-       color_node = get_line_color (src_object);
+        text_node = gl_label_barcode_get_data (lbc);
+        style = gl_label_barcode_get_style (lbc);
+        color_node = get_line_color (src_object);
 
-       gl_label_barcode_set_data (new_lbc, text_node);
-       gl_label_barcode_set_props (new_lbc, id, text_flag, checksum_flag, format_digits);
-       set_line_color (dst_object, color_node);
+        new_lbc->priv->text_node  = text_node;
+        new_lbc->priv->style      = style;
+        new_lbc->priv->color_node = color_node;
 
-       gl_color_node_free (&color_node);
-       gl_text_node_free (&text_node);
-       g_free (id);
+        update_barcode (new_lbc);
 
-       gl_debug (DEBUG_LABEL, "END");
+        gl_debug (DEBUG_LABEL, "END");
 }
 
 
@@ -183,52 +241,64 @@ copy (glLabelObject *dst_object,
 /* Set object params.                                                        */
 /*****************************************************************************/
 void
-gl_label_barcode_set_data (glLabelBarcode *lbc,
-                          glTextNode     *text_node)
+gl_label_barcode_set_data (glLabelBarcode   *lbc,
+                           const glTextNode *text_node,
+                           gboolean          checkpoint)
 {
-       gl_debug (DEBUG_LABEL, "START");
+        glLabel *label;
 
-       g_return_if_fail (lbc && GL_IS_LABEL_BARCODE (lbc));
+        gl_debug (DEBUG_LABEL, "START");
 
-       if (!gl_text_node_equal (lbc->priv->text_node, text_node)) {
+        g_return_if_fail (lbc && GL_IS_LABEL_BARCODE (lbc));
 
-               gl_text_node_free (&lbc->priv->text_node);
-               lbc->priv->text_node = gl_text_node_dup (text_node);
+        if (!gl_text_node_equal (lbc->priv->text_node, text_node))
+        {
+                if ( checkpoint )
+                {
+                        label = gl_label_object_get_parent (GL_LABEL_OBJECT (lbc));
+                        gl_label_checkpoint (label, _("Barcode data"));
+                }
+                
+                gl_text_node_free (&lbc->priv->text_node);
+                lbc->priv->text_node = gl_text_node_dup (text_node);
 
-               gl_label_object_emit_changed (GL_LABEL_OBJECT(lbc));
+                update_barcode (lbc);
 
-       }
+                gl_label_object_emit_changed (GL_LABEL_OBJECT(lbc));
+        }
 
-       gl_debug (DEBUG_LABEL, "END");
+        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 void
-gl_label_barcode_set_props (glLabelBarcode *lbc,
-                           gchar          *id,
-                           gboolean        text_flag,
-                           gboolean        checksum_flag,
-                           guint           format_digits)
+gl_label_barcode_set_style (glLabelBarcode            *lbc,
+                            const glLabelBarcodeStyle *style,
+                            gboolean                   checkpoint)
 {
-       gl_debug (DEBUG_LABEL, "START");
+        glLabel *label;
+
+        gl_debug (DEBUG_LABEL, "START");
 
-       g_return_if_fail (lbc && GL_IS_LABEL_BARCODE (lbc));
+        g_return_if_fail (lbc && GL_IS_LABEL_BARCODE (lbc));
 
-       if ( ((lbc->priv->id == NULL) && (id != NULL))
-            || (g_strcasecmp (lbc->priv->id, id) != 0)
-            || (lbc->priv->text_flag != text_flag)
-            || (lbc->priv->checksum_flag != checksum_flag)
-            || (lbc->priv->format_digits != format_digits)) {
+        if ( !gl_label_barcode_style_is_equal (style, lbc->priv->style) )
+        {
+                if ( checkpoint )
+                {
+                        label = gl_label_object_get_parent (GL_LABEL_OBJECT (lbc));
+                        gl_label_checkpoint (label, _("Barcode property"));
+                }
 
-               lbc->priv->id               = g_strdup (id);
-               lbc->priv->text_flag        = text_flag;
-               lbc->priv->checksum_flag    = checksum_flag;
-               lbc->priv->format_digits    = format_digits;
+                gl_label_barcode_style_free (lbc->priv->style);
+                lbc->priv->style = gl_label_barcode_style_dup (style);
 
-               gl_label_object_emit_changed (GL_LABEL_OBJECT(lbc));
+                update_barcode (lbc);
 
-       }
+                gl_label_object_emit_changed (GL_LABEL_OBJECT(lbc));
+        }
 
-       gl_debug (DEBUG_LABEL, "END");
+        gl_debug (DEBUG_LABEL, "END");
 }
 
 
@@ -238,122 +308,180 @@ gl_label_barcode_set_props (glLabelBarcode *lbc,
 glTextNode *
 gl_label_barcode_get_data (glLabelBarcode *lbc)
 {
-       g_return_val_if_fail (lbc && GL_IS_LABEL_BARCODE (lbc), NULL);
+        g_return_val_if_fail (lbc && GL_IS_LABEL_BARCODE (lbc), NULL);
 
-       return gl_text_node_dup (lbc->priv->text_node);
+        return gl_text_node_dup (lbc->priv->text_node);
 }
 
-void
-gl_label_barcode_get_props (glLabelBarcode *lbc,
-                           gchar          **id,
-                           gboolean       *text_flag,
-                           gboolean       *checksum_flag,
-                           guint          *format_digits)
+
+glLabelBarcodeStyle *
+gl_label_barcode_get_style (glLabelBarcode *lbc)
 {
-       g_return_if_fail (lbc && GL_IS_LABEL_BARCODE (lbc));
+        g_return_val_if_fail (lbc && GL_IS_LABEL_BARCODE (lbc), NULL);
 
-       *id               = g_strdup (lbc->priv->id);
-       *text_flag        = lbc->priv->text_flag;
-       *checksum_flag    = lbc->priv->checksum_flag;
-       *format_digits    = lbc->priv->format_digits;
+        return gl_label_barcode_style_dup (lbc->priv->style);
 }
 
+
 /*---------------------------------------------------------------------------*/
-/* PRIVATE.  Get object size method.                                         */
+/* PRIVATE.  Update cached lglBarcode.                                       */
 /*---------------------------------------------------------------------------*/
 static void
-get_size (glLabelObject *object,
-         gdouble       *w,
-         gdouble       *h)
+update_barcode (glLabelBarcode *lbc)
 {
-       glLabelBarcode      *lbc = (glLabelBarcode *)object;
-       gchar               *data;
-       gdouble              w_parent, h_parent;
-       glBarcode           *gbc;
-
-       gl_debug (DEBUG_LABEL, "START");
-
-       g_return_if_fail (lbc && GL_IS_LABEL_BARCODE (lbc));
-
-       gl_label_object_get_raw_size (object, &w_parent, &h_parent);
-
-       if (lbc->priv->text_node->field_flag) {
-               data = gl_barcode_default_digits (lbc->priv->id,
-                                                 lbc->priv->format_digits);
-       } else {
-               data = gl_text_node_expand (lbc->priv->text_node, NULL);
-       }
-
-       gbc = gl_barcode_new (lbc->priv->id,
-                             lbc->priv->text_flag,
-                             lbc->priv->checksum_flag,
-                             w_parent,
-                             h_parent,
-                             data);
-       g_free (data);
-
-       if ( gbc == NULL ) {
-               /* Try again with default digits. */
-               data = gl_barcode_default_digits (lbc->priv->id,
-                                                 lbc->priv->format_digits);
-               gbc = gl_barcode_new (lbc->priv->id,
-                                     lbc->priv->text_flag,
-                                     lbc->priv->checksum_flag,
-                                     w_parent,
-                                     h_parent,
-                                     data);
-                g_free (data);
-       }
+        gdouble              w_raw, h_raw;
+        gchar               *data;
+
+        gl_debug (DEBUG_LABEL, "START");
 
-        if ( gbc != NULL )
+        g_return_if_fail (lbc && GL_IS_LABEL_BARCODE (lbc));
+
+        gl_label_object_get_raw_size (GL_LABEL_OBJECT (lbc), &w_raw, &h_raw);
+
+        lgl_barcode_free (lbc->priv->display_gbc);
+
+        if (lbc->priv->text_node->field_flag)
         {
-                *w = gbc->width;
-                *h = gbc->height;
+                data = gl_barcode_backends_style_default_digits (lbc->priv->style->backend_id,
+                                                                 lbc->priv->style->id,
+                                                                 lbc->priv->style->format_digits);
         }
         else
         {
-                /* If we still can't render, just set a default size. */
-                *w = 144;
-                *h = 72;
+                data = gl_text_node_expand (lbc->priv->text_node, NULL);
         }
 
-       gl_barcode_free (&gbc);
+        lbc->priv->display_gbc = gl_barcode_backends_new_barcode (lbc->priv->style->backend_id,
+                                                                  lbc->priv->style->id,
+                                                                  lbc->priv->style->text_flag,
+                                                                  lbc->priv->style->checksum_flag,
+                                                                  w_raw,
+                                                                  h_raw,
+                                                                  data);
+        g_free (data);
+
+        if ( lbc->priv->display_gbc == NULL )
+        {
+                lglBarcode *gbc;
+
+                /* Try again with default digits, but don't save -- just extract size. */
+                data = gl_barcode_backends_style_default_digits (lbc->priv->style->backend_id,
+                                                                 lbc->priv->style->id,
+                                                                 lbc->priv->style->format_digits);
+                gbc = gl_barcode_backends_new_barcode (lbc->priv->style->backend_id,
+                                                       lbc->priv->style->id,
+                                                       lbc->priv->style->text_flag,
+                                                       lbc->priv->style->checksum_flag,
+                                                       w_raw,
+                                                       h_raw,
+                                                       data);
+                g_free (data);
+
+                if ( gbc != NULL )
+                {
+                        lbc->priv->w = gbc->width;
+                        lbc->priv->h = gbc->height;
+                }
+                else
+                {
+                        /* If we still can't render, just set a default size. */
+                        lbc->priv->w = 144;
+                        lbc->priv->h = 72;
+                }
 
-       gl_debug (DEBUG_LABEL, "END");
+                lgl_barcode_free (gbc);
+        }
+        else
+        {
+                lbc->priv->w = lbc->priv->display_gbc->width;
+                lbc->priv->h = lbc->priv->display_gbc->height;
+        }
+
+        gl_debug (DEBUG_LABEL, "END");
 }
 
+
+/*---------------------------------------------------------------------------*/
+/* PRIVATE.  Set object size method.                                         */
+/*---------------------------------------------------------------------------*/
+static void
+set_size (glLabelObject       *object,
+          gdouble              w,
+          gdouble              h,
+          gboolean             checkpoint)
+{
+        gl_debug (DEBUG_LABEL, "START");
+
+        g_return_if_fail (object && GL_IS_LABEL_BARCODE (object));
+
+        gl_label_object_set_raw_size (object, w, h, checkpoint);
+        update_barcode (GL_LABEL_BARCODE (object));
+
+        gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*---------------------------------------------------------------------------*/
+/* PRIVATE.  Get object size method.                                         */
+/*---------------------------------------------------------------------------*/
+static void
+get_size (glLabelObject *object,
+          gdouble       *w,
+          gdouble       *h)
+{
+        gl_debug (DEBUG_LABEL, "START");
+
+        g_return_if_fail (object && GL_IS_LABEL_BARCODE (object));
+
+        *w = GL_LABEL_BARCODE (object)->priv->w;
+        *h = GL_LABEL_BARCODE (object)->priv->h;
+
+        gl_debug (DEBUG_LABEL, "END");
+}
+
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Set line color method.                                          */
 /*---------------------------------------------------------------------------*/
 static void
 set_line_color (glLabelObject *object,
-               glColorNode   *line_color_node)
+                glColorNode   *line_color_node,
+                gboolean       checkpoint)
 {
-       glLabelBarcode *lbarcode = (glLabelBarcode *)object;
+        glLabelBarcode *lbarcode = (glLabelBarcode *)object;
+        glLabel        *label;
 
-       g_return_if_fail (lbarcode && GL_IS_LABEL_BARCODE (lbarcode));
+        g_return_if_fail (lbarcode && GL_IS_LABEL_BARCODE (lbarcode));
 
-       if ( !gl_color_node_equal(lbarcode->priv->color_node, line_color_node) ) {
-               
-               gl_color_node_free (&(lbarcode->priv->color_node));
-               lbarcode->priv->color_node = gl_color_node_dup (line_color_node);
-               gl_label_object_emit_changed (GL_LABEL_OBJECT(lbarcode));
-       }
+        if ( !gl_color_node_equal(lbarcode->priv->color_node, line_color_node) )
+        {
+                if ( checkpoint )
+                {
+                        label = gl_label_object_get_parent (GL_LABEL_OBJECT (lbarcode));
+                        gl_label_checkpoint (label, _("Barcode data"));
+                }
+
+                gl_color_node_free (&(lbarcode->priv->color_node));
+                lbarcode->priv->color_node = gl_color_node_dup (line_color_node);
+                gl_label_object_emit_changed (GL_LABEL_OBJECT(lbarcode));
+        }
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Get line color method.                                          */
 /*---------------------------------------------------------------------------*/
 static glColorNode*
 get_line_color (glLabelObject *object)
 {
-       glLabelBarcode *lbarcode = (glLabelBarcode *)object;
+        glLabelBarcode *lbarcode = (glLabelBarcode *)object;
 
-       g_return_val_if_fail (lbarcode && GL_IS_LABEL_BARCODE (lbarcode), NULL);
+        g_return_val_if_fail (lbarcode && GL_IS_LABEL_BARCODE (lbarcode), NULL);
 
-       return gl_color_node_dup (lbarcode->priv->color_node);
+        return gl_color_node_dup (lbarcode->priv->color_node);
 }
 
+
 /*****************************************************************************/
 /* Draw object method.                                                       */
 /*****************************************************************************/
@@ -363,121 +491,340 @@ draw_object (glLabelObject *object,
              gboolean       screen_flag,
              glMergeRecord *record)
 {
-        gdouble             x0, y0;
-        cairo_matrix_t      matrix;
-       glBarcode          *gbc;
-       glBarcodeLine      *line;
-       glBarcodeChar      *bchar;
-       GList              *li;
-       gdouble             y_offset;
-        PangoLayout        *layout;
-        PangoFontDescription *desc;
-       gchar              *text, *cstring;
-       glTextNode         *text_node;
-       gchar              *id;
-       gboolean            text_flag;
-       gboolean            checksum_flag;
-       guint               color;
-       glColorNode        *color_node;
-       guint               format_digits;
-       gdouble             w, h;
-
-       gl_debug (DEBUG_LABEL, "START");
+        glLabelBarcode       *lbc     = (glLabelBarcode *)object;
+        gdouble               x0, y0;
+        cairo_matrix_t        matrix;
+        lglBarcode           *gbc;
+        gchar                *text;
+        glTextNode           *text_node;
+        glLabelBarcodeStyle  *style;
+        guint                 color;
+        glColorNode          *color_node;
+        gdouble               w, h;
+
+        gl_debug (DEBUG_LABEL, "START");
 
         gl_label_object_get_position (object, &x0, &y0);
         gl_label_object_get_matrix (object, &matrix);
 
-       text_node = gl_label_barcode_get_data (GL_LABEL_BARCODE (object));
-       gl_label_barcode_get_props (GL_LABEL_BARCODE (object),
-                                   &id, &text_flag, &checksum_flag, &format_digits);
-                                       
-       color_node = gl_label_object_get_line_color (object);
-       color = gl_color_node_expand (color_node, record);
+        text_node = gl_label_barcode_get_data (GL_LABEL_BARCODE (object));
+        style = gl_label_barcode_get_style (GL_LABEL_BARCODE (object));
+
+        color_node = gl_label_object_get_line_color (object);
+        color = gl_color_node_expand (color_node, record);
         if (color_node->field_flag && screen_flag)
         {
                 color = GL_COLOR_MERGE_DEFAULT;
         }
-       gl_color_node_free (&color_node);
-       
-       gl_label_object_get_size (object, &w, &h);
 
-       text_node = gl_label_barcode_get_data(GL_LABEL_BARCODE(object));
-        text = gl_text_node_expand (text_node, record);
-       if (text_node->field_flag && screen_flag) {
-               text = gl_barcode_default_digits (id, format_digits);
-       }
+        cairo_set_source_rgba (cr, GL_COLOR_RGBA_ARGS (color));
+
+        if (text_node->field_flag && !screen_flag) {
 
-       gbc = gl_barcode_new (id, text_flag, checksum_flag, w, h, text);
+                gl_label_object_get_raw_size (object, &w, &h);
+
+                text = gl_text_node_expand (text_node, record);
+                gbc = gl_barcode_backends_new_barcode (style->backend_id, style->id, style->text_flag, style->checksum_flag, w, h, text);
+                g_free (text);
+
+                if ( gbc != NULL )
+                {
+                        lgl_barcode_render_to_cairo (gbc, cr);
+                        lgl_barcode_free (gbc);
+                }
+
+        }
+        else
+        {
+
+                if (lbc->priv->display_gbc == NULL)
+                {
+                        create_alt_msg_path (cr, text_node->data);
+                        cairo_fill (cr);
+                }
+                else
+                {
+                        lgl_barcode_render_to_cairo (lbc->priv->display_gbc, cr);
+                }
+
+        }
+
+        gl_text_node_free (&text_node);
+        gl_label_barcode_style_free (style);
+        gl_color_node_free (&color_node);
+
+        gl_debug (DEBUG_LABEL, "END");
+}
 
-        cairo_set_source_rgba (cr, GL_COLOR_RGBA_ARGS (color));
 
-       if (gbc == NULL) {
+/*****************************************************************************/
+/* Is object at coordinates?                                                 */
+/*****************************************************************************/
+static gboolean
+object_at (glLabelObject *object,
+           cairo_t       *cr,
+           gdouble        x,
+           gdouble        y)
+{
+        glLabelBarcode       *lbc     = (glLabelBarcode *)object;
+        gdouble               w, h;
+        glTextNode           *text_node;
+        gdouble               scale_x, scale_y;
+
+        gl_label_object_get_size (object, &w, &h);
 
-                layout = pango_cairo_create_layout (cr);
+        if ( (x >= 0) && (x <= w) && (y >= 0) && (y <= h) )
+        {
 
-                desc = pango_font_description_new ();
-                pango_font_description_set_family (desc, GL_BARCODE_FONT_FAMILY);
-                pango_font_description_set_size   (desc, 12 * PANGO_SCALE * FONT_SCALE);
-                pango_layout_set_font_description (layout, desc);
-                pango_font_description_free       (desc);
+                text_node = gl_label_barcode_get_data(GL_LABEL_BARCODE(object));
 
-                if (text == NULL || *text == '\0')
+                if ( lbc->priv->display_gbc == NULL )
                 {
-                        pango_layout_set_text (layout, _("Barcode data empty"), -1);
+                        create_alt_msg_path (cr, text_node->data);
                 }
                 else
                 {
-                        pango_layout_set_text (layout, _("Invalid barcode data"), -1);
+                        lgl_barcode_render_to_cairo_path (lbc->priv->display_gbc, cr);
+                }
+
+                if (cairo_in_fill (cr, x, y))
+                {
+                        return TRUE;
                 }
 
-                cairo_move_to (cr, 0, 0);
-                pango_cairo_show_layout (cr, layout);
 
-                g_object_unref (layout);
+                scale_x = 1.0;
+                scale_y = 1.0;
+                cairo_device_to_user_distance (cr, &scale_x, &scale_y);
+
+                cairo_set_line_width (cr, 2*SELECTION_SLOP_PIXELS*scale_x);
+
+                if (cairo_in_stroke (cr, x, y))
+                {
+                        return TRUE;
+                }
+
+
+                if (gl_label_object_is_selected (object))
+                {
+                        cairo_new_path (cr);
+                        cairo_rectangle (cr, 0, 0, w, h);
+
+                        scale_x = 1.0;
+                        scale_y = 1.0;
+                        cairo_device_to_user_distance (cr, &scale_x, &scale_y);
+
+                        cairo_set_line_width (cr, (HANDLE_OUTLINE_WIDTH_PIXELS + 2*SELECTION_SLOP_PIXELS)*scale_x);
+
+                        if (cairo_in_stroke (cr, x, y))
+                        {
+                                return TRUE;
+                        }
+                }
+
+        }
+
+        return FALSE;
+}
+
+
+/*****************************************************************************/
+/* Draw barcode style handles.                                               */
+/*****************************************************************************/
+static void
+draw_handles (glLabelObject     *object,
+              cairo_t           *cr)
+{
+        gdouble w, h;
+        gdouble scale_x, scale_y;
+        gdouble dashes[2] = { 2, 2 };
+
+        gl_label_object_get_size (GL_LABEL_OBJECT(object), &w, &h);
+
+        cairo_save (cr);
 
-       } else {
+        cairo_rectangle (cr, 0, 0, w, h);
 
-               for (li = gbc->lines; li != NULL; li = li->next) {
-                       line = (glBarcodeLine *) li->data;
+        scale_x = 1.0;
+        scale_y = 1.0;
+        cairo_device_to_user_distance (cr, &scale_x, &scale_y);
+        cairo_scale (cr, scale_x, scale_y);
 
-                       cairo_move_to (cr, line->x, line->y);
-                       cairo_line_to (cr, line->x, line->y + line->length);
-                       cairo_set_line_width (cr, line->width);
-                       cairo_stroke (cr);
-               }
+        cairo_set_dash (cr, dashes, 2, 0);
+        cairo_set_line_width (cr, HANDLE_OUTLINE_WIDTH_PIXELS);
+        cairo_set_source_rgba (cr, HANDLE_OUTLINE_RGBA_ARGS);
+        cairo_stroke (cr);
 
-               for (li = gbc->chars; li != NULL; li = li->next) {
-                       bchar = (glBarcodeChar *) li->data;
+        cairo_restore (cr);
 
-                        layout = pango_cairo_create_layout (cr);
+        gl_label_object_draw_handles_box (object, cr);
+}
 
-                        desc = pango_font_description_new ();
-                        pango_font_description_set_family (desc, GL_BARCODE_FONT_FAMILY);
-                        pango_font_description_set_size   (desc, bchar->fsize * PANGO_SCALE * FONT_SCALE);
-                        pango_layout_set_font_description (layout, desc);
-                        pango_font_description_free       (desc);
 
-                       cstring = g_strdup_printf ("%c", bchar->c);
-                        pango_layout_set_text (layout, cstring, -1);
-                       g_free (cstring);
+/*****************************************************************************/
+/* Create a cairo path with apropos message.                                 */
+/*****************************************************************************/
+static void
+create_alt_msg_path (cairo_t *cr,
+                     gchar   *text)
+{
+        PangoLayout          *layout;
+        PangoFontDescription *desc;
 
-                        y_offset = 0.2 * bchar->fsize;
+        layout = pango_cairo_create_layout (cr);
 
-                       cairo_move_to (cr, bchar->x, bchar->y-y_offset);
-                        pango_cairo_show_layout (cr, layout);
+        desc = pango_font_description_new ();
+        pango_font_description_set_family (desc, GL_BARCODE_FONT_FAMILY);
+        pango_font_description_set_size   (desc, 12 * PANGO_SCALE * FONT_SCALE);
+        pango_layout_set_font_description (layout, desc);
+        pango_font_description_free       (desc);
 
-                        g_object_unref (layout);
+        if (text == NULL || *text == '\0')
+        {
+                pango_layout_set_text (layout, _("Barcode data empty"), -1);
+        }
+        else
+        {
+                pango_layout_set_text (layout, _("Invalid barcode data"), -1);
+        }
 
-               }
+        cairo_move_to (cr, 0, 0);
+        pango_cairo_layout_path (cr, layout);
 
-               gl_barcode_free (&gbc);
+        g_object_unref (layout);
+}
 
-       }
 
-       g_free (text);
-       gl_text_node_free (&text_node);
-       g_free (id);
+/*****************************************************************************/
+/* Barcode style utilities.                                                  */
+/*****************************************************************************/
+glLabelBarcodeStyle *
+gl_label_barcode_style_new (void)
+{
+        return g_new0 (glLabelBarcodeStyle, 1);
+}
+
+
+glLabelBarcodeStyle *
+gl_label_barcode_style_dup (const glLabelBarcodeStyle *style)
+{
+        glLabelBarcodeStyle *style2;
+
+        style2 = gl_label_barcode_style_new ();
 
-       gl_debug (DEBUG_LABEL, "END");
+        /* Shallow copy first. */
+        *style2 = *style;
+
+        /* Now go deep. */
+        style2->backend_id = g_strdup (style->backend_id);
+        style2->id         = g_strdup (style->id);
+
+        return style2;
 }
 
+
+void
+gl_label_barcode_style_free (glLabelBarcodeStyle *style)
+{
+        if ( style )
+        {
+                g_free (style->backend_id);
+                g_free (style->id);
+
+                g_free (style);
+        }
+}
+
+
+gboolean
+gl_label_barcode_style_is_equal (const glLabelBarcodeStyle *style1,
+                                 const glLabelBarcodeStyle *style2)
+{
+
+        /* First take care of the case of either or both being NULL. */
+        if ( style1 == NULL )
+        {
+                return ( style2 == NULL );
+        }
+        else
+        {
+                if ( style2 == NULL )
+                {
+                        return FALSE;
+                }
+        }
+
+        /* Compare field by field, bail on first difference. */
+        if ( style1->text_flag != style2->text_flag )
+        {
+                return FALSE;
+        }
+        if ( style1->checksum_flag != style2->checksum_flag )
+        {
+                return FALSE;
+        }
+        if ( style1->format_digits != style2->format_digits )
+        {
+                return FALSE;
+        }
+        if ( style1->backend_id && style2->backend_id )
+        {
+                if ( strcmp (style1->backend_id, style2->backend_id) != 0 )
+                {
+                        return FALSE;
+                }
+        }
+        else
+        {
+                if ( style1->backend_id != style2->backend_id )
+                {
+                        return FALSE;
+                }
+        }
+        if ( style1->id && style2->id )
+        {
+                if ( strcmp (style1->id, style2->id) != 0 )
+                {
+                        return FALSE;
+                }
+        }
+        else
+        {
+                if ( style1->id != style2->id )
+                {
+                        return FALSE;
+                }
+        }
+
+        /* Passed all tests. */
+        return TRUE;
+}
+
+
+void
+gl_label_barcode_style_set_backend_id (glLabelBarcodeStyle *style,
+                                       const gchar         *backend_id)
+{
+        style->backend_id = g_strdup (backend_id);
+}
+
+
+void
+gl_label_barcode_style_set_style_id (glLabelBarcodeStyle *style,
+                                     const gchar         *id)
+{
+        style->id = g_strdup (id);
+}
+
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 4eda31dad7bb302b2c822cb44799152d7907b521..ce90b9d76a3f0ce2ff5f3d97e594ff85de60a1e1 100644 (file)
@@ -1,31 +1,26 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  label_barcode.h:  GLabels label barcode object
+ *  label-barcode.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __LABEL_BARCODE_H__
 #define __LABEL_BARCODE_H__
 
-#include "bc.h"
 #include "text-node.h"
 #include "label-object.h"
 
@@ -54,25 +49,63 @@ struct _glLabelBarcodeClass {
 };
 
 
-GType           gl_label_barcode_get_type  (void) G_GNUC_CONST;
 
-GObject        *gl_label_barcode_new       (glLabel        *label);
+typedef struct _glLabelBarcodeStyle     glLabelBarcodeStyle;
+
+struct _glLabelBarcodeStyle {
+        gchar          *backend_id;
+        gchar          *id;
+        gboolean        text_flag;
+        gboolean        checksum_flag;
+        guint           format_digits;
+};
+
+
+
+GType                 gl_label_barcode_get_type             (void) G_GNUC_CONST;
+
+GObject              *gl_label_barcode_new                  (glLabel                   *label,
+                                                             gboolean                   checkpoint);
+
+void                  gl_label_barcode_set_data             (glLabelBarcode            *lbc,
+                                                             const glTextNode          *text_node,
+                                                             gboolean                   checkpoint);
+
+void                  gl_label_barcode_set_style            (glLabelBarcode            *lbc,
+                                                             const glLabelBarcodeStyle *style,
+                                                             gboolean                   checkpoint);
+
+glTextNode           *gl_label_barcode_get_data             (glLabelBarcode            *lbc);
 
-void            gl_label_barcode_set_data  (glLabelBarcode *lbc,
-                                           glTextNode     *text_node);
-void            gl_label_barcode_set_props (glLabelBarcode *lbc,
-                                           gchar          *id,
-                                           gboolean        text_flag,
-                                           gboolean        checksum_flag,
-                                           guint           format_digits);
+glLabelBarcodeStyle  *gl_label_barcode_get_style            (glLabelBarcode            *lbc);
+
+
+glLabelBarcodeStyle  *gl_label_barcode_style_new            (void);
+glLabelBarcodeStyle  *gl_label_barcode_style_dup            (const glLabelBarcodeStyle *style);
+void                  gl_label_barcode_style_free           (glLabelBarcodeStyle       *style);
+
+gboolean              gl_label_barcode_style_is_equal       (const glLabelBarcodeStyle *style1,
+                                                             const glLabelBarcodeStyle *style2);
+
+void                  gl_label_barcode_style_set_backend_id (glLabelBarcodeStyle       *style,
+                                                             const gchar               *backend_id);
+
+void                  gl_label_barcode_style_set_style_id   (glLabelBarcodeStyle       *style,
+                                                             const gchar               *id);
 
-glTextNode     *gl_label_barcode_get_data  (glLabelBarcode *lbc);
-void            gl_label_barcode_get_props (glLabelBarcode *lbc,
-                                           gchar         **id,
-                                           gboolean       *text_flag,
-                                           gboolean       *checksum_flag,
-                                           guint          *format_digits);
 
 G_END_DECLS
 
 #endif /* __LABEL_BARCODE_H__ */
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index a42ad75b38b2914cce2ab6772b860f0fa00f86fa..fd63e24f762fb600b8c62e8341538e2a33e2a16d 100644 (file)
@@ -1,35 +1,31 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  label_box.c:  GLabels label box object
+ *  label-box.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include "label-box.h"
 
-#include <glib/gmem.h>
-#include <glib/gstrfuncs.h>
-#include <glib/gmessages.h>
+#include <glib/gi18n.h>
+#include <glib.h>
 
 #include "debug.h"
 
+
 /*========================================================*/
 /* Private types.                                         */
 /*========================================================*/
@@ -40,10 +36,12 @@ struct _glLabelBoxPrivate {
        glColorNode      *fill_color_node;
 };
 
+
 /*========================================================*/
 /* Private globals.                                       */
 /*========================================================*/
 
+
 /*========================================================*/
 /* Private function prototypes.                           */
 /*========================================================*/
@@ -54,13 +52,16 @@ static void    copy                       (glLabelObject   *dst_object,
                                           glLabelObject   *src_object);
 
 static void    set_fill_color             (glLabelObject   *object,
-                                          glColorNode     *fill_color_node);
+                                          glColorNode     *fill_color_node,
+                                           gboolean         checkpoint);
 
 static void    set_line_color             (glLabelObject   *object,
-                                          glColorNode     *line_color_node);
+                                          glColorNode     *line_color_node,
+                                           gboolean         checkpoint);
 
 static void    set_line_width             (glLabelObject   *object,
-                                          gdouble          line_width);
+                                          gdouble          line_width,
+                                           gboolean         checkpoint);
 
 static glColorNode*   get_fill_color      (glLabelObject   *object);
 
@@ -78,14 +79,17 @@ static void    draw_shadow                (glLabelObject     *object,
                                            gboolean           screen_flag,
                                            glMergeRecord     *record);
 
+static gboolean object_at                 (glLabelObject     *object,
+                                           cairo_t           *cr,
+                                           gdouble            x_pixels,
+                                           gdouble            y_pixels);
 
 
-
-\f
 /*****************************************************************************/
 /* Boilerplate object stuff.                                                 */
 /*****************************************************************************/
-G_DEFINE_TYPE (glLabelBox, gl_label_box, GL_TYPE_LABEL_OBJECT);
+G_DEFINE_TYPE (glLabelBox, gl_label_box, GL_TYPE_LABEL_OBJECT)
+
 
 static void
 gl_label_box_class_init (glLabelBoxClass *class)
@@ -104,18 +108,19 @@ gl_label_box_class_init (glLabelBoxClass *class)
        label_object_class->get_line_width = get_line_width;
         label_object_class->draw_object    = draw_object;
         label_object_class->draw_shadow    = draw_shadow;
+        label_object_class->object_at      = object_at;
 
        object_class->finalize = gl_label_box_finalize;
 }
 
+
 static void
 gl_label_box_init (glLabelBox *lbox)
 {
        lbox->priv = g_new0 (glLabelBoxPrivate, 1);
-       lbox->priv->line_color_node = gl_color_node_new_default ();
-       lbox->priv->fill_color_node = gl_color_node_new_default ();
 }
 
+
 static void
 gl_label_box_finalize (GObject *object)
 {
@@ -130,21 +135,45 @@ gl_label_box_finalize (GObject *object)
        G_OBJECT_CLASS (gl_label_box_parent_class)->finalize (object);
 }
 
+
 /*****************************************************************************/
 /* NEW label "box" object.                                                   */
 /*****************************************************************************/
 GObject *
-gl_label_box_new (glLabel *label)
+gl_label_box_new (glLabel *label,
+                  gboolean checkpoint)
 {
-       glLabelBox *lbox;
+       glLabelBox          *lbox;
+       glColorNode         *fill_color_node;
+       glColorNode         *line_color_node;
 
        lbox = g_object_new (gl_label_box_get_type(), NULL);
 
-       gl_label_object_set_parent (GL_LABEL_OBJECT(lbox), label);
+        if (label != NULL)
+        {
+                if ( checkpoint )
+                {
+                        gl_label_checkpoint (label, _("Create box object"));
+                }
+
+                fill_color_node = gl_color_node_new_default ();
+                line_color_node = gl_color_node_new_default ();
+
+                line_color_node->color = gl_label_get_default_line_color(label);
+                fill_color_node->color = gl_label_get_default_fill_color(label);
+
+                lbox->priv->line_width      = gl_label_get_default_line_width(label);
+                lbox->priv->line_color_node = line_color_node;
+                lbox->priv->fill_color_node = fill_color_node;
+
+                gl_label_add_object (label, GL_LABEL_OBJECT (lbox));
+                gl_label_object_set_parent (GL_LABEL_OBJECT (lbox), label);
+        }
 
        return G_OBJECT (lbox);
 }
 
+
 /*****************************************************************************/
 /* Copy object contents.                                                     */
 /*****************************************************************************/
@@ -167,9 +196,9 @@ copy (glLabelObject *dst_object,
        line_color_node = get_line_color (src_object);
        fill_color_node = get_fill_color (src_object);
 
-       set_line_width (dst_object, line_width);
-       set_line_color (dst_object, line_color_node);
-       set_fill_color (dst_object, fill_color_node);
+       set_line_width (dst_object, line_width, FALSE);
+       set_line_color (dst_object, line_color_node, FALSE);
+       set_fill_color (dst_object, fill_color_node, FALSE);
        
        gl_color_node_free (&line_color_node);
        gl_color_node_free (&fill_color_node);
@@ -183,54 +212,83 @@ copy (glLabelObject *dst_object,
 /*---------------------------------------------------------------------------*/
 static void
 set_fill_color (glLabelObject *object,
-               glColorNode   *fill_color_node)
+               glColorNode   *fill_color_node,
+                gboolean       checkpoint)
 {
        glLabelBox *lbox = (glLabelBox *)object;
+        glLabel    *label;
        
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (lbox && GL_IS_LABEL_BOX (lbox));
 
-       if (!gl_color_node_equal (lbox->priv->fill_color_node, fill_color_node)) {
+       if (!gl_color_node_equal (lbox->priv->fill_color_node, fill_color_node))
+        {
+                if ( checkpoint )
+                {
+                        label = gl_label_object_get_parent (GL_LABEL_OBJECT (lbox));
+                        gl_label_checkpoint (label, _("Fill color"));
+                }
 
                gl_color_node_free (&(lbox->priv->fill_color_node));
                lbox->priv->fill_color_node = gl_color_node_dup (fill_color_node);
 
                gl_label_object_emit_changed (GL_LABEL_OBJECT(lbox));
        }
+
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Set line color method.                                          */
 /*---------------------------------------------------------------------------*/
 static void
 set_line_color (glLabelObject *object,
-               glColorNode   *line_color_node)
+               glColorNode   *line_color_node,
+                gboolean       checkpoint)
 {
        glLabelBox *lbox = (glLabelBox *)object;
+        glLabel    *label;
 
        g_return_if_fail (lbox && GL_IS_LABEL_BOX (lbox));
 
-       if ( !gl_color_node_equal (lbox->priv->line_color_node, line_color_node )) {
+       if ( !gl_color_node_equal (lbox->priv->line_color_node, line_color_node ))
+        {
+                if ( checkpoint )
+                {
+                        label = gl_label_object_get_parent (GL_LABEL_OBJECT (lbox));
+                        gl_label_checkpoint (label, _("Line color"));
+                }
+
                gl_color_node_free (&(lbox->priv->line_color_node));
                lbox->priv->line_color_node = gl_color_node_dup (line_color_node);
                gl_label_object_emit_changed (GL_LABEL_OBJECT(lbox));
        }
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Set line width method.                                          */
 /*---------------------------------------------------------------------------*/
 static void
 set_line_width (glLabelObject *object,
-               gdouble        line_width)
+               gdouble        line_width,
+                gboolean       checkpoint)
 {
        glLabelBox *lbox = (glLabelBox *)object;
+        glLabel    *label;
 
        g_return_if_fail (lbox && GL_IS_LABEL_BOX (lbox));
 
-       if ( lbox->priv->line_width != line_width ) {
+       if ( lbox->priv->line_width != line_width )
+        {
+                if ( checkpoint )
+                {
+                        label = gl_label_object_get_parent (GL_LABEL_OBJECT (lbox));
+                        gl_label_checkpoint (label, _("Line width"));
+                }
+
                lbox->priv->line_width = line_width;
                gl_label_object_emit_changed (GL_LABEL_OBJECT(lbox));
        }
@@ -250,6 +308,7 @@ get_line_width (glLabelObject *object)
        return lbox->priv->line_width;
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Get line color method.                                          */
 /*---------------------------------------------------------------------------*/
@@ -263,6 +322,7 @@ get_line_color (glLabelObject *object)
        return gl_color_node_dup (lbox->priv->line_color_node);
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Get line width method.                                          */
 /*---------------------------------------------------------------------------*/
@@ -276,6 +336,7 @@ get_fill_color (glLabelObject *object)
        return gl_color_node_dup (lbox->priv->fill_color_node);
 }
 
+
 /*****************************************************************************/
 /* Draw object method.                                                       */
 /*****************************************************************************/
@@ -329,6 +390,7 @@ draw_object (glLabelObject *object,
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /*****************************************************************************/
 /* Draw shadow method.                                                       */
 /*****************************************************************************/
@@ -347,11 +409,11 @@ draw_shadow (glLabelObject *object,
        glColorNode   *shadow_color_node;
         guint          shadow_color;
        gdouble        shadow_opacity;
-       guint          shadow_line_color;
-       guint          shadow_fill_color;
 
        gl_debug (DEBUG_LABEL, "START");
 
+        cairo_save (cr);
+
         gl_label_object_get_size (object, &w, &h);
 
        line_width = gl_label_object_get_line_width (object);
@@ -376,27 +438,94 @@ draw_shadow (glLabelObject *object,
                shadow_color = GL_COLOR_SHADOW_MERGE_DEFAULT;
        }
        shadow_opacity = gl_label_object_get_shadow_opacity (object);
-       shadow_line_color = gl_color_shadow (shadow_color, shadow_opacity, line_color_node->color);
-       shadow_fill_color = gl_color_shadow (shadow_color, shadow_opacity, fill_color_node->color);
+       shadow_color = gl_color_set_opacity (shadow_color, shadow_opacity);
        
 
-        cairo_rectangle (cr, 0.0, 0.0, w, h);
-
-
-        /* Draw fill shadow */
-        cairo_set_source_rgba (cr, GL_COLOR_RGBA_ARGS (shadow_fill_color));
-        cairo_fill_preserve (cr);
+        cairo_set_source_rgba (cr, GL_COLOR_RGBA_ARGS (shadow_color));
 
-        /* Draw outline shadow */
-        cairo_set_source_rgba (cr, GL_COLOR_RGBA_ARGS (shadow_line_color));
-        cairo_set_line_width (cr, line_width);
-        cairo_stroke (cr);
+        if ( GL_COLOR_F_ALPHA (fill_color) )
+        {
+                if ( GL_COLOR_F_ALPHA (line_color) )
+                {
+                        /* Has FILL and OUTLINE: adjust size to account for line width. */
+                        cairo_rectangle (cr,
+                                         -line_width/2, -line_width/2,
+                                         w+line_width, h+line_width);
+
+                }
+                else
+                {
+                        /* Has FILL but no OUTLINE. */
+                        cairo_rectangle (cr, 0.0, 0.0, w, h);
+                }
+
+                /* Draw shadow */
+                cairo_fill (cr);
+        }
+        else
+        {
+                if ( GL_COLOR_F_ALPHA (line_color) )
+                {
+                        /* Has only OUTLINE. */
+                        cairo_rectangle (cr, 0.0, 0.0, w, h);
+
+                        /* Draw shadow of outline */
+                        cairo_set_line_width (cr, line_width);
+                        cairo_stroke (cr);
+                }
+        }
 
 
        gl_color_node_free (&line_color_node);
        gl_color_node_free (&fill_color_node);
        gl_color_node_free (&shadow_color_node);
 
+        cairo_restore (cr);
+
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
+/*****************************************************************************/
+/* Is object at coordinates?                                                 */
+/*****************************************************************************/
+static gboolean
+object_at (glLabelObject *object,
+           cairo_t       *cr,
+           gdouble        x,
+           gdouble        y)
+{
+        gdouble           w, h;
+        gdouble           line_width;
+
+        gl_label_object_get_size (object, &w, &h);
+
+        cairo_new_path (cr);
+        cairo_rectangle (cr, 0.0, 0.0, w, h);
+
+        if (cairo_in_fill (cr, x, y))
+        {
+                return TRUE;
+        }
+
+        line_width = gl_label_object_get_line_width (object);
+        cairo_set_line_width (cr, line_width);
+        if (cairo_in_stroke (cr, x, y))
+        {
+                return TRUE;
+        }
+
+        return FALSE;
+}
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 93b05a64e25e27d666997bfacdb3e10eca3336db..21bb7417870fc698aa260c4d87f5e35c2976908b 100644 (file)
@@ -1,25 +1,21 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  label_box.h:  GLabels label box object
+ *  label-box.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __LABEL_BOX_H__
@@ -54,8 +50,21 @@ struct _glLabelBoxClass {
 
 GType         gl_label_box_get_type       (void) G_GNUC_CONST;
 
-GObject      *gl_label_box_new            (glLabel    *label);
+GObject      *gl_label_box_new            (glLabel    *label,
+                                           gboolean    checkpoint);
 
 G_END_DECLS
 
 #endif /* __LABEL_BOX_H__ */
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index fb21cbf2cafedfb4fca286045ec03e6dc9ab41ac..5b89f3b8f6fcf6a99717be1ea012d5b6b907f2fb 100644 (file)
@@ -1,32 +1,27 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  label_ellipse.c:  GLabels label ellipse object
+ *  label-ellipse.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include "label-ellipse.h"
 
-#include <glib/gmem.h>
-#include <glib/gstrfuncs.h>
-#include <glib/gmessages.h>
+#include <glib/gi18n.h>
+#include <glib.h>
 #include <math.h>
 
 #include "cairo-ellipse-path.h"
@@ -55,25 +50,28 @@ struct _glLabelEllipsePrivate {
 /* Private function prototypes.                           */
 /*========================================================*/
 
-static void    gl_label_ellipse_finalize      (GObject             *object);
+static void    gl_label_ellipse_finalize  (GObject           *object);
 
-static void    copy                           (glLabelObject       *dst_object,
-                                              glLabelObject       *src_object);
+static void    copy                       (glLabelObject     *dst_object,
+                                           glLabelObject     *src_object);
 
-static void    set_fill_color                 (glLabelObject       *object,
-                                              glColorNode         *fill_color_node);
+static void    set_fill_color             (glLabelObject     *object,
+                                           glColorNode       *fill_color_node,
+                                           gboolean           checkpoint);
 
-static void    set_line_color                 (glLabelObject       *object,
-                                              glColorNode         *line_color_node);
+static void    set_line_color             (glLabelObject     *object,
+                                           glColorNode       *line_color_node,
+                                           gboolean           checkpoint);
 
-static void    set_line_width                 (glLabelObject       *object,
-                                              gdouble              line_width);
+static void    set_line_width             (glLabelObject     *object,
+                                           gdouble            line_width,
+                                           gboolean           checkpoint);
 
-static glColorNode*   get_fill_color          (glLabelObject       *object);
+static glColorNode*   get_fill_color      (glLabelObject     *object);
 
-static glColorNode*   get_line_color          (glLabelObject       *object);
+static glColorNode*   get_line_color      (glLabelObject     *object);
 
-static gdouble get_line_width                 (glLabelObject       *object);
+static gdouble get_line_width             (glLabelObject     *object);
 
 static void    draw_object                (glLabelObject     *object,
                                            cairo_t           *cr,
@@ -85,13 +83,17 @@ static void    draw_shadow                (glLabelObject     *object,
                                            gboolean           screen_flag,
                                            glMergeRecord     *record);
 
+static gboolean object_at                 (glLabelObject     *object,
+                                           cairo_t           *cr,
+                                           gdouble            x_pixels,
+                                           gdouble            y_pixels);
 
 
-\f
 /*****************************************************************************/
 /* Boilerplate object stuff.                                                 */
 /*****************************************************************************/
-G_DEFINE_TYPE (glLabelEllipse, gl_label_ellipse, GL_TYPE_LABEL_OBJECT);
+G_DEFINE_TYPE (glLabelEllipse, gl_label_ellipse, GL_TYPE_LABEL_OBJECT)
+
 
 static void
 gl_label_ellipse_class_init (glLabelEllipseClass *class)
@@ -110,18 +112,19 @@ gl_label_ellipse_class_init (glLabelEllipseClass *class)
        label_object_class->get_line_width = get_line_width;
         label_object_class->draw_object    = draw_object;
         label_object_class->draw_shadow    = draw_shadow;
+        label_object_class->object_at      = object_at;
 
        object_class->finalize = gl_label_ellipse_finalize;
 }
 
+
 static void
 gl_label_ellipse_init (glLabelEllipse *lellipse)
 {
        lellipse->priv = g_new0 (glLabelEllipsePrivate, 1);
-       lellipse->priv->line_color_node = gl_color_node_new_default ();
-       lellipse->priv->fill_color_node = gl_color_node_new_default ();
 }
 
+
 static void
 gl_label_ellipse_finalize (GObject *object)
 {
@@ -136,21 +139,45 @@ gl_label_ellipse_finalize (GObject *object)
        G_OBJECT_CLASS (gl_label_ellipse_parent_class)->finalize (object);
 }
 
+
 /*****************************************************************************/
 /* NEW label "ellipse" object.                                               */
 /*****************************************************************************/
 GObject *
-gl_label_ellipse_new (glLabel *label)
+gl_label_ellipse_new (glLabel *label,
+                      gboolean checkpoint)
 {
-       glLabelEllipse *lellipse;
+       glLabelEllipse      *lellipse;
+       glColorNode         *fill_color_node;
+       glColorNode         *line_color_node;
 
        lellipse = g_object_new (gl_label_ellipse_get_type(), NULL);
 
-       gl_label_object_set_parent (GL_LABEL_OBJECT(lellipse), label);
+        if (label != NULL)
+        {
+                if ( checkpoint )
+                {
+                        gl_label_checkpoint (label, _("Create ellipse object"));
+                }
+
+                fill_color_node = gl_color_node_new_default ();
+                line_color_node = gl_color_node_new_default ();
+
+                line_color_node->color = gl_label_get_default_line_color(label);
+                fill_color_node->color = gl_label_get_default_fill_color(label);
+
+                lellipse->priv->line_width      = gl_label_get_default_line_width(label);
+                lellipse->priv->line_color_node = line_color_node;
+                lellipse->priv->fill_color_node = fill_color_node;
+
+                gl_label_add_object (label, GL_LABEL_OBJECT (lellipse));
+                gl_label_object_set_parent (GL_LABEL_OBJECT (lellipse), label);
+        }
 
        return G_OBJECT (lellipse);
 }
 
+
 /*****************************************************************************/
 /* Copy object contents.                                                     */
 /*****************************************************************************/
@@ -173,9 +200,9 @@ copy (glLabelObject *dst_object,
        line_color_node = get_line_color (src_object);
        fill_color_node = get_fill_color (src_object);
 
-       set_line_width (dst_object, line_width);
-       set_line_color (dst_object, line_color_node);
-       set_fill_color (dst_object, fill_color_node);
+       set_line_width (dst_object, line_width, FALSE);
+       set_line_color (dst_object, line_color_node, FALSE);
+       set_fill_color (dst_object, fill_color_node, FALSE);
 
        gl_color_node_free (&line_color_node);
        gl_color_node_free (&fill_color_node);
@@ -189,13 +216,21 @@ copy (glLabelObject *dst_object,
 /*---------------------------------------------------------------------------*/
 static void
 set_fill_color (glLabelObject *object,
-               glColorNode   *fill_color_node)
+               glColorNode   *fill_color_node,
+                gboolean       checkpoint)
 {
        glLabelEllipse *lellipse = (glLabelEllipse *)object;
+        glLabel        *label;
 
        g_return_if_fail (lellipse && GL_IS_LABEL_ELLIPSE (lellipse));
 
-       if (!gl_color_node_equal (lellipse->priv->fill_color_node, fill_color_node)) {
+       if (!gl_color_node_equal (lellipse->priv->fill_color_node, fill_color_node))
+        {
+                if ( checkpoint )
+                {
+                        label = gl_label_object_get_parent (GL_LABEL_OBJECT (lellipse));
+                        gl_label_checkpoint (label, _("Fill color"));
+                }
 
                gl_color_node_free (&(lellipse->priv->fill_color_node));
                lellipse->priv->fill_color_node = gl_color_node_dup (fill_color_node);
@@ -204,19 +239,28 @@ set_fill_color (glLabelObject *object,
        }       
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Set line color method.                                          */
 /*---------------------------------------------------------------------------*/
 static void
 set_line_color (glLabelObject *object,
-               glColorNode   *line_color_node)
+               glColorNode   *line_color_node,
+                gboolean       checkpoint)
 {
        glLabelEllipse *lellipse = (glLabelEllipse *)object;
+        glLabel        *label;
 
        g_return_if_fail (lellipse && GL_IS_LABEL_ELLIPSE (lellipse));
 
-       if ( !gl_color_node_equal (lellipse->priv->line_color_node, line_color_node) ) {
-               
+       if ( !gl_color_node_equal (lellipse->priv->line_color_node, line_color_node) )
+        {
+                if ( checkpoint )
+                {
+                        label = gl_label_object_get_parent (GL_LABEL_OBJECT (lellipse));
+                        gl_label_checkpoint (label, _("Line color"));
+                }
+
                gl_color_node_free (&(lellipse->priv->line_color_node));
                lellipse->priv->line_color_node = gl_color_node_dup (line_color_node);
                
@@ -224,18 +268,28 @@ set_line_color (glLabelObject *object,
        }
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Set line width method.                                          */
 /*---------------------------------------------------------------------------*/
 static void
 set_line_width (glLabelObject *object,
-               gdouble        line_width)
+               gdouble        line_width,
+                gboolean       checkpoint)
 {
        glLabelEllipse *lellipse = (glLabelEllipse *)object;
+        glLabel        *label;
 
        g_return_if_fail (lellipse && GL_IS_LABEL_ELLIPSE (lellipse));
 
-       if ( lellipse->priv->line_width != line_width ) {
+       if ( lellipse->priv->line_width != line_width )
+        {
+                if ( checkpoint )
+                {
+                        label = gl_label_object_get_parent (GL_LABEL_OBJECT (lellipse));
+                        gl_label_checkpoint (label, _("Line width"));
+                }
+
                lellipse->priv->line_width = line_width;
                gl_label_object_emit_changed (GL_LABEL_OBJECT(lellipse));
        }
@@ -255,6 +309,7 @@ get_line_width (glLabelObject *object)
        return lellipse->priv->line_width;
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Get line color method.                                          */
 /*---------------------------------------------------------------------------*/
@@ -268,6 +323,7 @@ get_line_color (glLabelObject *object)
        return gl_color_node_dup (lellipse->priv->line_color_node);
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Get line width method.                                          */
 /*---------------------------------------------------------------------------*/
@@ -281,6 +337,7 @@ get_fill_color (glLabelObject *object)
        return gl_color_node_dup (lellipse->priv->fill_color_node);
 }
 
+
 /*****************************************************************************/
 /* Draw object method.                                                       */
 /*****************************************************************************/
@@ -334,6 +391,7 @@ draw_object (glLabelObject *object,
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /*****************************************************************************/
 /* Draw shadow method.                                                       */
 /*****************************************************************************/
@@ -352,11 +410,11 @@ draw_shadow (glLabelObject *object,
        glColorNode   *shadow_color_node;
         guint          shadow_color;
        gdouble        shadow_opacity;
-       guint          shadow_line_color;
-       guint          shadow_fill_color;
 
        gl_debug (DEBUG_LABEL, "START");
 
+        cairo_save (cr);
+
         gl_label_object_get_size (object, &w, &h);
 
        line_width = gl_label_object_get_line_width (object);
@@ -381,27 +439,93 @@ draw_shadow (glLabelObject *object,
                shadow_color = GL_COLOR_SHADOW_MERGE_DEFAULT;
        }
        shadow_opacity = gl_label_object_get_shadow_opacity (object);
-       shadow_line_color = gl_color_shadow (shadow_color_node->color, shadow_opacity, line_color_node->color);
-       shadow_fill_color = gl_color_shadow (shadow_color_node->color, shadow_opacity, fill_color_node->color);
+       shadow_color = gl_color_set_opacity (shadow_color, shadow_opacity);
        
 
-        gl_cairo_ellipse_path (cr, w/2, h/2);
-
-
-        /* Draw fill shadow */
-        cairo_set_source_rgba (cr, GL_COLOR_RGBA_ARGS (shadow_fill_color));
-        cairo_fill_preserve (cr);
+        cairo_set_source_rgba (cr, GL_COLOR_RGBA_ARGS (shadow_color));
 
-        /* Draw outline shadow */
-        cairo_set_source_rgba (cr, GL_COLOR_RGBA_ARGS (shadow_line_color));
-        cairo_set_line_width (cr, line_width);
-        cairo_stroke (cr);
+        if ( GL_COLOR_F_ALPHA (fill_color) )
+        {
+                if ( GL_COLOR_F_ALPHA (line_color) )
+                {
+                        /* Has FILL and OUTLINE: adjust size to account for line width. */
+                        cairo_translate (cr, -line_width/2, -line_width/2);
+                        gl_cairo_ellipse_path (cr, (w+line_width)/2, (h+line_width)/2);
+
+                }
+                else
+                {
+                        /* Has FILL but no OUTLINE. */
+                        gl_cairo_ellipse_path (cr, w/2, h/2);
+                }
+
+                /* Draw shadow */
+                cairo_fill (cr);
+        }
+        else
+        {
+                if ( GL_COLOR_F_ALPHA (line_color) )
+                {
+                        /* Has only OUTLINE. */
+                        gl_cairo_ellipse_path (cr, w/2, h/2);
+
+                        /* Draw shadow of outline */
+                        cairo_set_line_width (cr, line_width);
+                        cairo_stroke (cr);
+                }
+        }
 
 
        gl_color_node_free (&line_color_node);
        gl_color_node_free (&fill_color_node);
        gl_color_node_free (&shadow_color_node);
 
+        cairo_restore (cr);
+
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
+/*****************************************************************************/
+/* Is object at coordinates?                                                 */
+/*****************************************************************************/
+static gboolean
+object_at (glLabelObject *object,
+           cairo_t       *cr,
+           gdouble        x,
+           gdouble        y)
+{
+        gdouble           w, h;
+        gdouble           line_width;
+
+        gl_label_object_get_size (object, &w, &h);
+
+        cairo_new_path (cr);
+        gl_cairo_ellipse_path (cr, w/2, h/2);
+
+        if (cairo_in_fill (cr, x, y))
+        {
+                return TRUE;
+        }
+
+        line_width = gl_label_object_get_line_width (object);
+        cairo_set_line_width (cr, line_width);
+        if (cairo_in_stroke (cr, x, y))
+        {
+                return TRUE;
+        }
+
+        return FALSE;
+}
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 439ad5f9c3e492e664e0c5c31fcd98dbb12637ca..93ed3befabb5b783b8cbd7ad268a1ee78c1b9428 100644 (file)
@@ -1,25 +1,21 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  label_ellipse.h:  GLabels label ellipse object
+ *  label-ellipse.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __LABEL_ELLIPSE_H__
@@ -54,8 +50,21 @@ struct _glLabelEllipseClass {
 
 GType           gl_label_ellipse_get_type       (void) G_GNUC_CONST;
 
-GObject        *gl_label_ellipse_new            (glLabel        *label);
+GObject        *gl_label_ellipse_new            (glLabel        *label,
+                                                 gboolean        checkpoint);
 
 G_END_DECLS
 
 #endif /* __LABEL_ELLIPSE_H__ */
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 9d0bcaf2ffd6bc8ed197f8199073dc5a3ea97639..f5e458559ea87149080b91e1e2e91dd8fb37679b 100644 (file)
@@ -1,34 +1,35 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  label_image.c:  GLabels label image object
+ *  label-image.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
+
 #include "label-image.h"
 
-#include <glib/gmem.h>
-#include <glib/gstrfuncs.h>
-#include <glib/gmessages.h>
-#include <gdk/gdkcairo.h>
+#include <glib/gi18n.h>
+#include <glib.h>
+#include <gdk/gdk.h>
+#include <librsvg/rsvg.h>
+#include <librsvg/rsvg-cairo.h>
 
+#include "pixbuf-util.h"
+#include "file-util.h"
 #include "pixmaps/checkerboard.xpm"
 
 #include "debug.h"
 /* Private types.                                         */
 /*========================================================*/
 
+typedef enum {
+        FILE_TYPE_NONE,
+        FILE_TYPE_PIXBUF,
+        FILE_TYPE_SVG
+} FileType;
+
+
 struct _glLabelImagePrivate {
-       glTextNode       *filename;
-       GdkPixbuf        *pixbuf;
+
+        glTextNode       *filename;
+
+        FileType          type;
+
+        GdkPixbuf        *pixbuf;
+        RsvgHandle       *svg_handle;
 };
 
+
 /*========================================================*/
 /* Private globals.                                       */
 /*========================================================*/
 
 static GdkPixbuf *default_pixbuf = NULL;
 
+
 /*========================================================*/
 /* Private function prototypes.                           */
 /*========================================================*/
@@ -59,94 +74,140 @@ static GdkPixbuf *default_pixbuf = NULL;
 static void gl_label_image_finalize      (GObject           *object);
 
 static void copy                         (glLabelObject     *dst_object,
-                                         glLabelObject     *src_object);
+                                          glLabelObject     *src_object);
+
+static void set_size                     (glLabelObject     *object,
+                                          gdouble            w,
+                                          gdouble            h,
+                                          gboolean           checkpoint);
 
-static void set_size                      (glLabelObject      *object,
-                                          gdouble             w,
-                                          gdouble             h);
+static void draw_object                  (glLabelObject     *object,
+                                          cairo_t           *cr,
+                                          gboolean           screen_flag,
+                                          glMergeRecord     *record);
 
-static void    draw_object               (glLabelObject     *object,
+static void draw_shadow                  (glLabelObject     *object,
                                           cairo_t           *cr,
                                           gboolean           screen_flag,
                                           glMergeRecord     *record);
 
+static gboolean object_at                (glLabelObject     *object,
+                                          cairo_t           *cr,
+                                          gdouble            x_pixels,
+                                          gdouble            y_pixels);
+
 
-\f
 /*****************************************************************************/
 /* Boilerplate object stuff.                                                 */
 /*****************************************************************************/
-G_DEFINE_TYPE (glLabelImage, gl_label_image, GL_TYPE_LABEL_OBJECT);
+G_DEFINE_TYPE (glLabelImage, gl_label_image, GL_TYPE_LABEL_OBJECT)
+
 
 static void
 gl_label_image_class_init (glLabelImageClass *class)
 {
-       GObjectClass       *object_class       = G_OBJECT_CLASS (class);
-       glLabelObjectClass *label_object_class = GL_LABEL_OBJECT_CLASS (class);
-
-       gl_label_image_parent_class = g_type_class_peek_parent (class);
+        GObjectClass       *object_class       = G_OBJECT_CLASS (class);
+        glLabelObjectClass *label_object_class = GL_LABEL_OBJECT_CLASS (class);
+        GdkPixbuf          *pixbuf;
 
-       label_object_class->copy           = copy;
-       label_object_class->set_size       = set_size;
-        label_object_class->draw_object    = draw_object;
-        label_object_class->draw_shadow    = NULL;
+        gl_label_image_parent_class = g_type_class_peek_parent (class);
 
-       object_class->finalize = gl_label_image_finalize;
-}
+        label_object_class->copy              = copy;
+        label_object_class->set_size          = set_size;
+        label_object_class->draw_object       = draw_object;
+        label_object_class->draw_shadow       = draw_shadow;
+        label_object_class->object_at         = object_at;
 
-static void
-gl_label_image_init (glLabelImage *limage)
-{
-        GdkPixbuf *pixbuf;
+        object_class->finalize = gl_label_image_finalize;
 
-       if ( default_pixbuf == NULL ) {
-               pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **)checkerboard_xpm);
+        if ( default_pixbuf == NULL ) {
+                pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **)checkerboard_xpm);
                 default_pixbuf =
                         gdk_pixbuf_scale_simple (pixbuf, 128, 128, GDK_INTERP_NEAREST);
                 g_object_unref (pixbuf);
-       }
+        }
+}
 
-       limage->priv = g_new0 (glLabelImagePrivate, 1);
 
-       limage->priv->filename = g_new0 (glTextNode, 1);
+static void
+gl_label_image_init (glLabelImage *this)
+{
+        this->priv = g_new0 (glLabelImagePrivate, 1);
+
+        this->priv->filename = g_new0 (glTextNode, 1);
 
-       limage->priv->pixbuf = default_pixbuf;
+        this->priv->type       = FILE_TYPE_NONE;
+        this->priv->pixbuf     = NULL;
+        this->priv->svg_handle = NULL;
 }
 
+
 static void
 gl_label_image_finalize (GObject *object)
 {
-       glLabelObject *lobject = GL_LABEL_OBJECT (object);
-       glLabelImage  *limage  = GL_LABEL_IMAGE (object);;
-       GHashTable    *pixbuf_cache;
+        glLabelObject *lobject = GL_LABEL_OBJECT (object);
+        glLabelImage  *this  = GL_LABEL_IMAGE (object);
+        glLabel       *label;
+        GHashTable    *cache;
 
-       g_return_if_fail (object && GL_IS_LABEL_IMAGE (object));
+        g_return_if_fail (object && GL_IS_LABEL_IMAGE (object));
 
-       if (!limage->priv->filename->field_flag) {
-               pixbuf_cache = gl_label_get_pixbuf_cache (lobject->parent);
-               gl_pixbuf_cache_remove_pixbuf (pixbuf_cache,
-                                              limage->priv->filename->data);
-       }
-       gl_text_node_free (&limage->priv->filename);
-       g_free (limage->priv);
+        if (!this->priv->filename->field_flag) {
+                
+                label = gl_label_object_get_parent (lobject);
+
+                switch ( this->priv->type )
+                {
+
+                case FILE_TYPE_PIXBUF:
+                        cache = gl_label_get_pixbuf_cache (label);
+                        gl_pixbuf_cache_remove_pixbuf (cache, this->priv->filename->data);
+                        break;
+
+                case FILE_TYPE_SVG:
+                        cache = gl_label_get_svg_cache (label);
+                        gl_svg_cache_remove_svg (cache, this->priv->filename->data);
+                        break;
+
+                default:
+                        break;
+
+                }
+
+        }
+        gl_text_node_free (&this->priv->filename);
+        g_free (this->priv);
 
-       G_OBJECT_CLASS (gl_label_image_parent_class)->finalize (object);
+        G_OBJECT_CLASS (gl_label_image_parent_class)->finalize (object);
 }
 
+
 /*****************************************************************************/
 /* NEW label "image" object.                                                 */
 /*****************************************************************************/
 GObject *
-gl_label_image_new (glLabel *label)
+gl_label_image_new (glLabel *label,
+                    gboolean checkpoint)
 {
-       glLabelImage *limage;
+        glLabelImage *this;
+
+        this = g_object_new (gl_label_image_get_type(), NULL);
 
-       limage = g_object_new (gl_label_image_get_type(), NULL);
+        if (label != NULL)
+        {
+                if ( checkpoint )
+                {
+                        gl_label_checkpoint (label, _("Create image object"));
+                }
 
-       gl_label_object_set_parent (GL_LABEL_OBJECT(limage), label);
+                gl_label_add_object (label, GL_LABEL_OBJECT (this));
+                gl_label_object_set_parent (GL_LABEL_OBJECT (this), label);
+        }
 
-       return G_OBJECT (limage);
+        return G_OBJECT (this);
 }
 
+
 /*****************************************************************************/
 /* Copy object contents.                                                     */
 /*****************************************************************************/
@@ -154,32 +215,58 @@ static void
 copy (glLabelObject *dst_object,
       glLabelObject *src_object)
 {
-       glLabelImage     *limage     = (glLabelImage *)src_object;
-       glLabelImage     *new_limage = (glLabelImage *)dst_object;
-       glTextNode       *filename;
-       GdkPixbuf        *pixbuf;
-       GHashTable       *pixbuf_cache;
+        glLabelImage     *src_limage = (glLabelImage *)src_object;
+        glLabelImage     *new_limage = (glLabelImage *)dst_object;
+        glTextNode       *filename;
+        GdkPixbuf        *pixbuf;
+        gchar            *contents;
+        glLabel          *src_label, *dst_label;
+        GHashTable       *cache;
 
-       gl_debug (DEBUG_LABEL, "START");
+        gl_debug (DEBUG_LABEL, "START");
 
-       g_return_if_fail (limage && GL_IS_LABEL_IMAGE (limage));
-       g_return_if_fail (new_limage && GL_IS_LABEL_IMAGE (new_limage));
+        g_return_if_fail (src_limage && GL_IS_LABEL_IMAGE (src_limage));
+        g_return_if_fail (new_limage && GL_IS_LABEL_IMAGE (new_limage));
 
-       filename = gl_label_image_get_filename (limage);
+        filename = gl_label_image_get_filename (src_limage);
 
-       /* Make sure destination label has data suitably cached. */
-       if ( !filename->field_flag && (filename->data != NULL) ) {
-               pixbuf = limage->priv->pixbuf;
-               if ( pixbuf != default_pixbuf ) {
-                       pixbuf_cache = gl_label_get_pixbuf_cache (dst_object->parent);
-                       gl_pixbuf_cache_add_pixbuf (pixbuf_cache, filename->data, pixbuf);
-               }
-       }
+        /* Make sure destination label has data suitably cached. */
+        if ( !filename->field_flag && (src_limage->priv->type != FILE_TYPE_NONE) )
+        {
+                src_label = gl_label_object_get_parent (src_object);
+                dst_label = gl_label_object_get_parent (dst_object);
+
+                switch ( src_limage->priv->type )
+                {
+
+                case FILE_TYPE_PIXBUF:
+                        pixbuf = src_limage->priv->pixbuf;
+                        if ( pixbuf != NULL ) {
+                                cache = gl_label_get_pixbuf_cache (dst_label);
+                                gl_pixbuf_cache_add_pixbuf (cache, filename->data, pixbuf);
+                        }
+                        break;
+
+                case FILE_TYPE_SVG:
+                        cache = gl_label_get_svg_cache (src_label);
+                        contents = gl_svg_cache_get_contents (cache, filename->data);
+                        if ( contents != NULL ) {
+                                cache = gl_label_get_svg_cache (dst_label);
+                                gl_svg_cache_add_svg (cache, filename->data, contents);
+                                g_free (contents);
+                        }
+                        break;
+
+                default:
+                        break;
+
+                }
+        }
 
-       gl_label_image_set_filename (new_limage, filename);
-       gl_text_node_free (&filename);
+        gl_label_image_set_filename (new_limage, filename, FALSE);
+        gl_text_node_free (&filename);
 
-       gl_debug (DEBUG_LABEL, "END");
+        gl_debug (DEBUG_LABEL, "END");
 }
 
 
@@ -188,10 +275,11 @@ copy (glLabelObject *dst_object,
 /*---------------------------------------------------------------------------*/
 static void
 set_size (glLabelObject *object,
-         gdouble        w,
-         gdouble        h)
+          gdouble        w,
+          gdouble        h,
+          gboolean       checkpoint)
 {
-       g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
+        g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
 
         if (w < MIN_IMAGE_SIZE)
         {
@@ -203,7 +291,7 @@ set_size (glLabelObject *object,
                 h = MIN_IMAGE_SIZE;
         }
 
-       GL_LABEL_OBJECT_CLASS (gl_label_image_parent_class)->set_size (object, w, h);
+        GL_LABEL_OBJECT_CLASS (gl_label_image_parent_class)->set_size (object, w, h, checkpoint);
 }
 
 
@@ -211,114 +299,382 @@ set_size (glLabelObject *object,
 /* Set object params.                                                        */
 /*****************************************************************************/
 void
-gl_label_image_set_filename (glLabelImage *limage,
-                            glTextNode   *filename)
+gl_label_image_set_filename (glLabelImage *this,
+                             glTextNode   *filename,
+                             gboolean      checkpoint)
 {
-       glTextNode  *old_filename;
-       GHashTable  *pixbuf_cache;
-       GdkPixbuf   *pixbuf;
-       gdouble      image_w, image_h, aspect_ratio, w, h;
+        glTextNode        *old_filename;
+        glLabel           *label;
+        GHashTable        *pixbuf_cache;
+        GHashTable        *svg_cache;
+        GdkPixbuf         *pixbuf;
+        RsvgHandle        *svg_handle;
+        RsvgDimensionData  svg_dim;
+        gdouble            image_w, image_h, aspect_ratio, w, h;
 
-       gl_debug (DEBUG_LABEL, "START");
+        gl_debug (DEBUG_LABEL, "START");
 
-       g_return_if_fail (limage && GL_IS_LABEL_IMAGE (limage));
-       g_return_if_fail (filename != NULL);
+        g_return_if_fail (this && GL_IS_LABEL_IMAGE (this));
+        g_return_if_fail (filename != NULL);
 
-       old_filename = limage->priv->filename;
+        old_filename = this->priv->filename;
 
-       /* If Unchanged don't do anything */
-       if ( gl_text_node_equal (filename, old_filename ) ) {
-               return;
-       }
+        /* If Unchanged don't do anything */
+        if ( gl_text_node_equal (filename, old_filename ) ) {
+                return;
+        }
 
-       pixbuf_cache = gl_label_get_pixbuf_cache (GL_LABEL_OBJECT(limage)->parent);
+        label = gl_label_object_get_parent (GL_LABEL_OBJECT (this));
+        pixbuf_cache = gl_label_get_pixbuf_cache (label);
+        svg_cache    = gl_label_get_svg_cache (label);
 
-       /* Remove reference to previous pixbuf from cache, if needed. */
-       if ( !old_filename->field_flag && (old_filename->data != NULL) ) {
-               gl_pixbuf_cache_remove_pixbuf (pixbuf_cache, old_filename->data);
-       }
+        if ( checkpoint )
+        {
+                gl_label_checkpoint (label, _("Set image"));
+        }
 
-       /* Set new filename. */
-       limage->priv->filename = gl_text_node_dup(filename);
-       gl_text_node_free (&old_filename);
+        /* Set new filename. */
+        this->priv->filename = gl_text_node_dup(filename);
 
-       /* Now set the pixbuf. */
-       if ( filename->field_flag || (filename->data == NULL) ) {
+        /* Remove reference to previous item. */
+        switch (this->priv->type)
+        {
 
-               limage->priv->pixbuf = default_pixbuf;
+        case FILE_TYPE_PIXBUF:
+                if ( !old_filename->field_flag && (old_filename->data != NULL) ) {
+                        gl_pixbuf_cache_remove_pixbuf (pixbuf_cache, old_filename->data);
+                }
+                break;
 
-       } else {
+        case FILE_TYPE_SVG:
+                if ( !old_filename->field_flag && (old_filename->data != NULL) ) {
+                        gl_svg_cache_remove_svg (svg_cache, old_filename->data);
+                }
+                break;
 
-               pixbuf = gl_pixbuf_cache_get_pixbuf (pixbuf_cache, filename->data);
+        default:
+                break;
 
-               if (pixbuf != NULL) {
-                       limage->priv->pixbuf = pixbuf;
-               } else {
-                       limage->priv->pixbuf = default_pixbuf;
-               }
-       }
+        }
 
-       /* Treat current size as a bounding box, scale image to maintain aspect
-        * ratio while fitting it in this bounding box. */
-       image_w = gdk_pixbuf_get_width (limage->priv->pixbuf);
-       image_h = gdk_pixbuf_get_height (limage->priv->pixbuf);
-       aspect_ratio = image_h / image_w;
-       gl_label_object_get_size (GL_LABEL_OBJECT(limage), &w, &h);
-       if ( h > w*aspect_ratio ) {
-               h = w * aspect_ratio;
-       } else {
-               w = h / aspect_ratio;
-       }
-       gl_label_object_set_size (GL_LABEL_OBJECT(limage), w, h);
+        gl_text_node_free (&old_filename);
+
+
+        /* Now set the new file type and the pixbuf or svg_handle. */
+        if ( !filename->field_flag && (filename->data != NULL) )
+        {
+
+                if ( gl_file_util_is_extension (filename->data, ".svg") )
+                {
+                        svg_handle = gl_svg_cache_get_handle (svg_cache, filename->data);
+
+                        if (svg_handle != NULL)
+                        {
+                                this->priv->type       = FILE_TYPE_SVG;
+                                this->priv->pixbuf     = NULL;
+                                this->priv->svg_handle = svg_handle;
+                        }
+                        else
+                        {
+                                this->priv->type       = FILE_TYPE_NONE;
+                                this->priv->pixbuf     = NULL;
+                                this->priv->svg_handle = NULL;
+                        }
+
+                }
+                else
+                {
+
+                        pixbuf = gl_pixbuf_cache_get_pixbuf (pixbuf_cache, filename->data);
+
+                        if (pixbuf != NULL)
+                        {
+                                this->priv->type       = FILE_TYPE_PIXBUF;
+                                this->priv->pixbuf     = pixbuf;
+                                this->priv->svg_handle = NULL;
+                        }
+                        else
+                        {
+                                this->priv->type       = FILE_TYPE_NONE;
+                                this->priv->pixbuf     = NULL;
+                                this->priv->svg_handle = NULL;
+                        }
+
+                }
+        }
+        else
+        {
+                this->priv->type       = FILE_TYPE_NONE;
+                this->priv->pixbuf     = NULL;
+                this->priv->svg_handle = NULL;
+        }
+
+
+        /* Treat current size as a bounding box, scale image to maintain aspect
+         * ratio while fitting it in this bounding box. */
+        switch (this->priv->type)
+        {
+
+        case FILE_TYPE_PIXBUF:
+                image_w = gdk_pixbuf_get_width (this->priv->pixbuf);
+                image_h = gdk_pixbuf_get_height (this->priv->pixbuf);
+                break;
+
+        case FILE_TYPE_SVG:
+                rsvg_handle_get_dimensions (this->priv->svg_handle, &svg_dim);
+                image_w = svg_dim.width;
+                image_h = svg_dim.height;
+                break;
+
+        default:
+                image_w = gdk_pixbuf_get_width (default_pixbuf);
+                image_h = gdk_pixbuf_get_height (default_pixbuf);
+                break;
+
+        }
+        aspect_ratio = image_h / image_w;
+        gl_label_object_get_size (GL_LABEL_OBJECT(this), &w, &h);
+        if ( h > w*aspect_ratio ) {
+                h = w * aspect_ratio;
+        } else {
+                w = h / aspect_ratio;
+        }
+        gl_label_object_set_size (GL_LABEL_OBJECT(this), w, h, FALSE);
+
+        gl_label_object_emit_changed (GL_LABEL_OBJECT(this));
+
+        gl_debug (DEBUG_LABEL, "END");
+}
+
+
+void
+gl_label_image_set_pixbuf (glLabelImage  *this,
+                           GdkPixbuf     *pixbuf,
+                           gboolean       checkpoint)
+{
+        glTextNode  *old_filename;
+        glLabel     *label;
+        GHashTable  *pixbuf_cache;
+        GHashTable  *svg_cache;
+        gchar       *cs;
+        gchar       *name;
+        gdouble      image_w, image_h;
+
+        gl_debug (DEBUG_LABEL, "START");
+
+        g_return_if_fail (this && GL_IS_LABEL_IMAGE (this));
+        g_return_if_fail (pixbuf && GDK_IS_PIXBUF (pixbuf));
+
+        old_filename = this->priv->filename;
+
+        label = gl_label_object_get_parent (GL_LABEL_OBJECT (this));
+
+        if ( checkpoint )
+        {
+                gl_label_checkpoint (label, _("Set image"));
+        }
+
+        pixbuf_cache = gl_label_get_pixbuf_cache (label);
+        svg_cache = gl_label_get_svg_cache (label);
+
+        /* Remove reference to previous item. */
+        switch (this->priv->type)
+        {
+
+        case FILE_TYPE_PIXBUF:
+                if ( !old_filename->field_flag && (old_filename->data != NULL) ) {
+                        gl_pixbuf_cache_remove_pixbuf (pixbuf_cache, old_filename->data);
+                }
+                break;
+
+        case FILE_TYPE_SVG:
+                if ( !old_filename->field_flag && (old_filename->data != NULL) ) {
+                        gl_svg_cache_remove_svg (svg_cache, old_filename->data);
+                }
+                break;
+
+        default:
+                break;
+
+        }
+
+        /* Set new filename. */
+        cs = g_compute_checksum_for_data (G_CHECKSUM_MD5,
+                                          gdk_pixbuf_get_pixels (pixbuf),
+                                          gdk_pixbuf_get_rowstride (pixbuf)*gdk_pixbuf_get_height (pixbuf));
+        name = g_strdup_printf ("%s.bitmap", cs);
+        this->priv->filename = gl_text_node_new_from_text(name);
+        gl_text_node_free (&old_filename);
 
-       gl_label_object_emit_changed (GL_LABEL_OBJECT(limage));
+        this->priv->pixbuf = g_object_ref (pixbuf);
+        gl_pixbuf_cache_add_pixbuf (pixbuf_cache, name, pixbuf);
 
-       gl_debug (DEBUG_LABEL, "END");
+        g_free (cs);
+        g_free (name);
+
+        this->priv->type       = FILE_TYPE_PIXBUF;
+        this->priv->svg_handle = NULL;
+
+        image_w = gdk_pixbuf_get_width (this->priv->pixbuf);
+        image_h = gdk_pixbuf_get_height (this->priv->pixbuf);
+        gl_label_object_set_size (GL_LABEL_OBJECT(this), image_w, image_h, FALSE);
+
+        gl_label_object_emit_changed (GL_LABEL_OBJECT(this));
+
+        gl_debug (DEBUG_LABEL, "END");
 }
 
 
 /*****************************************************************************/
 /* Get object params.                                                        */
 /*****************************************************************************/
-glTextNode *
-gl_label_image_get_filename (glLabelImage *limage)
+GdkPixbuf *
+gl_label_image_get_pixbuf (glLabelImage  *this,
+                           glMergeRecord *record)
 {
-       g_return_val_if_fail (limage && GL_IS_LABEL_IMAGE (limage), NULL);
+        g_return_val_if_fail (this && GL_IS_LABEL_IMAGE (this), NULL);
+
+        if ((record != NULL) && this->priv->filename->field_flag)
+        {
+
+                GdkPixbuf   *pixbuf = NULL;
+                gchar       *real_filename;
+
+                /* Indirect filename, re-evaluate for given record. */
+
+                real_filename = gl_merge_eval_key (record,
+                                                  this->priv->filename->data);
+
+                if (real_filename != NULL)
+                {
+                        pixbuf = gdk_pixbuf_new_from_file (real_filename, NULL);
+                }
+                return pixbuf;
+        }
 
-       return gl_text_node_dup (limage->priv->filename);
+        if ( this->priv->type == FILE_TYPE_PIXBUF )
+        {
+                return g_object_ref (this->priv->pixbuf);
+        }
+        else
+        {
+                return NULL;
+        }
 }
 
-const GdkPixbuf *
-gl_label_image_get_pixbuf (glLabelImage  *limage,
-                          glMergeRecord *record)
+
+RsvgHandle *
+gl_label_image_get_svg_handle (glLabelImage  *this,
+                               glMergeRecord *record)
 {
-       g_return_val_if_fail (limage && GL_IS_LABEL_IMAGE (limage), NULL);
+       g_return_val_if_fail (this && GL_IS_LABEL_IMAGE (this), NULL);
 
-       if ((record != NULL) && limage->priv->filename->field_flag) {
+       if ((record != NULL) && this->priv->filename->field_flag)
+        {
 
-               GdkPixbuf   *pixbuf = NULL;
+               RsvgHandle  *svg_handle = NULL;
                gchar       *real_filename;
 
                /* Indirect filename, re-evaluate for given record. */
 
                real_filename = gl_merge_eval_key (record,
-                                                  limage->priv->filename->data);
-
-               if (real_filename != NULL) {
-                       pixbuf = gdk_pixbuf_new_from_file (real_filename, NULL);
-               }
-               if ( pixbuf != NULL ) {
-                       return pixbuf;
-               } else {
-                       return default_pixbuf;
+                                                  this->priv->filename->data);
+
+               if (real_filename != NULL)
+                {
+                        if ( gl_file_util_is_extension (real_filename, ".svg") )
+                        {
+                                svg_handle = rsvg_handle_new_from_file (real_filename, NULL);
+                        }
                }
-
+                return svg_handle;
        }
 
-       return limage->priv->pixbuf;
+        if ( this->priv->type == FILE_TYPE_SVG )
+        {
+                return g_object_ref (this->priv->svg_handle);
+        }
+        else
+        {
+                return NULL;
+        }
+}
+
+
+static FileType
+get_type (glLabelImage  *this,
+          glMergeRecord *record)
+{
+       g_return_val_if_fail (this && GL_IS_LABEL_IMAGE (this), FALSE);
+
+       if ((record != NULL) && this->priv->filename->field_flag)
+        {
+               gchar       *real_filename;
+
+               real_filename = gl_merge_eval_key (record,
+                                                  this->priv->filename->data);
+
+                if ( gl_file_util_is_extension (real_filename, ".svg") )
+                {
+                        return FILE_TYPE_SVG;
+                }
+                else
+                {
+                        /* Assume a pixbuf compat file.  If not, queries for
+                           pixbufs should return NULL and do the right thing. */
+                        return FILE_TYPE_PIXBUF;
+                }
+        }
+        else
+        {
+                return (this->priv->type);
+        }
+}
+
+
+glTextNode *
+gl_label_image_get_filename (glLabelImage *this)
+{
+        g_return_val_if_fail (this && GL_IS_LABEL_IMAGE (this), NULL);
+
+        return gl_text_node_dup (this->priv->filename);
+}
+
+
+void
+gl_label_image_get_base_size (glLabelImage *this,
+                              gdouble      *w,
+                              gdouble      *h)
+{
+        RsvgDimensionData  svg_dim;
+
+        g_return_if_fail (this && GL_IS_LABEL_IMAGE (this));
+        g_return_if_fail (w != NULL);
+        g_return_if_fail (h != NULL);
+
+        switch (this->priv->type)
+        {
+
+        case FILE_TYPE_PIXBUF:
+                *w = gdk_pixbuf_get_width (this->priv->pixbuf);
+                *h = gdk_pixbuf_get_height (this->priv->pixbuf);
+                break;
+
+        case FILE_TYPE_SVG:
+                rsvg_handle_get_dimensions (this->priv->svg_handle, &svg_dim);
+                *w = svg_dim.width;
+                *h = svg_dim.height;
+                break;
 
+        default:
+                *w = gdk_pixbuf_get_width (default_pixbuf);
+                *h = gdk_pixbuf_get_height (default_pixbuf);
+                break;
+
+        }
 }
 
+
 /*****************************************************************************/
 /* Draw object method.                                                       */
 /*****************************************************************************/
@@ -328,32 +684,168 @@ draw_object (glLabelObject *object,
              gboolean       screen_flag,
              glMergeRecord *record)
 {
-        gdouble          x0, y0;
-       gdouble          w, h;
-       const GdkPixbuf *pixbuf;
-       gint             image_w, image_h;
+        glLabelImage      *this = GL_LABEL_IMAGE (object);
+        gdouble            w, h;
+        gdouble            image_w, image_h;
+        GdkPixbuf         *pixbuf;
+        RsvgHandle        *svg_handle;
+        RsvgDimensionData  svg_dim;
 
-       gl_debug (DEBUG_LABEL, "START");
+        gl_debug (DEBUG_LABEL, "START");
 
-       gl_label_object_get_size (object, &w, &h);
-        gl_label_object_get_position (object, &x0, &y0);
+        gl_label_object_get_size (object, &w, &h);
 
-       pixbuf = gl_label_image_get_pixbuf (GL_LABEL_IMAGE (object), record);
-       image_w = gdk_pixbuf_get_width (pixbuf);
-       image_h = gdk_pixbuf_get_height (pixbuf);
+        cairo_save (cr);
 
-       cairo_save (cr);
+        switch (get_type (this, record))
+        {
 
-        cairo_rectangle (cr, 0.0, 0.0, w, h);
+        case FILE_TYPE_PIXBUF:
+                pixbuf = gl_label_image_get_pixbuf (this, record);
+                if ( pixbuf )
+                {
+                        image_w = gdk_pixbuf_get_width (pixbuf);
+                        image_h = gdk_pixbuf_get_height (pixbuf);
+                        cairo_rectangle (cr, 0.0, 0.0, w, h);
+                        cairo_scale (cr, w/image_w, h/image_h);
+                        gdk_cairo_set_source_pixbuf (cr, pixbuf, 0, 0);
+                        cairo_fill (cr);
+                        g_object_unref (pixbuf);
+                }
+                break;
+
+        case FILE_TYPE_SVG:
+                svg_handle = gl_label_image_get_svg_handle (this, record);
+                if ( svg_handle )
+                {
+                        rsvg_handle_get_dimensions (svg_handle, &svg_dim);
+                        cairo_scale (cr, w/svg_dim.width, h/svg_dim.height);
+                        rsvg_handle_render_cairo (svg_handle, cr);
+                }
+                break;
+
+        default:
+                cairo_rectangle (cr, 0.0, 0.0, w, h);
+                image_w = gdk_pixbuf_get_width (default_pixbuf);
+                image_h = gdk_pixbuf_get_height (default_pixbuf);
+                cairo_scale (cr, w/image_w, h/image_h);
+                gdk_cairo_set_source_pixbuf (cr, default_pixbuf, 0, 0);
+                cairo_fill (cr);
+                break;
 
-       cairo_scale (cr, w/image_w, h/image_h);
-        gdk_cairo_set_source_pixbuf (cr, (GdkPixbuf *)pixbuf, 0, 0);
-        cairo_fill (cr);
+        }
 
-       cairo_restore (cr);
+        cairo_restore (cr);
 
-       gl_debug (DEBUG_LABEL, "END");
+        gl_debug (DEBUG_LABEL, "END");
 }
 
 
+/*****************************************************************************/
+/* Draw shadow method.                                                       */
+/*****************************************************************************/
+static void
+draw_shadow (glLabelObject *object,
+             cairo_t       *cr,
+             gboolean       screen_flag,
+             glMergeRecord *record)
+{
+        glLabelImage    *this = GL_LABEL_IMAGE (object);
+        gdouble          w, h;
+        GdkPixbuf       *pixbuf;
+        GdkPixbuf       *shadow_pixbuf;
+        gdouble          image_w, image_h;
+        glColorNode     *shadow_color_node;
+        guint            shadow_color;
+        gdouble          shadow_opacity;
+
+        gl_debug (DEBUG_LABEL, "START");
+
+        gl_label_object_get_size (object, &w, &h);
+
+        shadow_color_node = gl_label_object_get_shadow_color (object);
+        shadow_color = gl_color_node_expand (shadow_color_node, record);
+        if (shadow_color_node->field_flag && screen_flag)
+        {
+                shadow_color = GL_COLOR_SHADOW_MERGE_DEFAULT;
+        }
+        shadow_opacity = gl_label_object_get_shadow_opacity (object);
+
+        cairo_save (cr);
+
+        switch (get_type (this, record))
+        {
 
+        case FILE_TYPE_PIXBUF:
+                pixbuf = gl_label_image_get_pixbuf (this, record);
+                if ( pixbuf )
+                {
+                        image_w = gdk_pixbuf_get_width (pixbuf);
+                        image_h = gdk_pixbuf_get_height (pixbuf);
+
+                        shadow_pixbuf = gl_pixbuf_util_create_shadow_pixbuf (pixbuf,
+                                                                             shadow_color, shadow_opacity);
+                        cairo_rectangle (cr, 0.0, 0.0, w, h);
+                        cairo_scale (cr, w/image_w, h/image_h);
+                        gdk_cairo_set_source_pixbuf (cr, (GdkPixbuf *)shadow_pixbuf, 0, 0);
+                        cairo_fill (cr);
+
+                        g_object_unref (G_OBJECT (shadow_pixbuf));
+                        g_object_unref (G_OBJECT (pixbuf));
+                }
+                break;
+
+        case FILE_TYPE_SVG:
+                /* FIXME: no shadow support, yet. */
+                break;
+
+        default:
+                shadow_color = gl_color_set_opacity (shadow_color, shadow_opacity);
+
+                cairo_rectangle (cr, 0.0, 0.0, w, h);
+                cairo_set_source_rgba (cr, GL_COLOR_RGBA_ARGS (shadow_color));
+                cairo_fill (cr);
+                break;
+        }
+
+        cairo_restore (cr);
+
+        gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Is object at coordinates?                                                 */
+/*****************************************************************************/
+static gboolean
+object_at (glLabelObject *object,
+           cairo_t       *cr,
+           gdouble        x,
+           gdouble        y)
+{
+        gdouble           w, h;
+
+        gl_label_object_get_size (object, &w, &h);
+
+        cairo_new_path (cr);
+        cairo_rectangle (cr, 0.0, 0.0, w, h);
+
+        if (cairo_in_fill (cr, x, y))
+        {
+                return TRUE;
+        }
+
+        return FALSE;
+}
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index a45f0c79ac70876e45123369dae6708da11fa8c8..98abc46366b37e6d0d528cb299591b9930f00914 100644 (file)
@@ -1,34 +1,30 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  label_image.h:  GLabels label image object
+ *  label-image.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __LABEL_IMAGE_H__
 #define __LABEL_IMAGE_H__
 
+#include <gdk-pixbuf/gdk-pixbuf.h>
 #include "label-object.h"
 #include "text-node.h"
 #include "merge.h"
-#include <gdk-pixbuf/gdk-pixbuf.h>
 
 G_BEGIN_DECLS
 
@@ -54,18 +50,43 @@ struct _glLabelImageClass {
        glLabelObjectClass    parent_class;
 };
 
-GType            gl_label_image_get_type     (void) G_GNUC_CONST;
+GType            gl_label_image_get_type       (void) G_GNUC_CONST;
+
+GObject         *gl_label_image_new            (glLabel       *label,
+                                                gboolean       checkpoint);
+
+void             gl_label_image_set_filename   (glLabelImage  *limage,
+                                                glTextNode    *filename,
+                                                gboolean       checkpoint);
+
+void             gl_label_image_set_pixbuf     (glLabelImage  *limage,
+                                                GdkPixbuf     *pixbuf,
+                                                gboolean       checkpoint);
 
-GObject         *gl_label_image_new          (glLabel       *label);
+GdkPixbuf       *gl_label_image_get_pixbuf     (glLabelImage  *limage,
+                                                glMergeRecord *record);
 
-void             gl_label_image_set_filename (glLabelImage  *limage,
-                                             glTextNode    *filename);
+RsvgHandle      *gl_label_image_get_svg_handle (glLabelImage  *this,
+                                                glMergeRecord *record);
 
-glTextNode      *gl_label_image_get_filename (glLabelImage  *limage);
+glTextNode      *gl_label_image_get_filename   (glLabelImage  *limage);
 
-const GdkPixbuf *gl_label_image_get_pixbuf   (glLabelImage  *limage,
-                                             glMergeRecord *record);
+void             gl_label_image_get_base_size  (glLabelImage *this,
+                                                gdouble      *w,
+                                                gdouble      *h);
 
 G_END_DECLS
 
 #endif /* __LABEL_IMAGE_H__ */
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index b3eae407df7ba7dc72dfe0f51dedc5f79e0f455e..c88e2ed352ca4396fe1155f979ca4aea044e5fb9 100644 (file)
@@ -1,35 +1,31 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  label_line.c:  GLabels label line object
+ *  label-line.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include "label-line.h"
 
-#include <glib/gmem.h>
-#include <glib/gstrfuncs.h>
-#include <glib/gmessages.h>
+#include <glib/gi18n.h>
+#include <glib.h>
 
 #include "debug.h"
 
+
 /*========================================================*/
 /* Private types.                                         */
 /*========================================================*/
@@ -39,28 +35,32 @@ struct _glLabelLinePrivate {
        glColorNode     *line_color_node;
 };
 
+
 /*========================================================*/
 /* Private globals.                                       */
 /*========================================================*/
 
+
 /*========================================================*/
 /* Private function prototypes.                           */
 /*========================================================*/
 
-static void    gl_label_line_finalize      (GObject          *object);
+static void    gl_label_line_finalize     (GObject           *object);
 
-static void    copy                        (glLabelObject    *dst_object,
-                                           glLabelObject    *src_object);
+static void    copy                       (glLabelObject     *dst_object,
+                                          glLabelObject     *src_object);
 
-static void    set_line_color              (glLabelObject    *object,
-                                           glColorNode      *line_color_node);
+static void    set_line_color             (glLabelObject     *object,
+                                          glColorNode       *line_color_node,
+                                           gboolean           checkpoint);
 
-static void    set_line_width              (glLabelObject    *object,
-                                           gdouble           line_width);
+static void    set_line_width             (glLabelObject     *object,
+                                          gdouble            line_width,
+                                           gboolean           checkpoint);
 
-static glColorNode   *get_line_color       (glLabelObject    *object);
+static glColorNode   *get_line_color      (glLabelObject     *object);
 
-static gdouble get_line_width              (glLabelObject    *object);
+static gdouble get_line_width             (glLabelObject     *object);
 
 static void    draw_object                (glLabelObject     *object,
                                            cairo_t           *cr,
@@ -72,12 +72,17 @@ static void    draw_shadow                (glLabelObject     *object,
                                            gboolean           screen_flag,
                                            glMergeRecord     *record);
 
+static gboolean object_at                 (glLabelObject     *object,
+                                           cairo_t           *cr,
+                                           gdouble            x_pixels,
+                                           gdouble            y_pixels);
+
 
-\f
 /*****************************************************************************/
 /* Boilerplate object stuff.                                                 */
 /*****************************************************************************/
-G_DEFINE_TYPE (glLabelLine, gl_label_line, GL_TYPE_LABEL_OBJECT);
+G_DEFINE_TYPE (glLabelLine, gl_label_line, GL_TYPE_LABEL_OBJECT)
+
 
 static void
 gl_label_line_class_init (glLabelLineClass *class)
@@ -94,17 +99,21 @@ gl_label_line_class_init (glLabelLineClass *class)
        label_object_class->get_line_width = get_line_width;
         label_object_class->draw_object    = draw_object;
         label_object_class->draw_shadow    = draw_shadow;
+       label_object_class->draw_handles   = gl_label_object_draw_handles_line;
+        label_object_class->object_at      = object_at;
+       label_object_class->handle_at      = gl_label_object_line_handle_at;
 
        object_class->finalize = gl_label_line_finalize;
 }
 
+
 static void
 gl_label_line_init (glLabelLine *lline)
 {
        lline->priv = g_new0 (glLabelLinePrivate, 1);
-       lline->priv->line_color_node = gl_color_node_new_default ();
 }
 
+
 static void
 gl_label_line_finalize (GObject *object)
 {
@@ -118,21 +127,41 @@ gl_label_line_finalize (GObject *object)
        G_OBJECT_CLASS (gl_label_line_parent_class)->finalize (object);
 }
 
+
 /*****************************************************************************/
 /* NEW label "line" object.                                               */
 /*****************************************************************************/
 GObject *
-gl_label_line_new (glLabel *label)
+gl_label_line_new (glLabel *label,
+                   gboolean checkpoint)
 {
-       glLabelLine *lline;
+       glLabelLine         *lline;
+       glColorNode         *line_color_node;
 
        lline = g_object_new (gl_label_line_get_type(), NULL);
 
-       gl_label_object_set_parent (GL_LABEL_OBJECT(lline), label);
+        if (label != NULL)
+        {
+                if ( checkpoint )
+                {
+                        gl_label_checkpoint (label, _("Create line object"));
+                }
+
+                line_color_node = gl_color_node_new_default ();
+
+                line_color_node->color = gl_label_get_default_line_color(label);
+
+                lline->priv->line_width      = gl_label_get_default_line_width(label);
+                lline->priv->line_color_node = line_color_node;
+
+                gl_label_add_object (label, GL_LABEL_OBJECT (lline));
+                gl_label_object_set_parent (GL_LABEL_OBJECT (lline), label);
+        }
 
        return G_OBJECT (lline);
 }
 
+
 /*****************************************************************************/
 /* Copy object contents.                                                     */
 /*****************************************************************************/
@@ -153,8 +182,8 @@ copy (glLabelObject *dst_object,
        line_width = get_line_width (src_object);
        line_color_node = get_line_color (src_object);
 
-       set_line_width (dst_object, line_width);
-       set_line_color (dst_object, line_color_node);
+       set_line_width (dst_object, line_width, FALSE);
+       set_line_color (dst_object, line_color_node, FALSE);
 
        gl_color_node_free (&line_color_node);
        
@@ -167,14 +196,22 @@ copy (glLabelObject *dst_object,
 /*---------------------------------------------------------------------------*/
 static void
 set_line_color (glLabelObject *object,
-               glColorNode   *line_color_node)
+               glColorNode   *line_color_node,
+                gboolean       checkpoint)
 {
        glLabelLine *lline = (glLabelLine *)object;
+        glLabel     *label;
 
        g_return_if_fail (lline && GL_IS_LABEL_LINE (lline));
 
-       if ( !gl_color_node_equal (lline->priv->line_color_node, line_color_node)) {
-               
+       if ( !gl_color_node_equal (lline->priv->line_color_node, line_color_node))
+        {
+                if ( checkpoint )
+                {
+                        label = gl_label_object_get_parent (GL_LABEL_OBJECT (lline));
+                        gl_label_checkpoint (label, _("Line color"));
+                }
+
                gl_color_node_free (&(lline->priv->line_color_node ));
                lline->priv->line_color_node = gl_color_node_dup (line_color_node);
                
@@ -182,18 +219,28 @@ set_line_color (glLabelObject *object,
        }
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Set line width method.                                          */
 /*---------------------------------------------------------------------------*/
 static void
 set_line_width (glLabelObject *object,
-               gdouble        line_width)
+               gdouble        line_width,
+                gboolean       checkpoint)
 {
        glLabelLine *lline = (glLabelLine *)object;
+        glLabel     *label;
 
        g_return_if_fail (lline && GL_IS_LABEL_LINE (lline));
 
-       if ( lline->priv->line_width != line_width ) {
+       if ( lline->priv->line_width != line_width )
+        {
+                if ( checkpoint )
+                {
+                        label = gl_label_object_get_parent (GL_LABEL_OBJECT (lline));
+                        gl_label_checkpoint (label, _("Line width"));
+                }
+
                lline->priv->line_width = line_width;
                gl_label_object_emit_changed (GL_LABEL_OBJECT(lline));
        }
@@ -213,6 +260,7 @@ get_line_width (glLabelObject *object)
        return lline->priv->line_width;
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Get line width method.                                          */
 /*---------------------------------------------------------------------------*/
@@ -226,6 +274,7 @@ get_line_color (glLabelObject *object)
        return gl_color_node_dup (lline->priv->line_color_node);
 }
 
+
 /*****************************************************************************/
 /* Draw object method.                                                       */
 /*****************************************************************************/
@@ -268,6 +317,7 @@ draw_object (glLabelObject *object,
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /*****************************************************************************/
 /* Draw shadow method.                                                       */
 /*****************************************************************************/
@@ -321,3 +371,43 @@ draw_shadow (glLabelObject *object,
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
+/*****************************************************************************/
+/* Is object at coordinates?                                                 */
+/*****************************************************************************/
+static gboolean
+object_at (glLabelObject *object,
+           cairo_t       *cr,
+           gdouble        x,
+           gdouble        y)
+{
+        gdouble           w, h;
+        gdouble           line_width;
+
+        gl_label_object_get_size (object, &w, &h);
+
+        cairo_new_path (cr);
+        cairo_move_to (cr, 0, 0);
+        cairo_line_to (cr, w, h);
+
+        line_width = gl_label_object_get_line_width (object);
+        cairo_set_line_width (cr, line_width);
+        if (cairo_in_stroke (cr, x, y))
+        {
+                return TRUE;
+        }
+
+        return FALSE;
+}
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 3b73e42ed56ad215906fc3518fe760f0c94bad5b..7dbb82ac94ff2387fdeb4a0116ff6bb3f019e351 100644 (file)
@@ -1,25 +1,21 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  label_line.h:  GLabels label line object
+ *  label-line.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __LABEL_LINE_H__
@@ -54,9 +50,22 @@ struct _glLabelLineClass {
 
 GType        gl_label_line_get_type       (void) G_GNUC_CONST;
 
-GObject     *gl_label_line_new            (glLabel     *label);
+GObject     *gl_label_line_new            (glLabel     *label,
+                                           gboolean     checkpoint);
 
 
 G_END_DECLS
 
 #endif /* __LABEL_LINE_H__ */
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index fd79e28a67d92f6f5719311467eec02ae4126633..92a8ec20862771f6fbc530086f0a93c40fecffcb 100644 (file)
@@ -1,33 +1,29 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  label_object.c:  GLabels label object base class
+ *  label-object.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "label-object.h"
 
-#include <glib/gmem.h>
-#include <glib/gstrfuncs.h>
-#include <glib/gmessages.h>
+#include <glib/gi18n.h>
+#include <glib.h>
 #include <math.h>
 
 #include "marshal.h"
 
 #define DEFAULT_SHADOW_X_OFFSET (3.6)
 #define DEFAULT_SHADOW_Y_OFFSET (3.6)
+#define DEFAULT_SHADOW_COLOR    GL_COLOR_BLACK
 #define DEFAULT_SHADOW_OPACITY  (0.5)
 
+#define HANDLE_FILL_RGBA_ARGS      0.0,   0.75,  0.0,   0.4
+#define HANDLE_OUTLINE_RGBA_ARGS   0.0,   0.0,   0.0,   0.8
+
+#define HANDLE_OUTLINE_WIDTH_PIXELS   1.0
+#define HANDLE_PIXELS 7
+
+
 /*========================================================*/
 /* Private types.                                         */
 /*========================================================*/
 
 struct _glLabelObjectPrivate {
+
        gchar             *name;
+
+        gboolean           selected_flag;
+        glLabel           *parent;
+
        gdouble            x, y;
        gdouble            w, h;
         cairo_matrix_t     matrix;
@@ -63,42 +72,38 @@ struct _glLabelObjectPrivate {
 };
 
 enum {
-       CHANGED,
-       MOVED,
-       FLIP_ROTATE,
-       TOP,
-       BOTTOM,
-        REMOVED,
-       LAST_SIGNAL
+        CHANGED,
+        MOVED,
+        LAST_SIGNAL
 };
 
+
 /*========================================================*/
 /* Private globals.                                       */
 /*========================================================*/
 
+static guint instance = 0;
+
 static guint signals[LAST_SIGNAL] = {0};
 
-static guint instance = 0;
 
 /*========================================================*/
 /* Private function prototypes.                           */
 /*========================================================*/
 
-static void gl_label_object_finalize      (GObject            *object);
-
-static void merge_changed_cb              (glLabel            *label,
-                                          glLabelObject      *object);
+static void     gl_label_object_finalize  (GObject            *object);
 
-static void set_size                      (glLabelObject      *object,
+static void     set_size                  (glLabelObject      *object,
                                           gdouble             w,
-                                          gdouble             h);
+                                          gdouble             h,
+                                           gboolean            checkpoint);
 
 
-\f
 /*****************************************************************************/
 /* Boilerplate object stuff.                                                 */
 /*****************************************************************************/
-G_DEFINE_TYPE (glLabelObject, gl_label_object, G_TYPE_OBJECT);
+G_DEFINE_TYPE (glLabelObject, gl_label_object, G_TYPE_OBJECT)
+
 
 static void
 gl_label_object_class_init (glLabelObjectClass *class)
@@ -111,7 +116,9 @@ gl_label_object_class_init (glLabelObjectClass *class)
 
        object_class->finalize = gl_label_object_finalize;
 
-       class->set_size = set_size;
+       class->set_size     = set_size;
+       class->draw_handles = gl_label_object_draw_handles_box; /* Default style */
+       class->handle_at    = gl_label_object_box_handle_at;    /* Default style */
 
        signals[CHANGED] =
                g_signal_new ("changed",
@@ -129,43 +136,6 @@ gl_label_object_class_init (glLabelObjectClass *class)
                              G_SIGNAL_RUN_LAST,
                              G_STRUCT_OFFSET (glLabelObjectClass, moved),
                              NULL, NULL,
-                             gl_marshal_VOID__DOUBLE_DOUBLE,
-                             G_TYPE_NONE,
-                             2, G_TYPE_DOUBLE, G_TYPE_DOUBLE);
-       signals[FLIP_ROTATE] =
-               g_signal_new ("flip_rotate",
-                             G_OBJECT_CLASS_TYPE (object_class),
-                             G_SIGNAL_RUN_LAST,
-                             G_STRUCT_OFFSET (glLabelObjectClass, flip_rotate),
-                             NULL, NULL,
-                             gl_marshal_VOID__VOID,
-                             G_TYPE_NONE,
-                             0);
-       signals[TOP] =
-               g_signal_new ("top",
-                             G_OBJECT_CLASS_TYPE (object_class),
-                             G_SIGNAL_RUN_LAST,
-                             G_STRUCT_OFFSET (glLabelObjectClass, top),
-                             NULL, NULL,
-                             gl_marshal_VOID__VOID,
-                             G_TYPE_NONE,
-                             0);
-
-       signals[BOTTOM] =
-               g_signal_new ("bottom",
-                             G_OBJECT_CLASS_TYPE (object_class),
-                             G_SIGNAL_RUN_LAST,
-                             G_STRUCT_OFFSET (glLabelObjectClass, bottom),
-                             NULL, NULL,
-                             gl_marshal_VOID__VOID,
-                             G_TYPE_NONE,
-                             0);
-       signals[REMOVED] =
-               g_signal_new ("removed",
-                             G_OBJECT_CLASS_TYPE (object_class),
-                             G_SIGNAL_RUN_LAST,
-                             G_STRUCT_OFFSET (glLabelObjectClass, removed),
-                             NULL, NULL,
                              gl_marshal_VOID__VOID,
                              G_TYPE_NONE,
                              0);
@@ -173,6 +143,7 @@ gl_label_object_class_init (glLabelObjectClass *class)
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 static void
 gl_label_object_init (glLabelObject *object)
 {
@@ -188,11 +159,13 @@ gl_label_object_init (glLabelObject *object)
        object->priv->shadow_x = DEFAULT_SHADOW_X_OFFSET;
        object->priv->shadow_y = DEFAULT_SHADOW_Y_OFFSET;
        object->priv->shadow_color_node = gl_color_node_new_default ();
+        object->priv->shadow_color_node->color = DEFAULT_SHADOW_COLOR;
        object->priv->shadow_opacity = DEFAULT_SHADOW_OPACITY;
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 static void
 gl_label_object_finalize (GObject *object)
 {
@@ -210,6 +183,7 @@ gl_label_object_finalize (GObject *object)
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /*****************************************************************************/
 /* New label object.                                                         */
 /*****************************************************************************/
@@ -222,13 +196,14 @@ gl_label_object_new (glLabel *label)
 
        object = g_object_new (gl_label_object_get_type(), NULL);
 
-       gl_label_object_set_parent (object, label);
+        gl_label_object_set_parent (object, label);
 
        gl_debug (DEBUG_LABEL, "END");
 
        return G_OBJECT (object);
 }
 
+
 /*****************************************************************************/
 /* Duplicate object.                                                         */
 /*****************************************************************************/
@@ -250,31 +225,31 @@ gl_label_object_dup (glLabelObject *src_object,
 
        dst_object = g_object_new (G_OBJECT_TYPE(src_object), NULL);
 
-       gl_label_object_set_parent (dst_object, label);
+        gl_label_object_set_parent (dst_object, label);
+        dst_object->priv->selected_flag = src_object->priv->selected_flag;
 
        gl_label_object_get_position      (src_object, &x, &y);
-       gl_label_object_get_size          (src_object, &w, &h);
+       gl_label_object_get_raw_size      (src_object, &w, &h);
        gl_label_object_get_matrix        (src_object, &matrix);
        gl_label_object_get_shadow_offset (src_object, &shadow_x, &shadow_y);
        shadow_color_node = gl_label_object_get_shadow_color   (src_object);
        shadow_opacity    = gl_label_object_get_shadow_opacity (src_object);
        shadow_state      = gl_label_object_get_shadow_state   (src_object);
 
-       gl_label_object_set_position (dst_object, x, y);
-       gl_label_object_set_size     (dst_object, w, h);
+       gl_label_object_set_position (dst_object, x, y, FALSE);
+       gl_label_object_set_raw_size (dst_object, w, h, FALSE);
        gl_label_object_set_matrix   (dst_object, &matrix);
-       gl_label_object_set_shadow_offset  (dst_object, shadow_x, shadow_y);
-       gl_label_object_set_shadow_color   (dst_object, shadow_color_node);
-       gl_label_object_set_shadow_opacity (dst_object, shadow_opacity);
-       gl_label_object_set_shadow_state   (dst_object, shadow_state);
+       gl_label_object_set_shadow_offset  (dst_object, shadow_x, shadow_y, FALSE);
+       gl_label_object_set_shadow_color   (dst_object, shadow_color_node, FALSE);
+       gl_label_object_set_shadow_opacity (dst_object, shadow_opacity, FALSE);
+       gl_label_object_set_shadow_state   (dst_object, shadow_state, FALSE);
 
        gl_color_node_free (&shadow_color_node);
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(src_object)->copy != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(src_object)->copy != NULL )
+        {
                /* We have an object specific method, use it */
                GL_LABEL_OBJECT_GET_CLASS(src_object)->copy (dst_object, src_object);
-
        }
 
        gl_debug (DEBUG_LABEL, "END");
@@ -282,99 +257,89 @@ gl_label_object_dup (glLabelObject *src_object,
        return dst_object;
 }
 
+
 /*****************************************************************************/
 /* Emit "changed" signal (for derived objects).                              */
 /*****************************************************************************/
 void
 gl_label_object_emit_changed (glLabelObject *object)
 {
-       gl_debug (DEBUG_LABEL, "START");
+        gl_debug (DEBUG_LABEL, "START");
 
-       g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
+        g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
 
-       g_signal_emit (G_OBJECT(object), signals[CHANGED], 0);
+        g_signal_emit (G_OBJECT(object), signals[CHANGED], 0);
 
-       gl_debug (DEBUG_LABEL, "END");
+        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /*****************************************************************************/
 /* Set parent label of object.                                               */
 /*****************************************************************************/
 void
 gl_label_object_set_parent (glLabelObject *object,
-                           glLabel       *label)
+                            glLabel       *label)
 {
-       glLabel *old_parent;
-
-       gl_debug (DEBUG_LABEL, "START");
+        gl_debug (DEBUG_LABEL, "START");
 
-       g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
-       g_return_if_fail (label && GL_IS_LABEL (label));
-
-       old_parent = object->parent;
-       if ( old_parent != NULL ) {
-               g_signal_handlers_disconnect_by_func (old_parent,
-                                                     G_CALLBACK(merge_changed_cb),
-                                                     object);
-               gl_label_remove_object( old_parent, object );
-       }
-       gl_label_add_object( label, object );
-
-       g_signal_connect (G_OBJECT(label), "merge_changed",
-                         G_CALLBACK(merge_changed_cb), object);
-
-       g_signal_emit (G_OBJECT(object), signals[CHANGED], 0);
+        g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
+        g_return_if_fail (label && GL_IS_LABEL (label));
 
-       gl_debug (DEBUG_LABEL, "END");
+        object->priv->parent = label;
 }
 
+
 /*****************************************************************************/
 /* Get parent label of object.                                               */
 /*****************************************************************************/
 glLabel *
 gl_label_object_get_parent (glLabelObject *object)
 {
-       gl_debug (DEBUG_LABEL, "START");
+        gl_debug (DEBUG_LABEL, "START");
 
-       g_return_val_if_fail (object && GL_IS_LABEL_OBJECT (object), NULL);
+        g_return_val_if_fail (object && GL_IS_LABEL_OBJECT (object), NULL);
 
-       gl_debug (DEBUG_LABEL, "END");
+        gl_debug (DEBUG_LABEL, "END");
 
-       return object->parent;
+        return object->priv->parent;
 }
 
+
 /*****************************************************************************/
-/* Set remove object from parent.                                            */
+/* Select object.                                                            */
 /*****************************************************************************/
 void
-gl_label_object_remove (glLabelObject *object)
+gl_label_object_select (glLabelObject     *object)
 {
-       glLabel *parent;
-
-       gl_debug (DEBUG_LABEL, "START");
-
-       g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
-
-       parent = object->parent;
-       if ( parent != NULL ) {
-               g_signal_handlers_disconnect_by_func (parent,
-                                                     G_CALLBACK(merge_changed_cb),
-                                                     object);
-               gl_label_remove_object (parent, object);
+        object->priv->selected_flag = TRUE;
+}
 
-                g_signal_emit (G_OBJECT(object), signals[REMOVED], 0);
 
-                g_object_unref (G_OBJECT(object));
-       }
+/*****************************************************************************/
+/* Unselect object.                                                          */
+/*****************************************************************************/
+void
+gl_label_object_unselect (glLabelObject     *object)
+{
+        object->priv->selected_flag = FALSE;
+}
 
 
-       gl_debug (DEBUG_LABEL, "END");
+/*****************************************************************************/
+/* Is object selected?                                                       */
+/*****************************************************************************/
+gboolean
+gl_label_object_is_selected (glLabelObject     *object)
+{
+        return object->priv->selected_flag;
 }
 
+
 /*****************************************************************************/
 /* Set name of object.                                                       */
 /*****************************************************************************/
-void
+void    
 gl_label_object_set_name (glLabelObject *object,
                          gchar         *name)
 {
@@ -385,11 +350,12 @@ gl_label_object_set_name (glLabelObject *object,
        g_free(object->priv->name);
        object->priv->name = name;
 
-       g_signal_emit (G_OBJECT(object), signals[CHANGED], 0);
+        gl_label_object_emit_changed (object);
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /*****************************************************************************/
 /* Get name of object.                                                       */
 /*****************************************************************************/
@@ -405,21 +371,28 @@ gl_label_object_get_name (glLabelObject *object)
        return g_strdup(object->priv->name);
 }
 
+
 /*****************************************************************************/
 /* Set position of object.                                                   */
 /*****************************************************************************/
-void
+void    
 gl_label_object_set_position (glLabelObject *object,
                              gdouble        x,
-                             gdouble        y)
+                             gdouble        y,
+                              gboolean       checkpoint)
 {
-       gdouble dx, dy;
+       gdouble  dx, dy;
 
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
 
-       if ( (x != object->priv->x) || (y != object->priv->y) ) {
+       if ( (x != object->priv->x) || (y != object->priv->y) )
+        {
+                if ( checkpoint )
+                {
+                        gl_label_checkpoint (object->priv->parent, _("Move"));
+                }
 
                dx = x - object->priv->x;
                dy = y - object->priv->y;
@@ -427,26 +400,33 @@ gl_label_object_set_position (glLabelObject *object,
                object->priv->x = x;
                object->priv->y = y;
 
-               g_signal_emit (G_OBJECT(object), signals[MOVED], 0, dx, dy);
+                g_signal_emit (G_OBJECT(object), signals[MOVED], 0);
 
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /*****************************************************************************/
 /* Set position of object relative to old position.                          */
 /*****************************************************************************/
-void
+void    
 gl_label_object_set_position_relative (glLabelObject *object,
                                       gdouble        dx,
-                                      gdouble        dy)
+                                      gdouble        dy,
+                                       gboolean       checkpoint)
 {
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
 
-       if ( (dx != 0.0) || (dy != 0.0) ) {
+       if ( (dx != 0.0) || (dy != 0.0) )
+        {
+                if ( checkpoint )
+                {
+                        gl_label_checkpoint (object->priv->parent, _("Move"));
+                }
 
                object->priv->x += dx;
                object->priv->y += dy;
@@ -455,13 +435,13 @@ gl_label_object_set_position_relative (glLabelObject *object,
                          object->priv->x,
                          object->priv->y);
 
-               g_signal_emit (G_OBJECT(object), signals[MOVED], 0, dx, dy);
-
+                g_signal_emit (G_OBJECT(object), signals[MOVED], 0);
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /*****************************************************************************/
 /* Get position of object.                                                   */
 /*****************************************************************************/
@@ -480,82 +460,110 @@ gl_label_object_get_position (glLabelObject *object,
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Default set size method.                                        */
 /*---------------------------------------------------------------------------*/
 static void
 set_size (glLabelObject *object,
          gdouble        w,
-         gdouble        h)
+         gdouble        h,
+          gboolean       checkpoint)
 {
        g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
 
-       if ( (object->priv->w != w) || (object->priv->h != h) ) {
+       if ( (object->priv->w != w) || (object->priv->h != h) )
+        {
+                if ( checkpoint )
+                {
+                        gl_label_checkpoint (object->priv->parent, _("Resize"));
+                }
 
                object->priv->w = w;
                object->priv->h = h;
 
-               g_signal_emit (G_OBJECT(object), signals[CHANGED], 0);
+                gl_label_object_emit_changed (object);
        }
 }
 
+
 /*****************************************************************************/
 /* Set size of object.                                                       */
 /*****************************************************************************/
-void
+void    
 gl_label_object_set_size (glLabelObject *object,
                          gdouble        w,
-                         gdouble        h)
+                         gdouble        h,
+                          gboolean       checkpoint)
 {
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_size != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_size != NULL )
+        {
                /* We have an object specific method, use it */
-               GL_LABEL_OBJECT_GET_CLASS(object)->set_size (object, w, h);
+               GL_LABEL_OBJECT_GET_CLASS(object)->set_size (object, w, h, checkpoint);
 
                object->priv->aspect_ratio = h / w;
-
        }
 
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Set raw size of object.                                                   */
+/*****************************************************************************/
+void
+gl_label_object_set_raw_size (glLabelObject *object,
+                              gdouble        w,
+                              gdouble        h,
+                              gboolean       checkpoint)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
+
+        set_size (object, w, h, checkpoint);
+        object->priv->aspect_ratio = h / w;
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /*****************************************************************************/
 /* Set size of object honoring current aspect ratio.                         */
 /*****************************************************************************/
-void
+void    
 gl_label_object_set_size_honor_aspect (glLabelObject *object,
                                       gdouble        w,
-                                      gdouble        h)
+                                      gdouble        h,
+                                       gboolean       checkpoint)
 {
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
 
-       if ( h > w*object->priv->aspect_ratio ) {
-
+       if ( h > w*object->priv->aspect_ratio )
+        {
                h = w * object->priv->aspect_ratio;
-
-       } else {
-
+       }
+        else
+        {
                w = h / object->priv->aspect_ratio;
-
        }
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_size != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_size != NULL )
+        {
                /* We have an object specific method, use it */
-               GL_LABEL_OBJECT_GET_CLASS(object)->set_size (object, w, h);
-
+               GL_LABEL_OBJECT_GET_CLASS(object)->set_size (object, w, h, checkpoint);
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /*****************************************************************************/
 /* Get raw size method (don't let object content adjust size).               */
 /*****************************************************************************/
@@ -570,6 +578,7 @@ gl_label_object_get_raw_size (glLabelObject *object,
        *h = object->priv->h;
 }
 
+
 /*****************************************************************************/
 /* Get size of object.                                                       */
 /*****************************************************************************/
@@ -582,20 +591,20 @@ gl_label_object_get_size (glLabelObject *object,
 
        g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->get_size != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->get_size != NULL )
+        {
                /* We have an object specific method, use it */
                GL_LABEL_OBJECT_GET_CLASS(object)->get_size (object, w, h);
-
-       } else {
-
+       }
+        else
+        {
                gl_label_object_get_raw_size (object, w, h);
-
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /*****************************************************************************/
 /* Get extent of object.                                                     */
 /*****************************************************************************/
@@ -641,6 +650,7 @@ gl_label_object_get_extent (glLabelObject *object,
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /*****************************************************************************/
 /* Can text properties be set for this object?                               */
 /*****************************************************************************/
@@ -651,167 +661,171 @@ gl_label_object_can_text (glLabelObject     *object)
 
        g_return_val_if_fail (object && GL_IS_LABEL_OBJECT (object), FALSE);
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_font_family != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_font_family != NULL )
+        {
                return TRUE;
-
-       } else {
-
+       }
+        else
+        {
                return FALSE;
-
        }
-
 }
 
+
 /*****************************************************************************/
 /* Set font family for all text contained in object.                         */
 /*****************************************************************************/
-void
+void    
 gl_label_object_set_font_family (glLabelObject     *object,
-                                const gchar       *font_family)
+                                const gchar       *font_family,
+                                 gboolean           checkpoint)
 {
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_font_family != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_font_family != NULL )
+        {
                /* We have an object specific method, use it */
-               GL_LABEL_OBJECT_GET_CLASS(object)->set_font_family (object, font_family);
-
+               GL_LABEL_OBJECT_GET_CLASS(object)->set_font_family (object, font_family, checkpoint);
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /****************************************************************************/
 /* Set font size for all text contained in object.                          */
 /****************************************************************************/
-void
+void    
 gl_label_object_set_font_size (glLabelObject     *object,
-                              gdouble            font_size)
+                              gdouble            font_size,
+                               gboolean           checkpoint)
 {
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_font_size != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_font_size != NULL )
+        {
                /* We have an object specific method, use it */
-               GL_LABEL_OBJECT_GET_CLASS(object)->set_font_size (object, font_size);
-
+               GL_LABEL_OBJECT_GET_CLASS(object)->set_font_size (object, font_size, checkpoint);
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /****************************************************************************/
 /* Set font weight for all text contained in object.                        */
 /****************************************************************************/
-void
+void    
 gl_label_object_set_font_weight (glLabelObject     *object,
-                                PangoWeight        font_weight)
+                                PangoWeight        font_weight,
+                                 gboolean           checkpoint)
 {
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_font_weight != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_font_weight != NULL )
+        {
                /* We have an object specific method, use it */
-               GL_LABEL_OBJECT_GET_CLASS(object)->set_font_weight (object, font_weight);
-
+               GL_LABEL_OBJECT_GET_CLASS(object)->set_font_weight (object, font_weight, checkpoint);
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /****************************************************************************/
 /* Set font italic flag for all text contained in object.                   */
 /****************************************************************************/
-void
+void    
 gl_label_object_set_font_italic_flag (glLabelObject     *object,
-                                     gboolean           font_italic_flag)
+                                     gboolean           font_italic_flag,
+                                      gboolean           checkpoint)
 {
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_font_italic_flag != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_font_italic_flag != NULL )
+        {
                /* We have an object specific method, use it */
-               GL_LABEL_OBJECT_GET_CLASS(object)->set_font_italic_flag (object,
-                                                                        font_italic_flag);
-
+               GL_LABEL_OBJECT_GET_CLASS(object)->set_font_italic_flag (object, font_italic_flag, checkpoint);
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /****************************************************************************/
 /* Set text alignment for all text contained in object.                     */
 /****************************************************************************/
-void
+void    
 gl_label_object_set_text_alignment (glLabelObject     *object,
-                                   PangoAlignment     text_alignment)
+                                   PangoAlignment     text_alignment,
+                                    gboolean           checkpoint)
 {
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_text_alignment != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_text_alignment != NULL )
+        {
                /* We have an object specific method, use it */
-               GL_LABEL_OBJECT_GET_CLASS(object)->set_text_alignment (object,
-                                                                      text_alignment);
-
+               GL_LABEL_OBJECT_GET_CLASS(object)->set_text_alignment (object, text_alignment, checkpoint);
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /****************************************************************************/
 /* Set text line spacing for all text contained in object.                  */
 /****************************************************************************/
-void
+void    
 gl_label_object_set_text_line_spacing (glLabelObject     *object,
-                                      gdouble            text_line_spacing)
+                                      gdouble            text_line_spacing,
+                                       gboolean           checkpoint)
 {
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_text_line_spacing != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_text_line_spacing != NULL )
+        {
                /* We have an object specific method, use it */
-               GL_LABEL_OBJECT_GET_CLASS(object)->set_text_line_spacing (object, text_line_spacing);
-
+               GL_LABEL_OBJECT_GET_CLASS(object)->set_text_line_spacing (object, text_line_spacing, checkpoint);
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /****************************************************************************/
 /* Set text color for all text contained in object.                         */
 /****************************************************************************/
-void
+void    
 gl_label_object_set_text_color (glLabelObject     *object,
-                               glColorNode       *text_color_node)
+                               glColorNode       *text_color_node,
+                                gboolean           checkpoint)
 {
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_text_color != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_text_color != NULL )
+        {
                /* We have an object specific method, use it */
-               GL_LABEL_OBJECT_GET_CLASS(object)->set_text_color (object, text_color_node);
-
+               GL_LABEL_OBJECT_GET_CLASS(object)->set_text_color (object, text_color_node, checkpoint);
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /*****************************************************************************/
 /* Get font family for all text contained in object.                         */
 /*****************************************************************************/
@@ -824,11 +838,10 @@ gl_label_object_get_font_family (glLabelObject     *object)
 
        g_return_val_if_fail (object && GL_IS_LABEL_OBJECT (object), NULL);
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->get_font_family != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->get_font_family != NULL )
+        {
                /* We have an object specific method, use it */
                ret = GL_LABEL_OBJECT_GET_CLASS(object)->get_font_family (object);
-
        }
 
        gl_debug (DEBUG_LABEL, "END");
@@ -836,6 +849,7 @@ gl_label_object_get_font_family (glLabelObject     *object)
        return ret;
 }
 
+
 /****************************************************************************/
 /* Get font size for all text contained in object.                          */
 /****************************************************************************/
@@ -848,11 +862,10 @@ gl_label_object_get_font_size (glLabelObject     *object)
 
        g_return_val_if_fail (object && GL_IS_LABEL_OBJECT (object), 0.0);
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->get_font_size != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->get_font_size != NULL )
+        {
                /* We have an object specific method, use it */
                ret = GL_LABEL_OBJECT_GET_CLASS(object)->get_font_size (object);
-
        }
 
        gl_debug (DEBUG_LABEL, "END");
@@ -860,6 +873,7 @@ gl_label_object_get_font_size (glLabelObject     *object)
        return ret;
 }
 
+
 /****************************************************************************/
 /* Get font weight for all text contained in object.                        */
 /****************************************************************************/
@@ -872,11 +886,10 @@ gl_label_object_get_font_weight (glLabelObject     *object)
 
        g_return_val_if_fail (object && GL_IS_LABEL_OBJECT (object), PANGO_WEIGHT_NORMAL);
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->get_font_weight != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->get_font_weight != NULL )
+        {
                /* We have an object specific method, use it */
                ret = GL_LABEL_OBJECT_GET_CLASS(object)->get_font_weight (object);
-
        }
 
        gl_debug (DEBUG_LABEL, "END");
@@ -884,6 +897,7 @@ gl_label_object_get_font_weight (glLabelObject     *object)
        return ret;
 }
 
+
 /****************************************************************************/
 /* Get font italic flag for all text contained in object.                   */
 /****************************************************************************/
@@ -896,11 +910,10 @@ gl_label_object_get_font_italic_flag (glLabelObject     *object)
 
        g_return_val_if_fail (object && GL_IS_LABEL_OBJECT (object), FALSE);
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->get_font_italic_flag != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->get_font_italic_flag != NULL )
+        {
                /* We have an object specific method, use it */
                ret = GL_LABEL_OBJECT_GET_CLASS(object)->get_font_italic_flag (object);
-
        }
 
        gl_debug (DEBUG_LABEL, "END");
@@ -908,6 +921,7 @@ gl_label_object_get_font_italic_flag (glLabelObject     *object)
        return ret;
 }
 
+
 /****************************************************************************/
 /* Get text alignment for all text contained in object.                     */
 /****************************************************************************/
@@ -920,11 +934,10 @@ gl_label_object_get_text_alignment (glLabelObject     *object)
 
        g_return_val_if_fail (object && GL_IS_LABEL_OBJECT (object), PANGO_ALIGN_LEFT);
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->get_text_alignment != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->get_text_alignment != NULL )
+        {
                /* We have an object specific method, use it */
                ret = GL_LABEL_OBJECT_GET_CLASS(object)->get_text_alignment (object);
-
        }
 
        gl_debug (DEBUG_LABEL, "END");
@@ -932,6 +945,7 @@ gl_label_object_get_text_alignment (glLabelObject     *object)
        return ret;
 }
 
+
 /****************************************************************************/
 /* Get text line spacing for all text contained in object.                  */
 /****************************************************************************/
@@ -944,11 +958,10 @@ gl_label_object_get_text_line_spacing (glLabelObject     *object)
 
        g_return_val_if_fail (object && GL_IS_LABEL_OBJECT (object), 0.0);
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->get_text_line_spacing != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->get_text_line_spacing != NULL )
+        {
                /* We have an object specific method, use it */
                ret = GL_LABEL_OBJECT_GET_CLASS(object)->get_text_line_spacing (object);
-
        }
 
        gl_debug (DEBUG_LABEL, "END");
@@ -956,6 +969,7 @@ gl_label_object_get_text_line_spacing (glLabelObject     *object)
        return ret;
 }
 
+
 /****************************************************************************/
 /* Get text color for all text contained in object.                         */
 /****************************************************************************/
@@ -968,11 +982,10 @@ gl_label_object_get_text_color (glLabelObject     *object)
 
        g_return_val_if_fail (object && GL_IS_LABEL_OBJECT (object), 0);
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->get_text_color != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->get_text_color != NULL )
+        {
                /* We have an object specific method, use it */
                ret = GL_LABEL_OBJECT_GET_CLASS(object)->get_text_color (object);
-
        }
 
        gl_debug (DEBUG_LABEL, "END");
@@ -980,6 +993,7 @@ gl_label_object_get_text_color (glLabelObject     *object)
        return ret;
 }
 
+
 /*****************************************************************************/
 /* Can fill properties be set for this object?                               */
 /*****************************************************************************/
@@ -990,39 +1004,40 @@ gl_label_object_can_fill (glLabelObject     *object)
 
        g_return_val_if_fail (object && GL_IS_LABEL_OBJECT (object), FALSE);
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_fill_color != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_fill_color != NULL )
+        {
                return TRUE;
-
-       } else {
-
+       }
+        else
+        {
                return FALSE;
-
        }
 
 }
 
+
 /****************************************************************************/
 /* Set fill color for object.                                               */
 /****************************************************************************/
-void
+void    
 gl_label_object_set_fill_color (glLabelObject     *object,
-                               glColorNode       *fill_color_node)
+                               glColorNode       *fill_color_node,
+                                gboolean           checkpoint)
 {
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_fill_color != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_fill_color != NULL )
+        {
                /* We have an object specific method, use it */
-               GL_LABEL_OBJECT_GET_CLASS(object)->set_fill_color (object, fill_color_node);
-
+               GL_LABEL_OBJECT_GET_CLASS(object)->set_fill_color (object, fill_color_node, checkpoint);
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /****************************************************************************/
 /* Get fill color for object.                                               */
 /****************************************************************************/
@@ -1035,11 +1050,10 @@ gl_label_object_get_fill_color (glLabelObject     *object)
 
        g_return_val_if_fail (object && GL_IS_LABEL_OBJECT (object), 0);
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->get_fill_color != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->get_fill_color != NULL )
+        {
                /* We have an object specific method, use it */
                ret = GL_LABEL_OBJECT_GET_CLASS(object)->get_fill_color (object);
-
        }
 
        gl_debug (DEBUG_LABEL, "END");
@@ -1047,6 +1061,7 @@ gl_label_object_get_fill_color (glLabelObject     *object)
        return ret;
 }
 
+
 /*****************************************************************************/
 /* Can line color property be set for this object?                           */
 /*****************************************************************************/
@@ -1057,39 +1072,40 @@ gl_label_object_can_line_color (glLabelObject     *object)
 
        g_return_val_if_fail (object && GL_IS_LABEL_OBJECT (object), FALSE);
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_line_color != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_line_color != NULL )
+        {
                return TRUE;
-
-       } else {
-
+       }
+        else
+        {
                return FALSE;
-
        }
 
 }
 
+
 /****************************************************************************/
 /* Set line color for object.                                               */
 /****************************************************************************/
-void
+void    
 gl_label_object_set_line_color (glLabelObject     *object,
-                               glColorNode       *line_color_node)
+                               glColorNode       *line_color_node,
+                                gboolean           checkpoint)
 {
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_line_color != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_line_color != NULL )
+        {
                /* We have an object specific method, use it */
-               GL_LABEL_OBJECT_GET_CLASS(object)->set_line_color (object, line_color_node);
-
+               GL_LABEL_OBJECT_GET_CLASS(object)->set_line_color (object, line_color_node, checkpoint);
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /****************************************************************************/
 /* Get line color for object.                                               */
 /****************************************************************************/
@@ -1102,11 +1118,10 @@ gl_label_object_get_line_color (glLabelObject     *object)
 
        g_return_val_if_fail (object && GL_IS_LABEL_OBJECT (object), 0);
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->get_line_color != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->get_line_color != NULL )
+        {
                /* We have an object specific method, use it */
                ret = GL_LABEL_OBJECT_GET_CLASS(object)->get_line_color (object);
-
        }
 
        gl_debug (DEBUG_LABEL, "END");
@@ -1114,6 +1129,7 @@ gl_label_object_get_line_color (glLabelObject     *object)
        return ret;
 }
 
+
 /*****************************************************************************/
 /* Can line width property be set for this object?                           */
 /*****************************************************************************/
@@ -1124,39 +1140,40 @@ gl_label_object_can_line_width (glLabelObject     *object)
 
        g_return_val_if_fail (object && GL_IS_LABEL_OBJECT (object), FALSE);
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_line_width != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_line_width != NULL )
+        {
                return TRUE;
-
-       } else {
-
+       }
+        else
+        {
                return FALSE;
-
        }
 
 }
 
+
 /****************************************************************************/
 /* Set line width for object.                                               */
 /****************************************************************************/
-void
+void    
 gl_label_object_set_line_width (glLabelObject     *object,
-                               gdouble            line_width)
+                               gdouble            line_width,
+                                gboolean           checkpoint)
 {
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_line_width != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->set_line_width != NULL )
+        {
                /* We have an object specific method, use it */
-               GL_LABEL_OBJECT_GET_CLASS(object)->set_line_width (object, line_width);
-
+               GL_LABEL_OBJECT_GET_CLASS(object)->set_line_width (object, line_width, checkpoint);
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /****************************************************************************/
 /* Get line width for object.                                               */
 /****************************************************************************/
@@ -1169,11 +1186,10 @@ gl_label_object_get_line_width (glLabelObject     *object)
 
        g_return_val_if_fail (object && GL_IS_LABEL_OBJECT (object), 0.0);
 
-       if ( GL_LABEL_OBJECT_GET_CLASS(object)->get_line_width != NULL ) {
-
+       if ( GL_LABEL_OBJECT_GET_CLASS(object)->get_line_width != NULL )
+        {
                /* We have an object specific method, use it */
                ret = GL_LABEL_OBJECT_GET_CLASS(object)->get_line_width (object);
-
        }
 
        gl_debug (DEBUG_LABEL, "END");
@@ -1181,12 +1197,14 @@ gl_label_object_get_line_width (glLabelObject     *object)
        return ret;
 }
 
+
 /****************************************************************************/
 /* Set shadow state of object.                                              */
 /****************************************************************************/
-void
+void    
 gl_label_object_set_shadow_state (glLabelObject     *object,
-                                 gboolean           state)
+                                 gboolean           state,
+                                  gboolean           checkpoint)
 {
        gl_debug (DEBUG_LABEL, "START");
 
@@ -1194,13 +1212,20 @@ gl_label_object_set_shadow_state (glLabelObject     *object,
 
        if (object->priv->shadow_state != state)
        {
+                if ( checkpoint )
+                {
+                        gl_label_checkpoint (object->priv->parent, _("Shadow state"));
+                }
+
                object->priv->shadow_state = state;
+
                gl_label_object_emit_changed (object);
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /****************************************************************************/
 /* Get shadow state of object.                                              */
 /****************************************************************************/
@@ -1214,13 +1239,15 @@ gl_label_object_get_shadow_state (glLabelObject     *object)
        return object->priv->shadow_state;
 }
 
+
 /****************************************************************************/
 /* Set offset of object's shadow.                                           */
 /****************************************************************************/
-void
+void    
 gl_label_object_set_shadow_offset (glLabelObject     *object,
                                   gdouble            x,
-                                  gdouble            y)
+                                  gdouble            y,
+                                   gboolean           checkpoint)
 {
        gl_debug (DEBUG_LABEL, "START");
 
@@ -1228,6 +1255,11 @@ gl_label_object_set_shadow_offset (glLabelObject     *object,
 
        if ( (x != object->priv->shadow_x) || (y != object->priv->shadow_y) )
        {
+                if ( checkpoint )
+                {
+                        gl_label_checkpoint (object->priv->parent, _("Shadow offset"));
+                }
+
                object->priv->shadow_x = x;
                object->priv->shadow_y = y;
 
@@ -1237,6 +1269,7 @@ gl_label_object_set_shadow_offset (glLabelObject     *object,
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /****************************************************************************/
 /* Get offset of object's shadow.                                           */
 /****************************************************************************/
@@ -1255,12 +1288,14 @@ gl_label_object_get_shadow_offset (glLabelObject     *object,
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /****************************************************************************/
 /* Set color of object's shadow.                                            */
 /****************************************************************************/
-void
+void    
 gl_label_object_set_shadow_color (glLabelObject     *object,
-                                 glColorNode       *color_node)
+                                 glColorNode       *color_node,
+                                  gboolean           checkpoint)
 {
        gl_debug (DEBUG_LABEL, "START");
 
@@ -1268,14 +1303,21 @@ gl_label_object_set_shadow_color (glLabelObject     *object,
 
        if ( !gl_color_node_equal (object->priv->shadow_color_node, color_node ))
        {
+                if ( checkpoint )
+                {
+                        gl_label_checkpoint (object->priv->parent, _("Shadow color"));
+                }
+
                gl_color_node_free (&(object->priv->shadow_color_node));
                object->priv->shadow_color_node = gl_color_node_dup (color_node);
-               gl_label_object_emit_changed (GL_LABEL_OBJECT(object));
+
+               gl_label_object_emit_changed (object);
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /****************************************************************************/
 /* Get color of object's shadow.                                            */
 /****************************************************************************/
@@ -1289,12 +1331,14 @@ gl_label_object_get_shadow_color (glLabelObject     *object)
        return gl_color_node_dup (object->priv->shadow_color_node);
 }
 
+
 /****************************************************************************/
 /* Set opacity of object's shadow.                                          */
 /****************************************************************************/
-void
+void    
 gl_label_object_set_shadow_opacity (glLabelObject     *object,
-                                   gdouble            alpha)
+                                   gdouble            alpha,
+                                    gboolean           checkpoint)
 {
        gl_debug (DEBUG_LABEL, "START");
 
@@ -1302,13 +1346,20 @@ gl_label_object_set_shadow_opacity (glLabelObject     *object,
 
        if (object->priv->shadow_opacity != alpha)
        {
-               object->priv->shadow_opacity = alpha;
+                if ( checkpoint )
+                {
+                        gl_label_checkpoint (object->priv->parent, _("Shadow opacity"));
+                }
+
+                object->priv->shadow_opacity = alpha;
+
                gl_label_object_emit_changed (object);
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /****************************************************************************/
 /* Get opacity of object's shadow.                                          */
 /****************************************************************************/
@@ -1322,6 +1373,7 @@ gl_label_object_get_shadow_opacity (glLabelObject     *object)
        return object->priv->shadow_opacity;
 }
 
+
 /****************************************************************************/
 /* Flip object horizontally.                                                */
 /****************************************************************************/
@@ -1337,11 +1389,10 @@ gl_label_object_flip_horiz (glLabelObject *object)
         cairo_matrix_init_scale (&flip_matrix, -1.0, 1.0);
         cairo_matrix_multiply (&object->priv->matrix, &object->priv->matrix, &flip_matrix);
 
-       g_signal_emit (G_OBJECT(object), signals[FLIP_ROTATE], 0);
-
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /****************************************************************************/
 /* Flip object vertically.                                                  */
 /****************************************************************************/
@@ -1357,11 +1408,10 @@ gl_label_object_flip_vert (glLabelObject *object)
         cairo_matrix_init_scale (&flip_matrix, 1.0, -1.0);
         cairo_matrix_multiply (&object->priv->matrix, &object->priv->matrix, &flip_matrix);
 
-       g_signal_emit (G_OBJECT(object), signals[FLIP_ROTATE], 0);
-
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /****************************************************************************/
 /* Rotate object.                                                           */
 /****************************************************************************/
@@ -1378,11 +1428,10 @@ gl_label_object_rotate (glLabelObject *object,
         cairo_matrix_init_rotate (&rotate_matrix, theta_degs*(G_PI/180.));
         cairo_matrix_multiply (&object->priv->matrix, &object->priv->matrix, &rotate_matrix);
 
-       g_signal_emit (G_OBJECT(object), signals[FLIP_ROTATE], 0);
-
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /****************************************************************************/
 /* Set raw affine                                                           */
 /****************************************************************************/
@@ -1397,6 +1446,7 @@ gl_label_object_set_matrix (glLabelObject  *object,
         object->priv->matrix = *matrix;
 }
 
+
 /****************************************************************************/
 /* Get raw affine                                                           */
 /****************************************************************************/
@@ -1411,53 +1461,6 @@ gl_label_object_get_matrix (glLabelObject  *object,
         *matrix = object->priv->matrix;
 }
 
-/****************************************************************************/
-/* Bring label object to front/top.                                         */
-/****************************************************************************/
-void
-gl_label_object_raise_to_top (glLabelObject *object)
-{
-       glLabel *label;
-
-       gl_debug (DEBUG_LABEL, "START");
-
-       label = object->parent;
-
-       gl_label_raise_object_to_top (label, object);
-
-       g_signal_emit (G_OBJECT(object), signals[TOP], 0);
-
-       gl_debug (DEBUG_LABEL, "END");
-}
-
-/****************************************************************************/
-/* Send label object to rear/bottom.                                        */
-/****************************************************************************/
-void
-gl_label_object_lower_to_bottom (glLabelObject *object)
-{
-       glLabel *label;
-
-       gl_debug (DEBUG_LABEL, "START");
-
-       label = object->parent;
-
-       gl_label_lower_object_to_bottom (label, object);
-
-       g_signal_emit (G_OBJECT(object), signals[BOTTOM], 0);
-
-       gl_debug (DEBUG_LABEL, "END");
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Label's merge data changed callback.                           */
-/*--------------------------------------------------------------------------*/
-static void
-merge_changed_cb (glLabel       *label,
-                 glLabelObject *object)
-{
-       gl_label_object_emit_changed (object);
-}
 
 /*****************************************************************************/
 /* Draw object                                                               */
@@ -1484,8 +1487,8 @@ gl_label_object_draw (glLabelObject *object,
         cairo_save (cr);
         cairo_translate (cr, x0, y0);
 
-        if ( GL_LABEL_OBJECT_GET_CLASS(object)->draw_shadow != NULL ) {
-
+        if ( GL_LABEL_OBJECT_GET_CLASS(object)->draw_shadow != NULL )
+        {
                 shadow_state = gl_label_object_get_shadow_state (object);
 
                 if ( shadow_state )
@@ -1505,8 +1508,8 @@ gl_label_object_draw (glLabelObject *object,
                 }
         }
 
-        if ( GL_LABEL_OBJECT_GET_CLASS(object)->draw_object != NULL ) {
-
+        if ( GL_LABEL_OBJECT_GET_CLASS(object)->draw_object != NULL )
+        {
                 cairo_save (cr);
                 cairo_transform (cr, &matrix);
 
@@ -1523,3 +1526,369 @@ gl_label_object_draw (glLabelObject *object,
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
+/*****************************************************************************/
+/* Is object located at coordinates.                                         */
+/*****************************************************************************/
+gboolean
+gl_label_object_is_located_at (glLabelObject     *object,
+                               cairo_t           *cr,
+                               gdouble            x_pixels,
+                               gdouble            y_pixels)
+{
+        gboolean            ret_val = FALSE;
+        gdouble             x0, y0;
+        cairo_matrix_t      matrix;
+        gdouble             x, y;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_val_if_fail (object && GL_IS_LABEL_OBJECT (object), FALSE);
+
+        if ( GL_LABEL_OBJECT_GET_CLASS(object)->draw_object != NULL )
+        {
+
+                gl_label_object_get_position (object, &x0, &y0);
+                gl_label_object_get_matrix (object, &matrix);
+
+                cairo_save (cr);
+
+                cairo_translate (cr, x0, y0);
+                cairo_transform (cr, &matrix);
+
+                x = x_pixels;
+                y = y_pixels;
+                cairo_device_to_user (cr, &x, &y);
+
+                ret_val = GL_LABEL_OBJECT_GET_CLASS(object)->object_at (object, cr, x, y);
+
+                cairo_restore (cr);
+        }
+
+       gl_debug (DEBUG_LABEL, "END");
+
+        return ret_val;
+}
+
+
+/*****************************************************************************/
+/* Draw object handles                                                       */
+/*****************************************************************************/
+void
+gl_label_object_draw_handles (glLabelObject     *object,
+                              cairo_t           *cr)
+{
+        gdouble        x0, y0;
+        cairo_matrix_t matrix;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
+
+        if ( GL_LABEL_OBJECT_GET_CLASS(object)->draw_object != NULL )
+        {
+
+                gl_label_object_get_position (object, &x0, &y0);
+                gl_label_object_get_matrix (object, &matrix);
+
+                cairo_save (cr);
+
+                cairo_translate (cr, x0, y0);
+                cairo_transform (cr, &matrix);
+
+                GL_LABEL_OBJECT_GET_CLASS(object)->draw_handles (object, cr);
+
+                cairo_restore (cr);
+        }
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Draw individual handle                                                   */
+/*--------------------------------------------------------------------------*/
+static void
+draw_handle (cairo_t                *cr,
+             glLabelObject          *object,
+             gdouble                 x_handle,
+             gdouble                 y_handle)
+{
+        gdouble scale_x, scale_y;
+
+
+        gl_debug (DEBUG_VIEW, "START");
+
+        cairo_save (cr);
+
+        cairo_translate (cr, x_handle, y_handle);
+
+        scale_x = 1.0;
+        scale_y = 1.0;
+        cairo_device_to_user_distance (cr, &scale_x, &scale_y);
+        cairo_scale (cr, scale_x, scale_y);
+
+        cairo_rectangle (cr,
+                         -HANDLE_PIXELS/2.0, -HANDLE_PIXELS/2.0,
+                         HANDLE_PIXELS, HANDLE_PIXELS);
+
+        cairo_set_source_rgba (cr, HANDLE_FILL_RGBA_ARGS);
+        cairo_fill_preserve (cr);
+                               
+        cairo_set_line_width (cr, HANDLE_OUTLINE_WIDTH_PIXELS);
+        cairo_set_source_rgba (cr, HANDLE_OUTLINE_RGBA_ARGS);
+        cairo_stroke (cr);
+
+        cairo_restore (cr);
+
+        gl_debug (DEBUG_VIEW, "END");
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Create handle path                                                       */
+/*--------------------------------------------------------------------------*/
+static void
+create_handle_path (cairo_t                *cr,
+                    glLabelObject          *object,
+                    gdouble                 x_handle,
+                    gdouble                 y_handle)
+{
+        gdouble scale_x, scale_y;
+
+
+        gl_debug (DEBUG_VIEW, "START");
+
+        cairo_save (cr);
+
+        cairo_translate (cr, x_handle, y_handle);
+
+        scale_x = 1.0;
+        scale_y = 1.0;
+        cairo_device_to_user_distance (cr, &scale_x, &scale_y);
+        cairo_scale (cr, scale_x, scale_y);
+
+        cairo_rectangle (cr,
+                         -HANDLE_PIXELS/2.0, -HANDLE_PIXELS/2.0,
+                         HANDLE_PIXELS, HANDLE_PIXELS);
+
+        cairo_restore (cr);
+
+        gl_debug (DEBUG_VIEW, "END");
+}
+
+
+/*****************************************************************************/
+/* Draw box style handles.                                                   */
+/*****************************************************************************/
+void
+gl_label_object_draw_handles_box (glLabelObject     *object,
+                                  cairo_t           *cr)
+{
+        gdouble w, h;
+
+        gl_label_object_get_size (GL_LABEL_OBJECT(object), &w, &h);
+
+        /* North */
+        draw_handle (cr, object, w/2, 0);
+
+        /* North East */
+        draw_handle (cr, object, w, 0);
+
+        /* East */
+        draw_handle (cr, object, w, h/2);
+
+        /* South East */
+        draw_handle (cr, object, w, h);
+
+        /* South */
+        draw_handle (cr, object, w/2, h);
+
+        /* South West */
+        draw_handle (cr, object, 0, h);
+
+        /* West */
+        draw_handle (cr, object, 0, h/2);
+
+        /* North West */
+        draw_handle (cr, object, 0, 0);
+}
+
+
+/*****************************************************************************/
+/* Draw line style handles.                                                  */
+/*****************************************************************************/
+void
+gl_label_object_draw_handles_line (glLabelObject     *object,
+                                   cairo_t           *cr)
+{
+        gdouble w, h;
+
+        gl_label_object_get_size (GL_LABEL_OBJECT(object), &w, &h);
+
+        /* P2 */
+        draw_handle (cr, object, w, h);
+
+        /* P1 */
+        draw_handle (cr, object, 0, 0);
+}
+
+
+/*****************************************************************************/
+/* Get handle at given coordinates, if any.                                  */
+/*****************************************************************************/
+glLabelObjectHandle
+gl_label_object_handle_at (glLabelObject     *object,
+                           cairo_t           *cr,
+                           gdouble            x_pixels,
+                           gdouble            y_pixels)
+{
+        glLabelObjectHandle handle = GL_LABEL_OBJECT_HANDLE_NONE;
+        gdouble             x0, y0;
+        cairo_matrix_t      matrix;
+        gdouble             x, y;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_val_if_fail (object && GL_IS_LABEL_OBJECT (object), handle);
+
+        if ( GL_LABEL_OBJECT_GET_CLASS(object)->draw_object != NULL )
+        {
+
+                gl_label_object_get_position (object, &x0, &y0);
+                gl_label_object_get_matrix (object, &matrix);
+
+                cairo_save (cr);
+
+                cairo_translate (cr, x0, y0);
+                cairo_transform (cr, &matrix);
+
+                x = x_pixels;
+                y = y_pixels;
+                cairo_device_to_user (cr, &x, &y);
+
+                handle = GL_LABEL_OBJECT_GET_CLASS(object)->handle_at (object, cr, x, y);
+
+                cairo_restore (cr);
+        }
+
+       gl_debug (DEBUG_LABEL, "END");
+
+        return handle;
+}
+
+
+/*****************************************************************************/
+/* Get handle at given coordinates for box style handles, if any.            */
+/*****************************************************************************/
+glLabelObjectHandle
+gl_label_object_box_handle_at (glLabelObject     *object,
+                               cairo_t           *cr,
+                               gdouble            x,
+                               gdouble            y)
+{
+        gdouble w, h;
+
+        gl_label_object_get_size (GL_LABEL_OBJECT(object), &w, &h);
+
+        /* South East */
+        create_handle_path (cr, object, w, h);
+        if (cairo_in_fill (cr, x, y))
+        {
+                return GL_LABEL_OBJECT_HANDLE_SE;
+        }
+        
+        /* South West */
+        create_handle_path (cr, object, 0, h);
+        if (cairo_in_fill (cr, x, y))
+        {
+                return GL_LABEL_OBJECT_HANDLE_SW;
+        }
+
+        /* North East */
+        create_handle_path (cr, object, w, 0);
+        if (cairo_in_fill (cr, x, y))
+        {
+                return GL_LABEL_OBJECT_HANDLE_NE;
+        }
+
+        /* North West */
+        create_handle_path (cr, object, 0, 0);
+        if (cairo_in_fill (cr, x, y))
+        {
+                return GL_LABEL_OBJECT_HANDLE_NW;
+        }
+
+        /* East */
+        create_handle_path (cr, object, w, h/2);
+        if (cairo_in_fill (cr, x, y))
+        {
+                return GL_LABEL_OBJECT_HANDLE_E;
+        }
+
+        /* South */
+        create_handle_path (cr, object, w/2, h);
+        if (cairo_in_fill (cr, x, y))
+        {
+                return GL_LABEL_OBJECT_HANDLE_S;
+        }
+
+        /* West */
+        create_handle_path (cr, object, 0, h/2);
+        if (cairo_in_fill (cr, x, y))
+        {
+                return GL_LABEL_OBJECT_HANDLE_W;
+        }
+
+        /* North */
+        create_handle_path (cr, object, w/2, 0);
+        if (cairo_in_fill (cr, x, y))
+        {
+                return GL_LABEL_OBJECT_HANDLE_N;
+        }
+
+        return GL_LABEL_OBJECT_HANDLE_NONE;
+}
+
+
+/*****************************************************************************/
+/* Get handle at given coordinates for line style handles, if any.           */
+/*****************************************************************************/
+glLabelObjectHandle
+gl_label_object_line_handle_at (glLabelObject     *object,
+                                cairo_t           *cr,
+                                gdouble            x,
+                                gdouble            y)
+{
+        gdouble w, h;
+
+        gl_label_object_get_size (GL_LABEL_OBJECT(object), &w, &h);
+
+        /* P2 */
+        create_handle_path (cr, object, w, h);
+        if (cairo_in_fill (cr, x, y))
+        {
+                return GL_LABEL_OBJECT_HANDLE_P2;
+        }
+        
+        /* P1 */
+        create_handle_path (cr, object, 0, h);
+        if (cairo_in_fill (cr, x, y))
+        {
+                return GL_LABEL_OBJECT_HANDLE_P1;
+        }
+
+        return GL_LABEL_OBJECT_HANDLE_NONE;
+}
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 5ee0f9bac6e49a227d472a7f747b424fc9496264..8e898a576cc99d0a78af9075d25e9853de16092d 100644 (file)
@@ -1,36 +1,34 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  label_object.h:  GLabels label object base class
+ *  label-object.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __LABEL_OBJECT_H__
 #define __LABEL_OBJECT_H__
 
 #include <glib-object.h>
+#include <gtk/gtk.h>
 #include <pango/pango.h>
 #include <cairo.h>
 
 G_BEGIN_DECLS
 
+
 typedef enum {
         GL_LABEL_OBJECT_TEXT,
         GL_LABEL_OBJECT_BOX,
@@ -42,6 +40,21 @@ typedef enum {
 } glLabelObjectType;
 
 
+typedef enum {
+        GL_LABEL_OBJECT_HANDLE_NONE = 0,
+        GL_LABEL_OBJECT_HANDLE_N,
+        GL_LABEL_OBJECT_HANDLE_E,
+        GL_LABEL_OBJECT_HANDLE_W,
+        GL_LABEL_OBJECT_HANDLE_S,
+        GL_LABEL_OBJECT_HANDLE_NW,
+        GL_LABEL_OBJECT_HANDLE_NE,
+        GL_LABEL_OBJECT_HANDLE_SE,
+        GL_LABEL_OBJECT_HANDLE_SW,
+        GL_LABEL_OBJECT_HANDLE_P1,
+        GL_LABEL_OBJECT_HANDLE_P2
+} glLabelObjectHandle;
+
+
 #define GL_TYPE_LABEL_OBJECT              (gl_label_object_get_type ())
 #define GL_LABEL_OBJECT(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_LABEL_OBJECT, glLabelObject))
 #define GL_LABEL_OBJECT_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_LABEL_OBJECT, glLabelObjectClass))
@@ -61,8 +74,6 @@ typedef struct _glLabelObjectPrivate   glLabelObjectPrivate;
 struct _glLabelObject {
         GObject               object;
 
-        glLabel              *parent;
-
         glLabelObjectPrivate *priv;
 };
 
@@ -70,48 +81,59 @@ struct _glLabelObjectClass {
         GObjectClass          parent_class;
 
         /*
-         * Methods
+         * Set/Get Methods
          */
 
         void              (*set_size)             (glLabelObject     *object,
                                                    gdouble            w,
-                                                   gdouble            h);
-
-        void              (*get_size)             (glLabelObject     *object,
-                                                   gdouble           *w,
-                                                   gdouble           *h);
+                                                   gdouble            h,
+                                                   gboolean           checkpoint);
 
         void              (*set_font_family)      (glLabelObject     *object,
-                                                   const gchar       *font_family);
+                                                   const gchar       *font_family,
+                                                   gboolean           checkpoint);
 
         void              (*set_font_size)        (glLabelObject     *object,
-                                                   gdouble            font_size);
+                                                   gdouble            font_size,
+                                                   gboolean           checkpoint);
 
         void              (*set_font_weight)      (glLabelObject     *object,
-                                                   PangoWeight        font_weight);
+                                                   PangoWeight        font_weight,
+                                                   gboolean           checkpoint);
 
         void              (*set_font_italic_flag) (glLabelObject     *object,
-                                                   gboolean           font_italic_flag);
+                                                   gboolean           font_italic_flag,
+                                                   gboolean           checkpoint);
 
         void              (*set_text_alignment)   (glLabelObject     *object,
-                                                   PangoAlignment     text_alignment);
+                                                   PangoAlignment     text_alignment,
+                                                   gboolean           checkpoint);
 
-        void              (*set_text_line_spacing) (glLabelObject    *object,
-                                                    gdouble           text_line_spacing);
+        void              (*set_text_line_spacing)(glLabelObject     *object,
+                                                   gdouble            text_line_spacing,
+                                                   gboolean           checkpoint);
 
         void              (*set_text_color)       (glLabelObject     *object,
-                                                   glColorNode       *text_color_node);
+                                                   glColorNode       *text_color_node,
+                                                   gboolean           checkpoint);
 
         void              (*set_fill_color)       (glLabelObject     *object,
-                                                   glColorNode       *fill_color_node);
+                                                   glColorNode       *fill_color_node,
+                                                   gboolean           checkpoint);
 
         void              (*set_line_color)       (glLabelObject     *object,
-                                                   glColorNode       *line_color_node);
+                                                   glColorNode       *line_color_node,
+                                                   gboolean           checkpoint);
 
         void              (*set_line_width)       (glLabelObject     *object,
-                                                   gdouble            line_width);
+                                                   gdouble            line_width,
+                                                   gboolean           checkpoint);
+
+        void              (*get_size)             (glLabelObject     *object,
+                                                   gdouble           *w,
+                                                   gdouble           *h);
 
-        gchar            *(*get_font_family)      (glLabelObject     *object);
+        gchar *           (*get_font_family)      (glLabelObject     *object);
 
         gdouble           (*get_font_size)        (glLabelObject     *object);
 
@@ -123,15 +145,16 @@ struct _glLabelObjectClass {
 
         gdouble           (*get_text_line_spacing) (glLabelObject    *object);
 
-        glColorNode     (*get_text_color)       (glLabelObject     *object);
+        glColorNode *     (*get_text_color)       (glLabelObject     *object);
 
-        glColorNode     (*get_fill_color)       (glLabelObject     *object);
+        glColorNode *     (*get_fill_color)       (glLabelObject     *object);
 
-        glColorNode     (*get_line_color)       (glLabelObject     *object);
+        glColorNode *     (*get_line_color)       (glLabelObject     *object);
 
         gdouble           (*get_line_width)       (glLabelObject     *object);
 
-        void              (*copy)                 (glLabelObject     *dst_object,
+        void              (*copy)                 (glLabelObject     *dst_object
+,
                                                    glLabelObject     *src_object);
 
         /*
@@ -147,32 +170,37 @@ struct _glLabelObjectClass {
                                          gboolean       screen_flag,
                                          glMergeRecord *record);
 
+        void        (*draw_handles)     (glLabelObject *object,
+                                         cairo_t       *cr);
 
         /*
-         * Signals
+         * Cairo context query methods
          */
-        void (*changed)     (glLabelObject     *object,
-                             gpointer            user_data);
+        gboolean            (*object_at) (glLabelObject     *object,
+                                          cairo_t           *cr,
+                                          gdouble            x_pixels,
+                                          gdouble            y_pixels);
 
-        void (*moved)       (glLabelObject     *object,
-                             gdouble            dx,
-                             gdouble            dy,
-                             gpointer           user_data);
+        glLabelObjectHandle (*handle_at) (glLabelObject     *object,
+                                          cairo_t           *cr,
+                                          gdouble            x_pixels,
+                                          gdouble            y_pixels);
 
-        void (*flip_rotate) (glLabelObject     *object,
-                             gpointer           user_data);
 
-        void (*top)         (glLabelObject     *object,
-                             gpointer           user_data);
+        /*
+         * Signals
+         */
 
-        void (*bottom)      (glLabelObject     *object,
-                             gpointer           user_data);
+        void        (*changed) (glLabelObject *object,
+                                gpointer       user_data);
 
-        void (*removed)     (glLabelObject     *object,
-                             gpointer            user_data);
+        void        (*moved)   (glLabelObject *object,
+                                gpointer       user_data);
 
 };
 
+
+
 GType          gl_label_object_get_type              (void) G_GNUC_CONST;
 
 GObject       *gl_label_object_new                   (glLabel           *label);
@@ -181,8 +209,8 @@ GObject       *gl_label_object_new                   (glLabel           *label);
 glLabelObject *gl_label_object_dup                   (glLabelObject     *src_object,
                                                       glLabel           *label);
 
-void           gl_label_object_emit_changed          (glLabelObject     *object);
 
+void           gl_label_object_emit_changed          (glLabelObject     *object);
 
 void           gl_label_object_set_parent            (glLabelObject     *object,
                                                       glLabel           *label);
@@ -190,7 +218,9 @@ void           gl_label_object_set_parent            (glLabelObject     *object,
 glLabel       *gl_label_object_get_parent            (glLabelObject     *object);
 
 
-void           gl_label_object_remove                (glLabelObject     *object);
+void           gl_label_object_select                (glLabelObject     *object);
+void           gl_label_object_unselect              (glLabelObject     *object);
+gboolean       gl_label_object_is_selected           (glLabelObject     *object);
 
 void           gl_label_object_set_name              (glLabelObject     *object,
                                                       gchar             *name);
@@ -200,127 +230,148 @@ gchar         *gl_label_object_get_name              (glLabelObject     *object)
 
 void           gl_label_object_set_position          (glLabelObject     *object,
                                                       gdouble            x,
-                                                      gdouble            y);
+                                                      gdouble            y,
+                                                      gboolean           checkpoint);
 
 void           gl_label_object_set_position_relative (glLabelObject     *object,
                                                       gdouble            dx,
-                                                      gdouble            dy);
-
-void           gl_label_object_get_position          (glLabelObject     *object,
-                                                      gdouble           *x,
-                                                      gdouble           *y);
+                                                      gdouble            dy,
+                                                      gboolean           checkpoint);
 
 void           gl_label_object_set_size              (glLabelObject     *object,
                                                       gdouble            w,
-                                                      gdouble            h);
+                                                      gdouble            h,
+                                                      gboolean           checkpoint);
 
-void           gl_label_object_set_size_honor_aspect (glLabelObject     *object,
+void           gl_label_object_set_raw_size          (glLabelObject     *object,
                                                       gdouble            w,
-                                                      gdouble            h);
-
-void           gl_label_object_get_size              (glLabelObject     *object,
-                                                      gdouble           *w,
-                                                      gdouble           *h);
+                                                      gdouble            h,
+                                                      gboolean           checkpoint);
 
-void           gl_label_object_get_raw_size          (glLabelObject     *object,
-                                                      gdouble           *w,
-                                                      gdouble           *h);
-
-void           gl_label_object_get_extent            (glLabelObject     *object,
-                                                      glLabelRegion     *region);
-
-gboolean       gl_label_object_can_text              (glLabelObject     *object);
+void           gl_label_object_set_size_honor_aspect (glLabelObject     *object,
+                                                      gdouble            w,
+                                                      gdouble            h,
+                                                      gboolean           checkpoint);
 
 void           gl_label_object_set_font_family       (glLabelObject     *object,
-                                                      const gchar       *font_family);
+                                                      const gchar       *font_family,
+                                                      gboolean           checkpoint);
 
 void           gl_label_object_set_font_size         (glLabelObject     *object,
-                                                      gdouble            font_size);
+                                                      gdouble            font_size,
+                                                      gboolean           checkpoint);
 
 void           gl_label_object_set_font_weight       (glLabelObject     *object,
-                                                      PangoWeight        font_weight);
+                                                      PangoWeight        font_weight,
+                                                      gboolean           checkpoint);
 
 void           gl_label_object_set_font_italic_flag  (glLabelObject     *object,
-                                                      gboolean           font_italic_flag);
+                                                      gboolean           font_italic_flag,
+                                                      gboolean           checkpoint);
 
 void           gl_label_object_set_text_alignment    (glLabelObject     *object,
-                                                      PangoAlignment     text_alignment);
+                                                      PangoAlignment     text_alignment,
+                                                      gboolean           checkpoint);
 
 void           gl_label_object_set_text_color        (glLabelObject     *object,
-                                                      glColorNode       *text_color_node);
+                                                      glColorNode       *text_color_node,
+                                                      gboolean           checkpoint);
 
 void           gl_label_object_set_text_line_spacing (glLabelObject     *object,
-                                                      gdouble            text_line_spacing);
+                                                      gdouble            text_line_spacing,
+                                                      gboolean           checkpoint);
 
+void           gl_label_object_set_fill_color        (glLabelObject     *object,
+                                                      glColorNode       *fill_color_node,
+                                                      gboolean           checkpoint);
 
-gchar           *gl_label_object_get_font_family       (glLabelObject     *object);
+void           gl_label_object_set_line_color        (glLabelObject     *object,
+                                                      glColorNode       *line_color_node,
+                                                      gboolean           checkpoint);
 
-gdouble          gl_label_object_get_font_size         (glLabelObject     *object);
+void           gl_label_object_set_line_width        (glLabelObject     *object,
+                                                      gdouble            line_width,
+                                                      gboolean           checkpoint);
 
-PangoWeight      gl_label_object_get_font_weight       (glLabelObject     *object);
 
-gboolean         gl_label_object_get_font_italic_flag  (glLabelObject     *object);
+void           gl_label_object_set_shadow_state      (glLabelObject     *object,
+                                                      gboolean           state,
+                                                      gboolean           checkpoint);
 
-PangoAlignment   gl_label_object_get_text_alignment    (glLabelObject     *object);
+void           gl_label_object_set_shadow_offset     (glLabelObject     *object,
+                                                      gdouble            x,
+                                                      gdouble            y,
+                                                      gboolean           checkpoint);
 
-gdouble          gl_label_object_get_text_line_spacing (glLabelObject     *object);
+void           gl_label_object_set_shadow_color      (glLabelObject     *object,
+                                                      glColorNode       *color_node,
+                                                      gboolean           checkpoint);
 
-glColorNode     *gl_label_object_get_text_color        (glLabelObject     *object);
+void           gl_label_object_set_shadow_opacity    (glLabelObject     *object,
+                                                      gdouble            alpha,
+                                                      gboolean           checkpoint);
 
 
-gboolean       gl_label_object_can_fill              (glLabelObject     *object);
+void           gl_label_object_flip_horiz            (glLabelObject     *object);
 
-void           gl_label_object_set_fill_color        (glLabelObject     *object,
-                                                      glColorNode       *fill_color_node);
+void           gl_label_object_flip_vert             (glLabelObject     *object);
 
-glColorNode*   gl_label_object_get_fill_color        (glLabelObject     *object);
+void           gl_label_object_rotate                (glLabelObject     *object,
+                                                      gdouble            theta_degs);
 
+void           gl_label_object_set_matrix            (glLabelObject     *object,
+                                                      cairo_matrix_t    *matrix);
 
-gboolean       gl_label_object_can_line_color        (glLabelObject     *object);
 
-void           gl_label_object_set_line_color        (glLabelObject     *object,
-                                                      glColorNode       *line_color_node);
+void           gl_label_object_get_position          (glLabelObject     *object,
+                                                      gdouble           *x,
+                                                      gdouble           *y);
 
-glColorNode   *gl_label_object_get_line_color        (glLabelObject     *object);
+void           gl_label_object_get_size              (glLabelObject     *object,
+                                                      gdouble           *w,
+                                                      gdouble           *h);
 
-gboolean       gl_label_object_can_line_width        (glLabelObject     *object);
+void           gl_label_object_get_raw_size          (glLabelObject     *object,
+                                                      gdouble           *w,
+                                                      gdouble           *h);
 
-void           gl_label_object_set_line_width        (glLabelObject     *object,
-                                                      gdouble            line_width);
+void           gl_label_object_get_extent            (glLabelObject     *object,
+                                                      glLabelRegion     *region);
 
-gdouble        gl_label_object_get_line_width        (glLabelObject     *object);
+gboolean       gl_label_object_can_text              (glLabelObject     *object);
 
 
-void           gl_label_object_raise_to_top          (glLabelObject     *object);
+gchar         *gl_label_object_get_font_family       (glLabelObject     *object);
 
-void           gl_label_object_lower_to_bottom       (glLabelObject     *object);
+gdouble        gl_label_object_get_font_size         (glLabelObject     *object);
 
+PangoWeight    gl_label_object_get_font_weight       (glLabelObject     *object);
 
-void           gl_label_object_flip_horiz            (glLabelObject     *object);
+gboolean       gl_label_object_get_font_italic_flag  (glLabelObject     *object);
 
-void           gl_label_object_flip_vert             (glLabelObject     *object);
+PangoAlignment gl_label_object_get_text_alignment    (glLabelObject     *object);
 
-void           gl_label_object_rotate                (glLabelObject     *object,
-                                                      gdouble            theta_degs);
+gdouble        gl_label_object_get_text_line_spacing (glLabelObject     *object);
 
-void           gl_label_object_set_matrix            (glLabelObject     *object,
-                                                      cairo_matrix_t    *matrix);
+glColorNode   *gl_label_object_get_text_color        (glLabelObject     *object);
 
-void           gl_label_object_get_matrix            (glLabelObject     *object,
-                                                      cairo_matrix_t    *matrix);
 
-void           gl_label_object_set_shadow_state      (glLabelObject     *object,
-                                                      gboolean           state);
+gboolean       gl_label_object_can_fill              (glLabelObject     *object);
 
-void           gl_label_object_set_shadow_offset     (glLabelObject     *object,
-                                                      gdouble            x,
-                                                      gdouble            y);
+glColorNode*   gl_label_object_get_fill_color        (glLabelObject     *object);
 
-void           gl_label_object_set_shadow_color      (glLabelObject     *object,
-                                                      glColorNode       *color_node);
 
-void           gl_label_object_set_shadow_opacity    (glLabelObject     *object,
-                                                      gdouble            alpha);
+gboolean       gl_label_object_can_line_color        (glLabelObject     *object);
+
+glColorNode   *gl_label_object_get_line_color        (glLabelObject     *object);
+
+gboolean       gl_label_object_can_line_width        (glLabelObject     *object);
+
+gdouble        gl_label_object_get_line_width        (glLabelObject     *object);
+
+
+void           gl_label_object_get_matrix            (glLabelObject     *object,
+                                                      cairo_matrix_t    *matrix);
 
 gboolean       gl_label_object_get_shadow_state      (glLabelObject     *object);
 
@@ -332,14 +383,63 @@ glColorNode*   gl_label_object_get_shadow_color      (glLabelObject     *object)
 
 gdouble        gl_label_object_get_shadow_opacity    (glLabelObject     *object);
 
+
 void           gl_label_object_draw                  (glLabelObject     *object,
                                                       cairo_t           *cr,
                                                       gboolean           screen_flag,
                                                       glMergeRecord     *record);
 
+gboolean       gl_label_object_is_located_at         (glLabelObject     *object,
+                                                      cairo_t           *cr,
+                                                      gdouble            x_pixels,
+                                                      gdouble            y_pixels);
+
+void           gl_label_object_draw_handles          (glLabelObject     *object,
+                                                      cairo_t           *cr);
+
+glLabelObjectHandle gl_label_object_handle_at        (glLabelObject     *object,
+                                                      cairo_t           *cr,
+                                                      gdouble            x_pixels,
+                                                      gdouble            y_pixels);
+
+
+/*
+ * Specific handle drawing methods.
+ */
+void           gl_label_object_draw_handles_box      (glLabelObject     *object,
+                                                      cairo_t           *cr);
+
+void           gl_label_object_draw_handles_line     (glLabelObject     *object,
+                                                      cairo_t           *cr);
+
+
+/*
+ * Specific handle query methods.
+ */
+glLabelObjectHandle gl_label_object_box_handle_at    (glLabelObject     *object,
+                                                      cairo_t           *cr,
+                                                      gdouble            x,
+                                                      gdouble            y);
+
+glLabelObjectHandle gl_label_object_line_handle_at   (glLabelObject     *object,
+                                                      cairo_t           *cr,
+                                                      gdouble            x,
+                                                      gdouble            y);
 
 
 
 G_END_DECLS
 
 #endif /* __LABEL_OBJECT_H__ */
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 9a4d59a16581ae643774d587c8c7cca4407201e0..d9146c420aaa35c413ccd1c0dd5c01884a2ebc2b 100644 (file)
@@ -1,61 +1,59 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  label_text.c:  GLabels label text object
+ *  label-text.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
+
 #include "label-text.h"
 
-#include <glib/gmem.h>
-#include <glib/gstrfuncs.h>
-#include <glib/gmessages.h>
+#include <glib/gi18n.h>
+#include <glib.h>
 #include <pango/pango.h>
 #include <math.h>
+#include <string.h>
 
-#include "util.h"
+#include "font-util.h"
+#include "font-history.h"
 
 #include "debug.h"
 
+
 /*========================================================*/
 /* Private macros and constants.                          */
 /*========================================================*/
 
-#define DEFAULT_FONT_FAMILY       "Sans"
-#define DEFAULT_FONT_SIZE         14.0
-#define DEFAULT_FONT_WEIGHT       PANGO_WEIGHT_NORMAL
-#define DEFAULT_FONT_ITALIC_FLAG  FALSE
-#define DEFAULT_ALIGN             PANGO_ALIGN_LEFT
-#define DEFAULT_COLOR             GL_COLOR (0,0,0)
-#define DEFAULT_TEXT_LINE_SPACING 1.0
-#define DEFAULT_AUTO_SHRINK       FALSE
-
 #define FONT_SCALE (72.0/96.0)
 
+#define HANDLE_OUTLINE_RGBA_ARGS   0.5,   0.5,   0.5,   0.75
+#define HANDLE_OUTLINE_WIDTH_PIXELS   2.0
+
+#define SELECTION_SLOP_PIXELS 4.0
+
+
 /*========================================================*/
 /* Private types.                                         */
 /*========================================================*/
 
 struct _glLabelTextPrivate {
-       GtkTextTagTable *tag_table;
-       GtkTextBuffer   *buffer;
+
+        GtkTextTagTable *tag_table;
+        GtkTextBuffer   *buffer;
 
        gchar           *font_family;
        gdouble          font_size;
@@ -69,12 +67,16 @@ struct _glLabelTextPrivate {
         gboolean         size_changed;
         gdouble          w;
         gdouble          h;
+
+        gboolean         checkpoint_flag;
 };
 
+
 /*========================================================*/
 /* Private globals.                                       */
 /*========================================================*/
 
+
 /*========================================================*/
 /* Private function prototypes.                           */
 /*========================================================*/
@@ -84,6 +86,9 @@ static void gl_label_text_finalize      (GObject          *object);
 static void copy                        (glLabelObject    *dst_object,
                                         glLabelObject    *src_object);
 
+static void buffer_begin_user_action_cb (GtkTextBuffer    *textbuffer,
+                                         glLabelText      *ltext);
+
 static void buffer_changed_cb           (GtkTextBuffer    *textbuffer,
                                         glLabelText      *ltext);
 
@@ -92,25 +97,32 @@ static void get_size                    (glLabelObject    *object,
                                         gdouble          *h);
 
 static void set_font_family             (glLabelObject    *object,
-                                        const gchar      *font_family);
+                                        const gchar      *font_family,
+                                         gboolean          checkpoint);
 
 static void set_font_size               (glLabelObject    *object,
-                                        gdouble           font_size);
+                                        gdouble           font_size,
+                                         gboolean          checkpoint);
 
 static void set_font_weight             (glLabelObject    *object,
-                                        PangoWeight       font_weight);
+                                        PangoWeight       font_weight,
+                                         gboolean          checkpoint);
 
 static void set_font_italic_flag        (glLabelObject    *object,
-                                        gboolean          font_italic_flag);
+                                        gboolean          font_italic_flag,
+                                         gboolean          checkpoint);
 
 static void set_text_alignment          (glLabelObject    *object,
-                                        PangoAlignment    text_alignment);
+                                        PangoAlignment    text_alignment,
+                                         gboolean          checkpoint);
 
 static void set_text_line_spacing       (glLabelObject    *object,
-                                        gdouble           text_line_spacing);
+                                        gdouble           text_line_spacing,
+                                         gboolean          checkpoint);
 
 static void set_text_color              (glLabelObject    *object,
-                                        glColorNode      *text_color_node);
+                                        glColorNode      *text_color_node,
+                                         gboolean          checkpoint);
 
 static gchar          *get_font_family             (glLabelObject    *object);
 
@@ -126,6 +138,11 @@ static gdouble         get_text_line_spacing       (glLabelObject    *object);
 
 static glColorNode*    get_text_color              (glLabelObject    *object);
 
+static void            set_text_path               (glLabelText      *this,
+                                                    cairo_t          *cr,
+                                                    gboolean          screen_flag,
+                                                    glMergeRecord    *record);
+
 static void            draw_object                 (glLabelObject    *object,
                                                     cairo_t          *cr,
                                                     gboolean          screen_flag,
@@ -136,6 +153,12 @@ static void            draw_shadow                 (glLabelObject    *object,
                                                     gboolean          screen_flag,
                                                     glMergeRecord    *record);
 
+static void            draw_text_real              (glLabelObject    *object,
+                                                    cairo_t          *cr,
+                                                    gboolean          screen_flag,
+                                                    glMergeRecord    *record,
+                                                    guint             color);
+
 static gdouble         auto_shrink_font_size       (cairo_t          *cr,
                                                     gchar            *family,
                                                     gdouble           size,
@@ -144,13 +167,24 @@ static gdouble         auto_shrink_font_size       (cairo_t          *cr,
                                                     gchar            *text,
                                                     gdouble           width);
 
+static gboolean        object_at                   (glLabelObject    *object,
+                                                    cairo_t          *cr,
+                                                    gdouble           x_pixels,
+                                                    gdouble           y_pixels);
+
+static void            draw_handles                (glLabelObject    *object,
+                                                    cairo_t          *cr);
+
 
-\f
 /*****************************************************************************/
-/* Boilerplate object stuff.                                                 */
+/* Object infrastructure.                                                    */
 /*****************************************************************************/
-G_DEFINE_TYPE (glLabelText, gl_label_text, GL_TYPE_LABEL_OBJECT);
+G_DEFINE_TYPE (glLabelText, gl_label_text, GL_TYPE_LABEL_OBJECT)
+
 
+/*****************************************************************************/
+/* Class Init Function.                                                      */
+/*****************************************************************************/
 static void
 gl_label_text_class_init (glLabelTextClass *class)
 {
@@ -179,10 +213,16 @@ gl_label_text_class_init (glLabelTextClass *class)
        label_object_class->get_text_color        = get_text_color;
         label_object_class->draw_object           = draw_object;
         label_object_class->draw_shadow           = draw_shadow;
+        label_object_class->object_at             = object_at;
+        label_object_class->draw_handles          = draw_handles;
 
        object_class->finalize = gl_label_text_finalize;
 }
 
+
+/*****************************************************************************/
+/* Object Instance Init Function.                                            */
+/*****************************************************************************/
 static void
 gl_label_text_init (glLabelText *ltext)
 {
@@ -191,22 +231,20 @@ gl_label_text_init (glLabelText *ltext)
        ltext->priv->tag_table         = gtk_text_tag_table_new ();
        ltext->priv->buffer            = gtk_text_buffer_new (ltext->priv->tag_table);
 
-       ltext->priv->font_family       = g_strdup(DEFAULT_FONT_FAMILY);
-       ltext->priv->font_size         = DEFAULT_FONT_SIZE;
-       ltext->priv->font_weight       = DEFAULT_FONT_WEIGHT;
-       ltext->priv->font_italic_flag  = DEFAULT_FONT_ITALIC_FLAG;
-       ltext->priv->align             = DEFAULT_ALIGN;
-       ltext->priv->color_node        = gl_color_node_new_default ();
-       ltext->priv->color_node->color = DEFAULT_COLOR;
-       ltext->priv->line_spacing      = DEFAULT_TEXT_LINE_SPACING;
-       ltext->priv->auto_shrink       = DEFAULT_AUTO_SHRINK;
-
         ltext->priv->size_changed      = TRUE;
 
+        ltext->priv->checkpoint_flag   = TRUE;
+
+       g_signal_connect (G_OBJECT(ltext->priv->buffer), "begin-user-action",
+                         G_CALLBACK(buffer_begin_user_action_cb), ltext);
        g_signal_connect (G_OBJECT(ltext->priv->buffer), "changed",
                          G_CALLBACK(buffer_changed_cb), ltext);
 }
 
+
+/*****************************************************************************/
+/* Finalize Method.                                                          */
+/*****************************************************************************/
 static void
 gl_label_text_finalize (GObject *object)
 {
@@ -223,21 +261,46 @@ gl_label_text_finalize (GObject *object)
        G_OBJECT_CLASS (gl_label_text_parent_class)->finalize (object);
 }
 
+
 /*****************************************************************************/
-/* NEW label "text" object.                                               */
+/** New Object Generator.                                                    */
 /*****************************************************************************/
 GObject *
-gl_label_text_new (glLabel *label)
+gl_label_text_new (glLabel *label,
+                   gboolean checkpoint)
 {
-       glLabelText *ltext;
+       glLabelText   *ltext;
+        glColorNode   *color_node;
 
        ltext = g_object_new (gl_label_text_get_type(), NULL);
 
-       gl_label_object_set_parent (GL_LABEL_OBJECT(ltext), label);
+        if (label != NULL)
+        {
+                if ( checkpoint )
+                {
+                        gl_label_checkpoint (label, _("Create text object"));
+                }
+
+                color_node = gl_color_node_new_default ();
+
+                color_node->color = gl_label_get_default_text_color (label);
+
+                ltext->priv->font_family      = gl_label_get_default_font_family (label);
+                ltext->priv->font_size        = gl_label_get_default_font_size (label);
+                ltext->priv->font_weight      = gl_label_get_default_font_weight (label);
+                ltext->priv->font_italic_flag = gl_label_get_default_font_italic_flag (label);
+                ltext->priv->align            = gl_label_get_default_text_alignment (label);
+               ltext->priv->color_node       = color_node;       
+                ltext->priv->line_spacing     = gl_label_get_default_text_line_spacing (label);
+
+                gl_label_add_object (label, GL_LABEL_OBJECT (ltext));
+                gl_label_object_set_parent (GL_LABEL_OBJECT (ltext), label);
+        }
 
        return G_OBJECT (ltext);
 }
 
+
 /*****************************************************************************/
 /* Copy object contents.                                                     */
 /*****************************************************************************/
@@ -257,13 +320,13 @@ copy (glLabelObject *dst_object,
 
        lines = gl_label_text_get_lines (ltext);
        text_color_node = get_text_color (src_object);
-       gl_label_text_set_lines (new_ltext, lines);
+       gl_label_text_set_lines (new_ltext, lines, FALSE);
 
        new_ltext->priv->font_family      = g_strdup (ltext->priv->font_family);
        new_ltext->priv->font_size        = ltext->priv->font_size;
        new_ltext->priv->font_weight      = ltext->priv->font_weight;
        new_ltext->priv->font_italic_flag = ltext->priv->font_italic_flag;
-       set_text_color (dst_object, text_color_node);
+       set_text_color (dst_object, text_color_node, FALSE);
        new_ltext->priv->align            = ltext->priv->align;
        new_ltext->priv->line_spacing     = ltext->priv->line_spacing;
        new_ltext->priv->auto_shrink      = ltext->priv->auto_shrink;
@@ -284,7 +347,8 @@ copy (glLabelObject *dst_object,
 /*****************************************************************************/
 void
 gl_label_text_set_lines (glLabelText *ltext,
-                        GList       *lines)
+                        GList       *lines,
+                         gboolean     checkpoint)
 {
        gchar *text;
 
@@ -292,15 +356,41 @@ gl_label_text_set_lines (glLabelText *ltext,
 
        g_return_if_fail (ltext && GL_IS_LABEL_TEXT (ltext));
 
+        ltext->priv->checkpoint_flag = checkpoint;
+
        text = gl_text_node_lines_expand (lines, NULL);
        gtk_text_buffer_set_text (ltext->priv->buffer, text, -1);
        g_free (text);
 
         ltext->priv->size_changed = TRUE;
 
+        ltext->priv->checkpoint_flag = TRUE;
+
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
+void
+gl_label_text_set_text (glLabelText *ltext,
+                        const gchar *text,
+                        gboolean     checkpoint)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (ltext && GL_IS_LABEL_TEXT (ltext));
+
+        ltext->priv->checkpoint_flag = checkpoint;
+
+       gtk_text_buffer_set_text (ltext->priv->buffer, text, -1);
+
+        ltext->priv->size_changed = TRUE;
+
+        ltext->priv->checkpoint_flag = TRUE;
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
 /*****************************************************************************/
 /* Get object params.                                                        */
 /*****************************************************************************/
@@ -312,6 +402,7 @@ gl_label_text_get_buffer (glLabelText *ltext)
        return ltext->priv->buffer;
 }
 
+
 GList *
 gl_label_text_get_lines (glLabelText *ltext)
 {
@@ -330,20 +421,56 @@ gl_label_text_get_lines (glLabelText *ltext)
        return lines;
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  text buffer "changed" callback.                                 */
-/*---------------------------------------------------------------------------*/
-void buffer_changed_cb (GtkTextBuffer *textbuffer,
-                       glLabelText   *ltext)
+
+gchar *
+gl_label_text_get_text (glLabelText      *ltext)
+{
+       GtkTextIter  start, end;
+       gchar       *text;
+
+       g_return_val_if_fail (ltext && GL_IS_LABEL_TEXT (ltext), NULL);
+
+       gtk_text_buffer_get_bounds (ltext->priv->buffer, &start, &end);
+       text = gtk_text_buffer_get_text (ltext->priv->buffer,
+                                        &start, &end, FALSE);
+
+       return text;
+}
+
+
+/*****************************************************************************/
+/* Text buffer "changed" callback.                                           */
+/*****************************************************************************/
+static void
+buffer_begin_user_action_cb (GtkTextBuffer *textbuffer,
+                             glLabelText   *ltext)
+{
+        glLabel *label;
+
+        if ( ltext->priv->checkpoint_flag )
+        {
+                label = gl_label_object_get_parent (GL_LABEL_OBJECT (ltext));
+                gl_label_checkpoint (label, _("Typing"));
+        }
+}
+
+
+/*****************************************************************************/
+/* Text buffer "changed" callback.                                           */
+/*****************************************************************************/
+static void
+buffer_changed_cb (GtkTextBuffer *textbuffer,
+                   glLabelText   *ltext)
 {
         ltext->priv->size_changed = TRUE;
 
        gl_label_object_emit_changed (GL_LABEL_OBJECT(ltext));
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  get object size method.                                         */
-/*---------------------------------------------------------------------------*/
+
+/*****************************************************************************/
+/* Get object size method.                                                   */
+/*****************************************************************************/
 static void
 get_size (glLabelObject *object,
          gdouble       *w,
@@ -424,41 +551,41 @@ get_size (glLabelObject *object,
        gl_debug (DEBUG_LABEL, "END");
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  set font family method.                                         */
-/*---------------------------------------------------------------------------*/
+
+/*****************************************************************************/
+/* Set font family method.                                                   */
+/*****************************************************************************/
 static void
 set_font_family (glLabelObject *object,
-                const gchar   *font_family)
+                const gchar   *font_family,
+                 gboolean       checkpoint)
 {
        glLabelText    *ltext = (glLabelText *)object;
-       GList          *family_names;
        gchar          *good_font_family;
+        glLabel        *label;
 
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (ltext && GL_IS_LABEL_TEXT (ltext));
        g_return_if_fail (font_family);
 
-       family_names = gl_util_get_font_family_list ();
-       if (g_list_find_custom (family_names, font_family, (GCompareFunc)g_utf8_collate)) {
-               good_font_family = g_strdup (font_family);
-       } else {
-               if (family_names != NULL) {
-                       good_font_family = g_strdup (family_names->data); /* 1st entry */
-               } else {
-                       good_font_family = g_strdup (font_family);
-               }
-       }
+        good_font_family = gl_font_util_validate_family (font_family);
 
        if (ltext->priv->font_family) {
-               if (g_strcasecmp (ltext->priv->font_family, good_font_family) == 0) {
+               if (strcmp (ltext->priv->font_family, good_font_family) == 0) {
                        g_free (good_font_family);
                        gl_debug (DEBUG_LABEL, "END (no change)");
                        return;
                }
                g_free (ltext->priv->font_family);
        }
+
+        if ( checkpoint )
+        {
+                label = gl_label_object_get_parent (GL_LABEL_OBJECT (ltext));
+                gl_label_checkpoint (label, _("Font family"));
+        }
+
        ltext->priv->font_family = g_strdup (good_font_family);
        g_free (good_font_family);
 
@@ -466,164 +593,215 @@ set_font_family (glLabelObject *object,
 
         ltext->priv->size_changed = TRUE;
 
+        gl_font_history_model_add_family (gl_font_history, ltext->priv->font_family);
+
        gl_label_object_emit_changed (GL_LABEL_OBJECT(ltext));
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  set font size method.                                           */
-/*---------------------------------------------------------------------------*/
+
+/*****************************************************************************/
+/* Set font size method.                                                     */
+/*****************************************************************************/
 static void
 set_font_size (glLabelObject *object,
-              gdouble        font_size)
+              gdouble        font_size,
+               gboolean       checkpoint)
 {
        glLabelText    *ltext = (glLabelText *)object;
+        glLabel        *label;
 
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (ltext && GL_IS_LABEL_TEXT (ltext));
 
-       if (ltext->priv->font_size != font_size) {
+       if (ltext->priv->font_size != font_size)
+        {
+                if ( checkpoint )
+                {
+                        label = gl_label_object_get_parent (GL_LABEL_OBJECT (ltext));
+                        gl_label_checkpoint (label, _("Font size"));
+                }
 
                 ltext->priv->size_changed = TRUE;
 
                ltext->priv->font_size = font_size;
                gl_label_object_emit_changed (GL_LABEL_OBJECT(ltext));
-
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  set font weight method.                                         */
-/*---------------------------------------------------------------------------*/
+
+/*****************************************************************************/
+/* Set font weight method.                                                   */
+/*****************************************************************************/
 static void
 set_font_weight (glLabelObject   *object,
-                PangoWeight      font_weight)
+                PangoWeight      font_weight,
+                 gboolean         checkpoint)
 {
        glLabelText    *ltext = (glLabelText *)object;
+        glLabel        *label;
 
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (ltext && GL_IS_LABEL_TEXT (ltext));
 
-       if (ltext->priv->font_weight != font_weight) {
+       if (ltext->priv->font_weight != font_weight)
+        {
+                if ( checkpoint )
+                {
+                        label = gl_label_object_get_parent (GL_LABEL_OBJECT (ltext));
+                        gl_label_checkpoint (label, _("Font weight"));
+                }
 
                 ltext->priv->size_changed = TRUE;
 
                ltext->priv->font_weight = font_weight;
                gl_label_object_emit_changed (GL_LABEL_OBJECT(ltext));
-
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  set font italic flag method.                                    */
-/*---------------------------------------------------------------------------*/
+
+/*****************************************************************************/
+/* Set font italic flag method.                                              */
+/*****************************************************************************/
 static void
 set_font_italic_flag (glLabelObject *object,
-                     gboolean       font_italic_flag)
+                     gboolean       font_italic_flag,
+                      gboolean       checkpoint)
 {
        glLabelText    *ltext = (glLabelText *)object;
+        glLabel        *label;
 
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (ltext && GL_IS_LABEL_TEXT (ltext));
 
-       if (ltext->priv->font_italic_flag != font_italic_flag) {
+       if (ltext->priv->font_italic_flag != font_italic_flag)
+        {
+                if ( checkpoint )
+                {
+                        label = gl_label_object_get_parent (GL_LABEL_OBJECT (ltext));
+                        gl_label_checkpoint (label, _("Italic"));
+                }
 
                 ltext->priv->size_changed = TRUE;
 
                ltext->priv->font_italic_flag = font_italic_flag;
                gl_label_object_emit_changed (GL_LABEL_OBJECT(ltext));
-
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  set text alignment method.                                      */
-/*---------------------------------------------------------------------------*/
+
+/*****************************************************************************/
+/* Set text alignment method.                                                */
+/*****************************************************************************/
 static void
 set_text_alignment (glLabelObject    *object,
-                   PangoAlignment    text_alignment)
+                   PangoAlignment    text_alignment,
+                    gboolean          checkpoint)
 {
        glLabelText    *ltext = (glLabelText *)object;
+        glLabel        *label;
 
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (ltext && GL_IS_LABEL_TEXT (ltext));
 
-       if (ltext->priv->align != text_alignment) {
+       if (ltext->priv->align != text_alignment)
+        {
+                if ( checkpoint )
+                {
+                        label = gl_label_object_get_parent (GL_LABEL_OBJECT (ltext));
+                        gl_label_checkpoint (label, _("Align text"));
+                }
 
                 ltext->priv->size_changed = TRUE;
 
                ltext->priv->align = text_alignment;
                gl_label_object_emit_changed (GL_LABEL_OBJECT(ltext));
-
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  set text line spacing method.                                   */
-/*---------------------------------------------------------------------------*/
+
+/*****************************************************************************/
+/* Set text line spacing method.                                             */
+/*****************************************************************************/
 static void
 set_text_line_spacing (glLabelObject *object,
-                      gdouble        line_spacing)
+                      gdouble        line_spacing,
+                       gboolean       checkpoint)
 {
        glLabelText    *ltext = (glLabelText *)object;
+        glLabel        *label;
 
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (ltext && GL_IS_LABEL_TEXT (ltext));
 
-       if (ltext->priv->line_spacing != line_spacing) {
+       if (ltext->priv->line_spacing != line_spacing)
+        {
+                if ( checkpoint )
+                {
+                        label = gl_label_object_get_parent (GL_LABEL_OBJECT (ltext));
+                        gl_label_checkpoint (label, _("Line spacing"));
+                }
 
                 ltext->priv->size_changed = TRUE;
 
                ltext->priv->line_spacing = line_spacing;
                gl_label_object_emit_changed (GL_LABEL_OBJECT(ltext));
-
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  set text color method.                                          */
-/*---------------------------------------------------------------------------*/
+
+/*****************************************************************************/
+/* Set text color method.                                                    */
+/*****************************************************************************/
 static void
 set_text_color (glLabelObject *object,
-               glColorNode   *text_color_node)
+               glColorNode   *text_color_node,
+                gboolean       checkpoint)
 {
        glLabelText    *ltext = (glLabelText *)object;
+        glLabel        *label;
 
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (ltext && GL_IS_LABEL_TEXT (ltext));
 
-       if (!gl_color_node_equal (ltext->priv->color_node, text_color_node)) {
+       if (!gl_color_node_equal (ltext->priv->color_node, text_color_node))
+        {
+                if ( checkpoint )
+                {
+                        label = gl_label_object_get_parent (GL_LABEL_OBJECT (ltext));
+                        gl_label_checkpoint (label, _("Text color"));
+                }
 
                gl_color_node_free (&(ltext->priv->color_node));
                ltext->priv->color_node = gl_color_node_dup (text_color_node);
                
                gl_label_object_emit_changed (GL_LABEL_OBJECT(ltext));
-
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  get font family method.                                         */
-/*---------------------------------------------------------------------------*/
+
+/*****************************************************************************/
+/* Get font family method.                                                   */
+/*****************************************************************************/
 static gchar *
 get_font_family (glLabelObject *object)
 {
@@ -636,9 +814,10 @@ get_font_family (glLabelObject *object)
        return g_strdup (ltext->priv->font_family);
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  get font size method.                                           */
-/*---------------------------------------------------------------------------*/
+
+/*****************************************************************************/
+/* Get font size method.                                                     */
+/*****************************************************************************/
 static gdouble
 get_font_size (glLabelObject *object)
 {
@@ -651,9 +830,10 @@ get_font_size (glLabelObject *object)
        return ltext->priv->font_size;
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  get font weight method.                                         */
-/*---------------------------------------------------------------------------*/
+
+/*****************************************************************************/
+/* Get font weight method.                                                   */
+/*****************************************************************************/
 static PangoWeight
 get_font_weight (glLabelObject   *object)
 {
@@ -666,9 +846,10 @@ get_font_weight (glLabelObject   *object)
        return ltext->priv->font_weight;
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  get font italic flag method.                                    */
-/*---------------------------------------------------------------------------*/
+
+/*****************************************************************************/
+/* Get font italic flag method.                                              */
+/*****************************************************************************/
 static gboolean
 get_font_italic_flag (glLabelObject *object)
 {
@@ -681,9 +862,10 @@ get_font_italic_flag (glLabelObject *object)
        return ltext->priv->font_italic_flag;
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  get text alignment method.                                      */
-/*---------------------------------------------------------------------------*/
+
+/*****************************************************************************/
+/* Get text alignment method.                                                */
+/*****************************************************************************/
 static PangoAlignment
 get_text_alignment (glLabelObject    *object)
 {
@@ -696,9 +878,10 @@ get_text_alignment (glLabelObject    *object)
        return ltext->priv->align;
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  get text line spacing method.                                   */
-/*---------------------------------------------------------------------------*/
+
+/*****************************************************************************/
+/* Get text line spacing method.                                             */
+/*****************************************************************************/
 static gdouble
 get_text_line_spacing (glLabelObject *object)
 {
@@ -711,9 +894,10 @@ get_text_line_spacing (glLabelObject *object)
        return ltext->priv->line_spacing;
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  get text color method.                                          */
-/*---------------------------------------------------------------------------*/
+
+/*****************************************************************************/
+/* Get text color method.                                                    */
+/*****************************************************************************/
 static glColorNode*
 get_text_color (glLabelObject *object)
 {
@@ -726,27 +910,37 @@ get_text_color (glLabelObject *object)
        return gl_color_node_dup (ltext->priv->color_node);
 }
 
+
 /*****************************************************************************/
 /* Set auto shrink flag.                                                     */
 /*****************************************************************************/
 void
 gl_label_text_set_auto_shrink (glLabelText      *ltext,
-                              gboolean          auto_shrink)
+                              gboolean          auto_shrink,
+                               gboolean          checkpoint)
 {
+        glLabel *label;
+
        gl_debug (DEBUG_LABEL, "BEGIN");
 
        g_return_if_fail (ltext && GL_IS_LABEL_TEXT (ltext));
 
-       if (ltext->priv->auto_shrink != auto_shrink) {
+       if (ltext->priv->auto_shrink != auto_shrink)
+        {
+                if ( checkpoint )
+                {
+                        label = gl_label_object_get_parent (GL_LABEL_OBJECT (ltext));
+                        gl_label_checkpoint (label, _("Auto shrink"));
+                }
 
                ltext->priv->auto_shrink = auto_shrink;
                gl_label_object_emit_changed (GL_LABEL_OBJECT(ltext));
-
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /*****************************************************************************/
 /* Query auto shrink flag.                                                   */
 /*****************************************************************************/
@@ -760,94 +954,116 @@ gl_label_text_get_auto_shrink (glLabelText      *ltext)
        return ltext->priv->auto_shrink;
 }
 
+
 /*****************************************************************************/
-/* Draw object method.                                                       */
+/* Automatically shrink text size to fit within horizontal width.            */
 /*****************************************************************************/
-static void
-draw_object (glLabelObject *object,
-             cairo_t       *cr,
-             gboolean       screen_flag,
-             glMergeRecord *record)
+static gdouble
+auto_shrink_font_size (cairo_t     *cr,
+                       gchar       *family,
+                       gdouble      size,
+                       PangoWeight  weight,
+                       PangoStyle   style,
+                       gchar       *text,
+                       gdouble      width)
 {
-        gdouble          x0, y0;
-        cairo_matrix_t   matrix;
-       gdouble          object_w, object_h;
-       gdouble          raw_w, raw_h;
-       gchar           *text;
-       GList           *lines;
-       gchar           *font_family;
-       gdouble          font_size;
-       PangoWeight      font_weight;
-       gboolean         font_italic_flag;
-       glColorNode     *color_node;
-        gboolean         auto_shrink;
-       guint            color;
-       gdouble          text_line_spacing;
-        PangoAlignment   alignment;
-        PangoStyle       style;
-        PangoLayout     *layout;
+        PangoLayout          *layout;
         PangoFontDescription *desc;
-        gdouble          scale_x, scale_y;
-        cairo_font_options_t *font_options;
-        PangoContext         *context;
+        gint                  iw, ih;
+        gdouble               layout_width;
+        gdouble               new_size;
 
+        layout = pango_cairo_create_layout (cr);
 
-       gl_debug (DEBUG_LABEL, "START");
+        desc = pango_font_description_new ();
+        pango_font_description_set_family (desc, family);
+        pango_font_description_set_weight (desc, weight);
+        pango_font_description_set_style  (desc, style);
+        pango_font_description_set_size   (desc, size * PANGO_SCALE);
+
+        pango_layout_set_font_description (layout, desc);
+        pango_font_description_free       (desc);
+
+        pango_layout_set_text (layout, text, -1);
+        pango_layout_set_width (layout, -1);
+        pango_layout_get_size (layout, &iw, &ih);
+        layout_width = (gdouble)iw / (gdouble)PANGO_SCALE;
 
-        gl_label_object_get_position (object, &x0, &y0);
-        gl_label_object_get_matrix (object, &matrix);
+        g_object_unref (layout);
 
-       gl_label_object_get_size (object, &object_w, &object_h);
-       gl_label_object_get_raw_size (object, &raw_w, &raw_h);
-       lines = gl_label_text_get_lines (GL_LABEL_TEXT (object));
-       font_family = gl_label_object_get_font_family (object);
-       font_size = gl_label_object_get_font_size (object) * FONT_SCALE;
-       font_weight = gl_label_object_get_font_weight (object);
-       font_italic_flag = gl_label_object_get_font_italic_flag (object);
+        g_print ("Object w = %g, layout w = %g\n", width, layout_width);
 
-       color_node = gl_label_object_get_text_color (object);
-       color = gl_color_node_expand (color_node, record);
-        if (color_node->field_flag && screen_flag)
+        if ( layout_width > width )
         {
-                color = GL_COLOR_MERGE_DEFAULT;
+                /* Scale down. */
+                new_size = size * (width-2*GL_LABEL_TEXT_MARGIN)/layout_width;
+
+                /* Round down to nearest 1/2 point */
+                new_size = (int)(new_size*2.0) / 2.0;
+
+                /* don't get ridiculously small. */
+                if (new_size < 1.0)
+                {
+                        new_size = 1.0;
+                }
         }
-       gl_color_node_free (&color_node);
-       
-       alignment = gl_label_object_get_text_alignment (object);
-       text_line_spacing =
-               gl_label_object_get_text_line_spacing (object);
-        auto_shrink = gl_label_text_get_auto_shrink (GL_LABEL_TEXT (object));
+        else
+        {
+                new_size = size;
+        }
+
+        return new_size;
+}
+
+
+/*****************************************************************************/
+/* Update pango layout.                                                      */
+/*****************************************************************************/
+static void
+set_text_path (glLabelText      *this,
+               cairo_t          *cr,
+               gboolean          screen_flag,
+               glMergeRecord    *record)
+{
+        gdouble               object_w, object_h;
+        gdouble               raw_w, raw_h;
+        gchar                *text;
+        GList                *lines;
+        gdouble               font_size;
+        gboolean              auto_shrink;
+        PangoLayout          *layout;
+        PangoStyle            style;
+        PangoFontDescription *desc;
+        cairo_font_options_t *font_options;
+        PangoContext         *context;
+
+
+        gl_debug (DEBUG_LABEL, "START");
+
+        cairo_save (cr);
 
-       text = gl_text_node_lines_expand (lines, record);
+        gl_label_object_get_size (GL_LABEL_OBJECT (this), &object_w, &object_h);
+        gl_label_object_get_raw_size (GL_LABEL_OBJECT (this), &raw_w, &raw_h);
 
-        style = font_italic_flag ? PANGO_STYLE_ITALIC : PANGO_STYLE_NORMAL;
+        lines = gl_label_text_get_lines (this);
+        text = gl_text_node_lines_expand (lines, record);
 
+        style = this->priv->font_italic_flag ? PANGO_STYLE_ITALIC : PANGO_STYLE_NORMAL;
 
+        font_size   = this->priv->font_size;
+        auto_shrink = gl_label_text_get_auto_shrink (this);
         if (!screen_flag && record && auto_shrink && (raw_w != 0.0))
         {
                 font_size = auto_shrink_font_size (cr,
-                                                   font_family,
-                                                   font_size,
-                                                   font_weight,
+                                                   this->priv->font_family,
+                                                   this->priv->font_size * FONT_SCALE,
+                                                   this->priv->font_weight,
                                                    style,
                                                    text,
                                                    object_w);
-                g_print ("Autosize new size = %g\n", font_size);
         }
 
 
-        /*
-         * Workaround for pango Bug#341481.
-         * Render font at device scale and scale font size accordingly.
-         */
-        scale_x = 1.0;
-        scale_y = 1.0;
-        cairo_device_to_user_distance (cr, &scale_x, &scale_y);
-        scale_x = fabs (scale_x);
-        scale_y = fabs (scale_y);
-        cairo_save (cr);
-        cairo_scale (cr, scale_x, scale_y);
-
         layout = pango_cairo_create_layout (cr);
 
         font_options = cairo_font_options_create ();
@@ -857,42 +1073,67 @@ draw_object (glLabelObject *object,
         cairo_font_options_destroy (font_options);
 
         desc = pango_font_description_new ();
-        pango_font_description_set_family (desc, font_family);
-        pango_font_description_set_weight (desc, font_weight);
+        pango_font_description_set_family (desc, this->priv->font_family);
+        pango_font_description_set_weight (desc, this->priv->font_weight);
+        pango_font_description_set_size   (desc, font_size * FONT_SCALE * PANGO_SCALE);
         pango_font_description_set_style  (desc, style);
-        pango_font_description_set_size   (desc, font_size * PANGO_SCALE / scale_x);
         pango_layout_set_font_description (layout, desc);
         pango_font_description_free       (desc);
 
         pango_layout_set_text (layout, text, -1);
-        pango_layout_set_spacing (layout, font_size * (text_line_spacing-1) * PANGO_SCALE / scale_x);
+        pango_layout_set_spacing (layout, font_size * (this->priv->line_spacing-1) * PANGO_SCALE);
         if (raw_w == 0.0)
         {
                 pango_layout_set_width (layout, -1);
         }
         else
         {
-                pango_layout_set_width (layout, object_w * PANGO_SCALE / scale_x);
+                pango_layout_set_width (layout, object_w * PANGO_SCALE);
         }
-        pango_layout_set_wrap (layout, PANGO_WRAP_CHAR);
-        pango_layout_set_alignment (layout, alignment);
+        pango_layout_set_wrap (layout, PANGO_WRAP_WORD);
+        pango_layout_set_alignment (layout, this->priv->align);
 
 
-        cairo_set_source_rgba (cr, GL_COLOR_RGBA_ARGS (color));
-        cairo_move_to (cr, GL_LABEL_TEXT_MARGIN/scale_x, 0);
-        pango_cairo_show_layout (cr, layout);
+        cairo_move_to (cr, GL_LABEL_TEXT_MARGIN, 0);
+        pango_cairo_layout_path (cr, layout);
+
+        g_object_unref (layout);
+        gl_text_node_lines_free (&lines);
 
         cairo_restore (cr);
 
-        g_object_unref (layout);
+        gl_debug (DEBUG_LABEL, "END");
+}
 
 
-       gl_text_node_lines_free (&lines);
-       g_free (font_family);
+/*****************************************************************************/
+/* Draw object method.                                                       */
+/*****************************************************************************/
+static void
+draw_object (glLabelObject *object,
+             cairo_t       *cr,
+             gboolean       screen_flag,
+             glMergeRecord *record)
+{
+        glColorNode     *color_node;
+        guint            color;
 
-       gl_debug (DEBUG_LABEL, "END");
+        gl_debug (DEBUG_LABEL, "START");
+
+        color_node = gl_label_object_get_text_color (object);
+        color = gl_color_node_expand (color_node, record);
+        if (color_node->field_flag && screen_flag)
+        {
+                color = GL_COLOR_MERGE_DEFAULT;
+        }
+        gl_color_node_free (&color_node);
+
+        draw_text_real (object, cr, screen_flag, record, color);
+
+        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /*****************************************************************************/
 /* Draw shadow method.                                                       */
 /*****************************************************************************/
@@ -902,193 +1143,157 @@ draw_shadow (glLabelObject *object,
              gboolean       screen_flag,
              glMergeRecord *record)
 {
-        gdouble          x0, y0;
-        cairo_matrix_t   matrix;
-       gdouble          object_w, object_h;
-       gdouble          raw_w, raw_h;
-       gchar           *text;
-       GList           *lines;
-       gchar           *font_family;
-       gdouble          font_size;
-       PangoWeight      font_weight;
-       gboolean         font_italic_flag;
-        gboolean         auto_shrink;
-       guint            color;
-       glColorNode     *color_node;
-       gdouble          text_line_spacing;
-       glColorNode     *shadow_color_node;
-       gdouble          shadow_opacity;
-       guint            shadow_color;
-        PangoAlignment   alignment;
-        PangoStyle       style;
-        PangoLayout     *layout;
-        PangoFontDescription *desc;
-        gdouble          scale_x, scale_y;
-        cairo_font_options_t *font_options;
-        PangoContext         *context;
+        glColorNode     *color_node;
+        guint            color;
+        glColorNode     *shadow_color_node;
+        gdouble          shadow_opacity;
+        guint            shadow_color;
 
+        gl_debug (DEBUG_LABEL, "START");
 
-       gl_debug (DEBUG_LABEL, "START");
+        color_node = gl_label_object_get_text_color (object);
+        color = gl_color_node_expand (color_node, record);
+        if (color_node->field_flag && screen_flag)
+        {
+                color = GL_COLOR_MERGE_DEFAULT;
+        }
+        gl_color_node_free (&color_node);
 
-        gl_label_object_get_position (object, &x0, &y0);
-        gl_label_object_get_matrix (object, &matrix);
+        shadow_color_node = gl_label_object_get_shadow_color (object);
+        if (shadow_color_node->field_flag)
+        {
+                shadow_color_node->color = GL_COLOR_SHADOW_MERGE_DEFAULT;
+        }
+        shadow_opacity = gl_label_object_get_shadow_opacity (object);
+        shadow_color = gl_color_shadow (shadow_color_node->color, shadow_opacity, color);
+        gl_color_node_free (&shadow_color_node);
 
-       gl_label_object_get_size (object, &object_w, &object_h);
-       gl_label_object_get_raw_size (object, &raw_w, &raw_h);
-       lines = gl_label_text_get_lines (GL_LABEL_TEXT (object));
-       font_family = gl_label_object_get_font_family (object);
-       font_size = gl_label_object_get_font_size (object) * FONT_SCALE;
-       font_weight = gl_label_object_get_font_weight (object);
-       font_italic_flag = gl_label_object_get_font_italic_flag (object);
+        draw_text_real (object, cr, screen_flag, record, shadow_color);
 
-       color_node = gl_label_object_get_text_color (object);
-       color = gl_color_node_expand (color_node, record);
-       gl_color_node_free (&color_node);
-       
-       alignment = gl_label_object_get_text_alignment (object);
-       text_line_spacing =
-               gl_label_object_get_text_line_spacing (object);
-        auto_shrink = gl_label_text_get_auto_shrink (GL_LABEL_TEXT (object));
-
-       shadow_color_node = gl_label_object_get_shadow_color (object);
-       if (shadow_color_node->field_flag)
-       {
-               shadow_color_node->color = GL_COLOR_SHADOW_MERGE_DEFAULT;
-       }
-       shadow_opacity = gl_label_object_get_shadow_opacity (object);
-       shadow_color = gl_color_shadow (shadow_color_node->color, shadow_opacity, color);
-       gl_color_node_free (&shadow_color_node);
+        gl_debug (DEBUG_LABEL, "END");
+}
 
-       text = gl_text_node_lines_expand (lines, record);
 
-        style = font_italic_flag ? PANGO_STYLE_ITALIC : PANGO_STYLE_NORMAL;
+/*****************************************************************************/
+/* Draw text.                                                                */
+/*****************************************************************************/
+static void
+draw_text_real (glLabelObject *object,
+                cairo_t       *cr,
+                gboolean       screen_flag,
+                glMergeRecord *record,
+                guint          color)
+{
+        gl_debug (DEBUG_LABEL, "START");
 
+        set_text_path (GL_LABEL_TEXT (object), cr, screen_flag, record);
 
-        if (!screen_flag && record && auto_shrink && (raw_w != 0.0))
-        {
-                font_size = auto_shrink_font_size (cr,
-                                                   font_family,
-                                                   font_size,
-                                                   font_weight,
-                                                   style,
-                                                   text,
-                                                   object_w);
-        }
-
+        cairo_set_source_rgba (cr, GL_COLOR_RGBA_ARGS (color));
+        cairo_fill (cr);
 
-        /*
-         * Workaround for pango Bug#341481.
-         * Render font at device scale and scale font size accordingly.
-         */
-        scale_x = 1.0;
-        scale_y = 1.0;
-        cairo_device_to_user_distance (cr, &scale_x, &scale_y);
-        scale_x = fabs (scale_x);
-        scale_y = fabs (scale_y);
-        cairo_save (cr);
-        cairo_scale (cr, scale_x, scale_y);
+        gl_debug (DEBUG_LABEL, "END");
+}
 
-        layout = pango_cairo_create_layout (cr);
 
-        font_options = cairo_font_options_create ();
-        cairo_font_options_set_hint_style (font_options, CAIRO_HINT_STYLE_NONE);
-        context = pango_layout_get_context (layout);
-        pango_cairo_context_set_font_options (context, font_options);
-        cairo_font_options_destroy (font_options);
+/*****************************************************************************/
+/* Is object at coordinates?                                                 */
+/*****************************************************************************/
+static gboolean
+object_at (glLabelObject *object,
+           cairo_t       *cr,
+           gdouble        x,
+           gdouble        y)
+{
+        gdouble           w, h;
+        gdouble           scale_x, scale_y;
 
-        desc = pango_font_description_new ();
-        pango_font_description_set_family (desc, font_family);
-        pango_font_description_set_weight (desc, font_weight);
-        pango_font_description_set_style  (desc, style);
-        pango_font_description_set_size   (desc, font_size * PANGO_SCALE / scale_x);
-        pango_layout_set_font_description (layout, desc);
-        pango_font_description_free       (desc);
+        gl_label_object_get_size (object, &w, &h);
 
-        pango_layout_set_text (layout, text, -1);
-        pango_layout_set_spacing (layout, font_size * (text_line_spacing-1) * PANGO_SCALE / scale_x);
-        if (raw_w == 0.0)
-        {
-                pango_layout_set_width (layout, -1);
-        }
-        else
+        if ( (x >= 0) && (x <= w) && (y >= 0) && (y <= h) )
         {
-                pango_layout_set_width (layout, object_w * PANGO_SCALE / scale_x);
-        }
-        pango_layout_set_wrap (layout, PANGO_WRAP_CHAR);
-        pango_layout_set_alignment (layout, alignment);
+                cairo_new_path (cr);
+                set_text_path (GL_LABEL_TEXT (object), cr, TRUE, NULL);
+                if (cairo_in_fill (cr, x, y))
+                {
+                        return TRUE;
+                }
 
-        cairo_set_source_rgba (cr, GL_COLOR_RGBA_ARGS (shadow_color));
-        cairo_move_to (cr, GL_LABEL_TEXT_MARGIN/scale_x, 0);
-        pango_cairo_show_layout (cr, layout);
 
+                scale_x = 1.0;
+                scale_y = 1.0;
+                cairo_device_to_user_distance (cr, &scale_x, &scale_y);
 
-        cairo_restore (cr);
+                cairo_set_line_width (cr, 2*SELECTION_SLOP_PIXELS*scale_x);
 
-        g_object_unref (layout);
+                if (cairo_in_stroke (cr, x, y))
+                {
+                        return TRUE;
+                }
 
-       gl_text_node_lines_free (&lines);
-       g_free (font_family);
 
-       gl_debug (DEBUG_LABEL, "END");
+                if (gl_label_object_is_selected (object))
+                {
+                        cairo_new_path (cr);
+                        cairo_rectangle (cr, 0, 0, w, h);
+
+                        scale_x = 1.0;
+                        scale_y = 1.0;
+                        cairo_device_to_user_distance (cr, &scale_x, &scale_y);
+
+                        cairo_set_line_width (cr, 2*SELECTION_SLOP_PIXELS*scale_x);
+
+                        if (cairo_in_stroke (cr, x, y))
+                        {
+                                return TRUE;
+                        }
+                }
+
+        }
+
+        return FALSE;
 }
 
+
 /*****************************************************************************/
-/* Automatically shrink text size to fit within horizontal width.            */
+/* Draw text style handles.                                                  */
 /*****************************************************************************/
-static gdouble
-auto_shrink_font_size (cairo_t     *cr,
-                       gchar       *family,
-                       gdouble      size,
-                       PangoWeight  weight,
-                       PangoStyle   style,
-                       gchar       *text,
-                       gdouble      width)
+static void
+draw_handles (glLabelObject     *object,
+              cairo_t           *cr)
 {
-        PangoLayout          *layout;
-        PangoFontDescription *desc;
-        gint                  iw, ih;
-        gdouble               layout_width;
-        gdouble               new_size;
+        gdouble w, h;
+        gdouble scale_x, scale_y;
+        gdouble dashes[2] = { 2, 2 };
 
-        layout = pango_cairo_create_layout (cr);
+        gl_label_object_get_size (GL_LABEL_OBJECT(object), &w, &h);
 
-        desc = pango_font_description_new ();
-        pango_font_description_set_family (desc, family);
-        pango_font_description_set_weight (desc, weight);
-        pango_font_description_set_style  (desc, style);
-        pango_font_description_set_size   (desc, size * PANGO_SCALE);
-        
-        pango_layout_set_font_description (layout, desc);
-        pango_font_description_free       (desc);
+        cairo_save (cr);
 
-        pango_layout_set_text (layout, text, -1);
-        pango_layout_set_width (layout, -1);
-        pango_layout_get_size (layout, &iw, &ih);
-        layout_width = (gdouble)iw / (gdouble)PANGO_SCALE;
+        cairo_rectangle (cr, 0, 0, w, h);
 
-        g_object_unref (layout);
+        scale_x = 1.0;
+        scale_y = 1.0;
+        cairo_device_to_user_distance (cr, &scale_x, &scale_y);
+        cairo_scale (cr, scale_x, scale_y);
 
-        g_print ("Object w = %g, layout w = %g\n", width, layout_width);
+        cairo_set_dash (cr, dashes, 2, 0);
+        cairo_set_line_width (cr, HANDLE_OUTLINE_WIDTH_PIXELS);
+        cairo_set_source_rgba (cr, HANDLE_OUTLINE_RGBA_ARGS);
+        cairo_stroke (cr);
 
-        if ( layout_width > width )
-        {
-                /* Scale down. */
-                new_size = size * (width-2*GL_LABEL_TEXT_MARGIN)/layout_width;
+        cairo_restore (cr);
 
-                /* Round down to nearest 1/2 point */
-                new_size = (int)(new_size*2.0) / 2.0;
+        gl_label_object_draw_handles_box (object, cr);
+}
 
-                /* don't get ridiculously small. */
-                if (new_size < 1.0)
-                {
-                        new_size = 1.0;
-                }
-        }
-        else
-        {
-                new_size = size;
-        }
 
-        return new_size;
-}
 
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 95c46230b4ea20fb84ccce1696c241015f10c25b..b99a04628f437575b71535b2f7267acf86607808 100644 (file)
@@ -1,31 +1,27 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  label_text.h:  GLabels label text object
+ *  label-text.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __LABEL_TEXT_H__
 #define __LABEL_TEXT_H__
 
-#include <gtk/gtktextbuffer.h>
+#include <gtk/gtk.h>
 #include "text-node.h"
 #include "label-object.h"
 
@@ -34,16 +30,18 @@ G_BEGIN_DECLS
 #define GL_LABEL_TEXT_MARGIN 3.0
 
 
-#define GL_TYPE_LABEL_TEXT            (gl_label_text_get_type ())
-#define GL_LABEL_TEXT(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_LABEL_TEXT, glLabelText))
-#define GL_LABEL_TEXT_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_LABEL_TEXT, glLabelTextClass))
-#define GL_IS_LABEL_TEXT(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_LABEL_TEXT))
-#define GL_IS_LABEL_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_LABEL_TEXT))
+#define GL_TYPE_LABEL_TEXT              (gl_label_text_get_type ())
+#define GL_LABEL_TEXT(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_LABEL_TEXT, glLabelText))
+#define GL_LABEL_TEXT_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_LABEL_TEXT, glLabelTextClass))
+#define GL_IS_LABEL_TEXT(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_LABEL_TEXT))
+#define GL_IS_LABEL_TEXT_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_LABEL_TEXT))
+#define GL_LABEL_TEXT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), GL_TYPE_LABEL_TEXT, glLabelTextClass))
+
 
 typedef struct _glLabelText          glLabelText;
+typedef struct _glLabelTextPrivate   glLabelTextPrivate;
 typedef struct _glLabelTextClass     glLabelTextClass;
 
-typedef struct _glLabelTextPrivate   glLabelTextPrivate;
 
 struct _glLabelText {
        glLabelObject         object;
@@ -55,20 +53,44 @@ struct _glLabelTextClass {
        glLabelObjectClass    parent_class;
 };
 
-GType          gl_label_text_get_type     (void) G_GNUC_CONST;
 
-GObject       *gl_label_text_new          (glLabel          *label);
+GType          gl_label_text_get_type        (void) G_GNUC_CONST;
+
+GObject       *gl_label_text_new             (glLabel          *label,
+                                              gboolean          checkpoint);
+
+void           gl_label_text_set_lines       (glLabelText      *ltext,
+                                              GList            *lines,
+                                              gboolean          checkpoint);
+
+void           gl_label_text_set_text        (glLabelText      *ltext,
+                                              const gchar      *text,
+                                              gboolean          checkpoint);
 
-void           gl_label_text_set_lines    (glLabelText      *ltext,
-                                          GList            *lines);
-GtkTextBuffer *gl_label_text_get_buffer   (glLabelText      *ltext);
-GList         *gl_label_text_get_lines    (glLabelText      *ltext);
+GtkTextBuffer *gl_label_text_get_buffer      (glLabelText      *ltext);
+
+gchar         *gl_label_text_get_text        (glLabelText      *ltext);
+
+GList         *gl_label_text_get_lines       (glLabelText      *ltext);
 
 void           gl_label_text_set_auto_shrink (glLabelText      *ltext,
-                                             gboolean          auto_shrink);
+                                             gboolean          auto_shrink,
+                                              gboolean          checkpoint);
+
 gboolean       gl_label_text_get_auto_shrink (glLabelText      *ltext);
 
 
 G_END_DECLS
 
 #endif /* __LABEL_TEXT_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index c886529bf629ffed94539570f579581423b90d1c..efa117f0b8a33c3920f94c9d3661fc1d5993e622 100644 (file)
@@ -1,25 +1,21 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  label.c:  GLabels label module
+ *  label.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 #include "label.h"
 
 #include <glib/gi18n.h>
+#include <math.h>
 
-#include "marshal.h"
+#include "template-history.h"
+#include "file-util.h"
+#include "xml-label.h"
 #include "prefs.h"
-#include "util.h"
+#include "label-text.h"
+#include "label-image.h"
+#include "marshal.h"
 
 #include "debug.h"
 
+
 /*========================================================*/
 /* Private macros and constants.                          */
 /*========================================================*/
 
+
 /*========================================================*/
 /* Private types.                                         */
 /*========================================================*/
@@ -46,24 +49,80 @@ struct _glLabelPrivate {
 
        gchar       *filename;
        gint         compression;
-       gboolean     modified_flag;
        gint         untitled_instance;
 
+       gboolean     modified_flag;
+        GTimeVal     time_stamp;
+
+        lglTemplate *template;
+        gboolean     rotate_flag;
+
+        GList       *object_list;
+
        glMerge     *merge;
 
        GHashTable  *pixbuf_cache;
+       GHashTable  *svg_cache;
+
+        /* Delay changed signals while operating on selections of multiple objects. */
+        gboolean     selection_op_flag;
+        gboolean     delayed_change_flag;
+
+       /* Default object text properties */
+       gchar             *default_font_family;
+       gdouble            default_font_size;
+       PangoWeight        default_font_weight;
+       gboolean           default_font_italic_flag;
+       guint              default_text_color;
+       PangoAlignment     default_text_alignment;
+       gdouble            default_text_line_spacing;
+
+       /* Default object line properties */
+       gdouble            default_line_width;
+       guint              default_line_color;
+       
+       /* Default object fill properties */
+       guint              default_fill_color;
+
+        /* Undo/Redo state */
+        GQueue      *undo_stack;
+        GQueue      *redo_stack;
+        gboolean     cp_cleared_flag;
+        gchar       *cp_desc;
 };
 
+typedef struct {
+        gchar             *xml_buffer;
+        gchar             *text;
+        GdkPixbuf         *pixbuf;
+} ClipboardData;
+
 enum {
+       SELECTION_CHANGED,
        CHANGED,
        NAME_CHANGED,
        MODIFIED_CHANGED,
        MERGE_CHANGED,
        SIZE_CHANGED,
-        OBJECT_ADDED,
        LAST_SIGNAL
 };
 
+typedef struct {
+        gchar       *description;
+
+       gboolean     modified_flag;
+        GTimeVal     time_stamp;
+
+        lglTemplate *template;
+        gboolean     rotate_flag;
+
+        GList       *object_list;
+
+       glMerge     *merge;
+
+} State;
+
+
 /*========================================================*/
 /* Private globals.                                       */
 /*========================================================*/
@@ -72,6 +131,7 @@ static guint signals[LAST_SIGNAL] = {0};
 
 static guint untitled = 0;
 
+
 /*========================================================*/
 /* Private function prototypes.                           */
 /*========================================================*/
@@ -79,18 +139,58 @@ static guint untitled = 0;
 static void gl_label_finalize      (GObject *object);
 
 static void object_changed_cb      (glLabelObject *object,
-                                   glLabel       *label);
+                                    glLabel       *label);
 
 static void object_moved_cb        (glLabelObject *object,
-                                   gdouble        x,
-                                   gdouble        y,
-                                   glLabel       *label);
+                                    glLabel       *label);
+
+static void do_modify              (glLabel       *label);
+
+static void begin_selection_op     (glLabel       *label);
+static void end_selection_op       (glLabel       *label);
+
+static void clipboard_get_cb       (GtkClipboard     *clipboard,
+                                    GtkSelectionData *selection_data,
+                                    guint             info,
+                                    ClipboardData    *data);
+
+static void clipboard_clear_cb     (GtkClipboard     *clipboard,
+                                    ClipboardData    *data);
+
+static void receive_targets_cb     (GtkClipboard     *clipboard,
+                                    GdkAtom          *targets,
+                                    gint              n_targets,
+                                    glLabel          *label);
+
+static void paste_xml_received_cb  (GtkClipboard     *clipboard,
+                                    GtkSelectionData *selection_data,
+                                    glLabel          *label);
+
+static void paste_text_received_cb (GtkClipboard     *clipboard,
+                                    const gchar      *text,
+                                    glLabel          *label);
+
+static void paste_image_received_cb(GtkClipboard     *clipboard,
+                                    GdkPixbuf        *pixbuf,
+                                    glLabel          *label);
+
+static void   stack_clear          (GQueue           *stack);
+static void   stack_push_state     (GQueue           *stack,
+                                    State            *state);
+static State *stack_pop_state      (GQueue           *stack);
+
+static State *state_new            (glLabel          *this,
+                                    const gchar      *description);
+static void   state_free           (State            *state);
+static void   state_restore        (State            *state,
+                                    glLabel          *this);
+
 
-\f
 /*****************************************************************************/
 /* Boilerplate object stuff.                                                 */
 /*****************************************************************************/
-G_DEFINE_TYPE (glLabel, gl_label, G_TYPE_OBJECT);
+G_DEFINE_TYPE (glLabel, gl_label, G_TYPE_OBJECT)
+
 
 static void
 gl_label_class_init (glLabelClass *class)
@@ -103,6 +203,15 @@ gl_label_class_init (glLabelClass *class)
 
        object_class->finalize = gl_label_finalize;
 
+       signals[SELECTION_CHANGED] =
+               g_signal_new ("selection_changed",
+                             G_OBJECT_CLASS_TYPE (object_class),
+                             G_SIGNAL_RUN_LAST,
+                             G_STRUCT_OFFSET (glLabelClass, selection_changed),
+                             NULL, NULL,
+                             gl_marshal_VOID__VOID,
+                             G_TYPE_NONE,
+                             0);
        signals[CHANGED] =
                g_signal_new ("changed",
                              G_OBJECT_CLASS_TYPE (object_class),
@@ -148,58 +257,83 @@ gl_label_class_init (glLabelClass *class)
                              gl_marshal_VOID__VOID,
                              G_TYPE_NONE,
                              0);
-       signals[OBJECT_ADDED] =
-               g_signal_new ("object_added",
-                             G_OBJECT_CLASS_TYPE (object_class),
-                             G_SIGNAL_RUN_LAST,
-                             G_STRUCT_OFFSET (glLabelClass, object_added),
-                             NULL, NULL,
-                             gl_marshal_VOID__OBJECT,
-                             G_TYPE_NONE,
-                             1, G_TYPE_OBJECT);
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 static void
 gl_label_init (glLabel *label)
 {
        gl_debug (DEBUG_LABEL, "START");
 
-       label->template     = NULL;
-       label->rotate_flag  = FALSE;
-        label->objects      = NULL;
-
        label->priv = g_new0 (glLabelPrivate, 1);
 
-       label->priv->filename     = NULL;
-       label->priv->merge        = NULL;
-       label->priv->pixbuf_cache = gl_pixbuf_cache_new ();
+       label->priv->template      = NULL;
+       label->priv->rotate_flag   = FALSE;
+        label->priv->object_list   = NULL;
+
+       label->priv->filename      = NULL;
+       label->priv->modified_flag = FALSE;
+       label->priv->compression   = 9;
+
+       label->priv->merge         = NULL;
+       label->priv->pixbuf_cache  = gl_pixbuf_cache_new ();
+       label->priv->svg_cache     = gl_svg_cache_new ();
+
+        label->priv->undo_stack    = g_queue_new ();
+        label->priv->redo_stack    = g_queue_new ();
+
+        /*
+         * Defaults from preferences
+         */
+       label->priv->default_font_family       = gl_prefs_model_get_default_font_family (gl_prefs);
+       label->priv->default_font_size         = gl_prefs_model_get_default_font_size (gl_prefs);
+       label->priv->default_font_weight       = gl_prefs_model_get_default_font_weight (gl_prefs);
+       label->priv->default_font_italic_flag  = gl_prefs_model_get_default_font_italic_flag (gl_prefs);
+       label->priv->default_text_color        = gl_prefs_model_get_default_text_color (gl_prefs);
+       label->priv->default_text_alignment    = gl_prefs_model_get_default_text_alignment (gl_prefs);
+       label->priv->default_text_line_spacing = gl_prefs_model_get_default_text_line_spacing (gl_prefs);
+       label->priv->default_line_width        = gl_prefs_model_get_default_line_width (gl_prefs);
+       label->priv->default_line_color        = gl_prefs_model_get_default_line_color (gl_prefs);
+       label->priv->default_fill_color        = gl_prefs_model_get_default_fill_color (gl_prefs);
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 static void
 gl_label_finalize (GObject *object)
 {
        glLabel *label = GL_LABEL (object);
-       GList   *p, *p_next;
+       GList   *p;
 
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (object && GL_IS_LABEL (object));
 
-       for (p = label->objects; p != NULL; p = p_next) {
-               p_next = p->next;       /* NOTE: p will be left dangling */
+       for (p = label->priv->object_list; p != NULL; p = p->next)
+        {
                g_object_unref (G_OBJECT(p->data));
        }
+        g_list_free (label->priv->object_list);
 
-       lgl_template_free (label->template);
+       lgl_template_free (label->priv->template);
        g_free (label->priv->filename);
-       if (label->priv->merge != NULL) {
+       if (label->priv->merge != NULL)
+        {
                g_object_unref (G_OBJECT(label->priv->merge));
        }
+        g_free (label->priv->default_font_family);
+
+        stack_clear (label->priv->undo_stack);
+        stack_clear (label->priv->redo_stack);
+
+        g_queue_free (label->priv->undo_stack);
+        g_queue_free (label->priv->redo_stack);
+
        gl_pixbuf_cache_free (label->priv->pixbuf_cache);
+       gl_svg_cache_free (label->priv->svg_cache);
 
        g_free (label->priv);
 
@@ -208,6 +342,10 @@ gl_label_finalize (GObject *object)
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
+/*****************************************************************************/
+/* New label.                                                                */
+/*****************************************************************************/
 GObject *
 gl_label_new (void)
 {
@@ -217,166 +355,235 @@ gl_label_new (void)
 
        label = g_object_new (gl_label_get_type(), NULL);
 
-       label->priv->compression = 9;
-
-       label->priv->modified_flag = FALSE;
-
        gl_debug (DEBUG_LABEL, "END");
 
        return G_OBJECT (label);
 }
 
 
-/*****************************************************************************/
-/* Add object to label.                                                      */
-/*****************************************************************************/
+/****************************************************************************/
+/* Set filename.                                                            */
+/****************************************************************************/
 void
-gl_label_add_object (glLabel       *label,
-                    glLabelObject *object)
+gl_label_set_filename (glLabel     *label,
+                      const gchar *filename)
 {
-       gl_debug (DEBUG_LABEL, "START");
+       label->priv->filename = g_strdup (filename);
 
-       g_return_if_fail (label && GL_IS_LABEL (label));
-       g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
+       g_signal_emit (G_OBJECT(label), signals[NAME_CHANGED], 0);
+}
 
-       object->parent = label;
-       label->objects = g_list_append (label->objects, g_object_ref (object));
 
-       label->priv->modified_flag = TRUE;
+/****************************************************************************/
+/* return filename.                                                         */
+/****************************************************************************/
+gchar *
+gl_label_get_filename (glLabel *label)
+{
+       gl_debug (DEBUG_LABEL, "");
 
-       g_signal_emit (G_OBJECT(label), signals[OBJECT_ADDED], 0, object);
-       g_signal_emit (G_OBJECT(label), signals[CHANGED], 0);
-       g_signal_emit (G_OBJECT(label), signals[MODIFIED_CHANGED], 0);
+       return g_strdup ( label->priv->filename );
+}
 
-       g_signal_connect (G_OBJECT(object), "changed",
-                         G_CALLBACK(object_changed_cb), label);
 
-       g_signal_connect (G_OBJECT(object), "moved",
-                         G_CALLBACK(object_moved_cb), label);
+/****************************************************************************/
+/* return short filename.                                                   */
+/****************************************************************************/
+gchar *
+gl_label_get_short_name (glLabel *label)
+{
+       gl_debug (DEBUG_LABEL, "");
 
-       gl_debug (DEBUG_LABEL, "END");
-}
+       if ( label->priv->filename == NULL )
+        {
 
-/*****************************************************************************/
-/* Remove object from label.                                                 */
-/*****************************************************************************/
-void
-gl_label_remove_object (glLabel       *label,
-                       glLabelObject *object)
-{
-       gl_debug (DEBUG_LABEL, "START");
+               if ( label->priv->untitled_instance == 0 )
+                {
+                       label->priv->untitled_instance = ++untitled;
+               }
 
-       g_return_if_fail (label && GL_IS_LABEL (label));
-       g_return_if_fail (GL_IS_LABEL_OBJECT (object));
+               return g_strdup_printf ( "%s %d", _("Untitled"),
+                                        label->priv->untitled_instance );
+
+       }
+        else
+        {
+               gchar *temp_name, *short_name;
+
+               temp_name = g_path_get_basename ( label->priv->filename );
+               short_name = gl_file_util_remove_extension (temp_name);
+               g_free (temp_name);
 
-       object->parent = NULL;
-       label->objects = g_list_remove (label->objects, object);
+               return short_name;
+       }
+}
 
-       if ( G_OBJECT(label)->ref_count /* not finalized */ ) {
 
-               g_signal_handlers_disconnect_by_func (object,
-                                                     G_CALLBACK(object_changed_cb),
-                                                     label);
-               g_signal_handlers_disconnect_by_func (object,
-                                                     G_CALLBACK(object_moved_cb),
-                                                     label);
+/****************************************************************************/
+/* Is label untitled?                                                       */
+/****************************************************************************/
+gboolean
+gl_label_is_untitled (glLabel *label)
+{
+       gl_debug (DEBUG_LABEL, "return %d",(label->priv->filename == NULL));
+       return (label->priv->filename == NULL);
+}
 
-               label->priv->modified_flag = TRUE;
 
-               g_signal_emit (G_OBJECT(label), signals[CHANGED], 0);
-               g_signal_emit (G_OBJECT(label), signals[MODIFIED_CHANGED], 0);
+/****************************************************************************/
+/* Set compression level.                                                   */
+/****************************************************************************/
+void
+gl_label_set_compression (glLabel  *label,
+                         gint      compression)
+{
+       gl_debug (DEBUG_LABEL, "set %d", compression);
 
+       /* Older versions of libxml2 always return a -1 for documents "read in," so
+        * default to 9.  Also, default to 9 for anything else out of range. */
+       if ((compression < 0) || (compression >9))
+        {
+               compression = 9;
        }
 
-       gl_debug (DEBUG_LABEL, "END");
+       gl_debug (DEBUG_LABEL, "actual set %d", compression);
+       label->priv->compression = compression;
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  Object changed callback.                                        */
-/*---------------------------------------------------------------------------*/
-static void
-object_changed_cb (glLabelObject *object,
-                  glLabel       *label)
+
+/****************************************************************************/
+/* Get compression level.                                                   */
+/****************************************************************************/
+gint
+gl_label_get_compression (glLabel *label)
+{
+       gl_debug (DEBUG_LABEL, "return %d", label->priv->compression);
+       return label->priv->compression;
+}
+
+
+/****************************************************************************/
+/* Set modified flag.                                                       */
+/****************************************************************************/
+void
+gl_label_set_modified (glLabel *label)
 {
 
-       if ( !label->priv->modified_flag ) {
+       if ( !label->priv->modified_flag )
+        {
 
                label->priv->modified_flag = TRUE;
 
                g_signal_emit (G_OBJECT(label), signals[MODIFIED_CHANGED], 0);
        }
 
-       g_signal_emit (G_OBJECT(label), signals[CHANGED], 0);
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  Object moved callback.                                          */
-/*---------------------------------------------------------------------------*/
-static void
-object_moved_cb (glLabelObject *object,
-                gdouble        x,
-                gdouble        y,
-                glLabel       *label)
+
+/****************************************************************************/
+/* Clear modified flag.                                                     */
+/****************************************************************************/
+void
+gl_label_clear_modified (glLabel *label)
 {
 
-       if ( !label->priv->modified_flag ) {
+       if ( label->priv->modified_flag )
+        {
 
-               label->priv->modified_flag = TRUE;
+                g_get_current_time (&label->priv->time_stamp);
+               label->priv->modified_flag = FALSE;
 
                g_signal_emit (G_OBJECT(label), signals[MODIFIED_CHANGED], 0);
        }
 
-       g_signal_emit (G_OBJECT(label), signals[CHANGED], 0);
 }
 
+
 /****************************************************************************/
-/* Bring label object to front/top.                                         */
+/* Is label modified?                                                       */
 /****************************************************************************/
-void
-gl_label_raise_object_to_top (glLabel       *label,
-                             glLabelObject *object)
+gboolean
+gl_label_is_modified (glLabel *label)
 {
-       gl_debug (DEBUG_LABEL, "START");
+       gl_debug (DEBUG_LABEL, "return %d", label->priv->modified_flag);
+       return label->priv->modified_flag;
+}
 
-       /* Move to end of list, representing front most object */
-       label->objects = g_list_remove (label->objects, object);
-       label->objects = g_list_append (label->objects, object);
 
-       label->priv->modified_flag = TRUE;
+/****************************************************************************/
+/* Object "changed" callback.                                               */
+/****************************************************************************/
+static void
+object_changed_cb (glLabelObject *object,
+                   glLabel       *label)
+{
+        do_modify (label);
+}
 
-       g_signal_emit (G_OBJECT(label), signals[MODIFIED_CHANGED], 0);
-       g_signal_emit (G_OBJECT(label), signals[CHANGED], 0);
 
-       gl_debug (DEBUG_LABEL, "END");
+/****************************************************************************/
+/* Object "moved" callback.                                                 */
+/****************************************************************************/
+static void
+object_moved_cb (glLabelObject *object,
+                 glLabel       *label)
+{
+        do_modify (label);
 }
 
+
 /****************************************************************************/
-/* Send label object to rear/bottom.                                        */
+/* Do modify.                                                               */
 /****************************************************************************/
-void
-gl_label_lower_object_to_bottom (glLabel       *label,
-                                glLabelObject *object)
+static void
+do_modify (glLabel  *label)
 {
-       gl_debug (DEBUG_LABEL, "START");
+        if ( label->priv->selection_op_flag )
+        {
+                label->priv->delayed_change_flag = TRUE;
+        }
+        else
+        {
+                label->priv->modified_flag = TRUE;
 
-       /* Move to front of list, representing rear most object */
-       label->objects = g_list_remove (label->objects, object);
-       label->objects = g_list_prepend (label->objects, object);
+                g_signal_emit (G_OBJECT(label), signals[MODIFIED_CHANGED], 0);
+                g_signal_emit (G_OBJECT(label), signals[CHANGED], 0);
+        }
+}
 
-       label->priv->modified_flag = TRUE;
 
-       g_signal_emit (G_OBJECT(label), signals[MODIFIED_CHANGED], 0);
-       g_signal_emit (G_OBJECT(label), signals[CHANGED], 0);
+/****************************************************************************/
+/* Begin selection operation.                                               */
+/****************************************************************************/
+static void
+begin_selection_op (glLabel  *label)
+{
+        label->priv->selection_op_flag = TRUE;
+}
 
-       gl_debug (DEBUG_LABEL, "END");
+
+/****************************************************************************/
+/* End selection operation.                                                 */
+/****************************************************************************/
+static void
+end_selection_op (glLabel  *label)
+{
+        label->priv->selection_op_flag = FALSE;
+        if ( label->priv->delayed_change_flag )
+        {
+                label->priv->delayed_change_flag = FALSE;
+                do_modify (label);
+        }
 }
 
+
 /****************************************************************************/
 /* set template.                                                            */
 /****************************************************************************/
-extern void
-gl_label_set_template (glLabel     *label,
-                      lglTemplate *template)
+void
+gl_label_set_template (glLabel           *label,
+                      const lglTemplate *template,
+                       gboolean           checkpoint)
 {
         gchar *name;
 
@@ -385,52 +592,79 @@ gl_label_set_template (glLabel     *label,
        g_return_if_fail (label && GL_IS_LABEL (label));
        g_return_if_fail (template);
 
-       if ((label->template == NULL) ||
-            !lgl_template_do_templates_match (template, label->template)) {
+       if ((label->priv->template == NULL) ||
+            !lgl_template_do_templates_match (template, label->priv->template))
+        {
 
-               lgl_template_free (label->template);
-               label->template = lgl_template_dup (template);
+                if ( checkpoint )
+                {
+                        gl_label_checkpoint (label, _("Label properties"));
+                }
 
-               label->priv->modified_flag = TRUE;
+               lgl_template_free (label->priv->template);
+               label->priv->template = lgl_template_dup (template);
 
-               g_signal_emit (G_OBJECT(label), signals[MODIFIED_CHANGED], 0);
+                do_modify (label);
                g_signal_emit (G_OBJECT(label), signals[SIZE_CHANGED], 0);
-               g_signal_emit (G_OBJECT(label), signals[CHANGED], 0);
 
                 name = lgl_template_get_name (template);
-                gl_prefs_add_recent_template (name);
+                gl_template_history_model_add_name (gl_template_history, name);
                 g_free (name);
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
+/****************************************************************************/
+/* get template.                                                            */
+/****************************************************************************/
+const lglTemplate *
+gl_label_get_template (glLabel            *label)
+{
+        return label->priv->template;
+}
+
+
 /****************************************************************************/
 /* set rotate flag.                                                         */
 /****************************************************************************/
-extern void
+void
 gl_label_set_rotate_flag (glLabel *label,
-                         gboolean rotate_flag)
+                         gboolean rotate_flag,
+                          gboolean checkpoint)
 {
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (label && GL_IS_LABEL (label));
 
-       if (rotate_flag != label->rotate_flag) {
-
-               label->rotate_flag = rotate_flag;
+       if (rotate_flag != label->priv->rotate_flag)
+        {
+                if ( checkpoint )
+                {
+                        gl_label_checkpoint (label, _("Label properties"));
+                }
 
-               label->priv->modified_flag = TRUE;
+               label->priv->rotate_flag = rotate_flag;
 
-               g_signal_emit (G_OBJECT(label), signals[MODIFIED_CHANGED], 0);
+                do_modify (label);
                g_signal_emit (G_OBJECT(label), signals[SIZE_CHANGED], 0);
-               g_signal_emit (G_OBJECT(label), signals[CHANGED], 0);
-
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
+/****************************************************************************/
+/* Get rotate flag.                                                         */
+/****************************************************************************/
+gboolean
+gl_label_get_rotate_flag (glLabel       *label)
+{
+        return label->priv->rotate_flag;
+}
+
+
 /****************************************************************************/
 /* Get label size.                                                          */
 /****************************************************************************/
@@ -446,48 +680,58 @@ gl_label_get_size (glLabel *label,
 
        g_return_if_fail (label && GL_IS_LABEL (label));
 
-       template = label->template;
-       if ( !template ) {
+       template = label->priv->template;
+       if ( !template )
+        {
                gl_debug (DEBUG_LABEL, "END -- template NULL");
                *w = *h = 0;
                return;
        }
         frame = (lglTemplateFrame *)template->frames->data;
 
-       if (!label->rotate_flag) {
+       if (!label->priv->rotate_flag)
+        {
                lgl_template_frame_get_size (frame, w, h);
-       } else {
+       }
+        else
+        {
                lgl_template_frame_get_size (frame, h, w);
        }
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /****************************************************************************/
 /* set merge information structure.                                         */
 /****************************************************************************/
-extern void
+void
 gl_label_set_merge (glLabel *label,
-                   glMerge *merge)
+                   glMerge *merge,
+                    gboolean checkpoint)
 {
        gl_debug (DEBUG_LABEL, "START");
 
        g_return_if_fail (label && GL_IS_LABEL (label));
 
-       if ( label->priv->merge != NULL ) {
+        if ( checkpoint )
+        {
+                gl_label_checkpoint (label, _("Merge properties"));
+        }
+
+       if ( label->priv->merge != NULL )
+        {
                g_object_unref (G_OBJECT(label->priv->merge));
        }
        label->priv->merge = gl_merge_dup (merge);
 
-       label->priv->modified_flag = TRUE;
-
+        do_modify (label);
        g_signal_emit (G_OBJECT(label), signals[MERGE_CHANGED], 0);
-       g_signal_emit (G_OBJECT(label), signals[MODIFIED_CHANGED], 0);
-       g_signal_emit (G_OBJECT(label), signals[CHANGED], 0);
 
        gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /****************************************************************************/
 /* Get merge information structure.                                         */
 /****************************************************************************/
@@ -503,81 +747,2481 @@ gl_label_get_merge (glLabel *label)
        return gl_merge_dup (label->priv->merge);
 }
 
+
 /****************************************************************************/
-/* return filename.                                                         */
+/* Get pixbuf cache.                                                        */
 /****************************************************************************/
-gchar *
-gl_label_get_filename (glLabel *label)
+GHashTable *
+gl_label_get_pixbuf_cache (glLabel       *label)
 {
+       return label->priv->pixbuf_cache;
+}
+
+
+/****************************************************************************/
+/* Get svg cache.                                                           */
+/****************************************************************************/
+GHashTable *
+gl_label_get_svg_cache (glLabel       *label)
+{
+       return label->priv->svg_cache;
+}
+
+
+/*****************************************************************************/
+/* Add object to label.                                                      */
+/*****************************************************************************/
+void
+gl_label_add_object (glLabel       *label,
+                    glLabelObject *object)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+       g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
+
+       gl_label_object_set_parent (object, label);
+       label->priv->object_list = g_list_append (label->priv->object_list, object);
+
+        g_signal_connect (G_OBJECT (object), "changed",
+                          G_CALLBACK (object_changed_cb), label);
+        g_signal_connect (G_OBJECT (object), "moved",
+                          G_CALLBACK (object_moved_cb), label);
+
+        do_modify (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Delete object from label.                                                 */
+/*****************************************************************************/
+void
+gl_label_delete_object (glLabel       *label,
+                        glLabelObject *object)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+       g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
+
+        label->priv->object_list = g_list_remove (label->priv->object_list, object);
+
+        g_signal_handlers_disconnect_by_func (G_OBJECT (object),
+                                              G_CALLBACK (object_changed_cb), label);
+        g_signal_handlers_disconnect_by_func (G_OBJECT (object),
+                                              G_CALLBACK (object_moved_cb), label);
+        g_object_unref (object);
+
+        do_modify (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Get object list.                                                          */
+/*****************************************************************************/
+const GList *
+gl_label_get_object_list (glLabel       *label)
+{
+        return label->priv->object_list;
+}
+
+
+/*****************************************************************************/
+/* Select object.                                                            */
+/*****************************************************************************/
+void
+gl_label_select_object (glLabel       *label,
+                        glLabelObject *object)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+       g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
+
+        gl_label_object_select (object);
+
+        label->priv->cp_cleared_flag = TRUE;
+       g_signal_emit (G_OBJECT(label), signals[SELECTION_CHANGED], 0);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Unselect object.                                                          */
+/*****************************************************************************/
+void
+gl_label_unselect_object (glLabel       *label,
+                          glLabelObject *object)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+       g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
+
+        gl_label_object_unselect (object);
+
+        label->priv->cp_cleared_flag = TRUE;
+       g_signal_emit (G_OBJECT(label), signals[SELECTION_CHANGED], 0);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Select all objects.                                                       */
+/*****************************************************************************/
+void
+gl_label_select_all (glLabel       *label)
+{
+       GList         *p;
+        glLabelObject *object;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+        for ( p = label->priv->object_list; p != NULL; p = p->next )
+        {
+                object = GL_LABEL_OBJECT (p->data);
+
+                gl_label_object_select (object);
+        }
+
+        label->priv->cp_cleared_flag = TRUE;
+       g_signal_emit (G_OBJECT(label), signals[SELECTION_CHANGED], 0);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Unselect all objects.                                                     */
+/*****************************************************************************/
+void
+gl_label_unselect_all (glLabel       *label)
+{
+       GList         *p;
+        glLabelObject *object;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+        for ( p = label->priv->object_list; p != NULL; p = p->next )
+        {
+                object = GL_LABEL_OBJECT (p->data);
+
+                gl_label_object_unselect (object);
+        }
+
+        label->priv->cp_cleared_flag = TRUE;
+       g_signal_emit (G_OBJECT(label), signals[SELECTION_CHANGED], 0);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Select all objects contained in region.                                   */
+/*****************************************************************************/
+void
+gl_label_select_region (glLabel       *label,
+                        glLabelRegion *region)
+{
+       GList         *p;
+       glLabelObject *object;
+        gdouble        r_x1, r_y1;
+        gdouble        r_x2, r_y2;
+        glLabelRegion  obj_extent;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+        r_x1 = MIN (region->x1, region->x2);
+        r_y1 = MIN (region->y1, region->y2);
+        r_x2 = MAX (region->x1, region->x2);
+        r_y2 = MAX (region->y1, region->y2);
+
+       for (p = label->priv->object_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT(p->data);
+
+                gl_label_object_get_extent (object, &obj_extent);
+                if ((obj_extent.x1 >= r_x1) &&
+                    (obj_extent.x2 <= r_x2) &&
+                    (obj_extent.y1 >= r_y1) &&
+                    (obj_extent.y2 <= r_y2))
+                {
+                        gl_label_object_select (object);
+                }
+       }
+
+        label->priv->cp_cleared_flag = TRUE;
+       g_signal_emit (G_OBJECT(label), signals[SELECTION_CHANGED], 0);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Is selection empty?                                                       */
+/*****************************************************************************/
+gboolean
+gl_label_is_selection_empty (glLabel       *label)
+{
+        GList         *p;
+        glLabelObject *object;
+
+        for ( p = label->priv->object_list; p != NULL; p = p->next )
+        {
+                object = GL_LABEL_OBJECT (p->data);
+
+                if ( gl_label_object_is_selected (object) )
+                {
+                        return FALSE;
+                }
+        }
+
+        return TRUE;
+}
+
+
+/*****************************************************************************/
+/* Is selection atomic?                                                      */
+/*****************************************************************************/
+gboolean
+gl_label_is_selection_atomic (glLabel       *label)
+{
+        GList         *p;
+        glLabelObject *object;
+        gint           n_selected = 0;
+
+        for ( p = label->priv->object_list; p != NULL; p = p->next )
+        {
+                object = GL_LABEL_OBJECT (p->data);
+
+                if ( gl_label_object_is_selected (object) )
+                {
+                        n_selected++;
+
+                        if (n_selected > 1)
+                        {
+                                return FALSE;
+                        }
+                }
+        }
+
+        return (n_selected == 1);
+}
+
+
+/*****************************************************************************/
+/* Get first selected object.                                                */
+/*****************************************************************************/
+glLabelObject *
+gl_label_get_1st_selected_object (glLabel  *label)
+{
+        GList         *p;
+        glLabelObject *object;
+
+        for ( p = label->priv->object_list; p != NULL; p = p->next )
+        {
+                object = GL_LABEL_OBJECT (p->data);
+
+                if ( gl_label_object_is_selected (object) )
+                {
+                        return object;
+                }
+        }
+
+        return NULL;
+}
+
+
+/*****************************************************************************/
+/* Get list of selected objects.                                             */
+/*****************************************************************************/
+GList *
+gl_label_get_selection_list (glLabel *label)
+{
+        GList         *selection_list = NULL;
+        GList         *p;
+        glLabelObject *object;
+
+        for ( p = label->priv->object_list; p != NULL; p = p->next )
+        {
+                object = GL_LABEL_OBJECT (p->data);
+
+                if ( gl_label_object_is_selected (object) )
+                {
+                        selection_list = g_list_append (selection_list, object);
+                }
+        }
+
+        return (selection_list);
+}
+
+
+/*****************************************************************************/
+/* Can text properties be set for selection?                                 */
+/*****************************************************************************/
+gboolean
+gl_label_can_selection_text (glLabel *label)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+
+       gl_debug (DEBUG_LABEL, "");
+
+       g_return_val_if_fail (label && GL_IS_LABEL (label), FALSE);
+
+        selection_list = gl_label_get_selection_list (label);
+
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               if (gl_label_object_can_text (object))
+                {
+                        g_list_free (selection_list);
+                       return TRUE;
+               }
+       }
+
+        g_list_free (selection_list);
+       return FALSE;
+}
+
+
+/*****************************************************************************/
+/* Can fill properties be set for selection?                                 */
+/*****************************************************************************/
+gboolean
+gl_label_can_selection_fill (glLabel *label)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+
+       gl_debug (DEBUG_LABEL, "");
+
+       g_return_val_if_fail (label && GL_IS_LABEL (label), FALSE);
+
+        selection_list = gl_label_get_selection_list (label);
+
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               if (gl_label_object_can_fill (object))
+                {
+                        g_list_free (selection_list);
+                       return TRUE;
+               }
+
+       }
+
+        g_list_free (selection_list);
+       return FALSE;
+}
+
+
+/*****************************************************************************/
+/* Can line color properties be set for selection?                           */
+/*****************************************************************************/
+gboolean
+gl_label_can_selection_line_color (glLabel *label)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+
+       gl_debug (DEBUG_LABEL, "");
+
+       g_return_val_if_fail (label && GL_IS_LABEL (label), FALSE);
+
+        selection_list = gl_label_get_selection_list (label);
+
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               if (gl_label_object_can_line_color (object))
+                {
+                        g_list_free (selection_list);
+                       return TRUE;
+               }
+       }
+
+        g_list_free (selection_list);
+       return FALSE;
+}
+
+
+/*****************************************************************************/
+/* Can line width properties be set for selection?                           */
+/*****************************************************************************/
+gboolean
+gl_label_can_selection_line_width (glLabel *label)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+
        gl_debug (DEBUG_LABEL, "");
 
-       return g_strdup ( label->priv->filename );
+       g_return_val_if_fail (label && GL_IS_LABEL (label), FALSE);
+
+        selection_list = gl_label_get_selection_list (label);
+
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               if (gl_label_object_can_line_width (object))
+                {
+                        g_list_free (selection_list);
+                       return TRUE;
+               }
+
+       }
+
+        g_list_free (selection_list);
+       return FALSE;
+}
+
+
+/*****************************************************************************/
+/* Delete selection from label.                                              */
+/*****************************************************************************/
+void
+gl_label_delete_selection (glLabel       *label)
+{
+        GList         *selection_list;
+        GList         *p;
+        glLabelObject *object;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+        gl_label_checkpoint (label, _("Delete"));
+
+        begin_selection_op (label);
+
+        selection_list = gl_label_get_selection_list (label);
+
+        for ( p = selection_list; p != NULL; p = p->next )
+        {
+                object = GL_LABEL_OBJECT (p->data);
+
+                gl_label_delete_object (label, object);
+        }
+
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/****************************************************************************/
+/* Bring selection object to front/top.                                     */
+/****************************************************************************/
+void
+gl_label_raise_selection_to_top (glLabel       *label)
+{
+        GList         *selection_list;
+        GList         *p;
+        glLabelObject *object;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+        gl_label_checkpoint (label, _("Bring to front"));
+
+        begin_selection_op (label);
+
+        selection_list = gl_label_get_selection_list (label);
+
+        for ( p = selection_list; p != NULL; p = p->next )
+        {
+                object = GL_LABEL_OBJECT (p->data);
+
+                label->priv->object_list = g_list_remove (label->priv->object_list, object);
+        }
+
+       /* Move to end of list, representing front most object */
+       label->priv->object_list = g_list_concat (label->priv->object_list, selection_list);
+
+        do_modify (label);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/****************************************************************************/
+/* Send selection to rear/bottom.                                           */
+/****************************************************************************/
+void
+gl_label_lower_selection_to_bottom (glLabel       *label)
+{
+        GList         *selection_list;
+        GList         *p;
+        glLabelObject *object;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+        gl_label_checkpoint (label, _("Send to back"));
+
+        begin_selection_op (label);
+
+        selection_list = gl_label_get_selection_list (label);
+
+        for ( p = selection_list; p != NULL; p = p->next )
+        {
+                object = GL_LABEL_OBJECT (p->data);
+
+                label->priv->object_list = g_list_remove (label->priv->object_list, object);
+        }
+
+       /* Move to front of list, representing rear most object */
+       label->priv->object_list = g_list_concat (selection_list, label->priv->object_list);
+
+        do_modify (label);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Rotate selected objects by given angle.                                   */
+/*****************************************************************************/
+void
+gl_label_rotate_selection (glLabel *label,
+                           gdouble  theta_degs)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+        begin_selection_op (label);
+
+        gl_label_checkpoint (label, _("Rotate"));
+
+        selection_list = gl_label_get_selection_list (label);
+
+        for ( p = selection_list; p != NULL; p = p->next )
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               gl_label_object_rotate (object, theta_degs);
+       }
+
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Rotate selected objects 90 degrees left.                                  */
+/*****************************************************************************/
+void
+gl_label_rotate_selection_left (glLabel *label)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+        begin_selection_op (label);
+
+        gl_label_checkpoint (label, _("Rotate left"));
+
+        selection_list = gl_label_get_selection_list (label);
+
+        for ( p = selection_list; p != NULL; p = p->next )
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               gl_label_object_rotate (object, -90.0);
+       }
+
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Rotate selected objects 90 degrees right.                                 */
+/*****************************************************************************/
+void
+gl_label_rotate_selection_right (glLabel *label)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+        gl_label_checkpoint (label, _("Rotate right"));
+
+        begin_selection_op (label);
+
+        selection_list = gl_label_get_selection_list (label);
+
+        for ( p = selection_list; p != NULL; p = p->next )
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               gl_label_object_rotate (object, 90.0);
+       }
+
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Flip selected objects horizontally.                                       */
+/*****************************************************************************/
+void
+gl_label_flip_selection_horiz (glLabel *label)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+        gl_label_checkpoint (label, _("Flip horizontally"));
+
+        begin_selection_op (label);
+
+        selection_list = gl_label_get_selection_list (label);
+
+        for ( p = selection_list; p != NULL; p = p->next )
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               gl_label_object_flip_horiz (object);
+       }
+
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Flip selected objects vertically.                                         */
+/*****************************************************************************/
+void
+gl_label_flip_selection_vert (glLabel *label)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+        gl_label_checkpoint (label, _("Flip vertically"));
+
+        begin_selection_op (label);
+
+        selection_list = gl_label_get_selection_list (label);
+
+        for ( p = selection_list; p != NULL; p = p->next )
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               gl_label_object_flip_vert (object);
+       }
+
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Align selected objects to left most edge.                                 */
+/*****************************************************************************/
+void
+gl_label_align_selection_left (glLabel *label)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+       gdouble        dx, x1_min;
+        glLabelRegion  obj_extent;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+       g_return_if_fail (!gl_label_is_selection_empty (label) &&
+                         !gl_label_is_selection_atomic (label));
+
+        gl_label_checkpoint (label, _("Align left"));
+
+        begin_selection_op (label);
+
+        selection_list = gl_label_get_selection_list (label);
+
+       /* find left most edge */
+       p = selection_list;
+       object = GL_LABEL_OBJECT (p->data);
+
+       gl_label_object_get_extent (object, &obj_extent);
+        x1_min = obj_extent.x1;
+       for (p = p->next; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               gl_label_object_get_extent (object, &obj_extent);
+               if ( obj_extent.x1 < x1_min ) x1_min = obj_extent.x1;
+       }
+
+       /* now adjust the object positions to line up the left edges */
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               gl_label_object_get_extent (object, &obj_extent);
+               dx = x1_min - obj_extent.x1;
+               gl_label_object_set_position_relative (object, dx, 0.0, FALSE);
+       }
+
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Align selected objects to right most edge.                                */
+/*****************************************************************************/
+void
+gl_label_align_selection_right (glLabel *label)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+       gdouble        dx, x2_max;
+        glLabelRegion  obj_extent;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+       g_return_if_fail (!gl_label_is_selection_empty (label) &&
+                         !gl_label_is_selection_atomic (label));
+
+        gl_label_checkpoint (label, _("Align right"));
+
+        begin_selection_op (label);
+
+        selection_list = gl_label_get_selection_list (label);
+
+       /* find left most edge */
+       p = selection_list;
+       object = GL_LABEL_OBJECT (p->data);
+
+       gl_label_object_get_extent (object, &obj_extent);
+        x2_max = obj_extent.x2;
+       for (p = p->next; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               gl_label_object_get_extent (object, &obj_extent);
+               if ( obj_extent.x2 > x2_max ) x2_max = obj_extent.x2;
+       }
+
+       /* now adjust the object positions to line up the left edges */
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               gl_label_object_get_extent (object, &obj_extent);
+               dx = x2_max - obj_extent.x2;
+               gl_label_object_set_position_relative (object, dx, 0.0, FALSE);
+       }
+
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Align selected objects to horizontal center of objects.                   */
+/*****************************************************************************/
+void
+gl_label_align_selection_hcenter (glLabel *label)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+       gdouble        dx;
+       gdouble        dxmin;
+       gdouble        xsum, xavg;
+        glLabelRegion  obj_extent;
+       gdouble        xcenter;
+       gint           n;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+       g_return_if_fail (!gl_label_is_selection_empty (label) &&
+                         !gl_label_is_selection_atomic (label));
+
+        gl_label_checkpoint (label, _("Align horizontal center"));
+
+        begin_selection_op (label);
+
+        selection_list = gl_label_get_selection_list (label);
+
+       /* find average center of objects */
+       xsum = 0.0;
+       n = 0;
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               gl_label_object_get_extent (object, &obj_extent);
+               xsum += (obj_extent.x1 + obj_extent.x2) / 2.0;
+               n++;
+       }
+       xavg = xsum / n;
+
+       /* find center of object closest to average center */
+       p = selection_list;
+       object = GL_LABEL_OBJECT (p->data);
+
+       gl_label_object_get_extent (object, &obj_extent);
+       dxmin = fabs (xavg - (obj_extent.x1 + obj_extent.x2)/2.0);
+       xcenter = (obj_extent.x1 + obj_extent.x2)/2.0;
+       for (p = p->next; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               gl_label_object_get_extent (object, &obj_extent);
+               dx = fabs (xavg - (obj_extent.x1 + obj_extent.x2)/2.0);
+               if ( dx < dxmin )
+                {
+                       dxmin = dx;
+                       xcenter = (obj_extent.x1 + obj_extent.x2)/2.0;
+               }
+       }
+
+       /* now adjust the object positions to line up this center */
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               gl_label_object_get_extent (object, &obj_extent);
+               dx = xcenter - (obj_extent.x1 + obj_extent.x2)/2.0;
+               gl_label_object_set_position_relative (object, dx, 0.0, FALSE);
+       }
+
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Align selected objects to top most edge.                                  */
+/*****************************************************************************/
+void
+gl_label_align_selection_top (glLabel *label)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+       gdouble        dy, y1_min;
+        glLabelRegion  obj_extent;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+       g_return_if_fail (!gl_label_is_selection_empty (label) &&
+                         !gl_label_is_selection_atomic (label));
+
+        gl_label_checkpoint (label, _("Align tops"));
+
+        begin_selection_op (label);
+
+        selection_list = gl_label_get_selection_list (label);
+
+       /* find top most edge */
+       p = selection_list;
+       object = GL_LABEL_OBJECT (p->data);
+
+       gl_label_object_get_extent (object, &obj_extent);
+        y1_min = obj_extent.y1;
+       for (p = p->next; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               gl_label_object_get_extent (object, &obj_extent);
+               if ( obj_extent.y1 < y1_min ) y1_min = obj_extent.y1;
+       }
+
+       /* now adjust the object positions to line up the top edges */
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               gl_label_object_get_extent (object, &obj_extent);
+               dy = y1_min - obj_extent.y1;
+               gl_label_object_set_position_relative (object, 0.0, dy, FALSE);
+       }
+
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Align selected objects to bottom most edge.                               */
+/*****************************************************************************/
+void
+gl_label_align_selection_bottom (glLabel *label)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+       gdouble        dy, y2_max;
+        glLabelRegion  obj_extent;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+       g_return_if_fail (!gl_label_is_selection_empty (label) &&
+                         !gl_label_is_selection_atomic (label));
+
+        gl_label_checkpoint (label, _("Align bottoms"));
+
+        begin_selection_op (label);
+
+        selection_list = gl_label_get_selection_list (label);
+
+       /* find bottom most edge */
+       p = selection_list;
+       object = GL_LABEL_OBJECT (p->data);
+
+       gl_label_object_get_extent (object, &obj_extent);
+        y2_max = obj_extent.y2;
+       for (p = p->next; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               gl_label_object_get_extent (object, &obj_extent);
+               if ( obj_extent.y2 > y2_max ) y2_max = obj_extent.y2;
+       }
+
+       /* now adjust the object positions to line up the bottom edges */
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               gl_label_object_get_extent (object, &obj_extent);
+               dy = y2_max - obj_extent.y2;
+               gl_label_object_set_position_relative (object, 0.0, dy, FALSE);
+       }
+
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Align selected objects to viertical center of objects.                    */
+/*****************************************************************************/
+void
+gl_label_align_selection_vcenter (glLabel *label)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+       gdouble        dy;
+       gdouble        dymin;
+       gdouble        ysum, yavg;
+        glLabelRegion  obj_extent;
+       gdouble        ycenter;
+       gint           n;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+       g_return_if_fail (!gl_label_is_selection_empty (label) &&
+                         !gl_label_is_selection_atomic (label));
+
+        gl_label_checkpoint (label, _("Align vertical center"));
+
+        begin_selection_op (label);
+
+        selection_list = gl_label_get_selection_list (label);
+
+       /* find average center of objects */
+       ysum = 0.0;
+       n = 0;
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               gl_label_object_get_extent (object, &obj_extent);
+               ysum += (obj_extent.y1 + obj_extent.y2) / 2.0;
+               n++;
+       }
+       yavg = ysum / n;
+
+       /* find center of object closest to average center */
+       p = selection_list;
+       object = GL_LABEL_OBJECT (p->data);
+
+       gl_label_object_get_extent (object, &obj_extent);
+       dymin = fabs (yavg - (obj_extent.y1 + obj_extent.y2)/2.0);
+       ycenter = (obj_extent.y1 + obj_extent.y2)/2.0;
+       for (p = p->next; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               gl_label_object_get_extent (object, &obj_extent);
+               dy = fabs (yavg - (obj_extent.y1 + obj_extent.y2)/2.0);
+               if ( dy < dymin )
+                {
+                       dymin = dy;
+                       ycenter = (obj_extent.y1 + obj_extent.y2)/2.0;
+               }
+       }
+
+       /* now adjust the object positions to line up this center */
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               gl_label_object_get_extent (object, &obj_extent);
+               dy = ycenter - (obj_extent.y1 + obj_extent.y2)/2.0;
+               gl_label_object_set_position_relative (object, 0.0, dy, FALSE);
+       }
+
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Center selected objects to in center of label.                            */
+/*****************************************************************************/
+void
+gl_label_center_selection_horiz (glLabel *label)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+       gdouble        dx;
+       gdouble        x_label_center;
+       gdouble        x_obj_center;
+       glLabelRegion  obj_extent;
+       gdouble        w, h;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+       g_return_if_fail (!gl_label_is_selection_empty (label));
+
+        gl_label_checkpoint (label, _("Center horizontally"));
+
+        begin_selection_op (label);
+
+       gl_label_get_size (label, &w, &h);
+       x_label_center = w / 2.0;
+
+       /* adjust the object positions */
+        selection_list = gl_label_get_selection_list (label);
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               gl_label_object_get_extent (object, &obj_extent);
+               x_obj_center = (obj_extent.x1 + obj_extent.x2) / 2.0;
+               dx = x_label_center - x_obj_center;
+               gl_label_object_set_position_relative (object, dx, 0.0, FALSE);
+       }
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Center selected objects to in center of label.                            */
+/*****************************************************************************/
+void
+gl_label_center_selection_vert (glLabel *label)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+       gdouble        dy;
+       gdouble        y_label_center;
+       gdouble        y_obj_center;
+       glLabelRegion  obj_extent;
+       gdouble        w, h;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+       g_return_if_fail (!gl_label_is_selection_empty (label));
+
+        gl_label_checkpoint (label, _("Center vertically"));
+
+        begin_selection_op (label);
+
+       gl_label_get_size (label, &w, &h);
+       y_label_center = h / 2.0;
+
+       /* adjust the object positions */
+        selection_list = gl_label_get_selection_list (label);
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               gl_label_object_get_extent (object, &obj_extent);
+               y_obj_center = (obj_extent.y1 + obj_extent.y2) / 2.0;
+               dy = y_label_center - y_obj_center;
+               gl_label_object_set_position_relative (object, 0.0, dy, FALSE);
+       }
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Move selected objects                                                     */
+/*****************************************************************************/
+void
+gl_label_move_selection (glLabel  *label,
+                         gdouble   dx,
+                         gdouble   dy)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+        begin_selection_op (label);
+
+        selection_list = gl_label_get_selection_list (label);
+
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+
+               gl_label_object_set_position_relative (object, dx, dy, TRUE);
+       }
+
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Set font family for all text contained in selected objects.               */
+/*****************************************************************************/
+void
+gl_label_set_selection_font_family (glLabel      *label,
+                                    const gchar  *font_family)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+        begin_selection_op (label);
+
+        selection_list = gl_label_get_selection_list (label);
+
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+               gl_label_object_set_font_family (object, font_family, TRUE);
+       }
+
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Set font size for all text contained in selected objects.                 */
+/*****************************************************************************/
+void
+gl_label_set_selection_font_size (glLabel  *label,
+                                  gdouble   font_size)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+        begin_selection_op (label);
+
+        selection_list = gl_label_get_selection_list (label);
+
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+               gl_label_object_set_font_size (object, font_size, TRUE);
+       }
+
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Set font weight for all text contained in selected objects.               */
+/*****************************************************************************/
+void
+gl_label_set_selection_font_weight (glLabel      *label,
+                                    PangoWeight   font_weight)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+        begin_selection_op (label);
+
+        selection_list = gl_label_get_selection_list (label);
+
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+               gl_label_object_set_font_weight (object, font_weight, TRUE);
+       }
+
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Set font italic flag for all text contained in selected objects.          */
+/*****************************************************************************/
+void
+gl_label_set_selection_font_italic_flag (glLabel   *label,
+                                         gboolean   font_italic_flag)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+        begin_selection_op (label);
+
+        selection_list = gl_label_get_selection_list (label);
+
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+               gl_label_object_set_font_italic_flag (object, font_italic_flag, TRUE);
+       }
+
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Set text alignment for all text contained in selected objects.            */
+/*****************************************************************************/
+void
+gl_label_set_selection_text_alignment (glLabel        *label,
+                                       PangoAlignment  text_alignment)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+        begin_selection_op (label);
+
+        selection_list = gl_label_get_selection_list (label);
+
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+               gl_label_object_set_text_alignment (object, text_alignment, TRUE);
+       }
+
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Set text line spacing for all text contained in selected objects.         */
+/*****************************************************************************/
+void
+gl_label_set_selection_text_line_spacing (glLabel  *label,
+                                          gdouble   text_line_spacing)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+        begin_selection_op (label);
+
+        selection_list = gl_label_get_selection_list (label);
+
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+               gl_label_object_set_text_line_spacing (object, text_line_spacing, TRUE);
+       }
+
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Set text color for all text contained in selected objects.                */
+/*****************************************************************************/
+void
+gl_label_set_selection_text_color (glLabel      *label,
+                                   glColorNode  *text_color_node)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+        begin_selection_op (label);
+
+        selection_list = gl_label_get_selection_list (label);
+
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+               gl_label_object_set_text_color (object, text_color_node, TRUE);
+       }
+
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Set fill color for all selected objects.                                  */
+/*****************************************************************************/
+void
+gl_label_set_selection_fill_color (glLabel      *label,
+                                   glColorNode  *fill_color_node)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+        begin_selection_op (label);
+
+        selection_list = gl_label_get_selection_list (label);
+
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+               gl_label_object_set_fill_color (object, fill_color_node, TRUE);
+       }
+
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Set line color for all selected objects.                                  */
+/*****************************************************************************/
+void
+gl_label_set_selection_line_color (glLabel      *label,
+                                   glColorNode  *line_color_node)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+        begin_selection_op (label);
+
+        selection_list = gl_label_get_selection_list (label);
+
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+               gl_label_object_set_line_color (object, line_color_node, TRUE);
+       }
+
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Set line width for all selected objects.                                  */
+/*****************************************************************************/
+void
+gl_label_set_selection_line_width (glLabel  *label,
+                                 gdouble  line_width)
+{
+        GList         *selection_list;
+       GList         *p;
+       glLabelObject *object;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+        begin_selection_op (label);
+
+        selection_list = gl_label_get_selection_list (label);
+
+       for (p = selection_list; p != NULL; p = p->next)
+        {
+               object = GL_LABEL_OBJECT (p->data);
+               gl_label_object_set_line_width (object, line_width, TRUE);
+       }
+
+        g_list_free (selection_list);
+
+        end_selection_op (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* "Cut" selected items and place on clipboard.                              */
+/*****************************************************************************/
+void
+gl_label_cut_selection (glLabel       *label)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+       gl_label_copy_selection (label);
+       gl_label_delete_selection (label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* "Copy" selected items to clipboard.                                       */
+/*****************************************************************************/
+void
+gl_label_copy_selection (glLabel       *label)
+{
+        GtkClipboard      *clipboard;
+       GList             *selection_list;
+        glLabel           *label_copy;
+       GList             *p;
+       glLabelObject     *object;
+        glXMLLabelStatus   status;
+
+        ClipboardData     *data;
+
+        static GtkTargetEntry glabels_targets[] = { { "application/glabels", 0, 0 },
+                                                    { "text/xml",            0, 0 },
+        };
+
+        GtkTargetList  *target_list;
+        GtkTargetEntry *target_table;
+        gint            n_targets;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+        clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
+
+        selection_list = gl_label_get_selection_list (label);
+
+       if (selection_list)
+        {
+
+                data = g_new0 (ClipboardData, 1);
+
+                target_list = gtk_target_list_new (glabels_targets, G_N_ELEMENTS(glabels_targets));
+
+                /*
+                 * Serialize selection by encoding as an XML label document.
+                 */
+               label_copy = GL_LABEL(gl_label_new ());
+
+               gl_label_set_template (label_copy, label->priv->template, FALSE);
+               gl_label_set_rotate_flag (label_copy, label->priv->rotate_flag, FALSE);
+
+               for (p = selection_list; p != NULL; p = p->next)
+                {
+                       object = GL_LABEL_OBJECT (p->data);
+
+                       gl_label_add_object (label_copy, gl_label_object_dup (object, label_copy));
+               }
+
+                data->xml_buffer = gl_xml_label_save_buffer (label_copy, &status);
+
+                g_object_unref (G_OBJECT (label_copy));
+
+
+                /*
+                 * Is it an atomic text selection?  If so, also make available as text.
+                 */
+                if ( gl_label_is_selection_atomic (label) &&
+                     GL_IS_LABEL_TEXT (selection_list->data) )
+                {
+                        glLabelText *text_object = GL_LABEL_TEXT (selection_list->data);
+
+                        gtk_target_list_add_text_targets (target_list, 1);
+
+                        data->text = gl_label_text_get_text (text_object);
+                }
+
+
+                /*
+                 * Is it an atomic image selection?  If so, also make available as pixbuf.
+                 */
+                if ( gl_label_is_selection_atomic (label) &&
+                     GL_IS_LABEL_IMAGE (selection_list->data) )
+                {
+                        glLabelImage  *image_object = GL_LABEL_IMAGE (selection_list->data);
+                        GdkPixbuf     *pixbuf = gl_label_image_get_pixbuf (image_object, NULL);
+
+                        if (pixbuf)
+                        {
+                                gtk_target_list_add_image_targets (target_list, 2, TRUE);
+                                data->pixbuf = pixbuf;
+                        }
+                }
+
+
+                target_table = gtk_target_table_new_from_list (target_list, &n_targets);
+
+                gtk_clipboard_set_with_data (clipboard,
+                                             target_table, n_targets,
+                                             (GtkClipboardGetFunc)clipboard_get_cb,
+                                             (GtkClipboardClearFunc)clipboard_clear_cb,
+                                             data);
+
+                gtk_target_table_free (target_table, n_targets);
+                gtk_target_list_unref (target_list);
+       }
+
+
+        g_list_free (selection_list);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* "Paste" from clipboard.                                                   */
+/*****************************************************************************/
+void
+gl_label_paste (glLabel       *label)
+{
+        GtkClipboard  *clipboard;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+        clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
+
+        gtk_clipboard_request_targets (clipboard,
+                                       (GtkClipboardTargetsReceivedFunc)receive_targets_cb,
+                                       label);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/*****************************************************************************/
+/* Is there anything that can be pasted?                                     */
+/*****************************************************************************/
+gboolean
+gl_label_can_paste (glLabel       *label)
+{
+        GtkClipboard *clipboard;
+        gboolean      can_flag;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+        clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
+
+        can_flag = gtk_clipboard_wait_is_target_available (clipboard,
+                                                           gdk_atom_intern("application/glabels", TRUE))
+                || gtk_clipboard_wait_is_text_available (clipboard)
+                || gtk_clipboard_wait_is_image_available (clipboard);
+
+       gl_debug (DEBUG_LABEL, "END");
+        return can_flag;
+}
+
+
+/****************************************************************************/
+/* Clipboard "Get" function.                                                */
+/****************************************************************************/
+static void
+clipboard_get_cb (GtkClipboard     *clipboard,
+                  GtkSelectionData *selection_data,
+                  guint             info,
+                  ClipboardData    *data)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+        switch (info)
+        {
+
+        case 0:
+                gtk_selection_data_set (selection_data,
+                                        gtk_selection_data_get_target (selection_data),
+                                        8,
+                                        (guchar *)data->xml_buffer, strlen (data->xml_buffer));
+                break;
+
+        case 1:
+                gtk_selection_data_set_text (selection_data, data->text, -1);
+                break;
+
+        case 2:
+                gtk_selection_data_set_pixbuf (selection_data, data->pixbuf);
+                break;
+
+        default:
+                g_assert_not_reached ();
+                break;
+
+        }
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/****************************************************************************/
+/* Clipboard "Clear" function.                                              */
+/****************************************************************************/
+static void
+clipboard_clear_cb (GtkClipboard     *clipboard,
+                    ClipboardData    *data)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+        g_free (data->xml_buffer);
+        g_free (data->text);
+        if (data->pixbuf)
+        {
+                g_object_unref (data->pixbuf);
+        }
+
+        g_free (data);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/****************************************************************************/
+/* Deal with clipboard data.                                                */
+/****************************************************************************/
+static void
+receive_targets_cb (GtkClipboard *clipboard,
+                    GdkAtom      *targets,
+                    gint          n_targets,
+                    glLabel      *label)
+{
+        gint i;
+
+        /*
+         * Application/glabels
+         */
+        for ( i = 0; i < n_targets; i++ )
+        {
+                if ( strcmp(gdk_atom_name(targets[i]), "application/glabels") == 0 )
+                {
+                        gtk_clipboard_request_contents (clipboard,
+                                                        gdk_atom_intern("application/glabels", TRUE),
+                                                        (GtkClipboardReceivedFunc)paste_xml_received_cb,
+                                                        label);
+                        return;
+                }
+        }
+
+        /*
+         * Text
+         */
+        if ( gtk_targets_include_text (targets, n_targets) )
+        {
+                gtk_clipboard_request_text (clipboard,
+                                            (GtkClipboardTextReceivedFunc)paste_text_received_cb,
+                                            label);
+                return;
+        }
+
+        /*
+         * Image
+         */
+        if ( gtk_targets_include_image (targets, n_targets, TRUE) )
+        {
+                gtk_clipboard_request_image (clipboard,
+                                             (GtkClipboardImageReceivedFunc)paste_image_received_cb,
+                                             label);
+                return;
+        }
+}
+
+
+/****************************************************************************/
+/* Paste received glabels XML callback.                                     */
+/****************************************************************************/
+static void
+paste_xml_received_cb (GtkClipboard     *clipboard,
+                       GtkSelectionData *selection_data,
+                       glLabel          *label)
+{
+        gchar            *xml_buffer;
+        glLabel          *label_copy;
+        glXMLLabelStatus  status;
+        GList            *p;
+        glLabelObject    *object, *newobject;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+        gl_label_checkpoint (label, _("Paste"));
+
+        xml_buffer = (gchar *)gtk_selection_data_get_data (selection_data);
+
+        /*
+         * Deserialize XML label document and extract objects.
+         */
+        label_copy = gl_xml_label_open_buffer (xml_buffer, &status);
+        if ( label_copy )
+        {
+                gl_label_unselect_all (label);
+
+                for (p = label_copy->priv->object_list; p != NULL; p = p->next)
+                {
+                        object = (glLabelObject *) p->data;
+                        newobject = gl_label_object_dup (object, label);
+                        gl_label_add_object( label, newobject );
+
+                        gl_label_select_object (label, newobject);
+
+                        gl_debug (DEBUG_LABEL, "object pasted");
+                }
+
+                g_object_unref (G_OBJECT (label_copy));
+        }
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/****************************************************************************/
+/* Paste received text callback.                                            */
+/****************************************************************************/
+static void
+paste_text_received_cb (GtkClipboard     *clipboard,
+                        const gchar      *text,
+                        glLabel          *label)
+{
+        glLabelObject    *object;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+        gl_label_checkpoint (label, _("Paste"));
+
+        gl_label_unselect_all (label);
+
+        object = GL_LABEL_OBJECT (gl_label_text_new (label, FALSE));
+        gl_label_text_set_text (GL_LABEL_TEXT (object), text, FALSE);
+        gl_label_object_set_position (object, 18, 18, FALSE);
+
+        gl_label_select_object (label, object);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/****************************************************************************/
+/* Paste received image callback.                                           */
+/****************************************************************************/
+static void
+paste_image_received_cb (GtkClipboard     *clipboard,
+                         GdkPixbuf        *pixbuf,
+                         glLabel          *label)
+{
+        glLabelObject    *object;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+        gl_label_checkpoint (label, _("Paste"));
+
+        gl_label_unselect_all (label);
+
+        object = GL_LABEL_OBJECT (gl_label_image_new (label, FALSE));
+        gl_label_image_set_pixbuf (GL_LABEL_IMAGE (object), pixbuf, FALSE);
+        gl_label_object_set_position (object, 18, 18, FALSE);
+
+        gl_label_select_object (label, object);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/****************************************************************************/
+/* Set default font family.                                                 */
+/****************************************************************************/
+void
+gl_label_set_default_font_family (glLabel     *label,
+                                  const gchar *font_family)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+        g_free (label->priv->default_font_family);
+       label->priv->default_font_family = g_strdup (font_family);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/****************************************************************************/
+/* Set default font size.                                                   */
+/****************************************************************************/
+void
+gl_label_set_default_font_size (glLabel *label,
+                                gdouble  font_size)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+       label->priv->default_font_size = font_size;
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/****************************************************************************/
+/* Set default font weight.                                                 */
+/****************************************************************************/
+void
+gl_label_set_default_font_weight (glLabel     *label,
+                                  PangoWeight  font_weight)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+       label->priv->default_font_weight = font_weight;
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/****************************************************************************/
+/* Set default font italic flag.                                            */
+/****************************************************************************/
+void
+gl_label_set_default_font_italic_flag (glLabel  *label,
+                                       gboolean  font_italic_flag)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+       label->priv->default_font_italic_flag = font_italic_flag;
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/****************************************************************************/
+/* Set default text color.                                                  */
+/****************************************************************************/
+void
+gl_label_set_default_text_color (glLabel *label,
+                                 guint    text_color)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+       label->priv->default_text_color = text_color;
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/****************************************************************************/
+/* Set default text alignment.                                              */
+/****************************************************************************/
+void
+gl_label_set_default_text_alignment (glLabel        *label,
+                                     PangoAlignment  text_alignment)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+       label->priv->default_text_alignment = text_alignment;
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/****************************************************************************/
+/* Set default text line spacing.                                           */
+/****************************************************************************/
+void
+gl_label_set_default_text_line_spacing (glLabel *label,
+                                        gdouble  text_line_spacing)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+       label->priv->default_text_line_spacing = text_line_spacing;
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/****************************************************************************/
+/* Set default line width.                                                  */
+/****************************************************************************/
+void
+gl_label_set_default_line_width (glLabel *label,
+                                 gdouble  line_width)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+       label->priv->default_line_width = line_width;
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/****************************************************************************/
+/* Set default line color.                                                  */
+/****************************************************************************/
+void
+gl_label_set_default_line_color (glLabel *label,
+                                 guint    line_color)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+       label->priv->default_line_color = line_color;
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/****************************************************************************/
+/* Set default fill color.                                                  */
+/****************************************************************************/
+void
+gl_label_set_default_fill_color (glLabel *label,
+                                 guint    fill_color)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+       label->priv->default_fill_color = fill_color;
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/****************************************************************************/
+/* Get default font family.                                                 */
+/****************************************************************************/
+gchar *
+gl_label_get_default_font_family (glLabel *label)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_val_if_fail (label && GL_IS_LABEL (label), NULL);
+
+       gl_debug (DEBUG_LABEL, "END");
+
+       return g_strdup (label->priv->default_font_family);
+}
+
+
+/****************************************************************************/
+/* Get default font size.                                                   */
+/****************************************************************************/
+gdouble
+gl_label_get_default_font_size (glLabel *label)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_val_if_fail (label && GL_IS_LABEL (label), 12.0);
+
+       gl_debug (DEBUG_LABEL, "END");
+
+       return label->priv->default_font_size;
+}
+
+
+/****************************************************************************/
+/* Get default font weight.                                                 */
+/****************************************************************************/
+PangoWeight
+gl_label_get_default_font_weight (glLabel *label)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_val_if_fail (label && GL_IS_LABEL (label), PANGO_WEIGHT_NORMAL);
+
+       gl_debug (DEBUG_LABEL, "END");
+
+       return label->priv->default_font_weight;
+}
+
+
+/****************************************************************************/
+/* Get default font italic flag.                                            */
+/****************************************************************************/
+gboolean
+gl_label_get_default_font_italic_flag (glLabel *label)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_val_if_fail (label && GL_IS_LABEL (label), FALSE);
+
+       gl_debug (DEBUG_LABEL, "END");
+
+       return label->priv->default_font_italic_flag;
+}
+
+
+/****************************************************************************/
+/* Get default text color.                                                  */
+/****************************************************************************/
+guint
+gl_label_get_default_text_color (glLabel *label)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_val_if_fail (label && GL_IS_LABEL (label), 0);
+
+       gl_debug (DEBUG_LABEL, "END");
+
+       return label->priv->default_text_color;
+}
+
+
+/****************************************************************************/
+/* Get default text alignment.                                              */
+/****************************************************************************/
+PangoAlignment
+gl_label_get_default_text_alignment (glLabel *label)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_val_if_fail (label && GL_IS_LABEL (label), PANGO_ALIGN_LEFT);
+
+       gl_debug (DEBUG_LABEL, "END");
+
+       return label->priv->default_text_alignment;
+}
+
+
+/****************************************************************************/
+/* Get default text line spacing.                                           */
+/****************************************************************************/
+gdouble
+gl_label_get_default_text_line_spacing (glLabel *label)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_val_if_fail (label && GL_IS_LABEL (label), 1.0);
+
+       gl_debug (DEBUG_LABEL, "END");
+
+       return label->priv->default_text_line_spacing;
+}
+
+
+/****************************************************************************/
+/* Get default line width.                                                  */
+/****************************************************************************/
+gdouble
+gl_label_get_default_line_width (glLabel *label)
+{
+       gl_debug (DEBUG_LABEL, "START");
+
+       g_return_val_if_fail (label && GL_IS_LABEL (label), 1.0);
+
+       gl_debug (DEBUG_LABEL, "END");
+
+       return label->priv->default_line_width;
 }
 
+
 /****************************************************************************/
-/* return short filename.                                                   */
+/* Get default line color.                                                  */
 /****************************************************************************/
-gchar *
-gl_label_get_short_name (glLabel *label)
+guint
+gl_label_get_default_line_color (glLabel *label)
 {
-       gl_debug (DEBUG_LABEL, "");
+       gl_debug (DEBUG_LABEL, "START");
 
-       if ( label->priv->filename == NULL ) {
+       g_return_val_if_fail (label && GL_IS_LABEL (label), 0);
 
-               if ( label->priv->untitled_instance == 0 ) {
-                       label->priv->untitled_instance = ++untitled;
-               }
+       gl_debug (DEBUG_LABEL, "END");
 
-               return g_strdup_printf ( "%s %d", _("Untitled"),
-                                        label->priv->untitled_instance );
+       return label->priv->default_line_color;
+}
 
-       } else {
-               gchar *temp_name, *short_name;
 
-               temp_name = g_path_get_basename ( label->priv->filename );
-               short_name = gl_util_remove_extension (temp_name);
-               g_free (temp_name);
+/****************************************************************************/
+/* Get default fill color.                                                  */
+/****************************************************************************/
+guint
+gl_label_get_default_fill_color (glLabel *label)
+{
+       gl_debug (DEBUG_LABEL, "START");
 
-               return short_name;
+       g_return_val_if_fail (label && GL_IS_LABEL (label), 0);
+
+       gl_debug (DEBUG_LABEL, "END");
+
+       return label->priv->default_fill_color;
+}
+
+
+/****************************************************************************/
+/* Draw label.                                                              */
+/****************************************************************************/
+void
+gl_label_draw (glLabel       *label,
+               cairo_t       *cr,
+               gboolean       screen_flag,
+               glMergeRecord *record)
+{
+       GList            *p_obj;
+       glLabelObject    *object;
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+
+       for (p_obj = label->priv->object_list; p_obj != NULL; p_obj = p_obj->next)
+        {
+               object = GL_LABEL_OBJECT (p_obj->data);
+
+                gl_label_object_draw (object, cr, screen_flag, record);
        }
 }
 
+
 /****************************************************************************/
-/* Get pixbuf cache.                                                        */
+/* Get object located at coordinates.                                       */
 /****************************************************************************/
-GHashTable *
-gl_label_get_pixbuf_cache (glLabel       *label)
+glLabelObject *gl_label_object_at              (glLabel       *label,
+                                                cairo_t       *cr,
+                                                gdouble        x_pixels,
+                                                gdouble        y_pixels)
 {
-       return label->priv->pixbuf_cache;
+       GList            *p_obj;
+       glLabelObject    *object;
+
+       g_return_val_if_fail (label && GL_IS_LABEL (label), NULL);
+
+       for (p_obj = g_list_last (label->priv->object_list); p_obj != NULL; p_obj = p_obj->prev)
+        {
+               object = GL_LABEL_OBJECT (p_obj->data);
+
+                if (gl_label_object_is_located_at (object, cr, x_pixels, y_pixels))
+                {
+                        return object;
+                }
+
+       }
+
+        return NULL;
 }
 
+
 /****************************************************************************/
-/* Is label modified?                                                       */
+/* Return handle and associated object at coordinates.                      */
 /****************************************************************************/
-gboolean
-gl_label_is_modified (glLabel *label)
+glLabelObject *
+gl_label_get_handle_at (glLabel             *label,
+                        cairo_t             *cr,
+                        gdouble              x_pixels,
+                        gdouble              y_pixels,
+                        glLabelObjectHandle *handle)
 {
-       gl_debug (DEBUG_LABEL, "return %d", label->priv->modified_flag);
-       return label->priv->modified_flag;
+        GList            *selection_list;
+       GList            *p_obj;
+       glLabelObject    *object;
+
+       g_return_val_if_fail (label && GL_IS_LABEL (label), NULL);
+
+        selection_list = gl_label_get_selection_list (label);
+
+       for (p_obj = g_list_last (selection_list); p_obj != NULL; p_obj = p_obj->prev)
+        {
+
+               object = GL_LABEL_OBJECT (p_obj->data);
+
+                if ((*handle = gl_label_object_handle_at (object, cr, x_pixels, y_pixels)))
+                {
+                        g_list_free (selection_list);
+                        return object;
+                }
+
+       }
+
+        g_list_free (selection_list);
+
+        *handle = GL_LABEL_OBJECT_HANDLE_NONE;
+        return NULL;
 }
 
+
 /****************************************************************************/
-/* Is label untitled?                                                       */
+/* Checkpoint state.                                                        */
 /****************************************************************************/
-gboolean
-gl_label_is_untitled (glLabel *label)
+void
+gl_label_checkpoint (glLabel       *this,
+                     const gchar   *description)
 {
-       gl_debug (DEBUG_LABEL, "return %d",(label->priv->filename == NULL));
-       return (label->priv->filename == NULL);
+        State *state;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+        /*
+         * Do not perform consecutive checkpoints that are identical.
+         * E.g. moving an object by dragging, would produce a large number
+         * of incremental checkpoints -- what we really want is a single
+         * checkpoint so that we can undo the entire dragging effort with
+         * one "undo"
+         */
+        if ( this->priv->cp_cleared_flag
+             || (this->priv->cp_desc == NULL)
+             || (strcmp (description, this->priv->cp_desc) != 0) )
+        {
+
+                /* Sever old redo "thread" */
+                stack_clear (this->priv->redo_stack);
+
+                /* Save state onto undo stack. */
+                state = state_new (this, description);
+                stack_push_state (this->priv->undo_stack, state);
+
+                /* Track consecutive checkpoints. */
+                this->priv->cp_cleared_flag = FALSE;
+                this->priv->cp_desc         = g_strdup (description);
+        }
+
+        gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/****************************************************************************/
+/* Undo.                                                                    */
+/****************************************************************************/
+void
+gl_label_undo (glLabel       *this)
+{
+        State *state_old;
+        State *state_now;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+        state_old = stack_pop_state (this->priv->undo_stack);
+        state_now = state_new (this, state_old->description);
+
+        stack_push_state (this->priv->redo_stack, state_now);
+
+        state_restore (state_old, this);
+        state_free (state_old);
+
+        this->priv->cp_cleared_flag = TRUE;
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/****************************************************************************/
+/* Redo.                                                                    */
+/****************************************************************************/
+void
+gl_label_redo (glLabel       *this)
+{
+        State *state_old;
+        State *state_now;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+        state_old = stack_pop_state (this->priv->redo_stack);
+        state_now = state_new (this, state_old->description);
+
+        stack_push_state (this->priv->undo_stack, state_now);
+
+        state_restore (state_old, this);
+        state_free (state_old);
+
+        this->priv->cp_cleared_flag = TRUE;
+
+       gl_debug (DEBUG_LABEL, "END");
 }
 
+
 /****************************************************************************/
 /* Can undo?                                                                */
 /****************************************************************************/
 gboolean
-gl_label_can_undo (glLabel *label)
+gl_label_can_undo (glLabel *this)
 {
-       return FALSE;
+       return (!g_queue_is_empty (this->priv->undo_stack));
 }
 
 
@@ -585,90 +3229,231 @@ gl_label_can_undo (glLabel *label)
 /* Can redo?                                                                */
 /****************************************************************************/
 gboolean
-gl_label_can_redo (glLabel *label)
+gl_label_can_redo (glLabel *this)
 {
-       return FALSE;
+       return (!g_queue_is_empty (this->priv->redo_stack));
 }
 
 
 /****************************************************************************/
-/* Set filename.                                                            */
+/* Get undo description string.                                             */
 /****************************************************************************/
-void
-gl_label_set_filename (glLabel     *label,
-                      const gchar *filename)
+gchar *
+gl_label_get_undo_description (glLabel *this)
 {
-       label->priv->filename = g_strdup (filename);
+        State *state;
+        gchar *description;
 
-       g_signal_emit (G_OBJECT(label), signals[NAME_CHANGED], 0);
+        state = g_queue_peek_head (this->priv->undo_stack);
+        if ( state )
+        {
+                description = g_strdup (state->description);
+        }
+        else
+        {
+                description = g_strdup ("");
+        }
+
+        return description;
 }
 
+
 /****************************************************************************/
-/* Clear modified flag.                                                     */
+/* Get redo description string.                                             */
 /****************************************************************************/
-void
-gl_label_clear_modified (glLabel *label)
+gchar *
+gl_label_get_redo_description (glLabel *this)
 {
+        State *state;
+        gchar *description;
+
+        state = g_queue_peek_head (this->priv->redo_stack);
+        if ( state )
+        {
+                description = g_strdup (state->description);
+        }
+        else
+        {
+                description = g_strdup ("");
+        }
 
-       if ( label->priv->modified_flag ) {
+        return description;
+}
 
-               label->priv->modified_flag = FALSE;
 
-               g_signal_emit (G_OBJECT(label), signals[MODIFIED_CHANGED], 0);
-       }
+/****************************************************************************/
+/* Clear undo or redo stack.                                                */
+/****************************************************************************/
+static void
+stack_clear (GQueue *stack)
+{
+        State *state;
+
+       gl_debug (DEBUG_LABEL, "START");
 
+        while ( (state = g_queue_pop_head (stack)) != NULL )
+        {
+                state_free (state);
+        }
+
+       gl_debug (DEBUG_LABEL, "END");
 }
 
 
 /****************************************************************************/
-/* Set compression level.                                                   */
+/* Push state onto stack.                                                   */
 /****************************************************************************/
-void
-gl_label_set_compression (glLabel  *label,
-                         gint      compression)
+static void
+stack_push_state (GQueue *stack,
+                  State  *state)
 {
-       gl_debug (DEBUG_LABEL, "set %d", compression);
+       gl_debug (DEBUG_LABEL, "START");
 
-       /* Older versions of libxml2 always return a -1 for documents "read in," so
-        * default to 9.  Also, default to 9 for anything else out of range. */
-       if ((compression < 0) || (compression >9)) {
-               compression = 9;
-       }
+        g_queue_push_head( stack, state );
 
-       gl_debug (DEBUG_LABEL, "actual set %d", compression);
-       label->priv->compression = compression;
+       gl_debug (DEBUG_LABEL, "END");
 }
 
 
 /****************************************************************************/
-/* Get compression level.                                                   */
+/* Pop state from stack.                                                    */
 /****************************************************************************/
-gint
-gl_label_get_compression (glLabel *label)
+static State *
+stack_pop_state (GQueue *stack)
 {
-       gl_debug (DEBUG_LABEL, "return %d", label->priv->compression);
-       return label->priv->compression;
+        State *state;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+        state = g_queue_pop_head (stack);
+
+       gl_debug (DEBUG_LABEL, "END");
+        return state;
 }
 
 
 /****************************************************************************/
-/* Draw label.                                                              */
+/* New state from label.                                                    */
 /****************************************************************************/
-void
-gl_label_draw (glLabel       *label,
-               cairo_t       *cr,
-               gboolean       screen_flag,
-               glMergeRecord *record)
+static State *
+state_new (glLabel       *this,
+           const gchar   *description)
 {
-       GList            *p_obj;
-       glLabelObject    *object;
+        State          *state;
+        GList          *p_obj;
+        glLabelObject  *object;
 
-       g_return_if_fail (label && GL_IS_LABEL (label));
+       gl_debug (DEBUG_LABEL, "START");
+
+        state = g_new0 (State, 1);
+
+        state->description = g_strdup (description);
+
+        state->template    = lgl_template_dup (this->priv->template);
+        state->rotate_flag = this->priv->rotate_flag;
 
-       for (p_obj = label->objects; p_obj != NULL; p_obj = p_obj->next)
+        for ( p_obj = this->priv->object_list; p_obj != NULL; p_obj = p_obj->next )
         {
-               object = GL_LABEL_OBJECT (p_obj->data);
+                object = GL_LABEL_OBJECT (p_obj->data);
 
-                gl_label_object_draw (object, cr, screen_flag, record);
-       }
+                state->object_list = g_list_append (state->object_list,
+                                                    gl_label_object_dup (object, this));
+        }
+
+        state->merge = gl_merge_dup (this->priv->merge);
+
+        state->modified_flag = this->priv->modified_flag;
+        state->time_stamp    = this->priv->time_stamp;
+
+
+       gl_debug (DEBUG_LABEL, "END");
+        return state;
+}
+
+
+/****************************************************************************/
+/* Restore label from saved state.                                          */
+/****************************************************************************/
+static void
+state_free (State   *state)
+{
+        GList          *p_obj;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+        g_free (state->description);
+
+        lgl_template_free (state->template);
+        if ( state->merge )
+        {
+                g_object_unref (G_OBJECT (state->merge));
+        }
+
+        for ( p_obj = state->object_list; p_obj != NULL; p_obj = p_obj->next )
+        {
+                g_object_unref (G_OBJECT (p_obj->data));
+        }
+        g_list_free (state->object_list);
+
+        g_free (state);
+
+       gl_debug (DEBUG_LABEL, "END");
+}
+
+
+/****************************************************************************/
+/* Restore label from saved state.                                          */
+/****************************************************************************/
+static void
+state_restore (State   *state,
+               glLabel *this)
+               
+{
+        GList          *p_obj, *p_next;
+        glLabelObject  *object;
+
+       gl_debug (DEBUG_LABEL, "START");
+
+        gl_label_set_rotate_flag (this, state->rotate_flag, FALSE);
+        gl_label_set_template (this, state->template, FALSE);
+
+        for ( p_obj = this->priv->object_list; p_obj != NULL; p_obj = p_next )
+        {
+                p_next = p_obj->next; /* Hold on to next; delete is destructive */
+                object = GL_LABEL_OBJECT (p_obj->data);
+
+                gl_label_delete_object (this, object);
+        }
+
+        for ( p_obj = state->object_list; p_obj != NULL; p_obj = p_obj->next )
+        {
+                object = GL_LABEL_OBJECT (p_obj->data);
+
+                gl_label_add_object (this, gl_label_object_dup (object, this));
+        }
+       g_signal_emit (G_OBJECT(this), signals[SELECTION_CHANGED], 0);
+
+        gl_label_set_merge (this, state->merge, FALSE);
+        
+
+        if ( !state->modified_flag &&
+             (state->time_stamp.tv_sec  == this->priv->time_stamp.tv_sec) &&
+             (state->time_stamp.tv_usec == this->priv->time_stamp.tv_usec) )
+        {
+                gl_label_clear_modified (this);
+        }
+
+       gl_debug (DEBUG_LABEL, "END");
 }
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index f6e0c23ba6aeffa7d73a62d516d0015df76c0c82..eccd6088825c7fd569b54ccc82576ab58ef2fb6f 100644 (file)
@@ -1,35 +1,34 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  label.h:  GLabels label module header file
+ *  label.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #ifndef __LABEL_H__
 #define __LABEL_H__
 
-#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <cairo.h>
 
-#include <libglabels/template.h>
+#include <libglabels/libglabels.h>
 #include "merge.h"
+#include "color.h"
 #include "pixbuf-cache.h"
-#include <cairo.h>
+#include "svg-cache.h"
 
 G_BEGIN_DECLS
 
@@ -55,31 +54,29 @@ typedef struct _glLabelPrivate   glLabelPrivate;
 struct _glLabel {
        GObject         object;
 
-        lglTemplate    *template;
-        gboolean        rotate_flag;
-
-       GList          *objects;
-
        glLabelPrivate *priv;
 };
 
 struct _glLabelClass {
        GObjectClass         parent_class;
 
-       void (*changed)          (glLabel *label, gpointer user_data);
-
-       void (*name_changed)     (glLabel *label, gpointer user_data);
+       void (*selection_changed) (glLabel       *view,
+                                  gpointer       user_data);
 
-       void (*modified_changed) (glLabel *label, gpointer user_data);
+       void (*changed)           (glLabel       *label,
+                                  gpointer       user_data);
 
-       void (*merge_changed)    (glLabel *label, gpointer user_data);
+       void (*name_changed)      (glLabel       *label,
+                                  gpointer       user_data);
 
-       void (*size_changed)     (glLabel *label, gpointer user_data);
+       void (*modified_changed)  (glLabel       *label,
+                                  gpointer       user_data);
 
-       void (*object_added)     (glLabel       *label,
-                                  glLabelObject *object,
-                                  gpointer       user_data);
+       void (*merge_changed)     (glLabel       *label,
+                                  gpointer       user_data);
 
+       void (*size_changed)      (glLabel       *label,
+                                  gpointer       user_data);
 };
 
 
@@ -88,24 +85,40 @@ GType         gl_label_get_type                (void) G_GNUC_CONST;
 GObject      *gl_label_new                     (void);
 
 
-void          gl_label_add_object              (glLabel       *label,
-                                               glLabelObject *object);
+void          gl_label_set_filename            (glLabel       *label,
+                                               const gchar   *filename);
 
-void          gl_label_remove_object           (glLabel       *label,
-                                               glLabelObject *object);
+gchar        *gl_label_get_filename            (glLabel       *label);
 
-void          gl_label_raise_object_to_top     (glLabel       *label,
-                                               glLabelObject *object);
+gchar        *gl_label_get_short_name          (glLabel       *label);
 
-void          gl_label_lower_object_to_bottom  (glLabel       *label,
-                                               glLabelObject *object);
+gboolean      gl_label_is_untitled             (glLabel       *label);
 
 
-void          gl_label_set_template            (glLabel       *label,
-                                               lglTemplate   *template);
+void          gl_label_set_compression         (glLabel       *label,
+                                               gint           compression);
+
+gint          gl_label_get_compression         (glLabel       *label);
+
+
+void          gl_label_set_modified            (glLabel       *label);
+
+void          gl_label_clear_modified          (glLabel       *label);
+
+gboolean      gl_label_is_modified             (glLabel       *label);
+
+
+void          gl_label_set_template            (glLabel            *label,
+                                               const lglTemplate  *template,
+                                                gboolean            checkpoint);
+
+const lglTemplate *gl_label_get_template       (glLabel            *label);
 
 void          gl_label_set_rotate_flag         (glLabel       *label,
-                                               gboolean       rotate_flag);
+                                               gboolean       rotate_flag,
+                                                gboolean       checkpoint);
+
+gboolean      gl_label_get_rotate_flag         (glLabel       *label);
 
 void          gl_label_get_size                (glLabel       *label,
                                                gdouble       *w,
@@ -113,42 +126,251 @@ void          gl_label_get_size                (glLabel       *label,
 
 
 void          gl_label_set_merge               (glLabel       *label,
-                                               glMerge       *merge);
+                                               glMerge       *merge,
+                                                gboolean       checkpoint);
 
 glMerge      *gl_label_get_merge               (glLabel       *label);
 
+GHashTable   *gl_label_get_pixbuf_cache        (glLabel       *label);
 
-gchar        *gl_label_get_filename            (glLabel       *label);
 
-gchar        *gl_label_get_short_name          (glLabel       *label);
+GHashTable   *gl_label_get_svg_cache           (glLabel       *label);
 
-GHashTable   *gl_label_get_pixbuf_cache        (glLabel       *label);
 
-gboolean      gl_label_is_modified             (glLabel       *label);
+void          gl_label_add_object              (glLabel       *label,
+                                               glLabelObject *object);
 
-gboolean      gl_label_is_untitled             (glLabel       *label);
 
-gboolean      gl_label_can_undo                (glLabel       *label);
+void          gl_label_delete_object           (glLabel       *label,
+                                               glLabelObject *object);
 
-gboolean      gl_label_can_redo                (glLabel       *label);
+const GList  *gl_label_get_object_list         (glLabel       *label);
 
 
-void          gl_label_set_filename            (glLabel       *label,
-                                               const gchar   *filename);
 
-void          gl_label_clear_modified          (glLabel       *label);
+/*
+ * Modify selection methods
+ */
+void          gl_label_select_object           (glLabel       *label,
+                                                glLabelObject *object);
 
-void          gl_label_set_compression         (glLabel       *label,
-                                               gint           compression);
+void          gl_label_unselect_object         (glLabel       *label,
+                                                glLabelObject *object);
 
-gint          gl_label_get_compression         (glLabel       *label);
+void          gl_label_select_all              (glLabel       *label);
+
+void          gl_label_unselect_all            (glLabel       *label);
+
+void          gl_label_select_region           (glLabel       *label,
+                                                glLabelRegion *region);
+
+
+/*
+ * Selection query methods
+ */
+gboolean       gl_label_is_selection_empty      (glLabel       *label);
+
+gboolean       gl_label_is_selection_atomic     (glLabel       *label);
+
+glLabelObject *gl_label_get_1st_selected_object (glLabel       *label);
+
+GList         *gl_label_get_selection_list      (glLabel       *label);
+
+gboolean       gl_label_can_selection_text      (glLabel       *label);
+
+gboolean       gl_label_can_selection_fill      (glLabel       *label);
+
+gboolean       gl_label_can_selection_line_color(glLabel       *label);
+
+gboolean       gl_label_can_selection_line_width(glLabel       *label);
+
+
+/*
+ * Perform operations on selections
+ */
+void          gl_label_delete_selection          (glLabel       *label);
+
+void          gl_label_raise_selection_to_top    (glLabel       *label);
+
+void          gl_label_lower_selection_to_bottom (glLabel       *label);
+
+void          gl_label_rotate_selection          (glLabel       *label,
+                                                  gdouble        theta_degs);
+
+void          gl_label_rotate_selection_left     (glLabel       *label);
+
+void          gl_label_rotate_selection_right    (glLabel       *label);
 
-void          gl_label_draw                    (glLabel       *label,
+void          gl_label_flip_selection_horiz      (glLabel       *label);
+
+void          gl_label_flip_selection_vert       (glLabel       *label);
+
+void          gl_label_align_selection_left      (glLabel       *label);
+
+void          gl_label_align_selection_right     (glLabel       *label);
+
+void          gl_label_align_selection_hcenter   (glLabel       *label);
+
+void          gl_label_align_selection_top       (glLabel       *label);
+
+void          gl_label_align_selection_bottom    (glLabel       *label);
+
+void          gl_label_align_selection_vcenter   (glLabel       *label);
+
+void          gl_label_center_selection_horiz    (glLabel       *label);
+
+void          gl_label_center_selection_vert     (glLabel       *label);
+
+void          gl_label_move_selection            (glLabel       *label,
+                                                  gdouble        dx,
+                                                  gdouble        dy);
+
+void          gl_label_set_selection_font_family(glLabel        *label,
+                                                 const gchar    *font_family);
+
+void          gl_label_set_selection_font_size  (glLabel        *label,
+                                                 gdouble         font_size);
+
+void          gl_label_set_selection_font_weight(glLabel        *label,
+                                                 PangoWeight     font_weight);
+
+void          gl_label_set_selection_font_italic_flag (glLabel   *label,
+                                                       gboolean   font_italic_flag);
+
+void          gl_label_set_selection_text_alignment (glLabel        *label,
+                                                     PangoAlignment  text_alignment);
+
+void          gl_label_set_selection_text_line_spacing (glLabel  *label,
+                                                        gdouble   text_line_spacing);
+
+void          gl_label_set_selection_text_color (glLabel        *label,
+                                                 glColorNode    *text_color_node);
+
+void          gl_label_set_selection_fill_color (glLabel        *label,
+                                                 glColorNode    *fill_color_node);
+
+void          gl_label_set_selection_line_color (glLabel        *label,
+                                                 glColorNode    *line_color_node);
+
+void          gl_label_set_selection_line_width (glLabel        *label,
+                                                 gdouble         line_width);
+
+
+/*
+ * Clipboard operations
+ */
+void          gl_label_cut_selection             (glLabel       *label);
+
+void          gl_label_copy_selection            (glLabel       *label);
+
+void          gl_label_paste                     (glLabel       *label);
+
+gboolean      gl_label_can_paste                 (glLabel       *label);
+
+
+/*
+ * Set/get current default values.
+ */
+void       gl_label_set_default_font_family      (glLabel            *label,
+                                                  const gchar       *font_family);
+
+void       gl_label_set_default_font_size        (glLabel            *label,
+                                                  gdouble            font_size);
+
+void       gl_label_set_default_font_weight      (glLabel            *label,
+                                                  PangoWeight        font_weight);
+
+void       gl_label_set_default_font_italic_flag (glLabel            *label,
+                                                  gboolean           font_italic_flag);
+
+void       gl_label_set_default_text_color       (glLabel            *label,
+                                                  guint              text_color);
+
+void       gl_label_set_default_text_alignment   (glLabel            *label,
+                                                  PangoAlignment     text_alignment);
+
+void       gl_label_set_default_line_width       (glLabel            *label,
+                                                  gdouble            line_width);
+
+void       gl_label_set_default_line_color       (glLabel            *label,
+                                                  guint              line_color);
+
+void       gl_label_set_default_fill_color       (glLabel            *label,
+                                                  guint              fill_color);
+
+void       gl_label_set_default_text_line_spacing(glLabel            *label,
+                                                  gdouble            text_line_spacing);
+
+gchar           *gl_label_get_default_font_family      (glLabel            *label);
+
+gdouble          gl_label_get_default_font_size        (glLabel            *label);
+
+PangoWeight      gl_label_get_default_font_weight      (glLabel            *label);
+
+gboolean         gl_label_get_default_font_italic_flag (glLabel            *label);
+
+guint            gl_label_get_default_text_color       (glLabel            *label);
+
+PangoAlignment   gl_label_get_default_text_alignment   (glLabel            *label);
+
+gdouble          gl_label_get_default_text_line_spacing(glLabel            *label);
+
+gdouble          gl_label_get_default_line_width       (glLabel            *label);
+
+guint            gl_label_get_default_line_color       (glLabel            *label);
+
+guint            gl_label_get_default_fill_color       (glLabel            *view);
+
+
+/*
+ * Drawing methods
+ */
+void           gl_label_draw                   (glLabel       *label,
                                                 cairo_t       *cr,
                                                 gboolean       screen_flag,
                                                 glMergeRecord *record);
 
+glLabelObject *gl_label_object_at              (glLabel       *label,
+                                                cairo_t       *cr,
+                                                gdouble        x_pixels,
+                                                gdouble        y_pixels);
+
+glLabelObject *gl_label_get_handle_at          (glLabel             *label,
+                                                cairo_t             *cr,
+                                                gdouble              x_pixels,
+                                                gdouble              y_pixels,
+                                                glLabelObjectHandle *handle);
+
+
+/*
+ * Undo/Redo methods
+ */
+void          gl_label_checkpoint              (glLabel       *label,
+                                                const gchar   *description);
+
+gboolean      gl_label_can_undo                (glLabel       *label);
+gboolean      gl_label_can_redo                (glLabel       *label);
+
+gchar        *gl_label_get_undo_description    (glLabel       *label);
+gchar        *gl_label_get_redo_description    (glLabel       *label);
+
+void          gl_label_undo                    (glLabel       *label);
+void          gl_label_redo                    (glLabel       *label);
+
+
 G_END_DECLS
 
 
 #endif /* __LABEL_H__ */
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 1c4ed4dc8b58ad8f513ee16ec505a1c7b992c462..7858e2b3b5fee5f7eec01303aa0650372a3a8069 100644 (file)
@@ -22,6 +22,7 @@
 #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
 #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
 #define g_marshal_value_peek_object(v)   g_value_get_object (v)
+#define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
 #else /* !G_ENABLE_DEBUG */
 /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
  *          Do not access GValues directly in your code. Instead, use the
@@ -45,6 +46,7 @@
 #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
 #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
 #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
+#define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
 #endif /* !G_ENABLE_DEBUG */
 
 
@@ -167,3 +169,42 @@ gl_marshal_VOID__DOUBLE_DOUBLE (GClosure     *closure,
 
 /* VOID:OBJECT (marshal.list:7) */
 
+/* VOID:STRING (marshal.list:8) */
+
+/* VOID:UINT,BOOLEAN (marshal.list:9) */
+void
+gl_marshal_VOID__UINT_BOOLEAN (GClosure     *closure,
+                               GValue       *return_value G_GNUC_UNUSED,
+                               guint         n_param_values,
+                               const GValue *param_values,
+                               gpointer      invocation_hint G_GNUC_UNUSED,
+                               gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__UINT_BOOLEAN) (gpointer     data1,
+                                                   guint        arg_1,
+                                                   gboolean     arg_2,
+                                                   gpointer     data2);
+  register GMarshalFunc_VOID__UINT_BOOLEAN callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 3);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__UINT_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_uint (param_values + 1),
+            g_marshal_value_peek_boolean (param_values + 2),
+            data2);
+}
+
index bfc639b06110871cc1930b9d725fa8980d62abfb..3196b8419295f397a0b98316eb87b76dca21244d 100644 (file)
@@ -42,6 +42,17 @@ extern void gl_marshal_VOID__DOUBLE_DOUBLE (GClosure     *closure,
 /* VOID:OBJECT (marshal.list:7) */
 #define gl_marshal_VOID__OBJECT        g_cclosure_marshal_VOID__OBJECT
 
+/* VOID:STRING (marshal.list:8) */
+#define gl_marshal_VOID__STRING        g_cclosure_marshal_VOID__STRING
+
+/* VOID:UINT,BOOLEAN (marshal.list:9) */
+extern void gl_marshal_VOID__UINT_BOOLEAN (GClosure     *closure,
+                                           GValue       *return_value,
+                                           guint         n_param_values,
+                                           const GValue *param_values,
+                                           gpointer      invocation_hint,
+                                           gpointer      marshal_data);
+
 G_END_DECLS
 
 #endif /* __gl_marshal_MARSHAL_H__ */
index ea17eaf346794b5eb9eedadc5deb1eb0efbb0385..edc75344366626e1407629c32d5ed306cfbce75a 100644 (file)
@@ -5,3 +5,5 @@ VOID:INT,UINT
 VOID:DOUBLE
 VOID:DOUBLE,DOUBLE
 VOID:OBJECT
+VOID:STRING
+VOID:UINT,BOOLEAN
diff --git a/src/media-select.c b/src/media-select.c
new file mode 100644 (file)
index 0000000..11ecda0
--- /dev/null
@@ -0,0 +1,1206 @@
+/*
+ *  media-select.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "media-select.h"
+
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+#include <string.h>
+
+#include <libglabels.h>
+#include "mini-preview-pixbuf-cache.h"
+#include "prefs.h"
+#include "message-bar.h"
+#include "template-history.h"
+#include "template-designer.h"
+#include "str-util.h"
+#include "combo-util.h"
+#include "builder-util.h"
+#include "color.h"
+#include "marshal.h"
+
+#include "debug.h"
+
+
+#define HISTORY_SIZE 5
+
+/*===========================================*/
+/* Private types                             */
+/*===========================================*/
+
+enum {
+       NAME_COLUMN,
+       PREVIEW_COLUMN,
+       PREVIEW_COLUMN_STOCK,
+       PREVIEW_COLUMN_STOCK_SIZE,
+       DESCRIPTION_COLUMN,
+       N_COLUMNS
+};
+
+struct _glMediaSelectPrivate {
+
+        gulong        db_notify_id;
+
+        GtkBuilder   *builder;
+
+        GtkWidget    *notebook;
+        guint         current_page_num;
+
+        gint          recent_page_num;
+        GtkWidget    *recent_tab_vbox;
+        GtkWidget    *recent_info_vbox;
+        GtkWidget    *recent_info_bar;
+        GtkWidget    *recent_treeview;
+        GtkListStore *recent_store;
+
+        gint          search_all_page_num;
+        GtkWidget    *search_all_tab_vbox;
+        GtkWidget    *search_all_info_vbox;
+        GtkWidget    *search_all_info_bar;
+        GtkWidget    *brand_combo_hbox;
+        GtkWidget    *brand_combo;
+        GtkWidget    *page_size_combo_hbox;
+        GtkWidget    *page_size_combo;
+        GtkWidget    *category_combo_hbox;
+        GtkWidget    *category_combo;
+        GtkWidget    *search_all_treeview;
+        GtkListStore *search_all_store;
+
+        gint          custom_page_num;
+        GtkWidget    *custom_tab_vbox;
+        GtkWidget    *custom_info_vbox;
+        GtkWidget    *custom_info_bar;
+        GtkWidget    *custom_treeview;
+        GtkListStore *custom_store;
+        GtkWidget    *custom_add_button;
+        GtkWidget    *custom_edit_button;
+        GtkWidget    *custom_delete_button;
+
+        /* Prevent recursion */
+       gboolean    stop_signals;
+};
+
+enum {
+        CHANGED,
+        LAST_SIGNAL
+};
+
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+static gint signals[LAST_SIGNAL] = { 0 };
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+static void   gl_media_select_finalize   (GObject                *object);
+
+static void   gl_media_select_construct  (glMediaSelect          *this);
+
+static void   filter_changed_cb          (glMediaSelect          *this);
+
+static void   selection_changed_cb       (GtkTreeSelection       *selection,
+                                          gpointer                user_data);
+
+static void   custom_add_clicked_cb      (GtkButton              *button,
+                                          gpointer                user_data);
+
+static void   custom_edit_clicked_cb     (GtkButton              *button,
+                                          gpointer                user_data);
+
+static void   custom_delete_clicked_cb   (GtkButton              *button,
+                                          gpointer                user_data);
+
+static void   page_changed_cb            (GtkNotebook            *notebook,
+                                          GtkWidget              *page,
+                                          guint                   page_num,
+                                          gpointer                user_data);
+
+static void   db_changed_cb              (glMediaSelect          *this);
+
+static void   load_recent_list           (glMediaSelect          *this,
+                                          GtkListStore           *store,
+                                          GtkTreeSelection       *selection,
+                                          GList                  *list);
+
+static void   load_custom_list          (glMediaSelect          *this,
+                                          GtkListStore           *store,
+                                          GtkTreeSelection       *selection,
+                                          GList                  *list);
+
+static void   load_search_all_list       (glMediaSelect          *this,
+                                          GtkListStore           *store,
+                                          GtkTreeSelection       *selection,
+                                          GList                  *list);
+
+
+/****************************************************************************/
+/* Boilerplate Object stuff.                                                */
+/****************************************************************************/
+G_DEFINE_TYPE (glMediaSelect, gl_media_select, GTK_TYPE_VBOX)
+
+
+static void
+gl_media_select_class_init (glMediaSelectClass *class)
+{
+        GObjectClass *object_class = G_OBJECT_CLASS (class);
+
+        gl_debug (DEBUG_MEDIA_SELECT, "START");
+
+        gl_media_select_parent_class = g_type_class_peek_parent (class);
+
+        object_class->finalize = gl_media_select_finalize;
+
+        signals[CHANGED] =
+            g_signal_new ("changed",
+                          G_OBJECT_CLASS_TYPE(object_class),
+                          G_SIGNAL_RUN_LAST,
+                          G_STRUCT_OFFSET (glMediaSelectClass, changed),
+                          NULL, NULL,
+                          gl_marshal_VOID__VOID,
+                          G_TYPE_NONE, 0);
+
+        gl_debug (DEBUG_MEDIA_SELECT, "END");
+}
+
+
+static void
+gl_media_select_init (glMediaSelect *this)
+{
+        gl_debug (DEBUG_MEDIA_SELECT, "START");
+
+        this->priv = g_new0 (glMediaSelectPrivate, 1);
+
+        gl_debug (DEBUG_MEDIA_SELECT, "END");
+}
+
+
+static void
+gl_media_select_finalize (GObject *object)
+{
+        glMediaSelect *this = GL_MEDIA_SELECT (object);
+
+        gl_debug (DEBUG_MEDIA_SELECT, "START");
+
+        g_return_if_fail (object != NULL);
+        g_return_if_fail (GL_IS_MEDIA_SELECT (object));
+
+        if (this->priv->db_notify_id)
+        {
+                lgl_db_notify_remove (this->priv->db_notify_id);
+        }
+
+        if (this->priv->builder)
+        {
+                g_object_unref (this->priv->builder);
+        }
+        g_object_unref (this->priv->recent_store);
+        g_object_unref (this->priv->search_all_store);
+        g_free (this->priv);
+
+        G_OBJECT_CLASS (gl_media_select_parent_class)->finalize (object);
+
+        gl_debug (DEBUG_MEDIA_SELECT, "END");
+}
+
+
+GtkWidget *
+gl_media_select_new (void)
+{
+        glMediaSelect *this;
+
+        gl_debug (DEBUG_MEDIA_SELECT, "START");
+
+        this = g_object_new (gl_media_select_get_type (), NULL);
+
+        gl_media_select_construct (this);
+
+        gl_debug (DEBUG_MEDIA_SELECT, "END");
+
+        return GTK_WIDGET (this);
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Construct composite widget.                                    */
+/*--------------------------------------------------------------------------*/
+static void
+gl_media_select_construct (glMediaSelect *this)
+{
+        gchar             *builder_filename;
+        GtkBuilder        *builder;
+        static gchar      *object_ids[] = { "media_select_hbox",
+                                            "custom_buttons_sizegroup",
+                                            NULL };
+        GError            *error = NULL;
+        GtkWidget         *hbox;
+        GList             *recent_list = NULL;
+        GList             *brands = NULL;
+        GList             *page_sizes = NULL;
+        GList             *categories = NULL;
+        GList             *search_all_names = NULL;
+        const gchar       *page_size_id;
+        gchar             *page_size_name;
+        GList             *custom_list = NULL;
+        GtkCellRenderer   *renderer;
+        GtkTreeViewColumn *column;
+        GtkTreeSelection  *recent_selection;
+        GtkTreeSelection  *search_all_selection;
+        GtkTreeSelection  *custom_selection;
+
+        gl_debug (DEBUG_MEDIA_SELECT, "START");
+
+        g_return_if_fail (GL_IS_MEDIA_SELECT (this));
+        g_return_if_fail (this->priv != NULL);
+
+        builder = gtk_builder_new ();
+        builder_filename = g_build_filename (GLABELS_DATA_DIR, "ui", "media-select.ui", NULL);
+        gtk_builder_add_objects_from_file (builder, builder_filename, object_ids, &error);
+        g_free (builder_filename);
+       if (error) {
+               g_critical ("%s\n\ngLabels may not be installed correctly!", error->message);
+                g_error_free (error);
+               return;
+       }
+
+        gl_builder_util_get_widgets (builder,
+                                     "media_select_hbox",      &hbox,
+                                     "notebook",               &this->priv->notebook,
+                                     "recent_tab_vbox",        &this->priv->recent_tab_vbox,
+                                     "recent_info_vbox",       &this->priv->recent_info_vbox,
+                                     "recent_treeview",        &this->priv->recent_treeview,
+                                     "search_all_tab_vbox",    &this->priv->search_all_tab_vbox,
+                                     "brand_combo_hbox",       &this->priv->brand_combo_hbox,
+                                     "page_size_combo_hbox",   &this->priv->page_size_combo_hbox,
+                                     "category_combo_hbox",    &this->priv->category_combo_hbox,
+                                     "search_all_info_vbox",   &this->priv->search_all_info_vbox,
+                                     "search_all_treeview",    &this->priv->search_all_treeview,
+                                     "custom_tab_vbox",        &this->priv->custom_tab_vbox,
+                                     "custom_info_vbox",       &this->priv->custom_info_vbox,
+                                     "custom_treeview",        &this->priv->custom_treeview,
+                                     "custom_add_button",      &this->priv->custom_add_button,
+                                     "custom_edit_button",     &this->priv->custom_edit_button,
+                                     "custom_delete_button",   &this->priv->custom_delete_button,
+                                     NULL);
+
+        gtk_container_add (GTK_CONTAINER (this), hbox);
+        this->priv->builder = builder;
+
+        this->priv->recent_page_num =
+                gtk_notebook_page_num (GTK_NOTEBOOK (this->priv->notebook),
+                                       this->priv->recent_tab_vbox);
+        this->priv->search_all_page_num =
+                gtk_notebook_page_num (GTK_NOTEBOOK (this->priv->notebook),
+                                       this->priv->search_all_tab_vbox);
+        this->priv->custom_page_num =
+                gtk_notebook_page_num (GTK_NOTEBOOK (this->priv->notebook),
+                                       this->priv->custom_tab_vbox);
+
+        this->priv->brand_combo = gtk_combo_box_text_new ();
+        gtk_box_pack_start (GTK_BOX (this->priv->brand_combo_hbox), this->priv->brand_combo, FALSE, FALSE, 0);
+        this->priv->page_size_combo = gtk_combo_box_text_new ();
+        gtk_box_pack_start (GTK_BOX (this->priv->page_size_combo_hbox), this->priv->page_size_combo, FALSE, FALSE, 0);
+        this->priv->category_combo = gtk_combo_box_text_new ();
+        gtk_box_pack_start (GTK_BOX (this->priv->category_combo_hbox), this->priv->category_combo, FALSE, FALSE, 0);
+
+        gtk_widget_show_all (GTK_WIDGET (this));
+
+        /* Recent templates treeview */
+        this->priv->recent_store = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_STRING);
+        gtk_tree_view_set_model (GTK_TREE_VIEW (this->priv->recent_treeview),
+                                 GTK_TREE_MODEL (this->priv->recent_store));
+        renderer = gtk_cell_renderer_pixbuf_new ();
+        column = gtk_tree_view_column_new_with_attributes ("", renderer,
+                                                           "pixbuf", PREVIEW_COLUMN,
+                                                           "stock-id", PREVIEW_COLUMN_STOCK,
+                                                           "stock-size", PREVIEW_COLUMN_STOCK_SIZE,
+                                                           NULL);
+        gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
+        gtk_tree_view_append_column (GTK_TREE_VIEW (this->priv->recent_treeview), column);
+        renderer = gtk_cell_renderer_text_new ();
+        column = gtk_tree_view_column_new_with_attributes ("", renderer,
+                                                           "markup", DESCRIPTION_COLUMN,
+                                                           NULL);
+        gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
+        gtk_tree_view_append_column (GTK_TREE_VIEW (this->priv->recent_treeview), column);
+        recent_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (this->priv->recent_treeview));
+        recent_list = gl_template_history_model_get_name_list (gl_template_history);
+        load_recent_list (this, this->priv->recent_store, recent_selection, recent_list);
+
+        page_size_id = gl_prefs_model_get_default_page_size (gl_prefs);
+        page_size_name = lgl_db_lookup_paper_name_from_id (page_size_id);
+
+        /* Brand selection control */
+        brands = lgl_db_get_brand_list (NULL, NULL);
+        brands = g_list_prepend (brands, g_strdup (C_("Brand", "Any")));
+        gl_combo_util_set_strings (GTK_COMBO_BOX_TEXT (this->priv->brand_combo), brands);
+        lgl_db_free_brand_list (brands);
+        gl_combo_util_set_active_text (GTK_COMBO_BOX (this->priv->brand_combo), C_("Brand", "Any"));
+
+        /* Page size selection control */
+        page_sizes = lgl_db_get_paper_name_list ();
+        page_sizes = g_list_prepend (page_sizes, g_strdup (C_("Page size", "Any")));
+        gl_combo_util_set_strings (GTK_COMBO_BOX_TEXT (this->priv->page_size_combo), page_sizes);
+        lgl_db_free_paper_name_list (page_sizes);
+        gl_combo_util_set_active_text (GTK_COMBO_BOX (this->priv->page_size_combo), page_size_name);
+
+        /* Category selection control */
+        categories = lgl_db_get_category_name_list ();
+        categories = g_list_prepend (categories, g_strdup (C_("Category", "Any")));
+        gl_combo_util_set_strings (GTK_COMBO_BOX_TEXT (this->priv->category_combo), categories);
+        lgl_db_free_category_name_list (categories);
+        gl_combo_util_set_active_text (GTK_COMBO_BOX (this->priv->category_combo), C_("Category", "Any"));
+
+        /* Search all treeview */
+        this->priv->search_all_store = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_STRING);
+        gtk_tree_view_set_model (GTK_TREE_VIEW (this->priv->search_all_treeview),
+                                 GTK_TREE_MODEL (this->priv->search_all_store));
+        renderer = gtk_cell_renderer_pixbuf_new ();
+        column = gtk_tree_view_column_new_with_attributes ("", renderer,
+                                                           "pixbuf", PREVIEW_COLUMN,
+                                                           "stock-id", PREVIEW_COLUMN_STOCK,
+                                                           "stock-size", PREVIEW_COLUMN_STOCK_SIZE,
+                                                           NULL);
+        gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
+        gtk_tree_view_append_column (GTK_TREE_VIEW (this->priv->search_all_treeview), column);
+        renderer = gtk_cell_renderer_text_new ();
+        column = gtk_tree_view_column_new_with_attributes ("", renderer,
+                                                           "markup", DESCRIPTION_COLUMN,
+                                                           NULL);
+        gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
+        gtk_tree_view_append_column (GTK_TREE_VIEW (this->priv->search_all_treeview), column);
+        search_all_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (this->priv->search_all_treeview));
+        search_all_names = lgl_db_get_template_name_list_all (NULL, page_size_id, NULL);
+        load_search_all_list (this, this->priv->search_all_store, search_all_selection, search_all_names);
+        lgl_db_free_template_name_list (search_all_names);
+
+        /* Custom templates treeview */
+        this->priv->custom_store = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_STRING);
+        gtk_tree_view_set_model (GTK_TREE_VIEW (this->priv->custom_treeview),
+                                 GTK_TREE_MODEL (this->priv->custom_store));
+        renderer = gtk_cell_renderer_pixbuf_new ();
+        column = gtk_tree_view_column_new_with_attributes ("", renderer,
+                                                           "pixbuf", PREVIEW_COLUMN,
+                                                           "stock-id", PREVIEW_COLUMN_STOCK,
+                                                           "stock-size", PREVIEW_COLUMN_STOCK_SIZE,
+                                                           NULL);
+        gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
+        gtk_tree_view_append_column (GTK_TREE_VIEW (this->priv->custom_treeview), column);
+        renderer = gtk_cell_renderer_text_new ();
+        column = gtk_tree_view_column_new_with_attributes ("", renderer,
+                                                           "markup", DESCRIPTION_COLUMN,
+                                                           NULL);
+        gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
+        gtk_tree_view_append_column (GTK_TREE_VIEW (this->priv->custom_treeview), column);
+        custom_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (this->priv->custom_treeview));
+        custom_list = lgl_db_get_template_name_list_all (NULL, NULL, "user-defined");
+        load_custom_list (this, this->priv->custom_store, custom_selection, custom_list);
+        lgl_db_free_template_name_list (custom_list);
+
+        page_size_id = gl_prefs_model_get_default_page_size (gl_prefs);
+        page_size_name = lgl_db_lookup_paper_name_from_id (page_size_id);
+
+        /* Connect signals to controls */
+        g_signal_connect_swapped (G_OBJECT (this->priv->brand_combo), "changed",
+                                  G_CALLBACK (filter_changed_cb),
+                                  this);
+        g_signal_connect_swapped (G_OBJECT (this->priv->page_size_combo), "changed",
+                                  G_CALLBACK (filter_changed_cb),
+                                  this);
+        g_signal_connect_swapped (G_OBJECT (this->priv->category_combo), "changed",
+                                  G_CALLBACK (filter_changed_cb),
+                                  this);
+        g_signal_connect (G_OBJECT (recent_selection), "changed",
+                          G_CALLBACK (selection_changed_cb),
+                          this);
+        g_signal_connect (G_OBJECT (search_all_selection), "changed",
+                          G_CALLBACK (selection_changed_cb),
+                          this);
+        g_signal_connect (G_OBJECT (custom_selection), "changed",
+                          G_CALLBACK (selection_changed_cb),
+                          this);
+        g_signal_connect (G_OBJECT (this->priv->custom_add_button), "clicked",
+                          G_CALLBACK (custom_add_clicked_cb),
+                          this);
+        g_signal_connect (G_OBJECT (this->priv->custom_edit_button), "clicked",
+                          G_CALLBACK (custom_edit_clicked_cb),
+                          this);
+        g_signal_connect (G_OBJECT (this->priv->custom_delete_button), "clicked",
+                          G_CALLBACK (custom_delete_clicked_cb),
+                          this);
+        g_signal_connect (G_OBJECT (this->priv->notebook), "switch-page",
+                          G_CALLBACK (page_changed_cb),
+                          this);
+
+        g_free (page_size_name);
+
+        if ( recent_list )
+        {
+                gtk_notebook_set_current_page (GTK_NOTEBOOK (this->priv->notebook),
+                                               this->priv->recent_page_num);
+        }
+        else
+        {
+                gtk_notebook_set_current_page (GTK_NOTEBOOK (this->priv->notebook),
+                                               this->priv->search_all_page_num);
+        }
+        gl_template_history_model_free_name_list (recent_list);
+
+        this->priv->db_notify_id = lgl_db_notify_add ((lglDbNotifyFunc)db_changed_cb, this);
+
+        gl_debug (DEBUG_MEDIA_SELECT, "END");
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  modify widget due to change in selection                       */
+/*--------------------------------------------------------------------------*/
+static void
+filter_changed_cb (glMediaSelect *this)
+{
+        gchar             *brand;
+        gchar             *page_size_name, *page_size_id;
+        gchar             *category_name, *category_id;
+        GList             *search_all_names;
+        GtkTreeSelection  *selection;
+
+        gl_debug (DEBUG_MEDIA_SELECT, "START");
+
+
+       this->priv->stop_signals = TRUE;
+
+        /* Update template selections for new filter settings */
+        brand = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (this->priv->brand_combo));
+        page_size_name = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (this->priv->page_size_combo));
+        category_name = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (this->priv->category_combo));
+        if ( brand && strlen(brand) &&
+             page_size_name && strlen(page_size_name) &&
+             category_name && strlen(category_name) )
+        {
+                gl_debug (DEBUG_MEDIA_SELECT, "brand = \"%s\"", brand);
+                gl_debug (DEBUG_MEDIA_SELECT, "page_size_name = \"%s\"", page_size_name);
+                gl_debug (DEBUG_MEDIA_SELECT, "category_name = \"%s\"", category_name);
+                if (!g_utf8_collate (brand, C_("Brand", "Any")))
+                {
+                        g_free (brand);
+                        brand = NULL;
+                }
+                page_size_id = lgl_db_lookup_paper_id_from_name (page_size_name);
+                category_id = lgl_db_lookup_category_id_from_name (category_name);
+                gl_debug (DEBUG_MEDIA_SELECT, "page_size_id = \"%s\"", page_size_id);
+                gl_debug (DEBUG_MEDIA_SELECT, "category_id = \"%s\"", category_id);
+                search_all_names = lgl_db_get_template_name_list_all (brand, page_size_id, category_id);
+                selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (this->priv->search_all_treeview));
+                load_search_all_list (this, this->priv->search_all_store, selection, search_all_names);
+                lgl_db_free_template_name_list (search_all_names);
+                g_free (page_size_id);
+                g_free (category_id);
+
+                /* Emit our "changed" signal */
+                g_signal_emit (G_OBJECT (this), signals[CHANGED], 0);
+        }
+        g_free (brand);
+        g_free (page_size_name);
+        g_free (category_name);
+
+
+       this->priv->stop_signals = FALSE;
+
+        gl_debug (DEBUG_MEDIA_SELECT, "END");
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  modify widget due to change in selection                       */
+/*--------------------------------------------------------------------------*/
+static void
+selection_changed_cb (GtkTreeSelection       *selection,
+                      gpointer                user_data)
+{
+        glMediaSelect     *this = GL_MEDIA_SELECT (user_data);
+        GtkTreeSelection  *custom_selection;
+
+       if (this->priv->stop_signals) return;
+
+        gl_debug (DEBUG_MEDIA_SELECT, "START");
+
+        custom_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (this->priv->custom_treeview));
+        gtk_widget_set_sensitive (GTK_WIDGET (this->priv->custom_edit_button),
+                                  gtk_tree_selection_get_mode (custom_selection) != GTK_SELECTION_NONE );
+        gtk_widget_set_sensitive (GTK_WIDGET (this->priv->custom_delete_button),
+                                  gtk_tree_selection_get_mode (custom_selection) != GTK_SELECTION_NONE );
+
+        /* Emit our "changed" signal */
+        g_signal_emit (G_OBJECT (user_data), signals[CHANGED], 0);
+
+        gl_debug (DEBUG_MEDIA_SELECT, "END");
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Custom add button clicked callback.                            */
+/*--------------------------------------------------------------------------*/
+static void
+custom_add_clicked_cb (GtkButton  *button,
+                       gpointer    user_data)
+{
+        glMediaSelect *this = GL_MEDIA_SELECT (user_data);
+        GtkWidget     *window;
+        GtkWidget     *dialog;
+
+        window = gtk_widget_get_toplevel (GTK_WIDGET (this));
+        
+        dialog = gl_template_designer_new (GTK_WINDOW (window));
+
+        gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+        gtk_widget_show (dialog);
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Custom edit button clicked callback.                           */
+/*--------------------------------------------------------------------------*/
+static void
+custom_edit_clicked_cb (GtkButton  *button,
+                        gpointer    user_data)
+{
+        glMediaSelect     *this = GL_MEDIA_SELECT (user_data);
+        GtkTreeSelection  *selection;
+        GtkTreeIter        iter;
+        GtkTreeModel      *model;
+        gchar             *name;
+        GtkWidget         *window;
+        GtkWidget         *dialog;
+
+        selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (this->priv->custom_treeview));
+
+        if (!gtk_tree_selection_get_mode (selection) == GTK_SELECTION_NONE)
+        {
+                gtk_tree_selection_get_selected (selection, &model, &iter);
+                gtk_tree_model_get (model, &iter, NAME_COLUMN, &name, -1);
+
+                window = gtk_widget_get_toplevel (GTK_WIDGET (this));
+
+                dialog = gl_template_designer_new (GTK_WINDOW (window));
+                gl_template_designer_set_from_name (GL_TEMPLATE_DESIGNER (dialog), name);
+
+                gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+                gtk_widget_show (dialog);
+
+                g_free (name);
+        }
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Custom delete button clicked callback.                         */
+/*--------------------------------------------------------------------------*/
+static void
+custom_delete_clicked_cb (GtkButton  *button,
+                          gpointer    user_data)
+{
+        glMediaSelect     *this = GL_MEDIA_SELECT (user_data);
+        GtkTreeSelection  *selection;
+        GtkTreeIter        iter;
+        GtkTreeModel      *model;        
+        gchar             *name;
+        GtkWidget         *window;
+        GtkWidget         *dialog;
+        gint               ret;
+
+       this->priv->stop_signals = TRUE;
+
+        selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (this->priv->custom_treeview));
+
+        if (!gtk_tree_selection_get_mode (selection) == GTK_SELECTION_NONE)
+        {
+                gtk_tree_selection_get_selected (selection, &model, &iter);
+                gtk_tree_model_get (model, &iter, NAME_COLUMN, &name, -1);
+
+                window = gtk_widget_get_toplevel (GTK_WIDGET (this));
+                dialog = gtk_message_dialog_new (GTK_WINDOW (window),
+                                                 GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
+                                                 GTK_MESSAGE_QUESTION,
+                                                 GTK_BUTTONS_YES_NO,
+                                                 _("Delete template \"%s\"?"), name);
+                gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
+                                                          _("This action will permanently delete this template."));
+
+                ret = gtk_dialog_run (GTK_DIALOG (dialog));
+                gtk_widget_destroy (dialog);
+                
+                if ( ret == GTK_RESPONSE_YES )
+                {
+                        lgl_db_delete_template_by_name (name);
+                        gl_mini_preview_pixbuf_cache_delete_by_name (name);
+                }
+
+                g_free (name);
+        }
+
+       this->priv->stop_signals = FALSE;
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  modify widget due to change in selection                       */
+/*--------------------------------------------------------------------------*/
+static void
+page_changed_cb (GtkNotebook            *notebook,
+                 GtkWidget              *page,
+                 guint                   page_num,
+                 gpointer                user_data)
+{
+        glMediaSelect *this = GL_MEDIA_SELECT (user_data);
+
+       if (this->priv->stop_signals) return;
+
+        gl_debug (DEBUG_MEDIA_SELECT, "START");
+
+        /*
+         * Store new current page, because this signal is emitted before the actual page change.
+         */
+       this->priv->current_page_num = page_num;
+
+        /* Emit our "changed" signal */
+        g_signal_emit (G_OBJECT (user_data), signals[CHANGED], 0);
+
+        gl_debug (DEBUG_MEDIA_SELECT, "END");
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  DB changed notification callback.                              */
+/*--------------------------------------------------------------------------*/
+static void
+db_changed_cb (glMediaSelect *this)
+{
+        gchar             *brand;
+        gchar             *page_size_name, *page_size_id;
+        gchar             *category_name, *category_id;
+        GtkTreeSelection  *selection;
+        GList             *list;
+
+       this->priv->stop_signals = TRUE;
+
+        /* Update recent page. */
+        selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (this->priv->recent_treeview));
+        list = gl_template_history_model_get_name_list (gl_template_history);
+        load_recent_list (this, this->priv->recent_store, selection, list);
+        lgl_db_free_template_name_list (list);
+
+        /* Update search all page. */
+        brand = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (this->priv->brand_combo));
+        page_size_name = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (this->priv->page_size_combo));
+        category_name = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (this->priv->category_combo));
+        if ( brand && strlen(brand) &&
+             page_size_name && strlen(page_size_name) &&
+             category_name && strlen(category_name) )
+        {
+                if (!g_utf8_collate (brand, C_("Brand", "Any")))
+                {
+                        g_free (brand);
+                        brand = NULL;
+                }
+                page_size_id = lgl_db_lookup_paper_id_from_name (page_size_name);
+                category_id = lgl_db_lookup_category_id_from_name (category_name);
+                list = lgl_db_get_template_name_list_all (brand, page_size_id, category_id);
+                selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (this->priv->search_all_treeview));
+                load_search_all_list (this, this->priv->search_all_store, selection, list);
+                lgl_db_free_template_name_list (list);
+                g_free (page_size_id);
+                g_free (category_id);
+        }
+        g_free (brand);
+        g_free (page_size_name);
+        g_free (category_name);
+
+        /* Update custom page. */
+        selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (this->priv->custom_treeview));
+        list = lgl_db_get_template_name_list_all (NULL, NULL, "user-defined");
+        load_custom_list (this, this->priv->custom_store, selection, list);
+        lgl_db_free_template_name_list (list);
+
+       this->priv->stop_signals = FALSE;
+
+        /* Emit our "changed" signal */
+        g_signal_emit (G_OBJECT (this), signals[CHANGED], 0);
+
+        filter_changed_cb (this);
+}
+
+
+/****************************************************************************/
+/* query selected label template name.                                      */
+/****************************************************************************/
+gchar *
+gl_media_select_get_name (glMediaSelect *this)
+{
+        gint               page_num;
+        GtkTreeSelection  *selection;
+        GtkTreeIter        iter;
+        GtkTreeModel      *model;        
+        gchar             *name;
+
+        gl_debug (DEBUG_MEDIA_SELECT, "START");
+
+        page_num = this->priv->current_page_num;
+        if (page_num == this->priv->recent_page_num)
+        {
+                selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (this->priv->recent_treeview));
+        }
+        else if (page_num == this->priv->search_all_page_num)
+        {
+                selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (this->priv->search_all_treeview));
+        }
+        else if (page_num == this->priv->custom_page_num)
+        {
+                selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (this->priv->custom_treeview));
+        }
+        else
+        {
+                g_print ("notebook page = %d\n", page_num);
+                g_assert_not_reached ();
+        }
+
+        if (gtk_tree_selection_get_mode (selection) == GTK_SELECTION_NONE)
+        {
+                name = NULL;
+        }
+        else
+        {
+                gtk_tree_selection_get_selected (selection, &model, &iter);
+                gtk_tree_model_get (model, &iter, NAME_COLUMN, &name, -1);
+        }
+
+        gl_debug (DEBUG_MEDIA_SELECT, "END");
+        return name;
+}
+
+
+/****************************************************************************/
+/* set selected label template name.                                        */
+/****************************************************************************/
+void
+gl_media_select_set_name (glMediaSelect *this,
+                          gchar         *name)
+{
+        GtkTreeSelection  *selection;
+        GtkTreeModel      *model;
+        GtkTreeIter        iter;
+        GtkTreePath       *path;
+        gchar             *name_i;
+        gboolean           flag;
+
+        gl_debug (DEBUG_MEDIA_SELECT, "START");
+
+        selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (this->priv->search_all_treeview));
+        g_return_if_fail (GTK_IS_TREE_SELECTION (selection));
+
+        model = GTK_TREE_MODEL (this->priv->search_all_store);
+
+        for ( flag = gtk_tree_model_get_iter_first (model, &iter);
+              flag;
+              flag = gtk_tree_model_iter_next(model, &iter) )
+        {
+                gtk_tree_model_get (model, &iter, NAME_COLUMN, &name_i, -1); 
+                if (lgl_str_utf8_casecmp(name, name_i) == 0)
+                {
+                        gtk_tree_selection_select_iter (selection, &iter);
+                        path = gtk_tree_model_get_path (model, &iter);
+                        gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (this->priv->search_all_treeview),
+                                                      path,
+                                                      NULL,
+                                                      TRUE, 0.5, 0.0);
+                        gtk_tree_path_free (path);
+                        break;
+                }
+        }
+
+        gl_debug (DEBUG_MEDIA_SELECT, "END");
+}
+
+
+/****************************************************************************/
+/* query current filter parameters.                                         */
+/****************************************************************************/
+void
+gl_media_select_get_filter_parameters (glMediaSelect  *this,
+                                       gchar         **page_size_id,
+                                       gchar         **category_id)
+{
+        gchar *page_size_name, *category_name;
+
+        gl_debug (DEBUG_MEDIA_SELECT, "");
+
+        g_free (*page_size_id);
+        g_free (*category_id);
+
+        page_size_name =
+                gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (this->priv->page_size_combo));
+
+        *page_size_id = lgl_db_lookup_paper_id_from_name (page_size_name);
+
+        category_name =
+                gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (this->priv->category_combo));
+
+        *category_id = lgl_db_lookup_category_id_from_name (category_name);
+
+        g_free (page_size_name);
+        g_free (category_name);
+}
+
+
+/****************************************************************************/
+/* set filter parameters.                                                   */
+/****************************************************************************/
+void
+gl_media_select_set_filter_parameters (glMediaSelect  *this,
+                                       const gchar    *page_size_id,
+                                       const gchar    *category_id)
+{
+        gchar *page_size_name;
+        gchar *category_name;
+
+        gl_debug (DEBUG_MEDIA_SELECT, "START");
+
+        page_size_name = lgl_db_lookup_paper_name_from_id (page_size_id);
+        if (page_size_name == NULL)
+        {
+                page_size_name = g_strdup (C_("Page size", "Any"));
+        }
+
+        gl_combo_util_set_active_text (GTK_COMBO_BOX (this->priv->page_size_combo),
+                                       page_size_name);
+
+        category_name = lgl_db_lookup_category_name_from_id (category_id);
+        if (category_name == NULL)
+        {
+                category_name = g_strdup (C_("Category", "Any"));
+        }
+
+        gl_combo_util_set_active_text (GTK_COMBO_BOX (this->priv->category_combo),
+                                       category_name);
+        g_free (page_size_name);
+        g_free (category_name);
+
+        gl_debug (DEBUG_MEDIA_SELECT, "END");
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Load list store from template name list.                       */
+/*--------------------------------------------------------------------------*/
+static void
+load_recent_list (glMediaSelect      *this,
+                  GtkListStore       *store,
+                  GtkTreeSelection   *selection,
+                  GList              *list)
+{
+        GList            *p;
+        GtkTreeIter       iter;
+        lglUnits          units;
+        lglTemplate      *template;
+        lglTemplateFrame *frame;
+        GdkPixbuf        *pixbuf;
+        gchar            *size;
+        gchar            *layout;
+        gchar            *description;
+
+        gl_debug (DEBUG_MEDIA_SELECT, "START");
+
+        gtk_list_store_clear (store);
+
+
+        if ( this->priv->recent_info_bar )
+        {
+                gtk_container_remove (GTK_CONTAINER (this->priv->recent_info_vbox),
+                                      this->priv->recent_info_bar);
+                this->priv->recent_info_bar = NULL;
+        }
+
+        if (list)
+        {
+
+                units = gl_prefs_model_get_units (gl_prefs);
+
+                for ( p=list; p!=NULL; p=p->next )
+                {
+
+                        gl_debug (DEBUG_MEDIA_SELECT, "p->data = \"%s\"", p->data);
+
+                        template = lgl_db_lookup_template_from_name (p->data);
+                        frame    = (lglTemplateFrame *)template->frames->data;
+                        pixbuf   = gl_mini_preview_pixbuf_cache_get_pixbuf (p->data);
+
+                        size     = lgl_template_frame_get_size_description (frame, units);
+                        layout   = lgl_template_frame_get_layout_description (frame);
+                        description = g_strdup_printf ("<b>%s: %s</b>\n%s\n%s",
+                                                       (gchar *)p->data,
+                                                       template->description,
+                                                       size,
+                                                       layout);
+                        g_free (size);
+                        g_free (layout);
+
+                        lgl_template_free (template);
+
+                        gtk_list_store_append (store, &iter);
+                        gtk_list_store_set (store, &iter,
+                                            NAME_COLUMN, p->data,
+                                            PREVIEW_COLUMN, pixbuf,
+                                            DESCRIPTION_COLUMN, description,
+                                            -1);
+
+                        g_object_unref (G_OBJECT (pixbuf));
+                        g_free (description);
+                }
+
+                gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE);
+                gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter);
+                gtk_tree_selection_select_iter (selection, &iter);
+
+        }
+        else
+        {
+                this->priv->recent_info_bar = gl_message_bar_new (GTK_MESSAGE_INFO, GTK_BUTTONS_NONE,
+                                                                  "%s", _("No recent templates found."));
+                gl_message_bar_format_secondary_text (GL_MESSAGE_BAR (this->priv->recent_info_bar),
+                                                      "%s", _("Try selecting a template in the \"Search all\" tab."));
+
+                gtk_box_pack_start (GTK_BOX (this->priv->recent_info_vbox),
+                                    this->priv->recent_info_bar,
+                                    FALSE, FALSE, 0);
+                gtk_widget_show_all (this->priv->recent_info_bar);
+
+                gtk_tree_selection_set_mode (selection, GTK_SELECTION_NONE);
+
+        }
+
+        gl_debug (DEBUG_MEDIA_SELECT, "END");
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Load list store from template name list.                       */
+/*--------------------------------------------------------------------------*/
+static void
+load_search_all_list (glMediaSelect      *this,
+                      GtkListStore       *store,
+                      GtkTreeSelection   *selection,
+                      GList              *list)
+{
+        GList            *p;
+        GtkTreeIter       iter;
+        lglUnits          units;
+        lglTemplate      *template;
+        lglTemplateFrame *frame;
+        GdkPixbuf        *pixbuf;
+        gchar            *size;
+        gchar            *layout;
+        gchar            *description;
+
+        gl_debug (DEBUG_MEDIA_SELECT, "START");
+
+        gtk_list_store_clear (store);
+
+        if ( this->priv->search_all_info_bar )
+        {
+                gtk_container_remove (GTK_CONTAINER (this->priv->search_all_info_vbox),
+                                      this->priv->search_all_info_bar);
+                this->priv->search_all_info_bar = NULL;
+        }
+
+        if (list)
+        {
+
+                units = gl_prefs_model_get_units (gl_prefs);
+
+                for ( p=list; p!=NULL; p=p->next )
+                {
+
+                        gl_debug (DEBUG_MEDIA_SELECT, "p->data = \"%s\"", p->data);
+
+                        template = lgl_db_lookup_template_from_name (p->data);
+                        frame    = (lglTemplateFrame *)template->frames->data;
+                        pixbuf   = gl_mini_preview_pixbuf_cache_get_pixbuf (p->data);
+
+                        size     = lgl_template_frame_get_size_description (frame, units);
+                        layout   = lgl_template_frame_get_layout_description (frame);
+                        description = g_strdup_printf ("<b>%s: %s</b>\n%s\n%s",
+                                                       (gchar *)p->data,
+                                                       template->description,
+                                                       size,
+                                                       layout);
+                        g_free (size);
+                        g_free (layout);
+
+                        lgl_template_free (template);
+
+                        gtk_list_store_append (store, &iter);
+                        gtk_list_store_set (store, &iter,
+                                            NAME_COLUMN, p->data,
+                                            PREVIEW_COLUMN, pixbuf,
+                                            DESCRIPTION_COLUMN, description,
+                                            -1);
+
+                        g_object_unref (G_OBJECT (pixbuf));
+                        g_free (description);
+                }
+
+                gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE);
+                gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter);
+                gtk_tree_selection_select_iter (selection, &iter);
+
+        }
+        else
+        {
+                /* Translators: "No match" means that for the given template search criteria, there
+                 * were no matches found. */
+                this->priv->search_all_info_bar = gl_message_bar_new (GTK_MESSAGE_INFO, GTK_BUTTONS_NONE, "%s", _("No match."));
+                gl_message_bar_format_secondary_text (GL_MESSAGE_BAR (this->priv->search_all_info_bar),
+                                                      "%s", _("Try selecting a different brand, page size or category."));
+
+                gtk_box_pack_start (GTK_BOX (this->priv->search_all_info_vbox),
+                                    this->priv->search_all_info_bar,
+                                    FALSE, FALSE, 0);
+                gtk_widget_show_all (this->priv->search_all_info_bar);
+
+                gtk_tree_selection_set_mode (selection, GTK_SELECTION_NONE);
+
+        }
+
+        gl_debug (DEBUG_MEDIA_SELECT, "END");
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Load list store from template name list.                       */
+/*--------------------------------------------------------------------------*/
+static void
+load_custom_list (glMediaSelect      *this,
+                  GtkListStore       *store,
+                  GtkTreeSelection   *selection,
+                  GList              *list)
+{
+        GList            *p;
+        GtkTreeIter       iter;
+        lglUnits          units;
+        lglTemplate      *template;
+        lglTemplateFrame *frame;
+        GdkPixbuf        *pixbuf;
+        gchar            *size;
+        gchar            *layout;
+        gchar            *description;
+
+        gl_debug (DEBUG_MEDIA_SELECT, "START");
+
+        gtk_list_store_clear (store);
+
+
+        if ( this->priv->custom_info_bar )
+        {
+                gtk_container_remove (GTK_CONTAINER (this->priv->custom_info_vbox),
+                                      this->priv->custom_info_bar);
+                this->priv->custom_info_bar = NULL;
+        }
+
+        if (list)
+        {
+
+                units = gl_prefs_model_get_units (gl_prefs);
+
+                for ( p=list; p!=NULL; p=p->next )
+                {
+
+                        gl_debug (DEBUG_MEDIA_SELECT, "p->data = \"%s\"", p->data);
+
+                        template = lgl_db_lookup_template_from_name (p->data);
+                        frame    = (lglTemplateFrame *)template->frames->data;
+                        pixbuf   = gl_mini_preview_pixbuf_cache_get_pixbuf (p->data);
+
+                        size     = lgl_template_frame_get_size_description (frame, units);
+                        layout   = lgl_template_frame_get_layout_description (frame);
+                        description = g_strdup_printf ("<b>%s: %s</b>\n%s\n%s",
+                                                       (gchar *)p->data,
+                                                       template->description,
+                                                       size,
+                                                       layout);
+                        g_free (size);
+                        g_free (layout);
+
+                        lgl_template_free (template);
+
+                        gtk_list_store_append (store, &iter);
+                        gtk_list_store_set (store, &iter,
+                                            NAME_COLUMN, p->data,
+                                            PREVIEW_COLUMN, pixbuf,
+                                            DESCRIPTION_COLUMN, description,
+                                            -1);
+
+                        g_object_unref (G_OBJECT (pixbuf));
+                        g_free (description);
+                }
+
+                gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE);
+                gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter);
+                gtk_tree_selection_select_iter (selection, &iter);
+
+                gtk_widget_set_sensitive (GTK_WIDGET (this->priv->custom_edit_button), TRUE);
+                gtk_widget_set_sensitive (GTK_WIDGET (this->priv->custom_delete_button), TRUE);
+        }
+        else
+        {
+                this->priv->custom_info_bar = gl_message_bar_new (GTK_MESSAGE_INFO,
+                                                                          GTK_BUTTONS_NONE,
+                                                                          "%s", _("No custom templates found."));
+                gl_message_bar_format_secondary_text (GL_MESSAGE_BAR (this->priv->custom_info_bar),
+                                                      "%s", _("You may create new templates or try searching for pre-defined templates in the \"Search all\" tab."));
+
+                gtk_box_pack_start (GTK_BOX (this->priv->custom_info_vbox),
+                                    this->priv->custom_info_bar,
+                                    FALSE, FALSE, 0);
+                gtk_widget_show_all (this->priv->custom_info_bar);
+
+                gtk_tree_selection_set_mode (selection, GTK_SELECTION_NONE);
+
+                gtk_widget_set_sensitive (GTK_WIDGET (this->priv->custom_edit_button), FALSE);
+                gtk_widget_set_sensitive (GTK_WIDGET (this->priv->custom_delete_button), FALSE);
+        }
+
+        gl_debug (DEBUG_MEDIA_SELECT, "END");
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/media-select.h b/src/media-select.h
new file mode 100644 (file)
index 0000000..603eeb8
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+ *  media-select.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __MEDIA_SELECT_H__
+#define __MEDIA_SELECT_H__
+
+#include <gtk/gtk.h>
+
+
+G_BEGIN_DECLS
+
+#define GL_TYPE_MEDIA_SELECT (gl_media_select_get_type ())
+#define GL_MEDIA_SELECT(obj) \
+        (G_TYPE_CHECK_INSTANCE_CAST((obj), GL_TYPE_MEDIA_SELECT, glMediaSelect ))
+#define GL_MEDIA_SELECT_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_MEDIA_SELECT, glMediaSelectClass))
+#define GL_IS_MEDIA_SELECT(obj) \
+        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_MEDIA_SELECT))
+#define GL_IS_MEDIA_SELECT_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_MEDIA_SELECT))
+
+typedef struct _glMediaSelect         glMediaSelect;
+typedef struct _glMediaSelectClass    glMediaSelectClass;
+
+typedef struct _glMediaSelectPrivate  glMediaSelectPrivate;
+
+struct _glMediaSelect {
+        GtkVBox                    parent_widget;
+
+        glMediaSelectPrivate  *priv;
+};
+
+struct _glMediaSelectClass {
+        GtkVBoxClass               parent_class;
+
+        void (*changed) (glMediaSelect *media_select, gpointer user_data);
+};
+
+
+GType      gl_media_select_get_type      (void) G_GNUC_CONST;
+
+GtkWidget *gl_media_select_new           (void);
+
+gchar     *gl_media_select_get_name      (glMediaSelect *this);
+
+void       gl_media_select_set_name      (glMediaSelect *this,
+                                          gchar         *name);
+
+void       gl_media_select_get_filter_parameters (glMediaSelect *this,
+                                                  gchar        **page_size_id,
+                                                  gchar        **category_id);
+
+void       gl_media_select_set_filter_parameters (glMediaSelect *this,
+                                                  const gchar   *page_size_id,
+                                                  const gchar   *category_id);
+
+G_END_DECLS
+
+#endif
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index bf99e1bb8a81565c0f715e95d5fac3b44555b1ae..bd1448338f94bc469599340e4952d162dd51add9 100644 (file)
@@ -1,29 +1,25 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  merge_evolution.c:  evolution merge backend module
- *
- *  Copyright (C) 2001  Jim Evins <evins@snaught.com>.
+ *  merge-evolution.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *  and
  *  Copyright (C) 2005  Austin Henry <ahenry@users.sourceforge.net>
  *  and
  *  Copyright (C) 2007  Peter Cherriman <glabels-devel2712@bubieyehyeh.me.uk>
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 #include <glib/gi18n.h>
 #include <stdio.h>
 #include <string.h>
-#include <libglabels/str.h>
+
+#include <libglabels.h>
 
 #include "debug.h"
 
 #define DEFAULT_QUERY "(exists \"full_name\")"
 
+
 /*===========================================*/
 /* Private types                             */
 /*===========================================*/
@@ -60,9 +58,10 @@ enum {
 
 enum {
         ARG_0,
-        ARG_QUERY,
+        ARG_QUERY
 };
 
+
 /*===========================================*/
 /* Private globals                           */
 /*===========================================*/
@@ -83,22 +82,22 @@ static void           gl_merge_evolution_get_property    (GObject          *obje
                                                           GValue           *value,
                                                           GParamSpec       *pspec);
 
-static GList         *gl_merge_evolution_get_key_list    (glMerge          *merge);
-static gchar         *gl_merge_evolution_get_primary_key (glMerge          *merge);
+static GList         *gl_merge_evolution_get_key_list    (const glMerge    *merge);
+static gchar         *gl_merge_evolution_get_primary_key (const glMerge    *merge);
 static void           gl_merge_evolution_open            (glMerge          *merge);
 static void           gl_merge_evolution_close           (glMerge          *merge);
 static glMergeRecord *gl_merge_evolution_get_record      (glMerge          *merge);
 static void           gl_merge_evolution_copy            (glMerge          *dst_merge,
-                                                          glMerge          *src_merge);
+                                                          const glMerge    *src_merge);
 
 /* utility function prototypes go here */
 static void           free_field_list                    (GList *fields);
 
-\f
+
 /*****************************************************************************/
 /* Boilerplate object stuff.                                                 */
 /*****************************************************************************/
-G_DEFINE_TYPE (glMergeEvolution, gl_merge_evolution, GL_TYPE_MERGE);
+G_DEFINE_TYPE (glMergeEvolution, gl_merge_evolution, GL_TYPE_MERGE)
 
 static void
 gl_merge_evolution_class_init (glMergeEvolutionClass *class)
@@ -133,6 +132,7 @@ gl_merge_evolution_class_init (glMergeEvolutionClass *class)
         gl_debug (DEBUG_MERGE, "END");
 }
 
+
 static void
 gl_merge_evolution_init (glMergeEvolution *merge_evolution)
 {
@@ -144,6 +144,7 @@ gl_merge_evolution_init (glMergeEvolution *merge_evolution)
         gl_debug (DEBUG_MERGE, "END");
 }
 
+
 static void
 gl_merge_evolution_finalize (GObject *object)
 {
@@ -162,6 +163,7 @@ gl_merge_evolution_finalize (GObject *object)
         gl_debug (DEBUG_MERGE, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* Set argument.                                                            */
 /*--------------------------------------------------------------------------*/
@@ -192,6 +194,7 @@ gl_merge_evolution_set_property (GObject      *object,
 
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* Get argument.                                                            */
 /*--------------------------------------------------------------------------*/
@@ -219,11 +222,12 @@ gl_merge_evolution_get_property (GObject     *object,
 
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* Get key list.                                                            */
 /*--------------------------------------------------------------------------*/
 static GList *
-gl_merge_evolution_get_key_list (glMerge *merge)
+gl_merge_evolution_get_key_list (const glMerge *merge)
 {
         glMergeEvolution   *merge_evolution;
         GList              *key_list = NULL;
@@ -250,43 +254,46 @@ gl_merge_evolution_get_key_list (glMerge *merge)
         return key_list;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* Get "primary" key.                                                       */
 /*--------------------------------------------------------------------------*/
 static gchar *
-gl_merge_evolution_get_primary_key (glMerge *merge)
+gl_merge_evolution_get_primary_key (const glMerge *merge)
 {
         return g_strdup (e_contact_pretty_name(E_CONTACT_FILE_AS));
 }
 
+
 /* Sort compare function for sorting contacts by file-as element
  * by Peter Cherriman (PJC)
  * called by GList* g_list_sort(GList *list, sort_contact_by_file_as);
  */
 static gint sort_contact_by_file_as(gconstpointer *a, gconstpointer *b)
 {
-  /* 
-   * Returns :         negative value if a < b; zero if a = b; positive value if a > b 
-   */
+        /*
+         * Returns :   negative value if a < b; zero if a = b; positive value if a > b 
+         */
 
-  // Check and cast a and b to EContact
-  EContact *contact_a = E_CONTACT(a);
-  EContact *contact_b = E_CONTACT(b);
+        /* Check and cast a and b to EContact */
+        EContact *contact_a = E_CONTACT(a);
+        EContact *contact_b = E_CONTACT(b);
 
-  // Extract file_as for each contact and compare...
-  gchar *a_file_as = e_contact_get (contact_a, E_CONTACT_FILE_AS);
-  gchar *b_file_as = e_contact_get (contact_b, E_CONTACT_FILE_AS);
-  gint res = lgl_str_utf8_casecmp(a_file_as, b_file_as);
+        /* Extract file_as for each contact and compare... */
+        gchar *a_file_as = e_contact_get (contact_a, E_CONTACT_FILE_AS);
+        gchar *b_file_as = e_contact_get (contact_b, E_CONTACT_FILE_AS);
+        gint res = lgl_str_utf8_casecmp(a_file_as, b_file_as);
 
-  gl_debug(DEBUG_MERGE, "Sort comparing contacts '%s' and '%s' = %d", a_file_as, b_file_as, res);
+        gl_debug(DEBUG_MERGE, "Sort comparing contacts '%s' and '%s' = %d", a_file_as, b_file_as, res);
 
-  // free file_as strings created earlier....
-  g_free (a_file_as);
-  g_free (b_file_as);
+        /* free file_as strings created earlier.... */
+        g_free (a_file_as);
+        g_free (b_file_as);
 
-  return res;
+        return res;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* Open merge source.                                                       */
 /*--------------------------------------------------------------------------*/
@@ -306,13 +313,13 @@ gl_merge_evolution_open (glMerge *merge)
 
         query = e_book_query_from_string(merge_evolution->priv->query);
         if (!query) {
-                g_warning (_("Couldn't construct query"));
+                g_warning ("Couldn't construct query");
                 return;
         }
 
         merge_evolution->priv->book = e_book_new_system_addressbook(&error);
         if (!merge_evolution->priv->book) {
-                g_warning (_("Couldn't open addressbook."));
+                g_warning ("Couldn't open addressbook.");
                 if (error)
                 {
                         g_warning ("e_book_new_system_addressbook: %s", error->message);
@@ -323,7 +330,7 @@ gl_merge_evolution_open (glMerge *merge)
         }
 
         if (!e_book_open(merge_evolution->priv->book, FALSE, &error)) {
-                g_warning (_("Couldn't open addressbook."));
+                g_warning ("Couldn't open addressbook.");
                 if (error)
                 {
                         g_warning ("e_book_open: %s", error->message);
@@ -338,7 +345,7 @@ gl_merge_evolution_open (glMerge *merge)
         /* fetch the list of fields supported by this address book */
         status = e_book_get_supported_fields(merge_evolution->priv->book, &fields, &error);
         if (status == FALSE) {
-                g_warning (_("Couldn't list available fields."));
+                g_warning ("Couldn't list available fields.");
                 if (error)
                 {
                         g_warning ("e_book_get_supported_fields: %s", error->message);
@@ -356,7 +363,7 @@ gl_merge_evolution_open (glMerge *merge)
                 *field_id = e_contact_field_id(iter->data);
 
                 /* above this value, the data aren't strings anymore */
-                if (*field_id >= E_CONTACT_LAST_SIMPLE_STRING) {
+                if (*field_id > E_CONTACT_LAST_SIMPLE_STRING) {
                         g_free (field_id);
                         continue;
                 }
@@ -374,7 +381,7 @@ gl_merge_evolution_open (glMerge *merge)
                                       &merge_evolution->priv->contacts,
                                       &error);
         if (status == FALSE) {
-                g_warning (_("Couldn't get contacts."));
+                g_warning ("Couldn't get contacts.");
                 if (error)
                 {
                         g_warning ("e_book_get_contacts: %s", error->message);
@@ -402,6 +409,7 @@ gl_merge_evolution_open (glMerge *merge)
         return;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* Close merge source.                                                      */
 /*--------------------------------------------------------------------------*/
@@ -429,6 +437,7 @@ gl_merge_evolution_close (glMerge *merge)
         merge_evolution->priv->contacts = NULL;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* Get next record from merge source, NULL if no records left (i.e EOF)     */
 /*--------------------------------------------------------------------------*/
@@ -486,20 +495,21 @@ gl_merge_evolution_get_record (glMerge *merge)
         return record;
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* Copy merge_evolution specific fields.                                     */
 /*---------------------------------------------------------------------------*/
 static void
-gl_merge_evolution_copy (glMerge *dst_merge,
-                    glMerge *src_merge)
+gl_merge_evolution_copy (glMerge       *dst_merge,
+                         const glMerge *src_merge)
 {
         GList *src_iter, *dst_iter;
 
-        gl_debug (DEBUG_MERGE, "BEGIN");
-
         glMergeEvolution *dst_merge_evolution;
         glMergeEvolution *src_merge_evolution;
 
+        gl_debug (DEBUG_MERGE, "BEGIN");
+
         dst_merge_evolution = GL_MERGE_EVOLUTION (dst_merge);
         src_merge_evolution = GL_MERGE_EVOLUTION (src_merge);
 
@@ -524,6 +534,7 @@ gl_merge_evolution_copy (glMerge *dst_merge,
         gl_debug (DEBUG_MERGE, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* Free the list of supported fields                                         */
 /*---------------------------------------------------------------------------*/
@@ -544,3 +555,14 @@ free_field_list (GList *fields)
 
 
 #endif /* HAVE_LIBEBOOK */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 26468abc1baea3c12d88c9018fe1fb08fc5eb23e..f49d1b460f277b8f3a8aed531578f83166e58a85 100644 (file)
@@ -1,28 +1,25 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  merge_evolution.h:  evolution merge backend module header file
- *
- *  Copyright (C) 2002  Jim Evins <evins@snaught.com>.
+ *  merge-evolution.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *  and
  *  Copyright (C) 2005  Austin Henry <ahenry@users.sourceforge.net>
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #ifndef __MERGE_EVOLUTION_H__
 #define __MERGE_EVOLUTION_H__
 
@@ -68,3 +65,14 @@ GType             gl_merge_evolution_get_type            (void) G_GNUC_CONST;
 G_END_DECLS
 
 #endif /* __MERGE_EVOLUTION_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index b62551bede5bb91bf5f7c5adc4da36f001294218..f8f02d6fe683aebe3f960f55d630e992371d0d46 100644 (file)
@@ -1,32 +1,30 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  merge.c:  document merge initialization
+ *  merge-init.c
+ *  Copyright (C) 2002-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include <glib/gi18n.h>
 
 #include "merge-init.h"
 #include "merge-text.h"
+
 #ifdef HAVE_LIBEBOOK
 #include "merge-evolution.h"
 #include "merge-vcard.h"
@@ -56,39 +54,89 @@ gl_merge_init (void)
 
        gl_merge_register_backend (GL_TYPE_MERGE_TEXT,
                                   "Text/Comma",
-                                  _("Text file with comma delimeters (CSV)"),
+                                  _("Text: Comma Separated Values (CSV)"),
                                   GL_MERGE_SRC_IS_FILE,
                                   "delim", ',',
                                   NULL);
 
        gl_merge_register_backend (GL_TYPE_MERGE_TEXT,
-                                  "Text/Colon",
-                                  _("Text file with colon delimeters"),
+                                  "Text/Comma/Line1Keys",
+                                  _("Text: Comma Separated Values (CSV) with keys on line 1"),
                                   GL_MERGE_SRC_IS_FILE,
-                                  "delim", ':',
+                                  "delim", ',',
+                                   "line1_has_keys", TRUE,
                                   NULL);
 
        gl_merge_register_backend (GL_TYPE_MERGE_TEXT,
                                   "Text/Tab",
-                                  _("Text file with tab delimeters"),
+                                  _("Text: Tab Separated Values (TSV)"),
                                   GL_MERGE_SRC_IS_FILE,
                                   "delim", '\t',
                                   NULL);
 
+       gl_merge_register_backend (GL_TYPE_MERGE_TEXT,
+                                  "Text/Tab/Line1Keys",
+                                  _("Text: Tab Separated Values (TSV) with keys on line 1"),
+                                  GL_MERGE_SRC_IS_FILE,
+                                  "delim", '\t',
+                                   "line1_has_keys", TRUE,
+                                  NULL);
+
+       gl_merge_register_backend (GL_TYPE_MERGE_TEXT,
+                                  "Text/Colon",
+                                  _("Text: Colon separated values"),
+                                  GL_MERGE_SRC_IS_FILE,
+                                  "delim", ':',
+                                  NULL);
+
+       gl_merge_register_backend (GL_TYPE_MERGE_TEXT,
+                                  "Text/Colon/Line1Keys",
+                                  _("Text: Colon separated values with keys on line 1"),
+                                  GL_MERGE_SRC_IS_FILE,
+                                  "delim", ':',
+                                   "line1_has_keys", TRUE,
+                                  NULL);
+
+        gl_merge_register_backend (GL_TYPE_MERGE_TEXT,
+                                   "Text/Semicolon",
+                                   _("Text: Semicolon separated values"),
+                                   GL_MERGE_SRC_IS_FILE,
+                                   "delim", ';',
+                                   NULL);
+
+        gl_merge_register_backend (GL_TYPE_MERGE_TEXT,
+                                   "Text/Semicolon/Line1Keys",
+                                   _("Text: Semicolon separated values with keys on line 1"),
+                                   GL_MERGE_SRC_IS_FILE,
+                                   "delim", ';',
+                                   "line1_has_keys", TRUE,
+                                   NULL);
+
 #ifdef HAVE_LIBEBOOK
 
        gl_merge_register_backend (GL_TYPE_MERGE_EVOLUTION,
                                   "ebook/eds",
-                                  _("Data from default Evolution Addressbook"),
+                                  _("Evolution Addressbook"),
                                   GL_MERGE_SRC_IS_FIXED,
                                   NULL);
 
        gl_merge_register_backend (GL_TYPE_MERGE_VCARD,
                                   "ebook/vcard",
-                                  _("Data from a file containing VCards"),
+                                  _("VCards"),
                                   GL_MERGE_SRC_IS_FILE,
                                   NULL);
 
 #endif /* HAVE_LIBEBOOK */
 
 }
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 7bd57eefb730d5d0eeb87f17aca9697e359d2b85..3e281bf790c85630561b0f23e79946a814a29a6f 100644 (file)
@@ -1,26 +1,23 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  merge-init.h:  document merge initialization header file
+ *  merge-init.h
+ *  Copyright (C) 2002-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #ifndef __MERGE_INIT_H__
 #define __MERGE_INIT_H__
 
@@ -33,3 +30,14 @@ void gl_merge_init (void);
 G_END_DECLS
 
 #endif
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index d5f3508ddb8dc136bdd738c056705e7d3d8dfb4f..064223b055e849a0186c7a74e2721f15e6e07c6f 100644 (file)
@@ -1,49 +1,39 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  merge-properties-dialog.c:  document merge properties dialog module
+ *  merge-properties-dialog.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "merge-properties-dialog.h"
 
 #include <glib/gi18n.h>
-#include <glade/glade-xml.h>
-#include <gtk/gtkfilechooserbutton.h>
-#include <gtk/gtkcombobox.h>
-#include <gtk/gtkstock.h>
-#include <gtk/gtktreestore.h>
-#include <gtk/gtktreeselection.h>
-#include <gtk/gtkcellrenderertoggle.h>
-#include <gtk/gtkcellrenderertext.h>
-#include <gtk/gtklabel.h>
+#include <gtk/gtk.h>
 #include <string.h>
 
 #include "label.h"
 #include "merge.h"
-#include "util.h"
-#include "hig.h"
+#include "combo-util.h"
+#include "builder-util.h"
 
 #include "debug.h"
 
+
 /*===========================================*/
 /* Private data types                        */
 /*===========================================*/
@@ -53,6 +43,9 @@ struct _glMergePropertiesDialogPrivate {
        glLabel      *label;
        glMerge      *merge;
 
+        GtkBuilder   *builder;
+
+       GtkWidget    *type_combo_hbox;
        GtkWidget    *type_combo;
        GtkWidget    *location_vbox;
        GtkWidget    *src_entry;
@@ -63,6 +56,8 @@ struct _glMergePropertiesDialogPrivate {
        GtkWidget    *select_all_button;
        GtkWidget    *unselect_all_button;
 
+        GtkWidget    *ok_button;
+
        gchar        *saved_src;
 
 };
@@ -80,6 +75,7 @@ enum {
        N_COLUMNS
 };
 
+
 /*===========================================*/
 /* Private globals                           */
 /*===========================================*/
@@ -117,12 +113,16 @@ static void select_all_button_clicked_cb          (GtkWidget
 static void unselect_all_button_clicked_cb        (GtkWidget                    *widget,
                                                   glMergePropertiesDialog      *dialog);
 
-\f
+
 /*****************************************************************************/
 /* Boilerplate object stuff.                                                 */
 /*****************************************************************************/
-G_DEFINE_TYPE (glMergePropertiesDialog, gl_merge_properties_dialog, GTK_TYPE_DIALOG);
+G_DEFINE_TYPE (glMergePropertiesDialog, gl_merge_properties_dialog, GTK_TYPE_DIALOG)
+
 
+/*****************************************************************************/
+/* Class Init Function.                                                      */
+/*****************************************************************************/
 static void
 gl_merge_properties_dialog_class_init (glMergePropertiesDialogClass *class)
 {
@@ -135,30 +135,66 @@ gl_merge_properties_dialog_class_init (glMergePropertiesDialogClass *class)
        object_class->finalize = gl_merge_properties_dialog_finalize;   
 }
 
+
+/*****************************************************************************/
+/* Object Instance Init Function.                                            */
+/*****************************************************************************/
 static void
 gl_merge_properties_dialog_init (glMergePropertiesDialog *dialog)
 {
+        gchar             *builder_filename;
+       GtkBuilder        *builder;
+        static gchar      *object_ids[] = { "merge_properties_vbox", NULL };
+        GError            *error = NULL;
+       GtkWidget         *vbox;
+       GtkWidget         *merge_properties_vbox;
+
        gl_debug (DEBUG_MERGE, "START");
 
        dialog->priv = g_new0 (glMergePropertiesDialogPrivate, 1);
 
-       gtk_container_set_border_width (GTK_CONTAINER(dialog), GL_HIG_PAD2);
+        vbox = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
 
-       gtk_dialog_set_has_separator (GTK_DIALOG(dialog), FALSE);
-       gtk_dialog_add_buttons (GTK_DIALOG (dialog),
-                               GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-                               GTK_STOCK_OK, GTK_RESPONSE_OK,
-                               NULL);
+       gtk_dialog_add_button (GTK_DIALOG (dialog),
+                               GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
+       dialog->priv->ok_button = gtk_dialog_add_button (GTK_DIALOG (dialog),
+                                                         GTK_STOCK_OK, GTK_RESPONSE_OK);
 
        gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK);
 
-       g_signal_connect(G_OBJECT (dialog), "response",
-                        G_CALLBACK (response_cb), NULL);
+        builder = gtk_builder_new ();
+        builder_filename = g_build_filename (GLABELS_DATA_DIR, "ui", "merge-properties-dialog.ui", NULL);
+        gtk_builder_add_objects_from_file (builder, builder_filename, object_ids, &error);
+        g_free (builder_filename);
+       if (error) {
+               g_critical ("%s\n\ngLabels may not be installed correctly!", error->message);
+                g_error_free (error);
+               return;
+       }
+
+        gl_builder_util_get_widgets (builder,
+                                     "merge_properties_vbox", &merge_properties_vbox,
+                                     "type_combo_hbox",       &dialog->priv->type_combo_hbox,
+                                     "location_vbox",         &dialog->priv->location_vbox,
+                                     "treeview",              &dialog->priv->treeview,
+                                     "select_all_button",     &dialog->priv->select_all_button,
+                                     "unselect_all_button",   &dialog->priv->unselect_all_button,
+                                     NULL);
 
+       gtk_container_add (GTK_CONTAINER (vbox), merge_properties_vbox);
+        dialog->priv->builder = builder;
+
+        dialog->priv->type_combo = gtk_combo_box_text_new ();
+        gtk_box_pack_start (GTK_BOX (dialog->priv->type_combo_hbox), dialog->priv->type_combo, TRUE, TRUE, 0);
+       gtk_widget_show_all (GTK_WIDGET (dialog->priv->type_combo));
 
        gl_debug (DEBUG_MERGE, "END");
 }
 
+
+/*****************************************************************************/
+/* Finalize Function.                                                        */
+/*****************************************************************************/
 static void 
 gl_merge_properties_dialog_finalize (GObject *object)
 {
@@ -173,12 +209,16 @@ gl_merge_properties_dialog_finalize (GObject *object)
        if (dialog->priv->merge != NULL) {
                g_object_unref (G_OBJECT (dialog->priv->merge));
        }
+       if (dialog->priv->builder != NULL) {
+               g_object_unref (G_OBJECT (dialog->priv->builder));
+       }
        g_free (dialog->priv);
 
        G_OBJECT_CLASS (gl_merge_properties_dialog_parent_class)->finalize (object);
        gl_debug (DEBUG_MERGE, "END");
 }
 
+
 /*****************************************************************************/
 /* NEW merge properties dialog.                                              */
 /*****************************************************************************/
@@ -200,6 +240,7 @@ gl_merge_properties_dialog_new (glLabel   *label,
        return dialog;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Create merge widgets.                                          */
 /*--------------------------------------------------------------------------*/
@@ -208,13 +249,11 @@ gl_merge_properties_dialog_construct (glMergePropertiesDialog *dialog,
                                      glLabel                 *label,
                                      GtkWindow               *window)
 {
-       GladeXML          *gui;
        gchar             *description;
        glMergeSrcType     src_type;
        gchar             *src;
        gchar             *name, *title;
        GList             *texts;
-       GtkWidget         *vbox;
        GtkCellRenderer   *renderer;
        GtkTreeViewColumn *column;
        GtkTreeSelection  *selection;
@@ -229,28 +268,6 @@ gl_merge_properties_dialog_construct (glMergePropertiesDialog *dialog,
                gtk_window_set_destroy_with_parent (GTK_WINDOW(dialog), TRUE);
        }
 
-       gui = glade_xml_new (GLABELS_GLADE_DIR "merge-properties-dialog.glade",
-                             "merge_properties_vbox", NULL);
-
-       if (!gui) {
-               g_critical ("Could not open merge-properties-dialog.glade. gLabels may not be installed correctly!");
-               return;
-       }
-
-       vbox = glade_xml_get_widget (gui, "merge_properties_vbox");
-       gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), vbox);
-
-       dialog->priv->type_combo    = glade_xml_get_widget (gui, "type_combo");
-       dialog->priv->location_vbox = glade_xml_get_widget (gui, "location_vbox");
-       dialog->priv->treeview      = glade_xml_get_widget (gui, "treeview");
-
-       dialog->priv->select_all_button   = glade_xml_get_widget (gui, "select_all_button");
-       dialog->priv->unselect_all_button = glade_xml_get_widget (gui, "unselect_all_button");
-
-        g_object_unref (gui);
-
-       gl_util_combo_box_add_text_model (GTK_COMBO_BOX (dialog->priv->type_combo));
-
        dialog->priv->label = label;
 
        dialog->priv->merge = gl_label_get_merge (dialog->priv->label);
@@ -274,11 +291,9 @@ gl_merge_properties_dialog_construct (glMergePropertiesDialog *dialog,
                        gl_debug (DEBUG_MERGE, "    \"%s\"", p->data);
                }
        }
-       gl_util_combo_box_set_strings (GTK_COMBO_BOX (dialog->priv->type_combo),
-                                      texts);
+       gl_combo_util_set_strings (GTK_COMBO_BOX_TEXT (dialog->priv->type_combo), texts);
        gl_merge_free_descriptions (&texts);
-       gl_util_combo_box_set_active_text (GTK_COMBO_BOX (dialog->priv->type_combo),
-                                          description);
+       gl_combo_util_set_active_text (GTK_COMBO_BOX (dialog->priv->type_combo), description);
        g_signal_connect (G_OBJECT (dialog->priv->type_combo), "changed",
                          G_CALLBACK (type_changed_cb), dialog);
 
@@ -290,6 +305,8 @@ gl_merge_properties_dialog_construct (glMergePropertiesDialog *dialog,
                                                     GTK_FILE_CHOOSER_ACTION_OPEN);
                gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (dialog->priv->src_entry),
                                               src);
+                gtk_file_chooser_button_set_focus_on_click (GTK_FILE_CHOOSER_BUTTON (dialog->priv->src_entry),
+                                                            FALSE);
                g_signal_connect (G_OBJECT (dialog->priv->src_entry),
                                  "selection-changed",
                                  G_CALLBACK (src_changed_cb), dialog);
@@ -325,10 +342,9 @@ gl_merge_properties_dialog_construct (glMergePropertiesDialog *dialog,
                                                           "active", SELECT_COLUMN,
                                                           "visible", IS_RECORD_COLUMN,
                                                           NULL);
-       gtk_tree_view_column_set_clickable (column, TRUE);
        gtk_tree_view_append_column (GTK_TREE_VIEW (dialog->priv->treeview), column);
        renderer = gtk_cell_renderer_text_new ();
-       gtk_object_set (GTK_OBJECT (renderer), "yalign", 0.0, NULL);
+       g_object_set (G_OBJECT (renderer), "yalign", 0.0, NULL);
        column = gtk_tree_view_column_new_with_attributes (_("Record/Field"), renderer,
                                                           "text", RECORD_FIELD_COLUMN,
                                                           NULL);
@@ -336,7 +352,7 @@ gl_merge_properties_dialog_construct (glMergePropertiesDialog *dialog,
        gtk_tree_view_append_column (GTK_TREE_VIEW (dialog->priv->treeview), column);
        gtk_tree_view_set_expander_column (GTK_TREE_VIEW (dialog->priv->treeview), column);
        renderer = gtk_cell_renderer_text_new ();
-       gtk_object_set (GTK_OBJECT (renderer), "yalign", 0.0, NULL);
+       g_object_set (G_OBJECT (renderer), "yalign", 0.0, NULL);
        column = gtk_tree_view_column_new_with_attributes (_("Data"), renderer,
                                                           "text", VALUE_COLUMN,
                                                           NULL);
@@ -357,9 +373,16 @@ gl_merge_properties_dialog_construct (glMergePropertiesDialog *dialog,
 
         gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);
 
+        gtk_widget_grab_focus (dialog->priv->ok_button);
+        gtk_widget_grab_default (dialog->priv->ok_button);
+
+       g_signal_connect(G_OBJECT (dialog), "response",
+                        G_CALLBACK (response_cb), NULL);
+
        gl_debug (DEBUG_MERGE, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  type "changed" callback.                                       */
 /*--------------------------------------------------------------------------*/
@@ -374,7 +397,7 @@ type_changed_cb (GtkWidget               *widget,
 
        gl_debug (DEBUG_MERGE, "START");
 
-       description = gtk_combo_box_get_active_text (GTK_COMBO_BOX (dialog->priv->type_combo));
+       description = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (dialog->priv->type_combo));
        name = gl_merge_description_to_name (description);
 
        src = gl_merge_get_src (dialog->priv->merge); /* keep current src if possible */
@@ -396,6 +419,8 @@ type_changed_cb (GtkWidget               *widget,
                dialog->priv->src_entry =
                        gtk_file_chooser_button_new (_("Select merge-database source"),
                                                     GTK_FILE_CHOOSER_ACTION_OPEN);
+                gtk_file_chooser_button_set_focus_on_click (GTK_FILE_CHOOSER_BUTTON (dialog->priv->src_entry),
+                                                            FALSE);
                if (dialog->priv->saved_src != NULL) {
                        gl_debug (DEBUG_MERGE, "Setting src = \"%s\"", dialog->priv->saved_src);
                        gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (dialog->priv->src_entry),
@@ -407,6 +432,10 @@ type_changed_cb (GtkWidget               *widget,
                                  G_CALLBACK (src_changed_cb), dialog);
                break;
        case GL_MERGE_SRC_IS_FIXED:
+                /* Translators: "Fixed" here means that for the given document-merge method, there are
+                 * no further choices to further define the source of data.  E.g. if you select the
+                 * evolution-data-server, there are no further choices -- the source is "Fixed."
+                 */
                dialog->priv->src_entry = gtk_label_new (_("Fixed"));
                gtk_misc_set_alignment (GTK_MISC (dialog->priv->src_entry), 0.0, 0.5);
 
@@ -430,6 +459,7 @@ type_changed_cb (GtkWidget               *widget,
        gl_debug (DEBUG_MERGE, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  source "changed" callback.                                     */
 /*--------------------------------------------------------------------------*/
@@ -461,6 +491,7 @@ src_changed_cb (GtkWidget               *widget,
        gl_debug (DEBUG_MERGE, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  response callback.                                             */
 /*--------------------------------------------------------------------------*/
@@ -474,7 +505,7 @@ response_cb (glMergePropertiesDialog *dialog,
        switch (response) {
 
        case GTK_RESPONSE_OK:
-               gl_label_set_merge (dialog->priv->label, dialog->priv->merge);
+               gl_label_set_merge (dialog->priv->label, dialog->priv->merge, TRUE);
                gtk_widget_hide (GTK_WIDGET (dialog));
                break;
        case GTK_RESPONSE_CANCEL:
@@ -491,6 +522,7 @@ response_cb (glMergePropertiesDialog *dialog,
        gl_debug (DEBUG_MERGE, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Load tree store from merge data.                               */
 /*--------------------------------------------------------------------------*/
@@ -545,6 +577,7 @@ load_tree (GtkTreeStore           *store,
        gl_debug (DEBUG_MERGE, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Record select toggled.                                         */
 /*--------------------------------------------------------------------------*/
@@ -582,6 +615,7 @@ record_select_toggled_cb (GtkCellRendererToggle *cell,
        gl_debug (DEBUG_MERGE, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  "Select All" button callback.                                  */
 /*--------------------------------------------------------------------------*/
@@ -620,6 +654,7 @@ select_all_button_clicked_cb (GtkWidget                    *widget,
        gl_debug (DEBUG_MERGE, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  "Unselect All" button callback.                                */
 /*--------------------------------------------------------------------------*/
@@ -657,3 +692,14 @@ unselect_all_button_clicked_cb (GtkWidget                    *widget,
 
        gl_debug (DEBUG_MERGE, "END");
 }
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index f98ea7bfb68b79d33caa18f7b2cca3f625aa48ba..33be5d17619be8029f67b3ada9242a83b96efb97 100644 (file)
@@ -1,41 +1,42 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  merge-properties-dialog.h:  document merge properties dialog module header file
+ *  merge-properties-dialog.h
+ *  Copyright (C) 2002-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #ifndef __MERGE_PROPERTIES_DIALOG_H__
 #define __MERGE_PROPERTIES_DIALOG_H__
 
-#include <gtk/gtkdialog.h>
-#include <gtk/gtkwindow.h>
+#include <gtk/gtk.h>
 #include "label.h"
 
 G_BEGIN_DECLS
 
 #define GL_TYPE_MERGE_PROPERTIES_DIALOG            (gl_merge_properties_dialog_get_type ())
-#define GL_MERGE_PROPERTIES_DIALOG(obj)            (GTK_CHECK_CAST ((obj), GL_TYPE_MERGE_PROPERTIES_DIALOG, glMergePropertiesDialog))
-#define GL_MERGE_PROPERTIES_DIALOG_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_MERGE_PROPERTIES_DIALOG, glMergePropertiesDialogClass))
-#define GL_IS_MERGE_PROPERTIES_DIALOG(obj)         (GTK_CHECK_TYPE ((obj), GL_TYPE_MERGE_PROPERTIES_DIALOG))
-#define GL_IS_MERGE_PROPERTIES_DIALOG_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_MERGE_PROPERTIES_DIALOG))
-#define GL_MERGE_PROPERTIES_DIALOG_GET_CLASS(obj)  (GTK_CHECK_GET_CLASS ((obj), GL_TYPE_MERGE_PROPERTIES_DIALOG, glMergePropertiesDialogClass))
+#define GL_MERGE_PROPERTIES_DIALOG(obj) \
+        (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_MERGE_PROPERTIES_DIALOG, glMergePropertiesDialog))
+#define GL_MERGE_PROPERTIES_DIALOG_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_MERGE_PROPERTIES_DIALOG, glMergePropertiesDialogClass))
+#define GL_IS_MERGE_PROPERTIES_DIALOG(obj) \
+        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_MERGE_PROPERTIES_DIALOG))
+#define GL_IS_MERGE_PROPERTIES_DIALOG_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_MERGE_PROPERTIES_DIALOG))
+#define GL_MERGE_PROPERTIES_DIALOG_GET_CLASS(obj) \
+        (G_TYPE_INSTANCE_GET_CLASS ((obj), GL_TYPE_MERGE_PROPERTIES_DIALOG, glMergePropertiesDialogClass))
 
 
 typedef struct _glMergePropertiesDialog         glMergePropertiesDialog;
@@ -64,3 +65,14 @@ GtkWidget *gl_merge_properties_dialog_new         (glLabel   *label,
 G_END_DECLS
 
 #endif
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 674e81d13a37af47928380d8dc9d68598b0fee76..4c1f7123b16caf49cfa7e3a312c328edd545e324 100644 (file)
@@ -1,25 +1,21 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  merge_text.c:  text-file merge backend module
+ *  merge-text.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 
 #define LINE_BUF_LEN 1024
 
+
 /*===========================================*/
 /* Private types                             */
 /*===========================================*/
 
 struct _glMergeTextPrivate {
+
        gchar             delim;
+        gboolean          line1_has_keys;
+
        FILE             *fp;
+
+        GPtrArray        *keys;
+        gint              n_fields_max;
 };
 
 enum {
@@ -48,8 +51,10 @@ enum {
 enum {
        ARG_0,
        ARG_DELIM,
+       ARG_LINE1_HAS_KEYS
 };
 
+
 /*===========================================*/
 /* Private globals                           */
 /*===========================================*/
@@ -71,24 +76,30 @@ static void           gl_merge_text_get_property    (GObject          *object,
                                                     GValue           *value,
                                                     GParamSpec       *pspec);
 
-static GList         *gl_merge_text_get_key_list    (glMerge          *merge);
-static gchar         *gl_merge_text_get_primary_key (glMerge          *merge);
+static gchar         *key_from_index                (glMergeText      *merge_text,
+                                                     gint              i_field);
+static void           clear_keys                    (glMergeText      *merge_text);
+
+static GList         *gl_merge_text_get_key_list    (const glMerge    *merge);
+static gchar         *gl_merge_text_get_primary_key (const glMerge    *merge);
 static void           gl_merge_text_open            (glMerge          *merge);
 static void           gl_merge_text_close           (glMerge          *merge);
 static glMergeRecord *gl_merge_text_get_record      (glMerge          *merge);
 static void           gl_merge_text_copy            (glMerge          *dst_merge,
-                                                    glMerge          *src_merge);
+                                                    const glMerge    *src_merge);
 
 static GList         *parse_line                    (FILE             *fp,
                                                     gchar             delim);
 static gchar         *parse_field                   (gchar            *raw_field);
 static void           free_fields                   (GList           **fields);
 
-\f
+
+
 /*****************************************************************************/
 /* Boilerplate object stuff.                                                 */
 /*****************************************************************************/
-G_DEFINE_TYPE (glMergeText, gl_merge_text, GL_TYPE_MERGE);
+G_DEFINE_TYPE (glMergeText, gl_merge_text, GL_TYPE_MERGE)
+
 
 static void
 gl_merge_text_class_init (glMergeTextClass *class)
@@ -110,6 +121,13 @@ gl_merge_text_class_init (glMergeTextClass *class)
                                    0, 0x7F, ',',
                                    (G_PARAM_READABLE | G_PARAM_WRITABLE)));
 
+       g_object_class_install_property
+                (object_class,
+                 ARG_LINE1_HAS_KEYS,
+                 g_param_spec_boolean ("line1_has_keys", NULL, NULL,
+                                       FALSE,
+                                       (G_PARAM_READABLE | G_PARAM_WRITABLE)));
+
        object_class->finalize = gl_merge_text_finalize;
 
        merge_class->get_key_list    = gl_merge_text_get_key_list;
@@ -122,6 +140,7 @@ gl_merge_text_class_init (glMergeTextClass *class)
        gl_debug (DEBUG_MERGE, "END");
 }
 
+
 static void
 gl_merge_text_init (glMergeText *merge_text)
 {
@@ -129,9 +148,12 @@ gl_merge_text_init (glMergeText *merge_text)
 
        merge_text->priv = g_new0 (glMergeTextPrivate, 1);
 
+        merge_text->priv->keys = g_ptr_array_new ();
+
        gl_debug (DEBUG_MERGE, "END");
 }
 
+
 static void
 gl_merge_text_finalize (GObject *object)
 {
@@ -141,6 +163,8 @@ gl_merge_text_finalize (GObject *object)
 
        g_return_if_fail (object && GL_IS_MERGE_TEXT (object));
 
+        clear_keys (merge_text);
+        g_ptr_array_free (merge_text->priv->keys, TRUE);
        g_free (merge_text->priv);
 
        G_OBJECT_CLASS (gl_merge_text_parent_class)->finalize (object);
@@ -148,6 +172,7 @@ gl_merge_text_finalize (GObject *object)
        gl_debug (DEBUG_MERGE, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* Set argument.                                                            */
 /*--------------------------------------------------------------------------*/
@@ -169,6 +194,12 @@ gl_merge_text_set_property (GObject      *object,
                          merge_text->priv->delim);
                break;
 
+        case ARG_LINE1_HAS_KEYS:
+                merge_text->priv->line1_has_keys = g_value_get_boolean (value);
+               gl_debug (DEBUG_MERGE, "ARG \"line1_has_keys\" = \"%d\"",
+                         merge_text->priv->line1_has_keys);
+               break;
+
         default:
                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
                 break;
@@ -177,6 +208,7 @@ gl_merge_text_set_property (GObject      *object,
 
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* Get argument.                                                            */
 /*--------------------------------------------------------------------------*/
@@ -196,6 +228,10 @@ gl_merge_text_get_property (GObject     *object,
                g_value_set_char (value, merge_text->priv->delim);
                break;
 
+        case ARG_LINE1_HAS_KEYS:
+                g_value_set_boolean (value, merge_text->priv->line1_has_keys);
+                break;
+
         default:
                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
                 break;
@@ -204,58 +240,88 @@ gl_merge_text_get_property (GObject     *object,
 
 }
 
+
+/*---------------------------------------------------------------------------*/
+/* Lookup key name from zero based index.                                    */
+/*---------------------------------------------------------------------------*/
+static gchar *
+key_from_index (glMergeText  *merge_text,
+                gint          i_field)
+{
+        if ( merge_text->priv->line1_has_keys &&
+             (i_field < merge_text->priv->keys->len) )
+        {
+                return g_strdup (g_ptr_array_index (merge_text->priv->keys, i_field));
+        }
+        else
+        {
+                return g_strdup_printf ("%d", i_field+1);
+        }
+}
+
+
+/*---------------------------------------------------------------------------*/
+/* Clear stored keys.                                                        */
+/*---------------------------------------------------------------------------*/
+static void
+clear_keys (glMergeText      *merge_text)
+{
+        gint i;
+
+        for ( i = 0; i < merge_text->priv->keys->len; i++ )
+        {
+                g_free (g_ptr_array_index (merge_text->priv->keys, i));
+        }
+        merge_text->priv->keys->len = 0;
+}
+
+
 /*--------------------------------------------------------------------------*/
 /* Get key list.                                                            */
 /*--------------------------------------------------------------------------*/
 static GList *
-gl_merge_text_get_key_list (glMerge *merge)
+gl_merge_text_get_key_list (const glMerge *merge)
 {
        glMergeText   *merge_text;
-       GList         *record_list, *p_rec;
-       glMergeRecord *record;
-       GList         *p_field;
-       gint           i_field, n_fields, n_fields_max = 0;
+       gint           i_field, n_fields;
        GList         *key_list;
        
-       /* Field keys are simply column numbers. */
-
        gl_debug (DEBUG_MERGE, "BEGIN");
 
        merge_text = GL_MERGE_TEXT (merge);
 
-       record_list = (GList *)gl_merge_get_record_list (merge);
-
-       for ( p_rec=record_list; p_rec!=NULL; p_rec=p_rec->next ) {
-               record = (glMergeRecord *)p_rec->data;
-
-               n_fields = 0;
-               for ( p_field=record->field_list; p_field!=NULL; p_field=p_field->next ) {
-                       n_fields++;
-               }
-               if ( n_fields > n_fields_max ) n_fields_max = n_fields;
-       }
-
-       key_list = NULL;
-       for (i_field=1; i_field <= n_fields_max; i_field++) {
-               key_list = g_list_append (key_list, g_strdup_printf ("%d", i_field));
-       }
+        if ( merge_text->priv->line1_has_keys )
+        {
+                n_fields = merge_text->priv->keys->len;
+        }
+        else
+        {
+                n_fields = merge_text->priv->n_fields_max;
+        }
 
+        key_list = NULL;
+        for ( i_field=0; i_field < n_fields; i_field++ )
+        {
+                key_list = g_list_append (key_list, key_from_index(merge_text, i_field));
+        }
 
        gl_debug (DEBUG_MERGE, "END");
 
        return key_list;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* Get "primary" key.                                                       */
 /*--------------------------------------------------------------------------*/
 static gchar *
-gl_merge_text_get_primary_key (glMerge *merge)
+gl_merge_text_get_primary_key (const glMerge *merge)
 {
        /* For now, let's always assume the first column is the primary key. */
-       return g_strdup ("1");
+        return key_from_index (GL_MERGE_TEXT (merge), 0);
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* Open merge source.                                                       */
 /*--------------------------------------------------------------------------*/
@@ -265,17 +331,45 @@ gl_merge_text_open (glMerge *merge)
        glMergeText *merge_text;
        gchar       *src;
 
+        GList       *line1_fields;
+        GList       *p;
+
        merge_text = GL_MERGE_TEXT (merge);
 
        src = gl_merge_get_src (merge);
 
-       if (src != NULL) {
-               merge_text->priv->fp = fopen (src, "r");
+       if (src != NULL)
+        {
+               if (g_utf8_strlen(src, -1) == 1 && src[0] == '-')
+                       merge_text->priv->fp = stdin;
+               else
+                       merge_text->priv->fp = fopen (src, "r");
+
+                g_free (src);
+
+                clear_keys (merge_text);
+                merge_text->priv->n_fields_max = 0;
+
+                if ( merge_text->priv->line1_has_keys )
+                {
+                        /*
+                         * Extract keys from first line and discard line
+                         */
+
+                        line1_fields = parse_line (merge_text->priv->fp, merge_text->priv->delim);
+                        for ( p = line1_fields; p != NULL; p = p->next )
+                        {
+                                g_ptr_array_add (merge_text->priv->keys, g_strdup (p->data));
+                        }
+                        free_fields (&line1_fields);
+                }
+
        }
 
-       g_free (src);
+
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* Close merge source.                                                      */
 /*--------------------------------------------------------------------------*/
@@ -294,6 +388,7 @@ gl_merge_text_close (glMerge *merge)
        }
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* Get next record from merge source, NULL if no records left (i.e EOF)     */
 /*--------------------------------------------------------------------------*/
@@ -313,10 +408,6 @@ gl_merge_text_get_record (glMerge *merge)
        delim = merge_text->priv->delim;
        fp    = merge_text->priv->fp;
 
-       if (fp == NULL) {
-               return NULL;
-       }
-              
        fields = parse_line (fp, delim);
        if ( fields == NULL ) {
                return NULL;
@@ -324,11 +415,10 @@ gl_merge_text_get_record (glMerge *merge)
 
        record = g_new0 (glMergeRecord, 1);
        record->select_flag = TRUE;
-       i_field = 1;
-       for (p=fields; p != NULL; p=p->next) {
+       for (p=fields, i_field=0; p != NULL; p=p->next, i_field++) {
 
                field = g_new0 (glMergeField, 1);
-               field->key = g_strdup_printf ("%d", i_field++);
+                field->key = key_from_index (merge_text, i_field);
 #ifndef CSV_ALWAYS_UTF8
                field->value = g_locale_to_utf8 (p->data, -1, NULL, NULL, NULL);
 #else
@@ -339,41 +429,55 @@ gl_merge_text_get_record (glMerge *merge)
        }
        free_fields (&fields);
 
+        if ( i_field > merge_text->priv->n_fields_max )
+        {
+                merge_text->priv->n_fields_max = i_field;
+        }
+
        return record;
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* Copy merge_text specific fields.                                          */
 /*---------------------------------------------------------------------------*/
 static void
-gl_merge_text_copy (glMerge *dst_merge,
-                   glMerge *src_merge)
+gl_merge_text_copy (glMerge       *dst_merge,
+                   const glMerge *src_merge)
 {
        glMergeText *dst_merge_text;
        glMergeText *src_merge_text;
+        gint         i;
 
        dst_merge_text = GL_MERGE_TEXT (dst_merge);
        src_merge_text = GL_MERGE_TEXT (src_merge);
 
-       dst_merge_text->priv->delim = src_merge_text->priv->delim;
+       dst_merge_text->priv->delim          = src_merge_text->priv->delim;
+       dst_merge_text->priv->line1_has_keys = src_merge_text->priv->line1_has_keys;
+
+        for ( i=0; i < src_merge_text->priv->keys->len; i++ )
+        {
+                g_ptr_array_add (dst_merge_text->priv->keys,
+                                 g_strdup ((gchar *)g_ptr_array_index (src_merge_text->priv->keys, i)));
+        }
+
+       dst_merge_text->priv->n_fields_max   = src_merge_text->priv->n_fields_max;
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Parse line.                                                     */
 /*                                                                           */
 /* Attempt to be a robust parser of various CSV (and similar) formats.       */
 /*                                                                           */
-/* Split into fields, accounting for:                                        */
-/*   - delimeters may be embedded in quoted text (")                         */
-/*   - delimeters may be "escaped" by a leading backslash (\)                */
-/*   - quotes may be embedded in quoted text as two adjacent quotes ("")     */
-/*   - quotes may be "escaped" either within or outside of quoted text.      */
-/*   - newlines may be embedded in quoted text, allowing a field to span     */
-/*     more than one line.                                                   */
+/* Based on CSV format described in RFC 4180 section 2.                      */
 /*                                                                           */
-/* This function does not do any parsing of the individual fields, other     */
-/* than to correctly interpet delimeters.  Actual parsing of the individual  */
-/* fields is done in parse_field().                                          */
+/* Additions to RFC 4180 rules:                                              */
+/*   - delimeters and other special characters may be "escaped" by a leading */
+/*     backslash (\)                                                         */
+/*   - C escape sequences for newline (\n) and tab (\t) are also translated. */
+/*   - if quoted text is not followed by a delimeter, any additional text is */
+/*     concatenated with quoted portion.                                     */
 /*                                                                           */
 /* Returns a list of fields.  A blank line is considered a line with one     */
 /* empty field.  Returns empty (NULL) when done.                             */
@@ -382,139 +486,119 @@ static GList *
 parse_line (FILE  *fp,
            gchar  delim )
 {
-       GList *list = NULL;
-       GString *string;
-       gint c;
-       enum { BEGIN, NORMAL, QUOTED, QUOTED_QUOTE1,
-               NORMAL_ESCAPED, QUOTED_ESCAPED, DONE } state;
-
-       state = BEGIN;
-       string = g_string_new( "" );
+       GList   *list;
+       GString *field;
+       gint     c;
+       enum { DELIM,
+               QUOTED, QUOTED_QUOTE1, QUOTED_ESCAPED,
+               SIMPLE, SIMPLE_ESCAPED,
+               DONE } state;
+
+       if (fp == NULL) {
+               return NULL;
+       }
+              
+       state = DELIM;
+        list  = NULL;
+       field = g_string_new( "" );
        while ( state != DONE ) {
                c=getc (fp);
 
                switch (state) {
 
-               case BEGIN:
-                        if ( c == delim )
-                        {
-                                /* first field is empty. */
-                                list = g_list_append (list, g_strdup (""));
-                               state = NORMAL;
-                                break;
-                        }
+               case DELIM:
                        switch (c) {
-                       case '"':
-                                string = g_string_append_c (string, c);
-                               state = QUOTED;
-                               break;
-                       case '\\':
-                                string = g_string_append_c (string, c);
-                               state = NORMAL_ESCAPED;
-                               break;
                        case '\n':
-                               /* treat as one empty field. */
+                               /* last field is empty. */
                                list = g_list_append (list, g_strdup (""));
                                state = DONE;
                                break;
+                       case '\r':
+                               /* ignore */
+                               state = DELIM;
+                               break;
                        case EOF:
                                 /* end of file, no more lines. */
                                state = DONE;
                                break;
-                       default:
-                                string = g_string_append_c (string, c);
-                               state = NORMAL;
-                               break;
-                       }
-                       break;
-
-               case NORMAL:
-                        if ( c == delim )
-                        {
-                                list = g_list_append (list, parse_field (string->str));
-                                string = g_string_assign( string, "" );
-                                state = NORMAL;
-                                break;
-                        }
-                       switch (c) {
                        case '"':
-                                string = g_string_append_c (string, c);
+                                /* start a quoted field. */
                                state = QUOTED;
                                break;
                        case '\\':
-                                string = g_string_append_c (string, c);
-                               state = NORMAL_ESCAPED;
-                               break;
-                       case '\n':
-                       case EOF:
-                               list = g_list_append (list, parse_field (string->str));
-                               state = DONE;
+                                /* simple field, but 1st character is an escape. */
+                               state = SIMPLE_ESCAPED;
                                break;
                        default:
-                                string = g_string_append_c (string, c);
-                                state = NORMAL;
+                                if ( c == delim )
+                                {
+                                        /* field is empty. */
+                                        list = g_list_append (list, g_strdup (""));
+                                        state = DELIM;
+                                }
+                                else
+                                {
+                                        /* begining of a simple field. */
+                                        field = g_string_append_c (field, c);
+                                        state = SIMPLE;
+                                }
                                break;
                        }
                        break;
 
                case QUOTED:
                        switch (c) {
+                       case EOF:
+                               /* File ended mid way through quoted item, truncate field. */
+                               list = g_list_append (list, g_strdup (field->str));
+                               state = DONE;
+                               break;
                        case '"':
-                                string = g_string_append_c (string, c);
+                                /* Possible end of field, but could be 1st of a pair. */
                                state = QUOTED_QUOTE1;
                                break;
                        case '\\':
-                                string = g_string_append_c (string, c);
+                                /* Escape next character, or special escape, e.g. \n. */
                                state = QUOTED_ESCAPED;
                                break;
-                       case EOF:
-                               /* File ended mid way through quoted item */
-                               list = g_list_append (list, parse_field (string->str));
-                               state = DONE;
-                               break;
                        default:
-                               string = g_string_append_c (string, c);
+                                /* Use character literally. */
+                               field = g_string_append_c (field, c);
                                break;
                        }
                        break;
 
                case QUOTED_QUOTE1:
-                        if ( c == delim )
-                        {
-                                list = g_list_append (list, parse_field (string->str));
-                                string = g_string_assign( string, "" );
-                                state = NORMAL;
-                                break;
-                        }
                        switch (c) {
-                       case '"':
-                               /* insert quotes in string, stay quoted. */
-                               string = g_string_append_c (string, c);
-                               state = QUOTED;
-                               break;
                        case '\n':
                        case EOF:
                                /* line or file ended after quoted item */
-                               list = g_list_append (list, parse_field (string->str));
+                               list = g_list_append (list, g_strdup (field->str));
                                state = DONE;
                                break;
-                       default:
-                                string = g_string_append_c (string, c);
-                               state = NORMAL;
+                       case '"':
+                               /* second quote, insert and stay quoted. */
+                               field = g_string_append_c (field, c);
+                               state = QUOTED;
                                break;
-                       }
-                       break;
-
-               case NORMAL_ESCAPED:
-                       switch (c) {
-                       case EOF:
-                               /* File ended mid way through quoted item */
-                               list = g_list_append (list, parse_field (string->str));
-                               state = DONE;
+                       case '\r':
+                               /* ignore and go to fallback */
+                               state = SIMPLE;
                                break;
                        default:
-                               string = g_string_append_c (string, c);
-                               state = NORMAL;
+                                if ( c == delim )
+                                {
+                                        /* end of field. */
+                                        list = g_list_append (list, g_strdup (field->str));
+                                        field = g_string_assign( field, "" );
+                                        state = DELIM;
+                                }
+                                else
+                                {
+                                        /* fallback if not a delim or another quote. */
+                                        field = g_string_append_c (field, c);
+                                        state = SIMPLE;
+                                }
                                break;
                        }
                        break;
@@ -523,140 +607,82 @@ parse_line (FILE  *fp,
                        switch (c) {
                        case EOF:
                                /* File ended mid way through quoted item */
-                               list = g_list_append (list, parse_field (string->str));
+                               list = g_list_append (list, g_strdup (field->str));
                                state = DONE;
                                break;
-                       default:
-                               string = g_string_append_c (string, c);
+                        case 'n':
+                                /* Decode "\n" as newline. */
+                               field = g_string_append_c (field, '\n');
                                state = QUOTED;
                                break;
-                       }
-                       break;
-
-               default:
-                       g_assert_not_reached();
-                       break;
-               }
-
-       }
-       g_string_free( string, TRUE );
-
-       return list;
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  Parse field.                                                    */
-/*                                                                           */
-/*  - Strip leading and trailing white space, unless quoted.                 */
-/*  - Strip CR, unless escaped.                                              */
-/*  - Expand '\n' and '\t' into newline and tab characters.                  */
-/*  - Remove quotes, unless escaped (\" anywhere or "" within quotes)        */
-/*---------------------------------------------------------------------------*/
-static gchar *
-parse_field (gchar  *raw_field)
-{
-       GString *string;
-        gchar   *pass1_field, *c, *field;
-       enum { NORMAL, NORMAL_ESCAPED, QUOTED, QUOTED_ESCAPED, QUOTED_QUOTE1} state;
-
-
-        /*
-         * Pass 1: remove leading and trailing spaces.
-         */
-        pass1_field = g_strdup (raw_field);
-        g_strstrip (pass1_field);
-
-        /*
-         * Pass 2: resolve quoting and escaping.
-         */
-       state = NORMAL;
-       string = g_string_new( "" );
-        for ( c=pass1_field; *c != 0; c++ )
-        {
-               switch (state) {
-
-               case NORMAL:
-                       switch (*c) {
-                       case '\\':
-                               state = NORMAL_ESCAPED;
-                               break;
-                       case '"':
+                        case 't':
+                                /* Decode "\t" as tab. */
+                               field = g_string_append_c (field, '\t');
                                state = QUOTED;
                                break;
-                       case '\r':
-                               /* Strip CR. */
-                               break;
                        default:
-                                string = g_string_append_c (string, *c);
+                                /* Use character literally. */
+                               field = g_string_append_c (field, c);
+                               state = QUOTED;
                                break;
                        }
                        break;
 
-               case NORMAL_ESCAPED:
-                       switch (*c) {
-                       case 'n':
-                               string = g_string_append_c (string, '\n');
-                               state = NORMAL;
-                               break;
-                       case 't':
-                               string = g_string_append_c (string, '\t');
-                               state = NORMAL;
+               case SIMPLE:
+                       switch (c) {
+                       case '\n':
+                       case EOF:
+                               /* line or file ended */
+                               list = g_list_append (list, g_strdup (field->str));
+                               state = DONE;
                                break;
-                       default:
-                               string = g_string_append_c (string, *c);
-                               state = NORMAL;
+                       case '\r':
+                               /* ignore */
+                               state = SIMPLE;
                                break;
-                       }
-                       break;
-
-               case QUOTED:
-                       switch (*c) {
                        case '\\':
-                               state = QUOTED_ESCAPED;
-                               break;
-                       case '"':
-                               state = QUOTED_QUOTE1;
-                               break;
-                       case '\r':
-                               /* Strip CR. */
+                                /* Escape next character, or special escape, e.g. \n. */
+                               state = SIMPLE_ESCAPED;
                                break;
                        default:
-                               string = g_string_append_c (string, *c);
+                                if ( c == delim )
+                                {
+                                        /* end of field. */
+                                        list = g_list_append (list, g_strdup (field->str));
+                                        field = g_string_assign( field, "" );
+                                        state = DELIM;
+                                }
+                                else
+                                {
+                                        /* Use character literally. */
+                                        field = g_string_append_c (field, c);
+                                        state = SIMPLE;
+                                }
                                break;
                        }
                        break;
 
-               case QUOTED_ESCAPED:
-                       switch (*c) {
-                       case 'n':
-                               string = g_string_append_c (string, '\n');
-                               state = QUOTED;
+               case SIMPLE_ESCAPED:
+                       switch (c) {
+                       case EOF:
+                               /* File ended mid way through quoted item */
+                               list = g_list_append (list, g_strdup (field->str));
+                               state = DONE;
                                break;
-                       case 't':
-                               string = g_string_append_c (string, '\t');
-                               state = QUOTED;
+                        case 'n':
+                                /* Decode "\n" as newline. */
+                               field = g_string_append_c (field, '\n');
+                               state = SIMPLE;
                                break;
-                       default:
-                               string = g_string_append_c (string, *c);
-                               state = QUOTED;
-                               break;
-                       }
-                       break;
-
-               case QUOTED_QUOTE1:
-                       switch (*c) {
-                       case '"':
-                               /* insert quotes in string, stay quoted. */
-                               string = g_string_append_c (string, *c);
-                               state = QUOTED;
-                               break;
-                       case '\r':
-                               /* Strip CR, return to QUOTED. */
-                               state = QUOTED;
+                        case 't':
+                                /* Decode "\t" as tab. */
+                               field = g_string_append_c (field, '\t');
+                               state = SIMPLE;
                                break;
                        default:
-                                string = g_string_append_c (string, *c);
-                               state = NORMAL;
+                                /* Use character literally. */
+                               field = g_string_append_c (field, c);
+                               state = SIMPLE;
                                break;
                        }
                        break;
@@ -667,14 +693,12 @@ parse_field (gchar  *raw_field)
                }
 
        }
+       g_string_free( field, TRUE );
 
-        field = g_strdup (string->str);
-       g_string_free( string, TRUE );
-        g_free (pass1_field);
-
-       return field;
+       return list;
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* Free list of fields.                                                      */
 /*---------------------------------------------------------------------------*/
@@ -692,3 +716,13 @@ free_fields (GList ** list)
        *list = NULL;
 }
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 65bad54d673ba7361b62269655a1f1c293280229..e4180f1ff8fd774695a151a6efa65958247c3d4c 100644 (file)
@@ -1,26 +1,23 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  merge_text.h:  text-file merge backend module header file
+ *  merge-text.h
+ *  Copyright (C) 2002-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #ifndef __MERGE_TEXT_H__
 #define __MERGE_TEXT_H__
 
@@ -33,6 +30,7 @@ G_BEGIN_DECLS
  * name               type             description
  * ---------------------------------------------------------------------------
  * delim              gchar            Field delimiter.
+ * line1_has_keys     gboolean         Do we harvest key names from line 1?
  *
  */
 
@@ -66,3 +64,14 @@ GType             gl_merge_text_get_type            (void) G_GNUC_CONST;
 G_END_DECLS
 
 #endif
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index c0eb1449667bc9184f1c2c01f52c2d8ff207f3ca..da1deff300b7713b2a876fadf009eb8bcf3f53b1 100644 (file)
@@ -1,27 +1,23 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  merge_vcard.c:  vcard merge backend module
- *
- *  Copyright (C) 2001  Jim Evins <evins@snaught.com>.
+ *  merge-vcard.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *  and
  *  Copyright (C) 2005  Austin Henry <ahenry@users.sourceforge.net>
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 
 
 #include "merge-vcard.h"
-#include <libebook/e-contact.h>
 
+#include <libebook/e-contact.h>
 #include <stdio.h>
 #include <string.h>
 #include <errno.h>
 
 #include "debug.h"
 
+
 /*===========================================*/
 /* Private types                             */
 /*===========================================*/
@@ -51,9 +48,10 @@ enum {
 };
 
 enum {
-        ARG_0,
+        ARG_0
 };
 
+
 /*===========================================*/
 /* Private globals                           */
 /*===========================================*/
@@ -75,21 +73,21 @@ static void           gl_merge_vcard_get_property    (GObject          *object,
                                                       GValue           *value,
                                                       GParamSpec       *pspec);
 
-static GList         *gl_merge_vcard_get_key_list    (glMerge          *merge);
-static gchar         *gl_merge_vcard_get_primary_key (glMerge          *merge);
+static GList         *gl_merge_vcard_get_key_list    (const glMerge    *merge);
+static gchar         *gl_merge_vcard_get_primary_key (const glMerge    *merge);
 static void           gl_merge_vcard_open            (glMerge          *merge);
 static void           gl_merge_vcard_close           (glMerge          *merge);
 static glMergeRecord *gl_merge_vcard_get_record      (glMerge          *merge);
 static void           gl_merge_vcard_copy            (glMerge          *dst_merge,
-                                                      glMerge          *src_merge);
+                                                      const glMerge    *src_merge);
 static char *         parse_next_vcard               (FILE             *fp);
 
 
-\f
 /*****************************************************************************/
 /* Boilerplate object stuff.                                                 */
 /*****************************************************************************/
-G_DEFINE_TYPE (glMergeVCard, gl_merge_vcard, GL_TYPE_MERGE);
+G_DEFINE_TYPE (glMergeVCard, gl_merge_vcard, GL_TYPE_MERGE)
+
 
 static void
 gl_merge_vcard_class_init (glMergeVCardClass *class)
@@ -116,6 +114,7 @@ gl_merge_vcard_class_init (glMergeVCardClass *class)
         gl_debug (DEBUG_MERGE, "END");
 }
 
+
 static void
 gl_merge_vcard_init (glMergeVCard *merge_vcard)
 {
@@ -126,6 +125,7 @@ gl_merge_vcard_init (glMergeVCard *merge_vcard)
         gl_debug (DEBUG_MERGE, "END");
 }
 
+
 static void
 gl_merge_vcard_finalize (GObject *object)
 {
@@ -142,6 +142,7 @@ gl_merge_vcard_finalize (GObject *object)
         gl_debug (DEBUG_MERGE, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* Set argument.                                                            */
 /*--------------------------------------------------------------------------*/
@@ -151,17 +152,17 @@ gl_merge_vcard_set_property (GObject      *object,
                              const GValue *value,
                              GParamSpec   *pspec)
 {
-        glMergeVCard *merge_vcard;
+        switch (param_id) {
 
-        merge_vcard = GL_MERGE_VCARD (object);
+        /* Currently no vcard specific properties. */
 
-        switch (param_id) {
         default:
                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
                 break;
         }
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* Get argument.                                                            */
 /*--------------------------------------------------------------------------*/
@@ -171,11 +172,10 @@ gl_merge_vcard_get_property (GObject     *object,
                              GValue      *value,
                              GParamSpec  *pspec)
 {
-        glMergeVCard *merge_vcard;
+        switch (param_id) {
 
-        merge_vcard = GL_MERGE_VCARD (object);
+        /* Currently no vcard specific properties. */
 
-        switch (param_id) {
         default:
                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
                 break;
@@ -183,43 +183,39 @@ gl_merge_vcard_get_property (GObject     *object,
 
 }
 
-/* TODO */
+
 /*--------------------------------------------------------------------------*/
 /* Get key list.                                                            */
 /*--------------------------------------------------------------------------*/
 static GList *
-gl_merge_vcard_get_key_list (glMerge *merge)
+gl_merge_vcard_get_key_list (const glMerge *merge)
 {
-        glMergeVCard   *merge_vcard;
-        GList          *key_list;
+        GList          *key_list = NULL;
+        EContactField   field_id;
         
         gl_debug (DEBUG_MERGE, "BEGIN");
 
-        merge_vcard = GL_MERGE_VCARD (merge);
-
-        /* extremely simple approach until I can list the available keys from the
-         * server, and return them. */
-        key_list = NULL;
-        key_list = g_list_append (key_list, g_strdup ("full_name"));
-        key_list = g_list_append (key_list, g_strdup ("home_address"));
-        key_list = g_list_append (key_list, g_strdup ("work_address"));
+        for ( field_id = E_CONTACT_FIELD_FIRST; field_id <= E_CONTACT_LAST_SIMPLE_STRING; field_id++ )
+        {
+                key_list = g_list_append (key_list, g_strdup (e_contact_pretty_name (field_id)));
+        }
 
         gl_debug (DEBUG_MERGE, "END");
 
         return key_list;
 }
 
-/* TODO? */
+
 /*--------------------------------------------------------------------------*/
 /* Get "primary" key.                                                       */
 /*--------------------------------------------------------------------------*/
 static gchar *
-gl_merge_vcard_get_primary_key (glMerge *merge)
+gl_merge_vcard_get_primary_key (const glMerge *merge)
 {
-        /* For now, let's always assume the full name is the primary key. */
-        return g_strdup ("full_name");
+        return g_strdup (e_contact_pretty_name(E_CONTACT_FILE_AS));
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* Open merge source.                                                       */
 /*--------------------------------------------------------------------------*/
@@ -242,6 +238,7 @@ gl_merge_vcard_open (glMerge *merge)
         return;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* Close merge source.                                                      */
 /*--------------------------------------------------------------------------*/
@@ -258,6 +255,7 @@ gl_merge_vcard_close (glMerge *merge)
         }
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* Get next record from merge source, NULL if no records left (i.e EOF)     */
 /*--------------------------------------------------------------------------*/
@@ -266,6 +264,7 @@ gl_merge_vcard_get_record (glMerge *merge)
 {
         glMergeVCard  *merge_vcard;
         glMergeRecord *record;
+        EContactField  field_id;
         glMergeField  *field;
 
         char *vcard;
@@ -289,26 +288,21 @@ gl_merge_vcard_get_record (glMerge *merge)
          * into the glMergeRecord structure. When done, free up the resources for
          * that contact */
 
-        /* get the full name */
-        field = g_new0 (glMergeField, 1);
-        field->key = g_strdup ("full_name");
-        field->value = g_strdup (e_contact_get_const(contact, E_CONTACT_FULL_NAME));
-
-        record->field_list = g_list_append (record->field_list, field);
+        for ( field_id = E_CONTACT_FIELD_FIRST; field_id <= E_CONTACT_LAST_SIMPLE_STRING; field_id++ )
+        {
+                gchar *value;
+                value = g_strdup (e_contact_get_const (contact, field_id));
 
-        /* get the home address */
-        field = g_new0 (glMergeField, 1);
-        field->key = g_strdup ("home_address");
-        field->value = g_strdup (e_contact_get_const(contact, E_CONTACT_ADDRESS_LABEL_HOME));
-
-        record->field_list = g_list_append (record->field_list, field);
+                if (value) {
+                        field = g_new0 (glMergeField, 1);
+                        field->key = g_strdup (e_contact_pretty_name (field_id));
+                        field->value = value;
+                        record->field_list = g_list_prepend (record->field_list, field);
+                }
+        }
 
-        /* get the work address */
-        field = g_new0 (glMergeField, 1);
-        field->key = g_strdup ("work_address");
-        field->value = g_strdup (e_contact_get_const(contact, E_CONTACT_ADDRESS_LABEL_WORK));
+        record->field_list = g_list_reverse (record->field_list);
 
-        record->field_list = g_list_append (record->field_list, field);
 
         /* free the contact */
         g_object_unref (contact);
@@ -317,20 +311,18 @@ gl_merge_vcard_get_record (glMerge *merge)
         return record;
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* Copy merge_vcard specific fields.                                         */
 /*---------------------------------------------------------------------------*/
 static void
-gl_merge_vcard_copy (glMerge *dst_merge,
-                     glMerge *src_merge)
+gl_merge_vcard_copy (glMerge       *dst_merge,
+                     const glMerge *src_merge)
 {
-        glMergeVCard *dst_merge_vcard;
-        glMergeVCard *src_merge_vcard;
-
-        dst_merge_vcard = GL_MERGE_VCARD (dst_merge);
-        src_merge_vcard = GL_MERGE_VCARD (src_merge);
+        /* Currently nothing to copy. */
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE: pull out a full VCard from the open file                         */
 /* Arguments:                                                                */
@@ -356,17 +348,31 @@ parse_next_vcard (FILE *fp)
 
         vcard = g_malloc0(size);
 
-        while (fgets(line, sizeof(line), fp) && found_end == FALSE) {
-                if (found_begin == TRUE) {
-                        if (g_str_has_prefix(line, "END:VCARD")) { found_end = TRUE; }
-                } else {
-                        if (g_str_has_prefix(line, "BEGIN:VCARD")) { found_begin = TRUE; } 
-                        else { continue; }/* skip lines not in a vcard */
+        while (fgets(line, sizeof(line), fp) && found_end == FALSE)
+        {
+                if (found_begin == TRUE)
+                {
+                        if (g_ascii_strncasecmp(line, "END:VCARD", strlen("END:VCARD")) == 0)
+                        {
+                                found_end = TRUE;
+                        }
+                }
+                else
+                {
+                        if (g_ascii_strncasecmp(line, "BEGIN:VCARD", strlen("BEGIN:VCARD")) == 0)
+                        {
+                                found_begin = TRUE;
+                        } 
+                        else
+                        {
+                                continue; /* skip lines not in a vcard */
+                        }
                 }
 
                 /* if the buffer passed us isn't big enough, reallocate it */
                 cursize += strlen(line);
-                if (cursize >= size) {
+                if (cursize >= size)
+                {
                         size *= 2;
                         vcard = (char *)g_realloc(vcard, size); /* aborts program on error */
                 }
@@ -381,3 +387,14 @@ parse_next_vcard (FILE *fp)
 
 
 #endif /* HAVE_LIBEBOOK */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 7ede444fd6c245d68d56641c03d5da188bf8ac07..41a64ea55ac1015ca780e41f6f86e6ed2b23e575 100644 (file)
@@ -1,28 +1,25 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  merge_vcard.h:  vcard merge backend module header file
- *
- *  Copyright (C) 2002  Jim Evins <evins@snaught.com>.
+ *  merge-vcard.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *  and
  *  Copyright (C) 2005  Austin Henry <ahenry@users.sourceforge.net>
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #ifndef __MERGE_VCARD_H__
 #define __MERGE_VCARD_H__
 
@@ -68,3 +65,14 @@ G_END_DECLS
 
 
 #endif /* __MERGE_VCARD_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 4eecac3ff010653def6a7245c4723846e00f241a..7076c134a44e5e17452acbbbeeff227c8d34bea1 100644 (file)
@@ -1,26 +1,23 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  merge.c:  document merge module
+ *  merge.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "merge.h"
@@ -29,6 +26,8 @@
 #include <gobject/gvaluecollector.h>
 #include <string.h>
 
+#include <libglabels.h>
+
 #include "debug.h"
 
 /*========================================================*/
@@ -70,21 +69,21 @@ static GList *backends = NULL;
 /* Private function prototypes.                           */
 /*========================================================*/
 
-static void           gl_merge_finalize      (GObject        *object);
+static void           gl_merge_finalize      (GObject              *object);
 
-static void           merge_open             (glMerge        *merge);
+static void           merge_open             (glMerge              *merge);
 
-static void           merge_close            (glMerge        *merge);
+static void           merge_close            (glMerge              *merge);
 
-static glMergeRecord *merge_get_record       (glMerge        *merge);
+static glMergeRecord *merge_get_record       (glMerge              *merge);
 
-static void           merge_free_record      (glMergeRecord **record);
+static void           merge_free_record      (glMergeRecord       **record);
 
-static glMergeRecord *merge_dup_record       (glMergeRecord  *record);
+static glMergeRecord *merge_dup_record       (const glMergeRecord  *record);
 
-static void           merge_free_record_list (GList         **record_list);
+static void           merge_free_record_list (GList               **record_list);
 
-static GList         *merge_dup_record_list  (GList          *record_list);
+static GList         *merge_dup_record_list  (GList                *record_list);
 
 
 
@@ -167,6 +166,8 @@ gl_merge_get_descriptions (void)
        GList   *p;
        Backend *backend;
 
+        /* Translators: "None" here means that no document-merge source or
+         * method has been selected. */
        descriptions = g_list_append (descriptions, g_strdup(_("None")));
 
        for ( p=backends; p!=NULL; p=p->next) {
@@ -208,13 +209,13 @@ gl_merge_description_to_name (gchar *description)
        GList   *p;
        Backend *backend;
 
-       if (g_strcasecmp(description, _("None")) == 0) {
+       if (lgl_str_utf8_casecmp(description, _("None")) == 0) {
                return g_strdup("None");
        }
 
        for ( p=backends; p!=NULL; p=p->next) {
                backend = (Backend *)p->data;
-               if (g_strcasecmp(description, backend->description) == 0) {
+               if (lgl_str_utf8_casecmp(description, backend->description) == 0) {
                        return g_strdup(backend->name);
                }
        }
@@ -225,7 +226,7 @@ gl_merge_description_to_name (gchar *description)
 /*****************************************************************************/
 /* Boilerplate object stuff.                                                 */
 /*****************************************************************************/
-G_DEFINE_TYPE (glMerge, gl_merge, G_TYPE_OBJECT);
+G_DEFINE_TYPE (glMerge, gl_merge, G_TYPE_OBJECT)
 
 static void
 gl_merge_class_init (glMergeClass *class)
@@ -275,7 +276,7 @@ gl_merge_finalize (GObject *object)
 /* New merge object.                                                         */
 /*****************************************************************************/
 glMerge *
-gl_merge_new (gchar *name)
+gl_merge_new (const gchar *name)
 {
        glMerge *merge = NULL;
        GList   *p;
@@ -286,7 +287,7 @@ gl_merge_new (gchar *name)
        for (p=backends; p!=NULL; p=p->next) {
                backend = (Backend *)p->data;
 
-               if (g_strcasecmp(name, backend->name) == 0) {
+               if (g_ascii_strcasecmp(name, backend->name) == 0) {
 
                        merge = GL_MERGE (g_object_newv (backend->type,
                                                         backend->n_params,
@@ -300,7 +301,7 @@ gl_merge_new (gchar *name)
                }
        }
 
-       if ( (merge == NULL) && (g_strcasecmp (name, "None") != 0)) {
+       if ( (merge == NULL) && (g_ascii_strcasecmp (name, "None") != 0)) {
                g_message ("Unknown merge backend \"%s\"", name);
        }
 
@@ -313,7 +314,7 @@ gl_merge_new (gchar *name)
 /* Duplicate merge.                                                         */
 /*****************************************************************************/
 glMerge *
-gl_merge_dup (glMerge *src_merge)
+gl_merge_dup (const glMerge *src_merge)
 {
        glMerge    *dst_merge;
 
@@ -350,7 +351,7 @@ gl_merge_dup (glMerge *src_merge)
 /* Get name of merge.                                                        */
 /*****************************************************************************/
 gchar *
-gl_merge_get_name (glMerge *merge)
+gl_merge_get_name (const glMerge *merge)
 {
        gl_debug (DEBUG_MERGE, "");
 
@@ -367,7 +368,7 @@ gl_merge_get_name (glMerge *merge)
 /* Get description of merge.                                                 */
 /*****************************************************************************/
 gchar *
-gl_merge_get_description (glMerge *merge)
+gl_merge_get_description (const glMerge *merge)
 {
        gl_debug (DEBUG_MERGE, "");
 
@@ -384,7 +385,7 @@ gl_merge_get_description (glMerge *merge)
 /* Get source type of merge.                                                 */
 /*****************************************************************************/
 glMergeSrcType
-gl_merge_get_src_type (glMerge *merge)
+gl_merge_get_src_type (const glMerge *merge)
 {
        gl_debug (DEBUG_MERGE, "");
 
@@ -401,8 +402,8 @@ gl_merge_get_src_type (glMerge *merge)
 /* Set src of merge.                                                         */
 /*****************************************************************************/
 void
-gl_merge_set_src (glMerge *merge,
-                 gchar   *src)
+gl_merge_set_src (glMerge       *merge,
+                 const gchar   *src)
 {
        GList         *record_list = NULL;
        glMergeRecord *record;
@@ -457,7 +458,7 @@ gl_merge_set_src (glMerge *merge,
 /* Get src of merge.                                                         */
 /*****************************************************************************/
 gchar *
-gl_merge_get_src (glMerge *merge)
+gl_merge_get_src (const glMerge *merge)
 {
        gl_debug (DEBUG_MERGE, "");
 
@@ -474,7 +475,7 @@ gl_merge_get_src (glMerge *merge)
 /* Get Key List.                                                             */
 /*****************************************************************************/
 GList *
-gl_merge_get_key_list (glMerge *merge)
+gl_merge_get_key_list (const glMerge *merge)
 {
        GList *key_list = NULL;
 
@@ -522,7 +523,7 @@ gl_merge_free_key_list (GList **key_list)
 /* Get Key List.                                                             */
 /*****************************************************************************/
 gchar *
-gl_merge_get_primary_key (glMerge *merge)
+gl_merge_get_primary_key (const glMerge *merge)
 {
        gchar *key = NULL;
 
@@ -642,7 +643,7 @@ merge_free_record (glMergeRecord **record)
 /* Duplicate a merge record (list of fields)                                 */
 /*---------------------------------------------------------------------------*/
 static glMergeRecord *
-merge_dup_record (glMergeRecord *record)
+merge_dup_record (const glMergeRecord *record)
 {
        glMergeRecord *dest_record;
        GList         *p;
@@ -675,8 +676,8 @@ merge_dup_record (glMergeRecord *record)
 /* Find key in given record and evaluate.                                    */
 /*****************************************************************************/
 gchar *
-gl_merge_eval_key (glMergeRecord *record,
-                  gchar         *key)
+gl_merge_eval_key (const glMergeRecord *record,
+                  const gchar         *key)
                   
 {
        GList        *p;
@@ -705,7 +706,7 @@ gl_merge_eval_key (glMergeRecord *record,
 /* Read all records from merge source.                                       */
 /*****************************************************************************/
 const GList *
-gl_merge_get_record_list (glMerge *merge)
+gl_merge_get_record_list (const glMerge *merge)
 {
        gl_debug (DEBUG_MERGE, "");
              
@@ -768,7 +769,7 @@ merge_dup_record_list (GList *record_list)
 /* Count selected records.                                                   */
 /*****************************************************************************/
 gint
-gl_merge_get_record_count (glMerge *merge)
+gl_merge_get_record_count (const glMerge *merge)
 {
        GList *p;
        glMergeRecord *record;
@@ -789,3 +790,12 @@ gl_merge_get_record_count (glMerge *merge)
 }
 
 
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 819ca25b9ee8055bf9c09d47439ef56a374e7669..ecaf0ff257a65683ab724ab7915b097d28643c12 100644 (file)
@@ -1,26 +1,23 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  merge.h:  document merge module header file
+ *  merge.h
+ *  Copyright (C) 2002-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #ifndef __MERGE_H__
 #define __MERGE_H__
 
@@ -30,7 +27,7 @@ G_BEGIN_DECLS
 
 typedef enum {
        GL_MERGE_SRC_IS_FIXED,
-       GL_MERGE_SRC_IS_FILE,
+       GL_MERGE_SRC_IS_FILE
 } glMergeSrcType;
 
 typedef struct {
@@ -67,18 +64,18 @@ struct _glMerge {
 struct _glMergeClass {
        GObjectClass     parent_class;
 
-        GList         *(*get_key_list)    (glMerge *merge);
+        GList         *(*get_key_list)    (const glMerge *merge);
 
-        gchar         *(*get_primary_key) (glMerge *merge);
+        gchar         *(*get_primary_key) (const glMerge *merge);
 
-       void           (*open)            (glMerge *merge);
+       void           (*open)            (glMerge       *merge);
 
-       void           (*close)           (glMerge *merge);
+       void           (*close)           (glMerge       *merge);
 
-       glMergeRecord *(*get_record)      (glMerge *merge);
+       glMergeRecord *(*get_record)      (glMerge       *merge);
 
-       void           (*copy)            (glMerge *dst_merge,
-                                          glMerge *src_merge);
+       void           (*copy)            (glMerge       *dst_merge,
+                                          const glMerge *src_merge);
 };
 
 
@@ -97,34 +94,45 @@ gchar            *gl_merge_description_to_name (gchar *description);
 
 GType             gl_merge_get_type            (void) G_GNUC_CONST;
 
-glMerge          *gl_merge_new                 (gchar             *name);
+glMerge          *gl_merge_new                 (const gchar         *name);
 
-glMerge          *gl_merge_dup                 (glMerge           *orig);
+glMerge          *gl_merge_dup                 (const glMerge       *orig);
 
-gchar            *gl_merge_get_name            (glMerge           *merge);
+gchar            *gl_merge_get_name            (const glMerge       *merge);
 
-gchar            *gl_merge_get_description     (glMerge           *merge);
+gchar            *gl_merge_get_description     (const glMerge       *merge);
 
-glMergeSrcType    gl_merge_get_src_type        (glMerge           *merge);
+glMergeSrcType    gl_merge_get_src_type        (const glMerge       *merge);
 
-void              gl_merge_set_src             (glMerge           *merge,
-                                               gchar             *src);
+void              gl_merge_set_src             (glMerge             *merge,
+                                               const gchar         *src);
 
-gchar            *gl_merge_get_src             (glMerge           *merge);
+gchar            *gl_merge_get_src             (const glMerge       *merge);
 
-GList            *gl_merge_get_key_list        (glMerge           *merge);
+GList            *gl_merge_get_key_list        (const glMerge       *merge);
 
-void              gl_merge_free_key_list       (GList            **keys);
+void              gl_merge_free_key_list       (GList              **keys);
 
-gchar            *gl_merge_get_primary_key     (glMerge           *merge);
+gchar            *gl_merge_get_primary_key     (const glMerge       *merge);
 
-gchar            *gl_merge_eval_key            (glMergeRecord     *record,
-                                               gchar             *key);
+gchar            *gl_merge_eval_key            (const glMergeRecord *record,
+                                                const gchar         *key);
 
-const GList      *gl_merge_get_record_list     (glMerge           *merge);
+const GList      *gl_merge_get_record_list     (const glMerge       *merge);
 
-gint              gl_merge_get_record_count    (glMerge           *merge);
+gint              gl_merge_get_record_count    (const glMerge       *merge);
 
 G_END_DECLS
 
 #endif
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/message-bar.c b/src/message-bar.c
new file mode 100644 (file)
index 0000000..3760821
--- /dev/null
@@ -0,0 +1,248 @@
+/*
+ *  message-bar.c
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "message-bar.h"
+
+#include "debug.h"
+
+
+/*===========================================*/
+/* Private data types                        */
+/*===========================================*/
+
+struct _glMessageBarPrivate {
+
+        GtkWidget *icon;
+        GtkWidget *label;
+
+        gchar     *primary_text;
+        gchar     *secondary_text;
+};
+
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+static void       gl_message_bar_finalize       (GObject               *object);
+
+static void       gl_message_bar_construct      (glMessageBar          *this,
+                                                 GtkMessageType         type,
+                                                 GtkButtonsType         buttons,
+                                                 const gchar           *message_format,
+                                                 va_list                args);
+
+
+/*****************************************************************************/
+/* Boilerplate object stuff.                                                 */
+/*****************************************************************************/
+G_DEFINE_TYPE (glMessageBar, gl_message_bar, GTK_TYPE_INFO_BAR)
+
+
+/*****************************************************************************/
+/* Class Init Function.                                                      */
+/*****************************************************************************/
+static void
+gl_message_bar_class_init (glMessageBarClass *class)
+{
+       GObjectClass *object_class = G_OBJECT_CLASS (class);
+
+       gl_message_bar_parent_class = g_type_class_peek_parent (class);
+
+       object_class->finalize = gl_message_bar_finalize;       
+}
+
+
+/*****************************************************************************/
+/* Object Instance Init Function.                                            */
+/*****************************************************************************/
+static void
+gl_message_bar_init (glMessageBar *dialog)
+{
+       g_return_if_fail (GL_IS_MESSAGE_BAR (dialog));
+
+       dialog->priv = g_new0 (glMessageBarPrivate, 1);
+}
+
+
+/*****************************************************************************/
+/* Finalize Function.                                                        */
+/*****************************************************************************/
+static void 
+gl_message_bar_finalize (GObject *object)
+{
+       glMessageBar* dialog = GL_MESSAGE_BAR (object);;
+       
+       g_return_if_fail (object != NULL);
+       g_return_if_fail (GL_IS_MESSAGE_BAR (dialog));
+       g_return_if_fail (dialog->priv != NULL);
+
+       g_free (dialog->priv->primary_text);
+       g_free (dialog->priv->secondary_text);
+       g_free (dialog->priv);
+
+       G_OBJECT_CLASS (gl_message_bar_parent_class)->finalize (object);
+}
+
+
+/*****************************************************************************/
+/* NEW message bar.                                                          */
+/*****************************************************************************/
+GtkWidget *
+gl_message_bar_new (GtkMessageType  type,
+                    GtkButtonsType  buttons,
+                    const gchar    *message_format,
+                    ...)
+{
+       GtkWidget *widget;
+        va_list    args;
+
+       widget = GTK_WIDGET (g_object_new (GL_TYPE_MESSAGE_BAR, NULL));
+        
+        va_start (args, message_format);
+        gl_message_bar_construct (GL_MESSAGE_BAR (widget), type, buttons, message_format, args);
+        va_end (args);
+
+       return widget;
+}
+
+
+/*****************************************************************************/
+/* Construct message bar.                                                    */
+/*****************************************************************************/
+static void
+gl_message_bar_construct (glMessageBar    *this,
+                          GtkMessageType   type,
+                          GtkButtonsType   buttons,
+                          const gchar     *message_format,
+                          va_list          args)
+{
+        GtkWidget *hbox;
+
+        gtk_info_bar_set_message_type (GTK_INFO_BAR (this), type);
+
+        this->priv->icon = gtk_image_new ();
+        switch (type)
+        {
+        case GTK_MESSAGE_INFO:
+                gtk_image_set_from_stock (GTK_IMAGE (this->priv->icon),
+                                          GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG);
+                break;
+        case GTK_MESSAGE_WARNING:
+                gtk_image_set_from_stock (GTK_IMAGE (this->priv->icon),
+                                          GTK_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_DIALOG);
+                break;
+        case GTK_MESSAGE_QUESTION:
+                gtk_image_set_from_stock (GTK_IMAGE (this->priv->icon),
+                                          GTK_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG);
+                break;
+        case GTK_MESSAGE_ERROR:
+                gtk_image_set_from_stock (GTK_IMAGE (this->priv->icon),
+                                          GTK_STOCK_DIALOG_ERROR, GTK_ICON_SIZE_DIALOG);
+                break;
+        default:
+                break;
+        }
+
+        this->priv->primary_text = g_strdup_vprintf (message_format, args);
+        this->priv->label = gtk_label_new (this->priv->primary_text);
+
+        hbox = gtk_info_bar_get_content_area (GTK_INFO_BAR (this));
+        gtk_box_pack_start (GTK_BOX (hbox), this->priv->icon, FALSE, FALSE, 0);
+        gtk_box_pack_start (GTK_BOX (hbox), this->priv->label, FALSE, FALSE, 0);
+
+        switch (buttons)
+        {
+        case GTK_BUTTONS_OK:
+                gtk_info_bar_add_button (GTK_INFO_BAR (this),
+                                         GTK_STOCK_OK, GTK_RESPONSE_ACCEPT);
+                break;
+        case GTK_BUTTONS_CLOSE:
+                gtk_info_bar_add_button (GTK_INFO_BAR (this),
+                                         GTK_STOCK_CLOSE, GTK_RESPONSE_ACCEPT);
+                break;
+        case GTK_BUTTONS_CANCEL:
+                gtk_info_bar_add_button (GTK_INFO_BAR (this),
+                                         GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT);
+                break;
+        case GTK_BUTTONS_YES_NO:
+                gtk_info_bar_add_button (GTK_INFO_BAR (this),
+                                         GTK_STOCK_YES, GTK_RESPONSE_ACCEPT);
+                gtk_info_bar_add_button (GTK_INFO_BAR (this),
+                                         GTK_STOCK_NO, GTK_RESPONSE_REJECT);
+                break;
+        case GTK_BUTTONS_OK_CANCEL:
+                gtk_info_bar_add_button (GTK_INFO_BAR (this),
+                                         GTK_STOCK_OK, GTK_RESPONSE_ACCEPT);
+                gtk_info_bar_add_button (GTK_INFO_BAR (this),
+                                         GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT);
+                break;
+        default:
+                break;
+        }
+}
+
+
+/*****************************************************************************/
+/* Set secondary text.                                                       */
+/*****************************************************************************/
+void
+gl_message_bar_format_secondary_text (glMessageBar   *this,
+                                      const gchar    *message_format,
+                                      ...)
+{
+        va_list    args;
+        gchar     *markup;
+
+        g_free (this->priv->secondary_text);
+
+        va_start (args, message_format);
+        this->priv->secondary_text = g_strdup_vprintf (message_format, args);
+        va_end (args);
+
+        markup = g_strdup_printf ("<span weight=\"bold\" size=\"larger\">%s</span>\n%s",
+                                  this->priv->primary_text,
+                                  this->priv->secondary_text);
+
+        gtk_label_set_markup (GTK_LABEL (this->priv->label), markup);
+
+        g_free (markup);
+}
+
+
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/message-bar.h b/src/message-bar.h
new file mode 100644 (file)
index 0000000..6bc5209
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+ *  message-bar.h
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __MESSAGE_BAR_H__
+#define __MESSAGE_BAR_H__
+
+#include <gtk/gtk.h>
+
+G_BEGIN_DECLS
+
+#define GL_TYPE_MESSAGE_BAR            (gl_message_bar_get_type ())
+#define GL_MESSAGE_BAR(obj) \
+        (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_MESSAGE_BAR, glMessageBar))
+#define GL_MESSAGE_BAR_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_MESSAGE_BAR, glMessageBarClass))
+#define GL_IS_MESSAGE_BAR(obj) \
+        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_MESSAGE_BAR))
+#define GL_IS_MESSAGE_BAR_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_MESSAGE_BAR))
+#define GL_MESSAGE_BAR_GET_CLASS(obj) \
+        (G_TYPE_INSTANCE_GET_CLASS ((obj), GL_TYPE_MESSAGE_BAR, glMessageBarClass))
+
+
+typedef struct _glMessageBar         glMessageBar;
+typedef struct _glMessageBarClass    glMessageBarClass;
+
+typedef struct _glMessageBarPrivate  glMessageBarPrivate;
+
+struct _glMessageBar
+{
+       GtkInfoBar           parent_instance;
+
+       glMessageBarPrivate *priv;
+
+};
+
+struct  _glMessageBarClass
+{
+       GtkInfoBarClass      parent_class;
+};
+
+
+GType      gl_message_bar_get_type                (void) G_GNUC_CONST;
+
+GtkWidget *gl_message_bar_new                     (GtkMessageType  type,
+                                                   GtkButtonsType  buttons,
+                                                   const gchar    *message_format,
+                                                   ...);
+
+void       gl_message_bar_format_secondary_text   (glMessageBar   *this,
+                                                   const gchar    *message_format,
+                                                   ...);
+
+
+
+
+G_END_DECLS
+
+#endif
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/mini-label-preview.c b/src/mini-label-preview.c
new file mode 100644 (file)
index 0000000..72f6f49
--- /dev/null
@@ -0,0 +1,306 @@
+/*
+ *  mini-label-preview.c
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "mini-label-preview.h"
+
+#include <libglabels.h>
+#include "cairo-label-path.h"
+#include "color.h"
+#include "marshal.h"
+
+
+/*===========================================*/
+/* Private macros and constants.             */
+/*===========================================*/
+
+#define MARGIN 2
+#define SHADOW_OFFSET 3
+
+
+/*===========================================*/
+/* Private types                             */
+/*===========================================*/
+
+struct _glMiniLabelPreviewPrivate {
+
+        lglTemplate *template;
+        gboolean     rotate_flag;
+};
+
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+static void       gl_mini_label_preview_finalize (GObject              *object);
+
+static void       style_set_cb                   (GtkWidget            *widget,
+                                                  GtkStyle             *previous_style);
+
+static void       redraw                         (glMiniLabelPreview   *this);
+
+static gboolean   draw_cb                        (GtkWidget            *widget,
+                                                  cairo_t              *cr);
+
+static void       draw_preview                   (glMiniLabelPreview   *this,
+                                                  cairo_t              *cr);
+
+
+/****************************************************************************/
+/* Boilerplate Object stuff.                                                */
+/****************************************************************************/
+G_DEFINE_TYPE (glMiniLabelPreview, gl_mini_label_preview, GTK_TYPE_DRAWING_AREA)
+
+
+/*****************************************************************************/
+/* Class Init Function.                                                      */
+/*****************************************************************************/
+static void
+gl_mini_label_preview_class_init (glMiniLabelPreviewClass *class)
+{
+       GObjectClass   *gobject_class = G_OBJECT_CLASS (class);
+       GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
+
+        gl_mini_label_preview_parent_class = g_type_class_peek_parent (class);
+
+       gobject_class->finalize    = gl_mini_label_preview_finalize;
+
+        widget_class->style_set    = style_set_cb;
+        widget_class->draw         = draw_cb;
+}
+
+
+/*****************************************************************************/
+/* Object Instance Init Function.                                            */
+/*****************************************************************************/
+static void
+gl_mini_label_preview_init (glMiniLabelPreview *this)
+{
+        gtk_widget_set_has_window (GTK_WIDGET (this), FALSE);
+
+       this->priv = g_new0 (glMiniLabelPreviewPrivate, 1);
+}
+
+
+/*****************************************************************************/
+/* Finalize Method.                                                          */
+/*****************************************************************************/
+static void
+gl_mini_label_preview_finalize (GObject *object)
+{
+       glMiniLabelPreview *this = GL_MINI_LABEL_PREVIEW (object);
+
+       g_return_if_fail (object != NULL);
+       g_return_if_fail (GL_IS_MINI_LABEL_PREVIEW (object));
+
+        lgl_template_free (this->priv->template);
+       g_free (this->priv);
+
+       G_OBJECT_CLASS (gl_mini_label_preview_parent_class)->finalize (object);
+}
+
+
+/*****************************************************************************/
+/** New Object Generator.                                                    */
+/*****************************************************************************/
+GtkWidget *
+gl_mini_label_preview_new (gint         w,
+                           gint         h)
+{
+       glMiniLabelPreview *this;
+
+       this = g_object_new (GL_TYPE_MINI_LABEL_PREVIEW, NULL);
+
+        gtk_widget_set_size_request (GTK_WIDGET (this), w, h);
+
+       return GTK_WIDGET (this);
+}
+
+
+/*****************************************************************************/
+/* Set label by name.                                                        */
+/*****************************************************************************/
+void
+gl_mini_label_preview_set_by_name (glMiniLabelPreview *this,
+                                   gchar              *name,
+                                   gboolean            rotate_flag)
+{
+        if (!name)
+        {
+                lgl_template_free (this->priv->template);
+                this->priv->template = NULL;
+        }
+        else
+        {
+                this->priv->template = lgl_db_lookup_template_from_name (name);
+                this->priv->rotate_flag = rotate_flag;
+        }
+
+        redraw (this);
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Style set handler (updates colors when style/theme changes).             */
+/*--------------------------------------------------------------------------*/
+static void
+style_set_cb (GtkWidget        *widget,
+              GtkStyle         *previous_style)
+{
+        redraw (GL_MINI_LABEL_PREVIEW (widget));
+}
+
+
+/*****************************************************************************/
+/* Request redraw.                                                           */
+/*****************************************************************************/
+static void
+redraw (glMiniLabelPreview  *this)
+{
+        GdkWindow     *window;
+        GtkAllocation  allocation;
+
+        window = gtk_widget_get_window (GTK_WIDGET (this));
+
+        if (window)
+        {
+                gtk_widget_get_allocation (GTK_WIDGET (this), &allocation);
+                gdk_window_invalidate_rect (window, &allocation, FALSE);
+        }
+}
+
+
+/*****************************************************************************/
+/* "Expose event" callback.                                                  */
+/*****************************************************************************/
+static gboolean
+draw_cb (GtkWidget      *widget,
+         cairo_t        *cr)
+{
+
+       draw_preview (GL_MINI_LABEL_PREVIEW (widget), cr);
+
+       return FALSE;
+}
+
+
+/*****************************************************************************/
+/* Draw sample.                                                              */
+/*****************************************************************************/
+static void
+draw_preview (glMiniLabelPreview *this,
+              cairo_t            *cr)
+{
+        GtkAllocation           allocation;
+        GtkStyle               *style;
+        gdouble                 w, h;
+        guint                   fill_color, line_color, shadow_color;
+        const lglTemplateFrame *frame;
+        gdouble                 w_label, h_label;
+        gdouble                 scale;
+
+
+        gtk_widget_get_allocation (GTK_WIDGET (this), &allocation);
+        w = allocation.width;
+        h = allocation.height;
+
+
+        style = gtk_widget_get_style (GTK_WIDGET (this));
+        if ( gtk_widget_is_sensitive (GTK_WIDGET (this)) )
+        {
+                fill_color   = gl_color_from_gdk_color (&style->light[GTK_STATE_NORMAL]);
+                line_color   = gl_color_from_gdk_color (&style->fg[GTK_STATE_NORMAL]);
+                shadow_color = gl_color_from_gdk_color (&style->dark[GTK_STATE_NORMAL]);
+        }
+        else
+        {
+                fill_color   = GL_COLOR_NONE;
+                line_color   = gl_color_from_gdk_color (&style->fg[GTK_STATE_INSENSITIVE]);
+                shadow_color = GL_COLOR_NONE;
+        }
+
+
+        if (this->priv->template == NULL)
+        {
+                return;
+        }
+
+        frame = (lglTemplateFrame *)this->priv->template->frames->data;
+
+        if (this->priv->rotate_flag)
+        {
+                lgl_template_frame_get_size (frame, &h_label, &w_label);
+        }
+        else
+        {
+                lgl_template_frame_get_size (frame, &w_label, &h_label);
+        }
+
+        scale = MIN( (w - 2*MARGIN - 2*SHADOW_OFFSET)/w_label,
+                     (h - 2*MARGIN - 2*SHADOW_OFFSET)/h_label );
+
+
+        cairo_translate (cr, w/2.0, h/2.0);
+        cairo_scale (cr, scale, scale);
+        cairo_translate (cr, -w_label/2.0, -h_label/2.0);
+
+
+        /*
+         * Shadow
+         */
+        cairo_save (cr);
+        cairo_translate (cr, SHADOW_OFFSET/scale, SHADOW_OFFSET/scale);
+        gl_cairo_label_path (cr, this->priv->template, this->priv->rotate_flag, FALSE);
+
+        cairo_set_source_rgba (cr, GL_COLOR_RGBA_ARGS (shadow_color));
+        cairo_fill (cr);
+        cairo_restore (cr);
+
+        /*
+         * Label + outline
+         */
+        gl_cairo_label_path (cr, this->priv->template, this->priv->rotate_flag, FALSE);
+
+        cairo_set_source_rgba (cr, GL_COLOR_RGBA_ARGS (fill_color));
+        cairo_fill_preserve (cr);
+
+        cairo_set_line_width (cr, 1.0/scale);
+        cairo_set_source_rgba (cr, GL_COLOR_RGBA_ARGS (line_color));
+        cairo_stroke (cr);
+
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/mini-label-preview.h b/src/mini-label-preview.h
new file mode 100644 (file)
index 0000000..9cc8ece
--- /dev/null
@@ -0,0 +1,79 @@
+/*
+ *  mini-label-preview.h
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __MINI_LABEL_PREVIEW_H__
+#define __MINI_LABEL_PREVIEW_H__
+
+
+#include <gtk/gtk.h>
+
+
+G_BEGIN_DECLS
+
+#define GL_TYPE_MINI_LABEL_PREVIEW (gl_mini_label_preview_get_type ())
+#define GL_MINI_LABEL_PREVIEW(obj) \
+        (G_TYPE_CHECK_INSTANCE_CAST((obj), GL_TYPE_MINI_LABEL_PREVIEW, glMiniLabelPreview ))
+#define GL_MINI_LABEL_PREVIEW_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_MINI_LABEL_PREVIEW, glMiniLabelPreviewClass))
+#define GL_IS_MINI_LABEL_PREVIEW(obj) \
+        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_MINI_LABEL_PREVIEW))
+#define GL_IS_MINI_LABEL_PREVIEW_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_MINI_LABEL_PREVIEW))
+
+typedef struct _glMiniLabelPreview        glMiniLabelPreview;
+typedef struct _glMiniLabelPreviewPrivate glMiniLabelPreviewPrivate;
+typedef struct _glMiniLabelPreviewClass   glMiniLabelPreviewClass;
+
+struct _glMiniLabelPreview {
+       GtkDrawingArea               parent_widget;
+
+       glMiniLabelPreviewPrivate   *priv;
+};
+
+struct _glMiniLabelPreviewClass {
+       GtkDrawingAreaClass          parent_class;
+};
+
+
+GType      gl_mini_label_preview_get_type (void) G_GNUC_CONST;
+
+GtkWidget *gl_mini_label_preview_new         (gint                w,
+                                              gint                h);
+
+void       gl_mini_label_preview_set_by_name (glMiniLabelPreview *this,
+                                              gchar              *name,
+                                              gboolean            rotate_flag);
+
+
+
+G_END_DECLS
+
+#endif /* __MINI_LABEL_PREVIEW_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index c7d3afa3758bdf09a1b8cb5645a3459a50350b28..5ee99ebd8747efd3306520bf4c42f01fe6a67a9b 100644 (file)
@@ -1,35 +1,31 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  mini-preview-pixbuf-cache.c:  GLabels mini-preview pixbuf cache module
+ *  mini-preview-pixbuf-cache.c
+ *  Copyright (C) 2007-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "mini-preview-pixbuf-cache.h"
-#include "mini-preview-pixbuf.h"
 
-#include "libglabels/db.h"
+#include <glib.h>
 
-#include <glib/gmem.h>
-#include <glib/ghash.h>
+#include <libglabels.h>
+#include "mini-preview-pixbuf.h"
 
 #include "debug.h"
 
@@ -47,7 +43,7 @@ static GHashTable *mini_preview_pixbuf_cache = NULL;
 /* Private function prototypes.                           */
 /*========================================================*/
 
-\f
+
 /*****************************************************************************/
 /* Create a new hash table to keep track of cached mini preview pixbufs.     */
 /*****************************************************************************/
@@ -60,9 +56,9 @@ gl_mini_preview_pixbuf_cache_init (void)
 
        gl_debug (DEBUG_PIXBUF_CACHE, "START");
 
-       mini_preview_pixbuf_cache = g_hash_table_new (g_str_hash, g_str_equal);
+       mini_preview_pixbuf_cache = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
 
-        names = lgl_db_get_template_name_list_unique (NULL, NULL, NULL);
+        names = lgl_db_get_template_name_list_all (NULL, NULL, NULL);
         for ( p=names; p != NULL; p=p->next )
         {
                 gl_debug (DEBUG_PIXBUF_CACHE, "name = \"%s\"", p->data);
@@ -76,6 +72,7 @@ gl_mini_preview_pixbuf_cache_init (void)
        gl_debug (DEBUG_PIXBUF_CACHE, "END pixbuf_cache=%p", mini_preview_pixbuf_cache);
 }
 
+
 /*****************************************************************************/
 /* Add pixbuf to cache by template.                                          */
 /*****************************************************************************/
@@ -83,27 +80,21 @@ void
 gl_mini_preview_pixbuf_cache_add_by_template (lglTemplate *template)
 {
         GdkPixbuf        *pixbuf;
-        GList            *p;
-        lglTemplateAlias *alias;
         gchar            *name;
 
        gl_debug (DEBUG_PIXBUF_CACHE, "START");
 
         pixbuf = gl_mini_preview_pixbuf_new (template, 72, 72);
 
-        for ( p=template->aliases; p != NULL; p=p->next )
-        {
-                alias = (lglTemplateAlias *)p->data;
-
-                name = g_strdup_printf ("%s %s", alias->brand, alias->part);
-                g_hash_table_insert (mini_preview_pixbuf_cache, name, g_object_ref (pixbuf));
-        }
+        name = g_strdup_printf ("%s %s", template->brand, template->part);
+        g_hash_table_insert (mini_preview_pixbuf_cache, name, g_object_ref (pixbuf));
 
         g_object_unref (pixbuf);
 
        gl_debug (DEBUG_PIXBUF_CACHE, "END");
 }
 
+
 /*****************************************************************************/
 /* Add pixbuf to cache by name.                                              */
 /*****************************************************************************/
@@ -124,6 +115,21 @@ gl_mini_preview_pixbuf_cache_add_by_name (gchar      *name)
        gl_debug (DEBUG_PIXBUF_CACHE, "END");
 }
 
+
+/*****************************************************************************/
+/* Delete pixbuf from cache by name.                                         */
+/*****************************************************************************/
+void
+gl_mini_preview_pixbuf_cache_delete_by_name (gchar *name)
+{
+       gl_debug (DEBUG_PIXBUF_CACHE, "START");
+
+        g_hash_table_remove (mini_preview_pixbuf_cache, name);
+
+       gl_debug (DEBUG_PIXBUF_CACHE, "END");
+}
+
+
 /*****************************************************************************/
 /* Get pixbuf.                                                               */
 /*****************************************************************************/
@@ -147,3 +153,13 @@ gl_mini_preview_pixbuf_cache_get_pixbuf (gchar      *name)
        return g_object_ref (pixbuf);
 }
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 092d5692bf77d61510567b5d62f5669394b4a1c4..c345d670718ac0360e07e884c9eac8739f75ec9b 100644 (file)
@@ -1,42 +1,52 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  mini-preview-pixbuf-cache.h:  GLabels mini-preview pixbuf cache module
+ *  mini-preview-pixbuf-cache.h
+ *  Copyright (C) 2007-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #ifndef __MINI_PREVIEW_PIXBUF_CACHE_H__
 #define __MINI_PREVIEW_PIXBUF_CACHE_H__
 
-#include <libglabels/template.h>
 #include <gdk-pixbuf/gdk-pixbuf.h>
+#include <libglabels/libglabels.h>
 
 G_BEGIN_DECLS
 
 void        gl_mini_preview_pixbuf_cache_init            (void);
 
-void        gl_mini_preview_pixbuf_cache_add_by_name     (gchar      *name);
+void        gl_mini_preview_pixbuf_cache_add_by_name     (gchar       *name);
 void        gl_mini_preview_pixbuf_cache_add_by_template (lglTemplate *template);
 
-GdkPixbuf  *gl_mini_preview_pixbuf_cache_get_pixbuf      (gchar      *name);
+void        gl_mini_preview_pixbuf_cache_delete_by_name  (gchar       *name);
+
+GdkPixbuf  *gl_mini_preview_pixbuf_cache_get_pixbuf      (gchar       *name);
 
 
 G_END_DECLS
 
 #endif /*__MINI_PREVIEW_PIXBUF_CACHE_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index a46425252065b106a598ed5063658c8b44621fc9..0651263f287384f119a60e8ebb274394aa5e640c 100644 (file)
@@ -1,35 +1,32 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  mini-preview-pixbuf.c:  mini preview pixbuf module
+ *  mini-preview-pixbuf.c
+ *  Copyright (C) 2006-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2006  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 
 #include "mini-preview-pixbuf.h"
-#include "cairo-label-path.h"
 
 #include <cairo.h>
 #include <math.h>
 
+#include "cairo-label-path.h"
+
 #include "debug.h"
 
 /*===========================================*/
@@ -223,3 +220,13 @@ draw_label_outline (cairo_t           *cr,
        gl_debug (DEBUG_MINI_PREVIEW, "END");
 }
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index ddad146bbe0d711f005133cceaa4afcd66f86596..825938e59e6b40b9ab536852bd827b0ee47a0f57 100644 (file)
@@ -1,25 +1,21 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  mini-preview-pixbuf.h:  mini-preview pixbuf module header file
+ *  mini-preview-pixbuf.h
+ *  Copyright (C) 2006-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2006  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __MINI_PREVIEW_PIXBUF_H__
@@ -27,7 +23,7 @@
 
 
 #include <gdk-pixbuf/gdk-pixbuf.h>
-#include <libglabels/template.h>
+#include <libglabels/libglabels.h>
 
 G_BEGIN_DECLS
 
@@ -38,3 +34,14 @@ GdkPixbuf *gl_mini_preview_pixbuf_new (lglTemplate *template,
 G_END_DECLS
 
 #endif
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/mini-preview.c b/src/mini-preview.c
new file mode 100644 (file)
index 0000000..dc92d6e
--- /dev/null
@@ -0,0 +1,1190 @@
+/*
+ *  mini-preview.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "mini-preview.h"
+
+#include <math.h>
+#include <glib/gi18n.h>
+
+#include <libglabels.h>
+#include "cairo-label-path.h"
+#include "marshal.h"
+#include "color.h"
+#include "print.h"
+
+#include "debug.h"
+
+
+/*===========================================*/
+/* Private macros and constants.             */
+/*===========================================*/
+
+#define MARGIN 2
+#define SHADOW_OFFSET 3
+
+#define ARROW_SCALE 0.35
+#define UP_FONT_FAMILY "Sans"
+#define UP_SCALE 0.15
+
+/*===========================================*/
+/* Private types                             */
+/*===========================================*/
+
+enum {
+        CLICKED,
+        PRESSED,
+        RELEASED,
+        LAST_SIGNAL
+};
+
+typedef struct {
+        gdouble x;
+        gdouble y;
+} LabelCenter;
+
+struct _glMiniPreviewPrivate {
+
+        GtkWidget      *canvas;
+
+        lglTemplate    *template;
+        gint            labels_per_sheet;
+        LabelCenter    *centers;
+
+        gint            highlight_first;
+        gint            highlight_last;
+
+        gboolean        dragging;
+        gint            first_i;
+        gint            last_i;
+        gint            prev_i;
+
+        gboolean        draw_arrow_flag;
+        gboolean        rotate_flag;
+
+        gboolean        update_scheduled_flag;
+
+        glLabel        *label;
+        gint            page;
+        gint            n_sheets;
+        gint            n_copies;
+        gint            first;
+        gint            last;
+        gboolean        collate_flag;
+        gboolean        outline_flag;
+        gboolean        reverse_flag;
+        gboolean        crop_marks_flag;
+};
+
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+static gint mini_preview_signals[LAST_SIGNAL] = { 0 };
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+static void     gl_mini_preview_finalize       (GObject                *object);
+
+static void     gl_mini_preview_construct      (glMiniPreview          *this,
+                                                gint                    height,
+                                                gint                    width);
+
+static gboolean button_press_event_cb          (GtkWidget              *widget,
+                                                GdkEventButton         *event);
+static gboolean motion_notify_event_cb         (GtkWidget              *widget,
+                                                GdkEventMotion         *event);
+static gboolean button_release_event_cb        (GtkWidget              *widget,
+                                                GdkEventButton         *event);
+
+
+static gboolean draw_cb                        (GtkWidget              *widget,
+                                                cairo_t                *cr,
+                                                glMiniPreview          *this);
+static void     style_set_cb                   (GtkWidget              *widget,
+                                                GtkStyle               *previous_style,
+                                                glMiniPreview          *this);
+
+static void     redraw                         (glMiniPreview          *this);
+static void     draw                           (glMiniPreview          *this,
+                                                cairo_t                *cr);
+
+static void     draw_shadow                    (glMiniPreview          *this,
+                                                cairo_t                *cr,
+                                                gdouble                 x,
+                                                gdouble                 y,
+                                                gdouble                 width,
+                                                gdouble                 height);
+static void     draw_paper                     (glMiniPreview          *this,
+                                                cairo_t                *cr,
+                                                gdouble                 width,
+                                                gdouble                 height,
+                                                gdouble                 line_width);
+static void     draw_labels                    (glMiniPreview          *this,
+                                                cairo_t                *cr,
+                                                lglTemplate            *template,
+                                                gdouble                 line_width);
+static void     draw_arrow                     (glMiniPreview          *this,
+                                                cairo_t                *cr);
+
+static void     draw_rich_preview              (glMiniPreview          *this,
+                                                cairo_t                *cr);
+
+
+static gint     find_closest_label             (glMiniPreview          *this,
+                                                gdouble                 x,
+                                                gdouble                 y);
+
+static gdouble  set_transform_and_get_scale    (glMiniPreview          *this,
+                                                cairo_t                *cr);
+
+
+/****************************************************************************/
+/* Object infrastructure.                                                   */
+/****************************************************************************/
+G_DEFINE_TYPE (glMiniPreview, gl_mini_preview, GTK_TYPE_EVENT_BOX)
+
+
+/*****************************************************************************/
+/* Class Init Function.                                                      */
+/*****************************************************************************/
+static void
+gl_mini_preview_class_init (glMiniPreviewClass *class)
+{
+        GObjectClass   *object_class = G_OBJECT_CLASS (class);
+        GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
+
+        gl_debug (DEBUG_MINI_PREVIEW, "START");
+
+        gl_mini_preview_parent_class = g_type_class_peek_parent (class);
+
+        object_class->finalize = gl_mini_preview_finalize;
+
+        widget_class->button_press_event   = button_press_event_cb;
+        widget_class->motion_notify_event  = motion_notify_event_cb;
+        widget_class->button_release_event = button_release_event_cb;
+
+        mini_preview_signals[CLICKED] =
+            g_signal_new ("clicked",
+                          G_OBJECT_CLASS_TYPE(object_class),
+                          G_SIGNAL_RUN_LAST,
+                          G_STRUCT_OFFSET (glMiniPreviewClass, clicked),
+                          NULL, NULL,
+                          gl_marshal_VOID__INT,
+                          G_TYPE_NONE, 1, G_TYPE_INT);
+
+        mini_preview_signals[PRESSED] =
+            g_signal_new ("pressed",
+                          G_OBJECT_CLASS_TYPE(object_class),
+                          G_SIGNAL_RUN_LAST,
+                          G_STRUCT_OFFSET (glMiniPreviewClass, pressed),
+                          NULL, NULL,
+                          gl_marshal_VOID__INT_INT,
+                          G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_INT);
+
+        mini_preview_signals[RELEASED] =
+            g_signal_new ("released",
+                          G_OBJECT_CLASS_TYPE(object_class),
+                          G_SIGNAL_RUN_LAST,
+                          G_STRUCT_OFFSET (glMiniPreviewClass, released),
+                          NULL, NULL,
+                          gl_marshal_VOID__INT_INT,
+                          G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_INT);
+
+        gl_debug (DEBUG_MINI_PREVIEW, "END");
+}
+
+
+/*****************************************************************************/
+/* Object Instance Init Function.                                            */
+/*****************************************************************************/
+static void
+gl_mini_preview_init (glMiniPreview *this)
+{
+        gl_debug (DEBUG_MINI_PREVIEW, "START");
+
+        this->priv = g_new0 (glMiniPreviewPrivate, 1);
+
+        gtk_widget_add_events (GTK_WIDGET (this),
+                               GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
+                               GDK_POINTER_MOTION_MASK);
+
+        gtk_event_box_set_visible_window (GTK_EVENT_BOX (this), FALSE);
+
+        this->priv->canvas = gtk_drawing_area_new ();
+        gtk_widget_set_has_window(this->priv->canvas, FALSE);
+        gtk_container_add (GTK_CONTAINER (this), this->priv->canvas);
+
+        g_signal_connect (G_OBJECT (this->priv->canvas), "draw",
+                          G_CALLBACK (draw_cb), this);
+        g_signal_connect (G_OBJECT (this->priv->canvas), "style-set",
+                          G_CALLBACK (style_set_cb), this);
+
+        gl_debug (DEBUG_MINI_PREVIEW, "END");
+}
+
+
+/*****************************************************************************/
+/* Finalize Method.                                                          */
+/*****************************************************************************/
+static void
+gl_mini_preview_finalize (GObject *object)
+{
+        glMiniPreview *this = GL_MINI_PREVIEW (object);
+
+        gl_debug (DEBUG_MINI_PREVIEW, "START");
+
+        g_return_if_fail (object != NULL);
+        g_return_if_fail (GL_IS_MINI_PREVIEW (object));
+
+        if (this->priv->label)
+        {
+                g_object_unref (this->priv->label);
+        }
+        lgl_template_free (this->priv->template);
+        g_free (this->priv->centers);
+        g_free (this->priv);
+
+        G_OBJECT_CLASS (gl_mini_preview_parent_class)->finalize (object);
+
+        gl_debug (DEBUG_MINI_PREVIEW, "END");
+}
+
+
+/*****************************************************************************/
+/** New Object Generator.                                                    */
+/*****************************************************************************/
+GtkWidget *
+gl_mini_preview_new (gint height,
+                     gint width)
+{
+        glMiniPreview *this;
+
+        gl_debug (DEBUG_MINI_PREVIEW, "START");
+
+        this = g_object_new (gl_mini_preview_get_type (), NULL);
+
+        gl_mini_preview_construct (this, height, width);
+
+        gl_debug (DEBUG_MINI_PREVIEW, "END");
+
+        return GTK_WIDGET (this);
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Construct composite widget.                                              */
+/*--------------------------------------------------------------------------*/
+static void
+gl_mini_preview_construct (glMiniPreview *this,
+                           gint           height,
+                           gint           width)
+{
+        gl_debug (DEBUG_MINI_PREVIEW, "START");
+
+        gtk_widget_set_size_request (GTK_WIDGET (this->priv->canvas), width, height);
+
+        gl_debug (DEBUG_MINI_PREVIEW, "END");
+}
+
+
+/****************************************************************************/
+/* Set template for mini-preview to determine geometry.                     */
+/****************************************************************************/
+void
+gl_mini_preview_set_by_name (glMiniPreview *this,
+                             const gchar   *name)
+{
+        lglTemplate *template;
+
+        gl_debug (DEBUG_MINI_PREVIEW, "START");
+
+        /* Fetch template */
+        template = lgl_db_lookup_template_from_name (name);
+
+        gl_mini_preview_set_template (this, template);
+
+        lgl_template_free (template);
+
+        gl_debug (DEBUG_MINI_PREVIEW, "END");
+}
+
+
+/****************************************************************************/
+/* Set template for mini-preview to determine geometry.                     */
+/****************************************************************************/
+void
+gl_mini_preview_set_template (glMiniPreview     *this,
+                              const lglTemplate *template)
+{
+        const lglTemplateFrame    *frame;
+        lglTemplateOrigin         *origins;
+        gdouble                    w, h;
+        gint                       i;
+
+        gl_debug (DEBUG_MINI_PREVIEW, "START");
+
+        frame = (lglTemplateFrame *)template->frames->data;
+
+        /*
+         * Set template
+         */
+        lgl_template_free (this->priv->template);
+        this->priv->template = lgl_template_dup (template);
+
+        /*
+         * Set labels per sheet
+         */
+        this->priv->labels_per_sheet = lgl_template_frame_get_n_labels (frame);
+
+        /*
+         * Initialize centers
+         */
+        g_free (this->priv->centers);
+        this->priv->centers = g_new0 (LabelCenter, this->priv->labels_per_sheet);
+        origins = lgl_template_frame_get_origins (frame);
+        lgl_template_frame_get_size (frame, &w, &h);
+        for ( i=0; i<this->priv->labels_per_sheet; i++ )
+        {
+                this->priv->centers[i].x = origins[i].x + w/2.0;
+                this->priv->centers[i].y = origins[i].y + h/2.0;
+        }
+        g_free (origins);
+
+        /*
+         * Redraw modified preview
+         */
+        redraw (this);
+
+        gl_debug (DEBUG_MINI_PREVIEW, "END");
+}
+
+
+/****************************************************************************/
+/* Highlight given label outlines.                                          */
+/****************************************************************************/
+void
+gl_mini_preview_highlight_range (glMiniPreview *this,
+                                 gint           first_label,
+                                 gint           last_label)
+{
+        gl_debug (DEBUG_MINI_PREVIEW, "START");
+
+        if ( (first_label != this->priv->highlight_first) ||
+             (last_label  != this->priv->highlight_last) )
+        {
+
+                this->priv->highlight_first = first_label;
+                this->priv->highlight_last =  last_label;
+
+                redraw (this);
+
+        }
+
+        gl_debug (DEBUG_MINI_PREVIEW, "END");
+}
+
+
+/****************************************************************************/
+/* Set draw arrow.                                                          */
+/****************************************************************************/
+void
+gl_mini_preview_set_draw_arrow (glMiniPreview     *this,
+                                gboolean           draw_arrow_flag)
+{
+        if ( draw_arrow_flag != this->priv->draw_arrow_flag )
+        {
+                this->priv->draw_arrow_flag = draw_arrow_flag;
+                redraw (this);
+        }
+}
+
+
+/****************************************************************************/
+/* Set rotate flag.                                                         */
+/****************************************************************************/
+void
+gl_mini_preview_set_rotate (glMiniPreview     *this,
+                            gboolean           rotate_flag)
+{
+        if ( rotate_flag != this->priv->rotate_flag )
+        {
+                this->priv->rotate_flag = rotate_flag;
+                redraw (this);
+        }
+}
+
+
+/****************************************************************************/
+/* Set label.                                                               */
+/****************************************************************************/
+void
+gl_mini_preview_set_label (glMiniPreview     *this,
+                           glLabel           *label)
+{
+        if ( this->priv->label )
+        {
+                g_object_unref (this->priv->label);
+        }
+        this->priv->label = g_object_ref (label);
+        redraw (this);
+}
+
+
+/****************************************************************************/
+/* Set page number.                                                         */
+/****************************************************************************/
+void
+gl_mini_preview_set_page (glMiniPreview     *this,
+                          gint               page)
+{
+        if ( page != this->priv->page )
+        {
+                this->priv->page = page;
+                redraw (this);
+        }
+}
+
+
+/****************************************************************************/
+/* Set number of sheets.                                                    */
+/****************************************************************************/
+void
+gl_mini_preview_set_n_sheets (glMiniPreview     *this,
+                              gint               n_sheets)
+{
+        if ( n_sheets != this->priv->n_sheets )
+        {
+                this->priv->n_sheets = n_sheets;
+                redraw (this);
+        }
+}
+
+
+/****************************************************************************/
+/* Set number of copies (merge only).                                       */
+/****************************************************************************/
+void
+gl_mini_preview_set_n_copies (glMiniPreview     *this,
+                              gint               n_copies)
+{
+        if ( n_copies != this->priv->n_copies )
+        {
+                this->priv->n_copies = n_copies;
+                redraw (this);
+        }
+}
+
+
+/****************************************************************************/
+/* Set first label number on first sheet.                                   */
+/****************************************************************************/
+void
+gl_mini_preview_set_first (glMiniPreview     *this,
+                           gint               first)
+{
+        if ( first != this->priv->first )
+        {
+                this->priv->first = first;
+                redraw (this);
+        }
+}
+
+
+/****************************************************************************/
+/* Set last label number on first sheet (non-merge only).                   */
+/****************************************************************************/
+void
+gl_mini_preview_set_last (glMiniPreview     *this,
+                          gint               last)
+{
+        if ( last != this->priv->last )
+        {
+                this->priv->last = last;
+                redraw (this);
+        }
+}
+
+
+/****************************************************************************/
+/* Set collate flag (merge only).                                           */
+/****************************************************************************/
+void
+gl_mini_preview_set_collate_flag (glMiniPreview     *this,
+                                  gboolean           collate_flag)
+{
+        if ( collate_flag != this->priv->collate_flag )
+        {
+                this->priv->collate_flag = collate_flag;
+                redraw (this);
+        }
+}
+
+
+/****************************************************************************/
+/* Set outline flag.                                                        */
+/****************************************************************************/
+void
+gl_mini_preview_set_outline_flag (glMiniPreview     *this,
+                                  gboolean           outline_flag)
+{
+        if ( outline_flag != this->priv->outline_flag )
+        {
+                this->priv->outline_flag = outline_flag;
+                redraw (this);
+        }
+}
+
+
+/****************************************************************************/
+/* Set reverse flag.                                                        */
+/****************************************************************************/
+void
+gl_mini_preview_set_reverse_flag (glMiniPreview     *this,
+                                  gboolean           reverse_flag)
+{
+        if ( reverse_flag != this->priv->reverse_flag )
+        {
+                this->priv->reverse_flag = reverse_flag;
+                redraw (this);
+        }
+}
+
+
+/****************************************************************************/
+/* Set crop marks flag.                                                     */
+/****************************************************************************/
+void
+gl_mini_preview_set_crop_marks_flag (glMiniPreview     *this,
+                                     gboolean           crop_marks_flag)
+{
+        if ( crop_marks_flag != this->priv->crop_marks_flag )
+        {
+                this->priv->crop_marks_flag = crop_marks_flag;
+                redraw (this);
+        }
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Set transformation and return scale.                                     */
+/*--------------------------------------------------------------------------*/
+static gdouble
+set_transform_and_get_scale (glMiniPreview *this,
+                             cairo_t       *cr)
+{
+        lglTemplate   *template = this->priv->template;
+        GtkAllocation  allocation;
+        gdouble        w, h;
+        gdouble        scale;
+        gdouble        offset_x, offset_y;
+
+        /* Establish scale and origin. */
+        gtk_widget_get_allocation (GTK_WIDGET (this), &allocation);
+        w = allocation.width;
+        h = allocation.height;
+
+        /* establish scale. */
+        scale = MIN( (w - 2*MARGIN - 2*SHADOW_OFFSET)/template->page_width,
+                     (h - 2*MARGIN - 2*SHADOW_OFFSET)/template->page_height );
+
+        /* Find offset to center preview. */
+        offset_x = (w/scale - template->page_width) / 2.0;
+        offset_y = (h/scale - template->page_height) / 2.0;
+
+        /* Set transformation. */
+        cairo_scale (cr, scale, scale);
+        cairo_translate (cr, offset_x, offset_y);
+
+        return scale;
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Button press event handler                                               */
+/*--------------------------------------------------------------------------*/
+static gboolean
+button_press_event_cb (GtkWidget      *widget,
+                       GdkEventButton *event)
+{
+        glMiniPreview     *this = GL_MINI_PREVIEW (widget);
+        GdkWindow         *window;
+        cairo_t           *cr;
+        gdouble            scale;
+        gdouble            x, y;
+        gint               i;
+
+        gl_debug (DEBUG_MINI_PREVIEW, "START");
+
+        if ( event->button == 1 )
+        {
+
+                window = gtk_widget_get_window (this->priv->canvas);
+
+                cr = gdk_cairo_create (window);
+
+                scale = set_transform_and_get_scale (this, cr);
+
+                x = event->x;
+                y = event->y;
+                cairo_device_to_user (cr, &x, &y);
+
+                i = find_closest_label (this, x, y);
+
+                g_signal_emit (G_OBJECT(this),
+                               mini_preview_signals[CLICKED],
+                               0, i);
+
+                this->priv->first_i = i;
+                this->priv->last_i  = i;
+                g_signal_emit (G_OBJECT(this),
+                               mini_preview_signals[PRESSED],
+                               0, this->priv->first_i, this->priv->last_i);
+
+                this->priv->dragging = TRUE;
+                this->priv->prev_i   = i;
+
+                cairo_destroy (cr);
+        }
+
+        gl_debug (DEBUG_MINI_PREVIEW, "END");
+        return FALSE;
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Motion notify event handler                                              */
+/*--------------------------------------------------------------------------*/
+static gboolean
+motion_notify_event_cb (GtkWidget      *widget,
+                        GdkEventMotion *event)
+{
+        glMiniPreview *this = GL_MINI_PREVIEW (widget);
+        GdkWindow     *window;
+        cairo_t       *cr;
+        gdouble        scale;
+        gdouble        x, y;
+        gint           i;
+
+        gl_debug (DEBUG_MINI_PREVIEW, "START");
+
+        if (this->priv->dragging)
+        {
+                window = gtk_widget_get_window (this->priv->canvas);
+
+                cr = gdk_cairo_create (window);
+
+                scale = set_transform_and_get_scale (this, cr);
+
+                x = event->x;
+                y = event->y;
+                cairo_device_to_user (cr, &x, &y);
+
+                i = find_closest_label (this, x, y);
+
+                if ( i != this->priv->prev_i )
+                {
+                        this->priv->last_i = i;
+
+                        g_signal_emit (G_OBJECT(this),
+                                       mini_preview_signals[PRESSED],
+                                       0,
+                                       MIN (this->priv->first_i, this->priv->last_i),
+                                       MAX (this->priv->first_i, this->priv->last_i));
+
+                        this->priv->prev_i = i;
+                }
+                cairo_destroy (cr);
+        }
+
+        gl_debug (DEBUG_MINI_PREVIEW, "END");
+        return FALSE;
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Button release event handler                                             */
+/*--------------------------------------------------------------------------*/
+static gboolean
+button_release_event_cb (GtkWidget      *widget,
+                         GdkEventButton *event)
+{
+        glMiniPreview *this = GL_MINI_PREVIEW (widget);
+
+        gl_debug (DEBUG_MINI_PREVIEW, "START");
+
+        if ( event->button == 1 )
+        {
+                this->priv->dragging = FALSE;
+
+        }
+
+        g_signal_emit (G_OBJECT(this),
+                       mini_preview_signals[RELEASED],
+                       0, this->priv->first_i, this->priv->last_i);
+
+        gl_debug (DEBUG_MINI_PREVIEW, "END");
+        return FALSE;
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Find index+1 of label closest to given coordinates.                      */
+/*--------------------------------------------------------------------------*/
+static gint
+find_closest_label (glMiniPreview      *this,
+                    gdouble             x,
+                    gdouble             y)
+{
+        gint    i;
+        gint    min_i;
+        gdouble dx, dy, d2, min_d2;
+
+        dx = x - this->priv->centers[0].x;
+        dy = y - this->priv->centers[0].y;
+        min_d2 = dx*dx + dy*dy;
+        min_i = 0;
+
+        for ( i=1; i<this->priv->labels_per_sheet; i++ )
+        {
+                dx = x - this->priv->centers[i].x;
+                dy = y - this->priv->centers[i].y;
+                d2 = dx*dx + dy*dy;
+
+                if ( d2 < min_d2 )
+                {
+                        min_d2 = d2;
+                        min_i  = i;
+                }
+        }
+
+        return min_i + 1;
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Expose event handler.                                                    */
+/*--------------------------------------------------------------------------*/
+static gboolean
+draw_cb (GtkWidget       *widget,
+         cairo_t         *cr,
+         glMiniPreview   *this)
+{
+        gl_debug (DEBUG_MINI_PREVIEW, "START");
+
+        this->priv->update_scheduled_flag = FALSE;
+        draw (this, cr);
+
+        gl_debug (DEBUG_MINI_PREVIEW, "END");
+        return FALSE;
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Style set handler (updates colors when style/theme changes).             */
+/*--------------------------------------------------------------------------*/
+static void
+style_set_cb (GtkWidget        *widget,
+              GtkStyle         *previous_style,
+              glMiniPreview    *this)
+{
+        gl_debug (DEBUG_MINI_PREVIEW, "START");
+
+        redraw (this);
+
+        gl_debug (DEBUG_MINI_PREVIEW, "END");
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Redraw.                                                                  */
+/*--------------------------------------------------------------------------*/
+static void
+redraw (glMiniPreview      *this)
+{
+        GdkWindow     *window;
+        GtkAllocation  allocation;
+
+        gl_debug (DEBUG_MINI_PREVIEW, "START");
+
+        window = gtk_widget_get_window (this->priv->canvas);
+
+        if (window)
+        {
+
+                if ( !this->priv->update_scheduled_flag )
+                {
+                        this->priv->update_scheduled_flag = TRUE;
+
+                        gtk_widget_get_allocation (GTK_WIDGET (this), &allocation);
+                        gdk_window_invalidate_rect (window, &allocation, FALSE);
+                }
+        }
+
+        gl_debug (DEBUG_MINI_PREVIEW, "END");
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Draw mini preview.                                                       */
+/*--------------------------------------------------------------------------*/
+static void
+draw (glMiniPreview  *this,
+      cairo_t        *cr)
+{
+        lglTemplate *template = this->priv->template;
+        gdouble      scale;
+        gdouble      shadow_x, shadow_y;
+
+
+        gl_debug (DEBUG_MINI_PREVIEW, "START");
+
+        if (template)
+        {
+
+                scale = set_transform_and_get_scale (this, cr);
+
+                /* update shadow */
+                shadow_x = SHADOW_OFFSET/scale;
+                shadow_y = SHADOW_OFFSET/scale;
+
+                draw_shadow (this, cr,
+                             shadow_x, shadow_y,
+                             template->page_width, template->page_height);
+
+                draw_paper (this, cr,
+                            template->page_width, template->page_height,
+                            1.0/scale);
+
+                draw_labels (this, cr, template, 2.0/scale);
+
+                if (this->priv->draw_arrow_flag)
+                {
+                        draw_arrow (this, cr);
+                }
+
+                if (this->priv->label)
+                {
+                        draw_rich_preview (this, cr);
+                }
+
+        }
+
+        gl_debug (DEBUG_MINI_PREVIEW, "END");
+
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Draw page shadow                                                         */
+/*--------------------------------------------------------------------------*/
+static void
+draw_shadow (glMiniPreview      *this,
+             cairo_t            *cr,
+             gdouble             x,
+             gdouble             y,
+             gdouble             width,
+             gdouble             height)
+{
+        GtkStyle *style;
+        guint     shadow_color;
+
+        gl_debug (DEBUG_MINI_PREVIEW, "START");
+
+        cairo_save (cr);
+
+        cairo_rectangle (cr, x, y, width, height);
+
+        style = gtk_widget_get_style (GTK_WIDGET(this));
+        shadow_color = gl_color_from_gdk_color (&style->dark[GTK_STATE_NORMAL]);
+        cairo_set_source_rgb (cr, GL_COLOR_RGB_ARGS (shadow_color));
+
+        cairo_fill (cr);
+
+        cairo_restore (cr);
+
+        gl_debug (DEBUG_MINI_PREVIEW, "END");
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Draw page                                                                */
+/*--------------------------------------------------------------------------*/
+static void
+draw_paper (glMiniPreview      *this,
+            cairo_t            *cr,
+            gdouble             width,
+            gdouble             height,
+            gdouble             line_width)
+{
+        GtkStyle                  *style;
+        guint                      paper_color, outline_color;
+
+        gl_debug (DEBUG_MINI_PREVIEW, "START");
+
+        cairo_save (cr);
+
+        style = gtk_widget_get_style (GTK_WIDGET(this));
+        paper_color   = gl_color_from_gdk_color (&style->light[GTK_STATE_NORMAL]);
+        outline_color = gl_color_from_gdk_color (&style->fg[GTK_STATE_NORMAL]);
+
+        cairo_rectangle (cr, 0.0, 0.0, width, height);
+
+        cairo_set_source_rgb (cr, GL_COLOR_RGB_ARGS (paper_color));
+        cairo_fill_preserve (cr);
+
+        cairo_set_source_rgb (cr, GL_COLOR_RGB_ARGS (outline_color));
+        cairo_set_line_width (cr, line_width);
+        cairo_stroke (cr);
+
+        cairo_restore (cr);
+
+        gl_debug (DEBUG_MINI_PREVIEW, "END");
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Draw labels                                                              */
+/*--------------------------------------------------------------------------*/
+static void
+draw_labels (glMiniPreview *this,
+             cairo_t       *cr,
+             lglTemplate   *template,
+             gdouble        line_width)
+{
+        const lglTemplateFrame    *frame;
+        gint                       i, n_labels;
+        lglTemplateOrigin         *origins;
+        GtkStyle                  *style;
+        guint                      base_color;
+        guint                      highlight_color, paper_color, outline_color;
+
+        gl_debug (DEBUG_MINI_PREVIEW, "START");
+
+        frame = (lglTemplateFrame *)template->frames->data;
+
+        n_labels = lgl_template_frame_get_n_labels (frame);
+        origins  = lgl_template_frame_get_origins (frame);
+
+        style = gtk_widget_get_style (GTK_WIDGET(this));
+        base_color      = gl_color_from_gdk_color (&style->base[GTK_STATE_SELECTED]);
+
+        paper_color     = gl_color_from_gdk_color (&style->light[GTK_STATE_NORMAL]);
+        highlight_color = gl_color_set_opacity (base_color, 0.10);
+        if (this->priv->label)
+        {
+                /* Outlines are more subtle when doing a rich preview. */
+                outline_color   = gl_color_set_opacity (base_color, 0.25);
+        }
+        else
+        {
+                outline_color   = gl_color_set_opacity (base_color, 1.00);
+        }
+
+        for ( i=0; i < n_labels; i++ ) {
+
+                cairo_save (cr);
+
+                cairo_translate (cr, origins[i].x, origins[i].y);
+                gl_cairo_label_path (cr, template, FALSE, FALSE);
+
+                if ( ((i+1) >= this->priv->highlight_first) &&
+                     ((i+1) <= this->priv->highlight_last) )
+                {
+                        cairo_set_source_rgba (cr, GL_COLOR_RGBA_ARGS (highlight_color));
+                        cairo_set_fill_rule (cr, CAIRO_FILL_RULE_EVEN_ODD);
+                        cairo_fill_preserve (cr);
+                }
+
+                cairo_set_line_width (cr, line_width);
+                cairo_set_source_rgba (cr, GL_COLOR_RGBA_ARGS (outline_color));
+                cairo_stroke (cr);
+
+                cairo_restore (cr);
+
+        }
+
+        g_free (origins);
+
+        gl_debug (DEBUG_MINI_PREVIEW, "END");
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Draw arrow to indicate top of labels.                                    */
+/*--------------------------------------------------------------------------*/
+static void
+draw_arrow  (glMiniPreview      *this,
+             cairo_t            *cr)
+{
+        lglTemplateFrame  *frame;
+        lglTemplateOrigin *origins;
+        gdouble            width, height, min;
+        gdouble            x0, y0;
+        GtkStyle          *style;
+        guint              base_color, arrow_color;
+
+        PangoLayout          *layout;
+        PangoFontDescription *desc;
+        PangoRectangle        rect;
+
+        /* Translators: "Up" refers to the direction towards the top of a label. */
+        const gchar          *up = _("Up");
+
+        frame = (lglTemplateFrame *)this->priv->template->frames->data;
+
+        lgl_template_frame_get_size (frame, &width, &height);
+
+        if ( width != height )
+        {
+
+                origins = lgl_template_frame_get_origins (frame);
+                x0 = origins[0].x;
+                y0 = origins[0].y;
+                min = MIN (width, height);
+                g_free (origins);
+
+                cairo_save (cr);
+
+                style       = gtk_widget_get_style (GTK_WIDGET(this));
+                base_color  = gl_color_from_gdk_color (&style->base[GTK_STATE_SELECTED]);
+                arrow_color = gl_color_set_opacity (base_color, 0.25);
+                cairo_set_source_rgba (cr, GL_COLOR_RGBA_ARGS (arrow_color));
+
+                cairo_translate (cr, x0 + width/2, y0 + height/2);
+                cairo_scale (cr, 1, -1);
+                if ( this->priv->rotate_flag )
+                {
+                        cairo_rotate (cr, -G_PI/2.0);
+                }
+
+                cairo_new_path (cr);
+                cairo_move_to (cr, 0, -min*ARROW_SCALE/3);
+                cairo_line_to (cr, 0, min*ARROW_SCALE);
+
+                cairo_new_sub_path (cr);
+                cairo_move_to (cr, -min*ARROW_SCALE/2, min*ARROW_SCALE/2);
+                cairo_line_to (cr, 0, min*ARROW_SCALE);
+                cairo_line_to (cr, min*ARROW_SCALE/2, min*ARROW_SCALE/2);
+
+                cairo_set_line_width (cr, 0.25*min*ARROW_SCALE);
+
+                cairo_stroke (cr);
+
+                layout = pango_cairo_create_layout (cr);
+
+                desc = pango_font_description_new ();
+                pango_font_description_set_family (desc, UP_FONT_FAMILY);
+                pango_font_description_set_weight (desc, PANGO_WEIGHT_BOLD);
+                pango_font_description_set_size (desc, min*UP_SCALE*PANGO_SCALE);
+                pango_layout_set_font_description (layout, desc);
+                pango_font_description_free (desc);
+
+                pango_layout_set_text (layout, up, -1);
+                pango_layout_set_width (layout, -1);
+                pango_layout_get_pixel_extents (layout, NULL, &rect);
+
+                cairo_move_to (cr, -rect.width/2, -min/4+rect.height/2);
+
+                cairo_scale (cr, 1, -1);
+                pango_cairo_show_layout (cr, layout);
+
+                cairo_restore (cr);
+
+        }
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Draw rich preview using print renderers.                                 */
+/*--------------------------------------------------------------------------*/
+static void
+draw_rich_preview (glMiniPreview          *this,
+                   cairo_t                *cr)
+{
+        glMerge      *merge;
+        glPrintState  state;
+
+        merge = gl_label_get_merge (this->priv->label);
+
+        if (!merge)
+        {
+                gl_print_simple_sheet (this->priv->label,
+                                       cr,
+                                       this->priv->page,
+                                       this->priv->n_sheets,
+                                       this->priv->first,
+                                       this->priv->last,
+                                       this->priv->outline_flag,
+                                       this->priv->reverse_flag,
+                                       this->priv->crop_marks_flag);
+        }
+        else
+        {
+                /* FIXME: maybe the renderers should be more self contained.
+                 *        This will only work for the first page, since
+                 *        previous pages must be rendered to establish
+                 *        state.
+                 */
+                state.i_copy = 0;
+                state.p_record = (GList *)gl_merge_get_record_list (merge);
+
+                if (this->priv->collate_flag)
+                {
+                        gl_print_collated_merge_sheet (this->priv->label,
+                                                       cr,
+                                                       this->priv->page,
+                                                       this->priv->n_copies,
+                                                       this->priv->first,
+                                                       this->priv->outline_flag,
+                                                       this->priv->reverse_flag,
+                                                       this->priv->crop_marks_flag,
+                                                       &state);
+                }
+                else
+                {
+                        gl_print_uncollated_merge_sheet (this->priv->label,
+                                                         cr,
+                                                         this->priv->page,
+                                                         this->priv->n_copies,
+                                                         this->priv->first,
+                                                         this->priv->outline_flag,
+                                                         this->priv->reverse_flag,
+                                                         this->priv->crop_marks_flag,
+                                                         &state);
+                }
+        }
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/mini-preview.h b/src/mini-preview.h
new file mode 100644 (file)
index 0000000..d2d9210
--- /dev/null
@@ -0,0 +1,132 @@
+/*
+ *  mini-preview.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __MINI_PREVIEW_H__
+#define __MINI_PREVIEW_H__
+
+#include <gtk/gtk.h>
+#include "label.h"
+
+
+G_BEGIN_DECLS
+
+#define GL_TYPE_MINI_PREVIEW (gl_mini_preview_get_type ())
+#define GL_MINI_PREVIEW(obj) \
+        (G_TYPE_CHECK_INSTANCE_CAST((obj), GL_TYPE_MINI_PREVIEW, glMiniPreview ))
+#define GL_MINI_PREVIEW_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_MINI_PREVIEW, glMiniPreviewClass))
+#define GL_IS_MINI_PREVIEW(obj) \
+        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_MINI_PREVIEW))
+#define GL_IS_MINI_PREVIEW_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_MINI_PREVIEW))
+
+
+typedef struct _glMiniPreview        glMiniPreview;
+typedef struct _glMiniPreviewPrivate glMiniPreviewPrivate;
+typedef struct _glMiniPreviewClass   glMiniPreviewClass;
+
+struct _glMiniPreview {
+       GtkEventBox           parent;
+
+       glMiniPreviewPrivate *priv;
+};
+
+struct _glMiniPreviewClass {
+       GtkEventBoxClass      parent_class;
+
+       void (*clicked)  (glMiniPreview *this,
+                          gint           index,
+                          gpointer       user_data);
+
+       void (*pressed)  (glMiniPreview *this,
+                          gint           index1,
+                          gint           index2,
+                          gpointer       user_data);
+
+       void (*released) (glMiniPreview *this,
+                          gint           index1,
+                          gint           index2,
+                          gpointer       user_data);
+
+};
+
+
+GType      gl_mini_preview_get_type            (void) G_GNUC_CONST;
+
+GtkWidget *gl_mini_preview_new                 (gint               height,
+                                                gint               width);
+
+void       gl_mini_preview_set_by_name         (glMiniPreview     *this,
+                                                const gchar       *name);
+
+void       gl_mini_preview_set_template        (glMiniPreview     *this,
+                                                const lglTemplate *template);
+
+void       gl_mini_preview_highlight_range     (glMiniPreview     *this,
+                                                gint               first_label,
+                                                gint               last_label);
+
+void       gl_mini_preview_set_draw_arrow      (glMiniPreview     *this,
+                                                gboolean           draw_arrow_flag);
+
+void       gl_mini_preview_set_rotate          (glMiniPreview     *this,
+                                                gboolean           rotate_flag);
+
+
+/*
+ * If label is set, the preview will be rich.
+ */
+void       gl_mini_preview_set_label           (glMiniPreview     *this,
+                                                glLabel           *label);
+
+void       gl_mini_preview_set_page            (glMiniPreview     *this,
+                                                gint               n_sheets);
+void       gl_mini_preview_set_n_sheets        (glMiniPreview     *this,
+                                                gint               n_sheets);
+void       gl_mini_preview_set_n_copies        (glMiniPreview     *this,
+                                                gint               n_copies);
+void       gl_mini_preview_set_first           (glMiniPreview     *this,
+                                                gint               first);
+void       gl_mini_preview_set_last            (glMiniPreview     *this,
+                                                gint               last);
+void       gl_mini_preview_set_collate_flag    (glMiniPreview     *this,
+                                                gboolean           collate_flag);
+void       gl_mini_preview_set_outline_flag    (glMiniPreview     *this,
+                                                gboolean           outline_flag);
+void       gl_mini_preview_set_reverse_flag    (glMiniPreview     *this,
+                                                gboolean           reverse_flag);
+void       gl_mini_preview_set_crop_marks_flag (glMiniPreview     *this,
+                                                gboolean           crop_marks_flag);
+
+
+G_END_DECLS
+
+#endif
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/mygal/Makefile.am b/src/mygal/Makefile.am
deleted file mode 100644 (file)
index 054cbe7..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-INCLUDES = \
-       $(MYGAL_CFLAGS)
-
-
-libmygal_la_LDFLAGS=\
-        $(MYGAL_LIBS)
-
-noinst_LTLIBRARIES = libmygal.la
-
-libmygal_la_SOURCES =                  \
-       widget-color-combo.c            \
-       widget-color-combo.h            \
-       e-util.h                        \
-       e-colors.c                      \
-       e-colors.h                      \
-       mygal-combo-box.c               \
-       mygal-combo-box.h               \
-       color-palette.c                 \
-       color-palette.h                 \
-       color-group.c                   \
-       color-group.h                   \
-       e-marshal.c                     \
-       e-marshal.h
-
-marshal_sources = \
-       e-marshal.c \
-       e-marshal.h
-
-$(libmygal_la_OBJECTS) : $(marshal_sources)
-
-e-marshal.h: e-marshal.list $(GLIB_GENMARSHAL)
-       $(GLIB_GENMARSHAL) $< --header --prefix=e_marshal > $@
-e-marshal.c: e-marshal.list $(GLIB_GENMARSHAL)
-       $(GLIB_GENMARSHAL) $< --body --prefix=e_marshal > $@
-
-EXTRA_DIST = e-marshal.list
-CLEANFILES = $(marshal_sources)
-
-DONT_DIST_SOURCE = $(marshal_sources)
-
-dist-hook:
-       for file in $(DONT_DIST_SOURCE) ; do \
-           rm -f $(distdir)/$$file ; \
-       done
diff --git a/src/mygal/Makefile.in b/src/mygal/Makefile.in
deleted file mode 100644 (file)
index 06ea019..0000000
+++ /dev/null
@@ -1,571 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = src/mygal
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-       $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-libmygal_la_LIBADD =
-am_libmygal_la_OBJECTS = widget-color-combo.lo e-colors.lo \
-       mygal-combo-box.lo color-palette.lo color-group.lo \
-       e-marshal.lo
-libmygal_la_OBJECTS = $(am_libmygal_la_OBJECTS)
-libmygal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-       $(libmygal_la_LDFLAGS) $(LDFLAGS) -o $@
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-       --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-       $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-       --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-       $(LDFLAGS) -o $@
-SOURCES = $(libmygal_la_SOURCES)
-DIST_SOURCES = $(libmygal_la_SOURCES)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ALL_LINGUAS = @ALL_LINGUAS@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CATALOGS = @CATALOGS@
-CATOBJEXT = @CATOBJEXT@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIRNAME = @DATADIRNAME@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
-DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
-DOC_USER_FORMATS = @DOC_USER_FORMATS@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
-GLABELS_CFLAGS = @GLABELS_CFLAGS@
-GLABELS_LIBS = @GLABELS_LIBS@
-GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
-GLIB_REQUIRED = @GLIB_REQUIRED@
-GMOFILES = @GMOFILES@
-GMSGFMT = @GMSGFMT@
-GREP = @GREP@
-GTKDOC_CHECK = @GTKDOC_CHECK@
-GTK_REQUIRED = @GTK_REQUIRED@
-HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@
-HELP_DIR = @HELP_DIR@
-HTML_DIR = @HTML_DIR@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INSTOBJEXT = @INSTOBJEXT@
-INTLLIBS = @INTLLIBS@
-INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
-INTLTOOL_MERGE = @INTLTOOL_MERGE@
-INTLTOOL_PERL = @INTLTOOL_PERL@
-INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
-LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
-LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
-LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
-LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
-LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@
-LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@
-LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@
-LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIBXML_REQUIRED = @LIBXML_REQUIRED@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-MSGFMT = @MSGFMT@
-MSGFMT_OPTS = @MSGFMT_OPTS@
-MSGMERGE = @MSGMERGE@
-MYGAL_CFLAGS = @MYGAL_CFLAGS@
-MYGAL_LIBS = @MYGAL_LIBS@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OMF_DIR = @OMF_DIR@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-POFILES = @POFILES@
-POSUB = @POSUB@
-PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
-PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@
-UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
-USE_NLS = @USE_NLS@
-VERSION = @VERSION@
-WARN_CFLAGS = @WARN_CFLAGS@
-XGETTEXT = @XGETTEXT@
-XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@
-XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-INCLUDES = \
-       $(MYGAL_CFLAGS)
-
-libmygal_la_LDFLAGS = \
-        $(MYGAL_LIBS)
-
-noinst_LTLIBRARIES = libmygal.la
-libmygal_la_SOURCES = \
-       widget-color-combo.c            \
-       widget-color-combo.h            \
-       e-util.h                        \
-       e-colors.c                      \
-       e-colors.h                      \
-       mygal-combo-box.c               \
-       mygal-combo-box.h               \
-       color-palette.c                 \
-       color-palette.h                 \
-       color-group.c                   \
-       color-group.h                   \
-       e-marshal.c                     \
-       e-marshal.h
-
-marshal_sources = \
-       e-marshal.c \
-       e-marshal.h
-
-EXTRA_DIST = e-marshal.list
-CLEANFILES = $(marshal_sources)
-DONT_DIST_SOURCE = $(marshal_sources)
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-       @for dep in $?; do \
-         case '$(am__configure_deps)' in \
-           *$$dep*) \
-             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-               && { if test -f $@; then exit 0; else break; fi; }; \
-             exit 1;; \
-         esac; \
-       done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/mygal/Makefile'; \
-       $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu src/mygal/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-       @case '$?' in \
-         *config.status*) \
-           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-         *) \
-           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-       esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-noinstLTLIBRARIES:
-       -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
-       @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
-         dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-         test "$$dir" != "$$p" || dir=.; \
-         echo "rm -f \"$${dir}/so_locations\""; \
-         rm -f "$${dir}/so_locations"; \
-       done
-libmygal.la: $(libmygal_la_OBJECTS) $(libmygal_la_DEPENDENCIES) 
-       $(libmygal_la_LINK)  $(libmygal_la_OBJECTS) $(libmygal_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
-       -rm -f *.$(OBJEXT)
-
-distclean-compile:
-       -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/color-group.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/color-palette.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e-colors.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e-marshal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mygal-combo-box.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/widget-color-combo.Plo@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
-
-.c.obj:
-@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@   $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
-       -rm -f *.lo
-
-clean-libtool:
-       -rm -rf .libs _libs
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
-       mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
-       set x; \
-       here=`pwd`; \
-       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
-       shift; \
-       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-         test -n "$$unique" || unique=$$empty_fix; \
-         if test $$# -gt 0; then \
-           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-             "$$@" $$unique; \
-         else \
-           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-             $$unique; \
-         fi; \
-       fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
-       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
-       test -z "$(CTAGS_ARGS)$$unique" \
-         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-            $$unique
-
-GTAGS:
-       here=`$(am__cd) $(top_builddir) && pwd` \
-         && $(am__cd) $(top_srcdir) \
-         && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
-       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-       list='$(DISTFILES)'; \
-         dist_files=`for file in $$list; do echo $$file; done | \
-         sed -e "s|^$$srcdirstrip/||;t" \
-             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-       case $$dist_files in \
-         */*) $(MKDIR_P) `echo "$$dist_files" | \
-                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-                          sort -u` ;; \
-       esac; \
-       for file in $$dist_files; do \
-         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         if test -d $$d/$$file; then \
-           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-           if test -d "$(distdir)/$$file"; then \
-             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-           fi; \
-           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-           fi; \
-           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-         else \
-           test -f "$(distdir)/$$file" \
-           || cp -p $$d/$$file "$(distdir)/$$file" \
-           || exit 1; \
-         fi; \
-       done
-       $(MAKE) $(AM_MAKEFLAGS) \
-         top_distdir="$(top_distdir)" distdir="$(distdir)" \
-         dist-hook
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES)
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
-       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-       @echo "This command is intended for maintainers to use"
-       @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
-       mostlyclean-am
-
-distclean: distclean-am
-       -rm -rf ./$(DEPDIR)
-       -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-       distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-       -rm -rf ./$(DEPDIR)
-       -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-       mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-       clean-libtool clean-noinstLTLIBRARIES ctags dist-hook \
-       distclean distclean-compile distclean-generic \
-       distclean-libtool distclean-tags distdir dvi dvi-am html \
-       html-am info info-am install install-am install-data \
-       install-data-am install-dvi install-dvi-am install-exec \
-       install-exec-am install-html install-html-am install-info \
-       install-info-am install-man install-pdf install-pdf-am \
-       install-ps install-ps-am install-strip installcheck \
-       installcheck-am installdirs maintainer-clean \
-       maintainer-clean-generic mostlyclean mostlyclean-compile \
-       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-       tags uninstall uninstall-am
-
-
-$(libmygal_la_OBJECTS) : $(marshal_sources)
-
-e-marshal.h: e-marshal.list $(GLIB_GENMARSHAL)
-       $(GLIB_GENMARSHAL) $< --header --prefix=e_marshal > $@
-e-marshal.c: e-marshal.list $(GLIB_GENMARSHAL)
-       $(GLIB_GENMARSHAL) $< --body --prefix=e_marshal > $@
-
-dist-hook:
-       for file in $(DONT_DIST_SOURCE) ; do \
-           rm -f $(distdir)/$$file ; \
-       done
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/mygal/color-group.c b/src/mygal/color-group.c
deleted file mode 100644 (file)
index 3f35257..0000000
+++ /dev/null
@@ -1,333 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * color-group.c - Utility to keep a shered memory of custom colors
- *                 between arbitrary widgets.
- * Copyright 2000, Michael Levy
- * Copyright 2001, Almer S. Tigelaar
- *
- * Authors:
- *     Michael Levy (mlevy@genoscope.cns.fr)
- * Revised and polished by:
- *   Almer S. Tigelaar <almer@gnome.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public
- * License, version 2, as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "color-group.h"
-#include <glib-object.h>
-#include <gdk/gdkcolor.h>
-#include "e-util.h"
-#include <string.h>
-
-#define PARENT_TYPE    G_TYPE_OBJECT
-
-enum {
-        CUSTOM_COLOR_ADD,
-        LAST_SIGNAL
-};
-
-static GObjectClass *parent_class;
-
-static GQuark color_group_signals [LAST_SIGNAL] = { 0 };
-
-static void color_group_finalize (GObject *obj);
-
-static void
-color_group_class_init (ColorGroupClass *klass)
-{
-       GObjectClass *object_class;
-
-       object_class = (GObjectClass*) klass;
-       
-       object_class->finalize = &color_group_finalize;
-       parent_class = g_type_class_peek (PARENT_TYPE);
-
-       color_group_signals [CUSTOM_COLOR_ADD] =
-               g_signal_new ("custom_color_add",
-                       COLOR_GROUP_TYPE,
-                       G_SIGNAL_RUN_LAST,
-                       G_STRUCT_OFFSET (ColorGroupClass, custom_color_add),
-                       (GSignalAccumulator) NULL, NULL,
-                       g_cclosure_marshal_VOID__POINTER,
-                       G_TYPE_NONE,
-                       1, G_TYPE_POINTER);
-}
-
-static void
-color_group_init (ColorGroup *cg)
-{
-       cg->name = NULL;
-       cg->history = NULL;
-       cg->history_size = 0;
-}
-
-E_MAKE_TYPE(color_group,
-           "ColorGroup",
-           ColorGroup,
-           color_group_class_init,
-           color_group_init,
-           PARENT_TYPE)
-
-
-/* Hash table used to ensure unicity in newly created names*/
-static GHashTable *group_names = NULL;
-
-static guint
-cg_hash (gconstpointer key)
-{
-       /* Do NOT use smart type checking it will not work for the tmp_key */
-       return g_str_hash (((ColorGroup *)key)->name);
-}
-
-static gint
-cg_cmp (gconstpointer a, gconstpointer b)
-{
-       /* Do NOT use smart type checking it will not work for the tmp_key */
-       ColorGroup const *cg_a = (ColorGroup *)a;
-       ColorGroup const *cg_b = (ColorGroup *)b;
-       if (cg_a == cg_b)
-               return TRUE;
-       if (cg_a->context != cg_b->context)
-               return FALSE;
-       return g_str_equal (cg_a->name, cg_b->name);
-}
-
-static void
-initialize_group_names (void)
-{
-       g_assert (group_names == NULL);
-       group_names = g_hash_table_new (cg_hash, cg_cmp);
-}
-
-/**
- * color_group_get :
- * @name :
- * @context : 
- *
- * Look up the name/context specific color-group.  Return NULL if it is not found.
- * No reference is added if it is found.
- */
-ColorGroup *
-color_group_get (const gchar * name, gpointer context)
-{
-       ColorGroup tmp_key;
-       gpointer res;
-
-       g_assert(group_names);
-
-       g_return_val_if_fail(name != NULL, NULL);
-
-       tmp_key.name = (char *)name;
-       tmp_key.context = context;
-       res = g_hash_table_lookup (group_names, &tmp_key);
-
-       if (res != NULL)
-               return COLOR_GROUP (res);
-       else
-               return NULL;
-}
-
-static gchar *
-create_unique_name (gpointer context)
-{
-       const gchar *prefix = "__cg_autogen_name__";
-       static gint latest_suff = 0;
-       gchar *new_name;
-
-       for(;;latest_suff++) {
-               new_name = g_strdup_printf("%s%i", prefix, latest_suff);
-               if (color_group_get (new_name, context) == NULL)
-                       return new_name;
-               else
-                       g_free(new_name);
-       }
-       g_assert_not_reached();
-}
-
-static void
-color_group_finalize (GObject *obj)
-{
-       ColorGroup *cg;
-
-       g_return_if_fail(obj != NULL);
-       g_return_if_fail(IS_COLOR_GROUP(obj));
-       g_assert(group_names != NULL);
-
-       cg = COLOR_GROUP (obj);
-
-       /* make this name available */
-       if (cg->name) {
-               g_hash_table_remove (group_names, cg);
-               g_free (cg->name);
-               cg->name = NULL;
-       }
-
-       if (cg->history) {
-               /* Free the whole colour history */
-               while ((int) cg->history->len > 0)
-                       gdk_color_free ((GdkColor *)
-                                       g_ptr_array_remove_index (cg->history, 0));
-               g_ptr_array_free (cg->history, TRUE);
-               cg->history = NULL;
-       }
-       
-       if (parent_class->finalize)
-               (parent_class->finalize) (obj);
-}
-
-/*
- * color_group_get_history_size:
- * Get the size of the custom color history
- */
-gint
-color_group_get_history_size (ColorGroup *cg)
-{
-       g_return_val_if_fail (cg != NULL, 0);
-       
-       return cg->history_size;
-}
-
-/*
- * Change the size of the custom color history.
- */
-void
-color_group_set_history_size (ColorGroup *cg, gint size)
-{
-       g_return_if_fail(cg != NULL);
-       g_return_if_fail(size >= 0);
-
-       /* Remove excess elements (begin with kicking out the oldest) */
-       while ((int) cg->history->len > size)
-               gdk_color_free ((GdkColor *) g_ptr_array_remove_index (cg->history, 0));
-}
-
-/*
- * color_group_fetch :
- * @name :
- * @context :
- *
- * if name is NULL or a name not currently in use by another group
- * then a new group is created and returned. If name was NULL
- * then the new group is given a unique name prefixed by "__cg_autogen_name__"
- * (thereby insuring namespace separation).
- * If name was already used by a group then the reference count is
- * incremented and a pointer to the group is returned.
- */
-ColorGroup *
-color_group_fetch (const gchar *name, gpointer context)
-{
-       ColorGroup *cg;
-       gchar *new_name;
-
-       if (group_names == NULL)
-               initialize_group_names();
-
-       if (name == NULL)
-               new_name = create_unique_name (context);
-       else
-               new_name = g_strdup (name);
-
-       cg = color_group_get (new_name, context);
-       if (cg != NULL) {
-               g_free (new_name);
-               g_object_ref (G_OBJECT (cg));
-               return cg;
-       }
-
-       /* Take care of creating the new object */
-       cg = g_object_new (color_group_get_type (), NULL);
-       g_return_val_if_fail(cg != NULL, NULL);
-
-       cg->name = new_name;
-       cg->context = context;
-
-       /* Create history */
-       cg->history = g_ptr_array_new ();
-
-       /* FIXME: Why not 8? We never use more then 8 on the palette,
-        * maybe we can't free colors while they are still on the palette and
-        * need to be sure they are not on it when we free them and thus we
-        * make the upper limit twice the size of the number of displayed items
-        * (2 * 8) ?
-        */
-       cg->history_size = 16; 
-
-       /* lastly register this name */
-       g_hash_table_insert (group_names, cg, cg);
-
-       return cg;
-}
-
-/*
- * color_group_get_custom_colors:
- * Retrieve all custom colors currently in the history using a callback
- * mechanism. The custom colors will be passed from the oldest to the newest.
- */
-void
-color_group_get_custom_colors (ColorGroup *cg, CbCustomColors callback, gpointer user_data)
-{
-       int i;
-
-       g_return_if_fail (cg != NULL);
-
-       /* Invoke the callback for our full history */
-       for (i = 0; i < (int) cg->history->len; i++) {
-               GdkColor const * const color = g_ptr_array_index (cg->history, i);
-
-               callback (color, user_data);
-       }
-}
-
-/*
- * color_group_add_color:
- * Changes the colors. The color to be set should always be a custom
- * color! It has no use adding a color which is already in the default
- * palette.
- */
-void
-color_group_add_color (ColorGroup *cg, GdkColor const * const color)
-{
-       int i;
-       
-       g_return_if_fail(cg != NULL);
-       g_return_if_fail(color != NULL); /* Can't be NULL */
-
-       /* Let's be smart and see if it's already in our history, no need to add it again*/
-       for (i = 0; i < (int) cg->history->len; i++) {
-               GdkColor *current = g_ptr_array_index (cg->history, i);
-               
-               if (gdk_color_equal (color, current))
-                       return;
-       }
-
-       /*
-        * We make our own private copy of the color passed and put
-        * it in the history, this is freed later.
-        */
-       if (cg->history_size > 0)
-               g_ptr_array_add (cg->history, gdk_color_copy (color));
-
-       /* Shift out the oldest item if we grow beyond our set size */
-       if ((int) cg->history->len > cg->history_size)
-               gdk_color_free ((GdkColor *) g_ptr_array_remove_index (cg->history, 0));
-
-       /* Tell color-palette's that use this group that
-        * a new custom color was added.
-        */
-       g_signal_emit (G_OBJECT(cg),
-               color_group_signals [CUSTOM_COLOR_ADD],
-               0,
-               color);
-}
diff --git a/src/mygal/color-group.h b/src/mygal/color-group.h
deleted file mode 100644 (file)
index b35ad61..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/* 
- * color-group.h - Utility to keep a shered memory of custom colors
- * between arbitrary widgets.
- * Copyright 2000, Michael Levy
- * Copyright 2001, Almer S. Tigelaar
- *
- * Authors:
- *   Michael Levy (mlevy@genoscope.cns.fr)
- * Revised and polished by:
- *   Almer S. Tigelaar <almer@gnome.org>
- *
- * Modified for gLabels by:
- *   Jim Evins <evins@snaught.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public
- * License, version 2, as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#ifndef GNOME_APP_LIB__COLOR_GROUP_H
-#define GNOME_APP_LIB__COLOR_GROUP_H
-
-#include <glib-object.h>
-#include <glib.h>
-#include <gdk/gdktypes.h>
-
-G_BEGIN_DECLS
-
-typedef gboolean (* CbCustomColors) (GdkColor const * const color, gpointer data);
-
-typedef struct _ColorGroup {
-       GObject  parent;
-
-        gchar     *name;
-       gpointer   context;
-
-        GPtrArray *history;         /* The custom color history */
-       gint       history_size;    /* length of color_history */
-} ColorGroup;
-
-typedef struct {
-       GObjectClass parent_class;
-       
-       /* Signals emited by this object */
-       void (*custom_color_add) (ColorGroup *color_group, GdkColor const * const color);
-} ColorGroupClass;
-
-#define COLOR_GROUP_TYPE     (color_group_get_type ())
-#define COLOR_GROUP(obj)     (G_TYPE_CHECK_INSTANCE_CAST ((obj), COLOR_GROUP_TYPE, ColorGroup))
-#define COLOR_GROUP_CLASS(k) (G_TYPE_CHECK_CLASS_CAST (k), COLOR_GROUP_TYPE)
-#define IS_COLOR_GROUP(obj)  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), COLOR_GROUP_TYPE))
-
-GType           color_group_get_type (void);
-ColorGroup     *color_group_fetch (const gchar *name, gpointer context);
-ColorGroup     *color_group_get   (const gchar *name, gpointer context);
-
-void            color_group_set_history_size (ColorGroup *cg, gint size);
-gint            color_group_get_history_size (ColorGroup *cg);
-
-void            color_group_get_custom_colors (ColorGroup *cg, CbCustomColors callback,
-                                              gpointer user_data);
-void            color_group_add_color        (ColorGroup *cg, GdkColor const * const color);
-
-G_END_DECLS
-
-#endif /* GNOME_APP_LIB__COLOR_GROUP_H */
diff --git a/src/mygal/color-palette.c b/src/mygal/color-palette.c
deleted file mode 100644 (file)
index 49d4779..0000000
+++ /dev/null
@@ -1,661 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * color-palette.c - A color selector palette
- * Copyright 2000, 2001, Ximian, Inc.
- *
- * Authors:
- * This code was extracted from widget-color-combo.c
- *   written by Miguel de Icaza (miguel@kernel.org) and
- *   Dom Lachowicz (dominicl@seas.upenn.edu). The extracted
- *   code was re-packaged into a separate object by
- *   Michael Levy (mlevy@genoscope.cns.fr)
- *   And later revised and polished by
- *   Almer S. Tigelaar (almer@gnome.org)
- *
- * Modified for gLabels by:
- *   Jim Evins <evins@snaught.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public
- * License, version 2, as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include <config.h>
-#include <gnome.h>
-#include <gtk/gtklabel.h>
-#include <gtk/gtksignal.h>
-#include <gtk/gtktable.h>
-#include <libgnomecanvas/gnome-canvas.h>
-#include <libgnomecanvas/gnome-canvas-rect-ellipse.h>
-#include <gdk/gdkcolor.h>
-#include "e-util.h"
-#include "color-group.h"
-#include "color-palette.h"
-#include "e-colors.h"
-
-#define COLOR_PREVIEW_WIDTH 15
-#define COLOR_PREVIEW_HEIGHT 15
-
-enum {
-       COLOR_CHANGED,
-       LAST_SIGNAL
-};
-
-struct _ColorNamePair {
-       char *color;    /* rgb color or otherwise - eg. "#FFFFFF" */
-       char *name;     /* english name - eg. "white" */
-};
-
-static guint color_palette_signals [LAST_SIGNAL] = { 0, };
-
-#define PARENT_TYPE GTK_TYPE_VBOX
-static GObjectClass *color_palette_parent_class;
-
-#define make_color(P,COL) (((COL) != NULL) ? (COL) : ((P) ? ((P)->default_color) : NULL))
-
-static void
-color_palette_destroy (GtkObject *object)
-{
-       ColorPalette *P = COLOR_PALETTE (object);
-       GtkObjectClass *klass = (GtkObjectClass *)color_palette_parent_class;
-
-       if (P->tool_tip) {
-               g_object_unref (P->tool_tip);
-               P->tool_tip = NULL;
-       }
-
-       if (P->current_color) {
-               gdk_color_free (P->current_color);
-               P->current_color = NULL;
-       }
-       
-       color_palette_set_group (P, NULL);
-
-       memset (P->items, 0, P->total * sizeof (GnomeCanvasItem *));
-
-       if (klass->destroy)
-                klass->destroy (object);
-}
-
-static void
-color_palette_finalize (GObject *object)
-{
-       ColorPalette *P = COLOR_PALETTE (object);
-
-       g_free (P->items);
-
-       (*color_palette_parent_class->finalize) (object);
-}
-
-static void
-color_palette_class_init (GObjectClass *object_class)
-{
-       object_class->finalize = color_palette_finalize;
-       ((GtkObjectClass *)object_class)->destroy = color_palette_destroy;
-
-       color_palette_parent_class = g_type_class_peek_parent (object_class);
-
-       color_palette_signals [COLOR_CHANGED] =
-               g_signal_new ("color_changed",
-                             G_OBJECT_CLASS_TYPE (object_class),
-                             G_SIGNAL_RUN_LAST,
-                             G_STRUCT_OFFSET (ColorPaletteClass, color_changed),
-                             NULL, NULL,
-                             e_marshal_NONE__POINTER_BOOLEAN_BOOLEAN_BOOLEAN,
-                             G_TYPE_NONE, 4, G_TYPE_POINTER,
-                             G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN);
-}
-
-E_MAKE_TYPE (color_palette,
-            "ColorPalette",
-            ColorPalette,
-            color_palette_class_init,
-            NULL,
-            PARENT_TYPE)
-
-static void
-emit_color_changed (ColorPalette *P, GdkColor *color,
-                   gboolean custom, gboolean by_user, gboolean is_default)
-{
-       GdkColor *new = make_color (P, color);
-
-       if (new != NULL)
-               new = gdk_color_copy (new);
-       if (P->current_color)
-               gdk_color_free (P->current_color);
-       P->current_color = new;
-       P->current_is_default = is_default;
-
-       /* Only add custom colors to the group */
-       if (custom && color)
-               color_group_add_color (P->color_group, color);
-       
-       g_signal_emit (P, color_palette_signals [COLOR_CHANGED], 0,
-                      color, custom, by_user, is_default);
-}
-
-
-/*
- * Add the new custom color as the first custom color in the custom color rows
- * and shift all of the others 'one step down'
- *
- * Also take care of setting up the GtkColorButton 'display'
- */
-static void
-color_palette_change_custom_color (ColorPalette *P, GdkColor const * const new)
-{
-       int index;
-       GnomeCanvasItem *item;
-       GnomeCanvasItem *next_item;
-
-       g_return_if_fail (P != NULL);
-       g_return_if_fail (new != NULL);
-       g_return_if_fail (P->picker);
-
-       /* make sure there is room */
-       if (P->custom_color_pos == -1)
-               return;
-
-       for (index = P->custom_color_pos; index < P->total - 1; index++) {
-               GdkColor *color;
-               GdkColor *outline;
-               item = P->items[index];
-               next_item = P->items[index + 1];
-
-               g_object_get (G_OBJECT (next_item),
-                       "fill_color_gdk",       &color,
-                       "outline_color_gdk",    &outline,
-                       NULL);
-               gnome_canvas_item_set (item,
-                       "fill_color_gdk",       color,
-                       "outline_color_gdk",    outline,
-                       NULL);
-               gdk_color_free (color);
-               gdk_color_free (outline);
-       }
-       item = P->items[index];
-       gnome_canvas_item_set (item,
-                              "fill_color_gdk", new,
-                              "outline_color_gdk", new,
-                              NULL);
-       gtk_color_button_set_color (P->picker, new);
-}
-
-/*
- * The custom color box was clicked. Find out its value and emit it
- * And add it to the custom color row
- */
-static void
-cust_color_set (GtkWidget  *color_picker, ColorPalette *P)
-{
-       GdkColor c_color;
-
-       gtk_color_button_get_color (GTK_COLOR_BUTTON (color_picker), &c_color);
-
-       e_color_alloc_gdk (NULL, &c_color);
-       emit_color_changed (P, &c_color, TRUE, TRUE, FALSE);
-}
-
-static void
-cb_default_clicked (GtkWidget *button, ColorPalette *P)
-{
-       emit_color_changed (P, P->default_color, FALSE, TRUE, TRUE);
-}
-
-/*
- * Something in our table was clicked. Find out what and emit it
- */
-static void
-color_clicked (GtkWidget *button, ColorPalette *P)
-{
-       int              index;
-       GnomeCanvasItem *item;
-       GdkColor        *gdk_color;
-
-       index = GPOINTER_TO_INT (gtk_object_get_user_data (GTK_OBJECT (button)));
-       item  = P->items[index];
-
-       g_object_get (item,
-                     "fill_color_gdk", &gdk_color,
-                     NULL);
-
-       emit_color_changed (P, gdk_color, FALSE, TRUE, FALSE);
-
-       gdk_color_free (gdk_color);
-}
-
-/*
- * The color group sent the 'custom_color_add' signal
- */
-static void
-cb_group_custom_color_add (GtkObject *cg, GdkColor *color, ColorPalette *P)
-{
-       GdkColor *new;
-       
-       new = make_color (P, color);
-       color_palette_change_custom_color (P, new);
-}
-
-/*
- * Find out if a color is in the default palette (not in the custom colors!)
- *
- * Utility function
- */
-static gboolean
-color_in_palette (ColorNamePair *set, GdkColor *color)
-{
-       int i;
-
-       g_return_val_if_fail (set != NULL, FALSE);
-       
-       if (color == NULL)
-               return TRUE;
-               
-       /* Iterator over all the colors and try to find
-        * if we can find @color
-        */
-       for (i = 0; set[i].color != NULL; i++) {
-               GdkColor current;
-               
-               gdk_color_parse (set[i].color, &current);
-               
-               if (gdk_color_equal (color, &current))
-                       return TRUE;
-       }
-
-       return FALSE;
-}
-
-/*
- * Create the individual color buttons
- *
- * Utility function
- */
-static GnomeCanvasItem *
-color_palette_button_new(ColorPalette *P, GtkTable* table,
-                        GtkTooltips *tool_tip, ColorNamePair* color_name,
-                        gint col, gint row, int data)
-{
-        GtkWidget *button;
-       GtkWidget *canvas;
-       GnomeCanvasItem *item;
-
-       button = gtk_button_new ();
-       gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);
-
-       canvas = gnome_canvas_new ();
-
-       gtk_widget_set_usize (canvas, COLOR_PREVIEW_WIDTH, COLOR_PREVIEW_HEIGHT);
-       gtk_container_add (GTK_CONTAINER (button), canvas);
-
-       item  = gnome_canvas_item_new (GNOME_CANVAS_GROUP (gnome_canvas_root
-                                                          (GNOME_CANVAS (canvas))),
-                                      gnome_canvas_rect_get_type (),
-                                      "x1", 0.0,
-                                      "y1", 0.0,
-                                      "x2", (double) COLOR_PREVIEW_WIDTH,
-                                      "y2", (double) COLOR_PREVIEW_HEIGHT,
-                                      "fill_color", color_name->color,
-                                      NULL);
-
-       gtk_tooltips_set_tip (tool_tip, button, _(color_name->name),
-                             "Private+Unused");
-
-       gtk_table_attach (table, button,
-                         col, col+1, row, row+1, GTK_FILL, GTK_FILL, 1, 1);
-
-       g_signal_connect (button, "clicked",
-                         G_CALLBACK (color_clicked), P);
-       gtk_object_set_user_data (GTK_OBJECT (button),
-                                 GINT_TO_POINTER (data));
-       return item;
-}
-
-static void
-cb_custom_colors (GdkColor const * const color, gpointer data)
-{
-       ColorPalette *P = data;
-       
-       if (color)
-               color_palette_change_custom_color (P, color);
-}
-
-/*
- * gets history information from the group
- */
-static void
-custom_color_history_setup(ColorPalette *P)
-{
-       g_return_if_fail (P != NULL);
-       g_return_if_fail (P->color_group != NULL);
-
-       /* Sync our own palette with all the custom colors in the group */
-       color_group_get_custom_colors (P->color_group, (CbCustomColors) cb_custom_colors, P);
-}
-
-/*
- * Creates the color table
- */
-static GtkWidget *
-color_palette_setup (ColorPalette *P,
-                    char const * const no_color_label,
-                    int ncols, int nrows,
-                    ColorNamePair *color_names)
-{
-       GtkWidget *default_button;
-       GtkWidget *cust_label;
-       GtkWidget *table;
-       GtkTooltips *tool_tip;
-       int total, row, col;
-
-       table = gtk_table_new (ncols, nrows, FALSE);
-
-       if (no_color_label != NULL) {
-               default_button = gtk_button_new_with_label (no_color_label);
-
-               gtk_table_attach (GTK_TABLE (table), default_button,
-                                 0, ncols, 0, 1, GTK_FILL | GTK_EXPAND, 0, 0, 0);
-               g_signal_connect (default_button, "clicked",
-                                 G_CALLBACK (cb_default_clicked), P);
-       }
-
-       P->tool_tip = tool_tip = gtk_tooltips_new ();
-       g_object_ref (P->tool_tip);
-       gtk_object_sink (GTK_OBJECT (P->tool_tip));
-
-       P->custom_color_pos = -1;
-       total = 0;
-
-       for (row = 0; row < nrows; row++) {
-               for (col = 0; col < ncols; col++) {
-                       int pos;
-
-                       pos = row * ncols + col;
-                       /*
-                        * If we are done with all of the colors in color_names
-                        */
-                       if (color_names [pos].color == NULL) {
-                               /* This is the default custom color */
-                               ColorNamePair color_name  = {"#000", N_("custom")};
-                               row++;
-                               if (col == 0 || row < nrows) {
-                                       /* Add a full row for custom colors */
-                                       for (col = 0; col < ncols; col++) {
-                                               /* Have we set custom pos yet ? */
-                                               if (P->custom_color_pos == -1) {
-                                                       P->custom_color_pos = total;
-                                               }
-                                               P->items[total] =
-                                                       color_palette_button_new(
-                                                               P,
-                                                               GTK_TABLE (table),
-                                                               GTK_TOOLTIPS (tool_tip),
-                                                               &(color_name),
-                                                               col,
-                                                               row + 1,
-                                                               total);
-                                               total++;
-                                       }
-                               }
-                               /* Break out of two for-loops.  */
-                               row = nrows;
-                               break;
-                       }
-
-                       P->items[total] =
-                               color_palette_button_new (
-                                       P,
-                                       GTK_TABLE (table),
-                                       GTK_TOOLTIPS (tool_tip),
-                                       &(color_names [pos]),
-                                       col,
-                                       row + 1,
-                                       total);
-                       total++;
-               }
-       }
-       P->total = total;
-
-
-       /* "Custom" color - we'll pop up a GtkColorButton */
-       cust_label = gtk_label_new (_("Custom Color:"));
-       gtk_table_attach (GTK_TABLE (table), cust_label, 0, ncols - 3 ,
-                         row + 1, row + 2, GTK_FILL | GTK_EXPAND, 0, 0, 0);
-       /*
-         Keep a pointer to the picker so that we can update it's color
-         to keep it in synch with that of other members of the group
-       */
-       P->picker = GTK_COLOR_BUTTON (gtk_color_button_new ());
-       gtk_color_button_set_title (P->picker, _("Choose Custom Color"));
-       gtk_table_attach (GTK_TABLE (table), GTK_WIDGET (P->picker), ncols - 3, ncols,
-                         row + 1, row + 2, GTK_FILL | GTK_EXPAND, 0, 0, 0);
-       g_signal_connect (P->picker, "color-set",
-                         G_CALLBACK (cust_color_set), P);
-       return table;
-}
-
-void
-color_palette_set_color_to_default (ColorPalette *P)
-{
-       g_return_if_fail (P != NULL);
-       g_return_if_fail (IS_COLOR_GROUP (P->color_group));
-
-       emit_color_changed (P, P->default_color, FALSE, TRUE, TRUE);
-}
-
-void
-color_palette_set_current_color (ColorPalette *P, GdkColor *color)
-{
-       g_return_if_fail (P != NULL);
-       g_return_if_fail (IS_COLOR_GROUP (P->color_group));
-
-       if (color)
-               emit_color_changed
-                       (P, color, color_in_palette (P->default_set, color),
-                        FALSE, FALSE);
-       else
-               color_palette_set_color_to_default (P);
-}
-
-GdkColor *
-color_palette_get_current_color (ColorPalette *P, gboolean *is_default)
-{
-       g_return_val_if_fail (P != NULL, NULL);
-       g_return_val_if_fail (IS_COLOR_GROUP (P->color_group), NULL);
-
-       if (is_default != NULL)
-               *is_default = P->current_is_default;
-
-       return P->current_color ? gdk_color_copy (P->current_color) : NULL;
-}
-
-GtkWidget *
-color_palette_get_color_picker (ColorPalette *P)
-{
-       g_return_val_if_fail (IS_COLOR_PALETTE (P), NULL);
-
-       return GTK_WIDGET (P->picker);
-}
-
-
-/*
- * Where the actual construction goes on
- */
-static void
-color_palette_construct (ColorPalette *P,
-                        char const * const no_color_label,
-                        int ncols, int nrows)
-{
-       GtkWidget * table;
-       g_return_if_fail (P != NULL);
-       g_return_if_fail (IS_COLOR_PALETTE (P));
-
-       P->items = g_malloc (sizeof (GnomeCanvasItem *) * ncols * nrows);
-
-       /*
-        * Our table selector
-        */
-       table = color_palette_setup (P, no_color_label, ncols,
-                                    nrows, P->default_set);
-       gtk_container_add (GTK_CONTAINER(P), table);
-}
-
-/*
- * More verbose constructor. Allows for specifying the rows, columns, and
- * Colors this palette will contain
- *
- * Note that if after placing all of the color_names there remains an entire
- * row available then a row of custum colors (initialized to black) is added
- *
- */
-static GtkWidget*
-color_palette_new_with_vals (char const * const no_color_label,
-                            int ncols, int nrows, ColorNamePair *color_names,
-                            GdkColor *default_color,
-                            ColorGroup *cg)
-{
-       ColorPalette *P;
-
-       g_return_val_if_fail (color_names != NULL, NULL);
-
-       P = g_object_new (COLOR_PALETTE_TYPE, NULL);
-
-       P->default_set   = color_names;
-       P->default_color = default_color;
-       P->current_color = default_color ? gdk_color_copy (default_color) : NULL;
-       P->current_is_default = TRUE;
-       color_palette_set_group (P, cg);
-
-       color_palette_construct (P, no_color_label, ncols, nrows);
-       custom_color_history_setup(P);
-
-       return GTK_WIDGET (P);
-}
-
-/**
- * color_palette_set_group : absorbs the reference to the group
- */
-void
-color_palette_set_group (ColorPalette *P, ColorGroup *cg)
-{
-       if (P->color_group == cg)
-               return;
-
-       if (P->color_group) {
-               g_signal_handlers_disconnect_by_func (
-                       G_OBJECT (P->color_group),
-                       G_CALLBACK (cb_group_custom_color_add),
-                       P);
-               g_object_unref (G_OBJECT (P->color_group));
-               P->color_group = NULL;
-       }
-       if (cg != NULL) {
-               P->color_group = COLOR_GROUP (cg);
-               g_signal_connect (G_OBJECT (cg), "custom_color_add",
-                       G_CALLBACK (cb_group_custom_color_add),
-                       P);
-
-       }
-}
-
-static ColorNamePair default_color_set [] = {
-       {"#000000", N_("black")},
-       {"#993300", N_("light brown")},
-       {"#333300", N_("brown gold")},
-       {"#003300", N_("dark green #2")},
-       {"#003366", N_("navy")},
-       {"#000080", N_("dark blue")},
-       {"#333399", N_("purple #2")},
-       {"#333333", N_("very dark gray")},
-
-
-       {"#800000", N_("dark red")},
-       {"#FF6600", N_("red-orange")},
-       {"#808000", N_("gold")},
-       {"#008000", N_("dark green")},
-       {"#008080", N_("dull blue")},
-       {"#0000FF", N_("blue")},
-       {"#666699", N_("dull purple")},
-       {"#808080", N_("dark grey")},
-
-
-       {"#FF0000", N_("red")},
-       {"#FF9900", N_("orange")},
-       {"#99CC00", N_("lime")},
-       {"#339966", N_("dull green")},
-       {"#33CCCC",N_("dull blue #2")},
-       {"#3366FF", N_("sky blue #2")},
-       {"#800080", N_("purple")},
-       {"#969696", N_("gray")},
-
-
-       {"#FF00FF", N_("magenta")},
-       {"#FFCC00", N_("bright orange")},
-       {"#FFFF00", N_("yellow")},
-       {"#00FF00", N_("green")},
-       {"#00FFFF", N_("cyan")},
-       {"#00CCFF", N_("bright blue")},
-       {"#993366", N_("red purple")},
-       {"#C0C0C0", N_("light grey")},
-
-
-       {"#FF99CC", N_("pink")},
-       {"#FFCC99", N_("light orange")},
-       {"#FFFF99", N_("light yellow")},
-       {"#CCFFCC", N_("light green")},
-       {"#CCFFFF", N_("light cyan")},
-       {"#99CCFF", N_("light blue")},
-       {"#CC99FF", N_("light purple")},
-       {"#FFFFFF", N_("white")},
-
-       /* Disable these for now, they are mostly repeats */
-       {NULL, NULL},
-
-       {"#9999FF", N_("purplish blue")},
-       {"#993366", N_("red purple")},
-       {"#FFFFCC", N_("light yellow")},
-       {"#CCFFFF", N_("light blue")},
-       {"#660066", N_("dark purple")},
-       {"#FF8080", N_("pink")},
-       {"#0066CC", N_("sky blue")},
-       {"#CCCCFF", N_("light purple")},
-
-       {"#000080", N_("dark blue")},
-       {"#FF00FF", N_("magenta")},
-       {"#FFFF00", N_("yellow")},
-       {"#00FFFF", N_("cyan")},
-       {"#800080", N_("purple")},
-       {"#800000", N_("dark red")},
-       {"#008080", N_("dull blue")},
-       {"#0000FF", N_("blue")},
-
-       {NULL, NULL}
-};
-
-
-
-/*
- * Default constructor. Pass an optional label for
- * the no/auto color button.
- *
- */
-GtkWidget*
-color_palette_new (const char *no_color_label,
-                  GdkColor *default_color, ColorGroup *color_group)
-{
-       /* specify 6 rows to allow for a row of custom colors */
-       return color_palette_new_with_vals (no_color_label,
-                                           8, 6,
-                                           default_color_set, default_color,
-                                           color_group);
-}
diff --git a/src/mygal/color-palette.h b/src/mygal/color-palette.h
deleted file mode 100644 (file)
index b2b281c..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/* 
- * color-palette.h - A color selector palette
- * Copyright 2000, 2001, Ximian, Inc.
- *
- * Authors:
- * This code was extracted from widget-color-combo.c
- *   written by Miguel de Icaza (miguel@kernel.org) and
- *   Dom Lachowicz (dominicl@seas.upenn.edu). The extracted
- *   code was re-packaged into a separate object by
- *   Michael Levy (mlevy@genoscope.cns.fr)
- *   And later revised and polished by
- *   Almer S. Tigelaar (almer@gnome.org)
- *
- * Modified for gLabels by:
- *   Jim Evins <evins@snaught.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public
- * License, version 2, as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#ifndef GNUMERIC_COLOR_PALETTE_H
-#define GNUMERIC_COLOR_PALETTE_H
-
-#include <gtk/gtktooltips.h>
-#include <gtk/gtkvbox.h>
-#include <gtk/gtkwidget.h>
-#include <gtk/gtkcolorbutton.h>
-#include <libgnomecanvas/gnome-canvas.h>
-#include "color-group.h"
-
-G_BEGIN_DECLS
-
-typedef struct _ColorNamePair ColorNamePair;
-
-typedef struct _ColorPalette {
-       GtkVBox          vbox;
-       GtkTooltips      *tool_tip;
-       GtkColorButton   *picker;
-       /*
-        * Array of colors
-        */
-       GnomeCanvasItem **items;
-       /* The (potentially NULL) default color */
-        GdkColor *default_color;
-
-       /* The current color */
-       GdkColor *current_color;
-       gboolean  current_is_default;
-       
-        /*
-        * Position of the last possible position
-        * for custom colors in **items
-        * (i.e. custom colors go from items[custom_color_pos]
-        *  to items[total - 1])
-        *
-        * If custom_color_pos == -1, there is no room for custom colors
-        */
-        int custom_color_pos;
-        /*
-        * Number of default colors in **items
-        */
-       int total;
-
-       /* The table with our default color names */
-       ColorNamePair *default_set;
-       
-       /* The color group to which we belong */
-       ColorGroup *color_group;
-} ColorPalette;
-
-typedef struct {
-       GtkVBoxClass parent_class;
-       
-       /* Signals emited by this widget */
-       void (* color_changed) (ColorPalette *color_palette, GdkColor *color,
-                               gboolean custom, gboolean by_user, gboolean is_default);
-} ColorPaletteClass;
-
-#define COLOR_PALETTE_TYPE     (color_palette_get_type ())
-#define COLOR_PALETTE(obj)     (G_TYPE_CHECK_INSTANCE_CAST((obj), COLOR_PALETTE_TYPE, ColorPalette))
-#define COLOR_PALETTE_CLASS(k) (G_TYPE_CHECK_CLASS_CAST(k), COLOR_PALETTE_TYPE)
-#define IS_COLOR_PALETTE(obj)  (G_TYPE_CHECK_INSTANCE_TYPE((obj), COLOR_PALETTE_TYPE))
-
-GtkType         color_palette_get_type (void);
-
-GtkWidget       *color_palette_new (const char *no_color_label,
-                                   GdkColor *default_color,
-                                   ColorGroup *color_group);
-void            color_palette_set_group (ColorPalette *P,
-                                         ColorGroup *cg);
-
-void             color_palette_set_current_color (ColorPalette *P, GdkColor *color);
-void             color_palette_set_color_to_default (ColorPalette *P);
-GdkColor        *color_palette_get_current_color (ColorPalette *P, gboolean *is_default);
-GtkWidget       *color_palette_get_color_picker  (ColorPalette *P);
-
-G_END_DECLS
-
-#endif /* GNUMERIC_PALETTE_H */
-
-
diff --git a/src/mygal/e-colors.c b/src/mygal/e-colors.c
deleted file mode 100644 (file)
index fc4bf48..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * e-colors.c - General color allocation utilities
- * Copyright 2000, 2001, Ximian, Inc.
- *
- * Authors:
- *  Miguel de Icaza (miguel@kernel.org)
- *
- * Modified for gLabels by:
- *   Jim Evins <evins@snaught.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public
- * License, version 2, as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-/* We keep our own color context, as the color allocation might take
- * place before things are realized.
- */
-
-#include <config.h>
-#include <gtk/gtkwidget.h>
-#include "e-colors.h"
-
-GdkColor e_white, e_dark_gray, e_black;
-
-gulong
-e_color_alloc (gushort red, gushort green, gushort blue)
-{
-       e_color_init ();
-
-       red >>= 8;
-       green >>= 8;
-       blue >>= 8;
-       return gdk_rgb_xpixel_from_rgb (
-               ((red & 0xff) << 16) | ((green & 0xff) << 8) |
-               (blue & 0xff));
-}
-
-void
-e_color_alloc_gdk (GtkWidget *widget, GdkColor *c)
-{
-       GdkColormap *map;
-
-       e_color_init ();
-
-       if (widget)
-               map = gtk_widget_get_colormap (widget);
-       else /* FIXME: multi depth broken ? */
-               map = gtk_widget_get_default_colormap ();
-
-       gdk_rgb_find_color (map, c);
-}
-
-void
-e_color_alloc_name (GtkWidget *widget, const char *name, GdkColor *c)
-{
-       GdkColormap *map;
-
-       e_color_init ();
-
-       gdk_color_parse (name, c);
-
-       if (widget)
-               map = gtk_widget_get_colormap (widget);
-       else /* FIXME: multi depth broken ? */
-               map = gtk_widget_get_default_colormap ();
-
-       gdk_rgb_find_color (map, c);
-}
-
-void
-e_color_init (void)
-{
-       static gboolean e_color_inited = FALSE;
-
-       /* It's surprisingly easy to end up calling this twice.  Survive.  */
-       if (e_color_inited)
-               return;
-
-       e_color_inited = TRUE;
-
-       /* Allocate the default colors */
-       e_white.red   = 65535;
-       e_white.green = 65535;
-       e_white.blue  = 65535;
-       e_color_alloc_gdk (NULL, &e_white);
-
-       e_black.red   = 0;
-       e_black.green = 0;
-       e_black.blue  = 0;
-       e_color_alloc_gdk (NULL, &e_black);
-
-       e_color_alloc_name (NULL, "gray20",  &e_dark_gray);
-}
-
diff --git a/src/mygal/e-colors.h b/src/mygal/e-colors.h
deleted file mode 100644 (file)
index 1366504..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/* 
- * e-colors.h
- * Copyright 2000, 2001, Ximian, Inc.
- *
- * Authors:
- *   Miguel de Icaza (miguel@kernel.org)
- *
- * Modified for gLabels by:
- *   Jim Evins <evins@snaught.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public
- * License, version 2, as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#ifndef GNOME_APP_LIBS_COLOR_H
-#define GNOME_APP_LIBS_COLOR_H
-
-#include <glib.h>
-#include <gdk/gdk.h>
-#include <gtk/gtkwidget.h>
-
-G_BEGIN_DECLS
-
-void     e_color_init       (void);
-
-/* Return the pixel value for the given red, green and blue */
-gulong   e_color_alloc      (gushort red, gushort green, gushort blue);
-void     e_color_alloc_name (GtkWidget *widget, const char *name, GdkColor *color);
-void     e_color_alloc_gdk  (GtkWidget *widget, GdkColor *color);
-
-extern GdkColor e_white, e_dark_gray, e_black;
-
-G_END_DECLS
-
-#endif /* GNOME_APP_LIBS_COLOR_H */
diff --git a/src/mygal/e-marshal.list b/src/mygal/e-marshal.list
deleted file mode 100644 (file)
index 92496db..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-BOOLEAN:INT,INT,OBJECT,INT,INT,UINT
-BOOLEAN:INT,POINTER,INT,OBJECT,INT,INT,UINT
-BOOLEAN:NONE
-BOOLEAN:OBJECT
-BOOLEAN:OBJECT,DOUBLE,DOUBLE,BOOLEAN
-BOOLEAN:POINTER,POINTER,INT,INT,INT
-BOOLEAN:POINTER,POINTER,POINTER,INT,INT,INT
-BOOLEAN:STRING,INT
-DOUBLE:OBJECT,DOUBLE,DOUBLE,BOOLEAN
-INT:BOXED
-INT:INT
-INT:INT,INT,BOXED
-INT:INT,POINTER,INT,BOXED
-INT:OBJECT,BOXED
-INT:POINTER
-NONE:BOXED
-NONE:BOXED,INT
-NONE:BOXED,INT,INT
-NONE:DOUBLE
-NONE:INT
-NONE:INT,INT
-NONE:INT,INT,BOXED
-NONE:INT,INT,OBJECT
-NONE:INT,INT,OBJECT,BOXED,UINT,UINT
-NONE:INT,INT,OBJECT,INT,INT,BOXED,UINT,UINT
-NONE:INT,INT,OBJECT,POINTER,UINT,UINT
-NONE:INT,INT,OBJECT,UINT
-NONE:INT,INT,STRING,STRING
-NONE:INT,INT,STRING,STRING,POINTER
-NONE:INT,POINTER
-NONE:INT,POINTER,INT,BOXED
-NONE:INT,POINTER,INT,OBJECT
-NONE:INT,POINTER,INT,OBJECT,BOXED,UINT,UINT
-NONE:INT,POINTER,INT,OBJECT,INT,INT,BOXED,UINT,UINT
-NONE:INT,POINTER,INT,OBJECT,UINT
-NONE:INT,STRING
-NONE:NONE
-NONE:OBJECT
-NONE:OBJECT,OBJECT
-NONE:OBJECT,DOUBLE,DOUBLE,BOOLEAN
-NONE:POINTER
-NONE:POINTER,BOOLEAN
-NONE:POINTER,BOOLEAN,BOOLEAN,BOOLEAN
-NONE:POINTER,INT
-NONE:POINTER,INT,INT
-NONE:POINTER,INT,INT,INT
-NONE:POINTER,INT,OBJECT
-NONE:POINTER,POINTER
-NONE:POINTER,POINTER,INT
-OBJECT:OBJECT,DOUBLE,DOUBLE,BOOLEAN
-POINTER:NONE
diff --git a/src/mygal/e-util.h b/src/mygal/e-util.h
deleted file mode 100644 (file)
index 7bc3978..0000000
+++ /dev/null
@@ -1,234 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/* 
- * e-util.h
- * Copyright 2000, 2001, Ximian, Inc.
- *
- * Authors:
- *   Chris Lahey <clahey@ximian.com>
- *
- * Modified for gLabels by:
- *   Jim Evins <evins@snaught.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public
- * License, version 2, as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#ifndef _E_UTIL_H_
-#define _E_UTIL_H_
-
-#include <sys/types.h>
-#include <glib-object.h>
-#include <limits.h>
-
-#ifdef __cplusplus
-extern "C" {
-#pragma }
-#endif /* __cplusplus */
-
-#include "e-marshal.h"
-
-#define E_MAKE_TYPE(l,str,t,ci,i,parent) \
-GType l##_get_type(void)\
-{\
-       static GType type = 0;                          \
-       if (!type){                                     \
-               static GTypeInfo const object_info = {  \
-                       sizeof (t##Class),              \
-                                                       \
-                       (GBaseInitFunc) NULL,           \
-                       (GBaseFinalizeFunc) NULL,       \
-                                                       \
-                       (GClassInitFunc) ci,            \
-                       (GClassFinalizeFunc) NULL,      \
-                       NULL,   /* class_data */        \
-                                                       \
-                       sizeof (t),                     \
-                       0,      /* n_preallocs */       \
-                       (GInstanceInitFunc) i,          \
-               };                                      \
-               type = g_type_register_static (parent, str, &object_info, 0);   \
-       }                                               \
-       return type;                                    \
-}
-
-
-#define E_MAKE_X_TYPE(l,str,t,ci,i,parent,poa_init,offset)     \
-GtkType l##_get_type(void)                                     \
-{                                                              \
-       static GtkType type = 0;                                \
-       if (!type){                                             \
-               GTypeInfo info = {                              \
-                       sizeof (t##Class),                      \
-                                                               \
-                       (GBaseInitFunc) NULL,                   \
-                       (GBaseFinalizeFunc) NULL,               \
-                                                               \
-                       (GClassInitFunc) ci,                    \
-                       (GClassFinalizeFunc) NULL,              \
-                                                               \
-                        NULL,  /* class_data */                \
-                                                               \
-                       sizeof (t),                             \
-                       0,      /* n_preallocs */               \
-                       (GInstanceInitFunc) i,                  \
-               };                                              \
-                type = bonobo_x_type_unique (                  \
-                       parent, poa_init, NULL,                 \
-                       offset, &info, str);                    \
-       }                                                       \
-       return type;                                            \
-}
-
-#define GET_STRING_ARRAY_FROM_ELLIPSIS(labels, first_string) \
-        { \
-               va_list args; \
-               int i; \
-               char *s; \
- \
-               va_start (args, (first_string)); \
- \
-               i = 0; \
-               for (s = (first_string); s; s = va_arg (args, char *)) \
-                       i++; \
-               va_end (args); \
- \
-               (labels) = g_new (char *, i + 1); \
- \
-               va_start (args, (first_string)); \
-               i = 0; \
-               for (s = (first_string); s; s = va_arg (args, char *)) \
-                       (labels)[i++] = s; \
- \
-               va_end (args); \
-               (labels)[i] = NULL; \
-       }
-
-
-#define GET_DUPLICATED_STRING_ARRAY_FROM_ELLIPSIS(labels, first_string) \
-        { \
-                int i; \
-                GET_STRING_ARRAY_FROM_ELLIPSIS ((labels), (first_string)); \
-                for (i = 0; labels[i]; i++) \
-                       labels[i] = g_strdup (labels[i]); \
-        }
-
-
-#if 0
-#  define E_OBJECT_CLASS_ADD_SIGNALS(oc,sigs,last) \
-       gtk_object_class_add_signals (oc, sigs, last)
-#  define E_OBJECT_CLASS_TYPE(oc) (oc)->type
-#else
-#  define E_OBJECT_CLASS_ADD_SIGNALS(oc,sigs,last)
-#  define E_OBJECT_CLASS_TYPE(oc) G_TYPE_FROM_CLASS (oc)
-#endif
-
-
-typedef enum {
-       E_FOCUS_NONE,
-       E_FOCUS_CURRENT,
-       E_FOCUS_START,
-       E_FOCUS_END
-} EFocus;
-int       g_str_compare                                                    (const void        *x,
-                                                                           const void        *y);
-int       g_collate_compare                                                (const void        *x,
-                                                                           const void        *y);
-int       g_int_compare                                                    (const void        *x,
-                                                                           const void        *y);
-char     *e_strdup_strip                                                   (const char        *string);
-void      e_free_object_list                                               (GList             *list);
-void      e_free_object_slist                                              (GSList            *list);
-void      e_free_string_list                                               (GList             *list);
-void      e_free_string_slist                                              (GSList            *list);
-char     *e_read_file                                                      (const char        *filename);
-int       e_write_file                                                     (const char        *filename,
-                                                                           const char        *data,
-                                                                           int                flags);
-int       e_write_file_mkstemp                                             (char              *filename,
-                                                                           const char        *data);
-int       e_mkdir_hier                                                     (const char        *path,
-                                                                           mode_t             mode);
-
-gchar   **e_strsplit                                                      (const gchar      *string,
-                                                                           const gchar      *delimiter,
-                                                                           gint              max_tokens);
-gchar    *e_strstrcase                                                     (const gchar       *haystack,
-                                                                           const gchar       *needle);
-/* This only makes a filename safe for usage as a filename.  It still may have shell meta-characters in it. */
-void      e_filename_make_safe                                             (gchar             *string);
-gchar    *e_format_number                                                  (gint               number);
-gchar    *e_format_number_float                                            (gfloat             number);
-gboolean  e_create_directory                                               (gchar             *directory);
-gchar   **e_strdupv                                                        (const gchar      **str_array);
-
-
-typedef int (*ESortCompareFunc) (const void *first,
-                                const void *second,
-                                gpointer    closure);
-void     e_sort                (void             *base,
-                               size_t            nmemb,
-                               size_t            size,
-                               ESortCompareFunc  compare,
-                               gpointer          closure);
-void     e_bsearch             (const void       *key,
-                               const void       *base,
-                               size_t            nmemb,
-                               size_t            size,
-                               ESortCompareFunc  compare,
-                               gpointer          closure,
-                               size_t           *start,
-                               size_t           *end);
-size_t   e_strftime_fix_am_pm  (char             *s,
-                               size_t            max,
-                               const char       *fmt,
-                               const struct tm  *tm);
-
-size_t   e_strftime            (char              *s,
-                                size_t             max,
-                                const char        *fmt,
-                                const struct tm   *tm);
-
-size_t   e_utf8_strftime_fix_am_pm  (char             *s,
-                                    size_t            max,
-                                    const char       *fmt,
-                                    const struct tm  *tm);
-
-size_t   e_utf8_strftime       (char              *s,
-                                size_t             max,
-                                const char        *fmt,
-                                const struct tm   *tm);
-
-/* String to/from double conversion functions */
-gdouble   e_flexible_strtod     (const gchar       *nptr,
-                                gchar            **endptr);
-
-/* 29 bytes should enough for all possible values that
- * g_ascii_dtostr can produce with the %.17g format.
- * Then add 10 for good measure */
-#define E_ASCII_DTOSTR_BUF_SIZE (DBL_DIG + 12 + 10)
-gchar    *e_ascii_dtostr                                                   (gchar             *buffer,
-                                                                           gint               buf_len,
-                                                                           const gchar       *format,
-                                                                           gdouble            d);
-
-/* Alternating char * and int arguments with a NULL char * to end.
-   Less than 0 for the int means copy the whole string. */
-gchar    *e_strdup_append_strings                                          (gchar             *first_string,
-                                                                           ...);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* _E_UTIL_H_ */
diff --git a/src/mygal/mygal-combo-box.c b/src/mygal/mygal-combo-box.c
deleted file mode 100644 (file)
index adf1c64..0000000
+++ /dev/null
@@ -1,837 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * mygal-combo-box.c - a customizable combobox
- * Copyright 2000, 2001, Ximian, Inc.
- *
- * Authors:
- *   Miguel de Icaza (miguel@gnu.org)
- *   Adrian E Feiguin (feiguin@ifir.edu.ar)
- *   Paolo Molnaro (lupus@debian.org).
- *   Jon K Hellan (hellan@acm.org)
- *
- * Modified for gLabels by:
- *   Jim Evins <evins@snaught.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public
- * License, version 2, as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include <config.h>
-#include <gtk/gtkhbox.h>
-#include <gtk/gtktogglebutton.h>
-#include <gtk/gtkarrow.h>
-#include <gtk/gtkeventbox.h>
-#include <gtk/gtkmain.h>
-#include <gtk/gtksignal.h>
-#include <gtk/gtkwindow.h>
-#include <gtk/gtkframe.h>
-#include <gtk/gtkvbox.h>
-#include <gtk/gtktearoffmenuitem.h>
-#include <gdk/gdkkeysyms.h>
-#include "mygal-combo-box.h"
-#include "e-util.h"
-
-#define PARENT_TYPE GTK_TYPE_HBOX
-static GObjectClass *mygal_combo_box_parent_class;
-
-static int mygal_combo_toggle_pressed (GtkToggleButton *tbutton,
-                                    MygalComboBox *combo_box);
-static void mygal_combo_popup_tear_off (MygalComboBox *combo,
-                                     gboolean set_position);
-static void mygal_combo_set_tearoff_state (MygalComboBox *combo,
-                                        gboolean torn_off);
-static void mygal_combo_popup_reparent (GtkWidget *popup, GtkWidget *new_parent, 
-                                     gboolean unrealize);
-static gboolean cb_popup_delete (GtkWidget *w, GdkEventAny *event,
-                            MygalComboBox *combo);
-static void mygal_combo_tearoff_bg_copy (MygalComboBox *combo);
-
-enum {
-       POP_DOWN_WIDGET,
-       POP_DOWN_DONE,
-       PRE_POP_DOWN,
-       POST_POP_HIDE,
-       LAST_SIGNAL
-};
-
-static guint mygal_combo_box_signals [LAST_SIGNAL] = { 0, };
-
-struct _MygalComboBoxPrivate {
-       GtkWidget *pop_down_widget;
-       GtkWidget *display_widget;
-
-       /*
-        * Internal widgets used to implement the ComboBox
-        */
-       GtkWidget *frame;
-       GtkWidget *arrow_button;
-
-       GtkWidget *toplevel;    /* Popup's toplevel when not torn off */
-       GtkWidget *tearoff_window; /* Popup's toplevel when torn off */
-       guint torn_off;
-       
-       GtkWidget *tearable;    /* The tearoff "button" */
-       GtkWidget *popup;       /* Popup */
-
-       /*
-        * Closure for invoking the callbacks above
-        */
-       void *closure;
-};
-
-static void
-mygal_combo_box_finalize (GObject *object)
-{
-       MygalComboBox *combo_box = MYGAL_COMBO_BOX (object);
-
-       g_free (combo_box->priv);
-
-       mygal_combo_box_parent_class->finalize (object);
-}
-
-static void
-mygal_combo_box_destroy (GtkObject *object)
-{
-       GtkObjectClass *klass = (GtkObjectClass *)mygal_combo_box_parent_class;
-       MygalComboBox *combo_box = MYGAL_COMBO_BOX (object);
-
-       if (combo_box->priv->toplevel) {
-               gtk_object_destroy (GTK_OBJECT (combo_box->priv->toplevel));
-               combo_box->priv->toplevel = NULL;
-       }
-
-       if (combo_box->priv->tearoff_window) {
-               gtk_object_destroy (GTK_OBJECT (combo_box->priv->tearoff_window));
-               combo_box->priv->tearoff_window = NULL;
-       }
-
-       if (klass->destroy)
-                klass->destroy (object);
-}
-
-static gboolean
-mygal_combo_box_mnemonic_activate (GtkWidget *w, gboolean group_cycling)
-{
-       MygalComboBox *combo_box = MYGAL_COMBO_BOX (w);
-       gtk_toggle_button_set_active (
-               GTK_TOGGLE_BUTTON (combo_box->priv->arrow_button), TRUE);
-       return TRUE;
-}
-
-static void
-mygal_combo_box_class_init (GObjectClass *object_class)
-{
-       GtkWidgetClass *widget_class = (GtkWidgetClass *)object_class;
-       mygal_combo_box_parent_class = g_type_class_peek_parent (object_class);
-
-       object_class->finalize = mygal_combo_box_finalize;
-       widget_class->mnemonic_activate = mygal_combo_box_mnemonic_activate;
-       ((GtkObjectClass *)object_class)->destroy = mygal_combo_box_destroy;
-
-       mygal_combo_box_signals [POP_DOWN_WIDGET] = g_signal_new (
-               "pop_down_widget",
-               G_OBJECT_CLASS_TYPE (object_class),
-               G_SIGNAL_RUN_LAST,
-               G_STRUCT_OFFSET (MygalComboBoxClass, pop_down_widget),
-               NULL, NULL,
-               e_marshal_POINTER__NONE,
-               G_TYPE_POINTER, 0, G_TYPE_NONE);
-
-       mygal_combo_box_signals [POP_DOWN_DONE] = g_signal_new (
-               "pop_down_done",
-               G_OBJECT_CLASS_TYPE (object_class),
-               G_SIGNAL_RUN_LAST,
-               G_STRUCT_OFFSET (MygalComboBoxClass, pop_down_done),
-               NULL, NULL,
-               e_marshal_BOOLEAN__OBJECT,
-               G_TYPE_BOOLEAN, 1, G_TYPE_OBJECT);
-
-       mygal_combo_box_signals [PRE_POP_DOWN] = g_signal_new (
-               "pre_pop_down",
-               G_OBJECT_CLASS_TYPE (object_class),
-               G_SIGNAL_RUN_LAST,
-               G_STRUCT_OFFSET (MygalComboBoxClass, pre_pop_down),
-               NULL, NULL,
-               e_marshal_NONE__NONE,
-               G_TYPE_NONE, 0);
-
-       mygal_combo_box_signals [POST_POP_HIDE] = g_signal_new (
-               "post_pop_hide",
-               G_OBJECT_CLASS_TYPE (object_class),
-               G_SIGNAL_RUN_LAST,
-               G_STRUCT_OFFSET (MygalComboBoxClass, post_pop_hide),
-               NULL, NULL,
-               e_marshal_NONE__NONE,
-               G_TYPE_NONE, 0);
-}
-
-static void
-deactivate_arrow (MygalComboBox *combo_box)
-{
-       GtkToggleButton *arrow;
-
-       arrow = GTK_TOGGLE_BUTTON (combo_box->priv->arrow_button);
-       g_signal_handlers_block_matched (arrow,
-                                        G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA,
-                                        0, 0, NULL,
-                                        mygal_combo_toggle_pressed, combo_box);
-
-       gtk_toggle_button_set_active (arrow, FALSE);
-       
-               g_signal_handlers_unblock_matched (arrow,
-                                          G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA,
-                                          0, 0, NULL,
-                                          mygal_combo_toggle_pressed, combo_box);
-}
-
-/**
- * mygal_combo_box_popup_hide_unconditional
- * @combo_box:  Combo box
- *
- * Hide popup, whether or not it is torn off.
- */
-static void
-mygal_combo_box_popup_hide_unconditional (MygalComboBox *combo_box)
-{
-       gboolean popup_info_destroyed = FALSE;
-
-       g_return_if_fail (combo_box != NULL);
-       g_return_if_fail (MYGAL_IS_COMBO_BOX (combo_box));
-
-       gtk_widget_hide (combo_box->priv->toplevel);
-       gtk_widget_hide (combo_box->priv->popup);
-       if (combo_box->priv->torn_off) {
-               GTK_TEAROFF_MENU_ITEM (combo_box->priv->tearable)->torn_off
-                       = FALSE;
-               mygal_combo_set_tearoff_state (combo_box, FALSE);
-       }
-       
-       gtk_grab_remove (combo_box->priv->toplevel);
-       gdk_pointer_ungrab (GDK_CURRENT_TIME);
-               
-       g_object_ref (combo_box->priv->pop_down_widget);
-       g_signal_emit (combo_box,
-                      mygal_combo_box_signals [POP_DOWN_DONE], 0,
-                      combo_box->priv->pop_down_widget, &popup_info_destroyed);
-
-       if (popup_info_destroyed){
-               gtk_container_remove (
-                       GTK_CONTAINER (combo_box->priv->frame),
-                       combo_box->priv->pop_down_widget);
-               combo_box->priv->pop_down_widget = NULL;
-       }
-       g_object_unref (combo_box->priv->pop_down_widget);
-       deactivate_arrow (combo_box);
-
-       g_signal_emit (combo_box, mygal_combo_box_signals [POST_POP_HIDE], 0);
-}
-
-/**
- * mygal_combo_box_popup_hide:
- * @combo_box:  Combo box
- *
- * Hide popup, but not when it is torn off.
- * This is the external interface - for subclasses and apps which expect a
- * regular combo which doesn't do tearoffs.
- */
-void
-mygal_combo_box_popup_hide (MygalComboBox *combo_box)
-{
-       if (!combo_box->priv->torn_off)
-               mygal_combo_box_popup_hide_unconditional (combo_box);
-       else if (GTK_WIDGET_VISIBLE (combo_box->priv->toplevel)) {
-               /* Both popup and tearoff window present. Get rid of just
-                   the popup shell. */
-               mygal_combo_popup_tear_off (combo_box, FALSE);
-               deactivate_arrow (combo_box);
-       }                
-}
-
-/*
- * Find best location for displaying
- */
-void
-mygal_combo_box_get_pos (MygalComboBox *combo_box, int *x, int *y)
-{
-       GtkWidget *wcombo = GTK_WIDGET (combo_box);
-       int ph, pw;
-
-       gdk_window_get_origin (wcombo->window, x, y);
-       *y += wcombo->allocation.height + wcombo->allocation.y;
-       *x += wcombo->allocation.x;
-
-       ph = combo_box->priv->popup->allocation.height;
-       pw = combo_box->priv->popup->allocation.width;
-
-       if ((*y + ph) > gdk_screen_height ())
-               *y = gdk_screen_height () - ph;
-
-       if ((*x + pw) > gdk_screen_width ())
-               *x = gdk_screen_width () - pw;
-}
-
-static void
-mygal_combo_box_popup_display (MygalComboBox *combo_box)
-{
-       int x, y;
-
-       g_return_if_fail (combo_box != NULL);
-       g_return_if_fail (MYGAL_IS_COMBO_BOX (combo_box));
-       
-       /*
-        * If we have no widget to display on the popdown,
-        * create it
-        */
-       if (!combo_box->priv->pop_down_widget){
-               GtkWidget *pw = NULL;
-
-               g_signal_emit (combo_box,
-                              mygal_combo_box_signals [POP_DOWN_WIDGET], 0, &pw);
-               g_assert (pw != NULL);
-               combo_box->priv->pop_down_widget = pw;
-               gtk_container_add (GTK_CONTAINER (combo_box->priv->frame), pw);
-       }
-
-       g_signal_emit (combo_box, mygal_combo_box_signals [PRE_POP_DOWN], 0);
-       
-       if (combo_box->priv->torn_off) {
-               /* To give the illusion that tearoff still displays the
-                * popup, we copy the image in the popup window to the
-                * background. Thus, it won't be blank after reparenting */
-               mygal_combo_tearoff_bg_copy (combo_box);
-
-               /* We force an unrealize here so that we don't trigger
-                * redrawing/ clearing code - we just want to reveal our
-                * backing pixmap.
-                */
-               mygal_combo_popup_reparent (combo_box->priv->popup,
-                                         combo_box->priv->toplevel, TRUE);
-       }
-
-       mygal_combo_box_get_pos (combo_box, &x, &y);
-       
-       gtk_widget_set_uposition (combo_box->priv->toplevel, x, y);
-       gtk_widget_realize (combo_box->priv->popup);
-       gtk_widget_show (combo_box->priv->popup);
-       gtk_widget_realize (combo_box->priv->toplevel);
-       gtk_widget_show (combo_box->priv->toplevel);
-       
-       gtk_grab_add (combo_box->priv->toplevel);
-       gdk_pointer_grab (combo_box->priv->toplevel->window, TRUE,
-                         GDK_BUTTON_PRESS_MASK |
-                         GDK_BUTTON_RELEASE_MASK |
-                         GDK_POINTER_MOTION_MASK,
-                         NULL, NULL, GDK_CURRENT_TIME);
-}
-
-static int
-mygal_combo_toggle_pressed (GtkToggleButton *tbutton, MygalComboBox *combo_box)
-{
-       if (tbutton->active)
-               mygal_combo_box_popup_display (combo_box);
-       else
-               mygal_combo_box_popup_hide_unconditional (combo_box);
-
-       return TRUE;
-}
-
-static  gint
-mygal_combo_box_button_press (GtkWidget *widget, GdkEventButton *event, MygalComboBox *combo_box)
-{
-       GtkWidget *child;
-
-       child = gtk_get_event_widget ((GdkEvent *) event);
-       if (child != widget){
-               while (child){
-                       if (child == widget)
-                               return FALSE;
-                       child = child->parent;
-               }
-       }
-
-       mygal_combo_box_popup_hide (combo_box);
-       return TRUE;
-}
-
-/**
- * mygal_combo_box_key_press
- * @widget:     Widget
- * @event:      Event
- * @combo_box:  Combo box
- *
- * Key press handler which dismisses popup on escape.
- * Popup is dismissed whether or not popup is torn off.
- */
-static  gint
-mygal_combo_box_key_press (GtkWidget *widget, GdkEventKey *event,
-                        MygalComboBox *combo_box)
-{
-       if (event->keyval == GDK_Escape) {
-               mygal_combo_box_popup_hide_unconditional (combo_box);
-               return TRUE;
-       } else
-               return FALSE;
-}
-
-static void
-cb_state_change (GtkWidget *widget, GtkStateType old_state, MygalComboBox *combo_box)
-{
-       GtkStateType const new_state = GTK_WIDGET_STATE(widget);
-       gtk_widget_set_state (combo_box->priv->display_widget, new_state);
-}
-
-static void
-mygal_combo_box_init (MygalComboBox *combo_box)
-{
-       GtkWidget *arrow;
-       GdkCursor *cursor;
-
-       combo_box->priv = g_new0 (MygalComboBoxPrivate, 1);
-
-       /*
-        * Create the arrow
-        */
-       combo_box->priv->arrow_button = gtk_toggle_button_new ();
-       gtk_button_set_relief (GTK_BUTTON (combo_box->priv->arrow_button), GTK_RELIEF_NONE);
-       GTK_WIDGET_UNSET_FLAGS (combo_box->priv->arrow_button, GTK_CAN_FOCUS);
-
-       arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_IN);
-       gtk_container_add (GTK_CONTAINER (combo_box->priv->arrow_button), arrow);
-       gtk_box_pack_end (GTK_BOX (combo_box), combo_box->priv->arrow_button, FALSE, FALSE, 0);
-       g_signal_connect (combo_box->priv->arrow_button, "toggled",
-                         G_CALLBACK (mygal_combo_toggle_pressed), combo_box);
-       gtk_widget_show_all (combo_box->priv->arrow_button);
-
-       /*
-        * prelight the display widget when mousing over the arrow.
-        */
-       g_signal_connect (combo_box->priv->arrow_button, "state-changed",
-                         G_CALLBACK (cb_state_change), combo_box);
-
-       /*
-        * The pop-down container
-        */
-
-       combo_box->priv->toplevel = gtk_window_new (GTK_WINDOW_POPUP);
-       gtk_widget_ref (combo_box->priv->toplevel);
-       gtk_object_sink (GTK_OBJECT (combo_box->priv->toplevel));
-       gtk_window_set_policy (GTK_WINDOW (combo_box->priv->toplevel),
-                              FALSE, TRUE, FALSE);
-
-       combo_box->priv->popup = gtk_event_box_new ();
-       gtk_container_add (GTK_CONTAINER (combo_box->priv->toplevel),
-                          combo_box->priv->popup);
-       gtk_widget_show (combo_box->priv->popup);
-
-       gtk_widget_realize (combo_box->priv->popup);
-       cursor = gdk_cursor_new (GDK_TOP_LEFT_ARROW);
-       gdk_window_set_cursor (combo_box->priv->popup->window, cursor);
-       gdk_cursor_unref (cursor);
-
-       combo_box->priv->torn_off = FALSE;
-       combo_box->priv->tearoff_window = NULL;
-       
-       combo_box->priv->frame = gtk_frame_new (NULL);
-       gtk_container_add (GTK_CONTAINER (combo_box->priv->popup),
-                          combo_box->priv->frame);
-       gtk_frame_set_shadow_type (GTK_FRAME (combo_box->priv->frame), GTK_SHADOW_OUT);
-
-       g_signal_connect (combo_box->priv->toplevel, "button_press_event",
-                         G_CALLBACK (mygal_combo_box_button_press), combo_box);
-       g_signal_connect (combo_box->priv->toplevel, "key_press_event",
-                         G_CALLBACK (mygal_combo_box_key_press), combo_box);
-}
-
-E_MAKE_TYPE (mygal_combo_box,
-            "MygalComboBox",
-            MygalComboBox,
-            mygal_combo_box_class_init,
-            mygal_combo_box_init,
-            PARENT_TYPE)
-
-/**
- * mygal_combo_box_set_display:
- * @combo_box: the Combo Box to modify
- * @display_widget: The widget to be displayed
-
- * Sets the displayed widget for the @combo_box to be @display_widget
- */
-void
-mygal_combo_box_set_display (MygalComboBox *combo_box, GtkWidget *display_widget)
-{
-       g_return_if_fail (combo_box != NULL);
-       g_return_if_fail (MYGAL_IS_COMBO_BOX (combo_box));
-       g_return_if_fail (display_widget != NULL);
-       g_return_if_fail (GTK_IS_WIDGET (display_widget));
-
-       if (combo_box->priv->display_widget &&
-           combo_box->priv->display_widget != display_widget)
-               gtk_container_remove (GTK_CONTAINER (combo_box),
-                                     combo_box->priv->display_widget);
-
-       combo_box->priv->display_widget = display_widget;
-
-       gtk_box_pack_start (GTK_BOX (combo_box), display_widget, TRUE, TRUE, 0);
-}
-
-static gboolean
-cb_tearable_enter_leave (GtkWidget *w, GdkEventCrossing *event, gpointer data)
-{
-       gboolean const flag = GPOINTER_TO_INT(data);
-       gtk_widget_set_state (w, flag ? GTK_STATE_PRELIGHT : GTK_STATE_NORMAL);
-       return FALSE;
-}
-
-/**
- * mygal_combo_popup_tear_off
- * @combo:         Combo box
- * @set_position:  Set to position of popup shell if true
- *
- * Tear off the popup
- *
- * FIXME:
- * Gtk popup menus are toplevel windows, not dialogs. I think this is wrong,
- * and make the popups dialogs. But may be there should be a way to make
- * them toplevel. We can do this after creating:
- * GTK_WINDOW (tearoff)->type = GTK_WINDOW_TOPLEVEL;
- */
-static void
-mygal_combo_popup_tear_off (MygalComboBox *combo, gboolean set_position)
-{
-       int x, y;
-       
-       if (!combo->priv->tearoff_window) {
-               GtkWidget *tearoff;
-               gchar *title;
-               
-               /* FIXME: made this a toplevel, not a dialog ! */
-               tearoff = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-               gtk_widget_ref (tearoff);
-               gtk_object_sink (GTK_OBJECT (tearoff));
-               combo->priv->tearoff_window = tearoff;
-               gtk_widget_set_app_paintable (tearoff, TRUE);
-               g_signal_connect (tearoff, "key_press_event",
-                                 G_CALLBACK (mygal_combo_box_key_press),
-                                 combo);
-               gtk_widget_realize (tearoff);
-               title = g_object_get_data (G_OBJECT (combo),
-                                          "gtk-combo-title");
-               if (title)
-                       gdk_window_set_title (tearoff->window, title);
-               gtk_window_set_policy (GTK_WINDOW (tearoff),
-                                      FALSE, TRUE, FALSE);
-               gtk_window_set_transient_for 
-                       (GTK_WINDOW (tearoff),
-                        GTK_WINDOW (gtk_widget_get_toplevel
-                                    GTK_WIDGET (combo)));
-       }
-
-       if (GTK_WIDGET_VISIBLE (combo->priv->popup)) {
-               gtk_widget_hide (combo->priv->toplevel);
-               
-               gtk_grab_remove (combo->priv->toplevel);
-               gdk_pointer_ungrab (GDK_CURRENT_TIME);
-       }
-
-       mygal_combo_popup_reparent (combo->priv->popup,
-                                 combo->priv->tearoff_window, FALSE);
-
-       /* It may have got confused about size */
-       gtk_widget_queue_resize (GTK_WIDGET (combo->priv->popup));
-
-       if (set_position) {
-               mygal_combo_box_get_pos (combo, &x, &y);
-               gtk_widget_set_uposition (combo->priv->tearoff_window, x, y);
-       }
-       gtk_widget_show (GTK_WIDGET (combo->priv->popup));
-       gtk_widget_show (combo->priv->tearoff_window);
-               
-}
-
-/**
- * mygal_combo_set_tearoff_state
- * @combo_box:  Combo box
- * @torn_off:   TRUE: Tear off. FALSE: Pop down and reattach
- *
- * Set the tearoff state of the popup
- *
- * Compare with gtk_menu_set_tearoff_state in gtk/gtkmenu.c
- */
-static void       
-mygal_combo_set_tearoff_state (MygalComboBox *combo,
-                            gboolean  torn_off)
-{
-       g_return_if_fail (combo != NULL);
-       g_return_if_fail (MYGAL_IS_COMBO_BOX (combo));
-       
-       if (combo->priv->torn_off != torn_off) {
-               combo->priv->torn_off = torn_off;
-               
-               if (combo->priv->torn_off) {
-                       mygal_combo_popup_tear_off (combo, TRUE);
-                       deactivate_arrow (combo);
-               } else {
-                       gtk_widget_hide (combo->priv->tearoff_window);
-                       mygal_combo_popup_reparent (combo->priv->popup,
-                                                 combo->priv->toplevel,
-                                                 FALSE);
-               }
-       }
-}
-
-/**
- * mygal_combo_tearoff_bg_copy
- * @combo_box:  Combo box
- *
- * Copy popup window image to the tearoff window.
- */
-static void
-mygal_combo_tearoff_bg_copy (MygalComboBox *combo)
-{
-       GdkPixmap *pixmap;
-       GdkGC *gc;
-       GdkGCValues gc_values;
-
-       GtkWidget *widget = combo->priv->popup;
-
-       if (combo->priv->torn_off) {
-               gc_values.subwindow_mode = GDK_INCLUDE_INFERIORS;
-               gc = gdk_gc_new_with_values (widget->window,
-                                            &gc_values, GDK_GC_SUBWINDOW);
-      
-               pixmap = gdk_pixmap_new (widget->window,
-                                        widget->allocation.width,
-                                        widget->allocation.height,
-                                        -1);
-
-               gdk_draw_drawable (pixmap, gc,
-                                widget->window,
-                                0, 0, 0, 0, -1, -1);
-               gdk_gc_unref (gc);
-      
-               gtk_widget_set_usize (combo->priv->tearoff_window,
-                                     widget->allocation.width,
-                                     widget->allocation.height);
-      
-               gdk_window_set_back_pixmap
-                       (combo->priv->tearoff_window->window, pixmap, FALSE);
-               gdk_drawable_unref (pixmap);
-       }
-}
-
-/**
- * mygal_combo_popup_reparent
- * @popup:       Popup
- * @new_parent:  New parent
- * @unrealize:   Unrealize popup if TRUE.
- *
- * Reparent the popup, taking care of the refcounting
- *
- * Compare with gtk_menu_reparent in gtk/gtkmenu.c
- */
-static void 
-mygal_combo_popup_reparent (GtkWidget *popup, 
-                         GtkWidget *new_parent, 
-                         gboolean unrealize)
-{
-       GtkObject *object = GTK_OBJECT (popup);
-       gboolean was_floating = GTK_OBJECT_FLOATING (object);
-
-       g_object_ref (object);
-       gtk_object_sink (object);
-
-       if (unrealize) {
-               g_object_ref (object);
-               gtk_container_remove (GTK_CONTAINER (popup->parent), popup);
-               gtk_container_add (GTK_CONTAINER (new_parent), popup);
-               g_object_unref (object);
-       }
-       else
-               gtk_widget_reparent (GTK_WIDGET (popup), new_parent);
-       gtk_widget_set_usize (new_parent, -1, -1);
-  
-       if (was_floating)
-               GTK_OBJECT_SET_FLAGS (object, GTK_FLOATING);
-       else
-               g_object_unref (object);
-}
-
-/**
- * cb_tearable_button_release
- * @w:      Widget
- * @event:  Event
- * @combo:  Combo box
- *
- * Toggle tearoff state.
- */
-static gboolean
-cb_tearable_button_release (GtkWidget *w, GdkEventButton *event,
-                           MygalComboBox *combo)
-{
-       GtkTearoffMenuItem *tearable;
-       
-       g_return_val_if_fail (w != NULL, FALSE);
-       g_return_val_if_fail (GTK_IS_TEAROFF_MENU_ITEM (w), FALSE);
-
-       tearable = GTK_TEAROFF_MENU_ITEM (w);
-       tearable->torn_off = !tearable->torn_off;
-
-       if (!combo->priv->torn_off) {
-               gboolean need_connect;
-                       
-               need_connect = (!combo->priv->tearoff_window);
-               mygal_combo_set_tearoff_state (combo, TRUE);
-               if (need_connect)
-                       g_signal_connect (combo->priv->tearoff_window,  
-                                         "delete_event",
-                                         G_CALLBACK (cb_popup_delete),
-                                         combo);
-       } else
-               mygal_combo_box_popup_hide_unconditional (combo);
-       
-       return TRUE;
-}
-
-static gboolean
-cb_popup_delete (GtkWidget *w, GdkEventAny *event, MygalComboBox *combo)
-{
-       mygal_combo_box_popup_hide_unconditional (combo);
-       return TRUE;
-}
-
-void
-mygal_combo_box_construct (MygalComboBox *combo_box, GtkWidget *display_widget, GtkWidget *pop_down_widget)
-{
-       GtkWidget *tearable;
-       GtkWidget *vbox;
-
-       g_return_if_fail (combo_box != NULL);
-       g_return_if_fail (MYGAL_IS_COMBO_BOX (combo_box));
-       g_return_if_fail (display_widget  != NULL);
-       g_return_if_fail (GTK_IS_WIDGET (display_widget));
-
-       GTK_BOX (combo_box)->spacing = 0;
-       GTK_BOX (combo_box)->homogeneous = FALSE;
-
-       combo_box->priv->pop_down_widget = pop_down_widget;
-       combo_box->priv->display_widget = NULL;
-
-       vbox = gtk_vbox_new (FALSE, 5);
-       tearable = gtk_tearoff_menu_item_new ();
-       g_signal_connect (tearable, "enter-notify-event",
-                         G_CALLBACK (cb_tearable_enter_leave),
-                         GINT_TO_POINTER (TRUE));
-       g_signal_connect (tearable, "leave-notify-event",
-                         G_CALLBACK (cb_tearable_enter_leave),
-                         GINT_TO_POINTER (FALSE));
-       g_signal_connect (tearable, "button-release-event",
-                         G_CALLBACK (cb_tearable_button_release),
-                         (gpointer) combo_box);
-       gtk_box_pack_start (GTK_BOX (vbox), tearable, FALSE, FALSE, 0);
-       gtk_box_pack_start (GTK_BOX (vbox), pop_down_widget, TRUE, TRUE, 0);
-       combo_box->priv->tearable = tearable;
-
-       /*
-        * Finish setup
-        */
-       mygal_combo_box_set_display (combo_box, display_widget);
-
-       gtk_container_add (GTK_CONTAINER (combo_box->priv->frame), vbox);
-       gtk_widget_show_all (combo_box->priv->frame);
-}
-
-GtkWidget *
-mygal_combo_box_new (GtkWidget *display_widget, GtkWidget *optional_popdown)
-{
-       MygalComboBox *combo_box;
-
-       g_return_val_if_fail (display_widget  != NULL, NULL);
-       g_return_val_if_fail (GTK_IS_WIDGET (display_widget), NULL);
-
-       combo_box = g_object_new (MYGAL_COMBO_BOX_TYPE, NULL);
-       mygal_combo_box_construct (combo_box, display_widget, optional_popdown);
-       return GTK_WIDGET (combo_box);
-}
-
-void
-mygal_combo_box_set_arrow_relief (MygalComboBox *cc, GtkReliefStyle relief)
-{
-       g_return_if_fail (cc != NULL);
-       g_return_if_fail (MYGAL_IS_COMBO_BOX (cc));
-
-       gtk_button_set_relief (GTK_BUTTON (cc->priv->arrow_button), relief);
-}
-
-/**
- * mygal_combo_box_set_title
- * @combo: Combo box
- * @title: Title
- *
- * Set a title to display over the tearoff window.
- *
- * FIXME:
- *
- * This should really change the title even when the popup is already torn off.
- * I guess the tearoff window could attach a listener to title change or
- * something. But I don't think we need the functionality, so I didn't bother
- * to investigate.
- */
-void       
-mygal_combo_box_set_title (MygalComboBox *combo,
-                        const gchar *title)
-{
-       g_return_if_fail (combo != NULL);
-       g_return_if_fail (MYGAL_IS_COMBO_BOX (combo));
-       
-       g_object_set_data_full (G_OBJECT (combo), "gtk-combo-title",
-                               g_strdup (title), (GDestroyNotify) g_free);
-}
-
-/**
- * mygal_combo_box_set_arrow_sensitive
- * @combo:  Combo box
- * @sensitive:  Sensitivity value
- *
- * Toggle the sensitivity of the arrow button
- */
-
-void
-mygal_combo_box_set_arrow_sensitive (MygalComboBox *combo,
-                                  gboolean sensitive)
-{
-       g_return_if_fail (combo != NULL);
-
-       gtk_widget_set_sensitive (combo->priv->arrow_button, sensitive);
-}
-
-/**
- * mygal_combo_box_set_tearable:
- * @combo: Combo box
- * @tearable: whether to allow the @combo to be tearable
- *
- * controls whether the combo box's pop up widget can be torn off.
- */
-void
-mygal_combo_box_set_tearable (MygalComboBox *combo, gboolean tearable)
-{
-       g_return_if_fail (combo != NULL);
-       g_return_if_fail (MYGAL_IS_COMBO_BOX (combo));
-
-       if (tearable){
-               gtk_widget_show (combo->priv->tearable);
-       } else {
-               mygal_combo_set_tearoff_state (combo, FALSE);
-               gtk_widget_hide (combo->priv->tearable);
-       }
-}
diff --git a/src/mygal/mygal-combo-box.h b/src/mygal/mygal-combo-box.h
deleted file mode 100644 (file)
index e1785f2..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * mygal-combo-box.h - a customizable combobox
- * Copyright 2000, 2001, Ximian, Inc.
- *
- * Authors:
- *   Miguel de Icaza <miguel@ximian.com>
- *
- * Modified for gLabels by:
- *   Jim Evins <evins@snaught.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public
- * License, version 2, as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#ifndef _MYGAL_COMBO_BOX_H_
-#define _MYGAL_COMBO_BOX_H_
-
-#include <gtk/gtkhbox.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#define MYGAL_COMBO_BOX_TYPE          (mygal_combo_box_get_type())
-#define MYGAL_COMBO_BOX(obj)         G_TYPE_CHECK_INSTANCE_CAST (obj, mygal_combo_box_get_type (), MygalComboBox)
-#define MYGAL_COMBO_BOX_CLASS(klass)  G_TYPE_CHECK_CLASS_CAST (klass, mygal_combo_box_get_type (), MygalComboBoxClass)
-#define MYGAL_IS_COMBO_BOX(obj)       G_TYPE_CHECK_INSTANCE_TYPE (obj, mygal_combo_box_get_type ())
-
-typedef struct _MygalComboBox       MygalComboBox;
-typedef struct _MygalComboBoxPrivate MygalComboBoxPrivate;
-typedef struct _MygalComboBoxClass   MygalComboBoxClass;
-
-struct _MygalComboBox {
-       GtkHBox hbox;
-       MygalComboBoxPrivate *priv;
-};
-
-struct _MygalComboBoxClass {
-       GtkHBoxClass parent_class;
-
-       GtkWidget *(*pop_down_widget) (MygalComboBox *cbox);
-
-       /*
-        * invoked when the popup has been hidden, if the signal
-        * returns TRUE, it means it should be killed from the
-        */ 
-       gboolean  *(*pop_down_done)   (MygalComboBox *cbox, GtkWidget *);
-
-       /*
-        * Notification signals.
-        */
-       void      (*pre_pop_down)     (MygalComboBox *cbox);
-       void      (*post_pop_hide)    (MygalComboBox *cbox);
-};
-
-GtkType    mygal_combo_box_get_type    (void);
-void       mygal_combo_box_construct   (MygalComboBox *combo_box,
-                                       GtkWidget   *display_widget,
-                                       GtkWidget   *optional_pop_down_widget);
-void       mygal_combo_box_get_pos     (MygalComboBox *combo_box, int *x, int *y);
-
-GtkWidget *mygal_combo_box_new         (GtkWidget *display_widget,
-                                       GtkWidget *optional_pop_down_widget);
-void       mygal_combo_box_popup_hide  (MygalComboBox *combo_box);
-
-void       mygal_combo_box_set_display (MygalComboBox *combo_box,
-                                       GtkWidget *display_widget);
-
-void       mygal_combo_box_set_title   (MygalComboBox *combo,
-                                       const gchar *title);
-
-void       mygal_combo_box_set_tearable        (MygalComboBox *combo,
-                                               gboolean tearable);
-void       mygal_combo_box_set_arrow_sensitive (MygalComboBox *combo,
-                                               gboolean sensitive);
-void       mygal_combo_box_set_arrow_relief    (MygalComboBox *cc,
-                                               GtkReliefStyle relief);
-#ifdef __cplusplus
-};
-#endif /* __cplusplus */
-
-#endif /* _MYGAL_COMBO_BOX_H_ */
diff --git a/src/mygal/widget-color-combo.c b/src/mygal/widget-color-combo.c
deleted file mode 100644 (file)
index 8f36545..0000000
+++ /dev/null
@@ -1,338 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * widget-color-combo.c - A color selector combo box
- * Copyright 2000, 2001, Ximian, Inc.
- *
- * Authors:
- *   Miguel de Icaza (miguel@kernel.org)
- *   Dom Lachowicz (dominicl@seas.upenn.edu)
- *
- * Reworked and split up into a separate ColorPalette object:
- *   Michael Levy (mlevy@genoscope.cns.fr)
- *
- * And later revised and polished by:
- *   Almer S. Tigelaar (almer@gnome.org)
- *
- * Modified for gLabels by:
- *   Jim Evins <evins@snaught.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public
- * License, version 2, as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include <config.h>
-
-#include <gtk/gtkentry.h>
-#include <gtk/gtksignal.h>
-#include <gtk/gtkimage.h>
-#include "e-util.h"
-#include "e-colors.h"
-#include "widget-color-combo.h"
-
-enum {
-       CHANGED,
-       LAST_SIGNAL
-};
-
-static guint color_combo_signals [LAST_SIGNAL] = { 0, };
-
-#define PARENT_TYPE MYGAL_COMBO_BOX_TYPE
-static GObjectClass *color_combo_parent_class;
-
-#define make_color(CC,COL) (((COL) != NULL) ? (COL) : ((CC) ? ((CC)->default_color) : NULL))
-#define RGBA_TO_UINT(r,g,b,a)  ((((guint)(r))<<24)|(((guint)(g))<<16)|(((guint)(b))<<8)|(guint)(a))
-#define GDK_TO_UINT(c) RGBA_TO_UINT(((c).red>>8), ((c).green>>8), ((c).blue>>8), 0xff)
-
-#define PREVIEW_SIZE 20
-
-static void
-color_combo_set_color_internal (ColorCombo *cc, GdkColor *color)
-{
-       guint color_y, color_height;
-       guint height, width;
-       GdkPixbuf *pixbuf;
-       GdkPixbuf *color_pixbuf;
-       GdkColor *new_color;
-       GdkColor *outline_color;
-
-       new_color = make_color (cc,color);
-       /* If the new and the default are NULL draw an outline */
-       outline_color = (new_color) ? new_color : &e_dark_gray;
-
-       pixbuf = gtk_image_get_pixbuf (GTK_IMAGE (cc->preview_image));
-
-       if (!pixbuf)
-               return;
-
-       width = gdk_pixbuf_get_width (pixbuf);
-       height = gdk_pixbuf_get_height (pixbuf);
-
-       if (cc->preview_is_icon) {
-               color_y = height - 4;
-               color_height = 4;
-       }
-       else {
-               color_y = 0;
-               color_height = height;
-       }
-
-       color_pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB,
-                                      TRUE, 8,
-                                      width,
-                                      color_height);
-       gdk_pixbuf_fill (color_pixbuf, GDK_TO_UINT (*outline_color));
-       gdk_pixbuf_copy_area (color_pixbuf, 0, 0, width, color_height,
-                             pixbuf, 0, color_y);
-
-       if (new_color != NULL)
-               gdk_pixbuf_fill (color_pixbuf, GDK_TO_UINT (*new_color));
-       else
-               gdk_pixbuf_fill (color_pixbuf, 0xffffff00);
-       gdk_pixbuf_copy_area (color_pixbuf, 0, 0, width - 2, color_height -2,
-                             pixbuf, 1, color_y + 1);
-
-       g_object_unref (color_pixbuf);
-
-       gtk_widget_queue_draw (GTK_WIDGET (cc));
-}
-
-static void
-color_combo_class_init (GObjectClass *object_class)
-{
-       color_combo_parent_class = g_type_class_ref (PARENT_TYPE);
-
-       color_combo_signals [CHANGED] =
-               g_signal_new ("color_changed",
-                             G_OBJECT_CLASS_TYPE (object_class),
-                             G_SIGNAL_RUN_LAST,
-                             G_STRUCT_OFFSET (ColorComboClass, color_changed),
-                             NULL, NULL,
-                             e_marshal_NONE__POINTER_BOOLEAN_BOOLEAN_BOOLEAN,
-                             G_TYPE_NONE, 4, G_TYPE_POINTER,
-                             G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN);
-}
-
-E_MAKE_TYPE (color_combo,
-            "ColorCombo",
-            ColorCombo,
-            color_combo_class_init,
-            NULL,
-            PARENT_TYPE)
-
-/*
- * Fires signal "color_changed" with the current color as its param
- */
-static void
-emit_color_changed (ColorCombo *cc, GdkColor *color,
-                   gboolean is_custom, gboolean by_user, gboolean is_default)
-{
-       g_signal_emit (cc,
-                      color_combo_signals [CHANGED], 0,
-                      color, is_custom, by_user, is_default);
-       mygal_combo_box_popup_hide (MYGAL_COMBO_BOX (cc));
-}
-
-static void
-cb_palette_color_changed (ColorPalette *P, GdkColor *color,
-                gboolean custom, gboolean by_user, gboolean is_default,
-                ColorCombo *cc)
-{
-       color_combo_set_color_internal (cc, color);
-       emit_color_changed (cc, color, custom, by_user, is_default);
-}
-
-static void
-preview_clicked (GtkWidget *button, ColorCombo *cc)
-{
-       gboolean is_default;
-       GdkColor *color = color_palette_get_current_color (cc->palette, &is_default);
-       emit_color_changed (cc, color, FALSE, TRUE, is_default);
-       if (color)
-               gdk_color_free (color);
-}
-
-static void
-cb_cust_color_clicked (GtkWidget *widget, ColorCombo *cc)
-{
-       mygal_combo_box_popup_hide (MYGAL_COMBO_BOX (cc));
-}
-
-/*
- * Creates the color table
- */
-static void
-color_table_setup (ColorCombo *cc,
-                  char const *no_color_label, ColorGroup *color_group)
-{
-       g_return_if_fail (cc != NULL);
-
-       /* Tell the palette that we will be changing it's custom colors */
-       cc->palette =
-               COLOR_PALETTE (color_palette_new (no_color_label,
-                                                 cc->default_color,
-                                                 color_group));
-
-       {
-               GtkWidget *picker = color_palette_get_color_picker (cc->palette);
-               g_signal_connect (picker, "clicked",
-                                 G_CALLBACK (cb_cust_color_clicked), cc);
-       }
-
-       g_signal_connect (cc->palette, "color_changed",
-                         G_CALLBACK (cb_palette_color_changed), cc);
-
-       gtk_widget_show_all (GTK_WIDGET (cc->palette));
-
-       return;
-}
-
-void
-color_combo_box_set_preview_relief (ColorCombo *cc, GtkReliefStyle relief)
-{
-       g_return_if_fail (cc != NULL);
-       g_return_if_fail (IS_COLOR_COMBO (cc));
-
-       gtk_button_set_relief (GTK_BUTTON (cc->preview_button), relief);
-}
-
-/*
- * Where the actual construction goes on
- */
-static void
-color_combo_construct (ColorCombo *cc, GdkPixbuf *icon,
-                      char const *no_color_label,
-                      ColorGroup *color_group)
-{
-       GdkColor *color;
-       GdkPixbuf *pixbuf = NULL;
-
-       g_return_if_fail (cc != NULL);
-       g_return_if_fail (IS_COLOR_COMBO (cc));
-
-       /*
-        * Our button with the gtk_image preview
-        */
-       cc->preview_button = gtk_button_new ();
-       cc->preview_is_icon = FALSE;
-       
-       if (icon)
-               /* use icon only if size > 4*4 */
-               if ((gdk_pixbuf_get_width (icon) > 4) && 
-                   (gdk_pixbuf_get_height (icon) > 4))
-               {
-                       cc->preview_is_icon = TRUE;
-                       pixbuf = gdk_pixbuf_copy (icon);
-               }
-       
-       if (pixbuf == NULL)
-               pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB,
-                                        TRUE, 8, 
-                                        PREVIEW_SIZE, 
-                                        PREVIEW_SIZE);
-
-       cc->preview_image = gtk_image_new_from_pixbuf (pixbuf);
-       g_object_unref (pixbuf);
-
-       gtk_button_set_relief (GTK_BUTTON (cc->preview_button), GTK_RELIEF_NONE);
-       gtk_widget_show (cc->preview_image);
-       
-       gtk_container_add (GTK_CONTAINER (cc->preview_button), cc->preview_image);
-       g_signal_connect (cc->preview_button, "clicked",
-                         G_CALLBACK (preview_clicked), cc);
-
-       color_table_setup (cc, no_color_label, color_group);
-
-       gtk_widget_show_all (cc->preview_button);
-
-       mygal_combo_box_construct (MYGAL_COMBO_BOX (cc),
-                                  cc->preview_button,
-                                  GTK_WIDGET (cc->palette));
-
-       mygal_combo_box_set_tearable (MYGAL_COMBO_BOX (cc), FALSE);
-
-       color = color_palette_get_current_color (cc->palette, NULL);
-       color_combo_set_color_internal (cc, color);
-       if (color) gdk_color_free (color);
-}
-
-/* color_combo_get_color:
- *
- * Return current color, result must be freed with gdk_color_free !
- */
-GdkColor *
-color_combo_get_color (ColorCombo *cc, gboolean *is_default)
-{
-       return color_palette_get_current_color (cc->palette, is_default);
-}
-
-/**
- * color_combo_set_color
- * @cc     The combo
- * @color  The color
- *
- * Set the color of the combo to the given color. Causes the color_changed
- * signal to be emitted.
- */
-void
-color_combo_set_color (ColorCombo *cc, GdkColor *color)
-{
-       /* This will change the color on the palette than it will invoke
-        * cb_palette_color_changed which will call emit_color_changed and
-        * set_color_internal which will change the color on our preview and
-        * will let the users of the combo know that the current color has
-        * changed
-        */
-       if (color != NULL)
-               gdk_rgb_find_color (gtk_widget_get_colormap (GTK_WIDGET (cc)), color);
-       color_palette_set_current_color (cc->palette, color);
-}
-
-/**
- * color_combo_set_color_to_default
- * @cc  The combo
- *
- * Set the color of the combo to the default color. Causes the color_changed
- * signal to be emitted.
- */
-void
-color_combo_set_color_to_default (ColorCombo *cc)
-{
-       color_palette_set_color_to_default (cc->palette);
-}
-
-/**
- * color_combo_new :
- * icon : optionally NULL.
- * , const char *no_color_label,
- * Default constructor. Pass an optional icon and an optional label for the
- * no/auto color button.
- */
-GtkWidget *
-color_combo_new (GdkPixbuf *icon, char const *no_color_label,
-                GdkColor *default_color,
-                ColorGroup *color_group)
-{
-       ColorCombo *cc;
-
-       cc = g_object_new (COLOR_COMBO_TYPE, NULL);
-
-       if ( default_color )
-       {
-               cc->default_color = gdk_color_copy (default_color);
-       }
-
-       color_combo_construct (cc, icon, no_color_label, color_group);
-
-       return GTK_WIDGET (cc);
-}
diff --git a/src/mygal/widget-color-combo.h b/src/mygal/widget-color-combo.h
deleted file mode 100644 (file)
index 3fb283c..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/* 
- * widget-color-combo.h - A color selector combo box
- * Copyright 2000, 2001, Ximian, Inc.
- *
- * Authors:
- *   Miguel de Icaza (miguel@kernel.org)
- *   Dom Lachowicz (dominicl@seas.upenn.edu)
- *
- * Reworked and split up into a separate ColorPalette object:
- *   Michael Levy (mlevy@genoscope.cns.fr)
- *
- * And later revised and polished by:
- *   Almer S. Tigelaar (almer@gnome.org)
- *
- * Modified for gLabels by:
- *   Jim Evins <evins@snaught.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public
- * License, version 2, as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#ifndef GNUMERIC_WIDGET_COLOR_COMBO_H
-#define GNUMERIC_WIDGET_COLOR_COMBO_H
-
-#include <gtk/gtkwidget.h>
-#include "mygal-combo-box.h"
-#include "color-palette.h"
-
-G_BEGIN_DECLS
-
-typedef struct _ColorCombo {
-       MygalComboBox     combo_box;
-
-       /*
-        * GtkImage where we display
-        */
-       GtkWidget       *preview_button;
-       GtkWidget       *preview_image;
-       gboolean        preview_is_icon;
-
-       ColorPalette    *palette;
-
-        GdkColor *default_color;
-       gboolean  trigger;
-} ColorCombo;
-
-typedef struct {
-       MygalComboBoxClass parent_class;
-
-       /* Signals emited by this widget */
-       void (* color_changed) (ColorCombo *color_combo, GdkColor *color,
-                               gboolean custom, gboolean by_user, gboolean is_default);
-} ColorComboClass;
-
-#define COLOR_COMBO_TYPE     (color_combo_get_type ())
-#define COLOR_COMBO(obj)     (G_TYPE_CHECK_INSTANCE_CAST((obj), COLOR_COMBO_TYPE, ColorCombo))
-#define COLOR_COMBO_CLASS(k) (G_TYPE_CHECK_CLASS_CAST(k), COLOR_COMBO_TYPE)
-#define IS_COLOR_COMBO(obj)  (G_TYPE_CHECK_INSTANCE_TYPE((obj), COLOR_COMBO_TYPE))
-
-GtkType    color_combo_get_type   (void);
-GtkWidget *color_combo_new        (GdkPixbuf   *icon,
-                                  char  const *no_color_label,
-                                  GdkColor    *default_color,
-                                  ColorGroup  *color_group);
-void       color_combo_set_color  (ColorCombo  *cc,
-                                  GdkColor    *color);
-void       color_combo_set_color_to_default (ColorCombo *cc);
-GdkColor  *color_combo_get_color  (ColorCombo  *cc, gboolean *is_default);
-
-void       color_combo_box_set_preview_relief (ColorCombo *cc, GtkReliefStyle relief);
-
-G_END_DECLS
-
-#endif /* GNUMERIC_WIDGET_COLOR_COMBO_H */
index b09de7fdebde7a0448ea2066b11c664776834103..be122b5ab7a4f4d833c60f74f4fc42d45b793fff 100644 (file)
@@ -1,50 +1,89 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  new-label-dialog.c:  New label dialog module
+ *  new-label-dialog.c
+ *  Copyright (C) 2006-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2006  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "new-label-dialog.h"
 
 #include <glib/gi18n.h>
-#include <glade/glade-xml.h>
-#include <gtk/gtkdialog.h>
-#include <gtk/gtkstock.h>
+#include <gtk/gtk.h>
 
-#include "hig.h"
-#include "wdgt-media-select.h"
-#include "wdgt-rotate-label.h"
+#include "marshal.h"
+#include "builder-util.h"
+#include "prefs.h"
+#include "media-select.h"
+#include "mini-label-preview.h"
+#include "mini-preview.h"
 
 #include "debug.h"
 
+
+#define LABEL_PREVIEW_WIDTH  96
+#define LABEL_PREVIEW_HEIGHT 96
+
+#define MINI_PREVIEW_MIN_WIDTH  300
+#define MINI_PREVIEW_MIN_HEIGHT 360
+
+
 /*===========================================*/
 /* Private data types                        */
 /*===========================================*/
 
 struct _glNewLabelDialogPrivate {
 
-       GtkWidget *media_select;
-       GtkWidget *rotate_label;
+        GtkBuilder *builder;
+
+        GtkWidget  *template_page_vbox;
+        GtkWidget  *combo_hbox;
+        GtkWidget  *combo;
+
+        GtkWidget  *rotate_page_vbox;
+        GtkWidget  *normal_radio;
+        GtkWidget  *rotated_radio;
+        GtkWidget  *normal_preview_hbox;
+        GtkWidget  *rotated_preview_hbox;
+        GtkWidget  *normal_preview;
+        GtkWidget  *rotated_preview;
+
+        GtkWidget  *confirm_page_vbox;
+        GtkWidget  *preview_vbox;
+        GtkWidget  *preview;
+        GtkWidget  *desc_label;
+        GtkWidget  *page_size_label;
+        GtkWidget  *label_size_label;
+        GtkWidget  *layout_label;
+        GtkWidget  *vendor_label;
+        GtkWidget  *part_label;
+        GtkWidget  *similar_label;
+};
 
+/* Page numbers for traversing GtkAssistant */
+enum {
+        TEMPLATE_PAGE_NUM = 0,
+        ROTATE_PAGE_NUM,
+        CONFIRM_PAGE_NUM
+};
+
+enum {
+        COMPLETE,
+        LAST_SIGNAL
 };
 
 
@@ -52,238 +91,503 @@ struct _glNewLabelDialogPrivate {
 /* Private globals                           */
 /*===========================================*/
 
+static gint signals[LAST_SIGNAL] = { 0 };
+
+
 /*===========================================*/
 /* Local function prototypes                 */
 /*===========================================*/
 
-static void       gl_new_label_dialog_finalize        (GObject               *object);
+static void       gl_new_label_dialog_finalize        (GObject           *object);
+
+static void       cancel_cb                           (glNewLabelDialog  *this);
+static void       apply_cb                            (glNewLabelDialog  *this);
+static void       close_cb                            (glNewLabelDialog  *this);
+
+static gint       forward_page_function               (gint               current_page,
+                                                       glNewLabelDialog  *this);
 
-static void       gl_new_label_dialog_construct       (glNewLabelDialog      *dialog,
-                                                      GtkWindow             *win);
+static void       combo_changed_cb                    (glNewLabelDialog  *this);
+static void       rotate_toggled_cb                   (glNewLabelDialog  *this);
 
-static void       template_changed_cb                 (glWdgtMediaSelect     *select,
-                                                      gpointer               data);
+static void       set_info                            (glNewLabelDialog  *this,
+                                                       const gchar       *name);
 
 
-\f
 /*****************************************************************************/
 /* Boilerplate object stuff.                                                 */
 /*****************************************************************************/
-G_DEFINE_TYPE (glNewLabelDialog, gl_new_label_dialog, GTK_TYPE_DIALOG);
+G_DEFINE_TYPE (glNewLabelDialog, gl_new_label_dialog, GTK_TYPE_ASSISTANT)
 
+
+/*****************************************************************************/
+/* Class Init Function.                                                      */
+/*****************************************************************************/
 static void
 gl_new_label_dialog_class_init (glNewLabelDialogClass *class)
 {
-       GObjectClass *object_class = G_OBJECT_CLASS (class);
+        GObjectClass *object_class = G_OBJECT_CLASS (class);
 
-       gl_debug (DEBUG_FILE, "");
-       
-       gl_new_label_dialog_parent_class = g_type_class_peek_parent (class);
+        gl_debug (DEBUG_FILE, "");
 
-       object_class->finalize = gl_new_label_dialog_finalize;          
-}
+        gl_new_label_dialog_parent_class = g_type_class_peek_parent (class);
 
-static void
-gl_new_label_dialog_init (glNewLabelDialog *dialog)
-{
-       gl_debug (DEBUG_FILE, "START");
+        object_class->finalize = gl_new_label_dialog_finalize;
 
-       g_return_if_fail (GL_IS_NEW_LABEL_DIALOG (dialog));
+        signals[COMPLETE] =
+            g_signal_new ("complete",
+                          G_OBJECT_CLASS_TYPE(object_class),
+                          G_SIGNAL_RUN_LAST,
+                          G_STRUCT_OFFSET (glNewLabelDialogClass, complete),
+                          NULL, NULL,
+                          gl_marshal_VOID__VOID,
+                          G_TYPE_NONE, 0);
 
-       dialog->priv = g_new0 (glNewLabelDialogPrivate, 1);
+}
 
-       gtk_container_set_border_width (GTK_CONTAINER(dialog), GL_HIG_PAD1);
 
-       gtk_dialog_set_has_separator (GTK_DIALOG(dialog), FALSE);
-       gtk_dialog_add_buttons (GTK_DIALOG(dialog),
-                               GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-                               GTK_STOCK_OK, GTK_RESPONSE_OK,
-                               NULL);
-       gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), TRUE);
-       gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+/*****************************************************************************/
+/* Object Instance Init Function.                                            */
+/*****************************************************************************/
+static void
+gl_new_label_dialog_init (glNewLabelDialog *this)
+{
+        gchar        *logo_filename;
+        GdkPixbuf    *logo;
+        GtkBuilder   *builder;
+        gchar        *builder_filename;
+        static gchar *object_ids[] = { "template_page_vbox",
+                                       "rotate_page_vbox",
+                                       "confirm_page_vbox",
+                                       NULL };
+        GError       *error = NULL;
+
+        gl_debug (DEBUG_FILE, "START");
+
+        g_return_if_fail (GL_IS_NEW_LABEL_DIALOG (this));
+
+        this->priv = g_new0 (glNewLabelDialogPrivate, 1);
+
+        builder = gtk_builder_new ();
+        builder_filename = g_build_filename (GLABELS_DATA_DIR, "ui", "new-label-dialog.ui", NULL);
+        gtk_builder_add_objects_from_file (builder, builder_filename, object_ids, &error);
+        g_free (builder_filename);
+        if (error) {
+                g_critical ("%s\n\ngLabels may not be installed correctly!", error->message);
+                g_error_free (error);
+                return;
+        }
 
-       gl_debug (DEBUG_FILE, "END");
+        gl_builder_util_get_widgets (builder,
+                                     "template_page_vbox",     &this->priv->template_page_vbox,
+                                     "combo_hbox",             &this->priv->combo_hbox,
+                                     "rotate_page_vbox",       &this->priv->rotate_page_vbox,
+                                     "normal_radio",           &this->priv->normal_radio,
+                                     "rotated_radio",          &this->priv->rotated_radio,
+                                     "normal_preview_hbox",    &this->priv->normal_preview_hbox,
+                                     "rotated_preview_hbox",   &this->priv->rotated_preview_hbox,
+                                     "confirm_page_vbox",      &this->priv->confirm_page_vbox,
+                                     "preview_vbox",           &this->priv->preview_vbox,
+                                     "desc_label",             &this->priv->desc_label,
+                                     "page_size_label",        &this->priv->page_size_label,
+                                     "label_size_label",       &this->priv->label_size_label,
+                                     "layout_label",           &this->priv->layout_label,
+                                     "vendor_label",           &this->priv->vendor_label,
+                                     "part_label",             &this->priv->part_label,
+                                     "similar_label",          &this->priv->similar_label,
+                                     NULL);
+
+        this->priv->builder = builder;
+
+        gtk_assistant_append_page (GTK_ASSISTANT (this), this->priv->template_page_vbox);
+        gtk_assistant_set_page_title (GTK_ASSISTANT (this), this->priv->template_page_vbox, _("Select Product"));
+        gtk_assistant_set_page_type (GTK_ASSISTANT (this), this->priv->template_page_vbox, GTK_ASSISTANT_PAGE_INTRO);
+        logo_filename = g_build_filename (GLABELS_DATA_DIR, "pixmaps", "new-select.png", NULL);
+        logo = gdk_pixbuf_new_from_file (logo_filename, NULL);
+        gtk_assistant_set_page_header_image (GTK_ASSISTANT (this), this->priv->template_page_vbox, logo);
+        g_free (logo_filename);
+        g_object_unref (logo);
+
+        this->priv->combo = gl_media_select_new ();
+        gtk_container_add (GTK_CONTAINER (this->priv->combo_hbox), this->priv->combo);
+
+        gtk_assistant_append_page (GTK_ASSISTANT (this), this->priv->rotate_page_vbox);
+        gtk_assistant_set_page_title (GTK_ASSISTANT (this), this->priv->rotate_page_vbox, _("Choose Orientation"));
+        gtk_assistant_set_page_complete (GTK_ASSISTANT (this), this->priv->rotate_page_vbox, TRUE);
+        logo_filename = g_build_filename (GLABELS_DATA_DIR, "pixmaps", "new-rotate.png", NULL);
+        logo = gdk_pixbuf_new_from_file (logo_filename, NULL);
+        gtk_assistant_set_page_header_image (GTK_ASSISTANT (this), this->priv->rotate_page_vbox, logo);
+        g_free (logo_filename);
+        g_object_unref (logo);
+
+        this->priv->normal_preview = gl_mini_label_preview_new (LABEL_PREVIEW_WIDTH, LABEL_PREVIEW_HEIGHT);
+        gtk_container_add (GTK_CONTAINER (this->priv->normal_preview_hbox), this->priv->normal_preview);
+        this->priv->rotated_preview = gl_mini_label_preview_new (LABEL_PREVIEW_WIDTH, LABEL_PREVIEW_HEIGHT);
+        gtk_container_add (GTK_CONTAINER (this->priv->rotated_preview_hbox), this->priv->rotated_preview);
+
+        gtk_assistant_append_page (GTK_ASSISTANT (this), this->priv->confirm_page_vbox);
+        gtk_assistant_set_page_title (GTK_ASSISTANT (this), this->priv->confirm_page_vbox, _("Review"));
+        gtk_assistant_set_page_type (GTK_ASSISTANT (this), this->priv->confirm_page_vbox, GTK_ASSISTANT_PAGE_CONFIRM);
+        gtk_assistant_set_page_complete (GTK_ASSISTANT (this), this->priv->confirm_page_vbox, TRUE);
+        logo_filename = g_build_filename (GLABELS_DATA_DIR, "pixmaps", "new-confirm.png", NULL);
+        logo = gdk_pixbuf_new_from_file (logo_filename, NULL);
+        gtk_assistant_set_page_header_image (GTK_ASSISTANT (this), this->priv->confirm_page_vbox, logo);
+        g_free (logo_filename);
+        g_object_unref (logo);
+
+        this->priv->preview = gl_mini_preview_new (MINI_PREVIEW_MIN_HEIGHT, MINI_PREVIEW_MIN_WIDTH);
+        gl_mini_preview_set_draw_arrow (GL_MINI_PREVIEW (this->priv->preview), TRUE);
+        gl_mini_preview_set_rotate (GL_MINI_PREVIEW (this->priv->preview), FALSE);
+        gtk_container_add (GTK_CONTAINER (this->priv->preview_vbox), this->priv->preview);
+
+        gtk_assistant_set_forward_page_func (GTK_ASSISTANT (this), (GtkAssistantPageFunc)forward_page_function, this, NULL);
+
+        g_signal_connect_swapped (G_OBJECT(this), "cancel", G_CALLBACK(cancel_cb), this);
+        g_signal_connect_swapped (G_OBJECT(this), "apply",  G_CALLBACK(apply_cb),  this);
+        g_signal_connect_swapped (G_OBJECT(this), "close",  G_CALLBACK(close_cb),  this);
+
+        g_signal_connect_swapped (G_OBJECT (this->priv->combo),         "changed", G_CALLBACK (combo_changed_cb),  this);
+        g_signal_connect_swapped (G_OBJECT (this->priv->normal_radio),  "toggled", G_CALLBACK (rotate_toggled_cb), this);
+        g_signal_connect_swapped (G_OBJECT (this->priv->rotated_radio), "toggled", G_CALLBACK (rotate_toggled_cb), this);
+
+        combo_changed_cb (this);
+
+        gl_debug (DEBUG_FILE, "END");
 }
 
+
+/*****************************************************************************/
+/* Finalize Function.                                                        */
+/*****************************************************************************/
 static void 
 gl_new_label_dialog_finalize (GObject *object)
 {
-       glNewLabelDialog* dialog = GL_NEW_LABEL_DIALOG (object);;
-       
-       gl_debug (DEBUG_FILE, "START");
+        glNewLabelDialog* this = GL_NEW_LABEL_DIALOG (object);;
+
+        gl_debug (DEBUG_FILE, "START");
 
-       g_return_if_fail (object != NULL);
-       g_return_if_fail (GL_IS_NEW_LABEL_DIALOG (dialog));
-       g_return_if_fail (dialog->priv != NULL);
+        g_return_if_fail (object != NULL);
+        g_return_if_fail (GL_IS_NEW_LABEL_DIALOG (this));
+        g_return_if_fail (this->priv != NULL);
 
-       g_free (dialog->priv);
+        g_object_unref (G_OBJECT (this->priv->builder));
+        g_free (this->priv);
 
-       G_OBJECT_CLASS (gl_new_label_dialog_parent_class)->finalize (object);
+        G_OBJECT_CLASS (gl_new_label_dialog_parent_class)->finalize (object);
 
-       gl_debug (DEBUG_FILE, "END");
+        gl_debug (DEBUG_FILE, "END");
 
 }
 
+
 /*****************************************************************************/
 /* NEW object properties dialog.                                             */
 /*****************************************************************************/
 GtkWidget *
 gl_new_label_dialog_new (GtkWindow    *win)
 {
-       GtkWidget *dialog;
+        GtkWidget *this;
 
-       gl_debug (DEBUG_FILE, "");
+        gl_debug (DEBUG_FILE, "");
 
-       dialog = GTK_WIDGET (g_object_new (GL_TYPE_NEW_LABEL_DIALOG, NULL));
+        this = GTK_WIDGET (g_object_new (GL_TYPE_NEW_LABEL_DIALOG, NULL));
 
-       gl_new_label_dialog_construct (GL_NEW_LABEL_DIALOG(dialog), win);
+        gtk_window_set_transient_for (GTK_WINDOW (this), win);
 
-       return dialog;
+        return this;
 }
 
+
 /*--------------------------------------------------------------------------*/
-/* PRIVATE.  Construct dialog.                                              */
+/* PRIVATE.  Handle non-linear forward traversal.                           */
+/*--------------------------------------------------------------------------*/
+static gint
+forward_page_function (gint              current_page,
+                       glNewLabelDialog *this)
+{
+        gchar                     *name;
+        lglTemplate               *template;
+        const lglTemplateFrame    *frame;
+        gdouble                    w, h;
+
+        switch (current_page)
+        {
+        case TEMPLATE_PAGE_NUM:
+                name = gl_media_select_get_name (GL_MEDIA_SELECT (this->priv->combo));
+                if ( name != NULL )
+                {
+                        template = lgl_db_lookup_template_from_name (name);
+                        frame    = (lglTemplateFrame *)template->frames->data;
+                        lgl_template_frame_get_size (frame, &w, &h);
+
+                        if ( w == h )
+                        {
+                                /* Skip rotate page for square and circular labels. */
+                                return CONFIRM_PAGE_NUM;
+                        }
+                }
+                return ROTATE_PAGE_NUM;
+
+        case ROTATE_PAGE_NUM:
+                return CONFIRM_PAGE_NUM;
+
+        case CONFIRM_PAGE_NUM:
+        default:
+                return -1;
+        }
+
+        return -1;
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  cancel callback.                                               */
 /*--------------------------------------------------------------------------*/
 static void
-gl_new_label_dialog_construct (glNewLabelDialog   *dialog,
-                              GtkWindow          *win)
+cancel_cb (glNewLabelDialog *this)
 {
-        GladeXML  *gui;
-       GtkWidget *vbox, *media_select_vbox, *rotate_label_vbox;
-       gchar     *name;
+                                                                               
+        gtk_widget_destroy (GTK_WIDGET(this));
 
-       gl_debug (DEBUG_FILE, "START");
+}
 
-       gtk_window_set_transient_for (GTK_WINDOW (dialog), win);
 
-        gui = glade_xml_new (GLABELS_GLADE_DIR "new-label-dialog.glade",
-                             "new_label_dialog_vbox", NULL);
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  apply callback                                                 */
+/*--------------------------------------------------------------------------*/
+static void
+apply_cb (glNewLabelDialog *this)
+{
 
-        if (!gui) {
-                g_critical ("Could not open new-label-dialog.glade. gLabels may not be installed correctly!");
-                return;
-        }
+        g_signal_emit (G_OBJECT (this), signals[COMPLETE], 0);
 
-        vbox = glade_xml_get_widget (gui, "new_label_dialog_vbox");
-       gtk_box_pack_start (GTK_BOX( GTK_DIALOG (dialog)->vbox), vbox, FALSE, FALSE, 0);
+}
 
-        media_select_vbox = glade_xml_get_widget (gui, "media_select_vbox");
-        rotate_label_vbox = glade_xml_get_widget (gui, "rotate_label_vbox");
+                         
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  close callback                                                 */
+/*--------------------------------------------------------------------------*/
+static void
+close_cb (glNewLabelDialog *this)
+{
+                                                                               
+        gtk_widget_destroy (GTK_WIDGET(this));
 
-        g_object_unref (gui);
+}
 
-       dialog->priv->media_select = gl_wdgt_media_select_new ();
-       gtk_box_pack_start (GTK_BOX (media_select_vbox),
-                           dialog->priv->media_select, FALSE, FALSE, 0);
+                         
+/*---------------------------------------------------------------------------*/
+/* PRIVATE.  Template changed callback.                                      */
+/*---------------------------------------------------------------------------*/
+static void
+combo_changed_cb (glNewLabelDialog  *this)
+{
+        gchar             *name;
+
+        gl_debug (DEBUG_FILE, "START");
 
-       dialog->priv->rotate_label = gl_wdgt_rotate_label_new ();
-       gtk_box_pack_start (GTK_BOX (rotate_label_vbox),
-                           dialog->priv->rotate_label, FALSE, FALSE, 0);
+        name = gl_media_select_get_name (GL_MEDIA_SELECT (this->priv->combo));
 
-       /* Sync template name from media select with rotate widget. */
-       name = gl_wdgt_media_select_get_name (GL_WDGT_MEDIA_SELECT (dialog->priv->media_select));
-       gl_wdgt_rotate_label_set_template_name (GL_WDGT_ROTATE_LABEL (dialog->priv->rotate_label),
-                                               name);
+        gl_mini_label_preview_set_by_name (GL_MINI_LABEL_PREVIEW (this->priv->normal_preview),  name, FALSE);
+        gl_mini_label_preview_set_by_name (GL_MINI_LABEL_PREVIEW (this->priv->rotated_preview), name, TRUE);
+        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (this->priv->normal_radio), TRUE);
 
-       g_signal_connect (G_OBJECT (dialog->priv->media_select), "changed",
-                         G_CALLBACK (template_changed_cb), dialog);
+        gl_mini_preview_set_by_name (GL_MINI_PREVIEW (this->priv->preview), name);
+        set_info (this, name);
 
-       gl_debug (DEBUG_FILE, "END");
+        gtk_assistant_set_page_complete (GTK_ASSISTANT (this), this->priv->template_page_vbox, (name != NULL));
+
+        g_free (name);
+
+        gl_debug (DEBUG_FILE, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
-/* PRIVATE.  New template changed callback.                                  */
+/* PRIVATE.  Rotate toggled callback.                                        */
 /*---------------------------------------------------------------------------*/
 static void
-template_changed_cb (glWdgtMediaSelect *select,
-                    gpointer           data)
+rotate_toggled_cb (glNewLabelDialog  *this)
 {
-       glNewLabelDialog  *dialog = GL_NEW_LABEL_DIALOG (data);
-       gchar             *name;
+        gboolean state;
+
+        gl_debug (DEBUG_FILE, "START");
+
+        state = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (this->priv->rotated_radio));
+        gl_mini_preview_set_rotate (GL_MINI_PREVIEW (this->priv->preview), state);
 
-       gl_debug (DEBUG_FILE, "START");
+        gl_debug (DEBUG_FILE, "END");
+}
 
-       name = gl_wdgt_media_select_get_name (GL_WDGT_MEDIA_SELECT (select));
 
-       gl_wdgt_rotate_label_set_template_name (GL_WDGT_ROTATE_LABEL (dialog->priv->rotate_label),
-                                               name);
+/*---------------------------------------------------------------------------*/
+/* PRIVATE.  Set information labels.                                         */
+/*---------------------------------------------------------------------------*/
+static void
+set_info (glNewLabelDialog  *this,
+          const gchar       *name)
+{
+        lglTemplate          *template;
+        lglTemplateFrame     *frame;
+        lglVendor            *vendor;
+        lglUnits              units;
+        gchar                *page_size_string;
+        gchar                *label_size_string;
+        gchar                *layout_string;
+        GList                *list, *p;
+        GString              *list_string;
+
+        template = lgl_db_lookup_template_from_name (name);
+        frame    = template->frames->data;
+        vendor   = lgl_db_lookup_vendor_from_name (template->brand);
+
+        units    = gl_prefs_model_get_units (gl_prefs);
+
+        page_size_string  = lgl_db_lookup_paper_name_from_id (template->paper_id);
+        label_size_string = lgl_template_frame_get_size_description (frame, units);
+        layout_string     = lgl_template_frame_get_layout_description (frame);
+
+        gtk_label_set_text (GTK_LABEL (this->priv->desc_label),       template->description);
+        gtk_label_set_text (GTK_LABEL (this->priv->page_size_label),  page_size_string);
+        gtk_label_set_text (GTK_LABEL (this->priv->label_size_label), label_size_string);
+        gtk_label_set_text (GTK_LABEL (this->priv->layout_label),     layout_string);
+
+        if ( vendor && vendor->url )
+        {
+                gchar *escaped_url;
+                gchar *markup;
+
+                escaped_url = g_markup_escape_text (vendor->url, -1);
+                markup = g_strdup_printf ("<a href='%s'>%s</a>", escaped_url, vendor->name);
+                gtk_label_set_markup (GTK_LABEL (this->priv->vendor_label), markup);
+                gtk_widget_set_tooltip_text (this->priv->vendor_label, escaped_url);
+                g_free (escaped_url);
+                g_free (markup);
+        }
+        else
+        {
+                /* FIXME: Using set_markup instead of set_text to clear out previous link. */
+                gtk_label_set_markup (GTK_LABEL (this->priv->vendor_label), template->brand);
+                gtk_widget_set_has_tooltip (this->priv->vendor_label, FALSE);
+        }
 
-       gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog),
-                                          GTK_RESPONSE_OK,
-                                          (name != NULL));
+        if ( template->product_url )
+        {
+                gchar *escaped_url;
+                gchar *markup;
+
+                escaped_url = g_markup_escape_text (template->product_url, -1);
+                markup = g_strdup_printf ("<a href='%s'>%s</a>", escaped_url, template->part);
+                gtk_label_set_markup (GTK_LABEL (this->priv->part_label), markup);
+                gtk_widget_set_tooltip_text (this->priv->part_label, escaped_url);
+                g_free (escaped_url);
+                g_free (markup);
+        }
+        else
+        {
+                /* FIXME: Using set_markup instead of set_text to clear out previous link. */
+                gtk_label_set_markup (GTK_LABEL (this->priv->part_label), template->part);
+                gtk_widget_set_has_tooltip (this->priv->part_label, FALSE);
+        }
+
+        list = lgl_db_get_similar_template_name_list (name);
+        list_string = g_string_new ("");
+        for ( p = list; p; p = p->next )
+        {
+                g_string_append (list_string, (char *)p->data);
+                if ( p->next )
+                {
+                        g_string_append (list_string, "\n");
+                }
+        }
+        gtk_label_set_text (GTK_LABEL (this->priv->similar_label), list_string->str);
 
-       g_free (name);
+        lgl_db_free_template_name_list (list);
+        g_string_free (list_string, TRUE);
 
-       gl_debug (DEBUG_FILE, "END");
+        g_free (page_size_string);
+        g_free (label_size_string);
+        g_free (layout_string);
 }
 
+
 /*****************************************************************************/
 /* Get template name.                                                        */
 /*****************************************************************************/
 gchar *
-gl_new_label_dialog_get_template_name (glNewLabelDialog *dialog)
+gl_new_label_dialog_get_template_name (glNewLabelDialog *this)
 {
-       gchar *name;
+        gchar *name;
 
-       name = gl_wdgt_media_select_get_name (GL_WDGT_MEDIA_SELECT (dialog->priv->media_select));
+        name = gl_media_select_get_name (GL_MEDIA_SELECT (this->priv->combo));
 
-       return name;
+        return name;
 }
 
+
 /*****************************************************************************/
 /* Set template name.                                                        */
 /*****************************************************************************/
 void
-gl_new_label_dialog_set_template_name (glNewLabelDialog *dialog,
-                                      gchar            *name)
+gl_new_label_dialog_set_template_name (glNewLabelDialog *this,
+                                       gchar            *name)
 {
-       gl_wdgt_media_select_set_name (GL_WDGT_MEDIA_SELECT (dialog->priv->media_select), name);
+        gl_mini_preview_set_by_name (GL_MINI_PREVIEW (this->priv->preview), name);
+        gl_media_select_set_name (GL_MEDIA_SELECT (this->priv->combo), name);
+        set_info (this, name);
 }
 
+
 /*****************************************************************************/
 /* Get current filter parameters.                                            */
 /*****************************************************************************/
 void
-gl_new_label_dialog_get_filter_parameters (glNewLabelDialog *dialog,
-                                          gchar           **page_size_id,
-                                          gchar           **category_id)
+gl_new_label_dialog_get_filter_parameters (glNewLabelDialog  *this,
+                                           gchar            **page_size_id,
+                                           gchar            **category_id)
 {
-       gl_wdgt_media_select_get_filter_parameters (
-               GL_WDGT_MEDIA_SELECT (dialog->priv->media_select),
-               page_size_id, category_id);
 }
 
+
 /*****************************************************************************/
 /* Set current filter parameters.                                            */
 /*****************************************************************************/
 void
-gl_new_label_dialog_set_filter_parameters (glNewLabelDialog *dialog,
-                                          const gchar      *page_size_id,
-                                          const gchar      *category_id)
+gl_new_label_dialog_set_filter_parameters (glNewLabelDialog *this,
+                                           const gchar      *page_size_id,
+                                           const gchar      *category_id)
 {
-       gl_wdgt_media_select_set_filter_parameters (
-               GL_WDGT_MEDIA_SELECT (dialog->priv->media_select),
-               page_size_id, category_id);
 }
 
+
 /*****************************************************************************/
 /* Get rotate state.                                                         */
 /*****************************************************************************/
 gboolean
-gl_new_label_dialog_get_rotate_state (glNewLabelDialog *dialog)
+gl_new_label_dialog_get_rotate_state (glNewLabelDialog *this)
 {
-       return gl_wdgt_rotate_label_get_state (
-               GL_WDGT_ROTATE_LABEL (dialog->priv->rotate_label));
+        return gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (this->priv->rotated_radio));
 }
 
+
 /*****************************************************************************/
 /* Set rotate state.                                                         */
 /*****************************************************************************/
 void
-gl_new_label_dialog_set_rotate_state (glNewLabelDialog *dialog,
-                                     gboolean          state)
+gl_new_label_dialog_set_rotate_state (glNewLabelDialog *this,
+                                      gboolean          state)
 {
-       gl_wdgt_rotate_label_set_state (
-               GL_WDGT_ROTATE_LABEL (dialog->priv->rotate_label), state);
+        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (this->priv->rotated_radio), state);
+        gl_mini_preview_set_rotate (GL_MINI_PREVIEW (this->priv->preview), state);
 }
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index a38a48d9533a2fb5f29ff8482722c16b9c3d7ff1..ccfd27fd525d5141f28099dfdb7a6b31d9be5abe 100644 (file)
@@ -1,40 +1,41 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  new-label-dialog.h:  New label dialog module header file
+ *  new-label-dialog.h
+ *  Copyright (C) 2006-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2006  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #ifndef __NEW_LABEL_DIALOG_H__
 #define __NEW_LABEL_DIALOG_H__
 
-#include <gtk/gtkwindow.h>
-#include <gtk/gtkdialog.h>
+#include <gtk/gtk.h>
 
 G_BEGIN_DECLS
 
 #define GL_TYPE_NEW_LABEL_DIALOG            (gl_new_label_dialog_get_type ())
-#define GL_NEW_LABEL_DIALOG(obj)            (GTK_CHECK_CAST ((obj), GL_TYPE_NEW_LABEL_DIALOG, glNewLabelDialog))
-#define GL_NEW_LABEL_DIALOG_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_NEW_LABEL_DIALOG, glNewLabelDialogClass))
-#define GL_IS_NEW_LABEL_DIALOG(obj)         (GTK_CHECK_TYPE ((obj), GL_TYPE_NEW_LABEL_DIALOG))
-#define GL_IS_NEW_LABEL_DIALOG_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_NEW_LABEL_DIALOG))
-#define GL_NEW_LABEL_DIALOG_GET_CLASS(obj)  (GTK_CHECK_GET_CLASS ((obj), GL_TYPE_NEW_LABEL_DIALOG, glNewLabelDialogClass))
+#define GL_NEW_LABEL_DIALOG(obj) \
+        (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_NEW_LABEL_DIALOG, glNewLabelDialog))
+#define GL_NEW_LABEL_DIALOG_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_NEW_LABEL_DIALOG, glNewLabelDialogClass))
+#define GL_IS_NEW_LABEL_DIALOG(obj) \
+        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_NEW_LABEL_DIALOG))
+#define GL_IS_NEW_LABEL_DIALOG_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_NEW_LABEL_DIALOG))
+#define GL_NEW_LABEL_DIALOG_GET_CLASS(obj) \
+        (G_TYPE_INSTANCE_GET_CLASS ((obj), GL_TYPE_NEW_LABEL_DIALOG, glNewLabelDialogClass))
 
 
 typedef struct _glNewLabelDialog         glNewLabelDialog;
@@ -44,7 +45,7 @@ typedef struct _glNewLabelDialogPrivate  glNewLabelDialogPrivate;
 
 struct _glNewLabelDialog
 {
-       GtkDialog                parent_instance;
+       GtkAssistant             parent_instance;
 
        glNewLabelDialogPrivate *priv;
 
@@ -52,7 +53,9 @@ struct _glNewLabelDialog
 
 struct  _glNewLabelDialogClass
 {
-       GtkDialogClass           parent_class;
+       GtkAssistantClass        parent_class;
+
+        void (*complete) (glNewLabelDialog *this, gpointer user_data);
 };
 
 
@@ -82,3 +85,14 @@ void       gl_new_label_dialog_set_rotate_state      (glNewLabelDialog *dialog,
 G_END_DECLS
 
 #endif
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 0216d6c395b089bfe8fc0eb81bf3e226be767a13..270b785f5b625f251059804e759acba7141d4ba4 100644 (file)
@@ -1,64 +1,67 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  object-editor.c:  object properties editor module
+ *  object-editor-bc-page.c
+ *  Copyright (C) 2003-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "object-editor.h"
 
 #include <glib/gi18n.h>
-#include <gtk/gtklabel.h>
-#include <gtk/gtkspinbutton.h>
-#include <gtk/gtkcombobox.h>
-#include <gtk/gtktogglebutton.h>
+#include <gtk/gtk.h>
 #include <math.h>
 
 #include "prefs.h"
-#include "mygal/widget-color-combo.h"
+#include "color-combo.h"
 #include "color.h"
-#include "util.h"
+#include "field-button.h"
+#include "combo-util.h"
+#include "builder-util.h"
+#include "bc-backends.h"
 
 #include "object-editor-private.h"
 
 #include "debug.h"
 
+
 /*===========================================*/
 /* Private macros                            */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private data types                        */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private globals                           */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Local function prototypes                 */
 /*===========================================*/
 
-static void style_changed_cb     (glObjectEditor       *editor);
-static void bc_radio_toggled_cb  (glObjectEditor       *editor);
+static void backend_changed_cb          (glObjectEditor       *editor);
+static void style_changed_cb            (glObjectEditor       *editor);
+static void bc_radio_toggled_cb         (glObjectEditor       *editor);
+static void data_digits_spin_changed_cb (glObjectEditor       *editor);
 
 
 /*--------------------------------------------------------------------------*/
@@ -67,46 +70,65 @@ static void bc_radio_toggled_cb  (glObjectEditor       *editor);
 void
 gl_object_editor_prepare_bc_page (glObjectEditor       *editor)
 {
-       GList        *styles = NULL;
+       GList        *backends = NULL;
+        GList        *p;
 
        gl_debug (DEBUG_EDITOR, "START");
 
        /* Extract widgets from XML tree. */
-       editor->priv->bc_page_vbox =
-               glade_xml_get_widget (editor->priv->gui, "bc_page_vbox");
-       editor->priv->bc_style_combo =
-               glade_xml_get_widget (editor->priv->gui, "bc_style_combo");
-       editor->priv->bc_text_check =
-               glade_xml_get_widget (editor->priv->gui, "bc_text_check");
-       editor->priv->bc_cs_check =
-               glade_xml_get_widget (editor->priv->gui, "bc_cs_check");
-       editor->priv->bc_color_combo =
-               glade_xml_get_widget (editor->priv->gui, "bc_color_combo");
-       editor->priv->bc_key_combo = 
-               glade_xml_get_widget (editor->priv->gui, "bc_key_combo");       
-       editor->priv->bc_key_radio = 
-               glade_xml_get_widget (editor->priv->gui, "bc_key_radio");       
-       editor->priv->bc_color_radio = 
-               glade_xml_get_widget (editor->priv->gui, "bc_color_radio");     
-       editor->priv->data_format_label =
-               glade_xml_get_widget (editor->priv->gui, "data_format_label");
-       editor->priv->data_ex_label =
-               glade_xml_get_widget (editor->priv->gui, "data_ex_label");
-       editor->priv->data_digits_label =
-               glade_xml_get_widget (editor->priv->gui, "data_digits_label");
-       editor->priv->data_digits_spin =
-               glade_xml_get_widget (editor->priv->gui, "data_digits_spin");
+        gl_builder_util_get_widgets (editor->priv->builder,
+                                     "bc_page_vbox",          &editor->priv->bc_page_vbox,
+                                     "bc_backend_combo_hbox", &editor->priv->bc_backend_combo_hbox,
+                                     "bc_style_combo_hbox",   &editor->priv->bc_style_combo_hbox,
+                                     "bc_text_check",         &editor->priv->bc_text_check,
+                                     "bc_cs_check",           &editor->priv->bc_cs_check,
+                                     "bc_color_hbox",         &editor->priv->bc_color_hbox,
+                                     "bc_key_hbox",           &editor->priv->bc_key_hbox,
+                                     "bc_key_radio",          &editor->priv->bc_key_radio,
+                                     "bc_color_radio",        &editor->priv->bc_color_radio,
+                                     "data_format_label",     &editor->priv->data_format_label,
+                                     "data_ex_label",         &editor->priv->data_ex_label,
+                                     "data_digits_label",     &editor->priv->data_digits_label,
+                                     "data_digits_spin",      &editor->priv->data_digits_spin,
+                                     NULL);
 
        editor->priv->data_format_fixed_flag = FALSE;
 
-       gl_util_combo_box_add_text_model ( GTK_COMBO_BOX(editor->priv->bc_style_combo));
-       gl_util_combo_box_add_text_model ( GTK_COMBO_BOX(editor->priv->bc_key_combo));
+       editor->priv->bc_color_combo = gl_color_combo_new (_("Default"),
+                                                           GL_COLOR_BC_DEFAULT,
+                                                           gl_prefs_model_get_default_line_color (gl_prefs));
+        gtk_box_pack_start (GTK_BOX (editor->priv->bc_color_hbox),
+                            editor->priv->bc_color_combo,
+                            FALSE, FALSE, 0);
+
+        editor->priv->bc_key_combo = gl_field_button_new (NULL);
+        gtk_box_pack_start (GTK_BOX (editor->priv->bc_key_hbox),
+                            editor->priv->bc_key_combo,
+                            TRUE, TRUE, 0);
+
+        editor->priv->bc_backend_combo = gtk_combo_box_text_new ();
+        gtk_box_pack_start (GTK_BOX (editor->priv->bc_backend_combo_hbox),
+                            editor->priv->bc_backend_combo,
+                            TRUE, TRUE, 0);
+
+        editor->priv->bc_style_combo   = gtk_combo_box_text_new ();
+        gtk_box_pack_start (GTK_BOX (editor->priv->bc_style_combo_hbox),
+                            editor->priv->bc_style_combo,
+                            TRUE, TRUE, 0);
+
+       /* Load barcode backends */
+       backends = gl_barcode_backends_get_backend_list ();
+       gl_combo_util_set_strings (GTK_COMBO_BOX_TEXT(editor->priv->bc_backend_combo),
+                                   backends);
+
+        /* Kludge: Load styles for each backend once, so that when they are loaded for real the size of
+         * of the widget has already been established and does't cause the sidebar to change size. */
+        for ( p = backends; p != NULL; p=p->next )
+        {
+                gl_object_editor_load_bc_styles (editor, gl_barcode_backends_backend_name_to_id ((gchar *)p->data));
+        }
 
-       /* Load barcode styles */
-       styles = gl_barcode_get_styles_list ();
-       gl_util_combo_box_set_strings (GTK_COMBO_BOX(editor->priv->bc_style_combo),
-                                      styles);
-       gl_barcode_free_styles_list (styles);
+       gl_barcode_backends_free_backend_list (backends);
 
        /* Modify widgets */
        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->bc_color_radio), TRUE);
@@ -117,6 +139,10 @@ gl_object_editor_prepare_bc_page (glObjectEditor       *editor)
        gtk_widget_show_all (editor->priv->bc_page_vbox);
 
        /* Connect signals */
+       g_signal_connect_swapped (G_OBJECT (editor->priv->bc_backend_combo),
+                                 "changed",
+                                 G_CALLBACK (backend_changed_cb),
+                                 G_OBJECT (editor));
        g_signal_connect_swapped (G_OBJECT (editor->priv->bc_style_combo),
                                  "changed",
                                  G_CALLBACK (style_changed_cb),
@@ -146,52 +172,79 @@ gl_object_editor_prepare_bc_page (glObjectEditor       *editor)
                                  G_CALLBACK (bc_radio_toggled_cb),
                                  G_OBJECT (editor));
        g_signal_connect_swapped (G_OBJECT (editor->priv->data_digits_spin),
-                                 "changed",
-                                 G_CALLBACK (gl_object_editor_changed_cb),
+                                 "value-changed",
+                                 G_CALLBACK (data_digits_spin_changed_cb),
                                  G_OBJECT (editor));
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Callback for when backend has changed.                         */
+/*--------------------------------------------------------------------------*/
+static void
+backend_changed_cb (glObjectEditor       *editor)
+{
+        gchar          *backend_name = NULL;
+       const gchar    *backend_id;
+        const gchar    *style_name;
+
+        backend_name =
+               gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (editor->priv->bc_backend_combo));
+
+        backend_id = gl_barcode_backends_backend_name_to_id (backend_name);
+
+        gl_object_editor_load_bc_styles (editor, backend_id);
+
+        style_name = gl_barcode_backends_style_id_to_name (backend_id, NULL);
+        gl_combo_util_set_active_text (GTK_COMBO_BOX (editor->priv->bc_style_combo),
+                                       style_name);
+
+        g_free (backend_name);
+}
+
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Callback for when style has changed.                           */
 /*--------------------------------------------------------------------------*/
 static void
 style_changed_cb (glObjectEditor       *editor)
 {
+        gchar          *backend_name = NULL;
+       const gchar    *backend_id;
         gchar          *style_string = NULL;
        const gchar    *id;
        gchar          *ex_string = NULL;
        guint           digits;
 
-        if (editor->priv->stop_signals) return;
+        backend_name =
+               gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (editor->priv->bc_backend_combo));
+
+        backend_id = gl_barcode_backends_backend_name_to_id (backend_name);
 
         style_string =
-               gtk_combo_box_get_active_text (GTK_COMBO_BOX (editor->priv->bc_style_combo));
-                                                                                
+               gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (editor->priv->bc_style_combo));
+
         /* Don't emit if entry is empty. */
-        if ( *style_string != 0 ) {
-                id = gl_barcode_name_to_id (style_string);
+        if ( style_string && *style_string != 0 ) {
+                id = gl_barcode_backends_style_name_to_id (backend_id, style_string);
                                                                                 
                 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(editor->priv->bc_text_check),
-                                             gl_barcode_can_text (id));
+                                             gl_barcode_backends_style_can_text (backend_id, id));
                 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(editor->priv->bc_cs_check),
-                                             gl_barcode_can_csum (id));
+                                             gl_barcode_backends_style_can_csum (backend_id, id));
                                                                                 
                 gtk_widget_set_sensitive (editor->priv->bc_text_check,
-                                          gl_barcode_text_optional (id));
+                                          gl_barcode_backends_style_text_optional (backend_id, id));
                 gtk_widget_set_sensitive (editor->priv->bc_cs_check,
-                                          gl_barcode_csum_optional (id));
+                                          gl_barcode_backends_style_csum_optional (backend_id, id));
                                                                                 
-               editor->priv->data_format_fixed_flag = !gl_barcode_can_freeform (id);
-               digits = gtk_spin_button_get_value (GTK_SPIN_BUTTON (editor->priv->data_digits_spin));
-               if (editor->priv->data_format_fixed_flag) {
-                       digits = gl_barcode_get_prefered_n(id);
-                       gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->data_digits_spin), 
-                                                  digits);
-               }
+               editor->priv->data_format_fixed_flag = !gl_barcode_backends_style_can_freeform (backend_id, id);
+                digits = gl_barcode_backends_style_get_prefered_n(backend_id, id);
+                gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->data_digits_spin), digits);
                                                                                 
-               ex_string = gl_barcode_default_digits (id, digits);
+               ex_string = gl_barcode_backends_style_default_digits (backend_id, id, digits);
                gtk_label_set_text (GTK_LABEL(editor->priv->data_ex_label), ex_string);
 
                if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->data_literal_radio))) {
@@ -208,59 +261,106 @@ style_changed_cb (glObjectEditor       *editor)
                                                  !editor->priv->data_format_fixed_flag);
                }
  
-                /* Emit our "changed" signal */
-                g_signal_emit (G_OBJECT (editor), gl_object_editor_signals[CHANGED], 0);
+                gl_object_editor_changed_cb (editor);
         }
                                                                                 
         g_free (style_string);
         g_free (ex_string);
 }
                                                                                 
+
+/*****************************************************************************/
+/* Load barcode styles based on backend_id.                                  */
+/*****************************************************************************/
+void
+gl_object_editor_load_bc_styles (glObjectEditor      *editor,
+                                 const gchar         *backend_id)
+{
+        GList       *styles;
+       gl_debug (DEBUG_EDITOR, "START");
+
+        if ( !editor->priv->current_backend_id ||
+             strcmp(editor->priv->current_backend_id, backend_id) != 0 )
+        {
+                g_signal_handlers_block_by_func (G_OBJECT (editor->priv->bc_style_combo),
+                                                 style_changed_cb, editor);
+
+                styles = gl_barcode_backends_get_styles_list (backend_id);
+                gl_combo_util_set_strings (GTK_COMBO_BOX_TEXT(editor->priv->bc_style_combo), styles);
+                gl_barcode_backends_free_styles_list (styles);
+
+                g_free (editor->priv->current_backend_id);
+                editor->priv->current_backend_id = g_strdup (backend_id);
+
+                g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->bc_style_combo),
+                                                   style_changed_cb, editor);
+        }
+
+       gl_debug (DEBUG_EDITOR, "END");
+}
+
+
 /*****************************************************************************/
 /* Set barcode style.                                                        */
 /*****************************************************************************/
 void
-gl_object_editor_set_bc_style (glObjectEditor      *editor,
-                              gchar               *id,
-                              gboolean             text_flag,
-                              gboolean             checksum_flag,
-                              guint                format_digits)
+gl_object_editor_set_bc_style (glObjectEditor            *editor,
+                              const glLabelBarcodeStyle *bc_style)
 {
-       const gchar *style_string;
+       const gchar *backend_name;
+       const gchar *style_name;
        gchar       *ex_string;
+        gint         format_digits;
  
        gl_debug (DEBUG_EDITOR, "START");
 
-        editor->priv->stop_signals = TRUE;
+        gl_object_editor_load_bc_styles (editor, bc_style->backend_id);
 
-        style_string = gl_barcode_id_to_name (id);
-       gl_util_combo_box_set_active_text (GTK_COMBO_BOX (editor->priv->bc_style_combo),
-                                          style_string);
+
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->bc_backend_combo),
+                                         backend_changed_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->bc_style_combo),
+                                         style_changed_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->bc_text_check),
+                                         gl_object_editor_changed_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->bc_cs_check),
+                                         gl_object_editor_changed_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->data_digits_spin),
+                                         data_digits_spin_changed_cb, editor);
+
+
+        backend_name = gl_barcode_backends_backend_id_to_name (bc_style->backend_id);
+        style_name   = gl_barcode_backends_style_id_to_name (bc_style->backend_id, bc_style->id);
+
+       gl_combo_util_set_active_text (GTK_COMBO_BOX (editor->priv->bc_backend_combo),
+                                       backend_name);
+       gl_combo_util_set_active_text (GTK_COMBO_BOX (editor->priv->bc_style_combo),
+                                       style_name);
  
         gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->bc_text_check),
-                                      text_flag);
+                                      bc_style->text_flag);
  
         gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->bc_cs_check),
-                                      checksum_flag);
+                                      bc_style->checksum_flag);
 
        gtk_widget_set_sensitive (editor->priv->bc_text_check,
-                                 gl_barcode_text_optional (id));
+                                 gl_barcode_backends_style_text_optional (bc_style->backend_id, bc_style->id));
        gtk_widget_set_sensitive (editor->priv->bc_cs_check,
-                                 gl_barcode_csum_optional (id));
+                                 gl_barcode_backends_style_csum_optional (bc_style->backend_id, bc_style->id));
 
-       editor->priv->data_format_fixed_flag = !gl_barcode_can_freeform (id);
+       editor->priv->data_format_fixed_flag = !gl_barcode_backends_style_can_freeform (bc_style->backend_id, bc_style->id);
 
+        format_digits = bc_style->format_digits;
        if (editor->priv->data_format_fixed_flag) {
-               format_digits = gl_barcode_get_prefered_n (id);
+               format_digits = gl_barcode_backends_style_get_prefered_n (bc_style->backend_id, bc_style->id);
        }
 
-       ex_string = gl_barcode_default_digits (id, format_digits);
+       ex_string = gl_barcode_backends_style_default_digits (bc_style->backend_id, bc_style->id, format_digits);
        gtk_label_set_text (GTK_LABEL(editor->priv->data_ex_label), ex_string);
        g_free (ex_string);
 
-        gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->data_digits_spin), 
-                                  format_digits);
+        gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->data_digits_spin), format_digits);
 
        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->data_literal_radio))) {
                gtk_widget_set_sensitive (editor->priv->data_format_label, FALSE);
@@ -275,45 +375,63 @@ gl_object_editor_set_bc_style (glObjectEditor      *editor,
                gtk_widget_set_sensitive (editor->priv->data_digits_spin,
                                          !editor->priv->data_format_fixed_flag);
        }
-        editor->priv->stop_signals = FALSE;
+
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->bc_backend_combo),
+                                           backend_changed_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->bc_style_combo),
+                                           style_changed_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->bc_text_check),
+                                           gl_object_editor_changed_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->bc_cs_check),
+                                           gl_object_editor_changed_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->data_digits_spin),
+                                           data_digits_spin_changed_cb, editor);
+
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Query barcode style.                                                      */
 /*****************************************************************************/
-void
-gl_object_editor_get_bc_style (glObjectEditor      *editor,
-                              gchar              **id,
-                              gboolean            *text_flag,
-                              gboolean            *checksum_flag,
-                              guint               *format_digits)
+glLabelBarcodeStyle *
+gl_object_editor_get_bc_style (glObjectEditor      *editor)
 {
-        gchar *style_string;
+        gchar       *backend_name;
+        const gchar *backend_id;
+        gchar       *style_name;
+        const gchar *id;
+
+        glLabelBarcodeStyle *bc_style;
 
        gl_debug (DEBUG_EDITOR, "START");
                                                                                 
-        style_string =
-               gtk_combo_box_get_active_text (GTK_COMBO_BOX (editor->priv->bc_style_combo));
-        *id = g_strdup (gl_barcode_name_to_id (style_string));
-                                                                                
-        *text_flag =
-            gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->bc_text_check));
-                                                                                
-        *checksum_flag =
-            gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->bc_cs_check));
-                                                                                
+        backend_name = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (editor->priv->bc_backend_combo));
+        backend_id = gl_barcode_backends_backend_name_to_id (backend_name);
 
-       *format_digits =
-               gtk_spin_button_get_value (GTK_SPIN_BUTTON(editor->priv->data_digits_spin));
+        style_name = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (editor->priv->bc_style_combo));
+        id = gl_barcode_backends_style_name_to_id (backend_id, style_name);
 
-        g_free (style_string);
+        bc_style = gl_label_barcode_style_new ();
+
+        gl_label_barcode_style_set_backend_id (bc_style, backend_id);
+        gl_label_barcode_style_set_style_id (bc_style, id);
+
+        bc_style->text_flag     = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->bc_text_check));
+        bc_style->checksum_flag = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->bc_cs_check));
+       bc_style->format_digits = gtk_spin_button_get_value (GTK_SPIN_BUTTON(editor->priv->data_digits_spin));
+
+        g_free (backend_name);
+        g_free (style_name);
 
        gl_debug (DEBUG_EDITOR, "END");
+
+        return bc_style;
 }
 
+
 /*****************************************************************************/
 /* Set bc color.                                                             */
 /*****************************************************************************/
@@ -322,24 +440,29 @@ gl_object_editor_set_bc_color (glObjectEditor      *editor,
                               gboolean             merge_flag,
                               glColorNode         *color_node)
 {
-       GdkColor *gdk_color;
-
        gl_debug (DEBUG_EDITOR, "START");
 
-        editor->priv->stop_signals = TRUE;
 
-       gtk_widget_set_sensitive (editor->priv->bc_key_radio, merge_flag);
-
-       if ( color_node->color == GL_COLOR_NONE ) {
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->bc_color_combo),
+                                         gl_object_editor_changed_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->bc_color_radio),
+                                         bc_radio_toggled_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->bc_key_radio),
+                                         bc_radio_toggled_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->bc_key_combo),
+                                         gl_object_editor_changed_cb, editor);
 
-               color_combo_set_color_to_default (COLOR_COMBO(editor->priv->bc_color_combo));
 
-       } else {
+       gtk_widget_set_sensitive (editor->priv->bc_key_radio, merge_flag);
 
-               gdk_color = gl_color_to_gdk_color (color_node->color);
-               color_combo_set_color (COLOR_COMBO(editor->priv->bc_color_combo),
-                                          gdk_color);
-               g_free (gdk_color);
+       if ( color_node->color == GL_COLOR_NONE )
+        {
+               gl_color_combo_set_to_default (GL_COLOR_COMBO(editor->priv->bc_color_combo));
+       }
+        else
+        {
+               gl_color_combo_set_color (GL_COLOR_COMBO(editor->priv->bc_color_combo),
+                                          color_node->color);
        }
        
        if (!color_node->field_flag || !merge_flag) {
@@ -354,22 +477,32 @@ gl_object_editor_set_bc_color (glObjectEditor      *editor,
                gtk_widget_set_sensitive (editor->priv->bc_color_combo, FALSE);
                gtk_widget_set_sensitive (editor->priv->bc_key_combo, TRUE);
                
-               gl_util_combo_box_set_active_text (GTK_COMBO_BOX (editor->priv->bc_key_combo),
-                                                  color_node->key);
+               gl_field_button_set_key (GL_FIELD_BUTTON (editor->priv->bc_key_combo),
+                                           color_node->key);
        }       
        
-        editor->priv->stop_signals = FALSE;
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->bc_color_combo),
+                                           gl_object_editor_changed_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->bc_color_radio),
+                                           bc_radio_toggled_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->bc_key_radio),
+                                           bc_radio_toggled_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->bc_key_combo),
+                                           gl_object_editor_changed_cb, editor);
+
        
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Query bc color.                                                           */
 /*****************************************************************************/
 glColorNode*
 gl_object_editor_get_bc_color (glObjectEditor      *editor)
 {
-       GdkColor     *gdk_color;
+       guint         color;
        glColorNode  *color_node;
        gboolean      is_default;
 
@@ -379,19 +512,19 @@ gl_object_editor_get_bc_color (glObjectEditor      *editor)
        
        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->bc_key_radio))) {
                color_node->field_flag = TRUE;
-               color_node->color = gl_prefs->default_line_color;
+               color_node->color = gl_prefs_model_get_default_line_color (gl_prefs);
                color_node->key = 
-                       gtk_combo_box_get_active_text (GTK_COMBO_BOX (editor->priv->bc_key_combo));
+                       gl_field_button_get_key (GL_FIELD_BUTTON (editor->priv->bc_key_combo));
        } else {
                color_node->field_flag = FALSE;
                color_node->key = NULL;
-               gdk_color = color_combo_get_color (COLOR_COMBO(editor->priv->bc_color_combo),
-                                           &is_default);
+               color = gl_color_combo_get_color (GL_COLOR_COMBO(editor->priv->bc_color_combo),
+                                                  &is_default);
 
                if (is_default) {
-                       color_node->color = gl_prefs->default_line_color;
+                       color_node->color = gl_prefs_model_get_default_line_color (gl_prefs);
                } else {
-                       color_node->color = gl_color_from_gdk_color (gdk_color);
+                       color_node->color = color;
                }
        }
        
@@ -400,27 +533,67 @@ gl_object_editor_get_bc_color (glObjectEditor      *editor)
        return color_node;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  barcode color radio callback.                                  */
 /*--------------------------------------------------------------------------*/
 static void
 bc_radio_toggled_cb (glObjectEditor *editor)
 {
-        if (editor->priv->stop_signals) return;
-
         gl_debug (DEBUG_EDITOR, "START");
        
        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->bc_color_radio))) {
                 gtk_widget_set_sensitive (editor->priv->bc_color_combo, TRUE);
                 gtk_widget_set_sensitive (editor->priv->bc_key_combo, FALSE);
-    } else {
+        } else {
                 gtk_widget_set_sensitive (editor->priv->bc_color_combo, FALSE);
                 gtk_widget_set_sensitive (editor->priv->bc_key_combo, TRUE);
                
        }
  
-    /* Emit our "changed" signal */
-    g_signal_emit (G_OBJECT (editor), gl_object_editor_signals[CHANGED], 0);
-    gl_debug (DEBUG_EDITOR, "END");
+        gl_object_editor_changed_cb (editor);
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  digits spin changed callback.                                  */
+/*--------------------------------------------------------------------------*/
+static void
+data_digits_spin_changed_cb (glObjectEditor *editor)
+{
+        gchar          *backend_name;
+        const gchar    *backend_id;
+        gchar          *style_name;
+        const gchar    *id;
+        guint           digits;
+        gchar          *ex_string;
+
+        backend_name = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (editor->priv->bc_backend_combo));
+        backend_id = gl_barcode_backends_backend_name_to_id (backend_name);
+
+        style_name = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (editor->priv->bc_style_combo));
+        if ( style_name && *style_name != '\0' ) {
+                id = gl_barcode_backends_style_name_to_id (backend_id, style_name);
+
+                digits = gtk_spin_button_get_value (GTK_SPIN_BUTTON (editor->priv->data_digits_spin));
+                ex_string = gl_barcode_backends_style_default_digits (backend_id, id, digits);
+                gtk_label_set_text (GTK_LABEL(editor->priv->data_ex_label), ex_string);
+                g_free (ex_string);
+        }
+
+        g_free (backend_name);
+        g_free (style_name);
+
+        gl_object_editor_changed_cb (editor);
 }
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 1717845f6fb77ca8718a998f67971c280380b8fc..009adbcae7e7085810b1eab12fed29d715d4271a 100644 (file)
@@ -1,56 +1,56 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  object-editor.c:  object properties editor module
+ *  object-editor-data-page.c
+ *  Copyright (C) 2003-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "object-editor.h"
 
 #include <glib/gi18n.h>
-#include <gtk/gtkeditable.h>
-#include <gtk/gtkcombobox.h>
-#include <gtk/gtktogglebutton.h>
+#include <gtk/gtk.h>
 #include <string.h>
 #include <math.h>
 
 #include "prefs.h"
-#include "util.h"
+#include "field-button.h"
+#include "builder-util.h"
 
 #include "object-editor-private.h"
 
 #include "debug.h"
 
+
 /*===========================================*/
 /* Private macros                            */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private data types                        */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private globals                           */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Local function prototypes                 */
 /*===========================================*/
@@ -58,7 +58,6 @@
 static void data_radio_toggled_cb                (glObjectEditor        *editor);
 
 
-\f
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Prepare data page.                                             */
 /*--------------------------------------------------------------------------*/
@@ -68,18 +67,18 @@ gl_object_editor_prepare_data_page (glObjectEditor *editor)
        gl_debug (DEBUG_EDITOR, "START");
 
        /* Extract widgets from XML tree. */
-       editor->priv->data_page_vbox     = glade_xml_get_widget (editor->priv->gui,
-                                                                "data_page_vbox");
-       editor->priv->data_literal_radio = glade_xml_get_widget (editor->priv->gui,
-                                                                "data_literal_radio");
-       editor->priv->data_key_radio     = glade_xml_get_widget (editor->priv->gui,
-                                                                "data_key_radio");
-       editor->priv->data_text_entry    = glade_xml_get_widget (editor->priv->gui,
-                                                                "data_text_entry");
-       editor->priv->data_key_combo     = glade_xml_get_widget (editor->priv->gui,
-                                                                "data_key_combo");
-
-       gl_util_combo_box_add_text_model ( GTK_COMBO_BOX(editor->priv->data_key_combo));
+        gl_builder_util_get_widgets (editor->priv->builder,
+                                     "data_page_vbox",     &editor->priv->data_page_vbox,
+                                     "data_literal_radio", &editor->priv->data_literal_radio,
+                                     "data_key_radio",     &editor->priv->data_key_radio,
+                                     "data_text_entry",    &editor->priv->data_text_entry,
+                                     "data_key_hbox",      &editor->priv->data_key_hbox,
+                                     NULL);
+
+        editor->priv->data_key_combo = gl_field_button_new (NULL);
+        gtk_box_pack_start (GTK_BOX (editor->priv->data_key_hbox),
+                            editor->priv->data_key_combo,
+                            TRUE, TRUE, 0);
 
        /* Un-hide */
        gtk_widget_show_all (editor->priv->data_page_vbox);
@@ -105,14 +104,13 @@ gl_object_editor_prepare_data_page (glObjectEditor *editor)
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  data radio callback.                                           */
 /*--------------------------------------------------------------------------*/
 static void
 data_radio_toggled_cb (glObjectEditor *editor)
 {
-        if (editor->priv->stop_signals) return;
-
         gl_debug (DEBUG_WDGT, "START");
  
        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->data_literal_radio))) {
@@ -133,12 +131,12 @@ data_radio_toggled_cb (glObjectEditor *editor)
                                          !editor->priv->data_format_fixed_flag);
        }
  
-        /* Emit our "changed" signal */
-        g_signal_emit (G_OBJECT (editor), gl_object_editor_signals[CHANGED], 0);
+        gl_object_editor_changed_cb (editor);
  
         gl_debug (DEBUG_WDGT, "END");
 }
 
+
 /*****************************************************************************/
 /* Set data.                                                                 */
 /*****************************************************************************/
@@ -150,14 +148,23 @@ gl_object_editor_set_data (glObjectEditor      *editor,
         gint pos;
  
         gl_debug (DEBUG_EDITOR, "START");
+
  
-        editor->priv->stop_signals = TRUE;
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->data_literal_radio),
+                                         data_radio_toggled_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->data_key_radio),
+                                         data_radio_toggled_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->data_text_entry),
+                                         gl_object_editor_changed_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->data_key_combo),
+                                         gl_object_editor_changed_cb, editor);
+
 
         gtk_widget_set_sensitive (editor->priv->data_key_radio, merge_flag);
  
-        if (!text_node->field_flag || !merge_flag) {
-                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
+        if (!text_node->field_flag || !merge_flag)
+        {
+                 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
                                               (editor->priv->data_literal_radio), TRUE); 
                 gtk_widget_set_sensitive (editor->priv->data_text_entry, TRUE);
                 gtk_widget_set_sensitive (editor->priv->data_key_combo, FALSE);
@@ -168,15 +175,16 @@ gl_object_editor_set_data (glObjectEditor      *editor,
  
                 gtk_editable_delete_text (GTK_EDITABLE (editor->priv->data_text_entry), 0, -1);
                 pos = 0;
-                if (text_node->data != NULL ) {
+                if (text_node->data != NULL )
+                {
                        gtk_editable_insert_text (GTK_EDITABLE (editor->priv->data_text_entry),
                                                  text_node->data,
                                                  strlen (text_node->data),
                                                  &pos);
                 }
-
-        } else {
-                                                                                
+        }
+        else
+        {
                 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
                                               (editor->priv->data_key_radio), TRUE);
                                                                                 
@@ -190,18 +198,27 @@ gl_object_editor_set_data (glObjectEditor      *editor,
                                          !editor->priv->data_format_fixed_flag);
                                                                                 
 
-               gl_util_combo_box_set_active_text (GTK_COMBO_BOX (editor->priv->data_key_combo),
-                                                  text_node->data);
+               gl_field_button_set_key (GL_FIELD_BUTTON (editor->priv->data_key_combo),
+                                         text_node->data);
         }
                                                                                 
 
-        editor->priv->stop_signals = FALSE;
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->data_literal_radio),
+                                           data_radio_toggled_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->data_key_radio),
+                                           data_radio_toggled_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->data_text_entry),
+                                           gl_object_editor_changed_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->data_key_combo),
+                                           gl_object_editor_changed_cb, editor);
+
 
         gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
-/* Query data.                                                              */
+/* Query data.                                                               */
 /*****************************************************************************/
 glTextNode *
 gl_object_editor_get_data (glObjectEditor      *editor)
@@ -212,15 +229,17 @@ gl_object_editor_get_data (glObjectEditor      *editor)
  
         text_node = g_new0(glTextNode,1);
  
-        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->data_literal_radio))) {
+        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->data_literal_radio)))
+        {
                 text_node->field_flag = FALSE;
                 text_node->data =
-                    gtk_editable_get_chars (GTK_EDITABLE (editor->priv->data_text_entry),
-                                            0, -1);
-        } else {
+                    gtk_editable_get_chars (GTK_EDITABLE (editor->priv->data_text_entry), 0, -1);
+        }
+        else
+        {
                 text_node->field_flag = TRUE;
                 text_node->data =
-                       gtk_combo_box_get_active_text (GTK_COMBO_BOX (editor->priv->data_key_combo));
+                       gl_field_button_get_key (GL_FIELD_BUTTON (editor->priv->data_key_combo));
         }
  
        gl_debug (DEBUG_EDITOR, "text_node: field_flag=%d, data=%s",
@@ -230,3 +249,14 @@ gl_object_editor_get_data (glObjectEditor      *editor)
  
         return text_node;
 }
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 0a21e8d694ce203129af85c00fb59237d0959fda..704b8efe06c22e223fb6fb9067442982de22b87d 100644 (file)
@@ -1,61 +1,61 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  object-editor.c:  object properties editor module
+ *  object-editor-edit-page.c
+ *  Copyright (C) 2003-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "object-editor.h"
 
 #include <glib/gi18n.h>
-#include <gtk/gtktextview.h>
-#include <gtk/gtkcombobox.h>
+#include <gtk/gtk.h>
 #include <math.h>
 
 #include "prefs.h"
-#include "mygal/widget-color-combo.h"
 #include "color.h"
-#include "util.h"
+#include "field-button.h"
+#include "builder-util.h"
 
 #include "object-editor-private.h"
 
 #include "debug.h"
 
+
 /*===========================================*/
 /* Private macros                            */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private data types                        */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private globals                           */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Local function prototypes                 */
 /*===========================================*/
 
-static void insert_button_cb (glObjectEditor  *editor);
+static void key_selected_cb (glObjectEditor *editor, gchar *key);
 
 
 /*--------------------------------------------------------------------------*/
@@ -67,56 +67,55 @@ gl_object_editor_prepare_edit_page (glObjectEditor       *editor)
        gl_debug (DEBUG_EDITOR, "START");
 
        /* Extract widgets from XML tree. */
-       editor->priv->edit_page_vbox =
-               glade_xml_get_widget (editor->priv->gui, "edit_page_vbox");
-       editor->priv->edit_text_view =
-               glade_xml_get_widget (editor->priv->gui, "edit_text_view");
-       editor->priv->edit_key_label =
-               glade_xml_get_widget (editor->priv->gui, "edit_key_label");
-       editor->priv->edit_key_combo =
-               glade_xml_get_widget (editor->priv->gui, "edit_key_combo");
-       editor->priv->edit_insert_field_button =
-               glade_xml_get_widget (editor->priv->gui, "edit_insert_field_button");
-
-       gl_util_combo_box_add_text_model ( GTK_COMBO_BOX(editor->priv->edit_key_combo));
+        gl_builder_util_get_widgets (editor->priv->builder,
+                                     "edit_page_vbox",           &editor->priv->edit_page_vbox,
+                                     "edit_text_view",           &editor->priv->edit_text_view,
+                                     "edit_insert_field_vbox",   &editor->priv->edit_insert_field_vbox,
+                                     NULL);
+
+       editor->priv->edit_insert_field_button = gl_field_button_new (_("Insert merge field"));
+        gtk_box_pack_start (GTK_BOX (editor->priv->edit_insert_field_vbox),
+                            editor->priv->edit_insert_field_button, FALSE, FALSE, 0);
+
+        gtk_widget_set_can_focus (editor->priv->edit_insert_field_button, FALSE);
+        gtk_widget_set_can_default (editor->priv->edit_insert_field_button, FALSE);
 
        /* Un-hide */
        gtk_widget_show_all (editor->priv->edit_page_vbox);
 
        /* Connect signals */
        g_signal_connect_swapped (G_OBJECT (editor->priv->edit_insert_field_button),
-                                 "clicked",
-                                 G_CALLBACK (insert_button_cb),
+                                 "key_selected",
+                                 G_CALLBACK (key_selected_cb),
                                  G_OBJECT (editor));
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
-/* PRIVATE.  Alignment togglebutton callback.                               */
+/* PRIVATE.  Menu item activated callback.                                  */
 /*--------------------------------------------------------------------------*/
 static void
-insert_button_cb (glObjectEditor  *editor)
+key_selected_cb (glObjectEditor *editor, gchar *key)
 {
         GtkTextBuffer *buffer;
-        gchar *key, *field;
+        gchar *field_string;
  
         gl_debug (DEBUG_EDITOR, "START");
  
-       key = gtk_combo_box_get_active_text (GTK_COMBO_BOX (editor->priv->edit_key_combo));
-        field = g_strdup_printf ("${%s}", key);
-        gl_debug (DEBUG_WDGT, "Inserting %s", field);
+        field_string = g_strdup_printf ("${%s}", key);
+        gl_debug (DEBUG_WDGT, "Inserting %s", field_string);
  
         buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (editor->priv->edit_text_view));
-        gtk_text_buffer_insert_at_cursor (buffer, field, -1);
-        g_free (field);
-        g_free (key);
+        gtk_text_buffer_insert_at_cursor (buffer, field_string, -1);
  
+        g_free (field_string);
  
         gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Set text buffer as model for text view/editor.                            */
 /*****************************************************************************/
@@ -131,3 +130,13 @@ gl_object_editor_set_text_buffer (glObjectEditor      *editor,
         gl_debug (DEBUG_EDITOR, "END");
 }
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 4daedab2c4327def0ccf9394600599928acb0cdc..528219be2e0d7aec5abb9f006725791bd87a128e 100644 (file)
@@ -1,95 +1,99 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  object-editor.c:  object properties editor module
+ *  object-editor-fill-page.c
+ *  Copyright (C) 2003-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "object-editor.h"
 
 #include <glib/gi18n.h>
-#include <gtk/gtktogglebutton.h>
-#include <gtk/gtkcombobox.h>
+#include <gtk/gtk.h>
 #include <math.h>
 
 #include "prefs.h"
-#include "mygal/widget-color-combo.h"
+#include "color-combo.h"
 #include "color.h"
-#include "util.h"
+#include "field-button.h"
+#include "builder-util.h"
 
 #include "object-editor-private.h"
 
 #include "debug.h"
 
+
 /*===========================================*/
 /* Private macros                            */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private data types                        */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private globals                           */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Local function prototypes                 */
 /*===========================================*/
 
 static void fill_radio_toggled_cb                (glObjectEditor        *editor);
 
-\f
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Prepare fill page.                                             */
 /*--------------------------------------------------------------------------*/
 void
 gl_object_editor_prepare_fill_page (glObjectEditor *editor)
 {
-       GdkColor *gdk_color;
-
        gl_debug (DEBUG_EDITOR, "START");
 
        /* Extract widgets from XML tree. */
-       editor->priv->fill_page_vbox   = glade_xml_get_widget (editor->priv->gui,
-                                                              "fill_page_vbox");
-       editor->priv->fill_color_combo = glade_xml_get_widget (editor->priv->gui,
-                                                              "fill_color_combo");
-       editor->priv->fill_key_combo = glade_xml_get_widget (editor->priv->gui,
-                                                               "fill_key_combo");      
-       editor->priv->fill_key_radio = glade_xml_get_widget (editor->priv->gui,
-                                                               "fill_key_radio");      
-       editor->priv->fill_color_radio = glade_xml_get_widget (editor->priv->gui,
-                                                               "fill_color_radio");    
-
+        gl_builder_util_get_widgets (editor->priv->builder,
+                                     "fill_page_vbox",   &editor->priv->fill_page_vbox,
+                                     "fill_color_hbox",  &editor->priv->fill_color_hbox,
+                                     "fill_key_hbox",    &editor->priv->fill_key_hbox,
+                                     "fill_key_radio",   &editor->priv->fill_key_radio,
+                                     "fill_color_radio", &editor->priv->fill_color_radio,
+                                     NULL);
        
-       gl_util_combo_box_add_text_model ( GTK_COMBO_BOX(editor->priv->fill_key_combo));
+       editor->priv->fill_color_combo = gl_color_combo_new (_("No Fill"),
+                                                             GL_COLOR_NO_FILL,
+                                                             gl_prefs_model_get_default_fill_color (gl_prefs));
+        gtk_box_pack_start (GTK_BOX (editor->priv->fill_color_hbox),
+                            editor->priv->fill_color_combo,
+                            FALSE, FALSE, 0);
+
+        editor->priv->fill_key_combo = gl_field_button_new (NULL);
+        gtk_box_pack_start (GTK_BOX (editor->priv->fill_key_hbox),
+                            editor->priv->fill_key_combo,
+                            TRUE, TRUE, 0);
 
        /* Modify widgets based on configuration */
        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->fill_color_radio), TRUE);
        gtk_widget_set_sensitive (editor->priv->fill_color_combo, TRUE);
        gtk_widget_set_sensitive (editor->priv->fill_key_combo, FALSE);
-       gdk_color = gl_color_to_gdk_color (gl_prefs->default_fill_color);
-       color_combo_set_color (COLOR_COMBO(editor->priv->fill_color_combo), gdk_color);
-       g_free (gdk_color);
+       gl_color_combo_set_color (GL_COLOR_COMBO(editor->priv->fill_color_combo),
+                                  gl_prefs_model_get_default_fill_color (gl_prefs));
 
        /* Un-hide */
        gtk_widget_show_all (editor->priv->fill_page_vbox);
@@ -114,6 +118,7 @@ gl_object_editor_prepare_fill_page (glObjectEditor *editor)
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Set fill color.                                                           */
 /*****************************************************************************/
@@ -122,55 +127,73 @@ gl_object_editor_set_fill_color (glObjectEditor      *editor,
                                 gboolean             merge_flag,
                                 glColorNode         *color_node)
 {
-       GdkColor *gdk_color;
-
        gl_debug (DEBUG_EDITOR, "START");
 
-        editor->priv->stop_signals = TRUE;
-
-       gtk_widget_set_sensitive (editor->priv->fill_key_radio, merge_flag);
+        if (color_node == NULL)
+        {
+                return;
+        }
 
-       if ( color_node->color == GL_COLOR_NONE ) {
 
-               color_combo_set_color_to_default (COLOR_COMBO(editor->priv->fill_color_combo));
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->fill_color_combo),
+                                         gl_object_editor_changed_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->fill_color_radio),
+                                         fill_radio_toggled_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->fill_key_radio),
+                                         fill_radio_toggled_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->fill_key_combo),
+                                         gl_object_editor_changed_cb, editor);
 
-       } else {
 
-               gdk_color = gl_color_to_gdk_color (color_node->color);
-               color_combo_set_color (COLOR_COMBO(editor->priv->fill_color_combo),
-                                          gdk_color);
-               g_free (gdk_color);
+       gtk_widget_set_sensitive (editor->priv->fill_key_radio, merge_flag);
 
+       if ( color_node->color == GL_COLOR_NONE )
+        {
+                gl_color_combo_set_to_default (GL_COLOR_COMBO(editor->priv->fill_color_combo));
+       }
+        else
+        {
+                gl_color_combo_set_color (GL_COLOR_COMBO(editor->priv->fill_color_combo), color_node->color);
        }
        
-       if (!color_node->field_flag || !merge_flag) {
-               gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
-                                                 (editor->priv->fill_color_radio), TRUE); 
+       if (!color_node->field_flag || !merge_flag)
+        {
+               gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->fill_color_radio), TRUE); 
                gtk_widget_set_sensitive (editor->priv->fill_color_combo, TRUE);
                gtk_widget_set_sensitive (editor->priv->fill_key_combo, FALSE);
                
-       } else {
-               gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
-                                                 (editor->priv->fill_key_radio), TRUE); 
+       }
+        else
+        {
+               gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->fill_key_radio), TRUE); 
                gtk_widget_set_sensitive (editor->priv->fill_color_combo, FALSE);
                gtk_widget_set_sensitive (editor->priv->fill_key_combo, TRUE);
                
-               gl_util_combo_box_set_active_text (GTK_COMBO_BOX (editor->priv->fill_key_combo),
-                                                  color_node->key);
+               gl_field_button_set_key (GL_FIELD_BUTTON (editor->priv->fill_key_combo), color_node->key);
        }
        
-        editor->priv->stop_signals = FALSE;
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->fill_color_combo),
+                                           gl_object_editor_changed_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->fill_color_radio),
+                                           fill_radio_toggled_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->fill_key_radio),
+                                           fill_radio_toggled_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->fill_key_combo),
+                                           gl_object_editor_changed_cb, editor);
+
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Query fill color.                                                         */
 /*****************************************************************************/
 glColorNode*
 gl_object_editor_get_fill_color (glObjectEditor      *editor)
 {
-        GdkColor    *gdk_color;
+        guint        color;
         gboolean     is_default;
        glColorNode *color_node;
  
@@ -181,16 +204,16 @@ gl_object_editor_get_fill_color (glObjectEditor      *editor)
        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->fill_key_radio))) {
                color_node->field_flag = TRUE;
                color_node->key = 
-                       gtk_combo_box_get_active_text (GTK_COMBO_BOX (editor->priv->fill_key_combo));
-    } else {
+                       gl_field_button_get_key (GL_FIELD_BUTTON (editor->priv->fill_key_combo));
+        } else {
                color_node->field_flag = FALSE;
                color_node->key = NULL;
-               gdk_color = color_combo_get_color (COLOR_COMBO(editor->priv->fill_color_combo),
-                                           &is_default);
+               color = gl_color_combo_get_color (GL_COLOR_COMBO(editor->priv->fill_color_combo),
+                                                  &is_default);
 
                if (!is_default) {
-               color_node->color = gl_color_from_gdk_color (gdk_color);
-        }
+                        color_node->color = color;
+                }
        }
 
        gl_debug (DEBUG_EDITOR, "END");
@@ -198,27 +221,38 @@ gl_object_editor_get_fill_color (glObjectEditor      *editor)
        return color_node;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  fill radio callback.                                           */
 /*--------------------------------------------------------------------------*/
 static void
 fill_radio_toggled_cb (glObjectEditor *editor)
 {
-        if (editor->priv->stop_signals) return;
-
         gl_debug (DEBUG_EDITOR, "START");
        
-       if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->fill_color_radio))) {
+       if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->fill_color_radio)))
+        {
                 gtk_widget_set_sensitive (editor->priv->fill_color_combo, TRUE);
                 gtk_widget_set_sensitive (editor->priv->fill_key_combo, FALSE);
-    } else {
+        }
+        else
+        {
                 gtk_widget_set_sensitive (editor->priv->fill_color_combo, FALSE);
                 gtk_widget_set_sensitive (editor->priv->fill_key_combo, TRUE);
-               
        }
  
-        /* Emit our "changed" signal */
-        g_signal_emit (G_OBJECT (editor), gl_object_editor_signals[CHANGED], 0);
+        gl_object_editor_changed_cb (editor);
  
         gl_debug (DEBUG_EDITOR, "END");
 }
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 1433913024865179020b8a625aca220ac965d370..e4dd6dd34c61f491430f44b696215a5588c71bea 100644 (file)
@@ -1,56 +1,55 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  object-editor.c:  object properties editor module
+ *  object-editor-image-page.c
+ *  Copyright (C) 2003-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "object-editor.h"
 
 #include <glib/gi18n.h>
-#include <gtk/gtkimage.h>
-#include <gtk/gtkfilechooserbutton.h>
-#include <gtk/gtkcombobox.h>
-#include <gtk/gtktogglebutton.h>
+#include <gtk/gtk.h>
 #include <math.h>
 
 #include "prefs.h"
-#include "util.h"
+#include "field-button.h"
+#include "builder-util.h"
 
 #include "object-editor-private.h"
 
 #include "debug.h"
 
+
 /*===========================================*/
 /* Private macros                            */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private data types                        */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private globals                           */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Local function prototypes                 */
 /*===========================================*/
@@ -63,7 +62,7 @@ static void add_image_filters_to_chooser        (GtkFileChooser *file_chooser);
 
 static void img_selection_changed_cb (glObjectEditor *editor);
 
-\f
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Prepare image page.                                             */
 /*--------------------------------------------------------------------------*/
@@ -76,18 +75,19 @@ gl_object_editor_prepare_image_page (glObjectEditor *editor)
        gl_debug (DEBUG_EDITOR, "START");
 
        /* Extract widgets from XML tree. */
-       editor->priv->img_page_vbox    = glade_xml_get_widget (editor->priv->gui,
-                                                              "img_page_vbox");
-       editor->priv->img_file_radio   = glade_xml_get_widget (editor->priv->gui,
-                                                              "img_file_radio");
-       editor->priv->img_key_radio    = glade_xml_get_widget (editor->priv->gui,
-                                                              "img_key_radio");
-       editor->priv->img_file_button  = glade_xml_get_widget (editor->priv->gui,
-                                                              "img_file_button");
-       editor->priv->img_key_combo    = glade_xml_get_widget (editor->priv->gui,
-                                                              "img_key_combo");
-
-       gl_util_combo_box_add_text_model ( GTK_COMBO_BOX(editor->priv->img_key_combo));
+        gl_builder_util_get_widgets (editor->priv->builder,
+                                     "img_page_vbox",   &editor->priv->img_page_vbox,
+                                     "img_file_radio",  &editor->priv->img_file_radio,
+                                     "img_key_radio",   &editor->priv->img_key_radio,
+                                     "img_file_button", &editor->priv->img_file_button,
+                                     "img_key_hbox",    &editor->priv->img_key_hbox,
+                                     NULL);
+
+        editor->priv->img_key_combo = gl_field_button_new (NULL);
+        gtk_box_pack_start (GTK_BOX (editor->priv->img_key_hbox),
+                            editor->priv->img_key_combo,
+                            TRUE, TRUE, 0);
+
 
        /* Modify file button properties. */
        add_image_filters_to_chooser (GTK_FILE_CHOOSER (editor->priv->img_file_button));
@@ -121,14 +121,13 @@ gl_object_editor_prepare_image_page (glObjectEditor *editor)
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  image radio callback.                                          */
 /*--------------------------------------------------------------------------*/
 static void
 img_radio_toggled_cb (glObjectEditor *editor)
 {
-        if (editor->priv->stop_signals) return;
-
         gl_debug (DEBUG_WDGT, "START");
  
        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->img_file_radio))) {
@@ -139,12 +138,12 @@ img_radio_toggled_cb (glObjectEditor *editor)
                 gtk_widget_set_sensitive (editor->priv->img_key_combo, TRUE);
         }
  
-        /* Emit our "changed" signal */
-        g_signal_emit (G_OBJECT (editor), gl_object_editor_signals[CHANGED], 0);
+        gl_object_editor_changed_cb (editor);
  
         gl_debug (DEBUG_WDGT, "END");
 }
 
+
 /*****************************************************************************/
 /* Set image.                                                                */
 /*****************************************************************************/
@@ -155,40 +154,61 @@ gl_object_editor_set_image (glObjectEditor      *editor,
 {
         gl_debug (DEBUG_EDITOR, "START");
  
-        editor->priv->stop_signals = TRUE;
+
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->img_file_radio),
+                                         img_radio_toggled_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->img_key_radio),
+                                         img_radio_toggled_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->img_file_button),
+                                         img_selection_changed_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->img_key_combo),
+                                         gl_object_editor_changed_cb, editor);
+
 
         gtk_widget_set_sensitive (editor->priv->img_key_radio, merge_flag);
  
-        if (!text_node->field_flag || !merge_flag) {
-                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
-                                              (editor->priv->img_file_radio), TRUE); 
+        if (!text_node->field_flag || !merge_flag)
+        {
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->img_file_radio), TRUE); 
                 gtk_widget_set_sensitive (editor->priv->img_file_button, TRUE);
                 gtk_widget_set_sensitive (editor->priv->img_key_combo, FALSE);
  
-                if (text_node->data != NULL ) {
+                if (text_node->data != NULL )
+                {
                        gtk_file_chooser_set_filename (GTK_FILE_CHOOSER(editor->priv->img_file_button),
                                                        text_node->data);
-                } else {
+                }
+                else
+                {
                        gtk_file_chooser_unselect_all (GTK_FILE_CHOOSER(editor->priv->img_file_button));
                 }
-        } else {
-                                                                                
-                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
-                                              (editor->priv->img_key_radio), TRUE);
+        }
+        else
+        {
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->img_key_radio), TRUE);
                                                                                 
                 gtk_widget_set_sensitive (editor->priv->img_file_button, FALSE);
                 gtk_widget_set_sensitive (editor->priv->img_key_combo, TRUE);
                                                                                 
-               gl_util_combo_box_set_active_text (GTK_COMBO_BOX (editor->priv->img_key_combo),
-                                                  text_node->data);
+               gl_field_button_set_key (GL_FIELD_BUTTON (editor->priv->img_key_combo),
+                                         text_node->data);
         }
                                                                                 
-        editor->priv->stop_signals = FALSE;
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->img_file_radio),
+                                           img_radio_toggled_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->img_key_radio),
+                                           img_radio_toggled_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->img_file_button),
+                                           img_selection_changed_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->img_key_combo),
+                                           gl_object_editor_changed_cb, editor);
+
                                                                                 
         gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Query image.                                                              */
 /*****************************************************************************/
@@ -201,14 +221,17 @@ gl_object_editor_get_image (glObjectEditor      *editor)
  
         text_node = g_new0(glTextNode,1);
  
-        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->img_file_radio))) {
+        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->img_file_radio)))
+        {
                 text_node->field_flag = FALSE;
                 text_node->data =
                        gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(editor->priv->img_file_button));
-        } else {
+        }
+        else
+        {
                 text_node->field_flag = TRUE;
                 text_node->data =
-                       gtk_combo_box_get_active_text (GTK_COMBO_BOX (editor->priv->img_key_combo));
+                       gl_field_button_get_key (GL_FIELD_BUTTON (editor->priv->img_key_combo));
         }
  
        gl_debug (DEBUG_EDITOR, "text_node: field_flag=%d, data=%s",
@@ -219,6 +242,7 @@ gl_object_editor_get_image (glObjectEditor      *editor)
         return text_node;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Update preview image.                                          */
 /*--------------------------------------------------------------------------*/
@@ -228,27 +252,35 @@ update_preview_cb (GtkFileChooser *file_chooser, gpointer data)
         GtkWidget *preview;
         char *filename;
         GdkPixbuf *pixbuf;
-        gboolean have_preview;
+
+        gl_debug (DEBUG_EDITOR, "START");
 
         preview = GTK_WIDGET (data);
         filename = gtk_file_chooser_get_preview_filename (file_chooser);
 
-        if (filename) {
+        if (filename)
+        {
+                gl_debug (DEBUG_EDITOR, "filename =\"%s\"", filename);
                 pixbuf = gdk_pixbuf_new_from_file_at_size (filename, 128, 128, NULL);
-                have_preview = (pixbuf != NULL);
-                g_free (filename);
-
-                gtk_image_set_from_pixbuf (GTK_IMAGE (preview), pixbuf);
-                if (pixbuf)
-                        gdk_pixbuf_unref (pixbuf);
+                if (pixbuf != NULL)
+                {
+                        gtk_image_set_from_pixbuf (GTK_IMAGE (preview), pixbuf);
+                        g_object_unref (G_OBJECT (pixbuf));
 
-                gtk_file_chooser_set_preview_widget_active (file_chooser,
-                                                            have_preview);
-        } else {
+                        gtk_file_chooser_set_preview_widget_active (file_chooser,
+                                                                    TRUE);
+                }
+                g_free (filename);
+        }
+        else
+        {
                 gtk_file_chooser_set_preview_widget_active (file_chooser, FALSE);
         }
+
+        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Add filters to file chooser.                                   */
 /*           Based on eog's eog_file_selection_add_filter().                */
@@ -276,7 +308,8 @@ add_image_filters_to_chooser (GtkFileChooser *chooser)
 
        /* Individual image filters */
        formats = gdk_pixbuf_get_formats ();
-       for (it = formats; it != NULL; it = it->next) {
+       for (it = formats; it != NULL; it = it->next)
+        {
                gchar *filter_name;
                GdkPixbufFormat *format;
                filter = gtk_file_filter_new ();
@@ -294,14 +327,16 @@ add_image_filters_to_chooser (GtkFileChooser *chooser)
                g_free (filter_name);
 
                mime_types = gdk_pixbuf_format_get_mime_types ((GdkPixbufFormat *) it->data);
-               for (i = 0; mime_types[i] != NULL; i++) {
+               for (i = 0; mime_types[i] != NULL; i++)
+                {
                        gtk_file_filter_add_mime_type (filter, mime_types[i]);
                        gtk_file_filter_add_mime_type (all_img_filter, mime_types[i]);
                }
                g_strfreev (mime_types);
  
                pattern = gdk_pixbuf_format_get_extensions ((GdkPixbufFormat *) it->data);
-               for (i = 0; pattern[i] != NULL; i++) {
+               for (i = 0; pattern[i] != NULL; i++)
+                {
                        tmp = g_strconcat ("*.", pattern[i], NULL);
                        gtk_file_filter_add_pattern (filter, tmp);
                        gtk_file_filter_add_pattern (all_img_filter, tmp);
@@ -325,6 +360,7 @@ add_image_filters_to_chooser (GtkFileChooser *chooser)
        g_slist_free (filters);
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE. Selection changed callback.                                     */
 /*--------------------------------------------------------------------------*/
@@ -333,18 +369,25 @@ img_selection_changed_cb (glObjectEditor *editor)
 {
         gchar *filename;
 
-        if (editor->priv->stop_signals) return;
-
        gl_debug (DEBUG_EDITOR, "START");
 
         filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(editor->priv->img_file_button));
         if (filename != NULL)
         {
-                /* Emit our "changed" signal */
-                g_signal_emit (G_OBJECT (editor), gl_object_editor_signals[CHANGED], 0);
+                gl_object_editor_changed_cb (editor);
         }
         g_free (filename);
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index c2f645088df27e3e4645df2ab44dab4961bac55c..9557a20235cf0c1e57432c1299fe207a6aaa70ee 100644 (file)
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  object-editor.c:  object properties editor module
+ *  object-editor-line-page.c
+ *  Copyright (C) 2003-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "object-editor.h"
 
 #include <glib/gi18n.h>
-#include <gtk/gtklabel.h>
-#include <gtk/gtkspinbutton.h>
-#include <gtk/gtkcombobox.h>
-#include <gtk/gtktogglebutton.h>
+#include <gtk/gtk.h>
 #include <math.h>
 
 #include "prefs.h"
-#include "mygal/widget-color-combo.h"
+#include "color-combo.h"
 #include "color.h"
-#include "util.h"
+#include "field-button.h"
+#include "builder-util.h"
 
 #include "object-editor-private.h"
 
 #include "debug.h"
 
+
 /*===========================================*/
 /* Private macros                            */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private data types                        */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private globals                           */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Local function prototypes                 */
 /*===========================================*/
 static void line_radio_toggled_cb               (glObjectEditor        *editor);
 
-\f
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Prepare line page.                                             */
 /*--------------------------------------------------------------------------*/
 void
 gl_object_editor_prepare_line_page (glObjectEditor *editor)
 {
-       GdkColor     *gdk_color;
-
        gl_debug (DEBUG_EDITOR, "START");
 
        /* Extract widgets from XML tree. */
-       editor->priv->line_page_vbox   = glade_xml_get_widget (editor->priv->gui,
-                                                              "line_page_vbox");
-       editor->priv->line_width_spin  = glade_xml_get_widget (editor->priv->gui,
-                                                              "line_width_spin");
-       editor->priv->line_color_combo = glade_xml_get_widget (editor->priv->gui,
-                                                              "line_color_combo");
-       editor->priv->line_key_combo = glade_xml_get_widget (editor->priv->gui,
-                                                               "line_key_combo");      
-       editor->priv->line_key_radio = glade_xml_get_widget (editor->priv->gui,
-                                                               "line_key_radio");      
-       editor->priv->line_color_radio = glade_xml_get_widget (editor->priv->gui,
-                                                               "line_color_radio");    
-
-       gl_util_combo_box_add_text_model ( GTK_COMBO_BOX(editor->priv->line_key_combo));
+        gl_builder_util_get_widgets (editor->priv->builder,
+                                     "line_page_vbox",   &editor->priv->line_page_vbox,
+                                     "line_width_spin",  &editor->priv->line_width_spin,
+                                     "line_color_hbox",  &editor->priv->line_color_hbox,
+                                     "line_key_hbox",    &editor->priv->line_key_hbox,
+                                     "line_key_radio",   &editor->priv->line_key_radio,
+                                     "line_color_radio", &editor->priv->line_color_radio,
+                                     NULL);
+
+       editor->priv->line_color_combo = gl_color_combo_new (_("No Line"),
+                                                             GL_COLOR_NO_LINE,
+                                                             gl_prefs_model_get_default_line_color (gl_prefs));
+        gtk_box_pack_start (GTK_BOX (editor->priv->line_color_hbox),
+                            editor->priv->line_color_combo,
+                            FALSE, FALSE, 0);
+
+        editor->priv->line_key_combo = gl_field_button_new (NULL);
+        gtk_box_pack_start (GTK_BOX (editor->priv->line_key_hbox),
+                            editor->priv->line_key_combo,
+                            TRUE, TRUE, 0);
 
        /* Modify widgets based on configuration */
        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->line_color_radio), TRUE);
        gtk_widget_set_sensitive (editor->priv->line_color_combo, TRUE);
     gtk_widget_set_sensitive (editor->priv->line_key_combo, FALSE);    
        gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->line_width_spin),
-                                  gl_prefs->default_line_width);
-       gdk_color = gl_color_to_gdk_color (gl_prefs->default_line_color);
-       color_combo_set_color (COLOR_COMBO(editor->priv->line_color_combo), gdk_color);
-       g_free (gdk_color);
+                                  gl_prefs_model_get_default_line_width (gl_prefs));
+       gl_color_combo_set_color (GL_COLOR_COMBO(editor->priv->line_color_combo),
+                                  gl_prefs_model_get_default_line_color (gl_prefs));
 
        /* Un-hide */
        gtk_widget_show_all (editor->priv->line_page_vbox);
 
        /* Connect signals */
        g_signal_connect_swapped (G_OBJECT (editor->priv->line_width_spin),
-                                 "changed",
+                                 "value-changed",
                                  G_CALLBACK (gl_object_editor_changed_cb),
                                  G_OBJECT (editor));
        g_signal_connect_swapped (G_OBJECT (editor->priv->line_color_combo),
@@ -123,6 +125,7 @@ gl_object_editor_prepare_line_page (glObjectEditor *editor)
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Set line width.                                                           */
 /*****************************************************************************/
@@ -132,17 +135,24 @@ gl_object_editor_set_line_width (glObjectEditor      *editor,
 {
        gl_debug (DEBUG_EDITOR, "START");
 
-        editor->priv->stop_signals = TRUE;
+
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->line_width_spin),
+                                         gl_object_editor_changed_cb, editor);
+
 
        /* Set widget values */
        gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->line_width_spin),
                                   width);
 
-        editor->priv->stop_signals = FALSE;
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->line_width_spin),
+                                           gl_object_editor_changed_cb, editor);
+
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Query line width.                                                         */
 /*****************************************************************************/
@@ -160,6 +170,7 @@ gl_object_editor_get_line_width (glObjectEditor      *editor)
        return w;
 }
 
+
 /*****************************************************************************/
 /* Set line color.                                                           */
 /*****************************************************************************/
@@ -168,25 +179,35 @@ gl_object_editor_set_line_color (glObjectEditor      *editor,
                                 gboolean             merge_flag,
                                 glColorNode         *color_node)
 {
-       GdkColor *gdk_color;
-
        gl_debug (DEBUG_EDITOR, "START");
 
-        editor->priv->stop_signals = TRUE;
+        if (color_node == NULL)
+        {
+                return;
+        }
+
+
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->line_color_combo),
+                                         gl_object_editor_changed_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->line_color_radio),
+                                         line_radio_toggled_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->line_key_radio),
+                                         line_radio_toggled_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->line_key_combo),
+                                         gl_object_editor_changed_cb, editor);
+
 
        gl_debug (DEBUG_EDITOR, "color field %s(%d) / %X", color_node->key, color_node->field_flag, color_node->color);
        gtk_widget_set_sensitive (editor->priv->line_key_radio, merge_flag);
 
        if ( color_node->color == GL_COLOR_NONE ) {
 
-               color_combo_set_color_to_default (COLOR_COMBO(editor->priv->line_color_combo));
+               gl_color_combo_set_to_default (GL_COLOR_COMBO(editor->priv->line_color_combo));
 
        } else {
 
-               gdk_color = gl_color_to_gdk_color (color_node->color);
-               color_combo_set_color (COLOR_COMBO(editor->priv->line_color_combo),
-                                          gdk_color);
-               g_free (gdk_color);
+               gl_color_combo_set_color (GL_COLOR_COMBO(editor->priv->line_color_combo),
+                                          color_node->color);
 
        }       
        
@@ -202,22 +223,32 @@ gl_object_editor_set_line_color (glObjectEditor      *editor,
                gtk_widget_set_sensitive (editor->priv->line_color_combo, FALSE);
                gtk_widget_set_sensitive (editor->priv->line_key_combo, TRUE);
                
-               gl_util_combo_box_set_active_text (GTK_COMBO_BOX (editor->priv->line_key_combo),
-                                                  color_node->key);
+               gl_field_button_set_key (GL_FIELD_BUTTON (editor->priv->line_key_combo),
+                                         color_node->key);
        }
 
-        editor->priv->stop_signals = FALSE;
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->line_color_combo),
+                                           gl_object_editor_changed_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->line_color_radio),
+                                           line_radio_toggled_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->line_key_radio),
+                                           line_radio_toggled_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->line_key_combo),
+                                           gl_object_editor_changed_cb, editor);
+
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Query line color.                                                         */
 /*****************************************************************************/
 glColorNode*
 gl_object_editor_get_line_color (glObjectEditor      *editor)
 {
-        GdkColor    *gdk_color;
+        guint        color;
         gboolean     is_default;
        glColorNode *color_node;
  
@@ -228,16 +259,16 @@ gl_object_editor_get_line_color (glObjectEditor      *editor)
        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->line_key_radio))) {
                color_node->field_flag = TRUE;
                color_node->key = 
-                       gtk_combo_box_get_active_text (GTK_COMBO_BOX (editor->priv->line_key_combo));
-    } else {
+                       gl_field_button_get_key (GL_FIELD_BUTTON (editor->priv->line_key_combo));
+        } else {
                color_node->field_flag = FALSE;
                color_node->key = NULL;
-               gdk_color = color_combo_get_color (COLOR_COMBO(editor->priv->line_color_combo),
-                                           &is_default);
+               color = gl_color_combo_get_color (GL_COLOR_COMBO(editor->priv->line_color_combo),
+                                                  &is_default);
 
                if (!is_default) {
-               color_node->color = gl_color_from_gdk_color (gdk_color);
-        }
+                        color_node->color = color;
+                }
        }
        
        gl_debug (DEBUG_EDITOR, "END");
@@ -245,14 +276,13 @@ gl_object_editor_get_line_color (glObjectEditor      *editor)
        return color_node;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  line color radio callback.                                     */
 /*--------------------------------------------------------------------------*/
 static void
 line_radio_toggled_cb (glObjectEditor *editor)
 {
-        if (editor->priv->stop_signals) return;
-
         gl_debug (DEBUG_EDITOR, "START");
        
        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->line_color_radio))) {
@@ -264,8 +294,18 @@ line_radio_toggled_cb (glObjectEditor *editor)
                
        }
  
-        /* Emit our "changed" signal */
-        g_signal_emit (G_OBJECT (editor), gl_object_editor_signals[CHANGED], 0);
+        gl_object_editor_changed_cb (editor);
  
         gl_debug (DEBUG_EDITOR, "END");
 }
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index d87c2470468d1e3ea778b6e62ca6547cfbc4d6b6..5b4663dedaeeafb595f571e3be516c21ac7b9e5c 100644 (file)
@@ -1,41 +1,40 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  object-editor.c:  object properties editor module
+ *  object-editor-lsize-page.c
+ *  Copyright (C) 2003-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "object-editor.h"
 
 #include <glib/gi18n.h>
-#include <gtk/gtklabel.h>
-#include <gtk/gtkspinbutton.h>
+#include <gtk/gtk.h>
 #include <math.h>
 
 #include "prefs.h"
+#include "builder-util.h"
+#include "units-util.h"
 
 #include "object-editor-private.h"
 
 #include "debug.h"
 
+
 /*===========================================*/
 /* Private macros                            */
 /*===========================================*/
 /* Private data types                        */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private globals                           */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Local function prototypes                 */
 /*===========================================*/
 
 
-\f
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Prepare line size page.                                        */
 /*--------------------------------------------------------------------------*/
 void
 gl_object_editor_prepare_lsize_page (glObjectEditor       *editor)
 {
+        lglUnits      units;
        const gchar  *units_string;
        gdouble       climb_rate;
        gint          digits;
@@ -73,25 +74,24 @@ gl_object_editor_prepare_lsize_page (glObjectEditor       *editor)
        gl_debug (DEBUG_EDITOR, "START");
 
        /* Extract widgets from XML tree. */
-       editor->priv->lsize_page_vbox =
-               glade_xml_get_widget (editor->priv->gui, "lsize_page_vbox");
-       editor->priv->lsize_r_spin =
-               glade_xml_get_widget (editor->priv->gui, "lsize_r_spin");
-       editor->priv->lsize_theta_spin =
-               glade_xml_get_widget (editor->priv->gui, "lsize_theta_spin");
-       editor->priv->lsize_r_units_label =
-               glade_xml_get_widget (editor->priv->gui, "lsize_r_units_label");
+        gl_builder_util_get_widgets (editor->priv->builder,
+                                     "lsize_page_vbox",     &editor->priv->lsize_page_vbox,
+                                     "lsize_r_spin",        &editor->priv->lsize_r_spin,
+                                     "lsize_theta_spin",    &editor->priv->lsize_theta_spin,
+                                     "lsize_r_units_label", &editor->priv->lsize_r_units_label,
+                                     NULL);
 
        /* Get configuration information */
-       units_string = gl_prefs_get_units_string ();
-       editor->priv->units_per_point = gl_prefs_get_units_per_point ();
-       climb_rate = gl_prefs_get_units_step_size ();
-       digits = gl_prefs_get_units_precision ();
+        units = gl_prefs_model_get_units (gl_prefs);
+       units_string = lgl_units_get_name (units);
+       editor->priv->units_per_point = lgl_units_get_units_per_point (units);
+       climb_rate = gl_units_util_get_step_size (units);
+       digits = gl_units_util_get_precision (units);
 
        /* Modify widgets based on configuration */
        gtk_spin_button_set_digits (GTK_SPIN_BUTTON(editor->priv->lsize_r_spin), digits);
        gtk_spin_button_set_increments (GTK_SPIN_BUTTON(editor->priv->lsize_r_spin),
-                                       climb_rate, 10.0*climb_rate);
+                                       climb_rate, 0);
        gtk_label_set_text (GTK_LABEL(editor->priv->lsize_r_units_label), units_string);
 
        /* Un-hide */
@@ -99,17 +99,18 @@ gl_object_editor_prepare_lsize_page (glObjectEditor       *editor)
 
        /* Connect signals */
        g_signal_connect_swapped (G_OBJECT (editor->priv->lsize_r_spin),
-                                 "changed",
-                                 G_CALLBACK (gl_object_editor_changed_cb),
+                                 "value-changed",
+                                 G_CALLBACK (gl_object_editor_size_changed_cb),
                                  G_OBJECT (editor));
        g_signal_connect_swapped (G_OBJECT (editor->priv->lsize_theta_spin),
-                                 "changed",
-                                 G_CALLBACK (gl_object_editor_changed_cb),
+                                 "value-changed",
+                                 G_CALLBACK (gl_object_editor_size_changed_cb),
                                  G_OBJECT (editor));
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Set line size.                                                            */
 /*****************************************************************************/
@@ -122,7 +123,12 @@ gl_object_editor_set_lsize (glObjectEditor      *editor,
 
        gl_debug (DEBUG_EDITOR, "START");
 
-        editor->priv->stop_signals = TRUE;
+
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->lsize_r_spin),
+                                         gl_object_editor_size_changed_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->lsize_theta_spin),
+                                         gl_object_editor_size_changed_cb, editor);
+
 
        /* save a copy in internal units */
        editor->priv->dx = dx;
@@ -142,11 +148,17 @@ gl_object_editor_set_lsize (glObjectEditor      *editor,
        gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->lsize_theta_spin),
                                   theta);
 
-        editor->priv->stop_signals = FALSE;
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->lsize_r_spin),
+                                           gl_object_editor_size_changed_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->lsize_theta_spin),
+                                           gl_object_editor_size_changed_cb, editor);
+
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Set maximum line size.                                                    */
 /*****************************************************************************/
@@ -159,34 +171,40 @@ gl_object_editor_set_max_lsize (glObjectEditor      *editor,
 
        gl_debug (DEBUG_EDITOR, "START");
 
-        if (editor->priv->lsize_page_vbox)
-        {
 
-                editor->priv->stop_signals = TRUE;
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->lsize_r_spin),
+                                         gl_object_editor_size_changed_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->lsize_theta_spin),
+                                         gl_object_editor_size_changed_cb, editor);
+
+
+        /* save a copy in internal units */
+        editor->priv->dx_max = dx_max;
+        editor->priv->dy_max = dy_max;
 
-                /* save a copy in internal units */
-                editor->priv->dx_max = dx_max;
-                editor->priv->dy_max = dy_max;
+        /* convert internal units to displayed units */
+        gl_debug (DEBUG_EDITOR, "internal dx_max,dy_max = %g, %g", dx_max, dy_max);
+        dx_max *= editor->priv->units_per_point;
+        dy_max *= editor->priv->units_per_point;
+        gl_debug (DEBUG_EDITOR, "display dx_max,dy_max = %g, %g", dx_max, dy_max);
 
-                /* convert internal units to displayed units */
-                gl_debug (DEBUG_EDITOR, "internal dx_max,dy_max = %g, %g", dx_max, dy_max);
-                dx_max *= editor->priv->units_per_point;
-                dy_max *= editor->priv->units_per_point;
-                gl_debug (DEBUG_EDITOR, "display dx_max,dy_max = %g, %g", dx_max, dy_max);
+        /* Set widget values */
+        tmp = gtk_spin_button_get_value (GTK_SPIN_BUTTON (editor->priv->lsize_r_spin));
+        gtk_spin_button_set_range (GTK_SPIN_BUTTON (editor->priv->lsize_r_spin),
+                                   0.0, 2.0*LENGTH (dx_max, dy_max));
+        gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->lsize_r_spin), tmp);
 
-                /* Set widget values */
-                tmp = gtk_spin_button_get_value (GTK_SPIN_BUTTON (editor->priv->lsize_r_spin));
-                gtk_spin_button_set_range (GTK_SPIN_BUTTON (editor->priv->lsize_r_spin),
-                                           0.0, 2.0*LENGTH (dx_max, dy_max));
-                gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->lsize_r_spin), tmp);
 
-                editor->priv->stop_signals = FALSE;
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->lsize_r_spin),
+                                           gl_object_editor_size_changed_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->lsize_theta_spin),
+                                           gl_object_editor_size_changed_cb, editor);
 
-        }
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Query line size.                                                          */
 /*****************************************************************************/
@@ -216,31 +234,37 @@ gl_object_editor_get_lsize (glObjectEditor      *editor,
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* PRIVATE. Prefs changed callback.  Update units related items.            */
 /*****************************************************************************/
 void
 lsize_prefs_changed_cb (glObjectEditor *editor)
 {
+        lglUnits      units;
        const gchar  *units_string;
        gdouble       climb_rate;
        gint          digits;
 
        gl_debug (DEBUG_EDITOR, "START");
 
+
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->lsize_r_spin),
+                                         gl_object_editor_size_changed_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->lsize_theta_spin),
+                                         gl_object_editor_size_changed_cb, editor);
+
+
         /* Get new configuration information */
-        units_string = gl_prefs_get_units_string ();
-        editor->priv->units_per_point = gl_prefs_get_units_per_point ();
-        climb_rate = gl_prefs_get_units_step_size ();
-        digits = gl_prefs_get_units_precision ();
+        units = gl_prefs_model_get_units (gl_prefs);
+        units_string = lgl_units_get_name (units);
+        editor->priv->units_per_point = lgl_units_get_units_per_point (units);
+        climb_rate = gl_units_util_get_step_size (units);
+        digits = gl_units_util_get_precision (units);
 
        /* Update characteristics of r_spin */
-        editor->priv->stop_signals = TRUE;
-       gtk_spin_button_set_digits (GTK_SPIN_BUTTON(editor->priv->lsize_r_spin),
-                                   digits);
-       gtk_spin_button_set_increments (GTK_SPIN_BUTTON(editor->priv->lsize_r_spin),
-                                       climb_rate, 10.0*climb_rate);
-        editor->priv->stop_signals = FALSE;
+       gtk_spin_button_set_digits (GTK_SPIN_BUTTON(editor->priv->lsize_r_spin), digits);
+       gtk_spin_button_set_increments (GTK_SPIN_BUTTON(editor->priv->lsize_r_spin), climb_rate, 0);
 
        /* Update r_units_label */
        gtk_label_set_text (GTK_LABEL(editor->priv->lsize_r_units_label),
@@ -254,6 +278,23 @@ lsize_prefs_changed_cb (glObjectEditor *editor)
                                        editor->priv->dx_max,
                                        editor->priv->dy_max);
 
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->lsize_r_spin),
+                                           gl_object_editor_size_changed_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->lsize_theta_spin),
+                                           gl_object_editor_size_changed_cb, editor);
+
+
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index e72036e07d6f42ec1634dd7e2fa9b134767a1cce..43e7802495e140b966d7d522f193f1f0c6cf74af 100644 (file)
@@ -1,53 +1,55 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  object-editor.c:  object properties editor module
+ *  object-editor-position-page.c
+ *  Copyright (C) 2003-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "object-editor.h"
 
 #include <glib/gi18n.h>
-#include <gtk/gtklabel.h>
-#include <gtk/gtkspinbutton.h>
+#include <gtk/gtk.h>
 #include <math.h>
 
 #include "prefs.h"
+#include "builder-util.h"
+#include "units-util.h"
 
 #include "object-editor-private.h"
 
 #include "debug.h"
 
+
 /*===========================================*/
 /* Private macros                            */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private data types                        */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private globals                           */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Local function prototypes                 */
 /*===========================================*/
@@ -59,6 +61,7 @@
 void
 gl_object_editor_prepare_position_page (glObjectEditor *editor)
 {
+        lglUnits      units;
        const gchar  *units_string;
        gdouble       climb_rate;
        gint          digits;
@@ -66,22 +69,20 @@ gl_object_editor_prepare_position_page (glObjectEditor *editor)
        gl_debug (DEBUG_EDITOR, "START");
 
        /* Extract widgets from XML tree. */
-       editor->priv->pos_page_vbox = glade_xml_get_widget (editor->priv->gui,
-                                                             "pos_page_vbox");
-       editor->priv->pos_x_spin    = glade_xml_get_widget (editor->priv->gui,
-                                                             "pos_x_spin");
-       editor->priv->pos_y_spin    = glade_xml_get_widget (editor->priv->gui,
-                                                             "pos_y_spin");
-       editor->priv->pos_x_units_label = glade_xml_get_widget (editor->priv->gui,
-                                                                 "pos_x_units_label");
-       editor->priv->pos_y_units_label = glade_xml_get_widget (editor->priv->gui,
-                                                                 "pos_y_units_label");
+        gl_builder_util_get_widgets (editor->priv->builder,
+                                     "pos_page_vbox",     &editor->priv->pos_page_vbox,
+                                     "pos_x_spin",        &editor->priv->pos_x_spin,
+                                     "pos_y_spin",        &editor->priv->pos_y_spin,
+                                     "pos_x_units_label", &editor->priv->pos_x_units_label,
+                                     "pos_y_units_label", &editor->priv->pos_y_units_label,
+                                     NULL);
 
        /* Get configuration information */
-       units_string = gl_prefs_get_units_string ();
-       editor->priv->units_per_point = gl_prefs_get_units_per_point ();
-       climb_rate = gl_prefs_get_units_step_size ();
-       digits = gl_prefs_get_units_precision ();
+        units = gl_prefs_model_get_units (gl_prefs);
+       units_string = lgl_units_get_name (units);
+       editor->priv->units_per_point = lgl_units_get_units_per_point (units);
+       climb_rate = gl_units_util_get_step_size (units);
+       digits = gl_units_util_get_precision (units);
 
        /* Modify widgets based on configuration */
        gtk_spin_button_set_digits (GTK_SPIN_BUTTON(editor->priv->pos_x_spin), digits);
@@ -98,17 +99,18 @@ gl_object_editor_prepare_position_page (glObjectEditor *editor)
 
        /* Connect signals */
        g_signal_connect_swapped (G_OBJECT (editor->priv->pos_x_spin),
-                                 "changed",
+                                 "value-changed",
                                  G_CALLBACK (gl_object_editor_changed_cb),
                                  G_OBJECT (editor));
        g_signal_connect_swapped (G_OBJECT (editor->priv->pos_y_spin),
-                                 "changed",
+                                 "value-changed",
                                  G_CALLBACK (gl_object_editor_changed_cb),
                                  G_OBJECT (editor));
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Set position.                                                             */
 /*****************************************************************************/
@@ -119,7 +121,12 @@ gl_object_editor_set_position (glObjectEditor      *editor,
 {
        gl_debug (DEBUG_EDITOR, "START");
 
-        editor->priv->stop_signals = TRUE;
+
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->pos_x_spin),
+                                         gl_object_editor_changed_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->pos_y_spin),
+                                         gl_object_editor_changed_cb, editor);
+
 
        /* save a copy in internal units */
        editor->priv->x = x;
@@ -135,11 +142,17 @@ gl_object_editor_set_position (glObjectEditor      *editor,
        gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->pos_x_spin), x);
        gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->pos_y_spin), y);
 
-        editor->priv->stop_signals = FALSE;
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->pos_x_spin),
+                                           gl_object_editor_changed_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->pos_y_spin),
+                                           gl_object_editor_changed_cb, editor);
+
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Set maximum position.                                                     */
 /*****************************************************************************/
@@ -152,7 +165,12 @@ gl_object_editor_set_max_position (glObjectEditor      *editor,
 
        gl_debug (DEBUG_EDITOR, "START");
 
-        editor->priv->stop_signals = TRUE;
+
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->pos_x_spin),
+                                         gl_object_editor_changed_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->pos_y_spin),
+                                         gl_object_editor_changed_cb, editor);
+
 
        /* save a copy in internal units */
        editor->priv->x_max = x_max;
@@ -166,19 +184,23 @@ gl_object_editor_set_max_position (glObjectEditor      *editor,
 
        /* Set widget values */
        tmp = gtk_spin_button_get_value (GTK_SPIN_BUTTON (editor->priv->pos_x_spin));
-       gtk_spin_button_set_range (GTK_SPIN_BUTTON (editor->priv->pos_x_spin),
-                                  -x_max, 2.0*x_max);
+       gtk_spin_button_set_range (GTK_SPIN_BUTTON (editor->priv->pos_x_spin), -x_max, 2.0*x_max);
        gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->pos_x_spin), tmp);
        tmp = gtk_spin_button_get_value (GTK_SPIN_BUTTON (editor->priv->pos_y_spin));
-       gtk_spin_button_set_range (GTK_SPIN_BUTTON (editor->priv->pos_y_spin),
-                                  -y_max, 2.0*y_max);
+       gtk_spin_button_set_range (GTK_SPIN_BUTTON (editor->priv->pos_y_spin), -y_max, 2.0*y_max);
        gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->pos_y_spin), tmp);
 
-        editor->priv->stop_signals = FALSE;
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->pos_x_spin),
+                                           gl_object_editor_changed_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->pos_y_spin),
+                                           gl_object_editor_changed_cb, editor);
+
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Query position.                                                           */
 /*****************************************************************************/
@@ -204,35 +226,42 @@ gl_object_editor_get_position (glObjectEditor      *editor,
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* PRIVATE. Prefs changed callback.  Update units related items.            */
 /*****************************************************************************/
 void
 position_prefs_changed_cb (glObjectEditor *editor)
 {
+        lglUnits      units;
        const gchar  *units_string;
        gdouble       climb_rate;
        gint          digits;
 
        gl_debug (DEBUG_EDITOR, "START");
 
+
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->pos_x_spin),
+                                         gl_object_editor_changed_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->pos_y_spin),
+                                         gl_object_editor_changed_cb, editor);
+
+
         /* Get new configuration information */
-        units_string = gl_prefs_get_units_string ();
-        editor->priv->units_per_point = gl_prefs_get_units_per_point ();
-        climb_rate = gl_prefs_get_units_step_size ();
-        digits = gl_prefs_get_units_precision ();
+        units = gl_prefs_model_get_units (gl_prefs);
+        units_string = lgl_units_get_name (units);
+        editor->priv->units_per_point = lgl_units_get_units_per_point (units);
+        climb_rate = gl_units_util_get_step_size (units);
+        digits = gl_units_util_get_precision (units);
 
        /* Update characteristics of x_spin/y_spin */
-        editor->priv->stop_signals = TRUE;
-       gtk_spin_button_set_digits (GTK_SPIN_BUTTON(editor->priv->pos_x_spin),
-                                   digits);
-       gtk_spin_button_set_digits (GTK_SPIN_BUTTON(editor->priv->pos_y_spin),
-                                   digits);
+       gtk_spin_button_set_digits (GTK_SPIN_BUTTON(editor->priv->pos_x_spin), digits);
+       gtk_spin_button_set_digits (GTK_SPIN_BUTTON(editor->priv->pos_y_spin), digits);
        gtk_spin_button_set_increments (GTK_SPIN_BUTTON(editor->priv->pos_x_spin),
                                        climb_rate, 10.0*climb_rate);
        gtk_spin_button_set_increments (GTK_SPIN_BUTTON(editor->priv->pos_y_spin),
                                        climb_rate, 10.0*climb_rate);
-        editor->priv->stop_signals = FALSE;
+
 
        /* Update units_labels */
        gtk_label_set_text (GTK_LABEL(editor->priv->pos_x_units_label),
@@ -241,13 +270,26 @@ position_prefs_changed_cb (glObjectEditor *editor)
                            units_string);
 
        /* Update values of x_spin/y_spin */
-       gl_object_editor_set_position (editor,
-                                      editor->priv->x,
-                                      editor->priv->y);
-       gl_object_editor_set_max_position (editor,
-                                          editor->priv->x_max,
-                                          editor->priv->y_max);
+       gl_object_editor_set_position (editor, editor->priv->x, editor->priv->y);
+       gl_object_editor_set_max_position (editor, editor->priv->x_max, editor->priv->y_max);
+
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->pos_x_spin),
+                                           gl_object_editor_changed_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->pos_y_spin),
+                                           gl_object_editor_changed_cb, editor);
+
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index e83759ad45bd63a3f05f1d99b11e03957490b139..053bcdea1bee59ca95430b7c68c650904ab02090 100644 (file)
@@ -1,40 +1,38 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  object-editor-private.h:  object properties editor module private header file
+ *  object-editor-private.h
+ *  Copyright (C) 2003-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #ifndef __OBJECT_EDITOR_PRIVATE_H__
 #define __OBJECT_EDITOR_PRIVATE_H__
 
-#include <gtk/gtkwidget.h>
-#include <glade/glade-xml.h>
+#include <gtk/gtk.h>
+#include "label-barcode.h"
 
 G_BEGIN_DECLS
 
 struct _glObjectEditorPrivate {
 
-       GladeXML   *gui;
+       GtkBuilder *builder;
        GtkWidget  *editor_vbox;
 
-        glLabel    *label;
+        glLabel        *label;
+        glLabelObject  *object;
 
        gdouble     units_per_point;
 
@@ -57,6 +55,7 @@ struct _glObjectEditorPrivate {
        GtkWidget  *size_h_spin;
        GtkWidget  *size_w_units_label;
        GtkWidget  *size_h_units_label;
+       GtkWidget  *size_aspect_vbox;
        GtkWidget  *size_aspect_checkbutton;
        GtkWidget  *size_reset_image_button;
        gdouble     size_aspect_ratio;
@@ -77,7 +76,9 @@ struct _glObjectEditorPrivate {
        gdouble     dy_max;
 
        GtkWidget  *fill_page_vbox;
+       GtkWidget  *fill_color_hbox;
        GtkWidget  *fill_color_combo;
+       GtkWidget  *fill_key_hbox;
        GtkWidget  *fill_key_combo;
        GtkWidget  *fill_key_radio;
        GtkWidget  *fill_color_radio;
@@ -85,24 +86,30 @@ struct _glObjectEditorPrivate {
        GtkWidget  *line_page_vbox;
        GtkWidget  *line_width_spin;
        GtkWidget  *line_color_radio;
+       GtkWidget  *line_color_hbox;
        GtkWidget  *line_color_combo;
        GtkWidget  *line_key_radio;
+       GtkWidget  *line_key_hbox;
        GtkWidget  *line_key_combo;
 
        GtkWidget  *img_page_vbox;
        GtkWidget  *img_file_radio;
        GtkWidget  *img_key_radio;
        GtkWidget  *img_file_button;
+       GtkWidget  *img_key_hbox;
        GtkWidget  *img_key_combo;
 
        GtkWidget  *text_page_vbox;
+       GtkWidget  *text_family_hbox;
        GtkWidget  *text_family_combo;
        GtkWidget  *text_size_spin;
        GtkWidget  *text_bold_toggle;
        GtkWidget  *text_italic_toggle;
        GtkWidget  *text_color_radio;
+       GtkWidget  *text_color_hbox;
        GtkWidget  *text_color_combo;
        GtkWidget  *text_color_key_radio;
+       GtkWidget  *text_color_key_hbox;
        GtkWidget  *text_color_key_combo;
        GtkWidget  *text_left_toggle;
        GtkWidget  *text_center_toggle;
@@ -112,23 +119,29 @@ struct _glObjectEditorPrivate {
 
        GtkWidget  *edit_page_vbox;
        GtkWidget  *edit_text_view;
-       GtkWidget  *edit_key_label;
-       GtkWidget  *edit_key_combo;
+       GtkWidget  *edit_insert_field_vbox;
        GtkWidget  *edit_insert_field_button;
 
        GtkWidget  *bc_page_vbox;
+       GtkWidget  *bc_backend_combo_hbox;
+       GtkWidget  *bc_backend_combo;
+       GtkWidget  *bc_style_combo_hbox;
        GtkWidget  *bc_style_combo;
        GtkWidget  *bc_text_check;
        GtkWidget  *bc_cs_check;
        GtkWidget  *bc_color_radio;
+       GtkWidget  *bc_color_hbox;
        GtkWidget  *bc_color_combo;
        GtkWidget  *bc_key_radio;
+       GtkWidget  *bc_key_hbox;
        GtkWidget  *bc_key_combo;
+        gchar      *current_backend_id;
 
        GtkWidget  *data_page_vbox;
        GtkWidget  *data_literal_radio;
        GtkWidget  *data_key_radio;
        GtkWidget  *data_text_entry;
+       GtkWidget  *data_key_hbox;
        GtkWidget  *data_key_combo;
        GtkWidget  *data_format_label;
        GtkWidget  *data_ex_label;
@@ -145,7 +158,9 @@ struct _glObjectEditorPrivate {
        GtkWidget  *shadow_y_units_label;
        GtkWidget  *shadow_color_radio;
        GtkWidget  *shadow_key_radio;
+       GtkWidget  *shadow_color_hbox;
        GtkWidget  *shadow_color_combo;
+       GtkWidget  *shadow_key_hbox;
        GtkWidget  *shadow_key_combo;
        GtkWidget  *shadow_opacity_spin;
        gdouble     shadow_x;
@@ -153,8 +168,6 @@ struct _glObjectEditorPrivate {
        gdouble     shadow_x_max;
        gdouble     shadow_y_max;
 
-        /* Prevent recursion */
-       gboolean    stop_signals;
 };
 
 enum {
@@ -169,8 +182,7 @@ extern gint gl_object_editor_signals[LAST_SIGNAL];
 
 void gl_object_editor_prepare_position_page     (glObjectEditor        *editor);
 
-void gl_object_editor_prepare_size_page         (glObjectEditor        *editor,
-                                                glObjectEditorOption   option);
+void gl_object_editor_prepare_size_page         (glObjectEditor        *editor);
 
 void gl_object_editor_prepare_lsize_page        (glObjectEditor        *editor);
 
@@ -199,6 +211,216 @@ void size_prefs_changed_cb                      (glObjectEditor        *editor);
 void position_prefs_changed_cb                  (glObjectEditor        *editor);
 void shadow_prefs_changed_cb                    (glObjectEditor        *editor);
 
+
+/*
+ * Position Page
+ */
+void        gl_object_editor_set_position         (glObjectEditor      *editor,
+                                                  gdouble              x,
+                                                  gdouble              y);
+
+void        gl_object_editor_set_max_position     (glObjectEditor      *editor,
+                                                  gdouble              x_max,
+                                                  gdouble              y_max);
+
+void        gl_object_editor_get_position         (glObjectEditor      *editor,
+                                                  gdouble             *x,
+                                                  gdouble             *y);
+
+/*
+ * Size Page
+ */
+void        gl_object_editor_set_size             (glObjectEditor      *editor,
+                                                  gdouble              w,
+                                                  gdouble              h);
+
+void        gl_object_editor_set_max_size         (glObjectEditor      *editor,
+                                                  gdouble              w_max,
+                                                  gdouble              h_max);
+
+void        gl_object_editor_set_base_size        (glObjectEditor      *editor,
+                                                  gdouble              w_max,
+                                                  gdouble              h_max);
+
+void        gl_object_editor_get_size             (glObjectEditor      *editor,
+                                                  gdouble             *w,
+                                                  gdouble             *h);
+
+
+/*
+ * Line Size Page
+ */
+void        gl_object_editor_set_lsize            (glObjectEditor      *editor,
+                                                  gdouble              dx,
+                                                  gdouble              dy);
+
+void        gl_object_editor_set_max_lsize        (glObjectEditor      *editor,
+                                                  gdouble              dx_max,
+                                                  gdouble              dy_max);
+
+void        gl_object_editor_get_lsize            (glObjectEditor      *editor,
+                                                  gdouble             *dx,
+                                                  gdouble             *dy);
+
+
+/*
+ * Fill Page
+ */
+void        gl_object_editor_set_fill_color       (glObjectEditor      *editor,
+                                                  gboolean             merge_flag,
+                                                  glColorNode         *color_node);
+
+glColorNode* gl_object_editor_get_fill_color      (glObjectEditor      *editor);
+
+
+/*
+ * Line/Outline Page
+ */
+void        gl_object_editor_set_line_color       (glObjectEditor      *editor,
+                                                  gboolean             merge_flag,
+                                                  glColorNode         *color_node);
+
+glColorNode* gl_object_editor_get_line_color      (glObjectEditor      *editor);
+
+void        gl_object_editor_set_line_width       (glObjectEditor      *editor,
+                                                  gdouble              width);
+
+gdouble     gl_object_editor_get_line_width       (glObjectEditor      *editor);
+
+
+/*
+ * Image Page
+ */
+void        gl_object_editor_set_image            (glObjectEditor      *editor,
+                                                  gboolean             merge_flag,
+                                                  glTextNode          *text_node);
+
+glTextNode *gl_object_editor_get_image            (glObjectEditor      *editor);
+
+
+/*
+ * Text Page
+ */
+void        gl_object_editor_set_font_family      (glObjectEditor      *editor,
+                                                  const gchar         *font_family);
+
+gchar      *gl_object_editor_get_font_family      (glObjectEditor      *editor);
+
+void        gl_object_editor_set_font_size        (glObjectEditor      *editor,
+                                                  gdouble              font_size);
+
+gdouble     gl_object_editor_get_font_size        (glObjectEditor      *editor);
+
+void        gl_object_editor_set_font_weight      (glObjectEditor      *editor,
+                                                  PangoWeight          font_weight);
+
+PangoWeight gl_object_editor_get_font_weight      (glObjectEditor      *editor);
+
+void        gl_object_editor_set_font_italic_flag (glObjectEditor      *editor,
+                                                  gboolean             font_italic_flag);
+
+gboolean    gl_object_editor_get_font_italic_flag (glObjectEditor      *editor);
+
+void        gl_object_editor_set_text_alignment   (glObjectEditor      *editor,
+                                                  PangoAlignment       text_alignment);
+
+PangoAlignment gl_object_editor_get_text_alignment (glObjectEditor      *editor);
+
+void        gl_object_editor_set_text_line_spacing (glObjectEditor      *editor,
+                                                  gdouble               text_line_spacing);
+
+gdouble     gl_object_editor_get_text_line_spacing (glObjectEditor      *editor);
+
+void        gl_object_editor_set_text_color       (glObjectEditor       *editor,
+                                                  gboolean              merge_flag,
+                                                  glColorNode          *text_color_node);
+
+glColorNode* gl_object_editor_get_text_color      (glObjectEditor      *editor);
+
+void        gl_object_editor_set_text_auto_shrink (glObjectEditor      *editor,
+                                                  gboolean             auto_shrink);
+
+gboolean    gl_object_editor_get_text_auto_shrink (glObjectEditor      *editor);
+
+
+/*
+ * Edit Text Page
+ */
+void        gl_object_editor_set_text_buffer      (glObjectEditor      *editor,
+                                                  GtkTextBuffer       *buffer);
+
+/*
+ * Barcode Page
+ */
+void        gl_object_editor_load_bc_styles        (glObjectEditor            *editor,
+                                                    const gchar               *backend_id);
+
+void        gl_object_editor_set_bc_style          (glObjectEditor            *editor,
+                                                    const glLabelBarcodeStyle *bc_style);
+
+glLabelBarcodeStyle *gl_object_editor_get_bc_style (glObjectEditor            *editor);
+
+void        gl_object_editor_set_bc_color          (glObjectEditor            *editor,
+                                                    gboolean                   merge_flag,
+                                                    glColorNode               *color_node);
+
+glColorNode* gl_object_editor_get_bc_color         (glObjectEditor            *editor);
+
+
+/*
+ * Barcode Data Page
+ */
+void        gl_object_editor_set_data             (glObjectEditor      *editor,
+                                                  gboolean             merge_flag,
+                                                  glTextNode          *text_node);
+
+glTextNode *gl_object_editor_get_data             (glObjectEditor      *editor);
+
+
+/*
+ * Shadow Page
+ */
+void        gl_object_editor_set_shadow_state     (glObjectEditor      *editor,
+                                                  gboolean             state);
+
+void        gl_object_editor_set_shadow_offset    (glObjectEditor      *editor,
+                                                  gdouble              x,
+                                                  gdouble              y);
+
+void        gl_object_editor_set_shadow_color     (glObjectEditor      *editor,
+                                                  gboolean             merge_flag,
+                                                  glColorNode         *color_node);
+
+void        gl_object_editor_set_shadow_opacity   (glObjectEditor      *editor,
+                                                  gdouble              alpha);
+
+void        gl_object_editor_set_max_shadow_offset(glObjectEditor      *editor,
+                                                  gdouble              x_max,
+                                                  gdouble              y_max);
+
+
+gboolean    gl_object_editor_get_shadow_state     (glObjectEditor      *editor);
+
+void        gl_object_editor_get_shadow_offset    (glObjectEditor      *editor,
+                                                  gdouble             *x,
+                                                  gdouble             *y);
+
+glColorNode* gl_object_editor_get_shadow_color    (glObjectEditor      *editor);
+
+gdouble     gl_object_editor_get_shadow_opacity   (glObjectEditor      *editor);
+
+
 G_END_DECLS
 
 #endif
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index bf297da5f7e4774fb22b9c3f71f08047d3430a3b..d003e963ae1bb2718a38c7497d14ab70fb4a32eb 100644 (file)
@@ -1,58 +1,58 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  object-editor.c:  object properties editor module
+ *  object-editor-shadow-page.c
+ *  Copyright (C) 2006-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2006  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "object-editor.h"
 
 #include <glib/gi18n.h>
-#include <gtk/gtktogglebutton.h>
-#include <gtk/gtklabel.h>
-#include <gtk/gtkspinbutton.h>
-#include <gtk/gtkcombobox.h>
+#include <gtk/gtk.h>
 #include <math.h>
 
 #include "prefs.h"
-#include "mygal/widget-color-combo.h"
+#include "color-combo.h"
 #include "color.h"
-#include "util.h"
+#include "field-button.h"
+#include "builder-util.h"
+#include "units-util.h"
 
 #include "object-editor-private.h"
 
 #include "debug.h"
 
+
 /*===========================================*/
 /* Private macros                            */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private data types                        */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private globals                           */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Local function prototypes                 */
 /*===========================================*/
@@ -67,6 +67,7 @@ static void shadow_color_radio_toggled_cb  (glObjectEditor        *editor);
 void
 gl_object_editor_prepare_shadow_page (glObjectEditor *editor)
 {
+        lglUnits      units;
        const gchar  *units_string;
        gdouble       climb_rate;
        gint          digits;
@@ -74,38 +75,39 @@ gl_object_editor_prepare_shadow_page (glObjectEditor *editor)
        gl_debug (DEBUG_EDITOR, "START");
 
        /* Extract widgets from XML tree. */
-       editor->priv->shadow_page_vbox
-               = glade_xml_get_widget (editor->priv->gui, "shadow_page_vbox");
-       editor->priv->shadow_enable_check
-               = glade_xml_get_widget (editor->priv->gui, "shadow_enable_check");
-       editor->priv->shadow_controls_table
-               = glade_xml_get_widget (editor->priv->gui, "shadow_controls_table");
-       editor->priv->shadow_x_spin
-               = glade_xml_get_widget (editor->priv->gui, "shadow_x_spin");
-       editor->priv->shadow_y_spin
-               = glade_xml_get_widget (editor->priv->gui, "shadow_y_spin");
-       editor->priv->shadow_x_units_label
-               = glade_xml_get_widget (editor->priv->gui, "shadow_x_units_label");
-       editor->priv->shadow_y_units_label
-               = glade_xml_get_widget (editor->priv->gui, "shadow_y_units_label");
-       editor->priv->shadow_color_radio
-               = glade_xml_get_widget (editor->priv->gui, "shadow_color_radio");       
-       editor->priv->shadow_key_radio
-               = glade_xml_get_widget (editor->priv->gui, "shadow_key_radio"); 
-       editor->priv->shadow_color_combo
-               = glade_xml_get_widget (editor->priv->gui, "shadow_color_combo");
-       editor->priv->shadow_key_combo
-               = glade_xml_get_widget (editor->priv->gui, "shadow_key_combo"); 
-       editor->priv->shadow_opacity_spin
-               = glade_xml_get_widget (editor->priv->gui, "shadow_opacity_spin");
-
-       gl_util_combo_box_add_text_model ( GTK_COMBO_BOX(editor->priv->shadow_key_combo));
+        gl_builder_util_get_widgets (editor->priv->builder,
+                                     "shadow_page_vbox",      &editor->priv->shadow_page_vbox,
+                                     "shadow_enable_check",   &editor->priv->shadow_enable_check,
+                                     "shadow_controls_table", &editor->priv->shadow_controls_table,
+                                     "shadow_x_spin",         &editor->priv->shadow_x_spin,
+                                     "shadow_y_spin",         &editor->priv->shadow_y_spin,
+                                     "shadow_x_units_label",  &editor->priv->shadow_x_units_label,
+                                     "shadow_y_units_label",  &editor->priv->shadow_y_units_label,
+                                     "shadow_color_radio",    &editor->priv->shadow_color_radio,
+                                     "shadow_key_radio",      &editor->priv->shadow_key_radio,
+                                     "shadow_color_hbox",     &editor->priv->shadow_color_hbox,
+                                     "shadow_key_hbox",       &editor->priv->shadow_key_hbox,
+                                     "shadow_opacity_spin",   &editor->priv->shadow_opacity_spin,
+                                     NULL);
+
+       editor->priv->shadow_color_combo = gl_color_combo_new (_("Default"),
+                                                               GL_COLOR_SHADOW_DEFAULT,
+                                                               GL_COLOR_SHADOW_DEFAULT);
+        gtk_container_add (GTK_CONTAINER (editor->priv->shadow_color_hbox),
+                           editor->priv->shadow_color_combo);
+
+        editor->priv->shadow_key_combo = gl_field_button_new (NULL);
+        gtk_box_pack_start (GTK_BOX (editor->priv->shadow_key_hbox),
+                            editor->priv->shadow_key_combo,
+                            TRUE, TRUE, 0);
+
 
        /* Get configuration information */
-       units_string = gl_prefs_get_units_string ();
-       editor->priv->units_per_point = gl_prefs_get_units_per_point ();
-       climb_rate = gl_prefs_get_units_step_size ();
-       digits = gl_prefs_get_units_precision ();
+        units = gl_prefs_model_get_units (gl_prefs);
+       units_string = lgl_units_get_name (units);
+       editor->priv->units_per_point = lgl_units_get_units_per_point (units);
+       climb_rate = gl_units_util_get_step_size (units);
+       digits = gl_units_util_get_precision (units);
 
        /* Modify widgets based on configuration */
        gtk_spin_button_set_digits (GTK_SPIN_BUTTON(editor->priv->shadow_x_spin), digits);
@@ -126,11 +128,11 @@ gl_object_editor_prepare_shadow_page (glObjectEditor *editor)
                                  G_CALLBACK (shadow_enable_check_toggled_cb),
                                  G_OBJECT (editor));                             
        g_signal_connect_swapped (G_OBJECT (editor->priv->shadow_x_spin),
-                                 "changed",
+                                 "value-changed",
                                  G_CALLBACK (gl_object_editor_changed_cb),
                                  G_OBJECT (editor));
        g_signal_connect_swapped (G_OBJECT (editor->priv->shadow_y_spin),
-                                 "changed",
+                                 "value-changed",
                                  G_CALLBACK (gl_object_editor_changed_cb),
                                  G_OBJECT (editor));
        g_signal_connect_swapped (G_OBJECT (editor->priv->shadow_color_combo),
@@ -150,13 +152,14 @@ gl_object_editor_prepare_shadow_page (glObjectEditor *editor)
                                  G_CALLBACK (shadow_color_radio_toggled_cb),
                                  G_OBJECT (editor));                             
        g_signal_connect_swapped (G_OBJECT (editor->priv->shadow_opacity_spin),
-                                 "changed",
+                                 "value-changed",
                                  G_CALLBACK (gl_object_editor_changed_cb),
                                  G_OBJECT (editor));
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Set shadow parameters.                                                    */
 /*****************************************************************************/
@@ -166,17 +169,23 @@ gl_object_editor_set_shadow_state (glObjectEditor      *editor,
 {
        gl_debug (DEBUG_EDITOR, "START");
 
-        editor->priv->stop_signals = TRUE;
 
-       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->shadow_enable_check),
-                                      state);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->shadow_enable_check),
+                                         shadow_enable_check_toggled_cb, editor);
+
+
+       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->shadow_enable_check), state);
         gtk_widget_set_sensitive (editor->priv->shadow_controls_table, state);
 
-        editor->priv->stop_signals = FALSE;
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->shadow_enable_check),
+                                           shadow_enable_check_toggled_cb, editor);
+
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 void
 gl_object_editor_set_shadow_offset (glObjectEditor      *editor,
                                    gdouble              x,
@@ -184,7 +193,12 @@ gl_object_editor_set_shadow_offset (glObjectEditor      *editor,
 {
        gl_debug (DEBUG_EDITOR, "START");
 
-        editor->priv->stop_signals = TRUE;
+
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->shadow_x_spin),
+                                         gl_object_editor_changed_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->shadow_y_spin),
+                                         gl_object_editor_changed_cb, editor);
+
 
        /* save a copy in internal units */
        editor->priv->shadow_x = x;
@@ -200,70 +214,101 @@ gl_object_editor_set_shadow_offset (glObjectEditor      *editor,
        gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->shadow_x_spin), x);
        gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->shadow_y_spin), y);
 
-        editor->priv->stop_signals = FALSE;
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->shadow_x_spin),
+                                           gl_object_editor_changed_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->shadow_y_spin),
+                                           gl_object_editor_changed_cb, editor);
+
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 void
 gl_object_editor_set_shadow_color (glObjectEditor      *editor,
                                   gboolean             merge_flag,
                                   glColorNode         *color_node)
 {
-       GdkColor *gdk_color;
-
        gl_debug (DEBUG_EDITOR, "START");
 
-        editor->priv->stop_signals = TRUE;
-
-       gtk_widget_set_sensitive (editor->priv->shadow_key_radio, merge_flag);
+        if (color_node == NULL)
+        {
+                return;
+        }
 
-       if ( color_node->color == GL_COLOR_NONE ) {
 
-               color_combo_set_color_to_default (COLOR_COMBO(editor->priv->shadow_color_combo));
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->shadow_color_combo),
+                                         gl_object_editor_changed_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->shadow_color_radio),
+                                         shadow_color_radio_toggled_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->shadow_key_radio),
+                                         shadow_color_radio_toggled_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->shadow_key_combo),
+                                         gl_object_editor_changed_cb, editor);
 
-       } else {
 
-               gdk_color = gl_color_to_gdk_color (color_node->color);
-               color_combo_set_color (COLOR_COMBO(editor->priv->shadow_color_combo),
-                                          gdk_color);
-               g_free (gdk_color);
+       gtk_widget_set_sensitive (editor->priv->shadow_key_radio, merge_flag);
 
+       if ( color_node->color == GL_COLOR_NONE )
+        {
+               gl_color_combo_set_to_default (GL_COLOR_COMBO(editor->priv->shadow_color_combo));
+       }
+        else
+        {
+               gl_color_combo_set_color (GL_COLOR_COMBO(editor->priv->shadow_color_combo),
+                                          color_node->color);
        }
        
-       if (!color_node->field_flag || !merge_flag) {
-               gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
-                                                 (editor->priv->shadow_color_radio), TRUE); 
+       if (!color_node->field_flag || !merge_flag)
+        {
+               gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->shadow_color_radio), TRUE); 
                gtk_widget_set_sensitive (editor->priv->shadow_color_combo, TRUE);
                gtk_widget_set_sensitive (editor->priv->shadow_key_combo, FALSE);
                
-       } else {
-               gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
-                                                 (editor->priv->shadow_key_radio), TRUE); 
+       }
+        else
+        {
+               gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->shadow_key_radio), TRUE); 
                gtk_widget_set_sensitive (editor->priv->shadow_color_combo, FALSE);
                gtk_widget_set_sensitive (editor->priv->shadow_key_combo, TRUE);
                
-               gl_util_combo_box_set_active_text (GTK_COMBO_BOX (editor->priv->shadow_key_combo),
-                                                  color_node->key);
+               gl_field_button_set_key (GL_FIELD_BUTTON (editor->priv->shadow_key_combo),
+                                         color_node->key);
        }
        
-        editor->priv->stop_signals = FALSE;
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->shadow_color_combo),
+                                           gl_object_editor_changed_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->shadow_color_radio),
+                                           shadow_color_radio_toggled_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->shadow_key_radio),
+                                           shadow_color_radio_toggled_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->shadow_key_combo),
+                                           gl_object_editor_changed_cb, editor);
+
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 void
 gl_object_editor_set_shadow_opacity (glObjectEditor      *editor,
                                     gdouble              alpha)
 {
        gl_debug (DEBUG_EDITOR, "START");
 
-        editor->priv->stop_signals = TRUE;
 
-       gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->shadow_opacity_spin),
-                                  alpha * 100.0);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->shadow_opacity_spin),
+                                         gl_object_editor_changed_cb, editor);
+
+
+       gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->shadow_opacity_spin), alpha * 100.0);
+
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->shadow_opacity_spin),
+                                           gl_object_editor_changed_cb, editor);
 
-        editor->priv->stop_signals = FALSE;
 
        gl_debug (DEBUG_EDITOR, "END");
 }
@@ -281,38 +326,42 @@ gl_object_editor_set_max_shadow_offset (glObjectEditor      *editor,
 
        gl_debug (DEBUG_EDITOR, "START");
 
-        if (editor->priv->shadow_page_vbox)
-        {
 
-                editor->priv->stop_signals = TRUE;
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->shadow_x_spin),
+                                         gl_object_editor_changed_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->shadow_y_spin),
+                                         gl_object_editor_changed_cb, editor);
 
-                /* save a copy in internal units */
-                editor->priv->shadow_x_max = x_max;
-                editor->priv->shadow_y_max = y_max;
 
-                /* convert internal units to displayed units */
-                gl_debug (DEBUG_EDITOR, "internal x_max,y_max = %g, %g", x_max, y_max);
-                x_max *= editor->priv->units_per_point;
-                y_max *= editor->priv->units_per_point;
-                gl_debug (DEBUG_EDITOR, "display x_max,y_max = %g, %g", x_max, y_max);
+        /* save a copy in internal units */
+        editor->priv->shadow_x_max = x_max;
+        editor->priv->shadow_y_max = y_max;
 
-                /* Set widget values */
-                tmp = gtk_spin_button_get_value (GTK_SPIN_BUTTON (editor->priv->shadow_x_spin));
-                gtk_spin_button_set_range (GTK_SPIN_BUTTON (editor->priv->shadow_x_spin),
-                                           -x_max, x_max);
-                gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->shadow_x_spin), tmp);
-                tmp = gtk_spin_button_get_value (GTK_SPIN_BUTTON (editor->priv->shadow_y_spin));
-                gtk_spin_button_set_range (GTK_SPIN_BUTTON (editor->priv->shadow_y_spin),
-                                           -y_max, y_max);
-                gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->shadow_y_spin), tmp);
+        /* convert internal units to displayed units */
+        gl_debug (DEBUG_EDITOR, "internal x_max,y_max = %g, %g", x_max, y_max);
+        x_max *= editor->priv->units_per_point;
+        y_max *= editor->priv->units_per_point;
+        gl_debug (DEBUG_EDITOR, "display x_max,y_max = %g, %g", x_max, y_max);
 
-                editor->priv->stop_signals = FALSE;
+        /* Set widget values */
+        tmp = gtk_spin_button_get_value (GTK_SPIN_BUTTON (editor->priv->shadow_x_spin));
+        gtk_spin_button_set_range (GTK_SPIN_BUTTON (editor->priv->shadow_x_spin), -x_max, x_max);
+        gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->shadow_x_spin), tmp);
+        tmp = gtk_spin_button_get_value (GTK_SPIN_BUTTON (editor->priv->shadow_y_spin));
+        gtk_spin_button_set_range (GTK_SPIN_BUTTON (editor->priv->shadow_y_spin), -y_max, y_max);
+        gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->shadow_y_spin), tmp);
+
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->shadow_x_spin),
+                                           gl_object_editor_changed_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->shadow_y_spin),
+                                           gl_object_editor_changed_cb, editor);
 
-        }
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Query shadow parameters.                                                  */
 /*****************************************************************************/
@@ -330,6 +379,7 @@ gl_object_editor_get_shadow_state (glObjectEditor      *editor)
        return state;
 }
 
+
 void
 gl_object_editor_get_shadow_offset (glObjectEditor      *editor,
                                    gdouble             *x,
@@ -352,10 +402,11 @@ gl_object_editor_get_shadow_offset (glObjectEditor      *editor,
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 glColorNode*
 gl_object_editor_get_shadow_color (glObjectEditor      *editor)
 {
-        GdkColor    *gdk_color;
+        guint        color;
         gboolean     is_default;
        glColorNode *color_node;
  
@@ -366,16 +417,16 @@ gl_object_editor_get_shadow_color (glObjectEditor      *editor)
        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->shadow_key_radio))) {
                color_node->field_flag = TRUE;
                color_node->key = 
-                       gtk_combo_box_get_active_text (GTK_COMBO_BOX (editor->priv->shadow_key_combo));
-    } else {
+                       gl_field_button_get_key (GL_FIELD_BUTTON (editor->priv->shadow_key_combo));
+        } else {
                color_node->field_flag = FALSE;
                color_node->key = NULL;
-               gdk_color = color_combo_get_color (COLOR_COMBO(editor->priv->shadow_color_combo),
-                                           &is_default);
+               color = gl_color_combo_get_color (GL_COLOR_COMBO(editor->priv->shadow_color_combo),
+                                                  &is_default);
 
                if (!is_default) {
-               color_node->color = gl_color_from_gdk_color (gdk_color);
-        }
+                        color_node->color = color;
+                }
        }
 
        gl_debug (DEBUG_EDITOR, "END");
@@ -383,6 +434,7 @@ gl_object_editor_get_shadow_color (glObjectEditor      *editor)
        return color_node;
 }
 
+
 gdouble
 gl_object_editor_get_shadow_opacity (glObjectEditor      *editor)
 {
@@ -404,20 +456,28 @@ gl_object_editor_get_shadow_opacity (glObjectEditor      *editor)
 void
 shadow_prefs_changed_cb (glObjectEditor *editor)
 {
+        lglUnits      units;
        const gchar  *units_string;
        gdouble       climb_rate;
        gint          digits;
 
        gl_debug (DEBUG_EDITOR, "START");
 
+
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->shadow_x_spin),
+                                         gl_object_editor_changed_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->shadow_y_spin),
+                                         gl_object_editor_changed_cb, editor);
+
+
         /* Get new configuration information */
-        units_string = gl_prefs_get_units_string ();
-        editor->priv->units_per_point = gl_prefs_get_units_per_point ();
-        climb_rate = gl_prefs_get_units_step_size ();
-        digits = gl_prefs_get_units_precision ();
+        units = gl_prefs_model_get_units (gl_prefs);
+        units_string = lgl_units_get_name (units);
+        editor->priv->units_per_point = lgl_units_get_units_per_point (units);
+        climb_rate = gl_units_util_get_step_size (units);
+        digits = gl_units_util_get_precision (units);
 
        /* Update characteristics of x_spin/y_spin */
-        editor->priv->stop_signals = TRUE;
        gtk_spin_button_set_digits (GTK_SPIN_BUTTON(editor->priv->shadow_x_spin),
                                    digits);
        gtk_spin_button_set_digits (GTK_SPIN_BUTTON(editor->priv->shadow_y_spin),
@@ -426,7 +486,6 @@ shadow_prefs_changed_cb (glObjectEditor *editor)
                                        climb_rate, 10.0*climb_rate);
        gtk_spin_button_set_increments (GTK_SPIN_BUTTON(editor->priv->shadow_y_spin),
                                        climb_rate, 10.0*climb_rate);
-        editor->priv->stop_signals = FALSE;
 
        /* Update units_labels */
        gtk_label_set_text (GTK_LABEL(editor->priv->shadow_x_units_label),
@@ -442,9 +501,17 @@ shadow_prefs_changed_cb (glObjectEditor *editor)
                                                editor->priv->shadow_x_max,
                                                editor->priv->shadow_y_max);
 
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->shadow_x_spin),
+                                           gl_object_editor_changed_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->shadow_y_spin),
+                                           gl_object_editor_changed_cb, editor);
+
+
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  shadow enable check callback.                                  */
 /*--------------------------------------------------------------------------*/
@@ -453,16 +520,13 @@ shadow_enable_check_toggled_cb (glObjectEditor *editor)
 {
        gboolean state;
 
-        if (editor->priv->stop_signals) return;
-
         gl_debug (DEBUG_EDITOR, "START");
 
        state = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->shadow_enable_check));
 
         gtk_widget_set_sensitive (editor->priv->shadow_controls_table, state);
 
-        /* Emit our "changed" signal */
-        g_signal_emit (G_OBJECT (editor), gl_object_editor_signals[CHANGED], 0);
+        gl_object_editor_changed_cb (editor);
 
         gl_debug (DEBUG_EDITOR, "END");
 }
@@ -474,8 +538,6 @@ shadow_enable_check_toggled_cb (glObjectEditor *editor)
 static void
 shadow_color_radio_toggled_cb (glObjectEditor *editor)
 {
-        if (editor->priv->stop_signals) return;
-
         gl_debug (DEBUG_EDITOR, "START");
        
        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->shadow_color_radio))) {
@@ -487,8 +549,18 @@ shadow_color_radio_toggled_cb (glObjectEditor *editor)
                
        }
  
-        /* Emit our "changed" signal */
-        g_signal_emit (G_OBJECT (editor), gl_object_editor_signals[CHANGED], 0);
+        gl_object_editor_changed_cb (editor);
  
         gl_debug (DEBUG_EDITOR, "END");
 }
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 58cec07498852ebe583ba049defcf13d05988eaf..ce7e6d521190b39a422f7c211960e9ea92d42832 100644 (file)
@@ -1,54 +1,56 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  object-editor.c:  object properties editor module
+ *  object-editor-size-page.c
+ *  Copyright (C) 2003-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "object-editor.h"
 
 #include <glib/gi18n.h>
-#include <gtk/gtklabel.h>
-#include <gtk/gtkspinbutton.h>
+#include <gtk/gtk.h>
 #include <math.h>
 
 #include "prefs.h"
 #include "wdgt-chain-button.h"
+#include "builder-util.h"
+#include "units-util.h"
 
 #include "object-editor-private.h"
 
 #include "debug.h"
 
+
 /*===========================================*/
 /* Private macros                            */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private data types                        */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private globals                           */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Local function prototypes                 */
 /*===========================================*/
@@ -63,9 +65,9 @@ static void h_spin_cb                           (glObjectEditor        *editor);
 /* PRIVATE.  Prepare size page.                                             */
 /*--------------------------------------------------------------------------*/
 void
-gl_object_editor_prepare_size_page (glObjectEditor       *editor,
-                                   glObjectEditorOption  option)
+gl_object_editor_prepare_size_page (glObjectEditor       *editor)
 {
+        lglUnits      units;
        const gchar  *units_string;
        gdouble       climb_rate;
        gint          digits;
@@ -73,26 +75,31 @@ gl_object_editor_prepare_size_page (glObjectEditor       *editor,
        gl_debug (DEBUG_EDITOR, "START");
 
        /* Extract widgets from XML tree. */
-       editor->priv->size_page_vbox =
-               glade_xml_get_widget (editor->priv->gui, "size_page_vbox");
-       editor->priv->size_w_spin =
-               glade_xml_get_widget (editor->priv->gui, "size_w_spin");
-       editor->priv->size_h_spin =
-               glade_xml_get_widget (editor->priv->gui, "size_h_spin");
-       editor->priv->size_w_units_label =
-               glade_xml_get_widget (editor->priv->gui, "size_w_units_label");
-       editor->priv->size_h_units_label =
-               glade_xml_get_widget (editor->priv->gui, "size_h_units_label");
-       editor->priv->size_aspect_checkbutton =
-               glade_xml_get_widget (editor->priv->gui, "size_aspect_checkbutton");
-       editor->priv->size_reset_image_button =
-               glade_xml_get_widget (editor->priv->gui, "size_reset_image_button");
+        gl_builder_util_get_widgets (editor->priv->builder,
+                                     "size_page_vbox",          &editor->priv->size_page_vbox,
+                                     "size_w_spin",             &editor->priv->size_w_spin,
+                                     "size_h_spin",             &editor->priv->size_h_spin,
+                                     "size_w_units_label",      &editor->priv->size_w_units_label,
+                                     "size_h_units_label",      &editor->priv->size_h_units_label,
+                                     "size_aspect_vbox",        &editor->priv->size_aspect_vbox,
+                                     "size_reset_image_button", &editor->priv->size_reset_image_button,
+                                     NULL);
+
+       editor->priv->size_aspect_checkbutton = gl_wdgt_chain_button_new (GL_WDGT_CHAIN_RIGHT);
+        gtk_widget_set_tooltip_text (editor->priv->size_aspect_checkbutton, _("Lock aspect ratio."));
+       gl_wdgt_chain_button_set_active (GL_WDGT_CHAIN_BUTTON(editor->priv->size_aspect_checkbutton),
+                                         TRUE);
+        gtk_box_pack_start (GTK_BOX (editor->priv->size_aspect_vbox),
+                            editor->priv->size_aspect_checkbutton,
+                            TRUE, TRUE, 0);
+
 
        /* Get configuration information */
-       units_string = gl_prefs_get_units_string ();
-       editor->priv->units_per_point = gl_prefs_get_units_per_point ();
-       climb_rate = gl_prefs_get_units_step_size ();
-       digits = gl_prefs_get_units_precision ();
+        units = gl_prefs_model_get_units (gl_prefs);
+       units_string = lgl_units_get_name (units);
+       editor->priv->units_per_point = lgl_units_get_units_per_point (units);
+       climb_rate = gl_units_util_get_step_size (units);
+       digits = gl_units_util_get_precision (units);
 
        /* Modify widgets based on configuration */
        gtk_spin_button_set_digits (GTK_SPIN_BUTTON(editor->priv->size_w_spin), digits);
@@ -104,11 +111,6 @@ gl_object_editor_prepare_size_page (glObjectEditor       *editor,
                                        climb_rate, 10.0*climb_rate);
        gtk_label_set_text (GTK_LABEL(editor->priv->size_h_units_label), units_string);
 
-       /* Un-hide */
-       gtk_widget_show_all (editor->priv->size_page_vbox);
-       if (option != GL_OBJECT_EDITOR_SIZE_IMAGE_PAGE) {
-               gtk_widget_hide (editor->priv->size_reset_image_button);
-       }
 
        /* Connect signals */
        g_signal_connect_swapped (G_OBJECT (editor->priv->size_aspect_checkbutton),
@@ -116,24 +118,22 @@ gl_object_editor_prepare_size_page (glObjectEditor       *editor,
                                  G_CALLBACK (aspect_toggle_cb),
                                  G_OBJECT (editor));
        g_signal_connect_swapped (G_OBJECT (editor->priv->size_w_spin),
-                                 "changed",
+                                 "value-changed",
                                  G_CALLBACK (w_spin_cb),
                                  G_OBJECT (editor));
        g_signal_connect_swapped (G_OBJECT (editor->priv->size_h_spin),
-                                 "changed",
+                                 "value-changed",
                                  G_CALLBACK (h_spin_cb),
                                  G_OBJECT (editor));
-
-       if (option == GL_OBJECT_EDITOR_SIZE_IMAGE_PAGE) {
-               g_signal_connect_swapped (G_OBJECT (editor->priv->size_reset_image_button),
-                                         "clicked",
-                                         G_CALLBACK (size_reset_cb),
-                                         G_OBJECT (editor));
-       }
+        g_signal_connect_swapped (G_OBJECT (editor->priv->size_reset_image_button),
+                                  "clicked",
+                                  G_CALLBACK (size_reset_cb),
+                                  G_OBJECT (editor));
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Maintain aspect ratio checkbox callback.                       */
 /*--------------------------------------------------------------------------*/
@@ -143,8 +143,6 @@ aspect_toggle_cb (glObjectEditor *editor)
         glWdgtChainButton *toggle;
        gdouble            w, h;
 
-        if (editor->priv->stop_signals) return;
-
        gl_debug (DEBUG_EDITOR, "START");
 
        toggle = GL_WDGT_CHAIN_BUTTON (editor->priv->size_aspect_checkbutton);
@@ -161,6 +159,7 @@ aspect_toggle_cb (glObjectEditor *editor)
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  W spin button changed callback.                                */
 /*--------------------------------------------------------------------------*/
@@ -170,8 +169,6 @@ w_spin_cb (glObjectEditor *editor)
        gdouble            w, h;
         glWdgtChainButton *toggle;
 
-        if (editor->priv->stop_signals) return;
-
        gl_debug (DEBUG_EDITOR, "START");
 
        toggle = GL_WDGT_CHAIN_BUTTON (editor->priv->size_aspect_checkbutton);
@@ -183,18 +180,17 @@ w_spin_cb (glObjectEditor *editor)
                 h = w * editor->priv->size_aspect_ratio;
                                                                                 
                 /* Update our sibling control, blocking recursion. */
-                editor->priv->stop_signals = TRUE;
+                g_signal_handlers_block_by_func (G_OBJECT (editor->priv->size_h_spin), h_spin_cb, editor);
                 gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->size_h_spin), h);
-                editor->priv->stop_signals = FALSE;
+                g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->size_h_spin), h_spin_cb, editor);
         }
                                                                                 
-        /* Emit our "changed" signal */
-        g_signal_emit (G_OBJECT (editor), gl_object_editor_signals[CHANGED], 0);
-        g_signal_emit (G_OBJECT (editor), gl_object_editor_signals[SIZE_CHANGED], 0);
+        gl_object_editor_size_changed_cb (editor);
                                                                                 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  H spin button changed callback.                                */
 /*--------------------------------------------------------------------------*/
@@ -204,8 +200,6 @@ h_spin_cb (glObjectEditor *editor)
        gdouble            w, h;
         glWdgtChainButton *toggle;
 
-        if (editor->priv->stop_signals) return;
-
        gl_debug (DEBUG_EDITOR, "START");
 
         toggle = GL_WDGT_CHAIN_BUTTON (editor->priv->size_aspect_checkbutton);
@@ -217,18 +211,17 @@ h_spin_cb (glObjectEditor *editor)
                 w = h / editor->priv->size_aspect_ratio;
                                                                                 
                 /* Update our sibling control, blocking recursion. */
-                editor->priv->stop_signals = TRUE;
+                g_signal_handlers_block_by_func (G_OBJECT (editor->priv->size_w_spin), w_spin_cb, editor);
                 gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->size_w_spin), w);
-                editor->priv->stop_signals = FALSE;
+                g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->size_w_spin), w_spin_cb, editor);
         }
                                                                                 
-        /* Emit our "changed" signal */
-        g_signal_emit (G_OBJECT (editor), gl_object_editor_signals[CHANGED], 0);
-        g_signal_emit (G_OBJECT (editor), gl_object_editor_signals[SIZE_CHANGED], 0);
+        gl_object_editor_size_changed_cb (editor);
                                                                                 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Reset image size callback.                                     */
 /*--------------------------------------------------------------------------*/
@@ -239,11 +232,12 @@ size_reset_cb (glObjectEditor *editor)
        gdouble w_max, h_max, wh_max;
        gdouble aspect_ratio;
 
-        if (editor->priv->stop_signals) return;
-
        gl_debug (DEBUG_EDITOR, "START");
 
-        editor->priv->stop_signals = TRUE;
+
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->size_w_spin), w_spin_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->size_h_spin), h_spin_cb, editor);
+
 
        w_base = editor->priv->w_base;
        h_base = editor->priv->h_base;
@@ -274,26 +268,31 @@ size_reset_cb (glObjectEditor *editor)
        gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->size_h_spin),
                                   h_base);
 
-        /* Emit our "changed" signal */
-        g_signal_emit (G_OBJECT (editor), gl_object_editor_signals[CHANGED], 0);
-        g_signal_emit (G_OBJECT (editor), gl_object_editor_signals[SIZE_CHANGED], 0);
 
-        editor->priv->stop_signals = FALSE;
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->size_w_spin), w_spin_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->size_h_spin), h_spin_cb, editor);
+
+
+        gl_object_editor_size_changed_cb (editor);
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Set size.                                                                 */
 /*****************************************************************************/
 void
 gl_object_editor_set_size (glObjectEditor      *editor,
-                            gdouble                w,
-                            gdouble                h)
+                           gdouble              w,
+                           gdouble              h)
 {
        gl_debug (DEBUG_EDITOR, "START");
 
-        editor->priv->stop_signals = TRUE;
+
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->size_w_spin), w_spin_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->size_h_spin), h_spin_cb, editor);
+
 
        /* save a copy in internal units */
        editor->priv->w = w;
@@ -312,11 +311,15 @@ gl_object_editor_set_size (glObjectEditor      *editor,
        /* Update aspect ratio */
        editor->priv->size_aspect_ratio = h / w;
 
-        editor->priv->stop_signals = FALSE;
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->size_w_spin), w_spin_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->size_h_spin), h_spin_cb, editor);
+
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Set maximum size.                                                         */
 /*****************************************************************************/
@@ -330,39 +333,41 @@ gl_object_editor_set_max_size (glObjectEditor      *editor,
 
        gl_debug (DEBUG_EDITOR, "START");
 
-        if (editor->priv->size_page_vbox)
-        {
 
-                editor->priv->stop_signals = TRUE;
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->size_w_spin), w_spin_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->size_h_spin), h_spin_cb, editor);
+
 
-                /* save a copy in internal units */
-                editor->priv->w_max = w_max;
-                editor->priv->h_max = h_max;
+        /* save a copy in internal units */
+        editor->priv->w_max = w_max;
+        editor->priv->h_max = h_max;
 
-                /* convert internal units to displayed units */
-                gl_debug (DEBUG_EDITOR, "internal w_max,h_max = %g, %g", w_max, h_max);
-                w_max *= editor->priv->units_per_point;
-                h_max *= editor->priv->units_per_point;
-                wh_max = MAX( w_max, h_max );
-                gl_debug (DEBUG_EDITOR, "display w_max,h_max = %g, %g", w_max, h_max);
+        /* convert internal units to displayed units */
+        gl_debug (DEBUG_EDITOR, "internal w_max,h_max = %g, %g", w_max, h_max);
+        w_max *= editor->priv->units_per_point;
+        h_max *= editor->priv->units_per_point;
+        wh_max = MAX( w_max, h_max );
+        gl_debug (DEBUG_EDITOR, "display w_max,h_max = %g, %g", w_max, h_max);
 
-                /* Set widget values */
-                tmp = gtk_spin_button_get_value (GTK_SPIN_BUTTON (editor->priv->size_w_spin));
-                gtk_spin_button_set_range (GTK_SPIN_BUTTON (editor->priv->size_w_spin),
-                                           0.0, 2.0*wh_max);
-                gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->size_w_spin), tmp);
-                tmp = gtk_spin_button_get_value (GTK_SPIN_BUTTON (editor->priv->size_h_spin));
-                gtk_spin_button_set_range (GTK_SPIN_BUTTON (editor->priv->size_h_spin),
-                                           0.0, 2.0*wh_max);
-                gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->size_h_spin), tmp);
+        /* Set widget values */
+        tmp = gtk_spin_button_get_value (GTK_SPIN_BUTTON (editor->priv->size_w_spin));
+        gtk_spin_button_set_range (GTK_SPIN_BUTTON (editor->priv->size_w_spin),
+                                   0.0, 2.0*wh_max);
+        gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->size_w_spin), tmp);
+        tmp = gtk_spin_button_get_value (GTK_SPIN_BUTTON (editor->priv->size_h_spin));
+        gtk_spin_button_set_range (GTK_SPIN_BUTTON (editor->priv->size_h_spin),
+                                   0.0, 2.0*wh_max);
+        gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->size_h_spin), tmp);
 
-                editor->priv->stop_signals = FALSE;
 
-        }
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->size_w_spin), w_spin_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->size_h_spin), h_spin_cb, editor);
+
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Set base or natural size of image.                                        */
 /*****************************************************************************/
@@ -378,6 +383,7 @@ gl_object_editor_set_base_size    (glObjectEditor      *editor,
        editor->priv->h_base = h_base;
 }
 
+
 /*****************************************************************************/
 /* Query size.                                                               */
 /*****************************************************************************/
@@ -404,35 +410,39 @@ gl_object_editor_get_size (glObjectEditor      *editor,
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* PRIVATE. Prefs changed callback.  Update units related items.            */
 /*****************************************************************************/
 void
 size_prefs_changed_cb (glObjectEditor *editor)
 {
+        lglUnits      units;
        const gchar  *units_string;
        gdouble       climb_rate;
        gint          digits;
 
        gl_debug (DEBUG_EDITOR, "START");
 
+
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->size_w_spin), w_spin_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->size_h_spin), h_spin_cb, editor);
+
+
         /* Get new configuration information */
-        units_string = gl_prefs_get_units_string ();
-        editor->priv->units_per_point = gl_prefs_get_units_per_point ();
-        climb_rate = gl_prefs_get_units_step_size ();
-        digits = gl_prefs_get_units_precision ();
+        units = gl_prefs_model_get_units (gl_prefs);
+        units_string = lgl_units_get_name (units);
+        editor->priv->units_per_point = lgl_units_get_units_per_point (units);
+        climb_rate = gl_units_util_get_step_size (units);
+        digits = gl_units_util_get_precision (units);
 
        /* Update characteristics of w_spin/h_spin */
-        editor->priv->stop_signals = TRUE;
-       gtk_spin_button_set_digits (GTK_SPIN_BUTTON(editor->priv->size_w_spin),
-                                   digits);
-       gtk_spin_button_set_digits (GTK_SPIN_BUTTON(editor->priv->size_h_spin),
-                                   digits);
+       gtk_spin_button_set_digits (GTK_SPIN_BUTTON(editor->priv->size_w_spin), digits);
+       gtk_spin_button_set_digits (GTK_SPIN_BUTTON(editor->priv->size_h_spin), digits);
        gtk_spin_button_set_increments (GTK_SPIN_BUTTON(editor->priv->size_w_spin),
                                        climb_rate, 10.0*climb_rate);
        gtk_spin_button_set_increments (GTK_SPIN_BUTTON(editor->priv->size_h_spin),
                                        climb_rate, 10.0*climb_rate);
-        editor->priv->stop_signals = FALSE;
 
        /* Update units_labels */
        gtk_label_set_text (GTK_LABEL(editor->priv->size_w_units_label),
@@ -441,13 +451,24 @@ size_prefs_changed_cb (glObjectEditor *editor)
                            units_string);
 
        /* Update values of w_spin/h_spin */
-       gl_object_editor_set_size (editor,
-                                  editor->priv->w,
-                                  editor->priv->h);
-       gl_object_editor_set_max_size (editor,
-                                      editor->priv->w_max,
-                                      editor->priv->h_max);
+       gl_object_editor_set_size (editor, editor->priv->w, editor->priv->h);
+       gl_object_editor_set_max_size (editor, editor->priv->w_max, editor->priv->h_max);
+
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->size_w_spin), w_spin_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->size_h_spin), h_spin_cb, editor);
+
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index d28353127baacf7434b6695f25f7a24cae6bf068..7c82ec900740d3583a8d140c05f120d4bf70305b 100644 (file)
@@ -1,57 +1,59 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  object-editor.c:  object properties editor module
+ *  object-editor-text-page.c
+ *  Copyright (C) 2003-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "object-editor.h"
 
 #include <glib/gi18n.h>
-#include <gtk/gtktogglebutton.h>
-#include <gtk/gtkspinbutton.h>
-#include <gtk/gtkcombobox.h>
+#include <gtk/gtk.h>
 #include <math.h>
 
 #include "prefs.h"
-#include "mygal/widget-color-combo.h"
+#include "color-combo.h"
 #include "color.h"
-#include "util.h"
+#include "font-combo.h"
+#include "font-util.h"
+#include "field-button.h"
+#include "builder-util.h"
 
 #include "object-editor-private.h"
 
 #include "debug.h"
 
+
 /*===========================================*/
 /* Private macros                            */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private data types                        */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private globals                           */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Local function prototypes                 */
 /*===========================================*/
@@ -67,52 +69,48 @@ static void text_radio_toggled_cb              (glObjectEditor        *editor);
 void
 gl_object_editor_prepare_text_page (glObjectEditor       *editor)
 {
-       GList        *family_names = NULL;
-
        gl_debug (DEBUG_EDITOR, "START");
 
        /* Extract widgets from XML tree. */
-       editor->priv->text_page_vbox =
-               glade_xml_get_widget (editor->priv->gui, "text_page_vbox");
-       editor->priv->text_family_combo =
-               glade_xml_get_widget (editor->priv->gui, "text_family_combo");
-       editor->priv->text_size_spin =
-               glade_xml_get_widget (editor->priv->gui, "text_size_spin");
-       editor->priv->text_bold_toggle =
-               glade_xml_get_widget (editor->priv->gui, "text_bold_toggle");
-       editor->priv->text_italic_toggle =
-               glade_xml_get_widget (editor->priv->gui, "text_italic_toggle");
-       editor->priv->text_color_combo =
-               glade_xml_get_widget (editor->priv->gui, "text_color_combo");
-       editor->priv->text_color_radio =
-               glade_xml_get_widget (editor->priv->gui, "text_color_radio");
-       editor->priv->text_color_key_radio =
-               glade_xml_get_widget (editor->priv->gui, "text_color_key_radio");
-       editor->priv->text_color_key_combo =
-               glade_xml_get_widget (editor->priv->gui, "text_color_key_combo");
-       editor->priv->text_left_toggle =
-               glade_xml_get_widget (editor->priv->gui, "text_left_toggle");
-       editor->priv->text_center_toggle =
-               glade_xml_get_widget (editor->priv->gui, "text_center_toggle");
-       editor->priv->text_right_toggle =
-               glade_xml_get_widget (editor->priv->gui, "text_right_toggle");
-       editor->priv->text_line_spacing_spin =
-               glade_xml_get_widget (editor->priv->gui, "text_line_spacing_spin");
-       editor->priv->text_auto_shrink_check =
-               glade_xml_get_widget (editor->priv->gui, "text_auto_shrink_check");
-
-       gl_util_combo_box_add_text_model ( GTK_COMBO_BOX(editor->priv->text_family_combo));
-       gl_util_combo_box_add_text_model ( GTK_COMBO_BOX(editor->priv->text_color_key_combo));
-
-       /* Load family names */
-       family_names = gl_util_get_font_family_list ();
-       gl_util_combo_box_set_strings (GTK_COMBO_BOX(editor->priv->text_family_combo),
-                                      family_names);
+        gl_builder_util_get_widgets (editor->priv->builder,
+                                     "text_page_vbox",         &editor->priv->text_page_vbox,
+                                     "text_family_hbox",       &editor->priv->text_family_hbox,
+                                     "text_size_spin",         &editor->priv->text_size_spin,
+                                     "text_bold_toggle",       &editor->priv->text_bold_toggle,
+                                     "text_italic_toggle",     &editor->priv->text_italic_toggle,
+                                     "text_color_hbox",        &editor->priv->text_color_hbox,
+                                     "text_color_radio",       &editor->priv->text_color_radio,
+                                     "text_color_key_radio",   &editor->priv->text_color_key_radio,
+                                     "text_color_key_hbox",    &editor->priv->text_color_key_hbox,
+                                     "text_left_toggle",       &editor->priv->text_left_toggle,
+                                     "text_center_toggle",     &editor->priv->text_center_toggle,
+                                     "text_right_toggle",      &editor->priv->text_right_toggle,
+                                     "text_line_spacing_spin", &editor->priv->text_line_spacing_spin,
+                                     "text_auto_shrink_check", &editor->priv->text_auto_shrink_check,
+                                     NULL);
+
+       editor->priv->text_family_combo = gl_font_combo_new ("Sans");
+        gtk_box_pack_start (GTK_BOX (editor->priv->text_family_hbox),
+                            editor->priv->text_family_combo,
+                            TRUE, TRUE, 0);
+
+       editor->priv->text_color_combo = gl_color_combo_new (_("Default"),
+                                                             GL_COLOR_TEXT_DEFAULT,
+                                                             gl_prefs_model_get_default_text_color (gl_prefs));
+        gtk_box_pack_start (GTK_BOX (editor->priv->text_color_hbox),
+                            editor->priv->text_color_combo,
+                            FALSE, FALSE, 0);
+
+        editor->priv->text_color_key_combo = gl_field_button_new (NULL);
+        gtk_box_pack_start (GTK_BOX (editor->priv->text_color_key_hbox),
+                            editor->priv->text_color_key_combo,
+                            TRUE, TRUE, 0);
+
 
        /* Modify widgets */
        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->text_color_radio), TRUE);
        gtk_widget_set_sensitive (editor->priv->text_color_combo, TRUE);
-    gtk_widget_set_sensitive (editor->priv->text_color_key_combo, FALSE);
+        gtk_widget_set_sensitive (editor->priv->text_color_key_combo, FALSE);
 
        /* Un-hide */
        gtk_widget_show_all (editor->priv->text_page_vbox);
@@ -123,7 +121,7 @@ gl_object_editor_prepare_text_page (glObjectEditor       *editor)
                                  G_CALLBACK (gl_object_editor_changed_cb),
                                  G_OBJECT (editor));
        g_signal_connect_swapped (G_OBJECT (editor->priv->text_size_spin),
-                                 "changed",
+                                 "value-changed",
                                  G_CALLBACK (gl_object_editor_changed_cb),
                                  G_OBJECT (editor));
        g_signal_connect_swapped (G_OBJECT (editor->priv->text_bold_toggle),
@@ -165,7 +163,7 @@ gl_object_editor_prepare_text_page (glObjectEditor       *editor)
                          G_OBJECT (editor));
 
        g_signal_connect_swapped (G_OBJECT (editor->priv->text_line_spacing_spin),
-                                 "changed",
+                                 "value-changed",
                                  G_CALLBACK (gl_object_editor_changed_cb),
                                  G_OBJECT (editor));
 
@@ -177,6 +175,7 @@ gl_object_editor_prepare_text_page (glObjectEditor       *editor)
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Alignment togglebutton callback.                               */
 /*--------------------------------------------------------------------------*/
@@ -184,8 +183,6 @@ static void
 align_toggle_cb (GtkToggleButton *toggle,
                 glObjectEditor  *editor)
 {
-        if (editor->priv->stop_signals) return;
-
         if (gtk_toggle_button_get_active (toggle)) {
  
                 if (GTK_WIDGET (toggle) == GTK_WIDGET (editor->priv->text_left_toggle)) {
@@ -213,12 +210,12 @@ align_toggle_cb (GtkToggleButton *toggle,
                                                       FALSE);
                 }
 
-               /* Emit our "changed" signal */
-               g_signal_emit (G_OBJECT (editor), gl_object_editor_signals[CHANGED], 0);
+                gl_object_editor_changed_cb (editor);
         }
 
 }
 
+
 /*****************************************************************************/
 /* Set font family.                                                          */
 /*****************************************************************************/
@@ -226,41 +223,39 @@ void
 gl_object_editor_set_font_family (glObjectEditor      *editor,
                                  const gchar         *font_family)
 {
-        GList    *family_names;
        gchar    *old_font_family;
-       gchar    *good_font_family;
+
+        if (font_family == NULL)
+        {
+                return;
+        }
 
        gl_debug (DEBUG_EDITOR, "START");
 
-        editor->priv->stop_signals = TRUE;
 
-       old_font_family = gtk_combo_box_get_active_text (GTK_COMBO_BOX (editor->priv->text_family_combo));
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->text_family_combo),
+                                         gl_object_editor_changed_cb, editor);
+
+
+       old_font_family = gl_font_combo_get_family (GL_FONT_COMBO (editor->priv->text_family_combo));
 
         if ( !old_font_family || g_utf8_collate( old_font_family, font_family ) )
         {
-
-                /* Make sure we have a valid font family.  if not provide a good default. */
-                family_names = gl_util_get_font_family_list ();
-                if (g_list_find_custom (family_names, font_family, (GCompareFunc)g_utf8_collate)) {
-                        good_font_family = g_strdup (font_family);
-                } else {
-                        if (family_names != NULL) {
-                                good_font_family = g_strdup (family_names->data); /* 1st entry */
-                        } else {
-                                good_font_family = NULL;
-                        }
-                }
-                gl_util_combo_box_set_active_text (GTK_COMBO_BOX (editor->priv->text_family_combo), good_font_family);
-                g_free (good_font_family);
+                gl_font_combo_set_family (GL_FONT_COMBO (editor->priv->text_family_combo),
+                                          font_family);
         }
 
         g_free (old_font_family);
 
-        editor->priv->stop_signals = FALSE;
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->text_family_combo),
+                                           gl_object_editor_changed_cb, editor);
+
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Query font family.                                                        */
 /*****************************************************************************/
@@ -271,13 +266,14 @@ gl_object_editor_get_font_family (glObjectEditor      *editor)
 
        gl_debug (DEBUG_EDITOR, "START");
 
-       font_family = gtk_combo_box_get_active_text (GTK_COMBO_BOX (editor->priv->text_family_combo));
+       font_family = gl_font_combo_get_family (GL_FONT_COMBO (editor->priv->text_family_combo));
 
        gl_debug (DEBUG_EDITOR, "END");
 
        return font_family;
 }
 
+
 /*****************************************************************************/
 /* Set font size.                                                            */
 /*****************************************************************************/
@@ -287,16 +283,23 @@ gl_object_editor_set_font_size (glObjectEditor      *editor,
 {
        gl_debug (DEBUG_EDITOR, "START");
 
-        editor->priv->stop_signals = TRUE;
+
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->text_size_spin),
+                                         gl_object_editor_changed_cb, editor);
+
 
         gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->text_size_spin),
                                    font_size);
 
-        editor->priv->stop_signals = FALSE;
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->text_size_spin),
+                                           gl_object_editor_changed_cb, editor);
+
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Query font size.                                                          */
 /*****************************************************************************/
@@ -315,6 +318,7 @@ gl_object_editor_get_font_size (glObjectEditor      *editor)
        return font_size;
 }
 
+
 /*****************************************************************************/
 /* Set font weight.                                                          */
 /*****************************************************************************/
@@ -324,16 +328,23 @@ gl_object_editor_set_font_weight (glObjectEditor      *editor,
 {
        gl_debug (DEBUG_EDITOR, "START");
 
-        editor->priv->stop_signals = TRUE;
+
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->text_bold_toggle),
+                                         gl_object_editor_changed_cb, editor);
+
 
         gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->text_bold_toggle),
                                       (font_weight == PANGO_WEIGHT_BOLD));
 
-        editor->priv->stop_signals = FALSE;
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->text_bold_toggle),
+                                           gl_object_editor_changed_cb, editor);
+
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Query font weight.                                                        */
 /*****************************************************************************/
@@ -356,6 +367,7 @@ gl_object_editor_get_font_weight (glObjectEditor      *editor)
        return font_weight;
 }
 
+
 /*****************************************************************************/
 /* Set font italic flag.                                                     */
 /*****************************************************************************/
@@ -365,16 +377,23 @@ gl_object_editor_set_font_italic_flag (glObjectEditor      *editor,
 {
        gl_debug (DEBUG_EDITOR, "START");
 
-        editor->priv->stop_signals = TRUE;
+
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->text_italic_toggle),
+                                         gl_object_editor_changed_cb, editor);
+
 
         gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->text_italic_toggle),
                                       font_italic_flag);
 
-        editor->priv->stop_signals = FALSE;
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->text_italic_toggle),
+                                           gl_object_editor_changed_cb, editor);
+
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Query font italic flag.                                                   */
 /*****************************************************************************/
@@ -394,6 +413,7 @@ gl_object_editor_get_font_italic_flag (glObjectEditor      *editor)
        return italic_flag;
 }
 
+
 /*****************************************************************************/
 /* Set text alignment.                                                       */
 /*****************************************************************************/
@@ -403,7 +423,11 @@ gl_object_editor_set_text_alignment (glObjectEditor      *editor,
 {
        gl_debug (DEBUG_EDITOR, "START");
 
-        editor->priv->stop_signals = TRUE;
+
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->text_left_toggle), align_toggle_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->text_center_toggle), align_toggle_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->text_right_toggle), align_toggle_cb, editor);
+
 
         gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->text_left_toggle),
                                       (align == PANGO_ALIGN_LEFT));
@@ -412,11 +436,16 @@ gl_object_editor_set_text_alignment (glObjectEditor      *editor,
         gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->text_right_toggle),
                                       (align == PANGO_ALIGN_RIGHT));
 
-        editor->priv->stop_signals = FALSE;
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->text_left_toggle), align_toggle_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->text_center_toggle), align_toggle_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->text_right_toggle), align_toggle_cb, editor);
+
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Query text alignment.                                                     */
 /*****************************************************************************/
@@ -447,6 +476,7 @@ gl_object_editor_get_text_alignment (glObjectEditor      *editor)
        return align;
 }
 
+
 /*****************************************************************************/
 /* Set text color.                                                           */
 /*****************************************************************************/
@@ -455,57 +485,79 @@ gl_object_editor_set_text_color (glObjectEditor      *editor,
                                 gboolean             merge_flag,
                                 glColorNode         *text_color_node)
 {
-       GdkColor *gdk_color;
-
        gl_debug (DEBUG_EDITOR, "START");
 
-        editor->priv->stop_signals = TRUE;
+        if (text_color_node == NULL)
+        {
+                return;
+        }
+
 
-       gl_debug (DEBUG_EDITOR, "color field %s(%d) / %X", text_color_node->key, text_color_node->field_flag, text_color_node->color);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->text_color_combo),
+                                         gl_object_editor_changed_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->text_color_radio),
+                                         text_radio_toggled_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->text_color_key_radio),
+                                         text_radio_toggled_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->text_color_key_combo),
+                                         gl_object_editor_changed_cb, editor);
+
+
+       gl_debug (DEBUG_EDITOR, "color field %s(%d) / %X",
+                  text_color_node->key, text_color_node->field_flag, text_color_node->color);
        
        gtk_widget_set_sensitive (editor->priv->text_color_key_radio, merge_flag);
 
        if ( text_color_node->color == GL_COLOR_NONE ) {
 
-               color_combo_set_color_to_default (COLOR_COMBO(editor->priv->text_color_combo));
+               gl_color_combo_set_to_default (GL_COLOR_COMBO(editor->priv->text_color_combo));
 
        } else {
                
-        gdk_color = gl_color_to_gdk_color (text_color_node->color);
-        color_combo_set_color (COLOR_COMBO(editor->priv->text_color_combo), gdk_color);
-        g_free (gdk_color);
+                gl_color_combo_set_color (GL_COLOR_COMBO(editor->priv->text_color_combo),
+                                          text_color_node->color);
        }
        
-       if (!text_color_node->field_flag || !merge_flag) {
-               gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
-                                                 (editor->priv->text_color_radio), TRUE); 
+       if (!text_color_node->field_flag || !merge_flag)
+        {
+               gl_debug (DEBUG_EDITOR, "color field false");
+               gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->text_color_radio), TRUE); 
                gtk_widget_set_sensitive (editor->priv->text_color_combo, TRUE);
-               gl_debug (DEBUG_EDITOR, "color field false 0");
                gtk_widget_set_sensitive (editor->priv->text_color_key_combo, FALSE);
                
-       } else {
-               gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
-                                                 (editor->priv->text_color_key_radio), TRUE); 
+       }
+        else
+        {
+               gl_debug (DEBUG_EDITOR, "color field true");
+               gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->text_color_key_radio), TRUE); 
                gtk_widget_set_sensitive (editor->priv->text_color_combo, FALSE);
                gtk_widget_set_sensitive (editor->priv->text_color_key_combo, TRUE);
                
-               gl_debug (DEBUG_EDITOR, "color field true 1");
-               gl_util_combo_box_set_active_text (GTK_COMBO_BOX (editor->priv->text_color_key_combo), "");
-               gl_debug (DEBUG_EDITOR, "color field true 2");
+               gl_field_button_set_key (GL_FIELD_BUTTON (editor->priv->text_color_key_combo), "");
        }
 
-        editor->priv->stop_signals = FALSE;
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->text_color_combo),
+                                           gl_object_editor_changed_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->text_color_radio),
+                                           text_radio_toggled_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->text_color_key_radio),
+                                           text_radio_toggled_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->text_color_key_combo),
+                                           gl_object_editor_changed_cb, editor);
+
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Query text color.                                                         */
 /*****************************************************************************/
 glColorNode*
 gl_object_editor_get_text_color (glObjectEditor      *editor)
 {
-       GdkColor    *gdk_color;
+       guint        color;
        glColorNode *color_node;
        gboolean     is_default;
 
@@ -515,20 +567,20 @@ gl_object_editor_get_text_color (glObjectEditor      *editor)
        
        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->text_color_key_radio))) {
                color_node->field_flag = TRUE;
-               color_node->color = gl_prefs->default_text_color;
+               color_node->color = gl_prefs_model_get_default_text_color (gl_prefs);
                color_node->key = 
-                       gtk_combo_box_get_active_text (GTK_COMBO_BOX (editor->priv->text_color_key_combo));
-    } else {
+                       gl_field_button_get_key (GL_FIELD_BUTTON (editor->priv->text_color_key_combo));
+        } else {
                color_node->field_flag = FALSE;
                color_node->key = NULL;
-               gdk_color = color_combo_get_color (COLOR_COMBO(editor->priv->text_color_combo),
-                                           &is_default);
+               color = gl_color_combo_get_color (GL_COLOR_COMBO(editor->priv->text_color_combo),
+                                                  &is_default);
 
-        if (is_default) {
-                color_node->color = gl_prefs->default_text_color;
-        } else {
-                color_node->color = gl_color_from_gdk_color (gdk_color);
-        }
+                if (is_default) {
+                        color_node->color = gl_prefs_model_get_default_text_color (gl_prefs);
+                } else {
+                        color_node->color = color;
+                }
        }      
 
        gl_debug (DEBUG_EDITOR, "END");
@@ -546,16 +598,23 @@ gl_object_editor_set_text_line_spacing (glObjectEditor      *editor,
 {
        gl_debug (DEBUG_EDITOR, "START");
 
-        editor->priv->stop_signals = TRUE;
+
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->text_line_spacing_spin),
+                                         gl_object_editor_changed_cb, editor);
+
 
         gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->text_line_spacing_spin),
                                    text_line_spacing);
 
-        editor->priv->stop_signals = FALSE;
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->text_line_spacing_spin),
+                                           gl_object_editor_changed_cb, editor);
+
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Query text line spacing.                                                  */
 /*****************************************************************************/
@@ -574,6 +633,7 @@ gl_object_editor_get_text_line_spacing (glObjectEditor      *editor)
        return text_line_spacing;
 }
 
+
 /*****************************************************************************/
 /* Set auto shrink checkbox.                                                 */
 /*****************************************************************************/
@@ -583,16 +643,23 @@ gl_object_editor_set_text_auto_shrink (glObjectEditor      *editor,
 {
        gl_debug (DEBUG_EDITOR, "START");
 
-        editor->priv->stop_signals = TRUE;
+
+        g_signal_handlers_block_by_func (G_OBJECT (editor->priv->text_auto_shrink_check),
+                                         gl_object_editor_changed_cb, editor);
+
 
        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->text_auto_shrink_check),
                                       auto_shrink);
 
-        editor->priv->stop_signals = FALSE;
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (editor->priv->text_auto_shrink_check),
+                                           gl_object_editor_changed_cb, editor);
+
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
 /* Query auto shrink checkbox.                                               */
 /*****************************************************************************/
@@ -610,14 +677,13 @@ gboolean    gl_object_editor_get_text_auto_shrink (glObjectEditor      *editor)
        return auto_shrink;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  color radio callback.                                           */
 /*--------------------------------------------------------------------------*/
 static void
 text_radio_toggled_cb (glObjectEditor *editor)
 {
-        if (editor->priv->stop_signals) return;
-
         gl_debug (DEBUG_EDITOR, "START");
        
        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->text_color_radio))) {
@@ -629,8 +695,18 @@ text_radio_toggled_cb (glObjectEditor *editor)
                
        }
  
-        /* Emit our "changed" signal */
-        g_signal_emit (G_OBJECT (editor), gl_object_editor_signals[CHANGED], 0);
+        gl_object_editor_changed_cb (editor);
  
         gl_debug (DEBUG_EDITOR, "END");
 }
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 02a153d6b5f26e1bc782741d55f781e35e42dfe2..68cfa4930b9944c1d0c755704e9f14112aa7860a 100644 (file)
@@ -1,65 +1,65 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/**
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  object-editor.c:  object properties editor module
+/*
+ *  object-editor.c
+ *  Copyright (C) 2003-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "object-editor.h"
 
 #include <glib/gi18n.h>
-#include <glade/glade-xml.h>
-#include <gtk/gtklabel.h>
-#include <gtk/gtknotebook.h>
-#include <gtk/gtkcombobox.h>
-#include <gtk/gtktogglebutton.h>
-
+#include <gtk/gtk.h>
 #include <math.h>
 
 #include "prefs.h"
-#include "mygal/widget-color-combo.h"
+#include "color-combo.h"
 #include "color.h"
 #include "wdgt-chain-button.h"
+#include "field-button.h"
 #include "marshal.h"
-#include "util.h"
+#include "combo-util.h"
+#include "builder-util.h"
+#include "label-box.h"
+#include "label-ellipse.h"
+#include "label-line.h"
+#include "label-image.h"
+#include "label-text.h"
+#include "label-barcode.h"
 
 #include "object-editor-private.h"
 
 #include "debug.h"
 
+
 /*===========================================*/
 /* Private macros                            */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Private data types                        */
 /*===========================================*/
 
-typedef void (*ChangedSignal) (GObject * object, gpointer data);
 
 /*===========================================*/
 /* Private globals                           */
 /*===========================================*/
 
-gint gl_object_editor_signals[LAST_SIGNAL] = { 0 };
 
 /*===========================================*/
 /* Local function prototypes                 */
@@ -67,21 +67,36 @@ gint gl_object_editor_signals[LAST_SIGNAL] = { 0 };
 
 static void gl_object_editor_finalize           (GObject              *object);
 
-static void gl_object_notebook_construct_valist (glObjectEditor       *editor,
-                                                 glLabel              *label,
-                                                glObjectEditorOption  first_option,
-                                                va_list               args);
+static void set_object                          (glObjectEditor       *editor,
+                                                 glLabelObject        *object);
 
 static void prefs_changed_cb                    (glObjectEditor       *editor);
 
 static void label_changed_cb                    (glLabel              *label,
                                                  glObjectEditor       *editor);
 
-\f
+static void selection_changed_cb                (glLabel              *label,
+                                                 glObjectEditor       *editor);
+
+static void merge_changed_cb                    (glLabel              *label,
+                                                 glObjectEditor       *editor);
+
+static void set_key_names                       (glObjectEditor       *editor,
+                                                 glMerge              *merge);
+
+static void object_changed_cb                   (glLabelObject        *object,
+                                                 glObjectEditor       *editor);
+
+static void object_moved_cb                     (glLabelObject        *object,
+                                                 glObjectEditor       *editor);
+
+
+
 /*****************************************************************************/
 /* Boilerplate object stuff.                                                 */
 /*****************************************************************************/
-G_DEFINE_TYPE (glObjectEditor, gl_object_editor, GTK_TYPE_VBOX);
+G_DEFINE_TYPE (glObjectEditor, gl_object_editor, GTK_TYPE_VBOX)
+
 
 static void
 gl_object_editor_class_init (glObjectEditorClass *class)
@@ -93,66 +108,72 @@ gl_object_editor_class_init (glObjectEditorClass *class)
        gl_object_editor_parent_class = g_type_class_peek_parent (class);
 
        object_class->finalize = gl_object_editor_finalize;     
-
-       gl_object_editor_signals[CHANGED] =
-           g_signal_new ("changed",
-                         G_OBJECT_CLASS_TYPE(object_class),
-                         G_SIGNAL_RUN_LAST,
-                         G_STRUCT_OFFSET (glObjectEditorClass, changed),
-                         NULL, NULL,
-                         gl_marshal_VOID__VOID,
-                         G_TYPE_NONE, 0);
-
-       gl_object_editor_signals[SIZE_CHANGED] =
-           g_signal_new ("size_changed",
-                         G_OBJECT_CLASS_TYPE(object_class),
-                         G_SIGNAL_RUN_LAST,
-                         G_STRUCT_OFFSET (glObjectEditorClass, size_changed),
-                         NULL, NULL,
-                         gl_marshal_VOID__VOID,
-                         G_TYPE_NONE, 0);
-
-       gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 static void
 gl_object_editor_init (glObjectEditor *editor)
 {
+        gchar        *builder_filename;
+        static gchar *object_ids[] = { "editor_vbox",
+                                       "adjustment1",  "adjustment2",  "adjustment3",
+                                       "adjustment4",  "adjustment5",  "adjustment6",
+                                       "adjustment7",  "adjustment8",  "adjustment9",
+                                       "adjustment10", "adjustment11", "adjustment12",
+                                       "adjustment13", "page_sizegroup", "width_sizegroup",
+                                       NULL };
+        GError       *error = NULL;
+        gchar        *s;
+
        gl_debug (DEBUG_EDITOR, "START");
        
        editor->priv = g_new0 (glObjectEditorPrivate, 1);
 
-       editor->priv->gui = glade_xml_new (GLABELS_GLADE_DIR "object-editor.glade",
-                                          "editor_vbox",
-                                          NULL);
+        editor->priv->builder = gtk_builder_new ();
 
-       if (!editor->priv->gui) {
-               g_critical ("Could not open object-editor.glade. gLabels may not be installed correctly!");
+        builder_filename = g_build_filename (GLABELS_DATA_DIR, "ui", "object-editor.ui", NULL);
+        gtk_builder_add_objects_from_file (editor->priv->builder, builder_filename, object_ids, &error);
+        g_free (builder_filename);
+       if (error) {
+               g_critical ("%s\n\ngLabels may not be installed correctly!", error->message);
+                g_error_free (error);
                return;
        }
 
-       editor->priv->editor_vbox = glade_xml_get_widget (editor->priv->gui,
-                                                         "editor_vbox");
+        gl_builder_util_get_widgets (editor->priv->builder,
+                                     "editor_vbox", &editor->priv->editor_vbox,
+                                     "title_image", &editor->priv->title_image,
+                                     "title_label", &editor->priv->title_label,
+                                     "notebook",    &editor->priv->notebook,
+                                     NULL);
+
        gtk_box_pack_start (GTK_BOX(editor),
                            editor->priv->editor_vbox,
                            FALSE, FALSE, 0);
 
-       editor->priv->title_image = glade_xml_get_widget (editor->priv->gui,
-                                                         "title_image");
-       editor->priv->title_label = glade_xml_get_widget (editor->priv->gui,
-                                                         "title_label");
-       editor->priv->notebook    = glade_xml_get_widget (editor->priv->gui,
-                                                         "notebook");
-
        gtk_widget_show_all (GTK_WIDGET(editor));
 
+        gtk_image_set_from_icon_name (GTK_IMAGE(editor->priv->title_image),
+                                      "glabels-object-properties",
+                                      GTK_ICON_SIZE_LARGE_TOOLBAR);
+
+        s = g_strdup_printf ("<span weight=\"bold\">%s</span>",
+                             _("Object properties"));
+        gtk_label_set_text (GTK_LABEL(editor->priv->title_label), s);
+        gtk_label_set_use_markup (GTK_LABEL(editor->priv->title_label), TRUE);
+        g_free (s);
+
+        gtk_widget_set_sensitive (editor->priv->title_image, FALSE);
+        gtk_widget_set_sensitive (editor->priv->title_label, FALSE);
+
        /* Hide all notebook pages to start with. */
-       gtk_widget_hide_all (editor->priv->notebook);
+       gtk_widget_hide (editor->priv->notebook);
        gtk_widget_set_no_show_all (editor->priv->notebook, TRUE);
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 static void 
 gl_object_editor_finalize (GObject *object)
 {
@@ -166,10 +187,28 @@ gl_object_editor_finalize (GObject *object)
 
        g_signal_handlers_disconnect_by_func (G_OBJECT(gl_prefs),
                                              prefs_changed_cb, editor);
-       g_signal_handlers_disconnect_by_func (G_OBJECT(editor->priv->label),
-                                             label_changed_cb, editor);
 
-        g_object_unref (editor->priv->gui);
+        if (editor->priv->label)
+        {
+                g_signal_handlers_disconnect_by_func (G_OBJECT(editor->priv->label),
+                                                      label_changed_cb, editor);
+                g_signal_handlers_disconnect_by_func (G_OBJECT(editor->priv->label),
+                                                      merge_changed_cb, editor);
+                g_object_unref (editor->priv->label);
+        }
+
+        if (editor->priv->object)
+        {
+                g_signal_handlers_disconnect_by_func (G_OBJECT(editor->priv->object),
+                                                      object_changed_cb, editor);
+                g_signal_handlers_disconnect_by_func (G_OBJECT(editor->priv->object),
+                                                      object_moved_cb, editor);
+                g_object_unref (editor->priv->object);
+        }
+
+        g_object_unref (editor->priv->builder);
+
+        g_free (editor->priv->current_backend_id);
        g_free (editor->priv);
 
        G_OBJECT_CLASS (gl_object_editor_parent_class)->finalize (object);
@@ -177,517 +216,877 @@ gl_object_editor_finalize (GObject *object)
        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
 /*****************************************************************************/
-/* NEW object editor.                                                      */
+/* NEW object editor.                                                        */
 /*****************************************************************************/
 GtkWidget*
-gl_object_editor_new (gchar                *image,
-                     gchar                *title,
-                      glLabel              *label,
-                     glObjectEditorOption  first_option, ...)
+gl_object_editor_new (void)
 {
        glObjectEditor *editor;
-       va_list         args;
 
        gl_debug (DEBUG_EDITOR, "START");
 
        editor = GL_OBJECT_EDITOR (g_object_new (GL_TYPE_OBJECT_EDITOR, NULL));
 
-       if (image) {
-               gtk_image_set_from_stock (GTK_IMAGE(editor->priv->title_image),
-                                         image,
-                                         GTK_ICON_SIZE_LARGE_TOOLBAR);
-       }
+        gtk_widget_set_sensitive (editor->priv->title_image, FALSE);
+        gtk_widget_set_sensitive (editor->priv->title_label, FALSE);
+
+        gl_object_editor_prepare_position_page (editor);
+        gl_object_editor_prepare_size_page (editor);
+        gl_object_editor_prepare_lsize_page (editor);
+        gl_object_editor_prepare_fill_page (editor);
+        gl_object_editor_prepare_line_page (editor);
+        gl_object_editor_prepare_image_page (editor);
+        gl_object_editor_prepare_text_page (editor);
+        gl_object_editor_prepare_edit_page (editor);
+        gl_object_editor_prepare_bc_page (editor);
+        gl_object_editor_prepare_data_page (editor);
+        gl_object_editor_prepare_shadow_page (editor);
+
+       g_signal_connect_swapped (G_OBJECT (gl_prefs), "changed",
+                                 G_CALLBACK (prefs_changed_cb), editor);
+
+       gl_debug (DEBUG_EDITOR, "END");
+
+       return GTK_WIDGET(editor);
+}
+
+
+/*****************************************************************************/
+/* Set label.                                                                */
+/*****************************************************************************/
+void
+gl_object_editor_set_label (glObjectEditor  *editor,
+                            glLabel         *label)
+{
+       gl_debug (DEBUG_EDITOR, "START");
+
+        editor->priv->label = g_object_ref (label);
+
+        label_changed_cb (label, editor);
+        merge_changed_cb (label, editor);
 
-       if (title) {
-               gchar *s;
+       g_signal_connect (G_OBJECT(label), "selection_changed",
+                         G_CALLBACK(selection_changed_cb), editor);
+        g_signal_connect (G_OBJECT (label), "size_changed",
+                          G_CALLBACK (label_changed_cb), editor);
+        g_signal_connect (G_OBJECT (label), "merge_changed",
+                          G_CALLBACK (merge_changed_cb), editor);
+
+       gl_debug (DEBUG_EDITOR, "END");
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* Private. Set object.                                                     */
+/*--------------------------------------------------------------------------*/
+static void
+set_object (glObjectEditor  *editor,
+            glLabelObject   *object)
+{
+        gchar               *image;
+        gchar               *title;
+        gchar               *s;
+        GtkTextBuffer       *buffer;
+        gint                 old_page, new_page;
+
+       gl_debug (DEBUG_EDITOR, "START");
+
+        if ( editor->priv->object != NULL )
+        {
+                g_signal_handlers_disconnect_by_func (G_OBJECT(editor->priv->object),
+                                                      object_changed_cb, editor);
+                g_signal_handlers_disconnect_by_func (G_OBJECT(editor->priv->object),
+                                                      object_moved_cb, editor);
+                g_object_unref (editor->priv->object);
+        }
+
+        if (object)
+        {
+                editor->priv->object = g_object_ref (object);
+
+                old_page = gtk_notebook_get_current_page (GTK_NOTEBOOK (editor->priv->notebook));
+
+                if (GL_IS_LABEL_BOX (object))
+                {
+                        image = "glabels-box";
+                        title = _("Box object properties");
+
+                        gtk_widget_show_all (editor->priv->pos_page_vbox);
+                        gtk_widget_show_all (editor->priv->size_page_vbox);
+                        gtk_widget_hide     (editor->priv->lsize_page_vbox);
+                        gtk_widget_show_all (editor->priv->fill_page_vbox);
+                        gtk_widget_show_all (editor->priv->line_page_vbox);
+                        gtk_widget_hide     (editor->priv->img_page_vbox);
+                        gtk_widget_hide     (editor->priv->text_page_vbox);
+                        gtk_widget_hide     (editor->priv->edit_page_vbox);
+                        gtk_widget_hide     (editor->priv->bc_page_vbox);
+                        gtk_widget_hide     (editor->priv->data_page_vbox);
+                        gtk_widget_show_all (editor->priv->shadow_page_vbox);
+
+                        gtk_widget_hide     (editor->priv->size_reset_image_button);
+                }
+                else if (GL_IS_LABEL_ELLIPSE (object))
+                {
+                        image = "glabels-ellipse";
+                        title = _("Ellipse object properties");
+
+                        gtk_widget_show_all (editor->priv->pos_page_vbox);
+                        gtk_widget_show_all (editor->priv->size_page_vbox);
+                        gtk_widget_hide     (editor->priv->lsize_page_vbox);
+                        gtk_widget_show_all (editor->priv->fill_page_vbox);
+                        gtk_widget_show_all (editor->priv->line_page_vbox);
+                        gtk_widget_hide     (editor->priv->img_page_vbox);
+                        gtk_widget_hide     (editor->priv->text_page_vbox);
+                        gtk_widget_hide     (editor->priv->edit_page_vbox);
+                        gtk_widget_hide     (editor->priv->bc_page_vbox);
+                        gtk_widget_hide     (editor->priv->data_page_vbox);
+                        gtk_widget_show_all (editor->priv->shadow_page_vbox);
+
+                        gtk_widget_hide     (editor->priv->size_reset_image_button);
+                }
+                else if (GL_IS_LABEL_LINE (object))
+                {
+                        image = "glabels-line";
+                        title = _("Line object properties");
+
+                        gtk_widget_show_all (editor->priv->pos_page_vbox);
+                        gtk_widget_hide     (editor->priv->size_page_vbox);
+                        gtk_widget_show_all (editor->priv->lsize_page_vbox);
+                        gtk_widget_hide     (editor->priv->fill_page_vbox);
+                        gtk_widget_show_all (editor->priv->line_page_vbox);
+                        gtk_widget_hide     (editor->priv->img_page_vbox);
+                        gtk_widget_hide     (editor->priv->text_page_vbox);
+                        gtk_widget_hide     (editor->priv->edit_page_vbox);
+                        gtk_widget_hide     (editor->priv->bc_page_vbox);
+                        gtk_widget_hide     (editor->priv->data_page_vbox);
+                        gtk_widget_show_all (editor->priv->shadow_page_vbox);
+                }
+                else if (GL_IS_LABEL_IMAGE (object))
+                {
+                        image = "glabels-image";
+                        title = _("Image object properties");
+
+                        gtk_widget_show_all (editor->priv->pos_page_vbox);
+                        gtk_widget_show_all (editor->priv->size_page_vbox);
+                        gtk_widget_hide     (editor->priv->lsize_page_vbox);
+                        gtk_widget_hide     (editor->priv->fill_page_vbox);
+                        gtk_widget_hide     (editor->priv->line_page_vbox);
+                        gtk_widget_show_all (editor->priv->img_page_vbox);
+                        gtk_widget_hide     (editor->priv->text_page_vbox);
+                        gtk_widget_hide     (editor->priv->edit_page_vbox);
+                        gtk_widget_hide     (editor->priv->bc_page_vbox);
+                        gtk_widget_hide     (editor->priv->data_page_vbox);
+                        gtk_widget_show_all (editor->priv->shadow_page_vbox);
+                }
+                else if (GL_IS_LABEL_TEXT (object))
+                {
+                        image = "glabels-text";
+                        title = _("Text object properties");
+
+                        gtk_widget_show_all (editor->priv->pos_page_vbox);
+                        gtk_widget_show_all (editor->priv->size_page_vbox);
+                        gtk_widget_hide     (editor->priv->lsize_page_vbox);
+                        gtk_widget_hide     (editor->priv->fill_page_vbox);
+                        gtk_widget_hide     (editor->priv->line_page_vbox);
+                        gtk_widget_hide     (editor->priv->img_page_vbox);
+                        gtk_widget_show_all (editor->priv->text_page_vbox);
+                        gtk_widget_show_all (editor->priv->edit_page_vbox);
+                        gtk_widget_hide     (editor->priv->bc_page_vbox);
+                        gtk_widget_hide     (editor->priv->data_page_vbox);
+                        gtk_widget_show_all (editor->priv->shadow_page_vbox);
+
+                        gtk_widget_hide     (editor->priv->size_reset_image_button);
+
+                        buffer = gl_label_text_get_buffer (GL_LABEL_TEXT(object));
+                        gl_object_editor_set_text_buffer (editor, buffer);
+                }
+                else if (GL_IS_LABEL_BARCODE (object))
+                {
+                        image = "glabels-barcode";
+                        title = _("Barcode object properties");
+
+                        gtk_widget_show_all (editor->priv->pos_page_vbox);
+                        gtk_widget_show_all (editor->priv->size_page_vbox);
+                        gtk_widget_hide     (editor->priv->lsize_page_vbox);
+                        gtk_widget_hide     (editor->priv->fill_page_vbox);
+                        gtk_widget_hide     (editor->priv->line_page_vbox);
+                        gtk_widget_hide     (editor->priv->img_page_vbox);
+                        gtk_widget_hide     (editor->priv->text_page_vbox);
+                        gtk_widget_hide     (editor->priv->edit_page_vbox);
+                        gtk_widget_show_all (editor->priv->bc_page_vbox);
+                        gtk_widget_show_all (editor->priv->data_page_vbox);
+                        gtk_widget_hide     (editor->priv->shadow_page_vbox);
+
+                        gtk_widget_hide     (editor->priv->size_reset_image_button);
+                }
+
+                gtk_image_set_from_icon_name (GTK_IMAGE(editor->priv->title_image),
+                                              image,
+                                              GTK_ICON_SIZE_LARGE_TOOLBAR);
 
                s = g_strdup_printf ("<span weight=\"bold\">%s</span>",
                                     title);
                gtk_label_set_text (GTK_LABEL(editor->priv->title_label), s);
+               gtk_label_set_use_markup (GTK_LABEL(editor->priv->title_label), TRUE);
                g_free (s);
 
+                gtk_widget_set_sensitive (editor->priv->title_image, TRUE);
+                gtk_widget_set_sensitive (editor->priv->title_label, TRUE);
+
+                gtk_widget_show (editor->priv->notebook);
+
+                /* if the old active page is no longer visible, set to 1st visible page. */
+                new_page = gtk_notebook_get_current_page (GTK_NOTEBOOK (editor->priv->notebook));
+                if ( old_page != new_page )
+                {
+                        /* Trick: try in reverse order, only the last visible attempt will stick. */
+                        gtk_notebook_set_current_page (GTK_NOTEBOOK (editor->priv->notebook), 5);
+                        gtk_notebook_set_current_page (GTK_NOTEBOOK (editor->priv->notebook), 4);
+                        gtk_notebook_set_current_page (GTK_NOTEBOOK (editor->priv->notebook), 3);
+                        gtk_notebook_set_current_page (GTK_NOTEBOOK (editor->priv->notebook), 2);
+                        gtk_notebook_set_current_page (GTK_NOTEBOOK (editor->priv->notebook), 1);
+                        gtk_notebook_set_current_page (GTK_NOTEBOOK (editor->priv->notebook), 0);
+                }
+
+                object_moved_cb (object, editor);
+                object_changed_cb (object, editor);
+
+                g_signal_connect (G_OBJECT (object), "changed",
+                                  G_CALLBACK (object_changed_cb), editor);
+                g_signal_connect (G_OBJECT (object), "moved",
+                                  G_CALLBACK (object_moved_cb), editor);
+        }
+        else
+        {
+                editor->priv->object = NULL;
+
+                gtk_image_set_from_icon_name (GTK_IMAGE(editor->priv->title_image),
+                                              "glabels-object-properties",
+                                              GTK_ICON_SIZE_LARGE_TOOLBAR);
+
+               s = g_strdup_printf ("<span weight=\"bold\">%s</span>",
+                                    _("Object properties"));
+               gtk_label_set_text (GTK_LABEL(editor->priv->title_label), s);
                gtk_label_set_use_markup (GTK_LABEL(editor->priv->title_label), TRUE);
-                                         
-       }
+               g_free (s);
 
-       gtk_notebook_set_homogeneous_tabs (GTK_NOTEBOOK(editor->priv->notebook), TRUE);
+                gtk_widget_set_sensitive (editor->priv->title_image, FALSE);
+                gtk_widget_set_sensitive (editor->priv->title_label, FALSE);
 
-       va_start (args, first_option);
-       gl_object_notebook_construct_valist (editor, label, first_option, args);
-       va_end (args);
+                gtk_widget_hide (editor->priv->notebook);
+        }
 
        gl_debug (DEBUG_EDITOR, "END");
-
-       return GTK_WIDGET(editor);
 }
 
+
 /*--------------------------------------------------------------------------*/
-/* PRIVATE.  Construct notebook.                                            */
+/* PRIVATE. Prefs changed callback.  Update units related items.            */
 /*--------------------------------------------------------------------------*/
 static void
-gl_object_notebook_construct_valist (glObjectEditor       *editor,
-                                     glLabel              *label,
-                                    glObjectEditorOption  first_option,
-                                    va_list               args)
+prefs_changed_cb (glObjectEditor *editor)
 {
-       glObjectEditorOption option;
-       gint pages = 0;
 
        gl_debug (DEBUG_EDITOR, "START");
 
-        editor->priv->label = label;
-
-       option = first_option;
-
-       for ( option=first_option; option; option=va_arg (args, glObjectEditorOption) ) {
-
-               switch (option) {
-
-               case GL_OBJECT_EDITOR_EMPTY:
-                       gtk_widget_set_sensitive (editor->priv->title_image, FALSE);
-                       gtk_widget_set_sensitive (editor->priv->title_label, FALSE);
-                       break;
-
-               case GL_OBJECT_EDITOR_POSITION_PAGE:
-                       gl_object_editor_prepare_position_page (editor);
-                       pages++;
-                       break;
-
-               case GL_OBJECT_EDITOR_SIZE_PAGE:
-               case GL_OBJECT_EDITOR_SIZE_IMAGE_PAGE:
-                       gl_object_editor_prepare_size_page (editor, option);
-                       pages++;
-                       break;
-
-               case GL_OBJECT_EDITOR_SIZE_LINE_PAGE:
-                       gl_object_editor_prepare_lsize_page (editor);
-                       pages++;
-                       break;
-
-               case GL_OBJECT_EDITOR_FILL_PAGE:
-                       gl_object_editor_prepare_fill_page (editor);
-                       pages++;
-                       break;
-
-               case GL_OBJECT_EDITOR_LINE_PAGE:
-                       gl_object_editor_prepare_line_page (editor);
-                       pages++;
-                       break;
-
-               case GL_OBJECT_EDITOR_IMAGE_PAGE:
-                       gl_object_editor_prepare_image_page (editor);
-                       pages++;
-                       break;
-
-               case GL_OBJECT_EDITOR_TEXT_PAGE:
-                       gl_object_editor_prepare_text_page (editor);
-                       pages++;
-                       break;
-
-               case GL_OBJECT_EDITOR_EDIT_PAGE:
-                       gl_object_editor_prepare_edit_page (editor);
-                       pages++;
-                       break;
-
-               case GL_OBJECT_EDITOR_BC_PAGE:
-                       gl_object_editor_prepare_bc_page (editor);
-                       pages++;
-                       break;
-
-               case GL_OBJECT_EDITOR_DATA_PAGE:
-                       gl_object_editor_prepare_data_page (editor);
-                       pages++;
-                       break;
-
-               case GL_OBJECT_EDITOR_SHADOW_PAGE:
-                       gl_object_editor_prepare_shadow_page (editor);
-                       pages++;
-                       break;
-
-               default:
-                       g_message ("option = %d", option);
-                       g_assert_not_reached ();
-               }
+       if (editor->priv->lsize_r_spin) {
+               lsize_prefs_changed_cb (editor);
+       }
                
+       if (editor->priv->size_w_spin) {
+               size_prefs_changed_cb (editor);
        }
-       if (pages) {
-               gtk_widget_show (editor->priv->notebook);
+               
+       if (editor->priv->pos_x_spin) {
+               position_prefs_changed_cb (editor);
        }
 
-       g_signal_connect_swapped (G_OBJECT (gl_prefs), "changed",
-                                 G_CALLBACK (prefs_changed_cb),
-                                 editor);
-        if (label)
+       if (editor->priv->shadow_x_spin) {
+               shadow_prefs_changed_cb (editor);
+       }
+
+       gl_debug (DEBUG_EDITOR, "END");
+}
+
+
+/*---------------------------------------------------------------------------*/
+/* PRIVATE.  Label "selection state changed" callback.                       */
+/*---------------------------------------------------------------------------*/
+static void 
+selection_changed_cb (glLabel        *label,
+                     glObjectEditor *editor)
+{
+        glLabelObject *object;
+
+       gl_debug (DEBUG_EDITOR, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+       g_return_if_fail (editor && GL_IS_OBJECT_EDITOR (editor));
+
+       if (!gl_label_is_selection_atomic (label))
         {
-                label_changed_cb (label, editor);
-                g_signal_connect (G_OBJECT (label), "size_changed",
-                                  G_CALLBACK (label_changed_cb),
-                                  editor);
-                g_signal_connect (G_OBJECT (label), "merge_changed",
-                                  G_CALLBACK (label_changed_cb),
-                                  editor);
-        }
+                set_object (editor, NULL);
+       }
+        else
+        {
+                object = gl_label_get_1st_selected_object (label);
+                set_object (editor, object);
+       }
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
-/*--------------------------------------------------------------------------*/
-/* PRIVATE. Widget changed callback.  Emit our "changed" signal.            */
-/*--------------------------------------------------------------------------*/
-void
-gl_object_editor_changed_cb (glObjectEditor *editor)
+
+/*---------------------------------------------------------------------------*/
+/* PRIVATE. label "size_changed" callback.                                   */
+/*---------------------------------------------------------------------------*/
+static void
+label_changed_cb (glLabel        *label,
+                  glObjectEditor *editor)
 {
-        if (editor->priv->stop_signals) return;
+       gdouble   label_width, label_height;
 
        gl_debug (DEBUG_EDITOR, "START");
 
-       /* Emit our "changed" signal */
-       g_signal_emit (G_OBJECT (editor), gl_object_editor_signals[CHANGED], 0);
+       gl_label_get_size (label, &label_width, &label_height);
+       gl_object_editor_set_max_position (GL_OBJECT_EDITOR (editor),
+                                          label_width, label_height);
+       gl_object_editor_set_max_size (GL_OBJECT_EDITOR (editor),
+                                      label_width, label_height);
+       gl_object_editor_set_max_lsize (GL_OBJECT_EDITOR (editor),
+                                      label_width, label_height);
+       gl_object_editor_set_max_shadow_offset (GL_OBJECT_EDITOR (editor),
+                                               label_width, label_height);
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
-/*--------------------------------------------------------------------------*/
-/* PRIVATE. Widget size changed callback.  Emit our "size-changed" signal.  */
-/*--------------------------------------------------------------------------*/
-void
-gl_object_editor_size_changed_cb (glObjectEditor *editor)
+
+/*---------------------------------------------------------------------------*/
+/* PRIVATE. label "merge_changed" callback.                                  */
+/*---------------------------------------------------------------------------*/
+static void
+merge_changed_cb (glLabel        *label,
+                  glObjectEditor *editor)
 {
-        if (editor->priv->stop_signals) return;
+       glMerge  *merge;
 
        gl_debug (DEBUG_EDITOR, "START");
 
-       /* Emit our "size_changed" signal */
-       g_signal_emit (G_OBJECT (editor), gl_object_editor_signals[SIZE_CHANGED], 0);
+       merge = gl_label_get_merge (label);
+       set_key_names (editor, merge);
 
        gl_debug (DEBUG_EDITOR, "END");
 }
 
-/*****************************************************************************/
-/* Set possible key names from merge object.                                 */
-/*****************************************************************************/
-void
-gl_object_editor_set_key_names (glObjectEditor      *editor,
-                               glMerge             *merge)
+
+/*---------------------------------------------------------------------------*/
+/* PRIVATE. Load up possible key names from merge into various widgets.      */
+/*---------------------------------------------------------------------------*/
+static void
+set_key_names (glObjectEditor      *editor,
+               glMerge             *merge)
 {
         GList     *keys;
-       GtkWidget *combo;
+       GtkWidget *button;
        gboolean   fixed_flag;
        gboolean   state;
  
         gl_debug (DEBUG_EDITOR, "START");
 
-       if (editor->priv->edit_key_label) {
-               gtk_widget_set_sensitive (editor->priv->edit_key_label, merge != NULL);
-       }
-       if (editor->priv->edit_key_combo) {
-               gtk_widget_set_sensitive (editor->priv->edit_key_combo, merge != NULL);
-       }
-       if (editor->priv->text_auto_shrink_check) {
-               gtk_widget_set_sensitive (editor->priv->text_auto_shrink_check,
-                                         merge != NULL);
-       }
+        gtk_widget_set_sensitive (editor->priv->text_auto_shrink_check,
+                                  merge != NULL);
  
-       if (editor->priv->text_page_vbox) {
-               gtk_widget_set_sensitive (editor->priv->text_color_key_radio, merge != NULL);
-               if (merge == NULL) {
-                       gtk_toggle_button_set_active (
-                               GTK_TOGGLE_BUTTON(editor->priv->text_color_radio), TRUE);
-                       gtk_widget_set_sensitive (editor->priv->text_color_combo, TRUE);
-                       gtk_widget_set_sensitive (editor->priv->text_color_key_combo, FALSE);
-               } else {
-                       state = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(editor->priv->text_color_key_radio));
-                       gtk_widget_set_sensitive (editor->priv->text_color_combo, !state);
-                       gtk_widget_set_sensitive (editor->priv->text_color_key_combo, state);
-                                                 
-               }
+        gtk_widget_set_sensitive (editor->priv->text_color_key_radio, merge != NULL);
+        if (merge == NULL)
+        {
+                gtk_toggle_button_set_active (
+                        GTK_TOGGLE_BUTTON(editor->priv->text_color_radio), TRUE);
+                gtk_widget_set_sensitive (editor->priv->text_color_combo, TRUE);
+                gtk_widget_set_sensitive (editor->priv->text_color_key_combo, FALSE);
+        }
+        else
+        {
+                state = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(editor->priv->text_color_key_radio));
+                gtk_widget_set_sensitive (editor->priv->text_color_combo, !state);
+                gtk_widget_set_sensitive (editor->priv->text_color_key_combo, state);
        }
 
-       if (editor->priv->edit_insert_field_button) {
-               gtk_widget_set_sensitive (editor->priv->edit_insert_field_button,
-                                         merge != NULL);
-       }
+        gtk_widget_set_sensitive (editor->priv->edit_insert_field_button,
+                                  merge != NULL);
 
-       if (editor->priv->img_key_combo) {
-               gtk_widget_set_sensitive (editor->priv->img_key_combo, merge != NULL);
-       }
+        gtk_widget_set_sensitive (editor->priv->img_key_combo, merge != NULL);
  
-       if (editor->priv->img_key_radio) {
-               gtk_widget_set_sensitive (editor->priv->img_key_radio, merge != NULL);
-               if (merge == NULL) {
-                       gtk_toggle_button_set_active (
-                               GTK_TOGGLE_BUTTON(editor->priv->img_file_radio), TRUE);
-               }
-       }
+        gtk_widget_set_sensitive (editor->priv->img_key_radio, merge != NULL);
+        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(editor->priv->img_file_radio),
+                                      merge == NULL);
 
-       if (editor->priv->data_key_combo) {
-               gtk_widget_set_sensitive (editor->priv->data_key_combo, merge != NULL);
-       }
+        gtk_widget_set_sensitive (editor->priv->data_key_combo, merge != NULL);
  
-       if (editor->priv->data_key_radio) {
-               gtk_widget_set_sensitive (editor->priv->data_key_radio, merge != NULL);
-               if (merge == NULL) {
-                       gtk_toggle_button_set_active (
-                               GTK_TOGGLE_BUTTON(editor->priv->data_literal_radio), TRUE);
-               }
-       }
+        gtk_widget_set_sensitive (editor->priv->data_key_radio, merge != NULL);
+        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(editor->priv->data_literal_radio),
+                                      merge == NULL);
        
        fixed_flag = editor->priv->data_format_fixed_flag;
-       if (editor->priv->data_format_label) {
-               gtk_widget_set_sensitive (editor->priv->data_format_label,
-                                         (merge != NULL));
-       }
-       if (editor->priv->data_ex_label) {
-               gtk_widget_set_sensitive (editor->priv->data_ex_label,
-                                         (merge != NULL));
-       }
-       if (editor->priv->data_digits_label) {
-               gtk_widget_set_sensitive (editor->priv->data_digits_label,
-                                         (merge != NULL) && !fixed_flag);
-       }
-       if (editor->priv->data_digits_spin) {
-               gtk_widget_set_sensitive (editor->priv->data_digits_spin,
-                                         (merge != NULL) && !fixed_flag);
-       }
-
-       if (editor->priv->fill_page_vbox) {
-               gtk_widget_set_sensitive (editor->priv->fill_key_radio, merge != NULL);
-               if (merge == NULL) {
-                       gtk_toggle_button_set_active (
-                               GTK_TOGGLE_BUTTON(editor->priv->fill_color_radio), TRUE);
-                       gtk_widget_set_sensitive (editor->priv->fill_color_combo, TRUE);
-                       gtk_widget_set_sensitive (editor->priv->fill_key_combo, FALSE);
-               } else {
-                       state = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(editor->priv->fill_key_radio));
-                       gtk_widget_set_sensitive (editor->priv->fill_color_combo, !state);
-                       gtk_widget_set_sensitive (editor->priv->fill_key_combo, state);
-                                                 
-               }
-       }
+        gtk_widget_set_sensitive (editor->priv->data_format_label, merge != NULL);
+        gtk_widget_set_sensitive (editor->priv->data_ex_label, merge != NULL);
+        gtk_widget_set_sensitive (editor->priv->data_digits_label,
+                                  (merge != NULL) && !fixed_flag);
+        gtk_widget_set_sensitive (editor->priv->data_digits_spin,
+                                  (merge != NULL) && !fixed_flag);
+
+        gtk_widget_set_sensitive (editor->priv->fill_key_radio, merge != NULL);
+        if (merge == NULL)
+        {
+                gtk_toggle_button_set_active (
+                        GTK_TOGGLE_BUTTON(editor->priv->fill_color_radio), TRUE);
+                gtk_widget_set_sensitive (editor->priv->fill_color_combo, TRUE);
+                gtk_widget_set_sensitive (editor->priv->fill_key_combo, FALSE);
+        }
+        else
+        {
+                state = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(editor->priv->fill_key_radio));
+                gtk_widget_set_sensitive (editor->priv->fill_color_combo, !state);
+                gtk_widget_set_sensitive (editor->priv->fill_key_combo, state);
+        }
 
-       if (editor->priv->line_page_vbox) {
-               gtk_widget_set_sensitive (editor->priv->line_key_radio, merge != NULL);
-               if (merge == NULL) {
-                       gtk_toggle_button_set_active (
-                               GTK_TOGGLE_BUTTON(editor->priv->line_color_radio), TRUE);
-                       gtk_widget_set_sensitive (editor->priv->line_color_combo, TRUE);
-                       gtk_widget_set_sensitive (editor->priv->line_key_combo, FALSE);
-               } else {
-                       state = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(editor->priv->line_key_radio));
-                       gtk_widget_set_sensitive (editor->priv->line_color_combo, !state);
-                       gtk_widget_set_sensitive (editor->priv->line_key_combo, state);
-                                                 
-               }
-       }
+        gtk_widget_set_sensitive (editor->priv->line_key_radio, merge != NULL);
+        if (merge == NULL)
+        {
+                gtk_toggle_button_set_active (
+                        GTK_TOGGLE_BUTTON(editor->priv->line_color_radio), TRUE);
+                gtk_widget_set_sensitive (editor->priv->line_color_combo, TRUE);
+                gtk_widget_set_sensitive (editor->priv->line_key_combo, FALSE);
+        }
+        else
+        {
+                state = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(editor->priv->line_key_radio));
+                gtk_widget_set_sensitive (editor->priv->line_color_combo, !state);
+                gtk_widget_set_sensitive (editor->priv->line_key_combo, state);
+        }
 
-       if (editor->priv->bc_page_vbox) {
-               gtk_widget_set_sensitive (editor->priv->bc_key_radio, merge != NULL);
-               if (merge == NULL) {
-                       gtk_toggle_button_set_active (
-                               GTK_TOGGLE_BUTTON(editor->priv->bc_color_radio), TRUE);
-                       gtk_widget_set_sensitive (editor->priv->bc_color_combo, TRUE);
-                       gtk_widget_set_sensitive (editor->priv->bc_key_combo, FALSE);
-               } else {
-                       state = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(editor->priv->bc_key_radio));
-                       gtk_widget_set_sensitive (editor->priv->bc_color_combo, !state);
-                       gtk_widget_set_sensitive (editor->priv->bc_key_combo, state);
-                                                 
-               }
-       }
+        gtk_widget_set_sensitive (editor->priv->bc_key_radio, merge != NULL);
+        if (merge == NULL)
+        {
+                gtk_toggle_button_set_active (
+                        GTK_TOGGLE_BUTTON(editor->priv->bc_color_radio), TRUE);
+                gtk_widget_set_sensitive (editor->priv->bc_color_combo, TRUE);
+                gtk_widget_set_sensitive (editor->priv->bc_key_combo, FALSE);
+        }
+        else
+        {
+                state = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(editor->priv->bc_key_radio));
+                gtk_widget_set_sensitive (editor->priv->bc_color_combo, !state);
+                gtk_widget_set_sensitive (editor->priv->bc_key_combo, state);
+        }
 
-       if (editor->priv->shadow_page_vbox) {
-               gtk_widget_set_sensitive (editor->priv->shadow_key_radio, merge != NULL);
-               if (merge == NULL) {
-                       gtk_toggle_button_set_active (
-                               GTK_TOGGLE_BUTTON(editor->priv->shadow_color_radio), TRUE);
-                       gtk_widget_set_sensitive (editor->priv->shadow_color_combo, TRUE);
-                       gtk_widget_set_sensitive (editor->priv->shadow_key_combo, FALSE);
-               } else {
-                       state = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(editor->priv->shadow_key_radio));
-                       gtk_widget_set_sensitive (editor->priv->shadow_color_combo, !state);
-                       gtk_widget_set_sensitive (editor->priv->shadow_key_combo, state);
-                                                 
-               }
-       }
+        gtk_widget_set_sensitive (editor->priv->shadow_key_radio, merge != NULL);
+        if (merge == NULL)
+        {
+                gtk_toggle_button_set_active (
+                        GTK_TOGGLE_BUTTON(editor->priv->shadow_color_radio), TRUE);
+                gtk_widget_set_sensitive (editor->priv->shadow_color_combo, TRUE);
+                gtk_widget_set_sensitive (editor->priv->shadow_key_combo, FALSE);
+        }
+        else
+        {
+                state = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(editor->priv->shadow_key_radio));
+                gtk_widget_set_sensitive (editor->priv->shadow_color_combo, !state);
+                gtk_widget_set_sensitive (editor->priv->shadow_key_combo, state);
+        }
 
         keys = gl_merge_get_key_list (merge);
         if ( keys == NULL ) {
                 keys = g_list_append (keys, g_strdup (""));
        }
 
-       combo = editor->priv->img_key_combo;
-       if (combo) {
-               gl_util_combo_box_set_strings (GTK_COMBO_BOX (combo), keys);
-       }
+       button = editor->priv->img_key_combo;
+        gl_field_button_set_keys (GL_FIELD_BUTTON (button), keys);
 
-       combo = editor->priv->edit_key_combo;
-       if (combo) {
-               gl_util_combo_box_set_strings (GTK_COMBO_BOX (combo), keys);
-       }
+       button = editor->priv->edit_insert_field_button;
+        gl_field_button_set_keys (GL_FIELD_BUTTON(button), keys);
 
-       combo = editor->priv->data_key_combo;
-       if (combo) {
-               gl_util_combo_box_set_strings (GTK_COMBO_BOX (combo), keys);
-       }
+       button = editor->priv->data_key_combo;
+        gl_field_button_set_keys (GL_FIELD_BUTTON (button), keys);
                
-       combo = editor->priv->fill_key_combo;
-       if (combo) {
-               gl_util_combo_box_set_strings (GTK_COMBO_BOX (combo), keys);
-       }
+       button = editor->priv->fill_key_combo;
+        gl_field_button_set_keys (GL_FIELD_BUTTON (button), keys);
 
-       combo = editor->priv->text_color_key_combo;
-       if (combo) {
-               gl_util_combo_box_set_strings (GTK_COMBO_BOX (combo), keys);
-       }
+       button = editor->priv->text_color_key_combo;
+        gl_field_button_set_keys (GL_FIELD_BUTTON (button), keys);
 
-       combo = editor->priv->line_key_combo;
-       if (combo) {
-               gl_util_combo_box_set_strings (GTK_COMBO_BOX (combo), keys);
-       }
+       button = editor->priv->line_key_combo;
+        gl_field_button_set_keys (GL_FIELD_BUTTON (button), keys);
                
-       combo = editor->priv->bc_key_combo;
-       if (combo) {
-               gl_util_combo_box_set_strings (GTK_COMBO_BOX (combo), keys);
-       }
+       button = editor->priv->bc_key_combo;
+        gl_field_button_set_keys (GL_FIELD_BUTTON (button), keys);
                
-       combo = editor->priv->shadow_key_combo;
-       if (combo) {
-               gl_util_combo_box_set_strings (GTK_COMBO_BOX (combo), keys);
-       }
+       button = editor->priv->shadow_key_combo;
+        gl_field_button_set_keys (GL_FIELD_BUTTON (button), keys);
 
        gl_merge_free_key_list (&keys);
  
         gl_debug (DEBUG_EDITOR, "END");
 }
 
-/*****************************************************************************/
-/* Construct color combo "Custom widget".                                    */
-/*****************************************************************************/
-GtkWidget *
-gl_object_editor_construct_color_combo (gchar *name,
-                                       gchar *string1,
-                                       gchar *string2,
-                                       gint   int1,
-                                       gint   int2)
+
+/*---------------------------------------------------------------------------*/
+/* PRIVATE. object "changed" callback.                                       */
+/*---------------------------------------------------------------------------*/
+static void
+object_changed_cb (glLabelObject  *object,
+                   glObjectEditor *editor)
 {
-       GtkWidget  *color_combo;
-       ColorGroup *cg;
-       gchar      *cg_name;
-       GdkColor   *gdk_color;
-       gchar      *no_color;
-
-       switch (int1) {
-
-       case 3:
-               cg_name  = "shadow_color_group";
-                gdk_color = gl_color_to_gdk_color (GL_COLOR_SHADOW_DEFAULT);
-               no_color = _("Default");
-               break;
-
-       case 2:
-               cg_name  = "text_color_group";
-                gdk_color = gl_color_to_gdk_color (gl_prefs->default_text_color);
-               no_color = _("Default");
-               break;
-
-       case 1:
-               cg_name  = "line_color_group";
-                gdk_color = NULL;
-               no_color = _("No line");
-               break;
-
-       case 0:
-       default:
-               cg_name  = "fill_color_group";
-                gdk_color = NULL;
-               no_color = _("No fill");
-               break;
+        gdouble              w, h;
+        glColorNode         *line_color_node;
+        gdouble              line_width;
+        glColorNode         *fill_color_node;
+        gchar               *font_family;
+        gdouble              font_size;
+        PangoWeight          font_weight;
+        gboolean             font_italic_flag;
+        glColorNode         *text_color_node;
+        PangoAlignment       align;
+        gdouble              text_line_spacing;
+        gboolean             auto_shrink;
+        gdouble              image_w, image_h;
+        glTextNode          *filename;
+        glTextNode          *bc_data;
+        glLabelBarcodeStyle *bc_style;
+        gboolean             shadow_state;
+        gdouble              shadow_x, shadow_y;
+        glColorNode         *shadow_color_node;
+        gdouble              shadow_opacity;
+        glLabel             *label;
+        glMerge             *merge;
+
+        gl_debug (DEBUG_EDITOR, "BEGIN");
+
+
+        label = gl_label_object_get_parent (object);
+        merge = gl_label_get_merge (label);
+
+
+        if ( GL_IS_LABEL_BOX (object) || GL_IS_LABEL_ELLIPSE (object) )
+        {
 
-       }
+                gl_label_object_get_size (object, &w, &h);
+                fill_color_node   = gl_label_object_get_fill_color (GL_LABEL_OBJECT(object));
+                line_color_node   = gl_label_object_get_line_color (GL_LABEL_OBJECT(object));
+                line_width        = gl_label_object_get_line_width (GL_LABEL_OBJECT(object));
+
+                gl_object_editor_set_size (editor, w, h);
+                gl_object_editor_set_fill_color (editor, (merge != NULL), fill_color_node);
+                gl_object_editor_set_line_color (editor, (merge != NULL), line_color_node);
+                gl_object_editor_set_line_width (editor, line_width);
+
+                gl_color_node_free (&fill_color_node);
+                gl_color_node_free (&line_color_node);
+
+        }
+        else if ( GL_IS_LABEL_LINE (object) )
+        {
+
+                gl_label_object_get_size (object, &w, &h);
+                line_color_node   = gl_label_object_get_line_color (GL_LABEL_OBJECT(object));
+                line_width        = gl_label_object_get_line_width (GL_LABEL_OBJECT(object));
+
+                gl_object_editor_set_lsize (editor, w, h);
+                gl_object_editor_set_line_color (editor, (merge != NULL), line_color_node);
+                gl_object_editor_set_line_width (editor, line_width);
+
+                gl_color_node_free (&line_color_node);
+
+        }
+        else if ( GL_IS_LABEL_IMAGE (object) )
+        {
+
+                gl_label_object_get_size (object, &w, &h);
+                filename = gl_label_image_get_filename (GL_LABEL_IMAGE(object));
+
+                gl_label_image_get_base_size (GL_LABEL_IMAGE(object), &image_w, &image_h);
+
+                gl_object_editor_set_size (editor, w, h);
+                gl_object_editor_set_base_size (editor, image_w, image_h);
+                gl_object_editor_set_image (editor, (merge != NULL), filename);
+
+                gl_text_node_free (&filename);
+
+        }
+        else if ( GL_IS_LABEL_TEXT (object) )
+        {
+
+                gl_label_object_get_size (object, &w, &h);
+                font_family       = gl_label_object_get_font_family (object);
+                font_size         = gl_label_object_get_font_size (object);
+                font_weight       = gl_label_object_get_font_weight (object);
+                font_italic_flag  = gl_label_object_get_font_italic_flag (object);
+                text_color_node   = gl_label_object_get_text_color (object);
+                align             = gl_label_object_get_text_alignment (object);
+                text_line_spacing = gl_label_object_get_text_line_spacing (object);
+                auto_shrink       = gl_label_text_get_auto_shrink (GL_LABEL_TEXT (object));
+
+                gl_object_editor_set_size (editor, w, h);
+                gl_object_editor_set_font_family (editor, font_family);
+                gl_object_editor_set_font_size (editor, font_size);
+                gl_object_editor_set_font_weight (editor, font_weight);
+                gl_object_editor_set_font_italic_flag (editor, font_italic_flag);
+                gl_object_editor_set_text_color (editor, (merge != NULL), text_color_node);
+                gl_object_editor_set_text_alignment (editor, align);
+                gl_object_editor_set_text_line_spacing (editor, text_line_spacing);
+                gl_object_editor_set_text_auto_shrink (editor, auto_shrink);
+
+                gl_color_node_free (&text_color_node);
+                g_free (font_family);
+
+        }
+        else if ( GL_IS_LABEL_BARCODE (object) )
+        {
+
+                gl_label_object_get_size (object, &w, &h);
+                bc_data  = gl_label_barcode_get_data (GL_LABEL_BARCODE(object));
+                bc_style = gl_label_barcode_get_style (GL_LABEL_BARCODE(object));
+                line_color_node = gl_label_object_get_line_color (GL_LABEL_OBJECT(object));
 
-       cg = color_group_fetch (cg_name, NULL);
-       color_combo = color_combo_new (NULL, no_color, gdk_color, cg);
-        g_free (gdk_color);
+                gl_object_editor_set_size (editor, w, h);
+                gl_object_editor_set_data (editor, (merge != NULL), bc_data);
+                gl_object_editor_set_bc_style (editor, bc_style);
+                gl_object_editor_set_bc_color (editor, (merge != NULL), line_color_node);
+
+                gl_text_node_free (&bc_data);
+                gl_label_barcode_style_free (bc_style);
+
+        }
 
-       color_combo_box_set_preview_relief (COLOR_COMBO(color_combo), GTK_RELIEF_NORMAL);
 
-       return color_combo;
+        shadow_state      = gl_label_object_get_shadow_state (object);
+        gl_label_object_get_shadow_offset (object, &shadow_x, &shadow_y);
+        shadow_color_node = gl_label_object_get_shadow_color (object);
+        shadow_opacity    = gl_label_object_get_shadow_opacity (object);
+
+        gl_object_editor_set_shadow_state (editor, shadow_state);
+        gl_object_editor_set_shadow_offset (editor, shadow_x, shadow_y);
+        gl_object_editor_set_shadow_color (editor, (merge != NULL), shadow_color_node);
+        gl_object_editor_set_shadow_opacity (editor, shadow_opacity);
+
+        gl_color_node_free (&shadow_color_node);
+
+
+        gl_debug (DEBUG_EDITOR, "END");
 }
 
-/*****************************************************************************/
-/* Construct chain button "Custom widget".                                   */
-/*****************************************************************************/
-GtkWidget *
-gl_object_editor_construct_chain_button (gchar *name,
-                                        gchar *string1,
-                                        gchar *string2,
-                                        gint   int1,
-                                        gint   int2)
+
+/*---------------------------------------------------------------------------*/
+/* PRIVATE. object "moved" callback.                                         */
+/*---------------------------------------------------------------------------*/
+static void
+object_moved_cb (glLabelObject  *object,
+                 glObjectEditor *editor)
 {
-       GtkWidget  *chain_button;
+        gdouble              x, y;
 
-       chain_button = gl_wdgt_chain_button_new (GL_WDGT_CHAIN_RIGHT);
-       gl_wdgt_chain_button_set_active (GL_WDGT_CHAIN_BUTTON(chain_button), TRUE);
+        gl_debug (DEBUG_EDITOR, "BEGIN");
 
-       return chain_button;
+        gl_label_object_get_position (object, &x, &y);
+        gl_object_editor_set_position (editor, x, y);
+
+        gl_debug (DEBUG_EDITOR, "END");
 }
 
-/*--------------------------------------------------------------------------*/
-/* PRIVATE. Prefs changed callback.  Update units related items.            */
-/*--------------------------------------------------------------------------*/
-static void
-prefs_changed_cb (glObjectEditor *editor)
+
+/*****************************************************************************/
+/* Object editor "changed" callback.                                         */
+/*****************************************************************************/
+void
+gl_object_editor_changed_cb (glObjectEditor *editor)
 {
+        glLabelObject       *object = editor->priv->object;
+        gdouble              x, y;
+        glColorNode         *line_color_node;
+        gdouble              line_width;
+        glColorNode         *fill_color_node;
+        gchar               *font_family;
+        gdouble              font_size;
+        PangoWeight          font_weight;
+        gboolean             font_italic_flag;
+        glColorNode         *text_color_node;
+        PangoAlignment       align;
+        gdouble              text_line_spacing;
+        gboolean             auto_shrink;
+        glTextNode          *filename;
+        gdouble              w, h;
+        gdouble              image_w, image_h;
+        gdouble              new_w, new_h;
+        glTextNode          *bc_data;
+        glLabelBarcodeStyle *bc_style;
+        gboolean             shadow_state;
+        gdouble              shadow_x, shadow_y;
+        glColorNode         *shadow_color_node;
+        gdouble              shadow_opacity;
+
+        gl_debug (DEBUG_EDITOR, "BEGIN");
+
+
+        g_signal_handlers_block_by_func (G_OBJECT (object), object_changed_cb, editor);
+        g_signal_handlers_block_by_func (G_OBJECT (object), object_moved_cb, editor);
+
+
+        gl_object_editor_get_position (editor, &x, &y);
+        gl_label_object_set_position (object, x, y, TRUE);
+
+
+        if ( GL_IS_LABEL_BOX (object) || GL_IS_LABEL_ELLIPSE (object) )
+        {
 
-       gl_debug (DEBUG_EDITOR, "START");
+                fill_color_node   = gl_object_editor_get_fill_color (editor);
+                line_color_node   = gl_object_editor_get_line_color (editor);
+                line_width        = gl_object_editor_get_line_width (editor);
 
-       if (editor->priv->lsize_r_spin) {
-               lsize_prefs_changed_cb (editor);
-       }
-               
-       if (editor->priv->size_w_spin) {
-               size_prefs_changed_cb (editor);
-       }
-               
-       if (editor->priv->pos_x_spin) {
-               position_prefs_changed_cb (editor);
-       }
+                gl_label_object_set_fill_color (object, fill_color_node, TRUE);
+                gl_label_object_set_line_color (object, line_color_node, TRUE);
+                gl_label_object_set_line_width (object, line_width, TRUE);
 
-       if (editor->priv->shadow_x_spin) {
-               shadow_prefs_changed_cb (editor);
-       }
+                gl_color_node_free (&fill_color_node);
+                gl_color_node_free (&line_color_node);
 
-       gl_debug (DEBUG_EDITOR, "END");
+        }
+        else if (GL_IS_LABEL_LINE (object))
+        {
+
+                line_color_node   = gl_object_editor_get_line_color (editor);
+                line_width        = gl_object_editor_get_line_width (editor);
+
+                gl_label_object_set_line_color (object, line_color_node, TRUE);
+                gl_label_object_set_line_width (object, line_width, TRUE);
+
+                gl_color_node_free (&line_color_node);
+
+        }
+        else if ( GL_IS_LABEL_IMAGE (object) )
+        {
+
+                filename = gl_object_editor_get_image (editor);
+
+                gl_label_image_set_filename (GL_LABEL_IMAGE(object), filename, TRUE);
+
+                /* Setting filename may have modified the size. */
+                gl_object_editor_get_size (editor, &w, &h);
+                gl_label_object_get_size (object, &new_w, &new_h);
+                if ( (new_w != w) || (new_h != h) )
+                {
+                        gl_object_editor_set_size (editor, new_w, new_h);
+                }
+
+                /* It may also have a new base size. */
+                gl_label_image_get_base_size (GL_LABEL_IMAGE(object), &image_w, &image_h);
+                gl_object_editor_set_base_size (editor, image_w, image_h);
+
+                gl_text_node_free (&filename);
+
+        }
+        else if (GL_IS_LABEL_TEXT (object))
+        {
+
+                font_family       = gl_object_editor_get_font_family (editor);
+                font_size         = gl_object_editor_get_font_size (editor);
+                font_weight       = gl_object_editor_get_font_weight (editor);
+                font_italic_flag  = gl_object_editor_get_font_italic_flag (editor);
+                text_color_node   = gl_object_editor_get_text_color (editor);
+                align             = gl_object_editor_get_text_alignment (editor);
+                text_line_spacing = gl_object_editor_get_text_line_spacing (editor);
+                auto_shrink       = gl_object_editor_get_text_auto_shrink (editor);
+
+                gl_label_object_set_font_family (object, font_family, TRUE);
+                gl_label_object_set_font_size (object, font_size, TRUE);
+                gl_label_object_set_font_weight (object, font_weight, TRUE);
+                gl_label_object_set_font_italic_flag (object, font_italic_flag, TRUE);
+                gl_label_object_set_text_color (object, text_color_node, TRUE);
+                gl_label_object_set_text_alignment (object, align, TRUE);
+                gl_label_object_set_text_line_spacing (object, text_line_spacing, TRUE);
+                gl_label_text_set_auto_shrink (GL_LABEL_TEXT (object), auto_shrink, TRUE);
+
+                gl_color_node_free (&text_color_node);
+                g_free (font_family);
+
+        }
+        else if (GL_IS_LABEL_BARCODE (object))
+        {
+
+                line_color_node = gl_object_editor_get_bc_color (editor);
+                bc_data  = gl_object_editor_get_data (editor);
+                bc_style = gl_object_editor_get_bc_style (editor);
+
+                gl_label_object_set_line_color (object, line_color_node, TRUE);
+                gl_label_barcode_set_data (GL_LABEL_BARCODE(object), bc_data, TRUE);
+                gl_label_barcode_set_style (GL_LABEL_BARCODE(object), bc_style, TRUE);
+
+                gl_color_node_free (&line_color_node);
+                gl_text_node_free (&bc_data);
+                gl_label_barcode_style_free (bc_style);
+
+        }
+
+
+        shadow_state      = gl_object_editor_get_shadow_state (editor);
+        gl_object_editor_get_shadow_offset (editor, &shadow_x, &shadow_y);
+        shadow_color_node = gl_object_editor_get_shadow_color (editor);
+        shadow_opacity    = gl_object_editor_get_shadow_opacity (editor);
+
+        gl_label_object_set_shadow_state (object, shadow_state, TRUE);
+        gl_label_object_set_shadow_offset (object, shadow_x, shadow_y, TRUE);
+        gl_label_object_set_shadow_color (object, shadow_color_node, TRUE);
+        gl_label_object_set_shadow_opacity (object, shadow_opacity, TRUE);
+
+        gl_color_node_free (&shadow_color_node);
+
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (object), object_changed_cb, editor);
+        g_signal_handlers_unblock_by_func (G_OBJECT (object), object_moved_cb, editor);
+
+        gl_debug (DEBUG_EDITOR, "END");
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE. label "changed" callback.                                        */
-/*---------------------------------------------------------------------------*/
-static void
-label_changed_cb (glLabel        *label,
-                  glObjectEditor *editor)
+
+/*****************************************************************************/
+/* Object editor "size_changed" callback.                                    */
+/*****************************************************************************/
+void
+gl_object_editor_size_changed_cb (glObjectEditor *editor)
 {
-       gdouble   label_width, label_height;
-       glMerge  *merge;
+        glLabelObject     *object = editor->priv->object;
+        gdouble            w, h;
 
-       gl_debug (DEBUG_EDITOR, "START");
+        gl_debug (DEBUG_EDITOR, "BEGIN");
 
-       gl_label_get_size (label, &label_width, &label_height);
-       gl_object_editor_set_max_position (GL_OBJECT_EDITOR (editor),
-                                          label_width, label_height);
-       gl_object_editor_set_max_size (GL_OBJECT_EDITOR (editor),
-                                      label_width, label_height);
-       gl_object_editor_set_max_lsize (GL_OBJECT_EDITOR (editor),
-                                      label_width, label_height);
-       gl_object_editor_set_max_shadow_offset (GL_OBJECT_EDITOR (editor),
-                                               label_width, label_height);
-       
-       merge = gl_label_get_merge (label);
-       gl_object_editor_set_key_names (editor, merge);
+        g_signal_handlers_block_by_func (G_OBJECT (object), object_changed_cb, editor);
 
-       gl_debug (DEBUG_EDITOR, "END");
+
+        if ( GL_IS_LABEL_LINE (object) )
+        {
+                gl_object_editor_get_lsize (editor, &w, &h);
+        }
+        else
+        {
+                gl_object_editor_get_size (editor, &w, &h);
+        }
+
+        gl_label_object_set_size (object, w, h, TRUE);
+
+
+        g_signal_handlers_unblock_by_func (G_OBJECT (object), object_changed_cb, editor);
+
+        gl_debug (DEBUG_EDITOR, "END");
 }
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index fe3bbe56ac326f3ce908b7de7d218b8b0480a5c4..a51d7e3adb4ab6c0d647a9e6ba4b374d63177474 100644 (file)
@@ -1,62 +1,46 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  object-editor.h:  object properties editor module header file
+ *  object-editor.h
+ *  Copyright (C) 2003-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #ifndef __OBJECT_EDITOR_H__
 #define __OBJECT_EDITOR_H__
 
-#include <gtk/gtkvbox.h>
-#include <gtk/gtktextbuffer.h>
+#include <gtk/gtk.h>
 
 #include "text-node.h"
 #include "label.h"
 #include "merge.h"
-#include "bc.h"
 #include "color.h"
 
 G_BEGIN_DECLS
 
-typedef enum {
-       GL_OBJECT_EDITOR_EMPTY = 1,
-       GL_OBJECT_EDITOR_POSITION_PAGE,
-       GL_OBJECT_EDITOR_SIZE_PAGE,
-       GL_OBJECT_EDITOR_SIZE_IMAGE_PAGE,
-       GL_OBJECT_EDITOR_SIZE_LINE_PAGE,
-       GL_OBJECT_EDITOR_FILL_PAGE,
-       GL_OBJECT_EDITOR_LINE_PAGE,
-       GL_OBJECT_EDITOR_IMAGE_PAGE,
-       GL_OBJECT_EDITOR_TEXT_PAGE,
-       GL_OBJECT_EDITOR_EDIT_PAGE,
-       GL_OBJECT_EDITOR_BC_PAGE,
-       GL_OBJECT_EDITOR_DATA_PAGE,
-       GL_OBJECT_EDITOR_SHADOW_PAGE,
-} glObjectEditorOption;
-
 #define GL_TYPE_OBJECT_EDITOR            (gl_object_editor_get_type ())
-#define GL_OBJECT_EDITOR(obj)            (GTK_CHECK_CAST ((obj), GL_TYPE_OBJECT_EDITOR, glObjectEditor))
-#define GL_OBJECT_EDITOR_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_OBJECT_EDITOR, glObjectEditorClass))
-#define GL_IS_OBJECT_EDITOR(obj)         (GTK_CHECK_TYPE ((obj), GL_TYPE_OBJECT_EDITOR))
-#define GL_IS_OBJECT_EDITOR_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_OBJECT_EDITOR))
-#define GL_OBJECT_EDITOR_GET_CLASS(obj)  (GTK_CHECK_GET_CLASS ((obj), GL_TYPE_OBJECT_EDITOR, glObjectEditorClass))
+#define GL_OBJECT_EDITOR(obj) \
+        (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_OBJECT_EDITOR, glObjectEditor))
+#define GL_OBJECT_EDITOR_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_OBJECT_EDITOR, glObjectEditorClass))
+#define GL_IS_OBJECT_EDITOR(obj) \
+        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_OBJECT_EDITOR))
+#define GL_IS_OBJECT_EDITOR_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_OBJECT_EDITOR))
+#define GL_OBJECT_EDITOR_GET_CLASS(obj) \
+        (G_TYPE_INSTANCE_GET_CLASS ((obj), GL_TYPE_OBJECT_EDITOR, glObjectEditorClass))
 
 
 typedef struct _glObjectEditor         glObjectEditor;
@@ -75,228 +59,31 @@ struct _glObjectEditor
 struct  _glObjectEditorClass
 {
        GtkVBoxClass             parent_class;
-
-       void (*changed)      (glObjectEditor *editor, gpointer user_data);
-       void (*size_changed) (glObjectEditor *editor, gpointer user_data);
 };
 
 
 
 
-GtkType     gl_object_editor_get_type             (void) G_GNUC_CONST;
-
-GtkWidget  *gl_object_editor_new                  (gchar               *image,
-                                                  gchar               *title,
-                                                   glLabel             *label,
-                                                  glObjectEditorOption first_option, ...);
-
-void        gl_object_editor_set_key_names        (glObjectEditor      *editor,
-                                                  glMerge             *merge);
-
-
-/*
- * Position Page
- */
-void        gl_object_editor_set_position         (glObjectEditor      *editor,
-                                                  gdouble              x,
-                                                  gdouble              y);
-
-void        gl_object_editor_set_max_position     (glObjectEditor      *editor,
-                                                  gdouble              x_max,
-                                                  gdouble              y_max);
-
-void        gl_object_editor_get_position         (glObjectEditor      *editor,
-                                                  gdouble             *x,
-                                                  gdouble             *y);
-
-/*
- * Size Page
- */
-void        gl_object_editor_set_size             (glObjectEditor      *editor,
-                                                  gdouble              w,
-                                                  gdouble              h);
-
-void        gl_object_editor_set_max_size         (glObjectEditor      *editor,
-                                                  gdouble              w_max,
-                                                  gdouble              h_max);
-
-void        gl_object_editor_set_base_size        (glObjectEditor      *editor,
-                                                  gdouble              w_max,
-                                                  gdouble              h_max);
-
-void        gl_object_editor_get_size             (glObjectEditor      *editor,
-                                                  gdouble             *w,
-                                                  gdouble             *h);
-
-
-/*
- * Line Size Page
- */
-void        gl_object_editor_set_lsize            (glObjectEditor      *editor,
-                                                  gdouble              dx,
-                                                  gdouble              dy);
-
-void        gl_object_editor_set_max_lsize        (glObjectEditor      *editor,
-                                                  gdouble              dx_max,
-                                                  gdouble              dy_max);
-
-void        gl_object_editor_get_lsize            (glObjectEditor      *editor,
-                                                  gdouble             *dx,
-                                                  gdouble             *dy);
-
-
-/*
- * Fill Page
- */
-void        gl_object_editor_set_fill_color       (glObjectEditor      *editor,
-                                                  gboolean             merge_flag,
-                                                  glColorNode         *color_node);
-
-glColorNode* gl_object_editor_get_fill_color      (glObjectEditor      *editor);
-
-
-/*
- * Line/Outline Page
- */
-void        gl_object_editor_set_line_color       (glObjectEditor      *editor,
-                                                  gboolean             merge_flag,
-                                                  glColorNode         *color_node);
-
-glColorNode* gl_object_editor_get_line_color      (glObjectEditor      *editor);
-
-void        gl_object_editor_set_line_width       (glObjectEditor      *editor,
-                                                  gdouble              width);
-
-gdouble     gl_object_editor_get_line_width       (glObjectEditor      *editor);
-
-
-/*
- * Image Page
- */
-void        gl_object_editor_set_image            (glObjectEditor      *editor,
-                                                  gboolean             merge_flag,
-                                                  glTextNode          *text_node);
-
-glTextNode *gl_object_editor_get_image            (glObjectEditor      *editor);
-
-
-/*
- * Text Page
- */
-void        gl_object_editor_set_font_family      (glObjectEditor      *editor,
-                                                  const gchar         *font_family);
-
-gchar      *gl_object_editor_get_font_family      (glObjectEditor      *editor);
-
-void        gl_object_editor_set_font_size        (glObjectEditor      *editor,
-                                                  gdouble              font_size);
-
-gdouble     gl_object_editor_get_font_size        (glObjectEditor      *editor);
-
-void        gl_object_editor_set_font_weight      (glObjectEditor      *editor,
-                                                  PangoWeight          font_weight);
-
-PangoWeight gl_object_editor_get_font_weight      (glObjectEditor      *editor);
-
-void        gl_object_editor_set_font_italic_flag (glObjectEditor      *editor,
-                                                  gboolean             font_italic_flag);
-
-gboolean    gl_object_editor_get_font_italic_flag (glObjectEditor      *editor);
-
-void        gl_object_editor_set_text_alignment   (glObjectEditor      *editor,
-                                                  PangoAlignment       text_alignment);
+GType       gl_object_editor_get_type             (void) G_GNUC_CONST;
 
-PangoAlignment gl_object_editor_get_text_alignment (glObjectEditor      *editor);
+GtkWidget  *gl_object_editor_new                  (void);
 
-void        gl_object_editor_set_text_line_spacing (glObjectEditor      *editor,
-                                                  gdouble               text_line_spacing);
+void        gl_object_editor_set_label            (glObjectEditor      *editor,
+                                                   glLabel             *label);
 
-gdouble     gl_object_editor_get_text_line_spacing (glObjectEditor      *editor);
-
-void        gl_object_editor_set_text_color       (glObjectEditor       *editor,
-                                                  gboolean              merge_flag,
-                                                  glColorNode          *text_color_node);
-
-glColorNode* gl_object_editor_get_text_color      (glObjectEditor      *editor);
-
-void        gl_object_editor_set_text_auto_shrink (glObjectEditor      *editor,
-                                                  gboolean             auto_shrink);
-
-gboolean    gl_object_editor_get_text_auto_shrink (glObjectEditor      *editor);
-
-
-/*
- * Edit Text Page
- */
-void        gl_object_editor_set_text_buffer      (glObjectEditor      *editor,
-                                                  GtkTextBuffer       *buffer);
-
-/*
- * Barcode Page
- */
-void        gl_object_editor_set_bc_style         (glObjectEditor      *editor,
-                                                  gchar               *id,
-                                                  gboolean             text_flag,
-                                                  gboolean             checksum_flag,
-                                                  guint                format_digits);
 
-void        gl_object_editor_get_bc_style         (glObjectEditor      *editor,
-                                                  gchar              **id,
-                                                  gboolean            *text_flag,
-                                                  gboolean            *checksum_flag,
-                                                  guint               *format_digits);
-
-void        gl_object_editor_set_bc_color         (glObjectEditor      *editor,
-                                                  gboolean             merge_flag,
-                                                  glColorNode         *color_node);
-
-glColorNode* gl_object_editor_get_bc_color        (glObjectEditor      *editor);
 
+G_END_DECLS
 
-/*
- * Barcode Data Page
- */
-void        gl_object_editor_set_data             (glObjectEditor      *editor,
-                                                  gboolean             merge_flag,
-                                                  glTextNode          *text_node);
+#endif
 
-glTextNode *gl_object_editor_get_data             (glObjectEditor      *editor);
 
 
 /*
- * Shadow Page
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
  */
-void        gl_object_editor_set_shadow_state     (glObjectEditor      *editor,
-                                                  gboolean             state);
-
-void        gl_object_editor_set_shadow_offset    (glObjectEditor      *editor,
-                                                  gdouble              x,
-                                                  gdouble              y);
-
-void        gl_object_editor_set_shadow_color     (glObjectEditor      *editor,
-                                                  gboolean             merge_flag,
-                                                  glColorNode         *color_node);
-
-void        gl_object_editor_set_shadow_opacity   (glObjectEditor      *editor,
-                                                  gdouble              alpha);
-
-void        gl_object_editor_set_max_shadow_offset(glObjectEditor      *editor,
-                                                  gdouble              x_max,
-                                                  gdouble              y_max);
-
-
-gboolean    gl_object_editor_get_shadow_state     (glObjectEditor      *editor);
-
-void        gl_object_editor_get_shadow_offset    (glObjectEditor      *editor,
-                                                  gdouble             *x,
-                                                  gdouble             *y);
-
-glColorNode* gl_object_editor_get_shadow_color    (glObjectEditor      *editor);
-
-gdouble     gl_object_editor_get_shadow_opacity   (glObjectEditor      *editor);
-
-
-
-G_END_DECLS
-
-#endif
index df6760473c87ca1b451a60ba9cd98a23adc8d7bf..77b2fc59f9cc95c8be5d8e05851854cfa2872624 100644 (file)
@@ -1,32 +1,30 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  pixbuf-cache.c:  GLabels pixbuf cache module
+ *  pixbuf-cache.c
+ *  Copyright (C) 2003-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "pixbuf-cache.h"
 
 #include "debug.h"
 
+
 /*========================================================*/
 /* Private types.                                         */
 /*========================================================*/
@@ -37,10 +35,12 @@ typedef struct {
        GdkPixbuf *pixbuf;
 } CacheRecord;
 
+
 /*========================================================*/
 /* Private globals.                                       */
 /*========================================================*/
 
+
 /*========================================================*/
 /* Private function prototypes.                           */
 /*========================================================*/
@@ -51,7 +51,7 @@ static void  add_name_to_list (gpointer key,
                               gpointer val,
                               gpointer user_data);
 
-\f
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Destroy cache record.                                           */
 /*---------------------------------------------------------------------------*/
@@ -67,6 +67,7 @@ record_destroy (gpointer val)
        g_free (record);
 }
 
+
 /*****************************************************************************/
 /* Create a new hash table to keep track of cached pixbufs.                  */
 /*****************************************************************************/
@@ -87,6 +88,7 @@ gl_pixbuf_cache_new (void)
        return pixbuf_cache;
 }
 
+
 /*****************************************************************************/
 /* Free up previously allocated hash table and its contents.                 */
 /*****************************************************************************/
@@ -100,6 +102,7 @@ gl_pixbuf_cache_free (GHashTable *pixbuf_cache)
        gl_debug (DEBUG_PIXBUF_CACHE, "END");
 }
 
+
 /*****************************************************************************/
 /* Add pixbuf to cache explicitly (not a reference).                         */
 /*****************************************************************************/
@@ -129,6 +132,7 @@ gl_pixbuf_cache_add_pixbuf (GHashTable *pixbuf_cache,
        gl_debug (DEBUG_PIXBUF_CACHE, "END");
 }
 
+
 /*****************************************************************************/
 /* Get pixbuf.  If not in cache, read it and add to cache.                   */
 /*****************************************************************************/
@@ -166,6 +170,7 @@ gl_pixbuf_cache_get_pixbuf (GHashTable *pixbuf_cache,
        return pixbuf;
 }
 
+
 /*****************************************************************************/
 /* Remove pixbuf, but only if no references left.                            */
 /*****************************************************************************/
@@ -194,6 +199,7 @@ gl_pixbuf_cache_remove_pixbuf (GHashTable *pixbuf_cache,
        gl_debug (DEBUG_PIXBUF_CACHE, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Add a name to a GList while iterating over cache.               */
 /*---------------------------------------------------------------------------*/
@@ -214,6 +220,7 @@ add_name_to_list (gpointer key,
        gl_debug (DEBUG_PIXBUF_CACHE, "END");
 }
 
+
 /*****************************************************************************/
 /* Return a list of names for all pixbufs in the cache.                      */
 /*****************************************************************************/
@@ -231,6 +238,7 @@ gl_pixbuf_cache_get_name_list (GHashTable *pixbuf_cache)
        return name_list;
 }
 
+
 /*****************************************************************************/
 /* Free up a list of pixbuf names.                                           */
 /*****************************************************************************/
@@ -252,3 +260,13 @@ gl_pixbuf_cache_free_name_list (GList *name_list)
 }
 
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 5fe8a80c7febec8a3dd4b4ffd1c78f77ccb063d2..333e5c8210be37c9e4bd7f129b04a5e8ded19e01 100644 (file)
@@ -1,31 +1,27 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  pixbuf-cache.h:  GLabels pixbuf cache module
+ *  pixbuf-cache.h
+ *  Copyright (C) 2003-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #ifndef __PIXBUF_CACHE_H__
 #define __PIXBUF_CACHE_H__
 
-#include <glib/gmem.h>
-#include <glib/ghash.h>
+#include <glib.h>
 #include <gdk-pixbuf/gdk-pixbuf.h>
 
 G_BEGIN_DECLS
@@ -51,3 +47,15 @@ void        gl_pixbuf_cache_free_name_list (GList      *name_list);
 G_END_DECLS
 
 #endif /*__PIXBUF_CACHE_H__ */
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/pixbuf-util.c b/src/pixbuf-util.c
new file mode 100644 (file)
index 0000000..910a19f
--- /dev/null
@@ -0,0 +1,143 @@
+/*
+ *  pixbuf-util.c
+ *  Copyright (C) 2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "pixbuf-util.h"
+
+#include "color.h"
+
+#include "debug.h"
+
+
+/*========================================================*/
+/* Private macros and constants.                          */
+/*========================================================*/
+
+
+/*========================================================*/
+/* Private types.                                         */
+/*========================================================*/
+
+
+/*========================================================*/
+/* Private globals.                                       */
+/*========================================================*/
+
+
+/*========================================================*/
+/* Private function prototypes.                           */
+/*========================================================*/
+
+
+/****************************************************************************/
+/* Create shadow version of given pixbuf.                                   */
+/****************************************************************************/
+GdkPixbuf *
+gl_pixbuf_util_create_shadow_pixbuf (const GdkPixbuf *pixbuf,
+                                     guint            shadow_color,
+                                     gdouble          shadow_opacity)
+{
+        gint             bits_per_sample, channels;
+        gboolean         src_has_alpha;
+        gint             width, height, src_rowstride, dest_rowstride;
+        GdkPixbuf       *dest_pixbuf;
+        guchar          *buf_src, *buf_dest;
+        guchar          *p_src, *p_dest;
+        gint             ix, iy;
+        guchar           shadow_r, shadow_g, shadow_b;
+
+        g_return_val_if_fail (pixbuf && GDK_IS_PIXBUF (pixbuf), NULL);
+
+        shadow_r = GL_COLOR_F_RED   (shadow_color) * 255.0;
+        shadow_g = GL_COLOR_F_GREEN (shadow_color) * 255.0;
+        shadow_b = GL_COLOR_F_BLUE  (shadow_color) * 255.0;
+
+        /* extract pixels and parameters from source pixbuf. */
+        buf_src         = gdk_pixbuf_get_pixels (pixbuf);
+        bits_per_sample = gdk_pixbuf_get_bits_per_sample (pixbuf);
+        channels        = gdk_pixbuf_get_n_channels (pixbuf);
+        src_has_alpha   = gdk_pixbuf_get_has_alpha (pixbuf);
+        width           = gdk_pixbuf_get_width (pixbuf);
+        height          = gdk_pixbuf_get_height (pixbuf);
+        src_rowstride   = gdk_pixbuf_get_rowstride (pixbuf);
+
+        /* validate assumptions about source pixbuf. */
+        g_return_val_if_fail (buf_src, NULL);
+        g_return_val_if_fail (bits_per_sample == 8, NULL);
+        g_return_val_if_fail ((channels >= 3) && (channels <= 4), NULL);
+        g_return_val_if_fail (width > 0, NULL);
+        g_return_val_if_fail (height > 0, NULL);
+        g_return_val_if_fail (src_rowstride > 0, NULL);
+
+        /* Allocate a destination pixbuf */
+        dest_pixbuf    = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, bits_per_sample, width, height);
+        dest_rowstride = gdk_pixbuf_get_rowstride (dest_pixbuf);
+        buf_dest       = gdk_pixbuf_get_pixels (dest_pixbuf);
+        if (!buf_dest) {
+                return NULL;
+        }
+
+        /* Process pixels: set rgb components and composite alpha with shadow_opacity. */
+        p_src  = buf_src;
+        p_dest = buf_dest;
+        for ( iy=0; iy < height; iy++ )
+        {
+        
+                p_src  = buf_src + iy*src_rowstride;
+                p_dest = buf_dest + iy*dest_rowstride;
+
+                for ( ix=0; ix < width; ix++ )
+                {
+
+                        p_src += 3; /* skip RGB */
+
+                        *p_dest++ = shadow_r;
+                        *p_dest++ = shadow_g;
+                        *p_dest++ = shadow_b;
+
+                        if ( src_has_alpha )
+                        {
+                                *p_dest++ = *p_src++ * shadow_opacity;
+                        }
+                        else
+                        {
+                                *p_dest++ = shadow_opacity * 255.0;
+                        }
+
+
+                }
+
+        }
+
+        return dest_pixbuf;
+}
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/pixbuf-util.h b/src/pixbuf-util.h
new file mode 100644 (file)
index 0000000..84dcb42
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ *  pixbuf-util.h
+ *  Copyright (C) 2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __PIXBUF_UTIL_H__
+#define __PIXBUF_UTIL_H__
+
+#include <glib.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+
+G_BEGIN_DECLS
+
+
+GdkPixbuf *gl_pixbuf_util_create_shadow_pixbuf (const GdkPixbuf *pixbuf,
+                                                guint            shadow_color,
+                                                gdouble          shadow_opacity);
+
+
+G_END_DECLS
+
+#endif /* __PIXBUF_UTIL_H__ */
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 6ae731270f350cb309b0d891fe8ae85b27485523..a53a454075748d4bac6b3243e339972db36f935d 100644 (file)
@@ -36,24 +36,32 @@ host_triplet = @host@
 subdir = src/pixmaps
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALL_LINGUAS = @ALL_LINGUAS@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
+CAIRO_REQUIRED = @CAIRO_REQUIRED@
 CATALOGS = @CATALOGS@
 CATOBJEXT = @CATOBJEXT@
 CC = @CC@
@@ -67,6 +75,7 @@ DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
 DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DLLTOOL = @DLLTOOL@
 DOC_USER_FORMATS = @DOC_USER_FORMATS@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
@@ -76,17 +85,23 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
+GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLABELS_BRANCH = @GLABELS_BRANCH@
 GLABELS_CFLAGS = @GLABELS_CFLAGS@
 GLABELS_LIBS = @GLABELS_LIBS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GLIB_REQUIRED = @GLIB_REQUIRED@
 GMOFILES = @GMOFILES@
 GMSGFMT = @GMSGFMT@
 GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
 GTK_REQUIRED = @GTK_REQUIRED@
-HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@
+GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@
 HELP_DIR = @HELP_DIR@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -102,31 +117,45 @@ INTLTOOL_PERL = @INTLTOOL_PERL@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
+LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@
+LIBBARCODE_LIBS = @LIBBARCODE_LIBS@
+LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@
 LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
 LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
 LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
+LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@
+LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@
 LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
 LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
-LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@
-LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@
-LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@
-LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@
+LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@
+LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@
+LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@
+LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@
+LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@
+LIBIEC16022_LIBS = @LIBIEC16022_LIBS@
+LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@
 LIBOBJS = @LIBOBJS@
+LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@
+LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@
+LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@
+LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBXML_REQUIRED = @LIBXML_REQUIRED@
+LIBZINT_CFLAGS = @LIBZINT_CFLAGS@
+LIBZINT_LIBS = @LIBZINT_LIBS@
+LIBZINT_REQUIRED = @LIBZINT_REQUIRED@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MKINSTALLDIRS = @MKINSTALLDIRS@
 MSGFMT = @MSGFMT@
 MSGFMT_OPTS = @MSGFMT_OPTS@
 MSGMERGE = @MSGMERGE@
-MYGAL_CFLAGS = @MYGAL_CFLAGS@
-MYGAL_LIBS = @MYGAL_LIBS@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -139,9 +168,13 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_REQUIRED = @PANGO_REQUIRED@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 POFILES = @POFILES@
 POSUB = @POSUB@
 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -151,18 +184,15 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
-UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@
-UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
 WARN_CFLAGS = @WARN_CFLAGS@
 XGETTEXT = @XGETTEXT@
-XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@
-XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 am__include = @am__include@
@@ -182,6 +212,7 @@ datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
 exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
 host = @host@
 host_alias = @host_alias@
 host_cpu = @host_cpu@
@@ -195,7 +226,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
index 0a09523178ef6a4dca10ef9c0d0e24d20bc6f4ad..2e16074441996c3fcec814628f75a0dfe1b4ed81 100644 (file)
@@ -1,45 +1,40 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  prefs-dialog.c:  Preferences dialog module
+ *  prefs-dialog.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "prefs-dialog.h"
 
 #include <glib/gi18n.h>
-#include <glade/glade-xml.h>
-#include <gtk/gtktogglebutton.h>
-#include <gtk/gtkstock.h>
-#include <gtk/gtkcombobox.h>
-#include <gtk/gtkspinbutton.h>
+#include <gtk/gtk.h>
 
 #include "prefs.h"
-#include "hig.h"
-#include "mygal/widget-color-combo.h"
+#include "color-combo.h"
 #include "color.h"
-#include "util.h"
+#include "font-combo.h"
+#include "font-util.h"
+#include "builder-util.h"
 
 #include "debug.h"
 
+
 /*========================================================*/
 /* Private macros and constants.                          */
 /*========================================================*/
 #define US_LETTER_ID "US-Letter"
 #define A4_ID        "A4"
 
+
 /*========================================================*/
 /* Private types.                                         */
 /*========================================================*/
 
 struct _glPrefsDialogPrivate
 {
-       GladeXML   *gui;
+       GtkBuilder      *builder;
 
        /* Units properties */
        GtkWidget       *units_points_radio;
@@ -65,10 +61,12 @@ struct _glPrefsDialogPrivate
        GtkWidget       *page_size_a4_radio;
 
        /* Default text properties */
+       GtkWidget       *text_family_hbox;
        GtkWidget       *text_family_combo;
        GtkWidget       *text_size_spin;
        GtkWidget       *text_bold_toggle;
        GtkWidget       *text_italic_toggle;
+       GtkWidget       *text_color_hbox;
        GtkWidget       *text_color_combo;
        GtkWidget       *text_left_toggle;
        GtkWidget       *text_center_toggle;
@@ -77,15 +75,18 @@ struct _glPrefsDialogPrivate
 
        /* Default line properties */
        GtkWidget       *line_width_spin;
+       GtkWidget       *line_color_hbox;
        GtkWidget       *line_color_combo;
 
        /* Default fill properties */
+       GtkWidget       *fill_color_hbox;
        GtkWidget       *fill_color_combo;
 
         /* Prevent recursion */
        gboolean    stop_signals;
 };
 
+
 /*========================================================*/
 /* Private globals.                                       */
 /*========================================================*/
@@ -114,11 +115,12 @@ static void update_object_page_from_prefs (glPrefsDialog      *dialog);
 static void update_prefs_from_locale_page (glPrefsDialog      *dialog);
 static void update_prefs_from_object_page (glPrefsDialog      *dialog);
 
-\f
+
 /*****************************************************************************/
 /* Boilerplate object stuff.                                                 */
 /*****************************************************************************/
-G_DEFINE_TYPE (glPrefsDialog, gl_prefs_dialog, GTK_TYPE_DIALOG);
+G_DEFINE_TYPE (glPrefsDialog, gl_prefs_dialog, GTK_TYPE_DIALOG)
+
 
 static void
 gl_prefs_dialog_class_init (glPrefsDialogClass *class)
@@ -132,26 +134,30 @@ gl_prefs_dialog_class_init (glPrefsDialogClass *class)
        object_class->finalize = gl_prefs_dialog_finalize;      
 }
 
+
 static void
 gl_prefs_dialog_init (glPrefsDialog *dialog)
 {
+        gchar        *builder_filename;
+        static gchar *object_ids[] = { "prefs_notebook",
+                                       "adjustment1",  "adjustment2",  "adjustment3",
+                                       NULL };
+        GError *error = NULL;
+
        gl_debug (DEBUG_PREFS, "START");
 
        dialog->priv = g_new0 (glPrefsDialogPrivate, 1);
 
-       dialog->priv->gui = glade_xml_new (GLABELS_GLADE_DIR "prefs-dialog.glade",
-                                       "prefs_notebook",
-                                       NULL);
-
-       if (!dialog->priv->gui)
-        {
-               g_critical ("Could not open prefs-dialog.glade. gLabels may not be installed correctly!");
+        dialog->priv->builder = gtk_builder_new ();
+        builder_filename = g_build_filename (GLABELS_DATA_DIR, "ui", "prefs-dialog.ui", NULL);
+        gtk_builder_add_objects_from_file (dialog->priv->builder, builder_filename, object_ids, &error);
+        g_free (builder_filename);
+       if (error) {
+               g_critical ("%s\n\ngLabels may not be installed correctly!", error->message);
+                g_error_free (error);
                return;
        }
 
-       gtk_container_set_border_width (GTK_CONTAINER(dialog), GL_HIG_PAD2);
-
-       gtk_dialog_set_has_separator (GTK_DIALOG(dialog), FALSE);
        gtk_dialog_add_button (GTK_DIALOG(dialog), GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE);
        gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_CLOSE);
 
@@ -165,6 +171,7 @@ gl_prefs_dialog_init (glPrefsDialog *dialog)
        gl_debug (DEBUG_PREFS, "END");
 }
 
+
 static void 
 gl_prefs_dialog_finalize (GObject *object)
 {
@@ -176,9 +183,9 @@ gl_prefs_dialog_finalize (GObject *object)
        g_return_if_fail (GL_IS_PREFS_DIALOG (dialog));
        g_return_if_fail (dialog->priv != NULL);
 
-       if (dialog->priv->gui)
+       if (dialog->priv->builder)
         {
-               g_object_unref (G_OBJECT (dialog->priv->gui));
+               g_object_unref (G_OBJECT (dialog->priv->builder));
        }
        g_free (dialog->priv);
 
@@ -187,6 +194,7 @@ gl_prefs_dialog_finalize (GObject *object)
        gl_debug (DEBUG_PREFS, "END");
 }
 
+
 /*****************************************************************************/
 /* NEW preferences dialog.                                                   */
 /*****************************************************************************/
@@ -196,7 +204,6 @@ gl_prefs_dialog_new (GtkWindow *parent)
        GtkWidget *dialog;
 
        gl_debug (DEBUG_PREFS, "START");
-       gl_debug (DEBUG_PREFS, "page size = \"%s\"", gl_prefs->default_page_size);
 
        dialog = GTK_WIDGET (g_object_new (GL_TYPE_PREFS_DIALOG, NULL));
 
@@ -211,19 +218,25 @@ gl_prefs_dialog_new (GtkWindow *parent)
        return dialog;
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Construct composite widget.                                     */
 /*---------------------------------------------------------------------------*/
 static void
 gl_prefs_dialog_construct (glPrefsDialog *dialog)
 {
+        GtkWidget *vbox;
        GtkWidget *notebook;
 
        g_return_if_fail (GL_IS_PREFS_DIALOG (dialog));
        g_return_if_fail (dialog->priv != NULL);
 
-       notebook = glade_xml_get_widget (dialog->priv->gui, "prefs_notebook");
-       gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), notebook, FALSE, FALSE, 0);
+        vbox = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
+
+        gl_builder_util_get_widgets (dialog->priv->builder,
+                                     "prefs_notebook", &notebook,
+                                     NULL);
+       gtk_box_pack_start (GTK_BOX (vbox), notebook, FALSE, FALSE, 0);
 
        construct_locale_page (dialog);
        construct_object_page (dialog);
@@ -231,9 +244,10 @@ gl_prefs_dialog_construct (glPrefsDialog *dialog)
        update_locale_page_from_prefs (dialog);
        update_object_page_from_prefs (dialog);
 
-        gtk_widget_show_all (GTK_DIALOG (dialog)->vbox);   
+        gtk_widget_show_all (vbox);   
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  "Response" callback.                                            */
 /*---------------------------------------------------------------------------*/
@@ -261,6 +275,7 @@ response_cb (glPrefsDialog *dialog,
        gl_debug (DEBUG_VIEW, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Build Locale Properties Notebook Tab                           */
 /*--------------------------------------------------------------------------*/
@@ -268,20 +283,13 @@ static void
 construct_locale_page (glPrefsDialog *dialog)
 {
 
-       dialog->priv->units_points_radio =
-               glade_xml_get_widget (dialog->priv->gui, "units_points_radio");
-
-       dialog->priv->units_inches_radio =
-               glade_xml_get_widget (dialog->priv->gui, "units_inches_radio");
-
-       dialog->priv->units_mm_radio =
-               glade_xml_get_widget (dialog->priv->gui, "units_mm_radio");
-
-       dialog->priv->page_size_us_letter_radio =
-               glade_xml_get_widget (dialog->priv->gui, "page_size_us_letter_radio");
-
-       dialog->priv->page_size_a4_radio =
-               glade_xml_get_widget (dialog->priv->gui, "page_size_a4_radio");
+        gl_builder_util_get_widgets (dialog->priv->builder,
+                                     "units_points_radio",        &dialog->priv->units_points_radio,
+                                     "units_inches_radio",        &dialog->priv->units_inches_radio,
+                                     "units_mm_radio",            &dialog->priv->units_mm_radio,
+                                     "page_size_us_letter_radio", &dialog->priv->page_size_us_letter_radio,
+                                     "page_size_a4_radio",        &dialog->priv->page_size_a4_radio,
+                                     NULL);
 
        g_signal_connect_swapped (
                G_OBJECT(dialog->priv->units_points_radio),
@@ -300,48 +308,52 @@ construct_locale_page (glPrefsDialog *dialog)
                "toggled", G_CALLBACK(update_prefs_from_locale_page), G_OBJECT(dialog));
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Build Default Object Properties Notebook Tab                   */
 /*--------------------------------------------------------------------------*/
 static void
 construct_object_page (glPrefsDialog *dialog)
 {
-        GList    *family_names;
-
-       dialog->priv->text_family_combo =
-               glade_xml_get_widget (dialog->priv->gui, "text_family_combo");
-       dialog->priv->text_size_spin =
-               glade_xml_get_widget (dialog->priv->gui, "text_size_spin");
-       dialog->priv->text_bold_toggle =
-               glade_xml_get_widget (dialog->priv->gui, "text_bold_toggle");
-       dialog->priv->text_italic_toggle =
-               glade_xml_get_widget (dialog->priv->gui, "text_italic_toggle");
-       dialog->priv->text_color_combo =
-               glade_xml_get_widget (dialog->priv->gui, "text_color_combo");
-       dialog->priv->text_left_toggle =
-               glade_xml_get_widget (dialog->priv->gui, "text_left_toggle");
-       dialog->priv->text_center_toggle =
-               glade_xml_get_widget (dialog->priv->gui, "text_center_toggle");
-       dialog->priv->text_right_toggle =
-               glade_xml_get_widget (dialog->priv->gui, "text_right_toggle");
-       dialog->priv->text_line_spacing_spin =
-               glade_xml_get_widget (dialog->priv->gui, "text_line_spacing_spin");
-
-       dialog->priv->line_width_spin =
-               glade_xml_get_widget (dialog->priv->gui, "line_width_spin");
-       dialog->priv->line_color_combo =
-               glade_xml_get_widget (dialog->priv->gui, "line_color_combo");
-
-       dialog->priv->fill_color_combo =
-               glade_xml_get_widget (dialog->priv->gui, "fill_color_combo");
-
-       gl_util_combo_box_add_text_model (GTK_COMBO_BOX (dialog->priv->text_family_combo));
-
-        /* Load family names */
-        family_names = gl_util_get_font_family_list ();
-       gl_util_combo_box_set_strings (GTK_COMBO_BOX (dialog->priv->text_family_combo),
-                                      family_names);
-                                                                                
+        gl_builder_util_get_widgets (dialog->priv->builder,
+                                     "text_family_hbox",       &dialog->priv->text_family_hbox,
+                                     "text_size_spin",         &dialog->priv->text_size_spin,
+                                     "text_bold_toggle",       &dialog->priv->text_bold_toggle,
+                                     "text_italic_toggle",     &dialog->priv->text_italic_toggle,
+                                     "text_color_hbox",        &dialog->priv->text_color_hbox,
+                                     "text_left_toggle",       &dialog->priv->text_left_toggle,
+                                     "text_center_toggle",     &dialog->priv->text_center_toggle,
+                                     "text_right_toggle",      &dialog->priv->text_right_toggle,
+                                     "text_line_spacing_spin", &dialog->priv->text_line_spacing_spin,
+                                     "line_width_spin",        &dialog->priv->line_width_spin,
+                                     "line_color_hbox",        &dialog->priv->line_color_hbox,
+                                     "fill_color_hbox",        &dialog->priv->fill_color_hbox,
+                                     NULL);
+
+        dialog->priv->text_family_combo = gl_font_combo_new ("Sans");
+
+       dialog->priv->text_color_combo = gl_color_combo_new (_("Default"),
+                                                             GL_COLOR_TEXT_DEFAULT,
+                                                             gl_prefs_model_get_default_text_color (gl_prefs));
+       dialog->priv->line_color_combo = gl_color_combo_new (_("No Line"),
+                                                             GL_COLOR_NO_LINE,
+                                                             gl_prefs_model_get_default_line_color (gl_prefs));
+       dialog->priv->fill_color_combo = gl_color_combo_new (_("No Fill"),
+                                                             GL_COLOR_NO_FILL,
+                                                             gl_prefs_model_get_default_fill_color (gl_prefs));
+
+        gtk_box_pack_start (GTK_BOX (dialog->priv->text_family_hbox),
+                            dialog->priv->text_family_combo,
+                            FALSE, FALSE, 0);
+        gtk_box_pack_start (GTK_BOX (dialog->priv->text_color_hbox),
+                            dialog->priv->text_color_combo,
+                            FALSE, FALSE, 0);
+        gtk_box_pack_start (GTK_BOX (dialog->priv->line_color_hbox),
+                            dialog->priv->line_color_combo,
+                            FALSE, FALSE, 0);
+        gtk_box_pack_start (GTK_BOX (dialog->priv->fill_color_hbox),
+                            dialog->priv->fill_color_combo,
+                            FALSE, FALSE, 0);
 
        g_signal_connect_swapped (G_OBJECT(dialog->priv->text_family_combo),
                                  "changed",
@@ -450,7 +462,7 @@ update_locale_page_from_prefs (glPrefsDialog *dialog)
 {
        dialog->priv->stop_signals = TRUE;
 
-       switch (gl_prefs->units) {
+       switch (gl_prefs_model_get_units (gl_prefs)) {
        case LGL_UNITS_POINT:
                gtk_toggle_button_set_active (
                        GTK_TOGGLE_BUTTON(dialog->priv->units_points_radio),
@@ -471,12 +483,12 @@ update_locale_page_from_prefs (glPrefsDialog *dialog)
                break;
        }
 
-       if ( g_strcasecmp(gl_prefs->default_page_size, US_LETTER_ID) == 0)
+       if ( g_ascii_strcasecmp(gl_prefs_model_get_default_page_size (gl_prefs), US_LETTER_ID) == 0)
         {
                gtk_toggle_button_set_active (
                        GTK_TOGGLE_BUTTON(dialog->priv->page_size_us_letter_radio), TRUE);
        }
-        else if ( g_strcasecmp(gl_prefs->default_page_size, A4_ID) == 0)
+        else if ( g_ascii_strcasecmp(gl_prefs_model_get_default_page_size (gl_prefs), A4_ID) == 0)
         {
                gtk_toggle_button_set_active (
                        GTK_TOGGLE_BUTTON(dialog->priv->page_size_a4_radio), TRUE);
@@ -484,86 +496,63 @@ update_locale_page_from_prefs (glPrefsDialog *dialog)
         else
         {
                g_message ("Unknown default page size"); /* Shouldn't happen */
+               gtk_toggle_button_set_active (
+                       GTK_TOGGLE_BUTTON(dialog->priv->page_size_a4_radio), TRUE);
        }
 
        dialog->priv->stop_signals = FALSE;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Update object page widgets from current prefs.                 */
 /*--------------------------------------------------------------------------*/
 static void
 update_object_page_from_prefs (glPrefsDialog *dialog)
 {
-        GList    *family_names;
-        gchar    *good_font_family;
-       GdkColor *gdk_color;
  
        dialog->priv->stop_signals = TRUE;
 
-
-        /* Make sure we have a valid font family.  if not provide a good default. */
-        family_names = gl_util_get_font_family_list ();
-        if (g_list_find_custom (family_names,
-                               gl_prefs->default_font_family,
-                               (GCompareFunc)g_utf8_collate))
-        {
-                good_font_family = g_strdup (gl_prefs->default_font_family);
-        }
-        else
-        {
-                if (family_names != NULL)
-                {
-                        good_font_family = g_strdup (family_names->data); /* 1st entry */
-                }
-                else
-                {
-                        good_font_family = NULL;
-                }
-        }
-       gl_util_combo_box_set_active_text (GTK_COMBO_BOX (dialog->priv->text_family_combo),
-                                          good_font_family);
-        g_free (good_font_family);
+       gl_font_combo_set_family (GL_FONT_COMBO (dialog->priv->text_family_combo),
+                                  gl_prefs_model_get_default_font_family (gl_prefs));
 
         gtk_spin_button_set_value (GTK_SPIN_BUTTON (dialog->priv->text_size_spin),
-                                   gl_prefs->default_font_size);
+                                   gl_prefs_model_get_default_font_size (gl_prefs));
  
         gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->priv->text_bold_toggle),
-                                      (gl_prefs->default_font_weight == PANGO_WEIGHT_BOLD));
+                                      (gl_prefs_model_get_default_font_weight (gl_prefs) == PANGO_WEIGHT_BOLD));
  
         gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->priv->text_italic_toggle),
-                                      gl_prefs->default_font_italic_flag);
+                                      gl_prefs_model_get_default_font_italic_flag (gl_prefs));
  
-        gdk_color = gl_color_to_gdk_color (gl_prefs->default_text_color);
-        color_combo_set_color (COLOR_COMBO(dialog->priv->text_color_combo), gdk_color);
-        g_free (gdk_color);
+        gl_color_combo_set_color (GL_COLOR_COMBO(dialog->priv->text_color_combo),
+                                  gl_prefs_model_get_default_text_color (gl_prefs));
 
         gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->priv->text_left_toggle),
-                                 (gl_prefs->default_text_alignment == GTK_JUSTIFY_LEFT));
+                                 (gl_prefs_model_get_default_text_alignment (gl_prefs) == PANGO_ALIGN_LEFT));
         gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->priv->text_center_toggle),
-                                 (gl_prefs->default_text_alignment == GTK_JUSTIFY_CENTER));
+                                 (gl_prefs_model_get_default_text_alignment (gl_prefs) == PANGO_ALIGN_CENTER));
         gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->priv->text_right_toggle),
-                                 (gl_prefs->default_text_alignment == GTK_JUSTIFY_RIGHT));
+                                 (gl_prefs_model_get_default_text_alignment (gl_prefs) == PANGO_ALIGN_RIGHT));
 
         gtk_spin_button_set_value (GTK_SPIN_BUTTON (dialog->priv->text_line_spacing_spin),
-                                   gl_prefs->default_text_line_spacing);
+                                   gl_prefs_model_get_default_text_line_spacing (gl_prefs));
 
         gtk_spin_button_set_value (GTK_SPIN_BUTTON (dialog->priv->line_width_spin),
-                                   gl_prefs->default_line_width);
+                                   gl_prefs_model_get_default_line_width (gl_prefs));
  
-       gdk_color = gl_color_to_gdk_color (gl_prefs->default_line_color);
-        color_combo_set_color (COLOR_COMBO(dialog->priv->line_color_combo), gdk_color);
-        g_free (gdk_color);
+        gl_color_combo_set_color (GL_COLOR_COMBO(dialog->priv->line_color_combo),
+                                  gl_prefs_model_get_default_line_color (gl_prefs));
 
 
-       gdk_color = gl_color_to_gdk_color (gl_prefs->default_fill_color);
-        color_combo_set_color (COLOR_COMBO(dialog->priv->fill_color_combo), gdk_color);
-        g_free (gdk_color);
+        gl_color_combo_set_color (GL_COLOR_COMBO(dialog->priv->fill_color_combo),
+                                  gl_prefs_model_get_default_fill_color (gl_prefs));
 
 
        dialog->priv->stop_signals = FALSE;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Update prefs from current state of locale page widgets.        */
 /*--------------------------------------------------------------------------*/
@@ -575,118 +564,120 @@ update_prefs_from_locale_page (glPrefsDialog *dialog)
        if (gtk_toggle_button_get_active (
                    GTK_TOGGLE_BUTTON(dialog->priv->units_points_radio)))
         {
-               gl_prefs->units = LGL_UNITS_POINT;
+               gl_prefs_model_set_units  (gl_prefs, LGL_UNITS_POINT);
        }
        if (gtk_toggle_button_get_active (
                    GTK_TOGGLE_BUTTON(dialog->priv->units_inches_radio)))
         {
-               gl_prefs->units = LGL_UNITS_INCH;
+               gl_prefs_model_set_units  (gl_prefs, LGL_UNITS_INCH);
        }
        if (gtk_toggle_button_get_active (
                    GTK_TOGGLE_BUTTON(dialog->priv->units_mm_radio)))
         {
-               gl_prefs->units = LGL_UNITS_MM;
+               gl_prefs_model_set_units  (gl_prefs, LGL_UNITS_MM);
        }
 
        if (gtk_toggle_button_get_active (
                    GTK_TOGGLE_BUTTON(dialog->priv->page_size_us_letter_radio)))
         {
-               g_free (gl_prefs->default_page_size);
-               gl_prefs->default_page_size = g_strdup (US_LETTER_ID);
+               gl_prefs_model_set_default_page_size  (gl_prefs, US_LETTER_ID);
        }
        if (gtk_toggle_button_get_active (
                    GTK_TOGGLE_BUTTON(dialog->priv->page_size_a4_radio)))
         {
-               g_free (gl_prefs->default_page_size);
-               gl_prefs->default_page_size = g_strdup (A4_ID);
+               gl_prefs_model_set_default_page_size  (gl_prefs, A4_ID);
        }
-
-       gl_prefs_model_save_settings (gl_prefs);
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Update prefs from current state of object page widgets.        */
 /*--------------------------------------------------------------------------*/
 static void
 update_prefs_from_object_page (glPrefsDialog *dialog)
 {
-       GdkColor *gdk_color;
+       guint     color;
        gboolean  is_default;
 
        if (dialog->priv->stop_signals) return;
 
-        g_free (gl_prefs->default_font_family);
-        gl_prefs->default_font_family =
-               gtk_combo_box_get_active_text (GTK_COMBO_BOX (dialog->priv->text_family_combo));
-        gl_prefs->default_font_size =
-                gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->text_size_spin));
+        gl_prefs_model_set_default_font_family (gl_prefs,
+                gl_font_combo_get_family (GL_FONT_COMBO (dialog->priv->text_family_combo)));
+        gl_prefs_model_set_default_font_size (gl_prefs,
+                gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->text_size_spin)));
 
         if (gtk_toggle_button_get_active
             (GTK_TOGGLE_BUTTON (dialog->priv->text_bold_toggle)))
         {
-                gl_prefs->default_font_weight = PANGO_WEIGHT_BOLD;
+                gl_prefs_model_set_default_font_weight (gl_prefs, PANGO_WEIGHT_BOLD);
         }
         else
         {
-                gl_prefs->default_font_weight = PANGO_WEIGHT_NORMAL;
+                gl_prefs_model_set_default_font_weight (gl_prefs, PANGO_WEIGHT_NORMAL);
         }
 
-        gl_prefs->default_font_italic_flag =
+        gl_prefs_model_set_default_font_italic_flag (gl_prefs,
                 gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
-                                              (dialog->priv->text_italic_toggle));
+                                              (dialog->priv->text_italic_toggle)));
 
-        gdk_color = color_combo_get_color (COLOR_COMBO(dialog->priv->text_color_combo),
-                                           &is_default);
+        color = gl_color_combo_get_color (GL_COLOR_COMBO(dialog->priv->text_color_combo),
+                                          &is_default);
         if (!is_default)
         {
-                gl_prefs->default_text_color = gl_color_from_gdk_color (gdk_color);
+                gl_prefs_model_set_default_text_color (gl_prefs, color);
         }
 
         if (gtk_toggle_button_get_active
             (GTK_TOGGLE_BUTTON (dialog->priv->text_left_toggle)))
         {
-                gl_prefs->default_text_alignment = GTK_JUSTIFY_LEFT;
+                gl_prefs_model_set_default_text_alignment (gl_prefs, GTK_JUSTIFY_LEFT);
         }
         else if (gtk_toggle_button_get_active
                  (GTK_TOGGLE_BUTTON (dialog->priv->text_right_toggle)))
         {
-                gl_prefs->default_text_alignment = GTK_JUSTIFY_RIGHT;
+                gl_prefs_model_set_default_text_alignment (gl_prefs, GTK_JUSTIFY_RIGHT);
         }
         else if (gtk_toggle_button_get_active
                  (GTK_TOGGLE_BUTTON (dialog->priv->text_center_toggle)))
         {
-                gl_prefs->default_text_alignment = GTK_JUSTIFY_CENTER;
+                gl_prefs_model_set_default_text_alignment (gl_prefs, GTK_JUSTIFY_CENTER);
         }
         else
         {
                /* Should not happen. */
-                gl_prefs->default_text_alignment = GTK_JUSTIFY_LEFT;
+                gl_prefs_model_set_default_text_alignment (gl_prefs, GTK_JUSTIFY_LEFT);
         }
                                                                                 
 
-        gl_prefs->default_text_line_spacing =
-                gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->text_line_spacing_spin));
+        gl_prefs_model_set_default_text_line_spacing (gl_prefs,
+                gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->text_line_spacing_spin)));
 
-        gl_prefs->default_line_width =
-                gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->line_width_spin));
+        gl_prefs_model_set_default_line_width (gl_prefs,
+                gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->line_width_spin)));
 
-        gdk_color = color_combo_get_color (COLOR_COMBO(dialog->priv->line_color_combo),
-                                           &is_default);
+        color = gl_color_combo_get_color (GL_COLOR_COMBO(dialog->priv->line_color_combo),
+                                          &is_default);
         if (!is_default)
         {
-                gl_prefs->default_line_color = gl_color_from_gdk_color (gdk_color);
+                gl_prefs_model_set_default_line_color (gl_prefs, color);
         }
 
 
-        gdk_color = color_combo_get_color (COLOR_COMBO(dialog->priv->fill_color_combo),
-                                           &is_default);
+        color = gl_color_combo_get_color (GL_COLOR_COMBO(dialog->priv->fill_color_combo),
+                                          &is_default);
         if (!is_default)
         {
-                gl_prefs->default_fill_color = gl_color_from_gdk_color (gdk_color);
+                gl_prefs_model_set_default_fill_color (gl_prefs, color);
         }
-
-       gl_prefs_model_save_settings (gl_prefs);
 }
 
 
-       
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 8ec8e9291a0605756f1addf3ceddf35a8cdb934e..86b11042a6969c50a9a4a4c0e632137975057062 100644 (file)
@@ -1,41 +1,41 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  prefs-dialog.h:  Preferences dialog module header file
+ *  prefs-dialog.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __PREFS_DIALOG_H__
 #define __PREFS_DIALOG_H__
 
-#include <gtk/gtkwindow.h>
-#include <gtk/gtkdialog.h>
+#include <gtk/gtk.h>
 
 G_BEGIN_DECLS
 
 #define GL_TYPE_PREFS_DIALOG            (gl_prefs_dialog_get_type ())
-#define GL_PREFS_DIALOG(obj)            (GTK_CHECK_CAST ((obj), GL_TYPE_PREFS_DIALOG, glPrefsDialog))
-#define GL_PREFS_DIALOG_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_PREFS_DIALOG, glPrefsDialogClass))
-#define GL_IS_PREFS_DIALOG(obj)         (GTK_CHECK_TYPE ((obj), GL_TYPE_PREFS_DIALOG))
-#define GL_IS_PREFS_DIALOG_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_PREFS_DIALOG))
-#define GL_PREFS_DIALOG_GET_CLASS(obj)  (GTK_CHECK_GET_CLASS ((obj), GL_TYPE_PREFS_DIALOG, glPrefsDialogClass))
+#define GL_PREFS_DIALOG(obj) \
+        (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_PREFS_DIALOG, glPrefsDialog))
+#define GL_PREFS_DIALOG_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_PREFS_DIALOG, glPrefsDialogClass))
+#define GL_IS_PREFS_DIALOG(obj) \
+        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_PREFS_DIALOG))
+#define GL_IS_PREFS_DIALOG_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_PREFS_DIALOG))
+#define GL_PREFS_DIALOG_GET_CLASS(obj) \
+        (G_TYPE_INSTANCE_GET_CLASS ((obj), GL_TYPE_PREFS_DIALOG, glPrefsDialogClass))
 
 
 typedef struct _glPrefsDialog          glPrefsDialog;
@@ -63,3 +63,15 @@ GtkWidget      *gl_prefs_dialog_new          (GtkWindow *parent);
 G_END_DECLS
 
 #endif /* __PREFS_DIALOG_H__ */
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 1d5c2199bfbea68aa59eaf42ed711c507e01dc45..b9232a797228b08de33b2568146c0a4275cd225a 100644 (file)
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  prefs-model.c:  Application preferences model module
+ *  prefs-model.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "prefs-model.h"
 
-#include <libglabels/db.h>
-#include <libglabels/xml.h>
-#include <gtk/gtkpapersize.h>
+#include <gio/gio.h>
+#include <gtk/gtk.h>
+#include <string.h>
 
+#include <libglabels.h>
 #include "marshal.h"
-#include "util.h"
+#include "str-util.h"
 #include "color.h"
 
 #include "debug.h"
 
+
 /*========================================================*/
 /* Private macros and constants.                          */
 /*========================================================*/
 
-/* GConf keys */
-#define BASE_KEY                            "/apps/glabels"
-
-#define PREF_UNITS                          "/units"
-#define PREF_DEFAULT_PAGE_SIZE              "/default-page-size"
-
-#define PREF_DEFAULT_FONT_FAMILY            "/default-font-family"
-#define PREF_DEFAULT_FONT_SIZE              "/default-font-size"
-#define PREF_DEFAULT_FONT_WEIGHT            "/default-font-weight"
-#define PREF_DEFAULT_FONT_ITALIC_FLAG       "/default-font-italic-flag"
-#define PREF_DEFAULT_TEXT_COLOR             "/default-text-color"
-#define PREF_DEFAULT_TEXT_ALIGNMENT         "/default-text-alignment"
-#define PREF_DEFAULT_TEXT_LINE_SPACING      "/default-text-line-spacing"
-
-#define PREF_DEFAULT_LINE_WIDTH             "/default-line-width"
-#define PREF_DEFAULT_LINE_COLOR             "/default-line-color"
-
-#define PREF_DEFAULT_FILL_COLOR             "/default-fill-color"
-
-#define PREF_MAIN_TOOLBAR_VISIBLE           "/main-toolbar-visible"
-#define PREF_MAIN_TOOLBAR_BUTTONS_STYLE     "/main-toolbar-buttons-style"
-#define PREF_MAIN_TOOLBAR_VIEW_TOOLTIPS     "/main-toolbar-view-tooltips"
-
-#define PREF_DRAWING_TOOLBAR_VISIBLE        "/drawing-toolbar-visible"
-#define PREF_DRAWING_TOOLBAR_VIEW_TOOLTIPS  "/drawing-toolbar-view-tooltips"
-
-#define PREF_PROPERTY_TOOLBAR_VISIBLE        "/property-toolbar-visible"
-#define PREF_PROPERTY_TOOLBAR_VIEW_TOOLTIPS  "/property-toolbar-view-tooltips"
-
-#define PREF_GRID_VISIBLE                   "/grid-visible"
-#define PREF_MARKUP_VISIBLE                 "/markup-visible"
-
-#define PREF_MAX_RECENTS                    "/max-recents"
-
-#define PREF_RECENT_TEMPLATES               "/recent-templates"
-#define PREF_MAX_RECENT_TEMPLATES           "/max-recent-templates"
-
 /* Default values */
-#define DEFAULT_UNITS_STRING_US    units_to_string (LGL_UNITS_INCH)
-#define DEFAULT_PAGE_SIZE_US       "US-Letter"
-
-#define DEFAULT_UNITS_STRING_METRIC units_to_string (LGL_UNITS_MM)
-#define DEFAULT_PAGE_SIZE_METRIC   "A4"
-
-#define DEFAULT_FONT_FAMILY        "Sans"
-#define DEFAULT_FONT_SIZE          14.0
-#define DEFAULT_FONT_WEIGHT_STRING gl_util_weight_to_string (PANGO_WEIGHT_NORMAL)
-#define DEFAULT_FONT_ITALIC_FLAG   FALSE
-#define DEFAULT_TEXT_ALIGN_STRING  gl_util_align_to_string (PANGO_ALIGN_LEFT)
-#define DEFAULT_TEXT_COLOR         GL_COLOR (0,0,0)
-#define DEFAULT_TEXT_LINE_SPACING  1.0
+#define DEFAULT_UNITS_STRING_US     lgl_units_get_id (LGL_UNITS_INCH)
+#define DEFAULT_PAGE_SIZE_US        "US-Letter"
 
-#define DEFAULT_LINE_WIDTH         1.0
-#define DEFAULT_LINE_COLOR         GL_COLOR_A (0, 0, 0, 255)
+#define DEFAULT_UNITS_STRING_METRIC lgl_units_get_id (LGL_UNITS_MM)
+#define DEFAULT_PAGE_SIZE_METRIC    "A4"
 
-#define DEFAULT_FILL_COLOR         GL_COLOR_A (0, 255, 0, 255)
 
 /*========================================================*/
 /* Private types.                                         */
 /*========================================================*/
 
-enum {
-       CHANGED,
-       LAST_SIGNAL
+struct _glPrefsModelPrivate {
+
+        GSettings *locale;
+        GSettings *objects;
+        GSettings *ui;
+
 };
 
+enum {
+        CHANGED,
+        LAST_SIGNAL
+};
 
 
 /*========================================================*/
@@ -113,642 +70,701 @@ enum {
 
 static guint signals[LAST_SIGNAL] = {0};
 
+
 /*========================================================*/
 /* Private function prototypes.                           */
 /*========================================================*/
 
 static void           gl_prefs_model_finalize      (GObject             *object);
 
-static void           notify_cb                    (GConfClient         *client,
-                                                   guint                cnxn_id,
-                                                   GConfEntry          *entry,
-                                                   glPrefsModel        *prefs_model);
-
-static gchar         *get_string                   (GConfClient         *client,
-                                                   const gchar         *key,
-                                                   const gchar         *def);
-
-static gboolean       get_bool                     (GConfClient         *client,
-                                                   const gchar         *key,
-                                                   gboolean             def);
-
-static gint           get_int                      (GConfClient         *client,
-                                                   const gchar         *key,
-                                                   gint                 def);
+static void           gsettings_changed_cb         (glPrefsModel        *prefs_model);
 
-static gdouble        get_float                    (GConfClient         *client,
-                                                   const gchar         *key,
-                                                   gdouble              def);
 
-static lglUnitsType   string_to_units              (const gchar         *string);
-static const gchar   *units_to_string              (lglUnitsType         units);
-
-
-\f
 /*****************************************************************************/
 /* Boilerplate object stuff.                                                 */
 /*****************************************************************************/
-G_DEFINE_TYPE (glPrefsModel, gl_prefs_model, G_TYPE_OBJECT);
+G_DEFINE_TYPE (glPrefsModel, gl_prefs_model, G_TYPE_OBJECT)
+
 
 static void
 gl_prefs_model_class_init (glPrefsModelClass *class)
 {
-       GObjectClass *object_class = G_OBJECT_CLASS (class);
+        GObjectClass *object_class = G_OBJECT_CLASS (class);
 
-       gl_debug (DEBUG_PREFS, "START");
+        gl_debug (DEBUG_PREFS, "START");
 
-       gl_prefs_model_parent_class = g_type_class_peek_parent (class);
+        gl_prefs_model_parent_class = g_type_class_peek_parent (class);
 
-       object_class->finalize = gl_prefs_model_finalize;
+        object_class->finalize = gl_prefs_model_finalize;
 
-       signals[CHANGED] =
-               g_signal_new ("changed",
-                             G_OBJECT_CLASS_TYPE (object_class),
-                             G_SIGNAL_RUN_LAST,
-                             G_STRUCT_OFFSET (glPrefsModelClass, changed),
-                             NULL, NULL,
-                             gl_marshal_VOID__VOID,
-                             G_TYPE_NONE,
-                             0);
+        signals[CHANGED] =
+                g_signal_new ("changed",
+                              G_OBJECT_CLASS_TYPE (object_class),
+                              G_SIGNAL_RUN_LAST,
+                              G_STRUCT_OFFSET (glPrefsModelClass, changed),
+                              NULL, NULL,
+                              gl_marshal_VOID__VOID,
+                              G_TYPE_NONE,
+                              0);
 
-       gl_debug (DEBUG_PREFS, "END");
+        gl_debug (DEBUG_PREFS, "END");
 }
 
+
 static void
-gl_prefs_model_init (glPrefsModel *prefs_model)
+gl_prefs_model_init (glPrefsModel *this)
 {
-       gl_debug (DEBUG_PREFS, "START");
+        gl_debug (DEBUG_PREFS, "START");
 
-        prefs_model->gconf_client = gconf_client_get_default ();
+        this->priv = g_new0 (glPrefsModelPrivate, 1);
 
-        g_return_if_fail (prefs_model->gconf_client != NULL);
-        gconf_client_add_dir (prefs_model->gconf_client,
-                              BASE_KEY,
-                              GCONF_CLIENT_PRELOAD_ONELEVEL,
-                              NULL);
-         
-        gconf_client_notify_add (prefs_model->gconf_client,
-                                 BASE_KEY,
-                                 (GConfClientNotifyFunc)notify_cb, prefs_model,
-                                 NULL, NULL);
+        this->priv->locale  = g_settings_new ("org.gnome.glabels-3.locale");
+        this->priv->objects = g_settings_new ("org.gnome.glabels-3.objects");
+        this->priv->ui      = g_settings_new ("org.gnome.glabels-3.ui");
 
-       gl_debug (DEBUG_PREFS, "END");
+        g_return_if_fail (this->priv->locale != NULL);
+        g_return_if_fail (this->priv->objects != NULL);
+        g_return_if_fail (this->priv->ui != NULL);
+        g_signal_connect_swapped (G_OBJECT (this->priv->locale), "changed",
+                                  G_CALLBACK (gsettings_changed_cb), this);
+        g_signal_connect_swapped (G_OBJECT (this->priv->objects), "changed",
+                                  G_CALLBACK (gsettings_changed_cb), this);
+        g_signal_connect_swapped (G_OBJECT (this->priv->ui), "changed",
+                                  G_CALLBACK (gsettings_changed_cb), this);
+
+        gl_debug (DEBUG_PREFS, "END");
 }
 
+
 static void
 gl_prefs_model_finalize (GObject *object)
 {
-       glPrefsModel *prefs_model = GL_PREFS_MODEL (object);
+        glPrefsModel *this = GL_PREFS_MODEL (object);
 
-       gl_debug (DEBUG_PREFS, "START");
+        gl_debug (DEBUG_PREFS, "START");
 
-       g_return_if_fail (object && GL_IS_PREFS_MODEL (object));
+        g_return_if_fail (object && GL_IS_PREFS_MODEL (object));
 
-       g_object_unref (G_OBJECT(prefs_model->gconf_client));
-       g_free (prefs_model->default_page_size);
-       g_free (prefs_model->default_font_family);
+        g_object_unref (G_OBJECT(this->priv->locale));
+        g_object_unref (G_OBJECT(this->priv->objects));
+        g_object_unref (G_OBJECT(this->priv->ui));
+        g_free (this->priv);
 
-       G_OBJECT_CLASS (gl_prefs_model_parent_class)->finalize (object);
+        G_OBJECT_CLASS (gl_prefs_model_parent_class)->finalize (object);
 
-       gl_debug (DEBUG_PREFS, "END");
+        gl_debug (DEBUG_PREFS, "END");
 }
 
+
 /*****************************************************************************/
 /* New prefs_model object.                                                   */
 /*****************************************************************************/
 glPrefsModel *
 gl_prefs_model_new (void)
 {
-       glPrefsModel *prefs_model;
+        glPrefsModel *this;
 
-       gl_debug (DEBUG_PREFS, "START");
+        gl_debug (DEBUG_PREFS, "START");
 
-       prefs_model = GL_PREFS_MODEL (g_object_new (gl_prefs_model_get_type(), NULL));
+        this = GL_PREFS_MODEL (g_object_new (gl_prefs_model_get_type(), NULL));
 
-       gl_debug (DEBUG_PREFS, "END");
+        gl_debug (DEBUG_PREFS, "END");
 
-       return prefs_model;
+        return this;
 }
 
 
+/*****************************************************************************/
+/* Set units.                                                                */
+/*****************************************************************************/
+void
+gl_prefs_model_set_units (glPrefsModel     *this,
+                          lglUnits          units)
+{
+        g_settings_set_string (this->priv->locale,
+                               "units",
+                               lgl_units_get_id (units));
+}
+
 
 /*****************************************************************************/
-/* Save all settings.                                                        */
+/* Get units.                                                                */
 /*****************************************************************************/
-void 
-gl_prefs_model_save_settings (glPrefsModel *prefs_model)
+lglUnits
+gl_prefs_model_get_units (glPrefsModel     *this)
 {
-       gl_debug (DEBUG_PREFS, "START");
-       
-       g_return_if_fail (prefs_model && GL_IS_PREFS_MODEL(prefs_model));
-       g_return_if_fail (prefs_model->gconf_client != NULL);
+        const gchar  *pgsize;
+        gchar        *string;
+        lglUnits      units;
+
+        string = g_settings_get_string (this->priv->locale, "units");
+        
+        /* If not set, make educated guess about locale default. */
+        if ( !string || (*string == '\0') )
+        {
+                pgsize = gtk_paper_size_get_default ();
+                if ( strcmp (pgsize, GTK_PAPER_NAME_LETTER) == 0 )
+                {
+                        string = g_strdup (DEFAULT_UNITS_STRING_US);
+                }
+                else
+                {
+                        string = g_strdup (DEFAULT_UNITS_STRING_METRIC);
+                }
+        }
 
-       /* We are saving settings because presumably some of them have been changed. */
-       g_signal_emit (G_OBJECT(prefs_model), signals[CHANGED], 0);
+        units = lgl_units_from_id (string);
+        g_free (string);
 
-       /* Units */
-       gconf_client_set_string (prefs_model->gconf_client,
-                                BASE_KEY PREF_UNITS,
-                                units_to_string(prefs_model->units),
-                                NULL);
-        lgl_xml_set_default_units (prefs_model->units);
+        /* If invalid, make an educated guess from locale. */
+        if (units == LGL_UNITS_INVALID)
+        {
+                pgsize = gtk_paper_size_get_default ();
+                if ( strcmp (pgsize, GTK_PAPER_NAME_LETTER) == 0 )
+                {
+                        units = LGL_UNITS_INCH;
+                }
+                else
+                {
+                        units = LGL_UNITS_MM;
+                }
+        }
 
-       /* Default page size */
-       gconf_client_set_string (prefs_model->gconf_client,
-                                BASE_KEY PREF_DEFAULT_PAGE_SIZE,
-                                prefs_model->default_page_size,
-                                NULL);
+        return units;
+}
 
 
-       /* Text properties */
-       gconf_client_set_string (prefs_model->gconf_client,
-                                BASE_KEY PREF_DEFAULT_FONT_FAMILY,
-                                prefs_model->default_font_family,
-                                NULL);
+/*****************************************************************************/
+/* Set default page size.                                                    */
+/*****************************************************************************/
+void
+gl_prefs_model_set_default_page_size (glPrefsModel     *this,
+                                      const gchar      *page_size)
+{
+        g_settings_set_string (this->priv->locale,
+                               "default-page-size",
+                               page_size);
+}
 
-       gconf_client_set_float  (prefs_model->gconf_client,
-                                BASE_KEY PREF_DEFAULT_FONT_SIZE,
-                                prefs_model->default_font_size,
-                                NULL);
 
-       gconf_client_set_string (prefs_model->gconf_client,
-                                BASE_KEY PREF_DEFAULT_FONT_WEIGHT,
-                                gl_util_weight_to_string(prefs_model->default_font_weight),
-                                NULL);
+/*****************************************************************************/
+/* Get default page size.                                                    */
+/*****************************************************************************/
+gchar *
+gl_prefs_model_get_default_page_size (glPrefsModel     *this)
+{
+        const gchar *pgsize;
+        gchar       *page_size;
+        lglPaper    *paper;
 
-       gconf_client_set_int    (prefs_model->gconf_client,
-                                BASE_KEY PREF_DEFAULT_TEXT_COLOR,
-                                prefs_model->default_text_color,
-                                NULL);
+        page_size = g_settings_get_string (this->priv->locale, "default-page-size");
 
-       gconf_client_set_string (prefs_model->gconf_client,
-                                BASE_KEY PREF_DEFAULT_TEXT_ALIGNMENT,
-                                gl_util_align_to_string(prefs_model->default_text_alignment),
-                                NULL);
+        /* If not set, make educated guess about locale default. */
+        if ( !page_size || (*page_size == '\0') )
+        {
+                pgsize = gtk_paper_size_get_default ();
+                if ( strcmp (pgsize, GTK_PAPER_NAME_LETTER) == 0 )
+                {
+                        page_size = g_strdup (DEFAULT_PAGE_SIZE_US);
+                }
+                else
+                {
+                        page_size = g_strdup (DEFAULT_PAGE_SIZE_METRIC);
+                }
+        }
 
-       gconf_client_set_float  (prefs_model->gconf_client,
-                                BASE_KEY PREF_DEFAULT_TEXT_LINE_SPACING,
-                                prefs_model->default_text_line_spacing,
-                                NULL);
+        /* Proof read the default page size -- it must be a valid id. */
+        /* (For compatability with older versions.) */
+        paper = lgl_db_lookup_paper_from_id (page_size);
+        if ( paper == NULL ) {
+                g_free (page_size);
+                page_size = g_strdup (DEFAULT_PAGE_SIZE_US);
+        } else {
+                lgl_paper_free (paper);
+        }
 
-       /* Line properties */
-       gconf_client_set_float  (prefs_model->gconf_client,
-                                BASE_KEY PREF_DEFAULT_LINE_WIDTH,
-                                prefs_model->default_line_width,
-                                NULL);
+        return page_size;
+}
 
-       gconf_client_set_int    (prefs_model->gconf_client,
-                                BASE_KEY PREF_DEFAULT_LINE_COLOR,
-                                prefs_model->default_line_color,
-                                NULL);
 
+/*****************************************************************************/
+/* Set default font family.                                                  */
+/*****************************************************************************/
+void
+gl_prefs_model_set_default_font_family (glPrefsModel     *this,
+                                        const gchar      *family)
+{
+        g_settings_set_string (this->priv->objects,
+                               "default-font-family",
+                               family);
+}
 
-       /* Fill properties */
-       gconf_client_set_int    (prefs_model->gconf_client,
-                                BASE_KEY PREF_DEFAULT_FILL_COLOR,
-                                prefs_model->default_fill_color,
-                                NULL);
 
+/*****************************************************************************/
+/* Get default font family.                                                  */
+/*****************************************************************************/
+gchar *
+gl_prefs_model_get_default_font_family (glPrefsModel     *this)
+{
+        gchar *family;
 
-       /* Main Toolbar */
-       gconf_client_set_bool (prefs_model->gconf_client,
-                              BASE_KEY PREF_MAIN_TOOLBAR_VISIBLE,
-                              prefs_model->main_toolbar_visible,
-                              NULL);
+        family = g_settings_get_string (this->priv->objects,
+                                        "default-font-family");
 
-       gconf_client_set_int (prefs_model->gconf_client,
-                             BASE_KEY PREF_MAIN_TOOLBAR_BUTTONS_STYLE,
-                             prefs_model->main_toolbar_buttons_style,
-                             NULL);
+        return family;
+}
 
-       gconf_client_set_bool (prefs_model->gconf_client,
-                              BASE_KEY PREF_MAIN_TOOLBAR_VIEW_TOOLTIPS,
-                              prefs_model->main_toolbar_view_tooltips,
-                              NULL);
 
-       /* Drawing Toolbar */
-       gconf_client_set_bool (prefs_model->gconf_client,
-                              BASE_KEY PREF_DRAWING_TOOLBAR_VISIBLE,
-                              prefs_model->drawing_toolbar_visible,
-                              NULL);
-
-       gconf_client_set_bool (prefs_model->gconf_client,
-                              BASE_KEY PREF_DRAWING_TOOLBAR_VIEW_TOOLTIPS,
-                              prefs_model->drawing_toolbar_view_tooltips,
-                              NULL);
-
-       /* Property Toolbar */
-       gconf_client_set_bool (prefs_model->gconf_client,
-                              BASE_KEY PREF_PROPERTY_TOOLBAR_VISIBLE,
-                              prefs_model->property_toolbar_visible,
-                              NULL);
-
-       gconf_client_set_bool (prefs_model->gconf_client,
-                              BASE_KEY PREF_PROPERTY_TOOLBAR_VIEW_TOOLTIPS,
-                              prefs_model->property_toolbar_view_tooltips,
-                              NULL);
-
-       /* View properties */
-       gconf_client_set_bool (prefs_model->gconf_client,
-                              BASE_KEY PREF_GRID_VISIBLE,
-                              prefs_model->grid_visible,
-                              NULL);
-
-       gconf_client_set_bool (prefs_model->gconf_client,
-                              BASE_KEY PREF_MARKUP_VISIBLE,
-                              prefs_model->markup_visible,
-                              NULL);
-
-       /* Recent files */
-       gconf_client_set_int (prefs_model->gconf_client,
-                             BASE_KEY PREF_MAX_RECENTS,
-                             prefs_model->max_recents,
-                             NULL);
-
-       /* Recent templates */
-       gconf_client_set_list (prefs_model->gconf_client,
-                              BASE_KEY PREF_RECENT_TEMPLATES,
-                               GCONF_VALUE_STRING,
-                               prefs_model->recent_templates,
-                               NULL);
-       gconf_client_set_int (prefs_model->gconf_client,
-                             BASE_KEY PREF_MAX_RECENT_TEMPLATES,
-                             prefs_model->max_recent_templates,
-                             NULL);
-
-
-       gconf_client_suggest_sync (prefs_model->gconf_client, NULL);
-       
-       gl_debug (DEBUG_PREFS, "END");
-}
-
-/*****************************************************************************/
-/* Load all settings.                                                        */
+/*****************************************************************************/
+/* Set default font size.                                                    */
 /*****************************************************************************/
 void
-gl_prefs_model_load_settings (glPrefsModel *prefs_model)
+gl_prefs_model_set_default_font_size (glPrefsModel     *this,
+                                      gdouble           size)
 {
-        const gchar *pgsize, *default_units_string, *default_page_size;
-       gchar    *string;
-       lglPaper *paper;
-        GSList   *p, *p_next;
+        g_settings_set_double (this->priv->objects,
+                               "default-font-size",
+                               size);
+}
 
-       gl_debug (DEBUG_PREFS, "START");
-       
-       g_return_if_fail (prefs_model && GL_IS_PREFS_MODEL(prefs_model));
-       g_return_if_fail (prefs_model->gconf_client != NULL);
 
-        /* Make educated guess about locale defaults. */
-        pgsize = gtk_paper_size_get_default ();
-        if ( strcmp (pgsize,GTK_PAPER_NAME_LETTER) == 0 )
-        {
-                default_units_string = DEFAULT_UNITS_STRING_US;
-                default_page_size    = DEFAULT_PAGE_SIZE_US;
-        }
-        else
-        {
-                default_units_string = DEFAULT_UNITS_STRING_METRIC;
-                default_page_size    = DEFAULT_PAGE_SIZE_METRIC;
-        }
+/*****************************************************************************/
+/* Get default font size.                                                    */
+/*****************************************************************************/
+gdouble
+gl_prefs_model_get_default_font_size (glPrefsModel     *this)
+{
+        gdouble size;
 
-       /* Units */
-       string =
-               get_string (prefs_model->gconf_client,
-                           BASE_KEY PREF_UNITS,
-                           default_units_string);
-       prefs_model->units = string_to_units( string );
-       g_free( string );
-        lgl_xml_set_default_units (prefs_model->units);
-
-
-       /* Page size */
-        g_free (prefs_model->default_page_size);
-       prefs_model->default_page_size =
-               get_string (prefs_model->gconf_client,
-                           BASE_KEY PREF_DEFAULT_PAGE_SIZE,
-                           default_page_size);
-
-       /* Text properties */
-        g_free (prefs_model->default_font_family);
-       prefs_model->default_font_family =
-               get_string (prefs_model->gconf_client,
-                           BASE_KEY PREF_DEFAULT_FONT_FAMILY,
-                           DEFAULT_FONT_FAMILY);
-
-       prefs_model->default_font_size =
-               get_float (prefs_model->gconf_client,
-                          BASE_KEY PREF_DEFAULT_FONT_SIZE,
-                          DEFAULT_FONT_SIZE);
-
-       string =
-               get_string (prefs_model->gconf_client,
-                           BASE_KEY PREF_DEFAULT_FONT_WEIGHT,
-                           DEFAULT_FONT_WEIGHT_STRING);
-       prefs_model->default_font_weight = gl_util_string_to_weight( string );
-       g_free( string );
-
-       prefs_model->default_text_color =
-               get_int (prefs_model->gconf_client,
-                        BASE_KEY PREF_DEFAULT_TEXT_COLOR,
-                        DEFAULT_TEXT_COLOR);
-
-       string =
-               get_string (prefs_model->gconf_client,
-                           BASE_KEY PREF_DEFAULT_TEXT_ALIGNMENT,
-                           DEFAULT_TEXT_ALIGN_STRING);
-       prefs_model->default_text_alignment = gl_util_string_to_align( string );
-       g_free( string );
-
-       prefs_model->default_text_line_spacing =
-               get_float (prefs_model->gconf_client,
-                          BASE_KEY PREF_DEFAULT_TEXT_LINE_SPACING,
-                          DEFAULT_TEXT_LINE_SPACING);
-
-       gl_debug (DEBUG_PREFS, "text_line_spacing = %f", prefs_model->default_text_line_spacing);
-
-       /* Line properties */
-       prefs_model->default_line_width =
-               get_float (prefs_model->gconf_client,
-                          BASE_KEY PREF_DEFAULT_LINE_WIDTH,
-                          DEFAULT_LINE_WIDTH);
-       prefs_model->default_line_color =
-               get_int (prefs_model->gconf_client,
-                        BASE_KEY PREF_DEFAULT_LINE_COLOR,
-                        DEFAULT_LINE_COLOR);
-
-       /* Fill properties */
-       prefs_model->default_fill_color =
-               get_int (prefs_model->gconf_client,
-                        BASE_KEY PREF_DEFAULT_FILL_COLOR,
-                        DEFAULT_FILL_COLOR);
-
-
-       /* User Inferface/Main Toolbar */
-       prefs_model->main_toolbar_visible =
-               get_bool (prefs_model->gconf_client,
-                         BASE_KEY PREF_MAIN_TOOLBAR_VISIBLE,
-                         TRUE);
-
-       prefs_model->main_toolbar_buttons_style =
-               get_int (prefs_model->gconf_client,
-                        BASE_KEY PREF_MAIN_TOOLBAR_BUTTONS_STYLE,
-                        GL_TOOLBAR_SYSTEM);
-
-       prefs_model->main_toolbar_view_tooltips =
-               get_bool (prefs_model->gconf_client,
-                         BASE_KEY PREF_MAIN_TOOLBAR_VIEW_TOOLTIPS,
-                         TRUE);
-
-       /* User Inferface/Drawing Toolbar */
-       prefs_model->drawing_toolbar_visible =
-               get_bool (prefs_model->gconf_client,
-                         BASE_KEY PREF_DRAWING_TOOLBAR_VISIBLE,
-                         TRUE);
-
-       prefs_model->drawing_toolbar_view_tooltips =
-               get_bool (prefs_model->gconf_client,
-                         BASE_KEY PREF_DRAWING_TOOLBAR_VIEW_TOOLTIPS,
-                         TRUE);
-
-       /* User Inferface/Property Toolbar */
-       prefs_model->property_toolbar_visible =
-               get_bool (prefs_model->gconf_client,
-                         BASE_KEY PREF_PROPERTY_TOOLBAR_VISIBLE,
-                         TRUE);
-
-       prefs_model->property_toolbar_view_tooltips =
-               get_bool (prefs_model->gconf_client,
-                         BASE_KEY PREF_PROPERTY_TOOLBAR_VIEW_TOOLTIPS,
-                         TRUE);
-
-
-       /* View properties */
-       prefs_model->grid_visible =
-               get_bool (prefs_model->gconf_client,
-                         BASE_KEY PREF_GRID_VISIBLE,
-                         TRUE);
-
-       prefs_model->markup_visible =
-               get_bool (prefs_model->gconf_client,
-                         BASE_KEY PREF_MARKUP_VISIBLE,
-                         TRUE);
-
-       /* Recent files */
-       prefs_model->max_recents =
-               get_int (prefs_model->gconf_client,
-                        BASE_KEY PREF_MAX_RECENTS,
-                        -1);
-
-       /* Recent templates */
-        for (p=prefs_model->recent_templates; p != NULL; p=p->next)
-        {
-                g_free (p->data);
-        }
-        g_slist_free (prefs_model->recent_templates);
-       prefs_model->recent_templates =
-               gconf_client_get_list (prefs_model->gconf_client,
-                                       BASE_KEY PREF_RECENT_TEMPLATES,
-                                       GCONF_VALUE_STRING,
-                                       NULL);
-       prefs_model->max_recent_templates =
-               get_int (prefs_model->gconf_client,
-                        BASE_KEY PREF_MAX_RECENT_TEMPLATES,
-                        5);
-
-
-       /* Proof read the default page size -- it must be a valid id. */
-       /* (For compatability with older versions.) */
-       paper = lgl_db_lookup_paper_from_id (prefs_model->default_page_size);
-       if ( paper == NULL ) {
-               prefs_model->default_page_size = g_strdup (DEFAULT_PAGE_SIZE_US);
-       } else {
-               lgl_paper_free (paper);
-               paper = NULL;
-       }
-
-        /* Proof read the recent templates list.  Make sure the template names */
-        /* are valid.  Remove from list if not. */
-        for (p=prefs_model->recent_templates; p != NULL; p=p_next)
-        {
-                p_next = p->next;
+        size = g_settings_get_double (this->priv->objects,
+                                      "default-font-size");
 
-                if ( !lgl_db_does_template_name_exist (p->data) )
-                {
-                        g_free (p->data);
-                        prefs_model->recent_templates = g_slist_delete_link (prefs_model->recent_templates, p);
-                }
-        }
+        return size;
+}
+
+
+/*****************************************************************************/
+/* Set default font weight.                                                  */
+/*****************************************************************************/
+void
+gl_prefs_model_set_default_font_weight (glPrefsModel     *this,
+                                        PangoWeight       weight)
+{
+        g_settings_set_string (this->priv->objects,
+                               "default-font-weight",
+                               gl_str_util_weight_to_string(weight));
+}
 
-       gl_debug (DEBUG_PREFS, "max_recents = %d", prefs_model->max_recents);
 
+/*****************************************************************************/
+/* Get default font weight.                                                  */
+/*****************************************************************************/
+PangoWeight
+gl_prefs_model_get_default_font_weight (glPrefsModel     *this)
+{
+        gchar       *string;
+        PangoWeight  weight;
 
-       g_signal_emit (G_OBJECT(prefs_model), signals[CHANGED], 0);
+        string = g_settings_get_string (this->priv->objects,
+                                        "default-font-weight");
+        weight = gl_str_util_string_to_weight (string);
+        g_free (string);
 
-       gl_debug (DEBUG_PREFS, "END");
+        return weight;
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  Key changed callback.                                           */
-/*---------------------------------------------------------------------------*/
-static void 
-notify_cb (GConfClient  *client,
-          guint         cnxn_id,
-          GConfEntry   *entry,
-          glPrefsModel *prefs_model)
+
+/*****************************************************************************/
+/* Set default font italic flag.                                             */
+/*****************************************************************************/
+void
+gl_prefs_model_set_default_font_italic_flag (glPrefsModel     *this,
+                                             gboolean          italic_flag)
 {
-       gl_debug (DEBUG_PREFS, "Key was changed: %s", entry->key);
+        g_settings_set_boolean (this->priv->objects,
+                                "default-font-italic-flag",
+                                italic_flag);
+}
 
-       gl_prefs_model_load_settings (prefs_model);
+
+/*****************************************************************************/
+/* Get default font italic flag.                                             */
+/*****************************************************************************/
+gboolean
+gl_prefs_model_get_default_font_italic_flag (glPrefsModel     *this)
+{
+        gboolean italic_flag;
+
+        italic_flag = g_settings_get_boolean (this->priv->objects,
+                                              "default-font-italic-flag");
+
+        return italic_flag;
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  Utilities to get values with defaults.                          */
-/*---------------------------------------------------------------------------*/
-static gchar*
-get_string (GConfClient *client,
-           const gchar *key,
-           const gchar *def)
+
+/*****************************************************************************/
+/* Set default text color.                                                   */
+/*****************************************************************************/
+void
+gl_prefs_model_set_default_text_color (glPrefsModel     *this,
+                                       guint             color)
+{
+        g_settings_set_value (this->priv->objects,
+                              "default-text-color",
+                              g_variant_new_uint32 (color));
+}
+
+
+/*****************************************************************************/
+/* Get default text color.                                                   */
+/*****************************************************************************/
+guint
+gl_prefs_model_get_default_text_color (glPrefsModel     *this)
+{
+        GVariant *value;
+        guint     color;
+
+        value = g_settings_get_value (this->priv->objects, "default-text-color");
+        color = g_variant_get_uint32 (value);
+        g_variant_unref (value);
+
+        return color;
+}
+
+
+/*****************************************************************************/
+/* Set default text alignment.                                               */
+/*****************************************************************************/
+void
+gl_prefs_model_set_default_text_alignment (glPrefsModel     *this,
+                                           PangoAlignment    alignment)
 {
-       gchar* val;
+        g_settings_set_string (this->priv->objects,
+                               "default-text-alignment",
+                               gl_str_util_align_to_string(alignment));
+}
 
-       val = gconf_client_get_string (client, key, NULL);
 
-       if (val != NULL) {
+/*****************************************************************************/
+/* Get default text alignment.                                               */
+/*****************************************************************************/
+PangoAlignment
+gl_prefs_model_get_default_text_alignment (glPrefsModel     *this)
+{
+        gchar          *string;
+        PangoAlignment  alignment;
 
-               return val;
+        string = g_settings_get_string (this->priv->objects,
+                                        "default-text-alignment");
+        alignment = gl_str_util_string_to_align (string);
+        g_free (string);
 
-       } else {
+        return alignment;
+}
 
-               return def ? g_strdup (def) : NULL;
 
-       }
+/*****************************************************************************/
+/* Set default text line spacing.                                            */
+/*****************************************************************************/
+void
+gl_prefs_model_set_default_text_line_spacing (glPrefsModel     *this,
+                                              gdouble           spacing)
+{
+        g_settings_set_double (this->priv->objects,
+                               "default-text-line-spacing",
+                               spacing);
 }
 
-static gboolean
-get_bool (GConfClient *client,
-         const gchar *key,
-         gboolean     def)
+
+/*****************************************************************************/
+/* Get default text line spacing.                                            */
+/*****************************************************************************/
+gdouble
+gl_prefs_model_get_default_text_line_spacing (glPrefsModel     *this)
 {
-       GConfValue* val;
-       gboolean retval;
+        gdouble spacing;
 
-       val = gconf_client_get (client, key, NULL);
+        spacing = g_settings_get_double (this->priv->objects,
+                                         "default-text-line-spacing");
 
-       if (val != NULL) {
+        return spacing;
+}
 
-               if ( val->type == GCONF_VALUE_BOOL ) {
-                       retval = gconf_value_get_bool (val);
-               } else {
-                       retval = def;
-               }
 
-               gconf_value_free (val);
+/*****************************************************************************/
+/* Set default line width.                                                   */
+/*****************************************************************************/
+void
+gl_prefs_model_set_default_line_width (glPrefsModel     *this,
+                                       gdouble           width)
+{
+        g_settings_set_double (this->priv->objects,
+                               "default-line-width",
+                               width);
+}
 
-               return retval;
 
-       } else {
+/*****************************************************************************/
+/* Get default line width.                                                   */
+/*****************************************************************************/
+gdouble
+gl_prefs_model_get_default_line_width (glPrefsModel     *this)
+{
+        gdouble width;
 
-               return def;
+        width = g_settings_get_double (this->priv->objects,
+                                       "default-line-width");
 
-       }
+        return width;
 }
 
-static gint
-get_int (GConfClient *client,
-        const gchar *key,
-        gint         def)
+
+/*****************************************************************************/
+/* Set default line color.                                                   */
+/*****************************************************************************/
+void
+gl_prefs_model_set_default_line_color (glPrefsModel     *this,
+                                       guint             color)
 {
-       GConfValue* val;
-       gint retval;
+        g_settings_set_value (this->priv->objects,
+                              "default-line-color",
+                              g_variant_new_uint32 (color));
+}
 
-       val = gconf_client_get (client, key, NULL);
 
-       if (val != NULL) {
+/*****************************************************************************/
+/* Get default line color.                                                   */
+/*****************************************************************************/
+guint
+gl_prefs_model_get_default_line_color (glPrefsModel     *this)
+{
+        GVariant *value;
+        guint     color;
 
-               if ( val->type == GCONF_VALUE_INT) {
-                       retval = gconf_value_get_int(val);
-               } else {
-                       retval = def;
-               }
+        value = g_settings_get_value (this->priv->objects, "default-line-color");
+        color = g_variant_get_uint32 (value);
+        g_variant_unref (value);
 
-               gconf_value_free (val);
+        return color;
+}
 
-               return retval;
 
-       } else {
+/*****************************************************************************/
+/* Set default fill color.                                                   */
+/*****************************************************************************/
+void
+gl_prefs_model_set_default_fill_color (glPrefsModel     *this,
+                                       guint             color)
+{
+        g_settings_set_value (this->priv->objects,
+                              "default-fill-color",
+                              g_variant_new_uint32 (color));
+}
 
-               return def;
 
-       }
+/*****************************************************************************/
+/* Get default fill color.                                                   */
+/*****************************************************************************/
+guint
+gl_prefs_model_get_default_fill_color (glPrefsModel     *this)
+{
+        GVariant *value;
+        guint     color;
+
+        value = g_settings_get_value (this->priv->objects, "default-fill-color");
+        color = g_variant_get_uint32 (value);
+        g_variant_unref (value);
+
+        return color;
 }
 
-static gdouble
-get_float (GConfClient *client,
-          const gchar *key,
-          gdouble      def)
+
+/*****************************************************************************/
+/* Set main toolbar visible flag.                                            */
+/*****************************************************************************/
+void
+gl_prefs_model_set_main_toolbar_visible (glPrefsModel     *this,
+                                         gboolean          visible)
 {
-       GConfValue* val;
-       gdouble retval;
+        g_settings_set_boolean (this->priv->ui,
+                                "main-toolbar-visible",
+                                visible);
+}
+
+
+/*****************************************************************************/
+/* Get main toolbar visible flag.                                            */
+/*****************************************************************************/
+gboolean
+gl_prefs_model_get_main_toolbar_visible (glPrefsModel     *this)
+{
+        gboolean visible;
 
-       val = gconf_client_get (client, key, NULL);
+        visible = g_settings_get_boolean (this->priv->ui,
+                                          "main-toolbar-visible");
+
+        return visible;
+}
 
-       if (val != NULL) {
 
-               if ( val->type == GCONF_VALUE_FLOAT ) {
-                       retval = gconf_value_get_float(val);
-               } else {
-                       retval = def;
-               }
+/*****************************************************************************/
+/* Set drawing toolbar visible flag.                                         */
+/*****************************************************************************/
+void
+gl_prefs_model_set_drawing_toolbar_visible (glPrefsModel     *this,
+                                            gboolean          visible)
+{
+        g_settings_set_boolean (this->priv->ui,
+                                "drawing-toolbar-visible",
+                                visible);
+}
 
-               gconf_value_free (val);
 
-               return retval;
+/*****************************************************************************/
+/* Get drawing toolbar visible flag.                                         */
+/*****************************************************************************/
+gboolean
+gl_prefs_model_get_drawing_toolbar_visible (glPrefsModel     *this)
+{
+        gboolean visible;
 
-       } else {
-               return def;
+        visible = g_settings_get_boolean (this->priv->ui,
+                                          "drawing-toolbar-visible");
 
-       }
+        return visible;
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  Utilities to deal with units.                                   */
-/*---------------------------------------------------------------------------*/
-static lglUnitsType
-string_to_units (const gchar *string)
+
+/*****************************************************************************/
+/* Set property toolbar visible flag.                                        */
+/*****************************************************************************/
+void
+gl_prefs_model_set_property_toolbar_visible (glPrefsModel     *this,
+                                             gboolean          visible)
+{
+        g_settings_set_boolean (this->priv->ui,
+                                "property-toolbar-visible",
+                                visible);
+}
+
+
+/*****************************************************************************/
+/* Get property toolbar visible flag.                                        */
+/*****************************************************************************/
+gboolean
+gl_prefs_model_get_property_toolbar_visible (glPrefsModel     *this)
+{
+        gboolean visible;
+
+        visible = g_settings_get_boolean (this->priv->ui,
+                                          "property-toolbar-visible");
+
+        return visible;
+}
+
+
+/*****************************************************************************/
+/* Set grid visible flag.                                                    */
+/*****************************************************************************/
+void
+gl_prefs_model_set_grid_visible (glPrefsModel     *this,
+                                 gboolean          visible)
+{
+        g_settings_set_boolean (this->priv->ui,
+                                "grid-visible",
+                                visible);
+}
+
+
+/*****************************************************************************/
+/* Get grid visible flag.                                                    */
+/*****************************************************************************/
+gboolean
+gl_prefs_model_get_grid_visible (glPrefsModel     *this)
+{
+        gboolean visible;
+
+        visible = g_settings_get_boolean (this->priv->ui,
+                                          "grid-visible");
+
+        return visible;
+}
+
+
+/*****************************************************************************/
+/* Set markup visible flag.                                                  */
+/*****************************************************************************/
+void
+gl_prefs_model_set_markup_visible (glPrefsModel     *this,
+                                   gboolean          visible)
+{
+        g_settings_set_boolean (this->priv->ui,
+                                "markup-visible",
+                                visible);
+}
+
+
+/*****************************************************************************/
+/* Get markup visible flag.                                                  */
+/*****************************************************************************/
+gboolean
+gl_prefs_model_get_markup_visible (glPrefsModel     *this)
 {
-       lglUnitsType units;
+        gboolean visible;
 
-       if (g_strcasecmp (string, "Points") == 0) {
-               units = LGL_UNITS_POINT;
-       } else if (g_strcasecmp (string, "Inches") == 0) {
-               units = LGL_UNITS_INCH;
-       } else if (g_strcasecmp (string, "Millimeters") == 0) {
-               units = LGL_UNITS_MM;
-       } else {
-               units = LGL_UNITS_INCH;
-       }
+        visible = g_settings_get_boolean (this->priv->ui,
+                                          "markup-visible");
 
-       return units;
+        return visible;
 }
 
-static const
-gchar *units_to_string (lglUnitsType units)
+
+/*****************************************************************************/
+/* Set max recents.                                                          */
+/*****************************************************************************/
+void
+gl_prefs_model_set_max_recents (glPrefsModel     *this,
+                                gint              max_recents)
 {
-       switch (units) {
-       case LGL_UNITS_POINT:
-               return "Points";
-               break;
-       case LGL_UNITS_INCH:
-               return "Inches";
-               break;
-       case LGL_UNITS_MM:
-               return "Millimeters";
-               break;
-       default:
-               return "Inches";
-               break;
-       }
+        g_settings_set_int (this->priv->ui,
+                            "max-recents",
+                            max_recents);
 }
 
 
+/*****************************************************************************/
+/* Get max recents.                                                          */
+/*****************************************************************************/
+gint
+gl_prefs_model_get_max_recents (glPrefsModel     *this)
+{
+        gint max_recents;
+
+        max_recents = g_settings_get_int (this->priv->ui,
+                                          "max-recents");
+
+        return max_recents;
+}
+
+
+/*---------------------------------------------------------------------------*/
+/* PRIVATE.  Key changed callback.                                           */
+/*---------------------------------------------------------------------------*/
+static void 
+gsettings_changed_cb (glPrefsModel *this)
+{
+        g_signal_emit (G_OBJECT(this), signals[CHANGED], 0);
+}
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index c7873fb42fcc5b7268031f1144b84fe3eeba6e4a..72efa845908aa6ad54c45848fa202f90f70b4dbd 100644 (file)
@@ -1,41 +1,32 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  prefs-model.h:  Application preferences model module header file
+ *  prefs-model.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #ifndef __PREFS_MODEL_H__
 #define __PREFS_MODEL_H__
 
 #include <glib-object.h>
-#include <gconf/gconf-client.h>
 #include <pango/pango.h>
-#include <libglabels/enums.h>
+#include <libglabels/libglabels.h>
 
 G_BEGIN_DECLS
 
-typedef enum {
-       GL_TOOLBAR_SYSTEM = 0,
-       GL_TOOLBAR_ICONS,
-       GL_TOOLBAR_ICONS_AND_TEXT
-} glToolbarSetting;
 
 #define GL_TYPE_PREFS_MODEL              (gl_prefs_model_get_type ())
 #define GL_PREFS_MODEL(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_PREFS_MODEL, glPrefsModel))
@@ -47,78 +38,147 @@ typedef enum {
 
 typedef struct _glPrefsModel          glPrefsModel;
 typedef struct _glPrefsModelClass     glPrefsModelClass;
-
 typedef struct _glPrefsModelPrivate   glPrefsModelPrivate;
 
 
 struct _glPrefsModel {
-       GObject           parent;
-
-       GConfClient      *gconf_client;
-
-       /* Units */
-       lglUnitsType      units;
-
-       /* Page size */
-       gchar            *default_page_size;
-
-       /* Text properties */
-       gchar            *default_font_family;
-       gdouble           default_font_size;
-       PangoWeight       default_font_weight;
-       gboolean          default_font_italic_flag;
-       guint             default_text_color;
-       PangoAlignment    default_text_alignment;
-       gdouble           default_text_line_spacing;
-       
-       /* Line properties */
-       gdouble           default_line_width;
-       guint             default_line_color;
-       
-       /* Fill properties */
-       guint             default_fill_color;
-
-       /* User Interface/Main Toolbar */
-       gboolean          main_toolbar_visible;
-       glToolbarSetting  main_toolbar_buttons_style; 
-       gboolean          main_toolbar_view_tooltips;
-
-       /* User Interface/Drawing Toolbar */
-       gboolean          drawing_toolbar_visible;
-       gboolean          drawing_toolbar_view_tooltips;
-
-       /* User Interface/Property Toolbar */
-       gboolean          property_toolbar_visible;
-       gboolean          property_toolbar_view_tooltips;
-
-       /* View properties */
-       gboolean          grid_visible;
-       gboolean          markup_visible;
-
-       /* Recent files */
-       gint              max_recents;
-
-       /* Recent templates */
-        GSList           *recent_templates;
-       gint              max_recent_templates;
+       GObject              parent;
+
+        glPrefsModelPrivate *priv;
 };
 
 struct _glPrefsModelClass {
-       GObjectClass     parent_class;
+       GObjectClass         parent_class;
 
-        void (*changed)          (glPrefsModel *prefs_model, gpointer user_data);
+        void (*changed) (glPrefsModel *prefs_model,
+                         gpointer      user_data);
 };
 
 
-GType         gl_prefs_model_get_type            (void) G_GNUC_CONST;
+GType          gl_prefs_model_get_type                      (void) G_GNUC_CONST;
+
+glPrefsModel  *gl_prefs_model_new                           (void);
+
+
+void           gl_prefs_model_set_units                     (glPrefsModel     *this,
+                                                             lglUnits          units);
+
+lglUnits       gl_prefs_model_get_units                     (glPrefsModel     *this);
+
+
+void           gl_prefs_model_set_default_page_size         (glPrefsModel     *this,
+                                                             const gchar      *page_size);
+
+gchar         *gl_prefs_model_get_default_page_size         (glPrefsModel     *this);
+
+
+void           gl_prefs_model_set_default_font_family       (glPrefsModel     *this,
+                                                             const gchar      *family);
+
+gchar         *gl_prefs_model_get_default_font_family       (glPrefsModel     *this);
+
+
+void           gl_prefs_model_set_default_font_size         (glPrefsModel     *this,
+                                                             gdouble           size);
+
+gdouble        gl_prefs_model_get_default_font_size         (glPrefsModel     *this);
+
+
+void           gl_prefs_model_set_default_font_weight       (glPrefsModel     *this,
+                                                             PangoWeight       weight);
+
+PangoWeight    gl_prefs_model_get_default_font_weight       (glPrefsModel     *this);
+
+
+void           gl_prefs_model_set_default_font_italic_flag  (glPrefsModel     *this,
+                                                             gboolean          italic_flag);
+
+gboolean       gl_prefs_model_get_default_font_italic_flag  (glPrefsModel     *this);
+
+
+void           gl_prefs_model_set_default_text_color        (glPrefsModel     *this,
+                                                             guint             color);
+
+guint          gl_prefs_model_get_default_text_color        (glPrefsModel     *this);
+
+
+void           gl_prefs_model_set_default_text_alignment    (glPrefsModel     *this,
+                                                             PangoAlignment    alignment);
+
+PangoAlignment gl_prefs_model_get_default_text_alignment    (glPrefsModel     *this);
+
 
-glPrefsModel *gl_prefs_model_new                 (void);
+void           gl_prefs_model_set_default_text_line_spacing (glPrefsModel     *this,
+                                                             gdouble           spacing);
 
-void          gl_prefs_model_save_settings       (glPrefsModel   *prefs_model);
+gdouble        gl_prefs_model_get_default_text_line_spacing (glPrefsModel     *this);
+
+
+void           gl_prefs_model_set_default_line_width        (glPrefsModel     *this,
+                                                             gdouble           width);
+
+gdouble        gl_prefs_model_get_default_line_width        (glPrefsModel     *this);
+
+
+void           gl_prefs_model_set_default_line_color        (glPrefsModel     *this,
+                                                             guint             color);
+
+guint          gl_prefs_model_get_default_line_color        (glPrefsModel     *this);
+
+
+void           gl_prefs_model_set_default_fill_color        (glPrefsModel     *this,
+                                                             guint             color);
+
+guint          gl_prefs_model_get_default_fill_color        (glPrefsModel     *this);
+
+
+void           gl_prefs_model_set_main_toolbar_visible      (glPrefsModel     *this,
+                                                             gboolean          visible);
+
+gboolean       gl_prefs_model_get_main_toolbar_visible      (glPrefsModel     *this);
+
+
+void           gl_prefs_model_set_drawing_toolbar_visible   (glPrefsModel     *this,
+                                                             gboolean          visible);
+
+gboolean       gl_prefs_model_get_drawing_toolbar_visible   (glPrefsModel     *this);
+
+
+void           gl_prefs_model_set_property_toolbar_visible  (glPrefsModel     *this,
+                                                             gboolean          visible);
+
+gboolean       gl_prefs_model_get_property_toolbar_visible  (glPrefsModel     *this);
+
+
+void           gl_prefs_model_set_grid_visible              (glPrefsModel     *this,
+                                                             gboolean          visible);
+
+gboolean       gl_prefs_model_get_grid_visible              (glPrefsModel     *this);
+
+
+void           gl_prefs_model_set_markup_visible            (glPrefsModel     *this,
+                                                             gboolean          visible);
+
+gboolean       gl_prefs_model_get_markup_visible            (glPrefsModel     *this);
+
+
+void           gl_prefs_model_set_max_recents               (glPrefsModel     *this,
+                                                             gint              max_recents);
+
+gint           gl_prefs_model_get_max_recents               (glPrefsModel     *this);
 
-void          gl_prefs_model_load_settings       (glPrefsModel   *prefs_model);
 
 G_END_DECLS
 
 #endif /* __PREFS_MODEL_H__ */
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 32011b790d632a90eb266c0e6b4bb63c06f16efd..dc58f7da22ab1e61960ef08953cd01b041046cfa 100644 (file)
@@ -1,32 +1,29 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  prefs.c:  Application preferences module
+ *  prefs.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "prefs.h"
 
 #include <glib/gi18n.h>
-#include <libglabels/libglabels.h>
+#include <libglabels.h>
 
 #include "debug.h"
 
@@ -52,7 +49,6 @@ glPrefsModel      *gl_prefs     = NULL;
 /*========================================================*/
 
 
-\f
 /*****************************************************************************/
 /* Initialize preferences module.                                            */
 /*****************************************************************************/
@@ -63,152 +59,16 @@ gl_prefs_init (void)
 
        gl_prefs = gl_prefs_model_new ();
 
-       gl_prefs_model_load_settings (gl_prefs);
-
        gl_debug (DEBUG_PREFS, "END");
 }
 
-\f
-/****************************************************************************/
-/* Get string representing desired units.                                   */
-/****************************************************************************/
-const gchar *
-gl_prefs_get_page_size (void)
-{
-       return (gl_prefs->default_page_size);
-}
-
-/****************************************************************************/
-/* Get desired units.                                                       */
-/****************************************************************************/
-lglUnitsType
-gl_prefs_get_units (void)
-{
-       return gl_prefs->units;
-}
-
-/****************************************************************************/
-/* Get desired units per point.                                             */
-/****************************************************************************/
-gdouble
-gl_prefs_get_units_per_point (void)
-{
-
-       switch (gl_prefs->units) {
-       case LGL_UNITS_POINT:
-               return 1.0;     /* points */
-       case LGL_UNITS_INCH:
-               return 1.0 / 72.0;      /* inches */
-       case LGL_UNITS_MM:
-               return 0.35277778;      /* mm */
-       default:
-               g_message ("Illegal units");    /* Should not happen */
-               return 1.0;
-       }
-}
-
-/****************************************************************************/
-/* Get precision for desired units.                                         */
-/****************************************************************************/
-gint
-gl_prefs_get_units_precision (void)
-{
-
-       switch (gl_prefs->units) {
-       case LGL_UNITS_POINT:
-               return 1;       /* points */
-       case LGL_UNITS_INCH:
-               return 3;       /* inches */
-       case LGL_UNITS_MM:
-               return 1;       /* mm */
-       default:
-               g_message ("Illegal units");    /* Should not happen */
-               return 1.0;
-       }
-}
-
-/****************************************************************************/
-/* Get step size for desired units.                                         */
-/****************************************************************************/
-gdouble
-gl_prefs_get_units_step_size (void)
-{
-
-       switch (gl_prefs->units) {
-       case LGL_UNITS_POINT:
-               return 0.1;     /* points */
-       case LGL_UNITS_INCH:
-               return 0.001;   /* inches */
-       case LGL_UNITS_MM:
-               return 0.1;     /* mm */
-       default:
-               g_message ("Illegal units");    /* Should not happen */
-               return 1.0;
-       }
-}
 
-/****************************************************************************/
-/* Get string representing desired units.                                   */
-/****************************************************************************/
-const gchar *
-gl_prefs_get_units_string (void)
-{
-
-       switch (gl_prefs->units) {
-       case LGL_UNITS_POINT:
-               return _("points");
-       case LGL_UNITS_INCH:
-               return _("inches");
-       case LGL_UNITS_MM:
-               return _("mm");
-       default:
-               g_message ("Illegal units");    /* Should not happen */
-               return _("points");
-       }
-}
 
-/****************************************************************************/
-/* Add template to recent template list.                                    */
-/****************************************************************************/
-void
-gl_prefs_add_recent_template (const gchar *name)
-{
-        GSList *p;
-
-        /*
-         * If already in list, remove that entry.
-         */
-        p = g_slist_find_custom (gl_prefs->recent_templates,
-                                 name,
-                                 (GCompareFunc)lgl_str_utf8_casecmp);
-        if (p)
-        {
-                gl_prefs->recent_templates =
-                        g_slist_remove_link (gl_prefs->recent_templates, p);
-                g_free (p->data);
-                g_slist_free_1 (p);
-        }
-
-        /*
-         * Now prepend to list.
-         */
-        gl_prefs->recent_templates =
-                g_slist_prepend (gl_prefs->recent_templates, g_strdup (name));
-
-        /*
-         * Truncate list to maximum size
-         */
-        while (g_slist_length (gl_prefs->recent_templates) > gl_prefs->max_recent_templates)
-        {
-                p = g_slist_last (gl_prefs->recent_templates);
-                gl_prefs->recent_templates =
-                        g_slist_remove_link (gl_prefs->recent_templates, p);
-                g_free (p->data);
-                g_slist_free_1 (p);
-        }
-
-        /*
-         * Sync to disk.
-         */
-        gl_prefs_model_save_settings (gl_prefs);
-}
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 98474f5c8f2897db0cf7ad84d7b17e8ba252a534..7cabea1e4cc1144441313ab6e9705d9f66aa82ec 100644 (file)
@@ -1,26 +1,23 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  prefs.h:  Application preferences module header file
+ *  prefs.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #ifndef __PREFS_H__
 #define __PREFS_H__
 
 G_BEGIN_DECLS
 
 
-
 extern glPrefsModel *gl_prefs;
 
 
-
 void          gl_prefs_init                (void);
 
-const gchar  *gl_prefs_get_page_size       (void);
-
-lglUnitsType  gl_prefs_get_units           (void);
-
-const gchar  *gl_prefs_get_units_string    (void);
 
-gdouble       gl_prefs_get_units_per_point (void);
+G_END_DECLS
 
-gdouble       gl_prefs_get_units_step_size (void);
+#endif /* __PREFS_H__ */
 
-gint          gl_prefs_get_units_precision (void);
 
-void          gl_prefs_add_recent_template (const gchar *name);
 
-G_END_DECLS
-
-#endif /* __PREFS_H__ */
 
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/print-op-dialog.c b/src/print-op-dialog.c
new file mode 100644 (file)
index 0000000..fdcc45a
--- /dev/null
@@ -0,0 +1,744 @@
+/*
+ *  print-op-dialog.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "print-op-dialog.h"
+
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+#include <math.h>
+#include <time.h>
+#include <ctype.h>
+
+#include "mini-preview.h"
+#include "label.h"
+#include "builder-util.h"
+
+#include "pixmaps/collate.xpm"
+#include "pixmaps/nocollate.xpm"
+
+#include "debug.h"
+
+
+#define MINI_PREVIEW_MIN_HEIGHT 175
+#define MINI_PREVIEW_MIN_WIDTH  150
+
+
+/*===========================================*/
+/* Private data types                        */
+/*===========================================*/
+
+struct _glPrintOpDialogPrivate {
+
+        GtkBuilder *builder;
+
+       GtkWidget  *simple_frame;
+       GtkWidget  *simple_sheets_radio;
+       GtkWidget  *simple_sheets_spin;
+       GtkWidget  *simple_labels_radio;
+       GtkWidget  *simple_first_spin;
+       GtkWidget  *simple_last_spin;
+
+       GtkWidget  *merge_frame;
+       GtkWidget  *merge_first_spin;
+       GtkWidget  *merge_copies_spin;
+       GtkWidget  *merge_collate_check;
+       GtkWidget  *merge_collate_image;
+
+       GtkWidget  *outline_check;
+       GtkWidget  *reverse_check;
+       GtkWidget  *crop_marks_check;
+
+        GtkWidget  *preview;
+
+        gint       labels_per_sheet;
+        gboolean   merge_flag;
+        gint       n_records;
+
+};
+
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+static void     gl_print_op_dialog_finalize   (GObject           *object);
+
+static void     gl_print_op_dialog_construct  (glPrintOpDialog   *op,
+                                               glLabel           *label);
+
+static GObject *create_custom_widget_cb       (GtkPrintOperation *operation,
+                                               glLabel           *label);
+
+static void     custom_widget_apply_cb        (GtkPrintOperation *operation,
+                                               GtkWidget         *widget,
+                                               glLabel           *label);
+
+static void     simple_sheets_radio_cb        (GtkToggleButton   *togglebutton,
+                                               glPrintOpDialog   *op);
+
+static void     simple_first_spin_cb          (GtkSpinButton     *spinbutton,
+                                               glPrintOpDialog   *op);
+
+static void     simple_last_spin_cb           (GtkSpinButton     *spinbutton,
+                                               glPrintOpDialog   *op);
+
+static void     preview_pressed_cb            (glMiniPreview     *preview,
+                                               gint               first,
+                                               gint               last,
+                                               glPrintOpDialog   *op);
+
+static void     preview_released_cb           (glMiniPreview     *preview,
+                                               gint               first,
+                                               gint               last,
+                                               glPrintOpDialog   *op);
+
+static void     merge_spin_cb                 (GtkSpinButton     *spinbutton,
+                                               glPrintOpDialog   *op);
+
+static void     merge_collate_check_cb        (GtkToggleButton   *togglebutton,
+                                               glPrintOpDialog   *op);
+
+static void     preview_clicked_cb            (glMiniPreview     *preview,
+                                               gint               first,
+                                               glPrintOpDialog   *op);
+
+static void     option_toggled_cb             (GtkToggleButton   *togglebutton,
+                                               glPrintOpDialog   *op);
+
+
+/*****************************************************************************/
+/* Boilerplate object stuff.                                                 */
+/*****************************************************************************/
+G_DEFINE_TYPE (glPrintOpDialog, gl_print_op_dialog, GL_TYPE_PRINT_OP)
+
+
+static void
+gl_print_op_dialog_class_init (glPrintOpDialogClass *class)
+{
+       GObjectClass           *object_class = G_OBJECT_CLASS (class);
+
+       gl_debug (DEBUG_PRINT, "");
+       
+       gl_print_op_dialog_parent_class = g_type_class_peek_parent (class);
+
+       object_class->finalize = gl_print_op_dialog_finalize;
+}
+
+
+static void
+gl_print_op_dialog_init (glPrintOpDialog *op)
+{
+       gl_debug (DEBUG_PRINT, "");
+
+       gtk_print_operation_set_use_full_page (GTK_PRINT_OPERATION (op), TRUE);
+
+        gtk_print_operation_set_unit (GTK_PRINT_OPERATION (op), GTK_UNIT_POINTS);
+
+       op->priv = g_new0 (glPrintOpDialogPrivate, 1);
+
+}
+
+
+static void 
+gl_print_op_dialog_finalize (GObject *object)
+{
+       glPrintOpDialog *op = GL_PRINT_OP_DIALOG (object);
+       
+       gl_debug (DEBUG_PRINT, "");
+
+       g_return_if_fail (object != NULL);
+        g_return_if_fail (GL_IS_PRINT_OP (op));
+       g_return_if_fail (op->priv != NULL);
+
+        g_object_unref (G_OBJECT(op->priv->builder));
+       g_free (op->priv);
+
+       G_OBJECT_CLASS (gl_print_op_dialog_parent_class)->finalize (object);
+
+       g_free (op->priv);
+}
+
+
+/*****************************************************************************/
+/* NEW print op.                                                         */
+/*****************************************************************************/
+glPrintOpDialog *
+gl_print_op_dialog_new (glLabel      *label)
+{
+       glPrintOpDialog *op;
+
+       gl_debug (DEBUG_PRINT, "");
+
+       op = GL_PRINT_OP_DIALOG (g_object_new (GL_TYPE_PRINT_OP_DIALOG, NULL));
+
+       gl_print_op_dialog_construct (GL_PRINT_OP_DIALOG(op), label);
+
+       return op;
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Construct op.                                              */
+/*--------------------------------------------------------------------------*/
+static void
+gl_print_op_dialog_construct (glPrintOpDialog      *op,
+                              glLabel              *label)
+{
+
+        gl_print_op_construct(GL_PRINT_OP (op), label);
+
+       gtk_print_operation_set_custom_tab_label ( GTK_PRINT_OPERATION (op),
+                                                  _("Labels"));
+
+       g_signal_connect (G_OBJECT (op), "create-custom-widget",
+                         G_CALLBACK (create_custom_widget_cb), label);
+
+       g_signal_connect (G_OBJECT (op), "custom-widget-apply",
+                         G_CALLBACK (custom_widget_apply_cb), label);
+
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  "Create custom widget" callback                                */
+/*--------------------------------------------------------------------------*/
+static GObject *
+create_custom_widget_cb (GtkPrintOperation *operation,
+                         glLabel           *label)
+{
+        gchar                  *builder_filename;
+       GtkBuilder             *builder;
+        static gchar           *object_ids[] = { "print_custom_widget_hbox",
+                                                 "adjustment1", "adjustment2",
+                                                 "adjustment3", "adjustment4",
+                                                 "adjustment5",
+                                                 NULL };
+        GError                 *error = NULL;
+       glPrintOpDialog        *op = GL_PRINT_OP_DIALOG (operation);
+        const lglTemplate      *template;
+        const lglTemplateFrame *frame;
+       GtkWidget              *hbox;
+        glMerge                *merge = NULL;
+        GdkPixbuf              *pixbuf;
+
+
+        template = gl_label_get_template (label);
+        frame = (lglTemplateFrame *)template->frames->data;
+        op->priv->labels_per_sheet = lgl_template_frame_get_n_labels (frame);
+
+       builder = gtk_builder_new ();
+        builder_filename = g_build_filename (GLABELS_DATA_DIR, "ui", "print-op-dialog-custom-widget.ui", NULL);
+        gtk_builder_add_objects_from_file (builder, builder_filename, object_ids, &error);
+        g_free (builder_filename);
+       if (error) {
+               g_critical ("%s\n\ngLabels may not be installed correctly!", error->message);
+                g_error_free (error);
+               return NULL;
+       }
+
+        gl_builder_util_get_widgets (builder,
+                                     "print_custom_widget_hbox", &hbox,
+                                     "simple_frame",             &op->priv->simple_frame,
+                                     "simple_sheets_radio",      &op->priv->simple_sheets_radio,
+                                     "simple_sheets_spin",       &op->priv->simple_sheets_spin,
+                                     "simple_labels_radio",      &op->priv->simple_labels_radio,
+                                     "simple_first_spin",        &op->priv->simple_first_spin,
+                                     "simple_last_spin",         &op->priv->simple_last_spin,
+                                     "merge_frame",              &op->priv->merge_frame,
+                                     "merge_first_spin",         &op->priv->merge_first_spin,
+                                     "merge_copies_spin",        &op->priv->merge_copies_spin,
+                                     "merge_collate_check",      &op->priv->merge_collate_check,
+                                     "merge_collate_image",      &op->priv->merge_collate_image,
+                                     "outline_check",            &op->priv->outline_check,
+                                     "reverse_check",            &op->priv->reverse_check,
+                                     "crop_marks_check",         &op->priv->crop_marks_check,
+                                     NULL);
+
+        op->priv->builder = builder;
+
+        /* ---- Install preview. ---- */
+        op->priv->preview = gl_mini_preview_new (MINI_PREVIEW_MIN_HEIGHT, MINI_PREVIEW_MIN_WIDTH);
+        gl_mini_preview_set_template (GL_MINI_PREVIEW(op->priv->preview), template);
+        gl_mini_preview_set_label (GL_MINI_PREVIEW(op->priv->preview), label);
+        gtk_box_pack_start (GTK_BOX(hbox), op->priv->preview, TRUE, TRUE, 0);
+        gtk_widget_show_all (op->priv->preview);
+
+        
+        /* ---- Activate either simple or merge print control widgets. ---- */
+        merge = gl_label_get_merge (label);
+        op->priv->merge_flag = (merge != NULL);
+       if (!op->priv->merge_flag) {
+
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (op->priv->simple_sheets_radio),
+                                              TRUE);
+                gtk_widget_set_sensitive (op->priv->simple_first_spin, FALSE);
+                gtk_widget_set_sensitive (op->priv->simple_last_spin, FALSE);
+
+                gtk_spin_button_set_value (GTK_SPIN_BUTTON (op->priv->simple_sheets_spin),
+                                           gl_print_op_get_n_sheets (GL_PRINT_OP(op)));
+
+                gtk_spin_button_set_range (GTK_SPIN_BUTTON (op->priv->simple_first_spin),
+                                           1, op->priv->labels_per_sheet);
+                gtk_spin_button_set_value (GTK_SPIN_BUTTON (op->priv->simple_first_spin),
+                                           1);
+
+                gtk_spin_button_set_range (GTK_SPIN_BUTTON (op->priv->simple_last_spin),
+                                           1, op->priv->labels_per_sheet);
+                gtk_spin_button_set_value (GTK_SPIN_BUTTON (op->priv->simple_last_spin),
+                                           op->priv->labels_per_sheet);
+
+                /* Update preview. */
+                gl_mini_preview_set_page     (GL_MINI_PREVIEW (op->priv->preview), 0);
+                gl_mini_preview_set_n_sheets (GL_MINI_PREVIEW (op->priv->preview),
+                                              gl_print_op_get_n_sheets (GL_PRINT_OP(op)));
+                gl_mini_preview_set_first    (GL_MINI_PREVIEW (op->priv->preview), 1);
+                gl_mini_preview_set_last     (GL_MINI_PREVIEW (op->priv->preview),
+                                              op->priv->labels_per_sheet);
+
+               gtk_widget_show_all (op->priv->simple_frame);
+               gtk_widget_hide     (op->priv->merge_frame);
+
+                g_signal_connect (G_OBJECT (op->priv->simple_sheets_radio), "toggled",
+                                  G_CALLBACK (simple_sheets_radio_cb), op);
+                g_signal_connect (G_OBJECT (op->priv->simple_first_spin), "changed",
+                                  G_CALLBACK (simple_first_spin_cb), op);
+                g_signal_connect (G_OBJECT (op->priv->simple_last_spin), "changed",
+                                  G_CALLBACK (simple_last_spin_cb), op);
+                g_signal_connect (G_OBJECT (op->priv->preview), "pressed",
+                                  G_CALLBACK (preview_pressed_cb), op);
+                g_signal_connect (G_OBJECT (op->priv->preview), "released",
+                                  G_CALLBACK (preview_released_cb), op);
+
+       } else {
+
+                op->priv->n_records = gl_merge_get_record_count (merge);
+
+                gtk_spin_button_set_range (GTK_SPIN_BUTTON (op->priv->merge_first_spin),
+                                           1, op->priv->labels_per_sheet);
+                gtk_spin_button_set_value (GTK_SPIN_BUTTON (op->priv->merge_first_spin),
+                                           gl_print_op_get_first (GL_PRINT_OP(op)));
+
+                gtk_spin_button_set_value (GTK_SPIN_BUTTON (op->priv->merge_copies_spin),
+                                           gl_print_op_get_n_copies (GL_PRINT_OP(op)));
+
+                gtk_widget_set_sensitive (op->priv->merge_collate_check,
+                                          (gl_print_op_get_n_copies (GL_PRINT_OP(op)) > 1));
+                gtk_widget_set_sensitive (op->priv->merge_collate_image,
+                                          (gl_print_op_get_n_copies (GL_PRINT_OP(op)) > 1));
+                
+
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (op->priv->simple_sheets_radio),
+                                              gl_print_op_get_collate_flag (GL_PRINT_OP(op)));
+
+                if ( gl_print_op_get_collate_flag (GL_PRINT_OP(op)) )
+                {
+                        pixbuf = gdk_pixbuf_new_from_xpm_data ( (const char **)nocollate_xpm);
+                }
+                else
+                {
+                        pixbuf = gdk_pixbuf_new_from_xpm_data ( (const char **)collate_xpm);
+                }
+
+                gtk_image_set_from_pixbuf (GTK_IMAGE (op->priv->merge_collate_image), pixbuf);
+
+                /* Update preview. */
+                gl_mini_preview_set_page     (GL_MINI_PREVIEW (op->priv->preview), 0);
+                gl_mini_preview_set_first    (GL_MINI_PREVIEW (op->priv->preview),
+                                              gl_print_op_get_first (GL_PRINT_OP(op)));
+                gl_mini_preview_set_n_copies (GL_MINI_PREVIEW (op->priv->preview),
+                                              gl_print_op_get_n_copies (GL_PRINT_OP(op)));
+                gl_mini_preview_set_collate_flag (GL_MINI_PREVIEW (op->priv->preview),
+                                                  gl_print_op_get_collate_flag (GL_PRINT_OP(op)));
+
+
+               gtk_widget_hide     (op->priv->simple_frame);
+               gtk_widget_show_all (op->priv->merge_frame);
+
+                g_signal_connect (G_OBJECT (op->priv->merge_first_spin), "changed",
+                                  G_CALLBACK (merge_spin_cb), op);
+                g_signal_connect (G_OBJECT (op->priv->merge_copies_spin), "changed",
+                                  G_CALLBACK (merge_spin_cb), op);
+                g_signal_connect (G_OBJECT (op->priv->merge_collate_check), "toggled",
+                                  G_CALLBACK (merge_collate_check_cb), op);
+                g_signal_connect (G_OBJECT (op->priv->preview), "clicked",
+                                  G_CALLBACK (preview_clicked_cb), op);
+                g_signal_connect (G_OBJECT (op->priv->preview), "pressed",
+                                  G_CALLBACK (preview_pressed_cb), op);
+                g_signal_connect (G_OBJECT (op->priv->preview), "released",
+                                  G_CALLBACK (preview_released_cb), op);
+
+               g_object_unref (G_OBJECT(merge));
+
+       }
+
+        /* --- Set options --- */
+        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (op->priv->outline_check),
+                                      gl_print_op_get_outline_flag (GL_PRINT_OP(op)));
+        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (op->priv->reverse_check),
+                                      gl_print_op_get_reverse_flag (GL_PRINT_OP(op)));
+        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (op->priv->crop_marks_check),
+                                      gl_print_op_get_crop_marks_flag (GL_PRINT_OP(op)));
+
+        /* --- Do we need to force the outline flag --- */
+        if (gl_print_op_is_outline_forced (GL_PRINT_OP (op)))
+        {
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(op->priv->outline_check),
+                                              TRUE);
+
+                gtk_widget_set_sensitive (op->priv->outline_check, FALSE);
+                gtk_widget_set_sensitive (op->priv->reverse_check, FALSE);
+                gtk_widget_set_sensitive (op->priv->crop_marks_check, FALSE);
+        }
+
+        g_signal_connect (G_OBJECT (op->priv->outline_check), "toggled",
+                          G_CALLBACK (option_toggled_cb), op);
+        g_signal_connect (G_OBJECT (op->priv->reverse_check), "toggled",
+                          G_CALLBACK (option_toggled_cb), op);
+        g_signal_connect (G_OBJECT (op->priv->crop_marks_check), "toggled",
+                          G_CALLBACK (option_toggled_cb), op);
+
+       return G_OBJECT (hbox);
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  "Custom widget apply" callback                                 */
+/*--------------------------------------------------------------------------*/
+static void
+custom_widget_apply_cb (GtkPrintOperation *operation,
+                        GtkWidget         *widget,
+                        glLabel           *label)
+{
+        glPrintOpDialog *op    = GL_PRINT_OP_DIALOG (operation);
+        glMerge         *merge = NULL;
+        gint             n_records;
+        gint             n_sheets, first, last, n_copies;
+        gboolean         collate_flag;
+
+        gl_print_op_set_outline_flag (GL_PRINT_OP (op),
+                                      gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
+                                                                    (op->priv->outline_check)));
+        gl_print_op_set_reverse_flag (GL_PRINT_OP (op),
+                                      gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
+                                                                    (op->priv->reverse_check)));
+        gl_print_op_set_crop_marks_flag (GL_PRINT_OP (op),
+                                         gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
+                                                                       (op->priv->crop_marks_check)));
+
+
+        if (!op->priv->merge_flag)
+        {
+
+                n_sheets = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (op->priv->simple_sheets_spin));
+                gl_print_op_set_n_sheets (GL_PRINT_OP (op), n_sheets);
+
+                first = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (op->priv->simple_first_spin));
+                gl_print_op_set_first (GL_PRINT_OP (op), first);
+
+                last = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (op->priv->simple_last_spin));
+                gl_print_op_set_last (GL_PRINT_OP (op), last);
+
+        }
+        else
+        {
+
+                merge = gl_label_get_merge (label);
+
+                n_copies = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (op->priv->merge_copies_spin));
+                gl_print_op_set_n_copies (GL_PRINT_OP (op), n_copies);
+
+                first = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (op->priv->merge_first_spin));
+                gl_print_op_set_first (GL_PRINT_OP (op), first);
+
+                collate_flag = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (op->priv->merge_collate_check));
+                gl_print_op_set_collate_flag (GL_PRINT_OP (op), collate_flag);
+
+                n_records = gl_merge_get_record_count (merge);
+                n_sheets = ceil (first - 1 + (n_copies * n_records)/(double)op->priv->labels_per_sheet);
+                gl_print_op_set_n_sheets     (GL_PRINT_OP (op), n_sheets);
+
+                g_object_unref (G_OBJECT(merge));
+
+        }
+
+
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Simple sheets radio "toggled" callback                         */
+/*--------------------------------------------------------------------------*/
+static void
+simple_sheets_radio_cb (GtkToggleButton   *togglebutton,
+                        glPrintOpDialog   *op)
+{
+        gint first, last;
+
+        if (gtk_toggle_button_get_active (togglebutton)) {
+
+                gtk_widget_set_sensitive (op->priv->simple_sheets_spin, TRUE);
+                gtk_widget_set_sensitive (op->priv->simple_first_spin, FALSE);
+                gtk_widget_set_sensitive (op->priv->simple_last_spin, FALSE);
+
+                gtk_spin_button_set_range (GTK_SPIN_BUTTON (op->priv->simple_first_spin),
+                                           1, op->priv->labels_per_sheet);
+                gtk_spin_button_set_value (GTK_SPIN_BUTTON (op->priv->simple_first_spin),
+                                           1);
+
+                gtk_spin_button_set_range (GTK_SPIN_BUTTON (op->priv->simple_last_spin),
+                                           1, op->priv->labels_per_sheet);
+                gtk_spin_button_set_value (GTK_SPIN_BUTTON (op->priv->simple_last_spin),
+                                           op->priv->labels_per_sheet);
+
+                gl_mini_preview_set_n_sheets (GL_MINI_PREVIEW (op->priv->preview),
+                                              gl_print_op_get_n_sheets (GL_PRINT_OP(op)));
+                gl_mini_preview_set_first    (GL_MINI_PREVIEW (op->priv->preview), 1);
+                gl_mini_preview_set_last     (GL_MINI_PREVIEW (op->priv->preview),
+                                              op->priv->labels_per_sheet);
+
+        } else {
+
+                gtk_widget_set_sensitive (op->priv->simple_sheets_spin, FALSE);
+                gtk_widget_set_sensitive (op->priv->simple_first_spin, TRUE);
+                gtk_widget_set_sensitive (op->priv->simple_last_spin, TRUE);
+
+                gtk_spin_button_set_value (GTK_SPIN_BUTTON (op->priv->simple_sheets_spin), 1);
+
+                first = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (op->priv->simple_first_spin));
+                last  = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (op->priv->simple_last_spin));
+
+                gl_mini_preview_set_n_sheets (GL_MINI_PREVIEW (op->priv->preview), 1);
+                gl_mini_preview_set_first    (GL_MINI_PREVIEW (op->priv->preview), first);
+                gl_mini_preview_set_last     (GL_MINI_PREVIEW (op->priv->preview), last);
+
+        }
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Simple first label spinbutton "changed" callback               */
+/*--------------------------------------------------------------------------*/
+static void
+simple_first_spin_cb (GtkSpinButton     *spinbutton,
+                      glPrintOpDialog   *op)
+{
+        gint first, last;
+
+        first = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (op->priv->simple_first_spin));
+        last  = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (op->priv->simple_last_spin));
+
+        /* Adjust range of last spin button. */
+        gtk_spin_button_set_range (GTK_SPIN_BUTTON (op->priv->simple_last_spin),
+                                   first, op->priv->labels_per_sheet);
+
+        /* Update preview. */
+        gl_mini_preview_set_first    (GL_MINI_PREVIEW (op->priv->preview), first);
+        gl_mini_preview_set_last     (GL_MINI_PREVIEW (op->priv->preview), last);
+
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Simple last label spinbutton "changed" callback                */
+/*--------------------------------------------------------------------------*/
+static void
+simple_last_spin_cb (GtkSpinButton     *spinbutton,
+                     glPrintOpDialog   *op)
+{
+        gint first, last;
+
+        first = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (op->priv->simple_first_spin));
+        last  = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (op->priv->simple_last_spin));
+
+        /* Adjust range of first spin button. */
+        gtk_spin_button_set_range (GTK_SPIN_BUTTON (op->priv->simple_first_spin),
+                                   1, last);
+
+        /* Update preview. */
+        gl_mini_preview_set_first    (GL_MINI_PREVIEW (op->priv->preview), first);
+        gl_mini_preview_set_last     (GL_MINI_PREVIEW (op->priv->preview), last);
+
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Preview "pressed" callback                                     */
+/*--------------------------------------------------------------------------*/
+static void
+preview_pressed_cb (glMiniPreview     *preview,
+                    gint               first,
+                    gint               last,
+                    glPrintOpDialog   *op)
+{
+        gint old_first;
+
+        if ( !op->priv->merge_flag )
+        {
+
+                /* Update controls. */
+                old_first = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (op->priv->simple_first_spin));
+                if ( first > old_first )
+                {
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON (op->priv->simple_last_spin), last);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON (op->priv->simple_first_spin), first);
+                }
+                else
+                {
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON (op->priv->simple_first_spin), first);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON (op->priv->simple_last_spin), last);
+                }
+                if ( (first == 1) && (last == op->priv->labels_per_sheet) )
+                {
+                        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (op->priv->simple_sheets_radio), TRUE);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON (op->priv->simple_sheets_spin), 1);
+                }
+                else
+                {
+                        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (op->priv->simple_labels_radio), TRUE);
+                }
+
+        }
+
+        gl_mini_preview_highlight_range (GL_MINI_PREVIEW (op->priv->preview), first, last);
+
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Preview "pressed" callback                                     */
+/*--------------------------------------------------------------------------*/
+static void
+preview_released_cb (glMiniPreview     *preview,
+                     gint               first,
+                     gint               last,
+                     glPrintOpDialog   *op)
+{
+
+        gl_mini_preview_highlight_range (GL_MINI_PREVIEW (op->priv->preview), 0, 0);
+
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  "changed" callback for merge first and copies spin buttons.    */
+/*--------------------------------------------------------------------------*/
+static void
+merge_spin_cb (GtkSpinButton     *spinbutton,
+               glPrintOpDialog   *op)
+{
+        gint first, n_copies;
+
+        first = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (op->priv->merge_first_spin));
+
+        n_copies = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (op->priv->merge_copies_spin));
+
+        gl_mini_preview_set_first (GL_MINI_PREVIEW(op->priv->preview), first);
+        gl_mini_preview_set_n_copies (GL_MINI_PREVIEW(op->priv->preview), n_copies);
+
+        gtk_widget_set_sensitive (op->priv->merge_collate_check, (n_copies > 1));
+        gtk_widget_set_sensitive (op->priv->merge_collate_image, (n_copies > 1));
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Merge first collate check "toggled" callback                   */
+/*--------------------------------------------------------------------------*/
+static void
+merge_collate_check_cb (GtkToggleButton   *togglebutton,
+                        glPrintOpDialog   *op)
+{
+        GdkPixbuf *pixbuf;
+
+        if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (op->priv->merge_collate_check)) )
+        {
+                pixbuf = gdk_pixbuf_new_from_xpm_data ( (const char **)nocollate_xpm);
+                gl_mini_preview_set_collate_flag (GL_MINI_PREVIEW (op->priv->preview), TRUE);
+        }
+        else
+        {
+                pixbuf = gdk_pixbuf_new_from_xpm_data ( (const char **)collate_xpm);
+                gl_mini_preview_set_collate_flag (GL_MINI_PREVIEW (op->priv->preview), FALSE);
+        }
+
+        gtk_image_set_from_pixbuf (GTK_IMAGE (op->priv->merge_collate_image), pixbuf);
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Preview "clicked" callback                                     */
+/*--------------------------------------------------------------------------*/
+static void
+preview_clicked_cb (glMiniPreview     *preview,
+                    gint               first,
+                    glPrintOpDialog   *op)
+{
+        gint n_copies;
+
+        if ( op->priv->merge_flag )
+        {
+
+                /* Update controls. */
+                gtk_spin_button_set_value (GTK_SPIN_BUTTON (op->priv->merge_first_spin), first);
+
+                n_copies = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (op->priv->merge_copies_spin));
+                gtk_widget_set_sensitive (op->priv->merge_collate_check, (n_copies > 1));
+                gtk_widget_set_sensitive (op->priv->merge_collate_image, (n_copies > 1));
+
+        }
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Option checkbox "toggled" callback                             */
+/*--------------------------------------------------------------------------*/
+static void
+option_toggled_cb (GtkToggleButton   *togglebutton,
+                   glPrintOpDialog   *op)
+{
+        gboolean flag;
+
+        flag = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (op->priv->outline_check));
+        gl_mini_preview_set_outline_flag (GL_MINI_PREVIEW (op->priv->preview), flag);
+
+        flag = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (op->priv->reverse_check));
+        gl_mini_preview_set_reverse_flag (GL_MINI_PREVIEW (op->priv->preview), flag);
+
+        flag = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (op->priv->crop_marks_check));
+        gl_mini_preview_set_crop_marks_flag (GL_MINI_PREVIEW (op->priv->preview), flag);
+}
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/print-op-dialog.h b/src/print-op-dialog.h
new file mode 100644 (file)
index 0000000..d6469bf
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ *  print-op-dialog.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __PRINT_OP_DIALOG_H__
+#define __PRINT_OP_DIALOG_H__
+
+#include "print-op.h"
+
+G_BEGIN_DECLS
+
+#define GL_TYPE_PRINT_OP_DIALOG            (gl_print_op_dialog_get_type ())
+#define GL_PRINT_OP_DIALOG(obj) \
+        (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_PRINT_OP_DIALOG, glPrintOpDialog))
+#define GL_PRINT_OP_DIALOG_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_PRINT_OP_DIALOG, glPrintOpDialogClass))
+#define GL_IS_PRINT_OP_DIALOG(obj) \
+        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_PRINT_OP_DIALOG))
+#define GL_IS_PRINT_OP_DIALOG_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_PRINT_OP_DIALOG))
+#define GL_PRINT_OP_DIALOG_GET_CLASS(obj) \
+        (G_TYPE_INSTANCE_GET_CLASS ((obj), GL_TYPE_PRINT_OP_DIALOG, glPrintOpDialogClass))
+
+
+typedef struct _glPrintOpDialog         glPrintOpDialog;
+typedef struct _glPrintOpDialogClass    glPrintOpDialogClass;
+
+typedef struct _glPrintOpDialogPrivate  glPrintOpDialogPrivate;
+
+struct _glPrintOpDialog
+{
+        glPrintOp                   parent_instance;
+
+        glPrintOpDialogPrivate     *priv;
+
+};
+
+struct  _glPrintOpDialogClass
+{
+        glPrintOpClass              parent_class;
+};
+
+
+typedef struct _glPrintOpDialogSettings glPrintOpDialogSettings;
+
+
+
+GType              gl_print_op_dialog_get_type           (void) G_GNUC_CONST;
+
+glPrintOpDialog   *gl_print_op_dialog_new                (glLabel           *label);
+
+
+
+G_END_DECLS
+
+#endif
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 2b2cd4a7c838bc7904e40dad0674a653638951d9..e7a964801c295f407daa38f29c7e73a9fdc0469c 100644 (file)
@@ -1,46 +1,40 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  print-op.c:  Print operation module
+ *  print-op.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "print-op.h"
 
 #include <glib/gi18n.h>
-#include <glade/glade-xml.h>
+#include <gtk/gtk.h>
 #include <math.h>
 #include <time.h>
 #include <ctype.h>
-#include <gtk/gtktogglebutton.h>
 
-#include <libglabels/db.h>
+#include <libglabels.h>
 #include "print.h"
 #include "label.h"
 
-#include "wdgt-print-copies.h"
-#include "wdgt-print-merge.h"
-
 #include "debug.h"
 
+
 /*===========================================*/
 /* Private data types                        */
 /*===========================================*/
@@ -49,18 +43,6 @@ struct _glPrintOpPrivate {
 
        glLabel   *label;
 
-       GtkWidget *simple_frame;
-       GtkWidget *copies_vbox;
-       GtkWidget *copies;
-
-       GtkWidget *merge_frame;
-       GtkWidget *prmerge_vbox;
-       GtkWidget *prmerge;
-
-       GtkWidget *outline_check;
-       GtkWidget *reverse_check;
-       GtkWidget *crop_marks_check;
-
         gboolean   force_outline_flag;
 
         gchar     *filename;
@@ -101,36 +83,16 @@ struct _glPrintOpSettings
 /* Private globals                           */
 /*===========================================*/
 
+
 /*===========================================*/
 /* Local function prototypes                 */
 /*===========================================*/
 
-static void     gl_print_op_finalize      (GObject            *object);
-
-static void     gl_print_op_construct       (glPrintOp          *op,
-                                             glLabel            *label);
-
-static void     gl_print_op_construct_batch (glPrintOp          *op,
-                                             glLabel            *label,
-                                             gchar              *filename,
-                                             gint                n_sheets,
-                                             gint                n_copies,
-                                             gint                first,
-                                             gboolean            outline_flag,
-                                             gboolean            reverse_flag,
-                                             gboolean            crop_marks_flag);
-
+static void     gl_print_op_finalize          (GObject           *object);
 
 static void     set_page_size                 (glPrintOp         *op,
                                                glLabel           *label);
 
-static GObject *create_custom_widget_cb       (GtkPrintOperation *operation,
-                                               gpointer           user_data);
-
-static void     custom_widget_apply_cb        (GtkPrintOperation *operation,
-                                               GtkWidget         *widget,
-                                               gpointer           user_data);
-
 static void     begin_print_cb                (GtkPrintOperation *operation,
                                                GtkPrintContext   *context,
                                                gpointer           user_data);
@@ -141,12 +103,11 @@ static void     draw_page_cb                  (GtkPrintOperation *operation,
                                                gpointer           user_data);
 
 
-
-\f
 /*****************************************************************************/
 /* Boilerplate object stuff.                                                 */
 /*****************************************************************************/
-G_DEFINE_TYPE (glPrintOp, gl_print_op, GTK_TYPE_PRINT_OPERATION);
+G_DEFINE_TYPE (glPrintOp, gl_print_op, GTK_TYPE_PRINT_OPERATION)
+
 
 static void
 gl_print_op_class_init (glPrintOpClass *class)
@@ -160,6 +121,7 @@ gl_print_op_class_init (glPrintOpClass *class)
        object_class->finalize = gl_print_op_finalize;
 }
 
+
 static void
 gl_print_op_init (glPrintOp *op)
 {
@@ -173,10 +135,11 @@ gl_print_op_init (glPrintOp *op)
 
 }
 
+
 static void 
 gl_print_op_finalize (GObject *object)
 {
-       glPrintOpop = GL_PRINT_OP (object);
+       glPrintOp *op = GL_PRINT_OP (object);
        
        gl_debug (DEBUG_PRINT, "");
 
@@ -184,9 +147,7 @@ gl_print_op_finalize (GObject *object)
         g_return_if_fail (GL_IS_PRINT_OP (op));
        g_return_if_fail (op->priv != NULL);
 
-       if (op->priv->label) {
-               g_object_unref (G_OBJECT(op->priv->label));
-       }
+        g_object_unref (G_OBJECT(op->priv->label));
         g_free (op->priv->filename);
        g_free (op->priv);
 
@@ -195,6 +156,7 @@ gl_print_op_finalize (GObject *object)
        g_free (op->priv);
 }
 
+
 /*****************************************************************************/
 /* NEW print op.                                                         */
 /*****************************************************************************/
@@ -212,20 +174,26 @@ gl_print_op_new (glLabel      *label)
        return op;
 }
 
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Construct op.                                              */
-/*--------------------------------------------------------------------------*/
-static void
+
+/*****************************************************************************/
+/* Construct print op.                                                       */
+/*****************************************************************************/
+void
 gl_print_op_construct (glPrintOp      *op,
                        glLabel        *label)
 {
+        glMerge                *merge = NULL;
+        const lglTemplate      *template;
         const lglTemplateFrame *frame;
 
        op->priv->label              = label;
        op->priv->force_outline_flag = FALSE;
 
-        frame = (lglTemplateFrame *)label->template->frames->data;
+        merge    = gl_label_get_merge (label);
+        template = gl_label_get_template (label);
+        frame    = (lglTemplateFrame *)template->frames->data;
 
+        op->priv->merge_flag         = (merge != NULL);
         op->priv->n_sheets           = 1;
         op->priv->first              = 1;
         op->priv->last               = lgl_template_frame_get_n_labels (frame);
@@ -236,12 +204,6 @@ gl_print_op_construct (glPrintOp      *op,
        gtk_print_operation_set_custom_tab_label ( GTK_PRINT_OPERATION (op),
                                                   _("Labels"));
 
-       g_signal_connect (G_OBJECT (op), "create-custom-widget",
-                         G_CALLBACK (create_custom_widget_cb), label);
-
-       g_signal_connect (G_OBJECT (op), "custom-widget-apply",
-                         G_CALLBACK (custom_widget_apply_cb), label);
-
        g_signal_connect (G_OBJECT (op), "begin-print",
                          G_CALLBACK (begin_print_cb), label);
 
@@ -249,173 +211,175 @@ gl_print_op_construct (glPrintOp      *op,
                          G_CALLBACK (draw_page_cb), label);
 }
 
+
 /*****************************************************************************/
-/* NEW batch print operation.                                                */
+/* Set outline flag/checkbox.                                                */
 /*****************************************************************************/
-glPrintOp *
-gl_print_op_new_batch (glLabel       *label,
-                       gchar         *filename,
-                       gint           n_sheets,
-                       gint           n_copies,
-                       gint           first,
-                       gboolean       outline_flag,
-                       gboolean       reverse_flag,
-                       gboolean       crop_marks_flag)
+void
+gl_print_op_force_outline (glPrintOp *op)
 {
-       glPrintOp *op;
-
-       gl_debug (DEBUG_PRINT, "");
-
-       op = GL_PRINT_OP (g_object_new (GL_TYPE_PRINT_OP, NULL));
+        op->priv->force_outline_flag = TRUE;
+}
 
-       gl_print_op_construct_batch (GL_PRINT_OP(op),
-                                         label,
-                                         filename,
-                                         n_sheets,
-                                         n_copies,
-                                         first,
-                                         outline_flag,
-                                         reverse_flag,
-                                         crop_marks_flag);
 
-       return op;
+/*****************************************************************************/
+/* Set outline flag/checkbox.                                                */
+/*****************************************************************************/
+gboolean
+gl_print_op_is_outline_forced (glPrintOp *op)
+{
+        return op->priv->force_outline_flag;
 }
 
+
 /*****************************************************************************/
-/* Get print operation settings.                                             */
+/* Set job parameters.                                                       */
 /*****************************************************************************/
-glPrintOpSettings *
-gl_print_op_get_settings (glPrintOp         *print_op)
+void
+gl_print_op_set_filename (glPrintOp *op,
+                          gchar     *filename)
 {
-        glPrintOpSettings *settings;
+        gtk_print_operation_set_export_filename (GTK_PRINT_OPERATION (op),
+                                                 filename);
+}
 
-        settings = g_new0 (glPrintOpSettings, 1);
 
-        if ( settings )
-        {
-                settings->gtk_settings =
-                        gtk_print_operation_get_print_settings (GTK_PRINT_OPERATION (print_op));
+void
+gl_print_op_set_n_sheets (glPrintOp *op,
+                          gint       n_sheets)
+{
+        op->priv->n_sheets = n_sheets;
+}
 
-                settings->outline_flag     = print_op->priv->outline_flag;
-                settings->reverse_flag     = print_op->priv->reverse_flag;
-                settings->crop_marks_flag  = print_op->priv->crop_marks_flag;
-                settings->collate_flag     = print_op->priv->collate_flag;
 
-                settings->first            = print_op->priv->first;
-                settings->last             = print_op->priv->last;
-                settings->n_sheets         = print_op->priv->n_sheets;
-                settings->n_copies         = print_op->priv->n_copies;
-        }
+void
+gl_print_op_set_n_copies (glPrintOp *op,
+                          gint       n_copies)
+{
+        op->priv->n_copies = n_copies;
+}
 
-        return settings;
+
+void
+gl_print_op_set_first (glPrintOp *op,
+                       gint       first)
+{
+        op->priv->first = first;
 }
 
-/*****************************************************************************/
-/* Set print operation settings.                                             */
-/*****************************************************************************/
+
 void
-gl_print_op_set_settings (glPrintOp         *print_op,
-                          glPrintOpSettings *settings)
+gl_print_op_set_last (glPrintOp *op,
+                      gint       last)
 {
+        op->priv->last = last;
+}
 
-        if ( settings )
-        {
-                gtk_print_operation_set_print_settings (GTK_PRINT_OPERATION (print_op),
-                                                        settings->gtk_settings);
 
-                print_op->priv->outline_flag     = settings->outline_flag;
-                print_op->priv->reverse_flag     = settings->reverse_flag;
-                print_op->priv->crop_marks_flag  = settings->crop_marks_flag;
-                print_op->priv->collate_flag     = settings->collate_flag;
+void
+gl_print_op_set_collate_flag (glPrintOp *op,
+                              gboolean   collate_flag)
+{
+        op->priv->collate_flag = collate_flag;
+}
 
-                print_op->priv->first            = settings->first;
-                print_op->priv->last             = settings->last;
-                print_op->priv->n_sheets         = settings->n_sheets;
-                print_op->priv->n_copies         = settings->n_copies;
-        }
 
- }
+void
+gl_print_op_set_outline_flag (glPrintOp *op,
+                              gboolean   outline_flag)
+{
+        op->priv->outline_flag = outline_flag;
+}
+
+
+void
+gl_print_op_set_reverse_flag (glPrintOp *op,
+                              gboolean   reverse_flag)
+{
+        op->priv->reverse_flag = reverse_flag;
+}
+
+
+void
+gl_print_op_set_crop_marks_flag (glPrintOp *op,
+                                 gboolean   crop_marks_flag)
+{
+        op->priv->crop_marks_flag = crop_marks_flag;
+}
+
 
 /*****************************************************************************/
-/* Free print operation settings structure.                                  */
+/* Get job parameters.                                                       */
 /*****************************************************************************/
-void
-gl_print_op_free_settings(glPrintOpSettings *settings)
+gchar *
+gl_print_op_get_filename (glPrintOp *op)
 {
-        
-        if ( settings )
-        {
-                if ( settings->gtk_settings )
-                {
-                        g_object_unref (settings->gtk_settings);
-                }
+        gchar *filename = NULL;
 
-                g_free (settings);
-        }
+        g_object_get (G_OBJECT (op),
+                      "export_filename", filename,
+                      NULL);
+
+        return filename;
 }
 
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Construct op.                                                  */
-/*--------------------------------------------------------------------------*/
-static void
-gl_print_op_construct_batch (glPrintOp      *op,
-                             glLabel        *label,
-                             gchar          *filename,
-                             gint            n_sheets,
-                             gint            n_copies,
-                             gint            first,
-                             gboolean        outline_flag,
-                             gboolean        reverse_flag,
-                             gboolean        crop_marks_flag)
 
+gint
+gl_print_op_get_n_sheets (glPrintOp *op)
 {
-        glMerge                *merge = NULL;
-        const lglTemplateFrame *frame = NULL;
+        return op->priv->n_sheets;
+}
 
-       op->priv->label              = label;
-       op->priv->force_outline_flag = FALSE;
-        op->priv->filename           = g_strdup (filename);
-        op->priv->n_sheets           = n_sheets;
-        op->priv->n_copies           = n_copies;
-        op->priv->first              = first;
-        op->priv->outline_flag       = outline_flag;
-        op->priv->reverse_flag       = reverse_flag;
-        op->priv->crop_marks_flag    = crop_marks_flag;
-
-        merge = gl_label_get_merge (label);
-
-        frame = (lglTemplateFrame *)label->template->frames->data;
-        if (merge == NULL)
-        {
-                op->priv->merge_flag = FALSE;
 
-                op->priv->last = lgl_template_frame_get_n_labels (frame);
+gint
+gl_print_op_get_n_copies (glPrintOp *op)
+{
+        return op->priv->n_copies;
+}
 
-        }
-        else
-        {
-                op->priv->merge_flag = TRUE;
 
-                op->priv->n_sheets =
-                        ceil ((double)(first-1 + n_copies * gl_merge_get_record_count(merge))
-                              / lgl_template_frame_get_n_labels (frame));;
+gint
+gl_print_op_get_first (glPrintOp *op)
+{
+        return op->priv->first;
+}
 
-                g_object_unref (G_OBJECT(merge));
 
-        }
+gint
+gl_print_op_get_last (glPrintOp *op)
+{
+        return op->priv->last;
+}
 
-        set_page_size (op, label);
 
-        gtk_print_operation_set_export_filename (GTK_PRINT_OPERATION (op),
-                                                 filename);
+gboolean
+gl_print_op_get_collate_flag (glPrintOp *op)
+{
+        return op->priv->collate_flag;
+}
 
-       g_signal_connect (G_OBJECT (op), "begin-print",
-                         G_CALLBACK (begin_print_cb), label);
 
-       g_signal_connect (G_OBJECT (op), "draw-page",
-                         G_CALLBACK (draw_page_cb), label);
+gboolean
+gl_print_op_get_outline_flag (glPrintOp *op)
+{
+        return op->priv->outline_flag;
+}
+
+
+gboolean
+gl_print_op_get_reverse_flag (glPrintOp *op)
+{
+        return op->priv->reverse_flag;
+}
+
+
+gboolean
+gl_print_op_get_crop_marks_flag (glPrintOp *op)
+{
+        return op->priv->crop_marks_flag;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Set page size.                                                 */
 /*--------------------------------------------------------------------------*/
@@ -423,13 +387,15 @@ static void
 set_page_size (glPrintOp  *op,
                glLabel    *label)
 {
-        GtkPaperSize *psize;
-        GtkPageSetup *su;
-        lglPaper     *paper;
+        const lglTemplate *template;
+        GtkPaperSize      *psize;
+        GtkPageSetup      *su;
+        lglPaper          *paper;
 
        gl_debug (DEBUG_PRINT, "begin");
 
-        paper = lgl_db_lookup_paper_from_id (label->template->paper_id);
+        template = gl_label_get_template (label);
+        paper = lgl_db_lookup_paper_from_id (template->paper_id);
 
         if (!paper)
         {
@@ -444,12 +410,12 @@ set_page_size (glPrintOp  *op,
         {
                 psize = gtk_paper_size_new_custom (paper->id,
                                                    paper->name,
-                                                   label->template->page_width,
-                                                   label->template->page_height,
+                                                   template->page_width,
+                                                   template->page_height,
                                                    GTK_UNIT_POINTS);
                 gl_debug (DEBUG_PRINT, "Using custom size = %g x %g points",
-                          label->template->page_width,
-                          label->template->page_height);
+                          template->page_width,
+                          template->page_height);
 
         }
         else
@@ -469,145 +435,83 @@ set_page_size (glPrintOp  *op,
        gl_debug (DEBUG_PRINT, "end");
 }
 
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  "Create custom widget" callback                                */
-/*--------------------------------------------------------------------------*/
-static GObject *
-create_custom_widget_cb (GtkPrintOperation *operation,
-                        gpointer           user_data)
-{
-       GladeXML      *gui;
-       glPrintOp     *op = GL_PRINT_OP (operation);
-       glLabel       *label  = GL_LABEL (user_data);
-       GtkWidget     *vbox;
-        glMerge       *merge = NULL;
-
-       gui = glade_xml_new (GLABELS_GLADE_DIR "print-custom-widget.glade",
-                             "print_custom_widget_vbox", NULL);
-
-       if (!gui) {
-               g_warning ("Could not open print-op.glade, reinstall glabels!");
-               return NULL;
-       }
-
-       vbox = glade_xml_get_widget (gui, "print_custom_widget_vbox");
-
-       /* ----- Simple print control ----- */
-       op->priv->simple_frame = glade_xml_get_widget (gui, "simple_frame");
-       op->priv->copies_vbox  = glade_xml_get_widget (gui, "copies_vbox");
-       op->priv->copies = gl_wdgt_print_copies_new (label);
-       gtk_box_pack_start (GTK_BOX(op->priv->copies_vbox),
-                           op->priv->copies, FALSE, FALSE, 0);
-
-       /* ----- Merge print control ----- */
-       op->priv->merge_frame  = glade_xml_get_widget (gui, "merge_frame");
-       op->priv->prmerge_vbox = glade_xml_get_widget (gui, "prmerge_vbox");
-       op->priv->prmerge = gl_wdgt_print_merge_new (label);
-       gtk_box_pack_start (GTK_BOX(op->priv->prmerge_vbox),
-                           op->priv->prmerge, FALSE, FALSE, 0);
-
-       /* ----- Options ----------------- */
-       op->priv->outline_check    = glade_xml_get_widget (gui, "outline_check");
-       op->priv->reverse_check    = glade_xml_get_widget (gui, "reverse_check");
-       op->priv->crop_marks_check = glade_xml_get_widget (gui, "crop_marks_check");
-
-        g_object_unref (gui);
-
-        /* ---- Activate either simple or merge print control widgets. ---- */
-        merge = gl_label_get_merge (op->priv->label);
-       if (merge == NULL) {
-
-                gl_wdgt_print_copies_set_range (GL_WDGT_PRINT_COPIES (op->priv->copies),
-                                                op->priv->n_sheets,
-                                                op->priv->first,
-                                                op->priv->last);
-
-               gtk_widget_show_all (op->priv->simple_frame);
-               gtk_widget_hide_all (op->priv->merge_frame);
-
-       } else {
-
-               gint n_records = gl_merge_get_record_count( merge );
-                gl_wdgt_print_merge_set_copies (GL_WDGT_PRINT_MERGE (op->priv->prmerge),
-                                                op->priv->n_copies,
-                                                op->priv->first,
-                                                n_records,
-                                                op->priv->collate_flag);
-               g_object_unref (G_OBJECT(merge));
-
-               gtk_widget_hide_all (op->priv->simple_frame);
-               gtk_widget_show_all (op->priv->merge_frame);
-       }
-
-        /* --- Set options --- */
-        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (op->priv->outline_check),
-                                      op->priv->outline_flag);
-        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (op->priv->reverse_check),
-                                      op->priv->reverse_flag);
-        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (op->priv->crop_marks_check),
-                                      op->priv->crop_marks_flag);
-
-        /* --- Do we need to force the outline flag --- */
-        if (op->priv->force_outline_flag)
+
+/*****************************************************************************/
+/* Get print operation settings.                                             */
+/*****************************************************************************/
+glPrintOpSettings *
+gl_print_op_get_settings (glPrintOp         *print_op)
+{
+        glPrintOpSettings *settings;
+
+        settings = g_new0 (glPrintOpSettings, 1);
+
+        if ( settings )
         {
-                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(op->priv->outline_check),
-                                              TRUE);
+                settings->gtk_settings =
+                        gtk_print_operation_get_print_settings (GTK_PRINT_OPERATION (print_op));
 
-                gtk_widget_set_sensitive (op->priv->outline_check, FALSE);
-                gtk_widget_set_sensitive (op->priv->reverse_check, FALSE);
-                gtk_widget_set_sensitive (op->priv->crop_marks_check, FALSE);
+                settings->outline_flag     = print_op->priv->outline_flag;
+                settings->reverse_flag     = print_op->priv->reverse_flag;
+                settings->crop_marks_flag  = print_op->priv->crop_marks_flag;
+                settings->collate_flag     = print_op->priv->collate_flag;
+
+                settings->first            = print_op->priv->first;
+                settings->last             = print_op->priv->last;
+                settings->n_sheets         = print_op->priv->n_sheets;
+                settings->n_copies         = print_op->priv->n_copies;
         }
 
-       return G_OBJECT (vbox);
+        return settings;
 }
 
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  "Custom widget apply" callback                                 */
-/*--------------------------------------------------------------------------*/
-static void
-custom_widget_apply_cb (GtkPrintOperation *operation,
-                        GtkWidget         *widget,
-                        gpointer           user_data)
+
+/*****************************************************************************/
+/* Set print operation settings.                                             */
+/*****************************************************************************/
+void
+gl_print_op_set_settings (glPrintOp         *print_op,
+                          glPrintOpSettings *settings)
 {
-        glPrintOp *op = GL_PRINT_OP (operation);
-        glMerge       *merge = NULL;
 
+        if ( settings )
+        {
+                gtk_print_operation_set_print_settings (GTK_PRINT_OPERATION (print_op),
+                                                        settings->gtk_settings);
 
-        op->priv->outline_flag =
-                gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
-                                              (op->priv->outline_check));
-        op->priv->reverse_flag =
-                gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
-                                              (op->priv->reverse_check));
-        op->priv->crop_marks_flag =
-                gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
-                                              (op->priv->crop_marks_check));
+                print_op->priv->outline_flag     = settings->outline_flag;
+                print_op->priv->reverse_flag     = settings->reverse_flag;
+                print_op->priv->crop_marks_flag  = settings->crop_marks_flag;
+                print_op->priv->collate_flag     = settings->collate_flag;
 
-        merge = gl_label_get_merge (op->priv->label);
+                print_op->priv->first            = settings->first;
+                print_op->priv->last             = settings->last;
+                print_op->priv->n_sheets         = settings->n_sheets;
+                print_op->priv->n_copies         = settings->n_copies;
+        }
 
-        if (merge == NULL)
-        {
+}
 
-                op->priv->merge_flag = FALSE;
-                gl_wdgt_print_copies_get_range (GL_WDGT_PRINT_COPIES (op->priv->copies),
-                                                &op->priv->n_sheets,
-                                                &op->priv->first,
-                                                &op->priv->last);
-        }
-        else
+
+/*****************************************************************************/
+/* Free print operation settings structure.                                  */
+/*****************************************************************************/
+void
+gl_print_op_free_settings(glPrintOpSettings *settings)
+{
+        
+        if ( settings )
         {
+                if ( settings->gtk_settings )
+                {
+                        g_object_unref (settings->gtk_settings);
+                }
 
-                op->priv->merge_flag = TRUE;
-                gl_wdgt_print_merge_get_copies (GL_WDGT_PRINT_MERGE (op->priv->prmerge),
-                                                &op->priv->n_copies,
-                                                &op->priv->first,
-                                                &op->priv->collate_flag,
-                                                &op->priv->n_sheets);
-                g_object_unref (G_OBJECT(merge));
+                g_free (settings);
         }
-
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  "Begin print" callback                                         */
 /*--------------------------------------------------------------------------*/
@@ -622,6 +526,7 @@ begin_print_cb (GtkPrintOperation *operation,
 
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  "Draw page" callback.                                          */
 /*--------------------------------------------------------------------------*/
@@ -678,13 +583,13 @@ draw_page_cb (GtkPrintOperation *operation,
 }
 
 
-/*****************************************************************************/
-/* Set outline flag/checkbox.                                                */
-/*****************************************************************************/
-void
-gl_print_op_force_outline_flag (glPrintOp *op)
-{
-        op->priv->force_outline_flag = TRUE;
-}
 
 
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 75c893c5c7fb9d402810ad641c117dfde4b720fa..c01af4ced7fcda1fb9f3452d44991ae1fe47548e 100644 (file)
@@ -1,40 +1,42 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  print-op.h:  Print operation module header file
+ *  print-op.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #ifndef __PRINT_OP_H__
 #define __PRINT_OP_H__
 
-#include <gtk/gtkprintoperation.h>
+#include <gtk/gtk.h>
 #include "label.h"
 
 G_BEGIN_DECLS
 
 #define GL_TYPE_PRINT_OP            (gl_print_op_get_type ())
-#define GL_PRINT_OP(obj)            (GTK_CHECK_CAST ((obj), GL_TYPE_PRINT_OP, glPrintOp))
-#define GL_PRINT_OP_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_PRINT_OP, glPrintOpClass))
-#define GL_IS_PRINT_OP(obj)         (GTK_CHECK_TYPE ((obj), GL_TYPE_PRINT_OP))
-#define GL_IS_PRINT_OP_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_PRINT_OP))
-#define GL_PRINT_OP_GET_CLASS(obj)  (GTK_CHECK_GET_CLASS ((obj), GL_TYPE_PRINT_OP, glPrintOpClass))
+#define GL_PRINT_OP(obj) \
+        (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_PRINT_OP, glPrintOp))
+#define GL_PRINT_OP_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_PRINT_OP, glPrintOpClass))
+#define GL_IS_PRINT_OP(obj) \
+        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_PRINT_OP))
+#define GL_IS_PRINT_OP_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_PRINT_OP))
+#define GL_PRINT_OP_GET_CLASS(obj) \
+        (G_TYPE_INSTANCE_GET_CLASS ((obj), GL_TYPE_PRINT_OP, glPrintOpClass))
 
 
 typedef struct _glPrintOp         glPrintOp;
@@ -60,29 +62,62 @@ typedef struct _glPrintOpSettings glPrintOpSettings;
 
 
 
-GType              gl_print_op_get_type           (void) G_GNUC_CONST;
-
-glPrintOp         *gl_print_op_new                (glLabel           *label);
-
-void               gl_print_op_force_outline_flag (glPrintOp         *print_op);
-
-glPrintOpSettings *gl_print_op_get_settings          (glPrintOp         *print_op);
-void               gl_print_op_set_settings          (glPrintOp         *print_op,
-                                                      glPrintOpSettings *settings);
-void               gl_print_op_free_settings         (glPrintOpSettings *settings);
+GType              gl_print_op_get_type            (void) G_GNUC_CONST;
+
+glPrintOp         *gl_print_op_new                 (glLabel           *label);
+
+void               gl_print_op_construct           (glPrintOp         *print_op,
+                                                    glLabel           *label);
+
+void               gl_print_op_set_filename        (glPrintOp         *print_op,
+                                                    gchar             *filename);
+void               gl_print_op_set_n_sheets        (glPrintOp         *print_op,
+                                                    gint               n_sheets);
+void               gl_print_op_set_n_copies        (glPrintOp         *print_op,
+                                                    gint               n_copies);
+void               gl_print_op_set_first           (glPrintOp         *print_op,
+                                                    gint               first);
+void               gl_print_op_set_last            (glPrintOp         *print_op,
+                                                    gint               last);
+void               gl_print_op_set_collate_flag    (glPrintOp         *print_op,
+                                                    gboolean           collate_flag);
+void               gl_print_op_set_outline_flag    (glPrintOp         *print_op,
+                                                    gboolean           outline_flag);
+void               gl_print_op_set_reverse_flag    (glPrintOp         *print_op,
+                                                    gboolean           reverse_flag);
+void               gl_print_op_set_crop_marks_flag (glPrintOp         *print_op,
+                                                    gboolean           crop_marks_flag);
+
+gchar             *gl_print_op_get_filename        (glPrintOp         *print_op);
+gint               gl_print_op_get_n_sheets        (glPrintOp         *print_op);
+gint               gl_print_op_get_n_copies        (glPrintOp         *print_op);
+gint               gl_print_op_get_first           (glPrintOp         *print_op);
+gint               gl_print_op_get_last            (glPrintOp         *print_op);
+gboolean           gl_print_op_get_collate_flag    (glPrintOp         *print_op);
+gboolean           gl_print_op_get_outline_flag    (glPrintOp         *print_op);
+gboolean           gl_print_op_get_reverse_flag    (glPrintOp         *print_op);
+gboolean           gl_print_op_get_crop_marks_flag (glPrintOp         *print_op);
+
+void               gl_print_op_force_outline       (glPrintOp         *print_op);
+gboolean           gl_print_op_is_outline_forced   (glPrintOp         *print_op);
+
+glPrintOpSettings *gl_print_op_get_settings        (glPrintOp         *print_op);
+void               gl_print_op_set_settings        (glPrintOp         *print_op,
+                                                    glPrintOpSettings *settings);
+void               gl_print_op_free_settings       (glPrintOpSettings *settings);
                                           
-/*
- * Batch print operation
- */
-glPrintOp         *gl_print_op_new_batch          (glLabel           *label,
-                                                   gchar             *filename,
-                                                   gint               n_sheets,
-                                                   gint               n_copies,
-                                                   gint               first,
-                                                   gboolean           outline_flag,
-                                                   gboolean           reverse_flag,
-                                                   gboolean           crop_marks_flag);
 
 G_END_DECLS
 
 #endif
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index a33e3ad1ab3b99b716b5170c0e15232bc9dd3d74..d2a3b66f3682d7bc05f18d68c6bb111203e48af3 100644 (file)
@@ -1,26 +1,23 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  print.c:  Print module
+ *  print.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "print.h"
 #include <time.h>
 #include <ctype.h>
 
+#include <libglabels.h>
 #include "label.h"
-#include <libglabels/template.h>
 #include "cairo-label-path.h"
 
 #include "debug.h"
 
+
 /*===========================================*/
 /* Private macros and constants.             */
 /*===========================================*/
@@ -47,6 +45,7 @@
 #define TICK_OFFSET  2.25
 #define TICK_LENGTH 18.0
 
+
 /*=========================================================================*/
 /* Private types.                                                          */
 /*=========================================================================*/
@@ -55,8 +54,8 @@ typedef struct _PrintInfo {
         cairo_t    *cr;
 
        /* gLabels Template */
-       lglTemplate *template;
-       gboolean     label_rotate_flag;
+       const lglTemplate *template;
+       gboolean           rotate_flag;
 
        /* page size */
        gdouble page_width;
@@ -91,7 +90,6 @@ static void       clip_to_outline             (PrintInfo        *pi,
                                               glLabel          *label);
 
 
-\f
 /*****************************************************************************/
 /* Print simple sheet (no merge data) command.                               */
 /*****************************************************************************/
@@ -137,6 +135,7 @@ gl_print_simple_sheet (glLabel          *label,
        gl_debug (DEBUG_PRINT, "END");
 }
 
+
 /*****************************************************************************/
 /* Print collated merge sheet command                                        */
 /*****************************************************************************/
@@ -228,6 +227,7 @@ gl_print_collated_merge_sheet   (glLabel          *label,
        gl_debug (DEBUG_PRINT, "END");
 }
 
+
 /*****************************************************************************/
 /* Print uncollated merge sheet command                                      */
 /*****************************************************************************/
@@ -321,6 +321,7 @@ gl_print_uncollated_merge_sheet (glLabel          *label,
        gl_debug (DEBUG_PRINT, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  new print info structure                                        */
 /*---------------------------------------------------------------------------*/
@@ -329,32 +330,38 @@ print_info_new (cairo_t          *cr,
                glLabel          *label)
 {
        PrintInfo            *pi = g_new0 (PrintInfo, 1);
+        const lglTemplate    *template;
+        gboolean              rotate_flag;
 
        gl_debug (DEBUG_PRINT, "START");
 
        g_return_val_if_fail (label && GL_IS_LABEL (label), NULL);
 
-       g_return_val_if_fail (label->template, NULL);
-       g_return_val_if_fail (label->template->paper_id, NULL);
-       g_return_val_if_fail (label->template->page_width > 0, NULL);
-       g_return_val_if_fail (label->template->page_height > 0, NULL);
+        template    = gl_label_get_template (label);
+        rotate_flag = gl_label_get_rotate_flag (label);
+
+       g_return_val_if_fail (template, NULL);
+       g_return_val_if_fail (template->paper_id, NULL);
+       g_return_val_if_fail (template->page_width > 0, NULL);
+       g_return_val_if_fail (template->page_height > 0, NULL);
 
        pi->cr = cr;
 
        gl_debug (DEBUG_PRINT,
-                 "setting page size = \"%s\"", label->template->paper_id);
+                 "setting page size = \"%s\"", template->paper_id);
 
-       pi->page_width  = label->template->page_width;
-       pi->page_height = label->template->page_height;
+       pi->page_width  = template->page_width;
+       pi->page_height = template->page_height;
 
-       pi->template = label->template;
-       pi->label_rotate_flag = label->rotate_flag;
+       pi->template = template;
+       pi->rotate_flag = rotate_flag;
 
        gl_debug (DEBUG_PRINT, "END");
 
        return pi;
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  free print info structure                                       */
 /*---------------------------------------------------------------------------*/
@@ -370,6 +377,7 @@ print_info_free (PrintInfo **pi)
        gl_debug (DEBUG_PRINT, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Print crop tick marks.                                          */
 /*---------------------------------------------------------------------------*/
@@ -478,6 +486,7 @@ print_crop_marks (PrintInfo *pi)
        gl_debug (DEBUG_PRINT, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Print i'th label.                                               */
 /*---------------------------------------------------------------------------*/
@@ -490,13 +499,10 @@ print_label (PrintInfo     *pi,
             gboolean       outline_flag,
             gboolean       reverse_flag)
 {
-       const lglTemplateFrame *frame;
        gdouble                 width, height;
 
        gl_debug (DEBUG_PRINT, "START");
 
-        frame = (lglTemplateFrame *)pi->template->frames->data;
-
        gl_label_get_size (label, &width, &height);
 
        cairo_save (pi->cr);
@@ -505,15 +511,17 @@ print_label (PrintInfo     *pi,
        /* of the current label */
        cairo_translate (pi->cr, x, y);
 
+       cairo_save (pi->cr);
+
        clip_to_outline (pi, label);
 
        cairo_save (pi->cr);
 
         /* Special transformations. */
-       if (label->rotate_flag) {
+       if (pi->rotate_flag) {
                gl_debug (DEBUG_PRINT, "Rotate flag set");
-               cairo_rotate (pi->cr, -M_PI/2.0);
-               cairo_translate (pi->cr, -width, 0.0);
+               cairo_rotate (pi->cr, G_PI/2.0);
+               cairo_translate (pi->cr, 0.0, -height);
        }
        if ( reverse_flag ) {
                cairo_translate (pi->cr, width, 0.0);
@@ -524,6 +532,8 @@ print_label (PrintInfo     *pi,
 
        cairo_restore (pi->cr); /* From special transformations. */
 
+       cairo_restore (pi->cr); /* From clip to outline. */
+
        if (outline_flag) {
                draw_outline (pi, label);
        }
@@ -533,6 +543,7 @@ print_label (PrintInfo     *pi,
        gl_debug (DEBUG_PRINT, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Draw outline.                                                   */
 /*---------------------------------------------------------------------------*/
@@ -547,7 +558,7 @@ draw_outline (PrintInfo *pi,
        cairo_set_source_rgb (pi->cr, OUTLINE_RGB_ARGS);
        cairo_set_line_width (pi->cr, OUTLINE_WIDTH);
 
-        gl_cairo_label_path (pi->cr, label->template, FALSE, FALSE);
+        gl_cairo_label_path (pi->cr, pi->template, FALSE, FALSE);
 
         cairo_stroke (pi->cr);
 
@@ -556,6 +567,7 @@ draw_outline (PrintInfo *pi,
        gl_debug (DEBUG_PRINT, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Clip to outline.                                                */
 /*---------------------------------------------------------------------------*/
@@ -565,7 +577,7 @@ clip_to_outline (PrintInfo *pi,
 {
        gl_debug (DEBUG_PRINT, "START");
 
-        gl_cairo_label_path (pi->cr, label->template, FALSE, TRUE);
+        gl_cairo_label_path (pi->cr, pi->template, FALSE, TRUE);
 
         cairo_set_fill_rule (pi->cr, CAIRO_FILL_RULE_EVEN_ODD);
         cairo_clip (pi->cr);
@@ -573,3 +585,15 @@ clip_to_outline (PrintInfo *pi,
        gl_debug (DEBUG_PRINT, "END");
 }
 
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index b4f46a1f0add83de3755b308f8b0345ce61700d3..5d79c7babd81a84d54851ecb7138ea89112e2778 100644 (file)
@@ -1,26 +1,23 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  print.h:  Print module header file
+ *  print.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #ifndef __PRINT_H__
 #define __PRINT_H__
 
@@ -68,3 +65,16 @@ void gl_print_uncollated_merge_sheet (glLabel          *label,
 G_END_DECLS
 
 #endif
+
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index f713fcb4e368959c5d79dda3bbac18a7c6be68ed..295c6661b529af1eae9e4de92fa50b62dcc991d8 100644 (file)
@@ -1,35 +1,32 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  recent.c:  gLabels recent files module
+ *  recent.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2006  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 
 #include "recent.h"
 
+#include <gtk/gtk.h>
 #include <string.h>
-#include <gtk/gtkrecentchoosermenu.h>
 
 #include "prefs.h"
+
 #include "debug.h"
 
 #define GLABELS_MIME_TYPE "application/x-glabels"
@@ -37,7 +34,6 @@
 static GtkRecentManager *model;
 
 
-
 /*****************************************************************************/
 /* Initialize recent files model.                                            */
 /*****************************************************************************/
@@ -77,6 +73,7 @@ gl_recent_get_utf8_filename (GtkRecentInfo *item)
         gl_debug (DEBUG_RECENT, "END");
 }
 
+
 /*****************************************************************************/
 /* Add file by UTF8 filename to recent model.                                */
 /*****************************************************************************/
@@ -142,7 +139,8 @@ gl_recent_create_menu (void)
                 gtk_recent_chooser_menu_new_for_manager (model);
         gtk_recent_chooser_menu_set_show_numbers (GTK_RECENT_CHOOSER_MENU (recent_menu), FALSE);
         gtk_recent_chooser_set_show_icons (GTK_RECENT_CHOOSER (recent_menu), TRUE);
-        gtk_recent_chooser_set_limit (GTK_RECENT_CHOOSER (recent_menu), gl_prefs->max_recents);
+        gtk_recent_chooser_set_limit (GTK_RECENT_CHOOSER (recent_menu),
+                                      gl_prefs_model_get_max_recents (gl_prefs));
         gtk_recent_chooser_set_sort_type (GTK_RECENT_CHOOSER (recent_menu), GTK_RECENT_SORT_MRU);
         gtk_recent_chooser_set_local_only (GTK_RECENT_CHOOSER (recent_menu), TRUE);
 
@@ -153,3 +151,15 @@ gl_recent_create_menu (void)
         gl_debug (DEBUG_RECENT, "END");
         return recent_menu;
 }
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 9a1b36c41a23053679608ec703b7ac20c20c540f..f3a19d2a9e5e5efaedca99c3a220e7ae656702bf 100644 (file)
@@ -1,32 +1,27 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  recent.h:  gLabels recent files module header file
+ *  recent.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2006  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __RECENT_H__
 #define __RECENT_H__
 
-#include <gtk/gtkrecentmanager.h>
-#include <gtk/gtkwidget.h>
+#include <gtk/gtk.h>
 
 G_BEGIN_DECLS
 
@@ -43,3 +38,14 @@ G_END_DECLS
 
 #endif /*__RECENT_H__*/
 
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/stock-pixmaps/Makefile.am b/src/stock-pixmaps/Makefile.am
deleted file mode 100644 (file)
index 5e34a95..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-
-IMAGES =                               \
-       stock_arrow_24.png              \
-       stock_arrow_16.png              \
-       stock_barcode_24.png            \
-       stock_barcode_16.png            \
-       stock_box_24.png                \
-       stock_box_16.png                \
-       stock_ellipse_24.png            \
-       stock_ellipse_16.png            \
-       stock_image_24.png              \
-       stock_image_16.png              \
-       stock_line_24.png               \
-       stock_line_16.png               \
-       stock_merge_24.png              \
-       stock_merge_16.png              \
-       stock_properties_24.png         \
-       stock_properties_16.png         \
-       stock_text_24.png               \
-       stock_text_16.png               \
-       stock_order_top_16.png          \
-       stock_order_bottom_16.png       \
-       stock_rotate_left_16.png        \
-       stock_rotate_right_16.png       \
-       stock_flip_horiz_16.png         \
-       stock_flip_vert_16.png          \
-       stock_align_left_16.png         \
-       stock_align_right_16.png        \
-       stock_align_hcenter_16.png      \
-       stock_align_top_16.png          \
-       stock_align_bottom_16.png       \
-       stock_align_vcenter_16.png      \
-       stock_center_horiz_16.png       \
-       stock_center_vert_16.png        \
-       stock_bucket_fill_16.png        \
-       stock_bucket_fill_24.png        \
-       stock_pencil_16.png             \
-       stock_pencil_24.png             \
-       stock_hchain_24.png             \
-       stock_hchain_broken_24.png      \
-       stock_vchain_24.png             \
-       stock_vchain_broken_24.png
-
-VARIABLES1 = \
-               stock_arrow_24          $(srcdir)/stock_arrow_24.png    \
-               stock_arrow_16          $(srcdir)/stock_arrow_16.png    \
-               stock_barcode_24        $(srcdir)/stock_barcode_24.png  \
-               stock_barcode_16        $(srcdir)/stock_barcode_16.png  \
-               stock_box_24            $(srcdir)/stock_box_24.png      \
-               stock_box_16            $(srcdir)/stock_box_16.png      \
-               stock_ellipse_24        $(srcdir)/stock_ellipse_24.png  \
-               stock_ellipse_16        $(srcdir)/stock_ellipse_16.png  \
-               stock_image_24          $(srcdir)/stock_image_24.png    \
-               stock_image_16          $(srcdir)/stock_image_16.png    \
-               stock_line_24           $(srcdir)/stock_line_24.png     \
-               stock_line_16           $(srcdir)/stock_line_16.png     \
-               stock_merge_24          $(srcdir)/stock_merge_24.png    \
-               stock_merge_16          $(srcdir)/stock_merge_16.png    \
-               stock_properties_24     $(srcdir)/stock_properties_24.png \
-               stock_properties_16     $(srcdir)/stock_properties_16.png \
-               stock_text_24           $(srcdir)/stock_text_24.png     \
-               stock_text_16           $(srcdir)/stock_text_16.png     \
-               stock_order_top_16      $(srcdir)/stock_order_top_16.png \
-               stock_order_bottom_16   $(srcdir)/stock_order_bottom_16.png \
-               stock_rotate_left_16    $(srcdir)/stock_rotate_left_16.png \
-               stock_rotate_right_16   $(srcdir)/stock_rotate_right_16.png \
-               stock_flip_horiz_16     $(srcdir)/stock_flip_horiz_16.png \
-               stock_flip_vert_16      $(srcdir)/stock_flip_vert_16.png \
-               stock_align_left_16     $(srcdir)/stock_align_left_16.png \
-               stock_align_right_16    $(srcdir)/stock_align_right_16.png \
-               stock_align_hcenter_16  $(srcdir)/stock_align_hcenter_16.png \
-               stock_align_top_16      $(srcdir)/stock_align_top_16.png \
-               stock_align_bottom_16   $(srcdir)/stock_align_bottom_16.png \
-               stock_align_vcenter_16  $(srcdir)/stock_align_vcenter_16.png \
-               stock_center_horiz_16   $(srcdir)/stock_center_horiz_16.png \
-               stock_center_vert_16    $(srcdir)/stock_center_vert_16.png \
-               stock_bucket_fill_16    $(srcdir)/stock_bucket_fill_16.png \
-               stock_bucket_fill_24    $(srcdir)/stock_bucket_fill_24.png \
-               stock_pencil_16         $(srcdir)/stock_pencil_16.png \
-               stock_pencil_24         $(srcdir)/stock_pencil_24.png \
-               stock_hchain_24         $(srcdir)/stock_hchain_24.png \
-               stock_hchain_broken_24  $(srcdir)/stock_hchain_broken_24.png \
-               stock_vchain_24         $(srcdir)/stock_vchain_24.png \
-               stock_vchain_broken_24  $(srcdir)/stock_vchain_broken_24.png
-
-
-noinst_DATA = stockpixbufs.h
-CLEANFILES = $(noinst_DATA)
-
-stockpixbufs.h: $(IMAGES)
-       gdk-pixbuf-csource                                                \
-          --raw --build-list $(VARIABLES1) > $(srcdir)/stockpixbufs.h || \
-           ( rm -f $(srcdir)/stockpixbufs.h && false )
-
-EXTRA_DIST = $(IMAGES) stockpixbufs.h
diff --git a/src/stock-pixmaps/Makefile.in b/src/stock-pixmaps/Makefile.in
deleted file mode 100644 (file)
index 50fcf41..0000000
+++ /dev/null
@@ -1,496 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = src/stock-pixmaps
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-       $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-SOURCES =
-DIST_SOURCES =
-DATA = $(noinst_DATA)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ALL_LINGUAS = @ALL_LINGUAS@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CATALOGS = @CATALOGS@
-CATOBJEXT = @CATOBJEXT@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIRNAME = @DATADIRNAME@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
-DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
-DOC_USER_FORMATS = @DOC_USER_FORMATS@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
-GLABELS_CFLAGS = @GLABELS_CFLAGS@
-GLABELS_LIBS = @GLABELS_LIBS@
-GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
-GLIB_REQUIRED = @GLIB_REQUIRED@
-GMOFILES = @GMOFILES@
-GMSGFMT = @GMSGFMT@
-GREP = @GREP@
-GTKDOC_CHECK = @GTKDOC_CHECK@
-GTK_REQUIRED = @GTK_REQUIRED@
-HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@
-HELP_DIR = @HELP_DIR@
-HTML_DIR = @HTML_DIR@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INSTOBJEXT = @INSTOBJEXT@
-INTLLIBS = @INTLLIBS@
-INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
-INTLTOOL_MERGE = @INTLTOOL_MERGE@
-INTLTOOL_PERL = @INTLTOOL_PERL@
-INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
-LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
-LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
-LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
-LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
-LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@
-LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@
-LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@
-LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIBXML_REQUIRED = @LIBXML_REQUIRED@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-MSGFMT = @MSGFMT@
-MSGFMT_OPTS = @MSGFMT_OPTS@
-MSGMERGE = @MSGMERGE@
-MYGAL_CFLAGS = @MYGAL_CFLAGS@
-MYGAL_LIBS = @MYGAL_LIBS@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OMF_DIR = @OMF_DIR@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-POFILES = @POFILES@
-POSUB = @POSUB@
-PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
-PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@
-UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@
-USE_NLS = @USE_NLS@
-VERSION = @VERSION@
-WARN_CFLAGS = @WARN_CFLAGS@
-XGETTEXT = @XGETTEXT@
-XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@
-XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-IMAGES = \
-       stock_arrow_24.png              \
-       stock_arrow_16.png              \
-       stock_barcode_24.png            \
-       stock_barcode_16.png            \
-       stock_box_24.png                \
-       stock_box_16.png                \
-       stock_ellipse_24.png            \
-       stock_ellipse_16.png            \
-       stock_image_24.png              \
-       stock_image_16.png              \
-       stock_line_24.png               \
-       stock_line_16.png               \
-       stock_merge_24.png              \
-       stock_merge_16.png              \
-       stock_properties_24.png         \
-       stock_properties_16.png         \
-       stock_text_24.png               \
-       stock_text_16.png               \
-       stock_order_top_16.png          \
-       stock_order_bottom_16.png       \
-       stock_rotate_left_16.png        \
-       stock_rotate_right_16.png       \
-       stock_flip_horiz_16.png         \
-       stock_flip_vert_16.png          \
-       stock_align_left_16.png         \
-       stock_align_right_16.png        \
-       stock_align_hcenter_16.png      \
-       stock_align_top_16.png          \
-       stock_align_bottom_16.png       \
-       stock_align_vcenter_16.png      \
-       stock_center_horiz_16.png       \
-       stock_center_vert_16.png        \
-       stock_bucket_fill_16.png        \
-       stock_bucket_fill_24.png        \
-       stock_pencil_16.png             \
-       stock_pencil_24.png             \
-       stock_hchain_24.png             \
-       stock_hchain_broken_24.png      \
-       stock_vchain_24.png             \
-       stock_vchain_broken_24.png
-
-VARIABLES1 = \
-               stock_arrow_24          $(srcdir)/stock_arrow_24.png    \
-               stock_arrow_16          $(srcdir)/stock_arrow_16.png    \
-               stock_barcode_24        $(srcdir)/stock_barcode_24.png  \
-               stock_barcode_16        $(srcdir)/stock_barcode_16.png  \
-               stock_box_24            $(srcdir)/stock_box_24.png      \
-               stock_box_16            $(srcdir)/stock_box_16.png      \
-               stock_ellipse_24        $(srcdir)/stock_ellipse_24.png  \
-               stock_ellipse_16        $(srcdir)/stock_ellipse_16.png  \
-               stock_image_24          $(srcdir)/stock_image_24.png    \
-               stock_image_16          $(srcdir)/stock_image_16.png    \
-               stock_line_24           $(srcdir)/stock_line_24.png     \
-               stock_line_16           $(srcdir)/stock_line_16.png     \
-               stock_merge_24          $(srcdir)/stock_merge_24.png    \
-               stock_merge_16          $(srcdir)/stock_merge_16.png    \
-               stock_properties_24     $(srcdir)/stock_properties_24.png \
-               stock_properties_16     $(srcdir)/stock_properties_16.png \
-               stock_text_24           $(srcdir)/stock_text_24.png     \
-               stock_text_16           $(srcdir)/stock_text_16.png     \
-               stock_order_top_16      $(srcdir)/stock_order_top_16.png \
-               stock_order_bottom_16   $(srcdir)/stock_order_bottom_16.png \
-               stock_rotate_left_16    $(srcdir)/stock_rotate_left_16.png \
-               stock_rotate_right_16   $(srcdir)/stock_rotate_right_16.png \
-               stock_flip_horiz_16     $(srcdir)/stock_flip_horiz_16.png \
-               stock_flip_vert_16      $(srcdir)/stock_flip_vert_16.png \
-               stock_align_left_16     $(srcdir)/stock_align_left_16.png \
-               stock_align_right_16    $(srcdir)/stock_align_right_16.png \
-               stock_align_hcenter_16  $(srcdir)/stock_align_hcenter_16.png \
-               stock_align_top_16      $(srcdir)/stock_align_top_16.png \
-               stock_align_bottom_16   $(srcdir)/stock_align_bottom_16.png \
-               stock_align_vcenter_16  $(srcdir)/stock_align_vcenter_16.png \
-               stock_center_horiz_16   $(srcdir)/stock_center_horiz_16.png \
-               stock_center_vert_16    $(srcdir)/stock_center_vert_16.png \
-               stock_bucket_fill_16    $(srcdir)/stock_bucket_fill_16.png \
-               stock_bucket_fill_24    $(srcdir)/stock_bucket_fill_24.png \
-               stock_pencil_16         $(srcdir)/stock_pencil_16.png \
-               stock_pencil_24         $(srcdir)/stock_pencil_24.png \
-               stock_hchain_24         $(srcdir)/stock_hchain_24.png \
-               stock_hchain_broken_24  $(srcdir)/stock_hchain_broken_24.png \
-               stock_vchain_24         $(srcdir)/stock_vchain_24.png \
-               stock_vchain_broken_24  $(srcdir)/stock_vchain_broken_24.png
-
-noinst_DATA = stockpixbufs.h
-CLEANFILES = $(noinst_DATA)
-EXTRA_DIST = $(IMAGES) stockpixbufs.h
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-       @for dep in $?; do \
-         case '$(am__configure_deps)' in \
-           *$$dep*) \
-             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-               && { if test -f $@; then exit 0; else break; fi; }; \
-             exit 1;; \
-         esac; \
-       done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/stock-pixmaps/Makefile'; \
-       $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu src/stock-pixmaps/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-       @case '$?' in \
-         *config.status*) \
-           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-         *) \
-           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-       esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-mostlyclean-libtool:
-       -rm -f *.lo
-
-clean-libtool:
-       -rm -rf .libs _libs
-tags: TAGS
-TAGS:
-
-ctags: CTAGS
-CTAGS:
-
-
-distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-       list='$(DISTFILES)'; \
-         dist_files=`for file in $$list; do echo $$file; done | \
-         sed -e "s|^$$srcdirstrip/||;t" \
-             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-       case $$dist_files in \
-         */*) $(MKDIR_P) `echo "$$dist_files" | \
-                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-                          sort -u` ;; \
-       esac; \
-       for file in $$dist_files; do \
-         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         if test -d $$d/$$file; then \
-           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-           if test -d "$(distdir)/$$file"; then \
-             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-           fi; \
-           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-           fi; \
-           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-         else \
-           test -f "$(distdir)/$$file" \
-           || cp -p $$d/$$file "$(distdir)/$$file" \
-           || exit 1; \
-         fi; \
-       done
-check-am: all-am
-check: check-am
-all-am: Makefile $(DATA)
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
-       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-       @echo "This command is intended for maintainers to use"
-       @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
-       -rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-       -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am check check-am clean clean-generic clean-libtool \
-       distclean distclean-generic distclean-libtool distdir dvi \
-       dvi-am html html-am info info-am install install-am \
-       install-data install-data-am install-dvi install-dvi-am \
-       install-exec install-exec-am install-html install-html-am \
-       install-info install-info-am install-man install-pdf \
-       install-pdf-am install-ps install-ps-am install-strip \
-       installcheck installcheck-am installdirs maintainer-clean \
-       maintainer-clean-generic mostlyclean mostlyclean-generic \
-       mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
-
-
-stockpixbufs.h: $(IMAGES)
-       gdk-pixbuf-csource                                                \
-          --raw --build-list $(VARIABLES1) > $(srcdir)/stockpixbufs.h || \
-           ( rm -f $(srcdir)/stockpixbufs.h && false )
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/stock-pixmaps/stock_align_bottom_16.png b/src/stock-pixmaps/stock_align_bottom_16.png
deleted file mode 100644 (file)
index da901bc..0000000
Binary files a/src/stock-pixmaps/stock_align_bottom_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_align_hcenter_16.png b/src/stock-pixmaps/stock_align_hcenter_16.png
deleted file mode 100644 (file)
index 684c125..0000000
Binary files a/src/stock-pixmaps/stock_align_hcenter_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_align_left_16.png b/src/stock-pixmaps/stock_align_left_16.png
deleted file mode 100644 (file)
index 1cdcf9b..0000000
Binary files a/src/stock-pixmaps/stock_align_left_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_align_right_16.png b/src/stock-pixmaps/stock_align_right_16.png
deleted file mode 100644 (file)
index 2b4872b..0000000
Binary files a/src/stock-pixmaps/stock_align_right_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_align_top_16.png b/src/stock-pixmaps/stock_align_top_16.png
deleted file mode 100644 (file)
index 5bda931..0000000
Binary files a/src/stock-pixmaps/stock_align_top_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_align_vcenter_16.png b/src/stock-pixmaps/stock_align_vcenter_16.png
deleted file mode 100644 (file)
index a51293f..0000000
Binary files a/src/stock-pixmaps/stock_align_vcenter_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_arrow_16.png b/src/stock-pixmaps/stock_arrow_16.png
deleted file mode 100644 (file)
index 0ae5f36..0000000
Binary files a/src/stock-pixmaps/stock_arrow_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_arrow_24.png b/src/stock-pixmaps/stock_arrow_24.png
deleted file mode 100644 (file)
index 6e0e26a..0000000
Binary files a/src/stock-pixmaps/stock_arrow_24.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_barcode_16.png b/src/stock-pixmaps/stock_barcode_16.png
deleted file mode 100644 (file)
index 6e0e289..0000000
Binary files a/src/stock-pixmaps/stock_barcode_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_barcode_24.png b/src/stock-pixmaps/stock_barcode_24.png
deleted file mode 100644 (file)
index 9699c8d..0000000
Binary files a/src/stock-pixmaps/stock_barcode_24.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_box_16.png b/src/stock-pixmaps/stock_box_16.png
deleted file mode 100644 (file)
index c141c9d..0000000
Binary files a/src/stock-pixmaps/stock_box_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_box_24.png b/src/stock-pixmaps/stock_box_24.png
deleted file mode 100644 (file)
index 9f8e06f..0000000
Binary files a/src/stock-pixmaps/stock_box_24.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_bucket_fill_16.png b/src/stock-pixmaps/stock_bucket_fill_16.png
deleted file mode 100644 (file)
index 2be70de..0000000
Binary files a/src/stock-pixmaps/stock_bucket_fill_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_bucket_fill_24.png b/src/stock-pixmaps/stock_bucket_fill_24.png
deleted file mode 100644 (file)
index 1ee5993..0000000
Binary files a/src/stock-pixmaps/stock_bucket_fill_24.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_center_horiz_16.png b/src/stock-pixmaps/stock_center_horiz_16.png
deleted file mode 100644 (file)
index fce3e90..0000000
Binary files a/src/stock-pixmaps/stock_center_horiz_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_center_vert_16.png b/src/stock-pixmaps/stock_center_vert_16.png
deleted file mode 100644 (file)
index 08b19af..0000000
Binary files a/src/stock-pixmaps/stock_center_vert_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_ellipse_16.png b/src/stock-pixmaps/stock_ellipse_16.png
deleted file mode 100644 (file)
index 9652562..0000000
Binary files a/src/stock-pixmaps/stock_ellipse_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_ellipse_24.png b/src/stock-pixmaps/stock_ellipse_24.png
deleted file mode 100644 (file)
index 12f0468..0000000
Binary files a/src/stock-pixmaps/stock_ellipse_24.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_flip_horiz_16.png b/src/stock-pixmaps/stock_flip_horiz_16.png
deleted file mode 100644 (file)
index e477068..0000000
Binary files a/src/stock-pixmaps/stock_flip_horiz_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_flip_vert_16.png b/src/stock-pixmaps/stock_flip_vert_16.png
deleted file mode 100644 (file)
index 93027c9..0000000
Binary files a/src/stock-pixmaps/stock_flip_vert_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_hchain_24.png b/src/stock-pixmaps/stock_hchain_24.png
deleted file mode 100644 (file)
index 5bc2eed..0000000
Binary files a/src/stock-pixmaps/stock_hchain_24.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_hchain_broken_24.png b/src/stock-pixmaps/stock_hchain_broken_24.png
deleted file mode 100644 (file)
index 2e961a3..0000000
Binary files a/src/stock-pixmaps/stock_hchain_broken_24.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_image_16.png b/src/stock-pixmaps/stock_image_16.png
deleted file mode 100644 (file)
index ee9ed3d..0000000
Binary files a/src/stock-pixmaps/stock_image_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_image_24.png b/src/stock-pixmaps/stock_image_24.png
deleted file mode 100644 (file)
index 093c8ad..0000000
Binary files a/src/stock-pixmaps/stock_image_24.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_line_16.png b/src/stock-pixmaps/stock_line_16.png
deleted file mode 100644 (file)
index cf0e040..0000000
Binary files a/src/stock-pixmaps/stock_line_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_line_24.png b/src/stock-pixmaps/stock_line_24.png
deleted file mode 100644 (file)
index 7bb6523..0000000
Binary files a/src/stock-pixmaps/stock_line_24.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_merge_16.png b/src/stock-pixmaps/stock_merge_16.png
deleted file mode 100644 (file)
index 2a3bfe8..0000000
Binary files a/src/stock-pixmaps/stock_merge_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_merge_24.png b/src/stock-pixmaps/stock_merge_24.png
deleted file mode 100644 (file)
index af61200..0000000
Binary files a/src/stock-pixmaps/stock_merge_24.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_order_bottom_16.png b/src/stock-pixmaps/stock_order_bottom_16.png
deleted file mode 100644 (file)
index f6ed2d0..0000000
Binary files a/src/stock-pixmaps/stock_order_bottom_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_order_top_16.png b/src/stock-pixmaps/stock_order_top_16.png
deleted file mode 100644 (file)
index 0884bc1..0000000
Binary files a/src/stock-pixmaps/stock_order_top_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_pencil_16.png b/src/stock-pixmaps/stock_pencil_16.png
deleted file mode 100644 (file)
index 83a1493..0000000
Binary files a/src/stock-pixmaps/stock_pencil_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_pencil_24.png b/src/stock-pixmaps/stock_pencil_24.png
deleted file mode 100644 (file)
index a36ce93..0000000
Binary files a/src/stock-pixmaps/stock_pencil_24.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_properties_16.png b/src/stock-pixmaps/stock_properties_16.png
deleted file mode 100644 (file)
index ab42b19..0000000
Binary files a/src/stock-pixmaps/stock_properties_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_properties_24.png b/src/stock-pixmaps/stock_properties_24.png
deleted file mode 100644 (file)
index f592606..0000000
Binary files a/src/stock-pixmaps/stock_properties_24.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_rotate_left_16.png b/src/stock-pixmaps/stock_rotate_left_16.png
deleted file mode 100644 (file)
index 157884e..0000000
Binary files a/src/stock-pixmaps/stock_rotate_left_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_rotate_right_16.png b/src/stock-pixmaps/stock_rotate_right_16.png
deleted file mode 100644 (file)
index cc5dc49..0000000
Binary files a/src/stock-pixmaps/stock_rotate_right_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_text_16.png b/src/stock-pixmaps/stock_text_16.png
deleted file mode 100644 (file)
index c539bf1..0000000
Binary files a/src/stock-pixmaps/stock_text_16.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_text_24.png b/src/stock-pixmaps/stock_text_24.png
deleted file mode 100644 (file)
index b9e5511..0000000
Binary files a/src/stock-pixmaps/stock_text_24.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_vchain_24.png b/src/stock-pixmaps/stock_vchain_24.png
deleted file mode 100644 (file)
index 7dc2031..0000000
Binary files a/src/stock-pixmaps/stock_vchain_24.png and /dev/null differ
diff --git a/src/stock-pixmaps/stock_vchain_broken_24.png b/src/stock-pixmaps/stock_vchain_broken_24.png
deleted file mode 100644 (file)
index 8ef1363..0000000
Binary files a/src/stock-pixmaps/stock_vchain_broken_24.png and /dev/null differ
diff --git a/src/stock-pixmaps/stockpixbufs.h b/src/stock-pixmaps/stockpixbufs.h
deleted file mode 100644 (file)
index 25772bb..0000000
+++ /dev/null
@@ -1,2942 +0,0 @@
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_arrow_24)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_arrow_24[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_arrow_24[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (2304) */
-  "\0\0\11\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (96) */
-  "\0\0\0`"
-  /* width (24) */
-  "\0\0\0\30"
-  /* height (24) */
-  "\0\0\0\30"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1"
-  "\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\1\0\0\0\316\0\0\0\7\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\1\0\0\0\377\0\0\0\321\0\0\0\26\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\377\0\0\0\377\0\0\0\314\0\0\0\25\0\0\0\6\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0\336\0\0\0\30\0\0\0\7\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\336\0\0\0\27\0\0\0\7\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\336\0\0\0\27\0\0\0\7\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\336\0\0\0\27\0"
-  "\0\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\353"
-  "\0\0\0\27\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377"
-  "\0\0\0\377\0\0\0\376\0\0\0\366\0\0\0\261\0\0\0\77\0\0\0""6\0\0\0(\0\0"
-  "\0\27\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0"
-  "\0\0\341\0\0\0\225\0\0\0\366\0\0\0\370\0\0\0`\0\0\0(\0\0\0\32\0\0\0\20"
-  "\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\346\0\0\0"
-  "(\0\0\0""4\0\0\0\362\0\0\0\377\0\0\0\225\0\0\0\33\0\0\0\6\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0\27\0"
-  "\0\0\33\0\0\0\204\0\0\0\377\0\0\0\377\0\0\0'\0\0\0\16\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0\7\0\0\0\7"
-  "\0\0\0#\0\0\0\360\0\0\0\350\0\0\0\251\0\0\0\31\0\0\0\5\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\4\0\0\0\223\0\0\0\344\0\0\0\335\0\0\0D\0\0\0\15\0\0\0\1\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0"
-  "\0""5\0\0\0\312\0\0\0t\0\0\0I\0\0\0\21\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6\0\0\0"
-  "\23\0\0\0\35\0\0\0\32\0\0\0\14\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\10\0\0\0"
-  "\12\0\0\0\12\0\0\0\4\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_arrow_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_arrow_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_arrow_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\177\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\202\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\377\0\0\0\365\0\0\0q\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\367\0\0\0}\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\367\0\0\0m\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\366\0\0\0\212\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\377\0\0\0\377\0\0\0\374\0\0\0\314\0\0\0*\0\0\0\20\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\377\0\0\0\241\0\0\0\377\0\0\0\377\0\0\0\31\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\377\0\0\0\5\0\0\0\31\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\0\214\0\0\0\377\0\0\0A\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0""0\0\0\0\261\0\0\0\227\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0#\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_barcode_24)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_barcode_24[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_barcode_24[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (2304) */
-  "\0\0\11\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (96) */
-  "\0\0\0`"
-  /* width (24) */
-  "\0\0\0\30"
-  /* height (24) */
-  "\0\0\0\30"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377"
-  "\377\377\32\377\377\377\32\377\377\377\32\377\377\377\32\377\377\377"
-  "\32\377\377\377\32\377\377\377\32\377\377\377\32\377\377\377\32\377\377"
-  "\377\32\377\377\377\32\377\377\377\32\377\377\377\32\377\377\377\32\377"
-  "\377\377\32\377\377\377\32\377\377\377\32\377\377\377\32\377\377\377"
-  "\32\377\377\377\32\377\377\377\32\377\377\377\32\377\377\377\32\0\0\0"
-  "\0\377\377\377\32\377\377\377\32\377\377\377\32\377\377\377\32\377\377"
-  "\377\32\377\377\377\32\377\377\377\32\377\377\377\32\377\377\377\32\377"
-  "\377\377\32\377\377\377\32\377\377\377\32\377\377\377\32\377\377\377"
-  "\32\377\377\377\32\377\377\377\32\377\377\377\32\377\377\377\32\377\377"
-  "\377\32\377\377\377\32\377\377\377\32\377\377\377\32\377\377\377\32\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\377\0\0\0\11\0\0\0\377\0\0\0\377\0\0\0\21\0\0\0\377"
-  "\0\0\0\377\0\0\0\21\0\0\0\377\0\0\0\11\0\0\0\377\0\0\0\11\0\0\0\377\0"
-  "\0\0\11\0\0\0\377\0\0\0\377\0\0\0\21\0\0\0\377\0\0\0\11\0\0\0\11\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\21\0\0\0\377\0\0\0\377\0"
-  "\0\0#\0\0\0\377\0\0\0\377\0\0\0#\0\0\0\377\0\0\0\21\0\0\0\377\0\0\0\21"
-  "\0\0\0\377\0\0\0\21\0\0\0\377\0\0\0\377\0\0\0#\0\0\0\377\0\0\0\21\0\0"
-  "\0\21\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\32\0\0\0\377\0"
-  "\0\0\377\0\0\0""4\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\377\0\0\0\32\0\0"
-  "\0\377\0\0\0\32\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0"
-  "\377\0\0\0\32\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0"
-  "\0\32\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0"
-  "\377\0\0\0\32\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\377"
-  "\0\0\0""4\0\0\0\377\0\0\0\32\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\377\0\0\0\377"
-  "\0\0\0""4\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\32\0"
-  "\0\0\377\0\0\0\377\0\0\0""4\0\0\0\377\0\0\0\32\0\0\0\32\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\377\0\0\0""4\0"
-  "\0\0\377\0\0\0\377\0\0\0""4\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\32\0\0"
-  "\0\377\0\0\0\32\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\377\0\0\0\32\0\0\0"
-  "\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\32\0\0\0\377\0\0"
-  "\0\377\0\0\0""4\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\377\0\0\0\32\0\0\0"
-  "\377\0\0\0\32\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\377"
-  "\0\0\0\32\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\32"
-  "\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\377"
-  "\0\0\0\32\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\377\0"
-  "\0\0""4\0\0\0\377\0\0\0\32\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\377\0\0\0\32\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\377\0\0\0\377\0"
-  "\0\0""4\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\32\0\0"
-  "\0\377\0\0\0\377\0\0\0""4\0\0\0\377\0\0\0\32\0\0\0\32\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\377\0\0\0""4\0\0"
-  "\0\377\0\0\0\377\0\0\0""4\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\32\0\0\0"
-  "\377\0\0\0\32\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\377\0\0\0\32\0\0\0\32"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\377"
-  "\0\0\0""4\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\377\0\0\0\32\0\0\0\377\0"
-  "\0\0\32\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\377\0\0"
-  "\0\32\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\32\0\0"
-  "\0\377\0\0\0\377\0\0\0""4\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\377\0\0"
-  "\0\32\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\377\0\0\0"
-  "4\0\0\0\377\0\0\0\32\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377"
-  "\0\0\0\32\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\377\0\0\0\377\0\0\0""4\0"
-  "\0\0\377\0\0\0\32\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\32\0\0\0\377\0\0"
-  "\0\377\0\0\0""4\0\0\0\377\0\0\0\32\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\377\0\0"
-  "\0\377\0\0\0""4\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0"
-  "\32\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\377\0\0\0\32\0\0\0\32\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\377\0\0\0"
-  "4\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\32"
-  "\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\377\0\0\0\32\0"
-  "\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\32\0\0\0\377"
-  "\0\0\0\377\0\0\0""4\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\377\0\0\0\32\0"
-  "\0\0\377\0\0\0\32\0\0\0\377\0\0\0\32\0\0\0\377\0\0\0\377\0\0\0""4\0\0"
-  "\0\377\0\0\0\32\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\21\0\0"
-  "\0\21\0\0\0#\0\0\0#\0\0\0#\0\0\0#\0\0\0#\0\0\0#\0\0\0#\0\0\0\21\0\0\0"
-  "#\0\0\0\21\0\0\0#\0\0\0\21\0\0\0#\0\0\0#\0\0\0#\0\0\0#\0\0\0\21\0\0\0"
-  "\21\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0\11\0\0\0\21\0\0\0"
-  "\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\11\0\0\0\21\0"
-  "\0\0\11\0\0\0\21\0\0\0\11\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\11"
-  "\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_barcode_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_barcode_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_barcode_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0X\250\377\0X\250\377\0X\250\377\0X\250\377\0X\250\377\0X\250"
-  "\377\0X\250\377\0X\250\377\0X\250\377\0X\250\377\0X\250\377\0X\250\377"
-  "\0X\250\377\0X\250\377\0X\250\377\0\0\0\0\0\0\0\0\0X\250\377\0\0\0\0"
-  "\0\0\0\0\0X\250\377\0\0\0\0\0\0\0\0\0X\250\377\0\0\0\0\0X\250\377\0\0"
-  "\0\0\0X\250\377\0\0\0\0\0\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\377X\250"
-  "\377\0\0\0\0\377\0\0\0\377X\250\377\0\0\0\0\377\0\0\0\0X\250\377\0\0"
-  "\0\0\377X\250\377\0\0\0\0\377\377\377\0\0\0\0\0\377\0\0\0\377\0\0\0\0"
-  "\0\0\0\0\0\0\0\377X\250\377\0\0\0\0\377\0\0\0\377X\250\377\0\0\0\0\377"
-  "\0\0\0\0\0\0\0\0\0\0\0\377X\250\377\0\0\0\0\377X\250\377\0\0\0\0\377"
-  "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377X\250\377\0\0\0\0\377\0\0\0\377\0"
-  "\0\0\0\0\0\0\377\0\0\0\0\377\377\300\0\0\0\0\377X\250\377\0\0\0\0\377"
-  "X\250\377\0\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\250\334\377"
-  "\0\0\0\0\377\0\0\0\377\377\377\300\0\0\0\0\377\0\0\0\0\377\377\300\0"
-  "\0\0\0\377\0\0\0\0\0\0\0\377\250\334\377\0\0\0\0\377\0\0\0\377\0\0\0"
-  "\0\0\0\0\0\0\0\0\377X\250\377\0\0\0\0\377\0\0\0\377\377\377\300\0\0\0"
-  "\0\377\0\0\0\0\377\377\300\0\0\0\0\377\0\0\0\0\0\0\0\377X\250\377\0\0"
-  "\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\250\334\377\0\0\0\0\377"
-  "\0\0\0\377\377\377\300\0\0\0\0\377\0\0\0\0\377\377\300\0\0\0\0\377\0"
-  "\0\0\0\0\0\0\377\250\334\377\0\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0"
-  "\0\0\377\300\377\377\0\0\0\0\377\0\0\0\377\377\377\300\0\0\0\0\377\0"
-  "\0\0\0\377\377\300\0\0\0\0\377\0\0\0\0\0\0\0\377\300\377\377\0\0\0\0"
-  "\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\377"
-  "\377\377\300\0\0\0\0\377\0\0\0\0\240\240\240\0\0\0\0\377\0\0\0\0\0\0"
-  "\0\377\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\0\300\0"
-  "\0\0\0\0\377\0\0\0\377\377\377\300\0\0\0\0\377\0\0\0\0\240\240\240\0"
-  "\0\0\0\377\0\0\0\0\0\0\0\377\0\300\0\0\0\0\0\377\0\0\0\377\0\0\0\0\0"
-  "\0\0\0\0\0\0\377\0\300\0\0\0\0\0\377\0\0\0\377\377\377\300\0\0\0\0\377"
-  "\0\0\0\0\377\377\300\0\0\0\0\377\0\0\0\0\0\0\0\377\0\300\0\0\0\0\0\377"
-  "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\0\200\0\0\0\0\0\377\0\0\0\377\377"
-  "\377\300\0\0\0\0\377\0\0\0\0\377\377\300\0\0\0\0\377\0\0\0\0\0\0\0\377"
-  "\377\0\0\0\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\0\300\0\0\0"
-  "\0\0\377\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\2\0\0\0\0\0\0\0\377\0\0\0"
-  "\0\0\0\0\377\0\300\0\0\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\300\0\0\0\0\0\0\0\0\0\0\0\300\0\0\0\0\0\0\0\0\0\0\0\300\0\0\0\0\0\0"
-  "\0\300\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\300\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\300\0\0\0\0\0\0\0\0\0\0\0\300\0\0\0\0\0\0\0\0\0\0\377\377\377\0\0\0"
-  "\0\0\377\377\377\0\0\0\0\0\377\377\377\0\0\0\0\0\377\377\377\0\0\0\0"
-  "\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_box_24)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_box_24[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_box_24[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (2304) */
-  "\0\0\11\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (96) */
-  "\0\0\0`"
-  /* width (24) */
-  "\0\0\0\30"
-  /* height (24) */
-  "\0\0\0\30"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\21\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\377UWS\377UWS\377UWS\377UWS\377UWS\377UWS\377UWS\377UWS\377"
-  "UWS\377UWS\377UWS\377UWS\377UWS\377UWS\377UWS\377UWS\377\0\0\0\377\0"
-  "\0\0#\0\0\0\21\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377UWS\377\374\351"
-  "O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377"
-  "\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374"
-  "\351O\377\374\351O\377\374\351O\377UWS\377\0\0\0\377\0\0\0""4\0\0\0\32"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377UWS\377\374\351O\377\374\351"
-  "O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377"
-  "\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374"
-  "\351O\377\374\351O\377UWS\377\0\0\0\377\0\0\0""4\0\0\0\32\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\377UWS\377\374\351O\377\374\351O\377\374\351"
-  "O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377"
-  "\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374"
-  "\351O\377UWS\377\0\0\0\377\0\0\0""4\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\377UWS\377\374\351O\377\374\351O\377\374\351O\377\374"
-  "\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351"
-  "O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377"
-  "UWS\377\0\0\0\377\0\0\0""4\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\377UWS\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374"
-  "\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351"
-  "O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377UWS\377\0\0"
-  "\0\377\0\0\0""4\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377UW"
-  "S\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377"
-  "\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374"
-  "\351O\377\374\351O\377\374\351O\377\374\351O\377UWS\377\0\0\0\377\0\0"
-  "\0""4\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\3\4\3\377\365"
-  "\340/\377\361\333\27\377\357\327\14\377\356\326\11\377\355\324\0\377"
-  "\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377"
-  "\355\324\0\377\357\330\20\377\363\334\34\377\364\335&\377\3\4\3\377\0"
-  "\0\0\377\0\0\0""4\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377"
-  "\2\2\2\377\357\330\15\377\355\324\2\377\355\324\0\377\355\324\0\377\355"
-  "\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355"
-  "\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0""4\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\377\0\0\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324"
-  "\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324"
-  "\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\377\0\0\0\377\355\324\0\377\355\324\0\377\355\324\0\377"
-  "\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377"
-  "\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377"
-  "\355\324\0\377\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\32\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\355\324\0\377\355\324\0\377\355"
-  "\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355"
-  "\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355"
-  "\324\0\377\355\324\0\377\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\32\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\355\324\0\377\355\324"
-  "\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324"
-  "\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324"
-  "\0\377\355\324\0\377\355\324\0\377\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0"
-  "\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0""4\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\32\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\21\0\0\0#\0\0\0""4\0\0\0""4\0\0\0""4\0\0\0""4\0\0"
-  "\0""4\0\0\0""4\0\0\0""4\0\0\0""4\0\0\0""4\0\0\0""4\0\0\0""4\0\0\0""4"
-  "\0\0\0""4\0\0\0""4\0\0\0""4\0\0\0""4\0\0\0#\0\0\0\21\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0\21\0\0\0\32\0\0\0\32\0\0\0\32\0\0\0\32"
-  "\0\0\0\32\0\0\0\32\0\0\0\32\0\0\0\32\0\0\0\32\0\0\0\32\0\0\0\32\0\0\0"
-  "\32\0\0\0\32\0\0\0\32\0\0\0\32\0\0\0\32\0\0\0\21\0\0\0\11\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_box_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_box_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_box_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\371\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\1\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\377\0\0\0\377\374\351O\377\374\351"
-  "O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377"
-  "\374\351O\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0"
-  "\0\377\0\0\0\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377"
-  "\374\351O\377\374\351O\377\374\351O\377\374\351O\377\0\0\0\377\0\0\0"
-  "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\377\0\0\0\377\374\351O\377"
-  "\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374"
-  "\351O\377\374\351O\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\7\0\0\0\377\0\0\0\377\374\351O\377\374\351O\377\374\351O\377\374"
-  "\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\0\377\0\0\0\377\374\351"
-  "O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377"
-  "\374\351O\377\374\351O\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\1\0\0\0\377\0\0\0\377\374\351O\377\374\351O\377\374\351O\377"
-  "\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\0\0"
-  "\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\377\0\0\0\377"
-  "\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374"
-  "\351O\377\374\351O\377\374\351O\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\1\0\0\0\377\0\0\0\377\374\351O\377\374\351O\377\374"
-  "\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351"
-  "O\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_ellipse_24)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_ellipse_24[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_ellipse_24[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (2304) */
-  "\0\0\11\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (96) */
-  "\0\0\0`"
-  /* width (24) */
-  "\0\0\0\30"
-  /* height (24) */
-  "\0\0\0\30"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&\0\0\0\202\1\1\1\310\6\6\6\361"
-  "\11\11\11\377\12\12\11\362\4\4\4\311\0\0\0\202\0\0\0&\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\220\0\0\0\377\0\0\0\377\23\23\22\377"
-  ")*(\377&'%\377*,)\377\26\26\25\377\0\0\0\377\0\0\0\377\0\0\0\232\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\31\0\0\0\307\0\0\0\377$$#\377\177|a\377\304\271"
-  "\203\377\355\334O\377\374\351O\377\352\331O\377\275\263\200\377\177|"
-  "a\377\3\3\3\377\3\3\3\377\0\0\0\322\0\0\0\31\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\307\0\0\0\377"
-  "DC7\377\325\307\207\377\374\351O\377\374\351O\377\374\351O\377\374\351"
-  "O\377\374\351O\377\374\351O\377\374\351O\377\277\264~\377FF;\377\0\0"
-  "\0\377\0\0\0\323\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\220\0\0\0\377DC7\377\374\351O\377\374\351O\377\374"
-  "\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351"
-  "O\377\374\351O\377\374\351O\377\374\351O\377DC8\377\16\16\15\377\0\0"
-  "\0\250\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&\6\6\6\377"
-  "&'%\377\304\271\177\377\374\351O\377\374\351O\377\374\351O\377\374\351"
-  "O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377"
-  "\374\351O\377\374\351O\377\317\302\204\377,,+\377\0\0\0\377\0\0\0R\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\202&&$\377us]\377\374\351"
-  "O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377"
-  "\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374"
-  "\351O\377\374\351O\377\177|a\377\0\0\0\377\0\0\0\237\0\0\0\30\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\307,-+\377\304\271\203\377\374\351O\377"
-  "\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374"
-  "\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351"
-  "O\377\374\351O\377\312\276\206\377\0\0\0\377\0\0\0\326\0\0\0<\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\1\1\1\360\40!\36\377\364\342O\377\374\351O\377"
-  "\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374"
-  "\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351"
-  "O\377\374\351O\377\374\351O\377\0\0\0\377\0\0\0\364\0\0\0I\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\2\3\2\377*+(\377\355\334O\377\361\331\25\377\355"
-  "\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355"
-  "\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355"
-  "\324\0\377\356\325\3\377\374\351O\377\0\0\0\377\0\0\0\377\0\0\0M\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\2\2\360\11\11\10\377\351\321\1\377\355"
-  "\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355"
-  "\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355"
-  "\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\0\0\0\377\0\0\0"
-  "\365\0\0\0N\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\307\0\0\0\377\312\276"
-  "\206\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355"
-  "\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355"
-  "\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\312\276\206\377"
-  "\0\0\0\377\0\0\0\330\0\0\0M\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\202"
-  "\0\0\0\377\177|a\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324"
-  "\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324"
-  "\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\177|a"
-  "\377\0\0\0\377\0\0\0\247\0\0\0I\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "&\0\0\0\377\0\0\0\377\325\307\207\377\355\324\0\377\355\324\0\377\355"
-  "\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355"
-  "\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\325\307\207\377"
-  "\0\0\0\377\0\0\0\377\0\0\0a\0\0\0<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\232\0\0\0\377DC7\377\355\324\0\377\355\324\0\377\355\324"
-  "\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324"
-  "\0\377\355\324\0\377\355\324\0\377\355\324\0\377DC7\377\0\0\0\377\0\0"
-  "\0\261\0\0\0;\0\0\0\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\322\0\0\0\377DC7\377\325\307\207\377\355\324\0\377\355\324\0"
-  "\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324\0\377\355\324"
-  "\0\377\325\307\207\377DC7\377\0\0\0\377\0\0\0\330\0\0\0C\0\0\0""4\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\31\0\0\0\323"
-  "\0\0\0\377\0\0\0\377\177|a\377\312\276\206\377\355\324\0\377\355\324"
-  "\0\377\355\324\0\377\312\276\206\377\177|a\377\0\0\0\377\0\0\0\377\0"
-  "\0\0\330\0\0\0X\0\0\0""8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0\250\0\0\0\377\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\261\0\0\0C\0\0\0""8\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\0\0\0\237"
-  "\0\0\0\326\0\0\0\364\0\0\0\377\0\0\0\365\0\0\0\330\0\0\0\247\0\0\0a\0"
-  "\0\0;\0\0\0""4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\27\0"
-  "\0\0""3\0\0\0""7\0\0\0""5\0\0\0""4\0\0\0""5\0\0\0""7\0\0\0""3\0\0\0\27"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_ellipse_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_ellipse_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_ellipse_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\35\0\0\0\210\0\0\0\323\0\0\0\372\0\0\0"
-  "\372\0\0\0\323\0\0\0\210\0\0\0\35\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0d\0\0\0\372\0\0\0\377\0\0\0\377\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\372\0\0\0d\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0d\0\0\0\377\0\0\0\377SJ,\377\263\241`\377\374\351"
-  "O\377\374\351O\377\263\241`\377SJ,\377\0\0\0\377\0\0\0\377\0\0\0d\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\35\0\0\0\372\0\0\0\377\202uF\377\374\351O"
-  "\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377"
-  "\202uF\377\0\0\0\377\0\0\0\372\0\0\0\35\0\0\0\0\0\0\0\0\0\0\0\210\0\0"
-  "\0\377SJ,\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374"
-  "\351O\377\374\351O\377\374\351O\377\374\351O\377SJ,\377\0\0\0\377\0\0"
-  "\0\210\0\0\0\0\0\0\0\0\0\0\0\323\0\0\0\377\263\241`\377\374\351O\377"
-  "\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374"
-  "\351O\377\374\351O\377\263\241`\377\0\0\0\377\0\0\0\323\0\0\0\0\0\0\0"
-  "\0\0\0\0\372\0\0\0\377\374\351O\377\374\351O\377\374\351O\377\374\351"
-  "O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377"
-  "\374\351O\377\0\0\0\377\0\0\0\372\0\0\0\0\0\0\0\0\0\0\0\372\0\0\0\377"
-  "\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374"
-  "\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\0\0\0\377"
-  "\0\0\0\372\0\0\0\0\0\0\0\0\0\0\0\323\0\0\0\377\263\241`\377\374\351O"
-  "\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377"
-  "\374\351O\377\374\351O\377\263\241`\377\0\0\0\377\0\0\0\323\0\0\0\0\0"
-  "\0\0\0\0\0\0\210\0\0\0\377SJ,\377\374\351O\377\374\351O\377\374\351O"
-  "\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377"
-  "SJ,\377\0\0\0\377\0\0\0\210\0\0\0\0\0\0\0\0\0\0\0\35\0\0\0\372\0\0\0"
-  "\377\202uF\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374"
-  "\351O\377\374\351O\377\202uF\377\0\0\0\377\0\0\0\372\0\0\0\35\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0d\0\0\0\377\0\0\0\377SJ,\377\263\241`\377\374\351"
-  "O\377\374\351O\377\263\241`\377SJ,\377\0\0\0\377\0\0\0\377\0\0\0d\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0d\0\0\0\372\0\0\0\377\0\0\0"
-  "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\372\0\0\0d\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\35\0\0\0\210\0"
-  "\0\0\323\0\0\0\372\0\0\0\372\0\0\0\323\0\0\0\210\0\0\0\35\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_image_24)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_image_24[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_image_24[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (2304) */
-  "\0\0\11\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (96) */
-  "\0\0\0`"
-  /* width (24) */
-  "\0\0\0\30"
-  /* height (24) */
-  "\0\0\0\30"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\1\0\2\21\4\0\4\11"
-  "\0\0\0\0\0\0\0\0\0\0\0\377e\251\362\377e\251\362\377e\251\362\377e\251"
-  "\362\377e\251\362\377e\251\362\377e\251\362\377e\251\362\377e\251\362"
-  "\377e\251\362\377e\251\362\377e\251\362\377e\251\362\377e\251\362\377"
-  "e\251\362\377e\251\362\377e\251\362\377e\251\362\377\0\0\0\377\0\0\0"
-  "\"\0\0\0\21\0\0\0\0\0\0\0\0\0\0\0\377e\251\362\377e\251\362\377e\251"
-  "\362\377e\251\362\377e\251\362\377e\251\362\377e\251\362\377e\251\362"
-  "\377e\251\362\377e\251\362\377e\251\362\377e\251\362\377\377\377\0\377"
-  "\377\377\0\377e\251\362\377e\251\362\377e\251\362\377e\251\362\377\0"
-  "\0\0\377\0\0\0""3\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\377e\251\362\377e\251"
-  "\362\377e\251\362\377e\251\362\377e\251\362\377e\251\362\377\0\0\0\377"
-  "e\251\362\377e\251\362\377e\251\362\377e\251\362\377\377\377\0\377\377"
-  "\377\0\377\377\377\0\377\377\377\0\377e\251\362\377e\251\362\377e\251"
-  "\362\377\0\0\0\377\0\0\0""3\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\377e\251\362"
-  "\377e\251\362\377e\251\362\377e\251\362\377e\251\362\377\0\0\0\377\377"
-  "\377\300\377\0\0\0\377e\251\362\377e\251\362\377e\251\362\377e\251\362"
-  "\377\377\377\0\377\377\377\0\377e\251\362\377e\251\362\377e\251\362\377"
-  "e\251\362\377\0\0\0\377\0\0\0""3\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\377e"
-  "\251\362\377e\251\362\377e\251\362\377e\251\362\377\0\0\0\377\377\377"
-  "\300\377\377\377\300\377\377\377\300\377\0\0\0\377e\251\362\377e\251"
-  "\362\377e\251\362\377e\251\362\377e\251\362\377e\251\362\377\0\377\0"
-  "\377N\232\6\377\0\200\0\377\0\0\0\377\0\0\0""3\0\0\0\32\0\0\0\0\0\0\0"
-  "\0\0\0\0\377{\272\366\377\250\334\377\377y\270\366\377\0\0\0\377\377"
-  "\377\300\377\377\377\300\377\240\240\240\377\377\377\300\377\377\377"
-  "\300\377\0\0\0\377o\261\364\377\241\327\377\377q\262\365\377\250\334"
-  "\377\377\0\377\0\377N\232\6\377N\232\6\377\0@\0\377\0\0\0\377\0\0\0""3"
-  "\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\377\245\332\377\377[\252\377\377\4\7"
-  "\12\377\0\0\0\377\377\377\300\377\377\377\300\377\240\240\240\377\377"
-  "\377\300\377\377\377\300\377\0\0\0\377\0\0\0\377f\261\377\377\250\334"
-  "\377\377{\276\377\377N\232\6\377N\232\6\377\0\200\0\377\0@\0\377\0\0"
-  "\0\377\0\0\0""3\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\377\250\334\377\377\250"
-  "\334\377\377\250\334\377\377\0\0\0\377\377\377\300\377\377\377\300\377"
-  "\377\377\300\377\377\377\300\377\377\377\300\377\0\0\0\377\250\334\377"
-  "\377\250\334\377\377\250\334\377\377\250\334\377\377\250\334\377\377"
-  "\0\200\0\377\0@\0\377\0@\0\377\0\0\0\377\0\0\0""3\0\0\0\32\0\0\0\0\0"
-  "\0\0\0\0\0\0\377\342\360\377\377\342\360\377\377\342\360\377\377\0\0"
-  "\0\377\377\377\300\377\377\377\300\377\377\377\300\377\377\377\300\377"
-  "\377\377\300\377\0\0\0\377\342\360\377\377\342\360\377\377\342\360\377"
-  "\377\342\360\377\377\342\360\377\377\342\360\377\377\0@\0\377\342\360"
-  "\377\377\0\0\0\377\0\0\0""3\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0"
-  "\377\3\4\1\377\0\0\0\377\0\0\0\377\377\377\300\377\240\240\240\377\377"
-  "\377\300\377\240\240\240\377\377\377\300\377\0\0\0\377\0\0\0\377\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377@@\0\377\0\0\0\377\0\0"
-  "\0\377\0\0\0""3\0\0\0\32\0\0\0\0\0\0\0\0\4\11\1\377\206\3372\377\207"
-  "\3403\377\212\3424\377\0\0\0\377\377\377\300\377\240\240\240\377\377"
-  "\377\300\377\240\240\240\377\377\377\300\377\0\0\0\377\212\3424\377\212"
-  "\3424\377\212\3424\377\212\3424\377\212\3424\377\212\3424\377@@\0\377"
-  "\212\3424\377\0\0\0\377\0\0\0""3\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\377y"
-  "\320.\377p\317*\377\212\3424\377\0\0\0\377\377\377\300\377\240\240\240"
-  "\377\377\377\300\377\377\377\300\377\377\377\300\377\0\0\0\377\212\342"
-  "4\377\212\3424\377\212\3424\377\377\0\0\377\212\3424\377\377\0\0\377"
-  "@@\0\377\212\3424\377\0\0\0\377\0\0\0""3\0\0\0\32\0\0\0\0\0\0\0\0\0\0"
-  "\0\377!\225\14\377E\260\32\377\203\3351\377\0\0\0\377\377\377\300\377"
-  "\240\240\240\377\377\377\300\377\377\377\300\377\377\377\300\377\0\0"
-  "\0\377\212\3424\377\377\0\0\377\212\3424\377\0@\0\377\212\3424\377\0"
-  "@\0\377@@\0\377\212\3424\377\0\0\0\377\0\0\0""3\0\0\0\32\0\0\0\0\0\0"
-  "\0\0\0\0\0\377a\267$\377k\314(\377\207\3403\377\0\0\0\377\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\212\3424\377~\3250\377"
-  "\30S\6\377}\320.\377\13K\3\377\377\0\0\377\212\3424\377\0@\0\377\0\0"
-  "\0\377\0\0\0""3\0\0\0\32\0\0\0\0\0\0\0\0\3\7\1\377\33\213\12\377\202"
-  "\3330\377\205\3352\377\211\3413\377\211\3414\377\377\377\377\377\212"
-  "\3424\377\212\3424\377\212\3424\377\212\3424\377\212\3424\3771p\40\377"
-  "j\273(\377y\315-\377\177\324/\377\210\3373\377\24N\5\377\211\3403\377"
-  "\0\0\0\377\0\0\0""3\0\0\0\32\0\0\0\0\0\0\0\0\27&\10\377r\307*\377\200"
-  "\3270\377\205\3341\377\207\3362\377\211\3403\377\377\377\377\377\377"
-  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
-  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\217\343<\377"
-  "\211\3413\377\202\3311\377\212\3424\377\0\0\0\377\0\0\0""3\0\0\0\32\0"
-  "\0\0\0\0\0\0\0\0\0\0\377\212\3424\377~\3300\377\211\3413\377\212\342"
-  "4\377\212\3424\377\212\3424\377\212\3424\377\212\3424\377\212\3424\377"
-  "\212\3424\377\212\3424\377\212\3424\377\212\3424\377\377\377\377\377"
-  "\377\377\377\377\212\3424\377\212\3424\377\212\3424\377\0\0\0\377\0\0"
-  "\0""3\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\377\212\3424\377\212\3424\377\212"
-  "\3424\377\212\3424\377\212\3424\377\212\3424\377\212\3424\377\212\342"
-  "4\377\212\3424\377\212\3424\377\212\3424\377\212\3424\377\212\3424\377"
-  "\212\3424\377\377\377\377\377\212\3424\377\212\3424\377\212\3424\377"
-  "\0\0\0\377\0\0\0""3\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0""3\0\0\0\32\0\0\0\0\0"
-  "\0\0\0\0\0\0\21\0\0\0\"\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3"
-  "\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0"
-  "3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0\"\0\0\0\21\0\0\0"
-  "\0\0\0\0\0\0\0\0\10\0\0\0\21\0\0\0\32\0\0\0\32\0\0\0\32\0\0\0\32\0\0"
-  "\0\32\0\0\0\32\0\0\0\32\0\0\0\32\0\0\0\32\0\0\0\32\0\0\0\32\0\0\0\32"
-  "\0\0\0\32\0\0\0\32\0\0\0\32\0\0\0\32\0\0\0\32\0\0\0\32\0\0\0\21\0\0\0"
-  "\10"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_image_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_image_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_image_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\0\0\0\0\0\0\0\0\377X\250\377\377X\250\377\377X\250\377\377X\250"
-  "\377\377X\250\377\377X\250\377\377X\250\377\377\356\326\200\377\220\305"
-  "\252\377\356\326\200\377X\250\377\377X\250\377\377\0\0\0\377\0\0\0\0"
-  "\0\0\0\0\0\0\0\377X\250\377\377X\250\377\377X\250\377\377X\250\377\377"
-  "\0\0\0\377X\250\377\377X\250\377\377\242\317\216\377\377\377\0\377\332"
-  "\3549\377X\250\377\377X\250\377\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377"
-  "X\250\377\377X\250\377\377N\225\343\377\0\0\0\377\377\377\300\377\0\0"
-  "\0\377X\250\377\377\356\326\200\377\307\342U\377\356\326\200\377;\276"
-  "\252\377;\242\252\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377j\264\377\377"
-  "j\264\377\377\0\0\0\377\377\377\300\377\377\377\300\377\377\377\300\377"
-  "\0\0\0\377|\277\377\377j\264\377\377C\332\216\377\0\316\0\377\0y\0\377"
-  "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\226\320\377\377\0\0\0\377\0\0\0"
-  "\377\377\377\300\377\325\325\262\377\377\377\300\377\23\30\34\377\0\0"
-  "\0\377\226\320\377\377L\304\216\377\0\225\0\377\0N\0\377\0\0\0\377\0"
-  "\0\0\0\0\0\0\0\0\0\0\377\270\363\377\377\270\363\377\377\0\0\0\377\377"
-  "\377\300\377\377\377\300\377\377\377\300\377\0\0\0\377\270\363\377\377"
-  "\270\363\377\377\270\363\377\377U\243q\377U\225q\377\0\0\0\377\0\0\0"
-  "\0\0\0\0\0\0\0\0\377\0@\0\377\0@\0\377\0\0\0\377\300\300\253\377\377"
-  "\377\300\377\337\337\265\377\0\0\0\377\0@\0\377\0@\0\377\0@\0\377\25"
-  "@\0\377\25@\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\0\300\0\377\0\300"
-  "\0\377\0\0\0\377\300\300\253\377\364\364\274\377\364\364\274\377\0\0"
-  "\0\377\0\300\0\3779\225\0\3779\225\0\377\207@\0\377\25\225\0\377\0\0"
-  "\0\377\0\0\0\0\0\0\0\0\0\0\0\377\0\225\0\377\0\262\0\377\0\0\0\377\200"
-  "\200r\377\377\377\300\377\377\377\300\377\0\0\0\377qk\0\377\0\207\0\377"
-  "\0\207\0\377G@\0\377\16\207\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377"
-  "\0\244\0\377\0\300\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
-  "\0\377\0\207\0\377\0\244\0\377\0\244\0\3779y\0\377\0\207\0\377\0\0\0"
-  "\377\0\0\0\0\0\0\0\0\0\0\0\377\0\300\0\377\0\300\0\377\0\300\0\377q\334"
-  "q\377\252\352\252\377\252\352\252\377\252\352\252\377\252\352\252\377"
-  "\306\361\306\377\216\343\216\377\0\300\0\377\0\300\0\377\0\0\0\377\0"
-  "\0\0\0\0\0\0\0\0\0\0\377\0\300\0\377\0\300\0\377\0\300\0\377\0\300\0"
-  "\377\0\300\0\377\0\300\0\377\0\300\0\377\0\300\0\377\34\307\34\377\306"
-  "\361\306\377\0\300\0\377\0\300\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0"
-  "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_line_24)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_line_24[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_line_24[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (2304) */
-  "\0\0\11\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (96) */
-  "\0\0\0`"
-  /* width (24) */
-  "\0\0\0\30"
-  /* height (24) */
-  "\0\0\0\30"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\377\0\0\0\221"
-  "\0\0\0\15\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\36\0\0\0\26"
-  "\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\1\0\0\0\377\0\0\0\377\0\0\0+\0\0\0'\0\0\0\26\0\0\0\5\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0"
-  "\0\0\377\0\0\0\377\0\0\0+\0\0\0+\0\0\0\32\0\0\0\10\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\377\0\0\0\377"
-  "\0\0\0+\0\0\0+\0\0\0\32\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6\0\0\0\377\0\0\0\377\0\0\0+\0\0\0+\0"
-  "\0\0\32\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\1\0\0\0\377\0\0\0\377\0\0\0+\0\0\0+\0\0\0\32\0\0\0\10"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2"
-  "\0\0\0\377\0\0\0\377\0\0\0+\0\0\0+\0\0\0\32\0\0\0\10\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\377\0\0\0"
-  "\377\0\0\0+\0\0\0+\0\0\0\32\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\377\0\0\0\377\0\0\0+\0\0\0"
-  "+\0\0\0\32\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\1\0\0\0\377\0\0\0\377\0\0\0+\0\0\0+\0\0\0\32\0\0\0\10"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1"
-  "\0\0\0\377\0\0\0\377\0\0\0+\0\0\0+\0\0\0\32\0\0\0\10\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\377\0\0\0"
-  "\377\0\0\0+\0\0\0+\0\0\0\32\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0+\0\0\0"
-  "+\0\0\0\32\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\4\0\0\0\377\0\0\0\377\0\0\0+\0\0\0+\0\0\0\32\0\0\0\10"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4"
-  "\0\0\0\377\0\0\0\377\0\0\0+\0\0\0+\0\0\0\32\0\0\0\10\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0\377\0\0\0"
-  "\377\0\0\0+\0\0\0+\0\0\0\32\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0+\0\0\0"
-  "+\0\0\0\32\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\221\0\0\0\36\0\0\0'\0\0\0\32\0\0\0\10"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\15\0\0\0\26\0\0\0\26\0\0\0\10\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_line_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_line_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_line_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\377\0\0\0""3\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\235\270\322\0\235"
-  "\270\322\0\235\270\322\0\235\270\322\0\235\270\322\0\235\270\322\0\235"
-  "\270\322\0\235\270\322\0\235\270\322\0\235\270\322\0\0\0\0\1\0\0\0\377"
-  "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\235\270\322\0\235\270\322\0\235\270"
-  "\322\0\235\270\322\0\235\270\322\0\235\270\322\0\235\270\322\0\235\270"
-  "\322\0\235\270\322\0\0\0\0\2\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\235\270\322\0\235\270\322\0\235\270\322\0\235\270\322\0"
-  "\235\270\322\0\235\270\322\0\235\270\322\0\235\270\322\0\0\0\0\2\0\0"
-  "\0\377\0\0\0\377\235\270\322\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\235\270"
-  "\322\0\235\270\322\0\235\270\322\0\235\270\322\0\235\270\322\0\235\270"
-  "\322\0\235\270\322\0\0\0\0\6\0\0\0\377\0\0\0\377\235\270\322\0\235\270"
-  "\322\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\235\270\322\0\235\270\322\0\235"
-  "\270\322\0\235\270\322\0\235\270\322\0\235\270\322\0\0\0\0\1\0\0\0\377"
-  "\0\0\0\377\235\270\322\0\235\270\322\0\235\270\322\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\235\270\322\0\235\270\322\0\235\270\322\0\235\270\322"
-  "\0\235\270\322\0\0\0\0\2\0\0\0\377\0\0\0\377\235\270\322\0\235\270\322"
-  "\0\235\270\322\0\235\270\322\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\235\270"
-  "\322\0\235\270\322\0\235\270\322\0\235\270\322\0\0\0\0\1\0\0\0\377\0"
-  "\0\0\377\235\270\322\0\235\270\322\0\235\270\322\0\235\270\322\0\235"
-  "\270\322\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\235\270\322\0\235\270\322"
-  "\0\235\270\322\0\0\0\0\4\0\0\0\377\0\0\0\377\235\270\322\0\235\270\322"
-  "\0\235\270\322\0\235\270\322\0\235\270\322\0\235\270\322\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\235\270\322\0\235\270\322\0\0\0\0\1\0\0\0\377"
-  "\0\0\0\377\235\270\322\0\235\270\322\0\235\270\322\0\235\270\322\0\235"
-  "\270\322\0\235\270\322\0\235\270\322\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\235\270\322\0\0\0\0\1\0\0\0\377\0\0\0\377\235\270\322\0\235\270\322"
-  "\0\235\270\322\0\235\270\322\0\235\270\322\0\235\270\322\0\235\270\322"
-  "\0\235\270\322\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\377\0"
-  "\0\0\377\235\270\322\0\235\270\322\0\235\270\322\0\235\270\322\0\235"
-  "\270\322\0\235\270\322\0\235\270\322\0\235\270\322\0\235\270\322\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\14\0\0\0""3\235\270\322\0\235\270"
-  "\322\0\235\270\322\0\235\270\322\0\235\270\322\0\235\270\322\0\235\270"
-  "\322\0\235\270\322\0\235\270\322\0\235\270\322\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_merge_24)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_merge_24[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_merge_24[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (2304) */
-  "\0\0\11\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (96) */
-  "\0\0\0`"
-  /* width (24) */
-  "\0\0\0\30"
-  /* height (24) */
-  "\0\0\0\30"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\2\0\0\0\5\0\0\0\14\0\0\0\22\0\0\0\27\0\0\0\31\0\0\0\31\0\0"
-  "\0\31\0\0\0\31\0\0\0\31\0\0\0\31\0\0\0\26\0\0\0\21\0\0\0\12\0\0\0\5\0"
-  "\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\0\0\0\0"
-  "\1\0\0\0\4\0\0\0]\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\40\0\0\0\21\0"
-  "\0\0\7\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0"
-  "\0\0\0\0\4\0\0\0\\\0\0\0\377UUU\377\0\0\0\377\374\372\351\377\374\372"
-  "\351\377\374\372\351\377\374\372\351\377\374\372\351\377\374\372\351"
-  "\377\374\372\351\377\0\0\0\377\0\0\0.\0\0\0\30\0\0\0\10\0\0\0\1\0\0\0"
-  "\1\0\0\0\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\\\0\0\0\377"
-  "UUU\377\377\377\377\377\0\0\0\377\374\372\351\377\374\372\351\377\374"
-  "\372\351\377\374\372\351\377\374\372\351\377\374\372\351\377\374\372"
-  "\351\377\0\0\0\377\0\0\0<\0\0\0\36\0\0\0\12\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377UUU\377\377\377\377\377"
-  "\377\377\377\377\0\0\0\377\254\247\227\377\300\273\255\377\360\352\333"
-  "\377\314\310\275\377\327\324\314\377\314\312\304\377\374\372\351\377"
-  "\0\0\0\377\0\0\0D\0\0\0\"\0\0\0\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\374\363\330\377\374\364\334\377\374\370\346\377\374\372\351"
-  "\377\374\372\351\377\374\372\351\377\374\372\351\377\0\0\0\377\0\0\0"
-  "D\0\0\0\"\0\0\0\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\377\372\354\301\377\264\252\215\377\277\265\230"
-  "\377\325\314\256\377\312\301\250\377\373\362\326\377\266\257\235\377"
-  "\313\305\262\377\300\273\254\377\301\274\257\377\374\372\351\377\0\0"
-  "\0\377\0\0\0D\0\0\0\"\0\0\0\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\370\351\267\377\370\351\273\377"
-  "\371\353\300\377\371\355\305\377\372\356\311\377\372\357\315\377\373"
-  "\361\323\377\374\363\327\377\374\364\334\377\374\370\345\377\374\372"
-  "\351\377\0\0\0\377\0\0\0H\0\0\0)\0\0\0\25\0\0\0\13\0\0\0\12\0\0\0\7\0"
-  "\0\0\4\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\370\346\256\377\312"
-  "\275\224\377\340\322\250\377\11\10\7\377\5\4\3\377\2\2\2\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\26\0\0\0\13\0\0\0\4\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\377\370\344\244\377\367\345\255\377\370\347\263\377"
-  "\0\0\0\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
-  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
-  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\0\0"
-  "\0\377\0\0\0""1\0\0\0\35\0\0\0\16\0\0\0\4\0\0\0\1\0\0\0\0\0\0\0\377\370"
-  "\343\234\377\270\251}\377\311\271\214\377\0\0\0\377\377\377\377\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\35\0\0\0\13\0\0\0\4\0\0\0\0\0\0\0\377\367\342\222\377\366\341"
-  "\236\377\367\342\242\377\1\1\1\377\377\377\377\377\0\0\0\377\377\377"
-  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
-  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
-  "\377\377\377\377\377\377\377\377\377\377\377\377\0\0\0\377\0\0\0""4\0"
-  "\0\0\35\0\0\0\16\0\0\0\0\0\0\0\377\367\342\205\377\275\254v\377\355\330"
-  "\222\377\3\2\1\377\377\377\377\377\0\0\0\377\377\377\377\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\35"
-  "\0\0\0\0\0\0\0\377\371\343k\377\365\336\224\377\367\341\216\377\5\5\2"
-  "\377\377\377\377\377\0\0\0\377\377\377\377\377\0\0\0\377\377\377\377"
-  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
-  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
-  "\377\377\377\377\377\377\377\377\377\377\377\0\0\0\377\0\0\0""1\0\0\0"
-  "\0\0\0\0\377\374\351O\377\277\253k\377\373\350O\377\12\11\5\377\0\0\0"
-  "\377\0\0\0\377\377\377\377\377\0\0\0\377\377\377\377\377\377\377\377"
-  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
-  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
-  "\377\377\377\377\377\377\377\0\0\0\377\0\0\0>\0\0\0\0\0\0\0\377\374\351"
-  "O\377\361\336R\377\372\347O\377\370\342s\377\367\340\215\377\0\0\0\377"
-  "\377\377\377\377\0\0\0\377\351\361\371\377\351\361\371\377\351\361\371"
-  "\377\351\361\371\377\351\361\371\377\351\361\371\377\351\361\371\377"
-  "\351\361\371\377\351\361\371\377\351\361\371\377\351\361\371\377\377"
-  "\377\377\377\0\0\0\377\0\0\0D\0\0\0\0\0\0\0\377\374\351O\377\277\252"
-  "`\377\306\257k\377\334\303{\377\334\305\177\377\0\0\0\377\0\0\0\377\0"
-  "\0\0\377\351\361\371\377\351\361\371\377\351\361\371\377\351\361\371"
-  "\377\351\361\371\377\351\361\371\377\351\361\371\377\351\361\371\377"
-  "\351\361\371\377\351\361\371\377\351\361\371\377\377\377\377\377\0\0"
-  "\0\377\0\0\0D\0\0\0\0\0\0\0\377\374\351O\377\356\332Q\377\374\351O\377"
-  "\374\351O\377\374\351O\377\374\351O\377\370\342r\377\0\0\0\377\351\361"
-  "\371\377\351\361\371\377\351\361\371\377\351\361\371\377\351\361\371"
-  "\377\351\361\371\377\351\361\371\377\351\361\371\377\351\361\371\377"
-  "\351\361\371\377\351\361\371\377\377\377\377\377\0\0\0\377\0\0\0D\0\0"
-  "\0\0\0\0\0\377\374\351O\377\272\242X\377\327\276b\377\374\351O\377\262"
-  "\236]\377\306\257k\377\330\302n\377\12\11\3\377\0\0\0\377\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0<\0\0\0\0\0\0\0\377\367"
-  "\334]\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351"
-  "O\377\374\351O\377\374\351O\377\374\351O\377\371\344i\377\367\336\217"
-  "\377\0\0\0\377\0\0\0Z\0\0\0O\0\0\0H\0\0\0D\0\0\0D\0\0\0D\0\0\0D\0\0\0"
-  "D\0\0\0<\0\0\0-\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0"
-  "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
-  "\0\377\0\0\0\377\0\0\0H\0\0\0""4\0\0\0(\0\0\0\"\0\0\0\"\0\0\0\"\0\0\0"
-  "\"\0\0\0\"\0\0\0\36\0\0\0\26\0\0\0\0\0\0\0\36\0\0\0-\0\0\0<\0\0\0D\0"
-  "\0\0D\0\0\0D\0\0\0D\0\0\0D\0\0\0D\0\0\0D\0\0\0D\0\0\0D\0\0\0>\0\0\0""1"
-  "\0\0\0\36\0\0\0\21\0\0\0\13\0\0\0\13\0\0\0\13\0\0\0\13\0\0\0\13\0\0\0"
-  "\12\0\0\0\7\0\0\0\0\0\0\0\17\0\0\0\26\0\0\0\36\0\0\0\"\0\0\0\"\0\0\0"
-  "\"\0\0\0\"\0\0\0\"\0\0\0\"\0\0\0\"\0\0\0\"\0\0\0\"\0\0\0\36\0\0\0\26"
-  "\0\0\0\13\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_merge_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_merge_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_merge_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0^\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
-  "\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\11\0\0\0h\0\0\0\377\0\0\0\377\374\371\354\377\374\372\356\377\374"
-  "\372\356\377\374\373\357\377\374\373\357\377\4\4\4\377\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0B\0\0\0\377\331\331\331\377\0"
-  "\0\0\377\313\306\267\377\351\343\325\377\343\336\321\377\364\362\353"
-  "\377\374\373\357\377\1\1\1\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\361\350\316\377\353"
-  "\342\311\377\353\343\316\377\351\344\326\377\350\342\316\377\0\0\0\377"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\16\10\377\312\272"
-  "\205\377\330\313\243\377\346\331\257\377\347\332\264\377\350\335\277"
-  "\377\352\342\312\377\350\342\314\377\362\357\345\377\0\0\0\377\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\374\351O\377\334"
-  "\313\230\377\340\321\246\377\341\327\271\377\345\336\310\377\347\341"
-  "\315\377\350\342\316\377\350\342\316\377\0\0\0\377UUU\0UUU\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\374\351O\377\332\307\213\377\336\324"
-  "\266\377YYY\377YYY\377YYY\377YYY\377YYY\377YYY\377YYY\377YYY\377YYY\377"
-  "\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\377\374\351O\377\350\320\215\377\350\333"
-  "\270\377YYY\377000\377000\377000\377000\377000\377000\377000\377000\377"
-  "000\377\0\0\0\0\0\0\0\0\0\0\0\377\374\351O\377\366\342]\377\350\327\250"
-  "\377YYY\377000\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\377\374\351O\377"
-  "\374\351O\377\337\320\237\377YYY\377000\377\0\0\0\377\377\377\377\377"
-  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
-  "\377\377\377\377\377\377\377\0\0\0\377\0\0\0\1\0\0\0\377\374\351O\377"
-  "\337\311f\377\374\351O\377\343\321\234\377000\377\0\0\0\377\377\377\377"
-  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
-  "\377\377\377\377\377\377\377\377\0\0\0\377\0\0\0\2\0\0\0\377\374\351"
-  "O\377\374\351O\377\374\351O\377\374\351O\377\364\337d\377\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\2\0\0\0\377\374\351O\377\374\351O\377\374\351O\377\374"
-  "\351O\377\374\351O\377\244\222\\\377\244\223_\377ncB\377\0\0\0\377\0"
-  "\0\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\1\0\0\0\0\0\0\0\377\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_properties_24)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_properties_24[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_properties_24[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (2304) */
-  "\0\0\11\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (96) */
-  "\0\0\0`"
-  /* width (24) */
-  "\0\0\0\30"
-  /* height (24) */
-  "\0\0\0\30"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0"
-  "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\21\0\0"
-  "\0\11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0#\0\0\0\21\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377"
-  "\0\0\0\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351"
-  "O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377"
-  "\374\351O\377\374\351O\377\374\351O\377\374\351O\377\0\0\0\377\0\0\0"
-  "\377\0\0\0""4\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0"
-  "\0\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377"
-  "\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374"
-  "\351O\377\374\351O\377\374\351O\377\374\351O\377\0\0\0\377\0\0\0\377"
-  "\0\0\0""4\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0:\0\0\0\377\0\0\0\377"
-  "\374\351O\377\374\351O\377\0\0\0\377\0\0\0\377\304\260i\377\374\351O"
-  "\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377"
-  "\374\351O\377\374\351O\377\374\351O\377\0\0\0\377\0\0\0\377\0\0\0""4"
-  "\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0:\0\0\0\377\377\377\377\377\0\0\0\377"
-  "\340\264\\\377\374\351O\377\0\0\0\377\357\357\357\377\0\0\0\377\267\245"
-  "b\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377"
-  "\374\351O\377\374\351O\377\374\351O\377\0\0\0\377\0\0\0\377\0\0\0""4"
-  "\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\377\0"
-  "\0\0\377\321\224\14\377\374\351O\377\0\0\0\377\357\357\357\377\357\357"
-  "\357\377\0\0\0\377\321\224\14\377\374\351O\377\374\351O\377\374\351O"
-  "\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\0\0\0\377\0"
-  "\0\0\377\0\0\0""4\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377"
-  "\377\377\377\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\357\357\357"
-  "\377\357\357\357\377\0\0\0\377\321\224\14\377\374\351O\377\374\351O\377"
-  "\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\0\0"
-  "\0\377\0\0\0\377\0\0\0""4\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\377\377\377"
-  "\377\377\357\357\357\377\357\357\357\377\357\357\357\377\357\357\357"
-  "\377\357\357\357\377\357\357\357\377\357\357\357\377\0\0\0\377\321\224"
-  "\14\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O"
-  "\377\374\351O\377\374\351O\377\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\32"
-  "\0\0\0\0\0\0\0\0\0\0\0R\0\0\0\377\377\377\377\377\357\357\357\377\357"
-  "\357\357\377\303\303\303\377\357\357\357\377\303\303\303\377\0\0\0\377"
-  "\321\224\14\377\340\264\\\377\374\351O\377\374\351O\377\374\351O\377"
-  "\374\351O\377\374\351O\377\374\351O\377\374\351O\377\0\0\0\377\0\0\0"
-  "\377\0\0\0""4\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0:\0\0\0\377\377\377"
-  "\377\377\303\303\303\377\303\303\303\377\303\303\303\377\0\0\0\377\321"
-  "\224\14\377\321\224\14\377\374\351O\377\374\351O\377\374\351O\377\374"
-  "\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\0\0\0\377"
-  "\0\0\0\377\0\0\0""4\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377"
-  "\377\377\377\377\357\357\357\377\357\357\357\377\303\303\303\377\0\0"
-  "\0\377\321\224\14\377\340\264\\\377\374\351O\377\374\351O\377\374\351"
-  "O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377"
-  "\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\377\377\377\377\377\357\357\357\377\357\357\357\377\303\303"
-  "\303\377\0\0\0\377\321\224\14\377\340\264\\\377\374\351O\377\374\351"
-  "O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377"
-  "\374\351O\377\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\32\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\357\357\357\377\357\357\357"
-  "\377\303\303\303\377\0\0\0\377\321\224\14\377\340\264\\\377\374\351O"
-  "\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377"
-  "\374\351O\377\374\351O\377\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\32\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\357\357\357\377\303\303\303\377"
-  "\303\303\303\377\303\303\303\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0"
-  "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\377\377\377\377\377\357\357\357\377\357\357\357\377\357\357\357"
-  "\377\303\303\303\377\303\303\303\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\377\377"
-  "\377\377\377\377\377\377\377\357\357\357\377\357\357\357\377\357\357"
-  "\357\377\357\357\357\377\357\357\357\377\303\303\303\377\0\0\0\377\0"
-  "\0\0""4\0\0\0""4\0\0\0""4\0\0\0""4\0\0\0""4\0\0\0""4\0\0\0""4\0\0\0""4"
-  "\0\0\0""4\0\0\0""4\0\0\0#\0\0\0\21\0\0\0\0\0\0\0\0\0\0\0\377\377\377"
-  "\377\377\357\357\357\377\357\357\357\377\357\357\357\377\357\357\357"
-  "\377\357\357\357\377\357\357\357\377\357\357\357\377\0\0\0\377\0\0\0"
-  "B\0\0\0\32\0\0\0\32\0\0\0\32\0\0\0\32\0\0\0\32\0\0\0\32\0\0\0\32\0\0"
-  "\0\32\0\0\0\32\0\0\0\21\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377"
-  "\377\377\377\377\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\357\357"
-  "\357\377\357\357\357\377\0\0\0\377%\36\17F\0\0\0\20\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\377\0\0\0\377\377\377\377\377\0\0\0\377\0\0\0:\0\0\0"
-  ":\0\0\0\377\357\357\357\377\0\0\0\377\0\0\0\377\0\0\0:\0\0\0\20\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0:\0\0\0\377\377\377\377\377\0\0\0\377\0\0"
-  "\0:\0\0\0\20\0\0\0\377\303\303\303\377\0\0\0\377\0\0\0x\0\0\0\20\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\0\0\0\377\0\0\0\377\0"
-  "\0\0:\0\0\0\20\0\0\0\377\0\0\0\377\0\0\0]\0\0\0\20\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0:\0\0\0:\0\0\0:\0\0\0"
-  "\20\0\0\0\20\0\0\0:\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_properties_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_properties_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_properties_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
-  "\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\374\351O\377\374\351"
-  "O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377"
-  "\374\351O\377\374\351O\377\374\351O\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0"
-  "\0;\0\0\0\377\0\0\0\377\374\351O\377\374\351O\377\0\0\0\377\0\0\0\377"
-  "\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374"
-  "\351O\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\0\0\0\377"
-  "\340\264\\\377\374\351O\377\0\0\0\377\357\357\357\377\0\0\0\377\321\224"
-  "\14\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\0\0\0\377"
-  "\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\0\0\0\377\0\0\0\377\0\0\0"
-  "\377\0\0\0\377\357\357\357\377\0\0\0\377\321\224\14\377\374\351O\377"
-  "\374\351O\377\374\351O\377\374\351O\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0"
-  "\0\377\377\377\377\377\357\357\357\377\357\357\357\377\357\357\357\377"
-  "\357\357\357\377\303\303\303\377\0\0\0\377\321\224\14\377\374\351O\377"
-  "\374\351O\377\374\351O\377\374\351O\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0"
-  "\0""1\0\0\0\377\377\377\377\377\357\357\357\377\357\357\357\377\303\303"
-  "\303\377\0\0\0\377\223u9\377\340\264\\\377\374\351O\377\374\351O\377"
-  "\374\351O\377\374\351O\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0H\0"
-  "\0\0\377\377\377\377\377\303\303\303\377\0\0\0\377\223u9\377\340\264"
-  "\\\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377"
-  "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377"
-  "\357\357\357\377\0\0\0\377\321\224\14\377\374\351O\377\374\351O\377\374"
-  "\351O\377\374\351O\377\374\351O\377\374\351O\377\0\0\0\377\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\303\303\303\377\0\0"
-  "\0\377\321\224\14\377\374\351O\377\374\351O\377\374\351O\377\374\351"
-  "O\377\374\351O\377\374\351O\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0O\0\0\0\377\377\377\377\377\357\357\357\377\0\0\0\377\223u9\377\340"
-  "\264\\\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351"
-  "O\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0C\0\0\0\377\377\377\377\377\357"
-  "\357\357\377\303\303\303\377\303\303\303\377\0\0\0\377\223u9\377\340"
-  "\264\\\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\0\0\0"
-  "\377\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\357\357\357\377\357\357"
-  "\357\377\357\357\357\377\357\357\357\377\303\303\303\377\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0"
-  "\0\0\0\0\0\0\377\377\377\377\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0"
-  "\377\357\357\357\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\0\0\0\377\202\202"
-  "\202\377\240\240\240\377\0\0\0\377\357\357\357\377\0\0\0\377\217\217"
-  "\217\0\221\221\221\0\235\235\235\0\265\265\265\0\273\273\273\0\240\240"
-  "\240\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0"
-  "\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_text_24)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_text_24[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_text_24[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (2304) */
-  "\0\0\11\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (96) */
-  "\0\0\0`"
-  /* width (24) */
-  "\0\0\0\30"
-  /* height (24) */
-  "\0\0\0\30"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\21\0\0\0\10\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\377\0\0\0\340\0\0\0)\0\0\0!\0\0\0\377\0\0\0\377\0\0"
-  "\0\377\0\0\0+\0\0\0\"\0\0\0\340\0\0\0\377\0\0\0!\0\0\0\21\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\353\0\0\0A\0\0\0""2\0\0\0\"\0\0\0\377\0\0\0\377\0\0\0"
-  "\377\0\0\0<\0\0\0+\0\0\0:\0\0\0\361\0\0\0*\0\0\0\31\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\20\0\0\0\30\0\0\0\30\0\0\0\10\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0""3\0\0\0\32\0\0\0\10\0\0\0\32\0\0\0\31\0\0\0\20\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\10\0\0\0\11\0\0\0\11\0\0\0\1\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0""3\0\0\0\32\0\0\0\1\0\0\0\11\0\0\0\11\0\0\0\10\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0"
-  "\0\0""3\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0"
-  "3\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0""3\0\0"
-  "\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0""3\0\0\0\32"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0""3\0\0\0\32\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0""3\0\0\0\32\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\1\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0""4\0\0\0\32\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\"\0\0\0\10\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\10\0\0\0\32\0\0\0+\0\0\0""3\0\0\0+\0\0\0\32\0\0\0\10\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\21"
-  "\0\0\0\32\0\0\0\32\0\0\0\32\0\0\0\21\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_text_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_text_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_text_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0"
-  "\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\1\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_order_top_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_order_top_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_order_top_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0"
-  "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\212\3424\377\212"
-  "\3424\377\212\3424\377\212\3424\377\212\3424\377\212\3424\377\212\342"
-  "4\377\212\3424\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\377\212\3424\377\212\3424\377\212\3424\377\212\3424\377"
-  "\212\3424\377\212\3424\377\212\3424\377\212\3424\377\0\0\0\377\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\212\3424\377\212"
-  "\3424\377\212\3424\377\212\3424\377\212\3424\377\212\3424\377\212\342"
-  "4\377\212\3424\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\377\212\3424\377\212\3424\377\212\3424\377\212\3424\377"
-  "\212\3424\377\212\3424\377\212\3424\377\212\3424\377\0\0\0\377\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\212\3424\377\212"
-  "\3424\377\212\3424\377\212\3424\377\212\3424\377\212\3424\377\212\342"
-  "4\377\212\3424\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\212\3424\377\212\3424\377\212\3424\377\212"
-  "\3424\377\212\3424\377\212\3424\377\212\3424\377\212\3424\377\0\0\0\377"
-  "\0\0\0\0\0\0\0\0\0\0\0\377VRH\377VRH\377VRH\377\0\0\0\377\212\3424\377"
-  "\212\3424\377\212\3424\377\212\3424\377\212\3424\377\212\3424\377\212"
-  "\3424\377\212\3424\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377VRH\377VRH"
-  "\377VRH\377\0\0\0\377\212\3424\377\212\3424\377\212\3424\377\212\342"
-  "4\377\212\3424\377\212\3424\377\212\3424\377\212\3424\377\0\0\0\377\0"
-  "\0\0\0\0\0\0\0\0\0\0\377VRH\377VRH\377VRH\377\0\0\0\377\0\0\0\377\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
-  "\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377VRH\377VRH\377VRH\377VRH\377VRH\377"
-  "VRH\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\377VRH\377VRH\377VRH\377VRH\377VRH\377VRH\377\0\0"
-  "\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\377VRH\377VRH\377VRH\377VRH\377VRH\377VRH\377\0\0\0\377\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_order_bottom_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_order_bottom_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_order_bottom_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377VR"
-  "H\377VRH\377VRH\377VRH\377VRH\377VRH\377\0\0\0\377\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377VRH\377VRH\377"
-  "VRH\377VRH\377VRH\377VRH\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377VRH\377VRH\377VRH\377VRH"
-  "\377VRH\377VRH\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377VRH\377VRH\377VRH\377V"
-  "RH\377VRH\377VRH\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\212\3424\377"
-  "\212\3424\377\212\3424\377\212\3424\377\212\3424\377\0\0\0\377VRH\377"
-  "VRH\377VRH\377VRH\377VRH\377VRH\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377"
-  "\212\3424\377\212\3424\377\212\3424\377\212\3424\377\212\3424\377\0\0"
-  "\0\377VRH\377VRH\377VRH\377VRH\377VRH\377VRH\377\0\0\0\377\0\0\0\0\0"
-  "\0\0\0\0\0\0\377\212\3424\377\212\3424\377\212\3424\377\212\3424\377"
-  "\212\3424\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0"
-  "\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\212\3424\377\212\342"
-  "4\377\212\3424\377\212\3424\377\212\3424\377\212\3424\377\212\3424\377"
-  "\212\3424\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\377\212\3424\377\212\3424\377\212\3424\377\212\3424\377\212"
-  "\3424\377\212\3424\377\212\3424\377\212\3424\377\0\0\0\377\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\212\3424\377\212\342"
-  "4\377\212\3424\377\212\3424\377\212\3424\377\212\3424\377\212\3424\377"
-  "\212\3424\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\377\212\3424\377\212\3424\377\212\3424\377\212\3424\377\212"
-  "\3424\377\212\3424\377\212\3424\377\212\3424\377\0\0\0\377\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\212\3424\377\212\342"
-  "4\377\212\3424\377\212\3424\377\212\3424\377\212\3424\377\212\3424\377"
-  "\212\3424\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0"
-  "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_rotate_left_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_rotate_left_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_rotate_left_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\24\0\0\0""7\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\352\350\343"
-  "\0\352\350\343\0\0\0\0\377\0\0\0&\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\352"
-  "\350\343\0\352\350\343\0\0\0\0\377\0\0\0\357\0\0\0\377\0\0\0\377\0\0"
-  "\0""7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\352\350\343\0\352\350\343\0\0\0\0\377\0\0\0&\0\0\0\377\0\0\0"
-  "\377\0\0\0\357\0\0\0e\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\352\350\343\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\35\0\0"
-  "\0\377\0\0\0\35\0\0\0\377\0\0\0n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0"
-  "G\0\0\0\35\0\0\0\35\0\0\0\377\0\0\0e\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\35\0\0\0\376\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\35\0\0\0\357\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\357\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_rotate_right_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_rotate_right_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_rotate_right_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""7\0\0\0\24"
-  "\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\352\350\343"
-  "\0\352\350\343\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0&\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\352"
-  "\350\343\0\352\350\343\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0""7\0\0\0\377\0\0\0\377\0\0\0\357\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\352\350\343\0\352\350\343\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0e\0\0\0\357\0\0\0\377\0\0\0\377\0\0\0&\0\0\0\377\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\352\350\343\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0n\0\0\0\377\0\0\0\35\0\0\0\377\0\0\0\35\0\0\0\0\0\0\0\377\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0e\0\0\0\377"
-  "\0\0\0\35\0\0\0\35\0\0\0G\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\376\0\0\0\35\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0t\0\0\0\377\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\0\0\0\35\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_flip_horiz_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_flip_horiz_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_flip_horiz_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""7"
-  "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377"
-  "\0\0\0""7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\35\0\0\0\377"
-  "\0\0\0\320\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\320"
-  "\0\0\0\377\0\0\0\35\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\35\0\0\0\377\0\0\0"
-  "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\35\0\0\0\0\0\0\0\0\0\0\0\377"
-  "\0\0\0\377\0\0\0\344\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\344\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0"
-  "\35\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0"
-  "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\35\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\35\0\0\0\377\0\0\0\320\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\320\0\0\0\377\0\0\0\35\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""7\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0""7\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_flip_vert_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_flip_vert_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_flip_vert_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\35\0\0\0\377\0"
-  "\0\0\35\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\35\0\0\0\377\0\0\0\377\0\0\0"
-  "\377\0\0\0\35\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""7\0\0\0\377\0\0\0\377\0\0\0\344\0\0\0"
-  "\377\0\0\0\377\0\0\0""7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\320\0\0\0\377\0\0\0\0\0\0"
-  "\0\377\0\0\0\320\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0"
-  "\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\377\0\0\0\320\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\320\0\0\0"
-  "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0""7\0\0\0\377\0\0\0\377\0\0\0\344\0\0\0\377\0\0\0\377\0"
-  "\0\0""7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\35\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\35\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\35\0\0\0\377\0\0\0\35\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_align_left_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_align_left_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_align_left_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\374\351O\377\374\351O\377\374"
-  "\351O\377\374\351O\377\374\351O\377\374\351O\377\0\0\0\377\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\374"
-  "\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351"
-  "O\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\377\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0"
-  "\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\377\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377r\237\317\377r\237\317\377"
-  "r\237\317\377r\237\317\377r\237\317\377r\237\317\377r\237\317\377r\237"
-  "\317\377r\237\317\377r\237\317\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377"
-  "\0\0\0\0\0\0\0\377r\237\317\377r\237\317\377r\237\317\377r\237\317\377"
-  "r\237\317\377r\237\317\377r\237\317\377r\237\317\377r\237\317\377r\237"
-  "\317\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0"
-  "\377\0\0\0\377\0\0\0\377\0\0\0\377\1\0\0\377\1\0\0\377\1\0\0\377\1\0"
-  "\0\377\1\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0"
-  "\0\0\0\0\377\374\257>\377\374\257>\377\374\257>\377\374\257>\377\0\0"
-  "\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\377\0\0\0\0\0\0\0\377\374\257>\377\374\257>\377\374\257>\377"
-  "\374\257>\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_align_right_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_align_right_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_align_right_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\374"
-  "\257>\377\374\257>\377\374\257>\377\374\257>\377\0\0\0\377\0\0\0\0\0"
-  "\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\377\374\257>\377\374\257>\377\374\257>\377\374\257>\377\0"
-  "\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0"
-  "\377\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\1\0\0"
-  "\377\1\0\0\377\1\0\0\377\1\0\0\377\1\0\0\377\0\0\0\377\0\0\0\377\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377"
-  "r\237\317\377r\237\317\377r\237\317\377r\237\317\377r\237\317\377r\237"
-  "\317\377r\237\317\377r\237\317\377r\237\317\377r\237\317\377\0\0\0\377"
-  "\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377r\237\317\377r\237\317\377"
-  "r\237\317\377r\237\317\377r\237\317\377r\237\317\377r\237\317\377r\237"
-  "\317\377r\237\317\377r\237\317\377\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0"
-  "\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0"
-  "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0"
-  "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
-  "\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377\374\351O\377"
-  "\374\351O\377\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\377\374\351O\377\374\351O\377\374\351O\377"
-  "\374\351O\377\374\351O\377\374\351O\377\0\0\0\377\0\0\0\0\0\0\0\377\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0"
-  "\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_align_hcenter_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_align_hcenter_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_align_hcenter_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\374\351O\377\374\351O\377\374\351"
-  "O\377\0\0\0\377\374\351O\377\374\351O\377\374\351O\377\0\0\0\377\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\374\351"
-  "O\377\374\351O\377\374\351O\377\0\0\0\377\374\351O\377\374\351O\377\374"
-  "\351O\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\377r\237\317\377r\237\317\377r\237\317\377r\237\317"
-  "\377r\237\317\377\0\0\0\377r\237\317\377r\237\317\377r\237\317\377r\237"
-  "\317\377r\237\317\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377r\237"
-  "\317\377r\237\317\377r\237\317\377r\237\317\377r\237\317\377\0\0\0\377"
-  "r\237\317\377r\237\317\377r\237\317\377r\237\317\377r\237\317\377\0\0"
-  "\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\1\0\0\377\1\0\0\377\1\0\0\377\1\0\0\377"
-  "\1\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\377\374\257>\377\374\257>\377\0\0\0\377\374\257>\377\374\257>"
-  "\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\377\374\257>\377\374\257>\377\0\0\0\377\374"
-  "\257>\377\374\257>\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_align_top_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_align_top_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_align_top_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0"
-  "\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\374\257>\377\374\257>\377\0\0\0\377"
-  "\0\0\0\0\0\0\0\377r\237\317\377r\237\317\377\0\0\0\377\0\0\0\0\0\0\0"
-  "\377\374\351O\377\374\351O\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\374"
-  "\257>\377\374\257>\377\0\0\0\377\0\0\0\0\0\0\0\377r\237\317\377r\237"
-  "\317\377\0\0\0\377\0\0\0\0\0\0\0\377\374\351O\377\374\351O\377\0\0\0"
-  "\377\0\0\0\0\0\0\0\0\0\0\0\377\374\257>\377\374\257>\377\0\0\0\377\0"
-  "\0\0\0\0\0\0\377r\237\317\377r\237\317\377\0\0\0\377\0\0\0\0\0\0\0\377"
-  "\374\351O\377\374\351O\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\374\257"
-  ">\377\374\257>\377\0\0\0\377\0\0\0\0\0\0\0\377r\237\317\377r\237\317"
-  "\377\0\0\0\377\0\0\0\0\0\0\0\377\374\351O\377\374\351O\377\0\0\0\377"
-  "\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\1\0"
-  "\0\377r\237\317\377r\237\317\377\0\0\0\377\0\0\0\0\0\0\0\377\374\351"
-  "O\377\374\351O\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\1\0\0\377r\237\317\377r\237\317\377\0\0\0\377\0\0\0"
-  "\0\0\0\0\377\374\351O\377\374\351O\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\377r\237\317\377r\237\317"
-  "\377\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\377r\237\317"
-  "\377r\237\317\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\377r\237"
-  "\317\377r\237\317\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377"
-  "r\237\317\377r\237\317\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_align_bottom_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_align_bottom_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_align_bottom_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377r\237\317\377r\237\317"
-  "\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377r\237\317\377r\237"
-  "\317\377\1\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377r\237\317\377"
-  "r\237\317\377\1\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\377"
-  "r\237\317\377r\237\317\377\1\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\374\351O\377\374\351O\377\0\0\0\377"
-  "\0\0\0\0\0\0\0\377r\237\317\377r\237\317\377\1\0\0\377\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\374\351O\377\374"
-  "\351O\377\0\0\0\377\0\0\0\0\0\0\0\377r\237\317\377r\237\317\377\1\0\0"
-  "\377\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0"
-  "\0\0\0\377\374\351O\377\374\351O\377\0\0\0\377\0\0\0\0\0\0\0\377r\237"
-  "\317\377r\237\317\377\0\0\0\377\0\0\0\0\0\0\0\377\374\257>\377\374\257"
-  ">\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\374\351O\377\374\351O\377\0"
-  "\0\0\377\0\0\0\0\0\0\0\377r\237\317\377r\237\317\377\0\0\0\377\0\0\0"
-  "\0\0\0\0\377\374\257>\377\374\257>\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0"
-  "\0\377\374\351O\377\374\351O\377\0\0\0\377\0\0\0\0\0\0\0\377r\237\317"
-  "\377r\237\317\377\0\0\0\377\0\0\0\0\0\0\0\377\374\257>\377\374\257>\377"
-  "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\374\351O\377\374\351O\377\0\0\0"
-  "\377\0\0\0\0\0\0\0\377r\237\317\377r\237\317\377\0\0\0\377\0\0\0\0\0"
-  "\0\0\377\374\257>\377\374\257>\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_align_vcenter_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_align_vcenter_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_align_vcenter_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0"
-  "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377r\237\317\377r\237\317\377"
-  "\1\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\377r\237\317\377"
-  "r\237\317\377\1\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\377\374\351O\377\374\351O\377\0\0\0\377\0\0\0\0\0\0"
-  "\0\377r\237\317\377r\237\317\377\1\0\0\377\0\0\0\0\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\374\351O\377\374\351O"
-  "\377\0\0\0\377\0\0\0\0\0\0\0\377r\237\317\377r\237\317\377\1\0\0\377"
-  "\0\0\0\0\0\0\0\377\374\257>\377\374\257>\377\0\0\0\377\0\0\0\0\0\0\0"
-  "\0\0\0\0\377\374\351O\377\374\351O\377\0\0\0\377\0\0\0\0\0\0\0\377r\237"
-  "\317\377r\237\317\377\1\0\0\377\0\0\0\0\0\0\0\377\374\257>\377\374\257"
-  ">\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\374\351O\377"
-  "\374\351O\377\0\0\0\377\0\0\0\0\0\0\0\377r\237\317\377r\237\317\377\0"
-  "\0\0\377\0\0\0\0\0\0\0\377\374\257>\377\374\257>\377\0\0\0\377\0\0\0"
-  "\0\0\0\0\0\0\0\0\377\374\351O\377\374\351O\377\0\0\0\377\0\0\0\0\0\0"
-  "\0\377r\237\317\377r\237\317\377\0\0\0\377\0\0\0\0\0\0\0\377\374\257"
-  ">\377\374\257>\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\374\351O\377\374"
-  "\351O\377\0\0\0\377\0\0\0\0\0\0\0\377r\237\317\377r\237\317\377\0\0\0"
-  "\377\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0"
-  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\377r\237\317\377"
-  "r\237\317\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377r\237\317"
-  "\377r\237\317\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_center_horiz_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_center_horiz_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_center_horiz_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\377\0\0\0""7\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0""7"
-  "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\320\0\0\0\377\0\0\0\35\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\35\0\0\0"
-  "\377\0\0\0\320\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\35\0\0\0\377\0\0\0\35\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\344\0\0\0\377\0\0\0\377\0\0\0\377\0"
-  "\0\0\377\0\0\0\377\0\0\0\344\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\35\0"
-  "\0\0\377\0\0\0\35\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\320\0\0\0\377\0\0\0\35\0"
-  "\0\0\0\0\0\0\377\0\0\0\0\0\0\0\35\0\0\0\377\0\0\0\320\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0""7\0\0\0\0\0"
-  "\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0""7\0\0\0\377\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_center_vert_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_center_vert_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_center_vert_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\377\0\0\0\320\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\320\0"
-  "\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0""7\0\0\0\377\0\0\0\377\0\0\0\344\0\0\0\377\0\0\0\377"
-  "\0\0\0""7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\35\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\35"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\35\0\0\0\377\0\0\0\35\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0"
-  "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
-  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\35\0\0\0\377\0\0\0"
-  "\35\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\35\0\0\0\377\0\0\0\377\0\0\0\377"
-  "\0\0\0\35\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0""7\0\0\0\377\0\0\0\377\0\0\0\344\0\0\0\377"
-  "\0\0\0\377\0\0\0""7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\320\0\0\0\377\0\0\0\0\0\0\0\377"
-  "\0\0\0\320\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_bucket_fill_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_bucket_fill_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_bucket_fill_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0N\0\0\0\377\0\0\0N\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\26\26\26\323\0\0\0\377\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0www\10\0\0\0\0\0\0\0\377\246\246\246\377\0\0\0\377___/\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\250\250\250\12\0\0\0\0\0\0\0\377\266\266\266\377\335\335\335\377\0"
-  "\0\0\377\0\0\0\377KKK;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\257\257\257\14\0\0\0\0\0\0\0\377\266\266\266\377\351\351\351"
-  "\377\243\243\243\377\0\0\0\377\300\300\300\376\0\0\0\377\0\0\0\27\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\266\266"
-  "\266\377\342\342\342\377\362\362\362\377\0\0\0\377\367\367\367\377\0"
-  "\0\0\377\323\323\323\377\0\0\0\377\0\0\0\31\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\377\266\266\266\377\341\341\341\377\362\362\362"
-  "\377\367\367\367\377\253\253\253\377\0\0\0\377sss\377\271\271\271\377"
-  "\332\331\331\377\0\0\0\377\0\0\0\31\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\377\266\266\266\377\362\362\362\377\362\362\362\377\367\367\367"
-  "\377\367\367\367\377\302\302\302\377\326\326\326\377\260\260\260\377"
-  "\231\231\231\377\231\231\231\377\4\4\4\361\3003\35Y\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\13\13\13\27\0\0\0\377\266\266\266\377\322\322\322\376\346\346"
-  "\346\377\302\302\302\377\326\326\326\377\256\256\256\377\231\231\231"
-  "\377\3\3\3\377\13\13\13\355\13\13\13\343\231\14\10\363\325^G\225\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\14\0\0\0\377\266\266\266\377\302\302\302\377"
-  "\326\326\326\377\256\256\256\377\231\231\231\377\0\0\0\377\0\0\0\0\0"
-  "\0\0\6\0\0\0\0\314\0\0\377\357))\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\34\34\34\23\0\0\0\377\266\266\266\377\242\242\242\377\231\231\231\377"
-  "\0\0\0\377\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0\0\314\0\0\377\357))\377\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\22\22\22\23\0\0\0\377FFF\360\0\0"
-  "\0\377\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\314\0\0\377\3169\32\371"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6\0\0\0F\0\0\0"
-  "\0\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\225\11\4\363\357))\377\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\314\0\0\377\255%\20\362\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\211\13\4\277\316\223\223\367"
-  "\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_bucket_fill_24)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_bucket_fill_24[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_bucket_fill_24[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (2304) */
-  "\0\0\11\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (96) */
-  "\0\0\0`"
-  /* width (24) */
-  "\0\0\0\30"
-  /* height (24) */
-  "\0\0\0\30"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0N\0\0\0\377\0\0"
-  "\0N\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\23\0\0\0\377\0\0\0"
-  "\23\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\24\24\24\336\0\0\0\377\0\0\0\77"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0www\10\0\0\0\0\0\0\0\377\246\246\246\377\0\0\0\377---b\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\250\250"
-  "\250\12www\0\0\0\0\377\266\266\266\377\335\335\335\377\0\0\0\377\0\0"
-  "\0\377AAAD\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\257\257"
-  "\257\14\250\250\250\0\0\0\0\377\266\266\266\377\351\351\351\377\243\243"
-  "\243\377\0\0\0\377\300\300\300\376\0\0\0\377\0\0\0%\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\257\257\257\0\0\0\0\377\266\266\266\377\342"
-  "\342\342\377\362\362\362\377\0\0\0\377\367\367\367\377\0\0\0\377\323"
-  "\323\323\377\0\0\0\377\0\0\0\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\377\266\266\266\377\341\341\341\377\362\362\362\377\367\367\367"
-  "\377\253\253\253\377\0\0\0\377sss\377\271\271\271\377\332\331\331\377"
-  "\0\0\0\377\0\0\0\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\266\266\266"
-  "\377\362\362\362\377\362\362\362\377\367\367\367\377\367\367\367\377"
-  "\302\302\302\377\326\326\326\377\260\260\260\377\231\231\231\377\231"
-  "\231\231\377\3\3\3\364\2670\33]\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\13\13\27\0\0\0"
-  "\377\266\266\266\377\322\322\322\376\346\346\346\377\302\302\302\377"
-  "\326\326\326\377\256\256\256\377\231\231\231\377\3\3\3\377\12\12\12\361"
-  "\12\12\12\352\314\0\0\377\310XB\236\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\13\13\0\0\0\0\22\0"
-  "\0\0\377\266\266\266\377\302\302\302\377\326\326\326\377\256\256\256"
-  "\377\231\231\231\377\0\0\0\377\0\0\0\77\0\0\0D\0\0\0;\314\0\0\377\357"
-  "))\377\0\0\0%\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\30\30\30\26\0\0\0\377\266\266\266\377"
-  "\242\242\242\377\231\231\231\377\0\0\0\377\0\0\0\77\0\0\0B\0\0\0\0\0"
-  "\0\0\1\231\13\6\365\357))\377\0\0\0>\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\30\30\30\0\16"
-  "\16\16\30\0\0\0\377DDD\364\0\0\0\377\0\0\0\77\0\0\0@\0\0\0\0\0\0\0\1"
-  "\0\0\0\0\314\0\0\377\314\0\0\377\0\0\0>\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16"
-  "\16\16\0\0\0\0\13\0\0\0t\0\0\0;\0\0\0C\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\314\0\0\377\357))\377\0\0\0>\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\1\0\0\0\21\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\314\0"
-  "\0\377\252$\17\365\0\0\0<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\314\0\0\377"
-  "\314\221\221\371\0\0\0<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\211\13\4\0\0\0"
-  "\0/\0\0\0=\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_pencil_16)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_pencil_16[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_pencil_16[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (1024) */
-  "\0\0\4\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (64) */
-  "\0\0\0@"
-  /* width (16) */
-  "\0\0\0\20"
-  /* height (16) */
-  "\0\0\0\20"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0(\0\0\0"
-  "\230\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0$\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\230\277\257"
-  "\254\262\215mh\377\252[O\377\271YM\344\0\0\0\377\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""4;;;\377"
-  "\253\222\215\377\2211\40\377\206/!\377\317R>\377\0\0\0\377\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "u\303\253\246\327a\36\22\377\2305%\377\317R>\377\343\232\216\377\0\0"
-  "\0\230\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0""4;;;\377\263\225\217\377\2425!\377\210/!\377\333~p\377\203"
-  "sp\377\0\0\0Z\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\305\314\274\240\345\330\251D\377\254\214:\377\352\316"
-  "y\377\326\326\326\377\0\0\0\377Q'\36\11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""4CCC\377\276\253\210\377\330\251D\377"
-  "\254\214:\377\352\316y\377yyy\377\0\0\0u\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\305\307\264\222\377\330\251"
-  "D\377\254\214:\377\352\316y\377\357\335\242\377\0\0\0\377i_D\14\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0CCCC\377\333"
-  "\300\220\377\330\251D\377\254\214:\377\352\316y\377\206\204y\377\0\0"
-  "\0u\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0unnn\377\240~W\377\271\225i\377\271\225i\377\367\357\326\377\0\0"
-  "\0\377WK'\11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\377\275\250\217\377\233\203g\377\271\225i\377\367\357"
-  "\326\377\205\201s\377\0\0\0u\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\263\236\206\377\270\237\203"
-  "\377\313\260\220\377\324\315\267\377\0\0\0\377}iB\7\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\236"
-  "\221\202\377\264\254\243\377\332\324\301\377\0\0\0\377\252\227u\13\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\377okg\377\236\235\234\377\0\0\0\377\264\244\212\13"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\377[YV\377\0\0\0\377C\77""8\5\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\5\4\2\4\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_pencil_24)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_pencil_24[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_pencil_24[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (2304) */
-  "\0\0\11\30"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (96) */
-  "\0\0\0`"
-  /* width (24) */
-  "\0\0\0\30"
-  /* height (24) */
-  "\0\0\0\30"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0(\0\0\0\230\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0$\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\230"
-  "\273\254\251\265\215mh\377\252[O\377\264VK\352\0\0\0\377\0\0\0\11\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""4;;;"
-  "\377\253\222\215\377\2211\40\377\206/!\377\317R>\377\0\0\0\377\0\0\0"
-  "=\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0u\301"
-  "\251\244\331a\36\22\377\2305%\377\317R>\377\343\232\216\377\0\0\0\261"
-  "\0\0\0=\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""4;"
-  ";;\377\263\225\217\377\2425!\377\210/!\377\333~p\377\203sp\377\0\0\0"
-  "\201\0\0\0$\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\305\313\273\237\346\330\251D\377\254\214:\377\352\316y\377\326\326\326"
-  "\377\0\0\0\377\12\5\3D\0\0\0\26\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0""4CCC\377\276\253\210\377\330\251D\377\254\214:\377\352"
-  "\316y\377yyy\377\0\0\0\226\0\0\0=\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\305\307\264\222\377\330\251D\377\254\214:\377"
-  "\352\316y\377\357\335\242\377\0\0\0\377\22\20\13F\0\0\0\34\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0CCCC\377\333\300\220\377\330"
-  "\251D\377\254\214:\377\352\316y\377\206\204y\377\0\0\0\226\0\0\0=\0\0"
-  "\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0unnn\377\240~W"
-  "\377\271\225i\377\271\225i\377\367\357\326\377\0\0\0\377\13\11\5D\0\0"
-  "\0\34\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\275"
-  "\250\217\377\233\203g\377\271\225i\377\367\357\326\377\205\201s\377\0"
-  "\0\0\226\0\0\0=\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\377\263\236\206\377\270\237\203\377\313\260\220\377\324"
-  "\315\267\377\0\0\0\377\15\13\7B\0\0\0\34\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\236\221\202\377\264\254\243"
-  "\377\332\324\301\377\0\0\0\377\33\30\22E\0\0\0=\0\0\0\2\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377okg\377\236\235"
-  "\234\377\0\0\0\377\34\32\26E\0\0\0=\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377[YV\377\0\0\0\377"
-  "\5\4\4A\0\0\0=\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0@\0\0\0=\0\0"
-  "\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0=\0\0\0=\0\0\0\1\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_hchain_24)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_hchain_24[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_hchain_24[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (864) */
-  "\0\0\3x"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (96) */
-  "\0\0\0`"
-  /* width (24) */
-  "\0\0\0\30"
-  /* height (9) */
-  "\0\0\0\11"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4"
-  "\377\2\2\4\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\2\4\377\2\2\4\377\2"
-  "\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\2\2\4\377ZZ\\\377\350\350\351\377\320\320\321\377"
-  "\320\320\321\377\320\320\321\377\320\320\321\377\217\217\221\377\2\2"
-  "\4\377\0\0\0\0\0\0\0\0\2\2\4\377\217\217\221\377\265\265\266\377\350"
-  "\350\351\377\350\350\351\377\350\350\351\377\350\350\351\377\265\265"
-  "\266\377\2\2\4\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\2\4\377\265\265"
-  "\266\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377"
-  "\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377"
-  "\2\2\4\377\2\2\4\377\2\2\4\377\350\350\351\377\2\2\4\377\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\2\2\4\377\320\320\321\377\2\2\4\377\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\2\2\4\377nnn\377\265\265\266\377\320\320\321\377\320\320"
-  "\321\377\320\320\321\377\265\265\266\377\2\2\4\377\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\2\2\4\377\320\320\321\377\2\2\4\377\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\2\2\4\377\320\320\321\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4"
-  "\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2"
-  "\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\350\350\351"
-  "\377\2\2\4\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\2\4\377nnn\377\232\232"
-  "\230\377\320\320\321\377\320\320\321\377\265\265\266\377\232\232\230"
-  "\377\217\217\221\377\2\2\4\377\0\0\0\0\0\0\0\0\2\2\4\377nnn\377\265\265"
-  "\266\377\265\265\266\377\265\265\266\377\265\265\266\377\320\320\321"
-  "\377nnn\377\2\2\4\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\2\4\377"
-  "\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2"
-  "\4\377\2\2\4\377\2\2\4\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_hchain_broken_24)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_hchain_broken_24[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_hchain_broken_24[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (864) */
-  "\0\0\3x"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (96) */
-  "\0\0\0`"
-  /* width (24) */
-  "\0\0\0\30"
-  /* height (9) */
-  "\0\0\0\11"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\2"
-  "\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\2\4"
-  "\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\0\0"
-  "\0\0\2\2\4\377ZZ\\\377\350\350\351\377\320\320\321\377\320\320\321\377"
-  "\320\320\321\377\320\320\321\377\217\217\221\377\2\2\4\377\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\2\4\377\217\217\221\377\265"
-  "\265\266\377\350\350\351\377\350\350\351\377\350\350\351\377\350\350"
-  "\351\377\265\265\266\377\2\2\4\377\2\2\4\377\265\265\266\377\2\2\4\377"
-  "\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4"
-  "\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\350\350\351\377\2\2\4\377"
-  "\2\2\4\377\320\320\321\377\2\2\4\377\0\0\0\0\0\0\0\0\0\0\0\0\2\2\4\377"
-  "nnn\377\265\265\266\377\320\320\321\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\320\320\321\377\320\320\321\377\265\265\266\377\2\2\4\377\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\2\2\4\377\320\320\321\377\2\2\4\377\2\2\4\377\320\320"
-  "\321\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377"
-  "\2\2\4\377\2\2\4\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\2\4\377\2\2\4"
-  "\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\350"
-  "\350\351\377\2\2\4\377\2\2\4\377nnn\377\232\232\230\377\320\320\321\377"
-  "\320\320\321\377\265\265\266\377\232\232\230\377\217\217\221\377\2\2"
-  "\4\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\2\4\377nnn\377"
-  "\265\265\266\377\265\265\266\377\265\265\266\377\265\265\266\377\320"
-  "\320\321\377nnn\377\2\2\4\377\0\0\0\0\2\2\4\377\2\2\4\377\2\2\4\377\2"
-  "\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\2\4\377\2\2\4\377\2\2\4\377\2\2"
-  "\4\377\2\2\4\377\2\2\4\377\2\2\4\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_vchain_24)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_vchain_24[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_vchain_24[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (864) */
-  "\0\0\3x"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (36) */
-  "\0\0\0$"
-  /* width (9) */
-  "\0\0\0\11"
-  /* height (24) */
-  "\0\0\0\30"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2"
-  "\4\377\0\0\0\0\0\0\0\0\0\0\0\0\2\2\4\377nnn\377\320\320\321\377\320\320"
-  "\321\377\265\265\266\377ZZ\\\377\2\2\4\377\0\0\0\0\0\0\0\0\2\2\4\377"
-  "\232\232\230\377\2\2\4\377\2\2\4\377\2\2\4\377\350\350\351\377\2\2\4"
-  "\377\0\0\0\0\0\0\0\0\2\2\4\377\320\320\321\377\2\2\4\377\0\0\0\0\2\2"
-  "\4\377\320\320\321\377\2\2\4\377\0\0\0\0\0\0\0\0\2\2\4\377\320\320\321"
-  "\377\2\2\4\377\0\0\0\0\2\2\4\377\320\320\321\377\2\2\4\377\0\0\0\0\0"
-  "\0\0\0\2\2\4\377\265\265\266\377\2\2\4\377\0\0\0\0\2\2\4\377\320\320"
-  "\321\377\2\2\4\377\0\0\0\0\0\0\0\0\2\2\4\377\232\232\230\377\2\2\4\377"
-  "\2\2\4\377\2\2\4\377\320\320\321\377\2\2\4\377\0\0\0\0\0\0\0\0\2\2\4"
-  "\377\217\217\221\377\2\2\4\377nnn\377\2\2\4\377\217\217\221\377\2\2\4"
-  "\377\0\0\0\0\0\0\0\0\0\0\0\0\2\2\4\377\2\2\4\377\265\265\266\377\2\2"
-  "\4\377\2\2\4\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\2\4\377\320"
-  "\320\321\377\2\2\4\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\2\2\4\377\320\320\321\377\2\2\4\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\2\2\4\377\2\2\4\377\320\320\321\377\2\2\4\377\2\2\4\377\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\2\2\4\377nnn\377\2\2\4\377\265\265\266\377\2\2"
-  "\4\377\217\217\221\377\2\2\4\377\0\0\0\0\0\0\0\0\2\2\4\377\265\265\266"
-  "\377\2\2\4\377\2\2\4\377\2\2\4\377\265\265\266\377\2\2\4\377\0\0\0\0"
-  "\0\0\0\0\2\2\4\377\265\265\266\377\2\2\4\377\0\0\0\0\2\2\4\377\350\350"
-  "\351\377\2\2\4\377\0\0\0\0\0\0\0\0\2\2\4\377\265\265\266\377\2\2\4\377"
-  "\0\0\0\0\2\2\4\377\350\350\351\377\2\2\4\377\0\0\0\0\0\0\0\0\2\2\4\377"
-  "\265\265\266\377\2\2\4\377\0\0\0\0\2\2\4\377\350\350\351\377\2\2\4\377"
-  "\0\0\0\0\0\0\0\0\2\2\4\377\320\320\321\377\2\2\4\377\2\2\4\377\2\2\4"
-  "\377\350\350\351\377\2\2\4\377\0\0\0\0\0\0\0\0\2\2\4\377nnn\377\350\350"
-  "\351\377\320\320\321\377\350\350\351\377\265\265\266\377\2\2\4\377\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4"
-  "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
-
-
-/* GdkPixbuf RGBA C-Source image dump */
-
-#ifdef __SUNPRO_C
-#pragma align 4 (stock_vchain_broken_24)
-#endif
-#ifdef __GNUC__
-static const guint8 stock_vchain_broken_24[] __attribute__ ((__aligned__ (4))) = 
-#else
-static const guint8 stock_vchain_broken_24[] = 
-#endif
-{ ""
-  /* Pixbuf magic (0x47646b50) */
-  "GdkP"
-  /* length: header (24) + pixel_data (864) */
-  "\0\0\3x"
-  /* pixdata_type (0x1010002) */
-  "\1\1\0\2"
-  /* rowstride (36) */
-  "\0\0\0$"
-  /* width (9) */
-  "\0\0\0\11"
-  /* height (24) */
-  "\0\0\0\30"
-  /* pixel_data: */
-  "\0\0\0\0\0\0\0\0\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\2\2\4\377\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\2\2\4\377nnn\377\320\320\321\377\320\320\321\377"
-  "\265\265\266\377ZZ\\\377\2\2\4\377\0\0\0\0\0\0\0\0\2\2\4\377\232\232"
-  "\230\377\2\2\4\377\2\2\4\377\2\2\4\377\350\350\351\377\2\2\4\377\0\0"
-  "\0\0\0\0\0\0\2\2\4\377\320\320\321\377\2\2\4\377\0\0\0\0\2\2\4\377\320"
-  "\320\321\377\2\2\4\377\0\0\0\0\0\0\0\0\2\2\4\377\320\320\321\377\2\2"
-  "\4\377\0\0\0\0\2\2\4\377\320\320\321\377\2\2\4\377\0\0\0\0\0\0\0\0\2"
-  "\2\4\377\265\265\266\377\2\2\4\377\0\0\0\0\2\2\4\377\320\320\321\377"
-  "\2\2\4\377\0\0\0\0\0\0\0\0\2\2\4\377\232\232\230\377\2\2\4\377\2\2\4"
-  "\377\2\2\4\377\320\320\321\377\2\2\4\377\0\0\0\0\0\0\0\0\2\2\4\377\217"
-  "\217\221\377\2\2\4\377nnn\377\2\2\4\377\217\217\221\377\2\2\4\377\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\2\2\4\377\2\2\4\377\265\265\266\377\2\2\4\377\2"
-  "\2\4\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\2\4\377\320\320\321"
-  "\377\2\2\4\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\2\2\4\377\320\320\321\377\2\2\4\377\0\0\0\0\0\0\0\0\0\0\0"
-  "\0\0\0\0\0\0\0\0\0\2\2\4\377\2\2\4\377\320\320\321\377\2\2\4\377\2\2"
-  "\4\377\0\0\0\0\0\0\0\0\0\0\0\0\2\2\4\377nnn\377\2\2\4\377\265\265\266"
-  "\377\2\2\4\377\217\217\221\377\2\2\4\377\0\0\0\0\0\0\0\0\2\2\4\377\265"
-  "\265\266\377\2\2\4\377\2\2\4\377\2\2\4\377\265\265\266\377\2\2\4\377"
-  "\0\0\0\0\0\0\0\0\2\2\4\377\265\265\266\377\2\2\4\377\0\0\0\0\2\2\4\377"
-  "\350\350\351\377\2\2\4\377\0\0\0\0\0\0\0\0\2\2\4\377\265\265\266\377"
-  "\2\2\4\377\0\0\0\0\2\2\4\377\350\350\351\377\2\2\4\377\0\0\0\0\0\0\0"
-  "\0\2\2\4\377\265\265\266\377\2\2\4\377\0\0\0\0\2\2\4\377\350\350\351"
-  "\377\2\2\4\377\0\0\0\0\0\0\0\0\2\2\4\377\320\320\321\377\2\2\4\377\2"
-  "\2\4\377\2\2\4\377\350\350\351\377\2\2\4\377\0\0\0\0\0\0\0\0\2\2\4\377"
-  "nnn\377\350\350\351\377\320\320\321\377\350\350\351\377\265\265\266\377"
-  "\2\2\4\377\0\0\0\0\0\0\0\0\0\0\0\0\2\2\4\377\2\2\4\377\2\2\4\377\2\2"
-  "\4\377\2\2\4\377\0\0\0\0\0\0\0\0"};
-
-
diff --git a/src/stock.c b/src/stock.c
deleted file mode 100644 (file)
index a733e5c..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  stock.h:  Stock image module header file
- *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-
-#include <config.h>
-
-#include "stock.h"
-
-#include <glib/gi18n.h>
-#include <gtk/gtkiconfactory.h>
-#include <gtk/gtkstock.h>
-#include <gdk-pixbuf/gdk-pixdata.h>
-
-#include "stock-pixmaps/stockpixbufs.h"
-
-
-/*========================================================*/
-/* Private macros and constants.                          */
-/*========================================================*/
-
-/*========================================================*/
-/* Private types.                                         */
-/*========================================================*/
-
-/*===========================================*/
-/* Private globals                           */
-/*===========================================*/
-
-/*===========================================*/
-/* Local function prototypes                 */
-/*===========================================*/
-
-static void add_icons (GtkIconFactory *factory,
-                       const gchar    *stock_id,
-                       const guchar   *inline_24,
-                       const guchar   *inline_16);
-
-static void add_button_icon (GtkIconFactory *factory,
-                             const gchar    *stock_id,
-                             const guchar   *inline_24);
-
-\f
-/****************************************************************************/
-/* Initialize our stock icons.                                              */
-/****************************************************************************/
-void
-gl_stock_init (void)
-{
-       GtkIconFactory *factory;
-
-       static GtkStockItem items[] = {
-               { GL_STOCK_ARROW,         N_("_Select Mode"),          0, 0, NULL },
-               { GL_STOCK_TEXT,          N_("_Text"),                 0, 0, NULL },
-               { GL_STOCK_LINE,          N_("_Line"),                 0, 0, NULL },
-               { GL_STOCK_BOX,           N_("_Box"),                  0, 0, NULL },
-               { GL_STOCK_ELLIPSE,       N_("_Ellipse"),              0, 0, NULL },
-               { GL_STOCK_IMAGE,         N_("_Image"),                0, 0, NULL },
-               { GL_STOCK_BARCODE,       N_("Bar_code"),              0, 0, NULL },
-               { GL_STOCK_MERGE,         N_("_Merge Properties"),     0, 0, NULL },
-               { GL_STOCK_PROPERTIES,    N_("Object _Properties"),    0, 0, NULL },
-               { GL_STOCK_ORDER_TOP,     N_("Bring to _Front"),       0, 0, NULL },
-               { GL_STOCK_ORDER_BOTTOM,  N_("Send to _Back"),         0, 0, NULL },
-               { GL_STOCK_ROTATE_LEFT,   N_("Rotate _Left"),          0, 0, NULL },
-               { GL_STOCK_ROTATE_RIGHT,  N_("Rotate _Right"),         0, 0, NULL },
-               { GL_STOCK_FLIP_HORIZ,    N_("Flip _Horizontally"),    0, 0, NULL },
-               { GL_STOCK_FLIP_VERT,     N_("Flip _Vertically"),      0, 0, NULL },
-               { GL_STOCK_ALIGN_LEFT,    N_("_Lefts"),                0, 0, NULL },
-               { GL_STOCK_ALIGN_RIGHT,   N_("_Rights"),               0, 0, NULL },
-               { GL_STOCK_ALIGN_HCENTER, N_("_Centers"),              0, 0, NULL },
-               { GL_STOCK_ALIGN_TOP,     N_("_Tops"),                 0, 0, NULL },
-               { GL_STOCK_ALIGN_BOTTOM,  N_("Bottoms"),               0, 0, NULL },
-               { GL_STOCK_ALIGN_VCENTER, N_("Centers"),               0, 0, NULL },
-               { GL_STOCK_CENTER_HORIZ,  N_("Label Ce_nter"),         0, 0, NULL },
-               { GL_STOCK_CENTER_VERT,   N_("Label Ce_nter"),         0, 0, NULL },
-               { GL_STOCK_BUCKET_FILL,   N_("Fill color"),            0, 0, NULL },
-               { GL_STOCK_PENCIL,        N_("Line color"),            0, 0, NULL },
-               { GL_STOCK_HCHAIN,        N_("Linked"),                0, 0, NULL },
-               { GL_STOCK_HCHAIN_BROKEN, N_("Not Linked"),            0, 0, NULL },
-               { GL_STOCK_VCHAIN,        N_("Linked"),                0, 0, NULL },
-               { GL_STOCK_VCHAIN_BROKEN, N_("Not Linked"),            0, 0, NULL },
-       };
-
-       gtk_stock_add (items, G_N_ELEMENTS (items));
-
-       factory = gtk_icon_factory_new ();
-       gtk_icon_factory_add_default (factory);
-
-       add_icons (factory, GL_STOCK_ARROW,         stock_arrow_24,   stock_arrow_16);
-       add_icons (factory, GL_STOCK_TEXT,          stock_text_24,    stock_text_16);
-       add_icons (factory, GL_STOCK_LINE,          stock_line_24,    stock_line_16);
-       add_icons (factory, GL_STOCK_BOX,           stock_box_24,     stock_box_16);
-       add_icons (factory, GL_STOCK_ELLIPSE,       stock_ellipse_24, stock_ellipse_16);
-       add_icons (factory, GL_STOCK_IMAGE,         stock_image_24,   stock_image_16);
-       add_icons (factory, GL_STOCK_BARCODE,       stock_barcode_24, stock_barcode_16);
-       add_icons (factory, GL_STOCK_MERGE,         stock_merge_24,   stock_merge_16);
-
-       add_icons (factory, GL_STOCK_PROPERTIES,
-                  stock_properties_24,
-                  stock_properties_16);
-
-       add_icons (factory, GL_STOCK_ORDER_TOP,     NULL, stock_order_top_16);
-       add_icons (factory, GL_STOCK_ORDER_BOTTOM,  NULL, stock_order_bottom_16);
-       add_icons (factory, GL_STOCK_ROTATE_LEFT,   NULL, stock_rotate_left_16);
-       add_icons (factory, GL_STOCK_ROTATE_RIGHT,  NULL, stock_rotate_right_16);
-       add_icons (factory, GL_STOCK_FLIP_HORIZ,    NULL, stock_flip_horiz_16);
-       add_icons (factory, GL_STOCK_FLIP_VERT,     NULL, stock_flip_vert_16);
-       add_icons (factory, GL_STOCK_ALIGN_LEFT,    NULL, stock_align_left_16);
-       add_icons (factory, GL_STOCK_ALIGN_RIGHT,   NULL, stock_align_right_16);
-       add_icons (factory, GL_STOCK_ALIGN_HCENTER, NULL, stock_align_hcenter_16);
-       add_icons (factory, GL_STOCK_ALIGN_TOP,     NULL, stock_align_top_16);
-       add_icons (factory, GL_STOCK_ALIGN_BOTTOM,  NULL, stock_align_bottom_16);
-       add_icons (factory, GL_STOCK_ALIGN_VCENTER, NULL, stock_align_vcenter_16);
-       add_icons (factory, GL_STOCK_CENTER_HORIZ,  NULL, stock_center_horiz_16);
-       add_icons (factory, GL_STOCK_CENTER_VERT,   NULL, stock_center_vert_16);
-
-       add_icons (factory, GL_STOCK_BUCKET_FILL,   stock_bucket_fill_24, stock_bucket_fill_16);
-       add_icons (factory, GL_STOCK_PENCIL,        stock_pencil_24,      stock_pencil_16);
-
-       add_button_icon (factory, GL_STOCK_HCHAIN,        stock_hchain_24);
-       add_button_icon (factory, GL_STOCK_HCHAIN_BROKEN, stock_hchain_broken_24);
-       add_button_icon (factory, GL_STOCK_VCHAIN,        stock_vchain_24);
-       add_button_icon (factory, GL_STOCK_VCHAIN_BROKEN, stock_vchain_broken_24);
-
-       g_object_unref (G_OBJECT(factory));
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Unpack and associate given icons with stock_id.                */
-/*--------------------------------------------------------------------------*/
-static void
-add_icons (GtkIconFactory *factory,
-           const gchar    *stock_id,
-           const guchar   *inline_24,
-           const guchar   *inline_16)
-{
-       GdkPixbuf      *pixbuf;
-       GtkIconSet     *icon_set;
-       GtkIconSource  *icon_source;
-
-       if ( inline_24 != NULL ) {
-               /* Create icon set with default image */
-               pixbuf = gdk_pixbuf_new_from_inline (-1, inline_24, FALSE, NULL);
-               icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
-               g_object_unref (G_OBJECT(pixbuf));
-       } else {
-               /* Create an empty icon set */
-               icon_set = gtk_icon_set_new ();
-       }
-
-       if ( inline_16 != NULL ) {
-               /* Add 16x16 icon for menus to icon set */
-               icon_source = gtk_icon_source_new ();
-               pixbuf = gdk_pixbuf_new_from_inline (-1, inline_16,
-                                                    FALSE, NULL);
-               gtk_icon_source_set_pixbuf (icon_source, pixbuf);
-               g_object_unref (G_OBJECT(pixbuf));
-               gtk_icon_source_set_size_wildcarded (icon_source, FALSE);
-               gtk_icon_source_set_size (icon_source, GTK_ICON_SIZE_MENU);
-               gtk_icon_set_add_source (icon_set, icon_source);
-               gtk_icon_source_free (icon_source);
-       }
-
-       /* Now associate icon set with stock id */
-       gtk_icon_factory_add (factory, stock_id, icon_set);
-       gtk_icon_set_unref (icon_set);
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Unpack and associate given button icon with stock_id.          */
-/*--------------------------------------------------------------------------*/
-static void
-add_button_icon (GtkIconFactory *factory,
-                 const gchar    *stock_id,
-                 const guchar   *inline_24)
-{
-       GtkIconSet     *icon_set;
-       GdkPixbuf      *pixbuf;
-       GtkIconSource  *icon_source;
-
-       icon_set = gtk_icon_set_new ();
-
-       icon_source = gtk_icon_source_new ();
-       pixbuf = gdk_pixbuf_new_from_inline (-1, inline_24, FALSE, NULL);
-       gtk_icon_source_set_pixbuf (icon_source, pixbuf);
-       g_object_unref (G_OBJECT(pixbuf));
-       gtk_icon_source_set_size_wildcarded (icon_source, FALSE);
-       gtk_icon_source_set_size (icon_source, GTK_ICON_SIZE_BUTTON);
-       gtk_icon_set_add_source (icon_set, icon_source);
-       gtk_icon_source_free (icon_source);
-
-       /* Now associate icon set with stock id */
-       gtk_icon_factory_add (factory, stock_id, icon_set);
-       gtk_icon_set_unref (icon_set);
-}
-
-
-
-
-
-
-
diff --git a/src/stock.h b/src/stock.h
deleted file mode 100644 (file)
index 14fb907..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  stock.h:  Stock image module header file
- *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-
-#ifndef __STOCK_H__
-#define __STOCK_H__
-
-#include <glib/gmacros.h>
-
-G_BEGIN_DECLS
-
-/* Stock names */
-
-#define GL_STOCK_ARROW         "gl_stock_arrow"
-#define GL_STOCK_TEXT          "gl_stock_text"
-#define GL_STOCK_LINE          "gl_stock_line"
-#define GL_STOCK_BOX           "gl_stock_box"
-#define GL_STOCK_ELLIPSE       "gl_stock_ellipse"
-#define GL_STOCK_IMAGE         "gl_stock_image"
-#define GL_STOCK_BARCODE       "gl_stock_barcode"
-#define GL_STOCK_MERGE         "gl_stock_merge"
-#define GL_STOCK_PROPERTIES    "gl_stock_properties"
-#define GL_STOCK_ORDER_TOP     "gl_stock_order_top"
-#define GL_STOCK_ORDER_BOTTOM  "gl_stock_order_bottom"
-#define GL_STOCK_ROTATE_LEFT   "gl_stock_rotate_left"
-#define GL_STOCK_ROTATE_RIGHT  "gl_stock_rotate_right"
-#define GL_STOCK_FLIP_HORIZ    "gl_stock_flip_horiz"
-#define GL_STOCK_FLIP_VERT     "gl_stock_flip_vert"
-#define GL_STOCK_ALIGN_LEFT    "gl_stock_align_left"
-#define GL_STOCK_ALIGN_RIGHT   "gl_stock_align_right"
-#define GL_STOCK_ALIGN_HCENTER "gl_stock_align_hcenter"
-#define GL_STOCK_ALIGN_TOP     "gl_stock_align_top"
-#define GL_STOCK_ALIGN_BOTTOM  "gl_stock_align_bottom"
-#define GL_STOCK_ALIGN_VCENTER "gl_stock_align_vcenter"
-#define GL_STOCK_CENTER_HORIZ  "gl_stock_center_horiz"
-#define GL_STOCK_CENTER_VERT   "gl_stock_center_vert"
-#define GL_STOCK_BUCKET_FILL   "gl_stock_bucket_fill"
-#define GL_STOCK_PENCIL        "gl_stock_pencil"
-#define GL_STOCK_HCHAIN        "gl_stock_hchain"
-#define GL_STOCK_HCHAIN_BROKEN "gl_stock_hchain_broken"
-#define GL_STOCK_VCHAIN        "gl_stock_vchain"
-#define GL_STOCK_VCHAIN_BROKEN "gl_stock_vchain_broken"
-
-void gl_stock_init (void);
-
-G_END_DECLS
-
-#endif
diff --git a/src/str-util.c b/src/str-util.c
new file mode 100644 (file)
index 0000000..f8c6d70
--- /dev/null
@@ -0,0 +1,105 @@
+/*
+ *  str-util.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "str-util.h"
+
+#include <string.h>
+#include <math.h>
+
+
+/****************************************************************************/
+/* Utilities to deal with PangoAlignment types.                             */
+/****************************************************************************/
+const gchar *
+gl_str_util_align_to_string (PangoAlignment align)
+{
+       switch (align) {
+       case PANGO_ALIGN_LEFT:
+               return "Left";
+       case PANGO_ALIGN_CENTER:
+               return "Center";
+       case PANGO_ALIGN_RIGHT:
+               return "Right";
+       default:
+               return "?";
+       }
+}
+
+
+PangoAlignment
+gl_str_util_string_to_align (const gchar *string)
+{
+
+       if (g_ascii_strcasecmp (string, "Left") == 0) {
+               return PANGO_ALIGN_LEFT;
+       } else if (g_ascii_strcasecmp (string, "Center") == 0) {
+               return PANGO_ALIGN_CENTER;
+       } else if (g_ascii_strcasecmp (string, "Right") == 0) {
+               return PANGO_ALIGN_RIGHT;
+       } else {
+               return PANGO_ALIGN_LEFT;
+       }
+
+}
+
+
+/****************************************************************************/
+/* Utilities to deal with PangoWeight types                                 */
+/****************************************************************************/
+const gchar *
+gl_str_util_weight_to_string (PangoWeight weight)
+{
+       switch (weight) {
+       case PANGO_WEIGHT_NORMAL:
+               return "Regular";
+       case PANGO_WEIGHT_BOLD:
+               return "Bold";
+       default:
+               return "?";
+       }
+}
+
+
+PangoWeight
+gl_str_util_string_to_weight (const gchar *string)
+{
+
+       if (g_ascii_strcasecmp (string, "Regular") == 0) {
+               return PANGO_WEIGHT_NORMAL;
+       } else if (g_ascii_strcasecmp (string, "Bold") == 0) {
+               return PANGO_WEIGHT_BOLD;
+       } else {
+               return PANGO_WEIGHT_NORMAL;
+       }
+
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/str-util.h b/src/str-util.h
new file mode 100644 (file)
index 0000000..76dda77
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ *  str-util.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __STR_UTIL_H__
+#define __STR_UTIL_H__
+
+#include <glib.h>
+#include <pango/pango.h>
+
+G_BEGIN_DECLS
+
+const gchar        *gl_str_util_align_to_string       (PangoAlignment     align);
+PangoAlignment      gl_str_util_string_to_align       (const gchar       *string);
+
+const gchar        *gl_str_util_weight_to_string      (PangoWeight        weight);
+PangoWeight         gl_str_util_string_to_weight      (const gchar       *string);
+
+G_END_DECLS
+
+#endif /* __STR_UTIL_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/svg-cache.c b/src/svg-cache.c
new file mode 100644 (file)
index 0000000..60d9927
--- /dev/null
@@ -0,0 +1,313 @@
+/*
+ *  svg-cache.c
+ *  Copyright (C) 2003-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include <string.h>
+
+#include "svg-cache.h"
+
+#include "debug.h"
+
+
+/*========================================================*/
+/* Private types.                                         */
+/*========================================================*/
+
+typedef struct {
+        gchar      *key;
+        guint       references;
+        RsvgHandle *svg_handle;
+        gchar      *contents;
+} CacheRecord;
+
+
+/*========================================================*/
+/* Private globals.                                       */
+/*========================================================*/
+
+
+/*========================================================*/
+/* Private function prototypes.                           */
+/*========================================================*/
+
+static void  record_destroy   (gpointer val);
+
+static void  add_name_to_list (gpointer key,
+                               gpointer val,
+                               gpointer user_data);
+
+
+/*---------------------------------------------------------------------------*/
+/* PRIVATE.  Destroy cache record.                                           */
+/*---------------------------------------------------------------------------*/
+static void
+record_destroy (gpointer val)
+{
+        CacheRecord *record = (CacheRecord *)val;
+
+        g_return_if_fail (record);
+
+        g_free (record->key);
+        g_object_unref (record->svg_handle);
+        g_free (record->contents);
+        g_free (record);
+}
+
+
+/*****************************************************************************/
+/* Create a new hash table to keep track of cached svgs.                     */
+/*****************************************************************************/
+GHashTable *
+gl_svg_cache_new (void)
+{
+        GHashTable *svg_cache;
+
+        gl_debug (DEBUG_SVG_CACHE, "START");
+
+        svg_cache = g_hash_table_new_full (g_str_hash,
+                                              g_str_equal,
+                                              NULL,
+                                              record_destroy);
+
+        gl_debug (DEBUG_SVG_CACHE, "END svg_cache=%p", svg_cache);
+
+        return svg_cache;
+}
+
+
+/*****************************************************************************/
+/* Free up previously allocated hash table and its contents.                 */
+/*****************************************************************************/
+void
+gl_svg_cache_free (GHashTable *svg_cache)
+{
+        gl_debug (DEBUG_SVG_CACHE, "START");
+
+        g_hash_table_destroy (svg_cache);
+
+        gl_debug (DEBUG_SVG_CACHE, "END");
+}
+
+
+/*****************************************************************************/
+/* Add svg to cache explicitly.                                              */
+/*****************************************************************************/
+void
+gl_svg_cache_add_svg (GHashTable  *svg_cache,
+                      gchar       *name,
+                      const gchar *contents)
+{
+        CacheRecord *test_record, *record;
+
+        gl_debug (DEBUG_SVG_CACHE, "START");
+
+        test_record = g_hash_table_lookup (svg_cache, name);
+        if (test_record != NULL) {
+                /* svg is already in the cache. */
+                gl_debug (DEBUG_SVG_CACHE, "END already in cache");
+                return;
+        }
+
+        record = g_new0 (CacheRecord, 1);
+        record->key        = g_strdup (name);
+        record->references = 0; /* No references yet. */
+        record->svg_handle = rsvg_handle_new_from_data ((guchar *)contents, strlen(contents), NULL);
+        record->contents   = g_strdup (contents);
+
+        g_hash_table_insert (svg_cache, record->key, record);
+
+        gl_debug (DEBUG_SVG_CACHE, "END");
+}
+
+
+/*****************************************************************************/
+/* Get svg handle adding a reference.  If not in cache, read it and add.     */
+/*****************************************************************************/
+RsvgHandle *
+gl_svg_cache_get_handle (GHashTable *svg_cache,
+                         gchar      *name)
+{
+        CacheRecord *record;
+        RsvgHandle  *svg_handle = NULL;
+        gchar       *buffer;
+        gsize        length;
+        GFile       *file;
+
+        gl_debug (DEBUG_SVG_CACHE, "START svg_cache=%p", svg_cache);
+
+        record = g_hash_table_lookup (svg_cache, name);
+
+        if (record != NULL)
+        {
+                record->references++;
+                gl_debug (DEBUG_SVG_CACHE, "references=%d", record->references);
+                gl_debug (DEBUG_SVG_CACHE, "END cached");
+                return record->svg_handle;
+        }
+
+
+        file = g_file_new_for_path (name);
+        if ( g_file_load_contents (file, NULL, &buffer, &length, NULL, NULL) )
+        {
+                svg_handle = rsvg_handle_new_from_data ((guchar *)buffer, length, NULL);
+                if ( svg_handle != NULL) {
+                        record = g_new0 (CacheRecord, 1);
+                        record->key        = g_strdup (name);
+                        record->references = 1;
+                        record->svg_handle = svg_handle;
+                        record->contents   = buffer;
+
+                        g_hash_table_insert (svg_cache, record->key, record);
+                }
+        }
+        g_object_unref (file);
+
+        gl_debug (DEBUG_SVG_CACHE, "END");
+
+        return svg_handle;
+}
+
+
+/*****************************************************************************/
+/* Get contents.   Do not add reference.                                     */
+/*****************************************************************************/
+gchar *
+gl_svg_cache_get_contents (GHashTable *svg_cache,
+                           gchar      *name)
+{
+        CacheRecord *record;
+
+        gl_debug (DEBUG_SVG_CACHE, "START svg_cache=%p", svg_cache);
+
+        record = g_hash_table_lookup (svg_cache, name);
+
+        if (record != NULL)
+        {
+                gl_debug (DEBUG_SVG_CACHE, "references=%d", record->references);
+                gl_debug (DEBUG_SVG_CACHE, "END cached");
+                return g_strdup (record->contents);
+        }
+
+        gl_debug (DEBUG_SVG_CACHE, "END");
+
+        return NULL;
+}
+
+
+/*****************************************************************************/
+/* Remove svg, but only if no references left.                               */
+/*****************************************************************************/
+void
+gl_svg_cache_remove_svg (GHashTable *svg_cache,
+                         gchar      *name)
+{
+        CacheRecord *record;
+
+        if (name == NULL) return;
+
+        gl_debug (DEBUG_SVG_CACHE, "START");
+
+        record = g_hash_table_lookup (svg_cache, name);
+        if (record == NULL) {
+                gl_debug (DEBUG_SVG_CACHE, "END not in cache");
+                return;
+        }
+
+        record->references--;
+
+        if ( record->references == 0 ) {
+                g_hash_table_remove (svg_cache, name);
+        }
+
+        gl_debug (DEBUG_SVG_CACHE, "END");
+}
+
+
+/*---------------------------------------------------------------------------*/
+/* PRIVATE.  Add a name to a GList while iterating over cache.               */
+/*---------------------------------------------------------------------------*/
+static void
+add_name_to_list (gpointer key,
+                  gpointer val,
+                  gpointer user_data)
+{
+        gchar     *name       = (gchar *)key;
+        GList     **name_list = (GList **)user_data;
+
+        gl_debug (DEBUG_SVG_CACHE, "START");
+
+        gl_debug (DEBUG_SVG_CACHE, "adding name=%s", name);
+
+        *name_list = g_list_append (*name_list, g_strdup(name));
+
+        gl_debug (DEBUG_SVG_CACHE, "END");
+}
+
+
+/*****************************************************************************/
+/* Return a list of names for all svgs in the cache.                         */
+/*****************************************************************************/
+GList *
+gl_svg_cache_get_name_list (GHashTable *svg_cache)
+{
+        GList *name_list = NULL;
+
+        gl_debug (DEBUG_SVG_CACHE, "START");
+
+        g_hash_table_foreach (svg_cache, add_name_to_list, &name_list);
+
+        gl_debug (DEBUG_SVG_CACHE, "END");
+
+        return name_list;
+}
+
+
+/*****************************************************************************/
+/* Free up a list of svg names.                                              */
+/*****************************************************************************/
+void
+gl_svg_cache_free_name_list (GList *name_list)
+{
+        GList *p_name;
+
+        gl_debug (DEBUG_SVG_CACHE, "START");
+
+        for (p_name = name_list; p_name != NULL; p_name = p_name->next) {
+                g_free (p_name->data);
+                p_name->data = NULL;
+        }
+
+        g_list_free (name_list);
+
+        gl_debug (DEBUG_SVG_CACHE, "END");
+}
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/svg-cache.h b/src/svg-cache.h
new file mode 100644 (file)
index 0000000..b2f406f
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ *  svg-cache.h
+ *  Copyright (C) 2010  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __SVG_CACHE_H__
+#define __SVG_CACHE_H__
+
+#include <glib.h>
+#include <librsvg/rsvg.h>
+
+G_BEGIN_DECLS
+
+GHashTable *gl_svg_cache_new            (void);
+
+void        gl_svg_cache_free           (GHashTable  *svg_cache);
+
+void        gl_svg_cache_add_svg        (GHashTable  *svg_cache,
+                                         gchar       *name,
+                                         const gchar *contents);
+
+RsvgHandle *gl_svg_cache_get_handle     (GHashTable  *svg_cache,
+                                         gchar       *name);
+
+gchar      *gl_svg_cache_get_contents   (GHashTable  *svg_cache,
+                                         gchar       *name);
+
+void        gl_svg_cache_remove_svg     (GHashTable  *svg_cache,
+                                         gchar       *name);
+
+GList      *gl_svg_cache_get_name_list  (GHashTable  *svg_cache);
+
+void        gl_svg_cache_free_name_list (GList       *name_list);
+
+G_END_DECLS
+
+#endif /*__SVG_CACHE_H__ */
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 60ffe576f71fd8322b64e36c7eb45c2981d1f031..2719958eca2fbfd8890e11aee58dd701b1010256 100644 (file)
@@ -1,59 +1,47 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  template-designer.c:  Template designer module
+ *  template-designer.c
+ *  Copyright (C) 2003-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "template-designer.h"
 
 #include <glib/gi18n.h>
-#include <glade/glade-xml.h>
-#include <gtk/gtktogglebutton.h>
-#include <gtk/gtkcombobox.h>
-#include <gtk/gtkspinbutton.h>
-#include <gtk/gtklabel.h>
+#include <gtk/gtk.h>
 #include <string.h>
 #include <math.h>
 
+#include <libglabels.h>
 #include "prefs.h"
-#include <libglabels/db.h>
-#include "wdgt-mini-preview.h"
+#include "mini-preview.h"
 #include "mini-preview-pixbuf-cache.h"
-#include "print-op.h"
-#include "util.h"
+#include "print-op-dialog.h"
+#include "combo-util.h"
+#include "builder-util.h"
+#include "units-util.h"
 
 #include "debug.h"
 
+
 /*========================================================*/
 /* Private macros and constants.                          */
 /*========================================================*/
-#define ICON_PIXMAP        (GLABELS_ICON_DIR "glabels.png")
-
-#define EX_RECT_IMAGE      (GLABELS_PIXMAP_DIR "ex-rect-size.png")
-#define EX_ROUND_IMAGE     (GLABELS_PIXMAP_DIR "ex-round-size.png")
-#define EX_CD_IMAGE        (GLABELS_PIXMAP_DIR "ex-cd-size.png")
-#define EX_NLAYOUTS_IMAGE1 (GLABELS_PIXMAP_DIR "ex-1layout.png")
-#define EX_NLAYOUTS_IMAGE2 (GLABELS_PIXMAP_DIR "ex-2layouts.png")
-
 #define DEFAULT_MARGIN 9.0
 
 #define DEFAULT_RECT_W      252.0
 #define DEFAULT_RECT_R        0.0
 #define DEFAULT_RECT_WASTE    0.0 /* Should never exceed 1/2 the distance between items. */
 
+#define DEFAULT_ELLIPSE_W      252.0
+#define DEFAULT_ELLIPSE_H      144.0
+#define DEFAULT_ELLIPSE_WASTE    0.0 /* Should never exceed 1/2 the distance between items. */
+
 #define DEFAULT_ROUND_R      72.0
 #define DEFAULT_ROUND_WASTE   0.0 /* Should never exceed 1/2 the distance between items. */
 
 #define DELTA 0.01
 #define MAX_PAGE_DIM_POINTS 5000.0
 
+
 /*========================================================*/
 /* Private types.                                         */
 /*========================================================*/
 
 struct _glTemplateDesignerPrivate
 {
+        gboolean         edit_flag;
+        gchar           *edit_brand;
+        gchar           *edit_part;
+
+        GtkBuilder      *builder;
+
        /* Assistant pages */
        GtkWidget       *start_page;
        GtkWidget       *name_page;
        GtkWidget       *pg_size_page;
        GtkWidget       *shape_page;
        GtkWidget       *rect_size_page;
+       GtkWidget       *ellipse_size_page;
        GtkWidget       *round_size_page;
        GtkWidget       *cd_size_page;
        GtkWidget       *nlayouts_page;
@@ -97,6 +97,7 @@ struct _glTemplateDesignerPrivate
        GtkWidget       *description_entry;
 
        /* Page size page controls */
+       GtkWidget       *pg_size_combo_hbox;
        GtkWidget       *pg_size_combo;
        GtkWidget       *pg_w_spin;
        GtkWidget       *pg_h_spin;
@@ -105,6 +106,7 @@ struct _glTemplateDesignerPrivate
 
        /* Shape page controls */
        GtkWidget       *shape_rect_radio;
+       GtkWidget       *shape_ellipse_radio;
        GtkWidget       *shape_round_radio;
        GtkWidget       *shape_cd_radio;
 
@@ -123,6 +125,17 @@ struct _glTemplateDesignerPrivate
        GtkWidget       *rect_y_waste_units_label;
        GtkWidget       *rect_margin_units_label;
 
+       /* Label size (elliptical) page controls */
+       GtkWidget       *ellipse_image;
+       GtkWidget       *ellipse_w_spin;
+       GtkWidget       *ellipse_h_spin;
+       GtkWidget       *ellipse_waste_spin;
+       GtkWidget       *ellipse_margin_spin;
+       GtkWidget       *ellipse_w_units_label;
+       GtkWidget       *ellipse_h_units_label;
+       GtkWidget       *ellipse_waste_units_label;
+       GtkWidget       *ellipse_margin_units_label;
+
        /* Label size (round) page controls */
        GtkWidget       *round_image;
        GtkWidget       *round_r_spin;
@@ -171,6 +184,7 @@ struct _glTemplateDesignerPrivate
        GtkWidget       *layout_y0_units_label;
        GtkWidget       *layout_dx_units_label;
        GtkWidget       *layout_dy_units_label;
+       GtkWidget       *mini_preview_vbox;
        GtkWidget       *layout_mini_preview;
        GtkWidget       *layout_test_button;
 
@@ -191,6 +205,7 @@ enum {
         PG_SIZE_PAGE_NUM,
         SHAPE_PAGE_NUM,
         RECT_SIZE_PAGE_NUM,
+        ELLIPSE_SIZE_PAGE_NUM,
         ROUND_SIZE_PAGE_NUM,
         CD_SIZE_PAGE_NUM,
         NLAYOUTS_PAGE_NUM,
@@ -198,6 +213,7 @@ enum {
         FINISH_PAGE_NUM
 };
 
+
 /*========================================================*/
 /* Private globals.                                       */
 /*========================================================*/
@@ -225,6 +241,9 @@ static void     construct_shape_page              (glTemplateDesigner      *dial
 static void     construct_rect_size_page          (glTemplateDesigner      *dialog,
                                                   GdkPixbuf               *logo);
 
+static void     construct_ellipse_size_page       (glTemplateDesigner      *dialog,
+                                                  GdkPixbuf               *logo);
+
 static void     construct_round_size_page         (glTemplateDesigner      *dialog,
                                                   GdkPixbuf               *logo);
 
@@ -255,6 +274,8 @@ static void     pg_size_page_changed_cb           (glTemplateDesigner      *dial
 
 static void     rect_size_page_prepare_cb         (glTemplateDesigner      *dialog);
 
+static void     ellipse_size_page_prepare_cb      (glTemplateDesigner      *dialog);
+
 static void     round_size_page_prepare_cb        (glTemplateDesigner      *dialog);
 
 static void     cd_size_page_prepare_cb           (glTemplateDesigner      *dialog);
@@ -267,36 +288,72 @@ static void     print_test_cb                     (glTemplateDesigner      *dial
 
 static lglTemplate *build_template                (glTemplateDesigner      *dialog);
 
-\f
+
 /*****************************************************************************/
 /* Boilerplate object stuff.                                                 */
 /*****************************************************************************/
-G_DEFINE_TYPE (glTemplateDesigner, gl_template_designer, GTK_TYPE_ASSISTANT);
+G_DEFINE_TYPE (glTemplateDesigner, gl_template_designer, GTK_TYPE_ASSISTANT)
+
 
 static void
 gl_template_designer_class_init (glTemplateDesignerClass *class)
 {
        GObjectClass *object_class = G_OBJECT_CLASS (class);
 
-       gl_debug (DEBUG_TEMPLATE, "");
-       
        gl_template_designer_parent_class = g_type_class_peek_parent (class);
 
        object_class->finalize = gl_template_designer_finalize;         
 }
 
+
 static void
 gl_template_designer_init (glTemplateDesigner *dialog)
 {
+        gchar             *builder_filename;
+        static gchar      *object_ids[] = { "start_page",
+                                            "name_page",
+                                            "pg_size_page",
+                                            "shape_page",
+                                            "rect_size_page",
+                                            "ellipse_size_page",
+                                            "round_size_page",
+                                            "cd_size_page",
+                                            "nlayouts_page",
+                                            "layout_page",
+                                            "finish_page",
+                                            "adjustment1",  "adjustment2",  "adjustment3",
+                                            "adjustment4",  "adjustment5",  "adjustment6",
+                                            "adjustment7",  "adjustment8",  "adjustment9",
+                                            "adjustment10", "adjustment11", "adjustment12",
+                                            "adjustment13", "adjustment14", "adjustment15",
+                                            "adjustment16", "adjustment17", "adjustment18",
+                                            "adjustment19", "adjustment20", "adjustment21",
+                                            "adjustment22", "adjustment23", "adjustment24",
+                                            "adjustment25", "adjustment26", "adjustment27",
+                                            "adjustment28", "adjustment29", "adjustment30",
+                                            NULL };
+        GError            *error = NULL;
+
        gl_debug (DEBUG_TEMPLATE, "START");
 
        dialog->priv = g_new0 (glTemplateDesignerPrivate, 1);
 
+        dialog->priv->builder = gtk_builder_new ();
+        builder_filename = g_build_filename (GLABELS_DATA_DIR, "ui", "template-designer.ui", NULL);
+        gtk_builder_add_objects_from_file (dialog->priv->builder, builder_filename, object_ids, &error);
+        g_free (builder_filename);
+       if (error) {
+               g_critical ("%s\n\ngLabels may not be installed correctly!", error->message);
+                g_error_free (error);
+               return;
+       }
+
        gl_debug (DEBUG_TEMPLATE, "END");
 
         return;
 }
 
+
 static void 
 gl_template_designer_finalize (GObject *object)
 {
@@ -308,6 +365,13 @@ gl_template_designer_finalize (GObject *object)
        g_return_if_fail (GL_IS_TEMPLATE_DESIGNER (dialog));
        g_return_if_fail (dialog->priv != NULL);
 
+        g_free (dialog->priv->edit_brand);
+        g_free (dialog->priv->edit_part);
+
+        if (dialog->priv->builder)
+        {
+                g_object_unref (dialog->priv->builder);
+        }
        g_free (dialog->priv);
 
        G_OBJECT_CLASS (gl_template_designer_parent_class)->finalize (object);
@@ -315,6 +379,7 @@ gl_template_designer_finalize (GObject *object)
        gl_debug (DEBUG_TEMPLATE, "END");
 }
 
+
 /*****************************************************************************/
 /* NEW preferences dialog.                                                   */
 /*****************************************************************************/
@@ -338,33 +403,42 @@ gl_template_designer_new (GtkWindow *parent)
        return dialog;
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Construct composite widget.                                     */
 /*---------------------------------------------------------------------------*/
 static void
 gl_template_designer_construct (glTemplateDesigner *dialog)
 {
+        lglUnits    units;
+        gchar      *logo_filename;
        GdkPixbuf  *logo;
 
+       gl_debug (DEBUG_TEMPLATE, "START");
+
        g_return_if_fail (dialog && GL_IS_TEMPLATE_DESIGNER (dialog));
        g_return_if_fail (dialog->priv != NULL);
 
        /* Initialize units stuff from prefs */
-       dialog->priv->units_string    = gl_prefs_get_units_string ();
-        dialog->priv->units_per_point = gl_prefs_get_units_per_point ();
-        dialog->priv->climb_rate      = gl_prefs_get_units_step_size ();
-        dialog->priv->digits          = gl_prefs_get_units_precision ();
+        units = gl_prefs_model_get_units (gl_prefs);
+       dialog->priv->units_string    = lgl_units_get_name (units);
+        dialog->priv->units_per_point = lgl_units_get_units_per_point (units);
+        dialog->priv->climb_rate      = gl_units_util_get_step_size (units);
+        dialog->priv->digits          = gl_units_util_get_precision (units);
 
-       gtk_window_set_title (GTK_WINDOW(dialog), _("gLabels Template Designer"));
+       gtk_window_set_title (GTK_WINDOW(dialog), _("New gLabels Template"));
 
-       logo = gdk_pixbuf_new_from_file (ICON_PIXMAP, NULL);
+        logo_filename = g_build_filename (GLABELS_DATA_DIR, "pixmaps", "template-designer.png", NULL);
+       logo = gdk_pixbuf_new_from_file (logo_filename, NULL);
+        g_free (logo_filename);
 
-        /* Costruct and append pages (must be same order as PAGE_NUM enums. */
+        /* Construct and append pages (must be same order as PAGE_NUM enums. */
        construct_start_page (dialog, logo);
        construct_name_page (dialog, logo);
        construct_pg_size_page (dialog, logo);
        construct_shape_page (dialog, logo);
        construct_rect_size_page (dialog, logo);
+       construct_ellipse_size_page (dialog, logo);
        construct_round_size_page (dialog, logo);
        construct_cd_size_page (dialog, logo);
        construct_nlayouts_page (dialog, logo);
@@ -387,8 +461,11 @@ gl_template_designer_construct (glTemplateDesigner *dialog)
                           G_CALLBACK(prepare_cb), NULL);
 
         gtk_widget_show_all (GTK_WIDGET(dialog));   
+
+       gl_debug (DEBUG_TEMPLATE, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Construct start page.                                          */
 /*--------------------------------------------------------------------------*/
@@ -396,20 +473,11 @@ static void
 construct_start_page (glTemplateDesigner      *dialog,
                      GdkPixbuf               *logo)
 {
-       GladeXML        *gui;
-
-       gui = glade_xml_new (GLABELS_GLADE_DIR "template-designer.glade",
-                             "start_page", NULL);
-       if (!gui)
-        {
-                g_critical ("Could not open template-designer.glade. gLabels may not be installed correctly!");
-                return;
-        }
-
-       dialog->priv->start_page = glade_xml_get_widget (gui, "start_page");
-
-        g_object_unref (gui);
+       gl_debug (DEBUG_TEMPLATE, "START");
 
+        gl_builder_util_get_widgets (dialog->priv->builder,
+                                     "start_page", &dialog->priv->start_page,
+                                     NULL);
 
         gtk_assistant_append_page (GTK_ASSISTANT (dialog),
                                    dialog->priv->start_page);
@@ -426,8 +494,11 @@ construct_start_page (glTemplateDesigner      *dialog,
         gtk_assistant_set_page_complete (GTK_ASSISTANT (dialog),
                                          dialog->priv->start_page,
                                          TRUE);
+
+       gl_debug (DEBUG_TEMPLATE, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Construct name page.                                           */
 /*--------------------------------------------------------------------------*/
@@ -435,24 +506,16 @@ static void
 construct_name_page (glTemplateDesigner      *dialog,
                     GdkPixbuf               *logo)
 {
-       GladeXML        *gui;
-
-       gui = glade_xml_new (GLABELS_GLADE_DIR "template-designer.glade",
-                             "name_page", NULL);
-       if (!gui)
-        {
-                g_critical ("Could not open template-designer.glade. gLabels may not be installed correctly!");
-                return;
-        }
-
-       dialog->priv->name_page          = glade_xml_get_widget (gui, "name_page");
-       dialog->priv->brand_entry        = glade_xml_get_widget (gui, "brand_entry");
-       dialog->priv->part_num_entry     = glade_xml_get_widget (gui, "part_num_entry");
-       dialog->priv->name_warning_image = glade_xml_get_widget (gui, "name_warning_image");
-       dialog->priv->name_warning_label = glade_xml_get_widget (gui, "name_warning_label");
-       dialog->priv->description_entry  = glade_xml_get_widget (gui, "description_entry");
+       gl_debug (DEBUG_TEMPLATE, "START");
 
-        g_object_unref (gui);
+        gl_builder_util_get_widgets (dialog->priv->builder,
+                                     "name_page",          &dialog->priv->name_page,
+                                     "brand_entry",        &dialog->priv->brand_entry,
+                                     "part_num_entry",     &dialog->priv->part_num_entry,
+                                     "name_warning_image", &dialog->priv->name_warning_image,
+                                     "name_warning_label", &dialog->priv->name_warning_label,
+                                     "description_entry",  &dialog->priv->description_entry,
+                                     NULL);
 
 
         gtk_assistant_append_page (GTK_ASSISTANT (dialog),
@@ -474,8 +537,10 @@ construct_name_page (glTemplateDesigner      *dialog,
        g_signal_connect_swapped (G_OBJECT(dialog->priv->description_entry), "changed",
                                  G_CALLBACK(name_page_changed_cb), dialog);
 
+       gl_debug (DEBUG_TEMPLATE, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE. Construct page size page.                                       */
 /*--------------------------------------------------------------------------*/
@@ -483,30 +548,24 @@ static void
 construct_pg_size_page (glTemplateDesigner      *dialog,
                        GdkPixbuf               *logo)
 {
-       GladeXML        *gui;
        GList           *page_sizes;
        const gchar     *default_page_size_id;
        gchar           *default_page_size_name;
 
-       gui = glade_xml_new (GLABELS_GLADE_DIR "template-designer.glade",
-                             "pg_size_page", NULL);
-       if (!gui)
-        {
-                g_critical ("Could not open template-designer.glade. gLabels may not be installed correctly!");
-                return;
-        }
-
-       dialog->priv->pg_size_page     = glade_xml_get_widget (gui, "pg_size_page");
-       dialog->priv->pg_size_combo    = glade_xml_get_widget (gui, "pg_size_combo");
-       dialog->priv->pg_w_spin        = glade_xml_get_widget (gui, "pg_w_spin");
-       dialog->priv->pg_h_spin        = glade_xml_get_widget (gui, "pg_h_spin");
-       dialog->priv->pg_w_units_label = glade_xml_get_widget (gui, "pg_w_units_label");
-       dialog->priv->pg_h_units_label = glade_xml_get_widget (gui, "pg_h_units_label");
+       gl_debug (DEBUG_TEMPLATE, "START");
 
-        g_object_unref (gui);
+        gl_builder_util_get_widgets (dialog->priv->builder,
+                                     "pg_size_page",        &dialog->priv->pg_size_page,
+                                     "pg_size_combo_hbox",  &dialog->priv->pg_size_combo_hbox,
+                                     "pg_w_spin",           &dialog->priv->pg_w_spin,
+                                     "pg_h_spin",           &dialog->priv->pg_h_spin,
+                                     "pg_w_units_label",    &dialog->priv->pg_w_units_label,
+                                     "pg_h_units_label",    &dialog->priv->pg_h_units_label,
+                                     NULL);
 
 
-       gl_util_combo_box_add_text_model (GTK_COMBO_BOX (dialog->priv->pg_size_combo));
+        dialog->priv->pg_size_combo = gtk_combo_box_text_new ();
+        gtk_box_pack_start (GTK_BOX (dialog->priv->pg_size_combo_hbox), dialog->priv->pg_size_combo, FALSE, FALSE, 0);
 
         gtk_assistant_append_page (GTK_ASSISTANT (dialog),
                                    dialog->priv->pg_size_page);
@@ -523,11 +582,11 @@ construct_pg_size_page (glTemplateDesigner      *dialog,
 
        /* Load page size combo */
        page_sizes = lgl_db_get_paper_name_list ();
-       gl_util_combo_box_set_strings (GTK_COMBO_BOX (dialog->priv->pg_size_combo), page_sizes);
+       gl_combo_util_set_strings (GTK_COMBO_BOX_TEXT (dialog->priv->pg_size_combo), page_sizes);
        lgl_db_free_paper_name_list (page_sizes);
-       default_page_size_id = gl_prefs_get_page_size ();
+       default_page_size_id = gl_prefs_model_get_default_page_size (gl_prefs);
        default_page_size_name = lgl_db_lookup_paper_name_from_id (default_page_size_id);
-       gl_util_combo_box_set_active_text (GTK_COMBO_BOX (dialog->priv->pg_size_combo), default_page_size_name);
+       gl_combo_util_set_active_text (GTK_COMBO_BOX (dialog->priv->pg_size_combo), default_page_size_name);
        g_free (default_page_size_name);
 
        /* Apply units to spinbuttons and units labels. */
@@ -552,8 +611,11 @@ construct_pg_size_page (glTemplateDesigner      *dialog,
        /* This controls sensitivity of related widgets. */
        g_signal_connect_swapped (G_OBJECT(dialog->priv->pg_size_combo), "changed",
                                  G_CALLBACK(pg_size_page_changed_cb), dialog);
+
+       gl_debug (DEBUG_TEMPLATE, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Construct shape page.                                          */
 /*--------------------------------------------------------------------------*/
@@ -561,22 +623,15 @@ static void
 construct_shape_page (glTemplateDesigner      *dialog,
                      GdkPixbuf               *logo)
 {
-       GladeXML        *gui;
-
-       gui = glade_xml_new (GLABELS_GLADE_DIR "template-designer.glade",
-                             "shape_page", NULL);
-       if (!gui)
-        {
-                g_critical ("Could not open template-designer.glade. gLabels may not be installed correctly!");
-                return;
-        }
-
-       dialog->priv->shape_page        = glade_xml_get_widget (gui, "shape_page");
-       dialog->priv->shape_rect_radio  = glade_xml_get_widget (gui, "shape_rect_radio");
-       dialog->priv->shape_round_radio = glade_xml_get_widget (gui, "shape_round_radio");
-       dialog->priv->shape_cd_radio    = glade_xml_get_widget (gui, "shape_cd_radio");
+       gl_debug (DEBUG_TEMPLATE, "START");
 
-        g_object_unref (gui);
+        gl_builder_util_get_widgets (dialog->priv->builder,
+                                     "shape_page",          &dialog->priv->shape_page,
+                                     "shape_rect_radio",    &dialog->priv->shape_rect_radio,
+                                     "shape_ellipse_radio", &dialog->priv->shape_ellipse_radio,
+                                     "shape_round_radio",   &dialog->priv->shape_round_radio,
+                                     "shape_cd_radio",      &dialog->priv->shape_cd_radio,
+                                     NULL);
 
 
         gtk_assistant_append_page (GTK_ASSISTANT (dialog),
@@ -591,8 +646,11 @@ construct_shape_page (glTemplateDesigner      *dialog,
         gtk_assistant_set_page_complete (GTK_ASSISTANT (dialog),
                                          dialog->priv->shape_page,
                                          TRUE);
+
+       gl_debug (DEBUG_TEMPLATE, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Construct rect size page.                                      */
 /*--------------------------------------------------------------------------*/
@@ -600,33 +658,27 @@ static void
 construct_rect_size_page (glTemplateDesigner      *dialog,
                          GdkPixbuf               *logo)
 {
-       GladeXML        *gui;
+        gchar           *pixbuf_filename;
        GdkPixbuf       *pixbuf;
 
-       gui = glade_xml_new (GLABELS_GLADE_DIR "template-designer.glade",
-                             "rect_size_page", NULL);
-       if (!gui)
-        {
-                g_critical ("Could not open template-designer.glade. gLabels may not be installed correctly!");
-                return;
-        }
-
-       dialog->priv->rect_size_page           = glade_xml_get_widget (gui, "rect_size_page");
-       dialog->priv->rect_image               = glade_xml_get_widget (gui, "rect_image");
-       dialog->priv->rect_w_spin              = glade_xml_get_widget (gui, "rect_w_spin");
-       dialog->priv->rect_h_spin              = glade_xml_get_widget (gui, "rect_h_spin");
-       dialog->priv->rect_r_spin              = glade_xml_get_widget (gui, "rect_r_spin");
-       dialog->priv->rect_x_waste_spin        = glade_xml_get_widget (gui, "rect_x_waste_spin");
-       dialog->priv->rect_y_waste_spin        = glade_xml_get_widget (gui, "rect_y_waste_spin");
-       dialog->priv->rect_margin_spin         = glade_xml_get_widget (gui, "rect_margin_spin");
-       dialog->priv->rect_w_units_label       = glade_xml_get_widget (gui, "rect_w_units_label");
-       dialog->priv->rect_h_units_label       = glade_xml_get_widget (gui, "rect_h_units_label");
-       dialog->priv->rect_r_units_label       = glade_xml_get_widget (gui, "rect_r_units_label");
-       dialog->priv->rect_x_waste_units_label = glade_xml_get_widget (gui, "rect_x_waste_units_label");
-       dialog->priv->rect_y_waste_units_label = glade_xml_get_widget (gui, "rect_y_waste_units_label");
-       dialog->priv->rect_margin_units_label  = glade_xml_get_widget (gui, "rect_margin_units_label");
+       gl_debug (DEBUG_TEMPLATE, "START");
 
-        g_object_unref (gui);
+        gl_builder_util_get_widgets (dialog->priv->builder,
+                                     "rect_size_page",           &dialog->priv->rect_size_page,
+                                     "rect_image",               &dialog->priv->rect_image,
+                                     "rect_w_spin",              &dialog->priv->rect_w_spin,
+                                     "rect_h_spin",              &dialog->priv->rect_h_spin,
+                                     "rect_r_spin",              &dialog->priv->rect_r_spin,
+                                     "rect_x_waste_spin",        &dialog->priv->rect_x_waste_spin,
+                                     "rect_y_waste_spin",        &dialog->priv->rect_y_waste_spin,
+                                     "rect_margin_spin",         &dialog->priv->rect_margin_spin,
+                                     "rect_w_units_label",       &dialog->priv->rect_w_units_label,
+                                     "rect_h_units_label",       &dialog->priv->rect_h_units_label,
+                                     "rect_r_units_label",       &dialog->priv->rect_r_units_label,
+                                     "rect_x_waste_units_label", &dialog->priv->rect_x_waste_units_label,
+                                     "rect_y_waste_units_label", &dialog->priv->rect_y_waste_units_label,
+                                     "rect_margin_units_label",  &dialog->priv->rect_margin_units_label,
+                                     NULL);
 
 
         gtk_assistant_append_page (GTK_ASSISTANT (dialog),
@@ -643,7 +695,9 @@ construct_rect_size_page (glTemplateDesigner      *dialog,
                                          TRUE);
 
        /* Initialize illustration. */
-       pixbuf = gdk_pixbuf_new_from_file (EX_RECT_IMAGE, NULL);
+        pixbuf_filename = g_build_filename (GLABELS_DATA_DIR, "pixmaps", "ex-rect-size.png", NULL);
+       pixbuf = gdk_pixbuf_new_from_file (pixbuf_filename, NULL);
+        g_free (pixbuf_filename);
        gtk_image_set_from_pixbuf (GTK_IMAGE(dialog->priv->rect_image), pixbuf);
 
        /* Apply units to spinbuttons and units labels. */
@@ -697,8 +751,96 @@ construct_rect_size_page (glTemplateDesigner      *dialog,
                                   DEFAULT_RECT_WASTE * dialog->priv->units_per_point);
        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->rect_margin_spin),
                                   DEFAULT_MARGIN * dialog->priv->units_per_point);
+
+       gl_debug (DEBUG_TEMPLATE, "END");
+}
+
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Construct ellipse size page.                                   */
+/*--------------------------------------------------------------------------*/
+static void
+construct_ellipse_size_page (glTemplateDesigner      *dialog,
+                             GdkPixbuf               *logo)
+{
+        gchar           *pixbuf_filename;
+       GdkPixbuf       *pixbuf;
+
+       gl_debug (DEBUG_TEMPLATE, "START");
+
+        gl_builder_util_get_widgets (dialog->priv->builder,
+                                     "ellipse_size_page",           &dialog->priv->ellipse_size_page,
+                                     "ellipse_image",               &dialog->priv->ellipse_image,
+                                     "ellipse_w_spin",              &dialog->priv->ellipse_w_spin,
+                                     "ellipse_h_spin",              &dialog->priv->ellipse_h_spin,
+                                     "ellipse_waste_spin",          &dialog->priv->ellipse_waste_spin,
+                                     "ellipse_margin_spin",         &dialog->priv->ellipse_margin_spin,
+                                     "ellipse_w_units_label",       &dialog->priv->ellipse_w_units_label,
+                                     "ellipse_h_units_label",       &dialog->priv->ellipse_h_units_label,
+                                     "ellipse_waste_units_label",   &dialog->priv->ellipse_waste_units_label,
+                                     "ellipse_margin_units_label",  &dialog->priv->ellipse_margin_units_label,
+                                     NULL);
+
+
+        gtk_assistant_append_page (GTK_ASSISTANT (dialog),
+                                   dialog->priv->ellipse_size_page);
+
+        gtk_assistant_set_page_title (GTK_ASSISTANT (dialog),
+                                      dialog->priv->ellipse_size_page,
+                                      _("Label or Card Size"));
+        gtk_assistant_set_page_header_image (GTK_ASSISTANT (dialog),
+                                             dialog->priv->ellipse_size_page,
+                                             logo);
+        gtk_assistant_set_page_complete (GTK_ASSISTANT (dialog),
+                                         dialog->priv->ellipse_size_page,
+                                         TRUE);
+
+       /* Initialize illustration. */
+        pixbuf_filename = g_build_filename (GLABELS_DATA_DIR, "pixmaps", "ex-ellipse-size.png", NULL);
+       pixbuf = gdk_pixbuf_new_from_file (pixbuf_filename, NULL);
+        g_free (pixbuf_filename);
+       gtk_image_set_from_pixbuf (GTK_IMAGE(dialog->priv->ellipse_image), pixbuf);
+
+       /* Apply units to spinbuttons and units labels. */
+        gtk_spin_button_set_digits (GTK_SPIN_BUTTON(dialog->priv->ellipse_w_spin),
+                                   dialog->priv->digits);
+        gtk_spin_button_set_increments (GTK_SPIN_BUTTON(dialog->priv->ellipse_w_spin),
+                                        dialog->priv->climb_rate, 10.0*dialog->priv->climb_rate);
+        gtk_label_set_text (GTK_LABEL(dialog->priv->ellipse_w_units_label),
+                           dialog->priv->units_string);
+        gtk_spin_button_set_digits (GTK_SPIN_BUTTON(dialog->priv->ellipse_h_spin),
+                                   dialog->priv->digits);
+        gtk_spin_button_set_increments (GTK_SPIN_BUTTON(dialog->priv->ellipse_h_spin),
+                                        dialog->priv->climb_rate, 10.0*dialog->priv->climb_rate);
+        gtk_label_set_text (GTK_LABEL(dialog->priv->ellipse_h_units_label),
+                           dialog->priv->units_string);
+        gtk_spin_button_set_digits (GTK_SPIN_BUTTON(dialog->priv->ellipse_waste_spin),
+                                   dialog->priv->digits);
+        gtk_spin_button_set_increments (GTK_SPIN_BUTTON(dialog->priv->ellipse_waste_spin),
+                                        dialog->priv->climb_rate, 10.0*dialog->priv->climb_rate);
+        gtk_label_set_text (GTK_LABEL(dialog->priv->ellipse_waste_units_label),
+                           dialog->priv->units_string);
+        gtk_spin_button_set_digits (GTK_SPIN_BUTTON(dialog->priv->ellipse_margin_spin),
+                                   dialog->priv->digits);
+        gtk_spin_button_set_increments (GTK_SPIN_BUTTON(dialog->priv->ellipse_margin_spin),
+                                        dialog->priv->climb_rate, 10.0*dialog->priv->climb_rate);
+        gtk_label_set_text (GTK_LABEL(dialog->priv->ellipse_margin_units_label),
+                           dialog->priv->units_string);
+
+       /* Load some realistic defaults. */
+       gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->ellipse_w_spin),
+                                  DEFAULT_ELLIPSE_W * dialog->priv->units_per_point);
+       gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->ellipse_h_spin),
+                                  DEFAULT_ELLIPSE_H * dialog->priv->units_per_point);
+       gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->ellipse_waste_spin),
+                                  DEFAULT_ELLIPSE_WASTE * dialog->priv->units_per_point);
+       gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->ellipse_margin_spin),
+                                  DEFAULT_MARGIN * dialog->priv->units_per_point);
+
+       gl_debug (DEBUG_TEMPLATE, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Construct round size page.                                     */
 /*--------------------------------------------------------------------------*/
@@ -706,27 +848,21 @@ static void
 construct_round_size_page (glTemplateDesigner      *dialog,
                           GdkPixbuf               *logo)
 {
-       GladeXML        *gui;
+        gchar           *pixbuf_filename;
        GdkPixbuf       *pixbuf;
 
-       gui = glade_xml_new (GLABELS_GLADE_DIR "template-designer.glade",
-                             "round_size_page", NULL);
-       if (!gui)
-        {
-                g_critical ("Could not open template-designer.glade. gLabels may not be installed correctly!");
-                return;
-        }
-
-       dialog->priv->round_size_page          = glade_xml_get_widget (gui, "round_size_page");
-       dialog->priv->round_image              = glade_xml_get_widget (gui, "round_image");
-       dialog->priv->round_r_spin             = glade_xml_get_widget (gui, "round_r_spin");
-       dialog->priv->round_waste_spin         = glade_xml_get_widget (gui, "round_waste_spin");
-       dialog->priv->round_margin_spin        = glade_xml_get_widget (gui, "round_margin_spin");
-       dialog->priv->round_r_units_label      = glade_xml_get_widget (gui, "round_r_units_label");
-       dialog->priv->round_waste_units_label  = glade_xml_get_widget (gui, "round_waste_units_label");
-       dialog->priv->round_margin_units_label = glade_xml_get_widget (gui, "round_margin_units_label");
+       gl_debug (DEBUG_TEMPLATE, "START");
 
-        g_object_unref (gui);
+        gl_builder_util_get_widgets (dialog->priv->builder,
+                                     "round_size_page",          &dialog->priv->round_size_page,
+                                     "round_image",              &dialog->priv->round_image,
+                                     "round_r_spin",             &dialog->priv->round_r_spin,
+                                     "round_waste_spin",         &dialog->priv->round_waste_spin,
+                                     "round_margin_spin",        &dialog->priv->round_margin_spin,
+                                     "round_r_units_label",      &dialog->priv->round_r_units_label,
+                                     "round_waste_units_label",  &dialog->priv->round_waste_units_label,
+                                     "round_margin_units_label", &dialog->priv->round_margin_units_label,
+                                     NULL);
 
 
         gtk_assistant_append_page (GTK_ASSISTANT (dialog),
@@ -743,7 +879,9 @@ construct_round_size_page (glTemplateDesigner      *dialog,
                                          TRUE);
 
        /* Initialize illustration. */
-       pixbuf = gdk_pixbuf_new_from_file (EX_ROUND_IMAGE, NULL);
+        pixbuf_filename = g_build_filename (GLABELS_DATA_DIR, "pixmaps", "ex-round-size.png", NULL);
+       pixbuf = gdk_pixbuf_new_from_file (pixbuf_filename, NULL);
+        g_free (pixbuf_filename);
        gtk_image_set_from_pixbuf (GTK_IMAGE(dialog->priv->round_image), pixbuf);
 
        /* Apply units to spinbuttons and units labels. */
@@ -774,8 +912,10 @@ construct_round_size_page (glTemplateDesigner      *dialog,
        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->round_margin_spin),
                                   DEFAULT_MARGIN * dialog->priv->units_per_point);
 
+       gl_debug (DEBUG_TEMPLATE, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Construct CD/DVD size page.                                    */
 /*--------------------------------------------------------------------------*/
@@ -783,33 +923,27 @@ static void
 construct_cd_size_page (glTemplateDesigner      *dialog,
                        GdkPixbuf               *logo)
 {
-       GladeXML        *gui;
+        gchar           *pixbuf_filename;
        GdkPixbuf       *pixbuf;
 
-       gui = glade_xml_new (GLABELS_GLADE_DIR "template-designer.glade",
-                             "cd_size_page", NULL);
-       if (!gui)
-        {
-                g_critical ("Could not open template-designer.glade. gLabels may not be installed correctly!");
-                return;
-        }
-
-       dialog->priv->cd_size_page = glade_xml_get_widget (gui, "cd_size_page");
-       dialog->priv->cd_image     = glade_xml_get_widget (gui, "cd_image");
-       dialog->priv->cd_radius_spin = glade_xml_get_widget (gui, "cd_radius_spin");
-       dialog->priv->cd_hole_spin   = glade_xml_get_widget (gui, "cd_hole_spin");
-       dialog->priv->cd_w_spin      = glade_xml_get_widget (gui, "cd_w_spin");
-       dialog->priv->cd_h_spin      = glade_xml_get_widget (gui, "cd_h_spin");
-       dialog->priv->cd_waste_spin  = glade_xml_get_widget (gui, "cd_waste_spin");
-       dialog->priv->cd_margin_spin = glade_xml_get_widget (gui, "cd_margin_spin");
-       dialog->priv->cd_radius_units_label = glade_xml_get_widget (gui, "cd_radius_units_label");
-       dialog->priv->cd_hole_units_label   = glade_xml_get_widget (gui, "cd_hole_units_label");
-       dialog->priv->cd_w_units_label      = glade_xml_get_widget (gui, "cd_w_units_label");
-       dialog->priv->cd_h_units_label      = glade_xml_get_widget (gui, "cd_h_units_label");
-       dialog->priv->cd_waste_units_label  = glade_xml_get_widget (gui, "cd_waste_units_label");
-       dialog->priv->cd_margin_units_label = glade_xml_get_widget (gui, "cd_margin_units_label");
+       gl_debug (DEBUG_TEMPLATE, "START");
 
-        g_object_unref (gui);
+        gl_builder_util_get_widgets (dialog->priv->builder,
+                                     "cd_size_page",          &dialog->priv->cd_size_page,
+                                     "cd_image",              &dialog->priv->cd_image,
+                                     "cd_radius_spin",        &dialog->priv->cd_radius_spin,
+                                     "cd_hole_spin",          &dialog->priv->cd_hole_spin,
+                                     "cd_w_spin",             &dialog->priv->cd_w_spin,
+                                     "cd_h_spin",             &dialog->priv->cd_h_spin,
+                                     "cd_waste_spin",         &dialog->priv->cd_waste_spin,
+                                     "cd_margin_spin",        &dialog->priv->cd_margin_spin,
+                                     "cd_radius_units_label", &dialog->priv->cd_radius_units_label,
+                                     "cd_hole_units_label",   &dialog->priv->cd_hole_units_label,
+                                     "cd_w_units_label",      &dialog->priv->cd_w_units_label,
+                                     "cd_h_units_label",      &dialog->priv->cd_h_units_label,
+                                     "cd_waste_units_label",  &dialog->priv->cd_waste_units_label,
+                                     "cd_margin_units_label", &dialog->priv->cd_margin_units_label,
+                                     NULL);
 
 
         gtk_assistant_append_page (GTK_ASSISTANT (dialog),
@@ -826,7 +960,9 @@ construct_cd_size_page (glTemplateDesigner      *dialog,
                                          TRUE);
 
        /* Initialize illustration. */
-       pixbuf = gdk_pixbuf_new_from_file (EX_CD_IMAGE, NULL);
+        pixbuf_filename = g_build_filename (GLABELS_DATA_DIR, "pixmaps", "ex-cd-size.png", NULL);
+       pixbuf = gdk_pixbuf_new_from_file (pixbuf_filename, NULL);
+        g_free (pixbuf_filename);
        gtk_image_set_from_pixbuf (GTK_IMAGE(dialog->priv->cd_image), pixbuf);
 
        /* Apply units to spinbuttons and units labels. */
@@ -877,8 +1013,10 @@ construct_cd_size_page (glTemplateDesigner      *dialog,
        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->cd_margin_spin),
                                   DEFAULT_MARGIN * dialog->priv->units_per_point);
 
+       gl_debug (DEBUG_TEMPLATE, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Construct number of layouts page.                              */
 /*--------------------------------------------------------------------------*/
@@ -886,23 +1024,17 @@ static void
 construct_nlayouts_page (glTemplateDesigner      *dialog,
                         GdkPixbuf               *logo)
 {
-       GladeXML        *gui;
+        gchar           *pixbuf_filename;
        GdkPixbuf       *pixbuf;
 
-       gui = glade_xml_new (GLABELS_GLADE_DIR "template-designer.glade",
-                             "nlayouts_page", NULL);
-       if (!gui)
-        {
-                g_critical ("Could not open template-designer.glade. gLabels may not be installed correctly!");
-                return;
-        }
-
-       dialog->priv->nlayouts_page   = glade_xml_get_widget (gui, "nlayouts_page");
-       dialog->priv->nlayouts_image1 = glade_xml_get_widget (gui, "nlayouts_image1");
-       dialog->priv->nlayouts_image2 = glade_xml_get_widget (gui, "nlayouts_image2");
-       dialog->priv->nlayouts_spin   = glade_xml_get_widget (gui, "nlayouts_spin");
+       gl_debug (DEBUG_TEMPLATE, "START");
 
-        g_object_unref (gui);
+        gl_builder_util_get_widgets (dialog->priv->builder,
+                                     "nlayouts_page",   &dialog->priv->nlayouts_page,
+                                     "nlayouts_image1", &dialog->priv->nlayouts_image1,
+                                     "nlayouts_image2", &dialog->priv->nlayouts_image2,
+                                     "nlayouts_spin",   &dialog->priv->nlayouts_spin,
+                                     NULL);
 
 
         gtk_assistant_append_page (GTK_ASSISTANT (dialog),
@@ -918,14 +1050,24 @@ construct_nlayouts_page (glTemplateDesigner      *dialog,
                                          dialog->priv->nlayouts_page,
                                          TRUE);
 
+       gtk_spin_button_set_range (GTK_SPIN_BUTTON (dialog->priv->nlayouts_spin),
+                                   1, 2);
+
+
        /* Initialize illustrations. */
-       pixbuf = gdk_pixbuf_new_from_file (EX_NLAYOUTS_IMAGE1, NULL);
+        pixbuf_filename = g_build_filename (GLABELS_DATA_DIR, "pixmaps", "ex-1layout.png", NULL);
+       pixbuf = gdk_pixbuf_new_from_file (pixbuf_filename, NULL);
+        g_free (pixbuf_filename);
        gtk_image_set_from_pixbuf (GTK_IMAGE(dialog->priv->nlayouts_image1), pixbuf);
-       pixbuf = gdk_pixbuf_new_from_file (EX_NLAYOUTS_IMAGE2, NULL);
+        pixbuf_filename = g_build_filename (GLABELS_DATA_DIR, "pixmaps", "ex-2layouts.png", NULL);
+       pixbuf = gdk_pixbuf_new_from_file (pixbuf_filename, NULL);
+        g_free (pixbuf_filename);
        gtk_image_set_from_pixbuf (GTK_IMAGE(dialog->priv->nlayouts_image2), pixbuf);
 
+       gl_debug (DEBUG_TEMPLATE, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Construct layout page.                                         */
 /*--------------------------------------------------------------------------*/
@@ -933,40 +1075,35 @@ static void
 construct_layout_page (glTemplateDesigner      *dialog,
                       GdkPixbuf               *logo)
 {
-       GladeXML        *gui;
-
-       gui = glade_xml_new (GLABELS_GLADE_DIR "template-designer.glade",
-                             "layout_page", NULL);
-       if (!gui)
-        {
-                g_critical ("Could not open template-designer.glade. gLabels may not be installed correctly!");
-                return;
-        }
-
-       dialog->priv->layout_page           = glade_xml_get_widget (gui, "layout_page");
-       dialog->priv->layout1_head_label    = glade_xml_get_widget (gui, "layout1_head_label");
-       dialog->priv->layout1_nx_spin       = glade_xml_get_widget (gui, "layout1_nx_spin");
-       dialog->priv->layout1_ny_spin       = glade_xml_get_widget (gui, "layout1_ny_spin");
-       dialog->priv->layout1_x0_spin       = glade_xml_get_widget (gui, "layout1_x0_spin");
-       dialog->priv->layout1_y0_spin       = glade_xml_get_widget (gui, "layout1_y0_spin");
-       dialog->priv->layout1_dx_spin       = glade_xml_get_widget (gui, "layout1_dx_spin");
-       dialog->priv->layout1_dy_spin       = glade_xml_get_widget (gui, "layout1_dy_spin");
-       dialog->priv->layout2_head_label    = glade_xml_get_widget (gui, "layout2_head_label");
-       dialog->priv->layout2_nx_spin       = glade_xml_get_widget (gui, "layout2_nx_spin");
-       dialog->priv->layout2_ny_spin       = glade_xml_get_widget (gui, "layout2_ny_spin");
-       dialog->priv->layout2_x0_spin       = glade_xml_get_widget (gui, "layout2_x0_spin");
-       dialog->priv->layout2_y0_spin       = glade_xml_get_widget (gui, "layout2_y0_spin");
-       dialog->priv->layout2_dx_spin       = glade_xml_get_widget (gui, "layout2_dx_spin");
-       dialog->priv->layout2_dy_spin       = glade_xml_get_widget (gui, "layout2_dy_spin");
-       dialog->priv->layout_x0_units_label = glade_xml_get_widget (gui, "layout_x0_units_label");
-       dialog->priv->layout_y0_units_label = glade_xml_get_widget (gui, "layout_y0_units_label");
-       dialog->priv->layout_dx_units_label = glade_xml_get_widget (gui, "layout_dx_units_label");
-       dialog->priv->layout_dy_units_label = glade_xml_get_widget (gui, "layout_dy_units_label");
-       dialog->priv->layout_mini_preview   = glade_xml_get_widget (gui, "layout_mini_preview");
-       dialog->priv->layout_test_button    = glade_xml_get_widget (gui, "layout_test_button");
-
-        g_object_unref (gui);
+       gl_debug (DEBUG_TEMPLATE, "START");
 
+        gl_builder_util_get_widgets (dialog->priv->builder,
+                                     "layout_page",           &dialog->priv->layout_page,
+                                     "layout1_head_label",    &dialog->priv->layout1_head_label,
+                                     "layout1_nx_spin",       &dialog->priv->layout1_nx_spin,
+                                     "layout1_ny_spin",       &dialog->priv->layout1_ny_spin,
+                                     "layout1_x0_spin",       &dialog->priv->layout1_x0_spin,
+                                     "layout1_y0_spin",       &dialog->priv->layout1_y0_spin,
+                                     "layout1_dx_spin",       &dialog->priv->layout1_dx_spin,
+                                     "layout1_dy_spin",       &dialog->priv->layout1_dy_spin,
+                                     "layout2_head_label",    &dialog->priv->layout2_head_label,
+                                     "layout2_nx_spin",       &dialog->priv->layout2_nx_spin,
+                                     "layout2_ny_spin",       &dialog->priv->layout2_ny_spin,
+                                     "layout2_x0_spin",       &dialog->priv->layout2_x0_spin,
+                                     "layout2_y0_spin",       &dialog->priv->layout2_y0_spin,
+                                     "layout2_dx_spin",       &dialog->priv->layout2_dx_spin,
+                                     "layout2_dy_spin",       &dialog->priv->layout2_dy_spin,
+                                     "layout_x0_units_label", &dialog->priv->layout_x0_units_label,
+                                     "layout_y0_units_label", &dialog->priv->layout_y0_units_label,
+                                     "layout_dx_units_label", &dialog->priv->layout_dx_units_label,
+                                     "layout_dy_units_label", &dialog->priv->layout_dy_units_label,
+                                     "mini_preview_vbox",     &dialog->priv->mini_preview_vbox,
+                                     "layout_test_button",    &dialog->priv->layout_test_button,
+                                     NULL);
+
+        dialog->priv->layout_mini_preview = gl_mini_preview_new (175, 200);
+        gtk_container_add (GTK_CONTAINER (dialog->priv->mini_preview_vbox),
+                           dialog->priv->layout_mini_preview);
 
         gtk_assistant_append_page (GTK_ASSISTANT (dialog),
                                    dialog->priv->layout_page);
@@ -1055,8 +1192,10 @@ construct_layout_page (glTemplateDesigner      *dialog,
        g_signal_connect_swapped (G_OBJECT(dialog->priv->layout_test_button), "clicked",
                                  G_CALLBACK(print_test_cb), dialog);
 
+       gl_debug (DEBUG_TEMPLATE, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Construct finish page.                                         */
 /*--------------------------------------------------------------------------*/
@@ -1064,19 +1203,11 @@ static void
 construct_finish_page (glTemplateDesigner      *dialog,
                       GdkPixbuf               *logo)
 {
-       GladeXML        *gui;
-
-       gui = glade_xml_new (GLABELS_GLADE_DIR "template-designer.glade",
-                             "finish_page", NULL);
-       if (!gui)
-        {
-                g_critical ("Could not open template-designer.glade. gLabels may not be installed correctly!");
-                return;
-        }
-
-       dialog->priv->finish_page = glade_xml_get_widget (gui, "finish_page");
+       gl_debug (DEBUG_TEMPLATE, "START");
 
-        g_object_unref (gui);
+        gl_builder_util_get_widgets (dialog->priv->builder,
+                                     "finish_page", &dialog->priv->finish_page,
+                                     NULL);
 
 
         gtk_assistant_append_page (GTK_ASSISTANT (dialog),
@@ -1095,8 +1226,132 @@ construct_finish_page (glTemplateDesigner      *dialog,
                                          dialog->priv->finish_page,
                                          TRUE);
 
+       gl_debug (DEBUG_TEMPLATE, "END");
+}
+
+
+/*****************************************************************************/
+/* Initialize dialog from existing template.                                 */
+/*****************************************************************************/
+void
+gl_template_designer_set_from_name (glTemplateDesigner *dialog,
+                                    const gchar        *name)
+{
+        lglTemplate      *template;
+        gdouble           upp;
+        lglTemplateFrame *frame;
+        gchar            *paper_name;
+        GList            *p, *p_layout1, *p_layout2;
+
+       gtk_window_set_title (GTK_WINDOW(dialog), _("Edit gLabels Template"));
+
+        template = lgl_db_lookup_template_from_name (name);
+        if ( lgl_template_does_category_match (template, "user-defined") )
+        {
+
+                dialog->priv->stop_signals = TRUE;
+
+                dialog->priv->edit_flag  = TRUE;
+                dialog->priv->edit_brand = g_strdup (template->brand);
+                dialog->priv->edit_part  = g_strdup (template->part);
+
+                upp = dialog->priv->units_per_point;
+
+                gtk_entry_set_text (GTK_ENTRY (dialog->priv->brand_entry),       template->brand);
+                gtk_entry_set_text (GTK_ENTRY (dialog->priv->part_num_entry),    template->part);
+                gtk_entry_set_text (GTK_ENTRY (dialog->priv->description_entry), template->description);
+
+
+                paper_name = lgl_db_lookup_paper_name_from_id (template->paper_id);
+                gl_combo_util_set_active_text (GTK_COMBO_BOX (dialog->priv->pg_size_combo), paper_name);
+                gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->pg_w_spin), template->page_width*upp);
+                gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->pg_h_spin), template->page_height*upp);
+                g_free (paper_name);
+
+
+                frame = (lglTemplateFrame *)template->frames->data;
+                switch (frame->shape)
+                {
+                case LGL_TEMPLATE_FRAME_SHAPE_RECT:
+                default:
+                        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->priv->shape_rect_radio), TRUE);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->rect_w_spin),       frame->rect.w*upp);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->rect_h_spin),       frame->rect.h*upp);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->rect_r_spin),       frame->rect.r*upp);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->rect_x_waste_spin), frame->rect.x_waste*upp);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->rect_y_waste_spin), frame->rect.y_waste*upp);
+                        break;
+
+                case LGL_TEMPLATE_FRAME_SHAPE_ELLIPSE:
+                        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->priv->shape_ellipse_radio), TRUE);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->ellipse_w_spin),     frame->rect.w*upp);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->ellipse_h_spin),     frame->rect.h*upp);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->ellipse_waste_spin), frame->rect.y_waste*upp);
+                        break;
+
+                case LGL_TEMPLATE_FRAME_SHAPE_ROUND:
+                        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->priv->shape_round_radio), TRUE);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->round_r_spin),      frame->round.r*upp);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->round_waste_spin),  frame->round.waste*upp);
+                        break;
+
+                case LGL_TEMPLATE_FRAME_SHAPE_CD:
+                        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->priv->shape_cd_radio), TRUE);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->cd_radius_spin),    frame->cd.r1*upp);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->cd_hole_spin),      frame->cd.r2*upp);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->cd_w_spin),         frame->cd.w*upp);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->cd_h_spin),         frame->cd.h*upp);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->round_waste_spin),  frame->round.waste*upp);
+                        break;
+
+                }
+                for ( p = frame->all.markups; p != NULL; p=p->next )
+                {
+                        lglTemplateMarkup *markup = (lglTemplateMarkup *)p->data;
+
+                        if ( markup->type == LGL_TEMPLATE_MARKUP_MARGIN )
+                        {
+                                gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->rect_margin_spin),  markup->margin.size*upp);
+                                gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->ellipse_margin_spin),  markup->margin.size*upp);
+                                gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->round_margin_spin), markup->margin.size*upp);
+                                gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->cd_margin_spin),    markup->margin.size*upp);
+                        }
+                }
+
+
+                p_layout1 = g_list_nth (frame->all.layouts, 0);
+                p_layout2 = g_list_nth (frame->all.layouts, 1);
+                gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->nlayouts_spin), p_layout2 ? 2 : 1 );
+                if ( p_layout1 )
+                {
+                        lglTemplateLayout *layout1 = (lglTemplateLayout *)p_layout1->data;
+
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->layout1_nx_spin), layout1->nx);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->layout1_ny_spin), layout1->ny);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->layout1_x0_spin), layout1->x0*upp);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->layout1_y0_spin), layout1->y0*upp);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->layout1_dx_spin), layout1->dx*upp);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->layout1_dy_spin), layout1->dy*upp);
+                }
+                if ( p_layout2 )
+                {
+                        lglTemplateLayout *layout2 = (lglTemplateLayout *)p_layout2->data;
+
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->layout2_nx_spin), layout2->nx);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->layout2_ny_spin), layout2->ny);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->layout2_x0_spin), layout2->x0*upp);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->layout2_y0_spin), layout2->y0*upp);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->layout2_dx_spin), layout2->dx*upp);
+                        gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->layout2_dy_spin), layout2->dy*upp);
+                }
+
+
+                dialog->priv->stop_signals = FALSE;
+
+        }
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  cancel callback.                                               */
 /*--------------------------------------------------------------------------*/
@@ -1108,14 +1363,28 @@ cancel_cb (glTemplateDesigner *dialog)
 
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  apply callback                                                 */
 /*--------------------------------------------------------------------------*/
 static void
 apply_cb (glTemplateDesigner *dialog)
 {
+        lglUnits     units;
        lglTemplate *template;
         gchar       *name;
+
+        units = gl_prefs_model_get_units (gl_prefs);
+        lgl_xml_set_default_units (units);
+
+        if (dialog->priv->edit_flag)
+        {
+                lgl_db_delete_template_by_brand_part (dialog->priv->edit_brand, dialog->priv->edit_part);
+
+                name = g_strdup_printf ("%s %s", dialog->priv->edit_brand, dialog->priv->edit_part);
+                gl_mini_preview_pixbuf_cache_delete_by_name (name);
+                g_free (name);
+        }
        
        template = build_template (dialog);
        lgl_db_register_template (template);
@@ -1123,6 +1392,7 @@ apply_cb (glTemplateDesigner *dialog)
         gl_mini_preview_pixbuf_cache_add_by_name (name);
         g_free (name);
 }
+
                          
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  close callback                                                 */
@@ -1134,6 +1404,7 @@ close_cb (glTemplateDesigner *dialog)
        gtk_widget_destroy (GTK_WIDGET(dialog));
 
 }
+
                          
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  prepare page callback                                          */
@@ -1161,6 +1432,10 @@ prepare_cb (glTemplateDesigner      *dialog,
                 rect_size_page_prepare_cb (dialog);
                 break;
 
+        case ELLIPSE_SIZE_PAGE_NUM:
+                ellipse_size_page_prepare_cb (dialog);
+                break;
+
         case ROUND_SIZE_PAGE_NUM:
                 round_size_page_prepare_cb (dialog);
                 break;
@@ -1180,6 +1455,7 @@ prepare_cb (glTemplateDesigner      *dialog,
         }
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Handle non-linear forward traversal.                           */
 /*--------------------------------------------------------------------------*/
@@ -1204,6 +1480,9 @@ forward_page_function (gint     current_page,
                if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(dialog->priv->shape_rect_radio))) {
                         return RECT_SIZE_PAGE_NUM;
                }
+               if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(dialog->priv->shape_ellipse_radio))) {
+                        return ELLIPSE_SIZE_PAGE_NUM;
+               }
                if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(dialog->priv->shape_round_radio))) {
                         return ROUND_SIZE_PAGE_NUM;
                }
@@ -1213,6 +1492,7 @@ forward_page_function (gint     current_page,
                 break;
 
         case RECT_SIZE_PAGE_NUM:
+        case ELLIPSE_SIZE_PAGE_NUM:
         case ROUND_SIZE_PAGE_NUM:
         case CD_SIZE_PAGE_NUM:
                 return NLAYOUTS_PAGE_NUM;
@@ -1231,6 +1511,7 @@ forward_page_function (gint     current_page,
         return -1;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Widget on name page "changed" callback.                        */
 /*--------------------------------------------------------------------------*/
@@ -1238,47 +1519,56 @@ static void
 name_page_changed_cb (glTemplateDesigner *dialog)
 {
        gchar *brand, *part_num, *desc;
+        gchar *string;
 
        brand    = g_strstrip (gtk_editable_get_chars (GTK_EDITABLE(dialog->priv->brand_entry), 0, -1));
        part_num = g_strstrip (gtk_editable_get_chars (GTK_EDITABLE(dialog->priv->part_num_entry), 0, -1));
        desc     = gtk_editable_get_chars (GTK_EDITABLE(dialog->priv->description_entry), 0, -1);
 
+        gtk_image_clear (GTK_IMAGE (dialog->priv->name_warning_image));
+        gtk_label_set_text (GTK_LABEL (dialog->priv->name_warning_label), "");
 
-       if (brand && brand[0] && part_num && part_num[0] &&
-            lgl_db_does_template_exist (brand, part_num))
+       if (brand && brand[0] && part_num && part_num[0])
         {
-                gtk_image_set_from_stock (GTK_IMAGE (dialog->priv->name_warning_image),
-                                          GTK_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_BUTTON);
-                gtk_label_set_markup (GTK_LABEL (dialog->priv->name_warning_label),
-                                    _("<span foreground='red' weight='bold'>Brand and part# match an existing template!</span>"));
-        }
-        else
-        {
-                gtk_image_clear (GTK_IMAGE (dialog->priv->name_warning_image));
-                gtk_label_set_text (GTK_LABEL (dialog->priv->name_warning_label), "");
-        }
 
-       if (brand && brand[0] && part_num && part_num[0] && desc && desc[0] &&
-            !lgl_db_does_template_exist (brand, part_num))
-        {
+                if (lgl_db_does_template_exist (brand, part_num))
+                {
+                        /* Make exception for currently edited template. */
+                        if ( dialog->priv->edit_brand && !lgl_str_utf8_casecmp (brand, dialog->priv->edit_brand) &&
+                             dialog->priv->edit_part  && !lgl_str_utf8_casecmp (part_num, dialog->priv->edit_part) )
+                        {
+                                gtk_assistant_set_page_complete (GTK_ASSISTANT (dialog), dialog->priv->name_page, TRUE);
+                        }
+                        else
+                        {
+                                gtk_assistant_set_page_complete (GTK_ASSISTANT (dialog), dialog->priv->name_page, FALSE);
+
+                                gtk_image_set_from_stock (GTK_IMAGE (dialog->priv->name_warning_image),
+                                                          GTK_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_BUTTON);
+                                string = g_strdup_printf ("<span foreground='red' weight='bold'>%s</span>",
+                                                          _("Brand and part# match an existing template!"));
+                                gtk_label_set_markup (GTK_LABEL (dialog->priv->name_warning_label), string);
+                                g_free (string);
+
+                        }
+                }
+                else
+                {
+                        gtk_assistant_set_page_complete (GTK_ASSISTANT (dialog), dialog->priv->name_page, TRUE);
+                }
 
-                gtk_assistant_set_page_complete (GTK_ASSISTANT (dialog),
-                                                 dialog->priv->name_page,
-                                                 TRUE);
-       }
+        }
         else
         {
-
-                gtk_assistant_set_page_complete (GTK_ASSISTANT (dialog),
-                                                 dialog->priv->name_page,
-                                                 FALSE);
-       }
+                gtk_assistant_set_page_complete (GTK_ASSISTANT (dialog), dialog->priv->name_page, FALSE);
+        }
 
        g_free (brand);
        g_free (part_num);
        g_free (desc);
 }
                                                                                
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Widget on page size page "changed" callback.                   */
 /*--------------------------------------------------------------------------*/
@@ -1290,14 +1580,14 @@ pg_size_page_changed_cb (glTemplateDesigner *dialog)
        
 
        page_size_name =
-               gtk_combo_box_get_active_text (GTK_COMBO_BOX (dialog->priv->pg_size_combo));
+               gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (dialog->priv->pg_size_combo));
 
        if (page_size_name && strlen(page_size_name)) {
 
                paper = lgl_db_lookup_paper_from_name (page_size_name);
        
 
-               if ( g_strcasecmp (paper->id, "Other") == 0 ) {
+               if ( g_ascii_strcasecmp (paper->id, "Other") == 0 ) {
                        gtk_widget_set_sensitive (GTK_WIDGET(dialog->priv->pg_w_spin), TRUE);
                        gtk_widget_set_sensitive (GTK_WIDGET(dialog->priv->pg_h_spin), TRUE);
                        gtk_widget_set_sensitive (GTK_WIDGET(dialog->priv->pg_w_units_label),
@@ -1326,6 +1616,7 @@ pg_size_page_changed_cb (glTemplateDesigner *dialog)
 
 }
                                                                                
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Prepare rectangular size page.                                 */
 /*--------------------------------------------------------------------------*/
@@ -1368,6 +1659,42 @@ rect_size_page_prepare_cb (glTemplateDesigner *dialog)
 
 }
 
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Prepare ellipse size page.                                     */
+/*--------------------------------------------------------------------------*/
+static void
+ellipse_size_page_prepare_cb (glTemplateDesigner *dialog)
+{
+       gdouble max_w, max_h;
+       gdouble w, h, waste, margin;
+
+       /* Limit label size based on already chosen page size. */
+       max_w = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->pg_w_spin));
+       max_h = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->pg_h_spin));
+
+       w = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->ellipse_w_spin));
+       h = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->ellipse_h_spin));
+       waste = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->ellipse_waste_spin));
+       margin = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->ellipse_margin_spin));
+
+       gtk_spin_button_set_range (GTK_SPIN_BUTTON (dialog->priv->ellipse_w_spin),
+                                   dialog->priv->climb_rate, max_w);
+       gtk_spin_button_set_range (GTK_SPIN_BUTTON (dialog->priv->ellipse_h_spin),
+                                   dialog->priv->climb_rate, max_h);
+       gtk_spin_button_set_range (GTK_SPIN_BUTTON (dialog->priv->ellipse_waste_spin),
+                                   0.0, MIN(max_w, max_h)/4.0);
+       gtk_spin_button_set_range (GTK_SPIN_BUTTON (dialog->priv->ellipse_margin_spin),
+                                   0.0, MIN(max_w, max_h)/4.0);
+
+       gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->ellipse_w_spin), w);
+       gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->ellipse_h_spin), h);
+       gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->ellipse_waste_spin), waste);
+       gtk_spin_button_set_value (GTK_SPIN_BUTTON(dialog->priv->ellipse_margin_spin), margin);
+
+}
+
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Prepare round size page.                                       */
 /*--------------------------------------------------------------------------*/
@@ -1398,6 +1725,7 @@ round_size_page_prepare_cb (glTemplateDesigner *dialog)
 
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Prepare cd/dvd size page.                                      */
 /*--------------------------------------------------------------------------*/
@@ -1440,6 +1768,7 @@ cd_size_page_prepare_cb (glTemplateDesigner *dialog)
 
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Prepare Layout page cb.                                        */
 /*--------------------------------------------------------------------------*/
@@ -1467,11 +1796,16 @@ layout_page_prepare_cb (glTemplateDesigner *dialog)
                x_waste = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->rect_x_waste_spin));
                y_waste = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->rect_y_waste_spin));
        }
+       if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(dialog->priv->shape_ellipse_radio))) {
+               w = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->ellipse_w_spin));
+               h = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->ellipse_h_spin));
+               y_waste = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->ellipse_waste_spin));
+               y_waste = x_waste;
+       }
        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(dialog->priv->shape_round_radio))) {
                w = 2*gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->round_r_spin));
                h = w;
                x_waste = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->round_waste_spin));
-               y_waste = x_waste;
        }
        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(dialog->priv->shape_cd_radio))) {
                w = 2*gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->cd_radius_spin));
@@ -1559,14 +1893,15 @@ layout_page_prepare_cb (glTemplateDesigner *dialog)
        }
 
        template = build_template (dialog);
-       gl_wdgt_mini_preview_set_template (GL_WDGT_MINI_PREVIEW(dialog->priv->layout_mini_preview),
-                                          template);
+       gl_mini_preview_set_template (GL_MINI_PREVIEW(dialog->priv->layout_mini_preview),
+                                      template);
        lgl_template_free (template);
 
 
        dialog->priv->stop_signals = FALSE;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Layout page widget changed cb.                                 */
 /*--------------------------------------------------------------------------*/
@@ -1580,31 +1915,32 @@ layout_page_changed_cb (glTemplateDesigner *dialog)
 
        template = build_template (dialog);
 
-       gl_wdgt_mini_preview_set_template (GL_WDGT_MINI_PREVIEW(dialog->priv->layout_mini_preview),
-                                          template);
+       gl_mini_preview_set_template (GL_MINI_PREVIEW(dialog->priv->layout_mini_preview),
+                                      template);
 
        lgl_template_free (template);
 
        dialog->priv->stop_signals = FALSE;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Print test sheet callback.                                     */
 /*--------------------------------------------------------------------------*/
 static void
 print_test_cb (glTemplateDesigner      *dialog)
 {
-       GObject     *label;
-       lglTemplate *template;
-       glPrintOp   *print_op;
+       GObject           *label;
+       lglTemplate       *template;
+       glPrintOpDialog   *print_op;
 
        label = gl_label_new ();
 
        template = build_template (dialog);
-       gl_label_set_template (GL_LABEL(label), template);
+       gl_label_set_template (GL_LABEL(label), template, FALSE);
 
-       print_op = gl_print_op_new (GL_LABEL(label));
-       gl_print_op_force_outline_flag (print_op);
+       print_op = gl_print_op_dialog_new (GL_LABEL(label));
+       gl_print_op_force_outline (GL_PRINT_OP (print_op));
         gtk_print_operation_run (GTK_PRINT_OPERATION (print_op),
                                  GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,
                                  GTK_WINDOW (dialog),
@@ -1614,6 +1950,7 @@ print_test_cb (glTemplateDesigner      *dialog)
        g_object_unref (G_OBJECT(label));
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* Build a template based on current assistant settings.                    */
 /*--------------------------------------------------------------------------*/
@@ -1639,9 +1976,9 @@ build_template (glTemplateDesigner      *dialog)
        desc     = gtk_editable_get_chars (GTK_EDITABLE(dialog->priv->description_entry), 0, -1);
 
        page_size_name =
-               gtk_combo_box_get_active_text (GTK_COMBO_BOX (dialog->priv->pg_size_combo));
+               gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (dialog->priv->pg_size_combo));
        paper = lgl_db_lookup_paper_from_name (page_size_name);
-       if ( g_strcasecmp (paper->id, "Other") == 0 ) {
+       if ( g_ascii_strcasecmp (paper->id, "Other") == 0 ) {
                paper->width =
                        gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->pg_w_spin))
                        / upp;
@@ -1660,6 +1997,14 @@ build_template (glTemplateDesigner      *dialog)
                margin = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->rect_margin_spin));
        }
 
+       if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(dialog->priv->shape_ellipse_radio))) {
+               shape = LGL_TEMPLATE_FRAME_SHAPE_ELLIPSE;
+               w = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->ellipse_w_spin));
+               h = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->ellipse_h_spin));
+               waste = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->ellipse_waste_spin));
+               margin = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->ellipse_margin_spin));
+       }
+
        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(dialog->priv->shape_round_radio))) {
                shape = LGL_TEMPLATE_FRAME_SHAPE_ROUND;
                r = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dialog->priv->round_r_spin));
@@ -1696,18 +2041,19 @@ build_template (glTemplateDesigner      *dialog)
 
        switch (shape) {
        case LGL_TEMPLATE_FRAME_SHAPE_RECT:
-               frame = lgl_template_frame_rect_new ("0",
-                                                    w/upp, h/upp, r/upp,
-                                                    x_waste/upp, y_waste/upp);
+               frame = lgl_template_frame_rect_new ("0", w/upp, h/upp, r/upp, x_waste/upp, y_waste/upp);
+               break;
+       case LGL_TEMPLATE_FRAME_SHAPE_ELLIPSE:
+               frame = lgl_template_frame_ellipse_new ("0", w/upp, h/upp, waste/upp);
                break;
        case LGL_TEMPLATE_FRAME_SHAPE_ROUND:
                frame = lgl_template_frame_round_new ("0", r/upp, waste/upp);
                break;
        case LGL_TEMPLATE_FRAME_SHAPE_CD:
-               frame = lgl_template_frame_cd_new ("0",
-                                                  radius/upp, hole/upp,
-                                                  w/upp, h/upp,
-                                                  waste/upp);
+               frame = lgl_template_frame_cd_new ("0", radius/upp, hole/upp, w/upp, h/upp, waste/upp);
+               break;
+        default:
+                g_assert_not_reached ();
                break;
        }
        lgl_template_add_frame (template, frame);
@@ -1740,19 +2086,13 @@ build_template (glTemplateDesigner      *dialog)
        return template;
 }
 
-/*****************************************************************************/
-/* Construct mini preview widget.                                            */
-/*****************************************************************************/
-GtkWidget *
-gl_template_designer_construct_mini_preview (gchar *name,
-                                            gchar *string1,
-                                            gchar *string2,
-                                            gint   int1,
-                                            gint   int2)
-{
-       gint width  = int1;
-       gint height = int2;
 
-       return gl_wdgt_mini_preview_new (height, width);
-}
 
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index bf5086ae5af961dda88503f3937aaf13fa089415..39b605ee9b6062e35bcc9c0f03a6fecb7aa9e45a 100644 (file)
@@ -1,41 +1,41 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  template-designer.h:  Template designer module header file
+ *  template-designer.h
+ *  Copyright (C) 2003-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __TEMPLATE_DESIGNER_H__
 #define __TEMPLATE_DESIGNER_H__
 
-#include <gtk/gtkassistant.h>
-#include <gtk/gtkwindow.h>
+#include <gtk/gtk.h>
 
 G_BEGIN_DECLS
 
-#define GL_TYPE_TEMPLATE_DESIGNER            (gl_template_designer_get_type ())
-#define GL_TEMPLATE_DESIGNER(obj)            (GTK_CHECK_CAST ((obj), GL_TYPE_TEMPLATE_DESIGNER, glTemplateDesigner))
-#define GL_TEMPLATE_DESIGNER_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_TEMPLATE_DESIGNER, glTemplateDesignerClass))
-#define GL_IS_TEMPLATE_DESIGNER(obj)         (GTK_CHECK_TYPE ((obj), GL_TYPE_TEMPLATE_DESIGNER))
-#define GL_IS_TEMPLATE_DESIGNER_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_TEMPLATE_DESIGNER))
-#define GL_TEMPLATE_DESIGNER_GET_CLASS(obj)  (GTK_CHECK_GET_CLASS ((obj), GL_TYPE_TEMPLATE_DESIGNER, glTemplateDesignerClass))
+#define GL_TYPE_TEMPLATE_DESIGNER (gl_template_designer_get_type ())
+#define GL_TEMPLATE_DESIGNER(obj) \
+        (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_TEMPLATE_DESIGNER, glTemplateDesigner))
+#define GL_TEMPLATE_DESIGNER_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_TEMPLATE_DESIGNER, glTemplateDesignerClass))
+#define GL_IS_TEMPLATE_DESIGNER(obj) \
+        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_TEMPLATE_DESIGNER))
+#define GL_IS_TEMPLATE_DESIGNER_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_TEMPLATE_DESIGNER))
+#define GL_TEMPLATE_DESIGNER_GET_CLASS(obj) \
+        (G_TYPE_INSTANCE_GET_CLASS ((obj), GL_TYPE_TEMPLATE_DESIGNER, glTemplateDesignerClass))
 
 
 typedef struct _glTemplateDesigner              glTemplateDesigner;
@@ -58,16 +58,23 @@ struct  _glTemplateDesignerClass
 
 GType           gl_template_designer_get_type               (void) G_GNUC_CONST;
 
-GtkWidget      *gl_template_designer_new                    (GtkWindow *parent);
+GtkWidget      *gl_template_designer_new                    (GtkWindow          *parent);
 
-/* Semi-public, for use by libglade: */
-GtkWidget      *gl_template_designer_construct_mini_preview (gchar *name,
-                                                             gchar *string1,
-                                                             gchar *string2,
-                                                             gint   int1,
-                                                             gint   int2);
+void            gl_template_designer_set_from_name          (glTemplateDesigner *dialog,
+                                                             const gchar        *name);
 
 
 G_END_DECLS
 
 #endif /* __TEMPLATE_DESIGNER_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/template-history-model.c b/src/template-history-model.c
new file mode 100644 (file)
index 0000000..9105a8f
--- /dev/null
@@ -0,0 +1,243 @@
+/*
+ *  template-history-model.c
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "template-history-model.h"
+
+#include <gio/gio.h>
+
+#include <libglabels.h>
+#include "marshal.h"
+
+
+/*========================================================*/
+/* Private types.                                         */
+/*========================================================*/
+
+struct _glTemplateHistoryModelPrivate {
+
+       GSettings   *history;
+
+        guint        max_n;
+};
+
+enum {
+       CHANGED,
+       LAST_SIGNAL
+};
+
+
+/*========================================================*/
+/* Private globals.                                       */
+/*========================================================*/
+
+static guint signals[LAST_SIGNAL] = {0};
+
+
+/*========================================================*/
+/* Private function prototypes.                           */
+/*========================================================*/
+
+static void gl_template_history_model_finalize (GObject                 *object);
+
+static void history_changed_cb                 (glTemplateHistoryModel  *this);
+
+
+/*****************************************************************************/
+/* Object infrastructure.                                                    */
+/*****************************************************************************/
+G_DEFINE_TYPE (glTemplateHistoryModel, gl_template_history_model, G_TYPE_OBJECT)
+
+
+/*****************************************************************************/
+/* Class Init Function.                                                      */
+/*****************************************************************************/
+static void
+gl_template_history_model_class_init (glTemplateHistoryModelClass *class)
+{
+        GObjectClass  *gobject_class = (GObjectClass *) class;
+
+        gl_template_history_model_parent_class = g_type_class_peek_parent (class);
+
+        gobject_class->finalize = gl_template_history_model_finalize;
+
+       signals[CHANGED] =
+               g_signal_new ("changed",
+                             G_OBJECT_CLASS_TYPE (gobject_class),
+                             G_SIGNAL_RUN_LAST,
+                             G_STRUCT_OFFSET (glTemplateHistoryModelClass, changed),
+                             NULL, NULL,
+                             gl_marshal_VOID__VOID,
+                             G_TYPE_NONE,
+                             0);
+}
+
+
+/*****************************************************************************/
+/* Object Instance Init Function.                                            */
+/*****************************************************************************/
+static void
+gl_template_history_model_init (glTemplateHistoryModel *this)
+{
+        this->priv = g_new0 (glTemplateHistoryModelPrivate, 1);
+
+        this->priv->history = g_settings_new ("org.gnome.glabels-3.history");
+
+        g_return_if_fail (this->priv->history != NULL);
+
+        g_signal_connect_swapped (G_OBJECT (this->priv->history),
+                                  "changed::recent-templates",
+                                  G_CALLBACK (history_changed_cb), this);
+}
+
+
+/*****************************************************************************/
+/* Finalize Method.                                                          */
+/*****************************************************************************/
+static void
+gl_template_history_model_finalize (GObject *object)
+{
+        glTemplateHistoryModel    *this;
+
+        g_return_if_fail (object && IS_GL_TEMPLATE_HISTORY_MODEL (object));
+        this = GL_TEMPLATE_HISTORY_MODEL (object);
+
+        g_object_unref (G_OBJECT(this->priv->history));
+        g_free (this->priv);
+
+        G_OBJECT_CLASS (gl_template_history_model_parent_class)->finalize (object);
+}
+
+
+/*****************************************************************************/
+/** New Object Generator.                                                    */
+/*****************************************************************************/
+glTemplateHistoryModel *
+gl_template_history_model_new (guint n)
+{
+        glTemplateHistoryModel *this;
+
+        this = g_object_new (TYPE_GL_TEMPLATE_HISTORY_MODEL, NULL);
+
+        this->priv->max_n = n;
+
+        return this;
+}
+
+
+/*****************************************************************************/
+/* Add template to history.                                                  */
+/*****************************************************************************/
+void
+gl_template_history_model_add_name (glTemplateHistoryModel *this,
+                                    const gchar            *name)
+{
+        gchar **old;
+        gchar **new;
+        gint    i, j;
+
+        old = g_settings_get_strv (this->priv->history, "recent-templates");
+                                   
+        new = g_new0 (gchar *, this->priv->max_n+1);
+
+        /* Put in first slot. */
+        new[0] = g_strdup (name);
+
+        /* Push everthing else down, pruning any duplicate found. */
+        for ( i = 0, j = 1; (j < (this->priv->max_n-1)) && old[i]; i++ )
+        {
+                if ( lgl_str_utf8_casecmp (name, old[i]) != 0 )
+                {
+                        new[j++] = g_strdup (old[i]);
+                }
+        }
+
+        g_settings_set_strv (this->priv->history, "recent-templates",
+                             (const gchar * const *)new);
+
+        g_strfreev (old);
+        g_strfreev (new);
+}
+
+
+/*****************************************************************************/
+/* History changed callback.                                                 */
+/*****************************************************************************/
+static void
+history_changed_cb (glTemplateHistoryModel  *this)
+{
+        g_signal_emit (G_OBJECT(this), signals[CHANGED], 0);
+}
+
+
+/*****************************************************************************/
+/* Get list of template families.                                            */
+/*****************************************************************************/
+GList *
+gl_template_history_model_get_name_list (glTemplateHistoryModel *this)
+{
+        gchar **strv;
+        GList  *list = NULL;
+        gint    i;
+
+        strv = g_settings_get_strv (this->priv->history, "recent-templates");
+
+        /*
+         * Proof read name list; transfer storage to new list.
+         */
+        for ( i = 0; strv[i]; i++ )
+        {
+                if ( lgl_db_does_template_name_exist (strv[i]) )
+                {
+                        list = g_list_append (list, g_strdup (strv[i]));
+                }
+        }
+        g_strfreev (strv);
+
+        return list;
+}
+
+
+/*****************************************************************************/
+/* Free template name list.                                                  */
+/*****************************************************************************/
+void
+gl_template_history_model_free_name_list (GList *list)
+{
+        GList *p;
+
+        for ( p = list; p; p=p->next )
+        {
+                g_free (p->data);
+        }
+        g_list_free (list);
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/template-history-model.h b/src/template-history-model.h
new file mode 100644 (file)
index 0000000..1de9866
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ *  template-history-model.h
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __GL_TEMPLATE_HISTORY_MODEL_H__
+#define __GL_TEMPLATE_HISTORY_MODEL_H__
+
+
+#include <glib-object.h>
+
+
+G_BEGIN_DECLS
+
+/* Utility Macros */
+#define TYPE_GL_TEMPLATE_HISTORY_MODEL              (gl_template_history_model_get_type ())
+#define GL_TEMPLATE_HISTORY_MODEL(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GL_TEMPLATE_HISTORY_MODEL, glTemplateHistoryModel))
+#define GL_TEMPLATE_HISTORY_MODEL_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GL_TEMPLATE_HISTORY_MODEL, glTemplateHistoryModelClass))
+#define IS_GL_TEMPLATE_HISTORY_MODEL(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GL_TEMPLATE_HISTORY_MODEL))
+#define IS_GL_TEMPLATE_HISTORY_MODEL_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GL_TEMPLATE_HISTORY_MODEL))
+#define GL_TEMPLATE_HISTORY_MODEL_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), TYPE_GL_TEMPLATE_HISTORY_MODEL, glTemplateHistoryModelClass))
+
+
+/* Type definitions */
+typedef struct _glTemplateHistoryModel          glTemplateHistoryModel;
+typedef struct _glTemplateHistoryModelPrivate   glTemplateHistoryModelPrivate;
+typedef struct _glTemplateHistoryModelClass     glTemplateHistoryModelClass;
+
+
+/** GL_TEMPLATE_HISTORY_MODEL Object */
+struct _glTemplateHistoryModel {
+        GObject                           parent;
+
+        glTemplateHistoryModelPrivate    *priv;
+};
+
+/** GL_TEMPLATE_HISTORY_MODEL Class */
+struct _glTemplateHistoryModelClass {
+        GObjectClass                      parent_class;
+
+        /*
+         * Signals
+         */
+        void (*changed)     (glTemplateHistoryModel *this,
+                             gpointer                user_data);
+
+};
+
+
+GType                   gl_template_history_model_get_type       (void) G_GNUC_CONST;
+
+glTemplateHistoryModel *gl_template_history_model_new            (guint                   n);
+
+void                    gl_template_history_model_add_name       (glTemplateHistoryModel *this,
+                                                                  const gchar            *name);
+
+GList                  *gl_template_history_model_get_name_list  (glTemplateHistoryModel *this);
+void                    gl_template_history_model_free_name_list (GList                  *list);
+
+
+G_END_DECLS
+
+#endif /* __GL_TEMPLATE_HISTORY_MODEL_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/template-history.c b/src/template-history.c
new file mode 100644 (file)
index 0000000..166567c
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ *  template-history.c
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "template-history.h"
+
+
+#define MAX_TEMPLATES 5
+
+
+/*========================================================*/
+/* Public globals.                                        */
+/*========================================================*/
+
+glTemplateHistoryModel *gl_template_history = NULL;
+
+
+/*========================================================*/
+/* Private types.                                         */
+/*========================================================*/
+
+/*========================================================*/
+/* Private globals.                                       */
+/*========================================================*/
+
+/*========================================================*/
+/* Private function prototypes.                           */
+/*========================================================*/
+
+
+/*****************************************************************************/
+/* Initialize template history.                                                  */
+/*****************************************************************************/
+void
+gl_template_history_init (void)
+{
+        gl_template_history = gl_template_history_model_new (MAX_TEMPLATES);
+}
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/template-history.h b/src/template-history.h
new file mode 100644 (file)
index 0000000..4b0e784
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ *  template-history.h
+ *  Copyright (C) 2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __GL_TEMPLATE_HISTORY_H__
+#define __GL_TEMPLATE_HISTORY_H__
+
+
+#include "template-history-model.h"
+
+
+G_BEGIN_DECLS
+
+
+glTemplateHistoryModel *gl_template_history;
+
+
+void            gl_template_history_init (void);
+
+
+G_END_DECLS
+
+#endif /* __GL_TEMPLATE_HISTORY_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 7a77fbd61b9c6e0e40977a4c162dd8b3a0294b21..f9dec9cc0cf89b5e649687d7d92464c2df05b485 100644 (file)
@@ -1,25 +1,21 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  text_node.c:  text node module
+ *  text-node.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 
 #include "debug.h"
 
+
 /*===========================================*/
 /* Local function prototypes                 */
 /*===========================================*/
 
-static glTextNode *extract_text_node  (gchar          *text,
-                                      gint           *n);
+static glTextNode *extract_text_node  (const gchar         *text,
+                                      gint                *n);
+
+static gboolean    is_empty_field     (const glTextNode    *text_node,
+                                      const glMergeRecord *record);
 
-static gboolean    is_empty_field     (glTextNode     *text_node,
-                                      glMergeRecord  *record);
 
-\f
 /****************************************************************************/
 /* Expand single node into representative string.                           */
 /****************************************************************************/
 gchar *
-gl_text_node_expand (glTextNode    *text_node,
-                    glMergeRecord *record)
+gl_text_node_expand (const glTextNode    *text_node,
+                    const glMergeRecord *record)
 {
        gchar *text;
 
@@ -68,12 +65,13 @@ gl_text_node_expand (glTextNode    *text_node,
        }
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Is node a field that evaluates empty?                          */
 /*--------------------------------------------------------------------------*/
 static gboolean
-is_empty_field (glTextNode    *text_node,
-               glMergeRecord *record)
+is_empty_field (const glTextNode    *text_node,
+               const glMergeRecord *record)
 {
        gchar    *text;
        gboolean  ret = FALSE;
@@ -89,23 +87,25 @@ is_empty_field (glTextNode    *text_node,
        return ret;
 }
 
+
 /****************************************************************************/
 /* Create a single text node from given text.                               */
 /****************************************************************************/
 glTextNode *
-gl_text_node_new_from_text (gchar *text)
+gl_text_node_new_from_text (const gchar *text)
 {
        gint n;
 
        return extract_text_node (text, &n);
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Create a single text node from given text. n = characters used */
 /*--------------------------------------------------------------------------*/
 static glTextNode *
-extract_text_node (gchar *text,
-                  gint  *n)
+extract_text_node (const gchar *text,
+                  gint        *n)
 {
        glTextNode *text_node;
        gchar      *p;
@@ -118,7 +118,7 @@ extract_text_node (gchar *text,
                text_node->field_flag = TRUE;
                *n = strlen ("${");
                text += *n;
-               for (p = text, m = 0; *p != 0; p++, m++, (*n)++) {
+               for (p = (gchar *)text, m = 0; *p != 0; p++, m++, (*n)++) {
                        if (*p == '}') {
                                (*n)++;
                                break;
@@ -128,7 +128,7 @@ extract_text_node (gchar *text,
        } else {
                /* We are at the beginning of a literal node */
                text_node->field_flag = FALSE;
-               for (p = text, *n = 0; *p != 0; p++, (*n)++) {
+               for (p = (gchar *)text, *n = 0; *p != 0; p++, (*n)++) {
                        if (strncmp (p, "${", strlen ("${")) == 0)
                                break;
                        if (*p == '\n')
@@ -140,11 +140,12 @@ extract_text_node (gchar *text,
        return text_node;
 }
 
+
 /****************************************************************************/
 /* Copy a single text node.                                                 */
 /****************************************************************************/
 glTextNode *
-gl_text_node_dup (glTextNode *src)
+gl_text_node_dup (const glTextNode *src)
 {
        glTextNode *dst;
 
@@ -158,6 +159,7 @@ gl_text_node_dup (glTextNode *src)
        return dst;
 }
 
+
 /****************************************************************************/
 /* Free a single text node.                                                 */
 /****************************************************************************/
@@ -172,12 +174,13 @@ gl_text_node_free (glTextNode **text_node)
        *text_node = NULL;
 }
 
+
 /****************************************************************************/
 /* Compare 2 text nodes for equality.                                       */
 /****************************************************************************/
 gboolean
-gl_text_node_equal (glTextNode     *text_node1,
-                   glTextNode     *text_node2)
+gl_text_node_equal (const glTextNode     *text_node1,
+                   const glTextNode     *text_node2)
 {
        /* First take care of the case of either or both being NULL. */
        if ( text_node1 == NULL ) {
@@ -206,12 +209,13 @@ gl_text_node_equal (glTextNode     *text_node1,
        return (strcmp (text_node1->data, text_node2->data) == 0);
 }
 
+
 /****************************************************************************/
 /* Expand text lines into single string.                                    */
 /****************************************************************************/
 gchar *
-gl_text_node_lines_expand (GList         *lines,
-                          glMergeRecord *record)
+gl_text_node_lines_expand (GList               *lines,
+                          const glMergeRecord *record)
 {
        GList      *p_line, *p_node;
        glTextNode *text_node;
@@ -252,11 +256,12 @@ gl_text_node_lines_expand (GList         *lines,
        return text;
 }
 
+
 /****************************************************************************/
 /* Parse a string back into text lines.                                     */
 /****************************************************************************/
 GList *
-gl_text_node_lines_new_from_text (gchar *text)
+gl_text_node_lines_new_from_text (const gchar *text)
 {
        GList      *lines, *nodes;
        glTextNode *text_node;
@@ -265,7 +270,7 @@ gl_text_node_lines_new_from_text (gchar *text)
 
        lines = NULL;
        nodes = NULL;
-       for (p = text; *p != 0; p += n) {
+       for (p = (gchar *)text; *p != 0; p += n) {
                if (*p != '\n') {
                        text_node = extract_text_node (p, &n);
                        nodes = g_list_append (nodes, text_node);
@@ -282,6 +287,7 @@ gl_text_node_lines_new_from_text (gchar *text)
        return lines;
 }
 
+
 /****************************************************************************/
 /* Copy a list of text lines.                                               */
 /****************************************************************************/
@@ -306,6 +312,7 @@ gl_text_node_lines_dup (GList *src_lines)
        return dst_lines;
 }
 
+
 /****************************************************************************/
 /* Free a list of text lines.                                               */
 /****************************************************************************/
@@ -331,6 +338,7 @@ gl_text_node_lines_free (GList **lines)
        *lines = NULL;
 }
 
+
 /****************************************************************************/
 /* For debugging:  descend and print lines list.                            */
 /****************************************************************************/
@@ -354,3 +362,13 @@ gl_text_node_lines_print (GList * lines )
 
 }
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 4a9bd2281f133e17ae3b15828ab6a8b486d43392..0c7a8f90436d2244dc8290986b6b259e0fa8e02d 100644 (file)
@@ -1,31 +1,27 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  text_node.h:  text node module header file
+ *  text-node.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #ifndef __TEXT_NODE_H__
 #define __TEXT_NODE_H__
 
-#include <glib/gtypes.h>
-#include <glib/glist.h>
+#include <glib.h>
 #include "merge.h"
 
 G_BEGIN_DECLS
@@ -35,24 +31,35 @@ typedef struct {
        gchar *data;
 } glTextNode;
 
-gchar      *gl_text_node_expand              (glTextNode     *text_node,
-                                             glMergeRecord  *record);
-glTextNode *gl_text_node_new_from_text       (gchar          *text);
-glTextNode *gl_text_node_dup                 (glTextNode     *text_node);
-void        gl_text_node_free                (glTextNode    **text_node);
+gchar      *gl_text_node_expand              (const glTextNode    *text_node,
+                                             const glMergeRecord *record);
+glTextNode *gl_text_node_new_from_text       (const gchar         *text);
+glTextNode *gl_text_node_dup                 (const glTextNode    *text_node);
+void        gl_text_node_free                (glTextNode         **text_node);
 
-gboolean    gl_text_node_equal               (glTextNode     *text_node1,
-                                             glTextNode     *text_node2);
+gboolean    gl_text_node_equal               (const glTextNode    *text_node1,
+                                             const glTextNode    *text_node2);
 
-gchar      *gl_text_node_lines_expand        (GList          *lines,
-                                             glMergeRecord  *record);
-GList      *gl_text_node_lines_new_from_text (gchar          *text);
-GList      *gl_text_node_lines_dup           (GList          *lines);
-void        gl_text_node_lines_free          (GList         **lines);
+gchar      *gl_text_node_lines_expand        (GList               *lines,
+                                             const glMergeRecord *record);
+GList      *gl_text_node_lines_new_from_text (const gchar         *text);
+GList      *gl_text_node_lines_dup           (GList               *lines);
+void        gl_text_node_lines_free          (GList              **lines);
 
 /* debug function */
-void        gl_text_node_lines_print         (GList          *lines);
+void        gl_text_node_lines_print         (GList               *lines);
 
 G_END_DECLS
 
 #endif
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 9a06936fee44df3d97b7255e5d169c88951c47f8..78cdbcf1182b322a8f2f9a4758ea7b944abf6bb0 100644 (file)
@@ -1,25 +1,21 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  ui-commands.c:  GLabels UI commands module
+ *  ui-commands.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 #include "ui-commands.h"
 
 #include <glib/gi18n.h>
-#include <gtk/gtkwindow.h>
-#include <gtk/gtkaboutdialog.h>
-#include <libgnome/gnome-help.h>
+#include <gtk/gtk.h>
 
+#include "ui.h"
 #include "view.h"
 #include "file.h"
 #include "template-designer.h"
-#include "print-op.h"
+#include "print-op-dialog.h"
 #include "prefs.h"
 #include "prefs-dialog.h"
 #include "recent.h"
 #include "debug.h"
 
 
-\f
 /****************************************************************************/
 /** File/New command.                                                       */
 /****************************************************************************/
@@ -59,6 +53,7 @@ gl_ui_cmd_file_new (GtkAction *action,
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /****************************************************************************/
 /** File/Properties command.                                                */
 /****************************************************************************/
@@ -76,6 +71,7 @@ gl_ui_cmd_file_properties (GtkAction *action,
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /****************************************************************************/
 /** File/Template-Designer command.                                         */
 /****************************************************************************/
@@ -97,6 +93,7 @@ gl_ui_cmd_file_template_designer (GtkAction *action,
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /****************************************************************************/
 /** File/Open command.                                                      */
 /****************************************************************************/
@@ -114,6 +111,7 @@ gl_ui_cmd_file_open (GtkAction *action,
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /****************************************************************************/
 /** File/Open-Recent command.                                               */
 /****************************************************************************/
@@ -143,6 +141,7 @@ gl_ui_cmd_file_open_recent (GtkRecentChooser *chooser,
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /****************************************************************************/
 /** File/Save command.                                                      */
 /****************************************************************************/
@@ -160,6 +159,7 @@ gl_ui_cmd_file_save (GtkAction *action,
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /****************************************************************************/
 /** File/Save-as command.                                                   */
 /****************************************************************************/
@@ -177,6 +177,7 @@ gl_ui_cmd_file_save_as (GtkAction *action,
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /****************************************************************************/
 /** File/Print command.                                                     */
 /****************************************************************************/
@@ -184,7 +185,7 @@ void
 gl_ui_cmd_file_print (GtkAction *action,
                       glWindow  *window)
 {
-        glPrintOp               *op;
+        glPrintOpDialog         *op;
         GtkPrintOperationResult  result;
 
         gl_debug (DEBUG_COMMANDS, "START");
@@ -192,11 +193,11 @@ gl_ui_cmd_file_print (GtkAction *action,
         g_return_if_fail (action && GTK_IS_ACTION(action));
         g_return_if_fail (window && GL_IS_WINDOW(window));
 
-        op = gl_print_op_new (GL_VIEW(window->view)->label);
+        op = gl_print_op_dialog_new (GL_VIEW(window->view)->label);
 
         if (window->print_settings)
         {
-                gl_print_op_set_settings (op, window->print_settings);
+                gl_print_op_set_settings (GL_PRINT_OP (op), window->print_settings);
         }
 
         result = gtk_print_operation_run (GTK_PRINT_OPERATION (op),
@@ -207,12 +208,13 @@ gl_ui_cmd_file_print (GtkAction *action,
         if ( result == GTK_PRINT_OPERATION_RESULT_APPLY )
         {
                 gl_print_op_free_settings (window->print_settings);
-                window->print_settings = gl_print_op_get_settings (op);
+                window->print_settings = gl_print_op_get_settings (GL_PRINT_OP (op));
         }
 
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /****************************************************************************/
 /** File/Close command.                                                     */
 /****************************************************************************/
@@ -230,6 +232,7 @@ gl_ui_cmd_file_close (GtkAction *action,
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /****************************************************************************/
 /** File/Quit command.                                                      */
 /****************************************************************************/
@@ -248,6 +251,42 @@ gl_ui_cmd_file_quit (GtkAction *action,
 }
 
 
+/****************************************************************************/
+/** Edit/Undo command.                                                      */
+/****************************************************************************/
+void
+gl_ui_cmd_edit_undo (GtkAction *action,
+                     glWindow  *window)
+{
+        gl_debug (DEBUG_COMMANDS, "START");
+
+        g_return_if_fail (action && GTK_IS_ACTION(action));
+        g_return_if_fail (window && GL_IS_WINDOW(window));
+
+        gl_label_undo (GL_LABEL (GL_VIEW (window->view)->label));
+
+        gl_debug (DEBUG_COMMANDS, "END");
+}
+
+
+/****************************************************************************/
+/** Edit/Redo command.                                                      */
+/****************************************************************************/
+void
+gl_ui_cmd_edit_redo (GtkAction *action,
+                     glWindow  *window)
+{
+        gl_debug (DEBUG_COMMANDS, "START");
+
+        g_return_if_fail (action && GTK_IS_ACTION(action));
+        g_return_if_fail (window && GL_IS_WINDOW(window));
+
+        gl_label_redo (GL_LABEL (GL_VIEW (window->view)->label));
+
+        gl_debug (DEBUG_COMMANDS, "END");
+}
+
+
 /****************************************************************************/
 /** Edit/Cut command.                                                       */
 /****************************************************************************/
@@ -260,11 +299,12 @@ gl_ui_cmd_edit_cut (GtkAction *action,
         g_return_if_fail (action && GTK_IS_ACTION(action));
         g_return_if_fail (window && GL_IS_WINDOW(window));
 
-        gl_view_cut (GL_VIEW(window->view)); 
+        gl_label_cut_selection (window->label);
 
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /****************************************************************************/
 /** Edit/Copy command.                                                      */
 /****************************************************************************/
@@ -277,11 +317,12 @@ gl_ui_cmd_edit_copy (GtkAction *action,
         g_return_if_fail (action && GTK_IS_ACTION(action));
         g_return_if_fail (window && GL_IS_WINDOW(window));
 
-        gl_view_copy (GL_VIEW(window->view)); 
+        gl_label_copy_selection (window->label);
 
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /****************************************************************************/
 /** Edit/Paste command.                                                     */
 /****************************************************************************/
@@ -294,7 +335,7 @@ gl_ui_cmd_edit_paste (GtkAction *action,
         g_return_if_fail (action && GTK_IS_ACTION(action));
         g_return_if_fail (window && GL_IS_WINDOW(window));
 
-        gl_view_paste (GL_VIEW(window->view)); 
+        gl_label_paste (window->label);
 
         gl_debug (DEBUG_COMMANDS, "END");
 }
@@ -312,7 +353,7 @@ gl_ui_cmd_edit_delete (GtkAction *action,
         g_return_if_fail (action && GTK_IS_ACTION(action));
         g_return_if_fail (window && GL_IS_WINDOW(window));
 
-        gl_view_delete_selection (GL_VIEW(window->view)); 
+        gl_label_delete_selection (GL_VIEW(window->view)->label);
 
         gl_debug (DEBUG_COMMANDS, "END");
 }
@@ -330,11 +371,12 @@ gl_ui_cmd_edit_select_all (GtkAction *action,
         g_return_if_fail (action && GTK_IS_ACTION(action));
         g_return_if_fail (window && GL_IS_WINDOW(window));
 
-        gl_view_select_all (GL_VIEW(window->view)); 
+        gl_label_select_all (GL_VIEW(window->view)->label); 
 
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /****************************************************************************/
 /** Edit/Unselect-all command.                                              */
 /****************************************************************************/
@@ -347,11 +389,12 @@ gl_ui_cmd_edit_unselect_all (GtkAction *action,
         g_return_if_fail (action && GTK_IS_ACTION(action));
         g_return_if_fail (window && GL_IS_WINDOW(window));
 
-        gl_view_unselect_all (GL_VIEW(window->view)); 
+        gl_label_unselect_all (GL_VIEW(window->view)->label); 
 
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /****************************************************************************/
 /** Edit/Preferences command.                                               */
 /****************************************************************************/
@@ -386,6 +429,7 @@ gl_ui_cmd_edit_preferences (GtkAction *action,
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** View/Property-bar-toggle command.                                        */
 /*****************************************************************************/
@@ -402,39 +446,16 @@ gl_ui_cmd_view_property_bar_toggle (GtkToggleAction *action,
 
         state =  gtk_toggle_action_get_active (action);
 
-        gl_prefs->property_toolbar_visible = state;
+        gl_prefs_model_set_property_toolbar_visible (gl_prefs, state);
         if (state) {
                 gtk_widget_show (GTK_WIDGET (window->property_bar));
         } else {
                 gtk_widget_hide (GTK_WIDGET (window->property_bar));
         }
-        gl_prefs_model_save_settings (gl_prefs);
 
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
-/*****************************************************************************/
-/** View/Property-bar-tooltips-toggle command.                               */
-/*****************************************************************************/
-void
-gl_ui_cmd_view_property_bar_tips_toggle (GtkToggleAction *action,
-                                         glWindow        *window)
-{
-        gboolean     state;
-
-        gl_debug (DEBUG_COMMANDS, "START");
-
-        g_return_if_fail (action && GTK_IS_TOGGLE_ACTION(action));
-        g_return_if_fail (window && GL_IS_WINDOW(window));
-
-        state =  gtk_toggle_action_get_active (action);
-
-        gl_prefs->property_toolbar_view_tooltips = state;
-        gl_ui_property_bar_set_tooltips (window->property_bar, state);
-        gl_prefs_model_save_settings (gl_prefs);
-
-        gl_debug (DEBUG_COMMANDS, "END");
-}
 
 /*****************************************************************************/
 /** View/Grid-toggle command.                                                */
@@ -461,12 +482,12 @@ gl_ui_cmd_view_grid_toggle (GtkToggleAction *action,
                 }
         }
 
-        gl_prefs->grid_visible = state;
-        gl_prefs_model_save_settings (gl_prefs);
+        gl_prefs_model_set_grid_visible (gl_prefs, state);
 
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** View/Markup-toggle command.                                              */
 /*****************************************************************************/
@@ -492,12 +513,12 @@ gl_ui_cmd_view_markup_toggle (GtkToggleAction *action,
                 }
         }
 
-        gl_prefs->markup_visible = state;
-        gl_prefs_model_save_settings (gl_prefs);
+        gl_prefs_model_set_markup_visible (gl_prefs, state);
 
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** View/Zoom-in command.                                                    */
 /*****************************************************************************/
@@ -518,6 +539,7 @@ gl_ui_cmd_view_zoomin (GtkAction *action,
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** View/Zoom-out command.                                                   */
 /*****************************************************************************/
@@ -538,6 +560,7 @@ gl_ui_cmd_view_zoomout (GtkAction *action,
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** View/Zoom-1:1 command.                                                   */
 /*****************************************************************************/
@@ -558,6 +581,7 @@ gl_ui_cmd_view_zoom1to1 (GtkAction *action,
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** View/Zoom-to-fit command.                                                */
 /*****************************************************************************/
@@ -578,6 +602,7 @@ gl_ui_cmd_view_zoom_to_fit (GtkAction *action,
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** Objects/Arrow-mode command.                                              */
 /*****************************************************************************/
@@ -597,6 +622,7 @@ gl_ui_cmd_objects_arrow_mode (GtkAction *action,
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** Objects/Create-text object command.                                      */
 /*****************************************************************************/
@@ -618,6 +644,7 @@ gl_ui_cmd_objects_create_text (GtkAction *action,
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** Objects/Create-box object command.                                       */
 /*****************************************************************************/
@@ -639,6 +666,7 @@ gl_ui_cmd_objects_create_box (GtkAction *action,
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** Objects/Create-line object command.                                      */
 /*****************************************************************************/
@@ -660,6 +688,7 @@ gl_ui_cmd_objects_create_line (GtkAction *action,
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** Objects/Create-ellipse object command.                                   */
 /*****************************************************************************/
@@ -681,6 +710,7 @@ gl_ui_cmd_objects_create_ellipse (GtkAction *action,
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** Objects/Create-image object command.                                     */
 /*****************************************************************************/
@@ -702,6 +732,7 @@ gl_ui_cmd_objects_create_image (GtkAction *action,
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** Objects/Create-barcode object command.                                   */
 /*****************************************************************************/
@@ -723,6 +754,7 @@ gl_ui_cmd_objects_create_barcode (GtkAction *action,
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** Objects/Raise command.                                                   */
 /*****************************************************************************/
@@ -736,13 +768,14 @@ gl_ui_cmd_objects_raise (GtkAction *action,
         g_return_if_fail (action && GTK_IS_ACTION(action));
         g_return_if_fail (window && GL_IS_WINDOW(window));
 
-        if (window->view != NULL) {
-                gl_view_raise_selection (GL_VIEW(window->view));
+        if (window->label != NULL) {
+                gl_label_raise_selection_to_top (window->label);
         }
 
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** Objects/Lower command.                                                   */
 /*****************************************************************************/
@@ -756,13 +789,14 @@ gl_ui_cmd_objects_lower (GtkAction *action,
         g_return_if_fail (action && GTK_IS_ACTION(action));
         g_return_if_fail (window && GL_IS_WINDOW(window));
 
-        if (window->view != NULL) {
-                gl_view_lower_selection (GL_VIEW(window->view));
+        if (window->label != NULL) {
+                gl_label_lower_selection_to_bottom (window->label);
         }
 
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** Objects/Rotate-left-90-degrees command.                                  */
 /*****************************************************************************/
@@ -776,13 +810,14 @@ gl_ui_cmd_objects_rotate_left (GtkAction *action,
         g_return_if_fail (action && GTK_IS_ACTION(action));
         g_return_if_fail (window && GL_IS_WINDOW(window));
 
-        if (window->view != NULL) {
-                gl_view_rotate_selection_left (GL_VIEW(window->view));
+        if (window->label != NULL) {
+                gl_label_rotate_selection_left (window->label);
         }
 
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** Objects/Rotate-right-90-degrees command.                                 */
 /*****************************************************************************/
@@ -796,13 +831,14 @@ gl_ui_cmd_objects_rotate_right (GtkAction *action,
         g_return_if_fail (action && GTK_IS_ACTION(action));
         g_return_if_fail (window && GL_IS_WINDOW(window));
 
-        if (window->view != NULL) {
-                gl_view_rotate_selection_right (GL_VIEW(window->view));
+        if (window->label != NULL) {
+                gl_label_rotate_selection_right (window->label);
         }
 
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** Objects/Flip-horizontally command.                                       */
 /*****************************************************************************/
@@ -816,13 +852,14 @@ gl_ui_cmd_objects_flip_horiz (GtkAction *action,
         g_return_if_fail (action && GTK_IS_ACTION(action));
         g_return_if_fail (window && GL_IS_WINDOW(window));
 
-        if (window->view != NULL) {
-                gl_view_flip_selection_horiz (GL_VIEW(window->view));
+        if (window->label != NULL) {
+                gl_label_flip_selection_horiz (window->label);
         }
 
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** Objects/Flip-vertically command.                                         */
 /*****************************************************************************/
@@ -836,13 +873,14 @@ gl_ui_cmd_objects_flip_vert (GtkAction *action,
         g_return_if_fail (action && GTK_IS_ACTION(action));
         g_return_if_fail (window && GL_IS_WINDOW(window));
 
-        if (window->view != NULL) {
-                gl_view_flip_selection_vert (GL_VIEW(window->view));
+        if (window->label != NULL) {
+                gl_label_flip_selection_vert (window->label);
         }
 
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** Objects/Align-left command.                                              */
 /*****************************************************************************/
@@ -856,13 +894,14 @@ gl_ui_cmd_objects_align_left (GtkAction *action,
         g_return_if_fail (action && GTK_IS_ACTION(action));
         g_return_if_fail (window && GL_IS_WINDOW(window));
 
-        if (window->view != NULL) {
-                gl_view_align_selection_left (GL_VIEW(window->view));
+        if (window->label != NULL) {
+                gl_label_align_selection_left (window->label);
         }
 
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** Objects/Align-right command.                                             */
 /*****************************************************************************/
@@ -876,13 +915,14 @@ gl_ui_cmd_objects_align_right (GtkAction *action,
         g_return_if_fail (action && GTK_IS_ACTION(action));
         g_return_if_fail (window && GL_IS_WINDOW(window));
 
-        if (window->view != NULL) {
-                gl_view_align_selection_right (GL_VIEW(window->view));
+        if (window->label != NULL) {
+                gl_label_align_selection_right (window->label);
         }
 
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** Objects/Align-horizontal-center command.                                 */
 /*****************************************************************************/
@@ -896,13 +936,14 @@ gl_ui_cmd_objects_align_hcenter (GtkAction *action,
         g_return_if_fail (action && GTK_IS_ACTION(action));
         g_return_if_fail (window && GL_IS_WINDOW(window));
 
-        if (window->view != NULL) {
-                gl_view_align_selection_hcenter (GL_VIEW(window->view));
+        if (window->label != NULL) {
+                gl_label_align_selection_hcenter (window->label);
         }
 
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** Objects/Align-top command.                                               */
 /*****************************************************************************/
@@ -916,13 +957,14 @@ gl_ui_cmd_objects_align_top (GtkAction *action,
         g_return_if_fail (action && GTK_IS_ACTION(action));
         g_return_if_fail (window && GL_IS_WINDOW(window));
 
-        if (window->view != NULL) {
-                gl_view_align_selection_top (GL_VIEW(window->view));
+        if (window->label != NULL) {
+                gl_label_align_selection_top (window->label);
         }
 
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** Objects/Align-bottom command.                                            */
 /*****************************************************************************/
@@ -936,13 +978,14 @@ gl_ui_cmd_objects_align_bottom (GtkAction *action,
         g_return_if_fail (action && GTK_IS_ACTION(action));
         g_return_if_fail (window && GL_IS_WINDOW(window));
 
-        if (window->view != NULL) {
-                gl_view_align_selection_bottom (GL_VIEW(window->view));
+        if (window->label != NULL) {
+                gl_label_align_selection_bottom (window->label);
         }
 
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** Objects/Align-vertical center command.                                   */
 /*****************************************************************************/
@@ -956,13 +999,14 @@ gl_ui_cmd_objects_align_vcenter (GtkAction *action,
         g_return_if_fail (action && GTK_IS_ACTION(action));
         g_return_if_fail (window && GL_IS_WINDOW(window));
 
-        if (window->view != NULL) {
-                gl_view_align_selection_vcenter (GL_VIEW(window->view));
+        if (window->label != NULL) {
+                gl_label_align_selection_vcenter (window->label);
         }
 
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** Objects/Center-horizontally command.                                     */
 /*****************************************************************************/
@@ -976,13 +1020,14 @@ gl_ui_cmd_objects_center_horiz (GtkAction *action,
         g_return_if_fail (action && GTK_IS_ACTION(action));
         g_return_if_fail (window && GL_IS_WINDOW(window));
 
-        if (window->view != NULL) {
-                gl_view_center_selection_horiz (GL_VIEW(window->view));
+        if (window->label != NULL) {
+                gl_label_center_selection_horiz (window->label);
         }
 
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** Objects/Center-vertically command.                                       */
 /*****************************************************************************/
@@ -996,13 +1041,14 @@ gl_ui_cmd_objects_center_vert (GtkAction *action,
         g_return_if_fail (action && GTK_IS_ACTION(action));
         g_return_if_fail (window && GL_IS_WINDOW(window));
 
-        if (window->view != NULL) {
-                gl_view_center_selection_vert (GL_VIEW(window->view));
+        if (window->label != NULL) {
+                gl_label_center_selection_vert (window->label);
         }
 
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /*****************************************************************************/
 /** Objects/Edit- merge-properties command.                                  */
 /*****************************************************************************/
@@ -1040,6 +1086,7 @@ gl_ui_cmd_objects_merge_properties (GtkAction *action,
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
 /****************************************************************************/
 /** Help/Contents command.                                                  */
 /****************************************************************************/
@@ -1054,7 +1101,10 @@ gl_ui_cmd_help_contents (GtkAction *action,
         g_return_if_fail (action && GTK_IS_ACTION(action));
         g_return_if_fail (window && GL_IS_WINDOW(window));
 
-        gnome_help_display_with_doc_id (NULL, NULL, "glabels.xml", NULL, &error);
+        gtk_show_uri (gtk_widget_get_screen (GTK_WIDGET (window)),
+                      "ghelp:glabels-3.0",
+                      gtk_get_current_event_time(),
+                      &error);
         
         if (error != NULL)
         {
@@ -1076,45 +1126,55 @@ gl_ui_cmd_help_about (GtkAction *action,
 {
         static GtkWidget *about = NULL;
 
+        gchar            *pixbuf_filename;
         GdkPixbuf        *pixbuf = NULL;
         
         const gchar *authors[] = {
                 "Jim Evins",
                 " ",
                 _("Glabels includes contributions from:"),
+                "Mario Blättermann",
+                "Robin Stuart",
+                "Samuel Lown",
                 "Frederic Ruaudel",
                 "Wayne Schuller",
                 "Emmanuel Pacaud",
                 "Austin Henry",
                 " ",
                 _("See the file AUTHORS for additional credits,"),
-                _("or visit http://glabels.sourceforge.net/"),
+                _("or visit http://glabels.org/"),
+                NULL
+        };
+
+        const gchar *documenters[] = {
+                "Jim Evins",
+                "Mario Blättermann",
                 NULL
         };
         
         const gchar *artists[] = {
-                "Nestor Di",
                 "Jim Evins",
                 NULL
         };
-        
-        const gchar *copy_text = "Copyright \xc2\xa9 2001-2009 Jim Evins";
+
+        const gchar *copy_text = "Copyright \xc2\xa9 2001-2010 Jim Evins";
 
         const gchar *about_text = _("A label and business card creation program.\n");
 
-        const gchar *url = "http://glabels.sourceforge.net";
+        const gchar *url = "http://glabels.org";
 
         const gchar *translator_credits = _("translator-credits");
 
         const gchar *license = _(
-              "Glabels is free software; you can redistribute it and/or modify it\n"
-              "under the terms of the GNU General Public License as published by\n"
-              "the Free Software Foundation; either version 2 of the License, or\n"
-              "(at your option) any later version.\n" "\n"
-              "This program is distributed in the hope that it will be useful, but\n"
-              "WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-              "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See\n"
-              "the GNU General Public License for more details.\n");
+                "gLabels is free software: you can redistribute it and/or modify\n"
+                "it under the terms of the GNU General Public License as published by\n"
+                "the Free Software Foundation, either version 3 of the License, or\n"
+                "(at your option) any later version.\n"
+                "\n"
+                "gLabels is distributed in the hope that it will be useful,\n"
+                "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+                "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+                "GNU General Public License for more details.\n");
 
         gl_debug (DEBUG_COMMANDS, "START");
 
@@ -1130,21 +1190,24 @@ gl_ui_cmd_help_about (GtkAction *action,
 
         } else {
         
-                pixbuf = gdk_pixbuf_new_from_file (GLABELS_PIXMAP_DIR "glabels-splash.png", NULL);
+                pixbuf_filename = g_build_filename (GLABELS_DATA_DIR, "pixmaps", "glabels-logo.png", NULL);
+                pixbuf = gdk_pixbuf_new_from_file (pixbuf_filename, NULL);
+                g_free (pixbuf_filename);
 
                 about = gtk_about_dialog_new ();
-                gtk_about_dialog_set_name      (GTK_ABOUT_DIALOG(about), _("glabels"));
-                gtk_about_dialog_set_version   (GTK_ABOUT_DIALOG(about), VERSION);
-                gtk_about_dialog_set_copyright (GTK_ABOUT_DIALOG(about), copy_text);
-                gtk_about_dialog_set_comments  (GTK_ABOUT_DIALOG(about), about_text);
-                gtk_about_dialog_set_website   (GTK_ABOUT_DIALOG(about), url);
-                gtk_about_dialog_set_logo      (GTK_ABOUT_DIALOG(about), pixbuf);
-
-                gtk_about_dialog_set_authors   (GTK_ABOUT_DIALOG(about), authors);
-                gtk_about_dialog_set_artists   (GTK_ABOUT_DIALOG(about), artists);
-                gtk_about_dialog_set_translator_credits (GTK_ABOUT_DIALOG(about),
-                                                         translator_credits);
-                gtk_about_dialog_set_license   (GTK_ABOUT_DIALOG(about), license);
+                gtk_window_set_title              (GTK_WINDOW(about),       _("About glabels"));
+                gtk_about_dialog_set_program_name (GTK_ABOUT_DIALOG(about), "glabels");
+                gtk_about_dialog_set_version      (GTK_ABOUT_DIALOG(about), VERSION);
+                gtk_about_dialog_set_copyright    (GTK_ABOUT_DIALOG(about), copy_text);
+                gtk_about_dialog_set_comments     (GTK_ABOUT_DIALOG(about), about_text);
+                gtk_about_dialog_set_website      (GTK_ABOUT_DIALOG(about), url);
+                gtk_about_dialog_set_logo         (GTK_ABOUT_DIALOG(about), pixbuf);
+
+                gtk_about_dialog_set_authors            (GTK_ABOUT_DIALOG(about), authors);
+                gtk_about_dialog_set_documenters        (GTK_ABOUT_DIALOG(about), documenters);
+                gtk_about_dialog_set_artists            (GTK_ABOUT_DIALOG(about), artists);
+                gtk_about_dialog_set_translator_credits (GTK_ABOUT_DIALOG(about), translator_credits);
+                gtk_about_dialog_set_license            (GTK_ABOUT_DIALOG(about), license);
         
                 gtk_window_set_destroy_with_parent (GTK_WINDOW (about), TRUE);
 
@@ -1166,3 +1229,13 @@ gl_ui_cmd_help_about (GtkAction *action,
         gl_debug (DEBUG_COMMANDS, "END");
 }
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index fc8a3db9179b4d386b3a6dc268ab93fdfed64fda..aed362d40d06db57197dcaede8dfcee414cbe9d5 100644 (file)
@@ -1,33 +1,27 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  ui-commands.h:  GLabels UI commands module header file
+ *  ui-commands.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2005  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __COMMANDS_H__
 #define __COMMANDS_H__
 
-#include <gtk/gtkaction.h>
-#include <gtk/gtkrecentchooser.h>
-#include <gtk/gtktoggleaction.h>
+#include <gtk/gtk.h>
 #include "window.h"
 
 G_BEGIN_DECLS
@@ -67,6 +61,12 @@ void gl_ui_cmd_file_quit                (GtkAction   *action,
 
 
 
+void gl_ui_cmd_edit_undo                (GtkAction   *action,
+                                        glWindow    *window);
+
+void gl_ui_cmd_edit_redo                (GtkAction   *action,
+                                        glWindow    *window);
+
 void gl_ui_cmd_edit_undo                (GtkAction   *action,
                                         glWindow    *window);
 
@@ -201,3 +201,14 @@ void gl_ui_cmd_help_about          (GtkAction   *action,
 G_END_DECLS
 
 #endif /* __COMMANDS_H__ */ 
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 005c8380095c7429511e38da7a11852bb141e6f6..4e26f5c856a9cf92354766e81df8e2452e093c76 100644 (file)
@@ -1,25 +1,21 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/**
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  property-bar.c:  gLabels property bar
+/*
+ *  ui-property-bar.c
+ *  Copyright (C) 2003-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 #include "ui-property-bar.h"
 
 #include <glib/gi18n.h>
-#include <glade/glade-xml.h>
-#include <gtk/gtkcombobox.h>
-#include <gtk/gtkspinbutton.h>
-#include <gtk/gtktoolbar.h>
-#include <gtk/gtktoggletoolbutton.h>
-#include <gtk/gtktooltips.h>
+#include <gtk/gtk.h>
 #include <string.h>
 
-#include "util.h"
-#include "mygal/widget-color-combo.h"
-#include "stock-pixmaps/stockpixbufs.h"
+#include "builder-util.h"
+#include "font-combo.h"
+#include "color-combo-button.h"
 #include "prefs.h"
 #include "color.h"
 
 #include "debug.h"
 
+
 /*===========================================================================*/
 /* Private macros and constants.                                             */
 /*===========================================================================*/
 
+
 /*===========================================================================*/
 /* Private data types                                                        */
 /*===========================================================================*/
 
 struct _glUIPropertyBarPrivate {
 
-       glView     *view;
+       glLabel    *label;
 
-       GladeXML   *gui;
+       GtkBuilder *builder;
 
        GtkWidget  *tool_bar;
 
        /* Font selection */
+       GtkWidget  *font_family_eventbox;
        GtkWidget  *font_family_combo;
        GtkWidget  *font_size_spin;
        GtkWidget  *font_bold_toggle;
@@ -71,9 +65,12 @@ struct _glUIPropertyBarPrivate {
        GtkWidget  *text_align_right_radio;
 
        /* Color combos */
-       GtkWidget  *text_color_combo;
-       GtkWidget  *fill_color_combo;
-       GtkWidget  *line_color_combo;
+        GtkWidget  *text_color_eventbox;
+       GtkWidget  *text_color_button;
+        GtkWidget  *fill_color_eventbox;
+       GtkWidget  *fill_color_button;
+        GtkWidget  *line_color_eventbox;
+       GtkWidget  *line_color_button;
 
        /* Line width */
        GtkWidget  *line_width_spin;
@@ -87,75 +84,72 @@ struct _glUIPropertyBarPrivate {
 /* Private globals                                                           */
 /*===========================================================================*/
 
+
 /*===========================================================================*/
 /* Local function prototypes                                                 */
 /*===========================================================================*/
 
 static void     gl_ui_property_bar_finalize      (GObject              *object);
 
-static void     gl_ui_property_bar_construct     (glUIPropertyBar      *property_bar);
+static void     gl_ui_property_bar_construct     (glUIPropertyBar      *this);
 
-static void     selection_changed_cb             (glUIPropertyBar      *property_bar);
+static void     selection_changed_cb             (glUIPropertyBar      *this,
+                                                  glLabel              *label);
 
 static void     font_family_changed_cb           (GtkComboBox          *combo,
-                                                 glUIPropertyBar      *property_bar);
+                                                 glUIPropertyBar      *this);
 
 static void     font_size_changed_cb             (GtkSpinButton        *spin,
-                                                 glUIPropertyBar      *property_bar);
+                                                 glUIPropertyBar      *this);
 
-static void     text_color_changed_cb            (ColorCombo           *cc,
-                                                 GdkColor             *gdk_color,
-                                                 gboolean              custom,
-                                                 gboolean              by_user,
+static void     text_color_changed_cb            (glColorComboButton   *cc,
+                                                  guint                 color,
                                                  gboolean              is_default,
-                                                 glUIPropertyBar      *property_bar);
+                                                 glUIPropertyBar      *this);
 
-static void     fill_color_changed_cb            (ColorCombo           *cc,
-                                                 GdkColor             *gdk_color,
-                                                 gboolean              custom,
-                                                 gboolean              by_user,
+static void     fill_color_changed_cb            (glColorComboButton   *cc,
+                                                  guint                 color,
                                                  gboolean              is_default,
-                                                 glUIPropertyBar      *property_bar);
+                                                 glUIPropertyBar      *this);
 
-static void     line_color_changed_cb            (ColorCombo           *cc,
-                                                 GdkColor             *gdk_color,
-                                                 gboolean              custom,
-                                                 gboolean              by_user,
+static void     line_color_changed_cb            (glColorComboButton   *cc,
+                                                  guint                 color,
                                                  gboolean              is_default,
-                                                 glUIPropertyBar      *property_bar);
+                                                 glUIPropertyBar      *this);
 
 static void     line_width_changed_cb            (GtkSpinButton        *spin,
-                                                 glUIPropertyBar      *property_bar);
+                                                 glUIPropertyBar      *this);
 
 static void     font_bold_toggled_cb             (GtkToggleToolButton  *toggle,
-                                                 glUIPropertyBar      *property_bar);
+                                                 glUIPropertyBar      *this);
                                                  
 static void     font_italic_toggled_cb           (GtkToggleToolButton  *toggle,
-                                                 glUIPropertyBar      *property_bar);
+                                                 glUIPropertyBar      *this);
                                                  
 static void     text_align_toggled_cb            (GtkToggleToolButton  *toggle,
-                                                 glUIPropertyBar      *property_bar);
+                                                 glUIPropertyBar      *this);
                                                  
-static void     set_doc_items_sensitive          (glUIPropertyBar      *property_bar,
+static void     set_doc_items_sensitive          (glUIPropertyBar      *this,
                                                  gboolean              state);
 
-static void     set_text_items_sensitive         (glUIPropertyBar      *property_bar,
+static void     set_text_items_sensitive         (glUIPropertyBar      *this,
                                                  gboolean              state);
 
-static void     set_fill_items_sensitive         (glUIPropertyBar      *property_bar,
+static void     set_fill_items_sensitive         (glUIPropertyBar      *this,
                                                  gboolean              state);
 
-static void     set_line_color_items_sensitive   (glUIPropertyBar      *property_bar,
+static void     set_line_color_items_sensitive   (glUIPropertyBar      *this,
                                                  gboolean              state);
 
-static void     set_line_width_items_sensitive   (glUIPropertyBar      *property_bar,
+static void     set_line_width_items_sensitive   (glUIPropertyBar      *this,
                                                  gboolean              state);
 
-\f
+
 /****************************************************************************/
 /* Boilerplate Object stuff.                                                */
 /****************************************************************************/
-G_DEFINE_TYPE (glUIPropertyBar, gl_ui_property_bar, GTK_TYPE_HBOX);
+G_DEFINE_TYPE (glUIPropertyBar, gl_ui_property_bar, GTK_TYPE_HBOX)
+
 
 static void
 gl_ui_property_bar_class_init (glUIPropertyBarClass *class)
@@ -171,342 +165,298 @@ gl_ui_property_bar_class_init (glUIPropertyBarClass *class)
        gl_debug (DEBUG_PROPERTY_BAR, "END");
 }
 
+
 static void
-gl_ui_property_bar_init (glUIPropertyBar *property_bar)
+gl_ui_property_bar_init (glUIPropertyBar *this)
 {
        gl_debug (DEBUG_PROPERTY_BAR, "START");
 
-       property_bar->priv = g_new0 (glUIPropertyBarPrivate, 1);
+       this->priv = g_new0 (glUIPropertyBarPrivate, 1);
 
        gl_debug (DEBUG_PROPERTY_BAR, "END");
 }
 
+
 static void
 gl_ui_property_bar_finalize (GObject *object)
 {
-       glUIPropertyBar *property_bar = GL_UI_PROPERTY_BAR (object);
+       glUIPropertyBar *this = GL_UI_PROPERTY_BAR (object);
 
        gl_debug (DEBUG_PROPERTY_BAR, "START");
 
        g_return_if_fail (object != NULL);
        g_return_if_fail (GL_IS_UI_PROPERTY_BAR (object));
 
-       if (property_bar->priv->view)
+       if (this->priv->label)
         {
-               g_object_unref (G_OBJECT(property_bar->priv->view));
+               g_object_unref (G_OBJECT(this->priv->label));
        }
-        if (property_bar->priv->gui)
+        if (this->priv->builder)
         {
-                g_object_unref (G_OBJECT(property_bar->priv->gui));
+                g_object_unref (G_OBJECT(this->priv->builder));
         }
-       g_free (property_bar->priv);
+       g_free (this->priv);
 
        G_OBJECT_CLASS (gl_ui_property_bar_parent_class)->finalize (object);
 
        gl_debug (DEBUG_PROPERTY_BAR, "END");
 }
 
+
 /****************************************************************************/
 /* Create a NEW property_bar.                                               */
 /****************************************************************************/
 GtkWidget *
 gl_ui_property_bar_new (void)
 {
-       glUIPropertyBar *property_bar;
+       glUIPropertyBar *this;
 
        gl_debug (DEBUG_PROPERTY_BAR, "START");
 
-       property_bar = g_object_new (GL_TYPE_UI_PROPERTY_BAR, NULL);
+       this = g_object_new (GL_TYPE_UI_PROPERTY_BAR, NULL);
 
-       gl_ui_property_bar_construct (property_bar);
+       gl_ui_property_bar_construct (this);
 
        gl_debug (DEBUG_PROPERTY_BAR, "END");
 
-       return GTK_WIDGET (property_bar);
+       return GTK_WIDGET (this);
 }
 
+
 /******************************************************************************/
 /* Initialize property toolbar.                                               */
 /******************************************************************************/
 static void
-gl_ui_property_bar_construct (glUIPropertyBar   *property_bar)
+gl_ui_property_bar_construct (glUIPropertyBar   *this)
 {
-       GladeXML   *gui;
-       GList      *family_names = NULL;
-       GList      *family_node;
-       GdkColor   *gdk_color;
+        gchar         *builder_filename;
+       GtkBuilder    *builder;
+        static gchar  *object_ids[] = { "property_toolbar",
+                                        "adjustment1", "adjustment2",
+                                        NULL };
+        GError        *error = NULL;
 
        gl_debug (DEBUG_PROPERTY_BAR, "START");
 
-       property_bar->priv->stop_signals = TRUE;
-
-       gui = glade_xml_new (GLABELS_GLADE_DIR "property-bar.glade",
-                             "property_toolbar", NULL);
+       this->priv->stop_signals = TRUE;
 
-       if (!gui)
-        {
-               g_critical ("Could not open property-bar.glade. gLabels may not be installed correctly!");
+        builder = gtk_builder_new ();
+        builder_filename = g_build_filename (GLABELS_DATA_DIR, "ui", "property-bar.ui", NULL);
+        gtk_builder_add_objects_from_file (builder, builder_filename, object_ids, &error);
+        g_free (builder_filename);
+       if (error) {
+               g_critical ("%s\n\ngLabels may not be installed correctly!", error->message);
+                g_error_free (error);
                return;
        }
 
-       property_bar->priv->tool_bar = glade_xml_get_widget (gui, "property_toolbar");
-       gtk_container_add (GTK_CONTAINER (property_bar), property_bar->priv->tool_bar);
-
-       property_bar->priv->font_family_combo =
-               glade_xml_get_widget (gui, "font_family_combo");
-       property_bar->priv->font_size_spin =
-               glade_xml_get_widget (gui, "font_size_spin");
-       property_bar->priv->font_bold_toggle =
-               glade_xml_get_widget (gui, "font_bold_toggle");
-       property_bar->priv->font_italic_toggle =
-               glade_xml_get_widget (gui, "font_italic_toggle");
-       property_bar->priv->text_align_left_radio =
-               glade_xml_get_widget (gui, "text_align_left_radio");
-       property_bar->priv->text_align_center_radio =
-               glade_xml_get_widget (gui, "text_align_center_radio");
-       property_bar->priv->text_align_right_radio =
-               glade_xml_get_widget (gui, "text_align_right_radio");
-       property_bar->priv->text_color_combo =
-               glade_xml_get_widget (gui, "text_color_combo");
-       property_bar->priv->fill_color_combo =
-               glade_xml_get_widget (gui, "fill_color_combo");
-       property_bar->priv->line_color_combo =
-               glade_xml_get_widget (gui, "line_color_combo");
-       property_bar->priv->line_width_spin =
-               glade_xml_get_widget (gui, "line_width_spin");
+        gl_builder_util_get_widgets (builder,
+                                     "property_toolbar",        &this->priv->tool_bar,
+                                     "font_family_eventbox",    &this->priv->font_family_eventbox,
+                                     "font_size_spin",          &this->priv->font_size_spin,
+                                     "font_bold_toggle",        &this->priv->font_bold_toggle,
+                                     "font_italic_toggle",      &this->priv->font_italic_toggle,
+                                     "text_align_left_radio",   &this->priv->text_align_left_radio,
+                                     "text_align_center_radio", &this->priv->text_align_center_radio,
+                                     "text_align_right_radio",  &this->priv->text_align_right_radio,
+                                     "text_color_eventbox",     &this->priv->text_color_eventbox,
+                                     "fill_color_eventbox",     &this->priv->fill_color_eventbox,
+                                     "line_color_eventbox",     &this->priv->line_color_eventbox,
+                                     "line_width_spin",         &this->priv->line_width_spin,
+                                     NULL);
+
+       gtk_container_add (GTK_CONTAINER (this), this->priv->tool_bar);
+
+        this->priv->font_family_combo =
+                gl_font_combo_new (gl_prefs_model_get_default_font_family (gl_prefs));
+        gtk_container_add (GTK_CONTAINER (this->priv->font_family_eventbox),
+                           this->priv->font_family_combo);
+
+        this->priv->text_color_button =
+                gl_color_combo_button_new ("glabels-text",
+                                           _("Default"),
+                                           GL_COLOR_TEXT_DEFAULT,
+                                           gl_prefs_model_get_default_text_color (gl_prefs));
+        gl_color_combo_button_set_relief (GL_COLOR_COMBO_BUTTON(this->priv->text_color_button),
+                                          GTK_RELIEF_NONE);
+        gtk_container_add (GTK_CONTAINER (this->priv->text_color_eventbox),
+                           this->priv->text_color_button);
+
+        this->priv->fill_color_button =
+                gl_color_combo_button_new ("glabels-bucket-fill",
+                                           _("No Fill"),
+                                           GL_COLOR_NO_FILL,
+                                           gl_prefs_model_get_default_fill_color (gl_prefs));
+        gl_color_combo_button_set_relief (GL_COLOR_COMBO_BUTTON(this->priv->fill_color_button),
+                                          GTK_RELIEF_NONE);
+        gtk_container_add (GTK_CONTAINER (this->priv->fill_color_eventbox),
+                           this->priv->fill_color_button);
+
+        this->priv->line_color_button =
+                gl_color_combo_button_new ("glabels-pencil",
+                                           _("No Line"),
+                                           GL_COLOR_NO_LINE,
+                                           gl_prefs_model_get_default_line_color (gl_prefs));
+       gl_color_combo_button_set_relief (GL_COLOR_COMBO_BUTTON(this->priv->line_color_button),
+                                          GTK_RELIEF_NONE);
+        gtk_container_add (GTK_CONTAINER (this->priv->line_color_eventbox),
+                           this->priv->line_color_button);
 
         /* Save reference to gui tree so we don't lose tooltips */
-        property_bar->priv->gui = gui;
+        this->priv->builder = builder;
 
-       set_doc_items_sensitive (property_bar, FALSE);
+       set_doc_items_sensitive (this, FALSE);
 
        /* Font family entry widget */
-       gl_util_combo_box_add_text_model (GTK_COMBO_BOX (property_bar->priv->font_family_combo));
-       family_names = gl_util_get_font_family_list ();
-       gl_util_combo_box_set_strings (GTK_COMBO_BOX (property_bar->priv->font_family_combo),
-                                      family_names);
-       gtk_widget_set_size_request (property_bar->priv->font_family_combo, 200, -1);
-
-       /* Make sure we have a valid font.  if not provide a good default. */
-       family_node = g_list_find_custom (family_names,
-                                         gl_prefs->default_font_family,
-                                         (GCompareFunc)g_utf8_collate);
-       if (family_node)
-        {
-               gtk_combo_box_set_active (GTK_COMBO_BOX (property_bar->priv->font_family_combo),
-                                         g_list_position (family_names,
-                                                          family_node));
-       }
-        else
-        {
-               gtk_combo_box_set_active (GTK_COMBO_BOX (property_bar->priv->font_family_combo), 0);
-       }
-
-       g_signal_connect (G_OBJECT (property_bar->priv->font_family_combo),
-                         "changed", G_CALLBACK (font_family_changed_cb), property_bar);
+       g_signal_connect (G_OBJECT (this->priv->font_family_combo),
+                         "changed", G_CALLBACK (font_family_changed_cb), this);
 
        /* Font size entry widget */
-       gtk_spin_button_set_value (GTK_SPIN_BUTTON(property_bar->priv->font_size_spin),
-                                  gl_prefs->default_font_size);
+       gtk_spin_button_set_value (GTK_SPIN_BUTTON(this->priv->font_size_spin),
+                                  gl_prefs_model_get_default_font_size (gl_prefs));
 
-       g_signal_connect (G_OBJECT (property_bar->priv->font_size_spin),
-                         "changed", G_CALLBACK (font_size_changed_cb), property_bar);
+       g_signal_connect (G_OBJECT (this->priv->font_size_spin),
+                         "changed", G_CALLBACK (font_size_changed_cb), this);
 
 
        /* Bold and Italic toggles */
-       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (property_bar->priv->font_bold_toggle),
-                                          (gl_prefs->default_font_weight == PANGO_WEIGHT_BOLD));
-       g_signal_connect (G_OBJECT (property_bar->priv->font_bold_toggle),
-                         "toggled", G_CALLBACK (font_bold_toggled_cb), property_bar);
-       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (property_bar->priv->font_italic_toggle),
-                                          gl_prefs->default_font_italic_flag);
-       g_signal_connect (G_OBJECT (property_bar->priv->font_italic_toggle),
-                         "toggled", G_CALLBACK (font_italic_toggled_cb), property_bar);
+       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (this->priv->font_bold_toggle),
+                                          (gl_prefs_model_get_default_font_weight (gl_prefs) == PANGO_WEIGHT_BOLD));
+       g_signal_connect (G_OBJECT (this->priv->font_bold_toggle),
+                         "toggled", G_CALLBACK (font_bold_toggled_cb), this);
+       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (this->priv->font_italic_toggle),
+                                          gl_prefs_model_get_default_font_italic_flag (gl_prefs));
+       g_signal_connect (G_OBJECT (this->priv->font_italic_toggle),
+                         "toggled", G_CALLBACK (font_italic_toggled_cb), this);
 
 
        /* Text alignment radio group */
-       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (property_bar->priv->text_align_left_radio),
-                                          (gl_prefs->default_text_alignment == PANGO_ALIGN_LEFT));
-       g_signal_connect (G_OBJECT (property_bar->priv->text_align_left_radio),
-                         "toggled", G_CALLBACK (text_align_toggled_cb), property_bar);
-       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (property_bar->priv->text_align_center_radio),
-                                          (gl_prefs->default_text_alignment == PANGO_ALIGN_CENTER));
-       g_signal_connect (G_OBJECT (property_bar->priv->text_align_center_radio),
-                         "toggled", G_CALLBACK (text_align_toggled_cb), property_bar);
-       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (property_bar->priv->text_align_right_radio),
-                                          (gl_prefs->default_text_alignment == PANGO_ALIGN_RIGHT));
-       g_signal_connect (G_OBJECT (property_bar->priv->text_align_right_radio),
-                         "toggled", G_CALLBACK (text_align_toggled_cb), property_bar);
+       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (this->priv->text_align_left_radio),
+                                          (gl_prefs_model_get_default_text_alignment (gl_prefs) == PANGO_ALIGN_LEFT));
+       g_signal_connect (G_OBJECT (this->priv->text_align_left_radio),
+                         "toggled", G_CALLBACK (text_align_toggled_cb), this);
+       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (this->priv->text_align_center_radio),
+                                          (gl_prefs_model_get_default_text_alignment (gl_prefs) == PANGO_ALIGN_CENTER));
+       g_signal_connect (G_OBJECT (this->priv->text_align_center_radio),
+                         "toggled", G_CALLBACK (text_align_toggled_cb), this);
+       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (this->priv->text_align_right_radio),
+                                          (gl_prefs_model_get_default_text_alignment (gl_prefs) == PANGO_ALIGN_RIGHT));
+       g_signal_connect (G_OBJECT (this->priv->text_align_right_radio),
+                         "toggled", G_CALLBACK (text_align_toggled_cb), this);
 
        /* Text color widget */
-       gdk_color = gl_color_to_gdk_color (gl_prefs->default_text_color);
-       color_combo_set_color (COLOR_COMBO (property_bar->priv->text_color_combo), gdk_color);
-       g_free (gdk_color);
-       g_signal_connect (G_OBJECT (property_bar->priv->text_color_combo),
+       gl_color_combo_button_set_color (GL_COLOR_COMBO_BUTTON (this->priv->text_color_button),
+                                         gl_prefs_model_get_default_text_color (gl_prefs));
+       g_signal_connect (G_OBJECT (this->priv->text_color_button),
                          "color_changed",
-                         G_CALLBACK (text_color_changed_cb), property_bar);
+                         G_CALLBACK (text_color_changed_cb), this);
 
        /* Fill color widget */
-       gdk_color = gl_color_to_gdk_color (gl_prefs->default_fill_color);
-       color_combo_set_color (COLOR_COMBO (property_bar->priv->fill_color_combo), gdk_color);
-       g_free (gdk_color);
-       g_signal_connect (G_OBJECT (property_bar->priv->fill_color_combo),
+       gl_color_combo_button_set_color (GL_COLOR_COMBO_BUTTON (this->priv->fill_color_button),
+                                         gl_prefs_model_get_default_fill_color (gl_prefs));
+       g_signal_connect (G_OBJECT (this->priv->fill_color_button),
                          "color_changed",
-                         G_CALLBACK (fill_color_changed_cb), property_bar);
+                         G_CALLBACK (fill_color_changed_cb), this);
 
        /* Line color widget */
-       gdk_color = gl_color_to_gdk_color (gl_prefs->default_line_color);
-       color_combo_set_color (COLOR_COMBO (property_bar->priv->line_color_combo), gdk_color);
-       g_free (gdk_color);
-       g_signal_connect (G_OBJECT (property_bar->priv->line_color_combo),
+       gl_color_combo_button_set_color (GL_COLOR_COMBO_BUTTON (this->priv->line_color_button),
+                                         gl_prefs_model_get_default_line_color (gl_prefs));
+       g_signal_connect (G_OBJECT (this->priv->line_color_button),
                          "color_changed",
-                         G_CALLBACK (line_color_changed_cb), property_bar);
+                         G_CALLBACK (line_color_changed_cb), this);
 
        /* Line width entry widget */
-       g_signal_connect (G_OBJECT (property_bar->priv->line_width_spin),
+       g_signal_connect (G_OBJECT (this->priv->line_width_spin),
                          "changed",
-                         G_CALLBACK (line_width_changed_cb), property_bar);
+                         G_CALLBACK (line_width_changed_cb), this);
 
-       property_bar->priv->stop_signals = FALSE;
+       this->priv->stop_signals = FALSE;
 
        gl_debug (DEBUG_PROPERTY_BAR, "END");
 }
 
+
 /****************************************************************************/
 /* Fill widgets with default values.                                        */
 /****************************************************************************/
 static void
-reset_to_default_properties (glView *view,
-                            glUIPropertyBar *property_bar)
+reset_to_default_properties (glLabel         *label,
+                            glUIPropertyBar *this)
 {
-       GList     *family_names;
-       gchar     *good_font_family;
-       GdkColor  *gdk_color;
-
-       /* Make sure we have a valid font.  if not provide a good default. */
-       family_names = gl_util_get_font_family_list ();
-       if (g_list_find_custom (family_names,
-                               view->default_font_family,
-                               (GCompareFunc)g_utf8_collate))
-        {
-               good_font_family = g_strdup (view->default_font_family);
-       }
-        else
-        {
-               if (family_names != NULL)
-                {
-                       good_font_family = g_strdup (family_names->data); /* 1st entry */
-               }
-                else
-                {
-                       good_font_family = NULL;
-               }
-       }
-       gl_util_combo_box_set_active_text (GTK_COMBO_BOX (property_bar->priv->font_family_combo),
-                                          good_font_family);
-       g_free (good_font_family);
-
-       gtk_spin_button_set_value (GTK_SPIN_BUTTON(property_bar->priv->font_size_spin),
-                                  view->default_font_size);
-
-       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (property_bar->priv->font_bold_toggle),
-                                          (view->default_font_weight == PANGO_WEIGHT_BOLD));
-       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (property_bar->priv->font_italic_toggle),
-                                          view->default_font_italic_flag);
-
-       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (property_bar->priv->text_align_left_radio),
-                                          (view->default_text_alignment == PANGO_ALIGN_LEFT));
-       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (property_bar->priv->text_align_center_radio),
-                                          (view->default_text_alignment == PANGO_ALIGN_CENTER));
-       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (property_bar->priv->text_align_right_radio),
-                                          (view->default_text_alignment == PANGO_ALIGN_RIGHT));
-
-       gdk_color = gl_color_to_gdk_color (view->default_text_color);
-       color_combo_set_color (COLOR_COMBO(property_bar->priv->text_color_combo), gdk_color);
-       g_free (gdk_color);
-
-       gdk_color = gl_color_to_gdk_color (view->default_fill_color);
-       color_combo_set_color (COLOR_COMBO(property_bar->priv->fill_color_combo), gdk_color);
-       g_free (gdk_color);
-
-       gdk_color = gl_color_to_gdk_color (view->default_line_color);
-       color_combo_set_color (COLOR_COMBO(property_bar->priv->line_color_combo), gdk_color);
-       g_free (gdk_color);
-
-       gtk_spin_button_set_value (GTK_SPIN_BUTTON(property_bar->priv->line_width_spin),
-                                  view->default_line_width);
-}
+        gchar *family;
 
-/****************************************************************************/
-/* Set view associated with property_bar.                                   */
-/****************************************************************************/
-void
-gl_ui_property_bar_set_view (glUIPropertyBar *property_bar,
-                            glView          *view)
-{
-       glLabel   *label;
+        family = gl_label_get_default_font_family (label);
+       gl_font_combo_set_family (GL_FONT_COMBO (this->priv->font_family_combo), family);
+        g_free (family);
 
-       gl_debug (DEBUG_PROPERTY_BAR, "START");
+       gtk_spin_button_set_value (GTK_SPIN_BUTTON(this->priv->font_size_spin),
+                                  gl_label_get_default_font_size (label));
 
-       g_return_if_fail (view && GL_IS_VIEW (view));
-       label = view->label;
-       g_return_if_fail (label && GL_IS_LABEL (label));
-
-       set_doc_items_sensitive (property_bar, TRUE);
+       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (this->priv->font_bold_toggle),
+                                          (gl_label_get_default_font_weight (label) == PANGO_WEIGHT_BOLD));
+       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (this->priv->font_italic_toggle),
+                                          gl_label_get_default_font_italic_flag (label));
 
-       property_bar->priv->view = GL_VIEW (g_object_ref (G_OBJECT (view)));
+       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (this->priv->text_align_left_radio),
+                                          (gl_label_get_default_text_alignment (label) == PANGO_ALIGN_LEFT));
+       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (this->priv->text_align_center_radio),
+                                          (gl_label_get_default_text_alignment (label) == PANGO_ALIGN_CENTER));
+       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (this->priv->text_align_right_radio),
+                                          (gl_label_get_default_text_alignment (label) == PANGO_ALIGN_RIGHT));
 
-       reset_to_default_properties (view, property_bar);
+       gl_color_combo_button_set_color (GL_COLOR_COMBO_BUTTON(this->priv->text_color_button),
+                                         gl_label_get_default_text_color (label));
 
-       g_signal_connect_swapped (G_OBJECT(view), "selection_changed",
-                                 G_CALLBACK(selection_changed_cb), property_bar);
+       gl_color_combo_button_set_color (GL_COLOR_COMBO_BUTTON(this->priv->fill_color_button),
+                                         gl_label_get_default_fill_color (label));
 
-       g_signal_connect_swapped (G_OBJECT(view->label), "changed",
-                                 G_CALLBACK(selection_changed_cb), property_bar);
+       gl_color_combo_button_set_color (GL_COLOR_COMBO_BUTTON(this->priv->line_color_button),
+                                         gl_label_get_default_line_color (label));
 
-       gl_debug (DEBUG_PROPERTY_BAR, "END");
+       gtk_spin_button_set_value (GTK_SPIN_BUTTON(this->priv->line_width_spin),
+                                  gl_label_get_default_line_width (label));
 }
 
+
 /****************************************************************************/
-/** Set visiblity of property bar's tooltips.                               */
+/* Set label associated with property_bar.                                  */
 /****************************************************************************/
 void
-gl_ui_property_bar_set_tooltips (glUIPropertyBar *property_bar,
-                                gboolean         state)
+gl_ui_property_bar_set_label (glUIPropertyBar *this,
+                              glLabel         *label)
 {
-       GtkTooltipsData *data;
-
        gl_debug (DEBUG_PROPERTY_BAR, "START");
 
-       g_return_if_fail (property_bar && GL_IS_UI_PROPERTY_BAR(property_bar));
+       g_return_if_fail (label && GL_IS_LABEL (label));
 
-       /* HACK: peek into one of our widgets to get the tooltips group created by libglade. */
-       data = gtk_tooltips_data_get (property_bar->priv->font_size_spin);
-       g_return_if_fail (data);
+       set_doc_items_sensitive (this, TRUE);
 
-       if (state)
-        {
-               gtk_tooltips_enable (data->tooltips);
-       }
-        else
-        {
-               gtk_tooltips_disable (data->tooltips);
-       }
+       reset_to_default_properties (label, this);
+
+       this->priv->label = GL_LABEL (g_object_ref (G_OBJECT (label)));
+
+       g_signal_connect_swapped (G_OBJECT(label), "selection_changed",
+                                 G_CALLBACK(selection_changed_cb), this);
+
+       g_signal_connect_swapped (G_OBJECT(label), "changed",
+                                 G_CALLBACK(selection_changed_cb), this);
 
        gl_debug (DEBUG_PROPERTY_BAR, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
-/* PRIVATE.  View "selection state changed" callback.                        */
+/* PRIVATE.  Label "selection state changed" callback.                       */
 /*---------------------------------------------------------------------------*/
 static void
-update_text_properties (glView *view,
-                       glUIPropertyBar *property_bar)
+update_text_properties (glLabel         *label,
+                       glUIPropertyBar *this)
 {
        gboolean        can_text, is_first_object;
        gboolean        is_same_font_family, is_same_font_size;
        gboolean        is_same_text_color, is_same_is_italic;
        gboolean        is_same_is_bold, is_same_align;
+       GList          *selection_list;
        GList          *p;
        glLabelObject  *object;
        gchar          *selection_font_family, *font_family;
@@ -516,10 +466,9 @@ update_text_properties (glView *view,
        gboolean        selection_is_italic, is_italic;
        gboolean        selection_is_bold, is_bold;
        PangoAlignment  selection_align, align;
-       GdkColor       *gdk_color;
 
-       can_text = gl_view_can_selection_text (view);
-       set_text_items_sensitive (property_bar, can_text);
+       can_text = gl_label_can_selection_text (label);
+       set_text_items_sensitive (this, can_text);
 
        if (!can_text) 
                return;
@@ -539,10 +488,11 @@ update_text_properties (glView *view,
         
        is_first_object = TRUE;
        
-       for (p = view->selected_object_list; p != NULL; p = p->next)
+        selection_list = gl_label_get_selection_list (label);
+       for (p = selection_list; p != NULL; p = p->next)
         {
 
-               object = gl_view_object_get_object(GL_VIEW_OBJECT (p->data));
+               object = GL_LABEL_OBJECT (p->data);
                if (!gl_label_object_can_text (object)) 
                        continue;
 
@@ -606,32 +556,32 @@ update_text_properties (glView *view,
                is_first_object = FALSE;
        }
 
+        g_list_free (selection_list);
+
        if (is_same_font_family && (selection_font_family != NULL)) 
                gl_debug (DEBUG_PROPERTY_BAR, "same font family = %s", 
                          selection_font_family);
-       gl_util_combo_box_set_active_text (GTK_COMBO_BOX (property_bar->priv->font_family_combo),
-                                          is_same_font_family?selection_font_family:"");
+       gl_font_combo_set_family (GL_FONT_COMBO (this->priv->font_family_combo),
+                                  is_same_font_family?selection_font_family:"");
        g_free (selection_font_family);
 
        if (is_same_font_size)
         {
                gl_debug (DEBUG_PROPERTY_BAR, "same font size = %g", 
                          selection_font_size);
-               gtk_spin_button_set_value (GTK_SPIN_BUTTON (property_bar->priv->font_size_spin),
+               gtk_spin_button_set_value (GTK_SPIN_BUTTON (this->priv->font_size_spin),
                                           selection_font_size);
        }
         else
         {
-               gtk_entry_set_text (GTK_ENTRY (property_bar->priv->font_size_spin), "");
+               gtk_entry_set_text (GTK_ENTRY (this->priv->font_size_spin), "");
        }
 
        if (is_same_text_color)
         {
                gl_debug (DEBUG_PROPERTY_BAR, "same text color = %08x", selection_text_color);
-               gdk_color = gl_color_to_gdk_color (selection_text_color);
-               color_combo_set_color (COLOR_COMBO (property_bar->priv->text_color_combo),
-                                      gdk_color);
-               g_free (gdk_color);
+               gl_color_combo_button_set_color (GL_COLOR_COMBO_BUTTON (this->priv->text_color_button),
+                                                 selection_text_color);
        }
 
        if (is_same_is_italic)
@@ -639,7 +589,7 @@ update_text_properties (glView *view,
                gl_debug (DEBUG_PROPERTY_BAR, "same italic flag = %d", 
                          selection_is_italic);
         }
-       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (property_bar->priv->font_italic_toggle),
+       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (this->priv->font_italic_toggle),
                                           selection_is_italic && is_same_is_italic);
 
        if (is_same_is_bold)
@@ -647,36 +597,37 @@ update_text_properties (glView *view,
                gl_debug (DEBUG_PROPERTY_BAR, "same bold flag = %d",
                          selection_is_bold);
         }
-       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (property_bar->priv->font_bold_toggle),
+       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (this->priv->font_bold_toggle),
                                           selection_is_bold && is_same_is_bold);
 
        if (is_same_align) 
                gl_debug (DEBUG_PROPERTY_BAR, "same align");
-       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (property_bar->priv->text_align_left_radio),
+       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (this->priv->text_align_left_radio),
                                           (selection_align == PANGO_ALIGN_LEFT) &&
                                           is_same_align);
-       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (property_bar->priv->text_align_center_radio),
+       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (this->priv->text_align_center_radio),
                                           (selection_align == PANGO_ALIGN_CENTER) &&
                                           is_same_align);
-       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (property_bar->priv->text_align_right_radio),
+       gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (this->priv->text_align_right_radio),
                                           (selection_align == PANGO_ALIGN_RIGHT) &&
                                           is_same_align);
 }
 
+
 static void
-update_fill_color (glView *view,
-                  glUIPropertyBar *property_bar)
+update_fill_color (glLabel         *label,
+                  glUIPropertyBar *this)
 {
        gboolean can, is_first_object;
        gboolean is_same_fill_color;
+        GList *selection_list;
        GList *p;
        glLabelObject *object;
        guint selection_fill_color, fill_color;
-       GdkColor *gdk_color;
        glColorNode *fill_color_node;
 
-       can = gl_view_can_selection_fill (view);
-       set_fill_items_sensitive (property_bar, can);
+       can = gl_label_can_selection_fill (label);
+       set_fill_items_sensitive (this, can);
 
        if (!can) 
                return;
@@ -684,11 +635,13 @@ update_fill_color (glView *view,
        is_same_fill_color = TRUE;
        is_first_object = TRUE;
         selection_fill_color = 0;
+
+        selection_list = gl_label_get_selection_list (label);
        
-       for (p = view->selected_object_list; p != NULL; p = p->next)
+       for (p = selection_list; p != NULL; p = p->next)
         {
 
-               object = gl_view_object_get_object(GL_VIEW_OBJECT (p->data));
+               object = GL_LABEL_OBJECT (p->data);
                if (!gl_label_object_can_fill (object)) 
                        continue;
 
@@ -719,30 +672,31 @@ update_fill_color (glView *view,
                is_first_object = FALSE;
        }
 
+        g_list_free (selection_list);
+
        if (is_same_fill_color)
         {
                gl_debug (DEBUG_PROPERTY_BAR, "same fill color = %08x", selection_fill_color);
-               gdk_color = gl_color_to_gdk_color (selection_fill_color);
-               color_combo_set_color (COLOR_COMBO (property_bar->priv->fill_color_combo),
-                                      gdk_color);
-               g_free (gdk_color);
+               gl_color_combo_button_set_color (GL_COLOR_COMBO_BUTTON (this->priv->fill_color_button),
+                                                 selection_fill_color);
        }
 }
 
+
 static void
-update_line_color (glView *view,
-                  glUIPropertyBar *property_bar)
+update_line_color (glLabel         *label,
+                  glUIPropertyBar *this)
 {
        gboolean can, is_first_object;
        gboolean is_same_line_color;
+        GList *selection_list;
        GList *p;
        glLabelObject *object;
        guint selection_line_color, line_color;
        glColorNode *line_color_node;
-       GdkColor *gdk_color;
 
-       can = gl_view_can_selection_line_color (view);
-       set_line_color_items_sensitive (property_bar, can);
+       can = gl_label_can_selection_line_color (label);
+       set_line_color_items_sensitive (this, can);
 
        if (!can) 
                return;
@@ -750,11 +704,13 @@ update_line_color (glView *view,
        is_same_line_color = TRUE;
        is_first_object = TRUE;
         selection_line_color = 0;
+
+        selection_list = gl_label_get_selection_list (label);
        
-       for (p = view->selected_object_list; p != NULL; p = p->next)
+       for (p = selection_list; p != NULL; p = p->next)
         {
 
-               object = gl_view_object_get_object(GL_VIEW_OBJECT (p->data));
+               object = GL_LABEL_OBJECT (p->data);
                if (!gl_label_object_can_line_color (object)) 
                        continue;
 
@@ -785,28 +741,30 @@ update_line_color (glView *view,
                is_first_object = FALSE;
        }
 
+        g_list_free (selection_list);
+
        if (is_same_line_color)
         {
                gl_debug (DEBUG_PROPERTY_BAR, "same line color = %08x", selection_line_color);
-               gdk_color = gl_color_to_gdk_color (selection_line_color);
-               color_combo_set_color (COLOR_COMBO (property_bar->priv->line_color_combo),
-                                      gdk_color);
-               g_free (gdk_color);
+               gl_color_combo_button_set_color (GL_COLOR_COMBO_BUTTON (this->priv->line_color_button),
+                                                 selection_line_color);
        }
 }
 
+
 static void
-update_line_width (glView *view,
-                  glUIPropertyBar *property_bar)
+update_line_width (glLabel         *label,
+                  glUIPropertyBar *this)
 {
        gboolean can, is_first_object;
        gboolean is_same_line_width;
+       GList *selection_list;
        GList *p;
        glLabelObject *object;
        gdouble selection_line_width, line_width;
 
-       can = gl_view_can_selection_line_width (view);
-       set_line_width_items_sensitive (property_bar, can);
+       can = gl_label_can_selection_line_width (label);
+       set_line_width_items_sensitive (this, can);
 
        if (!can) 
                return;
@@ -814,11 +772,13 @@ update_line_width (glView *view,
        is_same_line_width = TRUE;
        is_first_object = TRUE;
         selection_line_width = 0;
+
+        selection_list = gl_label_get_selection_list (label);
        
-       for (p = view->selected_object_list; p != NULL; p = p->next)
+       for (p = selection_list; p != NULL; p = p->next)
         {
 
-               object = gl_view_object_get_object(GL_VIEW_OBJECT (p->data));
+               object = GL_LABEL_OBJECT (p->data);
                if (!gl_label_object_can_line_width (object)) 
                        continue;
 
@@ -838,294 +798,295 @@ update_line_width (glView *view,
                is_first_object = FALSE;
        }
 
+        g_list_free (selection_list);
+
        if (is_same_line_width)
         {
                gl_debug (DEBUG_PROPERTY_BAR, "same line width = %g", selection_line_width);
-               gtk_spin_button_set_value (GTK_SPIN_BUTTON (property_bar->priv->line_width_spin),
+               gtk_spin_button_set_value (GTK_SPIN_BUTTON (this->priv->line_width_spin),
                                           selection_line_width);
        }
         else
         {
-               gtk_entry_set_text (GTK_ENTRY (property_bar->priv->line_width_spin), "");
+               gtk_entry_set_text (GTK_ENTRY (this->priv->line_width_spin), "");
        }
 }
 
+
 static void 
-selection_changed_cb (glUIPropertyBar *property_bar)
+selection_changed_cb (glUIPropertyBar *this,
+                      glLabel         *label)
 {
-       glView *view = property_bar->priv->view;
-       
-       g_return_if_fail (view && GL_IS_VIEW (view));
-       g_return_if_fail (property_bar && GL_IS_UI_PROPERTY_BAR (property_bar));
+       g_return_if_fail (label && GL_IS_LABEL (label));
+       g_return_if_fail (this && GL_IS_UI_PROPERTY_BAR (this));
 
-       if (property_bar->priv->stop_signals) return;
-       property_bar->priv->stop_signals = TRUE;
+       if (this->priv->stop_signals) return;
+       this->priv->stop_signals = TRUE;
 
        gl_debug (DEBUG_PROPERTY_BAR, "START");
 
-       if (gl_view_is_selection_empty (view))
+       if (gl_label_is_selection_empty (label))
         {
                /* No selection: make all controls active. */
-               reset_to_default_properties (view, property_bar);
-               set_doc_items_sensitive (property_bar, TRUE);
+               reset_to_default_properties (label, this);
+               set_doc_items_sensitive (this, TRUE);
        }
         else
         {
-               update_text_properties (view, property_bar);
-               update_fill_color (view, property_bar);
-               update_line_color (view, property_bar);
-               update_line_width (view, property_bar);
+               update_text_properties (label, this);
+               update_fill_color (label, this);
+               update_line_color (label, this);
+               update_line_width (label, this);
        }
 
        gl_debug (DEBUG_PROPERTY_BAR, "END");
 
-       property_bar->priv->stop_signals = FALSE;
+       this->priv->stop_signals = FALSE;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Font family entry changed.                                     */
 /*--------------------------------------------------------------------------*/
 static void
 font_family_changed_cb (GtkComboBox     *combo,
-                       glUIPropertyBar *property_bar)
+                       glUIPropertyBar *this)
 {
        gchar *font_family;
 
-       if (property_bar->priv->stop_signals) return;
-       property_bar->priv->stop_signals = TRUE;
+       if (this->priv->stop_signals) return;
+       this->priv->stop_signals = TRUE;
 
        gl_debug (DEBUG_PROPERTY_BAR, "START");
 
-       font_family = gtk_combo_box_get_active_text (GTK_COMBO_BOX (combo));
-       if ( strlen(font_family) )
+       font_family = gl_font_combo_get_family (GL_FONT_COMBO (combo));
+       if ( *font_family != '\0' )
         {
-               gl_view_set_selection_font_family (property_bar->priv->view,
-                                                  font_family);
-               gl_view_set_default_font_family   (property_bar->priv->view,
-                                                  font_family);
-       }
-       g_free (font_family);
+                gl_label_set_selection_font_family (this->priv->label, font_family);
+                gl_label_set_default_font_family   (this->priv->label, font_family);
+        }
+        g_free (font_family);
 
        gl_debug (DEBUG_PROPERTY_BAR, "END");
 
-       property_bar->priv->stop_signals = FALSE;
+       this->priv->stop_signals = FALSE;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Font size spin button changed.                                 */
 /*--------------------------------------------------------------------------*/
 static void
 font_size_changed_cb (GtkSpinButton        *spin,
-                     glUIPropertyBar      *property_bar)
+                     glUIPropertyBar      *this)
 {
        gdouble font_size;
 
-       if (property_bar->priv->stop_signals) return;
-       property_bar->priv->stop_signals = TRUE;
+       if (this->priv->stop_signals) return;
+       this->priv->stop_signals = TRUE;
 
        gl_debug (DEBUG_PROPERTY_BAR, "START");
 
        font_size = gtk_spin_button_get_value (spin);
 
-       gl_view_set_selection_font_size (property_bar->priv->view,
-                                        font_size);
-       gl_view_set_default_font_size   (property_bar->priv->view,
-                                        font_size);
+       gl_label_set_selection_font_size (this->priv->label,
+                                         font_size);
+       gl_label_set_default_font_size   (this->priv->label,
+                                          font_size);
 
        gl_debug (DEBUG_PROPERTY_BAR, "END");
 
-       property_bar->priv->stop_signals = FALSE;
+       this->priv->stop_signals = FALSE;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Text color combo changed.                                      */
 /*--------------------------------------------------------------------------*/
 static void
-text_color_changed_cb (ColorCombo           *cc,
-                      GdkColor             *gdk_color,
-                      gboolean              custom,
-                      gboolean              by_user,
+text_color_changed_cb (glColorComboButton   *cc,
+                       guint                 color,
                       gboolean              is_default,
-                      glUIPropertyBar      *property_bar)
+                      glUIPropertyBar      *this)
 {
        glColorNode *text_color_node;
 
-       g_return_if_fail (property_bar && GL_IS_UI_PROPERTY_BAR (property_bar));
+       g_return_if_fail (this && GL_IS_UI_PROPERTY_BAR (this));
 
-       if (property_bar->priv->stop_signals) return;
-       property_bar->priv->stop_signals = TRUE;
+       if (this->priv->stop_signals) return;
+       this->priv->stop_signals = TRUE;
 
        gl_debug (DEBUG_PROPERTY_BAR, "START");
 
        text_color_node = gl_color_node_new_default ();
-       text_color_node->color = gl_color_from_gdk_color (gdk_color);
+       text_color_node->color = color;
        
-       gl_debug (DEBUG_PROPERTY_BAR, "Color=%08x, Custom=%d, By_User=%d, Is_default=%d",
-                 text_color_node->color, custom, by_user, is_default);
+       gl_debug (DEBUG_PROPERTY_BAR, "Color=%08x, Is_default=%d",
+                 color, is_default);
 
        if (is_default)
         {
-               text_color_node->color = gl_prefs->default_text_color;
-               gl_view_set_selection_text_color (property_bar->priv->view,
-                                                 text_color_node);
-               gl_view_set_default_text_color   (property_bar->priv->view,
-                                                 gl_prefs->default_text_color);
+               text_color_node->color = gl_prefs_model_get_default_text_color (gl_prefs);
+               gl_label_set_selection_text_color (this->priv->label,
+                                                   text_color_node);
+               gl_label_set_default_text_color   (this->priv->label,
+                                                  text_color_node->color);
        }
         else
         {
-               gl_view_set_selection_text_color (property_bar->priv->view,
-                                                 text_color_node);
-               gl_view_set_default_text_color   (property_bar->priv->view,
-                                                 text_color_node->color);
+               gl_label_set_selection_text_color (this->priv->label,
+                                                   text_color_node);
+               gl_label_set_default_text_color   (this->priv->label,
+                                                  text_color_node->color);
        }
 
        gl_color_node_free (&text_color_node);
        
        gl_debug (DEBUG_PROPERTY_BAR, "END");
 
-       property_bar->priv->stop_signals = FALSE;
+       this->priv->stop_signals = FALSE;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Fill color combo changed.                                      */
 /*--------------------------------------------------------------------------*/
 static void
-fill_color_changed_cb (ColorCombo           *cc,
-                      GdkColor             *gdk_color,
-                      gboolean              custom,
-                      gboolean              by_user,
+fill_color_changed_cb (glColorComboButton   *cc,
+                       guint                 color,
                       gboolean              is_default,
-                      glUIPropertyBar      *property_bar)
+                      glUIPropertyBar      *this)
 {
        glColorNode *fill_color_node;
 
-       g_return_if_fail (property_bar && GL_IS_UI_PROPERTY_BAR (property_bar));
+       g_return_if_fail (this && GL_IS_UI_PROPERTY_BAR (this));
 
-       if (property_bar->priv->stop_signals) return;
-       property_bar->priv->stop_signals = TRUE;
+       if (this->priv->stop_signals) return;
+       this->priv->stop_signals = TRUE;
 
        gl_debug (DEBUG_PROPERTY_BAR, "START");
 
        fill_color_node = gl_color_node_new_default ();
 
-       fill_color_node->color = gl_color_from_gdk_color (gdk_color);
+       fill_color_node->color = color;
 
-       gl_debug (DEBUG_PROPERTY_BAR, "Color=%08x, Custom=%d, By_User=%d, Is_default=%d",
-                 fill_color_node->color, custom, by_user, is_default);
+       gl_debug (DEBUG_PROPERTY_BAR, "Color=%08x, Is_default=%d",
+                 color, is_default);
 
        if (is_default)
         {
 
                fill_color_node->color = GL_COLOR_NONE;
-               gl_view_set_selection_fill_color (property_bar->priv->view,
-                                                 fill_color_node);
-               gl_view_set_default_fill_color   (property_bar->priv->view,
-                                                 fill_color_node->color);
+               gl_label_set_selection_fill_color (this->priv->label,
+                                                   fill_color_node);
+               gl_label_set_default_fill_color   (this->priv->label,
+                                                   fill_color_node->color);
        }
         else
         {
-               gl_view_set_selection_fill_color (property_bar->priv->view,
-                                                 fill_color_node);
-               gl_view_set_default_fill_color   (property_bar->priv->view,
-                                                 fill_color_node->color);
+               gl_label_set_selection_fill_color (this->priv->label,
+                                                   fill_color_node);
+               gl_label_set_default_fill_color   (this->priv->label,
+                                                   fill_color_node->color);
        }
        gl_color_node_free (&fill_color_node);
        
        gl_debug (DEBUG_PROPERTY_BAR, "END");
 
-       property_bar->priv->stop_signals = FALSE;
+       this->priv->stop_signals = FALSE;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Line color combo changed.                                      */
 /*--------------------------------------------------------------------------*/
 static void
-line_color_changed_cb (ColorCombo           *cc,
-                      GdkColor             *gdk_color,
-                      gboolean              custom,
-                      gboolean              by_user,
+line_color_changed_cb (glColorComboButton   *cc,
+                       guint                 color,
                       gboolean              is_default,
-                      glUIPropertyBar      *property_bar)
+                      glUIPropertyBar      *this)
 {
        glColorNode *line_color_node;
 
-       g_return_if_fail (property_bar && GL_IS_UI_PROPERTY_BAR (property_bar));
+       g_return_if_fail (this && GL_IS_UI_PROPERTY_BAR (this));
 
-       if (property_bar->priv->stop_signals) return;
-       property_bar->priv->stop_signals = TRUE;
+       if (this->priv->stop_signals) return;
+       this->priv->stop_signals = TRUE;
 
        gl_debug (DEBUG_PROPERTY_BAR, "START");
 
        line_color_node = gl_color_node_new_default ();
-       line_color_node->color = gl_color_from_gdk_color (gdk_color);
+       line_color_node->color = color;
 
-       gl_debug (DEBUG_PROPERTY_BAR, "Color=%08x, Custom=%d, By_User=%d, Is_default=%d",
-                 line_color_node->color, custom, by_user, is_default);
+       gl_debug (DEBUG_PROPERTY_BAR, "Color=%08x, Is_default=%d",
+                 color, is_default);
 
        if (is_default)
         {
                line_color_node->color = GL_COLOR_NONE;
-               gl_view_set_selection_line_color (property_bar->priv->view,
-                                                 line_color_node);
-               gl_view_set_default_line_color   (property_bar->priv->view,
-                                                 line_color_node->color);
+               gl_label_set_selection_line_color (this->priv->label,
+                                                   line_color_node);
+               gl_label_set_default_line_color   (this->priv->label,
+                                                   line_color_node->color);
        }
         else
         {
-               gl_view_set_selection_line_color (property_bar->priv->view,
-                                                 line_color_node);
-               gl_view_set_default_line_color   (property_bar->priv->view,
-                                                 line_color_node->color);
+               gl_label_set_selection_line_color (this->priv->label,
+                                                   line_color_node);
+               gl_label_set_default_line_color   (this->priv->label,
+                                                   line_color_node->color);
        }
        gl_color_node_free (&line_color_node);
 
        gl_debug (DEBUG_PROPERTY_BAR, "END");
 
-       property_bar->priv->stop_signals = FALSE;
+       this->priv->stop_signals = FALSE;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Line width spin button changed.                                */
 /*--------------------------------------------------------------------------*/
 static void
 line_width_changed_cb (GtkSpinButton        *spin,
-                      glUIPropertyBar      *property_bar)
+                      glUIPropertyBar      *this)
 {
        gdouble line_width;
 
-       if (property_bar->priv->stop_signals) return;
-       property_bar->priv->stop_signals = TRUE;
+       if (this->priv->stop_signals) return;
+       this->priv->stop_signals = TRUE;
 
        gl_debug (DEBUG_PROPERTY_BAR, "START");
 
-       if (property_bar->priv->view)
+       if (this->priv->label)
         {
                line_width = gtk_spin_button_get_value (spin);
 
-               gl_view_set_selection_line_width (property_bar->priv->view,
-                                                 line_width);
-               gl_view_set_default_line_width   (property_bar->priv->view,
-                                                 line_width);
+               gl_label_set_selection_line_width (this->priv->label,
+                                                   line_width);
+               gl_label_set_default_line_width   (this->priv->label,
+                                                   line_width);
        }
 
        gl_debug (DEBUG_PROPERTY_BAR, "END");
 
-       property_bar->priv->stop_signals = FALSE;
+       this->priv->stop_signals = FALSE;
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Font bold toggled callback.                                     */
 /*---------------------------------------------------------------------------*/
 static void
 font_bold_toggled_cb (GtkToggleToolButton  *toggle,
-                     glUIPropertyBar      *property_bar)
+                     glUIPropertyBar      *this)
 {
        gboolean        state;
        PangoWeight     weight;
 
 
-       if (property_bar->priv->stop_signals) return;
-       property_bar->priv->stop_signals = TRUE;
+       if (this->priv->stop_signals) return;
+       this->priv->stop_signals = TRUE;
 
        gl_debug (DEBUG_PROPERTY_BAR, "START");
 
@@ -1133,199 +1094,160 @@ font_bold_toggled_cb (GtkToggleToolButton  *toggle,
 
        weight = state ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL;
 
-       gl_view_set_selection_font_weight (property_bar->priv->view, weight);
-       gl_view_set_default_font_weight   (property_bar->priv->view, weight);
+       gl_label_set_selection_font_weight (this->priv->label, weight);
+       gl_label_set_default_font_weight   (this->priv->label, weight);
 
        gl_debug (DEBUG_PROPERTY_BAR, "END");
 
-       property_bar->priv->stop_signals = FALSE;
+       this->priv->stop_signals = FALSE;
 }
                                                  
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Font italic toggled callback.                                   */
 /*---------------------------------------------------------------------------*/
 static void
 font_italic_toggled_cb (GtkToggleToolButton  *toggle,
-                       glUIPropertyBar      *property_bar)
+                       glUIPropertyBar      *this)
 {
        gboolean state;
 
-       if (property_bar->priv->stop_signals) return;
-       property_bar->priv->stop_signals = TRUE;
+       if (this->priv->stop_signals) return;
+       this->priv->stop_signals = TRUE;
 
        gl_debug (DEBUG_PROPERTY_BAR, "START");
 
        state = gtk_toggle_tool_button_get_active (toggle);
 
-       gl_view_set_selection_font_italic_flag (property_bar->priv->view, state);
-       gl_view_set_default_font_italic_flag   (property_bar->priv->view, state);
+       gl_label_set_selection_font_italic_flag (this->priv->label, state);
+       gl_label_set_default_font_italic_flag   (this->priv->label, state);
 
        gl_debug (DEBUG_PROPERTY_BAR, "END");
 
-       property_bar->priv->stop_signals = FALSE;
+       this->priv->stop_signals = FALSE;
 }
-                                                 
+
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Text align toggled callback.                                    */
 /*---------------------------------------------------------------------------*/
 static void
 text_align_toggled_cb (GtkToggleToolButton  *toggle,
-                      glUIPropertyBar      *property_bar)
+                      glUIPropertyBar      *this)
 {
-       if (property_bar->priv->stop_signals) return;
-       property_bar->priv->stop_signals = TRUE;
+       if (this->priv->stop_signals) return;
+       this->priv->stop_signals = TRUE;
 
        gl_debug (DEBUG_PROPERTY_BAR, "START");
 
-       if (gtk_toggle_tool_button_get_active (GTK_TOGGLE_TOOL_BUTTON (property_bar->priv->text_align_left_radio)))
+       if (gtk_toggle_tool_button_get_active (GTK_TOGGLE_TOOL_BUTTON (this->priv->text_align_left_radio)))
        {               
-               gl_view_set_selection_text_alignment (property_bar->priv->view,
-                                                     PANGO_ALIGN_LEFT);
-               gl_view_set_default_text_alignment   (property_bar->priv->view,
-                                                     PANGO_ALIGN_LEFT);
+               gl_label_set_selection_text_alignment (this->priv->label,
+                                                       PANGO_ALIGN_LEFT);
+               gl_label_set_default_text_alignment   (this->priv->label,
+                                                       PANGO_ALIGN_LEFT);
        }
 
-       if (gtk_toggle_tool_button_get_active (GTK_TOGGLE_TOOL_BUTTON (property_bar->priv->text_align_center_radio)))
+       if (gtk_toggle_tool_button_get_active (GTK_TOGGLE_TOOL_BUTTON (this->priv->text_align_center_radio)))
        {               
-               gl_view_set_selection_text_alignment (property_bar->priv->view,
-                                                     PANGO_ALIGN_CENTER);
-               gl_view_set_default_text_alignment   (property_bar->priv->view,
-                                                     PANGO_ALIGN_CENTER);
+               gl_label_set_selection_text_alignment (this->priv->label,
+                                                       PANGO_ALIGN_CENTER);
+               gl_label_set_default_text_alignment   (this->priv->label,
+                                                       PANGO_ALIGN_CENTER);
        }
 
-       if (gtk_toggle_tool_button_get_active (GTK_TOGGLE_TOOL_BUTTON (property_bar->priv->text_align_right_radio)))
+       if (gtk_toggle_tool_button_get_active (GTK_TOGGLE_TOOL_BUTTON (this->priv->text_align_right_radio)))
        {
-               gl_view_set_selection_text_alignment (property_bar->priv->view,
-                                                     PANGO_ALIGN_RIGHT);
-               gl_view_set_default_text_alignment   (property_bar->priv->view,
-                                                     PANGO_ALIGN_RIGHT);
+               gl_label_set_selection_text_alignment (this->priv->label,
+                                                       PANGO_ALIGN_RIGHT);
+               gl_label_set_default_text_alignment   (this->priv->label,
+                                                       PANGO_ALIGN_RIGHT);
        }
 
        gl_debug (DEBUG_PROPERTY_BAR, "END");
 
-       property_bar->priv->stop_signals = FALSE;
+       this->priv->stop_signals = FALSE;
 }
 
 
-/*****************************************************************************/
-/* Construct color combo "Custom widget".                                    */
-/*****************************************************************************/
-GtkWidget *
-gl_ui_property_bar_construct_color_combo (gchar *name,
-                                         gchar *string1,
-                                         gchar *string2,
-                                         gint   int1,
-                                         gint   int2)
-{
-       GtkWidget  *color_combo;
-       ColorGroup *cg;
-       gchar      *cg_name;
-       GdkColor   *gdk_color;
-       gchar      *no_color;
-       GdkPixbuf  *pixbuf = NULL;
-
-       switch (int1) {
-
-       case 0:
-               cg_name  = "text_color_group";
-                gdk_color = gl_color_to_gdk_color (gl_prefs->default_text_color);
-               no_color = _("Default");
-               pixbuf = gdk_pixbuf_new_from_inline (-1, stock_text_24, FALSE, NULL);
-               break;
-
-       case 2:
-               cg_name  = "line_color_group";
-                gdk_color = NULL;
-               no_color = _("No line");
-               pixbuf = gdk_pixbuf_new_from_inline (-1, stock_pencil_24, FALSE, NULL);
-               break;
-
-       case 1:
-       default:
-               cg_name  = "fill_color_group";
-                gdk_color = NULL;
-               no_color = _("No fill");
-               pixbuf = gdk_pixbuf_new_from_inline (-1, stock_bucket_fill_24, FALSE, NULL);
-               break;
-
-       }
-
-       cg = color_group_fetch (cg_name, NULL);
-       color_combo = color_combo_new (pixbuf, no_color, gdk_color, cg);
-        g_free (gdk_color);
-
-       color_combo_box_set_preview_relief (COLOR_COMBO(color_combo), GTK_RELIEF_NORMAL);
-
-       g_object_unref (G_OBJECT (pixbuf));
-
-       return color_combo;
-}
-
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Set sensitivity of doc controls.                                */
 /*---------------------------------------------------------------------------*/
 static void
-set_doc_items_sensitive (glUIPropertyBar      *property_bar,
+set_doc_items_sensitive (glUIPropertyBar      *this,
                         gboolean              state)
 {
-       gtk_widget_set_sensitive (property_bar->priv->font_family_combo,       state);
-       gtk_widget_set_sensitive (property_bar->priv->font_size_spin,          state);
-       gtk_widget_set_sensitive (property_bar->priv->font_bold_toggle,        state);
-       gtk_widget_set_sensitive (property_bar->priv->font_italic_toggle,      state);
-       gtk_widget_set_sensitive (property_bar->priv->text_align_left_radio,   state);
-       gtk_widget_set_sensitive (property_bar->priv->text_align_center_radio, state);
-       gtk_widget_set_sensitive (property_bar->priv->text_align_right_radio,  state);
-       gtk_widget_set_sensitive (property_bar->priv->text_color_combo,        state);
-       gtk_widget_set_sensitive (property_bar->priv->fill_color_combo,        state);
-       gtk_widget_set_sensitive (property_bar->priv->line_color_combo,        state);
-       gtk_widget_set_sensitive (property_bar->priv->line_width_spin,         state);
+       gtk_widget_set_sensitive (this->priv->font_family_combo,       state);
+       gtk_widget_set_sensitive (this->priv->font_size_spin,          state);
+       gtk_widget_set_sensitive (this->priv->font_bold_toggle,        state);
+       gtk_widget_set_sensitive (this->priv->font_italic_toggle,      state);
+       gtk_widget_set_sensitive (this->priv->text_align_left_radio,   state);
+       gtk_widget_set_sensitive (this->priv->text_align_center_radio, state);
+       gtk_widget_set_sensitive (this->priv->text_align_right_radio,  state);
+       gtk_widget_set_sensitive (this->priv->text_color_button,       state);
+       gtk_widget_set_sensitive (this->priv->fill_color_button,       state);
+       gtk_widget_set_sensitive (this->priv->line_color_button,       state);
+       gtk_widget_set_sensitive (this->priv->line_width_spin,         state);
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Set sensitivity of text related controls.                       */
 /*---------------------------------------------------------------------------*/
 static void
-set_text_items_sensitive (glUIPropertyBar      *property_bar,
+set_text_items_sensitive (glUIPropertyBar      *this,
                          gboolean              state)
 {
-       gtk_widget_set_sensitive (property_bar->priv->font_family_combo,       state);
-       gtk_widget_set_sensitive (property_bar->priv->font_size_spin,          state);
-       gtk_widget_set_sensitive (property_bar->priv->font_bold_toggle,        state);
-       gtk_widget_set_sensitive (property_bar->priv->font_italic_toggle,      state);
-       gtk_widget_set_sensitive (property_bar->priv->text_align_left_radio,   state);
-       gtk_widget_set_sensitive (property_bar->priv->text_align_center_radio, state);
-       gtk_widget_set_sensitive (property_bar->priv->text_align_right_radio,  state);
-       gtk_widget_set_sensitive (property_bar->priv->text_color_combo,        state);
+       gtk_widget_set_sensitive (this->priv->font_family_combo,       state);
+       gtk_widget_set_sensitive (this->priv->font_size_spin,          state);
+       gtk_widget_set_sensitive (this->priv->font_bold_toggle,        state);
+       gtk_widget_set_sensitive (this->priv->font_italic_toggle,      state);
+       gtk_widget_set_sensitive (this->priv->text_align_left_radio,   state);
+       gtk_widget_set_sensitive (this->priv->text_align_center_radio, state);
+       gtk_widget_set_sensitive (this->priv->text_align_right_radio,  state);
+       gtk_widget_set_sensitive (this->priv->text_color_button,       state);
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Set sensitivity of fill related controls.                       */
 /*---------------------------------------------------------------------------*/
 static void
-set_fill_items_sensitive (glUIPropertyBar      *property_bar,
+set_fill_items_sensitive (glUIPropertyBar      *this,
                          gboolean              state)
 {
-       gtk_widget_set_sensitive (property_bar->priv->fill_color_combo,        state);
+       gtk_widget_set_sensitive (this->priv->fill_color_button,       state);
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Set sensitivity of line color related controls.                 */
 /*---------------------------------------------------------------------------*/
 static void
-set_line_color_items_sensitive (glUIPropertyBar      *property_bar,
+set_line_color_items_sensitive (glUIPropertyBar      *this,
                                gboolean              state)
 {
-       gtk_widget_set_sensitive (property_bar->priv->line_color_combo,        state);
+       gtk_widget_set_sensitive (this->priv->line_color_button,       state);
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Set sensitivity of line width related controls.                 */
 /*---------------------------------------------------------------------------*/
 static void
-set_line_width_items_sensitive (glUIPropertyBar      *property_bar,
+set_line_width_items_sensitive (glUIPropertyBar      *this,
                                gboolean              state)
 {
-       gtk_widget_set_sensitive (property_bar->priv->line_width_spin,         state);
+       gtk_widget_set_sensitive (this->priv->line_width_spin,         state);
 }
 
 
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index e2af1912b686cf3c1debfd02cd147311b0724a62..9bc092be038026ace492587ecc4c96b67c2504de 100644 (file)
@@ -1,45 +1,41 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/**
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  ui-property-bar.h:  Property toolbar header file
+/*
+ *  ui-property-bar.h
+ *  Copyright (C) 2003-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __UI_PROPERTY_BAR_H__
 #define __UI_PROPERTY_BAR_H__
 
-#include <gtk/gtkhbox.h>
+#include <gtk/gtk.h>
 
-#include "view.h"
+#include "label.h"
 
 G_BEGIN_DECLS
 
 #define GL_TYPE_UI_PROPERTY_BAR (gl_ui_property_bar_get_type ())
 #define GL_UI_PROPERTY_BAR(obj) \
-        (GTK_CHECK_CAST((obj), GL_TYPE_UI_PROPERTY_BAR, glUIPropertyBar ))
+        (G_TYPE_CHECK_INSTANCE_CAST((obj), GL_TYPE_UI_PROPERTY_BAR, glUIPropertyBar ))
 #define GL_UI_PROPERTY_BAR_CLASS(klass) \
-        (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_UI_PROPERTY_BAR, glUIPropertyBarClass))
+        (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_UI_PROPERTY_BAR, glUIPropertyBarClass))
 #define GL_IS_UI_PROPERTY_BAR(obj) \
-        (GTK_CHECK_TYPE ((obj), GL_TYPE_UI_PROPERTY_BAR))
+        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_UI_PROPERTY_BAR))
 #define GL_IS_UI_PROPERTY_BAR_CLASS(klass) \
-        (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_UI_PROPERTY_BAR))
+        (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_UI_PROPERTY_BAR))
 
 typedef struct _glUIPropertyBar        glUIPropertyBar;
 typedef struct _glUIPropertyBarClass   glUIPropertyBarClass;
@@ -61,14 +57,21 @@ GType        gl_ui_property_bar_get_type          (void) G_GNUC_CONST;
 
 GtkWidget   *gl_ui_property_bar_new               (void);
 
-void         gl_ui_property_bar_set_view          (glUIPropertyBar *property_bar,
-                                                  glView          *view);
-
-void         gl_ui_property_bar_set_tooltips      (glUIPropertyBar *property_bar,
-                                                  gboolean         state);
-
+void         gl_ui_property_bar_set_label         (glUIPropertyBar *this,
+                                                  glLabel         *label);
 
 
 G_END_DECLS
 
 #endif /* __UI_PROPERTY_BAR_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index f8c398f4eea89d90803f76ade1a572ec40ccda9b..d12f8121319f4d41febe817be5fda01387580980 100644 (file)
@@ -1,25 +1,21 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/**
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  ui-sidebar.c:  Object property sidebar
+/*
+ *  ui-sidebar.c
+ *  Copyright (C) 2003-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 
 #include "ui-util.h"
 #include "object-editor.h"
-#include "stock.h"
 
 #include "debug.h"
 
+
 /*===========================================================================*/
 /* Private macros and constants.                                             */
 /*===========================================================================*/
 
 #define DEFAULT_SIDEBAR_WIDTH 340
 
+
 /*===========================================================================*/
 /* Private data types                                                        */
 /*===========================================================================*/
 
 struct _glUISidebarPrivate {
 
-       glView              *view;
-
-       GtkWidget           *child;
-       GtkWidget           *empty_child;
+       GtkWidget           *editor;
 };
 
 /*===========================================================================*/
@@ -65,15 +59,12 @@ static void     gl_ui_sidebar_finalize      (GObject              *object);
 
 static void     gl_ui_sidebar_construct     (glUISidebar          *sidebar);
 
-static void     selection_changed_cb        (glView               *view,
-                                            glUISidebar          *sidebar);
-
 
-\f
 /****************************************************************************/
 /* Boilerplate Object stuff.                                                */
 /****************************************************************************/
-G_DEFINE_TYPE (glUISidebar, gl_ui_sidebar, GTK_TYPE_VBOX);
+G_DEFINE_TYPE (glUISidebar, gl_ui_sidebar, GTK_TYPE_VBOX)
+
 
 static void
 gl_ui_sidebar_class_init (glUISidebarClass *class)
@@ -89,6 +80,7 @@ gl_ui_sidebar_class_init (glUISidebarClass *class)
        gl_debug (DEBUG_UI, "END");
 }
 
+
 static void
 gl_ui_sidebar_init (glUISidebar *sidebar)
 {
@@ -99,6 +91,7 @@ gl_ui_sidebar_init (glUISidebar *sidebar)
        gl_debug (DEBUG_UI, "END");
 }
 
+
 static void
 gl_ui_sidebar_finalize (GObject *object)
 {
@@ -109,9 +102,6 @@ gl_ui_sidebar_finalize (GObject *object)
        g_return_if_fail (object != NULL);
        g_return_if_fail (GL_IS_UI_SIDEBAR (object));
 
-       if (sidebar->priv->view) {
-               g_object_unref (G_OBJECT(sidebar->priv->view));
-       }
        g_free (sidebar->priv);
 
        G_OBJECT_CLASS (gl_ui_sidebar_parent_class)->finalize (object);
@@ -119,6 +109,7 @@ gl_ui_sidebar_finalize (GObject *object)
        gl_debug (DEBUG_UI, "END");
 }
 
+
 /****************************************************************************/
 /* Create a NEW sidebar.                                                    */
 /****************************************************************************/
@@ -131,8 +122,6 @@ gl_ui_sidebar_new (void)
 
        sidebar = g_object_new (gl_ui_sidebar_get_type (), NULL);
 
-       gtk_widget_set_size_request (GTK_WIDGET (sidebar), DEFAULT_SIDEBAR_WIDTH, -1);
-
        gl_ui_sidebar_construct (sidebar);
 
        gl_debug (DEBUG_UI, "END");
@@ -140,6 +129,7 @@ gl_ui_sidebar_new (void)
        return GTK_WIDGET(sidebar);
 }
 
+
 /******************************************************************************/
 /* Initialize property toolbar.                                               */
 /******************************************************************************/
@@ -148,70 +138,40 @@ gl_ui_sidebar_construct (glUISidebar       *sidebar)
 {
        gl_debug (DEBUG_UI, "START");
 
-       sidebar->priv->empty_child = gl_object_editor_new (GL_STOCK_PROPERTIES,
-                                                          _("Object properties"),
-                                                           NULL,
-                                                          GL_OBJECT_EDITOR_EMPTY,
-                                                          NULL);
+       sidebar->priv->editor = gl_object_editor_new ();
+       gtk_widget_show (sidebar->priv->editor);
 
-       sidebar->priv->child = gtk_widget_ref (sidebar->priv->empty_child);
-       gtk_widget_show (sidebar->priv->child);
-       gtk_container_add (GTK_CONTAINER(sidebar), sidebar->priv->child);
-
-       gtk_widget_set_sensitive (GTK_WIDGET (sidebar), FALSE);
+        gtk_box_pack_start (GTK_BOX (sidebar), sidebar->priv->editor, FALSE, FALSE, 0);
+        gtk_widget_set_vexpand (GTK_WIDGET (sidebar->priv->editor), FALSE);
+        gtk_widget_set_hexpand (GTK_WIDGET (sidebar->priv->editor), FALSE);
 
        gl_debug (DEBUG_UI, "END");
 }
 
+
 /****************************************************************************/
-/* Set view associated with sidebar.                                        */
+/* Set label associated with sidebar.                                       */
 /****************************************************************************/
 void
-gl_ui_sidebar_set_view (glUISidebar *sidebar,
-                       glView      *view)
+gl_ui_sidebar_set_label (glUISidebar *sidebar,
+                         glLabel     *label)
 {
        gl_debug (DEBUG_UI, "START");
 
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       gtk_widget_set_sensitive (GTK_WIDGET (sidebar), TRUE);
+       g_return_if_fail (label && GL_IS_LABEL (label));
 
-       sidebar->priv->view = GL_VIEW (g_object_ref (G_OBJECT (view)));
-
-       g_signal_connect (G_OBJECT(view), "selection_changed",
-                         G_CALLBACK(selection_changed_cb), sidebar);
+        gl_object_editor_set_label (GL_OBJECT_EDITOR (sidebar->priv->editor), label);
 
        gl_debug (DEBUG_UI, "END");
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  View "selection state changed" callback.                        */
-/*---------------------------------------------------------------------------*/
-static void 
-selection_changed_cb (glView      *view,
-                     glUISidebar *sidebar)
-{
-       gl_debug (DEBUG_UI, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-       g_return_if_fail (sidebar && GL_IS_UI_SIDEBAR (sidebar));
-
-       gtk_container_remove (GTK_CONTAINER(sidebar), sidebar->priv->child);
-
-       if (gl_view_is_selection_empty (view) || !gl_view_is_selection_atomic (view)) {
-
-               sidebar->priv->child = gtk_widget_ref (sidebar->priv->empty_child);
-               
-       } else {
 
-               sidebar->priv->child = gtk_widget_ref (gl_view_get_editor (view));
-
-       }
-
-       gtk_widget_show (sidebar->priv->child);
-
-       gtk_box_pack_start (GTK_BOX(sidebar), sidebar->priv->child, TRUE, TRUE, 0);
-
-       gl_debug (DEBUG_UI, "END");
-}
 
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 9ec1264d25d98ba1d3c1150f253307acedfac81f..3ff5f916c5d5bf0dd22b4bd15631e99c523182f1 100644 (file)
@@ -1,31 +1,27 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/**
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  ui-sidebar.h:  Object property sidebar header file
+/*
+ *  ui-sidebar.h
+ *  Copyright (C) 2003-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __UI_SIDEBAR_H__
 #define __UI_SIDEBAR_H__
 
-#include <gtk/gtkvbox.h>
+#include <gtk/gtk.h>
 
 #include "view.h"
 
@@ -33,13 +29,13 @@ G_BEGIN_DECLS
 
 #define GL_TYPE_UI_SIDEBAR (gl_ui_sidebar_get_type ())
 #define GL_UI_SIDEBAR(obj) \
-        (GTK_CHECK_CAST((obj), GL_TYPE_UI_SIDEBAR, glUISidebar ))
+        (G_TYPE_CHECK_INSTANCE_CAST((obj), GL_TYPE_UI_SIDEBAR, glUISidebar ))
 #define GL_UI_SIDEBAR_CLASS(klass) \
-        (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_UI_SIDEBAR, glUISidebarClass))
+        (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_UI_SIDEBAR, glUISidebarClass))
 #define GL_IS_UI_SIDEBAR(obj) \
-        (GTK_CHECK_TYPE ((obj), GL_TYPE_UI_SIDEBAR))
+        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_UI_SIDEBAR))
 #define GL_IS_UI_SIDEBAR_CLASS(klass) \
-        (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_UI_SIDEBAR))
+        (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_UI_SIDEBAR))
 
 typedef struct _glUISidebar        glUISidebar;
 typedef struct _glUISidebarClass   glUISidebarClass;
@@ -60,10 +56,21 @@ GType        gl_ui_sidebar_get_type          (void) G_GNUC_CONST;
 
 GtkWidget   *gl_ui_sidebar_new               (void);
 
-void         gl_ui_sidebar_set_view          (glUISidebar       *sidebar,
-                                             glView            *view);
+void         gl_ui_sidebar_set_label         (glUISidebar       *sidebar,
+                                             glLabel           *label);
 
 
 G_END_DECLS
 
 #endif /* __UI_SIDEBAR_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 3a0539df7c04e7c72648d936676a82d2d2be4732..7494dca9cb378df054781ad9f25d3559a85d1938 100644 (file)
@@ -1,53 +1,52 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  ui-util.c:  GLabels ui utilities module
+ *  ui-util.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "ui-util.h"
 
-#include <gtk/gtkaction.h>
-#include <gtk/gtktoggleaction.h>
+#include <gtk/gtk.h>
 
 #include "debug.h"
 
+
 /*==========================================================================*/
 /* Private macros and constants.                                            */
 /*==========================================================================*/
 
+
 /*==========================================================================*/
 /* Private types.                                                           */
 /*==========================================================================*/
 
+
 /*==========================================================================*/
 /* Private globals                                                          */
 /*==========================================================================*/
 
+
 /*==========================================================================*/
 /* Local function prototypes                                                */
 /*==========================================================================*/
 
 
-\f
 /*****************************************************************************/
 /** Set sensitivity of verb.                                                 */
 /*****************************************************************************/
@@ -73,6 +72,7 @@ gl_ui_util_set_verb_sensitive (GtkUIManager  *ui,
        gl_debug (DEBUG_UI, "END");
 }
 
+
 /*****************************************************************************/
 /** Set sensitivity of a list of verbs.                                      */
 /*****************************************************************************/
@@ -100,6 +100,7 @@ gl_ui_util_set_verb_list_sensitive (GtkUIManager  *ui,
        gl_debug (DEBUG_UI, "END");
 }
 
+
 /*****************************************************************************/
 /** Set state of a verb.                                                     */
 /*****************************************************************************/
@@ -124,3 +125,13 @@ gl_ui_util_set_verb_state (GtkUIManager  *ui,
        gl_debug (DEBUG_UI, "END");
 }
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index ffa2653ec079c0c8b666c3d0a1ecba235ea3e232..fd9ef042d61619c11485f699f7fa9075bad9c012 100644 (file)
@@ -1,30 +1,27 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  ui-util.h:  GLabels UI utilities module header file
+ *  ui-util.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2003  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #ifndef __GL_UI_UTIL_H__
 #define __GL_UI_UTIL_H__
 
-#include <gtk/gtkuimanager.h>
+#include <gtk/gtk.h>
 
 G_BEGIN_DECLS
 
@@ -43,3 +40,14 @@ void       gl_ui_util_set_verb_state          (GtkUIManager  *ui,
 G_END_DECLS
 
 #endif /* __GL_UI_UTIL_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index f8cbd1280e4ac2f3046d15e3d75093777408eadc..26dc2cd4475a8b93d387d3f719c0685e0997827b 100644 (file)
--- a/src/ui.c
+++ b/src/ui.c
@@ -1,53 +1,46 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  ui.c:  GLabels ui module
+ *  ui.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "ui.h"
 
 #include <glib/gi18n.h>
-#include <gconf/gconf-client.h>
-#include <gtk/gtkrecentchoosermenu.h>
-#include <gtk/gtkmenuitem.h>
-#include <gtk/gtkstock.h>
-#include <gtk/gtktoolbar.h>
-#include <gtk/gtkstatusbar.h>
+#include <gtk/gtk.h>
 #include <string.h>
 
 #include "ui-util.h"
 #include "ui-commands.h"
 #include "file.h"
 #include "prefs.h"
-#include "stock.h"
 #include "window.h"
 #include "recent.h" 
 
 #include "debug.h"
 
+
 /*==========================================================================*/
 /* Private macros and constants.                                            */
 /*==========================================================================*/
 
+
 /*==========================================================================*/
 /* Private types.                                                           */
 /*==========================================================================*/
@@ -66,6 +59,11 @@ static void set_app_drawing_toolbar_style  (GtkUIManager    *ui);
 
 static void set_view_style                 (GtkUIManager    *ui);
 
+static void descend_menu_set_always_show_image (GtkMenu *menu);
+
+static void set_additional_properties      (GtkUIManager    *ui);
+
+
 static void connect_proxy_cb               (GtkUIManager    *ui,
                                            GtkAction       *action,
                                            GtkWidget       *proxy,
@@ -101,8 +99,8 @@ static GtkActionEntry entries[] = {
        { "ObjectsCreateMenu",       NULL, N_("_Create") },
        { "ObjectsOrderMenu",        NULL, N_("_Order") },
        { "ObjectsRotateFlipMenu",   NULL, N_("_Rotate/Flip") },
-       { "ObjectsAlignHorizMenu",   NULL, N_("Align _Horizontal") },
-       { "ObjectsAlignVertMenu",    NULL, N_("Align _Vertical") },
+       { "ObjectsAlignMenu",        NULL, N_("_Alignment") },
+       { "ObjectsCenterMenu",        NULL, N_("C_enter") },
        { "HelpMenu",                NULL, N_("_Help") },
 
        /* Popup entries. */
@@ -175,6 +173,20 @@ static GtkActionEntry entries[] = {
 
 
        /* Edit action entries. */
+       { "EditUndo",
+         GTK_STOCK_UNDO,
+         N_("Undo"),
+         "<control>Z",
+         N_("Undo"),
+         G_CALLBACK (gl_ui_cmd_edit_undo) },
+
+       { "EditRedo",
+         GTK_STOCK_REDO,
+         N_("Redo"),
+         "<shift><control>Z",
+         N_("Redo"),
+         G_CALLBACK (gl_ui_cmd_edit_redo) },
+
        { "EditCut",
          GTK_STOCK_CUT,
          N_("Cut"),
@@ -257,154 +269,154 @@ static GtkActionEntry entries[] = {
 
        /* Objects action entries. */
        { "ObjectsArrowMode",
-         GL_STOCK_ARROW,
+         "glabels-arrow",
          N_("Select Mode"),
          NULL,
          N_("Select, move and modify objects"),
          G_CALLBACK (gl_ui_cmd_objects_arrow_mode) },
 
        { "ObjectsCreateText",
-         GL_STOCK_TEXT,
+         "glabels-text",
          N_("Text"),
          NULL,
          N_("Create text object"),
          G_CALLBACK (gl_ui_cmd_objects_create_text) },
 
        { "ObjectsCreateBox",
-         GL_STOCK_BOX,
+         "glabels-box",
          N_("Box"),
          NULL,
          N_("Create box/rectangle object"),
          G_CALLBACK (gl_ui_cmd_objects_create_box) },
 
        { "ObjectsCreateLine",
-         GL_STOCK_LINE,
+         "glabels-line",
          N_("Line"),
          NULL,
          N_("Create line object"),
          G_CALLBACK (gl_ui_cmd_objects_create_line) },
 
        { "ObjectsCreateEllipse",
-         GL_STOCK_ELLIPSE,
+         "glabels-ellipse",
          N_("Ellipse"),
          NULL,
          N_("Create ellipse/circle object"),
          G_CALLBACK (gl_ui_cmd_objects_create_ellipse) },
 
        { "ObjectsCreateImage",
-         GL_STOCK_IMAGE,
+         "glabels-image",
          N_("Image"),
          NULL,
          N_("Create image object"),
          G_CALLBACK (gl_ui_cmd_objects_create_image) },
 
        { "ObjectsCreateBarcode",
-         GL_STOCK_BARCODE,
+         "glabels-barcode",
          N_("Barcode"),
          NULL,
          N_("Create barcode object"),
          G_CALLBACK (gl_ui_cmd_objects_create_barcode) },
        
        { "ObjectsRaise",
-         GL_STOCK_ORDER_TOP,
+         "glabels-order-top",
          N_("Bring to front"),
          NULL,
          N_("Raise object to top"),
          G_CALLBACK (gl_ui_cmd_objects_raise) },
 
        { "ObjectsLower",
-         GL_STOCK_ORDER_BOTTOM,
+         "glabels-order-bottom",
          N_("Send to back"),
          NULL,
          N_("Lower object to bottom"),
          G_CALLBACK (gl_ui_cmd_objects_lower) },
 
        { "ObjectsRotateLeft",
-         GL_STOCK_ROTATE_LEFT,
+         "glabels-rotate-left",
          N_("Rotate left"),
          NULL,
          N_("Rotate object 90 degrees counter-clockwise"),
          G_CALLBACK (gl_ui_cmd_objects_rotate_left) },
 
        { "ObjectsRotateRight",
-         GL_STOCK_ROTATE_RIGHT,
+         "glabels-rotate-right",
          N_("Rotate right"),
          NULL,
          N_("Rotate object 90 degrees clockwise"),
          G_CALLBACK (gl_ui_cmd_objects_rotate_right) },
 
        { "ObjectsFlipHorizontal",
-         GL_STOCK_FLIP_HORIZ,
+         "glabels-flip-horiz",
          N_("Flip horizontally"),
          NULL,
          N_("Flip object horizontally"),
          G_CALLBACK (gl_ui_cmd_objects_flip_horiz) },
 
        { "ObjectsFlipVertical",
-         GL_STOCK_FLIP_VERT,
+         "glabels-flip-vert",
          N_("Flip vertically"),
          NULL,
          N_("Flip object vertically"),
          G_CALLBACK (gl_ui_cmd_objects_flip_vert) },
 
        { "ObjectsAlignLeft",
-         GL_STOCK_ALIGN_LEFT,
+         "glabels-align-left",
          N_("Align left"),
          NULL,
          N_("Align objects to left edges"),
          G_CALLBACK (gl_ui_cmd_objects_align_left) },
 
+       { "ObjectsAlignHCenter",
+         "glabels-align-hcenter",
+         N_("Align center"),
+         NULL,
+         N_("Align objects to horizontal centers"),
+         G_CALLBACK (gl_ui_cmd_objects_align_hcenter) },
+
        { "ObjectsAlignRight",
-         GL_STOCK_ALIGN_RIGHT,
+         "glabels-align-right",
          N_("Align right"),
          NULL,
          N_("Align objects to right edges"),
          G_CALLBACK (gl_ui_cmd_objects_align_right) },
 
-       { "ObjectsAlignHCenter",
-         GL_STOCK_ALIGN_HCENTER,
-         N_("Align horizontal center"),
-         NULL,
-         N_("Align objects to horizontal centers"),
-         G_CALLBACK (gl_ui_cmd_objects_align_hcenter) },
-
        { "ObjectsAlignTop",
-         GL_STOCK_ALIGN_TOP,
-         N_("Align tops"),
+         "glabels-align-top",
+         N_("Align top"),
          NULL,
          N_("Align objects to top edges"),
          G_CALLBACK (gl_ui_cmd_objects_align_top) },
 
-       { "ObjectsAlignBottom",
-         GL_STOCK_ALIGN_BOTTOM,
-         N_("Align bottoms"),
-         NULL,
-         N_("Align objects to bottom edges"),
-         G_CALLBACK (gl_ui_cmd_objects_align_bottom) },
-
        { "ObjectsAlignVCenter",
-         GL_STOCK_ALIGN_VCENTER,
-         N_("Align vertical center"),
+         "glabels-align-vcenter",
+         N_("Align middle"),
          NULL,
          N_("Align objects to vertical centers"),
          G_CALLBACK (gl_ui_cmd_objects_align_vcenter) },
 
+       { "ObjectsAlignBottom",
+         "glabels-align-bottom",
+         N_("Align bottom"),
+         NULL,
+         N_("Align objects to bottom edges"),
+         G_CALLBACK (gl_ui_cmd_objects_align_bottom) },
+
        { "ObjectsCenterHorizontal",
-         GL_STOCK_CENTER_HORIZ,
+         "glabels-center-horiz",
          N_("Center horizontally"),
          NULL,
          N_("Center objects to horizontal label center"),
          G_CALLBACK (gl_ui_cmd_objects_center_horiz) },
 
        { "ObjectsCenterVertical",
-         GL_STOCK_CENTER_VERT,
+         "glabels-center-vert",
          N_("Center vertically"),
          NULL,
          N_("Center objects to vertical label center"),
          G_CALLBACK (gl_ui_cmd_objects_center_vert) },
 
        { "ObjectsMergeProperties",
-         GL_STOCK_MERGE,
+         "glabels-merge",
          N_("Merge properties"),
          NULL,
          N_("Edit merge properties"),
@@ -439,14 +451,6 @@ static GtkToggleActionEntry toggle_entries[] = {
          G_CALLBACK (gl_ui_cmd_view_property_bar_toggle),
          TRUE },
 
-       { "ViewPropertyToolBarToolTips",
-         NULL,
-         N_("Show tooltips"),
-         NULL,
-         N_("Show tooltips for property toolbar"),
-         G_CALLBACK (gl_ui_cmd_view_property_bar_tips_toggle),
-         TRUE },
-
        { "ViewGrid",
          NULL,
          N_("Grid"),
@@ -484,22 +488,6 @@ static GtkToggleActionEntry ui_toggle_entries[] = {
          G_CALLBACK (view_ui_item_toggled_cb),
          TRUE },
 
-       { "ViewMainToolBarToolTips",
-         NULL,
-         N_("Show tooltips"),
-         NULL,
-         N_("Show tooltips for main toolbar"),
-         G_CALLBACK (view_ui_item_toggled_cb),
-         TRUE },
-
-       { "ViewDrawingToolBarToolTips",
-         NULL,
-         N_("Show tooltips"),
-         NULL,
-         N_("Show tooltips for drawing toolbar"),
-         G_CALLBACK (view_ui_item_toggled_cb),
-         TRUE },
-
 };
 static guint n_ui_toggle_entries = G_N_ELEMENTS (ui_toggle_entries);
 
@@ -524,6 +512,9 @@ static const gchar *ui_info =
 "                      <menuitem action='FileQuit' />"
 "              </menu>"
 "              <menu action='EditMenu'>"
+"                      <menuitem action='EditUndo' />"
+"                      <menuitem action='EditRedo' />"
+"                      <separator />"
 "                      <menuitem action='EditCut' />"
 "                      <menuitem action='EditCopy' />"
 "                      <menuitem action='EditPaste' />"
@@ -539,16 +530,6 @@ static const gchar *ui_info =
 "                      <menuitem action='ViewDrawingToolBar' />"
 "                      <menuitem action='ViewPropertyToolBar' />"
 "                      <separator />"
-"                      <menu action='ViewMainToolBarMenu'>"
-"                              <menuitem action='ViewMainToolBarToolTips' />"
-"                      </menu>"
-"                      <menu action='ViewDrawingToolBarMenu'>"
-"                              <menuitem action='ViewDrawingToolBarToolTips' />"
-"                      </menu>"
-"                      <menu action='ViewPropertyToolBarMenu'>"
-"                              <menuitem action='ViewPropertyToolBarToolTips' />"
-"                      </menu>"
-"                      <separator />"
 "                      <menuitem action='ViewGrid' />"
 "                      <menuitem action='ViewMarkup' />"
 "                      <separator />"
@@ -578,16 +559,17 @@ static const gchar *ui_info =
 "                              <menuitem action='ObjectsFlipHorizontal' />"
 "                              <menuitem action='ObjectsFlipVertical' />"
 "                      </menu>"
-"                      <menu action='ObjectsAlignHorizMenu'>"
+"                      <menu action='ObjectsAlignMenu'>"
 "                              <menuitem action='ObjectsAlignLeft' />"
 "                              <menuitem action='ObjectsAlignHCenter' />"
 "                              <menuitem action='ObjectsAlignRight' />"
-"                              <menuitem action='ObjectsCenterHorizontal' />"
-"                      </menu>"
-"                      <menu action='ObjectsAlignVertMenu'>"
+"                              <separator />"
 "                              <menuitem action='ObjectsAlignTop' />"
 "                              <menuitem action='ObjectsAlignVCenter' />"
 "                              <menuitem action='ObjectsAlignBottom' />"
+"                      </menu>"
+"                      <menu action='ObjectsCenterMenu'>"
+"                              <menuitem action='ObjectsCenterHorizontal' />"
 "                              <menuitem action='ObjectsCenterVertical' />"
 "                      </menu>"
 "                      <separator />"
@@ -640,16 +622,17 @@ static const gchar *ui_info =
 "                      <menuitem action='ObjectsFlipHorizontal' />"
 "                      <menuitem action='ObjectsFlipVertical' />"
 "              </menu>"
-"              <menu action='ObjectsAlignHorizMenu'>"
+"              <menu action='ObjectsAlignMenu'>"
 "                      <menuitem action='ObjectsAlignLeft' />"
 "                      <menuitem action='ObjectsAlignHCenter' />"
 "                      <menuitem action='ObjectsAlignRight' />"
-"                      <menuitem action='ObjectsCenterHorizontal' />"
-"              </menu>"
-"              <menu action='ObjectsAlignVertMenu'>"
+"                      <separator />"
 "                      <menuitem action='ObjectsAlignTop' />"
 "                      <menuitem action='ObjectsAlignVCenter' />"
 "                      <menuitem action='ObjectsAlignBottom' />"
+"              </menu>"
+"              <menu action='ObjectsCenterMenu'>"
+"                      <menuitem action='ObjectsCenterHorizontal' />"
 "                      <menuitem action='ObjectsCenterVertical' />"
 "              </menu>"
 "              <separator />"
@@ -672,9 +655,10 @@ static gchar* doc_verbs [] = {
        "/ui/MenuBar/FileMenu/FileSaveAs",
        "/ui/MenuBar/FileMenu/FilePrint",
        "/ui/MenuBar/FileMenu/FileClose",
+       "/ui/MenuBar/EditMenu/EditUndo",
+       "/ui/MenuBar/EditMenu/EditRedo",
        "/ui/MenuBar/EditMenu/EditCut",
        "/ui/MenuBar/EditMenu/EditCopy",
-       "/ui/MenuBar/EditMenu/EditPaste",
        "/ui/MenuBar/EditMenu/EditDelete",
        "/ui/MenuBar/EditMenu/EditSelectAll",
        "/ui/MenuBar/EditMenu/EditUnSelectAll",
@@ -685,26 +669,31 @@ static gchar* doc_verbs [] = {
        "/ui/MenuBar/ViewMenu/ViewGrid",
        "/ui/MenuBar/ViewMenu/ViewMarkup",
        "/ui/MenuBar/ObjectsMenu/ObjectsArrowMode",
+       "/ui/MenuBar/ObjectsMenu/ObjectsCreateMenu",
        "/ui/MenuBar/ObjectsMenu/ObjectsCreateMenu/ObjectsCreateText",
        "/ui/MenuBar/ObjectsMenu/ObjectsCreateMenu/ObjectsCreateLine",
        "/ui/MenuBar/ObjectsMenu/ObjectsCreateMenu/ObjectsCreateBox",
        "/ui/MenuBar/ObjectsMenu/ObjectsCreateMenu/ObjectsCreateEllipse",
        "/ui/MenuBar/ObjectsMenu/ObjectsCreateMenu/ObjectsCreateImage",
        "/ui/MenuBar/ObjectsMenu/ObjectsCreateMenu/ObjectsCreateBarcode",
+       "/ui/MenuBar/ObjectsMenu/ObjectsOrderMenu",
        "/ui/MenuBar/ObjectsMenu/ObjectsOrderMenu/ObjectsRaise",
        "/ui/MenuBar/ObjectsMenu/ObjectsOrderMenu/ObjectsLower",
+       "/ui/MenuBar/ObjectsMenu/ObjectsRotateFlipMenu",
        "/ui/MenuBar/ObjectsMenu/ObjectsRotateFlipMenu/ObjectsRotateLeft",
        "/ui/MenuBar/ObjectsMenu/ObjectsRotateFlipMenu/ObjectsRotateRight",
        "/ui/MenuBar/ObjectsMenu/ObjectsRotateFlipMenu/ObjectsFlipHorizontal",
        "/ui/MenuBar/ObjectsMenu/ObjectsRotateFlipMenu/ObjectsFlipVertical",
-       "/ui/MenuBar/ObjectsMenu/ObjectsAlignHorizMenu/ObjectsAlignLeft",
-       "/ui/MenuBar/ObjectsMenu/ObjectsAlignHorizMenu/ObjectsAlignRight",
-       "/ui/MenuBar/ObjectsMenu/ObjectsAlignHorizMenu/ObjectsAlignHCenter",
-       "/ui/MenuBar/ObjectsMenu/ObjectsAlignHorizMenu/ObjectsCenterHorizontal",
-       "/ui/MenuBar/ObjectsMenu/ObjectsAlignVertMenu/ObjectsAlignTop",
-       "/ui/MenuBar/ObjectsMenu/ObjectsAlignVertMenu/ObjectsAlignBottom",
-       "/ui/MenuBar/ObjectsMenu/ObjectsAlignVertMenu/ObjectsAlignVCenter",
-       "/ui/MenuBar/ObjectsMenu/ObjectsAlignVertMenu/ObjectsCenterVertical",
+       "/ui/MenuBar/ObjectsMenu/ObjectsAlignMenu",
+       "/ui/MenuBar/ObjectsMenu/ObjectsAlignMenu/ObjectsAlignLeft",
+       "/ui/MenuBar/ObjectsMenu/ObjectsAlignMenu/ObjectsAlignRight",
+       "/ui/MenuBar/ObjectsMenu/ObjectsAlignMenu/ObjectsAlignHCenter",
+       "/ui/MenuBar/ObjectsMenu/ObjectsAlignMenu/ObjectsAlignTop",
+       "/ui/MenuBar/ObjectsMenu/ObjectsAlignMenu/ObjectsAlignBottom",
+       "/ui/MenuBar/ObjectsMenu/ObjectsAlignMenu/ObjectsAlignVCenter",
+       "/ui/MenuBar/ObjectsMenu/ObjectsCenterMenu",
+       "/ui/MenuBar/ObjectsMenu/ObjectsCenterMenu/ObjectsCenterHorizontal",
+       "/ui/MenuBar/ObjectsMenu/ObjectsCenterMenu/ObjectsCenterVertical",
        "/ui/MenuBar/ObjectsMenu/ObjectsMergeProperties",
 
        NULL
@@ -716,19 +705,28 @@ static gchar* doc_modified_verbs [] = {
        NULL
 };
 
+static gchar* paste_verbs [] = {
+       "/ui/MenuBar/EditMenu/EditPaste",
+
+       NULL
+};
+
 static gchar* selection_verbs [] = {
        "/ui/MenuBar/EditMenu/EditCut",
        "/ui/MenuBar/EditMenu/EditCopy",
        "/ui/MenuBar/EditMenu/EditDelete",
        "/ui/MenuBar/EditMenu/EditUnSelectAll",
+       "/ui/MenuBar/ObjectsMenu/ObjectsOrderMenu",
        "/ui/MenuBar/ObjectsMenu/ObjectsOrderMenu/ObjectsRaise",
        "/ui/MenuBar/ObjectsMenu/ObjectsOrderMenu/ObjectsLower",
+       "/ui/MenuBar/ObjectsMenu/ObjectsRotateFlipMenu",
        "/ui/MenuBar/ObjectsMenu/ObjectsRotateFlipMenu/ObjectsRotateLeft",
        "/ui/MenuBar/ObjectsMenu/ObjectsRotateFlipMenu/ObjectsRotateRight",
        "/ui/MenuBar/ObjectsMenu/ObjectsRotateFlipMenu/ObjectsFlipHorizontal",
        "/ui/MenuBar/ObjectsMenu/ObjectsRotateFlipMenu/ObjectsFlipVertical",
-       "/ui/MenuBar/ObjectsMenu/ObjectsAlignHorizMenu/ObjectsCenterHorizontal",
-       "/ui/MenuBar/ObjectsMenu/ObjectsAlignVertMenu/ObjectsCenterVertical",
+       "/ui/MenuBar/ObjectsMenu/ObjectsCenterMenu",
+       "/ui/MenuBar/ObjectsMenu/ObjectsCenterMenu/ObjectsCenterHorizontal",
+       "/ui/MenuBar/ObjectsMenu/ObjectsCenterMenu/ObjectsCenterVertical",
 
        NULL
 };
@@ -739,12 +737,13 @@ static gchar* atomic_selection_verbs [] = {
 };
 
 static gchar* multi_selection_verbs [] = {
-       "/ui/MenuBar/ObjectsMenu/ObjectsAlignHorizMenu/ObjectsAlignLeft",
-       "/ui/MenuBar/ObjectsMenu/ObjectsAlignHorizMenu/ObjectsAlignRight",
-       "/ui/MenuBar/ObjectsMenu/ObjectsAlignHorizMenu/ObjectsAlignHCenter",
-       "/ui/MenuBar/ObjectsMenu/ObjectsAlignVertMenu/ObjectsAlignTop",
-       "/ui/MenuBar/ObjectsMenu/ObjectsAlignVertMenu/ObjectsAlignBottom",
-       "/ui/MenuBar/ObjectsMenu/ObjectsAlignVertMenu/ObjectsAlignVCenter",
+       "/ui/MenuBar/ObjectsMenu/ObjectsAlignMenu",
+       "/ui/MenuBar/ObjectsMenu/ObjectsAlignMenu/ObjectsAlignLeft",
+       "/ui/MenuBar/ObjectsMenu/ObjectsAlignMenu/ObjectsAlignRight",
+       "/ui/MenuBar/ObjectsMenu/ObjectsAlignMenu/ObjectsAlignHCenter",
+       "/ui/MenuBar/ObjectsMenu/ObjectsAlignMenu/ObjectsAlignTop",
+       "/ui/MenuBar/ObjectsMenu/ObjectsAlignMenu/ObjectsAlignBottom",
+       "/ui/MenuBar/ObjectsMenu/ObjectsAlignMenu/ObjectsAlignVCenter",
 
        NULL
 };
@@ -808,13 +807,17 @@ gl_ui_new (glWindow *window)
                                   recent_menu);
 
 
+        set_additional_properties (ui);
+
        gl_ui_util_set_verb_list_sensitive (ui, doc_verbs, FALSE);
+       gl_ui_util_set_verb_list_sensitive (ui, paste_verbs, FALSE);
 
        gl_debug (DEBUG_UI, "END");
 
        return ui;
 }
 
+
 /*****************************************************************************/
 /** Unref wrapper.                                                           */
 /*****************************************************************************/
@@ -828,6 +831,7 @@ gl_ui_unref (GtkUIManager *ui)
        gl_debug (DEBUG_UI, "END");
 }
 
+
 /*****************************************************************************/
 /** Update all verbs of given UI component.                                  */
 /*****************************************************************************/
@@ -858,30 +862,18 @@ gl_ui_update_all (GtkUIManager *ui,
                                       !gl_view_is_zoom_min (view));
 
        gl_ui_util_set_verb_list_sensitive (ui, selection_verbs,
-                                           !gl_view_is_selection_empty (view));
+                                           !gl_label_is_selection_empty (label));
 
        gl_ui_util_set_verb_list_sensitive (ui, atomic_selection_verbs,
-                                           gl_view_is_selection_atomic (view));
+                                           gl_label_is_selection_atomic (label));
 
        gl_ui_util_set_verb_list_sensitive (ui, multi_selection_verbs,
-                                           !gl_view_is_selection_empty (view)
-                                           && !gl_view_is_selection_atomic (view));
+                                           !gl_label_is_selection_empty (label)
+                                           && !gl_label_is_selection_atomic (label));
 
        gl_debug (DEBUG_UI, "END");
 }
 
-/*****************************************************************************/
-/** Update all verbs of given UI component to "no document" state.           */
-/*****************************************************************************/
-void
-gl_ui_update_nodoc (GtkUIManager *ui)
-{
-       gl_debug (DEBUG_UI, "START");
-
-       gl_ui_util_set_verb_list_sensitive (ui, doc_verbs, FALSE);
-
-       gl_debug (DEBUG_UI, "END");
-}
 
 /*****************************************************************************/
 /** Update label modified verbs of given UI component.                       */
@@ -899,28 +891,40 @@ gl_ui_update_modified_verbs (GtkUIManager *ui,
        gl_debug (DEBUG_UI, "END");
 }
 
+
 /*****************************************************************************/
 /** Update verbs associated with selection state of given UI component.      */
 /*****************************************************************************/
 void
 gl_ui_update_selection_verbs (GtkUIManager *ui,
-                             glView       *view)
+                             glView       *view,
+                              gboolean      has_focus)
 {
        gl_debug (DEBUG_UI, "START");
 
-       gl_ui_util_set_verb_list_sensitive (ui, selection_verbs,
-                                           !gl_view_is_selection_empty (view));
-
-       gl_ui_util_set_verb_list_sensitive (ui, atomic_selection_verbs,
-                                           gl_view_is_selection_atomic (view));
-
-       gl_ui_util_set_verb_list_sensitive (ui, multi_selection_verbs,
-                                           !gl_view_is_selection_empty (view)
-                                           && !gl_view_is_selection_atomic (view));
+        if ( has_focus )
+        {
+                gl_ui_util_set_verb_list_sensitive (ui, selection_verbs,
+                                                    !gl_label_is_selection_empty (view->label));
+
+                gl_ui_util_set_verb_list_sensitive (ui, atomic_selection_verbs,
+                                                    gl_label_is_selection_atomic (view->label));
+
+                gl_ui_util_set_verb_list_sensitive (ui, multi_selection_verbs,
+                                                    !gl_label_is_selection_empty (view->label)
+                                                    && !gl_label_is_selection_atomic (view->label));
+        }
+        else
+        {
+                gl_ui_util_set_verb_list_sensitive (ui, selection_verbs, FALSE);
+                gl_ui_util_set_verb_list_sensitive (ui, atomic_selection_verbs, FALSE);
+                gl_ui_util_set_verb_list_sensitive (ui, multi_selection_verbs, FALSE);
+        }
 
        gl_debug (DEBUG_UI, "END");
 }
 
+
 /*****************************************************************************/
 /** Update verbs associated with zoom level of given UI component.           */
 /*****************************************************************************/
@@ -938,6 +942,22 @@ gl_ui_update_zoom_verbs (GtkUIManager *ui,
        gl_debug (DEBUG_UI, "END");
 }
 
+
+/*****************************************************************************/
+/** Update paste verbs of given UI component.                                */
+/*****************************************************************************/
+void
+gl_ui_update_paste_verbs (GtkUIManager      *ui,
+                          gboolean           can_paste)
+{
+       gl_debug (DEBUG_UI, "START");
+
+       gl_ui_util_set_verb_list_sensitive (ui, paste_verbs, can_paste);
+
+       gl_debug (DEBUG_UI, "END");
+}
+
+
 /*****************************************************************************/
 /** Update undo/redo verbs of given UI component.                            */
 /*****************************************************************************/
@@ -945,8 +965,26 @@ void
 gl_ui_update_undo_redo_verbs (GtkUIManager *ui,
                              glLabel      *label)
 {
+        GtkWidget  *menu_item;
+        gchar      *description;
+        gchar      *menu_label;
+
        gl_debug (DEBUG_UI, "START");
 
+        menu_item = gtk_ui_manager_get_widget (ui, "/MenuBar/EditMenu/EditUndo");
+        description = gl_label_get_undo_description (label);
+        menu_label = g_strdup_printf ("%s: %s", _("Undo"), description);
+        gtk_menu_item_set_label (GTK_MENU_ITEM (menu_item), menu_label);
+        g_free (menu_label);
+        g_free (description);
+
+        menu_item = gtk_ui_manager_get_widget (ui, "/MenuBar/EditMenu/EditRedo");
+        description = gl_label_get_redo_description (label);
+        menu_label = g_strdup_printf ("%s: %s", _("Redo"), description);
+        gtk_menu_item_set_label (GTK_MENU_ITEM (menu_item), menu_label);
+        g_free (menu_label);
+        g_free (description);
+
        gl_ui_util_set_verb_sensitive (ui, "/ui/MenuBar/EditMenu/EditUndo",
                                       gl_label_can_undo (label));
 
@@ -956,6 +994,7 @@ gl_ui_update_undo_redo_verbs (GtkUIManager *ui,
        gl_debug (DEBUG_UI, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /** PRIVATE.  View menu item toggled callback.                               */
 /*---------------------------------------------------------------------------*/
@@ -977,35 +1016,20 @@ view_ui_item_toggled_cb (GtkToggleAction *action,
 
        if (strcmp (name, "ViewMainToolBar") == 0)
        {
-               gl_prefs->main_toolbar_visible = state;
-               set_app_main_toolbar_style (ui);
-               gl_prefs_model_save_settings (gl_prefs);
-       }
-
-       if (strcmp (name, "ViewMainToolBarToolTips") == 0)
-       {
-               gl_prefs->main_toolbar_view_tooltips = state;
+                gl_prefs_model_set_main_toolbar_visible (gl_prefs, state);
                set_app_main_toolbar_style (ui);
-               gl_prefs_model_save_settings (gl_prefs);
        }
 
        if (strcmp (name, "ViewDrawingToolBar") == 0)
        {
-               gl_prefs->drawing_toolbar_visible = state;
+               gl_prefs_model_set_drawing_toolbar_visible (gl_prefs, state);
                set_app_drawing_toolbar_style (ui);
-               gl_prefs_model_save_settings (gl_prefs);
-       }
-
-       if (strcmp (name, "ViewDrawingToolBarToolTips") == 0)
-       {
-               gl_prefs->drawing_toolbar_view_tooltips = state;
-               set_app_drawing_toolbar_style (ui);
-               gl_prefs_model_save_settings (gl_prefs);
        }
 
        gl_debug (DEBUG_UI, "");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /** PRIVATE.  Set main toolbar style.                                        */
 /*---------------------------------------------------------------------------*/
@@ -1020,21 +1044,11 @@ set_app_main_toolbar_style (GtkUIManager *ui)
                        
        /* Updated view menu */
        gl_ui_util_set_verb_state (ui, "/ui/ViewMenu/ViewMainToolBar",
-                                  gl_prefs->main_toolbar_visible);
-
-       gl_ui_util_set_verb_sensitive (ui, "/ui/ViewMenu/ViewMainToolBarToolTips",
-                                      gl_prefs->main_toolbar_visible);
-
-       gl_ui_util_set_verb_state (ui, "/ui/ViewMenu/ViewMainToolBarToolTips",
-                                  gl_prefs->main_toolbar_view_tooltips);
+                                  gl_prefs_model_get_main_toolbar_visible (gl_prefs));
 
-       
        toolbar = gtk_ui_manager_get_widget (ui, "/MainToolBar");
 
-       gtk_toolbar_set_tooltips (GTK_TOOLBAR (toolbar),
-                                 gl_prefs->main_toolbar_view_tooltips);
-
-       if (gl_prefs->main_toolbar_visible) {
+       if (gl_prefs_model_get_main_toolbar_visible (gl_prefs)) {
                gtk_widget_show_all (toolbar);
        } else {
                gtk_widget_hide (toolbar);
@@ -1058,23 +1072,13 @@ set_app_drawing_toolbar_style (GtkUIManager *ui)
                        
        /* Updated view menu */
        gl_ui_util_set_verb_state (ui, "/ui/MenuBar/ViewMenu/ViewDrawingToolBar",
-                                  gl_prefs->drawing_toolbar_visible);
-
-       gl_ui_util_set_verb_sensitive (ui, "/ui/MenuBar/ViewMenu/ViewDrawingToolBarToolTips",
-                                      gl_prefs->drawing_toolbar_visible);
-
-       gl_ui_util_set_verb_state (ui, "/ui/MenuBar/ViewMenuDrawingToolBarToolTips",
-                                  gl_prefs->drawing_toolbar_view_tooltips);
+                                  gl_prefs_model_get_drawing_toolbar_visible (gl_prefs));
 
-       
        toolbar = gtk_ui_manager_get_widget (ui, "/DrawingToolBar");
 
-       gtk_toolbar_set_tooltips (GTK_TOOLBAR (toolbar),
-                                 gl_prefs->drawing_toolbar_view_tooltips);
-
        gtk_toolbar_set_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_ICONS);
 
-       if (gl_prefs->drawing_toolbar_visible) {
+       if (gl_prefs_model_get_drawing_toolbar_visible (gl_prefs)) {
                gtk_widget_show_all (toolbar);
        } else {
                gtk_widget_hide (toolbar);
@@ -1083,6 +1087,7 @@ set_app_drawing_toolbar_style (GtkUIManager *ui)
        gl_debug (DEBUG_UI, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /** PRIVATE.  Set visibility of grid and markup.                             */
 /*---------------------------------------------------------------------------*/
@@ -1094,14 +1099,83 @@ set_view_style (GtkUIManager *ui)
        g_return_if_fail (ui && GTK_IS_UI_MANAGER(ui));
                        
        gl_ui_util_set_verb_state (ui, "/ui/MenuBar/ViewMenu/ViewGrid",
-                                  gl_prefs->grid_visible);
+                                  gl_prefs_model_get_grid_visible (gl_prefs));
 
        gl_ui_util_set_verb_state (ui, "/ui/MenuBar/ViewMenu/ViewMarkup",
-                                  gl_prefs->markup_visible);
+                                  gl_prefs_model_get_markup_visible (gl_prefs));
 
        gl_debug (DEBUG_UI, "END");
 }
 
+
+/*---------------------------------------------------------------------------*/
+/** PRIVATE.  Descend menu, set "always-show-image" for all image menu items.*/
+/*---------------------------------------------------------------------------*/
+static void
+descend_menu_set_always_show_image (GtkMenu *menu)
+{
+        GList       *children, *p;
+        GtkWidget   *submenu;
+        GtkWidget   *menu_item;
+
+        children = gtk_container_get_children (GTK_CONTAINER (menu));
+
+        for ( p = children; p != NULL; p = p->next )
+        {
+                menu_item = GTK_WIDGET (p->data);
+
+                submenu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (menu_item));
+                if ( submenu )
+                {
+                        descend_menu_set_always_show_image (GTK_MENU (submenu));
+                }
+                else if ( GTK_IS_IMAGE_MENU_ITEM (menu_item) )
+                {
+                        g_object_set (menu_item, "always-show-image", TRUE, NULL);
+                }
+        }
+}
+
+
+/*---------------------------------------------------------------------------*/
+/** PRIVATE.  Set additional properties.                                     */
+/*---------------------------------------------------------------------------*/
+static void
+set_additional_properties (GtkUIManager *ui)
+{
+        GtkWidget  *menu;
+        GtkWidget  *menu_item;
+
+        /*
+         * Set "always-show-image" property for all Object menuitems.  This is
+         * necessary because, as of Gtk-2.18, images are not shown by default
+         * and you really need these visual cues for these menu items.
+         */
+        menu_item = gtk_ui_manager_get_widget (ui, "/MenuBar/ObjectsMenu/");
+        menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (menu_item));
+        descend_menu_set_always_show_image (GTK_MENU (menu));
+
+        menu_item = gtk_ui_manager_get_widget (ui, "/MenuBar/ObjectsMenu/ObjectsMergeProperties");
+        g_object_set (menu_item, "always-show-image", FALSE, NULL); /* Leave this one out. */
+
+        menu_item = gtk_ui_manager_get_widget (ui, "/ContextMenu/ObjectsOrderMenu/");
+        menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (menu_item));
+        descend_menu_set_always_show_image (GTK_MENU (menu));
+
+        menu_item = gtk_ui_manager_get_widget (ui, "/ContextMenu/ObjectsRotateFlipMenu/");
+        menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (menu_item));
+        descend_menu_set_always_show_image (GTK_MENU (menu));
+
+        menu_item = gtk_ui_manager_get_widget (ui, "/ContextMenu/ObjectsAlignMenu/");
+        menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (menu_item));
+        descend_menu_set_always_show_image (GTK_MENU (menu));
+
+        menu_item = gtk_ui_manager_get_widget (ui, "/ContextMenu/ObjectsCenterMenu/");
+        menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (menu_item));
+        descend_menu_set_always_show_image (GTK_MENU (menu));
+}
+
+
 /*---------------------------------------------------------------------------*/
 /** PRIVATE.  Connect proxy callback.                                        */
 /*---------------------------------------------------------------------------*/
@@ -1120,6 +1194,7 @@ connect_proxy_cb (GtkUIManager *ui,
        }
 }
 
+
 /*---------------------------------------------------------------------------*/
 /** PRIVATE.  Disconnect proxy callback.                                     */
 /*---------------------------------------------------------------------------*/
@@ -1138,6 +1213,7 @@ disconnect_proxy_cb (GtkUIManager *ui,
        }
 }
 
+
 /*---------------------------------------------------------------------------*/
 /** PRIVATE.  Menu item select callback.                                     */
 /*---------------------------------------------------------------------------*/
@@ -1163,6 +1239,7 @@ menu_item_select_cb (GtkMenuItem *proxy,
        }
 }
 
+
 /*---------------------------------------------------------------------------*/
 /** PRIVATE.  Menu item deselect callback.                                   */
 /*---------------------------------------------------------------------------*/
@@ -1177,3 +1254,13 @@ menu_item_deselect_cb (GtkMenuItem *proxy,
                           window->menu_tips_context_id);
 }
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 19135d53e4c3afcec849bb053ad5efd3c07d3b8e..57428ef9ab72d189c9bc7c19397b344a148cf280 100644 (file)
--- a/src/ui.h
+++ b/src/ui.h
@@ -1,36 +1,34 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  ui.h:  GLabels UI module header file
+ *  ui.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #ifndef __GL_UI_H__
 #define __GL_UI_H__
 
-#include <gtk/gtkuimanager.h>
+#include <gtk/gtk.h>
 
 #include "window.h"
 #include "view.h"
 
 G_BEGIN_DECLS
 
+
 GtkUIManager *gl_ui_new                    (glWindow          *window);
 
 void          gl_ui_unref                  (GtkUIManager      *ui);
@@ -38,20 +36,33 @@ void          gl_ui_unref                  (GtkUIManager      *ui);
 void          gl_ui_update_all             (GtkUIManager      *ui,
                                            glView            *view);
 
-void          gl_ui_update_nodoc           (GtkUIManager      *ui);
-
 void          gl_ui_update_modified_verbs  (GtkUIManager      *ui,
                                            glLabel           *label);
 
 void          gl_ui_update_selection_verbs (GtkUIManager      *ui,
-                                           glView            *view);
+                                           glView            *view,
+                                            gboolean           has_focus);
 
 void          gl_ui_update_zoom_verbs      (GtkUIManager      *ui,
                                            glView            *view);
 
+void          gl_ui_update_paste_verbs     (GtkUIManager      *ui,
+                                            gboolean           can_paste);
+
 void          gl_ui_update_undo_redo_verbs (GtkUIManager      *ui,
                                            glLabel           *label);
 
 G_END_DECLS
 
 #endif /* __GL_UI_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/units-util.c b/src/units-util.c
new file mode 100644 (file)
index 0000000..7e672f0
--- /dev/null
@@ -0,0 +1,120 @@
+/*
+ *  units-util.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include "units-util.h"
+
+#include "debug.h"
+
+
+/*========================================================*/
+/* Private macros and constants.                          */
+/*========================================================*/
+
+
+/*========================================================*/
+/* Private types.                                         */
+/*========================================================*/
+
+
+/*========================================================*/
+/* Private globals.                                       */
+/*========================================================*/
+
+
+/*========================================================*/
+/* Private function prototypes.                           */
+/*========================================================*/
+
+
+/****************************************************************************/
+/* Get step size for desired units.                                         */
+/****************************************************************************/
+gdouble
+gl_units_util_get_step_size (lglUnits units)
+{
+
+       switch (units) {
+       case LGL_UNITS_POINT:
+               return 0.1;     /* points */
+       case LGL_UNITS_INCH:
+               return 0.001;   /* inches */
+       case LGL_UNITS_MM:
+               return 0.1;     /* mm */
+       default:
+               g_message ("Illegal units");    /* Should not happen */
+               return 1.0;
+       }
+}
+
+
+/****************************************************************************/
+/* Get precision for desired units.                                         */
+/****************************************************************************/
+gint
+gl_units_util_get_precision (lglUnits units)
+{
+
+       switch (units) {
+       case LGL_UNITS_POINT:
+               return 1;       /* points */
+       case LGL_UNITS_INCH:
+               return 3;       /* inches */
+       case LGL_UNITS_MM:
+               return 1;       /* mm */
+       default:
+               g_message ("Illegal units");    /* Should not happen */
+               return 1.0;
+       }
+}
+
+
+/****************************************************************************/
+/* Get grid size for desired units.                                         */
+/****************************************************************************/
+gdouble
+gl_units_util_get_grid_size (lglUnits units)
+{
+
+       switch (units) {
+       case LGL_UNITS_POINT:
+               return 10.0;
+       case LGL_UNITS_INCH:
+               return 0.125 * lgl_units_get_points_per_unit (units);
+       case LGL_UNITS_MM:
+               return 5     * lgl_units_get_points_per_unit (units);
+       default:
+               g_message ("Illegal units");    /* Should not happen */
+               return 10;
+       }
+}
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/units-util.h b/src/units-util.h
new file mode 100644 (file)
index 0000000..080d912
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ *  units-util.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of gLabels.
+ *
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __UNITS_UTIL_H__
+#define __UNITS_UTIL_H__
+
+#include <libglabels/libglabels.h>
+
+G_BEGIN_DECLS
+
+
+gdouble       gl_units_util_get_step_size (lglUnits units);
+
+gint          gl_units_util_get_precision (lglUnits units);
+
+gdouble       gl_units_util_get_grid_size (lglUnits units);
+
+
+G_END_DECLS
+
+#endif /* __UNITS_UTIL_H__ */
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/util.c b/src/util.c
deleted file mode 100644 (file)
index 1e852ec..0000000
+++ /dev/null
@@ -1,345 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  util.c:  various small utility functions
- *
- *  Copyright (C) 2001  Jim Evins <evins@snaught.com>.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-
-#include <config.h>
-
-#include "util.h"
-
-#include <string.h>
-#include <glib.h>
-#include <math.h>
-#include <gtk/gtkliststore.h>
-#include <gtk/gtkcellrenderertext.h>
-#include <gtk/gtkcelllayout.h>
-#include <libglabels/str.h>
-
-#define FRAC_EPSILON 0.00005
-
-\f
-/****************************************************************************/
-/* Append ".glabels" extension to filename if needed.                       */
-/****************************************************************************/
-gchar *
-gl_util_add_extension (const gchar *orig_filename)
-{
-       gchar *new_filename, *extension;
-
-       extension = strrchr (orig_filename, '.');
-       if (extension == NULL) {
-               new_filename = g_strconcat (orig_filename, ".glabels", NULL);
-       } else {
-               if (g_strcasecmp (extension, ".glabels") != 0) {
-                       new_filename =
-                           g_strconcat (orig_filename, ".glabels", NULL);
-               } else {
-                       new_filename = g_strdup (orig_filename);
-               }
-       }
-
-       return new_filename;
-}
-
-/****************************************************************************/
-/* Remove ".glabels" extension from filename if needed.                     */
-/****************************************************************************/
-gchar *
-gl_util_remove_extension (const gchar *orig_filename)
-{
-       gchar *new_filename, *extension;
-
-       new_filename = g_strdup (orig_filename);
-
-       extension = strrchr (new_filename, '.');
-       if (extension != NULL) {
-               if (g_strcasecmp (extension, ".glabels") == 0) {
-                       *extension = 0; /* truncate string, rm extension */
-               }
-       }
-
-       return new_filename;
-}
-
-/****************************************************************************/
-/* Make sure we have an absolute path to filename.                          */
-/****************************************************************************/
-gchar *
-gl_util_make_absolute (const gchar *filename)
-{
-       gchar *pwd, *absolute_filename;
-
-       if (g_path_is_absolute (filename)) {
-               absolute_filename = g_strdup (filename);
-       } else {
-               pwd = g_get_current_dir ();
-               absolute_filename = g_build_filename (pwd, filename, NULL);
-               g_free (pwd);
-       }
-
-       return absolute_filename;
-}
-
-/****************************************************************************/
-/* Create fractional representation of number, if possible.                 */
-/****************************************************************************/
-gchar *
-gl_util_fraction (gdouble x)
-{
-       static gdouble denom[] = { 1., 2., 3., 4., 8., 16., 32., 0. };
-       gint i;
-       gdouble product, remainder;
-       gint n, d;
-
-       for ( i=0; denom[i] != 0.0; i++ ) {
-               product = x * denom[i];
-               remainder = fabs(product - ((gint)(product+0.5)));
-               if ( remainder < FRAC_EPSILON ) break;
-       }
-
-       if ( denom[i] == 0.0 ) {
-               /* None of our denominators work. */
-               return g_strdup_printf ("%.5g", x);
-       }
-       if ( denom[i] == 1.0 ) {
-               /* Simple integer. */
-               return g_strdup_printf ("%d", (gint)x);
-       }
-       n = (gint)( x * denom[i] + 0.5 );
-       d = (gint)denom[i];
-       if ( n > d ) {
-               return g_strdup_printf ("%d_%d/%d", (n/d), (n%d), d);
-       } else {
-               return g_strdup_printf ("%d/%d", (n%d), d);
-       }
-}
-
-/****************************************************************************/
-/* Utilities to deal with PangoAlignment types.                             */
-/****************************************************************************/
-const gchar *
-gl_util_align_to_string (PangoAlignment align)
-{
-       switch (align) {
-       case PANGO_ALIGN_LEFT:
-               return "Left";
-       case PANGO_ALIGN_CENTER:
-               return "Center";
-       case PANGO_ALIGN_RIGHT:
-               return "Right";
-       default:
-               return "?";
-       }
-}
-
-PangoAlignment
-gl_util_string_to_align (const gchar *string)
-{
-
-       if (g_strcasecmp (string, "Left") == 0) {
-               return PANGO_ALIGN_LEFT;
-       } else if (g_strcasecmp (string, "Center") == 0) {
-               return PANGO_ALIGN_CENTER;
-       } else if (g_strcasecmp (string, "Right") == 0) {
-               return PANGO_ALIGN_RIGHT;
-       } else {
-               return PANGO_ALIGN_LEFT;
-       }
-
-}
-
-/****************************************************************************/
-/* Utilities to deal with PangoWeight types                                 */
-/****************************************************************************/
-const gchar *
-gl_util_weight_to_string (PangoWeight weight)
-{
-       switch (weight) {
-       case PANGO_WEIGHT_NORMAL:
-               return "Regular";
-       case PANGO_WEIGHT_BOLD:
-               return "Bold";
-       default:
-               return "?";
-       }
-}
-
-PangoWeight
-gl_util_string_to_weight (const gchar *string)
-{
-
-       if (g_strcasecmp (string, "Regular") == 0) {
-               return PANGO_WEIGHT_NORMAL;
-       } else if (g_strcasecmp (string, "Bold") == 0) {
-               return PANGO_WEIGHT_BOLD;
-       } else {
-               return PANGO_WEIGHT_NORMAL;
-       }
-
-}
-
-/****************************************************************************/
-/* Convienience function to set strings in a text combo_box from a GList    */
-/****************************************************************************/
-void
-gl_util_combo_box_set_strings (GtkComboBox       *combo,
-                              GList             *list)
-{
-       GtkTreeModel *model;
-       GList        *p;
-
-       g_return_if_fail (list);
-
-       model = gtk_combo_box_get_model(combo);
-       gtk_list_store_clear (GTK_LIST_STORE (model));
-
-       for (p=list; p!=NULL; p=p->next) {
-               if (p->data) {
-                       gtk_combo_box_append_text (combo, p->data);
-               }
-       }
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  gl_util_combo_box_set_active_text support.                      */
-/*---------------------------------------------------------------------------*/
-
-typedef struct {
-  const gchar *text;
-  GtkTreeIter  iter;
-  gboolean     found;
-} TextSearchData;
-
-static gboolean
-search_text_func (GtkTreeModel *model,
-                 GtkTreePath  *path,
-                 GtkTreeIter  *iter,
-                 gpointer      data)
-{
-  TextSearchData *search_data = (TextSearchData *)data;
-  gchar          *text = NULL;
-
-  gtk_tree_model_get (model, iter, 0, &text, -1);
-
-  if (strcmp (text,search_data->text) == 0) {
-    search_data->found = TRUE;
-    search_data->iter  = *iter;
-  }
-
-  g_free (text);
-  
-  return FALSE;
-}
-
-/****************************************************************************/
-/* Convienience function to set active text in a text combo_box from text   */
-/****************************************************************************/
-void
-gl_util_combo_box_set_active_text (GtkComboBox       *combo,
-                                  const gchar       *text)
-{
-       GtkTreeModel   *model = gtk_combo_box_get_model(combo);
-
-       g_return_if_fail (GTK_IS_LIST_STORE (model));
-
-       if (!text) {
-
-               gtk_combo_box_set_active (combo, -1);
-
-       } else {
-               TextSearchData  search_data;
-
-               search_data.text        = text;
-               search_data.found       = FALSE;
-
-               gtk_tree_model_foreach (model, search_text_func, &search_data);
-               if (search_data.found) {
-                       gtk_combo_box_set_active_iter (combo,
-                                                      &search_data.iter);
-               } else {
-                       gtk_combo_box_set_active (combo, -1);
-               }    
-
-       }
-
-}
-
-/****************************************************************************/
-/* Convienience function to add a simple text model to an existing          */
-/* combo_box.  This is needed since combo_boxes created with glade do not   */
-/* use the gtk_combo_box_new_text() constructor.                            */
-/****************************************************************************/
-void
-gl_util_combo_box_add_text_model (GtkComboBox       *combo)
-{
-       GtkCellRenderer *cell;
-       GtkListStore *store;
-
-       store = gtk_list_store_new (1, G_TYPE_STRING);
-       gtk_combo_box_set_model (combo, GTK_TREE_MODEL (store));
-       g_object_unref (store);
-
-       cell = gtk_cell_renderer_text_new ();
-       gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), cell, TRUE);
-       gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), cell,
-                                       "text", 0,
-                                       NULL);
-}
-
-
-/****************************************************************************/
-/* Get list of available font families.                                     */
-/****************************************************************************/
-GList  *
-gl_util_get_font_family_list (void)
-{
-       static GList         *list = NULL;
-       PangoFontMap         *fontmap;
-       PangoContext         *context;
-       PangoFontFamily     **families;
-       gint                  n;
-       gint                  i;
-       gchar                *name;
-
-        if ( !list )
-        {
-                fontmap = pango_cairo_font_map_new ();
-                context = pango_cairo_font_map_create_context (PANGO_CAIRO_FONT_MAP (fontmap));
-
-                pango_context_list_families (context, &families, &n);
-
-                for ( i=0; i<n; i++ )
-                {
-                        name = g_strdup (pango_font_family_get_name (families[i]));
-                        list = g_list_insert_sorted (list, name,
-                                                     (GCompareFunc)lgl_str_utf8_casecmp);
-                }
-
-                g_free (families);
-
-                g_object_unref (context);
-                g_object_unref (fontmap);
-        }
-
-       return list;
-}
-
diff --git a/src/util.h b/src/util.h
deleted file mode 100644 (file)
index bed0112..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  util.h:  various small utility functions
- *
- *  Copyright (C) 2001-2003  Jim Evins <evins@snaught.com>.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-
-#ifndef __UTIL_H__
-#define __UTIL_H__
-
-#include <glib/glist.h>
-#include <gtk/gtkcombobox.h>
-#include <pango/pango.h>
-
-G_BEGIN_DECLS
-
-gchar              *gl_util_add_extension         (const gchar       *orig_filename);
-gchar              *gl_util_remove_extension      (const gchar       *orig_filename);
-
-gchar              *gl_util_make_absolute         (const gchar       *filename);
-
-gchar              *gl_util_fraction              (gdouble            x);
-
-const gchar        *gl_util_align_to_string       (PangoAlignment     align);
-PangoAlignment      gl_util_string_to_align       (const gchar       *string);
-
-const gchar        *gl_util_weight_to_string      (PangoWeight        weight);
-PangoWeight         gl_util_string_to_weight      (const gchar       *string);
-
-void gl_util_combo_box_set_strings     (GtkComboBox       *combo,
-                                       GList             *list);
-void gl_util_combo_box_set_active_text (GtkComboBox       *combo,
-                                       const gchar       *text);
-void gl_util_combo_box_add_text_model  (GtkComboBox       *combo);
-
-GList  *gl_util_get_font_family_list (void);
-
-G_END_DECLS
-
-#endif /* __UTIL_H__ */
index 02b8f9fe5e1ea2925dd4a55c14aa67ce9d960ad6..6510e770dfdc04a15e4c1bf4162d396f47742a20 100644 (file)
@@ -1,53 +1,47 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  view_barcode.c:  GLabels label barcode object view
+ *  view-barcode.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "view-barcode.h"
 
-#include <glib/gi18n.h>
-#include <glib/gmem.h>
-
-#include "color.h"
-#include "object-editor.h"
-#include "stock.h"
+#include <gdk-pixbuf/gdk-pixdata.h>
 
-#include "pixmaps/cursor_barcode.xbm"
-#include "pixmaps/cursor_barcode_mask.xbm"
+#include "label-barcode.h"
+#include "cursors/cursor_pixdata.h"
 
 #include "debug.h"
 
+
 /*========================================================*/
 /* Private macros and constants.                          */
 /*========================================================*/
 
+#define X_HOTSPOT 7
+#define Y_HOTSPOT 7
+
+
 /*========================================================*/
 /* Private types.                                         */
 /*========================================================*/
 
-struct _glViewBarcodePrivate {
-        int place_holder; /* Place holder for future private data. */
-};
 
 /*========================================================*/
 /* Private globals.                                       */
@@ -58,280 +52,6 @@ struct _glViewBarcodePrivate {
 /* Private function prototypes.                           */
 /*========================================================*/
 
-static void       gl_view_barcode_finalize          (GObject          *object);
-
-static GtkWidget *construct_properties_editor       (glViewObject     *view_object);
-
-static void       update_object_from_editor_cb      (glObjectEditor   *editor,
-                                                    glLabelObject    *object);
-
-static void       update_editor_from_object_cb      (glLabelObject    *object,
-                                                    glObjectEditor   *editor);
-
-static void       update_editor_from_move_cb        (glLabelObject    *object,
-                                                    gdouble           dx,
-                                                    gdouble           dy,
-                                                    glObjectEditor   *editor);
-
-static gboolean   object_at                         (glViewObject     *view_object,
-                                                     cairo_t          *cr,
-                                                     gdouble           x,
-                                                     gdouble           y);
-
-
-
-\f
-/*****************************************************************************/
-/* Boilerplate object stuff.                                                 */
-/*****************************************************************************/
-G_DEFINE_TYPE (glViewBarcode, gl_view_barcode, GL_TYPE_VIEW_OBJECT);
-
-
-static void
-gl_view_barcode_class_init (glViewBarcodeClass *class)
-{
-       GObjectClass      *object_class      = G_OBJECT_CLASS (class);
-       glViewObjectClass *view_object_class = GL_VIEW_OBJECT_CLASS (class);
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       gl_view_barcode_parent_class = g_type_class_peek_parent (class);
-
-       object_class->finalize = gl_view_barcode_finalize;
-
-       view_object_class->construct_editor = construct_properties_editor;
-       view_object_class->object_at        = object_at;
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-static void
-gl_view_barcode_init (glViewBarcode *view_barcode)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       view_barcode->priv = g_new0 (glViewBarcodePrivate, 1);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-static void
-gl_view_barcode_finalize (GObject *object)
-{
-        glViewBarcode *view_barcode = GL_VIEW_BARCODE (object);
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (object && GL_IS_VIEW_BARCODE (object));
-
-        g_free (view_barcode->priv);
-
-       G_OBJECT_CLASS (gl_view_barcode_parent_class)->finalize (object);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* NEW barcode object view.                                                  */
-/*****************************************************************************/
-glViewObject *
-gl_view_barcode_new (glLabelBarcode *object,
-                     glView         *view)
-{
-       glViewBarcode         *view_barcode;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_val_if_fail (object && GL_IS_LABEL_BARCODE (object), NULL);
-       g_return_val_if_fail (view && GL_IS_VIEW (view), NULL);
-       
-       view_barcode = g_object_new (gl_view_barcode_get_type(), NULL);
-
-       gl_view_object_set_object (GL_VIEW_OBJECT(view_barcode),
-                                  GL_LABEL_OBJECT(object),
-                                  GL_VIEW_OBJECT_HANDLES_BOX);
-       gl_view_object_set_view (GL_VIEW_OBJECT(view_barcode), view);
-
-       gl_debug (DEBUG_VIEW, "END");
-
-       return GL_VIEW_OBJECT (view_barcode);
-}
-
-/*****************************************************************************/
-/* Create a properties dialog for a barcode object.                          */
-/*****************************************************************************/
-static GtkWidget *
-construct_properties_editor (glViewObject *view_object)
-{
-       GtkWidget          *editor;
-       glViewBarcode      *view_bc = (glViewBarcode *)view_object;
-       glLabelObject      *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       object = gl_view_object_get_object (GL_VIEW_OBJECT(view_bc));
-
-       /* Build editor. */
-       editor = gl_object_editor_new (GL_STOCK_BARCODE, _("Barcode object properties"),
-                                       object->parent,
-                                      GL_OBJECT_EDITOR_POSITION_PAGE,
-                                      GL_OBJECT_EDITOR_SIZE_PAGE,
-                                      GL_OBJECT_EDITOR_BC_PAGE,
-                                      GL_OBJECT_EDITOR_DATA_PAGE,
-                                      0);
-
-       /* Update */
-       update_editor_from_object_cb (object, GL_OBJECT_EDITOR(editor));
-       update_editor_from_move_cb (object, 0, 0, GL_OBJECT_EDITOR(editor));
-
-       /* Connect signals. */
-       g_signal_connect (G_OBJECT (editor), "changed",
-                         G_CALLBACK(update_object_from_editor_cb), object);
-       g_signal_connect (G_OBJECT (object), "changed",
-                         G_CALLBACK (update_editor_from_object_cb), editor);
-       g_signal_connect (G_OBJECT (object), "moved",
-                         G_CALLBACK (update_editor_from_move_cb), editor);
-
-       gl_debug (DEBUG_VIEW, "END");
-
-       return editor;
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  editor "changed" callback.                                      */
-/*---------------------------------------------------------------------------*/
-static void
-update_object_from_editor_cb (glObjectEditor *editor,
-                             glLabelObject  *object)
-{
-       gdouble            x, y, w, h;
-       glTextNode        *text_node;
-       gchar             *id;
-       gboolean           text_flag, cs_flag;
-       glColorNode       *color_node;
-       guint              format_digits;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_signal_handlers_block_by_func (G_OBJECT(object),
-                                        update_editor_from_object_cb,
-                                        editor);
-       g_signal_handlers_block_by_func (G_OBJECT(object),
-                                        update_editor_from_move_cb,
-                                        editor);
-
-
-       gl_object_editor_get_position (editor, &x, &y);
-       gl_label_object_set_position (object, x, y);
-
-       gl_object_editor_get_size (editor, &w, &h);
-       gl_label_object_set_size (object, w, h);
-
-       text_node = gl_object_editor_get_data (editor);
-       gl_label_barcode_set_data (GL_LABEL_BARCODE(object), text_node);
-       gl_text_node_free (&text_node);
-
-       gl_object_editor_get_bc_style (editor, &id, &text_flag, &cs_flag, &format_digits);
-       color_node = gl_object_editor_get_bc_color (editor);
-       gl_label_barcode_set_props (GL_LABEL_BARCODE(object),
-                                   id, text_flag, cs_flag, format_digits);
-       gl_label_object_set_line_color (object, color_node);
-       gl_color_node_free (&color_node);
-       g_free (id);
-
-       g_signal_handlers_unblock_by_func (G_OBJECT(object),
-                                          update_editor_from_object_cb,
-                                          editor);
-       g_signal_handlers_unblock_by_func (G_OBJECT(object),
-                                          update_editor_from_move_cb,
-                                          editor);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE. label object "changed" callback.                                 */
-/*---------------------------------------------------------------------------*/
-static void
-update_editor_from_object_cb (glLabelObject  *object,
-                             glObjectEditor *editor)
-{
-       gdouble            w, h;
-       glTextNode        *text_node;
-       gchar             *id;
-       gboolean           text_flag, cs_flag;
-       glColorNode       *color_node;
-       glMerge           *merge;
-       guint              format_digits;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       gl_label_object_get_size (object, &w, &h);
-       gl_object_editor_set_size (editor, w, h);
-       
-       merge = gl_label_get_merge (GL_LABEL(object->parent));
-
-       gl_label_barcode_get_props (GL_LABEL_BARCODE(object),
-                                   &id, &text_flag, &cs_flag, &format_digits);
-       color_node = gl_label_object_get_line_color (object);
-       gl_object_editor_set_bc_style (editor, id, text_flag, cs_flag, format_digits);
-       gl_object_editor_set_bc_color (editor, (merge != NULL), color_node);
-       gl_color_node_free (&color_node);
-       g_free (id);
-
-       text_node = gl_label_barcode_get_data (GL_LABEL_BARCODE(object));
-       gl_object_editor_set_data (editor, (merge != NULL), text_node);
-       gl_text_node_free (&text_node);
-
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE. label object "moved" callback.                                   */
-/*---------------------------------------------------------------------------*/
-static void
-update_editor_from_move_cb (glLabelObject    *object,
-                           gdouble           dx,
-                           gdouble           dy,
-                           glObjectEditor   *editor)
-{
-       gdouble            x, y;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       gl_label_object_get_position (object, &x, &y);
-       gl_object_editor_set_position (editor, x, y);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Is object at (x,y)?                                                       */
-/*****************************************************************************/
-static gboolean
-object_at (glViewObject  *view_object,
-           cairo_t       *cr,
-           gdouble        x,
-           gdouble        y)
-{
-       glLabelObject    *object;
-        gdouble           w, h;
-
-        object = gl_view_object_get_object (view_object);
-
-        gl_label_object_get_size (object, &w, &h);
-
-        cairo_rectangle (cr, 0.0, 0.0, w, h);
-
-        if (cairo_in_fill (cr, x, y))
-        {
-                return TRUE;
-        }
-
-        return FALSE;
-}
-
 
 /*****************************************************************************/
 /* Return apropos cursor for create object mode.                             */
@@ -340,29 +60,20 @@ GdkCursor *
 gl_view_barcode_get_create_cursor (void)
 {
        GdkCursor       *cursor = NULL;
-       GdkPixmap       *pixmap_data, *pixmap_mask;
-       GdkColor         fg = { 0, 0, 0, 0 };
-       GdkColor         bg = { 0, 65535, 65535, 65535 };
+       GdkPixbuf       *pixbuf;
 
        gl_debug (DEBUG_VIEW, "START");
 
-        pixmap_data = gdk_bitmap_create_from_data (NULL,
-                                                   (gchar *)cursor_barcode_bits,
-                                                   cursor_barcode_width,
-                                                   cursor_barcode_height);
-        pixmap_mask = gdk_bitmap_create_from_data (NULL,
-                                                   (gchar *)cursor_barcode_mask_bits,
-                                                   cursor_barcode_mask_width,
-                                                   cursor_barcode_mask_height);
-        cursor = gdk_cursor_new_from_pixmap (pixmap_data, pixmap_mask, &fg,
-                                             &bg, cursor_barcode_x_hot,
-                                             cursor_barcode_y_hot);
+        pixbuf = gdk_pixbuf_from_pixdata (&cursor_barcode_pixdata, FALSE, NULL);
+        cursor = gdk_cursor_new_from_pixbuf (gdk_display_get_default (), pixbuf, X_HOTSPOT, Y_HOTSPOT);
+        g_object_unref (pixbuf);
 
        gl_debug (DEBUG_VIEW, "END");
 
        return cursor;
 }
 
+
 /*****************************************************************************/
 /* Object creation handler: button press event.                              */
 /*****************************************************************************/
@@ -373,27 +84,21 @@ gl_view_barcode_create_button_press_event   (glView *view,
 {
        GObject             *object;
         glTextNode          *text_node;
-       glColorNode         *line_color_node;
 
-        gl_view_unselect_all (view);
+        gl_label_unselect_all (view->label);
 
-        line_color_node = gl_color_node_new_default ();
-               
-        object = gl_label_barcode_new (view->label);
-        gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y);
-        text_node = gl_text_node_new_from_text ("123456789");
-        gl_label_barcode_set_data (GL_LABEL_BARCODE(object), text_node);
-        line_color_node->color = gl_color_set_opacity (gl_view_get_default_line_color(view), 0.5);
-        gl_label_object_set_line_color (GL_LABEL_OBJECT(object),
-                                        line_color_node);
+        object = gl_label_barcode_new (view->label, TRUE);
 
-        gl_color_node_free (&line_color_node);
+        gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y, FALSE);
+        text_node = gl_text_node_new_from_text ("123456789");
+        gl_label_barcode_set_data (GL_LABEL_BARCODE(object), text_node, FALSE);
 
         view->create_object = GL_LABEL_OBJECT (object);
         view->create_x0 = x;
         view->create_y0 = y;
 }
 
+
 /*****************************************************************************/
 /* Object creation handler: motion event.                                    */
 /*****************************************************************************/
@@ -402,9 +107,10 @@ gl_view_barcode_create_motion_event         (glView *view,
                                              gdouble x,
                                              gdouble y)
 {
-        gl_label_object_set_position (GL_LABEL_OBJECT(view->create_object), x, y);
+        gl_label_object_set_position (GL_LABEL_OBJECT(view->create_object), x, y, FALSE);
 }
 
+
 /*****************************************************************************/
 /* Object creation handler: button relesase event.                           */
 /*****************************************************************************/
@@ -413,13 +119,16 @@ gl_view_barcode_create_button_release_event (glView *view,
                                              gdouble x,
                                              gdouble y)
 {
-       glColorNode         *line_color_node;
-
-        line_color_node = gl_color_node_new_default ();
-               
-        gl_label_object_set_position (GL_LABEL_OBJECT(view->create_object), x, y);
-        line_color_node->color = gl_view_get_default_line_color(view);
-        gl_label_object_set_line_color (GL_LABEL_OBJECT(view->create_object), line_color_node);
-        gl_color_node_free (&line_color_node);
+        gl_label_object_set_position (GL_LABEL_OBJECT(view->create_object), x, y, FALSE);
 }
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 1587f1959f3f638c622e8fb1af71e871a30f6b5f..187249f4b3dfd1393131d231b7ad96c32b361c8e 100644 (file)
@@ -1,66 +1,34 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  view_barcode.h:  GLabels label barcode object view
+ *  view-barcode.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __VIEW_BARCODE_H__
 #define __VIEW_BARCODE_H__
 
-#include "view-object.h"
-#include "label-barcode.h"
-
-G_BEGIN_DECLS
-
-
-#define GL_TYPE_VIEW_BARCODE            (gl_view_barcode_get_type ())
-#define GL_VIEW_BARCODE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_VIEW_BARCODE, glViewBarcode))
-#define GL_VIEW_BARCODE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_VIEW_BARCODE, glViewBarcodeClass))
-#define GL_IS_VIEW_BARCODE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_VIEW_BARCODE))
-#define GL_IS_VIEW_BARCODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_VIEW_BARCODE))
-
-typedef struct _glViewBarcode          glViewBarcode;
-typedef struct _glViewBarcodeClass     glViewBarcodeClass;
-
-typedef struct _glViewBarcodePrivate   glViewBarcodePrivate;
-
-struct _glViewBarcode {
-       glViewObject              parent_object;
+#include "view.h"
 
-       glViewBarcodePrivate     *priv;
-};
 
-struct _glViewBarcodeClass {
-       glViewObjectClass         parent_class;
-};
-
-
-GType          gl_view_barcode_get_type (void) G_GNUC_CONST;
-
-glViewObject  *gl_view_barcode_new      (glLabelBarcode *object,
-                                         glView         *view);
+G_BEGIN_DECLS
 
 
 /* cursor for creating barcode objects */
-GdkCursor *gl_view_barcode_get_create_cursor (void);
+GdkCursor *gl_view_barcode_get_create_cursor           (void);
 
 /* Object creation handlers. */
 void       gl_view_barcode_create_button_press_event   (glView *view,
@@ -79,3 +47,14 @@ void       gl_view_barcode_create_button_release_event (glView *view,
 G_END_DECLS
 
 #endif /* __VIEW_BARCODE_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 4d0941f2a80f89bd0ef57f0bb528ac43f1f62120..a69bfd1cb0a6620c00bb65ac550d66cbb2cbea14 100644 (file)
@@ -1,54 +1,47 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  view_box.c:  GLabels label box object view
+ *  view-box.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "view-box.h"
 
-#include <glib/gi18n.h>
-#include <glib/gmem.h>
+#include <gdk-pixbuf/gdk-pixdata.h>
 
-#include "color.h"
-#include "object-editor.h"
-#include "stock.h"
-
-#include "pixmaps/cursor_box.xbm"
-#include "pixmaps/cursor_box_mask.xbm"
+#include "label-box.h"
+#include "cursors/cursor_pixdata.h"
 
 #include "debug.h"
 
+
 /*========================================================*/
 /* Private macros and constants.                          */
 /*========================================================*/
 
+#define X_HOTSPOT 7
+#define Y_HOTSPOT 7
+
 
 /*========================================================*/
 /* Private types.                                         */
 /*========================================================*/
 
-struct _glViewBoxPrivate {
-        int place_holder; /* Place holder for future private data. */
-};
 
 /*========================================================*/
 /* Private globals.                                       */
@@ -59,315 +52,6 @@ struct _glViewBoxPrivate {
 /* Private function prototypes.                           */
 /*========================================================*/
 
-static void       gl_view_box_finalize              (GObject          *object);
-
-static GtkWidget *construct_properties_editor       (glViewObject     *view_object);
-
-static void       update_object_from_editor_cb      (glObjectEditor   *editor,
-                                                    glLabelObject    *object);
-
-static void       update_editor_from_object_cb      (glLabelObject    *object,
-                                                    glObjectEditor   *editor);
-
-static void       update_editor_from_move_cb        (glLabelObject    *object,
-                                                    gdouble           dx,
-                                                    gdouble           dy,
-                                                    glObjectEditor   *editor);
-
-static gboolean   object_at                         (glViewObject     *view_object,
-                                                     cairo_t          *cr,
-                                                     gdouble           x,
-                                                     gdouble           y);
-
-
-
-\f
-/*****************************************************************************/
-/* Boilerplate object stuff.                                                 */
-/*****************************************************************************/
-G_DEFINE_TYPE (glViewBox, gl_view_box, GL_TYPE_VIEW_OBJECT);
-
-
-static void
-gl_view_box_class_init (glViewBoxClass *class)
-{
-       GObjectClass      *object_class      = G_OBJECT_CLASS (class);
-       glViewObjectClass *view_object_class = GL_VIEW_OBJECT_CLASS (class);
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       gl_view_box_parent_class = g_type_class_peek_parent (class);
-
-       object_class->finalize = gl_view_box_finalize;
-
-       view_object_class->construct_editor = construct_properties_editor;
-       view_object_class->object_at        = object_at;
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-static void
-gl_view_box_init (glViewBox *view_box)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       view_box->priv = g_new0 (glViewBoxPrivate, 1);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-static void
-gl_view_box_finalize (GObject *object)
-{
-        glViewBox *view_box = GL_VIEW_BOX (object);
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (object && GL_IS_VIEW_BOX (object));
-
-        g_free (view_box->priv);
-
-       G_OBJECT_CLASS (gl_view_box_parent_class)->finalize (object);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* NEW box object view.                                                      */
-/*****************************************************************************/
-glViewObject *
-gl_view_box_new (glLabelBox *object,
-                glView     *view)
-{
-       glViewBox         *view_box;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_val_if_fail (object && GL_IS_LABEL_BOX (object), NULL);
-       g_return_val_if_fail (view && GL_IS_VIEW (view), NULL);
-       
-       view_box = g_object_new (gl_view_box_get_type(), NULL);
-
-       gl_view_object_set_object (GL_VIEW_OBJECT(view_box),
-                                  GL_LABEL_OBJECT(object),
-                                  GL_VIEW_OBJECT_HANDLES_BOX);
-       gl_view_object_set_view (GL_VIEW_OBJECT(view_box), view);
-
-       gl_debug (DEBUG_VIEW, "END");
-
-       return GL_VIEW_OBJECT (view_box);
-}
-
-/*****************************************************************************/
-/* Create a properties dialog for a box object.                              */
-/*****************************************************************************/
-static GtkWidget *
-construct_properties_editor (glViewObject *view_object)
-{
-       GtkWidget          *editor;
-       glViewBox          *view_box = (glViewBox *)view_object;
-       glLabelObject      *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       object = gl_view_object_get_object (GL_VIEW_OBJECT(view_box));
-
-       /* Build editor. */
-       editor = gl_object_editor_new (GL_STOCK_BOX, _("Box object properties"),
-                                       object->parent,
-                                      GL_OBJECT_EDITOR_SHADOW_PAGE,
-                                      GL_OBJECT_EDITOR_POSITION_PAGE,
-                                      GL_OBJECT_EDITOR_SIZE_PAGE,
-                                      GL_OBJECT_EDITOR_FILL_PAGE,
-                                      GL_OBJECT_EDITOR_LINE_PAGE,
-                                      0);
-       
-       /* Update */
-       update_editor_from_object_cb (object, GL_OBJECT_EDITOR(editor));
-       update_editor_from_move_cb (object, 0, 0, GL_OBJECT_EDITOR(editor));
-
-       /* Connect signals. */
-       g_signal_connect (G_OBJECT (editor), "changed",
-                         G_CALLBACK(update_object_from_editor_cb), object);
-       g_signal_connect (G_OBJECT (object), "changed",
-                         G_CALLBACK (update_editor_from_object_cb), editor);
-       g_signal_connect (G_OBJECT (object), "moved",
-                         G_CALLBACK (update_editor_from_move_cb), editor);
-
-       gl_debug (DEBUG_VIEW, "END");
-
-       return editor;
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  editor "changed" callback.                                      */
-/*---------------------------------------------------------------------------*/
-static void
-update_object_from_editor_cb (glObjectEditor *editor,
-                             glLabelObject  *object)
-{
-       gdouble            x, y, w, h;
-       glColorNode       *line_color_node;
-       gdouble            line_width;
-       glColorNode       *fill_color_node;
-       gboolean           shadow_state;
-       gdouble            shadow_x, shadow_y;
-       glColorNode       *shadow_color_node;
-       gdouble            shadow_opacity;
-       
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_signal_handlers_block_by_func (G_OBJECT(object),
-                                        update_editor_from_object_cb,
-                                        editor);
-       g_signal_handlers_block_by_func (G_OBJECT(object),
-                                        update_editor_from_move_cb,
-                                        editor);
-
-       gl_object_editor_get_position (editor, &x, &y);
-       gl_label_object_set_position (object, x, y);
-
-       gl_object_editor_get_size (editor, &w, &h);
-       gl_label_object_set_size (object, w, h);
-
-       fill_color_node = gl_object_editor_get_fill_color (editor);
-       gl_label_object_set_fill_color (object, fill_color_node);
-       gl_color_node_free (&fill_color_node);
-
-       line_color_node = gl_object_editor_get_line_color (editor);
-       gl_label_object_set_line_color (object, line_color_node);
-       gl_color_node_free (&line_color_node);
-
-       line_width = gl_object_editor_get_line_width (editor);
-       gl_label_object_set_line_width (object, line_width);
-
-       shadow_state = gl_object_editor_get_shadow_state (editor);
-       gl_label_object_set_shadow_state (object, shadow_state);
-
-       gl_object_editor_get_shadow_offset (editor, &shadow_x, &shadow_y);
-       gl_label_object_set_shadow_offset (object, shadow_x, shadow_y);
-
-       shadow_color_node = gl_object_editor_get_shadow_color (editor);
-       gl_label_object_set_shadow_color (object, shadow_color_node);
-       gl_color_node_free (&shadow_color_node);
-
-       shadow_opacity = gl_object_editor_get_shadow_opacity (editor);
-       gl_label_object_set_shadow_opacity (object, shadow_opacity);
-
-       g_signal_handlers_unblock_by_func (G_OBJECT(object),
-                                          update_editor_from_object_cb,
-                                          editor);
-       g_signal_handlers_unblock_by_func (G_OBJECT(object),
-                                          update_editor_from_move_cb,
-                                          editor);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE. label object "changed" callback.                                 */
-/*---------------------------------------------------------------------------*/
-static void
-update_editor_from_object_cb (glLabelObject  *object,
-                             glObjectEditor *editor)
-{
-       gdouble            w, h;
-       glColorNode       *line_color_node;
-       gdouble            line_width;
-       glColorNode       *fill_color_node;
-       gboolean           shadow_state;
-       gdouble            shadow_x, shadow_y;
-       glColorNode       *shadow_color_node;
-       gdouble            shadow_opacity;
-       glMerge           *merge;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       gl_label_object_get_size (object, &w, &h);
-       gl_object_editor_set_size (editor, w, h);
-       merge = gl_label_get_merge (GL_LABEL(object->parent));
-       
-       fill_color_node = gl_label_object_get_fill_color (GL_LABEL_OBJECT(object));
-       gl_object_editor_set_fill_color (editor, (merge != NULL), fill_color_node);
-       gl_color_node_free (&fill_color_node);
-
-       line_color_node = gl_label_object_get_line_color (GL_LABEL_OBJECT(object));
-       gl_object_editor_set_line_color (editor, (merge != NULL), line_color_node);
-       gl_color_node_free (&line_color_node);
-
-       line_width = gl_label_object_get_line_width (GL_LABEL_OBJECT(object));
-       gl_object_editor_set_line_width (editor, line_width);
-
-       shadow_state = gl_label_object_get_shadow_state (object);
-       gl_object_editor_set_shadow_state (editor, shadow_state);
-
-       gl_label_object_get_shadow_offset (object, &shadow_x, &shadow_y);
-       gl_object_editor_set_shadow_offset (editor, shadow_x, shadow_y);
-
-       shadow_color_node = gl_label_object_get_shadow_color (object);
-       gl_object_editor_set_shadow_color (editor, (merge != NULL), shadow_color_node);
-       gl_color_node_free (&shadow_color_node);
-
-       shadow_opacity = gl_label_object_get_shadow_opacity (object);
-       gl_object_editor_set_shadow_opacity (editor, shadow_opacity);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE. label object "moved" callback.                                   */
-/*---------------------------------------------------------------------------*/
-static void
-update_editor_from_move_cb (glLabelObject    *object,
-                           gdouble           dx,
-                           gdouble           dy,
-                           glObjectEditor   *editor)
-{
-       gdouble            x, y;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       gl_label_object_get_position (object, &x, &y);
-       gl_object_editor_set_position (editor, x, y);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Is object at (x,y)?                                                       */
-/*****************************************************************************/
-static gboolean
-object_at (glViewObject  *view_object,
-           cairo_t       *cr,
-           gdouble        x,
-           gdouble        y)
-{
-       glLabelObject    *object;
-        gdouble           w, h;
-        gdouble           line_width;
-
-        object = gl_view_object_get_object (view_object);
-
-        gl_label_object_get_size (object, &w, &h);
-
-        cairo_rectangle (cr, 0.0, 0.0, w, h);
-
-        if (cairo_in_fill (cr, x, y))
-        {
-                return TRUE;
-        }
-
-        line_width = gl_label_object_get_line_width (object);
-        cairo_set_line_width (cr, line_width);
-        if (cairo_in_stroke (cr, x, y))
-        {
-                return TRUE;
-        }
-
-        return FALSE;
-}
-
 
 /*****************************************************************************/
 /* Return apropos cursor for create object mode.                             */
@@ -376,29 +60,20 @@ GdkCursor *
 gl_view_box_get_create_cursor (void)
 {
        GdkCursor       *cursor = NULL;
-       GdkPixmap       *pixmap_data, *pixmap_mask;
-       GdkColor         fg = { 0, 0, 0, 0 };
-       GdkColor         bg = { 0, 65535, 65535, 65535 };
+       GdkPixbuf       *pixbuf;
 
        gl_debug (DEBUG_VIEW, "START");
 
-        pixmap_data = gdk_bitmap_create_from_data (NULL,
-                                                   (gchar *)cursor_box_bits,
-                                                   cursor_box_width,
-                                                   cursor_box_height);
-        pixmap_mask = gdk_bitmap_create_from_data (NULL,
-                                                   (gchar *)cursor_box_mask_bits,
-                                                   cursor_box_mask_width,
-                                                   cursor_box_mask_height);
-        cursor = gdk_cursor_new_from_pixmap (pixmap_data, pixmap_mask, &fg,
-                                             &bg, cursor_box_x_hot,
-                                             cursor_box_y_hot);
+        pixbuf = gdk_pixbuf_from_pixdata (&cursor_box_pixdata, FALSE, NULL);
+        cursor = gdk_cursor_new_from_pixbuf (gdk_display_get_default (), pixbuf, X_HOTSPOT, Y_HOTSPOT);
+        g_object_unref (pixbuf);
 
        gl_debug (DEBUG_VIEW, "END");
 
        return cursor;
 }
 
+
 /*****************************************************************************/
 /* Object creation handler: button press event.                              */
 /*****************************************************************************/
@@ -408,34 +83,20 @@ gl_view_box_create_button_press_event   (glView *view,
                                          gdouble y)
 {
        GObject             *object;
-       glColorNode         *fill_color_node;
-       glColorNode         *line_color_node;
-
-        gl_view_unselect_all (view);
-
-        fill_color_node = gl_color_node_new_default ();
-        line_color_node = gl_color_node_new_default ();
-               
-        object = gl_label_box_new (view->label);
-        gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y);
-        gl_label_object_set_size (GL_LABEL_OBJECT(object), 0.0, 0.0);
-        line_color_node->color = gl_color_set_opacity (gl_view_get_default_line_color(view), 0.5);
-        fill_color_node->color = gl_color_set_opacity (gl_view_get_default_fill_color(view), 0.5);
-        gl_label_object_set_line_width (GL_LABEL_OBJECT(object),
-                                        gl_view_get_default_line_width(view));
-        gl_label_object_set_line_color (GL_LABEL_OBJECT(object),
-                                        line_color_node);
-        gl_label_object_set_fill_color (GL_LABEL_OBJECT(object),
-                                        fill_color_node);
-
-        gl_color_node_free (&fill_color_node);
-        gl_color_node_free (&line_color_node);
+
+        gl_label_unselect_all (view->label);
+
+        object = gl_label_box_new (view->label, TRUE);
+
+        gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y, FALSE);
+        gl_label_object_set_size (GL_LABEL_OBJECT(object), 0.0, 0.0, FALSE);
                        
         view->create_object = GL_LABEL_OBJECT (object);
         view->create_x0 = x;
         view->create_y0 = y;
 }
 
+
 /*****************************************************************************/
 /* Object creation handler: motion event.                                    */
 /*****************************************************************************/
@@ -447,12 +108,15 @@ gl_view_box_create_motion_event         (glView *view,
         gdouble w, h;
 
         gl_label_object_set_position (GL_LABEL_OBJECT(view->create_object),
-                                      MIN (x, view->create_x0), MIN (y, view->create_y0));
+                                      MIN (x, view->create_x0), MIN (y, view->create_y0),
+                                      FALSE);
+
         w = MAX (x, view->create_x0) - MIN (x, view->create_x0);
         h = MAX (y, view->create_y0) - MIN (y, view->create_y0);
-        gl_label_object_set_size (GL_LABEL_OBJECT(view->create_object), w, h);
+        gl_label_object_set_size (GL_LABEL_OBJECT(view->create_object), w, h, FALSE);
 }
 
+
 /*****************************************************************************/
 /* Object creation handler: button relesase event.                           */
 /*****************************************************************************/
@@ -461,27 +125,28 @@ gl_view_box_create_button_release_event (glView *view,
                                          gdouble x,
                                          gdouble y)
 {
-       glColorNode         *fill_color_node;
-       glColorNode         *line_color_node;
         gdouble              w, h;
 
-        fill_color_node = gl_color_node_new_default ();
-        line_color_node = gl_color_node_new_default ();
-               
         if ((view->create_x0 == x) && (view->create_y0 == y)) {
                 x = view->create_x0 + 36.0;
                 y = view->create_y0 + 36.0;
         }
         gl_label_object_set_position (GL_LABEL_OBJECT(view->create_object),
-                                      MIN (x, view->create_x0), MIN (y, view->create_y0));
+                                      MIN (x, view->create_x0), MIN (y, view->create_y0),
+                                      FALSE);
+
         w = MAX (x, view->create_x0) - MIN (x, view->create_x0);
         h = MAX (y, view->create_y0) - MIN (y, view->create_y0);
-        gl_label_object_set_size (GL_LABEL_OBJECT(view->create_object), w, h);
-        line_color_node->color = gl_view_get_default_line_color(view);
-        gl_label_object_set_line_color (GL_LABEL_OBJECT(view->create_object), line_color_node);
-        fill_color_node->color = gl_view_get_default_fill_color(view);
-        gl_label_object_set_fill_color (GL_LABEL_OBJECT(view->create_object), fill_color_node);
-        gl_color_node_free (&fill_color_node);
-        gl_color_node_free (&line_color_node);
+        gl_label_object_set_size (GL_LABEL_OBJECT(view->create_object), w, h, FALSE);
 }
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index f2ebb058e5e6407f2b35f671d36197bcc19c180b..81448b9dccd31a44a316f180328a5c91a101ce32 100644 (file)
@@ -1,66 +1,35 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  view_box.h:  GLabels label box object view
+ *  view-box.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __VIEW_BOX_H__
 #define __VIEW_BOX_H__
 
-#include "view-object.h"
-#include "label-box.h"
-
-G_BEGIN_DECLS
-
-
-#define GL_TYPE_VIEW_BOX            (gl_view_box_get_type ())
-#define GL_VIEW_BOX(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_VIEW_BOX, glViewBox))
-#define GL_VIEW_BOX_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_VIEW_BOX, glViewBoxClass))
-#define GL_IS_VIEW_BOX(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_VIEW_BOX))
-#define GL_IS_VIEW_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_VIEW_BOX))
-
-typedef struct _glViewBox          glViewBox;
-typedef struct _glViewBoxClass     glViewBoxClass;
-
-typedef struct _glViewBoxPrivate   glViewBoxPrivate;
-
-struct _glViewBox {
-       glViewObject          parent_object;
 
-       glViewBoxPrivate     *priv;
-};
+#include "view.h"
 
-struct _glViewBoxClass {
-       glViewObjectClass     parent_class;
-};
 
-
-GType          gl_view_box_get_type (void) G_GNUC_CONST;
-
-glViewObject  *gl_view_box_new      (glLabelBox *object,
-                                    glView     *view);
+G_BEGIN_DECLS
 
 
 /* cursor for creating box objects */
-GdkCursor *gl_view_box_get_create_cursor (void);
+GdkCursor *gl_view_box_get_create_cursor           (void);
 
 /* Object creation handlers. */
 void       gl_view_box_create_button_press_event   (glView *view,
@@ -79,3 +48,14 @@ void       gl_view_box_create_button_release_event (glView *view,
 G_END_DECLS
 
 #endif /* __VIEW_BOX_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 6d86b5aec59bbdbe3eae2bdec8185dc1dee1dd31..7de5cd76de61e71fd4a0326776d1509e492f00d4 100644 (file)
@@ -1,55 +1,47 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  view_ellipse.c:  GLabels label ellipse object view
+ *  view-ellipse.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "view-ellipse.h"
 
-#include <glib/gi18n.h>
-#include <glib/gmem.h>
-#include <math.h>
+#include <gdk-pixbuf/gdk-pixdata.h>
 
-#include "cairo-ellipse-path.h"
-#include "color.h"
-#include "object-editor.h"
-#include "stock.h"
-
-#include "pixmaps/cursor_ellipse.xbm"
-#include "pixmaps/cursor_ellipse_mask.xbm"
+#include "label-ellipse.h"
+#include "cursors/cursor_pixdata.h"
 
 #include "debug.h"
 
+
 /*========================================================*/
 /* Private macros and constants.                          */
 /*========================================================*/
 
+#define X_HOTSPOT 7
+#define Y_HOTSPOT 7
+
+
 /*========================================================*/
 /* Private types.                                         */
 /*========================================================*/
 
-struct _glViewEllipsePrivate {
-        int place_holder; /* Place holder for future private data. */
-};
 
 /*========================================================*/
 /* Private globals.                                       */
@@ -60,314 +52,6 @@ struct _glViewEllipsePrivate {
 /* Private function prototypes.                           */
 /*========================================================*/
 
-static void       gl_view_ellipse_finalize          (GObject          *object);
-
-static GtkWidget *construct_properties_editor       (glViewObject     *view_object);
-
-static void       update_object_from_editor_cb      (glObjectEditor   *editor,
-                                                    glLabelObject    *object);
-
-static void       update_editor_from_object_cb      (glLabelObject    *object,
-                                                    glObjectEditor   *editor);
-
-static void       update_editor_from_move_cb        (glLabelObject    *object,
-                                                    gdouble           dx,
-                                                    gdouble           dy,
-                                                    glObjectEditor   *editor);
-
-static gboolean   object_at                         (glViewObject     *view_object,
-                                                     cairo_t          *cr,
-                                                     gdouble           x,
-                                                     gdouble           y);
-
-
-\f
-/*****************************************************************************/
-/* Boilerplate object stuff.                                                 */
-/*****************************************************************************/
-G_DEFINE_TYPE (glViewEllipse, gl_view_ellipse, GL_TYPE_VIEW_OBJECT);
-
-
-static void
-gl_view_ellipse_class_init (glViewEllipseClass *class)
-{
-       GObjectClass      *object_class      = G_OBJECT_CLASS (class);
-       glViewObjectClass *view_object_class = GL_VIEW_OBJECT_CLASS (class);
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       gl_view_ellipse_parent_class = g_type_class_peek_parent (class);
-
-       object_class->finalize = gl_view_ellipse_finalize;
-
-       view_object_class->construct_editor = construct_properties_editor;
-       view_object_class->object_at        = object_at;
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-static void
-gl_view_ellipse_init (glViewEllipse *view_ellipse)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       view_ellipse->priv = g_new0 (glViewEllipsePrivate, 1);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-static void
-gl_view_ellipse_finalize (GObject *object)
-{
-        glViewEllipse *view_ellipse = GL_VIEW_ELLIPSE (object);
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (object && GL_IS_VIEW_ELLIPSE (object));
-
-        g_free (view_ellipse->priv);
-
-       G_OBJECT_CLASS (gl_view_ellipse_parent_class)->finalize (object);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* NEW ellipse object view.                                                  */
-/*****************************************************************************/
-glViewObject *
-gl_view_ellipse_new (glLabelEllipse *object,
-                     glView         *view)
-{
-       glViewEllipse         *view_ellipse;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_val_if_fail (object && GL_IS_LABEL_ELLIPSE (object), NULL);
-       g_return_val_if_fail (view && GL_IS_VIEW (view), NULL);
-       
-       view_ellipse = g_object_new (gl_view_ellipse_get_type(), NULL);
-
-       gl_view_object_set_object (GL_VIEW_OBJECT(view_ellipse),
-                                  GL_LABEL_OBJECT(object),
-                                  GL_VIEW_OBJECT_HANDLES_BOX);
-       gl_view_object_set_view (GL_VIEW_OBJECT(view_ellipse), view);
-
-       gl_debug (DEBUG_VIEW, "END");
-
-       return GL_VIEW_OBJECT (view_ellipse);
-}
-
-/*****************************************************************************/
-/* Create a properties dialog for a ellipse object.                          */
-/*****************************************************************************/
-static GtkWidget *
-construct_properties_editor (glViewObject *view_object)
-{
-       GtkWidget          *editor;
-       glViewEllipse      *view_ellipse = (glViewEllipse *)view_object;
-       glLabelObject      *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       object = gl_view_object_get_object (GL_VIEW_OBJECT(view_ellipse));
-
-       /* Build editor. */
-       editor = gl_object_editor_new (GL_STOCK_ELLIPSE, _("Ellipse object properties"),
-                                       object->parent,
-                                      GL_OBJECT_EDITOR_SHADOW_PAGE,
-                                      GL_OBJECT_EDITOR_POSITION_PAGE,
-                                      GL_OBJECT_EDITOR_SIZE_PAGE,
-                                      GL_OBJECT_EDITOR_FILL_PAGE,
-                                      GL_OBJECT_EDITOR_LINE_PAGE,
-                                      0);
-       
-       /* Update */
-       update_editor_from_object_cb (object, GL_OBJECT_EDITOR(editor));
-       update_editor_from_move_cb (object, 0, 0, GL_OBJECT_EDITOR(editor));
-
-       /* Connect signals. */
-       g_signal_connect (G_OBJECT (editor), "changed",
-                         G_CALLBACK(update_object_from_editor_cb), object);
-       g_signal_connect (G_OBJECT (object), "changed",
-                         G_CALLBACK (update_editor_from_object_cb), editor);
-       g_signal_connect (G_OBJECT (object), "moved",
-                         G_CALLBACK (update_editor_from_move_cb), editor);
-
-       gl_debug (DEBUG_VIEW, "END");
-
-       return editor;
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  editor "changed" callback.                                      */
-/*---------------------------------------------------------------------------*/
-static void
-update_object_from_editor_cb (glObjectEditor *editor,
-                             glLabelObject  *object)
-{
-       gdouble            x, y, w, h;
-       glColorNode       *line_color_node;
-       gdouble            line_width;
-       glColorNode       *fill_color_node;
-       gboolean           shadow_state;
-       gdouble            shadow_x, shadow_y;
-       glColorNode       *shadow_color_node;
-       gdouble            shadow_opacity;
-       
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_signal_handlers_block_by_func (G_OBJECT(object),
-                                        update_editor_from_object_cb,
-                                        editor);
-       g_signal_handlers_block_by_func (G_OBJECT(object),
-                                        update_editor_from_move_cb,
-                                        editor);
-
-       gl_object_editor_get_position (editor, &x, &y);
-       gl_label_object_set_position (object, x, y);
-
-       gl_object_editor_get_size (editor, &w, &h);
-       gl_label_object_set_size (object, w, h);
-
-       fill_color_node = gl_object_editor_get_fill_color (editor);
-       gl_label_object_set_fill_color (object, fill_color_node);
-       gl_color_node_free (&fill_color_node);
-
-       line_color_node = gl_object_editor_get_line_color (editor);
-       gl_label_object_set_line_color (object, line_color_node);
-       gl_color_node_free (&line_color_node);
-
-       line_width = gl_object_editor_get_line_width (editor);
-       gl_label_object_set_line_width (object, line_width);
-
-       shadow_state = gl_object_editor_get_shadow_state (editor);
-       gl_label_object_set_shadow_state (object, shadow_state);
-
-       gl_object_editor_get_shadow_offset (editor, &shadow_x, &shadow_y);
-       gl_label_object_set_shadow_offset (object, shadow_x, shadow_y);
-
-       shadow_color_node = gl_object_editor_get_shadow_color (editor);
-       gl_label_object_set_shadow_color (object, shadow_color_node);
-       gl_color_node_free (&shadow_color_node);
-
-       shadow_opacity = gl_object_editor_get_shadow_opacity (editor);
-       gl_label_object_set_shadow_opacity (object, shadow_opacity);
-
-       g_signal_handlers_unblock_by_func (G_OBJECT(object),
-                                          update_editor_from_object_cb,
-                                          editor);
-       g_signal_handlers_unblock_by_func (G_OBJECT(object),
-                                          update_editor_from_move_cb,
-                                          editor);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE. label object "changed" callback.                                 */
-/*---------------------------------------------------------------------------*/
-static void
-update_editor_from_object_cb (glLabelObject  *object,
-                             glObjectEditor *editor)
-{
-       gdouble            w, h;
-       glColorNode       *line_color_node;
-       gdouble            line_width;
-       glColorNode       *fill_color_node;
-       gboolean           shadow_state;
-       gdouble            shadow_x, shadow_y;
-       glColorNode       *shadow_color_node;
-       gdouble            shadow_opacity;
-       glMerge           *merge;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       gl_label_object_get_size (object, &w, &h);
-       gl_object_editor_set_size (editor, w, h);
-       merge = gl_label_get_merge (GL_LABEL(object->parent));
-       
-       fill_color_node = gl_label_object_get_fill_color (GL_LABEL_OBJECT(object));
-       gl_object_editor_set_fill_color (editor, (merge != NULL), fill_color_node);
-       gl_color_node_free (&fill_color_node);
-
-       line_color_node = gl_label_object_get_line_color (GL_LABEL_OBJECT(object));
-       gl_object_editor_set_line_color (editor, (merge != NULL), line_color_node);
-       gl_color_node_free (&line_color_node);
-
-       line_width = gl_label_object_get_line_width (GL_LABEL_OBJECT(object));
-       gl_object_editor_set_line_width (editor, line_width);
-
-       shadow_state = gl_label_object_get_shadow_state (object);
-       gl_object_editor_set_shadow_state (editor, shadow_state);
-
-       gl_label_object_get_shadow_offset (object, &shadow_x, &shadow_y);
-       gl_object_editor_set_shadow_offset (editor, shadow_x, shadow_y);
-
-       shadow_color_node = gl_label_object_get_shadow_color (object);
-       gl_object_editor_set_shadow_color (editor, (merge != NULL), shadow_color_node);
-       gl_color_node_free (&shadow_color_node);
-
-       shadow_opacity = gl_label_object_get_shadow_opacity (object);
-       gl_object_editor_set_shadow_opacity (editor, shadow_opacity);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE. label object "moved" callback.                                   */
-/*---------------------------------------------------------------------------*/
-static void
-update_editor_from_move_cb (glLabelObject    *object,
-                           gdouble           dx,
-                           gdouble           dy,
-                           glObjectEditor   *editor)
-{
-       gdouble            x, y;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       gl_label_object_get_position (object, &x, &y);
-       gl_object_editor_set_position (editor, x, y);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Is object at (x,y)?                                                       */
-/*****************************************************************************/
-static gboolean
-object_at (glViewObject  *view_object,
-           cairo_t       *cr,
-           gdouble        x,
-           gdouble        y)
-{
-       glLabelObject    *object;
-        gdouble           w, h;
-        gdouble           line_width;
-
-        object = gl_view_object_get_object (view_object);
-
-        gl_label_object_get_size (object, &w, &h);
-
-        gl_cairo_ellipse_path (cr, w/2, h/2);
-
-        if (cairo_in_fill (cr, x, y))
-        {
-                return TRUE;
-        }
-
-        line_width = gl_label_object_get_line_width (object);
-        cairo_set_line_width (cr, line_width);
-        if (cairo_in_stroke (cr, x, y))
-        {
-                return TRUE;
-        }
-
-        return FALSE;
-}
-
 
 /*****************************************************************************/
 /* Return apropos cursor for create object mode.                             */
@@ -376,29 +60,20 @@ GdkCursor *
 gl_view_ellipse_get_create_cursor (void)
 {
        GdkCursor       *cursor = NULL;
-       GdkPixmap       *pixmap_data, *pixmap_mask;
-       GdkColor         fg = { 0, 0, 0, 0 };
-       GdkColor         bg = { 0, 65535, 65535, 65535 };
+       GdkPixbuf       *pixbuf;
 
        gl_debug (DEBUG_VIEW, "START");
 
-        pixmap_data = gdk_bitmap_create_from_data (NULL,
-                                                   (gchar *)cursor_ellipse_bits,
-                                                   cursor_ellipse_width,
-                                                   cursor_ellipse_height);
-        pixmap_mask = gdk_bitmap_create_from_data (NULL,
-                                                   (gchar *)cursor_ellipse_mask_bits,
-                                                   cursor_ellipse_mask_width,
-                                                   cursor_ellipse_mask_height);
-        cursor = gdk_cursor_new_from_pixmap (pixmap_data, pixmap_mask, &fg,
-                                             &bg, cursor_ellipse_x_hot,
-                                             cursor_ellipse_y_hot);
+        pixbuf = gdk_pixbuf_from_pixdata (&cursor_ellipse_pixdata, FALSE, NULL);
+        cursor = gdk_cursor_new_from_pixbuf (gdk_display_get_default (), pixbuf, X_HOTSPOT, Y_HOTSPOT);
+        g_object_unref (pixbuf);
 
        gl_debug (DEBUG_VIEW, "END");
 
        return cursor;
 }
 
+
 /*****************************************************************************/
 /* Object creation handler: button press event.                              */
 /*****************************************************************************/
@@ -408,34 +83,20 @@ gl_view_ellipse_create_button_press_event   (glView *view,
                                              gdouble y)
 {
        GObject             *object;
-       glColorNode         *fill_color_node;
-       glColorNode         *line_color_node;
-
-        gl_view_unselect_all (view);
-
-        fill_color_node = gl_color_node_new_default ();
-        line_color_node = gl_color_node_new_default ();
-               
-        object = gl_label_ellipse_new (view->label);
-        gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y);
-        gl_label_object_set_size (GL_LABEL_OBJECT(object), 0.0, 0.0);
-        line_color_node->color = gl_color_set_opacity (gl_view_get_default_line_color(view), 0.5);
-        fill_color_node->color = gl_color_set_opacity (gl_view_get_default_fill_color(view), 0.5);
-        gl_label_object_set_line_width (GL_LABEL_OBJECT(object),
-                                        gl_view_get_default_line_width(view));
-        gl_label_object_set_line_color (GL_LABEL_OBJECT(object),
-                                        line_color_node);
-        gl_label_object_set_fill_color (GL_LABEL_OBJECT(object),
-                                        fill_color_node);
-
-        gl_color_node_free (&fill_color_node);
-        gl_color_node_free (&line_color_node);
+
+        gl_label_unselect_all (view->label);
+
+        object = gl_label_ellipse_new (view->label, TRUE);
+
+        gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y, FALSE);
+        gl_label_object_set_size (GL_LABEL_OBJECT(object), 0.0, 0.0, FALSE);
 
         view->create_object = GL_LABEL_OBJECT (object);
         view->create_x0 = x;
         view->create_y0 = y;
 }
 
+
 /*****************************************************************************/
 /* Object creation handler: motion event.                                    */
 /*****************************************************************************/
@@ -447,12 +108,15 @@ gl_view_ellipse_create_motion_event     (glView *view,
         gdouble w, h;
 
         gl_label_object_set_position (GL_LABEL_OBJECT(view->create_object),
-                                      MIN (x, view->create_x0), MIN (y, view->create_y0));
+                                      MIN (x, view->create_x0), MIN (y, view->create_y0),
+                                      FALSE);
+
         w = MAX (x, view->create_x0) - MIN (x, view->create_x0);
         h = MAX (y, view->create_y0) - MIN (y, view->create_y0);
-        gl_label_object_set_size (GL_LABEL_OBJECT(view->create_object), w, h);
+        gl_label_object_set_size (GL_LABEL_OBJECT(view->create_object), w, h, FALSE);
 }
 
+
 /*****************************************************************************/
 /* Object creation handler: button relesase event.                           */
 /*****************************************************************************/
@@ -461,27 +125,28 @@ gl_view_ellipse_create_button_release_event (glView *view,
                                              gdouble x,
                                              gdouble y)
 {
-       glColorNode         *fill_color_node;
-       glColorNode         *line_color_node;
         gdouble              w, h;
 
-        fill_color_node = gl_color_node_new_default ();
-        line_color_node = gl_color_node_new_default ();
-               
         if ((view->create_x0 == x) && (view->create_y0 == y)) {
                 x = view->create_x0 + 36.0;
                 y = view->create_y0 + 36.0;
         }
         gl_label_object_set_position (GL_LABEL_OBJECT(view->create_object),
-                                      MIN (x, view->create_x0), MIN (y, view->create_y0));
+                                      MIN (x, view->create_x0), MIN (y, view->create_y0),
+                                      FALSE);
+
         w = MAX (x, view->create_x0) - MIN (x, view->create_x0);
         h = MAX (y, view->create_y0) - MIN (y, view->create_y0);
-        gl_label_object_set_size (GL_LABEL_OBJECT(view->create_object), w, h);
-        line_color_node->color = gl_view_get_default_line_color(view);
-        gl_label_object_set_line_color (GL_LABEL_OBJECT(view->create_object), line_color_node);
-        fill_color_node->color = gl_view_get_default_fill_color(view);
-        gl_label_object_set_fill_color (GL_LABEL_OBJECT(view->create_object), fill_color_node);
-        gl_color_node_free (&fill_color_node);
-        gl_color_node_free (&line_color_node);
+        gl_label_object_set_size (GL_LABEL_OBJECT(view->create_object), w, h, FALSE);
 }
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index b6d6aae2f81ce3ea6a1813fb047adfa670e69afd..a75afd63def413e3ed4d7ba1ee431db4dae5bf90 100644 (file)
@@ -1,66 +1,34 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  view_ellipse.h:  GLabels label ellipse object view
+ *  view-ellipse.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __VIEW_ELLIPSE_H__
 #define __VIEW_ELLIPSE_H__
 
-#include "view-object.h"
-#include "label-ellipse.h"
-
-G_BEGIN_DECLS
-
-
-#define GL_TYPE_VIEW_ELLIPSE            (gl_view_ellipse_get_type ())
-#define GL_VIEW_ELLIPSE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_VIEW_ELLIPSE, glViewEllipse))
-#define GL_VIEW_ELLIPSE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_VIEW_ELLIPSE, glViewEllipseClass))
-#define GL_IS_VIEW_ELLIPSE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_VIEW_ELLIPSE))
-#define GL_IS_VIEW_ELLIPSE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_VIEW_ELLIPSE))
-
-typedef struct _glViewEllipse          glViewEllipse;
-typedef struct _glViewEllipseClass     glViewEllipseClass;
-
-typedef struct _glViewEllipsePrivate   glViewEllipsePrivate;
-
-struct _glViewEllipse {
-       glViewObject          parent_object;
+#include "view.h"
 
-       glViewEllipsePrivate *priv;
-};
 
-struct _glViewEllipseClass {
-       glViewObjectClass     parent_class;
-};
-
-
-GType          gl_view_ellipse_get_type (void) G_GNUC_CONST;
-
-glViewObject  *gl_view_ellipse_new      (glLabelEllipse *object,
-                                         glView     *view);
+G_BEGIN_DECLS
 
 
 /* cursor for creating ellipse objects */
-GdkCursor *gl_view_ellipse_get_create_cursor (void);
+GdkCursor *gl_view_ellipse_get_create_cursor           (void);
 
 /* Object creation handlers. */
 void       gl_view_ellipse_create_button_press_event   (glView *view,
@@ -79,3 +47,14 @@ void       gl_view_ellipse_create_button_release_event (glView *view,
 G_END_DECLS
 
 #endif /* __VIEW_ELLIPSE_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index b546baf55fb6c36cfca779abebc31c19b537d31f..e6bd8ae41d8304f77a3b80fb6d25e9401eb42eeb 100644 (file)
@@ -1,54 +1,47 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  view_image.c:  GLabels label image object view
+ *  view-image.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "view-image.h"
 
-#include <glib/gi18n.h>
-#include <glib/gmem.h>
-
-#include "color.h"
-#include "object-editor.h"
-#include "stock.h"
+#include <gdk-pixbuf/gdk-pixdata.h>
 
-#include "pixmaps/cursor_image.xbm"
-#include "pixmaps/cursor_image_mask.xbm"
+#include "label-image.h"
+#include "cursors/cursor_pixdata.h"
 
 #include "debug.h"
 
+
 /*========================================================*/
 /* Private macros and constants.                          */
 /*========================================================*/
 
+#define X_HOTSPOT 7
+#define Y_HOTSPOT 7
+
 
 /*========================================================*/
 /* Private types.                                         */
 /*========================================================*/
 
-struct _glViewImagePrivate {
-        int place_holder; /* Place holder for future private data. */
-};
 
 /*========================================================*/
 /* Private globals.                                       */
@@ -59,277 +52,6 @@ struct _glViewImagePrivate {
 /* Private function prototypes.                           */
 /*========================================================*/
 
-static void       gl_view_image_finalize            (GObject          *object);
-
-static GtkWidget *construct_properties_editor       (glViewObject     *view_object);
-
-static void       update_object_from_editor_cb      (glObjectEditor   *editor,
-                                                    glLabelObject    *object);
-
-static void       update_editor_from_object_cb      (glLabelObject    *object,
-                                                    glObjectEditor   *editor);
-
-static void       update_editor_from_move_cb        (glLabelObject    *object,
-                                                    gdouble           dx,
-                                                    gdouble           dy,
-                                                    glObjectEditor   *editor);
-
-static gboolean   object_at                         (glViewObject     *view_object,
-                                                     cairo_t          *cr,
-                                                     gdouble           x,
-                                                     gdouble           y);
-
-
-\f
-/*****************************************************************************/
-/* Boilerplate object stuff.                                                 */
-/*****************************************************************************/
-G_DEFINE_TYPE (glViewImage, gl_view_image, GL_TYPE_VIEW_OBJECT);
-
-
-static void
-gl_view_image_class_init (glViewImageClass *class)
-{
-       GObjectClass      *object_class      = G_OBJECT_CLASS (class);
-       glViewObjectClass *view_object_class = GL_VIEW_OBJECT_CLASS (class);
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       gl_view_image_parent_class = g_type_class_peek_parent (class);
-
-       object_class->finalize = gl_view_image_finalize;
-
-       view_object_class->construct_editor = construct_properties_editor;
-       view_object_class->object_at        = object_at;
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-static void
-gl_view_image_init (glViewImage *view_image)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       view_image->priv = g_new0 (glViewImagePrivate, 1);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-static void
-gl_view_image_finalize (GObject *object)
-{
-        glViewImage *view_image = GL_VIEW_IMAGE (object);
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (object && GL_IS_VIEW_IMAGE (object));
-
-        g_free (view_image->priv);
-
-       G_OBJECT_CLASS (gl_view_image_parent_class)->finalize (object);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* NEW image object view.                                                    */
-/*****************************************************************************/
-glViewObject *
-gl_view_image_new (glLabelImage *object,
-                   glView       *view)
-{
-       glViewImage         *view_image;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_val_if_fail (object && GL_IS_LABEL_IMAGE (object), NULL);
-       g_return_val_if_fail (view && GL_IS_VIEW (view), NULL);
-       
-       view_image = g_object_new (gl_view_image_get_type(), NULL);
-
-       gl_view_object_set_object (GL_VIEW_OBJECT(view_image),
-                                  GL_LABEL_OBJECT(object),
-                                  GL_VIEW_OBJECT_HANDLES_BOX);
-       gl_view_object_set_view (GL_VIEW_OBJECT(view_image), view);
-
-       gl_debug (DEBUG_VIEW, "END");
-
-       return GL_VIEW_OBJECT (view_image);
-}
-
-/*****************************************************************************/
-/* Create a properties dialog for a image object.                            */
-/*****************************************************************************/
-static GtkWidget *
-construct_properties_editor (glViewObject *view_object)
-{
-       GtkWidget          *editor;
-       glViewImage        *view_image = (glViewImage *)view_object;
-       glLabelObject      *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       object = gl_view_object_get_object (GL_VIEW_OBJECT(view_image));
-
-       /* Build editor. */
-       editor = gl_object_editor_new (GL_STOCK_IMAGE, _("Image object properties"),
-                                       object->parent,
-                                      GL_OBJECT_EDITOR_POSITION_PAGE,
-                                      GL_OBJECT_EDITOR_SIZE_IMAGE_PAGE,
-                                      GL_OBJECT_EDITOR_IMAGE_PAGE,
-                                      0);
-       
-       /* Update */
-       update_editor_from_object_cb (object, GL_OBJECT_EDITOR(editor));
-       update_editor_from_move_cb (object, 0, 0, GL_OBJECT_EDITOR(editor));
-
-       /* Connect signals. */
-       g_signal_connect (G_OBJECT (editor), "changed",
-                         G_CALLBACK(update_object_from_editor_cb), object);
-       g_signal_connect (G_OBJECT (object), "changed",
-                         G_CALLBACK (update_editor_from_object_cb), editor);
-       g_signal_connect (G_OBJECT (object), "moved",
-                         G_CALLBACK (update_editor_from_move_cb), editor);
-
-       gl_debug (DEBUG_VIEW, "END");
-
-       return editor;
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  editor "changed" callback.                                      */
-/*---------------------------------------------------------------------------*/
-static void
-update_object_from_editor_cb (glObjectEditor *editor,
-                             glLabelObject  *object)
-{
-       gdouble            x, y, w, h;
-       glTextNode        *filename;
-       const GdkPixbuf   *pixbuf;
-       gdouble            image_w, image_h;
-       gdouble            new_w, new_h;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_signal_handlers_block_by_func (G_OBJECT(object),
-                                        update_editor_from_object_cb,
-                                        editor);
-       g_signal_handlers_block_by_func (G_OBJECT(object),
-                                        update_editor_from_move_cb,
-                                        editor);
-
-
-       gl_object_editor_get_position (editor, &x, &y);
-       gl_label_object_set_position (object, x, y);
-
-       gl_object_editor_get_size (editor, &w, &h);
-       gl_label_object_set_size (object, w, h);
-
-       filename = gl_object_editor_get_image (editor);
-       gl_label_image_set_filename (GL_LABEL_IMAGE(object), filename);
-       gl_text_node_free (&filename);
-
-       /* Setting filename may have modified the size. */
-       gl_label_object_get_size (object, &new_w, &new_h);
-        if ( (new_w != w) || (new_h != h) )
-        {
-                gl_object_editor_set_size (editor, new_w, new_h);
-        }
-
-       /* It may also have a new base size. */
-        pixbuf = gl_label_image_get_pixbuf (GL_LABEL_IMAGE(object), NULL);
-        image_w = gdk_pixbuf_get_width (pixbuf);
-        image_h = gdk_pixbuf_get_height (pixbuf);
-       gl_object_editor_set_base_size (editor, image_w, image_h);
-
-       g_signal_handlers_unblock_by_func (G_OBJECT(object),
-                                          update_editor_from_object_cb,
-                                          editor);
-       g_signal_handlers_unblock_by_func (G_OBJECT(object),
-                                          update_editor_from_move_cb,
-                                          editor);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE. label object "changed" callback.                                 */
-/*---------------------------------------------------------------------------*/
-static void
-update_editor_from_object_cb (glLabelObject  *object,
-                             glObjectEditor *editor)
-{
-       gdouble            w, h;
-       const GdkPixbuf   *pixbuf;
-       gdouble            image_w, image_h;
-       glTextNode        *filename;
-       glMerge           *merge;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       gl_label_object_get_size (object, &w, &h);
-       gl_object_editor_set_size (editor, w, h);
-
-        pixbuf = gl_label_image_get_pixbuf (GL_LABEL_IMAGE(object), NULL);
-        image_w = gdk_pixbuf_get_width (pixbuf);
-        image_h = gdk_pixbuf_get_height (pixbuf);
-       gl_object_editor_set_base_size (editor, image_w, image_h);
-
-       filename = gl_label_image_get_filename (GL_LABEL_IMAGE(object));
-       merge = gl_label_get_merge (GL_LABEL(object->parent));
-       if ( filename != NULL ) {
-               gl_object_editor_set_image (editor, (merge != NULL), filename);
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE. label object "moved" callback.                                   */
-/*---------------------------------------------------------------------------*/
-static void
-update_editor_from_move_cb (glLabelObject    *object,
-                           gdouble           dx,
-                           gdouble           dy,
-                           glObjectEditor   *editor)
-{
-       gdouble            x, y;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       gl_label_object_get_position (object, &x, &y);
-       gl_object_editor_set_position (editor, x, y);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Is object at (x,y)?                                                       */
-/*****************************************************************************/
-static gboolean
-object_at (glViewObject  *view_object,
-           cairo_t       *cr,
-           gdouble        x,
-           gdouble        y)
-{
-       glLabelObject    *object;
-        gdouble           w, h;
-
-        object = gl_view_object_get_object (view_object);
-
-        gl_label_object_get_size (object, &w, &h);
-
-        cairo_rectangle (cr, 0.0, 0.0, w, h);
-
-        if (cairo_in_fill (cr, x, y))
-        {
-                return TRUE;
-        }
-
-        return FALSE;
-}
-
-
 /*****************************************************************************/
 /* Return apropos cursor for create object mode.                             */
 /*****************************************************************************/
@@ -337,29 +59,20 @@ GdkCursor *
 gl_view_image_get_create_cursor (void)
 {
        GdkCursor       *cursor = NULL;
-       GdkPixmap       *pixmap_data, *pixmap_mask;
-       GdkColor         fg = { 0, 0, 0, 0 };
-       GdkColor         bg = { 0, 65535, 65535, 65535 };
+       GdkPixbuf       *pixbuf;
 
        gl_debug (DEBUG_VIEW, "START");
 
-        pixmap_data = gdk_bitmap_create_from_data (NULL,
-                                                   (gchar *)cursor_image_bits,
-                                                   cursor_image_width,
-                                                   cursor_image_height);
-        pixmap_mask = gdk_bitmap_create_from_data (NULL,
-                                                   (gchar *)cursor_image_mask_bits,
-                                                   cursor_image_mask_width,
-                                                   cursor_image_mask_height);
-        cursor = gdk_cursor_new_from_pixmap (pixmap_data, pixmap_mask, &fg,
-                                             &bg, cursor_image_x_hot,
-                                             cursor_image_y_hot);
+        pixbuf = gdk_pixbuf_from_pixdata (&cursor_image_pixdata, FALSE, NULL);
+        cursor = gdk_cursor_new_from_pixbuf (gdk_display_get_default (), pixbuf, X_HOTSPOT, Y_HOTSPOT);
+        g_object_unref (pixbuf);
 
        gl_debug (DEBUG_VIEW, "END");
 
        return cursor;
 }
 
+
 /*****************************************************************************/
 /* Object creation handler: button press event.                              */
 /*****************************************************************************/
@@ -370,17 +83,19 @@ gl_view_image_create_button_press_event   (glView *view,
 {
        GObject             *object;
 
-        gl_view_unselect_all (view);
+        gl_label_unselect_all (view->label);
 
-        object = gl_label_image_new (view->label);
-        gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y);
-        gl_label_object_set_size (GL_LABEL_OBJECT(object), 0.0, 0.0);
+        object = gl_label_image_new (view->label, TRUE);
+
+        gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y, FALSE);
+        gl_label_object_set_size (GL_LABEL_OBJECT(object), 0.0, 0.0, FALSE);
 
         view->create_object = GL_LABEL_OBJECT (object);
         view->create_x0 = x;
         view->create_y0 = y;
 }
 
+
 /*****************************************************************************/
 /* Object creation handler: motion event.                                    */
 /*****************************************************************************/
@@ -392,12 +107,15 @@ gl_view_image_create_motion_event     (glView *view,
         gdouble w, h;
 
         gl_label_object_set_position (GL_LABEL_OBJECT(view->create_object),
-                                      MIN (x, view->create_x0), MIN (y, view->create_y0));
+                                      MIN (x, view->create_x0), MIN (y, view->create_y0),
+                                      FALSE);
+
         w = MAX (x, view->create_x0) - MIN (x, view->create_x0);
         h = MAX (y, view->create_y0) - MIN (y, view->create_y0);
-        gl_label_object_set_size (GL_LABEL_OBJECT(view->create_object), w, h);
+        gl_label_object_set_size (GL_LABEL_OBJECT(view->create_object), w, h, FALSE);
 }
 
+
 /*****************************************************************************/
 /* Object creation handler: button relesase event.                           */
 /*****************************************************************************/
@@ -413,9 +131,21 @@ gl_view_image_create_button_release_event (glView *view,
                 y = view->create_y0 + 36.0;
         }
         gl_label_object_set_position (GL_LABEL_OBJECT(view->create_object),
-                                      MIN (x, view->create_x0), MIN (y, view->create_y0));
+                                      MIN (x, view->create_x0), MIN (y, view->create_y0),
+                                      FALSE);
+
         w = MAX (x, view->create_x0) - MIN (x, view->create_x0);
         h = MAX (y, view->create_y0) - MIN (y, view->create_y0);
-        gl_label_object_set_size (GL_LABEL_OBJECT(view->create_object), w, h);
+        gl_label_object_set_size (GL_LABEL_OBJECT(view->create_object), w, h, FALSE);
 }
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 7bb3ce10f342307f370d2b551ddb310d7d5d6bc1..731c3cbbda736b3e2f5208ab4fa4d74489d8b431 100644 (file)
@@ -1,66 +1,34 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  view_image.h:  GLabels label image object view
+ *  view-image.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __VIEW_IMAGE_H__
 #define __VIEW_IMAGE_H__
 
-#include "view-object.h"
-#include "label-image.h"
-
-G_BEGIN_DECLS
-
-
-#define GL_TYPE_VIEW_IMAGE            (gl_view_image_get_type ())
-#define GL_VIEW_IMAGE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_VIEW_IMAGE, glViewImage))
-#define GL_VIEW_IMAGE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_VIEW_IMAGE, glViewImageClass))
-#define GL_IS_VIEW_IMAGE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_VIEW_IMAGE))
-#define GL_IS_VIEW_IMAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_VIEW_IMAGE))
-
-typedef struct _glViewImage          glViewImage;
-typedef struct _glViewImageClass     glViewImageClass;
-
-typedef struct _glViewImagePrivate   glViewImagePrivate;
-
-struct _glViewImage {
-       glViewObject        parent_object;
+#include "view.h"
 
-       glViewImagePrivate *priv;
-};
 
-struct _glViewImageClass {
-       glViewObjectClass   parent_class;
-};
-
-
-GType          gl_view_image_get_type (void) G_GNUC_CONST;
-
-glViewObject  *gl_view_image_new      (glLabelImage *object,
-                                       glView     *view);
+G_BEGIN_DECLS
 
 
 /* cursor for creating image objects */
-GdkCursor *gl_view_image_get_create_cursor (void);
+GdkCursor *gl_view_image_get_create_cursor           (void);
 
 /* Object creation handlers. */
 void       gl_view_image_create_button_press_event   (glView *view,
@@ -79,3 +47,14 @@ void       gl_view_image_create_button_release_event (glView *view,
 G_END_DECLS
 
 #endif /* __VIEW_IMAGE_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 8c3996588d0e9275ba89aae5246c83b2e5be7ceb..9da709e1ba99e3b4a64047b4c5c3be004b17c6a0 100644 (file)
@@ -1,54 +1,47 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  view_line.c:  GLabels label line object view
+ *  view-line.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "view-line.h"
 
-#include <glib/gi18n.h>
-#include <glib/gmem.h>
-
-#include "color.h"
-#include "object-editor.h"
-#include "stock.h"
+#include <gdk-pixbuf/gdk-pixdata.h>
 
-#include "pixmaps/cursor_line.xbm"
-#include "pixmaps/cursor_line_mask.xbm"
+#include "label-line.h"
+#include "cursors/cursor_pixdata.h"
 
 #include "debug.h"
 
+
 /*========================================================*/
 /* Private macros and constants.                          */
 /*========================================================*/
 
+#define X_HOTSPOT 7
+#define Y_HOTSPOT 7
+
 
 /*========================================================*/
 /* Private types.                                         */
 /*========================================================*/
 
-struct _glViewLinePrivate {
-        int place_holder; /* Place holder for future private data. */
-};
 
 /*========================================================*/
 /* Private globals.                                       */
@@ -59,299 +52,6 @@ struct _glViewLinePrivate {
 /* Private function prototypes.                           */
 /*========================================================*/
 
-static void       gl_view_line_finalize             (GObject          *object);
-
-static GtkWidget *construct_properties_editor       (glViewObject     *view_object);
-
-static void       update_object_from_editor_cb      (glObjectEditor   *editor,
-                                                    glLabelObject    *object);
-
-static void       update_editor_from_object_cb      (glLabelObject    *object,
-                                                    glObjectEditor   *editor);
-
-static void       update_editor_from_move_cb        (glLabelObject    *object,
-                                                    gdouble           dx,
-                                                    gdouble           dy,
-                                                    glObjectEditor   *editor);
-
-static gboolean   object_at                         (glViewObject     *view_object,
-                                                     cairo_t          *cr,
-                                                     gdouble           x,
-                                                     gdouble           y);
-
-
-\f
-/*****************************************************************************/
-/* Boilerplate object stuff.                                                 */
-/*****************************************************************************/
-G_DEFINE_TYPE (glViewLine, gl_view_line, GL_TYPE_VIEW_OBJECT);
-
-
-static void
-gl_view_line_class_init (glViewLineClass *class)
-{
-       GObjectClass      *object_class      = G_OBJECT_CLASS (class);
-       glViewObjectClass *view_object_class = GL_VIEW_OBJECT_CLASS (class);
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       gl_view_line_parent_class = g_type_class_peek_parent (class);
-
-       object_class->finalize = gl_view_line_finalize;
-
-       view_object_class->construct_editor = construct_properties_editor;
-       view_object_class->object_at        = object_at;
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-static void
-gl_view_line_init (glViewLine *view_line)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       view_line->priv = g_new0 (glViewLinePrivate, 1);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-static void
-gl_view_line_finalize (GObject *object)
-{
-        glViewLine *view_line = GL_VIEW_LINE (object);
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (object && GL_IS_VIEW_LINE (object));
-
-        g_free (view_line->priv);
-
-       G_OBJECT_CLASS (gl_view_line_parent_class)->finalize (object);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* NEW line object view.                                                  */
-/*****************************************************************************/
-glViewObject *
-gl_view_line_new (glLabelLine *object,
-                  glView     *view)
-{
-       glViewLine         *view_line;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_val_if_fail (object && GL_IS_LABEL_LINE (object), NULL);
-       g_return_val_if_fail (view && GL_IS_VIEW (view), NULL);
-       
-       view_line = g_object_new (gl_view_line_get_type(), NULL);
-
-       gl_view_object_set_object (GL_VIEW_OBJECT(view_line),
-                                  GL_LABEL_OBJECT(object),
-                                  GL_VIEW_OBJECT_HANDLES_LINE);
-       gl_view_object_set_view (GL_VIEW_OBJECT(view_line), view);
-
-       gl_debug (DEBUG_VIEW, "END");
-
-       return GL_VIEW_OBJECT (view_line);
-}
-
-/*****************************************************************************/
-/* Create a properties dialog for a line object.                             */
-/*****************************************************************************/
-static GtkWidget *
-construct_properties_editor (glViewObject *view_object)
-{
-       GtkWidget          *editor;
-       glViewLine         *view_line = (glViewLine *)view_object;
-       glLabelObject      *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       object = gl_view_object_get_object (GL_VIEW_OBJECT(view_line));
-
-       /* Build editor. */
-       editor = gl_object_editor_new (GL_STOCK_LINE, _("Line object properties"),
-                                       object->parent,
-                                      GL_OBJECT_EDITOR_SHADOW_PAGE,
-                                      GL_OBJECT_EDITOR_POSITION_PAGE,
-                                      GL_OBJECT_EDITOR_SIZE_LINE_PAGE,
-                                      GL_OBJECT_EDITOR_LINE_PAGE,
-                                      0);
-       
-       /* Update */
-       update_editor_from_object_cb (object, GL_OBJECT_EDITOR(editor));
-       update_editor_from_move_cb (object, 0, 0, GL_OBJECT_EDITOR(editor));
-
-       /* Connect signals. */
-       g_signal_connect (G_OBJECT (editor), "changed",
-                         G_CALLBACK(update_object_from_editor_cb), object);
-       g_signal_connect (G_OBJECT (object), "changed",
-                         G_CALLBACK (update_editor_from_object_cb), editor);
-       g_signal_connect (G_OBJECT (object), "moved",
-                         G_CALLBACK (update_editor_from_move_cb), editor);
-
-       gl_debug (DEBUG_VIEW, "END");
-
-       return editor;
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  editor "changed" callback.                                      */
-/*---------------------------------------------------------------------------*/
-static void
-update_object_from_editor_cb (glObjectEditor *editor,
-                             glLabelObject  *object)
-{
-       gdouble            x, y, w, h;
-       glColorNode       *line_color_node;
-       gdouble            line_width;
-       gboolean           shadow_state;
-       gdouble            shadow_x, shadow_y;
-       glColorNode       *shadow_color_node;
-       gdouble            shadow_opacity;
-       
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_signal_handlers_block_by_func (G_OBJECT(object),
-                                        update_editor_from_object_cb,
-                                        editor);
-       g_signal_handlers_block_by_func (G_OBJECT(object),
-                                        update_editor_from_move_cb,
-                                        editor);
-
-       gl_object_editor_get_position (editor, &x, &y);
-       gl_label_object_set_position (object, x, y);
-
-       gl_object_editor_get_lsize (editor, &w, &h);
-       gl_label_object_set_size (object, w, h);
-
-       line_color_node = gl_object_editor_get_line_color (editor);
-       gl_label_object_set_line_color (object, line_color_node);
-       gl_color_node_free (&line_color_node);
-
-       line_width = gl_object_editor_get_line_width (editor);
-       gl_label_object_set_line_width (object, line_width);
-
-       shadow_state = gl_object_editor_get_shadow_state (editor);
-       gl_label_object_set_shadow_state (object, shadow_state);
-
-       gl_object_editor_get_shadow_offset (editor, &shadow_x, &shadow_y);
-       gl_label_object_set_shadow_offset (object, shadow_x, shadow_y);
-
-       shadow_color_node = gl_object_editor_get_shadow_color (editor);
-       gl_label_object_set_shadow_color (object, shadow_color_node);
-       gl_color_node_free (&shadow_color_node);
-
-       shadow_opacity = gl_object_editor_get_shadow_opacity (editor);
-       gl_label_object_set_shadow_opacity (object, shadow_opacity);
-
-       g_signal_handlers_unblock_by_func (G_OBJECT(object),
-                                          update_editor_from_object_cb,
-                                          editor);
-       g_signal_handlers_unblock_by_func (G_OBJECT(object),
-                                          update_editor_from_move_cb,
-                                          editor);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE. label object "changed" callback.                                 */
-/*---------------------------------------------------------------------------*/
-static void
-update_editor_from_object_cb (glLabelObject  *object,
-                             glObjectEditor *editor)
-{
-       gdouble            w, h;
-       glColorNode       *line_color_node;
-       gdouble            line_width;
-       gboolean           shadow_state;
-       gdouble            shadow_x, shadow_y;
-       glColorNode       *shadow_color_node;
-       gdouble            shadow_opacity;
-       glMerge           *merge;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       gl_label_object_get_size (object, &w, &h);
-       gl_object_editor_set_lsize (editor, w, h);
-       merge = gl_label_get_merge (GL_LABEL(object->parent));
-       
-       line_color_node = gl_label_object_get_line_color (GL_LABEL_OBJECT(object));
-       gl_object_editor_set_line_color (editor, (merge != NULL), line_color_node);
-       gl_color_node_free (&line_color_node);
-
-       line_width = gl_label_object_get_line_width (GL_LABEL_OBJECT(object));
-       gl_object_editor_set_line_width (editor, line_width);
-
-       shadow_state = gl_label_object_get_shadow_state (object);
-       gl_object_editor_set_shadow_state (editor, shadow_state);
-
-       gl_label_object_get_shadow_offset (object, &shadow_x, &shadow_y);
-       gl_object_editor_set_shadow_offset (editor, shadow_x, shadow_y);
-
-       shadow_color_node = gl_label_object_get_shadow_color (object);
-       gl_object_editor_set_shadow_color (editor, (merge != NULL), shadow_color_node);
-       gl_color_node_free (&shadow_color_node);
-
-       shadow_opacity = gl_label_object_get_shadow_opacity (object);
-       gl_object_editor_set_shadow_opacity (editor, shadow_opacity);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE. label object "moved" callback.                                   */
-/*---------------------------------------------------------------------------*/
-static void
-update_editor_from_move_cb (glLabelObject    *object,
-                           gdouble           dx,
-                           gdouble           dy,
-                           glObjectEditor   *editor)
-{
-       gdouble            x, y;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       gl_label_object_get_position (object, &x, &y);
-       gl_object_editor_set_position (editor, x, y);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Is object at (x,y)?                                                       */
-/*****************************************************************************/
-static gboolean
-object_at (glViewObject  *view_object,
-           cairo_t       *cr,
-           gdouble        x,
-           gdouble        y)
-{
-       glLabelObject    *object;
-        gdouble           w, h;
-        gdouble           line_width;
-
-        object = gl_view_object_get_object (view_object);
-
-        gl_label_object_get_size (object, &w, &h);
-
-        cairo_move_to (cr, 0.0, 0.0);
-        cairo_line_to (cr, w, h);
-
-        line_width = gl_label_object_get_line_width (object);
-        cairo_set_line_width (cr, line_width);
-        if (cairo_in_stroke (cr, x, y))
-        {
-                return TRUE;
-        }
-
-        return FALSE;
-}
-
 
 /*****************************************************************************/
 /* Return apropos cursor for create object mode.                             */
@@ -360,29 +60,20 @@ GdkCursor *
 gl_view_line_get_create_cursor (void)
 {
        GdkCursor       *cursor = NULL;
-       GdkPixmap       *pixmap_data, *pixmap_mask;
-       GdkColor         fg = { 0, 0, 0, 0 };
-       GdkColor         bg = { 0, 65535, 65535, 65535 };
+       GdkPixbuf       *pixbuf;
 
        gl_debug (DEBUG_VIEW, "START");
 
-        pixmap_data = gdk_bitmap_create_from_data (NULL,
-                                                   (gchar *)cursor_line_bits,
-                                                   cursor_line_width,
-                                                   cursor_line_height);
-        pixmap_mask = gdk_bitmap_create_from_data (NULL,
-                                                   (gchar *)cursor_line_mask_bits,
-                                                   cursor_line_mask_width,
-                                                   cursor_line_mask_height);
-        cursor = gdk_cursor_new_from_pixmap (pixmap_data, pixmap_mask, &fg,
-                                             &bg, cursor_line_x_hot,
-                                             cursor_line_y_hot);
+        pixbuf = gdk_pixbuf_from_pixdata (&cursor_line_pixdata, FALSE, NULL);
+        cursor = gdk_cursor_new_from_pixbuf (gdk_display_get_default (), pixbuf, X_HOTSPOT, Y_HOTSPOT);
+        g_object_unref (pixbuf);
 
        gl_debug (DEBUG_VIEW, "END");
 
        return cursor;
 }
 
+
 /*****************************************************************************/
 /* Object creation handler: button press event.                              */
 /*****************************************************************************/
@@ -392,28 +83,20 @@ gl_view_line_create_button_press_event   (glView *view,
                                           gdouble y)
 {
        GObject             *object;
-       glColorNode         *line_color_node;
 
-        gl_view_unselect_all (view);
+        gl_label_unselect_all (view->label);
 
-        line_color_node = gl_color_node_new_default ();
-               
-        object = gl_label_line_new (view->label);
-        gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y);
-        gl_label_object_set_size (GL_LABEL_OBJECT(object), 0.0, 0.0);
-        line_color_node->color = gl_color_set_opacity (gl_view_get_default_line_color(view), 0.5);
-        gl_label_object_set_line_width (GL_LABEL_OBJECT(object),
-                                        gl_view_get_default_line_width(view));
-        gl_label_object_set_line_color (GL_LABEL_OBJECT(object),
-                                        line_color_node);
+        object = gl_label_line_new (view->label, TRUE);
 
-        gl_color_node_free (&line_color_node);
+        gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y, FALSE);
+        gl_label_object_set_size (GL_LABEL_OBJECT(object), 0.0, 0.0, FALSE);
 
         view->create_object = GL_LABEL_OBJECT (object);
         view->create_x0 = x;
         view->create_y0 = y;
 }
 
+
 /*****************************************************************************/
 /* Object creation handler: motion event.                                    */
 /*****************************************************************************/
@@ -426,9 +109,10 @@ gl_view_line_create_motion_event     (glView *view,
 
         w = x - view->create_x0;
         h = y - view->create_y0;
-        gl_label_object_set_size (GL_LABEL_OBJECT(view->create_object), w, h);
+        gl_label_object_set_size (GL_LABEL_OBJECT(view->create_object), w, h, FALSE);
 }
 
+
 /*****************************************************************************/
 /* Object creation handler: button relesase event.                           */
 /*****************************************************************************/
@@ -437,20 +121,24 @@ gl_view_line_create_button_release_event (glView *view,
                                           gdouble x,
                                           gdouble y)
 {
-       glColorNode         *line_color_node;
         gdouble              w, h;
 
-        line_color_node = gl_color_node_new_default ();
-               
         if ((view->create_x0 == x) && (view->create_y0 == y)) {
                 x = view->create_x0 + 36.0;
                 y = view->create_y0 + 36.0;
         }
         w = x - view->create_x0;
         h = y - view->create_y0;
-        gl_label_object_set_size (GL_LABEL_OBJECT(view->create_object), w, h);
-        line_color_node->color = gl_view_get_default_line_color(view);
-        gl_label_object_set_line_color (GL_LABEL_OBJECT(view->create_object), line_color_node);
-        gl_color_node_free (&line_color_node);
+        gl_label_object_set_size (GL_LABEL_OBJECT(view->create_object), w, h, FALSE);
 }
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index a938a115a84db8a359ed51b3235889be22b711d5..67bd71070375fa9f695d15bb71d2c8f082cbd771 100644 (file)
@@ -1,66 +1,34 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  view_line.h:  GLabels label line object view
+ *  view-line.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __VIEW_LINE_H__
 #define __VIEW_LINE_H__
 
-#include "view-object.h"
-#include "label-line.h"
-
-G_BEGIN_DECLS
-
-
-#define GL_TYPE_VIEW_LINE            (gl_view_line_get_type ())
-#define GL_VIEW_LINE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_VIEW_LINE, glViewLine))
-#define GL_VIEW_LINE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_VIEW_LINE, glViewLineClass))
-#define GL_IS_VIEW_LINE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_VIEW_LINE))
-#define GL_IS_VIEW_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_VIEW_LINE))
-
-typedef struct _glViewLine          glViewLine;
-typedef struct _glViewLineClass     glViewLineClass;
-
-typedef struct _glViewLinePrivate   glViewLinePrivate;
-
-struct _glViewLine {
-       glViewObject       parent_object;
+#include "view.h"
 
-       glViewLinePrivate *priv;
-};
 
-struct _glViewLineClass {
-       glViewObjectClass  parent_class;
-};
-
-
-GType          gl_view_line_get_type (void) G_GNUC_CONST;
-
-glViewObject  *gl_view_line_new      (glLabelLine *object,
-                                      glView     *view);
+G_BEGIN_DECLS
 
 
 /* cursor for creating line objects */
-GdkCursor *gl_view_line_get_create_cursor (void);
+GdkCursor *gl_view_line_get_create_cursor           (void);
 
 /* Object creation handlers. */
 void       gl_view_line_create_button_press_event   (glView *view,
@@ -79,3 +47,14 @@ void       gl_view_line_create_button_release_event (glView *view,
 G_END_DECLS
 
 #endif /* __VIEW_LINE_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/view-object.c b/src/view-object.c
deleted file mode 100644 (file)
index 394735a..0000000
+++ /dev/null
@@ -1,765 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  view_object.c:  GLabels label object base class
- *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-
-
-#include "view-object.h"
-
-#include <glib.h>
-
-#include "debug.h"
-
-/*========================================================*/
-/* Private constants and macros.                          */
-/*========================================================*/
-
-#define HANDLE_FILL_RGBA_ARGS      0.0,   0.75,  0.0,   0.4
-#define HANDLE_OUTLINE_RGBA_ARGS   0.0,   0.0,   0.0,   0.8
-
-#define HANDLE_OUTLINE_WIDTH_PIXELS   1.0
-#define HANDLE_PIXELS 7
-
-/*========================================================*/
-/* Private types.                                         */
-/*========================================================*/
-
-struct _glViewObjectPrivate {
-
-       glLabelObject              *object;
-
-       glView                     *view;
-        glViewObjectHandlesStyle    handles_style;
-
-       GtkWidget                  *property_editor;
-};
-
-/*========================================================*/
-/* Private globals.                                       */
-/*========================================================*/
-
-
-/*========================================================*/
-/* Private function prototypes.                           */
-/*========================================================*/
-
-static void     gl_view_object_finalize      (GObject             *object);
-
-static void     object_removed_cb            (glViewObject        *view_object,
-                                              glLabelObject       *object);
-
-static void     object_top_cb                (glViewObject        *view_object,
-                                              glLabelObject       *object);
-
-static void     object_bottom_cb             (glViewObject        *view_object,
-                                              glLabelObject       *object);
-
-
-
-
-
-\f
-/*****************************************************************************/
-/* Boilerplate object stuff.                                                 */
-/*****************************************************************************/
-G_DEFINE_TYPE (glViewObject, gl_view_object, G_TYPE_OBJECT);
-
-static void
-gl_view_object_class_init (glViewObjectClass *class)
-{
-       GObjectClass *object_class = G_OBJECT_CLASS (class);
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       gl_view_object_parent_class = g_type_class_peek_parent (class);
-
-       object_class->finalize = gl_view_object_finalize;
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-static void
-gl_view_object_init (glViewObject *view_object)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       view_object->priv = g_new0 (glViewObjectPrivate, 1);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-static void
-gl_view_object_finalize (GObject *object)
-{
-       glViewObject  *view_object = GL_VIEW_OBJECT (object);
-       glView        *view;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (object && GL_IS_VIEW_OBJECT (object));
-
-       view = view_object->priv->view;
-       view->object_list = g_list_remove (view->object_list, object);
-       view->selected_object_list =
-               g_list_remove (view->selected_object_list, object);
-
-       g_object_unref (view_object->priv->object);
-       if (view_object->priv->property_editor) {
-                gl_debug (DEBUG_VIEW, "Destroy editor");
-               g_object_unref (G_OBJECT(view_object->priv->property_editor));
-       }
-       g_free (view_object->priv);
-
-       G_OBJECT_CLASS (gl_view_object_parent_class)->finalize (object);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* NEW object view.                                                          */
-/*****************************************************************************/
-GObject *
-gl_view_object_new (void)
-{
-       glViewObject *view_object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       view_object = g_object_new (gl_view_object_get_type(), NULL);
-
-       gl_debug (DEBUG_VIEW, "END");
-
-       return G_OBJECT (view_object);
-}
-
-/*****************************************************************************/
-/* Set parent view to which this object view belongs.                        */
-/*****************************************************************************/
-void
-gl_view_object_set_view       (glViewObject *view_object,
-                              glView *view)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view_object && GL_IS_VIEW_OBJECT (view_object));
-       g_return_if_fail (view && GL_IS_VIEW (view));
-       
-       view_object->priv->view = view;
-
-       view->object_list = g_list_append (view->object_list, view_object);
-
-       g_signal_connect_swapped (G_OBJECT (view_object->priv->object), "changed",
-                                 G_CALLBACK (gl_view_update), view);
-       g_signal_connect_swapped (G_OBJECT (view_object->priv->object), "moved",
-                                 G_CALLBACK (gl_view_update), view);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Set Label object to follow.                                               */
-/*****************************************************************************/
-void
-gl_view_object_set_object     (glViewObject            *view_object,
-                              glLabelObject           *object,
-                              glViewObjectHandlesStyle style)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view_object && GL_IS_VIEW_OBJECT (view_object));
-       g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
-       
-       view_object->priv->object = g_object_ref (G_OBJECT (object));
-       view_object->priv->handles_style = style;
-
-       g_signal_connect_swapped (G_OBJECT (object), "removed",
-                                 G_CALLBACK (object_removed_cb), view_object);
-       g_signal_connect_swapped (G_OBJECT (object), "top",
-                                 G_CALLBACK (object_top_cb), view_object);
-       g_signal_connect_swapped (G_OBJECT (object), "bottom",
-                                 G_CALLBACK (object_bottom_cb), view_object);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  Handle object "removed" signal.                                 */
-/*---------------------------------------------------------------------------*/
-static void
-object_removed_cb (glViewObject  *view_object,
-                   glLabelObject *object)
-{
-        glView *view;
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view_object && GL_IS_VIEW_OBJECT (view_object));
-       g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
-
-        view = gl_view_object_get_view (view_object);
-        view->object_list = g_list_remove (view->object_list, view_object);
-        g_object_unref (G_OBJECT (view_object));
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE. Handle object "top" signal.                                      */
-/*---------------------------------------------------------------------------*/
-static void
-object_top_cb (glViewObject  *view_object,
-               glLabelObject *object)
-{
-        glView *view;
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view_object && GL_IS_VIEW_OBJECT (view_object));
-       g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
-
-        view = gl_view_object_get_view (view_object);
-
-       /* Move to end of list, representing front most object */
-        view->object_list = g_list_remove (view->object_list, view_object);
-        view->object_list = g_list_append (view->object_list, view_object);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE. Handle object "removed" signal.                                  */
-/*---------------------------------------------------------------------------*/
-static void
-object_bottom_cb (glViewObject  *view_object,
-                  glLabelObject *object)
-{
-        glView *view;
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view_object && GL_IS_VIEW_OBJECT (view_object));
-       g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
-
-        view = gl_view_object_get_view (view_object);
-
-       /* Move to front of list, representing rear most object */
-        view->object_list = g_list_remove (view->object_list, view_object);
-        view->object_list = g_list_prepend (view->object_list, view_object);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Return parent view associated with this view.                             */
-/*****************************************************************************/
-glView *
-gl_view_object_get_view   (glViewObject *view_object)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_val_if_fail (view_object && GL_IS_VIEW_OBJECT (view_object), NULL);
-
-       gl_debug (DEBUG_VIEW, "END");
-
-       return view_object->priv->view;
-}
-
-/*****************************************************************************/
-/* Return label object that we are following.                                */
-/*****************************************************************************/
-glLabelObject *
-gl_view_object_get_object (glViewObject *view_object)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_val_if_fail (view_object && GL_IS_VIEW_OBJECT (view_object), NULL);
-       
-       gl_debug (DEBUG_VIEW, "END");
-
-       return view_object->priv->object;
-}
-
-/*****************************************************************************/
-/* Get property editor.                                                      */
-/*****************************************************************************/
-GtkWidget *
-gl_view_object_get_editor (glViewObject *view_object)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_val_if_fail (view_object && GL_IS_VIEW_OBJECT (view_object), NULL);
-
-       if ( GL_VIEW_OBJECT_GET_CLASS(view_object)->construct_editor != NULL ) {
-
-               if (view_object->priv->property_editor == NULL) {
-                       view_object->priv->property_editor =
-                               GL_VIEW_OBJECT_GET_CLASS(view_object)->construct_editor (view_object);
-               }
-               g_signal_connect (G_OBJECT (view_object->priv->property_editor),
-                                 "destroy",
-                                 G_CALLBACK (gtk_widget_destroyed),
-                                 &view_object->priv->property_editor);
-       
-               gtk_widget_show (view_object->priv->property_editor);
-
-       }
-
-
-       gl_debug (DEBUG_VIEW, "END");
-
-       return view_object->priv->property_editor;
-}
-
-
-/*****************************************************************************/
-/* Select object.                                                            */
-/*****************************************************************************/
-void
-gl_view_object_select (glViewObject *view_object)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       gl_view_select_object(view_object->priv->view, view_object);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Is object at (x,y)?                                                       */
-/*****************************************************************************/
-gboolean
-gl_view_object_at (glViewObject  *view_object,
-                   cairo_t       *cr,
-                   gdouble        x,
-                   gdouble        y)
-{
-        glLabelObject *object = view_object->priv->object;
-        gdouble        x0, y0;
-        cairo_matrix_t matrix;
-        gboolean       return_val = FALSE;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_val_if_fail (view_object && GL_IS_VIEW_OBJECT (view_object), FALSE);
-       g_return_val_if_fail (object && GL_IS_LABEL_OBJECT (object), FALSE);
-
-        gl_label_object_get_position (object, &x0, &y0);
-        gl_label_object_get_matrix (object, &matrix);
-
-        cairo_save (cr);
-        cairo_translate (cr, x0, y0);
-        cairo_transform (cr, &matrix);
-
-        cairo_device_to_user (cr, &x, &y);
-
-        if ( GL_VIEW_OBJECT_GET_CLASS(view_object)->object_at != NULL ) {
-
-                return_val = GL_VIEW_OBJECT_GET_CLASS(view_object)->object_at (view_object, cr, x, y);
-
-        }
-
-        cairo_restore (cr);
-
-        return return_val;
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-
-/*--------------------------------------------------------------------------*/
-/* Create handle path                                                       */
-/*--------------------------------------------------------------------------*/
-static void
-create_handle_path (cairo_t                *cr,
-                    glLabelObject          *object,
-                    gdouble                 scale,
-                    gdouble                 x_handle,
-                    gdouble                 y_handle)
-{
-        gl_debug (DEBUG_VIEW, "START");
-
-        cairo_rectangle (cr,
-                         x_handle - HANDLE_PIXELS/scale/2, y_handle - HANDLE_PIXELS/scale/2,
-                         HANDLE_PIXELS/scale, HANDLE_PIXELS/scale);
-
-        gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Draw object handles                                                       */
-/*****************************************************************************/
-void
-gl_view_object_draw_handles (glViewObject *view_object,
-                             cairo_t      *cr)
-{
-        glLabelObject *object = view_object->priv->object;
-        gdouble        x0, y0;
-        cairo_matrix_t matrix;
-        gdouble        scale;
-        gdouble        w, h;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view_object && GL_IS_VIEW_OBJECT (view_object));
-       g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
-
-        scale = view_object->priv->view->home_scale * view_object->priv->view->zoom;
-
-        gl_label_object_get_position (object, &x0, &y0);
-        gl_label_object_get_matrix (object, &matrix);
-
-        gl_label_object_get_size (GL_LABEL_OBJECT(object), &w, &h);
-
-        cairo_save (cr);
-
-        cairo_translate (cr, x0, y0);
-        cairo_transform (cr, &matrix);
-
-        switch (view_object->priv->handles_style)
-        {
-        case GL_VIEW_OBJECT_HANDLES_BOX:
-
-                /* North */
-                cairo_new_path (cr);
-                create_handle_path (cr, object, scale, w/2, 0);
-
-                /* North East */
-                cairo_new_sub_path (cr);
-                create_handle_path (cr, object, scale, w, 0);
-
-                /* East */
-                cairo_new_sub_path (cr);
-                create_handle_path (cr, object, scale, w, h/2);
-
-                /* South East */
-                cairo_new_sub_path (cr);
-                create_handle_path (cr, object, scale, w, h);
-
-                /* South */
-                cairo_new_sub_path (cr);
-                create_handle_path (cr, object, scale, w/2, h);
-
-                /* South West */
-                cairo_new_sub_path (cr);
-                create_handle_path (cr, object, scale, 0, h);
-
-                /* West */
-                cairo_new_sub_path (cr);
-                create_handle_path (cr, object, scale, 0, h/2);
-
-                /* North West */
-                cairo_new_sub_path (cr);
-                create_handle_path (cr, object, scale, 0, 0);
-
-                break;
-
-        case GL_VIEW_OBJECT_HANDLES_LINE:
-                /* P1 */
-                cairo_new_path (cr);
-                create_handle_path (cr, object, scale, 0, 0);
-
-                /* P2 */
-                cairo_new_sub_path (cr);
-                create_handle_path (cr, object, scale, w, h);
-
-                break;
-        }
-
-        cairo_set_source_rgba (cr, HANDLE_FILL_RGBA_ARGS);
-        cairo_fill_preserve (cr);
-                               
-        cairo_set_line_width (cr, HANDLE_OUTLINE_WIDTH_PIXELS/scale);
-        cairo_set_source_rgba (cr, HANDLE_OUTLINE_RGBA_ARGS);
-        cairo_stroke (cr);
-
-        cairo_restore (cr);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Is there an object handle at (x,y).                                       */
-/*****************************************************************************/
-glViewObjectHandle
-gl_view_object_handle_at (glViewObject *view_object,
-                          cairo_t      *cr,
-                          gdouble       x,
-                          gdouble       y)
-{
-        glLabelObject *object = view_object->priv->object;
-        gdouble        x0, y0;
-        cairo_matrix_t matrix;
-        gdouble        scale;
-        gdouble        w, h;
-        glViewObjectHandle handle = GL_VIEW_OBJECT_HANDLE_NONE;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_val_if_fail (view_object && GL_IS_VIEW_OBJECT (view_object), handle);
-       g_return_val_if_fail (object && GL_IS_LABEL_OBJECT (object), handle);
-
-        scale = view_object->priv->view->home_scale * view_object->priv->view->zoom;
-
-        gl_label_object_get_position (object, &x0, &y0);
-        gl_label_object_get_matrix (object, &matrix);
-
-        gl_label_object_get_size (GL_LABEL_OBJECT(object), &w, &h);
-
-        cairo_save (cr);
-
-        cairo_translate (cr, x0, y0);
-        cairo_transform (cr, &matrix);
-
-        cairo_device_to_user (cr, &x, &y);
-
-        switch (view_object->priv->handles_style)
-        {
-        case GL_VIEW_OBJECT_HANDLES_BOX:
-
-                /* South East */
-                create_handle_path (cr, object, scale, w, h);
-                if (cairo_in_fill (cr, x, y))   {handle = GL_VIEW_OBJECT_HANDLE_SE; break;}
-
-                /* South West */
-                create_handle_path (cr, object, scale, 0, h);
-                if (cairo_in_fill (cr, x, y))   {handle = GL_VIEW_OBJECT_HANDLE_SW; break;}
-
-                /* North East */
-                create_handle_path (cr, object, scale, w, 0);
-                if (cairo_in_fill (cr, x, y))   {handle = GL_VIEW_OBJECT_HANDLE_NE; break;}
-
-                /* North West */
-                create_handle_path (cr, object, scale, 0, 0);
-                if (cairo_in_fill (cr, x, y))   {handle = GL_VIEW_OBJECT_HANDLE_NW; break;}
-
-                /* East */
-                create_handle_path (cr, object, scale, w, h/2);
-                if (cairo_in_fill (cr, x, y))   {handle = GL_VIEW_OBJECT_HANDLE_E; break;}
-
-                /* South */
-                create_handle_path (cr, object, scale, w/2, h);
-                if (cairo_in_fill (cr, x, y))   {handle = GL_VIEW_OBJECT_HANDLE_S; break;}
-
-                /* West */
-                create_handle_path (cr, object, scale, 0, h/2);
-                if (cairo_in_fill (cr, x, y))   {handle = GL_VIEW_OBJECT_HANDLE_W; break;}
-
-                /* North */
-                create_handle_path (cr, object, scale, w/2, 0);
-                if (cairo_in_fill (cr, x, y))   {handle = GL_VIEW_OBJECT_HANDLE_N; break;}
-
-                break;
-
-        case GL_VIEW_OBJECT_HANDLES_LINE:
-                /* P2 */
-                create_handle_path (cr, object, scale, w, h);
-                if (cairo_in_fill (cr, x, y))   {handle = GL_VIEW_OBJECT_HANDLE_P2; break;}
-
-                /* P1 */
-                create_handle_path (cr, object, scale, 0, 0);
-                if (cairo_in_fill (cr, x, y))   {handle = GL_VIEW_OBJECT_HANDLE_P1; break;}
-
-                break;
-
-        }
-
-        cairo_restore (cr);
-
-        return handle;
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  Resize object.                                                  */
-/*---------------------------------------------------------------------------*/
-void
-gl_view_object_resize_event (glViewObject       *view_object,
-                             glViewObjectHandle  handle,
-                             gboolean            honor_aspect,
-                             cairo_t            *cr,
-                             gdouble             x,
-                             gdouble             y)
-{
-        glLabelObject *object;
-        cairo_matrix_t matrix;
-        gdouble        x0, y0, x1, y1, x2, y2;
-        gdouble        w, h;
-        gdouble        dx=0, dy=0;
-
-       gl_debug (DEBUG_VIEW, "x,y world = %g, %g", x, y);
-
-        object = view_object->priv->object;
-
-        /*
-         * Change to item relative coordinates
-         */
-        cairo_save (cr);
-        gl_label_object_get_position (object, &x0, &y0);
-        cairo_translate (cr, x0, y0);
-        gl_label_object_get_matrix (object, &matrix);
-        cairo_transform (cr, &matrix);
-
-        /*
-         * Initialize origin and 2 corners in object relative coordinates.
-         */
-        x0 = 0.0;
-        y0 = 0.0;
-
-        x1 = 0.0;
-        y1 = 0.0;
-
-        gl_label_object_get_size (object, &x2, &y2);
-
-       gl_debug (DEBUG_VIEW, "x0,y0 object = %g, %g", x0, y0);
-       gl_debug (DEBUG_VIEW, "x1,y1 object = %g, %g", x1, y1);
-       gl_debug (DEBUG_VIEW, "x2,y2 object = %g, %g", x2, y2);
-
-        /*
-         * Translate x,y into object relative coordinates.
-         */
-        cairo_device_to_user (cr, &x, &y);
-
-       gl_debug (DEBUG_VIEW, "x,y object = %g, %g", x, y);
-        
-        /*
-         * Get new size
-         */
-        switch (handle)
-        {
-
-        case GL_VIEW_OBJECT_HANDLE_NW:
-                w = MAX (x2 - x, 0);
-                h = MAX (y2 - y, 0);
-                break;
-
-        case GL_VIEW_OBJECT_HANDLE_N:
-                w = x2 - x1;
-                h = MAX (y2 - y, 0);
-                break;
-
-        case GL_VIEW_OBJECT_HANDLE_NE:
-                w = MAX (x - x1, 0);
-                h = MAX (y2 - y, 0);
-                break;
-
-        case GL_VIEW_OBJECT_HANDLE_E:
-                w = MAX (x - x1, 0);
-                h = y2 - y1;
-                break;
-
-        case GL_VIEW_OBJECT_HANDLE_SE:
-                w = MAX (x - x1, 0);
-                h = MAX (y - y1, 0);
-                break;
-
-        case GL_VIEW_OBJECT_HANDLE_S:
-                w = x2 - x1;
-                h = MAX (y - y1, 0);
-                break;
-
-        case GL_VIEW_OBJECT_HANDLE_SW:
-                w = MAX (x2 - x, 0);
-                h = MAX (y - y1, 0);
-                break;
-
-        case GL_VIEW_OBJECT_HANDLE_W:
-                w = MAX (x2 - x, 0);
-                h = y2 - y1;
-                break;
-        case GL_VIEW_OBJECT_HANDLE_P1:
-                x1 = x;
-                y1 = y;
-                dx = (x2 - x);
-                dy = (y2 - y);
-                x0 = x0 + x1;
-                y0 = y0 + y1;
-                break;
-
-        case GL_VIEW_OBJECT_HANDLE_P2:
-                dx = x - x1;
-                dy = y - y1;
-                x0 = x0 + x1;
-                y0 = y0 + y1;
-                break;
-
-        default:
-                g_print ("Invalid handle.\n");  /* Should not happen! */
-
-        }
-        if ( (handle != GL_VIEW_OBJECT_HANDLE_P1) && (handle != GL_VIEW_OBJECT_HANDLE_P2) )
-        {
-                if ( honor_aspect )
-                {
-                        gl_label_object_set_size_honor_aspect (object, w, h);
-                }
-                else
-                {
-                        gl_label_object_set_size (object, w, h);
-                }
-
-                /*
-                 * Query the new size in case it was constrained.
-                 */
-                gl_label_object_get_size (object, &w, &h);
-
-                /*
-                 * Get new position
-                 */
-                switch (handle)
-                {
-
-                case GL_VIEW_OBJECT_HANDLE_NW:
-                        x0 += x2 - w;
-                        y0 += y2 - h;
-                        break;
-
-                case GL_VIEW_OBJECT_HANDLE_N:
-                case GL_VIEW_OBJECT_HANDLE_NE:
-                        /* x unchanged */
-                        y0 += y2 - h;
-                        break;
-
-                case GL_VIEW_OBJECT_HANDLE_E:
-                case GL_VIEW_OBJECT_HANDLE_SE:
-                case GL_VIEW_OBJECT_HANDLE_S:
-                        /* unchanged */
-                        break;
-
-                case GL_VIEW_OBJECT_HANDLE_SW:
-                case GL_VIEW_OBJECT_HANDLE_W:
-                        x0 += x2 - w;
-                        /* y unchanged */
-                        break;
-
-                default:
-                        g_print ("Invalid handle.\n");  /* Should not happen! */
-                }
-        }
-        else
-        {
-                gl_label_object_set_size (object, dx, dy);
-        }
-
-        /*
-         * Put new origin back into world coordinates and set.
-         */
-        cairo_user_to_device (cr, &x0, &y0);
-        cairo_restore (cr);
-        cairo_device_to_user (cr, &x0, &y0);
-        gl_label_object_set_position (object, x0, y0);
-}
diff --git a/src/view-object.h b/src/view-object.h
deleted file mode 100644 (file)
index 2ae9f84..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  view_object.h:  GLabels canvas item wrapper widget
- *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-
-#ifndef __VIEW_OBJECT_H__
-#define __VIEW_OBJECT_H__
-
-#include <glib-object.h>
-#include "label-object.h"
-
-typedef enum {
-       GL_VIEW_OBJECT_HANDLES_BOX,
-       GL_VIEW_OBJECT_HANDLES_LINE,
-} glViewObjectHandlesStyle;
-
-typedef enum {
-        GL_VIEW_OBJECT_HANDLE_NONE = 0,
-       GL_VIEW_OBJECT_HANDLE_N,
-       GL_VIEW_OBJECT_HANDLE_E,
-       GL_VIEW_OBJECT_HANDLE_W,
-       GL_VIEW_OBJECT_HANDLE_S,
-       GL_VIEW_OBJECT_HANDLE_NW,
-       GL_VIEW_OBJECT_HANDLE_NE,
-       GL_VIEW_OBJECT_HANDLE_SE,
-       GL_VIEW_OBJECT_HANDLE_SW,
-       GL_VIEW_OBJECT_HANDLE_P1,
-       GL_VIEW_OBJECT_HANDLE_P2,
-} glViewObjectHandle;
-
-
-#define GL_TYPE_VIEW_OBJECT              (gl_view_object_get_type ())
-#define GL_VIEW_OBJECT(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_VIEW_OBJECT, glViewObject))
-#define GL_VIEW_OBJECT_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_VIEW_OBJECT, glViewObjectClass))
-#define GL_IS_VIEW_OBJECT(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_VIEW_OBJECT))
-#define GL_IS_VIEW_OBJECT_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_VIEW_OBJECT))
-#define GL_VIEW_OBJECT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), GL_TYPE_VIEW_OBJECT, glViewObjectClass))
-
-typedef struct _glViewObject          glViewObject;
-typedef struct _glViewObjectClass     glViewObjectClass;
-
-typedef struct _glViewObjectPrivate   glViewObjectPrivate;
-
-
-#include "view.h"
-
-#include "cairo.h"
-
-struct _glViewObject {
-       GObject               parent_object;
-
-       glViewObjectPrivate  *priv;
-};
-
-struct _glViewObjectClass {
-       GObjectClass          parent_class;
-
-       /*
-        * Methods
-        */
-
-       GtkWidget * (*construct_editor) (glViewObject *view_object);
-
-        gboolean    (*object_at)        (glViewObject *view_object,
-                                         cairo_t      *cr,
-                                         gdouble       x_device,
-                                         gdouble       y_device);
-};
-
-
-
-
-G_BEGIN_DECLS
-
-GType              gl_view_object_get_type          (void) G_GNUC_CONST;
-
-GObject           *gl_view_object_new               (void);
-
-
-void               gl_view_object_set_view          (glViewObject             *view_object,
-                                                     glView                   *view);
-
-void               gl_view_object_set_object        (glViewObject             *view_object,
-                                                     glLabelObject            *object,
-                                                     glViewObjectHandlesStyle  style);
-
-gboolean           gl_view_object_at                (glViewObject             *view_object,
-                                                     cairo_t                  *cr,
-                                                     gdouble                   x,
-                                                     gdouble                   y);
-
-void               gl_view_object_draw_handles      (glViewObject             *view_object,
-                                                     cairo_t                  *cr);
-
-glViewObjectHandle gl_view_object_handle_at         (glViewObject             *view_object,
-                                                     cairo_t                  *cr,
-                                                     gdouble                   x,
-                                                     gdouble                   y);
-
-glView            *gl_view_object_get_view          (glViewObject             *view_object);
-
-glLabelObject     *gl_view_object_get_object        (glViewObject             *view_object);
-
-GtkWidget         *gl_view_object_get_editor        (glViewObject             *view_object);
-
-void               gl_view_object_select            (glViewObject             *view_object);
-
-void               gl_view_object_resize_event      (glViewObject             *view_object,
-                                                     glViewObjectHandle        handle,
-                                                     gboolean                  honor_aspect,
-                                                     cairo_t                  *cr,
-                                                     gdouble                   x,
-                                                     gdouble                   y);
-
-
-G_END_DECLS
-
-#endif /* __VIEW_OBJECT_H__ */
index 527c307dabaabe8fd7859e5c5e852769c6cec3ff..4757991976f4a8c9b390ab0b0c76f5b2aa8b2ba2 100644 (file)
@@ -1,53 +1,48 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  view_text.c:  GLabels label text object view
+ *  view-text.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include <config.h>
 
 #include "view-text.h"
 
 #include <glib/gi18n.h>
-#include <glib/gmem.h>
+#include <gdk-pixbuf/gdk-pixdata.h>
 
-#include "color.h"
-#include "object-editor.h"
-#include "stock.h"
-
-#include "pixmaps/cursor_text.xbm"
-#include "pixmaps/cursor_text_mask.xbm"
+#include "label-text.h"
+#include "cursors/cursor_pixdata.h"
 
 #include "debug.h"
 
+
 /*========================================================*/
 /* Private macros and constants.                          */
 /*========================================================*/
 
+#define X_HOTSPOT 7
+#define Y_HOTSPOT 7
+
+
 /*========================================================*/
 /* Private types.                                         */
 /*========================================================*/
 
-struct _glViewTextPrivate {
-        int place_holder; /* Place holder for future private data. */
-};
 
 /*========================================================*/
 /* Private globals.                                       */
@@ -58,374 +53,6 @@ struct _glViewTextPrivate {
 /* Private function prototypes.                           */
 /*========================================================*/
 
-static void       gl_view_text_finalize             (GObject          *object);
-
-static GtkWidget *construct_properties_editor       (glViewObject     *view_object);
-
-static void       update_object_from_editor_cb      (glObjectEditor   *editor,
-                                                    glLabelObject    *object);
-
-static void       update_object_from_editor_size_cb (glObjectEditor   *editor,
-                                                     glLabelObject    *object);
-
-static void       update_editor_from_object_cb      (glLabelObject    *object,
-                                                    glObjectEditor   *editor);
-
-static void       update_editor_from_move_cb        (glLabelObject    *object,
-                                                    gdouble           dx,
-                                                    gdouble           dy,
-                                                    glObjectEditor   *editor);
-
-static gboolean   object_at                         (glViewObject     *view_object,
-                                                     cairo_t          *cr,
-                                                     gdouble           x,
-                                                     gdouble           y);
-
-
-
-\f
-/*****************************************************************************/
-/* Boilerplate object stuff.                                                 */
-/*****************************************************************************/
-G_DEFINE_TYPE (glViewText, gl_view_text, GL_TYPE_VIEW_OBJECT);
-
-
-static void
-gl_view_text_class_init (glViewTextClass *class)
-{
-       GObjectClass      *object_class      = G_OBJECT_CLASS (class);
-       glViewObjectClass *view_object_class = GL_VIEW_OBJECT_CLASS (class);
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       gl_view_text_parent_class = g_type_class_peek_parent (class);
-
-       object_class->finalize = gl_view_text_finalize;
-
-       view_object_class->construct_editor = construct_properties_editor;
-       view_object_class->object_at        = object_at;
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-static void
-gl_view_text_init (glViewText *view_text)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       view_text->priv = g_new0 (glViewTextPrivate, 1);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-static void
-gl_view_text_finalize (GObject *object)
-{
-        glViewText *view_text = GL_VIEW_TEXT (object);
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (object && GL_IS_VIEW_TEXT (object));
-
-        g_free (view_text->priv);
-
-       G_OBJECT_CLASS (gl_view_text_parent_class)->finalize (object);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* NEW text object view.                                                     */
-/*****************************************************************************/
-glViewObject *
-gl_view_text_new (glLabelText *object,
-                  glView      *view)
-{
-       glViewText         *view_text;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_val_if_fail (object && GL_IS_LABEL_TEXT (object), NULL);
-       g_return_val_if_fail (view && GL_IS_VIEW (view), NULL);
-       
-       view_text = g_object_new (gl_view_text_get_type(), NULL);
-
-       gl_view_object_set_object (GL_VIEW_OBJECT(view_text),
-                                  GL_LABEL_OBJECT(object),
-                                  GL_VIEW_OBJECT_HANDLES_BOX);
-       gl_view_object_set_view (GL_VIEW_OBJECT(view_text), view);
-
-       gl_debug (DEBUG_VIEW, "END");
-
-       return GL_VIEW_OBJECT (view_text);
-}
-
-/*****************************************************************************/
-/* Create a properties dialog for a text object.                             */
-/*****************************************************************************/
-static GtkWidget *
-construct_properties_editor (glViewObject *view_object)
-{
-       GtkWidget          *editor;
-       glViewText          *view_text = (glViewText *)view_object;
-       glLabelObject      *object;
-       GtkTextBuffer      *buffer;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       object = gl_view_object_get_object (GL_VIEW_OBJECT(view_text));
-
-       /* Build editor. */
-       editor = gl_object_editor_new (GL_STOCK_TEXT, _("Text object properties"),
-                                       object->parent,
-                                      GL_OBJECT_EDITOR_SHADOW_PAGE,
-                                      GL_OBJECT_EDITOR_POSITION_PAGE,
-                                      GL_OBJECT_EDITOR_SIZE_PAGE,
-                                      GL_OBJECT_EDITOR_TEXT_PAGE,
-                                      GL_OBJECT_EDITOR_EDIT_PAGE,
-                                      0);
-
-       buffer = gl_label_text_get_buffer (GL_LABEL_TEXT(object));
-       gl_object_editor_set_text_buffer (GL_OBJECT_EDITOR(editor), buffer);
-       
-       /* Update */
-       update_editor_from_object_cb (object, GL_OBJECT_EDITOR(editor));
-       update_editor_from_move_cb (object, 0, 0, GL_OBJECT_EDITOR(editor));
-
-       /* Connect signals. */
-       g_signal_connect (G_OBJECT (editor), "changed",
-                         G_CALLBACK(update_object_from_editor_cb), object);
-       g_signal_connect (G_OBJECT (editor), "size_changed",
-                         G_CALLBACK(update_object_from_editor_size_cb), object);
-       g_signal_connect (G_OBJECT (object), "changed",
-                         G_CALLBACK (update_editor_from_object_cb), editor);
-       g_signal_connect (G_OBJECT (object), "moved",
-                         G_CALLBACK (update_editor_from_move_cb), editor);
-
-       gl_debug (DEBUG_VIEW, "END");
-
-       return editor;
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  editor "changed" callback.                                      */
-/*---------------------------------------------------------------------------*/
-static void
-update_object_from_editor_cb (glObjectEditor *editor,
-                             glLabelObject  *object)
-{
-       gdouble            x, y;
-       gchar             *font_family;
-       gdouble            font_size;
-       PangoWeight        font_weight;
-       gboolean           font_italic_flag;
-       glColorNode       *color_node;
-       PangoAlignment     align;
-       gdouble            text_line_spacing;
-       gboolean           auto_shrink;
-       gboolean           shadow_state;
-       gdouble            shadow_x, shadow_y;
-       glColorNode       *shadow_color_node;
-       gdouble            shadow_opacity;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_signal_handlers_block_by_func (G_OBJECT(object),
-                                        update_editor_from_object_cb,
-                                        editor);
-       g_signal_handlers_block_by_func (G_OBJECT(object),
-                                        update_editor_from_move_cb,
-                                        editor);
-
-       gl_object_editor_get_position (editor, &x, &y);
-       font_family = gl_object_editor_get_font_family (editor);
-       font_size = gl_object_editor_get_font_size (editor);
-       font_weight = gl_object_editor_get_font_weight (editor);
-       font_italic_flag = gl_object_editor_get_font_italic_flag (editor);
-       color_node = gl_object_editor_get_text_color (editor);
-       align = gl_object_editor_get_text_alignment (editor);
-       text_line_spacing = gl_object_editor_get_text_line_spacing (editor);
-       auto_shrink = gl_object_editor_get_text_auto_shrink (editor);
-
-       gl_label_object_set_position (object, x, y);
-       gl_label_object_set_font_family (object, font_family);
-       gl_label_object_set_font_size (object, font_size);
-       gl_label_object_set_font_weight (object, font_weight);
-       gl_label_object_set_font_italic_flag (object, font_italic_flag);
-       gl_label_object_set_text_color (object, color_node);
-       gl_label_object_set_text_alignment (object, align);
-       gl_label_object_set_text_line_spacing (object, text_line_spacing);
-       gl_label_text_set_auto_shrink (GL_LABEL_TEXT (object), auto_shrink);
-
-       gl_color_node_free (&color_node);
-       g_free (font_family);
-
-       shadow_state = gl_object_editor_get_shadow_state (editor);
-       gl_label_object_set_shadow_state (object, shadow_state);
-
-       gl_object_editor_get_shadow_offset (editor, &shadow_x, &shadow_y);
-       gl_label_object_set_shadow_offset (object, shadow_x, shadow_y);
-
-       shadow_color_node = gl_object_editor_get_shadow_color (editor);
-       gl_label_object_set_shadow_color (object, shadow_color_node);
-       gl_color_node_free (&shadow_color_node);
-
-       shadow_opacity = gl_object_editor_get_shadow_opacity (editor);
-       gl_label_object_set_shadow_opacity (object, shadow_opacity);
-
-       g_signal_handlers_unblock_by_func (G_OBJECT(object),
-                                          update_editor_from_object_cb,
-                                          editor);
-       g_signal_handlers_unblock_by_func (G_OBJECT(object),
-                                          update_editor_from_move_cb,
-                                          editor);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  editor "changed" callback.                                      */
-/*---------------------------------------------------------------------------*/
-static void
-update_object_from_editor_size_cb (glObjectEditor *editor,
-                                  glLabelObject  *object)
-{
-       gdouble            w, h;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_signal_handlers_block_by_func (G_OBJECT(object),
-                                        update_editor_from_object_cb,
-                                        editor);
-       g_signal_handlers_block_by_func (G_OBJECT(object),
-                                        update_editor_from_move_cb,
-                                        editor);
-
-       gl_object_editor_get_size (editor, &w, &h);
-
-       gl_label_object_set_size (object, w, h);
-
-       g_signal_handlers_unblock_by_func (G_OBJECT(object),
-                                          update_editor_from_object_cb,
-                                          editor);
-       g_signal_handlers_unblock_by_func (G_OBJECT(object),
-                                          update_editor_from_move_cb,
-                                          editor);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE. label object "changed" callback.                                 */
-/*---------------------------------------------------------------------------*/
-static void
-update_editor_from_object_cb (glLabelObject  *object,
-                             glObjectEditor *editor)
-{
-       gdouble            w, h;
-       gchar             *font_family;
-       gdouble            font_size;
-       PangoWeight        font_weight;
-       gboolean           font_italic_flag;
-       glColorNode       *color_node;
-       PangoAlignment     align;
-       gdouble            text_line_spacing;
-       gboolean           auto_shrink;
-       gboolean           shadow_state;
-       gdouble            shadow_x, shadow_y;
-       glColorNode       *shadow_color_node;
-       gdouble            shadow_opacity;
-       glMerge           *merge;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       gl_label_object_get_size (object, &w, &h);
-       gl_object_editor_set_size (editor, w, h);
-       merge = gl_label_get_merge (GL_LABEL(object->parent));
-
-       font_family      = gl_label_object_get_font_family (object);
-       font_size        = gl_label_object_get_font_size (object);
-       font_weight      = gl_label_object_get_font_weight (object);
-       font_italic_flag = gl_label_object_get_font_italic_flag (object);
-       color_node       = gl_label_object_get_text_color (object);
-       align             = gl_label_object_get_text_alignment (object);
-       text_line_spacing = gl_label_object_get_text_line_spacing (object);
-       auto_shrink      = gl_label_text_get_auto_shrink (GL_LABEL_TEXT (object));
-
-       gl_object_editor_set_font_family (editor, font_family);
-       gl_object_editor_set_font_size (editor, font_size);
-       gl_object_editor_set_font_weight (editor, font_weight);
-       gl_object_editor_set_font_italic_flag (editor, font_italic_flag);
-       gl_object_editor_set_text_color (editor, (merge != NULL), color_node);
-       gl_object_editor_set_text_alignment (editor, align);
-       gl_object_editor_set_text_line_spacing (editor, text_line_spacing);
-       gl_object_editor_set_text_auto_shrink (editor, auto_shrink);
-
-       gl_color_node_free (&color_node);
-       g_free (font_family);
-
-       shadow_state = gl_label_object_get_shadow_state (object);
-       gl_object_editor_set_shadow_state (editor, shadow_state);
-
-       gl_label_object_get_shadow_offset (object, &shadow_x, &shadow_y);
-       gl_object_editor_set_shadow_offset (editor, shadow_x, shadow_y);
-
-       shadow_color_node = gl_label_object_get_shadow_color (object);
-       gl_object_editor_set_shadow_color (editor, (merge != NULL), shadow_color_node);
-       gl_color_node_free (&shadow_color_node);
-
-       shadow_opacity = gl_label_object_get_shadow_opacity (object);
-       gl_object_editor_set_shadow_opacity (editor, shadow_opacity);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE. label object "moved" callback.                                   */
-/*---------------------------------------------------------------------------*/
-static void
-update_editor_from_move_cb (glLabelObject    *object,
-                           gdouble           dx,
-                           gdouble           dy,
-                           glObjectEditor   *editor)
-{
-       gdouble            x, y;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       gl_label_object_get_position (object, &x, &y);
-       gl_object_editor_set_position (editor, x, y);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-
-/*****************************************************************************/
-/* Is object at (x,y)?                                                       */
-/*****************************************************************************/
-static gboolean
-object_at (glViewObject  *view_object,
-           cairo_t       *cr,
-           gdouble        x,
-           gdouble        y)
-{
-       glLabelObject    *object;
-        gdouble           w, h;
-
-        object = gl_view_object_get_object (view_object);
-
-        gl_label_object_get_size (object, &w, &h);
-
-        cairo_rectangle (cr, 0.0, 0.0, w, h);
-
-        if (cairo_in_fill (cr, x, y))
-        {
-                return TRUE;
-        }
-
-        return FALSE;
-}
-
 
 /*****************************************************************************/
 /* Return apropos cursor for create object mode.                             */
@@ -434,29 +61,20 @@ GdkCursor *
 gl_view_text_get_create_cursor (void)
 {
        GdkCursor       *cursor = NULL;
-       GdkPixmap       *pixmap_data, *pixmap_mask;
-       GdkColor         fg = { 0, 0, 0, 0 };
-       GdkColor         bg = { 0, 65535, 65535, 65535 };
+       GdkPixbuf       *pixbuf;
 
        gl_debug (DEBUG_VIEW, "START");
 
-        pixmap_data = gdk_bitmap_create_from_data (NULL,
-                                                   (gchar *)cursor_text_bits,
-                                                   cursor_text_width,
-                                                   cursor_text_height);
-        pixmap_mask = gdk_bitmap_create_from_data (NULL,
-                                                   (gchar *)cursor_text_mask_bits,
-                                                   cursor_text_mask_width,
-                                                   cursor_text_mask_height);
-        cursor = gdk_cursor_new_from_pixmap (pixmap_data, pixmap_mask, &fg,
-                                             &bg, cursor_text_x_hot,
-                                             cursor_text_y_hot);
+        pixbuf = gdk_pixbuf_from_pixdata (&cursor_text_pixdata, FALSE, NULL);
+        cursor = gdk_cursor_new_from_pixbuf (gdk_display_get_default (), pixbuf, X_HOTSPOT, Y_HOTSPOT);
+        g_object_unref (pixbuf);
 
        gl_debug (DEBUG_VIEW, "END");
 
        return cursor;
 }
 
+
 /*****************************************************************************/
 /* Object creation handler: button press event.                              */
 /*****************************************************************************/
@@ -467,40 +85,21 @@ gl_view_text_create_button_press_event   (glView *view,
 {
        GObject             *object;
        GList               *lines;
-       gchar               *family;
-       glColorNode         *color_node;
-
-        gl_view_unselect_all (view);
-
-        object = gl_label_text_new (view->label);
-        color_node = gl_color_node_new_default ();
-        gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y);
-        family = gl_view_get_default_font_family (view);
-        gl_label_object_set_font_family (GL_LABEL_OBJECT(object), family);
-        gl_label_object_set_font_size (GL_LABEL_OBJECT(object),
-                                       gl_view_get_default_font_size (view));
-        gl_label_object_set_font_weight (GL_LABEL_OBJECT(object),
-                                         gl_view_get_default_font_weight (view));
-        gl_label_object_set_font_italic_flag (GL_LABEL_OBJECT(object),
-                                              gl_view_get_default_font_italic_flag (view));
-                                                                 
-        color_node->color = gl_color_set_opacity (gl_view_get_default_text_color (view), 0.5);
-        gl_label_object_set_text_color (GL_LABEL_OBJECT(object),
-                                                       color_node);
-        gl_label_object_set_text_alignment (GL_LABEL_OBJECT(object),
-                                            gl_view_get_default_text_alignment (view));
-        gl_label_object_set_text_line_spacing (GL_LABEL_OBJECT(object), gl_view_get_default_text_line_spacing (view));
-                                                      
-        g_free (family);
+
+        gl_label_unselect_all (view->label);
+
+        object = gl_label_text_new (view->label, TRUE);
+
+        gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y, FALSE);
         lines = gl_text_node_lines_new_from_text (_("Text"));
-        gl_label_text_set_lines (GL_LABEL_TEXT(object), lines);
-        gl_color_node_free (&color_node);
+        gl_label_text_set_lines (GL_LABEL_TEXT(object), lines, FALSE);
 
         view->create_object = GL_LABEL_OBJECT (object);
         view->create_x0 = x;
         view->create_y0 = y;
 }
 
+
 /*****************************************************************************/
 /* Object creation handler: motion event.                                    */
 /*****************************************************************************/
@@ -509,9 +108,10 @@ gl_view_text_create_motion_event     (glView *view,
                                       gdouble x,
                                       gdouble y)
 {
-        gl_label_object_set_position (GL_LABEL_OBJECT(view->create_object), x, y);
+        gl_label_object_set_position (GL_LABEL_OBJECT(view->create_object), x, y, FALSE);
 }
 
+
 /*****************************************************************************/
 /* Object creation handler: button relesase event.                           */
 /*****************************************************************************/
@@ -520,12 +120,16 @@ gl_view_text_create_button_release_event (glView *view,
                                           gdouble x,
                                           gdouble y)
 {
-       glColorNode         *color_node;
-
-        color_node = gl_color_node_new_default ();
-        gl_label_object_set_position (GL_LABEL_OBJECT(view->create_object), x, y);
-        color_node->color = gl_view_get_default_text_color(view);
-        gl_label_object_set_text_color (GL_LABEL_OBJECT(view->create_object), color_node);
-        gl_color_node_free (&color_node);
+        gl_label_object_set_position (GL_LABEL_OBJECT(view->create_object), x, y, FALSE);
 }
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index bb28c90bb7474d85b66c9fefbafab4d0517310f6..3182a0961080a4d3efcd365e5f984fef158ad30e 100644 (file)
@@ -1,66 +1,34 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  view_text.h:  GLabels label text object view
+ *  view-text.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __VIEW_TEXT_H__
 #define __VIEW_TEXT_H__
 
-#include "view-object.h"
-#include "label-text.h"
-
-G_BEGIN_DECLS
-
-
-#define GL_TYPE_VIEW_TEXT            (gl_view_text_get_type ())
-#define GL_VIEW_TEXT(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_VIEW_TEXT, glViewText))
-#define GL_VIEW_TEXT_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_VIEW_TEXT, glViewTextClass))
-#define GL_IS_VIEW_TEXT(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_VIEW_TEXT))
-#define GL_IS_VIEW_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_VIEW_TEXT))
-
-typedef struct _glViewText          glViewText;
-typedef struct _glViewTextClass     glViewTextClass;
-
-typedef struct _glViewTextPrivate   glViewTextPrivate;
-
-struct _glViewText {
-       glViewObject       parent_object;
+#include "view.h"
 
-       glViewTextPrivate *priv;
-};
 
-struct _glViewTextClass {
-       glViewObjectClass  parent_class;
-};
-
-
-GType          gl_view_text_get_type (void) G_GNUC_CONST;
-
-glViewObject  *gl_view_text_new      (glLabelText *object,
-                                      glView      *view);
+G_BEGIN_DECLS
 
 
 /* cursor for creating text objects */
-GdkCursor *gl_view_text_get_create_cursor (void);
+GdkCursor *gl_view_text_get_create_cursor           (void);
 
 /* Object creation handlers. */
 void       gl_view_text_create_button_press_event   (glView *view,
@@ -79,3 +47,14 @@ void       gl_view_text_create_button_release_event (glView *view,
 G_END_DECLS
 
 #endif /* __VIEW_TEXT_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index ffe8c5d9c5a18753f8688c763fde056c8a57b84e..020713db46b37e602878c048eb3930319fe8a343 100644 (file)
@@ -1,36 +1,36 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  view.c:  GLabels View module
+ *  view.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 
 #include "view.h"
 
+#include "view-box.h"
+#include "view-ellipse.h"
+#include "view-line.h"
+#include "view-image.h"
+#include "view-text.h"
+#include "view-barcode.h"
+
 #include <glib/gi18n.h>
-#include <gtk/gtkscrolledwindow.h>
-#include <gtk/gtklayout.h>
-#include <gtk/gtkselection.h>
-#include <gtk/gtkinvisible.h>
+#include <gtk/gtk.h>
 #include <gdk/gdkkeysyms.h>
 #include <string.h>
 #include <math.h>
 #include "label.h"
 #include "cairo-label-path.h"
 #include "cairo-markup-path.h"
-#include "view-object.h"
-#include "view-box.h"
-#include "view-ellipse.h"
-#include "view-line.h"
-#include "view-image.h"
-#include "view-text.h"
-#include "view-barcode.h"
-#include "xml-label.h"
 #include "color.h"
 #include "prefs.h"
+#include "units-util.h"
 #include "marshal.h"
 
 #include "debug.h"
 
+
 /*==========================================================================*/
 /* Private macros and constants.                                            */
 /*==========================================================================*/
 
-#define BG_COLOR        GL_COLOR (192, 192, 192)
+#define BG_COLOR        GL_COLOR (204, 204, 204)
 
 #define PAPER_RGB_ARGS          1.0,   1.0,   1.0
+#define SHADOW_RGB_ARGS         0.2,   0.2,   0.2
 #define GRID_RGB_ARGS           0.753, 0.753, 0.753
 #define MARKUP_RGB_ARGS         0.94,  0.39,  0.39
-#define OUTLINE_RGB_ARGS        0.68,  0.85,  0.90
+#define OUTLINE_RGB_ARGS        0.0,   0.0,   0.0
 #define SELECT_LINE_RGBA_ARGS   0.0,   0.0,   1.0,   0.5
 #define SELECT_FILL_RGBA_ARGS   0.75,  0.75,  1.0,   0.5
 
 #define GRID_LINE_WIDTH_PIXELS    1.0
 #define MARKUP_LINE_WIDTH_PIXELS  1.0
-#define OUTLINE_WIDTH_PIXELS      3.0
+#define OUTLINE_WIDTH_PIXELS      1.0
 #define SELECT_LINE_WIDTH_PIXELS  3.0
 
 #define ZOOMTOFIT_PAD   16
 
+#define SHADOW_OFFSET_PIXELS (ZOOMTOFIT_PAD/4)
+
 #define POINTS_PER_MM    2.83464566929
 
+
 /*==========================================================================*/
 /* Private types.                                                           */
 /*==========================================================================*/
 
 enum {
-       SELECTION_CHANGED,
        CONTEXT_MENU_ACTIVATE,
        ZOOM_CHANGED,
        POINTER_MOVED,
@@ -95,9 +92,6 @@ enum {
 
 static guint signals[LAST_SIGNAL] = {0};
 
-/* "CLIPBOARD" selection */
-static GdkAtom clipboard_atom = GDK_NONE;
-
 static gdouble zooms[] = {
        8.00,
        6.00,
@@ -129,8 +123,10 @@ static void       gl_view_construct               (glView         *view,
 
 static gdouble    get_home_scale                  (glView         *view);
 
-static gboolean   expose_cb                       (glView         *view,
-                                                   GdkEventExpose *event);
+static void       prefs_changed_cb                (glView         *view);
+
+static gboolean   draw_cb                         (glView         *view,
+                                                   cairo_t        *cr);
 
 static void       realize_cb                      (glView         *view);
 
@@ -143,9 +139,6 @@ static void       label_changed_cb                (glView         *view);
 
 static void       label_resized_cb                (glView         *view);
 
-static void       label_object_added_cb           (glView         *view,
-                                                   glLabelObject  *object);
-
 static void       draw_layers                     (glView         *view,
                                                    cairo_t        *cr);
 
@@ -164,35 +157,10 @@ static void       draw_highlight_layer            (glView         *view,
 static void       draw_select_region_layer        (glView         *view,
                                                    cairo_t        *cr);
 
-static void       select_object_real              (glView         *view,
-                                                  glViewObject   *view_object);
-static void       unselect_object_real            (glView         *view,
-                                                  glViewObject   *view_object);
-
-static glViewObject *view_view_object_at          (glView         *view,
-                                                   cairo_t        *cr,
-                                                  gdouble         x,
-                                                   gdouble         y);
-
 static void       set_zoom_real                   (glView         *view,
                                                   gdouble         zoom,
                                                   gboolean        scale_to_fit_flag);
 
-static void       selection_clear_cb              (GtkWidget         *widget,
-                                                   GdkEventSelection *event,
-                                                   glView            *view);
-
-static void       selection_get_cb                (GtkWidget         *widget,
-                                                   GtkSelectionData  *selection_data,
-                                                   guint              info,
-                                                   guint              time,
-                                                   glView            *view);
-
-static void       selection_received_cb           (GtkWidget         *widget,
-                                                   GtkSelectionData  *selection_data,
-                                                   guint              time,
-                                                   glView            *view);
-
 static gboolean   focus_in_event_cb               (glView            *view,
                                                    GdkEventFocus     *event);
 
@@ -217,11 +185,16 @@ static gboolean   button_release_event_cb         (glView            *view,
 static gboolean   key_press_event_cb              (glView            *view,
                                                    GdkEventKey       *event);
 
-\f
+static void       resize_event                    (glView            *view,
+                                                   cairo_t           *cr,
+                                                   gdouble            x,
+                                                   gdouble            y);
+
 /****************************************************************************/
 /* Boilerplate Object stuff.                                                */
 /****************************************************************************/
-G_DEFINE_TYPE (glView, gl_view, GTK_TYPE_VBOX);
+G_DEFINE_TYPE (glView, gl_view, GTK_TYPE_VBOX)
+
 
 static void
 gl_view_class_init (glViewClass *class)
@@ -234,16 +207,6 @@ gl_view_class_init (glViewClass *class)
 
        object_class->finalize = gl_view_finalize;
 
-       signals[SELECTION_CHANGED] =
-               g_signal_new ("selection_changed",
-                             G_OBJECT_CLASS_TYPE (object_class),
-                             G_SIGNAL_RUN_LAST,
-                             G_STRUCT_OFFSET (glViewClass, selection_changed),
-                             NULL, NULL,
-                             gl_marshal_VOID__VOID,
-                             G_TYPE_NONE,
-                             0);
-
        signals[CONTEXT_MENU_ACTIVATE] =
                g_signal_new ("context_menu_activate",
                              G_OBJECT_CLASS_TYPE (object_class),
@@ -297,22 +260,23 @@ gl_view_class_init (glViewClass *class)
        gl_debug (DEBUG_VIEW, "END");
 }
 
+
 static void
 gl_view_init (glView *view)
 {
+        lglUnits   units;
        GtkWidget *wscroll;
        GdkColor  *bg_color;
 
        gl_debug (DEBUG_VIEW, "START");
 
+        units = gl_prefs_model_get_units (gl_prefs);
+
        view->label                = NULL;
        view->grid_visible         = TRUE;
-       view->grid_spacing         = 9;
+       view->grid_spacing         = gl_units_util_get_grid_size (units);
        view->markup_visible       = TRUE;
-       view->default_font_family  = NULL;
        view->mode                 = GL_VIEW_MODE_ARROW;
-       view->object_list          = NULL;
-       view->selected_object_list = NULL;
        view->zoom                 = 1.0;
        view->home_scale           = get_home_scale (view);
 
@@ -331,7 +295,7 @@ gl_view_init (glView *view)
        gtk_widget_modify_bg (GTK_WIDGET (view->canvas), GTK_STATE_NORMAL, bg_color);
        g_free (bg_color);
 
-        GTK_WIDGET_SET_FLAGS (GTK_WIDGET (view->canvas), GTK_CAN_FOCUS);
+        gtk_widget_set_can_focus (GTK_WIDGET (view->canvas), TRUE);
 
         gtk_widget_add_events (GTK_WIDGET (view->canvas),
                                (GDK_FOCUS_CHANGE_MASK   |
@@ -342,8 +306,10 @@ gl_view_init (glView *view)
                                 GDK_BUTTON_RELEASE_MASK |
                                 GDK_KEY_PRESS_MASK));
 
-       g_signal_connect_swapped (G_OBJECT (view->canvas), "expose-event",
-                                 G_CALLBACK (expose_cb), view);
+        g_signal_connect_swapped (G_OBJECT (gl_prefs), "changed",
+                                  G_CALLBACK (prefs_changed_cb), view);
+       g_signal_connect_swapped (G_OBJECT (view->canvas), "draw",
+                                 G_CALLBACK (draw_cb), view);
        g_signal_connect_swapped (G_OBJECT (view->canvas), "realize",
                                  G_CALLBACK (realize_cb), view);
        g_signal_connect_swapped (G_OBJECT (view->canvas), "size-allocate",
@@ -367,43 +333,10 @@ gl_view_init (glView *view)
        g_signal_connect_swapped (G_OBJECT (view->canvas), "key-press-event",
                                  G_CALLBACK (key_press_event_cb), view);
 
-        /*
-         * Clipboard
-         */
-       view->have_selection       = FALSE;
-       view->selection_data       = NULL;
-       view->invisible            = gtk_invisible_new ();
-       if (!clipboard_atom) {
-               clipboard_atom = gdk_atom_intern ("GLABELS_CLIPBOARD", FALSE);
-       }
-       gtk_selection_add_target (view->invisible,
-                                 clipboard_atom, GDK_SELECTION_TYPE_STRING, 1);
-       g_signal_connect (G_OBJECT (view->invisible),
-                         "selection_clear_event",
-                         G_CALLBACK (selection_clear_cb), view);
-       g_signal_connect (G_OBJECT (view->invisible), "selection_get",
-                         G_CALLBACK (selection_get_cb), view);
-       g_signal_connect (G_OBJECT (view->invisible),
-                         "selection_received",
-                         G_CALLBACK (selection_received_cb), view);
-
-        /*
-         * Defaults from preferences
-         */
-       gl_view_set_default_font_family       (view, gl_prefs->default_font_family);
-       gl_view_set_default_font_size         (view, gl_prefs->default_font_size);
-       gl_view_set_default_font_weight       (view, gl_prefs->default_font_weight);
-       gl_view_set_default_font_italic_flag  (view, gl_prefs->default_font_italic_flag);
-       gl_view_set_default_text_color        (view, gl_prefs->default_text_color);
-       gl_view_set_default_text_alignment    (view, gl_prefs->default_text_alignment);
-       gl_view_set_default_text_line_spacing (view, gl_prefs->default_text_line_spacing);
-       gl_view_set_default_line_width        (view, gl_prefs->default_line_width);
-       gl_view_set_default_line_color        (view, gl_prefs->default_line_color);
-       gl_view_set_default_fill_color        (view, gl_prefs->default_fill_color);
-
        gl_debug (DEBUG_VIEW, "END");
 }
 
+
 static void
 gl_view_finalize (GObject *object)
 {
@@ -412,17 +345,17 @@ gl_view_finalize (GObject *object)
        gl_debug (DEBUG_VIEW, "START");
 
        g_return_if_fail (object != NULL);
-       g_return_if_fail (GL_IS_VIEW (object));
+       g_return_if_fail (GL_IS_VIEW (view));
 
-       if (view->default_font_family) {
-               g_free (view->default_font_family);
-       }
+        g_signal_handlers_disconnect_by_func (G_OBJECT (gl_prefs),
+                                              G_CALLBACK (prefs_changed_cb), view);
 
        G_OBJECT_CLASS (gl_view_parent_class)->finalize (object);
 
        gl_debug (DEBUG_VIEW, "END");
 }
 
+
 /****************************************************************************/
 /* NEW view object.                                                         */
 /****************************************************************************/
@@ -444,6 +377,7 @@ gl_view_new (glLabel *label)
        return GTK_WIDGET (view);
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Construct composite widget.                                     */
 /*---------------------------------------------------------------------------*/
@@ -451,47 +385,23 @@ static void
 gl_view_construct (glView  *view,
                    glLabel *label)
 {
-        GList            *p_obj;
-        glLabelObject    *object;
-
        gl_debug (DEBUG_VIEW, "START");
 
        g_return_if_fail (GL_IS_VIEW (view));
 
        view->label = label;
 
-        for (p_obj = label->objects; p_obj != NULL; p_obj = p_obj->next)
-        {
-                object = GL_LABEL_OBJECT (p_obj->data);
-
-                if (GL_IS_LABEL_BOX (object)) {
-                        gl_view_box_new (GL_LABEL_BOX(object), view);
-                } else if (GL_IS_LABEL_ELLIPSE (object)) {
-                        gl_view_ellipse_new (GL_LABEL_ELLIPSE(object), view);
-                } else if (GL_IS_LABEL_LINE (object)) {
-                        gl_view_line_new (GL_LABEL_LINE(object), view);
-                } else if (GL_IS_LABEL_IMAGE (object)) {
-                        gl_view_image_new (GL_LABEL_IMAGE(object), view);
-                } else if (GL_IS_LABEL_TEXT (object)) {
-                        gl_view_text_new (GL_LABEL_TEXT(object), view);
-                } else if (GL_IS_LABEL_BARCODE (object)) {
-                        gl_view_barcode_new (GL_LABEL_BARCODE(object), view);
-                } else {
-                        /* Should not happen! */
-                        g_message ("Invalid label object type.");
-                }
-        }
-
+       g_signal_connect_swapped (G_OBJECT (view->label), "selection_changed",
+                                  G_CALLBACK (label_changed_cb), view);
        g_signal_connect_swapped (G_OBJECT (view->label), "changed",
                                   G_CALLBACK (label_changed_cb), view);
        g_signal_connect_swapped (G_OBJECT (view->label), "size_changed",
                                   G_CALLBACK (label_resized_cb), view);
-       g_signal_connect_swapped (G_OBJECT (view->label), "object_added",
-                                  G_CALLBACK (label_object_added_cb), view);
 
        gl_debug (DEBUG_VIEW, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIAVTE.  Calculate 1:1 scale for screen.                                 */
 /*---------------------------------------------------------------------------*/
@@ -543,34 +453,55 @@ get_home_scale (glView *view)
        return scale;
 }
 
+
+/*---------------------------------------------------------------------------*/
+/* Prefs "changed" callback.                                                 */
+/*---------------------------------------------------------------------------*/
+static void
+prefs_changed_cb (glView         *view)
+{
+        lglUnits   units;
+
+        units = gl_prefs_model_get_units (gl_prefs);
+       view->grid_spacing = gl_units_util_get_grid_size (units);
+
+        gl_view_update (view);
+}
+
+
 /*---------------------------------------------------------------------------*/
 /* Schedule canvas update.                                                   */
 /*---------------------------------------------------------------------------*/
 void
 gl_view_update (glView  *view)
 {
-       GtkWidget *widget;
-       GdkRegion *region;
-       
+        GdkWindow     *window;
+        GtkAllocation  allocation;
+
        gl_debug (DEBUG_VIEW, "START");
 
-       widget = GTK_WIDGET (view->canvas);
+        window = gtk_widget_get_window (GTK_WIDGET (view->canvas));
+        
+       if (window)
+        {
 
-       if (!widget->window) return;
+                if ( !view->update_scheduled_flag )
+                {
+                        view->update_scheduled_flag = TRUE;
 
-        if ( !view->update_scheduled_flag )
-        {
-                view->update_scheduled_flag = TRUE;
+                        allocation.x      = 0;
+                        allocation.y      = 0;
+                        allocation.width  = gtk_widget_get_allocated_width (view->canvas);
+                        allocation.height = gtk_widget_get_allocated_height (view->canvas);
+                        gdk_window_invalidate_rect (window, &allocation, TRUE);
+                }
 
-                region = gdk_drawable_get_clip_region (widget->window);
-                /* redraw the cairo canvas completely by exposing it */
-                gdk_window_invalidate_region (widget->window, region, TRUE);
-                gdk_region_destroy (region);
         }
 
        gl_debug (DEBUG_VIEW, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* Schedule canvas region update.                                            */
 /*---------------------------------------------------------------------------*/
@@ -579,15 +510,15 @@ gl_view_update_region (glView        *view,
                        cairo_t       *cr,
                        glLabelRegion *region)
 {
-       GtkWidget    *widget;
+        GdkWindow    *window;
        GdkRectangle  rect;
         gdouble       x, y, w, h;
 
        gl_debug (DEBUG_VIEW, "START");
 
-       widget = GTK_WIDGET (view->canvas);
+       window = gtk_widget_get_window (GTK_WIDGET (view->canvas));
 
-       if (!widget->window) return;
+       if (!window) return;
 
         x = MIN (region->x1, region->x2);
         y = MIN (region->y1, region->y2);
@@ -602,41 +533,39 @@ gl_view_update_region (glView        *view,
         rect.width  = w + 6;
         rect.height = h + 6;
 
-        gdk_window_invalidate_rect (widget->window, &rect, TRUE);
+        gdk_window_invalidate_rect (window, &rect, TRUE);
 
        gl_debug (DEBUG_VIEW, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Expose handler.                                                 */
 /*---------------------------------------------------------------------------*/
 static gboolean
-expose_cb (glView         *view,
-           GdkEventExpose *event)
+draw_cb (glView         *view,
+         cairo_t        *cr)
 {
-       cairo_t *cr;
+        GdkWindow *bin_window;
+        cairo_t   *bin_cr;
 
        gl_debug (DEBUG_VIEW, "START");
 
         view->update_scheduled_flag = FALSE;
 
-       /* get a cairo_t */
-       cr = gdk_cairo_create (GTK_LAYOUT (view->canvas)->bin_window);
+        bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (view->canvas));
+        bin_cr = gdk_cairo_create (bin_window);
 
-       cairo_rectangle (cr,
-                       event->area.x, event->area.y,
-                       event->area.width, event->area.height);
-       cairo_clip (cr);
-       
-       draw_layers (view, cr);
+       draw_layers (view, bin_cr);
 
-       cairo_destroy (cr);
+        cairo_destroy (bin_cr);
 
        gl_debug (DEBUG_VIEW, "END");
 
        return FALSE;
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Realize handler.                                                */
 /*---------------------------------------------------------------------------*/
@@ -647,9 +576,15 @@ realize_cb (glView  *view)
 
        gl_debug (DEBUG_VIEW, "START");
 
+       if (view->zoom_to_fit_flag) {
+               /* Maintain best fit zoom */
+               gl_view_zoom_to_fit (view);
+       }
+
        gl_debug (DEBUG_VIEW, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE. Size allocation changed callback.                                */
 /*---------------------------------------------------------------------------*/
@@ -657,16 +592,22 @@ static void
 size_allocate_cb (glView         *view,
                   GtkAllocation  *allocation)
 {
+        GtkAdjustment *hadjustment;
+        GtkAdjustment *vadjustment;
+
        gl_debug (DEBUG_VIEW, "START");
 
-        GTK_LAYOUT (view->canvas)->hadjustment->page_size = allocation->width;
-        GTK_LAYOUT (view->canvas)->hadjustment->page_increment = allocation->width / 2;
-        GTK_LAYOUT (view->canvas)->vadjustment->page_size = allocation->height;
-        GTK_LAYOUT (view->canvas)->vadjustment->page_increment = allocation->height / 2;
+        hadjustment = gtk_layout_get_hadjustment(GTK_LAYOUT (view->canvas));
+        vadjustment = gtk_layout_get_vadjustment(GTK_LAYOUT (view->canvas));
 
-        g_signal_emit_by_name (GTK_LAYOUT (view->canvas)->hadjustment, "changed");
-        g_signal_emit_by_name (GTK_LAYOUT (view->canvas)->vadjustment, "changed");
+        gtk_adjustment_set_page_size( hadjustment, allocation->width);
+        gtk_adjustment_set_page_increment( hadjustment, allocation->width / 2);
+
+        gtk_adjustment_set_page_size( vadjustment, allocation->height);
+        gtk_adjustment_set_page_increment( vadjustment, allocation->height / 2);
+
+        g_signal_emit_by_name (hadjustment, "changed");
+        g_signal_emit_by_name (vadjustment, "changed");
 
        if (view->zoom_to_fit_flag) {
                /* Maintain best fit zoom */
@@ -677,7 +618,6 @@ size_allocate_cb (glView         *view,
 }
 
 
-
 /*---------------------------------------------------------------------------*/
 /* PRIVATE. Screen changed callback.                                         */
 /*---------------------------------------------------------------------------*/
@@ -699,6 +639,7 @@ screen_changed_cb (glView *view)
        gl_debug (DEBUG_VIEW, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Handle label changed event.                                     */
 /*---------------------------------------------------------------------------*/
@@ -721,12 +662,18 @@ label_changed_cb (glView  *view)
 static void
 label_resized_cb (glView  *view)
 {
+        GtkAdjustment *hadjustment;
+        GtkAdjustment *vadjustment;
+
        g_return_if_fail (view && GL_IS_VIEW (view));
 
        gl_debug (DEBUG_VIEW, "START");
 
-        g_signal_emit_by_name (GTK_LAYOUT (view->canvas)->hadjustment, "changed");
-        g_signal_emit_by_name (GTK_LAYOUT (view->canvas)->vadjustment, "changed");
+        hadjustment = gtk_layout_get_hadjustment(GTK_LAYOUT (view->canvas));
+        vadjustment = gtk_layout_get_vadjustment(GTK_LAYOUT (view->canvas));
+
+        g_signal_emit_by_name (hadjustment, "changed");
+        g_signal_emit_by_name (vadjustment, "changed");
 
         gl_view_update (view);
 
@@ -734,39 +681,6 @@ label_resized_cb (glView  *view)
 }
 
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  Handle new label object.                                        */
-/*---------------------------------------------------------------------------*/
-static void
-label_object_added_cb (glView         *view,
-                       glLabelObject  *object)
-{
-        glViewObject *view_object;
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-       g_return_if_fail (object && GL_IS_LABEL_OBJECT (object));
-
-        if (GL_IS_LABEL_BOX (object)) {
-                view_object = gl_view_box_new (GL_LABEL_BOX(object), view);
-        } else if (GL_IS_LABEL_ELLIPSE (object)) {
-                view_object = gl_view_ellipse_new (GL_LABEL_ELLIPSE(object), view);
-        } else if (GL_IS_LABEL_LINE (object)) {
-                view_object = gl_view_line_new (GL_LABEL_LINE(object), view);
-        } else if (GL_IS_LABEL_IMAGE (object)) {
-                view_object = gl_view_image_new (GL_LABEL_IMAGE(object), view);
-        } else if (GL_IS_LABEL_TEXT (object)) {
-                view_object = gl_view_text_new (GL_LABEL_TEXT(object), view);
-        } else if (GL_IS_LABEL_BARCODE (object)) {
-                view_object = gl_view_barcode_new (GL_LABEL_BARCODE(object), view);
-        } else {
-                /* Should not happen! */
-                view_object = NULL;
-                g_message ("Invalid label object type.");
-        }
-
-        gl_view_select_object (view, view_object);
-}
-
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Create, draw and order layers.                                  */
 /*---------------------------------------------------------------------------*/
@@ -774,6 +688,7 @@ static void
 draw_layers (glView  *view,
              cairo_t *cr)
 {
+        GdkWindow                 *bin_window;
        gdouble                    scale;
        gdouble                    w, h;
         gint                       canvas_w, canvas_h;
@@ -783,6 +698,8 @@ draw_layers (glView  *view,
 
        gl_debug (DEBUG_VIEW, "START");
 
+        bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (view->canvas));
+
         scale = view->zoom * view->home_scale;
 
         gl_label_get_size (view->label, &w, &h);
@@ -790,7 +707,8 @@ draw_layers (glView  *view,
         scale = view->home_scale * view->zoom;
         gtk_layout_set_size (GTK_LAYOUT (view->canvas), w*scale+8, h*scale+8);
 
-        gdk_drawable_get_size (GTK_LAYOUT (view->canvas)->bin_window, &canvas_w, &canvas_h);
+        canvas_w = gdk_window_get_width (bin_window);
+        canvas_h = gdk_window_get_height (bin_window);
 
         view->x0 = (canvas_w/scale - w) / 2.0;
         view->y0 = (canvas_h/scale - h) / 2.0;
@@ -816,6 +734,7 @@ draw_layers (glView  *view,
 
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Draw background                                                 */
 /*---------------------------------------------------------------------------*/
@@ -823,16 +742,33 @@ static void
 draw_bg_layer (glView  *view,
                cairo_t *cr)
 {
+        gdouble            scale;
+        const lglTemplate *template;
+        gboolean           rotate_flag;
+
        g_return_if_fail (view && GL_IS_VIEW (view));
        g_return_if_fail (view->label && GL_IS_LABEL (view->label));
 
-        gl_cairo_label_path (cr, view->label->template, view->label->rotate_flag, FALSE);
+        scale = view->home_scale * view->zoom;
+
+        template    = gl_label_get_template (view->label);
+        rotate_flag = gl_label_get_rotate_flag (view->label);
+
+        cairo_save (cr);
+        cairo_translate (cr, SHADOW_OFFSET_PIXELS/scale, SHADOW_OFFSET_PIXELS/scale);
+        gl_cairo_label_path (cr, template, rotate_flag, FALSE);
+        cairo_set_source_rgb (cr, SHADOW_RGB_ARGS);
+        cairo_set_fill_rule (cr, CAIRO_FILL_RULE_EVEN_ODD);
+        cairo_fill (cr);
+        cairo_restore (cr);
 
+        gl_cairo_label_path (cr, template, rotate_flag, FALSE);
         cairo_set_source_rgb (cr, PAPER_RGB_ARGS);
         cairo_set_fill_rule (cr, CAIRO_FILL_RULE_EVEN_ODD);
         cairo_fill (cr);
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Draw grid lines.                                                */
 /*---------------------------------------------------------------------------*/
@@ -840,10 +776,12 @@ static void
 draw_grid_layer (glView  *view,
                  cairo_t *cr)
 {
+        const lglTemplate         *template;
+        gboolean                   rotate_flag;
+       const lglTemplateFrame    *frame;
        gdouble                    w, h;
        gdouble                    x, y;
        gdouble                    x0, y0;
-       const lglTemplateFrame    *frame;
 
        gl_debug (DEBUG_VIEW, "START");
 
@@ -853,13 +791,15 @@ draw_grid_layer (glView  *view,
         if (view->grid_visible)
         {
 
-                frame = (lglTemplateFrame *)view->label->template->frames->data;
+                template    = gl_label_get_template (view->label);
+                rotate_flag = gl_label_get_rotate_flag (view->label);
+                frame       = (lglTemplateFrame *)template->frames->data;
 
                 gl_label_get_size (view->label, &w, &h);
        
                 if (frame->shape == LGL_TEMPLATE_FRAME_SHAPE_RECT) {
-                        x0 = 0.0;
-                        y0 = 0.0;
+                        x0 = view->grid_spacing;
+                        y0 = view->grid_spacing;
                 } else {
                         /* round labels, adjust grid to line up with center of label. */
                         x0 = fmod (w/2.0, view->grid_spacing);
@@ -869,18 +809,21 @@ draw_grid_layer (glView  *view,
 
                 cairo_save (cr);
 
+                gl_cairo_label_path (cr, template, rotate_flag, FALSE);
+                cairo_clip (cr);
+
                 cairo_set_antialias (cr, CAIRO_ANTIALIAS_NONE);
                 cairo_set_line_width (cr, GRID_LINE_WIDTH_PIXELS/(view->home_scale * view->zoom));
                 cairo_set_source_rgb (cr, GRID_RGB_ARGS);
 
-                for ( x=x0+view->grid_spacing; x < w; x += view->grid_spacing )
+                for ( x=x0; x < w; x += view->grid_spacing )
                 {
                         cairo_move_to (cr, x, 0);
                         cairo_line_to (cr, x, h);
                         cairo_stroke (cr);
                 }
 
-                for ( y=y0+view->grid_spacing; y < h; y += view->grid_spacing )
+                for ( y=y0; y < h; y += view->grid_spacing )
                 {
                         cairo_move_to (cr, 0, y);
                         cairo_line_to (cr, w, y);
@@ -894,6 +837,7 @@ draw_grid_layer (glView  *view,
        gl_debug (DEBUG_VIEW, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Draw markup layer.                                              */
 /*---------------------------------------------------------------------------*/
@@ -901,8 +845,9 @@ static void
 draw_markup_layer (glView  *view,
                    cairo_t *cr)
 {
-       glLabel                   *label;
+       const lglTemplate         *template;
        const lglTemplateFrame    *frame;
+        gboolean                   rotate_flag;
        GList                     *p;
        lglTemplateMarkup         *markup;
         gdouble                    width, height;
@@ -913,15 +858,16 @@ draw_markup_layer (glView  *view,
         if (view->markup_visible)
         {
 
-                label      = view->label;
-                frame = (lglTemplateFrame *)view->label->template->frames->data;
+                template    = gl_label_get_template (view->label);
+                frame       = (lglTemplateFrame *)template->frames->data;
+                rotate_flag = gl_label_get_rotate_flag (view->label);
 
                 cairo_save (cr);
 
-                if (label->rotate_flag)
+                if (rotate_flag)
                 {
                         lgl_template_frame_get_size (frame, &width, &height);
-                        cairo_rotate (cr, -M_PI/2.0);
+                        cairo_rotate (cr, -G_PI/2.0);
                         cairo_translate (cr, -width, 0.0);
                 }
 
@@ -932,7 +878,7 @@ draw_markup_layer (glView  *view,
                 {
                         markup = (lglTemplateMarkup *)p->data;
 
-                        gl_cairo_markup_path (cr, markup, label);
+                        gl_cairo_markup_path (cr, markup, view->label);
 
                         cairo_stroke (cr);
                 }
@@ -942,6 +888,7 @@ draw_markup_layer (glView  *view,
 
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Draw objects layer.                                             */
 /*---------------------------------------------------------------------------*/
@@ -952,6 +899,7 @@ draw_objects_layer (glView  *view,
         gl_label_draw (view->label, cr, TRUE, NULL);
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Draw foreground                                                 */
 /*---------------------------------------------------------------------------*/
@@ -959,16 +907,23 @@ static void
 draw_fg_layer (glView  *view,
                cairo_t *cr)
 {
+        const lglTemplate *template;
+        gboolean           rotate_flag;
+
        g_return_if_fail (view && GL_IS_VIEW (view));
        g_return_if_fail (view->label && GL_IS_LABEL (view->label));
 
-        gl_cairo_label_path (cr, view->label->template, view->label->rotate_flag, FALSE);
+        template    = gl_label_get_template (view->label);
+        rotate_flag = gl_label_get_rotate_flag (view->label);
+
+        gl_cairo_label_path (cr, template, rotate_flag, FALSE);
 
         cairo_set_line_width (cr, OUTLINE_WIDTH_PIXELS/(view->home_scale * view->zoom));
         cairo_set_source_rgb (cr, OUTLINE_RGB_ARGS);
         cairo_stroke (cr);
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Create highlight layer.                                         */
 /*---------------------------------------------------------------------------*/
@@ -976,8 +931,9 @@ static void
 draw_highlight_layer (glView  *view,
                       cairo_t *cr)
 {
+       GList            *selection_list;
        GList            *p_obj;
-       glViewObject     *view_object;
+       glLabelObject    *object;
 
        g_return_if_fail (view && GL_IS_VIEW (view));
 
@@ -985,16 +941,21 @@ draw_highlight_layer (glView  *view,
 
         cairo_set_antialias (cr, CAIRO_ANTIALIAS_NONE);
 
-       for (p_obj = view->selected_object_list; p_obj != NULL; p_obj = p_obj->next)
+        selection_list = gl_label_get_selection_list (view->label);
+
+       for (p_obj = selection_list; p_obj != NULL; p_obj = p_obj->next)
         {
-               view_object = GL_VIEW_OBJECT (p_obj->data);
+               object = GL_LABEL_OBJECT (p_obj->data);
 
-                gl_view_object_draw_handles (view_object, cr);
+                gl_label_object_draw_handles (object, cr);
        }
 
+        g_list_free (selection_list);
+
         cairo_restore (cr);
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Draw select region layer.                                       */
 /*---------------------------------------------------------------------------*/
@@ -1031,6 +992,7 @@ draw_select_region_layer (glView  *view,
         }
 }
 
+
 /*****************************************************************************/
 /* Show grid.                                                                */
 /*****************************************************************************/
@@ -1043,6 +1005,7 @@ gl_view_show_grid (glView *view)
         gl_view_update (view);
 }
 
+
 /*****************************************************************************/
 /* Hide grid.                                                                */
 /*****************************************************************************/
@@ -1055,18 +1018,6 @@ gl_view_hide_grid (glView *view)
         gl_view_update (view);
 }
 
-/*****************************************************************************/
-/* Set grid spacing.                                                         */
-/*****************************************************************************/
-void
-gl_view_set_grid_spacing (glView  *view,
-                         gdouble  spacing)
-{
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       view->grid_spacing = spacing;
-        gl_view_update (view);
-}
 
 /*****************************************************************************/
 /* Show markup.                                                              */
@@ -1080,6 +1031,7 @@ gl_view_show_markup (glView *view)
         gl_view_update (view);
 }
 
+
 /*****************************************************************************/
 /* Hide markup.                                                              */
 /*****************************************************************************/
@@ -1092,20 +1044,24 @@ gl_view_hide_markup (glView *view)
         gl_view_update (view);
 }
 
+
 /*****************************************************************************/
 /* Set arrow mode.                                                           */
 /*****************************************************************************/
 void
 gl_view_arrow_mode (glView *view)
 {
+        GdkWindow *window;
        GdkCursor *cursor;
 
        gl_debug (DEBUG_VIEW, "START");
 
        g_return_if_fail (view && GL_IS_VIEW (view));
 
+        window = gtk_widget_get_window (view->canvas);
+
         cursor = gdk_cursor_new (GDK_LEFT_PTR);
-       gdk_window_set_cursor (view->canvas->window, cursor);
+       gdk_window_set_cursor (window, cursor);
         gdk_cursor_unref (cursor);
 
        view->mode = GL_VIEW_MODE_ARROW;
@@ -1114,6 +1070,7 @@ gl_view_arrow_mode (glView *view)
        gl_debug (DEBUG_VIEW, "END");
 }
 
+
 /*****************************************************************************/
 /* Set create text object mode.                                              */
 /*****************************************************************************/
@@ -1121,38 +1078,41 @@ void
 gl_view_object_create_mode (glView            *view,
                            glLabelObjectType  type)
 {
+        GdkWindow *window;
        GdkCursor *cursor = NULL;
 
        gl_debug (DEBUG_VIEW, "START");
 
        g_return_if_fail (view && GL_IS_VIEW (view));
 
+        window = gtk_widget_get_window (view->canvas);
+
        switch (type)
         {
        case GL_LABEL_OBJECT_BOX:
-               cursor = gl_view_box_get_create_cursor ();
+                cursor = gl_view_box_get_create_cursor ();
                break;
        case GL_LABEL_OBJECT_ELLIPSE:
-               cursor = gl_view_ellipse_get_create_cursor ();
+                cursor = gl_view_ellipse_get_create_cursor ();
                break;
        case GL_LABEL_OBJECT_LINE:
-               cursor = gl_view_line_get_create_cursor ();
+                cursor = gl_view_line_get_create_cursor ();
                break;
        case GL_LABEL_OBJECT_IMAGE:
-               cursor = gl_view_image_get_create_cursor ();
+                cursor = gl_view_image_get_create_cursor ();
                break;
        case GL_LABEL_OBJECT_TEXT:
-               cursor = gl_view_text_get_create_cursor ();
+                cursor = gl_view_text_get_create_cursor ();
                break;
        case GL_LABEL_OBJECT_BARCODE:
-               cursor = gl_view_barcode_get_create_cursor ();
+                cursor = gl_view_barcode_get_create_cursor ();
                break;
        default:
                g_message ("Invalid label object type.");/*Should not happen!*/
                break;
        }
 
-       gdk_window_set_cursor (view->canvas->window, cursor);
+       gdk_window_set_cursor (window, cursor);
         gdk_cursor_unref (cursor);
 
        view->mode = GL_VIEW_MODE_OBJECT_CREATE;
@@ -1162,1971 +1122,212 @@ gl_view_object_create_mode (glView            *view,
        gl_debug (DEBUG_VIEW, "END");
 }
 
+
 /*****************************************************************************/
-/* Select given object (adding to current selection).                        */
+/* Zoom in one "notch"                                                       */
 /*****************************************************************************/
 void
-gl_view_select_object (glView       *view,
-                      glViewObject *view_object)
+gl_view_zoom_in (glView *view)
 {
+       gint    i, i_min;
+       gdouble dist, dist_min;
+
        gl_debug (DEBUG_VIEW, "START");
 
        g_return_if_fail (view && GL_IS_VIEW (view));
 
-       select_object_real (view, view_object);
+       /* Find index of current scale (or best match) */
+       i_min = 1;              /* start with 2nd largest scale */
+       dist_min = fabs (zooms[1] - view->zoom);
+       for (i = 2; i < N_ZOOMS; i++) {
+               dist = fabs (zooms[i] - view->zoom);
+               if (dist < dist_min) {
+                       i_min = i;
+                       dist_min = dist;
+               }
+       }
 
-       g_signal_emit (G_OBJECT(view), signals[SELECTION_CHANGED], 0);
+       /* zoom in one "notch" */
+       i = MAX (0, i_min - 1);
+       gl_debug (DEBUG_VIEW, "zoom[%d] = %g", i, zooms[i]);
+       set_zoom_real (view, zooms[i], FALSE);
 
        gl_debug (DEBUG_VIEW, "END");
 }
 
+
 /*****************************************************************************/
-/* Unselect given object (removing from current selection).                  */
+/* Zoom out one "notch"                                                      */
 /*****************************************************************************/
 void
-gl_view_unselect_object (glView       *view,
-                        glViewObject *view_object)
+gl_view_zoom_out (glView *view)
 {
+       gint    i, i_min;
+       gdouble dist, dist_min;
+
        gl_debug (DEBUG_VIEW, "START");
 
        g_return_if_fail (view && GL_IS_VIEW (view));
 
-       unselect_object_real (view, view_object);
+       /* Find index of current scale (or best match) */
+       i_min = 0;              /* start with largest scale */
+       dist_min = fabs (zooms[0] - view->zoom);
+       for (i = 1; i < N_ZOOMS; i++) {
+               dist = fabs (zooms[i] - view->zoom);
+               if (dist < dist_min) {
+                       i_min = i;
+                       dist_min = dist;
+               }
+       }
 
-       g_signal_emit (G_OBJECT(view), signals[SELECTION_CHANGED], 0);
+       /* zoom out one "notch" */
+       if (i_min >= N_ZOOMS)
+               return;
+       i = i_min + 1;
+       if (i >= N_ZOOMS)
+               return;
+       set_zoom_real (view, zooms[i], FALSE);
 
        gl_debug (DEBUG_VIEW, "END");
 }
 
+
 /*****************************************************************************/
-/* Select all items.                                                         */
+/* Set zoom to best fit.                                                     */
 /*****************************************************************************/
 void
-gl_view_select_all (glView *view)
+gl_view_zoom_to_fit (glView *view)
 {
-       GList *p, *p_next;
+        GtkAllocation  allocation;
+       gint           w_view, h_view;
+       gdouble        w_label, h_label;
+       gdouble        x_scale, y_scale, scale;
 
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
+       gl_debug (DEBUG_VIEW, "");
 
-       /* 1st unselect anything already selected. */
-       for (p = view->selected_object_list; p != NULL; p = p_next) {
-               p_next = p->next;
-               unselect_object_real (view, GL_VIEW_OBJECT (p->data));
+       if ( ! gtk_widget_get_window (GTK_WIDGET (view)) ) {
+                /* Delay until realized. */
+                view->zoom_to_fit_flag = TRUE;
+               return;
        }
 
-       /* Finally select all objects. */
-       for (p = view->object_list; p != NULL; p = p->next) {
-               select_object_real (view, GL_VIEW_OBJECT (p->data));
-       }
+        gtk_widget_get_allocation (GTK_WIDGET (view), &allocation);
+       w_view = allocation.width;
+       h_view = allocation.height;
 
-       g_signal_emit (G_OBJECT(view), signals[SELECTION_CHANGED], 0);
+       gl_label_get_size (GL_LABEL(view->label), &w_label, &h_label);
 
-       gl_debug (DEBUG_VIEW, "END");
+       gl_debug (DEBUG_VIEW, "View size: %d, %d", w_view, h_view);
+       gl_debug (DEBUG_VIEW, "Label size: %g, %g", w_label, h_label);
+
+       /* Calculate best scale */
+       x_scale = (double)(w_view - ZOOMTOFIT_PAD) / w_label;
+       y_scale = (double)(h_view - ZOOMTOFIT_PAD) / h_label;
+       scale = MIN (x_scale, y_scale);
+       gl_debug (DEBUG_VIEW, "Candidate zooms: %g, %g => %g", x_scale, y_scale, scale);
+
+       /* Limit */
+       gl_debug (DEBUG_VIEW, "Scale: %g", scale);
+       scale = MIN (scale, zooms[0]*view->home_scale);
+       scale = MAX (scale, zooms[N_ZOOMS-1]*view->home_scale);
+       gl_debug (DEBUG_VIEW, "Limitted scale: %g", scale);
+
+       set_zoom_real (view, scale/view->home_scale, TRUE);
 }
 
+
 /*****************************************************************************/
-/* Remove all selections                                                     */
+/* Set current zoom factor to explicit value.                                */
 /*****************************************************************************/
 void
-gl_view_unselect_all (glView *view)
+gl_view_set_zoom (glView  *view,
+                 gdouble  zoom)
 {
-       GList *p;
-       GList *p_next;
-
        gl_debug (DEBUG_VIEW, "START");
 
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       for (p = view->selected_object_list; p != NULL; p = p_next) {
-               p_next = p->next;
-               unselect_object_real (view, GL_VIEW_OBJECT (p->data));
-       }
-
-       g_signal_emit (G_OBJECT(view), signals[SELECTION_CHANGED], 0);
+       set_zoom_real (view, zoom, FALSE);
 
        gl_debug (DEBUG_VIEW, "END");
 }
 
-/*****************************************************************************/
-/* Select all objects within given rectangular region (adding to selection). */
-/*****************************************************************************/
-void
-gl_view_select_region (glView        *view,
-                       glLabelRegion *region)
-{
-       GList         *p;
-       glViewObject  *view_object;
-       glLabelObject *object;
-        gdouble        r_x1, r_y1;
-        gdouble        r_x2, r_y2;
-        glLabelRegion  obj_extent;
 
+/*---------------------------------------------------------------------------*/
+/* PRIVATE.  Set canvas scale.                                               */
+/*---------------------------------------------------------------------------*/
+static void
+set_zoom_real (glView   *view,
+              gdouble   zoom,
+              gboolean  zoom_to_fit_flag)
+{
        gl_debug (DEBUG_VIEW, "START");
 
        g_return_if_fail (view && GL_IS_VIEW (view));
+       g_return_if_fail (zoom > 0.0);
+
+       /* Limit, if needed */
+       gl_debug (DEBUG_VIEW, "Zoom requested: %g", zoom);
+       zoom = MIN (zoom, zooms[0]);
+       zoom = MAX (zoom, zooms[N_ZOOMS-1]);
+       gl_debug (DEBUG_VIEW, "Limitted zoom: %g", zoom);
 
-        r_x1 = MIN (region->x1, region->x2);
-        r_y1 = MIN (region->y1, region->y2);
-        r_x2 = MAX (region->x1, region->x2);
-        r_y2 = MAX (region->y1, region->y2);
+       if ( zoom != view->zoom ) {
 
-       for (p = view->object_list; p != NULL; p = p->next)
-        {
-               view_object = GL_VIEW_OBJECT(p->data);
-               if (!gl_view_is_object_selected (view, view_object))
-                {
+               view->zoom = zoom;
+               view->zoom_to_fit_flag = zoom_to_fit_flag;
 
-                       object = gl_view_object_get_object (view_object);
+                gl_view_update (view);
 
-                       gl_label_object_get_extent (object, &obj_extent);
-                       if ((obj_extent.x1 >= r_x1) &&
-                            (obj_extent.x2 <= r_x2) &&
-                            (obj_extent.y1 >= r_y1) &&
-                            (obj_extent.y2 <= r_y2))
-                        {
-                               select_object_real (view, view_object);
-                       }
+               g_signal_emit (G_OBJECT(view), signals[ZOOM_CHANGED], 0, zoom);
 
-               }
        }
 
-       g_signal_emit (G_OBJECT(view), signals[SELECTION_CHANGED], 0);
-
        gl_debug (DEBUG_VIEW, "END");
+
 }
 
-/*---------------------------------------------------------------------------*/
-/* PRIVATE. Select an object.                                                */
-/*---------------------------------------------------------------------------*/
-static void
-select_object_real (glView       *view,
-                   glViewObject *view_object)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-       g_return_if_fail (GL_IS_VIEW_OBJECT (view_object));
-
-       if (!gl_view_is_object_selected (view, view_object)) {
-               view->selected_object_list =
-                   g_list_append (view->selected_object_list, view_object);
-       }
-       gtk_widget_grab_focus (GTK_WIDGET (view->canvas));
-
-        gl_view_update (view);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  Un-select object.                                               */
-/*---------------------------------------------------------------------------*/
-static void
-unselect_object_real (glView       *view,
-                     glViewObject *view_object)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-       g_return_if_fail (GL_IS_VIEW_OBJECT (view_object));
-
-       view->selected_object_list =
-           g_list_remove (view->selected_object_list, view_object);
-
-        gl_view_update (view);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE. Return object at (x,y).                                          */
-/*---------------------------------------------------------------------------*/
-static glViewObject *
-view_view_object_at (glView  *view,
-                     cairo_t *cr,
-                     gdouble  x,
-                     gdouble  y)
-{
-       GList            *p_obj;
-       glViewObject     *view_object;
-
-       g_return_val_if_fail (view && GL_IS_VIEW (view), NULL);
-
-       for (p_obj = g_list_last (view->object_list); p_obj != NULL; p_obj = p_obj->prev)
-        {
-
-               view_object = GL_VIEW_OBJECT (p_obj->data);
-
-                if (gl_view_object_at (view_object, cr, x, y))
-                {
-                        return view_object;
-                }
-
-       }
-
-        return NULL;
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE. Return object handle at (x,y).                                   */
-/*---------------------------------------------------------------------------*/
-static glViewObject *
-view_handle_at (glView             *view,
-                cairo_t            *cr,
-                gdouble             x,
-                gdouble             y,
-                glViewObjectHandle *handle)
-{
-       GList            *p_obj;
-       glViewObject     *view_object;
-
-       g_return_val_if_fail (view && GL_IS_VIEW (view), NULL);
-
-       for (p_obj = g_list_last (view->selected_object_list); p_obj != NULL; p_obj = p_obj->prev)
-        {
-
-               view_object = GL_VIEW_OBJECT (p_obj->data);
-
-                if ((*handle = gl_view_object_handle_at (view_object, cr, x, y)))
-                {
-                        return view_object;
-                }
-
-       }
-
-        return NULL;
-}
-
-/*****************************************************************************/
-/* Is the object in our current selection?                                   */
-/*****************************************************************************/
-gboolean
-gl_view_is_object_selected (glView       *view,
-                           glViewObject *view_object)
-{
-       gl_debug (DEBUG_VIEW, "");
-
-       g_return_val_if_fail (view && GL_IS_VIEW (view), FALSE);
-       g_return_val_if_fail (GL_IS_VIEW_OBJECT (view_object), FALSE);
-
-       if (g_list_find (view->selected_object_list, view_object) == NULL) {
-               return FALSE;
-       }
-       return TRUE;
-}
-
-/*****************************************************************************/
-/* Is our current selection empty?                                           */
-/*****************************************************************************/
-gboolean
-gl_view_is_selection_empty (glView *view)
-{
-       gl_debug (DEBUG_VIEW, "");
-
-       g_return_val_if_fail (view && GL_IS_VIEW (view), FALSE);
-
-       if (view->selected_object_list == NULL) {
-               return TRUE;
-       } else {
-               return FALSE;
-       }
-}
-
-/*****************************************************************************/
-/* Is our current selection atomic?  I.e. only one item selected.            */
-/*****************************************************************************/
-gboolean
-gl_view_is_selection_atomic (glView *view)
-{
-       gl_debug (DEBUG_VIEW, "");
-
-       g_return_val_if_fail (view && GL_IS_VIEW (view), FALSE);
-
-       if (view->selected_object_list == NULL)
-               return FALSE;
-       if (view->selected_object_list->next == NULL)
-               return TRUE;
-       return FALSE;
-}
-
-/*****************************************************************************/
-/* Delete selected objects. (Bypass clipboard)                               */
-/*****************************************************************************/
-void
-gl_view_delete_selection (glView *view)
-{
-       GList         *object_list;
-       GList         *p;
-       GList         *p_next;
-       glViewObject  *view_object;
-       glLabelObject *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       object_list = view->selected_object_list;
-       view->selected_object_list = NULL;
-       g_signal_emit (G_OBJECT(view), signals[SELECTION_CHANGED], 0);
-
-       for (p = object_list; p != NULL; p = p_next) {
-               p_next = p->next;
-               view_object = GL_VIEW_OBJECT (p->data);
-               object = gl_view_object_get_object (view_object);
-                gl_label_object_remove (object);
-       }
-
-        g_list_free (object_list);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Get object property editor of first selected object.                      */
-/*****************************************************************************/
-GtkWidget *
-gl_view_get_editor (glView *view)
-{
-       glViewObject *view_object;
-       GtkWidget    *editor = NULL;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_val_if_fail (view && GL_IS_VIEW (view), NULL);
-
-       if (!gl_view_is_selection_empty (view)) {
-
-               view_object = GL_VIEW_OBJECT(view->selected_object_list->data);
-               editor = gl_view_object_get_editor (view_object);
-
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-
-       return editor;
-}
-
-/*****************************************************************************/
-/* Raise selected items to top.                                              */
-/*****************************************************************************/
-void
-gl_view_raise_selection (glView *view)
-{
-       GList         *p;
-       glViewObject  *view_object;
-       glLabelObject *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       for (p = view->selected_object_list; p != NULL; p = p->next) {
-               view_object = GL_VIEW_OBJECT (p->data);
-               object = gl_view_object_get_object (view_object);
-               gl_label_object_raise_to_top (object);
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Lower selected items to bottom.                                           */
-/*****************************************************************************/
-void
-gl_view_lower_selection (glView *view)
-{
-       GList         *p;
-       glViewObject  *view_object;
-       glLabelObject *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       for (p = view->selected_object_list; p != NULL; p = p->next) {
-               view_object = GL_VIEW_OBJECT (p->data);
-               object = gl_view_object_get_object (view_object);
-               gl_label_object_lower_to_bottom (object);
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Rotate selected objects by given angle.                                   */
-/*****************************************************************************/
-void
-gl_view_rotate_selection (glView *view,
-                         gdouble theta_degs)
-{
-       GList         *p;
-       glViewObject  *view_object;
-       glLabelObject *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       for (p = view->selected_object_list; p != NULL; p = p->next) {
-               view_object = GL_VIEW_OBJECT (p->data);
-               object = gl_view_object_get_object (view_object);
-               gl_label_object_rotate (object, theta_degs);
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Rotate selected objects 90 degrees left.                                  */
-/*****************************************************************************/
-void
-gl_view_rotate_selection_left (glView *view)
-{
-       GList         *p;
-       glViewObject  *view_object;
-       glLabelObject *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       for (p = view->selected_object_list; p != NULL; p = p->next) {
-               view_object = GL_VIEW_OBJECT (p->data);
-               object = gl_view_object_get_object (view_object);
-               gl_label_object_rotate (object, -90.0);
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Rotate selected objects 90 degrees right.                                 */
-/*****************************************************************************/
-void
-gl_view_rotate_selection_right (glView *view)
-{
-       GList         *p;
-       glViewObject  *view_object;
-       glLabelObject *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       for (p = view->selected_object_list; p != NULL; p = p->next) {
-               view_object = GL_VIEW_OBJECT (p->data);
-               object = gl_view_object_get_object (view_object);
-               gl_label_object_rotate (object, 90.0);
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Flip selected objects horizontally.                                       */
-/*****************************************************************************/
-void
-gl_view_flip_selection_horiz (glView *view)
-{
-       GList         *p;
-       glViewObject  *view_object;
-       glLabelObject *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       for (p = view->selected_object_list; p != NULL; p = p->next) {
-               view_object = GL_VIEW_OBJECT (p->data);
-               object = gl_view_object_get_object (view_object);
-               gl_label_object_flip_horiz (object);
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Flip selected objects vertically.                                         */
-/*****************************************************************************/
-void
-gl_view_flip_selection_vert (glView *view)
-{
-       GList         *p;
-       glViewObject  *view_object;
-       glLabelObject *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       for (p = view->selected_object_list; p != NULL; p = p->next) {
-               view_object = GL_VIEW_OBJECT (p->data);
-               object = gl_view_object_get_object (view_object);
-               gl_label_object_flip_vert (object);
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Align selected objects to left most edge.                                 */
-/*****************************************************************************/
-void
-gl_view_align_selection_left (glView *view)
-{
-       GList         *p;
-       glViewObject  *view_object;
-       glLabelObject *object;
-       gdouble        dx, x1_min;
-        glLabelRegion  obj_extent;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       g_return_if_fail (!gl_view_is_selection_empty (view) &&
-                         !gl_view_is_selection_atomic (view));
-
-       /* find left most edge */
-       p = view->selected_object_list;
-       view_object = GL_VIEW_OBJECT (p->data);
-       object = gl_view_object_get_object (view_object);
-       gl_label_object_get_extent (object, &obj_extent);
-        x1_min = obj_extent.x1;
-       for (p = p->next; p != NULL; p = p->next)
-        {
-               view_object = GL_VIEW_OBJECT (p->data);
-               object = gl_view_object_get_object (view_object);
-               gl_label_object_get_extent (object, &obj_extent);
-               if ( obj_extent.x1 < x1_min ) x1_min = obj_extent.x1;
-       }
-
-       /* now adjust the object positions to line up the left edges */
-       for (p = view->selected_object_list; p != NULL; p = p->next)
-        {
-               view_object = GL_VIEW_OBJECT (p->data);
-               object = gl_view_object_get_object (view_object);
-               gl_label_object_get_extent (object, &obj_extent);
-               dx = x1_min - obj_extent.x1;
-               gl_label_object_set_position_relative (object, dx, 0.0);
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-
-/*****************************************************************************/
-/* Align selected objects to right most edge.                                */
-/*****************************************************************************/
-void
-gl_view_align_selection_right (glView *view)
-{
-       GList         *p;
-       glViewObject  *view_object;
-       glLabelObject *object;
-       gdouble        dx, x2_max;
-        glLabelRegion  obj_extent;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       g_return_if_fail (!gl_view_is_selection_empty (view) &&
-                         !gl_view_is_selection_atomic (view));
-
-       /* find right most edge */
-       p = view->selected_object_list;
-       view_object = GL_VIEW_OBJECT (p->data);
-       object = gl_view_object_get_object (view_object);
-       gl_label_object_get_extent (object, &obj_extent);
-        x2_max = obj_extent.x2;
-       for (p = p->next; p != NULL; p = p->next)
-        {
-               view_object = GL_VIEW_OBJECT (p->data);
-               object = gl_view_object_get_object (view_object);
-               gl_label_object_get_extent (object, &obj_extent);
-               if ( obj_extent.x2 > x2_max ) x2_max = obj_extent.x2;
-       }
-
-       /* now adjust the object positions to line up the right edges */
-       for (p = view->selected_object_list; p != NULL; p = p->next)
-        {
-               view_object = GL_VIEW_OBJECT (p->data);
-               object = gl_view_object_get_object (view_object);
-               gl_label_object_get_extent (object, &obj_extent);
-               dx = x2_max - obj_extent.x2;
-               gl_label_object_set_position_relative (object, dx, 0.0);
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Align selected objects to horizontal center of objects.                   */
-/*****************************************************************************/
-void
-gl_view_align_selection_hcenter (glView *view)
-{
-       GList         *p;
-       glViewObject  *view_object;
-       glLabelObject *object;
-       gdouble        dx;
-       gdouble        dxmin;
-       gdouble        xsum, xavg;
-        glLabelRegion  obj_extent;
-       gdouble        xcenter;
-       gint           n;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       g_return_if_fail (!gl_view_is_selection_empty (view) &&
-                         !gl_view_is_selection_atomic (view));
-
-       /* find average center of objects */
-       xsum = 0.0;
-       n = 0;
-       for (p = view->selected_object_list; p != NULL; p = p->next)
-        {
-               view_object = GL_VIEW_OBJECT (p->data);
-               object = gl_view_object_get_object (view_object);
-               gl_label_object_get_extent (object, &obj_extent);
-               xsum += (obj_extent.x1 + obj_extent.x2) / 2.0;
-               n++;
-       }
-       xavg = xsum / n;
-
-       /* find center of object closest to average center */
-       p = view->selected_object_list;
-       view_object = GL_VIEW_OBJECT (p->data);
-       object = gl_view_object_get_object (view_object);
-       gl_label_object_get_extent (object, &obj_extent);
-       dxmin = fabs (xavg - (obj_extent.x1 + obj_extent.x2)/2.0);
-       xcenter = (obj_extent.x1 + obj_extent.x2)/2.0;
-       for (p = p->next; p != NULL; p = p->next)
-        {
-               view_object = GL_VIEW_OBJECT (p->data);
-               object = gl_view_object_get_object (view_object);
-               gl_label_object_get_extent (object, &obj_extent);
-               dx = fabs (xavg - (obj_extent.x1 + obj_extent.x2)/2.0);
-               if ( dx < dxmin )
-                {
-                       dxmin = dx;
-                       xcenter = (obj_extent.x1 + obj_extent.x2)/2.0;
-               }
-       }
-
-       /* now adjust the object positions to line up this center */
-       for (p = view->selected_object_list; p != NULL; p = p->next) {
-               view_object = GL_VIEW_OBJECT (p->data);
-               object = gl_view_object_get_object (view_object);
-               gl_label_object_get_extent (object, &obj_extent);
-               dx = xcenter - (obj_extent.x1 + obj_extent.x2)/2.0;
-               gl_label_object_set_position_relative (object, dx, 0.0);
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Align selected objects to top most edge.                                  */
-/*****************************************************************************/
-void
-gl_view_align_selection_top (glView *view)
-{
-       GList         *p;
-       glViewObject  *view_object;
-       glLabelObject *object;
-       gdouble        dy, y1_min;
-        glLabelRegion  obj_extent;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       g_return_if_fail (!gl_view_is_selection_empty (view) &&
-                         !gl_view_is_selection_atomic (view));
-
-       /* find top most edge */
-       p = view->selected_object_list;
-       view_object = GL_VIEW_OBJECT (p->data);
-       object = gl_view_object_get_object (view_object);
-       gl_label_object_get_extent (object, &obj_extent);
-        y1_min = obj_extent.y1;
-       for (p = p->next; p != NULL; p = p->next)
-        {
-               view_object = GL_VIEW_OBJECT (p->data);
-               object = gl_view_object_get_object (view_object);
-               gl_label_object_get_extent (object, &obj_extent);
-               if ( obj_extent.y1 < y1_min ) y1_min = obj_extent.y1;
-       }
-
-       /* now adjust the object positions to line up the top edges */
-       for (p = view->selected_object_list; p != NULL; p = p->next)
-        {
-               view_object = GL_VIEW_OBJECT (p->data);
-               object = gl_view_object_get_object (view_object);
-               gl_label_object_get_extent (object, &obj_extent);
-               dy = y1_min - obj_extent.y1;
-               gl_label_object_set_position_relative (object, 0.0, dy);
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Align selected objects to bottom most edge.                               */
-/*****************************************************************************/
-void
-gl_view_align_selection_bottom (glView *view)
-{
-       GList         *p;
-       glViewObject  *view_object;
-       glLabelObject *object;
-       gdouble        dy, y2_max;
-        glLabelRegion  obj_extent;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       g_return_if_fail (!gl_view_is_selection_empty (view) &&
-                         !gl_view_is_selection_atomic (view));
-
-       /* find bottom most edge */
-       p = view->selected_object_list;
-       view_object = GL_VIEW_OBJECT (p->data);
-       object = gl_view_object_get_object (view_object);
-       gl_label_object_get_extent (object, &obj_extent);
-        y2_max = obj_extent.y2;
-       for (p = p->next; p != NULL; p = p->next)
-        {
-               view_object = GL_VIEW_OBJECT (p->data);
-               object = gl_view_object_get_object (view_object);
-               gl_label_object_get_extent (object, &obj_extent);
-               if ( obj_extent.y2 > y2_max ) y2_max = obj_extent.y2;
-       }
-
-       /* now adjust the object positions to line up the bottom edges */
-       for (p = view->selected_object_list; p != NULL; p = p->next)
-        {
-               view_object = GL_VIEW_OBJECT (p->data);
-               object = gl_view_object_get_object (view_object);
-               gl_label_object_get_extent (object, &obj_extent);
-               dy = y2_max - obj_extent.y2;
-               gl_label_object_set_position_relative (object, 0.0, dy);
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Align selected objects to viertical center of objects.                    */
-/*****************************************************************************/
-void
-gl_view_align_selection_vcenter (glView *view)
-{
-       GList         *p;
-       glViewObject  *view_object;
-       glLabelObject *object;
-       gdouble        dy;
-       gdouble        dymin;
-       gdouble        ysum, yavg;
-        glLabelRegion  obj_extent;
-       gdouble        ycenter;
-       gint           n;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       g_return_if_fail (!gl_view_is_selection_empty (view) &&
-                         !gl_view_is_selection_atomic (view));
-
-       /* find average center of objects */
-       ysum = 0.0;
-       n = 0;
-       for (p = view->selected_object_list; p != NULL; p = p->next)
-        {
-               view_object = GL_VIEW_OBJECT (p->data);
-               object = gl_view_object_get_object (view_object);
-               gl_label_object_get_extent (object, &obj_extent);
-               ysum += (obj_extent.y1 + obj_extent.y2) / 2.0;
-               n++;
-       }
-       yavg = ysum / n;
-
-       /* find center of object closest to average center */
-       p = view->selected_object_list;
-       view_object = GL_VIEW_OBJECT (p->data);
-       object = gl_view_object_get_object (view_object);
-       gl_label_object_get_extent (object, &obj_extent);
-       dymin = fabs (yavg - (obj_extent.y1 + obj_extent.y2)/2.0);
-       ycenter = (obj_extent.y1 + obj_extent.y2)/2.0;
-       for (p = p->next; p != NULL; p = p->next)
-        {
-               view_object = GL_VIEW_OBJECT (p->data);
-               object = gl_view_object_get_object (view_object);
-               gl_label_object_get_extent (object, &obj_extent);
-               dy = fabs (yavg - (obj_extent.y1 + obj_extent.y2)/2.0);
-               if ( dy < dymin )
-                {
-                       dymin = dy;
-                       ycenter = (obj_extent.y1 + obj_extent.y2)/2.0;
-               }
-       }
-
-       /* now adjust the object positions to line up this center */
-       for (p = view->selected_object_list; p != NULL; p = p->next)
-        {
-               view_object = GL_VIEW_OBJECT (p->data);
-               object = gl_view_object_get_object (view_object);
-               gl_label_object_get_extent (object, &obj_extent);
-               dy = ycenter - (obj_extent.y1 + obj_extent.y2)/2.0;
-               gl_label_object_set_position_relative (object, 0.0, dy);
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Center selected objects to in center of label.                            */
-/*****************************************************************************/
-void
-gl_view_center_selection_horiz (glView *view)
-{
-       GList         *p;
-       glViewObject  *view_object;
-       glLabelObject *object;
-       gdouble        dx;
-       gdouble        x_label_center;
-       gdouble        x_obj_center;
-       glLabelRegion  obj_extent;
-       gdouble        w, h;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       g_return_if_fail (!gl_view_is_selection_empty (view));
-
-       gl_label_get_size (view->label, &w, &h);
-       x_label_center = w / 2.0;
-
-       /* adjust the object positions */
-       for (p = view->selected_object_list; p != NULL; p = p->next)
-        {
-               view_object = GL_VIEW_OBJECT (p->data);
-               object = gl_view_object_get_object (view_object);
-               gl_label_object_get_extent (object, &obj_extent);
-               x_obj_center = (obj_extent.x1 + obj_extent.x2) / 2.0;
-               dx = x_label_center - x_obj_center;
-               gl_label_object_set_position_relative (object, dx, 0.0);
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-
-/*****************************************************************************/
-/* Center selected objects to in center of label.                            */
-/*****************************************************************************/
-void
-gl_view_center_selection_vert (glView *view)
-{
-       GList         *p;
-       glViewObject  *view_object;
-       glLabelObject *object;
-       gdouble        dy;
-       gdouble        y_label_center;
-       gdouble        y_obj_center;
-       glLabelRegion  obj_extent;
-       gdouble        w, h;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       g_return_if_fail (!gl_view_is_selection_empty (view));
-
-       gl_label_get_size (view->label, &w, &h);
-       y_label_center = h / 2.0;
-
-       /* adjust the object positions */
-       for (p = view->selected_object_list; p != NULL; p = p->next)
-        {
-               view_object = GL_VIEW_OBJECT (p->data);
-               object = gl_view_object_get_object (view_object);
-               gl_label_object_get_extent (object, &obj_extent);
-               y_obj_center = (obj_extent.y1 + obj_extent.y2) / 2.0;
-               dy = y_label_center - y_obj_center;
-               gl_label_object_set_position_relative (object, 0.0, dy);
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-
-/*****************************************************************************/
-/* Move selected objects                                                     */
-/*****************************************************************************/
-void
-gl_view_move_selection (glView  *view,
-                       gdouble  dx,
-                       gdouble  dy)
-{
-       GList         *p;
-       glLabelObject *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       for (p = view->selected_object_list; p != NULL; p = p->next)
-        {
-
-               object = gl_view_object_get_object(GL_VIEW_OBJECT (p->data));
-               gl_label_object_set_position_relative (object, dx, dy);
-
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Can text properties be set for selection?                                 */
-/*****************************************************************************/
-gboolean
-gl_view_can_selection_text (glView *view)
-{
-       GList         *p;
-       glLabelObject *object;
-
-       gl_debug (DEBUG_VIEW, "");
-
-       g_return_val_if_fail (view && GL_IS_VIEW (view), FALSE);
-
-       for (p = view->selected_object_list; p != NULL; p = p->next)
-        {
-
-               object = gl_view_object_get_object(GL_VIEW_OBJECT (p->data));
-               if (gl_label_object_can_text (object))
-                {
-                       return TRUE;
-               }
-
-       }
-
-       return FALSE;
-}
-
-/*****************************************************************************/
-/* Set font family for all text contained in selected objects.               */
-/*****************************************************************************/
-void
-gl_view_set_selection_font_family (glView      *view,
-                                  const gchar *font_family)
-{
-       GList         *p;
-       glLabelObject *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       for (p = view->selected_object_list; p != NULL; p = p->next) {
-
-               object = gl_view_object_get_object(GL_VIEW_OBJECT (p->data));
-               gl_label_object_set_font_family (object, font_family);
-
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Set font size for all text contained in selected objects.                 */
-/*****************************************************************************/
-void
-gl_view_set_selection_font_size (glView  *view,
-                                gdouble  font_size)
-{
-       GList         *p;
-       glLabelObject *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       for (p = view->selected_object_list; p != NULL; p = p->next) {
-
-               object = gl_view_object_get_object(GL_VIEW_OBJECT (p->data));
-               gl_label_object_set_font_size (object, font_size);
-
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Set font weight for all text contained in selected objects.               */
-/*****************************************************************************/
-void
-gl_view_set_selection_font_weight (glView      *view,
-                                  PangoWeight  font_weight)
-{
-       GList         *p;
-       glLabelObject *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       for (p = view->selected_object_list; p != NULL; p = p->next) {
-
-               object = gl_view_object_get_object(GL_VIEW_OBJECT (p->data));
-               gl_label_object_set_font_weight (object, font_weight);
-
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Set font italic flag for all text contained in selected objects.          */
-/*****************************************************************************/
-void
-gl_view_set_selection_font_italic_flag (glView   *view,
-                                       gboolean  font_italic_flag)
-{
-       GList         *p;
-       glLabelObject *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       for (p = view->selected_object_list; p != NULL; p = p->next) {
-
-               object = gl_view_object_get_object(GL_VIEW_OBJECT (p->data));
-               gl_label_object_set_font_italic_flag (object, font_italic_flag);
-
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Set text alignment for all text contained in selected objects.            */
-/*****************************************************************************/
-void
-gl_view_set_selection_text_alignment (glView            *view,
-                                     PangoAlignment     text_alignment)
-{
-       GList         *p;
-       glLabelObject *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       for (p = view->selected_object_list; p != NULL; p = p->next) {
-
-               object = gl_view_object_get_object(GL_VIEW_OBJECT (p->data));
-               gl_label_object_set_text_alignment (object, text_alignment);
-
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Set text line spacing for all text contained in selected objects.         */
-/*****************************************************************************/
-void
-gl_view_set_selection_text_line_spacing (glView  *view,
-                                        gdouble  text_line_spacing)
-{
-       GList         *p;
-       glLabelObject *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       for (p = view->selected_object_list; p != NULL; p = p->next) {
-
-               object = gl_view_object_get_object(GL_VIEW_OBJECT (p->data));
-               gl_label_object_set_text_line_spacing (object, text_line_spacing);
-
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-/*****************************************************************************/
-/* Set text color for all text contained in selected objects.                */
-/*****************************************************************************/
-void
-gl_view_set_selection_text_color (glView      *view,
-                                 glColorNode *text_color_node)
-{
-       GList         *p;
-       glLabelObject *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       for (p = view->selected_object_list; p != NULL; p = p->next) {
-
-               object = gl_view_object_get_object(GL_VIEW_OBJECT (p->data));
-               gl_label_object_set_text_color (object, text_color_node);
-
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Can fill properties be set for selection?                                 */
-/*****************************************************************************/
-gboolean
-gl_view_can_selection_fill (glView *view)
-{
-       GList         *p;
-       glLabelObject *object;
-
-       gl_debug (DEBUG_VIEW, "");
-
-       g_return_val_if_fail (view && GL_IS_VIEW (view), FALSE);
-
-       for (p = view->selected_object_list; p != NULL; p = p->next) {
-
-               object = gl_view_object_get_object(GL_VIEW_OBJECT (p->data));
-               if (gl_label_object_can_fill (object)) {
-                       return TRUE;
-               }
-
-       }
-
-       return FALSE;
-}
-
-/*****************************************************************************/
-/* Set fill color for all selected objects.                                  */
-/*****************************************************************************/
-void
-gl_view_set_selection_fill_color (glView      *view,
-                                 glColorNode *fill_color_node)
-{
-       GList         *p;
-       glLabelObject *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       for (p = view->selected_object_list; p != NULL; p = p->next) {
-
-               object = gl_view_object_get_object(GL_VIEW_OBJECT (p->data));
-               gl_label_object_set_fill_color (object, fill_color_node);
-
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Can line color properties be set for selection?                           */
-/*****************************************************************************/
-gboolean
-gl_view_can_selection_line_color (glView *view)
-{
-       GList         *p;
-       glLabelObject *object;
-
-       gl_debug (DEBUG_VIEW, "");
-
-       g_return_val_if_fail (view && GL_IS_VIEW (view), FALSE);
-
-       for (p = view->selected_object_list; p != NULL; p = p->next) {
-
-               object = gl_view_object_get_object(GL_VIEW_OBJECT (p->data));
-               if (gl_label_object_can_line_color (object)) {
-                       return TRUE;
-               }
-
-       }
-
-       return FALSE;
-}
-
-/*****************************************************************************/
-/* Set line color for all selected objects.                                  */
-/*****************************************************************************/
-void
-gl_view_set_selection_line_color (glView      *view,
-                                 glColorNode *line_color_node)
-{
-       GList         *p;
-       glLabelObject *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       for (p = view->selected_object_list; p != NULL; p = p->next) {
-
-               object = gl_view_object_get_object(GL_VIEW_OBJECT (p->data));
-               gl_label_object_set_line_color (object, line_color_node);
-
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Can line width properties be set for selection?                           */
-/*****************************************************************************/
-gboolean
-gl_view_can_selection_line_width (glView *view)
-{
-       GList         *p;
-       glLabelObject *object;
-
-       gl_debug (DEBUG_VIEW, "");
-
-       g_return_val_if_fail (view && GL_IS_VIEW (view), FALSE);
-
-       for (p = view->selected_object_list; p != NULL; p = p->next) {
-
-               object = gl_view_object_get_object(GL_VIEW_OBJECT (p->data));
-               if (gl_label_object_can_line_width (object)) {
-                       return TRUE;
-               }
-
-       }
-
-       return FALSE;
-}
-
-/*****************************************************************************/
-/* Set line width for all selected objects.                                  */
-/*****************************************************************************/
-void
-gl_view_set_selection_line_width (glView  *view,
-                                 gdouble  line_width)
-{
-       GList         *p;
-       glLabelObject *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       for (p = view->selected_object_list; p != NULL; p = p->next) {
-
-               object = gl_view_object_get_object(GL_VIEW_OBJECT (p->data));
-               gl_label_object_set_line_width (object, line_width);
-
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* "Cut" selected items and place in clipboard selections.                   */
-/*****************************************************************************/
-void
-gl_view_cut (glView *view)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       gl_view_copy (view);
-       gl_view_delete_selection (view);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* "Copy" selected items to clipboard selections.                            */
-/*****************************************************************************/
-void
-gl_view_copy (glView *view)
-{
-       GList         *p;
-       glViewObject  *view_object;
-       glLabelObject *object;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       if (view->selected_object_list) {
-
-               if ( view->selection_data ) {
-                       g_object_unref (view->selection_data);
-               }
-               view->selection_data = GL_LABEL(gl_label_new ());
-               gl_label_set_template (view->selection_data, view->label->template);
-               gl_label_set_rotate_flag (view->selection_data, view->label->rotate_flag);
-
-               for (p = view->selected_object_list; p != NULL; p = p->next) {
-
-                       view_object = GL_VIEW_OBJECT (p->data);
-                       object = gl_view_object_get_object (view_object);
-
-                       gl_label_object_dup (object, view->selection_data);
-
-               }
-
-               gtk_selection_owner_set (view->invisible,
-                                        clipboard_atom, GDK_CURRENT_TIME);
-               view->have_selection = TRUE;
-
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* "Paste" from private clipboard selection.                                 */
-/*****************************************************************************/
-void
-gl_view_paste (glView *view)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       gtk_selection_convert (GTK_WIDGET (view->invisible),
-                              clipboard_atom, GDK_SELECTION_TYPE_STRING,
-                              GDK_CURRENT_TIME);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Zoom in one "notch"                                                       */
-/*****************************************************************************/
-void
-gl_view_zoom_in (glView *view)
-{
-       gint    i, i_min;
-       gdouble dist, dist_min;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       /* Find index of current scale (or best match) */
-       i_min = 1;              /* start with 2nd largest scale */
-       dist_min = fabs (zooms[1] - view->zoom);
-       for (i = 2; i < N_ZOOMS; i++) {
-               dist = fabs (zooms[i] - view->zoom);
-               if (dist < dist_min) {
-                       i_min = i;
-                       dist_min = dist;
-               }
-       }
-
-       /* zoom in one "notch" */
-       i = MAX (0, i_min - 1);
-       gl_debug (DEBUG_VIEW, "zoom[%d] = %g", i, zooms[i]);
-       set_zoom_real (view, zooms[i], FALSE);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Zoom out one "notch"                                                      */
-/*****************************************************************************/
-void
-gl_view_zoom_out (glView *view)
-{
-       gint    i, i_min;
-       gdouble dist, dist_min;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       /* Find index of current scale (or best match) */
-       i_min = 0;              /* start with largest scale */
-       dist_min = fabs (zooms[0] - view->zoom);
-       for (i = 1; i < N_ZOOMS; i++) {
-               dist = fabs (zooms[i] - view->zoom);
-               if (dist < dist_min) {
-                       i_min = i;
-                       dist_min = dist;
-               }
-       }
-
-       /* zoom out one "notch" */
-       if (i_min >= N_ZOOMS)
-               return;
-       i = i_min + 1;
-       if (i >= N_ZOOMS)
-               return;
-       set_zoom_real (view, zooms[i], FALSE);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*****************************************************************************/
-/* Set zoom to best fit.                                                     */
-/*****************************************************************************/
-void
-gl_view_zoom_to_fit (glView *view)
-{
-       gint    w_view, h_view;
-       gdouble w_label, h_label;
-       gdouble x_scale, y_scale, scale;
-
-       gl_debug (DEBUG_VIEW, "");
-
-       if ( ! GTK_WIDGET_VISIBLE(view)) {
-               set_zoom_real (view, 1.0, TRUE);
-               return;
-       }
-
-       w_view = GTK_WIDGET(view)->allocation.width;
-       h_view = GTK_WIDGET(view)->allocation.height;
-
-       gl_label_get_size (GL_LABEL(view->label), &w_label, &h_label);
-
-       gl_debug (DEBUG_VIEW, "View size: %d, %d", w_view, h_view);
-       gl_debug (DEBUG_VIEW, "Label size: %g, %g", w_label, h_label);
-
-       /* Calculate best scale */
-       x_scale = (double)(w_view - ZOOMTOFIT_PAD) / w_label;
-       y_scale = (double)(h_view - ZOOMTOFIT_PAD) / h_label;
-       scale = MIN (x_scale, y_scale);
-       gl_debug (DEBUG_VIEW, "Candidate zooms: %g, %g => %g", x_scale, y_scale, scale);
-
-       /* Limit */
-       gl_debug (DEBUG_VIEW, "Scale: %g", scale);
-       scale = MIN (scale, zooms[0]*view->home_scale);
-       scale = MAX (scale, zooms[N_ZOOMS-1]*view->home_scale);
-       gl_debug (DEBUG_VIEW, "Limitted scale: %g", scale);
-
-       set_zoom_real (view, scale/view->home_scale, TRUE);
-}
-
-/*****************************************************************************/
-/* Set current zoom factor to explicit value.                                */
-/*****************************************************************************/
-void
-gl_view_set_zoom (glView  *view,
-                 gdouble  zoom)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       set_zoom_real (view, zoom, FALSE);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  Set canvas scale.                                               */
-/*---------------------------------------------------------------------------*/
-static void
-set_zoom_real (glView   *view,
-              gdouble   zoom,
-              gboolean  zoom_to_fit_flag)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-       g_return_if_fail (zoom > 0.0);
-
-       /* Limit, if needed */
-       gl_debug (DEBUG_VIEW, "Zoom requested: %g", zoom);
-       zoom = MIN (zoom, zooms[0]);
-       zoom = MAX (zoom, zooms[N_ZOOMS-1]);
-       gl_debug (DEBUG_VIEW, "Limitted zoom: %g", zoom);
-
-       if ( zoom != view->zoom ) {
-
-               view->zoom = zoom;
-               view->zoom_to_fit_flag = zoom_to_fit_flag;
-
-                gl_view_update (view);
-
-               g_signal_emit (G_OBJECT(view), signals[ZOOM_CHANGED], 0, zoom);
-
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-
-}
-
-
-/*****************************************************************************/
-/* Get current zoom factor.                                                  */
-/*****************************************************************************/
-gdouble
-gl_view_get_zoom (glView *view)
-{
-       gl_debug (DEBUG_VIEW, "");
-
-       g_return_val_if_fail (view && GL_IS_VIEW (view), 1.0);
-
-       return view->zoom;
-}
-
-/*****************************************************************************/
-/* Is this the maximum zoom level.                                           */
-/*****************************************************************************/
-gboolean
-gl_view_is_zoom_max (glView *view)
-{
-       gl_debug (DEBUG_VIEW, "");
-
-       g_return_val_if_fail (GL_IS_VIEW (view), FALSE);
-
-       return view->zoom >= zooms[0];
-}
-
-/*****************************************************************************/
-/* Is this the minimum zoom level.                                           */
-/*****************************************************************************/
-gboolean
-gl_view_is_zoom_min (glView *view)
-{
-       gl_debug (DEBUG_VIEW, "");
-
-       g_return_val_if_fail (view && GL_IS_VIEW (view), FALSE);
-
-       return view->zoom <= zooms[N_ZOOMS-1];
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  Handle "selection-clear" signal.                                */
-/*---------------------------------------------------------------------------*/
-static void
-selection_clear_cb (GtkWidget         *widget,
-                   GdkEventSelection *event,
-                   glView            *view)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       view->have_selection = FALSE;
-       g_object_unref (view->selection_data);
-       view->selection_data = NULL;
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  Handle "selection-get" signal.                                  */
-/*---------------------------------------------------------------------------*/
-static void
-selection_get_cb (GtkWidget        *widget,
-                 GtkSelectionData *selection_data,
-                 guint             info,
-                 guint             time,
-                 glView           *view)
-{
-       gchar            *buffer;
-       glXMLLabelStatus  status;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       if (view->have_selection) {
-
-               buffer = gl_xml_label_save_buffer (view->selection_data,
-                                                  &status);
-               gtk_selection_data_set (selection_data,
-                                       GDK_SELECTION_TYPE_STRING, 8,
-                                       (guchar *)buffer, strlen (buffer));
-               g_free (buffer);
-       }
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/*---------------------------------------------------------------------------*/
-/* PRIVATE.  Handle "selection-received" signal.  (Result of Paste)          */
-/*---------------------------------------------------------------------------*/
-static void
-selection_received_cb (GtkWidget        *widget,
-                      GtkSelectionData *selection_data,
-                      guint             time,
-                      glView           *view)
-{
-       glLabel          *label = NULL;
-       glXMLLabelStatus  status;
-       GList            *p, *p_next;
-       glLabelObject    *object, *newobject;
-
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       if (selection_data->length < 0) {
-               return;
-       }
-       if (selection_data->type != GDK_SELECTION_TYPE_STRING) {
-               return;
-       }
-
-       gl_view_unselect_all (view);
-
-       label = gl_xml_label_open_buffer ((gchar *)selection_data->data, &status);
-       for (p = label->objects; p != NULL; p = p_next) {
-               p_next = p->next;
-
-               object = (glLabelObject *) p->data;
-               newobject = gl_label_object_dup (object, view->label);
-
-               gl_debug (DEBUG_VIEW, "object pasted");
-       }
-       g_object_unref (label);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/****************************************************************************/
-/* Set default font family.                                                 */
-/****************************************************************************/
-void
-gl_view_set_default_font_family (glView      *view,
-                                const gchar *font_family)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       if (view->default_font_family) {
-               g_free (view->default_font_family);
-       }
-       view->default_font_family = g_strdup (font_family);
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-
-/****************************************************************************/
-/* Set default font size.                                                   */
-/****************************************************************************/
-void
-gl_view_set_default_font_size (glView  *view,
-                              gdouble  font_size)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       view->default_font_size = font_size;
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-
-/****************************************************************************/
-/* Set default font weight.                                                 */
-/****************************************************************************/
-void
-gl_view_set_default_font_weight (glView      *view,
-                                PangoWeight  font_weight)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       view->default_font_weight = font_weight;
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-
-/****************************************************************************/
-/* Set default font italic flag.                                            */
-/****************************************************************************/
-void
-gl_view_set_default_font_italic_flag (glView   *view,
-                                     gboolean  font_italic_flag)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       view->default_font_italic_flag = font_italic_flag;
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-
-/****************************************************************************/
-/* Set default text color.                                                  */
-/****************************************************************************/
-void
-gl_view_set_default_text_color (glView *view,
-                               guint   text_color)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       view->default_text_color = text_color;
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-
-/****************************************************************************/
-/* Set default text alignment.                                              */
-/****************************************************************************/
-void
-gl_view_set_default_text_alignment (glView           *view,
-                                   PangoAlignment    text_alignment)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       view->default_text_alignment = text_alignment;
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-/****************************************************************************/
-/* Set default text line spacing.                                           */
-/****************************************************************************/
-void
-gl_view_set_default_text_line_spacing (glView  *view,
-                                      gdouble  text_line_spacing)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       view->default_text_line_spacing = text_line_spacing;
-
-       gl_debug (DEBUG_VIEW, "END");
-}
 
-
-/****************************************************************************/
-/* Set default line width.                                                  */
-/****************************************************************************/
-void
-gl_view_set_default_line_width (glView  *view,
-                               gdouble  line_width)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       view->default_line_width = line_width;
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-
-/****************************************************************************/
-/* Set default line color.                                                  */
-/****************************************************************************/
-void
-gl_view_set_default_line_color (glView *view,
-                               guint   line_color)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       view->default_line_color = line_color;
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-
-/****************************************************************************/
-/* Set default fill color.                                                  */
-/****************************************************************************/
-void
-gl_view_set_default_fill_color (glView *view,
-                               guint   fill_color)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_if_fail (view && GL_IS_VIEW (view));
-
-       view->default_fill_color = fill_color;
-
-       gl_debug (DEBUG_VIEW, "END");
-}
-
-
-
-/****************************************************************************/
-/* Get default font family.                                                 */
-/****************************************************************************/
-gchar *
-gl_view_get_default_font_family (glView *view)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_val_if_fail (view && GL_IS_VIEW (view), NULL);
-
-       gl_debug (DEBUG_VIEW, "END");
-
-       return g_strdup (view->default_font_family);
-}
-
-
-/****************************************************************************/
-/* Get default font size.                                                   */
-/****************************************************************************/
+/*****************************************************************************/
+/* Get current zoom factor.                                                  */
+/*****************************************************************************/
 gdouble
-gl_view_get_default_font_size (glView *view)
+gl_view_get_zoom (glView *view)
 {
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_val_if_fail (view && GL_IS_VIEW (view), 12.0);
+       gl_debug (DEBUG_VIEW, "");
 
-       gl_debug (DEBUG_VIEW, "END");
+       g_return_val_if_fail (view && GL_IS_VIEW (view), 1.0);
 
-       return view->default_font_size;
+       return view->zoom;
 }
 
 
-/****************************************************************************/
-/* Get default font weight.                                                 */
-/****************************************************************************/
-PangoWeight
-gl_view_get_default_font_weight (glView *view)
+/*****************************************************************************/
+/* Is this the maximum zoom level.                                           */
+/*****************************************************************************/
+gboolean
+gl_view_is_zoom_max (glView *view)
 {
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_val_if_fail (view && GL_IS_VIEW (view), PANGO_WEIGHT_NORMAL);
+       gl_debug (DEBUG_VIEW, "");
 
-       gl_debug (DEBUG_VIEW, "END");
+       g_return_val_if_fail (GL_IS_VIEW (view), FALSE);
 
-       return view->default_font_weight;
+       return view->zoom >= zooms[0];
 }
 
 
-/****************************************************************************/
-/* Get default font italic flag.                                            */
-/****************************************************************************/
+/*****************************************************************************/
+/* Is this the minimum zoom level.                                           */
+/*****************************************************************************/
 gboolean
-gl_view_get_default_font_italic_flag (glView *view)
+gl_view_is_zoom_min (glView *view)
 {
-       gl_debug (DEBUG_VIEW, "START");
+       gl_debug (DEBUG_VIEW, "");
 
        g_return_val_if_fail (view && GL_IS_VIEW (view), FALSE);
 
-       gl_debug (DEBUG_VIEW, "END");
-
-       return view->default_font_italic_flag;
-}
-
-
-/****************************************************************************/
-/* Get default text color.                                                  */
-/****************************************************************************/
-guint
-gl_view_get_default_text_color (glView *view)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_val_if_fail (view && GL_IS_VIEW (view), 0);
-
-       gl_debug (DEBUG_VIEW, "END");
-
-       return view->default_text_color;
-}
-
-
-/****************************************************************************/
-/* Get default text alignment.                                              */
-/****************************************************************************/
-PangoAlignment
-gl_view_get_default_text_alignment (glView *view)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_val_if_fail (view && GL_IS_VIEW (view), PANGO_ALIGN_LEFT);
-
-       gl_debug (DEBUG_VIEW, "END");
-
-       return view->default_text_alignment;
-}
-
-/****************************************************************************/
-/* Get default text line spacing.                                           */
-/****************************************************************************/
-gdouble
-gl_view_get_default_text_line_spacing (glView *view)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_val_if_fail (view && GL_IS_VIEW (view), 1.0);
-
-       gl_debug (DEBUG_VIEW, "END");
-
-       return view->default_text_line_spacing;
-}
-
-
-
-/****************************************************************************/
-/* Get default line width.                                                  */
-/****************************************************************************/
-gdouble
-gl_view_get_default_line_width (glView *view)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_val_if_fail (view && GL_IS_VIEW (view), 1.0);
-
-       gl_debug (DEBUG_VIEW, "END");
-
-       return view->default_line_width;
-}
-
-
-/****************************************************************************/
-/* Get default line color.                                                  */
-/****************************************************************************/
-guint
-gl_view_get_default_line_color (glView *view)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_val_if_fail (view && GL_IS_VIEW (view), 0);
-
-       gl_debug (DEBUG_VIEW, "END");
-
-       return view->default_line_color;
+       return view->zoom <= zooms[N_ZOOMS-1];
 }
 
 
-/****************************************************************************/
-/* Get default fill color.                                                  */
-/****************************************************************************/
-guint
-gl_view_get_default_fill_color (glView *view)
-{
-       gl_debug (DEBUG_VIEW, "START");
-
-       g_return_val_if_fail (view && GL_IS_VIEW (view), 0);
-
-       gl_debug (DEBUG_VIEW, "END");
-
-       return view->default_fill_color;
-}
-
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Focus in event handler.                                         */
 /*---------------------------------------------------------------------------*/
@@ -3134,11 +1335,10 @@ static gboolean
 focus_in_event_cb (glView            *view,
                    GdkEventFocus     *event)
 {
-        GTK_WIDGET_SET_FLAGS (GTK_WIDGET (view->canvas), GTK_HAS_FOCUS);
-
         return FALSE;
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Focus out event handler.                                        */
 /*---------------------------------------------------------------------------*/
@@ -3146,11 +1346,10 @@ static gboolean
 focus_out_event_cb (glView            *view,
                     GdkEventFocus     *event)
 {
-        GTK_WIDGET_UNSET_FLAGS (GTK_WIDGET (view->canvas), GTK_HAS_FOCUS);
-
         return FALSE;
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Enter notify event handler.                                     */
 /*---------------------------------------------------------------------------*/
@@ -3161,6 +1360,7 @@ enter_notify_event_cb (glView            *view,
         return FALSE;
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Leave notify event handler.                                     */
 /*---------------------------------------------------------------------------*/
@@ -3174,6 +1374,7 @@ leave_notify_event_cb (glView            *view,
         return FALSE;
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Motion notify event handler.                                    */
 /*---------------------------------------------------------------------------*/
@@ -3182,13 +1383,18 @@ motion_notify_event_cb (glView            *view,
                         GdkEventMotion    *event)
 {
         gboolean            return_value = FALSE;
+        GdkWindow          *bin_window;
+        GdkWindow          *window;
        cairo_t            *cr;
         gdouble             scale;
         gdouble             x, y;
         GdkCursor          *cursor;
-        glViewObjectHandle  handle;
+        glLabelObjectHandle handle;
+
+        bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (view->canvas));
+        window = gtk_widget_get_window (view->canvas);
 
-       cr = gdk_cairo_create (GTK_LAYOUT (view->canvas)->bin_window);
+       cr = gdk_cairo_create (bin_window);
 
         /*
          * Translate to label coordinates
@@ -3217,12 +1423,12 @@ motion_notify_event_cb (glView            *view,
                 {
 
                 case GL_VIEW_IDLE:
-                        if ( gl_view_is_selection_atomic (view) &&
-                             view_handle_at (view, cr, event->x, event->y, &handle) )
+                        if ( gl_label_is_selection_atomic (view->label) &&
+                             gl_label_get_handle_at (view->label, cr, event->x, event->y, &handle) )
                         {
                                 cursor = gdk_cursor_new (GDK_CROSSHAIR);
                         }
-                        else if (view_view_object_at (view, cr, event->x, event->y))
+                        else if (gl_label_object_at (view->label, cr, event->x, event->y))
                         {
                                 cursor = gdk_cursor_new (GDK_FLEUR);
                         }
@@ -3230,7 +1436,7 @@ motion_notify_event_cb (glView            *view,
                         {
                                 cursor = gdk_cursor_new (GDK_LEFT_PTR);
                         }
-                        gdk_window_set_cursor (view->canvas->window, cursor);
+                        gdk_window_set_cursor (window, cursor);
                         gdk_cursor_unref (cursor);
                         break;
 
@@ -3248,7 +1454,7 @@ motion_notify_event_cb (glView            *view,
                         break;
 
                 case GL_VIEW_ARROW_MOVE:
-                        gl_view_move_selection (view,
+                        gl_label_move_selection (view->label,
                                                 (x - view->move_last_x),
                                                 (y - view->move_last_y));
                         view->move_last_x = x;
@@ -3256,12 +1462,7 @@ motion_notify_event_cb (glView            *view,
                         break;
 
                 case GL_VIEW_ARROW_RESIZE:
-                        gl_view_object_resize_event (view->resize_object,
-                                                     view->resize_handle,
-                                                     view->resize_honor_aspect,
-                                                     cr,
-                                                     event->x,
-                                                     event->y);
+                        resize_event (view, cr, event->x, event->y);
                         break;
 
                 default:
@@ -3315,7 +1516,7 @@ motion_notify_event_cb (glView            *view,
          */
         if (view->grabbed_flag && !gdk_pointer_is_grabbed ())
         {
-                gdk_pointer_grab (GTK_LAYOUT (view->canvas)->bin_window,
+                gdk_pointer_grab (bin_window,
                                   FALSE,
                                   (GDK_BUTTON1_MOTION_MASK | GDK_BUTTON_RELEASE_MASK),
                                   NULL,
@@ -3326,6 +1527,7 @@ motion_notify_event_cb (glView            *view,
         return return_value;
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Button press event handler.                                     */
 /*---------------------------------------------------------------------------*/
@@ -3334,15 +1536,18 @@ button_press_event_cb (glView            *view,
                        GdkEventButton    *event)
 {
         gboolean            return_value = FALSE;
+        GdkWindow          *bin_window;
        cairo_t            *cr;
         gdouble             scale;
         gdouble             x, y;
-        glViewObject       *view_object;
-        glViewObjectHandle  handle;
+        glLabelObject      *object;
+        glLabelObjectHandle handle;
 
         gtk_widget_grab_focus(GTK_WIDGET (view->canvas));
 
-       cr = gdk_cairo_create (GTK_LAYOUT (view->canvas)->bin_window);
+        bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (view->canvas));
+
+       cr = gdk_cairo_create (bin_window);
 
         /*
          * Translate to label coordinates
@@ -3365,36 +1570,36 @@ button_press_event_cb (glView            *view,
                 switch (view->mode)
                 {
                 case GL_VIEW_MODE_ARROW:
-                        if ( gl_view_is_selection_atomic (view) &&
-                             (view_object = view_handle_at (view, cr, event->x, event->y, &handle)) )
+                        if ( gl_label_is_selection_atomic (view->label) &&
+                             (object = gl_label_get_handle_at (view->label, cr, event->x, event->y, &handle)) )
                         {
-                                view->resize_object = view_object;
+                                view->resize_object = object;
                                 view->resize_handle = handle;
                                 view->resize_honor_aspect = event->state & GDK_CONTROL_MASK;
 
                                 view->state = GL_VIEW_ARROW_RESIZE;
                         }
-                        else if ((view_object = view_view_object_at (view, cr, event->x, event->y)))
+                        else if ((object = gl_label_object_at (view->label, cr, event->x, event->y)))
                         {
                                 if (event->state & GDK_CONTROL_MASK)
                                 {
-                                        if (gl_view_is_object_selected (view, view_object))
+                                        if (gl_label_object_is_selected (object))
                                         {
                                                 /* Un-selecting a selected item */
-                                                gl_view_unselect_object (view, view_object);
+                                                gl_label_unselect_object (view->label, object);
                                         } else {
                                                 /* Add to current selection */
-                                                gl_view_select_object (view, view_object);
+                                                gl_label_select_object (view->label, object);
                                         }
                                 }
                                 else
                                 {
-                                        if (!gl_view_is_object_selected (view, view_object))
+                                        if (!gl_label_object_is_selected (object))
                                         {
                                                 /* remove any selections before adding */
-                                                gl_view_unselect_all (view);
+                                                gl_label_unselect_all (view->label);
                                                 /* Add to current selection */
-                                                gl_view_select_object (view, view_object);
+                                                gl_label_select_object (view->label, object);
                                         }
                                 }
                                 view->move_last_x = x;
@@ -3406,7 +1611,7 @@ button_press_event_cb (glView            *view,
                         {
                                 if (!(event->state & GDK_CONTROL_MASK))
                                 {
-                                        gl_view_unselect_all (view);
+                                        gl_label_unselect_all (view->label);
                                 }
 
                                 view->select_region_visible = TRUE;
@@ -3455,7 +1660,7 @@ button_press_event_cb (glView            *view,
                 }
 
                 view->grabbed_flag = TRUE;
-                gdk_pointer_grab (GTK_LAYOUT (view->canvas)->bin_window,
+                gdk_pointer_grab (bin_window,
                                   FALSE,
                                   (GDK_BUTTON1_MOTION_MASK | GDK_BUTTON_RELEASE_MASK),
                                   NULL,
@@ -3477,6 +1682,7 @@ button_press_event_cb (glView            *view,
         return return_value;
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Button release event handler.                                   */
 /*---------------------------------------------------------------------------*/
@@ -3485,12 +1691,17 @@ button_release_event_cb (glView            *view,
                          GdkEventButton    *event)
 {
         gboolean     return_value = FALSE;
+        GdkWindow   *bin_window;
+        GdkWindow   *window;
        cairo_t     *cr;
         gdouble      scale;
         gdouble      x, y;
         GdkCursor   *cursor;
 
-       cr = gdk_cairo_create (GTK_LAYOUT (view->canvas)->bin_window);
+        bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (view->canvas));
+        window = gtk_widget_get_window (view->canvas);
+
+       cr = gdk_cairo_create (bin_window);
 
         /*
          * Translate to label coordinates
@@ -3534,7 +1745,7 @@ button_release_event_cb (glView            *view,
                                 view->select_region.x2 = x;
                                 view->select_region.y2 = y;
 
-                                gl_view_select_region (view, &view->select_region);
+                                gl_label_select_region (view->label, &view->select_region);
 
                                 view->state = GL_VIEW_IDLE;
                                 break;
@@ -3576,8 +1787,10 @@ button_release_event_cb (glView            *view,
                         view->mode = GL_VIEW_MODE_ARROW;
                         view->state = GL_VIEW_IDLE;
                         cursor = gdk_cursor_new (GDK_LEFT_PTR);
-                        gdk_window_set_cursor (view->canvas->window, cursor);
+                        gdk_window_set_cursor (window, cursor);
                         gdk_cursor_unref (cursor);
+
+                        gl_label_select_object (view->label, view->create_object);
                         break;
 
 
@@ -3592,6 +1805,7 @@ button_release_event_cb (glView            *view,
         return return_value;
 }
 
+
 /*---------------------------------------------------------------------------*/
 /* PRIVATE.  Key press event handler.                                        */
 /*---------------------------------------------------------------------------*/
@@ -3599,37 +1813,39 @@ static gboolean
 key_press_event_cb (glView            *view,
                     GdkEventKey       *event)
 {
+        GdkWindow *window;
         GdkCursor *cursor;
 
         gl_debug (DEBUG_VIEW, "");
 
+        window = gtk_widget_get_window (view->canvas);
+
         if ( (view->mode == GL_VIEW_MODE_ARROW) &&
              (view->state == GL_VIEW_IDLE) )
         {
                 switch (event->keyval) {
 
-                case GDK_Left:
-                case GDK_KP_Left:
-                        gl_view_move_selection (view, -1.0 / (view->zoom), 0.0);
+                case GDK_KEY_Left:
+                case GDK_KEY_KP_Left:
+                        gl_label_move_selection (view->label, -1.0 / (view->zoom), 0.0);
                         break;
-                case GDK_Up:
-                case GDK_KP_Up:
-                        gl_view_move_selection (view, 0.0, -1.0 / (view->zoom));
+                case GDK_KEY_Up:
+                case GDK_KEY_KP_Up:
+                        gl_label_move_selection (view->label, 0.0, -1.0 / (view->zoom));
                         break;
-                case GDK_Right:
-                case GDK_KP_Right:
-                        gl_view_move_selection (view, 1.0 / (view->zoom), 0.0);
+                case GDK_KEY_Right:
+                case GDK_KEY_KP_Right:
+                        gl_label_move_selection (view->label, 1.0 / (view->zoom), 0.0);
                         break;
-                case GDK_Down:
-                case GDK_KP_Down:
-                        gl_view_move_selection (view, 0.0, 1.0 / (view->zoom));
+                case GDK_KEY_Down:
+                case GDK_KEY_KP_Down:
+                        gl_label_move_selection (view->label, 0.0, 1.0 / (view->zoom));
                         break;
-                case GDK_Delete:
-                case GDK_KP_Delete:
-                        gl_view_delete_selection (view);
+                case GDK_KEY_Delete:
+                case GDK_KEY_KP_Delete:
+                        gl_label_delete_selection (view->label);
                         cursor = gdk_cursor_new (GDK_LEFT_PTR);
-                        gdk_window_set_cursor (GTK_WIDGET (view->canvas)->window
-, cursor);
+                        gdk_window_set_cursor (window, cursor);
                         gdk_cursor_unref (cursor);
                         break;
                 default:
@@ -3640,3 +1856,192 @@ key_press_event_cb (glView            *view,
         return TRUE;    /* We handled this or we were dragging. */
 }
 
+
+/*---------------------------------------------------------------------------*/
+/* PRIVATE.  Resize object.                                                  */
+/*---------------------------------------------------------------------------*/
+static void
+resize_event (glView             *view,
+              cairo_t            *cr,
+              gdouble             x,
+              gdouble             y)
+{
+        cairo_matrix_t matrix;
+        gdouble        x0, y0, x1, y1, x2, y2;
+        gdouble        w, h;
+        gdouble        dx=0, dy=0;
+
+       gl_debug (DEBUG_VIEW, "x,y world = %g, %g", x, y);
+
+        /*
+         * Change to item relative coordinates
+         */
+        cairo_save (cr);
+        gl_label_object_get_position (view->resize_object, &x0, &y0);
+        cairo_translate (cr, x0, y0);
+        gl_label_object_get_matrix (view->resize_object, &matrix);
+        cairo_transform (cr, &matrix);
+
+        /*
+         * Initialize origin and 2 corners in object relative coordinates.
+         */
+        x0 = 0.0;
+        y0 = 0.0;
+
+        x1 = 0.0;
+        y1 = 0.0;
+
+        gl_label_object_get_size (view->resize_object, &x2, &y2);
+
+       gl_debug (DEBUG_VIEW, "x0,y0 object = %g, %g", x0, y0);
+       gl_debug (DEBUG_VIEW, "x1,y1 object = %g, %g", x1, y1);
+       gl_debug (DEBUG_VIEW, "x2,y2 object = %g, %g", x2, y2);
+
+        /*
+         * Translate x,y into object relative coordinates.
+         */
+        cairo_device_to_user (cr, &x, &y);
+
+       gl_debug (DEBUG_VIEW, "x,y object = %g, %g", x, y);
+        
+        /*
+         * Get new size
+         */
+        switch (view->resize_handle)
+        {
+
+        case GL_LABEL_OBJECT_HANDLE_NW:
+                w = MAX (x2 - x, 0);
+                h = MAX (y2 - y, 0);
+                break;
+
+        case GL_LABEL_OBJECT_HANDLE_N:
+                w = x2 - x1;
+                h = MAX (y2 - y, 0);
+                break;
+
+        case GL_LABEL_OBJECT_HANDLE_NE:
+                w = MAX (x - x1, 0);
+                h = MAX (y2 - y, 0);
+                break;
+
+        case GL_LABEL_OBJECT_HANDLE_E:
+                w = MAX (x - x1, 0);
+                h = y2 - y1;
+                break;
+
+        case GL_LABEL_OBJECT_HANDLE_SE:
+                w = MAX (x - x1, 0);
+                h = MAX (y - y1, 0);
+                break;
+
+        case GL_LABEL_OBJECT_HANDLE_S:
+                w = x2 - x1;
+                h = MAX (y - y1, 0);
+                break;
+
+        case GL_LABEL_OBJECT_HANDLE_SW:
+                w = MAX (x2 - x, 0);
+                h = MAX (y - y1, 0);
+                break;
+
+        case GL_LABEL_OBJECT_HANDLE_W:
+                w = MAX (x2 - x, 0);
+                h = y2 - y1;
+                break;
+        case GL_LABEL_OBJECT_HANDLE_P1:
+                x1 = x;
+                y1 = y;
+                dx = (x2 - x);
+                dy = (y2 - y);
+                x0 = x0 + x1;
+                y0 = y0 + y1;
+                break;
+
+        case GL_LABEL_OBJECT_HANDLE_P2:
+                dx = x - x1;
+                dy = y - y1;
+                x0 = x0 + x1;
+                y0 = y0 + y1;
+                break;
+
+        default:
+                g_print ("Invalid handle.\n");  /* Should not happen! */
+
+        }
+
+        if ( (view->resize_handle != GL_LABEL_OBJECT_HANDLE_P1) &&
+             (view->resize_handle != GL_LABEL_OBJECT_HANDLE_P2) )
+        {
+                if ( view->resize_honor_aspect )
+                {
+                        gl_label_object_set_size_honor_aspect (view->resize_object, w, h, TRUE);
+                }
+                else
+                {
+                        gl_label_object_set_size (view->resize_object, w, h, TRUE);
+                }
+
+                /*
+                 * Query the new size in case it was constrained.
+                 */
+                gl_label_object_get_size (view->resize_object, &w, &h);
+
+                /*
+                 * Get new position
+                 */
+                switch (view->resize_handle)
+                {
+
+                case GL_LABEL_OBJECT_HANDLE_NW:
+                        x0 += x2 - w;
+                        y0 += y2 - h;
+                        break;
+
+                case GL_LABEL_OBJECT_HANDLE_N:
+                case GL_LABEL_OBJECT_HANDLE_NE:
+                        /* x unchanged */
+                        y0 += y2 - h;
+                        break;
+
+                case GL_LABEL_OBJECT_HANDLE_E:
+                case GL_LABEL_OBJECT_HANDLE_SE:
+                case GL_LABEL_OBJECT_HANDLE_S:
+                        /* unchanged */
+                        break;
+
+                case GL_LABEL_OBJECT_HANDLE_SW:
+                case GL_LABEL_OBJECT_HANDLE_W:
+                        x0 += x2 - w;
+                        /* y unchanged */
+                        break;
+
+                default:
+                        g_print ("Invalid handle.\n");  /* Should not happen! */
+                }
+        }
+        else
+        {
+                gl_label_object_set_size (view->resize_object, dx, dy, TRUE);
+        }
+
+        /*
+         * Put new origin back into world coordinates and set.
+         */
+        cairo_user_to_device (cr, &x0, &y0);
+        cairo_restore (cr);
+        cairo_device_to_user (cr, &x0, &y0);
+        gl_label_object_set_position (view->resize_object, x0, y0, FALSE);
+}
+
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 38c3ed804a2c6c4fd83122cc7e838fffffc45629..a23efa7bbe2bba0ec4e9f6f0bdaacd1bbde6189f 100644 (file)
@@ -1,31 +1,27 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  view.h:  GLabels View module header file
+ *  view.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __VIEW_H__
 #define __VIEW_H__
 
-#include <gtk/gtkvbox.h>
+#include <gtk/gtk.h>
 
 #include "label-object.h"
 
@@ -39,20 +35,23 @@ typedef enum {
         GL_VIEW_ARROW_SELECT_REGION,
         GL_VIEW_ARROW_MOVE,
         GL_VIEW_ARROW_RESIZE,
-        GL_VIEW_CREATE_DRAG,
+        GL_VIEW_CREATE_DRAG
 } glViewState;
 
 #define GL_TYPE_VIEW            (gl_view_get_type ())
-#define GL_VIEW(obj)            (GTK_CHECK_CAST((obj), GL_TYPE_VIEW, glView ))
-#define GL_VIEW_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_VIEW, glViewClass))
-#define GL_IS_VIEW(obj)         (GTK_CHECK_TYPE ((obj), GL_TYPE_VIEW))
-#define GL_IS_VIEW_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_VIEW))
+#define GL_VIEW(obj) \
+        (G_TYPE_CHECK_INSTANCE_CAST((obj), GL_TYPE_VIEW, glView ))
+#define GL_VIEW_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_VIEW, glViewClass))
+#define GL_IS_VIEW(obj) \
+        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_VIEW))
+#define GL_IS_VIEW_CLASS(klass) \
+        (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_VIEW))
 
 typedef struct _glView      glView;
 typedef struct _glViewClass glViewClass;
 
-#include "view-object.h"
-#include "color.h"
+
 
 struct _glView {
        GtkVBox            parent_widget;
@@ -86,48 +85,20 @@ struct _glView {
         glLabelRegion      select_region;
 
         /* GL_VIEW_ARROW_RESIZE state */
-        glViewObject      *resize_object;
-        glViewObjectHandle resize_handle;
-        gboolean           resize_honor_aspect;
+        glLabelObject      *resize_object;
+        glLabelObjectHandle resize_handle;
+        gboolean            resize_honor_aspect;
 
         /* GL_VIEW_CREATE_DRAG state */
         glLabelObject     *create_object;
         gdouble            create_x0;
         gdouble            create_y0;
 
-       GList             *object_list;           /* glViewObjects */
-       GList             *selected_object_list;  /* glViewObjects */
-
-       /* Clipboard selection stuff */
-       gint               have_selection;
-       glLabel           *selection_data;
-       GtkWidget         *invisible;
-
-       /* Default object text properties */
-       gchar             *default_font_family;
-       gdouble            default_font_size;
-       PangoWeight        default_font_weight;
-       gboolean           default_font_italic_flag;
-       guint              default_text_color;
-       PangoAlignment     default_text_alignment;
-       gdouble            default_text_line_spacing;
-
-       /* Default object line properties */
-       gdouble            default_line_width;
-       guint              default_line_color;
-       
-       /* Default object fill properties */
-       guint              default_fill_color;
-
 };
 
 struct _glViewClass {
        GtkVBoxClass      parent_class;
 
-       /* Selection changed signal */
-       void (*selection_changed) (glView   *view,
-                                  gpointer  user_data);
-
        /* Signal to launch a context menu */
        void (*context_menu_activate) (glView   *view,
                                       gint      button,
@@ -165,9 +136,6 @@ void       gl_view_show_grid               (glView            *view);
 
 void       gl_view_hide_grid               (glView            *view);
 
-void       gl_view_set_grid_spacing        (glView            *view,
-                                           gdouble            spacing);
-
 void       gl_view_show_markup             (glView            *view);
 
 void       gl_view_hide_markup             (glView            *view);
@@ -178,111 +146,6 @@ void       gl_view_object_create_mode      (glView            *view,
                                            glLabelObjectType  type);
 
 
-void       gl_view_select_object           (glView            *view,
-                                           glViewObject      *view_object);
-
-void       gl_view_unselect_object         (glView            *view,
-                                           glViewObject      *view_object);
-
-void       gl_view_select_all              (glView            *view);
-
-void       gl_view_unselect_all            (glView            *view);
-
-void       gl_view_select_region           (glView            *view,
-                                            glLabelRegion     *region);
-
-gboolean   gl_view_is_object_selected      (glView            *view,
-                                           glViewObject      *view_object);
-
-gboolean   gl_view_is_selection_empty      (glView            *view);
-
-gboolean   gl_view_is_selection_atomic     (glView            *view);
-
-void       gl_view_delete_selection        (glView            *view);
-
-GtkWidget *gl_view_get_editor              (glView            *view);
-
-void       gl_view_raise_selection         (glView            *view);
-
-void       gl_view_lower_selection         (glView            *view);
-
-void       gl_view_rotate_selection        (glView            *view,
-                                           gdouble            theta_degs);
-
-void       gl_view_rotate_selection_left   (glView            *view);
-
-void       gl_view_rotate_selection_right  (glView            *view);
-
-void       gl_view_flip_selection_horiz    (glView            *view);
-
-void       gl_view_flip_selection_vert     (glView            *view);
-
-void       gl_view_align_selection_left    (glView            *view);
-
-void       gl_view_align_selection_right   (glView            *view);
-
-void       gl_view_align_selection_hcenter (glView            *view);
-
-void       gl_view_align_selection_top     (glView            *view);
-
-void       gl_view_align_selection_bottom  (glView            *view);
-
-void       gl_view_align_selection_vcenter (glView            *view);
-
-void       gl_view_center_selection_horiz  (glView            *view);
-
-void       gl_view_center_selection_vert   (glView            *view);
-
-void       gl_view_move_selection          (glView            *view,
-                                           gdouble            dx,
-                                           gdouble            dy);
-
-gboolean   gl_view_can_selection_text             (glView           *view);
-
-void       gl_view_set_selection_font_family      (glView           *view,
-                                                  const gchar      *font_family);
-
-void       gl_view_set_selection_font_size        (glView           *view,
-                                                  gdouble           font_size);
-
-void       gl_view_set_selection_font_weight      (glView           *view,
-                                                  PangoWeight      font_weight);
-
-void       gl_view_set_selection_text_line_spacing (glView           *view,
-                                                  gdouble           text_line_spacing);
-
-void       gl_view_set_selection_font_italic_flag (glView           *view,
-                                                  gboolean          font_italic_flag);
-
-void       gl_view_set_selection_text_alignment   (glView           *view,
-                                                  PangoAlignment    text_alignment);
-
-void       gl_view_set_selection_text_color       (glView           *view,
-                                                  glColorNode      *text_color_node);
-
-gboolean   gl_view_can_selection_fill             (glView           *view);
-
-void       gl_view_set_selection_fill_color       (glView           *view,
-                                                  glColorNode      *fill_color);
-
-gboolean   gl_view_can_selection_line_color       (glView           *view);
-
-void       gl_view_set_selection_line_color       (glView           *view,
-                                                  glColorNode      *line_color_node);
-
-gboolean   gl_view_can_selection_line_width       (glView           *view);
-
-void       gl_view_set_selection_line_width       (glView           *view,
-                                                  gdouble           line_width);
-
-
-void       gl_view_cut                     (glView            *view);
-
-void       gl_view_copy                    (glView            *view);
-
-void       gl_view_paste                   (glView            *view);
-
-
 void       gl_view_zoom_in                 (glView            *view);
 
 void       gl_view_zoom_out                (glView            *view);
@@ -299,59 +162,19 @@ gboolean   gl_view_is_zoom_max             (glView            *view);
 gboolean   gl_view_is_zoom_min             (glView            *view);
 
 
-void       gl_view_set_default_font_family      (glView            *view,
-                                                const gchar       *font_family);
-
-void       gl_view_set_default_font_size        (glView            *view,
-                                                gdouble            font_size);
-
-void       gl_view_set_default_font_weight      (glView            *view,
-                                                PangoWeight        font_weight);
-
-void       gl_view_set_default_font_italic_flag (glView            *view,
-                                                gboolean           font_italic_flag);
-
-void       gl_view_set_default_text_color       (glView            *view,
-                                                guint              text_color);
-
-void       gl_view_set_default_text_alignment   (glView            *view,
-                                                PangoAlignment     text_alignment);
 
-void       gl_view_set_default_line_width       (glView            *view,
-                                                gdouble            line_width);
 
-void       gl_view_set_default_line_color       (glView            *view,
-                                                guint              line_color);
-
-void       gl_view_set_default_fill_color       (glView            *view,
-                                                guint              fill_color);
-void       gl_view_set_default_text_line_spacing (glView            *view,
-                                                gdouble            text_line_spacing);
-
-
-
-gchar           *gl_view_get_default_font_family      (glView            *view);
-
-gdouble          gl_view_get_default_font_size        (glView            *view);
-
-PangoWeight      gl_view_get_default_font_weight      (glView            *view);
-
-gboolean         gl_view_get_default_font_italic_flag (glView            *view);
-
-guint            gl_view_get_default_text_color       (glView            *view);
-
-PangoAlignment   gl_view_get_default_text_alignment   (glView            *view);
-
-gdouble          gl_view_get_default_text_line_spacing (glView            *view);
-
-gdouble          gl_view_get_default_line_width       (glView            *view);
-
-guint            gl_view_get_default_line_color       (glView            *view);
+G_END_DECLS
 
-guint            gl_view_get_default_fill_color       (glView            *view);
+#endif
 
 
 
-G_END_DECLS
-
-#endif
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 84e32441a5e3f8f9bac27fd953cac58c7f394249..8f5f1b7af419483c0592d8e3c75000e128caed8e 100644 (file)
@@ -1,35 +1,30 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  warning-handler.c:  non-critical error handler
+ *  warning-handler.c
+ *  Copyright (C) 2005-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2005  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 
 #include "warning-handler.h"
 
-#include <glib/gmessages.h>
+#include <glib.h>
 #include <glib/gi18n.h>
-#include <gtk/gtkmessagedialog.h>
-#include <gtk/gtkstock.h>
+#include <gtk/gtk.h>
 #include <stdlib.h>
 
 static void warning_handler (const gchar    *log_domain,
@@ -37,7 +32,7 @@ static void warning_handler (const gchar    *log_domain,
                              const gchar    *message,
                              gpointer        user_data);
 
-\f
+
 /***************************************************************************/
 /* Initialize error handler.                                               */
 /***************************************************************************/
@@ -55,6 +50,7 @@ gl_warning_handler_init (void)
                            "glabels");
 }
 
+
 /*-------------------------------------------------------------------------*/
 /* PRIVATE.  Actual error handler.                                         */
 /*-------------------------------------------------------------------------*/
@@ -79,3 +75,13 @@ warning_handler (const gchar    *log_domain,
        gtk_widget_destroy (GTK_WIDGET (dialog));
 }
 
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 911cc16ae275ad236e7ee65d067516c68e8fcfe6..e7f51d0f023b2461febd2f1f5f2afb9d3ba315a6 100644 (file)
@@ -1,31 +1,27 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  warning-handler.h:  non-critical error handler header file
+ *  warning-handler.h
+ *  Copyright (C) 2005-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2005  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __WARNING_HANDLER_H__
 #define __WARNING_HANDLER_H__
 
-#include <glib/gmacros.h>
+#include <glib.h>
 
 G_BEGIN_DECLS
 
@@ -34,3 +30,14 @@ void gl_warning_handler_init (void);
 G_END_DECLS
 
 #endif
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 7491311f4befdd6c2efaba5e993eb6a8421a83f8..e3cd8c01ae85c1bc58fc3d732b16d97bb356ac5b 100644 (file)
@@ -1,39 +1,36 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/* wdgt-chain-button.c
- * Modified version of gimpchainbutton.c for gLabels:
+/*
+ *  wdgt-chain-button.c
+ *  Modified version of gimpchainbutton.h for gLabels:
+ *
+ *  LIBGIMP - The GIMP Library
+ *  Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
  *
- * LIBGIMP - The GIMP Library
- * Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
+ *  gimpchainbutton.h
+ *  Copyright (C) 1999-2000 Sven Neumann <sven@gimp.org>
  *
- * gimpchainbutton.c
- * Copyright (C) 1999-2000 Sven Neumann <sven@gimp.org>
+ *  Modified or gLabels by Jim Evins <evins@snaught.com>
  *
- * Modified or gLabels by Jim Evins <evins@snaught.com>
  *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ *  This file is part of gLabels.
  *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
  *
- * You should have received a copy of the GNU General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include "wdgt-chain-button.h"
 
-#include <gtk/gtkdrawingarea.h>
-#include <gtk/gtkimage.h>
-#include <gtk/gtkbutton.h>
-
-#include "stock.h"
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
 
 
 enum
@@ -46,16 +43,16 @@ enum
 static void      gl_wdgt_chain_button_clicked_callback (GtkWidget          *widget,
                                                        glWdgtChainButton  *button);
 static gboolean  gl_wdgt_chain_button_draw_lines       (GtkWidget          *widget,
-                                                       GdkEventExpose     *eevent,
+                                                        cairo_t            *cr,
                                                        glWdgtChainButton  *button);
 
 
 static const gchar *gl_wdgt_chain_stock_items[] =
 {
-  GL_STOCK_HCHAIN,
-  GL_STOCK_HCHAIN_BROKEN,
-  GL_STOCK_VCHAIN,
-  GL_STOCK_VCHAIN_BROKEN
+  "changes-prevent",
+  "changes-allow",
+  "changes-prevent",
+  "changes-allow"
 };
 
 
@@ -63,7 +60,7 @@ static guint gl_wdgt_chain_button_signals[LAST_SIGNAL] = { 0 };
 
 
 
-G_DEFINE_TYPE (glWdgtChainButton, gl_wdgt_chain_button, GTK_TYPE_TABLE);
+G_DEFINE_TYPE (glWdgtChainButton, gl_wdgt_chain_button, GTK_TYPE_TABLE)
 
 
 static void
@@ -93,21 +90,23 @@ gl_wdgt_chain_button_init (glWdgtChainButton *button)
        button->line2    = gtk_drawing_area_new ();
        button->image    = gtk_image_new ();
 
-       button->button   = gtk_button_new ();
+       button->button   = gtk_toggle_button_new ();
 
        gtk_button_set_relief (GTK_BUTTON (button->button), GTK_RELIEF_NONE);
+        gtk_button_set_focus_on_click (GTK_BUTTON (button->button), FALSE);
        gtk_container_add (GTK_CONTAINER (button->button), button->image);
        gtk_widget_show (button->image);
 
        g_signal_connect (button->button, "clicked",
                          G_CALLBACK (gl_wdgt_chain_button_clicked_callback),
                          button);
-       g_signal_connect (button->line1, "expose_event",
+       g_signal_connect (button->line1, "draw",
                          G_CALLBACK (gl_wdgt_chain_button_draw_lines),
                          button);
-       g_signal_connect (button->line2, "expose_event",
+       g_signal_connect (button->line2, "draw",
                          G_CALLBACK (gl_wdgt_chain_button_draw_lines),
                          button);
+
 }
 
 
@@ -138,7 +137,7 @@ gl_wdgt_chain_button_new (glWdgtChainPosition position)
 
   button->position = position;
 
-  gtk_image_set_from_stock
+  gtk_image_set_from_icon_name
     (GTK_IMAGE (button->image),
      gl_wdgt_chain_stock_items[((position & GL_WDGT_CHAIN_LEFT) << 1) + ! button->active],
      GTK_ICON_SIZE_BUTTON);
@@ -148,20 +147,20 @@ gl_wdgt_chain_button_new (glWdgtChainPosition position)
       gtk_table_resize (GTK_TABLE (button), 3, 1);
       gtk_table_attach (GTK_TABLE (button), button->button, 0, 1, 1, 2,
                        GTK_SHRINK, GTK_SHRINK, 0, 0);
-      gtk_table_attach_defaults (GTK_TABLE (button),
-                                button->line1, 0, 1, 0, 1);
-      gtk_table_attach_defaults (GTK_TABLE (button),
-                                button->line2, 0, 1, 2, 3);
+      gtk_table_attach (GTK_TABLE (button), button->line1, 0, 1, 0, 1,
+                        GTK_FILL, GTK_EXPAND|GTK_FILL, 0, 0 );
+      gtk_table_attach (GTK_TABLE (button), button->line2, 0, 1, 2, 3,
+                        GTK_FILL, GTK_EXPAND|GTK_FILL, 0, 0 );
     }
   else
     {
       gtk_table_resize (GTK_TABLE (button), 1, 3);
       gtk_table_attach (GTK_TABLE (button), button->button, 1, 2, 0, 1,
                        GTK_SHRINK, GTK_SHRINK, 0, 0);
-      gtk_table_attach_defaults (GTK_TABLE (button),
-                                button->line1, 0, 1, 0, 1);
-      gtk_table_attach_defaults (GTK_TABLE (button),
-                                button->line2, 2, 3, 0, 1);
+      gtk_table_attach (GTK_TABLE (button), button->line1, 0, 1, 0, 1,
+                        GTK_EXPAND|GTK_FILL, GTK_FILL, 0, 0 );
+      gtk_table_attach (GTK_TABLE (button), button->line2, 2, 3, 0, 1,
+                        GTK_EXPAND|GTK_FILL, GTK_FILL, 0, 0 );
     }
 
   gtk_widget_show (button->button);
@@ -181,7 +180,7 @@ gl_wdgt_chain_button_new (glWdgtChainPosition position)
  */
 void
 gl_wdgt_chain_button_set_active (glWdgtChainButton  *button,
-                             gboolean          active)
+                                 gboolean          active)
 {
   g_return_if_fail (GL_WDGT_IS_CHAIN_BUTTON (button));
 
@@ -193,9 +192,15 @@ gl_wdgt_chain_button_set_active (glWdgtChainButton  *button,
 
       num = ((button->position & GL_WDGT_CHAIN_LEFT) << 1) + (active ? 0 : 1);
 
-      gtk_image_set_from_stock (GTK_IMAGE (button->image),
-                                gl_wdgt_chain_stock_items[num],
-                                GTK_ICON_SIZE_BUTTON);
+      gtk_image_set_from_icon_name (GTK_IMAGE (button->image),
+                                    gl_wdgt_chain_stock_items[num],
+                                    GTK_ICON_SIZE_MENU);
+
+      g_signal_handlers_block_by_func (G_OBJECT (button->button),
+                                       gl_wdgt_chain_button_clicked_callback, button);
+      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button->button), active);
+      g_signal_handlers_unblock_by_func (G_OBJECT (button->button),
+                                         gl_wdgt_chain_button_clicked_callback, button);
     }
 }
 
@@ -217,7 +222,7 @@ gl_wdgt_chain_button_get_active (glWdgtChainButton *button)
 
 static void
 gl_wdgt_chain_button_clicked_callback (GtkWidget       *widget,
-                                   glWdgtChainButton *button)
+                                       glWdgtChainButton *button)
 {
   g_return_if_fail (GL_WDGT_IS_CHAIN_BUTTON (button));
 
@@ -228,23 +233,19 @@ gl_wdgt_chain_button_clicked_callback (GtkWidget       *widget,
 
 static gboolean
 gl_wdgt_chain_button_draw_lines (GtkWidget         *widget,
-                                GdkEventExpose    *eevent,
+                                 cairo_t           *cr,
                                 glWdgtChainButton *button)
 {
-  GdkPoint             points[3];
-  GdkPoint             buf;
-  GtkShadowType               shadow;
+  GtkAllocation        allocation;
+  gdouble              w, h;
   glWdgtChainPosition  position;
   gint                 which_line;
 
-#define SHORT_LINE 4
-  /* don't set this too high, there's no check against drawing outside
-     the widgets bounds yet (and probably never will be) */
-
   g_return_val_if_fail (GL_WDGT_IS_CHAIN_BUTTON (button), FALSE);
 
-  points[0].x = widget->allocation.width / 2;
-  points[0].y = widget->allocation.height / 2;
+  gtk_widget_get_allocation (widget, &allocation);
+  w = allocation.width;
+  h = allocation.height;
 
   which_line = (widget == button->line1) ? 1 : -1;
 
@@ -266,59 +267,45 @@ gl_wdgt_chain_button_draw_lines (GtkWidget         *widget,
   switch (position)
     {
     case GL_WDGT_CHAIN_LEFT:
-      points[0].x += SHORT_LINE;
-      points[1].x = points[0].x - SHORT_LINE;
-      points[1].y = points[0].y;
-      points[2].x = points[1].x;
-      points[2].y = (which_line == 1) ? widget->allocation.height - 1 : 0;
-      shadow = GTK_SHADOW_ETCHED_IN;
+      cairo_move_to (cr, w-2, (which_line == 1) ? 0.6*h : 0.4*h);
+      cairo_line_to (cr, w/2, (which_line == 1) ? 0.6*h : 0.4*h);
+      cairo_line_to (cr, w/2, (which_line == 1) ? h-2 : 1);
       break;
     case GL_WDGT_CHAIN_RIGHT:
-      points[0].x -= SHORT_LINE;
-      points[1].x = points[0].x + SHORT_LINE;
-      points[1].y = points[0].y;
-      points[2].x = points[1].x;
-      points[2].y = (which_line == 1) ? widget->allocation.height - 1 : 0;
-      shadow = GTK_SHADOW_ETCHED_OUT;
+      cairo_move_to (cr, 1,   (which_line == 1) ? 0.6*h : 0.4*h);
+      cairo_line_to (cr, w/2, (which_line == 1) ? 0.6*h : 0.4*h);
+      cairo_line_to (cr, w/2, (which_line == 1) ? h-2 : 1);
       break;
     case GL_WDGT_CHAIN_TOP:
-      points[0].y += SHORT_LINE;
-      points[1].x = points[0].x;
-      points[1].y = points[0].y - SHORT_LINE;
-      points[2].x = (which_line == 1) ? widget->allocation.width - 1 : 0;
-      points[2].y = points[1].y;
-      shadow = GTK_SHADOW_ETCHED_OUT;
+      cairo_move_to (cr, w/2, h-2);
+      cairo_line_to (cr, w/2, h/2);
+      cairo_line_to (cr, (which_line == 1) ? w-2 : 1, h/2);
       break;
     case GL_WDGT_CHAIN_BOTTOM:
-      points[0].y -= SHORT_LINE;
-      points[1].x = points[0].x;
-      points[1].y = points[0].y + SHORT_LINE;
-      points[2].x = (which_line == 1) ? widget->allocation.width - 1 : 0;
-      points[2].y = points[1].y;
-      shadow = GTK_SHADOW_ETCHED_IN;
+      cairo_move_to (cr, w/2, 1);
+      cairo_line_to (cr, w/2, h/2);
+      cairo_line_to (cr, (which_line == 1) ? w-2 : 1, h/2);
       break;
     default:
       return FALSE;
     }
 
-  if ( ((shadow == GTK_SHADOW_ETCHED_OUT) && (which_line == -1)) ||
-       ((shadow == GTK_SHADOW_ETCHED_IN) && (which_line == 1)) )
-    {
-      buf = points[0];
-      points[0] = points[2];
-      points[2] = buf;
-    }
+  cairo_set_antialias (cr, CAIRO_ANTIALIAS_NONE);
+  cairo_set_line_width (cr, 1.0);
+  cairo_set_source_rgb (cr, 0, 0, 0);
 
-  gtk_paint_polygon (widget->style,
-                    widget->window,
-                    GTK_STATE_NORMAL,
-                    shadow,
-                    &eevent->area,
-                    widget,
-                    "chainbutton",
-                    points,
-                    3,
-                    FALSE);
+  cairo_stroke (cr);
 
   return TRUE;
 }
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 382af2a44aa40bdd842ff21d41dcc472b5e356fd..3af93a00bf9fe0b9f1b83c4419a8430c071e96c5 100644 (file)
@@ -1,30 +1,30 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/* wdgt-chain-button.h
- * Modified version of gimpchainbutton.h for gLabels:
+/*
+ *  wdgt-chain-button.h
+ *  Modified version of gimpchainbutton.h for gLabels:
+ *
+ *  LIBGIMP - The GIMP Library
+ *  Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
  *
- * LIBGIMP - The GIMP Library
- * Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
+ *  gimpchainbutton.h
+ *  Copyright (C) 1999-2000 Sven Neumann <sven@gimp.org>
  *
- * gimpchainbutton.h
- * Copyright (C) 1999-2000 Sven Neumann <sven@gimp.org>
+ *  Modified or gLabels by Jim Evins <evins@snaught.com>
  *
- * Modified or gLabels by Jim Evins <evins@snaught.com>
  *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ *  This file is part of gLabels.
  *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
+ *  gLabels is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
  *
- * You should have received a copy of the GNU General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ *  gLabels is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 /*
@@ -38,7 +38,7 @@
 #ifndef __WDGT_CHAIN_BUTTON_H__
 #define __WDGT_CHAIN_BUTTON_H__
 
-#include <gtk/gtktable.h>
+#include <gtk/gtk.h>
 
 G_BEGIN_DECLS
 
@@ -96,3 +96,14 @@ gboolean    gl_wdgt_chain_button_get_active (glWdgtChainButton   *button);
 G_END_DECLS
 
 #endif /* __WDGT_CHAIN_BUTTON_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/src/wdgt-media-select.c b/src/wdgt-media-select.c
deleted file mode 100644 (file)
index edb469a..0000000
+++ /dev/null
@@ -1,878 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  wdgt_media_select.c:  media selection widget module
- *
- *  Copyright (C) 2001-2006  Jim Evins <evins@snaught.com>.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-
-#include <config.h>
-
-#include "wdgt-media-select.h"
-
-#include <glib/gi18n.h>
-#include <glade/glade-xml.h>
-#include <gtk/gtknotebook.h>
-#include <gtk/gtkcombobox.h>
-#include <gtk/gtktreeview.h>
-#include <gtk/gtktreeselection.h>
-#include <gtk/gtkliststore.h>
-#include <gtk/gtkcellrenderertext.h>
-#include <gtk/gtkcellrendererpixbuf.h>
-#include <gtk/gtkstock.h>
-#include <string.h>
-
-#include "mini-preview-pixbuf-cache.h"
-#include "prefs.h"
-#include "util.h"
-#include "color.h"
-#include "marshal.h"
-#include <libglabels/db.h>
-
-#include "debug.h"
-
-/*===========================================*/
-/* Private types                             */
-/*===========================================*/
-
-enum {
-       NAME_COLUMN,
-       PREVIEW_COLUMN,
-       PREVIEW_COLUMN_STOCK,
-       PREVIEW_COLUMN_STOCK_SIZE,
-       DESCRIPTION_COLUMN,
-       N_COLUMNS
-};
-
-struct _glWdgtMediaSelectPrivate {
-
-        GtkWidget    *notebook;
-        guint         current_page_num;
-
-        gint          recent_page_num;
-        GtkWidget    *recent_tab_vbox;
-        GtkWidget    *recent_treeview;
-        GtkListStore *recent_store;
-
-        gint          search_all_page_num;
-        GtkWidget    *search_all_tab_vbox;
-        GtkWidget    *brand_combo;
-        GtkWidget    *page_size_combo;
-        GtkWidget    *category_combo;
-        GtkWidget    *search_all_treeview;
-        GtkListStore *search_all_store;
-
-        /* Prevent recursion */
-       gboolean    stop_signals;
-};
-
-enum {
-        CHANGED,
-        LAST_SIGNAL
-};
-
-typedef void (*glWdgtMediaSelectSignal) (GObject * object, gpointer data);
-
-/*===========================================*/
-/* Private globals                           */
-/*===========================================*/
-
-static gint wdgt_media_select_signals[LAST_SIGNAL] = { 0 };
-
-/*===========================================*/
-/* Local function prototypes                 */
-/*===========================================*/
-
-static void gl_wdgt_media_select_finalize      (GObject                *object);
-
-static void gl_wdgt_media_select_construct     (glWdgtMediaSelect      *media_select);
-
-static void filter_changed_cb                  (GtkComboBox            *combo,
-                                                gpointer                user_data);
-static void selection_changed_cb               (GtkTreeSelection       *selection,
-                                                gpointer                user_data);
-static void page_changed_cb                    (GtkNotebook            *notebook,
-                                                GtkNotebookPage        *page,
-                                                guint                   page_num,
-                                                gpointer                user_data);
-
-static gchar *get_layout_desc                  (const lglTemplate      *template);
-static gchar *get_label_size_desc              (const lglTemplate      *template);
-static void   load_recent_list                 (GtkListStore           *store,
-                                                GtkTreeSelection       *selection,
-                                                GSList                 *list);
-static void   load_search_all_list             (GtkListStore           *store,
-                                                GtkTreeSelection       *selection,
-                                                GList                  *list);
-\f
-/****************************************************************************/
-/* Boilerplate Object stuff.                                                */
-/****************************************************************************/
-G_DEFINE_TYPE (glWdgtMediaSelect, gl_wdgt_media_select, GTK_TYPE_VBOX);
-
-
-static void
-gl_wdgt_media_select_class_init (glWdgtMediaSelectClass *class)
-{
-        GObjectClass *object_class = G_OBJECT_CLASS (class);
-
-        gl_debug (DEBUG_MEDIA_SELECT, "START");
-
-        gl_wdgt_media_select_parent_class = g_type_class_peek_parent (class);
-
-        object_class->finalize = gl_wdgt_media_select_finalize;
-
-        wdgt_media_select_signals[CHANGED] =
-            g_signal_new ("changed",
-                          G_OBJECT_CLASS_TYPE(object_class),
-                          G_SIGNAL_RUN_LAST,
-                          G_STRUCT_OFFSET (glWdgtMediaSelectClass, changed),
-                          NULL, NULL,
-                          gl_marshal_VOID__VOID,
-                          G_TYPE_NONE, 0);
-
-        gl_debug (DEBUG_MEDIA_SELECT, "END");
-}
-
-static void
-gl_wdgt_media_select_init (glWdgtMediaSelect *media_select)
-{
-        gl_debug (DEBUG_MEDIA_SELECT, "START");
-
-        media_select->priv = g_new0 (glWdgtMediaSelectPrivate, 1);
-
-        gl_debug (DEBUG_MEDIA_SELECT, "END");
-}
-
-static void
-gl_wdgt_media_select_finalize (GObject *object)
-{
-        glWdgtMediaSelect *media_select = GL_WDGT_MEDIA_SELECT (object);
-
-        gl_debug (DEBUG_MEDIA_SELECT, "START");
-
-        g_return_if_fail (object != NULL);
-        g_return_if_fail (GL_IS_WDGT_MEDIA_SELECT (object));
-
-        g_object_unref (media_select->priv->recent_store);
-        g_object_unref (media_select->priv->search_all_store);
-        g_free (media_select->priv);
-
-        G_OBJECT_CLASS (gl_wdgt_media_select_parent_class)->finalize (object);
-
-        gl_debug (DEBUG_MEDIA_SELECT, "END");
-}
-
-GtkWidget *
-gl_wdgt_media_select_new (void)
-{
-        glWdgtMediaSelect *media_select;
-
-        gl_debug (DEBUG_MEDIA_SELECT, "START");
-
-        media_select = g_object_new (gl_wdgt_media_select_get_type (), NULL);
-
-        gl_wdgt_media_select_construct (media_select);
-
-        gl_debug (DEBUG_MEDIA_SELECT, "END");
-
-        return GTK_WIDGET (media_select);
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Construct composite widget.                                    */
-/*--------------------------------------------------------------------------*/
-static void
-gl_wdgt_media_select_construct (glWdgtMediaSelect *media_select)
-{
-        GladeXML          *gui;
-        GtkWidget         *hbox;
-        GList             *brands = NULL;
-        GList             *page_sizes = NULL;
-        GList             *categories = NULL;
-        GList             *search_all_names = NULL;
-        const gchar       *page_size_id;
-        gchar             *page_size_name;
-        GtkCellRenderer   *renderer;
-        GtkTreeViewColumn *column;
-        GtkTreeSelection  *recent_selection;
-        GtkTreeSelection  *search_all_selection;
-
-        gl_debug (DEBUG_MEDIA_SELECT, "START");
-
-        g_return_if_fail (GL_IS_WDGT_MEDIA_SELECT (media_select));
-        g_return_if_fail (media_select->priv != NULL);
-
-        gui = glade_xml_new (GLABELS_GLADE_DIR "wdgt-media-select.glade",
-                             "wdgt_media_select_hbox", NULL);
-
-        if (!gui) {
-                g_critical ("Could not open wdgt-media-select.glade. gLabels may not be installed correctly!");
-                return;
-        }
-
-        hbox = glade_xml_get_widget (gui, "wdgt_media_select_hbox");
-        gtk_container_add (GTK_CONTAINER (media_select), hbox);
-
-        media_select->priv->notebook =
-                glade_xml_get_widget (gui, "notebook");
-
-        media_select->priv->recent_tab_vbox =
-                glade_xml_get_widget (gui, "recent_tab_vbox");
-        media_select->priv->recent_treeview =
-                glade_xml_get_widget (gui, "recent_treeview");
-
-        media_select->priv->search_all_tab_vbox =
-                glade_xml_get_widget (gui, "search_all_tab_vbox");
-        media_select->priv->brand_combo =
-                glade_xml_get_widget (gui, "brand_combo");
-        media_select->priv->page_size_combo =
-                glade_xml_get_widget (gui, "page_size_combo");
-        media_select->priv->category_combo =
-                glade_xml_get_widget (gui, "category_combo");
-        media_select->priv->search_all_treeview =
-                glade_xml_get_widget (gui, "search_all_treeview");
-
-        g_object_unref (gui);
-
-        media_select->priv->recent_page_num =
-                gtk_notebook_page_num (GTK_NOTEBOOK (media_select->priv->notebook),
-                                       media_select->priv->recent_tab_vbox);
-        media_select->priv->search_all_page_num =
-                gtk_notebook_page_num (GTK_NOTEBOOK (media_select->priv->notebook),
-                                       media_select->priv->search_all_tab_vbox);
-
-        /* Recent templates treeview */
-        media_select->priv->recent_store = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_STRING);
-        gtk_tree_view_set_model (GTK_TREE_VIEW (media_select->priv->recent_treeview),
-                                 GTK_TREE_MODEL (media_select->priv->recent_store));
-        renderer = gtk_cell_renderer_pixbuf_new ();
-        column = gtk_tree_view_column_new_with_attributes ("", renderer,
-                                                           "pixbuf", PREVIEW_COLUMN,
-                                                           "stock-id", PREVIEW_COLUMN_STOCK,
-                                                           "stock-size", PREVIEW_COLUMN_STOCK_SIZE,
-                                                           NULL);
-        gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
-        gtk_tree_view_append_column (GTK_TREE_VIEW (media_select->priv->recent_treeview), column);
-        renderer = gtk_cell_renderer_text_new ();
-        column = gtk_tree_view_column_new_with_attributes ("", renderer,
-                                                           "markup", DESCRIPTION_COLUMN,
-                                                           NULL);
-        gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
-        gtk_tree_view_append_column (GTK_TREE_VIEW (media_select->priv->recent_treeview), column);
-        recent_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (media_select->priv->recent_treeview));
-        load_recent_list (media_select->priv->recent_store, recent_selection, gl_prefs->recent_templates);
-
-        page_size_id = gl_prefs_get_page_size ();
-        page_size_name = lgl_db_lookup_paper_name_from_id (page_size_id);
-
-        /* Brand selection control */
-        gl_util_combo_box_add_text_model (GTK_COMBO_BOX (media_select->priv->brand_combo));
-        brands = lgl_db_get_brand_list (NULL, NULL);
-        brands = g_list_prepend (brands, g_strdup (_("Any")));
-        gl_util_combo_box_set_strings (GTK_COMBO_BOX (media_select->priv->brand_combo), brands);
-        lgl_db_free_brand_list (brands);
-        gl_util_combo_box_set_active_text (GTK_COMBO_BOX (media_select->priv->brand_combo),
-                                           _("Any"));
-
-        /* Page size selection control */
-        gl_util_combo_box_add_text_model (GTK_COMBO_BOX (media_select->priv->page_size_combo));
-        page_sizes = lgl_db_get_paper_name_list ();
-        page_sizes = g_list_prepend (page_sizes, g_strdup (_("Any")));
-        gl_util_combo_box_set_strings (GTK_COMBO_BOX (media_select->priv->page_size_combo), page_sizes);
-        lgl_db_free_paper_name_list (page_sizes);
-        gl_util_combo_box_set_active_text (GTK_COMBO_BOX (media_select->priv->page_size_combo),
-                                           page_size_name);
-
-        /* Category selection control */
-        gl_util_combo_box_add_text_model (GTK_COMBO_BOX (media_select->priv->category_combo));
-        categories = lgl_db_get_category_name_list ();
-        categories = g_list_prepend (categories, g_strdup (_("Any")));
-        gl_util_combo_box_set_strings (GTK_COMBO_BOX (media_select->priv->category_combo), categories);
-        gl_util_combo_box_set_active_text (GTK_COMBO_BOX (media_select->priv->category_combo),
-                                           _("Any"));
-        lgl_db_free_category_name_list (categories);
-
-        /* Search all treeview */
-        media_select->priv->search_all_store = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_STRING);
-        gtk_tree_view_set_model (GTK_TREE_VIEW (media_select->priv->search_all_treeview),
-                                 GTK_TREE_MODEL (media_select->priv->search_all_store));
-        renderer = gtk_cell_renderer_pixbuf_new ();
-        column = gtk_tree_view_column_new_with_attributes ("", renderer,
-                                                           "pixbuf", PREVIEW_COLUMN,
-                                                           "stock-id", PREVIEW_COLUMN_STOCK,
-                                                           "stock-size", PREVIEW_COLUMN_STOCK_SIZE,
-                                                           NULL);
-        gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
-        gtk_tree_view_append_column (GTK_TREE_VIEW (media_select->priv->search_all_treeview), column);
-        renderer = gtk_cell_renderer_text_new ();
-        column = gtk_tree_view_column_new_with_attributes ("", renderer,
-                                                           "markup", DESCRIPTION_COLUMN,
-                                                           NULL);
-        gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
-        gtk_tree_view_append_column (GTK_TREE_VIEW (media_select->priv->search_all_treeview), column);
-        search_all_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (media_select->priv->search_all_treeview));
-        search_all_names = lgl_db_get_template_name_list_all (NULL, page_size_id, NULL);
-        load_search_all_list (media_select->priv->search_all_store, search_all_selection, search_all_names);
-        lgl_db_free_template_name_list (search_all_names);
-
-        /* Connect signals to controls */
-        g_signal_connect (G_OBJECT (media_select->priv->brand_combo), "changed",
-                          G_CALLBACK (filter_changed_cb),
-                          media_select);
-        g_signal_connect (G_OBJECT (media_select->priv->page_size_combo), "changed",
-                          G_CALLBACK (filter_changed_cb),
-                          media_select);
-        g_signal_connect (G_OBJECT (media_select->priv->category_combo), "changed",
-                          G_CALLBACK (filter_changed_cb),
-                          media_select);
-        g_signal_connect (G_OBJECT (recent_selection), "changed",
-                          G_CALLBACK (selection_changed_cb),
-                          media_select);
-        g_signal_connect (G_OBJECT (search_all_selection), "changed",
-                          G_CALLBACK (selection_changed_cb),
-                          media_select);
-        g_signal_connect (G_OBJECT (media_select->priv->notebook), "switch-page",
-                          G_CALLBACK (page_changed_cb),
-                          media_select);
-
-        g_free (page_size_name);
-
-        gtk_widget_show_all (GTK_WIDGET (media_select));
-        if ( gl_prefs->recent_templates )
-        {
-                gtk_notebook_set_current_page (GTK_NOTEBOOK (media_select->priv->notebook),
-                                               media_select->priv->recent_page_num);
-        }
-        else
-        {
-                gtk_notebook_set_current_page (GTK_NOTEBOOK (media_select->priv->notebook),
-                                               media_select->priv->search_all_page_num);
-        }
-
-        gl_debug (DEBUG_MEDIA_SELECT, "END");
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  modify widget due to change in selection                       */
-/*--------------------------------------------------------------------------*/
-static void
-filter_changed_cb (GtkComboBox *combo,
-                   gpointer     user_data)
-{
-        glWdgtMediaSelect *media_select = GL_WDGT_MEDIA_SELECT (user_data);
-        gchar             *brand;
-        gchar             *page_size_name, *page_size_id;
-        gchar             *category_name, *category_id;
-        GList             *search_all_names;
-        GtkTreeSelection  *selection;
-
-        gl_debug (DEBUG_MEDIA_SELECT, "START");
-
-
-       media_select->priv->stop_signals = TRUE;
-
-        /* Update template selections for new filter settings */
-        brand = gtk_combo_box_get_active_text (GTK_COMBO_BOX (media_select->priv->brand_combo));
-        page_size_name = gtk_combo_box_get_active_text (GTK_COMBO_BOX (media_select->priv->page_size_combo));
-        category_name = gtk_combo_box_get_active_text (GTK_COMBO_BOX (media_select->priv->category_combo));
-        if ( brand && strlen(brand) &&
-             page_size_name && strlen(page_size_name) &&
-             category_name && strlen(category_name) )
-        {
-                gl_debug (DEBUG_MEDIA_SELECT, "brand = \"%s\"", brand);
-                gl_debug (DEBUG_MEDIA_SELECT, "page_size_name = \"%s\"", page_size_name);
-                gl_debug (DEBUG_MEDIA_SELECT, "category_name = \"%s\"", category_name);
-                if (!g_utf8_collate (brand, _("Any")))
-                {
-                        g_free (brand);
-                        brand = NULL;
-                }
-                page_size_id = lgl_db_lookup_paper_id_from_name (page_size_name);
-                category_id = lgl_db_lookup_category_id_from_name (category_name);
-                gl_debug (DEBUG_MEDIA_SELECT, "page_size_id = \"%s\"", page_size_id);
-                gl_debug (DEBUG_MEDIA_SELECT, "category_id = \"%s\"", category_id);
-                search_all_names = lgl_db_get_template_name_list_all (brand, page_size_id, category_id);
-                selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (media_select->priv->search_all_treeview));
-                load_search_all_list (media_select->priv->search_all_store, selection, search_all_names);
-                lgl_db_free_template_name_list (search_all_names);
-                g_free (page_size_id);
-                g_free (category_id);
-
-                /* Emit our "changed" signal */
-                g_signal_emit (G_OBJECT (user_data),
-                               wdgt_media_select_signals[CHANGED], 0);
-        }
-        g_free (brand);
-        g_free (page_size_name);
-        g_free (category_name);
-
-
-       media_select->priv->stop_signals = FALSE;
-
-        gl_debug (DEBUG_MEDIA_SELECT, "END");
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  modify widget due to change in selection                       */
-/*--------------------------------------------------------------------------*/
-static void
-selection_changed_cb (GtkTreeSelection       *selection,
-                      gpointer                user_data)
-{
-        glWdgtMediaSelect *media_select = GL_WDGT_MEDIA_SELECT (user_data);
-
-       if (media_select->priv->stop_signals) return;
-
-        gl_debug (DEBUG_MEDIA_SELECT, "START");
-
-        /* Emit our "changed" signal */
-        g_signal_emit (G_OBJECT (user_data),
-                       wdgt_media_select_signals[CHANGED], 0);
-
-        gl_debug (DEBUG_MEDIA_SELECT, "END");
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  modify widget due to change in selection                       */
-/*--------------------------------------------------------------------------*/
-static void
-page_changed_cb (GtkNotebook            *notebook,
-                 GtkNotebookPage        *page,
-                 guint                   page_num,
-                 gpointer                user_data)
-{
-        glWdgtMediaSelect *media_select = GL_WDGT_MEDIA_SELECT (user_data);
-
-       if (media_select->priv->stop_signals) return;
-
-        gl_debug (DEBUG_MEDIA_SELECT, "START");
-
-        /*
-         * Store new current page, because this signal is emitted before the actual page change.
-         */
-       media_select->priv->current_page_num = page_num;
-
-        /* Emit our "changed" signal */
-        g_signal_emit (G_OBJECT (user_data),
-                       wdgt_media_select_signals[CHANGED], 0);
-
-        gl_debug (DEBUG_MEDIA_SELECT, "END");
-}
-
-/****************************************************************************/
-/* query selected label template name.                                      */
-/****************************************************************************/
-gchar *
-gl_wdgt_media_select_get_name (glWdgtMediaSelect *media_select)
-{
-        gint               page_num;
-        GtkTreeSelection  *selection;
-        GtkTreeIter        iter;
-        GtkTreeModel      *model;        
-        gchar             *name;
-
-        gl_debug (DEBUG_MEDIA_SELECT, "START");
-
-        page_num = media_select->priv->current_page_num;
-        if (page_num == media_select->priv->recent_page_num)
-        {
-                selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (media_select->priv->recent_treeview));
-        }
-        else if (page_num == media_select->priv->search_all_page_num)
-        {
-                selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (media_select->priv->search_all_treeview));
-        }
-        else
-        {
-                g_print ("notebook page = %d\n", page_num);
-                g_assert_not_reached ();
-        }
-
-        if (gtk_tree_selection_get_mode (selection) == GTK_SELECTION_NONE)
-        {
-                name = NULL;
-        }
-        else
-        {
-                gtk_tree_selection_get_selected (selection, &model, &iter);
-                gtk_tree_model_get (model, &iter, NAME_COLUMN, &name, -1);
-        }
-
-        gl_debug (DEBUG_MEDIA_SELECT, "END");
-        return name;
-}
-
-/****************************************************************************/
-/* set selected label template name.                                        */
-/****************************************************************************/
-void
-gl_wdgt_media_select_set_name (glWdgtMediaSelect *media_select,
-                               gchar             *name)
-{
-        GtkTreeSelection  *selection;
-        GtkTreeModel      *model;
-        GtkTreeIter        iter;
-        GtkTreePath       *path;
-        gchar             *name_i;
-        gboolean           flag;
-
-        gl_debug (DEBUG_MEDIA_SELECT, "START");
-
-        selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (media_select->priv->search_all_treeview));
-        g_return_if_fail (GTK_IS_TREE_SELECTION (selection));
-
-        model = GTK_TREE_MODEL (media_select->priv->search_all_store);
-
-        for ( flag = gtk_tree_model_get_iter_first (model, &iter);
-              flag;
-              flag = gtk_tree_model_iter_next(model, &iter) )
-        {
-                gtk_tree_model_get (model, &iter, NAME_COLUMN, &name_i, -1); 
-                if (strcasecmp(name, name_i) == 0)
-                {
-                        gtk_tree_selection_select_iter (selection, &iter);
-                        path = gtk_tree_model_get_path (model, &iter);
-                        gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (media_select->priv->search_all_treeview),
-                                                      path,
-                                                      NULL,
-                                                      TRUE, 0.5, 0.0);
-                        gtk_tree_path_free (path);
-                        break;
-                }
-        }
-
-        gl_debug (DEBUG_MEDIA_SELECT, "END");
-}
-
-/****************************************************************************/
-/* query current filter parameters.                                         */
-/****************************************************************************/
-void
-gl_wdgt_media_select_get_filter_parameters (glWdgtMediaSelect *media_select,
-                                            gchar            **page_size_id,
-                                            gchar            **category_id)
-{
-        gchar *page_size_name, *category_name;
-
-        gl_debug (DEBUG_MEDIA_SELECT, "");
-
-        g_free (*page_size_id);
-        g_free (*category_id);
-
-        page_size_name =
-                gtk_combo_box_get_active_text (GTK_COMBO_BOX (media_select->priv->page_size_combo));
-
-        *page_size_id = lgl_db_lookup_paper_id_from_name (page_size_name);
-
-        category_name =
-                gtk_combo_box_get_active_text (GTK_COMBO_BOX (media_select->priv->category_combo));
-
-        *category_id = lgl_db_lookup_category_id_from_name (category_name);
-
-        g_free (page_size_name);
-        g_free (category_name);
-}
-
-/****************************************************************************/
-/* set filter parameters.                                                   */
-/****************************************************************************/
-void
-gl_wdgt_media_select_set_filter_parameters (glWdgtMediaSelect *media_select,
-                                            const gchar       *page_size_id,
-                                            const gchar       *category_id)
-{
-        gchar *page_size_name;
-        gchar *category_name;
-
-        gl_debug (DEBUG_MEDIA_SELECT, "START");
-
-        page_size_name = lgl_db_lookup_paper_name_from_id (page_size_id);
-        if (page_size_name == NULL)
-        {
-                page_size_name = g_strdup (_("Any"));
-        }
-
-        gl_util_combo_box_set_active_text (GTK_COMBO_BOX (media_select->priv->page_size_combo),
-                                           page_size_name);
-
-        category_name = lgl_db_lookup_category_name_from_id (category_id);
-        if (category_name == NULL)
-        {
-                category_name = g_strdup (_("Any"));
-        }
-
-        gl_util_combo_box_set_active_text (GTK_COMBO_BOX (media_select->priv->category_combo),
-                                           category_name);
-        g_free (page_size_name);
-        g_free (category_name);
-
-        gl_debug (DEBUG_MEDIA_SELECT, "END");
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Get a description of the layout and number of labels.          */
-/*--------------------------------------------------------------------------*/
-static gchar *
-get_layout_desc (const lglTemplate *template)
-{
-        const lglTemplateFrame *frame;
-        gint                    n_labels;
-        gchar                  *string;
-
-        frame = (lglTemplateFrame *)template->frames->data;
-
-        n_labels = lgl_template_frame_get_n_labels (frame);
-
-        string = g_strdup_printf (_("%d per sheet"), n_labels);
-
-        return string;
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Get label size description.                                    */ 
-/*--------------------------------------------------------------------------*/
-static gchar *
-get_label_size_desc (const lglTemplate *template)
-{
-        lglUnitsType               units;
-        const gchar               *units_string;
-        gdouble                    units_per_point;
-        const lglTemplateFrame    *frame;
-        gchar                     *string = NULL;
-
-        units           = gl_prefs_get_units ();
-        units_string    = gl_prefs_get_units_string ();
-        units_per_point = gl_prefs_get_units_per_point ();
-
-        frame = (lglTemplateFrame *)template->frames->data;
-
-        switch (frame->shape) {
-        case LGL_TEMPLATE_FRAME_SHAPE_RECT:
-                if ( units == LGL_UNITS_INCH ) {
-                        gchar *xstr, *ystr;
-
-                        xstr = gl_util_fraction (frame->rect.w*units_per_point);
-                        ystr = gl_util_fraction (frame->rect.h*units_per_point);
-                        string = g_strdup_printf (_("%s x %s %s"),
-                                                  xstr, ystr, units_string);
-                        g_free (xstr);
-                        g_free (ystr);
-                } else {
-                        string = g_strdup_printf (_("%.5g x %.5g %s"),
-                                                  frame->rect.w*units_per_point,
-                                                  frame->rect.h*units_per_point,
-                                                  units_string);
-                }
-                break;
-        case LGL_TEMPLATE_FRAME_SHAPE_ROUND:
-                if ( units == LGL_UNITS_INCH ) {
-                        gchar *dstr;
-
-                        dstr = gl_util_fraction (2.0*frame->round.r*units_per_point);
-                        string = g_strdup_printf (_("%s %s diameter"),
-                                                  dstr, units_string);
-                        g_free (dstr);
-                } else {
-                        string = g_strdup_printf (_("%.5g %s diameter"),
-                                                  2.0*frame->round.r*units_per_point,
-                                                  units_string);
-                }
-                break;
-        case LGL_TEMPLATE_FRAME_SHAPE_CD:
-                if ( units == LGL_UNITS_INCH ) {
-                        gchar *dstr;
-
-                        dstr = gl_util_fraction (2.0*frame->cd.r1*units_per_point);
-                        string = g_strdup_printf (_("%s %s diameter"),
-                                                  dstr, units_string);
-                        g_free (dstr);
-                } else {
-                        string = g_strdup_printf (_("%.5g %s diameter"),
-                                                  2.0*frame->cd.r1*units_per_point,
-                                                  units_string);
-                }
-                break;
-        default:
-                break;
-        }
-
-        return string;
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Load list store from template name list.                       */
-/*--------------------------------------------------------------------------*/
-static void
-load_recent_list (GtkListStore           *store,
-                  GtkTreeSelection       *selection,
-                  GSList                  *list)
-{
-        GSList      *p;
-        GtkTreeIter  iter;
-        lglTemplate *template;
-        GdkPixbuf   *pixbuf;
-        gchar       *size;
-        gchar       *layout;
-        gchar       *description;
-
-        gl_debug (DEBUG_MEDIA_SELECT, "START");
-
-        gtk_list_store_clear (store);
-
-        if (list)
-        {
-
-                for ( p=list; p!=NULL; p=p->next )
-                {
-
-                        gl_debug (DEBUG_MEDIA_SELECT, "p->data = \"%s\"", p->data);
-
-                        template = lgl_db_lookup_template_from_name (p->data);
-                        pixbuf = gl_mini_preview_pixbuf_cache_get_pixbuf (p->data);
-
-                        size = get_label_size_desc (template);
-                        layout = get_layout_desc (template);
-                        description = g_strdup_printf ("<b>%s: %s</b>\n%s\n%s",
-                                                       (gchar *)p->data,
-                                                       template->description,
-                                                       size,
-                                                       layout);
-                        g_free (size);
-                        g_free (layout);
-
-                        lgl_template_free (template);
-
-                        gtk_list_store_append (store, &iter);
-                        gtk_list_store_set (store, &iter,
-                                            NAME_COLUMN, p->data,
-                                            PREVIEW_COLUMN, pixbuf,
-                                            DESCRIPTION_COLUMN, description,
-                                            -1);
-
-                        g_object_unref (G_OBJECT (pixbuf));
-                        g_free (description);
-                }
-
-                gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE);
-                gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter);
-                gtk_tree_selection_select_iter (selection, &iter);
-
-        }
-        else
-        {
-                gchar *text = g_strdup_printf ("<span weight=\"bold\" size=\"larger\">%s</span>\n%s",
-                                               _("No recent templates found."),
-                                               _("Try selecting a template from the \"Search all templates\" page."));
-                gtk_list_store_append (store, &iter);
-                gtk_list_store_set (store, &iter,
-                                    NAME_COLUMN, "empty",
-                                    PREVIEW_COLUMN_STOCK, GTK_STOCK_DIALOG_WARNING,
-                                    PREVIEW_COLUMN_STOCK_SIZE, GTK_ICON_SIZE_DIALOG,
-                                    DESCRIPTION_COLUMN, text,
-                                    -1);
-                g_free (text);
-
-                gtk_tree_selection_set_mode (selection, GTK_SELECTION_NONE);
-
-        }
-
-        gl_debug (DEBUG_MEDIA_SELECT, "END");
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Load list store from template name list.                       */
-/*--------------------------------------------------------------------------*/
-static void
-load_search_all_list (GtkListStore           *store,
-                      GtkTreeSelection       *selection,
-                      GList                  *list)
-{
-        GList       *p;
-        GtkTreeIter  iter;
-        lglTemplate *template;
-        GdkPixbuf   *pixbuf;
-        gchar       *size;
-        gchar       *layout;
-        gchar       *description;
-
-        gl_debug (DEBUG_MEDIA_SELECT, "START");
-
-        gtk_list_store_clear (store);
-
-        if (list)
-        {
-
-                for ( p=list; p!=NULL; p=p->next )
-                {
-
-                        gl_debug (DEBUG_MEDIA_SELECT, "p->data = \"%s\"", p->data);
-
-                        template = lgl_db_lookup_template_from_name (p->data);
-                        pixbuf = gl_mini_preview_pixbuf_cache_get_pixbuf (p->data);
-
-                        size = get_label_size_desc (template);
-                        layout = get_layout_desc (template);
-                        description = g_strdup_printf ("<b>%s: %s</b>\n%s\n%s",
-                                                       (gchar *)p->data,
-                                                       template->description,
-                                                       size,
-                                                       layout);
-                        g_free (size);
-                        g_free (layout);
-
-                        lgl_template_free (template);
-
-                        gtk_list_store_append (store, &iter);
-                        gtk_list_store_set (store, &iter,
-                                            NAME_COLUMN, p->data,
-                                            PREVIEW_COLUMN, pixbuf,
-                                            DESCRIPTION_COLUMN, description,
-                                            -1);
-
-                        g_object_unref (G_OBJECT (pixbuf));
-                        g_free (description);
-                }
-
-                gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE);
-                gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter);
-                gtk_tree_selection_select_iter (selection, &iter);
-
-        }
-        else
-        {
-                gchar *text = g_strdup_printf ("<span weight=\"bold\" size=\"larger\">%s</span>\n%s",
-                                               _("No match."),
-                                               _("Try selecting a different brand, page size or category."));
-                gtk_list_store_append (store, &iter);
-                gtk_list_store_set (store, &iter,
-                                    NAME_COLUMN, "empty",
-                                    PREVIEW_COLUMN_STOCK, GTK_STOCK_DIALOG_WARNING,
-                                    PREVIEW_COLUMN_STOCK_SIZE, GTK_ICON_SIZE_DIALOG,
-                                    DESCRIPTION_COLUMN, text,
-                                    -1);
-                g_free (text);
-
-                gtk_tree_selection_set_mode (selection, GTK_SELECTION_NONE);
-
-        }
-
-        gl_debug (DEBUG_MEDIA_SELECT, "END");
-}
-
diff --git a/src/wdgt-media-select.h b/src/wdgt-media-select.h
deleted file mode 100644 (file)
index c8e95fc..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  wdgt_media_select.h:  media selection widget module header file
- *
- *  Copyright (C) 2001-2006  Jim Evins <evins@snaught.com>.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-
-#ifndef __WDGT_MEDIA_SELECT_H__
-#define __WDGT_MEDIA_SELECT_H__
-
-#include <gtk/gtkvbox.h>
-
-G_BEGIN_DECLS
-
-#define GL_TYPE_WDGT_MEDIA_SELECT (gl_wdgt_media_select_get_type ())
-#define GL_WDGT_MEDIA_SELECT(obj) \
-        (GTK_CHECK_CAST((obj), GL_TYPE_WDGT_MEDIA_SELECT, glWdgtMediaSelect ))
-#define GL_WDGT_MEDIA_SELECT_CLASS(klass) \
-        (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_WDGT_MEDIA_SELECT, glWdgtMediaSelectClass))
-#define GL_IS_WDGT_MEDIA_SELECT(obj) \
-        (GTK_CHECK_TYPE ((obj), GL_TYPE_WDGT_MEDIA_SELECT))
-#define GL_IS_WDGT_MEDIA_SELECT_CLASS(klass) \
-        (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_WDGT_MEDIA_SELECT))
-
-typedef struct _glWdgtMediaSelect         glWdgtMediaSelect;
-typedef struct _glWdgtMediaSelectClass    glWdgtMediaSelectClass;
-
-typedef struct _glWdgtMediaSelectPrivate  glWdgtMediaSelectPrivate;
-
-struct _glWdgtMediaSelect {
-        GtkVBox                    parent_widget;
-
-        glWdgtMediaSelectPrivate  *priv;
-};
-
-struct _glWdgtMediaSelectClass {
-        GtkVBoxClass               parent_class;
-
-        void (*changed) (glWdgtMediaSelect * media_select, gpointer user_data);
-};
-
-GType      gl_wdgt_media_select_get_type      (void) G_GNUC_CONST;
-
-GtkWidget *gl_wdgt_media_select_new           (void);
-
-gchar     *gl_wdgt_media_select_get_name      (glWdgtMediaSelect *media_select);
-
-void       gl_wdgt_media_select_set_name      (glWdgtMediaSelect *media_select,
-                                               gchar             *name);
-
-void       gl_wdgt_media_select_get_filter_parameters (glWdgtMediaSelect *media_select,
-                                                       gchar            **page_size_id,
-                                                       gchar            **category_id);
-
-void       gl_wdgt_media_select_set_filter_parameters (glWdgtMediaSelect *media_select,
-                                                       const gchar       *page_size_id,
-                                                       const gchar       *category_id);
-
-G_END_DECLS
-
-#endif
diff --git a/src/wdgt-mini-preview.c b/src/wdgt-mini-preview.c
deleted file mode 100644 (file)
index c539e6b..0000000
+++ /dev/null
@@ -1,724 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  wdgt_mini_preview.c:  mini preview widget module
- *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-
-#include <config.h>
-
-#include "wdgt-mini-preview.h"
-
-#include <math.h>
-
-#include "libglabels/db.h"
-#include "cairo-label-path.h"
-#include "marshal.h"
-#include "color.h"
-
-#include "debug.h"
-
-/*===========================================*/
-/* Private macros and constants.             */
-/*===========================================*/
-
-#define PAPER_RGB_ARGS          1.0,   1.0,   1.0
-#define PAPER_OUTLINE_RGB_ARGS  0.0,   0.0,   0.0
-#define LABEL_OUTLINE_RGB_ARGS  0.5,   0.5,   0.5
-
-#define SHADOW_X_OFFSET 5
-#define SHADOW_Y_OFFSET 5
-
-/*===========================================*/
-/* Private types                             */
-/*===========================================*/
-
-enum {
-       CLICKED,
-       PRESSED,
-       LAST_SIGNAL
-};
-
-typedef struct {
-       gdouble x;
-       gdouble y;
-} LabelCenter;
-
-struct _glWdgtMiniPreviewPrivate {
-
-       gint            height;
-       gint            width;
-
-       lglTemplate    *template;
-       gdouble         scale;
-       gdouble         offset_x;
-       gdouble         offset_y;
-       gint            labels_per_sheet;
-       LabelCenter    *centers;
-
-       gint            highlight_first;
-       gint            highlight_last;
-
-       gboolean        dragging;
-       gint            first_i;
-       gint            last_i;
-       gint            prev_i;
-};
-
-/*===========================================*/
-/* Private globals                           */
-/*===========================================*/
-
-static gint wdgt_mini_preview_signals[LAST_SIGNAL] = { 0 };
-
-/*===========================================*/
-/* Local function prototypes                 */
-/*===========================================*/
-
-static void gl_wdgt_mini_preview_finalize      (GObject                *object);
-
-static void gl_wdgt_mini_preview_construct     (glWdgtMiniPreview      *preview,
-                                               gint                    height,
-                                               gint                    width);
-
-static gboolean expose_event_cb                (GtkWidget              *widget,
-                                               GdkEventExpose         *event);
-static void style_set_cb                       (GtkWidget              *widget,
-                                               GtkStyle               *previous_style);
-static gboolean button_press_event_cb          (GtkWidget              *widget,
-                                               GdkEventButton         *event);
-static gboolean motion_notify_event_cb         (GtkWidget              *widget,
-                                               GdkEventMotion         *event);
-static gboolean button_release_event_cb        (GtkWidget              *widget,
-                                               GdkEventButton         *event);
-
-
-static void redraw                             (GtkWidget              *widget);
-static void draw                               (glWdgtMiniPreview      *preview,
-                                               cairo_t                *cr);
-
-static void draw_shadow                        (glWdgtMiniPreview      *preview,
-                                               cairo_t                *cr,
-                                               gdouble                      x,
-                                               gdouble                 y,
-                                               gdouble                 width,
-                                               gdouble                 height);
-static void draw_paper                         (glWdgtMiniPreview      *preview,
-                                               cairo_t                *cr,
-                                               gdouble                 width,
-                                               gdouble                 height,
-                                               gdouble                 line_width);
-static void draw_labels                        (glWdgtMiniPreview      *preview,
-                                               cairo_t                *cr,
-                                               lglTemplate            *template,
-                                               gdouble                 line_width);
-
-static gint find_closest_label                 (glWdgtMiniPreview      *preview,
-                                               gdouble                 x,
-                                               gdouble                 y);
-
-
-\f
-/****************************************************************************/
-/* Boilerplate Object stuff.                                                */
-/****************************************************************************/
-G_DEFINE_TYPE (glWdgtMiniPreview, gl_wdgt_mini_preview, GTK_TYPE_DRAWING_AREA);
-
-
-static void
-gl_wdgt_mini_preview_class_init (glWdgtMiniPreviewClass *class)
-{
-       GObjectClass   *object_class = G_OBJECT_CLASS (class);
-       GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
-
-       gl_debug (DEBUG_MINI_PREVIEW, "START");
-
-       gl_wdgt_mini_preview_parent_class = gtk_type_class (gtk_hbox_get_type ());
-
-       object_class->finalize = gl_wdgt_mini_preview_finalize;
-
-       widget_class->expose_event         = expose_event_cb;
-       widget_class->style_set            = style_set_cb;
-       widget_class->button_press_event   = button_press_event_cb;
-       widget_class->motion_notify_event  = motion_notify_event_cb;
-       widget_class->button_release_event = button_release_event_cb;
-
-       wdgt_mini_preview_signals[CLICKED] =
-           g_signal_new ("clicked",
-                         G_OBJECT_CLASS_TYPE(object_class),
-                         G_SIGNAL_RUN_LAST,
-                         G_STRUCT_OFFSET (glWdgtMiniPreviewClass, clicked),
-                         NULL, NULL,
-                         gl_marshal_VOID__INT,
-                         G_TYPE_NONE, 1, G_TYPE_INT);
-
-       wdgt_mini_preview_signals[PRESSED] =
-           g_signal_new ("pressed",
-                         G_OBJECT_CLASS_TYPE(object_class),
-                         G_SIGNAL_RUN_LAST,
-                         G_STRUCT_OFFSET (glWdgtMiniPreviewClass, pressed),
-                         NULL, NULL,
-                         gl_marshal_VOID__INT_INT,
-                         G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_INT);
-
-       gl_debug (DEBUG_MINI_PREVIEW, "END");
-}
-
-static void
-gl_wdgt_mini_preview_init (glWdgtMiniPreview *preview)
-{
-       gl_debug (DEBUG_MINI_PREVIEW, "START");
-
-       preview->priv = g_new0 (glWdgtMiniPreviewPrivate, 1);
-
-       gtk_widget_add_events (GTK_WIDGET (preview),
-                              GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
-                              GDK_POINTER_MOTION_MASK);
-
-       gl_debug (DEBUG_MINI_PREVIEW, "END");
-}
-
-static void
-gl_wdgt_mini_preview_finalize (GObject *object)
-{
-       glWdgtMiniPreview *preview = GL_WDGT_MINI_PREVIEW (object);
-
-       gl_debug (DEBUG_MINI_PREVIEW, "START");
-
-       g_return_if_fail (object != NULL);
-       g_return_if_fail (GL_IS_WDGT_MINI_PREVIEW (object));
-
-       lgl_template_free (preview->priv->template);
-       g_free (preview->priv->centers);
-       g_free (preview->priv);
-
-       G_OBJECT_CLASS (gl_wdgt_mini_preview_parent_class)->finalize (object);
-
-       gl_debug (DEBUG_MINI_PREVIEW, "END");
-}
-
-GtkWidget *
-gl_wdgt_mini_preview_new (gint height,
-                         gint width)
-{
-       glWdgtMiniPreview *preview;
-
-       gl_debug (DEBUG_MINI_PREVIEW, "START");
-
-       preview = g_object_new (gl_wdgt_mini_preview_get_type (), NULL);
-
-       gl_wdgt_mini_preview_construct (preview, height, width);
-
-       gl_debug (DEBUG_MINI_PREVIEW, "END");
-
-       return GTK_WIDGET (preview);
-}
-
-/*--------------------------------------------------------------------------*/
-/* Construct composite widget.                                              */
-/*--------------------------------------------------------------------------*/
-static void
-gl_wdgt_mini_preview_construct (glWdgtMiniPreview *preview,
-                               gint               height,
-                               gint               width)
-{
-       gl_debug (DEBUG_MINI_PREVIEW, "START");
-
-       preview->priv->height = height;
-       preview->priv->width  = width;
-
-       gtk_widget_set_size_request (GTK_WIDGET (preview), width, height);
-
-       gl_debug (DEBUG_MINI_PREVIEW, "END");
-}
-
-/****************************************************************************/
-/* Set label for mini-preview to determine geometry.                        */
-/****************************************************************************/
-void gl_wdgt_mini_preview_set_label_by_name (glWdgtMiniPreview *preview,
-                                            const gchar       *name)
-{
-       lglTemplate *template;
-
-       gl_debug (DEBUG_MINI_PREVIEW, "START");
-
-       /* Fetch template */
-       template = lgl_db_lookup_template_from_name (name);
-
-       gl_wdgt_mini_preview_set_template (preview, template);
-
-       lgl_template_free (template);
-
-       gl_debug (DEBUG_MINI_PREVIEW, "END");
-}
-
-/****************************************************************************/
-/* Set label for mini-preview to determine geometry.                        */
-/****************************************************************************/
-void gl_wdgt_mini_preview_set_template (glWdgtMiniPreview *preview,
-                                       const lglTemplate *template)
-{
-       const lglTemplateFrame    *frame;
-       lglTemplateOrigin         *origins;
-       gdouble                    w, h;
-       gint                       i;
-
-       gl_debug (DEBUG_MINI_PREVIEW, "START");
-
-        frame = (lglTemplateFrame *)template->frames->data;
-
-       /*
-        * Set template
-        */
-       lgl_template_free (preview->priv->template);
-       preview->priv->template = lgl_template_dup (template);
-
-       /*
-        * Set scale and offsets
-        */
-       w = preview->priv->width - 4 - 2*SHADOW_X_OFFSET;
-       h = preview->priv->height - 4 - 2*SHADOW_Y_OFFSET;
-       if ( (w/template->page_width) > (h/template->page_height) ) {
-               preview->priv->scale = h / template->page_height;
-       } else {
-               preview->priv->scale = w / template->page_width;
-       }
-       preview->priv->offset_x = (preview->priv->width/preview->priv->scale - template->page_width) / 2.0;
-       preview->priv->offset_y = (preview->priv->height/preview->priv->scale - template->page_height) / 2.0;
-
-       /*
-        * Set labels per sheet
-        */
-       preview->priv->labels_per_sheet = lgl_template_frame_get_n_labels (frame);
-
-       /*
-        * Initialize centers
-        */
-       g_free (preview->priv->centers);
-       preview->priv->centers = g_new0 (LabelCenter, preview->priv->labels_per_sheet);
-       origins = lgl_template_frame_get_origins (frame);
-       lgl_template_frame_get_size (frame, &w, &h);
-       for ( i=0; i<preview->priv->labels_per_sheet; i++ )
-       {
-               preview->priv->centers[i].x = origins[i].x + w/2.0;
-               preview->priv->centers[i].y = origins[i].y + h/2.0;
-       }
-       g_free (origins);
-
-       /*
-        * Redraw modified preview
-        */
-       redraw( GTK_WIDGET (preview));
-
-       gl_debug (DEBUG_MINI_PREVIEW, "END");
-}
-
-/****************************************************************************/
-/* Highlight given label outlines.                                          */
-/****************************************************************************/
-void
-gl_wdgt_mini_preview_highlight_range (glWdgtMiniPreview *preview,
-                                     gint               first_label,
-                                     gint               last_label)
-{
-       gl_debug (DEBUG_MINI_PREVIEW, "START");
-
-       preview->priv->highlight_first = first_label;
-       preview->priv->highlight_last =  last_label;
-
-       redraw( GTK_WIDGET (preview));
-
-       gl_debug (DEBUG_MINI_PREVIEW, "END");
-}
-
-
-/*--------------------------------------------------------------------------*/
-/* Expose event handler.                                                    */
-/*--------------------------------------------------------------------------*/
-static gboolean
-expose_event_cb (GtkWidget       *widget,
-                GdkEventExpose  *event)
-{
-       cairo_t *cr;
-
-       gl_debug (DEBUG_MINI_PREVIEW, "START");
-
-       cr = gdk_cairo_create (widget->window);
-
-       cairo_rectangle (cr,
-                       event->area.x, event->area.y,
-                       event->area.width, event->area.height);
-       cairo_clip (cr);
-       
-       draw (GL_WDGT_MINI_PREVIEW (widget), cr);
-
-       cairo_destroy (cr);
-
-       gl_debug (DEBUG_MINI_PREVIEW, "END");
-       return FALSE;
-}
-
-/*--------------------------------------------------------------------------*/
-/* Button press event handler                                               */
-/*--------------------------------------------------------------------------*/
-static gboolean
-button_press_event_cb (GtkWidget      *widget,
-                      GdkEventButton *event)
-{
-       glWdgtMiniPreview *preview = GL_WDGT_MINI_PREVIEW (widget);
-       cairo_t           *cr;
-       gdouble            x, y;
-       gint               i;
-
-       gl_debug (DEBUG_MINI_PREVIEW, "START");
-
-       if ( event->button == 1 )
-       {
-               cr = gdk_cairo_create (widget->window);
-
-               /* Set transformation. */
-               cairo_identity_matrix (cr);
-               cairo_scale (cr, preview->priv->scale, preview->priv->scale);
-               cairo_translate (cr, preview->priv->offset_x, preview->priv->offset_y);
-
-               x = event->x;
-               y = event->y;
-               cairo_device_to_user (cr, &x, &y);
-
-               i = find_closest_label (preview, x, y);
-
-               g_signal_emit (G_OBJECT(preview),
-                              wdgt_mini_preview_signals[CLICKED],
-                              0, i);
-
-               preview->priv->first_i = i;
-               preview->priv->last_i  = i;
-               g_signal_emit (G_OBJECT(preview),
-                              wdgt_mini_preview_signals[PRESSED],
-                              0, preview->priv->first_i, preview->priv->last_i);
-
-               preview->priv->dragging = TRUE;
-               preview->priv->prev_i   = i;
-
-               cairo_destroy (cr);
-       }
-
-       gl_debug (DEBUG_MINI_PREVIEW, "END");
-       return FALSE;
-}
-
-/*--------------------------------------------------------------------------*/
-/* Motion notify event handler                                              */
-/*--------------------------------------------------------------------------*/
-static gboolean
-motion_notify_event_cb (GtkWidget      *widget,
-                       GdkEventMotion *event)
-{
-       glWdgtMiniPreview *preview = GL_WDGT_MINI_PREVIEW (widget);
-       cairo_t           *cr;
-       gdouble            x, y;
-       gint               i;
-
-       gl_debug (DEBUG_MINI_PREVIEW, "START");
-
-       if (preview->priv->dragging)
-       {
-               cr = gdk_cairo_create (widget->window);
-
-               /* Set transformation. */
-               cairo_identity_matrix (cr);
-               cairo_scale (cr, preview->priv->scale, preview->priv->scale);
-               cairo_translate (cr, preview->priv->offset_x, preview->priv->offset_y);
-
-               x = event->x;
-               y = event->y;
-               cairo_device_to_user (cr, &x, &y);
-
-               i = find_closest_label (preview, x, y);
-
-               if ( i != preview->priv->prev_i )
-               {
-                       preview->priv->last_i = i;
-
-                       g_signal_emit (G_OBJECT(preview),
-                                      wdgt_mini_preview_signals[PRESSED],
-                                      0,
-                                      MIN (preview->priv->first_i, preview->priv->last_i),
-                                      MAX (preview->priv->first_i, preview->priv->last_i));
-
-                       preview->priv->prev_i = i;
-               }
-               cairo_destroy (cr);
-       }
-
-       gl_debug (DEBUG_MINI_PREVIEW, "END");
-       return FALSE;
-}
-
-/*--------------------------------------------------------------------------*/
-/* Button release event handler                                             */
-/*--------------------------------------------------------------------------*/
-static gboolean
-button_release_event_cb (GtkWidget      *widget,
-                        GdkEventButton *event)
-{
-       glWdgtMiniPreview *preview = GL_WDGT_MINI_PREVIEW (widget);
-       
-       gl_debug (DEBUG_MINI_PREVIEW, "START");
-
-       if ( event->button == 1 )
-       {
-               preview->priv->dragging = FALSE;
-
-       }
-
-       gl_debug (DEBUG_MINI_PREVIEW, "END");
-       return FALSE;
-}
-
-/*--------------------------------------------------------------------------*/
-/* Style set handler (updates colors when style/theme changes).             */
-/*--------------------------------------------------------------------------*/
-static void
-style_set_cb (GtkWidget        *widget,
-             GtkStyle         *previous_style)
-{
-       gl_debug (DEBUG_MINI_PREVIEW, "START");
-
-       redraw( widget );
-
-       gl_debug (DEBUG_MINI_PREVIEW, "END");
-}
-
-/*--------------------------------------------------------------------------*/
-/* Redraw.                                                                  */
-/*--------------------------------------------------------------------------*/
-static void
-redraw (GtkWidget *widget)
-{
-       GdkRegion *region;
-       
-       gl_debug (DEBUG_MINI_PREVIEW, "START");
-
-       if (widget->window)
-       {
-
-               region = gdk_drawable_get_clip_region (widget->window);
-
-               gdk_window_invalidate_region (widget->window, region, TRUE);
-               gdk_window_process_updates (widget->window, TRUE);
-
-               gdk_region_destroy (region);
-       }
-
-       gl_debug (DEBUG_MINI_PREVIEW, "END");
-}
-
-/*--------------------------------------------------------------------------*/
-/* Find index+1 of label closest to given coordinates.                      */
-/*--------------------------------------------------------------------------*/
-static gint
-find_closest_label (glWdgtMiniPreview      *preview,
-                   gdouble                 x,
-                   gdouble                 y)
-{
-       gint    i;
-       gint    min_i;
-       gdouble dx, dy, d2, min_d2;
-
-       dx = x - preview->priv->centers[0].x;
-       dy = y - preview->priv->centers[0].y;
-       min_d2 = dx*dx + dy*dy;
-       min_i = 0;
-
-       for ( i=1; i<preview->priv->labels_per_sheet; i++ )
-       {
-               dx = x - preview->priv->centers[i].x;
-               dy = y - preview->priv->centers[i].y;
-               d2 = dx*dx + dy*dy;
-
-               if ( d2 < min_d2 )
-               {
-                       min_d2 = d2;
-                       min_i  = i;
-               }
-       }
-
-       return min_i + 1;
-}
-
-/*--------------------------------------------------------------------------*/
-/* Draw mini preview.                                                       */
-/*--------------------------------------------------------------------------*/
-static void
-draw (glWdgtMiniPreview  *preview,
-      cairo_t            *cr)
-{
-       lglTemplate *template = preview->priv->template;
-       gdouble      shadow_x, shadow_y;
-
-       gl_debug (DEBUG_MINI_PREVIEW, "START");
-
-       if (template)
-       {
-
-               /* Set transformation. */
-               cairo_identity_matrix (cr);
-               cairo_scale (cr, preview->priv->scale, preview->priv->scale);
-               cairo_translate (cr, preview->priv->offset_x, preview->priv->offset_y);
-
-
-               /* update shadow */
-               shadow_x = SHADOW_X_OFFSET/preview->priv->scale;
-               shadow_y = SHADOW_Y_OFFSET/preview->priv->scale;
-
-               draw_shadow (preview, cr,
-                            shadow_x, shadow_y,
-                            template->page_width, template->page_height);
-
-               draw_paper (preview, cr,
-                           template->page_width, template->page_height,
-                           1.0/preview->priv->scale);
-
-               draw_labels (preview, cr, template, 1.0/preview->priv->scale);
-                            
-       }
-
-       gl_debug (DEBUG_MINI_PREVIEW, "END");
-
-}
-
-
-/*--------------------------------------------------------------------------*/
-/* Draw page shadow                                                         */
-/*--------------------------------------------------------------------------*/
-static void
-draw_shadow (glWdgtMiniPreview      *preview,
-            cairo_t                *cr,
-            gdouble                 x,
-            gdouble                 y,
-            gdouble                 width,
-            gdouble                 height)
-{
-       GtkStyle *style;
-       guint     shadow_color;
-
-        gl_debug (DEBUG_MINI_PREVIEW, "START");
-
-       cairo_save (cr);
-
-       cairo_rectangle (cr, x, y, width, height);
-
-       style = gtk_widget_get_style (GTK_WIDGET(preview));
-       shadow_color = gl_color_from_gdk_color (&style->bg[GTK_STATE_ACTIVE]);
-       cairo_set_source_rgb (cr, GL_COLOR_RGB_ARGS (shadow_color));
-
-        cairo_fill (cr);
-
-        cairo_restore (cr);
-
-        gl_debug (DEBUG_MINI_PREVIEW, "END");
-}
-
-/*--------------------------------------------------------------------------*/
-/* Draw page                                                                */
-/*--------------------------------------------------------------------------*/
-static void
-draw_paper (glWdgtMiniPreview      *preview,
-           cairo_t                *cr,
-           gdouble                 width,
-           gdouble                 height,
-           gdouble                 line_width)
-{
-       cairo_save (cr);
-
-        gl_debug (DEBUG_MINI_PREVIEW, "START");
-
-       cairo_rectangle (cr, 0.0, 0.0, width, height);
-
-       cairo_set_source_rgb (cr, PAPER_RGB_ARGS);
-        cairo_fill_preserve (cr);
-
-       cairo_set_source_rgb (cr, PAPER_OUTLINE_RGB_ARGS);
-       cairo_set_line_width (cr, line_width);
-        cairo_stroke (cr);
-
-        cairo_restore (cr);
-
-        gl_debug (DEBUG_MINI_PREVIEW, "END");
-}
-
-/*--------------------------------------------------------------------------*/
-/* Draw labels                                                              */
-/*--------------------------------------------------------------------------*/
-static void
-draw_labels (glWdgtMiniPreview *preview,
-            cairo_t           *cr,
-            lglTemplate       *template,
-            gdouble            line_width)
-{
-        const lglTemplateFrame    *frame;
-        gint                       i, n_labels;
-        lglTemplateOrigin         *origins;
-       GtkStyle                  *style;
-       guint                      highlight_color;
-
-        gl_debug (DEBUG_MINI_PREVIEW, "START");
-
-        frame = (lglTemplateFrame *)template->frames->data;
-
-        n_labels = lgl_template_frame_get_n_labels (frame);
-        origins  = lgl_template_frame_get_origins (frame);
-
-       style = gtk_widget_get_style (GTK_WIDGET(preview));
-       highlight_color = gl_color_from_gdk_color (&style->base[GTK_STATE_SELECTED]);
-
-        for ( i=0; i < n_labels; i++ ) {
-
-               cairo_save (cr);
-
-                cairo_translate (cr, origins[i].x, origins[i].y);
-                gl_cairo_label_path (cr, template, FALSE, FALSE);
-
-               if ( ((i+1) >= preview->priv->highlight_first) &&
-                    ((i+1) <= preview->priv->highlight_last) )
-               {
-                       cairo_set_source_rgb (cr, GL_COLOR_RGB_ARGS (highlight_color));
-               }
-               else
-               {
-                       cairo_set_source_rgb (cr, PAPER_RGB_ARGS);
-               }
-               cairo_set_fill_rule (cr, CAIRO_FILL_RULE_EVEN_ODD);
-               cairo_fill_preserve (cr);
-
-               cairo_set_line_width (cr, line_width);
-               cairo_set_source_rgb (cr, LABEL_OUTLINE_RGB_ARGS);
-               cairo_stroke (cr);
-
-               cairo_restore (cr);
-
-        }
-
-        g_free (origins);
-
-        gl_debug (DEBUG_MINI_PREVIEW, "END");
-}
-
diff --git a/src/wdgt-mini-preview.h b/src/wdgt-mini-preview.h
deleted file mode 100644 (file)
index 8754b85..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  wdgt_mini_preview.h:  mini-preview widget module header file
- *
- *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-
-#ifndef __WDGT_MINI_PREVIEW_H__
-#define __WDGT_MINI_PREVIEW_H__
-
-#include <gtk/gtk.h>
-#include "label.h"
-
-G_BEGIN_DECLS
-
-#define GL_TYPE_WDGT_MINI_PREVIEW (gl_wdgt_mini_preview_get_type ())
-#define GL_WDGT_MINI_PREVIEW(obj) \
-        (GTK_CHECK_CAST((obj), GL_TYPE_WDGT_MINI_PREVIEW, glWdgtMiniPreview ))
-#define GL_WDGT_MINI_PREVIEW_CLASS(klass) \
-        (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_WDGT_MINI_PREVIEW, glWdgtMiniPreviewClass))
-#define GL_IS_WDGT_MINI_PREVIEW(obj) \
-        (GTK_CHECK_TYPE ((obj), GL_TYPE_WDGT_MINI_PREVIEW))
-#define GL_IS_WDGT_MINI_PREVIEW_CLASS(klass) \
-        (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_WDGT_MINI_PREVIEW))
-
-typedef struct _glWdgtMiniPreview        glWdgtMiniPreview;
-typedef struct _glWdgtMiniPreviewPrivate glWdgtMiniPreviewPrivate;
-typedef struct _glWdgtMiniPreviewClass   glWdgtMiniPreviewClass;
-
-struct _glWdgtMiniPreview {
-       GtkDrawingArea            parent_widget;
-
-       glWdgtMiniPreviewPrivate *priv;
-};
-
-struct _glWdgtMiniPreviewClass {
-       GtkDrawingAreaClass       parent_class;
-
-       void (*clicked) (glWdgtMiniPreview *preview,
-                        gint index,
-                        gpointer user_data);
-
-       void (*pressed) (glWdgtMiniPreview *preview,
-                        gint index1,
-                        gint index2,
-                        gpointer user_data);
-};
-
-GType      gl_wdgt_mini_preview_get_type          (void) G_GNUC_CONST;
-
-GtkWidget *gl_wdgt_mini_preview_new               (gint               height,
-                                                  gint               width);
-
-void       gl_wdgt_mini_preview_set_label_by_name (glWdgtMiniPreview *preview,
-                                                  const gchar       *name);
-
-void       gl_wdgt_mini_preview_set_template      (glWdgtMiniPreview *preview,
-                                                  const lglTemplate *template);
-
-void       gl_wdgt_mini_preview_highlight_range   (glWdgtMiniPreview *preview,
-                                                  gint               first_label,
-                                                  gint               last_label);
-
-G_END_DECLS
-
-#endif
diff --git a/src/wdgt-print-copies.c b/src/wdgt-print-copies.c
deleted file mode 100644 (file)
index 7d2f35b..0000000
+++ /dev/null
@@ -1,363 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  wdgt_print_copies.c:  custom print copies widget module
- *
- *  Copyright (C) 2001  Jim Evins <evins@snaught.com>.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-
-#include <config.h>
-
-#include "wdgt-print-copies.h"
-
-#include <glib/gi18n.h>
-#include <gtk/gtktogglebutton.h>
-#include <gtk/gtkspinbutton.h>
-#include <gtk/gtkradiobutton.h>
-#include <gtk/gtklabel.h>
-#include <gtk/gtkvbox.h>
-
-#include "hig.h"
-#include "wdgt-mini-preview.h"
-#include "marshal.h"
-
-#include "debug.h"
-
-#define WDGT_MINI_PREVIEW_HEIGHT 175
-#define WDGT_MINI_PREVIEW_WIDTH  150
-
-/*===========================================*/
-/* Private globals                           */
-/*===========================================*/
-
-/*===========================================*/
-/* Local function prototypes                 */
-/*===========================================*/
-
-static void gl_wdgt_print_copies_finalize      (GObject * object);
-
-static void gl_wdgt_print_copies_construct     (glWdgtPrintCopies * copies,
-                                               glLabel * label);
-
-static void sheets_radio_cb                    (GtkToggleButton * togglebutton,
-                                               gpointer user_data);
-static void first_spin_cb                      (GtkSpinButton * spinbutton,
-                                               gpointer user_data);
-static void last_spin_cb                       (GtkSpinButton * spinbutton,
-                                               gpointer user_data);
-
-static void
-preview_pressed (glWdgtMiniPreview *mini_preview,
-                gint first, gint last, gpointer user_data);
-
-\f
-/****************************************************************************/
-/* Boilerplate Object stuff.                                                */
-/****************************************************************************/
-G_DEFINE_TYPE (glWdgtPrintCopies, gl_wdgt_print_copies, GTK_TYPE_HBOX);
-
-static void
-gl_wdgt_print_copies_class_init (glWdgtPrintCopiesClass * class)
-{
-       GObjectClass *object_class = G_OBJECT_CLASS (class);
-
-       gl_wdgt_print_copies_parent_class = g_type_class_peek_parent (class);
-
-       object_class->finalize = gl_wdgt_print_copies_finalize;
-}
-
-static void
-gl_wdgt_print_copies_init (glWdgtPrintCopies * copies)
-{
-       copies->labels_per_sheet = 0;
-
-       copies->mini_preview = NULL;
-
-       copies->sheets_radio = NULL;
-       copies->sheets_spin = NULL;
-
-       copies->labels_radio = NULL;
-       copies->first_spin = NULL;
-       copies->last_spin = NULL;
-}
-
-static void
-gl_wdgt_print_copies_finalize (GObject * object)
-{
-       g_return_if_fail (object != NULL);
-       g_return_if_fail (GL_IS_WDGT_PRINT_COPIES (object));
-
-       G_OBJECT_CLASS (gl_wdgt_print_copies_parent_class)->finalize (object);
-}
-
-GtkWidget *
-gl_wdgt_print_copies_new (glLabel * label)
-{
-       glWdgtPrintCopies *copies;
-
-       copies = g_object_new (gl_wdgt_print_copies_get_type (), NULL);
-
-       gl_wdgt_print_copies_construct (copies, label);
-
-       return GTK_WIDGET (copies);
-}
-
-/*--------------------------------------------------------------------------*/
-/* Construct composite widget.                                              */
-/*--------------------------------------------------------------------------*/
-static void
-gl_wdgt_print_copies_construct (glWdgtPrintCopies *copies,
-                               glLabel           *label)
-{
-       const lglTemplateFrame    *frame;
-       GtkWidget                 *whbox, *wvbox, *whbox1;
-       GSList                    *radio_group = NULL;
-       GtkObject                 *adjust;
-
-       whbox = GTK_WIDGET (copies);
-
-        frame = (lglTemplateFrame *)label->template->frames->data;
-
-       copies->labels_per_sheet = lgl_template_frame_get_n_labels (frame);
-
-       /* mini_preview canvas */
-       copies->mini_preview = gl_wdgt_mini_preview_new (WDGT_MINI_PREVIEW_HEIGHT,
-                                                   WDGT_MINI_PREVIEW_WIDTH);
-       gl_wdgt_mini_preview_set_template (GL_WDGT_MINI_PREVIEW(copies->mini_preview),
-                                          label->template);
-       gtk_box_pack_start (GTK_BOX(whbox), copies->mini_preview, FALSE, FALSE, 0);
-
-       wvbox = gtk_vbox_new (FALSE, GL_HIG_PAD1);
-       gtk_box_pack_start (GTK_BOX(whbox), wvbox, FALSE, FALSE, 0);
-
-       /* Sheet controls */
-       whbox1 = gtk_hbox_new (FALSE, GL_HIG_PAD2);
-       gtk_box_pack_start (GTK_BOX(wvbox), whbox1, FALSE, FALSE, 0);
-       copies->sheets_radio =
-           gtk_radio_button_new_with_label (radio_group, _("Sheets:"));
-       gtk_box_pack_start (GTK_BOX(whbox1), copies->sheets_radio, FALSE, FALSE, 0);
-       adjust = gtk_adjustment_new (1, 1.0, 100.0, 1.0, 10.0, 0.0);
-       copies->sheets_spin = gtk_spin_button_new (GTK_ADJUSTMENT (adjust),
-                                                  1.0, 0);
-       gtk_box_pack_start (GTK_BOX(whbox1), copies->sheets_spin, FALSE, FALSE, 0);
-       gl_wdgt_mini_preview_highlight_range (GL_WDGT_MINI_PREVIEW(copies->mini_preview),
-                                             1, copies->labels_per_sheet);
-
-       /* Blank line */
-       gtk_box_pack_start (GTK_BOX(wvbox), gtk_label_new (""), FALSE, FALSE, 0);
-
-       /* Label controls */
-       whbox1 = gtk_hbox_new (FALSE, GL_HIG_PAD2);
-       gtk_box_pack_start (GTK_BOX(wvbox), whbox1, FALSE, FALSE, 0);
-       radio_group =
-           gtk_radio_button_get_group (GTK_RADIO_BUTTON (copies->sheets_radio));
-       copies->labels_radio =
-           gtk_radio_button_new_with_label (radio_group, _("Labels"));
-       gtk_box_pack_start (GTK_BOX(whbox1), copies->labels_radio, FALSE, FALSE, 0);
-       gtk_box_pack_start (GTK_BOX(whbox1), gtk_label_new (_("from:")), FALSE, FALSE, 0);
-       adjust = gtk_adjustment_new (1, 1.0, copies->labels_per_sheet, 1.0, 10.0, 0.0);
-       copies->first_spin = gtk_spin_button_new (GTK_ADJUSTMENT (adjust),
-                                                 1.0, 0);
-       gtk_box_pack_start (GTK_BOX(whbox1), copies->first_spin, FALSE, FALSE, 0);
-       gtk_box_pack_start (GTK_BOX(whbox1), gtk_label_new (_("to:")), FALSE, FALSE, 0);
-       adjust = gtk_adjustment_new (copies->labels_per_sheet, 1.0, copies->labels_per_sheet, 1.0, 10.0, 0.0);
-       copies->last_spin = gtk_spin_button_new (GTK_ADJUSTMENT (adjust),
-                                                1.0, 0);
-       gtk_box_pack_start (GTK_BOX(whbox1), copies->last_spin, FALSE, FALSE, 0);
-       gtk_widget_set_sensitive (copies->first_spin, FALSE);
-       gtk_widget_set_sensitive (copies->last_spin, FALSE);
-
-       /* Connect signals to controls */
-       g_signal_connect (G_OBJECT (copies->mini_preview), "pressed",
-                         G_CALLBACK (preview_pressed), copies);
-       g_signal_connect (G_OBJECT (copies->sheets_radio), "toggled",
-                         G_CALLBACK (sheets_radio_cb), copies);
-       g_signal_connect (G_OBJECT (copies->first_spin), "changed",
-                         G_CALLBACK (first_spin_cb), copies);
-       g_signal_connect (G_OBJECT (copies->last_spin), "changed",
-                         G_CALLBACK (last_spin_cb), copies);
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Enable/Disable appropriate controls due to radio button toggle.*/
-/*--------------------------------------------------------------------------*/
-static void
-sheets_radio_cb (GtkToggleButton * togglebutton,
-                gpointer user_data)
-{
-       glWdgtPrintCopies *copies = GL_WDGT_PRINT_COPIES (user_data);
-       gint first, last;
-
-       if (gtk_toggle_button_get_active (togglebutton)) {
-
-               gtk_widget_set_sensitive (copies->sheets_spin, TRUE);
-               gtk_widget_set_sensitive (copies->first_spin, FALSE);
-               gtk_widget_set_sensitive (copies->last_spin, FALSE);
-
-               gl_wdgt_mini_preview_highlight_range (GL_WDGT_MINI_PREVIEW(copies->mini_preview),
-                                       1, copies->labels_per_sheet);
-
-       } else {
-
-               gtk_widget_set_sensitive (copies->sheets_spin, FALSE);
-               gtk_widget_set_sensitive (copies->first_spin, TRUE);
-               gtk_widget_set_sensitive (copies->last_spin, TRUE);
-
-               first =
-                   gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                                     (copies->first_spin));
-               last =
-                   gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                                     (copies->last_spin));
-               gl_wdgt_mini_preview_highlight_range (GL_WDGT_MINI_PREVIEW(copies->mini_preview),
-                                                first, last);
-
-       }
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  modify widget due to change of first spin button               */
-/*--------------------------------------------------------------------------*/
-static void
-first_spin_cb (GtkSpinButton * spinbutton,
-              gpointer user_data)
-{
-       glWdgtPrintCopies *copies = GL_WDGT_PRINT_COPIES (user_data);
-       gint first, last;
-
-       first =
-           gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                             (copies->first_spin));
-       last =
-           gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                             (copies->last_spin));
-
-       gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (copies->last_spin))->lower = first;
-
-       gl_wdgt_mini_preview_highlight_range (GL_WDGT_MINI_PREVIEW(copies->mini_preview),
-                                              first, last);
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  modify widget due to change of last spin button                */
-/*--------------------------------------------------------------------------*/
-static void
-last_spin_cb (GtkSpinButton * spinbutton,
-             gpointer user_data)
-{
-       glWdgtPrintCopies *copies = GL_WDGT_PRINT_COPIES (user_data);
-       gint first, last;
-
-       first =
-           gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                             (copies->first_spin));
-       last =
-           gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                             (copies->last_spin));
-
-       gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (copies->first_spin))->upper = last;
-
-       gl_wdgt_mini_preview_highlight_range (GL_WDGT_MINI_PREVIEW(copies->mini_preview),
-                                              first, last);
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Canvas event handler, select first and last items.             */
-/*--------------------------------------------------------------------------*/
-static void
-preview_pressed (glWdgtMiniPreview *mini_preview,
-                gint first,
-                gint last,
-                gpointer user_data)
-{
-       glWdgtPrintCopies *copies = GL_WDGT_PRINT_COPIES (user_data);
-
-       gl_wdgt_print_copies_set_range (copies, 1, first, last);
-}
-
-/****************************************************************************/
-/* query selected range of labels within sheet or number of sheets.         */
-/****************************************************************************/
-void
-gl_wdgt_print_copies_get_range (glWdgtPrintCopies * copies,
-                               gint * n_sheets,
-                               gint * first_label,
-                               gint * last_label)
-{
-       gboolean sheets_active;
-
-       sheets_active =
-           gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
-                                         (copies->sheets_radio));
-
-       if (sheets_active) {
-               *n_sheets =
-                   gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                                     (copies->sheets_spin));
-               *first_label = 1;
-               *last_label = copies->labels_per_sheet;
-       } else {
-               *n_sheets = 1;
-               *first_label =
-                   gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                                     (copies->first_spin));
-               *last_label =
-                   gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                                     (copies->last_spin));
-       }
-}
-
-/****************************************************************************/
-/* set range of labels within sheet or number of sheets                     */
-/****************************************************************************/
-void
-gl_wdgt_print_copies_set_range (glWdgtPrintCopies * copies,
-                               gint n_sheets,
-                               gint first_label,
-                               gint last_label)
-{
-       gint old_first_label;
-
-       old_first_label =
-           gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                             (copies->first_spin));
-
-       if (first_label > old_first_label) {
-               gtk_spin_button_set_value (GTK_SPIN_BUTTON (copies->last_spin),
-                                          last_label);
-               gtk_spin_button_set_value (GTK_SPIN_BUTTON (copies->first_spin),
-                                          first_label);
-       } else {
-               gtk_spin_button_set_value (GTK_SPIN_BUTTON (copies->first_spin),
-                                          first_label);
-               gtk_spin_button_set_value (GTK_SPIN_BUTTON (copies->last_spin),
-                                          last_label);
-       }
-       if ((first_label == 1) && (last_label == copies->labels_per_sheet)) {
-               gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
-                                             (copies->sheets_radio), TRUE);
-               gtk_spin_button_set_value (GTK_SPIN_BUTTON
-                                          (copies->sheets_spin), n_sheets);
-       } else {
-               gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
-                                             (copies->labels_radio), TRUE);
-               gtk_spin_button_set_value (GTK_SPIN_BUTTON
-                                          (copies->sheets_spin), 1.0);
-       }
-}
diff --git a/src/wdgt-print-copies.h b/src/wdgt-print-copies.h
deleted file mode 100644 (file)
index 7e24dee..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  wdgt_print_copies.h:  custom print copies widget module header file
- *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-
-#ifndef __WDGT_PRINT_COPIES_H__
-#define __WDGT_PRINT_COPIES_H__
-
-#include "label.h"
-#include <gtk/gtkhbox.h>
-
-G_BEGIN_DECLS
-
-#define GL_TYPE_WDGT_PRINT_COPIES (gl_wdgt_print_copies_get_type ())
-#define GL_WDGT_PRINT_COPIES(obj) \
-        (GTK_CHECK_CAST((obj), GL_TYPE_WDGT_PRINT_COPIES, glWdgtPrintCopies ))
-#define GL_WDGT_PRINT_COPIES_CLASS(klass) \
-        (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_WDGT_PRINT_COPIES, glWdgtPrintCopiesClass))
-#define GL_IS_WDGT_PRINT_COPIES(obj) \
-        (GTK_CHECK_TYPE ((obj), GL_TYPE_WDGT_PRINT_COPIES))
-#define GL_IS_WDGT_PRINT_COPIES_CLASS(klass) \
-        (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_WDGT_PRINT_COPIES))
-
-typedef struct _glWdgtPrintCopies      glWdgtPrintCopies;
-typedef struct _glWdgtPrintCopiesClass glWdgtPrintCopiesClass;
-
-struct _glWdgtPrintCopies {
-       GtkHBox   parent_widget;
-
-       gint      labels_per_sheet;
-
-       GtkWidget *mini_preview;
-
-       GtkWidget *sheets_radio;
-       GtkWidget *sheets_spin;
-
-       GtkWidget *labels_radio;
-       GtkWidget *first_spin;
-       GtkWidget *last_spin;
-};
-
-struct _glWdgtPrintCopiesClass {
-       GtkHBoxClass parent_class;
-};
-
-GType      gl_wdgt_print_copies_get_type  (void) G_GNUC_CONST;
-
-GtkWidget *gl_wdgt_print_copies_new       (glLabel           *label);
-
-void       gl_wdgt_print_copies_get_range (glWdgtPrintCopies *copies,
-                                          gint              *n_sheets,
-                                          gint              *first_label,
-                                          gint              *last_label);
-
-void       gl_wdgt_print_copies_set_range (glWdgtPrintCopies *copies,
-                                          gint               n_sheets,
-                                          gint               first_label,
-                                          gint               last_label);
-
-G_END_DECLS
-
-#endif
diff --git a/src/wdgt-print-merge.c b/src/wdgt-print-merge.c
deleted file mode 100644 (file)
index f05d4ed..0000000
+++ /dev/null
@@ -1,313 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  wdgt_print_merge.c:  print merge widget module
- *
- *  Copyright (C) 2001  Jim Evins <evins@snaught.com>.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-
-#include <config.h>
-
-#include "wdgt-print-merge.h"
-
-#include <math.h>
-#include <glib/gi18n.h>
-#include <gtk/gtktogglebutton.h>
-#include <gtk/gtkspinbutton.h>
-#include <gtk/gtkcheckbutton.h>
-#include <gtk/gtklabel.h>
-#include <gtk/gtkvbox.h>
-
-#include "hig.h"
-#include "wdgt-mini-preview.h"
-#include "marshal.h"
-
-#include "pixmaps/collate.xpm"
-#include "pixmaps/nocollate.xpm"
-
-#include "debug.h"
-
-#define WDGT_MINI_PREVIEW_HEIGHT 175
-#define WDGT_MINI_PREVIEW_WIDTH  150
-
-/*===========================================*/
-/* Private globals                           */
-/*===========================================*/
-
-/*===========================================*/
-/* Local function prototypes                 */
-/*===========================================*/
-
-static void gl_wdgt_print_merge_finalize      (GObject * object);
-
-static void gl_wdgt_print_merge_construct     (glWdgtPrintMerge * merge,
-                                              glLabel * label);
-
-static void preview_clicked                   (glWdgtMiniPreview *mini_preview,
-                                              gint i_label,
-                                              gpointer user_data);
-
-static void collate_check_cb                  (GtkToggleButton * togglebutton,
-                                              gpointer user_data);
-static void spin_cb                           (GtkSpinButton * spinbutton,
-                                              gpointer user_data);
-
-\f
-/****************************************************************************/
-/* Boilerplate Object stuff.                                                */
-/****************************************************************************/
-G_DEFINE_TYPE (glWdgtPrintMerge, gl_wdgt_print_merge, GTK_TYPE_HBOX);
-
-
-static void
-gl_wdgt_print_merge_class_init (glWdgtPrintMergeClass * class)
-{
-       GObjectClass *object_class = G_OBJECT_CLASS (class);
-
-       gl_wdgt_print_merge_parent_class = g_type_class_peek_parent (class);
-
-       object_class->finalize = gl_wdgt_print_merge_finalize;
-}
-
-static void
-gl_wdgt_print_merge_init (glWdgtPrintMerge * merge)
-{
-       merge->mini_preview = NULL;
-
-       merge->copies_spin = NULL;
-       merge->first_spin = NULL;
-       merge->collate_image = NULL;
-       merge->collate_check = NULL;
-}
-
-static void
-gl_wdgt_print_merge_finalize (GObject * object)
-{
-       g_return_if_fail (object != NULL);
-       g_return_if_fail (GL_IS_WDGT_PRINT_MERGE (object));
-
-       G_OBJECT_CLASS (gl_wdgt_print_merge_parent_class)->finalize (object);
-}
-
-GtkWidget *
-gl_wdgt_print_merge_new (glLabel * label)
-{
-       glWdgtPrintMerge *merge;
-
-       merge = g_object_new (gl_wdgt_print_merge_get_type (), NULL);
-
-       gl_wdgt_print_merge_construct (merge, label);
-
-       return GTK_WIDGET (merge);
-}
-\f
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Construct composite widget.                                    */
-/*--------------------------------------------------------------------------*/
-static void
-gl_wdgt_print_merge_construct (glWdgtPrintMerge * merge,
-                              glLabel * label)
-{
-       const lglTemplateFrame    *frame;
-       GtkWidget                 *whbox, *wvbox, *whbox1;
-       GtkObject                 *adjust;
-       GdkPixbuf                 *pixbuf;
-
-       whbox = GTK_WIDGET (merge);
-
-        frame = (lglTemplateFrame *)label->template->frames->data;
-
-       merge->labels_per_sheet = lgl_template_frame_get_n_labels (frame);
-
-       /* mini_preview canvas */
-       merge->mini_preview = gl_wdgt_mini_preview_new (WDGT_MINI_PREVIEW_HEIGHT,
-                                                       WDGT_MINI_PREVIEW_WIDTH);
-       gl_wdgt_mini_preview_set_template( GL_WDGT_MINI_PREVIEW (merge->mini_preview),
-                                          label->template );
-       gtk_box_pack_start (GTK_BOX(whbox), merge->mini_preview, FALSE, FALSE, 0);
-       gl_wdgt_mini_preview_highlight_range (GL_WDGT_MINI_PREVIEW(merge->mini_preview),
-                                             1, 1);
-
-       wvbox = gtk_vbox_new (FALSE, GL_HIG_PAD1);
-       gtk_box_pack_start (GTK_BOX(whbox), wvbox, FALSE, FALSE, 0);
-
-       /* First Label controls */
-       whbox1 = gtk_hbox_new (FALSE, GL_HIG_PAD2);
-       gtk_box_pack_start (GTK_BOX(wvbox), whbox1, FALSE, FALSE, 0);
-       gtk_box_pack_start (GTK_BOX(whbox1),
-                            gtk_label_new (_("Start on label")), FALSE, FALSE, 0);
-       adjust = gtk_adjustment_new (1, 1.0, merge->labels_per_sheet, 1.0, 10.0, 0.0);
-       merge->first_spin = gtk_spin_button_new (GTK_ADJUSTMENT (adjust), 1.0, 0);
-       gtk_box_pack_start (GTK_BOX(whbox1), merge->first_spin, FALSE, FALSE, 0);
-       gtk_box_pack_start (GTK_BOX(whbox1),
-                               gtk_label_new (_("on 1st sheet")), FALSE, FALSE, 0);
-
-       /* Blank line */
-       gtk_box_pack_start (GTK_BOX(wvbox), gtk_label_new (""), FALSE, FALSE, 0);
-
-       /* Copy & collate controls*/
-       whbox1 = gtk_hbox_new (FALSE, GL_HIG_PAD2);
-       gtk_box_pack_start (GTK_BOX(wvbox), whbox1, FALSE, FALSE, 0);
-       gtk_box_pack_start (GTK_BOX(whbox1),
-                               gtk_label_new (_("Copies:")), FALSE, FALSE, 0);
-       adjust = gtk_adjustment_new (1, 1.0, 100.0, 1.0, 10.0, 0.0);
-       merge->copies_spin = gtk_spin_button_new (GTK_ADJUSTMENT (adjust), 1.0, 0);
-       gtk_box_pack_start (GTK_BOX(whbox1), merge->copies_spin, FALSE, FALSE, 0);
-       gtk_box_pack_start (GTK_BOX(whbox1), gtk_label_new ("    "), FALSE, FALSE, 0);
-       merge->collate_check = gtk_check_button_new_with_label (_("Collate"));
-       gtk_box_pack_start (GTK_BOX(whbox1), merge->collate_check, FALSE, FALSE, 0);
-       pixbuf = gdk_pixbuf_new_from_xpm_data ( (const char **)nocollate_xpm);
-       merge->collate_image = gtk_image_new_from_pixbuf(pixbuf);
-       gtk_widget_set_sensitive (merge->collate_check, FALSE);
-       gtk_widget_set_sensitive (merge->collate_image, FALSE);
-
-       gtk_box_pack_start (GTK_BOX(whbox1), merge->collate_image, FALSE, FALSE, 0);
-
-       /* Connect signals to controls */
-       g_signal_connect (G_OBJECT (merge->mini_preview), "clicked",
-                         G_CALLBACK (preview_clicked), merge);
-       g_signal_connect (G_OBJECT (merge->collate_check), "toggled",
-                         G_CALLBACK (collate_check_cb), merge);
-       g_signal_connect (G_OBJECT (merge->copies_spin), "changed",
-                         G_CALLBACK (spin_cb), merge);
-       g_signal_connect (G_OBJECT (merge->first_spin), "changed",
-                         G_CALLBACK (spin_cb), merge);
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Enable/Disable appropriate controls due to radio button toggle.*/
-/*--------------------------------------------------------------------------*/
-static void
-collate_check_cb (GtkToggleButton * togglebutton,
-                 gpointer user_data)
-{
-       glWdgtPrintMerge *merge = GL_WDGT_PRINT_MERGE (user_data);
-       GdkPixbuf *pixbuf;
-
-       if (gtk_toggle_button_get_active (togglebutton)) {
-
-               pixbuf =
-                 gdk_pixbuf_new_from_xpm_data ( (const char **)collate_xpm);
-
-       } else {
-
-               pixbuf =
-                 gdk_pixbuf_new_from_xpm_data ( (const char **)nocollate_xpm);
-
-       }
-       gtk_image_set_from_pixbuf (GTK_IMAGE (merge->collate_image),
-                                  pixbuf);
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  modify widget due to change of first spin button               */
-/*--------------------------------------------------------------------------*/
-static void
-spin_cb (GtkSpinButton * spinbutton,
-        gpointer user_data)
-{
-       glWdgtPrintMerge *merge = GL_WDGT_PRINT_MERGE (user_data);
-       gint first, last, n_copies;
-
-       first =
-           gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                             (merge->first_spin));
-
-       n_copies =
-           gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                             (merge->copies_spin));
-       last = first + (n_copies * merge->n_records) - 1;
-       gl_wdgt_mini_preview_highlight_range (GL_WDGT_MINI_PREVIEW(merge->mini_preview),
-                                        first, last );
-
-       gtk_widget_set_sensitive (merge->collate_check, (n_copies > 1));
-       gtk_widget_set_sensitive (merge->collate_image, (n_copies > 1));
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Canvas event handler, select first and last items.             */
-/*--------------------------------------------------------------------------*/
-static void
-preview_clicked (glWdgtMiniPreview *mini_preview,
-                gint first,
-                gpointer user_data)
-{
-       glWdgtPrintMerge *merge = GL_WDGT_PRINT_MERGE (user_data);
-       gint n_copies, last;
-
-       gtk_spin_button_set_value (GTK_SPIN_BUTTON (merge->first_spin),
-                                  first);
-
-       n_copies =
-           gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                             (merge->copies_spin));
-       last = first + (n_copies * merge->n_records) - 1;
-       gl_wdgt_mini_preview_highlight_range (GL_WDGT_MINI_PREVIEW (merge->mini_preview),
-                                        first, last);
-
-}
-
-/****************************************************************************/
-/* query selected range of labels within sheet or number of sheets.         */
-/****************************************************************************/
-void
-gl_wdgt_print_merge_get_copies (glWdgtPrintMerge *merge,
-                               gint             *n_copies,
-                               gint             *first_label,
-                               gboolean         *collate_flag,
-                               gint             *n_sheets)
-{
-       *n_copies =
-           gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                             (merge->copies_spin));
-       *first_label =
-           gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                             (merge->first_spin));
-       *collate_flag =
-           gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
-                                         (merge->collate_check));
-
-       *n_sheets = ceil ( (double)(*first_label - 1 + (*n_copies * merge->n_records))/ (double)merge->labels_per_sheet );
-}
-
-/****************************************************************************/
-/* set range of labels within sheet or number of sheets                     */
-/****************************************************************************/
-void
-gl_wdgt_print_merge_set_copies (glWdgtPrintMerge * merge,
-                               gint n_copies,
-                               gint first_label,
-                               gint n_records,
-                               gboolean collate_flag)
-{
-       gint last_label;
-
-       merge->n_records = n_records;
-
-       gtk_spin_button_set_value (GTK_SPIN_BUTTON (merge->copies_spin),
-                                  n_copies);
-       gtk_spin_button_set_value (GTK_SPIN_BUTTON (merge->first_spin),
-                                  first_label);
-       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (merge->collate_check),
-                                     collate_flag);
-
-       last_label = first_label + (n_copies * n_records) - 1;
-       gl_wdgt_mini_preview_highlight_range (GL_WDGT_MINI_PREVIEW (merge->mini_preview),
-                                        first_label, last_label );
-}
diff --git a/src/wdgt-print-merge.h b/src/wdgt-print-merge.h
deleted file mode 100644 (file)
index 9e3a24d..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  wdgt_print_merge.h:  print merge widget module header file
- *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-
-#ifndef __WDGT_PRINT_MERGE_H__
-#define __WDGT_PRINT_MERGE_H__
-
-#include "label.h"
-#include <gtk/gtkhbox.h>
-
-G_BEGIN_DECLS
-
-#define GL_TYPE_WDGT_PRINT_MERGE (gl_wdgt_print_merge_get_type ())
-#define GL_WDGT_PRINT_MERGE(obj) \
-        (GTK_CHECK_CAST((obj), GL_TYPE_WDGT_PRINT_MERGE, glWdgtPrintMerge ))
-#define GL_WDGT_PRINT_MERGE_CLASS(klass) \
-        (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_WDGT_PRINT_MERGE, glWdgtPrintMergeClass))
-#define GL_IS_WDGT_PRINT_MERGE(obj) \
-        (GTK_CHECK_TYPE ((obj), GL_TYPE_WDGT_PRINT_MERGE))
-#define GL_IS_WDGT_PRINT_MERGE_CLASS(klass) \
-        (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_WDGT_PRINT_MERGE))
-
-typedef struct _glWdgtPrintMerge      glWdgtPrintMerge;
-typedef struct _glWdgtPrintMergeClass glWdgtPrintMergeClass;
-
-struct _glWdgtPrintMerge {
-       GtkHBox   parent_widget;
-
-       gint      labels_per_sheet;
-       GtkWidget *mini_preview;
-
-       gint      n_records;
-
-       GtkWidget *copies_spin;
-       GtkWidget *first_spin;
-       GtkWidget *collate_image;
-       GtkWidget *collate_check;
-};
-
-struct _glWdgtPrintMergeClass {
-       GtkHBoxClass parent_class;
-};
-
-GType      gl_wdgt_print_merge_get_type   (void) G_GNUC_CONST;
-
-GtkWidget *gl_wdgt_print_merge_new        (glLabel          *label);
-
-void       gl_wdgt_print_merge_get_copies (glWdgtPrintMerge *merge,
-                                          gint             *n_copies,
-                                          gint             *first_label,
-                                          gboolean         *collate_flag,
-                                          gint             *n_sheets);
-
-void       gl_wdgt_print_merge_set_copies (glWdgtPrintMerge *merge,
-                                          gint              n_copies,
-                                          gint              first_label,
-                                          gint              n_records,
-                                          gboolean          collate_flag);
-
-G_END_DECLS
-
-#endif
diff --git a/src/wdgt-rotate-label.c b/src/wdgt-rotate-label.c
deleted file mode 100644 (file)
index 4edca60..0000000
+++ /dev/null
@@ -1,395 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  wdgt_rotate_label.c:  label rotate selection widget module
- *
- *  Copyright (C) 2001-2006  Jim Evins <evins@snaught.com>.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-
-#include <config.h>
-
-#include "wdgt-rotate-label.h"
-
-#include <glib/gi18n.h>
-#include <glade/glade-xml.h>
-#include <gtk/gtktogglebutton.h>
-#include <gtk/gtkcheckbutton.h>
-#include <gtk/gtkdrawingarea.h>
-#include <math.h>
-
-#include "marshal.h"
-#include "color.h"
-#include <libglabels/db.h>
-#include "cairo-label-path.h"
-
-#include "debug.h"
-
-/*========================================================*/
-/* Private macros and constants.                          */
-/*========================================================*/
-#define MINI_PREVIEW_MAX_PIXELS 48
-#define MINI_PREVIEW_CANVAS_PIXELS (MINI_PREVIEW_MAX_PIXELS + 8)
-
-#define LINE_COLOR             GL_COLOR(0,0,0)
-#define FILL_COLOR             GL_COLOR(255,255,255)
-
-#define LINE_WIDTH_PIXELS    1.0
-
-#define SHADOW_X_OFFSET 3
-#define SHADOW_Y_OFFSET 3
-
-
-/*===========================================*/
-/* Private types                             */
-/*===========================================*/
-
-struct _glWdgtRotateLabelPrivate {
-
-        GtkWidget    *rotate_check;
-        GtkWidget    *rotate_drawingarea;
-
-       lglTemplate  *template;
-};
-
-enum {
-       CHANGED,
-       LAST_SIGNAL
-};
-
-/*===========================================*/
-/* Private globals                           */
-/*===========================================*/
-
-static gint wdgt_rotate_label_signals[LAST_SIGNAL] = { 0 };
-
-/*===========================================*/
-/* Local function prototypes                 */
-/*===========================================*/
-
-static void gl_wdgt_rotate_label_finalize      (GObject                *object);
-
-static void gl_wdgt_rotate_label_construct     (glWdgtRotateLabel      *rotate_label);
-
-static void entry_changed_cb                   (GtkToggleButton        *toggle,
-                                               gpointer                user_data);
-
-static void drawingarea_update                 (GtkDrawingArea         *drawing_area,
-                                               lglTemplate            *template,
-                                               gboolean                rotate_flag);
-
-static gboolean expose_cb                      (GtkWidget              *drawingarea,
-                                               GdkEventExpose         *event,
-                                               gpointer                user_data);
-
-
-/****************************************************************************/
-/* Boilerplate Object stuff.                                                */
-/****************************************************************************/
-G_DEFINE_TYPE (glWdgtRotateLabel, gl_wdgt_rotate_label, GTK_TYPE_VBOX);
-
-
-static void
-gl_wdgt_rotate_label_class_init (glWdgtRotateLabelClass *class)
-{
-       GObjectClass *object_class = G_OBJECT_CLASS (class);
-
-       gl_wdgt_rotate_label_parent_class = g_type_class_peek_parent (class);
-
-       object_class->finalize = gl_wdgt_rotate_label_finalize;
-
-       wdgt_rotate_label_signals[CHANGED] =
-           g_signal_new ("changed",
-                         G_OBJECT_CLASS_TYPE(object_class),
-                         G_SIGNAL_RUN_LAST,
-                         G_STRUCT_OFFSET (glWdgtRotateLabelClass, changed),
-                         NULL, NULL,
-                         gl_marshal_VOID__VOID,
-                         G_TYPE_NONE, 0);
-
-}
-
-static void
-gl_wdgt_rotate_label_init (glWdgtRotateLabel *rotate_label)
-{
-        rotate_label->priv = g_new0 (glWdgtRotateLabelPrivate, 1);
-}
-
-static void
-gl_wdgt_rotate_label_finalize (GObject *object)
-{
-       glWdgtRotateLabel      *rotate_label = GL_WDGT_ROTATE_LABEL (object);
-
-       g_return_if_fail (object != NULL);
-       g_return_if_fail (GL_IS_WDGT_ROTATE_LABEL (object));
-
-       if (rotate_label->priv->template) {
-               lgl_template_free (rotate_label->priv->template);
-               rotate_label->priv->template = NULL;
-       }
-       g_free (rotate_label->priv);
-
-       G_OBJECT_CLASS (gl_wdgt_rotate_label_parent_class)->finalize (object);
-}
-
-GtkWidget *
-gl_wdgt_rotate_label_new (void)
-{
-       glWdgtRotateLabel *rotate_label;
-
-       rotate_label = g_object_new (gl_wdgt_rotate_label_get_type (), NULL);
-
-       gl_wdgt_rotate_label_construct (rotate_label);
-
-       return GTK_WIDGET (rotate_label);
-}
-
-/*--------------------------------------------------------------------------*/
-/* Construct composite widget.                                              */
-/*--------------------------------------------------------------------------*/
-static void
-gl_wdgt_rotate_label_construct (glWdgtRotateLabel *rotate_label)
-{
-        GladeXML  *gui;
-       GtkWidget *hbox;
-
-        g_return_if_fail (GL_IS_WDGT_ROTATE_LABEL (rotate_label));
-        g_return_if_fail (rotate_label->priv != NULL);
-
-        gui = glade_xml_new (GLABELS_GLADE_DIR "wdgt-rotate-label.glade",
-                             "rotate_hbox", NULL);
-
-        if (!gui) {
-                g_critical ("Could not open wdgt-media-select.glade. gLabels may not be installed correctly!");
-                return;
-        }
-
-        hbox = glade_xml_get_widget (gui, "rotate_hbox");
-        gtk_container_add (GTK_CONTAINER (rotate_label), hbox);
-
-        rotate_label->priv->rotate_check       = glade_xml_get_widget (gui, "rotate_check");
-        rotate_label->priv->rotate_drawingarea = glade_xml_get_widget (gui, "rotate_drawingarea");
-
-        g_object_unref (gui);
-
-
-       gtk_widget_set_size_request (rotate_label->priv->rotate_drawingarea,
-                                     MINI_PREVIEW_CANVAS_PIXELS,
-                                     MINI_PREVIEW_CANVAS_PIXELS);
-
-       /* Connect signals to controls */
-       g_signal_connect (G_OBJECT (rotate_label->priv->rotate_check),
-                         "toggled",
-                         G_CALLBACK (entry_changed_cb), rotate_label);
-       g_signal_connect (G_OBJECT (rotate_label->priv->rotate_drawingarea),
-                         "expose_event",
-                         G_CALLBACK (expose_cb), rotate_label);
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  modify widget due to change of check button                    */
-/*--------------------------------------------------------------------------*/
-static void
-entry_changed_cb (GtkToggleButton *toggle,
-                 gpointer         user_data)
-{
-       glWdgtRotateLabel *rotate_label = GL_WDGT_ROTATE_LABEL (user_data);
-
-       if (rotate_label->priv->template != NULL) {
-               /* Update mini_preview canvas & details with template */
-               drawingarea_update (GTK_DRAWING_AREA (rotate_label->priv->rotate_drawingarea),
-                                   rotate_label->priv->template,
-                                   gtk_toggle_button_get_active (toggle));
-       }
-
-       /* Emit our "changed" signal */
-       g_signal_emit (G_OBJECT (user_data),
-                      wdgt_rotate_label_signals[CHANGED], 0);
-
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Update mini-preview from template           .                  */
-/*--------------------------------------------------------------------------*/
-static void
-drawingarea_update (GtkDrawingArea *drawing_area,
-                   lglTemplate    *template,
-                   gboolean        rotate_flag)
-{
-       const lglTemplateFrame    *frame;
-       gdouble                    m, m_canvas, w, h, scale;
-       GtkStyle                  *style;
-       guint                      line_color, fill_color, shadow_color;
-       cairo_t                   *cr;
-
-       if (!GTK_WIDGET_DRAWABLE (GTK_WIDGET (drawing_area)))
-       {
-               return;
-       }
-
-        /* Clear surface */
-       gdk_window_clear (GTK_WIDGET (drawing_area)->window);
-
-       if (template == NULL)
-       {
-               return;
-       }
-
-        frame = (lglTemplateFrame *)template->frames->data;
-
-        if (rotate_flag)
-        {
-                lgl_template_frame_get_size (frame, &h, &w);
-        }
-        else
-        {
-                lgl_template_frame_get_size (frame, &w, &h);
-        }
-       m = MAX (w, h);
-       scale = MINI_PREVIEW_MAX_PIXELS / m;
-       m_canvas = MINI_PREVIEW_CANVAS_PIXELS / scale;
-
-        style = gtk_widget_get_style (GTK_WIDGET (drawing_area));
-
-       /* Adjust sensitivity (should the canvas be grayed?) */
-       if (w != h) {
-               line_color = LINE_COLOR;
-               fill_color = FILL_COLOR;
-       } else {
-               line_color = gl_color_from_gdk_color (&style->text[GTK_STATE_INSENSITIVE]);
-               fill_color = gl_color_from_gdk_color (&style->base[GTK_STATE_INSENSITIVE]);
-       }
-
-       shadow_color = gl_color_from_gdk_color (&style->bg[GTK_STATE_ACTIVE]);
-
-
-       cr = gdk_cairo_create (GTK_WIDGET (drawing_area)->window);
-  
-       cairo_identity_matrix (cr);
-       cairo_translate (cr, MINI_PREVIEW_CANVAS_PIXELS/2, MINI_PREVIEW_CANVAS_PIXELS/2);
-        cairo_scale (cr, scale, scale);
-        cairo_translate (cr, -w/2.0, -h/2.0);
-
-        /*
-         * Shadow
-         */
-        cairo_save (cr);
-        cairo_translate (cr, SHADOW_X_OFFSET/scale, SHADOW_Y_OFFSET/scale);
-        gl_cairo_label_path (cr, template, rotate_flag, FALSE);
-
-       cairo_set_source_rgb (cr, GL_COLOR_RGB_ARGS (shadow_color));
-        cairo_set_fill_rule (cr, CAIRO_FILL_RULE_EVEN_ODD);
-       cairo_fill (cr);
-        cairo_restore (cr);
-
-        /*
-         * Label + outline
-         */
-        gl_cairo_label_path (cr, template, rotate_flag, FALSE);
-
-       cairo_set_source_rgb (cr, GL_COLOR_RGB_ARGS (fill_color));
-        cairo_set_fill_rule (cr, CAIRO_FILL_RULE_EVEN_ODD);
-       cairo_fill_preserve (cr);
-
-       cairo_set_line_width (cr, LINE_WIDTH_PIXELS/scale);
-       cairo_set_source_rgb (cr, GL_COLOR_RGB_ARGS (line_color));
-       cairo_stroke (cr);
-
-
-       cairo_destroy (cr);
-
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Expose handler.                                                */
-/*--------------------------------------------------------------------------*/
-static gboolean
-expose_cb (GtkWidget *drawingarea, GdkEventExpose *event, gpointer user_data)
-{
-       glWdgtRotateLabel *rotate_label = GL_WDGT_ROTATE_LABEL (user_data);
-
-       drawingarea_update (GTK_DRAWING_AREA (drawingarea),
-                           rotate_label->priv->template,
-                           gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rotate_label->priv->rotate_check)));
-
-       return FALSE;
-}
-
-/****************************************************************************/
-/* query state of widget.                                                   */
-/****************************************************************************/
-gboolean
-gl_wdgt_rotate_label_get_state (glWdgtRotateLabel *rotate_label)
-{
-       return
-           gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
-                                         (rotate_label->priv->rotate_check));
-}
-
-/****************************************************************************/
-/* set state of widget.                                                     */
-/****************************************************************************/
-void
-gl_wdgt_rotate_label_set_state (glWdgtRotateLabel *rotate_label,
-                               gboolean state)
-{
-       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
-                                     (rotate_label->priv->rotate_check), state);
-}
-
-/****************************************************************************/
-/* set template for widget.                                                 */
-/****************************************************************************/
-void
-gl_wdgt_rotate_label_set_template_name (glWdgtRotateLabel *rotate_label,
-                                       gchar             *name)
-{
-       lglTemplate               *template;
-       const lglTemplateFrame    *frame;
-       gdouble                    raw_w, raw_h;
-
-       if (name == NULL)
-       {
-               rotate_label->priv->template = NULL;
-
-               gtk_widget_set_sensitive (rotate_label->priv->rotate_check,
-                                         FALSE);
-
-               drawingarea_update (GTK_DRAWING_AREA (rotate_label->priv->rotate_drawingarea),
-                                   NULL,
-                                   FALSE);
-       }
-       else
-       {
-               template = lgl_db_lookup_template_from_name (name);
-                frame = (lglTemplateFrame *)template->frames->data;
-
-               rotate_label->priv->template = template;
-               lgl_template_frame_get_size (frame, &raw_w, &raw_h);
-
-               gtk_widget_set_sensitive (rotate_label->priv->rotate_check,
-                                         (raw_w != raw_h));
-
-               drawingarea_update (GTK_DRAWING_AREA (rotate_label->priv->rotate_drawingarea),
-                                   rotate_label->priv->template,
-                                   FALSE);
-       }
-       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
-                                     (rotate_label->priv->rotate_check), FALSE);
-}
-
diff --git a/src/wdgt-rotate-label.h b/src/wdgt-rotate-label.h
deleted file mode 100644 (file)
index 3d8b412..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  wdgt_rotate_label.h:  label rotate selection widget module header file
- *
- *  Copyright (C) 2001-2006  Jim Evins <evins@snaught.com>.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-
-#ifndef __WDGT_ROTATE_LABEL_H__
-#define __WDGT_ROTATE_LABEL_H__
-
-#include <gtk/gtkvbox.h>
-
-G_BEGIN_DECLS
-
-#define GL_TYPE_WDGT_ROTATE_LABEL (gl_wdgt_rotate_label_get_type ())
-#define GL_WDGT_ROTATE_LABEL(obj) \
-        (GTK_CHECK_CAST((obj), GL_TYPE_WDGT_ROTATE_LABEL, glWdgtRotateLabel ))
-#define GL_WDGT_ROTATE_LABEL_CLASS(klass) \
-        (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_WDGT_ROTATE_LABEL, glWdgtRotateLabelClass))
-#define GL_IS_WDGT_ROTATE_LABEL(obj) \
-        (GTK_CHECK_TYPE ((obj), GL_TYPE_WDGT_ROTATE_LABEL))
-#define GL_IS_WDGT_ROTATE_LABEL_CLASS(klass) \
-        (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_WDGT_ROTATE_LABEL))
-
-typedef struct _glWdgtRotateLabel         glWdgtRotateLabel;
-typedef struct _glWdgtRotateLabelClass    glWdgtRotateLabelClass;
-
-typedef struct _glWdgtRotateLabelPrivate  glWdgtRotateLabelPrivate;
-
-struct _glWdgtRotateLabel {
-       GtkVBox                    parent_widget;
-
-       glWdgtRotateLabelPrivate  *priv;
-};
-
-struct _glWdgtRotateLabelClass {
-       GtkVBoxClass parent_class;
-
-       void (*changed) (glWdgtRotateLabel  *wdgt_rotate_label,
-                        gpointer            user_data);
-};
-
-GType      gl_wdgt_rotate_label_get_type          (void) G_GNUC_CONST;
-
-GtkWidget *gl_wdgt_rotate_label_new               (void);
-
-gboolean   gl_wdgt_rotate_label_get_state         (glWdgtRotateLabel *rotate_label);
-
-void       gl_wdgt_rotate_label_set_state         (glWdgtRotateLabel *rotate_label,
-                                                  gboolean           state);
-
-void       gl_wdgt_rotate_label_set_template_name (glWdgtRotateLabel *rotate_label,
-                                                  gchar             *name);
-
-G_END_DECLS
-
-#endif
index 33e3b7e71c6ea20fb04684375ef0e81f32c335b4..f2883dc04b7fc6ebe20b70874122dfd139a99e20 100644 (file)
@@ -1,25 +1,21 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  window.c:  a gLabels app window
+ *  window.c
+ *  Copyright (C) 2002-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 #include "window.h"
 
 #include <glib/gi18n.h>
-#include <gtk/gtkvbox.h>
-#include <gtk/gtkhbox.h>
-#include <gtk/gtklabel.h>
-#include <gtk/gtkframe.h>
-#include <gtk/gtkstatusbar.h>
+#include <gtk/gtk.h>
 
 #include "ui.h"
 #include "ui-commands.h"
-#include "util.h"
+#include "file-util.h"
 #include "xml-label.h"
 #include "prefs.h"
 #include "file.h"
+#include "units-util.h"
 
 #include "debug.h"
 
+
 /*===========================================================================*/
 /* Private macros and constants.                                             */
 /*===========================================================================*/
@@ -50,7 +44,8 @@
 #define DEFAULT_WINDOW_HEIGHT 600
 
 #define CURSOR_INFO_WIDTH     150
-#define ZOOM_INFO_WIDTH        50
+#define ZOOM_INFO_WIDTH        75
+
 
 /*===========================================================================*/
 /* Private globals                                                           */
@@ -64,7 +59,7 @@ static GList *window_list = NULL;
 /*===========================================================================*/
 
 static void     gl_window_finalize     (GObject       *object);
-static void     gl_window_destroy      (GtkObject     *gtk_object);
+static void     gl_window_dispose      (GObject       *object);
 
 static void     set_window_title       (glWindow *window,
                                        glLabel  *label);
@@ -73,7 +68,7 @@ static gboolean window_delete_event_cb (glWindow      *window,
                                        GdkEvent      *event,
                                        gpointer       user_data);
 
-static void     selection_changed_cb   (glView        *view,
+static void     selection_changed_cb   (glLabel       *label,
                                        glWindow      *window);
 
 static void   context_menu_activate_cb (glView       *view,
@@ -99,30 +94,43 @@ static void     name_changed_cb        (glLabel       *label,
 static void     modified_changed_cb    (glLabel       *label,
                                        glWindow      *window);
 
-\f
+static void     clipboard_changed_cb   (GtkClipboard  *clipboard,
+                                        GdkEvent      *event,
+                                       glWindow      *window);
+
+static void     focus_widget_changed_cb(GtkWindow     *gtk_window,
+                                        GtkWidget     *widget,
+                                       glWindow      *window);
+
+static void     set_copy_paste_sensitivity  (glWindow      *window,
+                                             GtkWidget     *focus_widget);
+
+static void     label_changed_cb       (glLabel       *label,
+                                       glWindow      *window);
+
+
 /****************************************************************************/
 /* Boilerplate Object stuff.                                                */
 /****************************************************************************/
-G_DEFINE_TYPE (glWindow, gl_window, GTK_TYPE_WINDOW);
+G_DEFINE_TYPE (glWindow, gl_window, GTK_TYPE_WINDOW)
 
 
 static void
 gl_window_class_init (glWindowClass *class)
 {
        GObjectClass   *object_class     = G_OBJECT_CLASS (class);
-       GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS (class);
 
        gl_debug (DEBUG_WINDOW, "START");
 
        gl_window_parent_class = g_type_class_peek_parent (class);
 
        object_class->finalize = gl_window_finalize;
-
-       gtk_object_class->destroy = gl_window_destroy;
+       object_class->dispose  = gl_window_dispose;
 
        gl_debug (DEBUG_WINDOW, "END");
 }
 
+
 static void
 gl_window_init (glWindow *window)
 {
@@ -159,7 +167,6 @@ gl_window_init (glWindow *window)
        gtk_box_pack_start (GTK_BOX (vbox1), status_hbox, FALSE, FALSE, 0);
 
        window->status_bar = gtk_statusbar_new ();
-       gtk_statusbar_set_has_resize_grip (GTK_STATUSBAR (window->status_bar), FALSE);
        gtk_box_pack_start (GTK_BOX (status_hbox),
                            window->status_bar,
                            TRUE, TRUE, 0);
@@ -206,6 +213,7 @@ gl_window_init (glWindow *window)
        gl_debug (DEBUG_WINDOW, "END");
 }
 
+
 static void
 gl_window_finalize (GObject *object)
 {
@@ -219,17 +227,19 @@ gl_window_finalize (GObject *object)
        gl_debug (DEBUG_WINDOW, "END");
 }
 
+
 static void
-gl_window_destroy (GtkObject *gtk_object)
+gl_window_dispose (GObject *object)
 {
-       glWindow *window;
+       glWindow          *window;
+        GtkClipboard      *clipboard;
 
        gl_debug (DEBUG_WINDOW, "START");
 
-       g_return_if_fail (gtk_object != NULL);
-       g_return_if_fail (GL_IS_WINDOW (gtk_object));
+       g_return_if_fail (object != NULL);
+       g_return_if_fail (GL_IS_WINDOW (object));
 
-       window = GL_WINDOW (gtk_object);
+       window = GL_WINDOW (object);
        window_list = g_list_remove (window_list, window);
 
         if (window->ui) {
@@ -237,8 +247,20 @@ gl_window_destroy (GtkObject *gtk_object)
                window->ui = NULL;
         }
 
-       if (GTK_OBJECT_CLASS (gl_window_parent_class)->destroy) {
-               GTK_OBJECT_CLASS (gl_window_parent_class)->destroy (gtk_object);
+        if (window->label)
+        {
+                clipboard = gtk_widget_get_clipboard (GTK_WIDGET (window),
+                                                      GDK_SELECTION_CLIPBOARD);
+
+                g_signal_handlers_disconnect_by_func (G_OBJECT (clipboard),
+                                                      G_CALLBACK (clipboard_changed_cb),
+                                                      window);
+
+               g_object_unref (window->label);
+        }
+
+       if (G_OBJECT_CLASS (gl_window_parent_class)->dispose) {
+               G_OBJECT_CLASS (gl_window_parent_class)->dispose (object);
        }
 
        gl_debug (DEBUG_WINDOW, "END");
@@ -267,6 +289,7 @@ gl_window_new (void)
        return GTK_WIDGET(window);
 }
 
+
 /****************************************************************************/
 /** Create a glabels window from a label.                                   */
 /****************************************************************************/
@@ -286,6 +309,7 @@ gl_window_new_from_label (glLabel *label)
        return GTK_WIDGET(window);
 }
 
+
 /****************************************************************************/
 /** Create a glabels window from a glabels file.                            */
 /****************************************************************************/
@@ -301,7 +325,7 @@ gl_window_new_from_file (const gchar *filename)
 
        window = GL_WINDOW (gl_window_new ());
 
-       abs_filename = gl_util_make_absolute (filename);
+       abs_filename = gl_file_util_make_absolute (filename);
        label = gl_xml_label_open (abs_filename, &status);
        g_free (abs_filename);
 
@@ -312,6 +336,7 @@ gl_window_new_from_file (const gchar *filename)
        return GTK_WIDGET(window);
 }
 
+
 /****************************************************************************/
 /** Is window empty?                                                        */
 /****************************************************************************/
@@ -324,6 +349,7 @@ gl_window_is_empty (glWindow    *window)
        return ( window->view == NULL );
 }
 
+
 /****************************************************************************/
 /** Create view from label and place in window.                             */
 /****************************************************************************/
@@ -331,13 +357,17 @@ void
 gl_window_set_label (glWindow    *window,
                     glLabel     *label)
 {
-       gchar *string;
+       gchar             *string;
+        GtkClipboard      *clipboard;
+        GtkWidget         *focus_widget;
 
        gl_debug (DEBUG_WINDOW, "START");
 
        g_return_if_fail (GL_IS_WINDOW (window));
        g_return_if_fail (GL_IS_LABEL (label));
 
+        window->label = g_object_ref (label);
+
        gl_label_clear_modified (label);
 
        set_window_title (window, label);
@@ -348,19 +378,19 @@ gl_window_set_label (glWindow    *window,
        }
 
        window->view = gl_view_new (label);
-       gtk_box_pack_start (GTK_BOX (window->hbox), window->view,TRUE, TRUE, 0);
+       gtk_box_pack_start (GTK_BOX (window->hbox), window->view, TRUE, TRUE, 0);
 
        gtk_widget_show_all (window->view);
 
        gl_view_zoom_to_fit (GL_VIEW(window->view));
 
-       if (gl_prefs->grid_visible) {
+       if (gl_prefs_model_get_grid_visible (gl_prefs)) {
                gl_view_show_grid (GL_VIEW(window->view));
        } else {
                gl_view_hide_grid (GL_VIEW(window->view));
        }
 
-       if (gl_prefs->markup_visible) {
+       if (gl_prefs_model_get_markup_visible (gl_prefs)) {
                gl_view_show_markup (GL_VIEW(window->view));
        } else {
                gl_view_hide_markup (GL_VIEW(window->view));
@@ -368,15 +398,20 @@ gl_window_set_label (glWindow    *window,
 
        gl_ui_update_all (window->ui, GL_VIEW(window->view));
 
-       gl_ui_property_bar_set_view (window->property_bar, GL_VIEW(window->view));
-       gl_ui_sidebar_set_view (window->sidebar, GL_VIEW(window->view));
+       gl_ui_property_bar_set_label (window->property_bar, window->label);
+       gl_ui_sidebar_set_label (window->sidebar, window->label);
 
        string = g_strdup_printf ("%3.0f%%",
                                  100.0*gl_view_get_zoom (GL_VIEW(window->view)));
        gtk_label_set_text (GTK_LABEL(window->zoom_info), string);
        g_free (string);
 
-       g_signal_connect (G_OBJECT(window->view), "selection_changed",
+
+        clipboard = gtk_widget_get_clipboard (GTK_WIDGET (window),
+                                              GDK_SELECTION_CLIPBOARD);
+
+
+       g_signal_connect (G_OBJECT(window->label), "selection_changed",
                          G_CALLBACK(selection_changed_cb), window);
 
        g_signal_connect (G_OBJECT(window->view), "context_menu_activate",
@@ -397,9 +432,23 @@ gl_window_set_label (glWindow    *window,
        g_signal_connect (G_OBJECT(label), "modified_changed",
                          G_CALLBACK(modified_changed_cb), window);
 
+       g_signal_connect (G_OBJECT(clipboard), "owner_change",
+                         G_CALLBACK(clipboard_changed_cb), window);
+
+       g_signal_connect (G_OBJECT(window), "set_focus",
+                         G_CALLBACK(focus_widget_changed_cb), window);
+
+        /* Initialize "Paste" sensitivity. */
+        focus_widget = gtk_window_get_focus (GTK_WINDOW (window));
+        set_copy_paste_sensitivity (window, focus_widget);
+
+       g_signal_connect (G_OBJECT(label), "changed",
+                         G_CALLBACK(label_changed_cb), window);
+
        gl_debug (DEBUG_WINDOW, "END");
 }
 
+
 /****************************************************************************/
 /** Return list of glabels windows.                                         */
 /****************************************************************************/
@@ -410,6 +459,7 @@ gl_window_get_window_list (void)
        return window_list;
 }
 
+
 /*---------------------------------------------------------------------------*/
 /** PRIVATE.  Set window title based on name and state of label.             */
 /*---------------------------------------------------------------------------*/
@@ -442,6 +492,7 @@ set_window_title (glWindow *window,
        gl_debug (DEBUG_WINDOW, "END");
 }
 
+
 /*-------------------------------------------------------------------------*/
 /** PRIVATE.  Window "delete-event" callback.                              */
 /*-------------------------------------------------------------------------*/
@@ -461,23 +512,25 @@ window_delete_event_cb (glWindow      *window,
        return TRUE;
 }
 
+
 /*---------------------------------------------------------------------------*/
 /** PRIVATE.  View "selection state changed" callback.                       */
 /*---------------------------------------------------------------------------*/
 static void 
-selection_changed_cb (glView   *view,
+selection_changed_cb (glLabel  *label,
                      glWindow *window)
 {
        gl_debug (DEBUG_WINDOW, "START");
 
-       g_return_if_fail (view && GL_IS_VIEW (view));
+       g_return_if_fail (label && GL_IS_LABEL (label));
        g_return_if_fail (window && GL_IS_WINDOW (window));
 
-       gl_ui_update_selection_verbs (window->ui, view);
+        gl_ui_update_selection_verbs (window->ui, GL_VIEW (window->view), TRUE);
 
        gl_debug (DEBUG_WINDOW, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /** PRIVATE.  View "context menu activate" callback.                         */
 /*---------------------------------------------------------------------------*/
@@ -492,7 +545,7 @@ context_menu_activate_cb (glView       *view,
         g_return_if_fail (view && GL_IS_VIEW (view));
        g_return_if_fail (window && GL_IS_WINDOW (window));
 
-        if (gl_view_is_selection_empty (view)) {
+        if (gl_label_is_selection_empty (view->label)) {
 
                gtk_menu_popup (GTK_MENU (window->empty_selection_context_menu),
                                NULL, NULL, NULL, NULL, button, activate_time);
@@ -507,6 +560,7 @@ context_menu_activate_cb (glView       *view,
         gl_debug (DEBUG_WINDOW, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /** PRIVATE.  View "zoom state changed" callback.                            */
 /*---------------------------------------------------------------------------*/
@@ -531,6 +585,7 @@ zoom_changed_cb (glView   *view,
        gl_debug (DEBUG_WINDOW, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /** PRIVATE.  View "pointer moved" callback.                                 */
 /*---------------------------------------------------------------------------*/
@@ -540,17 +595,19 @@ pointer_moved_cb (glView   *view,
                  gdouble   y,
                  glWindow *window)
 {
-       gchar *string;
-       gdouble units_per_point;
-       gint    units_precision;
+       gchar    *string;
+        lglUnits  units;
+       gdouble   units_per_point;
+       gint      units_precision;
 
        gl_debug (DEBUG_WINDOW, "START");
 
        g_return_if_fail (view && GL_IS_VIEW (view));
        g_return_if_fail (window && GL_IS_WINDOW (window));
 
-       units_per_point = gl_prefs_get_units_per_point ();
-       units_precision = gl_prefs_get_units_precision ();
+        units = gl_prefs_model_get_units (gl_prefs);
+       units_per_point = lgl_units_get_units_per_point (units);
+       units_precision = gl_units_util_get_precision (units);
 
        string = g_strdup_printf ("%.*f, %.*f",
                                  units_precision, x*units_per_point,
@@ -561,6 +618,7 @@ pointer_moved_cb (glView   *view,
        gl_debug (DEBUG_WINDOW, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /** PRIVATE.  View "pointer exit" callback.                                  */
 /*---------------------------------------------------------------------------*/
@@ -578,6 +636,7 @@ pointer_exit_cb (glView   *view,
        gl_debug (DEBUG_WINDOW, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /** PRIVATE.  Label "name changed" callback.                                 */
 /*---------------------------------------------------------------------------*/
@@ -595,6 +654,7 @@ name_changed_cb (glLabel  *label,
        gl_debug (DEBUG_WINDOW, "END");
 }
 
+
 /*---------------------------------------------------------------------------*/
 /** PRIVATE.  Label "modified state changed" callback.                       */
 /*---------------------------------------------------------------------------*/
@@ -614,3 +674,104 @@ modified_changed_cb (glLabel  *label,
        gl_debug (DEBUG_WINDOW, "END");
 }
 
+
+/*---------------------------------------------------------------------------*/
+/** PRIVATE.  Label "changed" callback.                                      */
+/*---------------------------------------------------------------------------*/
+static void
+label_changed_cb (glLabel  *label,
+                  glWindow *window)
+{
+       gl_debug (DEBUG_WINDOW, "START");
+
+       g_return_if_fail (label && GL_IS_LABEL (label));
+       g_return_if_fail (window && GL_IS_WINDOW (window));
+
+       gl_ui_update_undo_redo_verbs (window->ui, label);
+
+       gl_debug (DEBUG_WINDOW, "END");
+}
+
+
+
+/*---------------------------------------------------------------------------*/
+/** PRIVATE.  Clipboard "owner change" callback.                             */
+/*---------------------------------------------------------------------------*/
+static void
+clipboard_changed_cb (GtkClipboard *clipboard,
+                      GdkEvent     *event,
+                      glWindow     *window)
+{
+        GtkWidget    *focus_widget;
+
+       gl_debug (DEBUG_WINDOW, "START");
+
+       g_return_if_fail (window && GL_IS_WINDOW (window));
+
+        focus_widget = gtk_window_get_focus (GTK_WINDOW (window));
+        set_copy_paste_sensitivity (window, focus_widget);
+
+       gl_debug (DEBUG_WINDOW, "END");
+}
+
+
+/*---------------------------------------------------------------------------*/
+/** PRIVATE.  Window "set-focus" callback.                                   */
+/*---------------------------------------------------------------------------*/
+static void
+focus_widget_changed_cb (GtkWindow *gtk_window,
+                         GtkWidget *widget,
+                         glWindow  *window)
+{
+       gl_debug (DEBUG_WINDOW, "START");
+
+       g_return_if_fail (window && GL_IS_WINDOW (window));
+
+        if (widget)
+        {
+                gl_debug (DEBUG_WINDOW, "SET-FOCUS %x %s\n",
+                          widget,
+                          G_OBJECT_TYPE_NAME (widget));
+
+                set_copy_paste_sensitivity (window, widget);
+        }
+
+       gl_debug (DEBUG_WINDOW, "END");
+}
+
+
+/*---------------------------------------------------------------------------*/
+/** PRIVATE.  Set paste sensitivity.                                         */
+/*---------------------------------------------------------------------------*/
+static void
+set_copy_paste_sensitivity (glWindow  *window,
+                            GtkWidget *focus_widget)
+{
+       gl_debug (DEBUG_WINDOW, "START");
+
+       g_return_if_fail (window && GL_IS_WINDOW (window));
+
+        if ( focus_widget == GL_VIEW(window->view)->canvas )
+        {
+                gl_ui_update_selection_verbs (window->ui, GL_VIEW (window->view), TRUE);
+
+                gl_ui_update_paste_verbs (window->ui, gl_label_can_paste (window->label));
+        }
+        else
+        {
+                gl_ui_update_selection_verbs (window->ui, GL_VIEW (window->view), FALSE);
+                gl_ui_update_paste_verbs (window->ui, FALSE);
+        }
+
+       gl_debug (DEBUG_WINDOW, "END");
+}
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index e5a63ab1e368dc926021b32028ec2f676f408d3e..5c030f46b3c71c9b98fcc7b5b36c44c921b077a2 100644 (file)
@@ -1,33 +1,27 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  window.h:  a gLabels app window
+ *  window.h
+ *  Copyright (C) 2002-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __WINDOW_H__
 #define __WINDOW_H__
 
-#include <gtk/gtkwindow.h>
-#include <gtk/gtkuimanager.h>
-#include <gtk/gtkmenu.h>
+#include <gtk/gtk.h>
 
 #include "view.h"
 #include "label.h"
@@ -40,13 +34,13 @@ G_BEGIN_DECLS
 
 #define GL_TYPE_WINDOW (gl_window_get_type ())
 #define GL_WINDOW(obj) \
-        (GTK_CHECK_CAST((obj), GL_TYPE_WINDOW, glWindow ))
+        (G_TYPE_CHECK_INSTANCE_CAST((obj), GL_TYPE_WINDOW, glWindow ))
 #define GL_WINDOW_CLASS(klass) \
-        (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_WINDOW, glWindowClass))
+        (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_WINDOW, glWindowClass))
 #define GL_IS_WINDOW(obj) \
-        (GTK_CHECK_TYPE ((obj), GL_TYPE_WINDOW))
+        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_WINDOW))
 #define GL_IS_WINDOW_CLASS(klass) \
-        (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_WINDOW))
+        (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_WINDOW))
 
 typedef struct _glWindow      glWindow;
 typedef struct _glWindowClass glWindowClass;
@@ -56,10 +50,11 @@ struct _glWindow {
 
        GtkUIManager            *ui;
 
-       GtkWidget               *view;
-
        GtkWidget               *hbox;
 
+       glLabel                 *label;
+
+       GtkWidget               *view;
        glUIPropertyBar         *property_bar;
        glUISidebar             *sidebar;
 
@@ -99,3 +94,14 @@ const GList *gl_window_get_window_list   (void);
 G_END_DECLS
 
 #endif /* __WINDOW_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 89a94b6b40264b747e1889f63f145048d8e75df6..6f907b2c725c9f5c78550f0ca846f0b961b571c8 100644 (file)
@@ -1,25 +1,21 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  xml-label-04.c:  GLabels xml label compat module
+ *  xml-label-04.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 
 #include <glib/gi18n.h>
 
+#include <libglabels.h>
 #include "label-text.h"
 #include "label-box.h"
 #include "label-line.h"
 #include "label-ellipse.h"
 #include "label-image.h"
 #include "label-barcode.h"
-#include <libglabels/db.h>
-#include <libglabels/xml.h>
+#include "bc-backends.h"
+#include "str-util.h"
 
-#include "util.h"
 #include "debug.h"
 
+
 static gboolean xml04_parse_media_description (xmlNodePtr node,
                                               glLabel *label);
 static void     xml04_parse_object            (xmlNodePtr node,
@@ -59,7 +56,7 @@ static void     xml04_parse_barcode_props     (xmlNodePtr node,
 static void     xml04_parse_merge_properties  (xmlNodePtr node,
                                               glLabel *label);
 
-\f
+
 /****************************************************************************/
 /* PRIVATE.  Parse xml doc structure and create label.                      */
 /****************************************************************************/
@@ -76,7 +73,7 @@ glLabel      *gl_xml_label_04_parse      (xmlNodePtr       root,
        *status = XML_LABEL_OK;
 
        if (!xmlStrEqual (root->name, (xmlChar *)"Label")) {
-               g_message (_("Bad root node = \"%s\""), root->name);
+               g_message ("Bad root node = \"%s\"", root->name);
                *status = XML_LABEL_ERROR_OPEN_PARSE;
                return NULL;
        }
@@ -84,7 +81,7 @@ glLabel      *gl_xml_label_04_parse      (xmlNodePtr       root,
        label = GL_LABEL (gl_label_new ());
 
        rotate_flag = lgl_xml_get_prop_boolean (root, "rotate", FALSE);
-       gl_label_set_rotate_flag (label, rotate_flag);
+       gl_label_set_rotate_flag (label, rotate_flag, FALSE);
 
        for (node = root->xmlChildrenNode; node != NULL; node = node->next) {
 
@@ -96,35 +93,35 @@ glLabel      *gl_xml_label_04_parse      (xmlNodePtr       root,
                                        *status = XML_LABEL_UNKNOWN_MEDIA;
                                }
                        } else if (xmlStrEqual (node->name, (xmlChar *)"Text")) {
-                               object = gl_label_text_new (label);
+                               object = gl_label_text_new (label, FALSE);
                                xml04_parse_object (node, GL_LABEL_OBJECT(object));
                                xml04_parse_text_props (node, GL_LABEL_TEXT(object));
                        } else if (xmlStrEqual (node->name, (xmlChar *)"Box")) {
-                               object = gl_label_box_new (label);
+                               object = gl_label_box_new (label, FALSE);
                                xml04_parse_object (node, GL_LABEL_OBJECT(object));
                                xml04_parse_box_props (node, GL_LABEL_BOX(object));
                        } else if (xmlStrEqual (node->name, (xmlChar *)"Line")) {
-                               object = gl_label_line_new (label);
+                               object = gl_label_line_new (label, FALSE);
                                xml04_parse_object (node, GL_LABEL_OBJECT(object));
                                xml04_parse_line_props (node, GL_LABEL_LINE(object));
                        } else if (xmlStrEqual (node->name, (xmlChar *)"Ellipse")) {
-                               object = gl_label_ellipse_new (label);
+                               object = gl_label_ellipse_new (label, FALSE);
                                xml04_parse_object (node, GL_LABEL_OBJECT(object));
                                xml04_parse_ellipse_props (node,
                                                           GL_LABEL_ELLIPSE(object));
                        } else if (xmlStrEqual (node->name, (xmlChar *)"Image")) {
-                               object = gl_label_image_new (label);
+                               object = gl_label_image_new (label, FALSE);
                                xml04_parse_object (node, GL_LABEL_OBJECT(object));
                                xml04_parse_image_props (node, GL_LABEL_IMAGE(object));
                        } else if (xmlStrEqual (node->name, (xmlChar *)"Barcode")) {
-                               object = gl_label_barcode_new (label);
+                               object = gl_label_barcode_new (label, FALSE);
                                xml04_parse_object (node, GL_LABEL_OBJECT(object));
                                xml04_parse_barcode_props (node,
                                                           GL_LABEL_BARCODE(object));
                        } else if (xmlStrEqual (node->name, (xmlChar *)"Merge_Properties")) {
                                xml04_parse_merge_properties (node, label);
                        } else {
-                               g_message (_("bad node =  \"%s\""), node->name);
+                               g_message ("bad node =  \"%s\"", node->name);
                        }
                }
        }
@@ -134,6 +131,7 @@ glLabel      *gl_xml_label_04_parse      (xmlNodePtr       root,
        return label;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Parse Media Description node.                                  */
 /*--------------------------------------------------------------------------*/
@@ -159,7 +157,7 @@ xml04_parse_media_description (xmlNodePtr node,
                ret = TRUE;
        }
 
-       gl_label_set_template (label, template);
+       gl_label_set_template (label, template, FALSE);
 
        lgl_template_free (template);
        xmlFree (template_name);
@@ -169,6 +167,7 @@ xml04_parse_media_description (xmlNodePtr node,
        return ret;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Parse XML Object Node                                          */
 /*--------------------------------------------------------------------------*/
@@ -183,11 +182,12 @@ xml04_parse_object (xmlNodePtr    object_node,
        x = lgl_xml_get_prop_double (object_node, "x", 0);
        y = lgl_xml_get_prop_double (object_node, "y", 0);
 
-       gl_label_object_set_position (object, x, y);
+       gl_label_object_set_position (object, x, y, FALSE);
 
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Parse XML Label->Text Node Properties                          */
 /*--------------------------------------------------------------------------*/
@@ -212,23 +212,23 @@ xml04_parse_text_props (xmlNodePtr    object_node,
        font_family = xmlGetProp (object_node, (xmlChar *)"font_family");
        font_size = lgl_xml_get_prop_double (object_node, "font_size", 0);
        string = xmlGetProp (object_node, (xmlChar *)"font_weight");
-       font_weight = gl_util_string_to_weight ((gchar *)string);
+       font_weight = gl_str_util_string_to_weight ((gchar *)string);
        xmlFree (string);
        font_italic_flag = lgl_xml_get_prop_boolean (object_node, "font_italic", FALSE);
 
        string = xmlGetProp (object_node, (xmlChar *)"justify");
-       align = gl_util_string_to_align ((gchar *)string);
+       align = gl_str_util_string_to_align ((gchar *)string);
        xmlFree (string);
 
        color_node = gl_color_node_new_default ();
        color_node->color = lgl_xml_get_prop_uint (object_node, "color", 0);
 
-       gl_label_object_set_font_family (GL_LABEL_OBJECT(object), (gchar *)font_family);
-       gl_label_object_set_font_size (GL_LABEL_OBJECT(object), font_size);
-       gl_label_object_set_font_weight (GL_LABEL_OBJECT(object), font_weight);
-       gl_label_object_set_font_italic_flag (GL_LABEL_OBJECT(object), font_italic_flag);
-       gl_label_object_set_text_color (GL_LABEL_OBJECT(object), color_node);
-       gl_label_object_set_text_alignment (GL_LABEL_OBJECT(object), align);
+       gl_label_object_set_font_family (GL_LABEL_OBJECT(object), (gchar *)font_family, FALSE);
+       gl_label_object_set_font_size (GL_LABEL_OBJECT(object), font_size, FALSE);
+       gl_label_object_set_font_weight (GL_LABEL_OBJECT(object), font_weight, FALSE);
+       gl_label_object_set_font_italic_flag (GL_LABEL_OBJECT(object), font_italic_flag, FALSE);
+       gl_label_object_set_text_color (GL_LABEL_OBJECT(object), color_node, FALSE);
+       gl_label_object_set_text_alignment (GL_LABEL_OBJECT(object), align, FALSE);
        
        gl_color_node_free (&color_node);
 
@@ -277,7 +277,7 @@ xml04_parse_text_props (xmlNodePtr    object_node,
 
        }
 
-       gl_label_text_set_lines (object, lines);
+       gl_label_text_set_lines (object, lines, FALSE);
 
        gl_text_node_lines_free (&lines);
        xmlFree (font_family);
@@ -291,11 +291,11 @@ xml04_parse_text_props (xmlNodePtr    object_node,
                break;
        case PANGO_ALIGN_CENTER:
                x -= w/2.0;
-               gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y);
+               gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y, FALSE);
                break;
        case PANGO_ALIGN_RIGHT:
                x -= w;
-               gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y);
+               gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y, FALSE);
                break;
        default:
                /* should not happen */
@@ -305,6 +305,7 @@ xml04_parse_text_props (xmlNodePtr    object_node,
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Parse XML Label->Box Node Properties                           */
 /*--------------------------------------------------------------------------*/
@@ -329,16 +330,17 @@ xml04_parse_box_props (xmlNodePtr    node,
        fill_color_node = gl_color_node_new_default ();
        fill_color_node->color = lgl_xml_get_prop_uint (node, "fill_color", 0);
 
-       gl_label_object_set_size (GL_LABEL_OBJECT(object), w, h);
-       gl_label_object_set_line_width (GL_LABEL_OBJECT(object), line_width);
-       gl_label_object_set_line_color (GL_LABEL_OBJECT(object), line_color_node);
-       gl_label_object_set_fill_color (GL_LABEL_OBJECT(object), fill_color_node);
+       gl_label_object_set_size (GL_LABEL_OBJECT(object), w, h, FALSE);
+       gl_label_object_set_line_width (GL_LABEL_OBJECT(object), line_width, FALSE);
+       gl_label_object_set_line_color (GL_LABEL_OBJECT(object), line_color_node, FALSE);
+       gl_label_object_set_fill_color (GL_LABEL_OBJECT(object), fill_color_node, FALSE);
 
        gl_color_node_free (&line_color_node);
        gl_color_node_free (&fill_color_node);
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Parse XML Label->Line Node Properties                          */
 /*--------------------------------------------------------------------------*/
@@ -359,15 +361,16 @@ xml04_parse_line_props (xmlNodePtr    node,
        line_color_node = gl_color_node_new_default ();
        line_color_node->color = lgl_xml_get_prop_uint (node, "line_color", 0);
 
-       gl_label_object_set_size (GL_LABEL_OBJECT(object), w, h);
-       gl_label_object_set_line_width (GL_LABEL_OBJECT(object), line_width);
-       gl_label_object_set_line_color (GL_LABEL_OBJECT(object), line_color_node);
+       gl_label_object_set_size (GL_LABEL_OBJECT(object), w, h, FALSE);
+       gl_label_object_set_line_width (GL_LABEL_OBJECT(object), line_width, FALSE);
+       gl_label_object_set_line_color (GL_LABEL_OBJECT(object), line_color_node, FALSE);
 
        gl_color_node_free (&line_color_node);
        
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Parse XML Label->Ellipse Node Properties                       */
 /*--------------------------------------------------------------------------*/
@@ -392,16 +395,17 @@ xml04_parse_ellipse_props (xmlNodePtr     node,
        fill_color_node = gl_color_node_new_default ();
        fill_color_node->color = lgl_xml_get_prop_uint (node, "fill_color", 0);
 
-       gl_label_object_set_size (GL_LABEL_OBJECT(object), w, h);
-       gl_label_object_set_line_width (GL_LABEL_OBJECT(object), line_width);
-       gl_label_object_set_line_color (GL_LABEL_OBJECT(object), line_color_node);
-       gl_label_object_set_fill_color (GL_LABEL_OBJECT(object), fill_color_node);
+       gl_label_object_set_size (GL_LABEL_OBJECT(object), w, h, FALSE);
+       gl_label_object_set_line_width (GL_LABEL_OBJECT(object), line_width, FALSE);
+       gl_label_object_set_line_color (GL_LABEL_OBJECT(object), line_color_node, FALSE);
+       gl_label_object_set_fill_color (GL_LABEL_OBJECT(object), fill_color_node, FALSE);
 
        gl_color_node_free (&line_color_node);
        gl_color_node_free (&fill_color_node);
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Parse XML Label->Image Node Properties                         */
 /*--------------------------------------------------------------------------*/
@@ -417,16 +421,17 @@ xml04_parse_image_props (xmlNodePtr    node,
        filename = g_new0 (glTextNode, 1);
        filename->field_flag = FALSE;
        filename->data = (gchar *)xmlGetProp (node, (xmlChar *)"filename");
-       gl_label_image_set_filename (object, filename);
+       gl_label_image_set_filename (object, filename, FALSE);
        gl_text_node_free (&filename);
 
        w = lgl_xml_get_prop_double (node, "w", 0);
        h = lgl_xml_get_prop_double (node, "h", 0);
-       gl_label_object_set_size (GL_LABEL_OBJECT(object), w, h);
+       gl_label_object_set_size (GL_LABEL_OBJECT(object), w, h, FALSE);
 
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Parse XML Label->Barcode Node Properties                       */
 /*--------------------------------------------------------------------------*/
@@ -434,27 +439,32 @@ static void
 xml04_parse_barcode_props (xmlNodePtr    node,
                           glLabelBarcode *object)
 {
-       xmlChar       *id;
-       gboolean       text_flag;
-       glColorNode   *color_node;
-       gdouble        scale;
-       xmlNodePtr     child;
-       glTextNode    *text_node;
+       gchar               *id;
+        const gchar         *backend_id;
+        glLabelBarcodeStyle *style;
+       glColorNode         *color_node;
+       xmlNodePtr           child;
+       glTextNode          *text_node;
 
        gl_debug (DEBUG_XML, "START");
 
        color_node = gl_color_node_new_default ();
        color_node->color = lgl_xml_get_prop_uint (node, "color", 0);
 
-       id = xmlGetProp (node, (xmlChar *)"style");
+        style = gl_label_barcode_style_new ();
 
-       text_flag = lgl_xml_get_prop_boolean (node, "text", FALSE);
-       scale = lgl_xml_get_prop_double (node, "scale", 1.0);
-       if (scale == 0.0) {
-               scale = 0.5; /* Set to a valid value */
-       }
-       gl_label_barcode_set_props (object, (gchar *)id, text_flag, TRUE, 0);
-       gl_label_object_set_line_color (GL_LABEL_OBJECT(object), color_node);
+       id = lgl_xml_get_prop_string (node, "style", "POSTNET");
+        backend_id = gl_barcode_backends_guess_backend_id (id);
+        gl_label_barcode_style_set_backend_id (style, backend_id);
+        gl_label_barcode_style_set_style_id (style, id);
+
+       style->text_flag     = lgl_xml_get_prop_boolean (node, "text", FALSE);
+        style->checksum_flag = TRUE;
+        style->format_digits = 0;
+
+       gl_label_barcode_set_style (object, style, FALSE);
+
+       gl_label_object_set_line_color (GL_LABEL_OBJECT(object), color_node, FALSE);
 
        child = node->xmlChildrenNode;
        text_node = g_new0 (glTextNode, 1);
@@ -467,15 +477,17 @@ xml04_parse_barcode_props (xmlNodePtr    node,
        } else {
                g_message ("Unexpected Barcode child: \"%s\"", child->name);
        }
-       gl_label_barcode_set_data (object, text_node);
+       gl_label_barcode_set_data (object, text_node, FALSE);
 
        gl_color_node_free (&color_node);
        gl_text_node_free (&text_node);
-       xmlFree (id);
+       g_free (id);
+        gl_label_barcode_style_free (style);
 
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Parse XML merge properties tag.                                */
 /*--------------------------------------------------------------------------*/
@@ -496,9 +508,20 @@ xml04_parse_merge_properties (xmlNodePtr node,
        gl_merge_set_src (merge, (gchar *)string);
        xmlFree (string);
 
-       gl_label_set_merge (label, merge);
+       gl_label_set_merge (label, merge, FALSE);
 
        g_object_unref (G_OBJECT(merge));
 
        gl_debug (DEBUG_XML, "END");
 }
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index be11bafddfd257a8d7e0277a2cd10bb53c04db86..8111481563b28f4995284292ddbba8a98c70d2db 100644 (file)
@@ -1,26 +1,23 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  xml-label-04.h:  GLabels xml label compat module header file
+ *  xml-label-04.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #ifndef __XML_LABEL_04_H__
 #define __XML_LABEL_04_H__
 
@@ -38,3 +35,14 @@ G_END_DECLS
 
 
 #endif /* __XML_LABEL_04_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 07452b250a9ac37d96d6a1451f60411a611e4be0..79b4646938622d8b70633937ef32e30eff7fb0e5 100644 (file)
@@ -1,25 +1,21 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  label.c:  GLabels xml label module
+ *  xml-label.c
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 #include "xml-label.h"
 
 #include <glib/gi18n.h>
+#include <glib.h>
 #include <libxml/tree.h>
 #include <libxml/parser.h>
 #include <libxml/xinclude.h>
 #include <gdk-pixbuf/gdk-pixdata.h>
 
+#include <libglabels.h>
 #include "label.h"
 #include "label-object.h"
 #include "label-text.h"
 #include "label-ellipse.h"
 #include "label-image.h"
 #include "label-barcode.h"
-#include "base64.h"
+#include "bc-backends.h"
 #include "xml-label-04.h"
-#include <libglabels/db.h>
-#include <libglabels/xml-template.h>
-#include <libglabels/xml.h>
-#include "util.h"
+#include "str-util.h"
+#include "prefs.h"
 
 #include "debug.h"
 
+
 /*========================================================*/
 /* Private macros and constants.                          */
 /*========================================================*/
 #define COMPAT01_NAME_SPACE "http://snaught.com/glabels/0.1/"
 #define COMPAT04_NAME_SPACE "http://snaught.com/glabels/0.4/"
 #define COMPAT20_NAME_SPACE "http://snaught.com/glabels/2.0/"
+#define COMPAT22_NAME_SPACE "http://snaught.com/glabels/2.2/"
+
 
 /*========================================================*/
 /* Private types.                                         */
 /*========================================================*/
 
+
 /*========================================================*/
 /* Private globals.                                       */
 /*========================================================*/
 
+
 /*========================================================*/
 /* Private function prototypes.                           */
 /*========================================================*/
@@ -104,6 +105,9 @@ static void           xml_parse_data           (xmlNodePtr        node,
 static void           xml_parse_pixdata        (xmlNodePtr        node,
                                                glLabel          *label);
 
+static void           xml_parse_file_node      (xmlNodePtr        node,
+                                               glLabel          *label);
+
 static void           xml_parse_toplevel_span  (xmlNodePtr        node,
                                                glLabelObject    *object);
 
@@ -116,43 +120,50 @@ static void           xml_parse_shadow_attrs   (xmlNodePtr        node,
 static xmlDocPtr      xml_label_to_doc         (glLabel          *label,
                                                glXMLLabelStatus *status);
 
-static void           xml_create_objects       (xmlNodePtr        root,
+static void           xml_create_objects       (xmlNodePtr        parent,
                                                xmlNsPtr          ns,
                                                glLabel          *label);
 
-static void           xml_create_object_text   (xmlNodePtr        root,
+static void           xml_create_object_text   (xmlNodePtr        parent,
                                                xmlNsPtr          ns,
                                                glLabelObject    *object);
 
-static void           xml_create_object_box    (xmlNodePtr        root,
+static void           xml_create_object_box    (xmlNodePtr        parent,
                                                xmlNsPtr          ns,
                                                glLabelObject    *object);
 
-static void           xml_create_object_line   (xmlNodePtr        root,
+static void           xml_create_object_line   (xmlNodePtr        parent,
                                                xmlNsPtr          ns,
                                                glLabelObject    *object);
 
-static void           xml_create_object_ellipse(xmlNodePtr        root,
+static void           xml_create_object_ellipse(xmlNodePtr        parent,
                                                xmlNsPtr          ns,
                                                glLabelObject    *object);
 
-static void           xml_create_object_image  (xmlNodePtr        root,
+static void           xml_create_object_image  (xmlNodePtr        parent,
                                                xmlNsPtr          ns,
                                                glLabelObject    *object);
 
-static void           xml_create_object_barcode(xmlNodePtr        root,
+static void           xml_create_object_barcode(xmlNodePtr        parent,
                                                xmlNsPtr          ns,
                                                glLabelObject    *object);
 
-static void           xml_create_merge_fields  (xmlNodePtr        root,
+static void           xml_create_merge_fields  (xmlNodePtr        parent,
                                                xmlNsPtr          ns,
                                                glLabel          *label);
 
-static void           xml_create_data          (xmlNodePtr        root,
+static void           xml_create_data          (xmlDocPtr         doc,
+                                                xmlNodePtr        parent,
                                                xmlNsPtr          ns,
                                                glLabel          *label);
 
-static void           xml_create_pixdata       (xmlNodePtr        root,
+static void           xml_create_pixdata       (xmlNodePtr        parent,
+                                               xmlNsPtr          ns,
+                                               glLabel          *label,
+                                               gchar            *name);
+
+static void           xml_create_file_svg      (xmlDocPtr         doc,
+                                                xmlNodePtr        parent,
                                                xmlNsPtr          ns,
                                                glLabel          *label,
                                                gchar            *name);
@@ -184,13 +195,9 @@ gl_xml_label_open (const gchar      *utf8_filename,
        filename = g_filename_from_utf8 (utf8_filename, -1, NULL, NULL, NULL);
        g_return_val_if_fail (filename, NULL);
 
-#ifndef HAVE_XML_PARSE_HUGE
-       doc = xmlParseFile (filename);
-#else
         doc = xmlReadFile (filename, NULL, XML_PARSE_HUGE);
-#endif
        if (!doc) {
-               g_message (_("xmlParseFile error"));
+               g_message ("xmlParseFile error");
                *status = XML_LABEL_ERROR_OPEN_PARSE;
                return NULL;
        }
@@ -213,6 +220,7 @@ gl_xml_label_open (const gchar      *utf8_filename,
        return label;
 }
 
+
 /****************************************************************************/
 /* Read label from xml buffer.                                              */
 /****************************************************************************/
@@ -225,13 +233,9 @@ gl_xml_label_open_buffer (const gchar      *buffer,
 
        gl_debug (DEBUG_XML, "START");
 
-#ifndef HAVE_XML_PARSE_HUGE
-       doc = xmlParseDoc ((xmlChar *) buffer);
-#else
         doc = xmlReadDoc ((xmlChar *) buffer, NULL, NULL, XML_PARSE_HUGE);
-#endif
        if (!doc) {
-               g_message (_("xmlParseDoc error"));
+               g_message ("xmlParseFile error");
                *status = XML_LABEL_ERROR_OPEN_PARSE;
                return NULL;
        }
@@ -249,6 +253,7 @@ gl_xml_label_open_buffer (const gchar      *buffer,
        return label;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Parse xml doc structure and create label.                      */
 /*--------------------------------------------------------------------------*/
@@ -267,7 +272,7 @@ xml_doc_to_label (xmlDocPtr         doc,
 
        root = xmlDocGetRootElement (doc);
        if (!root || !root->name) {
-               g_message (_("No document root"));
+               g_message ("No document root");
                *status = XML_LABEL_ERROR_OPEN_PARSE;
                return NULL;
        }
@@ -275,7 +280,7 @@ xml_doc_to_label (xmlDocPtr         doc,
         /* Try compatability mode 0.1 */
         if (xmlSearchNsByHref (doc, root, (xmlChar *)COMPAT01_NAME_SPACE))
        {
-                g_message (_("Importing from glabels 0.1 format"));
+                g_message ("Importing from glabels 0.1 format");
                 g_message ("TODO");
                 label = NULL; /* TODO */
                 return label;
@@ -284,16 +289,17 @@ xml_doc_to_label (xmlDocPtr         doc,
         /* Try compatability mode 0.4 */
         if (xmlSearchNsByHref (doc, root, (xmlChar *)COMPAT04_NAME_SPACE))
        {
-                g_message (_("Importing from glabels 0.4 format"));
+                g_message ("Importing from glabels 0.4 format");
                 label = gl_xml_label_04_parse (root, status);
                 return label;
         }
 
         /* Test for current namespaces. */
         if ( !xmlSearchNsByHref (doc, root, (xmlChar *)COMPAT20_NAME_SPACE) &&
+             !xmlSearchNsByHref (doc, root, (xmlChar *)COMPAT22_NAME_SPACE) &&
              !xmlSearchNsByHref (doc, root, (xmlChar *)LGL_XML_NAME_SPACE) )
         {
-                g_message (_("Unknown glabels Namespace -- Using %s"),
+                g_message ("Unknown glabels Namespace -- Using %s",
                            LGL_XML_NAME_SPACE);
         }
 
@@ -308,6 +314,7 @@ xml_doc_to_label (xmlDocPtr         doc,
        return label;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Parse xml root node and create label.                          */
 /*--------------------------------------------------------------------------*/
@@ -324,7 +331,7 @@ xml_parse_label (xmlNodePtr        root,
        *status = XML_LABEL_OK;
 
        if (!lgl_xml_is_node (root, "Glabels-document")) {
-               g_message (_("Bad root node = \"%s\""), root->name);
+               g_message ("Bad root node = \"%s\"", root->name);
                *status = XML_LABEL_ERROR_OPEN_PARSE;
                return NULL;
        }
@@ -351,7 +358,7 @@ xml_parse_label (xmlNodePtr        root,
                                return NULL;
                        }
                        lgl_db_register_template (template);
-                       gl_label_set_template (label, template);
+                       gl_label_set_template (label, template, FALSE);
                        lgl_template_free (template);
                } else if (lgl_xml_is_node (child_node, "Objects")) {
                        xml_parse_objects (child_node, label);
@@ -361,7 +368,7 @@ xml_parse_label (xmlNodePtr        root,
                        /* Handled in pass 1. */
                } else {
                        if (!xmlNodeIsText (child_node)) {
-                               g_message (_("bad node in Document node =  \"%s\""),
+                               g_message ("bad node in Document node =  \"%s\"",
                                           child_node->name);
                                g_object_unref (label);
                                *status = XML_LABEL_ERROR_OPEN_PARSE;
@@ -375,6 +382,7 @@ xml_parse_label (xmlNodePtr        root,
        return label;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Parse Objects node.                                            */
 /*--------------------------------------------------------------------------*/
@@ -388,7 +396,7 @@ xml_parse_objects (xmlNodePtr  node,
        gl_debug (DEBUG_XML, "START");
 
        rotate_flag = lgl_xml_get_prop_boolean (node, "rotate", FALSE);
-       gl_label_set_rotate_flag (label, rotate_flag);
+       gl_label_set_rotate_flag (label, rotate_flag, FALSE);
 
        for (child = node->xmlChildrenNode; child != NULL; child = child->next) {
 
@@ -406,7 +414,7 @@ xml_parse_objects (xmlNodePtr  node,
                        xml_parse_object_barcode (child, label);
                } else {
                        if (!xmlNodeIsText (child)) {
-                               g_message (_("bad node =  \"%s\""), child->name);
+                               g_message ("bad node =  \"%s\"", child->name);
                                break;
                        }
                }
@@ -415,6 +423,7 @@ xml_parse_objects (xmlNodePtr  node,
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Parse XML Objects->Object-text Node                            */
 /*--------------------------------------------------------------------------*/
@@ -432,27 +441,27 @@ xml_parse_object_text (xmlNodePtr  node,
 
        gl_debug (DEBUG_XML, "START");
 
-       object = gl_label_text_new (label);
+       object = gl_label_text_new (label, FALSE);
 
        /* position attrs */
        x = lgl_xml_get_prop_length (node, "x", 0.0);
        y = lgl_xml_get_prop_length (node, "y", 0.0);
-       gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y);
+       gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y, FALSE);
 
        /* implied size attrs */
        w = lgl_xml_get_prop_length (node, "w", 0);
        h = lgl_xml_get_prop_length (node, "h", 0);
-       gl_label_object_set_size (GL_LABEL_OBJECT(object), w, h);
+       gl_label_object_set_size (GL_LABEL_OBJECT(object), w, h, FALSE);
 
        /* justify attr */
        string = lgl_xml_get_prop_string (node, "justify", NULL);
-       align = gl_util_string_to_align (string);
+       align = gl_str_util_string_to_align (string);
        g_free (string);
-       gl_label_object_set_text_alignment (GL_LABEL_OBJECT(object), align);
+       gl_label_object_set_text_alignment (GL_LABEL_OBJECT(object), align, FALSE);
 
        /* auto_shrink attr */
        auto_shrink = lgl_xml_get_prop_boolean (node, "auto_shrink", FALSE);
-       gl_label_text_set_auto_shrink (GL_LABEL_TEXT(object), auto_shrink);
+       gl_label_text_set_auto_shrink (GL_LABEL_TEXT(object), auto_shrink, FALSE);
 
        /* affine attrs */
        xml_parse_affine_attrs (node, GL_LABEL_OBJECT(object));
@@ -476,6 +485,7 @@ xml_parse_object_text (xmlNodePtr  node,
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Parse XML Objects->Object-box Node                             */
 /*--------------------------------------------------------------------------*/
@@ -493,21 +503,21 @@ xml_parse_object_box (xmlNodePtr  node,
 
        gl_debug (DEBUG_XML, "START");
 
-       object = gl_label_box_new (label);
+       object = gl_label_box_new (label, FALSE);
 
        /* position attrs */
        x = lgl_xml_get_prop_length (node, "x", 0.0);
        y = lgl_xml_get_prop_length (node, "y", 0.0);
-       gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y);
+       gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y, FALSE);
 
        /* size attrs */
        w = lgl_xml_get_prop_length (node, "w", 0);
        h = lgl_xml_get_prop_length (node, "h", 0);
-       gl_label_object_set_size (GL_LABEL_OBJECT(object), w, h);
+       gl_label_object_set_size (GL_LABEL_OBJECT(object), w, h, FALSE);
 
        /* line attrs */
        line_width = lgl_xml_get_prop_length (node, "line_width", 1.0);
-       gl_label_object_set_line_width (GL_LABEL_OBJECT(object), line_width);
+       gl_label_object_set_line_width (GL_LABEL_OBJECT(object), line_width, FALSE);
        
        line_color_node = gl_color_node_new_default ();
        string = lgl_xml_get_prop_string (node, "line_color_field", NULL);
@@ -517,7 +527,7 @@ xml_parse_object_box (xmlNodePtr  node,
        } else {
                line_color_node->color = lgl_xml_get_prop_uint (node, "line_color", 0);
        }
-       gl_label_object_set_line_color (GL_LABEL_OBJECT(object), line_color_node);
+       gl_label_object_set_line_color (GL_LABEL_OBJECT(object), line_color_node, FALSE);
        gl_color_node_free (&line_color_node);
 
 
@@ -530,7 +540,7 @@ xml_parse_object_box (xmlNodePtr  node,
        } else {
                fill_color_node->color = lgl_xml_get_prop_uint (node, "fill_color", 0);
        }
-       gl_label_object_set_fill_color (GL_LABEL_OBJECT(object), fill_color_node);
+       gl_label_object_set_fill_color (GL_LABEL_OBJECT(object), fill_color_node, FALSE);
        gl_color_node_free (&fill_color_node);
        
        /* affine attrs */
@@ -542,6 +552,7 @@ xml_parse_object_box (xmlNodePtr  node,
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Parse XML Objects->Object-ellipse Node                         */
 /*--------------------------------------------------------------------------*/
@@ -559,21 +570,21 @@ xml_parse_object_ellipse (xmlNodePtr  node,
 
        gl_debug (DEBUG_XML, "START");
 
-       object = gl_label_ellipse_new (label);
+       object = gl_label_ellipse_new (label, FALSE);
 
        /* position attrs */
        x = lgl_xml_get_prop_length (node, "x", 0.0);
        y = lgl_xml_get_prop_length (node, "y", 0.0);
-       gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y);
+       gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y, FALSE);
 
        /* size attrs */
        w = lgl_xml_get_prop_length (node, "w", 0);
        h = lgl_xml_get_prop_length (node, "h", 0);
-       gl_label_object_set_size (GL_LABEL_OBJECT(object), w, h);
+       gl_label_object_set_size (GL_LABEL_OBJECT(object), w, h, FALSE);
 
        /* line attrs */
        line_width = lgl_xml_get_prop_length (node, "line_width", 1.0);
-       gl_label_object_set_line_width (GL_LABEL_OBJECT(object), line_width);
+       gl_label_object_set_line_width (GL_LABEL_OBJECT(object), line_width, FALSE);
 
        line_color_node = gl_color_node_new_default ();
        string = lgl_xml_get_prop_string (node, "line_color_field", NULL);
@@ -583,7 +594,7 @@ xml_parse_object_ellipse (xmlNodePtr  node,
        } else {
                line_color_node->color = lgl_xml_get_prop_uint (node, "line_color", 0);         
        }
-       gl_label_object_set_line_color (GL_LABEL_OBJECT(object), line_color_node);
+       gl_label_object_set_line_color (GL_LABEL_OBJECT(object), line_color_node, FALSE);
        gl_color_node_free (&line_color_node);
 
 
@@ -596,7 +607,7 @@ xml_parse_object_ellipse (xmlNodePtr  node,
        } else {
                fill_color_node->color = lgl_xml_get_prop_uint (node, "fill_color", 0);
        }
-       gl_label_object_set_fill_color (GL_LABEL_OBJECT(object), fill_color_node);
+       gl_label_object_set_fill_color (GL_LABEL_OBJECT(object), fill_color_node, FALSE);
        gl_color_node_free (&fill_color_node);
 
        /* affine attrs */
@@ -608,6 +619,7 @@ xml_parse_object_ellipse (xmlNodePtr  node,
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Parse XML Objects->Object-line Node                            */
 /*--------------------------------------------------------------------------*/
@@ -624,21 +636,21 @@ xml_parse_object_line (xmlNodePtr  node,
 
        gl_debug (DEBUG_XML, "START");
 
-       object = gl_label_line_new (label);
+       object = gl_label_line_new (label, FALSE);
 
        /* position attrs */
        x = lgl_xml_get_prop_length (node, "x", 0.0);
        y = lgl_xml_get_prop_length (node, "y", 0.0);
-       gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y);
+       gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y, FALSE);
 
        /* length attrs */
        dx = lgl_xml_get_prop_length (node, "dx", 0);
        dy = lgl_xml_get_prop_length (node, "dy", 0);
-       gl_label_object_set_size (GL_LABEL_OBJECT(object), dx, dy);
+       gl_label_object_set_size (GL_LABEL_OBJECT(object), dx, dy, FALSE);
 
        /* line attrs */
        line_width = lgl_xml_get_prop_length (node, "line_width", 1.0);
-       gl_label_object_set_line_width (GL_LABEL_OBJECT(object), line_width);
+       gl_label_object_set_line_width (GL_LABEL_OBJECT(object), line_width, FALSE);
        
        line_color_node = gl_color_node_new_default ();
        string = lgl_xml_get_prop_string (node, "line_color_field", NULL);
@@ -648,7 +660,7 @@ xml_parse_object_line (xmlNodePtr  node,
        } else {
                line_color_node->color = lgl_xml_get_prop_uint (node, "line_color", 0);         
        }
-       gl_label_object_set_line_color (GL_LABEL_OBJECT(object), line_color_node);
+       gl_label_object_set_line_color (GL_LABEL_OBJECT(object), line_color_node, FALSE);
        gl_color_node_free (&line_color_node);
 
        /* affine attrs */
@@ -660,6 +672,7 @@ xml_parse_object_line (xmlNodePtr  node,
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Parse XML Objects->Object-image Node                           */
 /*--------------------------------------------------------------------------*/
@@ -675,12 +688,12 @@ xml_parse_object_image (xmlNodePtr  node,
 
        gl_debug (DEBUG_XML, "START");
 
-       object = gl_label_image_new (label);
+       object = gl_label_image_new (label, FALSE);
 
        /* position attrs */
        x = lgl_xml_get_prop_length (node, "x", 0.0);
        y = lgl_xml_get_prop_length (node, "y", 0.0);
-       gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y);
+       gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y, FALSE);
 
        /* src or field attr */
        string = lgl_xml_get_prop_string (node, "src", NULL);
@@ -688,7 +701,7 @@ xml_parse_object_image (xmlNodePtr  node,
                filename = g_new0 (glTextNode, 1);
                filename->field_flag = FALSE;
                filename->data = g_strdup ((gchar *)string);
-               gl_label_image_set_filename (GL_LABEL_IMAGE(object), filename);
+               gl_label_image_set_filename (GL_LABEL_IMAGE(object), filename, FALSE);
                gl_text_node_free (&filename);
                xmlFree (string);
        } else {
@@ -697,7 +710,7 @@ xml_parse_object_image (xmlNodePtr  node,
                        filename = g_new0 (glTextNode, 1);
                        filename->field_flag = TRUE;
                        filename->data = g_strdup ((gchar *)string);
-                       gl_label_image_set_filename (GL_LABEL_IMAGE(object), filename);
+                       gl_label_image_set_filename (GL_LABEL_IMAGE(object), filename, FALSE);
                        gl_text_node_free (&filename);
                        xmlFree (string);
                } else {
@@ -708,7 +721,7 @@ xml_parse_object_image (xmlNodePtr  node,
        /* size attrs */
        w = lgl_xml_get_prop_length (node, "w", 0);
        h = lgl_xml_get_prop_length (node, "h", 0);
-       gl_label_object_set_size (GL_LABEL_OBJECT(object), w, h);
+       gl_label_object_set_size (GL_LABEL_OBJECT(object), w, h, FALSE);
 
        /* affine attrs */
        xml_parse_affine_attrs (node, GL_LABEL_OBJECT(object));
@@ -719,6 +732,7 @@ xml_parse_object_image (xmlNodePtr  node,
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Parse XML Objects->Object-barcode Node                         */
 /*--------------------------------------------------------------------------*/
@@ -726,39 +740,55 @@ static void
 xml_parse_object_barcode (xmlNodePtr  node,
                          glLabel    *label)
 {
-       GObject            *object;
-       gdouble             x, y;
-       gdouble             w, h;
-       gchar              *string;
-       glTextNode         *text_node;
-       gchar              *id;
-       gboolean            text_flag;
-       gboolean            checksum_flag;
-       glColorNode        *color_node;
-       guint               format_digits;
+       GObject             *object;
+       gdouble              x, y;
+       gdouble              w, h;
+       gchar               *string;
+       glTextNode          *text_node;
+       gchar               *backend_id;
+       gchar               *id;
+        glLabelBarcodeStyle *style;
+       glColorNode         *color_node;
 
        gl_debug (DEBUG_XML, "START");
 
-       object = gl_label_barcode_new (label);
+       object = gl_label_barcode_new (label, FALSE);
 
        /* position attrs */
        x = lgl_xml_get_prop_length (node, "x", 0.0);
        y = lgl_xml_get_prop_length (node, "y", 0.0);
-       gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y);
+       gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y, FALSE);
 
        /* size attrs */
        w = lgl_xml_get_prop_length (node, "w", 0);
        h = lgl_xml_get_prop_length (node, "h", 0);
-       gl_label_object_set_size (GL_LABEL_OBJECT(object), w, h);
+       gl_label_object_set_size (GL_LABEL_OBJECT(object), w, h, FALSE);
 
-       /* prop attrs */
+       /* style attrs */
+        style = gl_label_barcode_style_new ();
+       backend_id = lgl_xml_get_prop_string (node, "backend", NULL);
        id = lgl_xml_get_prop_string (node, "style", NULL);
-       text_flag = lgl_xml_get_prop_boolean (node, "text", FALSE);
-       checksum_flag = lgl_xml_get_prop_boolean (node, "checksum", TRUE);
-       format_digits = lgl_xml_get_prop_uint (node, "format", 10);
-       gl_label_barcode_set_props (GL_LABEL_BARCODE(object),
-                                   (gchar *)id, text_flag, checksum_flag, format_digits);
+        if ( !gl_barcode_backends_is_backend_id_valid (backend_id) )
+        {
+                if ( backend_id == NULL )
+                {
+                        backend_id = g_strdup (gl_barcode_backends_guess_backend_id (id));
+                }
+                else
+                {
+                        g_free (backend_id);
+                        backend_id = g_strdup ("built-in");
+                }
+        }
+        gl_label_barcode_style_set_backend_id (style, backend_id);
+        gl_label_barcode_style_set_style_id (style, id);
+       style->text_flag = lgl_xml_get_prop_boolean (node, "text", FALSE);
+       style->checksum_flag = lgl_xml_get_prop_boolean (node, "checksum", TRUE);
+       style->format_digits = lgl_xml_get_prop_uint (node, "format", 10);
+       gl_label_barcode_set_style (GL_LABEL_BARCODE(object), style, FALSE);
+       g_free (backend_id);
        g_free (id);
+        gl_label_barcode_style_free (style);
        
        color_node = gl_color_node_new_default ();
        string = lgl_xml_get_prop_string (node, "color_field", NULL);
@@ -768,7 +798,7 @@ xml_parse_object_barcode (xmlNodePtr  node,
        } else {
                color_node->color = lgl_xml_get_prop_uint (node, "color", 0);           
        }
-       gl_label_object_set_line_color (GL_LABEL_OBJECT(object), color_node);
+       gl_label_object_set_line_color (GL_LABEL_OBJECT(object), color_node, FALSE);
        gl_color_node_free (&color_node);
 
        /* data or field attr */
@@ -777,7 +807,7 @@ xml_parse_object_barcode (xmlNodePtr  node,
                text_node = g_new0 (glTextNode, 1);
                text_node->field_flag = FALSE;
                text_node->data = string;
-               gl_label_barcode_set_data (GL_LABEL_BARCODE(object), text_node);
+               gl_label_barcode_set_data (GL_LABEL_BARCODE(object), text_node, FALSE);
                gl_text_node_free (&text_node);
        } else {
                string = lgl_xml_get_prop_string (node, "field", NULL);
@@ -785,7 +815,7 @@ xml_parse_object_barcode (xmlNodePtr  node,
                        text_node = g_new0 (glTextNode, 1);
                        text_node->field_flag = TRUE;
                        text_node->data = string;
-                       gl_label_barcode_set_data (GL_LABEL_BARCODE(object), text_node);
+                       gl_label_barcode_set_data (GL_LABEL_BARCODE(object), text_node, FALSE);
                        gl_text_node_free (&text_node);
                } else {
                        g_message ("Missing Object-barcode data or field attr");
@@ -801,6 +831,7 @@ xml_parse_object_barcode (xmlNodePtr  node,
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Parse XML merge fields tag.                                    */
 /*--------------------------------------------------------------------------*/
@@ -823,7 +854,7 @@ xml_parse_merge_fields (xmlNodePtr  node,
                 gl_merge_set_src (merge, string);
                 g_free (string);
 
-                gl_label_set_merge (label, merge);
+                gl_label_set_merge (label, merge, FALSE);
 
                 g_object_unref (G_OBJECT(merge));
         }
@@ -831,6 +862,7 @@ xml_parse_merge_fields (xmlNodePtr  node,
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Parse XML data tag.                                            */
 /*--------------------------------------------------------------------------*/
@@ -846,9 +878,11 @@ xml_parse_data (xmlNodePtr  node,
 
                if (lgl_xml_is_node (child, "Pixdata")) {
                        xml_parse_pixdata (child, label);
+               } else if (lgl_xml_is_node (child, "File")) {
+                       xml_parse_file_node (child, label);
                } else {
                        if (!xmlNodeIsText (child)) {
-                               g_message (_("bad node in Data node =  \"%s\""),
+                               g_message ("bad node in Data node =  \"%s\"",
                                           child->name);
                        }
                }
@@ -857,8 +891,9 @@ xml_parse_data (xmlNodePtr  node,
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
-/* PRIVATE.  Parse XML pixbuf data tag.                                     */
+/* PRIVATE.  Parse XML embedded Pixdata node.                               */
 /*--------------------------------------------------------------------------*/
 static void
 xml_parse_pixdata (xmlNodePtr  node,
@@ -866,7 +901,7 @@ xml_parse_pixdata (xmlNodePtr  node,
 {
        gchar      *name, *base64;
        guchar     *stream;
-       guint       stream_length;
+       gsize       stream_length;
        gboolean    ret;
        GdkPixdata *pixdata;
        GdkPixbuf  *pixbuf;
@@ -877,7 +912,7 @@ xml_parse_pixdata (xmlNodePtr  node,
        name = lgl_xml_get_prop_string (node, "name", NULL);
        base64 = lgl_xml_get_node_content (node);
 
-       stream = gl_base64_decode ((gchar *)base64, &stream_length);
+       stream = g_base64_decode ((gchar *)base64, &stream_length);
        pixdata = g_new0 (GdkPixdata, 1);
        ret = gdk_pixdata_deserialize (pixdata, stream_length, stream, NULL);
 
@@ -897,6 +932,41 @@ xml_parse_pixdata (xmlNodePtr  node,
        gl_debug (DEBUG_XML, "END");
 }
 
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Parse XML embedded File node.                                  */
+/*--------------------------------------------------------------------------*/
+static void
+xml_parse_file_node (xmlNodePtr  node,
+                     glLabel    *label)
+{
+       gchar      *name, *format;
+        gchar      *content;
+       GHashTable *svg_cache;
+
+       name    = lgl_xml_get_prop_string (node, "name", NULL);
+       format  = lgl_xml_get_prop_string (node, "format", NULL);
+
+        if ( format && (lgl_str_utf8_casecmp (format, "SVG") == 0) )
+        {
+                content = lgl_xml_get_node_content (node);
+
+               svg_cache = gl_label_get_svg_cache (label);
+                gl_svg_cache_add_svg (svg_cache, name, content);
+
+                g_free (content);
+        }
+        else
+        {
+                g_message ("Unknown embedded file format: \"%s\"", format);
+                
+        }
+
+        g_free (name);
+        g_free (format);
+}
+
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Parse top-level Span tag.                                      */
 /*--------------------------------------------------------------------------*/
@@ -914,27 +984,28 @@ xml_parse_toplevel_span  (xmlNodePtr        node,
        GList            *lines, *text_nodes;
        xmlNodePtr        child;
        glTextNode       *text_node;
+       GRegex                                   *strip_regex;
 
        gl_debug (DEBUG_XML, "START");
 
        /* Font family attr */
        font_family = lgl_xml_get_prop_string (node, "font_family", "Sans");
-       gl_label_object_set_font_family (object, font_family);
+       gl_label_object_set_font_family (object, font_family, FALSE);
        g_free (font_family);
 
        /* Font size attr */
        font_size = lgl_xml_get_prop_double (node, "font_size", 0.0);
-       gl_label_object_set_font_size (object, font_size);
+       gl_label_object_set_font_size (object, font_size, FALSE);
 
        /* Font weight attr */
        string = lgl_xml_get_prop_string (node, "font_weight", NULL);
-       font_weight = gl_util_string_to_weight (string);
+       font_weight = gl_str_util_string_to_weight (string);
        g_free (string);
-       gl_label_object_set_font_weight (object, font_weight);
+       gl_label_object_set_font_weight (object, font_weight, FALSE);
 
        /* Font italic flag attr */
        font_italic_flag = lgl_xml_get_prop_boolean (node, "font_italic", FALSE);
-       gl_label_object_set_font_italic_flag (object, font_italic_flag);
+       gl_label_object_set_font_italic_flag (object, font_italic_flag, FALSE);
 
        /* Text color attr */
        color_node = gl_color_node_new_default ();
@@ -945,33 +1016,20 @@ xml_parse_toplevel_span  (xmlNodePtr        node,
        } else {
                color_node->color = lgl_xml_get_prop_uint (node, "color", 0);           
        }
-       gl_label_object_set_text_color (object, color_node);
+       gl_label_object_set_text_color (object, color_node, FALSE);
        gl_color_node_free (&color_node);
        
-
        /* Text line spacing attr  */
        text_line_spacing = lgl_xml_get_prop_double (node, "line_spacing", 1.0);
-       gl_label_object_set_text_line_spacing (object, text_line_spacing); 
+       gl_label_object_set_text_line_spacing (object, text_line_spacing, FALSE); 
 
        /* Now descend children, and build lines of text nodes */
        lines = NULL;
        text_nodes = NULL;
+       strip_regex = g_regex_new("\\A\\n\\s*|\\n\\s*\\Z", 0, 0, NULL);
        for (child = node->xmlChildrenNode; child != NULL; child = child->next) {
 
-               if (xmlNodeIsText (child)) {
-                       gchar *data = lgl_xml_get_node_content (child); 
-
-                       /* Hack: if the first char is LF, it's an xml formatting string */
-                       if (data[0] != '\n') { 
-                               /* Literal text */
-                               text_node = g_new0 (glTextNode, 1);
-                               text_node->field_flag = FALSE;
-                               text_node->data = g_strdup ((gchar *)data);
-                               text_nodes = g_list_append (text_nodes, text_node);
-                       }
-                       g_free (data);
-
-               } else if (lgl_xml_is_node (child, "Span")) {
+               if (lgl_xml_is_node (child, "Span")) {
 
                        g_message ("Unexpected rich text (not supported, yet!)");
 
@@ -990,22 +1048,41 @@ xml_parse_toplevel_span  (xmlNodePtr        node,
                        lines = g_list_append (lines, text_nodes);
                        text_nodes = NULL;
 
+    } else if (xmlNodeIsText (child)) {
+                       gchar *orig_data = lgl_xml_get_node_content (child); 
+                       gchar *data;
+
+                       /* Literal text */
+
+                       /* Stip out white space before and after */
+                       data = g_regex_replace(strip_regex, orig_data, -1, 0, "", 0, NULL);
+                       g_free (orig_data);
+
+                       text_node = g_new0 (glTextNode, 1);
+                       text_node->field_flag = FALSE;
+                       text_node->data = g_strdup ((gchar *)data);
+                       text_nodes = g_list_append (text_nodes, text_node);
+
+                       g_free (data);
+
                } else {
                        g_message ("Unexpected Span child: \"%s\"", child->name);
                }
 
        }
+  g_free (strip_regex);
        if ( text_nodes ) {
                /* Store last line. */
                lines = g_list_append (lines, text_nodes);
                text_nodes = NULL;
        }
-       gl_label_text_set_lines (GL_LABEL_TEXT(object), lines);
+       gl_label_text_set_lines (GL_LABEL_TEXT(object), lines, FALSE);
        gl_text_node_lines_free (&lines);
 
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Parse affine attributes.                                       */
 /*--------------------------------------------------------------------------*/
@@ -1028,6 +1105,7 @@ xml_parse_affine_attrs (xmlNodePtr        node,
        gl_label_object_set_matrix (object, &matrix);
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Parse shadow attributes.                                       */
 /*--------------------------------------------------------------------------*/
@@ -1043,13 +1121,13 @@ xml_parse_shadow_attrs (xmlNodePtr        node,
        gchar           *string;
 
        shadow_state = lgl_xml_get_prop_boolean (node, "shadow", FALSE);
-       gl_label_object_set_shadow_state (object, shadow_state);
+       gl_label_object_set_shadow_state (object, shadow_state, FALSE);
 
        if (shadow_state)
        {
                shadow_x = lgl_xml_get_prop_length (node, "shadow_x", 0.0);
                shadow_y = lgl_xml_get_prop_length (node, "shadow_y", 0.0);
-               gl_label_object_set_shadow_offset (object, shadow_x, shadow_y);
+               gl_label_object_set_shadow_offset (object, shadow_x, shadow_y, FALSE);
                
                shadow_color_node = gl_color_node_new_default ();
                string = lgl_xml_get_prop_string (node, "shadow_color_field", NULL);
@@ -1059,14 +1137,15 @@ xml_parse_shadow_attrs (xmlNodePtr        node,
                } else {
                        shadow_color_node->color = lgl_xml_get_prop_uint (node, "shadow_color", 0);             
                }
-               gl_label_object_set_shadow_color (object, shadow_color_node);
+               gl_label_object_set_shadow_color (object, shadow_color_node, FALSE);
                gl_color_node_free (&shadow_color_node);
 
                shadow_opacity = lgl_xml_get_prop_double (node, "shadow_opacity", 1.0);
-               gl_label_object_set_shadow_opacity (object, shadow_opacity);
+               gl_label_object_set_shadow_opacity (object, shadow_opacity, FALSE);
        }
 }
 
+
 /****************************************************************************/
 /* Save label to xml label file.                                            */
 /****************************************************************************/
@@ -1085,14 +1164,14 @@ gl_xml_label_save (glLabel          *label,
 
        filename = g_filename_from_utf8 (utf8_filename, -1, NULL, NULL, NULL);
        if (!filename)
-               g_message (_("Utf8 conversion error."));
+               g_message ("Utf8 conversion error.");
        else {
                xmlSetDocCompressMode (doc, gl_label_get_compression (label));
                xml_ret = xmlSaveFormatFile (filename, doc, TRUE);
                xmlFreeDoc (doc);
                if (xml_ret == -1) {
 
-                       g_message (_("Problem saving xml file."));
+                       g_message ("Problem saving xml file.");
                        *status = XML_LABEL_ERROR_SAVE_FILE;
 
                } else {
@@ -1107,6 +1186,7 @@ gl_xml_label_save (glLabel          *label,
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /****************************************************************************/
 /* Save label to xml buffer.                                                */
 /****************************************************************************/
@@ -1132,6 +1212,7 @@ gl_xml_label_save_buffer (glLabel          *label,
        return (gchar *)buffer;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Convert label to xml doc structure.                            */
 /*--------------------------------------------------------------------------*/
@@ -1139,21 +1220,27 @@ static xmlDocPtr
 xml_label_to_doc (glLabel          *label,
                  glXMLLabelStatus *status)
 {
-       xmlDocPtr   doc;
-       xmlNsPtr    ns;
-       glMerge    *merge;
+        lglUnits           units;
+       xmlDocPtr          doc;
+       xmlNsPtr           ns;
+        const lglTemplate *template;
+       glMerge           *merge;
 
        gl_debug (DEBUG_XML, "START");
 
        LIBXML_TEST_VERSION;
 
+        units = gl_prefs_model_get_units (gl_prefs);
+        lgl_xml_set_default_units (units);
+
        doc = xmlNewDoc ((xmlChar *)"1.0");
        doc->xmlRootNode = xmlNewDocNode (doc, NULL, (xmlChar *)"Glabels-document", NULL);
 
        ns = xmlNewNs (doc->xmlRootNode, (xmlChar *)LGL_XML_NAME_SPACE, NULL);
        xmlSetNs (doc->xmlRootNode, ns);
 
-       lgl_xml_template_create_template_node (label->template, doc->xmlRootNode, ns);
+        template = gl_label_get_template (label);
+       lgl_xml_template_create_template_node (template, doc->xmlRootNode, ns);
 
        xml_create_objects (doc->xmlRootNode, ns, label);
 
@@ -1164,7 +1251,7 @@ xml_label_to_doc (glLabel          *label,
                g_object_unref (G_OBJECT(merge));
        }
 
-       xml_create_data (doc->xmlRootNode, ns, label);
+       xml_create_data (doc, doc->xmlRootNode, ns, label);
 
        gl_debug (DEBUG_XML, "END");
 
@@ -1172,25 +1259,31 @@ xml_label_to_doc (glLabel          *label,
        return doc;
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Add XML Objects Node                                           */
 /*--------------------------------------------------------------------------*/
 static void
-xml_create_objects (xmlNodePtr  root,
+xml_create_objects (xmlNodePtr  parent,
                    xmlNsPtr    ns,
                    glLabel    *label)
 {
        xmlNodePtr     node;
+        gboolean       rotate_flag;
+        const GList   *object_list;
        GList         *p;
        glLabelObject *object;
 
        gl_debug (DEBUG_XML, "START");
 
-       node = xmlNewChild (root, ns, (xmlChar *)"Objects", NULL);
+        rotate_flag = gl_label_get_rotate_flag (label);
+        object_list = gl_label_get_object_list (label);
+
+       node = xmlNewChild (parent, ns, (xmlChar *)"Objects", NULL);
        lgl_xml_set_prop_string (node, "id", "0");
-       lgl_xml_set_prop_boolean (node, "rotate", label->rotate_flag);
+       lgl_xml_set_prop_boolean (node, "rotate", rotate_flag);
 
-       for (p = label->objects; p != NULL; p = p->next) {
+       for (p = (GList *)object_list; p != NULL; p = p->next) {
 
                object = GL_LABEL_OBJECT(p->data);
 
@@ -1215,11 +1308,12 @@ xml_create_objects (xmlNodePtr  root,
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Add XML Objects->Object-text Node                              */
 /*--------------------------------------------------------------------------*/
 static void
-xml_create_object_text (xmlNodePtr     root,
+xml_create_object_text (xmlNodePtr     parent,
                        xmlNsPtr       ns,
                        glLabelObject *object)
 {
@@ -1231,7 +1325,7 @@ xml_create_object_text (xmlNodePtr     root,
 
        gl_debug (DEBUG_XML, "START");
 
-       node = xmlNewChild (root, ns, (xmlChar *)"Object-text", NULL);
+       node = xmlNewChild (parent, ns, (xmlChar *)"Object-text", NULL);
 
        /* position attrs */
        gl_label_object_get_position (object, &x, &y);
@@ -1245,7 +1339,7 @@ xml_create_object_text (xmlNodePtr     root,
 
        /* justify attr */
        align = gl_label_object_get_text_alignment (object);
-       lgl_xml_set_prop_string (node, "justify", gl_util_align_to_string (align));
+       lgl_xml_set_prop_string (node, "justify", gl_str_util_align_to_string (align));
 
        /* auto_shrink attr */
        auto_shrink = gl_label_text_get_auto_shrink (GL_LABEL_TEXT (object));
@@ -1263,11 +1357,12 @@ xml_create_object_text (xmlNodePtr     root,
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Add XML Objects->Object-box Node                               */
 /*--------------------------------------------------------------------------*/
 static void
-xml_create_object_box (xmlNodePtr     root,
+xml_create_object_box (xmlNodePtr     parent,
                       xmlNsPtr       ns,
                       glLabelObject *object)
 {
@@ -1280,7 +1375,7 @@ xml_create_object_box (xmlNodePtr     root,
 
        gl_debug (DEBUG_XML, "START");
 
-       node = xmlNewChild (root, ns, (xmlChar *)"Object-box", NULL);
+       node = xmlNewChild (parent, ns, (xmlChar *)"Object-box", NULL);
 
        /* position attrs */
        gl_label_object_get_position (object, &x, &y);
@@ -1328,11 +1423,12 @@ xml_create_object_box (xmlNodePtr     root,
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Add XML Objects->Object-ellipse Node                           */
 /*--------------------------------------------------------------------------*/
 static void
-xml_create_object_ellipse (xmlNodePtr     root,
+xml_create_object_ellipse (xmlNodePtr     parent,
                           xmlNsPtr       ns,
                           glLabelObject *object)
 {
@@ -1345,7 +1441,7 @@ xml_create_object_ellipse (xmlNodePtr     root,
 
        gl_debug (DEBUG_XML, "START");
 
-       node = xmlNewChild (root, ns, (xmlChar *)"Object-ellipse", NULL);
+       node = xmlNewChild (parent, ns, (xmlChar *)"Object-ellipse", NULL);
 
        /* position attrs */
        gl_label_object_get_position (object, &x, &y);
@@ -1394,11 +1490,12 @@ xml_create_object_ellipse (xmlNodePtr     root,
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Add XML Objects->Object-line Node                              */
 /*--------------------------------------------------------------------------*/
 static void
-xml_create_object_line (xmlNodePtr     root,
+xml_create_object_line (xmlNodePtr     parent,
                        xmlNsPtr       ns,
                        glLabelObject *object)
 {
@@ -1410,7 +1507,7 @@ xml_create_object_line (xmlNodePtr     root,
 
        gl_debug (DEBUG_XML, "START");
 
-       node = xmlNewChild (root, ns, (xmlChar *)"Object-line", NULL);
+       node = xmlNewChild (parent, ns, (xmlChar *)"Object-line", NULL);
 
        /* position attrs */
        gl_label_object_get_position (object, &x, &y);
@@ -1447,11 +1544,12 @@ xml_create_object_line (xmlNodePtr     root,
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Add XML Objects->Object-image Node                             */
 /*--------------------------------------------------------------------------*/
 static void
-xml_create_object_image (xmlNodePtr     root,
+xml_create_object_image (xmlNodePtr     parent,
                         xmlNsPtr       ns,
                         glLabelObject *object)
 {
@@ -1462,7 +1560,7 @@ xml_create_object_image (xmlNodePtr     root,
 
        gl_debug (DEBUG_XML, "START");
 
-       node = xmlNewChild (root, ns, (xmlChar *)"Object-image", NULL);
+       node = xmlNewChild (parent, ns, (xmlChar *)"Object-image", NULL);
 
        /* position attrs */
        gl_label_object_get_position (object, &x, &y);
@@ -1492,27 +1590,25 @@ xml_create_object_image (xmlNodePtr     root,
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Add XML Objects->Object-barcode Node                           */
 /*--------------------------------------------------------------------------*/
 static void
-xml_create_object_barcode (xmlNodePtr     root,
+xml_create_object_barcode (xmlNodePtr     parent,
                           xmlNsPtr       ns,
                           glLabelObject *object)
 {
-       xmlNodePtr        node;
-       gdouble           x, y;
-       gdouble           w, h;
-       glTextNode       *text_node;
-       gchar            *id;
-       gboolean          text_flag;
-       gboolean          checksum_flag;
-       glColorNode      *color_node;
-       guint             format_digits;
+       xmlNodePtr           node;
+       gdouble              x, y;
+       gdouble              w, h;
+       glTextNode          *text_node;
+        glLabelBarcodeStyle *style;
+       glColorNode         *color_node;
 
        gl_debug (DEBUG_XML, "START");
 
-       node = xmlNewChild (root, ns, (xmlChar *)"Object-barcode", NULL);
+       node = xmlNewChild (parent, ns, (xmlChar *)"Object-barcode", NULL);
 
        /* position attrs */
        gl_label_object_get_position (object, &x, &y);
@@ -1525,13 +1621,11 @@ xml_create_object_barcode (xmlNodePtr     root,
        lgl_xml_set_prop_length (node, "h", h);
 
        /* Barcode properties attrs */
-       gl_label_barcode_get_props (GL_LABEL_BARCODE(object),
-                                   &id, &text_flag, &checksum_flag, &format_digits);
-       lgl_xml_set_prop_string (node, "style", id);
-       lgl_xml_set_prop_boolean (node, "text", text_flag);
-       lgl_xml_set_prop_boolean (node, "checksum", checksum_flag);
-       
-       g_free (id);
+       style = gl_label_barcode_get_style (GL_LABEL_BARCODE(object));
+       lgl_xml_set_prop_string (node, "backend", style->backend_id);
+       lgl_xml_set_prop_string (node, "style", style->id);
+       lgl_xml_set_prop_boolean (node, "text", style->text_flag);
+       lgl_xml_set_prop_boolean (node, "checksum", style->checksum_flag);
        
        color_node = gl_label_object_get_line_color (GL_LABEL_OBJECT(object));
        if (color_node->field_flag)
@@ -1549,7 +1643,7 @@ xml_create_object_barcode (xmlNodePtr     root,
        text_node = gl_label_barcode_get_data (GL_LABEL_BARCODE(object));
        if (text_node->field_flag) {
                lgl_xml_set_prop_string (node, "field", text_node->data);
-               lgl_xml_set_prop_int (node, "format", format_digits);
+               lgl_xml_set_prop_int (node, "format", style->format_digits);
        } else {
                lgl_xml_set_prop_string (node, "data", text_node->data);
        }
@@ -1561,14 +1655,17 @@ xml_create_object_barcode (xmlNodePtr     root,
        /* shadow attrs */
        xml_create_shadow_attrs (node, object);
 
+        gl_label_barcode_style_free (style);
+
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Add XML Label Merge Fields Node                                */
 /*--------------------------------------------------------------------------*/
 static void
-xml_create_merge_fields (xmlNodePtr  root,
+xml_create_merge_fields (xmlNodePtr  parent,
                         xmlNsPtr    ns,
                         glLabel    *label)
 {
@@ -1580,7 +1677,7 @@ xml_create_merge_fields (xmlNodePtr  root,
 
        merge = gl_label_get_merge (label);
 
-       node = xmlNewChild (root, ns, (xmlChar *)"Merge", NULL);
+       node = xmlNewChild (parent, ns, (xmlChar *)"Merge", NULL);
 
        string = gl_merge_get_name (merge);
        lgl_xml_set_prop_string (node, "type", string);
@@ -1595,24 +1692,26 @@ xml_create_merge_fields (xmlNodePtr  root,
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Add XML Label Data Node                                        */
 /*--------------------------------------------------------------------------*/
 static void
-xml_create_data (xmlNodePtr  root,
+xml_create_data (xmlDocPtr   doc,
+                 xmlNodePtr  parent,
                 xmlNsPtr    ns,
                 glLabel    *label)
 {
        xmlNodePtr  node;
+       GHashTable *cache;
        GList      *name_list, *p;
-       GHashTable *pixbuf_cache;
 
        gl_debug (DEBUG_XML, "START");
 
-       node = xmlNewChild (root, ns, (xmlChar *)"Data", NULL);
+       node = xmlNewChild (parent, ns, (xmlChar *)"Data", NULL);
 
-       pixbuf_cache = gl_label_get_pixbuf_cache (label);
-       name_list = gl_pixbuf_cache_get_name_list (pixbuf_cache);
+       cache = gl_label_get_pixbuf_cache (label);
+       name_list = gl_pixbuf_cache_get_name_list (cache);
 
        for (p = name_list; p != NULL; p=p->next) {
                xml_create_pixdata (node, ns, label, p->data);
@@ -1621,14 +1720,25 @@ xml_create_data (xmlNodePtr  root,
        gl_pixbuf_cache_free_name_list (name_list);
 
 
+       cache = gl_label_get_svg_cache (label);
+       name_list = gl_svg_cache_get_name_list (cache);
+
+       for (p = name_list; p != NULL; p=p->next) {
+               xml_create_file_svg (doc, node, ns, label, p->data);
+       }
+
+       gl_pixbuf_cache_free_name_list (name_list);
+
+
        gl_debug (DEBUG_XML, "END");
 }
 
+
 /*--------------------------------------------------------------------------*/
-/* PRIVATE.  Add XML Label Data Pixbuf Node                                 */
+/* PRIVATE.  Add XML Label Data embedded Pixdata Node                       */
 /*--------------------------------------------------------------------------*/
 static void
-xml_create_pixdata (xmlNodePtr  root,
+xml_create_pixdata (xmlNodePtr  parent,
                    xmlNsPtr    ns,
                    glLabel    *label,
                    gchar      *name)
@@ -1651,9 +1761,9 @@ xml_create_pixdata (xmlNodePtr  root,
                pixdata = g_new0 (GdkPixdata, 1);
                gdk_pixdata_from_pixbuf (pixdata, pixbuf, FALSE);
                stream = gdk_pixdata_serialize (pixdata, &stream_length);
-               base64 = gl_base64_encode (stream, stream_length);
+               base64 = g_base64_encode (stream, stream_length);
 
-               node = xmlNewChild (root, ns, (xmlChar *)"Pixdata", (xmlChar *)base64);
+               node = xmlNewChild (parent, ns, (xmlChar *)"Pixdata", (xmlChar *)base64);
                lgl_xml_set_prop_string (node, "name", name);
                lgl_xml_set_prop_string (node, "encoding", "Base64");
 
@@ -1668,11 +1778,49 @@ xml_create_pixdata (xmlNodePtr  root,
        gl_debug (DEBUG_XML, "END");
 }
 
+
+/*--------------------------------------------------------------------------*/
+/* PRIVATE.  Add XML Label Data embedded SVG file Node                      */
+/*--------------------------------------------------------------------------*/
+static void
+xml_create_file_svg (xmlDocPtr   doc,
+                     xmlNodePtr  parent,
+                     xmlNsPtr    ns,
+                     glLabel    *label,
+                     gchar      *name)
+{
+       xmlNodePtr  node;
+       xmlNodePtr  cdata_section_node;
+       GHashTable *svg_cache;
+        gchar      *svg_data;
+
+       gl_debug (DEBUG_XML, "START");
+
+       svg_cache = gl_label_get_svg_cache (label);
+
+       svg_data = gl_svg_cache_get_contents (svg_cache, name);
+       if ( svg_data != NULL ) {
+
+               node = xmlNewChild (parent, ns, (xmlChar *)"File", NULL);
+               lgl_xml_set_prop_string (node, "name", name);
+               lgl_xml_set_prop_string (node, "format", "SVG");
+
+                cdata_section_node = xmlNewCDataBlock (doc, (xmlChar *)svg_data, strlen (svg_data));
+                xmlAddChild (node, cdata_section_node);
+
+               g_free (svg_data);
+       }
+
+
+       gl_debug (DEBUG_XML, "END");
+}
+
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Create top-level Span node.                                    */
 /*--------------------------------------------------------------------------*/
 static void
-xml_create_toplevel_span (xmlNodePtr        root,
+xml_create_toplevel_span (xmlNodePtr        parent,
                          xmlNsPtr          ns,
                          glLabelText      *object_text)
 {
@@ -1688,7 +1836,7 @@ xml_create_toplevel_span (xmlNodePtr        root,
        glTextNode       *text_node;
        xmlNodePtr        child;
 
-       node = xmlNewChild (root, ns, (xmlChar *)"Span", NULL);
+       node = xmlNewChild (parent, ns, (xmlChar *)"Span", NULL);
 
        /* All span attrs at top level. */
        font_family = gl_label_object_get_font_family (GL_LABEL_OBJECT(object_text));
@@ -1711,7 +1859,7 @@ xml_create_toplevel_span (xmlNodePtr        root,
        align = gl_label_object_get_text_alignment (GL_LABEL_OBJECT(object_text));
        lgl_xml_set_prop_string (node, "font_family", font_family);
        lgl_xml_set_prop_double (node, "font_size", font_size);
-       lgl_xml_set_prop_string (node, "font_weight", gl_util_weight_to_string (font_weight));
+       lgl_xml_set_prop_string (node, "font_weight", gl_str_util_weight_to_string (font_weight));
        lgl_xml_set_prop_boolean (node, "font_italic", font_italic_flag);
        
        lgl_xml_set_prop_double (node, "line_spacing", text_line_spacing);
@@ -1744,6 +1892,7 @@ xml_create_toplevel_span (xmlNodePtr        root,
 
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Create affine attributes.                                      */
 /*--------------------------------------------------------------------------*/
@@ -1763,6 +1912,7 @@ xml_create_affine_attrs (xmlNodePtr        node,
        lgl_xml_set_prop_double (node, "a5", matrix.y0);
 }
 
+
 /*--------------------------------------------------------------------------*/
 /* PRIVATE.  Create shadow attributes.                                      */
 /*--------------------------------------------------------------------------*/
@@ -1803,3 +1953,12 @@ xml_create_shadow_attrs (xmlNodePtr        node,
 }
 
 
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
index 5c5f0c37f16ff3234bded2d9dc6f38cde6e4b90d..6429d4b82dd2d019ed7d4ce3a451d2eb13d9e997 100644 (file)
@@ -1,26 +1,23 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
 /*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  xml-label.h:  GLabels xml label module header file
+ *  xml-label.h
+ *  Copyright (C) 2001-2009  Jim Evins <evins@snaught.com>.
  *
- *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
+ *  This file is part of gLabels.
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  gLabels is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
- *  This program is distributed in the hope that it will be useful,
+ *  gLabels is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *  along with gLabels.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #ifndef __XML_LABEL_H__
 #define __XML_LABEL_H__
 
@@ -33,7 +30,7 @@ typedef enum {
        XML_LABEL_UNKNOWN_MEDIA = 1,
        XML_LABEL_OK = 0,
        XML_LABEL_ERROR_OPEN_PARSE = -10,
-       XML_LABEL_ERROR_SAVE_FILE = -20,
+       XML_LABEL_ERROR_SAVE_FILE = -20
 } glXMLLabelStatus;
 
 
@@ -53,3 +50,14 @@ G_END_DECLS
 
 
 #endif /* __XML_LABEL_H__ */
+
+
+
+/*
+ * Local Variables:       -- emacs
+ * mode: C                -- emacs
+ * c-basic-offset: 8      -- emacs
+ * tab-width: 8           -- emacs
+ * indent-tabs-mode: nil  -- emacs
+ * End:                   -- emacs
+ */
diff --git a/templates/Makefile.am b/templates/Makefile.am
new file mode 100644 (file)
index 0000000..c14ece9
--- /dev/null
@@ -0,0 +1,39 @@
+## Process this file with automake to produce Makefile.in
+
+dtddir = $(datadir)/$(LIBGLABELS_BRANCH)/dtd
+
+dtd_DATA = \
+       glabels-3.0.dtd
+
+templatesdir = $(datadir)/$(LIBGLABELS_BRANCH)/templates
+
+templates_DATA = \
+       paper-sizes.xml \
+       categories.xml \
+       vendors.xml \
+       ascom-iso-templates.xml \
+       avery-us-templates.xml \
+       avery-iso-templates.xml \
+       avery-other-templates.xml \
+       brother-other-templates.xml \
+       databecker-iso-templates.xml \
+       dataline-iso-templates.xml      \
+       decadry-iso-templates.xml \
+       dymo-other-templates.xml \
+       geha-iso-templates.xml  \
+       hama-iso-templates.xml  \
+       herma-iso-templates.xml \
+       jac-iso-templates.xml \
+       maco-us-templates.xml \
+       meritline-us-templates.xml \
+       misc-us-templates.xml \
+       misc-iso-templates.xml \
+       misc-other-templates.xml \
+       pearl-iso-templates.xml \
+       uline-us-templates.xml \
+       worldlabel-us-templates.xml \
+       zweckform-iso-templates.xml
+
+EXTRA_DIST = $(templates_DATA) $(dtd_DATA)
+
+
diff --git a/templates/Makefile.in b/templates/Makefile.in
new file mode 100644 (file)
index 0000000..6adf723
--- /dev/null
@@ -0,0 +1,533 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = templates
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(dtddir)" "$(DESTDIR)$(templatesdir)"
+DATA = $(dtd_DATA) $(templates_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CAIRO_REQUIRED = @CAIRO_REQUIRED@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DLLTOOL = @DLLTOOL@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLABELS_BRANCH = @GLABELS_BRANCH@
+GLABELS_CFLAGS = @GLABELS_CFLAGS@
+GLABELS_LIBS = @GLABELS_LIBS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_REQUIRED = @GLIB_REQUIRED@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GTK_REQUIRED = @GTK_REQUIRED@
+GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@
+HELP_DIR = @HELP_DIR@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@
+LIBBARCODE_LIBS = @LIBBARCODE_LIBS@
+LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@
+LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@
+LIBEBOOK_LIBS = @LIBEBOOK_LIBS@
+LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@
+LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@
+LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@
+LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@
+LIBGLABELS_LIBS = @LIBGLABELS_LIBS@
+LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@
+LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@
+LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@
+LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@
+LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@
+LIBIEC16022_LIBS = @LIBIEC16022_LIBS@
+LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@
+LIBOBJS = @LIBOBJS@
+LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@
+LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@
+LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@
+LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_REQUIRED = @LIBXML_REQUIRED@
+LIBZINT_CFLAGS = @LIBZINT_CFLAGS@
+LIBZINT_LIBS = @LIBZINT_LIBS@
+LIBZINT_REQUIRED = @LIBZINT_REQUIRED@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_REQUIRED = @PANGO_REQUIRED@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+dtddir = $(datadir)/$(LIBGLABELS_BRANCH)/dtd
+dtd_DATA = \
+       glabels-3.0.dtd
+
+templatesdir = $(datadir)/$(LIBGLABELS_BRANCH)/templates
+templates_DATA = \
+       paper-sizes.xml \
+       categories.xml \
+       vendors.xml \
+       ascom-iso-templates.xml \
+       avery-us-templates.xml \
+       avery-iso-templates.xml \
+       avery-other-templates.xml \
+       brother-other-templates.xml \
+       databecker-iso-templates.xml \
+       dataline-iso-templates.xml      \
+       decadry-iso-templates.xml \
+       dymo-other-templates.xml \
+       geha-iso-templates.xml  \
+       hama-iso-templates.xml  \
+       herma-iso-templates.xml \
+       jac-iso-templates.xml \
+       maco-us-templates.xml \
+       meritline-us-templates.xml \
+       misc-us-templates.xml \
+       misc-iso-templates.xml \
+       misc-other-templates.xml \
+       pearl-iso-templates.xml \
+       uline-us-templates.xml \
+       worldlabel-us-templates.xml \
+       zweckform-iso-templates.xml
+
+EXTRA_DIST = $(templates_DATA) $(dtd_DATA)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu templates/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu templates/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-dtdDATA: $(dtd_DATA)
+       @$(NORMAL_INSTALL)
+       test -z "$(dtddir)" || $(MKDIR_P) "$(DESTDIR)$(dtddir)"
+       @list='$(dtd_DATA)'; test -n "$(dtddir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dtddir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(dtddir)" || exit $$?; \
+       done
+
+uninstall-dtdDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(dtd_DATA)'; test -n "$(dtddir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(dtddir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(dtddir)" && rm -f $$files
+install-templatesDATA: $(templates_DATA)
+       @$(NORMAL_INSTALL)
+       test -z "$(templatesdir)" || $(MKDIR_P) "$(DESTDIR)$(templatesdir)"
+       @list='$(templates_DATA)'; test -n "$(templatesdir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(templatesdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(templatesdir)" || exit $$?; \
+       done
+
+uninstall-templatesDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(templates_DATA)'; test -n "$(templatesdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(templatesdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(templatesdir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(dtddir)" "$(DESTDIR)$(templatesdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-dtdDATA install-templatesDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-dtdDATA uninstall-templatesDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+       distclean distclean-generic distclean-libtool distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-data install-data-am install-dtdDATA install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip install-templatesDATA installcheck \
+       installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+       uninstall-dtdDATA uninstall-templatesDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/templates/ascom-iso-templates.xml b/templates/ascom-iso-templates.xml
new file mode 100644 (file)
index 0000000..57534cf
--- /dev/null
@@ -0,0 +1,353 @@
+<?xml version="1.0"?>
+
+<Glabels-templates xmlns="http://glabels.org/xmlns/3.0/">
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Ascom                     -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- Ascom was bought some years ago by Hovat.               -->
+  <!-- Label data are now available from the following URL:    -->
+  <!-- http://www.hovat.co.uk/office_templates.zip             -->
+
+  <!-- =================================================================== -->
+  <!-- Ascom A4/24/MKII: Rectangular Labels, 24 per sheet                  -->
+  <!-- =================================================================== -->
+  <!-- TODO: Is this the real part #? -->
+  <Template brand="Ascom" part="A4/24/MKII" size="A4" _description="Rectangular Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="181" height="96" round="10">
+      <Markup-margin size="5"/>
+      <Layout nx="3" ny="8" x0="19" y0="36" dx="187" dy="96"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-236: Rectangular Labels, 1 per sheet                     -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-236" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="200mm" height="287mm" round="0mm" x_waste="5mm" y_waste="5mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="1" ny="1" x0="5mm" y0="5mm" dx="210mm" dy="297mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Ascom" part="ABP-237" equiv="ABP-236"/>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-238: Rectangular Labels, 4 per sheet                     -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-238" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="101mm" height="143.5mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="2" x0="4mm" y0="5mm" dx="101mm" dy="143.5mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-239: Rectangular Labels, 6 per sheet                     -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-239" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="101mm" height="93mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="3" x0="4mm" y0="9mm" dx="101mm" dy="93mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-240: Rectangular Labels, 8 per sheet                     -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-240" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="99mm" height="68mm" round="0mm" x_waste="1.2mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="4" x0="5mm" y0="14mm" dx="102mm" dy="68mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-241: Rectangular Labels, 6 per sheet                     -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-241" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="101mm" height="68mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="4" x0="4mm" y0="12.5mm" dx="101mm" dy="68mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-243: Rectangular Labels, 10 per sheet                    -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-243" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="99mm" height="57mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="5" x0="6mm" y0="6mm" dx="99mm" dy="57mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-244: Rectangular Labels, 12 per sheet                    -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-244" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="63.5mm" height="72mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="3" ny="4" x0="6.8mm" y0="4.5mm" dx="66.5mm" dy="72mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-251: Rectangular Labels, 16 per sheet                    -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-251" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="47mm" height="66mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="4" ny="4" x0="11mm" y0="16.5mm" dx="47mm" dy="66mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-256: Rectangular Labels, 30 per sheet                    -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-256" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="65.5mm" height="28mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="3" ny="10" x0="6.5mm" y0="8.5mm" dx="65.5mm" dy="28mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-416: Rectangular Labels, 24 per sheet                    -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-416" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="66.5mm" height="34mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="3" ny="8" x0="5.5mm" y0="12.5mm" dx="66.5mm" dy="34mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-420: Rectangular Labels, 14 per sheet                    -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-420" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="98.5mm" height="38mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="7" x0="5mm" y0="15.5mm" dx="101.5mm" dy="38mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Ascom" part="ABP-421" equiv="ABP-420"/>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-422: Rectangular Labels, 16 per sheet                    -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-422" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="98.5mm" height="34mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="8" x0="5mm" y0="12.5mm" dx="101.5mm" dy="34mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Ascom" part="ABP-423" equiv="ABP-422"/>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-424: Rectangular Labels, 16 per sheet                    -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-424" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="66mm" height="38mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="3" ny="7" x0="6mm" y0="12.5mm" dx="66mm" dy="38mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Ascom" part="ABP-425" equiv="ABP-424"/>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-426: Rectangular Labels, 70 per sheet                    -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-426" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="38mm" height="19.5mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="5" ny="14" x0="5mm" y0="12mm" dx="40.5mm" dy="19.5mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-427: Rectangular Labels, 24 per sheet                    -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-427" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="66mm" height="34mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="3" ny="8" x0="6mm" y0="12.5mm" dx="66mm" dy="34mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-428: Rectangular Labels, 80 per sheet                    -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-428" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="38mm" height="21.2mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="5" ny="13" x0="5mm" y0="10.7mm" dx="40.5mm" dy="21.2mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-501: Rectangular Labels, 10 per sheet                    -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-501" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="70mm" height="52mm" round="0mm" x_waste="11.5mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="5" x0="23.5mm" y0="18.5mm" dx="93mm" dy="52mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-502: Rectangular Labels, 4 per sheet                     -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-502" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="200mm" height="60mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="1" ny="4" x0="5mm" y0="28.5mm" dx="200mm" dy="60mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-505: Rectangular Labels, 18 per sheet                    -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-505" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="102mm" height="30mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="2" ny="9" x0="3mm" y0="13.5mm" dx="102mm" dy="30mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-507: Rectangular Labels, 12 per sheet                    -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-507" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="76mm" height="46.5mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="6" x0="27.5mm" y0="9mm" dx="79mm" dy="46.5mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-508: Video Tape Spine Labels, 16 per sheet               -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-508" size="A4" _description="Video Tape Spine Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="145mm" height="17mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="1" ny="16" x0="32.5mm" y0="14mm" dx="145mm" dy="17mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-509: Rectangular Labels, 12 per sheet                    -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-509" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="88.5mm" height="42mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="6" x0="15mm" y0="22.5mm" dx="91.5mm" dy="42mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-510: Rectangular Labels, 84 per sheet                    -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-510" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="46mm" height="12.7mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="4" ny="21" x0="6mm" y0="16mm" dx="50.7mm" dy="12.7mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-515: CD inlet, 2 per sheet                               -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-515" size="A4" _description="CD Inlet">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="34mm" height="114mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="1" ny="2" x0="165.5mm" y0="17.5mm" dx="34mm" dy="149mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-518: Rectangular Labels, 24 per sheet                    -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-518" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="76.5mm" height="21.5mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="2" ny="12" x0="21.5mm" y0="21.5mm" dx="76.5mm" dy="21.5mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Ascom ABP-519: Rectangular Labels, 36 per sheet                    -->
+  <!-- =================================================================== -->
+  <Template brand="Ascom" part="ABP-519" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="70mm" height="24.75mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="3" ny="12" x0="0mm" y0="0mm" dx="70mm" dy="24.75mm"/>
+    </Label-rectangle>
+  </Template>
+
+
+</Glabels-templates>
+
+
+
+
diff --git a/templates/avery-iso-templates.xml b/templates/avery-iso-templates.xml
new file mode 100644 (file)
index 0000000..c0ebfc1
--- /dev/null
@@ -0,0 +1,395 @@
+<?xml version="1.0"?>
+
+<Glabels-templates>
+
+
+  <!-- ******************************************************************** -->
+  <!-- ******************************************************************** -->
+  <!--                                                                      -->
+  <!-- Avery A4 products (and look-alikes)                                  -->
+  <!--                                                                      -->
+  <!-- ******************************************************************** -->
+  <!-- ******************************************************************** -->
+
+
+  <!-- =================================================================== -->
+  <!-- Avery L4732 family: Mini Labels                                     -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="L4732" size="A4" _description="Mini Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="35.6mm" height="16.9mm" round="1.5mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="1mm"/>
+      <Layout nx="5" ny="16" x0="11mm" y0="13mm" dx="38.1mm" dy="16.9mm"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery L4770 family: Mini Labels                                     -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="L4770" size="A4" _description="Mini Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="45.7mm" height="25.4mm" round="1.5mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="1mm"/>
+      <Layout nx="4" ny="10" x0="10mm" y0="22mm" dx="48.5mm" dy="25.4mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="J8654" equiv="L4770"/>
+  <Template brand="Avery" part="L6140" equiv="L4770"/>
+  <Template brand="Avery" part="L6145" equiv="L4770"/>
+  <Template brand="Avery" part="L7654" equiv="L4770"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery L6015 family: CD/DVD Labels, 2 per sheet                      -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="L6015" size="A4" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="165.827pt" hole="58.1102pt" waste="9.07087pt">
+      <Markup-margin size="9pt"/>
+      <Layout nx="1" ny="2" x0="131.811pt" y0="60.6614pt" dx="349.795pt" dy="392.4pt"/>
+    </Label-cd>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 6121 family: Allround labels.                                 -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="6121" size="A4" _description="Allround labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="107.928pt" height="60.12pt" round="0pt" x_waste="0pt" y_waste="0pt">
+      <Markup-margin size="8.496pt"/>
+      <Layout nx="5" ny="13" x0="26.928pt" y0="29.736pt" dx="107.928pt" dy="60.12pt"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 7160 family: Mailing labels, 63.5 x 38.1 mm, 21 per sheet     -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="7160" size="A4" _description="Mailing labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="181.4" height="108.0" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="3" ny="7" x0="21.2" y0="43.9" dx="187.2" dy="108.0"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="L7160" equiv="7160"/>
+  <Template brand="Avery" part="J8160" equiv="7160"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 7161 family: Mailing labels, 63.5 x 46.6 mm, 18 per sheet     -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="7161" size="A4" _description="Mailing labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="180.2" height="132.6" round="7">
+      <Markup-margin size="5"/>
+      <Layout nx="3" ny="6" x0="21" y0="23" dx="186.9" dy="132.5"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="L7161" equiv="7161"/>
+  <Template brand="Avery" part="J8161" equiv="7161"/>
+
+
+  <!-- ================================================================== -->  
+  <!-- Avery 7162 family: Mailing labels, 99.1 x 33.9 mm, 16 per sheet    -->  
+  <!-- ================================================================== -->  
+  <Template brand="Avery" part="7162" size="A4" _description="Mailing labels">  
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="280.9" height="96.1" round="5">  
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="8" x0="11.3" y0="36.8" dx="290.5" dy="96.1"/>  
+    </Label-rectangle>  
+  </Template>
+
+  <Template brand="Avery" part="L7162" equiv="7162"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 7163 family: Mailing labels, 99.1 x 38.1 mm, 14 per sheet     -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="7163" size="A4" _description="Mailing labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="280.9" height="108" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="7" x0="9.5" y0="43" dx="292" dy="108"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="L7163" equiv="7163"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 7164 family: Address labels, 63.50 x 71.98 mm, 12 per sheet   -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="7164" size="A4" _description="Address labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="180" height="204.038" round="8.5">
+      <Markup-margin size="5"/>
+      <Layout nx="3" ny="4" x0="20.84" y0="10" dx="187.08" dy="204.038"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="L7164" equiv="7164"/>
+  <Template brand="Avery" part="J8164" equiv="7164"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 7165 family: Address labels                                   -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="7165" size="A4" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="280.8pt" height="191.991pt" round="0pt" waste="0pt">
+      <Markup-margin size="5.66929pt"/>
+      <Layout nx="2" ny="4" x0="13.2378pt" y0="36.9638pt" dx="288.113pt" dy="191.991pt"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="L7165" equiv="7165"/>
+  <Template brand="Avery" part="J8165" equiv="7165"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 7169 family: shipping labels, 99.1 x 139.0 mm, 4 per sheet    -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="7169" size="A4" _description="Shipping labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="280.9" height="394.0" round="6">
+      <Markup-margin size="6"/>
+      <Layout nx="2" ny="2" x0="14.2" y0="20.0" dx="287.7" dy="394.0"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="L7169" equiv="7169"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 7414 family: Business Cards, 52mm x 90mm, 10 per sheet        -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="7414" size="A4" _description="Business Cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Label-rectangle id="0" width="255.1" height="147.4" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="5" x0="42.51" y0="52.44" dx="255.1" dy="147.4"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="L7414" equiv="7414"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 7664 family: Diskette Labels, 70mm x 71.9 mm, 8 per sheet     -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="7664" size="A4" _description="Diskette Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="70mm" height="71.9mm" round="2.5mm">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="4" x0="17mm" y0="5mm" dx="104.5mm" dy="72mm"/> 
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="L7664" equiv="7664"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery L7676 family: CD/DVD Labels, 2 per sheet                      -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="L7676" size="A4" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="165.827pt" hole="24.9449pt" waste="5.66929pt">
+      <Markup-margin size="5.66929pt"/>
+      <Layout nx="1" ny="2" x0="131.811pt" y0="62.3622pt" dx="342.992pt" dy="388.346pt"/>
+    </Label-cd>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Avery J8157: Mailing Labels, 33 per sheet                          -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="J8157" size="A4" _description="Mailing Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="64mm" height="24.3mm" round="3mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="3" ny="11" x0="6.0mm" y0="14.0mm" dx="66.5mm" dy="24.3mm"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 8414 family: Business Cards, 50.8 x 87.0 mm, 10 per sheet     -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="8414" size="A4" _description="Business Cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Label-rectangle id="0" width="246.6" height="144" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="5" x0="42" y0="57.890" dx="264" dy="144"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="J8414" equiv="8414"/>
+
+
+  <!-- =============================================================== -->
+  <!-- Avery J8435: CD Inlets Booklet part                             -->
+  <!-- =============================================================== -->
+  <Template brand="Avery" part="8435A" size="A4" _description="CD Booklet">
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="155mm" height="125mm" round="0">
+      <Markup-margin size="2mm"/>
+      <Markup-line x1="32mm" y1="0mm" x2="32mm" y2="125mm"/>
+      <Layout nx="1" ny="1" x0="27.5mm" y0="22mm" dx="155mm" dy="125mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="J8435A" equiv="8435A"/>
+  <Template brand="Avery" part="32250A" equiv="8435A"/>
+
+
+  <!-- =============================================================== -->
+  <!-- Avery J8435: CD Inlets Inlet part                           -->
+  <!-- =============================================================== -->
+  <Template brand="Avery" part="8435B" size="A4" _description="CD Inlet">
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="155mm" height="122mm" round="0">
+      <Markup-margin size="2mm"/>
+      <Markup-line x1="8.5mm" y1="0mm" x2="8.5mm" y2="122mm"/>
+      <Markup-line x1="146.5mm" y1="0mm" x2="146.5mm" y2="122mm"/>
+      <Layout nx="1" ny="1" x0="27.5mm" y0="21mm" dx="155mm" dy="122mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="J8435B" equiv="8435B"/>
+  <Template brand="Avery" part="32250B" equiv="8435B"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 8651 family: Mailing labels, 38.1 x 21.2 mm, 65 per sheet     -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="8651" size="A4" _description="Mini Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="108" height="60.09" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="5" ny="13" x0="13.32" y0="30.90" dx="115.09" dy="60.09"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="L8651" equiv="8651"/>
+  <Template brand="Avery" part="J8651" equiv="8651"/>
+  <Template brand="Avery" part="J8551" equiv="8651"/>
+  <Template brand="Avery" part="L7651" equiv="8651"/>
+  <Template brand="Avery" part="L7551" equiv="8651"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 8658 family: Identification labels                            -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="8658" size="A4" _description="Identification Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="25.4mm" height="10mm" round="1mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="7" ny="27" x0="5mm" y0="13mm" dx="28.5mm" dy="10.14mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="J8658" equiv="8658" />
+  <Template brand="Avery" part="L8658" equiv="8658" />
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 8666 family: Diskette labels (face only), 70 x 52 mm, 10 per  -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="8666" size="A4" _description="Diskette labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="198.4" height="147.4" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="5" x0="66" y0="53" dx="264" dy="147"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="J8666" equiv="8666" />
+
+
+  <!-- =============================================================== -->
+  <!-- Avery J8676A: CD/DVD Labels 2 per sheet                         -->
+  <!-- =============================================================== -->
+  <Template brand="Avery" part="8676" size="A4" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="166.5" hole="17" waste="5">
+      <Markup-margin size="5"/>
+      <Layout nx="1" ny="2" x0="130" y0="59.5" dx="0" dy="388"/>        
+    </Label-cd>
+  </Template>
+
+  <Template brand="Avery" part="J8676" equiv="8676" />
+
+
+  <!-- =============================================================== -->
+  <!-- Avery 18036 Mailing Labels, 70mm x 32mm, 27 per sheet           -->
+  <!-- =============================================================== -->
+  <Template brand="Avery" part="18036" size="A4" _description="Mailing Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="198" height="91" round="0">
+      <Markup-margin size="10"/>
+      <Layout nx="3" ny="9" x0="0" y0="13" dx="198" dy="91"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- ============================================================ -->
+  <!-- Avery 32015: Business Cards                                  -->
+  <!-- ============================================================ -->
+  <Template brand="Avery" part="32015" size="A4" _description="Business Cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Label-rectangle id="0" width="85mm" height="54mm" round="0mm">
+      <Markup-margin size="5mm"/>
+      <Layout nx="2" ny="4" x0="17mm" y0="31.5mm" dx="91mm" dy="60mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="C32015" equiv="32015" />
+
+
+  <!-- ============================================================ -->
+  <!-- Avery 38931 Family: Rectangular Labels                       -->
+  <!-- ============================================================ -->
+  <Template brand="Avery" part="38931" size="A4" _description="Rectangular Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="70mm" height="25mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3mm"/>
+      <Layout nx="3" ny="11" x0="0mm" y0="10mm" dx="70mm" dy="25mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="DL33" equiv="38931"/>
+  <Template brand="Avery" part="CR33" equiv="38931"/>
+
+
+</Glabels-templates>
+
+
+
+
diff --git a/templates/avery-other-templates.xml b/templates/avery-other-templates.xml
new file mode 100644 (file)
index 0000000..bb21ef6
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+
+<Glabels-templates>
+
+
+  <!-- ******************************************************************** -->
+  <!-- Avery non-standard size products (not US-Letter/Legal or ISO)        -->
+  <!-- ******************************************************************** -->
+
+  <!-- =================================================================== -->
+  <!-- Avery 6141 family: File Folder Labels, 5/8'' x 2_3/4'', 7 per sheet -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="6141" size="Other" width="207pt" height="351pt"
+            _description="File Folder Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="198pt" height="45pt" round="4.5pt" waste="0pt">
+      <Markup-margin size="4.5pt"/>
+      <Layout nx="1" ny="7" x0="4.5pt" y0="4.5pt" dx="198pt" dy="49.5pt"/>
+    </Label-rectangle>
+  </Template>
+
+
+</Glabels-templates>
diff --git a/templates/avery-us-templates.xml b/templates/avery-us-templates.xml
new file mode 100644 (file)
index 0000000..3f20820
--- /dev/null
@@ -0,0 +1,890 @@
+<?xml version="1.0"?>
+
+<Glabels-templates>
+
+
+  <!-- ******************************************************************** -->
+  <!-- ******************************************************************** -->
+  <!--                                                                      -->
+  <!-- Avery US-Letter products (and look-alikes)                           -->
+  <!--                                                                      -->
+  <!-- ******************************************************************** -->
+  <!-- ******************************************************************** -->
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 3274.1 family: Square stickers, 2_1/2'' x 2_1/2, 9 per sheetx  -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="3274.1" size="US-Letter" _description="Square Labels">
+    <Meta category="label"/>
+    <Meta category="square-label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="2.5in" height="2.5in" round="0">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="3" ny="3" x0="0.3125in" y0="1.25in" dx="2.6875in" dy="3in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="3111" equiv="3274.1"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 3274.2 family: Small round stickers, 1_1/2'', 20 per sheet  x -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="3274.2" size="US-Letter" _description="Small Round Labels">
+    <Meta category="label"/>
+    <Meta category="round-label"/>
+    <Label-round id="0" radius="0.75in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="4" ny="5" x0="0.5in" y0="0.75in" dx="2in" dy="2in"/>
+    </Label-round>
+  </Template>
+
+  <Template brand="Avery" part="3112" equiv="3274.2"/>
+  <Template brand="Avery" part="8293" equiv="3274.2"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 3274.3 family: Large round stickers, 2_1/2'', 9 per sheet   x -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="3274.3" size="US-Letter" _description="Large Round Labels">
+    <Meta category="label"/>
+    <Meta category="round-label"/>
+    <Label-round id="0" radius="1.25in">
+      <Markup-margin size="5"/>
+      <Layout nx="3" ny="3" x0="0.3125in" y0="1.25in" dx="2.6875in" dy="3in"/>
+    </Label-round>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Avery 5026 family: File folder labels.                              -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5026" size="US-Letter" _description="File Folder Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="3.4375in" height="0.9375in" round="0.0625in" waste="5pt">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="9" x0="0.49755in" y0="0.51125in" dx="4.0674in" dy="1.13in"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Avery 5126 family: Shipping Labels.                                 -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5126" size="US-Letter" _description="Shipping Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="8.5in" height="5.5in" round="0in" x_waste="0in" y_waste="0in">
+      <Markup-margin size="9pt"/>
+      <Layout nx="1" ny="2" x0="0in" y0="0in" dx="0in" dy="5.5in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="5526" equiv="5126"/>
+  <Template brand="Avery" part="8126" equiv="5126"/>
+  <Template brand="Avery" part="15516" equiv="5126"/>
+  <Template brand="Avery" part="18126" equiv="5126"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5159 family: Address Labels, 1_1/2'' x 4'', 14 per sheet      -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5159" size="US-Letter" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="4in" height="1.5in" round="0.0625in" waste="0in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="7" x0="0.15625in" y0="0.25in" dx="4.1875in" dy="1.5in"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5160 family: Address Labels, 2_5/8'' x 1'', 20 per sheet      -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5160" size="US-Letter" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="2.625in" height="1in" round="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="3" ny="10" x0="0.1875in" y0="0.5in" dx="2.75in" dy="1in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="5260" equiv="5160"/>
+  <Template brand="Avery" part="5510" equiv="5160"/>
+  <Template brand="Avery" part="5520" equiv="5160"/>
+  <Template brand="Avery" part="5560" equiv="5160"/>
+  <Template brand="Avery" part="5810" equiv="5160"/>
+  <Template brand="Avery" part="5920" equiv="5160"/>
+  <Template brand="Avery" part="5960" equiv="5160"/>
+  <Template brand="Avery" part="5970" equiv="5160"/>
+  <Template brand="Avery" part="5971" equiv="5160"/>
+  <Template brand="Avery" part="5972" equiv="5160"/>
+  <Template brand="Avery" part="5979" equiv="5160"/>
+  <Template brand="Avery" part="5980" equiv="5160"/>
+  <Template brand="Avery" part="6231" equiv="5160"/>
+  <Template brand="Avery" part="6233" equiv="5160"/>
+  <Template brand="Avery" part="6245" equiv="5160"/>
+  <Template brand="Avery" part="6460" equiv="5160"/>
+  <Template brand="Avery" part="6498" equiv="5160"/>
+  <Template brand="Avery" part="8160" equiv="5160"/>
+  <Template brand="Avery" part="8250" equiv="5160"/>
+  <Template brand="Avery" part="8460" equiv="5160"/>
+  <Template brand="Avery" part="8560" equiv="5160"/>
+  <Template brand="Avery" part="8620" equiv="5160"/>
+  <Template brand="Avery" part="8660" equiv="5160"/>
+  <Template brand="Avery" part="8810" equiv="5160"/>
+  <Template brand="Avery" part="8920" equiv="5160"/>
+  <Template brand="Avery" part="8930" equiv="5160"/>
+  <Template brand="Avery" part="15160" equiv="5160"/>
+  <Template brand="Avery" part="18160" equiv="5160"/>
+  <Template brand="Avery" part="18660" equiv="5160"/>
+  <Template brand="Avery" part="25160" equiv="5160"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5161 family: Address Labels, 1'' x 4'', 20 per sheet        x -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5161" size="US-Letter" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="4in" height="1in" round="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="10" x0="0.15625in" y0="0.5in" dx="4.1875in" dy="1in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="5261" equiv="5161"/>
+  <Template brand="Avery" part="5961" equiv="5161"/>
+  <Template brand="Avery" part="8161" equiv="5161"/>
+  <Template brand="Avery" part="8461" equiv="5161"/>
+  <Template brand="Avery" part="18161" equiv="5161"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5162 family: Address Labels, 1_1/3'' x 4'', 14 per sheet    x -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5162" size="US-Letter" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="4in" height="1.333333333in" round="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="7"
+              x0="0.15625in" y0="0.833333333in" dx="4.1875in" dy="1.333333333in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="5262" equiv="5162"/>
+  <Template brand="Avery" part="5512" equiv="5162"/>
+  <Template brand="Avery" part="5522" equiv="5162"/>
+  <Template brand="Avery" part="5922" equiv="5162"/>
+  <Template brand="Avery" part="5962" equiv="5162"/>
+  <Template brand="Avery" part="8162" equiv="5162"/>
+  <Template brand="Avery" part="8252" equiv="5162"/>
+  <Template brand="Avery" part="8462" equiv="5162"/>
+  <Template brand="Avery" part="8662" equiv="5162"/>
+  <Template brand="Avery" part="8922" equiv="5162"/>
+  <Template brand="Avery" part="8932" equiv="5162"/>
+  <Template brand="Avery" part="15162" equiv="5162"/>
+  <Template brand="Avery" part="18162" equiv="5162"/>
+  <Template brand="Avery" part="18662" equiv="5162"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5163 family: Shipping Labels, 4'' x 2'', 10 per sheet       x -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5163" size="US-Letter" _description="Shipping Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="4in" height="2in" round="0.125in">
+      <Markup-margin size="0.125in"/>
+      <Layout nx="2" ny="5" x0="0.1625in" y0="0.5in" dx="4.1875in" dy="2in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="5263" equiv="5163"/>
+  <Template brand="Avery" part="5513" equiv="5163"/>
+  <Template brand="Avery" part="5523" equiv="5163"/>
+  <Template brand="Avery" part="5795" equiv="5163"/>
+  <Template brand="Avery" part="5923" equiv="5163"/>
+  <Template brand="Avery" part="5963" equiv="5163"/>
+  <Template brand="Avery" part="5978" equiv="5163"/>
+  <Template brand="Avery" part="8163" equiv="5163"/>
+  <Template brand="Avery" part="8253" equiv="5163"/>
+  <Template brand="Avery" part="8463" equiv="5163"/>
+  <Template brand="Avery" part="8663" equiv="5163"/>
+  <Template brand="Avery" part="8763" equiv="5163"/>
+  <Template brand="Avery" part="8923" equiv="5163"/>
+  <Template brand="Avery" part="15163" equiv="5163"/>
+  <Template brand="Avery" part="18163" equiv="5163"/>
+  <Template brand="Avery" part="18663" equiv="5163"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5164 family: Shipping Labels. 4'' x 3_1/3'', 6 per sheet    x -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5164" size="US-Letter" _description="Shipping Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="4in" height="3.333333333in" round="0.125in">
+      <Markup-margin size="0.125in"/>
+      <Layout nx="2" ny="3" x0="0.15625in" y0="0.5in" dx="4.1875in" dy="3.333333333in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="5264" equiv="5164"/>
+  <Template brand="Avery" part="5514" equiv="5164"/>
+  <Template brand="Avery" part="5524" equiv="5164"/>
+  <Template brand="Avery" part="6464" equiv="5164"/>
+  <Template brand="Avery" part="6499" equiv="5164"/>
+  <Template brand="Avery" part="8164" equiv="5164"/>
+  <Template brand="Avery" part="8254" equiv="5164"/>
+  <Template brand="Avery" part="8464" equiv="5164"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5167 family: Address Labels, 1_3/4'' x 1/2'', 80 per sheet  x -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5167" size="US-Letter" _description="Return Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="1.75in" height="0.5in" round="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="4" ny="20" x0="0.28125in" y0="0.5in" dx="2.0625in" dy="0.5in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="5267" equiv="5167"/>
+  <Template brand="Avery" part="5667" equiv="5167"/>
+  <Template brand="Avery" part="5927" equiv="5167"/>
+  <Template brand="Avery" part="6467" equiv="5167"/>
+  <Template brand="Avery" part="6504" equiv="5167"/>
+  <Template brand="Avery" part="8167" equiv="5167"/>
+  <Template brand="Avery" part="8567" equiv="5167"/>
+  <Template brand="Avery" part="8667" equiv="5167"/>
+  <Template brand="Avery" part="8927" equiv="5167"/>
+  <Template brand="Avery" part="15167" equiv="5167"/>
+  <Template brand="Avery" part="15267" equiv="5167"/>
+  <Template brand="Avery" part="18167" equiv="5167"/>
+  <Template brand="Avery" part="18667" equiv="5167"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5168 family:  Shipping Labels 5'' x 3_1/2'', 4 per sheet      -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5168" size="US-Letter" _description="Shipping Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="3.5in" height="5in" round="0.0625in" waste="0in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="2" x0="0.5in" y0="0.5in" dx="4in" dy="5in"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5193 family: Round Labels                                     -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5193" size="US-Letter" _description="Round Labels">
+    <Meta category="label"/>
+    <Meta category="round-label"/>
+    <Label-round id="0" radius="0.8125in" waste="0pt">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="4" ny="6" x0="0.4157in" y0="0.549in" dx="2.0145in" dy="1.6554in"/>
+    </Label-round>
+  </Template>
+
+  <Template brand="Avery" part="5293" equiv="5193"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5194 family: Round Labels, 12 per sheet.                      -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5194" size="US-Letter" _description="Round Labels">
+    <Meta category="label"/>
+    <Meta category="round-label"/>
+    <Label-round id="0" radius="1.25in" waste="0pt">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="3" ny="4" x0="0.21in" y0="0.425in" dx="2.75in" dy="2.515in"/>
+    </Label-round>
+  </Template>
+
+  <Template brand="Avery" part="5294" equiv="5194"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5195 family: Round Labels                                     -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5195" size="US-Letter" _description="Round Labels">
+    <Meta category="label"/>
+    <Meta category="round-label"/>
+    <Label-round id="0" radius="1.65625in" waste="0pt">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="3" x0="0.6406in" y0="0.4844in" dx="3.9063in" dy="3.3594in"/>
+    </Label-round>
+  </Template>
+
+  <Template brand="Avery" part="5295" equiv="5195"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5196 family: Diskette Labels, 2_3/4'' x 2_3/4'', 9 per sheetx -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5196" size="US-Letter" _description="Diskette Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="2.75in" height="2.75in" round="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="3" ny="3" x0="0.125in" y0="0.5in" dx="2.75in" dy="3in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="5096" equiv="5196"/>
+  <Template brand="Avery" part="5896" equiv="5196"/>
+  <Template brand="Avery" part="5996" equiv="5196"/>
+  <Template brand="Avery" part="8196" equiv="5196"/>
+  <Template brand="Avery" part="8197" equiv="5196"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5197 family: Mailing Labels                                   -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5197" size="US-Letter" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="4in" height="1.5in" round="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="6" x0="0.1875in" y0="1in" dx="4.125in" dy="1.5in"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5305 family: Tent Cards, 2_1/2'' x 8_1/2'', 2 per sheet       -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5305" size="US-Letter" _description="Tent Cards">
+    <Meta category="card"/>
+    <Label-rectangle id="0" width="612pt" height="180pt" round="0pt" x_waste="0pt" y_waste="0pt">
+      <Markup-margin size="27pt"/>
+      <Layout nx="1" ny="2" x0="0pt" y0="216pt" dx="0pt" dy="360pt"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5366 family: Filing Labels, 2/3'' x 3_7/16'', 30 per sheet  x -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5366" size="US-Letter" _description="Filing Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="3.4375in" height="0.666666667in" round="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="15" x0="0.53125in" y0="0.5in" dx="4in" dy="0.666666667in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="5066" equiv="5366"/>
+  <Template brand="Avery" part="5166" equiv="5366"/>
+  <Template brand="Avery" part="5266" equiv="5366"/>
+  <Template brand="Avery" part="5268" equiv="5366"/>
+  <Template brand="Avery" part="5368" equiv="5366"/>
+  <Template brand="Avery" part="5378" equiv="5366"/>
+  <Template brand="Avery" part="5666" equiv="5366"/>
+  <Template brand="Avery" part="5766" equiv="5366"/>
+  <Template brand="Avery" part="5866" equiv="5366"/>
+  <Template brand="Avery" part="5966" equiv="5366"/>
+  <Template brand="Avery" part="6368" equiv="5366"/>
+  <Template brand="Avery" part="6466" equiv="5366"/>
+  <Template brand="Avery" part="6468" equiv="5366"/>
+  <Template brand="Avery" part="6500" equiv="5366"/>
+  <Template brand="Avery" part="6505" equiv="5366"/>
+  <Template brand="Avery" part="6865" equiv="5366"/>
+  <Template brand="Avery" part="8066" equiv="5366"/>
+  <Template brand="Avery" part="8166" equiv="5366"/>
+  <Template brand="Avery" part="8366" equiv="5366"/>
+  <Template brand="Avery" part="8478" equiv="5366"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5371 family: Business Cards, 2'' x 3_1/2'', 10 per sheet    x -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5371" size="US-Letter" _description="Business Cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Label-rectangle id="0" width="3.5in" height="2in" round="0">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="5" x0="0.75in" y0="0.5in" dx="3.5in" dy="2in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="5372" equiv="5371"/>
+  <Template brand="Avery" part="5376" equiv="5371"/>
+  <Template brand="Avery" part="5377" equiv="5371"/>
+  <Template brand="Avery" part="5871" equiv="5371"/>
+  <Template brand="Avery" part="5872" equiv="5371"/>
+  <Template brand="Avery" part="5873" equiv="5371"/>
+  <Template brand="Avery" part="5876" equiv="5371"/>
+  <Template brand="Avery" part="5877" equiv="5371"/>
+  <Template brand="Avery" part="5878" equiv="5371"/>
+  <Template brand="Avery" part="5911" equiv="5371"/>
+  <Template brand="Avery" part="6235" equiv="5371"/>
+  <Template brand="Avery" part="8271" equiv="5371"/>
+  <Template brand="Avery" part="8371" equiv="5371"/>
+  <Template brand="Avery" part="8372" equiv="5371"/>
+  <Template brand="Avery" part="8374" equiv="5371"/>
+  <Template brand="Avery" part="8376" equiv="5371"/>
+  <Template brand="Avery" part="8377" equiv="5371"/>
+  <Template brand="Avery" part="8379" equiv="5371"/>
+  <Template brand="Avery" part="8471" equiv="5371"/>
+  <Template brand="Avery" part="8476" equiv="5371"/>
+  <Template brand="Avery" part="8571" equiv="5371"/>
+  <Template brand="Avery" part="8871" equiv="5371"/>
+  <Template brand="Avery" part="8872" equiv="5371"/>
+  <Template brand="Avery" part="8873" equiv="5371"/>
+  <Template brand="Avery" part="8876" equiv="5371"/>
+  <Template brand="Avery" part="8877" equiv="5371"/>
+  <Template brand="Avery" part="8878" equiv="5371"/>
+  <Template brand="Avery" part="8879" equiv="5371"/>
+  <Template brand="Avery" part="25371" equiv="5371"/>
+  <Template brand="Avery" part="26550" equiv="5371"/>
+  <Template brand="Avery" part="26551" equiv="5371"/>
+  <Template brand="Avery" part="27870" equiv="5371"/>
+  <Template brand="Avery" part="27876" equiv="5371"/>
+  <Template brand="Avery" part="27871" equiv="5371"/>
+  <Template brand="Avery" part="27881" equiv="5371"/>
+  <Template brand="Avery" part="27882" equiv="5371"/>
+  <Template brand="Avery" part="28371" equiv="5371"/>
+  <Template brand="Avery" part="28876" equiv="5371"/>
+  <Template brand="Avery" part="28877" equiv="5371"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5388 family: Index Cards, 5'' x 3'', 3 per sheet              -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5388" size="US-Letter" _description="Index Cards">
+    <Meta category="card"/>
+    <Label-rectangle id="0" width="5in" height="3in" round="0pt" waste="0pt">
+      <Markup-margin size="0.125in"/>
+      <Layout nx="1" ny="3" x0="1.75in" y0="1in" dx="5in" dy="3in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="5386" equiv="5388"/>
+  <Template brand="Avery" part="8388" equiv="5388"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5389 family: Post Cards, 6'' x 4'', 2 per sheet               -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5389" size="US-Letter" _description="Post cards">
+    <Meta category="card"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="6in" height="4in" round="0pt" waste="0pt">
+      <Markup-margin size="0.125in"/>
+      <Layout nx="1" ny="2" x0="1.25in" y0="1.25in" dx="6in" dy="4.5in"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5395 family: Name Badge Labels, 2_1/3'' x 3_3/8'', 8 per sheetx -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5395" size="US-Letter" _description="Name Badge Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="3.375in" height="2.333333333in" round="0.1875in" waste="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="4" x0="0.6875in" y0="0.583333333in" dx="3.75in" dy="2.5in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="5095" equiv="5395"/>
+  <Template brand="Avery" part="5895" equiv="5395"/>
+  <Template brand="Avery" part="8395" equiv="5395"/>
+  <Template brand="Avery" part="15395" equiv="5395"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5663 family: Mailing Labels                                   -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5663" size="US-Letter" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="4.25in" height="2in" round="0in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="5" x0="0in" y0="0.5in" dx="4.25in" dy="2in"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5824 family: CD/DVD Labels (face only), 2 per sheet         * -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5824" size="US-Letter" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="166.5pt" hole="58.5pt" waste="9pt">
+      <Markup-margin size="9pt"/>
+      <Layout nx="1" ny="2" x0="144pt" y0="36pt" dx="351pt" dy="396pt"/>
+    </Label-cd>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5931 family: CD/DVD Labels (face only), 2 per sheet         x -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5931-Disc" size="US-Letter"
+         _description="CD/DVD Labels (Disc Labels)">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="2.3125in" hole="0.8125in" waste="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Markup-line x1="0" y1="2.3125in" x2="1.5in" y2="2.3125in"/>
+      <Markup-line x1="3.125in" y1="2.3125in" x2="4.625in" y2="2.3125in"/>
+      <Markup-line x1="2.3125in" y1="0" x2="2.3125in" y2="1.5in"/>
+      <Markup-line x1="2.3125in" y1="3.125in" x2="2.3125in" y2="4.625in"/>
+      <Layout nx="1" ny="2" x0="1.9375in" y0="0.6875in" dx="0" dy="5in"/>
+    </Label-cd>
+  </Template>
+
+  <Template brand="Avery" part="5691-Disc" equiv="5931-Disc"/>
+  <Template brand="Avery" part="5692-Disc" equiv="5931-Disc"/>
+  <Template brand="Avery" part="5694-Disc" equiv="5931-Disc"/>
+  <Template brand="Avery" part="5698-Disc" equiv="5931-Disc"/>
+  <Template brand="Avery" part="6692-Disc" equiv="5931-Disc"/>
+  <Template brand="Avery" part="8536-Disc" equiv="5931-Disc"/>
+  <Template brand="Avery" part="8691-Disc" equiv="5931-Disc"/>
+  <Template brand="Avery" part="8692-Disc" equiv="5931-Disc"/>
+  <Template brand="Avery" part="8694-Disc" equiv="5931-Disc"/>
+  <Template brand="Avery" part="8695-Disc" equiv="5931-Disc"/>
+  <Template brand="Avery" part="8699-Disc" equiv="5931-Disc"/>
+  <Template brand="Avery" part="8831-Disc" equiv="5931-Disc"/>
+  <Template brand="Avery" part="8832-Disc" equiv="5931-Disc"/>
+  <Template brand="Avery" part="8842-Disc" equiv="5931-Disc"/>
+  <Template brand="Avery" part="8844-Disc" equiv="5931-Disc"/>
+  <Template brand="Avery" part="8846-Disc" equiv="5931-Disc"/>
+  <Template brand="Avery" part="8847-Disc" equiv="5931-Disc"/>
+  <Template brand="Avery" part="8931-Disc" equiv="5931-Disc"/>
+  <Template brand="Avery" part="8941-Disc" equiv="5931-Disc"/>
+  <Template brand="Avery" part="8942-Disc" equiv="5931-Disc"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5931 family: CD/DVD Labels (spine only), 4 per sheet        x -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5931-Spine" size="US-Letter" 
+         _description="CD/DVD Labels (Spine Labels)">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="0.21875in" height="4.6875in" round="0.0625in" waste="0.0625in">
+      <Layout nx="2" ny="2" x0="0.5in" y0="0.734375in" dx="0.46875in" dy="4.84375in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="5691-Spine" equiv="5931-Spine"/>
+  <Template brand="Avery" part="5692-Spine" equiv="5931-Spine"/>
+  <Template brand="Avery" part="5694-Spine" equiv="5931-Spine"/>
+  <Template brand="Avery" part="5698-Spine" equiv="5931-Spine"/>
+  <Template brand="Avery" part="6692-Spine" equiv="5931-Spine"/>
+  <Template brand="Avery" part="8536-Spine" equiv="5931-Spine"/>
+  <Template brand="Avery" part="8691-Spine" equiv="5931-Spine"/>
+  <Template brand="Avery" part="8692-Spine" equiv="5931-Spine"/>
+  <Template brand="Avery" part="8694-Spine" equiv="5931-Spine"/>
+  <Template brand="Avery" part="8695-Spine" equiv="5931-Spine"/>
+  <Template brand="Avery" part="8699-Spine" equiv="5931-Spine"/>
+  <Template brand="Avery" part="8831-Spine" equiv="5931-Spine"/>
+  <Template brand="Avery" part="8832-Spine" equiv="5931-Spine"/>
+  <Template brand="Avery" part="8842-Spine" equiv="5931-Spine"/>
+  <Template brand="Avery" part="8844-Spine" equiv="5931-Spine"/>
+  <Template brand="Avery" part="8846-Spine" equiv="5931-Spine"/>
+  <Template brand="Avery" part="8847-Spine" equiv="5931-Spine"/>
+  <Template brand="Avery" part="8931-Spine" equiv="5931-Spine"/>
+  <Template brand="Avery" part="8941-Spine" equiv="5931-Spine"/>
+  <Template brand="Avery" part="8942-Spine" equiv="5931-Spine"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5997face family: VCR Labels, 1_7/8'' x 3_1/16'', 10 per sheet -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5997-Face" size="US-Letter"
+         _description="Video Tape Face Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="220" height="133" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="5" x0="80" y0="60.5" dx="236" dy="133"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="5199-Face" equiv="5997-Face"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 5997spine family: VCR Labels, 2/3'' x 5_3/4'',15 per sheet    -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="5997-Spine" size="US-Letter"
+        _description="Video Tape Spine Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="414" height="48" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="1" ny="15" x0="99" y0="36" dx="0" dy="48"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="5199-Spine" equiv="5997-Spine"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 6490 family: Diskette Labels, 2_11/16'' x 2'', 15 per sheet x -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="6490" size="US-Letter" _description="Diskette Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="2.6875in" height="2in" round="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="3" ny="5" x0="0.125in" y0="0.5in" dx="2.78125in" dy="2in"/>
+    </Label-rectangle>
+  </Template> 
+
+  <Template brand="Avery" part="6501" equiv="6490"/>
+  <Template brand="Avery" part="6861" equiv="6490"/>
+  <Template brand="Avery" part="8096" equiv="6490"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 6570 family: ID Labels.                                       -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="6570" size="US-Letter" _description="ID Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="126pt" height="90pt" round="4.464pt" x_waste="6.768pt" y_waste="0pt">
+      <Markup-margin size="9pt"/>
+      <Layout nx="4" ny="8" x0="36pt" y0="36pt" dx="139.536pt" dy="90pt"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 6573 family: Shipping Labels.                                 -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="6573" size="US-Letter" _description="Shipping Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="8.12992in" height="5in" round="0.0625in" waste="0">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="1" ny="2" x0="0.18504in" y0="0.5in" dx="0" dy="5in"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 6871 family: Shipping Labels.                                 -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="6871" size="US-Letter" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="2.375in" height="1.25in" round="0.0625in" waste="0.125in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="3" ny="6" x0="0.3725in" y0="1.125in" dx="2.69in" dy="1.5in"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 6873 family: Shipping Labels.                                 -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="6873" size="US-Letter" _description="Shipping Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="3.75in" height="2.0in" round="0.0625in" waste="0.125">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="4" x0="0.375in" y0="1.125in" dx="4.0in" dy="2.25in"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 6874 family: Shipping Labels.                                 -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="6874" size="US-Letter" _description="Shipping Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="3.75in" height="3.0in" round="0.0625in" waste="0.125">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="3" x0="0.375in" y0="0.625in" dx="4.0in" dy="3.375in"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 6879 family: Address Labels, 1_1/4'' x 3_3/4'', 12 per sheetx -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="6879" size="US-Letter" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="3.75in" height="1.25in" round="0.0625in" waste="5pt">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="6" x0="0.375in" y0="1.125in" dx="4in" dy="1.5in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="8769" equiv="6879"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 8165 family: Full-page label, 8_1/2'' x 11'', 1 per sheet   x -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="8165" size="US-Letter" _description="Full Sheet Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="8.5in" height="11.in" round="0">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="1" ny="1" x0="0" y0="0" dx="0" dy="0"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="3114" equiv="8165"/>
+  <Template brand="Avery" part="3121" equiv="8165"/>
+  <Template brand="Avery" part="3123" equiv="8165"/>
+  <Template brand="Avery" part="3131" equiv="8165"/>
+  <Template brand="Avery" part="3132" equiv="8165"/>
+  <Template brand="Avery" part="3133" equiv="8165"/>
+  <Template brand="Avery" part="3141" equiv="8165"/>
+  <Template brand="Avery" part="3142" equiv="8165"/>
+  <Template brand="Avery" part="3145" equiv="8165"/>
+  <Template brand="Avery" part="3245" equiv="8165"/>
+  <Template brand="Avery" part="3246" equiv="8165"/>
+  <Template brand="Avery" part="3247" equiv="8165"/>
+  <Template brand="Avery" part="3255" equiv="8165"/>
+  <Template brand="Avery" part="3267" equiv="8165"/>
+  <Template brand="Avery" part="3270" equiv="8165"/>
+  <Template brand="Avery" part="3271" equiv="8165"/>
+  <Template brand="Avery" part="3272" equiv="8165"/>
+  <Template brand="Avery" part="3275" equiv="8165"/>
+  <Template brand="Avery" part="3276" equiv="8165"/>
+  <Template brand="Avery" part="3277" equiv="8165"/>
+  <Template brand="Avery" part="3614" equiv="8165"/>
+  <Template brand="Avery" part="3625" equiv="8165"/>
+  <Template brand="Avery" part="3641" equiv="8165"/>
+  <Template brand="Avery" part="3651" equiv="8165"/>
+  <Template brand="Avery" part="5165" equiv="8165"/>
+  <Template brand="Avery" part="5177" equiv="8165"/>
+  <Template brand="Avery" part="5182" equiv="8165"/>
+  <Template brand="Avery" part="5265" equiv="8165"/>
+  <Template brand="Avery" part="5277" equiv="8165"/>
+  <Template brand="Avery" part="5282" equiv="8165"/>
+  <Template brand="Avery" part="5884" equiv="8165"/>
+  <Template brand="Avery" part="5975" equiv="8165"/>
+  <Template brand="Avery" part="6465" equiv="8165"/>
+  <Template brand="Avery" part="6503" equiv="8165"/>
+  <Template brand="Avery" part="8255" equiv="8165"/>
+  <Template brand="Avery" part="8314" equiv="8165"/>
+  <Template brand="Avery" part="8324" equiv="8165"/>
+  <Template brand="Avery" part="8384" equiv="8165"/>
+  <Template brand="Avery" part="8465" equiv="8165"/>
+  <Template brand="Avery" part="8665" equiv="8165"/>
+  <Template brand="Avery" part="53205" equiv="8165"/>
+  <Template brand="Avery" part="53211" equiv="8165"/>
+  <Template brand="Avery" part="53230" equiv="8165"/>
+  <Template brand="Avery" part="53240" equiv="8165"/>
+  <Template brand="Avery" part="75287" equiv="8165"/>
+  <Template brand="Avery" part="75299" equiv="8165"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 8195 family: Return address labels                            -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="8195" size="US-Letter" _description="Return Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="1.75in" height="0.666in" round="0.063in" x_waste="0in" y_waste="0in">
+      <Markup-margin size="0.125in"/>
+      <Layout nx="4" ny="15" x0="0.297in" y0="0.531in" dx="2.031in" dy="0.666in"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 8373 family: Business Cards, 2'' x 3_1/2'', 8 per sheet     x -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="8373" size="US-Letter" _description="Business Cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Label-rectangle id="0" width="3.5in" height="2in" round="0" waste="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="4" x0="0.5in" y0="0.75in" dx="4in" dy="2.5in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Avery" part="3612" equiv="8373"/>
+  <Template brand="Avery" part="5881" equiv="8373"/>
+  <Template brand="Avery" part="8869" equiv="8373"/>
+  <Template brand="Avery" part="28373" equiv="8373"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Avery 8960 family: CD/DVD Labels.                                   -->
+  <!-- =================================================================== -->
+  <Template brand="Avery" part="8960" size="US-Letter" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="166.5pt" hole="14.1732pt" waste="9.07087pt">
+      <Markup-margin size="9pt"/>
+      <Layout nx="1" ny="2" x0="138.898pt" y0="50.1732pt" dx="351.142pt" dy="360pt"/>
+    </Label-cd>
+  </Template>
+
+
+  <!-- ******************************************************************** -->
+  <!-- Avery labels in tech builitin 152                                   -->
+  <!-- http://www.avery.com/help/tech_bulletin.jsp?tech_bull_code=152       -->
+  <!-- ******************************************************************** -->
+  <Template brand="Avery" part="LSK-8" size="US-Letter" _description="Divider Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="1.13in" height="0.5in" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="4" ny="20" x0="0.5in" y0="0.5in" dx="2.13in" dy="0.5in"/>
+    </Label-rectangle>
+  </Template>
+  <!-- the LSK labels can be torn in half down the center -->
+  <Template brand="Avery" part="LSK-8.5" size="US-Letter" _description="Divider Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="1" width="1.13in" height="0.5in" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="20" x0="0.5in" y0="0.5in" dx="2.13in" dy="0.5in"/>
+    </Label-rectangle>
+  </Template>
+  <Template brand="Avery" part="LSK-5" size="US-Letter" _description="Divider Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="2" width="1.75in" height="0.5in" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="4" ny="20" x0="0.5in" y0="0.3in" dx="2.05in" dy="0.5in"/>
+    </Label-rectangle>
+  </Template>
+  <!-- the LSK labels can be torn in half down the center -->
+  <Template brand="Avery" part="LSK-5.5" size="US-Letter" _description="Divider Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="3" width="1.75in" height="0.5in" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="20" x0="0.5in" y0="0.3in" dx="2.05in" dy="0.5in"/>
+    </Label-rectangle>
+  </Template>
+  <Template brand="Avery" part="LSK-3" size="US-Letter" _description="Divider Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="4" width="3.13in" height="0.5in" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="20" x0="0.5in" y0="0.5in" dx="4.38in" dy="0.5in"/>
+    </Label-rectangle>
+  </Template>
+  <!-- the LSK labels can be torn in half down the center -->
+  <Template brand="Avery" part="LSK-3.5" size="US-Letter" _description="Divider Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="5" width="3.13in" height="0.5in" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="1" ny="20" x0="0.5in" y0="0.5in" dx="4.38in" dy="0.5in"/>
+    </Label-rectangle>
+  </Template>
+
+</Glabels-templates>
+
+
+
+
diff --git a/templates/brother-other-templates.xml b/templates/brother-other-templates.xml
new file mode 100644 (file)
index 0000000..3d296ab
--- /dev/null
@@ -0,0 +1,65 @@
+<?xml version="1.0"?>
+
+<Glabels-templates>
+
+  <!--
+   *********************************************************************
+   *********************************************************************
+   Labels for the Brother QL-500/550/650 PC Label Printers
+      
+   These templates work with the Brother Linux Printer CUPS Driver.  It
+   is unknown if these work correctly with the foomatic print driver for
+   these printers.
+      
+   One difference from typical templates is that the template size is
+   not the actual media size - it is the size of the printable area,
+   which is smaller than the media size.  This is because (at least with
+   the Brother driver) coordinates are relative the corner of this area.
+      
+   *********************************************************************
+   *********************************************************************
+  -->
+
+  <Template brand="Brother" part="DK-11201" size="Other" width="25.91mm" height="83.90mm" _description="Standard Address Labels 29mm x 90mm">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Meta product_url="http://brother.ally.de/product/de/Etikettendrucker/Brother-DK-11201-QL-Adress-Etiketten-29x90-mm-Standard.html"/>
+    <Label-rectangle id="0" width="25.91mm" height="83.90mm" round="0" x_waste="0" y_waste="0">
+      <Markup-rect x1="-1.5mm" y1="-3mm" w="29mm" h="90mm" r="1.5mm" />
+      <Layout nx="1" ny="1" x0="0" y0="0" dx="0" dy="0"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Brother" part="DK-11202" size="Other" width="58.93mm" height="93.20mm" _description="Shipping Labels 62mm x 100mm">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Meta product_url="http://brother.ally.de/product/de/Etikettendrucker/Brother-DK-11202-QL-Versand-Etiketten-62x100-mm.html"/>
+    <Label-rectangle id="0" width="58.93mm" height="93.20mm" round="0" x_waste="0" y_waste="0">
+      <Markup-rect x1="-1.5mm" y1="-3mm" w="62mm" h="100mm" r="1.5mm" />
+      <Layout nx="1" ny="1" x0="0" y0="0" dx="0" dy="0"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Brother" part="DK-11204" size="Other" width="13.97mm" height="47.92mm" _description="Multi Purpose Labels 17mm x 54mm">
+    <Meta category="label"/>
+    <Meta product_url="http://brother.ally.de/product/de/Etikettendrucker/Brother-DK-11204-QL-Mehrzweck-Etiketten-17x54-mm.html"/>
+    <Label-rectangle id="0" width="13.97mm" height="47.92mm" round="0" x_waste="0" y_waste="0">
+      <Markup-rect x1="-1.5mm" y1="-3mm" w="17mm" h="54mm" r="1.5mm" />
+      <Layout nx="1" ny="1" x0="0" y0="0" dx="0" dy="0"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Brother" part="DK-11208" size="Other" width="34.91mm"
+height="83.90mm" _description="Standard Address Labels 38mm x 90mm">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Meta product_url="http://brother.ally.de/product/de/Etikettendrucker/Brother-DK-11208-QL-Adress-Etiketten-38x90-mm-gross.html"/>
+    <Label-rectangle id="0" width="34.91mm" height="83.90mm" round="0"
+x_waste="0" y_waste="0">
+      <Markup-rect x1="-1.5mm" y1="-3mm" w="38mm" h="90mm" r="1.5mm" />
+      <Layout nx="1" ny="1" x0="0" y0="0" dx="0" dy="0"/>
+    </Label-rectangle>
+  </Template>
+
+
+</Glabels-templates>
diff --git a/templates/categories.xml b/templates/categories.xml
new file mode 100644 (file)
index 0000000..903f37d
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+
+<Glabels-categories>
+
+  <Category id="label"            _name="Any label"/>
+  <Category id="round-label"      _name="Round labels"/>
+  <Category id="elliptical-label" _name="Elliptical labels"/>
+  <Category id="square-label"     _name="Square labels"/>
+  <Category id="rectangle-label"  _name="Rectangular labels"/>
+  <Category id="card"            _name="Any card"/>
+  <Category id="business-card"   _name="Business cards"/>
+  <Category id="media"           _name="CD/DVD or other media"/>
+  <Category id="mail"             _name="Mailing/shipping products"/>
+  <Category id="foldable"         _name="Foldable cards"/>
+  <Category id="photo"            _name="Photo products"/>
+
+</Glabels-categories>
diff --git a/templates/databecker-iso-templates.xml b/templates/databecker-iso-templates.xml
new file mode 100644 (file)
index 0000000..1c2d87f
--- /dev/null
@@ -0,0 +1,100 @@
+<?xml version="1.0"?>
+
+<Glabels-templates xmlns="http://glabels.org/xmlns/3.0/">
+
+  <!-- =================================================================== -->
+  <!-- DATA BECKER: Business Cards, 50 x 90 mm, 10 per sheet               -->
+  <!-- =================================================================== -->
+  <!-- TODO: What is the actual part #? -->
+  <Template brand="DataBecker" part="BC?" size="A4" _description="Business Cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Label-rectangle id="0" width="255" height="142" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="5" x0="36" y0="69.890" dx="255" dy="142"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ===================================================================-->
+  <!-- Data Becker CD/DVD Labels (face only), 2 per sheet                 -->
+  <!-- ===================================================================-->
+  <Template brand="DataBecker" part="0335" size="A4" _description="CD/DVD Labels Standard Format (face only)">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="164.409" hole="58.1102" waste="5">
+      <Markup-margin size="5"/>
+      <Layout nx="1" ny="2" x0="133.228" y0="46.7716" dx="0" dy="419.527"/>
+    </Label-cd>
+  </Template>
+
+  <Template brand="DataBecker" part="0368" equiv="0335"/>
+
+
+  <!-- =================================================================== -->
+  <!-- DATA BECKER 0491 Business Cards, 50 x 90 mm, 10 per sheet           -->
+  <!-- =================================================================== -->
+  <Template brand="DataBecker" part="0491" size="A4" _description="Business Cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Label-rectangle id="0" width="90mm" height="50mm" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="5" x0="12.5mm" y0="15mm" dx="94.55mm" dy="54mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- DATA BECKER 0526 Address Labels.                                    -->
+  <!-- =================================================================== -->
+  <Template brand="DataBecker" part="0526" size="A4" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="198.425pt" height="102.047pt" round="0pt" x_waste="0pt" y_waste="0pt">
+      <Markup-margin size="9pt"/>
+      <Layout nx="3" ny="8" x0="3.93386e-16pt" y0="15.5906pt" dx="198.425pt" dy="102.047pt"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- DATA BECKER 0562 CD Labels.                                         -->
+  <!-- =================================================================== -->
+  <Template brand="DataBecker" part="0562" size="A4" _description="CD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="58mm" hole="20.6375mm" waste="2mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="1" ny="2" x0="5mm" y0="5mm" dx="120mm" dy="171mm"/>
+      <Layout nx="1" ny="1" x0="89mm" y0="90mm" dx="120mm" dy="120mm"/>
+    </Label-cd>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- DATA BECKER 0598 Address Labels.                                    -->
+  <!-- =================================================================== -->
+  <Template brand="DataBecker" part="0598" size="A4" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="274.961pt" height="119.906pt" round="0pt" x_waste="0pt" y_waste="0pt">
+      <Markup-margin size="9pt"/>
+      <Layout nx="2" ny="6" x0="23.2441pt" y0="65.1968pt" dx="274.961pt" dy="119.906pt"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- DATA BECKER 0599 Rectangular Labels.                                -->
+  <!-- =================================================================== -->
+
+  <Template brand="DataBecker" part="0599" size="A4" _description="Rectangular Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="105mm" height="148mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="2" x0="0mm" y0="0mm" dx="105mm" dy="148mm"/>
+    </Label-rectangle>
+  </Template>
+
+</Glabels-templates>
+
diff --git a/templates/dataline-iso-templates.xml b/templates/dataline-iso-templates.xml
new file mode 100644 (file)
index 0000000..758b2ae
--- /dev/null
@@ -0,0 +1,101 @@
+<?xml version="1.0"?>
+
+<Glabels-templates xmlns="http://glabels.org/xmlns/3.0/">
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Dataline                  -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Dataline 12426: CD/DVD labels, 2 per sheet                         -->
+  <!-- =================================================================== -->
+  <Template brand="Dataline" part="12426" size="A4" _description="CD/DVD labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="59.5mm" hole="20.6375mm" waste="3.175mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="1" ny="2" x0="45.5mm" y0="20.5mm" dx="125.35mm" dy="137mm"/>
+    </Label-cd>
+  </Template>
+
+  <Template brand="Dataline" part="12427" equiv="12426"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Dataline 57125: Business Cards, 54.0 x 86.0 mm, 10 per sheet        -->
+  <!-- =================================================================== -->
+  <Template brand="Dataline" part="57125" size="A4" _description="Business Cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Label-rectangle id="0" width="86.00mm" height="54.00mm" round="0">
+      <Markup-margin size="0mm"/>
+      <Layout nx="2" ny="5" x0="16mm" y0="11mm" dx="91mm" dy="55.625mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Dataline 57126: Business Cards, 90.0 x 50.8 mm, 10 per sheet        -->
+  <!-- =================================================================== -->
+  <Template brand="Dataline" part="57126" size="A4" _description="Business cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Label-rectangle id="0" width="90mm" height="50.8mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="5" x0="15mm" y0="21.5mm" dx="90mm" dy="50.8mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Dataline 57127: Membership Cards, 86.0 x 54.0 mm, 10 per sheet      -->
+  <!-- =================================================================== -->
+  <Template brand="Dataline" part="57127" size="A4" _description="Membership cards">
+    <Meta category="card"/>
+    <Label-rectangle id="0" width="86mm" height="54mm" round="0mm" x_waste="2.5mm" y_waste="0.7mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="5" x0="20.5mm" y0="10.5mm" dx="91mm" dy="55.5mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Dataline 57130: Shipping Labels, 199.6 x 289.1 mm, 1 per sheet      -->
+  <!-- =================================================================== -->
+  <Template brand="Dataline" part="57130" size="A4" _description="Shipping Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="199.6mm" height="289.1mm" round="0mm" x_waste="2mm" y_waste="2mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="1" ny="1" x0="5.2mm" y0="3.95mm" dx="203.6mm" dy="293.1mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Dataline 57131: Shipping Labels, 199.6 x 143.5 mm, 2 per sheet      -->
+  <!-- =================================================================== -->
+  <Template brand="Dataline" part="57131" size="A4" _description="Shipping Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="199.6mm" height="143.5mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="1" ny="2" x0="5.2mm" y0="5mm" dx="199.6mm" dy="143.5mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Dataline 57132: Shipping Labels, 99.1 x 139 mm, 1 per sheet        -->
+  <!-- =================================================================== -->
+  <Template brand="Dataline" part="57132" size="A4" _description="Shipping Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="99.1mm" height="139mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="2" x0="5.4mm" y0="9.5mm" dx="99.1mm" dy="139mm"/>
+    </Label-rectangle>
+  </Template>
+
+</Glabels-templates>
+
+
+
+
diff --git a/templates/decadry-iso-templates.xml b/templates/decadry-iso-templates.xml
new file mode 100644 (file)
index 0000000..21ac6fe
--- /dev/null
@@ -0,0 +1,101 @@
+<?xml version="1.0"?>
+
+<Glabels-templates>
+
+
+  <!-- ******************************************************************** -->
+  <!-- ******************************************************************** -->
+  <!--                                                                      -->
+  <!-- DECAdry A4 products.                                                 -->
+  <!--                                                                      -->
+  <!-- ******************************************************************** -->
+  <!-- ******************************************************************** -->
+
+  <!-- Decadry templates for Microsoft Word are available from the URL:     -->
+  <!-- http://195.13.14.169/en/freetemplates.htm                           -->
+
+  <!-- =================================================================== -->
+  <!-- DECAdry DLW-1731: Mailing labels, 63.5 x 38.1 mm, 21 per sheet      -->
+  <!-- =================================================================== -->
+  <Template brand="DECAdry" part="DLW-1731" size="A4" _description="Mailing labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="181.4" height="108.0" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="3" ny="7" x0="21.2" y0="43.9" dx="187.2" dy="108.0"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="DECAdry" part="OLW-4731" equiv="DLW-1731"/>
+  <Template brand="DECAdry" part="OLW-7131" equiv="DLW-1731"/>
+
+
+  <!-- =================================================================== -->
+  <!-- DECAdry DLW-1734: Mailing Labels.                                   -->
+  <!-- =================================================================== -->
+  <Template brand="DECAdry" part="DLW-1734" size="A4" _description="Mailing Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="99.1mm" height="67.7mm" round="2mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="4" x0="4.65mm" y0="13.1mm" dx="101.5mm" dy="67.7mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="DECAdry" part="OLW-4734" equiv="DLW-1734"/>
+
+
+  <!-- =================================================================== -->
+  <!-- DECAdry DLW-1786: Mailing Labels.                                   -->
+  <!-- =================================================================== -->
+  <Template brand="DECAdry" part="DLW-1786" size="A4" _description="Mailing Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="105mm" height="39mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="7" x0="0mm" y0="12mm" dx="105mm" dy="39mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="DECAdry" part="OLW-4786" equiv="DLW-1786"/>
+
+
+  <!-- =================================================================== -->
+  <!-- DECAdry DLW-1787: Mailing Labels.                                   -->
+  <!-- =================================================================== -->
+  <Template brand="DECAdry" part="DLW-1787" size="A4" _description="Mailing Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="70mm" height="35mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="3" ny="8" x0="0mm" y0="8.5mm" dx="70mm" dy="35mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="DECAdry" part="OLW-4787" equiv="DLW-1787"/>
+
+
+  <!-- =================================================================== -->
+  <!-- DECAdry OCC-3342 Business Cards.                                    -->
+  <!-- =================================================================== -->
+  <Template brand="DECAdry" part="OCC-3342" size="A4" _description="Business Cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Label-rectangle id="0" width="240.945pt" height="153.071pt" round="0pt" x_waste="0pt" y_waste="0pt">
+      <Markup-margin size="0pt"/>
+      <Layout nx="2" ny="5" x0="42.5197pt" y0="38.2677pt" dx="269.291pt" dy="153.071pt"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="DECAdry" part="OCB-3327" equiv="OCC-3342"/>
+  <Template brand="DECAdry" part="SCW-2090" equiv="OCC-3342"/>
+  <Template brand="DECAdry" part="DAW-327"  equiv="OCC-3342"/>
+
+
+
+
+</Glabels-templates>
+
+
+
+
diff --git a/templates/dymo-other-templates.xml b/templates/dymo-other-templates.xml
new file mode 100644 (file)
index 0000000..62c0bd9
--- /dev/null
@@ -0,0 +1,88 @@
+<?xml version="1.0"?>
+
+<Glabels-templates>
+
+
+  <!-- =================================================================== -->
+  <!-- Dymo 99012 Large Address labels.                                    -->
+  <!-- =================================================================== -->
+  <Template brand="Dymo" part="99012" size="Other" width="102.047pt" height="252.283pt" _description="Large Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="102.047pt" height="252.283pt" round="0pt" x_waste="0pt" y_waste="0pt">
+      <Markup-margin size="0pt"/>
+      <Layout nx="1" ny="1" x0="0pt" y0="0pt" dx="102.047pt" dy="252.283pt"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Dymo 99010 Address labels.                                          -->
+  <!-- =================================================================== -->
+  <Template brand="Dymo" part="99010" size="Other" width="81pt" height="252pt" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="81pt" height="252pt" round="0pt" x_waste="0pt" y_waste="0pt">
+      <Markup-margin size="0pt"/>
+      <Layout nx="1" ny="1" x0="0pt" y0="0pt" dx="81pt" dy="252pt"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Dymo 11355 Return Address labels.                                   -->
+  <!-- =================================================================== -->
+  <Template brand="Dymo" part="11355" size="Other" width="54pt" height="144pt" _description="Return Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="54pt" height="144pt" round="0pt" x_waste="0pt" y_waste="0pt">
+      <Markup-margin size="0pt"/>
+      <Layout nx="1" ny="1" x0="0pt" y0="0pt" dx="54pt" dy="144pt"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Dymo 99014 Shipping Address labels.                                 -->
+  <!-- =================================================================== -->
+  <Template brand="Dymo" part="99014" size="Other" width="167pt" height="288pt" _description="Shipping Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="167pt" height="288pt" round="0pt" x_waste="0pt" y_waste="0pt">
+      <Markup-margin size="0pt"/>
+      <Layout nx="1" ny="1" x0="0pt" y0="0pt" dx="167pt" dy="288pt"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Dymo 30327 File Folder labels.                                      -->
+  <!-- =================================================================== -->
+  <Template brand="Dymo" part="30327" size="Other" width="41pt" height="248pt" _description="File Folder">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="41pt" height="248pt" round="0pt" x_waste="0pt" y_waste="0pt">
+      <Markup-margin size="0pt"/>
+      <Layout nx="1" ny="1" x0="0pt" y0="0pt" dx="41pt" dy="248pt"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Dymo 30376 Hanging Folder labels.                                   -->
+  <!-- =================================================================== -->
+  <Template brand="Dymo" part="30376" size="Other" width="41pt" height="144pt" _description="Hanging Folder">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="41pt" height="144pt" round="0pt" x_waste="0pt" y_waste="0pt">
+      <Markup-margin size="0pt"/>
+      <Layout nx="1" ny="1" x0="0pt" y0="0pt" dx="41pt" dy="144pt"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Dymo 30258 3.5" Disk labels.                                        -->
+  <!-- =================================================================== -->
+  <Template brand="Dymo" part="30258" size="Other" width="153pt" height="198pt" _description="3.5in Diskette">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="153pt" height="198pt" round="0pt" x_waste="0pt" y_waste="0pt">
+      <Markup-margin size="0pt"/>
+      <Layout nx="1" ny="1" x0="0pt" y0="0pt" dx="153pt" dy="198pt"/>
+    </Label-rectangle>
+  </Template>
+
+</Glabels-templates>
diff --git a/templates/geha-iso-templates.xml b/templates/geha-iso-templates.xml
new file mode 100644 (file)
index 0000000..b6ecd31
--- /dev/null
@@ -0,0 +1,418 @@
+<?xml version="1.0"?>
+
+<Glabels-templates xmlns="http://glabels.org/xmlns/3.0/">
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Geha                      -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- Geha provides a PDF file with all the relevant data for creating template       -->    
+  <!-- files. It is available from the following link:                                 -->
+  <!-- http://www.geha.de/fileadmin/images/druckerzubehoer/downloads/Formatvorlagen.pdf -->
+
+
+  <!-- =================================================================== -->
+  <!-- Geha P10.  Foldable Flyer Paper.                                           -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="P10" size="A4" _description="Flyer paper">
+    <Meta category="card"/>
+    <Meta category="foldable"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1047&amp;pid=90594"/>
+    <Label-rectangle id="0" width="210mm" height="297mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="0mm"/>
+      <Markup-line x1="0mm" y1="99mm" x2="210mm" y2="99mm"/>
+      <Markup-line x1="0mm" y1="198mm" x2="210mm" y2="198mm"/>
+      <Layout nx="1" ny="1" x0="0mm" y0="0mm" dx="210mm" dy="297mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Geha P68.  Business Cards.                                         -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="P68" size="A4" _description="Business cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1057&amp;pid=91058"/>
+    <Label-rectangle id="0" width="85mm" height="54mm" round="0mm" x_waste="5mm" y_waste="9mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="4" x0="15mm" y0="13mm" dx="95mm" dy="72mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Geha" part="P69" equiv="P68"/>
+
+  <!-- =================================================================== -->
+  <!-- Geha P70.  Business Cards.                                         -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="P70" size="A4" _description="Business cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1057&amp;pid=90679"/>
+    <Label-rectangle id="0" width="85mm" height="54mm" round="0mm" x_waste="5mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="5" x0="15mm" y0="13.5mm" dx="95mm" dy="54mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Geha" part="P71" equiv="P70"/>
+  <Template brand="Geha" part="P72" equiv="P70"/>
+  <Template brand="Geha" part="P73" equiv="P70"/>
+
+  <!-- =================================================================== -->
+  <!-- Geha P76.  Greeting Cards.                                         -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="P76" size="A4" _description="Greeting cards">
+    <Meta category="card"/>
+    <Meta category="foldable"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1057&amp;pid=90815"/>
+    <Label-rectangle id="0" width="210mm" height="297mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="0mm"/>
+      <Markup-line x1="0mm" y1="148.5mm" x2="210mm" y2="148.5mm"/>
+      <Layout nx="1" ny="1" x0="0mm" y0="0mm" dx="210mm" dy="297mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Geha" part="P77" equiv="P76"/>
+
+  <!-- =================================================================== -->
+  <!-- Geha P78.  Greeting Cards.                                         -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="P78" size="A4" _description="Greeting cards">
+    <Meta category="card"/>
+    <Meta category="foldable"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1057&amp;pid=90835"/>
+    <Label-rectangle id="0" width="165mm" height="121mm" round="0mm" x_waste="23mm" y_waste="2.5mm">
+      <Markup-margin size="0mm"/>
+      <Markup-line x1="82.5mm" y1="0mm" x2="82.5mm" y2="121mm"/>
+      <Layout nx="1" ny="2" x0="23mm" y0="25mm" dx="211mm" dy="126mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Geha" part="P79" equiv="P78"/>
+
+  <!-- =================================================================== -->
+  <!-- Geha P80.  Arch File inserts.                                      -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="P80" size="A4" _description="Arch File inserts">
+    <Meta category="card"/>
+    <Meta product_url="http://www.geha.de/index.php?id=837&amp;pid=90891"/>
+    <Label-rectangle id="0" width="188mm" height="48mm" round="0mm" x_waste="11mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="1" ny="5" x0="11mm" y0="28.5mm" dx="210mm" dy="48mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Geha P81.  Arch File inserts.                                      -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="P81" size="A4" _description="Arch File inserts">
+    <Meta category="card"/>
+    <Meta product_url="http://www.geha.de/index.php?id=837&amp;pid=90914"/>
+    <Label-rectangle id="0" width="188mm" height="26mm" round="0mm" x_waste="11mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="1" ny="9" x0="11mm" y0="31.5mm" dx="210mm" dy="26mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Geha Z20.  CD/DVD Labels and inlet.                                        -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="Z20-1" size="A4" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1047&amp;pid=30200"/>
+    <Label-cd id="0" radius="58.5mm" hole="8.5mm" waste="10mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="1" ny="1" x0="46.5mm" y0="21.5mm" dx="137mm" dy="137mm"/>
+    </Label-cd>
+  </Template>
+
+  <Template brand="Geha" part="Z21-1" equiv="Z20-1"/>
+
+  <Template brand="Geha" part="Z20-2" size="A4" _description="CD/DVD Inlet">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1047&amp;pid=30200"/>
+    <Label-rectangle id="0" width="121.5mm" height="117.5mm" round="0mm" x_waste="15mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="1" ny="1" x0="44.25mm" y0="164mm" dx="151.5mm" dy="117.5mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Geha" part="Z21-2" equiv="Z20-2"/>
+
+  <!-- =================================================================== -->
+  <!-- Geha Z22.  CD/DVD Labels.                                          -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="Z22" size="A4" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1047&amp;pid=30101"/>
+    <Label-cd id="0" radius="58.5mm" hole="8.5mm" waste="3.175mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="1" ny="2" x0="46.5mm" y0="21.5mm" dx="123.35mm" dy="137mm"/>
+    </Label-cd>
+  </Template>
+
+  <Template brand="Geha" part="Z23" equiv="Z22"/>
+
+  <!-- =================================================================== -->
+  <!-- Geha Z24.    DVD inlets.                                                   -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="Z24" size="A4" _description="DVD inlet">
+    <Meta category="card"/>
+    <Meta category="media"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1047&amp;pid=30248"/>
+    <Label-rectangle id="0" width="183mm" height="270mm" round="0mm" x_waste="13.5mm" y_waste="13.5mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="1" ny="1" x0="13.5mm" y0="13.5mm" dx="210mm" dy="297mm"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Geha Z25-1.  Video Tape Spine Labels.                                      -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="Z25-1" size="A4" _description="Video Tape Spine Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta category="media"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1047&amp;pid=30262"/>
+    <Label-rectangle id="0" width="147.32mm" height="20mm" round="2.8mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="1" ny="13" x0="31.38mm" y0="18.4mm" dx="147.32mm" dy="20mm"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Geha Z25-2.  Video Tape Face Labels.                               -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="Z25-2" size="A4" _description="Video Tape Face Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta category="media"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1047&amp;pid=30262"/>
+    <Label-rectangle id="0" width="78.74mm" height="46.6mm" round="2mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="2" ny="6" x0="25mm" y0="8.7mm" dx="81.38mm" dy="46.6mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Geha Z40.  Photo Labels.                                           -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="Z40" size="A4" _description="Photo labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta category="photo"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1047&amp;pid=30569"/>
+    <Label-rectangle id="0" width="88.9mm" height="127mm" round="0mm" x_waste="2.5mm" y_waste="2mm">
+      <Markup-margin size="0mm"/>
+      <Layout nx="2" ny="2" x0="13.6mm" y0="19.3mm" dx="94mm" dy="131.23mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Geha" part="P40" equiv="Z40"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Geha Z41.  Photo Labels.                                           -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="Z41" size="A4" _description="Photo labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta category="photo"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1047&amp;pid=30545"/>
+    <Label-rectangle id="0" width="150mm" height="100mm" round="0mm" x_waste="30mm" y_waste="24mm">
+      <Markup-margin size="0mm"/>
+      <Layout nx="1" ny="2" x0="30mm" y0="24.2mm" dx="210mm" dy="148mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Geha" part="P41" equiv="Z41"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Geha Z45.  Photo Labels.                                           -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="Z45" size="A4" _description="Photo labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta category="photo"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1047&amp;pid=30521"/>
+    <Label-rectangle id="0" width="178mm" height="127mm" round="0mm" x_waste="16mm" y_waste="3mm">
+      <Markup-margin size="0mm"/>
+      <Layout nx="1" ny="2" x0="16mm" y0="18.4mm" dx="210mm" dy="145.4mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Geha" part="P45" equiv="Z45"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Geha Z46.  Passport Photo Labels.                                          -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="Z46" size="A4" _description="Passport photo labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta category="photo"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1047&amp;pid=30538"/>
+    <Label-rectangle id="0" width="35mm" height="45mm" round="0mm" x_waste="5mm" y_waste="4mm">
+      <Markup-margin size="0mm"/>
+      <Layout nx="4" ny="5" x0="20mm" y0="20mm" dx="45mm" dy="53mm"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Geha Z50.  Large Address Labels.                                   -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="Z50" size="A4" _description="Large Address Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta category="mail"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1047&amp;pid=30705"/>
+    <Label-rectangle id="0" width="199.6mm" height="289.05mm" round="2mm" x_waste="5.2mm" y_waste="4.7mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="1" ny="1" x0="5.2mm" y0="4.7mm" dx="210mm" dy="298.45mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Geha Z51.  Medium Address Labels.                                          -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="Z51" size="A4" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta category="mail"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1047&amp;pid=30729"/>
+    <Label-rectangle id="0" width="99.1mm" height="139mm" round="2mm" x_waste="1.2mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="2" x0="4.7mm" y0="10mm" dx="101.64mm" dy="139mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Geha Z52.  Address Labels.                                         -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="Z52" size="A4" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta category="mail"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1047&amp;pid=30743"/>
+    <Label-rectangle id="0" width="99.06mm" height="67.7mm" round="2mm" x_waste="1.2mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="2" ny="4" x0="4.7mm" y0="13.8mm" dx="101.6mm" dy="67.73mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Geha Z53.  Address Labels.                                         -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="Z53" size="A4" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta category="mail"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1047&amp;pid=30767"/>
+    <Label-rectangle id="0" width="99.1mm" height="38.1mm" round="0.2mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="7" x0="3mm" y0="15.9mm" dx="101.6mm" dy="38.1mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Geha Z54.  Address Labels.                                         -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="Z54" size="A4" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1047&amp;pid=30781"/>
+    <Label-rectangle id="0" width="63.5mm" height="38.1mm" round="2mm" x_waste="1.2mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="3" ny="7" x0="7.2mm" y0="15.9mm" dx="66.04mm" dy="38.1mm"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Geha Z80.  Arch File Labels.                                       -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="Z80" size="A4" _description="Arch File Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1047&amp;pid=30002"/>
+    <Label-rectangle id="0" width="192mm" height="61mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Markup-line x1="172mm" y1="0mm" x2="172mm" y2="61mm"/>
+      <Layout nx="1" ny="4" x0="9mm" y0="26.4mm" dx="192mm" dy="61mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Geha" part="Z88" equiv="Z80"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Geha Z81.  Arch File Labels.                                       -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="Z81" size="A4" _description="Arch File Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1047&amp;pid=30026"/>
+    <Label-rectangle id="0" width="192mm" height="38mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Markup-line x1="172mm" y1="0mm" x2="172mm" y2="38mm"/>
+      <Layout nx="1" ny="7" x0="9mm" y0="15.4mm" dx="192mm" dy="38mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Geha" part="Z89" equiv="Z81"/>
+
+  <!-- =================================================================== -->
+  <!-- Geha Z90.  Multi-Purpose Labels.                                           -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="Z90" size="A4" _description="Multi-Purpose Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1047&amp;pid=30804"/>
+    <Label-rectangle id="0" width="63.5mm" height="29.63mm" round="2mm" x_waste="1.2mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="3" ny="9" x0="7.2mm" y0="15.1mm" dx="66.04mm" dy="29.63mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Geha Z91.  Multi-Purpose Labels.                                           -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="Z91" size="A4" _description="Multi-Purpose Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1047&amp;pid=30828"/>
+    <Label-rectangle id="0" width="45.72mm" height="21.16mm" round="2mm" x_waste="1.2mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="4" ny="12" x0="9.8mm" y0="21.4mm" dx="48.26mm" dy="21.2mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Geha Z92.  Multi-Purpose Labels.                                           -->
+  <!-- =================================================================== -->
+  <Template brand="Geha" part="Z92" size="A4" _description="Multi-Purpose Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.geha.de/index.php?id=1047&amp;pid=30842"/>
+    <Label-rectangle id="0" width="25.4mm" height="10mm" round="2mm" x_waste="1.2mm" y_waste="0mm">
+      <Markup-margin size="1mm"/>
+      <Layout nx="7" ny="27" x0="8.5mm" y0="13.4mm" dx="27.94mm" dy="10mm"/>
+    </Label-rectangle>
+  </Template>
+
+</Glabels-templates>
+
+
+
+
diff --git a/templates/glabels-3.0.dtd b/templates/glabels-3.0.dtd
new file mode 100644 (file)
index 0000000..5e74553
--- /dev/null
@@ -0,0 +1,464 @@
+<!--
+  glabels-3.0.dtd
+
+  This file is a part of the glabels template database.
+  Copyright (c) 2001-2009 Jim Evins
+  Permission is hereby granted, free of charge, to any person
+  obtaining a copy of this software and associated documentation
+  files (the "Software"), to deal in the Software without
+  restriction, including without limitation the rights to use,
+  copy, modify, merge, publish, distribute, sublicense, and/or sell
+  copies of the Software, and to permit persons to whom the
+  Software is furnished to do so, subject to the following
+  conditions:
+  The above copyright notice and this permission notice shall be
+  included in all copies or substantial portions of the Software.
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+  OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+  HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+  WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+  OTHER DEALINGS IN THE SOFTWARE.
+-->
+
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!-- ENTITIES: primitive types used in element attributes                 -->
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+
+<!-- primitives -->
+<!ENTITY % BOOLEAN_TYPE       "(False | True | 0 | 1)">
+<!ENTITY % STRING_TYPE        "CDATA">
+<!ENTITY % LENGTH_TYPE        "CDATA"> <!-- %g (pt|in|mm|cm|pc) -->
+<!ENTITY % INT_TYPE           "CDATA"> <!-- %d | 0x%x | 0%o -->
+<!ENTITY % UINT_TYPE          "CDATA"> <!-- %u | 0x%x | 0%o -->
+<!ENTITY % FLOAT_TYPE         "CDATA"> <!-- %g -->
+
+<!-- Text related enumerations/types -->
+<!ENTITY % JUSTIFY_TYPE       "(Left | Right | Center)">
+<!ENTITY % FONT_WEIGHT_TYPE   "(Regular | Bold)">
+
+<!-- Barcode related enumerations/types -->
+<!ENTITY % BC_BACKEND_TYPE    "CDATA">
+                              <!-- one of:
+                              "(built-in    |
+                                gnu-barcode |
+                               zint        |
+                               libiec16022 |
+                               libqrencode")
+                               -->
+<!ENTITY % BC_STYLE_TYPE      "CDATA">
+                              <!-- one of:
+                              "(POSTNET    |
+                                POSTNET-5  |
+                                POSTNET-9  |
+                                POSTNET-11 |
+                                CEPNET     |
+                                EAN        |
+                                EAN-8      |
+                                EAN-8+2    |
+                                EAN-8+5    |
+                                EAN-13     |
+                                EAN-13+2   |
+                                EAN-13+5   |
+                                UPC        |
+                                UPC-A      |
+                                UPC-A+2    |
+                                UPC-A+5    |
+                                UPC-E      |
+                                UPC-E+2    |
+                                UPC-E+5    |
+                                ISBN       |
+                                ISBN+5     |
+                                Code39     |
+                                Code128    |
+                                Code128C   |
+                                Code128B   |
+                                I25        |
+                                CBR        |
+                                MSI        |
+                                PLS        |
+                                IEC16022)"
+                               -->
+
+<!-- Data encoding method -->
+<!ENTITY % DATA_ENCODING_TYPE "(None | Base64)">
+
+<!-- Inline file format type -->
+<!ENTITY % FILE_FORMAT_TYPE "(SVG)">
+
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!-- Top-level glabels paper data base                                    -->
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!ELEMENT Glabels-paper-sizes (Paper-size*)>
+<!ATTLIST Glabels-paper-sizes
+                 xmlns           %STRING_TYPE;           #IMPLIED
+>
+
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!-- Top-level glabels categories data base                               -->
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!ELEMENT Glabels-categories (Category*)>
+<!ATTLIST Glabels-categories
+                 xmlns           %STRING_TYPE;           #IMPLIED
+>
+
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!-- Top-level glabels vendors data base                                  -->
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!ELEMENT Glabels-vendors (Vendor*)>
+<!ATTLIST Glabels-vendors
+                 xmlns           %STRING_TYPE;           #IMPLIED
+>
+
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!-- Top-level glabels template data base                                 -->
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!ELEMENT Glabels-templates (Template*)>
+<!ATTLIST Glabels-templates
+                 xmlns           %STRING_TYPE;           #IMPLIED
+>
+
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!-- Top-level glabels document                                           -->
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!ELEMENT Glabels-document (Template, Objects+, Merge?, Data*)>
+<!ATTLIST Glabels-document
+                 xmlns           %STRING_TYPE;           #IMPLIED
+>
+
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!-- Paper size                                                           -->
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!ELEMENT Paper-size EMPTY>
+<!ATTLIST Paper-size
+                 id              %STRING_TYPE;           #REQUIRED
+                 name            %STRING_TYPE;           #IMPLIED
+                 _name           %STRING_TYPE;           #IMPLIED
+                 pwg_size        %STRING_TYPE;           #REQUIRED
+                 width           %LENGTH_TYPE;           #REQUIRED
+                 height          %LENGTH_TYPE;           #REQUIRED
+>
+
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!-- Category                                                             -->
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!ELEMENT Category EMPTY>
+<!ATTLIST Category
+                 id              %STRING_TYPE;           #REQUIRED
+                 name            %STRING_TYPE;           #IMPLIED
+                 _name           %STRING_TYPE;           #IMPLIED
+>
+
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!-- Vendor                                                               -->
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!ELEMENT Vendor EMPTY>
+<!ATTLIST Vendor
+                 name            %STRING_TYPE;           #REQUIRED
+                 url             %STRING_TYPE;           #IMPLIED
+>
+
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!-- Template Section                                                     -->
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!ENTITY % label_element  "Label-rectangle | Label-round | Label-ellipse | Label-cd">
+<!ENTITY % markup_element "Markup-margin | Markup-line | Markup-circle | Markup-rect | Markup-ellipse">
+
+<!ELEMENT Template (Meta*, (%label_element;)*)>
+<!ATTLIST Template
+                 brand           %STRING_TYPE;           #REQUIRED
+                 part            %STRING_TYPE;           #REQUIRED
+                 name            %STRING_TYPE;           #IMPLIED
+                 equiv           %STRING_TYPE;           #IMPLIED
+                 size            %STRING_TYPE;           #IMPLIED
+                 width           %LENGTH_TYPE;           #IMPLIED
+                 height          %LENGTH_TYPE;           #IMPLIED
+                 description     %STRING_TYPE;           #IMPLIED
+                 _description    %STRING_TYPE;           #IMPLIED
+>
+
+<!ELEMENT Meta EMPTY>
+<!ATTLIST Meta
+                 product_url     %STRING_TYPE;           #IMPLIED
+                 category        %STRING_TYPE;           #IMPLIED
+                 print           %STRING_TYPE;           #IMPLIED
+>
+
+<!ELEMENT Label-rectangle ((%markup_element;)*, Layout+)>
+<!ATTLIST Label-rectangle
+                 id              %STRING_TYPE;           #REQUIRED
+                 width           %LENGTH_TYPE;           #REQUIRED
+                 height          %LENGTH_TYPE;           #REQUIRED
+                 round           %LENGTH_TYPE;           "0 pt"
+                 waste           %LENGTH_TYPE;           #IMPLIED
+                 x_waste         %LENGTH_TYPE;           #IMPLIED
+                 y_waste         %LENGTH_TYPE;           #IMPLIED
+>
+
+<!ELEMENT Label-round ((%markup_element;)*, Layout+)>
+<!ATTLIST Label-round
+                 id              %STRING_TYPE;           #REQUIRED
+                 radius          %LENGTH_TYPE;           #REQUIRED
+                 waste           %LENGTH_TYPE;           #IMPLIED
+>
+
+<!ELEMENT Label-ellipse ((%markup_element;)*, Layout+)>
+<!ATTLIST Label-ellipse
+                 id              %STRING_TYPE;           #REQUIRED
+                 width           %LENGTH_TYPE;           #REQUIRED
+                 height          %LENGTH_TYPE;           #REQUIRED
+                 waste           %LENGTH_TYPE;           #IMPLIED
+>
+
+<!ELEMENT Label-cd ((%markup_element;)*, Layout+)>
+<!ATTLIST Label-cd
+                 id              %STRING_TYPE;           #REQUIRED
+                 radius          %LENGTH_TYPE;           #REQUIRED
+                 hole            %LENGTH_TYPE;           #REQUIRED
+                 width           %LENGTH_TYPE;           #IMPLIED
+                 height          %LENGTH_TYPE;           #IMPLIED
+                 waste           %LENGTH_TYPE;           #IMPLIED
+>
+
+<!ELEMENT Markup-margin EMPTY>
+<!ATTLIST Markup-margin
+                 size            %LENGTH_TYPE;           #REQUIRED
+>
+
+<!ELEMENT Markup-line EMPTY>
+<!ATTLIST Markup-line
+                 x1              %LENGTH_TYPE;           #REQUIRED
+                 y1              %LENGTH_TYPE;           #REQUIRED
+                 x2              %LENGTH_TYPE;           #REQUIRED
+                 y2              %LENGTH_TYPE;           #REQUIRED
+>
+
+<!ELEMENT Markup-circle EMPTY>
+<!ATTLIST Markup-circle
+                 x0              %LENGTH_TYPE;           #REQUIRED
+                 y0              %LENGTH_TYPE;           #REQUIRED
+                 radius          %LENGTH_TYPE;           #REQUIRED
+>
+
+<!ELEMENT Markup-rect EMPTY>
+<!ATTLIST Markup-rect
+                 x1              %LENGTH_TYPE;           #REQUIRED
+                 y1              %LENGTH_TYPE;           #REQUIRED
+                 w               %LENGTH_TYPE;           #REQUIRED
+                 h               %LENGTH_TYPE;           #REQUIRED
+                 r               %LENGTH_TYPE;           "0 pt"
+>
+
+<!ELEMENT Markup-ellipse EMPTY>
+<!ATTLIST Markup-ellipse
+                 x1              %LENGTH_TYPE;           #REQUIRED
+                 y1              %LENGTH_TYPE;           #REQUIRED
+                 w               %LENGTH_TYPE;           #REQUIRED
+                 h               %LENGTH_TYPE;           #REQUIRED
+>
+
+<!ELEMENT Layout EMPTY>
+<!ATTLIST Layout
+                 nx              %UINT_TYPE;             #REQUIRED
+                 ny              %UINT_TYPE;             #REQUIRED
+                 x0              %LENGTH_TYPE;           "0 pt"
+                 y0              %LENGTH_TYPE;           "0 pt"
+                 dx              %LENGTH_TYPE;           "0 pt"
+                 dy              %LENGTH_TYPE;           "0 pt"
+>
+
+
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!-- Objects Section                                                      -->
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!ENTITY % object_class_element  "Object-text    |
+                                  Object-box     |
+                                  Object-line    |
+                                  Object-ellipse |
+                                  Object-image   |
+                                  Object-barcode"
+>
+
+<!ELEMENT Objects ((%object_class_element;)*)>
+<!ATTLIST Objects
+                 id              %STRING_TYPE;           #REQUIRED
+                 rotate          %BOOLEAN_TYPE;          #REQUIRED
+>
+
+<!ENTITY % position_attrs
+                 "x              %LENGTH_TYPE;           #REQUIRED
+                  y              %LENGTH_TYPE;           #REQUIRED"
+>
+
+<!ENTITY % size_attrs
+                 "w              %LENGTH_TYPE;           #REQUIRED
+                  h              %LENGTH_TYPE;           #REQUIRED"
+>
+
+<!ENTITY % line_attrs
+                 "line_width       %LENGTH_TYPE;          #IMPLIED
+                  line_color       %UINT_TYPE;            #IMPLIED
+                  line_color_field %STRING_TYPE;          #IMPLIED"
+>
+
+<!ENTITY % fill_attrs
+                 "fill_color       %UINT_TYPE;           #IMPLIED
+                  fill_color_field %STRING_TYPE;         #IMPLIED"
+>
+
+<!ENTITY % affine_attrs
+                 "a0              %FLOAT_TYPE;           #IMPLIED
+                  a1              %FLOAT_TYPE;           #IMPLIED
+                  a2              %FLOAT_TYPE;           #IMPLIED
+                  a3              %FLOAT_TYPE;           #IMPLIED
+                  a4              %FLOAT_TYPE;           #IMPLIED
+                  a5              %FLOAT_TYPE;           #IMPLIED"
+>
+
+<!ENTITY % shadow_attrs
+                 "shadow          %BOOLEAN_TYPE;         #IMPLIED
+                  shadow_x        %FLOAT_TYPE;           #IMPLIED
+                  shadow_y        %FLOAT_TYPE;           #IMPLIED
+                  shadow_color    %UINT_TYPE;            #IMPLIED
+                  shadow_opacity  %FLOAT_TYPE;           #IMPLIED"
+>
+
+<!ELEMENT Object-text (Span)>
+<!ATTLIST Object-text
+                 %position_attrs;
+                 %size_attrs;
+                 justify         %JUSTIFY_TYPE;          #REQUIRED
+                 auto_shrink     %BOOLEAN_TYPE;          #IMPLIED
+                 %affine_attrs;
+                 %shadow_attrs;
+>
+
+<!ELEMENT Object-box EMPTY>
+<!ATTLIST Object-box
+                 %position_attrs;
+                 %size_attrs;
+                 %line_attrs;
+                 %fill_attrs;
+                 %affine_attrs;
+                 %shadow_attrs;
+>
+
+<!ELEMENT Object-ellipse EMPTY>
+<!ATTLIST Object-ellipse
+                 %position_attrs;
+                 %size_attrs;
+                 %line_attrs;
+                 %fill_attrs;
+                 %affine_attrs;
+                 %shadow_attrs;
+>
+
+<!ELEMENT Object-line EMPTY>
+<!ATTLIST Object-line
+                 %position_attrs;
+                 dx              %LENGTH_TYPE;           #REQUIRED
+                 dy              %LENGTH_TYPE;           #REQUIRED
+                 %line_attrs;
+                 %affine_attrs;
+                 %shadow_attrs;
+>
+
+<!ELEMENT Object-image EMPTY>
+<!ATTLIST Object-image
+                 %position_attrs;
+                 %size_attrs;
+                 src             %STRING_TYPE;           #IMPLIED
+                 field           %STRING_TYPE;           #IMPLIED
+                 embed           %BOOLEAN_TYPE;          #IMPLIED
+                 %affine_attrs;
+                 %shadow_attrs;
+>
+
+<!ELEMENT Object-barcode EMPTY>
+<!ATTLIST Object-barcode
+                 %position_attrs;
+                 %size_attrs;
+                 backend          %BC_BACKEND_TYPE;       #REQUIRED
+                 style            %BC_STYLE_TYPE;         #REQUIRED
+                 text             %BOOLEAN_TYPE;          #REQUIRED
+                 checksum         %BOOLEAN_TYPE;          #REQUIRED
+                 color            %UINT_TYPE;             #IMPLIED
+                 color_field      %STRING_TYPE;           #IMPLIED
+                 data             %STRING_TYPE;           #IMPLIED
+                 field            %STRING_TYPE;           #IMPLIED
+                 format           %UINT_TYPE;             #IMPLIED
+                 %affine_attrs;
+                 %shadow_attrs;
+>
+
+
+
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!-- Merge Section                                                        -->
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!ELEMENT Merge EMPTY>
+<!ATTLIST Merge
+                 type            %STRING_TYPE;           #REQUIRED
+                 src             %STRING_TYPE;           #IMPLIED
+>
+
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!-- Data Section                                                         -->
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!ENTITY % data_element "Pixdata | File">
+
+<!ELEMENT Data (%data_element;)*>
+
+<!-- Inline Pixdata -->
+<!ELEMENT Pixdata (#PCDATA)>
+<!ATTLIST Pixdata
+                 name            %STRING_TYPE;           #REQUIRED
+                 encoding        %DATA_ENCODING_TYPE;    "Base64"
+>
+
+<!-- Inline File -->
+<!ELEMENT File (#PCDATA)>
+<!ATTLIST File
+                 name            %STRING_TYPE;           #REQUIRED
+                 format          %FILE_FORMAT_TYPE;      "SVG"
+>
+
+
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!-- Text elements                                                        -->
+<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+<!ENTITY % text_element "#PCDATA | Span | Field | NL">
+
+<!ELEMENT Span (%text_element;)*>
+<!ATTLIST Span
+                 font_family     %STRING_TYPE;           #IMPLIED
+                 font_size       %LENGTH_TYPE;           #IMPLIED
+                 font_weight     %FONT_WEIGHT_TYPE;      #IMPLIED
+                 font_italic     %BOOLEAN_TYPE;          #IMPLIED
+                 color           %UINT_TYPE;             #IMPLIED
+                 color_field     %STRING_TYPE;           #IMPLIED
+                 line_spacing    %LENGTH_TYPE;           #IMPLIED
+>
+
+<!ELEMENT Field EMPTY>
+<!ATTLIST Field
+                 name            %STRING_TYPE;           #REQUIRED
+>
+
+<!ELEMENT NL EMPTY>
diff --git a/templates/hama-iso-templates.xml b/templates/hama-iso-templates.xml
new file mode 100644 (file)
index 0000000..de2153e
--- /dev/null
@@ -0,0 +1,378 @@
+<?xml version="1.0"?>
+
+<Glabels-templates xmlns="http://glabels.org/xmlns/3.0/">
+
+  <!-- ******************************************************************** -->
+  <!-- Hama products.                                                      -->
+  <!-- ******************************************************************** -->
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50150. Printable mousepad.                                     -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50150" size="A4" _description="Printable mousepad">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="189.5mm" height="249.4mm" round="0mm" x_waste="5mm" y_waste="5mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="1" ny="1" x0="10mm" y0="23.8mm" dx="199.5mm" dy="259.4mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50151. Round labels 40mm.                                      -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50151" size="A4" _description="Round labels">
+    <Meta category="label"/>
+    <Meta category="round-label"/>
+    <Label-round id="0" radius="20mm" waste="3mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="4" ny="6" x0="16mm" y0="16mm" dx="46mm" dy="46.5mm"/>
+    </Label-round>
+  </Template>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50390. Photo labels.                                           -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50390" size="A4" _description="Photo labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta category="photo"/>
+    <Label-rectangle id="0" width="130mm" height="90mm" round="0mm" x_waste="40mm" y_waste="27.5mm">
+      <Markup-margin size="0mm"/>
+      <Layout nx="1" ny="2" x0="40mm" y0="30.1mm" dx="210mm" dy="150mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Hama" part="50392" equiv="50390"/>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50393. Photo labels.                                           -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50391" size="A4" _description="Photo labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta category="photo"/>
+    <Label-rectangle id="0" width="151mm" height="100mm" round="0mm" x_waste="25mm" y_waste="24mm">
+      <Markup-margin size="0mm"/>
+      <Layout nx="1" ny="2" x0="29mm" y0="24mm" dx="201mm" dy="149mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Hama" part="50393" equiv="50391"/>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50400. Business cards.                                         -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50400" size="A4" _description="Business cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Label-rectangle id="0" width="85mm" height="55mm" round="0mm" x_waste="5mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="5" x0="13.5mm" y0="10.5mm" dx="95mm" dy="55mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Hama" part="50401" equiv="50400"/>
+  <Template brand="Hama" part="50405" equiv="50400"/>
+  <Template brand="Hama" part="50410" equiv="50400"/>
+  <Template brand="Hama" part="50415" equiv="50400"/>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50402. Business cards.                                         -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50402" size="A4" _description="Business cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Label-rectangle id="0" width="81mm" height="50.8mm" round="0mm" x_waste="8mm" y_waste="2mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="5" x0="16mm" y0="14.5mm" dx="97mm" dy="54.8mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Hama" part="50403" equiv="50402"/>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50430. CD inlets.                                              -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50430" size="A4" _description="CD inlet">
+    <Meta category="card"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="119.5mm" height="119.5mm" round="0mm" x_waste="10mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="1" ny="2" x0="45mm" y0="29.5mm" dx="139.5mm" dy="119.5mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Hama" part="50431" equiv="50430"/>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50432. CD inlets.                                              -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50432-1" size="A4" _description="CD inlet (front)">
+    <Meta category="card"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="151mm" height="121mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Markup-line x1="30mm" y1="0mm" x2="30mm" y2="121mm"/>
+      <Layout nx="1" ny="1" x0="30mm" y0="29.5mm" dx="151mm" dy="121mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Hama" part="50432-2" size="A4" _description="CD inlet (back)">
+    <Meta category="card"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="151mm" height="117.5mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="0mm"/>
+      <Markup-line x1="6.5mm" y1="0mm" x2="6.5mm" y2="117.5mm"/>
+      <Markup-line x1="144.5mm" y1="0mm" x2="144.5mm" y2="117.5mm"/>
+      <Markup-rect x1="9.5mm" y1="3mm" w="132mm" h="111.5mm"/>
+      <Layout nx="1" ny="1" x0="30mm" y0="160mm" dx="151mm" dy="117.5mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50434. Zip disc inlets.                                        -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50434" size="A4" _description="Zip disc inlet">
+    <Meta category="card"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="100mm" height="200mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-line x1="0mm" y1="10mm" x2="100mm" y2="10mm"/>
+      <Markup-line x1="0mm" y1="18mm" x2="100mm" y2="18mm"/>
+      <Markup-line x1="0mm" y1="116mm" x2="100mm" y2="116mm"/>
+      <Markup-rect x1="3mm" y1="21mm" w="94mm" h="92mm"/>
+      <Markup-rect x1="3mm" y1="119mm" w="94mm" h="78mm"/>
+      <Markup-margin size="0mm"/>
+      <Layout nx="1" ny="1" x0="55mm" y0="47.5mm" dx="100mm" dy="200mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50435. DVD inlets.                                             -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50435" size="A4" _description="DVD inlet">
+    <Meta category="card"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="184mm" height="275mm" round="0mm" x_waste="5mm" y_waste="5mm">
+      <Markup-line x1="0mm" y1="130.5mm" x2="184mm" y2="130.5mm"/>
+      <Markup-line x1="0mm" y1="144.5mm" x2="184mm" y2="144.5mm"/>
+      <Markup-margin size="0mm"/>
+      <Layout nx="1" ny="1" x0="13mm" y0="12.5mm" dx="194mm" dy="285mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50436. VHS-C inlets.                                           -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50436" size="A4" _description="VHS-C inlet">
+    <Meta category="card"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="98.5mm" height="91.5mm" round="0mm" x_waste="20mm" y_waste="20mm">
+      <Markup-margin size="0mm"/>
+      <Markup-line x1="15.5mm" y1="0mm" x2="15.5mm" y2="91.5mm"/>
+      <Markup-line x1="38.5mm" y1="0mm" x2="38.5mm" y2="91.5mm"/>
+      <Layout nx="1" ny="2" x0="55.75mm" y0="28.5mm" dx="138.5mm" dy="148.5mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50437. Video-8 inlets.                                         -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50437" size="A4" _description="Video-8 inlet">
+    <Meta category="card"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="155mm" height="98.5mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="0mm"/>
+      <Markup-line x1="16mm" y1="0mm" x2="16mm" y2="98.5mm"/>
+      <Markup-line x1="32mm" y1="0mm" x2="32mm" y2="98.5mm"/>
+      <Markup-line x1="95mm" y1="0mm" x2="95mm" y2="98.5mm"/>
+      <Layout nx="1" ny="2" x0="23mm" y0="22.5mm" dx="155mm" dy="153.5mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50438. VHS inlets.                                             -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50438" size="A4" _description="VHS inlet">
+    <Meta category="card"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="189.5mm" height="256mm" round="0mm" x_waste="10.25mm" y_waste="20.5mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="1" ny="1" x0="10.25mm" y0="20.5mm" dx="210mm" dy="297mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50440. Foldable Greeting cards.                                -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50440" size="A4" _description="Greeting cards">
+    <Meta category="card"/>
+    <Meta category="foldable"/>
+    <Label-rectangle id="0" width="210mm" height="145mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Markup-line x1="105mm" y1="0mm" x2="105mm" y2="145mm"/>
+      <Layout nx="1" ny="2" x0="0mm" y0="0mm" dx="210mm" dy="145mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50450. Rectangular labels.                                     -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50450" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="70mm" height="37mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="3" ny="8" x0="0mm" y0="0mm" dx="70mm" dy="37mm"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50452. Rectangular labels.                                     -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50452" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="25.4mm" height="25.4mm" round="0mm" x_waste="2.5mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="6" ny="11" x0="15.8mm" y0="9mm" dx="30.4mm" dy="25.4mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50455. Rectangular labels.                                     -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50455" size="A4" _description="Rectangular Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="105mm" height="148mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="2" x0="0mm" y0="0mm" dx="105mm" dy="148mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50460. Rectangular labels.                                     -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50460" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="210mm" height="297mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="1" ny="1" x0="0mm" y0="0mm" dx="210mm" dy="297mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50465. Diskette labels.                                        -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50465" size="A4" _description="Diskette labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="70mm" height="50.8mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="3" ny="5" x0="0mm" y0="21mm" dx="70mm" dy="50.8mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50470. Zip disc labels.                                        -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50470" size="A4" _description="Zip disc labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="50mm" height="50mm" round="0mm" x_waste="5mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="3" ny="5" x0="13.8mm" y0="23.8mm" dx="61.2mm" dy="50mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50475. CD/DVD labels.                                          -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50475" size="A4" _description="CD/DVD labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="58.7mm" hole="19.5mm" waste="10mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="1" ny="2" x0="46mm" y0="16mm" dx="137.4mm" dy="147.8mm"/>
+    </Label-cd>
+  </Template>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50480. Arch File labels.                                       -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50480" size="A4" _description="Arch File Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="190mm" height="38mm" round="0mm" x_waste="10mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="1" ny="7" x0="10mm" y0="16mm" dx="210mm" dy="38mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50485. Arch File labels.                                       -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50485" size="A4" _description="Arch File labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="190mm" height="58mm" round="0mm" x_waste="10mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="1" ny="5" x0="10mm" y0="3.5mm" dx="210mm" dy="58mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50505. Rectangular labels.                                     -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50505" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="210mm" height="297mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="1" ny="1" x0="0mm" y0="0mm" dx="210mm" dy="297mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50515. Rectangular labels.                                     -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50515" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="105mm" height="148.5mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="2" x0="0mm" y0="0mm" dx="105mm" dy="148.5mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50517. 1" Square labels.                                       -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50517" size="A4" _description="Square labels">
+    <Meta category="label"/>
+    <Meta category="square-label"/>
+    <Label-rectangle id="0" width="25.4mm" height="25.4mm" round="0mm" x_waste="2.5mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="6" ny="11" x0="16.2mm" y0="8.8mm" dx="30.42mm" dy="25.4mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ==================================================================== -->
+  <!-- Hama 50520. Mini Disc labels.                                       -->
+  <!-- ==================================================================== -->
+  <Template brand="Hama" part="50520-1" size="A4" _description="Mini Disc labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="52.5mm" height="37mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="4" ny="8" x0="0mm" y0="0mm" dx="52.5mm" dy="37mm"/>
+    </Label-rectangle>
+  </Template>
+
+</Glabels-templates>
diff --git a/templates/herma-iso-templates.xml b/templates/herma-iso-templates.xml
new file mode 100644 (file)
index 0000000..9d91fcb
--- /dev/null
@@ -0,0 +1,408 @@
+<?xml version="1.0"?>
+
+<Glabels-templates>
+
+
+  <!-- ******************************************************************** -->
+  <!-- ******************************************************************** -->
+  <!--                                                                      -->
+  <!-- Herma A4 products.                                                   -->
+  <!--                                                                      -->
+  <!-- ******************************************************************** -->
+  <!-- ******************************************************************** -->
+
+
+  <!-- =================================================================== -->
+  <!-- Data Becker Etiketten Paket: Ordnerrucken, 6 per sheet              -->
+  <!-- =================================================================== -->
+  <Template brand="Herma" part="4283" size="A4" _description="Arch File Labels (small)">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="544.252" height="110.551" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="1" ny="6" x0="25.5118" y0="32.5984" dx="544.252" dy="133.228"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Herma" part="5090" equiv="4283"/>
+  <Template brand="Herma" part="5091" equiv="4283"/>
+  
+
+  <!-- =================================================================== -->
+  <!-- Data Becker Etiketten Paket: Ordnerrucken, 4 per sheet              -->
+  <!-- =================================================================== -->
+  <Template brand="Herma" part="4284" size="A4" _description="Arch File Labels (large)">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="544.252" height="174.331" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="1" ny="4" x0="25.5118" y0="38.2677" dx="544.252" dy="197.008"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Herma" part="5095" equiv="4284"/>
+  <Template brand="Herma" part="5096" equiv="4284"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Herma Musteretiketten: Ordnerrucken, 192 x 38 mm, 7 per sheet       -->
+  <!-- =================================================================== -->
+  <Template brand="Herma" part="4293" size="A4" _description="Arch File Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="544.252" height="107.716" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="1" ny="7" x0="25.5118" y0="42.5197" dx="544.252" dy="107.716"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Herma" part="5092" equiv="4293"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Herma 4464: Mailing Labels - 3 columns, 70 x 37.125 mm, 24 per sheet-->
+  <!-- =================================================================== -->
+  <Template brand="Herma" part="4464" size="A4" _description="Mailing Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="199" height="105" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="3" ny="8" x0="0" y0="0" dx="199" dy="105"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Otto Versand: Allzweck Etiketten, 38 x 21,2 mm, 65 per sheet        -->
+  <!-- =================================================================== -->
+  <Template brand="Herma" part="4606" size="A4" _description="Allround Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="107.716" height="60.0945" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="5" ny="13" x0="26.9291" y0="29.7638" dx="107.716" dy="60.0945"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Herma" part="4270" equiv="4606"/>
+
+  
+  <!-- =================================================================== -->
+  <!-- Herma Musteretiketten: Allzweck Etiketten, 48,3 x 16,9 mm           -->
+  <!-- =================================================================== -->
+  <Template brand="Herma" part="4607" size="A4" _description="Allround Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="136.913" height="47.9055" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="4" ny="16" x0="24.0945" y0="39.6853" dx="136.913" dy="47.9055"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Herma" part="4271" equiv="4607"/>
+
+  
+  <!-- =================================================================== -->
+  <!-- Herma Musteretiketten: Allzweck Etiketten, 44 per sheet             -->
+  <!-- =================================================================== -->
+  <Template brand="Herma" part="4102" size="A4" _description="Allround Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="136.913" height="72" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="4" ny="11" x0="24.0945" y0="24.0945" dx="136.913" dy="72"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Herma" part="4109" equiv="4102"/>
+  <Template brand="Herma" part="4112" equiv="4102"/>
+  <Template brand="Herma" part="4272" equiv="4102"/>
+  <Template brand="Herma" part="4357" equiv="4102"/>
+  <Template brand="Herma" part="4608" equiv="4102"/>
+  <Template brand="Herma" part="4680" equiv="4102"/>
+  <Template brand="Herma" part="4690" equiv="4102"/>
+  <Template brand="Herma" part="4812" equiv="4102"/>
+  <Template brand="Herma" part="5051" equiv="4102"/>
+  <Template brand="Herma" part="8631" equiv="4102"/>
+  <Template brand="Herma" part="8835" equiv="4102"/>
+  <Template brand="Herma" part="8961" equiv="4102"/>
+  <Template brand="Herma" part="8971" equiv="4102"/>
+  <Template brand="Herma" part="8981" equiv="4102"/>
+  <Template brand="Herma" part="10801" equiv="4608"/>
+
+  
+  <!-- =================================================================== -->
+  <!-- Herma Musteretiketten: Allzweck Etiketten, 24 per sheet             -->
+  <!-- =================================================================== -->
+  <Template brand="Herma" part="4614" size="A4" _description="Allround Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="187.086" height="95.811" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="3" ny="8" x0="16.1575" y0="36.8504" dx="187.086" dy="95.811"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Herma" part="4670" equiv="4614"/>
+  <Template brand="Herma" part="5053" equiv="4614"/>
+
+  
+  <!-- =================================================================== -->
+  <!-- Herma 4620: Mailing Labels - 2 columns, 107 x 37 mm, 16 per sheet   -->
+  <!-- =================================================================== -->
+  <Template brand="Herma" part="4620" size="A4" _description="Mailing Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="298" height="105" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="8" x0="0" y0="0" dx="298" dy="105"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Herma Musteretiketten: Adress Etiketten, 24 per sheet               -->
+  <!-- =================================================================== -->
+  <Template brand="Herma" part="4625" size="A4" _description="Mailing Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="297.638" height="119.905" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="7" x0="0" y0="0" dx="297.638" dy="119.905"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Herma" part="4674" equiv="4625"/>
+  <Template brand="Herma" part="5057" equiv="4625"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Data Becker Etiketten Paket: Video Etiketten, 12 per sheet          -->
+  <!-- =================================================================== -->
+  <Template brand="Herma" part="4828" size="A4" _description="Video Labels (face only)">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="223.086" height="131.811" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="6" x0="38.5512" y0="24.9449" dx="295.086" dy="131.811"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Herma" part="5070" equiv="4828"/>
+
+  
+  <!-- =================================================================== -->
+  <!-- Herma 4093: CD/DVD Labels, 2 per sheet                              -->
+  <!-- =================================================================== -->
+  <Template brand="Herma" part="4093" size="A4" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="164.409pt" hole="58.1102pt" waste="9pt">
+      <Markup-margin size="9pt"/>
+      <Layout nx="1" ny="2" x0="133.228pt" y0="46.7717pt" dx="346.819pt" dy="419.528pt"/>
+    </Label-cd>
+  </Template>
+
+  <Template brand="Herma" part="4094" equiv="4093"/>
+  <Template brand="Herma" part="4374" equiv="4093"/>
+  <Template brand="Herma" part="4471" equiv="4093"/>
+  <Template brand="Herma" part="4699" equiv="4093"/>
+  <Template brand="Herma" part="4818" equiv="4093"/>
+  <Template brand="Herma" part="4849" equiv="4093"/>
+  <Template brand="Herma" part="4850" equiv="4093"/>
+  <Template brand="Herma" part="4914" equiv="4093"/>
+  <Template brand="Herma" part="5079" equiv="4093"/>
+  <Template brand="Herma" part="5083" equiv="4093"/>
+  <Template brand="Herma" part="5084" equiv="4093"/>
+  <Template brand="Herma" part="5085" equiv="4093"/>
+  <Template brand="Herma" part="5086" equiv="4093"/>
+  <Template brand="Herma" part="5115" equiv="4093"/>
+  <Template brand="Herma" part="8624" equiv="4093"/>
+  <Template brand="Herma" part="8625a" equiv="4093"/>
+  <Template brand="Herma" part="8683" equiv="4093"/>
+  <Template brand="Herma" part="8740" equiv="4093"/>
+  <Template brand="Herma" part="8885" equiv="4093"/>
+  <Template brand="Herma" part="8900" equiv="4093"/>
+  <Template brand="Herma" part="8928" equiv="4093"/>
+  <Template brand="Herma" part="8943" equiv="4093"/>
+  <Template brand="Herma" part="8968" equiv="4093"/>
+  <Template brand="Herma" part="8975" equiv="4093"/>
+  <Template brand="Herma" part="8984" equiv="4093"/>
+  <Template brand="Herma" part="8994" equiv="4093"/>
+
+  <!-- =================================================================== -->
+  <!-- Data Becker Etiketten Paket: Disketten Etiketten, 10 per sheet      -->
+  <!-- =================================================================== -->
+  <Template brand="Herma" part="8803" size="A4" _description="Diskette Labels (face only)">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="198.425" height="144" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="5" x0="60.9448" y0="60.9448" dx="270.425" dy="144"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Herma" part="8839" equiv="8803"/>
+
+  <!-- =================================================================== -->
+  <!-- Herma 4457: Superprint Labels 105mm x 48mm, 12 per sheet            -->
+  <!-- =================================================================== -->
+  <Template brand="Herma" part="4457" size="A4" _description="Rectangular Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="105mm" height="48mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="6" x0="0mm" y0="5.5mm" dx="105mm" dy="48mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Herma 10809: Superprint Labels 105mm x 148mm, 4 per sheet           -->
+  <!-- =================================================================== -->
+    <Template brand="Herma" part="10809" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="105mm" height="148mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="2" x0="0mm" y0="0mm" dx="105mm" dy="148mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Herma 4097: Rectangular Labels 45.72mm x 21.2mm, 2 per sheet        -->
+  <!-- =================================================================== -->
+
+  <Template brand="Herma" part="4097" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="45.72mm" height="21.2mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="4" ny="12" x0="10mm" y0="22mm" dx="48.72mm" dy="21.2mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Herma" part="4221" equiv="4097"/>
+  <Template brand="Herma" part="4232" equiv="4097"/>
+  <Template brand="Herma" part="4235" equiv="4097"/>
+  <Template brand="Herma" part="4346" equiv="4097"/>
+  <Template brand="Herma" part="4366" equiv="4097"/>
+  <Template brand="Herma" part="4367" equiv="4097"/>
+  <Template brand="Herma" part="4368" equiv="4097"/>
+  <Template brand="Herma" part="4369" equiv="4097"/>
+  <Template brand="Herma" part="8864" equiv="4097"/>
+  <Template brand="Herma" part="8940" equiv="4097"/>
+  <Template brand="Herma" part="8965" equiv="4097"/>
+  <Template brand="Herma" part="9531" equiv="4097"/>
+  <Template brand="Herma" part="10004" equiv="4097"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Herma 4098: Rectangular Labels 63.5mm x 29.6mm, 27 per sheet        -->
+  <!-- =================================================================== -->
+  <Template brand="Herma" part="4098" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="63.5mm" height="29.6mm" round="0mm" x_waste="1.5mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="3" ny="9" x0="7.8mm" y0="15.5mm" dx="66.5mm" dy="29.6mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Herma" part="4222" equiv="4098"/>
+  <Template brand="Herma" part="4233" equiv="4098"/>
+  <Template brand="Herma" part="4347" equiv="4098"/>
+  <Template brand="Herma" part="4418" equiv="4098"/>
+  <Template brand="Herma" part="4419" equiv="4098"/>
+  <Template brand="Herma" part="4864" equiv="4098"/>
+  <Template brand="Herma" part="5045" equiv="4098"/>
+  <Template brand="Herma" part="5140" equiv="4098"/>
+  <Template brand="Herma" part="5141" equiv="4098"/>
+  <Template brand="Herma" part="5142" equiv="4098"/>
+  <Template brand="Herma" part="5143" equiv="4098"/>
+  <Template brand="Herma" part="8865" equiv="4098"/>
+  <Template brand="Herma" part="8966" equiv="4098"/>
+  <Template brand="Herma" part="10006" equiv="4098"/>
+  <Template brand="Herma" part="10300" equiv="4098"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Herma 4099: Rectangular Labels 96mm x 50.8mm, 10 per sheet         -->
+  <!-- =================================================================== -->
+  <Template brand="Herma" part="4099" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="96mm" height="50.8mm" round="0mm" x_waste="1.5mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="5" x0="8mm" y0="21.5mm" dx="99mm" dy="50.8mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Herma" part="4223" equiv="4099"/>
+  <Template brand="Herma" part="4349" equiv="4099"/>
+  <Template brand="Herma" part="4667" equiv="4099"/>
+  <Template brand="Herma" part="8653" equiv="4099"/>
+  <Template brand="Herma" part="8806" equiv="4099"/>
+  <Template brand="Herma" part="8845" equiv="4099"/>
+  <Template brand="Herma" part="8893" equiv="4099"/>
+  <Template brand="Herma" part="8967" equiv="4099"/>
+  <Template brand="Herma" part="10013" equiv="4099"/>
+  <Template brand="Herma" part="10307" equiv="4099"/>
+
+  <!-- =================================================================== -->
+  <!-- Herma 4100: Rectangular Labels 30.48mm x 16.93mm, 96 per sheet     -->
+  <!-- =================================================================== -->
+  <Template brand="Herma" part="4100" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="30.48mm" height="16.93mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="6" ny="16" x0="7.5mm" y0="18.5mm" dx="32.9mm" dy="16.93mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Herma" part="4110" equiv="4100"/>
+  <Template brand="Herma" part="8832" equiv="4100"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Herma 4101: Rectangular Labels 43.2mm x 10.3mm, 88 per sheet       -->
+  <!-- =================================================================== -->
+  <Template brand="Herma" part="4101" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="43.2mm" height="10.3mm" round="0mm" x_waste="0mm" y_waste="1mm">
+      <Markup-margin size="1.5mm"/>
+      <Layout nx="4" ny="22" x0="18.6mm" y0="10.5mm" dx="43.2mm" dy="12.65mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Herma" part="4111" equiv="4101"/>
+
+  <!-- =================================================================== -->
+  <!-- Herma 4103: Rectangular Labels 63.5mm x 38.1mm, 21 per sheet       -->
+  <!-- =================================================================== -->
+  <Template brand="Herma" part="4103" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="63.5mm" height="38.1mm" round="0mm" x_waste="1.5mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="3" ny="7" x0="6.75mm" y0="15.5mm" dx="66.5mm" dy="38.1mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Herma" part="4113" equiv="4103"/>
+  <Template brand="Herma" part="4641b" equiv="4103"/>
+  <Template brand="Herma" part="4677" equiv="4103"/>
+  <Template brand="Herma" part="4904" equiv="4103"/>
+  <Template brand="Herma" part="5074" equiv="4103"/>
+  <Template brand="Herma" part="8632" equiv="4103"/>
+  <Template brand="Herma" part="8650" equiv="4103"/>
+  <Template brand="Herma" part="8680" equiv="4103"/>
+  <Template brand="Herma" part="8801" equiv="4103"/>
+  <Template brand="Herma" part="8838" equiv="4103"/>
+  <Template brand="Herma" part="8890" equiv="4103"/>
+  <Template brand="Herma" part="9600" equiv="4103"/>
+  <Template brand="Herma" part="9621" equiv="4103"/>
+  <Template brand="Herma" part="9661" equiv="4103"/>
+  <Template brand="Herma" part="10007" equiv="4103"/>
+  <Template brand="Herma" part="10301" equiv="4103"/>
+  <Template brand="Herma" part="10802" equiv="4103"/>
+
+
+</Glabels-templates>
+
+
+
diff --git a/templates/jac-iso-templates.xml b/templates/jac-iso-templates.xml
new file mode 100644 (file)
index 0000000..7f5e4f1
--- /dev/null
@@ -0,0 +1,611 @@
+<?xml version="1.0"?>
+
+<Glabels-templates xmlns="http://glabels.org/xmlns/3.0/">
+
+  <!-- ******************************************************************** -->
+  <!-- JAC products.                                                       -->
+  <!-- ******************************************************************** -->
+
+  <!-- ==================================================================== -->
+  <!-- JAC CD label sheet with rectangular labels.                          -->
+  <!-- ==================================================================== -->
+
+  <Template brand="JAC" part="987349-1" size="A4" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="58mm" hole="20.8mm" waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="1" ny="2" x0="5.5mm" y0="5.5mm" dx="116mm" dy="169mm"/>
+      <Layout nx="1" ny="1" x0="87.5mm" y0="90mm" dx="116mm" dy="116mm"/>
+    </Label-cd>
+  </Template>
+
+  <Template brand="JAC" part="987349-2" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="70mm" height="34mm" round="1.2mm" x_waste="5mm" y_waste="1.5mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="1" ny="2" x0="133.5mm" y0="5.5mm" dx="80mm" dy="39mm"/>
+      <Layout nx="1" ny="2" x0="133mm" y0="216.5mm" dx="80mm" dy="39mm"/>
+      <Layout nx="1" ny="1" x0="5.5mm" y0="130mm" dx="80mm" dy="37mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 117 CD labels.                                                  -->
+  <!-- ******************************************************************** -->
+  <Template brand="JAC" part="117" size="A4" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="58.5mm" hole="20mm" waste="5mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="1" ny="2" x0="46.5mm" y0="21.5mm" dx="123.35mm" dy="137mm"/>
+    </Label-cd>
+  </Template>
+
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 3821 rectangular labels.                                        -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="3821" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="38mm" height="21.2mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="5" ny="13" x0="10mm" y0="10.7mm" dx="38mm" dy="21.2mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 4816 rectangular labels.                                        -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="4816" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="48.3mm" height="16.9mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="4" ny="16" x0="8.4mm" y0="13.3mm" dx="48.3mm" dy="16.9mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 4825 rectangular labels.                                        -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="4825" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="48.3mm" height="25.4mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="4" ny="11" x0="8.4mm" y0="8.8mm" dx="48.3mm" dy="25.4mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 5221 rectangular labels.                                        -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="5221" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="52.2mm" height="21.2mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="4" ny="14" x0="0.6mm" y0="0mm" dx="52.2mm" dy="21.2mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 5229 rectangular labels.                                        -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="5229" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="52.5mm" height="29.7mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="4" ny="10" x0="0.6mm" y0="0mm" dx="52.5mm" dy="29.7mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 6339 rectangular labels.                                        -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="6339" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="63mm" height="39.5mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="3" ny="7" x0="10.5mm" y0="10.25mm" dx="63mm" dy="39.5mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 6633 rectangular labels.                                        -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="6633" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="66mm" height="33.8mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="3" ny="8" x0="6mm" y0="13.3mm" dx="66mm" dy="33.8mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 7016 rectangular labels.                                        -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="7016" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="70mm" height="16.9mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="3" ny="17" x0="0mm" y0="4.85mm" dx="70mm" dy="16.9mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 6339 rectangular labels.                                        -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="7025" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="70mm" height="25.4mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="3" ny="11" x0="0mm" y0="8.8mm" dx="70mm" dy="25.4mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 7029 rectangular labels.                                        -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="7029" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="70mm" height="29.7mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="3" ny="10" x0="0mm" y0="0mm" dx="70mm" dy="29.7mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 7032 rectangular labels.                                        -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="7032" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="70mm" height="32mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="3" ny="9" x0="0mm" y0="4.5mm" dx="70mm" dy="32mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 7036 rectangular labels.                                        -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="7036" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="70mm" height="36mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="3" ny="8" x0="0mm" y0="9mm" dx="70mm" dy="36mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 7037 rectangular labels.                                        -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="7037" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="70mm" height="37.12mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="3" ny="8" x0="0mm" y0="0mm" dx="70mm" dy="37.12mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 7041 rectangular labels.                                        -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="7041" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="70mm" height="41mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="3" ny="7" x0="0mm" y0="10mm" dx="70mm" dy="41mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 7042 rectangular labels.                                        -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="7042" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="70mm" height="42.4mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="3" ny="7" x0="0mm" y0="0mm" dx="70mm" dy="42.4mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 7050 rectangular labels.                                        -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="7050" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="70mm" height="50.8mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="3" ny="5" x0="0mm" y0="21.5mm" dx="70mm" dy="50.8mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 7067 rectangular labels.                                        -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="7067" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="70mm" height="67.7mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="3" ny="4" x0="0mm" y0="13.1mm" dx="70mm" dy="67.7mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 8937 rectangular labels.                                        -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="8937" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="89mm" height="37.12mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="8" x0="11mm" y0="0mm" dx="89mm" dy="37.12mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 9633 rectangular labels.                                        -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="9633" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="96.5mm" height="33.8mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="8" x0="8.5mm" y0="13.3mm" dx="96.5mm" dy="33.8mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 9642 rectangular labels.                                        -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="9642" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="96.5mm" height="42.3mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="6" x0="8.5mm" y0="21.6mm" dx="96.5mm" dy="42.3mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 9667 rectangular labels.                                        -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="9667" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="96.5mm" height="67.7mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="4" x0="8.5mm" y0="13.1mm" dx="96.5mm" dy="67.7mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 10537 rectangular labels.                                       -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="10537" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="105mm" height="37mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="8" x0="0mm" y0="0.5mm" dx="105mm" dy="37mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 10541 rectangular labels.                                       -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="10541" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="105mm" height="41mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="7" x0="0mm" y0="10mm" dx="105mm" dy="41mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 10542 rectangular labels.                                       -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="10542" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="105mm" height="42.4mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="7" x0="0mm" y0="1.5mm" dx="105mm" dy="42.4mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 10548 rectangular labels.                                       -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="10548" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="105mm" height="48mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="6" x0="0mm" y0="4.5mm" dx="105mm" dy="48mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 10557 rectangular labels.                                       -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="10557" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="105mm" height="57mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="5" x0="0mm" y0="6mm" dx="105mm" dy="57mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 10570 rectangular labels.                                       -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="10570" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="105mm" height="70mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="4" x0="0mm" y0="8.5mm" dx="105mm" dy="70mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 10574 rectangular labels.                                       -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="10574" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="105mm" height="74.25mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="4" x0="0mm" y0="0mm" dx="105mm" dy="74.25mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 70362 rectangular labels.                                       -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="70362" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="70mm" height="36mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="3" ny="8" x0="0mm" y0="4.5mm" dx="70mm" dy="36mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 70412 rectangular labels.                                       -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="70412" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="70mm" height="41mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="3" ny="7" x0="0mm" y0="5mm" dx="70mm" dy="41mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- JAC 105148 rectangular labels.                                      -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="JAC" part="105148" size="A4" _description="Rectangular labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="105mm" height="148mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="2" x0="0mm" y0="0mm" dx="105mm" dy="148mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************* -->
+  <!-- JAC 210297, 210mm x 297mm, 1 per sheet                             -->
+  <!-- ******************************************************************* -->
+
+  <Template brand="JAC" part="210297" size="A4" _description="Labels A4">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="210mm" height="297mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="1" ny="1" x0="0mm" y0="0mm" dx="210mm" dy="297mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************* -->
+  <!-- JAC F-32 PVC labels, 54 per sheet                                  -->
+  <!-- ******************************************************************* -->
+  <Template brand="JAC" part="F-32" size="Other" width="323mm" height="222.25mm" _description="PVC labels">
+    <Meta category="label"/>
+    <Meta category="round-label"/>
+    <Label-round id="0" radius="16mm" waste="1.1mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="9" ny="6" x0="6mm" y0="10mm" dx="34.375mm" dy="34.85mm"/>
+    </Label-round>
+  </Template>
+
+  <!-- ******************************************************************* -->
+  <!-- JAC F-50 PVC labels, 20 per sheet                                  -->
+  <!-- ******************************************************************* -->
+  <Template brand="JAC" part="F-50" size="Other" width="323mm" height="222.25mm" _description="PVC labels">
+    <Meta category="label"/>
+    <Meta category="round-label"/>
+    <Label-round id="0" radius="25mm" waste="0.9mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="5" ny="4" x0="6mm" y0="10mm" dx="64.25mm" dy="52.083mm"/>
+    </Label-round>
+  </Template>
+
+  <!-- ******************************************************************* -->
+  <!-- JAC F-67 PVC labels, 12 per sheet                                  -->
+  <!-- ******************************************************************* -->
+  <Template brand="JAC" part="F-67" size="Other" width="323mm" height="222.25mm" _description="PVC labels">
+    <Meta category="label"/>
+    <Meta category="round-label"/>
+    <Label-round id="0" radius="33.5mm" waste="2mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="4" ny="3" x0="5.2mm" y0="11.05mm" dx="77mm" dy="71mm"/>
+    </Label-round>
+  </Template>
+
+  <!-- ******************************************************************* -->
+  <!-- JAC F-100 PVC labels, 6 per sheet                                  -->
+  <!-- ******************************************************************* -->
+  <Template brand="JAC" part="F-100" size="Other" width="323mm" height="222.25mm" _description="PVC labels">
+    <Meta category="label"/>
+    <Meta category="round-label"/>
+    <Label-round id="0" radius="50mm" waste="3mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="3" ny="2" x0="3mm" y0="11.25mm" dx="107mm" dy="107.5mm"/>
+    </Label-round>
+  </Template>
+
+  <!-- ******************************************************************* -->
+  <!-- JAC F-120 PVC labels, 4 per sheet                                  -->
+  <!-- ******************************************************************* -->
+  <Template brand="JAC" part="F-120" size="Other" width="250mm" height="258mm" _description="PVC labels">
+    <Meta category="label"/>
+    <Meta category="round-label"/>
+    <Label-round id="0" radius="60mm" waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="2" x0="2.5mm" y0="10.5mm" dx="125mm" dy="125mm"/>
+    </Label-round>
+  </Template>
+
+  <!-- ******************************************************************* -->
+  <!-- JAC F-147 PVC labels, 4 per sheet                                          -->
+  <!-- ******************************************************************* -->
+  <Template brand="JAC" part="F-147" size="Other" width="323mm" height="304.8mm" _description="PVC labels">
+    <Meta category="label"/>
+    <Meta category="round-label"/>
+    <Label-round id="0" radius="73.5mm" waste="2.5mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="2" x0="3mm" y0="3.5mm" dx="152mm" dy="152mm"/>
+    </Label-round>
+  </Template>
+
+  <!-- ******************************************************************* -->
+  <!-- JAC F-2048 PVC labels, 48 per sheet                                -->
+  <!-- ******************************************************************* -->
+  <Template brand="JAC" part="F-2048" size="Other" width="323mm" height="222.2mm" _description="PVC labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="20mm" height="48mm" round="2.5mm" x_waste="2.5mm" y_waste="2.5mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="6" ny="4" x0="2.6mm" y0="12.6mm" dx="25mm" dy="53mm"/>
+      <Layout nx="6" ny="4" x0="164.1mm" y0="12.6mm" dx="25mm" dy="53mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************* -->
+  <!-- JAC F-3070 PVC labels, 24 per sheet                                -->
+  <!-- ******************************************************************* -->
+  <Template brand="JAC" part="F-3070" size="Other" width="323mm" height="222.25mm" _description="PVC labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="70mm" height="30mm" round="2.5mm" x_waste="2.4mm" y_waste="2.4mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="2" ny="6" x0="2.4mm" y0="15.1mm" dx="75mm" dy="35mm"/>
+      <Layout nx="2" ny="6" x0="163.9mm" y0="15.1mm" dx="75mm" dy="35mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************* -->
+  <!-- JAC F-3248 PVC labels, 32 per sheet                                -->
+  <!-- ******************************************************************* -->
+  <Template brand="JAC" part="F-3248" size="Other" width="323mm" height="222.25mm" _description="PVC labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="32mm" height="48mm" round="2.5mm" x_waste="2mm" y_waste="2mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="4" ny="4" x0="2.3mm" y0="12.7mm" dx="37mm" dy="53mm"/>
+      <Layout nx="4" ny="4" x0="163.8mm" y0="12.7mm" dx="37mm" dy="53mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************* -->
+  <!-- JAC F-32102 PVC labels, 16 per sheet                               -->
+  <!-- ******************************************************************* -->
+  <Template brand="JAC" part="F-32102" size="Other" width="323mm" height="222.25mm" _description="PVC labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="32mm" height="102mm" round="2.5mm" x_waste="2.5mm" y_waste="2.5mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="4" ny="2" x0="2.5mm" y0="10.45mm" dx="37mm" dy="107mm"/>
+      <Layout nx="4" ny="2" x0="164mm" y0="10.4mm" dx="37mm" dy="107mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************* -->
+  <!-- JAC F-68102 PVC labels, 8 per sheet                                -->
+  <!-- ******************************************************************* -->
+  <Template brand="JAC" part="F-68102" size="Other" width="323mm" height="222.25mm" _description="PVC labels">
+    <Meta category="label"/>
+    <Meta category="elliptical-label"/>
+    <Label-ellipse id="0" width="68mm" height="102mm" waste="2.5mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="4" ny="2" x0="5mm" y0="11.05mm" dx="78mm" dy="107mm"/>
+    </Label-ellipse>
+  </Template>
+
+  <!-- ******************************************************************* -->
+  <!-- JAC F-102150 PVC labels, 4 per sheet                               -->
+  <!-- ******************************************************************* -->
+  <Template brand="JAC" part="F-102150" size="Other" width="323mm" height="222.25mm" _description="PVC labels">
+    <Meta category="label"/>
+    <Meta category="elliptical-label"/>
+    <Label-ellipse id="0" width="150mm" height="102mm" waste="2mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="2" x0="3.5mm" y0="10.75mm" dx="160.5mm" dy="107.2mm"/>
+    </Label-ellipse>
+  </Template>
+
+</Glabels-templates>
diff --git a/templates/maco-us-templates.xml b/templates/maco-us-templates.xml
new file mode 100644 (file)
index 0000000..d48acbd
--- /dev/null
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+
+<Glabels-templates>
+
+
+  <!-- ******************************************************************** -->
+  <!-- ******************************************************************** -->
+  <!--                                                                      -->
+  <!-- Maco US-Letter products                                              -->
+  <!--                                                                      -->
+  <!-- ******************************************************************** -->
+  <!-- ******************************************************************** -->
+
+
+  <Template brand="Maco" part="LL5805" size="US-Letter" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="2.625in" height="1in" round="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="3" ny="10" x0="0.1875in" y0="0.5in" dx="2.75in" dy="1in"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <Template brand="Maco" part="ML-1225" size="US-Letter" _description="Round Labels">
+    <Meta category="label"/>
+    <Meta category="round-label"/>
+    <Label-round id="0" radius="1.25in" waste="0pt">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="3" ny="4" x0="0.21in" y0="0.425in" dx="2.75in" dy="2.515in"/>
+    </Label-round>
+  </Template>
+
+
+</Glabels-templates>
+
+
+
+
diff --git a/templates/meritline-us-templates.xml b/templates/meritline-us-templates.xml
new file mode 100644 (file)
index 0000000..756449f
--- /dev/null
@@ -0,0 +1,178 @@
+<?xml version="1.0"?>
+
+<Glabels-templates>
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Meritline                 -->
+  <!--                           -->
+  <!-- ************************* -->
+
+
+  <!-- ===================================================================-->
+  <!-- Meritline Mini CD/DVD Labels (face only), 5 per sheet              -->
+  <!-- ===================================================================-->
+  <Template brand="Meritline" part="176-020-001" size="US-Letter" _description="Mini-CD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="110.5" hole="57.5" waste="5">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="2" x0="48.4" y0="47.6" dx="299.5" dy="481.5"/>
+      <Layout nx="1" ny="1" x0="197.3" y0="289.5" dx="0" dy="0"/>
+    </Label-cd>
+  </Template>
+
+  <Template brand="Meritline" part="176-019-001" equiv="176-020-001"/>
+  <Template brand="Meritline" part="176-009-001" equiv="176-020-001"/>
+
+  <!-- ===================================================================-->
+  <!-- Meritline Address Labels, 30 per sheet                            -->
+  <!-- ===================================================================-->
+  <Template brand="Meritline" part="177-002-001" size="US-Letter" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="2.625in" height="1in" round="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="3" ny="10" x0="0.1875in" y0="0.5in" dx="2.75in" dy="1in"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ===================================================================-->
+  <!-- Meritline Address Labels, 20 per sheet                            -->
+  <!-- ===================================================================-->
+  <Template brand="Meritline" part="177-003-001" size="US-Letter" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="4in" height="1in" round="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="10" x0="0.15625in" y0="0.5in" dx="4.1875in" dy="1in"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ===================================================================-->
+  <!-- Meritline Address Labels, 14 per sheet                            -->
+  <!-- ===================================================================-->
+  <Template brand="Meritline" part="177-004-001" size="US-Letter" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="4in" height="1.333333333in" round="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="7"
+              x0="0.15625in" y0="0.833333333in" dx="4.1875in" dy="1.333333333in"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ===================================================================-->
+  <!-- Meritline Shipping Labels, 10 per sheet                           -->
+  <!-- ===================================================================-->
+  <Template brand="Meritline" part="177-005-001" size="US-Letter" _description="Shipping Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="4in" height="2in" round="0.125in">
+      <Markup-margin size="0.125in"/>
+      <Layout nx="2" ny="5" x0="0.1625in" y0="0.5in" dx="4.1875in" dy="2in"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ===================================================================-->
+  <!-- Meritline Shipping Labels, 6 per sheet                            -->
+  <!-- ===================================================================-->
+  <Template brand="Meritline" part="177-006-001" size="US-Letter" _description="Shipping Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="4in" height="3.333333333in" round="0.125in">
+      <Markup-margin size="0.125in"/>
+      <Layout nx="2" ny="3" x0="0.15625in" y0="0.5in" dx="4.1875in" dy="3.333333333in"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ===================================================================-->
+  <!-- Meritline Return Address Labels, 80 per sheet                     -->
+  <!-- ===================================================================-->
+  <Template brand="Meritline" part="177-008-001" size="US-Letter" _description="Return Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="1.75in" height="0.5in" round="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="4" ny="20" x0="0.28125in" y0="0.5in" dx="2.0625in" dy="0.5in"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ===================================================================-->
+  <!-- Meritline Full Sheet Labels, 1 per sheet                                  -->
+  <!-- ===================================================================-->
+  <Template brand="Meritline" part="177-007-001" size="US-Letter" _description="Full Sheet Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="8.5in" height="11.in" round="0">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="1" ny="1" x0="0" y0="0" dx="0" dy="0"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ===================================================================-->
+  <!-- Meritline Address Labels, 12 per sheet                            -->
+  <!-- ===================================================================-->
+  <Template brand="Meritline" part="177-010-001" size="US-Letter" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="4in" height="1.5in" round="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="6" x0="0.1875in" y0="1in" dx="4.125in" dy="1.5in"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ===================================================================-->
+  <!-- Meritline Round Labels, 24 per sheet                              -->
+  <!-- ===================================================================-->
+  <Template brand="Meritline" part="177-014-001" size="US-Letter" _description="Round Labels">
+    <Meta category="label"/>
+    <Meta category="round-label"/>
+    <Label-round id="0" radius="0.8125in" waste="0pt">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="4" ny="6" x0="0.4157in" y0="0.549in" dx="2.0145in" dy="1.6554in"/>
+    </Label-round>
+  </Template>
+
+  <!-- ===================================================================-->
+  <!-- Meritline Diskette Labels, 9 per sheet                            -->
+  <!-- ===================================================================-->
+  <Template brand="Meritline" part="177-009-001" size="US-Letter" _description="Diskette Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="2.75in" height="2.75in" round="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="3" ny="3" x0="0.125in" y0="0.5in" dx="2.75in" dy="3in"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ===================================================================-->
+  <!-- Meritline Video Tape Face Labels, 10 per sheet                    -->
+  <!-- ===================================================================-->
+  <Template brand="Meritline" part="177-012-001" size="US-Letter"
+         _description="Video Tape Face Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="220" height="133" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="5" x0="80" y0="60.5" dx="236" dy="133"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ===================================================================-->
+  <!-- Meritline Video Tape Spine Labels, 15 per sheet                   -->
+  <!-- ===================================================================-->
+  <Template brand="Meritline" part="177-013-001" size="US-Letter"
+        _description="Video Tape Spine Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="414" height="48" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="1" ny="15" x0="99" y0="36" dx="0" dy="48"/>
+    </Label-rectangle>
+  </Template>
+
+</Glabels-templates>
+
+
+
+
diff --git a/templates/misc-iso-templates.xml b/templates/misc-iso-templates.xml
new file mode 100644 (file)
index 0000000..4815e0a
--- /dev/null
@@ -0,0 +1,639 @@
+<?xml version="1.0"?>
+
+<Glabels-templates xmlns="http://glabels.org/xmlns/3.0/">
+
+
+  <!-- ******************************************************************** -->
+  <!-- Misc. ISO sized products.                                            -->
+  <!-- ******************************************************************** -->
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Agipa                     -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Agipa 119488: Business Cards, 50 x 90 mm, 10 per sheet              -->
+  <!-- =================================================================== -->
+  <Template brand="Agipa" part="119488" size="A4" _description="Business Cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Label-rectangle id="0" width="255" height="142" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="5" x0="43" y0="67" dx="255" dy="142"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- APLI                      -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- ====================================================== -->
+  <!-- APLI 02793: Business Cards, 50,8 x 90 mm, 10 per sheet -->
+  <!-- ====================================================== -->
+  <Template brand="APLI" part="02793" size="A4" _description="Business Cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Label-rectangle id="0" width="255.118" height="144" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="5" x0="42.5197" y0="62.3622" dx="255.118" dy="144"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- APLI 1999:  Mailing Labels, 9,9cm x 6,8cm, 8 per sheet              -->
+  <!-- =================================================================== -->
+  <Template brand="APLI" part="1999" size="A4" _description="Mailing Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="281" height="193" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="4" x0="13" y0="21.890" dx="289" dy="194"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- APLI 01293:  General Labels.                                        -->
+  <!-- =================================================================== -->
+  <Template brand="APLI" part="01293" size="A4" _description="General Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="198.425pt" height="94.3937pt" round="0pt" x_waste="0pt" y_waste="0pt">
+      <Markup-margin size="0pt"/>
+      <Layout nx="3" ny="8" x0="0pt" y0="43.3701pt" dx="198.425pt" dy="94.3937pt"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Best Office               -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Best Office Self-adhesive labels.                                   -->
+  <!-- =================================================================== -->
+  <Template brand="Best Office" part="75753" size="A4" _description="Self-adhesive labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="70mm" height="36mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="3" ny="8" x0="0mm" y0="4mm" dx="70mm" dy="36mm"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Biltema                   -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Biltema 23-756: Address labels, 63.50 x 71.98 mm, 12 per sheet      -->
+  <!-- =================================================================== -->
+  <Template brand="Biltem" part="23-756" size="A4" _description="Address labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="180" height="204.038" round="8.5">
+      <Markup-margin size="5"/>
+      <Layout nx="3" ny="4" x0="20.84" y0="10" dx="187.08" dy="204.038"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Bruna                     -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Bruna 241301.  Mailing Labels.                                      -->
+  <!-- =================================================================== -->
+  <Template brand="Bruna" part="241301" size="A4" _description="Mailing Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="198.425pt" height="102.047pt" round="0pt" x_waste="0pt" y_waste="0pt">
+      <Markup-margin size="9pt"/>
+      <Layout nx="3" ny="8" x0="0pt" y0="0pt" dx="198.425pt" dy="102.047pt"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Celcast                   -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Celcast IJ37: Fridge magnet (stickers), 52 x 90 mm, 10 per sheet    -->
+  <!-- =================================================================== -->
+  <Template brand="Celcast" part="IJ37" size="A4" _description="Fridge Magnet Stickers">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="255" height="147.5" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="5" x0="43" y0="52.7" dx="255" dy="147.5"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Connect                   -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Connect KF10647 Mailing Labels..                                    -->
+  <!-- =================================================================== -->
+  <Template brand="Connect" part="KF10647" size="A4" _description="Mailing Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="198.425pt" height="104.882pt" round="0pt" x_waste="0pt" y_waste="0pt">
+      <Markup-margin size="9pt"/>
+      <Layout nx="3" ny="8" x0="7.86772e-17pt" y0="11.3386pt" dx="198.425pt" dy="104.882pt"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Ednet                     -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Ednet BC: Business Cards, 51 x 89 mm, 10 per sheet                  -->
+  <!-- =================================================================== -->
+  <!-- TODO: Is this a real part #? -->
+  <Template brand="Ednet" part="BC" size="A4" _description="Business Cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Label-rectangle id="0" width="253" height="145" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="5" x0="40" y0="59" dx="253" dy="145"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Ednet 45021: Inkjet/Laser Labels 70x37mm                            -->
+  <!-- =================================================================== -->
+  <Template brand="Ednet" part="45021" size="A4" _description="Inkjet/Laser Labels 70x37mm">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="198.425pt" height="104.882pt" round="0pt" x_waste="0pt" y_waste="0pt">
+      <Markup-margin size="0pt"/>
+      <Layout nx="3" ny="8" x0="0pt" y0="0pt" dx="198.425pt" dy="104.882pt"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Encre.com                 -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- ===================================================================-->
+  <!-- Encre.com Business Cards, 10 per sheet                             -->
+  <!-- ===================================================================-->
+  <Template brand="Encre.com" part="BCV10" size="A4" _description="Business Cards">  
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Label-rectangle id="0" width="243.78" height="153.07">  
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="5" x0="48.19" y0="42.50" dx="255.12" dy="157.32"/>  
+    </Label-rectangle> 
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Epson                     -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- EPSON Photo Stickers, 17 x 24 mm, 16 per sheet                      -->
+  <!-- =================================================================== -->
+  <Template brand="Epson" part="S041144" size="A6" _description="EPSON Photo Stickers 16">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="48" height="68" round="7">
+      <Markup-margin size="5"/>
+      <Layout nx="4" ny="4" x0="33" y0="59" dx="59.5" dy="79.5"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Fellows                   -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Fellows 04715 CD/DVD Labels (Face only).                            -->
+  <!-- =================================================================== -->
+  <Template brand="Fellows" part="04715" size="A4" _description="CD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="166.5pt" hole="58.5pt" waste="9pt">
+      <Markup-margin size="9pt"/>
+      <Layout nx="1" ny="2" x0="133.2pt" y0="50.4pt" dx="244.276pt" dy="363.6pt"/>
+    </Label-cd>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Hema                      -->
+  <!--                           -->
+  <!-- ************************* -->
+  <!-- TODO: Is this a typo of "Herma?" -->
+
+  <!-- =================================================================== -->
+  <!-- Hema Etiketten: 65 x 38 mm, 21 per sheet                            -->
+  <!-- =================================================================== -->
+  <!-- TODO: What is the actual part #? -->
+  <Template brand="Hema" part="Etiketten" size="A4" _description="Rectangular Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="178" height="108" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="3" ny="7" x0="20" y0="49.890" dx="187" dy="107"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Impact                    -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- ============================================================ -->
+  <!-- Impact LC33 Family: Rectangular Labels                       -->
+  <!-- ============================================================ -->
+  <Template brand="Impact" part="LC33" size="A4" description="Rectangular Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="70mm" height="25mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3mm"/>
+      <Layout nx="3" ny="11" x0="0mm" y0="10mm" dx="70mm" dy="25mm"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Kores                     -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Kores KPCV1: Business Cards, 50 x 90 mm, 10 per sheet              -->
+  <!-- =================================================================== -->
+  <Template brand="Kores" part="KPCV1" size="A4" _description="Business Cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Label-rectangle id="0" width="90mm" height="50mm" round="0">
+      <Markup-margin size="1mm"/>
+      <Layout nx="2" ny="5" x0="15mm" y0="24mm" dx="90mm" dy="50mm"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- LeLabel                   -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- ===================================================================-->
+  <!-- LeLabel 2001.018 CD/DVD Labels, 1 per sheet                        -->
+  <!-- ===================================================================-->
+  <Template brand="LeLabel" part="2001.018" size="A4" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="168.08" hole="54.69" waste="5">
+      <Markup-margin size="5"/>
+      <Layout nx="1" ny="1" x0="128.556" y0="42.52" dx="0" dy="0"/>
+    </Label-cd>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Media Line                -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- ===================================================================-->
+  <!-- Media Line CD/DVD Labels (face only), 2 per sheet                  -->
+  <!-- ===================================================================-->
+  <Template brand="MediaLine" part="760-50475 A4 CD" size="A4" _description="CD/DVD Labels (face only)">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="166.5" hole="58.5" waste="5">
+      <Markup-margin size="5"/>
+      <Layout nx="1" ny="2" x0="133" y0="45" dx="0" dy="422"/>
+    </Label-cd>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Neato                     -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- ===================================================================-->
+  <!-- Neato brand CD/DVD Labels (face only), 2 per sheet                 -->
+  <!-- ===================================================================-->
+  <!-- TODO: Is this the actual part #? -->
+  <Template brand="Neato" part="A4 CD" size="A4" _description="CD/DVD Labels (face only)">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="166.5" hole="58.5" waste="5">
+      <Markup-margin size="5"/>
+      <Layout nx="1" ny="2" x0="125" y0="68.890" dx="0" dy="360"/>        
+    </Label-cd>                                                      
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Poundland                 -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Poundland 30 Labels.                                                -->
+  <!-- =================================================================== -->
+  <!-- TODO: Is this the actual part #? -->
+  <Template brand="Poundland" part="30" size="A4" _description="Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="184.252pt" height="72pt" round="8.50394pt" x_waste="4.25197pt" y_waste="0pt">
+      <Markup-margin size="7.08661pt"/>
+      <Layout nx="3" ny="10" x0="4.25197pt" y0="62.3622pt" dx="201.26pt" dy="72pt"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Pressit                   -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Pressit CD Labels.                                                  -->
+  <!-- =================================================================== -->
+  <Template brand="Pressit" part="50blank" size="A4" _description="CD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="166.5pt" hole="58.5pt" waste="9pt">
+      <Markup-margin size="9pt"/>
+      <Layout nx="1" ny="1" x0="30.096pt" y0="70.416pt" dx="351pt" dy="351pt"/>
+      <Layout nx="1" ny="1" x0="233.208pt" y0="440.712pt" dx="351pt" dy="351pt"/>
+    </Label-cd>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Russian                   -->
+  <!--                           -->
+  <!-- ************************* -->
+  <!-- TODO: Is this the actual vendor? Or is this a generic for multiple
+       vendors? -->
+
+  <!-- =================================================================== -->
+  <!-- Russian A3 5x9 Business Cards.                                      -->
+  <!-- =================================================================== -->
+  <!-- TODO: Is this the actual part #? -->
+  <Template brand="Russian" part="A3 5x9" size="A3" _description="Business Cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Label-rectangle id="0" width="90mm" height="50mm" round="0">
+      <Markup-margin size="5pt"/>
+      <Layout nx="3" ny="8" x0="14mm" y0="10mm" dx="90mm" dy="50mm"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Russian A4 5x9 Business Cards.                                      -->
+  <!-- =================================================================== -->
+  <!-- TODO: Is this the actual part #? -->
+  <Template brand="Russian" part="A4 5x9" size="A4" _description="Business Cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Label-rectangle id="0" width="50mm" height="90mm" round="0">
+      <Markup-margin size="5pt"/>
+      <Layout nx="4" ny="3" x0="5mm" y0="13mm" dx="50mm" dy="90mm"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Ryman                     -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Ryman P14 Universal labels.                                         -->
+  <!-- =================================================================== -->
+  <Template brand="Ryman" part="P14" size="A4" _description="Universal Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="99.1mm" height="38.1mm" round="0.2mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="7" x0="4.2mm" y0="13.8mm" dx="102mm" dy="38.1mm"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Ryman Standard CD/DVD Labels.                                       -->
+  <!-- =================================================================== -->
+  <!-- Is this the actual part #? -->
+  <Template brand="Ryman" part="Standard CD/DVD" size="A4" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="165.827pt" hole="58.1102pt" waste="9pt">
+      <Markup-margin size="9pt"/>
+      <Layout nx="1" ny="2" x0="131.811pt" y0="60.6614pt" dx="245.622pt" dy="388.346pt"/>
+    </Label-cd>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Ryman 0215016061 CD/DVD Labels.                                     -->
+  <!-- =================================================================== -->
+  <Template brand="Ryman" part="0215016061" size="A4" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="165.827pt" hole="24.0945pt" waste="8.50394pt">
+      <Markup-margin size="0pt"/>
+      <Layout nx="1" ny="2" x0="131.811pt" y0="60.6614pt" dx="348.661pt" dy="388.346pt"/>
+    </Label-cd>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Sanwa                     -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Sanwa LB-CDRJP.  CD Labels.                                         -->
+  <!-- =================================================================== -->
+  <Template brand="Sanwa" part="LB-CDRJP" size="A4" _description="CD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="167.244pt" hole="34.0pt" waste="9pt">
+      <Markup-margin size="9pt"/>
+      <Layout nx="1" ny="2" x0="29.1969pt" y0="70.8661pt" dx="352.488pt" dy="367.087pt"/>
+    </Label-cd>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Sigel                     -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Sigel LP 800/LP 801/LP 802: Business Cards, 55.0 x 85.0 mm          -->
+  <!-- =================================================================== -->
+  <Template brand="Sigel" part="LP 800" size="A4" _description="Business Cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Label-rectangle id="0" width="85.0mm" height="55.0mm" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="5" x0="15.0mm" y0="10.0mm" dx="95.0mm" dy="55.0mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Sigel" part="LP 801" equiv="LP 800"/>
+  <Template brand="Sigel" part="LP 802" equiv="LP 800"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Sigel DP 830/DP 930: Business Cards, 55.0 x 85.0 mm, 10 per sheet   -->
+  <!-- =================================================================== -->
+  <Template brand="Sigel" part="DP 830" size="A4" _description="Business Cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Label-rectangle id="0" width="240.9" height="155.9" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="5" x0="40" y0="31" dx="269" dy="156"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Sigel DE 160: Bottle labels, 4 per sheet                                   -->
+  <!-- =================================================================== -->
+  <Template brand="Sigel" part="DE 160" size="A4" _description="Bottle labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.sigel.de/en_gb/Workflow/Labels/118/1406-Labels+for+bottles%2C+to+design+and+customize"/>
+    <Label-rectangle id="0" width="80mm" height="120mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="2" x0="15mm" y0="19.5mm" dx="100mm" dy="138mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Sigel" part="DP 930" equiv="DP 830"/>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Staples                   -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Staples EU Business Cards Supreme.                                  -->
+  <!-- =================================================================== -->
+  <!-- TODO: Is this the actual part #? -->
+  <Template brand="Staples" part="EU BC Supreme" size="A4" _description="Business Cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Label-rectangle id="0" width="240.945pt" height="155.906pt" round="0pt" x_waste="0pt" y_waste="0pt">
+      <Markup-margin size="9.07087pt"/>
+      <Layout nx="1" ny="5" x0="42.5197pt" y0="28.3465pt" dx="240.945pt" dy="155.906pt"/>
+      <Layout nx="1" ny="5" x0="311.811pt" y0="28.3465pt" dx="240.945pt" dy="155.906pt"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Staples STAP14 Mailing Labels.                                      -->
+  <!-- =================================================================== -->
+  <Template brand="Staples" part="STAP14" size="A4" _description="Mailing Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Label-rectangle id="0" width="99mm" height="38mm" round="2mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3mm"/>
+      <Layout nx="2" ny="7" x0="5mm" y0="15mm" dx="102mm" dy="38mm"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Stomper                   -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- CD STOMPER PRO CD Label Refills, (Face Only) ISO Version            -->
+  <!-- =================================================================== -->
+  <!-- TODO: Is this the actual part #? -->
+  <Template brand="Stomper" part="PRO A4" size="A4" _description="PRO CD Labels 2-up (face only)">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="166.5" hole="58" waste="10">
+      <Markup-margin size="5"/>
+      <Layout nx="1" ny="1" x0="34.5" y0="47" dx="0" dy="0"/>
+      <Layout nx="1" ny="1" x0="223" y0="459" dx="0" dy="0"/>
+    </Label-cd>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Viking                    -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- ===================================================================-->
+  <!-- Viking 02204 Etiketten, 21 per sheet                               -->
+  <!-- ===================================================================-->
+  <Template brand="Viking" part="02204" size="A4" _description="Etiketten">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="198" height="120" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="3" ny="7" x0="0" y0="0" dx="198" dy="120"/>
+    </Label-rectangle>
+  </Template>
+
+
+
+</Glabels-templates>
+
+
+
+
diff --git a/templates/misc-other-templates.xml b/templates/misc-other-templates.xml
new file mode 100644 (file)
index 0000000..273b819
--- /dev/null
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+
+<Glabels-templates>
+
+
+  <!-- ******************************************************************** -->
+  <!-- Misc. non-standard sized products.                                   -->
+  <!-- ******************************************************************** -->
+
+
+  <!-- ******************************************************************** -->
+  <!-- Merax US-Letter products.                                            -->
+  <!-- ******************************************************************** -->
+
+  <!-- =================================================================== -->
+  <!-- Merax CD Labels                                                     -->
+  <!-- =================================================================== -->
+  <Template brand="Merax" part="CD Labels" size="US-Letter" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Meta product_url="http://www.merax.com/products/Labels/cddvd.html"/>
+    <Label-cd id="0" radius="166.5" hole="58.5" waste="5">
+      <Markup-margin size="5"/>
+      <Layout nx="1" ny="1" x0="33.75" y0="45" dx="0" dy="0"/>
+      <Layout nx="1" ny="1" x0="245.25" y0="411.75" dx="0" dy="0"/>
+    </Label-cd>
+  </Template>
+
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- OfficeMax                 -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- OfficeMax 86112: Multi-Purpose Labels, 2'' x 4'', 3 per sheet       -->
+  <!-- =================================================================== -->
+  <Template brand="OfficeMax" part="86112" size="Other" width="297pt" height="450pt"
+            _description="Multi-Purpose Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="288pt" height="144pt" round="9pt" waste="0pt">
+      <Markup-margin size="9pt"/>
+      <Layout nx="1" ny="3" x0="4.5pt" y0="3.6pt" dx="288pt" dy="148.5pt"/>
+    </Label-rectangle>
+  </Template>
+
+
+
+</Glabels-templates>
diff --git a/templates/misc-us-templates.xml b/templates/misc-us-templates.xml
new file mode 100644 (file)
index 0000000..a424c88
--- /dev/null
@@ -0,0 +1,356 @@
+<?xml version="1.0"?>
+
+<Glabels-templates>
+
+
+
+  <!-- ******************************************************************** -->
+  <!-- Misc. US sized products.                                             -->
+  <!-- ******************************************************************** -->
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Great Gizmos              -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Great Gizmos : CD/DVD Labels (face only), 2 per sheet             * -->
+  <!-- =================================================================== -->
+  <!-- TODO: Is this the actual part #? -->
+  <Template brand="Great Gizmos" part="CD/DVD" size="US-Letter"
+          _description="CD/DVD Labels (face only)">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="166.5" hole="58.5" waste="5">
+      <Markup-margin size="5"/>
+      <Layout nx="1" ny="2" x0="139.5" y0="42.52" dx="0" dy="374.17"/>
+    </Label-cd>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Imation-SoniX             -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Imation-SoniX CD/DVD Labels  (Face Only)                          * -->
+  <!-- =================================================================== -->
+  <Template brand="Imation-SoniX" part="No.5112 15954" size="US-Letter"
+         _description="CD/DVD Labels (Face Only)">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="167.8" hole="18.5" waste="5">
+      <Markup-margin size="5"/>
+      <Layout nx="1" ny="1" x0="40.5" y0="370" dx="0" dy="0"/>
+    </Label-cd>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Kingdom                   -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Kingdom L Cassette Labels, 12 per sheet.                            -->
+  <!-- =================================================================== -->
+  <!-- TODO: Is this the actual part #? -->
+  <Template brand="Kingdom" part="L" size="US-Letter" _description="Cassette Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="252pt" height="117pt" round="9pt" x_waste="2.376pt" y_waste="2.376pt">
+      <Markup-margin size="9pt"/>
+      <Layout nx="2" ny="6" x0="33.12pt" y0="27pt" dx="261pt" dy="126.144pt"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Memorex                   -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Memorex CD Labels                                                 * -->
+  <!-- =================================================================== -->
+  <!-- TODO: Is this the actual part #? -->
+  <Template brand="Memorex" part="CD Labels" size="US-Letter" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="166.5" hole="58.5" waste="5">
+      <Markup-margin size="5"/>
+      <Layout nx="1" ny="1" x0="40.5" y0="45" dx="0" dy="0"/>
+      <Layout nx="1" ny="1" x0="238.5" y0="414" dx="0" dy="0"/>
+    </Label-cd>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Neato                     -->
+  <!--                           -->
+  <!-- ************************* -->
+  <!-- TODO: None of the Neato part #s do not seem to follow a consistent
+       pattern.  What are the actual part #s of these items. -->
+
+  <!-- ===================================================================-->
+  <!-- Neato Slimline CD Jewel Case Insert, 2 per sheet.                  -->
+  <!-- Left margin area is CD spine; ignore other margins.                -->
+  <!-- To write text on spine, use "upside down" template, "rotated",     -->
+  <!-- spine is bottom margin, print label sheet BOTTOM FIRST.            -->
+  <!-- ===================================================================-->
+  <Template brand="Neato" part="Slimline CD Case" size="US-Letter"
+         _description="Slimline CD Case (rightside up)">
+    <Meta category="card"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="394.5" height="342.5" round="0">
+      <Markup-margin size="7.5"/>
+      <Layout nx="1" ny="2" x0="130" y0="41.9" dx="0" dy="363"/>
+    </Label-rectangle>
+  </Template>
+  <Template brand="Neato" part="Slimline CD Case, spine" size="US-Letter"
+         _description="Slimline CD Case (upside down)">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="394.5" height="342.5" round="0">
+      <Markup-margin size="7.5"/>
+      <Layout nx="1" ny="2" x0="96.5" y0="41.9" dx="0" dy="363"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Neato USCD2lbl.NTT: CD/DVD Labels (face only), 2 per sheet          -->
+  <!-- =================================================================== -->
+  <Template brand="Neato" part="USCD2lbl.NTT" size="US-Letter"
+         _description="CD/DVD Labels (face only)">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="166.5" hole="58.5" waste="9">
+      <Markup-margin size="5"/>
+      <Layout nx="1" ny="2" x0="139.5" y0="49.5" dx="0" dy="360"/>
+    </Label-cd>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Neato USCD2lbl.NTT: CD/DVD Labels (rectangles), 2 per sheet         -->
+  <!-- =================================================================== -->
+  <Template brand="Neato" part="USCD2lbl Rectangles" size="US-Letter"
+        _description="CD Template Rectangles">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="77.04" height="234.36" round="10">
+      <Markup-margin size="2.016"/>
+      <Layout nx="2" ny="1" x0="51.3" y0="279.72" dx="433.44" dy="0"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Neato CLP-192328/26: HandiCD-R 50MB, 3" x 2_1/8'', 9 per sheet      -->
+  <!-- =================================================================== -->
+  <Template brand="Neato" part="HandiCD-R" size="US-Letter"
+        _description="Business Card CD">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="108" width="171" hole="58" waste="5">
+      <Markup-margin size="5"/>
+      <Layout nx="3" ny="3" x0="36.5" y0="54" dx="184.5" dy="234"/>
+    </Label-cd>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Neato 69143: Jewel Case Booklet                                     -->
+  <!-- =================================================================== -->
+  <Template brand="Neato" part="69143" size="US-Letter" _description="Jewel Case Booklet">
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="4.75in" height="9.5in" round="0in" x_waste="0in" y_waste="0in">
+      <Markup-margin size="0.125in"/>
+      <Markup-line x1="0in" y1="4.75in" x2="4.75in" y2="4.75in"/>
+      <Layout nx="1" ny="1" x0="1.875in" y0="0.75in" dx="4.75in" dy="9.5in"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Netc                      -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Netc Label Stock: DLT Labels, (www.netclabels.com), 30 per sheet    -->
+  <!-- =================================================================== -->
+  <Template brand="Netc" part="749303-70001 " size="US-Letter" _description="DLT Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="162" height="59.4" round="0">
+      <Markup-margin size="18"/>
+      <Layout nx="3" ny="10" x0="36" y0="45" dx="189" dy="72"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- OfficeMax                 -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- OfficeMax OM99060 Mailing Labels.                                   -->
+  <!-- =================================================================== -->
+  <Template brand="OfficeMax" part="OM99060" size="US-Letter" _description="Mailing Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="203.76pt" height="72pt" round="0pt" x_waste="0pt" y_waste="0pt">
+      <Markup-margin size="12.024pt"/>
+      <Layout nx="3" ny="10" x0="0pt" y0="36pt" dx="203.76pt" dy="72pt"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Online Labels             -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Online Labels OL1025 Round Labels.                                  -->
+  <!-- =================================================================== -->
+  <Template brand="Online Labels" part="OL1025" size="US-Letter" _description="Round Labels">
+    <Meta category="label"/>
+    <Meta category="round-label"/>
+    <Meta product_url="http://www.onlinelabels.com/OL1025.htm"/>
+    <Label-round id="0" radius="0.5in" waste="0.062in">
+      <Markup-margin size="0.125in"/>
+      <Layout nx="7" ny="9" x0="0.375in" y0="0.5in" dx="1.125in" dy="1.125in"/>
+    </Label-round>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Southworth                -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Southworth BC: Business Cards, 2'' x 3_1/2'', 10 per sheet          -->
+  <!-- =================================================================== -->
+  <Template brand="Southworth" part="BC554" size="US-Letter" _description="Business Cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Meta product_url="http://shop.southworth.com/groups.php?cat=1&amp;group=6"/>
+    <Label-rectangle id="0" width="252" height="144" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="5" x0="36" y0="36" dx="288" dy="144"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Southworth" part="BC564" equiv="BC554"/>
+  <Template brand="Southworth" part="BC#11" equiv="BC554"/>
+  <Template brand="Southworth" part="BC#12" equiv="BC554"/>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Staples                   -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Staples 598385 CD/DVD Labels.                                       -->
+  <!-- =================================================================== -->
+  <Template brand="Staples" part="598385" size="US-Letter" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="2.312in" hole="0.8125in" waste="0.065in">
+      <Markup-margin size="0.125in"/>
+      <Layout nx="1" ny="2" x0="2in" y0="0.6875in" dx="4.754in" dy="5in"/>
+    </Label-cd>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Stomper                   -->
+  <!--                           -->
+  <!-- ************************* -->
+  <!-- TODO: Are these the actual part #s? -->
+
+  <!-- =================================================================== -->
+  <!-- CD STOMPER PRO CD Label Refills, (Face Only)                      * -->
+  <!-- =================================================================== -->
+  <Template brand="Stomper" part="PRO CD" size="US-Letter"
+         _description="PRO CD Labels 2-up (face only)">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="166.5" hole="58.5" waste="5">
+      <Markup-margin size="5"/>
+      <Layout nx="1" ny="1" x0="34" y0="43" dx="0" dy="0"/>
+      <Layout nx="1" ny="1" x0="245" y0="416" dx="0" dy="0"/>
+    </Label-cd>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- CD STOMPER PRO Zip Label Refills.                                 * -->
+  <!-- =================================================================== -->
+  <Template brand="Stomper" part="PRO Zip" size="US-Letter"
+         _description="PRO CD Labels 2-up (Face only)">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="168" height="142" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="1" ny="2" x0="407" y0="68" dx="0" dy="142"/>
+      <Layout nx="1" ny="2" x0="37" y0="440" dx="0" dy="142"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- CD STOMPER PRO Spine Label Refills.                               * -->
+  <!-- =================================================================== -->
+  <Template brand="Stomper" part="PRO Spine" size="US-Letter"
+         _description="PRO CD Labels 2-up (CD spine only)">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="288" height="20" round="0">
+      <Markup-margin size="2"/>
+      <Layout nx="2" ny="1" x0="18" y0="385" dx="288" dy="0"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- ************************* -->
+  <!--                           -->
+  <!-- Tough-Tags                -->
+  <!--                           -->
+  <!-- ************************* -->
+
+  <!-- =================================================================== -->
+  <!-- Tough-Tags TTLW-2016 Microtube labels, 85 per sheet.                -->
+  <!-- =================================================================== -->
+  <Template brand="Tough-Tags" part="TTLW-2016" size="US-Letter" _description="Microtube labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="92.16" height="36" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="5" ny="17" x0="68" y0="4.17" dx="100.8" dy="45.3"/>
+    </Label-rectangle>
+  </Template> 
+
+
+
+</Glabels-templates>
+
+
+
+
diff --git a/templates/paper-sizes.xml b/templates/paper-sizes.xml
new file mode 100644 (file)
index 0000000..e1049d8
--- /dev/null
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+
+<Glabels-paper-sizes>
+
+  <!-- Most popular (at top of list) -->
+  <Paper-size id="A4"           _name="A4"           pwg_size="iso_a4"       width="210mm" height="297mm"/>
+  <Paper-size id="US-Letter"    _name="US Letter"    pwg_size="na_letter"    width="8.5in" height="11in"/>
+
+  <!-- Other US paper sizes -->
+  <Paper-size id="US-Legal"     _name="US Legal"     pwg_size="na_legal"     width="8.5in"  height="14in"/>
+  <Paper-size id="US-Executive" _name="US Executive" pwg_size="na_executive" width="7.25in" height="10.5in"/>
+
+  <!-- Other ISO A series sizes -->
+  <Paper-size id="A0"           _name="A0"           pwg_size="iso_a0"       width="841mm" height="1189mm"/>
+  <Paper-size id="A1"           _name="A1"           pwg_size="iso_a1"       width="594mm" height="841mm"/>
+  <Paper-size id="A2"           _name="A2"           pwg_size="iso_a2"       width="420mm" height="594mm"/>
+  <Paper-size id="A3"           _name="A3"           pwg_size="iso_a3"       width="297mm" height="420mm"/>
+  <Paper-size id="A5"           _name="A5"           pwg_size="iso_a5"       width="148mm" height="210mm"/>
+  <Paper-size id="A6"           _name="A6"           pwg_size="iso_a6"       width="105mm" height="148mm"/>
+  <Paper-size id="A7"           _name="A7"           pwg_size="iso_a7"       width="74mm"  height="105mm"/>
+  <Paper-size id="A8"           _name="A8"           pwg_size="iso_a8"       width="52mm"  height="74mm"/>
+  <Paper-size id="A9"           _name="A9"           pwg_size="iso_a9"       width="37mm"  height="52mm"/>
+  <Paper-size id="A10"          _name="A10"          pwg_size="iso_a10"      width="26mm"  height="37mm"/>
+
+  <!-- ISO B series sizes -->
+  <Paper-size id="B0"           _name="B0"           pwg_size="iso_b0"       width="1000mm" height="1414mm"/>
+  <Paper-size id="B1"           _name="B1"           pwg_size="iso_b1"       width="707mm"  height="1000mm"/>
+  <Paper-size id="B2"           _name="B2"           pwg_size="iso_b2"       width="500mm"  height="707mm"/>
+  <Paper-size id="B3"           _name="B3"           pwg_size="iso_b3"       width="353mm"  height="500mm"/>
+  <Paper-size id="B4"           _name="B4"           pwg_size="iso_b4"       width="250mm"  height="353mm"/>
+  <Paper-size id="B5"           _name="B5"           pwg_size="iso_b5"       width="176mm"  height="250mm"/>
+  <Paper-size id="B6"           _name="B6"           pwg_size="iso_b6"       width="125mm"  height="176mm"/>
+  <Paper-size id="B7"           _name="B7"           pwg_size="iso_b7"       width="88mm"   height="125mm"/>
+  <Paper-size id="B8"           _name="B8"           pwg_size="iso_b8"       width="62mm"   height="88mm"/>
+  <Paper-size id="B9"           _name="B9"           pwg_size="iso_b9"       width="44mm"   height="62mm"/>
+  <Paper-size id="B10"          _name="B10"          pwg_size="iso_b10"      width="31mm"   height="44mm"/>
+
+  <!-- Envelopes -->
+  <Paper-size id="number10"     _name="#10 Envelope"     pwg_size="na_number-10" width="4.125in" height="9.5in"/>
+  <Paper-size id="monarch"      _name="Monarch Envelope" pwg_size="na_monarch"   width="3.875in" height="7.5in"/>
+  <Paper-size id="c5"           _name="C5"               pwg_size="iso_c5"       width="162mm"   height="229mm"/>
+  <Paper-size id="c6"           _name="C6"               pwg_size="iso_c6"       width="114mm"   height="162mm"/>
+  <Paper-size id="dl"           _name="DL"               pwg_size="iso_dl"       width="110mm"   height="220mm"/>
+
+</Glabels-paper-sizes>
diff --git a/templates/pearl-iso-templates.xml b/templates/pearl-iso-templates.xml
new file mode 100644 (file)
index 0000000..6b8c6a5
--- /dev/null
@@ -0,0 +1,745 @@
+<?xml version="1.0"?>
+
+<Glabels-templates xmlns="http://glabels.org/xmlns/3.0/">
+
+  <!-- ******************************************************************** -->
+  <!-- PEARL products                                                       -->
+  <!-- ******************************************************************** -->
+
+  <!-- =================================================================== -->
+  <!-- PEARL: Adress Labels, 70mm x 36mm, 24 per sheet                     -->
+  <!-- =================================================================== -->
+  <Template brand="PEARL" part="PE-8004" size="A4" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.pearl.de/a-PE8004-2204.shtml"/>
+    <Label-rectangle id="0" width="70mm" height="36mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="3" ny="8" x0="0mm" y0="4.8mm" dx="70mm" dy="36mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="PEARL" part="PE-8014" equiv="PE-8004"/>
+
+  <!-- =================================================================== -->
+  <!-- PEARL: Round labels, d=40mm, 24 per sheet                           -->
+  <!-- =================================================================== -->
+  <Template brand="PEARL" part="VM-6085" size="A4" _description="Round labels">
+    <Meta category="label"/>
+    <Meta category="round-label"/>
+    <Meta product_url="http://www.pearl.de/a-VM6085-2204.shtml"/>
+    <Label-round id="0" radius="20mm" waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="4" ny="6" x0="16mm" y0="13.5mm" dx="46mm" dy="46mm"/>
+    </Label-round>
+  </Template>
+
+  <Template brand="PEARL" part="VM-6585" equiv="VM-6085"/>
+
+  <!-- =================================================================== -->
+  <!-- PEARL: Adress Labels, 48.8mm x 25.4mm, 40 per sheet                 -->
+  <!-- =================================================================== -->
+  <Template brand="PEARL" part="PE-8008" size="A4" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.pearl.de/a-PE8008-2204.shtml"/>
+    <Label-rectangle id="0" width="48.4mm" height="25.4mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="4" ny="10" x0="8mm" y0="21.5mm" dx="48.4mm" dy="25.4mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="PEARL" part="PE-8018" equiv="PE-8008"/>
+
+  <!-- =================================================================== -->
+  <!-- PEARL: Labels, 210mm x 297mm, 1 per sheet                           -->
+  <!-- =================================================================== -->
+  <Template brand="PEARL" part="PE-8007" size="A4" _description="Labels A4">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.pearl.de/a-PE8007-2204.shtml"/>
+    <Label-rectangle id="0" width="210mm" height="297mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="1" ny="1" x0="0mm" y0="0mm" dx="210mm" dy="297mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="PEARL" part="PE-8017" equiv="PE-8007"/>
+
+  <!-- =================================================================== -->
+  <!-- PEARL: Self-adhesive film, 210mm x 297mm, 1 per sheet               -->
+  <!-- =================================================================== -->
+  <Template brand="PEARL" part="PE-8350" size="A4" _description="Self-adhesive film weatherproof">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.pearl.de/a-PE8350-2010.shtml"/>
+    <Label-rectangle id="0" width="210mm" height="297mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="1" ny="1" x0="0mm" y0="0mm" dx="210mm" dy="297mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="PEARL" part="PE-8352" equiv="PE-8350"/>
+
+  <!-- =================================================================== -->
+  <!-- PEARL: Self-adhesive film, 210mm x 297mm, 1 per sheet               -->
+  <!-- =================================================================== -->
+  <Template brand="PEARL" part="PE-8351" size="A4" _description="Self-adhesive film transparent">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.pearl.de/a-PE8351-2200.shtml"/>
+    <Label-rectangle id="0" width="210mm" height="297mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="1" ny="1" x0="0mm" y0="0mm" dx="210mm" dy="297mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="PEARL" part="PE-894" equiv="PE-8351"/>
+
+  <!-- =================================================================== -->
+  <!-- PEARL: Application photos, 45mm x 55mm, 12 per sheet                -->
+  <!-- =================================================================== -->
+  <Template brand="PEARL" part="VM-5040" size="A4" _description="Photo labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta category="photo"/>
+
+    <Meta product_url="http://www.pearl.de/a-VM5040-2002.shtml"/>
+    <Label-rectangle id="0" width="45mm" height="55mm" round="0mm" x_waste="5mm" y_waste="5mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="3" ny="4" x0="27mm" y0="22.5mm" dx="55mm" dy="65mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="PEARL" part="VM-5540" equiv="VM-5040"/>
+
+  <!-- =================================================================== -->
+  <!-- PEARL: Self-adhesive window film, 210mm x 297mm, 1 per sheet        -->
+  <!-- =================================================================== -->
+  <Template brand="PEARL" part="VM-5081" size="A4" _description="Self-adhesive window film">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.pearl.de/a-VM5081-2200.shtml"/>
+    <Label-rectangle id="0" width="210mm" height="297mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="1" ny="1" x0="0mm" y0="0mm" dx="210mm" dy="297mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="PEARL" part="VM-5581" equiv="VM-5081"/>
+
+  <!-- =================================================================== -->
+  <!-- PEARL: Bottle labels, 100mm x 130mm, 4 per sheet                    -->
+  <!-- =================================================================== -->
+  <Template brand="PEARL" part="VM-5217" size="A4" _description="Bottle labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.pearl.de/a-VM5217-2200.shtml"/>
+    <Label-rectangle id="0" width="100mm" height="130mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="2" x0="4.5mm" y0="14mm" dx="107mm" dy="130mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="PEARL" part="VM-5517" equiv="VM-5217"/>
+
+  <!-- =================================================================== -->
+  <!-- PEARL: Self-adhesive film, 210mm x 297mm, 1 per sheet               -->
+  <!-- =================================================================== -->
+  <Template brand="PEARL" part="VM-5220" size="A4" _description="Self-adhesive film weatherproof">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.pearl.de/a-VM5220-2200.shtml"/>
+    <Label-rectangle id="0" width="210mm" height="297mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="1" ny="1" x0="0mm" y0="0mm" dx="210mm" dy="297mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="PEARL" part="VM-5720" equiv="VM-5220"/>
+
+  <!-- =================================================================== -->
+  <!-- PEARL: Floppy disk labels, 70mm x 70mm, 12 per sheet                -->
+  <!-- =================================================================== -->
+  <Template brand="PEARL" part="VM-5221" size="A4" _description="Floppy disk labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.pearl.de/a-VM5221-2204.shtml"/>
+    <Label-rectangle id="0" width="70mm" height="70mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="3" ny="4" x0="0mm" y0="8.5mm" dx="70mm" dy="70mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="PEARL" part="VM-5721" equiv="VM-5221"/>
+
+  <!-- =================================================================== -->
+  <!-- PEARL: Address Labels, 25.4mm x 16.9mm, 102 per sheet               -->
+  <!-- =================================================================== -->
+  <Template brand="PEARL" part="VM-6083" size="A4" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.pearl.de/a-VM6083-2204.shtml"/>
+    <Label-rectangle id="0" width="25.4mm" height="16.9mm" round="1.5mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="7" ny="16" x0="9mm" y0="13mm" dx="27.9mm" dy="16.9mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="PEARL" part="VM-6583" equiv="VM-6083"/>
+
+  <!-- =================================================================== -->
+  <!-- PEARL: Labels, 105mm x 148 mm, 1 per sheet                          -->
+  <!-- =================================================================== -->
+  <Template brand="PEARL" part="VM-6096" size="A6" _description="Labels A6">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.pearl.de/a-VM6096-2204.shtml"/>
+    <Label-rectangle id="0" width="105mm" height="148mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="1" ny="1" x0="0mm" y0="0mm" dx="105mm" dy="148mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="PEARL" part="VM-6596" equiv="VM-6096"/>
+
+  <!-- =================================================================== -->
+  <!-- PEARL: Labels, 148mm x 210 mm, 1 per sheet                          -->
+  <!-- =================================================================== -->
+  <Template brand="PEARL" part="VM-6097" size="A5" _description="Labels A5">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.pearl.de/a-VM6097-2204.shtml"/>
+    <Label-rectangle id="0" width="148mm" height="210mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="1" ny="1" x0="0mm" y0="0mm" dx="148mm" dy="210mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="PEARL" part="VM-6597" equiv="VM-6097"/>
+
+  <!-- =================================================================== -->
+  <!-- PEARL: Photo labels, 45mm x 55mm, 12 per sheet                      -->
+  <!-- =================================================================== -->
+  <Template brand="PEARL" part="VM-6102" size="A4" _description="Photo labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta category="photo"/>
+    <Meta product_url="http://www.pearl.de/a-VM6102-2202.shtml"/>
+    <Label-rectangle id="0" width="45mm" height="55mm" round="0mm" x_waste="5mm" y_waste="5mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="3" ny="4" x0="27mm" y0="23.5mm" dx="55mm" dy="65mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="PEARL" part="VM-6502" equiv="VM-6102"/>
+
+  <!-- =================================================================== -->
+  <!-- PEARL: Photo labels, 210mm x 297mm, 1 per sheet                     -->
+  <!-- =================================================================== -->
+  <Template brand="PEARL" part="VM-6206" size="A4" _description="Photo labels semiglossy">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta category="photo"/>
+    <Meta product_url="http://www.pearl.de/a-VM6206-2202.shtml"/>
+    <Label-rectangle id="0" width="210mm" height="297mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="1" ny="1" x0="0mm" y0="0mm" dx="210mm" dy="297mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="PEARL" part="VM-6706" equiv="VM-6206"/>
+
+  <!-- =================================================================== -->
+  <!-- PEARL: Address Labels, 96.5mm x 42.3mm, 12 per sheet                -->
+  <!-- =================================================================== -->
+  <Template brand="PEARL" part="VM-6232" size="A4" _description="Address Labels (STAMPIT)">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.pearl.de/a-VM6232-2201.shtml"/>
+    <Label-rectangle id="0" width="96.5mm" height="42.1mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="2" ny="6" x0="8.5mm" y0="21mm" dx="96.5mm" dy="42.1mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="PEARL" part="VM-6732" equiv="VM-6232"/>
+
+  <!-- =================================================================== -->
+  <!-- PEARL: Address Labels, 105mm x 74mm, 8 per sheet                    -->
+  <!-- =================================================================== -->
+  <Template brand="PEARL" part="VM-6233" size="A4" _description="Address Labels (STAMPIT)">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.pearl.de/a-VM6233-2204.shtml"/>
+    <Label-rectangle id="0" width="105mm" height="74mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="4" x0="0mm" y0="0.5mm" dx="105mm" dy="74mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="PEARL" part="VM-6733" equiv="VM-6233"/>
+
+  <!-- =================================================================== -->
+  <!-- PEARL: Address Labels, 99.1mm x 57mm, 10 per sheet                  -->
+  <!-- =================================================================== -->
+  <Template brand="PEARL" part="VM-6234" size="A4" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.pearl.de/a-VM6234-2204.shtml"/>
+    <Label-rectangle id="0" width="99.1mm" height="57mm" round="2.5mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="5" x0="5mm" y0="6mm" dx="102.1mm" dy="57mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="PEARL" part="VM-6734" equiv="VM-6234"/>
+
+  <!-- =================================================================== -->
+  <!-- PEARL: Self-adhesive abels, 210mm x 297mm, 1 per sheet              -->
+  <!-- =================================================================== -->
+  <Template brand="PEARL" part="VM-6252" size="A4" _description="Self-adhesive labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.pearl.de/a-VM6252-2202.shtml"/>
+    <Label-rectangle id="0" width="210mm" height="297mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="1" ny="1" x0="0mm" y0="0mm" dx="0mm" dy="297mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="PEARL" part="VM-6752" equiv="VM-6252"/>
+
+  <!-- =================================================================== -->
+  <!-- PEARL: SD card labels, 20mm x 25mm, 90 per sheet                    -->
+  <!-- =================================================================== -->
+  <Template brand="PEARL" part="VM-6398" size="A4" _description="SD card labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.pearl.de/a-VM6398-2204.shtml"/>
+    <Label-rectangle id="0" width="19.6mm" height="25mm" round="1.2mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="1.5mm"/>
+      <Layout nx="9" ny="10" x0="4.5mm" y0="10mm" dx="22.6mm" dy="28mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- PEARL: Address Labels, 105mm x 41mm, 14 per sheet                   -->
+  <!-- =================================================================== -->
+  <Template brand="PEARL" part="VM-8005" size="A4" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.pearl.de/a-PE8005-2204.shtml"/>
+    <Label-rectangle id="0" width="105mm" height="41mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="7" x0="0mm" y0="5mm" dx="105mm" dy="41mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="PEARL" part="VM-8015" equiv="VM-8005"/>
+
+  <!-- =================================================================== -->
+  <!-- PEARL: Inlet for DVD boxes, 182mm x 276mm, 1 per sheet              -->
+  <!-- =================================================================== -->
+
+  <Template brand="PEARL" part="VM-6630" size="A4" _description="DVD inlet">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Meta product_url="http://www.pearl.de/a-VM6630-2211.shtml"/>
+    <Label-rectangle id="0" width="182mm" height="276mm" round="0mm" x_waste="5mm" y_waste="5mm">
+    <Markup-rect x1="2mm" y1="2mm" w="178mm" h="128mm"/>
+    <Markup-rect x1="2mm" y1="146mm" w="178mm" h="128mm"/>
+    <Markup-line x1="0mm" y1="132mm" x2="182mm" y2="132mm"/>
+    <Markup-line x1="0mm" y1="144mm" x2="182mm" y2="144mm"/>
+      <Layout nx="1" ny="1" x0="14mm" y0="10.5mm" dx="192mm" dy="286mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- PEARL: Inlet for CD boxes (front), 120mm x 120mm, 1 per sheet       -->
+  <!-- =================================================================== -->
+
+  <Template brand="PEARL" part="VM-5513-1" size="A4" _description="CD inlet (front)">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Meta product_url="http://www.pearl.de/a-VM5513-2214.shtml"/>
+    <Label-rectangle id="0" width="120mm" height="120mm" round="0mm" x_waste="5mm" y_waste="5mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="1" ny="1" x0="61mm" y0="24mm" dx="130mm" dy="130mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- PEARL: Inlet for CD boxes (back), 150mm x 117.5mm, 1 per sheet      -->
+  <!-- =================================================================== -->
+
+  <Template brand="PEARL" part="VM-5513-2" size="A4" _description="CD inlet (back)">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Meta product_url="http://www.pearl.de/a-VM5513-2214.shtml"/>
+    <Label-rectangle id="0" width="150mm" height="117.5mm" round="0mm" x_waste="5mm" y_waste="5mm">
+    <Markup-rect x1="8mm" y1="2mm" w="134mm" h="113.5mm"/>
+    <Markup-line x1="6mm" y1="0mm" x2="6mm" y2="117.5mm"/>
+    <Markup-line x1="144mm" y1="0mm" x2="144mm" y2="117.5mm"/>
+      <Layout nx="1" ny="1" x0="30.5mm" y0="154.5mm" dx="160mm" dy="127.5mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- Sattleford products                                                  -->
+  <!-- ******************************************************************** -->
+
+  <!-- =================================================================== -->
+  <!-- Sattleford: Business cards, 85mm x 54mm, 10 per sheet               -->
+  <!-- =================================================================== -->
+  <Template brand="Sattleford" part="VM-5019" size="A4" _description="Business cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Meta product_url="http://www.pearl.de/a-VM5019-2014.shtml"/>
+    <Label-rectangle id="0" width="85mm" height="54.2mm" round="0mm" x_waste="5mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="5" x0="13.5mm" y0="13.5mm" dx="95mm" dy="54.2mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Sattleford" part="VM-5519" equiv="VM-5019"/>
+
+  <!-- =================================================================== -->
+  <!-- Sattleford: Passport photo labels, 45mm x 54mm, 12 per sheet        -->
+  <!-- =================================================================== -->
+  <Template brand="Sattleford" part="VM-5040" size="A4" _description="Passport photo labels glossy">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta category="photo"/>
+    <Meta product_url="http://www.pearl.de/a-VM5040-2002.shtml"/>
+    <Label-rectangle id="0" width="45mm" height="54.5mm" round="0mm" x_waste="5mm" y_waste="5mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="3" ny="4" x0="28mm" y0="24.5mm" dx="55mm" dy="64.5mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Sattleford" part="VM-5540" equiv="VM-5040"/>
+
+  <!-- =================================================================== -->
+  <!-- Sattleford: Business cards, 86mm x 54mm, 10 per sheet               -->
+  <!-- =================================================================== -->
+  <Template brand="Sattleford" part="VM-5061" size="A4" _description="Business cards punched">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Meta product_url="http://www.pearl.de/a-VM5061-2014.shtml"/>
+    <Label-rectangle id="0" width="86mm" height="53.8mm" round="0mm" x_waste="2.5mm" y_waste="1mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="5" x0="16.5mm" y0="10mm" dx="91mm" dy="55.8mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Sattleford" part="VM-5561" equiv="VM-5061"/>
+
+  <!-- =================================================================== -->
+  <!-- Sattleford: Business cards, 85mm x 54mm, 10 per sheet               -->
+  <!-- =================================================================== -->
+  <Template brand="Sattleford" part="VM-6059" size="A4" _description="Business cards punched dull">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Meta product_url="http://www.pearl.de/a-VM6059-2013.shtml"/>
+    <Label-rectangle id="0" width="85mm" height="54mm" round="0mm" x_waste="5mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="5" x0="16mm" y0="14mm" dx="95mm" dy="54mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Sattleford" part="VM-6559" equiv="VM-6059"/>
+
+  <!-- =================================================================== -->
+  <!-- Sattleford: Business cards, 85mm x 54mm, 10 per sheet               -->
+  <!-- =================================================================== -->
+  <Template brand="Sattleford" part="VM-6066" size="A4" _description="Business cards high glossy">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Meta product_url="http://www.pearl.de/a-VM6066-2013.shtml"/>
+    <Label-rectangle id="0" width="85mm" height="54mm" round="0mm" x_waste="5mm" y_waste="0mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="2" ny="5" x0="14mm" y0="13mm" dx="95mm" dy="54mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Sattleford" part="VM-6566" equiv="VM-6066"/>
+
+  <!-- =================================================================== -->
+  <!-- Sattleford: Name plates, 85mm x 54mm, 10 per sheet                  -->
+  <!-- =================================================================== -->
+  <Template brand="Sattleford" part="VM-6067" size="A4" _description="Name plates">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta product_url="http://www.pearl.de/a-VM6067-5026.shtml"/>
+    <Label-rectangle id="0" width="85mm" height="54mm" round="0mm" x_waste="5mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="5" x0="15mm" y0="13mm" dx="95mm" dy="54mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Sattleford" part="VM-6567" equiv="VM-6067"/>
+
+  <!-- =================================================================== -->
+  <!-- Sattleford: Passport photo labels, 45mm x 55mm, 12 per sheet        -->
+  <!-- =================================================================== -->
+  <Template brand="Sattleford" part="VM-6102" size="A4" _description="Passport photo labels glossy">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta category="photo"/>
+    <Meta product_url="http://www.pearl.de/a-VM6102-2202.shtml"/>
+    <Label-rectangle id="0" width="45mm" height="55mm" round="0mm" x_waste="5mm" y_waste="5mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="3" ny="4" x0="27mm" y0="23.5mm" dx="55mm" dy="65mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Sattleford" part="VM-6502" equiv="VM-6102"/>
+
+  <!-- =================================================================== -->
+  <!-- Sattleford: Foldable business cards, 180mm x 50mm, 5 per sheet      -->
+  <!-- =================================================================== -->
+  <Template brand="Sattleford" part="VM-6200" size="A4" _description="Business cards glossy, both sides printable">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Meta category="foldable"/>
+    <Meta product_url="http://www.pearl.de/a-VM6200-2013.shtml"/>
+    <Label-rectangle id="0" width="180mm" height="50mm" round="3mm" x_waste="0mm" y_waste="2.5mm">
+      <Markup-rect x1="3.2mm" y1="3.2mm" w="83.6mm" h="43.6mm"/>
+      <Markup-rect x1="93.2mm" y1="3.2mm" w="83.6mm" h="43.6mm"/>
+      <Markup-line x1="90mm" y1="0mm" x2="90mm" y2="50mm"/>
+      <Layout nx="1" ny="5" x0="15mm" y0="14mm" dx="180mm" dy="55mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Sattleford: Business cards, 85mm x 54mm, 10 per sheet               -->
+  <!-- =================================================================== -->
+  <Template brand="Sattleford" part="VM-6253" size="A4" _description="Business cards punched glossy">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Meta product_url="http://www.pearl.de/a-VM6253-2013.shtml"/>
+    <Label-rectangle id="0" width="85mm" height="54mm" round="0mm" x_waste="1mm" y_waste="2.5mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="5" x0="16.5mm" y0="6mm" dx="90mm" dy="55.5mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Sattleford" part="VM-6753" equiv="VM-6253"/>
+
+  <!-- =================================================================== -->
+  <!-- Sattleford: Foldable business cards, 170mm x 54mm, 5 per sheet      -->
+  <!-- =================================================================== -->
+  <Template brand="Sattleford" part="VM-6356" size="A4" _description="Foldable business cards glossy/dull">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Meta category="foldable"/>
+    <Meta product_url="http://www.pearl.de/a-VM6356-2013.shtml"/>
+    <Label-rectangle id="0" width="170mm" height="54mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-rect x1="3.2mm" y1="3.2mm" w="78.6mm" h="47.6mm"/>
+      <Markup-rect x1="88.2mm" y1="3.2mm" w="78.6mm" h="47.6mm"/>
+      <Markup-line x1="85mm" y1="0mm" x2="85mm" y2="54mm"/>
+      <Layout nx="1" ny="5" x0="20mm" y0="14mm" dx="170mm" dy="54mm"/>
+      <Layout nx="1" ny="5" x0="20mm" y0="14mm" dx="170mm" dy="54mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Sattleford" part="VM-5856" equiv="VM-6356"/>
+
+  <!-- =================================================================== -->
+  <!-- Sattleford: Foldable business cards, 180mm x 50mm, 5 per sheet      -->
+  <!-- =================================================================== -->
+  <Template brand="Sattleford" part="VM-6700" size="A4" _description="Foldable business cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Meta category="foldable"/>
+    <Meta product_url="http://www.pearl.de/a-VM6700-2013.shtml"/>
+    <Label-rectangle id="0" width="180mm" height="50mm" round="0mm" x_waste="0mm" y_waste="2.5mm">
+      <Markup-rect x1="3.2mm" y1="3.2mm" w="83.6mm" h="43.6mm"/>
+      <Markup-rect x1="93.2mm" y1="3.2mm" w="83.6mm" h="43.6mm"/>
+      <Markup-line x1="90mm" y1="0mm" x2="90mm" y2="50mm"/>
+      <Layout nx="1" ny="5" x0="15mm" y0="14mm" dx="180mm" dy="55mm"/>
+      <Layout nx="1" ny="5" x0="15mm" y0="14mm" dx="180mm" dy="55mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Sattleford: Elliptical labels, 63.5mm x 42.3mm, 18 per sheet        -->
+  <!-- =================================================================== -->
+
+  <Template brand="Sattleford" part="VM-6084" size="A4" _description="Elliptical labels">
+    <Meta category="label"/>
+    <Meta category="elliptical-label"/>
+    <Meta product_url="http://www.pearl.de/a-VM6084-2204.shtml"/>
+    <Label-ellipse id="0" width="63.5mm" height="42.3mm" waste="0mm">
+      <Markup-margin size="2mm"/>
+      <Layout nx="3" ny="6" x0="7.25mm" y0="11.6mm" dx="66mm" dy="46.3mm"/>
+    </Label-ellipse>
+  </Template>
+
+  <!-- ******************************************************************** -->
+  <!-- Your Design products                                                 -->
+  <!-- ******************************************************************** -->
+
+  <!-- =================================================================== -->
+  <!-- Your Design: Membership cards, 85mm x 54.25mm, 8 per sheet          -->
+  <!-- =================================================================== -->
+  <Template brand="Your Design" part="VM-5112" size="A4" _description="Membership cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Meta print="mirrored"/>
+    <Meta product_url="http://www.pearl.de/a-VM5112-2411.shtml"/>
+    <Label-rectangle id="0" width="85mm" height="54.25mm" round="3.5mm" x_waste="7mm" y_waste="7.5mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="4" x0="12mm" y0="21mm" dx="100mm" dy="68.75mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Your Design" part="VM-5612" equiv="VM-5112"/>
+
+  <!-- =================================================================== -->
+  <!-- Your Design: Membership cards, 85mm x 54.25mm, 8 per sheet          -->
+  <!-- =================================================================== -->
+  <Template brand="Your Design" part="VM-6310" size="A4" _description="Membership cards, both sides printable">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Meta print="mirrored"/>
+    <Meta product_url="http://www.pearl.de/a-VM6310-2013.shtml"/>
+    <Label-rectangle id="0" width="85mm" height="53.5mm" round="2.5mm" x_waste="7.5mm" y_waste="7.5mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="4" x0="12mm" y0="18mm" dx="100mm" dy="69mm"/>
+      <Layout nx="2" ny="4" x0="12mm" y0="18mm" dx="100mm" dy="69mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Your Design" part="VM-6810" equiv="VM-6310"/>
+
+  <!-- =================================================================== -->
+  <!-- Your Design: CD/DVD labels, 3 per sheet                            -->
+  <!-- =================================================================== -->
+  <Template brand="Your Design" part="VM-6352" size="A4" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Meta product_url="http://www.pearl.de/a-VM6352-2213.shtml"/>
+    <Label-cd id="0" radius="58.7mm" hole="17.9mm" waste="1.5mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="1" ny="2" x0="3mm" y0="3mm" dx="120.4mm" dy="173mm"/>
+      <Layout nx="1" ny="1" x0="89mm" y0="89.5mm" dx="120.4mm" dy="120.4mm"/>
+    </Label-cd>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Your Design: CD/DVD labels, 3 per sheet                                    -->
+  <!-- =================================================================== -->
+  <Template brand="Your Design" part="VM-6353" size="A4" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Meta product_url="http://www.pearl.de/a-VM6353-2213.shtml"/>
+    <Label-cd id="0" radius="58.7mm" hole="8.9mm" waste="1.5mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="1" ny="2" x0="3mm" y0="3mm" dx="120.4mm" dy="173mm"/>
+      <Layout nx="1" ny="1" x0="89mm" y0="89mm" dx="120.4mm" dy="120.4mm"/>
+    </Label-cd>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Your Design: CD/DVD labels, 3 per sheet                                    -->
+  <!-- =================================================================== -->
+  <Template brand="Your Design" part="VM-6354" size="A4" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Meta product_url="http://www.pearl.de/a-VM6354-2213.shtml"/>
+    <Label-cd id="0" radius="58.7mm" hole="18mm" waste="1.5mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="1" ny="2" x0="3mm" y0="3mm" dx="120.4mm" dy="173mm"/>
+      <Layout nx="1" ny="1" x0="89mm" y0="89mm" dx="120.4mm" dy="120.4mm"/>
+    </Label-cd>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Your Design: CD/DVD labels, 3 per sheet                                    -->
+  <!-- =================================================================== -->
+  <Template brand="Your Design" part="VM-6355" size="A4" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Meta product_url="http://www.pearl.de/a-VM6355-2213.shtml"/>
+    <Label-cd id="0" radius="58.7mm" hole="8.9mm" waste="1.5mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="1" ny="2" x0="3mm" y0="3mm" dx="120.4mm" dy="173mm"/>
+      <Layout nx="1" ny="1" x0="89mm" y0="89mm" dx="120.4mm" dy="120.4mm"/>
+    </Label-cd>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Your Design: CD/DVD labels, 2 per sheet                                    -->
+  <!-- =================================================================== -->
+  <Template brand="Your Design" part="VM-6542" size="A4" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Meta product_url="http://www.pearl.de/a-VM6542-2213.shtml"/>
+    <Label-cd id="0" radius="58.7mm" hole="8.9mm" waste="3.175mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="1" ny="2" x0="46mm" y0="25mm" dx="123.75mm" dy="128mm"/>
+    </Label-cd>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Your Design: CD/DVD labels, 2 per sheet                                    -->
+  <!-- =================================================================== -->
+  <Template brand="Your Design" part="VM-6754" size="A4" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Meta product_url="http://www.pearl.de/a-VM6754-2213.shtml"/>
+    <Label-cd id="0" radius="58.7mm" hole="18mm" waste="3.175mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="1" ny="2" x0="46.5mm" y0="20.5mm" dx="123.75mm" dy="138mm"/>
+    </Label-cd>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Your Design: CD/DVD labels, 3 per sheet                                    -->
+  <!-- =================================================================== -->
+  <Template brand="Your Design" part="VM-6852" size="A4" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Meta product_url="http://www.pearl.de/a-VM6852-2213.shtml"/>
+    <Label-cd id="0" radius="58.7mm" hole="17.9mm" waste="1.5mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="1" ny="2" x0="3mm" y0="3mm" dx="120.4mm" dy="173mm"/>
+      <Layout nx="1" ny="1" x0="89mm" y0="89.5mm" dx="120.4mm" dy="120.4mm"/>
+    </Label-cd>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Your Design: CD/DVD labels, 3 per sheet                                    -->
+  <!-- =================================================================== -->
+  <Template brand="PEARL" part="VM-6853" size="A4" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Meta product_url="http://www.pearl.de/a-VM6853-2213.shtml"/>
+    <Label-cd id="0" radius="58.7mm" hole="8.9mm" waste="1.5mm">
+      <Markup-margin size="3.175mm"/>
+      <Layout nx="1" ny="2" x0="3mm" y0="3mm" dx="120.4mm" dy="173mm"/>
+      <Layout nx="1" ny="1" x0="89mm" y0="89mm" dx="120.4mm" dy="120.4mm"/>
+    </Label-cd>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Your Design: CD/DVD labels, 3 per sheet                                    -->
+  <!-- =================================================================== -->
+  <Template brand="Your Design" part="VM-6854" size="A4" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Meta product_url="http://www.pearl.de/a-VM6854-2213.shtml"/>
+    <Label-cd id="0" radius="58.7mm" hole="18mm" waste="1.5mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="1" ny="2" x0="3mm" y0="3mm" dx="120.4mm" dy="173mm"/>
+      <Layout nx="1" ny="1" x0="89mm" y0="89mm" dx="120.4mm" dy="120.4mm"/>
+    </Label-cd>
+  </Template>
+
+</Glabels-templates>
+
+
+
+
diff --git a/templates/uline-us-templates.xml b/templates/uline-us-templates.xml
new file mode 100644 (file)
index 0000000..4fe1246
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+
+<Glabels-templates>
+
+
+  <!-- ******************************************************************** -->
+  <!-- ******************************************************************** -->
+  <!--                                                                      -->
+  <!-- Uline US-Letter products                                             -->
+  <!--                                                                      -->
+  <!-- ******************************************************************** -->
+  <!-- ******************************************************************** -->
+
+
+  <Template brand="Uline" part="S-5044" size="US-Letter" _description="Shipping Labels">
+    <Meta category="label"/>
+    <Meta category="rectangle-label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="8.5in" height="5.5in" round="0in" x_waste="0in" y_waste="0in">
+      <Markup-margin size="9pt"/>
+      <Layout nx="1" ny="2" x0="0in" y0="0in" dx="0in" dy="5.5in"/>
+    </Label-rectangle>
+  </Template>
+
+
+</Glabels-templates>
+
+
+
+
diff --git a/templates/vendors.xml b/templates/vendors.xml
new file mode 100644 (file)
index 0000000..5c6ffc5
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+
+<Glabels-vendors>
+
+  <Vendor name="Agipa"         url="http://www.apli-agipa.com/"                        />
+  <Vendor name="APLI"          url="http://www.apli.com/softwareyplantillas/apli_soft.aspx"/>
+  <Vendor name="Ascom"         url="http://www.hovat.co.uk/hovat_labelling.html"       />
+  <Vendor name="Avery"         url="http://www.avery.com/"                             />
+  <Vendor name="Brother"       url="http://www.brother-usa.com/"                       />
+  <Vendor name="Dataline"      url="http://www.esselte-dataline.com/uk/"               />
+  <Vendor name="DECAdry"       url="http://www.decadry.com/"                           />
+  <Vendor name="DataBecker"    url="http://www.databecker.de/shop/zubehoer/index.php"  />
+  <Vendor name="Dymo"          url="http://global.dymo.com/"                           />
+  <Vendor name="Geha"          url="http://www.geha.de/index.php?id=1041"              />
+  <Vendor name="Great Gizmos"  url="http://www.greatgizmos.co.uk/product_ranges.html"  />
+  <Vendor name="Hema"          url="http://hema.nl/nl-nl/winkel/kantoor/papier.aspx"   />
+  <Vendor name="Hama"          url="http://www.hama.de/produkte/pc_+_notebook/buerobedarf/index.hsp"   />
+  <Vendor name="Herma"         url="http://www.herma.de/"                              />
+  <Vendor name="Impact"                url="http://www.impactlabel.com/"                       />
+  <Vendor name="Kingdom"       url="http://www.kingdom.com/Kingdom-Label-Center-s/20.htm"/>
+  <Vendor name="Kores"         url="http://www.kores.com/products/"                    />
+  <Vendor name="JAC"           url="http://www.tagswiss.ch/deutsch/Etiketten/"         />
+  <Vendor name="Maco"          url="http://www.maco.com/"                              />
+  <Vendor name="Memorex"       url="http://www.memorex.com/en-us/Accessories/Disc-Labeling/"/>
+  <Vendor name="Merax"         url="http://www.merax.com/"/>
+  <Vendor name="Meritline"      url="http://www.meritline.com/"                                />
+  <Vendor name="Neato"          url="http://www.neato.com/"                                    />
+  <Vendor name="Netc"           url="http://netcllc.com/site/home.php"                 />
+  <Vendor name="OfficeMax"      url="http://www.officemax.com/office-supplies/paper"   />
+  <Vendor name="Online Labels"  url="http://www.onlinelabels.com/"                     />
+  <Vendor name="PEARL"          url="http://www.pearl.de/"                                     />
+  <Vendor name="Pressit"        url="http://www.pressit.com/label-applicator-systems.html"/>
+  <Vendor name="Poundland"      url="http://www.poundland.co.uk/"                      />
+  <Vendor name="Ryman"          url="http://www.ryman.co.uk/"                          />
+  <Vendor name="Sanwa"         url="http://www.sanwapaper.com/"                        />
+  <Vendor name="Sattleford"     url="http://www.pearl.de/"                                     />
+  <Vendor name="Sigel"          url="http://www.sigel.de/de_de/"                       />
+  <Vendor name="Southworth"     url="http://shop.southworth.com/cats.php?cat=1"                />
+  <Vendor name="Staples"        url="http://www.staples.de/burobedarf-2"               />
+  <Vendor name="Stomper"        url="http://www.cdstomper.com/"                                />
+  <Vendor name="Uline"          url="http://www.uline.com/"                            />
+  <Vendor name="Viking"         url="http://www.viking.de/"                            />
+  <Vendor name="Worldlabel"     url="http://www.worldlabel.com/"                       />
+  <Vendor name="Your Design"    url="http://www.pearl.de/"                                     />
+  <Vendor name="Zweckform"      url="http://www.avery-zweckform.com/"                  />
+
+</Glabels-vendors>
diff --git a/templates/worldlabel-us-templates.xml b/templates/worldlabel-us-templates.xml
new file mode 100644 (file)
index 0000000..1af2198
--- /dev/null
@@ -0,0 +1,245 @@
+<?xml version="1.0"?>
+
+<Glabels-templates>
+
+
+  <!-- ******************************************************************** -->
+  <!-- ******************************************************************** -->
+  <!--                                                                      -->
+  <!-- Worldlabel US-Letter products                                        -->
+  <!--                                                                      -->
+  <!-- ******************************************************************** -->
+  <!-- ******************************************************************** -->
+
+  <Template brand="Worldlabel" part="WL-25" size="US-Letter" _description="Return Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="1.75in" height="0.5in" round="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="4" ny="20" x0="0.28125in" y0="0.5in" dx="2.0625in" dy="0.5in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Worldlabel" part="WL-75" size="US-Letter" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="4in" height="1in" round="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="10" x0="0.15625in" y0="0.5in" dx="4.1875in" dy="1in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Worldlabel" part="WL-100" size="US-Letter" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="4in" height="1.333333333in" round="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="7"
+              x0="0.15625in" y0="0.833333333in" dx="4.1875in" dy="1.333333333in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Worldlabel" part="WL-125" size="US-Letter" _description="Shipping Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="4in" height="2in" round="0.125in">
+      <Markup-margin size="0.125in"/>
+      <Layout nx="2" ny="5" x0="0.1625in" y0="0.5in" dx="4.1875in" dy="2in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Worldlabel" part="WL-150" size="US-Letter" _description="Shipping Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="4in" height="3.333333333in" round="0.125in">
+      <Markup-margin size="0.125in"/>
+      <Layout nx="2" ny="3" x0="0.15625in" y0="0.5in" dx="4.1875in" dy="3.333333333in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Worldlabel" part="WL-157" size="US-Letter" _description="File Folder Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="3.4375in" height="0.9375in" round="0.0625in" waste="5pt">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="9" x0="0.49755in" y0="0.51125in" dx="4.0674in" dy="1.13in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Worldlabel" part="WL-159" size="US-Letter" _description="Shipping Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="8.12992in" height="5in" round="0.0625in" waste="0">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="1" ny="2" x0="0.18504in" y0="0.5in" dx="0" dy="5in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Worldlabel" part="WL-160" size="US-Letter" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="2.375in" height="1.25in" round="0.0625in" waste="0.125in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="3" ny="6" x0="0.3725in" y0="1.125in" dx="2.69in" dy="1.5in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Worldlabel" part="WL-161" size="US-Letter" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="3.75in" height="1.25in" round="0.0625in" waste="5pt">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="6" x0="0.375in" y0="1.125in" dx="4in" dy="1.5in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Worldlabel" part="WL-171" size="US-Letter" _description="Shipping Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="3.75in" height="2.0in" round="0.0625in" waste="0.125">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="4" x0="0.375in" y0="1.125in" dx="4.0in" dy="2.25in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Worldlabel" part="WL-172" size="US-Letter" _description="Shipping Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="3.75in" height="3.0in" round="0.0625in" waste="0.125">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="3" x0="0.375in" y0="0.625in" dx="4.0in" dy="3.375in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Worldlabel" part="WL-175" size="US-Letter" _description="Full Sheet Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="8.5in" height="11.in" round="0">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="1" ny="1" x0="0" y0="0" dx="0" dy="0"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Worldlabel" part="WL-200" size="US-Letter" _description="Filing Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="3.4375in" height="0.666666667in" round="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="15" x0="0.53125in" y0="0.5in" dx="4in" dy="0.666666667in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Worldlabel" part="WL-225" size="US-Letter" _description="Diskette Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="2.75in" height="2.75in" round="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="3" ny="3" x0="0.125in" y0="0.5in" dx="2.75in" dy="3in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Worldlabel" part="WL-250" size="US-Letter" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="4in" height="1.5in" round="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="6" x0="0.1875in" y0="1in" dx="4.125in" dy="1.5in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Worldlabel" part="WL-325" size="US-Letter" _description="Round Labels">
+    <Meta category="label"/>
+    <Meta category="round-label"/>
+    <Label-round id="0" radius="0.8125in" waste="0pt">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="4" ny="6" x0="0.4157in" y0="0.549in" dx="2.0145in" dy="1.6554in"/>
+    </Label-round>
+  </Template>
+
+  <Template brand="Worldlabel" part="WL-350" size="US-Letter" _description="Round Labels">
+    <Meta category="label"/>
+    <Meta category="round-label"/>
+    <Label-round id="0" radius="1.25in" waste="0pt">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="3" ny="4" x0="0.21in" y0="0.425in" dx="2.75in" dy="2.515in"/>
+    </Label-round>
+  </Template>
+
+  <Template brand="Worldlabel" part="WL-375" size="US-Letter" _description="Round Labels">
+    <Meta category="label"/>
+    <Meta category="round-label"/>
+    <Label-round id="0" radius="1.65625in" waste="0pt">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="3" x0="0.6406in" y0="0.4844in" dx="3.9063in" dy="3.3594in"/>
+    </Label-round>
+  </Template>
+
+  <Template brand="Worldlabel" part="WL-625" size="US-Letter" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="4.25in" height="2in" round="0in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="5" x0="0in" y0="0.5in" dx="4.25in" dy="2in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Worldlabel" part="WL-875" size="US-Letter" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="2.625in" height="1in" round="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="3" ny="10" x0="0.1875in" y0="0.5in" dx="2.75in" dy="1in"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Worldlabel" part="WL-1125" size="US-Letter" _description="Video Tape Face Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="220" height="133" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="5" x0="80" y0="60.5" dx="236" dy="133"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Worldlabel" part="WL-1150" size="US-Letter" _description="Video Tape Spine Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="414" height="48" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="1" ny="15" x0="99" y0="36" dx="0" dy="48"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Worldlabel" part="WL-1200" size="US-Letter" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="166.5pt" hole="58.5pt" waste="9pt">
+      <Markup-margin size="9pt"/>
+      <Layout nx="1" ny="2" x0="144pt" y0="36pt" dx="351pt" dy="396pt"/>
+    </Label-cd>
+  </Template>
+
+  <Template brand="Worldlabel" part="WL-5075" size="US-Letter" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="2.3125in" hole="0.8125in" waste="0.0625in">
+      <Markup-margin size="0.0625in"/>
+      <Markup-line x1="0" y1="2.3125in" x2="1.5in" y2="2.3125in"/>
+      <Markup-line x1="3.125in" y1="2.3125in" x2="4.625in" y2="2.3125in"/>
+      <Markup-line x1="2.3125in" y1="0" x2="2.3125in" y2="1.5in"/>
+      <Markup-line x1="2.3125in" y1="3.125in" x2="2.3125in" y2="4.625in"/>
+      <Layout nx="1" ny="2" x0="1.9375in" y0="0.6875in" dx="0" dy="5in"/>
+    </Label-cd>
+  </Template>
+
+  <Template brand="Worldlabel" part="WL-5100" size="US-Letter" _description="Shipping Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="3.5in" height="5in" round="0.0625in" waste="0in">
+      <Markup-margin size="0.0625in"/>
+      <Layout nx="2" ny="2" x0="0.5in" y0="0.5in" dx="4in" dy="5in"/>
+    </Label-rectangle>
+  </Template>
+
+</Glabels-templates>
+
+
+
+
diff --git a/templates/zweckform-iso-templates.xml b/templates/zweckform-iso-templates.xml
new file mode 100644 (file)
index 0000000..a7ee09e
--- /dev/null
@@ -0,0 +1,289 @@
+<?xml version="1.0"?>
+
+<Glabels-templates>
+
+
+  <!-- ******************************************************************** -->
+  <!-- Zweckform A4 products                                                -->
+  <!-- ******************************************************************** -->
+
+  <!-- =================================================================== -->
+  <!-- Zweckform 4761: Lever Arch File Labels, 192 x 61 mm, 4 per sheet    -->
+  <!-- =================================================================== -->
+  <Template brand="Zweckform" part="4761" size="A4" _description="Lever Arch File Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="544.25" height="172.9" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="1" ny="4" x0="25" y0="75" dx="544.25" dy="172.9"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Zweckform 3477: Adress labels                                       -->
+  <!-- =================================================================== -->
+  <Template brand="Zweckform" part="3477" size="A4" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="105mm" height="41mm" round="0mm" x_waste="0mm" y_waste="0mm">
+      <Markup-margin size="3.2mm"/>
+      <Layout nx="2" ny="7" x0="0mm" y0="4.93mm" dx="105mm" dy="41mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Zweckform 3651: Rectangular Labels, 52 x 29.5 mm, 40 per sheet      -->
+  <!-- =================================================================== -->
+  <Template brand="Zweckform" part="3651" size="A4" _description="Rectangular Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="147.4016" height="83.6220" round="0">  
+      <Markup-margin size="5"/>
+      <Layout nx="4" ny="10" x0="2.834" y0="2.834" dx="147.4016" dy="83.6220"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- ====================================================================-->
+  <!-- Zweckform 3654: CD Labels  2 per Template                              -->
+  <!-- ====================================================================-->
+  <Template brand="Zweckform" part="3654" size="A4" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-cd id="0" radius="165.78" hole="58.09" waste="5">
+      <Markup-margin size="5"/>
+      <Layout nx="1" ny="2" x0="131.78" y0="58.7998" dx="0" dy="387.97"/>
+    </Label-cd>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Zweckform 3659: Rectangular Labels, 97 x 42.125 mm, 12 per sheet    -->
+  <!-- =================================================================== -->
+  <Template brand="Zweckform" part="3659" size="A4" _description="Mailing Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="274" height="120.5" round="0">  
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="6" x0="22.68" y0="60" dx="274" dy="120.5"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Zweckform 3669:  Rectangular Labels, 70 x 50.8mm, 15 per sheet      -->
+  <!-- =================================================================== -->
+  <Template brand="Zweckform" part="3669" size="A4" _description="QSL-Karten Etiketten 70mm x 50,8mm">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="198.425" height="144" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="3" ny="5" x0="0" y0="61" dx="198.425" dy="144"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Zweckform 3688: Ordnerruecken Labels                                -->
+  <!-- =================================================================== -->
+  <Template brand="Zweckform" part="3688" size="A4" _description="File Back Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="544.252pt" height="172.913pt" round="0pt" waste="0pt">
+      <Markup-margin size="9.07087pt"/>
+      <Layout nx="1" ny="4" x0="28.3465pt" y0="76.5354pt" dx="544.252pt" dy="172.913pt"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Zweckform 4732: Multi-purpose Stick+Lift labels                     -->
+  <!-- =================================================================== -->
+  <Template brand="Zweckform" part="4732" size="A4" _description="Multi-purpose Stick+Lift Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="102.047pt" height="48.189pt" round="5.66929pt" waste="0pt">
+      <Markup-margin size="5.66929pt"/>
+      <Layout nx="5" ny="16" x0="31.1811pt" y0="36.8504pt" dx="107.717pt" dy="48.189pt"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Zweckform 4746: Video Labels, 147,32 x 20 mm, 13 per sheet          -->
+  <!-- =================================================================== -->
+  <Template brand="Zweckform" part="4746" size="A4" _description="Video Labels (back)">
+    <Meta category="label"/>
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="416.6" height="56.6929" round="5">
+      <Markup-margin size="5"/>
+      <Layout nx="1" ny="13" x0="88.8377" y0="52.2425" dx="416.6" dy="56.6929"/>
+    </Label-rectangle>
+  </Template>
+  
+  <!-- =================================================================== -->
+  <!-- Zweckform 4780: Allround Labels, 48,5 x 25,4 mm, 40 per sheet       -->
+  <!-- =================================================================== -->
+  <Template brand="Zweckform" part="4780" size="A4" _description="Allround Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="137.48" height="72" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="4" ny="10" x0="23" y0="53.8898" dx="137.48" dy="72"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Zweckform 3474: Address Labels, 70 x 37 mm, 24 per sheet            -->
+  <!-- =================================================================== -->
+  <Template brand="Zweckform" part="3474" size="A4" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="70mm" height="37mm" round="0">
+      <Markup-margin size="0"/>
+      <Layout nx="3" ny="8" x0="0" y0="0" dx="70mm" dy="37mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Zweckform 3475: Address Labels, 70 x 30 mm, 24 per sheet            -->
+  <!-- =================================================================== -->
+  <Template brand="Zweckform" part="3475" size="A4" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="198.570" height="102.121" round="0">
+      <Markup-margin size="0"/>
+      <Layout nx="3" ny="8" x0="0" y0="12.566" dx="198.570" dy="102.121"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Zweckform 3490: Rectangular Labels, 70 x 36 mm, 24 per sheet        -->
+  <!-- =================================================================== -->
+   <Template brand="Zweckform" part="3490" size="A4" _description="Rectangular Copier Labels">
+     <Meta category="label"/>
+     <Label-rectangle id="0" width="198.425" height="102.047" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="3" ny="8" x0="" y0="12.557" dx="198.425" dy="102.047"/>
+     </Label-rectangle>
+   </Template>
+                     
+  <!-- =================================================================== -->
+  <!-- Zweckform 4781: Rectangular Labels, 97 x 42.3 mm, 12 per sheet      -->
+  <!-- =================================================================== -->
+   <Template brand="Zweckform" part="4781" size="A4" _description="Rectangular Copier Labels">
+     <Meta category="label"/>
+     <Label-rectangle id="0" width="274.960" height="119.905" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="6" x0="22.677" y0="61.030" dx="274.960" dy="119.905"/>
+     </Label-rectangle>
+   </Template>
+
+  <!-- =================================================================== -->
+  <!-- Zweckform 6091: Correction and Cover, 64.6 x 33.8 mm, 24 per sheet  -->
+  <!-- =================================================================== -->
+   <Template brand="Zweckform" part="6091" size="A4" _description="Correction and Cover-up Labels">
+     <Meta category="label"/>
+     <Label-rectangle id="0" width="183.118" height="95.811" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="3" ny="8" x0="22.961" y0="37.502" dx="183.118" dy="95.881"/>
+     </Label-rectangle>
+   </Template>
+   
+  <!-- =================================================================== -->
+  <!-- Zweckform 6015: CD Labels, 2 per Template                           -->
+  <!-- =================================================================== -->
+   <Template brand="Zweckform" part="6015" size="A4" _description="CD/DVD Labels">
+    <Meta category="label"/>
+    <Meta category="media"/>
+     <Label-cd id="0" radius="165.827" hole="58.110" waste="5">
+      <Markup-margin size="5"/>
+      <Layout nx="1" ny="2" x0="131.811" y0="60.746" dx="0" dy="388.346"/>
+     </Label-cd>
+   </Template>
+
+  <!-- =================================================================== -->
+  <!-- Zweckform 6021: Allround Labels                                     -->
+  <!-- =================================================================== -->
+  <Template brand="Zweckform" part="6021" size="A4" _description="Allround Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="130.392pt" height="47.9055pt" round="0pt" waste="0pt">
+      <Markup-margin size="5pt"/>
+      <Layout nx="4" ny="16" x0="24.0945pt" y0="39.6853pt" dx="136.913pt" dy="47.9055pt"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =============================================================== -->
+  <!-- Zweckform J8435: CD Inlets Booklet part                         -->
+  <!-- =============================================================== -->
+  <Template brand="Zweckform" part="J8435A" size="A4" _description="CD Booklet">
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="155mm" height="125mm" round="0">
+      <Markup-margin size="2mm"/>
+      <Markup-line x1="32mm" y1="0mm" x2="32mm" y2="125mm"/>
+      <Layout nx="1" ny="1" x0="27.5mm" y0="22mm" dx="155mm" dy="125mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Zweckform" part="32250A" equiv="J8435A"/>
+
+
+  <!-- =============================================================== -->
+  <!-- Zweckform J8435: CD Inlets Inlet part                           -->
+  <!-- =============================================================== -->
+  <Template brand="Zweckform" part="J8435B" size="A4" _description="CD Inlet">
+    <Meta category="media"/>
+    <Label-rectangle id="0" width="155mm" height="122mm" round="0">
+      <Markup-margin size="2mm"/>
+      <Markup-line x1="8.5mm" y1="0mm" x2="8.5mm" y2="122mm"/>
+      <Markup-line x1="146.5mm" y1="0mm" x2="146.5mm" y2="122mm"/>
+      <Layout nx="1" ny="1" x0="27.5mm" y0="21mm" dx="155mm" dy="122mm"/>
+    </Label-rectangle>
+  </Template>
+
+  <Template brand="Zweckform" part="32250B" equiv="J8435B"/>
+
+
+  <!-- =================================================================== -->
+  <!-- Zweckform 32010: Business Cards, 54.0 x 85.0 mm, 10 per sheet       -->
+  <!-- =================================================================== -->
+  <Template brand="Zweckform" part="32010" size="A4" _description="Business Cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Label-rectangle id="0" width="240.94" height="153.07" round="0">
+      <Markup-margin size="5"/>
+      <Layout nx="2" ny="5" x0="40" y0="40" dx="269" dy="153"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- ============================================================ -->
+  <!-- Avery 32015: Business Cards                                  -->
+  <!-- ============================================================ -->
+  <Template brand="Zweckform" part="32015" size="A4" _description="Business Cards">
+    <Meta category="card"/>
+    <Meta category="business-card"/>
+    <Label-rectangle id="0" width="85mm" height="54mm" round="0mm">
+      <Markup-margin size="5mm"/>
+      <Layout nx="2" ny="4" x0="17mm" y0="31.5mm" dx="91mm" dy="60mm"/>
+    </Label-rectangle>
+  </Template>
+
+
+  <!-- =================================================================== -->
+  <!-- Zweckform 4760: File Labels, 192 x 38 mm, 7 per sheet               -->
+  <!-- =================================================================== -->
+  <Template brand="Zweckform" part="4760" size="A4" _description="File Back Labels">
+    <Meta category="label"/>
+    <Label-rectangle id="0" width="544.252pt" height="107.717pt" round="5.66929pt" waste="0pt">
+      <Markup-margin size="9pt"/>
+      <Layout nx="1" ny="7" x0="25.5118pt" y0="43.7386pt" dx="544.252pt" dy="107.717pt"/>
+    </Label-rectangle>
+  </Template>
+
+  <!-- =================================================================== -->
+  <!-- Zweckform 3348: Adress Labels.                                      -->
+  <!-- =================================================================== -->
+  <Template brand="Zweckform" part="3348" size="A4" _description="Address Labels">
+    <Meta category="label"/>
+    <Meta category="mail"/>
+    <Label-rectangle id="0" width="189.921pt" height="107.717pt" round="0pt" x_waste="0pt" y_waste="0pt">
+      <Markup-margin size="9pt"/>
+      <Layout nx="3" ny="7" x0="5.66929pt" y0="56.6929pt" dx="198.425pt" dy="107.717pt"/>
+    </Label-rectangle>
+  </Template>
+
+</Glabels-templates>
+
+
+
+